Commit Graph

67 Commits (deque)

Author SHA1 Message Date
scrawl 6b82e3665b Remove old nifbullet test 10 years ago
Rohit Nirmal b5eb16b663 Silence some scan-build warnings. 10 years ago
scrawl 2b407a9995 Refactor NIF cache
- Remove broken cache locking mechanism

This was supposed to unload NIFFiles after a cell transition completes, but it was never working due to a mistake on the line if (--sLockLevel), should have been if (--sLockLevel == 0). Repairing this would increase load times (NIF files would have to be reloaded more frequently), so just removed it for now.

 - Decouple cache from NIFFile (now a new nifcache component)

 - Add API for future background loading

 - Provide a reliable way (SharedPtr) to hold on to loaded NIFFiles. This will be useful to avoid deep copies of keyframe and text key data, which is currently a performance bottleneck.
11 years ago
scrawl 1ab02d8072 Fix exception for box shapes (Fixes #1580) 11 years ago
scrawl 2bcbc6ab7d Potential crash fix, either way should have a better error message now 11 years ago
scrawl 0b34d8d2fd Add support for animated collision shapes (Fixes #1549) 11 years ago
scrawl 0bed6d9d56 Physics: Recognize BBoxCollision flag, but don't use it for raycasting (Fixes #1349) 11 years ago
scrawl e002acdeae Physics: Create actor shapes outside of BulletNifLoader
This will allow to create a specialised shape instead, such as a capsule, which tends to work better for character controllers.
11 years ago
scrawl 0a8c61a7fe Bug #1107: Reverted previous fix, which caused problems with some actors not using a box shape as expected. Instead, do not create a bounding box collision shape for hidden nodes. 11 years ago
scrawl 79a6ffd216 Closes #1107: Do not create box shapes unless the box collision flag is enabled 11 years ago
scrawl 7dc30a01cd Some changes suggested by cppcheck 12 years ago
Chris Robinson 4cedf0fbab Avoid colliding with AvoidNodes
These are placed under the RootCollisionNode hierarchy, but the shapes they
hold aren't collided with. Their exact function is unknown, but seems to be
related to lava? Maybe damage avoidance info for the AI.
12 years ago
Chris Robinson 36170c5374 Use flag enums instead of hard-coded hex values 12 years ago
Chris Robinson ebcb4c66c3 Properly read and use the NIF root record list 12 years ago
scrawl e30af28860 Markers should still have collision if they have a NiRootCollisionNode 12 years ago
scrawl 84afd87321 Placeable objects should not collide unless they have a NiRootCollisionNode 12 years ago
scrawl 14964e9fcd Only build a box shape for collision nodes; use StringUtils 12 years ago
scrawl d7c4a622cf Create a separate rigid body / shape with full details for raycasting, remove the occlusion query hack 12 years ago
Nathan Jeffords 109dff2d29 renamed high level NIF files... 12 years ago
Nathan Jeffords d3c1f5e7b2 renamed low-level NIF related files and include guards to conform to naming convention 12 years ago
Chris Robinson 5f2c897001 Better handle which collision shapes to load 12 years ago
scrawl f4749f10da NIF bullet loader fix for incorrect collision shapes (credit goes to Chris, he asked me to push this) 12 years ago
Nathan Jeffords d5ebd6654d cache loaded NIF files to eliminate reloads
Created a NIF file caching mechanism to prevent the system from
reloading a NIF during a startup and cell changes.
12 years ago
Nathan Jeffords 0989b44b41 spread some const around NIF loading 12 years ago
Nathan Jeffords 9d4f8c6722 changed bullet_nif_loader to not modifiy NIF file
The code in bullet_nif_loader was modifing the loaded NIF file as part of
processing. Currently this is OK since the NIF file will be thrown away
immediately, but it causes problems when trying to share loaded NIF files.
12 years ago
scrawl 00a2de432a fix BulletShapeLoader namespace 12 years ago
scrawl 4ca0eb93ee fix markers used for raycasting and blocking activation 12 years ago
scrawl bf3aad8be0 handle NCC flag 12 years ago
Marc Zinnschlag 4abb9a00da Merge remote-tracking branch 'jhooks/physicsaedra3' into next 12 years ago
scrawl b5ddc8d4fb Fix the marker collision; also, nodes marked with NCO are now correctly ignored for collision. 12 years ago
scrawl 906d290935 Markers are actually hidden now. Inspecting the markers in NifSkope revealed why it didn't work previously: the flag that is being looked for is not present in any of the markers, nor any other flag or extra data to identify them. However, the root node name always starts with "marker", making it possible to do a string search. 12 years ago
Jason Hooks c5b25ef70b Very basic actor physics (no set scale/rotate functions) 12 years ago
Jason Hooks 8762f4a47a boxrotation nif field; commented functions 13 years ago
Jason Hooks 1f5bc229e0 Separate adjustRigidBody function 13 years ago
Jason Hooks e7329d5f8b Creatures now have a properly positioned box shape 13 years ago
Jason Hooks 083e3537b4 post merge 13 years ago
Jason Hooks cacf0bd10d Basic collision with npcs 13 years ago
Chris Robinson 6047dc6a0c Merge remote branch 'zini/master' into nif-cleanup
Conflicts:
	apps/openmw/mwrender/animation.cpp
	apps/openmw/mwrender/animation.hpp
	apps/openmw/mwrender/creatureanimation.cpp
	apps/openmw/mwrender/npcanimation.cpp
	apps/openmw/mwrender/npcanimation.hpp
	components/nifogre/ogre_nif_loader.hpp
13 years ago
guidoj a021165d9f Changed standard C lib includes to C++ format 13 years ago
guidoj 0549e949ba Mostly removal of unnecessary #include's and a little clean up 13 years ago
Chris Robinson 9436ca4b0c Use vectors for ShapeData properties 13 years ago
Chris Robinson 386ac56bda Remove the NIF loader and code to manually transform the vertices
This currently breaks just about everything. They should come back as it's all
reimplemented, though.
13 years ago
Chris Robinson 86b37c6c11 Move the velocity out of the transformation object 13 years ago
Chris Robinson 645b507ba0 Return a reference to the RecordPtr from operator[] for consistency
RecordListT is supposed to be a list of RecordPtrT objects.
13 years ago
Chris Robinson 348b5fa207 Merge remote branch 'zini/master' into nif-cleanup
Conflicts:
	components/nifbullet/bullet_nif_loader.cpp
13 years ago
Marc Zinnschlag f11bf49a90 cmake fix; silenced some warnings 13 years ago
Chris Robinson ca37706b34 Use Ogre types for Matrix and Vector objects 13 years ago
Chris Robinson b3aa453f9a Use Ogre data streams for loading NIFs 13 years ago
Chris Robinson 0143cacd2b Avoid returning pointers from NIFFile 13 years ago
Chris Robinson d3a31a24ce Use proper strings and vectors instead of slice arrays for NIF files
Slice arrays use pre-allocated pointers whose memory is managed externally. This is
unnecessary and ultimately detrimental since it prevents any kind of data fixup
(e.g. little endian to big endian, p[adding handling), and it also makes it difficult
to use Ogre data streams.
13 years ago