diff --git a/AquaMai/Fix/Config.cs b/AquaMai/Fix/Config.cs index 98c2a813..45ed0fa0 100644 --- a/AquaMai/Fix/Config.cs +++ b/AquaMai/Fix/Config.cs @@ -82,4 +82,9 @@ public class Config en: "Prevent gray network caused by mistakenly thinking it's an AimeDB server issue", zh: "防止因错误认为 AimeDB 服务器问题引起的灰网,建议开启")] public bool IgnoreAimeServerError { get; set; } + + [ConfigComment( + en: "Reset touch panel after playing track", + zh: "在游玩一首曲目后重置触摸面板")] + public bool TouchResetAfterTrack { get; set; } } diff --git a/AquaMai/Fix/TouchResetAfterTrack.cs b/AquaMai/Fix/TouchResetAfterTrack.cs new file mode 100644 index 00000000..1f080293 --- /dev/null +++ b/AquaMai/Fix/TouchResetAfterTrack.cs @@ -0,0 +1,25 @@ +using HarmonyLib; +using MAI2.Util; +using Manager; +using Process; + +namespace AquaMai.Fix; + +public class TouchResetAfterTrack +{ + [HarmonyPostfix] + [HarmonyPatch(typeof(ResultProcess), "OnStart")] + public static void ResultProcessOnStart() + { + SingletonStateMachine.Instance.StartTouchPanel(); + MelonLoader.MelonLogger.Msg("[TouchResetAfterTrack] Touch panel reset"); + } + + [HarmonyPostfix] + [HarmonyPatch(typeof(GamePlayManager), "SetQuickRetryFrag")] + public static void OnStart() + { + SingletonStateMachine.Instance.StartTouchPanel(); + MelonLoader.MelonLogger.Msg("[TouchResetAfterTrack] Touch panel reset"); + } +}