Crate hoi4save[−][src]
HOI4 Save
HOI4 Save is a library to ergonomically work with Hearts of Iron IV saves (plaintext + binary).
use hoi4save::{Hoi4Extractor, Encoding}; use std::io::Cursor; let data = std::fs::read("assets/saves/1.10-normal-text.hoi4")?; let (save, encoding) = Hoi4Extractor::extract_save(&data[..])?; assert_eq!(encoding, Encoding::Plaintext); assert_eq!(save.player, String::from("FRA"));
The HOI4 binary format can be converted to plaintext with the help of hoi4save::Melter
:
let data = std::fs::read("assets/saves/1.10-ironman.hoi4")?; let (melted, _unknown_tokens) = hoi4save::Melter::new() .with_on_failed_resolve(hoi4save::FailedResolveStrategy::Stringify) .melt(&data[..])?;
Binary Saves
By default, binary saves will not be decoded properly.
To enable support, one must supply an environment variable
(HOI4_IRONMAN_TOKENS
) that points to a newline delimited
text file of token descriptions. For instance:
0xffff my_test_token 0xeeee my_test_token2
In order to comply with legal restrictions, I cannot share the list of tokens. I am also restricted from divulging how the list of tokens can be derived.
Modules
models |
Structs
Date | Struct specialized to parsing, formatting, and manipulating dates in games |
Hoi4Error | An Hoi4 Error |
Hoi4Extractor | Logic container for extracting data from an Hoi4 save |
Hoi4ExtractorBuilder | Customize how a save is extracted |
Melter | Convert a binary gamestate to plaintext |
Enums
Encoding | Describes the format of the save before decoding |
FailedResolveStrategy | Customize how the deserializer reacts when a token can't be resolved |
Hoi4ErrorKind | Specific type of error |
Type Definitions
Hoi4Date |