faa0c61db4
Merge 4ab3ae047b
into 06a9e5f4d8
2025-07-18 20:56:12 +00:00
4ab3ae047b
Add support for applying 1.x era patch files
...
These are very similar to the ones seen today in ARR, except they
are layed out slightly differently and use a couple of now-unused
operations.
2025-07-18 16:55:25 -04:00
06a9e5f4d8
Fix LVB parsing for some files, add NVX path
2025-07-12 09:03:02 -04:00
0c6383c3cc
Fix invalid PCB parsing panicking
2025-07-09 22:56:47 -04:00
fe8afff1c3
Fix remaining issues with parsing PCBs
...
After looking at the FFXIVClientStructs definition for these, I
figured out the remaining issues. It mostly came down to
misunderstanding what the heck this thing was??
2025-07-09 14:57:21 -04:00
dbad354cb5
Fix read_half2 and read_half3 reading the same data
2025-07-09 14:55:31 -04:00
19e5c38ea8
Initial support for PCB parsing
...
These files are collision meshes used in zones.
2025-07-09 00:33:26 -04:00
b3196219d2
Expose some navimesh path data in LVBs
...
I can get the nvm path now, but not the nvx for some reason.
2025-07-08 23:09:31 -04:00
aecf677cf9
Stop complaining about dead code in LVB module
2025-07-08 22:52:31 -04:00
beebbaa01c
Update outdated ResourceResolver docs
2025-07-08 22:46:44 -04:00
65d85e51fa
Add missing REUSE metadata
2025-07-08 22:41:51 -04:00
c0d3df99c3
Always read path as lowercase in UnpackedResource
2025-07-08 22:23:16 -04:00
2858c8a37b
Ensure ResourceResolver is Send + Sync
...
Needed for usage in Kawari downstream. We may need to redefine this
at the trait level, but this works for now.
2025-07-08 22:19:51 -04:00
c2eb47cca0
Port the useful Excel API from SqPackResource to Resource
2025-07-08 21:44:51 -04:00
81fff744f2
Overhaul file resource handling
...
This is a big API change, and it's probably not in it's ideal
shape right now. Physis makes a big assumption that the pool of
game data that you're reading from is in the compressed, SqPack
format like in retail. However, as the projects that use Physis
expand - so does the scope of data people want to punt into it.
For example, we have Icarus that makes it easy to read Excel data
but it can only do so through SqPack which makes it less useful in
scenarios where you want to read unpacked Excel modded files or
perhaps Excel data from the network.
So I created a Resource trait that GameData now implements (and
it's now called SqPackResource.) In a similar vain, Physis comes
with an UnpackedResource and a ResourceResolver to chain multiple
Resources together.
2025-07-08 21:37:03 -04:00
c602e6b28f
Add missing DoorRange data
...
Fixes loading certain LGBs like bg/ex4/03_kld_k5/twn/k5t1/level/bg.lgb
Fixes #13
2025-07-04 11:48:41 -04:00
b74a5c3a96
Remove leftover debug message
2025-07-04 11:31:24 -04:00
3db3ec4d0b
Add initial support for SVB files
...
Don't know what these are yet, but very similar to the other ones
I just implemented.
2025-07-04 11:16:01 -04:00
a8cb676e97
Begin parsing LVB files
...
These are actually quite useful, and contains stuff like the LGBs
used for the territory.
2025-07-04 11:11:05 -04:00
b04121dfba
Initial support for LCB files
...
Don't know what these are yet either, but we can begin to read
them.
2025-07-04 09:44:05 -04:00
f23ebd0597
Begin adding support for UWB files
...
I'm not entirely sure what this is for yet, it's layout/level
related.
2025-07-04 09:27:04 -04:00
5a5896a126
Fix loading the Solution Nine background LGB
...
See #13
2025-07-01 18:18:02 -04:00
056fdb52a0
Always return ExcelRowKind::Subrows in a subrow-enabled sheet
...
See #14
2025-07-01 18:14:50 -04:00
209e62e5b5
Fix tests due to API changes
2025-06-30 21:43:33 -04:00
862b16b681
Fix reading subrow ids again, add helpers to get subrow
2025-06-30 21:29:23 -04:00
6ebb7acfcd
Add support for reading subrows and their ids
2025-06-30 19:59:25 -04:00
029b1fb3f5
Bump version to 0.5
2025-06-24 15:50:07 -04:00
21a5ddc763
Fix parsing of certain LGB files
...
These have unknown instance objects, and were tripping up our parsing. I
don't know what these are yet, but I added them anyway.
I also made sure that the parser doesn't return None for technically
valid but empty LGB files.
2025-06-22 10:24:21 -04:00
70ebe7d03d
Add temporary workaround for writing TerritoryType
...
Of their packed boolean columns has 3 extra bytes at the end... for some
reason. Just like the other test case, I added a temporary workaround
for it.
2025-06-21 17:11:53 -04:00
b7cd6c6c7b
Fix writing multiple packed boolean columns
...
As seen in TerritoryTYpe, there can be two instances of packed booleans
for some reason.
2025-06-21 17:11:53 -04:00
7bf8f5016c
Remove a panic when reading certain LGB files
2025-06-21 09:45:48 -04:00
a9a1b02fd4
Remove leftover debugging prints
2025-06-21 09:42:23 -04:00
67a23e59bf
Fix extracting expansion files
...
I broke this when changing a split to split_once I think, and it stayed
broken longer than it ever should have. To stop that from happening
again, more tests are added to catch this.
2025-06-21 09:40:29 -04:00
5002e4a590
Simplify shader reading
2025-06-02 20:20:03 -04:00
4709a3a3c4
Fix reading some Dawntrail shader packages
...
Apparently no one knows what these are, so I just skip them or whatever.
2025-06-02 19:44:27 -04:00
f46a32462e
Remove texture usage enum from Sampler
...
This is a bit of an awkward API, because we have to manually keep the
CRC list up-to-date when in other cases that's left up to consumers. I
added a comment about how to figure out this value.
2025-06-02 17:44:04 -04:00
1d3192de23
Fix various Cargo and Clippy warnings
2025-06-02 17:32:31 -04:00
b0047dd77d
Remove unwrap in tex parsing
2025-06-02 16:59:00 -04:00
1071ae0ccd
Add None as a model flag
2025-05-17 13:07:02 -04:00
0ad7c61b4d
More flags whoop
2025-05-17 13:01:24 -04:00
061954d73d
Add another model flag, reorder
2025-05-17 12:52:20 -04:00
4a48a3bc7a
Add more unk model flags to allow more bgparts to load
2025-05-17 12:43:35 -04:00
e2a8c695d7
Add a more exhaustive list of texture formats, support BC7 textures
...
As seen in certain bgpart model textures.
2025-05-17 12:32:23 -04:00
a905234a18
Add new model flag as seen in some bgparts
2025-05-17 12:04:52 -04:00
f58d4e6bb0
Make indice reading (for models) slightly faster
...
As suspected - this was a little slow, and can be corroborated with
Hotspot. This is only a marginal increase in performance, it isn't huge
but still worth doing.
2025-05-17 10:22:27 -04:00
39f1c9665f
Read BGInstanceObject asset and collision paths, expose LayerHeader
2025-05-14 20:02:37 -04:00
6413a592f0
Implement Clone, Copy for Transformation
2025-05-13 16:44:15 -04:00
6a54c96111
Make transformation struct available in C
2025-05-13 16:43:00 -04:00
76120b2dd0
Handle multiple string columns when writing
2025-05-11 00:48:31 -04:00
8a3e8dad64
Move EXD parsing functions into their own module
...
It was getting hard to work in here, so I moved all of the
private-API-parsing-things into their own file.
2025-05-10 23:51:22 -04:00