MP/Create: added button to reset timer settings, ensure they're saved (resolves #1556)
This commit is contained in:
parent
62ef86e2bd
commit
8a960fca68
4 changed files with 66 additions and 18 deletions
|
@ -422,18 +422,47 @@
|
|||
grow_factor = 0
|
||||
|
||||
[column]
|
||||
grow_factor = 0
|
||||
horizontal_grow = true
|
||||
|
||||
border = "all"
|
||||
border_size = 5
|
||||
horizontal_alignment = "left"
|
||||
[toggle_button]
|
||||
id = "time_limit"
|
||||
definition = "default"
|
||||
[grid]
|
||||
|
||||
label = _ "Time Limit"
|
||||
tooltip = _ "Enable custom time limits"
|
||||
[/toggle_button]
|
||||
[row]
|
||||
|
||||
[column]
|
||||
grow_factor = 0
|
||||
|
||||
border = "all"
|
||||
border_size = 5
|
||||
horizontal_alignment = "left"
|
||||
|
||||
[toggle_button]
|
||||
id = "time_limit"
|
||||
definition = "default"
|
||||
|
||||
label = _ "Time Limit"
|
||||
tooltip = _ "Enable custom time limits"
|
||||
[/toggle_button]
|
||||
|
||||
[/column]
|
||||
|
||||
[column]
|
||||
grow_factor = 1
|
||||
|
||||
border = "all"
|
||||
border_size = 5
|
||||
horizontal_alignment = "right"
|
||||
|
||||
[button]
|
||||
id = "reset_timer_defaults"
|
||||
label = _ "Defaults"
|
||||
definition = "default"
|
||||
[/button]
|
||||
|
||||
[/column]
|
||||
|
||||
[/row]
|
||||
|
||||
[/grid]
|
||||
|
||||
[/column]
|
||||
|
||||
|
|
|
@ -289,10 +289,16 @@ void mp_create_game::pre_show(window& win)
|
|||
bind_status_label<slider>(&win, reservoir_->id());
|
||||
bind_status_label<slider>(&win, action_bonus_->id());
|
||||
|
||||
//
|
||||
// Timer reset button
|
||||
//
|
||||
connect_signal_mouse_left_click(
|
||||
find_widget<button>(&win, "reset_timer_defaults", false),
|
||||
std::bind(&mp_create_game::reset_timer_settings, this));
|
||||
|
||||
//
|
||||
// Disable certain settings if we're playing a local game.
|
||||
//
|
||||
|
||||
if(local_mode_) {
|
||||
find_widget<text_box>(&win, "game_name", false).set_active(false);
|
||||
find_widget<text_box>(&win, "game_password", false).set_active(false);
|
||||
|
@ -754,6 +760,8 @@ void mp_create_game::update_map_settings()
|
|||
reservoir_ ->widget_set_enabled(window, time_limit, false);
|
||||
action_bonus_ ->widget_set_enabled(window, time_limit, false);
|
||||
|
||||
find_widget<button>(&window, "reset_timer_defaults", false).set_active(time_limit);
|
||||
|
||||
if(use_map_settings) {
|
||||
fog_ ->set_widget_value(window, config_engine_->fog_game_default());
|
||||
shroud_ ->set_widget_value(window, config_engine_->shroud_game_default());
|
||||
|
@ -805,6 +813,22 @@ void mp_create_game::set_active_mods(const std::vector<std::string>& val)
|
|||
}
|
||||
}
|
||||
|
||||
void mp_create_game::reset_timer_settings()
|
||||
{
|
||||
// This allows the defaults to be returned by the pref getters below
|
||||
preferences::erase("mp_countdown_init_time");
|
||||
preferences::erase("mp_countdown_reservoir_time");
|
||||
preferences::erase("mp_countdown_turn_bonus");
|
||||
preferences::erase("mp_countdown_action_bonus");
|
||||
|
||||
auto& w = *get_window();
|
||||
|
||||
init_turn_limit_->set_widget_value(w, preferences::countdown_init_time());
|
||||
turn_bonus_->set_widget_value(w, preferences::countdown_turn_bonus());
|
||||
reservoir_->set_widget_value(w, preferences::countdown_reservoir_time());
|
||||
action_bonus_->set_widget_value(w, preferences::countdown_action_bonus());
|
||||
}
|
||||
|
||||
bool mp_create_game::dialog_exit_hook(window& /*window*/)
|
||||
{
|
||||
if(!create_engine_.current_level_has_side_data()) {
|
||||
|
|
|
@ -114,6 +114,8 @@ private:
|
|||
void update_details();
|
||||
void update_map_settings();
|
||||
|
||||
void reset_timer_settings();
|
||||
|
||||
/**
|
||||
* Dialog exit hook to bring up the difficulty dialog when starting a campaign.
|
||||
* This only fires when the retval is OK (ie, creating a game), meaning it does not fire
|
||||
|
|
|
@ -124,13 +124,6 @@ void load_game_prefs()
|
|||
set_music_volume(music_volume());
|
||||
set_sound_volume(sound_volume());
|
||||
|
||||
if(!preferences::get("remember_timer_settings", false)) {
|
||||
preferences::erase("mp_countdown_init_time");
|
||||
preferences::erase("mp_countdown_reservoir_time");
|
||||
preferences::erase("mp_countdown_turn_bonus");
|
||||
preferences::erase("mp_countdown_action_bonus");
|
||||
}
|
||||
|
||||
// We save the password encrypted now. Erase any saved passwords in the prefs file.
|
||||
preferences::erase("password");
|
||||
preferences::erase("password_is_wrapped");
|
||||
|
|
Loading…
Add table
Reference in a new issue