Show disclaimer once

Former-commit-id: f4937dba2caca207b02deb18ad209a8435e65b61
This commit is contained in:
Imbris 2019-05-26 16:42:45 -04:00
parent 045f41dae7
commit 38416ef37c
4 changed files with 15 additions and 4 deletions

View File

@ -81,6 +81,10 @@ pub trait PlayState {
fn main() {
// Set up the global state.
let mut settings = Settings::load();
// Save settings to add new fields or create the file if it is not already there
// TODO: Handle this result.
settings.save_to_file();
let window = Window::new(&settings).expect("Failed to create window!");
// Initialize logging.

View File

@ -117,6 +117,9 @@ impl PlayState for MainMenuState {
return PlayStateResult::Push(Box::new(StartSingleplayerState::new()));
}
MainMenuEvent::Quit => return PlayStateResult::Shutdown,
MainMenuEvent::DisclaimerClosed => {
global_state.settings.show_disclaimer = false
}
}
}

View File

@ -90,6 +90,7 @@ pub enum Event {
},
StartSingleplayer,
Quit,
DisclaimerClosed,
}
pub struct MainMenuUi {
@ -129,11 +130,11 @@ impl MainMenuUi {
login_error: None,
connecting: None,
show_servers: false,
show_disclaimer: true,
show_disclaimer: global_state.settings.show_disclaimer,
}
}
fn update_layout(&mut self, global_state: &GlobalState) -> Vec<Event> {
fn update_layout(&mut self, global_state: &mut GlobalState) -> Vec<Event> {
let mut events = Vec::new();
let ref mut ui_widgets = self.ui.set_widgets();
let version = env!("CARGO_PKG_VERSION");
@ -209,8 +210,9 @@ impl MainMenuUi {
.set(self.ids.disc_button, ui_widgets)
.was_clicked()
{
self.show_disclaimer = false
};
self.show_disclaimer = false;
events.push(Event::DisclaimerClosed);
}
} else {
// TODO: Don't use macros for this?
// Input fields

View File

@ -13,6 +13,7 @@ pub struct Settings {
pub log: Log,
pub graphics: GraphicsSettings,
pub audio: AudioSettings,
pub show_disclaimer: bool,
}
/// `ControlSettings` contains keybindings.
@ -117,6 +118,7 @@ impl Default for Settings {
sfx_volume: 0.5,
audio_device: None,
},
show_disclaimer: true,
}
}
}