Fix some issues with recruit lists changing unexpectedly

This only happened for [test] scenarios.
This commit is contained in:
Celtic Minstrel 2016-03-20 02:48:29 -04:00
parent 9d3ea7ad94
commit 09d4033916
4 changed files with 4 additions and 5 deletions

View file

@ -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}

View file

@ -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);

View file

@ -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");

View file

@ -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_));