diff options
Diffstat (limited to 'src/to_clt/env.rs')
-rw-r--r-- | src/to_clt/env.rs | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/to_clt/env.rs b/src/to_clt/env.rs new file mode 100644 index 0000000..f242298 --- /dev/null +++ b/src/to_clt/env.rs @@ -0,0 +1,44 @@ +use super::*; + +#[mt_derive(to = "clt")] +pub struct ObjAdd; // TODO + +#[mt_derive(to = "clt")] +pub struct ObjMsg; // TODO + +#[mt_derive(to = "clt", repr = "u8", enumset)] +pub enum MapBlockFlag { + IsUnderground = 0, + DayNightDiff, + LightExpired, + NotGenerated, +} + +pub const ALWAYS_LIT_FROM: u16 = 0xf000; + +#[mt_derive(to = "clt")] +pub struct MapBlock { + pub flags: EnumSet<MapBlockFlag>, + pub lit_from: u16, + + #[mt(const8 = 2)] + #[serde(skip)] + pub param0_size: (), + + #[mt(const8 = 2)] + #[serde(skip)] + pub param12_size: (), + + #[serde(with = "serde_arrays")] + pub param_0: [u16; 4096], + #[serde(with = "serde_arrays")] + pub param_1: [u8; 4096], + #[serde(with = "serde_arrays")] + pub param_2: [u8; 4096], + + pub node_metas: HashMap<u16, NodeMeta>, + + #[mt(const8 = 2)] + #[serde(skip)] + pub version: (), +} |