diff --git a/flatbuffers/src/main.rs b/flatbuffers/src/main.rs index 6f77514..dbb289d 100644 --- a/flatbuffers/src/main.rs +++ b/flatbuffers/src/main.rs @@ -28,12 +28,23 @@ fn main() { println!("Monster hp: {}", monster_2.hp()); println!("Monster name: {:?}", monster_2.name()); - let offset_to_body = i32::from_le_bytes(get_4bytes(&buff)); + let offset_to_body = u32::from_le_bytes(get_4bytes(&buff)); println!("Offset to body : {:>4}, hex: {}", offset_to_body, hex::encode(&get_4bytes(&buff))); let xx = &buff[4..offset_to_body as usize]; println!("{}", hex::encode(xx)); - let offset_to_vtable = i32::from_le_bytes(get_4bytes(&buff[offset_to_body as usize..])); + let offset_to_vtable = u32::from_le_bytes(get_4bytes(&buff[offset_to_body as usize..])); println!("Offset to vtable: {:>4}, hex: {}", offset_to_vtable, hex::encode(get_4bytes(&buff[offset_to_body as usize..]))); + + let a1 = u16::from_le_bytes(get_2bytes(&buff[offset_to_body as usize..])); + let a2 = u16::from_le_bytes(get_2bytes(&buff[(offset_to_body + 2) as usize..])); + println!("a1: {}, a2: {}", a1, a2); +} + +fn get_2bytes(buff: &[u8]) -> [u8; 2] { + let mut ret = [0_u8; 2]; + ret[0] = buff[0]; + ret[1] = buff[1]; + ret } fn get_4bytes(buff: &[u8]) -> [u8; 4] {