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