diff --git a/src/playcampaign.cpp b/src/playcampaign.cpp index fad7b1c33a1b..9b97457f4aa0 100644 --- a/src/playcampaign.cpp +++ b/src/playcampaign.cpp @@ -271,15 +271,10 @@ static LEVEL_RESULT playsingle_scenario(const config& game_config, LOG_NG << "created objects... " << (SDL_GetTicks() - playcontroller.get_ticks()) << "\n"; LEVEL_RESULT res = playcontroller.play_scenario(story, skip_replay); - end_level = playcontroller.get_end_level_data_const(); - if (state_of_game.carryover_sides.has_child("end_level_data")) { - config& cfg_end_level = state_of_game.carryover_sides.child("end_level_data"); - end_level.write(cfg_end_level); - } else { - config& cfg_end_level = state_of_game.carryover_sides.add_child("end_level_data"); - end_level.write(cfg_end_level); - } + end_level = playcontroller.get_end_level_data_const(); + config& cfg_end_level = state_of_game.carryover_sides.child_or_add("end_level_data"); + end_level.write(cfg_end_level); if (res == DEFEAT) { if (resources::persist != NULL) @@ -324,15 +319,10 @@ static LEVEL_RESULT playmp_scenario(const config& game_config, playmp_controller playcontroller(init_level, state_of_game, ticks, num_turns, game_config, disp.video(), skip_replay, blindfold_replay, io_type == IO_SERVER); LEVEL_RESULT res = playcontroller.play_scenario(story, skip_replay); - end_level = playcontroller.get_end_level_data_const(); - if (state_of_game.carryover_sides.has_child("end_level_data")) { - config& cfg_end_level = state_of_game.carryover_sides.child("end_level_data"); - end_level.write(cfg_end_level); - } else { - config& cfg_end_level = state_of_game.carryover_sides.add_child("end_level_data"); - end_level.write(cfg_end_level); - } + end_level = playcontroller.get_end_level_data_const(); + config& cfg_end_level = state_of_game.carryover_sides.child_or_add("end_level_data"); + end_level.write(cfg_end_level); //Check if the player started as mp client and changed to host if (io_type == IO_CLIENT && playcontroller.is_host())