diff --git a/InfiniteStory/InfiniteStory.csproj b/InfiniteStory/InfiniteStory.csproj new file mode 100644 index 0000000..f5bb953 --- /dev/null +++ b/InfiniteStory/InfiniteStory.csproj @@ -0,0 +1,7 @@ + + + Assembly-CSharp.InfiniteStory.mm + Allows watching the story endlessly + + + \ No newline at end of file diff --git a/InfiniteStory/MU3.Sequence/patch_Play.cs b/InfiniteStory/MU3.Sequence/patch_Play.cs new file mode 100644 index 0000000..6d7798a --- /dev/null +++ b/InfiniteStory/MU3.Sequence/patch_Play.cs @@ -0,0 +1,12 @@ +using MU3.User; +using MU3.Util; + +namespace MU3.Sequence; + +class patch_Play: Play { + private extern void orig_Enter_PlayScenario(); + private void Enter_PlayScenario() { + orig_Enter_PlayScenario(); + Singleton.instance.userLocal.isStoryWatched = false; + } +} \ No newline at end of file diff --git a/InfiniteStory/MU3/patch_Scene_32_PrePlayMusic_MusicSelect.cs b/InfiniteStory/MU3/patch_Scene_32_PrePlayMusic_MusicSelect.cs new file mode 100644 index 0000000..17fef40 --- /dev/null +++ b/InfiniteStory/MU3/patch_Scene_32_PrePlayMusic_MusicSelect.cs @@ -0,0 +1,31 @@ +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(); + } + } +} \ No newline at end of file diff --git a/Mu3Mods.csproj b/Mu3Mods.csproj index 5123fa0..0e6bb87 100644 --- a/Mu3Mods.csproj +++ b/Mu3Mods.csproj @@ -2,7 +2,7 @@ net35 7EVENDAYS⇔HOLIDAYS - 2.2.0 + 2.3.0 true latest x64 diff --git a/Mu3Mods.sln b/Mu3Mods.sln index 7b7b8e2..b58cd1f 100644 --- a/Mu3Mods.sln +++ b/Mu3Mods.sln @@ -1,5 +1,4 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 +Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.9.34728.123 MinimumVisualStudioVersion = 10.0.40219.1 @@ -43,6 +42,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AttractVideoPlayer", "Attra EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SelectBGM", "SelectBGM\SelectBGM.csproj", "{07C01DA1-7ABF-4759-A1C2-9DCD04298E85}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "InfiniteStory", "InfiniteStory\InfiniteStory.csproj", "{939914E5-8D9A-4696-9957-AA6C6480FE94}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|x64 = Debug|x64 @@ -129,6 +130,10 @@ Global {07C01DA1-7ABF-4759-A1C2-9DCD04298E85}.Debug|x64.Build.0 = Debug|x64 {07C01DA1-7ABF-4759-A1C2-9DCD04298E85}.Release|x64.ActiveCfg = Release|x64 {07C01DA1-7ABF-4759-A1C2-9DCD04298E85}.Release|x64.Build.0 = Release|x64 + {939914E5-8D9A-4696-9957-AA6C6480FE94}.Debug|x64.ActiveCfg = Debug|x64 + {939914E5-8D9A-4696-9957-AA6C6480FE94}.Debug|x64.Build.0 = Debug|x64 + {939914E5-8D9A-4696-9957-AA6C6480FE94}.Release|x64.ActiveCfg = Release|x64 + {939914E5-8D9A-4696-9957-AA6C6480FE94}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -136,4 +141,4 @@ Global GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {D9317002-F66D-4CDE-8FF5-FF2A0D8DC021} EndGlobalSection -EndGlobal +EndGlobal \ No newline at end of file