#include "dolphin.h" #include "game/object.h" #include "game/animdata.h" #include "game/hsfanim.h" extern s32 rand8(void); // types typedef void (*m409Func6)(ModelData*, struct _unkStruct6*, Mtx); typedef void (*m409PlayerFunc8)(struct _unkStruct8*); typedef struct _unkStruct { f32 zoom; Vec center; Vec rot; } unkStruct; typedef struct _unkStruct2 { GXColor unk0; Vec unk4; } unkStruct2; // sizeof 0x10 typedef struct _unkStruct3 { s8 unk0; s8 unk1; s16 unk2; struct _unkStruct4* unk4; s16 unk8; s16 unkA; s16 unkC; s16 unkE; s16 unk10; s16 unk12; f32 unk14; } unkStruct3; typedef struct _unkStruct4 { union { u16 unk0; u8 unk0b; }; s16 unk2; s16 unk4; s16 unk6; s16 unk8; s16 unkA; s16 unkC; s16 unkE; f32 unk10; s16 unk14; s16 unk16; f32 unk18; f32 unk1C; struct _unkStruct4* unk20; } unkStruct4; // sizeof 0x24 typedef struct _unkStruct5 { Vec unk0; Vec unkC; f32 unk18; f32 unk1C; f32 unk20; f32 unk24; s16 unk28; s16 unk2A; s16 unk2C; s16 unk2E; f32 unk30; Vec unk34; Vec unk40; s16 unk4C; s8 unk4E; } unkStruct5; // sizeof 0x50 typedef struct _unkStruct6 { s16 unk0; s16 unk2; u32 unk4; u8 unk8; m409Func6 unkC; AnimData* unk10; s16 unk14; unkStruct5* unk18; Vec* unk1C; HsfVector2f* unk20; GXColor* unk24; void* unk28; Vec unk2C; Vec unk38; Vec unk44; Vec unk50; HsfVector2f* unk5C; f32 unk60; f32 unk64; } unkStruct6; // sizeof 0x68 typedef struct _unkStruct7 { u8 unk0; u8 unk1; u8 unk2; u8 unk3; u8 unk4; u8 unk5; u8 unk6; char unk7[0x3]; s16 unkA; s16 unkC; s16 unkE; s16 unk10; char unk12[0x1]; s8 unk13; s8 unk14; char unk15[0x3]; s32 unk18; s16 unk1C; char unk1E[0x6]; Vec unk24; Vec unk30; Vec unk3C; Vec unk48; u8 unk54; u8 unk55; u8 unk56; u8 unk57; u8 unk58; u8 unk59; u8 unk5A[3][2]; u8 unk60; u8 unk61; u8 unk62; u8 unk63; u8 unk64; char unk65[0x3]; Vec unk68; } unkStruct7; // sizeof 0x74 typedef struct _unkStruct8Sub { Vec unk0; char unkC[0xC]; f32 unk18; f32 unk1C; f32 unk20; char unk24[0x10]; u32 unk34; char unk38[0x20]; Vec unk58; Vec unk64; s16 unk70; s16 unk72; union { struct { s16 unk74; s16 unk76; }; f32 unk74f; }; f32 unk78; f32 unk7C; char unk80[0x10]; } unkStruct8Sub; // sizeof 0x90 typedef struct _unkStruct8 { char unk0[0x30]; m409PlayerFunc8 unk30; char unk34[0x8]; unkStruct8Sub* unk3C; char unk40[0x60]; } unkStruct8; // sizeof 0xA0 typedef struct _unkStruct9 { char unk0[0x6]; s16 unk6; s16 unk8; s16 unkA; char unkC[0x4]; unkStruct8* unk10; } unkStruct9; typedef struct _unkStruct10 { u8 unk0; u8 unk1; u8 unk2; u8 unk3; char unk4[0x8]; Vec unkC; Vec unk18; Vec unk24; Vec unk30; Vec unk3C; s8 unk48; char unk49[0x7]; } unkStruct10; // sizeof 0x50 // bss // player.c extern omObjData* lbl_1_bss_3A0[4]; extern omObjData* lbl_1_bss_39C; extern s32 lbl_1_bss_38C[4]; extern unkStruct10 lbl_1_bss_10C[8]; extern s16 lbl_1_bss_108; extern s16 lbl_1_bss_106; extern s16 lbl_1_bss_104; extern unkStruct9 lbl_1_bss_F0; // main.c extern Process* lbl_1_bss_E8; extern s16 lbl_1_bss_E4; extern omObjData* lbl_1_bss_E0; extern omObjData* lbl_1_bss_DC; extern Vec lbl_1_bss_D0; extern unkStruct4 lbl_1_bss_40[4]; extern s32 lbl_1_bss_3C; extern unkStruct3 lbl_1_bss_24; extern s8 lbl_1_bss_21; extern u8 lbl_1_bss_20; extern f32 lbl_1_bss_1C; extern f32 lbl_1_bss_18; extern s16 lbl_1_bss_16; extern s8 lbl_1_bss_14; extern f32 lbl_1_bss_10; extern f32 lbl_1_bss_C; extern s8 lbl_1_bss_A; extern s16 lbl_1_bss_8; extern s8 lbl_1_bss_6; extern s16 lbl_1_bss_4; extern s16 lbl_1_bss_2; extern s8 lbl_1_bss_0; // data // main.c extern Vec lbl_1_data_0; extern Vec lbl_1_data_C; extern unkStruct2 lbl_1_data_18; extern Vec lbl_1_data_28; extern Vec lbl_1_data_34; extern Vec lbl_1_data_40; extern unkStruct lbl_1_data_4C[4]; extern u32 lbl_1_data_BC; extern s32 lbl_1_data_C0; // player.c extern u32 lbl_1_data_138; // unk extern s32 lbl_1_data_13C[7]; // prototypes extern void ModuleProlog(void); extern void fn_1_434(omObjData* object); extern void fn_1_4DC(omObjData* object); extern s8 fn_1_524(void); extern s8 fn_1_B80(void); extern void fn_1_DDC(omObjData* object); extern void fn_1_F70(omObjData* object); extern s8 fn_1_10E8(omObjData* object); extern s8 fn_1_1B74(omObjData* object); extern void fn_1_2098(omObjData* object); extern void fn_1_2414(u16, u16); extern u16 fn_1_2454(u16); extern void fn_1_2484(omObjData* object); extern void fn_1_2DCC(omObjData* object); extern void fn_1_3840(void); extern void fn_1_3988(unkStruct4*, s16, s16); extern s32 fn_1_3AD8(s32, f32, f32, f32, f32, f32, f32); extern void fn_1_40A4(Mtx, Mtx); extern f32 fn_1_4120(f32, f32, f32, f32); extern void fn_1_417C(void); extern void fn_1_44F0(s16, f32, f32, f32, s8, s16); extern void fn_1_4FFC(s16, f32, f32, f32, s16); extern void fn_1_5408(ModelData*, unkStruct6*, Mtx); extern void fn_1_55E0(ModelData*, unkStruct6*, Mtx); extern void fn_1_57DC(ModelData*, unkStruct6*, Mtx); extern unkStruct5* fn_1_58E0(s16, Vec*, Vec*, f32, GXColor*); extern s16 fn_1_5A18(AnimData*, s16, f32, s16, s16); extern void fn_1_5F5C(s16); extern void fn_1_5FBC(s16, m409Func6); extern void fn_1_5FF4(s16, u8); extern void fn_1_602C(ModelData*, Mtx); extern void fn_1_6608(HsfVector2f*, s16, s16, f32, f32); extern void fn_1_66D4(HsfVector2f*, HsfVector2f*, s16, f32, f32); extern void fn_1_6778(Vec*, Vec*, Vec*, s16); // player.c extern void fn_1_67E0(Process*); extern void fn_1_6900(void); extern void fn_1_6928(omObjData*); extern void fn_1_7344(omObjData*); extern void fn_1_7FE8(omObjData*); extern void fn_1_8838(unkStruct8*); extern s8 fn_1_8D08(u8); extern void fn_1_8D6C(unkStruct8*); extern void fn_1_91C0(omObjData*); extern void fn_1_962C(omObjData*); // ... extern s8 fn_1_A9C0(Vec*, f32*); extern s32 fn_1_ABB4(void); extern f32 fn_1_AD40(f32, f32, f32); extern void fn_1_B378(Vec*); extern f32 fn_1_B6A4(Vec*, unkStruct8Sub*, Vec*); extern f32 fn_1_B9E0(Vec*, unkStruct8Sub*, Vec*, Vec*, Vec*); extern f32 fn_1_BF38(s16); extern void fn_1_BF88(s32, s32); extern void fn_1_C0C0(void); extern unkStruct8Sub* fn_1_CCCC(s16, s16); extern s16 fn_1_DA48(s32, s32); extern void fn_1_DEF4(s16, s32, s32); extern void fn_1_DF20(s32, s32, s32); extern void fn_1_E2A8(s16, s32, s32, s32, s32); extern void fn_1_E7C8(s16, s32, s32); extern void fn_1_E99C(s16, s16, f32, f32, f32); extern void fn_1_E85C(s16, s32, f32, f32, f32); extern void fn_1_EC1C(s16, s16, f32, f32, f32); extern void fn_1_ED00(u8, s32); extern void fn_1_ED44(s16, s16, s32); extern void fn_1_EE24(u8, s32); extern void fn_1_EE68(s16, s16, s32); extern void fn_1_F024(s16, s32, u8, u8, u8, s32); extern void fn_1_F098(s16, u8, u8, u8, u8); extern void fn_1_F17C(s16, s16, u8, s32); extern void fn_1_F2F8(s16, s16, u8, f32); extern void fn_1_F408(s16, s32, s32); extern void fn_1_F478(s16, s16, u8, s32);