mirror of
https://github.com/redstrate/Kawari.git
synced 2025-07-01 04:07:45 +00:00
These were kind of scattered everywhere, instead we should move them into their own module. Kawari's custom IPC is moved here too.
48 lines
1.3 KiB
Rust
48 lines
1.3 KiB
Rust
use binrw::binrw;
|
|
|
|
#[binrw]
|
|
#[brw(little)]
|
|
#[derive(Debug, Clone, Default)]
|
|
pub struct Equip {
|
|
pub main_weapon_id: u64,
|
|
pub sub_weapon_id: u64,
|
|
pub crest_enable: u8,
|
|
#[brw(pad_before = 1)]
|
|
pub pattern_invalid: u16,
|
|
#[brw(pad_after = 12)]
|
|
pub model_ids: [u32; 10],
|
|
}
|
|
|
|
#[cfg(test)]
|
|
mod tests {
|
|
use std::{fs::read, io::Cursor, path::PathBuf};
|
|
|
|
use binrw::BinRead;
|
|
|
|
use super::*;
|
|
|
|
#[test]
|
|
fn read_containerinfo() {
|
|
let mut d = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
|
|
d.push("resources/tests/equip.bin");
|
|
|
|
let buffer = read(d).unwrap();
|
|
let mut buffer = Cursor::new(&buffer);
|
|
|
|
let equip = Equip::read_le(&mut buffer).unwrap();
|
|
assert_eq!(equip.main_weapon_id, 4297785545);
|
|
assert_eq!(equip.sub_weapon_id, 0);
|
|
assert_eq!(equip.crest_enable, 0);
|
|
assert_eq!(equip.pattern_invalid, 1);
|
|
assert_eq!(equip.model_ids[0], 0);
|
|
assert_eq!(equip.model_ids[1], 0);
|
|
assert_eq!(equip.model_ids[2], 131156);
|
|
assert_eq!(equip.model_ids[3], 131156);
|
|
assert_eq!(equip.model_ids[4], 131156);
|
|
assert_eq!(equip.model_ids[5], 131073);
|
|
assert_eq!(equip.model_ids[6], 131073);
|
|
assert_eq!(equip.model_ids[7], 131073);
|
|
assert_eq!(equip.model_ids[8], 0);
|
|
assert_eq!(equip.model_ids[9], 131073);
|
|
}
|
|
}
|