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
|
|
@ -110,7 +110,7 @@ fn_1_709C = .text:0x0000709C; // type:function size:0x244
|
|||
fn_1_72E0 = .text:0x000072E0; // type:function size:0x18
|
||||
fn_1_72F8 = .text:0x000072F8; // type:function size:0x58
|
||||
fn_1_7350 = .text:0x00007350; // type:function size:0x1A4
|
||||
fn_1_74F4 = .text:0x000074F4; // type:function size:0x1F4
|
||||
m446CursorCreate = .text:0x000074F4; // type:function size:0x1F4
|
||||
fn_1_76E8 = .text:0x000076E8; // type:function size:0xE0
|
||||
fn_1_77C8 = .text:0x000077C8; // type:function size:0xBC
|
||||
fn_1_7884 = .text:0x00007884; // type:function size:0x84
|
||||
|
|
@ -121,7 +121,7 @@ fn_1_7AB4 = .text:0x00007AB4; // type:function size:0x13C
|
|||
fn_1_7BF0 = .text:0x00007BF0; // type:function size:0x18
|
||||
fn_1_7C08 = .text:0x00007C08; // type:function size:0x58
|
||||
fn_1_7C60 = .text:0x00007C60; // type:function size:0x460
|
||||
fn_1_80C0 = .text:0x000080C0; // type:function size:0x330
|
||||
m446StageCreate = .text:0x000080C0; // type:function size:0x330
|
||||
fn_1_83F0 = .text:0x000083F0; // type:function size:0xBC
|
||||
fn_1_84AC = .text:0x000084AC; // type:function size:0x80
|
||||
fn_1_852C = .text:0x0000852C; // type:function size:0xE0
|
||||
|
|
@ -229,19 +229,19 @@ lbl_1_rodata_288 = .rodata:0x00000288; // type:object size:0x4 scope:local data:
|
|||
lbl_1_rodata_290 = .rodata:0x00000290; // type:object size:0x8 scope:local data:double
|
||||
lbl_1_rodata_298 = .rodata:0x00000298; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_29C = .rodata:0x0000029C; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 data:double
|
||||
lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 data:float
|
||||
lbl_1_rodata_2A0 = .rodata:0x000002A0; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_2A4 = .rodata:0x000002A4; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_2A8 = .rodata:0x000002A8; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_2AC = .rodata:0x000002AC; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_2B0 = .rodata:0x000002B0; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_2B4 = .rodata:0x000002B4; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_2B8 = .rodata:0x000002B8; // type:object size:0x8 scope:local data:double
|
||||
lbl_1_rodata_2C0 = .rodata:0x000002C0; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_2C4 = .rodata:0x000002C4; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_2C8 = .rodata:0x000002C8; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_2CC = .rodata:0x000002CC; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_2D0 = .rodata:0x000002D0; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_rodata_2D4 = .rodata:0x000002D4; // type:object size:0x4 scope:local data:float
|
||||
lbl_1_data_0 = .data:0x00000000; // type:object size:0xC
|
||||
lbl_1_data_C = .data:0x0000000C; // type:object size:0xC
|
||||
lbl_1_data_18 = .data:0x00000018; // type:object size:0x4 data:float
|
||||
|
|
@ -280,7 +280,7 @@ lbl_1_data_410 = .data:0x00000410; // type:object size:0x14
|
|||
lbl_1_data_424 = .data:0x00000424; // type:object size:0x3C
|
||||
lbl_1_data_460 = .data:0x00000460; // type:object size:0x54 data:byte
|
||||
lbl_1_data_4B4 = .data:0x000004B4; // type:object size:0x24
|
||||
lbl_1_data_4D8 = .data:0x000004D8; // type:object size:0x1E data:string
|
||||
lbl_1_data_4D8 = .data:0x000004D8; // type:object size:0x1E scope:local data:string
|
||||
lbl_1_bss_0 = .bss:0x00000000; // type:object size:0x4 data:4byte
|
||||
lbl_1_bss_4 = .bss:0x00000004; // type:object size:0x4 data:4byte
|
||||
lbl_1_bss_8 = .bss:0x00000008; // type:object size:0x4 data:4byte
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
#include "game/process.h"
|
||||
#include "game/object.h"
|
||||
|
||||
////// TYPES //////
|
||||
typedef struct _unkStruct {
|
||||
s32 unk0;
|
||||
s16 unk4;
|
||||
|
|
@ -14,17 +15,17 @@ typedef struct _unkStruct {
|
|||
s32 unk18;
|
||||
s32 unk1C;
|
||||
struct _unkStruct6* unk20;
|
||||
s32 unk24;
|
||||
struct _unkStruct9* unk24;
|
||||
struct _unkStruct5* unk28;
|
||||
struct _unkStruct8* unk2C[2];
|
||||
struct _unkStruct4* unk34;
|
||||
struct _unkStruct9* unk34;
|
||||
struct _unkStruct4* unk38[23];
|
||||
s32 unk94;
|
||||
Process* unk98;
|
||||
} unkStruct;
|
||||
|
||||
typedef struct _unkStruct2 {
|
||||
struct _unkStruct4* *unk0;
|
||||
void** unk0;
|
||||
s32 unk4;
|
||||
s32 unk8;
|
||||
} unkStruct2;
|
||||
|
|
@ -145,12 +146,34 @@ typedef struct _unkStruct8 {
|
|||
s32 unkC8;
|
||||
} unkStruct8;
|
||||
|
||||
typedef struct _unkStruct9 {
|
||||
s16 unk0[5];
|
||||
s16 unkA[2];
|
||||
s16 unkE;
|
||||
f32 unk10;
|
||||
f32 unk14;
|
||||
s32 unk18;
|
||||
s32 unk1C;
|
||||
s32 unk20;
|
||||
s32 unk24;
|
||||
s32 unk28;
|
||||
s32 unk2C;
|
||||
} unkStruct9;
|
||||
|
||||
typedef struct _unkStruct10 {
|
||||
Vec unk0;
|
||||
Vec unkC;
|
||||
GXColor unk18;
|
||||
} unkStruct10;
|
||||
|
||||
typedef void (*m446Func)(s32);
|
||||
typedef void (*m446Func1)(unkStruct*);
|
||||
typedef void (*m446Func4)(unkStruct4*);
|
||||
typedef void (*m446Func8)(unkStruct8*);
|
||||
|
||||
////// BSS //////
|
||||
// stage.c
|
||||
extern unkStruct3* lbl_1_bss_A0;
|
||||
// cursor.c
|
||||
extern unkStruct3* lbl_1_bss_98;
|
||||
// camera.c
|
||||
|
|
@ -204,6 +227,10 @@ extern m446Func8 lbl_1_data_2DC[5];
|
|||
extern Vec lbl_1_data_370;
|
||||
// cursor.c
|
||||
extern s32 lbl_1_data_3C8[9];
|
||||
// stage.c
|
||||
extern unkStruct10 lbl_1_data_460[3];
|
||||
extern Vec lbl_1_data_424[5];
|
||||
extern Vec lbl_1_data_4B4[3];
|
||||
|
||||
////// PROTOTYPES //////
|
||||
// main.c
|
||||
|
|
@ -225,9 +252,9 @@ extern void fn_1_19D4(void);
|
|||
// card.c
|
||||
extern unkStruct2* fn_1_1C64(s32);
|
||||
extern void fn_1_1CF8(unkStruct2*);
|
||||
extern s32 fn_1_1D30(unkStruct2*, unkStruct4*);
|
||||
extern s32 fn_1_1D6C(unkStruct2*, unkStruct4**);
|
||||
extern s32 fn_1_1DA8(unkStruct2*, unkStruct4**);
|
||||
extern s32 fn_1_1D30(unkStruct2*, void*);
|
||||
extern s32 fn_1_1D6C(unkStruct2*, void**);
|
||||
extern s32 fn_1_1DA8(unkStruct2*, void**);
|
||||
extern BOOL fn_1_1DDC(unkStruct2*);
|
||||
extern s32 fn_1_1DEC(unkStruct2*);
|
||||
extern unkStruct3* fn_1_1DF4(void*);
|
||||
|
|
@ -243,7 +270,7 @@ extern s32 fn_1_2064(void);
|
|||
extern void fn_1_207C(void);
|
||||
extern void fn_1_20D4(void);
|
||||
extern unkStruct4* m446CardCreate(s32);
|
||||
extern void fn_1_2688(unkStruct4*);
|
||||
extern void fn_1_2688(unkStruct9*);
|
||||
extern void fn_1_272C(unkStruct4*);
|
||||
extern void fn_1_2794(unkStruct4*);
|
||||
extern void fn_1_27FC(unkStruct4*, Vec*, s32);
|
||||
|
|
@ -320,11 +347,20 @@ extern void fn_1_709C(void);
|
|||
extern s32 fn_1_72E0(void);
|
||||
extern void fn_1_72F8(void);
|
||||
extern void fn_1_7350(void);
|
||||
extern unkStruct7* fn_1_74F4(s32);
|
||||
extern unkStruct7* m446CursorCreate(s32);
|
||||
extern void fn_1_76E8(unkStruct7*);
|
||||
extern void fn_1_77C8(unkStruct7*, u8);
|
||||
extern void fn_1_7884(unkStruct7*);
|
||||
extern void fn_1_7908(unkStruct7*, Vec*, s32);
|
||||
extern void fn_1_799C(unkStruct7*);
|
||||
extern void fn_1_7A38(unkStruct7*);
|
||||
extern void fn_1_7AB4(unkStruct7*);
|
||||
extern void fn_1_7AB4(unkStruct7*);
|
||||
// stage.c
|
||||
extern s32 fn_1_7BF0(void);
|
||||
extern void fn_1_7C08(void);
|
||||
extern void fn_1_7C60(void);
|
||||
extern unkStruct9* m446StageCreate(void);
|
||||
extern void fn_1_83F0(unkStruct9*);
|
||||
extern void fn_1_84AC(unkStruct9*);
|
||||
extern void fn_1_852C(unkStruct9*);
|
||||
extern void fn_1_860C(unkStruct9*);
|
||||
|
|
@ -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