@@ -313,7 +313,7 @@ void mp_create_game::pre_show()
313313 //
314314 mod_list_ = &find_widget<listbox>(" mod_list" );
315315
316- const auto & activemods = prefs::get ().modifications ();//
316+ const auto & activemods = prefs::get ().modifications ();
317317 for (const auto & mod : create_engine_.get_extras_by_type (ng::create_engine::MOD )) {
318318 grid* row_grid = &mod_list_->add_row (widget_data{{ " mod_name" , {{ " label" , mod->name }}}});
319319
@@ -945,60 +945,43 @@ void mp_create_game::load_game_callback()
945945 set_retval (LOAD_GAME );
946946}
947947
948- void mp_create_game::save_preset ()
948+ config mp_create_game::settings_config ()
949949{
950- config preset;
951- preset[" scenario" ] = create_engine_.current_level ().id ();
952- preset[" era" ] = create_engine_.current_era ().id ;
953- preset[" fog" ] = fog_->get_widget_value ();
954- preset[" shroud" ] = shroud_->get_widget_value ();
955- preset[" village_gold" ] = gold_->get_widget_value ();
956- preset[" village_support" ] = support_->get_widget_value ();
957- preset[" experience_modifier" ] = experience_->get_widget_value ();
958- preset[" countdown" ] = time_limit_->get_widget_value ();
959- preset[" countdown_turn_limit" ] = init_turn_limit_->get_widget_value ();
960- preset[" countdown_action_bonus" ] = action_bonus_->get_widget_value ();
961- preset[" countdown_turn_bonus" ] = turn_bonus_->get_widget_value ();
962- preset[" countdown_reservoir" ] = reservoir_->get_widget_value ();
963- preset[" random_start_time" ] = start_time_->get_widget_value ();
964- preset[" shuffle_sides" ] = shuffle_sides_->get_widget_value ();
965- preset[" turns" ] = turns_->get_widget_value ();
966- preset[" observer" ] = observers_->get_widget_value ();
967- preset[" use_map_settings" ] = use_map_settings_->get_widget_value ();
968-
969- // TODO: code de-duplication
970- preset[" mp_modifications" ] = utils::join (create_engine_.active_mods (), " ," );
971- preset.add_child (" options" , options_manager_->get_options_config ());
950+ config settings;
951+
952+ settings[" scenario" ] = create_engine_.current_level ().id ();
953+ settings[" era" ] = create_engine_.current_era ().id ;
954+ settings[" fog" ] = fog_->get_widget_value ();
955+ settings[" shroud" ] = shroud_->get_widget_value ();
956+ settings[" village_gold" ] = gold_->get_widget_value ();
957+ settings[" village_support" ] = support_->get_widget_value ();
958+ settings[" experience_modifier" ] = experience_->get_widget_value ();
959+ settings[" countdown" ] = time_limit_->get_widget_value ();
960+ settings[" countdown_turn_limit" ] = init_turn_limit_->get_widget_value ();
961+ settings[" countdown_action_bonus" ] = action_bonus_->get_widget_value ();
962+ settings[" countdown_turn_bonus" ] = turn_bonus_->get_widget_value ();
963+ settings[" countdown_reservoir" ] = reservoir_->get_widget_value ();
964+ settings[" random_start_time" ] = start_time_->get_widget_value ();
965+ settings[" shuffle_sides" ] = shuffle_sides_->get_widget_value ();
966+ settings[" turns" ] = turns_->get_widget_value ();
967+ settings[" observer" ] = observers_->get_widget_value ();
968+ settings[" use_map_settings" ] = use_map_settings_->get_widget_value ();
969+ settings[" mp_modifications" ] = utils::join (create_engine_.active_mods (), " ," );
970+ settings.add_child (" options" , options_manager_->get_options_config ());
972971 random_faction_mode::type type = random_faction_mode::get_enum (selected_rfm_index_).value_or (random_faction_mode::type::independent);
973- preset[" random_faction_mode" ] = random_faction_mode::get_string (type);
972+ settings[" random_faction_mode" ] = random_faction_mode::get_string (type);
973+
974+ return settings;
975+ }
974976
975- prefs::get ().add_game_preset (std::move (preset));
977+ void mp_create_game::save_preset ()
978+ {
979+ prefs::get ().add_game_preset (settings_config ());
976980}
977981
978982void mp_create_game::backup_settings ()
979983{
980- previous_settings_.clear ();
981- previous_settings_[" scenario" ] = create_engine_.current_level ().id ();
982- previous_settings_[" era" ] = create_engine_.current_era ().id ;
983- previous_settings_[" fog" ] = fog_->get_widget_value ();
984- previous_settings_[" shroud" ] = shroud_->get_widget_value ();
985- previous_settings_[" village_gold" ] = gold_->get_widget_value ();
986- previous_settings_[" village_support" ] = support_->get_widget_value ();
987- previous_settings_[" experience_modifier" ] = experience_->get_widget_value ();
988- previous_settings_[" countdown" ] = time_limit_->get_widget_value ();
989- previous_settings_[" countdown_turn_limit" ] = init_turn_limit_->get_widget_value ();
990- previous_settings_[" countdown_action_bonus" ] = action_bonus_->get_widget_value ();
991- previous_settings_[" countdown_turn_bonus" ] = turn_bonus_->get_widget_value ();
992- previous_settings_[" countdown_reservoir" ] = reservoir_->get_widget_value ();
993- previous_settings_[" random_start_time" ] = start_time_->get_widget_value ();
994- previous_settings_[" shuffle_sides" ] = shuffle_sides_->get_widget_value ();
995- previous_settings_[" turns" ] = turns_->get_widget_value ();
996- previous_settings_[" observer" ] = observers_->get_widget_value ();
997- previous_settings_[" use_map_settings" ] = use_map_settings_->get_widget_value ();
998- previous_settings_[" mp_modifications" ] = utils::join (create_engine_.active_mods (), " ," );
999- previous_settings_.add_child (" options" , options_manager_->get_options_config ());
1000- random_faction_mode::type type = random_faction_mode::get_enum (selected_rfm_index_).value_or (random_faction_mode::type::independent);
1001- previous_settings_[" random_faction_mode" ] = random_faction_mode::get_string (type);
984+ previous_settings_ = settings_config ();
1002985}
1003986
1004987std::vector<std::string> mp_create_game::get_active_mods ()
0 commit comments