add settings support for alternative replay glitching
This commit is contained in:
+31
-1
@@ -1,6 +1,10 @@
|
||||
use crate::{
|
||||
features,
|
||||
gui::{settings::Settings, tools, ui_ext::UiExt},
|
||||
gui::{
|
||||
settings::{BlockMethod, ROCKSTAR_SAVE_SERVER, Settings},
|
||||
tools,
|
||||
ui_ext::UiExt,
|
||||
},
|
||||
util::{
|
||||
consts::{colours, game::WINDOW_TITLE},
|
||||
persistent_state::PersistentState,
|
||||
@@ -223,6 +227,32 @@ impl App {
|
||||
ui.label("Launch version");
|
||||
});
|
||||
});
|
||||
ui.collapsing("Network", |ui| {
|
||||
ui.horizontal(|ui| {
|
||||
egui::ComboBox::from_id_salt("Block method")
|
||||
.selected_text(self.settings.block_method.to_string())
|
||||
.show_ui(ui, |ui| {
|
||||
ui.build_menu(&mut self.settings.block_method);
|
||||
});
|
||||
ui.label("Block method");
|
||||
});
|
||||
ui.horizontal(|ui| {
|
||||
ui.add_enabled_ui(
|
||||
self.settings.block_method == BlockMethod::SaveServer,
|
||||
|ui| {
|
||||
ui.add(
|
||||
egui::TextEdit::singleline(&mut self.settings.save_server_ip)
|
||||
.char_limit(15)
|
||||
.desired_width(92.0),
|
||||
);
|
||||
ui.label("Save server IP");
|
||||
if ui.button("↺").clicked() {
|
||||
self.settings.save_server_ip = String::from(ROCKSTAR_SAVE_SERVER);
|
||||
};
|
||||
},
|
||||
);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
fn show_about_stage(&self, _ctx: &egui::Context, ui: &mut egui::Ui) {
|
||||
|
||||
+32
-7
@@ -2,12 +2,7 @@ use crate::util::win;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use strum::{Display, EnumIter};
|
||||
|
||||
#[derive(Clone, Copy, Debug, Default, Display, PartialEq, Eq, Serialize, Deserialize, EnumIter)]
|
||||
pub enum LaunchVersion {
|
||||
#[default]
|
||||
Enhanced,
|
||||
Legacy,
|
||||
}
|
||||
pub const ROCKSTAR_SAVE_SERVER: &str = "192.81.241.171";
|
||||
|
||||
#[derive(Clone, Copy, Debug, Default, Display, PartialEq, Eq, Serialize, Deserialize, EnumIter)]
|
||||
pub enum Theme {
|
||||
@@ -42,9 +37,39 @@ impl From<Theme> for catppuccin_egui::Theme {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Default, Serialize, Deserialize)]
|
||||
#[derive(Clone, Copy, Debug, Default, Display, PartialEq, Eq, Serialize, Deserialize, EnumIter)]
|
||||
pub enum LaunchVersion {
|
||||
#[default]
|
||||
Enhanced,
|
||||
Legacy,
|
||||
}
|
||||
|
||||
#[derive(Clone, Copy, Debug, Default, Display, PartialEq, Eq, Serialize, Deserialize, EnumIter)]
|
||||
pub enum BlockMethod {
|
||||
#[default]
|
||||
#[strum(to_string = "Entire game")]
|
||||
EntireGame,
|
||||
#[strum(to_string = "Save server")]
|
||||
SaveServer,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Serialize, Deserialize)]
|
||||
pub struct Settings {
|
||||
pub start_elevated: bool,
|
||||
pub theme: Theme,
|
||||
pub launch_version: LaunchVersion,
|
||||
pub save_server_ip: String,
|
||||
pub block_method: BlockMethod,
|
||||
}
|
||||
|
||||
impl Default for Settings {
|
||||
fn default() -> Self {
|
||||
Self {
|
||||
start_elevated: false,
|
||||
theme: Theme::default(),
|
||||
launch_version: LaunchVersion::default(),
|
||||
block_method: BlockMethod::default(),
|
||||
save_server_ip: String::from(ROCKSTAR_SAVE_SERVER),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user