NIF updates
Various NIF changes.
- NiBoolData, NiStringPalette and NiSkinPartition types are now read. They currently go unused like the other recently added types.
NiSkinPartition contains skinning data optimized for hardware skinning. There is very little valid Morrowind files that use NiSkinPartition around (mostly only those created by the original game for internal use, but not the game files themselves, and Greatness7's Blender plugin) so I can't guarantee they all load fine. It goes unused in cc9cii's branch too.
NiBoolData record type contains a (possibly interpolated) key list. Every key has a time and an associated boolean value. Otherwise it's very similar to the other data types. It's used in NiBoolInterpolator. Morrowind's NiVisData has a very similar structure but unlike NiBoolData its keys cannot be interpolated.
NiStringPalette contains a list of strings used as a palette. I think it's used in Oblivion animated files but apparently in cc9cii's branch the conversion of the source string to a palette is dummied out. - All extra records are collected when the non-KF part of the loader wants to handle them, including both those in a linked list (Morrowind format) and a normal list (Gamebryo format). This doesn't get a lot of use yet as most extra data records that could be present in the extra list aren't handled.
- Some redundant code has been cleaned up in OSG-side NIF loader and Bullet-side NIF loader. I expect that there'll be much more geometry type nodes in the future, it's nice to keep them in less places.
- "Gamebryo File Format" is recognized as a valid header string.
- Finally, I've added a certain setting: if it's enabled, the NIF loader will ignore the fact that the NIF it gets has a version it doesn't support and try to load it anyway as long as it appears to be valid. This is currently not very useful as a lot of stuff from my bleeding-edge branch hasn't got in yet. Unsupported file versions get some logging spam to make it somewhat clear to the user what record types were present in the file and when could it possibly break if it did break.
[Models]
load unsupported nif files = false