Commit Graph

132 Commits (loadfix)

Author SHA1 Message Date
scrawl 7252cb63a6 Fix cppcheck issues 10 years ago
scrawl 4d6ebfb496 Allow KeyFrameControllers on the RootCollisionNode and its children (Bug #1934) 10 years ago
Rohit Nirmal e315a72582 Remove extra semicolons at the end of some lines. 10 years ago
scrawl 819234cdfe Use rbegin() instead of --end() 10 years ago
scrawl 9809748eba Store NIF keys mapped by time and use lower_bound for searches 10 years ago
scrawl c2a91148f3 Implement multiple emitter nodes for NiBSPArrayController
The particles for the flame, frost and storm atronachs work correctly now.
11 years ago
scrawl 1a8acac40a Share keyframe data in NIF resource (Fixes #908) 11 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 83037a1a91 Move fast-forward of particle systems outside of OgreNifLoader (Fixes #1830)
Particle systems were being fast-forwarded before the skeleton base was attached, so particles without the LocalSpace flag would spawn at an incorrect position.
11 years ago
scrawl 6c6b3bd890 Remove extra setVisibilityFlags on SkelBase
SkelBase is already contained in mEntities.
11 years ago
MiroslavR 4d403ed747 Rename and move functions for texture path correction 11 years ago
Marc Zinnschlag 1e6d557089 Merge branch 'visibility' 11 years ago
Marc Zinnschlag a25758c3b1 fixed visibility flags setting 11 years ago
scrawl 7dfb624ee2 Support loading text keys for objects without a skeleton
This means we can no longer map them to bone IDs, but they are unused anyway.

Required to load text keys from the default head models (such as Talk: Start/Stop and Blink: Start/Stop)
11 years ago
scrawl 1320ac6983 Ensure non-negative particle life time, add size assertion 11 years ago
scrawl 30be59c029 Implement auto-adjusting of particle emit rate
This makes ashcloud.nif and blightcloud.nif work properly.
11 years ago
scrawl c69a311ad8 Disable lighting for particles
Fixes magic cast visuals being too dark depending on the environment.
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
megaton 50af9bc0d3 General perfomance optimizations. 11 years ago
scrawl edb5a54092 Include some more required Ogre headers explicitely. 11 years ago
scrawl 2c0d46525b Fast-forward particle systems to make cell loads less obvious. 11 years ago
scrawl cf3812188f Fix bounding box assertions due to negative particle life time
Other parts of the code could not deal with negative life times and produced negative particle sizes as a result (which Ogre could not handle)
11 years ago
scrawl bbd15b185d Skip inactive controllers. Fixes those bloody bone boots again. 11 years ago
scrawl 5b300c1052 Handle controllers for the root node. Fixes #1147 (incorrect dwemer crossbow rotation) 11 years ago
scrawl 305a471c5a Fix VisController in ascended sleeper's death animation 11 years ago
scrawl bd34b61f2a Set all keyframe-controlled bones as manually controlled 11 years ago
scrawl aa855e9524 Include some required Ogre headers explicitely 11 years ago
scrawl 4ad43fdf92 Closes #1088: Quick&dirty fix for NIF filters not working properly with some mods 11 years ago
scrawl 29acc3f722 Fix particles being too small. Looks like this should actually be size*2. 11 years ago
scrawl 764ec9bc5f Closes #716: Use the particle controller's size instead of NiAutoNormalParticlesData particle radius. Same as NifSkope now. 11 years ago
scrawl 07a9b7623a Enable skeleton-based bounding boxes added in Ogre 1.10 11 years ago
scrawl c0dba2834b Closes #855: Don't try to look up bone if there's no skeleton 11 years ago
scrawl 6d47d710a0 Reimplement NiGeomMorpherController using Ogre's pose animation system 11 years ago
scrawl a9526622b1 Particle improvements: particle systems now move with the particle bone, not the scene node. This difference is not noticable if the particle bone is static, but it makes the code *much* nicer and mirrors more closely what NifSkope does. 11 years ago
scrawl 9877db413c Connect particle systems to the particle node, not the emitter node 11 years ago
scrawl eab2c89346 Issue #983: Fix controllers to affect objects attached to the base node 11 years ago
scrawl 5931fdcbde Implement NiBillboardNode. Flags not handled yet. 11 years ago
scrawl 0c3c3ed8e9 Fix wind gravity affector 11 years ago
scrawl 37a7ee8fcd Set alpha value of character animations according to Invisibility / Chameleon effects. 11 years ago
scrawl 9fcb4fad5c Implement NiFlipController 11 years ago
scrawl 51a9f0111c Implement NiAlphaController and NiMaterialColorController 11 years ago
scrawl 1624e0fd8a Rename ObjectList to ObjectScene. Wrap it in a SharedPtr so we can automate the destruction routine. 11 years ago
scrawl c5e543b91b Implement NiGeomMorpherController 11 years ago
scrawl 6b81fd78f1 Particle improvements: Handle LocalSpace flag. Attach particle systems to the base node, since they need to be relative to that when LocalSpace is enabled. Get the bone in emitters/affectors so that resulting particle positions are the same. TODO: Fix Controllers to affect particle systems. 11 years ago
scrawl 7fd5f1df83 Change setKeepParticlesInLocalSpace to false. Not correct for all particles, but the opposite isn't either. Plus it breaks pretty much all magic VFX. 11 years ago
scrawl ffdb91bb21 Add particles for Cast + Hit. Not looking quite right yet. 11 years ago
Chris Robinson b7e81dbc5b Ignore controllers on the root NiNode
I wonder if we should ignore the root NiNode completely.
12 years ago
Chris Robinson 8e24cab935 Strip trailing whitespace from textkeys 12 years ago
Chris Robinson bf94ffb839 Only support NiSequenceStreamHelper as a Kf root
Newer versions of the Nif foramt may have other record types, but we don't
support those.
12 years ago
Chris Robinson 8e38dc410f Allow loading multiple animation sources
Animation sources are treated differently from base objects. When given
"path\file.nif", base objects will look for "path\xfile.nif" and use that
if it exists (falling back to the original name if not found). Animation
sources will instead use "path\xfile.kf", ignoring it if the file doesn't
exist.
12 years ago