Fix ScriptContext crashing without a WorldLoaded function

This commit is contained in:
abcdefg30
2023-05-21 10:45:54 +02:00
committed by Matthias Mailänder
parent f2b3a9f837
commit b5f5d5f9d5

View File

@@ -284,18 +284,21 @@ namespace OpenRA.Scripting
public void WorldLoaded() public void WorldLoaded()
{ {
if (FatalErrorOccurred) if (FatalErrorOccurred || runtime.Globals["WorldLoaded"] is not LuaFunction worldLoaded)
return; return;
try try
{ {
using (var worldLoaded = (LuaFunction)runtime.Globals["WorldLoaded"]) worldLoaded.Call().Dispose();
worldLoaded.Call().Dispose();
} }
catch (LuaException e) catch (LuaException e)
{ {
FatalError(e); FatalError(e);
} }
finally
{
worldLoaded?.Dispose();
}
} }
public void Tick() public void Tick()