04025e0707
Make EXL parsing more resilient
...
It now stops tripping up over basic parsing errors and comments.
2024-04-14 13:22:05 -04:00
4fa77965c1
Support index2 files
...
Needed for extracting data from benchmarks, which only ship with this
index file type.
2024-04-14 11:24:18 -04:00
8e6b0dd6b4
Fix issue where patches could panic because file didn't exist
...
Some of the recent boot updates now include patch files that try to
ask us to remove files that were already deleted. Now the patch process
is smarter and will quietly warn that said operation failed but will
continue to chug along.
2024-03-23 11:56:55 -04:00
733a079f9a
Add preliminary support for writing shape keys into MDL files
...
This is not complete as it only deals with the header data and doesn't
append the morphed vertices properly yet.
2024-03-05 17:08:07 -05:00
6bf60b0cfd
Add support for reading shape morphs from MDL
2024-03-02 17:23:55 -05:00
840fb21ba0
Test the replace_vertices function
2024-03-01 15:47:58 -05:00
d75296f4d2
Make the data offset calculations a little bit clearer
2024-03-01 15:47:47 -05:00
ebca076c2d
Begin testing some of the model parsing functions
2024-02-25 10:30:50 -05:00
ed5a9b52b1
Separate the model header updating, and add test
...
This adds the model file for c0201e0038_top but everything but the
header parts are zeroed out to prevent possible copyright infringement.
2024-02-25 10:26:05 -05:00
3389f62340
Implement shape reading/writing, fix runtime size calculation
2024-02-25 09:35:18 -05:00
36027c9a9f
Write out a proper end of stream vertex element
2024-02-25 09:01:59 -05:00
f43812fa55
Fix up padding/unknowns in ModelHeader
2024-02-25 08:54:27 -05:00
4194ec4432
Rename Uint4 to Byte4 so it's clearer
2024-02-25 08:54:16 -05:00
ecc872ead1
Use better constant values for model file header and vertex element
2024-02-25 08:41:03 -05:00
256b3f9305
Add basic support for LGB and TERA files
...
This is for the Novus map editor, although TERA is much more complete
than LGB right now.
2024-02-02 14:20:53 -05:00
872cabb2fa
Support terrain shadow meshes and submesh meshes
...
This should fix most terrain models which has this data filled.
2024-02-02 14:19:36 -05:00
47649dfff5
Support half2 reading/writing
2024-02-02 14:18:58 -05:00
fd43401eae
Protect model file i/o, decls behind visual_data feature
2024-01-31 16:33:53 -05:00
e26c70221e
Oops, half4 positions should not be written as single4
2024-01-29 17:18:13 -05:00
5629cc5551
When writing half4 normals, fill it with 0.0 instead of 1.0
2024-01-29 17:06:24 -05:00
afe809f33c
Store the unknown padding
...
Don't know what it's used for yet still.
2024-01-29 17:05:57 -05:00
f2475c99ce
Remove unused imports in SHPK
2024-01-29 16:22:45 -05:00
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