Name coordinate transformation matrix similar to OoT (#499)

* name coordiante transformation names similar to OoT

* update actorfixer
This commit is contained in:
engineer124 2021-12-20 07:32:41 +11:00 committed by GitHub
parent 985852f837
commit 51ee1c2c70
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
30 changed files with 44 additions and 41 deletions

View File

@ -2970,7 +2970,7 @@ void func_80166B30(GlobalContext* globalCtx);
void func_80167814(GlobalContext* globalCtx);
void func_80167DE4(GlobalContext* globalCtx);
// void func_80167F0C(void);
void func_80168090(GlobalContext* globalCtx);
void Play_Draw(GlobalContext* globalCtx);
void func_80168DAC(GlobalContext* globalCtx);
void Play_Update(GlobalContext* globalCtx);
s32 func_801690CC(GlobalContext* globalCtx);

View File

@ -1401,9 +1401,9 @@ struct GlobalContext {
/* 0x18794 */ void* unk_18794; //! @TODO: Determine function prototype
/* 0x18798 */ s32 (*setPlayerTalkAnim)(struct GlobalContext* globalCtx, void* talkAnim, s32 arg2);
/* 0x1879C */ s16 unk_1879C[10];
/* 0x187B0 */ MtxF projectionMatrix;
/* 0x187B0 */ MtxF viewProjectionMtxF;
/* 0x187F0 */ Vec3f unk_187F0;
/* 0x187FC */ MtxF mf_187FC;
/* 0x187FC */ MtxF billboardMtxF;
/* 0x1883C */ Mtx* unk_1883C;
/* 0x18840 */ u32 gameplayFrames;
/* 0x18844 */ u8 unk_18844;

View File

@ -70,7 +70,7 @@ void DebugDisplay_DrawSpriteI8(DebugDispObject* dispObj, void* texture, GlobalCo
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, dispObj->color.r, dispObj->color.g, dispObj->color.b, dispObj->color.a);
Matrix_InsertTranslation(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_InsertMatrix(&globalCtx->mf_187FC, MTXMODE_APPLY);
Matrix_InsertMatrix(&globalCtx->billboardMtxF, MTXMODE_APPLY);
Matrix_InsertRotation(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,

View File

@ -48,7 +48,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_187FC, &mfTrans11DA0);
SkinMatrix_MtxFMtxFMult(&mfTrans, &globalCtx->billboardMtxF, &mfTrans11DA0);
SkinMatrix_MtxFMtxFMult(&mfTrans11DA0, &mfScale, &mfResult);
gSegments[0x06] = PHYSICAL_TO_VIRTUAL(object);
gSPSegment(POLY_XLU_DISP++, 0x06, object);

View File

@ -131,7 +131,7 @@ void Lights_BindPoint(Lights* lights, LightParams* params, GlobalContext* global
posF.x = params->point.x;
posF.y = params->point.y;
posF.z = params->point.z;
SkinMatrix_Vec3fMtxFMultXYZ(&globalCtx->projectionMatrix, &posF, &adjustedPos);
SkinMatrix_Vec3fMtxFMultXYZ(&globalCtx->viewProjectionMtxF, &posF, &adjustedPos);
if ((adjustedPos.z > -radiusF) && (600 + radiusF > adjustedPos.z) && (400 > fabsf(adjustedPos.x) - radiusF) &&
(400 > fabsf(adjustedPos.y) - radiusF)) {
light = Lights_FindSlot(lights);

View File

@ -52,7 +52,7 @@
#pragma GLOBAL_ASM("asm/non_matchings/code/z_play/func_80167F0C.s")
#pragma GLOBAL_ASM("asm/non_matchings/code/z_play/func_80168090.s")
#pragma GLOBAL_ASM("asm/non_matchings/code/z_play/Play_Draw.s")
#pragma GLOBAL_ASM("asm/non_matchings/code/z_play/func_80168DAC.s")

View File

@ -1471,7 +1471,7 @@ void Boss02_Draw(Actor* thisx, GlobalContext* globalCtx2) {
}
func_809DA50C(1, &this->colliderSphere2, &this->unk_147C[i + 1]);
SkinMatrix_Vec3fMtxFMultXYZW(&globalCtx->projectionMatrix, &this->unk_147C[i + 1], &this->unk_167C,
SkinMatrix_Vec3fMtxFMultXYZW(&globalCtx->viewProjectionMtxF, &this->unk_147C[i + 1], &this->unk_167C,
&this->actor.projectedW);
} else {
func_809DA50C(i, &this->colliderSphere1, &this->unk_147C[i + 1]);
@ -1578,7 +1578,7 @@ void func_809DD2F8(GlobalContext* globalCtx) {
(effect->unk_26 + (i * 3)) * 5, 32, 64, 1, 0, 0, 32, 32));
Matrix_InsertTranslation(effect->unk_00.x, effect->unk_00.y, effect->unk_00.z, MTXMODE_NEW);
Matrix_NormalizeXYZ(&globalCtx->mf_187FC);
Matrix_NormalizeXYZ(&globalCtx->billboardMtxF);
Matrix_Scale(effect->unk_34 * D_809DF5B0, effect->unk_34 * D_809DF5B0, 1.0f, MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx),
@ -1619,7 +1619,7 @@ void func_809DD2F8(GlobalContext* globalCtx) {
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 200, (u8)effect->unk_2C);
Matrix_InsertTranslation(effect->unk_00.x, effect->unk_00.y, effect->unk_00.z, MTXMODE_NEW);
Matrix_NormalizeXYZ(&globalCtx->mf_187FC);
Matrix_NormalizeXYZ(&globalCtx->billboardMtxF);
Matrix_Scale(effect->unk_34 * D_809DF5B0, effect->unk_34 * D_809DF5B0, 1.0f, MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx),
@ -1643,7 +1643,7 @@ void func_809DD2F8(GlobalContext* globalCtx) {
(effect->unk_26 + (i * 3)) * 5, 32, 64, 1, 0, 0, 32, 32));
Matrix_InsertTranslation(effect->unk_00.x, effect->unk_00.y, effect->unk_00.z, 0);
Matrix_NormalizeXYZ(&globalCtx->mf_187FC);
Matrix_NormalizeXYZ(&globalCtx->billboardMtxF);
Matrix_Scale(effect->unk_34 * D_809DF5B0, effect->unk_34 * D_809DF5B0, 1.0f, MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx),

View File

@ -588,7 +588,7 @@ void DemoKakyo_DrawLostWoodsSparkle(Actor* thisx, GlobalContext* globalCtx2) {
break;
}
Matrix_InsertMatrix(&globalCtx->mf_187FC, MTXMODE_APPLY);
Matrix_InsertMatrix(&globalCtx->billboardMtxF, MTXMODE_APPLY);
Matrix_InsertZRotation_f(DEGF_TO_RADF(globalCtx->state.frames * 20.0f), MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx),
@ -659,7 +659,7 @@ void DemoKankyo_DrawMoonAndGiant(Actor* thisx, GlobalContext* globalCtx2) {
gSPDisplayList(POLY_XLU_DISP++, &D_04023348);
Matrix_InsertMatrix(&globalCtx->mf_187FC, MTXMODE_APPLY);
Matrix_InsertMatrix(&globalCtx->billboardMtxF, MTXMODE_APPLY);
Matrix_InsertZRotation_f(DEGF_TO_RADF(globalCtx->state.frames * 20.0f), MTXMODE_APPLY);

View File

@ -288,7 +288,7 @@ void func_80919768(Actor* thisx, GlobalContext* globalCtx2) {
initialPositions->z * ((this->dz * aux) + (1.0f - this->dz)), MTXMODE_APPLY);
Matrix_Scale(this->scalingFactor, this->scalingFactor, this->scalingFactor, MTXMODE_APPLY);
Matrix_NormalizeXYZ(&globalCtx->mf_187FC);
Matrix_NormalizeXYZ(&globalCtx->billboardMtxF);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
@ -345,7 +345,7 @@ void func_809199FC(Actor* thisx, GlobalContext* globalCtx2) {
Matrix_Scale(*distanceTraveled * this->scalingFactor, *distanceTraveled * this->scalingFactor,
*distanceTraveled * this->scalingFactor, MTXMODE_APPLY);
Matrix_NormalizeXYZ(&globalCtx->mf_187FC);
Matrix_NormalizeXYZ(&globalCtx->billboardMtxF);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPClearGeometryMode(POLY_XLU_DISP++, G_FOG | G_LIGHTING);

View File

@ -871,7 +871,7 @@ void EnClearTag_DrawEffects(Actor* thisx, GlobalContext* globalCtx) {
POLY_XLU_DISP++, 0x08,
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, -effect->actionTimer * 5, 32, 64, 1, 0, 0, 32, 32));
Matrix_InsertTranslation(effect->position.x, effect->position.y, effect->position.z, MTXMODE_NEW);
Matrix_NormalizeXYZ(&globalCtx->mf_187FC);
Matrix_NormalizeXYZ(&globalCtx->billboardMtxF);
Matrix_Scale(effect->smokeScaleX * effect->scale, effect->smokeScaleY * effect->scale, 1.0f, MTXMODE_APPLY);
Matrix_InsertTranslation(0.0f, 20.0f, 0.0f, MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
@ -897,7 +897,7 @@ void EnClearTag_DrawEffects(Actor* thisx, GlobalContext* globalCtx) {
POLY_XLU_DISP++, 0x08,
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, -effect->actionTimer * 15, 32, 64, 1, 0, 0, 32, 32));
Matrix_InsertTranslation(effect->position.x, effect->position.y, effect->position.z, MTXMODE_NEW);
Matrix_NormalizeXYZ(&globalCtx->mf_187FC);
Matrix_NormalizeXYZ(&globalCtx->billboardMtxF);
Matrix_Scale(effect->scale, effect->scale, 1.0f, MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, gClearTagFireEffectDL);
@ -919,7 +919,7 @@ void EnClearTag_DrawEffects(Actor* thisx, GlobalContext* globalCtx) {
// Draw the flash billboard effect.
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 200, (s8)effect->primColor.a);
Matrix_InsertTranslation(effect->position.x, effect->position.y, effect->position.z, MTXMODE_NEW);
Matrix_NormalizeXYZ(&globalCtx->mf_187FC);
Matrix_NormalizeXYZ(&globalCtx->billboardMtxF);
Matrix_Scale(2.0f * effect->scale, 2.0f * effect->scale, 1.0f, MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, gClearTagFlashEffectDL);

View File

@ -103,7 +103,7 @@ void func_80B3E168(EnDaiParticle* particle, GlobalContext* globalCtx2) {
(particle->unk_02 + (i * 3)) * 15, 0x20, 0x40, 1, 0, 0, 0x20, 0x20));
Matrix_InsertTranslation(particle->unk_10.x, particle->unk_10.y, particle->unk_10.z, MTXMODE_NEW);
Matrix_NormalizeXYZ(&globalCtx->mf_187FC);
Matrix_NormalizeXYZ(&globalCtx->billboardMtxF);
Matrix_Scale(particle->unk_34, particle->unk_34, 1.0f, MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx),

View File

@ -288,7 +288,7 @@ s32 func_80A50950(EnDnbUnkStruct* arg0, GlobalContext* globalCtx2) {
Matrix_InsertTranslation(arg0->unk_0C.x, arg0->unk_0C.y, arg0->unk_0C.z, MTXMODE_NEW);
Matrix_Scale(arg0->unk_04, arg0->unk_04, 1.0f, MTXMODE_APPLY);
Matrix_NormalizeXYZ(&globalCtx->mf_187FC);
Matrix_NormalizeXYZ(&globalCtx->billboardMtxF);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);

View File

@ -1005,7 +1005,7 @@ void EnDno_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Ve
frames = globalCtx->gameplayFrames;
Matrix_MultiplyVector3fByState(&D_80A73B40, &sp84);
func_80A711D0(this, globalCtx, &sp84);
Matrix_NormalizeXYZ(&globalCtx->mf_187FC);
Matrix_NormalizeXYZ(&globalCtx->billboardMtxF);
Matrix_Scale(0.15f, 0.15f, 1.0f, MTXMODE_APPLY);
Matrix_InsertTranslation(0.0f, -3200.0f, 0.0f, MTXMODE_APPLY);
gfxXlu = func_8012C2B4(POLY_XLU_DISP);

View File

@ -155,7 +155,7 @@ void EnElfbub_Draw(Actor* thisx, GlobalContext* globalCtx2) {
func_8012C2DC(globalCtx->state.gfxCtx);
Matrix_InsertTranslation(0.0f, 0.0f, 1.0f, MTXMODE_APPLY);
Matrix_NormalizeXYZ(&globalCtx->mf_187FC);
Matrix_NormalizeXYZ(&globalCtx->billboardMtxF);
Matrix_Scale(this->xyScale + 1.0f, this->xyScale + 1.0f, 1.0f, MTXMODE_APPLY);
Matrix_InsertZRotation_s(this->zRot, MTXMODE_APPLY);
Matrix_Scale(this->xScale + 1.0f, 1.0f, 1.0f, MTXMODE_APPLY);

View File

@ -607,7 +607,7 @@ void EnElforg_Draw(Actor* thisx, GlobalContext* globalCtx) {
AnimatedMat_Draw(globalCtx, Lib_SegmentedToVirtual(&D_0402C818));
break;
}
Matrix_InsertMatrix(&globalCtx->mf_187FC, MTXMODE_APPLY);
Matrix_InsertMatrix(&globalCtx->billboardMtxF, MTXMODE_APPLY);
POLY_XLU_DISP =
SkelAnime_DrawFlex(globalCtx, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount,

View File

@ -284,7 +284,7 @@ void EnEncount2_DrawParticles(EnEncount2* this, GlobalContext* globalCtx) {
gDPPipeSync(POLY_XLU_DISP++);
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 255, 255, 255, 255);
gDPSetEnvColor(POLY_XLU_DISP++, 250, 180, 255, sPtr->alpha);
Matrix_InsertMatrix(&globalCtx->mf_187FC, MTXMODE_APPLY);
Matrix_InsertMatrix(&globalCtx->billboardMtxF, MTXMODE_APPLY);
Matrix_InsertZRotation_f(DEGTORAD(globalCtx->state.frames * 20.0f), MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);

View File

@ -383,7 +383,7 @@ void EnFg_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec
if ((limbIndex == 7) || (limbIndex == 8)) {
OPEN_DISPS(globalCtx->state.gfxCtx);
Matrix_StatePush();
Matrix_NormalizeXYZ(&globalCtx->mf_187FC);
Matrix_NormalizeXYZ(&globalCtx->billboardMtxF);
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_OPA_DISP++, *dList);
Matrix_StatePop();
@ -477,7 +477,7 @@ void EnFg_DrawDust(GlobalContext* globalCtx, EnFgEffectDust* dustEffect) {
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 0, 0, 0, alpha);
gDPPipeSync(POLY_XLU_DISP++);
Matrix_InsertTranslation(dustEffect->pos.x, dustEffect->pos.y, dustEffect->pos.z, MTXMODE_NEW);
Matrix_NormalizeXYZ(&globalCtx->mf_187FC);
Matrix_NormalizeXYZ(&globalCtx->billboardMtxF);
Matrix_Scale(dustEffect->xyScale, dustEffect->xyScale, 1.0f, MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);

View File

@ -1058,7 +1058,7 @@ void EnFish2_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList,
OPEN_DISPS(globalCtx->state.gfxCtx);
Matrix_StatePush();
Matrix_NormalizeXYZ(&globalCtx->mf_187FC);
Matrix_NormalizeXYZ(&globalCtx->billboardMtxF);
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_OPA_DISP++, *dList);

View File

@ -1463,7 +1463,7 @@ void func_80964950(GlobalContext* globalCtx, EnFuUnkStruct* ptr, s32 len) {
flag = true;
}
Matrix_InsertTranslation(ptr->unk_08.x, ptr->unk_08.y, ptr->unk_08.z, MTXMODE_NEW);
Matrix_NormalizeXYZ(&globalCtx->mf_187FC);
Matrix_NormalizeXYZ(&globalCtx->billboardMtxF);
Matrix_Scale(ptr->unk_00, ptr->unk_00, ptr->unk_00, MTXMODE_APPLY);
gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(&D_0405E6F0));

View File

@ -4480,7 +4480,7 @@ void func_80B4DB14(Actor* thisx, GlobalContext* globalCtx) {
gSPSetOtherMode(gfx++, G_SETOTHERMODE_H, 4, 4, 0x00000080);
gDPSetCombineLERP(gfx++, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, PRIMITIVE, TEXEL0, 0, PRIMITIVE,
0);
Matrix_InsertMatrix(&globalCtx->mf_187FC, MTXMODE_NEW);
Matrix_InsertMatrix(&globalCtx->billboardMtxF, MTXMODE_NEW);
Matrix_GetStateTranslationAndScaledZ(60.0f, &sp80);
sp74.x = thisx->world.pos.x + sp80.x;
sp74.y = thisx->world.pos.y + sp80.y + 68.0f;
@ -4572,14 +4572,14 @@ void func_80B4E3F0(Actor* thisx, GlobalContext* globalCtx) {
Vec3f sp5C;
Matrix_StatePush();
Matrix_InsertMatrix(&globalCtx->mf_187FC, MTXMODE_NEW);
Matrix_InsertMatrix(&globalCtx->billboardMtxF, MTXMODE_NEW);
Matrix_GetStateTranslationAndScaledZ(200.0f, &sp5C);
Matrix_StatePop();
sp5C.x += thisx->world.pos.x;
sp5C.y += thisx->world.pos.y;
sp5C.z += thisx->world.pos.z;
EnInvadepoh_SetSysMatrix(&sp5C);
Matrix_NormalizeXYZ(&globalCtx->mf_187FC);
Matrix_NormalizeXYZ(&globalCtx->billboardMtxF);
Matrix_InsertZRotation_s(((EnInvadepoh*)thisx)->unk304, MTXMODE_APPLY);
OPEN_DISPS(globalCtx->state.gfxCtx);
func_8012C2DC(globalCtx->state.gfxCtx);

View File

@ -622,7 +622,7 @@ void EnMinifrog_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dLis
if ((limbIndex == 7) || (limbIndex == 8)) {
OPEN_DISPS(globalCtx->state.gfxCtx);
Matrix_NormalizeXYZ(&globalCtx->mf_187FC);
Matrix_NormalizeXYZ(&globalCtx->billboardMtxF);
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_OPA_DISP++, *dList);
CLOSE_DISPS(globalCtx->state.gfxCtx);

View File

@ -1007,7 +1007,7 @@ void EnNiw_DrawFeathers(EnNiw* this, GlobalContext* globalCtx) {
}
Matrix_InsertTranslation(feather->pos.x, feather->pos.y, feather->pos.z, MTXMODE_NEW);
Matrix_NormalizeXYZ(&globalCtx->mf_187FC);
Matrix_NormalizeXYZ(&globalCtx->billboardMtxF);
Matrix_Scale(feather->scale, feather->scale, 1.0f, MTXMODE_APPLY);
Matrix_InsertZRotation_f(feather->zRot, MTXMODE_APPLY);
Matrix_InsertTranslation(0.0f, -1000.0f, 0.0f, MTXMODE_APPLY);

View File

@ -171,7 +171,7 @@ void EnNutsball_Draw(Actor* thisx, GlobalContext* globalCtx) {
OPEN_DISPS(globalCtx->state.gfxCtx);
func_8012C28C(globalCtx->state.gfxCtx);
Matrix_InsertMatrix(&globalCtx->mf_187FC, MTXMODE_APPLY);
Matrix_InsertMatrix(&globalCtx->billboardMtxF, MTXMODE_APPLY);
Matrix_InsertZRotation_s(this->actor.home.rot.z, MTXMODE_APPLY);
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_OPA_DISP++, D_04058BA0);

View File

@ -1695,7 +1695,7 @@ void EnSob1_DrawBombShopkeeper(Actor* thisx, GlobalContext* globalCtx) {
EnSob1_DrawStickDirectionPrompt(globalCtx, this);
frames = globalCtx->gameplayFrames;
func_8012C2DC(globalCtx->state.gfxCtx);
Matrix_NormalizeXYZ(&globalCtx->mf_187FC);
Matrix_NormalizeXYZ(&globalCtx->billboardMtxF);
Matrix_Scale(1.0f, 1.0f, 1.0f, MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPSegment(POLY_XLU_DISP++, 0x08,

View File

@ -1078,7 +1078,7 @@ void EnThiefbird_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dLi
OPEN_DISPS(globalCtx->state.gfxCtx);
gfx = POLY_OPA_DISP;
Matrix_NormalizeXYZ(&globalCtx->mf_187FC);
Matrix_NormalizeXYZ(&globalCtx->billboardMtxF);
gSPMatrix(&gfx[0], Matrix_NewMtx(globalCtx->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(&gfx[1], this->unk_3E4);
POLY_OPA_DISP = &gfx[2];
@ -1136,7 +1136,7 @@ void func_80C13354(EnThiefbird* this, GlobalContext* globalCtx2) {
for (i = 0; i < ARRAY_COUNT(this->unk_3F0); i++, ptr++) {
if (ptr->unk_22 != 0) {
Matrix_InsertTranslation(ptr->unk_00.x, ptr->unk_00.y, ptr->unk_00.z, MTXMODE_NEW);
Matrix_NormalizeXYZ(&globalCtx->mf_187FC);
Matrix_NormalizeXYZ(&globalCtx->billboardMtxF);
Matrix_RotateY(ptr->unk_1E, MTXMODE_APPLY);
Matrix_InsertZRotation_s(ptr->unk_20, MTXMODE_APPLY);
Matrix_InsertTranslation(0.0f, -10.0f, 0.0f, MTXMODE_APPLY);

View File

@ -156,7 +156,7 @@ void ObjMoonStone_Draw(Actor* thisx, GlobalContext* globalCtx) {
AnimatedMat_Draw(globalCtx, Lib_SegmentedToVirtual(&D_06001C60));
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_OPA_DISP++, D_06000D78);
Matrix_NormalizeXYZ(&globalCtx->mf_187FC);
Matrix_NormalizeXYZ(&globalCtx->billboardMtxF);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, D_06000C80);
CLOSE_DISPS(globalCtx->state.gfxCtx);

View File

@ -172,7 +172,7 @@ void ObjWarpstone_Draw(Actor* thisx, GlobalContext* globalCtx2) {
func_8012C2DC(globalCtx->state.gfxCtx);
Matrix_InsertTranslation(this->dyna.actor.world.pos.x, this->dyna.actor.world.pos.y + 34.0f,
this->dyna.actor.world.pos.z, MTXMODE_NEW);
Matrix_InsertMatrix(&globalCtx->mf_187FC, MTXMODE_APPLY);
Matrix_InsertMatrix(&globalCtx->billboardMtxF, MTXMODE_APPLY);
Matrix_InsertTranslation(0.0f, 0.0f, 30.0f, MTXMODE_APPLY);
Matrix_Scale(this->dyna.actor.velocity.x, this->dyna.actor.velocity.x, this->dyna.actor.velocity.x,
MTXMODE_APPLY);

View File

@ -338,6 +338,9 @@ animdict = {
"skelAnime.unk3E": "skelAnime.baseTransl",
"actor.yDistToWater" : "actor.depthInWater",
"actor.yDistToPlayer" : "actor.playerHeightRel",
"globalCtx->mf_187FC" : "globalCtx->billboardMtxF",
"globalCtx->projectionMatrix" : "globalCtx->viewProjectionMtxF",
}
def replace_anim(file):

View File

@ -2995,7 +2995,7 @@
0x80167814:("func_80167814",),
0x80167DE4:("func_80167DE4",),
0x80167F0C:("func_80167F0C",),
0x80168090:("func_80168090",),
0x80168090:("Play_Draw",),
0x80168DAC:("func_80168DAC",),
0x80168F64:("Play_Update",),
0x801690CC:("func_801690CC",),

View File

@ -2509,7 +2509,7 @@ asm/non_matchings/code/z_play/func_80166B30.s,func_80166B30,0x80166B30,0x339
asm/non_matchings/code/z_play/func_80167814.s,func_80167814,0x80167814,0x174
asm/non_matchings/code/z_play/func_80167DE4.s,func_80167DE4,0x80167DE4,0x4A
asm/non_matchings/code/z_play/func_80167F0C.s,func_80167F0C,0x80167F0C,0x61
asm/non_matchings/code/z_play/func_80168090.s,func_80168090,0x80168090,0x347
asm/non_matchings/code/z_play/Play_Draw.s,Play_Draw,0x80168090,0x347
asm/non_matchings/code/z_play/func_80168DAC.s,func_80168DAC,0x80168DAC,0x6E
asm/non_matchings/code/z_play/Play_Update.s,Play_Update,0x80168F64,0x5A
asm/non_matchings/code/z_play/func_801690CC.s,func_801690CC,0x801690CC,0xD

1 asm/non_matchings/code/z_en_a_keep/EnAObj_Init.s EnAObj_Init 0x800A5AC0 0x2B
2509 asm/non_matchings/code/z_play/func_80167814.s func_80167814 0x80167814 0x174
2510 asm/non_matchings/code/z_play/func_80167DE4.s func_80167DE4 0x80167DE4 0x4A
2511 asm/non_matchings/code/z_play/func_80167F0C.s func_80167F0C 0x80167F0C 0x61
2512 asm/non_matchings/code/z_play/func_80168090.s asm/non_matchings/code/z_play/Play_Draw.s func_80168090 Play_Draw 0x80168090 0x347
2513 asm/non_matchings/code/z_play/func_80168DAC.s func_80168DAC 0x80168DAC 0x6E
2514 asm/non_matchings/code/z_play/Play_Update.s Play_Update 0x80168F64 0x5A
2515 asm/non_matchings/code/z_play/func_801690CC.s func_801690CC 0x801690CC 0xD