1
Fork 0
mirror of https://github.com/redstrate/Physis.git synced 2025-04-22 20:57:46 +00:00
Commit graph

30 commits

Author SHA1 Message Date
b54ee74802 Re-arrange SqPack-related formats into their own submodule
This is to make way for another dat module (for the stuff under the user
folder.) This kind of re-organization was inevitable anyway, and I gave the
structs new SqPack-y names to fit their new home.
2025-03-11 17:15:10 -04:00
d58a216462 Shrink the dependency and feature complexity, auto-cleanup and more
We had a few odd dependencies that caused nothing but pain in dependent projects
like libphysis. One of these was libunshield (a C library) that our game_install
feature used, but to be honest this was the wrong library to put this code. It
was really only ever used by Astra, and should live there instead - there's no
reason to have it shared between applications (and it's small enough to be
copied if *you* need it.) Also that also killed the system-deps dependency which
had a significant impact on our build time.

Another dependency was replaced: libz-sys. This is replaced by the pure Rust
libz-rs (through libz-rs-sys) which should simplify deploying physis without
having to worry about manually linking libz or other nonsense. Some leftover
copied code from flate2 can also be removed.

I also removed the visual_data feature as Astra ended up using it anyway, and
the distinction doesn't make much sense now. It was previously to gate some
dependencies needed for visual data extraction, but the bitflags and half crates
are small. I can look into splitting the crate up into more features if needed
later.

A dependency that was erroneously included in the refactoring was quote, which
has been removed. Also ran cargo fmt, clippy too.
2025-03-11 16:29:24 -04:00
bb7c74fec8 Redesign how IndexFile parsing works, again
Now it reads much more of the index file format, and tries to handle
index1/index2 differences more opaquely. I'm not yet happy with the API, it
needs a bit more work.
2025-03-06 18:52:26 -05:00
f52a4b68fc Fix adding multiple files in the same patch, add tests for this
Also fixes patching_test, and makes file paths written in ZiPatches
relative to it's base directory.
2024-06-29 13:25:24 -04:00
ec04c13fbd Silence more dead code warnings
This is intentional, for various reasons between binrw limitations and
code that isn't used directly in Physis.
2024-06-29 09:33:23 -04:00
2e6b4d3264 Fix compilation of integration tests without the patch_testing feature 2024-06-28 06:10:50 -04:00
2da8b9141d Improve patch test output, print errors when XIVQuickLauncher fails
After a frustrating fight match with .NET, this is useful to see why it
failed to launch and whatnot. It only prints out when the process fails
though, to prevent spam.
2024-06-27 17:29:38 -04:00
cc566bb0cc Move patch testing to its own file
Because It's so freaking big!!
2024-06-27 16:52:22 -04:00
e8e4e35cd1 Explain what environment variables are needed in test panics
It helps me to re-learn what I need here :)
2024-06-27 16:51:24 -04:00
d5b3b8a468 Run cargo fmt 2024-04-20 13:18:03 -04:00
7aeb217e2e Fix patch testing 2024-04-20 12:58:29 -04:00
7c63474175 Replace/remove criterion, walkdir, and system-deps
These are giant dependencies that for some reason pull in winapi(???)
and we actually don't need all of their features.

Criterion can be replaced with brunch, a minimalist alternative.

walkdir is replaced with a single function.

system-dep can be replaced with a single line. Eventually I would like
to make it a little bit more than one line, but that's all we need for
now.
2024-04-20 11:13:45 -04:00
e146b31bd4 Unify Platform enums, use it in GameData API and yet more simplifying
So we had a couple copies of a Platform enum, so now there's a public
one in the common module. It wasn't possible to specify what platform
the GameData is, so now it's part of initialization. While I'm at it,
remove the stupid reload_repositories() requirement and make that a
private part of the API.
2024-04-15 19:40:55 -04:00
4dfd36dbd8 Fix and quiet clippy warnings 2023-09-22 19:17:24 -04:00
2000b978b3 Ensure compliance with REUSE, add to CI 2023-08-06 08:25:04 -04:00
2afb09570f Remove unneeded imports for integration tests 2023-03-31 17:30:30 -04:00
6da9057d1e Allow cutting out a large amount of dependencies
Before this change, if you wanted to include physis you had to include
a bunch of dependencies you didn't need. For example, a launcher would
have to pull in texpresso which is completely useless. By default,
the features from before (excluding game_install) are included.

Also this creates a game_install feature for eventual Windows builds,
where unshield is not supported.
2022-10-25 13:53:24 -04:00
67d2f035c3 Reformat code with rustfmt 2022-10-20 11:45:55 -04:00
ab10cf4975 Add file info testing, fix parsing bug 2022-10-20 11:44:54 -04:00
a9fa6d714a Use read_le instead of manually passing ReadOptions 2022-10-17 19:24:02 -04:00
c0ea846d6f Check heavensward expansion patch files now 2022-10-17 17:48:12 -04:00
7654e892f0 assert_eq! on hashmaps are unreliable, so print out differences ourselves 2022-10-17 15:36:47 -04:00
44a17b9165 Add all 2017 game patch files, and stick it in the home directory 2022-10-17 15:26:12 -04:00
118d8404a4 Overhaul patch test code to not be horrible
And now it checks boot patches too!
2022-10-17 15:03:07 -04:00
c3c3df7c68 More small warning changes 2022-10-13 16:11:20 -04:00
102c8901cf Add game patch integration tests
Currently only the first two game patches are checked, eventually want
to check boot patching as well. Hopefully this should weed out the
remaining patching issues I encounter.
2022-10-13 15:46:21 -04:00
d9e79e563a Reformat code 2022-08-16 11:52:07 -04:00
c36c4b7470 Document more public APIs in preparation for docs release 2022-07-27 21:41:05 -04:00
92be18da39 Move integration tests behind a feature flag in preparation for CI 2022-07-27 20:58:12 -04:00
389c3fe00b Add initial files 2022-07-19 19:29:41 -04:00