use binrw::binrw;
use galaxy_save_core::{
bin::{BinaryDataContentHeaderSerializer, Chunk, HeaderSerializer},
hash::{HashCode, HashCode16},
time::Time,
};
#[cfg(feature = "serde")]
use serde::{Deserialize, Serialize};
#[binrw]
#[br(import(_data_size: usize))]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(Debug, HeaderSerializer)]
pub struct SysConfigData {
#[br(temp)]
#[bw(calc = Self::header_serializer())]
_serializer: BinaryDataContentHeaderSerializer<Self>,
#[br(map = |b: u8| b != 0)]
#[bw(map = |b| u8::from(*b))]
#[header_serializer(name = "mIsEncouragePal60")]
pub is_encourage_pal60: bool,
#[header_serializer(name = "mTimeSent")]
pub time_sent: Time,
#[header_serializer(name = "mSentBytes")]
pub sent_bytes: u32,
#[header_serializer(name = "mBankStarPieceNum")]
pub bank_star_piece_num: u16,
#[header_serializer(name = "mBankStarPieceMax")]
pub bank_star_piece_max: u16,
#[header_serializer(name = "mGiftedPlayerLeft")]
pub gifted_player_left: u8,
#[header_serializer(name = "mGiftedFileNameHash")]
pub gifted_file_name_hash: HashCode16,
}
impl Chunk for SysConfigData {
fn hash_code() -> HashCode {
HashCode::from_raw(0x3)
}
}