stage.c finished, have to fix types now
This commit is contained in:
parent
bde74e372a
commit
d430953293
9 changed files with 296 additions and 59 deletions
|
|
@ -33,7 +33,7 @@ void fn_1_1CF8(unkStruct2* arg0) {
|
|||
HuMemDirectFree(arg0);
|
||||
}
|
||||
|
||||
s32 fn_1_1D30(unkStruct2* arg0, unkStruct4* arg1) {
|
||||
s32 fn_1_1D30(unkStruct2* arg0, void* arg1) {
|
||||
if (arg0->unk4 <= arg0->unk8) {
|
||||
return 0;
|
||||
} else {
|
||||
|
|
@ -43,7 +43,7 @@ s32 fn_1_1D30(unkStruct2* arg0, unkStruct4* arg1) {
|
|||
}
|
||||
}
|
||||
|
||||
s32 fn_1_1D6C(unkStruct2* arg0, unkStruct4** arg1) {
|
||||
s32 fn_1_1D6C(unkStruct2* arg0, void** arg1) {
|
||||
if (arg0->unk8 <= 0) {
|
||||
return 0;
|
||||
} else {
|
||||
|
|
@ -53,7 +53,7 @@ s32 fn_1_1D6C(unkStruct2* arg0, unkStruct4** arg1) {
|
|||
}
|
||||
}
|
||||
|
||||
s32 fn_1_1DA8(unkStruct2* arg0, unkStruct4** arg1) {
|
||||
s32 fn_1_1DA8(unkStruct2* arg0, void** arg1) {
|
||||
if (arg0->unk8 <= 0) {
|
||||
return 0;
|
||||
} else {
|
||||
|
|
@ -174,7 +174,7 @@ s32 fn_1_2064(void) {
|
|||
}
|
||||
|
||||
void fn_1_207C(void) {
|
||||
void* var_r30;
|
||||
unkStruct9* var_r30;
|
||||
unkStruct3* var_r31;
|
||||
|
||||
var_r31 = lbl_1_bss_18;
|
||||
|
|
@ -295,24 +295,22 @@ unkStruct4* m446CardCreate(s32 arg0) {
|
|||
return temp_r31;
|
||||
}
|
||||
|
||||
void fn_1_2688(unkStruct4* arg0) {
|
||||
void fn_1_2688(unkStruct9* arg0) {
|
||||
unkStruct3* var_r31 = lbl_1_bss_18;
|
||||
loop_1:
|
||||
if (arg0 == var_r31->unk0) {
|
||||
if (var_r31 == lbl_1_bss_18) {
|
||||
lbl_1_bss_18 = var_r31->unk8;
|
||||
do {
|
||||
if (arg0 == var_r31->unk0) {
|
||||
if (var_r31 == lbl_1_bss_18) {
|
||||
lbl_1_bss_18 = var_r31->unk8;
|
||||
}
|
||||
fn_1_1F04(var_r31);
|
||||
fn_1_1E5C(var_r31);
|
||||
Hu3DModelKill(arg0->unkA[0]);
|
||||
Hu3DModelKill(arg0->unkA[1]);
|
||||
HuMemDirectFree(arg0);
|
||||
return;
|
||||
}
|
||||
fn_1_1F04(var_r31);
|
||||
fn_1_1E5C(var_r31);
|
||||
Hu3DModelKill(arg0->unkA);
|
||||
Hu3DModelKill(arg0->unkC);
|
||||
HuMemDirectFree(arg0);
|
||||
return;
|
||||
}
|
||||
var_r31 = var_r31->unk8;
|
||||
if (var_r31) {
|
||||
goto loop_1;
|
||||
}
|
||||
var_r31 = var_r31->unk8;
|
||||
} while (var_r31);
|
||||
}
|
||||
|
||||
void fn_1_272C(unkStruct4* arg0) {
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ void fn_1_7350(void) {
|
|||
}
|
||||
}
|
||||
|
||||
unkStruct7* fn_1_74F4(s32 arg0) {
|
||||
unkStruct7* m446CursorCreate(s32 arg0) {
|
||||
s32 var_r30;
|
||||
unkStruct7* var_r31;
|
||||
unkStruct3* var_r29;
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ unkStruct5* fn_1_3064(void) {
|
|||
}
|
||||
|
||||
void fn_1_3180(unkStruct2** arg0) { // typing nightmare
|
||||
unkStruct4* sp8;
|
||||
unkStruct9* sp8;
|
||||
|
||||
while (fn_1_1D6C(*arg0, &sp8) != 0) {
|
||||
fn_1_2688(sp8);
|
||||
|
|
|
|||
|
|
@ -10,14 +10,6 @@
|
|||
#include "game/frand.h"
|
||||
#include "game/minigame_seq.h"
|
||||
|
||||
// stage.c
|
||||
extern s32 fn_1_7BF0(void);
|
||||
extern void fn_1_7C08(void);
|
||||
extern void fn_1_7C60(void);
|
||||
extern s32 fn_1_80C0(void);
|
||||
extern void fn_1_83F0(s32);
|
||||
extern void fn_1_84AC(s32);
|
||||
|
||||
// bss
|
||||
s32 lbl_1_bss_14;
|
||||
s32 lbl_1_bss_10;
|
||||
|
|
@ -120,7 +112,7 @@ unkStruct* m446FlowCreate(void) {
|
|||
for (var_r30 = 0; var_r30 < 23; var_r30++) {
|
||||
temp_r3->unk38[var_r30] = 0;
|
||||
}
|
||||
temp_r3->unk24 = fn_1_80C0();
|
||||
temp_r3->unk24 = m446StageCreate();
|
||||
temp_r3->unk20 = fn_1_39D0();
|
||||
lbl_1_bss_10 = 0;
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
#include "game/objsub.h"
|
||||
|
||||
// cursor.c
|
||||
extern unkStruct7 *fn_1_74F4(s32);
|
||||
extern unkStruct7 *m446CursorCreate(s32);
|
||||
extern void fn_1_76E8(unkStruct7*);
|
||||
extern void fn_1_77C8(unkStruct7*, u8);
|
||||
|
||||
|
|
@ -167,7 +167,7 @@ unkStruct8* m446PlayerCreate(s32 arg0, unkStruct6* arg1) {
|
|||
for (var_r30 = 0; var_r30 < 3; var_r30++) {
|
||||
var_r31->unk2C[var_r30] = NULL;
|
||||
}
|
||||
var_r31->unk8 = fn_1_74F4(1);
|
||||
var_r31->unk8 = m446CursorCreate(1);
|
||||
if (!var_r31->unk8) {
|
||||
HuMemDirectFree(var_r31);
|
||||
return NULL;
|
||||
|
|
|
|||
211
src/REL/m446Dll/stage.c
Normal file
211
src/REL/m446Dll/stage.c
Normal file
|
|
@ -0,0 +1,211 @@
|
|||
#include "REL/m446Dll.h"
|
||||
|
||||
#include "game/hsfman.h"
|
||||
#include "game/hsfmotion.h"
|
||||
|
||||
// bss
|
||||
unkStruct3* lbl_1_bss_A0;
|
||||
|
||||
// data
|
||||
s32 lbl_1_data_410[5] = { 0x4D0008, 0x4D0007, 0x4D0006, 0x4D001F, 0x4D001F };
|
||||
Vec lbl_1_data_424[5] = {
|
||||
{ 0.0f, 0.0f, 0.0f },
|
||||
{ 0.0f, 0.1f, 0.0f },
|
||||
{ 0.0f, 0.0f, 0.0f },
|
||||
{ 160.0f, 160.0f, 0.0f },
|
||||
{ -160.0f, 160.0f, 0.0f },
|
||||
};
|
||||
unkStruct10 lbl_1_data_460[3] = {
|
||||
{
|
||||
{ 160.0f, 160.0f, 0.0f },
|
||||
{ 0.0f, 0.0f, 0.0f },
|
||||
{ 0xFF, 0xFF, 0xFF, 0xFF }
|
||||
},
|
||||
{
|
||||
{ -160.0f, 160.0f, 0.0f },
|
||||
{ 0.0f, 0.0f, 0.0f },
|
||||
{ 0xFF, 0xFF, 0xFF, 0xFF }
|
||||
},
|
||||
{
|
||||
{ 0.0f, 160.0f, 500.0f },
|
||||
{ 0.0f, 0.0f, 0.0f },
|
||||
{ 0xB0, 0xB0, 0xB0, 0xFF }
|
||||
}
|
||||
};
|
||||
Vec lbl_1_data_4B4[3] = {
|
||||
{ 1.0f, 3000.0f, 1.0f },
|
||||
{ 0.0f, 1.0f, 0.0f },
|
||||
{ 0.0f, 0.0f, 0.0f },
|
||||
};
|
||||
|
||||
s32 fn_1_7BF0(void) {
|
||||
lbl_1_bss_A0 = 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
void fn_1_7C08(void) {
|
||||
unkStruct3* var_r31;
|
||||
unkStruct9* var_r30;
|
||||
|
||||
var_r31 = lbl_1_bss_A0;
|
||||
if (var_r31) {
|
||||
do {
|
||||
var_r30 = var_r31->unk0;
|
||||
fn_1_2688(var_r30);
|
||||
var_r31 = var_r31->unk8;
|
||||
} while (var_r31);
|
||||
}
|
||||
}
|
||||
|
||||
void fn_1_7C60(void) {
|
||||
s32 var_r30;
|
||||
unkStruct3* var_r29;
|
||||
unkStruct9* temp_r31;
|
||||
|
||||
var_r29 = lbl_1_bss_A0;
|
||||
if (var_r29) {
|
||||
do {
|
||||
temp_r31 = var_r29->unk0;
|
||||
if ((temp_r31->unk28 != 0) && (temp_r31->unk14 < 1.0f)) {
|
||||
if ((temp_r31->unk14 += 0.002f) > 1.0f) {
|
||||
temp_r31->unk14 = 1.0f;
|
||||
}
|
||||
Hu3DGLightColorSet(temp_r31->unkA[2], lbl_1_data_460[2].unk18.r * temp_r31->unk14, lbl_1_data_460[2].unk18.g * temp_r31->unk14, lbl_1_data_460[2].unk18.b * temp_r31->unk14, lbl_1_data_460[2].unk18.a * temp_r31->unk14);
|
||||
}
|
||||
if (temp_r31->unk24 != 0) {
|
||||
for (var_r30 = 0; var_r30 <= 1; var_r30++) {
|
||||
if (temp_r31->unk10 < 1.0f) {
|
||||
if ((temp_r31->unk10 += 0.002f) > 1.0f) {
|
||||
temp_r31->unk10 = 1.0f;
|
||||
}
|
||||
Hu3DGLightColorSet(temp_r31->unkA[var_r30], temp_r31->unk10 * lbl_1_data_460[var_r30].unk18.r, temp_r31->unk10 * lbl_1_data_460[var_r30].unk18.g, temp_r31->unk10 * lbl_1_data_460[var_r30].unk18.b, temp_r31->unk10 * lbl_1_data_460[var_r30].unk18.a);
|
||||
}
|
||||
}
|
||||
if ((temp_r31->unk18 == 0) && (Hu3DMotionEndCheck(temp_r31->unk0[2]) != 0)) {
|
||||
Hu3DMotionStartEndSet(temp_r31->unk0[2], 180.0f, 359.0f);
|
||||
Hu3DModelAttrSet(temp_r31->unk0[2], 0x40000001);
|
||||
temp_r31->unk18 = 1;
|
||||
}
|
||||
if ((temp_r31->unk1C == 0) && (Hu3DMotionEndCheck(temp_r31->unk0[3]) != 0)) {
|
||||
Hu3DMotionStartEndSet(temp_r31->unk0[3], 120.0f, 159.0f);
|
||||
Hu3DModelAttrSet(temp_r31->unk0[3], 0x40000001);
|
||||
temp_r31->unk1C = 1;
|
||||
}
|
||||
if ((temp_r31->unk20 == 0) && (Hu3DMotionEndCheck(temp_r31->unk0[4]) != 0)) {
|
||||
Hu3DMotionStartEndSet(temp_r31->unk0[4], 120.0f, 159.0f);
|
||||
Hu3DModelAttrSet(temp_r31->unk0[4], 0x40000001);
|
||||
temp_r31->unk20 = 1;
|
||||
}
|
||||
}
|
||||
var_r29 = var_r29->unk8;
|
||||
} while (var_r29);
|
||||
}
|
||||
}
|
||||
|
||||
unkStruct9* m446StageCreate(void) {
|
||||
s32 var_r30;
|
||||
unkStruct3* var_r29;
|
||||
unkStruct3* temp_ret;
|
||||
unkStruct9* var_r31;
|
||||
|
||||
var_r31 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x30, 0x10000000);
|
||||
if (!var_r31) {
|
||||
return NULL;
|
||||
}
|
||||
var_r31->unk10 = 0.0f;
|
||||
var_r31->unk14 = 0.0f;
|
||||
var_r31->unk18 = 0;
|
||||
var_r31->unk1C = 0;
|
||||
var_r31->unk20 = 0;
|
||||
var_r31->unk24 = 0;
|
||||
var_r31->unk28 = 0;
|
||||
var_r31->unk2C = 0;
|
||||
|
||||
for (var_r30 = 0; var_r30 < 5; var_r30++) {
|
||||
var_r31->unk0[var_r30] = Hu3DModelCreateFile(lbl_1_data_410[var_r30]);
|
||||
Hu3DModelPosSet(var_r31->unk0[var_r30], lbl_1_data_424[var_r30].x, lbl_1_data_424[var_r30].y, lbl_1_data_424[var_r30].z);
|
||||
}
|
||||
Hu3DModelAttrSet(var_r31->unk0[3], 1);
|
||||
Hu3DModelAttrSet(var_r31->unk0[4], 1);
|
||||
Hu3DModelAttrSet(var_r31->unk0[3], 0x40000002);
|
||||
Hu3DModelAttrSet(var_r31->unk0[4], 0x40000002);
|
||||
Hu3DModelAttrReset(var_r31->unk0[3], 0x40000001);
|
||||
Hu3DModelAttrReset(var_r31->unk0[4], 0x40000001);
|
||||
Hu3DModelAttrReset(var_r31->unk0[2], 0x40000001);
|
||||
|
||||
for (var_r30 = 0; var_r30 < 3; var_r30++) {
|
||||
var_r31->unkA[var_r30] = Hu3DGLightCreateV(&lbl_1_data_460[var_r30].unk0, &lbl_1_data_460[var_r30].unkC, &lbl_1_data_460[var_r30].unk18);
|
||||
Hu3DGLightStaticSet(var_r31->unkA[var_r30], 1);
|
||||
Hu3DGLightPointSet(var_r31->unkA[var_r30], 100.0f, 1.0f, 3);
|
||||
Hu3DGLightColorSet(var_r31->unkA[var_r30], 0, 0, 0, 0);
|
||||
}
|
||||
Hu3DShadowCreate(30.0f, 20.0f, 20000.0f);
|
||||
Hu3DShadowTPLvlSet(1.0f);
|
||||
Hu3DShadowPosSet(&lbl_1_data_4B4[0], &lbl_1_data_4B4[1], &lbl_1_data_4B4[2]);
|
||||
Hu3DModelShadowMapSet(var_r31->unk0[0]);
|
||||
Hu3DModelShadowSet(var_r31->unk0[1]);
|
||||
var_r29 = fn_1_1DF4(var_r31);
|
||||
if (!var_r29) {
|
||||
OSReport("[!] m446StageCreate ERROR...\n");
|
||||
HuMemDirectFree(var_r31);
|
||||
return NULL;
|
||||
}
|
||||
if (lbl_1_bss_A0) {
|
||||
fn_1_1EC8(lbl_1_bss_A0, var_r29);
|
||||
} else {
|
||||
lbl_1_bss_A0 = var_r29;
|
||||
}
|
||||
return var_r31;
|
||||
}
|
||||
|
||||
void fn_1_83F0(unkStruct9* arg0) {
|
||||
s32 var_r30;
|
||||
unkStruct3* var_r31;
|
||||
|
||||
var_r31 = lbl_1_bss_A0;
|
||||
do {
|
||||
if (arg0 == var_r31->unk0) {
|
||||
if (var_r31 == lbl_1_bss_A0) {
|
||||
lbl_1_bss_A0 = var_r31->unk8;
|
||||
}
|
||||
fn_1_1F04(var_r31);
|
||||
fn_1_1E5C(var_r31);
|
||||
|
||||
for (var_r30 = 0; var_r30 < 5; var_r30++) {
|
||||
Hu3DModelKill(arg0->unk0[var_r30]);
|
||||
}
|
||||
HuMemDirectFree(arg0);
|
||||
return;
|
||||
}
|
||||
var_r31 = var_r31->unk8;
|
||||
} while (var_r31);
|
||||
}
|
||||
|
||||
void fn_1_84AC(unkStruct9* arg0) {
|
||||
Hu3DModelAttrReset(arg0->unk0[3], 1);
|
||||
Hu3DModelAttrReset(arg0->unk0[4], 1);
|
||||
Hu3DModelAttrReset(arg0->unk0[3], 0x40000002);
|
||||
Hu3DModelAttrReset(arg0->unk0[4], 0x40000002);
|
||||
arg0->unk24 = 1;
|
||||
arg0->unk1C = 0;
|
||||
arg0->unk20 = 0;
|
||||
arg0->unk18 = 0;
|
||||
}
|
||||
|
||||
void fn_1_852C(unkStruct9* arg0) {
|
||||
Hu3DModelAttrSet(arg0->unk0[3], 1U);
|
||||
Hu3DModelAttrSet(arg0->unk0[4], 1U);
|
||||
Hu3DModelAttrSet(arg0->unk0[3], 0x40000002U);
|
||||
Hu3DModelAttrSet(arg0->unk0[4], 0x40000002U);
|
||||
Hu3DMotionStartEndSet(arg0->unk0[2], 0.0f, 359.0f);
|
||||
Hu3DMotionStartEndSet(arg0->unk0[3], 0.0f, 119.0f);
|
||||
Hu3DMotionStartEndSet(arg0->unk0[4], 0.0f, 119.0f);
|
||||
arg0->unk24 = 0;
|
||||
arg0->unk1C = 0;
|
||||
arg0->unk20 = 0;
|
||||
arg0->unk18 = 0;
|
||||
}
|
||||
|
||||
void fn_1_860C(unkStruct9* arg0) {
|
||||
arg0->unk28 = 1;
|
||||
}
|
||||
|
|
@ -50,7 +50,7 @@ unkStruct6* fn_1_39D0(void) {
|
|||
Hu3DModelAmbSet(var_r31->unk4, 0.0f, 0.0f, 0.0f);
|
||||
Hu3DModelShadowMapSet(var_r31->unk4);
|
||||
Hu3DModelLayerSet(var_r31->unk4, 0);
|
||||
var_r31->unk0 = fn_1_74F4(0);
|
||||
var_r31->unk0 = m446CursorCreate(0);
|
||||
fn_1_7884(var_r31->unk0);
|
||||
var_r31->unk60 = 10;
|
||||
var_r31->unk5C = 0;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue