1
Fork 0
mirror of https://github.com/redstrate/Physis.git synced 2025-05-09 11:57:46 +00:00
Commit graph

563 commits

Author SHA1 Message Date
940edac964 Add method to get the *total* patch size on disk
Apparently X-Patch-Length is only for the base repository, and so isn't
a reliable indicator. But it's pretty simple to add them all together to
get a close number.
2025-05-06 15:11:44 -04:00
f822aabb94 Fix more test breakages 2025-05-05 17:56:14 -04:00
62b13f557a Early exit in GameData::parse_repository_category if no repositories are available 2025-05-05 17:19:39 -04:00
270eee992b Check if boot version file exists before reading it 2025-05-05 17:15:16 -04:00
ceeb56fabe Allow constructing invalid/empty BootData
For the same reasons as outlined wrt GameData in the previous commit.
2025-05-05 17:13:00 -04:00
a9a3538d85 Remove possibility of None from GameData::from_existing
This simplifes the handling of "new installs" in applications like
Astra, who may end up calling GameData::apply_patch on an "invalid"
GameData struct. We should allow applications to still hold onto these
so it keeps track of game_directory.
2025-05-05 17:07:49 -04:00
da094ea261 Fix patch length parsing, add tests for it
I don't know how this ever worked, but this was broken. I added checks
for it in the patchlist parsing so it doesn't break again.
2025-05-05 16:53:46 -04:00
5efa3c9663 Add EXD::get_row function 2025-04-28 23:36:51 -04:00
257f286990 Reduce fluff in README even more 2025-04-28 23:16:27 -04:00
8f7a6cc546 Simplify supported game versions in README 2025-04-28 23:11:22 -04:00
a6afff0d7a Give patch_testing the same treatment as retail_testing 2025-04-28 23:05:20 -04:00
4725da2f3e Remove unused hmac-sha512 dev-dependency 2025-04-28 23:03:03 -04:00
cf25a7f91f Remove more launcher-only functions from Physis
These are now being moved to the separate Miscel library that can be
used standalone with Astra.
2025-04-28 22:58:51 -04:00
75a3eafaf2 Remove non-applicable comment on Language::None 2025-04-28 22:49:39 -04:00
6f0e85e143 Move dat to save data module 2025-04-28 22:48:45 -04:00
60493f8234 Remove custom string map functions in fiin parser 2025-04-28 22:46:11 -04:00
b7ab90e811 Fix Index2 parsing
This was a mess-up from a previous refactor, reading files from Index2
should work again!
2025-04-28 22:33:52 -04:00
475fa3b9aa Add retail test for parsing Havok skeletons 2025-04-28 22:13:06 -04:00
a277131752 Allow skipping certain retail tests with FFXIV_IS_BENCHMARK env var
Benchmarks don't have item names, so there's no point in testing that
because it will always fail.
2025-04-28 22:05:15 -04:00
ebbb4c27d1 Add retail game test to find an item from the EXD sheet 2025-04-28 22:02:01 -04:00
e29e1bfde9 Revert some of the EXD reading changes to fix Item sheet parsing 2025-04-28 21:59:07 -04:00
3049014247 Rename integration_test to retail_test
Also make it use required-features instead of cfg attr'ing everything.
2025-04-28 21:49:41 -04:00
48a91b8418 Remove duplicate or not needed integration testing 2025-04-28 21:44:29 -04:00
6a09348af3 Update dependencies 2025-04-28 17:23:09 -04:00
fa2c2205da Gloat about platform support in the README 2025-04-28 17:20:09 -04:00
e055bcce9b Fix model test due to moved path 2025-04-28 17:18:45 -04:00
1e28c05f3a Move log to save data module 2025-04-28 17:09:25 -04:00
da8bcf13c1 Move save data formats to their own module
I was struggling to think of a way to categorize these for a while, but
I believe these are referred to as "SaveData" internally. Anyway, that's
a good name!
2025-04-28 17:07:35 -04:00
61a24971c2 Move model stuff to it's own module 2025-04-28 16:57:02 -04:00
aae0055966 Add missing REUSE metadata 2025-04-28 16:54:02 -04:00
053cae89a2 Remove fluff from the README 2025-04-28 16:50:24 -04:00
26c4041b68 Refactor EXD parsing, begin adding write support 2025-04-28 16:42:32 -04:00
cdc39ad4b6
Partial map write support (#9)
This adds initial support for writing new/modified maps, which are made up of layer groups (LGB) and terrain (TERA). Neither one is really tested yet, but I started checking some simple examples and it seems to work.
2025-04-13 18:34:18 -04:00
d2e724227b Add missing REUSe metadata 2025-03-31 16:11:23 -04:00
99238d9b5a Add TryFrom implementations for Race, Tribe, Gender 2025-03-31 16:04:28 -04:00
06e1bb0ead Improve race documentation a bit 2025-03-31 15:46:19 -04:00
49698c7f21 Check for invalid race/tribe combinations in get_race_id 2025-03-31 15:42:56 -04:00
baf0df4858 Rename "Subrace" to "Tribe"
Everything uses this terminology, from other projects to the game itself
(internally and in the UI.)
2025-03-31 15:38:42 -04:00
50ea4dde40 Begin Race and Subrace enums at 1
This simplifies charsave parsing and will be useful in other projects
like Kawari.
2025-03-31 15:33:57 -04:00
a34361b956 Try to reject erreonous planner.lgb files 2025-03-28 22:09:39 -04:00
eee7d5867f Add some derives for ColumnDataType 2025-03-23 19:41:19 -04:00
8c7ba051ed Add repr(C) to ColumnDataType 2025-03-23 19:38:03 -04:00
c6baabd404 Remove repr(C) from CharacterData 2025-03-23 19:28:14 -04:00
9fb0655ac5 Expose Hash struct 2025-03-23 19:21:03 -04:00
2db0717141 Fix EXD test 2025-03-23 18:40:44 -04:00
020480e82c Make unknown_a & unknown_b fields of PatchEntry public 2025-03-17 17:36:12 -04:00
d3918c1382 Actually use row ids in EXD files
I'm an idiot, these row ids are here for a reason and are important for actually
reading Excel sheets. The API has changed to a read_row() function that takes a
row id, and I'll improve it before release.
2025-03-15 21:40:34 -04:00
3273070cef Make more layer-related types public 2025-03-15 17:47:29 -04:00
bf0fb97d7c Add missing REUSE metadata to new files 2025-03-15 17:40:25 -04:00
f8db40d74d Improve layer group parsing (lgb files)
I guessed the name, it's more like a collection of layers. This actually fixes a
bunch of mistakes (on my part) as I copied the layout from Lumina, but added a
few changes to make it work with modern zones. There's a whole lot more work
here to do, but now it works to parse New & Old Gridania.
2025-03-15 17:38:54 -04:00