From d7d880dc2305e44868589b2e275e483e519ec481 Mon Sep 17 00:00:00 2001 From: Ted John Date: Fri, 14 Feb 2020 19:53:04 +0000 Subject: [PATCH] Restart plugins when starting new game from a game --- src/openrct2/scripting/ScriptEngine.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/openrct2/scripting/ScriptEngine.cpp b/src/openrct2/scripting/ScriptEngine.cpp index 08f59ef7a0..fa17633c84 100644 --- a/src/openrct2/scripting/ScriptEngine.cpp +++ b/src/openrct2/scripting/ScriptEngine.cpp @@ -91,6 +91,10 @@ void ScriptEngine::LoadPlugins() { Initialise(); } + if (_pluginsLoaded) + { + UnloadPlugins(); + } auto base = _env.GetDirectoryPath(DIRBASE::USER, DIRID::PLUGIN); if (Path::DirectoryExists(base)) @@ -112,6 +116,7 @@ void ScriptEngine::LoadPlugins() } } _pluginsLoaded = true; + _pluginsStarted = false; } void ScriptEngine::LoadPlugin(const std::string& path) @@ -237,6 +242,7 @@ void ScriptEngine::StartPlugins() ScriptExecutionInfo::PluginScope scope(_execInfo, plugin); try { + LogPluginInfo(plugin, "Started"); plugin->Start(); } catch (const std::exception& e) @@ -253,6 +259,7 @@ void ScriptEngine::StopPlugins() for (auto& plugin : _plugins) { StopPlugin(plugin); + LogPluginInfo(plugin, "Stopped"); } _pluginsStarted = false; }