summaryrefslogtreecommitdiff
path: root/src/code
diff options
context:
space:
mode:
authorengineer124 <47598039+engineer124@users.noreply.github.com>2022-10-14 21:05:20 -0400
committerGitHub <noreply@github.com>2022-10-15 02:05:20 +0100
commita4f0d8ea88843041aad8697230300315cfa159cd (patch)
treee4d3b90de61ce7ecb56c61a1acafb6082e0e71bf /src/code
parentb35accc95592479499cd3536988d3b7a632c351f (diff)
Match 3 Functions (z_actor OK, z_mir_ray OK, z_mir_ray3 OK) (#1122)
* match MirRay_ReflectedBeam * match Actor_DrawLensActors * match func_80B9E8D4 * void
Diffstat (limited to 'src/code')
-rw-r--r--src/code/z_actor.c240
1 files changed, 84 insertions, 156 deletions
diff --git a/src/code/z_actor.c b/src/code/z_actor.c
index c5783f4d7..01894f269 100644
--- a/src/code/z_actor.c
+++ b/src/code/z_actor.c
@@ -2614,200 +2614,128 @@ void Actor_DrawLensOverlay(Gfx** gfxP, s32 lensMaskSize) {
((LENS_MASK_ACTIVE_SIZE - lensMaskSize) * 0.003f) + 1.0f);
}
-#ifdef NON_EQUIVALENT
-void Actor_DrawLensActors(PlayState* play, s32 numActors, Actor** actors) {
+void Actor_DrawLensActors(PlayState* play, s32 numInvisibleActors, Actor** invisibleActors) {
+ s32 dbgVar1;
+ s32 dbgVar2;
s32 spB4;
+ Actor** invisibleActor;
Gfx* spAC;
- void* spA8; // pad
- s32 spA4;
- // void* sp34;
- // Gfx* temp_s1_11;
- // Gfx** temp_a0_2;
- // Gfx** temp_a1;
- // GraphicsContext* temp_s2;
- // void* temp_s1_10;
- // void* temp_s1_7;
- // void* temp_s1_8;
- // void* temp_s1_9;
- // Gfx* phi_s1;
- Gfx* phi_s1_2;
- // void* phi_s1_4;
+ void* spA8;
+ void* spA4;
+ GraphicsContext* gfxCtx = play->state.gfxCtx;
+ Gfx* tmp;
+ s32 pad[2];
- OPEN_DISPS(play->state.gfxCtx);
- // temp_s2 = play->state.gfxCtx;
+ dbgVar1 = true;
+ dbgVar2 = true;
- if (numActors > 0) {
- spAC = POLY_XLU_DISP;
- // sp34 = play + 0x18000;
- spA4 = play->unk_18E68;
+ if (dbgVar1) {
+ dbgVar1 = numInvisibleActors > 0;
+ }
- PreRender_SetValues(&play->pauseBgPreRender, D_801FBBCC, D_801FBBCE, __gfxCtx->curFrameBuffer,
- __gfxCtx->zbuffer);
+ OPEN_DISPS(gfxCtx);
+
+ if (dbgVar1) {
+ tmp = POLY_XLU_DISP;
+ spA8 = gfxCtx->zbuffer;
+ spA4 = play->unk_18E68;
- func_80170200(&play->pauseBgPreRender, &spAC, __gfxCtx->zbuffer, (void*)spA4);
+ if (dbgVar2) {
+ PreRender_SetValues(&play->pauseBgPreRender, D_801FBBCC, D_801FBBCE, gfxCtx->curFrameBuffer, spA8);
- // spAC->words.w0 = 0xE7000000;
- // spAC->words.w1 = 0;
- // temp_s1_2 = spAC + 8;
- gDPPipeSync(spAC++);
+ spAC = tmp;
+ func_80170200(&play->pauseBgPreRender, &spAC, spA8, spA4);
+ tmp = spAC;
+ }
- // temp_s1_2->words.w0 = 0xEE000000;
- // temp_s1_2->words.w1 = 0;
- // temp_s1_3 = temp_s1_2 + 8;
- gDPSetPrimDepth(spAC++, 0, 0);
+ gDPPipeSync(tmp++);
+ gDPSetPrimDepth(tmp++, 0, 0);
- // temp_s1_3->words.w0 = 0xEF002C30;
- // temp_s1_3->words.w1 = 0xAF504365;
- // temp_s1_4 = temp_s1_3 + 8;
- gDPSetOtherMode(spAC++,
+ gDPSetOtherMode(tmp++,
G_AD_DISABLE | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE |
G_TD_CLAMP | G_TP_NONE | G_CYC_1CYCLE | G_PM_NPRIMITIVE,
G_AC_THRESHOLD | G_ZS_PRIM | Z_UPD | IM_RD | CVG_DST_SAVE | ZMODE_OPA | FORCE_BL |
GBL_c1(G_BL_CLR_BL, G_BL_0, G_BL_CLR_MEM, G_BL_1MA) |
GBL_c2(G_BL_CLR_BL, G_BL_0, G_BL_CLR_MEM, G_BL_1MA));
- // temp_s1_4->words.w1 = 0xFF;
- // temp_s1_4->words.w0 = 0xFA000000;
- // temp_s1_5 = temp_s1_4 + 8;
- gDPSetPrimColor(spAC++, 0, 0, 0, 0, 0, 255);
- // temp_s1_5 = spAC;
+ gDPSetPrimColor(tmp++, 0, 0, 0, 0, 0, 255);
if (play->roomCtx.curRoom.unk5 == 0) {
- // temp_s1_5->words.w0 = 0xFC61E6C3;
- // temp_s1_5->words.w1 = 0x11CF9FCF;
- // phi_s1 = temp_s1_5 + 8;
- gDPSetCombineLERP(spAC++, 1, TEXEL0, PRIMITIVE, 0, 1, TEXEL0, PRIMITIVE, 0, 1, TEXEL0, PRIMITIVE, 0, 1,
+ gDPSetCombineLERP(tmp++, 1, TEXEL0, PRIMITIVE, 0, 1, TEXEL0, PRIMITIVE, 0, 1, TEXEL0, PRIMITIVE, 0, 1,
TEXEL0, PRIMITIVE, 0);
} else {
- // temp_s1_5->words.w0 = 0xFC119623;
- // temp_s1_5->words.w1 = 0xFF2FFFFF;
- // phi_s1 = temp_s1_5 + 8;
- gDPSetCombineMode(spAC++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
+ gDPSetCombineMode(tmp++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
}
- // spAC = phi_s1;
+ spAC = tmp;
Actor_DrawLensOverlay(&spAC, play->actorCtx.lensMaskSize);
- phi_s1_2 = func_801660B8(play, spAC);
+ tmp = func_801660B8(play, spAC);
- for (spB4 = 0; spB4 < numActors; spB4++, actors++) {
- Actor_Draw(play, *actors);
+ for (spB4 = 0, invisibleActor = invisibleActors; spB4 < numInvisibleActors; spB4++, invisibleActor++) {
+ POLY_XLU_DISP = tmp;
+ Actor_Draw(play, *invisibleActor);
+ tmp = POLY_XLU_DISP;
}
- // temp_s0_2 = &play->pauseBgPreRender;
+ if (dbgVar2) {
+ gDPPipeSync(tmp++);
- // phi_s1_2->words.w0 = 0xE7000000;
- // phi_s1_2->words.w1 = 0;
- // temp_s1_7 = phi_s1_2 + 8;
- gDPPipeSync(phi_s1_2++);
+ gDPSetOtherMode(tmp++,
+ G_AD_DISABLE | G_CD_DISABLE | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE |
+ G_TD_CLAMP | G_TP_NONE | G_CYC_1CYCLE | G_PM_NPRIMITIVE,
+ G_AC_THRESHOLD | G_ZS_PRIM | AA_EN | IM_RD | CVG_DST_WRAP | ZMODE_OPA | CVG_X_ALPHA |
+ ALPHA_CVG_SEL | FORCE_BL | GBL_c1(G_BL_CLR_IN, G_BL_0, G_BL_CLR_MEM, G_BL_1) |
+ GBL_c2(G_BL_CLR_IN, G_BL_0, G_BL_CLR_MEM, G_BL_1));
- // temp_s1_7->unk_0 = 0xEF002CF0;
- // temp_s1_7->unk_4 = 0xF5A714D;
- // temp_s1_8 = temp_s1_7 + 8;
- gDPSetOtherMode(phi_s1_2++,
- G_AD_DISABLE | G_CD_DISABLE | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE |
- G_TD_CLAMP | G_TP_NONE | G_CYC_1CYCLE | G_PM_NPRIMITIVE,
- G_AC_THRESHOLD | G_ZS_PRIM | AA_EN | IM_RD | CVG_DST_WRAP | ZMODE_OPA | CVG_X_ALPHA |
- ALPHA_CVG_SEL | FORCE_BL | GBL_c1(G_BL_CLR_IN, G_BL_0, G_BL_CLR_MEM, G_BL_1) |
- GBL_c2(G_BL_CLR_IN, G_BL_0, G_BL_CLR_MEM, G_BL_1));
-
- // temp_s1_8->unk_4 = -0x100;
- // temp_s1_8->unk_0 = 0xF9000000;
- // temp_s1_9 = temp_s1_8 + 8;
- gDPSetBlendColor(phi_s1_2++, 255, 255, 255, 0);
-
- // temp_s1_9->unk_4 = 0x20;
- // temp_s1_9->unk_0 = 0xFA0000FF;
- // temp_s1_10 = temp_s1_9 + 8;
- gDPSetPrimColor(phi_s1_2++, 0, 0xFF, 0, 0, 0, 32);
-
- // temp_a0_2 = &spAC;
- // if (sp34->unk_6E5 == 0) {
- if (play->roomCtx.curRoom.unk5 == 0) {
- // temp_s1_10->unk_0 = 0xFC119623;
- // temp_s1_10->unk_4 = 0xFF2FFFFF;
- // phi_s1_4 = temp_s1_10 + 8;
- gDPSetCombineMode(phi_s1_2++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
- //} else {
- } else {
- // temp_s1_10->unk_4 = 0x11CF9FCF;
- // temp_s1_10->unk_0 = 0xFC61E6C3;
- // phi_s1_4 = temp_s1_10 + 8;
- gDPSetCombineLERP(phi_s1_2++, 1, TEXEL0, PRIMITIVE, 0, 1, TEXEL0, PRIMITIVE, 0, 1, TEXEL0, PRIMITIVE, 0, 1,
- TEXEL0, PRIMITIVE, 0);
+ gDPSetBlendColor(tmp++, 255, 255, 255, 0);
+ gDPSetPrimColor(tmp++, 0, 0xFF, 0, 0, 0, 32);
+
+ if (play->roomCtx.curRoom.unk5 == 0) {
+ gDPSetCombineMode(tmp++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
+ } else {
+ gDPSetCombineLERP(tmp++, 1, TEXEL0, PRIMITIVE, 0, 1, TEXEL0, PRIMITIVE, 0, 1, TEXEL0, PRIMITIVE, 0, 1,
+ TEXEL0, PRIMITIVE, 0);
+ }
+
+ gDPSetColorImage(tmp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, play->pauseBgPreRender.width, spA4);
+
+ spAC = tmp;
+ Actor_DrawLensOverlay(&spAC, play->actorCtx.lensMaskSize);
+ tmp = spAC;
+
+ gDPPipeSync(tmp++);
+ gDPSetBlendColor(tmp++, 255, 255, 255, 8);
- //}
+ gDPSetColorImage(tmp++, G_IM_FMT_RGBA, G_IM_SIZ_16b, play->pauseBgPreRender.width,
+ play->pauseBgPreRender.fbuf);
+
+ spAC = tmp;
+ func_8016FDB8(&play->pauseBgPreRender, &spAC, (void*)spA4, spA8, 1);
+ tmp = spAC;
}
- // phi_s1_4->unk_0 = (s32) (((sp34->unk_B4C - 1) & 0xFFF) | 0xFF100000);
- // temp_s1_11 = phi_s1_4 + 8;
- // phi_s1_4->unk_4 = spA4;
- gDPSetColorImage(phi_s1_2++, G_IM_FMT_RGBA, G_IM_SIZ_16b, ((play->pauseBgPreRender.width - 1) & 0xFFF), spA4);
- // temp_s1_11 = phi_s1_2;
-
- spAC = phi_s1_2;
-
- // spAC = temp_s1_11;
- Actor_DrawLensOverlay(&spAC, (s32)play->actorCtx.lensMaskSize);
- // temp_s1_11->words.w0 = 0xE7000000;
- // temp_s1_11->words.w1 = 0;
- // temp_s1_12 = temp_s1_11 + 8;
- gDPPipeSync(spAC++);
-
- // temp_s1_12->words.w1 = -0xF8;
- // temp_s1_12->words.w0 = 0xF9000000;
- // temp_s1_13 = temp_s1_12 + 8;
- gDPSetBlendColor(spAC++, 255, 255, 255, 8);
-
- // temp_s1_14 = temp_s1_13 + 8;
- // temp_s1_13->words.w0 = ((sp34->unk_B4C - 1) & 0xFFF) | 0xFF100000;
- // temp_s1_13->words.w1 = sp34->unk_B5C;
- gDPSetColorImage(spAC++, G_IM_FMT_RGBA, G_IM_SIZ_16b, ((play->pauseBgPreRender.width - 1) & 0xFFF),
- play->pauseBgPreRender.fbuf);
-
- // temp_a1 = &spAC;
- // spAC = temp_s1_14;
- // func_8016FDB8(&play->pauseBgPreRender, temp_a1, (void* ) spA4, spA8, 1U);
- func_8016FDB8(&play->pauseBgPreRender, &spAC, (void*)spA4, __gfxCtx->zbuffer, 1U);
- //
- // POLY_OPA_DISP = temp_s1_14;
- POLY_OPA_DISP = spAC;
- }
-
- // temp_s1_15 = OVERLAY_DISP;
- // temp_s1_15->words.w0 = 0xE7000000;
- // temp_s1_15->words.w1 = 0;
- // temp_s1_16 = temp_s1_15 + 8;
- spAC = OVERLAY_DISP;
- gDPPipeSync(spAC++);
-
- // temp_s1_16->words.w0 = 0xEF002C30;
- // temp_s1_16->words.w1 = 0x00504345;
- // temp_s1_17 = temp_s1_16 + 8;
- gDPSetOtherMode(spAC++,
+
+ POLY_XLU_DISP = tmp;
+ }
+
+ tmp = OVERLAY_DISP;
+
+ gDPPipeSync(tmp++);
+
+ gDPSetOtherMode(tmp++,
G_AD_DISABLE | G_CD_MAGICSQ | G_CK_NONE | G_TC_FILT | G_TF_BILERP | G_TT_NONE | G_TL_TILE |
G_TD_CLAMP | G_TP_NONE | G_CYC_1CYCLE | G_PM_NPRIMITIVE,
G_AC_THRESHOLD | G_ZS_PRIM | G_RM_CLD_SURF | G_RM_CLD_SURF2);
- // temp_s1_17->words.w0 = 0xFC61E6C3;
- // temp_s1_17->words.w1 = 0x11CF9FCF;
- // temp_s1_18 = temp_s1_17 + 8;
- gDPSetCombineLERP(spAC++, 1, TEXEL0, PRIMITIVE, 0, 1, TEXEL0, PRIMITIVE, 0, 1, TEXEL0, PRIMITIVE, 0, 1, TEXEL0,
+ gDPSetCombineLERP(tmp++, 1, TEXEL0, PRIMITIVE, 0, 1, TEXEL0, PRIMITIVE, 0, 1, TEXEL0, PRIMITIVE, 0, 1, TEXEL0,
PRIMITIVE, 0);
+ gDPSetPrimColor(tmp++, 0, 0, 74, 0, 0, 74);
- // temp_s1_18->words.w0 = 0xFA000000;
- // temp_s1_18->words.w1 = 0x4A00004A;
- // spAC = temp_s1_18 + 8;
- gDPSetPrimColor(spAC++, 0, 0, 74, 0, 0, 74);
-
- Actor_DrawLensOverlay(&spAC, (s32)play->actorCtx.lensMaskSize);
-
+ spAC = tmp;
+ Actor_DrawLensOverlay(&spAC, play->actorCtx.lensMaskSize);
OVERLAY_DISP = spAC;
- CLOSE_DISPS(play->state.gfxCtx);
+ CLOSE_DISPS(gfxCtx);
}
-#else
-void Actor_DrawLensActors(PlayState* play, s32 numActors, Actor** actors);
-#pragma GLOBAL_ASM("asm/non_matchings/code/z_actor/Actor_DrawLensActors.s")
-#endif
s32 func_800BA2D8(PlayState* play, Actor* actor) {
return func_800BA2FC(play, actor, &actor->projectedPos, actor->projectedW);