Commit Graph

28 Commits

Author SHA1 Message Date
thallada 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
thallada 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
thallada e79480794f Use HashSet for cells and in Plugin public API 2022-09-30 16:43:19 -04:00
thallada 22c5744cd5 Bump to version 0.3.4 2022-09-30 12:26:42 -04:00
thallada 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
thallada 7932d98e72 Bump version to 0.3.3 2022-03-26 16:26:46 -04:00
thallada 85494df510 Derive Clone on Cell and World 2022-03-26 16:26:20 -04:00
thallada 3ae52b32bb Bump version to 0.3.2 2022-03-03 01:06:08 -05:00
thallada 1c67ea7943 Export World from root 2022-03-03 01:05:42 -05:00
thallada f6a74ded01 Bump version to 0.3.1 2021-08-27 00:41:28 -04:00
thallada 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
thallada 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
thallada 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
thallada 261c0e21c3 Bump version to 0.2.1 2021-07-21 22:23:28 -04:00
thallada 979f70177e Fix handling of XXXX fields in plugin header 2021-07-21 22:22:49 -04:00
thallada bb08e26b95 Bump version to 0.2.0 2021-07-19 00:24:48 -04:00
thallada 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
thallada c20f4f71dd Bump to version 0.1.4 2021-07-15 10:35:36 -04:00
thallada 4eaa287905 Don't crash on unknown record flag bits 2021-07-15 10:35:04 -04:00
thallada 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
thallada 12beff1014 Prevent reading past TES4 record in header parse
Bump version to 0.1.3
2021-06-12 22:54:10 -04:00
thallada c952eeac7a Upgrade version to 0.1.2 2021-05-29 16:22:38 -04:00
thallada 9b33136604 Handle special XXXX fields 2021-05-29 16:21:58 -04:00
thallada 0e3d127779 Patch version 0.1.1 2021-05-20 22:22:17 -04:00
thallada 9c7d850298 Typo fix 2021-05-20 22:21:27 -04:00
thallada af8e66fa66 Add documentation 2021-05-20 20:47:50 -04:00
thallada 447ad25c8a Clean some code, add README 2021-05-20 19:30:26 -04:00
thallada 200cf73248 Add parser and cli, basic extraction done 2021-05-20 01:33:11 -04:00