fix handling of no_leader= (again)
previously, if people wanted to make use of mp leader selection in mp campaign they had to sxplicitly set no_leader=no and faction_lock=no, with the new code its clear that no_leader= is just an alias for faction_lock with type
This commit is contained in:
parent
4eb40da08b
commit
5149e65449
5 changed files with 8 additions and 10 deletions
|
@ -282,10 +282,6 @@ void game_config_manager::load_game_config(FORCE_RELOAD_CONFIG force_reload,
|
|||
for (config& scenario : game_config_.child_range("scenario"))
|
||||
{
|
||||
scenario["require_scenario"] = require_campaign;
|
||||
for (config& side : scenario.child_range("side"))
|
||||
{
|
||||
side["no_leader"] = side["no_leader"].to_bool(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1057,10 +1057,6 @@ config side_engine::new_config() const
|
|||
res.add_child_at("ai", config {"ai_algorithm", ai_algorithm_}, 0);
|
||||
}
|
||||
|
||||
if(controller_ == CNTR_EMPTY) {
|
||||
res["no_leader"] = true;
|
||||
}
|
||||
|
||||
// A side's "current_player" is the player which has currently taken that side or the one for which it is reserved.
|
||||
// The "player_id" is the id of the client who controls that side. It's always the host for Local and AI players and
|
||||
// always empty for free/reserved sides or null controlled sides. You can use !res["player_id"].empty() to check
|
||||
|
|
|
@ -278,7 +278,7 @@ void flg_manager::update_available_leaders()
|
|||
{
|
||||
available_leaders_.clear();
|
||||
|
||||
if(!default_leader_type_.empty() || !(side_["no_leader"].to_bool() || leader_lock_)) {
|
||||
if(!default_leader_type_.empty() || !leader_lock_) {
|
||||
|
||||
int random_pos = 0;
|
||||
// Add a default leader if there is one.
|
||||
|
|
|
@ -188,6 +188,12 @@ void saved_game::set_defaults()
|
|||
for(config& side : starting_pos_.child_range("side")) {
|
||||
// Set save_id default value directly after loading to its default to prevent different default behaviour in
|
||||
// mp_connect code and sp code.
|
||||
|
||||
if(side["no_leader"].to_bool()) {
|
||||
side["leader_lock"] = true;
|
||||
side.remove_attribute("type");
|
||||
}
|
||||
|
||||
if(side["save_id"].empty()) {
|
||||
side["save_id"] = side["id"];
|
||||
}
|
||||
|
|
|
@ -275,7 +275,7 @@ BOOST_AUTO_TEST_CASE( flg_map_settings )
|
|||
|
||||
// No leader.
|
||||
side.clear();
|
||||
side["no_leader"] = true;
|
||||
side["leader_lock"] = true;
|
||||
side_engine.reset(create_side_engine(side, connect_engine.get()));
|
||||
BOOST_CHECK_EQUAL( side_engine->flg().choosable_leaders().size(), 1 );
|
||||
BOOST_CHECK_EQUAL( side_engine->flg().current_leader(), "null" );
|
||||
|
|
Loading…
Add table
Reference in a new issue