diff --git a/apps/openmw/engine.cpp b/apps/openmw/engine.cpp index fbc54bfd9..3433142a1 100644 --- a/apps/openmw/engine.cpp +++ b/apps/openmw/engine.cpp @@ -345,9 +345,11 @@ OMW::Engine::~Engine() /* Start of tes3mp addition - Free up memory allocated by multiplayer's GUIController + Free up memory allocated by multiplayer's GUIController, but make sure + mwmp::Main has actually been initialized */ - mwmp::Main::get().getGUIController()->cleanUp(); + if (mwmp::Main::isInitialized()) + mwmp::Main::get().getGUIController()->cleanUp(); /* End of tes3mp addition */ diff --git a/apps/openmw/mwmp/Main.cpp b/apps/openmw/mwmp/Main.cpp index 6ab9f905c..89567b138 100644 --- a/apps/openmw/mwmp/Main.cpp +++ b/apps/openmw/mwmp/Main.cpp @@ -163,6 +163,11 @@ void Main::postInit() MWBase::Environment::get().getMechanicsManager()->toggleAI(); } +bool Main::isInitialized() +{ + return pMain != nullptr; +} + void Main::destroy() { assert(pMain); diff --git a/apps/openmw/mwmp/Main.hpp b/apps/openmw/mwmp/Main.hpp index 9d91c1af1..5e1da7163 100644 --- a/apps/openmw/mwmp/Main.hpp +++ b/apps/openmw/mwmp/Main.hpp @@ -23,6 +23,7 @@ namespace mwmp static void configure(const boost::program_options::variables_map &variables); static bool init(std::vector &content, Files::Collections &collections); static void postInit(); + static bool isInitialized(); static void destroy(); static const Main &get(); static void frame(float dt);