Files
robinsr/common/src/structs/persistent.rs
T
2026-05-01 14:07:18 +07:00

71 lines
1.9 KiB
Rust

use std::collections::BTreeMap;
use serde::{Deserialize, Serialize};
use super::{
avatar::MultiPathAvatar,
scene::{Position, Scene},
};
// #[derive(Serialize, Deserialize, Clone, Debug, Copy, PartialEq, Eq, Default)]
// #[repr(u32)]
// pub enum AllowedLanguages {
// #[default]
// En,
// Jp,
// Kr,
// Cn,
// }
// impl FromStr for AllowedLanguages {
// type Err = ();
// fn from_str(input: &str) -> Result<AllowedLanguages, Self::Err> {
// match input {
// "en" => Ok(AllowedLanguages::En),
// "kr" => Ok(AllowedLanguages::Kr),
// "jp" => Ok(AllowedLanguages::Jp),
// "cn" => Ok(AllowedLanguages::Cn),
// _ => Ok(AllowedLanguages::En),
// }
// }
// }
#[derive(Debug, Serialize, Deserialize)]
pub struct Persistent {
#[serde(default)]
pub lineups: BTreeMap<u32, u32>,
#[serde(default)]
pub position: Position,
#[serde(default)]
pub scene: Scene,
pub main_character: MultiPathAvatar,
pub march_type: MultiPathAvatar,
// pub game_language: AllowedLanguages,
// pub voice_language: AllowedLanguages,
#[serde(default = "default_true")]
pub enable_sw_global: Option<bool>,
#[serde(default = "default_true")]
pub enable_castorice_global: Option<bool>,
}
fn default_true() -> Option<bool> {
Some(true)
}
impl Default for Persistent {
fn default() -> Self {
Self {
lineups: BTreeMap::from([(0, 1313), (1, 1006), (2, 8001), (3, 1405)]),
position: Default::default(),
main_character: MultiPathAvatar::FemaleRemembrance,
scene: Default::default(),
march_type: MultiPathAvatar::MarchHunt,
// game_language: AllowedLanguages::En,
// voice_language: AllowedLanguages::Jp,
enable_sw_global: Some(true),
enable_castorice_global: Some(true),
}
}
}