From 6b2f33a4e77b65530f1169e96b9407659c183edd Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Sat, 25 May 2024 23:11:45 -0400 Subject: Prevent item receipt when paused --- AnodyneArchipelago/Patches/StatePatches.cs | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'AnodyneArchipelago/Patches/StatePatches.cs') diff --git a/AnodyneArchipelago/Patches/StatePatches.cs b/AnodyneArchipelago/Patches/StatePatches.cs index 40b30fe..31c0aef 100644 --- a/AnodyneArchipelago/Patches/StatePatches.cs +++ b/AnodyneArchipelago/Patches/StatePatches.cs @@ -9,6 +9,7 @@ using AnodyneSharp.States.MainMenu; using static AnodyneSharp.AnodyneGame; using AnodyneSharp.Drawing; using System.IO; +using System; namespace AnodyneArchipelago.Patches { @@ -83,6 +84,8 @@ namespace AnodyneArchipelago.Patches { static void Prefix(PlayState __instance) { + Plugin.IsGamePaused = false; + // Get player for later access. FieldInfo playerField = typeof(PlayState).GetField("_player", BindingFlags.NonPublic | BindingFlags.Instance); Plugin.Player = (Player)playerField.GetValue(__instance); @@ -93,4 +96,25 @@ namespace AnodyneArchipelago.Patches GlobalState.events.SetEvent("red_cave_r_ss", 999); } } + + [HarmonyPatch(typeof(PauseState), MethodType.Constructor, new Type[] { })] + class CreatePausePatch + { + static void Postfix() + { + Plugin.IsGamePaused = true; + } + } + + [HarmonyPatch(typeof(PauseState), nameof(PauseState.Update))] + class UpdatePausePatch + { + static void Postfix(PauseState __instance) + { + if (__instance.Exit) + { + Plugin.IsGamePaused = false; + } + } + } } -- cgit 1.4.1