summaryrefslogtreecommitdiff
path: root/src/code
diff options
context:
space:
mode:
Diffstat (limited to 'src/code')
-rw-r--r--src/code/code_8006BA00.c4
-rw-r--r--src/code/z_actor.c10
-rw-r--r--src/code/z_debug_display.c2
-rw-r--r--src/code/z_draw.c6
-rw-r--r--src/code/z_eff_spark.c2
-rw-r--r--src/code/z_effect_soft_sprite_old_init.c2
-rw-r--r--src/code/z_play.c35
-rw-r--r--src/code/z_player_lib.c2
-rw-r--r--src/code/z_room.c2
9 files changed, 35 insertions, 30 deletions
diff --git a/src/code/code_8006BA00.c b/src/code/code_8006BA00.c
index 6919827fb..9cc18bfa5 100644
--- a/src/code/code_8006BA00.c
+++ b/src/code/code_8006BA00.c
@@ -18,7 +18,7 @@ void func_8006BA30(GlobalContext* globalCtx) {
if (DECR(source->countdown) == 0) {
Audio_StopSfxByPos(&source->relativePos);
} else {
- SkinMatrix_Vec3fMtxFMultXYZ(&globalCtx->mf_11D60, &source->originPos, &source->relativePos);
+ SkinMatrix_Vec3fMtxFMultXYZ(&globalCtx->viewProjectionMtxF, &source->originPos, &source->relativePos);
}
}
@@ -55,6 +55,6 @@ void Audio_PlaySoundAtPosition(GlobalContext* globalCtx, Vec3f* pos, s32 duratio
source->originPos = *pos;
source->countdown = duration;
- SkinMatrix_Vec3fMtxFMultXYZ(&globalCtx->mf_11D60, &source->originPos, &source->relativePos);
+ SkinMatrix_Vec3fMtxFMultXYZ(&globalCtx->viewProjectionMtxF, &source->originPos, &source->relativePos);
Audio_PlaySoundGeneral(sfxId, &source->relativePos, 4, &D_801333E0, &D_801333E0, &D_801333E8);
}
diff --git a/src/code/z_actor.c b/src/code/z_actor.c
index 81c973182..4fcc8ded7 100644
--- a/src/code/z_actor.c
+++ b/src/code/z_actor.c
@@ -212,7 +212,7 @@ void Actor_SetFeetPos(Actor* actor, s32 limbIndex, s32 leftFootIndex, Vec3f* lef
}
void func_8002BE04(GlobalContext* globalCtx, Vec3f* arg1, Vec3f* arg2, f32* arg3) {
- SkinMatrix_Vec3fMtxFMultXYZW(&globalCtx->mf_11D60, arg1, arg2, arg3);
+ SkinMatrix_Vec3fMtxFMultXYZW(&globalCtx->viewProjectionMtxF, arg1, arg2, arg3);
*arg3 = (*arg3 < 1.0f) ? 1.0f : (1.0f / *arg3);
}
@@ -1905,7 +1905,7 @@ void Actor_DrawFaroresWindPointer(GlobalContext* globalCtx) {
((void)0, gSaveContext.respawn[RESPAWN_MODE_TOP].pos.y) + yOffset,
((void)0, gSaveContext.respawn[RESPAWN_MODE_TOP].pos.z), MTXMODE_NEW);
Matrix_Scale(scale, scale, scale, MTXMODE_APPLY);
- Matrix_Mult(&globalCtx->mf_11DA0, MTXMODE_APPLY);
+ Matrix_Mult(&globalCtx->billboardMtxF, MTXMODE_APPLY);
Matrix_Push();
gDPPipeSync(POLY_XLU_DISP++);
@@ -1955,8 +1955,8 @@ void func_800304DC(GlobalContext* globalCtx, ActorContext* actorCtx, ActorEntry*
bzero(actorCtx, sizeof(*actorCtx));
ActorOverlayTable_Init();
- Matrix_MtxFCopy(&globalCtx->mf_11DA0, &gMtxFClear);
- Matrix_MtxFCopy(&globalCtx->mf_11D60, &gMtxFClear);
+ Matrix_MtxFCopy(&globalCtx->billboardMtxF, &gMtxFClear);
+ Matrix_MtxFCopy(&globalCtx->viewProjectionMtxF, &gMtxFClear);
overlayEntry = &gActorOverlayTable[0];
for (i = 0; i < ARRAY_COUNT(gActorOverlayTable); i++) {
@@ -2358,7 +2358,7 @@ void func_800315AC(GlobalContext* globalCtx, ActorContext* actorCtx) {
HREG(66) = i;
if ((HREG(64) != 1) || ((HREG(65) != -1) && (HREG(65) != HREG(66))) || (HREG(68) == 0)) {
- SkinMatrix_Vec3fMtxFMultXYZW(&globalCtx->mf_11D60, &actor->world.pos, &actor->projectedPos,
+ SkinMatrix_Vec3fMtxFMultXYZW(&globalCtx->viewProjectionMtxF, &actor->world.pos, &actor->projectedPos,
&actor->projectedW);
}
diff --git a/src/code/z_debug_display.c b/src/code/z_debug_display.c
index 9f33caa87..443e55319 100644
--- a/src/code/z_debug_display.c
+++ b/src/code/z_debug_display.c
@@ -75,7 +75,7 @@ void DebugDisplay_DrawSpriteI8(DebugDispObject* dispObj, void* texture, GlobalCo
Matrix_Translate(dispObj->pos.x, dispObj->pos.y, dispObj->pos.z, MTXMODE_NEW);
Matrix_Scale(dispObj->scale.x, dispObj->scale.y, dispObj->scale.z, MTXMODE_APPLY);
- Matrix_Mult(&globalCtx->mf_11DA0, MTXMODE_APPLY);
+ Matrix_Mult(&globalCtx->billboardMtxF, MTXMODE_APPLY);
Matrix_RotateZYX(dispObj->rot.x, dispObj->rot.y, dispObj->rot.z, MTXMODE_APPLY);
gDPLoadTextureBlock(POLY_XLU_DISP++, texture, G_IM_FMT_I, G_IM_SIZ_8b, 16, 16, 0, G_TX_NOMIRROR | G_TX_WRAP,
diff --git a/src/code/z_draw.c b/src/code/z_draw.c
index ee3b127c0..d9f63c9ad 100644
--- a/src/code/z_draw.c
+++ b/src/code/z_draw.c
@@ -421,7 +421,7 @@ void GetItem_DrawBlueFire(GlobalContext* globalCtx, s16 drawId) {
1 * -(globalCtx->state.frames * 8), 16, 32));
Matrix_Push();
Matrix_Translate(-8.0f, -2.0f, 0.0f, MTXMODE_APPLY);
- func_800D1FD4(&globalCtx->mf_11DA0);
+ func_800D1FD4(&globalCtx->billboardMtxF);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_draw.c", 615),
G_MTX_MODELVIEW | G_MTX_LOAD);
gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].dlists[1]);
@@ -449,7 +449,7 @@ void GetItem_DrawPoes(GlobalContext* globalCtx, s16 drawId) {
0 * (globalCtx->state.frames * 0), 16, 32, 1, 1 * (globalCtx->state.frames * 1),
1 * -(globalCtx->state.frames * 6), 16, 32));
Matrix_Push();
- func_800D1FD4(&globalCtx->mf_11DA0);
+ func_800D1FD4(&globalCtx->billboardMtxF);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_draw.c", 656),
G_MTX_MODELVIEW | G_MTX_LOAD);
gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].dlists[3]);
@@ -478,7 +478,7 @@ void GetItem_DrawFairy(GlobalContext* globalCtx, s16 drawId) {
0 * (globalCtx->state.frames * 0), 32, 32, 1, 1 * (globalCtx->state.frames * 1),
1 * -(globalCtx->state.frames * 6), 32, 32));
Matrix_Push();
- func_800D1FD4(&globalCtx->mf_11DA0);
+ func_800D1FD4(&globalCtx->billboardMtxF);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_draw.c", 698),
G_MTX_MODELVIEW | G_MTX_LOAD);
gSPDisplayList(POLY_XLU_DISP++, sDrawItemTable[drawId].dlists[2]);
diff --git a/src/code/z_eff_spark.c b/src/code/z_eff_spark.c
index 9a37dee1f..cfe8f628f 100644
--- a/src/code/z_eff_spark.c
+++ b/src/code/z_eff_spark.c
@@ -210,7 +210,7 @@ void EffectSpark_Draw(void* thisx, GraphicsContext* gfxCtx) {
SkinMatrix_SetTranslate(&spEC, elem->position.x, elem->position.y, elem->position.z);
temp = ((Rand_ZeroOne() * 2.5f) + 1.5f) / 64.0f;
SkinMatrix_SetScale(&spAC, temp, temp, 1.0f);
- SkinMatrix_MtxFMtxFMult(&spEC, &globalCtx->mf_11DA0, &sp6C);
+ SkinMatrix_MtxFMtxFMult(&spEC, &globalCtx->billboardMtxF, &sp6C);
SkinMatrix_MtxFMtxFMult(&sp6C, &spAC, &sp12C);
vertices[j].v.ob[0] = -32;
diff --git a/src/code/z_effect_soft_sprite_old_init.c b/src/code/z_effect_soft_sprite_old_init.c
index 73c2aba44..adc22e762 100644
--- a/src/code/z_effect_soft_sprite_old_init.c
+++ b/src/code/z_effect_soft_sprite_old_init.c
@@ -56,7 +56,7 @@ void EffectSs_DrawGEffect(GlobalContext* globalCtx, EffectSs* this, void* textur
scale = this->rgScale * 0.0025f;
SkinMatrix_SetTranslate(&mfTrans, this->pos.x, this->pos.y, this->pos.z);
SkinMatrix_SetScale(&mfScale, scale, scale, scale);
- SkinMatrix_MtxFMtxFMult(&mfTrans, &globalCtx->mf_11DA0, &mfTrans11DA0);
+ SkinMatrix_MtxFMtxFMult(&mfTrans, &globalCtx->billboardMtxF, &mfTrans11DA0);
SkinMatrix_MtxFMtxFMult(&mfTrans11DA0, &mfScale, &mfResult);
gSegments[6] = VIRTUAL_TO_PHYSICAL(object);
gSPSegment(POLY_XLU_DISP++, 0x06, object);
diff --git a/src/code/z_play.c b/src/code/z_play.c
index 8997fba8d..7e82bf3b5 100644
--- a/src/code/z_play.c
+++ b/src/code/z_play.c
@@ -1089,18 +1089,22 @@ void Gameplay_Draw(GlobalContext* globalCtx) {
func_800AA460(&globalCtx->view, globalCtx->view.fovy, globalCtx->view.zNear, globalCtx->lightCtx.fogFar);
func_800AAA50(&globalCtx->view, 15);
- Matrix_MtxToMtxF(&globalCtx->view.viewing, &globalCtx->mf_11DA0);
- Matrix_MtxToMtxF(&globalCtx->view.projection, &globalCtx->mf_11D60);
- Matrix_Mult(&globalCtx->mf_11D60, MTXMODE_NEW);
- Matrix_Mult(&globalCtx->mf_11DA0, MTXMODE_APPLY);
- Matrix_Get(&globalCtx->mf_11D60);
- globalCtx->mf_11DA0.mf[0][3] = globalCtx->mf_11DA0.mf[1][3] = globalCtx->mf_11DA0.mf[2][3] =
- globalCtx->mf_11DA0.mf[3][0] = globalCtx->mf_11DA0.mf[3][1] = globalCtx->mf_11DA0.mf[3][2] = 0.0f;
- Matrix_Transpose(&globalCtx->mf_11DA0);
- globalCtx->unk_11DE0 = Matrix_MtxFToMtx(Matrix_CheckFloats(&globalCtx->mf_11DA0, "../z_play.c", 4005),
- Graph_Alloc(gfxCtx, sizeof(Mtx)));
-
- gSPSegment(POLY_OPA_DISP++, 0x01, globalCtx->unk_11DE0);
+ // The billboard matrix temporarily stores the viewing matrix
+ Matrix_MtxToMtxF(&globalCtx->view.viewing, &globalCtx->billboardMtxF);
+ Matrix_MtxToMtxF(&globalCtx->view.projection, &globalCtx->viewProjectionMtxF);
+ Matrix_Mult(&globalCtx->viewProjectionMtxF, MTXMODE_NEW);
+ // The billboard is still a viewing matrix at this stage
+ Matrix_Mult(&globalCtx->billboardMtxF, MTXMODE_APPLY);
+ Matrix_Get(&globalCtx->viewProjectionMtxF);
+ globalCtx->billboardMtxF.mf[0][3] = globalCtx->billboardMtxF.mf[1][3] = globalCtx->billboardMtxF.mf[2][3] =
+ globalCtx->billboardMtxF.mf[3][0] = globalCtx->billboardMtxF.mf[3][1] = globalCtx->billboardMtxF.mf[3][2] =
+ 0.0f;
+ // This transpose is where the viewing matrix is properly converted into a billboard matrix
+ Matrix_Transpose(&globalCtx->billboardMtxF);
+ globalCtx->billboardMtx = Matrix_MtxFToMtx(Matrix_CheckFloats(&globalCtx->billboardMtxF, "../z_play.c", 4005),
+ Graph_Alloc(gfxCtx, sizeof(Mtx)));
+
+ gSPSegment(POLY_OPA_DISP++, 0x01, globalCtx->billboardMtx);
if ((HREG(80) != 10) || (HREG(92) != 0)) {
Gfx* gfxP;
@@ -1487,11 +1491,12 @@ void Gameplay_SpawnScene(GlobalContext* globalCtx, s32 sceneNum, s32 spawn) {
void func_800C016C(GlobalContext* globalCtx, Vec3f* src, Vec3f* dest) {
f32 temp;
- Matrix_Mult(&globalCtx->mf_11D60, MTXMODE_NEW);
+ Matrix_Mult(&globalCtx->viewProjectionMtxF, MTXMODE_NEW);
Matrix_MultVec3f(src, dest);
- temp = globalCtx->mf_11D60.ww +
- (globalCtx->mf_11D60.wx * src->x + globalCtx->mf_11D60.wy * src->y + globalCtx->mf_11D60.wz * src->z);
+ temp = globalCtx->viewProjectionMtxF.ww +
+ (globalCtx->viewProjectionMtxF.wx * src->x + globalCtx->viewProjectionMtxF.wy * src->y +
+ globalCtx->viewProjectionMtxF.wz * src->z);
dest->x = 160.0f + ((dest->x / temp) * 160.0f);
dest->y = 120.0f - ((dest->y / temp) * 120.0f);
diff --git a/src/code/z_player_lib.c b/src/code/z_player_lib.c
index 3625d5062..50667d026 100644
--- a/src/code/z_player_lib.c
+++ b/src/code/z_player_lib.c
@@ -1116,7 +1116,7 @@ void func_80090AFC(GlobalContext* globalCtx, Player* this, f32 arg2) {
OVERLAY_DISP = Gfx_CallSetupDL(OVERLAY_DISP, 0x07);
- SkinMatrix_Vec3fMtxFMultXYZW(&globalCtx->mf_11D60, &sp74, &sp68, &sp64);
+ SkinMatrix_Vec3fMtxFMultXYZW(&globalCtx->viewProjectionMtxF, &sp74, &sp68, &sp64);
sp60 = (sp64 < 200.0f) ? 0.08f : (sp64 / 200.0f) * 0.08f;
diff --git a/src/code/z_room.c b/src/code/z_room.c
index 061e37a17..c25c755a4 100644
--- a/src/code/z_room.c
+++ b/src/code/z_room.c
@@ -125,7 +125,7 @@ void func_80095D04(GlobalContext* globalCtx, Room* room, u32 flags) {
sp90.x = polygonDlist->pos.x;
sp90.y = polygonDlist->pos.y;
sp90.z = polygonDlist->pos.z;
- SkinMatrix_Vec3fMtxFMultXYZW(&globalCtx->mf_11D60, &sp90, &sp84, &sp80);
+ SkinMatrix_Vec3fMtxFMultXYZW(&globalCtx->viewProjectionMtxF, &sp90, &sp84, &sp80);
if (-(f32)polygonDlist->unk_06 < sp84.z) {
temp_f2 = sp84.z - polygonDlist->unk_06;
if (temp_f2 < globalCtx->lightCtx.fogFar) {