diff --git a/data/campaigns/tutorial/scenarios/02_Tutorial_part_2.cfg b/data/campaigns/tutorial/scenarios/02_Tutorial_part_2.cfg index 004f8015ecfa..9b32383cb925 100644 --- a/data/campaigns/tutorial/scenarios/02_Tutorial_part_2.cfg +++ b/data/campaigns/tutorial/scenarios/02_Tutorial_part_2.cfg @@ -6,7 +6,6 @@ map_data="{campaigns/tutorial/maps/02_Tutorial_part_2.map}" turns=26 experience_modifier=100 - force_lock_settings=yes {DEFAULT_SCHEDULE} diff --git a/src/game_config_manager.cpp b/src/game_config_manager.cpp index 522e60ef1596..2eb607fbfe2e 100644 --- a/src/game_config_manager.cpp +++ b/src/game_config_manager.cpp @@ -271,8 +271,6 @@ void game_config_manager::load_game_config(FORCE_RELOAD_CONFIG force_reload, BOOST_FOREACH(config& scenario, game_config_.child_range("scenario")) { scenario["require_scenario"] = require_campaign; - // make force_lock_settings default to true for [scenario] - scenario["force_lock_settings"] = scenario["force_lock_settings"].to_bool(true); BOOST_FOREACH(config& side, scenario.child_range("side")) { side["no_leader"] = side["no_leader"].to_bool(true); diff --git a/src/game_initialization/connect_engine.cpp b/src/game_initialization/connect_engine.cpp index 40c71d2e8edf..f57c4e61260c 100644 --- a/src/game_initialization/connect_engine.cpp +++ b/src/game_initialization/connect_engine.cpp @@ -97,7 +97,8 @@ connect_engine::connect_engine(saved_game& state, return; } - force_lock_settings_ = (!state.mp_settings().saved_game) && scenario()["force_lock_settings"].to_bool(); + const bool is_mp = state_.classification().is_normal_mp_game(); + force_lock_settings_ = (!state.mp_settings().saved_game) && scenario()["force_lock_settings"].to_bool(!is_mp); // Original level sides. config::child_itors sides = current_config()->child_range("side"); diff --git a/src/game_initialization/playcampaign.cpp b/src/game_initialization/playcampaign.cpp index 68b45eebf8dc..da2f162bbdc2 100644 --- a/src/game_initialization/playcampaign.cpp +++ b/src/game_initialization/playcampaign.cpp @@ -369,9 +369,10 @@ LEVEL_RESULT campaign_controller::play_game() //note that although starting_pos is const it might be changed by gamestate.some_non_const_operation() . const config& starting_pos = state_.get_starting_pos(); + const bool is_mp = state_.classification().is_normal_mp_game(); state_.mp_settings().num_turns = starting_pos["turns"].to_int(-1); state_.mp_settings().saved_game = false; - state_.mp_settings().use_map_settings = starting_pos["force_lock_settings"].to_bool(); + state_.mp_settings().use_map_settings = starting_pos["force_lock_settings"].to_bool(!is_mp); ng::connect_engine_ptr connect_engine(new ng::connect_engine(state_, false, mp_info_));