From a5c1b0ceeeeab72a0a409b62ea43a59d39619e9e Mon Sep 17 00:00:00 2001 From: kcalbxof Date: Sat, 30 Nov 2024 07:08:02 +0300 Subject: [PATCH] add cmd arg for noita exe path --- noita-proxy/src/bookkeeping/mod_manager.rs | 11 ++++++++++- noita-proxy/src/lib.rs | 1 + noita-proxy/src/util/args.rs | 3 +++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/noita-proxy/src/bookkeeping/mod_manager.rs b/noita-proxy/src/bookkeeping/mod_manager.rs index 88c1d0cb..aa591238 100644 --- a/noita-proxy/src/bookkeeping/mod_manager.rs +++ b/noita-proxy/src/bookkeeping/mod_manager.rs @@ -21,6 +21,8 @@ use crate::{ steam_helper::SteamState, }; +use crate::util::args::Args; + #[derive(Default)] enum State { #[default] @@ -150,9 +152,16 @@ impl Modmanager { ui: &mut Ui, settings: &mut ModmanagerSettings, steam_state: Option<&mut SteamState>, + args: &Args, ) { if let State::JustStarted = self.state { - if check_path_valid(&settings.game_exe_path) { + if let Some(path) = &args.exe_path { + if check_path_valid(path) { + settings.game_exe_path = path.to_path_buf(); + info!("Path from command line is valid, checking mod now"); + self.state = State::PreCheckMod; + } + } else if check_path_valid(&settings.game_exe_path) { info!("Path is valid, checking mod now"); self.state = State::PreCheckMod; } else { diff --git a/noita-proxy/src/lib.rs b/noita-proxy/src/lib.rs index 205e8c75..4ae357eb 100644 --- a/noita-proxy/src/lib.rs +++ b/noita-proxy/src/lib.rs @@ -1501,6 +1501,7 @@ impl eframe::App for App { ui, &mut self.modmanager_settings, self.steam_state.as_mut().ok(), + &self.args, ) }); if self.modmanager.is_done() { diff --git a/noita-proxy/src/util/args.rs b/noita-proxy/src/util/args.rs index e412c4e0..a9dd283f 100644 --- a/noita-proxy/src/util/args.rs +++ b/noita-proxy/src/util/args.rs @@ -20,4 +20,7 @@ pub struct Args { /// host either steam or ip. #[argh(option)] pub host: Option, + /// noita.exe path + #[argh(option)] + pub exe_path: Option, }