match m407dll, some cleanup as well

This commit is contained in:
Rainchus 2024-04-06 14:00:15 -05:00
parent 34a7ca2006
commit 4e2c3b7631
12 changed files with 692 additions and 212 deletions

View file

@ -8,8 +8,8 @@
#include "rel_sqrt_consts.h"
#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0]))
typedef void (*ObjFuncs)(omObjData*);
//structs
typedef struct unkDominationData {
u8 unk_00;
u8 unk_01;
@ -32,13 +32,15 @@ typedef struct unkDominationData {
s32 unk_38;
} unkDominationData;
Process* lbl_1_bss_18;
omObjData* lbl_1_bss_8[4];
Process* lbl_1_bss_0[2];
//data
typedef void (*ObjFuncs)(omObjData*);
//function signatures
void fn_1_628(omObjData*, s32);
void fn_1_64C(omObjData*);
void fn_1_99C(omObjData*);
void fn_1_A1C(omObjData* arg0);
void fn_1_26CC(u8);
void fn_1_4544(s32, s32, f32, f32, f32);
s16 fn_1_28B8(u8);
s16 fn_1_28E4(u8);
void fn_1_A88(omObjData* arg0);
void fn_1_A8C(omObjData* arg0);
void fn_1_C58(omObjData* arg0);
@ -49,19 +51,60 @@ void fn_1_1074(omObjData* arg0);
void fn_1_11CC(omObjData* arg0);
void fn_1_13E4(omObjData* arg0);
void fn_1_1460(omObjData* arg0);
//function signatures
void fn_1_628(omObjData*, s32);
void fn_1_64C(omObjData*);
void fn_1_99C(omObjData*);
void fn_1_A1C(omObjData* arg0);
void fn_1_26CC(u8);
void fn_1_4544(s32, s32, f32, f32, f32);
s16 fn_1_28B8(u8); //s32 fn_1_28B8(s32);
s16 fn_1_28E4(u8);
double cos(double x);
double sin(double x);
//bss
Process* lbl_1_bss_18;
omObjData* lbl_1_bss_8[4];
Process* lbl_1_bss_0[2];
//data
u32 lbl_1_data_0[8][8] = {
{0x005F0000, 0x005F0024, 0x005F0029, 0x005F0005, 0x005F0006, 0x005F004A, 0x005F004B, 0x005F0018},
{0x001A0000, 0x001A0024, 0x001A0029, 0x001A0005, 0x001A0006, 0x001A004A, 0x001A004B, 0x001A0018},
{0x006D0000, 0x006D0024, 0x006D0029, 0x006D0005, 0x006D0006, 0x006D004A, 0x006D004B, 0x006D0018},
{0x008A0000, 0x008A0024, 0x008A0029, 0x008A0005, 0x008A0006, 0x008A004A, 0x008A004B, 0x008A0018},
{0x00850000, 0x00850024, 0x00850029, 0x00850005, 0x00850006, 0x0085004A, 0x0085004B, 0x00850018},
{0x00110000, 0x00110024, 0x00110029, 0x00110005, 0x00110006, 0x0011004A, 0x0011004B, 0x00110018},
{0x000D0000, 0x000D0024, 0x000D0029, 0x000D0005, 0x000D0006, 0x000D004A, 0x000D004B, 0x000D0018},
{0x00810000, 0x00810024, 0x00810029, 0x00810005, 0x00810006, 0x0081004A, 0x0081004B, 0x00810018}
};
s32 lbl_1_data_100[] = {0x0026000D, 0x0026000E, 0x0026000F, 0x00260010, 0x00260011, 0x00260012, 0x00260013, 0x00260014};
char lbl_1_data_120[] = "test11_tex_we-itemhook-r";
char* lbl_1_data_13C[] = {
lbl_1_data_120,
lbl_1_data_120,
lbl_1_data_120,
lbl_1_data_120,
lbl_1_data_120,
lbl_1_data_120,
lbl_1_data_120,
lbl_1_data_120
};
ObjFuncs lbl_1_data_15C[] = {
fn_1_A88,
fn_1_A8C,
fn_1_C58,
fn_1_CF4,
fn_1_DB4,
fn_1_F8C,
fn_1_1074,
fn_1_11CC,
fn_1_13E4,
fn_1_1460
};
u8 lbl_1_data_184[4][2] = {
{0x3C, 0x0F},
{0x50, 0x0F},
{0x64, 0x14},
{0x78, 0x14}
};
inline void SetDominationDataStuff(omObjData* arg0, s32 val0, s32 val1) {
unkDominationData* temp_r29 = arg0->data;
temp_r29->unk_1C = val0;
@ -79,7 +122,7 @@ void fn_1_F4(Process* arg0) {
lbl_1_bss_18 = arg0;
for (i = 0; i < 4; i++) {
lbl_1_bss_8[i] = omAddObjEx(lbl_1_bss_18, 0x100, 2U, 8U, 0, fn_1_64C);
lbl_1_bss_8[i] = omAddObjEx(lbl_1_bss_18, 0x100, 2, 8, 0, fn_1_64C);
lbl_1_bss_8[i]->work[0] = i;
}
}
@ -210,55 +253,6 @@ void fn_1_628(omObjData* arg0, s32 arg1) {
temp_r31->unk_20 = 0;
}
typedef struct m407UnkDataStruct0 {
u32 unk_00[8];
} m407UnkDataStruct0;
m407UnkDataStruct0 lbl_1_data_0[] = {
{0x005F0000, 0x005F0024, 0x005F0029, 0x005F0005, 0x005F0006, 0x005F004A, 0x005F004B, 0x005F0018},
{0x001A0000, 0x001A0024, 0x001A0029, 0x001A0005, 0x001A0006, 0x001A004A, 0x001A004B, 0x001A0018},
{0x006D0000, 0x006D0024, 0x006D0029, 0x006D0005, 0x006D0006, 0x006D004A, 0x006D004B, 0x006D0018},
{0x008A0000, 0x008A0024, 0x008A0029, 0x008A0005, 0x008A0006, 0x008A004A, 0x008A004B, 0x008A0018},
{0x00850000, 0x00850024, 0x00850029, 0x00850005, 0x00850006, 0x0085004A, 0x0085004B, 0x00850018},
{0x00110000, 0x00110024, 0x00110029, 0x00110005, 0x00110006, 0x0011004A, 0x0011004B, 0x00110018},
{0x000D0000, 0x000D0024, 0x000D0029, 0x000D0005, 0x000D0006, 0x000D004A, 0x000D004B, 0x000D0018},
{0x00810000, 0x00810024, 0x00810029, 0x00810005, 0x00810006, 0x0081004A, 0x0081004B, 0x00810018}
};
s32 lbl_1_data_100[] = {0x0026000D, 0x0026000E, 0x0026000F, 0x00260010, 0x00260011, 0x00260012, 0x00260013, 0x00260014};
char lbl_1_data_120[] = "test11_tex_we-itemhook-r";
char* lbl_1_data_13C[] = {
lbl_1_data_120,
lbl_1_data_120,
lbl_1_data_120,
lbl_1_data_120,
lbl_1_data_120,
lbl_1_data_120,
lbl_1_data_120,
lbl_1_data_120
};
ObjFuncs lbl_1_data_15C[] = {
fn_1_A88,
fn_1_A8C,
fn_1_C58,
fn_1_CF4,
fn_1_DB4,
fn_1_F8C,
fn_1_1074,
fn_1_11CC,
fn_1_13E4,
fn_1_1460
};
typedef struct m407UnkDataStruct1 {
u8 unk_00;
u8 unk_01;
} m407UnkDataStruct1;
m407UnkDataStruct1 lbl_1_data_184[] = {{0x3C, 0x0F}, {0x50, 0x0F}, {0x64, 0x14}, {0x78, 0x14}}; //???
void fn_1_64C(omObjData* arg0) {
u32 temp_r29;
unkDominationData* temp_r27;
@ -266,7 +260,7 @@ void fn_1_64C(omObjData* arg0) {
u32 i;
arg0->func = fn_1_A1C;
arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkDominationData), 0x10000000);
arg0->data = HuMemDirectMallocNum(HEAP_SYSTEM, sizeof(unkDominationData), MEMORY_DEFAULT_NUM);
temp_r31 = arg0->data;
temp_r29 = arg0->work[0];
temp_r31->unk_00 = temp_r29;
@ -279,15 +273,15 @@ void fn_1_64C(omObjData* arg0) {
temp_r31->unk_38 = 0;
temp_r31->unk_28 = 0.0f;
//frand implicit declaration? (probably frandf inline?)
temp_r31->unk_30 = (600.0f / (lbl_1_data_184[temp_r31->unk_02].unk_00 - ((frand() & 0x7FFFFFFF) % lbl_1_data_184[temp_r31->unk_02].unk_01)));
temp_r31->unk_30 = (600.0f / (lbl_1_data_184[temp_r31->unk_02][0] - ((frand() & 0x7FFFFFFF) % lbl_1_data_184[temp_r31->unk_02][1])));
temp_r31->unk_2C = temp_r31->unk_30;
arg0->model[0] = CharModelCreate(temp_r31->unk_01, 8);
arg0->model[1] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_100[temp_r31->unk_01], 0x10000000, HEAP_DATA));
arg0->model[1] = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_data_100[temp_r31->unk_01], MEMORY_DEFAULT_NUM, HEAP_DATA));
Hu3DModelAmbSet(arg0->model[0], 1.0f, 1.0f, 1.0f);
Hu3DModelAmbSet(arg0->model[1], 1.0f, 1.0f, 1.0f);
for (i = 0; i < ARRAY_COUNT(lbl_1_data_0); i++) {
arg0->motion[i] = CharModelMotionCreate(temp_r31->unk_01, lbl_1_data_0[temp_r31->unk_01].unk_00[i]);
for (i = 0; i < 8; i++) {
arg0->motion[i] = CharModelMotionCreate(temp_r31->unk_01, lbl_1_data_0[temp_r31->unk_01][i]);
}
Hu3DModelShadowSet(arg0->model[0]);
@ -410,6 +404,7 @@ void fn_1_DB4(omObjData* arg0) {
SetDominationDataStuff(arg0, 0, 0);
}
//can also be placed into fn_1_F8C as static const
const s32 lbl_1_rodata_70[] = {0x00000122, 0x00000162, 0x000001A2, 0x000001E2, 0x00000222, 0x00000262, 0x000002A2, 0x000002E2};
void fn_1_F8C(omObjData* arg0) {
@ -470,7 +465,6 @@ void fn_1_11CC(omObjData* arg0) {
CharModelVoiceEnableSet(temp_r31->unk_01, arg0->motion[4], 0);
CharModelMotionShiftSet(temp_r31->unk_01, arg0->motion[4], 0.0f, 10.0f, 0);
temp = fn_1_28E4(temp_r31->unk_00);
//can remove \0 after matching whole rel likely
Hu3DModelHookSet(temp, "itemhook_c", arg0->model[0]);
temp_r31->unk_10 = 0.0f;
temp_r31->unk_14 = 0.0f;