From 5b89aaf780a63932a3c3f8467be639b0c547e716 Mon Sep 17 00:00:00 2001 From: Jyrki Vesterinen Date: Tue, 20 Feb 2018 19:50:30 +0200 Subject: [PATCH] Reset AI manager singleton pointer when exiting the game (fixes #2523) --- src/ai/manager.hpp | 1 + src/game_launcher.cpp | 2 ++ 2 files changed, 3 insertions(+) diff --git a/src/ai/manager.hpp b/src/ai/manager.hpp index 3fd305fbe1eb..ea78b0a79bb5 100644 --- a/src/ai/manager.hpp +++ b/src/ai/manager.hpp @@ -556,6 +556,7 @@ class manager ai_composite& get_active_ai_for_side( side_number side ); + friend class game_launcher; }; } //end of namespace ai diff --git a/src/game_launcher.cpp b/src/game_launcher.cpp index 00ea0631c560..c304c064c30b 100644 --- a/src/game_launcher.cpp +++ b/src/game_launcher.cpp @@ -15,6 +15,7 @@ #include "game_launcher.hpp" #include "game_errors.hpp" +#include "ai/manager.hpp" // for manager #include "preferences/credentials.hpp" #include "commandline_options.hpp" // for commandline_options #include "config.hpp" // for config, etc @@ -959,6 +960,7 @@ void game_launcher::launch_game(RELOAD_GAME_DATA reload) try { campaign_controller ccontroller(state_, game_config_manager::get()->game_config(), game_config_manager::get()->terrain_types()); LEVEL_RESULT result = ccontroller.play_game(); + ai::manager::singleton_ = nullptr; // don't show The End for multiplayer scenario // change this if MP campaigns are implemented if(result == LEVEL_RESULT::VICTORY && !state_.classification().is_normal_mp_game()) {