1
0
forked from akanyan/mu3-mods
Files
mu3-mods/InfiniteStory/MU3/patch_Scene_32_PrePlayMusic_MusicSelect.cs
jujuforce 66fdc27787 feat: implement InfiniteStory (#6)
Infinite Story mod
- Allows watching an infinite number of stories per session
- Skips the dialog about it when selecting a story

Co-authored-by: Jujuforce <jujuforce@gmail.com>
Co-authored-by: akanyan <alicechecker01@proton.me>
Reviewed-on: akanyan/mu3-mods#6
Co-authored-by: jujuforce <jujuforce@noreply.gitea.tendokyu.moe>
Co-committed-by: jujuforce <jujuforce@noreply.gitea.tendokyu.moe>
2024-08-24 16:29:07 +00:00

31 lines
1.2 KiB
C#

using MonoMod;
using MU3.ViewData;
namespace MU3;
class patch_Scene_32_PrePlayMusic_MusicSelect: Scene_32_PrePlayMusic_MusicSelect {
private MusicSelectViewDataList _selectList;
private UIMusicSelector _selector;
private UIDialogBase _dialogBase;
[MonoModIgnore]
private extern void onFinishPlayScenario(int status, bool flag);
[MonoModIgnore]
private extern void updateSystemUIPanel();
private extern void orig_Execute_Select();
private void Execute_Select() {
// Walk around the warning dialog
if(_dialogBase == null && !_selector.isDecided && !_selector.isCanceled && (_selector.isPressed || _selector.isPressedDisabledElement)) {
MusicSelectViewData musicViewData = _selectList.getMusicViewData(_selector.selectIndex);
if(musicViewData != null && musicViewData.kind == MusicSelectViewData.Kind.Scenario) {
if(musicViewData.scenarioViewData.ngReason == ScenarioViewData.PlayNGReason.None) {
onFinishPlayScenario(0, false);
}
}
updateSystemUIPanel();
} else {
orig_Execute_Select();
}
}
}