Ported m440Dll

This commit is contained in:
dbalatoni13 2024-11-18 00:50:02 +01:00
parent b9466df0f8
commit 68a6774f9b
8 changed files with 427 additions and 394 deletions

View file

@ -14,6 +14,7 @@
#include "math.h"
#include "string.h"
#include "version.h"
// bss
omObjData *lbl_1_bss_6C;
@ -117,7 +118,7 @@ s32 fn_1_4A4(void)
var_r31 = &lbl_1_data_78[0];
var_r30 = 0;
lbl_1_bss_4++;
var_f31 = lbl_1_bss_4 / 120.0f;
var_f31 = lbl_1_bss_4 / (2 * REFRESH_RATE_F);
if (var_f31 > 1.0f) {
lbl_1_bss_4 = 0;
var_f31 = 1.0f;
@ -144,7 +145,7 @@ s32 fn_1_6C8(void)
var_r31 = &lbl_1_data_78[1];
var_r30 = 0;
lbl_1_bss_4++;
var_f31 = lbl_1_bss_4 / 120.0f;
var_f31 = lbl_1_bss_4 / (2 * REFRESH_RATE_F);
if (var_f31 > 1.0f) {
lbl_1_bss_4 = 0;
var_f31 = 1.0f;
@ -173,7 +174,7 @@ void fn_1_8F0(omObjData *arg0)
temp_r31->unk0 = 1;
temp_r31->unk4 = -1;
temp_r31->unk8 = -1;
temp_r31->unk6 = 0x12C;
temp_r31->unk6 = 5 * REFRESH_RATE;
temp_r31->unkA = 0;
temp_r31->unkC = -1;
@ -215,7 +216,7 @@ void fn_1_AE0(omObjData *arg0)
break;
case 3:
if (temp_r31->unk8 != -1) {
MGSeqParamSet(temp_r31->unk8, 1, ((temp_r31->unk6 + 0x3B) / 60));
MGSeqParamSet(temp_r31->unk8, 1, ((temp_r31->unk6 + REFRESH_RATE - 1) / REFRESH_RATE));
}
if ((temp_r31->unkC < 0) && ((MGSeqStatGet(temp_r31->unk4) & 0x10) != 0)) {
temp_r31->unkC = HuAudSeqPlay(0x49);
@ -226,7 +227,7 @@ void fn_1_AE0(omObjData *arg0)
temp_f31 = (((rand8() << 8) | rand8()) % 361);
Center.x = (lbl_1_data_78[1].center.x + (10.0 * sind(temp_f31)));
Center.y = (lbl_1_data_78[1].center.y + (10.0 * cosd(temp_f31)));
if (temp_r31->unkA > 0x28) {
if (temp_r31->unkA > (2 * REFRESH_RATE / 3)) {
temp_r31->unkA = 0;
return;
}
@ -265,7 +266,7 @@ u8 fn_1_E14(omObjData *arg0)
lbl_1_bss_6++;
break;
case 1:
if (++lbl_1_bss_8 > 0x1E) {
if (++lbl_1_bss_8 > (s16)(0.5f * REFRESH_RATE_F)) {
fn_1_F168();
lbl_1_bss_8 = 0;
lbl_1_bss_6++;
@ -275,7 +276,7 @@ u8 fn_1_E14(omObjData *arg0)
var_r31 = lbl_1_data_78;
var_r30 = 0;
lbl_1_bss_4++;
var_f31 = lbl_1_bss_4 / 120.0f;
var_f31 = lbl_1_bss_4 / (2 * REFRESH_RATE_F);
if (var_f31 > 1.0f) {
lbl_1_bss_4 = 0;
var_f31 = 1.0f;
@ -319,7 +320,7 @@ u8 fn_1_1138(omObjData *object)
temp_r30->unk40 = temp_r30->unk34;
}
lbl_1_bss_8++;
var_f30 = lbl_1_bss_8 / 30.0f;
var_f30 = lbl_1_bss_8 / (0.5f * REFRESH_RATE_F);
if (var_f30 >= 1.0f) {
var_f30 = 1.0f;
if (lbl_1_bss_B == 0) {
@ -331,7 +332,7 @@ u8 fn_1_1138(omObjData *object)
var_r31 = &lbl_1_data_78[1]; // could be fn_1_6C8
var_r28 = 0;
lbl_1_bss_4++;
var_f31 = lbl_1_bss_4 / 120.0f;
var_f31 = lbl_1_bss_4 / (2 * REFRESH_RATE_F);
if (var_f31 > 1.0f) {
lbl_1_bss_4 = 0;
var_f31 = 1.0f;
@ -357,7 +358,7 @@ u8 fn_1_1138(omObjData *object)
lbl_1_bss_8 = 0;
break;
case 2:
if (++lbl_1_bss_8 > 210.0f) {
if (++lbl_1_bss_8 > (3.5f * REFRESH_RATE)) {
lbl_1_bss_6 = 0;
return 1;
}
@ -392,7 +393,7 @@ void fn_1_1768(void)
temp_r31 = (unkStruct2 *)lbl_1_bss_6C->data;
if (temp_r31->unk8 == -1) {
temp_r31->unk6 = 0x12C;
temp_r31->unk6 = 5 * REFRESH_RATE;
temp_r31->unk8 = MGSeqCreate(1, 5, -1, -1);
}
}
@ -695,7 +696,7 @@ void fn_1_2B04(omObjData *object)
switch (lbl_1_data_E4[0]) {
case 0:
lbl_1_data_E8[0]++;
temp_f31 = lbl_1_data_E8[0] / 360.0f;
temp_f31 = lbl_1_data_E8[0] / (6 * REFRESH_RATE_F);
if (temp_f31 > 1.0f) {
temp_f31 = 1.0f;
Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF);
@ -752,15 +753,15 @@ void fn_1_2D28(omObjData *object)
break;
case 0x1:
lbl_1_data_F0[0]++;
var_f31 = lbl_1_data_F0[0] / 120.0f;
var_f31 = lbl_1_data_F0[0] / (2 * REFRESH_RATE_F);
if (var_f31 > 1.0f) {
var_f31 = 1.0f;
lbl_1_data_F0[0] = 0;
lbl_1_data_F0[1] = 0xF;
lbl_1_data_F0[1] = REFRESH_RATE / 4;
lbl_1_data_EC[1] = (lbl_1_data_EC[0] + 1);
lbl_1_data_EC[0] = 0x63;
}
if (110.0f == lbl_1_data_F0[0]) {
if ((11 * REFRESH_RATE_F / 6) == lbl_1_data_F0[0]) {
HuAudFXPlay(0x70A);
}
var_f31 = sin((M_PI * (90.0f * var_f31)) / 180.0);
@ -771,11 +772,11 @@ void fn_1_2D28(omObjData *object)
HuAudFXPlay(0x713);
}
lbl_1_data_F0[0]++;
var_f31 = lbl_1_data_F0[0] / 60.0f;
var_f31 = lbl_1_data_F0[0] / REFRESH_RATE_F;
if (var_f31 > 1.0f) {
var_f31 = 1.0f;
lbl_1_data_F0[0] = 0;
lbl_1_data_F0[1] = 0xF;
lbl_1_data_F0[1] = REFRESH_RATE / 4;
lbl_1_data_EC[1] = lbl_1_data_EC[0] + 1;
lbl_1_data_EC[0] = 0x63;
HuAudFXPlay(0x714);
@ -788,7 +789,7 @@ void fn_1_2D28(omObjData *object)
if (lbl_1_data_F0[0] == 0) {
HuAudFXPlay(0x711);
}
if (++lbl_1_data_F0[0] > 12.0) {
if (++lbl_1_data_F0[0] > (0.2 * REFRESH_RATE)) {
if (fn_1_4EA8(0x40) != 0) {
fn_1_4EEC(0x40, 0);
fn_1_F228();
@ -801,7 +802,7 @@ void fn_1_2D28(omObjData *object)
break;
case 0x4:
lbl_1_data_F0[0]++;
var_f31 = lbl_1_data_F0[0] / 360.0f;
var_f31 = lbl_1_data_F0[0] / (6 * REFRESH_RATE_F);
if (var_f31 > 1.0f) {
var_f31 = 1.0f;
Hu3DModelAttrSet(object->model[3], HU3D_ATTR_DISPOFF);
@ -1021,7 +1022,7 @@ void fn_1_46E0(omObjData *object)
break;
case 0x1:
lbl_1_data_108[0]++;
var_f31 = lbl_1_data_108[0] / 60.0f;
var_f31 = lbl_1_data_108[0] / REFRESH_RATE_F;
if (var_f31 > 1.0f) {
var_f31 = 1.0f;
lbl_1_data_108[0] = 0;
@ -1083,7 +1084,7 @@ void fn_1_4B44(omObjData *object)
switch (lbl_1_data_104[0]) {
case 0:
lbl_1_data_108[0]++;
var_f31 = lbl_1_data_108[0] / 60.0f;
var_f31 = lbl_1_data_108[0] / REFRESH_RATE_F;
if (var_f31 > 1.0f) {
var_f31 = 1.0f;
lbl_1_data_108[0] = 0;
@ -1094,7 +1095,7 @@ void fn_1_4B44(omObjData *object)
break;
case 1:
lbl_1_data_108[0]++;
var_f31 = (lbl_1_data_108[0] / 30.0f);
var_f31 = (lbl_1_data_108[0] / (0.5f * REFRESH_RATE_F));
if (var_f31 >= 1.0f) {
lbl_1_data_108[0] = 0;
lbl_1_data_104[0] = 0;
@ -1301,7 +1302,7 @@ void fn_1_57B4(unkStruct6 *arg0)
}
}
if ((arg0->unk2 & 4) != 0) {
if (++arg0->unk3E > 0x50) {
if (++arg0->unk3E > (4 * REFRESH_RATE / 3)) {
arg0->unk3C = ((arg0->unk3C - 10) < 0) ? 0 : arg0->unk3C - 10;
}
}

View file

@ -8,6 +8,12 @@
#include "game/pad.h"
#include "math.h"
#include "string.h"
#include "version.h"
#ifdef __MWERKS__
#include "game/audio.h"
#endif
// bss
@ -78,7 +84,7 @@ void fn_1_AEE4(omObjData *arg0)
temp_r31->unk30.x = temp_r31->unk30.y = temp_r31->unk30.z = 0.0f;
temp_r31->unk3C.y = 90.0f;
temp_r31->unkC = 0;
temp_r31->unkE = 0x78;
temp_r31->unkE = 2 * REFRESH_RATE_F;
temp_r31->unk10 = temp_r31->unk12 = temp_r31->unk14 = 0;
if (temp_r31->unk8 == 5) {
var_f31 = 350.0f;
@ -173,7 +179,7 @@ void fn_1_B3A4(omObjData *arg0)
var_r31->unk18.y = 0.0f;
var_r31->unk18.z = var_r31->unk24.z + (lbl_1_bss_88[var_r28].z - var_r31->unk24.z) * var_f31;
var_r31->unk14++;
var_f31 = var_r31->unk14 / 20.0f;
var_f31 = var_r31->unk14 / (REFRESH_RATE_F / 3.0f);
if (var_f31 >= 1.0f) {
var_f31 = 1.0f;
}
@ -181,7 +187,7 @@ void fn_1_B3A4(omObjData *arg0)
break;
case 7:
var_r31->unkC++;
var_f31 = (f32)var_r31->unkC / 40.0f;
var_f31 = (f32)var_r31->unkC / (2.0f * REFRESH_RATE_F / 3);
if (var_f31 >= 1.0f) {
var_f31 = 1.0f;
var_r31->unkC = 0;
@ -239,7 +245,7 @@ void fn_1_B884(omObjData *arg0, unkObjStruct *arg1)
switch (lbl_1_bss_74) {
case 0:
lbl_1_data_250 -= 0.5f;
lbl_1_data_250 -= (REFRESH_RATE_F / 120);
if (lbl_1_data_250 <= 45.0f) {
lbl_1_data_250 = 45.0f;
lbl_1_bss_74++;
@ -258,14 +264,14 @@ void fn_1_B884(omObjData *arg0, unkObjStruct *arg1)
return;
case 1:
arg1->unkE++;
var_f31 = arg1->unkE / 10.0f;
var_f31 = arg1->unkE / (REFRESH_RATE_F / 6.0f);
if (var_f31 >= 1.0f) {
var_f31 = 1.0f;
}
var_f30 = 225.0f;
arg1->unk30.y = arg1->unk68 + (var_f31 * (var_f30 - arg1->unk68));
arg1->unkC++;
var_f31 = arg1->unkC / 50.0f;
var_f31 = arg1->unkC / (5.0f * REFRESH_RATE_F / 6.0f);
if (var_f31 >= 1.0f) {
var_f31 = 1.0f;
arg1->unkC = arg1->unkE = 0;
@ -294,7 +300,7 @@ void fn_1_B884(omObjData *arg0, unkObjStruct *arg1)
}
break;
case 2:
lbl_1_data_250++;
lbl_1_data_250 += REFRESH_RATE_F / 60.0f;
if (lbl_1_data_250 >= lbl_1_data_0[arg1->unk60]) {
lbl_1_data_250 = lbl_1_data_0[arg1->unk60];
lbl_1_bss_74++;
@ -309,7 +315,7 @@ void fn_1_B884(omObjData *arg0, unkObjStruct *arg1)
var_f30 += 360.0f;
}
arg1->unkC++;
var_f31 = arg1->unkC / 10.0f;
var_f31 = arg1->unkC / (REFRESH_RATE_F / 6.0f);
if (var_f31 < 1.0f) {
arg1->unk30.y = arg1->unk68 + (var_f31 * (var_f30 - arg1->unk68));
}
@ -320,7 +326,7 @@ void fn_1_B884(omObjData *arg0, unkObjStruct *arg1)
return;
case 3:
arg1->unkE++;
var_f31 = arg1->unkE / 10.0f;
var_f31 = arg1->unkE / (REFRESH_RATE_F / 6.0f);
if (var_f31 >= 1.0f) {
var_f31 = 1.0f;
arg1->unkC = arg1->unkE = 0;
@ -332,7 +338,7 @@ void fn_1_B884(omObjData *arg0, unkObjStruct *arg1)
arg1->unk30.y = fn_1_927C(arg1->unk6C, var_f30, var_f31);
return;
case 4:
if (++arg1->unkC > 15) {
if (++arg1->unkC > (REFRESH_RATE / 4)) {
lbl_1_bss_74++;
}
break;
@ -443,7 +449,7 @@ void fn_1_C1D4(omObjData *arg0, unkObjStruct *arg1)
if (var_f30 < 5.0f) {
if (arg1->unk5A != 0) {
arg1->unk56++;
var_f31 = arg1->unk56 / 40.0f;
var_f31 = arg1->unk56 / (2.0f * REFRESH_RATE_F / 3.0f);
if (var_f31 > 1.0f) {
var_f31 = 1.0f;
arg1->unk5A = 0;
@ -523,7 +529,7 @@ void fn_1_C944(omObjData *arg0, unkObjStruct *arg1)
}
}
if ((arg1->unk48 & 1) != 0) {
arg1->unk68 -= 1.0f;
arg1->unk68 -= REFRESH_RATE_F / 60.0f;
if ((var_r30 != -1) && (lbl_1_data_0[var_r30] > arg1->unk68)) {
arg1->unk68 = lbl_1_data_0[var_r30];
arg1->unk4A = var_r30;
@ -531,7 +537,7 @@ void fn_1_C944(omObjData *arg0, unkObjStruct *arg1)
}
}
else if ((arg1->unk48 & 2) != 0) {
arg1->unk68++;
arg1->unk68 += REFRESH_RATE_F / 60.0f;
if ((var_r30 != -1) && (lbl_1_data_0[var_r30] < arg1->unk68)) {
arg1->unk68 = lbl_1_data_0[var_r30];
arg1->unk4A = var_r30;
@ -659,7 +665,7 @@ void fn_1_D24C(unkObjStruct *arg0, f32 arg1, f32 arg2)
f32 var_f30;
f32 var_f31;
var_f28 = 10.0f;
var_f28 = REFRESH_RATE_F / 6.0f;
arg0->unk6C = arg1;
arg0->unk70 = arg2;
var_f31 = ABS(arg1 - arg2);
@ -702,7 +708,7 @@ void fn_1_D34C(omObjData *arg0, unkObjStruct *arg1)
arg1->unk6C = 0.0f;
arg1->unk48 = 0;
lbl_1_data_14[arg1->unk4A] = 0;
if (fn_1_17CC() < 270.0f) {
if (fn_1_17CC() < (4.5f * REFRESH_RATE)) {
fn_1_1708();
}
fn_1_F4D4(arg1, 15, 4);
@ -793,7 +799,7 @@ void fn_1_D7F8(omObjData *arg0, unkObjStruct *arg1)
}
break;
case 1:
if (++arg1->unkC > 0xA) {
if (++arg1->unkC > (REFRESH_RATE / 6)) {
arg1->unkC = 0;
Hu3DMotionSpeedSet(arg0->model[0], 2.0f);
if ((arg1->unk6C - arg1->unk68) > 0.0f) {
@ -808,7 +814,7 @@ void fn_1_D7F8(omObjData *arg0, unkObjStruct *arg1)
break;
case 2:
arg1->unkC++;
var_f31 = arg1->unkC / 30.0f;
var_f31 = arg1->unkC / (0.5f * REFRESH_RATE_F);
arg1->unk18.x = ((410.0f + (var_f31 * (arg1->unk5C - 410.0f))) * cosd(lbl_1_data_0[arg1->unk4A]));
arg1->unk18.z = ((410.0f + (var_f31 * (arg1->unk5C - 410.0f))) * sind(lbl_1_data_0[arg1->unk4A]));
if (var_f31 >= 1.0f) {
@ -825,7 +831,7 @@ void fn_1_D7F8(omObjData *arg0, unkObjStruct *arg1)
arg1->unk30.y = fn_1_927C(arg1->unk68, arg1->unk6C, var_f31);
break;
case 3:
if (++arg1->unkC > 0x3C) {
if (++arg1->unkC > (s32)REFRESH_RATE_F) {
if (fn_1_4E54(arg1->unk4A) == 0) {
fn_1_4EEC(7U, 3U);
}
@ -852,7 +858,7 @@ void fn_1_D7F8(omObjData *arg0, unkObjStruct *arg1)
break;
}
if (fn_1_17F4() >= 0) {
if (fn_1_17CC() < 270.0f) {
if (fn_1_17CC() < (4.5f * REFRESH_RATE)) {
fn_1_1708();
return;
}
@ -874,7 +880,11 @@ void fn_1_E034(omObjData *arg0, unkObjStruct *arg1)
switch (arg1->unk60) {
case 0:
lbl_1_bss_84 = lbl_1_data_0[arg1->unk4A];
#if VERSION_NTSC
Hu3DMotionShiftSet(arg0->model[0], arg0->motion[4], 0.0f, 7.0f, HU3D_MOTATTR_LOOP);
#else
Hu3DMotionSet(arg0->model[0], arg0->motion[4]);
#endif
HuAudCharVoicePlay(arg1->unk8, 0x125);
arg1->unk60++;
break;
@ -898,7 +908,7 @@ void fn_1_E034(omObjData *arg0, unkObjStruct *arg1)
}
break;
case 2:
lbl_1_bss_84++;
lbl_1_bss_84 += REFRESH_RATE_F / 60.0f;
if (lbl_1_bss_84 >= 135.0f) {
lbl_1_bss_84 = 135.0f;
arg1->unkE = arg1->unk10 = 0;
@ -915,7 +925,7 @@ void fn_1_E034(omObjData *arg0, unkObjStruct *arg1)
var_f30 += 360.0f;
}
arg1->unkC++;
var_f31 = arg1->unkC / 10.0f;
var_f31 = arg1->unkC / (REFRESH_RATE_F / 6.0f);
if (var_f31 >= 1.0f) {
var_f31 = 1.0f;
}
@ -924,14 +934,14 @@ void fn_1_E034(omObjData *arg0, unkObjStruct *arg1)
break;
case 3:
arg1->unkE++;
var_f31 = arg1->unkE / 10.0f;
var_f31 = arg1->unkE / (REFRESH_RATE_F / 6.0f);
if (var_f31 >= 1.0f) {
var_f31 = 1.0f;
}
var_f30 = 315.0f;
arg1->unk30.y = arg1->unk6C + (var_f31 * (var_f30 - arg1->unk6C));
arg1->unk10++;
var_f31 = arg1->unk10 / 50.0f;
var_f31 = arg1->unk10 / (5.0f * REFRESH_RATE_F / 6.0f);
if (var_f31 >= 1.0f) {
var_f31 = 1.0f;
arg1->unkC = arg1->unkE = arg1->unk10 = 0;
@ -953,12 +963,12 @@ void fn_1_E034(omObjData *arg0, unkObjStruct *arg1)
}
break;
case 4:
lbl_1_bss_84 -= 0.5f;
lbl_1_bss_84 -= REFRESH_RATE_F / 120;
if (lbl_1_bss_84 <= 110.0f) {
lbl_1_bss_84 = 110.0f;
arg1->unk60 = 0;
arg1->unkC = 0;
arg1->unkE = (3 - lbl_1_data_1D8) * 0x1E;
arg1->unkE = (3 - lbl_1_data_1D8) * (s32)(0.5f * REFRESH_RATE_F);
arg1->unk14 = 0;
arg1->unk3C.y = 90.0f;
fn_1_F4D4(arg1, 15, 1);
@ -973,7 +983,7 @@ void fn_1_E034(omObjData *arg0, unkObjStruct *arg1)
var_f30 += 360.0f;
}
arg1->unk10++;
var_f31 = arg1->unk10 / 10.0f;
var_f31 = arg1->unk10 / (REFRESH_RATE_F / 6.0f);
if (var_f31 >= 1.0f) {
var_f31 = 1.0f;
}
@ -1025,7 +1035,7 @@ u8 fn_1_E8AC(omObjData *arg0, unkObjStruct *arg1)
case 2:
arg1->unkC++;
arg1->unk68 += 40.0f;
var_f31 = arg1->unkC / 90.0f;
var_f31 = arg1->unkC / (1.5f * REFRESH_RATE_F);
if (var_f31 >= 1.0f) {
var_f31 = 1.0f;
arg1->unk60++;
@ -1165,7 +1175,7 @@ void fn_1_F228(void)
temp_r31->unkA--;
temp_r31->unk24 = temp_r31->unk18;
temp_r31->unkC = 0;
temp_r31->unkE = 0x1E;
temp_r31->unkE = (s32)(0.5f * REFRESH_RATE_F);
temp_r31->unk14 = 0;
fn_1_F4D4(temp_r31, 15, 1);
}