mirror of
https://github.com/zeldaret/mm.git
synced 2026-06-12 21:44:40 -04:00
Transition System Docs (#883)
* Transition docs from OoT * Cleanup * Missed a spot
This commit is contained in:
@@ -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
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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
@@ -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 ?
|
||||
|
||||
@@ -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
@@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user