1
Fork 0
mirror of https://github.com/redstrate/Kawari.git synced 2025-05-02 11:07:45 +00:00

Add ContainerType enum

This commit is contained in:
Joshua Goins 2025-03-23 16:49:48 -04:00
parent 264fac4b4e
commit 48b1b9cdc2
3 changed files with 21 additions and 5 deletions

View file

@ -1,12 +1,26 @@
use binrw::binrw; use binrw::binrw;
#[binrw]
#[brw(little)]
#[brw(repr = u16)]
#[derive(Debug, Clone, Default, PartialEq)]
pub enum ContainerType {
#[default]
Inventory0 = 0,
Inventory1 = 1,
Inventory2 = 2,
Inventory3 = 3,
Equipped = 1000,
}
#[binrw] #[binrw]
#[brw(little)] #[brw(little)]
#[derive(Debug, Clone, Default)] #[derive(Debug, Clone, Default)]
pub struct ContainerInfo { pub struct ContainerInfo {
pub sequence: u32, pub sequence: u32,
pub num_items: u32, pub num_items: u32,
pub container_id: u32, #[brw(pad_after = 2)] // not used
pub container: ContainerType,
pub start_or_finish: u32, pub start_or_finish: u32,
} }
@ -29,7 +43,7 @@ mod tests {
let container_info = ContainerInfo::read_le(&mut buffer).unwrap(); let container_info = ContainerInfo::read_le(&mut buffer).unwrap();
assert_eq!(container_info.sequence, 1); assert_eq!(container_info.sequence, 1);
assert_eq!(container_info.num_items, 0); assert_eq!(container_info.num_items, 0);
assert_eq!(container_info.container_id, 1); assert_eq!(container_info.container, ContainerType::Inventory1);
assert_eq!(container_info.start_or_finish, 0); assert_eq!(container_info.start_or_finish, 0);
} }
} }

View file

@ -1,12 +1,14 @@
use binrw::binrw; use binrw::binrw;
use super::ContainerType;
#[binrw] #[binrw]
#[brw(little)] #[brw(little)]
#[derive(Debug, Clone, Default)] #[derive(Debug, Clone, Default)]
pub struct ItemInfo { pub struct ItemInfo {
pub sequence: u32, pub sequence: u32,
pub unk1: u32, pub unk1: u32,
pub container_id: u16, pub container: ContainerType,
pub slot: u16, pub slot: u16,
pub quantity: u32, pub quantity: u32,
pub catalog_id: u32, pub catalog_id: u32,
@ -42,7 +44,7 @@ mod tests {
let item_info = ItemInfo::read_le(&mut buffer).unwrap(); let item_info = ItemInfo::read_le(&mut buffer).unwrap();
assert_eq!(item_info.sequence, 4); assert_eq!(item_info.sequence, 4);
assert_eq!(item_info.unk1, 0); assert_eq!(item_info.unk1, 0);
assert_eq!(item_info.container_id, 1000); assert_eq!(item_info.container, ContainerType::Equipped);
assert_eq!(item_info.slot, 11); assert_eq!(item_info.slot, 11);
assert_eq!(item_info.quantity, 1); assert_eq!(item_info.quantity, 1);
assert_eq!(item_info.catalog_id, 4426); assert_eq!(item_info.catalog_id, 4426);

View file

@ -48,7 +48,7 @@ mod action_request;
pub use action_request::ActionRequest; pub use action_request::ActionRequest;
mod container_info; mod container_info;
pub use container_info::ContainerInfo; pub use container_info::{ContainerInfo, ContainerType};
mod item_info; mod item_info;
pub use item_info::ItemInfo; pub use item_info::ItemInfo;