diff --git a/include/z64cutscene.h b/include/z64cutscene.h index f8aed368d4..3dce9ec23c 100644 --- a/include/z64cutscene.h +++ b/include/z64cutscene.h @@ -344,6 +344,42 @@ typedef enum CutsceneDestination { /* 0x77 */ CS_DEST_ZELDAS_COURTYARD_RECEIVE_LETTER } CutsceneDestination; +// values `< 0xFFF0` indicate no cutscene, or a context in which manual cutscenes can be used; can be assigned to +// - `gSaveContext.save.cutsceneIndex` +// - `gSaveContext.nextCutsceneIndex` +// using them implies an intention to have the Play state set `gSaveContext.sceneLayer` based on age and day time on state init +// see enum values [`SCENE_LAYER_CHILD_DAY` .. `SCENE_LAYER_ADULT_NIGHT`] +#define CS_INDEX_DEFAULT 0x0000 +#define CS_INDEX_UNK_8000 0x8000 + +// values `>= 0xFFF0` indicate a "scripted" cutscene; can be assigned to +// - `gSaveContext.save.cutsceneIndex` +// - `gSaveContext.nextCutsceneIndex` +// using them implies an intention to have `z_play.c` set `gSaveContext.sceneLayer` directly by index +// see `GET_CUTSCENE_LAYER(index)` +#define CS_INDEX_0 0xFFF0 +#define CS_INDEX_1 0xFFF1 +#define CS_INDEX_2 0xFFF2 +#define CS_INDEX_3 0xFFF3 +#define CS_INDEX_4 0xFFF4 +#define CS_INDEX_5 0xFFF5 +#define CS_INDEX_6 0xFFF6 +#define CS_INDEX_7 0xFFF7 +#define CS_INDEX_8 0xFFF8 +#define CS_INDEX_9 0xFFF9 +#define CS_INDEX_A 0xFFFA + +// This value is "out of range" even for the largest set of entrances in the entrance table +// but `z_demo.c` immediately sets `CS_STATE_STOP` state +#define CS_INDEX_UNK_FFFF 0xFFFF + +// sentinel value used for `cutsceneIndex` to indicate that it should be reset to default +#define CS_INDEX_EMPTY 0xFFFD + +// sentinel value used for `nextCutsceneIndex` to indicate that it is empty +// otherwise its value will be copied to `cutsceneIndex` on Play state init +#define CS_INDEX_NEXT_EMPTY 0xFFEF + typedef union CsCmdCam { struct { /* 0x00 */ u16 unused0; @@ -353,7 +389,6 @@ typedef union CsCmdCam { s32 _words[2]; } CsCmdCam; // size = 0x8 - typedef union CsCmdMisc { struct { /* 0x00 */ u16 type; diff --git a/include/z64save.h b/include/z64save.h index 71b1414052..4f266ad4ba 100644 --- a/include/z64save.h +++ b/include/z64save.h @@ -401,6 +401,7 @@ typedef enum SceneLayer { } SceneLayer; #define IS_CUTSCENE_LAYER (gSaveContext.sceneLayer >= SCENE_LAYER_CUTSCENE_FIRST) +#define GET_CUTSCENE_LAYER(index) (SCENE_LAYER_CUTSCENE_FIRST + (index & 0xF)) typedef enum LinkAge { /* 0 */ LINK_AGE_ADULT, diff --git a/src/code/db_camera.c b/src/code/db_camera.c index a275cae523..6789e966e2 100644 --- a/src/code/db_camera.c +++ b/src/code/db_camera.c @@ -2204,7 +2204,7 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) { if (CHECK_BTN_ALL(sPlay->state.input[1].press.button, BTN_CRIGHT)) { gUseCutsceneCam = false; - gSaveContext.save.cutsceneIndex = 0xFFFD; + gSaveContext.save.cutsceneIndex = CS_INDEX_EMPTY; gSaveContext.cutsceneTrigger = 1; sDebugCamAnim.curFrame = 0.0f; sDebugCamAnim.keyframe = 0; diff --git a/src/code/z_common_data.c b/src/code/z_common_data.c index 97cb44a4f0..291f4cb887 100644 --- a/src/code/z_common_data.c +++ b/src/code/z_common_data.c @@ -6,9 +6,10 @@ #include "z64environment.h" #include "z64save.h" #include "z64transition.h" +#include "z64cutscene.h" -#pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-jp:192 gc-jp-ce:192 gc-jp-mq:192 gc-us:192 gc-us-mq:192" \ - "ntsc-1.0:0 ntsc-1.1:0 ntsc-1.2:0 pal-1.0:0 pal-1.1:0" +#pragma increment_block_number "gc-eu:64 gc-eu-mq:64 gc-jp:64 gc-jp-ce:64 gc-jp-mq:64 gc-us:64 gc-us-mq:64 ntsc-1.0:0" \ + "ntsc-1.1:0 ntsc-1.2:0 pal-1.0:0 pal-1.1:0" ALIGNED(16) SaveContext gSaveContext; #if PLATFORM_IQUE @@ -25,7 +26,7 @@ void SaveContext_Init(void) { gSaveContext.seqId = (u8)NA_BGM_DISABLED; gSaveContext.natureAmbienceId = NATURE_ID_DISABLED; gSaveContext.forcedSeqId = NA_BGM_GENERAL_SFX; - gSaveContext.nextCutsceneIndex = 0xFFEF; + gSaveContext.nextCutsceneIndex = CS_INDEX_NEXT_EMPTY; gSaveContext.cutsceneTrigger = 0; gSaveContext.chamberCutsceneNum = CHAMBER_CS_FOREST; gSaveContext.nextDayTime = NEXT_TIME_NONE; diff --git a/src/code/z_demo.c b/src/code/z_demo.c index d5135b99d1..fba764e027 100644 --- a/src/code/z_demo.c +++ b/src/code/z_demo.c @@ -202,7 +202,7 @@ void Cutscene_StopManual(PlayState* play, CutsceneContext* csCtx) { } void Cutscene_UpdateManual(PlayState* play, CutsceneContext* csCtx) { - if (gSaveContext.save.cutsceneIndex < 0xFFF0) { + if (gSaveContext.save.cutsceneIndex < CS_INDEX_0) { sManualCutsceneHandlers[csCtx->state](play, csCtx); } } @@ -214,14 +214,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.save.cutsceneIndex = 0xFFFD; + gSaveContext.save.cutsceneIndex = CS_INDEX_EMPTY; gSaveContext.cutsceneTrigger = 1; } if (CHECK_BTN_ALL(input->press.button, BTN_DUP) && (csCtx->state == CS_STATE_IDLE) && IS_CUTSCENE_LAYER && !gDebugCamEnabled) { gUseCutsceneCam = true; - gSaveContext.save.cutsceneIndex = 0xFFFD; + gSaveContext.save.cutsceneIndex = CS_INDEX_EMPTY; gSaveContext.cutsceneTrigger = 1; } } @@ -233,11 +233,11 @@ void Cutscene_UpdateScripted(PlayState* play, CutsceneContext* csCtx) { if ((gSaveContext.cutsceneTrigger != 0) && (csCtx->state == CS_STATE_IDLE)) { PRINTF(T("\nデモ開始要求 発令!", "\nDemo start request issued!")); - gSaveContext.save.cutsceneIndex = 0xFFFD; + gSaveContext.save.cutsceneIndex = CS_INDEX_EMPTY; gSaveContext.cutsceneTrigger = 1; } - if (gSaveContext.save.cutsceneIndex >= 0xFFF0) { + if (gSaveContext.save.cutsceneIndex >= CS_INDEX_0) { Cutscene_SetupScripted(play, csCtx); sScriptedCutsceneHandlers[csCtx->state](play, csCtx); } @@ -616,54 +616,54 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti gSaveContext.forceRisingButtonAlphas = true; } - gSaveContext.save.cutsceneIndex = 0; + gSaveContext.save.cutsceneIndex = CS_INDEX_DEFAULT; switch (cmd->destination) { case CS_DEST_CUTSCENE_MAP_GANON_HORSE: play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0; - gSaveContext.save.cutsceneIndex = 0xFFF1; + gSaveContext.save.cutsceneIndex = CS_INDEX_1; 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.save.cutsceneIndex = 0xFFF0; + gSaveContext.save.cutsceneIndex = CS_INDEX_0; 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.save.cutsceneIndex = 0xFFF1; + gSaveContext.save.cutsceneIndex = CS_INDEX_1; 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.save.cutsceneIndex = 0xFFF0; + gSaveContext.save.cutsceneIndex = CS_INDEX_0; 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.save.cutsceneIndex = 0xFFF0; + gSaveContext.save.cutsceneIndex = CS_INDEX_0; 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.save.cutsceneIndex = 0xFFF2; + gSaveContext.save.cutsceneIndex = CS_INDEX_2; 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.save.cutsceneIndex = 0xFFF2; + gSaveContext.save.cutsceneIndex = CS_INDEX_2; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_INSTANT; break; @@ -676,7 +676,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti SET_EVENTCHKINF(EVENTCHKINF_45); play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0; play->transitionTrigger = TRANS_TRIGGER_START; - gSaveContext.save.cutsceneIndex = 0xFFF3; + gSaveContext.save.cutsceneIndex = CS_INDEX_3; play->transitionType = TRANS_TYPE_INSTANT; } else { if (!IS_CUTSCENE_LAYER) { @@ -696,21 +696,21 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti case CS_DEST_GERUDO_VALLEY_DIN_PART_2: play->nextEntranceIndex = ENTR_GERUDO_VALLEY_0; - gSaveContext.save.cutsceneIndex = 0xFFF0; + gSaveContext.save.cutsceneIndex = CS_INDEX_0; 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.save.cutsceneIndex = 0xFFF0; + gSaveContext.save.cutsceneIndex = CS_INDEX_0; 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.save.cutsceneIndex = 0xFFF3; + gSaveContext.save.cutsceneIndex = CS_INDEX_3; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_WHITE; break; @@ -737,21 +737,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.save.cutsceneIndex = 0xFFF4; + gSaveContext.save.cutsceneIndex = CS_INDEX_4; 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.save.cutsceneIndex = 0xFFF5; + gSaveContext.save.cutsceneIndex = CS_INDEX_5; 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.save.cutsceneIndex = 0xFFF6; + gSaveContext.save.cutsceneIndex = CS_INDEX_6; play->transitionType = TRANS_TYPE_FADE_WHITE; break; @@ -769,13 +769,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.save.cutsceneIndex = 0x8000; + gSaveContext.save.cutsceneIndex = CS_INDEX_UNK_8000; break; case CS_DEST_LAKE_HYLIA_WATER_RESTORED: play->nextEntranceIndex = ENTR_LAKE_HYLIA_0; play->transitionTrigger = TRANS_TRIGGER_START; - gSaveContext.save.cutsceneIndex = 0xFFF0; + gSaveContext.save.cutsceneIndex = CS_INDEX_0; play->transitionType = TRANS_TYPE_FADE_WHITE; break; @@ -783,14 +783,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.save.cutsceneIndex = 0xFFF0; + gSaveContext.save.cutsceneIndex = CS_INDEX_0; 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.save.cutsceneIndex = 0xFFF8; + gSaveContext.save.cutsceneIndex = CS_INDEX_8; play->transitionType = TRANS_TYPE_FADE_WHITE; break; @@ -804,28 +804,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.save.cutsceneIndex = 0xFFF0; + gSaveContext.save.cutsceneIndex = CS_INDEX_0; 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.save.cutsceneIndex = 0xFFF4; + gSaveContext.save.cutsceneIndex = CS_INDEX_4; 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.save.cutsceneIndex = 0xFFF5; + gSaveContext.save.cutsceneIndex = CS_INDEX_5; 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.save.cutsceneIndex = 0xFFF6; + gSaveContext.save.cutsceneIndex = CS_INDEX_6; play->transitionType = TRANS_TYPE_FADE_WHITE; break; @@ -855,7 +855,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.save.cutsceneIndex = 0xFFF2; + gSaveContext.save.cutsceneIndex = CS_INDEX_2; play->transitionType = TRANS_TYPE_INSTANT; break; @@ -868,28 +868,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.save.cutsceneIndex = 0xFFF3; + gSaveContext.save.cutsceneIndex = CS_INDEX_3; 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.save.cutsceneIndex = 0xFFF0; + gSaveContext.save.cutsceneIndex = CS_INDEX_0; 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.save.cutsceneIndex = 0xFFF4; + gSaveContext.save.cutsceneIndex = CS_INDEX_4; 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.save.cutsceneIndex = 0xFFF9; + gSaveContext.save.cutsceneIndex = CS_INDEX_9; play->transitionType = TRANS_TYPE_FADE_BLACK_FAST; break; @@ -897,7 +897,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.save.cutsceneIndex = 0xFFFA; + gSaveContext.save.cutsceneIndex = CS_INDEX_A; play->transitionType = TRANS_TYPE_FADE_BLACK_FAST; break; @@ -910,7 +910,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.save.cutsceneIndex = 0xFFF2; + gSaveContext.save.cutsceneIndex = CS_INDEX_2; play->transitionType = TRANS_TYPE_FADE_BLACK_FAST; break; @@ -940,7 +940,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.save.cutsceneIndex = 0xFFF1; + gSaveContext.save.cutsceneIndex = CS_INDEX_1; play->transitionType = TRANS_TYPE_FADE_BLACK_FAST; break; @@ -965,14 +965,14 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti case CS_DEST_HYRULE_FIELD_FROM_ZELDAS_COURTYARD: play->nextEntranceIndex = ENTR_HYRULE_FIELD_0; - gSaveContext.save.cutsceneIndex = 0xFFF8; + gSaveContext.save.cutsceneIndex = CS_INDEX_8; 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.save.cutsceneIndex = 0xFFF7; + gSaveContext.save.cutsceneIndex = CS_INDEX_7; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_INSTANT; break; @@ -990,56 +990,56 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti #endif play->linkAgeOnLoad = LINK_AGE_CHILD; play->nextEntranceIndex = ENTR_GERUDO_VALLEY_0; - gSaveContext.save.cutsceneIndex = 0xFFF2; + gSaveContext.save.cutsceneIndex = CS_INDEX_2; 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.save.cutsceneIndex = 0xFFF1; + gSaveContext.save.cutsceneIndex = CS_INDEX_1; 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.save.cutsceneIndex = 0xFFF4; + gSaveContext.save.cutsceneIndex = CS_INDEX_4; 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.save.cutsceneIndex = 0xFFF3; + gSaveContext.save.cutsceneIndex = CS_INDEX_3; 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.save.cutsceneIndex = 0xFFF1; + gSaveContext.save.cutsceneIndex = CS_INDEX_1; 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.save.cutsceneIndex = 0xFFF1; + gSaveContext.save.cutsceneIndex = CS_INDEX_1; 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.save.cutsceneIndex = 0xFFF2; + gSaveContext.save.cutsceneIndex = CS_INDEX_2; 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.save.cutsceneIndex = 0xFFF0; + gSaveContext.save.cutsceneIndex = CS_INDEX_0; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; break; @@ -1047,21 +1047,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.save.cutsceneIndex = 0xFFF6; + gSaveContext.save.cutsceneIndex = CS_INDEX_6; 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.save.cutsceneIndex = 0xFFF7; + gSaveContext.save.cutsceneIndex = CS_INDEX_7; 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.save.cutsceneIndex = 0xFFF5; + gSaveContext.save.cutsceneIndex = CS_INDEX_5; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; break; @@ -1069,7 +1069,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.save.cutsceneIndex = 0xFFF2; + gSaveContext.save.cutsceneIndex = CS_INDEX_2; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; break; @@ -1089,7 +1089,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.save.cutsceneIndex = 0xFFF5; + gSaveContext.save.cutsceneIndex = CS_INDEX_5; play->transitionType = TRANS_TYPE_FADE_BLACK; break; @@ -1102,7 +1102,7 @@ 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.save.cutsceneIndex = 0xFFF4; + gSaveContext.save.cutsceneIndex = CS_INDEX_4; play->transitionType = TRANS_TYPE_FADE_BLACK; gSaveContext.nextTransitionType = TRANS_TYPE_FADE_BLACK; break; @@ -1115,14 +1115,14 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti play->linkAgeOnLoad = LINK_AGE_CHILD; play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0; play->transitionTrigger = TRANS_TRIGGER_START; - gSaveContext.save.cutsceneIndex = 0xFFF1; + gSaveContext.save.cutsceneIndex = CS_INDEX_1; 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.save.cutsceneIndex = 0xFFF0; + gSaveContext.save.cutsceneIndex = CS_INDEX_0; play->transitionType = TRANS_TYPE_FADE_BLACK; gSaveContext.nextTransitionType = TRANS_TYPE_FADE_BLACK; break; @@ -1131,14 +1131,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.save.cutsceneIndex = 0xFFF2; + gSaveContext.save.cutsceneIndex = CS_INDEX_2; 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.save.cutsceneIndex = 0xFFF3; + gSaveContext.save.cutsceneIndex = CS_INDEX_3; play->transitionType = TRANS_TYPE_FADE_WHITE; gSaveContext.nextTransitionType = TRANS_TYPE_FADE_WHITE; break; @@ -1147,7 +1147,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.save.cutsceneIndex = 0xFFF4; + gSaveContext.save.cutsceneIndex = CS_INDEX_4; play->transitionType = TRANS_TYPE_FADE_BLACK; break; @@ -1155,7 +1155,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.save.cutsceneIndex = 0xFFF5; + gSaveContext.save.cutsceneIndex = CS_INDEX_5; play->transitionType = TRANS_TYPE_FADE_BLACK; break; @@ -1163,14 +1163,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.save.cutsceneIndex = 0xFFF6; + gSaveContext.save.cutsceneIndex = CS_INDEX_6; play->transitionType = TRANS_TYPE_FADE_BLACK; break; case CS_DEST_LON_LON_RANCH_CREDITS_PART_5: play->nextEntranceIndex = ENTR_LON_LON_RANCH_0; play->transitionTrigger = TRANS_TRIGGER_START; - gSaveContext.save.cutsceneIndex = 0xFFF7; + gSaveContext.save.cutsceneIndex = CS_INDEX_7; play->transitionType = TRANS_TYPE_FADE_BLACK; break; @@ -1210,7 +1210,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.save.cutsceneIndex = 0xFFF3; + gSaveContext.save.cutsceneIndex = CS_INDEX_3; play->transitionType = TRANS_TYPE_FADE_BLACK; } else { switch (gSaveContext.sceneLayer) { @@ -1229,7 +1229,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti case 10: play->nextEntranceIndex = ENTR_LAKE_HYLIA_0; play->transitionTrigger = TRANS_TRIGGER_START; - gSaveContext.save.cutsceneIndex = 0xFFF0; + gSaveContext.save.cutsceneIndex = CS_INDEX_0; play->transitionType = TRANS_TYPE_FADE_WHITE; break; } @@ -1240,7 +1240,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.save.cutsceneIndex = 0xFFF1; + gSaveContext.save.cutsceneIndex = CS_INDEX_1; play->transitionType = TRANS_TYPE_FADE_WHITE_FAST; } else { SET_EVENTCHKINF(EVENTCHKINF_C8); @@ -1255,7 +1255,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.save.cutsceneIndex = 0xFFF1; + gSaveContext.save.cutsceneIndex = CS_INDEX_1; play->transitionType = TRANS_TYPE_FADE_WHITE_FAST; } else { play->nextEntranceIndex = ENTR_GRAVEYARD_8; @@ -1281,7 +1281,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.save.cutsceneIndex = 0xFFF8; + gSaveContext.save.cutsceneIndex = CS_INDEX_8; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_WHITE; gSaveContext.nextTransitionType = TRANS_TYPE_FADE_WHITE; @@ -1302,7 +1302,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.save.cutsceneIndex = 0xFFF3; + gSaveContext.save.cutsceneIndex = CS_INDEX_3; play->transitionType = TRANS_TYPE_FADE_BLACK; break; @@ -1311,7 +1311,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.save.cutsceneIndex = 0xFFF2; + gSaveContext.save.cutsceneIndex = CS_INDEX_2; play->transitionType = TRANS_TYPE_FADE_BLACK; sTitleDemoDestination++; break; @@ -1319,7 +1319,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.save.cutsceneIndex = 0xFFF1; + gSaveContext.save.cutsceneIndex = CS_INDEX_1; play->transitionType = TRANS_TYPE_FADE_BLACK; sTitleDemoDestination++; break; @@ -1327,7 +1327,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.save.cutsceneIndex = 0xFFF6; + gSaveContext.save.cutsceneIndex = CS_INDEX_6; play->transitionType = TRANS_TYPE_FADE_BLACK; sTitleDemoDestination = TITLE_DEMO_SPIRIT_TEMPLE; break; @@ -1337,7 +1337,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.save.cutsceneIndex = 0xFFF1; + gSaveContext.save.cutsceneIndex = CS_INDEX_1; play->transitionType = TRANS_TYPE_FADE_BLACK; break; @@ -1390,10 +1390,10 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti play->csCtx.script = SEGMENTED_TO_VIRTUAL(gTowerBarrierCs); play->csCtx.curFrame = 0; gSaveContext.cutsceneTrigger = 1; - gSaveContext.save.cutsceneIndex = 0xFFFF; + gSaveContext.save.cutsceneIndex = CS_INDEX_UNK_FFFF; csCtx->state = CS_STATE_STOP; } else { - gSaveContext.save.cutsceneIndex = 0xFFFF; + gSaveContext.save.cutsceneIndex = CS_INDEX_UNK_FFFF; csCtx->state = CS_STATE_STOP; } break; @@ -1430,7 +1430,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti Audio_SetSfxBanksMute(0x6F); play->linkAgeOnLoad = LINK_AGE_ADULT; play->nextEntranceIndex = ENTR_HYRULE_FIELD_0; - gSaveContext.save.cutsceneIndex = 0xFFF7; + gSaveContext.save.cutsceneIndex = CS_INDEX_7; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_WHITE; break; @@ -2239,7 +2239,7 @@ void Cutscene_ProcessScript(PlayState* play, CutsceneContext* csCtx, u8* script) } void CutsceneHandler_RunScript(PlayState* play, CutsceneContext* csCtx) { - if (gSaveContext.save.cutsceneIndex >= 0xFFF0) { + if (gSaveContext.save.cutsceneIndex >= CS_INDEX_0) { #if DEBUG_FEATURES if (BREG(0) != 0) { Gfx* displayList; @@ -2292,7 +2292,7 @@ void CutsceneHandler_StopScript(PlayState* play, CutsceneContext* csCtx) { PRINTF(T("\n\n\n\n\nやっぱりここかいな", "\n\n\n\n\nThis is it after all")); - gSaveContext.save.cutsceneIndex = 0; + gSaveContext.save.cutsceneIndex = CS_INDEX_DEFAULT; gSaveContext.gameMode = GAMEMODE_NORMAL; if (gUseCutsceneCam) { @@ -2318,10 +2318,10 @@ void Cutscene_SetupScripted(PlayState* play, CutsceneContext* csCtx) { u8 i; if ((gSaveContext.cutsceneTrigger != 0) && (csCtx->state == CS_STATE_IDLE) && !Player_InCsMode(play)) { - gSaveContext.save.cutsceneIndex = 0xFFFD; + gSaveContext.save.cutsceneIndex = CS_INDEX_EMPTY; } - if ((gSaveContext.save.cutsceneIndex >= 0xFFF0) && (csCtx->state == CS_STATE_IDLE)) { + if ((gSaveContext.save.cutsceneIndex >= CS_INDEX_0) && (csCtx->state == CS_STATE_IDLE)) { CutsceneFlags_Unset(play, 0); sCurTextId = 0; @@ -2403,7 +2403,7 @@ void Cutscene_HandleEntranceTriggers(PlayState* play) { if ((gSaveContext.save.entranceIndex == entranceCutscene->entrance) && (!Flags_GetEventChkInf(entranceCutscene->flag) || (entranceCutscene->flag == EVENTCHKINF_EPONA_OBTAINED)) && - (gSaveContext.save.cutsceneIndex < 0xFFF0) && ((u8)gSaveContext.save.linkAge == requiredAge) && + (gSaveContext.save.cutsceneIndex < CS_INDEX_0) && ((u8)gSaveContext.save.linkAge == requiredAge) && (gSaveContext.respawnFlag <= 0)) { Flags_SetEventChkInf(entranceCutscene->flag); Cutscene_SetScript(play, entranceCutscene->script); @@ -2418,32 +2418,32 @@ void Cutscene_HandleConditionalTriggers(PlayState* play) { PRINTF("\ngame_info.mode=[%d] restart_flag", ((void)0, gSaveContext.respawnFlag)); if ((gSaveContext.gameMode == GAMEMODE_NORMAL) && (gSaveContext.respawnFlag <= 0) && - (gSaveContext.save.cutsceneIndex < 0xFFF0)) { + (gSaveContext.save.cutsceneIndex < CS_INDEX_0)) { if ((gSaveContext.save.entranceIndex == ENTR_DESERT_COLOSSUS_1) && !Flags_GetEventChkInf(EVENTCHKINF_AC)) { Flags_SetEventChkInf(EVENTCHKINF_AC); gSaveContext.save.entranceIndex = ENTR_DESERT_COLOSSUS_0; - gSaveContext.save.cutsceneIndex = 0xFFF0; + gSaveContext.save.cutsceneIndex = CS_INDEX_0; } 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.save.cutsceneIndex = 0xFFF0; + gSaveContext.save.cutsceneIndex = CS_INDEX_0; } else if ((gSaveContext.save.entranceIndex == ENTR_LOST_WOODS_9) && !Flags_GetEventChkInf(EVENTCHKINF_C1)) { Flags_SetEventChkInf(EVENTCHKINF_C1); Item_Give(play, ITEM_OCARINA_FAIRY); gSaveContext.save.entranceIndex = ENTR_LOST_WOODS_0; - gSaveContext.save.cutsceneIndex = 0xFFF0; + gSaveContext.save.cutsceneIndex = CS_INDEX_0; } 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.save.entranceIndex)].sceneId == SCENE_TEMPLE_OF_TIME)) { Flags_SetEventChkInf(EVENTCHKINF_C4); gSaveContext.save.entranceIndex = ENTR_TEMPLE_OF_TIME_0; - gSaveContext.save.cutsceneIndex = 0xFFF8; + gSaveContext.save.cutsceneIndex = CS_INDEX_8; } else if (!Flags_GetEventChkInf(EVENTCHKINF_C7) && (gEntranceTable[((void)0, gSaveContext.save.entranceIndex)].sceneId == SCENE_GANON_BOSS)) { Flags_SetEventChkInf(EVENTCHKINF_C7); gSaveContext.save.entranceIndex = ENTR_GANON_BOSS_0; - gSaveContext.save.cutsceneIndex = 0xFFF0; + gSaveContext.save.cutsceneIndex = CS_INDEX_0; } } } diff --git a/src/code/z_horse.c b/src/code/z_horse.c index d61af32e7e..13585c6024 100644 --- a/src/code/z_horse.c +++ b/src/code/z_horse.c @@ -164,15 +164,15 @@ typedef struct HorseCutsceneSpawn { void Horse_SetupInCutscene(PlayState* play, Player* player) { static HorseCutsceneSpawn horseSpawns[] = { - { SCENE_GERUDOS_FORTRESS, 0xFFF0, { 3600, 1413, 360 }, 0x8001, HORSE_PTYPE_HORSEBACK_ARCHERY }, - { SCENE_LON_LON_RANCH, 0xFFF0, { -250, 1, -1580 }, 0x4000, HORSE_PTYPE_6 }, // Horse Race - { SCENE_LON_LON_RANCH, 0xFFF1, { 0, 0, 0 }, 0x0000, HORSE_PTYPE_5 }, // Learned Epona's Song - { SCENE_LON_LON_RANCH, 0xFFF5, { 0, 0, 0 }, 0x0000, HORSE_PTYPE_7 }, // Credits - { SCENE_HYRULE_FIELD, 0xFFF3, { -2961, 313, 7700 }, 0x0000, HORSE_PTYPE_7 }, // Title Screen - { SCENE_HYRULE_FIELD, 0xFFF4, { -1900, 313, 7015 }, 0x0000, HORSE_PTYPE_7 }, - { SCENE_HYRULE_FIELD, 0xFFF5, { -4043, 313, 6933 }, 0x0000, HORSE_PTYPE_7 }, // Credits - { SCENE_HYRULE_FIELD, 0xFFF6, { -4043, 313, 6933 }, 0x0000, HORSE_PTYPE_7 }, // Unused. Hopping Lon Lon - // Ranch North Gate + { SCENE_GERUDOS_FORTRESS, CS_INDEX_0, { 3600, 1413, 360 }, 0x8001, HORSE_PTYPE_HORSEBACK_ARCHERY }, + { SCENE_LON_LON_RANCH, CS_INDEX_0, { -250, 1, -1580 }, 0x4000, HORSE_PTYPE_6 }, // Horse Race + { SCENE_LON_LON_RANCH, CS_INDEX_1, { 0, 0, 0 }, 0x0000, HORSE_PTYPE_5 }, // Learned Epona's Song + { SCENE_LON_LON_RANCH, CS_INDEX_5, { 0, 0, 0 }, 0x0000, HORSE_PTYPE_7 }, // Credits + { SCENE_HYRULE_FIELD, CS_INDEX_3, { -2961, 313, 7700 }, 0x0000, HORSE_PTYPE_7 }, // Title Screen + { SCENE_HYRULE_FIELD, CS_INDEX_4, { -1900, 313, 7015 }, 0x0000, HORSE_PTYPE_7 }, + { SCENE_HYRULE_FIELD, CS_INDEX_5, { -4043, 313, 6933 }, 0x0000, HORSE_PTYPE_7 }, // Credits + { SCENE_HYRULE_FIELD, CS_INDEX_6, { -4043, 313, 6933 }, 0x0000, HORSE_PTYPE_7 }, // Unused. Hopping Lon Lon + // Ranch North Gate }; s32 pad; s32 i; @@ -235,7 +235,7 @@ void Horse_SetupInCutscene(PlayState* play, Player* player) { (((void)0, gSaveContext.save.cutsceneIndex) == horseSpawns[i].cutsceneIndex)) { if (horseSpawns[i].type == HORSE_PTYPE_7) { if ((play->sceneId == SCENE_LON_LON_RANCH) && - (((void)0, gSaveContext.save.cutsceneIndex) == 0xFFF1)) { + (((void)0, gSaveContext.save.cutsceneIndex) == CS_INDEX_1)) { horseSpawns[i].pos.x = player->actor.world.pos.x; horseSpawns[i].pos.y = player->actor.world.pos.y; horseSpawns[i].pos.z = player->actor.world.pos.z; diff --git a/src/code/z_kaleido_setup.c b/src/code/z_kaleido_setup.c index 3b88de28c3..d220bc8c21 100644 --- a/src/code/z_kaleido_setup.c +++ b/src/code/z_kaleido_setup.c @@ -72,9 +72,9 @@ void KaleidoSetup_Update(PlayState* play) { if (!IS_PAUSED(pauseCtx) && play->gameOverCtx.state == GAMEOVER_INACTIVE && play->transitionTrigger == TRANS_TRIGGER_OFF && play->transitionMode == TRANS_MODE_OFF && - gSaveContext.save.cutsceneIndex < 0xFFF0 && gSaveContext.nextCutsceneIndex < 0xFFF0 && !Play_InCsMode(play) && - play->shootingGalleryStatus <= 1 && gSaveContext.magicState != MAGIC_STATE_STEP_CAPACITY && - gSaveContext.magicState != MAGIC_STATE_FILL && + gSaveContext.save.cutsceneIndex < CS_INDEX_0 && gSaveContext.nextCutsceneIndex < CS_INDEX_0 && + !Play_InCsMode(play) && play->shootingGalleryStatus <= 1 && + gSaveContext.magicState != MAGIC_STATE_STEP_CAPACITY && gSaveContext.magicState != MAGIC_STATE_FILL && (play->sceneId != SCENE_BOMBCHU_BOWLING_ALLEY || !Flags_GetSwitch(play, 0x38))) { if (CHECK_BTN_ALL(input->cur.button, BTN_L) && CHECK_BTN_ALL(input->press.button, BTN_CUP)) { diff --git a/src/code/z_kankyo.c b/src/code/z_kankyo.c index 88dcd5e59b..53b70fa0e2 100644 --- a/src/code/z_kankyo.c +++ b/src/code/z_kankyo.c @@ -2642,7 +2642,7 @@ void Environment_StopStormNatureAmbience(PlayState* play) { void Environment_WarpSongLeave(PlayState* play) { gWeatherMode = WEATHER_MODE_CLEAR; - gSaveContext.save.cutsceneIndex = 0; + gSaveContext.save.cutsceneIndex = CS_INDEX_DEFAULT; gSaveContext.respawnFlag = -3; play->nextEntranceIndex = gSaveContext.respawn[RESPAWN_MODE_RETURN].entranceIndex; play->transitionTrigger = TRANS_TRIGGER_START; diff --git a/src/code/z_message.c b/src/code/z_message.c index 046d3ff886..a6d85deb90 100644 --- a/src/code/z_message.c +++ b/src/code/z_message.c @@ -4429,7 +4429,7 @@ void Message_Update(PlayState* play) { if (msgCtx->textId != 0x2061 && msgCtx->textId != 0x2025 && msgCtx->textId != 0x208C && ((msgCtx->textId < 0x88D || msgCtx->textId >= 0x893) || msgCtx->choiceIndex != 0) && - (msgCtx->textId != 0x3055 && gSaveContext.save.cutsceneIndex < 0xFFF0)) { + (msgCtx->textId != 0x3055 && gSaveContext.save.cutsceneIndex < CS_INDEX_0)) { PRINTF("=== day_time=%x ", ((void)0, gSaveContext.save.cutsceneIndex)); if (play->activeCamId == CAM_ID_MAIN) { if (gSaveContext.prevHudVisibilityMode == HUD_VISIBILITY_NO_CHANGE || diff --git a/src/code/z_parameter.c b/src/code/z_parameter.c index 1498db0fba..60eaa1f898 100644 --- a/src/code/z_parameter.c +++ b/src/code/z_parameter.c @@ -668,8 +668,8 @@ void func_80083108(PlayState* play) { s16 i; s16 sp28 = false; - if ((gSaveContext.save.cutsceneIndex < 0xFFF0) || - ((play->sceneId == SCENE_LON_LON_RANCH) && (gSaveContext.save.cutsceneIndex == 0xFFF0))) { + if ((gSaveContext.save.cutsceneIndex < CS_INDEX_0) || + ((play->sceneId == SCENE_LON_LON_RANCH) && (gSaveContext.save.cutsceneIndex == CS_INDEX_0))) { gSaveContext.forceRisingButtonAlphas = false; if ((player->stateFlags1 & PLAYER_STATE1_23) || (play->shootingGalleryStatus > 1) || @@ -3561,7 +3561,7 @@ void Interface_Draw(PlayState* play) { (Message_GetState(&play->msgCtx) == TEXT_STATE_EVENT)) { // Trade quest timer reached 0 sSubTimerStateTimer = 40; - gSaveContext.save.cutsceneIndex = 0; + gSaveContext.save.cutsceneIndex = CS_INDEX_DEFAULT; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_WHITE; gSaveContext.subTimerState = SUBTIMER_STATE_OFF; @@ -3899,7 +3899,7 @@ void Interface_Draw(PlayState* play) { (play->sceneId != SCENE_INSIDE_GANONS_CASTLE_COLLAPSE))) { sSubTimerStateTimer = 40; gSaveContext.subTimerState = SUBTIMER_STATE_RESPAWN; - gSaveContext.save.cutsceneIndex = 0; + gSaveContext.save.cutsceneIndex = CS_INDEX_DEFAULT; Message_StartTextbox(play, 0x71B0, NULL); Player_SetCsActionWithHaltedActors(play, NULL, PLAYER_CSACTION_8); } else { diff --git a/src/code/z_play.c b/src/code/z_play.c index d4d28422c3..44f60745ee 100644 --- a/src/code/z_play.c +++ b/src/code/z_play.c @@ -93,7 +93,7 @@ void Play_SetViewpoint(PlayState* this, s16 viewpoint) { this->viewpoint = viewpoint; - if ((R_SCENE_CAM_TYPE != SCENE_CAM_TYPE_FIXED_SHOP_VIEWPOINT) && (gSaveContext.save.cutsceneIndex < 0xFFF0)) { + if ((R_SCENE_CAM_TYPE != SCENE_CAM_TYPE_FIXED_SHOP_VIEWPOINT) && (gSaveContext.save.cutsceneIndex < CS_INDEX_0)) { // Play a sfx when the player toggles the camera Audio_PlaySfxGeneral((viewpoint == VIEWPOINT_LOCKED) ? NA_SE_SY_CAMERA_ZOOM_DOWN : NA_SE_SY_CAMERA_ZOOM_UP, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, @@ -348,13 +348,13 @@ void Play_Init(GameState* thisx) { AnimTaskQueue_Reset(&this->animTaskQueue); Cutscene_InitContext(this, &this->csCtx); - if (gSaveContext.nextCutsceneIndex != 0xFFEF) { + if (gSaveContext.nextCutsceneIndex != CS_INDEX_NEXT_EMPTY) { gSaveContext.save.cutsceneIndex = gSaveContext.nextCutsceneIndex; - gSaveContext.nextCutsceneIndex = 0xFFEF; + gSaveContext.nextCutsceneIndex = CS_INDEX_NEXT_EMPTY; } - if (gSaveContext.save.cutsceneIndex == 0xFFFD) { - gSaveContext.save.cutsceneIndex = 0; + if (gSaveContext.save.cutsceneIndex == CS_INDEX_EMPTY) { + gSaveContext.save.cutsceneIndex = CS_INDEX_DEFAULT; } if (gSaveContext.nextDayTime != NEXT_TIME_NONE) { @@ -370,10 +370,10 @@ void Play_Init(GameState* thisx) { Cutscene_HandleConditionalTriggers(this); - if (gSaveContext.gameMode != GAMEMODE_NORMAL || gSaveContext.save.cutsceneIndex >= 0xFFF0) { + if (gSaveContext.gameMode != GAMEMODE_NORMAL || gSaveContext.save.cutsceneIndex >= CS_INDEX_0) { gSaveContext.nayrusLoveTimer = 0; Magic_Reset(this); - gSaveContext.sceneLayer = SCENE_LAYER_CUTSCENE_FIRST + (gSaveContext.save.cutsceneIndex & 0xF); + gSaveContext.sceneLayer = GET_CUTSCENE_LAYER(gSaveContext.save.cutsceneIndex); } else if (!LINK_IS_ADULT && IS_DAY) { gSaveContext.sceneLayer = SCENE_LAYER_CHILD_DAY; } else if (!LINK_IS_ADULT && !IS_DAY) { @@ -623,7 +623,7 @@ void Play_Update(PlayState* this) { Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING); - if (gSaveContext.save.cutsceneIndex >= 0xFFF0) { + if (gSaveContext.save.cutsceneIndex >= CS_INDEX_0) { sceneLayer = SCENE_LAYER_CUTSCENE_FIRST + (gSaveContext.save.cutsceneIndex & 0xF); } diff --git a/src/code/z_scene.c b/src/code/z_scene.c index feef5ffc62..f147de6153 100644 --- a/src/code/z_scene.c +++ b/src/code/z_scene.c @@ -396,7 +396,7 @@ BAD_RETURN(s32) Scene_CommandTimeSettings(PlayState* play, SceneCmd* cmd) { play->envCtx.sunPos.y = (Math_CosS(((void)0, gSaveContext.save.dayTime) - CLOCK_TIME(12, 0)) * 120.0f) * 25.0f; play->envCtx.sunPos.z = (Math_CosS(((void)0, gSaveContext.save.dayTime) - CLOCK_TIME(12, 0)) * 20.0f) * 25.0f; - if (((play->envCtx.sceneTimeSpeed == 0) && (gSaveContext.save.cutsceneIndex < 0xFFF0)) || + if (((play->envCtx.sceneTimeSpeed == 0) && (gSaveContext.save.cutsceneIndex < CS_INDEX_0)) || (gSaveContext.save.entranceIndex == ENTR_LAKE_HYLIA_8)) { #if OOT_VERSION >= PAL_1_0 gSaveContext.skyboxTime = ((void)0, gSaveContext.save.dayTime); @@ -459,7 +459,7 @@ BAD_RETURN(s32) Scene_CommandAlternateHeaderList(PlayState* play, SceneCmd* cmd) PRINTF("\n[ZU]sceneset time =[%X]", ((void)0, gSaveContext.save.cutsceneIndex)); PRINTF("\n[ZU]sceneset counter=[%X]", ((void)0, gSaveContext.sceneLayer)); - if (gSaveContext.sceneLayer != 0) { + if (gSaveContext.sceneLayer != SCENE_LAYER_CHILD_DAY) { SceneCmd* altHeader = ((SceneCmd**)SEGMENTED_TO_VIRTUAL(cmd->altHeaders.data))[gSaveContext.sceneLayer - 1]; if (altHeader != NULL) { @@ -502,7 +502,7 @@ BAD_RETURN(s32) Scene_CommandMiscSettings(PlayState* play, SceneCmd* cmd) { if (((play->sceneId >= SCENE_HYRULE_FIELD) && (play->sceneId <= SCENE_OUTSIDE_GANONS_CASTLE)) || ((play->sceneId >= SCENE_MARKET_ENTRANCE_DAY) && (play->sceneId <= SCENE_TEMPLE_OF_TIME_EXTERIOR_RUINS))) { - if (gSaveContext.save.cutsceneIndex < 0xFFF0) { + if (gSaveContext.save.cutsceneIndex < CS_INDEX_0) { gSaveContext.save.info.worldMapAreaData |= gBitFlags[((void)0, gSaveContext.worldMapArea)]; PRINTF("000 area_arrival=%x (%d)\n", gSaveContext.save.info.worldMapAreaData, ((void)0, gSaveContext.worldMapArea)); @@ -515,15 +515,15 @@ void Scene_SetTransitionForNextEntrance(PlayState* play) { if (!IS_DAY) { if (!LINK_IS_ADULT) { - entranceIndex = play->nextEntranceIndex + 1; + entranceIndex = play->nextEntranceIndex + SCENE_LAYER_CHILD_NIGHT; } else { - entranceIndex = play->nextEntranceIndex + 3; + entranceIndex = play->nextEntranceIndex + SCENE_LAYER_ADULT_NIGHT; } } else { if (!LINK_IS_ADULT) { - entranceIndex = play->nextEntranceIndex; + entranceIndex = play->nextEntranceIndex + SCENE_LAYER_CHILD_DAY; } else { - entranceIndex = play->nextEntranceIndex + 2; + entranceIndex = play->nextEntranceIndex + SCENE_LAYER_ADULT_DAY; } } diff --git a/src/code/z_sram.c b/src/code/z_sram.c index 2eef6db036..eba9b8c034 100644 --- a/src/code/z_sram.c +++ b/src/code/z_sram.c @@ -859,11 +859,11 @@ void Sram_InitSave(FileSelectState* fileSelect, SramContext* sramCtx) { gSaveContext.save.entranceIndex = ENTR_LINKS_HOUSE_0; gSaveContext.save.linkAge = LINK_AGE_CHILD; gSaveContext.save.dayTime = CLOCK_TIME(10, 0); - gSaveContext.save.cutsceneIndex = 0xFFF1; + gSaveContext.save.cutsceneIndex = CS_INDEX_1; #if DEBUG_FEATURES if (fileSelect->buttonIndex == 0) { - gSaveContext.save.cutsceneIndex = 0; + gSaveContext.save.cutsceneIndex = CS_INDEX_DEFAULT; } #endif diff --git a/src/overlays/actors/ovl_Bg_Ingate/z_bg_ingate.c b/src/overlays/actors/ovl_Bg_Ingate/z_bg_ingate.c index e46139117c..aaa5a897ab 100644 --- a/src/overlays/actors/ovl_Bg_Ingate/z_bg_ingate.c +++ b/src/overlays/actors/ovl_Bg_Ingate/z_bg_ingate.c @@ -53,7 +53,7 @@ void BgInGate_Init(Actor* thisx, PlayState* play) { this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, &this->dyna.actor, colHeader); if ((play->sceneId != SCENE_LON_LON_RANCH || !LINK_IS_ADULT) || - (GET_EVENTCHKINF(EVENTCHKINF_EPONA_OBTAINED) && (gSaveContext.save.cutsceneIndex != 0xFFF0))) { + (GET_EVENTCHKINF(EVENTCHKINF_EPONA_OBTAINED) && (gSaveContext.save.cutsceneIndex != CS_INDEX_0))) { Actor_Kill(&this->dyna.actor); return; } diff --git a/src/overlays/actors/ovl_Bg_Relay_Objects/z_bg_relay_objects.c b/src/overlays/actors/ovl_Bg_Relay_Objects/z_bg_relay_objects.c index 37591ae020..8bcdf5be1d 100644 --- a/src/overlays/actors/ovl_Bg_Relay_Objects/z_bg_relay_objects.c +++ b/src/overlays/actors/ovl_Bg_Relay_Objects/z_bg_relay_objects.c @@ -119,7 +119,7 @@ void BgRelayObjects_Destroy(Actor* thisx, PlayState* play) { BgRelayObjects* this = (BgRelayObjects*)thisx; DynaPoly_DeleteBgActor(play, &play->colCtx.dyna, this->dyna.bgId); - if ((this->dyna.actor.params == WINDMILL_ROTATING_GEAR) && (gSaveContext.save.cutsceneIndex < 0xFFF0)) { + if ((this->dyna.actor.params == WINDMILL_ROTATING_GEAR) && (gSaveContext.save.cutsceneIndex < CS_INDEX_0)) { CLEAR_EVENTCHKINF(EVENTCHKINF_65); } } diff --git a/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.c b/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.c index c305635b83..6d4ecb5845 100644 --- a/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.c +++ b/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.c @@ -231,7 +231,7 @@ void BgSpot00Hanebasi_Update(Actor* thisx, PlayState* play) { this->actionFunc = BgSpot00Hanebasi_DoNothing; Player_SetCsActionWithHaltedActors(play, &player->actor, PLAYER_CSACTION_8); play->nextEntranceIndex = ENTR_HYRULE_FIELD_0; - gSaveContext.nextCutsceneIndex = 0xFFF1; + gSaveContext.nextCutsceneIndex = CS_INDEX_1; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK_FAST; } else if (Actor_IsFacingAndNearPlayer(&this->dyna.actor, 3000.0f, 0x7530)) { diff --git a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c index e2742e3bef..595406ff8c 100644 --- a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c +++ b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c @@ -2130,7 +2130,7 @@ void func_8090120C(BossGanon2* this, PlayState* play) { FALLTHROUGH; case 20: play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0; - gSaveContext.nextCutsceneIndex = 0xFFF2; + gSaveContext.nextCutsceneIndex = CS_INDEX_2; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_WHITE; play->linkAgeOnLoad = LINK_AGE_CHILD; diff --git a/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c b/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c index 79f4feca86..ccfd6afda9 100644 --- a/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c +++ b/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c @@ -508,7 +508,7 @@ void DoorWarp1_ChildWarpOut(DoorWarp1* this, PlayState* play) { Math_SmoothStepToF(&this->lightRayAlpha, 0.0f, 0.2f, 6.0f, 0.01f); this->warpTimer++; - if (sWarpTimerTarget < this->warpTimer && gSaveContext.nextCutsceneIndex == 0xFFEF) { + if (sWarpTimerTarget < this->warpTimer && gSaveContext.nextCutsceneIndex == CS_INDEX_NEXT_EMPTY) { PRINTF("\n\n\nじかんがきたからおーしまい fade_direction=[%d]", play->transitionTrigger, TRANS_TRIGGER_START); if (play->sceneId == SCENE_DODONGOS_CAVERN_BOSS) { @@ -516,10 +516,10 @@ void DoorWarp1_ChildWarpOut(DoorWarp1* this, PlayState* play) { Flags_SetEventChkInf(EVENTCHKINF_25); Item_Give(play, ITEM_GORON_RUBY); play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_TRAIL_0; - gSaveContext.nextCutsceneIndex = 0xFFF1; + gSaveContext.nextCutsceneIndex = CS_INDEX_1; } else { play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_TRAIL_5; - gSaveContext.nextCutsceneIndex = 0; + gSaveContext.nextCutsceneIndex = CS_INDEX_DEFAULT; } } else if (play->sceneId == SCENE_DEKU_TREE_BOSS) { if (!Flags_GetEventChkInf(EVENTCHKINF_07)) { @@ -527,14 +527,14 @@ void DoorWarp1_ChildWarpOut(DoorWarp1* this, PlayState* play) { Flags_SetEventChkInf(EVENTCHKINF_09); Item_Give(play, ITEM_KOKIRI_EMERALD); play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0; - gSaveContext.nextCutsceneIndex = 0xFFF1; + gSaveContext.nextCutsceneIndex = CS_INDEX_1; } else { play->nextEntranceIndex = ENTR_KOKIRI_FOREST_11; - gSaveContext.nextCutsceneIndex = 0; + gSaveContext.nextCutsceneIndex = CS_INDEX_DEFAULT; } } else if (play->sceneId == SCENE_JABU_JABU_BOSS) { play->nextEntranceIndex = ENTR_ZORAS_FOUNTAIN_0; - gSaveContext.nextCutsceneIndex = 0; + gSaveContext.nextCutsceneIndex = CS_INDEX_DEFAULT; } PRINTF("\n\n\nおわりおわり"); play->transitionTrigger = TRANS_TRIGGER_START; @@ -619,11 +619,11 @@ void DoorWarp1_RutoWarpOut(DoorWarp1* this, PlayState* play) { Math_SmoothStepToF(&this->lightRayAlpha, 0.0f, 0.2f, 6.0f, 0.01f); this->warpTimer++; - if (this->warpTimer > sWarpTimerTarget && gSaveContext.nextCutsceneIndex == 0xFFEF) { + if (this->warpTimer > sWarpTimerTarget && gSaveContext.nextCutsceneIndex == CS_INDEX_NEXT_EMPTY) { SET_EVENTCHKINF(EVENTCHKINF_37); Item_Give(play, ITEM_ZORA_SAPPHIRE); play->nextEntranceIndex = ENTR_ZORAS_FOUNTAIN_0; - gSaveContext.nextCutsceneIndex = 0xFFF0; + gSaveContext.nextCutsceneIndex = CS_INDEX_0; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_WHITE_SLOW; } @@ -719,13 +719,13 @@ void DoorWarp1_AdultWarpOut(DoorWarp1* this, PlayState* play) { } this->warpTimer++; - if (this->warpTimer > sWarpTimerTarget && gSaveContext.nextCutsceneIndex == 0xFFEF) { + if (this->warpTimer > sWarpTimerTarget && gSaveContext.nextCutsceneIndex == CS_INDEX_NEXT_EMPTY) { if (play->sceneId == SCENE_FOREST_TEMPLE_BOSS) { if (!GET_EVENTCHKINF(EVENTCHKINF_48)) { SET_EVENTCHKINF(EVENTCHKINF_48); Item_Give(play, ITEM_MEDALLION_FOREST); play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0; - gSaveContext.nextCutsceneIndex = 0; + gSaveContext.nextCutsceneIndex = CS_INDEX_DEFAULT; gSaveContext.chamberCutsceneNum = CHAMBER_CS_FOREST; } else { if (!LINK_IS_ADULT) { @@ -733,28 +733,28 @@ void DoorWarp1_AdultWarpOut(DoorWarp1* this, PlayState* play) { } else { play->nextEntranceIndex = ENTR_SACRED_FOREST_MEADOW_3; } - gSaveContext.nextCutsceneIndex = 0; + gSaveContext.nextCutsceneIndex = CS_INDEX_DEFAULT; } } else if (play->sceneId == SCENE_FIRE_TEMPLE_BOSS) { if (!GET_EVENTCHKINF(EVENTCHKINF_49)) { SET_EVENTCHKINF(EVENTCHKINF_49); Item_Give(play, ITEM_MEDALLION_FIRE); play->nextEntranceIndex = ENTR_KAKARIKO_VILLAGE_0; - gSaveContext.nextCutsceneIndex = 0xFFF3; + gSaveContext.nextCutsceneIndex = CS_INDEX_3; } else { if (!LINK_IS_ADULT) { play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_CRATER_4; } else { play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_CRATER_5; } - gSaveContext.nextCutsceneIndex = 0; + gSaveContext.nextCutsceneIndex = CS_INDEX_DEFAULT; } } else if (play->sceneId == SCENE_WATER_TEMPLE_BOSS) { if (!GET_EVENTCHKINF(EVENTCHKINF_4A)) { SET_EVENTCHKINF(EVENTCHKINF_4A); Item_Give(play, ITEM_MEDALLION_WATER); play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0; - gSaveContext.nextCutsceneIndex = 0; + gSaveContext.nextCutsceneIndex = CS_INDEX_DEFAULT; gSaveContext.chamberCutsceneNum = CHAMBER_CS_WATER; } else { if (!LINK_IS_ADULT) { @@ -762,13 +762,13 @@ void DoorWarp1_AdultWarpOut(DoorWarp1* this, PlayState* play) { } else { play->nextEntranceIndex = ENTR_LAKE_HYLIA_9; } - gSaveContext.nextCutsceneIndex = 0; + gSaveContext.nextCutsceneIndex = CS_INDEX_DEFAULT; } } else if (play->sceneId == SCENE_SPIRIT_TEMPLE_BOSS) { if (!CHECK_QUEST_ITEM(QUEST_MEDALLION_SPIRIT)) { Item_Give(play, ITEM_MEDALLION_SPIRIT); play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0; - gSaveContext.nextCutsceneIndex = 0; + gSaveContext.nextCutsceneIndex = CS_INDEX_DEFAULT; gSaveContext.chamberCutsceneNum = CHAMBER_CS_SPIRIT; } else { if (!LINK_IS_ADULT) { @@ -776,13 +776,13 @@ void DoorWarp1_AdultWarpOut(DoorWarp1* this, PlayState* play) { } else { play->nextEntranceIndex = ENTR_DESERT_COLOSSUS_8; } - gSaveContext.nextCutsceneIndex = 0; + gSaveContext.nextCutsceneIndex = CS_INDEX_DEFAULT; } } else if (play->sceneId == SCENE_SHADOW_TEMPLE_BOSS) { if (!CHECK_QUEST_ITEM(QUEST_MEDALLION_SHADOW)) { Item_Give(play, ITEM_MEDALLION_SHADOW); play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0; - gSaveContext.nextCutsceneIndex = 0; + gSaveContext.nextCutsceneIndex = CS_INDEX_DEFAULT; gSaveContext.chamberCutsceneNum = CHAMBER_CS_SHADOW; } else { if (!LINK_IS_ADULT) { @@ -790,7 +790,7 @@ void DoorWarp1_AdultWarpOut(DoorWarp1* this, PlayState* play) { } else { play->nextEntranceIndex = ENTR_GRAVEYARD_8; } - gSaveContext.nextCutsceneIndex = 0; + gSaveContext.nextCutsceneIndex = CS_INDEX_DEFAULT; } } play->transitionTrigger = TRANS_TRIGGER_START; diff --git a/src/overlays/actors/ovl_En_Du/z_en_du.c b/src/overlays/actors/ovl_En_Du/z_en_du.c index 1f716b977d..b6b3b06148 100644 --- a/src/overlays/actors/ovl_En_Du/z_en_du.c +++ b/src/overlays/actors/ovl_En_Du/z_en_du.c @@ -307,7 +307,7 @@ void EnDu_Init(Actor* thisx, PlayState* play) { this->actor.attentionRangeType = ATTENTION_RANGE_1; this->interactInfo.talkState = NPC_TALK_STATE_IDLE; - if (gSaveContext.save.cutsceneIndex >= 0xFFF0) { + if (gSaveContext.save.cutsceneIndex >= CS_INDEX_0) { play->csCtx.script = SEGMENTED_TO_VIRTUAL(gGoronCityDaruniaDancingCs); gSaveContext.cutsceneTrigger = 1; EnDu_SetupAction(this, func_809FE890); diff --git a/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c b/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c index c47c8271e5..57b447f0b5 100644 --- a/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c +++ b/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c @@ -592,7 +592,7 @@ void EnGe1_BeginGame_Archery(EnGe1* this, PlayState* play) { } else { Rupees_ChangeBy(-20); play->nextEntranceIndex = ENTR_GERUDOS_FORTRESS_0; - gSaveContext.nextCutsceneIndex = 0xFFF0; + gSaveContext.nextCutsceneIndex = CS_INDEX_0; play->transitionType = TRANS_TYPE_CIRCLE(TCA_STARBURST, TCC_BLACK, TCS_FAST); play->transitionTrigger = TRANS_TRIGGER_START; SET_EVENTINF(EVENTINF_HORSES_08); diff --git a/src/overlays/actors/ovl_En_Horse/z_en_horse.c b/src/overlays/actors/ovl_En_Horse/z_en_horse.c index dded516560..bed87194ec 100644 --- a/src/overlays/actors/ovl_En_Horse/z_en_horse.c +++ b/src/overlays/actors/ovl_En_Horse/z_en_horse.c @@ -2569,7 +2569,7 @@ void EnHorse_UpdateHorsebackArchery(EnHorse* this, PlayState* play) { EnHorse_UpdateHbaRaceInfo(this, play, &sHbaInfo); if ((this->hbaFlags & 1) || (this->hbaTimer >= 46)) { if ((isFanfarePlaying != true) && (gSaveContext.minigameState != 3)) { - gSaveContext.save.cutsceneIndex = 0; + gSaveContext.save.cutsceneIndex = CS_INDEX_DEFAULT; play->nextEntranceIndex = ENTR_GERUDOS_FORTRESS_16; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_CIRCLE(TCA_NORMAL, TCC_BLACK, TCS_FAST); diff --git a/src/overlays/actors/ovl_En_Horse_Game_Check/z_en_horse_game_check.c b/src/overlays/actors/ovl_En_Horse_Game_Check/z_en_horse_game_check.c index eefef20798..5a89923089 100644 --- a/src/overlays/actors/ovl_En_Horse_Game_Check/z_en_horse_game_check.c +++ b/src/overlays/actors/ovl_En_Horse_Game_Check/z_en_horse_game_check.c @@ -120,7 +120,7 @@ s32 EnHorseGameCheck_DestroyIngoRace(EnHorseGameCheckBase* base, PlayState* play } void EnHorseGameCheck_FinishIngoRace(EnHorseGameCheckIngoRace* this, PlayState* play) { - gSaveContext.save.cutsceneIndex = 0; + gSaveContext.save.cutsceneIndex = CS_INDEX_DEFAULT; if (this->result == INGO_RACE_PLAYER_WIN) { play->nextEntranceIndex = ENTR_LON_LON_RANCH_7; if (GET_EVENTINF(EVENTINF_INGO_RACE_SECOND_RACE)) { @@ -307,21 +307,21 @@ s32 EnHorseGameCheck_DestroyMalonRace(EnHorseGameCheckBase* base, PlayState* pla void EnHorseGameCheck_FinishMalonRace(EnHorseGameCheckMalonRace* this, PlayState* play) { if ((this->result == MALONRACE_SUCCESS) || (this->result == MALONRACE_TIME_UP)) { - gSaveContext.save.cutsceneIndex = 0; + gSaveContext.save.cutsceneIndex = CS_INDEX_DEFAULT; play->nextEntranceIndex = ENTR_LON_LON_RANCH_7; play->transitionType = TRANS_TYPE_CIRCLE(TCA_STARBURST, TCC_WHITE, TCS_FAST); play->transitionTrigger = TRANS_TRIGGER_START; } else if (this->result == MALONRACE_FAILURE) { gSaveContext.timerSeconds = 240; gSaveContext.timerState = TIMER_STATE_UP_FREEZE; - gSaveContext.save.cutsceneIndex = 0; + gSaveContext.save.cutsceneIndex = CS_INDEX_DEFAULT; play->nextEntranceIndex = ENTR_LON_LON_RANCH_7; play->transitionType = TRANS_TYPE_CIRCLE(TCA_STARBURST, TCC_WHITE, TCS_FAST); play->transitionTrigger = TRANS_TRIGGER_START; } else { // "not supported" PRINTF("En_HGC_Spot20_Ta_end():対応せず\n"); - gSaveContext.save.cutsceneIndex = 0; + gSaveContext.save.cutsceneIndex = CS_INDEX_DEFAULT; play->nextEntranceIndex = ENTR_LON_LON_RANCH_0; play->transitionType = TRANS_TYPE_CIRCLE(TCA_STARBURST, TCC_WHITE, TCS_FAST); play->transitionTrigger = TRANS_TRIGGER_START; diff --git a/src/overlays/actors/ovl_En_Horse_Link_Child/z_en_horse_link_child.c b/src/overlays/actors/ovl_En_Horse_Link_Child/z_en_horse_link_child.c index 1610147130..e169bf0120 100644 --- a/src/overlays/actors/ovl_En_Horse_Link_Child/z_en_horse_link_child.c +++ b/src/overlays/actors/ovl_En_Horse_Link_Child/z_en_horse_link_child.c @@ -375,7 +375,7 @@ void func_80A6A068(EnHorseLinkChild* this, PlayState* play) { } if ((GET_EVENTCHKINF(EVENTCHKINF_CAN_LEARN_EPONAS_SONG) && R_EPONAS_SONG_PLAYED) || - ((play->sceneId == SCENE_LON_LON_RANCH) && (gSaveContext.save.cutsceneIndex == 0xFFF1))) { + ((play->sceneId == SCENE_LON_LON_RANCH) && (gSaveContext.save.cutsceneIndex == CS_INDEX_1))) { func_80A6A4DC(this); } else { this->unk_2A0 = GET_EVENTCHKINF(EVENTCHKINF_CAN_LEARN_EPONAS_SONG); diff --git a/src/overlays/actors/ovl_En_In/z_en_in.c b/src/overlays/actors/ovl_En_In/z_en_in.c index 521b8dcbfa..8d60672c4f 100644 --- a/src/overlays/actors/ovl_En_In/z_en_in.c +++ b/src/overlays/actors/ovl_En_In/z_en_in.c @@ -457,7 +457,7 @@ void func_80A79BAC(EnIn* this, PlayState* play, s32 index, u32 transitionType) { play->nextEntranceIndex = entrances[index]; if (index == 2) { - gSaveContext.nextCutsceneIndex = 0xFFF0; + gSaveContext.nextCutsceneIndex = CS_INDEX_0; } play->transitionType = transitionType; play->transitionTrigger = TRANS_TRIGGER_START; diff --git a/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c b/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c index 9c1689a524..a885387727 100644 --- a/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c +++ b/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c @@ -394,7 +394,7 @@ void EnMa1_WaitForPlayback(EnMa1* this, PlayState* play) { GET_PLAYER(play)->stateFlags2 |= PLAYER_STATE2_23; if (play->msgCtx.ocarinaMode == OCARINA_MODE_03) { play->nextEntranceIndex = ENTR_LON_LON_RANCH_0; - gSaveContext.nextCutsceneIndex = 0xFFF1; + gSaveContext.nextCutsceneIndex = CS_INDEX_1; play->transitionType = TRANS_TYPE_CIRCLE(TCA_WAVE, TCC_WHITE, TCS_FAST); play->transitionTrigger = TRANS_TRIGGER_START; this->actionFunc = EnMa1_DoNothing; diff --git a/src/overlays/actors/ovl_En_Ma3/z_en_ma3.c b/src/overlays/actors/ovl_En_Ma3/z_en_ma3.c index cdac009221..f50b196280 100644 --- a/src/overlays/actors/ovl_En_Ma3/z_en_ma3.c +++ b/src/overlays/actors/ovl_En_Ma3/z_en_ma3.c @@ -133,7 +133,7 @@ s16 EnMa3_UpdateTalkState(PlayState* play, Actor* thisx) { case TEXT_STATE_EVENT: if (Message_ShouldAdvance(play)) { play->nextEntranceIndex = ENTR_LON_LON_RANCH_0; - gSaveContext.nextCutsceneIndex = 0xFFF0; + gSaveContext.nextCutsceneIndex = CS_INDEX_0; play->transitionType = TRANS_TYPE_CIRCLE(TCA_STARBURST, TCC_BLACK, TCS_FAST); play->transitionTrigger = TRANS_TRIGGER_START; SET_EVENTINF(EVENTINF_HORSES_0A); diff --git a/src/overlays/actors/ovl_En_Sa/z_en_sa.c b/src/overlays/actors/ovl_En_Sa/z_en_sa.c index fb834576fb..f1407355e9 100644 --- a/src/overlays/actors/ovl_En_Sa/z_en_sa.c +++ b/src/overlays/actors/ovl_En_Sa/z_en_sa.c @@ -393,7 +393,7 @@ void EnSa_ChangeAnim(EnSa* this, s32 index) { } s32 func_80AF5DFC(EnSa* this, PlayState* play) { - if (gSaveContext.save.cutsceneIndex >= 0xFFF0 && gSaveContext.save.cutsceneIndex != 0xFFFD) { + if (gSaveContext.save.cutsceneIndex >= CS_INDEX_0 && gSaveContext.save.cutsceneIndex != CS_INDEX_EMPTY) { if (play->sceneId == SCENE_KOKIRI_FOREST) { return 4; } diff --git a/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c b/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c index a18efd4ba9..50f2704e7c 100644 --- a/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c +++ b/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c @@ -796,7 +796,7 @@ s32 EnZl4_CsAskName(EnZl4* this, PlayState* play) { if (this->talkTimer2 == 130) { play->msgCtx.msgMode = MSGMODE_PAUSED; play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0; - gSaveContext.nextCutsceneIndex = 0xFFF7; + gSaveContext.nextCutsceneIndex = CS_INDEX_7; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_WHITE; } diff --git a/src/overlays/actors/ovl_Obj_Dekujr/z_obj_dekujr.c b/src/overlays/actors/ovl_Obj_Dekujr/z_obj_dekujr.c index 2c77570a41..7e07364fdc 100644 --- a/src/overlays/actors/ovl_Obj_Dekujr/z_obj_dekujr.c +++ b/src/overlays/actors/ovl_Obj_Dekujr/z_obj_dekujr.c @@ -52,7 +52,7 @@ void ObjDekujr_Init(Actor* thisx, PlayState* play) { ObjDekujr* this = (ObjDekujr*)thisx; s32 pad; - if (gSaveContext.save.cutsceneIndex < 0xFFF0) { + if (gSaveContext.save.cutsceneIndex < CS_INDEX_0) { if (!LINK_IS_ADULT) { Actor_Kill(thisx); return; @@ -148,7 +148,7 @@ void ObjDekujr_Update(Actor* thisx, PlayState* play) { Collider_UpdateCylinder(&this->actor, &this->collider); CollisionCheck_SetOC(play, &play->colChkCtx, &this->collider.base); - if ((gSaveContext.save.cutsceneIndex >= 0xFFF0) && (this->unk_19B == 0)) { + if ((gSaveContext.save.cutsceneIndex >= CS_INDEX_0) && (this->unk_19B == 0)) { this->unk_19C = 0; this->unk_19B = 1; } diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 5f93be1107..09074dee1b 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -10797,7 +10797,7 @@ void Player_Init(Actor* thisx, PlayState* play2) { startMode = PLAYER_GET_START_MODE(thisx); if ((startMode == PLAYER_START_MODE_WARP_SONG) || (startMode == PLAYER_START_MODE_FARORES_WIND)) { - if (gSaveContext.save.cutsceneIndex >= 0xFFF0) { + if (gSaveContext.save.cutsceneIndex >= CS_INDEX_0) { startMode = PLAYER_START_MODE_IDLE; } } @@ -13721,7 +13721,7 @@ s32 func_8084DFF4(PlayState* play, Player* this) { if (this->getItemId == GI_SILVER_GAUNTLETS) { play->nextEntranceIndex = ENTR_DESERT_COLOSSUS_0; play->transitionTrigger = TRANS_TRIGGER_START; - gSaveContext.nextCutsceneIndex = 0xFFF1; + gSaveContext.nextCutsceneIndex = CS_INDEX_1; play->transitionType = TRANS_TYPE_SANDSTORM_END; this->stateFlags1 &= ~PLAYER_STATE1_29; Player_TryCsAction(play, NULL, PLAYER_CSACTION_8); diff --git a/src/overlays/gamestates/ovl_file_choose/z_file_choose.c b/src/overlays/gamestates/ovl_file_choose/z_file_choose.c index c3d9302ee8..1046fa17a2 100644 --- a/src/overlays/gamestates/ovl_file_choose/z_file_choose.c +++ b/src/overlays/gamestates/ovl_file_choose/z_file_choose.c @@ -1920,7 +1920,7 @@ void FileSelect_LoadGame(GameState* thisx) { gSaveContext.forcedSeqId = NA_BGM_GENERAL_SFX; gSaveContext.skyboxTime = CLOCK_TIME(0, 0); gSaveContext.nextTransitionType = TRANS_NEXT_TYPE_DEFAULT; - gSaveContext.nextCutsceneIndex = 0xFFEF; + gSaveContext.nextCutsceneIndex = CS_INDEX_NEXT_EMPTY; gSaveContext.cutsceneTrigger = 0; gSaveContext.chamberCutsceneNum = CHAMBER_CS_FOREST; gSaveContext.nextDayTime = NEXT_TIME_NONE; diff --git a/src/overlays/gamestates/ovl_opening/z_opening.c b/src/overlays/gamestates/ovl_opening/z_opening.c index ad36b6e205..7d6c9b04c1 100644 --- a/src/overlays/gamestates/ovl_opening/z_opening.c +++ b/src/overlays/gamestates/ovl_opening/z_opening.c @@ -19,7 +19,8 @@ void TitleSetup_SetupTitleScreen(TitleSetupState* this) { this->state.running = false; gSaveContext.save.linkAge = LINK_AGE_ADULT; Sram_InitDebugSave(); - gSaveContext.save.cutsceneIndex = 0xFFF3; + gSaveContext.save.cutsceneIndex = CS_INDEX_3; + // assigning scene layer here is redundant, as Play_Init sets it right away gSaveContext.sceneLayer = 7; SET_NEXT_GAMESTATE(&this->state, Play_Init, PlayState); } diff --git a/src/overlays/gamestates/ovl_select/z_select.c b/src/overlays/gamestates/ovl_select/z_select.c index 84b1cb69ae..a5531e0cb1 100644 --- a/src/overlays/gamestates/ovl_select/z_select.c +++ b/src/overlays/gamestates/ovl_select/z_select.c @@ -310,65 +310,65 @@ void MapSelect_UpdateMenu(MapSelectState* this) { } if (CHECK_BTN_ALL(input->press.button, BTN_Z)) { - if (gSaveContext.save.cutsceneIndex == 0x8000) { - gSaveContext.save.cutsceneIndex = 0; - } else if (gSaveContext.save.cutsceneIndex == 0) { - gSaveContext.save.cutsceneIndex = 0xFFF0; - } else if (gSaveContext.save.cutsceneIndex == 0xFFF0) { - gSaveContext.save.cutsceneIndex = 0xFFF1; - } else if (gSaveContext.save.cutsceneIndex == 0xFFF1) { - gSaveContext.save.cutsceneIndex = 0xFFF2; - } else if (gSaveContext.save.cutsceneIndex == 0xFFF2) { - gSaveContext.save.cutsceneIndex = 0xFFF3; - } else if (gSaveContext.save.cutsceneIndex == 0xFFF3) { - gSaveContext.save.cutsceneIndex = 0xFFF4; - } else if (gSaveContext.save.cutsceneIndex == 0xFFF4) { - gSaveContext.save.cutsceneIndex = 0xFFF5; - } else if (gSaveContext.save.cutsceneIndex == 0xFFF5) { - gSaveContext.save.cutsceneIndex = 0xFFF6; - } else if (gSaveContext.save.cutsceneIndex == 0xFFF6) { - gSaveContext.save.cutsceneIndex = 0xFFF7; - } else if (gSaveContext.save.cutsceneIndex == 0xFFF7) { - gSaveContext.save.cutsceneIndex = 0xFFF8; - } else if (gSaveContext.save.cutsceneIndex == 0xFFF8) { - gSaveContext.save.cutsceneIndex = 0xFFF9; - } else if (gSaveContext.save.cutsceneIndex == 0xFFF9) { - gSaveContext.save.cutsceneIndex = 0xFFFA; - } else if (gSaveContext.save.cutsceneIndex == 0xFFFA) { - gSaveContext.save.cutsceneIndex = 0x8000; + if (gSaveContext.save.cutsceneIndex == CS_INDEX_UNK_8000) { + gSaveContext.save.cutsceneIndex = CS_INDEX_DEFAULT; + } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_DEFAULT) { + gSaveContext.save.cutsceneIndex = CS_INDEX_0; + } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_0) { + gSaveContext.save.cutsceneIndex = CS_INDEX_1; + } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_1) { + gSaveContext.save.cutsceneIndex = CS_INDEX_2; + } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_2) { + gSaveContext.save.cutsceneIndex = CS_INDEX_3; + } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_3) { + gSaveContext.save.cutsceneIndex = CS_INDEX_4; + } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_4) { + gSaveContext.save.cutsceneIndex = CS_INDEX_5; + } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_5) { + gSaveContext.save.cutsceneIndex = CS_INDEX_6; + } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_6) { + gSaveContext.save.cutsceneIndex = CS_INDEX_7; + } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_7) { + gSaveContext.save.cutsceneIndex = CS_INDEX_8; + } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_8) { + gSaveContext.save.cutsceneIndex = CS_INDEX_9; + } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_9) { + gSaveContext.save.cutsceneIndex = CS_INDEX_A; + } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_A) { + gSaveContext.save.cutsceneIndex = CS_INDEX_UNK_8000; } } else if (CHECK_BTN_ALL(input->press.button, BTN_R)) { - if (gSaveContext.save.cutsceneIndex == 0x8000) { - gSaveContext.save.cutsceneIndex = 0xFFFA; - } else if (gSaveContext.save.cutsceneIndex == 0) { - gSaveContext.save.cutsceneIndex = 0x8000; - } else if (gSaveContext.save.cutsceneIndex == 0xFFF0) { - gSaveContext.save.cutsceneIndex = 0; - } else if (gSaveContext.save.cutsceneIndex == 0xFFF1) { - gSaveContext.save.cutsceneIndex = 0xFFF0; - } else if (gSaveContext.save.cutsceneIndex == 0xFFF2) { - gSaveContext.save.cutsceneIndex = 0xFFF1; - } else if (gSaveContext.save.cutsceneIndex == 0xFFF3) { - gSaveContext.save.cutsceneIndex = 0xFFF2; - } else if (gSaveContext.save.cutsceneIndex == 0xFFF4) { - gSaveContext.save.cutsceneIndex = 0xFFF3; - } else if (gSaveContext.save.cutsceneIndex == 0xFFF5) { - gSaveContext.save.cutsceneIndex = 0xFFF4; - } else if (gSaveContext.save.cutsceneIndex == 0xFFF6) { - gSaveContext.save.cutsceneIndex = 0xFFF5; - } else if (gSaveContext.save.cutsceneIndex == 0xFFF7) { - gSaveContext.save.cutsceneIndex = 0xFFF6; - } else if (gSaveContext.save.cutsceneIndex == 0xFFF8) { - gSaveContext.save.cutsceneIndex = 0xFFF7; - } else if (gSaveContext.save.cutsceneIndex == 0xFFF9) { - gSaveContext.save.cutsceneIndex = 0xFFF8; - } else if (gSaveContext.save.cutsceneIndex == 0xFFFA) { - gSaveContext.save.cutsceneIndex = 0xFFF9; + if (gSaveContext.save.cutsceneIndex == CS_INDEX_UNK_8000) { + gSaveContext.save.cutsceneIndex = CS_INDEX_A; + } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_DEFAULT) { + gSaveContext.save.cutsceneIndex = CS_INDEX_UNK_8000; + } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_0) { + gSaveContext.save.cutsceneIndex = CS_INDEX_DEFAULT; + } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_1) { + gSaveContext.save.cutsceneIndex = CS_INDEX_0; + } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_2) { + gSaveContext.save.cutsceneIndex = CS_INDEX_1; + } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_3) { + gSaveContext.save.cutsceneIndex = CS_INDEX_2; + } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_4) { + gSaveContext.save.cutsceneIndex = CS_INDEX_3; + } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_5) { + gSaveContext.save.cutsceneIndex = CS_INDEX_4; + } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_6) { + gSaveContext.save.cutsceneIndex = CS_INDEX_5; + } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_7) { + gSaveContext.save.cutsceneIndex = CS_INDEX_6; + } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_8) { + gSaveContext.save.cutsceneIndex = CS_INDEX_7; + } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_9) { + gSaveContext.save.cutsceneIndex = CS_INDEX_8; + } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_A) { + gSaveContext.save.cutsceneIndex = CS_INDEX_9; } } gSaveContext.save.nightFlag = 0; - if (gSaveContext.save.cutsceneIndex == 0) { + if (gSaveContext.save.cutsceneIndex == CS_INDEX_DEFAULT) { gSaveContext.save.nightFlag = 1; } @@ -571,48 +571,48 @@ void MapSelect_PrintCutsceneSetting(MapSelectState* this, GfxPrint* printer, u16 GfxPrint_SetColor(printer, 255, 255, 55, 255); switch (csIndex) { - case 0: + case CS_INDEX_DEFAULT: label = T(GFXP_HIRAGANA " ヨル " GFXP_KATAKANA "ゴロン", "Night"); gSaveContext.save.dayTime = CLOCK_TIME(0, 0); break; - case 0x8000: + case CS_INDEX_UNK_8000: // clang-format off gSaveContext.save.dayTime = CLOCK_TIME(12, 0); label = T(GFXP_HIRAGANA "オヒル " GFXP_KATAKANA "ジャラ", "Day"); // clang-format on break; - case 0xFFF0: + case CS_INDEX_0: // clang-format off gSaveContext.save.dayTime = CLOCK_TIME(12, 0); label = T("デモ00", "Demo 00"); // clang-format on break; - case 0xFFF1: + case CS_INDEX_1: label = T("デモ01", "Demo 01"); break; - case 0xFFF2: + case CS_INDEX_2: label = T("デモ02", "Demo 02"); break; - case 0xFFF3: + case CS_INDEX_3: label = T("デモ03", "Demo 03"); break; - case 0xFFF4: + case CS_INDEX_4: label = T("デモ04", "Demo 04"); break; - case 0xFFF5: + case CS_INDEX_5: label = T("デモ05", "Demo 05"); break; - case 0xFFF6: + case CS_INDEX_6: label = T("デモ06", "Demo 06"); break; - case 0xFFF7: + case CS_INDEX_7: label = T("デモ07", "Demo 07"); break; - case 0xFFF8: + case CS_INDEX_8: label = T("デモ08", "Demo 08"); break; - case 0xFFF9: + case CS_INDEX_9: label = T("デモ09", "Demo 09"); break; - case 0xFFFA: + case CS_INDEX_A: label = T("デモ0A", "Demo 0A"); break; }; @@ -742,6 +742,6 @@ void MapSelect_Init(GameState* thisx) { DMA_REQUEST_SYNC(this->staticSegment, (uintptr_t)_z_select_staticSegmentRomStart, size, "../z_select.c", 1115); } - gSaveContext.save.cutsceneIndex = 0x8000; + gSaveContext.save.cutsceneIndex = CS_INDEX_UNK_8000; gSaveContext.save.linkAge = LINK_AGE_CHILD; }