diff --git a/apps/openmw/engine.cpp b/apps/openmw/engine.cpp index b96fe2070..ce6ba2b34 100644 --- a/apps/openmw/engine.cpp +++ b/apps/openmw/engine.cpp @@ -28,6 +28,7 @@ #include #include +#include #include "mwinput/inputmanagerimp.hpp" @@ -230,8 +231,11 @@ OMW::Engine::Engine(Files::ConfigurationManager& configurationManager) OMW::Engine::~Engine() { + mwmp::Main::get().getGUIController()->cleanup(); mEnvironment.cleanup(); + mwmp::Main::Destroy(); + delete mScriptContext; mScriptContext = NULL; @@ -246,6 +250,9 @@ OMW::Engine::~Engine() } SDL_Quit(); + + + LOG_QUIT(); } void OMW::Engine::enableFSStrict(bool fsStrict) @@ -719,7 +726,6 @@ void OMW::Engine::go() // Save user settings settings.saveUser(settingspath); - mwmp::Main::Destroy(); std::cout << "Quitting peacefully." << std::endl; } diff --git a/apps/openmw/main.cpp b/apps/openmw/main.cpp index 67212e7d7..7e72439cd 100644 --- a/apps/openmw/main.cpp +++ b/apps/openmw/main.cpp @@ -387,7 +387,6 @@ int main(int argc, char**argv) std::cout.rdbuf(cout_rdbuf); std::cerr.rdbuf(cerr_rdbuf); - LOG_QUIT(); return ret; } diff --git a/apps/openmw/mwmp/GUIController.cpp b/apps/openmw/mwmp/GUIController.cpp index 35b00b2ac..087f22d8d 100644 --- a/apps/openmw/mwmp/GUIController.cpp +++ b/apps/openmw/mwmp/GUIController.cpp @@ -24,9 +24,14 @@ mwmp::GUIController::GUIController(): mInputBox(0) mwmp::GUIController::~GUIController() { - /* if (mChat != nullptr) + +} + +void mwmp::GUIController::cleanup() +{ + if (mChat != nullptr) delete mChat; - mChat = nullptr;*/ + mChat = nullptr; } void mwmp::GUIController::setupChat(const Settings::Manager &mgr) diff --git a/apps/openmw/mwmp/GUIController.hpp b/apps/openmw/mwmp/GUIController.hpp index 1e79ea0e1..fa5ec3ac9 100644 --- a/apps/openmw/mwmp/GUIController.hpp +++ b/apps/openmw/mwmp/GUIController.hpp @@ -18,6 +18,7 @@ namespace mwmp public: GUIController(); ~GUIController(); + void cleanup(); void setupChat(const Settings::Manager &manager); void PrintChatMessage(std::string &msg); diff --git a/apps/openmw/mwmp/Main.cpp b/apps/openmw/mwmp/Main.cpp index 0b2e2d03c..20c11cb33 100644 --- a/apps/openmw/mwmp/Main.cpp +++ b/apps/openmw/mwmp/Main.cpp @@ -75,7 +75,6 @@ Main::~Main() LOG_MESSAGE_SIMPLE(Log::LOG_INFO, "%s", "TES3MP stopped"); delete mNetworking; delete mLocalPlayer; - delete mGUIController; Players::CleanUp(); } @@ -157,8 +156,6 @@ void Main::Destroy() { assert(pMain); - delete pMain->mGUIController; - delete pMain; pMain = 0; }