use crate::constants::status::Flags;
use crate::constants::text::DEFAULT_NAME;
#[derive(Debug)]
pub struct SaveData {
pub name: String, pub experience: u16, pub gold: u16, pub weapon: u8, pub armor: u8, pub shield: u8, pub items: [u8; 8], pub herbs: u8, pub keys: u8, pub flags: Flags,
pub pattern: u8, }
impl Default for SaveData {
fn default() -> Self {
Self {
name: DEFAULT_NAME.to_string(),
experience: 0,
gold: 0,
weapon: 0,
armor: 0,
shield: 0,
items: [0; 8],
herbs: 0,
keys: 0,
flags: Flags {
has_dragon_scale: false,
has_warrior_ring: false,
has_cursed_necklace: false,
defeated_dragon: false,
defeated_golem: false,
},
pattern: 0,
}
}
}
pub struct SaveDataArgs {
pub name: Option<String>,
pub experience: Option<u16>,
pub gold: Option<u16>,
pub weapon: Option<u8>,
pub armor: Option<u8>,
pub shield: Option<u8>,
pub items: Option<[u8; 8]>,
pub herbs: Option<u8>,
pub keys: Option<u8>,
pub flags: Option<Flags>,
pub pattern: Option<u8>,
}
impl Default for SaveDataArgs {
fn default() -> Self {
Self {
name: None,
experience: None,
gold: None,
weapon: None,
armor: None,
shield: None,
items: None,
herbs: None,
keys: None,
flags: None,
pattern: None,
}
}
}