Commit Graph

18 Commits (08484a46c7e8ed17202eb28d1cbf4f43799e5320)

Author SHA1 Message Date
scrawl e6c59f5585 Revert "Allow NIF rotation matrices that include scale values"
This reverts commit f57ddec6a2.

Conflicts:
	components/nif/nifstream.hpp

(Fixes #2168)
10 years ago
scrawl c1e6b8608b Always create a skeleton if there's an "ArrowBone" node (Fixes #2117) 10 years ago
scrawl f57ddec6a2 Allow NIF rotation matrices that include scale values (Fixes #2052) 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 4949aa1fbb Add hack required for unnamed animated collision shapes (in_dagoth_bridge00.nif) 11 years ago
scrawl e51300989c Handle NiBSPArrayController as alias for NiParticleSystemController
The differences (if any) are unknown.

NiBSPArrayController is used by the Atronach_Fire.nif model. Its particles are now visible, but they don't look right yet. Need to handle NiAutoNormalParticlesData?
11 years ago
scrawl bbd15b185d Skip inactive controllers. Fixes those bloody bone boots again. 11 years ago
scrawl f3a7321a43 Closes #856: More aggressive supression of skeleton base: only create for keyframe controllers, not any controllers 11 years ago
scrawl 5931fdcbde Implement NiBillboardNode. Flags not handled yet. 11 years ago
Chris Robinson eb4daaf512 Build a skeleton for Nifs that have a matching .kf file 12 years ago
Chris Robinson 512ff3687a Don't create Ogre animations for skeletons 12 years ago
Chris Robinson 59137d93c9 Partially handle NiGeomMorpherController
The morphs aren't actually applied yet, but the Ogre controller is set up so
all that has to be done is to implement the setValue method.
12 years ago
Chris Robinson a3511c62cf Don't store textkeys in user object bindings
It's a bit unwieldy to have them stored in the 'skeleton master' instead
of the skeleton instance. And although the text keys are extracted for
each created instance now, this shouldn't be much worse than the
multimap copying going on before.

Plus, proper serialization can help for future optimizations.
12 years ago
Chris Robinson 2345b5e8b3 Avoid storing text keys for each animation 12 years ago
Chris Robinson 7d59340ed6 Don't clip out the group name from the textkeys 12 years ago
Chris Robinson bf8bc989fc Recognize and partly handle NiBSParticleNode 12 years ago
Chris Robinson acb1b5f002 Try to handle NiBSAnimationNode
This is still incomplete guess work. Currently it seems as though flag 0x20
specifies whether the controllers auto-play (if on), rather than follow the
object's animation time.
12 years ago
Chris Robinson caff28e20a Move NIFSkeletonLoader to a separate file 12 years ago