75f88ba3b6
Clarify that IndexFile::from_existing is not reading index2 files
2022-08-14 23:38:49 -04:00
209b475065
Make material struct members public
2022-08-11 15:51:39 -04:00
3b2038024f
Make texture struct members public
2022-08-11 15:48:28 -04:00
06226cfad1
Expose texture width and height
2022-08-11 15:47:02 -04:00
2c1b7cbfb3
Add textures and material support to the README
2022-08-11 15:41:30 -04:00
01717456d1
Add material file parsing
2022-08-11 15:40:14 -04:00
6554dee2f1
Decompress and return rgba data for textures
2022-08-11 15:03:12 -04:00
0210479fd3
Parse texture attribute and formats
2022-08-11 09:23:15 -04:00
214e5495fe
Properly set bone parenting Skeleton::from_skel, export bone transforms
2022-08-10 14:52:11 -04:00
5ca60cb95d
Export affected bone names
2022-08-10 14:51:50 -04:00
5d8e8e23e5
Add some new equipment functions needed for VARC tool
...
* Added deconstruct_equipment_path to grab the model id and slot from
an already made equipment filename.
* Added get_slot_from_abbreviation to be the reverse of
get_slot_abbreviation.
2022-08-10 14:51:36 -04:00
715ec49252
Add documentation link
2022-08-10 00:02:04 -04:00
723700dfcf
Automatically update crate docs on push
2022-08-09 23:55:05 -04:00
c609974fe2
Fix warning in doctest
2022-08-09 23:44:11 -04:00
642cb94896
Make install_game no longer unsafe, propagates errors
2022-08-09 23:39:31 -04:00
6f9b5c59d7
Fix misc warnings
2022-08-09 23:39:15 -04:00
59913434e6
Read boot version
2022-08-09 23:17:19 -04:00
e094742690
Properly propagate errors up the stack for game_data::extract
2022-08-09 22:43:04 -04:00
22569cf09d
Oops, apparently index and patch platform id sizes are different!
2022-08-09 22:37:40 -04:00
2784935409
Actually extract expansion number
2022-08-09 22:31:48 -04:00
2a723f459f
Make RepositoryType copyable
2022-08-09 22:07:17 -04:00
e172433b00
Propagate patch errors for BootData too
2022-08-09 21:53:20 -04:00
8c3f848918
Make RepositoryType repr(C)
2022-08-09 21:52:07 -04:00
18322a13d2
Handle patching error handling better
...
* Move PlatformId to common module.
* Platform id is no longer hardcoded to win32.
* Parse apply options correctly.
* Parse target info better, use more native structures.
* All errors are now handled properly, and propagated up.
* Added a new Region enum.
* Added todo!() to all unhandled patching branches.
* Paths are now built using PathBuf instead of format!().
* process_patch function is no longer accessible, now you have to use
the function found in GameData and BootData.
2022-08-09 21:51:52 -04:00
03e3d3ca21
Simplify index file return
2022-08-09 20:05:11 -04:00
ba5d8bc628
Create get_dat_file function
2022-08-09 20:03:18 -04:00
d318dcb788
Use PathBuf in get_index_file
2022-08-09 20:00:02 -04:00
99fc3165e5
Document FileType enum
2022-08-09 19:53:17 -04:00
a471ce1080
Separate standard, model, etc. reading into their own methods
2022-08-09 19:50:37 -04:00
6173ce422f
Oops, forgot to fix string_to_category
2022-08-09 19:39:31 -04:00
e1b3c78e0d
Fix typo in enum comments
2022-08-09 19:38:53 -04:00
4541a1d033
Expand repository enum variant names, to match with the other ones
2022-08-09 19:38:39 -04:00
a262591057
Can't do math, fix index hash table entry size
2022-08-09 19:35:14 -04:00
7292ad930a
Add Texture structure, begin reading header
2022-08-09 19:31:32 -04:00
42ec97d70c
Add chat log parser
2022-08-07 16:19:04 -04:00
753091f86f
Document the two FileInfo functions
2022-08-06 21:21:55 -04:00
03f9df66d3
Hardcode index entry size as 24 bytes, since the Rust size doesn't match
2022-08-06 21:19:31 -04:00
3bd6fbf9c3
Enable support for writing the file info format
...
This is the first step in enabling write support for a format! I wanted
to see how binwrite works with one of the game's simplest formats.
2022-08-06 21:16:09 -04:00
5b7cf1d6a3
Add support for reading the file info format
...
I revisited this format, and discovered a lot of stuff I did wrong the
first time around when writing libxiv. Now that's fixed!
2022-08-06 20:38:15 -04:00
7b2751f57e
Expand README
2022-08-06 18:40:16 -04:00
c02a2243be
Update dependencies
2022-08-06 18:30:00 -04:00
2a1638e6da
Explicitly use half 1.0, since that's what criterion uses too
...
It's not that big of a deal, we just use one small part of the half
library. This is to appease cargo deny of course :-)
2022-08-06 18:22:27 -04:00
66f1702b83
Install unshield on CI
2022-08-06 18:19:01 -04:00
1c72bc6da5
Add beginnings of skeleton parsing support
...
Now we support TexTools skel files, alongside the usual Havok packfiles.
Neither one has complete support (yet) but I'm exploring libraries to
accomplish them.
The dependencies are now commented to describe their usage and future
plans.
2022-08-06 18:15:33 -04:00
8b6b6b036c
More small changes to the model module
...
* Removed unused import
* Used more result checks
* Removed unnecessary mutable variable
2022-08-06 18:07:42 -04:00
c03c6495fc
Combine the AddDirectoryChunk and DeleteDirectoryChunk patch structs
...
They are actually the same structure, so now they are combined into
one (similar to DeleteData and ExpandData, I should rename those too)
2022-08-06 18:07:06 -04:00
911f8b25c8
Remove unused import in benchmark code
2022-08-06 18:06:18 -04:00
6f12fec62f
Make sqpack module public again, as I forgot it's used for benchmarks.
2022-08-06 18:06:06 -04:00
4d86af88c1
Fix another typo
2022-08-06 18:05:16 -04:00
1028c935d2
Move deny-check CI task as the last one, to help real unit tests run
...
Previously, if deny-check failed - unit tests wouldn't run which is
weird. Sourcehut CI currently doesn't allow later tasks to run despite
a previous failure, so let's try shuffling them around instead.
2022-08-06 18:05:01 -04:00