1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-12-27 23:36:22 +00:00

Improve Matches: Part 3 (#1544)

* improve matchings

* spacing
This commit is contained in:
engineer124 2023-09-21 02:41:47 +10:00 committed by GitHub
parent 72334df180
commit d7f6961918
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 234 additions and 221 deletions

View file

@ -852,7 +852,7 @@ void EnRr_Draw(Actor* thisx, PlayState* play) {
Mtx* segMtx = Graph_Alloc(play->state.gfxCtx, 4 * sizeof(Mtx)); Mtx* segMtx = Graph_Alloc(play->state.gfxCtx, 4 * sizeof(Mtx));
OPEN_DISPS(play->state.gfxCtx, "../z_en_rr.c", 1478); OPEN_DISPS(play->state.gfxCtx, "../z_en_rr.c", 1478);
if (1) {}
Gfx_SetupDL_25Xlu(play->state.gfxCtx); Gfx_SetupDL_25Xlu(play->state.gfxCtx);
gSPSegment(POLY_XLU_DISP++, 0x0C, segMtx); gSPSegment(POLY_XLU_DISP++, 0x0C, segMtx);
gSPSegment(POLY_XLU_DISP++, 0x08, gSPSegment(POLY_XLU_DISP++, 0x08,
@ -867,9 +867,11 @@ void EnRr_Draw(Actor* thisx, PlayState* play) {
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_en_rr.c", 1501), gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_en_rr.c", 1501),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
Matrix_Pop(); Matrix_Pop();
zeroVec.x = 0.0f; zeroVec.x = 0.0f;
zeroVec.y = 0.0f; zeroVec.y = 0.0f;
zeroVec.z = 0.0f; zeroVec.z = 0.0f;
for (i = 1; i < 5; i++) { for (i = 1; i < 5; i++) {
Matrix_Translate(0.0f, this->bodySegs[i].height + 1000.0f, 0.0f, MTXMODE_APPLY); Matrix_Translate(0.0f, this->bodySegs[i].height + 1000.0f, 0.0f, MTXMODE_APPLY);
@ -883,28 +885,34 @@ void EnRr_Draw(Actor* thisx, PlayState* play) {
segMtx++; segMtx++;
Matrix_MultVec3f(&zeroVec, &this->effectPos[i]); Matrix_MultVec3f(&zeroVec, &this->effectPos[i]);
} }
this->effectPos[0] = this->actor.world.pos; this->effectPos[0] = this->actor.world.pos;
Matrix_MultVec3f(&zeroVec, &this->mouthPos); Matrix_MultVec3f(&zeroVec, &this->mouthPos);
gSPDisplayList(POLY_XLU_DISP++, gLikeLikeDL); gSPDisplayList(POLY_XLU_DISP++, gLikeLikeDL);
CLOSE_DISPS(play->state.gfxCtx, "../z_en_rr.c", 1551); CLOSE_DISPS(play->state.gfxCtx, "../z_en_rr.c", 1551);
if (this->effectTimer != 0) { if (this->effectTimer != 0) {
Vec3f effectPos; Vec3f effectPos;
s16 effectTimer = this->effectTimer - 1; s16 effectTimer = this->effectTimer - 1;
s32 segIndex;
s32 offIndex;
this->actor.colorFilterTimer++; this->actor.colorFilterTimer++;
if ((effectTimer & 1) == 0) { if ((effectTimer & 1) != 0) {
s32 segIndex = 4 - (effectTimer >> 2); return;
s32 offIndex = (effectTimer >> 1) & 3; }
effectPos.x = this->effectPos[segIndex].x + sEffectOffsets[offIndex].x + Rand_CenteredFloat(10.0f); segIndex = 4 - (effectTimer >> 2);
effectPos.y = this->effectPos[segIndex].y + sEffectOffsets[offIndex].y + Rand_CenteredFloat(10.0f); offIndex = (effectTimer >> 1) & 3;
effectPos.z = this->effectPos[segIndex].z + sEffectOffsets[offIndex].z + Rand_CenteredFloat(10.0f);
if (this->actor.colorFilterParams & 0x4000) { effectPos.x = this->effectPos[segIndex].x + sEffectOffsets[offIndex].x + Rand_CenteredFloat(10.0f);
EffectSsEnFire_SpawnVec3f(play, &this->actor, &effectPos, 100, 0, 0, -1); effectPos.y = this->effectPos[segIndex].y + sEffectOffsets[offIndex].y + Rand_CenteredFloat(10.0f);
} else { effectPos.z = this->effectPos[segIndex].z + sEffectOffsets[offIndex].z + Rand_CenteredFloat(10.0f);
EffectSsEnIce_SpawnFlyingVec3f(play, &this->actor, &effectPos, 150, 150, 150, 250, 235, 245, 255, 3.0f); if (this->actor.colorFilterParams & 0x4000) {
} EffectSsEnFire_SpawnVec3f(play, &this->actor, &effectPos, 100, 0, 0, -1);
} else {
EffectSsEnIce_SpawnFlyingVec3f(play, &this->actor, &effectPos, 150, 150, 150, 250, 235, 245, 255, 3.0f);
} }
} }
} }

View file

@ -290,7 +290,6 @@ void func_80AF95C4(EnSda* this, u8* shadowTexture, Player* player, PlayState* pl
Matrix_RotateX(BINANG_TO_RAD_ALT(sp178.x), MTXMODE_APPLY); Matrix_RotateX(BINANG_TO_RAD_ALT(sp178.x), MTXMODE_APPLY);
for (i = 0; i < 22; i++) { for (i = 0; i < 22; i++) {
Matrix_MultVec3f(&D_80AFA180[i], &sp188); Matrix_MultVec3f(&D_80AFA180[i], &sp188);
if (1) {}
sp64[i].x = (((KREG(82) / 100.0f) + 4.0f) * sp188.x) + sp16C.x; sp64[i].x = (((KREG(82) / 100.0f) + 4.0f) * sp188.x) + sp16C.x;
sp64[i].y = (((KREG(82) / 100.0f) + 4.0f) * sp188.y) + sp16C.y; sp64[i].y = (((KREG(82) / 100.0f) + 4.0f) * sp188.y) + sp16C.y;
sp64[i].z = (((KREG(82) / 100.0f) + 4.0f) * sp188.z) + sp16C.z; sp64[i].z = (((KREG(82) / 100.0f) + 4.0f) * sp188.z) + sp16C.z;
@ -306,7 +305,7 @@ void func_80AF95C4(EnSda* this, u8* shadowTexture, Player* player, PlayState* pl
temp_t0 = sp188.x + 32.0f; temp_t0 = sp188.x + 32.0f;
temp_t1 = (s16)sp188.y << 6; temp_t1 = (s16)sp188.y << 6;
do { for (j = 0; j < 6; j++) {
for (j = 0, phi_a3 = -0xC0; j < 7; j++, phi_a3 += 0x40) { for (j = 0, phi_a3 = -0xC0; j < 7; j++, phi_a3 += 0x40) {
for (phi_a0 = -D_80AFA0E8[j]; phi_a0 < D_80AFA0E8[j] - 1; phi_a0++) { for (phi_a0 = -D_80AFA0E8[j]; phi_a0 < D_80AFA0E8[j] - 1; phi_a0++) {
temp_v0 = temp_t0 + phi_a0; temp_v0 = temp_t0 + phi_a0;
@ -318,8 +317,7 @@ void func_80AF95C4(EnSda* this, u8* shadowTexture, Player* player, PlayState* pl
} }
} }
} }
j++; }
} while (j < 6);
} }
} }
if (BREG(61) == 1) { if (BREG(61) == 1) {

View file

@ -300,30 +300,33 @@ void EnShopnuts_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s*
f32 y; f32 y;
f32 z; f32 z;
if ((limbIndex == BUSINESS_SCRUB_LIMB_NOSE) && (this->actionFunc == EnShopnuts_ThrowNut)) { if ((limbIndex != BUSINESS_SCRUB_LIMB_NOSE) || (this->actionFunc != EnShopnuts_ThrowNut)) {
OPEN_DISPS(play->state.gfxCtx, "../z_en_shopnuts.c", 682); return;
curFrame = this->skelAnime.curFrame;
if (curFrame <= 6.0f) {
y = 1.0f - (curFrame * 0.0833f);
x = z = (curFrame * 0.1167f) + 1.0f;
} else if (curFrame <= 7.0f) {
curFrame -= 6.0f;
y = 0.5f + curFrame;
x = z = 1.7f - (curFrame * 0.7f);
} else if (curFrame <= 10.0f) {
y = 1.5f - ((curFrame - 7.0f) * 0.1667f);
x = z = 1.0f;
} else {
x = y = z = 1.0f;
}
Matrix_Scale(x, y, z, MTXMODE_APPLY);
if (1) {}
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_en_shopnuts.c", 714),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_OPA_DISP++, gBusinessScrubNoseDL);
CLOSE_DISPS(play->state.gfxCtx, "../z_en_shopnuts.c", 717);
} }
OPEN_DISPS(play->state.gfxCtx, "../z_en_shopnuts.c", 682);
curFrame = this->skelAnime.curFrame;
if (curFrame <= 6.0f) {
y = 1.0f - (curFrame * 0.0833f);
x = z = (curFrame * 0.1167f) + 1.0f;
} else if (curFrame <= 7.0f) {
curFrame -= 6.0f;
y = 0.5f + curFrame;
x = z = 1.7f - (curFrame * 0.7f);
} else if (curFrame <= 10.0f) {
y = 1.5f - ((curFrame - 7.0f) * 0.1667f);
x = z = 1.0f;
} else {
x = y = z = 1.0f;
}
Matrix_Scale(x, y, z, MTXMODE_APPLY);
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_en_shopnuts.c", 714),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_OPA_DISP++, gBusinessScrubNoseDL);
CLOSE_DISPS(play->state.gfxCtx, "../z_en_shopnuts.c", 717);
} }
void EnShopnuts_Draw(Actor* thisx, PlayState* play) { void EnShopnuts_Draw(Actor* thisx, PlayState* play) {

View file

@ -182,7 +182,6 @@ s32 func_80B0C0CC(EnSw* this, PlayState* play, s32 arg2) {
if (phi_s1 == 0) { if (phi_s1 == 0) {
sp78.x = sp84.x - (this->unk_37C.x * 24.0f); sp78.x = sp84.x - (this->unk_37C.x * 24.0f);
sp78.y = sp84.y - (this->unk_37C.y * 24.0f); sp78.y = sp84.y - (this->unk_37C.y * 24.0f);
if (0) {}
sp78.z = sp84.z - (this->unk_37C.z * 24.0f); sp78.z = sp84.z - (this->unk_37C.z * 24.0f);
} else if (phi_s1 == 1) { } else if (phi_s1 == 1) {
sp78.x = sp84.x + (this->unk_370.x * 24.0f); sp78.x = sp84.x + (this->unk_370.x * 24.0f);
@ -194,15 +193,17 @@ s32 func_80B0C0CC(EnSw* this, PlayState* play, s32 arg2) {
sp78.z = sp84.z - (this->unk_370.z * 24.0f); sp78.z = sp84.z - (this->unk_370.z * 24.0f);
} }
temp_v0_2 = func_80B0C020(play, &sp84, &sp78, &sp9C, &sp6C); temp_v0_2 = func_80B0C020(play, &sp84, &sp78, &sp9C, &sp6C);
if (temp_v0_2 != NULL) { if (temp_v0_2 == NULL) {
if (arg2 == 1) { continue;
func_80B0BE20(this, temp_v0_2);
this->actor.world.pos = sp9C;
this->actor.floorBgId = sp6C;
}
sp64 = 1;
break;
} }
if (arg2 == 1) {
func_80B0BE20(this, temp_v0_2);
this->actor.world.pos = sp9C;
this->actor.floorBgId = sp6C;
}
sp64 = 1;
break;
} }
} }

View file

@ -287,33 +287,35 @@ void EnSyatekiMan_WaitForGame(EnSyatekiMan* this, PlayState* play) {
EnSyatekiItm* gallery; EnSyatekiItm* gallery;
SkelAnime_Update(&this->skelAnime); SkelAnime_Update(&this->skelAnime);
if (1) {}
gallery = ((EnSyatekiItm*)this->actor.parent); gallery = ((EnSyatekiItm*)this->actor.parent);
if ((gallery->actor.update != NULL) && (gallery->signal == ENSYATEKI_END)) { if ((gallery->actor.update == NULL) || (gallery->signal != ENSYATEKI_END)) {
this->subCamId = OnePointCutscene_Init(play, 8002, -99, &this->actor, CAM_ID_MAIN); return;
switch (gallery->hitCount) {
case 10:
this->gameResult = SYATEKI_RESULT_WINNER;
this->actor.textId = 0x71AF;
break;
case 8:
case 9:
this->gameResult = SYATEKI_RESULT_ALMOST;
this->actor.textId = 0x71AE;
break;
default:
this->gameResult = SYATEKI_RESULT_FAILURE;
this->actor.textId = 0x71AD;
if (play->shootingGalleryStatus == 15 + 1) {
this->gameResult = SYATEKI_RESULT_REFUSE;
this->actor.textId = 0x2D;
}
break;
}
play->shootingGalleryStatus = -2;
Message_StartTextbox(play, this->actor.textId, NULL);
this->actionFunc = EnSyatekiMan_EndGame;
} }
this->subCamId = OnePointCutscene_Init(play, 8002, -99, &this->actor, CAM_ID_MAIN);
switch (gallery->hitCount) {
case 10:
this->gameResult = SYATEKI_RESULT_WINNER;
this->actor.textId = 0x71AF;
break;
case 8:
case 9:
this->gameResult = SYATEKI_RESULT_ALMOST;
this->actor.textId = 0x71AE;
break;
default:
this->gameResult = SYATEKI_RESULT_FAILURE;
this->actor.textId = 0x71AD;
if (play->shootingGalleryStatus == 15 + 1) {
this->gameResult = SYATEKI_RESULT_REFUSE;
this->actor.textId = 0x2D;
}
break;
}
play->shootingGalleryStatus = -2;
Message_StartTextbox(play, this->actor.textId, NULL);
this->actionFunc = EnSyatekiMan_EndGame;
} }
void EnSyatekiMan_EndGame(EnSyatekiMan* this, PlayState* play) { void EnSyatekiMan_EndGame(EnSyatekiMan* this, PlayState* play) {

View file

@ -93,33 +93,32 @@ void EnTkEff_Draw(EnTk* this, PlayState* play) {
Gfx_SetupDL_25Xlu(play->state.gfxCtx); Gfx_SetupDL_25Xlu(play->state.gfxCtx);
if (1) {} for (i = 0; i < ARRAY_COUNT(this->eff); i++, eff++) {
if (eff->active == 0) {
for (i = 0; i < ARRAY_COUNT(this->eff); i++) { continue;
if (eff->active != 0) {
if (gfxSetup == 0) {
POLY_XLU_DISP = Gfx_SetupDL(POLY_XLU_DISP, SETUPDL_0);
gSPDisplayList(POLY_XLU_DISP++, gDampeEff1DL);
gDPSetEnvColor(POLY_XLU_DISP++, 100, 60, 20, 0);
gfxSetup = 1;
}
alpha = eff->timeLeft * (255.0f / eff->timeTotal);
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 170, 130, 90, alpha);
gDPPipeSync(POLY_XLU_DISP++);
Matrix_Translate(eff->pos.x, eff->pos.y, eff->pos.z, MTXMODE_NEW);
Matrix_ReplaceRotation(&play->billboardMtxF);
Matrix_Scale(eff->size, eff->size, 1.0f, MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_en_tk_eff.c", 140),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
imageIdx = eff->timeLeft * ((f32)ARRAY_COUNT(dustTextures) / eff->timeTotal);
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(dustTextures[imageIdx]));
gSPDisplayList(POLY_XLU_DISP++, gDampeEff2DL);
} }
eff++;
if (gfxSetup == 0) {
POLY_XLU_DISP = Gfx_SetupDL(POLY_XLU_DISP, SETUPDL_0);
gSPDisplayList(POLY_XLU_DISP++, gDampeEff1DL);
gDPSetEnvColor(POLY_XLU_DISP++, 100, 60, 20, 0);
gfxSetup = 1;
}
alpha = eff->timeLeft * (255.0f / eff->timeTotal);
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 170, 130, 90, alpha);
gDPPipeSync(POLY_XLU_DISP++);
Matrix_Translate(eff->pos.x, eff->pos.y, eff->pos.z, MTXMODE_NEW);
Matrix_ReplaceRotation(&play->billboardMtxF);
Matrix_Scale(eff->size, eff->size, 1.0f, MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_en_tk_eff.c", 140),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
imageIdx = eff->timeLeft * ((f32)ARRAY_COUNT(dustTextures) / eff->timeTotal);
gSPSegment(POLY_XLU_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(dustTextures[imageIdx]));
gSPDisplayList(POLY_XLU_DISP++, gDampeEff2DL);
} }
CLOSE_DISPS(play->state.gfxCtx, "../z_en_tk_eff.c", 154); CLOSE_DISPS(play->state.gfxCtx, "../z_en_tk_eff.c", 154);

View file

@ -872,28 +872,29 @@ void EnViewer_UpdateGanondorfCape(PlayState* play, EnViewer* this) {
Vec3f forearmModelOffset; Vec3f forearmModelOffset;
Vec3f forearmWorldOffset; Vec3f forearmWorldOffset;
if ((this->actor.params >> 8) == ENVIEWER_TYPE_5_GANONDORF) { if ((this->actor.params >> 8) != ENVIEWER_TYPE_5_GANONDORF) {
if (1) {} return;
sGanondorfCape->backPush = BREG(54) / 10.0f;
sGanondorfCape->backSwayMagnitude = (BREG(60) + 25) / 100.0f;
sGanondorfCape->sideSwayMagnitude = (BREG(55) - 45) / 10.0f;
sGanondorfCape->minY = -10000.0f;
sGanondorfCape->minDist = 0.0f;
sGanondorfCape->gravity = (BREG(67) - 10) / 10.0f;
forearmModelOffset.x = KREG(16) - 13.0f;
forearmModelOffset.y = KREG(17) + 3.0f + Math_SinS(yOscillationPhase) * KREG(20);
forearmModelOffset.z = KREG(18) - 10.0f;
yOscillationPhase += KREG(19) * 0x1000 + 0x2000;
Matrix_RotateY(BINANG_TO_RAD_ALT(this->actor.shape.rot.y), MTXMODE_NEW);
Matrix_MultVec3f(&forearmModelOffset, &forearmWorldOffset);
sGanondorfCape->rightForearmPos.x = sGanondorfNeckWorldPos.x + forearmWorldOffset.x;
sGanondorfCape->rightForearmPos.y = sGanondorfNeckWorldPos.y + forearmWorldOffset.y;
sGanondorfCape->rightForearmPos.z = sGanondorfNeckWorldPos.z + forearmWorldOffset.z;
forearmModelOffset.x = -(KREG(16) - 13.0f);
Matrix_MultVec3f(&forearmModelOffset, &forearmWorldOffset);
sGanondorfCape->leftForearmPos.x = sGanondorfNeckWorldPos.x + forearmWorldOffset.x;
sGanondorfCape->leftForearmPos.y = sGanondorfNeckWorldPos.y + forearmWorldOffset.y;
sGanondorfCape->leftForearmPos.z = sGanondorfNeckWorldPos.z + forearmWorldOffset.z;
} }
sGanondorfCape->backPush = BREG(54) / 10.0f;
sGanondorfCape->backSwayMagnitude = (BREG(60) + 25) / 100.0f;
sGanondorfCape->sideSwayMagnitude = (BREG(55) - 45) / 10.0f;
sGanondorfCape->minY = -10000.0f;
sGanondorfCape->minDist = 0.0f;
sGanondorfCape->gravity = (BREG(67) - 10) / 10.0f;
forearmModelOffset.x = KREG(16) - 13.0f;
forearmModelOffset.y = KREG(17) + 3.0f + Math_SinS(yOscillationPhase) * KREG(20);
forearmModelOffset.z = KREG(18) - 10.0f;
yOscillationPhase += KREG(19) * 0x1000 + 0x2000;
Matrix_RotateY(BINANG_TO_RAD_ALT(this->actor.shape.rot.y), MTXMODE_NEW);
Matrix_MultVec3f(&forearmModelOffset, &forearmWorldOffset);
sGanondorfCape->rightForearmPos.x = sGanondorfNeckWorldPos.x + forearmWorldOffset.x;
sGanondorfCape->rightForearmPos.y = sGanondorfNeckWorldPos.y + forearmWorldOffset.y;
sGanondorfCape->rightForearmPos.z = sGanondorfNeckWorldPos.z + forearmWorldOffset.z;
forearmModelOffset.x = -(KREG(16) - 13.0f);
Matrix_MultVec3f(&forearmModelOffset, &forearmWorldOffset);
sGanondorfCape->leftForearmPos.x = sGanondorfNeckWorldPos.x + forearmWorldOffset.x;
sGanondorfCape->leftForearmPos.y = sGanondorfNeckWorldPos.y + forearmWorldOffset.y;
sGanondorfCape->leftForearmPos.z = sGanondorfNeckWorldPos.z + forearmWorldOffset.z;
} }

View file

@ -55,20 +55,21 @@ void EnZo_SpawnBubble(EnZo* this, Vec3f* pos) {
f32 waterSurface; f32 waterSurface;
effect = this->effects; effect = this->effects;
for (i = 0; i < EN_ZO_EFFECT_COUNT; i++) { for (i = 0; i < EN_ZO_EFFECT_COUNT; i++, effect++) {
if (1) {} if (effect->type != ENZO_EFFECT_NONE) {
if (effect->type == ENZO_EFFECT_NONE) { continue;
waterSurface = this->actor.world.pos.y + this->actor.yDistToWater; }
if (!(waterSurface <= pos->y)) {
effect->type = ENZO_EFFECT_BUBBLE; waterSurface = this->actor.world.pos.y + this->actor.yDistToWater;
effect->pos = *pos;
effect->vec = *pos; if (!(waterSurface <= pos->y)) {
effect->vel = vel; effect->type = ENZO_EFFECT_BUBBLE;
effect->scale = ((Rand_ZeroOne() - 0.5f) * 0.02f) + 0.12f; effect->pos = *pos;
break; effect->vec = *pos;
} effect->vel = vel;
effect->scale = ((Rand_ZeroOne() - 0.5f) * 0.02f) + 0.12f;
break;
} }
effect++;
} }
} }
@ -78,18 +79,17 @@ void EnZo_SpawnSplash(EnZo* this, Vec3f* pos, Vec3f* vel, f32 scale) {
s16 i; s16 i;
effect = this->effects; effect = this->effects;
for (i = 0; i < EN_ZO_EFFECT_COUNT; i++) { for (i = 0; i < EN_ZO_EFFECT_COUNT; i++, effect++) {
if (1) {} if (effect->type == ENZO_EFFECT_SPLASH) {
if (effect->type != ENZO_EFFECT_SPLASH) { continue;
effect->type = ENZO_EFFECT_SPLASH;
effect->pos = *pos;
effect->vec = accel;
effect->vel = *vel;
effect->color.a = (Rand_ZeroOne() * 100.0f) + 100.0f;
effect->scale = scale;
break;
} }
effect++; effect->type = ENZO_EFFECT_SPLASH;
effect->pos = *pos;
effect->vec = accel;
effect->vel = *vel;
effect->color.a = (Rand_ZeroOne() * 100.0f) + 100.0f;
effect->scale = scale;
break;
} }
} }
@ -178,25 +178,27 @@ void EnZo_DrawEffectsRipples(EnZo* this, PlayState* play) {
OPEN_DISPS(play->state.gfxCtx, "../z_en_zo_eff.c", 217); OPEN_DISPS(play->state.gfxCtx, "../z_en_zo_eff.c", 217);
materialFlag = false; materialFlag = false;
Gfx_SetupDL_25Xlu(play->state.gfxCtx); Gfx_SetupDL_25Xlu(play->state.gfxCtx);
for (i = 0; i < EN_ZO_EFFECT_COUNT; i++) {
if (effect->type == ENZO_EFFECT_RIPPLE) {
if (!materialFlag) {
if (1) {}
gDPPipeSync(POLY_XLU_DISP++);
gSPDisplayList(POLY_XLU_DISP++, gZoraRipplesMaterialDL);
gDPSetEnvColor(POLY_XLU_DISP++, 155, 155, 155, 0);
materialFlag = true;
}
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, effect->color.a); for (i = 0; i < EN_ZO_EFFECT_COUNT; i++, effect++) {
Matrix_Translate(effect->pos.x, effect->pos.y, effect->pos.z, MTXMODE_NEW); if (effect->type != ENZO_EFFECT_RIPPLE) {
Matrix_Scale(effect->scale, 1.0f, effect->scale, MTXMODE_APPLY); continue;
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_en_zo_eff.c", 242),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, gZoraRipplesModelDL);
} }
effect++;
if (!materialFlag) {
gDPPipeSync(POLY_XLU_DISP++);
gSPDisplayList(POLY_XLU_DISP++, gZoraRipplesMaterialDL);
gDPSetEnvColor(POLY_XLU_DISP++, 155, 155, 155, 0);
materialFlag = true;
}
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, effect->color.a);
Matrix_Translate(effect->pos.x, effect->pos.y, effect->pos.z, MTXMODE_NEW);
Matrix_Scale(effect->scale, 1.0f, effect->scale, MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_en_zo_eff.c", 242),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, gZoraRipplesModelDL);
} }
CLOSE_DISPS(play->state.gfxCtx, "../z_en_zo_eff.c", 248); CLOSE_DISPS(play->state.gfxCtx, "../z_en_zo_eff.c", 248);
} }
@ -208,27 +210,28 @@ void EnZo_DrawEffectsBubbles(EnZo* this, PlayState* play) {
OPEN_DISPS(play->state.gfxCtx, "../z_en_zo_eff.c", 260); OPEN_DISPS(play->state.gfxCtx, "../z_en_zo_eff.c", 260);
materialFlag = false; materialFlag = false;
Gfx_SetupDL_25Xlu(play->state.gfxCtx); Gfx_SetupDL_25Xlu(play->state.gfxCtx);
for (i = 0; i < EN_ZO_EFFECT_COUNT; i++) {
if (effect->type == ENZO_EFFECT_BUBBLE) {
if (!materialFlag) {
if (1) {}
gSPDisplayList(POLY_XLU_DISP++, gZoraBubblesMaterialDL);
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 150, 150, 150, 0);
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, 255);
materialFlag = true; for (i = 0; i < EN_ZO_EFFECT_COUNT; i++, effect++) {
} if (effect->type != ENZO_EFFECT_BUBBLE) {
continue;
Matrix_Translate(effect->pos.x, effect->pos.y, effect->pos.z, MTXMODE_NEW);
Matrix_ReplaceRotation(&play->billboardMtxF);
Matrix_Scale(effect->scale, effect->scale, 1.0f, MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_en_zo_eff.c", 281),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, gZoraBubblesModelDL);
} }
effect++;
if (!materialFlag) {
gSPDisplayList(POLY_XLU_DISP++, gZoraBubblesMaterialDL);
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 150, 150, 150, 0);
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, 255);
materialFlag = true;
}
Matrix_Translate(effect->pos.x, effect->pos.y, effect->pos.z, MTXMODE_NEW);
Matrix_ReplaceRotation(&play->billboardMtxF);
Matrix_Scale(effect->scale, effect->scale, 1.0f, MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_en_zo_eff.c", 281),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, gZoraBubblesModelDL);
} }
CLOSE_DISPS(play->state.gfxCtx, "../z_en_zo_eff.c", 286); CLOSE_DISPS(play->state.gfxCtx, "../z_en_zo_eff.c", 286);
} }
@ -242,26 +245,25 @@ void EnZo_DrawEffectsSplashes(EnZo* this, PlayState* play) {
OPEN_DISPS(play->state.gfxCtx, "../z_en_zo_eff.c", 298); OPEN_DISPS(play->state.gfxCtx, "../z_en_zo_eff.c", 298);
materialFlag = false; materialFlag = false;
Gfx_SetupDL_25Xlu(play->state.gfxCtx); Gfx_SetupDL_25Xlu(play->state.gfxCtx);
for (i = 0; i < EN_ZO_EFFECT_COUNT; i++) { for (i = 0; i < EN_ZO_EFFECT_COUNT; i++, effect++) {
if (effect->type == ENZO_EFFECT_SPLASH) { if (effect->type != ENZO_EFFECT_SPLASH) {
if (!materialFlag) { continue;
if (1) {}
gSPDisplayList(POLY_XLU_DISP++, gZoraSplashesMaterialDL);
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 200, 200, 200, 0);
materialFlag = true;
}
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 180, 180, 180, effect->color.a);
Matrix_Translate(effect->pos.x, effect->pos.y, effect->pos.z, MTXMODE_NEW);
Matrix_ReplaceRotation(&play->billboardMtxF);
Matrix_Scale(effect->scale, effect->scale, 1.0f, MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_en_zo_eff.c", 325),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, gZoraSplashesModelDL);
} }
effect++; if (!materialFlag) {
gSPDisplayList(POLY_XLU_DISP++, gZoraSplashesMaterialDL);
gDPPipeSync(POLY_XLU_DISP++);
gDPSetEnvColor(POLY_XLU_DISP++, 200, 200, 200, 0);
materialFlag = true;
}
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 180, 180, 180, effect->color.a);
Matrix_Translate(effect->pos.x, effect->pos.y, effect->pos.z, MTXMODE_NEW);
Matrix_ReplaceRotation(&play->billboardMtxF);
Matrix_Scale(effect->scale, effect->scale, 1.0f, MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_en_zo_eff.c", 325),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, gZoraSplashesModelDL);
} }
CLOSE_DISPS(play->state.gfxCtx, "../z_en_zo_eff.c", 331); CLOSE_DISPS(play->state.gfxCtx, "../z_en_zo_eff.c", 331);
} }

View file

@ -4709,30 +4709,29 @@ void Fishing_DrawGroupFishes(PlayState* play) {
scale = 0.00475f; scale = 0.00475f;
} }
if (1) {}
OPEN_DISPS(play->state.gfxCtx, "../z_fishing.c", 8048); OPEN_DISPS(play->state.gfxCtx, "../z_fishing.c", 8048);
for (i = 0; i < GROUP_FISH_COUNT; i++) { for (i = 0; i < GROUP_FISH_COUNT; i++, fish++) {
if (fish->type != FS_GROUP_FISH_NONE) { if (fish->type == FS_GROUP_FISH_NONE) {
if (materialFlag == 0) { continue;
gSPDisplayList(POLY_OPA_DISP++, gFishingGroupFishMaterialDL); }
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 155, 155, 155, 255);
materialFlag++; if (!materialFlag) {
} gSPDisplayList(POLY_OPA_DISP++, gFishingGroupFishMaterialDL);
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 155, 155, 155, 255);
if (fish->shouldDraw) { materialFlag++;
Matrix_Translate(fish->pos.x, fish->pos.y, fish->pos.z, MTXMODE_NEW); }
Matrix_RotateY(BINANG_TO_RAD_ALT2((f32)fish->unk_3E), MTXMODE_APPLY);
Matrix_RotateX(BINANG_TO_RAD_ALT2(-(f32)fish->unk_3C), MTXMODE_APPLY); if (fish->shouldDraw) {
Matrix_Scale(fish->scaleX * scale, scale, scale, MTXMODE_APPLY); Matrix_Translate(fish->pos.x, fish->pos.y, fish->pos.z, MTXMODE_NEW);
Matrix_RotateY(BINANG_TO_RAD_ALT2((f32)fish->unk_3E), MTXMODE_APPLY);
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_fishing.c", 8093), Matrix_RotateX(BINANG_TO_RAD_ALT2(-(f32)fish->unk_3C), MTXMODE_APPLY);
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); Matrix_Scale(fish->scaleX * scale, scale, scale, MTXMODE_APPLY);
gSPDisplayList(POLY_OPA_DISP++, gFishingGroupFishModelDL);
} gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx, "../z_fishing.c", 8093),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_OPA_DISP++, gFishingGroupFishModelDL);
} }
fish++;
} }
CLOSE_DISPS(play->state.gfxCtx, "../z_fishing.c", 8099); CLOSE_DISPS(play->state.gfxCtx, "../z_fishing.c", 8099);