diff --git a/src/fot/esh.rs b/src/fot/esh.rs index 5d22a09..087d9f4 100644 --- a/src/fot/esh.rs +++ b/src/fot/esh.rs @@ -7,9 +7,38 @@ use anyhow::Result; use indexmap::IndexMap; #[derive(Debug)] -pub struct ESHValue { - pub data_type: u32, - pub data: Vec +pub struct ESHEntityFlags { + pub entity_id: u16, + pub flags: u16 +} + +#[derive(Debug)] +pub struct ESHFrame { + pub unk1: Vec, + pub a: f32, + pub b: f32, + pub c: f32 +} + +#[derive(Debug)] +pub struct ESHRect { + pub top: i32, + pub left: i32, + pub right: i32, + pub bottom: i32 +} + +#[derive(Debug)] +pub enum ESHValue { + Bool(bool), + Float(f32), + Int(i32), + String(FString), + Sprite(FString), + Binary(Vec), + EntityFlags(ESHEntityFlags), + Frame(ESHFrame), + Rect(ESHRect) } #[derive(Debug)] @@ -31,7 +60,7 @@ impl Decoder for ESH { let data_type = rd.read_u32()?; let data_size = rd.read_u32()? as usize; let data = rd.read_bytes(data_size)?; - props.insert(name, ESHValue { data_type, data }); + //props.insert(name, ESHValue { data_type, data }); } let enc_size = rd.offset() - offset;