diff --git a/src/mp_game_utils.cpp b/src/mp_game_utils.cpp index 9f95565cadb5..0134c337418a 100644 --- a/src/mp_game_utils.cpp +++ b/src/mp_game_utils.cpp @@ -157,8 +157,9 @@ config initial_level_config(saved_game& state) void level_to_gamestate(const config& level, saved_game& state) { + game_classification::CAMPAIGN_TYPE type = state.classification().campaign_type; state = saved_game(level); - state.classification().campaign_type = game_classification::MULTIPLAYER; + state.classification().campaign_type = type; // Any replay data is only temporary and should be removed from // the level data in case we want to save the game later. if (const config& replay_data = level.child("replay")) diff --git a/src/saved_game.cpp b/src/saved_game.cpp index b09276d01f62..d9aedb5dfb0a 100644 --- a/src/saved_game.cpp +++ b/src/saved_game.cpp @@ -199,7 +199,10 @@ void saved_game::expand_scenario() { resources::config_manager->load_game_config_for_game(this->classification()); const config& game_config = resources::config_manager->game_config(); - const config& scenario = game_config.find_child(lexical_cast_default (classification().campaign_type), "id", carryover_sides_start["next_scenario"]); + const config& scenario = game_config.find_child(lexical_cast_default + (classification().campaign_type == game_classification::SCENARIO ? + game_classification::MULTIPLAYER : classification().campaign_type), + "id", carryover_sides_start["next_scenario"]); if(scenario) { this->starting_pos_type_ = STARTINGPOS_SCENARIO;