From 4fbd2cb66850c9f57acebc48d971b891001718a9 Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Mon, 29 Apr 2024 20:52:25 -0400 Subject: [PATCH] Add PHYB module --- src/lib.rs | 3 +++ src/phyb.rs | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 src/phyb.rs diff --git a/src/lib.rs b/src/lib.rs index f4c6322..437aab2 100755 --- a/src/lib.rs +++ b/src/lib.rs @@ -150,3 +150,6 @@ pub mod skp; /// Reading SCHD files pub mod schd; + +/// Reading PHYB files +pub mod phyb; diff --git a/src/phyb.rs b/src/phyb.rs new file mode 100644 index 0000000..e27eaf6 --- /dev/null +++ b/src/phyb.rs @@ -0,0 +1,37 @@ +// SPDX-FileCopyrightText: 2024 Joshua Goins +// SPDX-License-Identifier: GPL-3.0-or-later + +use std::io::Cursor; + +use crate::ByteSpan; +use binrw::binread; +use binrw::BinRead; + +#[binread] +#[derive(Debug)] +#[brw(little)] +struct PhybHeader { + version: [u8; 4], + + // TODO: this is definitely wrong + #[br(if(version[0] > 0))] + data_type: u32, + + collision_offset: u32, + simulator_offset: u32 +} + +#[derive(Debug)] +pub struct Phyb { + +} + +impl Phyb { + /// Reads an existing ULD file + pub fn from_existing(buffer: ByteSpan) -> Option { + let mut cursor = Cursor::new(buffer); + let header = PhybHeader::read(&mut cursor).ok()?; + + Some(Phyb{}) + } +}