diff --git a/src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c b/src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c index 211073b1ac..1eb3ed46c6 100644 --- a/src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c +++ b/src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c @@ -136,92 +136,92 @@ void BgGanonOtyuka_Destroy(Actor* thisx, GlobalContext* globalCtx) { #ifdef NON_MATCHING void BgGanonOtyuka_Draw(Actor* thisx, GlobalContext* globalCtx) { BgGanonOtyuka* this = THIS; - Camera* camera = Gameplay_GetCamera(globalCtx, 0); - f32 spBC = -30.0f; - Actor* boss; - Actor* prop; + s16 i; Gfx* phi_s2; Gfx* phi_s1; - s16 i; + Camera* camera = Gameplay_GetCamera(globalCtx, 0); + Actor* actor; + BgGanonOtyuka* otyuka; + BossGanon* ganon; + f32 spBC = -30.0f; OPEN_DISPS(globalCtx->state.gfxCtx, "../z_bg_ganon_otyuka.c", 702); - boss = globalCtx->actorCtx.actorList[ACTORTYPE_BOSS].first; - if (boss != NULL) { - while (boss->next != NULL) { - if ((boss->id == ACTOR_BOSS_GANON) && (boss->params == 0)) { - BossGanon* ganon = (BossGanon*)boss; - if (ganon->unk_198 != 0) { - spBC = -2000.0f; - } + actor = globalCtx->actorCtx.actorList[ACTORTYPE_BOSS].first; + while (actor != NULL) { + if ((actor->id == ACTOR_BOSS_GANON) && (actor->params == 0)) { + ganon = (BossGanon*)actor; - break; - } else { - boss = boss->next; + if (ganon->unk_198 != 0) { + spBC = -2000.0f; } + + break; + } else { + actor = actor->next; } } + func_80093D18(globalCtx->state.gfxCtx); gSPDisplayList(POLY_OPA_DISP++, D_80877328); - prop = globalCtx->actorCtx.actorList[ACTORTYPE_PROP].first; - if (prop != NULL) { - while (prop->next != NULL) { - if ((prop->id == ACTOR_BG_GANON_OTYUKA) && (prop->projectedPos.z > spBC)) { - BgGanonOtyuka* otyuka = (BgGanonOtyuka*)prop; - phi_s2 = D_80877408; - if (camera->eye.y > prop->posRot.pos.y) { - phi_s2 = D_808773B0; - } - Matrix_Translate(prop->posRot.pos.x, prop->posRot.pos.y, prop->posRot.pos.z, MTXMODE_NEW); - phi_s1 = NULL; - if (otyuka->unk_16A != 0) { - Matrix_RotateX((prop->shape.rot.x / 32768.0f) * M_PI, MTXMODE_APPLY); - Matrix_RotateZ((prop->shape.rot.z / 32768.0f) * M_PI, MTXMODE_APPLY); - phi_s1 = D_808773B0; - if (camera->eye.y > prop->posRot.pos.y) { - phi_s1 = D_80877408; - } - } - gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_ganon_otyuka.c", 766), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_OPA_DISP++, phi_s2); + actor = globalCtx->actorCtx.actorList[ACTORTYPE_PROP].first; + while (actor != NULL) { + if ((actor->id == ACTOR_BG_GANON_OTYUKA) && (actor->projectedPos.z > spBC)) { + otyuka = (BgGanonOtyuka*)actor; - if (phi_s1 != NULL) { - gSPDisplayList(POLY_OPA_DISP++, phi_s1); - } - - for (i = 0; i < ARRAY_COUNT(D_80876A64); i++) { - if ((D_80876A64[i] & otyuka->unk_16C) != 0) { - Matrix_Push(); - Matrix_Translate(D_80876AA0[i].x, 0.0f, D_80876AA0[i].z, MTXMODE_APPLY); - Matrix_RotateY(D_80876AD0[i], MTXMODE_APPLY); - gSPMatrix(POLY_OPA_DISP++, - Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_ganon_otyuka.c", 785), - G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_OPA_DISP++, D_80877460); - Matrix_Pull(); - } - } - } else { - prop = prop->next; + phi_s2 = D_80877408; + if (camera->eye.y > actor->posRot.pos.y) { + phi_s2 = D_808773B0; } + Matrix_Translate(actor->posRot.pos.x, actor->posRot.pos.y, actor->posRot.pos.z, MTXMODE_NEW); + phi_s1 = NULL; + if (otyuka->unk_16A != 0) { + Matrix_RotateX((actor->shape.rot.x / 32768.0f) * M_PI, MTXMODE_APPLY); + Matrix_RotateZ((actor->shape.rot.z / 32768.0f) * M_PI, MTXMODE_APPLY); + phi_s1 = D_808773B0; + if (camera->eye.y > actor->posRot.pos.y) { + phi_s1 = D_80877408; + } + } + gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_ganon_otyuka.c", 766), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, phi_s2); + + if (phi_s1 != NULL) { + gSPDisplayList(POLY_OPA_DISP++, phi_s1); + } + + for (i = 0; i < ARRAY_COUNT(D_80876A64); i++) { + if ((D_80876A64[i] & otyuka->unk_16C) != 0) { + Matrix_Push(); + Matrix_Translate(D_80876AA0[i].x, 0.0f, D_80876AA0[i].z, MTXMODE_APPLY); + Matrix_RotateY(D_80876AD0[i], MTXMODE_APPLY); + gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_ganon_otyuka.c", 785), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, D_80877460); + Matrix_Pull(); + } + } + } else { + actor = actor->next; } } - func_80093D84(globalCtx->state.gfxCtx); - prop = globalCtx->actorCtx.actorList[ACTORTYPE_PROP].first; - if (prop != NULL) { - BgGanonOtyuka* otyuka = (BgGanonOtyuka*)prop; - while (prop->next != NULL) { - if ((prop->id == ACTOR_BG_GANON_OTYUKA) && (prop->projectedPos.z > -30.0f) && (otyuka->unk_16E != 0)) { + func_80093D84(globalCtx->state.gfxCtx); + actor = globalCtx->actorCtx.actorList[ACTORTYPE_PROP].first; + if (actor != NULL) { + otyuka = (BgGanonOtyuka*)actor; + + while (actor->next != NULL) { + if ((actor->id == ACTOR_BG_GANON_OTYUKA) && (actor->projectedPos.z > -30.0f) && (otyuka->unk_16E != 0)) { gSPSegment(POLY_XLU_DISP++, 0x08, Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, otyuka->unk_16D * 4, 0, 32, 64, 1, otyuka->unk_16D * 4, 0, 32, 64)); gDPPipeSync(POLY_XLU_DISP++); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, otyuka->primR, otyuka->primG, otyuka->primB, 0); gDPSetEnvColor(POLY_XLU_DISP++, otyuka->envR, otyuka->envG, otyuka->envB, 128); - Matrix_Translate(prop->posRot.pos.x, 0.0f, prop->posRot.pos.z, MTXMODE_NEW); + Matrix_Translate(actor->posRot.pos.x, 0.0f, actor->posRot.pos.z, MTXMODE_NEW); for (i = 0; i < ARRAY_COUNT(D_80876A64); i++) { if ((D_80876A64[i] & otyuka->unk_16B) != 0) { @@ -238,10 +238,11 @@ void BgGanonOtyuka_Draw(Actor* thisx, GlobalContext* globalCtx) { } break; } else { - prop = prop->next; + actor = actor->next; } } } + CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_ganon_otyuka.c", 857); } #else