diff options
Diffstat (limited to 'mm/2s2h/Enhancements/Cutscenes/SkipIntroSequence.cpp')
| -rw-r--r-- | mm/2s2h/Enhancements/Cutscenes/SkipIntroSequence.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/mm/2s2h/Enhancements/Cutscenes/SkipIntroSequence.cpp b/mm/2s2h/Enhancements/Cutscenes/SkipIntroSequence.cpp index 031639236..92c0b0046 100644 --- a/mm/2s2h/Enhancements/Cutscenes/SkipIntroSequence.cpp +++ b/mm/2s2h/Enhancements/Cutscenes/SkipIntroSequence.cpp @@ -3,8 +3,10 @@ extern "C" { #include "z64.h" +#include <variables.h> extern PlayState* gPlayState; extern SaveContext gSaveContext; +void Flags_SetWeekEventReg(s32 flag); } void RegisterSkipIntroSequence() { @@ -24,6 +26,45 @@ void RegisterSkipIntroSequence() { // Mark chest as opened and give the player the Deku Nuts gSaveContext.cycleSceneFlags[SCENE_OPENINGDAN].chest |= (1 << 0); Item_Give(gPlayState, ITEM_DEKU_NUTS_10); + + if (CVarGetInteger("gEnhancements.Cutscenes.SkipFirstCycle", 0)) { + gSaveContext.save.playerForm = PLAYER_FORM_HUMAN; + gSaveContext.save.saveInfo.playerData.isMagicAcquired = true; + Item_Give(gPlayState, ITEM_OCARINA_OF_TIME); + Item_Give(gPlayState, ITEM_MASK_DEKU); + gSaveContext.save.saveInfo.inventory.questItems = (1 << QUEST_SONG_TIME) | (1 << QUEST_SONG_HEALING); + if (gSaveContext.save.saveInfo.playerData.threeDayResetCount < 1) { + gSaveContext.save.saveInfo.playerData.threeDayResetCount = 1; + } + gSaveContext.save.isFirstCycle = false; + + // Lose nuts + AMMO(ITEM_DEKU_NUT) = 0; + + // Tatl's text at seeing the broken great fairy + gSaveContext.cycleSceneFlags[SCENE_YOUSEI_IZUMI].switch0 |= (1 << 10); + + // Tatl's text when first entering South Clock Town if not already set + if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_59_04)) { + SET_WEEKEVENTREG(WEEKEVENTREG_59_04); + } + + // Set Tatl second cycle (?) text if not already set + if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_31_04)) { + SET_WEEKEVENTREG(WEEKEVENTREG_31_04); + } + + // Set Entrance Cutscene flags for Clock Town if not already set + if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_ENTERED_EAST_CLOCK_TOWN)) { + SET_WEEKEVENTREG(WEEKEVENTREG_ENTERED_EAST_CLOCK_TOWN); + } + if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_ENTERED_WEST_CLOCK_TOWN)) { + SET_WEEKEVENTREG(WEEKEVENTREG_ENTERED_WEST_CLOCK_TOWN); + } + if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_ENTERED_NORTH_CLOCK_TOWN)) { + SET_WEEKEVENTREG(WEEKEVENTREG_ENTERED_NORTH_CLOCK_TOWN); + } + } } }); } |
