Port m426Dll to PAL, match m428Dll and remove PS prefixes (#537)

* Port m426Dll to PAL

* Remove PS prefix from mtx function usages

* Match m428Dll
This commit is contained in:
dbalatoni13 2025-01-19 05:31:11 +01:00 committed by GitHub
parent 2a3c353029
commit accaf2085f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
72 changed files with 8178 additions and 4336 deletions

View file

@ -579,7 +579,7 @@ static void fn_1_1A60(Vec *arg0, s16 arg1, Vec *arg2)
}
temp_r31 = &Hu3DCamera[i];
C_MTXLookAt(sp1C, &temp_r31->pos, &temp_r31->up, &temp_r31->target);
PSMTXMultVec(sp1C, arg0, &sp10);
MTXMultVec(sp1C, arg0, &sp10);
temp_f30 = sp10.z * (sind(temp_r31->fov / 2) / cosd(temp_r31->fov / 2)) * temp_r31->aspect;
temp_f29 = sp10.z * (sind(temp_r31->fov / 2) / cosd(temp_r31->fov / 2));
temp_f28 = 0.9f * temp_r31->viewport_x;
@ -606,9 +606,9 @@ static void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3)
var_r30 = &Hu3DData[arg0];
Hu3DModelObjMtxGet(arg0, arg1, spC);
PSMTXConcat(var_r30->unk_F0, spC, spC);
MTXConcat(var_r30->unk_F0, spC, spC);
if (NULL != arg3) {
PSMTXCopy(spC, arg3);
MTXCopy(spC, arg3);
}
arg2->x = spC[0][3];
arg2->y = spC[1][3];
@ -1425,9 +1425,9 @@ static void fn_1_70E4(omObjData *arg0)
spC.y = 0.0f;
spC.z = var_f27;
temp_r31->unk24.z *= 0.92f;
PSMTXIdentity(sp18);
MTXIdentity(sp18);
mtxRot(sp18, temp_r31->unk24.x, temp_r31->unk24.y, 0.0f);
PSMTXMultVec(sp18, &spC, &spC);
MTXMultVec(sp18, &spC, &spC);
VECAdd(&spC, &temp_r31->unk00, &temp_r31->unk00);
omSetTra(arg0, temp_r31->unk00.x, temp_r31->unk00.y, temp_r31->unk00.z);
Hu3DModelTPLvlSet(arg0->model[0], temp_r31->unk30);

View file

@ -1384,18 +1384,18 @@ static void fn_1_46E4(Mtx arg0, float arg1, float arg2, float arg3)
Mtx sp8;
if (arg3 != 0.0f) {
PSMTXRotRad(arg0, 'Z', MTXDegToRad(arg3));
MTXRotRad(arg0, 'Z', MTXDegToRad(arg3));
}
else {
PSMTXIdentity(arg0);
MTXIdentity(arg0);
}
if (arg1 != 0.0f) {
PSMTXRotRad(sp38, 'X', MTXDegToRad(arg1));
PSMTXConcat(sp38, arg0, arg0);
MTXRotRad(sp38, 'X', MTXDegToRad(arg1));
MTXConcat(sp38, arg0, arg0);
}
if (arg2 != 0.0f) {
PSMTXRotRad(sp8, 'Y', MTXDegToRad(arg2));
PSMTXConcat(sp8, arg0, arg0);
MTXRotRad(sp8, 'Y', MTXDegToRad(arg2));
MTXConcat(sp8, arg0, arg0);
}
}

View file

@ -307,12 +307,12 @@ static void fn_1_6ED8(omObjData *arg0)
Mtx sp8;
s32 i;
PSMTXTrans(sp38, arg0->trans.x, arg0->trans.y, arg0->trans.z);
MTXTrans(sp38, arg0->trans.x, arg0->trans.y, arg0->trans.z);
mtxRot(sp8, arg0->rot.x, arg0->rot.y, arg0->rot.z);
PSMTXConcat(sp38, sp8, sp38);
MTXConcat(sp38, sp8, sp38);
for (i = 0; i < 6; i++) {
PSMTXTrans(sp8, lbl_1_data_A88[i].x, lbl_1_data_A88[i].y, lbl_1_data_A88[i].z);
PSMTXConcat(sp38, sp8, sp8);
MTXTrans(sp8, lbl_1_data_A88[i].x, lbl_1_data_A88[i].y, lbl_1_data_A88[i].z);
MTXConcat(sp38, sp8, sp8);
Hu3DModelPosSet(arg0->model[i + 1], sp8[0][3], sp8[1][3], sp8[2][3]);
Hu3DModelRotSet(arg0->model[i + 1], arg0->rot.x, arg0->rot.y, arg0->rot.z);
}
@ -598,16 +598,16 @@ static s32 fn_1_7D04(float arg0, float arg1, Vec *arg2)
temp_r28 -= 6;
fn_1_7BD4(temp_r21, &sp10);
sp10 = lbl_1_data_A88[temp_r21];
PSMTXTrans(sp4C, temp_r31->trans.x, temp_r31->trans.y, temp_r31->trans.z);
MTXTrans(sp4C, temp_r31->trans.x, temp_r31->trans.y, temp_r31->trans.z);
mtxRot(sp1C, temp_r31->rot.x, temp_r31->rot.y, temp_r31->rot.z);
PSMTXConcat(sp4C, sp1C, sp4C);
PSMTXTrans(sp1C, sp10.x, sp10.y, sp10.z);
PSMTXConcat(sp4C, sp1C, sp4C);
MTXConcat(sp4C, sp1C, sp4C);
MTXTrans(sp1C, sp10.x, sp10.y, sp10.z);
MTXConcat(sp4C, sp1C, sp4C);
var_r30 = lbl_1_data_AFC[temp_r28];
temp_r23 = lbl_1_data_B14[temp_r28];
for (i = 0; i < temp_r23; i++) {
PSMTXTrans(sp1C, var_r30->x, var_r30->y, var_r30->z);
PSMTXConcat(sp4C, sp1C, sp1C);
MTXTrans(sp1C, var_r30->x, var_r30->y, var_r30->z);
MTXConcat(sp4C, sp1C, sp1C);
arg2->x = sp1C[0][3];
arg2->y = sp1C[1][3];
arg2->z = sp1C[2][3];
@ -703,17 +703,17 @@ s32 fn_1_8470(Vec *arg0)
temp_r30 = lbl_1_bss_9C[lbl_1_bss_94];
temp_r27 = temp_r30->data;
var_r25 = fn_1_8274(temp_r27, sp8);
PSMTXTrans(sp50, temp_r30->trans.x, temp_r30->trans.y, temp_r30->trans.z);
MTXTrans(sp50, temp_r30->trans.x, temp_r30->trans.y, temp_r30->trans.z);
mtxRot(sp20, temp_r30->rot.x, temp_r30->rot.y, temp_r30->rot.z);
PSMTXConcat(sp50, sp20, sp50);
MTXConcat(sp50, sp20, sp50);
for (i = 0; i < var_r25; i++) {
fn_1_7BD4(sp8[i], arg0);
temp_r26 = fn_1_7C20(temp_r27, sp8[i]) - 6;
arg0->x += lbl_1_data_B2C[temp_r26].x;
arg0->y += lbl_1_data_B2C[temp_r26].y;
arg0->z += lbl_1_data_B2C[temp_r26].z;
PSMTXTrans(sp20, arg0->x, arg0->y, arg0->z);
PSMTXConcat(sp50, sp20, sp20);
MTXTrans(sp20, arg0->x, arg0->y, arg0->z);
MTXConcat(sp50, sp20, sp20);
arg0->x = sp20[0][3];
arg0->y = sp20[1][3];
arg0->z = sp20[2][3];

View file

@ -571,7 +571,7 @@ void fn_1_1A60(Vec *arg0, s16 arg1, Vec *arg2)
}
temp_r31 = &Hu3DCamera[i];
C_MTXLookAt(sp1C, &temp_r31->pos, &temp_r31->up, &temp_r31->target);
PSMTXMultVec(sp1C, arg0, &sp10);
MTXMultVec(sp1C, arg0, &sp10);
temp_f30 = sp10.z * (sind(temp_r31->fov / 2) / cosd(temp_r31->fov / 2)) * temp_r31->aspect;
temp_f29 = sp10.z * (sind(temp_r31->fov / 2) / cosd(temp_r31->fov / 2));
temp_f28 = 0.9f * temp_r31->viewport_x;
@ -598,9 +598,9 @@ void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3)
var_r30 = &Hu3DData[arg0];
Hu3DModelObjMtxGet(arg0, arg1, spC);
PSMTXConcat(var_r30->unk_F0, spC, spC);
MTXConcat(var_r30->unk_F0, spC, spC);
if (NULL != arg3) {
PSMTXCopy(spC, arg3);
MTXCopy(spC, arg3);
}
arg2->x = spC[0][3];
arg2->y = spC[1][3];
@ -928,7 +928,7 @@ void fn_1_37A4(ModelData *arg0, Mtx arg1)
UnkBss10Struct *temp_r31;
GXLoadPosMtxImm(arg1, GX_PNMTX0);
PSMTXInvXpose(arg1, spEC);
MTXInvXpose(arg1, spEC);
GXLoadNrmMtxImm(spEC, GX_PNMTX0);
temp_r31 = &lbl_1_data_10[2];
GXInitTexObj(&spC, temp_r31->unk00, temp_r31->unk08, temp_r31->unk0A, GX_TF_RGB565, GX_CLAMP, GX_CLAMP, GX_FALSE);
@ -941,31 +941,31 @@ void fn_1_37A4(ModelData *arg0, Mtx arg1)
GXLoadTexObj(&spC, GX_TEXMAP3);
GXSetNumTexGens(4);
C_MTXLightPerspective(sp2C, 30.0f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f);
PSMTXInverse(Hu3DCameraMtx, spEC);
PSMTXConcat(spEC, arg1, spEC);
PSMTXConcat(sp2C, Hu3DCameraMtx, spBC);
PSMTXConcat(spBC, spEC, spBC);
MTXInverse(Hu3DCameraMtx, spEC);
MTXConcat(spEC, arg1, spEC);
MTXConcat(sp2C, Hu3DCameraMtx, spBC);
MTXConcat(spBC, spEC, spBC);
GXLoadTexMtxImm(spBC, GX_TEXMTX0, GX_MTX3x4);
C_MTXLightPerspective(sp2C, 30.0f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f);
PSMTXInverse(Hu3DCameraMtx, spEC);
PSMTXConcat(spEC, arg1, spEC);
PSMTXConcat(sp2C, Hu3DCameraMtx, spBC);
PSMTXConcat(spBC, spEC, spBC);
MTXInverse(Hu3DCameraMtx, spEC);
MTXConcat(spEC, arg1, spEC);
MTXConcat(sp2C, Hu3DCameraMtx, spBC);
MTXConcat(spBC, spEC, spBC);
GXLoadTexMtxImm(spBC, GX_TEXMTX1, GX_MTX3x4);
PSMTXRotRad(spEC, 'X', MTXDegToRad(-90));
MTXRotRad(spEC, 'X', MTXDegToRad(-90));
var_f31 = 0.0004f;
PSMTXScale(sp8C, 0.00083333335f, var_f31, 0.0004f);
PSMTXConcat(sp8C, spEC, sp5C);
PSMTXTrans(spBC, 0.5f, 0.5f, 0.5f);
PSMTXConcat(spBC, sp5C, sp5C);
MTXScale(sp8C, 0.00083333335f, var_f31, 0.0004f);
MTXConcat(sp8C, spEC, sp5C);
MTXTrans(spBC, 0.5f, 0.5f, 0.5f);
MTXConcat(spBC, sp5C, sp5C);
sp5C[0][1] = -0.01f;
GXLoadTexMtxImm(sp5C, GX_TEXMTX2, GX_MTX2x4);
PSMTXRotRad(spEC, 'X', MTXDegToRad(-90));
MTXRotRad(spEC, 'X', MTXDegToRad(-90));
var_f31 = 0.0004f;
PSMTXScale(sp8C, var_f31, var_f31, var_f31);
PSMTXConcat(sp8C, spEC, sp5C);
PSMTXTrans(spBC, 0.5f, 0.5f, 0.0f);
PSMTXConcat(spBC, sp5C, sp5C);
MTXScale(sp8C, var_f31, var_f31, var_f31);
MTXConcat(sp8C, spEC, sp5C);
MTXTrans(spBC, 0.5f, 0.5f, 0.0f);
MTXConcat(spBC, sp5C, sp5C);
GXLoadTexMtxImm(sp5C, GX_TEXMTX3, GX_MTX2x4);
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX0, GX_FALSE, GX_PTIDENTITY);
GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX1, GX_FALSE, GX_PTIDENTITY);
@ -974,12 +974,12 @@ void fn_1_37A4(ModelData *arg0, Mtx arg1)
GXSetNumIndStages(2);
GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD2, GX_TEXMAP2);
GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1);
PSMTXScale(spBC, -0.2f, -0.2f, 0.2f);
MTXScale(spBC, -0.2f, -0.2f, 0.2f);
GXSetIndTexMtx(GX_ITM_0, (float(*)[3])spBC, -2);
GXSetTevIndWarp(GX_TEVSTAGE0, GX_INDTEXSTAGE0, GX_TRUE, GX_FALSE, GX_ITM_0);
GXSetIndTexOrder(GX_INDTEXSTAGE1, GX_TEXCOORD3, GX_TEXMAP3);
GXSetIndTexCoordScale(GX_INDTEXSTAGE1, GX_ITS_1, GX_ITS_1);
PSMTXScale(spBC, 0.5f, 0.5f, 0.5f);
MTXScale(spBC, 0.5f, 0.5f, 0.5f);
GXSetIndTexMtx(GX_ITM_1, (float(*)[3])spBC, 0);
GXSetTevIndWarp(GX_TEVSTAGE1, GX_INDTEXSTAGE1, GX_TRUE, GX_FALSE, GX_ITM_1);
GXSetNumTevStages(2);
@ -1031,10 +1031,10 @@ void fn_1_4024(ModelData *arg0, Mtx arg1)
fn_1_2714(1, GX_FALSE);
GXLoadPosMtxImm(arg1, GX_PNMTX0);
C_MTXLightPerspective(sp98, 30.0f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f);
PSMTXInverse(Hu3DCameraMtx, sp68);
PSMTXConcat(sp68, arg1, sp68);
PSMTXConcat(sp98, Hu3DCameraMtx, sp38);
PSMTXConcat(sp38, sp68, sp68);
MTXInverse(Hu3DCameraMtx, sp68);
MTXConcat(sp68, arg1, sp68);
MTXConcat(sp98, Hu3DCameraMtx, sp38);
MTXConcat(sp38, sp68, sp68);
GXLoadTexMtxImm(sp68, GX_TEXMTX0, GX_MTX3x4);
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX0, GX_FALSE, GX_PTIDENTITY);
GXSetNumChans(1);
@ -1096,7 +1096,7 @@ void fn_1_4700(ModelData *arg0, Mtx arg1)
C_MTXOrtho(sp20, 0.0f, 480.0f, 0.0f, 640.0f, 0.0f, 100.0f);
GXSetProjection(sp20, GX_ORTHOGRAPHIC);
PSMTXIdentity(sp60);
MTXIdentity(sp60);
GXLoadPosMtxImm(sp60, GX_PNMTX0);
GXSetNumChans(1);
GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE);

View file

@ -1083,7 +1083,7 @@ void fn_1_45BC(ModelData *arg0, Mtx arg1)
}
if (!var_r31->unk_28) {
GXLoadPosMtxImm(arg1, 0);
PSMTXInvXpose(arg1, sp10);
MTXInvXpose(arg1, sp10);
GXLoadNrmMtxImm(sp10, 0);
var_r26 = fn_1_D06C(arg0, Hu3DCameraMtx, Hu3DCameraMtxXPose, 2.0f);
GXSetNumTevStages(1);
@ -2149,7 +2149,7 @@ void fn_1_82C8(Mtx arg0, s32 arg1, float arg8)
sp80.z = arg0[2][3];
sp74.x = sp74.z = 0.0f;
sp74.y = atan2d(arg0[0][0], arg0[2][0]);
PSMTXCopy(arg0, sp8C);
MTXCopy(arg0, sp8C);
sp8C[0][3] = sp8C[1][3] = sp8C[2][3] = sp8C[3][3] = 0.0f;
sp68.x = -25.0f;
sp68.z = -50.0f;
@ -2227,7 +2227,7 @@ void fn_1_8F98(void)
var_r31->unk_10 = 0.0f;
var_r31->unk_14 = 6.0f;
var_r31->unk_18 = 1.0f;
PSMTXIdentity(var_r31->unk_1C);
MTXIdentity(var_r31->unk_1C);
if (var_r30 == 0) {
var_r31->unk_04 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M406, 59));
}
@ -2246,7 +2246,7 @@ void fn_1_8F98(void)
var_r31->unk_10 = 0.0f;
var_r31->unk_14 = 6.0f;
var_r31->unk_18 = 1.0f;
PSMTXIdentity(var_r31->unk_1C);
MTXIdentity(var_r31->unk_1C);
if (var_r30 == 0) {
var_r31->unk_04 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M406, 60));
}
@ -2278,8 +2278,8 @@ void fn_1_91E0(void)
var_f31 = var_r31->unk_18 * cosd((90.0f * var_f30));
var_f31 = var_f31;
var_r30 = &Hu3DData[var_r31->unk_04];
PSMTXScale(sp8, var_f31, var_f31, var_f31);
PSMTXConcat(var_r31->unk_1C, sp8, var_r30->unk_F0);
MTXScale(sp8, var_f31, var_f31, var_f31);
MTXConcat(var_r31->unk_1C, sp8, var_r30->unk_F0);
var_r30->unk_F0[0][3] = var_r31->unk_1C[0][3];
var_r30->unk_F0[1][3] = var_r31->unk_1C[1][3];
var_r30->unk_F0[2][3] = var_r31->unk_1C[2][3];
@ -2299,8 +2299,8 @@ void fn_1_91E0(void)
var_f31 = var_r31->unk_18 * cosd((90.0f * var_f30));
var_f31 = var_f31;
var_r30 = &Hu3DData[var_r31->unk_04];
PSMTXScale(sp8, var_f31, var_f31, var_f31);
PSMTXConcat(var_r31->unk_1C, sp8, var_r30->unk_F0);
MTXScale(sp8, var_f31, var_f31, var_f31);
MTXConcat(var_r31->unk_1C, sp8, var_r30->unk_F0);
var_r30->unk_F0[0][3] = var_r31->unk_1C[0][3];
var_r30->unk_F0[1][3] = var_r31->unk_1C[1][3];
var_r30->unk_F0[2][3] = var_r31->unk_1C[2][3];
@ -2340,7 +2340,7 @@ s32 fn_1_94C0(Mtx arg0, s32 arg1, s32 arg2)
sp64.z = arg0[2][3];
sp58.x = sp58.z = 0.0f;
sp58.y = atan2d(arg0[0][0], arg0[2][0]);
PSMTXCopy(arg0, spA0);
MTXCopy(arg0, spA0);
spA0[0][3] = spA0[1][3] = spA0[2][3] = spA0[3][3] = 0.0f;
if (!arg2) {
sp4C.x = 25.0f;
@ -2419,12 +2419,12 @@ s32 fn_1_94C0(Mtx arg0, s32 arg1, s32 arg2)
var_r31->unk_10 = 1.0f;
var_r31->unk_14 = 6.0f;
var_r31->unk_18 = var_f31;
PSMTXCopy(arg0, var_r31->unk_1C);
MTXCopy(arg0, var_r31->unk_1C);
Hu3DMotionTimeSet(var_r31->unk_04, 0.0f);
Hu3DMotionSpeedSet(var_r31->unk_04, 0.0f);
var_r27 = &Hu3DData[var_r31->unk_04];
PSMTXScale(sp70, var_f31, var_f31, var_f31);
PSMTXConcat(arg0, sp70, var_r27->unk_F0);
MTXScale(sp70, var_f31, var_f31, var_f31);
MTXConcat(arg0, sp70, var_r27->unk_F0);
var_r27->unk_F0[0][3] = arg0[0][3];
var_r27->unk_F0[1][3] = arg0[1][3];
var_r27->unk_F0[2][3] = arg0[2][3];
@ -2630,7 +2630,7 @@ void fn_1_ADB4(ModelData *arg0, float (*arg1)[4])
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_A0);
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
PSMTXIdentity(sp50);
MTXIdentity(sp50);
GXLoadPosMtxImm(sp50, 0);
GXSetZMode(GX_FALSE, GX_ALWAYS, GX_TRUE);
GXSetNumChans(1);
@ -2954,7 +2954,7 @@ void fn_1_BC18(ModelData *arg0, float (*arg1)[4])
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0);
GXSetArray(GX_VA_TEX0, var_r31->unk_44, 8);
if (HmfInverseMtxF3X3(arg1, sp128) == 0) {
PSMTXIdentity(sp128);
MTXIdentity(sp128);
}
PSMTXReorder(sp128, sp8);
if (var_r31->unk_4C) {
@ -2993,9 +2993,9 @@ void fn_1_BC18(ModelData *arg0, float (*arg1)[4])
VECScale(&lbl_1_data_8E0[1], &sp98[1], var_r29->unk_28);
VECScale(&lbl_1_data_8E0[2], &sp98[2], var_r29->unk_28);
VECScale(&lbl_1_data_8E0[3], &sp98[3], var_r29->unk_28);
PSMTXRotRad(spC8, 90, var_r29->unk_2C);
PSMTXConcat(sp128, spC8, spF8);
PSMTXMultVecArray(spF8, &sp98[0], &sp68[0], 4);
MTXRotRad(spC8, 90, var_r29->unk_2C);
MTXConcat(sp128, spC8, spF8);
MTXMultVecArray(spF8, &sp98[0], &sp68[0], 4);
VECAdd(&sp68[0], &var_r29->unk_30, var_r30++);
VECAdd(&sp68[1], &var_r29->unk_30, var_r30++);
VECAdd(&sp68[2], &var_r29->unk_30, var_r30++);
@ -3167,7 +3167,7 @@ void fn_1_C86C(ModelData *arg0, Mtx arg1)
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
GXSetArray(GX_VA_CLR0, &var_r31->unk_3C->unk_3C, 0x44);
if (HmfInverseMtxF3X3(arg1, sp9C) == 0) {
PSMTXIdentity(sp9C);
MTXIdentity(sp9C);
}
PSMTXReorder(sp9C, spC);
if (var_r31->unk_4C) {
@ -3362,8 +3362,8 @@ void fn_1_D13C(LightData *arg0, s16 arg1, Mtx arg2, Mtx arg3, float arg8)
break;
}
if (arg0->unk_00 & 0x8000) {
PSMTXMultVec(arg2, &arg0->unk_28, &sp24);
PSMTXMultVec(arg3, &arg0->unk_1C, &sp18);
MTXMultVec(arg2, &arg0->unk_28, &sp24);
MTXMultVec(arg3, &arg0->unk_1C, &sp18);
GXInitLightPos(&sp30, sp18.x, sp18.y, sp18.z);
}
else {

View file

@ -666,11 +666,11 @@ void fn_1_E214(omObjData *object)
}
Hu3DModelScaleSet(object->model[5], var_f30, var_f30, var_f30);
var_r31->unk_50 += VECMag(&var_r31->unk_2C) / 3.125f;
PSMTXTrans(sp94, -var_r31->unk_68, -var_r31->unk_6C, -var_r31->unk_70);
PSMTXRotRad(sp64, 0x78, 0.017453292f * var_r31->unk_50);
PSMTXConcat(sp64, sp94, sp34);
PSMTXTrans(sp94, var_r31->unk_68, var_r31->unk_6C, var_r31->unk_70);
PSMTXConcat(sp94, sp34, var_r26->unk_F0);
MTXTrans(sp94, -var_r31->unk_68, -var_r31->unk_6C, -var_r31->unk_70);
MTXRotRad(sp64, 0x78, 0.017453292f * var_r31->unk_50);
MTXConcat(sp64, sp94, sp34);
MTXTrans(sp94, var_r31->unk_68, var_r31->unk_6C, var_r31->unk_70);
MTXConcat(sp94, sp34, var_r26->unk_F0);
var_r27 = 6;
var_f31 = 2.0f;
var_r25 = 0;
@ -690,14 +690,14 @@ void fn_1_E214(omObjData *object)
var_r31->unk_2C.x = var_r31->unk_2C.y = var_r31->unk_2C.z = 0.0f;
}
var_r31->unk_50 = fn_1_13AF4(var_r31->unk_50, 0.0f, 0.5f);
PSMTXTrans(sp94, -var_r31->unk_68, -var_r31->unk_6C, -var_r31->unk_70);
PSMTXRotRad(sp64, 0x78, 0.017453292f * var_r31->unk_50);
PSMTXConcat(sp64, sp94, sp34);
PSMTXTrans(sp94, var_r31->unk_68, var_r31->unk_6C, var_r31->unk_70);
PSMTXConcat(sp94, sp34, var_r26->unk_F0);
MTXTrans(sp94, -var_r31->unk_68, -var_r31->unk_6C, -var_r31->unk_70);
MTXRotRad(sp64, 0x78, 0.017453292f * var_r31->unk_50);
MTXConcat(sp64, sp94, sp34);
MTXTrans(sp94, var_r31->unk_68, var_r31->unk_6C, var_r31->unk_70);
MTXConcat(sp94, sp34, var_r26->unk_F0);
if (var_r31->unk_5E != 0) {
PSMTXTrans(sp94, 100.0f * (0.2f * (((var_r31->unk_5E & 1) * 2) - 1)), 0.0f, 0.0f);
PSMTXConcat(sp94, var_r26->unk_F0, var_r26->unk_F0);
MTXTrans(sp94, 100.0f * (0.2f * (((var_r31->unk_5E & 1) * 2) - 1)), 0.0f, 0.0f);
MTXConcat(sp94, var_r26->unk_F0, var_r26->unk_F0);
if (--var_r31->unk_5E == 0) {
if (++var_r31->unk_5C >= 4) {
var_r31->unk_00_field3 = 0;
@ -708,7 +708,7 @@ void fn_1_E214(omObjData *object)
Hu3DModelPosSet(object->model[6], object->trans.x + var_r31->unk_68, object->trans.y + var_r31->unk_6C,
object->trans.z + var_r31->unk_70);
Hu3DModelAttrReset(object->model[6], HU3D_ATTR_DISPOFF);
PSMTXIdentity(var_r26->unk_F0);
MTXIdentity(var_r26->unk_F0);
fn_1_117BC(var_r31->unk_14.x, 25.0f, &var_r31->unk_44, &var_r31->unk_2C);
}
}
@ -733,7 +733,7 @@ void fn_1_E214(omObjData *object)
if (fn_1_6A44(sp28) == 1) {
var_r31->unk_00_field0 = 1;
var_r26 = &Hu3DData[object->model[0]];
PSMTXIdentity(var_r26->unk_F0);
MTXIdentity(var_r26->unk_F0);
omVibrate(var_r31->unk_02, 0xC, 4, 2);
HuAudCharVoicePlayPos(var_r31->unk_0C, 0x123, &object->trans);
for (var_r24 = 0; var_r24 < 2; var_r24++) {
@ -804,13 +804,13 @@ void fn_1_F194(omObjData *object)
mtxTransCat(sp80, var_r30->pos.x, var_r30->pos.y, var_r30->pos.z);
VECCrossProduct(&sp44, &sp8, &sp44);
if (sp44.y >= 0.0f) {
PSMTXTrans(sp50, -10.0f, 0.0f, 0.0f);
PSMTXConcat(sp50, sp80, sp80);
MTXTrans(sp50, -10.0f, 0.0f, 0.0f);
MTXConcat(sp50, sp80, sp80);
fn_1_94C0(sp80, 10, 0);
}
else {
PSMTXTrans(sp50, 10.0f, 0.0f, 0.0f);
PSMTXConcat(sp50, sp80, sp80);
MTXTrans(sp50, 10.0f, 0.0f, 0.0f);
MTXConcat(sp50, sp80, sp80);
fn_1_94C0(sp80, 10, 1);
}
}
@ -868,13 +868,13 @@ void fn_1_F694(omObjData *object)
mtxTransCat(sp68, var_r30->pos.x, var_r30->pos.y, var_r30->pos.z);
VECCrossProduct(&sp20, &sp14, &sp8);
if (sp8.y >= 0.0f) {
PSMTXTrans(sp38, -10.0f, 0.0f, 0.0f);
PSMTXConcat(sp38, sp68, sp68);
MTXTrans(sp38, -10.0f, 0.0f, 0.0f);
MTXConcat(sp38, sp68, sp68);
fn_1_94C0(sp68, 10, 0);
}
else {
PSMTXTrans(sp38, 10.0f, 0.0f, 0.0f);
PSMTXConcat(sp38, sp68, sp68);
MTXTrans(sp38, 10.0f, 0.0f, 0.0f);
MTXConcat(sp38, sp68, sp68);
fn_1_94C0(sp68, 10, 1);
}
}
@ -1228,8 +1228,8 @@ void fn_1_10744(omObjData *object)
if ((var_r31->unk_64 < 0x50) && (var_r31->unk_64 > 0x1E)) {
mtxRot(sp48, var_r29->rot.x, var_r29->rot.y, var_r29->rot.z);
mtxTransCat(sp48, var_r29->pos.x, var_r29->pos.y, var_r29->pos.z);
PSMTXTrans(sp18, 10.0f, 0.0f, 0.0f);
PSMTXConcat(sp18, sp48, sp48);
MTXTrans(sp18, 10.0f, 0.0f, 0.0f);
MTXConcat(sp18, sp48, sp48);
fn_1_94C0(sp48, 10, 0);
}
var_r31->unk_2C.x = var_r31->unk_54 * (100.0 * (0.10000000149011612 * sind(180.0f + var_r31->unk_14.x)));
@ -1345,15 +1345,15 @@ void fn_1_114A0(omObjData *object)
}
mtxRot(sp9C, object->rot.x, object->rot.y, object->trans.z);
mtxScaleCat(sp9C, object->scale.x, object->scale.y, object->scale.z);
PSMTXTrans(sp9C, object->trans.x, object->trans.y, object->trans.z);
PSMTXRotRad(sp6C, 0x78, 0.017453292f * var_r31->unk_50);
PSMTXConcat(sp9C, sp6C, sp9C);
PSMTXCopy(sp9C, spC);
MTXTrans(sp9C, object->trans.x, object->trans.y, object->trans.z);
MTXRotRad(sp6C, 0x78, 0.017453292f * var_r31->unk_50);
MTXConcat(sp9C, sp6C, sp9C);
MTXCopy(sp9C, spC);
mtxScaleCat(spC, 2.0f, 2.0f, 2.0f);
PSMTXCopy(spC, Hu3DData[object->model[5]].unk_F0);
PSMTXTrans(sp3C, 0.0f, 110.0f, 0.0f);
PSMTXConcat(sp9C, sp3C, spC);
PSMTXCopy(spC, Hu3DData[object->model[7]].unk_F0);
MTXCopy(spC, Hu3DData[object->model[5]].unk_F0);
MTXTrans(sp3C, 0.0f, 110.0f, 0.0f);
MTXConcat(sp9C, sp3C, spC);
MTXCopy(spC, Hu3DData[object->model[7]].unk_F0);
}
void fn_1_117BC(float arg8, float arg9, UnkM406PlayerStruct2 *arg0, Vec *arg1)
@ -1753,7 +1753,7 @@ void fn_1_12BC4(omObjData *object)
var_r30->target.z = Center.z;
C_MTXLookAt(spA8, &var_r30->pos, &var_r30->up, &var_r30->target);
for (var_r31 = 0; var_r31 < lbl_1_bss_1C4; var_r31++) {
PSMTXMultVec(spA8, &lbl_1_bss_104[var_r31], &sp198[var_r31]);
MTXMultVec(spA8, &lbl_1_bss_104[var_r31], &sp198[var_r31]);
spD8[var_r31].x = sp198[var_r31].x / (sp198[var_r31].z * (sind((var_r30->fov / 2)) / cosd((var_r30->fov / 2))));
spD8[var_r31].y = sp198[var_r31].y / (sp198[var_r31].z * (sind((var_r30->fov / 2)) / cosd((var_r30->fov / 2))));
}
@ -1811,13 +1811,13 @@ s32 fn_1_136AC(HsfObject *arg0, Mtx arg1, char *arg2, Mtx arg3)
HsfTransform *var_r31 = &arg0->data.curr;
mtxRot(sp144, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z);
PSMTXScale(sp174, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z);
PSMTXConcat(sp144, sp174, sp174);
MTXScale(sp174, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z);
MTXConcat(sp144, sp174, sp174);
mtxTransCat(sp174, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z);
PSMTXConcat(arg1, sp174, sp174);
MTXConcat(arg1, sp174, sp174);
strcpy(sp4A4, MakeObjectName(arg2));
if (strcmp(sp4A4, arg0->name) == 0) {
PSMTXCopy(sp174, arg3);
MTXCopy(sp174, arg3);
return 1;
}
for (var_r23 = 0; var_r23 < arg0->data.childrenCount; var_r23++) {
@ -1838,7 +1838,7 @@ void fn_1_13A88(s16 arg0, char *arg1, Mtx arg2)
var_r31 = &Hu3DData[arg0];
var_r30 = var_r31->hsfData;
PSMTXIdentity(sp14);
MTXIdentity(sp14);
fn_1_136AC(var_r30->root, sp14, arg1, arg2);
}

File diff suppressed because it is too large Load diff

View file

@ -1416,9 +1416,9 @@ void fn_1_602C(ModelData *arg0, f32 (*arg1)[4])
}
else {
fn_1_6778(&temp_r30->unk2C, &sp38, &var_r29->unk34, 4);
PSMTXRotRad(spC8, 0x5A, 0.017453292f * var_r29->unk30);
PSMTXConcat(sp128, spC8, sp98);
PSMTXMultVecArray(sp98, &sp38, &sp8, 4);
MTXRotRad(spC8, 0x5A, 0.017453292f * var_r29->unk30);
MTXConcat(sp128, spC8, sp98);
MTXMultVecArray(sp98, &sp38, &sp8, 4);
VECAdd(&sp8, &var_r29->unk40, var_r31++);
VECAdd(&sp14, &var_r29->unk40, var_r31++);
VECAdd(&sp20, &var_r29->unk40, var_r31++);

View file

@ -956,9 +956,9 @@ void fn_1_6968(omObjData *object)
sp8.z = -var_r31->unk_1C.x;
var_f30 = VECMag(&sp8) / 30.000002f;
if (var_f30 >= 0.001f) {
PSMTXRotAxisRad(sp14, &sp8, var_f30);
MTXRotAxisRad(sp14, &sp8, var_f30);
var_r28 = &Hu3DData[object->model[var_r30]];
PSMTXConcat(sp14, var_r28->unk_F0, var_r28->unk_F0);
MTXConcat(sp14, var_r28->unk_F0, var_r28->unk_F0);
}
}
}
@ -1238,8 +1238,8 @@ s32 fn_1_79F8(s16 arg0, char *arg1, Mtx arg2)
var_r30 = var_r31->hsfData;
lbl_1_bss_30 = 0;
mtxRot(sp14, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z);
PSMTXScale(sp44, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z);
PSMTXConcat(sp14, sp44, sp44);
MTXScale(sp44, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z);
MTXConcat(sp14, sp44, sp44);
mtxTransCat(sp44, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z);
fn_1_7AC4(var_r30->root, sp44, arg1, arg2);
return lbl_1_bss_30;
@ -1274,12 +1274,12 @@ void fn_1_7AC4(HsfObject *arg0, Mtx arg1, char *arg2, Mtx arg3)
var_r31 = &arg0->data.curr;
mtxRot(sp12C, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z);
PSMTXScale(sp15C, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z);
PSMTXConcat(sp12C, sp15C, sp15C);
MTXScale(sp15C, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z);
MTXConcat(sp12C, sp15C, sp15C);
mtxTransCat(sp15C, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z);
PSMTXConcat(arg1, sp15C, sp15C);
MTXConcat(arg1, sp15C, sp15C);
if (!strcmp(arg2, arg0->name)) {
PSMTXCopy(sp15C, arg3);
MTXCopy(sp15C, arg3);
lbl_1_bss_30 = 1;
}
@ -1288,12 +1288,12 @@ void fn_1_7AC4(HsfObject *arg0, Mtx arg1, char *arg2, Mtx arg3)
if (!lbl_1_bss_30) {
var_r30 = &var_r27->data.curr;
mtxRot(spFC, var_r30->rot.x, var_r30->rot.y, var_r30->rot.z);
PSMTXScale(spCC, var_r30->scale.x, var_r30->scale.y, var_r30->scale.z);
PSMTXConcat(spFC, spCC, spCC);
MTXScale(spCC, var_r30->scale.x, var_r30->scale.y, var_r30->scale.z);
MTXConcat(spFC, spCC, spCC);
mtxTransCat(spCC, var_r30->pos.x, var_r30->pos.y, var_r30->pos.z);
PSMTXConcat(sp15C, spCC, spCC);
MTXConcat(sp15C, spCC, spCC);
if (!strcmp(arg2, var_r27->name)) {
PSMTXCopy(spCC, arg3);
MTXCopy(spCC, arg3);
lbl_1_bss_30 = 1;
}
for (var_r22 = 0; var_r22 < var_r27->data.childrenCount; var_r22++) {
@ -1301,12 +1301,12 @@ void fn_1_7AC4(HsfObject *arg0, Mtx arg1, char *arg2, Mtx arg3)
if (!lbl_1_bss_30) {
var_r29 = &var_r26->data.curr;
mtxRot(sp9C, var_r29->rot.x, var_r29->rot.y, var_r29->rot.z);
PSMTXScale(sp6C, var_r29->scale.x, var_r29->scale.y, var_r29->scale.z);
PSMTXConcat(sp9C, sp6C, sp6C);
MTXScale(sp6C, var_r29->scale.x, var_r29->scale.y, var_r29->scale.z);
MTXConcat(sp9C, sp6C, sp6C);
mtxTransCat(sp6C, var_r29->pos.x, var_r29->pos.y, var_r29->pos.z);
PSMTXConcat(spCC, sp6C, sp6C);
MTXConcat(spCC, sp6C, sp6C);
if (!strcmp(arg2, var_r26->name)) {
PSMTXCopy(sp6C, arg3);
MTXCopy(sp6C, arg3);
lbl_1_bss_30 = 1;
}
@ -1315,12 +1315,12 @@ void fn_1_7AC4(HsfObject *arg0, Mtx arg1, char *arg2, Mtx arg3)
if (!lbl_1_bss_30) {
var_r28 = &var_r25->data.curr;
mtxRot(sp3C, var_r28->rot.x, var_r28->rot.y, var_r28->rot.z);
PSMTXScale(spC, var_r28->scale.x, var_r28->scale.y, var_r28->scale.z);
PSMTXConcat(sp3C, spC, spC);
MTXScale(spC, var_r28->scale.x, var_r28->scale.y, var_r28->scale.z);
MTXConcat(sp3C, spC, spC);
mtxTransCat(spC, var_r28->pos.x, var_r28->pos.y, var_r28->pos.z);
PSMTXConcat(sp6C, spC, spC);
MTXConcat(sp6C, spC, spC);
if (!strcmp(arg2, var_r25->name)) {
PSMTXCopy(spC, arg3);
MTXCopy(spC, arg3);
lbl_1_bss_30 = 1;
}

View file

@ -93,7 +93,7 @@ void ObjectSetup(void)
sp8.x = sp8.z = 0.0f;
sp8.y = lbl_1_data_18.z;
mtxRot(sp20, lbl_1_data_18.x, lbl_1_data_18.y, 0.0f);
PSMTXMultVec(sp20, &sp8, &sp8);
MTXMultVec(sp20, &sp8, &sp8);
Hu3DGLightPosAimSetV(lbl_1_bss_16, &sp8, &sp14);
Hu3DShadowPosSet(&sp8, &lbl_1_data_34, &sp14);
lbl_1_bss_14 = lbl_1_bss_12 = lbl_1_bss_10 = -1;

View file

@ -1075,8 +1075,8 @@ void fn_1_B140(ModelData *arg0, Mtx arg1)
DCStoreRange(&sp10, 4);
DCStoreRange(&lbl_1_data_294, 32);
PSMTXTrans(spF4, -400.0f, 400.0f, -700.0f);
PSMTXConcat(Hu3DCameraMtx, spF4, sp64);
MTXTrans(spF4, -400.0f, 400.0f, -700.0f);
MTXConcat(Hu3DCameraMtx, spF4, sp64);
GXLoadPosMtxImm(sp64, 0);
GXSetNumChans(1);
GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE);
@ -1086,10 +1086,10 @@ void fn_1_B140(ModelData *arg0, Mtx arg1)
HuSprTexLoad(lbl_1_bss_70, 0, 1, GX_REPEAT, GX_REPEAT, GX_LINEAR);
GXSetNumTexGens(2);
C_MTXLightPerspective(sp94, 41.5f, 1.2f, 0.5555555f, -0.5f, 0.5555555f, 0.5f);
PSMTXConcat(sp94, Hu3DCameraMtx, sp94);
PSMTXInverse(Hu3DCameraMtx, sp34);
PSMTXConcat(sp34, sp64, sp124);
PSMTXConcat(sp94, sp124, spF4);
MTXConcat(sp94, Hu3DCameraMtx, sp94);
MTXInverse(Hu3DCameraMtx, sp34);
MTXConcat(sp34, sp64, sp124);
MTXConcat(sp94, sp124, spF4);
GXLoadTexMtxImm(spF4, 30, GX_MTX3x4);
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, 30, GX_FALSE, 125);
GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_TEXCOORD0, 33, GX_FALSE, 125);
@ -1097,7 +1097,7 @@ void fn_1_B140(ModelData *arg0, Mtx arg1)
GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD1, GX_TEXMAP1);
GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1);
GXSetTevIndWarp(GX_TEVSTAGE0, GX_INDTEXSTAGE0, GX_TRUE, GX_FALSE, GX_ITM_0);
PSMTXScale(spF4, -0.5f, -0.5f, 0.5f);
MTXScale(spF4, -0.5f, -0.5f, 0.5f);
GXSetIndTexMtx(GX_ITM_0, (float(*)[3])spF4, -1);
GXSetNumTevStages(1);
GXSetTevColor(GX_TEVREG1, sp10);
@ -1124,17 +1124,17 @@ void fn_1_B140(ModelData *arg0, Mtx arg1)
if (var_r31->unk_00) {
lbl_1_data_294[var_r31->unk_02].a = 255.0f * var_r31->unk_0C;
GXSetTevColor(GX_TEVREG0, lbl_1_data_294[var_r31->unk_02]);
PSMTXTrans(spF4, var_r31->unk_10.x, var_r31->unk_10.y, var_r31->unk_10.z);
PSMTXRotRad(sp124, 90, 0.017453292f * var_r31->unk_08);
PSMTXConcat(spF4, sp124, spF4);
PSMTXScale(spC4, var_r31->unk_04, var_r31->unk_04, var_r31->unk_04);
PSMTXConcat(spF4, spC4, spF4);
PSMTXConcat(Hu3DCameraMtx, spF4, sp64);
MTXTrans(spF4, var_r31->unk_10.x, var_r31->unk_10.y, var_r31->unk_10.z);
MTXRotRad(sp124, 90, 0.017453292f * var_r31->unk_08);
MTXConcat(spF4, sp124, spF4);
MTXScale(spC4, var_r31->unk_04, var_r31->unk_04, var_r31->unk_04);
MTXConcat(spF4, spC4, spF4);
MTXConcat(Hu3DCameraMtx, spF4, sp64);
GXLoadPosMtxImm(sp64, 0);
PSMTXConcat(sp34, sp64, sp124);
PSMTXConcat(sp94, sp124, spF4);
MTXConcat(sp34, sp64, sp124);
MTXConcat(sp94, sp124, spF4);
GXLoadTexMtxImm(spF4, 30, GX_MTX3x4);
PSMTXRotRad(sp124, 90, 0.017453292f * -var_r31->unk_08);
MTXRotRad(sp124, 90, 0.017453292f * -var_r31->unk_08);
GXLoadTexMtxImm(sp124, 33, GX_MTX2x4);
GXCallDisplayList(var_r30->unk_120.unk_E5C, var_r30->unk_120.unk_E58);
}

View file

@ -513,8 +513,8 @@ void fn_1_1A60(unkStruct3 *arg0)
for (var_r31 = -1; var_r31 < 2; var_r31 += 2) {
for (var_r29 = -1; var_r29 < 2; var_r29 += 2) {
MTXRotDeg(sp118, 0x59, temp_f30);
PSMTXTrans(spE8, (var_r30 * var_r31), 0.0f, (var_r30 * var_r29));
PSMTXConcat(sp118, spE8, spE8);
MTXTrans(spE8, (var_r30 * var_r31), 0.0f, (var_r30 * var_r29));
MTXConcat(sp118, spE8, spE8);
if ((spB8[0].y > spE8[2][3]) || ((spB8[0].y == spE8[2][3]) && (spB8[0].x > spE8[0][3]))) {
spB8[0].x = spE8[0][3];
spB8[0].y = spE8[2][3];
@ -1604,15 +1604,15 @@ void fn_1_6958(Mtx arg0, f32 arg8, f32 arg9, f32 argA)
MTXRotDeg(arg0, 0x5A, argA);
}
else {
PSMTXIdentity(arg0);
MTXIdentity(arg0);
}
if (arg8 != 0.0f) {
MTXRotDeg(sp38, 0x58, arg8);
PSMTXConcat(sp38, arg0, arg0);
MTXConcat(sp38, arg0, arg0);
}
if (arg9 != 0.0f) {
MTXRotDeg(sp8, 0x59, arg9);
PSMTXConcat(sp8, arg0, arg0);
MTXConcat(sp8, arg0, arg0);
}
}

File diff suppressed because it is too large Load diff

View file

@ -79,7 +79,7 @@ void ObjectSetup(void)
sp8.x = sp8.z = 0.0f;
sp8.y = lbl_1_data_18.z;
mtxRot(sp38, lbl_1_data_18.x, lbl_1_data_18.y, 0.0f);
PSMTXMultVec(sp38, &sp8, &sp8);
MTXMultVec(sp38, &sp8, &sp8);
Hu3DGLightPosAimSetV(lbl_1_bss_8[0], &sp8, &sp14);
lbl_1_data_28.x = 200.0f;
lbl_1_data_28.y = 3000.0f;
@ -481,18 +481,18 @@ void fn_1_310C(float arg8, float arg9, float argA, float *arg0, float *arg1, flo
Mtx sp8;
if (arg8 != 0.0f) {
PSMTXRotRad(sp38, 88, 0.017453292f * arg8);
MTXRotRad(sp38, 88, 0.017453292f * arg8);
}
else {
PSMTXIdentity(sp38);
MTXIdentity(sp38);
}
if (arg9 != 0.0f) {
PSMTXRotRad(sp8, 89, 0.017453292f * arg9);
PSMTXConcat(sp38, sp8, sp38);
MTXRotRad(sp8, 89, 0.017453292f * arg9);
MTXConcat(sp38, sp8, sp38);
}
if (argA != 0.0f) {
PSMTXRotRad(sp8, 90, 0.017453292f * argA);
PSMTXConcat(sp38, sp8, sp38);
MTXRotRad(sp8, 90, 0.017453292f * argA);
MTXConcat(sp38, sp8, sp38);
}
fn_1_30D8(NULL, arg0, arg1, arg2);
}

View file

@ -270,22 +270,22 @@ void fn_1_7C8C(omObjData *object)
var_r31->unk_70 = 0.02f;
if (var_r31->unk_0C) {
Vec sp18 = { 0.0f, 1.0f, 0.0f };
PSMTXRotAxisRad(var_r31->unk_1C4, &sp18, 0.017453292f * var_r31->unk_64);
MTXRotAxisRad(var_r31->unk_1C4, &sp18, 0.017453292f * var_r31->unk_64);
}
else {
Vec spC = { 0.0f, 1.0f, 0.0f };
PSMTXIdentity(var_r31->unk_1C4);
MTXIdentity(var_r31->unk_1C4);
C_QUATRotAxisRad(&var_r31->unk_184, &spC, 0.0f);
var_r31->unk_194 = var_r31->unk_184;
PSQUATInverse(&var_r31->unk_194, &var_r31->unk_1A4);
QUATInverse(&var_r31->unk_194, &var_r31->unk_1A4);
var_r31->unk_1B4 = var_r31->unk_1A4;
var_r31->unk_164 = var_r31->unk_194;
var_r31->unk_174 = var_r31->unk_194;
var_r31->unk_144 = 1.0f;
var_r31->unk_D4.z += 50.0f;
}
PSMTXInverse(var_r31->unk_1C4, var_r31->unk_1F4);
PSMTXCopy(var_r31->unk_1F4, var_r31->unk_224);
MTXInverse(var_r31->unk_1C4, var_r31->unk_1F4);
MTXCopy(var_r31->unk_1F4, var_r31->unk_224);
var_r31->unk_134 = var_r31->unk_138 = 0.0f;
var_r31->unk_12C = 1.0f;
var_r31->unk_08 = -1;
@ -634,7 +634,7 @@ void fn_1_9298(omObjData *object)
else if (var_r31->unk_B4.x < 0.0f) {
var_r31->unk_B4.x += 360.0f;
}
PSMTXRotAxisRad(var_r31->unk_1C4, &sp8, 0.017453292f * var_r31->unk_B4.x);
MTXRotAxisRad(var_r31->unk_1C4, &sp8, 0.017453292f * var_r31->unk_B4.x);
}
object->rot.y = var_r31->unk_68 = var_r31->unk_B4.x - 180.0f;
object->trans.x = var_r31->unk_D4.x = var_r31->unk_F8.x = var_r31->unk_C8.x = var_r31->unk_B4.z * sind(var_r31->unk_B4.x);
@ -836,7 +836,7 @@ void fn_1_9C14(omObjData *object)
if (fn_1_26F8() == 2) {
sp1C.y += -5.8333335f * var_r31->unk_148;
}
PSMTXMultVec(var_r31->unk_224, &sp1C, &sp1C);
MTXMultVec(var_r31->unk_224, &sp1C, &sp1C);
VECAdd(&sp1C, &var_r31->unk_E0, &sp1C);
sp10 = sp1C;
sp10.y = 0.0f;
@ -849,13 +849,13 @@ void fn_1_9C14(omObjData *object)
sp1C.y = 80.0f;
var_r31->unk_EC = sp1C;
spC = atan2d(sp1C.x, sp1C.z);
PSMTXMultVec(var_r31->unk_1C4, &sp1C, &sp1C);
MTXMultVec(var_r31->unk_1C4, &sp1C, &sp1C);
VECAdd(&sp1C, &var_r31->unk_F8, &var_r31->unk_D4);
if (var_r31->unk_13C >= 0.95f) {
var_r31->unk_3C = 1;
return;
}
PSQUATNormalize(&var_r31->unk_194, &sp28);
QUATNormalize(&var_r31->unk_194, &sp28);
if (sp28.w < cosd(25)) {
var_r31->unk_3C = 1;
}
@ -893,7 +893,7 @@ void fn_1_9FF0(omObjData *object)
}
}
var_r31->unk_1B4 = var_r31->unk_1A4;
PSMTXCopy(var_r31->unk_1F4, var_r31->unk_224);
MTXCopy(var_r31->unk_1F4, var_r31->unk_224);
var_r31->unk_104 = var_r31->unk_F8;
var_f31 = fn_1_75BC();
for (var_r30 = 0; var_r30 < 8; var_r30++) {
@ -1054,12 +1054,12 @@ void fn_1_9FF0(omObjData *object)
C_QUATRotAxisRad(&sp3C, &sp8, M_PI);
C_QUATSlerp(&var_r31->unk_184, &sp3C, &var_r31->unk_184, 0.027777778f);
}
PSQUATMultiply(&var_r31->unk_174, &var_r31->unk_184, &var_r31->unk_194);
PSQUATMultiply(&var_r31->unk_164, &var_r31->unk_194, &var_r31->unk_194);
PSQUATMultiply(&sp2C, &var_r31->unk_194, &var_r31->unk_194);
PSMTXQuat(var_r31->unk_1C4, &var_r31->unk_194);
PSMTXInverse(var_r31->unk_1C4, var_r31->unk_1F4);
PSQUATInverse(&var_r31->unk_194, &var_r31->unk_1A4);
QUATMultiply(&var_r31->unk_174, &var_r31->unk_184, &var_r31->unk_194);
QUATMultiply(&var_r31->unk_164, &var_r31->unk_194, &var_r31->unk_194);
QUATMultiply(&sp2C, &var_r31->unk_194, &var_r31->unk_194);
MTXQuat(var_r31->unk_1C4, &var_r31->unk_194);
MTXInverse(var_r31->unk_1C4, var_r31->unk_1F4);
QUATInverse(&var_r31->unk_194, &var_r31->unk_1A4);
}
}
@ -1071,7 +1071,7 @@ void fn_1_AD24(omObjData *object)
Hu3DModelPosSetV(object->model[0], &var_r30->unk_D4);
Hu3DModelRotSet(object->model[0], 0.0f, var_r30->unk_64, 0.0f);
Hu3DModelPosSetV(object->model[1], &var_r30->unk_F8);
PSMTXCopy(var_r30->unk_1C4, Hu3DData[object->model[1]].unk_F0);
MTXCopy(var_r30->unk_1C4, Hu3DData[object->model[1]].unk_F0);
}
void fn_1_ADC4(omObjData *object)

View file

@ -567,13 +567,13 @@ void fn_1_4E64(omObjData *object)
var_r31->unk_24 = 1.0f;
}
}
PSMTXTrans(spC8, var_r31->unk_04.x, var_r31->unk_04.y, var_r31->unk_04.z);
PSMTXRotRad(sp98, 89, 0.017453292f * var_r31->unk_10);
PSMTXConcat(spC8, sp98, sp68);
MTXTrans(spC8, var_r31->unk_04.x, var_r31->unk_04.y, var_r31->unk_04.z);
MTXRotRad(sp98, 89, 0.017453292f * var_r31->unk_10);
MTXConcat(spC8, sp98, sp68);
var_f31 = var_r31->unk_18 * var_r31->unk_1C;
PSMTXScale(spC8, var_f31, var_f31, var_f31 * var_r31->unk_28);
PSMTXConcat(sp68, spC8, sp98);
PSMTXInverse(sp98, spC8);
MTXScale(spC8, var_f31, var_f31, var_f31 * var_r31->unk_28);
MTXConcat(sp68, spC8, sp98);
MTXInverse(sp98, spC8);
PSMTXReorder(spC8, sp38);
PSMTXROMultVecArray(sp38, lbl_1_bss_178.unk_2C, lbl_1_bss_178.unk_34, lbl_1_bss_178.unk_18);
sp2C.x = (0.15f * var_r31->unk_18) * (var_r31->unk_24 * sind(var_r31->unk_10));
@ -761,7 +761,7 @@ void fn_1_604C(ModelData *arg0, Mtx arg1)
DCStoreRangeNoSync(&sp10, 4);
PPCSync();
GXLoadPosMtxImm(arg1, 0);
PSMTXInvXpose(arg1, sp98);
MTXInvXpose(arg1, sp98);
GXLoadNrmMtxImm(sp98, 0);
GXSetNumChans(1);
GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE);
@ -773,29 +773,29 @@ void fn_1_604C(ModelData *arg0, Mtx arg1)
HuSprTexLoad(lbl_1_bss_60, 0, 3, GX_MIRROR, GX_MIRROR, GX_LINEAR);
GXSetNumTexGens(5);
C_MTXLightPerspective(sp38, 35.0f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f);
PSMTXInverse(Hu3DCameraMtx, sp98);
PSMTXConcat(sp98, arg1, sp98);
PSMTXConcat(sp38, Hu3DCameraMtx, sp68);
PSMTXConcat(sp68, sp98, sp68);
MTXInverse(Hu3DCameraMtx, sp98);
MTXConcat(sp98, arg1, sp98);
MTXConcat(sp38, Hu3DCameraMtx, sp68);
MTXConcat(sp68, sp98, sp68);
sp68[1][3] -= 44.0f;
GXLoadTexMtxImm(sp68, 30, GX_MTX3x4);
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, 30, GX_FALSE, 125);
C_MTXLightPerspective(sp38, 70.0f, 1.0f, 0.5f, -0.5f, 0.5f, 0.5f);
PSMTXInverse(Hu3DCameraMtx, sp98);
PSMTXConcat(sp98, arg1, sp98);
PSMTXConcat(sp38, Hu3DCameraMtx, sp68);
PSMTXConcat(sp68, sp98, sp68);
MTXInverse(Hu3DCameraMtx, sp98);
MTXConcat(sp98, arg1, sp98);
MTXConcat(sp38, Hu3DCameraMtx, sp68);
MTXConcat(sp68, sp98, sp68);
GXLoadTexMtxImm(sp68, 36, GX_MTX3x4);
GXSetTexCoordGen2(GX_TEXCOORD2, GX_TG_MTX3x4, GX_TG_POS, 36, GX_FALSE, 125);
PSMTXRotRad(sp68, 90, 0.017453292f * lbl_1_bss_178.unk_6B8);
MTXRotRad(sp68, 90, 0.017453292f * lbl_1_bss_178.unk_6B8);
GXLoadTexMtxImm(sp68, 39, GX_MTX2x4);
GXSetTexCoordGen2(GX_TEXCOORD3, GX_TG_MTX2x4, GX_TG_TEXCOORD0, 39, GX_FALSE, 125);
PSMTXScale(sp98, 1.2f, -1.2f, 1.2f);
PSMTXConcat(sp68, sp98, sp68);
MTXScale(sp98, 1.2f, -1.2f, 1.2f);
MTXConcat(sp68, sp98, sp68);
GXLoadTexMtxImm(sp68, 42, GX_MTX2x4);
GXSetTexCoordGen2(GX_TEXCOORD4, GX_TG_MTX2x4, GX_TG_TEXCOORD0, 42, GX_FALSE, 125);
PSMTXScale(sp98, 0.49f, -0.49f, 0.49f);
PSMTXConcat(sp98, Hu3DCameraMtx, sp68);
MTXScale(sp98, 0.49f, -0.49f, 0.49f);
MTXConcat(sp98, Hu3DCameraMtx, sp68);
sp68[0][3] = 0.5f;
sp68[1][3] = 0.5f;
GXLoadTexMtxImm(sp68, 33, GX_MTX2x4);
@ -804,18 +804,18 @@ void fn_1_604C(ModelData *arg0, Mtx arg1)
GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD1, GX_TEXMAP1);
GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1);
GXSetTevIndWarp(GX_TEVSTAGE0, GX_INDTEXSTAGE0, GX_TRUE, GX_FALSE, GX_ITM_0);
PSMTXScale(sp68, -0.5f, -0.5f, 0.5f);
MTXScale(sp68, -0.5f, -0.5f, 0.5f);
GXSetIndTexMtx(GX_ITM_0, (float(*)[3])sp68, -2);
GXSetIndTexOrder(GX_INDTEXSTAGE1, GX_TEXCOORD1, GX_TEXMAP1);
GXSetIndTexCoordScale(GX_INDTEXSTAGE1, GX_ITS_1, GX_ITS_1);
GXSetTevIndWarp(GX_TEVSTAGE1, GX_INDTEXSTAGE1, GX_TRUE, GX_FALSE, GX_ITM_1);
PSMTXScale(sp68, 0.5f, 0.5f, 0.5f);
MTXScale(sp68, 0.5f, 0.5f, 0.5f);
GXSetIndTexMtx(GX_ITM_1, (float(*)[3])sp68, 0);
GXSetIndTexOrder(GX_INDTEXSTAGE2, GX_TEXCOORD1, GX_TEXMAP1);
GXSetIndTexCoordScale(GX_INDTEXSTAGE2, GX_ITS_1, GX_ITS_1);
GXSetTevIndWarp(GX_TEVSTAGE2, GX_INDTEXSTAGE2, GX_TRUE, GX_FALSE, GX_ITM_2);
GXSetTevIndWarp(GX_TEVSTAGE3, GX_INDTEXSTAGE2, GX_TRUE, GX_FALSE, GX_ITM_2);
PSMTXScale(sp68, -0.65f, -0.65f, 0.65f);
MTXScale(sp68, -0.65f, -0.65f, 0.65f);
GXSetIndTexMtx(GX_ITM_2, (float(*)[3])sp68, -3);
GXSetNumTevStages(5);
GXSetTevColor(GX_TEVREG0, sp14);

File diff suppressed because it is too large Load diff

View file

@ -131,7 +131,7 @@ void ObjectSetup(void)
sp8.x = sp8.z = 0.0f;
sp8.y = lbl_1_data_18.z;
mtxRot(sp2C, lbl_1_data_18.x, lbl_1_data_18.y, 0.0f);
PSMTXMultVec(sp2C, &sp8, &lbl_1_data_28);
MTXMultVec(sp2C, &sp8, &lbl_1_data_28);
Hu3DGLightPosAimSetV(lbl_1_bss_12[0], &lbl_1_data_28, &lbl_1_data_40);
Hu3DShadowPosSet(&lbl_1_data_28, &lbl_1_data_34, &lbl_1_data_40);
lbl_1_bss_10 = lbl_1_bss_E = lbl_1_bss_C = -1;
@ -647,7 +647,7 @@ void fn_1_38FC(ModelData *model, Mtx mtx)
float var_f30;
float var_f29;
PSMTXIdentity(spC);
MTXIdentity(spC);
GXLoadPosMtxImm(spC, 0);
GXSetNumChans(1);
GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE);

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,6 +1,5 @@
#include "REL/m424Dll.h"
#include "math.h"
#include "ext_math.h"
#include "game/audio.h"
#include "game/chrman.h"
@ -8,6 +7,8 @@
#include "game/hsfman.h"
#include "game/hsfmotion.h"
#include "game/pad.h"
#include "math.h"
// STRUCT
typedef struct _M424DllClawStruct {
@ -66,8 +67,8 @@ typedef struct _M424DllClawStruct3 {
} M424DllClawStruct3; // sizeof 0x8
// BSS
Process* lbl_1_bss_6DC;
omObjData* lbl_1_bss_6D8;
Process *lbl_1_bss_6DC;
omObjData *lbl_1_bss_6D8;
s32 lbl_1_bss_6D0[2];
s32 lbl_1_bss_6CC;
s32 lbl_1_bss_6C8;
@ -178,7 +179,7 @@ void fn_1_94D0(omObjData *arg0)
}
var_r31->unk184 = -1;
var_r31->unk30 = lbl_1_data_30C;
for (var_r29 = 0; var_r29 < 0xC; var_r29++) {
var_r31->unk3C[var_r29] = lbl_1_data_30C;
var_r31->unkCC[var_r29] = lbl_1_data_30C;
@ -608,13 +609,13 @@ void fn_1_9A64(omObjData *arg0)
fn_1_C878(arg0->model[1], "hook1", sp74, 0);
fn_1_C878(arg0->model[2], "hook2", sp74, 1);
fn_1_C878(arg0->model[3], "hook3", sp74, 1);
PSMTXCopy(sp74, sp44);
MTXCopy(sp74, sp44);
temp_r31->unk30.x = sp74[0][3];
temp_r31->unk30.y = sp74[1][3];
temp_r31->unk30.z = sp74[2][3];
for (var_r29 = 0; var_r29 < 0xC; var_r29++) {
PSMTXCopy(sp44, sp74);
MTXCopy(sp44, sp74);
fn_1_C878(arg0->model[4], lbl_1_data_21C[var_r29], sp74, 1);
temp_r31->unkCC[var_r29] = temp_r31->unk3C[var_r29];
temp_r31->unk3C[var_r29].x = sp74[0][3];
@ -625,14 +626,14 @@ void fn_1_9A64(omObjData *arg0)
sp2C.x = 0.0f;
sp2C.y = temp_r31->unk174.y;
sp2C.z = 0.0f;
PSVECSubtract(&temp_r31->unk174, &sp2C, &sp20);
var_f31 = PSVECMag(&sp20);
VECSubtract(&temp_r31->unk174, &sp2C, &sp20);
var_f31 = VECMag(&sp20);
if (var_f31 != 0.0f) {
PSVECNormalize(&sp20, &sp20);
PSVECScale(&sp20, &sp20, 0.9f * var_f31);
PSVECAdd(&sp2C, &sp20, &temp_r31->unk174);
VECNormalize(&sp20, &sp20);
VECScale(&sp20, &sp20, 0.9f * var_f31);
VECAdd(&sp2C, &sp20, &temp_r31->unk174);
}
PSVECAdd(&temp_r31->unk30, &temp_r31->unk174, &sp38);
VECAdd(&temp_r31->unk30, &temp_r31->unk174, &sp38);
fn_1_88E8(temp_r31->unk168, sp38.x, sp38.y, sp38.z);
}
temp_r31->unk164 = 1;
@ -911,7 +912,7 @@ s32 fn_1_B9E0(Vec *arg0, Vec *arg1, f32 arg8, Vec *arg2, s32 arg3)
var_r28 = 0;
var_r24 = lbl_1_bss_6D8;
temp_r31 = var_r24->data;
PSVECAdd(arg0, arg1, &sp24);
VECAdd(arg0, arg1, &sp24);
spC = *arg1;
*arg2 = *arg0;
temp_f30 = 5.0f + arg8;
@ -923,10 +924,10 @@ s32 fn_1_B9E0(Vec *arg0, Vec *arg1, f32 arg8, Vec *arg2, s32 arg3)
for (var_r29 = 0; var_r29 < 0xC; var_r29++) {
if (var_r28 != 0) {
sp24 = *arg2;
PSVECSubtract(&sp24, arg0, &spC);
VECSubtract(&sp24, arg0, &spC);
}
PSVECSubtract(&sp24, &temp_r31->unk3C[var_r29], &sp18);
var_f29 = PSVECMag(&sp18);
VECSubtract(&sp24, &temp_r31->unk3C[var_r29], &sp18);
var_f29 = VECMag(&sp18);
if (var_f29 < temp_f30) {
if (0.0f == var_f29) {
var_f29 = temp_f30;
@ -939,9 +940,9 @@ s32 fn_1_B9E0(Vec *arg0, Vec *arg1, f32 arg8, Vec *arg2, s32 arg3)
temp_r31->unk15C = 1;
}
else {
PSVECNormalize(&sp18, &sp18);
PSVECScale(&sp18, &sp18, temp_f30);
PSVECAdd(&temp_r31->unk3C[var_r29], &sp18, arg2);
VECNormalize(&sp18, &sp18);
VECScale(&sp18, &sp18, temp_f30);
VECAdd(&temp_r31->unk3C[var_r29], &sp18, arg2);
}
var_r28 = 1;
}
@ -951,43 +952,43 @@ s32 fn_1_B9E0(Vec *arg0, Vec *arg1, f32 arg8, Vec *arg2, s32 arg3)
for (var_r29 = 0; var_r29 < 0xC; var_r29++) {
if (var_r28 != 0) {
sp24 = *arg2;
PSVECSubtract(&sp24, arg0, &spC);
VECSubtract(&sp24, arg0, &spC);
}
var_r26 = 0;
sp60 = temp_r31->unk3C[var_r29];
PSVECAdd(&temp_r31->unkCC[var_r29], &spC, &sp54);
PSVECSubtract(&sp60, &sp54, &sp18);
PSVECSubtract(&sp24, &sp54, &sp48);
VECAdd(&temp_r31->unkCC[var_r29], &spC, &sp54);
VECSubtract(&sp60, &sp54, &sp18);
VECSubtract(&sp24, &sp54, &sp48);
temp_f26 = (sp18.z * sp18.z) + ((sp18.x * sp18.x) + (sp18.y * sp18.y));
if (temp_f26 != 0.0f) {
var_f24 = (sp18.x * sp48.x) + (sp18.y * sp48.y) + (sp18.z * sp48.z);
temp_f27 = var_f24 / temp_f26;
if (temp_f27 >= 0.0f) {
if (temp_f27 <= 1.0f) {
PSVECScale(&sp18, &sp18, temp_f27);
PSVECAdd(&sp54, &sp18, &sp3C);
PSVECSubtract(&sp24, &sp3C, &sp30);
var_f29 = PSVECMag(&sp30);
VECScale(&sp18, &sp18, temp_f27);
VECAdd(&sp54, &sp18, &sp3C);
VECSubtract(&sp24, &sp3C, &sp30);
var_f29 = VECMag(&sp30);
if (var_f29 == 0.0f) {
if (PSVECMag(&sp18) <= 0.0f) {
if (VECMag(&sp18) <= 0.0f) {
sp18.x = sp18.y = 0.0f;
sp18.z = 1.0f;
}
PSVECNormalize(&sp18, &sp30);
PSVECScale(&sp30, &sp30, temp_f30);
PSVECAdd(&sp60, &sp30, arg2);
VECNormalize(&sp18, &sp30);
VECScale(&sp30, &sp30, temp_f30);
VECAdd(&sp60, &sp30, arg2);
var_r28 = 1;
var_r26 = 1;
}
else if (var_f29 < temp_f30) {
if (PSVECMag(&sp30) <= 0.0f) {
if (VECMag(&sp30) <= 0.0f) {
sp30.x = sp30.y = 0.0f;
sp30.z = 1.0f;
}
PSVECNormalize(&sp30, &sp30);
PSVECScale(&sp30, &sp30, temp_f30);
PSVECAdd(&sp3C, &sp30, arg2);
VECNormalize(&sp30, &sp30);
VECScale(&sp30, &sp30, temp_f30);
VECAdd(&sp3C, &sp30, arg2);
var_r28 = 1;
var_r26 = 1;
}
@ -995,31 +996,31 @@ s32 fn_1_B9E0(Vec *arg0, Vec *arg1, f32 arg8, Vec *arg2, s32 arg3)
}
}
if (var_r26 == 0) {
PSVECSubtract(&sp24, &sp60, &sp18);
var_f29 = PSVECMag(&sp18);
VECSubtract(&sp24, &sp60, &sp18);
var_f29 = VECMag(&sp18);
if (var_f29 < temp_f30) {
if (var_f29 <= 0.0f) {
sp18.x = sp18.y = 0.0f;
sp18.z = 1.0f;
}
PSVECNormalize(&sp18, &sp18);
PSVECScale(&sp18, &sp18, temp_f30);
PSVECAdd(&temp_r31->unk3C[var_r29], &sp18, arg2);
VECNormalize(&sp18, &sp18);
VECScale(&sp18, &sp18, temp_f30);
VECAdd(&temp_r31->unk3C[var_r29], &sp18, arg2);
var_r28 = 1;
var_r26 = 1;
}
}
if (var_r26 == 0) {
PSVECSubtract(&sp24, &sp54, &sp18);
var_f29 = PSVECMag(&sp18);
VECSubtract(&sp24, &sp54, &sp18);
var_f29 = VECMag(&sp18);
if (var_f29 < temp_f30) {
if (var_f29 <= 0.0f) {
sp18.x = sp18.y = 0.0f;
sp18.z = 1.0f;
}
PSVECNormalize(&sp18, &sp18);
PSVECScale(&sp18, &sp18, temp_f30);
PSVECAdd(&temp_r31->unk3C[var_r29], &sp18, arg2);
VECNormalize(&sp18, &sp18);
VECScale(&sp18, &sp18, temp_f30);
VECAdd(&temp_r31->unk3C[var_r29], &sp18, arg2);
var_r28 = 1;
var_r26 = 1;
}
@ -1045,7 +1046,7 @@ s32 fn_1_B9E0(Vec *arg0, Vec *arg1, f32 arg8, Vec *arg2, s32 arg3)
if (var_r28 != 0) {
if (--arg3 > 0) {
sp24 = *arg2;
PSVECSubtract(&sp24, arg0, &spC);
VECSubtract(&sp24, arg0, &spC);
if (fn_1_B9E0(arg0, &spC, arg8, &sp24, arg3) != 0) {
*arg2 = sp24;
}
@ -1077,8 +1078,8 @@ s32 fn_1_C210(Vec *arg0)
sp1C.x = temp_r31->unk30.x;
sp1C.y = -120.00001f + temp_r31->unk30.y;
sp1C.z = temp_r31->unk30.z;
PSVECSubtract(arg0, &sp1C, &sp10);
if ((spC = PSVECMag(&sp10)) < 50.0f) {
VECSubtract(arg0, &sp1C, &sp10);
if ((spC = VECMag(&sp10)) < 50.0f) {
var_r29 = 1;
}
}
@ -1118,7 +1119,7 @@ void fn_1_C2E0(s32 arg0)
spC = fn_1_8A00(var_r30);
sp28 = *temp_r28;
sp4C = temp_r27->unk60;
PSVECSubtract(temp_r28, &sp4C, &sp40);
VECSubtract(temp_r28, &sp4C, &sp40);
if (fn_1_B9E0(&sp4C, &sp40, 100.0f, &sp34, 0x10) != 0) {
*temp_r28 = sp34;
sp4C = sp34;
@ -1141,7 +1142,7 @@ void fn_1_C2E0(s32 arg0)
if (fn_1_C210(&sp4C) != 0) {
temp_r31->unk168 = var_r30;
temp_r31->unk170 = fn_1_897C(var_r30);
PSVECSubtract(&sp4C, &temp_r31->unk30, &temp_r31->unk174);
VECSubtract(&sp4C, &temp_r31->unk30, &temp_r31->unk174);
fn_1_88E8(temp_r31->unk168, sp4C.x, sp4C.y, sp4C.z);
}
}
@ -1174,8 +1175,8 @@ void fn_1_C604(s32 arg0, s32 arg1)
var_r28 = &lbl_1_bss_60[var_r30];
var_r31 = fn_1_89D4(var_r30);
sp24 = *var_r31;
PSVECSubtract(&sp24, &sp30, &sp18);
var_f30 = PSVECMag(&sp18);
VECSubtract(&sp24, &sp30, &sp18);
var_f30 = VECMag(&sp18);
if (var_f30 < 200.0f) {
if (var_f30 > 0.0f) {
temp_f31 = 1.0f / var_f30;
@ -1228,11 +1229,11 @@ s32 fn_1_C878(s16 arg0, const char *arg1, Mtx arg2, s32 arg3)
lbl_1_bss_6C4 = 0;
}
mtxRot(sp14, temp_r31->rot.x, temp_r31->rot.y, temp_r31->rot.z);
PSMTXScale(sp44, temp_r31->scale.x, temp_r31->scale.y, temp_r31->scale.z);
PSMTXConcat(sp14, sp44, sp44);
MTXScale(sp44, temp_r31->scale.x, temp_r31->scale.y, temp_r31->scale.z);
MTXConcat(sp14, sp44, sp44);
mtxTransCat(sp44, temp_r31->pos.x, temp_r31->pos.y, temp_r31->pos.z);
if (arg3 != 0) {
PSMTXConcat(arg2, sp44, sp44);
MTXConcat(arg2, sp44, sp44);
}
fn_1_C99C(temp_r30->root, sp44, arg1, arg2);
return lbl_1_bss_6C8;
@ -1263,21 +1264,21 @@ void fn_1_C99C(HsfObject *arg0, Mtx arg1, const char *arg2, Mtx arg3)
var_r31 = &arg0->data.base;
}
if ((var_r31->scale.x <= 0.0f) && (var_r31->scale.y <= 0.0f) && (var_r31->scale.z <= 0.0f)) {
PSMTXCopy(arg1, spF8);
MTXCopy(arg1, spF8);
OSReport("OBJ MTX CHECK ERROR %s \n", arg0->name);
}
else {
mtxRot(spC8, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z);
PSMTXScale(spF8, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z);
PSMTXConcat(spC8, spF8, spF8);
MTXScale(spF8, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z);
MTXConcat(spC8, spF8, spF8);
mtxTransCat(spF8, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z);
PSMTXConcat(arg1, spF8, spF8);
MTXConcat(arg1, spF8, spF8);
}
if (lbl_1_bss_6C0 != 0) {
OSReport("%s \n", arg0->name);
}
if (strcmp(arg2, arg0->name) == 0) {
PSMTXCopy(spF8, arg3);
MTXCopy(spF8, arg3);
lbl_1_bss_6C8 = 1;
}
for (var_r25 = 0; var_r25 < arg0->data.childrenCount; var_r25++) {
@ -1290,21 +1291,21 @@ void fn_1_C99C(HsfObject *arg0, Mtx arg1, const char *arg2, Mtx arg3)
var_r30 = &temp_r28->data.base;
}
if ((var_r30->scale.x <= 0.0f) && (var_r30->scale.y <= 0.0f) && (var_r30->scale.z <= 0.0f)) {
PSMTXCopy(spF8, sp68);
MTXCopy(spF8, sp68);
OSReport("OBJ MTX CHECK ERROR %s \n", temp_r28->name);
}
else {
mtxRot(sp98, var_r30->rot.x, var_r30->rot.y, var_r30->rot.z);
PSMTXScale(sp68, var_r30->scale.x, var_r30->scale.y, var_r30->scale.z);
PSMTXConcat(sp98, sp68, sp68);
MTXScale(sp68, var_r30->scale.x, var_r30->scale.y, var_r30->scale.z);
MTXConcat(sp98, sp68, sp68);
mtxTransCat(sp68, var_r30->pos.x, var_r30->pos.y, var_r30->pos.z);
PSMTXConcat(spF8, sp68, sp68);
MTXConcat(spF8, sp68, sp68);
}
if (lbl_1_bss_6C0 != 0) {
OSReport("%s \n", temp_r28->name);
}
if (strcmp(arg2, temp_r28->name) == 0) {
PSMTXCopy(sp68, arg3);
MTXCopy(sp68, arg3);
lbl_1_bss_6C8 = 1;
}
for (var_r24 = 0; var_r24 < temp_r28->data.childrenCount; var_r24++) {
@ -1317,21 +1318,21 @@ void fn_1_C99C(HsfObject *arg0, Mtx arg1, const char *arg2, Mtx arg3)
var_r29 = &temp_r27->data.base;
}
if ((var_r29->scale.x <= 0.0f) && (var_r29->scale.y <= 0.0f) && (var_r29->scale.z <= 0.0f)) {
PSMTXCopy(sp68, sp8);
MTXCopy(sp68, sp8);
OSReport("OBJ MTX CHECK ERROR %s \n", temp_r27->name);
}
else {
mtxRot(sp38, var_r29->rot.x, var_r29->rot.y, var_r29->rot.z);
PSMTXScale(sp8, var_r29->scale.x, var_r29->scale.y, var_r29->scale.z);
PSMTXConcat(sp38, sp8, sp8);
MTXScale(sp8, var_r29->scale.x, var_r29->scale.y, var_r29->scale.z);
MTXConcat(sp38, sp8, sp8);
mtxTransCat(sp8, var_r29->pos.x, var_r29->pos.y, var_r29->pos.z);
PSMTXConcat(sp68, sp8, sp8);
MTXConcat(sp68, sp8, sp8);
}
if (lbl_1_bss_6C0 != 0) {
OSReport("%s \n", temp_r27->name);
}
if (strcmp(arg2, temp_r27->name) == 0) {
PSMTXCopy(sp8, arg3);
MTXCopy(sp8, arg3);
lbl_1_bss_6C8 = 1;
}
for (var_r23 = 0; var_r23 < temp_r27->data.childrenCount; var_r23++) {

View file

@ -1,9 +1,10 @@
#include "REL/m424Dll.h"
#include "math.h"
#include "game/audio.h"
#include "game/hsfman.h"
#include "game/hsfmotion.h"
#include "math.h"
// STRUCT
typedef struct _M424DllMapStruct {
@ -20,8 +21,8 @@ typedef struct _M424DllMapStruct {
} M424DllMapStruct; // sizeof 0x54
// BSS
Process* lbl_1_bss_54;
omObjData* lbl_1_bss_50;
Process *lbl_1_bss_54;
omObjData *lbl_1_bss_50;
// DATA
Vec lbl_1_data_E0 = { 0.0f, 3000.0f, 1.0f };
@ -29,12 +30,13 @@ Vec lbl_1_data_EC = { 0.0f, 1.0f, 0.0f };
Vec lbl_1_data_F8 = { 0.0f, 0.0f, 0.0f };
// PROTO
void fn_1_1BB8(omObjData*);
void fn_1_1E1C(omObjData*);
void fn_1_2130(omObjData*);
void fn_1_1BB8(omObjData *);
void fn_1_1E1C(omObjData *);
void fn_1_2130(omObjData *);
void fn_1_2438(f32);
omObjData* fn_1_1AB8(Process* arg0) {
omObjData *fn_1_1AB8(Process *arg0)
{
lbl_1_bss_54 = arg0;
lbl_1_bss_50 = omAddObjEx(arg0, 0x7F, 6, 0, -1, fn_1_1BB8);
lbl_1_bss_50->data = NULL;
@ -44,12 +46,14 @@ omObjData* fn_1_1AB8(Process* arg0) {
return lbl_1_bss_50;
}
void fn_1_1B8C(void) {
void fn_1_1B8C(void)
{
fn_1_2130(lbl_1_bss_50);
}
void fn_1_1BB8(omObjData* arg0) {
M424DllMapStruct* var_r30;
void fn_1_1BB8(omObjData *arg0)
{
M424DllMapStruct *var_r30;
var_r30 = arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x54, 0x10000000);
memset(var_r30, 0, 0x54);
@ -82,9 +86,10 @@ void fn_1_1BB8(omObjData* arg0) {
arg0->func = fn_1_1E1C;
}
void fn_1_1E1C(omObjData* arg0) {
void fn_1_1E1C(omObjData *arg0)
{
f32 temp_f31;
M424DllMapStruct* temp_r31;
M424DllMapStruct *temp_r31;
temp_r31 = arg0->data;
if (temp_r31->unk40 > 0) {
@ -108,8 +113,9 @@ void fn_1_1E1C(omObjData* arg0) {
if (temp_r31->unk0 > 0.04f) {
temp_r31->unk0 = 0.04f;
}
if (temp_r31->unk38 != -1) break;
if (temp_r31->unk38 != -1)
break;
temp_r31->unk38 = HuAudFXPlay(0x626);
break;
default:
@ -120,8 +126,8 @@ void fn_1_1E1C(omObjData* arg0) {
}
temp_f31 = temp_r31->unk0 / 0.04f;
if (temp_r31->unk38 != -1) {
HuAudFXVolSet(temp_r31->unk38, (s16) (-8191.0f * (1.0f - temp_f31)));
HuAudFXPitchSet(temp_r31->unk38, (s16) (127.0f * temp_f31));
HuAudFXVolSet(temp_r31->unk38, (s16)(-8191.0f * (1.0f - temp_f31)));
HuAudFXPitchSet(temp_r31->unk38, (s16)(127.0f * temp_f31));
if (temp_f31 <= 0.0f) {
HuAudFXStop(temp_r31->unk38);
temp_r31->unk38 = -1;
@ -130,16 +136,18 @@ void fn_1_1E1C(omObjData* arg0) {
}
break;
}
if (temp_r31->unk48 != 0) {
if (temp_r31->unk4C != 0) {
temp_r31->unk4C = (temp_r31->unk4C - 1);
} else {
}
else {
temp_r31->unk48 = (temp_r31->unk48 - 1);
if (temp_r31->unk48 != 0) {
Hu3DModelAttrReset(arg0->model[4], 1);
Hu3DModelAttrSet(arg0->model[5], 1);
} else {
}
else {
Hu3DModelAttrSet(arg0->model[4], 1);
Hu3DModelAttrReset(arg0->model[5], 1);
if (temp_r31->unk50 != -1) {
@ -150,16 +158,18 @@ void fn_1_1E1C(omObjData* arg0) {
}
}
temp_r31->unk4 = (20.0f * temp_r31->unk0);
PSMTXRotRad(temp_r31->unk8, 0x59, MTXDegToRad(temp_r31->unk4));
MTXRotRad(temp_r31->unk8, 0x59, MTXDegToRad(temp_r31->unk4));
Hu3DMotionSpeedSet(arg0->model[1], temp_r31->unk0);
}
void fn_1_2130(omObjData* arg0) {
void fn_1_2130(omObjData *arg0)
{
arg0->func = NULL;
}
f32 fn_1_213C(void) {
M424DllMapStruct* var_r31;
f32 fn_1_213C(void)
{
M424DllMapStruct *var_r31;
if (!lbl_1_bss_50) {
return 0.0f;
}
@ -170,17 +180,19 @@ f32 fn_1_213C(void) {
return var_r31->unk4;
}
void fn_1_21B0(Mtx arg0) {
M424DllMapStruct* var_r31;
void fn_1_21B0(Mtx arg0)
{
M424DllMapStruct *var_r31;
if (lbl_1_bss_50 && lbl_1_bss_50->data) {
var_r31 = lbl_1_bss_50->data;
PSMTXCopy(var_r31->unk8, *(Mtx*)&arg0);
MTXCopy(var_r31->unk8, *(Mtx *)&arg0);
}
}
void fn_1_2220(Vec* arg0, Vec* arg1) {
void fn_1_2220(Vec *arg0, Vec *arg1)
{
Vec spC;
M424DllMapStruct* temp_r30;
M424DllMapStruct *temp_r30;
if (lbl_1_bss_50 && lbl_1_bss_50->data) {
temp_r30 = lbl_1_bss_50->data;
@ -188,23 +200,25 @@ void fn_1_2220(Vec* arg0, Vec* arg1) {
spC.x = (temp_r30->unk8[0][0] * arg0->x) + (temp_r30->unk8[0][2] * arg0->z);
spC.z = (temp_r30->unk8[2][0] * arg0->x) + (temp_r30->unk8[2][2] * arg0->z);
spC.y = arg0->y;
} else {
}
else {
spC = *arg0;
}
PSVECSubtract(&spC, arg0, &spC);
VECSubtract(&spC, arg0, &spC);
*arg1 = spC;
}
}
void fn_1_2438(f32 arg0) {
M424DllMapStruct* spC;
HsfAttribute* var_r31;
ModelData* temp_r30;
HsfData* temp_r29;
void fn_1_2438(f32 arg0)
{
M424DllMapStruct *spC;
HsfAttribute *var_r31;
ModelData *temp_r30;
HsfData *temp_r29;
s32 var_r28;
HsfBitmap* var_r27;
omObjData* var_r26;
HsfBitmap *var_r27;
omObjData *var_r26;
if (lbl_1_bss_50 && lbl_1_bss_50->data) {
var_r26 = lbl_1_bss_50;
spC = lbl_1_bss_50->data;
@ -213,7 +227,8 @@ void fn_1_2438(f32 arg0) {
var_r31 = temp_r30->hsfData->attribute;
for (var_r28 = 0; var_r28 < temp_r29->attributeCnt; var_r28++, var_r31++) {
var_r27 = var_r31->bitmap;
if (strcmp("cr_dk2", var_r27->name) == 0) break;
if (strcmp("cr_dk2", var_r27->name) == 0)
break;
}
if (var_r28 < temp_r29->attributeCnt) {
var_r31->unk30 += arg0;
@ -221,9 +236,10 @@ void fn_1_2438(f32 arg0) {
}
}
void fn_1_252C(f32 arg8, s32 arg0) {
omObjData* sp10;
M424DllMapStruct* temp_r31;
void fn_1_252C(f32 arg8, s32 arg0)
{
omObjData *sp10;
M424DllMapStruct *temp_r31;
if (lbl_1_bss_50 && lbl_1_bss_50->data) {
sp10 = lbl_1_bss_50;
@ -234,9 +250,10 @@ void fn_1_252C(f32 arg8, s32 arg0) {
}
}
f32 fn_1_25C0(void) {
omObjData* sp8;
M424DllMapStruct* temp_r31;
f32 fn_1_25C0(void)
{
omObjData *sp8;
M424DllMapStruct *temp_r31;
if (!lbl_1_bss_50) {
return 0.0f;
@ -252,9 +269,10 @@ f32 fn_1_25C0(void) {
return 0.0f;
}
void fn_1_2670(s32 arg0, s32 arg1) {
omObjData* temp_r30;
M424DllMapStruct* temp_r31;
void fn_1_2670(s32 arg0, s32 arg1)
{
omObjData *temp_r30;
M424DllMapStruct *temp_r31;
if (lbl_1_bss_50 && lbl_1_bss_50->data) {
temp_r30 = lbl_1_bss_50;
@ -267,17 +285,9 @@ void fn_1_2670(s32 arg0, s32 arg1) {
}
// UNUSED (guessing types)
M424DllMainStruct lbl_1_data_10C = {
{ 0.0f, 0.0f, 5500.0f },
{ -3950.0f, 0.0f, -0.7f },
0.6f
};
M424DllMainStruct lbl_1_data_10C = { { 0.0f, 0.0f, 5500.0f }, { -3950.0f, 0.0f, -0.7f }, 0.6f };
GXColor lbl_1_data_128 = { 0xFF, 0xFF, 0xFF, 0xFF };
M424DllMainStruct lbl_1_data_12C = {
{ 0.0f, 5500.0f, -3950.0f },
{ 0.0f, 1.0f, 0.0f },
0.0f
};
M424DllMainStruct lbl_1_data_12C = { { 0.0f, 5500.0f, -3950.0f }, { 0.0f, 1.0f, 0.0f }, 0.0f };
s32 lbl_1_data_148[2] = {0};
s32 lbl_1_data_148[2] = { 0 };

View file

@ -562,18 +562,18 @@ void fn_1_14CC(Mtx arg0, float arg8, float arg9, float argA)
Mtx sp38;
Mtx sp8;
if (argA != 0.0f) {
PSMTXRotRad(arg0, 0x5A, MTXDegToRad(argA));
MTXRotRad(arg0, 0x5A, MTXDegToRad(argA));
}
else {
PSMTXIdentity(arg0);
MTXIdentity(arg0);
}
if (arg8 != 0.0f) {
PSMTXRotRad(sp38, 0x58, MTXDegToRad(arg8));
PSMTXConcat(sp38, arg0, arg0);
MTXRotRad(sp38, 0x58, MTXDegToRad(arg8));
MTXConcat(sp38, arg0, arg0);
}
if (arg9 != 0.0f) {
PSMTXRotRad(sp8, 0x59, MTXDegToRad(arg9));
PSMTXConcat(sp8, arg0, arg0);
MTXRotRad(sp8, 0x59, MTXDegToRad(arg9));
MTXConcat(sp8, arg0, arg0);
}
}
@ -1374,7 +1374,7 @@ void fn_1_5044(s16 sp8)
var_r31->unk_2C[1].unk_04 = 0;
var_r31->unk_2C[1].unk_48 = 0x80;
for (var_r30 = 0; var_r30 < (var_r31->unk_28 * var_r31->unk_2A); var_r30++) {
PSMTXIdentity(var_r31->unk_2C[var_r30].unk_14);
MTXIdentity(var_r31->unk_2C[var_r30].unk_14);
var_r31->unk_2C[var_r30].unk_08.x = var_r31->unk_2C[var_r30].unk_08.y = var_r31->unk_2C[var_r30].unk_08.z = 0.0f;
}
for (var_r30 = 0; var_r30 < var_r31->unk_28; var_r30++) {
@ -1503,8 +1503,8 @@ void fn_1_5C20(ModelData *var_r27, Mtx sp8)
GXSetChanAmbColor(GX_COLOR0A0, var_r31->unk_20);
GXSetChanMatColor(GX_COLOR0A0, var_r31->unk_24);
GXLoadPosMtxImm(sp8, 0);
PSMTXInverse(sp8, sp5C);
PSMTXTranspose(sp5C, sp2C);
MTXInverse(sp8, sp5C);
MTXTranspose(sp5C, sp2C);
GXLoadNrmMtxImm(sp2C, 0);
GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP);
GXSetZMode(1, GX_LEQUAL, 1);
@ -1512,7 +1512,7 @@ void fn_1_5C20(ModelData *var_r27, Mtx sp8)
var_r28 = 0;
spC = 0;
for (var_r29 = GX_TEXMAP0; var_r29 < var_r31->unk_28; var_r29++) {
PSMTXRotRad(var_r31->unk_2C[var_r29].unk_14, 0x5A, 0.0f);
MTXRotRad(var_r31->unk_2C[var_r29].unk_14, 0x5A, 0.0f);
mtxTransCat(
var_r31->unk_2C[var_r29].unk_14, var_r31->unk_2C[var_r29].unk_08.x, var_r31->unk_2C[var_r29].unk_08.y, var_r31->unk_2C[var_r29].unk_08.z);
switch (var_r31->unk_2C[var_r29].unk_04) {

View file

@ -1665,7 +1665,7 @@ void fn_1_DE3C(M425DllUnkStruct4 *arg0, ModelData *model)
sp8.x = arg0->unk_180[var_r26].x - arg0->unk_180[var_r29].x;
sp8.y = arg0->unk_180[var_r26].y - arg0->unk_180[var_r29].y;
sp8.z = arg0->unk_180[var_r26].z - arg0->unk_180[var_r29].z;
PSVECCrossProduct(&sp14, &sp8, &sp20);
VECCrossProduct(&sp14, &sp8, &sp20);
sp20.x *= -1.0f;
sp20.y *= -1.0f;
sp20.z *= -1.0f;
@ -1685,7 +1685,7 @@ void fn_1_DE3C(M425DllUnkStruct4 *arg0, ModelData *model)
}
}
for (var_r30 = 0; var_r30 < arg0->unk_110; var_r30++) {
PSVECNormalize(&arg0->unk_188[var_r30], &arg0->unk_188[var_r30]);
VECNormalize(&arg0->unk_188[var_r30], &arg0->unk_188[var_r30]);
}
}
@ -1803,7 +1803,7 @@ void fn_1_E210(s32 arg0)
sp8.x = sind(var_r31->unk_E4) * cosd(var_r31->unk_E0);
sp8.z = cosd(var_r31->unk_E4) * cosd(var_r31->unk_E0);
sp8.y = sind(var_r31->unk_E0);
PSVECNormalize(&sp8, &sp8);
VECNormalize(&sp8, &sp8);
var_r28 = &Hu3DLocalLight[var_r27->unk_38[0]];
var_r28->unk_1C.x = 1000.0f * sp8.x;
var_r28->unk_1C.y = 1000.0f * sp8.y;
@ -2093,7 +2093,7 @@ void fn_1_101C4(ModelData *var_r29, Mtx var_r28)
var_r31 = var_r29->unk_120;
GXLoadPosMtxImm(var_r28, 0);
PSMTXInvXpose(var_r28, sp50);
MTXInvXpose(var_r28, sp50);
GXLoadNrmMtxImm(sp50, 0);
var_r27 = fn_1_115D4(var_r29, Hu3DCameraMtx, Hu3DCameraMtxXPose, 4.0f);
if (omPauseChk() == 0) {
@ -2129,7 +2129,7 @@ void fn_1_101C4(ModelData *var_r29, Mtx var_r28)
GXSetZCompLoc(0);
GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP);
if (HmfInverseMtxF3X3(var_r28, sp50) == 0) {
PSMTXIdentity(sp50);
MTXIdentity(sp50);
}
PSMTXReorder(sp50, sp20);
GXClearVtxDesc();
@ -2418,7 +2418,7 @@ void fn_1_112FC(void)
var_r31->unk_04.y = var_r31->unk_10.y * var_r31->unk_1C;
var_r31->unk_04.z = var_r31->unk_10.z * var_r31->unk_1C;
var_r31->unk_1C *= 0.95f;
PSVECAdd(&var_r31->unk_30, &var_r31->unk_04, &var_r31->unk_30);
VECAdd(&var_r31->unk_30, &var_r31->unk_04, &var_r31->unk_30);
if (++var_r31->unk_40 >= 0xF) {
var_r31->unk_40 = 0;
var_r31->unk_28 = 0.0f;
@ -2503,7 +2503,7 @@ void fn_1_116E4(ModelData *arg1, LightData *var_r31, s16 sp8, Mtx spC, Mtx sp10,
break;
case 1:
GXInitLightAttn(&lbl_1_bss_688, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f);
PSVECScale(&var_r31->unk_28, &var_r31->unk_1C, -100000.0f);
VECScale(&var_r31->unk_28, &var_r31->unk_1C, -100000.0f);
break;
case 2:
GXInitLightAttn(&lbl_1_bss_688, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
@ -2511,8 +2511,8 @@ void fn_1_116E4(ModelData *arg1, LightData *var_r31, s16 sp8, Mtx spC, Mtx sp10,
break;
}
if ((var_r31->unk_00 & 0x8000) != 0) {
PSMTXMultVec(spC, &var_r31->unk_28, &lbl_1_bss_67C);
PSMTXMultVec(sp10, &var_r31->unk_1C, &lbl_1_bss_670);
MTXMultVec(spC, &var_r31->unk_28, &lbl_1_bss_67C);
MTXMultVec(sp10, &var_r31->unk_1C, &lbl_1_bss_670);
GXInitLightPos(&lbl_1_bss_688, lbl_1_bss_670.x, lbl_1_bss_670.y, lbl_1_bss_670.z);
}
else {
@ -2692,7 +2692,7 @@ void fn_1_11EE0(ModelData *var_r24, Mtx var_r21)
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0);
GXSetArray(GX_VA_TEX0, var_r31->unk_44, 8);
if (HmfInverseMtxF3X3(var_r21, sp128) == 0) {
PSMTXIdentity(sp128);
MTXIdentity(sp128);
}
PSMTXReorder(sp128, &sp8[0]);
if (var_r31->unk_4C) {
@ -2718,27 +2718,27 @@ void fn_1_11EE0(ModelData *var_r24, Mtx var_r21)
if (!var_r29->unk_2C) {
var_r28 = &sp98[0];
var_r27 = &sp38[0];
PSVECScale(var_r27++, var_r28, var_r29->unk_28);
PSVECAdd(var_r28++, &var_r29->unk_30, var_r30++);
PSVECScale(var_r27++, var_r28, var_r29->unk_28);
PSVECAdd(var_r28++, &var_r29->unk_30, var_r30++);
PSVECScale(var_r27++, var_r28, var_r29->unk_28);
PSVECAdd(var_r28++, &var_r29->unk_30, var_r30++);
PSVECScale(var_r27++, var_r28, var_r29->unk_28);
PSVECAdd(var_r28++, &var_r29->unk_30, var_r30++);
VECScale(var_r27++, var_r28, var_r29->unk_28);
VECAdd(var_r28++, &var_r29->unk_30, var_r30++);
VECScale(var_r27++, var_r28, var_r29->unk_28);
VECAdd(var_r28++, &var_r29->unk_30, var_r30++);
VECScale(var_r27++, var_r28, var_r29->unk_28);
VECAdd(var_r28++, &var_r29->unk_30, var_r30++);
VECScale(var_r27++, var_r28, var_r29->unk_28);
VECAdd(var_r28++, &var_r29->unk_30, var_r30++);
}
else {
PSVECScale(lbl_1_data_19C, &sp98[0], var_r29->unk_28);
PSVECScale(&lbl_1_data_19C[1], &sp98[1], var_r29->unk_28);
PSVECScale(&lbl_1_data_19C[2], &sp98[2], var_r29->unk_28);
PSVECScale(&lbl_1_data_19C[3], &sp98[3], var_r29->unk_28);
PSMTXRotRad(spC8, 0x5A, var_r29->unk_2C);
PSMTXConcat(sp128, spC8, spF8);
PSMTXMultVecArray(spF8, &sp98[0], &sp68[0], 4);
PSVECAdd(&sp68[0], &var_r29->unk_30, var_r30++);
PSVECAdd(&sp68[1], &var_r29->unk_30, var_r30++);
PSVECAdd(&sp68[2], &var_r29->unk_30, var_r30++);
PSVECAdd(&sp68[3], &var_r29->unk_30, var_r30++);
VECScale(lbl_1_data_19C, &sp98[0], var_r29->unk_28);
VECScale(&lbl_1_data_19C[1], &sp98[1], var_r29->unk_28);
VECScale(&lbl_1_data_19C[2], &sp98[2], var_r29->unk_28);
VECScale(&lbl_1_data_19C[3], &sp98[3], var_r29->unk_28);
MTXRotRad(spC8, 0x5A, var_r29->unk_2C);
MTXConcat(sp128, spC8, spF8);
MTXMultVecArray(spF8, &sp98[0], &sp68[0], 4);
VECAdd(&sp68[0], &var_r29->unk_30, var_r30++);
VECAdd(&sp68[1], &var_r29->unk_30, var_r30++);
VECAdd(&sp68[2], &var_r29->unk_30, var_r30++);
VECAdd(&sp68[3], &var_r29->unk_30, var_r30++);
}
var_r20 = var_r29->unk_40 & 3;
var_r19 = (var_r29->unk_40 >> 2) & 3;

View file

@ -394,18 +394,18 @@ void fn_1_330(omObjData *object)
if (!WipeStatGet()) {
lbl_1_bss_54 = 1;
lbl_1_bss_58 = 0;
lbl_1_bss_30 = 120;
lbl_1_bss_30 = 2 * REFRESH_RATE;
}
break;
case 1:
if (++lbl_1_bss_58 >= 15.0f) {
if (++lbl_1_bss_58 >= REFRESH_RATE / 4.0f) {
lbl_1_bss_54 = 2;
lbl_1_bss_58 = 0;
lbl_1_bss_38 = 1;
}
break;
case 2:
var_f31 = 0.007246377f * lbl_1_bss_58;
var_f31 = (VERSION_NTSC ? 0.007246377f : 0.008695652f) * lbl_1_bss_58;
var_f31 = sind(90.0f * var_f31);
var_f31 *= var_f31;
for (var_r31 = 0; var_r31 < 7; var_r31++) {
@ -418,7 +418,7 @@ void fn_1_330(omObjData *object)
Center.y = sp10[4];
Center.z = sp10[5];
CZoom = sp10[6];
if (++lbl_1_bss_58 >= 138.0f) {
if (++lbl_1_bss_58 >= (VERSION_NTSC ? 138.0f : 115.0f)) {
CRot.x = lbl_1_data_4C[0][0];
CRot.y = lbl_1_data_4C[0][1];
CRot.z = lbl_1_data_4C[0][2];
@ -431,7 +431,7 @@ void fn_1_330(omObjData *object)
}
break;
case 3:
if (++lbl_1_bss_58 >= 30.0f) {
if (++lbl_1_bss_58 >= (REFRESH_RATE / 2.0f)) {
lbl_1_bss_50 = MGSeqCreate(3, 0);
lbl_1_bss_54 = 4;
lbl_1_bss_58 = 0;
@ -452,9 +452,9 @@ void fn_1_330(omObjData *object)
lbl_1_bss_40 = 1;
lbl_1_bss_3C = 1;
lbl_1_bss_54 = 5;
lbl_1_bss_58 = 1800;
lbl_1_bss_58 = 30 * REFRESH_RATE;
fn_1_7328(1);
lbl_1_bss_4C = MGSeqCreate(1, lbl_1_bss_58 / 60, -1, -1);
lbl_1_bss_4C = MGSeqCreate(1, lbl_1_bss_58 / REFRESH_RATE, -1, -1);
}
break;
case 5:
@ -463,10 +463,10 @@ void fn_1_330(omObjData *object)
var_r25 = 0;
}
MGSeqParamSet(lbl_1_bss_4C, 1, var_r25);
if (lbl_1_bss_58 == 600) {
if (lbl_1_bss_58 == 10 * REFRESH_RATE) {
lbl_1_bss_34 = 3.0f;
}
else if (lbl_1_bss_58 == 1200) {
else if (lbl_1_bss_58 == 20 * REFRESH_RATE) {
lbl_1_bss_34 = 2.5f;
}
if (--lbl_1_bss_58 < -1 || lbl_1_bss_1C[0] <= 0 || lbl_1_bss_1C[1] <= 0) {
@ -529,7 +529,7 @@ void fn_1_330(omObjData *object)
}
break;
case 7:
if (++lbl_1_bss_58 > 210.0f) {
if (++lbl_1_bss_58 > 3.5f * REFRESH_RATE) {
lbl_1_bss_50 = -1;
lbl_1_bss_54 = 8;
lbl_1_bss_58 = 0;
@ -946,8 +946,8 @@ void fn_1_16F8(omObjData *object)
}
else if (var_f27 != 0.0f) {
var_f27 = 1.0f / var_f27;
object->trans.x += var_f28 * (var_f30 * var_f27);
object->trans.z += var_f28 * (var_f31 * var_f27);
object->trans.x += var_f28 * (var_f30 * var_f27) * (60.0f / REFRESH_RATE);
object->trans.z += var_f28 * (var_f31 * var_f27) * (60.0f / REFRESH_RATE);
}
}
var_f30 = object->trans.x - var_f22;
@ -1041,16 +1041,16 @@ void fn_1_16F8(omObjData *object)
break;
case 6:
var_r31->unk_2C++;
if (var_r31->unk_2C < 60.0f) {
if (var_r31->unk_2C < 1.0f * REFRESH_RATE) {
if (lbl_1_bss_40 == 0) {
var_r31->unk_2C = 59;
var_r31->unk_2C = REFRESH_RATE - 1;
}
}
else if (var_r31->unk_2C == 60.0f) {
else if (var_r31->unk_2C == 1.0f * REFRESH_RATE) {
var_r31->unk_28 = 7;
CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_28], 0.0f, 8.0f, HU3D_MOTATTR_NONE);
}
else if (var_r31->unk_2C >= 90.0f) {
else if (var_r31->unk_2C >= (VERSION_NTSC ? 90.0f : 80.0f)) {
var_r31->unk_24 = 7;
var_r31->unk_28 = 8;
CharModelMotionShiftSet(var_r31->unk_0C, object->motion[var_r31->unk_28], 0.0f, 8.0f, HU3D_MOTATTR_LOOP);
@ -1240,7 +1240,7 @@ void fn_1_2B74(Vec *arg0)
var_r31->unk_2C = 0;
var_r31->unk_24 = 3;
var_r31->unk_AC = 32;
var_r31->unk_30 = 90;
var_r31->unk_30 = 1.5f * REFRESH_RATE;
var_r31->unk_90 = var_r31->unk_94 = -1;
if (!var_r29->unk_00) {
var_r31->unk_9C.x = -1.0f;
@ -1370,7 +1370,7 @@ void fn_1_2F5C(omObjData *object, float *arg1, float *arg2, s32 *arg3)
break;
case 1:
if (var_r31->unk_B0 != -1) {
if (++var_r31->unk_B4 < 120.0f) {
if (++var_r31->unk_B4 < 2.0f * REFRESH_RATE) {
if (var_r31->unk_90 == var_r31->unk_B0) {
var_r31->unk_B0 = -1;
return;
@ -1389,12 +1389,12 @@ void fn_1_2F5C(omObjData *object, float *arg1, float *arg2, s32 *arg3)
return;
case 2:
if (var_r31->unk_B0 != -1) {
if (++var_r31->unk_B4 < 120.0f && var_r31->unk_B0 != var_r28->unk_B0) {
if (++var_r31->unk_B4 < 2.0f * REFRESH_RATE && var_r31->unk_B0 != var_r28->unk_B0) {
if (var_r31->unk_90 == var_r31->unk_B0) {
*arg3 |= 256;
var_r31->unk_B0 = -1;
var_r31->unk_B4 = 0;
var_r31->unk_B8 = (50.0f + (frand() % 15)) - (var_r31->unk_18 * 10);
var_r31->unk_B8 = ((VERSION_NTSC ? 50.0f : 45.0f) + (frand() % 15)) - (var_r31->unk_18 * 10);
var_r31->unk_BC = 0;
return;
}
@ -1585,7 +1585,7 @@ void fn_1_3714(omObjData *object)
sp8.x = 0.0f;
sp8.y = 500.0f;
sp8.z = var_r31->unk_38;
var_r25 = 0.3f * (var_r31->unk_00 * 60);
var_r25 = 0.3f * (var_r31->unk_00 * REFRESH_RATE);
var_r31->unk_34 = fn_1_5C6C(var_r31->unk_00, var_r25, &sp8);
}
lbl_1_bss_24 = HuSprAnimRead(HuDataReadNum(DATA_MAKE_NUM(DATADIR_M426, 1), MEMORY_DEFAULT_NUM));
@ -1975,7 +1975,7 @@ void fn_1_5134(omObjData *object)
}
break;
case 1:
if ((var_r31->unk_40 -= 50.0f) <= 50.0f) {
if ((var_r31->unk_40 -= (VERSION_NTSC ? 50.0f : 60.000004f)) <= 50.0f) {
if (lbl_1_bss_54 <= 4) {
fn_1_3654(0);
fn_1_3654(1);
@ -2005,8 +2005,8 @@ void fn_1_5134(omObjData *object)
}
if (fabs(fn_1_75F4(var_f31, var_r31->unk_48)) < 5.0) {
var_r31->unk_48 = var_f31;
if ((var_r31->unk_34 += 0.1f) > lbl_1_bss_34) {
var_r31->unk_34 = lbl_1_bss_34;
if ((var_r31->unk_34 += 0.1f) > lbl_1_bss_34 * (60.0f / REFRESH_RATE)) {
var_r31->unk_34 = lbl_1_bss_34 * (60.0f / REFRESH_RATE);
}
}
else {
@ -2054,7 +2054,7 @@ void fn_1_5134(omObjData *object)
if (lbl_1_bss_1C[1] < 0) {
lbl_1_bss_1C[1] = 0;
}
lbl_1_bss_30 = 60;
lbl_1_bss_30 = REFRESH_RATE;
lbl_1_bss_28 = 1.0f;
var_r31->unk_30 = 0;
var_r31->unk_28 = 4;
@ -2476,7 +2476,7 @@ void fn_1_6704(omObjData *object)
if (var_r31->unk_04) {
Hu3DModelPosSet(var_r31->unk_00, var_r31->unk_0C, var_r31->unk_10, var_r31->unk_14);
Hu3DModelRotSet(var_r31->unk_00, CRot.x, CRot.y, CRot.z);
if (++var_r31->unk_08 >= 120.0f) {
if (++var_r31->unk_08 >= 2.0f * REFRESH_RATE) {
Hu3DModelAttrSet(var_r31->unk_00, HU3D_ATTR_DISPOFF);
var_r31->unk_04 = 0;
var_r31->unk_08 = 0;
@ -3043,7 +3043,7 @@ void fn_1_80DC(ModelData *arg0, Mtx arg1)
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0);
GXSetArray(GX_VA_TEX0, var_r31->unk_44, 8);
if (!HmfInverseMtxF3X3(arg1, sp128)) {
PSMTXIdentity(sp128);
MTXIdentity(sp128);
}
PSMTXReorder(sp128, sp8);
if (var_r31->unk_4C) {
@ -3083,9 +3083,9 @@ void fn_1_80DC(ModelData *arg0, Mtx arg1)
VECScale(&lbl_1_data_22C[1], &sp98[1], var_r29->unk_28);
VECScale(&lbl_1_data_22C[2], &sp98[2], var_r29->unk_28);
VECScale(&lbl_1_data_22C[3], &sp98[3], var_r29->unk_28);
PSMTXRotRad(spC8, 90, var_r29->unk_2C);
PSMTXConcat(sp128, spC8, &spF8[0]);
PSMTXMultVecArray(spF8, &sp98[0], &sp68[0], 4);
MTXRotRad(spC8, 90, var_r29->unk_2C);
MTXConcat(sp128, spC8, &spF8[0]);
MTXMultVecArray(spF8, &sp98[0], &sp68[0], 4);
VECAdd(&sp68[0], &var_r29->unk_30, var_r30++);
VECAdd(&sp68[1], &var_r29->unk_30, var_r30++);
VECAdd(&sp68[2], &var_r29->unk_30, var_r30++);
@ -3222,7 +3222,7 @@ void fn_1_8E48(ModelData *arg0, Mtx arg1)
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST);
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
PSMTXIdentity(sp50);
MTXIdentity(sp50);
GXLoadPosMtxImm(sp50, 0);
GXSetZMode(GX_FALSE, GX_ALWAYS, GX_TRUE);
GXSetNumChans(1);

View file

@ -617,7 +617,7 @@ void fn_1_261C(omObjData *object)
}
}
u32 fn_1_26E0(void)
s32 fn_1_26E0(void)
{
return lbl_1_bss_7C;
}
@ -786,7 +786,7 @@ void fn_1_2E2C(s32 var_r26)
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST);
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
GXSetNumChans(0);
PSMTXIdentity(sp8C);
MTXIdentity(sp8C);
GXLoadPosMtxImm(sp8C, 0);
GXSetZMode(0, GX_ALWAYS, GX_TRUE);
GXSetNumChans(1);
@ -820,7 +820,7 @@ void fn_1_2E2C(s32 var_r26)
var_r25 = Hu3DShadowData.unk_02 * Hu3DShadowData.unk_02;
}
C_MTXLookAt(Hu3DCameraMtx, &Hu3DShadowData.unk_14, &Hu3DShadowData.unk_2C, &Hu3DShadowData.unk_20);
PSMTXCopy(Hu3DCameraMtx, Hu3DShadowData.unk_38);
MTXCopy(Hu3DCameraMtx, Hu3DShadowData.unk_38);
shadowModelDrawF = 1;
GXInvalidateTexAll();
GXSetFog(GX_FOG_NONE, 0.0f, 0.0f, 0.0f, 0.0f, BGColor);
@ -870,11 +870,11 @@ void fn_1_2E2C(s32 var_r26)
Hu3DModelShadowSet(var_r29->unk_00[var_r30]);
Hu3DShadowData.unk_00 = (s8)(var_r29->unk_20[var_r30] * var_r24);
mtxRot(sp5C, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z);
PSMTXScale(spBC, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z);
PSMTXConcat(sp5C, spBC, spBC);
MTXScale(spBC, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z);
MTXConcat(sp5C, spBC, spBC);
mtxTransCat(spBC, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z);
PSMTXConcat(Hu3DCameraMtx, spBC, sp8C);
PSMTXConcat(sp8C, var_r31->unk_F0, sp8C);
MTXConcat(Hu3DCameraMtx, spBC, sp8C);
MTXConcat(sp8C, var_r31->unk_F0, sp8C);
Hu3DDraw(var_r31, sp8C, &var_r31->scale);
Hu3DModelShadowReset(var_r29->unk_00[var_r30]);
}
@ -908,7 +908,7 @@ void fn_1_2E2C(s32 var_r26)
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST);
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
GXSetNumChans(0);
PSMTXIdentity(sp8C);
MTXIdentity(sp8C);
GXLoadPosMtxImm(sp8C, 0);
GXSetZMode(0, GX_ALWAYS, 1);
GXSetNumChans(1);
@ -966,7 +966,7 @@ void fn_1_3B64(void)
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
GXSetNumTexGens(1);
GXSetNumTevStages(1);
PSMTXIdentity(sp34);
MTXIdentity(sp34);
GXLoadPosMtxImm(sp34, 0);
GXSetZMode(0, GX_LEQUAL, GX_FALSE);
GXBegin(GX_QUADS, GX_VTXFMT0, 4);

View file

@ -402,8 +402,8 @@ u8 fn_1_5370(M433DllUnkStruct2 *arg0, Vec *arg1)
for (var_r27 = 0; var_r27 < arg0->unk_08; var_r27++, var_r31++) {
sp8 = *arg1;
sp8.y = 0.0f;
PSVECSubtract(&sp8, &var_r31->unk_00, &sp20);
var_f30 = PSVECMag(&sp20);
VECSubtract(&sp8, &var_r31->unk_00, &sp20);
var_f30 = VECMag(&sp20);
if (!(var_f30 > (400.0f + var_r31->unk_20)) && (var_r31->unk_2C != 0.0f)) {
var_r24 = 0;
for (var_r28 = 0; var_r28 < 3; var_r28++) {
@ -413,8 +413,8 @@ u8 fn_1_5370(M433DllUnkStruct2 *arg0, Vec *arg1)
}
var_r23 = &arg0->unk_00[var_r31->unk_0C[var_r28]];
var_r25 = &arg0->unk_00[var_r31->unk_0C[var_r26]];
PSVECSubtract(var_r25, var_r23, &sp20);
PSVECSubtract(arg1, var_r25, &sp14);
VECSubtract(var_r25, var_r23, &sp20);
VECSubtract(arg1, var_r25, &sp14);
var_f31 = (sp20.x * sp14.y) - (sp20.y * sp14.x);
if ((var_f31 * var_r31->unk_2C) < 0.0) {
var_r24 = 1;
@ -484,15 +484,15 @@ void fn_1_5684(HsfData *arg0, HsfObject *arg1)
var_r31->unk_00.z /= 3.0f;
var_r31->unk_20 = 0.0f;
for (var_r28 = 0; var_r28 < 3; var_r28++) {
PSVECSubtract(&((Vec *)var_r29->data)[var_r30->indices[var_r28][0]], &var_r31->unk_00, &sp18);
var_f31 = PSVECMag(&sp18);
VECSubtract(&((Vec *)var_r29->data)[var_r30->indices[var_r28][0]], &var_r31->unk_00, &sp18);
var_f31 = VECMag(&sp18);
if (var_f31 > var_r31->unk_20) {
var_r31->unk_20 = var_f31;
}
}
var_r31->unk_00.y = 0.0f;
PSVECSubtract(&((Vec *)var_r29->data)[var_r30->strip.indices[1][0]], &((Vec *)var_r29->data)[var_r30->strip.indices[0][0]], &sp18);
PSVECSubtract(&((Vec *)var_r29->data)[var_r30->strip.indices[2][0]], &((Vec *)var_r29->data)[var_r30->strip.indices[0][0]], &spC);
VECSubtract(&((Vec *)var_r29->data)[var_r30->strip.indices[1][0]], &((Vec *)var_r29->data)[var_r30->strip.indices[0][0]], &sp18);
VECSubtract(&((Vec *)var_r29->data)[var_r30->strip.indices[2][0]], &((Vec *)var_r29->data)[var_r30->strip.indices[0][0]], &spC);
var_r31->unk_24 = (sp18.y * spC.z) - (sp18.z * spC.y);
var_r31->unk_28 = (sp18.z * spC.x) - (sp18.x * spC.z);
var_r31->unk_2C = (sp18.x * spC.y) - (sp18.y * spC.x);
@ -514,14 +514,14 @@ void fn_1_5684(HsfData *arg0, HsfObject *arg1)
var_r31->unk_00.z *= 0.25f;
var_r31->unk_20 = 0.0f;
for (var_r28 = 0; var_r28 < 4; var_r28++) {
PSVECSubtract(&((Vec *)var_r29->data)[var_r30->indices[var_r28][0]], &var_r31->unk_00, &sp18);
var_f31 = PSVECMag(&sp18);
VECSubtract(&((Vec *)var_r29->data)[var_r30->indices[var_r28][0]], &var_r31->unk_00, &sp18);
var_f31 = VECMag(&sp18);
if (var_f31 > var_r31->unk_20) {
var_r31->unk_20 = var_f31;
}
}
PSVECSubtract(&((Vec *)var_r29->data)[var_r30->strip.indices[1][0]], &((Vec *)var_r29->data)[var_r30->strip.indices[0][0]], &sp18);
PSVECSubtract(&((Vec *)var_r29->data)[var_r30->strip.indices[2][0]], &((Vec *)var_r29->data)[var_r30->strip.indices[1][0]], &spC);
VECSubtract(&((Vec *)var_r29->data)[var_r30->strip.indices[1][0]], &((Vec *)var_r29->data)[var_r30->strip.indices[0][0]], &sp18);
VECSubtract(&((Vec *)var_r29->data)[var_r30->strip.indices[2][0]], &((Vec *)var_r29->data)[var_r30->strip.indices[1][0]], &spC);
var_r31->unk_24 = (sp18.y * spC.z) - (sp18.z * spC.y);
var_r31->unk_28 = (sp18.z * spC.x) - (sp18.x * spC.z);
var_r31->unk_2C = (sp18.x * spC.y) - (sp18.y * spC.x);
@ -719,12 +719,12 @@ void fn_1_6280(ModelData *arg1, ParticleData *particle, Mtx matrix)
}
break;
}
PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34);
VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34);
if (particle->unk_04.x != 0.0f) {
sp8 = particle->unk_04;
sp8.x *= var_r31->unk2C / 28.0f;
sp8.y = (((u8)var_r31->unk2C & 1) != 0 ? 1.0f : -1.0f) * (sp8.x * (0.05f + (s32)(0.2f * (fn_1_7500() / 65536.0f))));
PSVECAdd(&var_r31->unk34, &sp8, &var_r31->unk34);
VECAdd(&var_r31->unk34, &sp8, &var_r31->unk34);
}
}
DCFlushRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01));
@ -810,7 +810,7 @@ void fn_1_7430(void)
void fn_1_74B4(s16 arg0, Mtx arg1)
{
ModelData *var_r31 = &Hu3DData[arg0];
PSMTXCopy(arg1, var_r31->unk_F0);
MTXCopy(arg1, var_r31->unk_F0);
}
u32 lbl_1_data_14C = 0x41C64E6D;
@ -884,18 +884,18 @@ void fn_1_77F8(Mtx arg0, float arg8, float arg9, float argA)
Mtx sp8;
if (argA != 0.0f) {
PSMTXRotRad(arg0, 0x5A, MTXDegToRad(argA));
MTXRotRad(arg0, 0x5A, MTXDegToRad(argA));
}
else {
PSMTXIdentity(arg0);
MTXIdentity(arg0);
}
if (arg8 != 0.0f) {
PSMTXRotRad(sp38, 0x58, MTXDegToRad(arg8));
PSMTXConcat(sp38, arg0, arg0);
MTXRotRad(sp38, 0x58, MTXDegToRad(arg8));
MTXConcat(sp38, arg0, arg0);
}
if (arg9 != 0.0f) {
PSMTXRotRad(sp8, 0x59, MTXDegToRad(arg9));
PSMTXConcat(sp8, arg0, arg0);
MTXRotRad(sp8, 0x59, MTXDegToRad(arg9));
MTXConcat(sp8, arg0, arg0);
}
}
@ -1137,8 +1137,8 @@ void fn_1_939C(float *arg0, float (*arg1)[3], float (*arg2)[3], s32 var_r28)
arg0[0] = 0.0f;
for (var_r30 = 1; var_r30 < var_r28; var_r30++) {
PSVECSubtract((Vec *)&arg1[var_r30], (Vec *)&arg1[var_r30 - 1], &sp8);
arg0[var_r30] = arg0[var_r30 - 1] + PSVECMag(&sp8);
VECSubtract((Vec *)&arg1[var_r30], (Vec *)&arg1[var_r30 - 1], &sp8);
arg0[var_r30] = arg0[var_r30 - 1] + VECMag(&sp8);
}
for (var_r27 = 0; var_r27 < 3; var_r27++) {
for (var_r30 = 0; var_r30 < var_r28; var_r30++) {

3401
src/REL/m428Dll/player.c Normal file

File diff suppressed because it is too large Load diff

View file

@ -403,9 +403,9 @@ void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3)
var_r30 = &Hu3DData[arg0];
Hu3DModelObjMtxGet(arg0, arg1, spC);
PSMTXConcat(var_r30->unk_F0, spC, spC);
MTXConcat(var_r30->unk_F0, spC, spC);
if (NULL != arg3) {
PSMTXCopy(spC, arg3);
MTXCopy(spC, arg3);
}
arg2->x = spC[0][3];
arg2->y = spC[1][3];

View file

@ -118,7 +118,7 @@ void ObjectSetup(void)
sp8.x = sp8.z = 0.0f;
sp8.y = lbl_1_data_18.z;
mtxRot(sp20, lbl_1_data_18.x, lbl_1_data_18.y, 0.0f);
PSMTXMultVec(sp20, &sp8, &sp8);
MTXMultVec(sp20, &sp8, &sp8);
Hu3DGLightPosAimSetV(lbl_1_bss_26, &sp8, &sp14);
Hu3DShadowPosSet(&sp8, &lbl_1_data_34, &sp14);
lbl_1_bss_24 = lbl_1_bss_22 = lbl_1_bss_20 = -1;

View file

@ -278,8 +278,8 @@ void fn_1_BBC4(Process *process)
sp14.x = CenterM[0].x + (CZoomM[0] * (sind(CRotM[0].y) * cosd(CRotM[0].x)));
sp14.y = CenterM[0].y + (CZoomM[0] * -sind(CRotM[0].x));
sp14.z = CenterM[0].z + (CZoomM[0] * (cosd(CRotM[0].y) * cosd(CRotM[0].x)));
PSVECSubtract(CenterM, &sp14, &sp8);
PSVECNormalize(&sp8, &sp8);
VECSubtract(CenterM, &sp14, &sp8);
VECNormalize(&sp8, &sp8);
HuAudFXListnerSetEX(&sp14, &sp8, 100000.0f, 566.6667f, 0.0f, 300.0f, 300.0f);
}
@ -296,8 +296,8 @@ void fn_1_BE24(omObjData *object)
sp14.x = CenterM[0].x + (CZoomM[0] * (sind(CRotM[0].y) * cosd(CRotM[0].x)));
sp14.y = CenterM[0].y + (CZoomM[0] * -sind(CRotM[0].x));
sp14.z = CenterM[0].z + (CZoomM[0] * (cosd(CRotM[0].y) * cosd(CRotM[0].x)));
PSVECSubtract(CenterM, &sp14, &sp8);
PSVECNormalize(&sp8, &sp8);
VECSubtract(CenterM, &sp14, &sp8);
VECNormalize(&sp8, &sp8);
HuAudFXListnerUpdate(&sp14, &sp8);
}
@ -1619,7 +1619,7 @@ void fn_1_10948(ModelData *var_r29, Mtx var_r30)
Mtx sp8;
M430PlayerBss170Struct *var_r31 = var_r29->unk_120;
GXLoadPosMtxImm(var_r30, 0);
PSMTXInvXpose(var_r30, sp8);
MTXInvXpose(var_r30, sp8);
GXLoadNrmMtxImm(sp8, 0);
GXSetNumTevStages(1);
GXSetNumTexGens(1);

View file

@ -202,10 +202,13 @@ void fn_1_4CB4(omObjData *object)
u32 spC[1] = { DATA_MAKE_NUM(DATADIR_M430, 0x01) };
s32 sp8[1];
u32 sp90[4] = { DATA_MAKE_NUM(DATADIR_M430, 0x0B), DATA_MAKE_NUM(DATADIR_M430, 0x0C), DATA_MAKE_NUM(DATADIR_M430, 0x0D), DATA_MAKE_NUM(DATADIR_M430, 0x0E) };
u32 sp80[4] = { DATA_MAKE_NUM(DATADIR_M430, 0x02), DATA_MAKE_NUM(DATADIR_M430, 0x02), DATA_MAKE_NUM(DATADIR_M430, 0x03), DATA_MAKE_NUM(DATADIR_M430, 0x03) };
u32 sp90[4] = { DATA_MAKE_NUM(DATADIR_M430, 0x0B), DATA_MAKE_NUM(DATADIR_M430, 0x0C), DATA_MAKE_NUM(DATADIR_M430, 0x0D),
DATA_MAKE_NUM(DATADIR_M430, 0x0E) };
u32 sp80[4] = { DATA_MAKE_NUM(DATADIR_M430, 0x02), DATA_MAKE_NUM(DATADIR_M430, 0x02), DATA_MAKE_NUM(DATADIR_M430, 0x03),
DATA_MAKE_NUM(DATADIR_M430, 0x03) };
u32 sp70[4] = { DATA_MAKE_NUM(DATADIR_M430, 0x04), DATA_MAKE_NUM(DATADIR_M430, 0x04), 0, 0 };
u32 sp60[4] = { DATA_MAKE_NUM(DATADIR_M430, 0x06), DATA_MAKE_NUM(DATADIR_M430, 0x07), DATA_MAKE_NUM(DATADIR_M430, 0x08), DATA_MAKE_NUM(DATADIR_M430, 0x09) };
u32 sp60[4] = { DATA_MAKE_NUM(DATADIR_M430, 0x06), DATA_MAKE_NUM(DATADIR_M430, 0x07), DATA_MAKE_NUM(DATADIR_M430, 0x08),
DATA_MAKE_NUM(DATADIR_M430, 0x09) };
s32 sp50[4];
s32 sp40[4];
s32 sp30[4];
@ -481,10 +484,10 @@ void fn_1_6180(M430DllWork *work)
sp28.x = sp1C.x;
sp28.y = 0.0f;
sp28.z = sp1C.z - 450000.0f;
PSVECSubtract(&sp28, &sp1C, &sp10);
PSVECNormalize(&sp10, &sp10);
PSVECScale(&sp10, &sp10, 6000.0f);
PSVECAdd(&sp1C, &sp10, &sp28);
VECSubtract(&sp28, &sp1C, &sp10);
VECNormalize(&sp10, &sp10);
VECScale(&sp10, &sp10, 6000.0f);
VECAdd(&sp1C, &sp10, &sp28);
Hu3DModelPosSetV(work->unk_18, &sp28);
if ((fn_1_4070() >= 2) && (fn_1_4030() != 0)) {
if ((lbl_1_bss_40 != 0) && (lbl_1_bss_48 >= work->unk_04.x)) {
@ -494,10 +497,10 @@ void fn_1_6180(M430DllWork *work)
sp28.x = 0.0f;
sp28.y = 0.0f;
sp28.z = work->unk_20 - fn_1_7FBC(work->unk_00);
PSVECSubtract(&sp28, &sp1C, &sp10);
PSVECNormalize(&sp10, &sp10);
PSVECScale(&sp10, &sp10, 5000.0f);
PSVECAdd(&sp1C, &sp10, &sp28);
VECSubtract(&sp28, &sp1C, &sp10);
VECNormalize(&sp10, &sp10);
VECScale(&sp10, &sp10, 5000.0f);
VECAdd(&sp1C, &sp10, &sp28);
sp28.y += 237.5f;
Hu3DModelPosSet(work->unk_1A, 0.0f, 593.75f, work->unk_20);
var_r30 = ((ParticleData *)Hu3DData[work->unk_1A].unk_120)->unk_48;
@ -742,8 +745,8 @@ void fn_1_732C(omObjData *object, M430DllUnkStruct2 *arg1)
var_r29 = 1;
}
else {
PSVECSubtract(&arg1->unk_18, &arg1->unk_0C, &sp8);
var_f31 = PSVECMag(&sp8);
VECSubtract(&arg1->unk_18, &arg1->unk_0C, &sp8);
var_f31 = VECMag(&sp8);
if (var_f31 < 50.0f) {
var_r29 = 1;
}
@ -758,7 +761,7 @@ void fn_1_732C(omObjData *object, M430DllUnkStruct2 *arg1)
arg1->unk_38 = 200.0f + frandmod(0x258);
arg1->unk_28 = 400.0f;
}
PSVECSubtract(&arg1->unk_18, &arg1->unk_0C, &sp8);
VECSubtract(&arg1->unk_18, &arg1->unk_0C, &sp8);
arg1->unk_30 = atan2d(sp8.x, sp8.z);
arg1->unk_2C = fn_1_48B0(arg1->unk_2C, arg1->unk_30, 0.08f);
arg1->unk_28 += 0.05f * (300.0f - arg1->unk_28);
@ -822,7 +825,7 @@ void fn_1_7848(omObjData *object)
var_r31->unk_08.x = var_f31 * sind(var_f30);
var_r31->unk_08.y = 0.0f;
var_r31->unk_08.z = var_f31 * cosd(var_f30);
PSVECAdd(&var_r31->unk_14, &var_r31->unk_08, &var_r31->unk_08);
VECAdd(&var_r31->unk_14, &var_r31->unk_08, &var_r31->unk_08);
var_r31->unk_38 = 60.0f - (0.13483146f * var_f31);
var_r31->unk_28 = frandmod(0x168);
if (frandmod(0x3E8) < 0x1F4) {
@ -857,7 +860,7 @@ void fn_1_7CAC(omObjData *object)
if (fn_1_4070() >= 4) {
for (var_r29 = 0; var_r29 < var_r28; var_r29++, work++) {
sp8 = 0;
PSVECSubtract(&work->unk_14, &work->unk_08, &spC);
VECSubtract(&work->unk_14, &work->unk_08, &spC);
work->unk_2C = atan2d(spC.x, spC.z);
work->unk_28 = fn_1_48B0(work->unk_28, work->unk_2C + work->unk_3C, 0.08f);
work->unk_24 += (0.05f * (600.0f - work->unk_24));
@ -883,9 +886,9 @@ void fn_1_7EAC(omObjData *object, M430DllWork2 *var_r31)
for (var_r30 = 0; var_r30 < var_r28; var_r30++, var_r31++) {
Hu3DModelPosSet(var_r31->unk_00, var_r31->unk_08.x, var_r31->unk_08.y, var_r31->unk_08.z + var_f31);
var_r29 = &Hu3DData[var_r31->unk_00].unk_F0;
PSMTXRotRad(*var_r29, 0x59, 0.017453292f * var_r31->unk_28);
PSMTXRotRad(sp8, 0x5A, 0.017453292f * var_r31->unk_38);
PSMTXConcat(*var_r29, sp8, *var_r29);
MTXRotRad(*var_r29, 0x59, 0.017453292f * var_r31->unk_28);
MTXRotRad(sp8, 0x5A, 0.017453292f * var_r31->unk_38);
MTXConcat(*var_r29, sp8, *var_r29);
Hu3DModelAttrReset(var_r31->unk_00, HU3D_ATTR_DISPOFF);
}
}
@ -1062,8 +1065,8 @@ void fn_1_86B4(omObjData *object, M430DllBss60Struct *arg1)
sp14.z = 2000.0f + arg1->unk_24;
if (lbl_1_bss_5C != 0) {
for (var_r29 = 0; var_r29 < 0x1B8; var_r29++) {
PSVECSubtract(var_r28, &sp14, &sp8);
var_f31 = 0.00025f * PSVECMag(&sp8);
VECSubtract(var_r28, &sp14, &sp8);
var_f31 = 0.00025f * VECMag(&sp8);
if (var_f31 < 0.3f) {
var_r30->a = -1;
}
@ -1080,8 +1083,8 @@ void fn_1_86B4(omObjData *object, M430DllBss60Struct *arg1)
}
else {
for (var_r29 = 0; var_r29 < 0x1B8; var_r29++) {
PSVECSubtract(var_r28, &sp14, &sp8);
var_f31 = 0.00025f * PSVECMag(&sp8);
VECSubtract(var_r28, &sp14, &sp8);
var_f31 = 0.00025f * VECMag(&sp8);
if (var_f31 < 0.25f) {
var_r30->a = -0x1A;
}
@ -1105,7 +1108,7 @@ void fn_1_86B4(omObjData *object, M430DllBss60Struct *arg1)
var_r29 = (0x14 - var_r23) * 0x16;
var_r27 = &arg1->unk_30[0x1B8 - var_r29];
while (var_r29-- != 0) {
PSVECAdd(var_r28, var_r27, var_r26);
VECAdd(var_r28, var_r27, var_r26);
var_r28++;
var_r27++;
var_r26++;
@ -1113,7 +1116,7 @@ void fn_1_86B4(omObjData *object, M430DllBss60Struct *arg1)
var_r29 = var_r23 * 0x16;
var_r27 = arg1->unk_30;
while (var_r29-- != 0) {
PSVECAdd(var_r28, var_r27, var_r26);
VECAdd(var_r28, var_r27, var_r26);
var_r28++;
var_r27++;
var_r26++;
@ -1186,7 +1189,7 @@ void fn_1_8CE0(ModelData *model, Mtx matrix)
}
var_r31->unk_10 = 1;
fn_1_963C(model, matrix, var_r31->unk_00);
PSMTXCopy(matrix, sp134);
MTXCopy(matrix, sp134);
if (fn_1_4030() != 0) {
var_f30 = 1.0f;
var_f31 = fn_1_BB54(var_r31->unk_00);
@ -1195,12 +1198,12 @@ void fn_1_8CE0(ModelData *model, Mtx matrix)
var_f30 = 1.5f;
var_f31 = 0.0f;
}
PSMTXTrans(sp164, var_f31 - fn_1_BB54(var_r31->unk_00), 0.0f, 0.0f);
PSMTXConcat(sp134, sp164, sp134);
PSMTXScale(sp194, var_f30, 1.0f, 1.0f);
PSMTXConcat(sp134, sp194, sp134);
MTXTrans(sp164, var_f31 - fn_1_BB54(var_r31->unk_00), 0.0f, 0.0f);
MTXConcat(sp134, sp164, sp134);
MTXScale(sp194, var_f30, 1.0f, 1.0f);
MTXConcat(sp134, sp194, sp134);
GXLoadPosMtxImm(sp134, 0);
PSMTXInvXpose(sp134, sp194);
MTXInvXpose(sp134, sp194);
GXLoadNrmMtxImm(sp194, 0);
GXSetNumChans(1);
GXSetChanCtrl(GX_COLOR0A0, 0, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE);
@ -1221,25 +1224,25 @@ void fn_1_8CE0(ModelData *model, Mtx matrix)
else {
C_MTXLightPerspective(sp104, 41.5f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f);
}
PSMTXInverse(Hu3DCameraMtx, spD4);
PSMTXConcat(spD4, sp134, spD4);
PSMTXConcat(sp104, Hu3DCameraMtx, spA4);
PSMTXConcat(spA4, spD4, spD4);
MTXInverse(Hu3DCameraMtx, spD4);
MTXConcat(spD4, sp134, spD4);
MTXConcat(sp104, Hu3DCameraMtx, spA4);
MTXConcat(spA4, spD4, spD4);
GXLoadTexMtxImm(spD4, 0x1E, GX_MTX3x4);
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, 0x1E, GX_FALSE, 0x7D);
C_MTXLightPerspective(sp104, 70.0f, 0.5f, 0.5f, -0.5f, 0.5f, 0.5f);
PSMTXInverse(Hu3DCameraMtx, sp74);
PSMTXConcat(sp74, sp134, sp74);
PSMTXConcat(sp104, Hu3DCameraMtx, sp44);
PSMTXConcat(sp44, sp74, sp74);
MTXInverse(Hu3DCameraMtx, sp74);
MTXConcat(sp74, sp134, sp74);
MTXConcat(sp104, Hu3DCameraMtx, sp44);
MTXConcat(sp44, sp74, sp74);
GXLoadTexMtxImm(sp74, 0x24, GX_MTX3x4);
GXSetTexCoordGen2(GX_TEXCOORD2, GX_TG_MTX3x4, GX_TG_POS, 0x24, GX_FALSE, 0x7D);
PSMTXRotRad(sp164, 0x58, 1.5707964f);
MTXRotRad(sp164, 0x58, 1.5707964f);
var_f31 = 0.00075f * var_f30;
PSMTXScale(sp194, var_f31, -0.003f, 0.00075f);
PSMTXConcat(sp164, sp194, sp164);
PSMTXTrans(sp194, (var_r31->unk_1C & 0x3FF) / (1024.0f * var_f31), 0.0f, (0.7f * var_r31->unk_28) - (0.3f * var_r31->unk_24));
PSMTXConcat(sp164, sp194, sp164);
MTXScale(sp194, var_f31, -0.003f, 0.00075f);
MTXConcat(sp164, sp194, sp164);
MTXTrans(sp194, (var_r31->unk_1C & 0x3FF) / (1024.0f * var_f31), 0.0f, (0.7f * var_r31->unk_28) - (0.3f * var_r31->unk_24));
MTXConcat(sp164, sp194, sp164);
sp164[0][1] = -0.001f;
GXLoadTexMtxImm(sp164, 0x21, GX_MTX2x4);
GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_POS, 0x21, GX_FALSE, 0x7D);
@ -1247,12 +1250,12 @@ void fn_1_8CE0(ModelData *model, Mtx matrix)
GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD1, GX_TEXMAP1);
GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1);
GXSetTevIndWarp(0, 0, GX_TRUE, GX_FALSE, 1);
PSMTXScale(sp164, -0.25f, -0.5f, 0.5f);
MTXScale(sp164, -0.25f, -0.5f, 0.5f);
GXSetIndTexMtx(GX_ITM_0, (float(*)[3])sp164, -4);
GXSetIndTexOrder(GX_INDTEXSTAGE1, GX_TEXCOORD1, GX_TEXMAP1);
GXSetIndTexCoordScale(GX_INDTEXSTAGE1, GX_ITS_1, GX_ITS_1);
GXSetTevIndWarp(1, 1, GX_TRUE, GX_FALSE, 2);
PSMTXScale(sp164, 0.4f, 0.5f, 0.5f);
MTXScale(sp164, 0.4f, 0.5f, 0.5f);
GXSetIndTexMtx(GX_ITM_1, (float(*)[3])sp164, -1);
GXSetNumTevStages(2);
GXSetTevColor(GX_TEVREG0, sp14);
@ -1320,10 +1323,10 @@ void fn_1_963C(ModelData *model, Mtx matrix, u32 var_r31)
var_f30 = 1.5f;
var_f31 = 0.0f;
}
PSMTXTrans(spD0, var_f31, 0.0f, ((lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24) - 2500.0f) - 2000.0f);
PSMTXScale(sp100, var_f30, 1.0f, 1.0f);
PSMTXConcat(spD0, sp100, spD0);
PSMTXConcat(Hu3DCameraMtx, spD0, spA0);
MTXTrans(spD0, var_f31, 0.0f, ((lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24) - 2500.0f) - 2000.0f);
MTXScale(sp100, var_f30, 1.0f, 1.0f);
MTXConcat(spD0, sp100, spD0);
MTXConcat(Hu3DCameraMtx, spD0, spA0);
GXLoadPosMtxImm(spA0, 0);
GXSetNumChans(1);
GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE);
@ -1331,26 +1334,26 @@ void fn_1_963C(ModelData *model, Mtx matrix, u32 var_r31)
HuSprTexLoad(lbl_1_bss_148, 0, 1, GX_CLAMP, GX_CLAMP, GX_LINEAR);
GXSetNumTexGens(2);
C_MTXLightPerspective(sp70, 70.0f, 0.5f, 0.5f, -0.5f, 0.5f, 0.5f);
PSMTXInverse(Hu3DCameraMtx, sp40);
PSMTXConcat(sp40, spA0, sp40);
PSMTXConcat(sp70, Hu3DCameraMtx, sp10);
PSMTXConcat(sp10, sp40, sp40);
MTXInverse(Hu3DCameraMtx, sp40);
MTXConcat(sp40, spA0, sp40);
MTXConcat(sp70, Hu3DCameraMtx, sp10);
MTXConcat(sp10, sp40, sp40);
GXLoadTexMtxImm(sp40, 0x21, GX_MTX3x4);
GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX3x4, GX_TG_POS, 0x21, GX_FALSE, 0x7D);
PSMTXRotRad(spD0, 0x58, 1.5707964f);
MTXRotRad(spD0, 0x58, 1.5707964f);
var_f31 = 0.00075f * var_f30;
PSMTXScale(sp100, var_f31, -0.003f, 0.00075f);
PSMTXConcat(spD0, sp100, spD0);
PSMTXTrans(sp100, (lbl_1_bss_60[var_r31].unk_1C & 0x3FF) / (1024.0f * var_f31), 0.0f,
MTXScale(sp100, var_f31, -0.003f, 0.00075f);
MTXConcat(spD0, sp100, spD0);
MTXTrans(sp100, (lbl_1_bss_60[var_r31].unk_1C & 0x3FF) / (1024.0f * var_f31), 0.0f,
0.3f * (lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24));
PSMTXConcat(spD0, sp100, spD0);
MTXConcat(spD0, sp100, spD0);
GXLoadTexMtxImm(spD0, 0x1E, GX_MTX2x4);
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_POS, 0x1E, GX_FALSE, 0x7D);
GXSetNumIndStages(1);
GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD0, GX_TEXMAP0);
GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1);
GXSetTevIndWarp(0, 0, GX_TRUE, GX_FALSE, 1);
PSMTXScale(spD0, 0.5f, 0.6f, 0.6f);
MTXScale(spD0, 0.5f, 0.6f, 0.6f);
GXSetIndTexMtx(GX_ITM_0, (float(*)[3])spD0, -1);
GXSetNumTevStages(1);
GXSetTevColor(GX_TEVREG0, spC);
@ -1432,18 +1435,18 @@ void fn_1_9C90(ModelData *model, Mtx matrix)
sp28.x = sp1C.x;
sp28.y = 0.0f;
sp28.z = sp1C.z - 450000.0f;
PSVECSubtract(&sp28, &sp1C, &sp10);
PSVECNormalize(&sp10, &sp10);
PSVECScale(&sp10, &sp10, 8000.0f);
PSVECAdd(&sp1C, &sp10, &sp28);
PSMTXTrans(spF4, sp28.x, sp28.y, sp28.z);
VECSubtract(&sp28, &sp1C, &sp10);
VECNormalize(&sp10, &sp10);
VECScale(&sp10, &sp10, 8000.0f);
VECAdd(&sp1C, &sp10, &sp28);
MTXTrans(spF4, sp28.x, sp28.y, sp28.z);
var_f31 = 1.0f;
if (fn_1_4030() == 0) {
var_f31 = 1.5f;
PSMTXScale(sp124, var_f31, 1.0f, 1.0f);
PSMTXConcat(spF4, sp124, spF4);
MTXScale(sp124, var_f31, 1.0f, 1.0f);
MTXConcat(spF4, sp124, spF4);
}
PSMTXConcat(Hu3DCameraMtx, spF4, spC4);
MTXConcat(Hu3DCameraMtx, spF4, spC4);
GXLoadPosMtxImm(spC4, 0);
GXSetNumChans(1);
GXSetChanCtrl(GX_COLOR0A0, 0, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE);
@ -1451,24 +1454,24 @@ void fn_1_9C90(ModelData *model, Mtx matrix)
HuSprTexLoad(lbl_1_bss_148, 0, 1, GX_CLAMP, GX_CLAMP, GX_LINEAR);
GXSetNumTexGens(2);
C_MTXLightPerspective(sp94, 70.0f, 0.5f, 0.5f, -0.5f, 0.5f, 0.5f);
PSMTXInverse(Hu3DCameraMtx, sp64);
PSMTXConcat(sp64, spC4, sp64);
PSMTXConcat(sp94, Hu3DCameraMtx, sp34);
PSMTXConcat(sp34, sp64, sp64);
MTXInverse(Hu3DCameraMtx, sp64);
MTXConcat(sp64, spC4, sp64);
MTXConcat(sp94, Hu3DCameraMtx, sp34);
MTXConcat(sp34, sp64, sp64);
GXLoadTexMtxImm(sp64, 0x21, GX_MTX3x4);
GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX3x4, GX_TG_POS, 0x21, GX_FALSE, 0x7D);
var_f30 = 0.00075f * var_f31;
PSMTXScale(spF4, var_f30, -0.005f, 0.00075f);
PSMTXTrans(sp124, (lbl_1_bss_60[var_r31].unk_1C & 0x3FF) / (1024.0f * var_f30),
MTXScale(spF4, var_f30, -0.005f, 0.00075f);
MTXTrans(sp124, (lbl_1_bss_60[var_r31].unk_1C & 0x3FF) / (1024.0f * var_f30),
0.03f * -(lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24), 0.0f);
PSMTXConcat(spF4, sp124, spF4);
MTXConcat(spF4, sp124, spF4);
GXLoadTexMtxImm(spF4, 0x1E, GX_MTX2x4);
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_POS, 0x1E, GX_FALSE, 0x7D);
GXSetNumIndStages(1);
GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD0, GX_TEXMAP0);
GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1);
GXSetTevIndWarp(0, 0, GX_TRUE, GX_FALSE, 1);
PSMTXScale(spF4, 0.5f, 0.6f, 0.6f);
MTXScale(spF4, 0.5f, 0.6f, 0.6f);
GXSetIndTexMtx(GX_ITM_0, (float(*)[3])spF4, -1);
GXSetNumTevStages(1);
GXSetTevColor(GX_TEVREG0, spC);
@ -1522,37 +1525,37 @@ void fn_1_A3A8(ModelData *model, Mtx matrix)
var_f31 = 0.0f;
}
if (lbl_1_bss_5C != 0) {
PSMTXTrans(sp18, var_f31, 0.0f, 300.0f + (lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24));
MTXTrans(sp18, var_f31, 0.0f, 300.0f + (lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24));
GXSetTevColor(GX_TEVREG0, sp10);
}
else {
PSMTXTrans(sp18, var_f31, -150.0f, lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24);
MTXTrans(sp18, var_f31, -150.0f, lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24);
GXSetTevColor(GX_TEVREG0, sp14);
}
PSMTXScale(sp48, var_f30, 1.0f, 1.0f);
PSMTXConcat(sp18, sp48, sp18);
PSMTXConcat(Hu3DCameraMtx, sp18, sp18);
MTXScale(sp48, var_f30, 1.0f, 1.0f);
MTXConcat(sp18, sp48, sp18);
MTXConcat(Hu3DCameraMtx, sp18, sp18);
GXLoadPosMtxImm(sp18, 0);
GXSetNumChans(1);
GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE);
HuSprTexLoad(lbl_1_bss_144, 0, 0, GX_REPEAT, GX_REPEAT, GX_LINEAR);
HuSprTexLoad(lbl_1_bss_140, 0, 1, GX_REPEAT, GX_REPEAT, GX_LINEAR);
GXSetNumTexGens(2);
PSMTXRotRad(sp18, 0x58, 1.5707964f);
MTXRotRad(sp18, 0x58, 1.5707964f);
var_f31 = 0.004f * var_f30;
PSMTXScale(sp48, var_f31, -0.004f, 0.004f);
PSMTXConcat(sp18, sp48, sp18);
PSMTXTrans(sp48, (lbl_1_bss_60[var_r31].unk_1C & 0x3FF) / (512.0f * var_f31), 0.0f,
MTXScale(sp48, var_f31, -0.004f, 0.004f);
MTXConcat(sp18, sp48, sp18);
MTXTrans(sp48, (lbl_1_bss_60[var_r31].unk_1C & 0x3FF) / (512.0f * var_f31), 0.0f,
(1.2499999f * (lbl_1_bss_60[var_r31].unk_1C % 400)) + (lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24));
PSMTXConcat(sp18, sp48, sp18);
MTXConcat(sp18, sp48, sp18);
GXLoadTexMtxImm(sp18, 0x1E, GX_MTX2x4);
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_POS, 0x1E, GX_FALSE, 0x7D);
PSMTXRotRad(sp18, 0x58, 1.5707964f);
MTXRotRad(sp18, 0x58, 1.5707964f);
var_f31 = 0.004f * var_f30;
PSMTXScale(sp48, var_f31, -0.004f, 0.004f);
PSMTXConcat(sp18, sp48, sp18);
PSMTXTrans(sp48, (lbl_1_bss_60[var_r31].unk_1C % 300) / (150.0f * var_f31), 0.0f, lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24);
PSMTXConcat(sp18, sp48, sp18);
MTXScale(sp48, var_f31, -0.004f, 0.004f);
MTXConcat(sp18, sp48, sp18);
MTXTrans(sp48, (lbl_1_bss_60[var_r31].unk_1C % 300) / (150.0f * var_f31), 0.0f, lbl_1_bss_60[var_r31].unk_28 + lbl_1_bss_60[var_r31].unk_24);
MTXConcat(sp18, sp48, sp18);
GXLoadTexMtxImm(sp18, 0x21, GX_MTX2x4);
GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_POS, 0x21, GX_FALSE, 0x7D);
GXSetNumTevStages(2);
@ -1635,8 +1638,8 @@ void fn_1_AD04(ModelData *model, ParticleData *particle, Mtx matrix)
}
for (var_r31 = particle->unk_48, var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) {
if (var_r31->unk00_s16 != 0) {
PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34);
PSVECScale(&var_r31->unk08, &var_r31->unk08, 0.97f);
VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34);
VECScale(&var_r31->unk08, &var_r31->unk08, 0.97f);
if (var_r31->unk00_s16 < 24.0f) {
var_r31->unk40.a = 0.9f * var_r31->unk40.a;
}
@ -1720,7 +1723,7 @@ void fn_1_B394(ModelData *model, ParticleData *var_r30, Mtx matrix)
for (var_r31 = var_r30->unk_48, var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) {
if (var_r31->unk00_s16 != 0) {
var_r31->unk00_s16--;
PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34);
VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34);
var_r31->unk2C += 0.5f;
if (var_r31->unk00_s16 < 30.0) {
var_r31->unk40.a = 0.98f * var_r31->unk40.a;
@ -1760,7 +1763,7 @@ void fn_1_B570(s32 arg0, Vec *arg1, float arg8, float arg9, Vec *arg2)
if (!(frandmod(0x3E8) > (1000.0f * arg9))) {
var_r27 = 2;
var_f28 = 40.0f;
PSVECScale(arg2, &sp1C, 0.2f);
VECScale(arg2, &sp1C, 0.2f);
sp1C.x = 0.0f;
for (var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) {
if (var_r31->unk00_s16 == 0) {
@ -1778,7 +1781,7 @@ void fn_1_B570(s32 arg0, Vec *arg1, float arg8, float arg9, Vec *arg2)
var_r31->unk08.x = sp28.x * var_f31;
var_r31->unk08.z = sp28.z * var_f31;
var_r31->unk08.y = 0.0f;
PSVECAdd(&var_r31->unk08, &sp1C, &var_r31->unk08);
VECAdd(&var_r31->unk08, &sp1C, &var_r31->unk08);
var_f31 = 0.001f * frandmod(0x3E8);
var_f31 += (1.0f - var_f31) * (0.3f * arg9);
var_r31->unk30 = frandmod(0x168);

View file

@ -1274,7 +1274,7 @@ void fn_1_4028(Work2110 *arg0)
temp_r31->unk18++;
temp_f31 = temp_r31->unk18 / (VERSION_NTSC ? 54.0f : 45.0f);
if (temp_f31 >= 1.0f) {
temp_r31->unk18 = VERSION_NTSC ? 54 : 45;
temp_r31->unk18 = VERSION_NTSC ? 54 : 45;
temp_f31 = 1.0f;
}
temp_f31 = cosd(temp_f31 * 90.0f);

View file

@ -395,12 +395,12 @@ void fn_1_227C(Vec *arg0, Vec *arg1)
{
Vec sp10;
PSVECSubtract(arg1, arg0, &sp10);
VECSubtract(arg1, arg0, &sp10);
Center = *arg1;
CRot.x = atan2d(sp10.y, sqrtf((sp10.x * sp10.x) + (sp10.z * sp10.z)));
CRot.y = atan2d(-sp10.x, -sp10.z);
CRot.z = 0.0f;
CZoom = PSVECMag(&sp10);
CZoom = VECMag(&sp10);
}
void fn_1_2484(float arg8, float arg9, float argA, float argB, float argC, float argD)

View file

@ -779,18 +779,18 @@ void fn_1_541C(Mtx arg0, float arg8, float arg9, float argA)
Mtx sp8;
if (argA != 0.0f) {
PSMTXRotRad(arg0, 0x5A, MTXDegToRad(argA));
MTXRotRad(arg0, 0x5A, MTXDegToRad(argA));
}
else {
PSMTXIdentity(arg0);
MTXIdentity(arg0);
}
if (arg8 != 0.0f) {
PSMTXRotRad(sp38, 0x58, MTXDegToRad(arg8));
PSMTXConcat(sp38, arg0, arg0);
MTXRotRad(sp38, 0x58, MTXDegToRad(arg8));
MTXConcat(sp38, arg0, arg0);
}
if (arg9 != 0.0f) {
PSMTXRotRad(sp8, 0x59, MTXDegToRad(arg9));
PSMTXConcat(sp8, arg0, arg0);
MTXRotRad(sp8, 0x59, MTXDegToRad(arg9));
MTXConcat(sp8, arg0, arg0);
}
}

View file

@ -629,7 +629,7 @@ void fn_1_60C0(omObjData *object)
if (work->unk_04 >= 0) {
HuAudFXPlay(lbl_1_data_150[work->unk_04][0]);
}
PSVECSubtract(&var_r28->unk_128, &work->unk_128, &spC);
VECSubtract(&var_r28->unk_128, &work->unk_128, &spC);
work->unk_A8 = atan2d(spC.x, spC.z);
work->unk_AC = 0.15f;
work->unk_B0 = 0.0f;
@ -686,7 +686,7 @@ void fn_1_60C0(omObjData *object)
}
break;
}
PSVECAdd(&work->unk_128, &work->unk_134, &work->unk_128);
VECAdd(&work->unk_128, &work->unk_134, &work->unk_128);
if (fn_1_10ECC(work->unk_14) >= 2) {
fn_1_B194(object);
}
@ -716,7 +716,7 @@ void fn_1_682C(omObjData *object)
Vec sp40[2] = { { 130.0f, 0.0f, -50.0f }, { 250.0f, 0.0f, 50.0f } };
Vec sp28[2] = { { 150.0f, 0.0f, 100.0f }, { 300.0f, 0.0f, -100.0f } };
var_r27 = work->unk_14C->data;
PSVECAdd(&work->unk_128, &work->unk_134, &work->unk_128);
VECAdd(&work->unk_128, &work->unk_134, &work->unk_128);
fn_1_B194(object);
fn_1_722C(object);
switch (work->unk_74) {
@ -782,15 +782,15 @@ void fn_1_682C(omObjData *object)
break;
case 1:
if (work->unk_84 == 1) {
PSVECSubtract(&work->unk_140, &work->unk_128, &sp10);
VECSubtract(&work->unk_140, &work->unk_128, &sp10);
sp10.y = 0.0f;
var_f31 = PSVECMag(&sp10);
var_f31 = VECMag(&sp10);
if (var_f31 < 20.0f) {
var_f31 = 0.01f;
work->unk_84++;
}
else {
if (PSVECMag(&sp10) >= 100.0f) {
if (VECMag(&sp10) >= 100.0f) {
var_f31 = 100.0f;
}
var_f31 = 0.2f + (0.008f * var_f31);
@ -826,14 +826,14 @@ void fn_1_682C(omObjData *object)
}
break;
case 2:
PSVECSubtract(&work->unk_140, &work->unk_128, &sp10);
VECSubtract(&work->unk_140, &work->unk_128, &sp10);
sp10.y = 0.0f;
var_f31 = PSVECMag(&sp10);
var_f31 = VECMag(&sp10);
if (var_f31 < 10.0f) {
var_f31 = 0.01f;
}
else {
if (PSVECMag(&sp10) >= 100.0f) {
if (VECMag(&sp10) >= 100.0f) {
var_f31 = 100.0f;
}
var_f31 = 0.2f + (0.008f * var_f31);
@ -875,7 +875,7 @@ void fn_1_682C(omObjData *object)
sp1C.x = Center.x + (CZoom * (sind(CRot.y) * cosd(CRot.x)));
sp1C.y = Center.y + (CZoom * -sind(CRot.x));
sp1C.z = Center.z + (CZoom * (cosd(CRot.y) * cosd(CRot.x)));
PSVECSubtract(&sp1C, &work->unk_128, &sp10);
VECSubtract(&sp1C, &work->unk_128, &sp10);
work->unk_A8 = atan2d(sp10.x, sp10.z);
}
if (fn_1_B6E0(object) != 0) {
@ -1060,10 +1060,10 @@ void fn_1_74D4(omObjData *object)
}
}
if ((work->unk_14 == fn_1_107B0(&sp1C)) && (fn_1_10900() >= (60.0f * (0.8f - (0.4f * work->unk_C0)))) && (work->unk_6C != 0)) {
PSVECSubtract(&sp1C, &work->unk_128, &sp10);
VECSubtract(&sp1C, &work->unk_128, &sp10);
sp10.y = 0.0f;
var_f31 = PSVECMag(&sp10);
if (PSVECMag(&sp10) >= 20.0f) {
var_f31 = VECMag(&sp10);
if (VECMag(&sp10) >= 20.0f) {
if (var_f31 >= 50.0f) {
var_f31 = 50.0f;
}
@ -1076,9 +1076,9 @@ void fn_1_74D4(omObjData *object)
var_r29 = 0;
}
if (work->unk_F8 != 0) {
PSVECSubtract(&work->unk_108, &work->unk_128, &sp10);
VECSubtract(&work->unk_108, &work->unk_128, &sp10);
sp10.y = 0.0f;
var_f31 = PSVECMag(&sp10);
var_f31 = VECMag(&sp10);
if (var_f31 >= 10.0f) {
if (var_f31 >= 50.0f) {
var_f31 = 50.0f;
@ -1096,9 +1096,9 @@ void fn_1_74D4(omObjData *object)
var_r29 = 0;
}
if (var_r29 != 0) {
PSVECSubtract(&work->unk_FC, &work->unk_128, &sp10);
VECSubtract(&work->unk_FC, &work->unk_128, &sp10);
sp10.y = 0.0f;
var_f31 = PSVECMag(&sp10);
var_f31 = VECMag(&sp10);
var_f31 -= 100.0f * (1.25f * (2.0f - work->unk_C0));
if (var_f31 >= 10.0f) {
if (var_f31 >= 70.0f) {
@ -1121,9 +1121,9 @@ void fn_1_74D4(omObjData *object)
if (work->unk_14 == fn_1_10740(&sp1C)) {
if (work->unk_68 == 0) {
if (fn_1_11004(work->unk_14, work->unk_18) != 0) {
PSVECSubtract(&sp1C, &work->unk_128, &sp10);
VECSubtract(&sp1C, &work->unk_128, &sp10);
sp10.y = 0.0f;
var_f31 = PSVECMag(&sp10);
var_f31 = VECMag(&sp10);
if (var_f31 >= 30.000002f) {
if (var_f31 >= 70.0f) {
var_f31 = 70.0f;
@ -1159,9 +1159,9 @@ void fn_1_74D4(omObjData *object)
else {
if (fn_1_10614(&sp1C) != 0) {
if (work->unk_E8 != 0) {
PSVECSubtract(&work->unk_114, &sp1C, &sp10);
VECSubtract(&work->unk_114, &sp1C, &sp10);
sp10.y = 0.0f;
var_f31 = PSVECMag(&sp10);
var_f31 = VECMag(&sp10);
if (var_f31 < 0.05f) {
work->unk_DC = 0.0f;
work->unk_E0 = 0.0f;
@ -1219,12 +1219,12 @@ void fn_1_8408(omObjData *object)
if ((work->unk_14 == fn_1_107B0(&sp14)) && (fn_1_108C4() >= 12.0f)) {
if (((var_r30->unk_6C == 0) && (work->unk_6C == 0)) || (fn_1_108C4() < 0x3E8)) {
if ((work->unk_30 == 0) || (var_r30->unk_30 == 0)) {
PSVECSubtract(&sp14, &work->unk_128, &sp8);
VECSubtract(&sp14, &work->unk_128, &sp8);
sp8.y = 0.0f;
var_f31 = PSVECMag(&sp8) - (100.0f * (2.0f * work->unk_C0));
PSVECSubtract(&sp14, &var_r30->unk_128, &sp8);
var_f31 = VECMag(&sp8) - (100.0f * (2.0f * work->unk_C0));
VECSubtract(&sp14, &var_r30->unk_128, &sp8);
sp8.y = 0.0f;
var_f30 = PSVECMag(&sp8) - (100.0f * (2.0f * var_r30->unk_C0));
var_f30 = VECMag(&sp8) - (100.0f * (2.0f * var_r30->unk_C0));
if ((work->unk_30 != 0) || (work->unk_60 != 0)) {
var_f31 = 2000.0f;
}
@ -1333,10 +1333,10 @@ s32 fn_1_8938(u32 var_r27, Vec *var_r29)
for (var_r30 = 0; var_r30 <= 0xA; var_r30++) {
sp14.x = 230.0f;
for (var_r31 = 0; var_r31 <= 0xA; var_r31++) {
PSVECSubtract(&sp14, &sp2C[0], &sp20);
var_f31 = PSVECMag(&sp20);
PSVECSubtract(&sp14, &sp2C[1], &sp20);
var_f31 *= PSVECMag(&sp20);
VECSubtract(&sp14, &sp2C[0], &sp20);
var_f31 = VECMag(&sp20);
VECSubtract(&sp14, &sp2C[1], &sp20);
var_f31 *= VECMag(&sp20);
if (var_f31 > var_f30) {
var_f30 = var_f31;
sp8 = sp14;
@ -1415,7 +1415,7 @@ void fn_1_8BD0(omObjData *object)
}
if ((var_r29 != 0) && (work->unk_24 == 0.0f)) {
fn_1_10B20(0.0f, &sp14);
PSVECSubtract(&sp14, &work->unk_128, &sp8);
VECSubtract(&sp14, &work->unk_128, &sp8);
work->unk_A8 = atan2d(sp8.x, sp8.z);
work->unk_AC = 0.1f;
work->unk_B0 = 0.0f;
@ -1569,9 +1569,9 @@ void fn_1_9688(omObjData *object)
work->unk_140 = sp2C;
var_f31 = fn_1_10848();
if ((var_f31 <= 0.8f) && (var_f31 >= 0.02f) && (var_r29->unk_64 == 0)) {
PSVECSubtract(&sp2C, &work->unk_128, &sp20);
VECSubtract(&sp2C, &work->unk_128, &sp20);
sp20.y = 0.0f;
var_f30 = PSVECMag(&sp20);
var_f30 = VECMag(&sp20);
work->unk_98 = var_f30;
if (var_f30 <= 200.0f) {
if ((var_f31 >= 0.2f) && (var_f30 <= 70.0f) && (var_f31 >= (0.2f + (0.001f * var_f30))) && (fn_1_10FDC() >= 1)) {
@ -1626,7 +1626,7 @@ void fn_1_9688(omObjData *object)
}
work->unk_90 = 60.0f * var_f31;
}
PSVECSubtract(&sp2C, &work->unk_128, &sp20);
VECSubtract(&sp2C, &work->unk_128, &sp20);
work->unk_A8 = atan2d(sp20.x, sp20.z);
work->unk_AC = 0.2f;
work->unk_B0 = 0.0f;
@ -1664,7 +1664,7 @@ void fn_1_9688(omObjData *object)
}
work->unk_64 = 0;
fn_1_B4D4(object, 9);
PSVECSubtract(&sp2C, &work->unk_128, &sp20);
VECSubtract(&sp2C, &work->unk_128, &sp20);
work->unk_A8 = atan2d(sp20.x, sp20.z);
work->unk_AC = 0.1f;
work->unk_90 = 0x186A0;
@ -1727,7 +1727,7 @@ void fn_1_9688(omObjData *object)
}
work->unk_64 = 0;
fn_1_B4D4(object, 6);
PSVECSubtract(&sp2C, &work->unk_128, &sp20);
VECSubtract(&sp2C, &work->unk_128, &sp20);
work->unk_A8 = atan2d(sp20.x, sp20.z);
work->unk_AC = 0.1f;
work->unk_90 = 0x186A0;
@ -1756,7 +1756,7 @@ void fn_1_9688(omObjData *object)
if (work->unk_64 != 0) {
sp2C = work->unk_128;
sp2C.y = 11.0f;
PSVECSubtract(&var_r29->unk_128, &work->unk_128, &sp20);
VECSubtract(&var_r29->unk_128, &work->unk_128, &sp20);
var_f29 = 180.0 + (atan2d(sp20.x, sp20.z));
var_f29 += frandmod(0xB4) - 90.0f;
var_f30 = 200.0f * work->unk_98;
@ -1817,14 +1817,14 @@ void fn_1_A618(omObjData *object)
case 0:
if ((work->unk_7C == 0) && (work->unk_78 == 0) && (work->unk_80 == 0) && (work->unk_30 = 0, work->unk_68 = 0, ((work->unk_34 == 0) != 0))
&& (fn_1_11004(work->unk_14, work->unk_18) != 0) && (fn_1_10FDC() < 3) && (work->unk_14 == fn_1_10740(&sp20))) {
PSVECSubtract(&sp20, &work->unk_128, &sp14);
VECSubtract(&sp20, &work->unk_128, &sp14);
sp14.y = 0.0f;
if (!(PSVECMag(&sp14) > 500.0f)) {
if (!(VECMag(&sp14) > 500.0f)) {
fn_1_10B20(0.5f, &sp20);
sp20.y -= lbl_1_data_E0[work->unk_00];
PSVECSubtract(&sp20, &work->unk_128, &sp14);
VECSubtract(&sp20, &work->unk_128, &sp14);
sp14.y = 0.0f;
if ((PSVECMag(&sp14) < 200.0f) && (sp20.y >= 50.0f)) {
if ((VECMag(&sp14) < 200.0f) && (sp20.y >= 50.0f)) {
work->unk_5C = 1;
}
if (((work->unk_1C & 0x200) != 0) && (work->unk_5C != 0)) {
@ -1837,7 +1837,7 @@ void fn_1_A618(omObjData *object)
var_f30 = 0.5f;
work->unk_124 = (2.0f * -sp20.y) / (var_f30 * var_f30);
work->unk_134.y = 0.016666668f * (-work->unk_124 * var_f30);
PSVECSubtract(&sp20, &work->unk_128, &sp14);
VECSubtract(&sp20, &work->unk_128, &sp14);
sp14.y = 0.0f;
work->unk_134.x = 0.016666668f * (sp14.x / 0.5f);
work->unk_134.z = 0.016666668f * (sp14.z / 0.5f);
@ -1967,8 +1967,8 @@ void fn_1_AB88(omObjData *object)
fn_1_10B20(0.0f, &sp1C);
if ((sp1C.x * work->unk_128.x) > 0.0f) {
sp1C.y = work->unk_128.y;
PSVECSubtract(&sp1C, &work->unk_128, &sp10);
if (PSVECMag(&sp10) < 60.000004f) {
VECSubtract(&sp1C, &work->unk_128, &sp10);
if (VECMag(&sp10) < 60.000004f) {
if (frandmod(0x64) < 0x1E) {
fn_1_10740(&sp1C);
sp1C.x *= -0.5f;
@ -2016,9 +2016,9 @@ void fn_1_B194(omObjData *object)
for (var_r28 = 0; var_r28 < 4; var_r28++) {
if (var_r29 != var_r28) {
var_r30 = lbl_1_bss_7D0[var_r28]->data;
PSVECSubtract(&var_r31->unk_128, &var_r30->unk_128, &sp8);
VECSubtract(&var_r31->unk_128, &var_r30->unk_128, &sp8);
sp8.y = 0.0f;
var_f31 = PSVECMag(&sp8);
var_f31 = VECMag(&sp8);
if (var_f31 < (var_r31->unk_120 + var_r30->unk_120)) {
if (var_f31 > 0.0f) {
var_f31 = 0.5f * ((var_r31->unk_120 + var_r30->unk_120) - var_f31);
@ -2028,10 +2028,10 @@ void fn_1_B194(omObjData *object)
sp8.x = frandmod(0x3E8) - 0x1F4;
sp8.z = frandmod(0x3E8) - 0x1F4;
}
PSVECNormalize(&sp8, &sp8);
PSVECScale(&sp8, &sp8, var_f31);
PSVECAdd(&var_r31->unk_128, &sp8, &var_r31->unk_128);
PSVECSubtract(&var_r30->unk_128, &sp8, &var_r30->unk_128);
VECNormalize(&sp8, &sp8);
VECScale(&sp8, &sp8, var_f31);
VECAdd(&var_r31->unk_128, &sp8, &var_r31->unk_128);
VECSubtract(&var_r30->unk_128, &sp8, &var_r30->unk_128);
}
}
}
@ -2199,7 +2199,7 @@ void fn_1_BD48(omObjData *object)
work->unk_B8 = 0.0f;
work->unk_BC.x = work->unk_BC.y = 0.0f;
work->unk_BC.z = 1.0f;
PSMTXIdentity(work->unk_C8);
MTXIdentity(work->unk_C8);
work->unk_18 = 0;
object->func = fn_1_C240;
}
@ -2219,7 +2219,7 @@ void fn_1_C240(omObjData *object)
work->unk_B8 = 0.0f;
work->unk_BC.x = work->unk_BC.y = 0.0f;
work->unk_BC.z = 1.0f;
PSMTXIdentity(work->unk_C8);
MTXIdentity(work->unk_C8);
work->unk_00 = 1;
break;
case 10:
@ -2296,14 +2296,14 @@ s32 fn_1_C6B0(omObjData *object)
fn_1_D338(&work->unk_F8);
fn_1_D180(&work->unk_F8);
work->unk_B8 = work->unk_A8 * (8.0f * lbl_1_data_48C[work->unk_6C]);
PSVECSubtract(&work->unk_3C, &work->unk_30, &sp8);
VECSubtract(&work->unk_3C, &work->unk_30, &sp8);
sp8.y = 0.0f;
if (PSVECMag(&sp8) <= 0.0f) {
if (VECMag(&sp8) <= 0.0f) {
work->unk_BC.x = work->unk_BC.y = 0.0f;
work->unk_BC.z = 1.0f;
}
else {
PSVECNormalize(&sp8, &sp8);
VECNormalize(&sp8, &sp8);
work->unk_BC.x = -sp8.z;
work->unk_BC.y = 0.0f;
work->unk_BC.z = sp8.x;
@ -2324,9 +2324,9 @@ s32 fn_1_C6B0(omObjData *object)
}
work->unk_10 = 1;
if (work->unk_B8 != 0.0f) {
PSMTXRotAxisRad(sp14, &work->unk_BC, 0.017453292f * work->unk_B8);
PSMTXConcat(sp14, work->unk_C8, work->unk_C8);
PSMTXCopy(work->unk_C8, Hu3DData[object->model[0]].unk_F0);
MTXRotAxisRad(sp14, &work->unk_BC, 0.017453292f * work->unk_B8);
MTXConcat(sp14, work->unk_C8, work->unk_C8);
MTXCopy(work->unk_C8, Hu3DData[object->model[0]].unk_F0);
}
work->unk_48 += 0.016666668f;
work->unk_08 = fn_1_D4E0(&work->unk_F8, &work->unk_30, &work->unk_4C, work->unk_48);
@ -2389,15 +2389,15 @@ void fn_1_CB98(omObjData *object)
var_f31 = 0.0f;
}
var_f31 = (var_f30 - var_f31) / 21.0f;
PSMTXCopy(work->unk_C8, sp20);
MTXCopy(work->unk_C8, sp20);
var_f28 = (work->unk_B8 * (1.2f * work->unk_A8)) / 21.0f;
PSMTXRotAxisRad(sp50, &work->unk_BC, MTXDegToRad(-var_f28));
MTXRotAxisRad(sp50, &work->unk_BC, MTXDegToRad(-var_f28));
for (var_r29 = 0; var_r29 < 0x15; var_r29++) {
Hu3DModelAttrReset(object->model[var_r29 + 9], HU3D_ATTR_DISPOFF);
fn_1_D4E0(&work->unk_F8, &sp14, &sp8, var_f30);
Hu3DModelPosSetV(object->model[var_r29 + 9], &sp14);
PSMTXCopy(sp20, Hu3DData[object->model[var_r29 + 9]].unk_F0);
PSMTXConcat(sp50, sp20, sp20);
MTXCopy(sp20, Hu3DData[object->model[var_r29 + 9]].unk_F0);
MTXConcat(sp50, sp20, sp20);
var_f30 -= var_f31;
}
work->unk_F8.unk_04 = var_f29;
@ -2430,19 +2430,19 @@ void fn_1_CDB8(M433PlayerWork2Sub *arg0, Vec *arg1, Vec *arg2, u32 arg3, float a
spC.x = arg1->x + (arg0->unk_08 * (arg2->x - arg1->x));
spC.y = arg0->unk_0C;
spC.z = arg1->z + (arg0->unk_08 * (arg2->z - arg1->z));
PSVECSubtract(arg2, &spC, &sp18);
var_f30 = PSVECMag(&sp18);
PSVECSubtract(&spC, arg1, &sp18);
var_f30 += PSVECMag(&sp18);
VECSubtract(arg2, &spC, &sp18);
var_f30 = VECMag(&sp18);
VECSubtract(&spC, arg1, &sp18);
var_f30 += VECMag(&sp18);
}
else {
PSVECSubtract(arg2, arg1, &sp18);
var_f30 = PSVECMag(&sp18);
VECSubtract(arg2, arg1, &sp18);
var_f30 = VECMag(&sp18);
}
}
else {
PSVECSubtract(arg2, arg1, &sp18);
var_f30 = PSVECMag(&sp18);
VECSubtract(arg2, arg1, &sp18);
var_f30 = VECMag(&sp18);
}
var_f31 = var_f30 / (arg8 * lbl_1_data_4D4[arg3].z);
arg0->unk_00 = var_f31;
@ -2452,9 +2452,9 @@ void fn_1_CDB8(M433PlayerWork2Sub *arg0, Vec *arg1, Vec *arg2, u32 arg3, float a
arg0->unk_38 = *arg2;
arg0->unk_1C = arg2->y - arg1->y;
arg0->unk_24 = -980.0f;
PSVECSubtract(arg2, arg1, &sp18);
VECSubtract(arg2, arg1, &sp18);
sp18.y = 0.0f;
arg0->unk_10 = PSVECMag(&sp18);
arg0->unk_10 = VECMag(&sp18);
arg0->unk_18 = 0.0f;
if (var_f31 > 0.0f) {
arg0->unk_20 = (arg0->unk_1C - (0.5f * (-980.0f * (var_f31 * var_f31)))) / var_f31;
@ -2555,9 +2555,9 @@ s32 fn_1_D4E0(M433PlayerWork2Sub *arg0, Vec *arg1, Vec *arg2, float arg8)
}
arg0->unk_04 = arg8;
if (arg0->unk_10 > 0.0f) {
PSVECSubtract(&arg0->unk_38, &arg0->unk_2C, &spC);
VECSubtract(&arg0->unk_38, &arg0->unk_2C, &spC);
spC.y = 0.0f;
PSVECNormalize(&spC, &spC);
VECNormalize(&spC, &spC);
}
else {
spC.x = spC.y = spC.z = 0.0f;
@ -2568,7 +2568,7 @@ s32 fn_1_D4E0(M433PlayerWork2Sub *arg0, Vec *arg1, Vec *arg2, float arg8)
arg1->x = arg0->unk_2C.x + (spC.x * var_f30);
arg1->y = arg0->unk_2C.y + var_f29;
arg1->z = arg0->unk_2C.z + (spC.z * var_f30);
PSVECSubtract(arg1, &sp18, arg2);
VECSubtract(arg1, &sp18, arg2);
if (arg8 >= arg0->unk_00) {
return 1;
}
@ -2582,7 +2582,7 @@ void fn_1_D6A8(ModelData *model, ParticleData *particle, Mtx matrix)
for (var_r31 = particle->unk_48, var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) {
if (var_r31->unk00_s16 != 0) {
PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34);
VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34);
var_r31->unk08.x *= 0.92f;
var_r31->unk08.z *= 0.92f;
var_r31->unk08.y += -0.27222225f;
@ -3421,9 +3421,9 @@ float fn_1_10B20(float arg8, Vec *arg0)
}
var_r31->unk_04 = var_f31;
if (var_r31->unk_10 > 0.0f) {
PSVECSubtract(&var_r31->unk_38, &var_r31->unk_2C, &sp14);
VECSubtract(&var_r31->unk_38, &var_r31->unk_2C, &sp14);
sp14.y = 0.0f;
PSVECNormalize(&sp14, &sp14);
VECNormalize(&sp14, &sp14);
}
else {
sp14.x = sp14.y = sp14.z = 0.0f;
@ -3434,7 +3434,7 @@ float fn_1_10B20(float arg8, Vec *arg0)
arg0->x = var_r31->unk_2C.x + (sp14.x * var_f29);
arg0->y = var_r31->unk_2C.y + var_f28;
arg0->z = var_r31->unk_2C.z + (sp14.z * var_f29);
PSVECSubtract(arg0, &sp8, &sp20);
VECSubtract(arg0, &sp8, &sp20);
var_f31 >= var_r31->unk_00;
var_r31->unk_04 = var_f30;
return var_f30 + arg8;
@ -3462,7 +3462,7 @@ s32 fn_1_10D24(Vec *sp8)
var_r31 = lbl_1_bss_7CC->data;
fn_1_10D24_inline(&spC);
PSVECSubtract(&spC, &var_r31->unk_30, &sp18);
VECSubtract(&spC, &var_r31->unk_30, &sp18);
if ((spC.x * var_r31->unk_30.x) >= 0.0f) {
return 0;
}
@ -3470,8 +3470,8 @@ s32 fn_1_10D24(Vec *sp8)
return 0;
}
var_f31 = fabs(var_r31->unk_30.x / sp18.x);
PSVECScale(&sp18, &sp18, var_f31);
PSVECAdd(&var_r31->unk_30, &sp18, sp8);
VECScale(&sp18, &sp18, var_f31);
VECAdd(&var_r31->unk_30, &sp18, sp8);
return 1;
}
@ -3535,9 +3535,9 @@ float fn_1_11098(Vec *arg0, Vec *arg1, Vec *arg2)
float var_f31;
float var_f30;
PSVECSubtract(arg1, arg0, &sp10);
var_f31 = PSVECDotProduct(&sp10, arg2);
var_f30 = -PSVECSquareMag(arg2);
VECSubtract(arg1, arg0, &sp10);
var_f31 = VECDotProduct(&sp10, arg2);
var_f30 = -VECSquareMag(arg2);
if (var_f30 != 0.0f) {
var_f31 /= var_f30;
}
@ -3555,16 +3555,16 @@ float fn_1_11130(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3)
float var_f29;
float var_f28;
PSVECSubtract(arg1, arg0, &sp28);
PSVECSubtract(arg3, arg2, &sp1C);
PSVECSubtract(&sp28, &sp1C, &sp28);
if (PSVECMag(&sp28) <= 0.0f) {
VECSubtract(arg1, arg0, &sp28);
VECSubtract(arg3, arg2, &sp1C);
VECSubtract(&sp28, &sp1C, &sp28);
if (VECMag(&sp28) <= 0.0f) {
sp34 = *arg0;
}
else {
PSVECSubtract(arg0, arg2, &sp10);
var_f30 = PSVECDotProduct(&sp10, &sp28);
var_f29 = -PSVECSquareMag(&sp28);
VECSubtract(arg0, arg2, &sp10);
var_f30 = VECDotProduct(&sp10, &sp28);
var_f29 = -VECSquareMag(&sp28);
if (var_f29 != 0.0f) {
var_f30 /= var_f29;
}
@ -3576,9 +3576,9 @@ float fn_1_11130(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3)
else if (var_f31 > 1.0f) {
var_f31 = 1.0f;
}
PSVECScale(&sp28, &sp1C, var_f31);
PSVECAdd(arg0, &sp1C, &sp34);
VECScale(&sp28, &sp1C, var_f31);
VECAdd(arg0, &sp1C, &sp34);
}
PSVECSubtract(arg2, &sp34, &sp28);
return PSVECMag(&sp28);
VECSubtract(arg2, &sp34, &sp28);
return VECMag(&sp28);
}

View file

@ -158,7 +158,7 @@ typedef struct M438UnkStruct {
s8 unk_55;
s8 unk_56;
u8 unk_57;
M438UnkSubStruct* unk_58;
M438UnkSubStruct *unk_58;
u8 unk_5C;
char unk5D[0x3];
Vec unk_60;
@ -175,7 +175,7 @@ typedef struct M438UnkStruct2 {
Vec unk_0C;
char unk18[0xC];
Vec unk_24;
void (*unk_30)(struct M438UnkStruct2*);
void (*unk_30)(struct M438UnkStruct2 *);
char unk34[8];
M438UnkStruct *unk_3C;
char unk40[0x20];
@ -575,88 +575,51 @@ void fn_1_1174(omObjData *object)
}
}
Vec lbl_1_data_68[11][8] = {
{
{ -528.6f, 0.0f, 350.7f },
{ -375.7f, 0.0f, 243.0f },
{ -214.2f, 0.0f, 331.4f },
{ -173.3f, 0.0f, 523.7f },
{ 15.000001f, 0.0f, 505.7f },
{ 148.59999f, 0.0f, 393.0f },
{ 0.0f, 1.0f, 0.0f },
},
Vec lbl_1_data_68[11][8] = { {
{ -528.6f, 0.0f, 350.7f },
{ -375.7f, 0.0f, 243.0f },
{ -214.2f, 0.0f, 331.4f },
{ -173.3f, 0.0f, 523.7f },
{ 15.000001f, 0.0f, 505.7f },
{ 148.59999f, 0.0f, 393.0f },
{ 0.0f, 1.0f, 0.0f },
},
{
{ -198.7f, 0.0f, -122.899994f },
{ -11.599999f, 0.0f, -177.1f },
{ 63.4f, 0.0f, -349.7f },
{ 277.09999f, 0.0f, -296.4f },
{ 397.5f, 0.0f, -470.2f },
{ 0.0f, 1.0f, 0.0f },
{ -11.599999f, 0.0f, -177.1f },
{ 63.4f, 0.0f, -349.7f },
{ 277.09999f, 0.0f, -296.4f },
{ 397.5f, 0.0f, -470.2f },
{ 0.0f, 1.0f, 0.0f },
},
{
{ -421.0f, 0.0f, -471.3f },
{ -270.1f, 0.0f, -460.0f },
{ -153.1f, 0.0f, -356.5f },
{ 12.4f, 0.0f, -473.99997f },
{ 0.0f, 1.0f, 0.0f },
{ 12.4f, 0.0f, -473.99997f },
{ 0.0f, 1.0f, 0.0f },
},
{
{ -545.10004f, 0.0f, -318.9f },
{ -545.10004f, 0.0f, -318.9f },
{ -469.0f, 0.0f, -154.1f },
{ -313.4, 0.0f, -170.09999f },
{ -313.4, 0.0f, -170.09999f },
{ -250.0f, 0.0f, -32.8f },
{ 0.0f, 1.0f, 0.0f },
},
{
{ -155.6f, 0.0f, 19.5f },
{ -34.3f, 0.0f, 96.6f },
{ -63.9f, 0.0f, 240.00002f },
{ 37.5f, 0.0f, 402.8f },
{ 0.0f, 1.0f, 0.0f }
},
{
{ 207.5f, 0.0f, -163.2f },
{ 270.1f, 0.0f, -104.799995f },
{ 402.19998f, 0.0f, -102.4f },
{ 511.49997f, 0.0f, -25.099998f },
{ 627.3f, 0.0f, -142.0f },
{ 0.0f, 1.0f, 0.0f }
{ 0.0f, 1.0f, 0.0f },
},
{ { -155.6f, 0.0f, 19.5f }, { -34.3f, 0.0f, 96.6f }, { -63.9f, 0.0f, 240.00002f }, { 37.5f, 0.0f, 402.8f }, { 0.0f, 1.0f, 0.0f } },
{ { 207.5f, 0.0f, -163.2f }, { 270.1f, 0.0f, -104.799995f }, { 402.19998f, 0.0f, -102.4f }, { 511.49997f, 0.0f, -25.099998f },
{ 627.3f, 0.0f, -142.0f }, { 0.0f, 1.0f, 0.0f } },
{
{ -601.0f, 0.0f, 97.799995f },
{ -516.80005f, 0.0f, 60.000004f },
{ -516.80005f, 0.0f, 60.000004f },
{ -417.7f, 0.0f, 92.9f },
{ -309.40002f, 0.0f, 76.1f },
{ 0.0f, 1.0f, 0.0f },
{ -309.40002f, 0.0f, 76.1f },
{ 0.0f, 1.0f, 0.0f },
},
{
{ 82.8f, 0.0f, 164.2f },
{ 179.40001f, 0.0f, 179.8f },
{ 241.00002f, 0.0f, 87.1f },
{ 323.0f, 0.0f, 38.800003f },
{ 0.0f, 1.0f, 0.0f }
},
{
{ 243.4f, 0.0f, 573.5f },
{ 227.7f, 0.0f, 461.2f },
{ 319.30002f, 0.0f, 400.6f },
{ 342.30002f, 0.0f, 310.0f },
{ 0.0f, 1.0f, 0.0f }
},
{
{ 357.69998f, 0.0f, 146.8f },
{ 418.80002f, 0.0f, 225.0f },
{ 503.2f, 0.0f, 234.69998f },
{ 548.1f, 0.0f, 321.19998f },
{ 0.0f, 1.0f, 0.0f }
},
{
{ -100.0f, 0.0f, 0.0f },
{ 0.0f, 0.0f, -100.0f },
{ 100.0f, 0.0f, 0.0f },
{ 0.0f, 1.0f, 0.0f }
}
};
{ { 82.8f, 0.0f, 164.2f }, { 179.40001f, 0.0f, 179.8f }, { 241.00002f, 0.0f, 87.1f }, { 323.0f, 0.0f, 38.800003f }, { 0.0f, 1.0f, 0.0f } },
{ { 243.4f, 0.0f, 573.5f }, { 227.7f, 0.0f, 461.2f }, { 319.30002f, 0.0f, 400.6f }, { 342.30002f, 0.0f, 310.0f }, { 0.0f, 1.0f, 0.0f } },
{ { 357.69998f, 0.0f, 146.8f }, { 418.80002f, 0.0f, 225.0f }, { 503.2f, 0.0f, 234.69998f }, { 548.1f, 0.0f, 321.19998f }, { 0.0f, 1.0f, 0.0f } },
{ { -100.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, -100.0f }, { 100.0f, 0.0f, 0.0f }, { 0.0f, 1.0f, 0.0f } } };
void fn_1_1204(omObjData *object)
{
M438StructBss298 *var_r31;
@ -951,7 +914,8 @@ void fn_1_2070(omObjData *object)
var_r31->unk_10.y = var_r31->unk_28.y + (var_f31 * (var_r31->unk_40.y - var_r31->unk_28.y));
var_r31->unk_10.z = var_r31->unk_28.z + (var_f31 * (var_r31->unk_40.z - var_r31->unk_28.z));
var_r31->unk_130 = var_r31->unk_134 + (var_f31 * (var_r31->unk_138 - var_r31->unk_134));
} else {
}
else {
fn_1_9420(2.0f * var_f31, (float *)&var_r31->unk_04, var_r31->unk_F4, (float(*)[3]) & var_r31->unk_64, var_r31->unk_88, 3);
fn_1_9420(2.0f * var_f31, (float *)&var_r31->unk_10, var_r31->unk_100, (float(*)[3]) & var_r31->unk_AC, var_r31->unk_D0, 3);
var_r31->unk_130 = fn_1_8EEC(2.0f * var_f31, var_r31->unk_124, var_r31->unk_10C, var_r31->unk_118, 3);
@ -1473,12 +1437,14 @@ void fn_1_35C0(omObjData *object)
var_r31->unk_22 = var_r28;
var_r31->unk_20 = var_r28;
CharModelMotionShiftSet(var_r31->unk_01, object->motion[8], 0.0f, 8.0f, var_r27);
} else {
}
else {
switch (var_r28) {
case 0:
case 1:
case 2:
if (var_r31->unk_20 != 0 && CharModelMotionShiftIDGet(var_r31->unk_01) >= 0) break;
if (var_r31->unk_20 != 0 && CharModelMotionShiftIDGet(var_r31->unk_01) >= 0)
break;
default:
var_r31->unk_22 = var_r28;
var_r31->unk_20 = var_r28;
@ -1590,7 +1556,6 @@ void fn_1_4724(omObjData *object)
object->func = fn_1_4984;
}
void fn_1_4984(omObjData *object)
{
Vec sp8;
@ -1645,7 +1610,7 @@ void fn_1_4984(omObjData *object)
}
lbl_1_bss_4 = fn_1_10258(0x3C, 1);
fn_1_11018(lbl_1_bss_4, 0, 0x45000F);
lbl_1_bss_DE4.unk_40[lbl_1_bss_4].unk_30 = fn_1_5D4C;
lbl_1_bss_DE4.unk_40[lbl_1_bss_4].unk_30 = fn_1_5D4C;
fn_1_11890(lbl_1_bss_4, var_r31->unk_10.x, 50.0f + var_r31->unk_10.y, var_r31->unk_10.z);
fn_1_124CC(lbl_1_bss_4, 1);
lbl_1_bss_8++;
@ -1708,7 +1673,7 @@ void fn_1_4F50(omObjData *object)
var_r31->unk_00++;
case 1:
var_r31->unk_34 = var_r31->unk_10;
for (var_r28 = 0, var_r26 = 0; var_r28 < 4; var_r28++) {
var_r29 = lbl_1_bss_DC4[var_r28]->data;
if ((var_r29->unk_07 != 0) && ((var_r29->unk_07 & 2) == 0)) {
@ -1723,17 +1688,20 @@ void fn_1_4F50(omObjData *object)
if (var_r31->unk_1C.y <= -180.0f) {
var_r31->unk_1C.y += 360.0f;
}
for (var_r28 = 0; var_r28 < var_r26; var_r28++) {
var_f31 = fn_1_E5A4(sp8[var_r28], object->rot.y);
if (var_f31 < 0.0f) {
var_f27 = -var_f31;
} else {
}
else {
var_f27 = var_f31;
}
if (var_f27 > (20.0f + object->work[1])) continue;
if (var_f27 > (20.0f + object->work[1]))
continue;
object->work[0]--;
if (object->work[0] != 0 && ((fn_1_7DB4() & 0xF) != 0)) continue;
if (object->work[0] != 0 && ((fn_1_7DB4() & 0xF) != 0))
continue;
var_r31->unk_04.y = sp8[var_r28];
var_r31->unk_1C.y = sp8[var_r28];
var_r31->unk_28.y = 16.333334f;
@ -1781,7 +1749,8 @@ void fn_1_4F50(omObjData *object)
sp18 = var_r31->unk_10;
sp18.y = 0.0f;
var_f30 = VECMag(&sp18);
if (var_f30 <= 700.0f) break;
if (var_f30 <= 700.0f)
break;
var_r31->unk_02 = 1;
if (fn_1_DA64(atan2d(sp18.x, sp18.z)) != 0) {
var_r31->unk_02 = 0x78;
@ -1804,7 +1773,8 @@ void fn_1_4F50(omObjData *object)
case 4:
var_r31->unk_28.y += -3.0625f;
var_r31->unk_10.y += var_r31->unk_28.y;
if (var_r31->unk_10.y > 0.0f) break;
if (var_r31->unk_10.y > 0.0f)
break;
var_r31->unk_10.y = 0.0f;
var_r31->unk_34 = var_r31->unk_10;
Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_LOOP);
@ -1848,7 +1818,8 @@ void fn_1_4F50(omObjData *object)
var_r29 = lbl_1_bss_DC4[var_r28]->data;
VECSubtract(&var_r29->unk_6C, &var_r31->unk_10, &sp18);
var_f30 = VECMag(&sp18);
if (var_f30 >= 200.0f || var_r29->unk_20 == 7) continue;
if (var_f30 >= 200.0f || var_r29->unk_20 == 7)
continue;
omVibrate(var_r29->unk_00, 0xC, 4, 2);
var_r29->unk_07 |= 2;
var_r29->unk_0D = 0;
@ -1860,7 +1831,8 @@ void fn_1_4F50(omObjData *object)
if (fabs(fn_1_E5A4(var_r29->unk_28, var_r29->unk_7C)) > 90.0) {
var_r29->unk_7C = 180.0f + var_r29->unk_28;
var_r29->unk_14 = 0;
} else {
}
else {
var_r29->unk_7C = var_r29->unk_28;
var_r29->unk_14 = 1;
}
@ -1875,7 +1847,8 @@ void fn_1_4F50(omObjData *object)
omSetRot(object, var_r31->unk_1C.x, var_r31->unk_1C.y, var_r31->unk_1C.z);
}
void fn_1_5D4C(M438UnkStruct2 *arg0) {
void fn_1_5D4C(M438UnkStruct2 *arg0)
{
s16 sp8;
f32 temp_f31;
f32 temp_f30;
@ -1883,13 +1856,13 @@ void fn_1_5D4C(M438UnkStruct2 *arg0) {
f32 temp_f28;
f32 temp_f27;
s32 var_r29;
M438UnkStruct* var_r31;
M438UnkStruct *var_r31;
sp8 = 0;
switch (arg0->unk_60) { /* irregular */
switch (arg0->unk_60) { /* irregular */
case 0:
temp_f27 = 360.0f / arg0->unk_02;
var_r31 = &arg0->unk_3C[0];
for (var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r31++) {
var_r31->unk_6C.x = sind(temp_f27 * var_r29) * (0.8f + (0.1f * (2.0f * ((1.0f / 32768.0f) * (fn_1_7DB4() - 0x8000)))));
@ -1909,7 +1882,7 @@ void fn_1_5D4C(M438UnkStruct2 *arg0) {
arg0->unk_7C--;
temp_f31 = (48.0f - arg0->unk_7C) / 48.0f;
temp_f28 = arg0->unk_7C / 48.0f;
var_r31 = arg0->unk_3C;
for (var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r31++) {
var_r31->unk_00.x += 12.5f * temp_f28 * var_r31->unk_6C.x;
@ -1935,7 +1908,7 @@ void fn_1_62BC(M438UnkStruct2 *arg0)
s16 sp8;
M438UnkStruct *var_r31;
sp8 = 0;
switch (arg0->unk_60) {
case 0:
@ -1957,9 +1930,10 @@ void fn_1_62BC(M438UnkStruct2 *arg0)
}
}
void fn_1_63B0(M438UnkStruct2* arg0) {
void fn_1_63B0(M438UnkStruct2 *arg0)
{
Vec sp8;
M438UnkStruct* var_r31;
M438UnkStruct *var_r31;
f32 var_f31;
f32 temp_f30;
f32 var_f29;
@ -1970,10 +1944,8 @@ void fn_1_63B0(M438UnkStruct2* arg0) {
for (var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r31++) {
switch (var_r31->unk_5C) {
case 0:
var_f29 = atan2d(arg0->unk_80, arg0->unk_84) < 0
? -atan2d(arg0->unk_80, arg0->unk_84)
: atan2d(arg0->unk_80, arg0->unk_84);
var_f29 = atan2d(arg0->unk_80, arg0->unk_84) < 0 ? -atan2d(arg0->unk_80, arg0->unk_84) : atan2d(arg0->unk_80, arg0->unk_84);
if (var_f29 > 90.0f) {
var_f29 = 180.0f - var_f29;
}
@ -1984,7 +1956,7 @@ void fn_1_63B0(M438UnkStruct2* arg0) {
var_r31->unk_00.x = sp8.x;
var_r31->unk_00.y = 0.0f;
var_r31->unk_00.z = sp8.z;
for (var_f31 = 0.0f, sp8.y = 0.0f; var_f31 < (arg0->unk_8C - 40.0f); var_f31 += sp8.y) {
sp8.y += 0.8f;
}
@ -2000,7 +1972,8 @@ void fn_1_63B0(M438UnkStruct2* arg0) {
temp_f30 = 3.75f + (1.75f * ((1.0f / 65536.0f) * fn_1_7DB4()));
var_r31->unk_60.x = (temp_f30 * (0.1f + ((0.9f * var_f29) / 90.0f)));
var_r31->unk_60.y = var_r31->unk_60.z = temp_f30;
} else {
}
else {
var_r31->unk_33 = 0;
var_r31->unk_54 = 0;
var_r31->unk_55 = 0;
@ -2044,9 +2017,10 @@ void fn_1_63B0(M438UnkStruct2* arg0) {
}
}
void fn_1_6A3C(M438UnkStruct2* arg0) {
void fn_1_6A3C(M438UnkStruct2 *arg0)
{
Vec sp8;
M438UnkStruct* var_r31;
M438UnkStruct *var_r31;
f32 temp_f31;
f32 temp_f30;
f32 temp_f29;
@ -2056,7 +2030,7 @@ void fn_1_6A3C(M438UnkStruct2* arg0) {
var_r31 = arg0->unk_3C;
var_r28 = 0;
for (var_r27 = 0; var_r27 < arg0->unk_02; var_r27++, var_r31++) {
if ((arg0->unk_7C != 0) && (var_r31->unk_7A == 0)) {
var_r31->unk_5C = 0;
@ -2077,7 +2051,8 @@ void fn_1_6A3C(M438UnkStruct2* arg0) {
var_r31->unk_6C.z = 100.0f * (0.1f * sp8.z);
var_r31->unk_78 = (s32)(24.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) + 1;
var_r31->unk_7A = 1;
} else {
}
else {
temp_f30 = (180.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) - 90.0f;
temp_f29 = 125.0f * ((1.0f / 65536.0f) * fn_1_7DB4());
sp8.x = sind(temp_f30);
@ -2103,7 +2078,8 @@ void fn_1_6A3C(M438UnkStruct2* arg0) {
var_r31->unk_18.x = temp_f31;
var_r31->unk_18.y = temp_f31;
var_r31->unk_18.z = temp_f31;
} else if (arg0->unk_7C != 0) {
}
else if (arg0->unk_7C != 0) {
var_r31->unk_33 = 0;
var_r31->unk_54 = 0;
var_r31->unk_55 = 0;
@ -2113,10 +2089,11 @@ void fn_1_6A3C(M438UnkStruct2* arg0) {
var_r31->unk_18.x = temp_f31;
var_r31->unk_18.y = 1.5f * temp_f31;
var_r31->unk_18.z = temp_f31;
} else {
}
else {
var_r29 = fn_1_10258(8, 1);
fn_1_11018(var_r29, 0, 0x45000A);
lbl_1_bss_DE4.unk_40[var_r29].unk_30 = (void (*)(M438UnkStruct2*)) fn_1_7300;
lbl_1_bss_DE4.unk_40[var_r29].unk_30 = (void (*)(M438UnkStruct2 *))fn_1_7300;
fn_1_11890(var_r29, arg0->unk_0C.x + var_r31->unk_00.x, arg0->unk_0C.y + var_r31->unk_00.y, arg0->unk_0C.z + var_r31->unk_00.z);
fn_1_12100(var_r29, 4);
fn_1_124CC(var_r29, 1);
@ -2134,7 +2111,8 @@ void fn_1_6A3C(M438UnkStruct2* arg0) {
var_r31->unk_58->unk_24 = 0x11;
if (var_r31->unk_7A != 0) {
var_r31->unk_58->unk_28 = 0.5f;
} else {
}
else {
var_r31->unk_58->unk_28 = 0.5f;
}
var_r31->unk_58->unk_2C = 0.0f;
@ -2156,7 +2134,8 @@ void fn_1_6A3C(M438UnkStruct2* arg0) {
if ((var_r31->unk_58->unk_24 & 8) != 0) {
if (var_r31->unk_7A != 0) {
var_r31->unk_5C = 3;
} else {
}
else {
var_r31->unk_5C = 0;
}
}
@ -2171,9 +2150,10 @@ void fn_1_6A3C(M438UnkStruct2* arg0) {
}
}
void fn_1_7300(M438UnkStruct2* arg0) {
void fn_1_7300(M438UnkStruct2 *arg0)
{
Vec sp8;
M438UnkStruct* var_r31;
M438UnkStruct *var_r31;
f32 temp_f29;
f32 temp_f30;
f32 temp_f31;
@ -2181,33 +2161,32 @@ void fn_1_7300(M438UnkStruct2* arg0) {
s32 var_r29;
var_r31 = arg0->unk_3C;
switch (arg0->unk_60) {
case 0:
arg0->unk_24.x = arg0->unk_24.y = arg0->unk_24.z = temp_f31 = 0.01f;
arg0->unk_7C = Hu3DModelCreateFile(0x45000B);
arg0->unk_7E = (s32)(30.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) + 30;
for (var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r31++) {
var_r31->unk_38 |= 4;
}
arg0->unk_60++;
case 1:
arg0->unk_24.z += 0.008f;
arg0->unk_24.x = arg0->unk_24.y = arg0->unk_24.z;
Hu3DModelPosSetV(arg0->unk_7C, &arg0->unk_0C);
Hu3DModelScaleSetV(arg0->unk_7C, &arg0->unk_24);
if (--arg0->unk_7E == 0) {
Hu3DModelKill(arg0->unk_7C);
arg0->unk_7C = 0;
for (var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r31++) {
var_r31->unk_5C = 1;
}
arg0->unk_80 = arg0->unk_24.x;
arg0->unk_24.x = arg0->unk_24.y = arg0->unk_24.z = 1.0f;
arg0->unk_60++;
}
@ -2215,7 +2194,7 @@ void fn_1_7300(M438UnkStruct2* arg0) {
}
var_r28 = 0;
var_r31 = arg0->unk_3C;
for (var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r31++) {
switch (var_r31->unk_5C) {
case 1:
@ -2450,32 +2429,36 @@ float fn_1_7EDC(float arg8, float arg9, float argA)
arg8 = arg9 + (var_f31 * argA);
if (arg8 > 180.0f) {
arg8 -= 360.0f;
} else if (arg8 <= -180.0f) {
}
else if (arg8 <= -180.0f) {
arg8 += 360.0f;
}
return arg8;
}
void fn_1_8044(Mtx arg0, f32 arg8, f32 arg9, f32 argA) {
void fn_1_8044(Mtx arg0, f32 arg8, f32 arg9, f32 argA)
{
Mtx sp38;
Mtx sp8;
if (0.0f != argA) {
PSMTXRotRad(arg0, 0x5A, MTXDegToRad(argA));
} else {
PSMTXIdentity(arg0);
MTXRotRad(arg0, 0x5A, MTXDegToRad(argA));
}
else {
MTXIdentity(arg0);
}
if (0.0f != arg8) {
PSMTXRotRad(sp38, 0x58, MTXDegToRad(arg8));
PSMTXConcat(sp38, arg0, arg0);
MTXRotRad(sp38, 0x58, MTXDegToRad(arg8));
MTXConcat(sp38, arg0, arg0);
}
if (0.0f != arg9) {
PSMTXRotRad(sp8, 0x59, MTXDegToRad(arg9));
PSMTXConcat(sp8, arg0, arg0);
MTXRotRad(sp8, 0x59, MTXDegToRad(arg9));
MTXConcat(sp8, arg0, arg0);
}
}
void fn_1_8164(Mtx arg0, Vec* arg1) {
void fn_1_8164(Mtx arg0, Vec *arg1)
{
f32 temp_f29;
f32 var_f28;
@ -2500,7 +2483,8 @@ void fn_1_8164(Mtx arg0, Vec* arg1) {
}
}
void fn_1_8500(Mtx arg0, Vec* arg1) {
void fn_1_8500(Mtx arg0, Vec *arg1)
{
f32 temp_f29;
f32 var_f28;
@ -2511,7 +2495,8 @@ void fn_1_8500(Mtx arg0, Vec* arg1) {
arg1->x = atan2d(temp_f29, var_f28);
}
f32 fn_1_8750(f32 arg8, f32 arg9, f32 argA, f32 argB) {
f32 fn_1_8750(f32 arg8, f32 arg9, f32 argA, f32 argB)
{
f32 temp_f31;
f32 var_f30;
@ -2520,22 +2505,25 @@ f32 fn_1_8750(f32 arg8, f32 arg9, f32 argA, f32 argB) {
return var_f30;
}
void fn_1_87C8(f32* arg0, f32* arg1, f32* arg2, f32* arg3, f32 arg8) {
void fn_1_87C8(f32 *arg0, f32 *arg1, f32 *arg2, f32 *arg3, f32 arg8)
{
s32 var_r31;
for (var_r31 = 0; var_r31 < 3; var_r31++) {
*arg3++ = fn_1_8750(arg8, *arg0++, *arg1++, *arg2++);
}
}
f32 fn_1_88E4(f32 arg8, f32 arg9, f32 argA, f32 argB) {
f32 fn_1_88E4(f32 arg8, f32 arg9, f32 argA, f32 argB)
{
f32 var_f31;
var_f31 = 2.0 * ((arg8 - 1.0) * arg9 + (1.0 - (2.0 * arg8)) * argA + (arg8 * argB));
return var_f31;
}
void fn_1_895C(f32* arg0, f32* arg1, f32* arg2, f32* arg3, f32 arg8) {
void fn_1_895C(f32 *arg0, f32 *arg1, f32 *arg2, f32 *arg3, f32 arg8)
{
f32 spC[3];
f32 var_f29;
s32 var_r31;
@ -2672,7 +2660,6 @@ void fn_1_9040(float *arg0, Vec *arg1, float arg2[3][3], s32 arg3)
}
}
void fn_1_9420(float arg8, float *arg0, float *arg1, float arg2[3][3], float arg3[3][3], s32 arg4)
{
float sp48[16];
@ -2692,7 +2679,8 @@ void fn_1_9420(float arg8, float *arg0, float *arg1, float arg2[3][3], float arg
}
}
f32 fn_1_9634(Vec* arg0) {
f32 fn_1_9634(Vec *arg0)
{
f32 var_f30;
f32 var_f29;
var_f30 = (arg0->x * arg0->x) + (arg0->y * arg0->y) + (arg0->z * arg0->z);
@ -2702,24 +2690,28 @@ f32 fn_1_9634(Vec* arg0) {
arg0->x *= var_f29;
arg0->y *= var_f29;
arg0->z *= var_f29;
} else {
}
else {
arg0->x = arg0->y = arg0->z = 0.0f;
}
return var_f30;
}
f32 fn_1_97CC(Vec arg0, Vec arg1, Vec* arg2, f32 arg8) {
f32 fn_1_97CC(Vec arg0, Vec arg1, Vec *arg2, f32 arg8)
{
if (arg8 <= 0.0f) {
arg2->x = arg0.x;
arg2->y = arg0.y;
arg2->z = arg0.z;
arg8 = 0.0f;
} else if (arg8 >= 1.0f) {
}
else if (arg8 >= 1.0f) {
arg2->x = (arg0.x + arg1.x);
arg2->y = (arg0.y + arg1.y);
arg2->z = (arg0.z + arg1.z);
arg8 = 1.0f;
} else {
}
else {
arg2->x = (arg0.x + (arg8 * arg1.x));
arg2->y = (arg0.y + (arg8 * arg1.y));
arg2->z = (arg0.z + (arg8 * arg1.z));
@ -2727,7 +2719,8 @@ f32 fn_1_97CC(Vec arg0, Vec arg1, Vec* arg2, f32 arg8) {
return arg8;
}
f32 fn_1_98A4(Vec arg0, Vec arg1, Vec arg2) {
f32 fn_1_98A4(Vec arg0, Vec arg1, Vec arg2)
{
f32 temp_f30;
f32 var_f31;
@ -2739,21 +2732,24 @@ f32 fn_1_98A4(Vec arg0, Vec arg1, Vec arg2) {
return var_f31;
}
f32 fn_1_9960(Vec* arg0, Vec* arg1, Vec* arg2) {
f32 fn_1_9960(Vec *arg0, Vec *arg1, Vec *arg2)
{
Vec sp44;
f32 var_f31;
f32 var_f30;
f32 temp_f29;
if (0.0f == ((arg2->z * arg2->z) + ((arg2->x * arg2->x) + (arg2->y * arg2->y)))) {
return ((arg0->z - arg1->z) * (arg0->z - arg1->z)) + (((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y)));
return ((arg0->z - arg1->z) * (arg0->z - arg1->z))
+ (((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y)));
}
var_f31 = fn_1_98A4(*arg0, *arg1, *arg2);
fn_1_97CC(*arg1, *arg2, &sp44, var_f31);
return ((arg0->z - sp44.z) * (arg0->z - sp44.z)) + (((arg0->x - sp44.x) * (arg0->x - sp44.x)) + ((arg0->y - sp44.y) * (arg0->y - sp44.y)));
}
f32 fn_1_9C9C(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, Vec* arg4) {
f32 fn_1_9C9C(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3, Vec *arg4)
{
f32 sp44;
f32 sp40;
f32 sp3C;
@ -2778,7 +2774,8 @@ f32 fn_1_9C9C(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, Vec* arg4) {
f64 temp_f31_3;
if (0.0f == ((arg2->z * arg2->z) + ((arg2->x * arg2->x) + (arg2->y * arg2->y)))) {
return ((arg0->z - arg1->z) * (arg0->z - arg1->z)) + (((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y)));
return ((arg0->z - arg1->z) * (arg0->z - arg1->z))
+ (((arg0->x - arg1->x) * (arg0->x - arg1->x)) + ((arg0->y - arg1->y) * (arg0->y - arg1->y)));
}
var_f27 = fn_1_98A4(*arg0, *arg1, *arg2);
fn_1_97CC(*arg1, *arg2, arg3, var_f27);
@ -2789,7 +2786,8 @@ f32 fn_1_9C9C(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, Vec* arg4) {
return fn_1_9634(arg4);
}
f32 fn_1_A14C(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3) {
f32 fn_1_A14C(Vec *arg0, Vec *arg1, Vec *arg2, Vec *arg3)
{
f32 temp_f31;
f32 var_f30;
f32 var_f29;
@ -2809,14 +2807,17 @@ f32 fn_1_A14C(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3) {
if (var_f28 >= var_f27) {
if (var_f28 >= var_f26) {
var_r30 = 1;
} else {
}
else {
var_r30 = 0x100;
}
var_r31 = var_r30;
} else {
}
else {
if (var_f27 >= var_f26) {
var_r29 = 0x10;
} else {
}
else {
var_r29 = 0x100;
}
var_r31 = var_r29;
@ -2827,30 +2828,38 @@ f32 fn_1_A14C(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3) {
return var_f30;
}
var_f29 = ((arg3->z * (arg0->x - arg2->x)) - (arg3->x * (arg0->z - arg2->z))) / temp_f31;
} else if (0.0f == (temp_f31 = (arg3->y * arg1->x) - (arg3->x * arg1->y))) {
}
else if (0.0f == (temp_f31 = (arg3->y * arg1->x) - (arg3->x * arg1->y))) {
return var_f30;
} else {
}
else {
var_f29 = ((arg3->x * (arg0->y - arg2->y)) - (arg3->y * (arg0->x - arg2->x))) / temp_f31;
}
} else if ((var_r31 & 0x30) != 0) {
}
else if ((var_r31 & 0x30) != 0) {
if ((0.0f != arg1->x) || (0.0f != arg1->y)) {
if (0.0f == (temp_f31 = (arg3->y * arg1->x) - (arg3->x * arg1->y))) {
return var_f30;
}
var_f29 = ((arg3->x * (arg0->y - arg2->y)) - (arg3->y * (arg0->x - arg2->x))) / temp_f31;
} else if (0.0f == (temp_f31 = (arg3->z * arg1->y) - (arg3->y * arg1->z))) {
}
else if (0.0f == (temp_f31 = (arg3->z * arg1->y) - (arg3->y * arg1->z))) {
return var_f30;
} else {
}
else {
var_f29 = ((arg3->y * (arg0->z - arg2->z)) - (arg3->z * (arg0->y - arg2->y))) / temp_f31;
}
} else if ((0.0f != arg1->x) || (0.0f != arg1->z)) {
}
else if ((0.0f != arg1->x) || (0.0f != arg1->z)) {
if (0.0f == (temp_f31 = (arg3->x * arg1->z) - (arg3->z * arg1->x))) {
return var_f30;
}
var_f29 = ((arg3->z * (arg0->x - arg2->x)) - (arg3->x * (arg0->z - arg2->z))) / temp_f31;
} else if (0.0f == (temp_f31 = (arg3->z * arg1->y) - (arg3->y * arg1->z))) {
}
else if (0.0f == (temp_f31 = (arg3->z * arg1->y) - (arg3->y * arg1->z))) {
return var_f30;
} else {
}
else {
var_f29 = ((arg3->y * (arg0->z - arg2->z)) - (arg3->z * (arg0->y - arg2->y))) / temp_f31;
}
return var_f29;
@ -2871,11 +2880,31 @@ void fn_1_A688(omObjData *object) { }
Vec lbl_1_data_514 = { -850.0f, 0.0f, -850.0f };
s32 lbl_1_data_520[25] = {
-0x62, -0x61, -0x60, -0x5F, -0x5E,
-0x32, -0x31, -0x30, -0x2F, -0x2E,
-0x2, -0x1, 0x0, 0x1, 0x2,
0x2E, 0x2F, 0x30, 0x31, 0x32,
0x5E, 0x5F, 0x60, 0x61, 0x62,
-0x62,
-0x61,
-0x60,
-0x5F,
-0x5E,
-0x32,
-0x31,
-0x30,
-0x2F,
-0x2E,
-0x2,
-0x1,
0x0,
0x1,
0x2,
0x2E,
0x2F,
0x30,
0x31,
0x32,
0x5E,
0x5F,
0x60,
0x61,
0x62,
};
u32 lbl_1_data_584[25] = {
@ -2906,18 +2935,20 @@ u32 lbl_1_data_584[25] = {
0x50,
};
#define getData(v, off) &( &( *OM_GET_DATA_PTR(lbl_1_bss_DBC, M438UnkType) )[ (u32)(0.028235294f * (v.x - off)) ] )[ (u32)(0.028235294f * (v.z - off)) * 0x30 ]
#define getData(v, off) \
&(&(*OM_GET_DATA_PTR(lbl_1_bss_DBC, M438UnkType))[(u32)(0.028235294f * (v.x - off))])[(u32)(0.028235294f * (v.z - off)) * 0x30]
void fn_1_A68C(ModelData* model, Mtx matrix) {
void fn_1_A68C(ModelData *model, Mtx matrix)
{
Vec sp14;
Vec sp8;
M438StructBss298* var_r30;
M438StructBss298 *var_r30;
f32 var_f31;
omObjData* temp_r27;
omObjData *temp_r27;
s32 var_r28;
s32 var_r29;
u8* temp_r26;
u8* var_r25;
u8 *temp_r26;
u8 *var_r25;
M438MainWork *temp_r31;
if ((u8)omPauseChk() == 0) {
@ -2929,9 +2960,9 @@ void fn_1_A68C(ModelData* model, Mtx matrix) {
var_f31 = 0.0f;
for (var_f31 = 0.0f; var_f31 < (35.416668f + var_r30->unk_14); var_f31 += 35.416668f) {
PSVECScale(&var_r30->unk_24, &sp8, var_f31);
PSVECAdd(&var_r30->unk_18, &sp8, &sp14);
PSVECSubtract(&sp14, &lbl_1_data_514, &sp14);
VECScale(&var_r30->unk_24, &sp8, var_f31);
VECAdd(&var_r30->unk_18, &sp8, &sp14);
VECSubtract(&sp14, &lbl_1_data_514, &sp14);
// @todo make this look nicer
// var_r25 = getData(sp14, 0);
@ -2946,12 +2977,12 @@ void fn_1_A68C(ModelData* model, Mtx matrix) {
}
}
for (var_r29 = 0; var_r29 < 4; var_r29++) {
if ((omObjData* ) lbl_1_bss_DC4[var_r29]) {
if ((omObjData *)lbl_1_bss_DC4[var_r29]) {
temp_r27 = lbl_1_bss_DC4[var_r29];
temp_r31 = temp_r27->data;
if ((temp_r31) && (temp_r31->unk_68 != 0)) {
temp_r31->unk_68 = 0;
PSVECAdd(&temp_r31->unk_6C, &temp_r31->unk_4C, &sp14);
VECAdd(&temp_r31->unk_6C, &temp_r31->unk_4C, &sp14);
temp_r31->unk_64 = fn_1_AE18(temp_r27->work[0], temp_r31->unk_7C, &sp14, &temp_r31->unk_58);
}
}
@ -2960,7 +2991,8 @@ void fn_1_A68C(ModelData* model, Mtx matrix) {
}
}
u32 fn_1_A8FC(Vec* arg0, f32 arg8) {
u32 fn_1_A8FC(Vec *arg0, f32 arg8)
{
Vec sp2C;
Vec sp20;
Vec sp14;
@ -2976,11 +3008,11 @@ u32 fn_1_A8FC(Vec* arg0, f32 arg8) {
var_r30 = 0;
var_r28 = 0;
temp_f28 = 100.0f * (4.5f - (2.0f * arg8));
var_f31 = PSVECMag(arg0);
var_f31 = VECMag(arg0);
if (var_f31 > 280.0f) {
if (var_f31 > 560.0f) {
var_r28 = 1;
PSVECNormalize(arg0, &sp14);
VECNormalize(arg0, &sp14);
}
var_f31 -= 280.0f;
var_f31 *= 0.12987013f;
@ -2999,17 +3031,17 @@ u32 fn_1_A8FC(Vec* arg0, f32 arg8) {
sp8.x = sind(temp_r31->unk_08);
sp8.y = 0.0f;
sp8.z = cosd(temp_r31->unk_08);
PSVECScale(&sp8, &sp20, 600.0f + (100.0f * (8.0f * arg8)));
VECScale(&sp8, &sp20, 600.0f + (100.0f * (8.0f * arg8)));
var_f30 = fn_1_B440(arg0, &sp2C, &sp20);
if (var_f30 > -0.2f && var_f30 < 1.0f) {
PSVECScale(&sp20, &sp20, var_f30);
PSVECAdd(&sp2C, &sp20, &sp2C);
PSVECSubtract(&sp2C, arg0, &sp20);
var_f31 = PSVECMag(&sp20);
if (var_f31 < temp_f28) {
VECScale(&sp20, &sp20, var_f30);
VECAdd(&sp2C, &sp20, &sp2C);
VECSubtract(&sp2C, arg0, &sp20);
var_f31 = VECMag(&sp20);
if (var_f31 < temp_f28) {
var_f29 = 0.0f;
if (var_r28 != 0) {
var_f29 = PSVECDotProduct(&sp14, &sp8);
var_f29 = VECDotProduct(&sp14, &sp8);
var_f29 = 1.0 - fabs(var_f29);
}
var_f31 = (1.0f / temp_f28) * (temp_f28 - var_f31);
@ -3026,8 +3058,8 @@ u32 fn_1_A8FC(Vec* arg0, f32 arg8) {
}
break;
default:
PSVECSubtract(arg0, &sp2C, &sp20);
var_f31 = PSVECMag(&sp20);
VECSubtract(arg0, &sp2C, &sp20);
var_f31 = VECMag(&sp20);
if (var_f31 < 600.0f) {
var_f31 = 800.0f - var_f31;
var_f31 = 20.0f + (0.1f * var_f31);
@ -3073,14 +3105,15 @@ Vec lbl_1_data_69C[9] = {
s32 lbl_1_data_708[9] = { 0, -19, -18, -17, -1, 1, 0x11, 0x12, 0x13 };
s32 lbl_1_data_72C[9] = { 0, -38, -54, -34, -3, 3, 0x22, 0x36, 0x26 };
s32 fn_1_AE18(u32 arg0, f32 arg8, Vec* arg1, Vec* arg2) {
s32 fn_1_AE18(u32 arg0, f32 arg8, Vec *arg1, Vec *arg2)
{
s32 sp58[9];
Vec sp4C;
Vec sp40;
Vec sp34;
Vec sp28;
Vec sp1C;
u8* sp18;
u8 *sp18;
u32 sp14;
u32 sp10;
f32 var_f31;
@ -3091,16 +3124,16 @@ s32 fn_1_AE18(u32 arg0, f32 arg8, Vec* arg1, Vec* arg2) {
s32 var_r30;
u32 var_r29;
s32 var_r28;
u16* temp_r27;
u16 *temp_r27;
s32 var_r26;
M438MainWork *var_r25;
u8* temp_r24;
u8 *temp_r24;
s32 var_r23;
u8* var_r22;
u16* var_r21;
u8 *var_r22;
u16 *var_r21;
u32 var_r19;
u32 var_r18;
u8* temp_r17;
u8 *temp_r17;
memset(lbl_1_bss_C, 0, 0x288);
sp40 = *arg1;
@ -3113,9 +3146,9 @@ s32 fn_1_AE18(u32 arg0, f32 arg8, Vec* arg1, Vec* arg2) {
temp_f28 = var_r25->unk_3C;
var_r19 = 0x2710;
var_r18 = 0;
for (var_r30 = 0; var_r30 < 9; var_r30++) {
PSVECAdd(&sp40, &lbl_1_data_60C[var_r30], &sp34);
VECAdd(&sp40, &lbl_1_data_60C[var_r30], &sp34);
sp18 = temp_r17 + lbl_1_data_5E8[var_r30];
(void)temp_r17;
var_r21 = &(&lbl_1_bss_C[lbl_1_data_708[var_r30]])[0xAB];
@ -3123,12 +3156,13 @@ s32 fn_1_AE18(u32 arg0, f32 arg8, Vec* arg1, Vec* arg2) {
var_r29 = 0;
var_r22 = sp18;
sp28 = sp34;
for (var_r23 = 0; var_r23 < 3; var_r23++) {
for (var_r28 = 0; var_r28 < 9; var_r28++) {
temp_r24 = var_r22 + lbl_1_data_5E8[var_r28];
PSVECAdd(&sp28, &lbl_1_data_60C[var_r28], &sp4C);
if ((lbl_1_bss_DBC->data <= temp_r24) && (((u8*)lbl_1_bss_DBC->data + 0x900 > temp_r24) && (fabs(sp4C.x) < 850.0) && (fabs(sp4C.z) < 850.0))) {
VECAdd(&sp28, &lbl_1_data_60C[var_r28], &sp4C);
if ((lbl_1_bss_DBC->data <= temp_r24)
&& (((u8 *)lbl_1_bss_DBC->data + 0x900 > temp_r24) && (fabs(sp4C.x) < 850.0) && (fabs(sp4C.z) < 850.0))) {
var_f31++;
temp_r27 = &var_r21[lbl_1_data_708[var_r28]];
if (*temp_r27 == 0) {
@ -3142,9 +3176,9 @@ s32 fn_1_AE18(u32 arg0, f32 arg8, Vec* arg1, Vec* arg2) {
for (var_r26 = 0; var_r26 < 4; var_r26++) {
if (var_r26 != arg0) {
var_r25 = lbl_1_bss_DC4[var_r26]->data;
PSVECSubtract(&sp4C, &var_r25->unk_6C, &sp1C);
VECSubtract(&sp4C, &var_r25->unk_6C, &sp1C);
sp1C.y = 0.0f;
var_f30 = PSVECMag(&sp1C);
var_f30 = VECMag(&sp1C);
if (var_f30 < var_f29) {
var_f30 = var_f29 - var_f30;
var_f30 *= (40.0f / var_f29);
@ -3153,7 +3187,8 @@ s32 fn_1_AE18(u32 arg0, f32 arg8, Vec* arg1, Vec* arg2) {
}
}
*temp_r27 = ++var_r31;
} else {
}
else {
var_r31 = *temp_r27;
}
var_r29 += var_r31;
@ -3163,7 +3198,7 @@ s32 fn_1_AE18(u32 arg0, f32 arg8, Vec* arg1, Vec* arg2) {
}
}
}
PSVECAdd(&sp28, &lbl_1_data_69C[var_r30], &sp28);
VECAdd(&sp28, &lbl_1_data_69C[var_r30], &sp28);
var_r22 += lbl_1_data_678[var_r30];
var_r21 = &var_r21[lbl_1_data_72C[var_r30]];
var_f31 *= 2.0f;
@ -3185,14 +3220,15 @@ s32 fn_1_AE18(u32 arg0, f32 arg8, Vec* arg1, Vec* arg2) {
return 0;
}
f32 fn_1_B440(Vec* arg0, Vec* arg1, Vec* arg2) {
f32 fn_1_B440(Vec *arg0, Vec *arg1, Vec *arg2)
{
Vec sp10;
f32 temp_f30;
f32 var_f31;
PSVECSubtract(arg1, arg0, &sp10);
var_f31 = PSVECDotProduct(&sp10, arg2);
temp_f30 = -PSVECSquareMag(arg2);
VECSubtract(arg1, arg0, &sp10);
var_f31 = VECDotProduct(&sp10, arg2);
temp_f30 = -VECSquareMag(arg2);
if (temp_f30 != 0.0f) {
var_f31 /= temp_f30;
}

View file

@ -1,11 +1,12 @@
#include "REL/m438Dll.h"
#include "ext_math.h"
#include "string.h"
#include "game/hsfanim.h"
#include "game/hsfmotion.h"
#include "game/sprite.h"
#include "game/wipe.h"
#include "string.h"
// STRUCT
typedef struct M438MapStruct {
@ -32,8 +33,8 @@ typedef struct M438MapStruct2 {
Vec unk30;
Vec unk3C;
union {
M438MainWork4* unk48;
HsfObject* unk48o;
M438MainWork4 *unk48;
HsfObject *unk48o;
};
} M438MapStruct2;
@ -45,56 +46,51 @@ typedef struct M438MapStruct3 {
} M438MapStruct3;
// BSS
omObjData* lbl_1_bss_108C[6];
HsfanimStruct01* lbl_1_bss_E34[0x96];
omObjData *lbl_1_bss_108C[6];
HsfanimStruct01 *lbl_1_bss_E34[0x96];
s32 lbl_1_bss_E30;
s32 lbl_1_bss_E2C;
s32 lbl_1_bss_E28;
// DATA
char* lbl_1_data_848[] = {
"iwa_s1", "iwa_s2", "iwa_s3", "iwa_s4", "iwa_s5",
"iwa_s6", "iwa_s7", "iwa_s8", "iwa_s9",
"iwa_s10", "iwa_s11", "iwa_s12", "iwa_s13",
"iwa_s14", "iwa_s15", "iwa_s16", "iwa_s17",
"iwa_s18", "iwa_s19", "iwa_s20", "iwa_s21",
"iwa_s22", "iwa_s23", "iwa_s24", "iwa_s25",
"iwa_s26", "iwa_s27", "iwa_s28", "iwa_s29",
"iwa_s30", "iwa_s31", "iwa_s32"
};
char *lbl_1_data_848[] = { "iwa_s1", "iwa_s2", "iwa_s3", "iwa_s4", "iwa_s5", "iwa_s6", "iwa_s7", "iwa_s8", "iwa_s9", "iwa_s10", "iwa_s11", "iwa_s12",
"iwa_s13", "iwa_s14", "iwa_s15", "iwa_s16", "iwa_s17", "iwa_s18", "iwa_s19", "iwa_s20", "iwa_s21", "iwa_s22", "iwa_s23", "iwa_s24", "iwa_s25",
"iwa_s26", "iwa_s27", "iwa_s28", "iwa_s29", "iwa_s30", "iwa_s31", "iwa_s32" };
// PROTO
void fn_1_B54C(omObjData*);
void fn_1_BF20(omObjData*);
void fn_1_B54C(omObjData *);
void fn_1_BF20(omObjData *);
void fn_1_CAB0(f32);
void fn_1_C764(ModelData* model, ParticleData* particle, Mtx matrix);
void fn_1_C8E8(ModelData* model, ParticleData* particle, Mtx matrix);
void fn_1_D3FC(ModelData* model, ParticleData* particle, Mtx matrix);
void fn_1_D57C(Vec*, f32);
void fn_1_E034(Mtx, Vec*);
void fn_1_C764(ModelData *model, ParticleData *particle, Mtx matrix);
void fn_1_C8E8(ModelData *model, ParticleData *particle, Mtx matrix);
void fn_1_D3FC(ModelData *model, ParticleData *particle, Mtx matrix);
void fn_1_D57C(Vec *, f32);
void fn_1_E034(Mtx, Vec *);
void fn_1_B4D8(Process* arg0) {
omObjData* var_r31;
void fn_1_B4D8(Process *arg0)
{
omObjData *var_r31;
lbl_1_bss_E30 = 0;
var_r31 = lbl_1_bss_108C[0] = omAddObjEx(arg0, 0x20, 8, 0, -1, fn_1_B54C);
var_r31->work[0] = 0;
}
void fn_1_B548(void) {}
void fn_1_B548(void) { }
void fn_1_B54C(omObjData* arg0) {
void fn_1_B54C(omObjData *arg0)
{
Vec sp20;
Vec sp14;
Vec sp8;
s32 var_r30;
s32 var_r29;
HsfObject* var_r26;
HsfObject *var_r26;
s32 var_r27;
M438MapStruct2* var_r28;
HsfanimStruct01* var_r25;
M438MapStruct* var_r24;
M438MapStruct3* temp_r23;
M438MapStruct2 *var_r28;
HsfanimStruct01 *var_r25;
M438MapStruct *var_r24;
M438MapStruct3 *temp_r23;
arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x108C, 0x10000000);
temp_r23 = arg0->data;
@ -116,29 +112,29 @@ void fn_1_B54C(omObjData* arg0) {
var_r29 = Hu3DTexScrollCreate(arg0->model[1], "lafall");
Hu3DTexScrollPosMoveSet(var_r29, 0.0f, -(1.0f / 60.0f), 0.0f);
var_r29 = 0;
var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x45000C), 0x32);
arg0->model[3] = var_r27;
Hu3DModelLayerSet(var_r27, 3);
Hu3DParticleHookSet(var_r27, fn_1_C764);
for (var_r30 = 0; var_r30 < 0x32; var_r30++, var_r29++) {
lbl_1_bss_E34[var_r29] = &((ParticleData*)(Hu3DData[var_r27].unk_120))->unk_48[var_r30];
lbl_1_bss_E34[var_r29] = &((ParticleData *)(Hu3DData[var_r27].unk_120))->unk_48[var_r30];
}
var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x45000D), 0x32);
arg0->model[4] = var_r27;
Hu3DModelLayerSet(var_r27, 3);
Hu3DParticleHookSet(var_r27, fn_1_C764);
for (var_r30 = 0; var_r30 < 0x32; var_r30++, var_r29++) {
lbl_1_bss_E34[var_r29] = &((ParticleData*)(Hu3DData[var_r27].unk_120))->unk_48[var_r30];
lbl_1_bss_E34[var_r29] = &((ParticleData *)(Hu3DData[var_r27].unk_120))->unk_48[var_r30];
}
var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x45000E), 0x32);
arg0->model[5] = var_r27;
Hu3DModelLayerSet(var_r27, 3);
Hu3DParticleHookSet(var_r27, fn_1_C764);
for (var_r30 = 0; var_r30 < 0x32; var_r30++, var_r29++) {
lbl_1_bss_E34[var_r29] = &((ParticleData*)(Hu3DData[var_r27].unk_120))->unk_48[var_r30];
lbl_1_bss_E34[var_r29] = &((ParticleData *)(Hu3DData[var_r27].unk_120))->unk_48[var_r30];
}
for (var_r30 = 0; var_r30 < 0x95; var_r30++) {
for (var_r29 = 1; var_r29 < 0x96; var_r29++) {
@ -155,24 +151,24 @@ void fn_1_B54C(omObjData* arg0) {
lbl_1_bss_E34[var_r30]->unk40.a = 0;
lbl_1_bss_E34[var_r30]->unk00 = 0;
}
var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x45000F), 0x32);
arg0->model[6] = var_r27;
Hu3DModelLayerSet(var_r27, 3);
Hu3DParticleHookSet(var_r27, fn_1_C8E8);
var_r25 = &((ParticleData*)(Hu3DData[var_r27].unk_120))->unk_48[0];
var_r25 = &((ParticleData *)(Hu3DData[var_r27].unk_120))->unk_48[0];
for (var_r30 = 0; var_r30 < 0x32; var_r30++, var_r25++) {
var_r25->unk2C = 0.0f;
var_r25->unk40.a = 0;
var_r25->unk00 = 0;
}
var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x450010), 0x1F4);
arg0->model[7] = var_r27;
Hu3DModelLayerSet(var_r27, 2);
Hu3DParticleBlendModeSet(var_r27, 1);
Hu3DParticleHookSet(var_r27, fn_1_D3FC);
var_r25 = &((ParticleData*)(Hu3DData[var_r27].unk_120))->unk_48[0];
var_r25 = &((ParticleData *)(Hu3DData[var_r27].unk_120))->unk_48[0];
for (var_r30 = 0; var_r30 < 0x1F4; var_r30++, var_r25++) {
var_r25->unk2C = 0.0f;
var_r25->unk40.a = 0;
@ -191,27 +187,27 @@ void fn_1_B54C(omObjData* arg0) {
sp8.x = sp8.y = sp8.z = 100000.0f;
for (var_r29 = 0; var_r29 < var_r26->data.vertex->count; var_r29++) {
if (((Vec*)var_r26->data.vertex->data)[var_r29].x > sp14.x) {
sp14.x = ((Vec*)var_r26->data.vertex->data)[var_r29].x;
if (((Vec *)var_r26->data.vertex->data)[var_r29].x > sp14.x) {
sp14.x = ((Vec *)var_r26->data.vertex->data)[var_r29].x;
}
if (((Vec*)var_r26->data.vertex->data)[var_r29].y > sp14.y) {
sp14.y = ((Vec*)var_r26->data.vertex->data)[var_r29].y;
if (((Vec *)var_r26->data.vertex->data)[var_r29].y > sp14.y) {
sp14.y = ((Vec *)var_r26->data.vertex->data)[var_r29].y;
}
if (((Vec*)var_r26->data.vertex->data)[var_r29].z > sp14.z) {
sp14.z = ((Vec*)var_r26->data.vertex->data)[var_r29].z;
if (((Vec *)var_r26->data.vertex->data)[var_r29].z > sp14.z) {
sp14.z = ((Vec *)var_r26->data.vertex->data)[var_r29].z;
}
if (((Vec*)var_r26->data.vertex->data)[var_r29].x < sp8.x) {
sp8.x = ((Vec*)var_r26->data.vertex->data)[var_r29].x;
if (((Vec *)var_r26->data.vertex->data)[var_r29].x < sp8.x) {
sp8.x = ((Vec *)var_r26->data.vertex->data)[var_r29].x;
}
if (((Vec*)var_r26->data.vertex->data)[var_r29].y < sp8.y) {
sp8.y = ((Vec*)var_r26->data.vertex->data)[var_r29].y;
if (((Vec *)var_r26->data.vertex->data)[var_r29].y < sp8.y) {
sp8.y = ((Vec *)var_r26->data.vertex->data)[var_r29].y;
}
if (((Vec*)var_r26->data.vertex->data)[var_r29].z < sp8.z) {
sp8.z = ((Vec*)var_r26->data.vertex->data)[var_r29].z;
if (((Vec *)var_r26->data.vertex->data)[var_r29].z < sp8.z) {
sp8.z = ((Vec *)var_r26->data.vertex->data)[var_r29].z;
}
}
PSVECAdd(&sp14, &sp8, &sp20);
PSVECScale(&sp20, &sp20, 0.5f);
VECAdd(&sp14, &sp8, &sp20);
VECScale(&sp20, &sp20, 0.5f);
var_r28->unk24 = sp20;
var_r28->unk30 = var_r28->unk24;
var_r28->unk8 = (360.0 + atan2d(sp20.x, sp20.z));
@ -241,7 +237,7 @@ Vec lbl_1_data_8D8[4][2] = {
{ -867.0f, -80.0f, -485.0f },
},
{
{ -917.0f, -80.0f, -857.0f },
{ -917.0f, -80.0f, -857.0f },
{ -817.0f, -80.0f, -1030.0f },
},
{
@ -249,12 +245,13 @@ Vec lbl_1_data_8D8[4][2] = {
{ 867.0f, -80.0f, -485.0f },
},
{
{ 917.0f, -80.0f, -857.0f },
{ 917.0f, -80.0f, -857.0f },
{ 817.0f, -80.0f, -1030.0f },
},
};
void fn_1_BF20(omObjData* arg0) {
void fn_1_BF20(omObjData *arg0)
{
Mtx sp5C;
Mtx sp2C;
Vec sp20;
@ -264,18 +261,18 @@ void fn_1_BF20(omObjData* arg0) {
f32 temp_f30;
f32 temp_f31;
s32 var_r29;
M438MapStruct2* var_r31;
M438MapStruct* var_r30;
M438MapStruct3* temp_r28;
M438MapStruct2 *var_r31;
M438MapStruct *var_r30;
M438MapStruct3 *temp_r28;
temp_r28 = arg0->data;
temp_r28->unk0++;
var_r31 = &temp_r28->unk4;
for (var_r29 = 0; var_r29 < 0x20; var_r29++, var_r31++) {
if ((var_r31->unk0 == 0) && (var_r31->unk4 != 0)) {
temp_f29 = var_r31->unk30.y;
PSVECAdd(&var_r31->unk30, &var_r31->unk3C, &var_r31->unk30);
VECAdd(&var_r31->unk30, &var_r31->unk3C, &var_r31->unk30);
var_r31->unk3C.x *= 0.92f;
var_r31->unk3C.z *= 0.92f;
var_r31->unk3C.y += -0.27222225f;
@ -290,22 +287,22 @@ void fn_1_BF20(omObjData* arg0) {
sp14.x = sind(90.0f + var_r31->unk8);
sp14.z = cosd(90.0f + var_r31->unk8);
sp14.y = 0.0f;
PSMTXRotAxisRad(sp5C, &sp14, MTXDegToRad(var_r31->unkC));
MTXRotAxisRad(sp5C, &sp14, MTXDegToRad(var_r31->unkC));
sp14.x = sp14.z = 0.0f;
sp14.y = 1.0f;
PSMTXRotAxisRad(sp2C, &sp14, MTXDegToRad(var_r31->unk14));
PSMTXConcat(sp2C, sp5C, sp5C);
MTXRotAxisRad(sp2C, &sp14, MTXDegToRad(var_r31->unk14));
MTXConcat(sp2C, sp5C, sp5C);
sp14.x = sind(var_r31->unk8);
sp14.z = cosd(var_r31->unk8);
sp14.y = 0.0f;
PSMTXRotAxisRad(sp2C, &sp14, MTXDegToRad(var_r31->unk1C));
PSMTXConcat(sp2C, sp5C, sp5C);
MTXRotAxisRad(sp2C, &sp14, MTXDegToRad(var_r31->unk1C));
MTXConcat(sp2C, sp5C, sp5C);
fn_1_E034(sp5C, &sp20);
var_r31->unk48->unk_28.x = sp20.x;
var_r31->unk48->unk_28.y = sp20.y;
var_r31->unk48->unk_28.z = sp20.z;
PSMTXInverse(sp5C, sp5C);
PSMTXMultVec(sp5C, &var_r31->unk24, &sp8);
MTXInverse(sp5C, sp5C);
MTXMultVec(sp5C, &var_r31->unk24, &sp8);
var_r31->unk48->unk_1C.x = (var_r31->unk30.x - sp8.x);
var_r31->unk48->unk_1C.y = (var_r31->unk30.y - sp8.y);
var_r31->unk48->unk_1C.z = (var_r31->unk30.z - sp8.z);
@ -316,16 +313,18 @@ void fn_1_BF20(omObjData* arg0) {
}
if ((temp_r28->unk0 & 1) == 0) {
var_r30 = &temp_r28->unk984;
for (var_r29 = 0; var_r29 < 0x32; var_r29++, var_r30++) {
if (var_r30->unk0 != 0) continue;
if (var_r30->unk0 != 0)
continue;
var_r30->unk0 = 1;
var_r30->unk18 = frandmod(0x168);
if (frandmod(0x64) < 0x14) {
var_r30->unkC.x = (0.8f * (frandmod(0x7D0) - 0x3E8));
var_r30->unkC.y = -80.0f;
var_r30->unkC.z = ((-1.2f * frandmod(0x3E8)) - 1000.0f);
} else {
}
else {
temp_f31 = frandmod(0x168);
temp_f30 = 800.0f + (0.25f * frandmod(0x3E8));
var_r30->unkC.x = (temp_f30 * sind(temp_f31));
@ -353,13 +352,13 @@ void fn_1_BF20(omObjData* arg0) {
Hu3DModelScaleSet(var_r30->unk4, var_r30->unk1C, var_r30->unk1C, var_r30->unk1C);
}
}
for (var_r29 = 0; var_r29 < 4; var_r29++) {
PSVECSubtract(&lbl_1_data_8D8[var_r29][1], &lbl_1_data_8D8[var_r29][0], &sp14);
VECSubtract(&lbl_1_data_8D8[var_r29][1], &lbl_1_data_8D8[var_r29][0], &sp14);
temp_f31 = 0.001f * frandmod(0x3E8);
PSVECScale(&sp14, &sp14, temp_f31);
PSVECAdd(&lbl_1_data_8D8[var_r29][0], &sp14, &sp8);
PSVECScale(&sp8, &sp8, 0.98f);
VECScale(&sp14, &sp14, temp_f31);
VECAdd(&lbl_1_data_8D8[var_r29][0], &sp14, &sp8);
VECScale(&sp8, &sp8, 0.98f);
fn_1_D57C(&sp8, 0.03f);
}
if ((lbl_1_bss_E30 == 0) && (WipeStatGet() == 0)) {
@ -369,16 +368,17 @@ void fn_1_BF20(omObjData* arg0) {
}
}
void fn_1_C764(ModelData* model, ParticleData* particle, Mtx matrix) {
HsfanimStruct01* var_r31;
void fn_1_C764(ModelData *model, ParticleData *particle, Mtx matrix)
{
HsfanimStruct01 *var_r31;
s32 var_r29;
u16 temp_r0;
var_r31 = particle->unk_48;
for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) {
if (var_r31->unk00_s16 != 0) {
PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34);
VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34);
var_r31->unk08.x *= 0.95f;
var_r31->unk08.z *= 0.95f;
var_r31->unk08.y += -0.27222225f;
@ -395,20 +395,21 @@ void fn_1_C764(ModelData* model, ParticleData* particle, Mtx matrix) {
DCStoreRange(particle->unk_48, particle->unk_30 * 0x44);
}
void fn_1_C8E8(ModelData* model, ParticleData* particle, Mtx matrix) {
HsfanimStruct01* var_r31;
void fn_1_C8E8(ModelData *model, ParticleData *particle, Mtx matrix)
{
HsfanimStruct01 *var_r31;
s32 var_r29;
u16 temp_r0;
var_r31 = particle->unk_48;
for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) {
if (var_r31->unk00_s16 != 0) {
PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34);
VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34);
var_r31->unk08.x *= 0.92f;
var_r31->unk08.z *= 0.92f;
var_r31->unk2C += 5.0f;
var_r31->unk40.a *= 0.99f;
var_r31->unk40.a *= 0.99f;
if (var_r31->unk00_s16 < 24.0f) {
var_r31->unk40.a = 0.9f * var_r31->unk40.a;
}
@ -422,20 +423,21 @@ void fn_1_C8E8(ModelData* model, ParticleData* particle, Mtx matrix) {
DCStoreRange(particle->unk_48, particle->unk_30 * 0x44);
}
void fn_1_CAB0(f32 arg8) {
void fn_1_CAB0(f32 arg8)
{
Vec sp8;
f32 temp_f31;
f32 temp_f30;
f32 temp_f28;
f32 temp_f27;
HsfanimStruct01* var_r31;
HsfanimStruct01 *var_r31;
s32 var_r30;
u32 var_r29;
temp_f28 = 20.0f;
temp_f27 = 7.0f;
var_r29 = 0x19;
for (var_r30 = 0; var_r30 < 0x96; var_r30++) {
var_r31 = lbl_1_bss_E34[var_r30];
if (var_r31->unk00_s16 == 0) {
@ -445,12 +447,12 @@ void fn_1_CAB0(f32 arg8) {
sp8.x = sind(temp_f31);
sp8.y = 0.0f;
sp8.z = cosd(temp_f31);
temp_f31 = arg8 + (((0.002f * frandmod(0x3E8)) - 1.0f)) * temp_f27;
var_r31->unk34.x = 7.5 * sind(temp_f31) * 100.0;
var_r31->unk34.y = 0.2f * frandmod(0x3E8);
var_r31->unk34.z = 7.5 * cosd(temp_f31) * 100.0;
temp_f30 = 1.6666667f * (4.0f + (0.014f * frandmod(0x3E8)));
var_r31->unk08.x = sp8.x * temp_f30;
var_r31->unk08.z = sp8.z * temp_f30;
@ -462,10 +464,11 @@ void fn_1_CAB0(f32 arg8) {
var_r31->unk40.r = var_r31->unk40.g = var_r31->unk40.b = 0xFF;
var_r29--;
if (var_r29 < 1) break;
if (var_r29 < 1)
break;
}
}
var_r31 = ((ParticleData*)(Hu3DData[lbl_1_bss_108C[0]->model[6]].unk_120))->unk_48;
var_r31 = ((ParticleData *)(Hu3DData[lbl_1_bss_108C[0]->model[6]].unk_120))->unk_48;
var_r29 = 0xF;
for (var_r30 = 0; var_r30 < 0x32; var_r30++, var_r31++) {
if (var_r31->unk00_s16 == 0) {
@ -475,12 +478,12 @@ void fn_1_CAB0(f32 arg8) {
sp8.x = sind(temp_f31);
sp8.y = 0.0f;
sp8.z = cosd(temp_f31);
temp_f31 = arg8 + (((0.002f * frandmod(0x3E8)) - 1.0f)) * temp_f27;
var_r31->unk34.x = 7.5 * sind(temp_f31) * 100.0;
var_r31->unk34.y = 0.2f * frandmod(0x3E8);
var_r31->unk34.z = 7.5 * cosd(temp_f31) * 100.0;
temp_f30 = 1.6666667f * -(0.01f * frandmod(0x3E8));
var_r31->unk08.x = sp8.x * temp_f30;
var_r31->unk08.z = sp8.z * temp_f30;
@ -495,13 +498,15 @@ void fn_1_CAB0(f32 arg8) {
var_r31->unk40.b = (60.0f * temp_f31) + 54.0f;
var_r29--;
if (var_r29 < 1) break;
if (var_r29 < 1)
break;
}
}
}
void fn_1_D3FC(ModelData* model, ParticleData* particle, Mtx matrix) {
HsfanimStruct01* var_r31;
void fn_1_D3FC(ModelData *model, ParticleData *particle, Mtx matrix)
{
HsfanimStruct01 *var_r31;
s32 var_r29;
u16 temp_r0;
@ -509,7 +514,7 @@ void fn_1_D3FC(ModelData* model, ParticleData* particle, Mtx matrix) {
var_r31 = particle->unk_48;
for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) {
if (var_r31->unk00_s16 != 0) {
PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34);
VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34);
var_r31->unk08.y += -0.27222225f;
if (var_r31->unk00_s16 < 12.0f) {
var_r31->unk40.a = (0.8f * var_r31->unk40.a);
@ -525,17 +530,18 @@ void fn_1_D3FC(ModelData* model, ParticleData* particle, Mtx matrix) {
DCStoreRange(particle->unk_48, particle->unk_30 * 0x44);
}
void fn_1_D57C(Vec* arg0, f32 arg1) {
void fn_1_D57C(Vec *arg0, f32 arg1)
{
Vec sp8;
f32 temp_f31;
f32 temp_f29;
HsfanimStruct01* var_r31;
HsfanimStruct01 *var_r31;
s32 var_r30;
u32 var_r29;
var_r31 = ((ParticleData*)(Hu3DData[lbl_1_bss_108C[0]->model[7]].unk_120))->unk_48;
var_r31 = ((ParticleData *)(Hu3DData[lbl_1_bss_108C[0]->model[7]].unk_120))->unk_48;
var_r29 = (u32)(3.0f + (15.0f * arg1));
for (var_r30 = 0; var_r30 < 0x1F4; var_r30++, var_r31++) {
if (var_r31->unk00_s16 == 0) {
var_r31->unk00_s16 = 60.0f * (0.3f + (0.0003f * frandmod(0x3E8)));
@ -557,28 +563,30 @@ void fn_1_D57C(Vec* arg0, f32 arg1) {
var_r31->unk40.a = (frandmod(0x46) + 0x64);
temp_f31 = 0.001f * frandmod(0x3E8);
var_r31->unk40.r = 177.0f + (78.0f * temp_f31);
var_r31->unk40.g = 60.0f + (129.0f * temp_f31);
var_r31->unk40.b = 30.0f + (122.0f * temp_f31);
var_r31->unk40.r = 177.0f + (78.0f * temp_f31);
var_r31->unk40.g = 60.0f + (129.0f * temp_f31);
var_r31->unk40.b = 30.0f + (122.0f * temp_f31);
var_r29--;
if (var_r29 < 1) break;
if (var_r29 < 1)
break;
}
}
}
s32 fn_1_DA64(f32 arg8) {
M438MapStruct3* var_r28;
s32 fn_1_DA64(f32 arg8)
{
M438MapStruct3 *var_r28;
s32 var_r29;
s32 var_r30;
M438MapStruct2* var_r31;
M438MapStruct2 *var_r31;
float var_f31;
float var_f29;
var_r28 = lbl_1_bss_108C[0]->data;
var_r29 = 0;
var_r31 = &var_r28->unk4;
for (var_r30 = 0; var_r30 < 0x20; var_r30++, var_r31++) {
var_f31 = fn_1_E5A4(var_r31->unk8, arg8);
if ((fabs(var_f31) < 12.0) && (var_r31->unk0 != 0)) {
@ -608,17 +616,18 @@ s32 fn_1_DA64(f32 arg8) {
return var_r29;
}
s32 fn_1_DEA0(f32 arg8) {
M438MapStruct3* var_r28;
s32 fn_1_DEA0(f32 arg8)
{
M438MapStruct3 *var_r28;
s32 var_r29;
s32 var_r30;
M438MapStruct2* var_r31;
M438MapStruct2 *var_r31;
f32 var_f31;
var_r28 = lbl_1_bss_108C[0]->data;
var_r29 = 0;
var_r31 = &var_r28->unk4;
for (var_r30 = 0; var_r30 < 0x20; var_r30++, var_r31++) {
var_f31 = fn_1_E5A4(var_r31->unk8, arg8);
if ((fabs(var_f31) < 8.0) && (var_r31->unk0 != 0)) {
@ -629,7 +638,8 @@ s32 fn_1_DEA0(f32 arg8) {
return var_r29;
}
f32 fn_1_DF70(f32 arg8, f32 arg9) {
f32 fn_1_DF70(f32 arg8, f32 arg9)
{
f32 temp_f30;
f32 var_f31;
@ -637,13 +647,15 @@ f32 fn_1_DF70(f32 arg8, f32 arg9) {
var_f31 = 180.0 * (atan2f(arg9, arg8) / M_PI);
if (var_f31 < 0.0f) {
var_f31 += temp_f30;
} else if (var_f31 >= temp_f30) {
}
else if (var_f31 >= temp_f30) {
var_f31 -= temp_f30;
}
return var_f31;
}
void fn_1_E034(Mtx arg0, Vec* arg1) {
void fn_1_E034(Mtx arg0, Vec *arg1)
{
f32 var_f26;
f32 temp_f25;
@ -659,7 +671,8 @@ void fn_1_E034(Mtx arg0, Vec* arg1) {
arg1->y = fn_1_DF70(var_f26, temp_f25);
}
f32 fn_1_E488(f32 arg8, f32 arg9, f32 argA) {
f32 fn_1_E488(f32 arg8, f32 arg9, f32 argA)
{
f32 var_f31;
var_f31 = fmodf((arg9 - arg8), 360.0);
@ -676,7 +689,8 @@ f32 fn_1_E488(f32 arg8, f32 arg9, f32 argA) {
return var_f31;
}
f32 fn_1_E5A4(f32 arg8, f32 arg9) {
f32 fn_1_E5A4(f32 arg8, f32 arg9)
{
f32 var_f31;
var_f31 = fmodf((arg9 - arg8), 360.0);

View file

@ -1276,7 +1276,7 @@ void fn_1_57B4(unkStruct6 *arg0)
var_r31->unkB8.z *= 0.5f;
}
}
PSMTXScale(sp14, var_r31->unk88.x, var_r31->unk88.y, var_r31->unk88.z);
MTXScale(sp14, var_r31->unk88.x, var_r31->unk88.y, var_r31->unk88.z);
mtxTransCat(sp14, -var_r31->unk7C.x, -var_r31->unk7C.y, -var_r31->unk7C.z);
mtxRotCat(sp14, var_r31->unkA0.x, var_r31->unkA0.y, var_r31->unkA0.z);
mtxTransCat(sp14, var_r31->unk94.x + var_r31->unk7C.x, var_r31->unk94.y + var_r31->unk7C.y, var_r31->unk94.z + var_r31->unk7C.z);
@ -1288,14 +1288,14 @@ void fn_1_57B4(unkStruct6 *arg0)
else {
var_r29 = var_r31->unk18[var_r28];
}
PSMTXMultVec(sp14, &temp_r26[var_r29], &sp8);
MTXMultVec(sp14, &temp_r26[var_r29], &sp8);
arg0->unkC[var_r29].x = sp8.x;
arg0->unkC[var_r29].y = sp8.y;
arg0->unkC[var_r29].z = sp8.z;
}
if ((arg0->unk2 & 2) != 0) {
var_r29 = var_r31->unk1E;
PSMTXMultVec(sp14, &temp_r26[var_r29], &sp8);
MTXMultVec(sp14, &temp_r26[var_r29], &sp8);
arg0->unkC[var_r29].x = sp8.x;
arg0->unkC[var_r29].y = sp8.y;
arg0->unkC[var_r29].z = sp8.z;
@ -1359,7 +1359,7 @@ void fn_1_5C2C(s16 arg0, HsfObject *arg1, unkStruct6 *arg2, u16 arg3)
var_r22 = NULL;
}
var_r25 = &arg1->data.base;
PSMTXScale(sp68, var_r25->scale.x, var_r25->scale.y, var_r25->scale.z);
MTXScale(sp68, var_r25->scale.x, var_r25->scale.y, var_r25->scale.z);
mtxRotCat(sp68, var_r25->rot.x, var_r25->rot.y, var_r25->rot.z);
mtxTransCat(sp68, var_r25->pos.x, var_r25->pos.y, var_r25->pos.z);
@ -1375,7 +1375,7 @@ void fn_1_5C2C(s16 arg0, HsfObject *arg1, unkStruct6 *arg2, u16 arg3)
var_r27 = arg2->unk24[var_r30].unk18[var_r28];
var_r23 = arg2->unk24[var_r30].unk0[var_r28].unk0;
}
PSMTXMultVec(sp68, &((Vec *)(arg1->data.vertex->data))[var_r23], &sp38);
MTXMultVec(sp68, &((Vec *)(arg1->data.vertex->data))[var_r23], &sp38);
arg2->unkC[var_r27] = sp38;
sp44[var_r28] = arg2->unkC[var_r27];
arg2->unk14[var_r27] = arg2->unk18[var_r23];
@ -1860,7 +1860,7 @@ void fn_1_806C(ModelData *arg0, Mtx arg1)
temp_r27(temp_r31);
}
GXLoadPosMtxImm(arg1, 0);
PSMTXInvXpose(arg1, sp14);
MTXInvXpose(arg1, sp14);
GXLoadNrmMtxImm(sp14, 0);
fn_1_8AC4(arg1);
sp10.r = (temp_r31->unk28->unkB[0] * arg0->unk_58.x);
@ -1974,7 +1974,7 @@ void fn_1_8470(unkStruct12 *arg0, unkStruct13 *arg1)
if (var_f31 < 0.1) {
var_f31 = 0.1f;
}
PSMTXCopy(lbl_1_bss_30, sp10);
MTXCopy(lbl_1_bss_30, sp10);
mtxScaleCat(sp10, var_f31, var_f31, var_f31);
GXLoadTexMtxImm(sp10, 0x24, GX_MTX2x4);
var_r31++;
@ -2050,31 +2050,31 @@ void fn_1_8AC4(Mtx arg0)
var_r29 = &Hu3DGlobalLight[0];
sp34 = var_r29->unk_28;
if ((var_r29->unk_00 & 0x8000) != 0) {
PSMTXMultVecSR(Hu3DCameraMtx, &sp34, &sp34);
MTXMultVecSR(Hu3DCameraMtx, &sp34, &sp34);
}
var_f30 = VECDotProduct(&sp34, &sp10);
var_f30 *= 10000.0f;
OSf32tos16(&var_f30, &temp_r31);
if (temp_r31 == -0x2710) {
PSMTXScale(lbl_1_bss_30, 0.0f, 0.0f, 0.0f);
MTXScale(lbl_1_bss_30, 0.0f, 0.0f, 0.0f);
return;
}
C_VECHalfAngle(&sp34, &sp10, &sp28);
sp28.x = -sp28.x;
sp28.y = -sp28.y;
sp28.z = -sp28.z;
PSMTXInvXpose(arg0, sp70);
MTXInvXpose(arg0, sp70);
if (temp_r31 == 0x2710) {
PSMTXIdentity(sp40);
MTXIdentity(sp40);
}
else {
VECCrossProduct(&sp28, &sp10, &sp1C);
var_f29 = acosf(VECDotProduct(&sp10, &sp28));
PSMTXRotAxisRad(sp40, &sp1C, var_f29);
MTXRotAxisRad(sp40, &sp1C, var_f29);
}
PSMTXConcat(sp40, sp70, spA0);
PSMTXTrans(sp40, 0.5f, 0.5f, 0.0f);
PSMTXConcat(sp40, spA0, lbl_1_bss_30);
MTXConcat(sp40, sp70, spA0);
MTXTrans(sp40, 0.5f, 0.5f, 0.0f);
MTXConcat(sp40, spA0, lbl_1_bss_30);
}
void fn_1_8D1C(void)
@ -2097,7 +2097,7 @@ void fn_1_8D1C(void)
if (var_r30 == 5) {
C_MTXOrtho(sp60, 0.0f, 480.0f, 0.0f, 640.0f, 0.0f, 10.0f);
GXSetProjection(sp60, GX_ORTHOGRAPHIC);
PSMTXIdentity(sp30);
MTXIdentity(sp30);
GXLoadPosMtxImm(sp30, 0);
GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
@ -2491,9 +2491,9 @@ void fn_1_9C04(ModelData *arg0, Mtx arg1)
}
else {
fn_1_A328(&temp_r30->unk2C, &sp38, &var_r29->unk48, 4);
PSMTXRotRad(spC8, 0x5A, 0.017453292f * var_r29->unk44);
PSMTXConcat(sp128, spC8, sp98);
PSMTXMultVecArray(sp98, &sp38, &sp8, 4);
MTXRotRad(spC8, 0x5A, 0.017453292f * var_r29->unk44);
MTXConcat(sp128, spC8, sp98);
MTXMultVecArray(sp98, &sp38, &sp8, 4);
VECAdd(&sp8, &var_r29->unk54, var_r31++);
VECAdd(&sp14, &var_r29->unk54, var_r31++);
VECAdd(&sp20, &var_r29->unk54, var_r31++);

View file

@ -10,12 +10,10 @@
#include "string.h"
#include "version.h"
#ifdef __MWERKS__
#include "game/audio.h"
#endif
// bss
omObjData *lbl_1_bss_C0[4];
s16 lbl_1_bss_B8[4];
@ -1025,7 +1023,7 @@ u8 fn_1_E8AC(omObjData *arg0, unkObjStruct *arg1)
arg1->unk24.z = (1050.0 * sind(var_f31));
}
arg1->unk30.y = 0.0f;
PSMTXRotRad(temp_r29->unk_F0, 0x59, 0.017453292f * arg1->unk68);
MTXRotRad(temp_r29->unk_F0, 0x59, 0.017453292f * arg1->unk68);
arg1->unk60++;
if (lbl_1_data_1D8 == 0) {
fn_1_18E0();
@ -1044,7 +1042,7 @@ u8 fn_1_E8AC(omObjData *arg0, unkObjStruct *arg1)
arg1->unk18.y = fn_1_93D0(lbl_1_bss_78.y, 1400.0f + lbl_1_bss_78.y, 0.0f, var_f31);
arg1->unk18.z = lbl_1_bss_78.z + (var_f31 * (arg1->unk24.z - lbl_1_bss_78.x));
arg1->unk30.x = 180.0f * var_f31;
PSMTXRotRad(temp_r29->unk_F0, 0x59, 0.017453292f * arg1->unk68);
MTXRotRad(temp_r29->unk_F0, 0x59, 0.017453292f * arg1->unk68);
break;
case 3:
fn_1_F4D4(arg1, 15, 8);

View file

@ -403,9 +403,9 @@ void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3)
var_r30 = &Hu3DData[arg0];
Hu3DModelObjMtxGet(arg0, arg1, spC);
PSMTXConcat(var_r30->unk_F0, spC, spC);
MTXConcat(var_r30->unk_F0, spC, spC);
if (NULL != arg3) {
PSMTXCopy(spC, arg3);
MTXCopy(spC, arg3);
}
arg2->x = spC[0][3];
arg2->y = spC[1][3];

View file

@ -1489,7 +1489,7 @@ void fn_1_485C(ModelData *model, Mtx mtx)
var_r29 = Hu3DCamera;
C_MTXOrtho(sp100, 0.0f, 480.0f, 0.0f, 640.0f, 0.0f, 100.0f);
GXSetProjection(sp100, GX_ORTHOGRAPHIC);
PSMTXIdentity(spD0);
MTXIdentity(spD0);
GXLoadPosMtxImm(spD0, 0);
GXSetNumChans(1);
GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE);
@ -1529,7 +1529,7 @@ void fn_1_485C(ModelData *model, Mtx mtx)
GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT);
C_MTXPerspective(sp40, var_r29->fov, var_r29->aspect, var_r29->near, var_r29->far);
GXSetProjection(sp40, GX_PERSPECTIVE);
PSMTXInverse(mtx, spA0);
MTXInverse(mtx, spA0);
spA0[0][3] = spA0[1][3] = spA0[2][3] = 0.0f;
PSMTXReorder(spA0, sp70);
PSMTXROMultVecArray(sp70, &lbl_1_data_1C0[0], &sp10, 4);
@ -1585,7 +1585,7 @@ void fn_1_54C8(ModelData *model, Mtx mtx)
fn_1_8520(&lbl_1_bss_C05C[1], 0);
C_MTXOrtho(sp5C, 0.0f, 480.0f, 0.0f, 640.0f, 0.0f, 100.0f);
GXSetProjection(sp5C, GX_ORTHOGRAPHIC);
PSMTXIdentity(sp2C);
MTXIdentity(sp2C);
GXLoadPosMtxImm(sp2C, 0);
GXSetZMode(GX_FALSE, GX_LEQUAL, GX_FALSE);
GXSetNumTexGens(2);
@ -1734,9 +1734,9 @@ void fn_1_5EDC(ModelData *model, float (*mtx)[4])
s32 var_r30;
var_r31 = model->unk_120;
PSMTXInverse(mtx, spC);
MTXInverse(mtx, spC);
spC[0][3] = spC[1][3] = spC[2][3] = 0.0f;
PSMTXConcat(mtx, &spC[0], mtx);
MTXConcat(mtx, &spC[0], mtx);
GXLoadPosMtxImm(mtx, 0);
GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE);
GXSetNumTexGens(1);

View file

@ -495,15 +495,15 @@ void fn_1_1D8C(omObjData *object)
lbl_1_bss_4 = HuAudSStreamPlay(0xB);
}
var_f31 = (float)object->work[0] / lbl_1_data_F0[object->work[1]];
PSVECSubtract(&lbl_1_data_60[object->work[1] + 1], &lbl_1_data_60[object->work[1]], &sp8);
PSVECScale(&sp8, &sp8, var_f31);
PSVECAdd(&lbl_1_data_60[object->work[1]], &sp8, &sp8);
VECSubtract(&lbl_1_data_60[object->work[1] + 1], &lbl_1_data_60[object->work[1]], &sp8);
VECScale(&sp8, &sp8, var_f31);
VECAdd(&lbl_1_data_60[object->work[1]], &sp8, &sp8);
Center.x = sp8.x;
Center.y = sp8.y;
Center.z = sp8.z;
PSVECSubtract(&lbl_1_data_A8[object->work[1] + 1], &lbl_1_data_A8[object->work[1]], &sp8);
PSVECScale(&sp8, &sp8, var_f31);
PSVECAdd(&lbl_1_data_A8[object->work[1]], &sp8, &sp8);
VECSubtract(&lbl_1_data_A8[object->work[1] + 1], &lbl_1_data_A8[object->work[1]], &sp8);
VECScale(&sp8, &sp8, var_f31);
VECAdd(&lbl_1_data_A8[object->work[1]], &sp8, &sp8);
CRot.x = sp8.x;
CRot.y = sp8.y;
CRot.z = 0.0f;
@ -922,7 +922,7 @@ void fn_1_3D78(ModelData *arg0, Mtx arg1)
{
Mtx spC;
PSMTXIdentity(spC);
MTXIdentity(spC);
GXLoadPosMtxImm(spC, 0);
GXSetNumChans(1);
GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE);
@ -1094,13 +1094,13 @@ void fn_1_4444(Vec *arg0, Vec *arg1)
Vec sp10;
float var_f30;
PSVECSubtract(arg1, arg0, &sp10);
VECSubtract(arg1, arg0, &sp10);
Center = *arg1;
var_f30 = (sp10.x * sp10.x) + (sp10.z * sp10.z);
CRot.x = atan2d(sp10.y, sqrtf(var_f30));
CRot.y = atan2d(-sp10.x, -sp10.z);
CRot.z = 0.0f;
CZoom = PSVECMag(&sp10);
CZoom = VECMag(&sp10);
}
void fn_1_464C(float arg8, float arg9, float argA, float argB, float argC, float argD)
@ -1116,13 +1116,13 @@ void fn_1_464C(float arg8, float arg9, float argA, float argB, float argC, float
sp30.x = argB;
sp30.y = argC;
sp30.z = argD;
PSVECSubtract(&sp30, &sp3C, &sp24);
VECSubtract(&sp30, &sp3C, &sp24);
Center = sp30;
var_f30 = (sp24.x * sp24.x) + (sp24.z * sp24.z);
CRot.x = atan2d(sp24.y, sqrtf(var_f30));
CRot.y = atan2d(-sp24.x, -sp24.z);
CRot.z = 0.0f;
CZoom = PSVECMag(&sp24);
CZoom = VECMag(&sp24);
}
float fn_1_488C(float arg8, float arg9, float argA)

View file

@ -132,11 +132,11 @@ void fn_1_4D14(omObjData *object)
var_r30 = fn_1_40AC(lbl_1_data_240[var_r29 + 1]);
mtxRot(sp5C, var_r30->unk_28.x, var_r30->unk_28.y, 0.0f);
sp8.z = var_r30->unk_34;
PSMTXMultVec(sp5C, &sp8, &sp14);
PSVECAdd(&var_r30->unk_1C, &sp14, &sp20);
MTXMultVec(sp5C, &sp8, &sp14);
VECAdd(&var_r30->unk_1C, &sp14, &sp20);
sp2C[var_r29].y += var_f31;
PSMTXMultVec(sp5C, &sp2C[var_r29], &sp14);
PSVECAdd(&sp20, &sp14, &sp20);
MTXMultVec(sp5C, &sp2C[var_r29], &sp14);
VECAdd(&sp20, &sp14, &sp20);
Hu3DModelPosSetV(object->model[var_r29 + 9], &sp20);
Hu3DModelRotSet(object->model[var_r29 + 9], var_r30->unk_28.x, var_r30->unk_28.y, 0.0f);
Hu3DModelScaleSet(object->model[var_r29 + 9], 0.15f, 0.15f, 0.15f);

View file

@ -382,7 +382,7 @@ void fn_1_5BD4(omObjData *object)
break;
}
fn_1_7340(object);
PSVECAdd(&temp_r31->unkC4, &temp_r31->unkD0, &temp_r31->unkC4);
VECAdd(&temp_r31->unkC4, &temp_r31->unkD0, &temp_r31->unkC4);
fn_1_7130(object);
fn_1_69B4(object);
@ -428,11 +428,11 @@ void fn_1_6458(omObjData *object)
var_r29 = 1;
}
fn_1_7340(object);
PSVECAdd(&temp_r31->unkC4, &temp_r31->unkD0, &temp_r31->unkC4);
VECAdd(&temp_r31->unkC4, &temp_r31->unkD0, &temp_r31->unkC4);
fn_1_7130(object);
fn_1_69B4(object);
temp_r31->unk100->unk_1C = temp_r31->unkDC;
PSVECAdd(&temp_r31->unk100->unk_1C, &temp_r31->unk100->unk_54, &temp_r31->unk100->unk_1C);
VECAdd(&temp_r31->unk100->unk_1C, &temp_r31->unk100->unk_54, &temp_r31->unk100->unk_1C);
if ((fn_1_42E4() == 3) && (var_r29 != 0)) {
fn_1_43AC(object->work[0]);
temp_r31->unk108 = 0;
@ -451,11 +451,11 @@ void fn_1_6674(omObjData *object)
temp_r31->unk14 = 0;
temp_r31->unk18 = 0.0f;
fn_1_7340(object);
PSVECAdd(&temp_r31->unkC4, &temp_r31->unkD0, &temp_r31->unkC4);
VECAdd(&temp_r31->unkC4, &temp_r31->unkD0, &temp_r31->unkC4);
fn_1_7130(object);
fn_1_69B4(object);
temp_r31->unk100->unk_1C = temp_r31->unkDC;
PSVECAdd(&temp_r31->unk100->unk_1C, &temp_r31->unk100->unk_54, &temp_r31->unk100->unk_1C);
VECAdd(&temp_r31->unk100->unk_1C, &temp_r31->unk100->unk_54, &temp_r31->unk100->unk_1C);
if (fn_1_42E4() == 5) {
temp_r31->unk1C = 0;
temp_r31->unk34 = 0;
@ -468,7 +468,7 @@ void fn_1_6750(omObjData *object)
M443DllWorkStruct *temp_r31;
temp_r31 = object->data;
PSVECAdd(&temp_r31->unkC4, &temp_r31->unkD0, &temp_r31->unkC4);
VECAdd(&temp_r31->unkC4, &temp_r31->unkD0, &temp_r31->unkC4);
fn_1_7130(object);
fn_1_69B4(object);
switch (temp_r31->unk34) {
@ -673,9 +673,9 @@ void fn_1_7130(omObjData *object)
for (var_r28 = 0; var_r28 < 4; var_r28++) {
if (var_r29 != var_r28) {
temp_r30 = lbl_1_bss_90[var_r28]->data;
PSVECSubtract(&temp_r31->unkC4, &temp_r30->unkC4, &sp8);
VECSubtract(&temp_r31->unkC4, &temp_r30->unkC4, &sp8);
sp8.y = 0.0f;
var_f31 = PSVECMag(&sp8);
var_f31 = VECMag(&sp8);
if (var_f31 < (temp_r31->unkC0 + temp_r30->unkC0)) {
if (var_f31 > 0.0f) {
var_f31 = 0.5f * ((temp_r31->unkC0 + temp_r30->unkC0) - var_f31);
@ -685,10 +685,10 @@ void fn_1_7130(omObjData *object)
sp8.x = (frandmod(0x3E8) - 0x1F4);
sp8.z = (frandmod(0x3E8) - 0x1F4);
}
PSVECNormalize(&sp8, &sp8);
PSVECScale(&sp8, &sp8, var_f31);
PSVECAdd(&temp_r31->unkC4, &sp8, &temp_r31->unkC4);
PSVECSubtract(&temp_r30->unkC4, &sp8, &temp_r30->unkC4);
VECNormalize(&sp8, &sp8);
VECScale(&sp8, &sp8, var_f31);
VECAdd(&temp_r31->unkC4, &sp8, &temp_r31->unkC4);
VECSubtract(&temp_r30->unkC4, &sp8, &temp_r30->unkC4);
}
}
}
@ -1139,7 +1139,7 @@ void fn_1_8E34(s32 arg0)
for (var_r29 = 0; var_r29 < temp_r30->unk_30; var_r29++, var_r31++) {
if (var_r31->unk00_s16 != 0) {
PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34);
VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34);
var_r31->unk08.z -= 0.3f;
var_r31->unk2C += 2.0f;
var_r31->unk40.a *= 0.98f;

View file

@ -161,13 +161,13 @@ void fn_1_9374(UnkM447Struct_01 *arg0)
Mtx sp8;
temp_r30 = &Hu3DData[arg0->unk58[arg0->unk00]];
PSMTXIdentity(temp_r30->unk_F0);
PSMTXRotRad(sp8, 'x', MTXDegToRad(arg0->unk1C.x));
PSMTXConcat(temp_r30->unk_F0, sp8, temp_r30->unk_F0);
PSMTXRotRad(sp8, 'y', MTXDegToRad(arg0->unk1C.y));
PSMTXConcat(temp_r30->unk_F0, sp8, temp_r30->unk_F0);
PSMTXRotRad(sp8, 'z', MTXDegToRad(arg0->unk1C.z));
PSMTXConcat(temp_r30->unk_F0, sp8, temp_r30->unk_F0);
MTXIdentity(temp_r30->unk_F0);
MTXRotRad(sp8, 'x', MTXDegToRad(arg0->unk1C.x));
MTXConcat(temp_r30->unk_F0, sp8, temp_r30->unk_F0);
MTXRotRad(sp8, 'y', MTXDegToRad(arg0->unk1C.y));
MTXConcat(temp_r30->unk_F0, sp8, temp_r30->unk_F0);
MTXRotRad(sp8, 'z', MTXDegToRad(arg0->unk1C.z));
MTXConcat(temp_r30->unk_F0, sp8, temp_r30->unk_F0);
Hu3DModelPosSet(arg0->unk58[arg0->unk00], arg0->unk10.x, arg0->unk10.y, arg0->unk10.z);
Hu3DModelPosSet(arg0->unk58[20], arg0->unk10.x, arg0->unk10.y - 100.0f, arg0->unk10.z);
Hu3DModelPosSet(arg0->unk58[21], arg0->unk10.x, arg0->unk10.y, arg0->unk10.z + 120.0f * arg0->unk54);

View file

@ -201,7 +201,7 @@ void fn_1_4FC(ModelData *model, Mtx matrix)
GXSetViewport(0.0f, 0.0f, 640.0f, 480.0f, 0.0f, 1.0f);
C_MTXOrtho(sp98, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f);
GXSetProjection(sp98, GX_ORTHOGRAPHIC);
PSMTXIdentity(spC8);
MTXIdentity(spC8);
GXLoadPosMtxImm(spC8, GX_PNMTX0);
GXSetNumTevStages(1);
GXSetNumTexGens(1);
@ -454,8 +454,8 @@ void fn_1_1338(omObjData *arg0)
sp178 = lbl_1_rodata_100;
sp178.x = var_f20;
sp178.z = -sp118;
PSMTXRotRad(sp184, 'y', MTXDegToRad(CRot.y));
PSMTXMultVec(sp184, &sp178, &sp178);
MTXRotRad(sp184, 'y', MTXDegToRad(CRot.y));
MTXMultVec(sp184, &sp178, &sp178);
var_f20 = sp178.x;
sp118 = -sp178.z;
}

View file

@ -1288,19 +1288,19 @@ void fn_1_758(omObjData *var_r29)
sp124 = ((-90.175 <= lbl_1_bss_18) && (lbl_1_bss_18 <= -90.0f)) != 0
? -90.175
: ((-90.0f <= lbl_1_bss_18) && (lbl_1_bss_18 <= -89.825) ? -89.825 : lbl_1_bss_18);
PSMTXRotRad(sp304, 0x78, 0.017453292f * (10.0f * var_r31->unk_5C));
PSMTXRotRad(sp364, 0x7A, 0.017453292f * (10.0f * -var_r31->unk_58));
PSMTXConcat(sp364, sp304, sp364);
PSMTXRotRad(sp304, 0x79, 0.017453292f * sp124);
PSMTXRotRad(sp334, 0x78, 0.017453292f * (15.0f * var_r31->unk_5C));
PSMTXConcat(sp334, sp304, sp334);
PSMTXRotRad(sp304, 0x7A, 0.017453292f * (15.0f * -var_r31->unk_58));
PSMTXConcat(sp304, sp334, sp334);
MTXRotRad(sp304, 0x78, 0.017453292f * (10.0f * var_r31->unk_5C));
MTXRotRad(sp364, 0x7A, 0.017453292f * (10.0f * -var_r31->unk_58));
MTXConcat(sp364, sp304, sp364);
MTXRotRad(sp304, 0x79, 0.017453292f * sp124);
MTXRotRad(sp334, 0x78, 0.017453292f * (15.0f * var_r31->unk_5C));
MTXConcat(sp334, sp304, sp334);
MTXRotRad(sp304, 0x7A, 0.017453292f * (15.0f * -var_r31->unk_58));
MTXConcat(sp304, sp334, sp334);
Hu3DMtxRotGet(sp334, &sp2A8);
sp2B4.x = var_r31->unk_60[var_r30];
sp2B4.y = var_r31->unk_70[var_r30];
sp2B4.z = var_r31->unk_80[var_r30];
PSMTXMultVec(sp364, &sp2B4, &sp2B4);
MTXMultVec(sp364, &sp2B4, &sp2B4);
Hu3DModelPosSet(var_r29->model[var_r30 + 0xC], sp2D8.x + sp2B4.x, sp2D8.y + sp2B4.y, sp2D8.z + sp2B4.z);
Hu3DModelRotSet(var_r29->model[var_r30 + 0xC], 10.0f * var_r31->unk_5C, 0.0f, 10.0f * -var_r31->unk_58);
Hu3DModelRotSet(var_r29->model[var_r30 + 0xC], sp2A8.x, sp2A8.y, sp2A8.z);
@ -1716,7 +1716,7 @@ void fn_1_7F94(ModelData *model, ParticleData *particle, Mtx matrix)
var_r31->unk2C = 50.0f;
}
if (var_r31->unk00_s16 < 0xF0) {
PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34);
VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34);
var_r31->unk08.x *= 0.9f;
var_r31->unk08.z *= 0.9f;
var_r31->unk08.y *= 0.9f;

View file

@ -941,8 +941,8 @@ void fn_1_23E0(omObjData *object)
case 4:
var_r24 = fn_1_82AC(sp38);
for (var_r30 = 0; var_r30 < var_r24; var_r30++) {
PSVECSubtract(&sp38[var_r30], &var_r31->unk_2C, &sp8);
sp20[var_r30] = PSVECMag(&sp8);
VECSubtract(&sp38[var_r30], &var_r31->unk_2C, &sp8);
sp20[var_r30] = VECMag(&sp8);
}
for (var_r30 = 0; var_r30 < (var_r24 - 1); var_r30++) {
for (var_r29 = var_r30 + 1; var_r29 < var_r24; var_r29++) {
@ -1144,14 +1144,14 @@ s32 fn_1_36DC(void)
for (var_r29 = var_r30 + 1; var_r29 < 4; var_r29++) {
var_r27 = lbl_1_bss_3C[var_r29]->data;
if (var_r27->unk_07 != 0) {
PSVECSubtract(&var_r28->unk_2C, &var_r27->unk_2C, &sp8);
var_f31 = PSVECMag(&sp8);
VECSubtract(&var_r28->unk_2C, &var_r27->unk_2C, &sp8);
var_f31 = VECMag(&sp8);
if (var_f31 < 80.0f) {
PSVECNormalize(&sp8, &sp8);
VECNormalize(&sp8, &sp8);
var_f30 = 0.0001f + (0.5f * (80.0f - var_f31));
PSVECScale(&sp8, &sp8, var_f30);
PSVECAdd(&sp14[var_r30], &sp8, &sp14[var_r30]);
PSVECSubtract(&sp14[var_r29], &sp8, &sp14[var_r29]);
VECScale(&sp8, &sp8, var_f30);
VECAdd(&sp14[var_r30], &sp8, &sp14[var_r30]);
VECSubtract(&sp14[var_r29], &sp8, &sp14[var_r29]);
var_r28->unk_0E++;
var_r27->unk_0E++;
var_r26++;
@ -1164,7 +1164,7 @@ s32 fn_1_36DC(void)
var_r25 = lbl_1_bss_3C[var_r30];
var_r31 = var_r25->data;
if (var_r31->unk_07 != 0) {
PSVECAdd(&var_r31->unk_2C, &sp14[var_r30], &var_r31->unk_2C);
VECAdd(&var_r31->unk_2C, &sp14[var_r30], &var_r31->unk_2C);
if (var_r31->unk_2C.x > 660.0f) {
var_r31->unk_2C.x = 660.0f;
}
@ -1237,8 +1237,8 @@ void fn_1_3BB4(Vec *arg0, Vec *arg1)
var_r30 = fn_1_844C(sp18);
var_f31 = 2000.0f;
for (var_r31 = 0; var_r31 < var_r30; var_r31++) {
PSVECSubtract(&sp18[var_r31], arg0, &spC);
var_f30 = PSVECMag(&spC);
VECSubtract(&sp18[var_r31], arg0, &spC);
var_f30 = VECMag(&spC);
if (!(var_f30 >= var_f31)) {
var_f31 = var_f30;
*arg1 = sp18[var_r31];
@ -1403,18 +1403,18 @@ void fn_1_4574(Mtx arg0, float arg8, float arg9, float argA)
Mtx sp38;
Mtx sp8;
if (argA != 0.0f) {
PSMTXRotRad(arg0, 0x5A, 0.017453292f * argA);
MTXRotRad(arg0, 0x5A, 0.017453292f * argA);
}
else {
PSMTXIdentity(arg0);
MTXIdentity(arg0);
}
if (arg8 != 0.0f) {
PSMTXRotRad(sp38, 0x58, 0.017453292f * arg8);
PSMTXConcat(sp38, arg0, arg0);
MTXRotRad(sp38, 0x58, 0.017453292f * arg8);
MTXConcat(sp38, arg0, arg0);
}
if (arg9 != 0.0f) {
PSMTXRotRad(sp8, 0x59, 0.017453292f * arg9);
PSMTXConcat(sp8, arg0, arg0);
MTXRotRad(sp8, 0x59, 0.017453292f * arg9);
MTXConcat(sp8, arg0, arg0);
}
}
// TODO figue out type of arg0
@ -1570,8 +1570,8 @@ void fn_1_5290(float *arg0, float (*arg1)[3], float (*arg2)[3], s32 arg3)
arg0[0] = 0.0f;
for (var_r30 = 1; var_r30 < arg3; var_r30++) {
PSVECSubtract((Vec *)&arg1[var_r30], (Vec *)&arg1[var_r30 - 1], &sp8);
arg0[var_r30] = arg0[var_r30 - 1] + PSVECMag(&sp8);
VECSubtract((Vec *)&arg1[var_r30], (Vec *)&arg1[var_r30 - 1], &sp8);
arg0[var_r30] = arg0[var_r30 - 1] + VECMag(&sp8);
}
for (var_r27 = 0; var_r27 < 3; var_r27++) {
for (var_r30 = 0; var_r30 < arg3; var_r30++) {

View file

@ -514,12 +514,12 @@ void fn_1_6EB4(omObjData *object)
Mtx sp8;
s32 var_r30;
PSMTXTrans(sp38, object->trans.x, object->trans.y, object->trans.z);
MTXTrans(sp38, object->trans.x, object->trans.y, object->trans.z);
mtxRot(sp8, object->rot.x, object->rot.y, object->rot.z);
PSMTXConcat(sp38, sp8, sp38);
MTXConcat(sp38, sp8, sp38);
for (var_r30 = 0; var_r30 < 6; var_r30++) {
PSMTXTrans(sp8, lbl_1_data_A88[var_r30].x, lbl_1_data_A88[var_r30].y, lbl_1_data_A88[var_r30].z);
PSMTXConcat(sp38, sp8, sp8);
MTXTrans(sp8, lbl_1_data_A88[var_r30].x, lbl_1_data_A88[var_r30].y, lbl_1_data_A88[var_r30].z);
MTXConcat(sp38, sp8, sp8);
Hu3DModelPosSet(object->model[var_r30 + 1], sp8[0][3], sp8[1][3], sp8[2][3]);
Hu3DModelRotSet(object->model[var_r30 + 1], object->rot.x, object->rot.y, object->rot.z);
}
@ -685,12 +685,12 @@ void fn_1_73C4(omObjData *object)
break;
}
}
PSMTXTrans(sp8, object->trans.x, object->trans.y, object->trans.z);
MTXTrans(sp8, object->trans.x, object->trans.y, object->trans.z);
mtxRot(sp38, object->rot.x, object->rot.y, object->rot.z);
PSMTXConcat(sp8, sp38, sp8);
MTXConcat(sp8, sp38, sp8);
for (var_r28 = 0; var_r28 < 6; var_r28++) {
PSMTXTrans(sp38, lbl_1_data_A88[var_r28].x, lbl_1_data_A88[var_r28].y, lbl_1_data_A88[var_r28].z);
PSMTXConcat(sp8, sp38, sp38);
MTXTrans(sp38, lbl_1_data_A88[var_r28].x, lbl_1_data_A88[var_r28].y, lbl_1_data_A88[var_r28].z);
MTXConcat(sp8, sp38, sp38);
Hu3DModelPosSet(object->model[var_r28 + 1], sp38[0][3], sp38[1][3], sp38[2][3]);
Hu3DModelRotSet(object->model[var_r28 + 1], object->rot.x, object->rot.y, object->rot.z);
}
@ -825,16 +825,16 @@ s32 fn_1_7CE0(float arg8, float arg9, Vec *arg0)
var_r28 -= 6;
fn_1_7BB0(var_r27, &sp10);
sp10 = lbl_1_data_A88[var_r27];
PSMTXTrans(sp4C, var_r31->trans.x, var_r31->trans.y, var_r31->trans.z);
MTXTrans(sp4C, var_r31->trans.x, var_r31->trans.y, var_r31->trans.z);
mtxRot(sp1C, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z);
PSMTXConcat(sp4C, sp1C, sp4C);
PSMTXTrans(sp1C, sp10.x, sp10.y, sp10.z);
PSMTXConcat(sp4C, sp1C, sp4C);
MTXConcat(sp4C, sp1C, sp4C);
MTXTrans(sp1C, sp10.x, sp10.y, sp10.z);
MTXConcat(sp4C, sp1C, sp4C);
var_r30 = lbl_1_data_AFC[var_r28];
var_r23 = lbl_1_data_B14[var_r28];
for (var_r24 = 0; var_r24 < var_r23; var_r24++) {
PSMTXTrans(sp1C, var_r30->x, var_r30->y, var_r30->z);
PSMTXConcat(sp4C, sp1C, sp1C);
MTXTrans(sp1C, var_r30->x, var_r30->y, var_r30->z);
MTXConcat(sp4C, sp1C, sp1C);
arg0->x = sp1C[0][3];
arg0->y = sp1C[1][3];
arg0->z = sp1C[2][3];
@ -930,17 +930,17 @@ s32 fn_1_844C(Vec *arg0)
var_r30 = lbl_1_bss_A4[lbl_1_bss_9C];
var_r27 = var_r30->data;
var_r23 = fn_1_8250(var_r27, sp8);
PSMTXTrans(sp50, var_r30->trans.x, var_r30->trans.y, var_r30->trans.z);
MTXTrans(sp50, var_r30->trans.x, var_r30->trans.y, var_r30->trans.z);
mtxRot(sp20, var_r30->rot.x, var_r30->rot.y, var_r30->rot.z);
PSMTXConcat(sp50, sp20, sp50);
MTXConcat(sp50, sp20, sp50);
for (var_r29 = 0; var_r29 < var_r23; var_r29++) {
fn_1_7BB0(sp8[var_r29], arg0);
var_r26 = fn_1_7BFC(var_r27, sp8[var_r29]) - 6;
arg0->x += lbl_1_data_B2C[var_r26].x;
arg0->y += lbl_1_data_B2C[var_r26].y;
arg0->z += lbl_1_data_B2C[var_r26].z;
PSMTXTrans(sp20, arg0->x, arg0->y, arg0->z);
PSMTXConcat(sp50, sp20, sp20);
MTXTrans(sp20, arg0->x, arg0->y, arg0->z);
MTXConcat(sp50, sp20, sp20);
arg0->x = sp20[0][3];
arg0->y = sp20[1][3];
arg0->z = sp20[2][3];
@ -991,7 +991,7 @@ s32 fn_1_867C(Vec *arg0, Vec *arg1)
if ((var_r28->rot.x > 0.0f) || (var_r28->rot.x <= -90.0f)) {
return 0;
}
PSVECSubtract(arg0, &var_r28->trans, &sp3C);
VECSubtract(arg0, &var_r28->trans, &sp3C);
sp3C.z = sp3C.z / cosd(var_r28->rot.x);
var_f24 = arg0->z;
var_f25 = arg0->x;
@ -1002,29 +1002,29 @@ s32 fn_1_867C(Vec *arg0, Vec *arg1)
}
var_r24 -= 6;
sp48 = lbl_1_data_A88[var_r19];
PSVECSubtract(&sp3C, &sp48, &sp3C);
VECSubtract(&sp3C, &sp48, &sp3C);
var_r30 = lbl_1_data_B74[var_r24][0];
var_r29 = lbl_1_data_B74[var_r24][1];
var_r21 = lbl_1_data_BA4[var_r24];
for (var_r31 = 0; var_r31 < var_r21; var_r31++) {
var_r27 = (var_r31 + 1) % var_r21;
PSVECSubtract(var_r30 + var_r27, var_r30 + var_r31, &sp24);
PSVECSubtract(&sp3C, var_r30 + var_r27, &sp18);
PSVECCrossProduct(&sp24, &sp18, &spC);
VECSubtract(var_r30 + var_r27, var_r30 + var_r31, &sp24);
VECSubtract(&sp3C, var_r30 + var_r27, &sp18);
VECCrossProduct(&sp24, &sp18, &spC);
if (!(spC.y < 0.0f)) {
PSVECSubtract(var_r29 + var_r27, var_r30 + var_r27, &sp24);
PSVECSubtract(&sp3C, var_r29 + var_r27, &sp18);
PSVECCrossProduct(&sp24, &sp18, &spC);
VECSubtract(var_r29 + var_r27, var_r30 + var_r27, &sp24);
VECSubtract(&sp3C, var_r29 + var_r27, &sp18);
VECCrossProduct(&sp24, &sp18, &spC);
if (!(spC.y < 0.0f)) {
PSVECSubtract(var_r29 + var_r31, var_r29 + var_r27, &sp24);
PSVECSubtract(&sp3C, var_r29 + var_r31, &sp18);
PSVECCrossProduct(&sp24, &sp18, &spC);
VECSubtract(var_r29 + var_r31, var_r29 + var_r27, &sp24);
VECSubtract(&sp3C, var_r29 + var_r31, &sp18);
VECCrossProduct(&sp24, &sp18, &spC);
if (!(spC.y < 0.0f)) {
PSVECSubtract(var_r30 + var_r31, var_r29 + var_r31, &sp24);
PSVECSubtract(&sp3C, var_r30 + var_r31, &sp18);
PSVECCrossProduct(&sp24, &sp18, &spC);
VECSubtract(var_r30 + var_r31, var_r29 + var_r31, &sp24);
VECSubtract(&sp3C, var_r30 + var_r31, &sp18);
VECCrossProduct(&sp24, &sp18, &spC);
if (!(spC.y < 0.0f)) {
PSVECSubtract(var_r30 + var_r27, var_r30 + var_r31, &sp24);
VECSubtract(var_r30 + var_r27, var_r30 + var_r31, &sp24);
var_f30 = (((sp3C.z * sp24.z)
+ (((sp3C.y * sp24.y) + ((sp3C.x * sp24.x) - (sp24.x * var_r30[var_r31].x))) - (sp24.y * var_r30[var_r31].y)))
- (sp24.z * var_r30[var_r31].z))
@ -1032,9 +1032,9 @@ s32 fn_1_867C(Vec *arg0, Vec *arg1)
sp30.x = var_r30[var_r31].x + (var_f30 * sp24.x);
sp30.y = var_r30[var_r31].y + (var_f30 * sp24.y);
sp30.z = var_r30[var_r31].z + (var_f30 * sp24.z);
PSVECSubtract(&sp30, &sp3C, &spC);
var_f28 = PSVECMag(&spC);
PSVECSubtract(var_r29 + var_r27, var_r29 + var_r31, &sp18);
VECSubtract(&sp30, &sp3C, &spC);
var_f28 = VECMag(&spC);
VECSubtract(var_r29 + var_r27, var_r29 + var_r31, &sp18);
var_f29 = (((sp3C.z * sp18.z)
+ (((sp3C.y * sp18.y) + ((sp3C.x * sp18.x) - (sp18.x * var_r29[var_r31].x))) - (sp18.y * var_r29[var_r31].y)))
- (sp18.z * var_r29[var_r31].z))
@ -1042,8 +1042,8 @@ s32 fn_1_867C(Vec *arg0, Vec *arg1)
sp30.x = var_r29[var_r31].x + (var_f29 * sp18.x);
sp30.y = var_r29[var_r31].y + (var_f29 * sp18.y);
sp30.z = var_r29[var_r31].z + (var_f29 * sp18.z);
PSVECSubtract(&sp30, &sp3C, &spC);
var_f27 = PSVECMag(&spC);
VECSubtract(&sp30, &sp3C, &spC);
var_f27 = VECMag(&spC);
if (var_f28 == 0.0f) {
var_f31 = var_f30;
}

View file

@ -67,7 +67,7 @@ void ObjectSetup(void)
lbl_1_bss_8.x = lbl_1_data_44.x - lbl_1_data_38.x;
lbl_1_bss_8.y = lbl_1_data_44.y - lbl_1_data_38.y;
lbl_1_bss_8.z = lbl_1_data_44.z - lbl_1_data_38.z;
PSVECNormalize(&lbl_1_bss_8, &lbl_1_bss_8);
VECNormalize(&lbl_1_bss_8, &lbl_1_bss_8);
light = Hu3DGLightCreateV(&lbl_1_data_38, &lbl_1_bss_8, &lbl_1_data_50);
Hu3DGLightInfinitytSet(light);
Hu3DGLightStaticSet(light, 1);

View file

@ -146,7 +146,7 @@ void ObjectSetup(void)
lbl_1_bss_8.x = lbl_1_data_44.x - lbl_1_data_38.x;
lbl_1_bss_8.y = lbl_1_data_44.y - lbl_1_data_38.y;
lbl_1_bss_8.z = lbl_1_data_44.z - lbl_1_data_38.z;
PSVECNormalize(&lbl_1_bss_8, &lbl_1_bss_8);
VECNormalize(&lbl_1_bss_8, &lbl_1_bss_8);
var_r29 = Hu3DGLightCreateV(&lbl_1_data_38, &lbl_1_bss_8, &lbl_1_data_50);
Hu3DGLightInfinitytSet(var_r29);
Hu3DGLightStaticSet(var_r29, 1);
@ -714,7 +714,7 @@ void fn_1_1304(omObjData *var_r30)
var_r28 = 0x40000001;
if ((fn_1_3B0() == 5) && (var_r31->unk_00_field3 == 0) && (lbl_1_bss_64 == 1)) {
var_r25 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0);
PSVECSubtract(&var_r25[*lbl_1_bss_70]->trans, &var_r30->trans, &sp8);
VECSubtract(&var_r25[*lbl_1_bss_70]->trans, &var_r30->trans, &sp8);
var_r30->rot.y = fn_1_2090(var_r30->rot.y, atan2d(sp8.x, sp8.z), 0.1f);
}
if (fn_1_3B0() == 0xB) {

View file

@ -329,8 +329,8 @@ void fn_1_4C8(omObjData *object)
Vec sp1B0 = { 0.0f, 0.0f, 0.0f };
sp1B0.x = var_f31;
sp1B0.z = var_f30;
PSMTXRotRad(sp1E0, 0x79, 0.017453292f * CRot.y);
PSMTXMultVec(sp1E0, &sp1B0, &sp1B0);
MTXRotRad(sp1E0, 0x79, 0.017453292f * CRot.y);
MTXMultVec(sp1E0, &sp1B0, &sp1B0);
var_f31 = sp1B0.x;
var_f30 = sp1B0.z;
}

View file

@ -153,7 +153,7 @@ void ObjectSetup(void)
sp8.x = sp8.z = 0.0f;
sp8.y = lbl_1_data_18.z;
mtxRot(sp2C, lbl_1_data_18.x, lbl_1_data_18.y, 0.0f);
PSMTXMultVec(sp2C, &sp8, &lbl_1_data_28);
MTXMultVec(sp2C, &sp8, &lbl_1_data_28);
Hu3DGLightPosAimSetV(lbl_1_bss_1A[0], &lbl_1_data_28, &lbl_1_data_40);
Hu3DShadowPosSet(&lbl_1_data_28, &lbl_1_data_34, &lbl_1_data_40);
lbl_1_bss_18 = lbl_1_bss_16 = lbl_1_bss_14 = lbl_1_bss_12 = lbl_1_bss_10 = -1;
@ -474,15 +474,15 @@ void fn_1_2564(omObjData *object)
var_f31 *= -1.0f;
}
var_f31 = object->work[0] / var_f31;
PSVECSubtract(&lbl_1_data_4C[object->work[1] + var_r24], &lbl_1_data_4C[object->work[1]], &sp20);
PSVECScale(&sp20, &sp20, var_f31);
PSVECAdd(&lbl_1_data_4C[object->work[1]], &sp20, &sp20);
VECSubtract(&lbl_1_data_4C[object->work[1] + var_r24], &lbl_1_data_4C[object->work[1]], &sp20);
VECScale(&sp20, &sp20, var_f31);
VECAdd(&lbl_1_data_4C[object->work[1]], &sp20, &sp20);
Center.x = sp20.x;
Center.y = sp20.y;
Center.z = sp20.z;
PSVECSubtract(&lbl_1_data_70[object->work[1] + var_r24], &lbl_1_data_70[object->work[1]], &sp20);
PSVECScale(&sp20, &sp20, var_f31);
PSVECAdd(&lbl_1_data_70[object->work[1]], &sp20, &sp20);
VECSubtract(&lbl_1_data_70[object->work[1] + var_r24], &lbl_1_data_70[object->work[1]], &sp20);
VECScale(&sp20, &sp20, var_f31);
VECAdd(&lbl_1_data_70[object->work[1]], &sp20, &sp20);
CRot.x = sp20.x;
CRot.y = sp20.y;
CRot.z = 0.0f;
@ -683,8 +683,8 @@ void fn_1_3618(omObjData *var_r28)
sp10[2] = var_r31->unk_44.unk_08 * var_r31->unk_40;
sp10[3] = var_r31->unk_44.unk_0C * var_r31->unk_40;
Hu3DCameraPerspectiveSet(var_r31->unk_3C, var_r31->unk_10, var_r31->unk_14, var_r31->unk_18, var_f31);
Hu3DCameraViewportSet(
var_r31->unk_3C, var_r31->unk_44.unk_00 - (0.5f * sp10[2]), var_r31->unk_44.unk_04 - (0.5f * sp10[3]), sp10[2], sp10[3], 0.0f, 1.0f);
Hu3DCameraViewportSet(var_r31->unk_3C, var_r31->unk_44.unk_00 - (0.5f * sp10[2]), var_r31->unk_44.unk_04 - (0.5f * sp10[3]), sp10[2],
sp10[3], 0.0f, 1.0f);
sp10[0] = var_r31->unk_44.unk_00 - (0.5f * sp10[2]);
sp10[1] = var_r31->unk_44.unk_04 - (0.5f * sp10[3]);
sp8[0] = var_r31->unk_44.unk_00 + (0.5f * sp10[2]);
@ -731,7 +731,7 @@ void fn_1_3BC0(ModelData *model, Mtx mtx)
DCStoreRange(&lbl_1_data_B8, 4);
C_MTXPerspective(spC, 41.5f, 1.2f, 100.0f, 5500.0f);
GXSetProjection(spC, GX_PERSPECTIVE);
PSMTXIdentity(sp3C);
MTXIdentity(sp3C);
GXLoadPosMtxImm(sp3C, 0);
GXSetNumChans(1);
GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE);
@ -948,12 +948,12 @@ void fn_1_4388(Vec *sp8, Vec *var_r31)
float var_f30;
float var_f29;
PSVECSubtract(var_r31, sp8, &sp10);
VECSubtract(var_r31, sp8, &sp10);
Center = *var_r31;
CRot.x = atan2d(sp10.y, sqrtf((sp10.x * sp10.x) + (sp10.z * sp10.z)));
CRot.y = atan2d(-sp10.x, -sp10.z);
CRot.z = 0.0f;
CZoom = PSVECMag(&sp10);
CZoom = VECMag(&sp10);
}
void fn_1_4590(float arg8, float arg9, float argA, float argB, float argC, float argD)
@ -968,12 +968,12 @@ void fn_1_4590(float arg8, float arg9, float argA, float argB, float argC, float
sp30.x = argB;
sp30.y = argC;
sp30.z = argD;
PSVECSubtract(&sp30, &sp3C, &sp24);
VECSubtract(&sp30, &sp3C, &sp24);
Center = sp30;
CRot.x = atan2d(sp24.y, sqrtf((sp24.x * sp24.x) + (sp24.z * sp24.z)));
CRot.y = atan2d(-sp24.x, -sp24.z);
CRot.z = 0.0f;
CZoom = PSVECMag(&sp24);
CZoom = VECMag(&sp24);
}
float fn_1_47D0(float arg8, float arg9, float argA)

View file

@ -270,9 +270,9 @@ void fn_1_6C00(omObjData *object)
fn_1_7DA8(object, &sp14, 1);
}
}
PSVECSubtract(&var_r31->unk_48, &var_r31->unk_3C, &sp8);
PSVECScale(&sp8, &sp8, 0.4f);
PSVECAdd(&var_r31->unk_3C, &sp8, &sp14);
VECSubtract(&var_r31->unk_48, &var_r31->unk_3C, &sp8);
VECScale(&sp8, &sp8, 0.4f);
VECAdd(&var_r31->unk_3C, &sp8, &sp14);
sp14.y += var_r31->unk_34;
Hu3DModelPosSetV(var_r31->unk_2C, &sp14);
var_r31->unk_30++;
@ -366,7 +366,7 @@ void fn_1_7790(ModelData *model, Mtx mtx)
DCStoreRange(&lbl_1_data_378, 4);
C_MTXPerspective(sp2C, 41.5f, 1.2f, 100.0f, 5500.0f);
GXSetProjection(sp2C, GX_PERSPECTIVE);
PSMTXIdentity(sp5C);
MTXIdentity(sp5C);
GXLoadPosMtxImm(sp5C, 0);
GXSetNumChans(1);
GXSetChanCtrl(GX_COLOR0A0, 0, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE);
@ -409,7 +409,7 @@ void fn_1_7B94(s32 arg0)
var_r30 = Hu3DData[arg0].unk_120;
for (var_r31 = var_r30->unk_48, var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) {
if (var_r31->unk00_s16 != 0) {
PSVECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34);
VECAdd(&var_r31->unk34, &var_r31->unk08, &var_r31->unk34);
switch (var_r31->unk02) {
case 0:
var_r31->unk2C += 1.0f;
@ -464,7 +464,7 @@ void fn_1_7DA8(omObjData *object, Vec *arg1, u32 arg2)
sp1C.x = 100.0f * ((0.0026f * frandmod(0x3E8)) - 1.3f);
sp1C.y = 0.0f;
sp1C.z = 100.0f * ((0.000100000005f * frandmod(0x3E8)) - 0.05f);
PSVECAdd(&sp1C, arg1, &var_r31->unk34);
VECAdd(&sp1C, arg1, &var_r31->unk34);
var_r31->unk30 = 0.0031415902f * frandmod(0x3E8);
switch (arg2) {
case 0:
@ -485,7 +485,7 @@ void fn_1_7DA8(omObjData *object, Vec *arg1, u32 arg2)
if (frandmod(0x3E8) < 0x1F4) {
sp1C.x *= -1.0f;
}
PSVECAdd(&sp1C, arg1, &var_r31->unk34);
VECAdd(&sp1C, arg1, &var_r31->unk34);
var_r31->unk00 = 60.0f * (0.2f + (0.0005f * frandmod(0x3E8)));
var_r31->unk08.x = 1.6666667f * ((0.000100000005f * frandmod(0x3E8)) - 0.05f);
var_r31->unk08.y = -1.6666667f * (0.2f + (0.0003f * frandmod(0x3E8)));

View file

@ -218,7 +218,7 @@ void fn_1_4F6C(omObjData *object)
}
break;
}
PSVECAdd(&var_r31->unk_60, &var_r31->unk_6C, &var_r31->unk_60);
VECAdd(&var_r31->unk_60, &var_r31->unk_6C, &var_r31->unk_60);
fn_1_57D8(object);
if (fn_1_414C() == 2) {
var_r31->unk_2C = 0;
@ -343,7 +343,7 @@ void fn_1_5168(omObjData *object)
break;
}
}
PSVECAdd(&var_r31->unk_60, &var_r31->unk_6C, &var_r31->unk_60);
VECAdd(&var_r31->unk_60, &var_r31->unk_6C, &var_r31->unk_60);
fn_1_57D8(object);
if ((fn_1_4164() == 5) && (var_r27 != 0)) {
var_r31->unk_2C = 0;
@ -390,7 +390,7 @@ void fn_1_55EC(omObjData *object)
fn_1_5CE0(object, 0);
break;
}
PSVECAdd(&var_r31->unk_60, &var_r31->unk_6C, &var_r31->unk_60);
VECAdd(&var_r31->unk_60, &var_r31->unk_6C, &var_r31->unk_60);
fn_1_57D8(object);
if (var_r31->unk_84 >= 0) {
sp8 = var_r31->unk_60;
@ -426,15 +426,15 @@ s32 fn_1_58C8(omObjData *object, float arg8, float arg9)
var_r31 = object->data;
var_r30 = 0;
PSVECSubtract(&var_r31->unk_78, &var_r31->unk_60, &spC);
VECSubtract(&var_r31->unk_78, &var_r31->unk_60, &spC);
spC.y = 0.0f;
var_f31 = PSVECMag(&spC);
var_f31 = VECMag(&spC);
if (var_f31 < arg9) {
var_f31 = 0.0f;
var_r30 = 1;
}
else {
if (PSVECMag(&spC) >= 100.0f) {
if (VECMag(&spC) >= 100.0f) {
var_f31 = 100.0f;
}
var_f31 = 0.2f + (0.008f * var_f31);
@ -636,12 +636,12 @@ void fn_1_61F4(omObjData *object)
object->trans.z += 11.666667f;
}
else {
var_f31 = PSVECMag(&sp10);
var_f31 = VECMag(&sp10);
if (var_f31 < 20.0f) {
var_f31 = 0.0f;
}
else {
if (PSVECMag(&sp10) >= 100.0f) {
if (VECMag(&sp10) >= 100.0f) {
var_f31 = 100.0f;
}
var_f31 = 0.2f + (0.008f * var_f31);

View file

@ -403,9 +403,9 @@ void fn_1_1D70(s16 arg0, char *arg1, Vec *arg2, Mtx arg3)
var_r30 = &Hu3DData[arg0];
Hu3DModelObjMtxGet(arg0, arg1, spC);
PSMTXConcat(var_r30->unk_F0, spC, spC);
MTXConcat(var_r30->unk_F0, spC, spC);
if (NULL != arg3) {
PSMTXCopy(spC, arg3);
MTXCopy(spC, arg3);
}
arg2->x = spC[0][3];
arg2->y = spC[1][3];
@ -1186,7 +1186,8 @@ s32 lbl_1_data_128[8][5] = {
s32 lbl_1_data_1C8[3] = { DATA_MAKE_NUM(DATADIR_M461, 0x02), DATA_MAKE_NUM(DATADIR_M461, 0x03), DATA_MAKE_NUM(DATADIR_M461, 0x08) };
s32 lbl_1_data_1D4[4] = { DATA_MAKE_NUM(DATADIR_M461, 0x04), DATA_MAKE_NUM(DATADIR_M461, 0x05), DATA_MAKE_NUM(DATADIR_M461, 0x06), DATA_MAKE_NUM(DATADIR_M461, 0x07) };
s32 lbl_1_data_1D4[4]
= { DATA_MAKE_NUM(DATADIR_M461, 0x04), DATA_MAKE_NUM(DATADIR_M461, 0x05), DATA_MAKE_NUM(DATADIR_M461, 0x06), DATA_MAKE_NUM(DATADIR_M461, 0x07) };
float lbl_1_data_1E4[3] = { 0.3f, 0.5f, 0.9f };

View file

@ -78,9 +78,9 @@ void fn_1_44D8(void);
void fn_1_4BC4(void);
void fn_1_69C0(void);
void fn_1_7D40(void);
void fn_1_545C(ModelData* model, ParticleData* particle, Mtx matrix);
void fn_1_594C(ModelData* model, ParticleData* particle, Mtx matrix);
void fn_1_5DE4(ModelData* model, ParticleData* particle, Mtx matrix);
void fn_1_545C(ModelData *model, ParticleData *particle, Mtx matrix);
void fn_1_594C(ModelData *model, ParticleData *particle, Mtx matrix);
void fn_1_5DE4(ModelData *model, ParticleData *particle, Mtx matrix);
void fn_1_7DA0(void);
s32 fn_1_1880(float arg0, float arg1, float arg2, s32 arg3, s32 arg4);
@ -93,48 +93,28 @@ s32 lbl_1_bss_3D8;
StructBss340 lbl_1_bss_340[1];
StructBss70 lbl_1_bss_70[10];
StructBss70 lbl_1_bss_28;
omObjData* lbl_1_bss_24;
omObjData *lbl_1_bss_24;
Vec lbl_1_bss_18;
Vec lbl_1_bss_C;
Vec lbl_1_bss_0;
s32 lbl_1_data_0[] = { 0, 1, 2, 3, 4, 5, 6, 7 };
s32 lbl_1_data_20[] = {
DATA_MAKE_NUM(DATADIR_MARIOMOT, 79),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 27),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 75),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 22)
};
s32 lbl_1_data_20[] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 79), DATA_MAKE_NUM(DATADIR_MARIOMOT, 27), DATA_MAKE_NUM(DATADIR_MARIOMOT, 75),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 22) };
Vec lbl_1_data_30[] = {
{ 0.0f, 0.0f, 35.0f },
{ 0.0f, 0.0f, 35.0f },
{ 0.0f, 0.0f, 35.0f },
{ 0.0f, 0.0f, 35.0f },
{ 0.0f, 0.0f, 35.0f },
{ 0.0f, 0.0f, 35.0f },
{ 0.0f, 0.0f, 35.0f },
{ 0.0f, 0.0f, 35.0f }
};
Vec lbl_1_data_30[] = { { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f },
{ 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f }, { 0.0f, 0.0f, 35.0f } };
Vec lbl_1_data_90[] = {
{ -900.0f, 143.0f, -1020.0f },
{ -677.0f, 143.0f, -1020.0f },
{ 900.0f, 0.0f, -1150.0f },
{ -307.0f, 182.0f, -1575.0f }
};
Vec lbl_1_data_90[] = { { -900.0f, 143.0f, -1020.0f }, { -677.0f, 143.0f, -1020.0f }, { 900.0f, 0.0f, -1150.0f }, { -307.0f, 182.0f, -1575.0f } };
s32 lbl_1_data_C0[][5] = {
{ 50, 80, 90, 95, 100 },
{ 5, 55, 85, 95, 100 },
{ 0, 5, 55, 90, 100 }
};
s32 lbl_1_data_C0[][5] = { { 50, 80, 90, 95, 100 }, { 5, 55, 85, 95, 100 }, { 0, 5, 55, 90, 100 } };
float lbl_1_data_FC[] = { 0.3f, 0.5f, 0.7f, 0.9f, 1.0f };
void ObjectSetup(void) {
Process* temp_r3;
void ObjectSetup(void)
{
Process *temp_r3;
temp_r3 = omInitObjMan(50, 0x2000);
omGameSysInit(temp_r3);
@ -172,15 +152,16 @@ void ObjectSetup(void) {
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60);
}
void fn_1_4A0(void) {
void fn_1_4A0(void)
{
float temp_f31;
float temp_f30;
void* var_r27;
StructBss340* temp_r31;
StructBss70* temp_r29;
Process* var_r25;
AnimData* var_r24;
AnimData* spC[4];
void *var_r27;
StructBss340 *temp_r31;
StructBss70 *temp_r29;
Process *var_r25;
AnimData *var_r24;
AnimData *spC[4];
s16 var_r30;
s16 var_r23;
s16 sp8;
@ -292,7 +273,8 @@ void fn_1_4A0(void) {
var_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M462, 12), MEMORY_DEFAULT_NUM, HEAP_DATA);
var_r30 = Hu3DModelCreate(var_r27);
var_r23 = var_r30;
} else {
}
else {
var_r30 = Hu3DModelLink(var_r23);
}
temp_r29->unk00 = var_r30;
@ -389,7 +371,8 @@ void fn_1_4A0(void) {
HuPrcChildCreate(fn_1_7D40, 0x1000, 0x1000, 0, HuPrcCurrentGet());
}
float fn_1_14B4(float arg0) {
float fn_1_14B4(float arg0)
{
while (arg0 >= 360.0f || arg0 < 0.0f) {
if (arg0 >= 360.0f) {
arg0 -= 360.0f;
@ -401,24 +384,29 @@ float fn_1_14B4(float arg0) {
return arg0;
}
float fn_1_1534(float arg0, float arg1) {
float fn_1_1534(float arg0, float arg1)
{
float var_f31;
if (arg0 > 750.0f - arg1) {
var_f31 = 750.0f;
} else if (arg0 < -(750.0f - arg1)) {
}
else if (arg0 < -(750.0f - arg1)) {
var_f31 = 750.0f;
} else {
}
else {
var_f31 = 750.0f;
}
return var_f31;
}
float fn_1_15B4(float arg0, float arg1) {
float fn_1_15B4(float arg0, float arg1)
{
return fn_1_1534(arg0, arg1);
}
void fn_1_1634(void) {
void fn_1_1634(void)
{
float var_f31;
float temp_f30;
s32 i;
@ -434,7 +422,8 @@ void fn_1_1634(void) {
}
}
void fn_1_16F8(void) {
void fn_1_16F8(void)
{
s32 i;
for (i = 0; i < 6; i++) {
@ -442,7 +431,8 @@ void fn_1_16F8(void) {
}
}
void fn_1_174C(void) {
void fn_1_174C(void)
{
s32 i;
for (i = 0; i < 6; i++) {
@ -450,12 +440,14 @@ void fn_1_174C(void) {
}
}
void fn_1_17A0(s32 arg0, s32 arg1) {
void fn_1_17A0(s32 arg0, s32 arg1)
{
s32 var_r31;
if (arg1 != 0) {
var_r31 = 2;
} else {
}
else {
var_r31 = 4;
}
HuSprBankSet(lbl_1_bss_3DC, var_r31, arg0 % 10);
@ -463,13 +455,14 @@ void fn_1_17A0(s32 arg0, s32 arg1) {
HuSprAttrReset(lbl_1_bss_3DC, var_r31 + 1, HUSPR_ATTR_DISPOFF);
}
s32 fn_1_1880(float arg0, float arg1, float arg2, s32 arg3, s32 arg4) {
s32 fn_1_1880(float arg0, float arg1, float arg2, s32 arg3, s32 arg4)
{
Vec sp34;
Vec sp28;
Vec sp1C;
s32 i;
StructBss70* temp_r30;
StructBss340* var_r29;
StructBss70 *temp_r30;
StructBss340 *var_r29;
if (arg3 > 10) {
arg3 = 10;
@ -498,7 +491,8 @@ s32 fn_1_1880(float arg0, float arg1, float arg2, s32 arg3, s32 arg4) {
return 0;
}
s32 fn_1_1BD4(StructBss70* arg0) {
s32 fn_1_1BD4(StructBss70 *arg0)
{
float var_f31;
float var_f30;
s32 var_r31;
@ -525,7 +519,8 @@ s32 fn_1_1BD4(StructBss70* arg0) {
return var_r31;
}
void fn_1_1E10(StructBss70* arg0) {
void fn_1_1E10(StructBss70 *arg0)
{
Vec sp104;
Vec spF8;
Vec spEC;
@ -541,8 +536,8 @@ void fn_1_1E10(StructBss70* arg0) {
float spB0;
float spAC;
float spA0;
StructBss70* var_r30;
StructBss70* temp_r28;
StructBss70 *var_r30;
StructBss70 *temp_r28;
s32 temp_r19;
s32 var_r21;
s32 i;
@ -583,7 +578,8 @@ void fn_1_1E10(StructBss70* arg0) {
spC0 = var_f19 - var_f26;
if (spC0 > 0.0f) {
spBC = -0.5f;
} else {
}
else {
spBC = 0.5f;
}
if (ABS_INV(var_f19 - var_f26) > 180.0f) {
@ -626,13 +622,14 @@ block_end:
arg0->unk14.z = spB4;
}
void fn_1_2FDC(StructBss70* arg0) {
void fn_1_2FDC(StructBss70 *arg0)
{
Vec spF0;
Vec spE4;
Vec spD8;
s32 i;
StructBss340* var_r30;
StructBss70* temp_r25;
StructBss340 *var_r30;
StructBss70 *temp_r25;
float var_f31;
s32 var_r23;
s32 var_r20;
@ -655,12 +652,14 @@ void fn_1_2FDC(StructBss70* arg0) {
var_f31 += 30.0f * frandf() - 60.0f;
var_f31 = fn_1_14B4(var_f31);
arg0->unk20 = var_f31;
} else if (ABS_INV(arg0->unk14.x) > 550.0f) {
}
else if (ABS_INV(arg0->unk14.x) > 550.0f) {
var_f31 = fn_1_14B4(180.0 + atan2d(arg0->unk14.x, 0.0));
var_f31 += 10.0f * frandf() - 20.0f;
var_f31 = fn_1_14B4(var_f31);
arg0->unk20 = var_f31;
} else if (frandmod(3) != 0) {
}
else if (frandmod(3) != 0) {
for (i = 0, var_r23 = 0; i < 10; i++) {
if (i == arg0->unk0C) {
continue;
@ -679,13 +678,15 @@ void fn_1_2FDC(StructBss70* arg0) {
if (var_r23 == 1 && ABS_INV(var_r30->unk4C.x) < 650.0f) {
temp_r25 = &lbl_1_bss_70[spAC[0]];
var_f31 = fn_1_14B4(atan2d(arg0->unk40 - arg0->unk14.x, arg0->unk44 - arg0->unk14.z));
} else {
}
else {
var_f31 = fn_1_14B4(180.0 + atan2d(arg0->unk14.x, arg0->unk14.z));
var_f31 += 30.0f * frandf() - 60.0f;
var_f31 = fn_1_14B4(var_f31);
arg0->unk20 = var_f31;
}
} else {
}
else {
var_f31 = 360.0f * frandf();
arg0->unk20 = var_f31;
}
@ -713,15 +714,15 @@ void fn_1_2FDC(StructBss70* arg0) {
var_f31 = fn_1_14B4(atan2d(arg0->unk40 - arg0->unk14.x, arg0->unk44 - arg0->unk14.z));
arg0->unk14.x += arg0->unk34 * sind(var_f31);
arg0->unk14.z += arg0->unk34 * cosd(var_f31);
if (fn_1_1BD4(arg0)) {
}
if (fn_1_1BD4(arg0)) { }
if (fn_1_1880(arg0->unk14.x, arg0->unk14.z, 50.0f, 10, arg0->unk0C) != 0) {
arg0->unk14.x = arg0->unk24;
arg0->unk14.z = arg0->unk28;
arg0->unk38 = 100;
arg0->unk3C = 0;
}
} else {
}
else {
arg0->unk38 = 100;
arg0->unk3C = 0;
}
@ -735,8 +736,9 @@ void fn_1_2FDC(StructBss70* arg0) {
}
}
void fn_1_44D8(void) {
StructBss70* temp_r31;
void fn_1_44D8(void)
{
StructBss70 *temp_r31;
float temp_f30;
float var_f31;
s32 i;
@ -763,7 +765,8 @@ void fn_1_44D8(void) {
}
}
void fn_1_4644(StructBss70* arg0) {
void fn_1_4644(StructBss70 *arg0)
{
float temp_f26;
float temp_f25;
float var_f27;
@ -778,7 +781,8 @@ void fn_1_4644(StructBss70* arg0) {
arg0->unk20 = 90.0f;
var_f27 = -700.0f + temp_f26 - 500.0f;
var_f24 = 8.333333f;
} else {
}
else {
arg0->unk14.x = 700.0f - temp_f26;
arg0->unk20 = 270.0f;
var_f27 = 700.0f - temp_f26 + 500.0f;
@ -808,7 +812,8 @@ void fn_1_4644(StructBss70* arg0) {
Hu3DModelPosSet(arg0->unk00, arg0->unk14.x, 0.0f, arg0->unk14.z);
}
void fn_1_4BC4(void) {
void fn_1_4BC4(void)
{
s32 spC;
float sp8;
float temp_f23;
@ -816,9 +821,9 @@ void fn_1_4BC4(void) {
float var_f28;
float var_f30;
float var_f29;
StructBss70* temp_r31;
StructBss340* var_r28;
StructBss340* var_r30;
StructBss70 *temp_r31;
StructBss340 *var_r28;
StructBss340 *var_r30;
s32 temp_r27;
s32 temp_r24;
s32 var_r26;
@ -843,7 +848,8 @@ loop_1:
}
}
if (i > 4) {
while (TRUE);
while (TRUE)
;
}
temp_r31->unk34 = 6.75f * lbl_1_data_FC[i];
temp_r31->unk38 = 0;
@ -854,8 +860,8 @@ loop_1:
fn_1_4644(temp_r31);
temp_r31->unk10 = 0;
if (FALSE) {
default:
fn_1_2FDC(temp_r31);
default:
fn_1_2FDC(temp_r31);
}
Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk14.x, temp_r31->unk14.y, temp_r31->unk14.z);
Hu3DModelRotSet(temp_r31->unk00, 0.0f, temp_r31->unk20, 0.0f);
@ -869,19 +875,23 @@ loop_1:
if (ABS_INV(var_r28->unk4C.z - temp_r31->unk14.z) > 250.0f) {
if (temp_r31->unk14.x > 0.0f) {
var_f30 = 10.0f;
} else {
}
else {
var_f30 = -10.0f;
}
} else {
}
else {
if (var_r28->unk4C.x > temp_r31->unk14.x) {
var_f30 = -10.0f;
} else {
}
else {
var_f30 = 10.0f;
}
}
if (var_f30 > 0.0f) {
Hu3DModelRotSet(temp_r31->unk00, 0.0f, 90.0f, 0.0f);
} else {
}
else {
Hu3DModelRotSet(temp_r31->unk00, 0.0f, 270.0f, 0.0f);
}
Hu3DMotionSet(temp_r31->unk00, temp_r31->unk04[1]);
@ -911,7 +921,8 @@ loop_1:
temp_r31->unk2C = fn_1_14B4(atan2d(temp_r31->unk14.x - var_r30->unk4C.x, temp_r31->unk14.z - var_r30->unk4C.z));
Hu3DMotionTimeSet(temp_r31->unk02, 0.0f);
Hu3DModelAttrReset(temp_r31->unk02, HU3D_ATTR_DISPOFF);
Hu3DModelPosSet(temp_r31->unk02, var_r30->unk4C.x + var_r30->unk84 * sind(temp_r31->unk2C), temp_r31->unk14.y + 50.0f, var_r30->unk4C.z + var_r30->unk84 * cosd(temp_r31->unk2C));
Hu3DModelPosSet(temp_r31->unk02, var_r30->unk4C.x + var_r30->unk84 * sind(temp_r31->unk2C), temp_r31->unk14.y + 50.0f,
var_r30->unk4C.z + var_r30->unk84 * cosd(temp_r31->unk2C));
i = 0;
var_f29 = temp_r31->unk14.x;
var_f28 = temp_r31->unk14.z;
@ -943,9 +954,10 @@ loop_1:
}
}
void fn_1_545C(ModelData* model, ParticleData* particle, Mtx matrix) {
HsfanimStruct01* var_r31;
StructBss340* temp_r28;
void fn_1_545C(ModelData *model, ParticleData *particle, Mtx matrix)
{
HsfanimStruct01 *var_r31;
StructBss340 *temp_r28;
float var_f30;
float var_f31;
float temp_f29;
@ -996,7 +1008,7 @@ void fn_1_545C(ModelData* model, ParticleData* particle, Mtx matrix) {
if (var_r31->unk14.x == 0.0f) {
continue;
}
PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34);
VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34);
var_r31->unk08.x *= 0.95f;
var_r31->unk08.z *= 0.95f;
if (var_r31->unk08.y > 0.1f) {
@ -1025,9 +1037,10 @@ void fn_1_545C(ModelData* model, ParticleData* particle, Mtx matrix) {
}
}
void fn_1_594C(ModelData* model, ParticleData* particle, Mtx matrix) {
HsfanimStruct01* var_r31;
StructBss340* temp_r28;
void fn_1_594C(ModelData *model, ParticleData *particle, Mtx matrix)
{
HsfanimStruct01 *var_r31;
StructBss340 *temp_r28;
float temp_f31;
float temp_f30;
s32 var_r27;
@ -1088,7 +1101,7 @@ void fn_1_594C(ModelData* model, ParticleData* particle, Mtx matrix) {
if (var_r31->unk14.x == 0.0f || var_r31->unk24 == 0.0f) {
continue;
}
PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34);
VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34);
if (var_r31->unk08.y > 1.0f) {
var_r31->unk08.y -= 0.3f;
}
@ -1112,9 +1125,10 @@ void fn_1_594C(ModelData* model, ParticleData* particle, Mtx matrix) {
}
}
void fn_1_5DE4(ModelData* model, ParticleData* particle, Mtx matrix) {
HsfanimStruct01* var_r31;
StructBss340* temp_r28;
void fn_1_5DE4(ModelData *model, ParticleData *particle, Mtx matrix)
{
HsfanimStruct01 *var_r31;
StructBss340 *temp_r28;
float temp_f31;
float temp_f30;
s32 var_r27;
@ -1175,7 +1189,7 @@ void fn_1_5DE4(ModelData* model, ParticleData* particle, Mtx matrix) {
if (var_r31->unk14.x == 0.0f || var_r31->unk24 == 0.0f) {
continue;
}
PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34);
VECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34);
if (var_r31->unk08.y > 1.0f) {
var_r31->unk08.y -= 0.3f;
}
@ -1199,8 +1213,9 @@ void fn_1_5DE4(ModelData* model, ParticleData* particle, Mtx matrix) {
}
}
s8 fn_1_627C(s32 arg0, s32 arg1) {
StructBss340* temp_r31;
s8 fn_1_627C(s32 arg0, s32 arg1)
{
StructBss340 *temp_r31;
s8 var_r30;
temp_r31 = &lbl_1_bss_340[arg0];
@ -1208,8 +1223,9 @@ s8 fn_1_627C(s32 arg0, s32 arg1) {
return var_r30;
}
u8 fn_1_62F0(s32 arg0, s32 arg1) {
StructBss340* temp_r31;
u8 fn_1_62F0(s32 arg0, s32 arg1)
{
StructBss340 *temp_r31;
s8 var_r30;
temp_r31 = &lbl_1_bss_340[arg0];
@ -1217,8 +1233,9 @@ u8 fn_1_62F0(s32 arg0, s32 arg1) {
return var_r30;
}
u16 fn_1_636C(s32 arg0) {
StructBss340* temp_r31;
u16 fn_1_636C(s32 arg0)
{
StructBss340 *temp_r31;
u16 var_r30;
temp_r31 = &lbl_1_bss_340[arg0];
@ -1226,8 +1243,9 @@ u16 fn_1_636C(s32 arg0) {
return var_r30;
}
u16 fn_1_63B4(s32 arg0) {
StructBss340* temp_r31;
u16 fn_1_63B4(s32 arg0)
{
StructBss340 *temp_r31;
u16 var_r30;
temp_r31 = &lbl_1_bss_340[arg0];
@ -1235,11 +1253,12 @@ u16 fn_1_63B4(s32 arg0) {
return var_r30;
}
s32 fn_1_63FC(StructBss340* arg0) {
s32 fn_1_63FC(StructBss340 *arg0)
{
Vec sp24;
Vec sp18;
Vec spC;
StructBss70* temp_r31;
StructBss70 *temp_r31;
s32 var_r28;
s32 i;
@ -1257,7 +1276,8 @@ s32 fn_1_63FC(StructBss340* arg0) {
return var_r28;
}
s32 fn_1_65D0(StructBss340* arg0) {
s32 fn_1_65D0(StructBss340 *arg0)
{
float var_f31;
float var_f30;
s32 sp8;
@ -1279,7 +1299,8 @@ s32 fn_1_65D0(StructBss340* arg0) {
return sp8;
}
float fn_1_67F0(float arg0, float arg1, float arg2) {
float fn_1_67F0(float arg0, float arg1, float arg2)
{
float var_f30;
float var_f31;
@ -1297,8 +1318,9 @@ float fn_1_67F0(float arg0, float arg1, float arg2) {
return var_f30;
}
void fn_1_68F4(void) {
StructBss340* temp_r31;
void fn_1_68F4(void)
{
StructBss340 *temp_r31;
s32 i;
temp_r31 = HuPrcCurrentGet()->user_data;
@ -1313,19 +1335,21 @@ void fn_1_68F4(void) {
}
}
s32 fn_1_6964(StructBss340* arg0) {
s32 fn_1_6964(StructBss340 *arg0)
{
return (arg0->unk2C == 4 || arg0->unk2C == 5 || arg0->unk2C == 6);
}
void fn_1_69C0(void) {
void fn_1_69C0(void)
{
float var_f23;
float var_f27;
float var_f26;
StructBss340* temp_r31;
StructBss340 *temp_r31;
s16 var_r29;
s32 var_r24;
s32 var_r23;
Process* var_r22;
Process *var_r22;
s32 var_r26;
s32 var_r25;
s32 var_r28;
@ -1353,7 +1377,8 @@ void fn_1_69C0(void) {
case 8:
if (temp_r31->unk3C != 0) {
temp_r31->unk3C--;
} else {
}
else {
Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[0], 0.0f, 5.0f, HU3D_MOTATTR_LOOP);
temp_r31->unk2C = 0;
}
@ -1374,7 +1399,8 @@ void fn_1_69C0(void) {
}
if (temp_r31->unk3C != 0) {
temp_r31->unk3C--;
} else {
}
else {
Hu3DMotionSet(temp_r31->unk00, temp_r31->unk06[5]);
Hu3DModelAttrReset(temp_r31->unk00, HU3D_MOTATTR_LOOP);
temp_r31->unk2C = 6;
@ -1416,7 +1442,8 @@ void fn_1_69C0(void) {
if (fn_1_63B4(temp_r31->unk20) & PAD_BUTTON_A) {
Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[1], 0.0f, 8.0f, HU3D_MOTATTR_LOOP);
Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f);
} else {
}
else {
Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[1], 0.0f, 8.0f, HU3D_MOTATTR_LOOP | HU3D_MOTATTR_REV);
Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f);
}
@ -1424,14 +1451,16 @@ void fn_1_69C0(void) {
HuAudFXStop(var_r29);
}
}
} else {
}
else {
if (temp_r31->unk2C != 3) {
temp_r31->unk2C = 3;
temp_r31->unk48 = 0;
if (fn_1_63B4(temp_r31->unk20) & PAD_BUTTON_A) {
Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[2], 0.0f, 8.0f, HU3D_MOTATTR_LOOP);
Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f);
} else {
}
else {
Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[2], 0.0f, 8.0f, HU3D_MOTATTR_LOOP | HU3D_MOTATTR_REV);
Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f);
}
@ -1443,7 +1472,8 @@ void fn_1_69C0(void) {
if (temp_r31->unk34 != 1) {
var_r24 = 8;
var_r23 = 32;
} else {
}
else {
var_r24 = 7;
var_r23 = 22;
}
@ -1458,12 +1488,14 @@ void fn_1_69C0(void) {
if (temp_r31->unk48 >= 50) {
temp_r31->unk48 -= 50;
}
} else {
}
else {
if (temp_r31->unk48 >= 30) {
temp_r31->unk48 -= 30;
}
}
} else {
}
else {
if (ABS_INV(fn_1_627C(temp_r31->unk20, 0)) <= 20) {
if (temp_r31->unk2C != 0) {
temp_r31->unk2C = 0;
@ -1472,7 +1504,8 @@ void fn_1_69C0(void) {
HuAudFXStop(var_r29);
}
}
} else {
}
else {
if (temp_r31->unk2C != 1) {
temp_r31->unk2C = 1;
Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[3], 0.0f, 8.0f, HU3D_MOTATTR_LOOP);
@ -1481,10 +1514,8 @@ void fn_1_69C0(void) {
}
}
}
if (fn_1_63FC(temp_r31) != -1) {
}
if ((spA4 = fn_1_65D0(temp_r31)) != -1) {
}
if (fn_1_63FC(temp_r31) != -1) { }
if ((spA4 = fn_1_65D0(temp_r31)) != -1) { }
break;
}
Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk4C.x, temp_r31->unk4C.y, temp_r31->unk4C.z);
@ -1522,7 +1553,8 @@ void fn_1_69C0(void) {
if (var_r25 & 1) {
Hu3DModelAttrReset(temp_r31->unk00, HU3D_ATTR_DISPOFF);
Hu3DModelAttrReset(temp_r31->unk04, HU3D_ATTR_DISPOFF);
} else {
}
else {
Hu3DModelAttrSet(temp_r31->unk00, HU3D_ATTR_DISPOFF);
Hu3DModelAttrSet(temp_r31->unk04, HU3D_ATTR_DISPOFF);
}
@ -1542,7 +1574,8 @@ void fn_1_69C0(void) {
Hu3DModelAttrSet(temp_r31->unk00, HU3D_ATTR_DISPOFF);
HuAudSStreamPlay(4);
HuPrcSleep(180);
} else {
}
else {
var_f26 = temp_r31->unk90;
Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[3], 0.0f, 2.0f, HU3D_MOTATTR_LOOP);
if (fn_1_14B4(temp_r31->unk60.y) != 0.0f) {
@ -1576,10 +1609,10 @@ void fn_1_69C0(void) {
}
}
void fn_1_7D3C(void) {
}
void fn_1_7D3C(void) { }
void fn_1_7D40(void) {
void fn_1_7D40(void)
{
while (TRUE) {
if (omSysExitReq == 1) {
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60);
@ -1595,7 +1628,8 @@ void fn_1_7D40(void) {
}
}
void fn_1_7DA0(void) {
void fn_1_7DA0(void)
{
s16 temp_r31;
s16 var_r30;
s16 temp_r26;
@ -1644,7 +1678,8 @@ void fn_1_7DA0(void) {
HuPrcVSleep();
}
lbl_1_bss_3E4 = 5;
} else {
}
else {
lbl_1_bss_3E4 = 5;
}
while (lbl_1_bss_3E4 < 6) {

View file

@ -68,14 +68,14 @@ typedef struct {
} StructData134; // Size 0x18
s16 fn_1_4474(void);
void fn_1_659C(omObjData* arg0);
void fn_1_659C(omObjData *arg0);
StructBss51C lbl_1_bss_51C[9];
StructBss35C lbl_1_bss_35C[28];
omObjData* lbl_1_bss_358;
omObjData* lbl_1_bss_354;
omObjData* lbl_1_bss_330[9];
omObjData* lbl_1_bss_32C;
omObjData *lbl_1_bss_358;
omObjData *lbl_1_bss_354;
omObjData *lbl_1_bss_330[9];
omObjData *lbl_1_bss_32C;
HsfanimStruct00 lbl_1_bss_5C[9];
s32 lbl_1_bss_58;
s32 lbl_1_bss_54;
@ -83,7 +83,7 @@ s32 lbl_1_bss_50;
char lbl_1_bss_4C[4]; // unused
s32 lbl_1_bss_48;
s32 lbl_1_bss_44;
Process* lbl_1_bss_40;
Process *lbl_1_bss_40;
s32 lbl_1_bss_3C;
s32 lbl_1_bss_38;
s32 lbl_1_bss_34;
@ -101,17 +101,9 @@ char lbl_1_bss_8[4]; // unused
s32 lbl_1_bss_4;
s32 lbl_1_bss_0;
s32 lbl_1_data_0[9] = {
DATA_MAKE_NUM(DATADIR_M458, 38),
DATA_MAKE_NUM(DATADIR_M458, 38),
DATA_MAKE_NUM(DATADIR_M458, 38),
DATA_MAKE_NUM(DATADIR_M458, 38),
DATA_MAKE_NUM(DATADIR_M458, 38),
DATA_MAKE_NUM(DATADIR_M458, 38),
DATA_MAKE_NUM(DATADIR_M458, 38),
DATA_MAKE_NUM(DATADIR_M458, 38),
DATA_MAKE_NUM(DATADIR_M458, 38)
};
s32 lbl_1_data_0[9] = { DATA_MAKE_NUM(DATADIR_M458, 38), DATA_MAKE_NUM(DATADIR_M458, 38), DATA_MAKE_NUM(DATADIR_M458, 38),
DATA_MAKE_NUM(DATADIR_M458, 38), DATA_MAKE_NUM(DATADIR_M458, 38), DATA_MAKE_NUM(DATADIR_M458, 38), DATA_MAKE_NUM(DATADIR_M458, 38),
DATA_MAKE_NUM(DATADIR_M458, 38), DATA_MAKE_NUM(DATADIR_M458, 38) };
s32 lbl_1_data_24[9] = { 0 };
@ -129,17 +121,8 @@ s32 lbl_1_data_48[9] = {
u32 lbl_1_data_6C[9] = { 0, 0, 0, 0, 0, 0, 0, 1, 0 };
u32 lbl_1_data_90[] = {
DATA_MAKE_NUM(DATADIR_BKOOPA, 8),
0,
0,
DATA_MAKE_NUM(DATADIR_BKOOPA, 10),
0,
DATA_MAKE_NUM(DATADIR_M458, 42),
DATA_MAKE_NUM(DATADIR_M458, 40),
DATA_MAKE_NUM(DATADIR_M458, 41),
DATA_MAKE_NUM(DATADIR_M458, 39)
};
u32 lbl_1_data_90[] = { DATA_MAKE_NUM(DATADIR_BKOOPA, 8), 0, 0, DATA_MAKE_NUM(DATADIR_BKOOPA, 10), 0, DATA_MAKE_NUM(DATADIR_M458, 42),
DATA_MAKE_NUM(DATADIR_M458, 40), DATA_MAKE_NUM(DATADIR_M458, 41), DATA_MAKE_NUM(DATADIR_M458, 39) };
u8 lbl_1_data_B4[9] = { 0, 0, 0, 1, 1, 1, 0, 1, 1 };
u8 lbl_1_data_BD[9] = { 0, 0, 0, 1, 1, 1, 0, 1, 1 };
@ -157,7 +140,8 @@ s32 lbl_1_data_154 = -1;
// unused
float lbl_1_data_158[] = { -90.0f, 0.0f, 525.0f, 180.0f, 90.0f, 0.0f, 525.0f, 180.0f };
void fn_1_A0(void) {
void fn_1_A0(void)
{
if (HuPadBtnDown[0] & PAD_BUTTON_B) {
Center.x = lbl_1_bss_330[0]->trans.x;
Center.y = lbl_1_bss_330[0]->trans.y;
@ -176,9 +160,10 @@ void fn_1_A0(void) {
s32 lbl_1_data_184 = -1;
void fn_1_4C8(omObjData* arg0) {
ModelData* temp_r24;
ModelData* temp_r29;
void fn_1_4C8(omObjData *arg0)
{
ModelData *temp_r24;
ModelData *temp_r29;
float temp_f31;
float temp_f30;
float var_f28;
@ -190,17 +175,17 @@ void fn_1_4C8(omObjData* arg0) {
float var_f22;
float var_f21;
float var_f20;
StructBss330Data* temp_r31;
StructBss330Data *temp_r31;
s16 var_r28;
s32 temp_r27;
s32 var_r26;
s32 var_r25;
s32 var_r23;
s32 var_r22;
StructBss330Data* temp_r21;
StructBss330Data *temp_r21;
s32 var_r20;
s32 var_r19;
StructBss330Data* temp_r18;
StructBss330Data *temp_r18;
s32 var_r17;
float sp180[2];
s32 spE0;
@ -210,18 +195,18 @@ void fn_1_4C8(omObjData* arg0) {
s32 spD0;
s32 spCC;
s32 spC8;
StructBss330Data* spC4;
StructBss330Data *spC4;
s32 spC0;
s32 spBC;
StructBss330Data* spB8;
StructBss330Data *spB8;
s32 spB4;
u32 spB0;
float spAC;
s32 spA8;
s32 spA4;
s32 spA0;
StructBss330Data* sp9C;
ModelData* sp98;
StructBss330Data *sp9C;
ModelData *sp98;
float sp94;
float sp90;
s32 sp8C;
@ -240,7 +225,8 @@ void fn_1_4C8(omObjData* arg0) {
}
if (temp_r31->unk0C != -1) {
var_r22 = (HuPadBtnDown[temp_r31->unk0C] & PAD_BUTTON_A) ? 1 : 0;
} else {
}
else {
temp_r31->unk14 += (temp_r31->unk14 < 0x10000);
if (temp_r31->unk14 == 30) {
var_r22 = 1;
@ -251,12 +237,11 @@ void fn_1_4C8(omObjData* arg0) {
var_r26 = 0;
var_r25 = 0;
if (temp_r31->unk0C != -1) {
var_r26 = (HuPadStkX[temp_r31->unk0C] < -20) ? -1
: (HuPadStkX[temp_r31->unk0C] > 20) ? 1 : 0;
var_r25 = (-HuPadStkY[temp_r31->unk0C] < -20) ? -1
: (-HuPadStkY[temp_r31->unk0C] > 20) ? 1 : 0;
var_r26 = (HuPadStkX[temp_r31->unk0C] < -20) ? -1 : (HuPadStkX[temp_r31->unk0C] > 20) ? 1 : 0;
var_r25 = (-HuPadStkY[temp_r31->unk0C] < -20) ? -1 : (-HuPadStkY[temp_r31->unk0C] > 20) ? 1 : 0;
var_r22 = (HuPadBtnDown[temp_r31->unk0C] & PAD_BUTTON_A) ? 1 : 0;
} else {
}
else {
if (lbl_1_bss_54 == 1) {
temp_r31->unk14 = rand8() % 64 + 30;
}
@ -278,16 +263,16 @@ void fn_1_4C8(omObjData* arg0) {
spCC = 0;
if (var_r17 != temp_r31->unk00) {
if (fabs(500.0 * temp_r31->unk3C - arg0->trans.x) < 10.0) {
spE0 = spDC = (arg0->trans.x < -250.0) ? -1
: (arg0->trans.x > 250.0) ? 1 : 0;
} else {
spE0 = spDC = (arg0->trans.x < -250.0) ? -1 : (arg0->trans.x > 250.0) ? 1 : 0;
}
else {
spE0 = (arg0->trans.x < 0.0f) ? -1 : 0;
spDC = spE0 + 1;
}
if (fabs(500.0 * temp_r31->unk40 - arg0->trans.z) < 10.0) {
spD8 = spD4 = (arg0->trans.z < -250.0) ? -1
: (arg0->trans.z > 250.0) ? 1 : 0;
} else {
spD8 = spD4 = (arg0->trans.z < -250.0) ? -1 : (arg0->trans.z > 250.0) ? 1 : 0;
}
else {
spD8 = (arg0->trans.z < 0.0f) ? -1 : 0;
spD4 = spD8 + 1;
}
@ -309,14 +294,16 @@ void fn_1_4C8(omObjData* arg0) {
if (var_r26 * (500.0 * temp_r31->unk3C - arg0->trans.x) < 0.0) {
temp_r31->unk3C += var_r26;
}
if (fabs(500.0 * temp_r31->unk3C - arg0->trans.x) < 10.0 && var_r26 != 0 && temp_r31->unk3C + var_r26 >= -1 && temp_r31->unk3C + var_r26 <= 1) {
if (fabs(500.0 * temp_r31->unk3C - arg0->trans.x) < 10.0 && var_r26 != 0 && temp_r31->unk3C + var_r26 >= -1
&& temp_r31->unk3C + var_r26 <= 1) {
temp_r31->unk3C += var_r26;
}
var_f23 = ((500.0 * temp_r31->unk3C - arg0->trans.x) / 0.25) / 1.75;
if (var_r25 * (500.0 * temp_r31->unk40 - arg0->trans.z) < 0.0) {
temp_r31->unk40 += var_r25;
}
if (fabs(500.0 * temp_r31->unk40 - arg0->trans.z) < 10.0 && var_r25 != 0 && temp_r31->unk40 + var_r25 >= -1 && temp_r31->unk40 + var_r25 <= 1) {
if (fabs(500.0 * temp_r31->unk40 - arg0->trans.z) < 10.0 && var_r25 != 0 && temp_r31->unk40 + var_r25 >= -1
&& temp_r31->unk40 + var_r25 <= 1) {
temp_r31->unk40 += var_r25;
}
var_f22 = ((500.0 * temp_r31->unk40 - arg0->trans.z) / -0.25) / 1.75;
@ -332,8 +319,8 @@ void fn_1_4C8(omObjData* arg0) {
sp1A0.x = temp_f31;
sp1A0.z = temp_f30;
PSMTXRotRad(sp1D0, 'y', MTXDegToRad(CRot.y));
PSMTXMultVec(sp1D0, &sp1A0, &sp1A0);
MTXRotRad(sp1D0, 'y', MTXDegToRad(CRot.y));
MTXMultVec(sp1D0, &sp1A0, &sp1A0);
temp_f31 = sp1A0.x;
temp_f30 = sp1A0.z;
var_f28 = sqrtf(temp_f31 * temp_f31 + temp_f30 * temp_f30);
@ -341,7 +328,8 @@ void fn_1_4C8(omObjData* arg0) {
if (var_f28 < 10.0f) {
temp_r31->unk2C = temp_f31;
temp_r31->unk34 += temp_f30;
} else {
}
else {
temp_f31 /= var_f28;
temp_f30 /= var_f28;
var_f28 = 10.0f;
@ -352,10 +340,12 @@ void fn_1_4C8(omObjData* arg0) {
arg0->rot.y = atan2d(temp_r31->unk2C, temp_r31->unk34);
if (temp_r31->unk28 >= 8.0f) {
var_r28 = 2;
} else {
}
else {
var_r28 = 2;
}
} else {
}
else {
var_r28 = 0;
}
}
@ -372,14 +362,13 @@ void fn_1_4C8(omObjData* arg0) {
if (lbl_1_bss_54 == 0) {
Hu3DModelAttrReset(arg0->model[0], HU3D_ATTR_DISPOFF);
if (temp_r31->unk00 < 4) {
temp_r31->unk38 = (temp_r31->unk00 == 0) ? 0
: (temp_r31->unk00 == 1) ? 2
: (temp_r31->unk00 == 2) ? 6 : 8;
temp_r31->unk38 = (temp_r31->unk00 == 0) ? 0 : (temp_r31->unk00 == 1) ? 2 : (temp_r31->unk00 == 2) ? 6 : 8;
temp_r31->unk3C = temp_r31->unk38 % 3 - 1;
temp_r31->unk40 = temp_r31->unk38 / 3 - 1;
arg0->trans.x = 500.0 * temp_r31->unk3C;
arg0->trans.z = 500.0 * temp_r31->unk40;
} else {
}
else {
do {
temp_r31->unk38 = rand8() % 9;
for (spC8 = 0; spC8 < temp_r31->unk00; spC8++) {
@ -446,9 +435,7 @@ void fn_1_4C8(omObjData* arg0) {
for (var_r23 = 0; var_r23 < 4; var_r23++) {
temp_r18 = lbl_1_bss_330[var_r23]->data;
if (!(fabs(500.0 * temp_r18->unk3C - lbl_1_bss_330[var_r23]->trans.x) < 1.0)
|| !(fabs(500.0 * temp_r18->unk40 - lbl_1_bss_330[var_r23]->trans.z) < 1.0)
|| temp_r18->unk20 != 0)
{
|| !(fabs(500.0 * temp_r18->unk40 - lbl_1_bss_330[var_r23]->trans.z) < 1.0) || temp_r18->unk20 != 0) {
break;
}
}
@ -461,7 +448,8 @@ void fn_1_4C8(omObjData* arg0) {
if (temp_r31->unk5C != 0) {
if (arg0->trans.y < -15000.0f) {
Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF);
} else {
}
else {
arg0->trans.y -= 77.0f;
}
}
@ -503,8 +491,7 @@ void fn_1_4C8(omObjData* arg0) {
temp_f26 = (lbl_1_bss_54 - 210) / 4.0;
temp_f26 = (temp_f26 > 1.0f) ? 1.0f : temp_f26;
espAttrReset(lbl_1_data_24[temp_r31->unk38], HUSPR_ATTR_DISPOFF);
espPosSet(lbl_1_data_24[temp_r31->unk38],
290.0f + spB4 * sp194[spB0],
espPosSet(lbl_1_data_24[temp_r31->unk38], 290.0f + spB4 * sp194[spB0],
sp188[spB0] + 0.5 * (64.0f * (1.0f - spAC) * 0.5 + sp1AC[temp_r31->unk08 != -1 ? temp_r31->unk08 : 8]));
espScaleSet(lbl_1_data_24[temp_r31->unk38], 0.5 * temp_f26, 0.5 * temp_f26);
}
@ -534,9 +521,11 @@ void fn_1_4C8(omObjData* arg0) {
if (temp_r31->unk08 == -1 && lbl_1_bss_54 == 1) {
HuAudFXPlay(0x3A);
}
} else if (arg0->trans.y < -40000.0f) {
}
else if (arg0->trans.y < -40000.0f) {
Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF);
} else {
}
else {
arg0->trans.y -= 77.0f;
}
break;
@ -549,7 +538,8 @@ void fn_1_4C8(omObjData* arg0) {
temp_r31->unk1C++;
if (temp_r31->unk1C <= 60) {
arg0->rot.y = -180.0 * (temp_r31->unk1C / 60.0);
} else {
}
else {
Hu3DMotionTimeSet(arg0->model[0], 120.0f);
var_r28 = 0;
temp_r31->unk18 = 0;
@ -583,22 +573,25 @@ void fn_1_4C8(omObjData* arg0) {
if (temp_r31->unk1C < 180) {
var_f20 = 0.0f;
var_f21 = 1.0f;
} else {
}
else {
var_f20 = 1.0f;
var_f21 = 0.5f;
}
temp_r24->scale.x = var_f20 + var_f21 * sind((float) (temp_r31->unk1C % 180));
temp_r24->scale.x = var_f20 + var_f21 * sind((float)(temp_r31->unk1C % 180));
temp_r24->scale.y = temp_r24->scale.z = temp_r24->scale.x;
if (temp_r31->unk1C < 180) {
temp_r31->unk1C += 6;
} else {
}
else {
temp_r31->unk1C += 18;
}
if (temp_r31->unk1C >= 360) {
temp_r31->unk1C = 360;
Hu3DModelRotSet(arg0->model[1], 0.0f, 0.0f, 0.0f);
}
} else {
}
else {
sp98 = &Hu3DData[arg0->model[1]];
temp_r31->unk1C += 4;
if (temp_r31->unk1C > 720) {
@ -640,7 +633,8 @@ void fn_1_4C8(omObjData* arg0) {
temp_r31->unk58 = 150;
}
Hu3DModelAttrSet(arg0->model[1], HU3D_ATTR_DISPOFF);
} else if (temp_r27 > 8) {
}
else if (temp_r27 > 8) {
if (temp_r31->unk20 == 5) {
if (Hu3DMotionTimeGet(arg0->model[0]) >= Hu3DMotionMaxTimeGet(arg0->model[0])) {
var_r28 = 0;
@ -667,12 +661,14 @@ void fn_1_4C8(omObjData* arg0) {
temp_r31->unk18 = 0;
temp_r31->unk1C = 0;
}
} else {
}
else {
if (temp_r27 < 4) {
temp_r29->pos.y += 10.0f + 0.5f * temp_r27;
temp_r29->scale.x += 0.1f * sind(4.0f * temp_r27);
temp_r29->scale.y = temp_r29->scale.z = temp_r29->scale.x;
} else {
}
else {
var_f24 = 255 - (temp_r27 << 5);
var_f24 = var_f24 * (1.0f / 255);
Hu3DModelTPLvlSet(arg0->model[1], var_f24);
@ -734,13 +730,11 @@ void fn_1_4C8(omObjData* arg0) {
var_r28 = temp_r31->unk24;
}
if (var_r28 >= 0 && var_r28 != temp_r31->unk20) {
Hu3DMotionShiftSet(arg0->model[0],
arg0->motion[var_r28],
lbl_1_data_EC[var_r28],
Hu3DMotionShiftSet(arg0->model[0], arg0->motion[var_r28], lbl_1_data_EC[var_r28],
(temp_r31->unk08 != -1) ? lbl_1_data_C8[var_r28] : lbl_1_data_110[var_r28],
(var_r28 == 7) ? HU3D_MOTATTR_PAUSE
(var_r28 == 7) ? HU3D_MOTATTR_PAUSE
: (temp_r31->unk08 != -1 ? lbl_1_data_B4[var_r28] : lbl_1_data_BD[var_r28]) ? 0
: HU3D_MOTATTR_LOOP);
: HU3D_MOTATTR_LOOP);
temp_r31->unk20 = var_r28;
}
temp_r31->unk58 -= (temp_r31->unk58 > -1);
@ -759,15 +753,16 @@ float lbl_1_data_1B8 = 3500.0f;
float lbl_1_data_1BC = 100.0f;
float lbl_1_data_1C0 = -59.0f;
void fn_1_3264(omObjData* arg0) {
void fn_1_3264(omObjData *arg0)
{
float temp_f29;
float var_f31;
float temp_f26;
float temp_f27;
float temp_f28;
StructBss330Data* spC[9];
ModelData* temp_r29;
ModelData* temp_r28;
StructBss330Data *spC[9];
ModelData *temp_r29;
ModelData *temp_r28;
s32 var_r27;
s32 i;
s32 j;
@ -807,10 +802,8 @@ void fn_1_3264(omObjData* arg0) {
}
for (i = 0; i < 9; i++) {
temp_r28 = &Hu3DData[lbl_1_bss_32C->model[i + 1]];
Hu3DModelPosSet(lbl_1_bss_32C->model[i + 1],
(500.0 + 200.0f * temp_f29) * (lbl_1_bss_51C[i].unk00 - 1),
0.9 * temp_r28->pos.y + 0.1 * lbl_1_bss_51C[spC[0]->unk38].unk08,
(500.0 + 200.0f * temp_f29) * (lbl_1_bss_51C[i].unk04 - 1));
Hu3DModelPosSet(lbl_1_bss_32C->model[i + 1], (500.0 + 200.0f * temp_f29) * (lbl_1_bss_51C[i].unk00 - 1),
0.9 * temp_r28->pos.y + 0.1 * lbl_1_bss_51C[spC[0]->unk38].unk08, (500.0 + 200.0f * temp_f29) * (lbl_1_bss_51C[i].unk04 - 1));
for (j = 0; j < 9; j++) {
if (i == spC[j]->unk38) {
lbl_1_bss_330[j]->trans.x = (500.0 + 200.0f * temp_f29) * (lbl_1_bss_51C[i].unk00 - 1);
@ -824,14 +817,9 @@ void fn_1_3264(omObjData* arg0) {
}
{
s32 var_r26 = lbl_1_data_1B4;
float sp30[][6] = {
{ 3500.0f, 0.0f, 100.0f, 0.0f, -59.0f, 0.0f },
{ 3200.0f, 0.0f, 100.0f, 0.0f, -30.0f, 0.0f },
{ 3800.0f, 0.0f, 100.0f, 0.0f, -30.0f, 0.0f },
{ 2000.0f, 0.0f, 200.0f, 0.0f, -30.0f, 0.0f },
{ 4000.0f, 0.0f, 200.0f, 0.0f, -89.0f, 0.0f },
{ 2700.0f, 0.0f, 200.0f, 0.0f, -30.0f, 0.0f }
};
float sp30[][6] = { { 3500.0f, 0.0f, 100.0f, 0.0f, -59.0f, 0.0f }, { 3200.0f, 0.0f, 100.0f, 0.0f, -30.0f, 0.0f },
{ 3800.0f, 0.0f, 100.0f, 0.0f, -30.0f, 0.0f }, { 2000.0f, 0.0f, 200.0f, 0.0f, -30.0f, 0.0f },
{ 4000.0f, 0.0f, 200.0f, 0.0f, -89.0f, 0.0f }, { 2700.0f, 0.0f, 200.0f, 0.0f, -30.0f, 0.0f } };
if (lbl_1_bss_38 != -1 && lbl_1_bss_38 != 9) {
sp30[5][1] = lbl_1_bss_330[lbl_1_bss_38]->trans.x;
@ -878,7 +866,8 @@ void fn_1_3264(omObjData* arg0) {
if (lbl_1_bss_1C == 0) {
lbl_1_bss_20 = 1.0 - 0.95 * (1.0f - lbl_1_bss_20);
var_f31 = lbl_1_bss_20;
} else {
}
else {
lbl_1_bss_20 += 0.008333333333333333;
lbl_1_bss_20 = (lbl_1_bss_20 > 1.0f) ? 1.0f : lbl_1_bss_20;
var_f31 = 0.5 + -0.5 * cosd(180.0f * lbl_1_bss_20);
@ -902,53 +891,31 @@ void fn_1_3264(omObjData* arg0) {
lbl_1_data_134.unk10 = 2.0 * (rand8() / 255.0) - 1.0;
lbl_1_data_134.unk14 = 2.0 * (rand8() / 255.0) - 1.0;
lbl_1_data_134.unk10 = 0.0f;
temp_f28 = (lbl_1_data_134.unk10 - lbl_1_data_134.unk08) * (lbl_1_data_134.unk10 - lbl_1_data_134.unk08) + (lbl_1_data_134.unk14 - lbl_1_data_134.unk0C) * (lbl_1_data_134.unk14 - lbl_1_data_134.unk0C);
temp_f28 = (lbl_1_data_134.unk10 - lbl_1_data_134.unk08) * (lbl_1_data_134.unk10 - lbl_1_data_134.unk08)
+ (lbl_1_data_134.unk14 - lbl_1_data_134.unk0C) * (lbl_1_data_134.unk14 - lbl_1_data_134.unk0C);
} while (sqrtf(temp_f28) < 0.75);
}
lbl_1_data_134.unk04 = (lbl_1_data_134.unk04 > 24) ? 24
: (lbl_1_data_134.unk04 > 0) ? lbl_1_data_134.unk04 : 0;
lbl_1_data_134.unk04 = (lbl_1_data_134.unk04 > 24) ? 24 : (lbl_1_data_134.unk04 > 0) ? lbl_1_data_134.unk04 : 0;
temp_f26 = lbl_1_data_134.unk08;
temp_f27 = lbl_1_data_134.unk0C;
temp_f26 *= lbl_1_data_134.unk04 * 2;
temp_f27 *= lbl_1_data_134.unk04 * 2;
lbl_1_data_134.unk00 = !lbl_1_data_134.unk00;
lbl_1_data_134.unk04 = (lbl_1_data_134.unk04 > 24) ? 23
: (lbl_1_data_134.unk04 - 1 > 0) ? (lbl_1_data_134.unk04 - 1) : 0;
lbl_1_data_134.unk04 = (lbl_1_data_134.unk04 > 24) ? 23 : (lbl_1_data_134.unk04 - 1 > 0) ? (lbl_1_data_134.unk04 - 1) : 0;
Center.x = 0.0f;
Center.y = 100.0f + temp_f27;
}
}
s16 fn_1_4474(void) {
AnimData* var_r29;
void* var_r28;
s16 fn_1_4474(void)
{
AnimData *var_r29;
void *var_r28;
s16 var_r31;
s16 var_r30;
HsfanimStruct00 sp8 = {
0x96,
{ 0x00, 0x00 },
50.0f,
0.0f,
65.0f,
{ 0.0f, -0.195f, 0.0f },
80.0f,
0.99f,
40.0f,
0.999f,
4,
{
{ 0xFF, 0xFF, 0x20, 0xFF },
{ 0xFF, 0xFF, 0x00, 0xFF },
{ 0xFF, 0xFF, 0x80, 0xFF },
{ 0xFF, 0xFF, 0xFF, 0xFF }
},
{
{ 0xFF, 0xFF, 0xFF, 0x00 },
{ 0xFF, 0xFF, 0xFF, 0x00 },
{ 0xFF, 0xFF, 0xFF, 0x00 },
{ 0xFF, 0xFF, 0xFF, 0x00 }
}
};
HsfanimStruct00 sp8 = { 0x96, { 0x00, 0x00 }, 50.0f, 0.0f, 65.0f, { 0.0f, -0.195f, 0.0f }, 80.0f, 0.99f, 40.0f, 0.999f, 4,
{ { 0xFF, 0xFF, 0x20, 0xFF }, { 0xFF, 0xFF, 0x00, 0xFF }, { 0xFF, 0xFF, 0x80, 0xFF }, { 0xFF, 0xFF, 0xFF, 0xFF } },
{ { 0xFF, 0xFF, 0xFF, 0x00 }, { 0xFF, 0xFF, 0xFF, 0x00 }, { 0xFF, 0xFF, 0xFF, 0x00 }, { 0xFF, 0xFF, 0xFF, 0x00 } } };
lbl_1_bss_5C[lbl_1_bss_58] = sp8;
var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_BOARD, 107), MEMORY_DEFAULT_NUM, HEAP_DATA);
@ -963,8 +930,9 @@ s16 fn_1_4474(void) {
return var_r31;
}
void fn_1_45F8(omObjData* arg0) {
StructBss330Data* sp14[9];
void fn_1_45F8(omObjData *arg0)
{
StructBss330Data *sp14[9];
float spC[2];
s32 sp8;
s32 var_r29;
@ -974,15 +942,8 @@ void fn_1_45F8(omObjData* arg0) {
s32 i;
for (i = 0; i < 28; i++) {
s32 sp38[] = {
0x7F1, 0x7F2, 0x7F7, 0x7F8,
0x7F9, 0x7FA, 0x7FB, 0x7FC,
0x7FD, 0x7FE, 0x7FF, 0x800,
0x801, 0x802, 0x803, 0x804,
0x7FB, 0x7FC, 0x7FD, 0x7FE,
0x7FF, 0x800, 0x801, 0x802,
0x803, 0x804, 0x7FB, 0x7FC
};
s32 sp38[] = { 0x7F1, 0x7F2, 0x7F7, 0x7F8, 0x7F9, 0x7FA, 0x7FB, 0x7FC, 0x7FD, 0x7FE, 0x7FF, 0x800, 0x801, 0x802, 0x803, 0x804, 0x7FB, 0x7FC,
0x7FD, 0x7FE, 0x7FF, 0x800, 0x801, 0x802, 0x803, 0x804, 0x7FB, 0x7FC };
if (lbl_1_bss_35C[i].unk00 > 3) {
lbl_1_bss_35C[i].unk00 = 3;
@ -1056,7 +1017,8 @@ void fn_1_45F8(omObjData* arg0) {
if (lbl_1_bss_51C[sp14[i]->unk38].unk0C != 0) {
sp14[i]->unk18 = 3;
sp14[i]->unk1C = 0;
} else {
}
else {
sp14[i]->unk5C = 1;
}
}
@ -1082,7 +1044,8 @@ void fn_1_45F8(omObjData* arg0) {
if (var_r29 >= 9 || lbl_1_bss_0 == 0) {
MGSeqParamSet(lbl_1_data_14E, 2, -1);
lbl_1_data_14E = -1;
} else {
}
else {
lbl_1_bss_0 -= (lbl_1_bss_0 > 0);
MGSeqParamSet(lbl_1_data_14E, 1, (lbl_1_bss_0 + 59) / 60);
}
@ -1140,7 +1103,8 @@ void fn_1_45F8(omObjData* arg0) {
lbl_1_bss_50 = 1007;
lbl_1_bss_54 = 0;
}
} else {
}
else {
lbl_1_bss_50 = 1005;
lbl_1_bss_54 = 0;
}
@ -1152,13 +1116,15 @@ void fn_1_45F8(omObjData* arg0) {
if (lbl_1_bss_38 != 9) {
if (lbl_1_bss_38 < 9) {
HuAudSStreamPlay(1);
} else {
}
else {
HuAudSStreamPlay(1);
}
if (lbl_1_bss_38 < 4 && sp14[lbl_1_bss_38]->unk04 != -1) {
GWPlayerCoinWinSet(sp14[lbl_1_bss_38]->unk04, 10);
}
} else if (lbl_1_bss_38 == 9) {
}
else if (lbl_1_bss_38 == 9) {
HuAudSStreamPlay(4);
}
}
@ -1175,8 +1141,9 @@ void fn_1_45F8(omObjData* arg0) {
}
}
void fn_1_53A0(omObjData* arg0) {
StructBss330Data* sp50[9];
void fn_1_53A0(omObjData *arg0)
{
StructBss330Data *sp50[9];
s32 i;
for (i = 0; i < 9; i++) {
@ -1191,10 +1158,7 @@ void fn_1_53A0(omObjData* arg0) {
lbl_1_bss_51C[i].unk04 = i / 3;
lbl_1_bss_51C[i].unk08 = 0.0f;
lbl_1_bss_51C[i].unk0C = 1;
Hu3DModelPosSet(lbl_1_bss_32C->model[i + 1],
500.0 * (lbl_1_bss_51C[i].unk00 - 1),
-16.666666f,
500.0 * (lbl_1_bss_51C[i].unk04 - 1));
Hu3DModelPosSet(lbl_1_bss_32C->model[i + 1], 500.0 * (lbl_1_bss_51C[i].unk00 - 1), -16.666666f, 500.0 * (lbl_1_bss_51C[i].unk04 - 1));
Hu3DModelScaleSet(lbl_1_bss_32C->model[i + 1], 1.6666666f, 1.6666666f, 1.6666666f);
Hu3DModelAttrSet(arg0->model[i + 1], HU3D_MOTATTR_PAUSE);
Hu3DModelShadowMapSet(arg0->model[i + 1]);
@ -1215,22 +1179,13 @@ void fn_1_53A0(omObjData* arg0) {
arg0->func = fn_1_3264;
}
s32 lbl_1_data_1E4[] = {
DATA_MAKE_NUM(DATADIR_M458, 19),
DATA_MAKE_NUM(DATADIR_M458, 20),
DATA_MAKE_NUM(DATADIR_M458, 21),
DATA_MAKE_NUM(DATADIR_M458, 22),
DATA_MAKE_NUM(DATADIR_M458, 23),
DATA_MAKE_NUM(DATADIR_M458, 24),
DATA_MAKE_NUM(DATADIR_M458, 25),
DATA_MAKE_NUM(DATADIR_M458, 26),
DATA_MAKE_NUM(DATADIR_M458, 27),
DATA_MAKE_NUM(DATADIR_M458, 28),
DATA_MAKE_NUM(DATADIR_M458, 29)
};
s32 lbl_1_data_1E4[] = { DATA_MAKE_NUM(DATADIR_M458, 19), DATA_MAKE_NUM(DATADIR_M458, 20), DATA_MAKE_NUM(DATADIR_M458, 21),
DATA_MAKE_NUM(DATADIR_M458, 22), DATA_MAKE_NUM(DATADIR_M458, 23), DATA_MAKE_NUM(DATADIR_M458, 24), DATA_MAKE_NUM(DATADIR_M458, 25),
DATA_MAKE_NUM(DATADIR_M458, 26), DATA_MAKE_NUM(DATADIR_M458, 27), DATA_MAKE_NUM(DATADIR_M458, 28), DATA_MAKE_NUM(DATADIR_M458, 29) };
void fn_1_5850(omObjData* arg0) {
StructBss330Data* temp_r31;
void fn_1_5850(omObjData *arg0)
{
StructBss330Data *temp_r31;
s32 sp10[] = { 0, 1, 2, 3 };
s32 var_r25;
s32 var_r28;
@ -1246,13 +1201,15 @@ void fn_1_5850(omObjData* arg0) {
for (i = 0; i <= temp_r31->unk00 - 4; i++) {
do {
var_r28++;
} while (GWPlayerCfg[0].character == var_r28 || GWPlayerCfg[1].character == var_r28 || GWPlayerCfg[2].character == var_r28 || GWPlayerCfg[3].character == var_r28);
} while (GWPlayerCfg[0].character == var_r28 || GWPlayerCfg[1].character == var_r28 || GWPlayerCfg[2].character == var_r28
|| GWPlayerCfg[3].character == var_r28);
}
temp_r31->unk08 = (var_r28 == 8) ? -1 : var_r28;
temp_r31->unk0C = -1;
temp_r31->unk04 = -1;
temp_r31->unk10 = 0;
} else {
}
else {
for (i = 0; i < 4; i++) {
for (j = 0; j < 4; j++) {
if (i == GWPlayerCfg[j].group) {
@ -1277,13 +1234,15 @@ void fn_1_5850(omObjData* arg0) {
temp_r31->unk48 = -1;
if (temp_r31->unk08 != -1) {
arg0->model[0] = CharModelCreate(temp_r31->unk08, 4);
} else {
}
else {
arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_BKOOPA, 7));
}
omSetTra(arg0, 0.0f, temp_r31->unk00 == 0 ? 0 : 300, 0.0f);
if (temp_r31->unk08 != -1) {
omSetSca(arg0, 2.5f, 2.5f, 2.5f);
} else {
}
else {
omSetSca(arg0, 2.0f, 2.0f, 2.0f);
}
for (i = 0; i < 9; i++) {
@ -1291,7 +1250,8 @@ void fn_1_5850(omObjData* arg0) {
if (temp_r31->unk00 < 4 || (i != 1 && i != 2)) {
arg0->motion[i] = CharModelMotionCreate(temp_r31->unk08, lbl_1_data_48[i] + (lbl_1_data_6C[i] ? temp_r31->unk08 : 0));
}
} else if (lbl_1_data_90[i] != 0) {
}
else if (lbl_1_data_90[i] != 0) {
arg0->motion[i] = Hu3DJointMotionFile(arg0->model[0], lbl_1_data_90[i]);
}
}
@ -1314,7 +1274,8 @@ void fn_1_5850(omObjData* arg0) {
for (i = 0; i < 9; i++) {
if (temp_r31->unk00 == 0) {
arg0->model[i + 2] = Hu3DModelCreateFile(lbl_1_data_1E4[i]);
} else {
}
else {
arg0->model[i + 2] = Hu3DModelLink(lbl_1_bss_330[0]->model[i + 2]);
}
Hu3DMotionTimeSet(arg0->model[i + 2], 10.0f);
@ -1328,7 +1289,8 @@ void fn_1_5850(omObjData* arg0) {
arg0->func = fn_1_4C8;
}
void fn_1_60A4(omObjData* arg0) {
void fn_1_60A4(omObjData *arg0)
{
lbl_1_bss_50 = 1000;
lbl_1_bss_54 = 0;
lbl_1_bss_48 = 0;
@ -1338,8 +1300,9 @@ void fn_1_60A4(omObjData* arg0) {
arg0->func = fn_1_45F8;
}
void ObjectSetup(void) {
omObjData* var_r30;
void ObjectSetup(void)
{
omObjData *var_r30;
s32 i;
OSReport("******* M463 ObjectSetup *********\n");
@ -1396,9 +1359,10 @@ void ObjectSetup(void) {
lbl_1_bss_358 = omAddObjEx(lbl_1_bss_40, 103, 0, 0, -1, fn_1_60A4);
}
void fn_1_659C(omObjData* arg0) {
StructBss330Data* spC[9];
void* sp8;
void fn_1_659C(omObjData *arg0)
{
StructBss330Data *spC[9];
void *sp8;
s32 var_r31;
s32 var_r30;

View file

@ -308,8 +308,7 @@ void fn_1_29C(omObjData *arg0)
lbl_1_bss_864[var_r31] = Hu3DParManCreate(temp_r28, 0x1F4, &lbl_1_data_168[0]);
Hu3DParManAttrSet(lbl_1_bss_864[var_r31], 0x864);
Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(lbl_1_bss_864[var_r31]), 1U);
Hu3DParManPosSet(
lbl_1_bss_864[var_r31], (100.0 * sind(36.0f * var_r31)), 0.0f, 100.0 * cosd(36.0f * var_r31));
Hu3DParManPosSet(lbl_1_bss_864[var_r31], (100.0 * sind(36.0f * var_r31)), 0.0f, 100.0 * cosd(36.0f * var_r31));
Hu3DParManRotSet(lbl_1_bss_864[var_r31], -90.0f, 0.0f, 0.0f);
}
@ -596,10 +595,10 @@ void fn_1_20F4(void)
Hu3DModelObjMtxGet(temp_r3, lbl_1_data_D8[(var_r29 * 2) + 1], spC0);
Hu3DMtxTransGet(spC0, &sp18);
PSMTXInverse(sp30, sp60);
MTXInverse(sp30, sp60);
Hu3DModelObjMtxGet(temp_r3, lbl_1_data_D8[(var_r29 * 2) + 1], spC0);
Hu3DMtxTransGet(spC0, &sp18);
PSMTXMultVec(sp60, &sp18, &sp18);
MTXMultVec(sp60, &sp18, &sp18);
temp_f27 = atan2d(sp18.z, sp18.x);
temp_r31 = &lbl_1_bss_40[var_r29 * 2];
@ -654,7 +653,7 @@ void fn_1_28F8(Point3d *arg0, Point3d *arg1)
cam = &Hu3DCamera[0];
C_MTXLookAt(sp18, &cam->pos, &cam->up, &cam->target);
PSMTXMultVec(sp18, arg0, &spC);
MTXMultVec(sp18, arg0, &spC);
temp_f31 = (1.2f * (spC.z * (sind(cam->fov / 2) / (cosd(cam->fov / 2)))));
temp_f30 = (spC.z * (sind(cam->fov / 2) / (cosd(cam->fov / 2))));
@ -795,10 +794,10 @@ void fn_1_2B68(ModelData *mdl, Mtx arg1)
GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP);
GXSetAlphaCompare(GX_GEQUAL, 1U, GX_AOP_AND, GX_GEQUAL, 1U);
GXSetZCompLoc(0U);
PSMTXIdentity(arg1);
MTXIdentity(arg1);
GXLoadPosMtxImm(arg1, 0U);
PSMTXInvXpose(arg1, sp90);
MTXInvXpose(arg1, sp90);
GXLoadNrmMtxImm(sp90, 0);
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0);
@ -812,7 +811,7 @@ void fn_1_2B68(ModelData *mdl, Mtx arg1)
GXLoadTexObj(&sp30, GX_TEXMAP0);
GXSetNumIndStages(1U);
PSMTXScale(sp150, 0.1f, 0.1f, 0.0f);
MTXScale(sp150, 0.1f, 0.1f, 0.0f);
sp18[0][0] = sp150[0][0];
sp18[0][1] = sp150[0][1];
sp18[0][2] = 0.0f;
@ -820,12 +819,12 @@ void fn_1_2B68(ModelData *mdl, Mtx arg1)
sp18[1][1] = sp150[1][1];
sp18[1][2] = 0.0f;
PSMTXRotRad(spF0, 0x58, -1.5707964f);
MTXRotRad(spF0, 0x58, -1.5707964f);
mtxRot(spF0, 0.0f, 0.0f, 0.0f);
temp_f31 = 0.0015625f;
PSMTXScale(sp120, temp_f31, temp_f31, temp_f31);
PSMTXConcat(sp120, spF0, sp150);
PSMTXTrans(spC0, 0.5f, 0.0f, 0.5f);
MTXScale(sp120, temp_f31, temp_f31, temp_f31);
MTXConcat(sp120, spF0, sp150);
MTXTrans(spC0, 0.5f, 0.0f, 0.5f);
GXLoadTexMtxImm(sp150, 0x1EU, GX_MTX2x4);
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_POS, 0x1EU, 0U, 0x7DU);
GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD0, GX_TEXMAP1);

File diff suppressed because it is too large Load diff

View file

@ -482,7 +482,7 @@ void fn_1_3F5C(s32 arg0)
BoardModelMotionStart(lbl_1_data_310, 2, 0x40000001);
BoardModelMotionStart(lbl_1_data_310, 1, 0x40000001);
BoardModelRotYSet(lbl_1_data_310, 0.0f);
PSMTXIdentity(sp38);
MTXIdentity(sp38);
BoardModelMtxSet(lbl_1_data_310, &sp38);
sp20.x = 0.0f;
@ -624,13 +624,13 @@ void fn_1_4424(w03StructUnk2 *arg0)
sp30 = sp48;
sp18 = sp54;
BoardMTXCalcLookAt(spA8, &sp18, &sp24, &sp30);
PSMTXTranspose(spA8, spA8);
MTXTranspose(spA8, spA8);
MTXRotDeg(spD8, 'z', temp_f30);
PSMTXTrans(sp108, 0.0f, -350.0f, 0.0f);
PSMTXConcat(spD8, sp108, sp108);
PSMTXConcat(spA8, sp108, sp108);
PSMTXTrans(sp78, sp54.x, sp54.y, sp54.z);
PSMTXConcat(sp78, sp108, sp78);
MTXTrans(sp108, 0.0f, -350.0f, 0.0f);
MTXConcat(spD8, sp108, sp108);
MTXConcat(spA8, sp108, sp108);
MTXTrans(sp78, sp54.x, sp54.y, sp54.z);
MTXConcat(sp78, sp108, sp78);
Hu3DMtxTransGet(sp78, &temp_r27->unk_08);
BoardModelPosSetV(temp_r27->model, &temp_r27->unk_08);
BoardModelVisibilitySet(temp_r27->model, 1);
@ -1078,16 +1078,16 @@ void fn_1_5C5C(omObjData *arg0, w03UnkStruct5 *arg1)
sp20.y = 1.0f;
BoardMTXCalcLookAt(sp110, &sp14, &sp20, &sp8);
PSMTXTranspose(sp110, sp110);
MTXTranspose(sp110, sp110);
MTXRotDeg(spE0, 'z', -arg1->unk_04);
PSMTXTrans(sp50, 0.0f, -600.0f, 0.0f);
PSMTXConcat(spE0, sp50, sp50);
PSMTXConcat(sp110, sp50, sp50);
PSMTXTrans(sp80, sp44.x, sp44.y, sp44.z);
PSMTXConcat(sp80, sp50, sp80);
MTXTrans(sp50, 0.0f, -600.0f, 0.0f);
MTXConcat(spE0, sp50, sp50);
MTXConcat(sp110, sp50, sp50);
MTXTrans(sp80, sp44.x, sp44.y, sp44.z);
MTXConcat(sp80, sp50, sp80);
Hu3DMtxTransGet(sp80, &sp44);
MTXRotDeg(spB0, 'y', atan2d(-sp2C.x, -sp2C.z));
PSMTXConcat(spB0, spE0, sp110);
MTXConcat(spB0, spE0, sp110);
BoardModelMtxSet(lbl_1_data_310, &sp110);
BoardModelPosSetV(lbl_1_data_310, &sp44);
BoardCameraRotSet(-20.0f, atan2d(sp2C.x, sp2C.z));

View file

@ -742,12 +742,12 @@ void fn_1_B0A4(s32 arg0)
}
if (temp_r29 == 5) {
PSMTXTrans(sp18, 0.0f, -50.0f, 0.0f);
MTXTrans(sp18, 0.0f, -50.0f, 0.0f);
BoardModelMtxSet(temp_r30->unk_06[i], &sp18);
}
if ((temp_r29 == 6) || (temp_r29 == 7)) {
PSMTXTrans(sp18, 0.0f, 0.0f, 8.0f);
MTXTrans(sp18, 0.0f, 0.0f, 8.0f);
BoardModelMtxSet(temp_r30->unk_06[i], &sp18);
}
}

View file

@ -1,17 +1,18 @@
#include "dolphin.h"
#include "REL/executor.h"
#include "game/process.h"
#include "game/data.h"
#include "game/gamework_data.h"
#include "REL/w03Dll.h"
#include "dolphin.h"
#include "game/audio.h"
#include "game/board/main.h"
#include "game/board/model.h"
#include "game/board/player.h"
#include "game/board/space.h"
#include "game/board/ui.h"
#include "game/data.h"
#include "game/gamework_data.h"
#include "game/hsfman.h"
#include "game/board/main.h"
#include "game/objsub.h"
#include "game/process.h"
#include "ext_math.h"
@ -29,17 +30,16 @@ void fn_1_2818(void);
void fn_1_2A40(void);
void fn_1_2B44(void);
//data
// data
s16 lbl_1_data_280 = -1;
s16 lbl_1_data_282 = -1;
s16 lbl_1_data_284 = -1;
s16 lbl_1_data_286 = -1;
s32 lbl_1_data_288 = -1;
//BSS Extern
// BSS Extern
//BSS
// BSS
s8 lbl_1_bss_6F;
s8 lbl_1_bss_6E;
s16 lbl_1_bss_6C;
@ -48,12 +48,13 @@ s16 lbl_1_bss_68;
GXTexObj lbl_1_bss_48;
char lbl_1_bss_44[4];
char lbl_1_bss_38[12];
void* lbl_1_bss_34;
void *lbl_1_bss_34;
f32 lbl_1_bss_30;
s8 lbl_1_bss_2C;
Process* lbl_1_bss_28;
Process *lbl_1_bss_28;
void fn_1_12C8(void) {
void fn_1_12C8(void)
{
BoardRollDispSet(0);
lbl_1_bss_28 = HuPrcChildCreate(&fn_1_1358, 0x2003, 0x2000, 0, boardMainProc);
HuPrcDestructorSet2(lbl_1_bss_28, &fn_1_152C);
@ -65,7 +66,8 @@ void fn_1_12C8(void) {
BoardRollDispSet(1);
}
void fn_1_1358(void) {
void fn_1_1358(void)
{
s32 cur_player_index;
s32 unkC;
@ -76,7 +78,8 @@ void fn_1_1358(void) {
if ((BoardSpaceFlagGet(0, GWPlayer[cur_player_index].space_curr) & 0x2000)) {
lbl_1_bss_6E = 0;
lbl_1_bss_6C = lbl_1_bss_C[3];
} else {
}
else {
lbl_1_bss_6E = 1;
lbl_1_bss_6C = lbl_1_bss_C[4];
}
@ -84,7 +87,8 @@ void fn_1_1358(void) {
if (fn_1_1650(cur_player_index) != 0) {
if (fn_1_1D1C() != 0) {
fn_1_1ED4(cur_player_index);
} else {
}
else {
fn_1_20E0(cur_player_index);
}
if (lbl_1_bss_2C) {
@ -106,7 +110,8 @@ void fn_1_1358(void) {
HuPrcEnd();
}
void fn_1_152C(void) {
void fn_1_152C(void)
{
BoardConfettiKill();
if (lbl_1_data_282 != -1) {
@ -123,7 +128,8 @@ void fn_1_152C(void) {
lbl_1_bss_28 = NULL;
}
s32 fn_1_15E8(void) {
s32 fn_1_15E8(void)
{
BoardModelVisibilitySet(lbl_1_bss_6C, 1);
if (lbl_1_data_284 != -1) {
@ -134,7 +140,8 @@ s32 fn_1_15E8(void) {
return 1;
}
s32 fn_1_1650(s32 arg0) {
s32 fn_1_1650(s32 arg0)
{
Point3d sp38;
Point3d sp2C;
Point3d sp20;
@ -144,14 +151,14 @@ s32 fn_1_1650(s32 arg0) {
s32 temp2;
BoardPlayerIdleSet(arg0);
if (lbl_1_bss_0->unk2) {
BoardWinCreate(0, MAKE_MESSID(22, 0), -1);
BoardWinWait();
BoardWinKill();
return 0;
}
temp2 = BoardSpaceLinkFlagSearch(0, GWPlayer[arg0].space_curr, 0x02000000);
BoardSpacePosGet(0, temp2, &sp38);
BoardPlayerPosGet(arg0, &sp2C);
@ -170,14 +177,14 @@ s32 fn_1_1650(s32 arg0) {
while (GWPlayer[arg0].moving) {
HuPrcVSleep();
}
BoardStatusShowSetAll(0);
BoardPlayerMotBlendSet(arg0, 0xB4, 0xF);
while (BoardPlayerMotBlendCheck(arg0) == 0) {
HuPrcVSleep();
}
BoardPlayerIdleSet(arg0);
BoardWinCreate(2, MAKE_MESSID(22, 1), 2);
BoardWinWait();
@ -187,7 +194,8 @@ s32 fn_1_1650(s32 arg0) {
if (GWPlayer[arg0].com) {
if (BoardRandMod(0x64) > 0x32U) {
BoardComKeySetLeft();
} else {
}
else {
BoardComKeySetRight();
}
}
@ -200,56 +208,35 @@ s32 fn_1_1650(s32 arg0) {
BoardMusStart(1, 0x19, 0x7F, 0);
HuAudFXPlay(0x435);
sp8.y = BoardModelRotYGet(lbl_1_bss_6C);
while (BoardDAngleCalcRange(&sp8.y, 180.0f, 2.0f) == 0) {
BoardModelRotYSet(lbl_1_bss_6C, sp8.y);
HuPrcVSleep();
}
HuAudFXPlay(0x445);
BoardModelRotYSet(lbl_1_bss_6C, 180.0f);
while (BoardMusStatusGet(1) != 0) {
HuPrcVSleep();
}
return 1;
}
s32 lbl_1_data_290[] = {
DATA_MAKE_NUM(DATADIR_MARIOMOT, 98),
DATA_MAKE_NUM(DATADIR_LUIGIMOT, 98),
DATA_MAKE_NUM(DATADIR_PEACHMOT, 98),
DATA_MAKE_NUM(DATADIR_YOSHIMOT, 98),
DATA_MAKE_NUM(DATADIR_WARIOMOT, 98),
DATA_MAKE_NUM(DATADIR_DONKEYMOT, 98),
DATA_MAKE_NUM(DATADIR_DAISYMOT, 98),
DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 98)
};
s32 lbl_1_data_290[] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 98), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 98), DATA_MAKE_NUM(DATADIR_PEACHMOT, 98),
DATA_MAKE_NUM(DATADIR_YOSHIMOT, 98), DATA_MAKE_NUM(DATADIR_WARIOMOT, 98), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 98),
DATA_MAKE_NUM(DATADIR_DAISYMOT, 98), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 98) };
s32 lbl_1_data_2B0[] = {
DATA_MAKE_NUM(DATADIR_MARIOMOT, 51),
DATA_MAKE_NUM(DATADIR_LUIGIMOT, 51),
DATA_MAKE_NUM(DATADIR_PEACHMOT, 51),
DATA_MAKE_NUM(DATADIR_YOSHIMOT, 51),
DATA_MAKE_NUM(DATADIR_WARIOMOT, 51),
DATA_MAKE_NUM(DATADIR_DONKEYMOT, 51),
DATA_MAKE_NUM(DATADIR_DAISYMOT, 51),
DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 51)
};
s32 lbl_1_data_2B0[] = { DATA_MAKE_NUM(DATADIR_MARIOMOT, 51), DATA_MAKE_NUM(DATADIR_LUIGIMOT, 51), DATA_MAKE_NUM(DATADIR_PEACHMOT, 51),
DATA_MAKE_NUM(DATADIR_YOSHIMOT, 51), DATA_MAKE_NUM(DATADIR_WARIOMOT, 51), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 51),
DATA_MAKE_NUM(DATADIR_DAISYMOT, 51), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 51) };
s32 lbl_1_data_2D0[] = {
0x00000125, 0x00000165, 0x000001A5,
0x000001E5, 0x00000225, 0x00000265,
0x000002A5, 0x000002E5
};
s32 lbl_1_data_2D0[] = { 0x00000125, 0x00000165, 0x000001A5, 0x000001E5, 0x00000225, 0x00000265, 0x000002A5, 0x000002E5 };
s32 lbl_1_data_2F0[] = {
0x0000012E, 0x0000016E, 0x000001AE,
0x000001EE, 0x0000022E, 0x0000026E,
0x000002AE, 0x000002EE
};
s32 lbl_1_data_2F0[] = { 0x0000012E, 0x0000016E, 0x000001AE, 0x000001EE, 0x0000022E, 0x0000026E, 0x000002AE, 0x000002EE };
void fn_1_19DC(s32 arg0, s32 arg1) {
void fn_1_19DC(s32 arg0, s32 arg1)
{
s32 temp_r30;
s32 temp_r5;
s32 temp_r5_2;
@ -263,7 +250,8 @@ void fn_1_19DC(s32 arg0, s32 arg1) {
lbl_1_bss_6A = 8;
lbl_1_bss_68 = lbl_1_data_282;
var_r29 = lbl_1_data_2F0[GWPlayer[arg0].character];
} else {
}
else {
lbl_1_bss_6A = 7;
lbl_1_bss_68 = 1;
var_r29 = lbl_1_data_2D0[GWPlayer[arg0].character];
@ -284,11 +272,10 @@ void fn_1_19DC(s32 arg0, s32 arg1) {
while (BoardPlayerMotionEndCheck(arg0) == 0) {
HuPrcVSleep();
}
HuPrcSleep(60);
if (arg1 != 0) {
BoardPlayerMotionShiftSet(arg0, lbl_1_bss_68, 0.0f, 8.0f, HU3D_MOTATTR_NONE);
HuPrcSleep(9);
@ -315,7 +302,8 @@ void fn_1_19DC(s32 arg0, s32 arg1) {
}
}
s32 fn_1_1D1C(void) {
s32 fn_1_1D1C(void)
{
s32 sp34;
s32 sp30;
s32 sp2C;
@ -330,11 +318,7 @@ s32 fn_1_1D1C(void) {
s32 maxTurn;
s32 sp8[3] = { 70, 50, 45 };
s32 sp14[3][3] = {
{3, 5, 22},
{5, 10, 35},
{5, 15, 35}
};
s32 sp14[3][3] = { { 3, 5, 22 }, { 5, 10, 35 }, { 5, 15, 35 } };
while (BoardMusStatusGet(1) != 0) {
HuPrcVSleep();
@ -352,23 +336,26 @@ s32 fn_1_1D1C(void) {
}
modRand = BoardRandMod(100);
if (modRand < sp8[var_r31] ) {
if (modRand < sp8[var_r31]) {
return 1;
}
modRand2 = BoardRandMod(100 - sp8[var_r31]);
if (modRand2 < sp14[var_r31][0]) {
lbl_1_bss_2C = 3;
} else if (modRand2 < sp14[var_r31][1]) {
}
else if (modRand2 < sp14[var_r31][1]) {
lbl_1_bss_2C = 2;
} else {
}
else {
lbl_1_bss_2C = 1;
}
return 0;
}
void fn_1_1ED4(s32 arg0) {
void fn_1_1ED4(s32 arg0)
{
Point3d spC;
f32 sp8;
@ -383,12 +370,12 @@ void fn_1_1ED4(s32 arg0) {
spC.y += 700.0f;
BoardConfettiCreate(&spC, 0x64, 300.0f);
sp8 = BoardModelRotYGet(lbl_1_bss_6C);
while (BoardDAngleCalcRange(&sp8, 0.0f, 30.0f) == 0) {
BoardModelRotYSet(lbl_1_data_284, sp8);
HuPrcVSleep();
}
omVibrate(arg0, 0xC, 4, 2);
BoardMusStart(1, 0x1A, 0x7F, 0);
BoardModelRotYSet(lbl_1_data_284, 0.0f);
@ -399,7 +386,7 @@ void fn_1_1ED4(s32 arg0) {
}
BoardPlayerIdleSet(arg0);
while (BoardMusStatusGet(1) != 0) {
HuPrcVSleep();
}
@ -411,7 +398,8 @@ void fn_1_1ED4(s32 arg0) {
BoardConfettiStop();
}
void fn_1_20E0(s32 arg0) {
void fn_1_20E0(s32 arg0)
{
Point3d sp24;
Point3d sp18;
Point3d spC;
@ -436,28 +424,28 @@ void fn_1_20E0(s32 arg0) {
omVibrate(arg0, 0xC, 4, 2);
BoardModelRotYSet(lbl_1_data_284, 0.0f);
BoardModelRotYSet(lbl_1_bss_6C, 0.0f);
while (BoardFilterFadePauseCheck() == 0) {
HuPrcVSleep();
}
BoardMusStart(1, 0x1B, 0x7F, 0);
HuAudFXPlay(0x44A);
fn_1_2A40();
lbl_1_bss_30 = 0.0f;
while (lbl_1_bss_30 < 128.0f) {
HuPrcVSleep();
lbl_1_bss_30 += 12.0f;
}
if (lbl_1_bss_30 > 128.0f) {
lbl_1_bss_30 = 128.0f;
}
HuPrcSleep(40);
lbl_1_bss_30 = 128.0f;
while (lbl_1_bss_30 > 0.0f) {
HuPrcVSleep();
lbl_1_bss_30 -= 12.0f;
@ -475,13 +463,13 @@ void fn_1_20E0(s32 arg0) {
BoardCameraMotionStartEx(-1, NULL, NULL, 1360.0f, -1.0f, 13);
BoardCameraMotionWait();
}
BoardPlayerIdleSet(arg0);
while (BoardMusStatusGet(1) != 0) {
HuPrcVSleep();
}
BoardAudSeqPause(0, 0, 1000);
BoardWinCreate(2, MAKE_MESSID(22, 5), 2);
BoardWinWait();
@ -504,16 +492,16 @@ void fn_1_20E0(s32 arg0) {
for (var_f31 = 100.0f; var_f31 > 0.0f; var_f31 -= 2.0f) {
BoardCameraQuakeSet(0xA, var_f31);
HuPrcVSleep();
HuPrcVSleep();
}
BoardCameraQuakeReset();
if (lbl_1_data_288 != 0) {
HuAudFXStop(lbl_1_data_288);
lbl_1_data_288 = -1;
}
fn_1_2818();
omVibrate(arg0, 0xC, 0xC, 0);
HuAudFXPlay(0x438);
@ -530,7 +518,8 @@ void fn_1_20E0(s32 arg0) {
HuPrcSleep(0x3C);
}
void fn_1_26E0(s32 arg0) {
void fn_1_26E0(s32 arg0)
{
Point3d sp20;
Point3d sp14;
Point3d sp8;
@ -555,11 +544,12 @@ void fn_1_26E0(s32 arg0) {
BoardPlayerIdleSet(arg0);
}
void fn_1_2818(void) {
void fn_1_2818(void)
{
s16 temp_r29;
s16 temp_r30;
s16 j;
s16 sp8[3] = {0x0002, 0x003E, 0x007A};
s16 sp8[3] = { 0x0002, 0x003E, 0x007A };
temp_r29 = (4 - lbl_1_bss_2C) * 60;
BoardModelMotionStart(lbl_1_bss_C[1], 0, 0);
@ -570,19 +560,21 @@ void fn_1_2818(void) {
for (j = 0; j < ARRAY_COUNT(sp8); j++) {
if (temp_r30 == sp8[j]) {
HuAudFXPlay(0x446);
}
}
}
HuPrcVSleep();
} else {
}
else {
break;
}
}
}
BoardModelAttrSet(lbl_1_bss_C[1], 0x40000002);
HuPrcSleep(0x3C);
}
s32 fn_1_2930(s32 arg0) {
s32 fn_1_2930(s32 arg0)
{
lbl_1_bss_0->unk0--;
if (lbl_1_bss_0->unk0 <= 0) {
@ -605,14 +597,16 @@ s32 fn_1_2930(s32 arg0) {
return 0;
}
void fn_1_2A40(void) {
void fn_1_2A40(void)
{
lbl_1_bss_30 = 0.0f;
lbl_1_bss_34 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x96000, MEMORY_DEFAULT_NUM);
lbl_1_data_286 = Hu3DHookFuncCreate((void*)&fn_1_2B44);
lbl_1_data_286 = Hu3DHookFuncCreate((void *)&fn_1_2B44);
Hu3DModelLayerSet(lbl_1_data_286, 3);
}
void fn_1_2AC0(void) {
void fn_1_2AC0(void)
{
if (lbl_1_bss_34) {
HuMemDirectFree(lbl_1_bss_34);
lbl_1_bss_34 = NULL;
@ -624,15 +618,16 @@ void fn_1_2AC0(void) {
}
}
void fn_1_2B44(void) {
void fn_1_2B44(void)
{
Mtx44 sp50;
Mtx sp20;
GXColor sp14;
GXColor sp10;
GXColor spC;
u8 sp8;
GXColor sp1C = {0xFF, 0xFF, 0xFF, 0xFF};
GXColor sp18 = {0xFF, 0xFF, 0xFF, 0xFF};
GXColor sp1C = { 0xFF, 0xFF, 0xFF, 0xFF };
GXColor sp18 = { 0xFF, 0xFF, 0xFF, 0xFF };
f32 temp_f28 = 0.0f;
f32 temp_f30 = 640.0f;
@ -644,7 +639,7 @@ void fn_1_2B44(void) {
GXLoadTexObj(&lbl_1_bss_48, GX_TEXMAP0);
C_MTXOrtho(sp50, temp_f27, temp_f29, temp_f28, temp_f30, 0.0f, 10.0f);
GXSetProjection(sp50, GX_ORTHOGRAPHIC);
PSMTXIdentity(sp20);
MTXIdentity(sp20);
GXLoadPosMtxImm(sp20, 0);
GXSetCurrentMtx(0);
GXSetViewport(0.0f, 0.0f, temp_f30, 1.0f + temp_f29, 0.0f, 1.0f);

View file

@ -1,6 +1,15 @@
#include "REL/w06Dll.h"
#include "game/audio.h"
#include "game/board/audio.h"
#include "game/board/com.h"
#include "game/board/main.h"
#include "game/board/model.h"
#include "game/board/player.h"
#include "game/board/space.h"
#include "game/board/ui.h"
#include "game/board/window.h"
#include "game/data.h"
#include "game/frand.h"
#include "game/gamework_data.h"
#include "game/hsfanim.h"
#include "game/hsfman.h"
@ -10,15 +19,7 @@
#include "game/process.h"
#include "game/sprite.h"
#include "game/window.h"
#include "game/frand.h"
#include "game/board/audio.h"
#include "game/board/com.h"
#include "game/board/main.h"
#include "game/board/model.h"
#include "game/board/player.h"
#include "game/board/space.h"
#include "game/board/ui.h"
#include "game/board/window.h"
#include "dolphin.h"
#include "ext_math.h"
@ -132,7 +133,8 @@ static s8 lbl_1_data_1AD[3] = { 0, 0, 0 };
static s16 lbl_1_data_1B0 = -1;
static omObjData *lbl_1_data_1B4[3] = { NULL, NULL, NULL };
void fn_1_D70(void) {
void fn_1_D70(void)
{
Vec sp20;
Vec sp14;
Vec sp8;
@ -157,7 +159,8 @@ void fn_1_D70(void) {
}
}
void fn_1_F6C(void) {
void fn_1_F6C(void)
{
s32 i;
for (i = 0; i < 3; i++) {
@ -173,7 +176,8 @@ void fn_1_F6C(void) {
}
}
void fn_1_1054(void) {
void fn_1_1054(void)
{
BoardRollDispSet(0);
lbl_1_bss_18 = HuPrcChildCreate(fn_1_1148, 0x2003, 0x3800, 0, boardMainProc);
HuPrcDestructorSet2(lbl_1_bss_18, fn_1_10E4);
@ -183,7 +187,8 @@ void fn_1_1054(void) {
BoardRollDispSet(1);
}
static void fn_1_10E4(void) {
static void fn_1_10E4(void)
{
fn_1_43DC();
if (lbl_1_data_1A8 != -1) {
HuWinKill(lbl_1_data_1A8);
@ -192,7 +197,8 @@ static void fn_1_10E4(void) {
lbl_1_bss_18 = NULL;
}
static void fn_1_1148(void) {
static void fn_1_1148(void)
{
s32 temp_r3;
s32 temp_r31;
@ -205,7 +211,8 @@ static void fn_1_1148(void) {
HuPrcEnd();
}
static void fn_1_11B0(void) {
static void fn_1_11B0(void)
{
float sp8[2];
float var_f31;
float var_f30;
@ -219,7 +226,8 @@ static void fn_1_11B0(void) {
HuWinMesSet(lbl_1_data_1A8, MAKE_MESSID(48, 25));
}
static s32 fn_1_12A0(s32 arg0) {
static s32 fn_1_12A0(s32 arg0)
{
Vec sp38;
Vec sp2C;
Vec sp20;
@ -285,7 +293,8 @@ static s32 fn_1_12A0(s32 arg0) {
return 1;
}
static void fn_1_15CC(s32 arg0) {
static void fn_1_15CC(s32 arg0)
{
s8 sp8[] = { 80, 50 };
s32 var_r28;
s16 temp_r26;
@ -343,7 +352,8 @@ static void fn_1_15CC(s32 arg0) {
BoardWinCreate(2, MAKE_MESSID(48, 41), 6);
BoardWinWait();
BoardWinKill();
} else {
}
else {
for (var_r31 = 0; var_r31 < 3; var_r31++) {
if (lbl_1_bss_30[var_r31] == 0) {
lbl_1_bss_33 = var_r31;
@ -400,7 +410,8 @@ static void fn_1_15CC(s32 arg0) {
}
}
static void fn_1_1BE0(s32 arg0, s32 arg1) {
static void fn_1_1BE0(s32 arg0, s32 arg1)
{
Vec sp18;
Vec spC;
s16 temp_r30;
@ -420,7 +431,8 @@ static void fn_1_1BE0(s32 arg0, s32 arg1) {
fn_1_2048(-1, 4);
}
static void fn_1_1CB0(s32 arg0) {
static void fn_1_1CB0(s32 arg0)
{
while (!BoardModelMotionEndCheck(lbl_1_bss_3C[arg0])) {
HuPrcVSleep();
}
@ -430,7 +442,8 @@ static void fn_1_1CB0(s32 arg0) {
}
}
static void fn_1_1D5C(s32 arg0) {
static void fn_1_1D5C(s32 arg0)
{
s8 spC[] = { 0x20, 0x40, 0x60 };
s16 sp10[] = { -100, 0, 100 };
s32 sp8;
@ -442,7 +455,8 @@ static void fn_1_1D5C(s32 arg0) {
}
}
static void fn_1_1E30(s32 arg0) {
static void fn_1_1E30(s32 arg0)
{
s8 spC[] = { 0x20, 0x40, 0x60 };
s16 sp10[] = { -100, 0, 100 };
s32 sp8;
@ -454,7 +468,8 @@ static void fn_1_1E30(s32 arg0) {
}
}
static void fn_1_1F08(s32 arg0) {
static void fn_1_1F08(s32 arg0)
{
s32 i;
s32 j;
@ -477,7 +492,8 @@ static void fn_1_1F08(s32 arg0) {
}
}
static void fn_1_2048(s32 arg0, s32 arg1) {
static void fn_1_2048(s32 arg0, s32 arg1)
{
Data1B4Work *temp_r30;
s32 i;
@ -490,7 +506,8 @@ static void fn_1_2048(s32 arg0, s32 arg1) {
}
}
static void fn_1_20CC(s32 arg0) {
static void fn_1_20CC(s32 arg0)
{
Data1B4Work *temp_r30;
s32 i;
@ -504,7 +521,8 @@ static void fn_1_20CC(s32 arg0) {
}
}
static s32 fn_1_2174(s32 arg0) {
static s32 fn_1_2174(s32 arg0)
{
Data1B4Work *temp_r31;
if (!lbl_1_data_1B4[arg0]) {
@ -514,7 +532,8 @@ static s32 fn_1_2174(s32 arg0) {
return temp_r31->unk02;
}
static s16 fn_1_21CC(s32 arg0) {
static s16 fn_1_21CC(s32 arg0)
{
Data1B4Work *temp_r31;
if (!lbl_1_data_1B4[arg0]) {
@ -524,7 +543,8 @@ static s16 fn_1_21CC(s32 arg0) {
return temp_r31->unk06;
}
static void fn_1_2220(s32 arg0, s32 arg1, s32 arg2) {
static void fn_1_2220(s32 arg0, s32 arg1, s32 arg2)
{
Mtx sp18;
Vec spC;
omObjData *temp_r3;
@ -555,7 +575,7 @@ static void fn_1_2220(s32 arg0, s32 arg1, s32 arg2) {
temp_r3->rot.y = 0.0f;
temp_r3->rot.z = 0.0f;
if (arg2 == 5) {
PSMTXTrans(sp18, 0.0f, -50.0f, 0.0f);
MTXTrans(sp18, 0.0f, -50.0f, 0.0f);
BoardModelMtxSet(temp_r31->unk06, &sp18);
}
BoardModelPosSet(temp_r31->unk06, temp_r3->trans.x, temp_r3->trans.y, temp_r3->trans.z);
@ -563,7 +583,8 @@ static void fn_1_2220(s32 arg0, s32 arg1, s32 arg2) {
BoardModelLayerSet(temp_r31->unk06, 2);
}
static void fn_1_243C(omObjData *arg0) {
static void fn_1_243C(omObjData *arg0)
{
Vec sp14;
Vec sp8;
Data1B4Work *temp_r31;
@ -592,7 +613,8 @@ static void fn_1_243C(omObjData *arg0) {
sp8.y += 200.0f;
arg0->trans.y = (sp8.y - sp14.y) / 30.0f;
arg0->rot.z = 0.01f;
} else {
}
else {
arg0->rot.z += 0.033333335f;
if (arg0->rot.z > 1.0f) {
arg0->rot.z = 1.0f;
@ -617,7 +639,8 @@ static void fn_1_243C(omObjData *arg0) {
BoardModelPosGet(lbl_1_bss_3C[temp_r31->unk00_field2], &sp8);
arg0->trans.y = (sp8.y - sp14.y) / 30.0f;
arg0->rot.z = 1.0f;
} else {
}
else {
arg0->rot.z -= 0.033333335f;
if (arg0->rot.z < 0.001f) {
arg0->rot.z = 0.001f;
@ -644,11 +667,13 @@ static void fn_1_243C(omObjData *arg0) {
BoardPlayerPosGet(temp_r31->unk00_field1, &sp8);
arg0->rot.x = (sp8.x - sp14.x) / 30.0f;
arg0->rot.z = (sp8.z - sp14.z) / 30.0f;
} else if (temp_r31->unk08 < 30) {
}
else if (temp_r31->unk08 < 30) {
sp14.x += arg0->rot.x;
sp14.z += arg0->rot.z;
BoardModelPosSetV(temp_r31->unk06, &sp14);
} else {
}
else {
BoardPlayerPosGet(temp_r31->unk00_field1, &sp8);
arg0->trans.x = sp8.x;
arg0->trans.y = sp8.y;
@ -669,13 +694,10 @@ static void fn_1_243C(omObjData *arg0) {
}
}
static s8 lbl_1_data_1C5[14] = {
1, 1, 3, 3, 2,
2, 2, 1, 2, 3,
0, 4, 5, 0
};
static s8 lbl_1_data_1C5[14] = { 1, 1, 3, 3, 2, 2, 2, 1, 2, 3, 0, 4, 5, 0 };
static s32 fn_1_2A1C(s32 arg0) {
static s32 fn_1_2A1C(s32 arg0)
{
s32 var_r29;
s32 var_r28;
s32 var_r30;
@ -696,24 +718,30 @@ static s32 fn_1_2A1C(s32 arg0) {
if (var_r29 > var_r28) {
if (var_r29 > var_r30) {
var_r31 = 0;
} else if (var_r30 > var_r28) {
}
else if (var_r30 > var_r28) {
var_r31 = 2;
} else {
}
else {
var_r31 = 1;
}
} else {
}
else {
if (var_r28 > var_r30) {
var_r31 = 1;
} else if (var_r30 > var_r29) {
}
else if (var_r30 > var_r29) {
var_r31 = 2;
} else {
}
else {
var_r31 = 0;
}
}
return var_r31;
}
static void fn_1_2B60(s32 arg0) {
static void fn_1_2B60(s32 arg0)
{
omObjData *temp_r3;
Bss24Work *temp_r31;
@ -728,7 +756,8 @@ static void fn_1_2B60(s32 arg0) {
temp_r31->unk02 = 1;
}
static void fn_1_2C18(void) {
static void fn_1_2C18(void)
{
Bss24Work *var_r27;
if (lbl_1_bss_24) {
@ -737,7 +766,8 @@ static void fn_1_2C18(void) {
}
}
static void fn_1_2D90(s32 arg0) {
static void fn_1_2D90(s32 arg0)
{
Bss24Work *var_r31;
if (lbl_1_bss_24) {
@ -746,7 +776,8 @@ static void fn_1_2D90(s32 arg0) {
}
}
static s32 fn_1_2DD0(void) {
static s32 fn_1_2DD0(void)
{
Bss24Work *var_r31;
if (!lbl_1_bss_24) {
@ -756,7 +787,8 @@ static s32 fn_1_2DD0(void) {
return var_r31->unk01;
}
static u32 fn_1_2E18(Bss24Work *arg0) {
static u32 fn_1_2E18(Bss24Work *arg0)
{
s32 temp_r31;
s32 var_r30;
@ -774,7 +806,8 @@ static u32 fn_1_2E18(Bss24Work *arg0) {
return var_r30;
}
static void fn_1_2EF4(omObjData *arg0) {
static void fn_1_2EF4(omObjData *arg0)
{
Vec sp14;
Vec sp8;
float var_f30;
@ -794,12 +827,14 @@ static void fn_1_2EF4(omObjData *arg0) {
}
if (lbl_1_bss_30[0] != 0) {
var_r25 = 1;
} else {
}
else {
var_r25 = 0;
}
if (lbl_1_bss_30[2] != 0) {
var_r26 = 1;
} else {
}
else {
var_r26 = 2;
}
switch (temp_r30->unk01) {
@ -820,13 +855,16 @@ static void fn_1_2EF4(omObjData *arg0) {
if (lbl_1_bss_30[0] == 0 && lbl_1_bss_30[1] == 0) {
if (BoardRandMod(100) < 50) {
var_r29 = 1;
} else {
}
else {
var_r29 = 2;
}
} else {
}
else {
if (lbl_1_bss_30[0] == 0) {
var_r29 = 2;
} else if (lbl_1_bss_30[1] == 0) {
}
else if (lbl_1_bss_30[1] == 0) {
var_r29 = 1;
}
}
@ -884,7 +922,8 @@ static void fn_1_2EF4(omObjData *arg0) {
}
}
static void fn_1_3470(void) {
static void fn_1_3470(void)
{
omObjData *temp_r3;
Bss28Work *temp_r31;
@ -901,7 +940,8 @@ static void fn_1_3470(void) {
temp_r31->unk0A = BoardModelMotionCreate(lbl_1_bss_C[4], DATA_MAKE_NUM(DATADIR_W06, 23));
}
static void fn_1_3560(s32 arg0) {
static void fn_1_3560(s32 arg0)
{
Bss28Work *temp_r31;
if (!lbl_1_bss_28) {
@ -910,13 +950,15 @@ static void fn_1_3560(s32 arg0) {
temp_r31 = OM_GET_WORK_PTR(lbl_1_bss_28, Bss28Work);
temp_r31->unk00_field1 = arg0;
if (arg0 != 1) {
(void) 0;
} else {
(void)0;
}
else {
temp_r31->unk06 = 20;
}
}
static s32 fn_1_35BC(void) {
static s32 fn_1_35BC(void)
{
Bss28Work *temp_r31;
if (!lbl_1_bss_28) {
@ -926,7 +968,8 @@ static s32 fn_1_35BC(void) {
return temp_r31->unk00_field1;
}
static void fn_1_3604(s32 arg0) {
static void fn_1_3604(s32 arg0)
{
Bss28Work *temp_r31;
if (!lbl_1_bss_28) {
@ -949,7 +992,8 @@ static void fn_1_3604(s32 arg0) {
}
}
static void fn_1_3698(s8 arg0) {
static void fn_1_3698(s8 arg0)
{
Vec sp24;
Vec sp18;
Vec spC;
@ -976,7 +1020,8 @@ static void fn_1_3698(s8 arg0) {
if (ABS(temp_f31) >= 300.0f) {
var_f30 = 40.0f;
temp_r31->unk06 *= 2;
} else {
}
else {
var_f30 = 20.0f;
}
VECSubtract(&sp18, &sp24, &spC);
@ -986,7 +1031,8 @@ static void fn_1_3698(s8 arg0) {
BoardModelMotionSpeedSet(lbl_1_bss_C[4], 2.0f);
}
static void fn_1_3974(omObjData *arg0) {
static void fn_1_3974(omObjData *arg0)
{
Vec sp30;
Vec sp24;
s32 sp8;
@ -1012,7 +1058,8 @@ static void fn_1_3974(omObjData *arg0) {
fn_1_3560(4);
return;
}
} else {
}
else {
temp_r31->unk03++;
}
fn_1_3560(1);
@ -1062,7 +1109,8 @@ static void fn_1_3974(omObjData *arg0) {
}
}
static void fn_1_4070(void) {
static void fn_1_4070(void)
{
Bss2CWork *temp_r31;
lbl_1_bss_1C = 0;
@ -1074,7 +1122,8 @@ static void fn_1_4070(void) {
temp_r31->unk04 = MGSeqTimerCreateXY(temp_r31->unk01, 288, 64);
}
static void fn_1_4124(void) {
static void fn_1_4124(void)
{
Bss2CWork *temp_r31;
if (!lbl_1_bss_2C) {
@ -1086,7 +1135,8 @@ static void fn_1_4124(void) {
temp_r31->unk00_field0 = 1;
}
static void fn_1_4194(omObjData *arg0) {
static void fn_1_4194(omObjData *arg0)
{
Bss2CWork *temp_r31;
temp_r31 = OM_GET_WORK_PTR(arg0, Bss2CWork);
@ -1107,7 +1157,8 @@ static void fn_1_4194(omObjData *arg0) {
}
if (temp_r31->unk01 != 0) {
temp_r31->unk01--;
} else {
}
else {
MGSeqParamSet(temp_r31->unk04, 2, -1);
temp_r31->unk04 = -1;
lbl_1_bss_1C = 1;
@ -1117,7 +1168,8 @@ static void fn_1_4194(omObjData *arg0) {
temp_r31->unk02 = 60;
}
static void fn_1_42AC(s16 arg0) {
static void fn_1_42AC(s16 arg0)
{
ParticleData *var_r31;
lbl_1_bss_20 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_EFFECT, 0));
@ -1132,7 +1184,8 @@ static void fn_1_42AC(s16 arg0) {
var_r31->unk_02 = arg0;
}
static void fn_1_43DC(void) {
static void fn_1_43DC(void)
{
if (lbl_1_data_1B0 != -1) {
Hu3DModelKill(lbl_1_data_1B0);
lbl_1_data_1B0 = -1;
@ -1143,7 +1196,8 @@ static void fn_1_43DC(void) {
}
}
static void fn_1_4460(ModelData *model, ParticleData *particle, Mtx matrix) {
static void fn_1_4460(ModelData *model, ParticleData *particle, Mtx matrix)
{
HsfanimStruct01 *var_r31;
Vec sp8;
float var_f31;

View file

@ -1515,10 +1515,10 @@ void fn_1_7414(ModelData *model, Mtx matrix)
GXInitTexObj(&spC, Hu3DShadowData.unk_04, Hu3DShadowData.unk_02, Hu3DShadowData.unk_02, 1, GX_CLAMP, GX_CLAMP, GX_FALSE);
GXInitTexObjLOD(&spC, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1);
GXLoadTexObj(&spC, GX_TEXMAP0);
PSMTXInverse(Hu3DCameraMtx, sp5C);
PSMTXConcat(sp5C, matrix, sp8C);
PSMTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, sp2C);
PSMTXConcat(sp2C, sp8C, sp8C);
MTXInverse(Hu3DCameraMtx, sp5C);
MTXConcat(sp5C, matrix, sp8C);
MTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, sp2C);
MTXConcat(sp2C, sp8C, sp8C);
GXLoadTexMtxImm(sp8C, 0x39, GX_MTX3x4);
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, 0x39, GX_FALSE, 0x7D);
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0);