edit ThreeDDataStruct, function names in m401

This commit is contained in:
CreateSource 2023-12-03 12:53:20 -05:00
parent 5a7d9615d3
commit 395fde5107
3 changed files with 192 additions and 165 deletions

View file

@ -1,6 +1,6 @@
#include "m401Dll.h" #include "m401Dll.h"
void fn_2_A0(void) { void M401ObjectSetup(void) {
s32 i; s32 i;
unkStructBSS114 *temp_r30; unkStructBSS114 *temp_r30;
unkStruct18BFC0 *temp_r29; unkStruct18BFC0 *temp_r29;
@ -11,58 +11,58 @@ void fn_2_A0(void) {
HuMemHeapDump(HuMemHeapPtrGet(2), -1); HuMemHeapDump(HuMemHeapPtrGet(2), -1);
HuMemHeapDump(HuMemHeapPtrGet(3), -1); HuMemHeapDump(HuMemHeapPtrGet(3), -1);
lbl_2_bss_1C = omInitObjMan(0x3C, 0x2000); lbl_2_bss_1C = omInitObjMan(0x3C, 0x2000);
fn_80057E80(lbl_2_bss_1C); omGameSysInit(lbl_2_bss_1C);
lbl_2_bss_A8 = fn_80022ADC(&lbl_2_data_14, &lbl_2_data_20, &lbl_2_data_2C); lbl_2_bss_A8 = Hu3DGLightCreateV(&lbl_2_data_14, &lbl_2_data_20, &lbl_2_data_2C);
fn_80022EB4(lbl_2_bss_A8); Hu3DGLightInfinitytSet(lbl_2_bss_A8);
temp_r28 = &lbl_8018C8FC[lbl_2_bss_A8].unk_00; temp_r28 = &lbl_8018C8FC[lbl_2_bss_A8].unk_00;
*temp_r28 |= 0x8000; *temp_r28 |= 0x8000;
Hu3DCameraCreate(1); Hu3DCameraCreate(1);
temp_r29 = &lbl_8018BFC0; temp_r29 = &lbl_8018BFC0;
Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0, 480.0, 0.0f, 1.0f); Hu3DCameraViewportSet(1, 0.0f, 0.0f, 640.0, 480.0, 0.0f, 1.0f);
lbl_2_bss_114 = fn_8002F454(lbl_2_bss_1C, 0x3E8, 3, 0, -1, &fn_2_BD90); lbl_2_bss_114 = omAddObjEx(lbl_2_bss_1C, 0x3E8, 3, 0, -1, &fn_2_BD90);
*lbl_2_bss_114->model = 0; *lbl_2_bss_114->model = 0;
lbl_2_bss_110 = fn_8002F454(lbl_2_bss_1C, 0xA, 0, 0, -1, &fn_2_70C); lbl_2_bss_110 = omAddObjEx(lbl_2_bss_1C, 0xA, 0, 0, -1, &fn_2_70C);
fn_8002F9C4(lbl_2_bss_1C, 0, 4); omMakeGroupEx(lbl_2_bss_1C, 0, 4);
lbl_2_bss_118[0] = fn_8002FAC0(lbl_2_bss_1C, 0); lbl_2_bss_118[0] = omGetGroupMemberListEx(lbl_2_bss_1C, 0);
fn_8002F9C4(lbl_2_bss_1C, 1, 0x1C); omMakeGroupEx(lbl_2_bss_1C, 1, 0x1C);
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
temp_r30 = fn_8002F454(lbl_2_bss_1C, 0x4B0, 4, 0xA, 0, &fn_2_3B24); temp_r30 = omAddObjEx(lbl_2_bss_1C, 0x4B0, 4, 0xA, 0, &fn_2_3B24);
temp_r30->unk_4C = i; temp_r30->unk_4C = i;
} }
lbl_2_bss_12C = 60.0f; lbl_2_bss_12C = 60.0f;
lbl_2_bss_128 = 50.0f; lbl_2_bss_128 = 50.0f;
lbl_2_bss_124 = 25000.0f; lbl_2_bss_124 = 25000.0f;
fn_800241C0(30.0f, 30.0f, 20.0f); Hu3DShadowCreate(30.0f, 30.0f, 20.0f);
fn_800243AC(0.35f); Hu3DShadowTPLvlSet(0.35f);
lbl_2_data_30.y = (f32) (1500.0f + lbl_2_bss_60.y); lbl_2_data_30.y = (f32) (1500.0f + lbl_2_bss_60.y);
lbl_2_data_30.z = (f32) (500.0f + lbl_2_bss_60.z); lbl_2_data_30.z = (f32) (500.0f + lbl_2_bss_60.z);
lbl_2_data_48.y = (f32) lbl_2_bss_60.y; lbl_2_data_48.y = (f32) lbl_2_bss_60.y;
lbl_2_data_48.z = (f32) (500.0f + lbl_2_bss_60.z); lbl_2_data_48.z = (f32) (500.0f + lbl_2_bss_60.z);
fn_80024348(&lbl_2_data_30, &lbl_2_data_3C, &lbl_2_data_48); Hu3DShadowPosSet(&lbl_2_data_30, &lbl_2_data_3C, &lbl_2_data_48);
lbl_2_bss_10C = fn_8002F454(lbl_2_bss_1C, 0x1F4, 0xC, 3, -1, &fn_2_2FA4); lbl_2_bss_10C = omAddObjEx(lbl_2_bss_1C, 0x1F4, 0xC, 3, -1, &fn_2_2FA4);
lbl_2_bss_108 = fn_8002F454(lbl_2_bss_1C, 0x44C, 1, 1, -1, &fn_2_7CB4); lbl_2_bss_108 = omAddObjEx(lbl_2_bss_1C, 0x44C, 1, 1, -1, &fn_2_7CB4);
lbl_2_bss_100.unk_00 = fn_8002F454(lbl_2_bss_1C, 0x456, 1, 1, -1, &fn_2_8E74); lbl_2_bss_100.unk_00 = omAddObjEx(lbl_2_bss_1C, 0x456, 1, 1, -1, &fn_2_8E74);
lbl_2_bss_100.unk_04 = fn_8002F454(lbl_2_bss_1C, 0x456, 1, 1, -1, &fn_2_8E74); lbl_2_bss_100.unk_04 = omAddObjEx(lbl_2_bss_1C, 0x456, 1, 1, -1, &fn_2_8E74);
lbl_2_bss_FC = fn_8002F454(lbl_2_bss_1C, 0x460, 1, 2, -1, &fn_2_95E4); lbl_2_bss_FC = omAddObjEx(lbl_2_bss_1C, 0x460, 1, 2, -1, &fn_2_95E4);
lbl_2_bss_C8 = fn_8002F454(lbl_2_bss_1C, 0x64, 0, 0, -1, &fn_2_D088); lbl_2_bss_C8 = omAddObjEx(lbl_2_bss_1C, 0x64, 0, 0, -1, &fn_2_D088);
lbl_2_bss_E0 = fn_8002F454(lbl_2_bss_1C, 0x5DC, 0, 0, -1, &fn_2_C1C); lbl_2_bss_E0 = omAddObjEx(lbl_2_bss_1C, 0x5DC, 0, 0, -1, &fn_2_C1C);
fn_2_DBCC(0x5A); fn_2_DBCC(0x5A);
lbl_2_bss_F8 = fn_8002F454(lbl_2_bss_1C, 0x1F4, 9, 0, -1, &fn_2_C6DC); lbl_2_bss_F8 = omAddObjEx(lbl_2_bss_1C, 0x1F4, 9, 0, -1, &fn_2_C6DC);
fn_2_9D00(lbl_2_bss_1C); fn_2_9D00(lbl_2_bss_1C);
fn_2_1041C(); fn_2_1041C();
fn_2_1079C(); fn_2_1079C();
lbl_2_bss_F4 = fn_2_14640(lbl_2_bss_1C); lbl_2_bss_F4 = fn_2_14640(lbl_2_bss_1C);
lbl_2_bss_50 = 0.0f; lbl_2_bss_50 = 0.0f;
lbl_2_bss_54.unk_00 = temp_r29->unk_14; lbl_2_bss_54.unk_00 = temp_r29->unk_14;
fn_800240E4(0); Hu3DReflectNoSet(0);
lbl_2_bss_120 = 0; lbl_2_bss_120 = 0;
lbl_2_bss_BE = 0; lbl_2_bss_BE = 0;
lbl_2_bss_BA = 0; lbl_2_bss_BA = 0;
fn_800240EC(3000.0f, 10000.0f, 0xAU, 0x3CU, 0xA0U); Hu3DFogSet(3000.0f, 10000.0f, 0xAU, 0x3CU, 0xA0U);
Hu3DBGColorSet(0xAU, 0x3CU, 0xA0U); Hu3DBGColorSet(0xAU, 0x3CU, 0xA0U);
lbl_2_bss_88 = 3000.0f; lbl_2_bss_88 = 3000.0f;
lbl_2_bss_84 = 142000.0f; lbl_2_bss_84 = 142000.0f;
lbl_2_bss_11C = fn_80032A94(0x50A); lbl_2_bss_11C = HuAudFXPlay(0x50A);
} }
void fn_2_70C(unkStructBSS114* arg0) { void fn_2_70C(unkStructBSS114* arg0) {
@ -76,13 +76,13 @@ void fn_2_70C(unkStructBSS114* arg0) {
case 1: case 1:
if (lbl_2_bss_BE == 1) { if (lbl_2_bss_BE == 1) {
lbl_2_bss_120 = 2; lbl_2_bss_120 = 2;
lbl_2_bss_C0 = fn_80035794(3, 1); lbl_2_bss_C0 = MGSeqCreate(3, 1);
fn_80033140(lbl_2_bss_A4, 0x64); HuAudSeqFadeOut(lbl_2_bss_A4, 0x64);
} }
break; break;
case 2: case 2:
if (lbl_2_bss_114 == NULL) { if (lbl_2_bss_114 == NULL) {
lbl_2_bss_114 = fn_8002F454(HuPrcCurrentGet(), 0x3E8, 0, 0, -1, &fn_2_C130); lbl_2_bss_114 = omAddObjEx(HuPrcCurrentGet(), 0x3E8, 0, 0, -1, &fn_2_C130);
*lbl_2_bss_114->model = 0; *lbl_2_bss_114->model = 0;
var_r29 = 0; var_r29 = 0;
lbl_2_bss_BA = 0; lbl_2_bss_BA = 0;
@ -112,9 +112,9 @@ void fn_2_70C(unkStructBSS114* arg0) {
break; break;
} }
if (lbl_801D3CC2 != 0) { if (lbl_801D3CC2 != 0) {
fn_800414AC(2, 0, 0x3C); WipeCreate(2, 0, 0x3C);
fn_80033140(lbl_2_bss_A4, 0x64); HuAudSeqFadeOut(lbl_2_bss_A4, 0x64);
fn_80032BC4(lbl_2_bss_11C); HuAudFXStop(lbl_2_bss_11C);
arg0->unk_14 = &fn_2_A10; arg0->unk_14 = &fn_2_A10;
} }
} }
@ -122,23 +122,23 @@ void fn_2_70C(unkStructBSS114* arg0) {
void fn_2_A10(void) { void fn_2_A10(void) {
s32 i; s32 i;
if (fn_80041600() == 0) { if (WipeStatGet() == 0) {
fn_2_10710(); fn_2_10710();
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
fn_8004D6F4(lbl_2_data_4[lbl_8018FC10[i].unk_00]); fn_8004D6F4(lbl_2_data_4[lbl_8018FC10[i].unk_00]);
} }
fn_80032F7C(); HuAudFXListnerKill();
fn_8002EF20(1, 1); omOvlReturnEx(1, 1);
} }
} }
void fn_2_A98(void) { void M401SetFogAndBG(void) {
fn_800240EC(174.0f, 271.0f, 0xA, 0x3C, 0xA0); Hu3DFogSet(174.0f, 271.0f, 0xA, 0x3C, 0xA0);
Hu3DBGColorSet(0xAU, 0x3CU, 0xA0U); Hu3DBGColorSet(0xAU, 0x3CU, 0xA0U);
} }
void fn_2_AEC(s16 arg0) { void M401SetSpriteDisp(s16 arg0) {
s32 j; s32 j;
s32 i; s32 i;
unkSubstructBSS114* temp_r31; unkSubstructBSS114* temp_r31;
@ -146,21 +146,21 @@ void fn_2_AEC(s16 arg0) {
temp_r31 = lbl_2_bss_E0->unk_5C; temp_r31 = lbl_2_bss_E0->unk_5C;
if (arg0 != 0) { if (arg0 != 0) {
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
fn_8003FBA8(temp_r31->unk_00[i]); espDispOn(temp_r31->unk_00[i]);
fn_8003FBA8(temp_r31->unk_80[i]); espDispOn(temp_r31->unk_80[i]);
fn_8003FBA8(temp_r31->unk_88[i]); espDispOn(temp_r31->unk_88[i]);
for (j = 0; j < 2; j++) { for (j = 0; j < 2; j++) {
fn_8003FBA8(temp_r31->unk_08[i][j]); espDispOn(temp_r31->unk_08[i][j]);
} }
} }
return; return;
} }
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
fn_8003FBEC(temp_r31->unk_00[i]); espDispOff(temp_r31->unk_00[i]);
fn_8003FBEC(temp_r31->unk_80[i]); espDispOff(temp_r31->unk_80[i]);
fn_8003FBEC(temp_r31->unk_88[i]); espDispOff(temp_r31->unk_88[i]);
for (j = 0; j < 2; j++) { for (j = 0; j < 2; j++) {
fn_8003FBEC(temp_r31->unk_08[i][j]); espDispOff(temp_r31->unk_08[i][j]);
} }
} }
} }
@ -177,39 +177,39 @@ void fn_2_C1C(unkStructBSS114* arg0) {
arg0->unk_5C = HuMemDirectMallocNum(0, 0x148, 0x10000000U); arg0->unk_5C = HuMemDirectMallocNum(0, 0x148, 0x10000000U);
temp_r31 = arg0->unk_5C; temp_r31 = arg0->unk_5C;
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
temp_r31->unk_00[i] = fn_8003F958(lbl_2_data_80[lbl_8018FC10[i].unk_00], 2, 0); temp_r31->unk_00[i] = espEntry(lbl_2_data_80[lbl_8018FC10[i].unk_00], 2, 0);
fn_8003FBEC(temp_r31->unk_00[i]); espDispOff(temp_r31->unk_00[i]);
fn_8003FED8(temp_r31->unk_00[i], 0); espDrawNoSet(temp_r31->unk_00[i], 0);
fn_8003FCC0(temp_r31->unk_00[i], (f32) ((i & 1) * 0x1B6 + 0x25), ((i>1)*0x166)+0x3B); espPosSet(temp_r31->unk_00[i], (f32) ((i & 1) * 0x1B6 + 0x25), ((i>1)*0x166)+0x3B);
temp_r31->unk_80[i] = fn_8003F958(0x20002F, 3, 0); temp_r31->unk_80[i] = espEntry(0x20002F, 3, 0);
fn_8003FBEC(temp_r31->unk_80[i]); espDispOff(temp_r31->unk_80[i]);
fn_8003FED8(temp_r31->unk_80[i], 0); espDrawNoSet(temp_r31->unk_80[i], 0);
fn_8003FCC0(temp_r31->unk_80[i], (f32) (((i & 1) * 0x1B6) + 0x49), (((i>1) * 0x166) + 0x3D)); espPosSet(temp_r31->unk_80[i], (f32) (((i & 1) * 0x1B6) + 0x49), (((i>1) * 0x166) + 0x3D));
temp_r31->unk_88[i] = fn_8003F958(0x200030, 4, 0); temp_r31->unk_88[i] = espEntry(0x200030, 4, 0);
fn_8003FBEC(temp_r31->unk_88[i]); espDispOff(temp_r31->unk_88[i]);
fn_8003FED8(temp_r31->unk_88[i], 0); espDrawNoSet(temp_r31->unk_88[i], 0);
fn_8003FCC0(temp_r31->unk_88[i], (f32) (((i & 1) * 0x1B6) + 0x49), (((i>1) * 0x166) + 0x3D)); espPosSet(temp_r31->unk_88[i], (f32) (((i & 1) * 0x1B6) + 0x49), (((i>1) * 0x166) + 0x3D));
fn_8003FDF0(temp_r31->unk_88[i], 0, 0, 0); espColorSet(temp_r31->unk_88[i], 0, 0, 0);
fn_8003FDA8(temp_r31->unk_88[i], 0.5f); espTPLvlSet(temp_r31->unk_88[i], 0.5f);
for (j = 0; j < 2; j++) { for (j = 0; j < 2; j++) {
temp_r31->unk_08[i][j] = fn_8003F958(0x20002E, 1, 0); temp_r31->unk_08[i][j] = espEntry(0x20002E, 1, 0);
fn_8003FBEC(temp_r31->unk_08[i][j]); espDispOff(temp_r31->unk_08[i][j]);
fn_8003FED8(temp_r31->unk_08[i][j], 0); espDrawNoSet(temp_r31->unk_08[i][j], 0);
fn_8003FCC0(temp_r31->unk_08[i][j], 0x45 + ((i & 1) * 0x1B6) + (j * 0x14), ((i>1) * 0x166) + 0x3F); espPosSet(temp_r31->unk_08[i][j], 0x45 + ((i & 1) * 0x1B6) + (j * 0x14), ((i>1) * 0x166) + 0x3F);
fn_8003FC30(temp_r31->unk_08[i][j], 1); espAttrSet(temp_r31->unk_08[i][j], 1);
} }
for (j = 0; j < 3; j++) { for (j = 0; j < 3; j++) {
temp_r31->unk_50[i][j] = fn_8003F958(0x20002D, 0, 0); temp_r31->unk_50[i][j] = espEntry(0x20002D, 0, 0);
fn_8003FBEC(temp_r31->unk_50[i][j]); espDispOff(temp_r31->unk_50[i][j]);
fn_8003FED8(temp_r31->unk_50[i][j], 0); espDrawNoSet(temp_r31->unk_50[i][j], 0);
fn_8003FC30(temp_r31->unk_50[i][j], 1); espAttrSet(temp_r31->unk_50[i][j], 1);
temp_r31->unk_68[i][j] = fn_8003F958(0x20002D, 0, 0); temp_r31->unk_68[i][j] = espEntry(0x20002D, 0, 0);
fn_8003FBEC(temp_r31->unk_68[i][j]); espDispOff(temp_r31->unk_68[i][j]);
fn_8003FED8(temp_r31->unk_68[i][j], 0); espDrawNoSet(temp_r31->unk_68[i][j], 0);
fn_8003FC30(temp_r31->unk_68[i][j], 1); espAttrSet(temp_r31->unk_68[i][j], 1);
} }
fn_8003FE90(temp_r31->unk_50[i][0], 0xA); espBankSet(temp_r31->unk_50[i][0], 0xA);
fn_8003FE90(temp_r31->unk_68[i][0], 0xB); espBankSet(temp_r31->unk_68[i][0], 0xB);
temp_r31->unk_90[i] = 1.0f; temp_r31->unk_90[i] = 1.0f;
temp_r31->unk_A0[i] = 1.0f; temp_r31->unk_A0[i] = 1.0f;
temp_r31->unk_130[i] = 0; temp_r31->unk_130[i] = 0;
@ -241,8 +241,8 @@ void fn_2_11D0(unkStructBSS114* arg0) {
fn_2_10240(&sp18, &spC); fn_2_10240(&sp18, &spC);
for (j = 0; j < 3; j++) { for (j = 0; j < 3; j++) {
fn_8003FCC0(temp_r31->unk_50[i][j], -20.0f + spC.x + temp_r31->unk_F0[i] + (f32) (j * 0x10), 20.0f + spC.y + temp_r31->unk_100[i]); espPosSet(temp_r31->unk_50[i][j], -20.0f + spC.x + temp_r31->unk_F0[i] + (f32) (j * 0x10), 20.0f + spC.y + temp_r31->unk_100[i]);
fn_8003FDA8(temp_r31->unk_50[i][j], temp_r31->unk_90[i]); espTPLvlSet(temp_r31->unk_50[i][j], temp_r31->unk_90[i]);
} }
temp_r31->unk_C0[i] -= 0.5f; temp_r31->unk_C0[i] -= 0.5f;
@ -252,8 +252,8 @@ void fn_2_11D0(unkStructBSS114* arg0) {
} }
if (--temp_r31->unk_130[i] == 0) { if (--temp_r31->unk_130[i] == 0) {
fn_8003FBEC(temp_r31->unk_50[i][0]); espDispOff(temp_r31->unk_50[i][0]);
fn_8003FBEC(temp_r31->unk_50[i][1]); espDispOff(temp_r31->unk_50[i][1]);
} }
} }
if (temp_r31->unk_138[i] != 0) { if (temp_r31->unk_138[i] != 0) {
@ -264,8 +264,8 @@ void fn_2_11D0(unkStructBSS114* arg0) {
fn_2_10240(&sp18, &spC); fn_2_10240(&sp18, &spC);
for (j = 0; j < 2; j++) { for (j = 0; j < 2; j++) {
fn_8003FCC0(temp_r31->unk_68[i][j], -20.0f + spC.x + temp_r31->unk_110[i] + (f32) (j * 0x10), -20.0f + spC.y + temp_r31->unk_120[i]); espPosSet(temp_r31->unk_68[i][j], -20.0f + spC.x + temp_r31->unk_110[i] + (f32) (j * 0x10), -20.0f + spC.y + temp_r31->unk_120[i]);
fn_8003FDA8(temp_r31->unk_68[i][j], temp_r31->unk_A0[i]); espTPLvlSet(temp_r31->unk_68[i][j], temp_r31->unk_A0[i]);
} }
temp_r31->unk_E0[i] += 0.5f; temp_r31->unk_E0[i] += 0.5f;
@ -275,8 +275,8 @@ void fn_2_11D0(unkStructBSS114* arg0) {
} }
if (--temp_r31->unk_138[i] == 0) { if (--temp_r31->unk_138[i] == 0) {
fn_8003FBEC(temp_r31->unk_68[i][0]); espDispOff(temp_r31->unk_68[i][0]);
fn_8003FBEC(temp_r31->unk_68[i][1]); espDispOff(temp_r31->unk_68[i][1]);
} }
} }
fn_2_15C4(i); fn_2_15C4(i);
@ -291,8 +291,8 @@ void fn_2_15C4(s16 arg0) {
temp_r31 = lbl_2_bss_E0->unk_5C; temp_r31 = lbl_2_bss_E0->unk_5C;
temp_r29 = lbl_2_bss_118[arg0]->unk_5C; temp_r29 = lbl_2_bss_118[arg0]->unk_5C;
temp_r30 = temp_r29->unk_68[1][2]; temp_r30 = temp_r29->unk_68[1][2];
fn_8003FE90(temp_r31->unk_08[arg0][0], temp_r30 / 10); espBankSet(temp_r31->unk_08[arg0][0], temp_r30 / 10);
fn_8003FE90(temp_r31->unk_08[arg0][1], temp_r30 % 10); espBankSet(temp_r31->unk_08[arg0][1], temp_r30 % 10);
} }
void fn_2_169C(s16 arg0) { void fn_2_169C(s16 arg0) {
@ -303,14 +303,14 @@ void fn_2_169C(s16 arg0) {
temp_r31 = lbl_2_bss_E0->unk_5C; temp_r31 = lbl_2_bss_E0->unk_5C;
temp_r28 = lbl_2_bss_118[arg0]->unk_5C; temp_r28 = lbl_2_bss_118[arg0]->unk_5C;
for (i = 0; i < 2; i++) { for (i = 0; i < 2; i++) {
fn_8003FBA8(temp_r31->unk_50[arg0][i]); espDispOn(temp_r31->unk_50[arg0][i]);
} }
temp_r31->unk_90[arg0] = 1.0f; temp_r31->unk_90[arg0] = 1.0f;
temp_r31->unk_C0[arg0] = ((arg0 > 1) * 0x18E) + 0x34; temp_r31->unk_C0[arg0] = ((arg0 > 1) * 0x18E) + 0x34;
temp_r31->unk_B0[arg0] = ((arg0 & 1) * 0x1BA) + 0x29; temp_r31->unk_B0[arg0] = ((arg0 & 1) * 0x1BA) + 0x29;
temp_r31->unk_100[arg0] = 0.0f; temp_r31->unk_100[arg0] = 0.0f;
temp_r31->unk_F0[arg0] = 0.0f; temp_r31->unk_F0[arg0] = 0.0f;
fn_8003FE90(temp_r31->unk_50[arg0][1], temp_r28->unk_68[2][0]); espBankSet(temp_r31->unk_50[arg0][1], temp_r28->unk_68[2][0]);
temp_r31->unk_130[arg0] = 0x2D; temp_r31->unk_130[arg0] = 0x2D;
} }
@ -324,14 +324,14 @@ void fn_2_1858(s16 arg0, s16 arg1) {
temp_r31 = lbl_2_bss_E0->unk_5C; temp_r31 = lbl_2_bss_E0->unk_5C;
temp_r29 = lbl_2_bss_118[arg0]->unk_5C; temp_r29 = lbl_2_bss_118[arg0]->unk_5C;
for (var_r28 = 0; var_r28 < 2; var_r28++) { for (var_r28 = 0; var_r28 < 2; var_r28++) {
fn_8003FBA8(temp_r31->unk_68[arg0][var_r28]); espDispOn(temp_r31->unk_68[arg0][var_r28]);
} }
temp_r31->unk_A0[arg0] = 1.0f; temp_r31->unk_A0[arg0] = 1.0f;
temp_r31->unk_E0[arg0] = ((arg0 > 1) * 0x18E) + 0x14; temp_r31->unk_E0[arg0] = ((arg0 > 1) * 0x18E) + 0x14;
temp_r31->unk_D0[arg0] = ((arg0 & 1) * 0x1BA) + 0x29; temp_r31->unk_D0[arg0] = ((arg0 & 1) * 0x1BA) + 0x29;
temp_r31->unk_120[arg0] = 0.0f; temp_r31->unk_120[arg0] = 0.0f;
temp_r31->unk_110[arg0] = 0.0f; temp_r31->unk_110[arg0] = 0.0f;
fn_8003FE90(temp_r31->unk_68[arg0][1], arg1); espBankSet(temp_r31->unk_68[arg0][1], arg1);
temp_r31->unk_138[arg0] = 0x2D; temp_r31->unk_138[arg0] = 0x2D;
temp_r31->unk_140[arg0] = arg1; temp_r31->unk_140[arg0] = arg1;
temp_r29->unk_68[1][2] -= arg1; temp_r29->unk_68[1][2] -= arg1;
@ -347,7 +347,7 @@ void fn_2_1858(s16 arg0, s16 arg1) {
// unkStructBSS114 *temp; // unkStructBSS114 *temp;
// unkStructBSS114 *temp2; // unkStructBSS114 *temp2;
// temp = fn_80021444(arg0->unk_40->unk_00[0], lbl_2_data_124); // temp = Hu3DModelObjPtrGet(arg0->unk_40->unk_00[0], lbl_2_data_124);
// temp->unk_04 = 2; // temp->unk_04 = 2;
// sp20.x = -2500.0f; // sp20.x = -2500.0f;
@ -369,7 +369,7 @@ void fn_2_1858(s16 arg0, s16 arg1) {
// unkStructBSS114* temp; // unkStructBSS114* temp;
// unkStructBSS114* temp2; // unkStructBSS114* temp2;
// temp = fn_80021444(arg0->unk_40->unk_00[0], lbl_2_data_124[1]); // temp = Hu3DModelObjPtrGet(arg0->unk_40->unk_00[0], lbl_2_data_124[1]);
// temp->unk_04 = 2; // temp->unk_04 = 2;
// sp14.x = -1000.0f; // sp14.x = -1000.0f;
// sp14.y = 0.0f; // sp14.y = 0.0f;
@ -378,7 +378,7 @@ void fn_2_1858(s16 arg0, s16 arg1) {
// sp8.y = 100.0f; // sp8.y = 100.0f;
// sp8.z = 100.0f; // sp8.z = 100.0f;
// temp2 = fn_2_FC40(0xE, &sp14, &sp8, &sp14); // temp2 = fn_2_FC40(0xE, &sp14, &sp8, &sp14);
// fn_8002FB20(temp2, 3.0f, 0.0f, 0.0f); // omSetRot(temp2, 3.0f, 0.0f, 0.0f);
// fn_8002FB30(temp2, 0.0f, 0.0f, 50.0f); // fn_8002FB30(temp2, 0.0f, 0.0f, 50.0f);
// fn_2_E6BC(temp2->unk_4C, 4.5f, 2.5f, 0.08f, 0.9f, 1.0f); // fn_2_E6BC(temp2->unk_4C, 4.5f, 2.5f, 0.08f, 0.9f, 1.0f);
// } // }
@ -389,7 +389,7 @@ void fn_2_1858(s16 arg0, s16 arg1) {
// Vec3f sp8; // Vec3f sp8;
// unkStructBSS114 *temp; // unkStructBSS114 *temp;
// temp = fn_80021444(arg0->unk_40->unk_00[0], lbl_2_data_124[2]); // temp = Hu3DModelObjPtrGet(arg0->unk_40->unk_00[0], lbl_2_data_124[2]);
// temp->unk_04 = 2; // temp->unk_04 = 2;
// sp20.x = 500.0f; // sp20.x = 500.0f;
// sp20.y = 0.0f; // sp20.y = 0.0f;
@ -411,14 +411,14 @@ void fn_2_1858(s16 arg0, s16 arg1) {
// unkStructBSS114 *temp2; // unkStructBSS114 *temp2;
// unkStructBSS114 *temp; // unkStructBSS114 *temp;
// temp = fn_80021444(arg0->unk_40->unk_00[0], lbl_2_data_124[3]); // temp = Hu3DModelObjPtrGet(arg0->unk_40->unk_00[0], lbl_2_data_124[3]);
// temp->unk_04 = 2; // temp->unk_04 = 2;
// sp2C.x = 0.0f; // sp2C.x = 0.0f;
// sp2C.y = -150.0f + 0.003921569f * (300.0f * fn_800325F4()); // sp2C.y = -150.0f + 0.003921569f * (300.0f * frand());
// sp2C.z = -23000.0f; // sp2C.z = -23000.0f;
// fn_2_91AC(lbl_2_bss_100.unk_00, &sp2C); // fn_2_91AC(lbl_2_bss_100.unk_00, &sp2C);
// sp2C.x = 0.0f; // sp2C.x = 0.0f;
// sp2C.y = -150.0f + 0.003921569f * (300.0f * fn_800325F4()); // sp2C.y = -150.0f + 0.003921569f * (300.0f * frand());
// sp2C.z = -25000.0f; // sp2C.z = -25000.0f;
// fn_2_91AC(lbl_2_bss_100.unk_04, &sp2C); // fn_2_91AC(lbl_2_bss_100.unk_04, &sp2C);
// sp2C.x = 5500.0f; // sp2C.x = 5500.0f;
@ -436,28 +436,28 @@ void fn_2_1858(s16 arg0, s16 arg1) {
// sp8.y = -360.0f; // sp8.y = -360.0f;
// sp8.z = -26300.0f; // sp8.z = -26300.0f;
// lbl_2_bss_D0 = fn_2_10A88(&sp8, 3); // lbl_2_bss_D0 = fn_2_10A88(&sp8, 3);
// lbl_2_bss_90[0] = fn_80032EAC(0x50B, &sp8); // lbl_2_bss_90[0] = HuAudFXEmiterPlay(0x50B, &sp8);
// } // }
// void fn_2_20B0(omObjData* arg0) { // void fn_2_20B0(omObjData* arg0) {
// Vec3f sp8; // Vec3f sp8;
// omObjData* temp; // omObjData* temp;
// temp = fn_80021444(arg0->model[0], lbl_2_data_124[4]); // temp = Hu3DModelObjPtrGet(arg0->model[0], lbl_2_data_124[4]);
// temp->unk_04 = 2; // temp->unk_04 = 2;
// fn_8002127C(arg0->unk_40->unk_08[1][0], 1); // Hu3DModelAttrReset(arg0->unk_40->unk_08[1][0], 1);
// sp8.x = 0.0f; // sp8.x = 0.0f;
// sp8.y = -370.0f; // sp8.y = -370.0f;
// sp8.z = -43000.0f; // sp8.z = -43000.0f;
// lbl_2_bss_8 = fn_2_10A88(&sp8, 3); // lbl_2_bss_8 = fn_2_10A88(&sp8, 3);
// lbl_2_bss_90[1] = fn_80032EAC(0x50B, &sp8); // lbl_2_bss_90[1] = HuAudFXEmiterPlay(0x50B, &sp8);
// sp8.x = 380.0f; // sp8.x = 380.0f;
// sp8.y = -440.0f; // sp8.y = -440.0f;
// sp8.z = -32000.0f; // sp8.z = -32000.0f;
// lbl_2_bss_CC = fn_2_10A88(&sp8, 3); // lbl_2_bss_CC = fn_2_10A88(&sp8, 3);
// lbl_2_bss_90[2] = fn_80032EAC(0x50B, &sp8); // lbl_2_bss_90[2] = HuAudFXEmiterPlay(0x50B, &sp8);
// fn_8002127C(arg0->unk_40->unk_00[2], 1); // Hu3DModelAttrReset(arg0->unk_40->unk_00[2], 1);
// fn_80021228(arg0->unk_40->unk_00[2], -0x3FFFFFFF); // Hu3DModelAttrSet(arg0->unk_40->unk_00[2], -0x3FFFFFFF);
// } // }
// void fn_2_21F8(omObjData* arg0) { // void fn_2_21F8(omObjData* arg0) {
@ -469,14 +469,14 @@ void fn_2_1858(s16 arg0, s16 arg1) {
// s32 var_r30_2; // s32 var_r30_2;
// unkStructBSS114* temp; // unkStructBSS114* temp;
// temp = fn_80021444(arg0->model[0], *lbl_2_data_124); // temp = Hu3DModelObjPtrGet(arg0->model[0], *lbl_2_data_124);
// temp->unk_04 = 2; // temp->unk_04 = 2;
// fn_8002127C(arg0->model[0], 1); // Hu3DModelAttrReset(arg0->model[0], 1);
// fn_8002127C(arg0->model[1], 1); // Hu3DModelAttrReset(arg0->model[1], 1);
// fn_80021228(arg0->model[0], 0x40000001); // Hu3DModelAttrSet(arg0->model[0], 0x40000001);
// fn_80021228(arg0->model[1], 0x40000001); // Hu3DModelAttrSet(arg0->model[1], 0x40000001);
// fn_8002127C(arg0->model[3], 1); // Hu3DModelAttrReset(arg0->model[3], 1);
// lbl_2_bss_44.x = 0.0f; // lbl_2_bss_44.x = 0.0f;
// lbl_2_bss_44.y = 100.0f; // lbl_2_bss_44.y = 100.0f;
// lbl_2_bss_44.z = 0.0f; // lbl_2_bss_44.z = 0.0f;
@ -486,32 +486,32 @@ void fn_2_1858(s16 arg0, s16 arg1) {
// lbl_2_bss_2C.x = 0.0f; // lbl_2_bss_2C.x = 0.0f;
// lbl_2_bss_2C.y = 1.0f; // lbl_2_bss_2C.y = 1.0f;
// lbl_2_bss_2C.z = 0.0f; // lbl_2_bss_2C.z = 0.0f;
// fn_80022144(1, &lbl_2_bss_44, &lbl_2_bss_2C, &lbl_2_bss_38); // Hu3DCameraPosSetV(1, &lbl_2_bss_44, &lbl_2_bss_2C, &lbl_2_bss_38);
// Hu3DCameraPerspectiveSet(1, lbl_2_bss_12C, lbl_2_bss_128, lbl_2_bss_124, 1.2f); // Hu3DCameraPerspectiveSet(1, lbl_2_bss_12C, lbl_2_bss_128, lbl_2_bss_124, 1.2f);
// lbl_2_bss_54.unk_00 = lbl_2_bss_44; // lbl_2_bss_54.unk_00 = lbl_2_bss_44;
// fn_2_D088(NULL); // fn_2_D088(NULL);
// sp20 = lbl_2_bss_44; // sp20 = lbl_2_bss_44;
// PSVECSubtract(&lbl_2_bss_38, &lbl_2_bss_44, &sp2C); // PSVECSubtract(&lbl_2_bss_38, &lbl_2_bss_44, &sp2C);
// fn_800BBFB0(&sp2C, &sp2C); // PSVECNormalize(&sp2C, &sp2C);
// fn_80032D3C(&sp20, &sp2C, lbl_2_bss_88, lbl_2_bss_84, 0x12C, 0x12C, 0x12C); // fn_80032D3C(&sp20, &sp2C, lbl_2_bss_88, lbl_2_bss_84, 0x12C, 0x12C, 0x12C);
// sp14.x = 300.0f; // sp14.x = 300.0f;
// sp14.y = -450.0f; // sp14.y = -450.0f;
// sp14.z = -3100.0f; // sp14.z = -3100.0f;
// lbl_2_bss_D8 = fn_2_10A88(&sp14, 3); // lbl_2_bss_D8 = fn_2_10A88(&sp14, 3);
// lbl_2_bss_90[0] = fn_80032EAC(0x50B, &sp14); // lbl_2_bss_90[0] = HuAudFXEmiterPlay(0x50B, &sp14);
// sp14.x = -300.0f; // sp14.x = -300.0f;
// sp14.y = -340.0f; // sp14.y = -340.0f;
// sp14.z = -4720.0f; // sp14.z = -4720.0f;
// lbl_2_bss_D4 = fn_2_10A88(&sp14, 3); // lbl_2_bss_D4 = fn_2_10A88(&sp14, 3);
// lbl_2_bss_90[1] = fn_80032EAC(0x50B, &sp14); // lbl_2_bss_90[1] = HuAudFXEmiterPlay(0x50B, &sp14);
// fn_8002127C(arg0->model[2], 1); // Hu3DModelAttrReset(arg0->model[2], 1);
// fn_80021228(arg0->model[2], -0x3FFFFFFF); // Hu3DModelAttrSet(arg0->model[2], -0x3FFFFFFF);
// var_r30_2 = 4; // var_r30_2 = 4;
// for (i = 0; i < var_r30_2; i++) { // for (i = 0; i < var_r30_2; i++) {
// sp8.x = -340.0f + (0.003921569f * (680.0f * fn_800325F4())); // sp8.x = -340.0f + (0.003921569f * (680.0f * frand()));
// sp8.y = -250.0f + (0.003921569f * (500.0f * fn_800325F4())); // sp8.y = -250.0f + (0.003921569f * (500.0f * frand()));
// sp8.z = ((-1550.0f - (f32) (i * 0x104)) - 40.0f) + (0.003921569f * (80.0f * fn_800325F4())); // sp8.z = ((-1550.0f - (f32) (i * 0x104)) - 40.0f) + (0.003921569f * (80.0f * frand()));
// fn_2_10A88(&sp8, 0); // fn_2_10A88(&sp8, 0);
// } // }
// } // }
@ -525,9 +525,9 @@ void fn_2_33B4(omObjData* arg0) {
} }
void fn_2_14738(omObjData* arg0) { void fn_2_14738(omObjData* arg0) {
fn_8002FB10(arg0, lbl_2_bss_6C.x, lbl_2_bss_6C.y, lbl_2_bss_6C.z); omSetTra(arg0, lbl_2_bss_6C.x, lbl_2_bss_6C.y, lbl_2_bss_6C.z);
if (arg0->work[0] == 1U) { if (arg0->work[0] == 1U) {
fn_80021228(*arg0->model, 1); Hu3DModelAttrSet(*arg0->model, 1);
fn_8002F7AC(HuPrcCurrentGet(), arg0); omDelObjEx(HuPrcCurrentGet(), arg0);
} }
} }

View file

@ -57,45 +57,45 @@ extern unkStruct18BFC0 lbl_8018BFC0;
extern unkStruct18C8FC lbl_8018C8FC[]; extern unkStruct18C8FC lbl_8018C8FC[];
extern s16 lbl_801D3CC2; extern s16 lbl_801D3CC2;
void fn_80021228(s16, s32); extern void Hu3DModelAttrSet(s16, s32);
void fn_8002127C(s16, s32); extern void Hu3DModelAttrReset(s16, s32);
unkStructBSS114* fn_80021444(s16, s32); extern omObjData* Hu3DModelObjPtrGet(s16, s32);
void fn_80022144(s32, Vec3f*, Vec3f*, Vec3f*); extern void Hu3DCameraPosSetV(s32, Vec3f*, Vec3f*, Vec3f*);
s16 fn_80022ADC(Vec3f*, Vec3f*, s32*); extern s16 Hu3DGLightCreateV(Vec3f*, Vec3f*, s32*);
void fn_80022EB4(s16); extern void Hu3DGLightInfinitytSet(s16);
void fn_800240E4(s16); extern void Hu3DReflectNoSet(s16);
void fn_800241C0(f32, f32, f32); extern void Hu3DShadowCreate(f32, f32, f32);
void fn_80024348(Vec3f*, Vec3f*, Vec3f*); extern void Hu3DShadowPosSet(Vec3f*, Vec3f*, Vec3f*);
void fn_800243AC(f32); extern void Hu3DShadowTPLvlSet(f32);
void fn_800240EC(f32, f32, u8, u8, u8); extern void Hu3DFogSet(f32, f32, u8, u8, u8);
void fn_8002EF20(s16, s16); extern void omOvlReturnEx(s16, s16);
omObjData* fn_8002F454(void*, s16, s16, s16, s16, void*); extern omObjData* omAddObjEx(void*, s16, s16, s16, s16, void*);
void fn_8002F7AC(s32*, omObjData*); extern void omDelObjEx(s32*, omObjData*);
void fn_8002F9C4(void*, s16, s16); extern void omMakeGroupEx(omObjData*, s16, s16);
unkStructBSS114* fn_8002FAC0(void*, s16); extern omObjData* omGetGroupMemberListEx(omObjData*, s16);
void fn_8002FB10(void*, f32, f32, f32); extern void omSetTra(omObjData*, f32, f32, f32);
void fn_8002FB20(unkStructBSS114*, f32, f32, f32); extern void omSetRot(omObjData*, f32, f32, f32);
void fn_8002FB30(unkStructBSS114*, f32, f32, f32); extern void omSetSca(omObjData*, f32, f32, f32);
u8 fn_800325F4(void); extern u8 frand(void);
s32 fn_80032A94(s32); extern s32 HuAudFXPlay(s32);
void fn_80032BC4(s32); extern void HuAudFXStop(s32);
s32 fn_80032EAC(s32, Vec3f*); extern s32 HuAudFXEmiterPlay(s32, Vec3f*);
void fn_80032F7C(void); extern void HuAudFXListnerKill(void);
void fn_80033140(s32, s32); extern void HuAudSeqFadeOut(s32, s32);
s16 fn_80035794(s32, ...); extern s16 MGSeqCreate(s32, ...);
s16 fn_8003F958(s32, s16, s16); extern s16 espEntry(s32, s16, s16);
void fn_8003FBA8(s16); extern void espDispOn(s16);
void fn_8003FBEC(s16); extern void espDispOff(s16);
void fn_8003FC30(s16, s16); extern void espAttrSet(s16, s16);
void fn_8003FCC0(s16, f32, f32); extern void espPosSet(s16, f32, f32);
void fn_8003FDA8(s16, f32); extern void espTPLvlSet(s16, f32);
void fn_8003FDF0(s16, s8, s8, s8); extern void espColorSet(s16, s8, s8, s8);
void fn_8003FE90(s16, s16); extern void espBankSet(s16, s16);
void fn_8003FED8(s16, s16); extern void espDrawNoSet(s16, s16);
void fn_800414AC(s16, s16, s16); extern void WipeCreate(s16, s16, s16);
u8 fn_80041600(void); extern u8 WipeStatGet(void);
void fn_80057E80(unkStruct18FC10*); extern void omGameSysInit(omObjData*);
f32 fn_800BBFB0(Vec3f*, Vec3f*); extern f32 PSVECNormalize(Vec3f*, Vec3f*);
// local data // // local data //
typedef struct unkStructBSS54 { typedef struct unkStructBSS54 {
@ -159,11 +159,11 @@ extern f32 lbl_2_bss_124;
extern f32 lbl_2_bss_128; extern f32 lbl_2_bss_128;
extern f32 lbl_2_bss_12C; extern f32 lbl_2_bss_12C;
void fn_2_A0(void); void M401ObjectSetup(void);
void fn_2_70C(unkStructBSS114*); void fn_2_70C(unkStructBSS114*);
void fn_2_A10(void); void fn_2_A10(void);
void fn_2_A98(void); void M401SetFogAndBG(void);
void fn_2_AEC(s16); void M401SetSpriteDisp(s16);
void fn_2_C1C(unkStructBSS114*); void fn_2_C1C(unkStructBSS114*);
void fn_2_11D0(unkStructBSS114*); void fn_2_11D0(unkStructBSS114*);
void fn_2_15C4(s16); void fn_2_15C4(s16);

View file

@ -1,9 +1,36 @@
#include "common.h" #include "common.h"
typedef struct ThreeDDataStruct { typedef struct ThreeDDataStruct {
char unk_00[0xC4]; f32 unk_00;
s32 unk_C4; f32 unk_04;
char unk_C8[0x5C]; f32 unk_08;
s16 unk_0C;
s16 unk_0E;
char unk_10[0x12];
u16 unk_22;
char unk_24[0x2C];
s32 unk_50;
s32 unk_54;
char unk_58[0xC];
f32 unk_64;
char unk_68[0xC];
f32 unk_74;
char unk_78[0x1C];
f32 unk_94;
char unk_98[0x2C];
void*unk_C4;
char unk_C8[0x4];
f32 unk_CC;
f32 unk_D0;
f32 unk_D4;
f32 unk_D8;
f32 unk_DC;
f32 unk_E0;
f32 unk_E4;
f32 unk_E8;
f32 unk_EC;
f32 unk_F0[4];
char unk_100[0x24];
} ThreeDDataStruct; } ThreeDDataStruct;
typedef struct ThreeDCameraStruct { typedef struct ThreeDCameraStruct {
f32 unk_00; f32 unk_00;
@ -64,7 +91,7 @@ void Hu3DInit(void) {
data = Hu3DData; data = Hu3DData;
for (i = 0; i < 0x200; i++, data++) { for (i = 0; i < 0x200; i++, data++) {
data->unk_C4 = 0; data->unk_C4 = NULL;
} }
camera = Hu3DCamera; camera = Hu3DCamera;
for (i = 0; i < 0x10; i++, camera++) { for (i = 0; i < 0x10; i++, camera++) {