mirror of
https://github.com/open-goal/launcher.git
synced 2024-10-20 04:57:38 -04:00
b/game: support launching gk
at version 0.1.35 and above (#163)
This commit is contained in:
parent
a17d4ef5ac
commit
3da5106f1d
1
src-tauri/Cargo.lock
generated
1
src-tauri/Cargo.lock
generated
|
@ -2289,6 +2289,7 @@ dependencies = [
|
|||
"log",
|
||||
"reqwest",
|
||||
"rev_buf_reader",
|
||||
"semver",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"sysinfo",
|
||||
|
|
|
@ -26,6 +26,7 @@ futures-util = "0.3.26"
|
|||
log = "0.4.17"
|
||||
reqwest = { version = "0.11", features = ["json"] }
|
||||
rev_buf_reader = "0.3.0"
|
||||
semver = "1.0.17"
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
serde_json = "1.0.95"
|
||||
sysinfo = "0.28.4"
|
||||
|
|
|
@ -7,6 +7,7 @@ use std::{
|
|||
};
|
||||
|
||||
use log::{info, warn};
|
||||
use semver::Version;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use serde_json::Value;
|
||||
|
||||
|
@ -493,16 +494,53 @@ pub async fn launch_game(
|
|||
let config_lock = config.lock().await;
|
||||
let config_info = common_prelude(&config_lock)?;
|
||||
|
||||
let tooling_version = Version::parse(
|
||||
config_info
|
||||
.active_version
|
||||
.strip_prefix("v")
|
||||
.unwrap_or(&config_info.active_version),
|
||||
)
|
||||
.unwrap_or(Version::new(0, 1, 35)); // assume new format if none can be found
|
||||
|
||||
let data_folder = get_data_dir(&config_info, &game_name, false)?;
|
||||
let exec_info = get_exec_location(&config_info, "gk")?;
|
||||
|
||||
let mut args = vec!["-boot".to_string(), "-fakeiso".to_string()];
|
||||
let mut args;
|
||||
// NOTE - order unfortunately matters for gk args
|
||||
if in_debug {
|
||||
args.push("-debug".to_string());
|
||||
if tooling_version.major == 0 && tooling_version.minor <= 1 && tooling_version.patch < 35 {
|
||||
// old argument format
|
||||
args = vec![
|
||||
"-boot".to_string(),
|
||||
"-fakeiso".to_string(),
|
||||
"-proj-path".to_string(),
|
||||
data_folder.to_string_lossy().into_owned(),
|
||||
];
|
||||
if in_debug {
|
||||
args.push("-debug".to_string());
|
||||
}
|
||||
} else {
|
||||
args = vec![
|
||||
"-v".to_string(),
|
||||
"--game".to_string(),
|
||||
game_name,
|
||||
"--proj-path".to_string(),
|
||||
data_folder.to_string_lossy().into_owned(),
|
||||
"--".to_string(),
|
||||
"-boot".to_string(),
|
||||
"-fakeiso".to_string(),
|
||||
];
|
||||
if in_debug {
|
||||
args.push("-debug".to_string());
|
||||
}
|
||||
}
|
||||
args.push("-proj-path".to_string());
|
||||
args.push(data_folder.to_string_lossy().into_owned());
|
||||
|
||||
log::info!(
|
||||
"Launching game version {:?} -> {:?} with args: {:?}",
|
||||
&config_info.active_version,
|
||||
tooling_version,
|
||||
args
|
||||
);
|
||||
|
||||
let log_file = create_log_file(&app_handle, "game.log", false)?;
|
||||
let mut command = Command::new(exec_info.executable_path);
|
||||
command
|
||||
|
|
|
@ -80,7 +80,15 @@
|
|||
}
|
||||
|
||||
// Sort releases by published date
|
||||
releases = releases.sort((a, b) => b.date.localeCompare(a.date));
|
||||
releases = releases.sort((a, b) => {
|
||||
if (a.date === undefined) {
|
||||
return 1;
|
||||
}
|
||||
if (b.date === undefined) {
|
||||
return -1;
|
||||
}
|
||||
return b.date.localeCompare(a.date);
|
||||
});
|
||||
versionsLoaded = true;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue