use bilge::prelude::*;
use binrw::binrw;
use galaxy_save_core::{bin::Chunk, face::RFLCreateID, hash::HashCode};
#[cfg(feature = "serde")]
use serde::{Deserialize, Serialize};
#[binrw]
#[br(import(_data_size: usize))]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(Debug, Default)]
pub struct ConfigDataMii {
pub flag: ConfigDataMiiFlag,
pub mii_id: RFLCreateID,
pub icon_id: ConfigDataMiiIcon,
}
impl Chunk for ConfigDataMii {
fn hash_code() -> HashCode {
HashCode::from_raw(0x2836E9)
}
}
#[bitsize(8)]
#[binrw]
#[cfg_attr(feature = "serde", derive(SerializeBits, DeserializeBits))]
#[derive(DebugBits, Clone, Copy, DefaultBits, FromBits)]
#[repr(transparent)]
pub struct ConfigDataMiiFlag {
reserved: u1,
pub unk2: bool,
reserved: u6,
}
#[binrw]
#[brw(repr(u8))]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(Debug, Default)]
pub enum ConfigDataMiiIcon {
Mii = 0,
#[default]
Mario = 1,
Luigi = 2,
Yoshi = 3,
Kinopio = 4,
Peach = 5,
Rosetta = 6,
Tico = 7,
}