Merge branch 'main' into main

This commit is contained in:
CreateSource 2025-01-19 12:33:42 -05:00 committed by GitHub
commit aba9cabf59
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
99 changed files with 19364 additions and 7059 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

@ -608,13 +608,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 +625,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 +911,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 +923,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 +939,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 +951,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 +995,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 +1045,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 +1077,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 +1118,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 +1141,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 +1174,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 +1228,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 +1263,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 +1290,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 +1317,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

@ -462,9 +462,6 @@ void fn_1_F48(omObjData *object)
void fn_1_FA8(omObjData *object)
{
M425DllUnkBss10Struct *var_r31;
s32 var_ctr;
void *var_r4;
s32 temp_r3;
s32 var_r30;
s16 *var_r28;
s32 var_r27;
@ -565,28 +562,25 @@ 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);
}
}
float fn_1_15EC(float arg8, float arg9)
{
float var_f31;
float var_f30;
var_f30 = 360.0f;
var_f31 = 180.0 * (atan2f(arg9, arg8) / M_PI);
float var_f30 = 360.0f;
float var_f31 = 180.0 * (atan2f(arg9, arg8) / M_PI);
if (var_f31 < 0.0f) {
var_f31 += var_f30;
}
@ -681,10 +675,57 @@ void fn_1_1B40(omObjData *object)
break;
}
if (0) {
int x = 12;
int y = 24;
char *str = "%f";
print8(x, y, 1.5f, str, sqrtf(fn_1_15EC(object->trans.x, object->trans.y)));
s32 var_r31;
s32 var_r30;
s32 var_r29;
float var_f31;
float var_f20;
float var_f19;
float var_f18;
(void) object;
(void) object;
(void) var_r31;
(void) var_r31;
(void) var_r31;
(void) var_r31;
(void) var_r31;
(void) var_r31;
(void) var_r30;
(void) var_r30;
(void) var_r30;
(void) var_r30;
(void) var_r30;
(void) var_r30;
(void) var_r29;
(void) var_r29;
(void) var_r29;
(void) var_r29;
(void) var_r29;
(void) var_r29;
(void) var_f31;
(void) var_f31;
(void) var_f31;
(void) var_f31;
(void) var_f31;
(void) var_f31;
(void) var_f31;
(void) var_f31;
(void) var_f31;
(void) var_f31;
(void) var_f31;
(void) var_f31;
(void) var_f31;
(void) var_f31;
(void) var_f20;
(void) var_f20;
(void) var_f20;
(void) var_f19;
(void) var_f19;
(void) var_f19;
(void) var_f18;
(void) var_f18;
(void) var_f18;
}
var_r31->unk_38 = var_r31->unk_04 * sind(var_r31->unk_18);
var_r31->unk_40 = var_r31->unk_04 * cosd(var_r31->unk_18);
@ -1368,7 +1409,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++) {
@ -1497,8 +1538,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);
@ -1506,7 +1547,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);

1094
src/REL/m428Dll/main.c Normal file

File diff suppressed because it is too large Load diff

1275
src/REL/m428Dll/map.c Normal file

File diff suppressed because it is too large Load diff

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

@ -119,7 +119,7 @@ typedef struct M438MainWork3 {
float unk_170[3];
float unk_17C[3];
u16 unk_188[3];
} M438MainWork3; /* size = */
} M438MainWork3; /* size = 0x190 */
typedef struct M438StructBss298 {
/* 0x00 */ u8 unk_00;
@ -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,16 @@ 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 +672,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 +690,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++) {
@ -1630,20 +1630,7 @@ void fn_1_5670(float arg8, float *arg0, float *arg1, float (*arg2)[3], float (*a
sp48[var_r30] = arg2[var_r30][var_r29];
sp8[var_r30] = arg3[var_r30][var_r29];
}
var_f30 = arg8;
var_r31 = var_f30;
var_f30 -= var_r31;
var_f31 = arg1[var_r31 + 1] - arg1[var_r31];
var_f29 = var_f31 * var_f30;
var_f28 = sp48[var_r31]
+ (var_f29
* ((var_f29 * ((3.0f * sp8[var_r31]) + ((var_f29 * (sp8[var_r31 + 1] - sp8[var_r31])) / var_f31)))
+ (((sp48[var_r31 + 1] - sp48[var_r31]) / var_f31) - (var_f31 * ((2.0f * sp8[var_r31]) + sp8[var_r31 + 1])))));
if (var_f31 == 0.0f) {
var_f28 = sp48[var_r31];
}
var_f27 = var_f28;
arg0[var_r29] = var_f27;
arg0[var_r29] = fn_1_513C(arg8, arg1, sp48, sp8, 3);
}
}

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);

1044
src/REL/mstory3Dll/main.c Executable file

File diff suppressed because it is too large Load diff

1617
src/REL/mstory3Dll/result.c Executable file

File diff suppressed because it is too large Load diff

2928
src/REL/mstory3Dll/result_seq.c Executable file

File diff suppressed because it is too large Load diff

322
src/REL/mstory3Dll/win_effect.c Executable file
View file

@ -0,0 +1,322 @@
#include "REL/mstory3Dll.h"
#include "game/data.h"
#include "game/hsfanim.h"
#include "game/hsfex.h"
#include "game/hsfman.h"
#include "game/memory.h"
#include "game/sprite.h"
#include "ext_math.h"
#define frand5() (((s32)frand() & 0x1F))
#define frand8() (((s32)frand() & 0xFF))
typedef struct {
/* 0x00 */ Vec* unk00;
/* 0x04 */ Vec unk04;
/* 0x10 */ Vec unk10;
/* 0x1C */ u16 unk1C;
/* 0x1E */ u16 unk1E;
/* 0x20 */ u16 unk20;
/* 0x22 */ s16 unk22;
/* 0x24 */ float unk24;
/* 0x28 */ AnimData* unk28;
} StructBss1CF8; // Size 0x2C
typedef struct {
/* 0x00 */ s16 unk00;
/* 0x02 */ char unk02[0x1A];
/* 0x1C */ StructBss1CF8* unk1C;
} StructFn1E13C; // Size unknown
void fn_1_1E13C(s32 arg0, s32 arg1, StructBss1CF8* arg2, Vec* arg3);
void fn_1_1E558(void);
void fn_1_1E820(ModelData* model, ParticleData* particle, Mtx matrix);
StructBss1CF8 lbl_1_bss_1CF8[2];
s32 lbl_1_bss_1CF4;
s32 lbl_1_bss_1CF0;
s32 lbl_1_bss_1CEC;
s16 lbl_1_bss_1CE8;
void fn_1_1DED8(s32 arg0, Vec* arg1, Vec* arg2, s16 arg3) {
AnimData* temp_r28;
s16 var_r27;
fn_1_1E13C(arg0 + 1, arg0 + 3, &lbl_1_bss_1CF8[0], arg2);
lbl_1_bss_1CF8[0].unk04 = *arg1;
lbl_1_bss_1CF8[0].unk24 = arg3 - 20;
fn_1_1E13C(arg0 + 2, arg0 + 3, &lbl_1_bss_1CF8[1], arg2);
lbl_1_bss_1CF8[1].unk04 = *arg1;
lbl_1_bss_1CF8[1].unk24 = arg3 - 20;
temp_r28 = HuSprAnimReadFile(arg0);
lbl_1_bss_1CE8 = HuSprGrpCreate(1);
var_r27 = HuSprCreate(temp_r28, 0, 0);
HuSprGrpMemberSet(lbl_1_bss_1CE8, 0, var_r27);
HuSprPosSet(lbl_1_bss_1CE8, 0, arg2->x, arg2->y);
HuSprTPLvlSet(lbl_1_bss_1CE8, 0, 0.0f);
HuSprAttrSet(lbl_1_bss_1CE8, 0, 8);
HuPrcChildCreate(fn_1_1E558, 100, 0x2000, 0, HuPrcCurrentGet());
lbl_1_bss_1CF4 = 0;
lbl_1_bss_1CF0 = 0;
lbl_1_bss_1CEC = 0;
}
void fn_1_1E0F4(void) {
lbl_1_bss_1CF4 = 1;
}
s32 fn_1_1E108(void) {
return lbl_1_bss_1CF0;
}
void fn_1_1E118(void) {
lbl_1_bss_1CEC = 1;
}
s32 fn_1_1E12C(void) {
return lbl_1_bss_1CE8;
}
void fn_1_1E13C(s32 arg0, s32 arg1, StructBss1CF8* arg2, Vec* arg3) {
Vec sp14;
AnimBmpData* temp_r31;
s32 sp10;
s32 var_r27;
s32 var_r26;
u16* var_r25;
AnimData* var_r24;
Vec* var_r22;
StructFn1E13C* temp_r23;
s16 var_r29;
s16 var_r28;
var_r24 = HuSprAnimReadFile(arg0);
arg2->unk28 = var_r24;
temp_r31 = var_r24->bmp;
sp10 = temp_r31->sizeX * temp_r31->sizeY;
var_r25 = temp_r31->data;
for (var_r28 = var_r26 = 0; var_r28 < temp_r31->sizeY; var_r28 += 2) {
for (var_r29 = 0; var_r29 < temp_r31->sizeX; var_r29 += 2) {
var_r25 = (u16*) temp_r31->data + ((var_r28 % 4) * 4 + (var_r28 / 4) * temp_r31->sizeX * 4 + (var_r29 / 4) * 16 + var_r29 % 4);
if (*var_r25 != 0x8000) {
var_r26++;
}
}
}
arg2->unk20 = var_r26;
var_r22 = arg2->unk00 = HuMemDirectMallocNum(HEAP_SYSTEM, var_r26 * sizeof(*var_r22), MEMORY_DEFAULT_NUM);
arg2->unk1C = temp_r31->sizeX;
arg2->unk1E = temp_r31->sizeY;
Hu3D2Dto3D(arg3, 1, &arg2->unk10);
for (var_r28 = 0; var_r28 < temp_r31->sizeY; var_r28 += 2) {
for (var_r29 = 0; var_r29 < temp_r31->sizeX; var_r29 += 2) {
var_r25 = (u16*) temp_r31->data + ((var_r28 % 4) * 4 + (var_r28 / 4) * temp_r31->sizeX * 4 + (var_r29 / 4) * 16 + var_r29 % 4);
if (*var_r25 != 0x8000) {
sp14 = *arg3;
sp14.x = sp14.x + var_r29 - temp_r31->sizeX / 2;
sp14.y = sp14.y + var_r28 - temp_r31->sizeY / 2;
Hu3D2Dto3D(&sp14, 1, var_r22);
var_r22++;
}
}
}
HuSprAnimKill(var_r24);
var_r24 = HuSprAnimRead(HuDataRead(arg1));
var_r27 = Hu3DParticleCreate(var_r24, var_r26);
arg2->unk22 = var_r27;
Hu3DModelPosSet(var_r27, 0.0f, 0.0f, 0.0f);
Hu3DModelLayerSet(var_r27, 1);
Hu3DParticleColSet(var_r27, 0xFF, 0xFF, 0xA);
Hu3DParticleScaleSet(var_r27, 20.0f);
Hu3DParticleHookSet(var_r27, fn_1_1E820);
Hu3DParticleBlendModeSet(var_r27, 1);
Hu3DParticleAttrSet(var_r27, 2);
temp_r23 = Hu3DData[var_r27].unk_120;
temp_r23->unk1C = arg2;
temp_r23->unk00 = 0;
OSReport("Particle Count %d\n", var_r26);
}
void fn_1_1E558(void) {
float var_f31;
float var_f30;
float temp_f29;
s16* temp_r30;
s16* temp_r29;
s16 i;
var_f31 = 0.0f;
var_f30 = 0.0f;
while (lbl_1_bss_1CF4 == 0) {
HuPrcVSleep();
}
Hu3DParticleAttrReset(lbl_1_bss_1CF8->unk22, 2);
HuPrcSleep(20);
Hu3DParticleAttrReset(lbl_1_bss_1CF8[1].unk22, 2);
temp_r30 = Hu3DData[lbl_1_bss_1CF8[0].unk22].unk_120;
temp_r29 = Hu3DData[lbl_1_bss_1CF8[1].unk22].unk_120;
while (*temp_r30 == 0 || *temp_r29 == 0) {
HuPrcVSleep();
}
for (i = 0; i <= 20; i++) {
temp_f29 = i / 20.0f;
HuSprTPLvlSet(lbl_1_bss_1CE8, 0, temp_f29);
HuPrcVSleep();
}
OSReport("Finish\n");
for (i = 0; i < 2; i++) {
Hu3DModelKill(lbl_1_bss_1CF8[i].unk22);
HuSprAnimKill(lbl_1_bss_1CF8[i].unk28);
}
lbl_1_bss_1CF0 = 1;
while (TRUE) {
if (lbl_1_bss_1CEC != 0) {
break;
}
var_f31 += var_f30;
if (var_f31 > 360.0f) {
var_f31 -= 360.0f;
}
var_f30 += 0.5;
if (var_f30 > 10.0f) {
var_f30 = 10.0f;
}
temp_f29 = 1.0 + 0.25 * sind(var_f31);
HuSprScaleSet(lbl_1_bss_1CE8, 0, temp_f29, temp_f29);
HuPrcVSleep();
}
HuSprGrpKill(lbl_1_bss_1CE8);
HuPrcEnd();
while (TRUE) {
HuPrcVSleep();
}
}
void fn_1_1E820(ModelData* model, ParticleData* particle, Mtx matrix) {
Vec sp8;
float temp_f30;
float temp_f31;
s16 var_r22;
s16 var_r29;
StructBss1CF8* temp_r28;
HsfanimStruct01* var_r31;
s16 var_r27;
s16 temp_r25;
s16 temp_r24;
s16 temp_r21;
s16 temp_r26;
s16 temp_r20;
s16 var_r23;
temp_r28 = particle->unk_1C;
if (particle->unk_34 == 0) {
var_r31 = particle->unk_48;
for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) {
var_r31->unk2C = 0.0f;
}
}
if (particle->unk_2D & 2) {
return;
}
temp_r21 = temp_r28->unk24 - (temp_r28->unk24 / 5.0f);
temp_r26 = temp_r21 / 2;
temp_r20 = temp_r21 - temp_r26;
PSVECSubtract(&temp_r28->unk04, &temp_r28->unk10, &sp8);
temp_f31 = PSVECMag(&sp8) / temp_r20;
for (var_r22 = 0; var_r22 < particle->unk_30 / (temp_r28->unk24 / 5.0f); var_r22++) {
var_r31 = particle->unk_48;
for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) {
if (!var_r31->unk2C) {
break;
}
}
if (var_r29 == particle->unk_30) {
break;
}
var_r31->unk34 = temp_r28->unk04;
var_r27 = (frand8() * 360) >> 8;
temp_f30 = 0.2 * frand5();
var_r31->unk08.x = temp_f30 * sind(var_r27);
var_r31->unk08.y = 0.1 * (frand5() + 100);
var_r31->unk08.z = temp_f30 * cosd(var_r27);
var_r31->unk40.r = 0xF0;
var_r31->unk40.g = 0x80;
var_r31->unk40.b = 0x60;
var_r31->unk2C = 10.0f;
var_r31->unk00 = 0;
var_r31->unk02 = 0;
var_r31->unk14.x = frandmod(360);
}
var_r31 = particle->unk_48;
for (var_r29 = var_r23 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) {
if (!var_r31->unk2C) {
continue;
}
if (var_r31->unk00_s16 == 0) {
PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34);
var_r31->unk08.x *= 0.999f;
var_r31->unk08.y -= 0.5f;
var_r31->unk08.z *= 0.999f;
if (var_r31->unk02 > temp_r26 - (temp_r26 / 5.0)) {
PSVECScale(&var_r31->unk08, &var_r31->unk08, 1.0 - ((var_r31->unk02 - (temp_r26 - temp_r26 / 5.0)) / (temp_r26 / 5.0)));
}
if (var_r31->unk02 == temp_r26) {
var_r31->unk00_s16++;
}
if (var_r31->unk34.y <= 0.0f) {
var_r31->unk08.y = 0.5f * -var_r31->unk08.y;
var_r31->unk34.y = 0.0f;
}
} else if (var_r31->unk00_s16 == 1) {
sp8 = temp_r28->unk00[var_r29];
PSVECSubtract(&sp8, &var_r31->unk34, &sp8);
if (PSVECMag(&sp8) <= 1.0 + temp_f31) {
var_r23++;
var_r31->unk34 = temp_r28->unk00[var_r29];
var_r31->unk00_s16++;
continue;
}
PSVECNormalize(&sp8, &sp8);
var_r31->unk08.x = sp8.x * temp_f31 + sind(var_r31->unk14.x);
var_r31->unk08.y = sp8.y * temp_f31;
var_r31->unk08.z = sp8.z * temp_f31;
PSVECAdd(&var_r31->unk08, &var_r31->unk34, &var_r31->unk34);
var_r31->unk14.x += 20.0f;
} else {
var_r23++;
}
if (var_r31->unk00_s16 >= 1) {
var_r27 = var_r31->unk40.r;
var_r27 += (var_r27 - 0xFF) / 20;
if (var_r27 > 0xFF) {
var_r31->unk40.r = 0xFF;
} else {
var_r31->unk40.r = var_r27;
}
temp_r25 = var_r31->unk40.g;
temp_r25 += (temp_r25 - 0xFF) / 20;
if (temp_r25 > 0xFF) {
var_r31->unk40.g = 0xFF;
} else {
var_r31->unk40.g = temp_r25;
}
temp_r24 = var_r31->unk40.b;
temp_r24 += (temp_r24 - 0x80) / 20;
if (temp_r24 > 0x80) {
var_r31->unk40.b = 0x80;
} else {
var_r31->unk40.b = temp_r24;
}
}
var_r31->unk2C -= 0.2f;
if (var_r31->unk2C < 5.0f) {
var_r31->unk2C = 5.0f;
}
var_r31->unk02++;
}
DCStoreRange(particle->unk_48, particle->unk_30 * sizeof(HsfanimStruct01));
if (var_r23 >= particle->unk_30) {
particle->unk_00++;
}
}

View file

@ -197,12 +197,12 @@ static omObjData *CreateHand(void)
return hand;
}
static void KillHand(omObjData *hand)
static void KillHand(omObjData *object)
{
s32 i;
for (i = 0; i < 1; i++) {
Hu3DModelKill(hand->model[i]);
Hu3DModelKill(object->model[i]);
}
}
@ -222,21 +222,21 @@ static omObjData *CreateSystem(void)
return system;
}
static void KillSystem(omObjData *system)
static void KillSystem(omObjData *object)
{
s32 i;
for (i = 0; i < 1; i++) {
Hu3DModelKill(system->model[i]);
Hu3DModelKill(object->model[i]);
}
}
static void StartSystemMotion(omObjData *system, s32 rumbleF, BOOL slowF)
static void StartSystemMotion(omObjData *object, s32 rumbleF, BOOL slowF)
{
s16 model = system->model[0];
s16 model = object->model[0];
Hu3DModelAttrReset(system->model[0], HU3D_MOTATTR_PAUSE);
Hu3DModelAttrReset(system->model[0], HU3D_MOTATTR_LOOP);
Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_PAUSE);
Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_LOOP);
if (rumbleF) {
Hu3DMotionStartEndSet(model, 60.0f, 120.0f);
if (slowF) {
@ -267,24 +267,24 @@ static omObjData *CreatePad(void)
return pad;
}
static void KillPad(omObjData *pad)
static void KillPad(omObjData *object)
{
s32 i;
for (i = 0; i < 1; i++) {
Hu3DModelKill(pad->model[i]);
Hu3DModelKill(object->model[i]);
}
}
static void ShakePad(omObjData *pad, BOOL on)
static void ShakePad(omObjData *object, BOOL on)
{
if (on) {
Hu3DModelAttrReset(pad->model[0], HU3D_MOTATTR_PAUSE);
Hu3DModelAttrSet(pad->model[0], HU3D_MOTATTR_LOOP);
Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_PAUSE);
Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP);
}
else {
Hu3DModelAttrSet(pad->model[0], HU3D_MOTATTR_PAUSE);
Hu3DModelAttrReset(pad->model[0], HU3D_MOTATTR_LOOP);
Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_PAUSE);
Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_LOOP);
}
}

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);

View file

@ -212,12 +212,12 @@ u8 GWBoardPlayCountGet(s32 board)
return GWGameStat.board_play_count[board];
}
void GWBoardMaxStarsSet(s32 board, s32 value)
void GWBoardMaxStarsSet(s32 board, s16 value)
{
GWGameStat.board_max_stars[board] = value;
}
u16 GWBoardMaxStarsGet(s32 board)
s32 GWBoardMaxStarsGet(s32 board)
{
return GWGameStat.board_max_stars[board];
}
@ -227,7 +227,7 @@ void GWBoardMaxCoinsSet(s32 board, s32 value)
GWGameStat.board_max_coins[board] = value;
}
u16 GWBoardMaxCoinsGet(s32 board)
s32 GWBoardMaxCoinsGet(s32 board)
{
return GWGameStat.board_max_coins[board];
}

View file

@ -1,133 +1,132 @@
#include "msm/msmmem.h"
typedef struct _unkStruct {
struct _unkStruct* prev;
struct _unkStruct* next;
u32 unk8;
u32 unkC;
void* unk10;
void* unk14;
char unk18[0x8];
} unkStruct;
typedef struct MSMBlock_s {
struct MSMBlock_s* prev;
struct MSMBlock_s* next;
u32 freeSize;
u32 size;
void* ptr;
char pad[12];
} MSMBLOCK;
typedef struct _unkMemStruct {
unkStruct* unk0;
u32 unk4;
unkStruct* unk8;
unkStruct unkC;
} unkMemStruct;
typedef struct MSMMem_s {
void *ptr;
u32 size;
MSMBLOCK *head;
MSMBLOCK first;
} MSM_MEM;
static unkMemStruct mem;
static MSM_MEM mem;
void msmMemFree(void* arg0) {
unkStruct* temp_r6;
unkStruct* temp_r7;
unkStruct* temp_r8;
unkStruct* temp_r5;
unkStruct* temp;
void msmMemFree(void* ptr) {
MSMBLOCK* block;
MSMBLOCK* blockPrev;
MSMBLOCK* blockNext;
MSMBLOCK* blockHead;
MSMBLOCK* base;
temp = arg0;
base = ptr;
temp_r6 = &temp[-1];
temp_r7 = temp_r6->prev;
temp_r8 = temp_r6->next;
if (mem.unk0 > temp_r6 || ((u32)mem.unk0 + (u32)mem.unk4) <= (u32)temp_r6) {
block = &base[-1];
blockPrev = block->prev;
blockNext = block->next;
if (mem.ptr > block || ((u32)mem.ptr + (u32)mem.size) <= (u32)block) {
return;
}
if ((temp_r7->next != temp_r6) || (temp_r6->unk10 != arg0) || (temp_r8 && (temp_r8->prev != temp_r6))) {
if ((blockPrev->next != block) || (block->ptr != ptr) || (blockNext && (blockNext->prev != block))) {
return;
}
temp_r7->unkC += temp_r6->unk8 + temp_r6->unkC;
temp_r7->next = temp_r8;
temp_r5 = mem.unk8;
if ((temp_r5 == temp_r6) || (temp_r5->unkC < temp_r7->unkC)) {
mem.unk8 = temp_r7;
blockPrev->size += block->freeSize + block->size;
blockPrev->next = blockNext;
blockHead = mem.head;
if ((blockHead == block) || (blockHead->size < blockPrev->size)) {
mem.head = blockPrev;
}
if (temp_r8) {
temp_r8->prev = temp_r7;
if (mem.unk8->unkC < temp_r8->unkC) {
mem.unk8 = temp_r8;
if (blockNext) {
blockNext->prev = blockPrev;
if (mem.head->size < blockNext->size) {
mem.head = blockNext;
}
}
}
void* msmMemAlloc(u32 arg0) {
s32 temp_r0;
u32 var_r5;
u32 var_r7;
unkStruct* temp_r5;
unkStruct* var_r8;
unkStruct* temp_r9;
void* msmMemAlloc(u32 size) {
s32 alignOfs;
u32 freeSize;
u32 allocSize;
MSMBLOCK* block;
MSMBLOCK* blockPrev;
MSMBLOCK* blockNext;
var_r7 = arg0 + 0x20;
temp_r0 = var_r7 & 0x1F;
if (temp_r0 != 0) {
var_r7 += 0x20 - temp_r0;
allocSize = size + 0x20;
alignOfs = allocSize & 0x1F;
if (alignOfs) {
allocSize += 0x20 - alignOfs;
}
if (mem.unk8->unkC >= var_r7) {
var_r8 = mem.unk8;
if (mem.head->size >= allocSize) {
blockPrev = mem.head;
} else {
var_r8 = &mem.unkC;
blockPrev = &mem.first;
do {
if (var_r8->unkC >= var_r7) break;
var_r8 = var_r8->next;
} while (var_r8);
if (!var_r8) {
if (blockPrev->size >= allocSize) break;
blockPrev = blockPrev->next;
} while (blockPrev);
if (!blockPrev) {
return NULL;
}
}
var_r5 = var_r8->unk8;
if (var_r5 != 0) {
var_r5 -= 0x20;
freeSize = blockPrev->freeSize;
if (freeSize != 0) {
freeSize -= 0x20;
}
temp_r5 = (void*)((u32)var_r8->unk10 + (var_r5));
temp_r9 = var_r8->next;
if ((mem.unk0 > temp_r5) || ((void*)((u32)mem.unk0 + (u32)mem.unk4) <= temp_r5)) {
block = (void*)((u32)blockPrev->ptr + (freeSize));
blockNext = blockPrev->next;
if ((mem.ptr > block) || ((void*)((u32)mem.ptr + (u32)mem.size) <= block)) {
return NULL;
}
temp_r5->unk8 = var_r7;
temp_r5->unkC = var_r8->unkC - var_r7;
temp_r5->unk10 = (temp_r5 + 1);
temp_r5->prev = var_r8;
temp_r5->next = temp_r9;
mem.unk8 = temp_r5;
var_r8->unkC = 0;
var_r8->next = temp_r5;
if (temp_r9) {
temp_r9->prev = temp_r5;
if (mem.unk8->unkC < temp_r9->unkC) {
mem.unk8 = temp_r9;
block->freeSize = allocSize;
block->size = blockPrev->size - allocSize;
block->ptr = (block + 1);
block->prev = blockPrev;
block->next = blockNext;
mem.head = block;
blockPrev->size = 0;
blockPrev->next = block;
if (blockNext) {
blockNext->prev = block;
if (mem.head->size < blockNext->size) {
mem.head = blockNext;
}
}
return temp_r5->unk10;
return block->ptr;
}
void msmMemInit(void* arg0, u32 arg1) {
unkStruct* temp_r7;
s32 temp;
void msmMemInit(void* ptr, u32 size) {
MSMBLOCK* block;
s32 ofs;
temp = (s32)arg0 & 0x1F;
switch (temp) {
ofs = (s32)ptr & 0x1F;
switch (ofs) {
default:
temp = 0x20 - temp;
ofs = 0x20 - ofs;
break;
case 0:
temp = 0;
ofs = 0;
break;
}
mem.unk0 = (void*)((s32)arg0 + temp);
temp = (s32)arg0 + arg1;
mem.unk4 = ((temp - (s32)mem.unk0) & ~0x1F);
temp_r7 = &mem.unkC;
temp_r7->unk8 = 0;
temp_r7->unkC = mem.unk4;
temp_r7->unk10 = mem.unk0;
temp_r7->prev = NULL;
temp_r7->next = NULL;
mem.unk8 = &mem.unkC;
mem.ptr = (void*)((s32)ptr + ofs);
ofs = (s32)ptr + size;
mem.size = ((ofs - (s32)mem.ptr) & ~0x1F);
block = &mem.first;
block->freeSize = 0;
block->size = mem.size;
block->ptr = mem.ptr;
block->prev = NULL;
block->next = NULL;
mem.head = &mem.first;
}

View file

@ -1,150 +1,127 @@
#include "msm/msmmus.h"
#include "msm/msmmem.h"
typedef struct {
/* 0x00 */ s16 unk00;
/* 0x02 */ s8 unk02;
/* 0x03 */ s8 unk03;
/* 0x04 */ s8 unk04;
/* 0x05 */ s8 unk05;
/* 0x06 */ char unk06[2];
/* 0x08 */ SND_SEQID unk08;
/* 0x0C */ void* unk0C;
/* 0x10 */ void* unk10;
/* 0x14 */ volatile s32 unk14;
/* 0x18 */ s32 unk18;
/* 0x1C */ s8 unk1C;
/* 0x1D */ char unk1D[3];
/* 0x20 */ volatile s32 unk20;
/* 0x24 */ s32 unk24;
/* 0x28 */ s8 unk28;
/* 0x29 */ char unk29[3];
/* 0x2C */ volatile s32 unk2C;
/* 0x30 */ s32 unk30;
/* 0x34 */ char unk34[1];
/* 0x35 */ volatile s8 unk35;
/* 0x36 */ s8 unk36;
/* 0x37 */ char unk37[1];
/* 0x38 */ SND_PLAYPARA unk38;
} msmMusStruct00; // Size 0x58
typedef struct MusPlayer_s {
/* 0x00 */ s16 musId;
/* 0x02 */ s8 baseVol;
/* 0x03 */ s8 vol;
/* 0x04 */ s8 status;
/* 0x05 */ s8 busyF;
/* 0x08 */ SND_SEQID seqId;
/* 0x0C */ void* songBuf;
/* 0x10 */ void* arrfile;
/* 0x14 */ volatile s32 fadeMaxTime;
/* 0x18 */ s32 fadeTime;
/* 0x1C */ s8 fadeVol;
/* 0x20 */ volatile s32 pauseOnMaxTime;
/* 0x24 */ s32 pauseOnTime;
/* 0x28 */ s8 pauseOnVol;
/* 0x2C */ volatile s32 pauseOffMaxTime;
/* 0x30 */ s32 pauseOffTime;
/* 0x28 */ s8 pauseOffVol;
/* 0x35 */ volatile s8 startVol;
/* 0x36 */ s8 targetVol;
/* 0x38 */ SND_PLAYPARA playPara;
} MUS_PLAYER; // Size 0x58
typedef struct {
/* 0x00 */ u16 unk00;
/* 0x02 */ s16 unk02;
/* 0x04 */ s32 unk04;
/* 0x08 */ s32 unk08;
/* 0x0C */ s8 unk0C;
/* 0x0D */ s8 unk0D;
/* 0x0E */ char unk0E[2];
} msmMusStruct01; // Size 0x10
static struct {
/* 0x000 */ s16 musMax;
/* 0x002 */ s8 musChanMax;
/* 0x003 */ s8 baseGrpNumPlay;
/* 0x004 */ s8 numPlay;
/* 0x008 */ s32 msmEntryNum;
/* 0x00C */ MSM_MUS *musData;
/* 0x010 */ s32 dummyMusOfs;
/* 0x014 */ void* musBuf;
/* 0x018 */ MUS_PLAYER player[4];
} mus;
typedef struct {
/* 0x000 */ s16 unk00;
/* 0x002 */ s8 unk02;
/* 0x003 */ s8 unk03;
/* 0x004 */ s8 unk04;
/* 0x005 */ char unk05[3];
/* 0x008 */ s32 unk08;
/* 0x00C */ msmMusStruct01* unk0C;
/* 0x010 */ s32 unk10;
/* 0x014 */ void* unk14;
/* 0x018 */ msmMusStruct00 unk18[1]; // unknown length
/* 0x01C */ char unk70[0x108];
} msmMusStruct02; // Size 0x178
static void msmMusPauseSub(MUS_PLAYER* player, BOOL pause, s32 speed) {
s32 time;
typedef struct {
/* 0x00 */ char unk00[0xC];
/* 0x0C */ s32 unk0C;
} UnkGroupDataPtr; // Size unknown
static msmMusStruct02 mus;
static void msmMusPauseSub(msmMusStruct00* arg0, BOOL pause, s32 speed) {
s32 temp_r30;
temp_r30 = speed / 15;
time = speed / 15;
if (pause) {
if (arg0->unk04 == 2) {
if (temp_r30 != 0) {
arg0->unk24 = temp_r30;
arg0->unk20 = temp_r30;
arg0->unk28 = 0x7F;
if (player->status == MSM_MUS_PLAY) {
if (time != 0) {
player->pauseOnTime = time;
player->pauseOnMaxTime = time;
player->pauseOnVol = 127;
} else {
sndSeqPause(arg0->unk08);
arg0->unk28 = 0;
sndSeqPause(player->seqId);
player->pauseOnVol = 0;
}
arg0->unk04 = 3;
player->status = MSM_MUS_PAUSE;
}
} else {
if (arg0->unk04 == 3) {
if (temp_r30 != 0) {
if (arg0->unk20 != 0) {
arg0->unk20 = -temp_r30;
if (player->status == MSM_MUS_PAUSE) {
if (time != 0) {
if (player->pauseOnMaxTime != 0) {
player->pauseOnMaxTime = -time;
} else {
sndSeqContinue(arg0->unk08);
arg0->unk20 = -temp_r30;
arg0->unk24 = 0;
arg0->unk28 = 0;
sndSeqContinue(player->seqId);
player->pauseOnMaxTime = -time;
player->pauseOnTime = 0;
player->pauseOnVol = 0;
}
} else {
sndSeqContinue(arg0->unk08);
arg0->unk28 = 0x7F;
sndSeqVolume(arg0->unk02 * arg0->unk03 * arg0->unk1C * arg0->unk28 / 2048383, 0, arg0->unk08, 0);
sndSeqContinue(player->seqId);
player->pauseOnVol = 127;
sndSeqVolume(player->baseVol * player->vol * player->fadeVol * player->pauseOnVol / (127*127*127), 0, player->seqId, 0);
}
arg0->unk04 = 2;
player->status = MSM_MUS_PLAY;
}
}
}
static void msmMusPauseFade(msmMusStruct00* arg0) {
if (arg0->unk20 > 0) {
if (--arg0->unk24 == 0) {
arg0->unk20 = 0;
arg0->unk28 = 0;
sndSeqPause(arg0->unk08);
static void msmMusPauseFade(MUS_PLAYER *player) {
if (player->pauseOnMaxTime > 0) {
if (--player->pauseOnTime == 0) {
player->pauseOnMaxTime = 0;
player->pauseOnVol = 0;
sndSeqPause(player->seqId);
} else {
arg0->unk28 = arg0->unk24 * 0x7F / arg0->unk20;
sndSeqVolume(arg0->unk02 * arg0->unk03 * arg0->unk1C * arg0->unk28 / 2048383, 0, arg0->unk08, 0);
player->pauseOnVol = player->pauseOnTime * 127 / player->pauseOnMaxTime;
sndSeqVolume(player->baseVol * player->vol * player->fadeVol * player->pauseOnVol / (127*127*127), 0, player->seqId, 0);
}
} else if (arg0->unk20 < 0) {
if (++arg0->unk24 >= -arg0->unk20) {
arg0->unk20 = 0;
arg0->unk28 = 0x7F;
} else if (player->pauseOnMaxTime < 0) {
if (++player->pauseOnTime >= -player->pauseOnMaxTime) {
player->pauseOnMaxTime = 0;
player->pauseOnVol = 127;
} else {
arg0->unk28 = arg0->unk24 * 0x7F / -arg0->unk20;
player->pauseOnVol = player->pauseOnTime * 127 / -player->pauseOnMaxTime;
}
sndSeqVolume(arg0->unk02 * arg0->unk03 * arg0->unk1C * arg0->unk28 / 2048383, 0, arg0->unk08, 0);
sndSeqVolume(player->baseVol * player->vol * player->fadeVol * player->pauseOnVol / (127*127*127), 0, player->seqId, 0);
}
}
static void msmMusFade(msmMusStruct00* arg0) {
if (arg0->unk04 != 2) {
static void msmMusFade(MUS_PLAYER *player) {
if (player->status != MSM_MUS_PLAY) {
return;
}
if (arg0->unk14 > 0) {
if (--arg0->unk18 == 0) {
if (arg0->unk04 != 0) {
arg0->unk14 = 0;
if (arg0->unk14 != 0) {
arg0->unk18 = arg0->unk14;
arg0->unk1C = 0x7F;
if (player->fadeMaxTime > 0) {
if (--player->fadeTime == 0) {
if (player->status != 0) {
player->fadeMaxTime = 0;
if (player->fadeMaxTime != 0) {
player->fadeTime = player->fadeMaxTime;
player->fadeVol = 127;
} else {
sndSeqStop(arg0->unk08);
arg0->unk04 = 1;
sndSeqStop(player->seqId);
player->status = 1;
}
}
} else {
arg0->unk1C = arg0->unk18 * 0x7F / arg0->unk14;
sndSeqVolume(arg0->unk02 * arg0->unk03 * arg0->unk1C * arg0->unk28 / 2048383, 0, arg0->unk08, 0);
player->fadeVol = player->fadeTime * 127 / player->fadeMaxTime;
sndSeqVolume(player->baseVol * player->vol * player->fadeVol * player->pauseOnVol / (127*127*127), 0, player->seqId, 0);
}
} else if (arg0->unk14 < 0) {
if (++arg0->unk18 >= -arg0->unk14) {
arg0->unk14 = 0;
arg0->unk1C = 0x7F;
} else if (player->fadeMaxTime < 0) {
if (++player->fadeTime >= -player->fadeMaxTime) {
player->fadeMaxTime = 0;
player->fadeVol = 127;
} else {
arg0->unk1C = arg0->unk18 * 0x7F / -arg0->unk14;
player->fadeVol = player->fadeTime * 127 / -player->fadeMaxTime;
}
sndSeqVolume(arg0->unk02 * arg0->unk03 * arg0->unk1C * arg0->unk28 / 2048383, 0, arg0->unk08, 0);
sndSeqVolume(player->baseVol * player->vol * player->fadeVol * player->pauseOnVol / (127*127*127), 0, player->seqId, 0);
}
}
@ -152,54 +129,54 @@ void msmMusFdoutEnd(void) {
}
void msmMusPeriodicProc(void) {
s32 var_r26;
msmMusStruct00* temp_r25;
s32 i;
MUS_PLAYER* player;
mus.unk04 = mus.unk03 = 0;
for (var_r26 = 0; var_r26 < mus.unk02; var_r26++) {
temp_r25 = &mus.unk18[var_r26];
if (temp_r25->unk05 != 0) {
mus.numPlay = mus.baseGrpNumPlay = 0;
for (i = 0; i < mus.musChanMax; i++) {
player = &mus.player[i];
if (player->busyF != FALSE) {
continue;
}
switch (temp_r25->unk04) {
case 1:
case 2:
if (sndSeqGetValid(temp_r25->unk08) == FALSE) {
temp_r25->unk04 = 0;
switch (player->status) {
case MSM_MUS_STOP:
case MSM_MUS_PLAY:
if (sndSeqGetValid(player->seqId) == FALSE) {
player->status = 0;
}
break;
}
if (temp_r25->unk04 == 0) {
if (player->status == MSM_MUS_DONE) {
continue;
}
if (msmSysCheckBaseGroup(mus.unk0C[temp_r25->unk00].unk00) != 0) {
mus.unk04++;
if (msmSysCheckBaseGroup(mus.musData[player->musId].sgid) != 0) {
mus.numPlay++;
} else {
mus.unk03++;
mus.baseGrpNumPlay++;
}
msmMusPauseFade(temp_r25);
if (temp_r25->unk04 == 2 && temp_r25->unk2C != 0) {
if (++temp_r25->unk30 >= temp_r25->unk2C) {
temp_r25->unk2C = 0;
temp_r25->unk02 = temp_r25->unk36;
msmMusPauseFade(player);
if (player->status == MSM_MUS_PLAY && player->pauseOffMaxTime != 0) {
if (++player->pauseOffTime >= player->pauseOffMaxTime) {
player->pauseOffMaxTime = 0;
player->baseVol = player->targetVol;
} else {
temp_r25->unk02 = temp_r25->unk35 + temp_r25->unk30 * (temp_r25->unk36 - temp_r25->unk35) / temp_r25->unk2C;
player->baseVol = player->startVol + player->pauseOffTime * (player->targetVol - player->startVol) / player->pauseOffMaxTime;
}
sndSeqVolume(temp_r25->unk02 * temp_r25->unk03 * temp_r25->unk1C * temp_r25->unk28 / 2048383, 0, temp_r25->unk08, 0);
sndSeqVolume(player->baseVol * player->vol * player->fadeVol * player->pauseOnVol / (127*127*127), 0, player->seqId, 0);
}
msmMusFade(temp_r25);
msmMusFade(player);
}
}
s32 msmMusGetMidiCtrl(int musNo, s32 channel, s32 ctrl) {
msmMusStruct00* temp_ptr;
MUS_PLAYER *player;
if (musNo < 0 || musNo >= mus.unk02) {
if (musNo < 0 || musNo >= mus.musChanMax) {
return MSM_ERR_OUTOFMUS;
}
temp_ptr = &mus.unk18[musNo];
if (sndSeqGetValid(temp_ptr->unk08) == TRUE) {
return sndSeqGetMidiCtrl(temp_ptr->unk08, channel & 0xF, ctrl);
player = &mus.player[musNo];
if (sndSeqGetValid(player->seqId) == TRUE) {
return sndSeqGetMidiCtrl(player->seqId, channel & 0xF, ctrl);
}
return 0;
}
@ -207,135 +184,135 @@ s32 msmMusGetMidiCtrl(int musNo, s32 channel, s32 ctrl) {
s32 msmMusGetNumPlay(BOOL baseGrp) {
switch (baseGrp) {
case FALSE:
return mus.unk03 + mus.unk04;
return mus.baseGrpNumPlay + mus.numPlay;
default:
return mus.unk03;
return mus.baseGrpNumPlay;
}
}
s32 msmMusGetStatus(int musNo) {
if (musNo < 0 || musNo >= mus.unk02) {
if (musNo < 0 || musNo >= mus.musChanMax) {
return MSM_ERR_OUTOFMUS;
}
return mus.unk18[musNo].unk04;
return mus.player[musNo].status;
}
void msmMusSetMasterVolume(s32 arg0) {
sndMasterVolume(arg0 & 0x7F, 0, 1, 0);
void msmMusSetMasterVolume(s32 vol) {
sndMasterVolume(vol & 127, 0, 1, 0);
}
s32 msmMusSetParam(s32 arg0, MSM_MUSPARAM* arg1) {
msmMusStruct00* temp_r31;
s32 msmMusSetParam(s32 musNo, MSM_MUSPARAM *param) {
MUS_PLAYER* player;
if (arg0 < 0 || arg0 >= mus.unk02) {
if (musNo < 0 || musNo >= mus.musChanMax) {
return MSM_ERR_OUTOFMUS;
}
temp_r31 = &mus.unk18[arg0];
if (arg1->flag & MSM_MUSPARAM_VOL) {
temp_r31->unk2C = arg1->fadeSpeed / 15;
if (temp_r31->unk2C != 0) {
temp_r31->unk05 = 1;
temp_r31->unk30 = 0;
temp_r31->unk35 = temp_r31->unk02;
temp_r31->unk36 = arg1->vol & 0x7F;
temp_r31->unk05 = 0;
player = &mus.player[musNo];
if (param->flag & MSM_MUSPARAM_VOL) {
player->pauseOffMaxTime = param->fadeSpeed / 15;
if (player->pauseOffMaxTime != 0) {
player->busyF = 1;
player->pauseOffTime = 0;
player->startVol = player->baseVol;
player->targetVol = param->vol & 127;
player->busyF = 0;
} else {
temp_r31->unk02 = arg1->vol & 0x7F;
sndSeqVolume(temp_r31->unk02 * temp_r31->unk03 * temp_r31->unk1C * temp_r31->unk28 / 2048383, 0, temp_r31->unk08, 0);
player->baseVol = param->vol & 127;
sndSeqVolume(player->baseVol * player->vol * player->fadeVol * player->pauseOnVol / (127*127*127), 0, player->seqId, 0);
}
}
if (arg1->flag & MSM_MUSPARAM_SPEED) {
sndSeqSpeed(temp_r31->unk08, (arg1->speed << 8) / 100);
if (param->flag & MSM_MUSPARAM_SPEED) {
sndSeqSpeed(player->seqId, (param->speed << 8) / 100);
}
return 0;
}
void msmMusPauseAll(BOOL pause, s32 speed) {
s32 var_r27;
msmMusStruct00* temp_r26;
MUS_PLAYER* player;
for (var_r27 = 0; var_r27 < mus.unk02; var_r27++) {
temp_r26 = &mus.unk18[var_r27];
if (temp_r26->unk04 != 0) {
temp_r26->unk05 = 1;
msmMusPauseSub(temp_r26, pause, speed);
temp_r26->unk05 = 0;
for (var_r27 = 0; var_r27 < mus.musChanMax; var_r27++) {
player = &mus.player[var_r27];
if (player->status != MSM_MUS_DONE) {
player->busyF = TRUE;
msmMusPauseSub(player, pause, speed);
player->busyF = FALSE;
}
}
}
s32 msmMusPause(int musNo, BOOL pause, s32 speed) {
msmMusStruct00* temp_r31;
MUS_PLAYER *player;
if (musNo < 0 || musNo >= mus.unk02) {
if (musNo < 0 || musNo >= mus.musChanMax) {
return MSM_ERR_OUTOFMUS;
}
temp_r31 = &mus.unk18[musNo];
temp_r31->unk05 = 1;
msmMusPauseSub(temp_r31, pause, speed);
temp_r31->unk05 = 0;
player = &mus.player[musNo];
player->busyF = TRUE;
msmMusPauseSub(player, pause, speed);
player->busyF = FALSE;
return 0;
}
void msmMusStopAll(BOOL checkGrp, s32 speed) {
s32 var_r28;
msmMusStruct00* temp_r27;
s32 i;
MUS_PLAYER *player;
for (var_r28 = 0; var_r28 < mus.unk02; var_r28++) {
temp_r27 = &mus.unk18[var_r28];
if (temp_r27->unk04 == 0) {
for (i = 0; i < mus.musChanMax; i++) {
player = &mus.player[i];
if (player->status == 0) {
continue;
}
temp_r27->unk05 = 1;
player->busyF = TRUE;
switch (checkGrp) {
case FALSE:
if (temp_r27->unk04 != 0) {
temp_r27->unk14 = speed / 15;
if (temp_r27->unk14 != 0) {
temp_r27->unk18 = temp_r27->unk14;
temp_r27->unk1C = 0x7F;
if (player->status != 0) {
player->fadeMaxTime = speed / 15;
if (player->fadeMaxTime != 0) {
player->fadeTime = player->fadeMaxTime;
player->fadeVol = 127;
} else {
sndSeqStop(temp_r27->unk08);
temp_r27->unk04 = 1;
sndSeqStop(player->seqId);
player->status = 1;
}
}
break;
default:
if (msmSysCheckBaseGroup(mus.unk0C[temp_r27->unk00].unk00) == 0 && temp_r27->unk04 != 0) {
temp_r27->unk14 = speed / 15;
if (temp_r27->unk14 != 0) {
temp_r27->unk18 = temp_r27->unk14;
temp_r27->unk1C = 0x7F;
if (msmSysCheckBaseGroup(mus.musData[player->musId].sgid) == 0 && player->status != 0) {
player->fadeMaxTime = speed / 15;
if (player->fadeMaxTime != 0) {
player->fadeTime = player->fadeMaxTime;
player->fadeVol = 127;
} else {
sndSeqStop(temp_r27->unk08);
temp_r27->unk04 = 1;
sndSeqStop(player->seqId);
player->status = 1;
}
}
break;
}
temp_r27->unk05 = 0;
player->busyF = FALSE;
}
}
s32 msmMusStop(int musNo, s32 speed) {
msmMusStruct00* temp_r30;
MUS_PLAYER* player;
if (musNo < 0 || musNo >= mus.unk02) {
if (musNo < 0 || musNo >= mus.musChanMax) {
return MSM_ERR_OUTOFMUS;
}
temp_r30 = &mus.unk18[musNo];
temp_r30->unk05 = 1;
if (temp_r30->unk04 != 0) {
temp_r30->unk14 = speed / 15;
if (temp_r30->unk14 != 0) {
temp_r30->unk18 = temp_r30->unk14;
temp_r30->unk1C = 0x7F;
player = &mus.player[musNo];
player->busyF = TRUE;
if (player->status != 0) {
player->fadeMaxTime = speed / 15;
if (player->fadeMaxTime != 0) {
player->fadeTime = player->fadeMaxTime;
player->fadeVol = 127;
} else {
sndSeqStop(temp_r30->unk08);
temp_r30->unk04 = 1;
sndSeqStop(player->seqId);
player->status = MSM_MUS_STOP;
}
}
temp_r30->unk05 = 0;
player->busyF = FALSE;
return 0;
}
@ -343,124 +320,124 @@ int msmMusPlay(int musId, MSM_MUSPARAM* musParam) {
s32 var_r30;
int var_r29;
s32 temp_r3_3;
UnkGroupDataPtr* temp_r3_2;
msmMusStruct01* temp_r28;
msmMusStruct00* temp_r27;
MSM_GRP_HEAD* temp_r3_2;
MSM_MUS* temp_r28;
MUS_PLAYER* temp_r27;
DVDFileInfo sp10;
if (musId < 0 || musId >= mus.unk00) {
if (musId < 0 || musId >= mus.musMax) {
return MSM_ERR_INVALIDID;
}
temp_r28 = &mus.unk0C[musId];
if (temp_r28->unk00 == 0xFFFF) {
temp_r28 = &mus.musData[musId];
if (temp_r28->sgid == 0xFFFF) {
return MSM_ERR_REMOVEDID;
}
if (msmSysCheckLoadGroupID(temp_r28->unk00) == 0) {
if (msmSysCheckLoadGroupID(temp_r28->sgid) == 0) {
return MSM_ERR_GRP_NOTLOADED;
}
var_r30 = (musParam != NULL) ? musParam->flag : 0;
var_r29 = (var_r30 & MSM_MUSPARAM_CHAN) ? musParam->chan : 0;
if (var_r29 < 0 || var_r29 >= mus.unk02) {
if (var_r29 < 0 || var_r29 >= mus.musChanMax) {
return MSM_ERR_OUTOFMUS;
}
temp_r27 = &mus.unk18[var_r29];
if (temp_r27->unk04 != 0) {
sndSeqStop(temp_r27->unk08);
temp_r27 = &mus.player[var_r29];
if (temp_r27->status != 0) {
sndSeqStop(temp_r27->seqId);
}
if (temp_r28->unk0C < 0) {
if (temp_r27->unk00 != musId) {
if (msmFioOpen(mus.unk08, &sp10) != 1) {
if (temp_r28->songGrp < 0) {
if (temp_r27->musId != musId) {
if (msmFioOpen(mus.msmEntryNum, &sp10) != 1) {
return MSM_ERR_OPENFAIL;
}
if (msmFioRead(&sp10, temp_r27->unk0C, temp_r28->unk08, temp_r28->unk04 + mus.unk10) < 0) {
if (msmFioRead(&sp10, temp_r27->songBuf, temp_r28->songSize, temp_r28->songOfs + mus.dummyMusOfs) < 0) {
msmFioClose(&sp10);
return MSM_ERR_READFAIL;
}
msmFioClose(&sp10);
temp_r27->unk10 = temp_r27->unk0C;
temp_r27->arrfile = temp_r27->songBuf;
}
} else {
temp_r3_2 = msmSysGetGroupDataPtr(temp_r28->unk0C);
temp_r3_2 = msmSysGetGroupDataPtr(temp_r28->songGrp);
if (temp_r3_2 == NULL) {
return MSM_ERR_MUSGRP_NOTLOADED;
}
temp_r27->unk10 = (void*) ((u32) temp_r3_2 + temp_r3_2->unk0C + temp_r28->unk04);
temp_r27->arrfile = (void*) ((u32) temp_r3_2 + temp_r3_2->sngOfs + temp_r28->songOfs);
}
temp_r27->unk05 = 1;
temp_r27->unk03 = temp_r28->unk0D;
temp_r27->unk2C = 0;
temp_r27->unk20 = 0;
temp_r27->unk14 = 0;
temp_r27->unk28 = 0x7F;
temp_r27->unk1C = 0x7F;
temp_r27->unk38.flags = 4;
temp_r27->unk38.volume.time = 0;
temp_r27->unk02 = (var_r30 & MSM_MUSPARAM_VOL) ? musParam->vol : 0x7F;
temp_r27->unk38.volume.target = temp_r27->unk03 * temp_r27->unk1C * temp_r27->unk02 / 16129;
temp_r27->busyF = 1;
temp_r27->vol = temp_r28->vol;
temp_r27->pauseOffMaxTime = 0;
temp_r27->pauseOnMaxTime = 0;
temp_r27->fadeMaxTime = 0;
temp_r27->pauseOnVol = 127;
temp_r27->fadeVol = 127;
temp_r27->playPara.flags = 4;
temp_r27->playPara.volume.time = 0;
temp_r27->baseVol = (var_r30 & MSM_MUSPARAM_VOL) ? musParam->vol : 127;
temp_r27->playPara.volume.target = temp_r27->vol * temp_r27->fadeVol * temp_r27->baseVol / 16129;
if (var_r30 & MSM_MUSPARAM_PAUSE) {
temp_r27->unk38.flags |= 0x10;
temp_r27->playPara.flags |= 0x10;
}
if (var_r30 & MSM_MUSPARAM_SPEED) {
temp_r27->unk38.flags |= 2;
temp_r27->unk38.speed = musParam->speed * 256 / 100;
temp_r27->playPara.flags |= 2;
temp_r27->playPara.speed = musParam->speed * 256 / 100;
}
if (var_r30 & MSM_MUSPARAM_FADESPEED) {
temp_r27->unk14 = -(musParam->fadeSpeed / 15);
if (temp_r27->unk14 != 0) {
temp_r27->unk18 = 0;
temp_r27->unk1C = 0;
temp_r27->unk38.volume.target = 0;
temp_r27->fadeMaxTime = -(musParam->fadeSpeed / 15);
if (temp_r27->fadeMaxTime != 0) {
temp_r27->fadeTime = 0;
temp_r27->fadeVol = 0;
temp_r27->playPara.volume.target = 0;
}
}
temp_r3_3 = sndSeqPlayEx(temp_r28->unk00, temp_r28->unk02, temp_r27->unk10, &temp_r27->unk38, 0);
temp_r3_3 = sndSeqPlay(temp_r28->sgid, temp_r28->sid, temp_r27->arrfile, &temp_r27->playPara);
if (temp_r3_3 == SND_ID_ERROR) {
temp_r27->unk05 = 0;
temp_r27->busyF = 0;
return MSM_ERR_PLAYFAIL;
}
temp_r27->unk08 = temp_r3_3;
temp_r27->unk00 = musId;
temp_r27->unk04 = (temp_r27->unk38.flags & 0x10) ? 3 : 2;
temp_r27->unk05 = 0;
temp_r27->seqId = temp_r3_3;
temp_r27->musId = musId;
temp_r27->status = (temp_r27->playPara.flags & 0x10) ? 3 : 2;
temp_r27->busyF = 0;
return var_r29;
}
s32 msmMusInit(sysData* arg0, DVDFileInfo* arg1) {
s32 msmMusInit(MSM_SYS* arg0, DVDFileInfo* arg1) {
s32 temp_r4;
s32 var_r8;
mus.unk00 = 0;
mus.unk02 = 0;
mus.unk04 = 0;
mus.unk03 = 0;
if (arg0->unk10->unk4 == 0) {
mus.musMax = 0;
mus.musChanMax = 0;
mus.numPlay = 0;
mus.baseGrpNumPlay = 0;
if (arg0->info->musMax == 0) {
return 0;
}
temp_r4 = arg0->unkC->unk2C;
temp_r4 = arg0->header->musSize;
if (temp_r4 == 0) {
return 0;
}
if ((mus.unk0C = msmMemAlloc(temp_r4)) == NULL) {
if ((mus.musData = msmMemAlloc(temp_r4)) == NULL) {
return MSM_ERR_OUTOFMEM;
}
if (msmFioRead(arg1, mus.unk0C, arg0->unkC->unk2C, arg0->unkC->unk28) < 0) {
if (msmFioRead(arg1, mus.musData, arg0->header->musSize, arg0->header->musOfs) < 0) {
return MSM_ERR_READFAIL;
}
temp_r4 = arg0->unk10->unk20;
temp_r4 = arg0->info->dummyMusSize;
if (temp_r4 != 0) {
if ((mus.unk14 = msmMemAlloc(temp_r4 * arg0->unk10->unk8)) == NULL) {
if ((mus.musBuf = msmMemAlloc(temp_r4 * arg0->info->musChanMax)) == NULL) {
return MSM_ERR_OUTOFMEM;
}
} else {
mus.unk14 = NULL;
mus.musBuf = NULL;
}
mus.unk00 = arg0->unk10->unk4;
mus.unk02 = arg0->unk10->unk8;
mus.unk10 = arg0->unkC->unk48;
mus.unk08 = arg0->unk0;
for (var_r8 = 0; var_r8 < mus.unk02; var_r8++) {
mus.unk18[var_r8].unk0C = (void*) ((u32) mus.unk14 + arg0->unk10->unk20 * var_r8);
mus.unk18[var_r8].unk00 = -1;
mus.unk18[var_r8].unk05 = 0;
mus.musMax = arg0->info->musMax;
mus.musChanMax = arg0->info->musChanMax;
mus.dummyMusOfs = arg0->header->dummyMusOfs;
mus.msmEntryNum = arg0->msmEntryNum;
for (var_r8 = 0; var_r8 < mus.musChanMax; var_r8++) {
mus.player[var_r8].songBuf = (void*) ((u32) mus.musBuf + arg0->info->dummyMusSize * var_r8);
mus.player[var_r8].musId = -1;
mus.player[var_r8].busyF = 0;
}
return 0;
}

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