From a011e6e894d8414ca1d776dfe247753f29c4d289 Mon Sep 17 00:00:00 2001 From: Andrius Silinskas Date: Thu, 22 Aug 2013 22:06:59 +0100 Subject: [PATCH] Don't lock side configurations if map settings are not in use. --- src/multiplayer_configure.cpp | 9 ++++----- src/multiplayer_connect_engine.cpp | 10 ++++++++-- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/multiplayer_configure.cpp b/src/multiplayer_configure.cpp index 71936fb3292..c728440f482 100644 --- a/src/multiplayer_configure.cpp +++ b/src/multiplayer_configure.cpp @@ -150,14 +150,13 @@ configure::configure(game_display& disp, const config &cfg, chat& c, config& gam xp_modifier_slider_.set_increment(10); xp_modifier_slider_.set_help_string(_("The amount of experience a unit needs to advance")); - use_map_settings_.set_check(preferences::use_map_settings()); - use_map_settings_.set_help_string(_("Use scenario specific settings")); - const bool side_configurations_lock = - parameters_.scenario_data["side_configurations_lock"].to_bool(); - if (side_configurations_lock) { + if (parameters_.scenario_data["side_configurations_lock"].to_bool()) { use_map_settings_.enable(false); use_map_settings_.set_check(true); + } else { + use_map_settings_.set_check(preferences::use_map_settings()); } + use_map_settings_.set_help_string(_("Use scenario specific settings")); random_start_time_.set_check(preferences::random_start_time()); random_start_time_.set_help_string(_("Randomize time of day in begin")); diff --git a/src/multiplayer_connect_engine.cpp b/src/multiplayer_connect_engine.cpp index 7de1f6aa6a2..05b1dfe8788 100644 --- a/src/multiplayer_connect_engine.cpp +++ b/src/multiplayer_connect_engine.cpp @@ -87,8 +87,14 @@ connect_engine::connect_engine(game_display& disp, game_state& state, return; } - side_configurations_lock_ = params_.saved_game ? true : - level()["side_configurations_lock"].to_bool(!first_scenario); + if (params_.saved_game) { + side_configurations_lock_ = true; + } else if (!params_.use_map_settings) { + side_configurations_lock_ = false; + } else { + side_configurations_lock_ = + level()["side_configurations_lock"].to_bool(!first_scenario); + } // Original level sides. config::child_itors sides = current_config()->child_range("side");