diff --git a/src/gui/debug.rs b/src/gui/debug.rs index e5a782e..300892b 100644 --- a/src/gui/debug.rs +++ b/src/gui/debug.rs @@ -5,8 +5,8 @@ use crate::{ ui_ext::UiExt, }, util::consts::{ - APP_STORAGE_PATH, game::{EXE_ENHANCED, EXE_LEGACY}, + path, }, }; use eframe::egui; @@ -15,7 +15,7 @@ impl App { fn add_debug_viewport_contents(&mut self, ui: &mut egui::Ui) { ui.collapsing("misc", |ui| { if ui.button("open storage path").clicked() { - open::that_detached(APP_STORAGE_PATH.as_path()).unwrap(); + open::that_detached(path::APP_STORAGE.as_path()).unwrap(); } ui.checkbox( &mut self.meta.newer_version_available, diff --git a/src/gui/run.rs b/src/gui/run.rs index 52deab8..0f079e1 100644 --- a/src/gui/run.rs +++ b/src/gui/run.rs @@ -3,7 +3,7 @@ use crate::{ app::{App, WINDOW_SIZE}, tools, }, - util::{consts::APP_STORAGE_PATH, persistent_state::PersistentState, win}, + util::{consts::path, persistent_state::PersistentState, win}, }; use eframe::egui; use std::{ @@ -13,11 +13,10 @@ use std::{ }; fn panic_hook(panic_info: &std::panic::PanicHookInfo<'_>) { - let log_path = APP_STORAGE_PATH.join("panic.log"); let mut file = File::options() .create(true) .append(true) - .open(log_path) + .open(path::APP_ERROR.as_path()) .unwrap(); let timestamp = SystemTime::now() .duration_since(UNIX_EPOCH) diff --git a/src/util/consts.rs b/src/util/consts.rs index 324b907..d39f576 100644 --- a/src/util/consts.rs +++ b/src/util/consts.rs @@ -1,8 +1,12 @@ -use std::{env, path::PathBuf, sync::LazyLock}; - -pub static APP_STORAGE_PATH: LazyLock = LazyLock::new(|| { - PathBuf::from(env::var("LOCALAPPDATA").unwrap_or_else(|_| String::from("."))).join("GTA Tools") -}); +pub mod path { + use std::{env, path::PathBuf, sync::LazyLock}; + pub static APP_STORAGE: LazyLock = LazyLock::new(|| { + PathBuf::from(env::var("LOCALAPPDATA").unwrap_or_else(|_| String::from("."))) + .join("GTA Tools") + }); + pub static APP_CONFIG: LazyLock = LazyLock::new(|| APP_STORAGE.join("config.json")); + pub static APP_ERROR: LazyLock = LazyLock::new(|| APP_STORAGE.join("error.log")); +} pub mod game { pub const EXE_ENHANCED: &str = "GTA5_Enhanced.exe"; diff --git a/src/util/persistent_state.rs b/src/util/persistent_state.rs index c0cc5aa..1642a2c 100644 --- a/src/util/persistent_state.rs +++ b/src/util/persistent_state.rs @@ -1,14 +1,10 @@ -use crate::{features::launch::Platform, gui::settings::Settings, util::consts::APP_STORAGE_PATH}; +use crate::{features::launch::Platform, gui::settings::Settings, util::consts::path}; use serde::{Deserialize, Serialize}; use std::{ fs::{self, File}, io::Write, - path::PathBuf, - sync::LazyLock, }; -static CONFIG_PATH: LazyLock = LazyLock::new(|| APP_STORAGE_PATH.join("config.json")); - #[derive(Serialize, Deserialize)] pub struct PersistentState { pub launcher: Platform, @@ -17,13 +13,13 @@ pub struct PersistentState { impl PersistentState { pub fn get() -> Option { - fs::read_to_string(CONFIG_PATH.as_path()) + fs::read_to_string(path::APP_CONFIG.as_path()) .ok() .and_then(|config| serde_json::from_str::(&config).ok()) } pub fn set(&self) { - let config_path = CONFIG_PATH.as_path(); + let config_path = path::APP_CONFIG.as_path(); let config_path_parent = config_path.parent().unwrap(); if !config_path_parent.exists() { fs::create_dir(config_path_parent).unwrap();