Transition System Docs (#883)

* Transition docs from OoT

* Cleanup

* Missed a spot
This commit is contained in:
engineer124
2022-07-22 15:05:20 +01:00
committed by GitHub
parent 601f44cb7f
commit 5f6c3df4ce
54 changed files with 286 additions and 218 deletions
+61 -3
View File
@@ -888,6 +888,64 @@ typedef struct {
/* 0x120D8 */ UNK_TYPE1 pad120D8[0x8];
} MessageContext; // size = 0x120E0
#define TRANS_TRIGGER_OFF 0 // transition is not active
#define TRANS_TRIGGER_START 20 // start transition (exiting an area)
#define TRANS_TRIGGER_END -20 // transition is ending (arriving in a new area)
typedef enum {
/* 0 */ TRANS_MODE_OFF,
/* 1 */ TRANS_MODE_01,
/* 2 */ TRANS_MODE_02,
/* 3 */ TRANS_MODE_03,
/* 4 */ TRANS_MODE_04,
/* 5 */ TRANS_MODE_05,
/* 6 */ TRANS_MODE_06,
/* 7 */ TRANS_MODE_07,
/* 8 */ TRANS_MODE_08,
/* 9 */ TRANS_MODE_09,
/* 10 */ TRANS_MODE_10,
/* 11 */ TRANS_MODE_11,
/* 12 */ TRANS_MODE_12,
/* 13 */ TRANS_MODE_13,
/* 14 */ TRANS_MODE_14,
/* 15 */ TRANS_MODE_15,
/* 16 */ TRANS_MODE_16,
/* 17 */ TRANS_MODE_17
} TransitionMode;
typedef enum {
/* 0 */ TRANS_TYPE_00,
/* 1 */ TRANS_TYPE_01,
/* 2 */ TRANS_TYPE_02,
/* 3 */ TRANS_TYPE_03,
/* 4 */ TRANS_TYPE_04,
/* 5 */ TRANS_TYPE_05,
/* 6 */ TRANS_TYPE_06,
/* 7 */ TRANS_TYPE_07,
/* 8 */ TRANS_TYPE_08,
/* 9 */ TRANS_TYPE_09,
/* 10 */ TRANS_TYPE_10,
/* 11 */ TRANS_TYPE_11,
/* 12 */ TRANS_TYPE_12,
/* 13 */ TRANS_TYPE_13,
/* 14 */ TRANS_TYPE_14,
/* 15 */ TRANS_TYPE_15,
/* 16 */ TRANS_TYPE_16,
/* 17 */ TRANS_TYPE_17,
/* 18 */ TRANS_TYPE_18,
/* 19 */ TRANS_TYPE_19,
/* 20 */ TRANS_TYPE_20,
/* 21 */ TRANS_TYPE_21,
/* 64 */ TRANS_TYPE_64 = 64,
/* 70 */ TRANS_TYPE_70 = 70,
/* 72 */ TRANS_TYPE_72 = 72,
/* 73 */ TRANS_TYPE_73,
/* 80 */ TRANS_TYPE_80 = 80,
/* 86 */ TRANS_TYPE_86 = 86
} TransitionType;
#define TRANS_NEXT_TYPE_DEFAULT 0xFF
typedef struct FaultAddrConvClient {
/* 0x0 */ struct FaultAddrConvClient* next;
/* 0x4 */ void* (*callback)(void*, void*);
@@ -1260,20 +1318,20 @@ struct PlayState {
/* 0x1886C */ AnimatedMaterial* sceneMaterialAnims;
/* 0x18870 */ void* specialEffects;
/* 0x18874 */ u8 skyboxId;
/* 0x18875 */ s8 sceneLoadFlag; // "fade_direction"
/* 0x18875 */ s8 transitionTrigger; // "fade_direction"
/* 0x18876 */ s16 unk_18876;
/* 0x18878 */ s16 bgCoverAlpha;
/* 0x1887A */ u16 nextEntranceIndex;
/* 0x1887C */ s8 unk_1887C; // shootingGalleryStatus?
/* 0x1887D */ s8 unk_1887D;
/* 0x1887E */ s8 unk_1887E;
/* 0x1887F */ u8 unk_1887F; // fadeTransition
/* 0x1887F */ u8 transitionType; // fadeTransition
/* 0x18880 */ u8 unk_18880;
/* 0x18884 */ CollisionCheckContext colChkCtx;
/* 0x18B20 */ u16 envFlags[20];
/* 0x18B48 */ u8 curSpawn;
/* 0x18B49 */ u8 unk_18B49;
/* 0x18B4A */ u8 unk_18B4A;
/* 0x18B4A */ u8 transitionMode;
/* 0x18B4C */ PreRender pauseBgPreRender;
/* 0x18B9C */ char unk_18B9C[0x2B8];
/* 0x18E54 */ SceneTableEntry* loadedScene;
+4 -4
View File
@@ -240,16 +240,16 @@ typedef struct SaveContext {
/* 0x3F3F */ u8 unk_3F3F; // "flash_flag"
/* 0x3F40 */ SaveOptions options;
/* 0x3F46 */ u16 unk_3F46; // "NottoriBgm"
/* 0x3F48 */ u8 unk_3F48; // "fade_go"
/* 0x3F48 */ u8 cutsceneTransitionControl; // "fade_go"
/* 0x3F4A */ u16 nextCutsceneIndex; // "next_daytime"
/* 0x3F4C */ u8 cutsceneTrigger; // "doukidemo"
/* 0x3F4D */ u8 unk_3F4D; // "Kenjya_no"
/* 0x3F4E */ u16 nextDayTime; // "next_zelda_time"
/* 0x3F50 */ u8 fadeDuration; // "fade_speed"
/* 0x3F51 */ u8 fadeSpeed; // "wipe_speed" transition related
/* 0x3F50 */ u8 transFadeDuration; // "fade_speed"
/* 0x3F51 */ u8 transWipeSpeed; // "wipe_speed" transition related
/* 0x3F52 */ u16 environmentTime; // "kankyo_time"
/* 0x3F54 */ u8 dogIsLost; // "dog_event_flag"
/* 0x3F55 */ u8 nextTransition; // "next_wipe"
/* 0x3F55 */ u8 nextTransitionType; // "next_wipe"
/* 0x3F56 */ s16 worldMapArea; // "area_type"
/* 0x3F58 */ s16 sunsSongState; // "sunmoon_flag"
/* 0x3F5A */ s16 healthAccumulator; // "life_mode"
+1 -1
View File
@@ -15,7 +15,7 @@ void SaveContext_Init(void) {
gSaveContext.nextDayTime = 0xFFFF;
gSaveContext.environmentTime = 0;
gSaveContext.dogIsLost = true;
gSaveContext.nextTransition = 0xFF;
gSaveContext.nextTransitionType = TRANS_NEXT_TYPE_DEFAULT;
gSaveContext.unk_3F26 = 50;
gSaveContext.options.language = 1;
+31 -30
View File
@@ -82,7 +82,7 @@ CutsceneStateHandler sCsStateHandlers2[] = {
};
void Cutscene_Update2(PlayState* play, CutsceneContext* csCtx) {
if ((gSaveContext.cutsceneTrigger != 0) && (play->sceneLoadFlag == 0x14)) {
if ((gSaveContext.cutsceneTrigger != 0) && (play->transitionTrigger == TRANS_TRIGGER_START)) {
gSaveContext.cutsceneTrigger = 0;
}
@@ -293,8 +293,8 @@ void Cutscene_Command_Misc(PlayState* play2, CutsceneContext* csCtx, CsCmdBase*
if (isStartFrame) {
play->nextEntranceIndex = 0x1C00;
gSaveContext.nextCutsceneIndex = 0xFFF8;
play->sceneLoadFlag = 0x14;
play->unk_1887F = 3;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_03;
}
break;
case 0x1C:
@@ -562,7 +562,7 @@ void Cutscene_TerminatorImpl(PlayState* play, CutsceneContext* csCtx, CsCmdBase*
csCtx->state = CS_STATE_4;
func_80165690();
Audio_SetCutsceneFlag(false);
gSaveContext.unk_3F48 = 1;
gSaveContext.cutsceneTransitionControl = 1;
if ((gSaveContext.gameMode != 0) && (csCtx->frames != cmd->startFrame)) {
gSaveContext.unk_3F1E = 1;
@@ -572,7 +572,7 @@ void Cutscene_TerminatorImpl(PlayState* play, CutsceneContext* csCtx, CsCmdBase*
if (cmd->base == 1) {
play->nextEntranceIndex = play->csCtx.sceneCsList[play->csCtx.currentCsIndex].nextEntranceIndex;
gSaveContext.nextCutsceneIndex = 0;
play->sceneLoadFlag = 0x14;
play->transitionTrigger = TRANS_TRIGGER_START;
if (gSaveContext.gameMode != 1) {
Scene_SetExitFade(play);
} else {
@@ -580,7 +580,7 @@ void Cutscene_TerminatorImpl(PlayState* play, CutsceneContext* csCtx, CsCmdBase*
if (D_801BB12C >= 2) {
D_801BB12C = 0;
}
play->unk_1887F = 4;
play->transitionType = TRANS_TYPE_04;
}
if ((play->nextEntranceIndex & 0xF) > 0) {
@@ -605,26 +605,26 @@ void Cutscene_Command_Terminator(PlayState* play, CutsceneContext* csCtx, CsCmdB
case 0x1F:
if (gSaveContext.save.weekEventReg[20] & 2) {
play->nextEntranceIndex = 0x3010;
play->sceneLoadFlag = 0x14;
play->unk_1887F = 3;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_03;
} else {
play->nextEntranceIndex = 0x8600;
gSaveContext.nextCutsceneIndex = 0xFFF0;
play->sceneLoadFlag = 0x14;
play->unk_1887F = 3;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_03;
}
break;
case 0x44:
if (gSaveContext.save.weekEventReg[33] & 0x80) {
play->nextEntranceIndex = 0xAE70;
play->sceneLoadFlag = 0x14;
play->unk_1887F = 3;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_03;
} else {
play->nextEntranceIndex = 0xAE00;
gSaveContext.nextCutsceneIndex = 0xFFF0;
play->sceneLoadFlag = 0x14;
play->unk_1887F = 3;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_03;
}
break;
@@ -632,16 +632,16 @@ void Cutscene_Command_Terminator(PlayState* play, CutsceneContext* csCtx, CsCmdB
gSaveContext.save.weekEventReg[55] |= 0x80;
play->nextEntranceIndex = 0x6A80;
gSaveContext.nextCutsceneIndex = 0xFFF0;
play->sceneLoadFlag = 0x14;
play->unk_1887F = 3;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_03;
break;
case 0x36:
gSaveContext.save.weekEventReg[52] |= 0x20;
play->nextEntranceIndex = 0x2000;
gSaveContext.nextCutsceneIndex = 0xFFF1;
play->sceneLoadFlag = 0x14;
play->unk_1887F = 3;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_03;
break;
}
}
@@ -667,7 +667,7 @@ void Cutscene_Command_ChooseCreditsScenes(PlayState* play, CutsceneContext* csCt
play->nextEntranceIndex = 0x1C00;
gSaveContext.nextCutsceneIndex = 0xFFF9;
}
play->sceneLoadFlag = 0x14;
play->transitionTrigger = TRANS_TRIGGER_START;
break;
case 3:
@@ -680,7 +680,7 @@ void Cutscene_Command_ChooseCreditsScenes(PlayState* play, CutsceneContext* csCt
play->nextEntranceIndex = 0x1C10;
gSaveContext.nextCutsceneIndex = 0xFFF9;
}
play->sceneLoadFlag = 0x14;
play->transitionTrigger = TRANS_TRIGGER_START;
break;
case 4:
@@ -693,7 +693,7 @@ void Cutscene_Command_ChooseCreditsScenes(PlayState* play, CutsceneContext* csCt
play->nextEntranceIndex = 0x1C20;
gSaveContext.nextCutsceneIndex = 0xFFF9;
}
play->sceneLoadFlag = 0x14;
play->transitionTrigger = TRANS_TRIGGER_START;
break;
case 5:
@@ -706,7 +706,7 @@ void Cutscene_Command_ChooseCreditsScenes(PlayState* play, CutsceneContext* csCt
play->nextEntranceIndex = 0x1C30;
gSaveContext.nextCutsceneIndex = 0xFFF9;
}
play->sceneLoadFlag = 0x14;
play->transitionTrigger = TRANS_TRIGGER_START;
break;
case 6:
@@ -719,7 +719,7 @@ void Cutscene_Command_ChooseCreditsScenes(PlayState* play, CutsceneContext* csCt
play->nextEntranceIndex = 0x1C50;
gSaveContext.nextCutsceneIndex = 0xFFF9;
}
play->sceneLoadFlag = 0x14;
play->transitionTrigger = TRANS_TRIGGER_START;
break;
case 7:
@@ -732,14 +732,14 @@ void Cutscene_Command_ChooseCreditsScenes(PlayState* play, CutsceneContext* csCt
play->nextEntranceIndex = 0x1C60;
gSaveContext.nextCutsceneIndex = 0xFFF9;
}
play->sceneLoadFlag = 0x14;
play->transitionTrigger = TRANS_TRIGGER_START;
break;
case 8:
// Ikana canyon
play->nextEntranceIndex = 0x2000;
gSaveContext.nextCutsceneIndex = 0xFFF3;
play->sceneLoadFlag = 0x14;
play->transitionTrigger = TRANS_TRIGGER_START;
break;
case 9:
@@ -752,7 +752,7 @@ void Cutscene_Command_ChooseCreditsScenes(PlayState* play, CutsceneContext* csCt
play->nextEntranceIndex = 0x1C70;
gSaveContext.nextCutsceneIndex = 0xFFF9;
}
play->sceneLoadFlag = 0x14;
play->transitionTrigger = TRANS_TRIGGER_START;
break;
case 10:
@@ -765,7 +765,7 @@ void Cutscene_Command_ChooseCreditsScenes(PlayState* play, CutsceneContext* csCt
play->nextEntranceIndex = 0x1C40;
gSaveContext.nextCutsceneIndex = 0xFFF9;
}
play->sceneLoadFlag = 0x14;
play->transitionTrigger = TRANS_TRIGGER_START;
break;
case 11:
@@ -778,7 +778,7 @@ void Cutscene_Command_ChooseCreditsScenes(PlayState* play, CutsceneContext* csCt
play->nextEntranceIndex = 0x1C80;
gSaveContext.nextCutsceneIndex = 0xFFF9;
}
play->sceneLoadFlag = 0x14;
play->transitionTrigger = TRANS_TRIGGER_START;
break;
}
}
@@ -880,7 +880,7 @@ void Cutscene_Command_TransitionFX(PlayState* play, CutsceneContext* csCtx, CsCm
break;
case 9:
gSaveContext.unk_3F48 = 1;
gSaveContext.cutsceneTransitionControl = 1;
break;
case 10:
@@ -1176,7 +1176,8 @@ void Cutscene_ProcessCommands(PlayState* play, CutsceneContext* csCtx, u8* cutsc
bcopy(cutscenePtr, &cutsceneEndFrame, sizeof(s32));
cutscenePtr += sizeof(s32);
if (((u16)cutsceneEndFrame < csCtx->frames) && (play->sceneLoadFlag != 0x14) && (csCtx->state != CS_STATE_4)) {
if (((u16)cutsceneEndFrame < csCtx->frames) && (play->transitionTrigger != TRANS_TRIGGER_START) &&
(csCtx->state != CS_STATE_4)) {
csCtx->state = CS_STATE_3;
return;
}
+1 -1
View File
@@ -72,7 +72,7 @@ void GameOver_Update(PlayState* play) {
if (gSaveContext.respawnFlag != -7) {
gSaveContext.respawnFlag = -6;
}
gSaveContext.nextTransition = 2;
gSaveContext.nextTransitionType = TRANS_TYPE_02;
gSaveContext.save.playerData.health = 0x30;
gameOverCtx->state++;
if (INV_CONTENT(ITEM_MASK_DEKU) == ITEM_MASK_DEKU) {
+1 -1
View File
@@ -71,7 +71,7 @@ void KaleidoSetup_Update(PlayState* play) {
}
if ((pauseCtx->state == 0) && (pauseCtx->debugState == 0) && (play->gameOverCtx.state == GAMEOVER_INACTIVE)) {
if ((play->sceneLoadFlag == 0) && (play->unk_18B4A == 0)) {
if ((play->transitionTrigger == TRANS_TRIGGER_OFF) && (play->transitionMode == TRANS_MODE_OFF)) {
if ((gSaveContext.save.cutscene < 0xFFF0) && (gSaveContext.nextCutsceneIndex < 0xFFF0)) {
if (!Play_InCsMode(play) || ((msgCtx->msgMode != 0) && (msgCtx->currentTextId == 0xFF))) {
if ((play->unk_1887C < 2) && (gSaveContext.unk_3F28 != 8) && (gSaveContext.unk_3F28 != 9)) {
+4 -4
View File
@@ -215,8 +215,8 @@ void func_80169EFC(GameState* thisx) {
this->nextEntranceIndex = gSaveContext.respawn[RESPAWN_MODE_DOWN].entranceIndex;
gSaveContext.respawnFlag = 1;
func_80169ECC(this);
this->sceneLoadFlag = 0x14;
this->unk_1887F = 2;
this->transitionTrigger = TRANS_TRIGGER_START;
this->transitionType = TRANS_TYPE_02;
}
// Gameplay_LoadToLastEntrance ?
@@ -227,8 +227,8 @@ void func_80169F78(GameState* thisx) {
this->nextEntranceIndex = gSaveContext.respawn[RESPAWN_MODE_TOP].entranceIndex;
gSaveContext.respawnFlag = -1;
func_80169ECC(this);
this->sceneLoadFlag = 0x14;
this->unk_1887F = 2;
this->transitionTrigger = TRANS_TRIGGER_START;
this->transitionType = TRANS_TYPE_02;
}
// Gameplay_TriggerRespawn ?
+3 -3
View File
@@ -404,9 +404,9 @@ void func_80123140(PlayState* play, Player* player) {
s32 Player_InBlockingCsMode(PlayState* play, Player* player) {
return (player->stateFlags1 & (PLAYER_STATE1_20000000 | PLAYER_STATE1_200 | PLAYER_STATE1_80)) ||
player->csMode != 0 || play->sceneLoadFlag == 0x14 || play->unk_18B4A != 0 ||
(player->stateFlags1 & PLAYER_STATE1_1) || (player->stateFlags3 & PLAYER_STATE3_80) ||
play->actorCtx.unk268 != 0;
(player->csMode != 0) || (play->transitionTrigger == TRANS_TRIGGER_START) ||
(play->transitionMode != TRANS_MODE_OFF) || (player->stateFlags1 & PLAYER_STATE1_1) ||
(player->stateFlags3 & PLAYER_STATE3_80) || (play->actorCtx.unk268 != 0);
}
s32 Player_InCsMode(PlayState* play) {
+1 -1
View File
@@ -530,7 +530,7 @@ void Scene_HeaderCmdAnimatedMaterials(PlayState* play, SceneCmd* cmd) {
* Sets the exit fade from the next entrance index.
*/
void Scene_SetExitFade(PlayState* play) {
play->unk_1887F = Entrance_GetTransitionFlags(play->nextEntranceIndex) & 0x7F;
play->transitionType = Entrance_GetTransitionFlags(play->nextEntranceIndex) & 0x7F;
}
/**
@@ -251,9 +251,9 @@ void func_809542A0(BgIngate* this, PlayState* play) {
play->nextEntranceIndex = 0xA810;
}
gSaveContext.nextCutsceneIndex = 0;
play->sceneLoadFlag = 0x14;
play->unk_1887F = 3;
gSaveContext.nextTransition = 3;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_03;
gSaveContext.nextTransitionType = TRANS_TYPE_03;
this->actionFunc = func_80953F8C;
gSaveContext.save.weekEventReg[90] &= (u8)~0x40;
func_800FE498();
+1 -1
View File
@@ -1815,7 +1815,7 @@ void DmStk_Update(Actor* thisx, PlayState* play) {
// This code is responsible for making in-game time pass while using the telescope in the Astral Observatory.
// Skull Kid is always loaded in the scene, even if he isn't visible, hence why time always passes.
if ((play->actorCtx.unk5 & 2) && (play->msgCtx.msgMode != 0) && (play->msgCtx.currentTextId == 0x5E6) &&
!FrameAdvance_IsEnabled(&play->state) && (play->sceneLoadFlag == 0) &&
!FrameAdvance_IsEnabled(&play->state) && (play->transitionTrigger == TRANS_TRIGGER_OFF) &&
(ActorCutscene_GetCurrentIndex() == -1) && (play->csCtx.state == 0)) {
gSaveContext.save.time = ((void)0, gSaveContext.save.time) + (u16)REG(15);
if (REG(15) != 0) {
@@ -129,8 +129,8 @@ void DoorAna_WaitOpen(DoorAna* this, PlayState* play) {
s32 grottoType = DOORANA_GET_TYPE(&this->actor);
if (Math_StepToF(&this->actor.scale.x, 0.01f, 0.001f)) {
if (this->actor.targetMode != 0 && play->sceneLoadFlag == 0 && play->unk_18B4A == 0 &&
(player->stateFlags1 & 0x80000000) && player->unk_AE7 == 0) {
if ((this->actor.targetMode != 0) && (play->transitionTrigger == TRANS_TRIGGER_OFF) &&
(play->transitionMode == TRANS_MODE_OFF) && (player->stateFlags1 & 0x80000000) && (player->unk_AE7 == 0)) {
if (grottoType == DOORANA_TYPE_VISIBLE_SCENE_EXIT) {
s32 exitIndex = DOORANA_GET_EXIT_INDEX(&this->actor);
@@ -410,8 +410,8 @@ void func_808B958C(DoorWarp1* this, PlayState* play) {
this->unk_1D0++;
if ((this->unk_1D0 > 120) && (gSaveContext.nextCutsceneIndex == 0xFFEF)) {
func_808BA10C(this, play);
play->unk_1887F = 3;
gSaveContext.nextTransition = 3;
play->transitionType = TRANS_TYPE_03;
gSaveContext.nextTransitionType = TRANS_TYPE_03;
}
Math_SmoothStepToF(&this->unk_1A8, 6.0f, 0.2f, 0.02f, 0.01f);
@@ -486,7 +486,7 @@ void func_808B98A8(DoorWarp1* this, PlayState* play) {
if (DOORWARP1_GET_FF00_1(&this->dyna.actor) != 0xFF) {
play->nextEntranceIndex = play->setupExitList[DOORWARP1_GET_FF00_3(&this->dyna.actor)];
Scene_SetExitFade(play);
play->sceneLoadFlag = 0x14;
play->transitionTrigger = TRANS_TRIGGER_START;
} else {
func_80169FDC(&play->state);
}
@@ -703,49 +703,49 @@ void func_808BA10C(DoorWarp1* this, PlayState* play) {
gSaveContext.nextCutsceneIndex = phi_v0_3 + 0xFFF0;
}
play->sceneLoadFlag = 0x14;
play->unk_1887F = 3;
gSaveContext.nextTransition = 3;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_03;
gSaveContext.nextTransitionType = TRANS_TYPE_03;
} else {
switch (phi_v0_2) {
case 0:
if (gSaveContext.save.weekEventReg[20] & 2) {
gSaveContext.save.weekEventReg[7] |= 0x80;
play->nextEntranceIndex = 0x3010;
play->sceneLoadFlag = 0x14;
play->unk_1887F = 3;
gSaveContext.nextTransition = 3;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_03;
gSaveContext.nextTransitionType = TRANS_TYPE_03;
} else {
play->nextEntranceIndex = 0x8600;
gSaveContext.nextCutsceneIndex = 0xFFF0;
play->sceneLoadFlag = 0x14;
play->unk_1887F = 3;
gSaveContext.nextTransition = 3;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_03;
gSaveContext.nextTransitionType = TRANS_TYPE_03;
}
break;
case 1:
gSaveContext.save.weekEventReg[33] |= 0x80;
play->nextEntranceIndex = 0xAE70;
play->sceneLoadFlag = 0x14;
play->unk_1887F = 3;
gSaveContext.nextTransition = 3;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_03;
gSaveContext.nextTransitionType = TRANS_TYPE_03;
break;
case 3:
if (gSaveContext.save.weekEventReg[55] & 0x80) {
play->nextEntranceIndex = 0x6A90;
gSaveContext.nextCutsceneIndex = 0xFFF0;
play->sceneLoadFlag = 0x14;
play->unk_1887F = 3;
gSaveContext.nextTransition = 3;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_03;
gSaveContext.nextTransitionType = TRANS_TYPE_03;
} else {
gSaveContext.save.weekEventReg[55] |= 0x80;
play->nextEntranceIndex = 0x6A80;
gSaveContext.nextCutsceneIndex = 0xFFF0;
play->sceneLoadFlag = 0x14;
play->unk_1887F = 3;
gSaveContext.nextTransition = 3;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_03;
gSaveContext.nextTransitionType = TRANS_TYPE_03;
}
break;
@@ -753,9 +753,9 @@ void func_808BA10C(DoorWarp1* this, PlayState* play) {
gSaveContext.save.weekEventReg[52] |= 0x20;
play->nextEntranceIndex = 0x20F0;
gSaveContext.nextCutsceneIndex = 0xFFF2;
play->sceneLoadFlag = 0x14;
play->unk_1887F = 3;
gSaveContext.nextTransition = 3;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_03;
gSaveContext.nextTransitionType = TRANS_TYPE_03;
break;
}
}
@@ -765,7 +765,7 @@ void func_808BA10C(DoorWarp1* this, PlayState* play) {
}
play->nextEntranceIndex = play->setupExitList[DOORWARP1_GET_FF00_3(&this->dyna.actor)];
Scene_SetExitFade(play);
play->sceneLoadFlag = 0x14;
play->transitionTrigger = TRANS_TRIGGER_START;
} else {
func_80169FDC(&play->state);
}
@@ -417,11 +417,11 @@ void func_809C1C9C(EnAob01* this, PlayState* play) {
this->unk_2D2 |= 0x20;
func_800FD750(0x40);
play->nextEntranceIndex = 0x7C10;
play->unk_1887F = 0x40;
gSaveContext.nextTransition = 0x40;
play->transitionType = TRANS_TYPE_64;
gSaveContext.nextTransitionType = TRANS_TYPE_64;
gSaveContext.eventInf[0] = (gSaveContext.eventInf[0] & (u8)~7) | 2;
gSaveContext.eventInf[0] = (gSaveContext.eventInf[0] & 7) | (this->unk_432 * 8);
play->sceneLoadFlag = 0x14;
play->transitionTrigger = TRANS_TRIGGER_START;
}
}
@@ -674,9 +674,9 @@ void func_809C2788(EnAob01* this, PlayState* play) {
if (func_801A8A50(0) != 0x41) {
play->nextEntranceIndex = 0x7C10;
gSaveContext.eventInf[0] = (gSaveContext.eventInf[0] & (u8)~7) | 3;
play->unk_1887F = 0x40;
gSaveContext.nextTransition = 3;
play->sceneLoadFlag = 0x14;
play->transitionType = TRANS_TYPE_64;
gSaveContext.nextTransitionType = TRANS_TYPE_03;
play->transitionTrigger = TRANS_TRIGGER_START;
}
}
}
+3 -3
View File
@@ -301,9 +301,9 @@ void EnBaba_HandleConversation(EnBaba* this, PlayState* play) {
void EnBaba_TriggerTransition(PlayState* play, u16 nextEntrance) {
play->nextEntranceIndex = nextEntrance;
play->unk_1887F = 0x40;
gSaveContext.nextTransition = 0x40;
play->sceneLoadFlag = 0x14;
play->transitionType = TRANS_TYPE_64;
gSaveContext.nextTransitionType = TRANS_TYPE_64;
play->transitionTrigger = TRANS_TRIGGER_START;
}
void EnBaba_UpdateCollider(EnBaba* this, PlayState* play) {
@@ -333,9 +333,9 @@ void func_809C51B4(EnBomBowlMan* this, PlayState* play) {
if ((play->msgCtx.unk120B1 == 0) && ((play->msgCtx.msgMode == 0) || (Message_GetState(&play->msgCtx) == 6))) {
play->nextEntranceIndex = Entrance_CreateIndexFromSpawn(6);
gSaveContext.nextCutsceneIndex = 0;
play->sceneLoadFlag = 0x14;
play->unk_1887F = 0x56;
gSaveContext.nextTransition = 3;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_86;
gSaveContext.nextTransitionType = TRANS_TYPE_03;
gSaveContext.save.weekEventReg[75] &= (u8)~0x40;
if (player->transformation == PLAYER_FORM_HUMAN) {
gSaveContext.save.weekEventReg[84] |= 0x80;
@@ -759,9 +759,9 @@ void func_80BFFBC4(EnBomjima* this, PlayState* play) {
func_801477B4(play);
play->nextEntranceIndex = Entrance_CreateIndexFromSpawn(6);
gSaveContext.nextCutsceneIndex = 0;
play->sceneLoadFlag = 20;
play->unk_1887F = 0x56;
gSaveContext.nextTransition = 3;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_86;
gSaveContext.nextTransitionType = TRANS_TYPE_03;
ActorCutscene_Stop(this->unk_2D4[1]);
}
}
@@ -793,13 +793,13 @@ void func_80C02CA4(EnBomjimb* this, PlayState* play) {
play->nextEntranceIndex = play->setupExitList[this->unk_2B2];
gSaveContext.nextCutsceneIndex = 0;
Scene_SetExitFade(play);
play->sceneLoadFlag = 0x14;
play->transitionTrigger = TRANS_TRIGGER_START;
} else {
play->nextEntranceIndex = Entrance_CreateIndexFromSpawn(5);
gSaveContext.nextCutsceneIndex = 0;
play->sceneLoadFlag = 0x14;
play->unk_1887F = 0x56;
gSaveContext.nextTransition = 3;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_86;
gSaveContext.nextTransitionType = TRANS_TYPE_03;
}
gSaveContext.save.weekEventReg[75] |= 0x40;
gSaveContext.save.weekEventReg[83] |= 4;
+3 -3
View File
@@ -441,9 +441,9 @@ void func_8092D330(EnDns* this, PlayState* play) {
this->unk_2C6 &= ~0x100;
play->nextEntranceIndex = 0x5010;
gSaveContext.nextCutsceneIndex = 0;
play->sceneLoadFlag = 0x14;
play->unk_1887F = 3;
gSaveContext.nextTransition = 3;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_03;
gSaveContext.nextTransitionType = TRANS_TYPE_03;
}
}
+3 -3
View File
@@ -343,9 +343,9 @@ void EnFall_CrashingMoon_HandleGiantsCutscene(EnFall* this, PlayState* play) {
} else if (play->csCtx.frames > 1600) {
play->nextEntranceIndex = 0x2C00;
gSaveContext.nextCutsceneIndex = 0xFFF2;
play->sceneLoadFlag = 0x14;
play->unk_1887F = 2;
gSaveContext.nextTransition = 2;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_02;
gSaveContext.nextTransitionType = TRANS_TYPE_02;
sGiantsCutsceneState = 9;
}
break;

Some files were not shown because too many files have changed in this diff Show More