Commit Graph

28 Commits

Author SHA1 Message Date
5e3a07dfa6 Tolerate trailing or missing null bytes at end of decompressed CELL record data
Fixes some crashes when dealing with wierd decompressed CELL data. More details here: https://en.uesp.net/wiki/Skyrim_Mod_talk:Mod_File_Format/CELL#Trailing_or_missing_null_bytes_at_end_of_decompressed_CELL_data
2022-10-01 17:49:43 -04:00
4f70f90d2b Bump version to 0.4.0
Minor version change for the breaking change in the public API of Plugin (now uses HashSet instead of Vec for cells and worlds).
2022-09-30 16:44:16 -04:00
e79480794f Use HashSet for cells and in Plugin public API 2022-09-30 16:43:19 -04:00
22c5744cd5 Bump to version 0.3.4 2022-09-30 12:26:42 -04:00
2adcce94ba Store worlds in a HashSet to deduplicate
Came across a valid plugin file that has multiple WRLD records for the same world. I didn't know that was possible, so this change prevents that from outputting duplicate worlds in the worlds array.
2022-09-30 12:26:03 -04:00
7932d98e72 Bump version to 0.3.3 2022-03-26 16:26:46 -04:00
85494df510 Derive Clone on Cell and World 2022-03-26 16:26:20 -04:00
3ae52b32bb Bump version to 0.3.2 2022-03-03 01:06:08 -05:00
1c67ea7943 Export World from root 2022-03-03 01:05:42 -05:00
f6a74ded01 Bump version to 0.3.1 2021-08-27 00:41:28 -04:00
f8ddd6f939 Only skip flags in XCLC if they exist
I guess older esp files don't have flags in the struct, which wasn't mentioned by the UESP mod file format page.
2021-08-27 00:40:33 -04:00
173289a7e8 Bump version to 0.3.0
Bumping minor version because type change in `PluginHeader` from `&str` to `Cow<str>`.
2021-07-23 23:15:33 -04:00
151ff191cc Parse strings in Windows-1252 encoding
According to UESP, this is what strings in plugin files are encoded in: https://en.uesp.net/wiki/Skyrim_Mod:File_Format_Conventions

Decoding from this encoding fixes parsing some files with zstrings that contain special characters like umlauts.
2021-07-23 23:14:08 -04:00
261c0e21c3 Bump version to 0.2.1 2021-07-21 22:23:28 -04:00
979f70177e Fix handling of XXXX fields in plugin header 2021-07-21 22:22:49 -04:00
bb08e26b95 Bump version to 0.2.0 2021-07-19 00:24:48 -04:00
66da86fed9 Parse WRLD records & link cells to worlds
Cell coordinates are useless without knowing the worldspace that they index into.
2021-07-19 00:19:26 -04:00
c20f4f71dd Bump to version 0.1.4 2021-07-15 10:35:36 -04:00
4eaa287905 Don't crash on unknown record flag bits 2021-07-15 10:35:04 -04:00
1bc8f59a5c Remove break that breaks parsing of some plugins
Think I left this in on accident from some testing a long time ago
2021-07-15 10:34:23 -04:00
12beff1014 Prevent reading past TES4 record in header parse
Bump version to 0.1.3
2021-06-12 22:54:10 -04:00
c952eeac7a Upgrade version to 0.1.2 2021-05-29 16:22:38 -04:00
9b33136604 Handle special XXXX fields 2021-05-29 16:21:58 -04:00
0e3d127779 Patch version 0.1.1 2021-05-20 22:22:17 -04:00
9c7d850298 Typo fix 2021-05-20 22:21:27 -04:00
af8e66fa66 Add documentation 2021-05-20 20:47:50 -04:00
447ad25c8a Clean some code, add README 2021-05-20 19:30:26 -04:00
200cf73248 Add parser and cli, basic extraction done 2021-05-20 01:33:11 -04:00