2024-04-29 20:52:25 -04:00
|
|
|
// SPDX-FileCopyrightText: 2024 Joshua Goins <josh@redstrate.com>
|
|
|
|
// 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,
|
2024-05-18 09:42:07 -04:00
|
|
|
simulator_offset: u32,
|
2024-04-29 20:52:25 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
#[derive(Debug)]
|
2024-05-18 09:42:07 -04:00
|
|
|
pub struct Phyb {}
|
2024-04-29 20:52:25 -04:00
|
|
|
|
|
|
|
impl Phyb {
|
|
|
|
/// Reads an existing ULD file
|
|
|
|
pub fn from_existing(buffer: ByteSpan) -> Option<Self> {
|
|
|
|
let mut cursor = Cursor::new(buffer);
|
2024-05-18 09:42:07 -04:00
|
|
|
PhybHeader::read(&mut cursor).ok()?;
|
2024-04-29 20:52:25 -04:00
|
|
|
|
2024-05-18 09:42:07 -04:00
|
|
|
Some(Phyb {})
|
2024-04-29 20:52:25 -04:00
|
|
|
}
|
|
|
|
}
|