This reverts commit ad609bff7822abffc76de9ae01b50cb9df97b093.
Revert "Made incorrect nif get error message more informative."
This reverts commit 9909c4abadbe4c0aedc24a50155908c5e7e39b13.
Revert "Build the nif file tester by default"
This reverts commit c1315ed90c87a457f17e6076c149465da3fa6c3a.
Revert "Converted most nifstream "get multiple" functions to the templated version"
This reverts commit 2619d57bb6afc5c31bf1a90b8c033d66f29a9a58.
Revert "Add a templated option for getting vectors to NIFStream"
This reverts commit f318ee0b8c68a46d53a0fdd216ae8d6b371eedc2.
Revert "Made NIFStream getters templated"
This reverts commit 4edc4142f3b4f1cde4d99392045d5d25858e6bf7.
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>