From e7ceaf9f7833aa0a9114a03bd0dc6e2fd160dc41 Mon Sep 17 00:00:00 2001 From: Evil Factory <36804725+evilfactory@users.noreply.github.com> Date: Sun, 6 Mar 2022 18:44:19 -0300 Subject: [PATCH] Workaround: Hooks aren't called while in singlepalyer loading screen (fixes weird threading error) --- .../BarotraumaShared/SharedSource/Lua/LuaClasses.cs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaClasses.cs b/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaClasses.cs index d521e8762..6a374d6b9 100644 --- a/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaClasses.cs +++ b/Barotrauma/BarotraumaShared/SharedSource/Lua/LuaClasses.cs @@ -915,7 +915,12 @@ namespace Barotrauma static void _hookLuaPatch(MethodBase __originalMethod, object[] __args, object __instance, out LuaResult result, HookMethodType hookMethodType) { result = new LuaResult(null); - + +#if CLIENT + if (GameMain.GameSession?.IsRunning == false && GameMain.IsSingleplayer) + return; +#endif + try { var @params = __originalMethod.GetParameters(); @@ -1141,6 +1146,10 @@ namespace Barotrauma public object Call(string name, params object[] args) { +#if CLIENT + if (GameMain.GameSession?.IsRunning == false && GameMain.IsSingleplayer) + return null; +#endif if (env == null) return null; if (name == null) return null; if (args == null) { args = new object[] { }; }