From 8b4f313f6ca3eabec98bdd21d2180218d979f7f9 Mon Sep 17 00:00:00 2001 From: Conchelle Date: Tue, 2 Jul 2024 21:33:33 +0300 Subject: [PATCH] MarseyEntry threading --- Marsey/Game/Misc/Doorbreak.cs | 17 ++++++++--------- Marsey/Subversion/Subverse.cs | 2 +- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/Marsey/Game/Misc/Doorbreak.cs b/Marsey/Game/Misc/Doorbreak.cs index afecbc8..97d270a 100644 --- a/Marsey/Game/Misc/Doorbreak.cs +++ b/Marsey/Game/Misc/Doorbreak.cs @@ -11,15 +11,14 @@ public static class Doorbreak /// Invokes MarseyEntry /// /// MethodInfo of MarseyEntry::Entry() - public static void Enter(MethodInfo? entry) + /// Call in another thread + public static void Enter(MethodInfo? entry, bool threading = true) { if (entry == null) return; - - Thread entryThread = new Thread(() => - { - entry.Invoke(null, new object[] {}); - }); - - entryThread.Start(); + + if (threading) + new Thread(() => { entry.Invoke(null, []); }).Start(); + else + entry.Invoke(null, []); } -} \ No newline at end of file +} diff --git a/Marsey/Subversion/Subverse.cs b/Marsey/Subversion/Subverse.cs index 78a5ea8..d7b2231 100644 --- a/Marsey/Subversion/Subverse.cs +++ b/Marsey/Subversion/Subverse.cs @@ -74,7 +74,7 @@ private static void Postfix(object __instance) MethodInfo? entryMethod = CheckEntry(subverterAssembly); if (entryMethod != null) { - Doorbreak.Enter(entryMethod); + Doorbreak.Enter(entryMethod, threading: false); } } }