Remove PS prefix from mtx function usages

This commit is contained in:
dbalatoni13 2025-01-19 02:38:04 +01:00
parent 8ffb043940
commit b54aaa2273
66 changed files with 4567 additions and 4138 deletions

View file

@ -579,7 +579,7 @@ static void fn_1_1A60(Vec *arg0, s16 arg1, Vec *arg2)
} }
temp_r31 = &Hu3DCamera[i]; temp_r31 = &Hu3DCamera[i];
C_MTXLookAt(sp1C, &temp_r31->pos, &temp_r31->up, &temp_r31->target); 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_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_f29 = sp10.z * (sind(temp_r31->fov / 2) / cosd(temp_r31->fov / 2));
temp_f28 = 0.9f * temp_r31->viewport_x; 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]; var_r30 = &Hu3DData[arg0];
Hu3DModelObjMtxGet(arg0, arg1, spC); Hu3DModelObjMtxGet(arg0, arg1, spC);
PSMTXConcat(var_r30->unk_F0, spC, spC); MTXConcat(var_r30->unk_F0, spC, spC);
if (NULL != arg3) { if (NULL != arg3) {
PSMTXCopy(spC, arg3); MTXCopy(spC, arg3);
} }
arg2->x = spC[0][3]; arg2->x = spC[0][3];
arg2->y = spC[1][3]; arg2->y = spC[1][3];
@ -1425,9 +1425,9 @@ static void fn_1_70E4(omObjData *arg0)
spC.y = 0.0f; spC.y = 0.0f;
spC.z = var_f27; spC.z = var_f27;
temp_r31->unk24.z *= 0.92f; temp_r31->unk24.z *= 0.92f;
PSMTXIdentity(sp18); MTXIdentity(sp18);
mtxRot(sp18, temp_r31->unk24.x, temp_r31->unk24.y, 0.0f); 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); VECAdd(&spC, &temp_r31->unk00, &temp_r31->unk00);
omSetTra(arg0, temp_r31->unk00.x, temp_r31->unk00.y, temp_r31->unk00.z); omSetTra(arg0, temp_r31->unk00.x, temp_r31->unk00.y, temp_r31->unk00.z);
Hu3DModelTPLvlSet(arg0->model[0], temp_r31->unk30); 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; Mtx sp8;
if (arg3 != 0.0f) { if (arg3 != 0.0f) {
PSMTXRotRad(arg0, 'Z', MTXDegToRad(arg3)); MTXRotRad(arg0, 'Z', MTXDegToRad(arg3));
} }
else { else {
PSMTXIdentity(arg0); MTXIdentity(arg0);
} }
if (arg1 != 0.0f) { if (arg1 != 0.0f) {
PSMTXRotRad(sp38, 'X', MTXDegToRad(arg1)); MTXRotRad(sp38, 'X', MTXDegToRad(arg1));
PSMTXConcat(sp38, arg0, arg0); MTXConcat(sp38, arg0, arg0);
} }
if (arg2 != 0.0f) { if (arg2 != 0.0f) {
PSMTXRotRad(sp8, 'Y', MTXDegToRad(arg2)); MTXRotRad(sp8, 'Y', MTXDegToRad(arg2));
PSMTXConcat(sp8, arg0, arg0); MTXConcat(sp8, arg0, arg0);
} }
} }

View file

@ -307,12 +307,12 @@ static void fn_1_6ED8(omObjData *arg0)
Mtx sp8; Mtx sp8;
s32 i; 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); 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++) { 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); MTXTrans(sp8, lbl_1_data_A88[i].x, lbl_1_data_A88[i].y, lbl_1_data_A88[i].z);
PSMTXConcat(sp38, sp8, sp8); MTXConcat(sp38, sp8, sp8);
Hu3DModelPosSet(arg0->model[i + 1], sp8[0][3], sp8[1][3], sp8[2][3]); 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); 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; temp_r28 -= 6;
fn_1_7BD4(temp_r21, &sp10); fn_1_7BD4(temp_r21, &sp10);
sp10 = lbl_1_data_A88[temp_r21]; 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); mtxRot(sp1C, temp_r31->rot.x, temp_r31->rot.y, temp_r31->rot.z);
PSMTXConcat(sp4C, sp1C, sp4C); MTXConcat(sp4C, sp1C, sp4C);
PSMTXTrans(sp1C, sp10.x, sp10.y, sp10.z); MTXTrans(sp1C, sp10.x, sp10.y, sp10.z);
PSMTXConcat(sp4C, sp1C, sp4C); MTXConcat(sp4C, sp1C, sp4C);
var_r30 = lbl_1_data_AFC[temp_r28]; var_r30 = lbl_1_data_AFC[temp_r28];
temp_r23 = lbl_1_data_B14[temp_r28]; temp_r23 = lbl_1_data_B14[temp_r28];
for (i = 0; i < temp_r23; i++) { for (i = 0; i < temp_r23; i++) {
PSMTXTrans(sp1C, var_r30->x, var_r30->y, var_r30->z); MTXTrans(sp1C, var_r30->x, var_r30->y, var_r30->z);
PSMTXConcat(sp4C, sp1C, sp1C); MTXConcat(sp4C, sp1C, sp1C);
arg2->x = sp1C[0][3]; arg2->x = sp1C[0][3];
arg2->y = sp1C[1][3]; arg2->y = sp1C[1][3];
arg2->z = sp1C[2][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_r30 = lbl_1_bss_9C[lbl_1_bss_94];
temp_r27 = temp_r30->data; temp_r27 = temp_r30->data;
var_r25 = fn_1_8274(temp_r27, sp8); 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); 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++) { for (i = 0; i < var_r25; i++) {
fn_1_7BD4(sp8[i], arg0); fn_1_7BD4(sp8[i], arg0);
temp_r26 = fn_1_7C20(temp_r27, sp8[i]) - 6; temp_r26 = fn_1_7C20(temp_r27, sp8[i]) - 6;
arg0->x += lbl_1_data_B2C[temp_r26].x; arg0->x += lbl_1_data_B2C[temp_r26].x;
arg0->y += lbl_1_data_B2C[temp_r26].y; arg0->y += lbl_1_data_B2C[temp_r26].y;
arg0->z += lbl_1_data_B2C[temp_r26].z; arg0->z += lbl_1_data_B2C[temp_r26].z;
PSMTXTrans(sp20, arg0->x, arg0->y, arg0->z); MTXTrans(sp20, arg0->x, arg0->y, arg0->z);
PSMTXConcat(sp50, sp20, sp20); MTXConcat(sp50, sp20, sp20);
arg0->x = sp20[0][3]; arg0->x = sp20[0][3];
arg0->y = sp20[1][3]; arg0->y = sp20[1][3];
arg0->z = sp20[2][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]; temp_r31 = &Hu3DCamera[i];
C_MTXLookAt(sp1C, &temp_r31->pos, &temp_r31->up, &temp_r31->target); 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_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_f29 = sp10.z * (sind(temp_r31->fov / 2) / cosd(temp_r31->fov / 2));
temp_f28 = 0.9f * temp_r31->viewport_x; 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]; var_r30 = &Hu3DData[arg0];
Hu3DModelObjMtxGet(arg0, arg1, spC); Hu3DModelObjMtxGet(arg0, arg1, spC);
PSMTXConcat(var_r30->unk_F0, spC, spC); MTXConcat(var_r30->unk_F0, spC, spC);
if (NULL != arg3) { if (NULL != arg3) {
PSMTXCopy(spC, arg3); MTXCopy(spC, arg3);
} }
arg2->x = spC[0][3]; arg2->x = spC[0][3];
arg2->y = spC[1][3]; arg2->y = spC[1][3];
@ -928,7 +928,7 @@ void fn_1_37A4(ModelData *arg0, Mtx arg1)
UnkBss10Struct *temp_r31; UnkBss10Struct *temp_r31;
GXLoadPosMtxImm(arg1, GX_PNMTX0); GXLoadPosMtxImm(arg1, GX_PNMTX0);
PSMTXInvXpose(arg1, spEC); MTXInvXpose(arg1, spEC);
GXLoadNrmMtxImm(spEC, GX_PNMTX0); GXLoadNrmMtxImm(spEC, GX_PNMTX0);
temp_r31 = &lbl_1_data_10[2]; 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); 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); GXLoadTexObj(&spC, GX_TEXMAP3);
GXSetNumTexGens(4); GXSetNumTexGens(4);
C_MTXLightPerspective(sp2C, 30.0f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); C_MTXLightPerspective(sp2C, 30.0f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f);
PSMTXInverse(Hu3DCameraMtx, spEC); MTXInverse(Hu3DCameraMtx, spEC);
PSMTXConcat(spEC, arg1, spEC); MTXConcat(spEC, arg1, spEC);
PSMTXConcat(sp2C, Hu3DCameraMtx, spBC); MTXConcat(sp2C, Hu3DCameraMtx, spBC);
PSMTXConcat(spBC, spEC, spBC); MTXConcat(spBC, spEC, spBC);
GXLoadTexMtxImm(spBC, GX_TEXMTX0, GX_MTX3x4); GXLoadTexMtxImm(spBC, GX_TEXMTX0, GX_MTX3x4);
C_MTXLightPerspective(sp2C, 30.0f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); C_MTXLightPerspective(sp2C, 30.0f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f);
PSMTXInverse(Hu3DCameraMtx, spEC); MTXInverse(Hu3DCameraMtx, spEC);
PSMTXConcat(spEC, arg1, spEC); MTXConcat(spEC, arg1, spEC);
PSMTXConcat(sp2C, Hu3DCameraMtx, spBC); MTXConcat(sp2C, Hu3DCameraMtx, spBC);
PSMTXConcat(spBC, spEC, spBC); MTXConcat(spBC, spEC, spBC);
GXLoadTexMtxImm(spBC, GX_TEXMTX1, GX_MTX3x4); GXLoadTexMtxImm(spBC, GX_TEXMTX1, GX_MTX3x4);
PSMTXRotRad(spEC, 'X', MTXDegToRad(-90)); MTXRotRad(spEC, 'X', MTXDegToRad(-90));
var_f31 = 0.0004f; var_f31 = 0.0004f;
PSMTXScale(sp8C, 0.00083333335f, var_f31, 0.0004f); MTXScale(sp8C, 0.00083333335f, var_f31, 0.0004f);
PSMTXConcat(sp8C, spEC, sp5C); MTXConcat(sp8C, spEC, sp5C);
PSMTXTrans(spBC, 0.5f, 0.5f, 0.5f); MTXTrans(spBC, 0.5f, 0.5f, 0.5f);
PSMTXConcat(spBC, sp5C, sp5C); MTXConcat(spBC, sp5C, sp5C);
sp5C[0][1] = -0.01f; sp5C[0][1] = -0.01f;
GXLoadTexMtxImm(sp5C, GX_TEXMTX2, GX_MTX2x4); GXLoadTexMtxImm(sp5C, GX_TEXMTX2, GX_MTX2x4);
PSMTXRotRad(spEC, 'X', MTXDegToRad(-90)); MTXRotRad(spEC, 'X', MTXDegToRad(-90));
var_f31 = 0.0004f; var_f31 = 0.0004f;
PSMTXScale(sp8C, var_f31, var_f31, var_f31); MTXScale(sp8C, var_f31, var_f31, var_f31);
PSMTXConcat(sp8C, spEC, sp5C); MTXConcat(sp8C, spEC, sp5C);
PSMTXTrans(spBC, 0.5f, 0.5f, 0.0f); MTXTrans(spBC, 0.5f, 0.5f, 0.0f);
PSMTXConcat(spBC, sp5C, sp5C); MTXConcat(spBC, sp5C, sp5C);
GXLoadTexMtxImm(sp5C, GX_TEXMTX3, GX_MTX2x4); GXLoadTexMtxImm(sp5C, GX_TEXMTX3, GX_MTX2x4);
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX0, GX_FALSE, GX_PTIDENTITY); 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); 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); GXSetNumIndStages(2);
GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD2, GX_TEXMAP2); GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD2, GX_TEXMAP2);
GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); 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); GXSetIndTexMtx(GX_ITM_0, (float(*)[3])spBC, -2);
GXSetTevIndWarp(GX_TEVSTAGE0, GX_INDTEXSTAGE0, GX_TRUE, GX_FALSE, GX_ITM_0); GXSetTevIndWarp(GX_TEVSTAGE0, GX_INDTEXSTAGE0, GX_TRUE, GX_FALSE, GX_ITM_0);
GXSetIndTexOrder(GX_INDTEXSTAGE1, GX_TEXCOORD3, GX_TEXMAP3); GXSetIndTexOrder(GX_INDTEXSTAGE1, GX_TEXCOORD3, GX_TEXMAP3);
GXSetIndTexCoordScale(GX_INDTEXSTAGE1, GX_ITS_1, GX_ITS_1); 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); GXSetIndTexMtx(GX_ITM_1, (float(*)[3])spBC, 0);
GXSetTevIndWarp(GX_TEVSTAGE1, GX_INDTEXSTAGE1, GX_TRUE, GX_FALSE, GX_ITM_1); GXSetTevIndWarp(GX_TEVSTAGE1, GX_INDTEXSTAGE1, GX_TRUE, GX_FALSE, GX_ITM_1);
GXSetNumTevStages(2); GXSetNumTevStages(2);
@ -1031,10 +1031,10 @@ void fn_1_4024(ModelData *arg0, Mtx arg1)
fn_1_2714(1, GX_FALSE); fn_1_2714(1, GX_FALSE);
GXLoadPosMtxImm(arg1, GX_PNMTX0); GXLoadPosMtxImm(arg1, GX_PNMTX0);
C_MTXLightPerspective(sp98, 30.0f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); C_MTXLightPerspective(sp98, 30.0f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f);
PSMTXInverse(Hu3DCameraMtx, sp68); MTXInverse(Hu3DCameraMtx, sp68);
PSMTXConcat(sp68, arg1, sp68); MTXConcat(sp68, arg1, sp68);
PSMTXConcat(sp98, Hu3DCameraMtx, sp38); MTXConcat(sp98, Hu3DCameraMtx, sp38);
PSMTXConcat(sp38, sp68, sp68); MTXConcat(sp38, sp68, sp68);
GXLoadTexMtxImm(sp68, GX_TEXMTX0, GX_MTX3x4); GXLoadTexMtxImm(sp68, GX_TEXMTX0, GX_MTX3x4);
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX0, GX_FALSE, GX_PTIDENTITY); GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX0, GX_FALSE, GX_PTIDENTITY);
GXSetNumChans(1); 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); C_MTXOrtho(sp20, 0.0f, 480.0f, 0.0f, 640.0f, 0.0f, 100.0f);
GXSetProjection(sp20, GX_ORTHOGRAPHIC); GXSetProjection(sp20, GX_ORTHOGRAPHIC);
PSMTXIdentity(sp60); MTXIdentity(sp60);
GXLoadPosMtxImm(sp60, GX_PNMTX0); GXLoadPosMtxImm(sp60, GX_PNMTX0);
GXSetNumChans(1); GXSetNumChans(1);
GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); 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) { if (!var_r31->unk_28) {
GXLoadPosMtxImm(arg1, 0); GXLoadPosMtxImm(arg1, 0);
PSMTXInvXpose(arg1, sp10); MTXInvXpose(arg1, sp10);
GXLoadNrmMtxImm(sp10, 0); GXLoadNrmMtxImm(sp10, 0);
var_r26 = fn_1_D06C(arg0, Hu3DCameraMtx, Hu3DCameraMtxXPose, 2.0f); var_r26 = fn_1_D06C(arg0, Hu3DCameraMtx, Hu3DCameraMtxXPose, 2.0f);
GXSetNumTevStages(1); GXSetNumTevStages(1);
@ -2149,7 +2149,7 @@ void fn_1_82C8(Mtx arg0, s32 arg1, float arg8)
sp80.z = arg0[2][3]; sp80.z = arg0[2][3];
sp74.x = sp74.z = 0.0f; sp74.x = sp74.z = 0.0f;
sp74.y = atan2d(arg0[0][0], arg0[2][0]); 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; sp8C[0][3] = sp8C[1][3] = sp8C[2][3] = sp8C[3][3] = 0.0f;
sp68.x = -25.0f; sp68.x = -25.0f;
sp68.z = -50.0f; sp68.z = -50.0f;
@ -2227,7 +2227,7 @@ void fn_1_8F98(void)
var_r31->unk_10 = 0.0f; var_r31->unk_10 = 0.0f;
var_r31->unk_14 = 6.0f; var_r31->unk_14 = 6.0f;
var_r31->unk_18 = 1.0f; var_r31->unk_18 = 1.0f;
PSMTXIdentity(var_r31->unk_1C); MTXIdentity(var_r31->unk_1C);
if (var_r30 == 0) { if (var_r30 == 0) {
var_r31->unk_04 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M406, 59)); 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_10 = 0.0f;
var_r31->unk_14 = 6.0f; var_r31->unk_14 = 6.0f;
var_r31->unk_18 = 1.0f; var_r31->unk_18 = 1.0f;
PSMTXIdentity(var_r31->unk_1C); MTXIdentity(var_r31->unk_1C);
if (var_r30 == 0) { if (var_r30 == 0) {
var_r31->unk_04 = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_M406, 60)); 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_r31->unk_18 * cosd((90.0f * var_f30));
var_f31 = var_f31; var_f31 = var_f31;
var_r30 = &Hu3DData[var_r31->unk_04]; var_r30 = &Hu3DData[var_r31->unk_04];
PSMTXScale(sp8, var_f31, var_f31, var_f31); MTXScale(sp8, var_f31, var_f31, var_f31);
PSMTXConcat(var_r31->unk_1C, sp8, var_r30->unk_F0); 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[0][3] = var_r31->unk_1C[0][3];
var_r30->unk_F0[1][3] = var_r31->unk_1C[1][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]; 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_r31->unk_18 * cosd((90.0f * var_f30));
var_f31 = var_f31; var_f31 = var_f31;
var_r30 = &Hu3DData[var_r31->unk_04]; var_r30 = &Hu3DData[var_r31->unk_04];
PSMTXScale(sp8, var_f31, var_f31, var_f31); MTXScale(sp8, var_f31, var_f31, var_f31);
PSMTXConcat(var_r31->unk_1C, sp8, var_r30->unk_F0); 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[0][3] = var_r31->unk_1C[0][3];
var_r30->unk_F0[1][3] = var_r31->unk_1C[1][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]; 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]; sp64.z = arg0[2][3];
sp58.x = sp58.z = 0.0f; sp58.x = sp58.z = 0.0f;
sp58.y = atan2d(arg0[0][0], arg0[2][0]); 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; spA0[0][3] = spA0[1][3] = spA0[2][3] = spA0[3][3] = 0.0f;
if (!arg2) { if (!arg2) {
sp4C.x = 25.0f; 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_10 = 1.0f;
var_r31->unk_14 = 6.0f; var_r31->unk_14 = 6.0f;
var_r31->unk_18 = var_f31; 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); Hu3DMotionTimeSet(var_r31->unk_04, 0.0f);
Hu3DMotionSpeedSet(var_r31->unk_04, 0.0f); Hu3DMotionSpeedSet(var_r31->unk_04, 0.0f);
var_r27 = &Hu3DData[var_r31->unk_04]; var_r27 = &Hu3DData[var_r31->unk_04];
PSMTXScale(sp70, var_f31, var_f31, var_f31); MTXScale(sp70, var_f31, var_f31, var_f31);
PSMTXConcat(arg0, sp70, var_r27->unk_F0); MTXConcat(arg0, sp70, var_r27->unk_F0);
var_r27->unk_F0[0][3] = arg0[0][3]; var_r27->unk_F0[0][3] = arg0[0][3];
var_r27->unk_F0[1][3] = arg0[1][3]; var_r27->unk_F0[1][3] = arg0[1][3];
var_r27->unk_F0[2][3] = arg0[2][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); 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); 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); GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
PSMTXIdentity(sp50); MTXIdentity(sp50);
GXLoadPosMtxImm(sp50, 0); GXLoadPosMtxImm(sp50, 0);
GXSetZMode(GX_FALSE, GX_ALWAYS, GX_TRUE); GXSetZMode(GX_FALSE, GX_ALWAYS, GX_TRUE);
GXSetNumChans(1); 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); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0);
GXSetArray(GX_VA_TEX0, var_r31->unk_44, 8); GXSetArray(GX_VA_TEX0, var_r31->unk_44, 8);
if (HmfInverseMtxF3X3(arg1, sp128) == 0) { if (HmfInverseMtxF3X3(arg1, sp128) == 0) {
PSMTXIdentity(sp128); MTXIdentity(sp128);
} }
PSMTXReorder(sp128, sp8); PSMTXReorder(sp128, sp8);
if (var_r31->unk_4C) { 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[1], &sp98[1], var_r29->unk_28);
VECScale(&lbl_1_data_8E0[2], &sp98[2], 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); VECScale(&lbl_1_data_8E0[3], &sp98[3], var_r29->unk_28);
PSMTXRotRad(spC8, 90, var_r29->unk_2C); MTXRotRad(spC8, 90, var_r29->unk_2C);
PSMTXConcat(sp128, spC8, spF8); MTXConcat(sp128, spC8, spF8);
PSMTXMultVecArray(spF8, &sp98[0], &sp68[0], 4); MTXMultVecArray(spF8, &sp98[0], &sp68[0], 4);
VECAdd(&sp68[0], &var_r29->unk_30, var_r30++); VECAdd(&sp68[0], &var_r29->unk_30, var_r30++);
VECAdd(&sp68[1], &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[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); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
GXSetArray(GX_VA_CLR0, &var_r31->unk_3C->unk_3C, 0x44); GXSetArray(GX_VA_CLR0, &var_r31->unk_3C->unk_3C, 0x44);
if (HmfInverseMtxF3X3(arg1, sp9C) == 0) { if (HmfInverseMtxF3X3(arg1, sp9C) == 0) {
PSMTXIdentity(sp9C); MTXIdentity(sp9C);
} }
PSMTXReorder(sp9C, spC); PSMTXReorder(sp9C, spC);
if (var_r31->unk_4C) { if (var_r31->unk_4C) {
@ -3362,8 +3362,8 @@ void fn_1_D13C(LightData *arg0, s16 arg1, Mtx arg2, Mtx arg3, float arg8)
break; break;
} }
if (arg0->unk_00 & 0x8000) { if (arg0->unk_00 & 0x8000) {
PSMTXMultVec(arg2, &arg0->unk_28, &sp24); MTXMultVec(arg2, &arg0->unk_28, &sp24);
PSMTXMultVec(arg3, &arg0->unk_1C, &sp18); MTXMultVec(arg3, &arg0->unk_1C, &sp18);
GXInitLightPos(&sp30, sp18.x, sp18.y, sp18.z); GXInitLightPos(&sp30, sp18.x, sp18.y, sp18.z);
} }
else { else {

View file

@ -666,11 +666,11 @@ void fn_1_E214(omObjData *object)
} }
Hu3DModelScaleSet(object->model[5], var_f30, var_f30, var_f30); Hu3DModelScaleSet(object->model[5], var_f30, var_f30, var_f30);
var_r31->unk_50 += VECMag(&var_r31->unk_2C) / 3.125f; 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); MTXTrans(sp94, -var_r31->unk_68, -var_r31->unk_6C, -var_r31->unk_70);
PSMTXRotRad(sp64, 0x78, 0.017453292f * var_r31->unk_50); MTXRotRad(sp64, 0x78, 0.017453292f * var_r31->unk_50);
PSMTXConcat(sp64, sp94, sp34); MTXConcat(sp64, sp94, sp34);
PSMTXTrans(sp94, var_r31->unk_68, var_r31->unk_6C, var_r31->unk_70); MTXTrans(sp94, var_r31->unk_68, var_r31->unk_6C, var_r31->unk_70);
PSMTXConcat(sp94, sp34, var_r26->unk_F0); MTXConcat(sp94, sp34, var_r26->unk_F0);
var_r27 = 6; var_r27 = 6;
var_f31 = 2.0f; var_f31 = 2.0f;
var_r25 = 0; 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_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); 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); MTXTrans(sp94, -var_r31->unk_68, -var_r31->unk_6C, -var_r31->unk_70);
PSMTXRotRad(sp64, 0x78, 0.017453292f * var_r31->unk_50); MTXRotRad(sp64, 0x78, 0.017453292f * var_r31->unk_50);
PSMTXConcat(sp64, sp94, sp34); MTXConcat(sp64, sp94, sp34);
PSMTXTrans(sp94, var_r31->unk_68, var_r31->unk_6C, var_r31->unk_70); MTXTrans(sp94, var_r31->unk_68, var_r31->unk_6C, var_r31->unk_70);
PSMTXConcat(sp94, sp34, var_r26->unk_F0); MTXConcat(sp94, sp34, var_r26->unk_F0);
if (var_r31->unk_5E != 0) { if (var_r31->unk_5E != 0) {
PSMTXTrans(sp94, 100.0f * (0.2f * (((var_r31->unk_5E & 1) * 2) - 1)), 0.0f, 0.0f); MTXTrans(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); MTXConcat(sp94, var_r26->unk_F0, var_r26->unk_F0);
if (--var_r31->unk_5E == 0) { if (--var_r31->unk_5E == 0) {
if (++var_r31->unk_5C >= 4) { if (++var_r31->unk_5C >= 4) {
var_r31->unk_00_field3 = 0; 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, 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); object->trans.z + var_r31->unk_70);
Hu3DModelAttrReset(object->model[6], HU3D_ATTR_DISPOFF); 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); 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) { if (fn_1_6A44(sp28) == 1) {
var_r31->unk_00_field0 = 1; var_r31->unk_00_field0 = 1;
var_r26 = &Hu3DData[object->model[0]]; var_r26 = &Hu3DData[object->model[0]];
PSMTXIdentity(var_r26->unk_F0); MTXIdentity(var_r26->unk_F0);
omVibrate(var_r31->unk_02, 0xC, 4, 2); omVibrate(var_r31->unk_02, 0xC, 4, 2);
HuAudCharVoicePlayPos(var_r31->unk_0C, 0x123, &object->trans); HuAudCharVoicePlayPos(var_r31->unk_0C, 0x123, &object->trans);
for (var_r24 = 0; var_r24 < 2; var_r24++) { 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); mtxTransCat(sp80, var_r30->pos.x, var_r30->pos.y, var_r30->pos.z);
VECCrossProduct(&sp44, &sp8, &sp44); VECCrossProduct(&sp44, &sp8, &sp44);
if (sp44.y >= 0.0f) { if (sp44.y >= 0.0f) {
PSMTXTrans(sp50, -10.0f, 0.0f, 0.0f); MTXTrans(sp50, -10.0f, 0.0f, 0.0f);
PSMTXConcat(sp50, sp80, sp80); MTXConcat(sp50, sp80, sp80);
fn_1_94C0(sp80, 10, 0); fn_1_94C0(sp80, 10, 0);
} }
else { else {
PSMTXTrans(sp50, 10.0f, 0.0f, 0.0f); MTXTrans(sp50, 10.0f, 0.0f, 0.0f);
PSMTXConcat(sp50, sp80, sp80); MTXConcat(sp50, sp80, sp80);
fn_1_94C0(sp80, 10, 1); 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); mtxTransCat(sp68, var_r30->pos.x, var_r30->pos.y, var_r30->pos.z);
VECCrossProduct(&sp20, &sp14, &sp8); VECCrossProduct(&sp20, &sp14, &sp8);
if (sp8.y >= 0.0f) { if (sp8.y >= 0.0f) {
PSMTXTrans(sp38, -10.0f, 0.0f, 0.0f); MTXTrans(sp38, -10.0f, 0.0f, 0.0f);
PSMTXConcat(sp38, sp68, sp68); MTXConcat(sp38, sp68, sp68);
fn_1_94C0(sp68, 10, 0); fn_1_94C0(sp68, 10, 0);
} }
else { else {
PSMTXTrans(sp38, 10.0f, 0.0f, 0.0f); MTXTrans(sp38, 10.0f, 0.0f, 0.0f);
PSMTXConcat(sp38, sp68, sp68); MTXConcat(sp38, sp68, sp68);
fn_1_94C0(sp68, 10, 1); 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)) { 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); 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); mtxTransCat(sp48, var_r29->pos.x, var_r29->pos.y, var_r29->pos.z);
PSMTXTrans(sp18, 10.0f, 0.0f, 0.0f); MTXTrans(sp18, 10.0f, 0.0f, 0.0f);
PSMTXConcat(sp18, sp48, sp48); MTXConcat(sp18, sp48, sp48);
fn_1_94C0(sp48, 10, 0); 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))); 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); mtxRot(sp9C, object->rot.x, object->rot.y, object->trans.z);
mtxScaleCat(sp9C, object->scale.x, object->scale.y, object->scale.z); mtxScaleCat(sp9C, object->scale.x, object->scale.y, object->scale.z);
PSMTXTrans(sp9C, object->trans.x, object->trans.y, object->trans.z); MTXTrans(sp9C, object->trans.x, object->trans.y, object->trans.z);
PSMTXRotRad(sp6C, 0x78, 0.017453292f * var_r31->unk_50); MTXRotRad(sp6C, 0x78, 0.017453292f * var_r31->unk_50);
PSMTXConcat(sp9C, sp6C, sp9C); MTXConcat(sp9C, sp6C, sp9C);
PSMTXCopy(sp9C, spC); MTXCopy(sp9C, spC);
mtxScaleCat(spC, 2.0f, 2.0f, 2.0f); mtxScaleCat(spC, 2.0f, 2.0f, 2.0f);
PSMTXCopy(spC, Hu3DData[object->model[5]].unk_F0); MTXCopy(spC, Hu3DData[object->model[5]].unk_F0);
PSMTXTrans(sp3C, 0.0f, 110.0f, 0.0f); MTXTrans(sp3C, 0.0f, 110.0f, 0.0f);
PSMTXConcat(sp9C, sp3C, spC); MTXConcat(sp9C, sp3C, spC);
PSMTXCopy(spC, Hu3DData[object->model[7]].unk_F0); MTXCopy(spC, Hu3DData[object->model[7]].unk_F0);
} }
void fn_1_117BC(float arg8, float arg9, UnkM406PlayerStruct2 *arg0, Vec *arg1) 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; var_r30->target.z = Center.z;
C_MTXLookAt(spA8, &var_r30->pos, &var_r30->up, &var_r30->target); C_MTXLookAt(spA8, &var_r30->pos, &var_r30->up, &var_r30->target);
for (var_r31 = 0; var_r31 < lbl_1_bss_1C4; var_r31++) { 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].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)))); 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; HsfTransform *var_r31 = &arg0->data.curr;
mtxRot(sp144, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z); 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); MTXScale(sp174, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z);
PSMTXConcat(sp144, sp174, sp174); MTXConcat(sp144, sp174, sp174);
mtxTransCat(sp174, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z); 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)); strcpy(sp4A4, MakeObjectName(arg2));
if (strcmp(sp4A4, arg0->name) == 0) { if (strcmp(sp4A4, arg0->name) == 0) {
PSMTXCopy(sp174, arg3); MTXCopy(sp174, arg3);
return 1; return 1;
} }
for (var_r23 = 0; var_r23 < arg0->data.childrenCount; var_r23++) { 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_r31 = &Hu3DData[arg0];
var_r30 = var_r31->hsfData; var_r30 = var_r31->hsfData;
PSMTXIdentity(sp14); MTXIdentity(sp14);
fn_1_136AC(var_r30->root, sp14, arg1, arg2); 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 { else {
fn_1_6778(&temp_r30->unk2C, &sp38, &var_r29->unk34, 4); fn_1_6778(&temp_r30->unk2C, &sp38, &var_r29->unk34, 4);
PSMTXRotRad(spC8, 0x5A, 0.017453292f * var_r29->unk30); MTXRotRad(spC8, 0x5A, 0.017453292f * var_r29->unk30);
PSMTXConcat(sp128, spC8, sp98); MTXConcat(sp128, spC8, sp98);
PSMTXMultVecArray(sp98, &sp38, &sp8, 4); MTXMultVecArray(sp98, &sp38, &sp8, 4);
VECAdd(&sp8, &var_r29->unk40, var_r31++); VECAdd(&sp8, &var_r29->unk40, var_r31++);
VECAdd(&sp14, &var_r29->unk40, var_r31++); VECAdd(&sp14, &var_r29->unk40, var_r31++);
VECAdd(&sp20, &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; sp8.z = -var_r31->unk_1C.x;
var_f30 = VECMag(&sp8) / 30.000002f; var_f30 = VECMag(&sp8) / 30.000002f;
if (var_f30 >= 0.001f) { if (var_f30 >= 0.001f) {
PSMTXRotAxisRad(sp14, &sp8, var_f30); MTXRotAxisRad(sp14, &sp8, var_f30);
var_r28 = &Hu3DData[object->model[var_r30]]; 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; var_r30 = var_r31->hsfData;
lbl_1_bss_30 = 0; lbl_1_bss_30 = 0;
mtxRot(sp14, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z); 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); MTXScale(sp44, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z);
PSMTXConcat(sp14, sp44, sp44); MTXConcat(sp14, sp44, sp44);
mtxTransCat(sp44, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z); mtxTransCat(sp44, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z);
fn_1_7AC4(var_r30->root, sp44, arg1, arg2); fn_1_7AC4(var_r30->root, sp44, arg1, arg2);
return lbl_1_bss_30; 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; var_r31 = &arg0->data.curr;
mtxRot(sp12C, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z); 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); MTXScale(sp15C, var_r31->scale.x, var_r31->scale.y, var_r31->scale.z);
PSMTXConcat(sp12C, sp15C, sp15C); MTXConcat(sp12C, sp15C, sp15C);
mtxTransCat(sp15C, var_r31->pos.x, var_r31->pos.y, var_r31->pos.z); 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)) { if (!strcmp(arg2, arg0->name)) {
PSMTXCopy(sp15C, arg3); MTXCopy(sp15C, arg3);
lbl_1_bss_30 = 1; 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) { if (!lbl_1_bss_30) {
var_r30 = &var_r27->data.curr; var_r30 = &var_r27->data.curr;
mtxRot(spFC, var_r30->rot.x, var_r30->rot.y, var_r30->rot.z); 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); MTXScale(spCC, var_r30->scale.x, var_r30->scale.y, var_r30->scale.z);
PSMTXConcat(spFC, spCC, spCC); MTXConcat(spFC, spCC, spCC);
mtxTransCat(spCC, var_r30->pos.x, var_r30->pos.y, var_r30->pos.z); 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)) { if (!strcmp(arg2, var_r27->name)) {
PSMTXCopy(spCC, arg3); MTXCopy(spCC, arg3);
lbl_1_bss_30 = 1; lbl_1_bss_30 = 1;
} }
for (var_r22 = 0; var_r22 < var_r27->data.childrenCount; var_r22++) { 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) { if (!lbl_1_bss_30) {
var_r29 = &var_r26->data.curr; var_r29 = &var_r26->data.curr;
mtxRot(sp9C, var_r29->rot.x, var_r29->rot.y, var_r29->rot.z); 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); MTXScale(sp6C, var_r29->scale.x, var_r29->scale.y, var_r29->scale.z);
PSMTXConcat(sp9C, sp6C, sp6C); MTXConcat(sp9C, sp6C, sp6C);
mtxTransCat(sp6C, var_r29->pos.x, var_r29->pos.y, var_r29->pos.z); 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)) { if (!strcmp(arg2, var_r26->name)) {
PSMTXCopy(sp6C, arg3); MTXCopy(sp6C, arg3);
lbl_1_bss_30 = 1; 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) { if (!lbl_1_bss_30) {
var_r28 = &var_r25->data.curr; var_r28 = &var_r25->data.curr;
mtxRot(sp3C, var_r28->rot.x, var_r28->rot.y, var_r28->rot.z); 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); MTXScale(spC, var_r28->scale.x, var_r28->scale.y, var_r28->scale.z);
PSMTXConcat(sp3C, spC, spC); MTXConcat(sp3C, spC, spC);
mtxTransCat(spC, var_r28->pos.x, var_r28->pos.y, var_r28->pos.z); 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)) { if (!strcmp(arg2, var_r25->name)) {
PSMTXCopy(spC, arg3); MTXCopy(spC, arg3);
lbl_1_bss_30 = 1; lbl_1_bss_30 = 1;
} }

View file

@ -93,7 +93,7 @@ void ObjectSetup(void)
sp8.x = sp8.z = 0.0f; sp8.x = sp8.z = 0.0f;
sp8.y = lbl_1_data_18.z; sp8.y = lbl_1_data_18.z;
mtxRot(sp20, lbl_1_data_18.x, lbl_1_data_18.y, 0.0f); 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); Hu3DGLightPosAimSetV(lbl_1_bss_16, &sp8, &sp14);
Hu3DShadowPosSet(&sp8, &lbl_1_data_34, &sp14); Hu3DShadowPosSet(&sp8, &lbl_1_data_34, &sp14);
lbl_1_bss_14 = lbl_1_bss_12 = lbl_1_bss_10 = -1; 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(&sp10, 4);
DCStoreRange(&lbl_1_data_294, 32); DCStoreRange(&lbl_1_data_294, 32);
PSMTXTrans(spF4, -400.0f, 400.0f, -700.0f); MTXTrans(spF4, -400.0f, 400.0f, -700.0f);
PSMTXConcat(Hu3DCameraMtx, spF4, sp64); MTXConcat(Hu3DCameraMtx, spF4, sp64);
GXLoadPosMtxImm(sp64, 0); GXLoadPosMtxImm(sp64, 0);
GXSetNumChans(1); GXSetNumChans(1);
GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); 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); HuSprTexLoad(lbl_1_bss_70, 0, 1, GX_REPEAT, GX_REPEAT, GX_LINEAR);
GXSetNumTexGens(2); GXSetNumTexGens(2);
C_MTXLightPerspective(sp94, 41.5f, 1.2f, 0.5555555f, -0.5f, 0.5555555f, 0.5f); C_MTXLightPerspective(sp94, 41.5f, 1.2f, 0.5555555f, -0.5f, 0.5555555f, 0.5f);
PSMTXConcat(sp94, Hu3DCameraMtx, sp94); MTXConcat(sp94, Hu3DCameraMtx, sp94);
PSMTXInverse(Hu3DCameraMtx, sp34); MTXInverse(Hu3DCameraMtx, sp34);
PSMTXConcat(sp34, sp64, sp124); MTXConcat(sp34, sp64, sp124);
PSMTXConcat(sp94, sp124, spF4); MTXConcat(sp94, sp124, spF4);
GXLoadTexMtxImm(spF4, 30, GX_MTX3x4); GXLoadTexMtxImm(spF4, 30, GX_MTX3x4);
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, 30, GX_FALSE, 125); 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); 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); GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD1, GX_TEXMAP1);
GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1);
GXSetTevIndWarp(GX_TEVSTAGE0, GX_INDTEXSTAGE0, GX_TRUE, GX_FALSE, GX_ITM_0); 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); GXSetIndTexMtx(GX_ITM_0, (float(*)[3])spF4, -1);
GXSetNumTevStages(1); GXSetNumTevStages(1);
GXSetTevColor(GX_TEVREG1, sp10); GXSetTevColor(GX_TEVREG1, sp10);
@ -1124,17 +1124,17 @@ void fn_1_B140(ModelData *arg0, Mtx arg1)
if (var_r31->unk_00) { if (var_r31->unk_00) {
lbl_1_data_294[var_r31->unk_02].a = 255.0f * var_r31->unk_0C; 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]); 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); MTXTrans(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); MTXRotRad(sp124, 90, 0.017453292f * var_r31->unk_08);
PSMTXConcat(spF4, sp124, spF4); MTXConcat(spF4, sp124, spF4);
PSMTXScale(spC4, var_r31->unk_04, var_r31->unk_04, var_r31->unk_04); MTXScale(spC4, var_r31->unk_04, var_r31->unk_04, var_r31->unk_04);
PSMTXConcat(spF4, spC4, spF4); MTXConcat(spF4, spC4, spF4);
PSMTXConcat(Hu3DCameraMtx, spF4, sp64); MTXConcat(Hu3DCameraMtx, spF4, sp64);
GXLoadPosMtxImm(sp64, 0); GXLoadPosMtxImm(sp64, 0);
PSMTXConcat(sp34, sp64, sp124); MTXConcat(sp34, sp64, sp124);
PSMTXConcat(sp94, sp124, spF4); MTXConcat(sp94, sp124, spF4);
GXLoadTexMtxImm(spF4, 30, GX_MTX3x4); 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); GXLoadTexMtxImm(sp124, 33, GX_MTX2x4);
GXCallDisplayList(var_r30->unk_120.unk_E5C, var_r30->unk_120.unk_E58); 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_r31 = -1; var_r31 < 2; var_r31 += 2) {
for (var_r29 = -1; var_r29 < 2; var_r29 += 2) { for (var_r29 = -1; var_r29 < 2; var_r29 += 2) {
MTXRotDeg(sp118, 0x59, temp_f30); MTXRotDeg(sp118, 0x59, temp_f30);
PSMTXTrans(spE8, (var_r30 * var_r31), 0.0f, (var_r30 * var_r29)); MTXTrans(spE8, (var_r30 * var_r31), 0.0f, (var_r30 * var_r29));
PSMTXConcat(sp118, spE8, spE8); MTXConcat(sp118, spE8, spE8);
if ((spB8[0].y > spE8[2][3]) || ((spB8[0].y == spE8[2][3]) && (spB8[0].x > spE8[0][3]))) { 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].x = spE8[0][3];
spB8[0].y = spE8[2][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); MTXRotDeg(arg0, 0x5A, argA);
} }
else { else {
PSMTXIdentity(arg0); MTXIdentity(arg0);
} }
if (arg8 != 0.0f) { if (arg8 != 0.0f) {
MTXRotDeg(sp38, 0x58, arg8); MTXRotDeg(sp38, 0x58, arg8);
PSMTXConcat(sp38, arg0, arg0); MTXConcat(sp38, arg0, arg0);
} }
if (arg9 != 0.0f) { if (arg9 != 0.0f) {
MTXRotDeg(sp8, 0x59, arg9); 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.x = sp8.z = 0.0f;
sp8.y = lbl_1_data_18.z; sp8.y = lbl_1_data_18.z;
mtxRot(sp38, lbl_1_data_18.x, lbl_1_data_18.y, 0.0f); 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); Hu3DGLightPosAimSetV(lbl_1_bss_8[0], &sp8, &sp14);
lbl_1_data_28.x = 200.0f; lbl_1_data_28.x = 200.0f;
lbl_1_data_28.y = 3000.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; Mtx sp8;
if (arg8 != 0.0f) { if (arg8 != 0.0f) {
PSMTXRotRad(sp38, 88, 0.017453292f * arg8); MTXRotRad(sp38, 88, 0.017453292f * arg8);
} }
else { else {
PSMTXIdentity(sp38); MTXIdentity(sp38);
} }
if (arg9 != 0.0f) { if (arg9 != 0.0f) {
PSMTXRotRad(sp8, 89, 0.017453292f * arg9); MTXRotRad(sp8, 89, 0.017453292f * arg9);
PSMTXConcat(sp38, sp8, sp38); MTXConcat(sp38, sp8, sp38);
} }
if (argA != 0.0f) { if (argA != 0.0f) {
PSMTXRotRad(sp8, 90, 0.017453292f * argA); MTXRotRad(sp8, 90, 0.017453292f * argA);
PSMTXConcat(sp38, sp8, sp38); MTXConcat(sp38, sp8, sp38);
} }
fn_1_30D8(NULL, arg0, arg1, arg2); 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; var_r31->unk_70 = 0.02f;
if (var_r31->unk_0C) { if (var_r31->unk_0C) {
Vec sp18 = { 0.0f, 1.0f, 0.0f }; 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 { else {
Vec spC = { 0.0f, 1.0f, 0.0f }; 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); C_QUATRotAxisRad(&var_r31->unk_184, &spC, 0.0f);
var_r31->unk_194 = var_r31->unk_184; 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_1B4 = var_r31->unk_1A4;
var_r31->unk_164 = var_r31->unk_194; var_r31->unk_164 = var_r31->unk_194;
var_r31->unk_174 = var_r31->unk_194; var_r31->unk_174 = var_r31->unk_194;
var_r31->unk_144 = 1.0f; var_r31->unk_144 = 1.0f;
var_r31->unk_D4.z += 50.0f; var_r31->unk_D4.z += 50.0f;
} }
PSMTXInverse(var_r31->unk_1C4, var_r31->unk_1F4); MTXInverse(var_r31->unk_1C4, var_r31->unk_1F4);
PSMTXCopy(var_r31->unk_1F4, var_r31->unk_224); MTXCopy(var_r31->unk_1F4, var_r31->unk_224);
var_r31->unk_134 = var_r31->unk_138 = 0.0f; var_r31->unk_134 = var_r31->unk_138 = 0.0f;
var_r31->unk_12C = 1.0f; var_r31->unk_12C = 1.0f;
var_r31->unk_08 = -1; var_r31->unk_08 = -1;
@ -634,7 +634,7 @@ void fn_1_9298(omObjData *object)
else if (var_r31->unk_B4.x < 0.0f) { else if (var_r31->unk_B4.x < 0.0f) {
var_r31->unk_B4.x += 360.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->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); 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) { if (fn_1_26F8() == 2) {
sp1C.y += -5.8333335f * var_r31->unk_148; 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); VECAdd(&sp1C, &var_r31->unk_E0, &sp1C);
sp10 = sp1C; sp10 = sp1C;
sp10.y = 0.0f; sp10.y = 0.0f;
@ -849,13 +849,13 @@ void fn_1_9C14(omObjData *object)
sp1C.y = 80.0f; sp1C.y = 80.0f;
var_r31->unk_EC = sp1C; var_r31->unk_EC = sp1C;
spC = atan2d(sp1C.x, sp1C.z); 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); VECAdd(&sp1C, &var_r31->unk_F8, &var_r31->unk_D4);
if (var_r31->unk_13C >= 0.95f) { if (var_r31->unk_13C >= 0.95f) {
var_r31->unk_3C = 1; var_r31->unk_3C = 1;
return; return;
} }
PSQUATNormalize(&var_r31->unk_194, &sp28); QUATNormalize(&var_r31->unk_194, &sp28);
if (sp28.w < cosd(25)) { if (sp28.w < cosd(25)) {
var_r31->unk_3C = 1; var_r31->unk_3C = 1;
} }
@ -893,7 +893,7 @@ void fn_1_9FF0(omObjData *object)
} }
} }
var_r31->unk_1B4 = var_r31->unk_1A4; 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_r31->unk_104 = var_r31->unk_F8;
var_f31 = fn_1_75BC(); var_f31 = fn_1_75BC();
for (var_r30 = 0; var_r30 < 8; var_r30++) { 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_QUATRotAxisRad(&sp3C, &sp8, M_PI);
C_QUATSlerp(&var_r31->unk_184, &sp3C, &var_r31->unk_184, 0.027777778f); 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); QUATMultiply(&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); QUATMultiply(&var_r31->unk_164, &var_r31->unk_194, &var_r31->unk_194);
PSQUATMultiply(&sp2C, &var_r31->unk_194, &var_r31->unk_194); QUATMultiply(&sp2C, &var_r31->unk_194, &var_r31->unk_194);
PSMTXQuat(var_r31->unk_1C4, &var_r31->unk_194); MTXQuat(var_r31->unk_1C4, &var_r31->unk_194);
PSMTXInverse(var_r31->unk_1C4, var_r31->unk_1F4); MTXInverse(var_r31->unk_1C4, var_r31->unk_1F4);
PSQUATInverse(&var_r31->unk_194, &var_r31->unk_1A4); 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); Hu3DModelPosSetV(object->model[0], &var_r30->unk_D4);
Hu3DModelRotSet(object->model[0], 0.0f, var_r30->unk_64, 0.0f); Hu3DModelRotSet(object->model[0], 0.0f, var_r30->unk_64, 0.0f);
Hu3DModelPosSetV(object->model[1], &var_r30->unk_F8); 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) void fn_1_ADC4(omObjData *object)

View file

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

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

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

View file

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

View file

@ -562,18 +562,18 @@ void fn_1_14CC(Mtx arg0, float arg8, float arg9, float argA)
Mtx sp38; Mtx sp38;
Mtx sp8; Mtx sp8;
if (argA != 0.0f) { if (argA != 0.0f) {
PSMTXRotRad(arg0, 0x5A, MTXDegToRad(argA)); MTXRotRad(arg0, 0x5A, MTXDegToRad(argA));
} }
else { else {
PSMTXIdentity(arg0); MTXIdentity(arg0);
} }
if (arg8 != 0.0f) { if (arg8 != 0.0f) {
PSMTXRotRad(sp38, 0x58, MTXDegToRad(arg8)); MTXRotRad(sp38, 0x58, MTXDegToRad(arg8));
PSMTXConcat(sp38, arg0, arg0); MTXConcat(sp38, arg0, arg0);
} }
if (arg9 != 0.0f) { if (arg9 != 0.0f) {
PSMTXRotRad(sp8, 0x59, MTXDegToRad(arg9)); MTXRotRad(sp8, 0x59, MTXDegToRad(arg9));
PSMTXConcat(sp8, arg0, arg0); MTXConcat(sp8, arg0, arg0);
} }
} }
@ -1374,7 +1374,7 @@ void fn_1_5044(s16 sp8)
var_r31->unk_2C[1].unk_04 = 0; var_r31->unk_2C[1].unk_04 = 0;
var_r31->unk_2C[1].unk_48 = 0x80; var_r31->unk_2C[1].unk_48 = 0x80;
for (var_r30 = 0; var_r30 < (var_r31->unk_28 * var_r31->unk_2A); var_r30++) { 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; 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++) { for (var_r30 = 0; var_r30 < var_r31->unk_28; var_r30++) {
@ -1503,8 +1503,8 @@ void fn_1_5C20(ModelData *var_r27, Mtx sp8)
GXSetChanAmbColor(GX_COLOR0A0, var_r31->unk_20); GXSetChanAmbColor(GX_COLOR0A0, var_r31->unk_20);
GXSetChanMatColor(GX_COLOR0A0, var_r31->unk_24); GXSetChanMatColor(GX_COLOR0A0, var_r31->unk_24);
GXLoadPosMtxImm(sp8, 0); GXLoadPosMtxImm(sp8, 0);
PSMTXInverse(sp8, sp5C); MTXInverse(sp8, sp5C);
PSMTXTranspose(sp5C, sp2C); MTXTranspose(sp5C, sp2C);
GXLoadNrmMtxImm(sp2C, 0); GXLoadNrmMtxImm(sp2C, 0);
GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP);
GXSetZMode(1, GX_LEQUAL, 1); GXSetZMode(1, GX_LEQUAL, 1);
@ -1512,7 +1512,7 @@ void fn_1_5C20(ModelData *var_r27, Mtx sp8)
var_r28 = 0; var_r28 = 0;
spC = 0; spC = 0;
for (var_r29 = GX_TEXMAP0; var_r29 < var_r31->unk_28; var_r29++) { 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( 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); 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) { 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.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.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; 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.x *= -1.0f;
sp20.y *= -1.0f; sp20.y *= -1.0f;
sp20.z *= -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++) { 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.x = sind(var_r31->unk_E4) * cosd(var_r31->unk_E0);
sp8.z = cosd(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); sp8.y = sind(var_r31->unk_E0);
PSVECNormalize(&sp8, &sp8); VECNormalize(&sp8, &sp8);
var_r28 = &Hu3DLocalLight[var_r27->unk_38[0]]; var_r28 = &Hu3DLocalLight[var_r27->unk_38[0]];
var_r28->unk_1C.x = 1000.0f * sp8.x; var_r28->unk_1C.x = 1000.0f * sp8.x;
var_r28->unk_1C.y = 1000.0f * sp8.y; 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; var_r31 = var_r29->unk_120;
GXLoadPosMtxImm(var_r28, 0); GXLoadPosMtxImm(var_r28, 0);
PSMTXInvXpose(var_r28, sp50); MTXInvXpose(var_r28, sp50);
GXLoadNrmMtxImm(sp50, 0); GXLoadNrmMtxImm(sp50, 0);
var_r27 = fn_1_115D4(var_r29, Hu3DCameraMtx, Hu3DCameraMtxXPose, 4.0f); var_r27 = fn_1_115D4(var_r29, Hu3DCameraMtx, Hu3DCameraMtxXPose, 4.0f);
if (omPauseChk() == 0) { if (omPauseChk() == 0) {
@ -2129,7 +2129,7 @@ void fn_1_101C4(ModelData *var_r29, Mtx var_r28)
GXSetZCompLoc(0); GXSetZCompLoc(0);
GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP); GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP);
if (HmfInverseMtxF3X3(var_r28, sp50) == 0) { if (HmfInverseMtxF3X3(var_r28, sp50) == 0) {
PSMTXIdentity(sp50); MTXIdentity(sp50);
} }
PSMTXReorder(sp50, sp20); PSMTXReorder(sp50, sp20);
GXClearVtxDesc(); 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.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_04.z = var_r31->unk_10.z * var_r31->unk_1C;
var_r31->unk_1C *= 0.95f; 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) { if (++var_r31->unk_40 >= 0xF) {
var_r31->unk_40 = 0; var_r31->unk_40 = 0;
var_r31->unk_28 = 0.0f; 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; break;
case 1: case 1:
GXInitLightAttn(&lbl_1_bss_688, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f); 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; break;
case 2: case 2:
GXInitLightAttn(&lbl_1_bss_688, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f); 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; break;
} }
if ((var_r31->unk_00 & 0x8000) != 0) { if ((var_r31->unk_00 & 0x8000) != 0) {
PSMTXMultVec(spC, &var_r31->unk_28, &lbl_1_bss_67C); MTXMultVec(spC, &var_r31->unk_28, &lbl_1_bss_67C);
PSMTXMultVec(sp10, &var_r31->unk_1C, &lbl_1_bss_670); 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); GXInitLightPos(&lbl_1_bss_688, lbl_1_bss_670.x, lbl_1_bss_670.y, lbl_1_bss_670.z);
} }
else { 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); GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_RGBA6, 0);
GXSetArray(GX_VA_TEX0, var_r31->unk_44, 8); GXSetArray(GX_VA_TEX0, var_r31->unk_44, 8);
if (HmfInverseMtxF3X3(var_r21, sp128) == 0) { if (HmfInverseMtxF3X3(var_r21, sp128) == 0) {
PSMTXIdentity(sp128); MTXIdentity(sp128);
} }
PSMTXReorder(sp128, &sp8[0]); PSMTXReorder(sp128, &sp8[0]);
if (var_r31->unk_4C) { if (var_r31->unk_4C) {
@ -2718,27 +2718,27 @@ void fn_1_11EE0(ModelData *var_r24, Mtx var_r21)
if (!var_r29->unk_2C) { if (!var_r29->unk_2C) {
var_r28 = &sp98[0]; var_r28 = &sp98[0];
var_r27 = &sp38[0]; var_r27 = &sp38[0];
PSVECScale(var_r27++, var_r28, var_r29->unk_28); VECScale(var_r27++, var_r28, var_r29->unk_28);
PSVECAdd(var_r28++, &var_r29->unk_30, var_r30++); VECAdd(var_r28++, &var_r29->unk_30, var_r30++);
PSVECScale(var_r27++, var_r28, var_r29->unk_28); VECScale(var_r27++, var_r28, var_r29->unk_28);
PSVECAdd(var_r28++, &var_r29->unk_30, var_r30++); VECAdd(var_r28++, &var_r29->unk_30, var_r30++);
PSVECScale(var_r27++, var_r28, var_r29->unk_28); VECScale(var_r27++, var_r28, var_r29->unk_28);
PSVECAdd(var_r28++, &var_r29->unk_30, var_r30++); VECAdd(var_r28++, &var_r29->unk_30, var_r30++);
PSVECScale(var_r27++, var_r28, var_r29->unk_28); VECScale(var_r27++, var_r28, var_r29->unk_28);
PSVECAdd(var_r28++, &var_r29->unk_30, var_r30++); VECAdd(var_r28++, &var_r29->unk_30, var_r30++);
} }
else { else {
PSVECScale(lbl_1_data_19C, &sp98[0], var_r29->unk_28); VECScale(lbl_1_data_19C, &sp98[0], var_r29->unk_28);
PSVECScale(&lbl_1_data_19C[1], &sp98[1], var_r29->unk_28); VECScale(&lbl_1_data_19C[1], &sp98[1], var_r29->unk_28);
PSVECScale(&lbl_1_data_19C[2], &sp98[2], var_r29->unk_28); VECScale(&lbl_1_data_19C[2], &sp98[2], var_r29->unk_28);
PSVECScale(&lbl_1_data_19C[3], &sp98[3], var_r29->unk_28); VECScale(&lbl_1_data_19C[3], &sp98[3], var_r29->unk_28);
PSMTXRotRad(spC8, 0x5A, var_r29->unk_2C); MTXRotRad(spC8, 0x5A, var_r29->unk_2C);
PSMTXConcat(sp128, spC8, spF8); MTXConcat(sp128, spC8, spF8);
PSMTXMultVecArray(spF8, &sp98[0], &sp68[0], 4); MTXMultVecArray(spF8, &sp98[0], &sp68[0], 4);
PSVECAdd(&sp68[0], &var_r29->unk_30, var_r30++); VECAdd(&sp68[0], &var_r29->unk_30, var_r30++);
PSVECAdd(&sp68[1], &var_r29->unk_30, var_r30++); VECAdd(&sp68[1], &var_r29->unk_30, var_r30++);
PSVECAdd(&sp68[2], &var_r29->unk_30, var_r30++); VECAdd(&sp68[2], &var_r29->unk_30, var_r30++);
PSVECAdd(&sp68[3], &var_r29->unk_30, var_r30++); VECAdd(&sp68[3], &var_r29->unk_30, var_r30++);
} }
var_r20 = var_r29->unk_40 & 3; var_r20 = var_r29->unk_40 & 3;
var_r19 = (var_r29->unk_40 >> 2) & 3; var_r19 = (var_r29->unk_40 >> 2) & 3;

View file

@ -3045,7 +3045,7 @@ void fn_1_80DC(ModelData *arg0, Mtx arg1)
if (!HmfInverseMtxF3X3(arg1, sp128)) { if (!HmfInverseMtxF3X3(arg1, sp128)) {
MTXIdentity(sp128); MTXIdentity(sp128);
} }
MTXReorder(sp128, sp8); PSMTXReorder(sp128, sp8);
if (var_r31->unk_4C) { if (var_r31->unk_4C) {
var_r18 = var_r31->unk_4C; var_r18 = var_r31->unk_4C;
var_r18(arg0, var_r31, arg1); var_r18(arg0, var_r31, arg1);
@ -3053,7 +3053,7 @@ void fn_1_80DC(ModelData *arg0, Mtx arg1)
var_r29 = var_r31->unk_3C; var_r29 = var_r31->unk_3C;
var_r30 = var_r31->unk_40; var_r30 = var_r31->unk_40;
var_r26 = var_r31->unk_44; var_r26 = var_r31->unk_44;
MTXROMultVecArray(sp8, lbl_1_data_22C, &sp38[0], 4); PSMTXROMultVecArray(sp8, lbl_1_data_22C, &sp38[0], 4);
for (var_r23 = 0; var_r23 < var_r31->unk_24; var_r23++, var_r29++) { for (var_r23 = 0; var_r23 < var_r31->unk_24; var_r23++, var_r29++) {
if (!var_r29->unk_28) { if (!var_r29->unk_28) {
var_r30->x = var_r30->y = var_r30->z = 0.0f; var_r30->x = var_r30->y = var_r30->z = 0.0f;

View file

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

View file

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

View file

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

View file

@ -118,7 +118,7 @@ void ObjectSetup(void)
sp8.x = sp8.z = 0.0f; sp8.x = sp8.z = 0.0f;
sp8.y = lbl_1_data_18.z; sp8.y = lbl_1_data_18.z;
mtxRot(sp20, lbl_1_data_18.x, lbl_1_data_18.y, 0.0f); 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); Hu3DGLightPosAimSetV(lbl_1_bss_26, &sp8, &sp14);
Hu3DShadowPosSet(&sp8, &lbl_1_data_34, &sp14); Hu3DShadowPosSet(&sp8, &lbl_1_data_34, &sp14);
lbl_1_bss_24 = lbl_1_bss_22 = lbl_1_bss_20 = -1; 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.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.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))); sp14.z = CenterM[0].z + (CZoomM[0] * (cosd(CRotM[0].y) * cosd(CRotM[0].x)));
PSVECSubtract(CenterM, &sp14, &sp8); VECSubtract(CenterM, &sp14, &sp8);
PSVECNormalize(&sp8, &sp8); VECNormalize(&sp8, &sp8);
HuAudFXListnerSetEX(&sp14, &sp8, 100000.0f, 566.6667f, 0.0f, 300.0f, 300.0f); 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.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.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))); sp14.z = CenterM[0].z + (CZoomM[0] * (cosd(CRotM[0].y) * cosd(CRotM[0].x)));
PSVECSubtract(CenterM, &sp14, &sp8); VECSubtract(CenterM, &sp14, &sp8);
PSVECNormalize(&sp8, &sp8); VECNormalize(&sp8, &sp8);
HuAudFXListnerUpdate(&sp14, &sp8); HuAudFXListnerUpdate(&sp14, &sp8);
} }
@ -1619,7 +1619,7 @@ void fn_1_10948(ModelData *var_r29, Mtx var_r30)
Mtx sp8; Mtx sp8;
M430PlayerBss170Struct *var_r31 = var_r29->unk_120; M430PlayerBss170Struct *var_r31 = var_r29->unk_120;
GXLoadPosMtxImm(var_r30, 0); GXLoadPosMtxImm(var_r30, 0);
PSMTXInvXpose(var_r30, sp8); MTXInvXpose(var_r30, sp8);
GXLoadNrmMtxImm(sp8, 0); GXLoadNrmMtxImm(sp8, 0);
GXSetNumTevStages(1); GXSetNumTevStages(1);
GXSetNumTexGens(1); GXSetNumTexGens(1);

View file

@ -202,10 +202,13 @@ void fn_1_4CB4(omObjData *object)
u32 spC[1] = { DATA_MAKE_NUM(DATADIR_M430, 0x01) }; u32 spC[1] = { DATA_MAKE_NUM(DATADIR_M430, 0x01) };
s32 sp8[1]; 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 sp90[4] = { DATA_MAKE_NUM(DATADIR_M430, 0x0B), DATA_MAKE_NUM(DATADIR_M430, 0x0C), DATA_MAKE_NUM(DATADIR_M430, 0x0D),
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) }; 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 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 sp50[4];
s32 sp40[4]; s32 sp40[4];
s32 sp30[4]; s32 sp30[4];
@ -481,10 +484,10 @@ void fn_1_6180(M430DllWork *work)
sp28.x = sp1C.x; sp28.x = sp1C.x;
sp28.y = 0.0f; sp28.y = 0.0f;
sp28.z = sp1C.z - 450000.0f; sp28.z = sp1C.z - 450000.0f;
PSVECSubtract(&sp28, &sp1C, &sp10); VECSubtract(&sp28, &sp1C, &sp10);
PSVECNormalize(&sp10, &sp10); VECNormalize(&sp10, &sp10);
PSVECScale(&sp10, &sp10, 6000.0f); VECScale(&sp10, &sp10, 6000.0f);
PSVECAdd(&sp1C, &sp10, &sp28); VECAdd(&sp1C, &sp10, &sp28);
Hu3DModelPosSetV(work->unk_18, &sp28); Hu3DModelPosSetV(work->unk_18, &sp28);
if ((fn_1_4070() >= 2) && (fn_1_4030() != 0)) { if ((fn_1_4070() >= 2) && (fn_1_4030() != 0)) {
if ((lbl_1_bss_40 != 0) && (lbl_1_bss_48 >= work->unk_04.x)) { 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.x = 0.0f;
sp28.y = 0.0f; sp28.y = 0.0f;
sp28.z = work->unk_20 - fn_1_7FBC(work->unk_00); sp28.z = work->unk_20 - fn_1_7FBC(work->unk_00);
PSVECSubtract(&sp28, &sp1C, &sp10); VECSubtract(&sp28, &sp1C, &sp10);
PSVECNormalize(&sp10, &sp10); VECNormalize(&sp10, &sp10);
PSVECScale(&sp10, &sp10, 5000.0f); VECScale(&sp10, &sp10, 5000.0f);
PSVECAdd(&sp1C, &sp10, &sp28); VECAdd(&sp1C, &sp10, &sp28);
sp28.y += 237.5f; sp28.y += 237.5f;
Hu3DModelPosSet(work->unk_1A, 0.0f, 593.75f, work->unk_20); Hu3DModelPosSet(work->unk_1A, 0.0f, 593.75f, work->unk_20);
var_r30 = ((ParticleData *)Hu3DData[work->unk_1A].unk_120)->unk_48; 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; var_r29 = 1;
} }
else { else {
PSVECSubtract(&arg1->unk_18, &arg1->unk_0C, &sp8); VECSubtract(&arg1->unk_18, &arg1->unk_0C, &sp8);
var_f31 = PSVECMag(&sp8); var_f31 = VECMag(&sp8);
if (var_f31 < 50.0f) { if (var_f31 < 50.0f) {
var_r29 = 1; var_r29 = 1;
} }
@ -758,7 +761,7 @@ void fn_1_732C(omObjData *object, M430DllUnkStruct2 *arg1)
arg1->unk_38 = 200.0f + frandmod(0x258); arg1->unk_38 = 200.0f + frandmod(0x258);
arg1->unk_28 = 400.0f; 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_30 = atan2d(sp8.x, sp8.z);
arg1->unk_2C = fn_1_48B0(arg1->unk_2C, arg1->unk_30, 0.08f); arg1->unk_2C = fn_1_48B0(arg1->unk_2C, arg1->unk_30, 0.08f);
arg1->unk_28 += 0.05f * (300.0f - arg1->unk_28); 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.x = var_f31 * sind(var_f30);
var_r31->unk_08.y = 0.0f; var_r31->unk_08.y = 0.0f;
var_r31->unk_08.z = var_f31 * cosd(var_f30); 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_38 = 60.0f - (0.13483146f * var_f31);
var_r31->unk_28 = frandmod(0x168); var_r31->unk_28 = frandmod(0x168);
if (frandmod(0x3E8) < 0x1F4) { if (frandmod(0x3E8) < 0x1F4) {
@ -857,7 +860,7 @@ void fn_1_7CAC(omObjData *object)
if (fn_1_4070() >= 4) { if (fn_1_4070() >= 4) {
for (var_r29 = 0; var_r29 < var_r28; var_r29++, work++) { for (var_r29 = 0; var_r29 < var_r28; var_r29++, work++) {
sp8 = 0; 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_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_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)); 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++) { 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); 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; var_r29 = &Hu3DData[var_r31->unk_00].unk_F0;
PSMTXRotRad(*var_r29, 0x59, 0.017453292f * var_r31->unk_28); MTXRotRad(*var_r29, 0x59, 0.017453292f * var_r31->unk_28);
PSMTXRotRad(sp8, 0x5A, 0.017453292f * var_r31->unk_38); MTXRotRad(sp8, 0x5A, 0.017453292f * var_r31->unk_38);
PSMTXConcat(*var_r29, sp8, *var_r29); MTXConcat(*var_r29, sp8, *var_r29);
Hu3DModelAttrReset(var_r31->unk_00, HU3D_ATTR_DISPOFF); 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; sp14.z = 2000.0f + arg1->unk_24;
if (lbl_1_bss_5C != 0) { if (lbl_1_bss_5C != 0) {
for (var_r29 = 0; var_r29 < 0x1B8; var_r29++) { for (var_r29 = 0; var_r29 < 0x1B8; var_r29++) {
PSVECSubtract(var_r28, &sp14, &sp8); VECSubtract(var_r28, &sp14, &sp8);
var_f31 = 0.00025f * PSVECMag(&sp8); var_f31 = 0.00025f * VECMag(&sp8);
if (var_f31 < 0.3f) { if (var_f31 < 0.3f) {
var_r30->a = -1; var_r30->a = -1;
} }
@ -1080,8 +1083,8 @@ void fn_1_86B4(omObjData *object, M430DllBss60Struct *arg1)
} }
else { else {
for (var_r29 = 0; var_r29 < 0x1B8; var_r29++) { for (var_r29 = 0; var_r29 < 0x1B8; var_r29++) {
PSVECSubtract(var_r28, &sp14, &sp8); VECSubtract(var_r28, &sp14, &sp8);
var_f31 = 0.00025f * PSVECMag(&sp8); var_f31 = 0.00025f * VECMag(&sp8);
if (var_f31 < 0.25f) { if (var_f31 < 0.25f) {
var_r30->a = -0x1A; var_r30->a = -0x1A;
} }
@ -1105,7 +1108,7 @@ void fn_1_86B4(omObjData *object, M430DllBss60Struct *arg1)
var_r29 = (0x14 - var_r23) * 0x16; var_r29 = (0x14 - var_r23) * 0x16;
var_r27 = &arg1->unk_30[0x1B8 - var_r29]; var_r27 = &arg1->unk_30[0x1B8 - var_r29];
while (var_r29-- != 0) { while (var_r29-- != 0) {
PSVECAdd(var_r28, var_r27, var_r26); VECAdd(var_r28, var_r27, var_r26);
var_r28++; var_r28++;
var_r27++; var_r27++;
var_r26++; var_r26++;
@ -1113,7 +1116,7 @@ void fn_1_86B4(omObjData *object, M430DllBss60Struct *arg1)
var_r29 = var_r23 * 0x16; var_r29 = var_r23 * 0x16;
var_r27 = arg1->unk_30; var_r27 = arg1->unk_30;
while (var_r29-- != 0) { while (var_r29-- != 0) {
PSVECAdd(var_r28, var_r27, var_r26); VECAdd(var_r28, var_r27, var_r26);
var_r28++; var_r28++;
var_r27++; var_r27++;
var_r26++; var_r26++;
@ -1186,7 +1189,7 @@ void fn_1_8CE0(ModelData *model, Mtx matrix)
} }
var_r31->unk_10 = 1; var_r31->unk_10 = 1;
fn_1_963C(model, matrix, var_r31->unk_00); fn_1_963C(model, matrix, var_r31->unk_00);
PSMTXCopy(matrix, sp134); MTXCopy(matrix, sp134);
if (fn_1_4030() != 0) { if (fn_1_4030() != 0) {
var_f30 = 1.0f; var_f30 = 1.0f;
var_f31 = fn_1_BB54(var_r31->unk_00); 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_f30 = 1.5f;
var_f31 = 0.0f; var_f31 = 0.0f;
} }
PSMTXTrans(sp164, var_f31 - fn_1_BB54(var_r31->unk_00), 0.0f, 0.0f); MTXTrans(sp164, var_f31 - fn_1_BB54(var_r31->unk_00), 0.0f, 0.0f);
PSMTXConcat(sp134, sp164, sp134); MTXConcat(sp134, sp164, sp134);
PSMTXScale(sp194, var_f30, 1.0f, 1.0f); MTXScale(sp194, var_f30, 1.0f, 1.0f);
PSMTXConcat(sp134, sp194, sp134); MTXConcat(sp134, sp194, sp134);
GXLoadPosMtxImm(sp134, 0); GXLoadPosMtxImm(sp134, 0);
PSMTXInvXpose(sp134, sp194); MTXInvXpose(sp134, sp194);
GXLoadNrmMtxImm(sp194, 0); GXLoadNrmMtxImm(sp194, 0);
GXSetNumChans(1); GXSetNumChans(1);
GXSetChanCtrl(GX_COLOR0A0, 0, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); 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 { else {
C_MTXLightPerspective(sp104, 41.5f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f); C_MTXLightPerspective(sp104, 41.5f, 1.2f, 0.5f, -0.5f, 0.5f, 0.5f);
} }
PSMTXInverse(Hu3DCameraMtx, spD4); MTXInverse(Hu3DCameraMtx, spD4);
PSMTXConcat(spD4, sp134, spD4); MTXConcat(spD4, sp134, spD4);
PSMTXConcat(sp104, Hu3DCameraMtx, spA4); MTXConcat(sp104, Hu3DCameraMtx, spA4);
PSMTXConcat(spA4, spD4, spD4); MTXConcat(spA4, spD4, spD4);
GXLoadTexMtxImm(spD4, 0x1E, GX_MTX3x4); GXLoadTexMtxImm(spD4, 0x1E, GX_MTX3x4);
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, 0x1E, GX_FALSE, 0x7D); 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); C_MTXLightPerspective(sp104, 70.0f, 0.5f, 0.5f, -0.5f, 0.5f, 0.5f);
PSMTXInverse(Hu3DCameraMtx, sp74); MTXInverse(Hu3DCameraMtx, sp74);
PSMTXConcat(sp74, sp134, sp74); MTXConcat(sp74, sp134, sp74);
PSMTXConcat(sp104, Hu3DCameraMtx, sp44); MTXConcat(sp104, Hu3DCameraMtx, sp44);
PSMTXConcat(sp44, sp74, sp74); MTXConcat(sp44, sp74, sp74);
GXLoadTexMtxImm(sp74, 0x24, GX_MTX3x4); GXLoadTexMtxImm(sp74, 0x24, GX_MTX3x4);
GXSetTexCoordGen2(GX_TEXCOORD2, GX_TG_MTX3x4, GX_TG_POS, 0x24, GX_FALSE, 0x7D); 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; var_f31 = 0.00075f * var_f30;
PSMTXScale(sp194, var_f31, -0.003f, 0.00075f); MTXScale(sp194, var_f31, -0.003f, 0.00075f);
PSMTXConcat(sp164, sp194, sp164); MTXConcat(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)); 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));
PSMTXConcat(sp164, sp194, sp164); MTXConcat(sp164, sp194, sp164);
sp164[0][1] = -0.001f; sp164[0][1] = -0.001f;
GXLoadTexMtxImm(sp164, 0x21, GX_MTX2x4); GXLoadTexMtxImm(sp164, 0x21, GX_MTX2x4);
GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_POS, 0x21, GX_FALSE, 0x7D); 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); GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD1, GX_TEXMAP1);
GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1);
GXSetTevIndWarp(0, 0, GX_TRUE, GX_FALSE, 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); GXSetIndTexMtx(GX_ITM_0, (float(*)[3])sp164, -4);
GXSetIndTexOrder(GX_INDTEXSTAGE1, GX_TEXCOORD1, GX_TEXMAP1); GXSetIndTexOrder(GX_INDTEXSTAGE1, GX_TEXCOORD1, GX_TEXMAP1);
GXSetIndTexCoordScale(GX_INDTEXSTAGE1, GX_ITS_1, GX_ITS_1); GXSetIndTexCoordScale(GX_INDTEXSTAGE1, GX_ITS_1, GX_ITS_1);
GXSetTevIndWarp(1, 1, GX_TRUE, GX_FALSE, 2); 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); GXSetIndTexMtx(GX_ITM_1, (float(*)[3])sp164, -1);
GXSetNumTevStages(2); GXSetNumTevStages(2);
GXSetTevColor(GX_TEVREG0, sp14); GXSetTevColor(GX_TEVREG0, sp14);
@ -1320,10 +1323,10 @@ void fn_1_963C(ModelData *model, Mtx matrix, u32 var_r31)
var_f30 = 1.5f; var_f30 = 1.5f;
var_f31 = 0.0f; 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); 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);
PSMTXScale(sp100, var_f30, 1.0f, 1.0f); MTXScale(sp100, var_f30, 1.0f, 1.0f);
PSMTXConcat(spD0, sp100, spD0); MTXConcat(spD0, sp100, spD0);
PSMTXConcat(Hu3DCameraMtx, spD0, spA0); MTXConcat(Hu3DCameraMtx, spD0, spA0);
GXLoadPosMtxImm(spA0, 0); GXLoadPosMtxImm(spA0, 0);
GXSetNumChans(1); GXSetNumChans(1);
GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); 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); HuSprTexLoad(lbl_1_bss_148, 0, 1, GX_CLAMP, GX_CLAMP, GX_LINEAR);
GXSetNumTexGens(2); GXSetNumTexGens(2);
C_MTXLightPerspective(sp70, 70.0f, 0.5f, 0.5f, -0.5f, 0.5f, 0.5f); C_MTXLightPerspective(sp70, 70.0f, 0.5f, 0.5f, -0.5f, 0.5f, 0.5f);
PSMTXInverse(Hu3DCameraMtx, sp40); MTXInverse(Hu3DCameraMtx, sp40);
PSMTXConcat(sp40, spA0, sp40); MTXConcat(sp40, spA0, sp40);
PSMTXConcat(sp70, Hu3DCameraMtx, sp10); MTXConcat(sp70, Hu3DCameraMtx, sp10);
PSMTXConcat(sp10, sp40, sp40); MTXConcat(sp10, sp40, sp40);
GXLoadTexMtxImm(sp40, 0x21, GX_MTX3x4); GXLoadTexMtxImm(sp40, 0x21, GX_MTX3x4);
GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX3x4, GX_TG_POS, 0x21, GX_FALSE, 0x7D); 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; var_f31 = 0.00075f * var_f30;
PSMTXScale(sp100, var_f31, -0.003f, 0.00075f); MTXScale(sp100, var_f31, -0.003f, 0.00075f);
PSMTXConcat(spD0, sp100, spD0); MTXConcat(spD0, sp100, spD0);
PSMTXTrans(sp100, (lbl_1_bss_60[var_r31].unk_1C & 0x3FF) / (1024.0f * var_f31), 0.0f, 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)); 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); GXLoadTexMtxImm(spD0, 0x1E, GX_MTX2x4);
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_POS, 0x1E, GX_FALSE, 0x7D); GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_POS, 0x1E, GX_FALSE, 0x7D);
GXSetNumIndStages(1); GXSetNumIndStages(1);
GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD0, GX_TEXMAP0); GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD0, GX_TEXMAP0);
GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1);
GXSetTevIndWarp(0, 0, GX_TRUE, GX_FALSE, 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); GXSetIndTexMtx(GX_ITM_0, (float(*)[3])spD0, -1);
GXSetNumTevStages(1); GXSetNumTevStages(1);
GXSetTevColor(GX_TEVREG0, spC); GXSetTevColor(GX_TEVREG0, spC);
@ -1432,18 +1435,18 @@ void fn_1_9C90(ModelData *model, Mtx matrix)
sp28.x = sp1C.x; sp28.x = sp1C.x;
sp28.y = 0.0f; sp28.y = 0.0f;
sp28.z = sp1C.z - 450000.0f; sp28.z = sp1C.z - 450000.0f;
PSVECSubtract(&sp28, &sp1C, &sp10); VECSubtract(&sp28, &sp1C, &sp10);
PSVECNormalize(&sp10, &sp10); VECNormalize(&sp10, &sp10);
PSVECScale(&sp10, &sp10, 8000.0f); VECScale(&sp10, &sp10, 8000.0f);
PSVECAdd(&sp1C, &sp10, &sp28); VECAdd(&sp1C, &sp10, &sp28);
PSMTXTrans(spF4, sp28.x, sp28.y, sp28.z); MTXTrans(spF4, sp28.x, sp28.y, sp28.z);
var_f31 = 1.0f; var_f31 = 1.0f;
if (fn_1_4030() == 0) { if (fn_1_4030() == 0) {
var_f31 = 1.5f; var_f31 = 1.5f;
PSMTXScale(sp124, var_f31, 1.0f, 1.0f); MTXScale(sp124, var_f31, 1.0f, 1.0f);
PSMTXConcat(spF4, sp124, spF4); MTXConcat(spF4, sp124, spF4);
} }
PSMTXConcat(Hu3DCameraMtx, spF4, spC4); MTXConcat(Hu3DCameraMtx, spF4, spC4);
GXLoadPosMtxImm(spC4, 0); GXLoadPosMtxImm(spC4, 0);
GXSetNumChans(1); GXSetNumChans(1);
GXSetChanCtrl(GX_COLOR0A0, 0, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); 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); HuSprTexLoad(lbl_1_bss_148, 0, 1, GX_CLAMP, GX_CLAMP, GX_LINEAR);
GXSetNumTexGens(2); GXSetNumTexGens(2);
C_MTXLightPerspective(sp94, 70.0f, 0.5f, 0.5f, -0.5f, 0.5f, 0.5f); C_MTXLightPerspective(sp94, 70.0f, 0.5f, 0.5f, -0.5f, 0.5f, 0.5f);
PSMTXInverse(Hu3DCameraMtx, sp64); MTXInverse(Hu3DCameraMtx, sp64);
PSMTXConcat(sp64, spC4, sp64); MTXConcat(sp64, spC4, sp64);
PSMTXConcat(sp94, Hu3DCameraMtx, sp34); MTXConcat(sp94, Hu3DCameraMtx, sp34);
PSMTXConcat(sp34, sp64, sp64); MTXConcat(sp34, sp64, sp64);
GXLoadTexMtxImm(sp64, 0x21, GX_MTX3x4); GXLoadTexMtxImm(sp64, 0x21, GX_MTX3x4);
GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX3x4, GX_TG_POS, 0x21, GX_FALSE, 0x7D); GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX3x4, GX_TG_POS, 0x21, GX_FALSE, 0x7D);
var_f30 = 0.00075f * var_f31; var_f30 = 0.00075f * var_f31;
PSMTXScale(spF4, var_f30, -0.005f, 0.00075f); MTXScale(spF4, var_f30, -0.005f, 0.00075f);
PSMTXTrans(sp124, (lbl_1_bss_60[var_r31].unk_1C & 0x3FF) / (1024.0f * var_f30), 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); 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); GXLoadTexMtxImm(spF4, 0x1E, GX_MTX2x4);
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_POS, 0x1E, GX_FALSE, 0x7D); GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_POS, 0x1E, GX_FALSE, 0x7D);
GXSetNumIndStages(1); GXSetNumIndStages(1);
GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD0, GX_TEXMAP0); GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD0, GX_TEXMAP0);
GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1);
GXSetTevIndWarp(0, 0, GX_TRUE, GX_FALSE, 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); GXSetIndTexMtx(GX_ITM_0, (float(*)[3])spF4, -1);
GXSetNumTevStages(1); GXSetNumTevStages(1);
GXSetTevColor(GX_TEVREG0, spC); GXSetTevColor(GX_TEVREG0, spC);
@ -1522,37 +1525,37 @@ void fn_1_A3A8(ModelData *model, Mtx matrix)
var_f31 = 0.0f; var_f31 = 0.0f;
} }
if (lbl_1_bss_5C != 0) { 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); GXSetTevColor(GX_TEVREG0, sp10);
} }
else { 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); GXSetTevColor(GX_TEVREG0, sp14);
} }
PSMTXScale(sp48, var_f30, 1.0f, 1.0f); MTXScale(sp48, var_f30, 1.0f, 1.0f);
PSMTXConcat(sp18, sp48, sp18); MTXConcat(sp18, sp48, sp18);
PSMTXConcat(Hu3DCameraMtx, sp18, sp18); MTXConcat(Hu3DCameraMtx, sp18, sp18);
GXLoadPosMtxImm(sp18, 0); GXLoadPosMtxImm(sp18, 0);
GXSetNumChans(1); GXSetNumChans(1);
GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); 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_144, 0, 0, GX_REPEAT, GX_REPEAT, GX_LINEAR);
HuSprTexLoad(lbl_1_bss_140, 0, 1, GX_REPEAT, GX_REPEAT, GX_LINEAR); HuSprTexLoad(lbl_1_bss_140, 0, 1, GX_REPEAT, GX_REPEAT, GX_LINEAR);
GXSetNumTexGens(2); GXSetNumTexGens(2);
PSMTXRotRad(sp18, 0x58, 1.5707964f); MTXRotRad(sp18, 0x58, 1.5707964f);
var_f31 = 0.004f * var_f30; var_f31 = 0.004f * var_f30;
PSMTXScale(sp48, var_f31, -0.004f, 0.004f); MTXScale(sp48, var_f31, -0.004f, 0.004f);
PSMTXConcat(sp18, sp48, sp18); MTXConcat(sp18, sp48, sp18);
PSMTXTrans(sp48, (lbl_1_bss_60[var_r31].unk_1C & 0x3FF) / (512.0f * var_f31), 0.0f, 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)); (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); GXLoadTexMtxImm(sp18, 0x1E, GX_MTX2x4);
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_POS, 0x1E, GX_FALSE, 0x7D); 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; var_f31 = 0.004f * var_f30;
PSMTXScale(sp48, var_f31, -0.004f, 0.004f); MTXScale(sp48, var_f31, -0.004f, 0.004f);
PSMTXConcat(sp18, sp48, sp18); MTXConcat(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); 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);
PSMTXConcat(sp18, sp48, sp18); MTXConcat(sp18, sp48, sp18);
GXLoadTexMtxImm(sp18, 0x21, GX_MTX2x4); GXLoadTexMtxImm(sp18, 0x21, GX_MTX2x4);
GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_POS, 0x21, GX_FALSE, 0x7D); GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_POS, 0x21, GX_FALSE, 0x7D);
GXSetNumTevStages(2); 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++) { for (var_r31 = particle->unk_48, var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) {
if (var_r31->unk00_s16 != 0) { 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);
PSVECScale(&var_r31->unk08, &var_r31->unk08, 0.97f); VECScale(&var_r31->unk08, &var_r31->unk08, 0.97f);
if (var_r31->unk00_s16 < 24.0f) { if (var_r31->unk00_s16 < 24.0f) {
var_r31->unk40.a = 0.9f * var_r31->unk40.a; 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++) { 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) { if (var_r31->unk00_s16 != 0) {
var_r31->unk00_s16--; 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; var_r31->unk2C += 0.5f;
if (var_r31->unk00_s16 < 30.0) { if (var_r31->unk00_s16 < 30.0) {
var_r31->unk40.a = 0.98f * var_r31->unk40.a; 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))) { if (!(frandmod(0x3E8) > (1000.0f * arg9))) {
var_r27 = 2; var_r27 = 2;
var_f28 = 40.0f; var_f28 = 40.0f;
PSVECScale(arg2, &sp1C, 0.2f); VECScale(arg2, &sp1C, 0.2f);
sp1C.x = 0.0f; sp1C.x = 0.0f;
for (var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) { for (var_r29 = 0; var_r29 < var_r30->unk_30; var_r29++, var_r31++) {
if (var_r31->unk00_s16 == 0) { 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.x = sp28.x * var_f31;
var_r31->unk08.z = sp28.z * var_f31; var_r31->unk08.z = sp28.z * var_f31;
var_r31->unk08.y = 0.0f; 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 = 0.001f * frandmod(0x3E8);
var_f31 += (1.0f - var_f31) * (0.3f * arg9); var_f31 += (1.0f - var_f31) * (0.3f * arg9);
var_r31->unk30 = frandmod(0x168); var_r31->unk30 = frandmod(0x168);

View file

@ -1274,7 +1274,7 @@ void fn_1_4028(Work2110 *arg0)
temp_r31->unk18++; temp_r31->unk18++;
temp_f31 = temp_r31->unk18 / (VERSION_NTSC ? 54.0f : 45.0f); temp_f31 = temp_r31->unk18 / (VERSION_NTSC ? 54.0f : 45.0f);
if (temp_f31 >= 1.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 = 1.0f;
} }
temp_f31 = cosd(temp_f31 * 90.0f); temp_f31 = cosd(temp_f31 * 90.0f);

View file

@ -395,12 +395,12 @@ void fn_1_227C(Vec *arg0, Vec *arg1)
{ {
Vec sp10; Vec sp10;
PSVECSubtract(arg1, arg0, &sp10); VECSubtract(arg1, arg0, &sp10);
Center = *arg1; Center = *arg1;
CRot.x = atan2d(sp10.y, sqrtf((sp10.x * sp10.x) + (sp10.z * sp10.z))); CRot.x = atan2d(sp10.y, sqrtf((sp10.x * sp10.x) + (sp10.z * sp10.z)));
CRot.y = atan2d(-sp10.x, -sp10.z); CRot.y = atan2d(-sp10.x, -sp10.z);
CRot.z = 0.0f; 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) 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; Mtx sp8;
if (argA != 0.0f) { if (argA != 0.0f) {
PSMTXRotRad(arg0, 0x5A, MTXDegToRad(argA)); MTXRotRad(arg0, 0x5A, MTXDegToRad(argA));
} }
else { else {
PSMTXIdentity(arg0); MTXIdentity(arg0);
} }
if (arg8 != 0.0f) { if (arg8 != 0.0f) {
PSMTXRotRad(sp38, 0x58, MTXDegToRad(arg8)); MTXRotRad(sp38, 0x58, MTXDegToRad(arg8));
PSMTXConcat(sp38, arg0, arg0); MTXConcat(sp38, arg0, arg0);
} }
if (arg9 != 0.0f) { if (arg9 != 0.0f) {
PSMTXRotRad(sp8, 0x59, MTXDegToRad(arg9)); MTXRotRad(sp8, 0x59, MTXDegToRad(arg9));
PSMTXConcat(sp8, arg0, arg0); MTXConcat(sp8, arg0, arg0);
} }
} }

View file

@ -629,7 +629,7 @@ void fn_1_60C0(omObjData *object)
if (work->unk_04 >= 0) { if (work->unk_04 >= 0) {
HuAudFXPlay(lbl_1_data_150[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_A8 = atan2d(spC.x, spC.z);
work->unk_AC = 0.15f; work->unk_AC = 0.15f;
work->unk_B0 = 0.0f; work->unk_B0 = 0.0f;
@ -686,7 +686,7 @@ void fn_1_60C0(omObjData *object)
} }
break; 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) { if (fn_1_10ECC(work->unk_14) >= 2) {
fn_1_B194(object); 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 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 } }; Vec sp28[2] = { { 150.0f, 0.0f, 100.0f }, { 300.0f, 0.0f, -100.0f } };
var_r27 = work->unk_14C->data; 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_B194(object);
fn_1_722C(object); fn_1_722C(object);
switch (work->unk_74) { switch (work->unk_74) {
@ -782,15 +782,15 @@ void fn_1_682C(omObjData *object)
break; break;
case 1: case 1:
if (work->unk_84 == 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; sp10.y = 0.0f;
var_f31 = PSVECMag(&sp10); var_f31 = VECMag(&sp10);
if (var_f31 < 20.0f) { if (var_f31 < 20.0f) {
var_f31 = 0.01f; var_f31 = 0.01f;
work->unk_84++; work->unk_84++;
} }
else { else {
if (PSVECMag(&sp10) >= 100.0f) { if (VECMag(&sp10) >= 100.0f) {
var_f31 = 100.0f; var_f31 = 100.0f;
} }
var_f31 = 0.2f + (0.008f * var_f31); var_f31 = 0.2f + (0.008f * var_f31);
@ -826,14 +826,14 @@ void fn_1_682C(omObjData *object)
} }
break; break;
case 2: case 2:
PSVECSubtract(&work->unk_140, &work->unk_128, &sp10); VECSubtract(&work->unk_140, &work->unk_128, &sp10);
sp10.y = 0.0f; sp10.y = 0.0f;
var_f31 = PSVECMag(&sp10); var_f31 = VECMag(&sp10);
if (var_f31 < 10.0f) { if (var_f31 < 10.0f) {
var_f31 = 0.01f; var_f31 = 0.01f;
} }
else { else {
if (PSVECMag(&sp10) >= 100.0f) { if (VECMag(&sp10) >= 100.0f) {
var_f31 = 100.0f; var_f31 = 100.0f;
} }
var_f31 = 0.2f + (0.008f * var_f31); 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.x = Center.x + (CZoom * (sind(CRot.y) * cosd(CRot.x)));
sp1C.y = Center.y + (CZoom * -sind(CRot.x)); sp1C.y = Center.y + (CZoom * -sind(CRot.x));
sp1C.z = Center.z + (CZoom * (cosd(CRot.y) * cosd(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); work->unk_A8 = atan2d(sp10.x, sp10.z);
} }
if (fn_1_B6E0(object) != 0) { 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)) { 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; sp10.y = 0.0f;
var_f31 = PSVECMag(&sp10); var_f31 = VECMag(&sp10);
if (PSVECMag(&sp10) >= 20.0f) { if (VECMag(&sp10) >= 20.0f) {
if (var_f31 >= 50.0f) { if (var_f31 >= 50.0f) {
var_f31 = 50.0f; var_f31 = 50.0f;
} }
@ -1076,9 +1076,9 @@ void fn_1_74D4(omObjData *object)
var_r29 = 0; var_r29 = 0;
} }
if (work->unk_F8 != 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; sp10.y = 0.0f;
var_f31 = PSVECMag(&sp10); var_f31 = VECMag(&sp10);
if (var_f31 >= 10.0f) { if (var_f31 >= 10.0f) {
if (var_f31 >= 50.0f) { if (var_f31 >= 50.0f) {
var_f31 = 50.0f; var_f31 = 50.0f;
@ -1096,9 +1096,9 @@ void fn_1_74D4(omObjData *object)
var_r29 = 0; var_r29 = 0;
} }
if (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; sp10.y = 0.0f;
var_f31 = PSVECMag(&sp10); var_f31 = VECMag(&sp10);
var_f31 -= 100.0f * (1.25f * (2.0f - work->unk_C0)); var_f31 -= 100.0f * (1.25f * (2.0f - work->unk_C0));
if (var_f31 >= 10.0f) { if (var_f31 >= 10.0f) {
if (var_f31 >= 70.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_14 == fn_1_10740(&sp1C)) {
if (work->unk_68 == 0) { if (work->unk_68 == 0) {
if (fn_1_11004(work->unk_14, work->unk_18) != 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; sp10.y = 0.0f;
var_f31 = PSVECMag(&sp10); var_f31 = VECMag(&sp10);
if (var_f31 >= 30.000002f) { if (var_f31 >= 30.000002f) {
if (var_f31 >= 70.0f) { if (var_f31 >= 70.0f) {
var_f31 = 70.0f; var_f31 = 70.0f;
@ -1159,9 +1159,9 @@ void fn_1_74D4(omObjData *object)
else { else {
if (fn_1_10614(&sp1C) != 0) { if (fn_1_10614(&sp1C) != 0) {
if (work->unk_E8 != 0) { if (work->unk_E8 != 0) {
PSVECSubtract(&work->unk_114, &sp1C, &sp10); VECSubtract(&work->unk_114, &sp1C, &sp10);
sp10.y = 0.0f; sp10.y = 0.0f;
var_f31 = PSVECMag(&sp10); var_f31 = VECMag(&sp10);
if (var_f31 < 0.05f) { if (var_f31 < 0.05f) {
work->unk_DC = 0.0f; work->unk_DC = 0.0f;
work->unk_E0 = 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 ((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 (((var_r30->unk_6C == 0) && (work->unk_6C == 0)) || (fn_1_108C4() < 0x3E8)) {
if ((work->unk_30 == 0) || (var_r30->unk_30 == 0)) { 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; sp8.y = 0.0f;
var_f31 = PSVECMag(&sp8) - (100.0f * (2.0f * work->unk_C0)); var_f31 = VECMag(&sp8) - (100.0f * (2.0f * work->unk_C0));
PSVECSubtract(&sp14, &var_r30->unk_128, &sp8); VECSubtract(&sp14, &var_r30->unk_128, &sp8);
sp8.y = 0.0f; 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)) { if ((work->unk_30 != 0) || (work->unk_60 != 0)) {
var_f31 = 2000.0f; 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++) { for (var_r30 = 0; var_r30 <= 0xA; var_r30++) {
sp14.x = 230.0f; sp14.x = 230.0f;
for (var_r31 = 0; var_r31 <= 0xA; var_r31++) { for (var_r31 = 0; var_r31 <= 0xA; var_r31++) {
PSVECSubtract(&sp14, &sp2C[0], &sp20); VECSubtract(&sp14, &sp2C[0], &sp20);
var_f31 = PSVECMag(&sp20); var_f31 = VECMag(&sp20);
PSVECSubtract(&sp14, &sp2C[1], &sp20); VECSubtract(&sp14, &sp2C[1], &sp20);
var_f31 *= PSVECMag(&sp20); var_f31 *= VECMag(&sp20);
if (var_f31 > var_f30) { if (var_f31 > var_f30) {
var_f30 = var_f31; var_f30 = var_f31;
sp8 = sp14; sp8 = sp14;
@ -1415,7 +1415,7 @@ void fn_1_8BD0(omObjData *object)
} }
if ((var_r29 != 0) && (work->unk_24 == 0.0f)) { if ((var_r29 != 0) && (work->unk_24 == 0.0f)) {
fn_1_10B20(0.0f, &sp14); 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_A8 = atan2d(sp8.x, sp8.z);
work->unk_AC = 0.1f; work->unk_AC = 0.1f;
work->unk_B0 = 0.0f; work->unk_B0 = 0.0f;
@ -1569,9 +1569,9 @@ void fn_1_9688(omObjData *object)
work->unk_140 = sp2C; work->unk_140 = sp2C;
var_f31 = fn_1_10848(); var_f31 = fn_1_10848();
if ((var_f31 <= 0.8f) && (var_f31 >= 0.02f) && (var_r29->unk_64 == 0)) { 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; sp20.y = 0.0f;
var_f30 = PSVECMag(&sp20); var_f30 = VECMag(&sp20);
work->unk_98 = var_f30; work->unk_98 = var_f30;
if (var_f30 <= 200.0f) { 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)) { 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; 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_A8 = atan2d(sp20.x, sp20.z);
work->unk_AC = 0.2f; work->unk_AC = 0.2f;
work->unk_B0 = 0.0f; work->unk_B0 = 0.0f;
@ -1664,7 +1664,7 @@ void fn_1_9688(omObjData *object)
} }
work->unk_64 = 0; work->unk_64 = 0;
fn_1_B4D4(object, 9); 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_A8 = atan2d(sp20.x, sp20.z);
work->unk_AC = 0.1f; work->unk_AC = 0.1f;
work->unk_90 = 0x186A0; work->unk_90 = 0x186A0;
@ -1727,7 +1727,7 @@ void fn_1_9688(omObjData *object)
} }
work->unk_64 = 0; work->unk_64 = 0;
fn_1_B4D4(object, 6); 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_A8 = atan2d(sp20.x, sp20.z);
work->unk_AC = 0.1f; work->unk_AC = 0.1f;
work->unk_90 = 0x186A0; work->unk_90 = 0x186A0;
@ -1756,7 +1756,7 @@ void fn_1_9688(omObjData *object)
if (work->unk_64 != 0) { if (work->unk_64 != 0) {
sp2C = work->unk_128; sp2C = work->unk_128;
sp2C.y = 11.0f; 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 = 180.0 + (atan2d(sp20.x, sp20.z));
var_f29 += frandmod(0xB4) - 90.0f; var_f29 += frandmod(0xB4) - 90.0f;
var_f30 = 200.0f * work->unk_98; var_f30 = 200.0f * work->unk_98;
@ -1817,14 +1817,14 @@ void fn_1_A618(omObjData *object)
case 0: 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)) 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))) { && (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; sp14.y = 0.0f;
if (!(PSVECMag(&sp14) > 500.0f)) { if (!(VECMag(&sp14) > 500.0f)) {
fn_1_10B20(0.5f, &sp20); fn_1_10B20(0.5f, &sp20);
sp20.y -= lbl_1_data_E0[work->unk_00]; 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; 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; work->unk_5C = 1;
} }
if (((work->unk_1C & 0x200) != 0) && (work->unk_5C != 0)) { if (((work->unk_1C & 0x200) != 0) && (work->unk_5C != 0)) {
@ -1837,7 +1837,7 @@ void fn_1_A618(omObjData *object)
var_f30 = 0.5f; var_f30 = 0.5f;
work->unk_124 = (2.0f * -sp20.y) / (var_f30 * var_f30); work->unk_124 = (2.0f * -sp20.y) / (var_f30 * var_f30);
work->unk_134.y = 0.016666668f * (-work->unk_124 * 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; sp14.y = 0.0f;
work->unk_134.x = 0.016666668f * (sp14.x / 0.5f); work->unk_134.x = 0.016666668f * (sp14.x / 0.5f);
work->unk_134.z = 0.016666668f * (sp14.z / 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); fn_1_10B20(0.0f, &sp1C);
if ((sp1C.x * work->unk_128.x) > 0.0f) { if ((sp1C.x * work->unk_128.x) > 0.0f) {
sp1C.y = work->unk_128.y; sp1C.y = work->unk_128.y;
PSVECSubtract(&sp1C, &work->unk_128, &sp10); VECSubtract(&sp1C, &work->unk_128, &sp10);
if (PSVECMag(&sp10) < 60.000004f) { if (VECMag(&sp10) < 60.000004f) {
if (frandmod(0x64) < 0x1E) { if (frandmod(0x64) < 0x1E) {
fn_1_10740(&sp1C); fn_1_10740(&sp1C);
sp1C.x *= -0.5f; sp1C.x *= -0.5f;
@ -2016,9 +2016,9 @@ void fn_1_B194(omObjData *object)
for (var_r28 = 0; var_r28 < 4; var_r28++) { for (var_r28 = 0; var_r28 < 4; var_r28++) {
if (var_r29 != var_r28) { if (var_r29 != var_r28) {
var_r30 = lbl_1_bss_7D0[var_r28]->data; 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; 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 < (var_r31->unk_120 + var_r30->unk_120)) {
if (var_f31 > 0.0f) { if (var_f31 > 0.0f) {
var_f31 = 0.5f * ((var_r31->unk_120 + var_r30->unk_120) - var_f31); 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.x = frandmod(0x3E8) - 0x1F4;
sp8.z = frandmod(0x3E8) - 0x1F4; sp8.z = frandmod(0x3E8) - 0x1F4;
} }
PSVECNormalize(&sp8, &sp8); VECNormalize(&sp8, &sp8);
PSVECScale(&sp8, &sp8, var_f31); VECScale(&sp8, &sp8, var_f31);
PSVECAdd(&var_r31->unk_128, &sp8, &var_r31->unk_128); VECAdd(&var_r31->unk_128, &sp8, &var_r31->unk_128);
PSVECSubtract(&var_r30->unk_128, &sp8, &var_r30->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_B8 = 0.0f;
work->unk_BC.x = work->unk_BC.y = 0.0f; work->unk_BC.x = work->unk_BC.y = 0.0f;
work->unk_BC.z = 1.0f; work->unk_BC.z = 1.0f;
PSMTXIdentity(work->unk_C8); MTXIdentity(work->unk_C8);
work->unk_18 = 0; work->unk_18 = 0;
object->func = fn_1_C240; object->func = fn_1_C240;
} }
@ -2219,7 +2219,7 @@ void fn_1_C240(omObjData *object)
work->unk_B8 = 0.0f; work->unk_B8 = 0.0f;
work->unk_BC.x = work->unk_BC.y = 0.0f; work->unk_BC.x = work->unk_BC.y = 0.0f;
work->unk_BC.z = 1.0f; work->unk_BC.z = 1.0f;
PSMTXIdentity(work->unk_C8); MTXIdentity(work->unk_C8);
work->unk_00 = 1; work->unk_00 = 1;
break; break;
case 10: case 10:
@ -2296,14 +2296,14 @@ s32 fn_1_C6B0(omObjData *object)
fn_1_D338(&work->unk_F8); fn_1_D338(&work->unk_F8);
fn_1_D180(&work->unk_F8); fn_1_D180(&work->unk_F8);
work->unk_B8 = work->unk_A8 * (8.0f * lbl_1_data_48C[work->unk_6C]); 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; 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.x = work->unk_BC.y = 0.0f;
work->unk_BC.z = 1.0f; work->unk_BC.z = 1.0f;
} }
else { else {
PSVECNormalize(&sp8, &sp8); VECNormalize(&sp8, &sp8);
work->unk_BC.x = -sp8.z; work->unk_BC.x = -sp8.z;
work->unk_BC.y = 0.0f; work->unk_BC.y = 0.0f;
work->unk_BC.z = sp8.x; work->unk_BC.z = sp8.x;
@ -2324,9 +2324,9 @@ s32 fn_1_C6B0(omObjData *object)
} }
work->unk_10 = 1; work->unk_10 = 1;
if (work->unk_B8 != 0.0f) { if (work->unk_B8 != 0.0f) {
PSMTXRotAxisRad(sp14, &work->unk_BC, 0.017453292f * work->unk_B8); MTXRotAxisRad(sp14, &work->unk_BC, 0.017453292f * work->unk_B8);
PSMTXConcat(sp14, work->unk_C8, work->unk_C8); MTXConcat(sp14, work->unk_C8, work->unk_C8);
PSMTXCopy(work->unk_C8, Hu3DData[object->model[0]].unk_F0); MTXCopy(work->unk_C8, Hu3DData[object->model[0]].unk_F0);
} }
work->unk_48 += 0.016666668f; work->unk_48 += 0.016666668f;
work->unk_08 = fn_1_D4E0(&work->unk_F8, &work->unk_30, &work->unk_4C, work->unk_48); 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 = 0.0f;
} }
var_f31 = (var_f30 - var_f31) / 21.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; 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++) { for (var_r29 = 0; var_r29 < 0x15; var_r29++) {
Hu3DModelAttrReset(object->model[var_r29 + 9], HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(object->model[var_r29 + 9], HU3D_ATTR_DISPOFF);
fn_1_D4E0(&work->unk_F8, &sp14, &sp8, var_f30); fn_1_D4E0(&work->unk_F8, &sp14, &sp8, var_f30);
Hu3DModelPosSetV(object->model[var_r29 + 9], &sp14); Hu3DModelPosSetV(object->model[var_r29 + 9], &sp14);
PSMTXCopy(sp20, Hu3DData[object->model[var_r29 + 9]].unk_F0); MTXCopy(sp20, Hu3DData[object->model[var_r29 + 9]].unk_F0);
PSMTXConcat(sp50, sp20, sp20); MTXConcat(sp50, sp20, sp20);
var_f30 -= var_f31; var_f30 -= var_f31;
} }
work->unk_F8.unk_04 = var_f29; 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.x = arg1->x + (arg0->unk_08 * (arg2->x - arg1->x));
spC.y = arg0->unk_0C; spC.y = arg0->unk_0C;
spC.z = arg1->z + (arg0->unk_08 * (arg2->z - arg1->z)); spC.z = arg1->z + (arg0->unk_08 * (arg2->z - arg1->z));
PSVECSubtract(arg2, &spC, &sp18); VECSubtract(arg2, &spC, &sp18);
var_f30 = PSVECMag(&sp18); var_f30 = VECMag(&sp18);
PSVECSubtract(&spC, arg1, &sp18); VECSubtract(&spC, arg1, &sp18);
var_f30 += PSVECMag(&sp18); var_f30 += VECMag(&sp18);
} }
else { else {
PSVECSubtract(arg2, arg1, &sp18); VECSubtract(arg2, arg1, &sp18);
var_f30 = PSVECMag(&sp18); var_f30 = VECMag(&sp18);
} }
} }
else { else {
PSVECSubtract(arg2, arg1, &sp18); VECSubtract(arg2, arg1, &sp18);
var_f30 = PSVECMag(&sp18); var_f30 = VECMag(&sp18);
} }
var_f31 = var_f30 / (arg8 * lbl_1_data_4D4[arg3].z); var_f31 = var_f30 / (arg8 * lbl_1_data_4D4[arg3].z);
arg0->unk_00 = var_f31; 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_38 = *arg2;
arg0->unk_1C = arg2->y - arg1->y; arg0->unk_1C = arg2->y - arg1->y;
arg0->unk_24 = -980.0f; arg0->unk_24 = -980.0f;
PSVECSubtract(arg2, arg1, &sp18); VECSubtract(arg2, arg1, &sp18);
sp18.y = 0.0f; sp18.y = 0.0f;
arg0->unk_10 = PSVECMag(&sp18); arg0->unk_10 = VECMag(&sp18);
arg0->unk_18 = 0.0f; arg0->unk_18 = 0.0f;
if (var_f31 > 0.0f) { if (var_f31 > 0.0f) {
arg0->unk_20 = (arg0->unk_1C - (0.5f * (-980.0f * (var_f31 * var_f31)))) / var_f31; 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; arg0->unk_04 = arg8;
if (arg0->unk_10 > 0.0f) { 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; spC.y = 0.0f;
PSVECNormalize(&spC, &spC); VECNormalize(&spC, &spC);
} }
else { else {
spC.x = spC.y = spC.z = 0.0f; 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->x = arg0->unk_2C.x + (spC.x * var_f30);
arg1->y = arg0->unk_2C.y + var_f29; arg1->y = arg0->unk_2C.y + var_f29;
arg1->z = arg0->unk_2C.z + (spC.z * var_f30); arg1->z = arg0->unk_2C.z + (spC.z * var_f30);
PSVECSubtract(arg1, &sp18, arg2); VECSubtract(arg1, &sp18, arg2);
if (arg8 >= arg0->unk_00) { if (arg8 >= arg0->unk_00) {
return 1; 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++) { for (var_r31 = particle->unk_48, var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) {
if (var_r31->unk00_s16 != 0) { 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.x *= 0.92f;
var_r31->unk08.z *= 0.92f; var_r31->unk08.z *= 0.92f;
var_r31->unk08.y += -0.27222225f; var_r31->unk08.y += -0.27222225f;
@ -3421,9 +3421,9 @@ float fn_1_10B20(float arg8, Vec *arg0)
} }
var_r31->unk_04 = var_f31; var_r31->unk_04 = var_f31;
if (var_r31->unk_10 > 0.0f) { 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; sp14.y = 0.0f;
PSVECNormalize(&sp14, &sp14); VECNormalize(&sp14, &sp14);
} }
else { else {
sp14.x = sp14.y = sp14.z = 0.0f; 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->x = var_r31->unk_2C.x + (sp14.x * var_f29);
arg0->y = var_r31->unk_2C.y + var_f28; arg0->y = var_r31->unk_2C.y + var_f28;
arg0->z = var_r31->unk_2C.z + (sp14.z * var_f29); 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_f31 >= var_r31->unk_00;
var_r31->unk_04 = var_f30; var_r31->unk_04 = var_f30;
return var_f30 + arg8; return var_f30 + arg8;
@ -3462,7 +3462,7 @@ s32 fn_1_10D24(Vec *sp8)
var_r31 = lbl_1_bss_7CC->data; var_r31 = lbl_1_bss_7CC->data;
fn_1_10D24_inline(&spC); 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) { if ((spC.x * var_r31->unk_30.x) >= 0.0f) {
return 0; return 0;
} }
@ -3470,8 +3470,8 @@ s32 fn_1_10D24(Vec *sp8)
return 0; return 0;
} }
var_f31 = fabs(var_r31->unk_30.x / sp18.x); var_f31 = fabs(var_r31->unk_30.x / sp18.x);
PSVECScale(&sp18, &sp18, var_f31); VECScale(&sp18, &sp18, var_f31);
PSVECAdd(&var_r31->unk_30, &sp18, sp8); VECAdd(&var_r31->unk_30, &sp18, sp8);
return 1; return 1;
} }
@ -3535,9 +3535,9 @@ float fn_1_11098(Vec *arg0, Vec *arg1, Vec *arg2)
float var_f31; float var_f31;
float var_f30; float var_f30;
PSVECSubtract(arg1, arg0, &sp10); VECSubtract(arg1, arg0, &sp10);
var_f31 = PSVECDotProduct(&sp10, arg2); var_f31 = VECDotProduct(&sp10, arg2);
var_f30 = -PSVECSquareMag(arg2); var_f30 = -VECSquareMag(arg2);
if (var_f30 != 0.0f) { if (var_f30 != 0.0f) {
var_f31 /= var_f30; 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_f29;
float var_f28; float var_f28;
PSVECSubtract(arg1, arg0, &sp28); VECSubtract(arg1, arg0, &sp28);
PSVECSubtract(arg3, arg2, &sp1C); VECSubtract(arg3, arg2, &sp1C);
PSVECSubtract(&sp28, &sp1C, &sp28); VECSubtract(&sp28, &sp1C, &sp28);
if (PSVECMag(&sp28) <= 0.0f) { if (VECMag(&sp28) <= 0.0f) {
sp34 = *arg0; sp34 = *arg0;
} }
else { else {
PSVECSubtract(arg0, arg2, &sp10); VECSubtract(arg0, arg2, &sp10);
var_f30 = PSVECDotProduct(&sp10, &sp28); var_f30 = VECDotProduct(&sp10, &sp28);
var_f29 = -PSVECSquareMag(&sp28); var_f29 = -VECSquareMag(&sp28);
if (var_f29 != 0.0f) { if (var_f29 != 0.0f) {
var_f30 /= var_f29; 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) { else if (var_f31 > 1.0f) {
var_f31 = 1.0f; var_f31 = 1.0f;
} }
PSVECScale(&sp28, &sp1C, var_f31); VECScale(&sp28, &sp1C, var_f31);
PSVECAdd(arg0, &sp1C, &sp34); VECAdd(arg0, &sp1C, &sp34);
} }
PSVECSubtract(arg2, &sp34, &sp28); VECSubtract(arg2, &sp34, &sp28);
return PSVECMag(&sp28); return VECMag(&sp28);
} }

View file

@ -158,7 +158,7 @@ typedef struct M438UnkStruct {
s8 unk_55; s8 unk_55;
s8 unk_56; s8 unk_56;
u8 unk_57; u8 unk_57;
M438UnkSubStruct* unk_58; M438UnkSubStruct *unk_58;
u8 unk_5C; u8 unk_5C;
char unk5D[0x3]; char unk5D[0x3];
Vec unk_60; Vec unk_60;
@ -175,7 +175,7 @@ typedef struct M438UnkStruct2 {
Vec unk_0C; Vec unk_0C;
char unk18[0xC]; char unk18[0xC];
Vec unk_24; Vec unk_24;
void (*unk_30)(struct M438UnkStruct2*); void (*unk_30)(struct M438UnkStruct2 *);
char unk34[8]; char unk34[8];
M438UnkStruct *unk_3C; M438UnkStruct *unk_3C;
char unk40[0x20]; char unk40[0x20];
@ -575,88 +575,51 @@ void fn_1_1174(omObjData *object)
} }
} }
Vec lbl_1_data_68[11][8] = { Vec lbl_1_data_68[11][8] = { {
{ { -528.6f, 0.0f, 350.7f },
{ -528.6f, 0.0f, 350.7f }, { -375.7f, 0.0f, 243.0f },
{ -375.7f, 0.0f, 243.0f }, { -214.2f, 0.0f, 331.4f },
{ -214.2f, 0.0f, 331.4f }, { -173.3f, 0.0f, 523.7f },
{ -173.3f, 0.0f, 523.7f }, { 15.000001f, 0.0f, 505.7f },
{ 15.000001f, 0.0f, 505.7f }, { 148.59999f, 0.0f, 393.0f },
{ 148.59999f, 0.0f, 393.0f }, { 0.0f, 1.0f, 0.0f },
{ 0.0f, 1.0f, 0.0f }, },
},
{ {
{ -198.7f, 0.0f, -122.899994f }, { -198.7f, 0.0f, -122.899994f },
{ -11.599999f, 0.0f, -177.1f }, { -11.599999f, 0.0f, -177.1f },
{ 63.4f, 0.0f, -349.7f }, { 63.4f, 0.0f, -349.7f },
{ 277.09999f, 0.0f, -296.4f }, { 277.09999f, 0.0f, -296.4f },
{ 397.5f, 0.0f, -470.2f }, { 397.5f, 0.0f, -470.2f },
{ 0.0f, 1.0f, 0.0f }, { 0.0f, 1.0f, 0.0f },
}, },
{ {
{ -421.0f, 0.0f, -471.3f }, { -421.0f, 0.0f, -471.3f },
{ -270.1f, 0.0f, -460.0f }, { -270.1f, 0.0f, -460.0f },
{ -153.1f, 0.0f, -356.5f }, { -153.1f, 0.0f, -356.5f },
{ 12.4f, 0.0f, -473.99997f }, { 12.4f, 0.0f, -473.99997f },
{ 0.0f, 1.0f, 0.0f }, { 0.0f, 1.0f, 0.0f },
}, },
{ {
{ -545.10004f, 0.0f, -318.9f }, { -545.10004f, 0.0f, -318.9f },
{ -469.0f, 0.0f, -154.1f }, { -469.0f, 0.0f, -154.1f },
{ -313.4, 0.0f, -170.09999f }, { -313.4, 0.0f, -170.09999f },
{ -250.0f, 0.0f, -32.8f }, { -250.0f, 0.0f, -32.8f },
{ 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 }
}, },
{ { -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 }, { -601.0f, 0.0f, 97.799995f },
{ -516.80005f, 0.0f, 60.000004f }, { -516.80005f, 0.0f, 60.000004f },
{ -417.7f, 0.0f, 92.9f }, { -417.7f, 0.0f, 92.9f },
{ -309.40002f, 0.0f, 76.1f }, { -309.40002f, 0.0f, 76.1f },
{ 0.0f, 1.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 } },
{ 82.8f, 0.0f, 164.2f }, { { 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 } },
{ 179.40001f, 0.0f, 179.8f }, { { 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 } },
{ 241.00002f, 0.0f, 87.1f }, { { -100.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, -100.0f }, { 100.0f, 0.0f, 0.0f }, { 0.0f, 1.0f, 0.0f } } };
{ 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) void fn_1_1204(omObjData *object)
{ {
M438StructBss298 *var_r31; 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.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_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)); 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_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); 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); 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_22 = var_r28;
var_r31->unk_20 = var_r28; var_r31->unk_20 = var_r28;
CharModelMotionShiftSet(var_r31->unk_01, object->motion[8], 0.0f, 8.0f, var_r27); CharModelMotionShiftSet(var_r31->unk_01, object->motion[8], 0.0f, 8.0f, var_r27);
} else { }
else {
switch (var_r28) { switch (var_r28) {
case 0: case 0:
case 1: case 1:
case 2: 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: default:
var_r31->unk_22 = var_r28; var_r31->unk_22 = var_r28;
var_r31->unk_20 = var_r28; var_r31->unk_20 = var_r28;
@ -1590,7 +1556,6 @@ void fn_1_4724(omObjData *object)
object->func = fn_1_4984; object->func = fn_1_4984;
} }
void fn_1_4984(omObjData *object) void fn_1_4984(omObjData *object)
{ {
Vec sp8; Vec sp8;
@ -1645,7 +1610,7 @@ void fn_1_4984(omObjData *object)
} }
lbl_1_bss_4 = fn_1_10258(0x3C, 1); lbl_1_bss_4 = fn_1_10258(0x3C, 1);
fn_1_11018(lbl_1_bss_4, 0, 0x45000F); 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_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); fn_1_124CC(lbl_1_bss_4, 1);
lbl_1_bss_8++; lbl_1_bss_8++;
@ -1708,7 +1673,7 @@ void fn_1_4F50(omObjData *object)
var_r31->unk_00++; var_r31->unk_00++;
case 1: case 1:
var_r31->unk_34 = var_r31->unk_10; var_r31->unk_34 = var_r31->unk_10;
for (var_r28 = 0, var_r26 = 0; var_r28 < 4; var_r28++) { for (var_r28 = 0, var_r26 = 0; var_r28 < 4; var_r28++) {
var_r29 = lbl_1_bss_DC4[var_r28]->data; var_r29 = lbl_1_bss_DC4[var_r28]->data;
if ((var_r29->unk_07 != 0) && ((var_r29->unk_07 & 2) == 0)) { 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) { if (var_r31->unk_1C.y <= -180.0f) {
var_r31->unk_1C.y += 360.0f; var_r31->unk_1C.y += 360.0f;
} }
for (var_r28 = 0; var_r28 < var_r26; var_r28++) { for (var_r28 = 0; var_r28 < var_r26; var_r28++) {
var_f31 = fn_1_E5A4(sp8[var_r28], object->rot.y); var_f31 = fn_1_E5A4(sp8[var_r28], object->rot.y);
if (var_f31 < 0.0f) { if (var_f31 < 0.0f) {
var_f27 = -var_f31; var_f27 = -var_f31;
} else { }
else {
var_f27 = var_f31; 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]--; 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_04.y = sp8[var_r28];
var_r31->unk_1C.y = sp8[var_r28]; var_r31->unk_1C.y = sp8[var_r28];
var_r31->unk_28.y = 16.333334f; var_r31->unk_28.y = 16.333334f;
@ -1781,7 +1749,8 @@ void fn_1_4F50(omObjData *object)
sp18 = var_r31->unk_10; sp18 = var_r31->unk_10;
sp18.y = 0.0f; sp18.y = 0.0f;
var_f30 = VECMag(&sp18); var_f30 = VECMag(&sp18);
if (var_f30 <= 700.0f) break; if (var_f30 <= 700.0f)
break;
var_r31->unk_02 = 1; var_r31->unk_02 = 1;
if (fn_1_DA64(atan2d(sp18.x, sp18.z)) != 0) { if (fn_1_DA64(atan2d(sp18.x, sp18.z)) != 0) {
var_r31->unk_02 = 0x78; var_r31->unk_02 = 0x78;
@ -1804,7 +1773,8 @@ void fn_1_4F50(omObjData *object)
case 4: case 4:
var_r31->unk_28.y += -3.0625f; var_r31->unk_28.y += -3.0625f;
var_r31->unk_10.y += var_r31->unk_28.y; 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_10.y = 0.0f;
var_r31->unk_34 = var_r31->unk_10; var_r31->unk_34 = var_r31->unk_10;
Hu3DModelAttrReset(object->model[0], HU3D_MOTATTR_LOOP); 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; var_r29 = lbl_1_bss_DC4[var_r28]->data;
VECSubtract(&var_r29->unk_6C, &var_r31->unk_10, &sp18); VECSubtract(&var_r29->unk_6C, &var_r31->unk_10, &sp18);
var_f30 = VECMag(&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); omVibrate(var_r29->unk_00, 0xC, 4, 2);
var_r29->unk_07 |= 2; var_r29->unk_07 |= 2;
var_r29->unk_0D = 0; 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) { 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_7C = 180.0f + var_r29->unk_28;
var_r29->unk_14 = 0; var_r29->unk_14 = 0;
} else { }
else {
var_r29->unk_7C = var_r29->unk_28; var_r29->unk_7C = var_r29->unk_28;
var_r29->unk_14 = 1; 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); 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; s16 sp8;
f32 temp_f31; f32 temp_f31;
f32 temp_f30; f32 temp_f30;
@ -1883,13 +1856,13 @@ void fn_1_5D4C(M438UnkStruct2 *arg0) {
f32 temp_f28; f32 temp_f28;
f32 temp_f27; f32 temp_f27;
s32 var_r29; s32 var_r29;
M438UnkStruct* var_r31; M438UnkStruct *var_r31;
sp8 = 0; sp8 = 0;
switch (arg0->unk_60) { /* irregular */ switch (arg0->unk_60) { /* irregular */
case 0: case 0:
temp_f27 = 360.0f / arg0->unk_02; temp_f27 = 360.0f / arg0->unk_02;
var_r31 = &arg0->unk_3C[0]; var_r31 = &arg0->unk_3C[0];
for (var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r31++) { 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))))); 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--; arg0->unk_7C--;
temp_f31 = (48.0f - arg0->unk_7C) / 48.0f; temp_f31 = (48.0f - arg0->unk_7C) / 48.0f;
temp_f28 = arg0->unk_7C / 48.0f; temp_f28 = arg0->unk_7C / 48.0f;
var_r31 = arg0->unk_3C; var_r31 = arg0->unk_3C;
for (var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r31++) { 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; 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; s16 sp8;
M438UnkStruct *var_r31; M438UnkStruct *var_r31;
sp8 = 0; sp8 = 0;
switch (arg0->unk_60) { switch (arg0->unk_60) {
case 0: 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; Vec sp8;
M438UnkStruct* var_r31; M438UnkStruct *var_r31;
f32 var_f31; f32 var_f31;
f32 temp_f30; f32 temp_f30;
f32 var_f29; 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++) { for (var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r31++) {
switch (var_r31->unk_5C) { switch (var_r31->unk_5C) {
case 0: case 0:
var_f29 = atan2d(arg0->unk_80, arg0->unk_84) < 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);
? -atan2d(arg0->unk_80, arg0->unk_84)
: atan2d(arg0->unk_80, arg0->unk_84);
if (var_f29 > 90.0f) { if (var_f29 > 90.0f) {
var_f29 = 180.0f - var_f29; 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.x = sp8.x;
var_r31->unk_00.y = 0.0f; var_r31->unk_00.y = 0.0f;
var_r31->unk_00.z = sp8.z; 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) { for (var_f31 = 0.0f, sp8.y = 0.0f; var_f31 < (arg0->unk_8C - 40.0f); var_f31 += sp8.y) {
sp8.y += 0.8f; 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())); 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.x = (temp_f30 * (0.1f + ((0.9f * var_f29) / 90.0f)));
var_r31->unk_60.y = var_r31->unk_60.z = temp_f30; var_r31->unk_60.y = var_r31->unk_60.z = temp_f30;
} else { }
else {
var_r31->unk_33 = 0; var_r31->unk_33 = 0;
var_r31->unk_54 = 0; var_r31->unk_54 = 0;
var_r31->unk_55 = 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; Vec sp8;
M438UnkStruct* var_r31; M438UnkStruct *var_r31;
f32 temp_f31; f32 temp_f31;
f32 temp_f30; f32 temp_f30;
f32 temp_f29; f32 temp_f29;
@ -2056,7 +2030,7 @@ void fn_1_6A3C(M438UnkStruct2* arg0) {
var_r31 = arg0->unk_3C; var_r31 = arg0->unk_3C;
var_r28 = 0; var_r28 = 0;
for (var_r27 = 0; var_r27 < arg0->unk_02; var_r27++, var_r31++) { for (var_r27 = 0; var_r27 < arg0->unk_02; var_r27++, var_r31++) {
if ((arg0->unk_7C != 0) && (var_r31->unk_7A == 0)) { if ((arg0->unk_7C != 0) && (var_r31->unk_7A == 0)) {
var_r31->unk_5C = 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_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_78 = (s32)(24.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) + 1;
var_r31->unk_7A = 1; var_r31->unk_7A = 1;
} else { }
else {
temp_f30 = (180.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) - 90.0f; temp_f30 = (180.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) - 90.0f;
temp_f29 = 125.0f * ((1.0f / 65536.0f) * fn_1_7DB4()); temp_f29 = 125.0f * ((1.0f / 65536.0f) * fn_1_7DB4());
sp8.x = sind(temp_f30); 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.x = temp_f31;
var_r31->unk_18.y = temp_f31; var_r31->unk_18.y = temp_f31;
var_r31->unk_18.z = 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_33 = 0;
var_r31->unk_54 = 0; var_r31->unk_54 = 0;
var_r31->unk_55 = 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.x = temp_f31;
var_r31->unk_18.y = 1.5f * temp_f31; var_r31->unk_18.y = 1.5f * temp_f31;
var_r31->unk_18.z = temp_f31; var_r31->unk_18.z = temp_f31;
} else { }
else {
var_r29 = fn_1_10258(8, 1); var_r29 = fn_1_10258(8, 1);
fn_1_11018(var_r29, 0, 0x45000A); 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_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_12100(var_r29, 4);
fn_1_124CC(var_r29, 1); fn_1_124CC(var_r29, 1);
@ -2134,7 +2111,8 @@ void fn_1_6A3C(M438UnkStruct2* arg0) {
var_r31->unk_58->unk_24 = 0x11; var_r31->unk_58->unk_24 = 0x11;
if (var_r31->unk_7A != 0) { if (var_r31->unk_7A != 0) {
var_r31->unk_58->unk_28 = 0.5f; var_r31->unk_58->unk_28 = 0.5f;
} else { }
else {
var_r31->unk_58->unk_28 = 0.5f; var_r31->unk_58->unk_28 = 0.5f;
} }
var_r31->unk_58->unk_2C = 0.0f; 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_58->unk_24 & 8) != 0) {
if (var_r31->unk_7A != 0) { if (var_r31->unk_7A != 0) {
var_r31->unk_5C = 3; var_r31->unk_5C = 3;
} else { }
else {
var_r31->unk_5C = 0; 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; Vec sp8;
M438UnkStruct* var_r31; M438UnkStruct *var_r31;
f32 temp_f29; f32 temp_f29;
f32 temp_f30; f32 temp_f30;
f32 temp_f31; f32 temp_f31;
@ -2181,33 +2161,32 @@ void fn_1_7300(M438UnkStruct2* arg0) {
s32 var_r29; s32 var_r29;
var_r31 = arg0->unk_3C; var_r31 = arg0->unk_3C;
switch (arg0->unk_60) { switch (arg0->unk_60) {
case 0: case 0:
arg0->unk_24.x = arg0->unk_24.y = arg0->unk_24.z = temp_f31 = 0.01f; arg0->unk_24.x = arg0->unk_24.y = arg0->unk_24.z = temp_f31 = 0.01f;
arg0->unk_7C = Hu3DModelCreateFile(0x45000B); arg0->unk_7C = Hu3DModelCreateFile(0x45000B);
arg0->unk_7E = (s32)(30.0f * ((1.0f / 65536.0f) * fn_1_7DB4())) + 30; 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++) { for (var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r31++) {
var_r31->unk_38 |= 4; var_r31->unk_38 |= 4;
} }
arg0->unk_60++; arg0->unk_60++;
case 1: case 1:
arg0->unk_24.z += 0.008f; arg0->unk_24.z += 0.008f;
arg0->unk_24.x = arg0->unk_24.y = arg0->unk_24.z; arg0->unk_24.x = arg0->unk_24.y = arg0->unk_24.z;
Hu3DModelPosSetV(arg0->unk_7C, &arg0->unk_0C); Hu3DModelPosSetV(arg0->unk_7C, &arg0->unk_0C);
Hu3DModelScaleSetV(arg0->unk_7C, &arg0->unk_24); Hu3DModelScaleSetV(arg0->unk_7C, &arg0->unk_24);
if (--arg0->unk_7E == 0) { if (--arg0->unk_7E == 0) {
Hu3DModelKill(arg0->unk_7C); Hu3DModelKill(arg0->unk_7C);
arg0->unk_7C = 0; arg0->unk_7C = 0;
for (var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r31++) { for (var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r31++) {
var_r31->unk_5C = 1; var_r31->unk_5C = 1;
} }
arg0->unk_80 = arg0->unk_24.x; arg0->unk_80 = arg0->unk_24.x;
arg0->unk_24.x = arg0->unk_24.y = arg0->unk_24.z = 1.0f; arg0->unk_24.x = arg0->unk_24.y = arg0->unk_24.z = 1.0f;
arg0->unk_60++; arg0->unk_60++;
} }
@ -2215,7 +2194,7 @@ void fn_1_7300(M438UnkStruct2* arg0) {
} }
var_r28 = 0; var_r28 = 0;
var_r31 = arg0->unk_3C; var_r31 = arg0->unk_3C;
for (var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r31++) { for (var_r29 = 0; var_r29 < arg0->unk_02; var_r29++, var_r31++) {
switch (var_r31->unk_5C) { switch (var_r31->unk_5C) {
case 1: case 1:
@ -2450,32 +2429,36 @@ float fn_1_7EDC(float arg8, float arg9, float argA)
arg8 = arg9 + (var_f31 * argA); arg8 = arg9 + (var_f31 * argA);
if (arg8 > 180.0f) { if (arg8 > 180.0f) {
arg8 -= 360.0f; arg8 -= 360.0f;
} else if (arg8 <= -180.0f) { }
else if (arg8 <= -180.0f) {
arg8 += 360.0f; arg8 += 360.0f;
} }
return arg8; 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 sp38;
Mtx sp8; Mtx sp8;
if (0.0f != argA) { if (0.0f != argA) {
PSMTXRotRad(arg0, 0x5A, MTXDegToRad(argA)); MTXRotRad(arg0, 0x5A, MTXDegToRad(argA));
} else { }
PSMTXIdentity(arg0); else {
MTXIdentity(arg0);
} }
if (0.0f != arg8) { if (0.0f != arg8) {
PSMTXRotRad(sp38, 0x58, MTXDegToRad(arg8)); MTXRotRad(sp38, 0x58, MTXDegToRad(arg8));
PSMTXConcat(sp38, arg0, arg0); MTXConcat(sp38, arg0, arg0);
} }
if (0.0f != arg9) { if (0.0f != arg9) {
PSMTXRotRad(sp8, 0x59, MTXDegToRad(arg9)); MTXRotRad(sp8, 0x59, MTXDegToRad(arg9));
PSMTXConcat(sp8, arg0, arg0); MTXConcat(sp8, arg0, arg0);
} }
} }
void fn_1_8164(Mtx arg0, Vec* arg1) { void fn_1_8164(Mtx arg0, Vec *arg1)
{
f32 temp_f29; f32 temp_f29;
f32 var_f28; 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 temp_f29;
f32 var_f28; f32 var_f28;
@ -2511,7 +2495,8 @@ void fn_1_8500(Mtx arg0, Vec* arg1) {
arg1->x = atan2d(temp_f29, var_f28); 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 temp_f31;
f32 var_f30; f32 var_f30;
@ -2520,22 +2505,25 @@ f32 fn_1_8750(f32 arg8, f32 arg9, f32 argA, f32 argB) {
return var_f30; 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; s32 var_r31;
for (var_r31 = 0; var_r31 < 3; var_r31++) { for (var_r31 = 0; var_r31 < 3; var_r31++) {
*arg3++ = fn_1_8750(arg8, *arg0++, *arg1++, *arg2++); *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; f32 var_f31;
var_f31 = 2.0 * ((arg8 - 1.0) * arg9 + (1.0 - (2.0 * arg8)) * argA + (arg8 * argB)); var_f31 = 2.0 * ((arg8 - 1.0) * arg9 + (1.0 - (2.0 * arg8)) * argA + (arg8 * argB));
return var_f31; 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 spC[3];
f32 var_f29; f32 var_f29;
s32 var_r31; 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) void fn_1_9420(float arg8, float *arg0, float *arg1, float arg2[3][3], float arg3[3][3], s32 arg4)
{ {
float sp48[16]; 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_f30;
f32 var_f29; f32 var_f29;
var_f30 = (arg0->x * arg0->x) + (arg0->y * arg0->y) + (arg0->z * arg0->z); 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->x *= var_f29;
arg0->y *= var_f29; arg0->y *= var_f29;
arg0->z *= var_f29; arg0->z *= var_f29;
} else { }
else {
arg0->x = arg0->y = arg0->z = 0.0f; arg0->x = arg0->y = arg0->z = 0.0f;
} }
return var_f30; 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) { if (arg8 <= 0.0f) {
arg2->x = arg0.x; arg2->x = arg0.x;
arg2->y = arg0.y; arg2->y = arg0.y;
arg2->z = arg0.z; arg2->z = arg0.z;
arg8 = 0.0f; arg8 = 0.0f;
} else if (arg8 >= 1.0f) { }
else if (arg8 >= 1.0f) {
arg2->x = (arg0.x + arg1.x); arg2->x = (arg0.x + arg1.x);
arg2->y = (arg0.y + arg1.y); arg2->y = (arg0.y + arg1.y);
arg2->z = (arg0.z + arg1.z); arg2->z = (arg0.z + arg1.z);
arg8 = 1.0f; arg8 = 1.0f;
} else { }
else {
arg2->x = (arg0.x + (arg8 * arg1.x)); arg2->x = (arg0.x + (arg8 * arg1.x));
arg2->y = (arg0.y + (arg8 * arg1.y)); arg2->y = (arg0.y + (arg8 * arg1.y));
arg2->z = (arg0.z + (arg8 * arg1.z)); 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; 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 temp_f30;
f32 var_f31; f32 var_f31;
@ -2739,21 +2732,24 @@ f32 fn_1_98A4(Vec arg0, Vec arg1, Vec arg2) {
return var_f31; 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; Vec sp44;
f32 var_f31; f32 var_f31;
f32 var_f30; f32 var_f30;
f32 temp_f29; f32 temp_f29;
if (0.0f == ((arg2->z * arg2->z) + ((arg2->x * arg2->x) + (arg2->y * arg2->y)))) { 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); var_f31 = fn_1_98A4(*arg0, *arg1, *arg2);
fn_1_97CC(*arg1, *arg2, &sp44, var_f31); 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))); 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 sp44;
f32 sp40; f32 sp40;
f32 sp3C; f32 sp3C;
@ -2778,7 +2774,8 @@ f32 fn_1_9C9C(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3, Vec* arg4) {
f64 temp_f31_3; f64 temp_f31_3;
if (0.0f == ((arg2->z * arg2->z) + ((arg2->x * arg2->x) + (arg2->y * arg2->y)))) { 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); var_f27 = fn_1_98A4(*arg0, *arg1, *arg2);
fn_1_97CC(*arg1, *arg2, arg3, var_f27); 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); 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 temp_f31;
f32 var_f30; f32 var_f30;
f32 var_f29; 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_f27) {
if (var_f28 >= var_f26) { if (var_f28 >= var_f26) {
var_r30 = 1; var_r30 = 1;
} else { }
else {
var_r30 = 0x100; var_r30 = 0x100;
} }
var_r31 = var_r30; var_r31 = var_r30;
} else { }
else {
if (var_f27 >= var_f26) { if (var_f27 >= var_f26) {
var_r29 = 0x10; var_r29 = 0x10;
} else { }
else {
var_r29 = 0x100; var_r29 = 0x100;
} }
var_r31 = var_r29; var_r31 = var_r29;
@ -2827,30 +2828,38 @@ f32 fn_1_A14C(Vec* arg0, Vec* arg1, Vec* arg2, Vec* arg3) {
return var_f30; return var_f30;
} }
var_f29 = ((arg3->z * (arg0->x - arg2->x)) - (arg3->x * (arg0->z - arg2->z))) / temp_f31; 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; return var_f30;
} else { }
else {
var_f29 = ((arg3->x * (arg0->y - arg2->y)) - (arg3->y * (arg0->x - arg2->x))) / temp_f31; 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 != arg1->x) || (0.0f != arg1->y)) {
if (0.0f == (temp_f31 = (arg3->y * arg1->x) - (arg3->x * arg1->y))) { if (0.0f == (temp_f31 = (arg3->y * arg1->x) - (arg3->x * arg1->y))) {
return var_f30; return var_f30;
} }
var_f29 = ((arg3->x * (arg0->y - arg2->y)) - (arg3->y * (arg0->x - arg2->x))) / temp_f31; 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; return var_f30;
} else { }
else {
var_f29 = ((arg3->y * (arg0->z - arg2->z)) - (arg3->z * (arg0->y - arg2->y))) / temp_f31; 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))) { if (0.0f == (temp_f31 = (arg3->x * arg1->z) - (arg3->z * arg1->x))) {
return var_f30; return var_f30;
} }
var_f29 = ((arg3->z * (arg0->x - arg2->x)) - (arg3->x * (arg0->z - arg2->z))) / temp_f31; 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; return var_f30;
} else { }
else {
var_f29 = ((arg3->y * (arg0->z - arg2->z)) - (arg3->z * (arg0->y - arg2->y))) / temp_f31; var_f29 = ((arg3->y * (arg0->z - arg2->z)) - (arg3->z * (arg0->y - arg2->y))) / temp_f31;
} }
return var_f29; return var_f29;
@ -2871,11 +2880,31 @@ void fn_1_A688(omObjData *object) { }
Vec lbl_1_data_514 = { -850.0f, 0.0f, -850.0f }; Vec lbl_1_data_514 = { -850.0f, 0.0f, -850.0f };
s32 lbl_1_data_520[25] = { s32 lbl_1_data_520[25] = {
-0x62, -0x61, -0x60, -0x5F, -0x5E, -0x62,
-0x32, -0x31, -0x30, -0x2F, -0x2E, -0x61,
-0x2, -0x1, 0x0, 0x1, 0x2, -0x60,
0x2E, 0x2F, 0x30, 0x31, 0x32, -0x5F,
0x5E, 0x5F, 0x60, 0x61, 0x62, -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] = { u32 lbl_1_data_584[25] = {
@ -2906,18 +2935,20 @@ u32 lbl_1_data_584[25] = {
0x50, 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 sp14;
Vec sp8; Vec sp8;
M438StructBss298* var_r30; M438StructBss298 *var_r30;
f32 var_f31; f32 var_f31;
omObjData* temp_r27; omObjData *temp_r27;
s32 var_r28; s32 var_r28;
s32 var_r29; s32 var_r29;
u8* temp_r26; u8 *temp_r26;
u8* var_r25; u8 *var_r25;
M438MainWork *temp_r31; M438MainWork *temp_r31;
if ((u8)omPauseChk() == 0) { if ((u8)omPauseChk() == 0) {
@ -2929,9 +2960,9 @@ void fn_1_A68C(ModelData* model, Mtx matrix) {
var_f31 = 0.0f; var_f31 = 0.0f;
for (var_f31 = 0.0f; var_f31 < (35.416668f + var_r30->unk_14); var_f31 += 35.416668f) { 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); VECScale(&var_r30->unk_24, &sp8, var_f31);
PSVECAdd(&var_r30->unk_18, &sp8, &sp14); VECAdd(&var_r30->unk_18, &sp8, &sp14);
PSVECSubtract(&sp14, &lbl_1_data_514, &sp14); VECSubtract(&sp14, &lbl_1_data_514, &sp14);
// @todo make this look nicer // @todo make this look nicer
// var_r25 = getData(sp14, 0); // 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++) { 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_r27 = lbl_1_bss_DC4[var_r29];
temp_r31 = temp_r27->data; temp_r31 = temp_r27->data;
if ((temp_r31) && (temp_r31->unk_68 != 0)) { if ((temp_r31) && (temp_r31->unk_68 != 0)) {
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); 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 sp2C;
Vec sp20; Vec sp20;
Vec sp14; Vec sp14;
@ -2976,11 +3008,11 @@ u32 fn_1_A8FC(Vec* arg0, f32 arg8) {
var_r30 = 0; var_r30 = 0;
var_r28 = 0; var_r28 = 0;
temp_f28 = 100.0f * (4.5f - (2.0f * arg8)); 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 > 280.0f) {
if (var_f31 > 560.0f) { if (var_f31 > 560.0f) {
var_r28 = 1; var_r28 = 1;
PSVECNormalize(arg0, &sp14); VECNormalize(arg0, &sp14);
} }
var_f31 -= 280.0f; var_f31 -= 280.0f;
var_f31 *= 0.12987013f; var_f31 *= 0.12987013f;
@ -2999,17 +3031,17 @@ u32 fn_1_A8FC(Vec* arg0, f32 arg8) {
sp8.x = sind(temp_r31->unk_08); sp8.x = sind(temp_r31->unk_08);
sp8.y = 0.0f; sp8.y = 0.0f;
sp8.z = cosd(temp_r31->unk_08); 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); var_f30 = fn_1_B440(arg0, &sp2C, &sp20);
if (var_f30 > -0.2f && var_f30 < 1.0f) { if (var_f30 > -0.2f && var_f30 < 1.0f) {
PSVECScale(&sp20, &sp20, var_f30); VECScale(&sp20, &sp20, var_f30);
PSVECAdd(&sp2C, &sp20, &sp2C); VECAdd(&sp2C, &sp20, &sp2C);
PSVECSubtract(&sp2C, arg0, &sp20); VECSubtract(&sp2C, arg0, &sp20);
var_f31 = PSVECMag(&sp20); var_f31 = VECMag(&sp20);
if (var_f31 < temp_f28) { if (var_f31 < temp_f28) {
var_f29 = 0.0f; var_f29 = 0.0f;
if (var_r28 != 0) { if (var_r28 != 0) {
var_f29 = PSVECDotProduct(&sp14, &sp8); var_f29 = VECDotProduct(&sp14, &sp8);
var_f29 = 1.0 - fabs(var_f29); var_f29 = 1.0 - fabs(var_f29);
} }
var_f31 = (1.0f / temp_f28) * (temp_f28 - var_f31); var_f31 = (1.0f / temp_f28) * (temp_f28 - var_f31);
@ -3026,8 +3058,8 @@ u32 fn_1_A8FC(Vec* arg0, f32 arg8) {
} }
break; break;
default: default:
PSVECSubtract(arg0, &sp2C, &sp20); VECSubtract(arg0, &sp2C, &sp20);
var_f31 = PSVECMag(&sp20); var_f31 = VECMag(&sp20);
if (var_f31 < 600.0f) { if (var_f31 < 600.0f) {
var_f31 = 800.0f - var_f31; var_f31 = 800.0f - var_f31;
var_f31 = 20.0f + (0.1f * 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_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 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]; s32 sp58[9];
Vec sp4C; Vec sp4C;
Vec sp40; Vec sp40;
Vec sp34; Vec sp34;
Vec sp28; Vec sp28;
Vec sp1C; Vec sp1C;
u8* sp18; u8 *sp18;
u32 sp14; u32 sp14;
u32 sp10; u32 sp10;
f32 var_f31; f32 var_f31;
@ -3091,16 +3124,16 @@ s32 fn_1_AE18(u32 arg0, f32 arg8, Vec* arg1, Vec* arg2) {
s32 var_r30; s32 var_r30;
u32 var_r29; u32 var_r29;
s32 var_r28; s32 var_r28;
u16* temp_r27; u16 *temp_r27;
s32 var_r26; s32 var_r26;
M438MainWork *var_r25; M438MainWork *var_r25;
u8* temp_r24; u8 *temp_r24;
s32 var_r23; s32 var_r23;
u8* var_r22; u8 *var_r22;
u16* var_r21; u16 *var_r21;
u32 var_r19; u32 var_r19;
u32 var_r18; u32 var_r18;
u8* temp_r17; u8 *temp_r17;
memset(lbl_1_bss_C, 0, 0x288); memset(lbl_1_bss_C, 0, 0x288);
sp40 = *arg1; sp40 = *arg1;
@ -3113,9 +3146,9 @@ s32 fn_1_AE18(u32 arg0, f32 arg8, Vec* arg1, Vec* arg2) {
temp_f28 = var_r25->unk_3C; temp_f28 = var_r25->unk_3C;
var_r19 = 0x2710; var_r19 = 0x2710;
var_r18 = 0; var_r18 = 0;
for (var_r30 = 0; var_r30 < 9; var_r30++) { 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]; sp18 = temp_r17 + lbl_1_data_5E8[var_r30];
(void)temp_r17; (void)temp_r17;
var_r21 = &(&lbl_1_bss_C[lbl_1_data_708[var_r30]])[0xAB]; 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_r29 = 0;
var_r22 = sp18; var_r22 = sp18;
sp28 = sp34; sp28 = sp34;
for (var_r23 = 0; var_r23 < 3; var_r23++) { for (var_r23 = 0; var_r23 < 3; var_r23++) {
for (var_r28 = 0; var_r28 < 9; var_r28++) { for (var_r28 = 0; var_r28 < 9; var_r28++) {
temp_r24 = var_r22 + lbl_1_data_5E8[var_r28]; temp_r24 = var_r22 + lbl_1_data_5E8[var_r28];
PSVECAdd(&sp28, &lbl_1_data_60C[var_r28], &sp4C); 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))) { 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++; var_f31++;
temp_r27 = &var_r21[lbl_1_data_708[var_r28]]; temp_r27 = &var_r21[lbl_1_data_708[var_r28]];
if (*temp_r27 == 0) { 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++) { for (var_r26 = 0; var_r26 < 4; var_r26++) {
if (var_r26 != arg0) { if (var_r26 != arg0) {
var_r25 = lbl_1_bss_DC4[var_r26]->data; 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; sp1C.y = 0.0f;
var_f30 = PSVECMag(&sp1C); var_f30 = VECMag(&sp1C);
if (var_f30 < var_f29) { if (var_f30 < var_f29) {
var_f30 = var_f29 - var_f30; var_f30 = var_f29 - var_f30;
var_f30 *= (40.0f / var_f29); 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; *temp_r27 = ++var_r31;
} else { }
else {
var_r31 = *temp_r27; var_r31 = *temp_r27;
} }
var_r29 += var_r31; 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_r22 += lbl_1_data_678[var_r30];
var_r21 = &var_r21[lbl_1_data_72C[var_r30]]; var_r21 = &var_r21[lbl_1_data_72C[var_r30]];
var_f31 *= 2.0f; var_f31 *= 2.0f;
@ -3185,14 +3220,15 @@ s32 fn_1_AE18(u32 arg0, f32 arg8, Vec* arg1, Vec* arg2) {
return 0; return 0;
} }
f32 fn_1_B440(Vec* arg0, Vec* arg1, Vec* arg2) { f32 fn_1_B440(Vec *arg0, Vec *arg1, Vec *arg2)
{
Vec sp10; Vec sp10;
f32 temp_f30; f32 temp_f30;
f32 var_f31; f32 var_f31;
PSVECSubtract(arg1, arg0, &sp10); VECSubtract(arg1, arg0, &sp10);
var_f31 = PSVECDotProduct(&sp10, arg2); var_f31 = VECDotProduct(&sp10, arg2);
temp_f30 = -PSVECSquareMag(arg2); temp_f30 = -VECSquareMag(arg2);
if (temp_f30 != 0.0f) { if (temp_f30 != 0.0f) {
var_f31 /= temp_f30; var_f31 /= temp_f30;
} }

View file

@ -1,11 +1,12 @@
#include "REL/m438Dll.h" #include "REL/m438Dll.h"
#include "ext_math.h" #include "ext_math.h"
#include "string.h"
#include "game/hsfanim.h" #include "game/hsfanim.h"
#include "game/hsfmotion.h" #include "game/hsfmotion.h"
#include "game/sprite.h" #include "game/sprite.h"
#include "game/wipe.h" #include "game/wipe.h"
#include "string.h"
// STRUCT // STRUCT
typedef struct M438MapStruct { typedef struct M438MapStruct {
@ -32,8 +33,8 @@ typedef struct M438MapStruct2 {
Vec unk30; Vec unk30;
Vec unk3C; Vec unk3C;
union { union {
M438MainWork4* unk48; M438MainWork4 *unk48;
HsfObject* unk48o; HsfObject *unk48o;
}; };
} M438MapStruct2; } M438MapStruct2;
@ -45,56 +46,51 @@ typedef struct M438MapStruct3 {
} M438MapStruct3; } M438MapStruct3;
// BSS // BSS
omObjData* lbl_1_bss_108C[6]; omObjData *lbl_1_bss_108C[6];
HsfanimStruct01* lbl_1_bss_E34[0x96]; HsfanimStruct01 *lbl_1_bss_E34[0x96];
s32 lbl_1_bss_E30; s32 lbl_1_bss_E30;
s32 lbl_1_bss_E2C; s32 lbl_1_bss_E2C;
s32 lbl_1_bss_E28; s32 lbl_1_bss_E28;
// DATA // DATA
char* lbl_1_data_848[] = { 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_s1", "iwa_s2", "iwa_s3", "iwa_s4", "iwa_s5", "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_s6", "iwa_s7", "iwa_s8", "iwa_s9", "iwa_s26", "iwa_s27", "iwa_s28", "iwa_s29", "iwa_s30", "iwa_s31", "iwa_s32" };
"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 // PROTO
void fn_1_B54C(omObjData*); void fn_1_B54C(omObjData *);
void fn_1_BF20(omObjData*); void fn_1_BF20(omObjData *);
void fn_1_CAB0(f32); void fn_1_CAB0(f32);
void fn_1_C764(ModelData* model, ParticleData* particle, Mtx matrix); void fn_1_C764(ModelData *model, ParticleData *particle, Mtx matrix);
void fn_1_C8E8(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_D3FC(ModelData *model, ParticleData *particle, Mtx matrix);
void fn_1_D57C(Vec*, f32); void fn_1_D57C(Vec *, f32);
void fn_1_E034(Mtx, Vec*); void fn_1_E034(Mtx, Vec *);
void fn_1_B4D8(Process* arg0) { void fn_1_B4D8(Process *arg0)
omObjData* var_r31; {
omObjData *var_r31;
lbl_1_bss_E30 = 0; lbl_1_bss_E30 = 0;
var_r31 = lbl_1_bss_108C[0] = omAddObjEx(arg0, 0x20, 8, 0, -1, fn_1_B54C); var_r31 = lbl_1_bss_108C[0] = omAddObjEx(arg0, 0x20, 8, 0, -1, fn_1_B54C);
var_r31->work[0] = 0; 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 sp20;
Vec sp14; Vec sp14;
Vec sp8; Vec sp8;
s32 var_r30; s32 var_r30;
s32 var_r29; s32 var_r29;
HsfObject* var_r26; HsfObject *var_r26;
s32 var_r27; s32 var_r27;
M438MapStruct2* var_r28; M438MapStruct2 *var_r28;
HsfanimStruct01* var_r25; HsfanimStruct01 *var_r25;
M438MapStruct* var_r24; M438MapStruct *var_r24;
M438MapStruct3* temp_r23; M438MapStruct3 *temp_r23;
arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x108C, 0x10000000); arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, 0x108C, 0x10000000);
temp_r23 = arg0->data; temp_r23 = arg0->data;
@ -116,29 +112,29 @@ void fn_1_B54C(omObjData* arg0) {
var_r29 = Hu3DTexScrollCreate(arg0->model[1], "lafall"); var_r29 = Hu3DTexScrollCreate(arg0->model[1], "lafall");
Hu3DTexScrollPosMoveSet(var_r29, 0.0f, -(1.0f / 60.0f), 0.0f); Hu3DTexScrollPosMoveSet(var_r29, 0.0f, -(1.0f / 60.0f), 0.0f);
var_r29 = 0; var_r29 = 0;
var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x45000C), 0x32); var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x45000C), 0x32);
arg0->model[3] = var_r27; arg0->model[3] = var_r27;
Hu3DModelLayerSet(var_r27, 3); Hu3DModelLayerSet(var_r27, 3);
Hu3DParticleHookSet(var_r27, fn_1_C764); Hu3DParticleHookSet(var_r27, fn_1_C764);
for (var_r30 = 0; var_r30 < 0x32; var_r30++, var_r29++) { 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); var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x45000D), 0x32);
arg0->model[4] = var_r27; arg0->model[4] = var_r27;
Hu3DModelLayerSet(var_r27, 3); Hu3DModelLayerSet(var_r27, 3);
Hu3DParticleHookSet(var_r27, fn_1_C764); Hu3DParticleHookSet(var_r27, fn_1_C764);
for (var_r30 = 0; var_r30 < 0x32; var_r30++, var_r29++) { 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); var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x45000E), 0x32);
arg0->model[5] = var_r27; arg0->model[5] = var_r27;
Hu3DModelLayerSet(var_r27, 3); Hu3DModelLayerSet(var_r27, 3);
Hu3DParticleHookSet(var_r27, fn_1_C764); Hu3DParticleHookSet(var_r27, fn_1_C764);
for (var_r30 = 0; var_r30 < 0x32; var_r30++, var_r29++) { 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_r30 = 0; var_r30 < 0x95; var_r30++) {
for (var_r29 = 1; var_r29 < 0x96; var_r29++) { 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]->unk40.a = 0;
lbl_1_bss_E34[var_r30]->unk00 = 0; lbl_1_bss_E34[var_r30]->unk00 = 0;
} }
var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x45000F), 0x32); var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x45000F), 0x32);
arg0->model[6] = var_r27; arg0->model[6] = var_r27;
Hu3DModelLayerSet(var_r27, 3); Hu3DModelLayerSet(var_r27, 3);
Hu3DParticleHookSet(var_r27, fn_1_C8E8); 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++) { for (var_r30 = 0; var_r30 < 0x32; var_r30++, var_r25++) {
var_r25->unk2C = 0.0f; var_r25->unk2C = 0.0f;
var_r25->unk40.a = 0; var_r25->unk40.a = 0;
var_r25->unk00 = 0; var_r25->unk00 = 0;
} }
var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x450010), 0x1F4); var_r27 = Hu3DParticleCreate(HuSprAnimReadFile(0x450010), 0x1F4);
arg0->model[7] = var_r27; arg0->model[7] = var_r27;
Hu3DModelLayerSet(var_r27, 2); Hu3DModelLayerSet(var_r27, 2);
Hu3DParticleBlendModeSet(var_r27, 1); Hu3DParticleBlendModeSet(var_r27, 1);
Hu3DParticleHookSet(var_r27, fn_1_D3FC); 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++) { for (var_r30 = 0; var_r30 < 0x1F4; var_r30++, var_r25++) {
var_r25->unk2C = 0.0f; var_r25->unk2C = 0.0f;
var_r25->unk40.a = 0; var_r25->unk40.a = 0;
@ -191,27 +187,27 @@ void fn_1_B54C(omObjData* arg0) {
sp8.x = sp8.y = sp8.z = 100000.0f; sp8.x = sp8.y = sp8.z = 100000.0f;
for (var_r29 = 0; var_r29 < var_r26->data.vertex->count; var_r29++) { 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) { if (((Vec *)var_r26->data.vertex->data)[var_r29].x > sp14.x) {
sp14.x = ((Vec*)var_r26->data.vertex->data)[var_r29].x; sp14.x = ((Vec *)var_r26->data.vertex->data)[var_r29].x;
} }
if (((Vec*)var_r26->data.vertex->data)[var_r29].y > sp14.y) { if (((Vec *)var_r26->data.vertex->data)[var_r29].y > sp14.y) {
sp14.y = ((Vec*)var_r26->data.vertex->data)[var_r29].y; sp14.y = ((Vec *)var_r26->data.vertex->data)[var_r29].y;
} }
if (((Vec*)var_r26->data.vertex->data)[var_r29].z > sp14.z) { if (((Vec *)var_r26->data.vertex->data)[var_r29].z > sp14.z) {
sp14.z = ((Vec*)var_r26->data.vertex->data)[var_r29].z; sp14.z = ((Vec *)var_r26->data.vertex->data)[var_r29].z;
} }
if (((Vec*)var_r26->data.vertex->data)[var_r29].x < sp8.x) { if (((Vec *)var_r26->data.vertex->data)[var_r29].x < sp8.x) {
sp8.x = ((Vec*)var_r26->data.vertex->data)[var_r29].x; sp8.x = ((Vec *)var_r26->data.vertex->data)[var_r29].x;
} }
if (((Vec*)var_r26->data.vertex->data)[var_r29].y < sp8.y) { if (((Vec *)var_r26->data.vertex->data)[var_r29].y < sp8.y) {
sp8.y = ((Vec*)var_r26->data.vertex->data)[var_r29].y; sp8.y = ((Vec *)var_r26->data.vertex->data)[var_r29].y;
} }
if (((Vec*)var_r26->data.vertex->data)[var_r29].z < sp8.z) { if (((Vec *)var_r26->data.vertex->data)[var_r29].z < sp8.z) {
sp8.z = ((Vec*)var_r26->data.vertex->data)[var_r29].z; sp8.z = ((Vec *)var_r26->data.vertex->data)[var_r29].z;
} }
} }
PSVECAdd(&sp14, &sp8, &sp20); VECAdd(&sp14, &sp8, &sp20);
PSVECScale(&sp20, &sp20, 0.5f); VECScale(&sp20, &sp20, 0.5f);
var_r28->unk24 = sp20; var_r28->unk24 = sp20;
var_r28->unk30 = var_r28->unk24; var_r28->unk30 = var_r28->unk24;
var_r28->unk8 = (360.0 + atan2d(sp20.x, sp20.z)); 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 }, { -867.0f, -80.0f, -485.0f },
}, },
{ {
{ -917.0f, -80.0f, -857.0f }, { -917.0f, -80.0f, -857.0f },
{ -817.0f, -80.0f, -1030.0f }, { -817.0f, -80.0f, -1030.0f },
}, },
{ {
@ -249,12 +245,13 @@ Vec lbl_1_data_8D8[4][2] = {
{ 867.0f, -80.0f, -485.0f }, { 867.0f, -80.0f, -485.0f },
}, },
{ {
{ 917.0f, -80.0f, -857.0f }, { 917.0f, -80.0f, -857.0f },
{ 817.0f, -80.0f, -1030.0f }, { 817.0f, -80.0f, -1030.0f },
}, },
}; };
void fn_1_BF20(omObjData* arg0) { void fn_1_BF20(omObjData *arg0)
{
Mtx sp5C; Mtx sp5C;
Mtx sp2C; Mtx sp2C;
Vec sp20; Vec sp20;
@ -264,18 +261,18 @@ void fn_1_BF20(omObjData* arg0) {
f32 temp_f30; f32 temp_f30;
f32 temp_f31; f32 temp_f31;
s32 var_r29; s32 var_r29;
M438MapStruct2* var_r31; M438MapStruct2 *var_r31;
M438MapStruct* var_r30; M438MapStruct *var_r30;
M438MapStruct3* temp_r28; M438MapStruct3 *temp_r28;
temp_r28 = arg0->data; temp_r28 = arg0->data;
temp_r28->unk0++; temp_r28->unk0++;
var_r31 = &temp_r28->unk4; var_r31 = &temp_r28->unk4;
for (var_r29 = 0; var_r29 < 0x20; var_r29++, var_r31++) { for (var_r29 = 0; var_r29 < 0x20; var_r29++, var_r31++) {
if ((var_r31->unk0 == 0) && (var_r31->unk4 != 0)) { if ((var_r31->unk0 == 0) && (var_r31->unk4 != 0)) {
temp_f29 = var_r31->unk30.y; 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.x *= 0.92f;
var_r31->unk3C.z *= 0.92f; var_r31->unk3C.z *= 0.92f;
var_r31->unk3C.y += -0.27222225f; 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.x = sind(90.0f + var_r31->unk8);
sp14.z = cosd(90.0f + var_r31->unk8); sp14.z = cosd(90.0f + var_r31->unk8);
sp14.y = 0.0f; 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.x = sp14.z = 0.0f;
sp14.y = 1.0f; sp14.y = 1.0f;
PSMTXRotAxisRad(sp2C, &sp14, MTXDegToRad(var_r31->unk14)); MTXRotAxisRad(sp2C, &sp14, MTXDegToRad(var_r31->unk14));
PSMTXConcat(sp2C, sp5C, sp5C); MTXConcat(sp2C, sp5C, sp5C);
sp14.x = sind(var_r31->unk8); sp14.x = sind(var_r31->unk8);
sp14.z = cosd(var_r31->unk8); sp14.z = cosd(var_r31->unk8);
sp14.y = 0.0f; sp14.y = 0.0f;
PSMTXRotAxisRad(sp2C, &sp14, MTXDegToRad(var_r31->unk1C)); MTXRotAxisRad(sp2C, &sp14, MTXDegToRad(var_r31->unk1C));
PSMTXConcat(sp2C, sp5C, sp5C); MTXConcat(sp2C, sp5C, sp5C);
fn_1_E034(sp5C, &sp20); fn_1_E034(sp5C, &sp20);
var_r31->unk48->unk_28.x = sp20.x; var_r31->unk48->unk_28.x = sp20.x;
var_r31->unk48->unk_28.y = sp20.y; var_r31->unk48->unk_28.y = sp20.y;
var_r31->unk48->unk_28.z = sp20.z; var_r31->unk48->unk_28.z = sp20.z;
PSMTXInverse(sp5C, sp5C); MTXInverse(sp5C, sp5C);
PSMTXMultVec(sp5C, &var_r31->unk24, &sp8); MTXMultVec(sp5C, &var_r31->unk24, &sp8);
var_r31->unk48->unk_1C.x = (var_r31->unk30.x - sp8.x); 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.y = (var_r31->unk30.y - sp8.y);
var_r31->unk48->unk_1C.z = (var_r31->unk30.z - sp8.z); 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) { if ((temp_r28->unk0 & 1) == 0) {
var_r30 = &temp_r28->unk984; var_r30 = &temp_r28->unk984;
for (var_r29 = 0; var_r29 < 0x32; var_r29++, var_r30++) { 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->unk0 = 1;
var_r30->unk18 = frandmod(0x168); var_r30->unk18 = frandmod(0x168);
if (frandmod(0x64) < 0x14) { if (frandmod(0x64) < 0x14) {
var_r30->unkC.x = (0.8f * (frandmod(0x7D0) - 0x3E8)); var_r30->unkC.x = (0.8f * (frandmod(0x7D0) - 0x3E8));
var_r30->unkC.y = -80.0f; var_r30->unkC.y = -80.0f;
var_r30->unkC.z = ((-1.2f * frandmod(0x3E8)) - 1000.0f); var_r30->unkC.z = ((-1.2f * frandmod(0x3E8)) - 1000.0f);
} else { }
else {
temp_f31 = frandmod(0x168); temp_f31 = frandmod(0x168);
temp_f30 = 800.0f + (0.25f * frandmod(0x3E8)); temp_f30 = 800.0f + (0.25f * frandmod(0x3E8));
var_r30->unkC.x = (temp_f30 * sind(temp_f31)); 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); Hu3DModelScaleSet(var_r30->unk4, var_r30->unk1C, var_r30->unk1C, var_r30->unk1C);
} }
} }
for (var_r29 = 0; var_r29 < 4; var_r29++) { 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); temp_f31 = 0.001f * frandmod(0x3E8);
PSVECScale(&sp14, &sp14, temp_f31); VECScale(&sp14, &sp14, temp_f31);
PSVECAdd(&lbl_1_data_8D8[var_r29][0], &sp14, &sp8); VECAdd(&lbl_1_data_8D8[var_r29][0], &sp14, &sp8);
PSVECScale(&sp8, &sp8, 0.98f); VECScale(&sp8, &sp8, 0.98f);
fn_1_D57C(&sp8, 0.03f); fn_1_D57C(&sp8, 0.03f);
} }
if ((lbl_1_bss_E30 == 0) && (WipeStatGet() == 0)) { 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) { void fn_1_C764(ModelData *model, ParticleData *particle, Mtx matrix)
HsfanimStruct01* var_r31; {
HsfanimStruct01 *var_r31;
s32 var_r29; s32 var_r29;
u16 temp_r0; u16 temp_r0;
var_r31 = particle->unk_48; var_r31 = particle->unk_48;
for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) {
if (var_r31->unk00_s16 != 0) { 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.x *= 0.95f;
var_r31->unk08.z *= 0.95f; var_r31->unk08.z *= 0.95f;
var_r31->unk08.y += -0.27222225f; 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); DCStoreRange(particle->unk_48, particle->unk_30 * 0x44);
} }
void fn_1_C8E8(ModelData* model, ParticleData* particle, Mtx matrix) { void fn_1_C8E8(ModelData *model, ParticleData *particle, Mtx matrix)
HsfanimStruct01* var_r31; {
HsfanimStruct01 *var_r31;
s32 var_r29; s32 var_r29;
u16 temp_r0; u16 temp_r0;
var_r31 = particle->unk_48; var_r31 = particle->unk_48;
for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) {
if (var_r31->unk00_s16 != 0) { 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.x *= 0.92f;
var_r31->unk08.z *= 0.92f; var_r31->unk08.z *= 0.92f;
var_r31->unk2C += 5.0f; var_r31->unk2C += 5.0f;
var_r31->unk40.a *= 0.99f; var_r31->unk40.a *= 0.99f;
if (var_r31->unk00_s16 < 24.0f) { if (var_r31->unk00_s16 < 24.0f) {
var_r31->unk40.a = 0.9f * var_r31->unk40.a; 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); DCStoreRange(particle->unk_48, particle->unk_30 * 0x44);
} }
void fn_1_CAB0(f32 arg8) { void fn_1_CAB0(f32 arg8)
{
Vec sp8; Vec sp8;
f32 temp_f31; f32 temp_f31;
f32 temp_f30; f32 temp_f30;
f32 temp_f28; f32 temp_f28;
f32 temp_f27; f32 temp_f27;
HsfanimStruct01* var_r31; HsfanimStruct01 *var_r31;
s32 var_r30; s32 var_r30;
u32 var_r29; u32 var_r29;
temp_f28 = 20.0f; temp_f28 = 20.0f;
temp_f27 = 7.0f; temp_f27 = 7.0f;
var_r29 = 0x19; var_r29 = 0x19;
for (var_r30 = 0; var_r30 < 0x96; var_r30++) { for (var_r30 = 0; var_r30 < 0x96; var_r30++) {
var_r31 = lbl_1_bss_E34[var_r30]; var_r31 = lbl_1_bss_E34[var_r30];
if (var_r31->unk00_s16 == 0) { if (var_r31->unk00_s16 == 0) {
@ -445,12 +447,12 @@ void fn_1_CAB0(f32 arg8) {
sp8.x = sind(temp_f31); sp8.x = sind(temp_f31);
sp8.y = 0.0f; sp8.y = 0.0f;
sp8.z = cosd(temp_f31); sp8.z = cosd(temp_f31);
temp_f31 = arg8 + (((0.002f * frandmod(0x3E8)) - 1.0f)) * temp_f27; 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.x = 7.5 * sind(temp_f31) * 100.0;
var_r31->unk34.y = 0.2f * frandmod(0x3E8); var_r31->unk34.y = 0.2f * frandmod(0x3E8);
var_r31->unk34.z = 7.5 * cosd(temp_f31) * 100.0; var_r31->unk34.z = 7.5 * cosd(temp_f31) * 100.0;
temp_f30 = 1.6666667f * (4.0f + (0.014f * frandmod(0x3E8))); temp_f30 = 1.6666667f * (4.0f + (0.014f * frandmod(0x3E8)));
var_r31->unk08.x = sp8.x * temp_f30; var_r31->unk08.x = sp8.x * temp_f30;
var_r31->unk08.z = sp8.z * 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_r31->unk40.r = var_r31->unk40.g = var_r31->unk40.b = 0xFF;
var_r29--; 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; var_r29 = 0xF;
for (var_r30 = 0; var_r30 < 0x32; var_r30++, var_r31++) { for (var_r30 = 0; var_r30 < 0x32; var_r30++, var_r31++) {
if (var_r31->unk00_s16 == 0) { if (var_r31->unk00_s16 == 0) {
@ -475,12 +478,12 @@ void fn_1_CAB0(f32 arg8) {
sp8.x = sind(temp_f31); sp8.x = sind(temp_f31);
sp8.y = 0.0f; sp8.y = 0.0f;
sp8.z = cosd(temp_f31); sp8.z = cosd(temp_f31);
temp_f31 = arg8 + (((0.002f * frandmod(0x3E8)) - 1.0f)) * temp_f27; 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.x = 7.5 * sind(temp_f31) * 100.0;
var_r31->unk34.y = 0.2f * frandmod(0x3E8); var_r31->unk34.y = 0.2f * frandmod(0x3E8);
var_r31->unk34.z = 7.5 * cosd(temp_f31) * 100.0; var_r31->unk34.z = 7.5 * cosd(temp_f31) * 100.0;
temp_f30 = 1.6666667f * -(0.01f * frandmod(0x3E8)); temp_f30 = 1.6666667f * -(0.01f * frandmod(0x3E8));
var_r31->unk08.x = sp8.x * temp_f30; var_r31->unk08.x = sp8.x * temp_f30;
var_r31->unk08.z = sp8.z * 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_r31->unk40.b = (60.0f * temp_f31) + 54.0f;
var_r29--; var_r29--;
if (var_r29 < 1) break; if (var_r29 < 1)
break;
} }
} }
} }
void fn_1_D3FC(ModelData* model, ParticleData* particle, Mtx matrix) { void fn_1_D3FC(ModelData *model, ParticleData *particle, Mtx matrix)
HsfanimStruct01* var_r31; {
HsfanimStruct01 *var_r31;
s32 var_r29; s32 var_r29;
u16 temp_r0; u16 temp_r0;
@ -509,7 +514,7 @@ void fn_1_D3FC(ModelData* model, ParticleData* particle, Mtx matrix) {
var_r31 = particle->unk_48; var_r31 = particle->unk_48;
for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) { for (var_r29 = 0; var_r29 < particle->unk_30; var_r29++, var_r31++) {
if (var_r31->unk00_s16 != 0) { 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; var_r31->unk08.y += -0.27222225f;
if (var_r31->unk00_s16 < 12.0f) { if (var_r31->unk00_s16 < 12.0f) {
var_r31->unk40.a = (0.8f * var_r31->unk40.a); 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); 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; Vec sp8;
f32 temp_f31; f32 temp_f31;
f32 temp_f29; f32 temp_f29;
HsfanimStruct01* var_r31; HsfanimStruct01 *var_r31;
s32 var_r30; s32 var_r30;
u32 var_r29; 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)); var_r29 = (u32)(3.0f + (15.0f * arg1));
for (var_r30 = 0; var_r30 < 0x1F4; var_r30++, var_r31++) { for (var_r30 = 0; var_r30 < 0x1F4; var_r30++, var_r31++) {
if (var_r31->unk00_s16 == 0) { if (var_r31->unk00_s16 == 0) {
var_r31->unk00_s16 = 60.0f * (0.3f + (0.0003f * frandmod(0x3E8))); 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); var_r31->unk40.a = (frandmod(0x46) + 0x64);
temp_f31 = 0.001f * frandmod(0x3E8); temp_f31 = 0.001f * frandmod(0x3E8);
var_r31->unk40.r = 177.0f + (78.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.g = 60.0f + (129.0f * temp_f31);
var_r31->unk40.b = 30.0f + (122.0f * temp_f31); var_r31->unk40.b = 30.0f + (122.0f * temp_f31);
var_r29--; var_r29--;
if (var_r29 < 1) break; if (var_r29 < 1)
break;
} }
} }
} }
s32 fn_1_DA64(f32 arg8) { s32 fn_1_DA64(f32 arg8)
M438MapStruct3* var_r28; {
M438MapStruct3 *var_r28;
s32 var_r29; s32 var_r29;
s32 var_r30; s32 var_r30;
M438MapStruct2* var_r31; M438MapStruct2 *var_r31;
float var_f31; float var_f31;
float var_f29; float var_f29;
var_r28 = lbl_1_bss_108C[0]->data; var_r28 = lbl_1_bss_108C[0]->data;
var_r29 = 0; var_r29 = 0;
var_r31 = &var_r28->unk4; var_r31 = &var_r28->unk4;
for (var_r30 = 0; var_r30 < 0x20; var_r30++, var_r31++) { for (var_r30 = 0; var_r30 < 0x20; var_r30++, var_r31++) {
var_f31 = fn_1_E5A4(var_r31->unk8, arg8); var_f31 = fn_1_E5A4(var_r31->unk8, arg8);
if ((fabs(var_f31) < 12.0) && (var_r31->unk0 != 0)) { if ((fabs(var_f31) < 12.0) && (var_r31->unk0 != 0)) {
@ -608,17 +616,18 @@ s32 fn_1_DA64(f32 arg8) {
return var_r29; return var_r29;
} }
s32 fn_1_DEA0(f32 arg8) { s32 fn_1_DEA0(f32 arg8)
M438MapStruct3* var_r28; {
M438MapStruct3 *var_r28;
s32 var_r29; s32 var_r29;
s32 var_r30; s32 var_r30;
M438MapStruct2* var_r31; M438MapStruct2 *var_r31;
f32 var_f31; f32 var_f31;
var_r28 = lbl_1_bss_108C[0]->data; var_r28 = lbl_1_bss_108C[0]->data;
var_r29 = 0; var_r29 = 0;
var_r31 = &var_r28->unk4; var_r31 = &var_r28->unk4;
for (var_r30 = 0; var_r30 < 0x20; var_r30++, var_r31++) { for (var_r30 = 0; var_r30 < 0x20; var_r30++, var_r31++) {
var_f31 = fn_1_E5A4(var_r31->unk8, arg8); var_f31 = fn_1_E5A4(var_r31->unk8, arg8);
if ((fabs(var_f31) < 8.0) && (var_r31->unk0 != 0)) { if ((fabs(var_f31) < 8.0) && (var_r31->unk0 != 0)) {
@ -629,7 +638,8 @@ s32 fn_1_DEA0(f32 arg8) {
return var_r29; return var_r29;
} }
f32 fn_1_DF70(f32 arg8, f32 arg9) { f32 fn_1_DF70(f32 arg8, f32 arg9)
{
f32 temp_f30; f32 temp_f30;
f32 var_f31; f32 var_f31;
@ -637,13 +647,15 @@ f32 fn_1_DF70(f32 arg8, f32 arg9) {
var_f31 = 180.0 * (atan2f(arg9, arg8) / M_PI); var_f31 = 180.0 * (atan2f(arg9, arg8) / M_PI);
if (var_f31 < 0.0f) { if (var_f31 < 0.0f) {
var_f31 += temp_f30; var_f31 += temp_f30;
} else if (var_f31 >= temp_f30) { }
else if (var_f31 >= temp_f30) {
var_f31 -= temp_f30; var_f31 -= temp_f30;
} }
return var_f31; return var_f31;
} }
void fn_1_E034(Mtx arg0, Vec* arg1) { void fn_1_E034(Mtx arg0, Vec *arg1)
{
f32 var_f26; f32 var_f26;
f32 temp_f25; f32 temp_f25;
@ -659,7 +671,8 @@ void fn_1_E034(Mtx arg0, Vec* arg1) {
arg1->y = fn_1_DF70(var_f26, temp_f25); 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; f32 var_f31;
var_f31 = fmodf((arg9 - arg8), 360.0); var_f31 = fmodf((arg9 - arg8), 360.0);
@ -676,7 +689,8 @@ f32 fn_1_E488(f32 arg8, f32 arg9, f32 argA) {
return var_f31; return var_f31;
} }
f32 fn_1_E5A4(f32 arg8, f32 arg9) { f32 fn_1_E5A4(f32 arg8, f32 arg9)
{
f32 var_f31; f32 var_f31;
var_f31 = fmodf((arg9 - arg8), 360.0); 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; 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); 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); 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); 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 { else {
var_r29 = var_r31->unk18[var_r28]; 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].x = sp8.x;
arg0->unkC[var_r29].y = sp8.y; arg0->unkC[var_r29].y = sp8.y;
arg0->unkC[var_r29].z = sp8.z; arg0->unkC[var_r29].z = sp8.z;
} }
if ((arg0->unk2 & 2) != 0) { if ((arg0->unk2 & 2) != 0) {
var_r29 = var_r31->unk1E; 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].x = sp8.x;
arg0->unkC[var_r29].y = sp8.y; arg0->unkC[var_r29].y = sp8.y;
arg0->unkC[var_r29].z = sp8.z; 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_r22 = NULL;
} }
var_r25 = &arg1->data.base; 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); 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); 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_r27 = arg2->unk24[var_r30].unk18[var_r28];
var_r23 = arg2->unk24[var_r30].unk0[var_r28].unk0; 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; arg2->unkC[var_r27] = sp38;
sp44[var_r28] = arg2->unkC[var_r27]; sp44[var_r28] = arg2->unkC[var_r27];
arg2->unk14[var_r27] = arg2->unk18[var_r23]; arg2->unk14[var_r27] = arg2->unk18[var_r23];
@ -1860,7 +1860,7 @@ void fn_1_806C(ModelData *arg0, Mtx arg1)
temp_r27(temp_r31); temp_r27(temp_r31);
} }
GXLoadPosMtxImm(arg1, 0); GXLoadPosMtxImm(arg1, 0);
PSMTXInvXpose(arg1, sp14); MTXInvXpose(arg1, sp14);
GXLoadNrmMtxImm(sp14, 0); GXLoadNrmMtxImm(sp14, 0);
fn_1_8AC4(arg1); fn_1_8AC4(arg1);
sp10.r = (temp_r31->unk28->unkB[0] * arg0->unk_58.x); 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) { if (var_f31 < 0.1) {
var_f31 = 0.1f; var_f31 = 0.1f;
} }
PSMTXCopy(lbl_1_bss_30, sp10); MTXCopy(lbl_1_bss_30, sp10);
mtxScaleCat(sp10, var_f31, var_f31, var_f31); mtxScaleCat(sp10, var_f31, var_f31, var_f31);
GXLoadTexMtxImm(sp10, 0x24, GX_MTX2x4); GXLoadTexMtxImm(sp10, 0x24, GX_MTX2x4);
var_r31++; var_r31++;
@ -2050,31 +2050,31 @@ void fn_1_8AC4(Mtx arg0)
var_r29 = &Hu3DGlobalLight[0]; var_r29 = &Hu3DGlobalLight[0];
sp34 = var_r29->unk_28; sp34 = var_r29->unk_28;
if ((var_r29->unk_00 & 0x8000) != 0) { if ((var_r29->unk_00 & 0x8000) != 0) {
PSMTXMultVecSR(Hu3DCameraMtx, &sp34, &sp34); MTXMultVecSR(Hu3DCameraMtx, &sp34, &sp34);
} }
var_f30 = VECDotProduct(&sp34, &sp10); var_f30 = VECDotProduct(&sp34, &sp10);
var_f30 *= 10000.0f; var_f30 *= 10000.0f;
OSf32tos16(&var_f30, &temp_r31); OSf32tos16(&var_f30, &temp_r31);
if (temp_r31 == -0x2710) { 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; return;
} }
C_VECHalfAngle(&sp34, &sp10, &sp28); C_VECHalfAngle(&sp34, &sp10, &sp28);
sp28.x = -sp28.x; sp28.x = -sp28.x;
sp28.y = -sp28.y; sp28.y = -sp28.y;
sp28.z = -sp28.z; sp28.z = -sp28.z;
PSMTXInvXpose(arg0, sp70); MTXInvXpose(arg0, sp70);
if (temp_r31 == 0x2710) { if (temp_r31 == 0x2710) {
PSMTXIdentity(sp40); MTXIdentity(sp40);
} }
else { else {
VECCrossProduct(&sp28, &sp10, &sp1C); VECCrossProduct(&sp28, &sp10, &sp1C);
var_f29 = acosf(VECDotProduct(&sp10, &sp28)); var_f29 = acosf(VECDotProduct(&sp10, &sp28));
PSMTXRotAxisRad(sp40, &sp1C, var_f29); MTXRotAxisRad(sp40, &sp1C, var_f29);
} }
PSMTXConcat(sp40, sp70, spA0); MTXConcat(sp40, sp70, spA0);
PSMTXTrans(sp40, 0.5f, 0.5f, 0.0f); MTXTrans(sp40, 0.5f, 0.5f, 0.0f);
PSMTXConcat(sp40, spA0, lbl_1_bss_30); MTXConcat(sp40, spA0, lbl_1_bss_30);
} }
void fn_1_8D1C(void) void fn_1_8D1C(void)
@ -2097,7 +2097,7 @@ void fn_1_8D1C(void)
if (var_r30 == 5) { if (var_r30 == 5) {
C_MTXOrtho(sp60, 0.0f, 480.0f, 0.0f, 640.0f, 0.0f, 10.0f); C_MTXOrtho(sp60, 0.0f, 480.0f, 0.0f, 640.0f, 0.0f, 10.0f);
GXSetProjection(sp60, GX_ORTHOGRAPHIC); GXSetProjection(sp60, GX_ORTHOGRAPHIC);
PSMTXIdentity(sp30); MTXIdentity(sp30);
GXLoadPosMtxImm(sp30, 0); GXLoadPosMtxImm(sp30, 0);
GXClearVtxDesc(); GXClearVtxDesc();
GXSetVtxDesc(GX_VA_POS, GX_DIRECT); GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
@ -2491,9 +2491,9 @@ void fn_1_9C04(ModelData *arg0, Mtx arg1)
} }
else { else {
fn_1_A328(&temp_r30->unk2C, &sp38, &var_r29->unk48, 4); fn_1_A328(&temp_r30->unk2C, &sp38, &var_r29->unk48, 4);
PSMTXRotRad(spC8, 0x5A, 0.017453292f * var_r29->unk44); MTXRotRad(spC8, 0x5A, 0.017453292f * var_r29->unk44);
PSMTXConcat(sp128, spC8, sp98); MTXConcat(sp128, spC8, sp98);
PSMTXMultVecArray(sp98, &sp38, &sp8, 4); MTXMultVecArray(sp98, &sp38, &sp8, 4);
VECAdd(&sp8, &var_r29->unk54, var_r31++); VECAdd(&sp8, &var_r29->unk54, var_r31++);
VECAdd(&sp14, &var_r29->unk54, var_r31++); VECAdd(&sp14, &var_r29->unk54, var_r31++);
VECAdd(&sp20, &var_r29->unk54, var_r31++); VECAdd(&sp20, &var_r29->unk54, var_r31++);

View file

@ -10,12 +10,10 @@
#include "string.h" #include "string.h"
#include "version.h" #include "version.h"
#ifdef __MWERKS__ #ifdef __MWERKS__
#include "game/audio.h" #include "game/audio.h"
#endif #endif
// bss // bss
omObjData *lbl_1_bss_C0[4]; omObjData *lbl_1_bss_C0[4];
s16 lbl_1_bss_B8[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->unk24.z = (1050.0 * sind(var_f31));
} }
arg1->unk30.y = 0.0f; 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++; arg1->unk60++;
if (lbl_1_data_1D8 == 0) { if (lbl_1_data_1D8 == 0) {
fn_1_18E0(); 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.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->unk18.z = lbl_1_bss_78.z + (var_f31 * (arg1->unk24.z - lbl_1_bss_78.x));
arg1->unk30.x = 180.0f * var_f31; 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; break;
case 3: case 3:
fn_1_F4D4(arg1, 15, 8); 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]; var_r30 = &Hu3DData[arg0];
Hu3DModelObjMtxGet(arg0, arg1, spC); Hu3DModelObjMtxGet(arg0, arg1, spC);
PSMTXConcat(var_r30->unk_F0, spC, spC); MTXConcat(var_r30->unk_F0, spC, spC);
if (NULL != arg3) { if (NULL != arg3) {
PSMTXCopy(spC, arg3); MTXCopy(spC, arg3);
} }
arg2->x = spC[0][3]; arg2->x = spC[0][3];
arg2->y = spC[1][3]; arg2->y = spC[1][3];

View file

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

View file

@ -495,15 +495,15 @@ void fn_1_1D8C(omObjData *object)
lbl_1_bss_4 = HuAudSStreamPlay(0xB); lbl_1_bss_4 = HuAudSStreamPlay(0xB);
} }
var_f31 = (float)object->work[0] / lbl_1_data_F0[object->work[1]]; 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); VECSubtract(&lbl_1_data_60[object->work[1] + 1], &lbl_1_data_60[object->work[1]], &sp8);
PSVECScale(&sp8, &sp8, var_f31); VECScale(&sp8, &sp8, var_f31);
PSVECAdd(&lbl_1_data_60[object->work[1]], &sp8, &sp8); VECAdd(&lbl_1_data_60[object->work[1]], &sp8, &sp8);
Center.x = sp8.x; Center.x = sp8.x;
Center.y = sp8.y; Center.y = sp8.y;
Center.z = sp8.z; Center.z = sp8.z;
PSVECSubtract(&lbl_1_data_A8[object->work[1] + 1], &lbl_1_data_A8[object->work[1]], &sp8); VECSubtract(&lbl_1_data_A8[object->work[1] + 1], &lbl_1_data_A8[object->work[1]], &sp8);
PSVECScale(&sp8, &sp8, var_f31); VECScale(&sp8, &sp8, var_f31);
PSVECAdd(&lbl_1_data_A8[object->work[1]], &sp8, &sp8); VECAdd(&lbl_1_data_A8[object->work[1]], &sp8, &sp8);
CRot.x = sp8.x; CRot.x = sp8.x;
CRot.y = sp8.y; CRot.y = sp8.y;
CRot.z = 0.0f; CRot.z = 0.0f;
@ -922,7 +922,7 @@ void fn_1_3D78(ModelData *arg0, Mtx arg1)
{ {
Mtx spC; Mtx spC;
PSMTXIdentity(spC); MTXIdentity(spC);
GXLoadPosMtxImm(spC, 0); GXLoadPosMtxImm(spC, 0);
GXSetNumChans(1); GXSetNumChans(1);
GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); 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; Vec sp10;
float var_f30; float var_f30;
PSVECSubtract(arg1, arg0, &sp10); VECSubtract(arg1, arg0, &sp10);
Center = *arg1; Center = *arg1;
var_f30 = (sp10.x * sp10.x) + (sp10.z * sp10.z); var_f30 = (sp10.x * sp10.x) + (sp10.z * sp10.z);
CRot.x = atan2d(sp10.y, sqrtf(var_f30)); CRot.x = atan2d(sp10.y, sqrtf(var_f30));
CRot.y = atan2d(-sp10.x, -sp10.z); CRot.y = atan2d(-sp10.x, -sp10.z);
CRot.z = 0.0f; 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) 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.x = argB;
sp30.y = argC; sp30.y = argC;
sp30.z = argD; sp30.z = argD;
PSVECSubtract(&sp30, &sp3C, &sp24); VECSubtract(&sp30, &sp3C, &sp24);
Center = sp30; Center = sp30;
var_f30 = (sp24.x * sp24.x) + (sp24.z * sp24.z); var_f30 = (sp24.x * sp24.x) + (sp24.z * sp24.z);
CRot.x = atan2d(sp24.y, sqrtf(var_f30)); CRot.x = atan2d(sp24.y, sqrtf(var_f30));
CRot.y = atan2d(-sp24.x, -sp24.z); CRot.y = atan2d(-sp24.x, -sp24.z);
CRot.z = 0.0f; CRot.z = 0.0f;
CZoom = PSVECMag(&sp24); CZoom = VECMag(&sp24);
} }
float fn_1_488C(float arg8, float arg9, float argA) 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]); 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); mtxRot(sp5C, var_r30->unk_28.x, var_r30->unk_28.y, 0.0f);
sp8.z = var_r30->unk_34; sp8.z = var_r30->unk_34;
PSMTXMultVec(sp5C, &sp8, &sp14); MTXMultVec(sp5C, &sp8, &sp14);
PSVECAdd(&var_r30->unk_1C, &sp14, &sp20); VECAdd(&var_r30->unk_1C, &sp14, &sp20);
sp2C[var_r29].y += var_f31; sp2C[var_r29].y += var_f31;
PSMTXMultVec(sp5C, &sp2C[var_r29], &sp14); MTXMultVec(sp5C, &sp2C[var_r29], &sp14);
PSVECAdd(&sp20, &sp14, &sp20); VECAdd(&sp20, &sp14, &sp20);
Hu3DModelPosSetV(object->model[var_r29 + 9], &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); 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); 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; break;
} }
fn_1_7340(object); 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_7130(object);
fn_1_69B4(object); fn_1_69B4(object);
@ -428,11 +428,11 @@ void fn_1_6458(omObjData *object)
var_r29 = 1; var_r29 = 1;
} }
fn_1_7340(object); 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_7130(object);
fn_1_69B4(object); fn_1_69B4(object);
temp_r31->unk100->unk_1C = temp_r31->unkDC; 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)) { if ((fn_1_42E4() == 3) && (var_r29 != 0)) {
fn_1_43AC(object->work[0]); fn_1_43AC(object->work[0]);
temp_r31->unk108 = 0; temp_r31->unk108 = 0;
@ -451,11 +451,11 @@ void fn_1_6674(omObjData *object)
temp_r31->unk14 = 0; temp_r31->unk14 = 0;
temp_r31->unk18 = 0.0f; temp_r31->unk18 = 0.0f;
fn_1_7340(object); 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_7130(object);
fn_1_69B4(object); fn_1_69B4(object);
temp_r31->unk100->unk_1C = temp_r31->unkDC; 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) { if (fn_1_42E4() == 5) {
temp_r31->unk1C = 0; temp_r31->unk1C = 0;
temp_r31->unk34 = 0; temp_r31->unk34 = 0;
@ -468,7 +468,7 @@ void fn_1_6750(omObjData *object)
M443DllWorkStruct *temp_r31; M443DllWorkStruct *temp_r31;
temp_r31 = object->data; 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_7130(object);
fn_1_69B4(object); fn_1_69B4(object);
switch (temp_r31->unk34) { switch (temp_r31->unk34) {
@ -673,9 +673,9 @@ void fn_1_7130(omObjData *object)
for (var_r28 = 0; var_r28 < 4; var_r28++) { for (var_r28 = 0; var_r28 < 4; var_r28++) {
if (var_r29 != var_r28) { if (var_r29 != var_r28) {
temp_r30 = lbl_1_bss_90[var_r28]->data; 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; sp8.y = 0.0f;
var_f31 = PSVECMag(&sp8); var_f31 = VECMag(&sp8);
if (var_f31 < (temp_r31->unkC0 + temp_r30->unkC0)) { if (var_f31 < (temp_r31->unkC0 + temp_r30->unkC0)) {
if (var_f31 > 0.0f) { if (var_f31 > 0.0f) {
var_f31 = 0.5f * ((temp_r31->unkC0 + temp_r30->unkC0) - var_f31); 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.x = (frandmod(0x3E8) - 0x1F4);
sp8.z = (frandmod(0x3E8) - 0x1F4); sp8.z = (frandmod(0x3E8) - 0x1F4);
} }
PSVECNormalize(&sp8, &sp8); VECNormalize(&sp8, &sp8);
PSVECScale(&sp8, &sp8, var_f31); VECScale(&sp8, &sp8, var_f31);
PSVECAdd(&temp_r31->unkC4, &sp8, &temp_r31->unkC4); VECAdd(&temp_r31->unkC4, &sp8, &temp_r31->unkC4);
PSVECSubtract(&temp_r30->unkC4, &sp8, &temp_r30->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++) { for (var_r29 = 0; var_r29 < temp_r30->unk_30; var_r29++, var_r31++) {
if (var_r31->unk00_s16 != 0) { 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->unk08.z -= 0.3f;
var_r31->unk2C += 2.0f; var_r31->unk2C += 2.0f;
var_r31->unk40.a *= 0.98f; var_r31->unk40.a *= 0.98f;

View file

@ -161,13 +161,13 @@ void fn_1_9374(UnkM447Struct_01 *arg0)
Mtx sp8; Mtx sp8;
temp_r30 = &Hu3DData[arg0->unk58[arg0->unk00]]; temp_r30 = &Hu3DData[arg0->unk58[arg0->unk00]];
PSMTXIdentity(temp_r30->unk_F0); MTXIdentity(temp_r30->unk_F0);
PSMTXRotRad(sp8, 'x', MTXDegToRad(arg0->unk1C.x)); MTXRotRad(sp8, 'x', MTXDegToRad(arg0->unk1C.x));
PSMTXConcat(temp_r30->unk_F0, sp8, temp_r30->unk_F0); MTXConcat(temp_r30->unk_F0, sp8, temp_r30->unk_F0);
PSMTXRotRad(sp8, 'y', MTXDegToRad(arg0->unk1C.y)); MTXRotRad(sp8, 'y', MTXDegToRad(arg0->unk1C.y));
PSMTXConcat(temp_r30->unk_F0, sp8, temp_r30->unk_F0); MTXConcat(temp_r30->unk_F0, sp8, temp_r30->unk_F0);
PSMTXRotRad(sp8, 'z', MTXDegToRad(arg0->unk1C.z)); MTXRotRad(sp8, 'z', MTXDegToRad(arg0->unk1C.z));
PSMTXConcat(temp_r30->unk_F0, sp8, temp_r30->unk_F0); 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[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[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); 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); 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); C_MTXOrtho(sp98, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f);
GXSetProjection(sp98, GX_ORTHOGRAPHIC); GXSetProjection(sp98, GX_ORTHOGRAPHIC);
PSMTXIdentity(spC8); MTXIdentity(spC8);
GXLoadPosMtxImm(spC8, GX_PNMTX0); GXLoadPosMtxImm(spC8, GX_PNMTX0);
GXSetNumTevStages(1); GXSetNumTevStages(1);
GXSetNumTexGens(1); GXSetNumTexGens(1);
@ -454,8 +454,8 @@ void fn_1_1338(omObjData *arg0)
sp178 = lbl_1_rodata_100; sp178 = lbl_1_rodata_100;
sp178.x = var_f20; sp178.x = var_f20;
sp178.z = -sp118; sp178.z = -sp118;
PSMTXRotRad(sp184, 'y', MTXDegToRad(CRot.y)); MTXRotRad(sp184, 'y', MTXDegToRad(CRot.y));
PSMTXMultVec(sp184, &sp178, &sp178); MTXMultVec(sp184, &sp178, &sp178);
var_f20 = sp178.x; var_f20 = sp178.x;
sp118 = -sp178.z; 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 sp124 = ((-90.175 <= lbl_1_bss_18) && (lbl_1_bss_18 <= -90.0f)) != 0
? -90.175 ? -90.175
: ((-90.0f <= lbl_1_bss_18) && (lbl_1_bss_18 <= -89.825) ? -89.825 : lbl_1_bss_18); : ((-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)); MTXRotRad(sp304, 0x78, 0.017453292f * (10.0f * var_r31->unk_5C));
PSMTXRotRad(sp364, 0x7A, 0.017453292f * (10.0f * -var_r31->unk_58)); MTXRotRad(sp364, 0x7A, 0.017453292f * (10.0f * -var_r31->unk_58));
PSMTXConcat(sp364, sp304, sp364); MTXConcat(sp364, sp304, sp364);
PSMTXRotRad(sp304, 0x79, 0.017453292f * sp124); MTXRotRad(sp304, 0x79, 0.017453292f * sp124);
PSMTXRotRad(sp334, 0x78, 0.017453292f * (15.0f * var_r31->unk_5C)); MTXRotRad(sp334, 0x78, 0.017453292f * (15.0f * var_r31->unk_5C));
PSMTXConcat(sp334, sp304, sp334); MTXConcat(sp334, sp304, sp334);
PSMTXRotRad(sp304, 0x7A, 0.017453292f * (15.0f * -var_r31->unk_58)); MTXRotRad(sp304, 0x7A, 0.017453292f * (15.0f * -var_r31->unk_58));
PSMTXConcat(sp304, sp334, sp334); MTXConcat(sp304, sp334, sp334);
Hu3DMtxRotGet(sp334, &sp2A8); Hu3DMtxRotGet(sp334, &sp2A8);
sp2B4.x = var_r31->unk_60[var_r30]; sp2B4.x = var_r31->unk_60[var_r30];
sp2B4.y = var_r31->unk_70[var_r30]; sp2B4.y = var_r31->unk_70[var_r30];
sp2B4.z = var_r31->unk_80[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); 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], 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); 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; var_r31->unk2C = 50.0f;
} }
if (var_r31->unk00_s16 < 0xF0) { 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.x *= 0.9f;
var_r31->unk08.z *= 0.9f; var_r31->unk08.z *= 0.9f;
var_r31->unk08.y *= 0.9f; var_r31->unk08.y *= 0.9f;

View file

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

View file

@ -514,12 +514,12 @@ void fn_1_6EB4(omObjData *object)
Mtx sp8; Mtx sp8;
s32 var_r30; 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); 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++) { 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); MTXTrans(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); MTXConcat(sp38, sp8, sp8);
Hu3DModelPosSet(object->model[var_r30 + 1], sp8[0][3], sp8[1][3], sp8[2][3]); 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); 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; 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); 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++) { 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); MTXTrans(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); MTXConcat(sp8, sp38, sp38);
Hu3DModelPosSet(object->model[var_r28 + 1], sp38[0][3], sp38[1][3], sp38[2][3]); 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); 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; var_r28 -= 6;
fn_1_7BB0(var_r27, &sp10); fn_1_7BB0(var_r27, &sp10);
sp10 = lbl_1_data_A88[var_r27]; 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); mtxRot(sp1C, var_r31->rot.x, var_r31->rot.y, var_r31->rot.z);
PSMTXConcat(sp4C, sp1C, sp4C); MTXConcat(sp4C, sp1C, sp4C);
PSMTXTrans(sp1C, sp10.x, sp10.y, sp10.z); MTXTrans(sp1C, sp10.x, sp10.y, sp10.z);
PSMTXConcat(sp4C, sp1C, sp4C); MTXConcat(sp4C, sp1C, sp4C);
var_r30 = lbl_1_data_AFC[var_r28]; var_r30 = lbl_1_data_AFC[var_r28];
var_r23 = lbl_1_data_B14[var_r28]; var_r23 = lbl_1_data_B14[var_r28];
for (var_r24 = 0; var_r24 < var_r23; var_r24++) { for (var_r24 = 0; var_r24 < var_r23; var_r24++) {
PSMTXTrans(sp1C, var_r30->x, var_r30->y, var_r30->z); MTXTrans(sp1C, var_r30->x, var_r30->y, var_r30->z);
PSMTXConcat(sp4C, sp1C, sp1C); MTXConcat(sp4C, sp1C, sp1C);
arg0->x = sp1C[0][3]; arg0->x = sp1C[0][3];
arg0->y = sp1C[1][3]; arg0->y = sp1C[1][3];
arg0->z = sp1C[2][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_r30 = lbl_1_bss_A4[lbl_1_bss_9C];
var_r27 = var_r30->data; var_r27 = var_r30->data;
var_r23 = fn_1_8250(var_r27, sp8); 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); 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++) { for (var_r29 = 0; var_r29 < var_r23; var_r29++) {
fn_1_7BB0(sp8[var_r29], arg0); fn_1_7BB0(sp8[var_r29], arg0);
var_r26 = fn_1_7BFC(var_r27, sp8[var_r29]) - 6; var_r26 = fn_1_7BFC(var_r27, sp8[var_r29]) - 6;
arg0->x += lbl_1_data_B2C[var_r26].x; arg0->x += lbl_1_data_B2C[var_r26].x;
arg0->y += lbl_1_data_B2C[var_r26].y; arg0->y += lbl_1_data_B2C[var_r26].y;
arg0->z += lbl_1_data_B2C[var_r26].z; arg0->z += lbl_1_data_B2C[var_r26].z;
PSMTXTrans(sp20, arg0->x, arg0->y, arg0->z); MTXTrans(sp20, arg0->x, arg0->y, arg0->z);
PSMTXConcat(sp50, sp20, sp20); MTXConcat(sp50, sp20, sp20);
arg0->x = sp20[0][3]; arg0->x = sp20[0][3];
arg0->y = sp20[1][3]; arg0->y = sp20[1][3];
arg0->z = sp20[2][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)) { if ((var_r28->rot.x > 0.0f) || (var_r28->rot.x <= -90.0f)) {
return 0; return 0;
} }
PSVECSubtract(arg0, &var_r28->trans, &sp3C); VECSubtract(arg0, &var_r28->trans, &sp3C);
sp3C.z = sp3C.z / cosd(var_r28->rot.x); sp3C.z = sp3C.z / cosd(var_r28->rot.x);
var_f24 = arg0->z; var_f24 = arg0->z;
var_f25 = arg0->x; var_f25 = arg0->x;
@ -1002,29 +1002,29 @@ s32 fn_1_867C(Vec *arg0, Vec *arg1)
} }
var_r24 -= 6; var_r24 -= 6;
sp48 = lbl_1_data_A88[var_r19]; 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_r30 = lbl_1_data_B74[var_r24][0];
var_r29 = lbl_1_data_B74[var_r24][1]; var_r29 = lbl_1_data_B74[var_r24][1];
var_r21 = lbl_1_data_BA4[var_r24]; var_r21 = lbl_1_data_BA4[var_r24];
for (var_r31 = 0; var_r31 < var_r21; var_r31++) { for (var_r31 = 0; var_r31 < var_r21; var_r31++) {
var_r27 = (var_r31 + 1) % var_r21; var_r27 = (var_r31 + 1) % var_r21;
PSVECSubtract(var_r30 + var_r27, var_r30 + var_r31, &sp24); VECSubtract(var_r30 + var_r27, var_r30 + var_r31, &sp24);
PSVECSubtract(&sp3C, var_r30 + var_r27, &sp18); VECSubtract(&sp3C, var_r30 + var_r27, &sp18);
PSVECCrossProduct(&sp24, &sp18, &spC); VECCrossProduct(&sp24, &sp18, &spC);
if (!(spC.y < 0.0f)) { if (!(spC.y < 0.0f)) {
PSVECSubtract(var_r29 + var_r27, var_r30 + var_r27, &sp24); VECSubtract(var_r29 + var_r27, var_r30 + var_r27, &sp24);
PSVECSubtract(&sp3C, var_r29 + var_r27, &sp18); VECSubtract(&sp3C, var_r29 + var_r27, &sp18);
PSVECCrossProduct(&sp24, &sp18, &spC); VECCrossProduct(&sp24, &sp18, &spC);
if (!(spC.y < 0.0f)) { if (!(spC.y < 0.0f)) {
PSVECSubtract(var_r29 + var_r31, var_r29 + var_r27, &sp24); VECSubtract(var_r29 + var_r31, var_r29 + var_r27, &sp24);
PSVECSubtract(&sp3C, var_r29 + var_r31, &sp18); VECSubtract(&sp3C, var_r29 + var_r31, &sp18);
PSVECCrossProduct(&sp24, &sp18, &spC); VECCrossProduct(&sp24, &sp18, &spC);
if (!(spC.y < 0.0f)) { if (!(spC.y < 0.0f)) {
PSVECSubtract(var_r30 + var_r31, var_r29 + var_r31, &sp24); VECSubtract(var_r30 + var_r31, var_r29 + var_r31, &sp24);
PSVECSubtract(&sp3C, var_r30 + var_r31, &sp18); VECSubtract(&sp3C, var_r30 + var_r31, &sp18);
PSVECCrossProduct(&sp24, &sp18, &spC); VECCrossProduct(&sp24, &sp18, &spC);
if (!(spC.y < 0.0f)) { 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) 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))) + (((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)) - (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.x = var_r30[var_r31].x + (var_f30 * sp24.x);
sp30.y = var_r30[var_r31].y + (var_f30 * sp24.y); sp30.y = var_r30[var_r31].y + (var_f30 * sp24.y);
sp30.z = var_r30[var_r31].z + (var_f30 * sp24.z); sp30.z = var_r30[var_r31].z + (var_f30 * sp24.z);
PSVECSubtract(&sp30, &sp3C, &spC); VECSubtract(&sp30, &sp3C, &spC);
var_f28 = PSVECMag(&spC); var_f28 = VECMag(&spC);
PSVECSubtract(var_r29 + var_r27, var_r29 + var_r31, &sp18); VECSubtract(var_r29 + var_r27, var_r29 + var_r31, &sp18);
var_f29 = (((sp3C.z * sp18.z) 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))) + (((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)) - (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.x = var_r29[var_r31].x + (var_f29 * sp18.x);
sp30.y = var_r29[var_r31].y + (var_f29 * sp18.y); sp30.y = var_r29[var_r31].y + (var_f29 * sp18.y);
sp30.z = var_r29[var_r31].z + (var_f29 * sp18.z); sp30.z = var_r29[var_r31].z + (var_f29 * sp18.z);
PSVECSubtract(&sp30, &sp3C, &spC); VECSubtract(&sp30, &sp3C, &spC);
var_f27 = PSVECMag(&spC); var_f27 = VECMag(&spC);
if (var_f28 == 0.0f) { if (var_f28 == 0.0f) {
var_f31 = var_f30; 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.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.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; 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); light = Hu3DGLightCreateV(&lbl_1_data_38, &lbl_1_bss_8, &lbl_1_data_50);
Hu3DGLightInfinitytSet(light); Hu3DGLightInfinitytSet(light);
Hu3DGLightStaticSet(light, 1); 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.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.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; 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); var_r29 = Hu3DGLightCreateV(&lbl_1_data_38, &lbl_1_bss_8, &lbl_1_data_50);
Hu3DGLightInfinitytSet(var_r29); Hu3DGLightInfinitytSet(var_r29);
Hu3DGLightStaticSet(var_r29, 1); Hu3DGLightStaticSet(var_r29, 1);
@ -714,7 +714,7 @@ void fn_1_1304(omObjData *var_r30)
var_r28 = 0x40000001; var_r28 = 0x40000001;
if ((fn_1_3B0() == 5) && (var_r31->unk_00_field3 == 0) && (lbl_1_bss_64 == 1)) { if ((fn_1_3B0() == 5) && (var_r31->unk_00_field3 == 0) && (lbl_1_bss_64 == 1)) {
var_r25 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0); 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); var_r30->rot.y = fn_1_2090(var_r30->rot.y, atan2d(sp8.x, sp8.z), 0.1f);
} }
if (fn_1_3B0() == 0xB) { 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 }; Vec sp1B0 = { 0.0f, 0.0f, 0.0f };
sp1B0.x = var_f31; sp1B0.x = var_f31;
sp1B0.z = var_f30; sp1B0.z = var_f30;
PSMTXRotRad(sp1E0, 0x79, 0.017453292f * CRot.y); MTXRotRad(sp1E0, 0x79, 0.017453292f * CRot.y);
PSMTXMultVec(sp1E0, &sp1B0, &sp1B0); MTXMultVec(sp1E0, &sp1B0, &sp1B0);
var_f31 = sp1B0.x; var_f31 = sp1B0.x;
var_f30 = sp1B0.z; var_f30 = sp1B0.z;
} }

View file

@ -153,7 +153,7 @@ void ObjectSetup(void)
sp8.x = sp8.z = 0.0f; sp8.x = sp8.z = 0.0f;
sp8.y = lbl_1_data_18.z; sp8.y = lbl_1_data_18.z;
mtxRot(sp2C, lbl_1_data_18.x, lbl_1_data_18.y, 0.0f); 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); 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); 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; 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 *= -1.0f;
} }
var_f31 = object->work[0] / var_f31; 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); VECSubtract(&lbl_1_data_4C[object->work[1] + var_r24], &lbl_1_data_4C[object->work[1]], &sp20);
PSVECScale(&sp20, &sp20, var_f31); VECScale(&sp20, &sp20, var_f31);
PSVECAdd(&lbl_1_data_4C[object->work[1]], &sp20, &sp20); VECAdd(&lbl_1_data_4C[object->work[1]], &sp20, &sp20);
Center.x = sp20.x; Center.x = sp20.x;
Center.y = sp20.y; Center.y = sp20.y;
Center.z = sp20.z; Center.z = sp20.z;
PSVECSubtract(&lbl_1_data_70[object->work[1] + var_r24], &lbl_1_data_70[object->work[1]], &sp20); VECSubtract(&lbl_1_data_70[object->work[1] + var_r24], &lbl_1_data_70[object->work[1]], &sp20);
PSVECScale(&sp20, &sp20, var_f31); VECScale(&sp20, &sp20, var_f31);
PSVECAdd(&lbl_1_data_70[object->work[1]], &sp20, &sp20); VECAdd(&lbl_1_data_70[object->work[1]], &sp20, &sp20);
CRot.x = sp20.x; CRot.x = sp20.x;
CRot.y = sp20.y; CRot.y = sp20.y;
CRot.z = 0.0f; 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[2] = var_r31->unk_44.unk_08 * var_r31->unk_40;
sp10[3] = var_r31->unk_44.unk_0C * 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); Hu3DCameraPerspectiveSet(var_r31->unk_3C, var_r31->unk_10, var_r31->unk_14, var_r31->unk_18, var_f31);
Hu3DCameraViewportSet( 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],
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[3], 0.0f, 1.0f);
sp10[0] = var_r31->unk_44.unk_00 - (0.5f * sp10[2]); sp10[0] = var_r31->unk_44.unk_00 - (0.5f * sp10[2]);
sp10[1] = var_r31->unk_44.unk_04 - (0.5f * sp10[3]); sp10[1] = var_r31->unk_44.unk_04 - (0.5f * sp10[3]);
sp8[0] = var_r31->unk_44.unk_00 + (0.5f * sp10[2]); 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); DCStoreRange(&lbl_1_data_B8, 4);
C_MTXPerspective(spC, 41.5f, 1.2f, 100.0f, 5500.0f); C_MTXPerspective(spC, 41.5f, 1.2f, 100.0f, 5500.0f);
GXSetProjection(spC, GX_PERSPECTIVE); GXSetProjection(spC, GX_PERSPECTIVE);
PSMTXIdentity(sp3C); MTXIdentity(sp3C);
GXLoadPosMtxImm(sp3C, 0); GXLoadPosMtxImm(sp3C, 0);
GXSetNumChans(1); GXSetNumChans(1);
GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); 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_f30;
float var_f29; float var_f29;
PSVECSubtract(var_r31, sp8, &sp10); VECSubtract(var_r31, sp8, &sp10);
Center = *var_r31; Center = *var_r31;
CRot.x = atan2d(sp10.y, sqrtf((sp10.x * sp10.x) + (sp10.z * sp10.z))); CRot.x = atan2d(sp10.y, sqrtf((sp10.x * sp10.x) + (sp10.z * sp10.z)));
CRot.y = atan2d(-sp10.x, -sp10.z); CRot.y = atan2d(-sp10.x, -sp10.z);
CRot.z = 0.0f; 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) 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.x = argB;
sp30.y = argC; sp30.y = argC;
sp30.z = argD; sp30.z = argD;
PSVECSubtract(&sp30, &sp3C, &sp24); VECSubtract(&sp30, &sp3C, &sp24);
Center = sp30; Center = sp30;
CRot.x = atan2d(sp24.y, sqrtf((sp24.x * sp24.x) + (sp24.z * sp24.z))); CRot.x = atan2d(sp24.y, sqrtf((sp24.x * sp24.x) + (sp24.z * sp24.z)));
CRot.y = atan2d(-sp24.x, -sp24.z); CRot.y = atan2d(-sp24.x, -sp24.z);
CRot.z = 0.0f; CRot.z = 0.0f;
CZoom = PSVECMag(&sp24); CZoom = VECMag(&sp24);
} }
float fn_1_47D0(float arg8, float arg9, float argA) 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); fn_1_7DA8(object, &sp14, 1);
} }
} }
PSVECSubtract(&var_r31->unk_48, &var_r31->unk_3C, &sp8); VECSubtract(&var_r31->unk_48, &var_r31->unk_3C, &sp8);
PSVECScale(&sp8, &sp8, 0.4f); VECScale(&sp8, &sp8, 0.4f);
PSVECAdd(&var_r31->unk_3C, &sp8, &sp14); VECAdd(&var_r31->unk_3C, &sp8, &sp14);
sp14.y += var_r31->unk_34; sp14.y += var_r31->unk_34;
Hu3DModelPosSetV(var_r31->unk_2C, &sp14); Hu3DModelPosSetV(var_r31->unk_2C, &sp14);
var_r31->unk_30++; var_r31->unk_30++;
@ -366,7 +366,7 @@ void fn_1_7790(ModelData *model, Mtx mtx)
DCStoreRange(&lbl_1_data_378, 4); DCStoreRange(&lbl_1_data_378, 4);
C_MTXPerspective(sp2C, 41.5f, 1.2f, 100.0f, 5500.0f); C_MTXPerspective(sp2C, 41.5f, 1.2f, 100.0f, 5500.0f);
GXSetProjection(sp2C, GX_PERSPECTIVE); GXSetProjection(sp2C, GX_PERSPECTIVE);
PSMTXIdentity(sp5C); MTXIdentity(sp5C);
GXLoadPosMtxImm(sp5C, 0); GXLoadPosMtxImm(sp5C, 0);
GXSetNumChans(1); GXSetNumChans(1);
GXSetChanCtrl(GX_COLOR0A0, 0, GX_SRC_REG, GX_SRC_VTX, 0, GX_DF_CLAMP, GX_AF_NONE); 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; 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++) { 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) { 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) { switch (var_r31->unk02) {
case 0: case 0:
var_r31->unk2C += 1.0f; 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.x = 100.0f * ((0.0026f * frandmod(0x3E8)) - 1.3f);
sp1C.y = 0.0f; sp1C.y = 0.0f;
sp1C.z = 100.0f * ((0.000100000005f * frandmod(0x3E8)) - 0.05f); 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); var_r31->unk30 = 0.0031415902f * frandmod(0x3E8);
switch (arg2) { switch (arg2) {
case 0: case 0:
@ -485,7 +485,7 @@ void fn_1_7DA8(omObjData *object, Vec *arg1, u32 arg2)
if (frandmod(0x3E8) < 0x1F4) { if (frandmod(0x3E8) < 0x1F4) {
sp1C.x *= -1.0f; 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->unk00 = 60.0f * (0.2f + (0.0005f * frandmod(0x3E8)));
var_r31->unk08.x = 1.6666667f * ((0.000100000005f * frandmod(0x3E8)) - 0.05f); var_r31->unk08.x = 1.6666667f * ((0.000100000005f * frandmod(0x3E8)) - 0.05f);
var_r31->unk08.y = -1.6666667f * (0.2f + (0.0003f * frandmod(0x3E8))); 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; 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); fn_1_57D8(object);
if (fn_1_414C() == 2) { if (fn_1_414C() == 2) {
var_r31->unk_2C = 0; var_r31->unk_2C = 0;
@ -343,7 +343,7 @@ void fn_1_5168(omObjData *object)
break; 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); fn_1_57D8(object);
if ((fn_1_4164() == 5) && (var_r27 != 0)) { if ((fn_1_4164() == 5) && (var_r27 != 0)) {
var_r31->unk_2C = 0; var_r31->unk_2C = 0;
@ -390,7 +390,7 @@ void fn_1_55EC(omObjData *object)
fn_1_5CE0(object, 0); fn_1_5CE0(object, 0);
break; 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); fn_1_57D8(object);
if (var_r31->unk_84 >= 0) { if (var_r31->unk_84 >= 0) {
sp8 = var_r31->unk_60; sp8 = var_r31->unk_60;
@ -426,15 +426,15 @@ s32 fn_1_58C8(omObjData *object, float arg8, float arg9)
var_r31 = object->data; var_r31 = object->data;
var_r30 = 0; 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; spC.y = 0.0f;
var_f31 = PSVECMag(&spC); var_f31 = VECMag(&spC);
if (var_f31 < arg9) { if (var_f31 < arg9) {
var_f31 = 0.0f; var_f31 = 0.0f;
var_r30 = 1; var_r30 = 1;
} }
else { else {
if (PSVECMag(&spC) >= 100.0f) { if (VECMag(&spC) >= 100.0f) {
var_f31 = 100.0f; var_f31 = 100.0f;
} }
var_f31 = 0.2f + (0.008f * var_f31); var_f31 = 0.2f + (0.008f * var_f31);
@ -636,12 +636,12 @@ void fn_1_61F4(omObjData *object)
object->trans.z += 11.666667f; object->trans.z += 11.666667f;
} }
else { else {
var_f31 = PSVECMag(&sp10); var_f31 = VECMag(&sp10);
if (var_f31 < 20.0f) { if (var_f31 < 20.0f) {
var_f31 = 0.0f; var_f31 = 0.0f;
} }
else { else {
if (PSVECMag(&sp10) >= 100.0f) { if (VECMag(&sp10) >= 100.0f) {
var_f31 = 100.0f; var_f31 = 100.0f;
} }
var_f31 = 0.2f + (0.008f * var_f31); 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]; var_r30 = &Hu3DData[arg0];
Hu3DModelObjMtxGet(arg0, arg1, spC); Hu3DModelObjMtxGet(arg0, arg1, spC);
PSMTXConcat(var_r30->unk_F0, spC, spC); MTXConcat(var_r30->unk_F0, spC, spC);
if (NULL != arg3) { if (NULL != arg3) {
PSMTXCopy(spC, arg3); MTXCopy(spC, arg3);
} }
arg2->x = spC[0][3]; arg2->x = spC[0][3];
arg2->y = spC[1][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_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 }; 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_4BC4(void);
void fn_1_69C0(void); void fn_1_69C0(void);
void fn_1_7D40(void); void fn_1_7D40(void);
void fn_1_545C(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_594C(ModelData *model, ParticleData *particle, Mtx matrix);
void fn_1_5DE4(ModelData* model, ParticleData* particle, Mtx matrix); void fn_1_5DE4(ModelData *model, ParticleData *particle, Mtx matrix);
void fn_1_7DA0(void); void fn_1_7DA0(void);
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);
@ -93,48 +93,28 @@ s32 lbl_1_bss_3D8;
StructBss340 lbl_1_bss_340[1]; StructBss340 lbl_1_bss_340[1];
StructBss70 lbl_1_bss_70[10]; StructBss70 lbl_1_bss_70[10];
StructBss70 lbl_1_bss_28; StructBss70 lbl_1_bss_28;
omObjData* lbl_1_bss_24; omObjData *lbl_1_bss_24;
Vec lbl_1_bss_18; Vec lbl_1_bss_18;
Vec lbl_1_bss_C; Vec lbl_1_bss_C;
Vec lbl_1_bss_0; Vec lbl_1_bss_0;
s32 lbl_1_data_0[] = { 0, 1, 2, 3, 4, 5, 6, 7 }; s32 lbl_1_data_0[] = { 0, 1, 2, 3, 4, 5, 6, 7 };
s32 lbl_1_data_20[] = { 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, 79), DATA_MAKE_NUM(DATADIR_MARIOMOT, 22) };
DATA_MAKE_NUM(DATADIR_MARIOMOT, 27),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 75),
DATA_MAKE_NUM(DATADIR_MARIOMOT, 22)
};
Vec lbl_1_data_30[] = { 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 }, { 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[] = { 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 } };
{ -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] = { s32 lbl_1_data_C0[][5] = { { 50, 80, 90, 95, 100 }, { 5, 55, 85, 95, 100 }, { 0, 5, 55, 90, 100 } };
{ 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 }; float lbl_1_data_FC[] = { 0.3f, 0.5f, 0.7f, 0.9f, 1.0f };
void ObjectSetup(void) { void ObjectSetup(void)
Process* temp_r3; {
Process *temp_r3;
temp_r3 = omInitObjMan(50, 0x2000); temp_r3 = omInitObjMan(50, 0x2000);
omGameSysInit(temp_r3); omGameSysInit(temp_r3);
@ -172,15 +152,16 @@ void ObjectSetup(void) {
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60); WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60);
} }
void fn_1_4A0(void) { void fn_1_4A0(void)
{
float temp_f31; float temp_f31;
float temp_f30; float temp_f30;
void* var_r27; void *var_r27;
StructBss340* temp_r31; StructBss340 *temp_r31;
StructBss70* temp_r29; StructBss70 *temp_r29;
Process* var_r25; Process *var_r25;
AnimData* var_r24; AnimData *var_r24;
AnimData* spC[4]; AnimData *spC[4];
s16 var_r30; s16 var_r30;
s16 var_r23; s16 var_r23;
s16 sp8; 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_r27 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_M462, 12), MEMORY_DEFAULT_NUM, HEAP_DATA);
var_r30 = Hu3DModelCreate(var_r27); var_r30 = Hu3DModelCreate(var_r27);
var_r23 = var_r30; var_r23 = var_r30;
} else { }
else {
var_r30 = Hu3DModelLink(var_r23); var_r30 = Hu3DModelLink(var_r23);
} }
temp_r29->unk00 = var_r30; temp_r29->unk00 = var_r30;
@ -389,7 +371,8 @@ void fn_1_4A0(void) {
HuPrcChildCreate(fn_1_7D40, 0x1000, 0x1000, 0, HuPrcCurrentGet()); 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) { while (arg0 >= 360.0f || arg0 < 0.0f) {
if (arg0 >= 360.0f) { if (arg0 >= 360.0f) {
arg0 -= 360.0f; arg0 -= 360.0f;
@ -401,24 +384,29 @@ float fn_1_14B4(float arg0) {
return arg0; return arg0;
} }
float fn_1_1534(float arg0, float arg1) { float fn_1_1534(float arg0, float arg1)
{
float var_f31; float var_f31;
if (arg0 > 750.0f - arg1) { if (arg0 > 750.0f - arg1) {
var_f31 = 750.0f; var_f31 = 750.0f;
} else if (arg0 < -(750.0f - arg1)) { }
else if (arg0 < -(750.0f - arg1)) {
var_f31 = 750.0f; var_f31 = 750.0f;
} else { }
else {
var_f31 = 750.0f; var_f31 = 750.0f;
} }
return var_f31; 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); return fn_1_1534(arg0, arg1);
} }
void fn_1_1634(void) { void fn_1_1634(void)
{
float var_f31; float var_f31;
float temp_f30; float temp_f30;
s32 i; s32 i;
@ -434,7 +422,8 @@ void fn_1_1634(void) {
} }
} }
void fn_1_16F8(void) { void fn_1_16F8(void)
{
s32 i; s32 i;
for (i = 0; i < 6; 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; s32 i;
for (i = 0; i < 6; 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; s32 var_r31;
if (arg1 != 0) { if (arg1 != 0) {
var_r31 = 2; var_r31 = 2;
} else { }
else {
var_r31 = 4; var_r31 = 4;
} }
HuSprBankSet(lbl_1_bss_3DC, var_r31, arg0 % 10); 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); 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 sp34;
Vec sp28; Vec sp28;
Vec sp1C; Vec sp1C;
s32 i; s32 i;
StructBss70* temp_r30; StructBss70 *temp_r30;
StructBss340* var_r29; StructBss340 *var_r29;
if (arg3 > 10) { if (arg3 > 10) {
arg3 = 10; arg3 = 10;
@ -498,7 +491,8 @@ s32 fn_1_1880(float arg0, float arg1, float arg2, s32 arg3, s32 arg4) {
return 0; return 0;
} }
s32 fn_1_1BD4(StructBss70* arg0) { s32 fn_1_1BD4(StructBss70 *arg0)
{
float var_f31; float var_f31;
float var_f30; float var_f30;
s32 var_r31; s32 var_r31;
@ -525,7 +519,8 @@ s32 fn_1_1BD4(StructBss70* arg0) {
return var_r31; return var_r31;
} }
void fn_1_1E10(StructBss70* arg0) { void fn_1_1E10(StructBss70 *arg0)
{
Vec sp104; Vec sp104;
Vec spF8; Vec spF8;
Vec spEC; Vec spEC;
@ -541,8 +536,8 @@ void fn_1_1E10(StructBss70* arg0) {
float spB0; float spB0;
float spAC; float spAC;
float spA0; float spA0;
StructBss70* var_r30; StructBss70 *var_r30;
StructBss70* temp_r28; StructBss70 *temp_r28;
s32 temp_r19; s32 temp_r19;
s32 var_r21; s32 var_r21;
s32 i; s32 i;
@ -583,7 +578,8 @@ void fn_1_1E10(StructBss70* arg0) {
spC0 = var_f19 - var_f26; spC0 = var_f19 - var_f26;
if (spC0 > 0.0f) { if (spC0 > 0.0f) {
spBC = -0.5f; spBC = -0.5f;
} else { }
else {
spBC = 0.5f; spBC = 0.5f;
} }
if (ABS_INV(var_f19 - var_f26) > 180.0f) { if (ABS_INV(var_f19 - var_f26) > 180.0f) {
@ -626,13 +622,14 @@ block_end:
arg0->unk14.z = spB4; arg0->unk14.z = spB4;
} }
void fn_1_2FDC(StructBss70* arg0) { void fn_1_2FDC(StructBss70 *arg0)
{
Vec spF0; Vec spF0;
Vec spE4; Vec spE4;
Vec spD8; Vec spD8;
s32 i; s32 i;
StructBss340* var_r30; StructBss340 *var_r30;
StructBss70* temp_r25; StructBss70 *temp_r25;
float var_f31; float var_f31;
s32 var_r23; s32 var_r23;
s32 var_r20; s32 var_r20;
@ -655,12 +652,14 @@ void fn_1_2FDC(StructBss70* arg0) {
var_f31 += 30.0f * frandf() - 60.0f; var_f31 += 30.0f * frandf() - 60.0f;
var_f31 = fn_1_14B4(var_f31); var_f31 = fn_1_14B4(var_f31);
arg0->unk20 = 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 = fn_1_14B4(180.0 + atan2d(arg0->unk14.x, 0.0));
var_f31 += 10.0f * frandf() - 20.0f; var_f31 += 10.0f * frandf() - 20.0f;
var_f31 = fn_1_14B4(var_f31); var_f31 = fn_1_14B4(var_f31);
arg0->unk20 = 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++) { for (i = 0, var_r23 = 0; i < 10; i++) {
if (i == arg0->unk0C) { if (i == arg0->unk0C) {
continue; continue;
@ -679,13 +678,15 @@ void fn_1_2FDC(StructBss70* arg0) {
if (var_r23 == 1 && ABS_INV(var_r30->unk4C.x) < 650.0f) { if (var_r23 == 1 && ABS_INV(var_r30->unk4C.x) < 650.0f) {
temp_r25 = &lbl_1_bss_70[spAC[0]]; temp_r25 = &lbl_1_bss_70[spAC[0]];
var_f31 = fn_1_14B4(atan2d(arg0->unk40 - arg0->unk14.x, arg0->unk44 - arg0->unk14.z)); 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 = fn_1_14B4(180.0 + atan2d(arg0->unk14.x, arg0->unk14.z));
var_f31 += 30.0f * frandf() - 60.0f; var_f31 += 30.0f * frandf() - 60.0f;
var_f31 = fn_1_14B4(var_f31); var_f31 = fn_1_14B4(var_f31);
arg0->unk20 = var_f31; arg0->unk20 = var_f31;
} }
} else { }
else {
var_f31 = 360.0f * frandf(); var_f31 = 360.0f * frandf();
arg0->unk20 = var_f31; 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)); 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.x += arg0->unk34 * sind(var_f31);
arg0->unk14.z += arg0->unk34 * cosd(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) { if (fn_1_1880(arg0->unk14.x, arg0->unk14.z, 50.0f, 10, arg0->unk0C) != 0) {
arg0->unk14.x = arg0->unk24; arg0->unk14.x = arg0->unk24;
arg0->unk14.z = arg0->unk28; arg0->unk14.z = arg0->unk28;
arg0->unk38 = 100; arg0->unk38 = 100;
arg0->unk3C = 0; arg0->unk3C = 0;
} }
} else { }
else {
arg0->unk38 = 100; arg0->unk38 = 100;
arg0->unk3C = 0; arg0->unk3C = 0;
} }
@ -735,8 +736,9 @@ void fn_1_2FDC(StructBss70* arg0) {
} }
} }
void fn_1_44D8(void) { void fn_1_44D8(void)
StructBss70* temp_r31; {
StructBss70 *temp_r31;
float temp_f30; float temp_f30;
float var_f31; float var_f31;
s32 i; 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_f26;
float temp_f25; float temp_f25;
float var_f27; float var_f27;
@ -778,7 +781,8 @@ void fn_1_4644(StructBss70* arg0) {
arg0->unk20 = 90.0f; arg0->unk20 = 90.0f;
var_f27 = -700.0f + temp_f26 - 500.0f; var_f27 = -700.0f + temp_f26 - 500.0f;
var_f24 = 8.333333f; var_f24 = 8.333333f;
} else { }
else {
arg0->unk14.x = 700.0f - temp_f26; arg0->unk14.x = 700.0f - temp_f26;
arg0->unk20 = 270.0f; arg0->unk20 = 270.0f;
var_f27 = 700.0f - temp_f26 + 500.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); Hu3DModelPosSet(arg0->unk00, arg0->unk14.x, 0.0f, arg0->unk14.z);
} }
void fn_1_4BC4(void) { void fn_1_4BC4(void)
{
s32 spC; s32 spC;
float sp8; float sp8;
float temp_f23; float temp_f23;
@ -816,9 +821,9 @@ void fn_1_4BC4(void) {
float var_f28; float var_f28;
float var_f30; float var_f30;
float var_f29; float var_f29;
StructBss70* temp_r31; StructBss70 *temp_r31;
StructBss340* var_r28; StructBss340 *var_r28;
StructBss340* var_r30; StructBss340 *var_r30;
s32 temp_r27; s32 temp_r27;
s32 temp_r24; s32 temp_r24;
s32 var_r26; s32 var_r26;
@ -843,7 +848,8 @@ loop_1:
} }
} }
if (i > 4) { if (i > 4) {
while (TRUE); while (TRUE)
;
} }
temp_r31->unk34 = 6.75f * lbl_1_data_FC[i]; temp_r31->unk34 = 6.75f * lbl_1_data_FC[i];
temp_r31->unk38 = 0; temp_r31->unk38 = 0;
@ -854,8 +860,8 @@ loop_1:
fn_1_4644(temp_r31); fn_1_4644(temp_r31);
temp_r31->unk10 = 0; temp_r31->unk10 = 0;
if (FALSE) { if (FALSE) {
default: default:
fn_1_2FDC(temp_r31); fn_1_2FDC(temp_r31);
} }
Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk14.x, temp_r31->unk14.y, temp_r31->unk14.z); 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); 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 (ABS_INV(var_r28->unk4C.z - temp_r31->unk14.z) > 250.0f) {
if (temp_r31->unk14.x > 0.0f) { if (temp_r31->unk14.x > 0.0f) {
var_f30 = 10.0f; var_f30 = 10.0f;
} else { }
else {
var_f30 = -10.0f; var_f30 = -10.0f;
} }
} else { }
else {
if (var_r28->unk4C.x > temp_r31->unk14.x) { if (var_r28->unk4C.x > temp_r31->unk14.x) {
var_f30 = -10.0f; var_f30 = -10.0f;
} else { }
else {
var_f30 = 10.0f; var_f30 = 10.0f;
} }
} }
if (var_f30 > 0.0f) { if (var_f30 > 0.0f) {
Hu3DModelRotSet(temp_r31->unk00, 0.0f, 90.0f, 0.0f); Hu3DModelRotSet(temp_r31->unk00, 0.0f, 90.0f, 0.0f);
} else { }
else {
Hu3DModelRotSet(temp_r31->unk00, 0.0f, 270.0f, 0.0f); Hu3DModelRotSet(temp_r31->unk00, 0.0f, 270.0f, 0.0f);
} }
Hu3DMotionSet(temp_r31->unk00, temp_r31->unk04[1]); 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)); 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); Hu3DMotionTimeSet(temp_r31->unk02, 0.0f);
Hu3DModelAttrReset(temp_r31->unk02, HU3D_ATTR_DISPOFF); 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; i = 0;
var_f29 = temp_r31->unk14.x; var_f29 = temp_r31->unk14.x;
var_f28 = temp_r31->unk14.z; var_f28 = temp_r31->unk14.z;
@ -943,9 +954,10 @@ loop_1:
} }
} }
void fn_1_545C(ModelData* model, ParticleData* particle, Mtx matrix) { void fn_1_545C(ModelData *model, ParticleData *particle, Mtx matrix)
HsfanimStruct01* var_r31; {
StructBss340* temp_r28; HsfanimStruct01 *var_r31;
StructBss340 *temp_r28;
float var_f30; float var_f30;
float var_f31; float var_f31;
float temp_f29; float temp_f29;
@ -996,7 +1008,7 @@ void fn_1_545C(ModelData* model, ParticleData* particle, Mtx matrix) {
if (var_r31->unk14.x == 0.0f) { if (var_r31->unk14.x == 0.0f) {
continue; 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.x *= 0.95f;
var_r31->unk08.z *= 0.95f; var_r31->unk08.z *= 0.95f;
if (var_r31->unk08.y > 0.1f) { 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) { void fn_1_594C(ModelData *model, ParticleData *particle, Mtx matrix)
HsfanimStruct01* var_r31; {
StructBss340* temp_r28; HsfanimStruct01 *var_r31;
StructBss340 *temp_r28;
float temp_f31; float temp_f31;
float temp_f30; float temp_f30;
s32 var_r27; 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) { if (var_r31->unk14.x == 0.0f || var_r31->unk24 == 0.0f) {
continue; 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) { if (var_r31->unk08.y > 1.0f) {
var_r31->unk08.y -= 0.3f; 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) { void fn_1_5DE4(ModelData *model, ParticleData *particle, Mtx matrix)
HsfanimStruct01* var_r31; {
StructBss340* temp_r28; HsfanimStruct01 *var_r31;
StructBss340 *temp_r28;
float temp_f31; float temp_f31;
float temp_f30; float temp_f30;
s32 var_r27; 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) { if (var_r31->unk14.x == 0.0f || var_r31->unk24 == 0.0f) {
continue; 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) { if (var_r31->unk08.y > 1.0f) {
var_r31->unk08.y -= 0.3f; 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) { s8 fn_1_627C(s32 arg0, s32 arg1)
StructBss340* temp_r31; {
StructBss340 *temp_r31;
s8 var_r30; s8 var_r30;
temp_r31 = &lbl_1_bss_340[arg0]; temp_r31 = &lbl_1_bss_340[arg0];
@ -1208,8 +1223,9 @@ s8 fn_1_627C(s32 arg0, s32 arg1) {
return var_r30; return var_r30;
} }
u8 fn_1_62F0(s32 arg0, s32 arg1) { u8 fn_1_62F0(s32 arg0, s32 arg1)
StructBss340* temp_r31; {
StructBss340 *temp_r31;
s8 var_r30; s8 var_r30;
temp_r31 = &lbl_1_bss_340[arg0]; temp_r31 = &lbl_1_bss_340[arg0];
@ -1217,8 +1233,9 @@ u8 fn_1_62F0(s32 arg0, s32 arg1) {
return var_r30; return var_r30;
} }
u16 fn_1_636C(s32 arg0) { u16 fn_1_636C(s32 arg0)
StructBss340* temp_r31; {
StructBss340 *temp_r31;
u16 var_r30; u16 var_r30;
temp_r31 = &lbl_1_bss_340[arg0]; temp_r31 = &lbl_1_bss_340[arg0];
@ -1226,8 +1243,9 @@ u16 fn_1_636C(s32 arg0) {
return var_r30; return var_r30;
} }
u16 fn_1_63B4(s32 arg0) { u16 fn_1_63B4(s32 arg0)
StructBss340* temp_r31; {
StructBss340 *temp_r31;
u16 var_r30; u16 var_r30;
temp_r31 = &lbl_1_bss_340[arg0]; temp_r31 = &lbl_1_bss_340[arg0];
@ -1235,11 +1253,12 @@ u16 fn_1_63B4(s32 arg0) {
return var_r30; return var_r30;
} }
s32 fn_1_63FC(StructBss340* arg0) { s32 fn_1_63FC(StructBss340 *arg0)
{
Vec sp24; Vec sp24;
Vec sp18; Vec sp18;
Vec spC; Vec spC;
StructBss70* temp_r31; StructBss70 *temp_r31;
s32 var_r28; s32 var_r28;
s32 i; s32 i;
@ -1257,7 +1276,8 @@ s32 fn_1_63FC(StructBss340* arg0) {
return var_r28; return var_r28;
} }
s32 fn_1_65D0(StructBss340* arg0) { s32 fn_1_65D0(StructBss340 *arg0)
{
float var_f31; float var_f31;
float var_f30; float var_f30;
s32 sp8; s32 sp8;
@ -1279,7 +1299,8 @@ s32 fn_1_65D0(StructBss340* arg0) {
return sp8; 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_f30;
float var_f31; float var_f31;
@ -1297,8 +1318,9 @@ float fn_1_67F0(float arg0, float arg1, float arg2) {
return var_f30; return var_f30;
} }
void fn_1_68F4(void) { void fn_1_68F4(void)
StructBss340* temp_r31; {
StructBss340 *temp_r31;
s32 i; s32 i;
temp_r31 = HuPrcCurrentGet()->user_data; 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); 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_f23;
float var_f27; float var_f27;
float var_f26; float var_f26;
StructBss340* temp_r31; StructBss340 *temp_r31;
s16 var_r29; s16 var_r29;
s32 var_r24; s32 var_r24;
s32 var_r23; s32 var_r23;
Process* var_r22; Process *var_r22;
s32 var_r26; s32 var_r26;
s32 var_r25; s32 var_r25;
s32 var_r28; s32 var_r28;
@ -1353,7 +1377,8 @@ void fn_1_69C0(void) {
case 8: case 8:
if (temp_r31->unk3C != 0) { if (temp_r31->unk3C != 0) {
temp_r31->unk3C--; temp_r31->unk3C--;
} else { }
else {
Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[0], 0.0f, 5.0f, HU3D_MOTATTR_LOOP); Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[0], 0.0f, 5.0f, HU3D_MOTATTR_LOOP);
temp_r31->unk2C = 0; temp_r31->unk2C = 0;
} }
@ -1374,7 +1399,8 @@ void fn_1_69C0(void) {
} }
if (temp_r31->unk3C != 0) { if (temp_r31->unk3C != 0) {
temp_r31->unk3C--; temp_r31->unk3C--;
} else { }
else {
Hu3DMotionSet(temp_r31->unk00, temp_r31->unk06[5]); Hu3DMotionSet(temp_r31->unk00, temp_r31->unk06[5]);
Hu3DModelAttrReset(temp_r31->unk00, HU3D_MOTATTR_LOOP); Hu3DModelAttrReset(temp_r31->unk00, HU3D_MOTATTR_LOOP);
temp_r31->unk2C = 6; temp_r31->unk2C = 6;
@ -1416,7 +1442,8 @@ void fn_1_69C0(void) {
if (fn_1_63B4(temp_r31->unk20) & PAD_BUTTON_A) { 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); Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[1], 0.0f, 8.0f, HU3D_MOTATTR_LOOP);
Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); 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); Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[1], 0.0f, 8.0f, HU3D_MOTATTR_LOOP | HU3D_MOTATTR_REV);
Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f);
} }
@ -1424,14 +1451,16 @@ void fn_1_69C0(void) {
HuAudFXStop(var_r29); HuAudFXStop(var_r29);
} }
} }
} else { }
else {
if (temp_r31->unk2C != 3) { if (temp_r31->unk2C != 3) {
temp_r31->unk2C = 3; temp_r31->unk2C = 3;
temp_r31->unk48 = 0; temp_r31->unk48 = 0;
if (fn_1_63B4(temp_r31->unk20) & PAD_BUTTON_A) { 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); Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[2], 0.0f, 8.0f, HU3D_MOTATTR_LOOP);
Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); 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); Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[2], 0.0f, 8.0f, HU3D_MOTATTR_LOOP | HU3D_MOTATTR_REV);
Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f); Hu3DMotionShiftSpeedSet(temp_r31->unk00, 2.0f);
} }
@ -1443,7 +1472,8 @@ void fn_1_69C0(void) {
if (temp_r31->unk34 != 1) { if (temp_r31->unk34 != 1) {
var_r24 = 8; var_r24 = 8;
var_r23 = 32; var_r23 = 32;
} else { }
else {
var_r24 = 7; var_r24 = 7;
var_r23 = 22; var_r23 = 22;
} }
@ -1458,12 +1488,14 @@ void fn_1_69C0(void) {
if (temp_r31->unk48 >= 50) { if (temp_r31->unk48 >= 50) {
temp_r31->unk48 -= 50; temp_r31->unk48 -= 50;
} }
} else { }
else {
if (temp_r31->unk48 >= 30) { if (temp_r31->unk48 >= 30) {
temp_r31->unk48 -= 30; temp_r31->unk48 -= 30;
} }
} }
} else { }
else {
if (ABS_INV(fn_1_627C(temp_r31->unk20, 0)) <= 20) { if (ABS_INV(fn_1_627C(temp_r31->unk20, 0)) <= 20) {
if (temp_r31->unk2C != 0) { if (temp_r31->unk2C != 0) {
temp_r31->unk2C = 0; temp_r31->unk2C = 0;
@ -1472,7 +1504,8 @@ void fn_1_69C0(void) {
HuAudFXStop(var_r29); HuAudFXStop(var_r29);
} }
} }
} else { }
else {
if (temp_r31->unk2C != 1) { if (temp_r31->unk2C != 1) {
temp_r31->unk2C = 1; temp_r31->unk2C = 1;
Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[3], 0.0f, 8.0f, HU3D_MOTATTR_LOOP); 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 (fn_1_63FC(temp_r31) != -1) { }
} if ((spA4 = fn_1_65D0(temp_r31)) != -1) { }
if ((spA4 = fn_1_65D0(temp_r31)) != -1) {
}
break; break;
} }
Hu3DModelPosSet(temp_r31->unk00, temp_r31->unk4C.x, temp_r31->unk4C.y, temp_r31->unk4C.z); 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) { if (var_r25 & 1) {
Hu3DModelAttrReset(temp_r31->unk00, HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(temp_r31->unk00, HU3D_ATTR_DISPOFF);
Hu3DModelAttrReset(temp_r31->unk04, HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(temp_r31->unk04, HU3D_ATTR_DISPOFF);
} else { }
else {
Hu3DModelAttrSet(temp_r31->unk00, HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(temp_r31->unk00, HU3D_ATTR_DISPOFF);
Hu3DModelAttrSet(temp_r31->unk04, 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); Hu3DModelAttrSet(temp_r31->unk00, HU3D_ATTR_DISPOFF);
HuAudSStreamPlay(4); HuAudSStreamPlay(4);
HuPrcSleep(180); HuPrcSleep(180);
} else { }
else {
var_f26 = temp_r31->unk90; var_f26 = temp_r31->unk90;
Hu3DMotionShiftSet(temp_r31->unk00, temp_r31->unk06[3], 0.0f, 2.0f, HU3D_MOTATTR_LOOP); 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) { 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) { while (TRUE) {
if (omSysExitReq == 1) { if (omSysExitReq == 1) {
WipeCreate(WIPE_MODE_OUT, WIPE_TYPE_NORMAL, 60); 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 temp_r31;
s16 var_r30; s16 var_r30;
s16 temp_r26; s16 temp_r26;
@ -1644,7 +1678,8 @@ void fn_1_7DA0(void) {
HuPrcVSleep(); HuPrcVSleep();
} }
lbl_1_bss_3E4 = 5; lbl_1_bss_3E4 = 5;
} else { }
else {
lbl_1_bss_3E4 = 5; lbl_1_bss_3E4 = 5;
} }
while (lbl_1_bss_3E4 < 6) { while (lbl_1_bss_3E4 < 6) {

View file

@ -68,14 +68,14 @@ typedef struct {
} StructData134; // Size 0x18 } StructData134; // Size 0x18
s16 fn_1_4474(void); s16 fn_1_4474(void);
void fn_1_659C(omObjData* arg0); void fn_1_659C(omObjData *arg0);
StructBss51C lbl_1_bss_51C[9]; StructBss51C lbl_1_bss_51C[9];
StructBss35C lbl_1_bss_35C[28]; StructBss35C lbl_1_bss_35C[28];
omObjData* lbl_1_bss_358; omObjData *lbl_1_bss_358;
omObjData* lbl_1_bss_354; omObjData *lbl_1_bss_354;
omObjData* lbl_1_bss_330[9]; omObjData *lbl_1_bss_330[9];
omObjData* lbl_1_bss_32C; omObjData *lbl_1_bss_32C;
HsfanimStruct00 lbl_1_bss_5C[9]; HsfanimStruct00 lbl_1_bss_5C[9];
s32 lbl_1_bss_58; s32 lbl_1_bss_58;
s32 lbl_1_bss_54; s32 lbl_1_bss_54;
@ -83,7 +83,7 @@ s32 lbl_1_bss_50;
char lbl_1_bss_4C[4]; // unused char lbl_1_bss_4C[4]; // unused
s32 lbl_1_bss_48; s32 lbl_1_bss_48;
s32 lbl_1_bss_44; s32 lbl_1_bss_44;
Process* lbl_1_bss_40; Process *lbl_1_bss_40;
s32 lbl_1_bss_3C; s32 lbl_1_bss_3C;
s32 lbl_1_bss_38; s32 lbl_1_bss_38;
s32 lbl_1_bss_34; 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_4;
s32 lbl_1_bss_0; s32 lbl_1_bss_0;
s32 lbl_1_data_0[9] = { 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), 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 }; 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_6C[9] = { 0, 0, 0, 0, 0, 0, 0, 1, 0 };
u32 lbl_1_data_90[] = { 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_BKOOPA, 8), DATA_MAKE_NUM(DATADIR_M458, 40), DATA_MAKE_NUM(DATADIR_M458, 41), DATA_MAKE_NUM(DATADIR_M458, 39) };
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_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 }; 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 // unused
float lbl_1_data_158[] = { -90.0f, 0.0f, 525.0f, 180.0f, 90.0f, 0.0f, 525.0f, 180.0f }; 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) { if (HuPadBtnDown[0] & PAD_BUTTON_B) {
Center.x = lbl_1_bss_330[0]->trans.x; Center.x = lbl_1_bss_330[0]->trans.x;
Center.y = lbl_1_bss_330[0]->trans.y; Center.y = lbl_1_bss_330[0]->trans.y;
@ -176,9 +160,10 @@ void fn_1_A0(void) {
s32 lbl_1_data_184 = -1; s32 lbl_1_data_184 = -1;
void fn_1_4C8(omObjData* arg0) { void fn_1_4C8(omObjData *arg0)
ModelData* temp_r24; {
ModelData* temp_r29; ModelData *temp_r24;
ModelData *temp_r29;
float temp_f31; float temp_f31;
float temp_f30; float temp_f30;
float var_f28; float var_f28;
@ -190,17 +175,17 @@ void fn_1_4C8(omObjData* arg0) {
float var_f22; float var_f22;
float var_f21; float var_f21;
float var_f20; float var_f20;
StructBss330Data* temp_r31; StructBss330Data *temp_r31;
s16 var_r28; s16 var_r28;
s32 temp_r27; s32 temp_r27;
s32 var_r26; s32 var_r26;
s32 var_r25; s32 var_r25;
s32 var_r23; s32 var_r23;
s32 var_r22; s32 var_r22;
StructBss330Data* temp_r21; StructBss330Data *temp_r21;
s32 var_r20; s32 var_r20;
s32 var_r19; s32 var_r19;
StructBss330Data* temp_r18; StructBss330Data *temp_r18;
s32 var_r17; s32 var_r17;
float sp180[2]; float sp180[2];
s32 spE0; s32 spE0;
@ -210,18 +195,18 @@ void fn_1_4C8(omObjData* arg0) {
s32 spD0; s32 spD0;
s32 spCC; s32 spCC;
s32 spC8; s32 spC8;
StructBss330Data* spC4; StructBss330Data *spC4;
s32 spC0; s32 spC0;
s32 spBC; s32 spBC;
StructBss330Data* spB8; StructBss330Data *spB8;
s32 spB4; s32 spB4;
u32 spB0; u32 spB0;
float spAC; float spAC;
s32 spA8; s32 spA8;
s32 spA4; s32 spA4;
s32 spA0; s32 spA0;
StructBss330Data* sp9C; StructBss330Data *sp9C;
ModelData* sp98; ModelData *sp98;
float sp94; float sp94;
float sp90; float sp90;
s32 sp8C; s32 sp8C;
@ -240,7 +225,8 @@ void fn_1_4C8(omObjData* arg0) {
} }
if (temp_r31->unk0C != -1) { if (temp_r31->unk0C != -1) {
var_r22 = (HuPadBtnDown[temp_r31->unk0C] & PAD_BUTTON_A) ? 1 : 0; var_r22 = (HuPadBtnDown[temp_r31->unk0C] & PAD_BUTTON_A) ? 1 : 0;
} else { }
else {
temp_r31->unk14 += (temp_r31->unk14 < 0x10000); temp_r31->unk14 += (temp_r31->unk14 < 0x10000);
if (temp_r31->unk14 == 30) { if (temp_r31->unk14 == 30) {
var_r22 = 1; var_r22 = 1;
@ -251,12 +237,11 @@ void fn_1_4C8(omObjData* arg0) {
var_r26 = 0; var_r26 = 0;
var_r25 = 0; var_r25 = 0;
if (temp_r31->unk0C != -1) { if (temp_r31->unk0C != -1) {
var_r26 = (HuPadStkX[temp_r31->unk0C] < -20) ? -1 var_r26 = (HuPadStkX[temp_r31->unk0C] < -20) ? -1 : (HuPadStkX[temp_r31->unk0C] > 20) ? 1 : 0;
: (HuPadStkX[temp_r31->unk0C] > 20) ? 1 : 0; var_r25 = (-HuPadStkY[temp_r31->unk0C] < -20) ? -1 : (-HuPadStkY[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; var_r22 = (HuPadBtnDown[temp_r31->unk0C] & PAD_BUTTON_A) ? 1 : 0;
} else { }
else {
if (lbl_1_bss_54 == 1) { if (lbl_1_bss_54 == 1) {
temp_r31->unk14 = rand8() % 64 + 30; temp_r31->unk14 = rand8() % 64 + 30;
} }
@ -278,16 +263,16 @@ void fn_1_4C8(omObjData* arg0) {
spCC = 0; spCC = 0;
if (var_r17 != temp_r31->unk00) { if (var_r17 != temp_r31->unk00) {
if (fabs(500.0 * temp_r31->unk3C - arg0->trans.x) < 10.0) { if (fabs(500.0 * temp_r31->unk3C - arg0->trans.x) < 10.0) {
spE0 = spDC = (arg0->trans.x < -250.0) ? -1 spE0 = spDC = (arg0->trans.x < -250.0) ? -1 : (arg0->trans.x > 250.0) ? 1 : 0;
: (arg0->trans.x > 250.0) ? 1 : 0; }
} else { else {
spE0 = (arg0->trans.x < 0.0f) ? -1 : 0; spE0 = (arg0->trans.x < 0.0f) ? -1 : 0;
spDC = spE0 + 1; spDC = spE0 + 1;
} }
if (fabs(500.0 * temp_r31->unk40 - arg0->trans.z) < 10.0) { if (fabs(500.0 * temp_r31->unk40 - arg0->trans.z) < 10.0) {
spD8 = spD4 = (arg0->trans.z < -250.0) ? -1 spD8 = spD4 = (arg0->trans.z < -250.0) ? -1 : (arg0->trans.z > 250.0) ? 1 : 0;
: (arg0->trans.z > 250.0) ? 1 : 0; }
} else { else {
spD8 = (arg0->trans.z < 0.0f) ? -1 : 0; spD8 = (arg0->trans.z < 0.0f) ? -1 : 0;
spD4 = spD8 + 1; 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) { if (var_r26 * (500.0 * temp_r31->unk3C - arg0->trans.x) < 0.0) {
temp_r31->unk3C += var_r26; 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; temp_r31->unk3C += var_r26;
} }
var_f23 = ((500.0 * temp_r31->unk3C - arg0->trans.x) / 0.25) / 1.75; 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) { if (var_r25 * (500.0 * temp_r31->unk40 - arg0->trans.z) < 0.0) {
temp_r31->unk40 += var_r25; 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; temp_r31->unk40 += var_r25;
} }
var_f22 = ((500.0 * temp_r31->unk40 - arg0->trans.z) / -0.25) / 1.75; 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.x = temp_f31;
sp1A0.z = temp_f30; sp1A0.z = temp_f30;
PSMTXRotRad(sp1D0, 'y', MTXDegToRad(CRot.y)); MTXRotRad(sp1D0, 'y', MTXDegToRad(CRot.y));
PSMTXMultVec(sp1D0, &sp1A0, &sp1A0); MTXMultVec(sp1D0, &sp1A0, &sp1A0);
temp_f31 = sp1A0.x; temp_f31 = sp1A0.x;
temp_f30 = sp1A0.z; temp_f30 = sp1A0.z;
var_f28 = sqrtf(temp_f31 * temp_f31 + temp_f30 * temp_f30); 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) { if (var_f28 < 10.0f) {
temp_r31->unk2C = temp_f31; temp_r31->unk2C = temp_f31;
temp_r31->unk34 += temp_f30; temp_r31->unk34 += temp_f30;
} else { }
else {
temp_f31 /= var_f28; temp_f31 /= var_f28;
temp_f30 /= var_f28; temp_f30 /= var_f28;
var_f28 = 10.0f; var_f28 = 10.0f;
@ -352,10 +340,12 @@ void fn_1_4C8(omObjData* arg0) {
arg0->rot.y = atan2d(temp_r31->unk2C, temp_r31->unk34); arg0->rot.y = atan2d(temp_r31->unk2C, temp_r31->unk34);
if (temp_r31->unk28 >= 8.0f) { if (temp_r31->unk28 >= 8.0f) {
var_r28 = 2; var_r28 = 2;
} else { }
else {
var_r28 = 2; var_r28 = 2;
} }
} else { }
else {
var_r28 = 0; var_r28 = 0;
} }
} }
@ -372,14 +362,13 @@ void fn_1_4C8(omObjData* arg0) {
if (lbl_1_bss_54 == 0) { if (lbl_1_bss_54 == 0) {
Hu3DModelAttrReset(arg0->model[0], HU3D_ATTR_DISPOFF); Hu3DModelAttrReset(arg0->model[0], HU3D_ATTR_DISPOFF);
if (temp_r31->unk00 < 4) { if (temp_r31->unk00 < 4) {
temp_r31->unk38 = (temp_r31->unk00 == 0) ? 0 temp_r31->unk38 = (temp_r31->unk00 == 0) ? 0 : (temp_r31->unk00 == 1) ? 2 : (temp_r31->unk00 == 2) ? 6 : 8;
: (temp_r31->unk00 == 1) ? 2
: (temp_r31->unk00 == 2) ? 6 : 8;
temp_r31->unk3C = temp_r31->unk38 % 3 - 1; temp_r31->unk3C = temp_r31->unk38 % 3 - 1;
temp_r31->unk40 = temp_r31->unk38 / 3 - 1; temp_r31->unk40 = temp_r31->unk38 / 3 - 1;
arg0->trans.x = 500.0 * temp_r31->unk3C; arg0->trans.x = 500.0 * temp_r31->unk3C;
arg0->trans.z = 500.0 * temp_r31->unk40; arg0->trans.z = 500.0 * temp_r31->unk40;
} else { }
else {
do { do {
temp_r31->unk38 = rand8() % 9; temp_r31->unk38 = rand8() % 9;
for (spC8 = 0; spC8 < temp_r31->unk00; spC8++) { 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++) { for (var_r23 = 0; var_r23 < 4; var_r23++) {
temp_r18 = lbl_1_bss_330[var_r23]->data; 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) 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) || !(fabs(500.0 * temp_r18->unk40 - lbl_1_bss_330[var_r23]->trans.z) < 1.0) || temp_r18->unk20 != 0) {
|| temp_r18->unk20 != 0)
{
break; break;
} }
} }
@ -461,7 +448,8 @@ void fn_1_4C8(omObjData* arg0) {
if (temp_r31->unk5C != 0) { if (temp_r31->unk5C != 0) {
if (arg0->trans.y < -15000.0f) { if (arg0->trans.y < -15000.0f) {
Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF);
} else { }
else {
arg0->trans.y -= 77.0f; 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 = (lbl_1_bss_54 - 210) / 4.0;
temp_f26 = (temp_f26 > 1.0f) ? 1.0f : temp_f26; temp_f26 = (temp_f26 > 1.0f) ? 1.0f : temp_f26;
espAttrReset(lbl_1_data_24[temp_r31->unk38], HUSPR_ATTR_DISPOFF); espAttrReset(lbl_1_data_24[temp_r31->unk38], HUSPR_ATTR_DISPOFF);
espPosSet(lbl_1_data_24[temp_r31->unk38], espPosSet(lbl_1_data_24[temp_r31->unk38], 290.0f + spB4 * sp194[spB0],
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])); 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); 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) { if (temp_r31->unk08 == -1 && lbl_1_bss_54 == 1) {
HuAudFXPlay(0x3A); HuAudFXPlay(0x3A);
} }
} else if (arg0->trans.y < -40000.0f) { }
else if (arg0->trans.y < -40000.0f) {
Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(arg0->model[0], HU3D_ATTR_DISPOFF);
} else { }
else {
arg0->trans.y -= 77.0f; arg0->trans.y -= 77.0f;
} }
break; break;
@ -549,7 +538,8 @@ void fn_1_4C8(omObjData* arg0) {
temp_r31->unk1C++; temp_r31->unk1C++;
if (temp_r31->unk1C <= 60) { if (temp_r31->unk1C <= 60) {
arg0->rot.y = -180.0 * (temp_r31->unk1C / 60.0); arg0->rot.y = -180.0 * (temp_r31->unk1C / 60.0);
} else { }
else {
Hu3DMotionTimeSet(arg0->model[0], 120.0f); Hu3DMotionTimeSet(arg0->model[0], 120.0f);
var_r28 = 0; var_r28 = 0;
temp_r31->unk18 = 0; temp_r31->unk18 = 0;
@ -583,22 +573,25 @@ void fn_1_4C8(omObjData* arg0) {
if (temp_r31->unk1C < 180) { if (temp_r31->unk1C < 180) {
var_f20 = 0.0f; var_f20 = 0.0f;
var_f21 = 1.0f; var_f21 = 1.0f;
} else { }
else {
var_f20 = 1.0f; var_f20 = 1.0f;
var_f21 = 0.5f; 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; temp_r24->scale.y = temp_r24->scale.z = temp_r24->scale.x;
if (temp_r31->unk1C < 180) { if (temp_r31->unk1C < 180) {
temp_r31->unk1C += 6; temp_r31->unk1C += 6;
} else { }
else {
temp_r31->unk1C += 18; temp_r31->unk1C += 18;
} }
if (temp_r31->unk1C >= 360) { if (temp_r31->unk1C >= 360) {
temp_r31->unk1C = 360; temp_r31->unk1C = 360;
Hu3DModelRotSet(arg0->model[1], 0.0f, 0.0f, 0.0f); Hu3DModelRotSet(arg0->model[1], 0.0f, 0.0f, 0.0f);
} }
} else { }
else {
sp98 = &Hu3DData[arg0->model[1]]; sp98 = &Hu3DData[arg0->model[1]];
temp_r31->unk1C += 4; temp_r31->unk1C += 4;
if (temp_r31->unk1C > 720) { if (temp_r31->unk1C > 720) {
@ -640,7 +633,8 @@ void fn_1_4C8(omObjData* arg0) {
temp_r31->unk58 = 150; temp_r31->unk58 = 150;
} }
Hu3DModelAttrSet(arg0->model[1], HU3D_ATTR_DISPOFF); Hu3DModelAttrSet(arg0->model[1], HU3D_ATTR_DISPOFF);
} else if (temp_r27 > 8) { }
else if (temp_r27 > 8) {
if (temp_r31->unk20 == 5) { if (temp_r31->unk20 == 5) {
if (Hu3DMotionTimeGet(arg0->model[0]) >= Hu3DMotionMaxTimeGet(arg0->model[0])) { if (Hu3DMotionTimeGet(arg0->model[0]) >= Hu3DMotionMaxTimeGet(arg0->model[0])) {
var_r28 = 0; var_r28 = 0;
@ -667,12 +661,14 @@ void fn_1_4C8(omObjData* arg0) {
temp_r31->unk18 = 0; temp_r31->unk18 = 0;
temp_r31->unk1C = 0; temp_r31->unk1C = 0;
} }
} else { }
else {
if (temp_r27 < 4) { if (temp_r27 < 4) {
temp_r29->pos.y += 10.0f + 0.5f * temp_r27; temp_r29->pos.y += 10.0f + 0.5f * temp_r27;
temp_r29->scale.x += 0.1f * sind(4.0f * 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; temp_r29->scale.y = temp_r29->scale.z = temp_r29->scale.x;
} else { }
else {
var_f24 = 255 - (temp_r27 << 5); var_f24 = 255 - (temp_r27 << 5);
var_f24 = var_f24 * (1.0f / 255); var_f24 = var_f24 * (1.0f / 255);
Hu3DModelTPLvlSet(arg0->model[1], var_f24); Hu3DModelTPLvlSet(arg0->model[1], var_f24);
@ -734,13 +730,11 @@ void fn_1_4C8(omObjData* arg0) {
var_r28 = temp_r31->unk24; var_r28 = temp_r31->unk24;
} }
if (var_r28 >= 0 && var_r28 != temp_r31->unk20) { if (var_r28 >= 0 && var_r28 != temp_r31->unk20) {
Hu3DMotionShiftSet(arg0->model[0], Hu3DMotionShiftSet(arg0->model[0], arg0->motion[var_r28], lbl_1_data_EC[var_r28],
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], (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 : (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->unk20 = var_r28;
} }
temp_r31->unk58 -= (temp_r31->unk58 > -1); 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_1BC = 100.0f;
float lbl_1_data_1C0 = -59.0f; float lbl_1_data_1C0 = -59.0f;
void fn_1_3264(omObjData* arg0) { void fn_1_3264(omObjData *arg0)
{
float temp_f29; float temp_f29;
float var_f31; float var_f31;
float temp_f26; float temp_f26;
float temp_f27; float temp_f27;
float temp_f28; float temp_f28;
StructBss330Data* spC[9]; StructBss330Data *spC[9];
ModelData* temp_r29; ModelData *temp_r29;
ModelData* temp_r28; ModelData *temp_r28;
s32 var_r27; s32 var_r27;
s32 i; s32 i;
s32 j; s32 j;
@ -807,10 +802,8 @@ void fn_1_3264(omObjData* arg0) {
} }
for (i = 0; i < 9; i++) { for (i = 0; i < 9; i++) {
temp_r28 = &Hu3DData[lbl_1_bss_32C->model[i + 1]]; temp_r28 = &Hu3DData[lbl_1_bss_32C->model[i + 1]];
Hu3DModelPosSet(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),
(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));
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++) { for (j = 0; j < 9; j++) {
if (i == spC[j]->unk38) { 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); 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; s32 var_r26 = lbl_1_data_1B4;
float sp30[][6] = { 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 },
{ 3500.0f, 0.0f, 100.0f, 0.0f, -59.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 },
{ 3200.0f, 0.0f, 100.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 } };
{ 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) { if (lbl_1_bss_38 != -1 && lbl_1_bss_38 != 9) {
sp30[5][1] = lbl_1_bss_330[lbl_1_bss_38]->trans.x; 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) { if (lbl_1_bss_1C == 0) {
lbl_1_bss_20 = 1.0 - 0.95 * (1.0f - lbl_1_bss_20); lbl_1_bss_20 = 1.0 - 0.95 * (1.0f - lbl_1_bss_20);
var_f31 = lbl_1_bss_20; var_f31 = lbl_1_bss_20;
} else { }
else {
lbl_1_bss_20 += 0.008333333333333333; lbl_1_bss_20 += 0.008333333333333333;
lbl_1_bss_20 = (lbl_1_bss_20 > 1.0f) ? 1.0f : lbl_1_bss_20; 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); 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.unk10 = 2.0 * (rand8() / 255.0) - 1.0;
lbl_1_data_134.unk14 = 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; 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); } while (sqrtf(temp_f28) < 0.75);
} }
lbl_1_data_134.unk04 = (lbl_1_data_134.unk04 > 24) ? 24 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 > 0) ? lbl_1_data_134.unk04 : 0;
temp_f26 = lbl_1_data_134.unk08; temp_f26 = lbl_1_data_134.unk08;
temp_f27 = lbl_1_data_134.unk0C; temp_f27 = lbl_1_data_134.unk0C;
temp_f26 *= lbl_1_data_134.unk04 * 2; temp_f26 *= lbl_1_data_134.unk04 * 2;
temp_f27 *= 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.unk00 = !lbl_1_data_134.unk00;
lbl_1_data_134.unk04 = (lbl_1_data_134.unk04 > 24) ? 23 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 - 1 > 0) ? (lbl_1_data_134.unk04 - 1) : 0;
Center.x = 0.0f; Center.x = 0.0f;
Center.y = 100.0f + temp_f27; Center.y = 100.0f + temp_f27;
} }
} }
s16 fn_1_4474(void) { s16 fn_1_4474(void)
AnimData* var_r29; {
void* var_r28; AnimData *var_r29;
void *var_r28;
s16 var_r31; s16 var_r31;
s16 var_r30; s16 var_r30;
HsfanimStruct00 sp8 = { 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,
0x96, { { 0xFF, 0xFF, 0x20, 0xFF }, { 0xFF, 0xFF, 0x00, 0xFF }, { 0xFF, 0xFF, 0x80, 0xFF }, { 0xFF, 0xFF, 0xFF, 0xFF } },
{ 0x00, 0x00 }, { { 0xFF, 0xFF, 0xFF, 0x00 }, { 0xFF, 0xFF, 0xFF, 0x00 }, { 0xFF, 0xFF, 0xFF, 0x00 }, { 0xFF, 0xFF, 0xFF, 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; lbl_1_bss_5C[lbl_1_bss_58] = sp8;
var_r28 = HuDataSelHeapReadNum(DATA_MAKE_NUM(DATADIR_BOARD, 107), MEMORY_DEFAULT_NUM, HEAP_DATA); 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; return var_r31;
} }
void fn_1_45F8(omObjData* arg0) { void fn_1_45F8(omObjData *arg0)
StructBss330Data* sp14[9]; {
StructBss330Data *sp14[9];
float spC[2]; float spC[2];
s32 sp8; s32 sp8;
s32 var_r29; s32 var_r29;
@ -974,15 +942,8 @@ void fn_1_45F8(omObjData* arg0) {
s32 i; s32 i;
for (i = 0; i < 28; i++) { for (i = 0; i < 28; i++) {
s32 sp38[] = { s32 sp38[] = { 0x7F1, 0x7F2, 0x7F7, 0x7F8, 0x7F9, 0x7FA, 0x7FB, 0x7FC, 0x7FD, 0x7FE, 0x7FF, 0x800, 0x801, 0x802, 0x803, 0x804, 0x7FB, 0x7FC,
0x7F1, 0x7F2, 0x7F7, 0x7F8, 0x7FD, 0x7FE, 0x7FF, 0x800, 0x801, 0x802, 0x803, 0x804, 0x7FB, 0x7FC };
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) { if (lbl_1_bss_35C[i].unk00 > 3) {
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) { if (lbl_1_bss_51C[sp14[i]->unk38].unk0C != 0) {
sp14[i]->unk18 = 3; sp14[i]->unk18 = 3;
sp14[i]->unk1C = 0; sp14[i]->unk1C = 0;
} else { }
else {
sp14[i]->unk5C = 1; sp14[i]->unk5C = 1;
} }
} }
@ -1082,7 +1044,8 @@ void fn_1_45F8(omObjData* arg0) {
if (var_r29 >= 9 || lbl_1_bss_0 == 0) { if (var_r29 >= 9 || lbl_1_bss_0 == 0) {
MGSeqParamSet(lbl_1_data_14E, 2, -1); MGSeqParamSet(lbl_1_data_14E, 2, -1);
lbl_1_data_14E = -1; lbl_1_data_14E = -1;
} else { }
else {
lbl_1_bss_0 -= (lbl_1_bss_0 > 0); lbl_1_bss_0 -= (lbl_1_bss_0 > 0);
MGSeqParamSet(lbl_1_data_14E, 1, (lbl_1_bss_0 + 59) / 60); 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_50 = 1007;
lbl_1_bss_54 = 0; lbl_1_bss_54 = 0;
} }
} else { }
else {
lbl_1_bss_50 = 1005; lbl_1_bss_50 = 1005;
lbl_1_bss_54 = 0; 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) {
if (lbl_1_bss_38 < 9) { if (lbl_1_bss_38 < 9) {
HuAudSStreamPlay(1); HuAudSStreamPlay(1);
} else { }
else {
HuAudSStreamPlay(1); HuAudSStreamPlay(1);
} }
if (lbl_1_bss_38 < 4 && sp14[lbl_1_bss_38]->unk04 != -1) { if (lbl_1_bss_38 < 4 && sp14[lbl_1_bss_38]->unk04 != -1) {
GWPlayerCoinWinSet(sp14[lbl_1_bss_38]->unk04, 10); GWPlayerCoinWinSet(sp14[lbl_1_bss_38]->unk04, 10);
} }
} else if (lbl_1_bss_38 == 9) { }
else if (lbl_1_bss_38 == 9) {
HuAudSStreamPlay(4); HuAudSStreamPlay(4);
} }
} }
@ -1175,8 +1141,9 @@ void fn_1_45F8(omObjData* arg0) {
} }
} }
void fn_1_53A0(omObjData* arg0) { void fn_1_53A0(omObjData *arg0)
StructBss330Data* sp50[9]; {
StructBss330Data *sp50[9];
s32 i; s32 i;
for (i = 0; i < 9; 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].unk04 = i / 3;
lbl_1_bss_51C[i].unk08 = 0.0f; lbl_1_bss_51C[i].unk08 = 0.0f;
lbl_1_bss_51C[i].unk0C = 1; lbl_1_bss_51C[i].unk0C = 1;
Hu3DModelPosSet(lbl_1_bss_32C->model[i + 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));
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); Hu3DModelScaleSet(lbl_1_bss_32C->model[i + 1], 1.6666666f, 1.6666666f, 1.6666666f);
Hu3DModelAttrSet(arg0->model[i + 1], HU3D_MOTATTR_PAUSE); Hu3DModelAttrSet(arg0->model[i + 1], HU3D_MOTATTR_PAUSE);
Hu3DModelShadowMapSet(arg0->model[i + 1]); Hu3DModelShadowMapSet(arg0->model[i + 1]);
@ -1215,22 +1179,13 @@ void fn_1_53A0(omObjData* arg0) {
arg0->func = fn_1_3264; arg0->func = fn_1_3264;
} }
s32 lbl_1_data_1E4[] = { 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, 19), 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, 20), DATA_MAKE_NUM(DATADIR_M458, 26), DATA_MAKE_NUM(DATADIR_M458, 27), DATA_MAKE_NUM(DATADIR_M458, 28), DATA_MAKE_NUM(DATADIR_M458, 29) };
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) { void fn_1_5850(omObjData *arg0)
StructBss330Data* temp_r31; {
StructBss330Data *temp_r31;
s32 sp10[] = { 0, 1, 2, 3 }; s32 sp10[] = { 0, 1, 2, 3 };
s32 var_r25; s32 var_r25;
s32 var_r28; s32 var_r28;
@ -1246,13 +1201,15 @@ void fn_1_5850(omObjData* arg0) {
for (i = 0; i <= temp_r31->unk00 - 4; i++) { for (i = 0; i <= temp_r31->unk00 - 4; i++) {
do { do {
var_r28++; 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->unk08 = (var_r28 == 8) ? -1 : var_r28;
temp_r31->unk0C = -1; temp_r31->unk0C = -1;
temp_r31->unk04 = -1; temp_r31->unk04 = -1;
temp_r31->unk10 = 0; temp_r31->unk10 = 0;
} else { }
else {
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
for (j = 0; j < 4; j++) { for (j = 0; j < 4; j++) {
if (i == GWPlayerCfg[j].group) { if (i == GWPlayerCfg[j].group) {
@ -1277,13 +1234,15 @@ void fn_1_5850(omObjData* arg0) {
temp_r31->unk48 = -1; temp_r31->unk48 = -1;
if (temp_r31->unk08 != -1) { if (temp_r31->unk08 != -1) {
arg0->model[0] = CharModelCreate(temp_r31->unk08, 4); arg0->model[0] = CharModelCreate(temp_r31->unk08, 4);
} else { }
else {
arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_BKOOPA, 7)); arg0->model[0] = Hu3DModelCreateFile(DATA_MAKE_NUM(DATADIR_BKOOPA, 7));
} }
omSetTra(arg0, 0.0f, temp_r31->unk00 == 0 ? 0 : 300, 0.0f); omSetTra(arg0, 0.0f, temp_r31->unk00 == 0 ? 0 : 300, 0.0f);
if (temp_r31->unk08 != -1) { if (temp_r31->unk08 != -1) {
omSetSca(arg0, 2.5f, 2.5f, 2.5f); omSetSca(arg0, 2.5f, 2.5f, 2.5f);
} else { }
else {
omSetSca(arg0, 2.0f, 2.0f, 2.0f); omSetSca(arg0, 2.0f, 2.0f, 2.0f);
} }
for (i = 0; i < 9; i++) { 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)) { 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)); 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]); 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++) { for (i = 0; i < 9; i++) {
if (temp_r31->unk00 == 0) { if (temp_r31->unk00 == 0) {
arg0->model[i + 2] = Hu3DModelCreateFile(lbl_1_data_1E4[i]); 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]); arg0->model[i + 2] = Hu3DModelLink(lbl_1_bss_330[0]->model[i + 2]);
} }
Hu3DMotionTimeSet(arg0->model[i + 2], 10.0f); Hu3DMotionTimeSet(arg0->model[i + 2], 10.0f);
@ -1328,7 +1289,8 @@ void fn_1_5850(omObjData* arg0) {
arg0->func = fn_1_4C8; 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_50 = 1000;
lbl_1_bss_54 = 0; lbl_1_bss_54 = 0;
lbl_1_bss_48 = 0; lbl_1_bss_48 = 0;
@ -1338,8 +1300,9 @@ void fn_1_60A4(omObjData* arg0) {
arg0->func = fn_1_45F8; arg0->func = fn_1_45F8;
} }
void ObjectSetup(void) { void ObjectSetup(void)
omObjData* var_r30; {
omObjData *var_r30;
s32 i; s32 i;
OSReport("******* M463 ObjectSetup *********\n"); 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); lbl_1_bss_358 = omAddObjEx(lbl_1_bss_40, 103, 0, 0, -1, fn_1_60A4);
} }
void fn_1_659C(omObjData* arg0) { void fn_1_659C(omObjData *arg0)
StructBss330Data* spC[9]; {
void* sp8; StructBss330Data *spC[9];
void *sp8;
s32 var_r31; s32 var_r31;
s32 var_r30; 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]); lbl_1_bss_864[var_r31] = Hu3DParManCreate(temp_r28, 0x1F4, &lbl_1_data_168[0]);
Hu3DParManAttrSet(lbl_1_bss_864[var_r31], 0x864); Hu3DParManAttrSet(lbl_1_bss_864[var_r31], 0x864);
Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(lbl_1_bss_864[var_r31]), 1U); Hu3DParticleBlendModeSet(Hu3DParManModelIDGet(lbl_1_bss_864[var_r31]), 1U);
Hu3DParManPosSet( Hu3DParManPosSet(lbl_1_bss_864[var_r31], (100.0 * sind(36.0f * var_r31)), 0.0f, 100.0 * cosd(36.0f * var_r31));
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); 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); Hu3DModelObjMtxGet(temp_r3, lbl_1_data_D8[(var_r29 * 2) + 1], spC0);
Hu3DMtxTransGet(spC0, &sp18); Hu3DMtxTransGet(spC0, &sp18);
PSMTXInverse(sp30, sp60); MTXInverse(sp30, sp60);
Hu3DModelObjMtxGet(temp_r3, lbl_1_data_D8[(var_r29 * 2) + 1], spC0); Hu3DModelObjMtxGet(temp_r3, lbl_1_data_D8[(var_r29 * 2) + 1], spC0);
Hu3DMtxTransGet(spC0, &sp18); Hu3DMtxTransGet(spC0, &sp18);
PSMTXMultVec(sp60, &sp18, &sp18); MTXMultVec(sp60, &sp18, &sp18);
temp_f27 = atan2d(sp18.z, sp18.x); temp_f27 = atan2d(sp18.z, sp18.x);
temp_r31 = &lbl_1_bss_40[var_r29 * 2]; temp_r31 = &lbl_1_bss_40[var_r29 * 2];
@ -654,7 +653,7 @@ void fn_1_28F8(Point3d *arg0, Point3d *arg1)
cam = &Hu3DCamera[0]; cam = &Hu3DCamera[0];
C_MTXLookAt(sp18, &cam->pos, &cam->up, &cam->target); 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_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)))); 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); GXSetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_NOOP);
GXSetAlphaCompare(GX_GEQUAL, 1U, GX_AOP_AND, GX_GEQUAL, 1U); GXSetAlphaCompare(GX_GEQUAL, 1U, GX_AOP_AND, GX_GEQUAL, 1U);
GXSetZCompLoc(0U); GXSetZCompLoc(0U);
PSMTXIdentity(arg1); MTXIdentity(arg1);
GXLoadPosMtxImm(arg1, 0U); GXLoadPosMtxImm(arg1, 0U);
PSMTXInvXpose(arg1, sp90); MTXInvXpose(arg1, sp90);
GXLoadNrmMtxImm(sp90, 0); GXLoadNrmMtxImm(sp90, 0);
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); 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); GXLoadTexObj(&sp30, GX_TEXMAP0);
GXSetNumIndStages(1U); 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][0] = sp150[0][0];
sp18[0][1] = sp150[0][1]; sp18[0][1] = sp150[0][1];
sp18[0][2] = 0.0f; 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][1] = sp150[1][1];
sp18[1][2] = 0.0f; sp18[1][2] = 0.0f;
PSMTXRotRad(spF0, 0x58, -1.5707964f); MTXRotRad(spF0, 0x58, -1.5707964f);
mtxRot(spF0, 0.0f, 0.0f, 0.0f); mtxRot(spF0, 0.0f, 0.0f, 0.0f);
temp_f31 = 0.0015625f; temp_f31 = 0.0015625f;
PSMTXScale(sp120, temp_f31, temp_f31, temp_f31); MTXScale(sp120, temp_f31, temp_f31, temp_f31);
PSMTXConcat(sp120, spF0, sp150); MTXConcat(sp120, spF0, sp150);
PSMTXTrans(spC0, 0.5f, 0.0f, 0.5f); MTXTrans(spC0, 0.5f, 0.0f, 0.5f);
GXLoadTexMtxImm(sp150, 0x1EU, GX_MTX2x4); GXLoadTexMtxImm(sp150, 0x1EU, GX_MTX2x4);
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_POS, 0x1EU, 0U, 0x7DU); GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_POS, 0x1EU, 0U, 0x7DU);
GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD0, GX_TEXMAP1); GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD0, GX_TEXMAP1);

File diff suppressed because it is too large Load diff

View file

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

View file

@ -742,12 +742,12 @@ void fn_1_B0A4(s32 arg0)
} }
if (temp_r29 == 5) { 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); BoardModelMtxSet(temp_r30->unk_06[i], &sp18);
} }
if ((temp_r29 == 6) || (temp_r29 == 7)) { 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); BoardModelMtxSet(temp_r30->unk_06[i], &sp18);
} }
} }

View file

@ -1,17 +1,18 @@
#include "dolphin.h"
#include "REL/executor.h" #include "REL/executor.h"
#include "game/process.h"
#include "game/data.h"
#include "game/gamework_data.h"
#include "REL/w03Dll.h" #include "REL/w03Dll.h"
#include "dolphin.h"
#include "game/audio.h" #include "game/audio.h"
#include "game/board/main.h"
#include "game/board/model.h" #include "game/board/model.h"
#include "game/board/player.h" #include "game/board/player.h"
#include "game/board/space.h" #include "game/board/space.h"
#include "game/board/ui.h" #include "game/board/ui.h"
#include "game/data.h"
#include "game/gamework_data.h"
#include "game/hsfman.h" #include "game/hsfman.h"
#include "game/board/main.h"
#include "game/objsub.h" #include "game/objsub.h"
#include "game/process.h"
#include "ext_math.h" #include "ext_math.h"
@ -29,17 +30,16 @@ void fn_1_2818(void);
void fn_1_2A40(void); void fn_1_2A40(void);
void fn_1_2B44(void); void fn_1_2B44(void);
//data // data
s16 lbl_1_data_280 = -1; s16 lbl_1_data_280 = -1;
s16 lbl_1_data_282 = -1; s16 lbl_1_data_282 = -1;
s16 lbl_1_data_284 = -1; s16 lbl_1_data_284 = -1;
s16 lbl_1_data_286 = -1; s16 lbl_1_data_286 = -1;
s32 lbl_1_data_288 = -1; s32 lbl_1_data_288 = -1;
//BSS Extern // BSS Extern
// BSS
//BSS
s8 lbl_1_bss_6F; s8 lbl_1_bss_6F;
s8 lbl_1_bss_6E; s8 lbl_1_bss_6E;
s16 lbl_1_bss_6C; s16 lbl_1_bss_6C;
@ -48,12 +48,13 @@ s16 lbl_1_bss_68;
GXTexObj lbl_1_bss_48; GXTexObj lbl_1_bss_48;
char lbl_1_bss_44[4]; char lbl_1_bss_44[4];
char lbl_1_bss_38[12]; char lbl_1_bss_38[12];
void* lbl_1_bss_34; void *lbl_1_bss_34;
f32 lbl_1_bss_30; f32 lbl_1_bss_30;
s8 lbl_1_bss_2C; 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); BoardRollDispSet(0);
lbl_1_bss_28 = HuPrcChildCreate(&fn_1_1358, 0x2003, 0x2000, 0, boardMainProc); lbl_1_bss_28 = HuPrcChildCreate(&fn_1_1358, 0x2003, 0x2000, 0, boardMainProc);
HuPrcDestructorSet2(lbl_1_bss_28, &fn_1_152C); HuPrcDestructorSet2(lbl_1_bss_28, &fn_1_152C);
@ -65,7 +66,8 @@ void fn_1_12C8(void) {
BoardRollDispSet(1); BoardRollDispSet(1);
} }
void fn_1_1358(void) { void fn_1_1358(void)
{
s32 cur_player_index; s32 cur_player_index;
s32 unkC; s32 unkC;
@ -76,7 +78,8 @@ void fn_1_1358(void) {
if ((BoardSpaceFlagGet(0, GWPlayer[cur_player_index].space_curr) & 0x2000)) { if ((BoardSpaceFlagGet(0, GWPlayer[cur_player_index].space_curr) & 0x2000)) {
lbl_1_bss_6E = 0; lbl_1_bss_6E = 0;
lbl_1_bss_6C = lbl_1_bss_C[3]; lbl_1_bss_6C = lbl_1_bss_C[3];
} else { }
else {
lbl_1_bss_6E = 1; lbl_1_bss_6E = 1;
lbl_1_bss_6C = lbl_1_bss_C[4]; 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_1650(cur_player_index) != 0) {
if (fn_1_1D1C() != 0) { if (fn_1_1D1C() != 0) {
fn_1_1ED4(cur_player_index); fn_1_1ED4(cur_player_index);
} else { }
else {
fn_1_20E0(cur_player_index); fn_1_20E0(cur_player_index);
} }
if (lbl_1_bss_2C) { if (lbl_1_bss_2C) {
@ -106,7 +110,8 @@ void fn_1_1358(void) {
HuPrcEnd(); HuPrcEnd();
} }
void fn_1_152C(void) { void fn_1_152C(void)
{
BoardConfettiKill(); BoardConfettiKill();
if (lbl_1_data_282 != -1) { if (lbl_1_data_282 != -1) {
@ -123,7 +128,8 @@ void fn_1_152C(void) {
lbl_1_bss_28 = NULL; lbl_1_bss_28 = NULL;
} }
s32 fn_1_15E8(void) { s32 fn_1_15E8(void)
{
BoardModelVisibilitySet(lbl_1_bss_6C, 1); BoardModelVisibilitySet(lbl_1_bss_6C, 1);
if (lbl_1_data_284 != -1) { if (lbl_1_data_284 != -1) {
@ -134,7 +140,8 @@ s32 fn_1_15E8(void) {
return 1; return 1;
} }
s32 fn_1_1650(s32 arg0) { s32 fn_1_1650(s32 arg0)
{
Point3d sp38; Point3d sp38;
Point3d sp2C; Point3d sp2C;
Point3d sp20; Point3d sp20;
@ -144,14 +151,14 @@ s32 fn_1_1650(s32 arg0) {
s32 temp2; s32 temp2;
BoardPlayerIdleSet(arg0); BoardPlayerIdleSet(arg0);
if (lbl_1_bss_0->unk2) { if (lbl_1_bss_0->unk2) {
BoardWinCreate(0, MAKE_MESSID(22, 0), -1); BoardWinCreate(0, MAKE_MESSID(22, 0), -1);
BoardWinWait(); BoardWinWait();
BoardWinKill(); BoardWinKill();
return 0; return 0;
} }
temp2 = BoardSpaceLinkFlagSearch(0, GWPlayer[arg0].space_curr, 0x02000000); temp2 = BoardSpaceLinkFlagSearch(0, GWPlayer[arg0].space_curr, 0x02000000);
BoardSpacePosGet(0, temp2, &sp38); BoardSpacePosGet(0, temp2, &sp38);
BoardPlayerPosGet(arg0, &sp2C); BoardPlayerPosGet(arg0, &sp2C);
@ -170,14 +177,14 @@ s32 fn_1_1650(s32 arg0) {
while (GWPlayer[arg0].moving) { while (GWPlayer[arg0].moving) {
HuPrcVSleep(); HuPrcVSleep();
} }
BoardStatusShowSetAll(0); BoardStatusShowSetAll(0);
BoardPlayerMotBlendSet(arg0, 0xB4, 0xF); BoardPlayerMotBlendSet(arg0, 0xB4, 0xF);
while (BoardPlayerMotBlendCheck(arg0) == 0) { while (BoardPlayerMotBlendCheck(arg0) == 0) {
HuPrcVSleep(); HuPrcVSleep();
} }
BoardPlayerIdleSet(arg0); BoardPlayerIdleSet(arg0);
BoardWinCreate(2, MAKE_MESSID(22, 1), 2); BoardWinCreate(2, MAKE_MESSID(22, 1), 2);
BoardWinWait(); BoardWinWait();
@ -187,7 +194,8 @@ s32 fn_1_1650(s32 arg0) {
if (GWPlayer[arg0].com) { if (GWPlayer[arg0].com) {
if (BoardRandMod(0x64) > 0x32U) { if (BoardRandMod(0x64) > 0x32U) {
BoardComKeySetLeft(); BoardComKeySetLeft();
} else { }
else {
BoardComKeySetRight(); BoardComKeySetRight();
} }
} }
@ -200,56 +208,35 @@ s32 fn_1_1650(s32 arg0) {
BoardMusStart(1, 0x19, 0x7F, 0); BoardMusStart(1, 0x19, 0x7F, 0);
HuAudFXPlay(0x435); HuAudFXPlay(0x435);
sp8.y = BoardModelRotYGet(lbl_1_bss_6C); sp8.y = BoardModelRotYGet(lbl_1_bss_6C);
while (BoardDAngleCalcRange(&sp8.y, 180.0f, 2.0f) == 0) { while (BoardDAngleCalcRange(&sp8.y, 180.0f, 2.0f) == 0) {
BoardModelRotYSet(lbl_1_bss_6C, sp8.y); BoardModelRotYSet(lbl_1_bss_6C, sp8.y);
HuPrcVSleep(); HuPrcVSleep();
} }
HuAudFXPlay(0x445); HuAudFXPlay(0x445);
BoardModelRotYSet(lbl_1_bss_6C, 180.0f); BoardModelRotYSet(lbl_1_bss_6C, 180.0f);
while (BoardMusStatusGet(1) != 0) { while (BoardMusStatusGet(1) != 0) {
HuPrcVSleep(); HuPrcVSleep();
} }
return 1; return 1;
} }
s32 lbl_1_data_290[] = { 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_MARIOMOT, 98), DATA_MAKE_NUM(DATADIR_YOSHIMOT, 98), DATA_MAKE_NUM(DATADIR_WARIOMOT, 98), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 98),
DATA_MAKE_NUM(DATADIR_LUIGIMOT, 98), DATA_MAKE_NUM(DATADIR_DAISYMOT, 98), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 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[] = { 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_MARIOMOT, 51), DATA_MAKE_NUM(DATADIR_YOSHIMOT, 51), DATA_MAKE_NUM(DATADIR_WARIOMOT, 51), DATA_MAKE_NUM(DATADIR_DONKEYMOT, 51),
DATA_MAKE_NUM(DATADIR_LUIGIMOT, 51), DATA_MAKE_NUM(DATADIR_DAISYMOT, 51), DATA_MAKE_NUM(DATADIR_WALUIGIMOT, 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[] = { s32 lbl_1_data_2D0[] = { 0x00000125, 0x00000165, 0x000001A5, 0x000001E5, 0x00000225, 0x00000265, 0x000002A5, 0x000002E5 };
0x00000125, 0x00000165, 0x000001A5,
0x000001E5, 0x00000225, 0x00000265,
0x000002A5, 0x000002E5
};
s32 lbl_1_data_2F0[] = { s32 lbl_1_data_2F0[] = { 0x0000012E, 0x0000016E, 0x000001AE, 0x000001EE, 0x0000022E, 0x0000026E, 0x000002AE, 0x000002EE };
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_r30;
s32 temp_r5; s32 temp_r5;
s32 temp_r5_2; s32 temp_r5_2;
@ -263,7 +250,8 @@ void fn_1_19DC(s32 arg0, s32 arg1) {
lbl_1_bss_6A = 8; lbl_1_bss_6A = 8;
lbl_1_bss_68 = lbl_1_data_282; lbl_1_bss_68 = lbl_1_data_282;
var_r29 = lbl_1_data_2F0[GWPlayer[arg0].character]; var_r29 = lbl_1_data_2F0[GWPlayer[arg0].character];
} else { }
else {
lbl_1_bss_6A = 7; lbl_1_bss_6A = 7;
lbl_1_bss_68 = 1; lbl_1_bss_68 = 1;
var_r29 = lbl_1_data_2D0[GWPlayer[arg0].character]; 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) { while (BoardPlayerMotionEndCheck(arg0) == 0) {
HuPrcVSleep(); HuPrcVSleep();
} }
HuPrcSleep(60); HuPrcSleep(60);
if (arg1 != 0) { if (arg1 != 0) {
BoardPlayerMotionShiftSet(arg0, lbl_1_bss_68, 0.0f, 8.0f, HU3D_MOTATTR_NONE); BoardPlayerMotionShiftSet(arg0, lbl_1_bss_68, 0.0f, 8.0f, HU3D_MOTATTR_NONE);
HuPrcSleep(9); 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 sp34;
s32 sp30; s32 sp30;
s32 sp2C; s32 sp2C;
@ -330,11 +318,7 @@ s32 fn_1_1D1C(void) {
s32 maxTurn; s32 maxTurn;
s32 sp8[3] = { 70, 50, 45 }; s32 sp8[3] = { 70, 50, 45 };
s32 sp14[3][3] = { s32 sp14[3][3] = { { 3, 5, 22 }, { 5, 10, 35 }, { 5, 15, 35 } };
{3, 5, 22},
{5, 10, 35},
{5, 15, 35}
};
while (BoardMusStatusGet(1) != 0) { while (BoardMusStatusGet(1) != 0) {
HuPrcVSleep(); HuPrcVSleep();
@ -352,23 +336,26 @@ s32 fn_1_1D1C(void) {
} }
modRand = BoardRandMod(100); modRand = BoardRandMod(100);
if (modRand < sp8[var_r31] ) { if (modRand < sp8[var_r31]) {
return 1; return 1;
} }
modRand2 = BoardRandMod(100 - sp8[var_r31]); modRand2 = BoardRandMod(100 - sp8[var_r31]);
if (modRand2 < sp14[var_r31][0]) { if (modRand2 < sp14[var_r31][0]) {
lbl_1_bss_2C = 3; lbl_1_bss_2C = 3;
} else if (modRand2 < sp14[var_r31][1]) { }
else if (modRand2 < sp14[var_r31][1]) {
lbl_1_bss_2C = 2; lbl_1_bss_2C = 2;
} else { }
else {
lbl_1_bss_2C = 1; lbl_1_bss_2C = 1;
} }
return 0; return 0;
} }
void fn_1_1ED4(s32 arg0) { void fn_1_1ED4(s32 arg0)
{
Point3d spC; Point3d spC;
f32 sp8; f32 sp8;
@ -383,12 +370,12 @@ void fn_1_1ED4(s32 arg0) {
spC.y += 700.0f; spC.y += 700.0f;
BoardConfettiCreate(&spC, 0x64, 300.0f); BoardConfettiCreate(&spC, 0x64, 300.0f);
sp8 = BoardModelRotYGet(lbl_1_bss_6C); sp8 = BoardModelRotYGet(lbl_1_bss_6C);
while (BoardDAngleCalcRange(&sp8, 0.0f, 30.0f) == 0) { while (BoardDAngleCalcRange(&sp8, 0.0f, 30.0f) == 0) {
BoardModelRotYSet(lbl_1_data_284, sp8); BoardModelRotYSet(lbl_1_data_284, sp8);
HuPrcVSleep(); HuPrcVSleep();
} }
omVibrate(arg0, 0xC, 4, 2); omVibrate(arg0, 0xC, 4, 2);
BoardMusStart(1, 0x1A, 0x7F, 0); BoardMusStart(1, 0x1A, 0x7F, 0);
BoardModelRotYSet(lbl_1_data_284, 0.0f); BoardModelRotYSet(lbl_1_data_284, 0.0f);
@ -399,7 +386,7 @@ void fn_1_1ED4(s32 arg0) {
} }
BoardPlayerIdleSet(arg0); BoardPlayerIdleSet(arg0);
while (BoardMusStatusGet(1) != 0) { while (BoardMusStatusGet(1) != 0) {
HuPrcVSleep(); HuPrcVSleep();
} }
@ -411,7 +398,8 @@ void fn_1_1ED4(s32 arg0) {
BoardConfettiStop(); BoardConfettiStop();
} }
void fn_1_20E0(s32 arg0) { void fn_1_20E0(s32 arg0)
{
Point3d sp24; Point3d sp24;
Point3d sp18; Point3d sp18;
Point3d spC; Point3d spC;
@ -436,28 +424,28 @@ void fn_1_20E0(s32 arg0) {
omVibrate(arg0, 0xC, 4, 2); omVibrate(arg0, 0xC, 4, 2);
BoardModelRotYSet(lbl_1_data_284, 0.0f); BoardModelRotYSet(lbl_1_data_284, 0.0f);
BoardModelRotYSet(lbl_1_bss_6C, 0.0f); BoardModelRotYSet(lbl_1_bss_6C, 0.0f);
while (BoardFilterFadePauseCheck() == 0) { while (BoardFilterFadePauseCheck() == 0) {
HuPrcVSleep(); HuPrcVSleep();
} }
BoardMusStart(1, 0x1B, 0x7F, 0); BoardMusStart(1, 0x1B, 0x7F, 0);
HuAudFXPlay(0x44A); HuAudFXPlay(0x44A);
fn_1_2A40(); fn_1_2A40();
lbl_1_bss_30 = 0.0f; lbl_1_bss_30 = 0.0f;
while (lbl_1_bss_30 < 128.0f) { while (lbl_1_bss_30 < 128.0f) {
HuPrcVSleep(); HuPrcVSleep();
lbl_1_bss_30 += 12.0f; lbl_1_bss_30 += 12.0f;
} }
if (lbl_1_bss_30 > 128.0f) { if (lbl_1_bss_30 > 128.0f) {
lbl_1_bss_30 = 128.0f; lbl_1_bss_30 = 128.0f;
} }
HuPrcSleep(40); HuPrcSleep(40);
lbl_1_bss_30 = 128.0f; lbl_1_bss_30 = 128.0f;
while (lbl_1_bss_30 > 0.0f) { while (lbl_1_bss_30 > 0.0f) {
HuPrcVSleep(); HuPrcVSleep();
lbl_1_bss_30 -= 12.0f; 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); BoardCameraMotionStartEx(-1, NULL, NULL, 1360.0f, -1.0f, 13);
BoardCameraMotionWait(); BoardCameraMotionWait();
} }
BoardPlayerIdleSet(arg0); BoardPlayerIdleSet(arg0);
while (BoardMusStatusGet(1) != 0) { while (BoardMusStatusGet(1) != 0) {
HuPrcVSleep(); HuPrcVSleep();
} }
BoardAudSeqPause(0, 0, 1000); BoardAudSeqPause(0, 0, 1000);
BoardWinCreate(2, MAKE_MESSID(22, 5), 2); BoardWinCreate(2, MAKE_MESSID(22, 5), 2);
BoardWinWait(); BoardWinWait();
@ -504,16 +492,16 @@ void fn_1_20E0(s32 arg0) {
for (var_f31 = 100.0f; var_f31 > 0.0f; var_f31 -= 2.0f) { for (var_f31 = 100.0f; var_f31 > 0.0f; var_f31 -= 2.0f) {
BoardCameraQuakeSet(0xA, var_f31); BoardCameraQuakeSet(0xA, var_f31);
HuPrcVSleep(); HuPrcVSleep();
} }
BoardCameraQuakeReset(); BoardCameraQuakeReset();
if (lbl_1_data_288 != 0) { if (lbl_1_data_288 != 0) {
HuAudFXStop(lbl_1_data_288); HuAudFXStop(lbl_1_data_288);
lbl_1_data_288 = -1; lbl_1_data_288 = -1;
} }
fn_1_2818(); fn_1_2818();
omVibrate(arg0, 0xC, 0xC, 0); omVibrate(arg0, 0xC, 0xC, 0);
HuAudFXPlay(0x438); HuAudFXPlay(0x438);
@ -530,7 +518,8 @@ void fn_1_20E0(s32 arg0) {
HuPrcSleep(0x3C); HuPrcSleep(0x3C);
} }
void fn_1_26E0(s32 arg0) { void fn_1_26E0(s32 arg0)
{
Point3d sp20; Point3d sp20;
Point3d sp14; Point3d sp14;
Point3d sp8; Point3d sp8;
@ -555,11 +544,12 @@ void fn_1_26E0(s32 arg0) {
BoardPlayerIdleSet(arg0); BoardPlayerIdleSet(arg0);
} }
void fn_1_2818(void) { void fn_1_2818(void)
{
s16 temp_r29; s16 temp_r29;
s16 temp_r30; s16 temp_r30;
s16 j; s16 j;
s16 sp8[3] = {0x0002, 0x003E, 0x007A}; s16 sp8[3] = { 0x0002, 0x003E, 0x007A };
temp_r29 = (4 - lbl_1_bss_2C) * 60; temp_r29 = (4 - lbl_1_bss_2C) * 60;
BoardModelMotionStart(lbl_1_bss_C[1], 0, 0); 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++) { for (j = 0; j < ARRAY_COUNT(sp8); j++) {
if (temp_r30 == sp8[j]) { if (temp_r30 == sp8[j]) {
HuAudFXPlay(0x446); HuAudFXPlay(0x446);
} }
} }
HuPrcVSleep(); HuPrcVSleep();
} else { }
else {
break; break;
} }
} }
BoardModelAttrSet(lbl_1_bss_C[1], 0x40000002); BoardModelAttrSet(lbl_1_bss_C[1], 0x40000002);
HuPrcSleep(0x3C); HuPrcSleep(0x3C);
} }
s32 fn_1_2930(s32 arg0) { s32 fn_1_2930(s32 arg0)
{
lbl_1_bss_0->unk0--; lbl_1_bss_0->unk0--;
if (lbl_1_bss_0->unk0 <= 0) { if (lbl_1_bss_0->unk0 <= 0) {
@ -605,14 +597,16 @@ s32 fn_1_2930(s32 arg0) {
return 0; return 0;
} }
void fn_1_2A40(void) { void fn_1_2A40(void)
{
lbl_1_bss_30 = 0.0f; lbl_1_bss_30 = 0.0f;
lbl_1_bss_34 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x96000, MEMORY_DEFAULT_NUM); 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); Hu3DModelLayerSet(lbl_1_data_286, 3);
} }
void fn_1_2AC0(void) { void fn_1_2AC0(void)
{
if (lbl_1_bss_34) { if (lbl_1_bss_34) {
HuMemDirectFree(lbl_1_bss_34); HuMemDirectFree(lbl_1_bss_34);
lbl_1_bss_34 = NULL; 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; Mtx44 sp50;
Mtx sp20; Mtx sp20;
GXColor sp14; GXColor sp14;
GXColor sp10; GXColor sp10;
GXColor spC; GXColor spC;
u8 sp8; u8 sp8;
GXColor sp1C = {0xFF, 0xFF, 0xFF, 0xFF}; GXColor sp1C = { 0xFF, 0xFF, 0xFF, 0xFF };
GXColor sp18 = {0xFF, 0xFF, 0xFF, 0xFF}; GXColor sp18 = { 0xFF, 0xFF, 0xFF, 0xFF };
f32 temp_f28 = 0.0f; f32 temp_f28 = 0.0f;
f32 temp_f30 = 640.0f; f32 temp_f30 = 640.0f;
@ -644,7 +639,7 @@ void fn_1_2B44(void) {
GXLoadTexObj(&lbl_1_bss_48, GX_TEXMAP0); GXLoadTexObj(&lbl_1_bss_48, GX_TEXMAP0);
C_MTXOrtho(sp50, temp_f27, temp_f29, temp_f28, temp_f30, 0.0f, 10.0f); C_MTXOrtho(sp50, temp_f27, temp_f29, temp_f28, temp_f30, 0.0f, 10.0f);
GXSetProjection(sp50, GX_ORTHOGRAPHIC); GXSetProjection(sp50, GX_ORTHOGRAPHIC);
PSMTXIdentity(sp20); MTXIdentity(sp20);
GXLoadPosMtxImm(sp20, 0); GXLoadPosMtxImm(sp20, 0);
GXSetCurrentMtx(0); GXSetCurrentMtx(0);
GXSetViewport(0.0f, 0.0f, temp_f30, 1.0f + temp_f29, 0.0f, 1.0f); 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 "REL/w06Dll.h"
#include "game/audio.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/data.h"
#include "game/frand.h"
#include "game/gamework_data.h" #include "game/gamework_data.h"
#include "game/hsfanim.h" #include "game/hsfanim.h"
#include "game/hsfman.h" #include "game/hsfman.h"
@ -10,15 +19,7 @@
#include "game/process.h" #include "game/process.h"
#include "game/sprite.h" #include "game/sprite.h"
#include "game/window.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 "dolphin.h"
#include "ext_math.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 s16 lbl_1_data_1B0 = -1;
static omObjData *lbl_1_data_1B4[3] = { NULL, NULL, NULL }; static omObjData *lbl_1_data_1B4[3] = { NULL, NULL, NULL };
void fn_1_D70(void) { void fn_1_D70(void)
{
Vec sp20; Vec sp20;
Vec sp14; Vec sp14;
Vec sp8; Vec sp8;
@ -157,7 +159,8 @@ void fn_1_D70(void) {
} }
} }
void fn_1_F6C(void) { void fn_1_F6C(void)
{
s32 i; s32 i;
for (i = 0; i < 3; 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); BoardRollDispSet(0);
lbl_1_bss_18 = HuPrcChildCreate(fn_1_1148, 0x2003, 0x3800, 0, boardMainProc); lbl_1_bss_18 = HuPrcChildCreate(fn_1_1148, 0x2003, 0x3800, 0, boardMainProc);
HuPrcDestructorSet2(lbl_1_bss_18, fn_1_10E4); HuPrcDestructorSet2(lbl_1_bss_18, fn_1_10E4);
@ -183,7 +187,8 @@ void fn_1_1054(void) {
BoardRollDispSet(1); BoardRollDispSet(1);
} }
static void fn_1_10E4(void) { static void fn_1_10E4(void)
{
fn_1_43DC(); fn_1_43DC();
if (lbl_1_data_1A8 != -1) { if (lbl_1_data_1A8 != -1) {
HuWinKill(lbl_1_data_1A8); HuWinKill(lbl_1_data_1A8);
@ -192,7 +197,8 @@ static void fn_1_10E4(void) {
lbl_1_bss_18 = NULL; lbl_1_bss_18 = NULL;
} }
static void fn_1_1148(void) { static void fn_1_1148(void)
{
s32 temp_r3; s32 temp_r3;
s32 temp_r31; s32 temp_r31;
@ -205,7 +211,8 @@ static void fn_1_1148(void) {
HuPrcEnd(); HuPrcEnd();
} }
static void fn_1_11B0(void) { static void fn_1_11B0(void)
{
float sp8[2]; float sp8[2];
float var_f31; float var_f31;
float var_f30; float var_f30;
@ -219,7 +226,8 @@ static void fn_1_11B0(void) {
HuWinMesSet(lbl_1_data_1A8, MAKE_MESSID(48, 25)); 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 sp38;
Vec sp2C; Vec sp2C;
Vec sp20; Vec sp20;
@ -285,7 +293,8 @@ static s32 fn_1_12A0(s32 arg0) {
return 1; return 1;
} }
static void fn_1_15CC(s32 arg0) { static void fn_1_15CC(s32 arg0)
{
s8 sp8[] = { 80, 50 }; s8 sp8[] = { 80, 50 };
s32 var_r28; s32 var_r28;
s16 temp_r26; s16 temp_r26;
@ -343,7 +352,8 @@ static void fn_1_15CC(s32 arg0) {
BoardWinCreate(2, MAKE_MESSID(48, 41), 6); BoardWinCreate(2, MAKE_MESSID(48, 41), 6);
BoardWinWait(); BoardWinWait();
BoardWinKill(); BoardWinKill();
} else { }
else {
for (var_r31 = 0; var_r31 < 3; var_r31++) { for (var_r31 = 0; var_r31 < 3; var_r31++) {
if (lbl_1_bss_30[var_r31] == 0) { if (lbl_1_bss_30[var_r31] == 0) {
lbl_1_bss_33 = var_r31; 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 sp18;
Vec spC; Vec spC;
s16 temp_r30; s16 temp_r30;
@ -420,7 +431,8 @@ static void fn_1_1BE0(s32 arg0, s32 arg1) {
fn_1_2048(-1, 4); 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])) { while (!BoardModelMotionEndCheck(lbl_1_bss_3C[arg0])) {
HuPrcVSleep(); 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 }; s8 spC[] = { 0x20, 0x40, 0x60 };
s16 sp10[] = { -100, 0, 100 }; s16 sp10[] = { -100, 0, 100 };
s32 sp8; 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 }; s8 spC[] = { 0x20, 0x40, 0x60 };
s16 sp10[] = { -100, 0, 100 }; s16 sp10[] = { -100, 0, 100 };
s32 sp8; 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 i;
s32 j; 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; Data1B4Work *temp_r30;
s32 i; 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; Data1B4Work *temp_r30;
s32 i; 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; Data1B4Work *temp_r31;
if (!lbl_1_data_1B4[arg0]) { if (!lbl_1_data_1B4[arg0]) {
@ -514,7 +532,8 @@ static s32 fn_1_2174(s32 arg0) {
return temp_r31->unk02; return temp_r31->unk02;
} }
static s16 fn_1_21CC(s32 arg0) { static s16 fn_1_21CC(s32 arg0)
{
Data1B4Work *temp_r31; Data1B4Work *temp_r31;
if (!lbl_1_data_1B4[arg0]) { if (!lbl_1_data_1B4[arg0]) {
@ -524,7 +543,8 @@ static s16 fn_1_21CC(s32 arg0) {
return temp_r31->unk06; 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; Mtx sp18;
Vec spC; Vec spC;
omObjData *temp_r3; 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.y = 0.0f;
temp_r3->rot.z = 0.0f; temp_r3->rot.z = 0.0f;
if (arg2 == 5) { if (arg2 == 5) {
PSMTXTrans(sp18, 0.0f, -50.0f, 0.0f); MTXTrans(sp18, 0.0f, -50.0f, 0.0f);
BoardModelMtxSet(temp_r31->unk06, &sp18); BoardModelMtxSet(temp_r31->unk06, &sp18);
} }
BoardModelPosSet(temp_r31->unk06, temp_r3->trans.x, temp_r3->trans.y, temp_r3->trans.z); 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); BoardModelLayerSet(temp_r31->unk06, 2);
} }
static void fn_1_243C(omObjData *arg0) { static void fn_1_243C(omObjData *arg0)
{
Vec sp14; Vec sp14;
Vec sp8; Vec sp8;
Data1B4Work *temp_r31; Data1B4Work *temp_r31;
@ -592,7 +613,8 @@ static void fn_1_243C(omObjData *arg0) {
sp8.y += 200.0f; sp8.y += 200.0f;
arg0->trans.y = (sp8.y - sp14.y) / 30.0f; arg0->trans.y = (sp8.y - sp14.y) / 30.0f;
arg0->rot.z = 0.01f; arg0->rot.z = 0.01f;
} else { }
else {
arg0->rot.z += 0.033333335f; arg0->rot.z += 0.033333335f;
if (arg0->rot.z > 1.0f) { if (arg0->rot.z > 1.0f) {
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); BoardModelPosGet(lbl_1_bss_3C[temp_r31->unk00_field2], &sp8);
arg0->trans.y = (sp8.y - sp14.y) / 30.0f; arg0->trans.y = (sp8.y - sp14.y) / 30.0f;
arg0->rot.z = 1.0f; arg0->rot.z = 1.0f;
} else { }
else {
arg0->rot.z -= 0.033333335f; arg0->rot.z -= 0.033333335f;
if (arg0->rot.z < 0.001f) { if (arg0->rot.z < 0.001f) {
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); BoardPlayerPosGet(temp_r31->unk00_field1, &sp8);
arg0->rot.x = (sp8.x - sp14.x) / 30.0f; arg0->rot.x = (sp8.x - sp14.x) / 30.0f;
arg0->rot.z = (sp8.z - sp14.z) / 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.x += arg0->rot.x;
sp14.z += arg0->rot.z; sp14.z += arg0->rot.z;
BoardModelPosSetV(temp_r31->unk06, &sp14); BoardModelPosSetV(temp_r31->unk06, &sp14);
} else { }
else {
BoardPlayerPosGet(temp_r31->unk00_field1, &sp8); BoardPlayerPosGet(temp_r31->unk00_field1, &sp8);
arg0->trans.x = sp8.x; arg0->trans.x = sp8.x;
arg0->trans.y = sp8.y; arg0->trans.y = sp8.y;
@ -669,13 +694,10 @@ static void fn_1_243C(omObjData *arg0) {
} }
} }
static s8 lbl_1_data_1C5[14] = { static s8 lbl_1_data_1C5[14] = { 1, 1, 3, 3, 2, 2, 2, 1, 2, 3, 0, 4, 5, 0 };
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_r29;
s32 var_r28; s32 var_r28;
s32 var_r30; s32 var_r30;
@ -696,24 +718,30 @@ static s32 fn_1_2A1C(s32 arg0) {
if (var_r29 > var_r28) { if (var_r29 > var_r28) {
if (var_r29 > var_r30) { if (var_r29 > var_r30) {
var_r31 = 0; var_r31 = 0;
} else if (var_r30 > var_r28) { }
else if (var_r30 > var_r28) {
var_r31 = 2; var_r31 = 2;
} else { }
else {
var_r31 = 1; var_r31 = 1;
} }
} else { }
else {
if (var_r28 > var_r30) { if (var_r28 > var_r30) {
var_r31 = 1; var_r31 = 1;
} else if (var_r30 > var_r29) { }
else if (var_r30 > var_r29) {
var_r31 = 2; var_r31 = 2;
} else { }
else {
var_r31 = 0; var_r31 = 0;
} }
} }
return var_r31; return var_r31;
} }
static void fn_1_2B60(s32 arg0) { static void fn_1_2B60(s32 arg0)
{
omObjData *temp_r3; omObjData *temp_r3;
Bss24Work *temp_r31; Bss24Work *temp_r31;
@ -728,7 +756,8 @@ static void fn_1_2B60(s32 arg0) {
temp_r31->unk02 = 1; temp_r31->unk02 = 1;
} }
static void fn_1_2C18(void) { static void fn_1_2C18(void)
{
Bss24Work *var_r27; Bss24Work *var_r27;
if (lbl_1_bss_24) { 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; Bss24Work *var_r31;
if (lbl_1_bss_24) { 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; Bss24Work *var_r31;
if (!lbl_1_bss_24) { if (!lbl_1_bss_24) {
@ -756,7 +787,8 @@ static s32 fn_1_2DD0(void) {
return var_r31->unk01; return var_r31->unk01;
} }
static u32 fn_1_2E18(Bss24Work *arg0) { static u32 fn_1_2E18(Bss24Work *arg0)
{
s32 temp_r31; s32 temp_r31;
s32 var_r30; s32 var_r30;
@ -774,7 +806,8 @@ static u32 fn_1_2E18(Bss24Work *arg0) {
return var_r30; return var_r30;
} }
static void fn_1_2EF4(omObjData *arg0) { static void fn_1_2EF4(omObjData *arg0)
{
Vec sp14; Vec sp14;
Vec sp8; Vec sp8;
float var_f30; float var_f30;
@ -794,12 +827,14 @@ static void fn_1_2EF4(omObjData *arg0) {
} }
if (lbl_1_bss_30[0] != 0) { if (lbl_1_bss_30[0] != 0) {
var_r25 = 1; var_r25 = 1;
} else { }
else {
var_r25 = 0; var_r25 = 0;
} }
if (lbl_1_bss_30[2] != 0) { if (lbl_1_bss_30[2] != 0) {
var_r26 = 1; var_r26 = 1;
} else { }
else {
var_r26 = 2; var_r26 = 2;
} }
switch (temp_r30->unk01) { 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 (lbl_1_bss_30[0] == 0 && lbl_1_bss_30[1] == 0) {
if (BoardRandMod(100) < 50) { if (BoardRandMod(100) < 50) {
var_r29 = 1; var_r29 = 1;
} else { }
else {
var_r29 = 2; var_r29 = 2;
} }
} else { }
else {
if (lbl_1_bss_30[0] == 0) { if (lbl_1_bss_30[0] == 0) {
var_r29 = 2; var_r29 = 2;
} else if (lbl_1_bss_30[1] == 0) { }
else if (lbl_1_bss_30[1] == 0) {
var_r29 = 1; 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; omObjData *temp_r3;
Bss28Work *temp_r31; 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)); 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; Bss28Work *temp_r31;
if (!lbl_1_bss_28) { 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 = OM_GET_WORK_PTR(lbl_1_bss_28, Bss28Work);
temp_r31->unk00_field1 = arg0; temp_r31->unk00_field1 = arg0;
if (arg0 != 1) { if (arg0 != 1) {
(void) 0; (void)0;
} else { }
else {
temp_r31->unk06 = 20; temp_r31->unk06 = 20;
} }
} }
static s32 fn_1_35BC(void) { static s32 fn_1_35BC(void)
{
Bss28Work *temp_r31; Bss28Work *temp_r31;
if (!lbl_1_bss_28) { if (!lbl_1_bss_28) {
@ -926,7 +968,8 @@ static s32 fn_1_35BC(void) {
return temp_r31->unk00_field1; return temp_r31->unk00_field1;
} }
static void fn_1_3604(s32 arg0) { static void fn_1_3604(s32 arg0)
{
Bss28Work *temp_r31; Bss28Work *temp_r31;
if (!lbl_1_bss_28) { 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 sp24;
Vec sp18; Vec sp18;
Vec spC; Vec spC;
@ -976,7 +1020,8 @@ static void fn_1_3698(s8 arg0) {
if (ABS(temp_f31) >= 300.0f) { if (ABS(temp_f31) >= 300.0f) {
var_f30 = 40.0f; var_f30 = 40.0f;
temp_r31->unk06 *= 2; temp_r31->unk06 *= 2;
} else { }
else {
var_f30 = 20.0f; var_f30 = 20.0f;
} }
VECSubtract(&sp18, &sp24, &spC); VECSubtract(&sp18, &sp24, &spC);
@ -986,7 +1031,8 @@ static void fn_1_3698(s8 arg0) {
BoardModelMotionSpeedSet(lbl_1_bss_C[4], 2.0f); 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 sp30;
Vec sp24; Vec sp24;
s32 sp8; s32 sp8;
@ -1012,7 +1058,8 @@ static void fn_1_3974(omObjData *arg0) {
fn_1_3560(4); fn_1_3560(4);
return; return;
} }
} else { }
else {
temp_r31->unk03++; temp_r31->unk03++;
} }
fn_1_3560(1); 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; Bss2CWork *temp_r31;
lbl_1_bss_1C = 0; lbl_1_bss_1C = 0;
@ -1074,7 +1122,8 @@ static void fn_1_4070(void) {
temp_r31->unk04 = MGSeqTimerCreateXY(temp_r31->unk01, 288, 64); temp_r31->unk04 = MGSeqTimerCreateXY(temp_r31->unk01, 288, 64);
} }
static void fn_1_4124(void) { static void fn_1_4124(void)
{
Bss2CWork *temp_r31; Bss2CWork *temp_r31;
if (!lbl_1_bss_2C) { if (!lbl_1_bss_2C) {
@ -1086,7 +1135,8 @@ static void fn_1_4124(void) {
temp_r31->unk00_field0 = 1; temp_r31->unk00_field0 = 1;
} }
static void fn_1_4194(omObjData *arg0) { static void fn_1_4194(omObjData *arg0)
{
Bss2CWork *temp_r31; Bss2CWork *temp_r31;
temp_r31 = OM_GET_WORK_PTR(arg0, Bss2CWork); temp_r31 = OM_GET_WORK_PTR(arg0, Bss2CWork);
@ -1107,7 +1157,8 @@ static void fn_1_4194(omObjData *arg0) {
} }
if (temp_r31->unk01 != 0) { if (temp_r31->unk01 != 0) {
temp_r31->unk01--; temp_r31->unk01--;
} else { }
else {
MGSeqParamSet(temp_r31->unk04, 2, -1); MGSeqParamSet(temp_r31->unk04, 2, -1);
temp_r31->unk04 = -1; temp_r31->unk04 = -1;
lbl_1_bss_1C = 1; lbl_1_bss_1C = 1;
@ -1117,7 +1168,8 @@ static void fn_1_4194(omObjData *arg0) {
temp_r31->unk02 = 60; temp_r31->unk02 = 60;
} }
static void fn_1_42AC(s16 arg0) { static void fn_1_42AC(s16 arg0)
{
ParticleData *var_r31; ParticleData *var_r31;
lbl_1_bss_20 = HuSprAnimReadFile(DATA_MAKE_NUM(DATADIR_EFFECT, 0)); 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; var_r31->unk_02 = arg0;
} }
static void fn_1_43DC(void) { static void fn_1_43DC(void)
{
if (lbl_1_data_1B0 != -1) { if (lbl_1_data_1B0 != -1) {
Hu3DModelKill(lbl_1_data_1B0); Hu3DModelKill(lbl_1_data_1B0);
lbl_1_data_1B0 = -1; 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; HsfanimStruct01 *var_r31;
Vec sp8; Vec sp8;
float var_f31; 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); 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); GXInitTexObjLOD(&spC, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, GX_ANISO_1);
GXLoadTexObj(&spC, GX_TEXMAP0); GXLoadTexObj(&spC, GX_TEXMAP0);
PSMTXInverse(Hu3DCameraMtx, sp5C); MTXInverse(Hu3DCameraMtx, sp5C);
PSMTXConcat(sp5C, matrix, sp8C); MTXConcat(sp5C, matrix, sp8C);
PSMTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, sp2C); MTXConcat(Hu3DShadowData.unk_68, Hu3DShadowData.unk_38, sp2C);
PSMTXConcat(sp2C, sp8C, sp8C); MTXConcat(sp2C, sp8C, sp8C);
GXLoadTexMtxImm(sp8C, 0x39, GX_MTX3x4); GXLoadTexMtxImm(sp8C, 0x39, GX_MTX3x4);
GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, 0x39, GX_FALSE, 0x7D); GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, 0x39, GX_FALSE, 0x7D);
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0); GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0);