1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-07-13 11:24:40 +00:00

Split SaveContext into sub-structs (#1393)

* Split SaveContext struct

* run formatter

* Remove temporary-until-split stuff in z_sram

* .

* run formatter
This commit is contained in:
Dragorn421 2023-08-13 21:24:26 +02:00 committed by GitHub
parent e272186b5f
commit 6e7a6d4181
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
107 changed files with 1819 additions and 1751 deletions

View file

@ -167,7 +167,7 @@ void Cutscene_StopManual(PlayState* play, CutsceneContext* csCtx) {
}
void Cutscene_UpdateManual(PlayState* play, CutsceneContext* csCtx) {
if (gSaveContext.cutsceneIndex < 0xFFF0) {
if (gSaveContext.save.cutsceneIndex < 0xFFF0) {
sManualCutsceneHandlers[csCtx->state](play, csCtx);
}
}
@ -177,14 +177,14 @@ void Cutscene_UpdateScripted(PlayState* play, CutsceneContext* csCtx) {
if (CHECK_BTN_ALL(input->press.button, BTN_DLEFT) && (csCtx->state == CS_STATE_IDLE) && IS_CUTSCENE_LAYER) {
gUseCutsceneCam = false;
gSaveContext.cutsceneIndex = 0xFFFD;
gSaveContext.save.cutsceneIndex = 0xFFFD;
gSaveContext.cutsceneTrigger = 1;
}
if (CHECK_BTN_ALL(input->press.button, BTN_DUP) && (csCtx->state == CS_STATE_IDLE) && IS_CUTSCENE_LAYER &&
!gDebugCamEnabled) {
gUseCutsceneCam = true;
gSaveContext.cutsceneIndex = 0xFFFD;
gSaveContext.save.cutsceneIndex = 0xFFFD;
gSaveContext.cutsceneTrigger = 1;
}
@ -194,11 +194,11 @@ void Cutscene_UpdateScripted(PlayState* play, CutsceneContext* csCtx) {
if ((gSaveContext.cutsceneTrigger != 0) && (csCtx->state == CS_STATE_IDLE)) {
osSyncPrintf("\nデモ開始要求 発令!"); // "Cutscene start request announcement!"
gSaveContext.cutsceneIndex = 0xFFFD;
gSaveContext.save.cutsceneIndex = 0xFFFD;
gSaveContext.cutsceneTrigger = 1;
}
if (gSaveContext.cutsceneIndex >= 0xFFF0) {
if (gSaveContext.save.cutsceneIndex >= 0xFFF0) {
Cutscene_SetupScripted(play, csCtx);
sScriptedCutsceneHandlers[csCtx->state](play, csCtx);
}
@ -272,7 +272,7 @@ void CutsceneCmd_Misc(PlayState* play, CutsceneContext* csCtx, CsCmdMisc* cmd) {
// Because this check uses an entrance index, the Door of Time will only open
// after entering Temple of Time from the front entrance.
// This is not an issue in the context of normal gameplay.
if (gSaveContext.entranceIndex == ENTR_TEMPLE_OF_TIME_0) {
if (gSaveContext.save.entranceIndex == ENTR_TEMPLE_OF_TIME_0) {
CutsceneFlags_Set(play, 2);
}
}
@ -372,8 +372,8 @@ void CutsceneCmd_Misc(PlayState* play, CutsceneContext* csCtx, CsCmdMisc* cmd) {
play->envCtx.precipitation[PRECIP_RAIN_MAX] = 0;
play->envCtx.stormRequest = STORM_REQUEST_STOP;
if (gSaveContext.dayTime < CLOCK_TIME(7, 0)) {
gSaveContext.dayTime += 30;
if (gSaveContext.save.dayTime < CLOCK_TIME(7, 0)) {
gSaveContext.save.dayTime += 30;
}
if (play->envCtx.precipitation[PRECIP_RAIN_CUR] == 0) {
@ -413,19 +413,20 @@ void CutsceneCmd_Misc(PlayState* play, CutsceneContext* csCtx, CsCmdMisc* cmd) {
break;
case CS_MISC_TIME_ADVANCE_TO_NIGHT:
gSaveContext.dayTime += 30;
gSaveContext.save.dayTime += 30;
if ((gSaveContext.dayTime) >= CLOCK_TIME(19, 0)) {
gSaveContext.dayTime = CLOCK_TIME(19, 0) - 1;
if ((gSaveContext.save.dayTime) >= CLOCK_TIME(19, 0)) {
gSaveContext.save.dayTime = CLOCK_TIME(19, 0) - 1;
}
break;
case CS_MISC_SET_TIME_BASED_LIGHT_SETTING:
if ((gSaveContext.dayTime < CLOCK_TIME(4, 30)) || (gSaveContext.dayTime >= CLOCK_TIME(6, 30))) {
if ((gSaveContext.dayTime >= CLOCK_TIME(6, 30)) && (gSaveContext.dayTime < CLOCK_TIME(16, 0))) {
if ((gSaveContext.save.dayTime < CLOCK_TIME(4, 30)) || (gSaveContext.save.dayTime >= CLOCK_TIME(6, 30))) {
if ((gSaveContext.save.dayTime >= CLOCK_TIME(6, 30)) &&
(gSaveContext.save.dayTime < CLOCK_TIME(16, 0))) {
play->envCtx.lightSettingOverride = 1;
} else if ((gSaveContext.dayTime >= CLOCK_TIME(16, 0)) &&
(gSaveContext.dayTime <= CLOCK_TIME(18, 30))) {
} else if ((gSaveContext.save.dayTime >= CLOCK_TIME(16, 0)) &&
(gSaveContext.save.dayTime <= CLOCK_TIME(18, 30))) {
play->envCtx.lightSettingOverride = 2;
} else {
play->envCtx.lightSettingOverride = 3;
@ -479,10 +480,10 @@ void CutsceneCmd_Misc(PlayState* play, CutsceneContext* csCtx, CsCmdMisc* cmd) {
case CS_MISC_FREEZE_TIME:
if (IS_DAY) {
gSaveContext.dayTime -= gTimeSpeed;
gSaveContext.save.dayTime -= gTimeSpeed;
} else {
// doubled to compensate for time moving twice as fast at night
gSaveContext.dayTime -= gTimeSpeed * 2;
gSaveContext.save.dayTime -= gTimeSpeed * 2;
}
break;
@ -540,7 +541,7 @@ void CutsceneCmd_SetTime(PlayState* play, CutsceneContext* csCtx, CsCmdTime* cmd
hours = (cmd->hour * 60.0f) / (24.0f * 60.0f / 0x10000);
minutes = (cmd->minute + 1) / (24.0f * 60.0f / 0x10000);
gSaveContext.dayTime = hours + minutes;
gSaveContext.save.dayTime = hours + minutes;
gSaveContext.skyboxTime = hours + minutes;
}
}
@ -576,67 +577,67 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
gSaveContext.forceRisingButtonAlphas = true;
}
gSaveContext.cutsceneIndex = 0;
gSaveContext.save.cutsceneIndex = 0;
switch (cmd->destination) {
case CS_DEST_CUTSCENE_MAP_GANON_HORSE:
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
gSaveContext.cutsceneIndex = 0xFFF1;
gSaveContext.save.cutsceneIndex = 0xFFF1;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_CUTSCENE_MAP_THREE_GODDESSES:
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
gSaveContext.cutsceneIndex = 0xFFF0;
gSaveContext.save.cutsceneIndex = 0xFFF0;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FILL_WHITE;
break;
case CS_DEST_GERUDO_VALLEY_DIN_PART_1:
play->nextEntranceIndex = ENTR_GERUDO_VALLEY_0;
gSaveContext.cutsceneIndex = 0xFFF1;
gSaveContext.save.cutsceneIndex = 0xFFF1;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FILL_WHITE;
break;
case CS_DEST_DEATH_MOUNTAIN_TRAIL_NAYRU:
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_TRAIL_0;
gSaveContext.cutsceneIndex = 0xFFF0;
gSaveContext.save.cutsceneIndex = 0xFFF0;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FILL_WHITE;
break;
case CS_DEST_KOKIRI_FOREST_FARORE:
play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0;
gSaveContext.cutsceneIndex = 0xFFF0;
gSaveContext.save.cutsceneIndex = 0xFFF0;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FILL_WHITE;
break;
case CS_DEST_CUTSCENE_MAP_TRIFORCE_CREATION:
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
gSaveContext.cutsceneIndex = 0xFFF2;
gSaveContext.save.cutsceneIndex = 0xFFF2;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FILL_WHITE;
break;
case CS_DEST_KOKIRI_FOREST_RECEIVE_KOKIRI_EMERALD:
play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0;
gSaveContext.cutsceneIndex = 0xFFF2;
gSaveContext.save.cutsceneIndex = 0xFFF2;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_INSTANT;
break;
case CS_DEST_TEMPLE_OF_TIME_FROM_MASTER_SWORD:
gSaveContext.fw.set = 0;
gSaveContext.save.info.fw.set = 0;
gSaveContext.respawn[RESPAWN_MODE_TOP].data = 0;
if (!GET_EVENTCHKINF(EVENTCHKINF_45)) {
SET_EVENTCHKINF(EVENTCHKINF_45);
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.cutsceneIndex = 0xFFF3;
gSaveContext.save.cutsceneIndex = 0xFFF3;
play->transitionType = TRANS_TYPE_INSTANT;
} else {
if (!IS_CUTSCENE_LAYER) {
@ -656,21 +657,21 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case CS_DEST_GERUDO_VALLEY_DIN_PART_2:
play->nextEntranceIndex = ENTR_GERUDO_VALLEY_0;
gSaveContext.cutsceneIndex = 0xFFF0;
gSaveContext.save.cutsceneIndex = 0xFFF0;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FILL_BROWN;
break;
case CS_DEST_LINKS_HOUSE_INTRO:
play->nextEntranceIndex = ENTR_LINKS_HOUSE_0;
gSaveContext.cutsceneIndex = 0xFFF0;
gSaveContext.save.cutsceneIndex = 0xFFF0;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_KOKIRI_FOREST_INTRO:
play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0;
gSaveContext.cutsceneIndex = 0xFFF3;
gSaveContext.save.cutsceneIndex = 0xFFF3;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
@ -697,21 +698,21 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case CS_DEST_TEMPLE_OF_TIME_KOKIRI_EMERALD_RESTORED:
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.cutsceneIndex = 0xFFF4;
gSaveContext.save.cutsceneIndex = 0xFFF4;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
case CS_DEST_TEMPLE_OF_TIME_GORON_RUBY_RESTORED:
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.cutsceneIndex = 0xFFF5;
gSaveContext.save.cutsceneIndex = 0xFFF5;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
case CS_DEST_TEMPLE_OF_TIME_ZORAS_SAPPHIRE_RESTORED:
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.cutsceneIndex = 0xFFF6;
gSaveContext.save.cutsceneIndex = 0xFFF6;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
@ -727,13 +728,13 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_TRAIL_0;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
gSaveContext.cutsceneIndex = 0x8000;
gSaveContext.save.cutsceneIndex = 0x8000;
break;
case CS_DEST_LAKE_HYLIA_WATER_RESTORED:
play->nextEntranceIndex = ENTR_LAKE_HYLIA_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.cutsceneIndex = 0xFFF0;
gSaveContext.save.cutsceneIndex = 0xFFF0;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
@ -741,14 +742,14 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
Item_Give(play, ITEM_SONG_REQUIEM);
play->nextEntranceIndex = ENTR_DESERT_COLOSSUS_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.cutsceneIndex = 0xFFF0;
gSaveContext.save.cutsceneIndex = 0xFFF0;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
case CS_DEST_CUTSCENE_MAP_GANONDORF_DEFEATED_CREDITS:
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.cutsceneIndex = 0xFFF8;
gSaveContext.save.cutsceneIndex = 0xFFF8;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
@ -762,28 +763,28 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
play->linkAgeOnLoad = LINK_AGE_ADULT;
play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.cutsceneIndex = 0xFFF0;
gSaveContext.save.cutsceneIndex = 0xFFF0;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
case CS_DEST_TEMPLE_OF_TIME_KOKIRI_EMERALD_RESTORED_2:
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.cutsceneIndex = 0xFFF4;
gSaveContext.save.cutsceneIndex = 0xFFF4;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
case CS_DEST_TEMPLE_OF_TIME_GORON_RUBY_RESTORED_2:
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.cutsceneIndex = 0xFFF5;
gSaveContext.save.cutsceneIndex = 0xFFF5;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
case CS_DEST_TEMPLE_OF_TIME_ZORAS_SAPPHIRE_RESTORED_2:
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.cutsceneIndex = 0xFFF6;
gSaveContext.save.cutsceneIndex = 0xFFF6;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
@ -813,7 +814,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
play->linkAgeOnLoad = LINK_AGE_CHILD;
play->nextEntranceIndex = ENTR_HYRULE_FIELD_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.cutsceneIndex = 0xFFF2;
gSaveContext.save.cutsceneIndex = 0xFFF2;
play->transitionType = TRANS_TYPE_INSTANT;
break;
@ -826,28 +827,28 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case CS_DEST_CUTSCENE_MAP_GANONDORF_FROM_MASTER_SWORD:
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.cutsceneIndex = 0xFFF3;
gSaveContext.save.cutsceneIndex = 0xFFF3;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
case CS_DEST_HYRULE_FIELD_INTRO_DREAM:
play->nextEntranceIndex = ENTR_HYRULE_FIELD_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.cutsceneIndex = 0xFFF0;
gSaveContext.save.cutsceneIndex = 0xFFF0;
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
break;
case CS_DEST_CUTSCENE_MAP_SHEIKAH_LEGEND:
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.cutsceneIndex = 0xFFF4;
gSaveContext.save.cutsceneIndex = 0xFFF4;
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
break;
case CS_DEST_TEMPLE_OF_TIME_ZELDA_REVEAL:
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.cutsceneIndex = 0xFFF9;
gSaveContext.save.cutsceneIndex = 0xFFF9;
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
break;
@ -855,7 +856,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
play->linkAgeOnLoad = LINK_AGE_ADULT;
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.cutsceneIndex = 0xFFFA;
gSaveContext.save.cutsceneIndex = 0xFFFA;
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
break;
@ -868,7 +869,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case CS_DEST_KAKARIKO_VILLAGE_DRAIN_WELL:
play->nextEntranceIndex = ENTR_KAKARIKO_VILLAGE_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.cutsceneIndex = 0xFFF2;
gSaveContext.save.cutsceneIndex = 0xFFF2;
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
break;
@ -896,7 +897,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
SET_EVENTCHKINF(EVENTCHKINF_54);
play->nextEntranceIndex = ENTR_KAKARIKO_VILLAGE_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.cutsceneIndex = 0xFFF1;
gSaveContext.save.cutsceneIndex = 0xFFF1;
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
break;
@ -921,14 +922,14 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case CS_DEST_HYRULE_FIELD_FROM_ZELDAS_COURTYARD:
play->nextEntranceIndex = ENTR_HYRULE_FIELD_0;
gSaveContext.cutsceneIndex = 0xFFF8;
gSaveContext.save.cutsceneIndex = 0xFFF8;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_CIRCLE(TCA_NORMAL, TCC_WHITE, TCS_SLOW);
break;
case CS_DEST_TEMPLE_OF_TIME_SONG_OF_TIME:
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
gSaveContext.cutsceneIndex = 0xFFF7;
gSaveContext.save.cutsceneIndex = 0xFFF7;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_INSTANT;
break;
@ -944,56 +945,56 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
Audio_SetSfxBanksMute(0x6F);
play->linkAgeOnLoad = LINK_AGE_CHILD;
play->nextEntranceIndex = ENTR_GERUDO_VALLEY_0;
gSaveContext.cutsceneIndex = 0xFFF2;
gSaveContext.save.cutsceneIndex = 0xFFF2;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_GERUDO_FORTRESS_CREDITS:
play->nextEntranceIndex = ENTR_GERUDOS_FORTRESS_0;
gSaveContext.cutsceneIndex = 0xFFF1;
gSaveContext.save.cutsceneIndex = 0xFFF1;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_KAKARIKO_VILLAGE_CREDITS:
play->nextEntranceIndex = ENTR_KAKARIKO_VILLAGE_0;
gSaveContext.cutsceneIndex = 0xFFF4;
gSaveContext.save.cutsceneIndex = 0xFFF4;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_DEATH_MOUNTAIN_TRAIL_CREDITS_PART_1:
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_TRAIL_0;
gSaveContext.cutsceneIndex = 0xFFF3;
gSaveContext.save.cutsceneIndex = 0xFFF3;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_GORON_CITY_CREDITS:
play->nextEntranceIndex = ENTR_GORON_CITY_0;
gSaveContext.cutsceneIndex = 0xFFF1;
gSaveContext.save.cutsceneIndex = 0xFFF1;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_LAKE_HYLIA_CREDITS:
play->nextEntranceIndex = ENTR_LAKE_HYLIA_0;
gSaveContext.cutsceneIndex = 0xFFF1;
gSaveContext.save.cutsceneIndex = 0xFFF1;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_ZORAS_FOUNTAIN_CREDITS:
play->nextEntranceIndex = ENTR_ZORAS_FOUNTAIN_0;
gSaveContext.cutsceneIndex = 0xFFF2;
gSaveContext.save.cutsceneIndex = 0xFFF2;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_ZORAS_DOMAIN_CREDITS:
play->nextEntranceIndex = ENTR_ZORAS_DOMAIN_0;
gSaveContext.cutsceneIndex = 0xFFF0;
gSaveContext.save.cutsceneIndex = 0xFFF0;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
@ -1001,21 +1002,21 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case CS_DEST_KOKIRI_FOREST_CREDITS_PART_1:
play->linkAgeOnLoad = LINK_AGE_ADULT;
play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0;
gSaveContext.cutsceneIndex = 0xFFF6;
gSaveContext.save.cutsceneIndex = 0xFFF6;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_KOKIRI_FOREST_CREDITS_PART_2:
play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0;
gSaveContext.cutsceneIndex = 0xFFF7;
gSaveContext.save.cutsceneIndex = 0xFFF7;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_HYRULE_FIELD_CREDITS:
play->nextEntranceIndex = ENTR_HYRULE_FIELD_0;
gSaveContext.cutsceneIndex = 0xFFF5;
gSaveContext.save.cutsceneIndex = 0xFFF5;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
@ -1023,7 +1024,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case CS_DEST_LON_LON_RANCH_CREDITS_PART_1_ALT:
play->linkAgeOnLoad = LINK_AGE_CHILD;
play->nextEntranceIndex = ENTR_LON_LON_RANCH_0;
gSaveContext.cutsceneIndex = 0xFFF2;
gSaveContext.save.cutsceneIndex = 0xFFF2;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
@ -1043,7 +1044,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case CS_DEST_CUTSCENE_MAP_DEKU_SPROUT_PART_2:
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.cutsceneIndex = 0xFFF5;
gSaveContext.save.cutsceneIndex = 0xFFF5;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
@ -1056,27 +1057,27 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case CS_DEST_DEATH_MOUNTAIN_TRAIL_CREDITS_PART_2:
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_TRAIL_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.cutsceneIndex = 0xFFF4;
gSaveContext.save.cutsceneIndex = 0xFFF4;
play->transitionType = TRANS_TYPE_FADE_BLACK;
gSaveContext.nextTransitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_TEMPLE_OF_TIME_CREDITS:
gSaveContext.equips.equipment |= EQUIP_VALUE_TUNIC_KOKIRI << (EQUIP_TYPE_TUNIC * 4);
gSaveContext.save.info.equips.equipment |= EQUIP_VALUE_TUNIC_KOKIRI << (EQUIP_TYPE_TUNIC * 4);
Player_SetEquipmentData(play, player);
gSaveContext.equips.equipment |= EQUIP_VALUE_BOOTS_KOKIRI << (EQUIP_TYPE_BOOTS * 4);
gSaveContext.save.info.equips.equipment |= EQUIP_VALUE_BOOTS_KOKIRI << (EQUIP_TYPE_BOOTS * 4);
Player_SetEquipmentData(play, player);
play->linkAgeOnLoad = LINK_AGE_CHILD;
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.cutsceneIndex = 0xFFF1;
gSaveContext.save.cutsceneIndex = 0xFFF1;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_ZELDAS_COURTYARD_CREDITS:
play->nextEntranceIndex = ENTR_CASTLE_COURTYARD_ZELDA_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.cutsceneIndex = 0xFFF0;
gSaveContext.save.cutsceneIndex = 0xFFF0;
play->transitionType = TRANS_TYPE_FADE_BLACK;
gSaveContext.nextTransitionType = TRANS_TYPE_FADE_BLACK;
break;
@ -1085,14 +1086,14 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
play->linkAgeOnLoad = LINK_AGE_CHILD;
play->nextEntranceIndex = ENTR_LON_LON_RANCH_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.cutsceneIndex = 0xFFF2;
gSaveContext.save.cutsceneIndex = 0xFFF2;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_LON_LON_RANCH_CREDITS_PART_2:
play->nextEntranceIndex = ENTR_LON_LON_RANCH_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.cutsceneIndex = 0xFFF3;
gSaveContext.save.cutsceneIndex = 0xFFF3;
play->transitionType = TRANS_TYPE_FADE_WHITE;
gSaveContext.nextTransitionType = TRANS_TYPE_FADE_WHITE;
break;
@ -1101,7 +1102,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
play->linkAgeOnLoad = LINK_AGE_CHILD;
play->nextEntranceIndex = ENTR_LON_LON_RANCH_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.cutsceneIndex = 0xFFF4;
gSaveContext.save.cutsceneIndex = 0xFFF4;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
@ -1109,7 +1110,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
play->linkAgeOnLoad = LINK_AGE_ADULT;
play->nextEntranceIndex = ENTR_LON_LON_RANCH_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.cutsceneIndex = 0xFFF5;
gSaveContext.save.cutsceneIndex = 0xFFF5;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
@ -1117,14 +1118,14 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
play->linkAgeOnLoad = LINK_AGE_CHILD;
play->nextEntranceIndex = ENTR_LON_LON_RANCH_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.cutsceneIndex = 0xFFF6;
gSaveContext.save.cutsceneIndex = 0xFFF6;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_LON_LON_RANCH_CREDITS_PART_6:
play->nextEntranceIndex = ENTR_LON_LON_RANCH_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.cutsceneIndex = 0xFFF7;
gSaveContext.save.cutsceneIndex = 0xFFF7;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
@ -1164,7 +1165,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
GET_EVENTCHKINF(EVENTCHKINF_4A)) {
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.cutsceneIndex = 0xFFF3;
gSaveContext.save.cutsceneIndex = 0xFFF3;
play->transitionType = TRANS_TYPE_FADE_BLACK;
} else {
switch (gSaveContext.sceneLayer) {
@ -1183,7 +1184,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case 10:
play->nextEntranceIndex = ENTR_LAKE_HYLIA_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.cutsceneIndex = 0xFFF0;
gSaveContext.save.cutsceneIndex = 0xFFF0;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
}
@ -1194,7 +1195,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
if (CHECK_QUEST_ITEM(QUEST_MEDALLION_SHADOW)) {
play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.cutsceneIndex = 0xFFF1;
gSaveContext.save.cutsceneIndex = 0xFFF1;
play->transitionType = TRANS_TYPE_FADE_WHITE_FAST;
} else {
SET_EVENTCHKINF(EVENTCHKINF_C8);
@ -1209,7 +1210,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
if (CHECK_QUEST_ITEM(QUEST_MEDALLION_SPIRIT)) {
play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.cutsceneIndex = 0xFFF1;
gSaveContext.save.cutsceneIndex = 0xFFF1;
play->transitionType = TRANS_TYPE_FADE_WHITE_FAST;
} else {
play->nextEntranceIndex = ENTR_GRAVEYARD_8;
@ -1235,7 +1236,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case CS_DEST_KOKIRI_FOREST_FROM_CHAMBER_OF_SAGES:
play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0;
gSaveContext.cutsceneIndex = 0xFFF8;
gSaveContext.save.cutsceneIndex = 0xFFF8;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_WHITE;
gSaveContext.nextTransitionType = TRANS_TYPE_FADE_WHITE;
@ -1256,7 +1257,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case CS_DEST_HYRULE_FIELD_TITLE_SCREEN:
play->nextEntranceIndex = ENTR_HYRULE_FIELD_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.cutsceneIndex = 0xFFF3;
gSaveContext.save.cutsceneIndex = 0xFFF3;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
@ -1265,7 +1266,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case TITLE_DEMO_SPIRIT_TEMPLE:
play->nextEntranceIndex = ENTR_SPIRIT_TEMPLE_BOSS_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.cutsceneIndex = 0xFFF2;
gSaveContext.save.cutsceneIndex = 0xFFF2;
play->transitionType = TRANS_TYPE_FADE_BLACK;
sTitleDemoDestination++;
break;
@ -1273,7 +1274,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case TITLE_DEMO_DEATH_MOUNTAIN_CRATER:
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_CRATER_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.cutsceneIndex = 0xFFF1;
gSaveContext.save.cutsceneIndex = 0xFFF1;
play->transitionType = TRANS_TYPE_FADE_BLACK;
sTitleDemoDestination++;
break;
@ -1281,7 +1282,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case TITLE_DEMO_GANONDORF_HORSE:
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.cutsceneIndex = 0xFFF6;
gSaveContext.save.cutsceneIndex = 0xFFF6;
play->transitionType = TRANS_TYPE_FADE_BLACK;
sTitleDemoDestination = TITLE_DEMO_SPIRIT_TEMPLE;
break;
@ -1291,7 +1292,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case CS_DEST_GRAVEYARD_SUNS_SONG_PART_2:
play->nextEntranceIndex = ENTR_GRAVEYARD_0;
play->transitionTrigger = TRANS_TRIGGER_START;
gSaveContext.cutsceneIndex = 0xFFF1;
gSaveContext.save.cutsceneIndex = 0xFFF1;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
@ -1344,10 +1345,10 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
play->csCtx.script = SEGMENTED_TO_VIRTUAL(gTowerBarrierCs);
play->csCtx.curFrame = 0;
gSaveContext.cutsceneTrigger = 1;
gSaveContext.cutsceneIndex = 0xFFFF;
gSaveContext.save.cutsceneIndex = 0xFFFF;
csCtx->state = CS_STATE_STOP;
} else {
gSaveContext.cutsceneIndex = 0xFFFF;
gSaveContext.save.cutsceneIndex = 0xFFFF;
csCtx->state = CS_STATE_STOP;
}
break;
@ -1384,7 +1385,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
Audio_SetSfxBanksMute(0x6F);
play->linkAgeOnLoad = LINK_AGE_ADULT;
play->nextEntranceIndex = ENTR_HYRULE_FIELD_0;
gSaveContext.cutsceneIndex = 0xFFF7;
gSaveContext.save.cutsceneIndex = 0xFFF7;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
@ -1397,7 +1398,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
break;
case CS_DEST_ZELDAS_COURTYARD_RECEIVE_LETTER:
gSaveContext.dayTime = CLOCK_TIME(12, 0);
gSaveContext.save.dayTime = CLOCK_TIME(12, 0);
gSaveContext.skyboxTime = CLOCK_TIME(12, 0);
play->nextEntranceIndex = ENTR_CASTLE_COURTYARD_ZELDA_1;
play->transitionTrigger = TRANS_TRIGGER_START;
@ -1424,13 +1425,13 @@ void CutsceneCmd_Transition(PlayState* play, CutsceneContext* csCtx, CsCmdTransi
if (cmd->type == CS_TRANS_GRAY_FILL_IN) {
play->envCtx.screenFillColor[3] = 255.0f * lerp;
if ((lerp == 0.0f) && (gSaveContext.entranceIndex == ENTR_CHAMBER_OF_THE_SAGES_0)) {
if ((lerp == 0.0f) && (gSaveContext.save.entranceIndex == ENTR_CHAMBER_OF_THE_SAGES_0)) {
Audio_PlaySfxGeneral(NA_SE_SY_WHITE_OUT_S, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
} else if ((lerp == 0.0f) &&
((gSaveContext.entranceIndex == ENTR_TEMPLE_OF_TIME_0) ||
(gSaveContext.entranceIndex == ENTR_HYRULE_CASTLE_0) ||
(gSaveContext.entranceIndex == ENTR_GREAT_FAIRYS_FOUNTAIN_SPELLS_0))) {
((gSaveContext.save.entranceIndex == ENTR_TEMPLE_OF_TIME_0) ||
(gSaveContext.save.entranceIndex == ENTR_HYRULE_CASTLE_0) ||
(gSaveContext.save.entranceIndex == ENTR_GREAT_FAIRYS_FOUNTAIN_SPELLS_0))) {
Audio_PlaySfxGeneral(NA_SE_EV_WHITE_OUT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
} else if ((lerp == 0.0f) && (play->sceneId == SCENE_INSIDE_GANONS_CASTLE)) {
@ -2193,7 +2194,7 @@ void CutsceneHandler_RunScript(PlayState* play, CutsceneContext* csCtx) {
if (0) {} // Necessary to match
if (gSaveContext.cutsceneIndex >= 0xFFF0) {
if (gSaveContext.save.cutsceneIndex >= 0xFFF0) {
if (0) {} // Also necessary to match
if (BREG(0) != 0) {
@ -2239,11 +2240,11 @@ void CutsceneHandler_StopScript(PlayState* play, CutsceneContext* csCtx) {
osSyncPrintf("\n\n\n\n\nやっぱりここかいな"); // "Right here, huh"
gSaveContext.cutsceneIndex = 0;
gSaveContext.save.cutsceneIndex = 0;
gSaveContext.gameMode = GAMEMODE_NORMAL;
if (gUseCutsceneCam) {
switch (gSaveContext.entranceIndex) {
switch (gSaveContext.save.entranceIndex) {
case ENTR_HYRULE_FIELD_11:
case ENTR_HYRULE_FIELD_12:
case ENTR_HYRULE_FIELD_13:
@ -2265,10 +2266,10 @@ void Cutscene_SetupScripted(PlayState* play, CutsceneContext* csCtx) {
u8 i;
if ((gSaveContext.cutsceneTrigger != 0) && (csCtx->state == CS_STATE_IDLE) && !Player_InCsMode(play)) {
gSaveContext.cutsceneIndex = 0xFFFD;
gSaveContext.save.cutsceneIndex = 0xFFFD;
}
if ((gSaveContext.cutsceneIndex >= 0xFFF0) && (csCtx->state == CS_STATE_IDLE)) {
if ((gSaveContext.save.cutsceneIndex >= 0xFFF0) && (csCtx->state == CS_STATE_IDLE)) {
CutsceneFlags_Unset(play, 0);
sCurTextId = 0;
@ -2345,12 +2346,12 @@ void Cutscene_HandleEntranceTriggers(PlayState* play) {
requiredAge = entranceCutscene->ageRestriction;
if (requiredAge == 2) {
requiredAge = gSaveContext.linkAge;
requiredAge = gSaveContext.save.linkAge;
}
if ((gSaveContext.entranceIndex == entranceCutscene->entrance) &&
if ((gSaveContext.save.entranceIndex == entranceCutscene->entrance) &&
(!Flags_GetEventChkInf(entranceCutscene->flag) || (entranceCutscene->flag == EVENTCHKINF_EPONA_OBTAINED)) &&
(gSaveContext.cutsceneIndex < 0xFFF0) && ((u8)gSaveContext.linkAge == requiredAge) &&
(gSaveContext.save.cutsceneIndex < 0xFFF0) && ((u8)gSaveContext.save.linkAge == requiredAge) &&
(gSaveContext.respawnFlag <= 0)) {
Flags_SetEventChkInf(entranceCutscene->flag);
Cutscene_SetScript(play, entranceCutscene->script);
@ -2365,32 +2366,32 @@ void Cutscene_HandleConditionalTriggers(PlayState* play) {
osSyncPrintf("\ngame_info.mode=[%d] restart_flag", ((void)0, gSaveContext.respawnFlag));
if ((gSaveContext.gameMode == GAMEMODE_NORMAL) && (gSaveContext.respawnFlag <= 0) &&
(gSaveContext.cutsceneIndex < 0xFFF0)) {
if ((gSaveContext.entranceIndex == ENTR_DESERT_COLOSSUS_1) && !Flags_GetEventChkInf(EVENTCHKINF_AC)) {
(gSaveContext.save.cutsceneIndex < 0xFFF0)) {
if ((gSaveContext.save.entranceIndex == ENTR_DESERT_COLOSSUS_1) && !Flags_GetEventChkInf(EVENTCHKINF_AC)) {
Flags_SetEventChkInf(EVENTCHKINF_AC);
gSaveContext.entranceIndex = ENTR_DESERT_COLOSSUS_0;
gSaveContext.cutsceneIndex = 0xFFF0;
} else if ((gSaveContext.entranceIndex == ENTR_KAKARIKO_VILLAGE_0) && LINK_IS_ADULT &&
gSaveContext.save.entranceIndex = ENTR_DESERT_COLOSSUS_0;
gSaveContext.save.cutsceneIndex = 0xFFF0;
} else if ((gSaveContext.save.entranceIndex == ENTR_KAKARIKO_VILLAGE_0) && LINK_IS_ADULT &&
GET_EVENTCHKINF(EVENTCHKINF_48) && GET_EVENTCHKINF(EVENTCHKINF_49) &&
GET_EVENTCHKINF(EVENTCHKINF_4A) && !Flags_GetEventChkInf(EVENTCHKINF_AA)) {
Flags_SetEventChkInf(EVENTCHKINF_AA);
gSaveContext.cutsceneIndex = 0xFFF0;
} else if ((gSaveContext.entranceIndex == ENTR_LOST_WOODS_9) && !Flags_GetEventChkInf(EVENTCHKINF_C1)) {
gSaveContext.save.cutsceneIndex = 0xFFF0;
} else if ((gSaveContext.save.entranceIndex == ENTR_LOST_WOODS_9) && !Flags_GetEventChkInf(EVENTCHKINF_C1)) {
Flags_SetEventChkInf(EVENTCHKINF_C1);
Item_Give(play, ITEM_OCARINA_FAIRY);
gSaveContext.entranceIndex = ENTR_LOST_WOODS_0;
gSaveContext.cutsceneIndex = 0xFFF0;
gSaveContext.save.entranceIndex = ENTR_LOST_WOODS_0;
gSaveContext.save.cutsceneIndex = 0xFFF0;
} else if (CHECK_QUEST_ITEM(QUEST_MEDALLION_SPIRIT) && CHECK_QUEST_ITEM(QUEST_MEDALLION_SHADOW) &&
LINK_IS_ADULT && !Flags_GetEventChkInf(EVENTCHKINF_C4) &&
(gEntranceTable[((void)0, gSaveContext.entranceIndex)].sceneId == SCENE_TEMPLE_OF_TIME)) {
(gEntranceTable[((void)0, gSaveContext.save.entranceIndex)].sceneId == SCENE_TEMPLE_OF_TIME)) {
Flags_SetEventChkInf(EVENTCHKINF_C4);
gSaveContext.entranceIndex = ENTR_TEMPLE_OF_TIME_0;
gSaveContext.cutsceneIndex = 0xFFF8;
gSaveContext.save.entranceIndex = ENTR_TEMPLE_OF_TIME_0;
gSaveContext.save.cutsceneIndex = 0xFFF8;
} else if (!Flags_GetEventChkInf(EVENTCHKINF_C7) &&
(gEntranceTable[((void)0, gSaveContext.entranceIndex)].sceneId == SCENE_GANON_BOSS)) {
(gEntranceTable[((void)0, gSaveContext.save.entranceIndex)].sceneId == SCENE_GANON_BOSS)) {
Flags_SetEventChkInf(EVENTCHKINF_C7);
gSaveContext.entranceIndex = ENTR_GANON_BOSS_0;
gSaveContext.cutsceneIndex = 0xFFF0;
gSaveContext.save.entranceIndex = ENTR_GANON_BOSS_0;
gSaveContext.save.cutsceneIndex = 0xFFF0;
}
}
}