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.
10 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