Commit Graph

199 Commits (a0e89208a0b301666b626a51cdae30e552e50537)

Author SHA1 Message Date
scrawl 2db5df77f0 Change rotation/scale workaround in preparation for loading .kf controllers 10 years ago
scrawl f8422c3ed4 Particles mostly completed, still need to attach emitters to the correct node and handle NiBSPArrayController 10 years ago
dteviot 45b6538820 fixed MSVC 2013 warning C4800
forcing value to bool 'true' or 'false'
10 years ago
dteviot 407cd50890 fixed warning C4099:
type name first seen using 'class' now seen using 'struct'
10 years ago
scrawl 6c63bab8e4 Change Nif::Property flags to unsigned 10 years ago
scrawl 8e01d8cb19 Add OSG nifloader, currently supports geometry, materials, basic texturing, skinning, morphing, and most controllers. 10 years ago
scrawl 6b36e55a4e NIF reader cleanup: move definitions to cpp file 10 years ago
scrawl 387969bf42 Remove an old .gitignore 10 years ago
scrawl f6f37e02df NIF Transformation redundancy fix and include fixes 10 years ago
scrawl 8c10d4badb NIF reader compiles without Ogre 10 years ago
scrawl d541bc8064 Remove unused functions in nifstream 10 years ago
scrawl c6c7d102d0 Revert "components/nif/base.hpp now uses the templated get() function"
This reverts commit ad609bff78.

Revert "Made incorrect nif get error message more informative."

This reverts commit 9909c4abad.

Revert "Build the nif file tester by default"

This reverts commit c1315ed90c.

Revert "Converted most nifstream "get multiple" functions to the templated version"

This reverts commit 2619d57bb6.

Revert "Add a templated option for getting vectors to NIFStream"

This reverts commit f318ee0b8c.

Revert "Made NIFStream getters templated"

This reverts commit 4edc4142f3.
10 years ago
Arthur Moore ad609bff78 components/nif/base.hpp now uses the templated get() function 10 years ago
Arthur Moore 9909c4abad Made incorrect nif get error message more informative. 10 years ago
Arthur Moore c1315ed90c Build the nif file tester by default
It's extremely useful in determining if a nif file is bad without having to load up openmw or opencs.
Also updated the nif testing script to run at a low priority.
10 years ago
Arthur Moore 2619d57bb6 Converted most nifstream "get multiple" functions to the templated version 10 years ago
Arthur Moore f318ee0b8c Add a templated option for getting vectors to NIFStream 10 years ago
Arthur Moore 4edc4142f3 Made NIFStream getters templated 10 years ago
Marc Zinnschlag 33d905dc03 Merge remote-tracking branch 'scrawl/master' 10 years ago
Arthur Moore b8edd9bac3 Get a nif file's version string regardless of its length. 10 years ago
Arthur Moore cd835152e1 Fix spacing issue for NIF file errors. 10 years ago
Arthur Moore 018f4e6895 Fail early if trying to read a string larger than the nif file size.
This is much better than failing after a few minutes with an out of memory error.
10 years ago
scrawl 6eebe9b44c Read NiFogProperty, but don't use it yet (Feature #920) 10 years ago
scrawl 5a25649076 Implement XYZ rotation keys support (Fixes #1067) 10 years ago
scrawl b650338d69 Implement drawMode of NiStencilProperty (Feature #1057) 10 years ago
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
Arthur Moore 4a9a9855bf NIFStream getUInt should return an unsigned integer 10 years ago
Arthur Moore 4583dc05db Move NIFStream functions into a cpp file where they belong 10 years ago
scrawl f57ddec6a2 Allow NIF rotation matrices that include scale values (Fixes #2052) 10 years ago
Arthur Moore 38bcff2622 Moved base NIF classes into a separate file.
This resolves the dependency mess, and makes things more readable.
The dependency tree for nif records now looks like this:
Record.hpp
--base.hpp
----controlled.hpp
----controller.hpp
----data.hpp
----effect.hpp
----extra.hpp
----node.hpp

Node.hpp has many extra dependencies because nifogre only includes it instead of each of these files.
That should be fixed.
10 years ago
Arthur Moore 5abed1c32a Print a NIF file's version information when an error occurs 10 years ago
Arthur Moore 9ebf3f2f10 Provide more data when nifstream throws a runtime_error 10 years ago
scrawl 7252cb63a6 Fix cppcheck issues 10 years ago
scrawl 487e318ede Remove old niftool test 10 years ago
scrawl 9809748eba Store NIF keys mapped by time and use lower_bound for searches 10 years ago
cc9cii 7ff1136d81 For compiling in Windows with MSVC. 10 years ago
Arthur Moore b7852b8215 Convert niffile.cpp to use std::map instead of a custom search function.
I haven't profiled this, but it should speed things up a decent bit.
11 years ago
Arthur Moore 8be6aefd95 Moved functions from niffile.cpp to where they belong.
Also cleaned up some #includes

Removed a few asserts.  Vector already throws an out_of_range error.
11 years ago
Arthur Moore cdfa24e15d (Re) Wrote a tool to test NIF files in BSAs and on the filesystem.
Just give it a set of files, one file per argument, and it will make sure openmw can read them.

On linux/mac you can use "xargs --arg-file=nifs.txt ./niftest" to give it a list of files to check.
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 30be59c029 Implement auto-adjusting of particle emit rate
This makes ashcloud.nif and blightcloud.nif work properly.
11 years ago
Marc Zinnschlag c8c45d4923 Merge remote-tracking branch 'lgro/valgrind_fixes' 11 years ago
Lukasz Gromanowski abeb1d4ab3 Valgrind: Added constructor for KeyListT class, and added initialziation of ver member field in NIFFile class.
Signed-off-by: Lukasz Gromanowski <lgromanowski@gmail.com>
11 years ago
scrawl b158919c4b Fix uninitialized variable use 11 years ago
scrawl 029e438c11 Don't check mInterpolationType each iteration 11 years ago
Arthur Moore f9f278f645 Fixed a capitalization error.
Changed Interpolations to unsigned.
Also explained what's happening in the comments.
11 years ago
Arthur Moore b90e4db871 Actually read in XYZ_ROTATION_KEY data instead of discarding it. 11 years ago
dreamer-dead e772bb88da Remove RTTI usage in NIF reader. 11 years ago
Arthur Moore 576c06d791 Fix Bug #1371
Not properly reading in the NIF file's QuaternionKeyList.
11 years ago
Arthur Moore 50a4d175da Read NIF interpolation type 4 (XYZ_ROTATION_KEY)
Don't actually do anything with it yet, but without this the "MW Containers Animated" mod made containers inaccessible.

Partly implements Feature #1067
11 years ago
scrawl 45d2a00717 Fixes #1293: Allow interpolation type 0 in case of 0 keys 11 years ago
Bret Curtis ab224f93c9 remove our stdint.h version that uses boost and force usage of system stdint.h 11 years ago
scrawl bbd15b185d Skip inactive controllers. Fixes those bloody bone boots again. 11 years ago
scrawl 254eba350e Not handling interpolation type should be an error, since it will fail reading the next record if it hasn't read the previous one completely. 11 years ago
scrawl 5931fdcbde Implement NiBillboardNode. Flags not handled yet. 11 years ago
scrawl 9fcb4fad5c Implement NiFlipController 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
Xethik 9f533dbbe4 Fixed "most vexing parse" issue. 11 years ago
Chris Robinson fb0ee7f2fc Improve constness of the Nif RecordPtr structs 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 1051fa51a7 Recognize NiFlipController 12 years ago
Chris Robinson 36170c5374 Use flag enums instead of hard-coded hex values 12 years ago
Chris Robinson bf8bc989fc Recognize and partly handle NiBSParticleNode 12 years ago
Chris Robinson d26ffe9de0 Move a method to the Node class 12 years ago
Chris Robinson 3970407772 Use actual classes for properties 12 years ago
Chris Robinson 6c6750342c Specified particle size is actually the radius 12 years ago
Chris Robinson 23097ac9dc Minor cleanup of NiMorphData 12 years ago
Chris Robinson c6c67a1bb4 Read NiGravity fields 12 years ago
Chris Robinson ebcb4c66c3 Properly read and use the NIF root record list 12 years ago
Chris Robinson f764f243d2 Fix the particle quota 12 years ago
Chris Robinson 41ce5464c9 Recognize NiBSAnimationNode as a record type
And don't warn about animated nodes without textkeys
12 years ago
Chris Robinson bf0ae3ae72 Read NiVisData info 12 years ago
Chris Robinson ac10c5f05c Even more particle information 12 years ago
Chris Robinson 2f6ae4a915 Read more particle information 12 years ago
Chris Robinson ee0a20f9ce Read some missing particle data from NIFs 12 years ago
scrawl a9b56eedc3 Support NIF "glow maps", which are basically an emissive channel. 12 years ago
scrawl 5625d73d84 Bump texture support 12 years ago
Nathan Jeffords d3c1f5e7b2 renamed low-level NIF related files and include guards to conform to naming convention 12 years ago
Nathan Jeffords 0ed2015319 refactored NIFFile parse to get better code/data seperation 12 years ago
Nathan Jeffords 6de6d9ff6e Factored a NIFStream class out of the NIFFile class.
Split NIFFile into two parts, NIFFile which is cached and is a container
for a parsed NIF, and NIFStream which is a class specialized for parsing
NIFs. This required a semi-sweeping change to make all record classes
accept a NIFStream instead of a NIFFile as an agurment to their read
functions.
12 years ago
Chris Robinson 2786cc67f6 Fix loading empty NiTriShapeData records 12 years ago
Sergey Shambir 03ca7f6123 NIF: added NiStencilProperty record handling
NiStencilProperty appears in Better Clothes plugin. If it not handled,
some parts of NPCs bodies will be not rendered.
12 years ago
greye 82595e66b2 another missing header for #576 12 years ago
Chris Robinson b23fcb260c Use the record index for finding the NiTriShape instead of the name 12 years ago
Chris Robinson 660d73fd88 Store the NIF index in the Record object 12 years ago
scrawl 31e6d28b19 Close NIF file resource after loading it into memory 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
Marc Zinnschlag d684b3ae11 fixed getString function in NIF loader 12 years ago
Marc Zinnschlag dbcd4a8b5b compatibility fix 13 years ago
Edmondo Tommasina 20deb97a09 nif_file.hpp: add stdint.h include to fix build
It fixes such compile errors as:
* error: ‘uint8_t’ does not name a type
* error: ‘uint16_t’ does not name a type
* error: ‘uint32_t’ does not name a type
13 years ago
Edmondo Tommasina 32b167ce2b Revert "nif_file.hpp: include type definitions to fix build"
This reverts commit b0b3ebe123.
13 years ago
Edmondo Tommasina b0b3ebe123 nif_file.hpp: include type definitions to fix build 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 0549e949ba Mostly removal of unnecessary #include's and a little clean up 13 years ago
Chris Robinson 63e40d6e92 Fix world transform calculation 13 years ago
Chris Robinson b1f7fd9f7b Pre-transform the mesh vertices when there's no skinning or skeleton 13 years ago
Chris Robinson 61f32eca77 Add methods to get a node's local and full transform as a 4x4 matrix 13 years ago
Chris Robinson 9caa264074 Merge remote branch 'zini/master' into nif-cleanup 13 years ago
scrawl 5345d4eeef fix a warning 13 years ago