Slice arrays use pre-allocated pointers whose memory is managed externally. This is
unnecessary and ultimately detrimental since it prevents any kind of data fixup
(e.g. little endian to big endian, p[adding handling), and it also makes it difficult
to use Ogre data streams.
This moves the index resolution into a separate post method instead of always
checking when access. As a result, it reduces the size of it down to the size
of a pointer, as opposed to 2 pointers + 1 int. The appropriate methods are
added to the various node types to make sure they're resolved.
Discard the tranformation of the root NiNode when loading nif files
(set the 'identity' transformation instead).
After applying the fix test the following types of interiors:
- Dwemer ruins (the bug was common here before the fix)
- Ancestral tombs (the bug was common here before the fix)
- Daedric shrines
- Caves/grottos
- Dunmer strongholds
- Telvanni, imperial, redoran houses/towers/castles
Also checked exteriors (although it is hard to do without terrain
rendering)
Clan up compilation warnings like "variable ... set but not used" introduced
in some older and recent commits.
Signed-off-by: Lukasz Gromanowski <lgromanowski@gmail.com>
Moving classes from components/misc into Misc namespace.
Note: Misc namespace introduced conflict with ESM::Misc and MWClass::Misc
classes, so both of them are renamed to ESM::Miscellaneous
and MWClass::Miscellaneous.
Signed-off-by: Lukasz Gromanowski <lgromanowski@gmail.com>