c7c9c38980
Move comment to it's right place in ModelData::calculate_runtime_size
2024-01-29 16:02:56 -05:00
1810821fd7
Implement Default trait for Vertex
2024-01-29 16:01:58 -05:00
eb08d9f142
Move calculating runtime size to it's own function
2024-01-29 15:57:00 -05:00
d925bf6e95
Add more unknown event filters and channels
2024-01-29 15:49:16 -05:00
8b1be6306c
The single Blowfish test is for encryption and decryption
2024-01-29 15:10:38 -05:00
189c891b07
Support shader keys better in MTRL
2024-01-29 15:07:59 -05:00
a18602e3d5
Rewrite SHPK reading
2024-01-29 15:07:35 -05:00
6000720658
Fix tangent reading/writing
2023-12-17 18:58:48 -05:00
3721644340
Separate vertex declaration/element code into its own file
...
This is around 100 LoC by itself, so it's nice to separate that
2023-12-13 17:23:56 -05:00
0b0850c574
Use custom binrw parsers/writers for VertexDeclarations
...
Eventually I want to consolidate the model headers, and this makes it,
so we only need a ModelFileHeader::read or write call without a separate
step.
2023-12-13 17:19:06 -05:00
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