Port m439Dll

This commit is contained in:
dbalatoni13 2024-11-17 17:57:27 +01:00
parent 4e5aa07dbc
commit 92a755ef97
4 changed files with 234 additions and 241 deletions

View file

@ -21,6 +21,7 @@
#include "ext_math.h"
#include "REL/m439data.h"
#include "version.h"
typedef struct camera_params {
float zoom;
@ -28,34 +29,12 @@ typedef struct camera_params {
Vec rot;
} CameraViewParams;
CameraViewParams lbl_1_data_741C[] = { {
4775,
-2800,
0,
-7700,
343,
20,
0,
},
{
5000,
0,
0,
0,
290,
0,
0,
},
{
2800,
0,
0,
-7600,
347,
0,
0,
},
{ 2800, 0, 0, -7600, 290, 0, 0 } };
CameraViewParams lbl_1_data_741C[] = {
{ VERSION_NTSC ? 4775.0f : 4500.0f, -2800.0f, 0.0f, -7700.0f, 343.0f, 20.0f, 0.0f },
{ 5000.0f, 0.f, 0.0f, 0.0f, 290.0f, 0.0f, 0.0f },
{ 2800.0f, 0.f, 0.0f, -7600.0f, 347.0f, 0.0f, 0.0f },
{ 2800.0f, 0.f, 0.0f, -7600.0f, 290.0f, 0.0f, 0.0f },
};
typedef struct struct_data_748C {
s32 unk0;
@ -162,9 +141,9 @@ void fn_1_408(omObjData *object);
void fn_1_384(omObjData *object)
{
fn_1_364(0);
lbl_1_bss_14C = 60;
lbl_1_bss_14C = REFRESH_RATE;
lbl_1_bss_12E = 60;
lbl_1_bss_12C = 60;
lbl_1_bss_12C = REFRESH_RATE;
WipeCreate(WIPE_MODE_IN, WIPE_TYPE_NORMAL, 60);
object->func = fn_1_408;
}
@ -181,12 +160,12 @@ void fn_1_408(omObjData *object)
{
switch (fn_1_374()) {
case 0:
if (lbl_1_bss_14C == 60) {
if (lbl_1_bss_14C == REFRESH_RATE) {
HuAudFXPlay(1797);
}
if (--lbl_1_bss_14C == 0) {
fn_1_364(1);
lbl_1_bss_14C = 120;
lbl_1_bss_14C = 2 * REFRESH_RATE;
}
break;
@ -227,7 +206,7 @@ void fn_1_408(omObjData *object)
if (--lbl_1_bss_12C == 0) {
lbl_1_bss_12E--;
MGSeqParamSet(lbl_1_bss_30, 1, lbl_1_bss_12E);
lbl_1_bss_12C = 60;
lbl_1_bss_12C = REFRESH_RATE;
}
if (lbl_1_bss_130 >= 3 || lbl_1_bss_12E == 0) {
fn_1_364(6);
@ -243,7 +222,7 @@ void fn_1_408(omObjData *object)
}
if (!MGSeqStatGet(lbl_1_bss_32)) {
fn_1_364(7);
lbl_1_bss_14C = 60;
lbl_1_bss_14C = REFRESH_RATE;
}
break;
@ -257,7 +236,7 @@ void fn_1_408(omObjData *object)
else {
HuAudSStreamPlay(4);
}
lbl_1_bss_14C = 210;
lbl_1_bss_14C = 3.5f * REFRESH_RATE;
}
break;
@ -823,7 +802,7 @@ void fn_1_2C84(omObjData *object)
if (fn_1_374() >= 6 && !temp_r31->unk0_field2) {
temp_r31->unk0_field7 = 1;
temp_r31->unk12 = 2;
temp_r31->unk3E = 120;
temp_r31->unk3E = 2 * REFRESH_RATE;
object->func = fn_1_3C1C;
return;
}
@ -852,18 +831,18 @@ void fn_1_2C84(omObjData *object)
if (temp_f26 > 72) {
temp_f26 = 72;
}
temp_f23 = (10.0f * temp_f26) / 72.0f;
temp_f23 = ((600.0f / REFRESH_RATE) * temp_f26) / 72.0f;
temp_r31->unk20.x = temp_f31 * temp_f23;
temp_r31->unk20.z = temp_f30 * temp_f23;
temp_r31->unk14.y = temp_f23;
object->rot.y = fn_1_1024(object->rot.y, atan2d(temp_r31->unk20.x, temp_r31->unk20.z), 0.2f);
if (temp_r31->unk14.y < 7.5f) {
if (temp_r31->unk14.y < (450.0f / REFRESH_RATE)) {
temp_r28 = 1;
temp_f25 = temp_r31->unk14.y / 7.5f;
temp_f25 = temp_r31->unk14.y / (450.0f / REFRESH_RATE);
}
else {
temp_r28 = 2;
temp_f25 = temp_r31->unk14.y / 10.0f;
temp_f25 = temp_r31->unk14.y / (600.0f / REFRESH_RATE);
}
}
else {
@ -900,7 +879,7 @@ void fn_1_2C84(omObjData *object)
temp_r31->unk50.z = object->trans.z;
temp_r31->unk68.y = -2000;
temp_r31->unk12 = 2;
temp_r31->unk3E = 12;
temp_r31->unk3E = 0.2f * REFRESH_RATE;
temp_r23 = Hu3DData[object->model[2]].unk_120;
temp_r23->unk_00 = 0;
VECSubtract(&temp_r31->unk5C, &object->trans, &temp_r23->unk_04);
@ -933,7 +912,7 @@ void fn_1_2C84(omObjData *object)
temp_r31->unk0_field4 = 01;
if (temp_r29 > 1 && temp_r29 < 6) {
temp_r31->unk12++;
temp_r31->unk3E = 30;
temp_r31->unk3E = 0.5f * REFRESH_RATE;
temp_r31->unk48 = CenterM[temp_r31->unk2].z;
temp_r31->unk4C = object->trans.z - 350.0f;
temp_r31->unk40 = lbl_1_data_75CC[temp_r31->unk46 - 1];
@ -946,7 +925,7 @@ void fn_1_2C84(omObjData *object)
if (--temp_r31->unk3E == 0) {
temp_r31->unk12 = 0;
}
CenterM[temp_r31->unk2].z = temp_r31->unk48 + ((temp_r31->unk4C - temp_r31->unk48) * cosd((temp_r31->unk3E * 90.0f) / 30.0f));
CenterM[temp_r31->unk2].z = temp_r31->unk48 + ((temp_r31->unk4C - temp_r31->unk48) * cosd((temp_r31->unk3E * 90.0f) / (0.5f * REFRESH_RATE)));
temp_r28 = 0;
temp_f25 = 1;
break;
@ -957,7 +936,7 @@ void fn_1_2C84(omObjData *object)
temp_r24 = temp_r27->data;
switch (temp_r24->unk4) {
case 1:
temp_f28 = 1.0f - (temp_r24->unk24 / 90.0f);
temp_f28 = 1.0f - (temp_r24->unk24 / (1.5f * REFRESH_RATE));
object->trans.x = temp_r31->unk50.x + (temp_f28 * (temp_r31->unk5C.x - temp_r31->unk50.x));
object->trans.y = 100 + (-2000.0f * (temp_f28 - 0.1f)) * (temp_f28 - 0.1f);
object->trans.z = temp_r31->unk50.z + (temp_f28 * (temp_r31->unk5C.z - temp_r31->unk50.z));
@ -978,7 +957,7 @@ void fn_1_2C84(omObjData *object)
if (temp_r31->unk3E) {
temp_r31->unk3E--;
}
temp_f28 = sind((temp_r31->unk3E / 30.0f) * 90.0f);
temp_f28 = sind((temp_r31->unk3E / (0.5f * REFRESH_RATE)) * 90.0f);
object->trans.x = temp_r31->unk74.x - (temp_f28 * (temp_r31->unk74.x - temp_r31->unk68.x));
object->trans.y = temp_r31->unk74.y - (temp_f28 * (temp_r31->unk74.y - temp_r31->unk68.y));
object->trans.z = temp_r31->unk74.z - (temp_f28 * (temp_r31->unk74.z - temp_r31->unk68.z));
@ -1032,7 +1011,7 @@ void fn_1_3C1C(omObjData *object)
switch (temp_r31->unk12) {
case 0:
if (object->trans.z > -7600.0f) {
object->trans.z -= 3.75f;
object->trans.z -= 225.0f / REFRESH_RATE;
}
else {
temp_r31->unk12++;
@ -1113,11 +1092,11 @@ void fn_1_4528(ModelData *model, ParticleData *particle, Mtx matrix)
temp_r31->unk34.x = 100.0f * (0.2f * sind(temp_f31));
temp_r31->unk34.y = 0;
temp_r31->unk34.z = 100.0f * (0.2f * cosd(temp_f31));
temp_f30 = ((frand8() * 2.5f) / 256.0f) + (5.0f / 3.0f);
temp_f30 = ((frand8() * (150.0f / REFRESH_RATE)) / 256.0f) + (100.0f / REFRESH_RATE);
temp_f31 = temp_f29 + (30.0f * (((s32)frand() & 0x1FF) - 256.0f) / 256.0f);
temp_r31->unk08.x = temp_f30 * sind(temp_f31);
temp_r31->unk08.z = temp_f30 * cosd(temp_f31);
temp_r31->unk08.y = (frand8() * (50.0f / 3.0f)) / 256.0f;
temp_r31->unk08.y = (frand8() * (1000.0f / REFRESH_RATE)) / 256.0f;
temp_r31->unk40.r = temp_r31->unk40.g = temp_r31->unk40.b = temp_r31->unk40.a = 255;
}
}
@ -1128,7 +1107,7 @@ void fn_1_4528(ModelData *model, ParticleData *particle, Mtx matrix)
temp_r28++;
}
else {
temp_r31->unk08.y += -0.50000006f;
temp_r31->unk08.y += VERSION_NTSC ? -0.50000006f : -0.6f; // -3.0f / REFRESH_RATE
temp_r31->unk34.x += temp_r31->unk08.x;
temp_r31->unk34.y += temp_r31->unk08.y;
temp_r31->unk34.z += temp_r31->unk08.z;
@ -1193,7 +1172,7 @@ void fn_1_4AA8(omObjData *object)
}
Hu3DMotionSet(object->model[0], object->motion[0]);
Hu3DModelAttrSet(object->model[0], HU3D_MOTATTR_LOOP);
object->trans.y = 500;
object->trans.y = 500.0f;
object->scale.x = object->scale.y = object->scale.z = 0.25f;
if (work->unk2 == 0) {
object->trans.x = -1800;
@ -1202,7 +1181,7 @@ void fn_1_4AA8(omObjData *object)
object->rot.y = -90;
object->func = fn_1_4CC0;
Hu3DMotionSpeedSet(object->model[0], 2.0f);
work->unk24 = 60;
work->unk24 = REFRESH_RATE;
}
else {
object->func = fn_1_4F54;
@ -1218,11 +1197,11 @@ void fn_1_4CC0(omObjData *object)
Work4AA8 *work = object->data;
float pan;
Vec pos2D;
if (42.0f == work->unk24) {
if ((VERSION_NTSC ? 42.0f : 35.0f) == work->unk24) {
HuAudFXPlay(1795);
}
if (work->unk24 == 0) {
object->trans.x -= 25.0f;
object->trans.x -= 1500.0f / REFRESH_RATE;
}
else {
if (--work->unk24 == 0) {
@ -1273,7 +1252,7 @@ void fn_1_4F54(omObjData *object)
case 0:
if (object->work[3]) {
work->unk4++;
work->unk24 = work->unk26 = 90;
work->unk24 = work->unk26 = 1.5f * REFRESH_RATE;
temp_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0);
object->trans.x = work->unk28.x = temp_r29[work->unk2]->trans.x;
object->trans.y = work->unk28.y = 2000;
@ -1301,11 +1280,11 @@ void fn_1_4F54(omObjData *object)
if (--work->unk24 == 0) {
work->unk0 = 1;
work->unk4++;
work->unk24 = 90;
work->unk24 = 1.5f * REFRESH_RATE;
work->unk10 = (200.0f - object->trans.y) / work->unk24;
object->rot.x = 0;
}
if (60.0f == work->unk24) {
if (1.0f * REFRESH_RATE == work->unk24) {
HuAudFXPlay(1796);
}
break;
@ -1314,7 +1293,7 @@ void fn_1_4F54(omObjData *object)
object->trans.y += work->unk10;
if (--work->unk24 == 0) {
work->unk4++;
work->unk24 = work->unk26 = 48;
work->unk24 = work->unk26 = 0.8f * REFRESH_RATE;
work->unk28.x = object->trans.x;
work->unk28.y = object->trans.y;
work->unk28.z = object->trans.z;
@ -1350,7 +1329,7 @@ void fn_1_4F54(omObjData *object)
object->work[3] = 0;
Hu3DModelAttrSet(object->model[0], HU3D_ATTR_DISPOFF);
}
if (work->unk24 == (int)(work->unk26 - 12.0f)) {
if (work->unk24 == (int)(work->unk26 - (0.2f * REFRESH_RATE))) {
work->unk0 = 0;
temp_r29 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0);
temp_r28 = temp_r29[work->unk2]->data;
@ -1686,7 +1665,7 @@ void fn_1_6DEC(omObjData *object)
switch (object->work[0]) {
case 0:
if (fn_1_374() <= 3) {
CRotM[0].y -= 10.0f / 60.0f;
CRotM[0].y -= 10.0f / REFRESH_RATE;
}
if (fn_1_374() == 3) {
Hu3DCameraCreate(15);