From e3b1f1885cc03175f26fc97e129e46261a19b573 Mon Sep 17 00:00:00 2001 From: akanyan Date: Sat, 11 Jan 2025 23:59:27 +0000 Subject: [PATCH] fix(SkipCutscenes): interaction with restart --- Extras/SkipCutscenes/MU3.Sequence/patch_PlayMusic.cs | 9 +++++++++ Extras/TestMenuConfig/MU3.Mod/TestModePageModConfig.cs | 1 - 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/Extras/SkipCutscenes/MU3.Sequence/patch_PlayMusic.cs b/Extras/SkipCutscenes/MU3.Sequence/patch_PlayMusic.cs index 72ddd32..d0a29ab 100644 --- a/Extras/SkipCutscenes/MU3.Sequence/patch_PlayMusic.cs +++ b/Extras/SkipCutscenes/MU3.Sequence/patch_PlayMusic.cs @@ -1,5 +1,6 @@ using MonoMod; using MU3.Battle; +using MU3.Notes; using MU3.Util; using System.Collections; using UnityEngine; @@ -10,6 +11,9 @@ class patch_PlayMusic: PlayMusic { private GameEngine _gameEngine; private bool _quickStart = false; + [MonoModIgnore] + private NotesManager ntMgr => null; + [MonoModIgnore] private extern bool isPartyPlay(); @@ -42,8 +46,13 @@ class patch_PlayMusic: PlayMusic { private IEnumerator nuclearSkip() { bool enabled = false; + var initialFrame = ntMgr.getCurrentFrame(); EState state; while((state = getCurrentState()) < EState.End) { + if(initialFrame > ntMgr.getCurrentFrame()) { + // The run must have been restarted + yield break; + } if(Singleton.instance.getTriggerOn(UIInput.Key.MenuLeft)) { if(!isPartyPlay() || state > EState.CalcResult) { enabled = true; diff --git a/Extras/TestMenuConfig/MU3.Mod/TestModePageModConfig.cs b/Extras/TestMenuConfig/MU3.Mod/TestModePageModConfig.cs index c498831..682741c 100644 --- a/Extras/TestMenuConfig/MU3.Mod/TestModePageModConfig.cs +++ b/Extras/TestMenuConfig/MU3.Mod/TestModePageModConfig.cs @@ -1,5 +1,4 @@ using MU3.TestMode; -using MU3.Util; using System.Collections.Generic; using System.IO; using System.Linq;