mirror of
https://github.com/zeldaret/oot.git
synced 2024-09-21 04:24:43 +00:00
z_demo retail code matched (#1655)
* match all functions * format * clarify between 'dest' and 'skip' debug features * format * better match for CutsceneHandler_RunScript * review * format * remove macro
This commit is contained in:
parent
af6b821193
commit
8be8848f85
@ -438,7 +438,7 @@ typedef enum {
|
|||||||
#define EVENTCHKINF_4C 0x4C
|
#define EVENTCHKINF_4C 0x4C
|
||||||
#define EVENTCHKINF_4D 0x4D
|
#define EVENTCHKINF_4D 0x4D
|
||||||
#define EVENTCHKINF_4E 0x4E
|
#define EVENTCHKINF_4E 0x4E
|
||||||
#define EVENTCHKINF_4F 0x4F
|
#define EVENTCHKINF_WATCHED_SHEIK_AFTER_MASTER_SWORD_CS 0x4F // Cutscene in Temple of Time as adult after pulling the Master Sword for the first time
|
||||||
#define EVENTCHKINF_50 0x50
|
#define EVENTCHKINF_50 0x50
|
||||||
#define EVENTCHKINF_51 0x51
|
#define EVENTCHKINF_51 0x51
|
||||||
#define EVENTCHKINF_52 0x52
|
#define EVENTCHKINF_52 0x52
|
||||||
|
@ -130,6 +130,7 @@ s16 sQuakeIndex;
|
|||||||
|
|
||||||
void Cutscene_SetupScripted(PlayState* play, CutsceneContext* csCtx);
|
void Cutscene_SetupScripted(PlayState* play, CutsceneContext* csCtx);
|
||||||
|
|
||||||
|
#if OOT_DEBUG
|
||||||
void Cutscene_DrawDebugInfo(PlayState* play, Gfx** dlist, CutsceneContext* csCtx) {
|
void Cutscene_DrawDebugInfo(PlayState* play, Gfx** dlist, CutsceneContext* csCtx) {
|
||||||
GfxPrint printer;
|
GfxPrint printer;
|
||||||
s32 pad[2];
|
s32 pad[2];
|
||||||
@ -149,6 +150,7 @@ void Cutscene_DrawDebugInfo(PlayState* play, Gfx** dlist, CutsceneContext* csCtx
|
|||||||
*dlist = GfxPrint_Close(&printer);
|
*dlist = GfxPrint_Close(&printer);
|
||||||
GfxPrint_Destroy(&printer);
|
GfxPrint_Destroy(&printer);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void Cutscene_InitContext(PlayState* play, CutsceneContext* csCtx) {
|
void Cutscene_InitContext(PlayState* play, CutsceneContext* csCtx) {
|
||||||
csCtx->state = CS_STATE_IDLE;
|
csCtx->state = CS_STATE_IDLE;
|
||||||
@ -173,6 +175,8 @@ void Cutscene_UpdateManual(PlayState* play, CutsceneContext* csCtx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Cutscene_UpdateScripted(PlayState* play, CutsceneContext* csCtx) {
|
void Cutscene_UpdateScripted(PlayState* play, CutsceneContext* csCtx) {
|
||||||
|
#if OOT_DEBUG
|
||||||
|
{
|
||||||
Input* input = &play->state.input[0];
|
Input* input = &play->state.input[0];
|
||||||
|
|
||||||
if (CHECK_BTN_ALL(input->press.button, BTN_DLEFT) && (csCtx->state == CS_STATE_IDLE) && IS_CUTSCENE_LAYER) {
|
if (CHECK_BTN_ALL(input->press.button, BTN_DLEFT) && (csCtx->state == CS_STATE_IDLE) && IS_CUTSCENE_LAYER) {
|
||||||
@ -187,6 +191,8 @@ void Cutscene_UpdateScripted(PlayState* play, CutsceneContext* csCtx) {
|
|||||||
gSaveContext.save.cutsceneIndex = 0xFFFD;
|
gSaveContext.save.cutsceneIndex = 0xFFFD;
|
||||||
gSaveContext.cutsceneTrigger = 1;
|
gSaveContext.cutsceneTrigger = 1;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if ((gSaveContext.cutsceneTrigger != 0) && (play->transitionTrigger == TRANS_TRIGGER_START)) {
|
if ((gSaveContext.cutsceneTrigger != 0) && (play->transitionTrigger == TRANS_TRIGGER_START)) {
|
||||||
gSaveContext.cutsceneTrigger = 0;
|
gSaveContext.cutsceneTrigger = 0;
|
||||||
@ -562,7 +568,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ((csCtx->curFrame == cmd->startFrame) || titleDemoSkipped ||
|
if ((csCtx->curFrame == cmd->startFrame) || titleDemoSkipped ||
|
||||||
((csCtx->curFrame > 20) && CHECK_BTN_ALL(play->state.input[0].press.button, BTN_START) &&
|
(OOT_DEBUG && (csCtx->curFrame > 20) && CHECK_BTN_ALL(play->state.input[0].press.button, BTN_START) &&
|
||||||
(gSaveContext.fileNum != 0xFEDC))) {
|
(gSaveContext.fileNum != 0xFEDC))) {
|
||||||
csCtx->state = CS_STATE_RUN_UNSTOPPABLE;
|
csCtx->state = CS_STATE_RUN_UNSTOPPABLE;
|
||||||
Audio_SetCutsceneFlag(0);
|
Audio_SetCutsceneFlag(0);
|
||||||
@ -717,7 +723,9 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case CS_DEST_TEMPLE_OF_TIME_AFTER_LIGHT_MEDALLION:
|
case CS_DEST_TEMPLE_OF_TIME_AFTER_LIGHT_MEDALLION:
|
||||||
SET_EVENTCHKINF(EVENTCHKINF_4F);
|
#if OOT_DEBUG
|
||||||
|
SET_EVENTCHKINF(EVENTCHKINF_WATCHED_SHEIK_AFTER_MASTER_SWORD_CS);
|
||||||
|
#endif
|
||||||
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_4;
|
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_4;
|
||||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||||
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
play->transitionType = TRANS_TYPE_FADE_BLACK;
|
||||||
@ -886,7 +894,9 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case CS_DEST_TEMPLE_OF_TIME_AFTER_LIGHT_MEDALLION_ALT:
|
case CS_DEST_TEMPLE_OF_TIME_AFTER_LIGHT_MEDALLION_ALT:
|
||||||
SET_EVENTCHKINF(EVENTCHKINF_4F);
|
#if OOT_DEBUG
|
||||||
|
SET_EVENTCHKINF(EVENTCHKINF_WATCHED_SHEIK_AFTER_MASTER_SWORD_CS);
|
||||||
|
#endif
|
||||||
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_4;
|
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_4;
|
||||||
play->transitionTrigger = TRANS_TRIGGER_START;
|
play->transitionTrigger = TRANS_TRIGGER_START;
|
||||||
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
|
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
|
||||||
@ -941,8 +951,10 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case CS_DEST_GERUDO_VALLEY_CREDITS:
|
case CS_DEST_GERUDO_VALLEY_CREDITS:
|
||||||
|
#if OOT_DEBUG
|
||||||
gSaveContext.gameMode = GAMEMODE_END_CREDITS;
|
gSaveContext.gameMode = GAMEMODE_END_CREDITS;
|
||||||
Audio_SetSfxBanksMute(0x6F);
|
Audio_SetSfxBanksMute(0x6F);
|
||||||
|
#endif
|
||||||
play->linkAgeOnLoad = LINK_AGE_CHILD;
|
play->linkAgeOnLoad = LINK_AGE_CHILD;
|
||||||
play->nextEntranceIndex = ENTR_GERUDO_VALLEY_0;
|
play->nextEntranceIndex = ENTR_GERUDO_VALLEY_0;
|
||||||
gSaveContext.save.cutsceneIndex = 0xFFF2;
|
gSaveContext.save.cutsceneIndex = 0xFFF2;
|
||||||
@ -1779,10 +1791,12 @@ void Cutscene_ProcessScript(PlayState* play, CutsceneContext* csCtx, u8* script)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if OOT_DEBUG
|
||||||
if (CHECK_BTN_ALL(play->state.input[0].press.button, BTN_DRIGHT)) {
|
if (CHECK_BTN_ALL(play->state.input[0].press.button, BTN_DRIGHT)) {
|
||||||
csCtx->state = CS_STATE_STOP;
|
csCtx->state = CS_STATE_STOP;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
for (i = 0; i < totalEntries; i++) {
|
for (i = 0; i < totalEntries; i++) {
|
||||||
MemCpy(&cmdType, script, sizeof(cmdType));
|
MemCpy(&cmdType, script, sizeof(cmdType));
|
||||||
@ -2189,15 +2203,11 @@ void Cutscene_ProcessScript(PlayState* play, CutsceneContext* csCtx, u8* script)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void CutsceneHandler_RunScript(PlayState* play, CutsceneContext* csCtx) {
|
void CutsceneHandler_RunScript(PlayState* play, CutsceneContext* csCtx) {
|
||||||
|
if (gSaveContext.save.cutsceneIndex >= 0xFFF0) {
|
||||||
|
if (OOT_DEBUG && BREG(0) != 0) {
|
||||||
Gfx* displayList;
|
Gfx* displayList;
|
||||||
Gfx* prevDisplayList;
|
Gfx* prevDisplayList;
|
||||||
|
|
||||||
if (0) {} // Necessary to match
|
|
||||||
|
|
||||||
if (gSaveContext.save.cutsceneIndex >= 0xFFF0) {
|
|
||||||
if (0) {} // Also necessary to match
|
|
||||||
|
|
||||||
if (BREG(0) != 0) {
|
|
||||||
OPEN_DISPS(play->state.gfxCtx, "../z_demo.c", 4101);
|
OPEN_DISPS(play->state.gfxCtx, "../z_demo.c", 4101);
|
||||||
|
|
||||||
prevDisplayList = POLY_OPA_DISP;
|
prevDisplayList = POLY_OPA_DISP;
|
||||||
@ -2210,10 +2220,9 @@ void CutsceneHandler_RunScript(PlayState* play, CutsceneContext* csCtx) {
|
|||||||
|
|
||||||
CLOSE_DISPS(play->state.gfxCtx, "../z_demo.c", 4108);
|
CLOSE_DISPS(play->state.gfxCtx, "../z_demo.c", 4108);
|
||||||
}
|
}
|
||||||
|
|
||||||
csCtx->curFrame++;
|
csCtx->curFrame++;
|
||||||
|
|
||||||
if (R_USE_DEBUG_CUTSCENE) {
|
if (OOT_DEBUG && R_USE_DEBUG_CUTSCENE) {
|
||||||
Cutscene_ProcessScript(play, csCtx, gDebugCutsceneScript);
|
Cutscene_ProcessScript(play, csCtx, gDebugCutsceneScript);
|
||||||
} else {
|
} else {
|
||||||
Cutscene_ProcessScript(play, csCtx, play->csCtx.script);
|
Cutscene_ProcessScript(play, csCtx, play->csCtx.script);
|
||||||
|
@ -93,9 +93,9 @@ void BgTokiSwd_Destroy(Actor* thisx, PlayState* play) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void func_808BAF40(BgTokiSwd* this, PlayState* play) {
|
void func_808BAF40(BgTokiSwd* this, PlayState* play) {
|
||||||
if (!GET_EVENTCHKINF(EVENTCHKINF_4F) && !IS_CUTSCENE_LAYER &&
|
if (!GET_EVENTCHKINF(EVENTCHKINF_WATCHED_SHEIK_AFTER_MASTER_SWORD_CS) && !IS_CUTSCENE_LAYER &&
|
||||||
Actor_IsFacingAndNearPlayer(&this->actor, 800.0f, 0x7530) && !Play_InCsMode(play)) {
|
Actor_IsFacingAndNearPlayer(&this->actor, 800.0f, 0x7530) && !Play_InCsMode(play)) {
|
||||||
SET_EVENTCHKINF(EVENTCHKINF_4F);
|
SET_EVENTCHKINF(EVENTCHKINF_WATCHED_SHEIK_AFTER_MASTER_SWORD_CS);
|
||||||
play->csCtx.script = D_808BBD90;
|
play->csCtx.script = D_808BBD90;
|
||||||
gSaveContext.cutsceneTrigger = 1;
|
gSaveContext.cutsceneTrigger = 1;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user