diff --git a/src/openrct2/scripting/ScriptEngine.cpp b/src/openrct2/scripting/ScriptEngine.cpp index 5c93d7313a..84f997bdd4 100644 --- a/src/openrct2/scripting/ScriptEngine.cpp +++ b/src/openrct2/scripting/ScriptEngine.cpp @@ -821,8 +821,17 @@ bool ScriptEngine::RegisterCustomAction( void ScriptEngine::RemoveCustomGameActions(const std::shared_ptr& plugin) { - auto isOwner = [&] (auto& obj) { return obj.second.Owner == plugin; } - std::erase(std::remove_if(_customActions.begin(), _customActions.end(), isOwner), _customActions.end()); + for (auto it = _customActions.begin(); it != _customActions.end();) + { + if (it->second.Owner == plugin) + { + it = _customActions.erase(it); + } + else + { + it++; + } + } } void ScriptEngine::RunGameActionHooks(const GameAction& action, std::unique_ptr& result, bool isExecute)