mirror of
https://github.com/zeldaret/oot.git
synced 2024-11-14 05:19:36 +00:00
Match retail demo actors (#1745)
* Match GetCue functions * Match retail demo actors * Add redundant parentheses around kREG(X) == Y in z_demo_gt.c * Remove goto in DemoEffect_DrawLightEffect * Rename "dl" * Comment on possible array * Use the word "fake" * Remove redundant return
This commit is contained in:
parent
5c3a722aca
commit
33d8044e45
18 changed files with 161 additions and 83 deletions
|
@ -775,8 +775,6 @@ void func_80968FB0(Actor* thisx, PlayState* play) {
|
|||
f32 scaleFactor;
|
||||
s32 pad;
|
||||
|
||||
if (1) {}
|
||||
|
||||
OPEN_DISPS(play->state.gfxCtx, "../z_demo_6k.c", 1386);
|
||||
|
||||
Gfx_SetupDL_25Xlu(play->state.gfxCtx);
|
||||
|
@ -787,6 +785,7 @@ void func_80968FB0(Actor* thisx, PlayState* play) {
|
|||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPSegment(POLY_XLU_DISP++, 0x08, displayList);
|
||||
gDPPipeSync(displayList++);
|
||||
if (displayList) {}
|
||||
gDPSetPrimColor(displayList++, 0, 0x80, 255, 255, 255, this->unk_293);
|
||||
gDPSetRenderMode(displayList++, G_RM_PASS, G_RM_ZB_CLD_SURF2);
|
||||
gSPEndDisplayList(displayList++);
|
||||
|
|
|
@ -68,6 +68,7 @@ void DemoDu_SetMouthTexIndex(DemoDu* this, s16 mouthTexIndex) {
|
|||
this->mouthTexIndex = mouthTexIndex;
|
||||
}
|
||||
|
||||
#if OOT_DEBUG
|
||||
// Resets all the values used in this cutscene.
|
||||
void DemoDu_CsAfterGanon_Reset(DemoDu* this) {
|
||||
this->updateIndex = CS_CHAMBERAFTERGANON_SUBSCENE(0);
|
||||
|
@ -87,12 +88,12 @@ void DemoDu_CsAfterGanon_CheckIfShouldReset(DemoDu* this, PlayState* play) {
|
|||
DemoDu_CsAfterGanon_Reset(this);
|
||||
}
|
||||
D_8096CE94 = false;
|
||||
return;
|
||||
}
|
||||
} else if (!D_8096CE94) {
|
||||
D_8096CE94 = true;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
s32 DemoDu_UpdateSkelAnime(DemoDu* this) {
|
||||
return SkelAnime_Update(&this->skelAnime);
|
||||
|
@ -104,8 +105,11 @@ void DemoDu_UpdateBgCheckInfo(DemoDu* this, PlayState* play) {
|
|||
|
||||
CsCmdActorCue* DemoDu_GetCue(PlayState* play, s32 cueChannel) {
|
||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||
return play->csCtx.actorCues[cueChannel];
|
||||
CsCmdActorCue* cue = play->csCtx.actorCues[cueChannel];
|
||||
|
||||
return cue;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -774,7 +778,9 @@ void DemoDu_CsAfterGanon_BackTo01(DemoDu* this, PlayState* play) {
|
|||
|
||||
void DemoDu_UpdateCs_AG_00(DemoDu* this, PlayState* play) {
|
||||
DemoDu_CsAfterGanon_AdvanceTo01(this, play);
|
||||
#if OOT_DEBUG
|
||||
DemoDu_CsAfterGanon_CheckIfShouldReset(this, play);
|
||||
#endif
|
||||
}
|
||||
|
||||
void DemoDu_UpdateCs_AG_01(DemoDu* this, PlayState* play) {
|
||||
|
@ -782,7 +788,9 @@ void DemoDu_UpdateCs_AG_01(DemoDu* this, PlayState* play) {
|
|||
DemoDu_UpdateSkelAnime(this);
|
||||
DemoDu_UpdateEyes(this);
|
||||
DemoDu_CsAfterGanon_AdvanceTo02(this, play);
|
||||
#if OOT_DEBUG
|
||||
DemoDu_CsAfterGanon_CheckIfShouldReset(this, play);
|
||||
#endif
|
||||
}
|
||||
|
||||
void DemoDu_UpdateCs_AG_02(DemoDu* this, PlayState* play) {
|
||||
|
@ -790,7 +798,9 @@ void DemoDu_UpdateCs_AG_02(DemoDu* this, PlayState* play) {
|
|||
DemoDu_UpdateSkelAnime(this);
|
||||
DemoDu_UpdateEyes(this);
|
||||
DemoDu_CsAfterGanon_BackTo01(this, play);
|
||||
#if OOT_DEBUG
|
||||
DemoDu_CsAfterGanon_CheckIfShouldReset(this, play);
|
||||
#endif
|
||||
}
|
||||
|
||||
// Similar to DemoDu_Draw_01, but this uses POLY_XLU_DISP. Also uses this->shadowAlpha for setting the env color.
|
||||
|
|
|
@ -334,10 +334,12 @@ void DemoEc_UseAnimationObject(DemoEc* this, PlayState* play) {
|
|||
|
||||
CsCmdActorCue* DemoEc_GetCue(PlayState* play, s32 cueChannel) {
|
||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||
return play->csCtx.actorCues[cueChannel];
|
||||
} else {
|
||||
return NULL;
|
||||
CsCmdActorCue* cue = play->csCtx.actorCues[cueChannel];
|
||||
|
||||
return cue;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void DemoEc_SetStartPosRotFromCue(DemoEc* this, PlayState* play, s32 cueChannel) {
|
||||
|
|
|
@ -1808,21 +1808,21 @@ void DemoEffect_DrawGodLgt(Actor* thisx, PlayState* play) {
|
|||
|
||||
void DemoEffect_DrawLightEffect(Actor* thisx, PlayState* play) {
|
||||
DemoEffect* this = (DemoEffect*)thisx;
|
||||
u8* alpha;
|
||||
Gfx* disp;
|
||||
uintptr_t flashDList = (uintptr_t)gEffFlash1DL;
|
||||
s32 pad2;
|
||||
|
||||
OPEN_DISPS(play->state.gfxCtx, "../z_demo_effect.c", 2842);
|
||||
|
||||
if (!DemoEffect_CheckForCue(this, play, 1)) {
|
||||
|
||||
if (this->light.flicker == 0) {
|
||||
this->light.flicker = 1;
|
||||
} else {
|
||||
disp = (Gfx*)(uintptr_t)gEffFlash1DL; // necessary to match but probably fake
|
||||
alpha = &this->light.alpha;
|
||||
Gfx_SetupDL_25Xlu(play->state.gfxCtx);
|
||||
// `(*this).light.alpha` is probably fake and indicates that `alpha`
|
||||
// may have been part of an array (possibly a "workbuf" array
|
||||
// instead of the union of structs we have now).
|
||||
gDPSetPrimColor(POLY_XLU_DISP++, 0, 128, this->primXluColor[0], this->primXluColor[1],
|
||||
this->primXluColor[2], *alpha);
|
||||
this->primXluColor[2], (*this).light.alpha);
|
||||
gDPSetEnvColor(POLY_XLU_DISP++, this->envXluColor[0], this->envXluColor[1], this->envXluColor[2], 255);
|
||||
Matrix_Scale(((this->light.scaleFlag & 1) * 0.05f) + 1.0f, ((this->light.scaleFlag & 1) * 0.05f) + 1.0f,
|
||||
((this->light.scaleFlag & 1) * 0.05f) + 1.0f, MTXMODE_APPLY);
|
||||
|
@ -1831,14 +1831,13 @@ void DemoEffect_DrawLightEffect(Actor* thisx, PlayState* play) {
|
|||
Matrix_RotateZ(DEG_TO_RAD(this->light.rotation), MTXMODE_APPLY);
|
||||
gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_demo_effect.c", 2866),
|
||||
G_MTX_MODELVIEW | G_MTX_LOAD | G_MTX_NOPUSH);
|
||||
if (disp) {};
|
||||
gSPDisplayList(POLY_XLU_DISP++, disp);
|
||||
gSPDisplayList(POLY_XLU_DISP++, flashDList);
|
||||
Matrix_Pop();
|
||||
Matrix_Mult(&play->billboardMtxF, MTXMODE_APPLY);
|
||||
Matrix_RotateZ(DEG_TO_RAD(-(f32)this->light.rotation), MTXMODE_APPLY);
|
||||
gSPMatrix(POLY_XLU_DISP++, MATRIX_NEW(play->state.gfxCtx, "../z_demo_effect.c", 2874),
|
||||
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
|
||||
gSPDisplayList(POLY_XLU_DISP++, disp);
|
||||
gSPDisplayList(POLY_XLU_DISP++, flashDList);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2004,8 +2003,8 @@ s32 DemoEffect_OverrideLimbDrawTimeWarp(PlayState* play, SkelCurve* skelCurve, s
|
|||
}
|
||||
|
||||
void DemoEffect_DrawTimeWarp(Actor* thisx, PlayState* play) {
|
||||
DemoEffect* this = (DemoEffect*)thisx;
|
||||
GraphicsContext* gfxCtx = play->state.gfxCtx;
|
||||
DemoEffect* this = (DemoEffect*)thisx;
|
||||
u8 effectType = (this->actor.params & 0x00FF);
|
||||
|
||||
if (effectType == DEMO_EFFECT_TIMEWARP_TIMEBLOCK_LARGE || effectType == DEMO_EFFECT_TIMEWARP_TIMEBLOCK_SMALL ||
|
||||
|
|
|
@ -52,7 +52,9 @@ void DemoExt_PlayVortexSFX(DemoExt* this) {
|
|||
|
||||
CsCmdActorCue* DemoExt_GetCue(PlayState* play, s32 cueChannel) {
|
||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||
return play->csCtx.actorCues[cueChannel];
|
||||
CsCmdActorCue* cue = play->csCtx.actorCues[cueChannel];
|
||||
|
||||
return cue;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
|
|
|
@ -165,7 +165,9 @@ void func_809782A0(DemoGeff* this, PlayState* play) {
|
|||
void func_80978308(DemoGeff* this, PlayState* play) {
|
||||
func_809781FC(this, play);
|
||||
func_809782A0(this, play);
|
||||
#if OOT_DEBUG
|
||||
func_80978030(this, play);
|
||||
#endif
|
||||
}
|
||||
|
||||
void func_80978344(DemoGeff* this, PlayState* play) {
|
||||
|
|
|
@ -263,7 +263,7 @@ s32 DemoGj_InitSetIndices(DemoGj* this, PlayState* play, s32 updateMode, s32 dra
|
|||
}
|
||||
|
||||
void DemoGj_DrawCommon(DemoGj* this, PlayState* play, Gfx* displayList) {
|
||||
if (kREG(0) == 0) {
|
||||
if (!OOT_DEBUG || kREG(0) == 0) {
|
||||
GraphicsContext* gfxCtx = play->state.gfxCtx;
|
||||
|
||||
OPEN_DISPS(gfxCtx, "../z_demo_gj.c", 1163);
|
||||
|
@ -454,7 +454,7 @@ s32 DemoGj_IsGanondorfFloatingInAir(DemoGj* this, PlayState* play) {
|
|||
|
||||
void DemoGj_SetupMovement(DemoGj* this, PlayState* play) {
|
||||
Actor* actor = &this->dyna.actor;
|
||||
Player* player;
|
||||
s32 pad;
|
||||
Vec3f* pos = &actor->world.pos;
|
||||
Vec3s* unk_172;
|
||||
f32 xDistance;
|
||||
|
@ -544,7 +544,8 @@ void DemoGj_SetupMovement(DemoGj* this, PlayState* play) {
|
|||
}
|
||||
|
||||
if (xDistance == 0.0f && zDistance == 0.0f) {
|
||||
player = GET_PLAYER(play);
|
||||
Player* player = GET_PLAYER(play);
|
||||
|
||||
xDistance = player->actor.world.pos.x - pos->x;
|
||||
zDistance = player->actor.world.pos.z - pos->z;
|
||||
|
||||
|
@ -974,8 +975,10 @@ void DemoGj_InitDestructableRubble1(DemoGj* this, PlayState* play) {
|
|||
DemoGj_InitCylinder(this, play, &this->cylinders[2], &sCylinderInit1);
|
||||
}
|
||||
|
||||
#if OOT_DEBUG
|
||||
void DemoGj_DoNothing1(DemoGj* this, PlayState* play) {
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Moves the ColliderCylinder's relative to the actor's position.
|
||||
|
@ -1092,7 +1095,9 @@ void DemoGj_Update15(DemoGj* this, PlayState* play) {
|
|||
// func_8097B370
|
||||
void DemoGj_Update18(DemoGj* this, PlayState* play) {
|
||||
func_8097B22C(this, play);
|
||||
#if OOT_DEBUG
|
||||
DemoGj_DoNothing1(this, play);
|
||||
#endif
|
||||
}
|
||||
|
||||
void DemoGj_DrawDestructableRubble1(DemoGj* this, PlayState* play) {
|
||||
|
@ -1107,8 +1112,10 @@ void DemoGj_InitDestructableRubble2(DemoGj* this, PlayState* play) {
|
|||
DemoGj_InitCylinder(this, play, &this->cylinders[2], &sCylinderInit2);
|
||||
}
|
||||
|
||||
#if OOT_DEBUG
|
||||
void DemoGj_DoNothing2(DemoGj* this, PlayState* play) {
|
||||
}
|
||||
#endif
|
||||
|
||||
// Moves the ColliderCylinder's relative to the actor's position.
|
||||
void func_8097B450(DemoGj* this, PlayState* play) {
|
||||
|
@ -1223,7 +1230,9 @@ void DemoGj_Update16(DemoGj* this, PlayState* play) {
|
|||
// func_8097B894
|
||||
void DemoGj_Update19(DemoGj* this, PlayState* play) {
|
||||
func_8097B750(this, play);
|
||||
#if OOT_DEBUG
|
||||
DemoGj_DoNothing2(this, play);
|
||||
#endif
|
||||
}
|
||||
|
||||
void DemoGj_DemoGj_InitDestructableRubble2(DemoGj* this, PlayState* play) {
|
||||
|
@ -1236,8 +1245,10 @@ void DemoGj_InitDestructableRubbleTall(DemoGj* this, PlayState* play) {
|
|||
DemoGj_InitCylinder(this, play, &this->cylinders[0], &sCylinderInit3);
|
||||
}
|
||||
|
||||
#if OOT_DEBUG
|
||||
void DemoGj_DoNothing3(DemoGj* this, PlayState* play) {
|
||||
}
|
||||
#endif
|
||||
|
||||
void DemoGj_DirectedDoubleExplosion(DemoGj* this, PlayState* play, Vec3f* direction) {
|
||||
Vec3f pos;
|
||||
|
@ -1308,7 +1319,9 @@ void DemoGj_Update17(DemoGj* this, PlayState* play) {
|
|||
// func_8097BBA8
|
||||
void DemoGj_Update20(DemoGj* this, PlayState* play) {
|
||||
func_8097BA48(this, play);
|
||||
#if OOT_DEBUG
|
||||
DemoGj_DoNothing3(this, play);
|
||||
#endif
|
||||
}
|
||||
|
||||
void DemoGj_DemoGj_InitDestructableRubbleTall(DemoGj* this, PlayState* play) {
|
||||
|
|
|
@ -209,9 +209,12 @@ s32 func_8097CDB0(DemoGo* this, PlayState* play, u16 cueId) {
|
|||
CutsceneContext* csCtx = &play->csCtx;
|
||||
s32 cueChannel = DemoGo_GetCueChannel(this);
|
||||
|
||||
if ((csCtx->state != CS_STATE_IDLE) && (csCtx->actorCues[cueChannel] != NULL) &&
|
||||
(csCtx->actorCues[cueChannel]->id == cueId)) {
|
||||
return true;
|
||||
if (csCtx->state != CS_STATE_IDLE) {
|
||||
CsCmdActorCue* cue = csCtx->actorCues[cueChannel];
|
||||
|
||||
if (cue != NULL && cue->id == cueId) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
|
@ -341,13 +344,13 @@ void func_8097D29C(DemoGo* this, PlayState* play) {
|
|||
s16 eyeTexIdx = this->unk_190;
|
||||
SkelAnime* skelAnime = &this->skelAnime;
|
||||
void* eyeTexture = sEyeTextures[eyeTexIdx];
|
||||
void* mouthTexture = gGoronCsMouthSmileTex;
|
||||
s32 pad2;
|
||||
|
||||
OPEN_DISPS(play->state.gfxCtx, "../z_demo_go.c", 732);
|
||||
|
||||
Gfx_SetupDL_25Opa(play->state.gfxCtx);
|
||||
gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(eyeTexture));
|
||||
gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(mouthTexture));
|
||||
gSPSegment(POLY_OPA_DISP++, 0x09, SEGMENTED_TO_VIRTUAL(gGoronCsMouthSmileTex));
|
||||
|
||||
SkelAnime_DrawFlexOpa(play, skelAnime->skeleton, skelAnime->jointTable, skelAnime->dListCount, NULL, NULL, this);
|
||||
|
||||
|
|
|
@ -265,7 +265,6 @@ void func_8097E454(PlayState* play, Vec3f* spawnerPos, Vec3f* velocity, Vec3f* a
|
|||
s16 phi_s0;
|
||||
s16 dustScaleStep = 15.0f * scale;
|
||||
f32 dustScale = 300.0f * scale;
|
||||
Vec3f pos;
|
||||
|
||||
if ((!FrameAdvance_IsEnabled(play)) && (arg7 > 0) && (arg6 > 0)) {
|
||||
frames = (ABS((s32)play->gameplayFrames) % arg7);
|
||||
|
@ -273,6 +272,7 @@ void func_8097E454(PlayState* play, Vec3f* spawnerPos, Vec3f* velocity, Vec3f* a
|
|||
increment = 0x10000 / arg6;
|
||||
|
||||
for (i = frames; i < arg6; i += arg7) {
|
||||
Vec3f pos;
|
||||
|
||||
pos.x = (Math_SinS(phi_s0) * arg4) + spawnerPos->x;
|
||||
pos.y = spawnerPos->y;
|
||||
|
@ -437,7 +437,7 @@ void func_8097ED64(DemoGt* this, PlayState* play, s32 cueChannel) {
|
|||
}
|
||||
|
||||
u8 DemoGt_IsCutsceneLayer(void) {
|
||||
if (kREG(2) != 0) {
|
||||
if (OOT_DEBUG && (kREG(2) != 0)) {
|
||||
return true;
|
||||
} else if (!IS_CUTSCENE_LAYER) {
|
||||
return false;
|
||||
|
@ -503,7 +503,7 @@ void func_8097EF40(DemoGt* this, PlayState* play) {
|
|||
Vec3f* pos = &this->dyna.actor.world.pos;
|
||||
s32 pad;
|
||||
|
||||
if ((kREG(1) == 20) || (csCurFrame == 220)) {
|
||||
if ((OOT_DEBUG && (kREG(1) == 20)) || (csCurFrame == 220)) {
|
||||
dustPos.x = pos->x + 256.0f;
|
||||
dustPos.y = pos->y + 679.0f;
|
||||
dustPos.z = pos->z + 82.0f;
|
||||
|
@ -526,7 +526,12 @@ void func_8097F0AC(DemoGt* this, PlayState* play) {
|
|||
u16 csCurFrame = play->csCtx.curFrame;
|
||||
s32 pad2;
|
||||
|
||||
if ((csCurFrame == 140) || (kREG(1) == 19)) {
|
||||
#if OOT_DEBUG
|
||||
if (csCurFrame == 140 || kREG(1) == 19)
|
||||
#else
|
||||
if (csCurFrame == 140)
|
||||
#endif
|
||||
{
|
||||
sp38.x = this->dyna.actor.world.pos.x + 260.0f;
|
||||
sp38.y = this->dyna.actor.world.pos.y + 340.0f;
|
||||
sp38.z = this->dyna.actor.world.pos.z + 45.0f;
|
||||
|
@ -562,7 +567,6 @@ void func_8097F280(DemoGt* this, PlayState* play) {
|
|||
s32* unk178 = this->unk_178;
|
||||
s32* unk188 = this->unk_188;
|
||||
s32* unk198 = this->unk_198;
|
||||
f32 temp_f0;
|
||||
|
||||
if (play->csCtx.curFrame < 160) {
|
||||
unk178[0] = 100;
|
||||
|
@ -576,7 +580,7 @@ void func_8097F280(DemoGt* this, PlayState* play) {
|
|||
unk198[0]++;
|
||||
unk198[1]--;
|
||||
} else if (play->csCtx.curFrame < 170) {
|
||||
temp_f0 = Environment_LerpWeightAccelDecel(170, 160, play->csCtx.curFrame, 0, 0);
|
||||
f32 temp_f0 = Environment_LerpWeightAccelDecel(170, 160, play->csCtx.curFrame, 0, 0);
|
||||
|
||||
unk178[0] = (temp_f0 * -63.0f) + 163.0f;
|
||||
unk178[1] = (temp_f0 * -155.0f) + 255.0f;
|
||||
|
@ -700,13 +704,14 @@ void func_8097F960(DemoGt* this, PlayState* play) {
|
|||
}
|
||||
|
||||
void func_8097F96C(DemoGt* this, PlayState* play) {
|
||||
static Actor* cloudRing = NULL;
|
||||
s32 pad[4];
|
||||
Vec3f pos;
|
||||
Actor* actor;
|
||||
u16 csCurFrame = play->csCtx.curFrame;
|
||||
|
||||
if (((csCurFrame > 1059) && (csCurFrame < 1062)) || kREG(1) == 17) {
|
||||
if (((csCurFrame > 1059) && (csCurFrame < 1062)) || (OOT_DEBUG && (kREG(1) == 17))) {
|
||||
static Actor* cloudRing = NULL;
|
||||
|
||||
pos.x = this->dyna.actor.world.pos.x;
|
||||
pos.y = this->dyna.actor.world.pos.y + 612.0f;
|
||||
pos.z = this->dyna.actor.world.pos.z;
|
||||
|
@ -730,7 +735,7 @@ void func_8097FA1C(DemoGt* this, PlayState* play) {
|
|||
Vec3f velOffset = { -12.0f, -17.0, 5.0 };
|
||||
s32 pad1[3];
|
||||
|
||||
if (((csCurFrame > 502) && !(csCurFrame >= 581)) || (kREG(1) == 5)) {
|
||||
if (((csCurFrame > 502) && !(csCurFrame >= 581)) || (OOT_DEBUG && (kREG(1) == 5))) {
|
||||
dustPos.x = pos->x + 300.0f;
|
||||
dustPos.y = pos->y + 360.0f;
|
||||
dustPos.z = pos->z - 377.0f;
|
||||
|
@ -739,19 +744,20 @@ void func_8097FA1C(DemoGt* this, PlayState* play) {
|
|||
}
|
||||
|
||||
void func_8097FAFC(DemoGt* this, PlayState* play) {
|
||||
static Vec3f velocity = { 0.0f, 1.0f, 0.0f };
|
||||
static Vec3f accel = { 0.0f, 0.0f, 0.0f };
|
||||
static f32 arg4 = 280.0f;
|
||||
static f32 scale = 8.0f;
|
||||
static s32 arg6 = 11;
|
||||
static s32 arg7 = 1;
|
||||
static s16 life = 3;
|
||||
s32 pad[2];
|
||||
u16 csCurFrame = play->csCtx.curFrame;
|
||||
Vec3f pos;
|
||||
f32 new_var = -200.0;
|
||||
|
||||
if (((csCurFrame > 582) && (csCurFrame < 683)) || (kREG(1) == 6)) {
|
||||
if (((csCurFrame > 582) && (csCurFrame < 683)) || (OOT_DEBUG && (kREG(1) == 6))) {
|
||||
static Vec3f velocity = { 0.0f, 1.0f, 0.0f };
|
||||
static Vec3f accel = { 0.0f, 0.0f, 0.0f };
|
||||
static f32 arg4 = 280.0f;
|
||||
static f32 scale = 8.0f;
|
||||
static s32 arg6 = 11;
|
||||
static s32 arg7 = 1;
|
||||
static s16 life = 3;
|
||||
|
||||
pos = this->dyna.actor.world.pos;
|
||||
pos.y += 680.0f;
|
||||
|
||||
|
@ -773,7 +779,7 @@ void func_8097FC1C(DemoGt* this, PlayState* play) {
|
|||
Vec3f velOffset = { 5.0f, -16.0f, -16.0f };
|
||||
s32 pad1[3];
|
||||
|
||||
if (csCurFrame > 682 || kREG(1) == 7) {
|
||||
if (csCurFrame > 682 || (OOT_DEBUG && (kREG(1) == 7))) {
|
||||
dustPos.x = pos->x + 260.0f;
|
||||
dustPos.y = pos->y + 360.0f;
|
||||
dustPos.z = pos->z + 260.0f;
|
||||
|
@ -786,7 +792,12 @@ void func_8097FCE4(DemoGt* this, PlayState* play) {
|
|||
Vec3f vec;
|
||||
u16 csCurFrame = play->csCtx.curFrame;
|
||||
|
||||
if (csCurFrame == 503 || kREG(1) == 4) {
|
||||
#if OOT_DEBUG
|
||||
if (csCurFrame == 503 || kREG(1) == 4)
|
||||
#else
|
||||
if (csCurFrame == 503)
|
||||
#endif
|
||||
{
|
||||
vec.x = this->dyna.actor.world.pos.x + 300.0f;
|
||||
vec.y = this->dyna.actor.world.pos.y + 560.0f;
|
||||
vec.z = this->dyna.actor.world.pos.z - 377.0f;
|
||||
|
@ -881,12 +892,13 @@ void func_80980178(DemoGt* this, PlayState* play) {
|
|||
}
|
||||
|
||||
void func_80980184(DemoGt* this, PlayState* play) {
|
||||
static Actor* cloudRing = NULL;
|
||||
s32 pad[4];
|
||||
Vec3f pos;
|
||||
Actor* actor;
|
||||
|
||||
if ((play->csCtx.curFrame > 1027) && (play->csCtx.curFrame < 1031)) {
|
||||
static Actor* cloudRing = NULL;
|
||||
|
||||
pos.x = this->dyna.actor.world.pos.x;
|
||||
pos.y = this->dyna.actor.world.pos.y + 247.0f;
|
||||
pos.z = this->dyna.actor.world.pos.z;
|
||||
|
@ -903,12 +915,13 @@ void func_80980184(DemoGt* this, PlayState* play) {
|
|||
}
|
||||
|
||||
void func_80980218(DemoGt* this, PlayState* play) {
|
||||
static Actor* cloudRing = NULL;
|
||||
s32 pad[4];
|
||||
Vec3f pos;
|
||||
Actor* actor;
|
||||
|
||||
if ((play->csCtx.curFrame > 997) && (play->csCtx.curFrame < 1001)) {
|
||||
static Actor* cloudRing = NULL;
|
||||
|
||||
pos.x = this->dyna.actor.home.pos.x;
|
||||
pos.y = this->dyna.actor.home.pos.y + 38.0f;
|
||||
pos.z = this->dyna.actor.home.pos.z;
|
||||
|
@ -964,7 +977,7 @@ void func_80980430(DemoGt* this, PlayState* play) {
|
|||
Vec3f velOffset = { 5.0f, -3.0f, 0.0f };
|
||||
s32 pad1[3];
|
||||
|
||||
if (csCurFrame > 709 || kREG(1) == 8) {
|
||||
if (csCurFrame > 709 || (OOT_DEBUG && (kREG(1) == 8))) {
|
||||
dustPos.x = pos->x + 760.0f;
|
||||
dustPos.y = pos->y - 40.0f;
|
||||
dustPos.z = pos->z - 240.0f;
|
||||
|
@ -980,7 +993,7 @@ void func_80980504(DemoGt* this, PlayState* play) {
|
|||
Vec3f velOffset = { 5.0f, -16.0f, -16.0f };
|
||||
s32 pad1[3];
|
||||
|
||||
if ((csCurFrame > 704) || kREG(1) == 9) {
|
||||
if ((csCurFrame > 704) || (OOT_DEBUG && (kREG(1) == 9))) {
|
||||
dustPos.x = pos->x + 830.0f;
|
||||
dustPos.y = pos->y + 60.0f;
|
||||
dustPos.z = pos->z + 390.0f;
|
||||
|
@ -996,7 +1009,7 @@ void func_809805D8(DemoGt* this, PlayState* play) {
|
|||
Vec3f velOffset = { 15.0f, -26.0, 0.0f };
|
||||
s32 pad1[3];
|
||||
|
||||
if (((csCurFrame > 739) && (csCurFrame < 781)) || kREG(1) == 11) {
|
||||
if (((csCurFrame > 739) && (csCurFrame < 781)) || (OOT_DEBUG && (kREG(1) == 11))) {
|
||||
dustPos.x = homePos->x + 550.0f;
|
||||
dustPos.y = homePos->y - 110.0f;
|
||||
dustPos.z = homePos->z + 50.0f;
|
||||
|
@ -1012,7 +1025,7 @@ void func_809806B8(DemoGt* this, PlayState* play) {
|
|||
Vec3f velOffset = { 5.0f, -16.0f, -16.0f };
|
||||
s32 pad1[3];
|
||||
|
||||
if ((csCurFrame > 964) || (kREG(1) == 12)) {
|
||||
if ((csCurFrame > 964) || (OOT_DEBUG && (kREG(1) == 12))) {
|
||||
dustPos.x = pos->x + 460.0f;
|
||||
dustPos.y = pos->y + 60.0f;
|
||||
dustPos.z = pos->z + 760.0f;
|
||||
|
@ -1028,7 +1041,7 @@ void func_8098078C(DemoGt* this, PlayState* play) {
|
|||
Vec3f velOffset = { 5.0f, -16.0f, -16.0f };
|
||||
s32 pad1[3];
|
||||
|
||||
if ((csCurFrame > 939) || (kREG(1) == 14)) {
|
||||
if ((csCurFrame > 939) || (OOT_DEBUG && (kREG(1) == 14))) {
|
||||
dustPos.x = pos->x + 360.0f;
|
||||
dustPos.y = pos->y + 70.0f;
|
||||
dustPos.z = pos->z - 640.0f;
|
||||
|
@ -1042,7 +1055,7 @@ void func_8098085C(DemoGt* this, PlayState* play) {
|
|||
u16 csCurFrame = play->csCtx.curFrame;
|
||||
Vec3f* pos = &this->dyna.actor.world.pos;
|
||||
|
||||
if ((csCurFrame == 58) || (kREG(1) == 1)) {
|
||||
if ((csCurFrame == 58) || (OOT_DEBUG && (kREG(1) == 1))) {
|
||||
sp28.x = pos->x + 900.0f;
|
||||
sp28.y = pos->y - 50.0f;
|
||||
sp28.z = pos->z + 93.0f;
|
||||
|
@ -1068,7 +1081,7 @@ void func_809809C0(DemoGt* this, PlayState* play2) {
|
|||
Vec3f sp54;
|
||||
s16 pad[3];
|
||||
|
||||
if (((csCurFrame > 469) && (csCurFrame < 481)) || (kREG(1) == 3)) {
|
||||
if (((csCurFrame > 469) && (csCurFrame < 481)) || (OOT_DEBUG && (kREG(1) == 3))) {
|
||||
Vec3f sp40 = { 20.0f, 6.0f, 0.0f };
|
||||
Vec3f sp34 = { 0.0f, 0.0f, 0.0f };
|
||||
s16 pad2[3];
|
||||
|
@ -1088,7 +1101,7 @@ void func_80980AD4(DemoGt* this, PlayState* play) {
|
|||
Vec3f pos;
|
||||
u16 csCurFrame = play->csCtx.curFrame;
|
||||
|
||||
if ((csCurFrame == 477) || (kREG(2) == 1)) {
|
||||
if ((csCurFrame == 477) || (OOT_DEBUG && (kREG(2) == 1))) {
|
||||
pos.x = this->dyna.actor.world.pos.x + 790.0f;
|
||||
pos.y = this->dyna.actor.world.pos.y + 60.0f;
|
||||
pos.z = this->dyna.actor.world.pos.z + 23.0f;
|
||||
|
@ -1103,7 +1116,7 @@ void func_80980B68(DemoGt* this, PlayState* play) {
|
|||
Vec3f pos;
|
||||
u16 csCurFrame = play->csCtx.curFrame;
|
||||
|
||||
if ((csCurFrame == 317) || (kREG(3) == 1)) {
|
||||
if ((csCurFrame == 317) || (OOT_DEBUG && (kREG(3) == 1))) {
|
||||
pos.x = this->dyna.actor.world.pos.x + 980.0f;
|
||||
pos.y = this->dyna.actor.world.pos.y + 410.0f;
|
||||
pos.z = this->dyna.actor.world.pos.z - 177.0f;
|
||||
|
@ -1117,7 +1130,7 @@ void func_80980BFC(DemoGt* this, PlayState* play) {
|
|||
Vec3f pos;
|
||||
u16 csCurFrame = play->csCtx.curFrame;
|
||||
|
||||
if ((csCurFrame == 740) || (kREG(4) == 1)) {
|
||||
if ((csCurFrame == 740) || (OOT_DEBUG && (kREG(4) == 1))) {
|
||||
pos.x = this->dyna.actor.world.pos.x + 790.0f;
|
||||
pos.y = this->dyna.actor.world.pos.y + 60.0f;
|
||||
pos.z = this->dyna.actor.world.pos.z + 23.0f;
|
||||
|
@ -1322,7 +1335,7 @@ void func_80981458(DemoGt* this, PlayState* play) {
|
|||
Vec3f dustPos;
|
||||
u16 csCurFrame = play->csCtx.curFrame;
|
||||
|
||||
if (((csCurFrame > 855) && (csCurFrame < 891)) || (kREG(1) == 13)) {
|
||||
if (((csCurFrame > 855) && (csCurFrame < 891)) || (OOT_DEBUG && (kREG(1) == 13))) {
|
||||
Vec3f velOffset = { 0.0f, -30.0f, 0.0f };
|
||||
s32 pad1[3];
|
||||
|
||||
|
|
|
@ -36,8 +36,11 @@ s32 DemoIk_UpdateSkelAnime(DemoIk* this) {
|
|||
|
||||
CsCmdActorCue* DemoIk_GetCue(PlayState* play, s32 cueChannel) {
|
||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||
return play->csCtx.actorCues[cueChannel];
|
||||
CsCmdActorCue* cue = play->csCtx.actorCues[cueChannel];
|
||||
|
||||
return cue;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -256,8 +259,8 @@ void DemoIk_Type1Action2(DemoIk* this, PlayState* play) {
|
|||
}
|
||||
|
||||
void DemoIk_Type1PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) {
|
||||
DemoIk* this = (DemoIk*)thisx;
|
||||
GraphicsContext* gfxCtx = play->state.gfxCtx;
|
||||
DemoIk* this = (DemoIk*)thisx;
|
||||
|
||||
OPEN_DISPS(gfxCtx, "../z_demo_ik_inArmer.c", 385);
|
||||
if (limbIndex == 1) {
|
||||
|
|
|
@ -118,6 +118,7 @@ void func_80984BE0(DemoIm* this) {
|
|||
}
|
||||
}
|
||||
|
||||
#if OOT_DEBUG
|
||||
void func_80984C68(DemoIm* this) {
|
||||
this->action = 7;
|
||||
this->drawConfig = 0;
|
||||
|
@ -143,6 +144,7 @@ void func_80984C8C(DemoIm* this, PlayState* play) {
|
|||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
void DemoIm_InitCollider(Actor* thisx, PlayState* play) {
|
||||
DemoIm* this = (DemoIm*)thisx;
|
||||
|
@ -497,7 +499,9 @@ void func_80985B34(DemoIm* this, PlayState* play) {
|
|||
|
||||
void func_80985C10(DemoIm* this, PlayState* play) {
|
||||
func_80985948(this, play);
|
||||
#if OOT_DEBUG
|
||||
func_80984C8C(this, play);
|
||||
#endif
|
||||
}
|
||||
|
||||
void func_80985C40(DemoIm* this, PlayState* play) {
|
||||
|
@ -505,7 +509,9 @@ void func_80985C40(DemoIm* this, PlayState* play) {
|
|||
DemoIm_UpdateSkelAnime(this);
|
||||
func_80984BE0(this);
|
||||
func_809859E0(this, play);
|
||||
#if OOT_DEBUG
|
||||
func_80984C8C(this, play);
|
||||
#endif
|
||||
}
|
||||
|
||||
void func_80985C94(DemoIm* this, PlayState* play) {
|
||||
|
@ -513,7 +519,9 @@ void func_80985C94(DemoIm* this, PlayState* play) {
|
|||
DemoIm_UpdateSkelAnime(this);
|
||||
func_80984BE0(this);
|
||||
func_80985B34(this, play);
|
||||
#if OOT_DEBUG
|
||||
func_80984C8C(this, play);
|
||||
#endif
|
||||
}
|
||||
|
||||
void DemoIm_DrawTranslucent(DemoIm* this, PlayState* play) {
|
||||
|
@ -899,6 +907,8 @@ void func_80986BF8(DemoIm* this, PlayState* play) {
|
|||
|
||||
void func_80986C30(DemoIm* this, PlayState* play) {
|
||||
if (func_80986A5C(this, play)) {
|
||||
s32 pad;
|
||||
|
||||
play->csCtx.script = SEGMENTED_TO_VIRTUAL(gZeldasCourtyardLullabyCs);
|
||||
gSaveContext.cutsceneTrigger = 1;
|
||||
SET_EVENTCHKINF(EVENTCHKINF_59);
|
||||
|
@ -924,10 +934,15 @@ void func_80986CFC(DemoIm* this, PlayState* play) {
|
|||
}
|
||||
|
||||
void func_80986D40(DemoIm* this, PlayState* play) {
|
||||
#if OOT_DEBUG
|
||||
if (gSaveContext.sceneLayer == 6) {
|
||||
this->action = 19;
|
||||
this->drawConfig = 1;
|
||||
} else if (GET_EVENTCHKINF(EVENTCHKINF_80)) {
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (GET_EVENTCHKINF(EVENTCHKINF_80)) {
|
||||
Actor_Kill(&this->actor);
|
||||
} else if (!GET_EVENTCHKINF(EVENTCHKINF_59)) {
|
||||
this->action = 23;
|
||||
|
|
|
@ -277,7 +277,6 @@ void DemoKankyo_Destroy(Actor* thisx, PlayState* play) {
|
|||
|
||||
void DemoKankyo_SetupType(DemoKankyo* this, PlayState* play) {
|
||||
Player* player = GET_PLAYER(play);
|
||||
f32 temp;
|
||||
|
||||
if (this->actor.objectSlot == this->requiredObjectSlot) {
|
||||
switch (this->actor.params) {
|
||||
|
@ -302,12 +301,14 @@ void DemoKankyo_SetupType(DemoKankyo* this, PlayState* play) {
|
|||
play->envCtx.screenFillColor[2] = 0xFF;
|
||||
play->envCtx.fillScreen = false;
|
||||
if (this->warpTimer < 21 && this->warpTimer >= 15) {
|
||||
temp = (this->warpTimer - 15.0f) / 5.0f;
|
||||
f32 temp = (this->warpTimer - 15.0f) / 5.0f;
|
||||
|
||||
play->envCtx.fillScreen = true;
|
||||
play->envCtx.screenFillColor[3] = 255 - 255 * temp;
|
||||
}
|
||||
if (this->warpTimer < 15 && this->warpTimer >= 4) {
|
||||
temp = (this->warpTimer - 4.0f) / 10.0f;
|
||||
f32 temp = (this->warpTimer - 4.0f) / 10.0f;
|
||||
|
||||
play->envCtx.fillScreen = true;
|
||||
play->envCtx.screenFillColor[3] = 255 * temp;
|
||||
}
|
||||
|
|
|
@ -127,6 +127,7 @@ void DemoSa_SetMouthIndex(DemoSa* this, s16 mouthIndex) {
|
|||
this->mouthIndex = mouthIndex;
|
||||
}
|
||||
|
||||
#if OOT_DEBUG
|
||||
void func_8098E530(DemoSa* this) {
|
||||
this->action = 7;
|
||||
this->drawConfig = 0;
|
||||
|
@ -150,6 +151,7 @@ void func_8098E554(DemoSa* this, PlayState* play) {
|
|||
*something = 1;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
void func_8098E5C8(DemoSa* this, PlayState* play) {
|
||||
Actor_UpdateBgCheckInfo(play, &this->actor, 75.0f, 30.0f, 30.0f, UPDBGCHECKINFO_FLAG_0 | UPDBGCHECKINFO_FLAG_2);
|
||||
|
@ -161,7 +163,9 @@ s32 DemoSa_UpdateSkelAnime(DemoSa* this) {
|
|||
|
||||
CsCmdActorCue* DemoSa_GetCue(PlayState* play, s32 cueChannel) {
|
||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||
return play->csCtx.actorCues[cueChannel];
|
||||
CsCmdActorCue* cue = play->csCtx.actorCues[cueChannel];
|
||||
|
||||
return cue;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
|
@ -439,7 +443,9 @@ void func_8098F050(DemoSa* this, PlayState* play) {
|
|||
|
||||
void func_8098F0E8(DemoSa* this, PlayState* play) {
|
||||
func_8098EEA8(this, play);
|
||||
#if OOT_DEBUG
|
||||
func_8098E554(this, play);
|
||||
#endif
|
||||
}
|
||||
|
||||
void func_8098F118(DemoSa* this, PlayState* play) {
|
||||
|
@ -447,7 +453,9 @@ void func_8098F118(DemoSa* this, PlayState* play) {
|
|||
DemoSa_UpdateSkelAnime(this);
|
||||
func_8098E480(this);
|
||||
func_8098EEFC(this, play);
|
||||
#if OOT_DEBUG
|
||||
func_8098E554(this, play);
|
||||
#endif
|
||||
}
|
||||
|
||||
void func_8098F16C(DemoSa* this, PlayState* play) {
|
||||
|
@ -455,7 +463,9 @@ void func_8098F16C(DemoSa* this, PlayState* play) {
|
|||
DemoSa_UpdateSkelAnime(this);
|
||||
func_8098EDB0(this);
|
||||
func_8098F050(this, play);
|
||||
#if OOT_DEBUG
|
||||
func_8098E554(this, play);
|
||||
#endif
|
||||
}
|
||||
|
||||
void DemoSa_DrawXlu(DemoSa* this, PlayState* play) {
|
||||
|
|
|
@ -58,12 +58,10 @@ void func_80991298(DemoShd* this, PlayState* play) {
|
|||
}
|
||||
|
||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||
CsCmdActorCue* cue = play->csCtx.actorCues[0];
|
||||
|
||||
if (cue != NULL) {
|
||||
if (cue->id == 2) {
|
||||
if (play->csCtx.actorCues[0] != NULL) {
|
||||
if (play->csCtx.actorCues[0]->id == 2) {
|
||||
if (!(this->unk_14C & 1)) {
|
||||
this->unk_14E = cue->startPos.x;
|
||||
this->unk_14E = play->csCtx.actorCues[0]->startPos.x;
|
||||
}
|
||||
this->unk_14C |= 1;
|
||||
} else {
|
||||
|
@ -73,12 +71,10 @@ void func_80991298(DemoShd* this, PlayState* play) {
|
|||
}
|
||||
|
||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||
CsCmdActorCue* cue = play->csCtx.actorCues[1];
|
||||
|
||||
if (cue != NULL) {
|
||||
if (cue->id == 2) {
|
||||
if (play->csCtx.actorCues[1] != NULL) {
|
||||
if (play->csCtx.actorCues[1]->id == 2) {
|
||||
if (!(this->unk_14C & 2)) {
|
||||
this->unk_14E = cue->startPos.x;
|
||||
this->unk_14E = play->csCtx.actorCues[1]->startPos.x;
|
||||
}
|
||||
this->unk_14C |= 2;
|
||||
} else {
|
||||
|
@ -101,8 +97,6 @@ void DemoShd_Draw(Actor* thisx, PlayState* play) {
|
|||
s32 pad;
|
||||
u32 unk_14E = this->unk_14E;
|
||||
|
||||
if (1) {} // Necessary to match, can be anywhere in the function
|
||||
|
||||
OPEN_DISPS(play->state.gfxCtx, "../z_demo_shd.c", 726);
|
||||
|
||||
Gfx_SetupDL_25Xlu(play->state.gfxCtx);
|
||||
|
@ -123,5 +117,7 @@ void DemoShd_Draw(Actor* thisx, PlayState* play) {
|
|||
gSPDisplayList(POLY_XLU_DISP++, D_809934B8);
|
||||
}
|
||||
|
||||
if (1) {} // Necessary to match
|
||||
|
||||
CLOSE_DISPS(play->state.gfxCtx, "../z_demo_shd.c", 762);
|
||||
}
|
||||
|
|
|
@ -1120,10 +1120,12 @@ s32 EnIk_UpdateSkelAnime(EnIk* this) {
|
|||
|
||||
CsCmdActorCue* EnIk_GetCue(PlayState* play, s32 cueChannel) {
|
||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||
return play->csCtx.actorCues[cueChannel];
|
||||
} else {
|
||||
return NULL;
|
||||
CsCmdActorCue* cue = play->csCtx.actorCues[cueChannel];
|
||||
|
||||
return cue;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void EnIk_SetStartPosRotFromCue(EnIk* this, PlayState* play, s32 cueChannel) {
|
||||
|
|
|
@ -231,7 +231,9 @@ s32 EnNb_UpdateSkelAnime(EnNb* this) {
|
|||
|
||||
CsCmdActorCue* EnNb_GetCue(PlayState* play, s32 cueChannel) {
|
||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||
return play->csCtx.actorCues[cueChannel];
|
||||
CsCmdActorCue* cue = play->csCtx.actorCues[cueChannel];
|
||||
|
||||
return cue;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
|
|
|
@ -175,8 +175,11 @@ s32 EnRu2_UpdateSkelAnime(EnRu2* this) {
|
|||
|
||||
CsCmdActorCue* EnRu2_GetCue(PlayState* play, s32 cueChannel) {
|
||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||
return play->csCtx.actorCues[cueChannel];
|
||||
CsCmdActorCue* cue = play->csCtx.actorCues[cueChannel];
|
||||
|
||||
return cue;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
|
@ -212,8 +212,11 @@ s32 EnZl2_UpdateSkelAnime(EnZl2* this) {
|
|||
|
||||
CsCmdActorCue* EnZl2_GetCue(PlayState* play, s32 cueChannel) {
|
||||
if (play->csCtx.state != CS_STATE_IDLE) {
|
||||
return play->csCtx.actorCues[cueChannel];
|
||||
CsCmdActorCue* cue = play->csCtx.actorCues[cueChannel];
|
||||
|
||||
return cue;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue