up to fn_1_4660
This commit is contained in:
parent
8f65b73a5a
commit
e58da593ed
2 changed files with 203 additions and 12 deletions
|
|
@ -57,6 +57,9 @@ typedef struct _unkStruct5 { // could be unkStruct3
|
||||||
GXColor* unk24; // ?
|
GXColor* unk24; // ?
|
||||||
} unkStruct5;
|
} unkStruct5;
|
||||||
|
|
||||||
|
typedef void (*m440Func5)(omObjData*, unkStruct5*, Mtx*);
|
||||||
|
typedef void (*m440Func6)(struct _unkStruct6*);
|
||||||
|
|
||||||
typedef struct _unkStruct6 {
|
typedef struct _unkStruct6 {
|
||||||
s16 unk0;
|
s16 unk0;
|
||||||
s16 unk2;
|
s16 unk2;
|
||||||
|
|
@ -65,11 +68,15 @@ typedef struct _unkStruct6 {
|
||||||
char unk8[0x18];
|
char unk8[0x18];
|
||||||
s32 unk20;
|
s32 unk20;
|
||||||
char unk24[0x14];
|
char unk24[0x14];
|
||||||
void (*unk38)(s32);
|
m440Func6 unk38;
|
||||||
char unk3C[0x4];
|
s16 unk3C;
|
||||||
} unkStruct6; // 0x40
|
} unkStruct6; // sizeof 0x40
|
||||||
|
|
||||||
|
typedef struct _unkStruct7 {
|
||||||
|
GXColor unk0;
|
||||||
|
Vec unk4;
|
||||||
|
} unkStruct7;
|
||||||
|
|
||||||
typedef void (*m440Func5)(omObjData*, unkStruct5*, Mtx*);
|
|
||||||
|
|
||||||
////// BSS //////
|
////// BSS //////
|
||||||
// object.c
|
// object.c
|
||||||
|
|
@ -96,7 +103,7 @@ extern s8 lbl_1_bss_0;
|
||||||
extern f32 lbl_1_data_0[5];
|
extern f32 lbl_1_data_0[5];
|
||||||
extern Vec lbl_1_data_2C;
|
extern Vec lbl_1_data_2C;
|
||||||
extern Vec lbl_1_data_38;
|
extern Vec lbl_1_data_38;
|
||||||
extern GXColor lbl_1_data_44;
|
extern unkStruct7 lbl_1_data_44;
|
||||||
extern Vec lbl_1_data_54;
|
extern Vec lbl_1_data_54;
|
||||||
extern Vec lbl_1_data_60;
|
extern Vec lbl_1_data_60;
|
||||||
extern Vec lbl_1_data_6C;
|
extern Vec lbl_1_data_6C;
|
||||||
|
|
@ -105,6 +112,9 @@ extern s16 lbl_1_data_E4[2];
|
||||||
extern s16 lbl_1_data_E8[2];
|
extern s16 lbl_1_data_E8[2];
|
||||||
extern s16 lbl_1_data_EC[2];
|
extern s16 lbl_1_data_EC[2];
|
||||||
extern s16 lbl_1_data_F0[2];
|
extern s16 lbl_1_data_F0[2];
|
||||||
|
extern s32 lbl_1_data_F4[4];
|
||||||
|
// object.c
|
||||||
|
extern s16 lbl_1_data_1D8;
|
||||||
|
|
||||||
////// FUNCTIONS //////
|
////// FUNCTIONS //////
|
||||||
// main.c
|
// main.c
|
||||||
|
|
@ -137,5 +147,13 @@ extern void fn_1_2AB4(omObjData* object);
|
||||||
extern void fn_1_2B04(omObjData* object);
|
extern void fn_1_2B04(omObjData* object);
|
||||||
extern void fn_1_2CA8(omObjData* object);
|
extern void fn_1_2CA8(omObjData* object);
|
||||||
extern void fn_1_2D28(omObjData* object);
|
extern void fn_1_2D28(omObjData* object);
|
||||||
|
extern void fn_1_33D4(omObjData* object);
|
||||||
|
extern void fn_1_3DD8(omObjData* object);
|
||||||
|
extern void fn_1_4558(omObjData* object);
|
||||||
|
extern void fn_1_45BC(omObjData* object);
|
||||||
|
extern void fn_1_4660(omObjData* object);
|
||||||
|
extern void fn_1_46E0(omObjData* object);
|
||||||
|
extern void fn_1_4A20(omObjData* object);
|
||||||
|
extern void fn_1_4B44(omObjData* object);
|
||||||
// ...
|
// ...
|
||||||
extern f32 fn_1_93C0(f32, f32, f32);
|
extern f32 fn_1_93C0(f32, f32, f32);
|
||||||
|
|
@ -12,12 +12,11 @@
|
||||||
#include "game/sprite.h"
|
#include "game/sprite.h"
|
||||||
|
|
||||||
// prototypes
|
// prototypes
|
||||||
void fn_1_33D4(omObjData* object);
|
|
||||||
void fn_1_3DD8(omObjData* object);
|
|
||||||
void fn_1_4660(omObjData* object);
|
|
||||||
u16 fn_1_4EA8(s32);
|
u16 fn_1_4EA8(s32);
|
||||||
void fn_1_4EEC(s32, s32);
|
void fn_1_4EEC(s32, s32);
|
||||||
void fn_1_57B4(s32);
|
void fn_1_4F34(unkStruct6*);
|
||||||
|
void fn_1_5010(unkStruct6*, Vec*, f32);
|
||||||
|
void fn_1_57B4(unkStruct6*);
|
||||||
void fn_1_5C2C(s16, HsfObject*, unkStruct6*, s32);
|
void fn_1_5C2C(s16, HsfObject*, unkStruct6*, s32);
|
||||||
f32 fn_1_93C0(f32, f32, f32);
|
f32 fn_1_93C0(f32, f32, f32);
|
||||||
unkStruct4* fn_1_942C(s16, Vec*, Vec*, f32, GXColor*);
|
unkStruct4* fn_1_942C(s16, Vec*, Vec*, f32, GXColor*);
|
||||||
|
|
@ -26,12 +25,18 @@ void fn_1_9AB0(s16);
|
||||||
void fn_1_9B94(s16, m440Func5);
|
void fn_1_9B94(s16, m440Func5);
|
||||||
void fn_1_AE08(Process*);
|
void fn_1_AE08(Process*);
|
||||||
// object.c
|
// object.c
|
||||||
|
void fn_1_EE78(void);
|
||||||
|
void fn_1_EF50(void);
|
||||||
s16 fn_1_F0FC(void);
|
s16 fn_1_F0FC(void);
|
||||||
void fn_1_F168(void);
|
void fn_1_F168(void);
|
||||||
|
void fn_1_F228(void);
|
||||||
|
s32 fn_1_F4FC(s32);
|
||||||
|
|
||||||
// bss
|
// bss
|
||||||
omObjData* lbl_1_bss_6C;
|
omObjData* lbl_1_bss_6C;
|
||||||
omObjData* lbl_1_bss_68;
|
omObjData* lbl_1_bss_68;
|
||||||
|
unkStruct6* lbl_1_bss_64;
|
||||||
|
s16 lbl_1_bss_60;
|
||||||
s16 lbl_1_bss_10[10];
|
s16 lbl_1_bss_10[10];
|
||||||
s16 lbl_1_bss_E;
|
s16 lbl_1_bss_E;
|
||||||
u8 lbl_1_bss_C;
|
u8 lbl_1_bss_C;
|
||||||
|
|
@ -46,10 +51,14 @@ s8 lbl_1_bss_0;
|
||||||
|
|
||||||
// data
|
// data
|
||||||
f32 lbl_1_data_0[5] = { 90.0f, 80.0f, 100.0f, 70.0f, 110.0f };
|
f32 lbl_1_data_0[5] = { 90.0f, 80.0f, 100.0f, 70.0f, 110.0f };
|
||||||
|
s16 lbl_1_data_14[6] = { 1, 1, 1, 1, 1 }; // temp
|
||||||
|
s8 lbl_1_data_20[12] = { 0 }; // temp
|
||||||
Vec lbl_1_data_2C = { 800.0f, 1300.0f, 1000.0f };
|
Vec lbl_1_data_2C = { 800.0f, 1300.0f, 1000.0f };
|
||||||
Vec lbl_1_data_38 = { 0.0f, 0.0f, 0.0f };
|
Vec lbl_1_data_38 = { 0.0f, 0.0f, 0.0f };
|
||||||
GXColor lbl_1_data_44 = { 0xFF, 0xFF, 0xFF, 0xFF };
|
unkStruct7 lbl_1_data_44 = {
|
||||||
Vec lbl_1_data_48 = { 10.0f, 45.0f, 0.0f }; // UNUSED
|
0xFF, 0xFF, 0xFF, 0xFF,
|
||||||
|
10.0f, 45.0f, 0.0f
|
||||||
|
};
|
||||||
Vec lbl_1_data_54 = { 1300.0f, 2500.0f, 1300.0f };
|
Vec lbl_1_data_54 = { 1300.0f, 2500.0f, 1300.0f };
|
||||||
Vec lbl_1_data_60 = { 0.0f, 1.0f, 0.0f };
|
Vec lbl_1_data_60 = { 0.0f, 1.0f, 0.0f };
|
||||||
Vec lbl_1_data_6C = { 0.0f, 0.0f, -500.0f };
|
Vec lbl_1_data_6C = { 0.0f, 0.0f, -500.0f };
|
||||||
|
|
@ -65,7 +74,7 @@ void ModuleProlog(void) {
|
||||||
Process* var_r31;
|
Process* var_r31;
|
||||||
|
|
||||||
Hu3DLightAllKill();
|
Hu3DLightAllKill();
|
||||||
lbl_1_bss_E = Hu3DGLightCreateV(&lbl_1_data_2C, &lbl_1_data_38, &lbl_1_data_44);
|
lbl_1_bss_E = Hu3DGLightCreateV(&lbl_1_data_2C, &lbl_1_data_38, &lbl_1_data_44.unk0);
|
||||||
Hu3DGLightInfinitytSet(lbl_1_bss_E);
|
Hu3DGLightInfinitytSet(lbl_1_bss_E);
|
||||||
var_r30 = &Hu3DGlobalLight[lbl_1_bss_E];
|
var_r30 = &Hu3DGlobalLight[lbl_1_bss_E];
|
||||||
var_r30->unk_00 |= 0x8000;
|
var_r30->unk_00 |= 0x8000;
|
||||||
|
|
@ -656,6 +665,7 @@ s16 lbl_1_data_E4[2] = {0, 0};
|
||||||
s16 lbl_1_data_E8[2] = {0, 0};
|
s16 lbl_1_data_E8[2] = {0, 0};
|
||||||
s16 lbl_1_data_EC[2] = {0, 0};
|
s16 lbl_1_data_EC[2] = {0, 0};
|
||||||
s16 lbl_1_data_F0[2] = {0, 0};
|
s16 lbl_1_data_F0[2] = {0, 0};
|
||||||
|
s32 lbl_1_data_F4[4] = { 20, 60, 100, 140 };
|
||||||
|
|
||||||
void fn_1_2B04(omObjData* object) {
|
void fn_1_2B04(omObjData* object) {
|
||||||
f32 temp_f31;
|
f32 temp_f31;
|
||||||
|
|
@ -793,4 +803,167 @@ void fn_1_2D28(omObjData* object) {
|
||||||
Hu3DModelPosSet(object->model[2], temp_r31->center.x, temp_r31->center.y, temp_r31->center.z);
|
Hu3DModelPosSet(object->model[2], temp_r31->center.x, temp_r31->center.y, temp_r31->center.z);
|
||||||
Hu3DModelRotSet(object->model[2], temp_r31->rot.x, temp_r31->rot.y, temp_r31->rot.z);
|
Hu3DModelRotSet(object->model[2], temp_r31->rot.x, temp_r31->rot.y, temp_r31->rot.z);
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_33D4(omObjData* object) {
|
||||||
|
unkStruct2* sp10;
|
||||||
|
|
||||||
|
sp10 = (unkStruct2*)object->data;
|
||||||
|
switch (lbl_1_data_EC[0]) {
|
||||||
|
case 0:
|
||||||
|
fn_1_1D54(30.0f, 500.0f, 200.0f, 12, 135.0f, lbl_1_bss_10[0]);
|
||||||
|
fn_1_1D54(-30.0f, 500.0f, 200.0f, 12, 225.0f, lbl_1_bss_10[0]);
|
||||||
|
fn_1_4EEC(0x100, 0x100);
|
||||||
|
fn_1_4EEC(7, 2);
|
||||||
|
HuAudFXPlay(0x710);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_3DD8(omObjData* object) {
|
||||||
|
unkStruct* sp8;
|
||||||
|
f32 var_f29;
|
||||||
|
f32 var_f28;
|
||||||
|
f32 var_f27;
|
||||||
|
f32 var_f26;
|
||||||
|
f32 var_f30;
|
||||||
|
f32 var_f31;
|
||||||
|
unkStruct2* var_r25;
|
||||||
|
omObjData** var_r24;
|
||||||
|
s16 var_r29;
|
||||||
|
s16 var_r31;
|
||||||
|
s32 var_r23;
|
||||||
|
s32* var_r26;
|
||||||
|
unkStruct2* var_r28;
|
||||||
|
s16 var_r27;
|
||||||
|
|
||||||
|
var_r25 = (unkStruct2*)lbl_1_bss_6C->data;
|
||||||
|
sp8 = (unkStruct*)object->data;
|
||||||
|
switch (lbl_1_data_EC[0]) {
|
||||||
|
case 0:
|
||||||
|
Hu3DModelAttrReset(object->model[2], 0x40000002);
|
||||||
|
lbl_1_data_EC[0]++;
|
||||||
|
return;
|
||||||
|
case 1:
|
||||||
|
if (++lbl_1_data_F0[0] == 0x1E) {
|
||||||
|
fn_1_4EEC(0x100, 0x100);
|
||||||
|
} else if (lbl_1_data_F0[0] == 0x32) {
|
||||||
|
fn_1_EE78();
|
||||||
|
}
|
||||||
|
var_f26 = Hu3DMotionMaxTimeGet(object->model[2]);
|
||||||
|
if (Hu3DMotionTimeGet(object->model[2]) >= var_f26) {
|
||||||
|
Hu3DModelAttrSet(object->model[2], 1);
|
||||||
|
for (var_r31 = 0; var_r31 < lbl_1_bss_60; var_r31++) {
|
||||||
|
Hu3DModelAttrReset(lbl_1_bss_64[var_r31].unk0, 1);
|
||||||
|
fn_1_57B4(&lbl_1_bss_64[var_r31]);
|
||||||
|
}
|
||||||
|
lbl_1_data_F0[0] = 0;
|
||||||
|
lbl_1_data_EC[0]++;
|
||||||
|
HuAudFXPlay(0x70C);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (var_r31 = 0; var_r31 < 4U; var_r31++) {
|
||||||
|
if (lbl_1_data_F0[0] == lbl_1_data_F4[var_r31] * 2) {
|
||||||
|
HuAudFXPlay(0x70D);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
case 2:
|
||||||
|
var_f30 = (((rand8() << 8) | rand8()) % 361);
|
||||||
|
|
||||||
|
for (var_r29 = 1; var_r29 < 4; var_r29++, var_f30 += 120.0f) {
|
||||||
|
var_f31 = 0.01f * ((((rand8() << 8) | rand8()) % 51) + 0x32);
|
||||||
|
var_f27 = (var_f31 * (200.0 * sin((M_PI * var_f30) / 180.0)));
|
||||||
|
var_f28 = var_f31 * (200.0 * cos((M_PI * var_f30) / 180.0));
|
||||||
|
var_f29 = 0.0f;
|
||||||
|
Hu3DModelPosSet(lbl_1_bss_10[var_r29], var_f27, 300.0f + var_f28, var_f29);
|
||||||
|
var_f31 = 0.1f * ((((rand8() << 8) | rand8()) % 11) + 0x19);
|
||||||
|
Hu3DModelScaleSet(lbl_1_bss_10[var_r29], var_f31, var_f31, var_f31);
|
||||||
|
Hu3DModelAttrReset(lbl_1_bss_10[var_r29], 1);
|
||||||
|
Hu3DModelAttrReset(lbl_1_bss_10[var_r29], 0x40000002);
|
||||||
|
}
|
||||||
|
fn_1_45BC(object);
|
||||||
|
fn_1_4EEC(7, 5);
|
||||||
|
var_r25->unkA = 1;
|
||||||
|
lbl_1_data_EC[0]++;
|
||||||
|
var_r24 = omGetGroupMemberListEx(HuPrcCurrentGet(), 0);
|
||||||
|
for (var_r31 = 0; var_r31 < 4; var_r31++) {
|
||||||
|
if (fn_1_F4FC(var_r31) >= 0) {
|
||||||
|
var_r28 = (unkStruct2*)var_r24[fn_1_F4FC(var_r31)]->data;
|
||||||
|
switch (var_r28->unk0 & 0xF) {
|
||||||
|
case 6:
|
||||||
|
omVibrate(var_r28->unk4, 0x30, 0xC, 0);
|
||||||
|
break;
|
||||||
|
case 8:
|
||||||
|
omVibrate(var_r28->unk4, 0x30, 4, 2);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
case 3:
|
||||||
|
if (lbl_1_bss_64[0].unk3C == 0) {
|
||||||
|
for (var_r27 = 1; var_r27 < 4; var_r27++) {
|
||||||
|
Hu3DMotionTimeSet(lbl_1_bss_10[var_r27], 0.0f);
|
||||||
|
Hu3DModelAttrSet(lbl_1_bss_10[var_r27], 1);
|
||||||
|
Hu3DModelAttrSet(lbl_1_bss_10[var_r27], 0x40000002);
|
||||||
|
}
|
||||||
|
Hu3DModelAttrSet(object->model[2], 0x40000002);
|
||||||
|
Hu3DMotionTimeSet(object->model[2], 0.0f);
|
||||||
|
for (var_r31 = 0; var_r31 < lbl_1_bss_60; var_r31++) {
|
||||||
|
Hu3DModelAttrSet(lbl_1_bss_64[var_r31].unk0, 1);
|
||||||
|
}
|
||||||
|
fn_1_4558(object);
|
||||||
|
if (lbl_1_data_1D8 >= 0) {
|
||||||
|
fn_1_EF50();
|
||||||
|
fn_1_4EEC(0x18, 0x18);
|
||||||
|
fn_1_4EEC(0x40, 0x40);
|
||||||
|
fn_1_4EEC(7, 1);
|
||||||
|
HuAudFXPlay(0x70E);
|
||||||
|
} else {
|
||||||
|
fn_1_4EEC(7, 2);
|
||||||
|
var_r26 = lbl_1_bss_6C->data;
|
||||||
|
var_r26[0] &= 0xFFFFFFF8;
|
||||||
|
var_r26[0] |= 4;
|
||||||
|
}
|
||||||
|
lbl_1_data_EC[0] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_4558(omObjData* object) {
|
||||||
|
s16 var_r31;
|
||||||
|
|
||||||
|
for (var_r31 = 0; var_r31 < lbl_1_bss_60; var_r31++) {
|
||||||
|
fn_1_4F34(&lbl_1_bss_64[var_r31]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_45BC(omObjData* object) {
|
||||||
|
Vec sp8;
|
||||||
|
s16 var_r31;
|
||||||
|
|
||||||
|
sp8.x = 0.0f;
|
||||||
|
sp8.y = 250.0f;
|
||||||
|
sp8.z = 0.0f;
|
||||||
|
|
||||||
|
for (var_r31 = 0; var_r31 < lbl_1_bss_60; var_r31++) {
|
||||||
|
fn_1_5010(&lbl_1_bss_64[var_r31], &sp8, 1500.0f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void fn_1_4660(omObjData* object) {
|
||||||
|
void* sp8;
|
||||||
|
s16 temp_r3;
|
||||||
|
|
||||||
|
sp8 = object->data;
|
||||||
|
switch (fn_1_4EA8(0x18)) {
|
||||||
|
case 8:
|
||||||
|
fn_1_46E0(object);
|
||||||
|
return;
|
||||||
|
case 16:
|
||||||
|
fn_1_4A20(object);
|
||||||
|
return;
|
||||||
|
case 24:
|
||||||
|
fn_1_4B44(object);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue