mirror of
https://github.com/redstrate/Kawari.git
synced 2025-07-01 12:17:46 +00:00
49 lines
1.3 KiB
Rust
49 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);
|
||
|
}
|
||
|
}
|