diff --git a/Barotrauma/BarotraumaShared/SharedSource/Cs/CsHook.cs b/Barotrauma/BarotraumaShared/SharedSource/Cs/CsHook.cs index 077e2a1f0..9c01b0ef0 100644 --- a/Barotrauma/BarotraumaShared/SharedSource/Cs/CsHook.cs +++ b/Barotrauma/BarotraumaShared/SharedSource/Cs/CsHook.cs @@ -12,24 +12,6 @@ namespace Barotrauma { public CsHook(LuaCsHook hook) : base(hook) { } - //public enum class HookMethodTypeProxy - //{ - // Before = Barotrauma.HookMethodType.Before; - // After = Barotrauma.HookMethodType.After; - - // public Barotrauma.HookMethodType type; - - // public HookMethodTypeProxy(int i) => type = (Barotrauma.HookMethodType)i; - // public HookMethodTypeProxy(Barotrauma.HookMethodType t) => type = t; - - // public static implicit operator Barotrauma.HookMethodType(HookMethodTypeProxy t) => t.type; - // public static implicit operator int(HookMethodTypeProxy t) => (int)t.type; - - // public static implicit operator HookMethodTypeProxy(Barotrauma.HookMethodType t) => new HookMethodTypeProxy(t); - // public static implicit operator HookMethodTypeProxy(int i) => new HookMethodTypeProxy(i); - //} - //public readonly HookMethodTypeProxy HookMethodType = new HookMethodTypeProxy(Barotrauma.HookMethodType.Before); - public void HookMethod(string identifier, MethodInfo method, CsPatchDelegate hook, HookMethodType hookType = HookMethodType.Before, ACsMod owner = null) => _hook.HookCsMethod(identifier, method, hook, hookType, owner); diff --git a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/LuaCsHook.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/LuaCsHook.cs index 68f324723..acdb5275e 100644 --- a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/LuaCsHook.cs +++ b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/LuaCsHook.cs @@ -489,6 +489,8 @@ namespace Barotrauma csHookPostfixMethods.Clear(); queuedFunctionCalls.Clear(); + + GameMain.LuaCs.harmony?.UnpatchAll(); } diff --git a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/LuaCsSetup.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/LuaCsSetup.cs index 9b76d80b7..05913e2a0 100644 --- a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/LuaCsSetup.cs +++ b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/LuaCsSetup.cs @@ -271,12 +271,12 @@ namespace Barotrauma public void Stop() { - ACsMod.LoadedMods.ForEach(m => m.Dispose()); + foreach (var mod in ACsMod.LoadedMods.ToArray()) mod.Dispose(); ACsMod.LoadedMods.Clear(); HookBase?.Call("stop"); game?.Stop(); - harmony?.UnpatchAll(); + //harmony?.UnpatchAll(); //HookBase = new LuaCsHook(); HookBase.Clear();