summaryrefslogtreecommitdiff
path: root/mm/2s2h/Enhancements/Cutscenes/SkipIntroSequence.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'mm/2s2h/Enhancements/Cutscenes/SkipIntroSequence.cpp')
-rw-r--r--mm/2s2h/Enhancements/Cutscenes/SkipIntroSequence.cpp41
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);
+ }
+ }
}
});
}