Add header for future CMP reading
Add race-specific skeleton extraction
Add memory buffer read/write functions
Export bone weights & bone ids for vertices
This currently pulls in glm as a dependency, will be added to the build
system soon.
Trim whitespace around parent indices
This prevents a bug where whitespace could accidentally delete
some parents.
Fix memory buffer issues on gcc
Add exists() method to GameData
Clean up mdl parser
Now all the structs live at the top of the file, and the main vertex
element reading loop is much nicer looking.
Big refactoring commit pt. 2
Now instead of hammering your working directory, all operations happen
in-memory using two new classes, MemoryBuffer and MemorySpan. This has
already fixed numerous bugs especially around handling model files.
All operations on files inside dat's now happen on memory buffers, with
an option to write them to a file.
A lot of now useless debug messages are removed too, as that made
some operations needlessly bound by the speed of your console output.
Big refactoring commit pt. 1
This is the first of many commits to improve code quality, and try to
tame my bad looking code.
Types such as Slot and Race are now living under types/ and have
dedicated functions to go between ids and enumerations without a heavy
std::map.
A new repository API lives in a new SqPack header, which replaces the
old crusty way of fetching repository information in GameData.
Building equipment paths now live in libxiv (moved from novus) provided
you have a model id. Standard methods to build index and dat filenames
are provided in their functions now too.
Move float utility functions into utility.h
Fix compilation on MSVC
Pugixml is now downloaded if not found, and the CMake messages are now
clearer that the dependency is downloaded from the internet.
The POSIX getline function is now replaced with std::getline, which
works on MSVC.
Restore unshield support, and add cmake find_package for pugimxl
Add method to get index file directly