diff --git a/src/saved_game.cpp b/src/saved_game.cpp index 6f803258e8c0..75fa15167c41 100644 --- a/src/saved_game.cpp +++ b/src/saved_game.cpp @@ -29,42 +29,31 @@ saved_game::saved_game() : mp_settings_() {} -saved_game::saved_game(const config& cfg, bool show_replay) : - replay_data(), - snapshot(), - carryover_sides(), - carryover_sides_start(), - replay_start_(), - classification_(cfg), - mp_settings_(cfg) +saved_game::saved_game(const config& cfg) + : replay_data() + , snapshot() + , carryover_sides() + , carryover_sides_start() + , replay_start_() + , classification_(cfg) + , mp_settings_(cfg) { log_scope("read_game"); - - if(cfg.has_child("carryover_sides")){ - carryover_sides = cfg.child("carryover_sides"); - } - if(cfg.has_child("carryover_sides_start")){ - carryover_sides_start = cfg.child("carryover_sides_start"); - } - - if(show_replay){ - //If replay_start and replay_data couldn't be loaded - if(!load_replay(cfg)){ - //TODO: notify user of failure - ERR_NG<<"Could not load as replay " << std::endl; - } - } else { - if(const config& snapshot = cfg.child("snapshot")){ - this->snapshot = snapshot; - load_replay(cfg); - } else if(carryover_sides_start.empty() && !carryover_sides.empty()){ - //if we are loading a start of scenario save and don't have carryover_sides_start, use carryover_sides - carryover_sides_start = carryover_sides; - } - //TODO: check if loading fails completely + + carryover_sides = cfg.child_or_empty("carryover_sides"); + carryover_sides_start = cfg.child_or_empty("carryover_sides_start"); + replay_start_ = cfg.child_or_empty("replay_start"); + replay_data = cfg.child_or_empty("replay"); + snapshot = cfg.child_or_empty("snapshot"); + + if(snapshot.empty() && carryover_sides_start.empty() && !carryover_sides.empty()) + { + //Explain me: when could this happen? + //if we are loading a start of scenario save and don't have carryover_sides_start, use carryover_sides + carryover_sides_start = carryover_sides; } - LOG_NG << "scenario: '" << carryover_sides_start["next_scenario"] << "'\n"; + LOG_NG << "scenario: '" << carryover_sides_start["next_scenario"].str() << "'\n"; if (const config &stats = cfg.child("statistics")) { statistics::fresh_stats(); @@ -73,20 +62,6 @@ saved_game::saved_game(const config& cfg, bool show_replay) : } -bool saved_game::load_replay(const config& cfg){ - bool replay_loaded = false; - - if(const config& replay_start = cfg.child("replay_start")){ - replay_start_ = replay_start; - if(const config& replay = cfg.child("replay")){ - this->replay_data = replay; - replay_loaded = true; - } - } - - return replay_loaded; -} - static void convert_old_saves(config& cfg){ if(!cfg.has_child("snapshot")){ return; diff --git a/src/saved_game.hpp b/src/saved_game.hpp index 81653dd6fbb3..3725e5348c07 100644 --- a/src/saved_game.hpp +++ b/src/saved_game.hpp @@ -13,7 +13,7 @@ class saved_game public: saved_game(); saved_game(const saved_game& state); - explicit saved_game(const config& cfg, bool show_replay = false); + explicit saved_game(const config& cfg); ~saved_game(){} saved_game& operator=(const saved_game& state); @@ -28,8 +28,6 @@ class saved_game mp_game_settings& mp_settings() { return mp_settings_; } const mp_game_settings& mp_settings() const { return mp_settings_; } - bool load_replay(const config& cfg); - config& replay_start() { return replay_start_; } /** diff --git a/src/savegame.cpp b/src/savegame.cpp index 89575def4db5..16a4de72e023 100644 --- a/src/savegame.cpp +++ b/src/savegame.cpp @@ -293,7 +293,7 @@ void loadgame::check_version_compatibility() void loadgame::set_gamestate() { - gamestate_ = saved_game(load_config_, show_replay_); + gamestate_ = saved_game(load_config_); // Get the status of the random in the snapshot. // For a replay we need to restore the start only, the replaying gets at