feat: verbose toggle, info tab, many misc fixes

This commit is contained in:
2025-04-14 19:20:08 +00:00
parent 37df371006
commit f588892b05
30 changed files with 410 additions and 186 deletions

View File

@ -2,10 +2,12 @@ use serde::{Deserialize, Serialize};
use super::misc::Game;
#[derive(Serialize, Deserialize, Clone)]
#[serde(default)]
pub struct GlobalConfig {
pub recent_profile: Option<(Game, String)>,
pub offline_mode: bool,
pub enable_autoupdates: bool,
pub verbose: bool,
}
impl Default for GlobalConfig {
@ -13,13 +15,16 @@ impl Default for GlobalConfig {
Self {
recent_profile: Default::default(),
offline_mode: false,
enable_autoupdates: true
enable_autoupdates: true,
verbose: false,
}
}
}
#[derive(Serialize, Deserialize, Clone, Debug)]
#[serde(rename_all = "snake_case")]
pub enum GlobalConfigField {
OfflineMode,
EnableAutoupdates
EnableAutoupdates,
Verbose
}

View File

@ -5,10 +5,9 @@ use crate::pkg::PkgKey;
use super::profile::ProfileModule;
#[derive(Clone, Serialize, Deserialize, Debug, PartialEq, Copy)]
#[serde(rename_all = "snake_case")]
pub enum Game {
#[serde(rename = "ongeki")]
Ongeki,
#[serde(rename = "chunithm")]
Chunithm,
}
@ -89,10 +88,9 @@ pub enum StartCheckError {
}
#[derive(Default, Serialize, Deserialize, Clone)]
#[serde(default)]
pub struct ConfigHook {
#[serde(skip_serializing_if = "Option::is_none")]
pub allnet_auth: Option<ConfigHookAuth>,
#[serde(skip_serializing_if = "Option::is_none")]
pub aime: Option<ConfigHookAime>,
}

View File

@ -14,6 +14,7 @@ pub enum Aime {
}
#[derive(Deserialize, Serialize, Clone, Debug)]
#[serde(default)]
pub struct AMNet {
pub name: String,
pub addr: String,
@ -26,18 +27,17 @@ impl Default for AMNet {
}
}
#[derive(Deserialize, Serialize, Clone, Debug)]
#[derive(Deserialize, Serialize, Clone, Debug, Default )]
#[serde(default)]
pub struct Segatools {
pub target: PathBuf,
pub hook: Option<PkgKey>,
pub io: Option<PkgKey>,
#[serde(default)]
pub aime: Aime,
pub amfs: PathBuf,
pub option: PathBuf,
pub appdata: PathBuf,
pub intel: bool,
#[serde(default)]
pub amnet: AMNet,
pub aime_port: Option<i32>,
}
@ -69,7 +69,8 @@ pub enum DisplayMode {
Fullscreen
}
#[derive(Deserialize, Serialize, Clone, Debug)]
#[derive(Deserialize, Serialize, Clone, Debug, Default)]
#[serde(default)]
pub struct Display {
pub target: String,
pub rez: (i32, i32),
@ -77,11 +78,7 @@ pub struct Display {
pub rotation: Option<i32>,
pub frequency: i32,
pub borderless_fullscreen: bool,
#[serde(default)]
pub dont_switch_primary: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub monitor_index_override: Option<i32>,
}
@ -113,6 +110,7 @@ pub enum NetworkType {
}
#[derive(Deserialize, Serialize, Clone, Default, Debug)]
#[serde(default)]
pub struct Network {
pub network_type: NetworkType,
@ -127,11 +125,13 @@ pub struct Network {
}
#[derive(Deserialize, Serialize, Clone, Default, Debug)]
#[serde(default)]
pub struct BepInEx {
pub console: bool,
}
#[derive(Deserialize, Serialize, Clone)]
#[serde(default)]
pub struct Wine {
pub runtime: PathBuf,
pub prefix: PathBuf,
@ -155,20 +155,17 @@ pub enum Mu3Audio {
Excl2Ch,
}
#[derive(Deserialize, Serialize, Clone, Debug)]
#[derive(Deserialize, Serialize, Clone, Debug, Default)]
#[serde(default)]
pub struct Mu3Ini {
#[serde(skip_serializing_if = "Option::is_none")]
pub audio: Option<Mu3Audio>,
#[serde(skip_serializing_if = "Option::is_none")]
pub blacklist: Option<(i32, i32)>,
}
fn default_true() -> bool { true }
#[derive(Deserialize, Serialize, Clone, Debug)]
#[serde(default)]
pub struct OngekiKeyboard {
#[serde(default = "default_true")] pub enabled: bool,
pub enabled: bool,
pub use_mouse: bool,
pub coin: i32,
pub svc: i32,
@ -208,8 +205,9 @@ impl Default for OngekiKeyboard {
}
#[derive(Deserialize, Serialize, Clone, Debug)]
#[serde(default)]
pub struct ChunithmKeyboard {
#[serde(default = "default_true")] pub enabled: bool,
pub enabled: bool,
pub coin: i32,
pub svc: i32,
pub test: i32,