1
0
forked from akanyan/mu3-mods

feat(SkipCutscenes): autocontinue

Also fix the "continue?" screen
This commit is contained in:
2025-01-09 23:49:03 +00:00
parent c75fbbc66a
commit ff8bdbdd22
3 changed files with 56 additions and 5 deletions

View File

@ -23,12 +23,15 @@ class patch_Scene_38_End: Scene_38_End {
}
}
private extern void orig_End_Init();
private void End_Init() {
SystemUI instance = SingletonMonoBehaviour<SystemUI>.instance;
instance.Panel.popState();
if(!Singleton<Mod.State>.instance.SkipPlay) {
instance.fadeOut();
orig_End_Init();
} else {
SystemUI instance = SingletonMonoBehaviour<SystemUI>.instance;
instance.Panel.popState();
commonWindow_.transform.localScale = new UnityEngine.Vector3(0, 0, 0);
commonWindow_.end();
}
commonWindow_.end();
}
}

View File

@ -0,0 +1,36 @@
using MonoMod;
using MU3.Util;
namespace MU3;
class patch_Scene_38_End: Scene_38_End {
private Mode<Scene_38_End, State> mode_;
private int result_;
private UICommonWindow commonWindow_;
private UIContinueDialog uiContinueDialog_;
[MonoModIgnore]
private enum State {
SendResultContinue = 2,
End = 6
}
[MonoModIgnore]
private extern void destroy(int result);
private void Init_Term() {
using IniFile ini = new IniFile("mu3.ini");
if(ini.getValue("Sequence", "AutoContinue", false) && mode_.get() != (int)State.End) {
mode_.set(State.SendResultContinue);
commonWindow_.transform.localScale = new UnityEngine.Vector3(0, 0, 0);
}
}
private void EndContinue_Proc() {
if(commonWindow_ != null && commonWindow_.IsEnd) {
destroy(result_);
} else if(uiContinueDialog_ != null && uiContinueDialog_.IsEnd) {
destroy(result_);
}
}
}

View File

@ -1,4 +1,5 @@
using MU3.TestMode;
using MU3.Util;
using System.Collections.Generic;
using System.IO;
using System.Linq;
@ -45,6 +46,7 @@ class TestModePageModConfig: TestModePage {
private List<Option> _options;
private Dictionary<string, string> _onOff;
private bool _isDisableGPActive;
private bool _isSkipCutscenesActive;
private MethodInfo _writeToFile;
protected new void Awake() {
@ -62,6 +64,7 @@ class TestModePageModConfig: TestModePage {
{ "ON", "1" }
};
_isDisableGPActive = typeof(UICredit).GetMethod("orig_initialize") != null;
_isSkipCutscenesActive = typeof(Notes.NotesManager).GetMethod("orig_reset") != null;
_writeToFile = typeof(IniFile).GetMethod("writeToFile", BindingFlags.Instance | BindingFlags.NonPublic);
writeOtherOptions();
@ -127,7 +130,16 @@ class TestModePageModConfig: TestModePage {
"QuickStart",
_onOff,
0,
typeof(Notes.NotesManager).GetMethod("orig_reset") != null,
_isSkipCutscenesActive,
"Sequence"
));
_options.Add(new Option(
"AUTOCONTINUE",
"AutoContinue",
_onOff,
0,
_isSkipCutscenesActive,
"Sequence"
));