From 52f889bb798134bffdf945cb03d2b35af43a6099 Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Wed, 2 Aug 2023 16:28:08 -0400 Subject: [PATCH] Begin work for parsing binary havok files --- src/skeleton.rs | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/skeleton.rs b/src/skeleton.rs index 930ca49..2af9d92 100644 --- a/src/skeleton.rs +++ b/src/skeleton.rs @@ -1,7 +1,33 @@ +use binrw::{binread, until_eof}; use crate::gamedata::MemoryBuffer; use glam::Mat4; use hard_xml::XmlRead; +#[binread] +struct SKLB_v1 { + unk_offset: i16, + havok_offset: i16 +} + +#[binread] +struct SKLB_v2 { + unk_offset: i32, + havok_offset: i32 +} + +#[binread] +#[br(magic = 0x736B6C62i32)] +struct SKLB { + version_one: i16, + version_two: i16, + havok_offset: i32, + + #[br(count = havok_offset)] + raw_header: Vec, + #[br(parse_with = until_eof)] + raw_data: Vec +} + #[derive(Debug)] pub struct Bone { pub name: String,