From 8d2d9a3d430ff30580d73945f731ad2d4570dbfd Mon Sep 17 00:00:00 2001 From: akanyan Date: Sun, 26 Jan 2025 14:08:14 +0000 Subject: [PATCH] feat(SkipCutscenes): full postgame skip --- Extras/SkipCutscenes/MU3.Mod/State.cs | 3 ++- .../MU3.Sequence/patch_PlayMusic.cs | 10 ++++---- Extras/SkipCutscenes/MU3/patch_BattleUI.cs | 2 +- .../MU3/patch_Scene_37_Result.cs | 23 +++++++++++++++++++ 4 files changed, 31 insertions(+), 7 deletions(-) create mode 100644 Extras/SkipCutscenes/MU3/patch_Scene_37_Result.cs diff --git a/Extras/SkipCutscenes/MU3.Mod/State.cs b/Extras/SkipCutscenes/MU3.Mod/State.cs index 6450e73..b7496da 100644 --- a/Extras/SkipCutscenes/MU3.Mod/State.cs +++ b/Extras/SkipCutscenes/MU3.Mod/State.cs @@ -4,5 +4,6 @@ namespace MU3.Mod; class State: Singleton { public bool SkipItemFrame { get; set; } - public bool SkipEntry { get; set; } + public bool SkipMusicIntro { get; set; } + public bool SkipMusicOutro { get; set; } } diff --git a/Extras/SkipCutscenes/MU3.Sequence/patch_PlayMusic.cs b/Extras/SkipCutscenes/MU3.Sequence/patch_PlayMusic.cs index cc5c498..7ff8734 100644 --- a/Extras/SkipCutscenes/MU3.Sequence/patch_PlayMusic.cs +++ b/Extras/SkipCutscenes/MU3.Sequence/patch_PlayMusic.cs @@ -8,8 +8,6 @@ using UnityEngine; namespace MU3.Sequence; class patch_PlayMusic: PlayMusic { - public class CutscenePatch { }; - private GameEngine _gameEngine; private bool _quickStart = false; @@ -28,9 +26,10 @@ class patch_PlayMusic: PlayMusic { private void Execute_StartCutscene() { orig_Execute_StartCutscene(); - Singleton.instance.SkipEntry = false; + Singleton.instance.SkipMusicIntro = false; + Singleton.instance.SkipMusicOutro = false; if(_quickStart || Singleton.instance.getTriggerOn(UIInput.Key.MenuLeft)) { - Singleton.instance.SkipEntry = true; + Singleton.instance.SkipMusicIntro = true; _gameEngine.skipStartCutscene(); if(isPartyPlay()) { setNextState(EState.PartyWaitReady); @@ -58,10 +57,11 @@ class patch_PlayMusic: PlayMusic { if(Singleton.instance.getTriggerOn(UIInput.Key.MenuLeft)) { if(!isPartyPlay() || state > EState.CalcResult) { enabled = true; + Singleton.instance.SkipMusicOutro = true; } } if(enabled) { - Singleton.instance.SkipItemFrame = true; + Singleton.instance.SkipItemFrame = false; if(state < EState.CalcResult) { setNextState(EState.CalcResult); } diff --git a/Extras/SkipCutscenes/MU3/patch_BattleUI.cs b/Extras/SkipCutscenes/MU3/patch_BattleUI.cs index 2ebf658..cc4ade8 100644 --- a/Extras/SkipCutscenes/MU3/patch_BattleUI.cs +++ b/Extras/SkipCutscenes/MU3/patch_BattleUI.cs @@ -24,7 +24,7 @@ class patch_BattleUI: BattleUI { } public new void playReady(Action onFinish) { - if(Singleton.instance.SkipEntry) { + if(Singleton.instance.SkipMusicIntro) { StartCoroutine(playReadyProcSkipped(onFinish)); } else { StartCoroutine(playReadyProc(onFinish)); diff --git a/Extras/SkipCutscenes/MU3/patch_Scene_37_Result.cs b/Extras/SkipCutscenes/MU3/patch_Scene_37_Result.cs new file mode 100644 index 0000000..4f3ab8a --- /dev/null +++ b/Extras/SkipCutscenes/MU3/patch_Scene_37_Result.cs @@ -0,0 +1,23 @@ +using MonoMod; +using MU3.Util; + +namespace MU3; + +class patch_Scene_37_Result: Scene_37_Result { + [MonoModIgnore] + private enum State { End = 11 }; + + private Mode mode_; + + private extern void orig_Assignment_Init(); + private void Assignment_Init() { + if(Singleton.instance.SkipMusicOutro) { + SystemUI instance = SingletonMonoBehaviour.instance; + instance.removeCanvas(Graphics.Const.SortOrder.Dialog); + Singleton.instance.SkipMusicOutro = false; + mode_.set(State.End); + } else { + orig_Assignment_Init(); + } + } +}