diff --git a/src/multiplayer.cpp b/src/multiplayer.cpp index 5b8024c8e55c..f9f07c9e1c8f 100644 --- a/src/multiplayer.cpp +++ b/src/multiplayer.cpp @@ -489,6 +489,7 @@ static bool enter_connect_mode(game_display& disp, const config& game_config, gamelist.clear(); statistics::fresh_stats(); + if (state.classification().campaign_type == game_classification::MULTIPLAYER) { mp::connect_engine_ptr connect_engine(new mp::connect_engine(state, local_players_only, true)); mp::connect ui(disp, state.mp_settings().name, game_config, gamechat, gamelist, @@ -502,6 +503,11 @@ static bool enter_connect_mode(game_display& disp, const config& game_config, if (res == mp::ui::PLAY) { ui.start_game(); } + } // end connect_engine_ptr scope + else { + mp::connect_engine engine(state, local_players_only, true); + engine.start_game(); + res = mp::ui::PLAY; } switch (res) { diff --git a/src/multiplayer_connect_engine.cpp b/src/multiplayer_connect_engine.cpp index c32c951cb772..14a5d3ca3ab0 100644 --- a/src/multiplayer_connect_engine.cpp +++ b/src/multiplayer_connect_engine.cpp @@ -856,6 +856,7 @@ side_engine::side_engine(const config& cfg, connect_engine& parent_engine, // Tweak the controllers. if (cfg_["controller"] == "human_ai" || cfg_["controller"] == "network_ai" || + (parent_.state_.classification().campaign_type == game_classification::SCENARIO && cfg_["controller"].blank()) || (cfg_["controller"] == "network" && !allow_player_ && parent_.params_.saved_game)) { //this is a workaround for bug #21797 cfg_["controller"] = "ai";