- Update jomini parser to 0.20
- Update libdeflater to 0.11
- Allow ownership transfer of melted output
- Update to 2021 edition
- Update to 1.34 data model
- Add default more efficient miniz inflation
- Add libdeflate inflation feature
- Empty EU4_IRONMAN_TOKENS 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
EU4_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.
- Update zip dependency to latest
- Improve accuracy of melting output
- Melted output is now compatible from loading from in game menu
- Expose token stringification customization with
_with_tokens
methods - Significant changes to the model structure to support latest use cases
- Fix improper melted output when a name ended with a quote
- Include mod info in deserialization
- Track release and play as in ironman
- Allow invalid dates to be melted except in error mode
- Melt with tabs instead of spaces
- Melted quoted values are now escaped as needed
- Melt output with same precision as game, so 32 bit numbers are written out with 3 decimal points and 64 bit numbers are written out with 5 decimal points
- Fix some id tokens being accidentally interpretted as dates in the melted output
- Additional fields from leviathan are deserialized
- Omit carriage return when writing melted output
- Rework melter api to match that of the other repos
- Support melting prehistoric dates correctly
- Additional fields deserialized
- Fix to melting large 64bit floating point values
- Leviathan support
- Bump internal parser to latest
- Fix to melter to keep quoted binary keys as unquoted in plaintext
- Fix tech being corrupted on loading melted save by updating melter to better know if a value should be quoted
- Deserialize mercenary companies
Expect significant breaking changes to query API. Additionally,
- Expose country ideas
- Expose war info
- Expose additional monarch, heir and queen fields
- Rework
CountryTag
to require a parsing step before creation - Correctly deserialize and melt seeds
- Return unknown tokens when melting
ProvinceId
implementsOrd
andPartialOrd
CountryTag
implementsOrd
andPartialOrd
ProvinceId
numeric id exposed inas_u16
- Update internal parser for performance improvements
- Deserialize saves that have no DLC enabled
- Update internal parser to latest
- API change:
Eu4Date::eu4_fmt
->Eu4Date::game_fmt
- API change:
Eu4Date::EU4_START_DATE
->Eu4Date::eu4_start_date()
- Update internal parser to latest which should bring additional performance and robustness against malicious input
- Parsing dates from strings became 30% faster, so may have a marginal impact on save parsing performance
- Update internal parser, jomini, to latest version
- Exclude other boolean province values from being detected as buildings in
Query::province_building_history
- Fix mmap feature compilation
- Fix
Eu4Date::days_until
calculation involving September dates - Add additional validation when constructing
Eu4Date
so that nonsensical dates can't be created Eu4Date
now implementsCopy
- Major performance improvements to parsing Eu4Dates
- Migrate memory map extraction to use anonymous region instead of temporary file
- Query engine reorganized to hide fields behind public methods to aid transparent caches
- Expose dlc function at root of docs
- Move data structs behind model module
- Include destroyed buildings in province building history
- Include initial buildings in province building history query
- Add province base tax, production, and manpower
- Start extracting province history
- Add province building history query to query engine
- Fix province building deserialization for ironman saves
Eu4Date::eu4_fmt
omits leading zeros in date- Building information extraction from saves
- Bump jomini to v0.2
- Rerun the build when ironman token env var changes
- Encapsulate internals of Eu4Date
- Add length check when deserializing country tags
Init commit