835b48ff5b
Add explicit calculate_stack_size function and test it
2023-12-13 16:51:40 -05:00
1902dadbec
Add cmake to ci
2023-12-12 22:22:21 -05:00
6b240a804b
Shut up Clippy about the code I didn't write
2023-12-12 22:16:19 -05:00
fadf811505
Move the model file operations to their own file
...
It helps declutter the already huge model file a bit.
2023-12-12 22:13:15 -05:00
60f4d49a0c
Remove more magic constant numbers with std::mem::size_of
2023-12-12 22:08:19 -05:00
5cce23bd3c
Finish model writing support
...
It now handles writing a model of a higher vertex count (which is
unfortunately really common in round trips, for example in Blender.)
Some of the code is still WIP, but it works!
2023-12-12 21:43:04 -05:00
5f1721fe14
Begin work on supporting writing different vertex counts
2023-12-10 14:52:49 -05:00
fc2d2f73cf
Begin support for importing models of different vertex/index counts
2023-12-09 17:18:02 -05:00
c2426193ca
Add MDL::replace_vertices function
...
Will be used for model writing in the future
2023-12-09 14:45:00 -05:00
8efbe484a5
Fix other misc warnings
2023-12-02 20:33:08 -05:00
609284ce8f
Improve FIIN documentation
2023-12-02 20:28:28 -05:00
7b739f655b
Don't expose ChatLogHeader publicly
2023-12-02 20:27:02 -05:00
61e6d2d5db
Improve race documentation
2023-12-02 20:26:38 -05:00
c79cfc3df6
Improve log documentation
2023-12-02 20:26:34 -05:00
67eab58c24
Fix some clippy warnings
2023-12-02 20:17:05 -05:00
06c13853c3
Improve gamedata documentation
2023-12-02 20:12:12 -05:00
2c5491f82c
Improve patch documentation
2023-12-02 20:12:09 -05:00
2f29b8eeae
Improve CFG documentation
2023-12-02 20:01:39 -05:00
2ded1ac2a0
Improve PBD documentation
2023-12-02 19:59:41 -05:00
88562f4dc6
Improve SHPK documentation
2023-12-02 19:58:22 -05:00
a2db761e18
Improve SKLB documentation
2023-12-02 19:57:04 -05:00
7eb11e412f
Improve TEX documentation
2023-12-02 19:55:50 -05:00
76b1f1e352
Improve CMP documentation
2023-12-02 19:55:13 -05:00
55957cb3e0
Add license to README, other improvements
2023-12-02 19:49:06 -05:00
4157eb0a67
Update binrw and tracing dependencies
2023-12-02 19:45:46 -05:00
e23383f439
Remove for loop in writing MDL indices
2023-11-24 08:29:32 -05:00
7b162f6644
Replace some magic numbers with more readable constants
2023-11-24 08:25:45 -05:00
49a8752462
Remove unused round function in MDL
2023-11-24 08:18:46 -05:00
108d33f166
Add MDL::pad_slice test
2023-11-24 08:18:15 -05:00
cf79810dc9
Fix rounding errors
...
Now model files can be read and written and are (almost) identical!
There's some mysterious padding issues yet to solve, but that's only at
the end of the file.
2023-11-24 08:16:03 -05:00
5f7dd355cf
Add support for UV1 reading/writing, tangent and color
2023-11-24 08:07:30 -05:00
18bb4ac54c
Add fill argument for MDL::pad_slice
2023-11-24 08:07:10 -05:00
280ba9b292
Add tests for MDL component reading and writing
2023-11-24 08:06:57 -05:00
b99599867a
Fix up more model writing woes
2023-11-22 21:21:01 -05:00
b210782af0
Don't use println
2023-11-10 17:25:53 -05:00
b147027e58
Allow exists() to return false if all index files are invalid
2023-11-10 17:20:12 -05:00
63cfa56074
Check if index file is valid before caching
2023-11-10 17:17:34 -05:00
1869c31268
Fix some warnings
2023-10-13 16:59:39 -04:00
b180adeb44
Improve performance when extracting files by caching open index files
...
In Hotspot it was revealed that a huge chunk of performance is lost due
to repeated IndexFile::from_existing calls, which may be on the same
index file. Now GameData transparently keeps a cache of these in memory
which speeds up the slowest link here.
2023-10-13 16:58:08 -04:00
7a75c170cc
Make a semantic difference between owned and non-owned byte data
2023-10-13 16:16:04 -04:00
07582775cd
Add support for reading binary SKLB and PBD
...
This removes the dependency of the Havok SDK or getting the decompiled
skeleton files from TexTools or some other place. Code courtesy of
FFXIVTools. The other two ways of reading skeletons (SKEL and Packfile)
are removed which gets rid of two dependencies.
2023-10-13 14:55:27 -04:00
3243132a3f
Fix shader package reading
...
I had broken something when making shader parameters work, now it's
unbroken, and it's able to read bytecode again.
2023-10-13 14:52:07 -04:00
5c5d2f85bb
Add calculate_partial_hash function
2023-10-12 18:59:44 -04:00
0896ef829c
Make hash for index hash table entries public
2023-10-12 18:59:37 -04:00
0a6209dfd5
Add tests for ConfigFile, fix writing and add modification functions
2023-10-11 13:00:50 -04:00
0621ce03d7
Convert more signed integers to unsigned variants
...
Should help protect against future patch troubles
2023-10-05 12:33:44 -04:00
267feae8cf
Fix broken 6.5 patching
...
Thanks to the goatcorp team for figuring this out first, there's some
parts of the patches that are actually unsigned ints.
Should constitute further testing, but it now patches up to 6.5
2023-10-04 11:06:52 -04:00
74cc82a425
Compile with LTO in release builds
2023-09-24 16:19:08 -04:00
cb19e3781a
Allow compilation without visual_data feature enabled
2023-09-24 16:04:39 -04:00
c73f4bc635
Fix default features for dependencies
2023-09-24 15:41:18 -04:00