- Add
birth
as a known date token - Update jomini parser to 0.20
- Update libdeflater to 0.11
- Fix 1.7 saves using old encoding format
- Allow ownership transfer of melted output
- Bump to edition 2021
- Add more efficient miniz and libdeflate inflation
- Empty CK3_IRONMAN_TOKENS is same as unset
- Saves can be converted into JSON
- One can deserialize and melt a save without parsing the save again
- Saves can be deserialized into arbitrary structures
- Using binary tokens from
CK3_IRONMAN_TOKENS
is no longer implicit and must useEnvTokens
- The inflated size of a save is exposed instead of hard capping it at 200 MB
- Parsing via a
Read + Seek
(and an anonymous memory mapped file as storage for inflated contents) has been dropped in favor of parsing directly from a byte slice. - Uncompressed text saves now supported
- Support CK3 1.6 saves
- Update zip dependency to latest
- Bump parser dependency to latest, no changes
- Support CK3 1.5 saves (new binary floating point format)
- Expose token stringification customization with
_with_tokens
methods
- Fix improper melted output when a name ended with a quote
- Fix large file size of melted output caused by an increasingly large indent from not properly accounting hidden objects
- Melt with tabs instead of spaces
- Melted quoted values are now escaped as needed
- When melting, rewrite save header line with new metadata size
- Omit carriage return when writing melted output
- Allow preservation of ironman fields in melted output with rewrite config
- Additional bugfixes to the melted output preventing CK3 from loading the game
Significant effort was put into improving the melted output, such that CK3 should recognize and continue playing the melted output
- Fix melted output containing quotes when plaintext has no quotes
- Rewrite save header to declare the melted output is uncompressed plaintext
- Increase accuracy of decoding 64 bit floats (alternative format) in ironman format
- Write numbers as integers when ignoring the fractional component would not result in a loss of accuracy
- Identified additional tokens that use the alternative float format
- Update to latest parser API
- Fix additional 64bit floating point values that are melted incorrectly
- Fix incorrect melted gold value
- Bump internal parser to latest
- Bump internal parser to latest
- Melter will only quote values that are quoted in plaintext
- Fixed seed properties being detected and melted as dates instead of numbers
- Breaking: Melter will return a set of unknown tokens (when melting does not fail)
- Update internal parser for performance improvements
- Fix botched release
- Update parser dependency to 0.7
- Able to losslessly melt
levels = { 10 0=1 1=2 }
Update internal parser to latest which brings proper UTF-8 deserialization, performance improvements, and robustness against malicious input
Initial commit with basic extraction and melting capabilities