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
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
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
184e794e26
Fix EXL doc test failures, and one typo
2022-08-06 18:03:00 -04:00
287d807f01
Normals are typically three half-width floats, not three full floats
2022-08-05 18:23:52 -04:00
195726b1d0
Make vertex members public, and repr(C)
2022-07-28 15:20:47 -04:00
ddda9bc598
Remove other debug message when loading a mdl
2022-07-28 14:17:50 -04:00
aeed62fb4c
Implement MDL parsing
...
The actual vertex output is untested, but the headers parse fine it
seems. A lot of this is ported straight from C++, so more refactoring
is expected.
2022-07-28 14:11:02 -04:00
c36c4b7470
Document more public APIs in preparation for docs release
2022-07-27 21:41:05 -04:00
be9c850fc1
Remove some warnings
2022-07-27 21:21:50 -04:00
0a99c6f7a7
Fix EXL unit test due to API change
2022-07-27 20:58:51 -04:00
7486c558ce
Remove repr(C) from ColumnData
2022-07-21 21:01:48 -04:00
036a37c839
Make ColumnData repr(C), make EXH members public outside of crate
2022-07-21 20:25:37 -04:00
4ac3fc378d
Define enum size for Language
2022-07-21 20:08:14 -04:00
ca4962c876
Add EXH and EXD parsers
2022-07-21 19:58:58 -04:00
da673cbadf
Language now derives BinRead
2022-07-21 19:58:07 -04:00
343e972b7d
Remove build.rs, move linker step to installer file
2022-07-21 18:57:57 -04:00
e8183b3af6
Add game installation functionality
2022-07-20 19:07:36 -04:00
db2ea22201
Create directories if needed for AddData, ExpandData, etc
2022-07-20 17:25:10 -04:00
f340319a9e
Stub out SqpkFileOperation::RemoveAll
2022-07-20 16:30:17 -04:00
70a92594a2
Re-add support for FDHR version 2, used for boot patches still
2022-07-20 15:45:22 -04:00
c4549a413f
Remove duplicated dat/index filename calculations from patch routine
...
This also removes the hardcoded ffxiv repository in the path, so now it
should properly calculate the correct expansion folder.
2022-07-20 15:04:55 -04:00