From 8dbe02a3b41f5aea9fc0f1deeacf9265a2948d41 Mon Sep 17 00:00:00 2001 From: petrie911 <69443847+petrie911@users.noreply.github.com> Date: Wed, 6 Dec 2023 18:16:49 -0600 Subject: [PATCH] fox_52730 decomped, other cleanup (#46) * objects? * objects2? * more stuff * format * even more cleanup * RCP function names * format * NO U * makerom too * stuff * last function * symbols...why * data * cleaning * expert mode * foxname * one more name * forgot something * one more variable cleanup * I swear I can stop --- include/functions.h | 183 +- include/structs.h | 117 +- include/variables.h | 910 +++++++--- linker_scripts/us/symbol_addr_mesg.txt | 142 -- linker_scripts/us/symbol_addrs.txt | 19 +- linker_scripts/us/symbol_addrs_libultra.txt | 2 +- linker_scripts/us/undefined_syms.ld | 657 ++++++- src/libultra/io/aisetnextbuf.c | 2 +- src/libultra/io/pimgr.c | 6 +- src/main/fox_2EFE0.c | 86 - src/main/fox_52730.c | 1718 +++++++++++++++++++ src/main/fox_A24B0.c | 2 +- src/main/fox_display.c | 70 +- src/main/fox_edata.c | 4 + src/main/fox_edata_1C.c | 729 ++++++++ src/main/fox_edisplay.c | 82 +- src/main/fox_enmy1.c | 42 +- src/main/fox_radio.c | 2 +- src/main/main.c | 10 +- src/main/math64.c | 8 +- src/main/sf_2EFE0.c | 163 ++ src/main/sf_2F300.c | 78 - src/main/sf_52730.c | 75 - src/main/sf_77E40.c | 4 +- src/main/sf_A4B50.c | 24 +- src/main/sf_hud.c | 6 +- src/overlays/ovl_EBFBE0/fox_option.c | 14 +- src/overlays/ovl_EBFBE0/fox_title.h | 40 + yamls/us/assets.yaml | 104 +- yamls/us/main.yaml | 30 +- 30 files changed, 4471 insertions(+), 858 deletions(-) delete mode 100644 src/main/fox_2EFE0.c create mode 100644 src/main/fox_52730.c create mode 100644 src/main/fox_edata_1C.c create mode 100644 src/main/sf_2EFE0.c delete mode 100644 src/main/sf_2F300.c delete mode 100644 src/main/sf_52730.c diff --git a/include/functions.h b/include/functions.h index 3ed95396..c8eb773f 100644 --- a/include/functions.h +++ b/include/functions.h @@ -133,8 +133,6 @@ f32 Math_FAtan2F(f32, f32); f32 Math_FAsinF(f32); f32 Math_FAcosF(f32); -void osCreatePiMgr(s32, OSMesgQueue*, OSMesg*, s32); - f32 __sinf(f32); f32 __cosf(f32); @@ -142,24 +140,84 @@ s64 __ull_div(s64, s64); s64 __ll_mul(s64, s64); s64 __ll_rshift(s64, s64); +// sf_2EFE0 void func_8002E3E0(Object_2F4 *); void func_8002E548(void); - +void func_8002E5E0(Object*); +void func_8002E604(Object*); +void func_8002E628(Object*); +void func_8002E64C(Object*); +void func_8002E670(Object*); +void func_8002E694(Object*); +void func_8002E6B8(Object*); +void func_8002E6DC(Object*); void func_8002F5F4(void); +void func_800319AC(Object*); +void func_80035448(Object*); +//sf_36930 void func_80035E48(Object_70 *); +void func_8003DA0C(void); void func_8003DAF0(void); void func_8003DE68(s32, s32); +void func_8003E1E8(void); +void func_80040450(void); +void func_80040954(void); void func_80040CDC(void); -void func_80042FAC(Object_408 *); +void func_80040CE4(void); + +// sf_43AC0 +void func_80042FAC(Object_408 *); +void func_80042FB8(Object*); +void func_80042FC4(Object*); void func_80042FD0(Object_408 *); +void func_80042FDC(Object*); +void func_80042FE8(Object*); void func_800444BC(UnkStruct_D_80178280 *); + +// sf_496E0 +void func_8004F8AC(Object*); +void func_8004FEC0(Object*); + +// fox_52730 void func_80053658(UnkStruct_D_80161630 *); void func_8005465C(s32); - +void func_80057814(UnkStruct_D_80178280* arg0); void func_80057D00(void); +// fox_edata +void func_800594F0(Object_80*); +void func_800595D0(Object_80*); +void func_800596C0(void); +void func_800596B0(Object_2F4*); + +// fox_edisplay void func_8005980C(f32); +void func_80059850(Object_4C*); +void func_800598E8(Object_2F4*); +void func_80059A24(Object_2F4*); +void func_80059AEC(Object_80*); +void func_80059B20(Object_80*); +void func_80059BBC(Object_80*); +void func_80059BF0(Object_2F4*); +void func_80059C34(Object_4C*); +void func_80059C40(Object_4C*); +void func_80059F68(Object_6C*); +void func_80059FDC(Object_6C*); +void func_8005A094(Object_2F4*); +void func_8005B6A4(Object_2F4*); +void func_8005B71C(Object_2F4*); +void func_8005B7CC(Object_2F4*); +void func_8005B848(Object_2F4*); +void func_8005B9A4(Object_2F4*); +void func_8005BA30(Object_2F4*); +void func_8005C5F0(Object_6C*); +void func_8005C900(Object_6C*); +void func_8005C9C0(Object_6C*); +void func_8005CA80(Object_6C*); +void func_8005CB44(Object_6C*); +void func_8005CC9C(Object_6C*); +void func_8005CDA8(Object_6C*); void func_8005F030(Vec3f*); void func_8005F0E8(Vec3f*, Vec3f*); void func_8005F1EC(Vec3f*); @@ -167,6 +225,10 @@ void func_8005F290(Vec3f*, Vec3f*); void func_8005F670(Vec3f*); s32 func_8005F9DC(Vec3f*); +// fox_enmy1 +void func_80060714(s32 arg0); +void func_8006089C(u8 arg0); +void func_80060968(void); void func_80060FBC(Object*, Vec3f*); s32 func_80060FE4(Vec3f*, f32); void func_800612B8(ObjectStruct_1C*, u32); @@ -193,6 +255,8 @@ void func_8006684C(Object_2F4*); void func_800669A0(Object_2F4*); void func_80066A80(Object_2F4*); void func_80066C00(Object_80*); +void func_80066D5C(Object_80*); +void func_80066E8C(Object_4C*); void func_80066EA8(Object_80*); void func_80066EF0(Object_6C *); void func_800671D0(Object_6C *); @@ -228,11 +292,29 @@ void func_8006A06C(UnkStruct_D_80174750*); void func_8006A38C(void); void func_8006A3E8(void); +//sf_6B3B0 +void func_8006A96C(Object*); +void func_8006A978(Object*); +void func_8006AA98(Object*); +void func_8006AC08(Object*); +void func_8006AD18(Object*); +void func_8006B094(Object*); void func_8006B0A0(Object_2F4 *, s32); void func_8006B74C(Object_2F4 *); +void func_8006B95C(Object*); +void func_8006BB78(Object*); +void func_8006C008(Object*); +void func_8006D350(Object*); void func_8006EEFC(s32, f32, f32, f32, f32, f32, f32, f32, f32, f32); +void func_80072594(Object*); +void func_80074F90(Object*); +void func_80074FF0(Object*); void func_800763A4(Object_2F4 *, s32); void func_8007717C(Object_2F4 *, s32); +void func_800771CC(Object*); +void func_80077218(Object*); + +// sf_77E40 void func_80077240(f32 posX, f32 posY, f32 posZ, s32 arg3); void func_8007729C(void); void func_80077790(void); @@ -253,6 +335,7 @@ void func_8007868C(Object_8C* arg0); void func_8007879C(Object_8C* arg0); void func_800788B0(Object_8C* arg0); void func_80078A64(Object_8C* arg0); +void func_8007AA60(Object*); void func_80078AEC(Object_8C* arg0); void func_80078B8C(void *unused); void func_80078BE0(Object_8C* arg0); @@ -273,26 +356,85 @@ void func_8007A28C(Object_8C* arg0); void func_8007A3C0(Object_8C* arg0); void func_8007A568(f32 xPos, f32 yPos, f32 zPos, f32 arg3); void func_8007A6F0(Vec3f *, u32); +void func_8007A748(Object*); +void func_8007A994(Object*); +void func_8007AB50(Object*); void func_8007ACE0(f32, f32, f32, f32, f32, f32); void func_8007AFD0(f32, f32, f32, s32, f32); +void func_8007B040(Object*); +void func_8007B0F4(Object*); void func_8007B228(f32, f32, f32, f32); void func_8007B2BC(Object_8C* arg0, f32 xPos, f32 yPos, f32 zPos, f32 arg4, s32 arg5); void func_8007B344(f32 xPos, f32 yPos, f32 zPos, f32 arg3, s32 arg4); +void func_8007B3B8(Object*); +void func_8007B5C0(Object*); +void func_8007B62C(Object*); +void func_8007B670(Object*); +void func_8007B67C(Object*); +void func_8007B758(Object*); +void func_8007B960(Object*); void func_8007BC7C(f32, f32, f32, f32); +void func_8007BCE8(Object*); +void func_8007B9DC(Object*); +void func_8007BDE0(Object*); +void func_8007BE54(Object*); +void func_8007BEE8(Object*); void func_8007BFFC(f32, f32, f32, f32, f32, f32, f32, s32); void func_8007C120(f32, f32, f32, f32, f32, f32, f32, s32); +void func_8007C250(Object*); void func_8007C484(f32, f32, f32, f32, f32, f32, f32, s32); +void func_8007C50C(Object*); +void func_8007C8C4(Object*); +void func_8007C9E0(Object*); +void func_8007CAF0(Object*); void func_8007D074(f32, f32, f32, f32); void func_8007D0E0(f32, f32, f32, f32); void func_8007D10C(f32, f32, f32, f32); void func_8007D2C8(f32, f32, f32, f32); +void func_8007D2F4(Object*); +void func_8007D55C(Object*); +void func_8007D748(Object*); +void func_8007D8A8(Object*); +void func_8007DA58(Object*); +void func_8007DAE4(Object*); +void func_8007DB70(Object*); +void func_8007DED4(Object*); +void func_8007E014(Object*); +void func_8007E258(Object*); +void func_8007E298(Object*); +void func_8007E330(Object*); +void func_8007E3E4(Object*); +void func_8007E45C(Object*); +void func_8007E5CC(Object*); +void func_8007E648(Object*); void func_8007F04C(s32, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, f32); // Object_Spawn? +void func_8007F438(Object*); +void func_8007F6B0(Object*); +void func_8007F958(Object*); +void func_8007FBE0(Object*); +void func_8007FE88(Object*); +void func_800802B8(Object*); +void func_800802D8(Object*); +void func_800802F8(Object*); +void func_80080360(Object*); +void func_8008040C(Object*); +void func_8008092C(Object*); +void func_80080ACC(Object*); +void func_80080D04(Object*); +void func_80081C5C(Object*); +void func_80082F78(Object*); +void func_800837EC(Object*); +void func_80083B8C(Object*); +void func_80083FA8(Object*); +void func_80084194(Object_8C*); +// fox_84F70 void func_80084370(s32); void func_800843FC(s32); void func_80084488(s32); void func_80084688(s32, s32); +// fox_hud void func_80084B94(s32); void func_800857DC(f32, f32, f32, f32); void func_80085890(f32, f32, f32, f32); @@ -317,12 +459,21 @@ void func_8008E51C(s32* , f32); void func_8008E9EC(f32, f32); void func_8008EA14(f32, f32); void func_8008FA84(void); +void func_8008FE78(Object*); void func_8008FFF0(Object_408*, s32); bool func_8009092C(Object_2F4*); +void func_800907C4(Object_408*); s32 func_800915FC(Object_2F4*); -void func_80092D48(Object_2F4 *); +void func_80092D48(Object_2F4 *); +void func_80092EC0(Object*); +void func_80094954(Object_8C*); +void func_80094BBC(Object_8C*); void func_80094D20(f32, f32); + +// sf_97F80 s32 func_800998FC(Vec3f*, Vec3f*, Vec3f*, s32, Vec3f*, f32*); + +// fox_A24B0 void func_800A18B0(void); void func_800A1980(void); bool func_800A1B6C(void); @@ -334,25 +485,37 @@ void func_800A24DC(s32); void func_800A26C0(void); void func_800A25DC(void); Object_2F4 *func_800A3608(s32); + +// fox_A4290 s32 func_800A3690(Vec3f*, Vec3f*, s32, Vec3f*); + +// sf_A48A0 void func_800A3CA0(void); + +// sf_A4B50 s32 func_800A3F50(u16); void func_800A5844(void); void func_800A5D6C(void); void func_800A6148(void); void func_800A6CD0(UnkStruct_D_80178280 *, s32, s32); +void func_800B6F50(f32, f32, f32, f32, f32, f32); +void func_800B73E0(UnkStruct_D_80178280 *); void func_800B86CC(void); +// fox_radio s32 func_800BA7BC(u16*, s32); void func_800BA808(u16*, s32); void func_800BB5D0(void); + +// fox_reset void Graphics_NMIWipe(void); -void func_800B6F50(f32, f32, f32, f32, f32, f32); -void RCP_SetupDL_36(void); + +// sf_versus void func_800C1ED4(void); void func_800C20B0(void); void func_800C2190(void); +// fox_save s32 Save_Write(void); s32 Save_Read(void); @@ -381,6 +544,8 @@ void func_E16C50_8019B1F0(Object_2F4 *); void func_E16C50_8019B810(Object_2F4 *); void func_E16C50_8019C200(Object_2F4 *); void func_E16C50_8019D060(Object_2F4 *); +void func_E16C50_801AA20C(void); +void func_E16C50_801ACBB4(void); void func_E16C50_801AD688(Object_2F4 *); void func_E16C50_801AE3AC(Object_2F4 *); void func_E16C50_801AF9FC(Object_2F4 *); @@ -414,12 +579,14 @@ void func_E6A810_801A5E2C(Object_2F4 *); void func_E6A810_801A6134(Object_2F4 *); void func_E6A810_801A65E0(Object_80 *); void func_E6A810_801A7D98(Object_2F4 *); +void func_E6A810_801B58AC(Gfx **, f32); s32 func_E6A810_801B6AEC(f32, f32, f32); void func_E6A810_801B6E20(f32, f32, f32 *, f32 *, f32 *); void func_E9F1D0_801888F4(Object_2F4 *, s32); void func_E9F1D0_8018D16C(Object_408 *); void func_E9F1D0_80197CC4(Object_408 *); +void func_E9F1D0_801A6164(UnkStruct_D_80178280 *); void func_EF0260_8018A96C(void); void func_EF0260_8018AAC4(void); diff --git a/include/structs.h b/include/structs.h index ad7ff51a..99a3fa15 100644 --- a/include/structs.h +++ b/include/structs.h @@ -123,7 +123,7 @@ typedef struct { /* 0x20 */ f32 unk_20; /* 0x24 */ f32 unk_24; /* 0x28 */ f32 unk_28; - /* 0x2C */ s8 unk_2C; + /* 0x2C */ u8 unk_2C; /* 0x30 */ f32 unk_30; /* 0x34 */ f32 unk_34; /* 0x38 */ f32 unk_38; @@ -152,9 +152,10 @@ typedef struct { } UnkStruct_D_80161A68; // size = 0x44? typedef struct UnkStruct_D_80178280 { - /* 0x000 */ char pad0[0xC]; + /* 0x000 */ f32 unk_000; + /* 0x004 */ char pad4[8]; /* 0x00C */ f32 unk_00C; - /* 0x010 */ char pad10[0x24]; + /* 0x010 */ char pad10[0x24]; /* 0x034 */ f32 unk_034; /* 0x038 */ char pad38[8]; /* 0x040 */ Vec3f unk_040; @@ -162,12 +163,15 @@ typedef struct UnkStruct_D_80178280 { /* 0x058 */ f32 unk_058; /* 0x05C */ f32 unk_05C; /* 0x05C */ f32 unk_060; - /* 0x064 */ char pad064[0x10]; + /* 0x064 */ f32 unk_064; + /* 0x068 */ f32 unk_068; + /* 0x06C */ f32 unk_06C; + /* 0x070 */ f32 unk_070; /* 0x074 */ f32 unk_074; /* 0x078 */ f32 unk_078; /* 0x07C */ f32 unk_07C; /* 0x080 */ f32 unk_080; - /* 0x084 */ char pad84[4]; + /* 0x084 */ f32 unk_084; /* 0x088 */ f32 unk_088; /* 0x08C */ char pad8C[4]; /* 0x090 */ f32 unk_090; @@ -186,7 +190,7 @@ typedef struct UnkStruct_D_80178280 { /* 0x0D8 */ Vec3f unk_0D8; /* 0x0E4 */ f32 unk_0E4; /* 0x0E8 */ f32 unk_0E8; - /* 0x0EC */ char padEC[4]; + /* 0x0EC */ f32 unk_0EC; /* 0x0F0 */ f32 unk_0F0; /* 0x0F4 */ f32 unk_0F4; /* 0x0F8 */ f32 unk_0F8; @@ -200,14 +204,33 @@ typedef struct UnkStruct_D_80178280 { /* 0x11C */ char pad11C[4]; /* 0x120 */ f32 unk_120; /* 0x124 */ f32 unk_124; - /* 0x128 */ char pad128[0x10]; + /* 0x128 */ char pad128[4]; + /* 0x12C */ f32 unk_12C; + /* 0x130 */ f32 unk_130; + /* 0x134 */ f32 unk_134; /* 0x138 */ f32 unk_138; /* 0x13C */ char pad13C[4]; /* 0x140 */ f32 unk_140; /* 0x144 */ f32 unk_144; - /* 0x148 */ char pad148[0x54]; + /* 0x148 */ char pad148[0xC]; + /* 0x154 */ f32 unk_154; + /* 0x158 */ f32 unk_158; + /* 0x15C */ f32 unk_15C; + /* 0x160 */ char pad160[4]; + /* 0x164 */ f32 unk_164; + /* 0x168 */ f32 unk_168; + /* 0x16C */ f32 unk_16C; + /* 0x170 */ f32 unk_170; + /* 0x174 */ char pad174[8]; + /* 0x17C */ f32 unk_17C; + /* 0x180 */ f32 unk_180; + /* 0x184 */ char pad184[8]; + /* 0x18C */ f32 unk_18C; + /* 0x190 */ char pad190[4]; + /* 0x194 */ f32 unk_194; + /* 0x198 */ char pad198[4]; /* 0x19C */ s32 unk_19C; - /* 0x1A0 */ char pad1A0[4]; + /* 0x1A0 */ s32 unk_1A0; /* 0x1A4 */ s32 unk_1A4; /* 0x1A8 */ char pad1A8[0x1C]; /* 0x1C4 */ s32 unk_1C4; @@ -215,11 +238,12 @@ typedef struct UnkStruct_D_80178280 { /* 0x1CC */ s32 unk_1CC; /* 0x1D0 */ s32 unk_1D0; /* 0x1D4 */ s32 unk_1D4; - /* 0x1D8 */ char pad1D8[0x1C]; + /* 0x1D8 */ char pad1D8[0x18]; + /* 0x1F0 */ s32 unk_1F0; /* 0x1F4 */ s32 unk_1F4; /* 0x1F8 */ s32 unk_1F8; /* 0x1FC */ s32 unk_1FC; - /* 0x200 */ char pad200[4]; + /* 0x200 */ s32 unk_200; /* 0x204 */ s32 unk_204; /* 0x208 */ char pad208[8]; /* 0x210 */ s32 unk_210; @@ -229,16 +253,23 @@ typedef struct UnkStruct_D_80178280 { /* 0x224 */ s32 unk_224; /* 0x228 */ s32 unk_228; /* 0x22C */ s32 unk_22C; - /* 0x230 */ char pad230[8]; + /* 0x230 */ char pad230[4]; + /* 0x234 */ s32 unk_234; /* 0x238 */ s32 unk_238; /* 0x23C */ s32 unk_23C; - /* 0x240 */ char pad240[0x24]; + /* 0x240 */ s32 unk_240; + /* 0x244 */ char pad244[4]; + /* 0x248 */ f32 unk_248; + /* 0x24C */ f32 unk_24C; + /* 0x250 */ char pad250[0xC]; + /* 0x25C */ f32 unk_25C; + /* 0x260 */ char pad260[4]; /* 0x264 */ s32 unk_264; /* 0x268 */ s32 unk_268; /* 0x26C */ s32 unk_26C; /* 0x270 */ char pad270[0xC]; /* 0x27C */ s32 unk_27C; - /* 0x280 */ char pad280[4]; + /* 0x280 */ s32 unk_280; /* 0x284 */ s32 unk_284; /* 0x288 */ s32 unk_288; /* 0x28C */ char pad28C[0x28]; @@ -250,15 +281,20 @@ typedef struct UnkStruct_D_80178280 { /* 0x2D4 */ Vec3f unk_2D4; /* 0x2E0 */ Vec3f unk_2E0; /* 0x2EC */ Vec3f unk_2EC; - /* 0x2F8 */ char pad2F8[0x168]; - /* 0x460 */ Vec3f unk_460[1]; - /* 0x46C */ char pad46C[0x2C]; + /* 0x2F8 */ Vec3f jointTable[30]; + /* 0x460 */ Vec3f unk_460[2]; + /* 0x494 */ char pad478[4]; + /* 0x47C */ Vec3f *unk_47C; + /* 0x480 */ Vec3f *unk_480; + /* 0x484 */ char pad484[4]; + /* 0x488 */ f32 unk_488; + /* 0x48C */ char pad48C[4]; + /* 0x490 */ f32 unk_490; + /* 0x494 */ char pad494[4]; /* 0x498 */ s32 unk_498; - /* 0x49C */ u8 unk_49C; // could be array - /* 0x49C */ u8 unk_49D; - /* 0x49E */ char pad49E[0x3A]; + /* 0x49C */ UnkStruct_D_80161630 unk_49C; /* 0x4D8 */ f32 unk_4D8; - /* 0x4DC */ s32 unk_4DC; + /* 0x4DC */ f32 unk_4DC; } UnkStruct_D_80178280; // size = 0x4E0 Might be Player typedef struct { @@ -280,17 +316,17 @@ typedef struct { } Object; // size = 0x1C typedef struct { - /* 0x00 */ void (*unk_00)(Object*); - /* 0x00 */ u8 unk_04; - /* 0x08 */ void (*unk_08)(Object*); - /* 0x0C */ f32* unk_0C; - /* 0x10 */ f32 unk_10; - /* 0x14 */ s16 unk_14; - /* 0x16 */ s16 unk_16; - /* 0x18 */ u8 unk_18; - /* 0x19 */ u8 unk_19; - /* 0x1C */ f32 unk_1C; - /* 0x20 */ u8 unk_20; + /* 0x00 */ void (*draw)(); // argument must have object type. Can be dlist. + /* 0x00 */ u8 drawType; + /* 0x08 */ void (*action)(); // argument must have object type. + /* 0x0C */ f32* unk_0C; // some sort of script? + /* 0x10 */ f32 unk_10; // z coordinate of something + /* 0x14 */ s16 unk_14; // can be -1, 0, 1 + /* 0x16 */ s16 unk_16; // can be 0, 1, 2 + /* 0x18 */ u8 unk_18; // damage? + /* 0x19 */ u8 unk_19; // can be 0, 1, 2 + /* 0x1C */ f32 unk_1C; // y offset of something + /* 0x20 */ u8 unk_20; // increment for something } ObjectStruct_1C; // size = 0x24 typedef struct { @@ -455,7 +491,7 @@ typedef struct { /* 0x046 */ s16 unk_046; /* 0x048 */ s16 unk_048; /* 0x04A */ s16 unk_04A; - /* 0x04C */ char pad4C[2]; + /* 0x04C */ s16 unk_04C; /* 0x04E */ s16 unk_04E; /* 0x050 */ s32 unk_050; /* 0x054 */ s32 unk_054; @@ -464,16 +500,18 @@ typedef struct { /* 0x060 */ s32 unk_060; /* 0x064 */ s32 unk_064; /* 0x068 */ s32 unk_068; - /* 0x06C */ char pad6C[4]; + /* 0x06C */ s32 unk_06C; /* 0x070 */ s32 unk_070; /* 0x074 */ s32 unk_074; /* 0x078 */ s32 unk_078; /* 0x07C */ s32 unk_07C; /* 0x080 */ s32 unk_080; /* 0x084 */ char pad84[4]; - /* 0x088 */ s32 unk_88; - /* 0x08C */ s32 unk_8C; - /* 0x090 */ char pad90[0x20]; + /* 0x088 */ s32 unk_088; + /* 0x08C */ s32 unk_08C; + /* 0x090 */ char pad90[8]; + /* 0x098 */ s32 unk_098; + /* 0x09C */ char pad9C[0x14]; /* 0x0B0 */ s32 unk_0B0; /* 0x0B4 */ s16 unk_0B4; /* 0x0B6 */ s16 unk_0B6; @@ -485,7 +523,7 @@ typedef struct { /* 0x0C2 */ u16 unk_0C2; /* 0x0C4 */ u16 unk_0C4; /* 0x0C6 */ u16 unk_0C6; - /* 0x0C8 */ char padC8[1]; // could be u16 loaded as u8 + /* 0x0C8 */ char padC8[1]; /* 0x0C9 */ u8 unk_0C9; /* 0x0C9 */ u8 unk_0CA[4]; /* 0x0CE */ s16 unk_0CE; @@ -526,7 +564,8 @@ typedef struct { /* 0x164 */ f32 unk_164; /* 0x168 */ f32 unk_168; /* 0x16C */ f32 unk_16C; - /* 0x170 */ char pad170[8]; + /* 0x170 */ f32 unk_170; + /* 0x174 */ char pad174[4]; /* 0x178 */ f32 unk_178; /* 0x17C */ f32 unk_17C; /* 0x180 */ f32 unk_180; diff --git a/include/variables.h b/include/variables.h index 77d0b493..07ecdf92 100644 --- a/include/variables.h +++ b/include/variables.h @@ -6,39 +6,14 @@ extern u64 __rspboot_start[]; extern u64 __rspboot_end[]; +extern u64 __aspmain_start[]; +extern u64 __aspmain_end[]; extern u64 __f3dex_start[]; -extern u8 gF3dexData; - -extern u8 D_8003B50[]; -extern u8 D_80046B0[]; -extern u8 D_8004C50[]; - -extern s32 sGammaMode; - -extern u8 D_80079F0[]; -extern u8 D_80080F0[]; -extern u8 D_80084B0[]; -extern u8 D_8008A30[]; -extern u8 D_8008DA0[]; -extern u8 D_80098E0[]; -extern u8 D_8009980[]; -extern u8 D_8009B00[]; -extern u8 D_8009CE0[]; -extern u8 D_800B5E0[]; -extern u8 D_800B680[]; -extern u8 D_800C640[]; -extern u8 D_800E130[]; - -extern f32 D_800C45E0[]; +extern u8 gF3dexData[SP_UCODE_DATA_SIZE]; extern Mtx gIdentityMtx; // 800C4620 extern Matrix gIdentityMatrix; //800C4660 -extern u8 sFaultCharIndex[]; -extern s32 sFaultCharPixelFlags[]; -extern const char* sFaultCauses[]; -extern const char* sFloatExceptions[]; - extern Vec3f D_800C5D28; extern f32 D_800C5D34; extern s8 D_800C5D3C; @@ -49,8 +24,6 @@ extern OSMesgQueue* D_800C7C5C; extern OSMesgQueue* D_800C7C60; extern OSMesgQueue* D_800C7C64; -extern char D_800C7C80[]; - extern OSContPad gCurrentInput[4]; extern OSContPad gChangedInput[4]; extern u8 gControllerStatus[4]; @@ -144,15 +117,28 @@ extern SaveFile gSaveIOBuffer; extern SaveFile sPrevSaveData; extern FaultMgr gFaultMgr; -extern Gfx D_8015550[]; - extern OSMesg D_80156600[1]; extern OSMesg D_80156608[4]; extern OSMesg D_80156618[1]; extern OSMesg D_8015661C[1]; extern u16 D_800C9C3C[16]; +extern f32 D_800CBE70[]; +extern f32 D_800CBE8C[]; +extern f32 D_800CBEA8[]; +extern f32 D_800CBEC4[]; extern f32 D_800CBF18[]; +extern f32 D_800CBF34[]; +extern f32 D_800CBF38[]; +extern f32 D_800CBF54[]; +extern f32 D_800CBF70[]; +extern f32 D_800CBF8C[]; +extern f32 D_800CBFA8[]; +extern f32 D_800CBFC8[]; +extern f32 D_800CBFE4[]; +extern f32 D_800CC000[]; +extern f32 D_800CC01C[]; +extern f32 D_800CC038[]; extern ObjectStruct_1C D_800CC124[]; extern f32 D_800CF9B0[]; extern Gfx* D_800CFA54[]; @@ -221,6 +207,8 @@ extern u8 D_800D3180[0x1E]; // might be bigger? at least 0x21 extern s32 D_800D4A70; extern Save gDefaultSave; +// sf_2EFE0 +extern s32 D_8015F900; extern s32 D_8015F90C; extern s32 D_8015F924; extern s32 D_8015F928; @@ -228,17 +216,41 @@ extern s32 D_8015F930[3]; extern s32 D_8015F93C; extern s32 D_8015F940; extern f32 D_8015F944; + +// sf_36930 +extern Vec3f D_8015F950; +extern u8 D_8015F964; + +// sf_43AC0 +extern s32 D_801613A0; + +// fox_52730 +extern Vec3f D_801613B0[]; +extern Vec3f D_801613E0[2]; extern s16 D_80161410; -extern Vec3f D_80161578[]; +extern Matrix D_80161418[4]; +extern Vec3f D_80161518[4]; +extern Vec3f D_80161548[4]; +extern Vec3f D_80161578[4]; +extern f32 D_801615A8[4]; +extern f32 D_801615B8[4]; + +// fox_edisplay extern Vec3f D_801615D0; extern Vec3f D_801615E0; extern s32 D_801615EC; extern Matrix D_801615F0; extern UnkStruct_D_80161630 D_80161630; extern s32 D_80161670[4]; + +// fox_enmy1? extern s32 D_80161680; extern u8 D_80161684; +// sf_6B3B0 extern s32 D_80161690; + +// sf_hud? +extern f32 D_801616A0; extern f32 D_801616BC; extern f32 D_801616C0; extern f32 D_801616C4; @@ -262,7 +274,17 @@ extern s32 D_801617B0; extern s32 D_801617B4; extern s32 D_801617B8; extern s32 D_80161810[]; +extern s32 D_80161900[]; + +extern s32 D_80161910[0x10]; // part of previous or next? + +// sf_97F80 +extern f32 D_80161950; + +// fox_display extern char D_801619A0[100]; + +// fox_A24B0 extern f32 D_80161A10; extern f32 D_80161A14; extern s32 D_80161A18[4]; @@ -278,6 +300,8 @@ extern u8 D_80161A39; extern f32 D_80161A3C; extern f32 D_80161A40; extern f32 D_80161A44; + +// sf_A4B50 extern u8 D_80161A50; extern f32 D_80161A54; extern s32 D_80161A5C; @@ -361,15 +385,19 @@ extern f32 D_801779B8; extern f32 D_801779C0; extern s32 D_801779C8[]; extern Vec3f D_801779D8; -extern s32 D_801779F8; +extern Vec3f D_801779E8; +extern bool gExpertMode; extern s32 D_80177A80; extern s8 D_80177A98; +extern f32 D_80177AA0[]; extern u8 D_80177AB0; extern f32 D_80177AB8[]; +extern u8 D_80177AC8; extern s32 D_80177AD0[]; extern s32 D_80177AE0; extern s32 D_80177AE8[]; extern s32 D_80177AF8; +extern s32 D_80177B00[][4]; extern s32 D_80177B40; extern s32 D_80177B48; extern s32 D_80177B50[]; @@ -392,9 +420,9 @@ extern f32 D_80177CB0; extern s32 D_80177CB4; extern s32 D_80177CBC; extern s32 D_80177CC4; +extern f32 D_80177CC8; extern f32 D_80177D08; extern s32 D_80177D10[]; -extern u16 D_8017D138; extern f32 D_80177D20; extern s32 D_80177D28[]; extern s32 D_80177D40[]; @@ -493,6 +521,9 @@ extern s32 D_801784E4; extern f32 D_801784F8; extern f32 D_801784FC; extern f32 D_80178500; +extern s32 D_80178504; +extern s32 D_80178508; +extern s32 D_8017850C; extern f32 D_80178520; extern f32 D_80178524; extern f32 D_80178528; @@ -511,8 +542,12 @@ extern s32 D_8017856C; extern s32 D_80178570; extern s32 D_80178574; extern s32 D_80178578; + +// file split -- part of radio? rcp? extern s32 D_80178580; extern s32 *D_80178710; + +//fox_radio extern u16** D_80178720; extern s32 D_80178724; extern s32 D_80178728; @@ -522,73 +557,74 @@ extern f32 D_80178734; extern f32 D_80178738; extern f32 D_8017873C; extern f32 D_80178740; + +// sf_versus +extern s32 D_80178750; extern s32 D_80178754; extern s32 D_80178758; extern s32 D_80178768[]; + +// fox_save extern SaveFile gSaveFile; +// gfx_data extern u16 D_Tex_800D99F8[]; extern u16 D_Tex_800DBA20[]; extern Gfx D_Gfx_800DBAA0[]; extern Gfx D_Gfx_800DAC20[]; extern Gfx D_Gfx_800D9688[]; +// wave_samples +extern s16 gSawtoothWaveSample[]; +extern s16 gTriangleWaveSample[]; +extern s16 gSineWaveSample[]; +extern s16 gSquareWaveSample[]; +extern s16 gWhiteNoiseSample[]; +extern s16 gUnkSample[]; +extern s16* gWaveSamples[]; + +// note_data +extern f32 gBendPitchOneOctaveFrequencies[]; +extern f32 gBendPitchTwoSemitonesFrequencies[]; +extern f32 gPitchFrequencies[]; +extern u8 gDefaultShortNoteVelocityTable[]; +extern u8 gDefaultShortNoteGateTimeTable[]; +extern u16 gHaasEffectDelaySizes[64]; +// extern EnvelopePoint gDefaultEnvelope[]; +// extern NoteUnkStruct gZeroNoteSub; +// extern NoteUnkStruct gDefaultNoteSub; +extern s16 D_800DD200[]; +extern f32 gHeadsetPanVolume[]; +extern f32 gStereoPanVolume[]; +extern f32 gDefaultPanVolume[]; + +// ovl_DF4260 extern Gfx* D_DF4260_8019A008[]; +extern f32 D_DF4260_8019A9B8[]; + +// ovl_E51970 extern Matrix D_E51970_8019EE80; -extern Gfx* D_E6A810_801B769C[]; + +// ovl_E6A810 extern Gfx* D_E6A810_801B7584[]; extern Gfx* D_E6A810_801B7608[]; -extern f32 D_E9F1D0_801A7F60; -extern f32 D_E9F1D0_801A7F78; -extern f32 D_EBFBE0_801B7BC8; -extern f32 D_EBFBE0_801B7BCC; -extern s32 D_EBFBE0_801B8220[]; // total hits ranking? see func_EBFBE0_80197DE4 -extern u8 D_EBFBE0_801B8248[][4]; -extern s32 D_EBFBE0_801B827C; -extern s32 D_EBFBE0_801B8280; -extern s32 D_EBFBE0_801B8284; -extern s32 D_EBFBE0_801B8288; -extern s32 D_EBFBE0_801B82A8; -extern s32 D_EBFBE0_801B82AC; -extern s32 D_EBFBE0_801B82BC; -extern s32 D_EBFBE0_801B82C0; -extern s32 D_EBFBE0_801B82C4; -extern f32 D_EBFBE0_801B82E0; -extern f32 D_EBFBE0_801B82E4; -extern f32 D_EBFBE0_801B82E8; -extern s32 D_EBFBE0_801B82F8; -extern s32 D_EBFBE0_801B82FC; -extern s32 D_EBFBE0_801B8300; -extern f32 D_EBFBE0_801B8304; -extern f32 D_EBFBE0_801B8308; -extern f32 D_EBFBE0_801B830C; -extern s32 D_EBFBE0_801B8310; -extern s32 D_EBFBE0_801B8314; -extern s32 D_EBFBE0_801B8318; -extern s32 D_EBFBE0_801B831C; -extern s32 D_EBFBE0_801B8320; -extern s32 D_EBFBE0_801B8324; -extern f32 D_EBFBE0_801B833C; -extern s32 D_EBFBE0_801B8344; -extern s32 D_EBFBE0_801B8348; -extern s32 D_EBFBE0_801B86A4; -extern f32 D_EBFBE0_801B86C8; -extern f32 D_EBFBE0_801B86CC; -extern f32 D_EBFBE0_801B86D0; -extern f32 D_EBFBE0_801B86D4; -extern f32 D_EBFBE0_801B86D8; -extern f32 D_EBFBE0_801B86DC; -extern s32 D_EBFBE0_801B9040; -extern f32 D_EBFBE0_801B905C; -extern f32 D_EBFBE0_801B9060; -extern f32 D_EBFBE0_801B9064; +extern Gfx* D_E6A810_801B769C[]; +extern f32 D_E6A810_801B83A8[]; extern s8 D_E6A810_801BA1E8; -extern char D_EBFBE0_801ADA44[]; -extern s32 D_EBFBE0_801ADA84[]; -extern s32 D_EBFEB0_801ADA94; +// ovl_E9F1D0 +extern f32 D_E9F1D0_801A7F60; +extern f32 D_E9F1D0_801A7F78; -extern u8 D_80281000[0x400]; +// ovl_EBFBE0 +extern s32 D_EBFBE0_801B8220[]; // total hits ranking? see func_EBFBE0_80197DE4 +extern s32 D_EBFBE0_801B8280; +extern s32 D_EBFBE0_801B8284; +extern s32 D_EBFBE0_801B827C; +extern s32 D_EBFBE0_801B8288; + +// buffers +extern u64 D_80281000[SP_DRAM_STACK_SIZE64]; extern u8 D_80281400[0xC00]; extern FrameBuffer gZBuffer; // z buffer extern u8 D_802A7800; @@ -598,69 +634,81 @@ extern u16 D_8038F080[]; extern u16 D_8038F300[]; extern FrameBuffer gFrameBuffers[3]; // 8038F800 -extern Gfx D_1011F20[]; -extern u8 D_1013170[]; -extern u16 D_1013570[]; +// ast_873CB0 +extern u16 D_1002040[]; +extern u16 D_10032A0[]; extern u16 D_10041C0[]; -extern Gfx D_1015980[]; +extern u16 D_10050E0[]; extern u16 D_1006000[]; -extern Gfx D_1016580[]; extern u16 D_1006F20[]; extern u16 D_1007E40[]; -extern Gfx D_10182C0[]; extern u16 D_1008D60[]; extern u16 D_1009C80[]; extern u16 D_100ABA0[]; -extern u16 D_100C9E0[]; -extern u16 D_100E820[]; -extern u16 D_1002040[]; -extern u16 D_10050E0[]; extern u16 D_100BAC0[]; +extern u16 D_100C9E0[]; extern u16 D_100D900[]; -extern u16 D_10032A0[]; -extern void *D_10190C0; // A texture of some sort. -extern Gfx D_10194C0[]; -extern Gfx D_1021E20[]; -extern Gfx D_1024290[]; +extern u16 D_100E820[]; extern u8 D_1011A40[]; extern u16 D_1011AB0[]; extern u8 D_1011E80[]; extern u16 D_1011EC0[]; extern s32 D_1011ED0[]; extern s32 D_1011F08[]; +extern Gfx D_1011F20[]; extern u8 D_10127D0[]; extern u16 D_1012898[]; extern u8 D_10128C0[]; extern u16 D_1012988[]; extern u8 D_10129C0[]; extern u16 D_1013090[]; +extern u8 D_1013170[]; +extern u16 D_1013570[]; extern Gfx D_1015510[]; -extern Gfx D_10177C0[]; -extern Gfx D_1023750[]; -extern Gfx D_1024230[]; -extern Gfx D_1024830[]; -extern u8 D_1024A58[]; -extern Gfx D_102A8A0[]; -extern Gfx D_1024AC0[]; -extern Gfx D_1028230[]; -extern Gfx D_101C2E0[]; -extern Gfx D_101CAE0[]; -extern Gfx D_1023C80[]; -extern Gfx D_101A570[]; -extern Gfx D_1019CA0[]; +extern Gfx D_1015980[]; +extern Gfx D_1016580[]; extern Gfx D_1016870[]; -extern Gfx D_1022E80[]; -extern Gfx D_1029780[]; -extern Gfx D_102A010[]; -extern Gfx D_1032780[]; +extern Gfx D_10177C0[]; +extern Gfx D_10182C0[]; +extern u16 D_10190C0[]; // A texture of some sort. +extern Gfx D_10194C0[]; extern Gfx D_1019820[]; +extern Gfx D_1019CA0[]; +extern Gfx D_101A570[]; extern Gfx D_101A8E0[]; extern Gfx D_101ABD0[]; +extern Gfx D_101C2E0[]; +extern Gfx D_101C2E0[]; +extern Gfx D_101CAE0[]; +extern Gfx D_101CD70[]; +extern u16 D_101D070[]; +extern Gfx D_101DC10[]; +extern Gfx D_1021E20[]; +extern Gfx D_1022120[]; +extern Gfx D_1022E80[]; extern Gfx D_10231A0[]; +extern Gfx D_1023700[]; +extern Gfx D_1023750[]; +extern Gfx D_1023C80[]; +extern Gfx D_1024230[]; +extern Gfx D_1024290[]; +extern Gfx D_1024410[]; +extern Gfx D_1024570[]; +extern Gfx D_10246D0[]; +extern Gfx D_1024830[]; +extern u8 D_1024A58[]; +extern Gfx D_1024AC0[]; +extern Gfx D_1024F60[]; +extern Gfx D_1028230[]; +extern Gfx D_1029780[]; +extern Gfx D_102A010[]; +extern Gfx D_102A8A0[]; extern Gfx D_102ED50[]; extern Gfx D_102F5E0[]; extern Gfx D_102FE80[]; +extern Gfx D_1032780[]; +// ast_8A68C0, ast_8AE0A0 extern Gfx D_2000000[]; extern Gfx D_2000890[]; extern Gfx D_2001090[]; @@ -693,36 +741,86 @@ extern Gfx D_200F910[]; extern Gfx D_20101A0[]; extern Gfx D_20112C0[]; +// ast_8BFC00, ast_8D99F0, ast_8E1F80, ast_8E92D0 extern u8 D_3000000[]; extern u16 D_3000080[]; +extern Gfx D_3000090[]; extern Gfx D_3000660[]; extern u16 D_3000BC0[]; +extern Gfx D_3001C90[]; +extern Gfx D_3003CE0[]; +extern Gfx D_3004680[]; +extern Gfx D_3005980[]; +extern Gfx D_3005AB0[]; +extern Gfx D_30066B0[]; +extern Gfx D_3007650[]; +extern Gfx D_3008100[]; extern u8 D_300D350[]; extern u16 D_300D398[]; extern u8 D_300D3C0[]; extern u16 D_300D408[]; extern u8 D_300D440[]; extern u16 D_300D500[]; -extern Gfx D_30155E0[]; -extern Gfx D_3015D80[]; -extern Gfx D_3016660[]; -extern Gfx D_3016B30[]; +extern Gfx D_300D550[]; +extern Gfx D_300EE80[]; +extern Gfx D_300FB80[]; +extern Gfx D_3010A90[]; +extern Gfx D_3011470[]; extern Gfx D_3011720[]; -extern Gfx D_3005980[]; +extern Gfx D_3012ED0[]; +extern Gfx D_30131F0[]; +extern Gfx D_3013580[]; +extern Gfx D_3013780[]; +extern Gfx D_3014BF0[]; +extern Gfx D_3015120[]; +extern Gfx D_30155E0[]; +extern AnimationHeader D_3015AF4; +extern AnimationHeader D_3015C28; +extern Gfx D_3015D80[]; +extern Limb* D_3016610[]; +extern Gfx D_3016660[]; +extern Gfx D_3016B00[]; +extern Gfx D_3016B30[]; +extern Gfx D_3016CC0[]; +extern Gfx D_30173C0[]; +extern Gfx D_30174E0[]; +extern Gfx D_3017600[]; +extern Gfx D_3017600[]; +extern Gfx D_30183D0[]; +extern Gfx D_30194E0[]; +extern Gfx D_301B080[]; +extern Gfx D_301B6E0[]; +extern Limb* D_301C614[]; +extern Limb* D_301D258[]; +extern Limb* D_301DB94[]; +extern Limb* D_301E3E8[]; +extern Gfx D_301E570[]; +extern Gfx D_301F140[]; +extern Gfx D_301FD20[]; +extern Gfx D_302D240[]; +extern UnkStruct_D_80161A68 D_302DD70[]; +extern UnkStruct_D_80161A68 D_302DDB4[]; +extern UnkStruct_D_80161A68 D_302DDF8[]; extern ObjectInit D_302DE3C[]; extern ObjectInit D_302E0E4[]; extern ObjectInit D_302E170[]; extern ObjectInit D_302E378[]; -extern UnkStruct_D_80161A68 D_302DD70[]; -extern UnkStruct_D_80161A68 D_302DDB4[]; -extern UnkStruct_D_80161A68 D_302DDF8[]; +extern f32 D_302ED4C[]; +extern f32 D_302ED98[]; +extern f32 D_302EDB4[]; +extern f32 D_302EE00[]; +extern f32 D_302EE64[]; +extern f32 D_302EE80[]; +extern f32 D_302EE9C[]; +// ast_918430, ast_922730 extern Gfx D_40018A0[]; extern Gfx D_4003BD0[]; extern Gfx D_4007870[]; extern Gfx D_4007AF0[]; extern Gfx D_400B390[]; +// ast_CD2410 extern u8 D_5000000[]; extern u8 D_5000080[]; extern u8 D_5000100[]; @@ -747,7 +845,64 @@ extern u8 D_500A6E0[]; extern u8 D_500A7D0[]; extern Gfx D_500B600[]; +/* ast_961CE0, ast_9A1460, ast_9D2FD0, ast_A1D0F0, ast_A4FBB0, + * ast_A58F60, ast_A8B470, ast_AB4000, ast_ACF960, ast_AE60A0, + * ast_B0AA00, ast_B1CA50, ast_B2CA50, ast_B612E0, ast_B84560, + * ast_BB11D0, ast_BC23D0, ast_BFC510, ast_C48F40, ast_DDC010 + */ extern u16 D_6000000[]; +extern u16 D_6000900[]; +extern Gfx D_6000A80[]; +extern u16 D_6000B60[]; +extern Gfx D_6000E00[]; +extern Gfx D_6001360[]; +extern u16 D_6001820[]; +extern Gfx D_6001A60[]; +extern u16 D_6001A80[]; +extern u8 D_6001B80[]; +extern Vtx D_6001C50[]; +extern Gfx D_6001DA0[]; +extern u8 D_60020D0[]; +extern Gfx D_60023B0[]; +extern Gfx D_6002990[]; +extern u16 D_60029A0[]; +extern Gfx D_6003000[]; +extern Gfx D_60030F0[]; +extern Gfx D_60034D0[]; +extern Gfx D_6003610[]; +extern Gfx D_60036A0[]; +extern u16 D_60038C0[]; +extern Gfx D_6004170[]; +extern Gfx D_6004330[]; +extern Vtx D_6004500[]; +extern Gfx D_6004570[]; +extern u16 D_60047E0[]; +extern Gfx D_6005360[]; +extern u16 D_6005700[]; +extern Gfx D_6005780[]; +extern Gfx D_6006140[]; +extern Gfx D_6006310[]; +extern f32 D_60064AC[]; +extern f32 D_60064C8[]; +extern f32 D_60064FC[]; +extern f32 D_6006518[]; +extern f32 D_6006564[]; +extern f32 D_60065B0[]; +extern f32 D_60065FC[]; +extern f32 D_6006648[]; +extern f32 D_6006694[]; +extern f32 D_60066E0_f32[]; +extern Gfx D_60066E0_Gfx[]; +extern f32 D_600672C[]; +extern f32 D_6006778[]; +extern f32 D_60067C4[]; +extern f32 D_6006808[]; +extern f32 D_600683C[]; +extern f32 D_6006858[]; +extern f32 D_6006890_f32[]; +extern Gfx D_6006890_Gfx[]; +extern f32 D_60068BC[]; +extern f32 D_60068F0[]; extern f32 D_6006940[]; extern f32 D_600695C[]; extern f32 D_6006978[]; @@ -757,145 +912,393 @@ extern f32 D_60069CC[]; extern f32 D_60069E8[]; extern f32 D_6006A04[]; extern f32 D_6006A20[]; +extern f32 D_6006A3C[]; +extern Gfx D_6006A80[]; +extern f32 D_6006BF0[]; +extern f32 D_6006C44[]; extern u16 D_6006EA0[]; +extern Gfx D_6006F50[]; +extern Gfx D_6007410[]; +extern Gfx D_60075D0[]; extern Gfx D_6007650[]; -extern u16 D_600BEA0[]; -extern u8 D_600E360[]; -extern u8 D_600E980[]; -extern u8 D_6014140[]; -extern u16 D_60147C0[]; -extern u8 D_60147E0[]; -extern Gfx D_60148D0[]; -extern Gfx D_60148B0[]; -extern Gfx D_601AE40[]; -extern Gfx D_6023AC0[]; -extern Gfx D_602A720[]; -extern Gfx D_602DA20[]; -extern Gfx D_602E380[]; -extern Gfx D_60320E0[]; -extern Gfx D_6032580[]; -extern Gfx D_6032BC0[]; -extern Gfx D_6033000[]; -extern Gfx D_6034B90[]; -extern Gfx D_6035DA0[]; -extern Gfx D_60361F0[]; -extern Gfx D_6037CF0[]; -extern u8 D_6011890[]; -extern Gfx D_60119A0[]; -extern u8 D_6012310[]; -extern u8 D_60123F0[]; -extern Gfx D_6012C00[]; -extern Gfx D_601C7C0[]; +extern Gfx D_60079B0[]; +extern Gfx D_6007CF0[]; +extern Gfx D_6007D80[]; +extern Gfx D_6007D90[]; +extern Gfx D_6008370[]; +extern f32 D_600924C[]; +extern f32 D_60092E8[]; +extern f32 D_6009388[]; +extern Gfx D_60097E0[]; +extern f32 D_6009CC4[]; +extern f32 D_6009CFC[]; +extern Vtx D_6009ED0[]; extern Gfx D_6009F90[]; +extern Gfx D_600A220[]; +extern Gfx D_600A420[]; +extern Gfx D_600AF40[]; +extern Gfx D_600B8B0[]; +extern Gfx D_600BAF0[]; +extern u16 D_600BEA0[]; +extern Gfx D_600BF80[]; +extern u16 D_600C6A0[]; +extern Vtx D_600C780[]; extern u16 D_600D5C0[]; extern Gfx D_600D730[]; extern Gfx D_600DBC0[]; extern u8 D_600DDC0[]; +extern u8 D_600E360[]; +extern Gfx D_600E820[]; +extern u8 D_600E980[]; +extern Gfx D_600EC90[]; +extern Gfx D_600EE10[]; +extern Gfx D_600EEF0[]; extern Gfx D_600F160[]; extern Gfx D_600F2F0[]; extern Gfx D_600F3D0[]; +extern Gfx D_600F4C0[]; +extern Gfx D_600F560[]; +extern Gfx D_600F6C0[]; extern Gfx D_600F6C0[]; extern Gfx D_600F8A0[]; extern u8 D_600F940[]; extern Gfx D_600F9B0[]; +extern f32 D_600FE9C[]; +extern f32 D_600FEB8[]; +extern f32 D_600FF30[]; +extern f32 D_600FF80[]; +extern f32 D_600FFA0[]; +extern f32 D_600FFC0[]; +extern f32 D_600FFE0[]; +extern ObjectInit* D_6010088[]; +extern u8 D_6010090[]; +extern Gfx D_60102C0[]; +extern u8 D_60106B0[]; +extern Gfx D_6010960[]; +extern Gfx D_6010A50[]; +extern u16 D_6010C20[]; +extern Gfx D_6010E00[]; +extern u8 D_6010FA0[]; +extern f32 D_6011058[]; +extern f32 D_601115C[]; +extern u8 D_6011890[]; +extern Gfx D_60119A0[]; +extern f32 D_6011B24[]; +extern u16 D_6011B40[]; +extern f32 D_6011BF4[]; +extern f32 D_6011C10[]; +extern f32 D_6011C48[]; +extern f32 D_6011C80[]; +extern Gfx D_6011EE0[]; +extern Gfx D_60120F0[]; +extern u8 D_6012310[]; +extern u8 D_60123F0[]; +extern Gfx D_6012C00[]; +extern Gfx D_60132B0[]; +extern u8 D_6013470[]; +extern Gfx D_60137B0[]; +extern Gfx D_6013960[]; +extern Gfx D_6013B50[]; +extern u8 D_6014140[]; +extern Gfx D_60143E0[]; +extern Gfx D_6014500[]; +extern u16 D_6014510[]; +extern Gfx D_6014670[]; +extern u16 D_60147C0[]; +extern u8 D_60147E0[]; +extern Gfx D_60148B0[]; +extern Gfx D_60148D0[]; +extern Gfx D_6014A20[]; +extern Gfx D_6014B50[]; +extern Gfx D_60153B0[]; +extern u16 D_6015430[]; +extern Gfx D_6015730[]; +extern Gfx D_6015F00[]; +extern Gfx D_6016270[]; +extern Gfx D_60164F0[]; +extern Gfx D_6016580[]; +extern f32 D_601668C[]; +extern f32 D_60166F4[]; +extern f32 D_6016714[]; +extern Gfx D_6018450[]; +extern Gfx D_60188D0[]; +extern Gfx D_6018C00[]; // possible collision +extern Gfx D_6018D40[]; +extern Gfx D_6018E80[]; +extern u16 D_6018F30[]; +extern u16 D_6019E50[]; extern Gfx D_601A7A0[]; +extern Gfx D_601A7D0[]; +extern Gfx D_601AE40[]; +extern Gfx D_601B0D0[]; +extern u16 D_601B4B0[]; +extern f32 D_601B4E0[]; +extern f32 D_601B4FC[]; +extern f32 D_601B518[]; +extern Gfx D_601B560[]; +extern f32 D_601B584[]; +extern f32 D_601B5F4[]; +extern Gfx D_601B610[]; +extern f32 D_601B644[]; +extern f32 D_601B678[]; +extern f32 D_601B6C4[]; +extern f32 D_601B710[]; +extern f32 D_601B75C[]; +extern Gfx D_601B7C0[]; +extern f32 D_601B7F8[]; +extern f32 D_601B830[]; +extern f32 D_601B868[]; +extern f32 D_601B8A0[]; +extern f32 D_601B8D8[]; +extern Gfx D_601BEC0[]; +extern Gfx D_601C6A0[]; +extern Gfx D_601C7C0[]; +extern u16 D_601C8E0[]; +extern Gfx D_601C9B0[]; +extern Gfx D_601D1F0[]; +extern Gfx D_601D730[]; +extern u8 D_601D750[]; +extern u16 D_601D800[]; +extern u16 D_601DB50[]; +extern Gfx D_601DE60[]; +extern AnimationHeader D_601E8C4; +extern Limb* D_601E9D0[]; +extern Gfx D_601F1D0[]; +extern Gfx D_601F500[]; +extern Gfx D_601F5A0[]; +extern Gfx D_601FCB0[]; +extern Gfx D_601FF80[]; extern Gfx D_60200E0[]; +extern Gfx D_6020760[]; extern Gfx D_6020A30[]; +extern Gfx D_6020B40[]; extern Gfx D_6020E60[]; +extern u16 D_6020FB0[]; +extern u16 D_6021ED0[]; extern Gfx D_60223C0[]; extern Gfx D_6022450[]; extern Gfx D_6022530[]; -extern Gfx D_60363B0[]; -extern Gfx D_6036840[]; -extern Gfx D_6036CD0[]; +extern u16 D_6022760[]; extern Gfx D_6022920[]; -extern Gfx D_6020B40[]; -extern Limb* D_6029674[]; -extern ObjectInit* D_6010088[]; -extern u8 D_6010090[]; -extern u8 D_60106B0[]; -extern u8 D_6010FA0[]; -extern u8 D_6013470[]; -extern u16 D_601B4B0[]; -extern Gfx D_601D1F0[]; -extern AnimationHeader D_6029528; -extern u8 D_601D750[]; -extern u16 D_601DB50[]; -extern ObjectInit* D_602B148[]; -extern ObjectInit* D_602F18C[]; -extern AnimationHeader D_601E8C4; -extern Limb* D_601E9D0[]; -extern Gfx D_6018C00[]; -extern Gfx D_6018D40[]; -extern Gfx D_601FF80[]; +extern Gfx D_60231C0[]; +extern Gfx D_60238F0[]; +extern Gfx D_6023AC0[]; +extern Gfx D_6024010[]; extern Gfx D_6024220[]; +extern Gfx D_60244A0[]; +extern u16 D_60245E0[]; +extern Gfx D_6024AC0[]; extern Gfx D_6024B60[]; +extern u16 D_6025500[]; extern Gfx D_6025B50[]; -extern Gfx D_6007CF0[]; -extern Gfx D_6007D90[]; +extern u16 D_6026420[]; +extern Gfx D_60270E0[]; +extern Gfx D_6027180[]; +extern AnimationHeader D_6027320; +extern u16 D_6027340[]; +extern Limb* D_602742C[]; +extern Gfx D_6027900[]; +extern f32 D_6028454[]; +extern AnimationHeader D_6029528; +extern Limb* D_6029674[]; +extern Gfx D_602A720[]; +extern u16 D_602AC50[]; +extern ObjectInit* D_602B148[]; +extern Gfx D_602B4C0[]; +extern f32 D_602B9EC[]; +extern f32 D_602BA20[]; +extern f32 D_602BAE4[]; +extern f32 D_602BBD8[]; +extern f32 D_602BC54[]; +extern f32 D_602BC58[]; +extern f32 D_602BE3C[]; +extern f32 D_602BE58[]; +extern f32 D_602BFC4[]; +extern f32 D_602C044[]; +extern f32 D_602C1D4[]; +extern f32 D_602C218[]; +extern f32 D_602C234[]; +extern f32 D_602C250[]; +extern f32 D_602C294[]; +extern f32 D_602C2B0[]; +extern Gfx D_602D5F0[]; +extern Gfx D_602DA20[]; +extern Gfx D_602DAE0[]; +extern Gfx D_602DB80[]; +extern Gfx D_602DC20[]; +extern Gfx D_602DCA0[]; +extern Gfx D_602E080[]; +extern Gfx D_602E380[]; +extern Gfx D_602E570[]; +extern UnkStruct_D_80161A68 D_602E584[]; +extern Gfx D_602E7A0[]; +extern Gfx D_602E9E0[]; +extern ObjectInit* D_602F18C[]; +extern f32 D_602F684[]; +extern f32 D_602F6A0[]; +extern f32 D_602F6EC[]; +extern f32 D_602F708[]; +extern f32 D_602F724[]; +extern f32 D_602F740[]; +extern f32 D_602F75C[]; +extern Gfx D_602F7C0[]; +extern f32 D_602FA50[]; +extern Gfx D_6030500[]; +extern Gfx D_6030630[]; +extern f32 D_6030B10[]; +extern ObjectInit D_6030B14[]; +extern f32 D_6030BE0[]; +extern f32 D_6030BFC[]; +extern f32 D_6030C18[]; +extern f32 D_6030C44[]; +extern f32 D_6030C60[]; +extern f32 D_6030C7C[]; +extern f32 D_6030D20[]; +extern f32 D_6030D74[]; +extern f32 D_6030DF8[]; +extern f32 D_6030E14[]; +extern f32 D_6030E30[]; +extern f32 D_6030E4C[]; +extern f32 D_6030E68[]; +extern f32 D_6030F74[]; +extern f32 D_6031398[]; +extern f32 D_60313CC[]; +extern f32 D_6031400[]; +extern f32 D_603144C[]; +extern f32 D_6031480[]; +extern f32 D_60314C8[]; +extern f32 D_6031500[]; +extern f32 D_6031538[]; +extern f32 D_6031554[]; +extern f32 D_6031570[]; +extern Gfx D_60320E0[]; +extern f32 D_6032328[]; +extern f32 D_6032488[]; +extern f32 D_60324EC[]; +extern f32 D_6032550[]; +extern Gfx D_6032580[]; +extern Gfx D_6032BC0[]; +extern Gfx D_6033000[]; +extern f32 D_603405C[]; +extern f32 D_6034368[]; +extern f32 D_6034478[]; +extern f32 D_603450C[]; +extern f32 D_6034588[]; +extern f32 D_6034664[]; +extern f32 D_6034770[]; +extern f32 D_60347D4[]; +extern f32 D_60347F0[]; +extern f32 D_603486C[]; +extern Gfx D_6034B90[]; +extern f32 D_60359C8[]; +extern f32 D_6035A14[]; +extern f32 D_6035A48[]; +extern f32 D_6035AE0[]; +extern f32 D_6035D9C[]; +extern Gfx D_6035DA0[]; +extern f32 D_6035E04[]; +extern Gfx D_6035F10[]; +extern f32 D_60360C0[]; +extern f32 D_6036154[]; +extern Gfx D_60361F0[]; // possible collision +extern f32 D_6036204[]; +extern f32 D_603626C[]; +extern f32 D_6036288[]; +extern f32 D_60362A4[]; +extern f32 D_60362D8[]; +extern f32 D_60362F4[]; +extern f32 D_6036328[]; +extern f32 D_6036344[]; +extern f32 D_6036370[]; +extern f32 D_603638C[]; +extern Gfx D_60363B0[]; +extern f32 D_60363B8[]; +extern f32 D_60363E4[]; +extern f32 D_6036410[]; +extern f32 D_603643C[]; +extern f32 D_6036458[]; +extern f32 D_60364C0[]; +extern f32 D_60364DC[]; +extern f32 D_6036594[]; +extern f32 D_60366EC[]; +extern f32 D_6036708[]; +extern f32 D_6036724[]; +extern f32 D_6036728[]; +extern f32 D_6036744[]; +extern f32 D_6036760[]; +extern f32 D_603677C[]; +extern Gfx D_6036840[]; +extern f32 D_6036894[]; +extern f32 D_60368E0[]; +extern f32 D_6036930[]; +extern f32 D_603694C[]; +extern f32 D_6036968[]; +extern Gfx D_6036CD0[]; +extern Gfx D_6037CF0[]; +extern ObjectInit D_603B074[]; +extern f32 D_603DCA4[]; +extern f32 D_603DD40[]; +extern f32 D_603DDF0[]; +extern f32 D_603DE8C[]; +extern f32 D_603DEF4[]; +extern f32 D_603DF8C[]; +extern f32 D_603DFDC[]; +extern f32 D_603E014[]; +extern f32 D_603E030[]; +extern f32 D_603E09C[]; +extern f32 D_603E0EC[]; +extern f32 D_603E118[]; +extern f32 D_603E14C[]; +extern f32 D_603E1B4[]; +extern f32 D_603E21C[]; +extern f32 D_603E3E0[]; +extern f32 D_603E468[]; +extern f32 D_603E484[]; +extern f32 D_603E4A0[]; +extern f32 D_603E4A4[]; +extern f32 D_603E4DC[]; +extern f32 D_603E514[]; +extern f32 D_603E54C[]; +extern f32 D_603E598[]; +extern f32 D_603E5B4[]; +extern f32 D_603E5D0[]; +extern f32 D_603E604[]; +extern f32 D_603E620[]; +extern f32 D_603E714[]; +extern f32 D_603E748[]; +extern f32 D_603E7C4[]; +extern f32 D_603E840[]; +extern f32 D_603E88C[]; +extern f32 D_603E8A8[]; +extern f32 D_603E98C[]; +extern f32 D_603E9EC[]; +extern f32 D_603EA08[]; +extern f32 D_603EA74[]; +extern f32 D_603EAE0[]; +extern f32 D_603EB0C[]; extern Gfx D_6041070[]; extern u16 D_60447A0[]; extern u16 D_6047550[]; extern Gfx D_604A9F0[]; -extern Gfx D_6004570[]; -extern u8 D_6001B80[]; -extern u8 D_60020D0[]; -extern u16 D_6000900[]; -extern Gfx D_6000A80[]; -extern u16 D_6000B60[]; -extern u16 D_6001820[]; -extern Gfx D_6001A60[]; -extern u16 D_6001A80[]; -extern u16 D_60029A0[]; -extern u16 D_60038C0[]; -extern u16 D_60047E0[]; -extern u16 D_6005700[]; -extern u16 D_600C6A0[]; -extern u16 D_6010C20[]; -extern u16 D_6011B40[]; -extern u16 D_6014510[]; -extern u16 D_6015430[]; -extern u16 D_6018F30[]; -extern u16 D_6019E50[]; -extern u16 D_601C8E0[]; -extern u16 D_601D800[]; -extern u16 D_6020FB0[]; -extern u16 D_6021ED0[]; -extern u16 D_60245E0[]; -extern u16 D_6025500[]; -extern u16 D_6026420[]; -extern AnimationHeader D_6027320; -extern u16 D_6027340[]; -extern Limb* D_602742C; extern Gfx D_605C230[]; -extern Vtx D_6001C50[]; -extern Vtx D_6004500[]; -extern Vtx D_6009ED0[]; -extern Gfx D_600A220[]; -extern Vtx D_600C780[]; -extern u16 D_6022760[]; -extern u16 D_602AC50[]; -extern f32 D_6032328[]; -extern ObjectInit D_603B074[]; -extern ObjectInit D_6030B14[]; -extern Gfx D_6020760[]; -extern UnkStruct_D_80161A68 D_602E584[]; - +// ast_9DD390, ast_A0E340, ast_BFA740, ast_CBFE70, ast_D27600 extern u8 D_7000F10[]; extern u8 D_7001030[]; extern u8 D_7001270[]; extern u8 D_7001DF0[]; extern u8 D_7002110[]; extern u8 D_7003650[]; +extern u8 D_7004010[]; +extern Gfx D_7007350[]; +extern Gfx D_700AB70[]; +extern Gfx D_700BB10[]; +extern Gfx D_700BE00[]; +extern u16 D_700E9A0[]; extern u8 D_70118E0[]; extern u16 D_70123F8[]; -extern Gfx D_7007350[]; -extern u8 D_7004010[]; -extern Gfx D_700BB10[]; -extern u16 D_700E9A0[]; - +// ast_9EB5E0, ast_CA9DE0, ast_D43400, ast_D68480, ast_D91F10 extern u8 D_8000000[]; extern u16 D_8000680[]; extern u8 D_80006A0[]; @@ -910,6 +1313,9 @@ extern u8 D_8003A70[]; extern u8 D_8003AB8[]; extern u8 D_8003AE0[]; extern u8 D_8003B28[]; +extern u8 D_8003B50[]; +extern u8 D_80046B0[]; +extern u8 D_8004C50[]; extern u8 D_8005CD0[]; extern u8 D_8006280[]; extern u8 D_80064F0[]; @@ -918,21 +1324,58 @@ extern u8 D_8006D10[]; extern u8 D_8006E50[]; extern u8 D_8007210[]; extern u8 D_80076E0[]; +extern u8 D_80079F0[]; +extern u8 D_80080F0[]; +extern u8 D_80084B0[]; +extern u8 D_8008A30[]; +extern u8 D_8008DA0[]; +extern u8 D_80098E0[]; +extern u8 D_8009980[]; +extern u8 D_8009B00[]; +extern u8 D_8009CE0[]; +extern u8 D_800B5E0[]; +extern u8 D_800B680[]; +extern u8 D_800C640[]; extern u8 D_800CD90[]; extern u8 D_800D070[]; extern u8 D_800D170[]; extern u8 D_800D1F0[]; +extern u8 D_800E130[]; extern u16 D_800E170[]; +extern Gfx D_8015550[]; extern Gfx D_8015DF0[]; +// ast_9F4880, ast_AE60A0, ast_CDDCA0 +extern Gfx D_9003F50[]; +extern Gfx D_9005C80[]; extern Gfx D_900D180[]; +extern Gfx D_900DD20[]; +extern Gfx D_900F060[]; +extern Gfx D_900F1D0[]; extern Gfx D_9010FD0[]; +extern Gfx D_901DA50[]; extern Gfx D_9023290[]; extern Gfx D_90234D0[]; +extern Gfx D_9023AD0[]; -extern ObjectInit* D_C0356A4[]; +// ast_A049A0 +extern Gfx D_A000000[]; + +// segment B is unused + +// ast_CE9E70 extern Gfx D_C017440[]; +extern ObjectInit* D_C0356A4[]; +extern f32 D_C038A48[]; +extern f32 D_C038B40[]; +extern f32 D_C038B40[]; +extern f32 D_C038BA4[]; +extern f32 D_C038BD8[]; +extern f32 D_C038DC0[]; +extern f32 D_C038F24[]; +// ast_955270 +extern Gfx D_D000000[]; extern u16 D_D000170[]; extern u16 D_D001090[]; extern u16 D_D001FB0[]; @@ -944,12 +1387,24 @@ extern u16 D_D006B50[]; extern u16 D_D007A70[]; extern u16 D_D008990[]; extern Gfx D_D0098B0[]; +extern Gfx D_D00B5C0[]; +extern Gfx D_D00B720[]; +// ast_92EC40 extern u16 D_E00E100[]; extern u16 D_E00F020[]; extern u16 D_E00FF40[]; extern u16 D_E010E60[]; +// ast_D25100 +extern u16 D_F000000[]; +extern u16 D_F000800[]; +extern u16 D_F001000[]; +extern u16 D_F001800[]; +extern u16 D_F002000[]; + +// ast_940AD0 +extern u16 D_F000000[]; extern u16 D_F000F20[]; extern u16 D_F001E40[]; extern u16 D_F002D60[]; @@ -965,13 +1420,8 @@ extern u16 D_F00B580[]; extern u16 D_F00C4A0[]; extern u16 D_F00D3C0[]; extern u16 D_F00E2E0[]; -extern Gfx D_F014310[]; extern Gfx D_F014180[]; -extern u16 D_F000000[]; -extern u16 D_F000800[]; -extern u16 D_F001000[]; -extern u16 D_F001800[]; -extern u16 D_F002000[]; +extern Gfx D_F014310[]; #endif // VARIABLES_H diff --git a/linker_scripts/us/symbol_addr_mesg.txt b/linker_scripts/us/symbol_addr_mesg.txt index 63775563..49e579cc 100644 --- a/linker_scripts/us/symbol_addr_mesg.txt +++ b/linker_scripts/us/symbol_addr_mesg.txt @@ -777,145 +777,3 @@ gMsg_ID_23029 = 0x80185b48; gMsg_ID_23030 = 0x80185ba0; gMsg_ID_23031 = 0x80185c00; gMsg_ID_23032 = 0x80185c68; -// D_8017B2CC = 0x8017B2CC; -// D_8017B730 = 0x8017B730; -// D_8017B7A8 = 0x8017B7A8; -// D_8017B7FC = 0x8017B7FC; -// D_8017B848 = 0x8017B848; -// gMsg_ID_5504 = 0x8017D138; -// D_8017E264 = 0x8017E264; -// D_8017E934 = 0x8017E934; -// D_8017E974 = 0x8017E974; -// D_8017E9AC = 0x8017E9AC; -// D_8017E9FC = 0x8017E9FC; -// D_8017EA34 = 0x8017EA34; -// D_8017EA88 = 0x8017EA88; -// D_8017EACC = 0x8017EACC; -// D_8017EAF0 = 0x8017EAF0; -// D_8017EB14 = 0x8017EB14; -// D_8017EB44 = 0x8017EB44; -// D_8017EB9C = 0x8017EB9C; -// D_8017EBD4 = 0x8017EBD4; -// D_8017EC24 = 0x8017EC24; -// D_8017EC60 = 0x8017EC60; -// D_8017ECAC = 0x8017ECAC; -// D_8017ECF4 = 0x8017ECF4; -// D_8017ED28 = 0x8017ED28; -// D_8017ED50 = 0x8017ED50; -// D_8017ED70 = 0x8017ED70; -// D_8017ED9C = 0x8017ED9C; -// D_8017EDB8 = 0x8017EDB8; -// D_8017EFA0 = 0x8017EFA0; -// D_8017EFF0 = 0x8017EFF0; -// D_8017F048 = 0x8017F048; -// D_8017F090 = 0x8017F090; -// D_8017F0D4 = 0x8017F0D4; -// D_8017F114 = 0x8017F114; -// D_8017F144 = 0x8017F144; -// D_8017F194 = 0x8017F194; -// D_8017F1DC = 0x8017F1DC; -// D_8017F218 = 0x8017F218; -// D_8017F26C = 0x8017F26C; -// D_8017F2A4 = 0x8017F2A4; -// D_8017F2E8 = 0x8017F2E8; -// D_8017F31C = 0x8017F31C; -// D_8017F344 = 0x8017F344; -// D_8017F37C = 0x8017F37C; -// D_8017F3C8 = 0x8017F3C8; -// D_8017F3EC = 0x8017F3EC; -// D_8017F8C8 = 0x8017F8C8; -// D_8017F8F4 = 0x8017F8F4; -// D_8017F920 = 0x8017F920; -// D_80180001 = 0x80180001; -// D_80180E38 = 0x80180E38; -// D_80180E70 = 0x80180E70; -// D_80180EC4 = 0x80180EC4; -// D_80180EF4 = 0x80180EF4; -// D_80180F30 = 0x80180F30; -// D_80180FFC = 0x80180FFC; -// D_8018102C = 0x8018102C; -// D_80181530 = 0x80181530; -// D_8018163C = 0x8018163C; -// D_80181664 = 0x80181664; -// D_80181698 = 0x80181698; -// D_801816C8 = 0x801816C8; -// D_80181C30 = 0x80181C30; -// D_8018236C = 0x8018236C; -// D_801823B0 = 0x801823B0; -// D_80182544 = 0x80182544; -// D_80182940 = 0x80182940; -// D_801829FC = 0x801829FC; -// D_80182F34 = 0x80182F34; -// D_80182F74 = 0x80182F74; -// D_80182FA8 = 0x80182FA8; -// D_80182FF0 = 0x80182FF0; -// D_80183028 = 0x80183028; -// D_80183068 = 0x80183068; -// D_801830B0 = 0x801830B0; -// D_80183110 = 0x80183110; -// D_8018314C = 0x8018314C; -// D_8018318C = 0x8018318C; -// D_801831B4 = 0x801831B4; -// D_801831EC = 0x801831EC; -// D_80183204 = 0x80183204; -// D_80183244 = 0x80183244; -// D_80183280 = 0x80183280; -// D_801832AC = 0x801832AC; -// D_801832E4 = 0x801832E4; -// D_801833F0 = 0x801833F0; -// D_8018341C = 0x8018341C; -// D_80183448 = 0x80183448; -// D_80183488 = 0x80183488; -// D_801834D4 = 0x801834D4; -// D_8018350C = 0x8018350C; -// D_80183558 = 0x80183558; -// D_8018359C = 0x8018359C; -// D_801835D0 = 0x801835D0; -// D_80183630 = 0x80183630; -// D_8018366C = 0x8018366C; -// D_80183690 = 0x80183690; -// D_801836B0 = 0x801836B0; -// D_801836F8 = 0x801836F8; -// D_80183724 = 0x80183724; -// D_80183760 = 0x80183760; -// D_801837B4 = 0x801837B4; -// D_801837F8 = 0x801837F8; -// D_8018380C = 0x8018380C; -// D_80183820 = 0x80183820; -// D_80183834 = 0x80183834; -// D_8018385C = 0x8018385C; -// D_80183898 = 0x80183898; -// D_801838DC = 0x801838DC; -// D_80183900 = 0x80183900; -// D_80183950 = 0x80183950; -// D_8018398C = 0x8018398C; -// D_801839B8 = 0x801839B8; -// D_80183A08 = 0x80183A08; -// D_80183A64 = 0x80183A64; -// D_80183AAC = 0x80183AAC; -// D_80183CA8 = 0x80183CA8; -// D_80183CF0 = 0x80183CF0; -// D_80183D3C = 0x80183D3C; -// D_8018406C = 0x8018406C; -// D_801840A8 = 0x801840A8; -// D_801840EC = 0x801840EC; -// D_801843C8 = 0x801843C8; -// D_80184408 = 0x80184408; -// D_80184424 = 0x80184424; -// D_80184474 = 0x80184474; -// D_801844B0 = 0x801844B0; -// D_801844EC = 0x801844EC; -// D_80184558 = 0x80184558; -// D_801845A8 = 0x801845A8; -// D_801845F8 = 0x801845F8; -// D_80184620 = 0x80184620; -// D_80184644 = 0x80184644; -// D_80184668 = 0x80184668; -// D_801846A0 = 0x801846A0; -// D_801846D8 = 0x801846D8; -// D_801846E8 = 0x801846E8; -// D_801846FC = 0x801846FC; -// D_8018481C = 0x8018481C; -// D_801849B8 = 0x801849B8; -// D_80184A04 = 0x80184A04; -// D_80184A4C = 0x80184A4C; diff --git a/linker_scripts/us/symbol_addrs.txt b/linker_scripts/us/symbol_addrs.txt index 0459eefe..b6f64530 100644 --- a/linker_scripts/us/symbol_addrs.txt +++ b/linker_scripts/us/symbol_addrs.txt @@ -13,6 +13,13 @@ gFrameBuffers = 0x8038F800; gDmaTable = 0x80178A70; //size:0x5A0 D_80178A70 = 0x80178A78; //ignore:true +D_80161AA8 = 0x80161AA8;//size:0x10 +D_800CA23C = 0x800CA23C;//size:0x18 +D_800CA26C = 0x800CA26C;//size:0x20 +D_800CA260 = 0x800CA260;//size:0xC +D_801613E0 = 0x801613E0;//size:0x18 +D_800CC124 = 0x800CC124;//type:u8 + D_80161B00 = 0x80161B00; //size:0x1900 D_80163400 = 0x80163400; //size:0xBE0 D_80163FE0 = 0x80163FE0; //size:0xB130 @@ -20,9 +27,11 @@ D_8016F110 = 0x8016F110; //size:0x1020 D_80170130 = 0x80170130; //size:0x36B0 D_801737E0 = 0x801737E0; //size:0x870 D_80174050 = 0x80174050; //size:0x700 -D_80174750 = 0x80174750;//size:0x12C0 -D_80175A10 = 0x80175A10;//size:0xA28 -D_80176438 = 0x80176438;//size:0x18 +D_80174750 = 0x80174750; //size:0x12C0 +D_80175A10 = 0x80175A10; //size:0xA28 +D_80176438 = 0x80176438; //size:0x18 + +gExpertMode = 0x801779F8; D_800D3180 = 0x800D3180; // size:0x1E gSetupDLs = 0x800D31B0; // size:0x18C0 @@ -40,8 +49,8 @@ Save_Write = 0x800C3084; Save_Read = 0x800C3194; gSaveFile = 0x80178870; //size:0x200 -__rspboot_start = 0x80000450; -__rspboot_end = 0x80000520; +__rspboot_start = 0x80000450;//name_end:__rspboot_end +__aspmain_start = 0x80000520;//name_end:__aspmain_end __f3dex_start = 0x80001410; gF3dexData = 0x800C3DD0; diff --git a/linker_scripts/us/symbol_addrs_libultra.txt b/linker_scripts/us/symbol_addrs_libultra.txt index 3b73394f..87add7cf 100644 --- a/linker_scripts/us/symbol_addrs_libultra.txt +++ b/linker_scripts/us/symbol_addrs_libultra.txt @@ -64,7 +64,7 @@ __osLeoResume = 0x8002A99C; __osPfsGetStatus = 0x8002AC30; __osSpRawWriteIo = 0x8002E1E0; __osSpRawReadIo = 0x8002E230; -osCreatePiMgr = 0x800227A0; +osCreatePiManager = 0x800227A0; ramromMain = 0x8002296C; osSetThreadPri = 0x80022A80; osInitialize = 0x80022B60; diff --git a/linker_scripts/us/undefined_syms.ld b/linker_scripts/us/undefined_syms.ld index 0e4fd647..c0a5c3ec 100644 --- a/linker_scripts/us/undefined_syms.ld +++ b/linker_scripts/us/undefined_syms.ld @@ -1,3 +1,312 @@ +func_8018753C = 0x8018753C; +func_8018F31C = 0x8018F31C; +func_8018F8B8 = 0x8018F8B8; +func_801A2A78 = 0x801A2A78; +func_801A6608 = 0x801A6608; +func_801A2B24 = 0x801A2B24; +func_801A2B24 = 0x801A2B24; +func_801A2B24 = 0x801A2B24; +func_801A2B24 = 0x801A2B24; +func_801A2B24 = 0x801A2B24; +func_801A2B24 = 0x801A2B24; +func_801A3240 = 0x801A3240; +func_801A2B24 = 0x801A2B24; +func_801A2B24 = 0x801A2B24; +func_801A2B24 = 0x801A2B24; +func_801A2B24 = 0x801A2B24; +func_801A2B24 = 0x801A2B24; +func_801A2B24 = 0x801A2B24; +func_801A2B24 = 0x801A2B24; +func_801A2B24 = 0x801A2B24; +func_801A23AC = 0x801A23AC; +func_801A23AC = 0x801A23AC; +func_801A23AC = 0x801A23AC; +func_801A23AC = 0x801A23AC; +func_801A23AC = 0x801A23AC; +func_801A23AC = 0x801A23AC; +func_801A23AC = 0x801A23AC; +func_801A23AC = 0x801A23AC; +func_801A23AC = 0x801A23AC; +func_801A23AC = 0x801A23AC; +func_801A23AC = 0x801A23AC; +func_801A23AC = 0x801A23AC; +func_801A23AC = 0x801A23AC; +func_801A23AC = 0x801A23AC; +func_801BE1FC = 0x801BE1FC; +func_801935D4 = 0x801935D4; +func_8019350C = 0x8019350C; +func_80197CB8 = 0x80197CB8; +func_8018BAAC = 0x8018BAAC; +func_8018BBA4 = 0x8018BBA4; +func_8018BBF8 = 0x8018BBF8; +func_8018BD7C = 0x8018BD7C; +func_8018DA6C = 0x8018DA6C; +func_8018DAEC = 0x8018DAEC; +func_8018DB6C = 0x8018DB6C; +func_801BEC74 = 0x801BEC74; +func_80188448 = 0x80188448; +func_8018F884 = 0x8018F884; +func_801A4CB0 = 0x801A4CB0; +func_801A12C4 = 0x801A12C4; +func_801A12C4 = 0x801A12C4; +func_801AC294 = 0x801AC294; +func_801A12C4 = 0x801A12C4; +func_801A12C4 = 0x801A12C4; +func_801A12C4 = 0x801A12C4; +func_801A12C4 = 0x801A12C4; +func_801A12C4 = 0x801A12C4; +func_801A12C4 = 0x801A12C4; +func_801A43BC = 0x801A43BC; +func_801A4A64 = 0x801A4A64; +func_801A5F90 = 0x801A5F90; +func_801A6100 = 0x801A6100; +func_801A6540 = 0x801A6540; +func_801A68EC = 0x801A68EC; +func_801ADAC8 = 0x801ADAC8; +func_801AE2C0 = 0x801AE2C0; +func_801AEEFC = 0x801AEEFC; +func_801A54E8 = 0x801A54E8; +func_80189AFC = 0x80189AFC; +func_8018E5B4 = 0x8018E5B4; +func_8018EF14 = 0x8018EF14; +func_8018E2D8 = 0x8018E2D8; +func_8018AABC = 0x8018AABC; +func_8018BE84 = 0x8018BE84; +func_8018B6AC = 0x8018B6AC; +func_8018A1C0 = 0x8018A1C0; +func_80190430 = 0x80190430; +func_80190F08 = 0x80190F08; +func_801914C4 = 0x801914C4; +func_80191B4C = 0x80191B4C; +func_80191DB0 = 0x80191DB0; +func_80191FFC = 0x80191FFC; +func_80192C18 = 0x80192C18; +func_80193240 = 0x80193240; +func_8019983C = 0x8019983C; +func_80199E24 = 0x80199E24; +func_8019D3C4 = 0x8019D3C4; +func_8019A1FC = 0x8019A1FC; +func_8019ACCC = 0x8019ACCC; +func_8019B7DC = 0x8019B7DC; +func_8019BDE0 = 0x8019BDE0; +func_8019C1CC = 0x8019C1CC; +func_8019C83C = 0x8019C83C; +func_8019CE58 = 0x8019CE58; +func_801AE168 = 0x801AE168; +func_801AEB44 = 0x801AEB44; +func_801B099C = 0x801B099C; +func_801B0EC0 = 0x801B0EC0; +func_801B619C = 0x801B619C; +func_801B90DC = 0x801B90DC; +func_801B504C = 0x801B504C; +func_801B7A24 = 0x801B7A24; +func_801BA108 = 0x801BA108; +func_801BA4E4 = 0x801BA4E4; +func_801BAD7C = 0x801BAD7C; +func_801BB204 = 0x801BB204; +func_801BC930 = 0x801BC930; +func_801BDE6C = 0x801BDE6C; +func_801BD264 = 0x801BD264; +func_801BEB1C = 0x801BEB1C; +func_80188FE4 = 0x80188FE4; +func_8019E3A8 = 0x8019E3A8; +func_8019F7AC = 0x8019F7AC; +func_8019F7AC = 0x8019F7AC; +func_8019F7AC = 0x8019F7AC; +func_80192E2C = 0x80192E2C; +func_801934D0 = 0x801934D0; +func_80193244 = 0x80193244; +func_80188660 = 0x80188660; +func_8018AA74 = 0x8018AA74; +func_8018ECAC = 0x8018ECAC; +func_8018ED78 = 0x8018ED78; +func_8018EE84 = 0x8018EE84; +func_8018EF90 = 0x8018EF90; +func_8018BACC = 0x8018BACC; +func_801887D0 = 0x801887D0; +func_801BEC5C = 0x801BEC5C; +func_8018C54C = 0x8018C54C; +func_80193434 = 0x80193434; +func_8018FF84 = 0x8018FF84; +func_80190020 = 0x80190020; +func_801982A8 = 0x801982A8; +func_801949DC = 0x801949DC; +func_80191AFC = 0x80191AFC; +func_80196288 = 0x80196288; +func_8019E98C = 0x8019E98C; +func_8019E2C4 = 0x8019E2C4; +func_801A71B8 = 0x801A71B8; +func_801968F4 = 0x801968F4; +func_80193B1C = 0x80193B1C; +func_801B4D84 = 0x801B4D84; +func_801985E4 = 0x801985E4; +func_801928C8 = 0x801928C8; +func_8018B8C0 = 0x8018B8C0; +func_80197C64 = 0x80197C64; +func_80192A68 = 0x80192A68; +func_80188FA8 = 0x80188FA8; +func_8018DCE4 = 0x8018DCE4; +func_8018DBEC = 0x8018DBEC; +func_8018DE14 = 0x8018DE14; +func_801A5AF0 = 0x801A5AF0; +func_801AEAA0 = 0x801AEAA0; +func_801A5D68 = 0x801A5D68; +func_801A0AF0 = 0x801A0AF0; +func_8018CF98 = 0x8018CF98; +func_80191180 = 0x80191180; + +func_80187530 = 0x80187530; +func_8018756C = 0x8018756C; +func_801875A4 = 0x801875A4; +func_80187650 = 0x80187650; +func_801877C4 = 0x801877C4; +func_80187944 = 0x80187944; +func_8018795C = 0x8018795C; +func_801880E4 = 0x801880E4; +func_80188344 = 0x80188344; +func_80188528 = 0x80188528; +func_80188AD0 = 0x80188AD0; +func_80188CAC = 0x80188CAC; +func_80188F60 = 0x80188F60; +func_80188FAC = 0x80188FAC; +func_80189058 = 0x80189058; +func_80189114 = 0x80189114; +func_80189194 = 0x80189194; +func_8018933C = 0x8018933C; +func_801893B8 = 0x801893B8; +func_80189470 = 0x80189470; +func_801895B8 = 0x801895B8; +func_80189724 = 0x80189724; +func_8018978C = 0x8018978C; +func_80189B70 = 0x80189B70; +func_80189CC8 = 0x80189CC8; +func_8018A544 = 0x8018A544; +func_8018AB44 = 0x8018AB44; +func_8018AED0 = 0x8018AED0; +func_8018B15C = 0x8018B15C; +func_8018B268 = 0x8018B268; +func_8018B418 = 0x8018B418; +func_8018B58C = 0x8018B58C; +func_8018B9D0 = 0x8018B9D0; +func_8018C19C = 0x8018C19C; +func_8018C8A8 = 0x8018C8A8; +func_8018CAD4 = 0x8018CAD4; +func_8018D9EC = 0x8018D9EC; +func_8018DBF0 = 0x8018DBF0; +func_8018DDAC = 0x8018DDAC; +func_8018E290 = 0x8018E290; +func_8018E54C = 0x8018E54C; +func_8018E5F8 = 0x8018E5F8; +func_8018E76C = 0x8018E76C; +func_8018F038 = 0x8018F038; +func_8018F044 = 0x8018F044; +func_8018F330 = 0x8018F330; +func_8018F4D8 = 0x8018F4D8; +func_8018FE38 = 0x8018FE38; +func_8018FF20 = 0x8018FF20; +func_80190078 = 0x80190078; +func_801904CC = 0x801904CC; +func_80190A00 = 0x80190A00; +func_80191010 = 0x80191010; +func_80191054 = 0x80191054; +func_801912FC = 0x801912FC; +func_80191680 = 0x80191680; +func_80191BC4 = 0x80191BC4; +func_80192094 = 0x80192094; +func_801922DC = 0x801922DC; +func_80192358 = 0x80192358; +func_801923C0 = 0x801923C0; +func_8019243C = 0x8019243C; +func_801924A8 = 0x801924A8; +func_80192518 = 0x80192518; +func_80192834 = 0x80192834; +func_80192984 = 0x80192984; +func_80192CD4 = 0x80192CD4; +func_80192E64 = 0x80192E64; +func_80192E94 = 0x80192E94; +func_80192EB0 = 0x80192EB0; +func_80193380 = 0x80193380; +func_801933DC = 0x801933DC; +func_80193540 = 0x80193540; +func_8019356C = 0x8019356C; +func_80193718 = 0x80193718; +func_80194398 = 0x80194398; +func_801946C4 = 0x801946C4; +func_80194A84 = 0x80194A84; +func_80196210 = 0x80196210; +func_80197A94 = 0x80197A94; +func_80198968 = 0x80198968; +func_8019969C = 0x8019969C; +func_80199A28 = 0x80199A28; +func_80199F10 = 0x80199F10; +func_8019A5D4 = 0x8019A5D4; +func_8019B548 = 0x8019B548; +func_8019B854 = 0x8019B854; +func_8019BE48 = 0x8019BE48; +func_8019C454 = 0x8019C454; +func_8019C778 = 0x8019C778; +func_8019C888 = 0x8019C888; +func_8019CBEC = 0x8019CBEC; +func_8019CE88 = 0x8019CE88; +func_8019D15C = 0x8019D15C; +func_8019D700 = 0x8019D700; +func_8019E234 = 0x8019E234; +func_8019E410 = 0x8019E410; +func_8019E454 = 0x8019E454; +func_8019EA60 = 0x8019EA60; +func_8019EA7C = 0x8019EA7C; +func_8019EE68 = 0x8019EE68; +func_8019F20C = 0x8019F20C; +func_8019FF9C = 0x8019FF9C; +func_801A003C = 0x801A003C; +func_801A0120 = 0x801A0120; +func_801A0BD8 = 0x801A0BD8; +func_801A2DD8 = 0x801A2DD8; +func_801A3BD4 = 0x801A3BD4; +func_801A3E98 = 0x801A3E98; +func_801A46A0 = 0x801A46A0; +func_801A4B24 = 0x801A4B24; +func_801A4E44 = 0x801A4E44; +func_801A52B8 = 0x801A52B8; +func_801A57D0 = 0x801A57D0; +func_801A5B3C = 0x801A5B3C; +func_801A5B4C = 0x801A5B4C; +func_801A5E54 = 0x801A5E54; +func_801A5FD0 = 0x801A5FD0; +func_801A6144 = 0x801A6144; +func_801A67C8 = 0x801A67C8; +func_801A7E7C = 0x801A7E7C; +func_801AC438 = 0x801AC438; +func_801AC918 = 0x801AC918; +func_801AD6C0 = 0x801AD6C0; +func_801AD6F0 = 0x801AD6F0; +func_801ADD68 = 0x801ADD68; +func_801AE3D8 = 0x801AE3D8; +func_801AE87C = 0x801AE87C; +func_801AEC04 = 0x801AEC04; +func_801AFA5C = 0x801AFA5C; +func_801B0B60 = 0x801B0B60; +func_801B134C = 0x801B134C; +func_801B50E8 = 0x801B50E8; +func_801B638C = 0x801B638C; +func_801B6FF8 = 0x801B6FF8; +func_801B7C78 = 0x801B7C78; +func_801B91A4 = 0x801B91A4; +func_801BA26C = 0x801BA26C; +func_801BA6A4 = 0x801BA6A4; +func_801BADF8 = 0x801BADF8; +func_801BB79C = 0x801BB79C; +func_801BC9A0 = 0x801BC9A0; +func_801BD54C = 0x801BD54C; +func_801BE3F8 = 0x801BE3F8; +func_801BEC50 = 0x801BEC50; +func_801BEC68 = 0x801BEC68; + +D_1022120 = 0x01022120; +D_1024410 = 0x01024410; +D_1024570 = 0x01024570; +D_10246D0 = 0x010246D0; + D_2000000 = 0x02000000; D_2000890 = 0x02000890; D_2001090 = 0x02001090; @@ -27,6 +336,26 @@ D_200F080 = 0x0200F080; D_200F910 = 0x0200F910; D_20101A0 = 0x020101A0; +D_3001C90 = 0x03001C90; +D_3003CE0 = 0x03003CE0; +D_3007650 = 0x03007650; +D_3012ED0 = 0x03012ED0; +D_3013580 = 0x03013580; +D_3013780 = 0x03013780; +D_3016B00 = 0x03016B00; +D_3016CC0 = 0x03016CC0; +D_30173C0 = 0x030173C0; +D_30174E0 = 0x030174E0; +D_3017600 = 0x03017600; +D_301B080 = 0x0301B080; +D_302ED4C = 0x0302ED4C; +D_302ED98 = 0x0302ED98; +D_302EDB4 = 0x0302EDB4; +D_302EE00 = 0x0302EE00; +D_302EE64 = 0x0302EE64; +D_302EE80 = 0x0302EE80; +D_302EE9C = 0x0302EE9C; + D_5000000 = 0x05000000; D_5000080 = 0x05000080; D_5000100 = 0x05000100; @@ -36,4 +365,330 @@ D_5000280 = 0x05000280; D_5000300 = 0x05000300; D_5000380 = 0x05000380; D_5000400 = 0x05000400; -D_5000480 = 0x05000480; \ No newline at end of file +D_5000480 = 0x05000480; + +D_6000E00 = 0x06000E00; +D_6001360 = 0x06001360; +D_6001DA0 = 0x06001DA0; +D_60023B0 = 0x060023B0; +D_6002990 = 0x06002990; +D_6003000 = 0x06003000; +D_60030F0 = 0x060030F0; +D_60034D0 = 0x060034D0; +D_6003610 = 0x06003610; +D_60036A0 = 0x060036A0; +D_6004170 = 0x06004170; +D_6005360 = 0x06005360; +D_6005780 = 0x06005780; +D_6006140 = 0x06006140; +D_6006310 = 0x06006310; +D_60064AC = 0x060064AC; +D_60064C8 = 0x060064C8; +D_60064FC = 0x060064FC; +D_6006518 = 0x06006518; +D_6006564 = 0x06006564; +D_60065B0 = 0x060065B0; +D_60065FC = 0x060065FC; +D_6006648 = 0x06006648; +D_6006694 = 0x06006694; +D_60066E0_f32 = 0x060066E0; +D_60066E0_Gfx = 0x060066E0; +D_600672C = 0x0600672C; +D_6006778 = 0x06006778; +D_60067C4 = 0x060067C4; +D_6006808 = 0x06006808; +D_600683C = 0x0600683C; +D_6006858 = 0x06006858; +D_6006890_f32 = 0x06006890; +D_6006890_Gfx = 0x06006890; +D_60068BC = 0x060068BC; +D_60068F0 = 0x060068F0; +D_6006A3C = 0x06006A3C; +D_6006A80 = 0x06006A80; +D_6006BF0 = 0x06006BF0; +D_6006C44 = 0x06006C44; +D_6006F50 = 0x06006F50; +D_6007410 = 0x06007410; +D_60075D0 = 0x060075D0; +D_60079B0 = 0x060079B0; +D_6007D80 = 0x06007D80; +D_6008370 = 0x06008370; +D_600924C = 0x0600924C; +D_60092E8 = 0x060092E8; +D_6009388 = 0x06009388; +D_60097E0 = 0x060097E0; +D_6009CC4 = 0x06009CC4; +D_6009CFC = 0x06009CFC; +D_600A420 = 0x0600A420; +D_600AF40 = 0x0600AF40; +D_600B8B0 = 0x0600B8B0; +D_600BAF0 = 0x0600BAF0; +D_600BF80 = 0x0600BF80; +D_600E820 = 0x0600E820; +D_600EC90 = 0x0600EC90; +D_600EE10 = 0x0600EE10; +D_600EEF0 = 0x0600EEF0; +D_600F4C0 = 0x0600F4C0; +D_600F560 = 0x0600F560; +D_600F6C0 = 0x0600F6C0; +D_600FE9C = 0x0600FE9C; +D_600FEB8 = 0x0600FEB8; +D_600FF30 = 0x0600FF30; +D_600FF80 = 0x0600FF80; +D_600FFA0 = 0x0600FFA0; +D_600FFC0 = 0x0600FFC0; +D_600FFE0 = 0x0600FFE0; +D_60102C0 = 0x060102C0; +D_6010960 = 0x06010960; +D_6010A50 = 0x06010A50; +D_6010E00 = 0x06010E00; +D_6011058 = 0x06011058; +D_601115C = 0x0601115C; +D_601115C = 0x0601115C; +D_6011B24 = 0x06011B24; +D_6011BF4 = 0x06011BF4; +D_6011C10 = 0x06011C10; +D_6011C48 = 0x06011C48; +D_6011C80 = 0x06011C80; +D_6011EE0 = 0x06011EE0; +D_60120F0 = 0x060120F0; +D_60132B0 = 0x060132B0; +D_60137B0 = 0x060137B0; +D_6013960 = 0x06013960; +D_6013B50 = 0x06013B50; +D_60143E0 = 0x060143E0; +D_6014500 = 0x06014500; +D_6014670 = 0x06014670; +D_6014A20 = 0x06014A20; +D_6014B50 = 0x06014B50; +D_60153B0 = 0x060153B0; +D_6015730 = 0x06015730; +D_6015F00 = 0x06015F00; +D_6016270 = 0x06016270; +D_60164F0 = 0x060164F0; +D_6016580 = 0x06016580; +D_601668C = 0x0601668C; +D_60166F4 = 0x060166F4; +D_6016714 = 0x06016714; +D_6018450 = 0x06018450; +D_60188D0 = 0x060188D0; +D_6018C00 = 0x06018C00; +D_6018E80 = 0x06018E80; +D_601A7D0 = 0x0601A7D0; +D_601B0D0 = 0x0601B0D0; +D_601B4E0 = 0x0601B4E0; +D_601B4FC = 0x0601B4FC; +D_601B518 = 0x0601B518; +D_601B560 = 0x0601B560; +D_601B584 = 0x0601B584; +D_601B5F4 = 0x0601B5F4; +D_601B610 = 0x0601B610; +D_601B644 = 0x0601B644; +D_601B678 = 0x0601B678; +D_601B6C4 = 0x0601B6C4; +D_601B710 = 0x0601B710; +D_601B75C = 0x0601B75C; +D_601B7C0 = 0x0601B7C0; +D_601B7F8 = 0x0601B7F8; +D_601B830 = 0x0601B830; +D_601B868 = 0x0601B868; +D_601B8A0 = 0x0601B8A0; +D_601B8D8 = 0x0601B8D8; +D_601BEC0 = 0x0601BEC0; +D_601C6A0 = 0x0601C6A0; +D_601C9B0 = 0x0601C9B0; +D_601D730 = 0x0601D730; +D_601DE60 = 0x0601DE60; +D_601F1D0 = 0x0601F1D0; +D_601F500 = 0x0601F500; +D_601F5A0 = 0x0601F5A0; +D_601FCB0 = 0x0601FCB0; +D_60231C0 = 0x060231C0; +D_60238F0 = 0x060238F0; +D_6024010 = 0x06024010; +D_60244A0 = 0x060244A0; +D_6024AC0 = 0x06024AC0; +D_60270E0 = 0x060270E0; +D_6027180 = 0x06027180; +D_6027900 = 0x06027900; +D_6028454 = 0x06028454; +D_602B4C0 = 0x0602B4C0; +D_602B9EC = 0x0602B9EC; +D_602BA20 = 0x0602BA20; +D_602BAE4 = 0x0602BAE4; +D_602BBD8 = 0x0602BBD8; +D_602BC54 = 0x0602BC54; +D_602BC58 = 0x0602BC58; +D_602BE3C = 0x0602BE3C; +D_602BE58 = 0x0602BE58; +D_602BFC4 = 0x0602BFC4; +D_602C044 = 0x0602C044; +D_602C1D4 = 0x0602C1D4; +D_602C218 = 0x0602C218; +D_602C234 = 0x0602C234; +D_602C250 = 0x0602C250; +D_602C294 = 0x0602C294; +D_602C2B0 = 0x0602C2B0; +D_602D5F0 = 0x0602D5F0; +D_602DAE0 = 0x0602DAE0; +D_602DB80 = 0x0602DB80; +D_602DC20 = 0x0602DC20; +D_602DCA0 = 0x0602DCA0; +D_602E080 = 0x0602E080; +D_602E570 = 0x0602E570; +D_602E7A0 = 0x0602E7A0; +D_602E9E0 = 0x0602E9E0; +D_602F684 = 0x0602F684; +D_602F6A0 = 0x0602F6A0; +D_602F6EC = 0x0602F6EC; +D_602F708 = 0x0602F708; +D_602F724 = 0x0602F724; +D_602F740 = 0x0602F740; +D_602F75C = 0x0602F75C; +D_602F7C0 = 0x0602F7C0; +D_602FA50 = 0x0602FA50; +D_6030500 = 0x06030500; +D_6030630 = 0x06030630; +D_6030B10 = 0x06030B10; +D_6030BE0 = 0x06030BE0; +D_6030BFC = 0x06030BFC; +D_6030C18 = 0x06030C18; +D_6030C44 = 0x06030C44; +D_6030C60 = 0x06030C60; +D_6030C7C = 0x06030C7C; +D_6030D20 = 0x06030D20; +D_6030D74 = 0x06030D74; +D_6030DF8 = 0x06030DF8; +D_6030E14 = 0x06030E14; +D_6030E30 = 0x06030E30; +D_6030E4C = 0x06030E4C; +D_6030E68 = 0x06030E68; +D_6030F74 = 0x06030F74; +D_6031398 = 0x06031398; +D_60313CC = 0x060313CC; +D_6031400 = 0x06031400; +D_603144C = 0x0603144C; +D_6031480 = 0x06031480; +D_60314C8 = 0x060314C8; +D_6031500 = 0x06031500; +D_6031538 = 0x06031538; +D_6031554 = 0x06031554; +D_6031570 = 0x06031570; +D_6032488 = 0x06032488; +D_60324EC = 0x060324EC; +D_6032550 = 0x06032550; +D_603405C = 0x0603405C; +D_6034368 = 0x06034368; +D_6034478 = 0x06034478; +D_603450C = 0x0603450C; +D_6034588 = 0x06034588; +D_6034664 = 0x06034664; +D_6034770 = 0x06034770; +D_60347D4 = 0x060347D4; +D_60347F0 = 0x060347F0; +D_603486C = 0x0603486C; +D_60359C8 = 0x060359C8; +D_6035A14 = 0x06035A14; +D_6035A48 = 0x06035A48; +D_6035AE0 = 0x06035AE0; +D_6035D9C = 0x06035D9C; +D_6035E04 = 0x06035E04; +D_6035F10 = 0x06035F10; +D_60360C0 = 0x060360C0; +D_6036154 = 0x06036154; +D_60361F0 = 0x060361F0; +D_6036204 = 0x06036204; +D_603626C = 0x0603626C; +D_6036288 = 0x06036288; +D_60362A4 = 0x060362A4; +D_60362D8 = 0x060362D8; +D_60362F4 = 0x060362F4; +D_6036328 = 0x06036328; +D_6036344 = 0x06036344; +D_6036370 = 0x06036370; +D_603638C = 0x0603638C; +D_60363B8 = 0x060363B8; +D_60363E4 = 0x060363E4; +D_6036410 = 0x06036410; +D_603643C = 0x0603643C; +D_6036458 = 0x06036458; +D_60364C0 = 0x060364C0; +D_60364DC = 0x060364DC; +D_6036594 = 0x06036594; +D_60366EC = 0x060366EC; +D_6036708 = 0x06036708; +D_6036724 = 0x06036724; +D_6036728 = 0x06036728; +D_6036744 = 0x06036744; +D_6036760 = 0x06036760; +D_603677C = 0x0603677C; +D_6036894 = 0x06036894; +D_60368E0 = 0x060368E0; +D_6036930 = 0x06036930; +D_603694C = 0x0603694C; +D_6036968 = 0x06036968; +D_603DCA4 = 0x0603DCA4; +D_603DD40 = 0x0603DD40; +D_603DDF0 = 0x0603DDF0; +D_603DE8C = 0x0603DE8C; +D_603DEF4 = 0x0603DEF4; +D_603DF8C = 0x0603DF8C; +D_603DFDC = 0x0603DFDC; +D_603E014 = 0x0603E014; +D_603E030 = 0x0603E030; +D_603E09C = 0x0603E09C; +D_603E0EC = 0x0603E0EC; +D_603E118 = 0x0603E118; +D_603E14C = 0x0603E14C; +D_603E1B4 = 0x0603E1B4; +D_603E21C = 0x0603E21C; +D_603E3E0 = 0x0603E3E0; +D_603E468 = 0x0603E468; +D_603E484 = 0x0603E484; +D_603E4A0 = 0x0603E4A0; +D_603E4A4 = 0x0603E4A4; +D_603E4DC = 0x0603E4DC; +D_603E514 = 0x0603E514; +D_603E54C = 0x0603E54C; +D_603E598 = 0x0603E598; +D_603E5B4 = 0x0603E5B4; +D_603E5D0 = 0x0603E5D0; +D_603E5D0 = 0x0603E5D0; +D_603E5D0 = 0x0603E5D0; +D_603E604 = 0x0603E604; +D_603E620 = 0x0603E620; +D_603E714 = 0x0603E714; +D_603E748 = 0x0603E748; +D_603E7C4 = 0x0603E7C4; +D_603E840 = 0x0603E840; +D_603E88C = 0x0603E88C; +D_603E8A8 = 0x0603E8A8; +D_603E98C = 0x0603E98C; +D_603E9EC = 0x0603E9EC; +D_603EA08 = 0x0603EA08; +D_603EA74 = 0x0603EA74; +D_603EAE0 = 0x0603EAE0; +D_603EB0C = 0x0603EB0C; + +D_700AB70 = 0x0700AB70; +D_700BE00 = 0x0700BE00; + +D_9003F50 = 0x09003F50; +D_9005C80 = 0x09005C80; +D_900DD20 = 0x0900DD20; +D_900F060 = 0x0900F060; +D_900F1D0 = 0x0900F1D0; +D_901DA50 = 0x0901DA50; +D_9023AD0 = 0x09023AD0; + +D_C038A48 = 0x0C038A48; +D_C038B40 = 0x0C038B40; +D_C038B40 = 0x0C038B40; +D_C038BA4 = 0x0C038BA4; +D_C038BD8 = 0x0C038BD8; +D_C038DC0 = 0x0C038DC0; +D_C038F24 = 0x0C038F24; + +D_D000000 = 0x0D000000; +D_D00B5C0 = 0x0D00B5C0; +D_D00B720 = 0x0D00B720; diff --git a/src/libultra/io/aisetnextbuf.c b/src/libultra/io/aisetnextbuf.c index 8f4fb277..94af7437 100644 --- a/src/libultra/io/aisetnextbuf.c +++ b/src/libultra/io/aisetnextbuf.c @@ -1,6 +1,6 @@ #include "global.h" -#ifdef DATA_IMPORT_PENDING +#ifdef IMPORT_DATA_PENDING s32 osAiSetNextBuffer(void* bufPtr, u32 size) { static u8 hdwrBugFlag = FALSE; char* bptr; diff --git a/src/libultra/io/pimgr.c b/src/libultra/io/pimgr.c index 52d5d47a..b6933237 100644 --- a/src/libultra/io/pimgr.c +++ b/src/libultra/io/pimgr.c @@ -10,10 +10,10 @@ extern char piThreadStack[]; extern OSThread ramromThread; extern char ramromThreadStack[]; -#ifdef DATA_IMPORT_PENDING +#ifdef IMPORT_DATA_PENDING OSDevMgr __osPiDevMgr = { 0 }; -void osCreatePiMgr(OSPri pri, OSMesgQueue* cmdQ, OSMesg* cmdBuf, s32 cmdMsgCnt) { +void osCreatePiManager(OSPri pri, OSMesgQueue* cmdQ, OSMesg* cmdBuf, s32 cmdMsgCnt) { u32 savedMask; OSPri oldPri; OSPri myPri; @@ -57,7 +57,7 @@ void osCreatePiMgr(OSPri pri, OSMesgQueue* cmdQ, OSMesg* cmdBuf, s32 cmdMsgCnt) } } #else -#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/io/pimgr/osCreatePiMgr.s") +#pragma GLOBAL_ASM("asm/us/nonmatchings/libultra/io/pimgr/osCreatePiManager.s") #endif extern OSMesg freeRamromBuf[]; diff --git a/src/main/fox_2EFE0.c b/src/main/fox_2EFE0.c deleted file mode 100644 index 0fe0ca9d..00000000 --- a/src/main/fox_2EFE0.c +++ /dev/null @@ -1,86 +0,0 @@ -#include "global.h" - -void func_80187520(s32, void*); - -void func_8002E3E0(Object_2F4* arg0) { - s32 var_a3 = 0; - - if (D_80178234 == 0x13) { - if (D_8015F940 < 0xF00) { - var_a3 = 50; - } else if (D_8015F940 < 0x1680) { - var_a3 = 30; - } else if (D_8015F940 < 0x1E00) { - var_a3 = 20; - } else if (D_8015F940 < 0x2580) { - var_a3 = 10; - } - } else { - if (D_8015F940 < 0xF00) { - var_a3 = 10; - } else if (D_8015F940 < 0x1680) { - var_a3 = 5; - } else if (D_8015F940 < 0x1E00) { - var_a3 = 2; - } else if (D_8015F940 < 0x2580) { - var_a3 = 1; - } - } - if (var_a3 != 0) { - func_80077240(arg0->obj.pos.x, arg0->obj.pos.y, arg0->obj.pos.z, var_a3); - } - D_80161A98 += var_a3; - D_80177850 = 0xF; -} - -s32 func_8002E4F8(u16* arg0, s32 arg1) { - if ((D_8017829C == 0) && (D_80178280[0].unk_1C8 != 0)) { - func_800BA808(arg0, arg1); - return true; - } else { - return false; - } -} - -void func_8002E548(void) { - if (D_8015F93C != 0) { - s32 sp24 = D_8015F930[1]; - - func_8008E51C(D_8015F930, D_8015F944); - if ((D_8015F930[0] == 0) && (sp24 != D_8015F930[1]) && (D_8015F930[1] < 15)) { - func_80019218(0x4900C02A, &D_800C5D28, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); - } - } -} - -void func_8002E5E0(void* arg0) { - func_80187520(0x5B, arg0); -} - -void func_8002E604(void* arg0) { - func_80187520(0x5C, arg0); -} - -void func_8002E628(void* arg0) { - func_80187520(0x5D, arg0); -} - -void func_8002E64C(void* arg0) { - func_80187520(0x5E, arg0); -} - -void func_8002E670(void* arg0) { - func_80187520(0x5F, arg0); -} - -void func_8002E694(void* arg0) { - func_80187520(0x60, arg0); -} - -void func_8002E6B8(void* arg0) { - func_80187520(0x61, arg0); -} - -void func_8002E6DC(void* arg0) { - func_80187520(0x62, arg0); -} diff --git a/src/main/fox_52730.c b/src/main/fox_52730.c new file mode 100644 index 00000000..017c3ff0 --- /dev/null +++ b/src/main/fox_52730.c @@ -0,0 +1,1718 @@ +#include "global.h" + +#define D_3016CC0 0x03016CC0 +#define D_3003CE0 0x03003CE0 +#define D_3001C90 0x03001C90 +#define D_1024570 0x01024570 +#define D_10246D0 0x010246D0 +#define D_1024410 0x01024410 +#define D_D000000 0x0D000000 +#define D_D00B5C0 0x0D00B5C0 +#define D_D00B720 0x0D00B720 + +s32 D_800CA220 = 0; +u8 D_800CA224[] = { 0, 0, 0, 0 }; +s32 D_800CA228 = 0; +s32 D_800CA22C = 0; +f32 D_800CA230 = 0.0f; +Object_2F4* D_800CA234 = NULL; +s32 D_800CA238 = 0; +f32 D_800CA23C[3] = { 0.5f, 0.25f, 0.25f }; +f32 D_800CA248[3] = { 2.0f, 1.0f, 0.5f }; + +void func_80051B30(void) { + s32 sp7C; + f32 sp78; + f32 sp74; + Vec3f sp68; + Vec3f sp5C; + + if ((D_80177854 == 0x64) || (D_800CA234 == NULL)) { + return; + } + if ((D_800CA234->obj.status != 2) || (D_80178280->unk_1C8 != 3)) { + D_800CA234 = NULL; + D_800CA238 = 0; + return; + } + if (D_800CA238 != 0) { + D_800CA238--; + if (D_800CA238 == 0) { + D_800CA234 = NULL; + return; + } + } + if (!(D_800CA238 & 4)) { + Matrix_RotateY(gCalcMatrix, D_80178280->unk_058, 0); + Matrix_RotateX(gCalcMatrix, D_80178280->unk_05C, 1); + sp68.x = D_800CA234->obj.pos.x - D_80178280->unk_040.x; + sp68.y = D_800CA234->obj.pos.y - D_80178280->unk_040.y; + sp68.z = D_800CA234->obj.pos.z + D_80177D20 - D_80178280->unk_040.z; + Matrix_MultVec3f(gCalcMatrix, &sp68, &sp5C); + sp7C = 0; + if ((sp5C.z < 0.0f) && (sp5C.z > -12000.0f) && (fabsf(sp5C.x) < fabsf(sp5C.z * 0.4f))) { + sp7C = 1; + } + RCP_SetupDL(&gMasterDisp, 0xC); + switch (D_800CA234->unk_0E4) { + case 3: + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 30, 0, 255); + break; + case 2: + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 00, 179, 67, 255); + break; + case 1: + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 30, 30, 255, 255); + break; + } + switch (sp7C) { + case 0: + if (D_800CA234->unk_100.x > 0.0f) { + sp78 = 20.0f; + sp74 = M_PI / 2.0f; + } else { + sp78 = -20.0f; + sp74 = -M_PI / 2.0f; + } + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, sp78, 0.0f, -50.0f, 1); + Matrix_RotateZ(gGfxMatrix, sp74, 1); + Matrix_Scale(gGfxMatrix, 0.03f, 0.03f, 0.03f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_1023700); + Matrix_Pop(&gGfxMatrix); + break; + case 1: + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, 20.0f, 0.0f, -50.0f, 1); + Matrix_RotateZ(gGfxMatrix, -M_PI / 2.0f, 1); + Matrix_Scale(gGfxMatrix, 0.03f, 0.03f, 0.03f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_1023700); + Matrix_Pop(&gGfxMatrix); + sp78 = -20.0f; + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, -20.0f, 0.0f, -50.0f, 1); + Matrix_RotateZ(gGfxMatrix, M_PI / 2.0f, 1); + Matrix_Scale(gGfxMatrix, 0.03f, 0.03f, 0.03f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_1023700); + Matrix_Pop(&gGfxMatrix); + break; + } + switch (sp7C) { + case 0: + RCP_SetupDL(&gMasterDisp, 0x4C); + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 0, 255); + if (sp78 < 0.0f) { + Graphics_DisplaySmallText(43 - 19, 106, 1.0f, 1.0f, "HELP!!"); + } else { + Graphics_DisplaySmallText(SCREEN_WIDTH - 43 - 19, 106, 1.0f, 1.0f, "HELP!!"); + } + break; + case 1: + RCP_SetupDL(&gMasterDisp, 0x4C); + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 0, 255); + Graphics_DisplaySmallText(43 - 19, 106, 1.0f, 1.0f, "HELP!!"); + Graphics_DisplaySmallText(SCREEN_WIDTH - 43 - 19, 106, 1.0f, 1.0f, "HELP!!"); + break; + } + } +} + +s32 func_800520FC(s32 limbIndex, Gfx** gfxPtr, Vec3f* pos, Vec3f* rot, void* data) { + UnkStruct_D_80178280* arg4 = (UnkStruct_D_80178280*) data; + + gSPSetGeometryMode(gMasterDisp++, G_CULL_BACK); + if (arg4->unk_1C4 == 1) { + if (limbIndex == 0x10) { + rot->y += arg4->unk_154; + rot->y -= arg4->unk_180; + } + if (limbIndex == 0x16) { + rot->y += -arg4->unk_158 * 0.8f; + rot->x -= arg4->unk_15C; + } + if (limbIndex == 1) { + gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK); + rot->y += arg4->unk_164; + } + if (limbIndex == 2) { + gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK); + rot->y += arg4->unk_164; + } + if (limbIndex == 3) { + gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK); + rot->y += arg4->unk_168; + } + if (limbIndex == 4) { + gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK); + rot->y += arg4->unk_168; + } + } else { + if (limbIndex == 0xB) { + if (arg4->unk_1C4 == 0) { + rot->y += -arg4->unk_154 * 0.8f; + } + if (arg4->unk_1C4 == 2) { + rot->y += arg4->unk_154; + rot->y -= arg4->unk_180; + } + if (arg4->unk_1C4 == 3) { + rot->y += arg4->unk_154 * 0.8f; + } + } + if (limbIndex == 0x10) { + rot->y += -arg4->unk_158 * 0.8f; + rot->x -= arg4->unk_15C; + } + if ((limbIndex == 0x11) && (arg4->unk_1C4 != 2)) { + rot->y += arg4->unk_180; + rot->x -= arg4->unk_180; + rot->y += -arg4->unk_158 * 0.2f; + rot->x += -arg4->unk_15C * 0.2f; + } + } + return 0; +} + +void func_800523A8(s32 limbIndex, Vec3f* rot, void* data) { + Vec3f sp1C; + UnkStruct_D_80178280* arg2 = (UnkStruct_D_80178280*) data; + + if (limbIndex == 0xB) { + sp1C.x = 3.0f; + sp1C.y = 1.0f; + sp1C.z = -28.0f; + Matrix_MultVec3f(gGfxMatrix, &sp1C, &D_801613B0[arg2->unk_1C4]); + } +} + +void func_80052420(s32 limbIndex, Vec3f* rot, void* data) { + Vec3f sp1C; + UnkStruct_D_80178280* arg2 = (UnkStruct_D_80178280*) data; + + if (limbIndex == 0x10) { + sp1C.x = 13.0f; + sp1C.y = 2.0f; + sp1C.z = 28.0f; + Matrix_MultVec3f(gGfxMatrix, &sp1C, &D_801613B0[arg2->unk_1C4]); + } +} + +void func_80052498(s32 limbIndex, Vec3f* rot, void* data) { + Vec3f sp1C; + UnkStruct_D_80178280* arg2 = (UnkStruct_D_80178280*) data; + + if (limbIndex == 0xB) { + sp1C.x = 0.0f; + sp1C.y = 2.0f; + sp1C.z = 29.0f; + Matrix_MultVec3f(gGfxMatrix, &sp1C, &D_801613B0[arg2->unk_1C4]); + } +} + +void func_8005250C(s32 limbIndex, Vec3f* rot, void* data) { + Vec3f sp1C; + UnkStruct_D_80178280* arg2 = (UnkStruct_D_80178280*) data; + + if (limbIndex == 0xB) { + sp1C.x = 19.0f; + sp1C.y = 1.0f; + sp1C.z = 32.0f; + Matrix_MultVec3f(gGfxMatrix, &sp1C, &D_801613B0[arg2->unk_1C4]); + } +} + +void func_80052584(UnkStruct_D_80178280* arg0) { + Matrix_Push(&gGfxMatrix); + Matrix_Copy(gGfxMatrix, &gIdentityMatrix); + if ((arg0->unk_1C8 == 3) && (arg0->unk_1F8 != 0)) { + Matrix_Translate(gGfxMatrix, D_801613B0[arg0->unk_1C4].x, D_801613B0[arg0->unk_1C4].y, + D_801613B0[arg0->unk_1C4].z, 1); + Matrix_Scale(gGfxMatrix, D_800CA23C[arg0->unk_1F8 - 1], D_800CA23C[arg0->unk_1F8 - 1], + D_800CA23C[arg0->unk_1F8 - 1], 1); + Matrix_SetGfxMtx(&gMasterDisp); + RCP_SetupDL_40(); + gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK); + gSPDisplayList(gMasterDisp++, D_302D240); + } + Matrix_Pop(&gGfxMatrix); +} + +void func_800526B8(UnkStruct_D_80178280* arg0) { + Matrix_Push(&gGfxMatrix); + Matrix_Scale(gCalcMatrix, 0.5f, 0.5f, 0.5f, 1); + Matrix_Translate(gCalcMatrix, 0.0f, 35.0f, 0.0f, 1); + switch (arg0->unk_1C4) { + case 0: + Animation_DrawSkeleton(5, D_301D258, arg0->jointTable, func_800520FC, func_800523A8, arg0, gCalcMatrix); + break; + case 1: + Animation_DrawSkeleton(5, D_301DB94, arg0->jointTable, func_800520FC, func_80052420, arg0, gCalcMatrix); + break; + case 2: + Animation_DrawSkeleton(5, D_301E3E8, arg0->jointTable, func_800520FC, func_80052498, arg0, gCalcMatrix); + break; + case 3: + Animation_DrawSkeleton(5, D_301C614, arg0->jointTable, func_800520FC, func_8005250C, arg0, gCalcMatrix); + break; + } + Matrix_Pop(&gGfxMatrix); + gSPSetGeometryMode(gMasterDisp++, G_CULL_BACK); +} + +// Vec3f D_800CA254 = {0.0f, 0.0f, 90.0f}; +// Vec3f D_800CA260 = {0.0f, 40.0f, -70.0f}; +void func_80052884(UnkStruct_D_80178280* arg0) { + f32 sp64; + Vec3f sp58; + Vec3f sp4C = { 0.0f, 0.0f, 90.0f }; + Vec3f sp40 = { 0.0f, 40.0f, -70.0f }; + + Matrix_Push(&gGfxMatrix); + if (D_801778E8 == 0) { + gSPDisplayList(gMasterDisp++, D_3000090); + } else { + gSPDisplayList(gMasterDisp++, D_300FB80); + } + Matrix_MultVec3f(gGfxMatrix, &sp40, &D_80161518[arg0->unk_1C4]); + Matrix_Translate(gGfxMatrix, 0.0f, 51.0f, -10.0f, 1); + Matrix_RotateY(gGfxMatrix, -arg0->unk_180 * M_DTOR, 1); + Matrix_RotateX(gGfxMatrix, arg0->unk_17C * M_DTOR, 1); + if (D_801778A0 == arg0->unk_1C4) { + sp64 = 0.0f; + if (D_801779C8[arg0->unk_1C4] >= 20) { + sp64 = (f32) (D_80177DB0 & 7) * 80.0f; + } + sp58.x = 0.0f; + sp58.y = 0.0f; + sp58.z = 1200.0f; + Matrix_MultVec3f(gGfxMatrix, &sp58, &D_801613E0[0]); + sp58.z = 2400.0f + sp64; + Matrix_MultVec3f(gGfxMatrix, &sp58, &D_801613E0[1]); + } + Matrix_SetGfxMtx(&gMasterDisp); + if (D_801778E8 == 0) { + if (arg0->unk_1A0 != 0) { + RCP_SetupDL_64(); + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 64, 255, 64, 255); + } + gSPDisplayList(gMasterDisp++, D_3004680); + } else { + gSPDisplayList(gMasterDisp++, D_301F140); + } + Matrix_MultVec3f(gGfxMatrix, &sp4C, &D_80161548[arg0->unk_1C4]); + Matrix_Pop(&gGfxMatrix); +} + +Gfx* D_800CA26C[] = { D_3000090, D_3016CC0, D_3005AB0, D_3003CE0 }; +Gfx* D_800CA27C[] = { D_3001C90, D_3016CC0, D_3005AB0, D_3003CE0 }; +f32 D_800CA28C = 2.0f; +f32 D_800CA290 = 13.0f; +f32 D_800CA294 = -10.0f; +f32 D_800CA298[] = { 0.0f, 0.0f, 0.0f, 0.0f }; +f32 D_800CA2A8 = 0.0f; + +void func_80052B80(UnkStruct_D_80178280* arg0) { + Matrix_Push(&gGfxMatrix); + if ((arg0->unk_1C8 == 3) && (arg0->unk_1A0 != 0)) { + Matrix_Translate(gGfxMatrix, D_80161548[arg0->unk_1C4].x, D_80161548[arg0->unk_1C4].y, + D_80161548[arg0->unk_1C4].z, 1); + Matrix_Scale(gGfxMatrix, D_800CA248[arg0->unk_1A0 - 1], D_800CA248[arg0->unk_1A0 - 1], + D_800CA248[arg0->unk_1A0 - 1], 1); + Matrix_SetGfxMtx(&gMasterDisp); + if (D_801778E8 != 0) { + RCP_SetupDL_40(); + gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK); + gSPDisplayList(gMasterDisp++, D_301FD20); + } else { + Matrix_Scale(gGfxMatrix, 0.5f, 0.5f, 0.5f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + RCP_SetupDL(&gMasterDisp, 0x43); + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 255); + gDPSetEnvColor(gMasterDisp++, 0, 255, 0, 255); + gSPDisplayList(gMasterDisp++, D_1024AC0); + } + } + Matrix_Pop(&gGfxMatrix); +} + +void func_80052D48(UnkStruct_D_80178280* arg0) { + f32 sp2C; + + Matrix_Push(&gGfxMatrix); + Matrix_Copy(gGfxMatrix, &D_80161418[arg0->unk_1C4]); + if (D_801778E8 != 0) { + RCP_SetupDL_64(); + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 150); + } else { + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 192); + gDPSetEnvColor(gMasterDisp++, 255, 0, 0, 192); + RCP_SetupDL(&gMasterDisp, 0x43); + } + sp2C = arg0->unk_16C; + if (sp2C > 0.2f) { + if (D_801778E8 == 0) { + sp2C *= 1.1f; + } + if (D_80177DB0 & 1) { + sp2C *= 1.1f; + } + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, 20.0f, 30.0f, -10.0f, 1); + if (D_801778E8 == 0) { + Matrix_RotateY(gGfxMatrix, -D_80178280[D_801778A0].unk_058, 1); + } + Matrix_Scale(gGfxMatrix, sp2C, sp2C, sp2C, 1); + Matrix_Translate(gGfxMatrix, 0.0f, -30.0f, 0.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + if (D_801778E8 == 0) { + gSPDisplayList(gMasterDisp++, D_30066B0); + } else { + gSPDisplayList(gMasterDisp++, D_301B6E0); + } + Matrix_Pop(&gGfxMatrix); + } + sp2C = arg0->unk_170; + if (sp2C > 0.2f) { + if (D_801778E8 == 0) { + sp2C *= 1.1f; + } + if (D_80177DB0 & 1) { + sp2C *= 1.1f; + } + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, -20.0f, 30.0f, -10.0f, 1); + if (D_801778E8 == 0) { + Matrix_RotateY(gGfxMatrix, -D_80178280[D_801778A0].unk_058, 1); + } + Matrix_Scale(gGfxMatrix, sp2C, sp2C, sp2C, 1); + Matrix_Translate(gGfxMatrix, 0.0f, -30.0f, 0.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + if (D_801778E8 == 0) { + gSPDisplayList(gMasterDisp++, D_30066B0); + } else { + gSPDisplayList(gMasterDisp++, D_301B6E0); + } + Matrix_Pop(&gGfxMatrix); + } + Matrix_Pop(&gGfxMatrix); +} + +void func_8005314C(void) { + if (D_80161410 != 0) { + gSPSetGeometryMode(gMasterDisp++, G_CULL_FRONT); + gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK); + } +} + +s32 func_800531A4(s32 limbIndex, Gfx** gfxPtr, Vec3f* pos, Vec3f* rot, void* wingData) { + UnkStruct_D_80161630* wings = (UnkStruct_D_80161630*) wingData; + + if ((D_800CA22C != 0) && (D_80178280->unk_200 == 0)) { + RCP_SetupDL(&gMasterDisp, 0x1D); + func_8005314C(); + } + switch (limbIndex) { + case 13: + if (wings->unk_00 == 0) { + *gfxPtr = NULL; + } + if (wings->unk_00 == 1) { + *gfxPtr = D_3015120; + } + if ((D_800CA22C != 0) && (D_80177D40[0] & 1)) { + RCP_SetupDL(&gMasterDisp, 0x22); + func_8005314C(); + if (D_80177D40[0] > 1000) { + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 32, 32, 255, 255); + } else { + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 0, 0, 255); + } + } + break; + case 1: + case 2: + if (wings->unk_00 != 2) { + *gfxPtr = NULL; + } + if ((D_800CA22C != 0) && (D_80177D40[0] & 1)) { + RCP_SetupDL(&gMasterDisp, 0x22); + func_8005314C(); + if (D_80177D40[0] > 1000) { + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 32, 32, 255, 255); + } else { + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 0, 0, 255); + } + } + break; + case 12: + if (wings->unk_00 == 0) { + *gfxPtr = NULL; + } + if (wings->unk_01 == 1) { + *gfxPtr = D_3014BF0; + } + if ((D_800CA22C != 0) && (D_80177D58[0] & 1)) { + RCP_SetupDL(&gMasterDisp, 0x22); + func_8005314C(); + if (D_80177D58[0] > 1000) { + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 32, 32, 255, 255); + } else { + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 0, 0, 255); + } + } + break; + case 5: + case 6: + if (wings->unk_01 != 2) { + *gfxPtr = NULL; + } + if ((D_800CA22C != 0) && (D_80177D58[0] & 1)) { + RCP_SetupDL(&gMasterDisp, 0x22); + func_8005314C(); + if (D_80177D58[0] > 1000) { + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 32, 32, 255, 255); + } else { + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 0, 0, 255); + } + } + break; + } + switch (limbIndex) { + case 1: + rot->y -= wings->unk_04; + break; + case 2: + rot->y -= wings->unk_08; + break; + case 5: + rot->y -= wings->unk_10; + break; + case 6: + rot->y -= wings->unk_0C; + break; + case 12: + rot->z += wings->unk_20; + break; + case 13: + rot->z += wings->unk_20; + break; + case 4: + pos->z -= wings->unk_14; + pos->x += wings->unk_18; + break; + case 8: + pos->z += wings->unk_14; + pos->x += wings->unk_18; + break; + } + return 0; +} + +void func_80053658(UnkStruct_D_80161630* arg0) { + Vec3f sp68[30]; + s32 sp64; + + Matrix_Push(&gGfxMatrix); + arg0->unk_18 = 0.0f; + if (arg0->unk_14 < -7.0f) { + arg0->unk_18 = (-arg0->unk_14 - 7.0f) * 2.5f; + } + if (D_80177834 == 7) { + Animation_DrawSkeleton(1, D_3016610, D_80178280[0].jointTable, func_800531A4, NULL, arg0, &gIdentityMatrix); + } else { + if (D_80177834 == 3) { + Animation_GetFrameData(&D_3015AF4, 0, sp68); + } else { + Animation_GetFrameData(&D_3015C28, 0, sp68); + } + Animation_DrawSkeleton(1, D_3016610, sp68, func_800531A4, NULL, arg0, &gIdentityMatrix); + } + D_800CA22C = 0; + sp64 = arg0->unk_2C; + if (D_800CA220 != 0) { + sp64 = 1; + } + if (sp64 != 0) { + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, 0.0f, 6.4f, -16.5f, 1); + Matrix_RotateY(gGfxMatrix, arg0->unk_34 * M_DTOR, 1); + Matrix_RotateX(gGfxMatrix, arg0->unk_30 * M_DTOR, 1); + Matrix_Scale(gGfxMatrix, 0.0140994005f, 0.0140994005f, 0.0140994005f, 1); + if (D_80177834 == 8) { + Matrix_Scale(gGfxMatrix, 0.95f, 0.95f, 0.95f, 1); + } + Matrix_SetGfxMtx(&gMasterDisp); + if (gExpertMode) { + gSPDisplayList(gMasterDisp++, D_800CA27C[sp64 - 1]); + } else { + gSPDisplayList(gMasterDisp++, D_800CA26C[sp64 - 1]); + } + Matrix_Pop(&gGfxMatrix); + } + Matrix_Translate(gGfxMatrix, 0.0f, 17.2f, -25.8f, 1); + Matrix_RotateX(gGfxMatrix, arg0->unk_38 * M_DTOR, 1); + Matrix_SetGfxMtx(&gMasterDisp); + RCP_SetupDL_64_2(); + if ((D_80177834 == 7) && (D_80178280->unk_1C8 == 2) && (D_80178234 == 0)) { + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 120); + gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK); + gSPDisplayList(gMasterDisp++, D_30194E0); + RCP_SetupDL_46(); + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 100); + gSPDisplayList(gMasterDisp++, D_30183D0); + } else { + RCP_SetupDL_46(); + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 140); + gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK); + gSPDisplayList(gMasterDisp++, D_30194E0); + } + gSPSetGeometryMode(gMasterDisp++, G_CULL_BACK); + Matrix_Pop(&gGfxMatrix); +} + +void func_80053B00(f32 arg0, f32 arg1, UNK_TYPE arg2, UNK_TYPE arg3) { +} + +void func_80053B18(void) { + Matrix_Push(&gGfxMatrix); + Matrix_Copy(gGfxMatrix, &D_80161418[0]); + Matrix_Translate(gGfxMatrix, 0.0f, D_800CA290, D_800CA294, 1); + Matrix_Scale(gGfxMatrix, D_800CA28C, D_800CA28C, D_800CA28C, 1); + Matrix_SetGfxMtx(&gMasterDisp); + RCP_SetupDL_64_2(); + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 120); + gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK); + gSPDisplayList(gMasterDisp++, D_30194E0); + gSPSetGeometryMode(gMasterDisp++, G_CULL_BACK); + Matrix_Pop(&gGfxMatrix); +} + +void func_80053C38(UnkStruct_D_80178280* arg0, s32 arg1) { + Vec3f sp4C; + f32 sp48; + + if ((D_801778A0 == arg0->unk_1C4) && (arg1 == 0)) { + sp48 = 0.0f; + if (D_801779C8[arg0->unk_1C4] >= 20) { + sp48 = (f32) (D_80177DB0 & 7) * 80.0f; + } + sp4C.x = 0.0f; + sp4C.y = 0.0f; + sp4C.z = 1200.0f; + Matrix_MultVec3f(gGfxMatrix, &sp4C, &D_801613E0[0]); + sp4C.z = 2400.0f + sp48; + Matrix_MultVec3f(gGfxMatrix, &sp4C, &D_801613E0[1]); + } + if ((arg0->unk_238 != 0) && (D_80177880 == 0) && (fabsf((arg0->unk_138 + D_80177D20) - arg0->unk_040.z) < 10.0f)) { + if (arg1 == 0) { + D_800CA228 = 1; + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, 0.0f, -8.0f, 5.0f, 1); + Matrix_RotateY(gGfxMatrix, M_PI, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_30131F0); + Matrix_Pop(&gGfxMatrix); + } + } else { + if (D_801778E8 != 0) { + if ((arg0->unk_49C.unk_00 == 2) && (arg0->unk_49C.unk_01 == 2)) { + gSPDisplayList(gMasterDisp++, D_300EE80); + } else if ((arg0->unk_49C.unk_00 < 2) && (arg0->unk_49C.unk_01 == 2)) { + gSPDisplayList(gMasterDisp++, D_3010A90); + } else if ((arg0->unk_49C.unk_00 == 2) && (arg0->unk_49C.unk_01 < 2)) { + gSPDisplayList(gMasterDisp++, D_3011470); + } else { + gSPDisplayList(gMasterDisp++, D_300D550); + } + } else { + if ((D_80177C98 == 1) || (D_80178234 == 0x11)) { + arg0->unk_49C.unk_28 = arg0->unk_49C.unk_04 = arg0->unk_49C.unk_08 = arg0->unk_49C.unk_0C = + arg0->unk_49C.unk_10 = 0.0f; + } + D_800CA22C = 1; + D_80161410 = arg1; + func_80053658(&arg0->unk_49C); + } + } +} + +void func_80053F7C(UnkStruct_D_80178280* arg0) { + Vec3f* pad; + s32 i; + + if ((D_801778A0 == arg0->unk_1C4) && ((arg0->unk_1CC == 0) || (arg0->unk_1CC == 1)) && (arg0->unk_234 != 0) && + (((D_80177834 == 7) && (arg0->unk_1C8 == 3)) || (D_80177834 == 3))) { + for (i = 0; i < 2; i++) { + pad = &D_801613E0[i]; + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, pad->x, pad->y, pad->z, 1); + if (D_801779C8[arg0->unk_1C4] >= 20) { + RCP_SetupDL(&gMasterDisp, 0x3F); + if (i == 1) { + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 0, 0, 255); + gDPSetEnvColor(gMasterDisp++, 255, 0, 0, 255); + Math_SmoothStepToF(&D_800CA298[arg0->unk_1C4], 2.0f, 1.0f, 0.4f, 0.0f); + } else { + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 0, 255); + gDPSetEnvColor(gMasterDisp++, 255, 255, 0, 255); + } + } else { + RCP_SetupDL_36(); + } + if (i == 1) { + Matrix_Scale(gGfxMatrix, D_800CA298[arg0->unk_1C4], D_800CA298[arg0->unk_1C4], 1.0f, 1); + Math_SmoothStepToF(&D_800CA298[arg0->unk_1C4], 1.0f, 1.0f, 0.2f, 0.0f); + } + Matrix_Scale(gGfxMatrix, 4.0f, 4.0f, 4.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_1024F60); + Matrix_Pop(&gGfxMatrix); + } + } +} + +void func_80054280(UnkStruct_D_80178280* arg0, s32 arg1) { + switch (arg0->unk_1CC) { + case 0: + func_80053C38(arg0, arg1); + return; + case 1: + func_80052884(arg0); + return; + case 2: + func_E16C50_801ACBB4(); + return; + case 3: + func_800526B8(arg0); + return; + } +} + +void func_80054300(UnkStruct_D_80178280* arg0) { + Math_SmoothStepToF(&D_800CA2A8, arg0->unk_23C, 1.0f, 10.0f, 0.0f); + RCP_SetupDL(&gMasterDisp, 0x42); + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 0, 0, 0, (s32) D_800CA2A8); + if (arg0->unk_068 > 30.0f) { + gSPSetGeometryMode(gMasterDisp++, G_CULL_BACK); + } + if ((D_80161A88 == 2) && (arg0->unk_068 < 10.0f)) { + arg0->unk_23C = 90; + } else { + arg0->unk_23C = 180; + } + switch (arg0->unk_1CC) { + case 0: + fake_label: + Matrix_Scale(gGfxMatrix, 2.5049999f, 1.5f, 2.5049999f, 1); + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, 30.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_1032780); + break; + case 1: + Matrix_Push(&gGfxMatrix); + Matrix_Scale(gGfxMatrix, 1.17f, 1.17f, 1.17f, 1); + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, 20.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + if (D_80178234 == 0xB) { + RCP_SetupDL(&gMasterDisp, 0x41); + } + if (D_801778E8 == 0) { + gSPDisplayList(gMasterDisp++, D_3008100); + } else { + gSPDisplayList(gMasterDisp++, D_301E570); + } + Matrix_Pop(&gGfxMatrix); + break; + case 2: + break; + case 3: + Matrix_Push(&gGfxMatrix); + Matrix_Scale(gGfxMatrix, 0.5f, 0.5f, 0.5f, 1); + Matrix_RotateX(gGfxMatrix, M_PI / 2.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK); + gSPDisplayList(gMasterDisp++, D_102A8A0); + gSPSetGeometryMode(gMasterDisp++, G_CULL_BACK); + Matrix_Pop(&gGfxMatrix); + break; + } +} + +void func_8005465C(s32 arg0) { + RCP_SetupDL(&gMasterDisp, 0x43); + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 255); + + switch (arg0) { + case 0: + gDPSetEnvColor(gMasterDisp++, 255, 0, 0, 255); + break; + case 1: + gDPSetEnvColor(gMasterDisp++, 0, 0, 255, 255); + break; + case 2: + gDPSetEnvColor(gMasterDisp++, 0, 255, 0, 255); + break; + case 3: + gDPSetEnvColor(gMasterDisp++, 255, 64, 0, 255); + break; + } + gSPDisplayList(gMasterDisp++, D_1024AC0); +} + +void func_8005478C(UnkStruct_D_80178280* arg0) { + RCP_SetupDL_64(); + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 100); + Matrix_Push(&gGfxMatrix); + Matrix_RotateZ(gGfxMatrix, arg0->unk_0F8 * M_DTOR, 1); + if (arg0->unk_1CC == 1) { + if (arg0->unk_194 <= 0.0f) { + Matrix_Pop(&gGfxMatrix); + return; + } + Matrix_Scale(gGfxMatrix, arg0->unk_194, arg0->unk_194, 1.0f, 1); + } else { + Matrix_Scale(gGfxMatrix, arg0->unk_194, arg0->unk_194, 1.0f, 1); + } + if (D_80177DB0 & 1) { + Matrix_Scale(gGfxMatrix, 0.9f, 0.63f, 1.0f, 1); + } else { + Matrix_Scale(gGfxMatrix, 0.80999994f, 0.567f, 1.0f, 1); + } + Matrix_SetGfxMtx(&gMasterDisp); + func_8005465C(D_80177C98); + Matrix_Pop(&gGfxMatrix); +} + +void func_80054914(UnkStruct_D_80178280* arg0) { + f32 sp4C; + Vec3f sp40; + Vec3f sp34; + + if (arg0->unk_280 != 0) { + Matrix_RotateY(gCalcMatrix, (arg0->unk_114 + arg0->unk_0E8 + arg0->unk_134 + 180.0f) * M_DTOR, 0); + Matrix_RotateX(gCalcMatrix, -((arg0->unk_120 + arg0->unk_0E4 + arg0->unk_134 + arg0->unk_4D8) * M_DTOR), 1); + Matrix_RotateZ(gCalcMatrix, -((arg0->unk_0F8 + arg0->unk_0F0 + arg0->unk_134) * M_DTOR), 1); + Matrix_Translate(gCalcMatrix, arg0->unk_084, arg0->unk_080, 0.0f, 1); + sp40.x = 0.0f; + sp40.y = 0.0f; + sp40.z = -30.0f; + Matrix_MultVec3f(gCalcMatrix, &sp40, &sp34); + sp4C = 1.0f; + if (arg0->unk_1F0 < 0) { + sp4C = -1.0f; + } + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, arg0->unk_074 + sp34.x, arg0->unk_078 + sp34.y, + arg0->unk_138 + arg0->unk_144 + sp34.z, 1); + Matrix_RotateY(gGfxMatrix, -D_80178280[D_801778A0].unk_058, 1); + Matrix_RotateX(gGfxMatrix, D_80178280[D_801778A0].unk_05C, 1); + Matrix_RotateZ(gGfxMatrix, D_80177DB0 * 20.0f * sp4C * M_DTOR, 1); + if (arg0->unk_1CC == 0) { + Matrix_Scale(gGfxMatrix, 2.0f, 2.0f, 2.0f, 1); + } else { + Matrix_Scale(gGfxMatrix, 1.2f, 1.2f, 1.2f, 1); + } + if (arg0->unk_1F0 < 0) { + Matrix_RotateX(gGfxMatrix, M_PI, 1); + } + Matrix_SetGfxMtx(&gMasterDisp); + RCP_SetupDL(&gMasterDisp, 0x43); + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, arg0->unk_280); + gDPSetEnvColor(gMasterDisp++, 0, 0, 160, arg0->unk_280); + gSPDisplayList(gMasterDisp++, D_101DC10); + Matrix_Pop(&gGfxMatrix); + } +} + +void func_80054CA4(UnkStruct_D_80178280* arg0) { + if (D_80177AB8[arg0->unk_1C4] > 1.0f) { + Matrix_Push(&gGfxMatrix); + Matrix_Copy(gGfxMatrix, &D_80161418[arg0->unk_1C4]); + Matrix_Translate(gGfxMatrix, 0.0f, -5.0f, 10.0f, 1); + Matrix_Scale(gGfxMatrix, 2.5f, 1.6f, 2.5f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + RCP_SetupDL(&gMasterDisp, 0x44); + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 0, 255, 255, (s32) D_80177AB8[arg0->unk_1C4]); + gDPSetEnvColor(gMasterDisp++, 255, 0, 255, (s32) D_80177AB8[arg0->unk_1C4]); + gSPDisplayList(gMasterDisp++, D_101CD70); + Matrix_Pop(&gGfxMatrix); + Texture_Scroll(D_101D070, 0x20, 0x20, 3); + Texture_Scroll(D_101D070, 0x20, 0x20, 3); + } +} + +// Vec3f D_800CA2AC = {0.0f, -5.0f, 60.0f}; +// Vec3f D_800CA2B8 = {0.0f, -14.0f, 60.0f}; +// Vec3f D_800CA2C4 = {30.0f, -10.0f, 30.0f}; +// Vec3f D_800CA2D0 = {-30.0f, -10.0f, 30.0f}; +void func_80054E80(UnkStruct_D_80178280* arg0) { + Vec3f spC4 = { 0.0f, -5.0f, 60.0f }; + Vec3f spB8 = { 0.0f, -14.0f, 60.0f }; + Vec3f spAC = { 30.0f, -10.0f, 30.0f }; + Vec3f spA0 = { -30.0f, -10.0f, 30.0f }; + Vec3f sp94; + Vec3f sp88; + u8 var_v1; + f32 sp80; + + if (D_801779C8[arg0->unk_1C4] >= 0xB) { + RCP_SetupDL(&gMasterDisp, 0x43); + Matrix_Copy(gCalcMatrix, &D_80161418[arg0->unk_1C4]); + if ((arg0->unk_238 != 0) && (D_80177880 == 0)) { + Matrix_MultVec3f(gCalcMatrix, &spB8, &sp94); + } else { + Matrix_MultVec3f(gCalcMatrix, &spC4, &sp94); + } + Matrix_Push(&gGfxMatrix); + sp80 = D_801779C8[arg0->unk_1C4] / 20.0f; + Matrix_Translate(gGfxMatrix, sp94.x, sp94.y, sp94.z, 0); + Matrix_Scale(gGfxMatrix, sp80, sp80, 1.0f, 1); + Matrix_Push(&gGfxMatrix); + if ((arg0->unk_238 != 0) && (D_80177880 == 0)) { + Matrix_Scale(gGfxMatrix, 3.0f, 3.0f, 3.0f, 1); + } else { + Matrix_Scale(gGfxMatrix, 10.0f, 10.0f, 10.0f, 1); + } + RCP_SetupDL(&gMasterDisp, 0x31); + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 128); + if (D_801778E8 != 0) { + switch (arg0->unk_1C4) { + case 0: + gDPSetEnvColor(gMasterDisp++, 255, 255, 32, 128); + break; + case 1: + gDPSetEnvColor(gMasterDisp++, 255, 32, 32, 128); + break; + case 2: + gDPSetEnvColor(gMasterDisp++, 32, 255, 32, 128); + break; + case 3: + gDPSetEnvColor(gMasterDisp++, 32, 32, 255, 128); + break; + } + } else { + gDPSetEnvColor(gMasterDisp++, 0, 255, 0, 128); + } + Matrix_RotateZ(gGfxMatrix, D_80177DB0 * 53.0f * M_DTOR, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_101C2E0); + Matrix_RotateZ(gGfxMatrix, D_80177DB0 * -53.0f * 2.0f * M_DTOR, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_101C2E0); + Matrix_Pop(&gGfxMatrix); + if ((arg0->unk_238 != 0) && (D_80177880 == 0)) { + Matrix_Scale(gGfxMatrix, 0.3f, 0.3f, 0.3f, 1); + } + Matrix_Scale(gGfxMatrix, 0.5f, 0.5f, 1.0f, 1); + if (!(D_80177DB0 & 1)) { + Matrix_Scale(gGfxMatrix, 1.7f, 1.7f, 1.0f, 1); + } else { + Matrix_Scale(gGfxMatrix, 1.3f, 1.3f, 1.0f, 1); + } + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_1024AC0); + Matrix_Pop(&gGfxMatrix); + } + if (D_80177AA0[arg0->unk_1C4] > 0.1f) { + Matrix_Push(&gGfxMatrix); + RCP_SetupDL(&gMasterDisp, 0x43); + Matrix_Copy(gCalcMatrix, &D_80161418[arg0->unk_1C4]); + var_v1 = D_80161AA8[arg0->unk_1C4]; + if (arg0->unk_49C.unk_14 > -8.0f) { + var_v1 = 0; + } + switch (var_v1) { + case 0: + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 192, 255, 192, 128); + gDPSetEnvColor(gMasterDisp++, 64, 255, 64, 128); + if ((arg0->unk_238 != 0) && (D_80177880 == 0)) { + Matrix_MultVec3f(gCalcMatrix, &spB8, &sp94); + } else { + Matrix_MultVec3f(gCalcMatrix, &spC4, &sp94); + } + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, sp94.x, sp94.y, sp94.z, 0); + Matrix_Scale(gGfxMatrix, D_80177AA0[arg0->unk_1C4], D_80177AA0[arg0->unk_1C4], 1.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_1024AC0); + Matrix_Pop(&gGfxMatrix); + break; + case 1: + case 2: + if (var_v1 == 1) { + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 192, 255, 192, 128); + gDPSetEnvColor(gMasterDisp++, 64, 255, 64, 128); + } else { + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 128, 255, 255, 160); + gDPSetEnvColor(gMasterDisp++, 128, 128, 255, 160); + } + Matrix_MultVec3f(gCalcMatrix, &spAC, &sp94); + Matrix_MultVec3f(gCalcMatrix, &spA0, &sp88); + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, sp94.x, sp94.y, sp94.z, 0); + Matrix_Scale(gGfxMatrix, D_80177AA0[arg0->unk_1C4], D_80177AA0[arg0->unk_1C4], 1.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_1024AC0); + Matrix_Pop(&gGfxMatrix); + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, sp88.x, sp88.y, sp88.z, 0); + Matrix_Scale(gGfxMatrix, D_80177AA0[arg0->unk_1C4], D_80177AA0[arg0->unk_1C4], 1.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_1024AC0); + Matrix_Pop(&gGfxMatrix); + break; + } + Matrix_Pop(&gGfxMatrix); + } +} + +void func_80055788(UnkStruct_D_80178280* arg0) { + f32 sp54; + + if (D_801779C8[arg0->unk_1C4] >= 0xB) { + RCP_SetupDL(&gMasterDisp, 0x43); + Matrix_Push(&gGfxMatrix); + sp54 = D_801779C8[arg0->unk_1C4] / 20.0f; + Matrix_Translate(gGfxMatrix, D_80161548[arg0->unk_1C4].x, D_80161548[arg0->unk_1C4].y, + D_80161548[arg0->unk_1C4].z, 0); + Matrix_Scale(gGfxMatrix, sp54, sp54, 1.0f, 1); + Matrix_Push(&gGfxMatrix); + Matrix_Scale(gGfxMatrix, 10.0f, 10.0f, 10.0f, 1); + RCP_SetupDL(&gMasterDisp, 0x31); + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 128); + if (D_801778E8 != 0) { + switch (arg0->unk_1C4) { + case 0: + gDPSetEnvColor(gMasterDisp++, 255, 255, 32, 128); + break; + case 1: + gDPSetEnvColor(gMasterDisp++, 255, 32, 32, 128); + break; + case 2: + gDPSetEnvColor(gMasterDisp++, 32, 255, 32, 128); + break; + case 3: + gDPSetEnvColor(gMasterDisp++, 32, 32, 255, 128); + break; + } + } else { + gDPSetEnvColor(gMasterDisp++, 0, 255, 0, 128); + } + Matrix_RotateZ(gGfxMatrix, D_80177DB0 * 53.0f * M_DTOR, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_101C2E0); + Matrix_RotateZ(gGfxMatrix, D_80177DB0 * -53.0f * 2.0f * M_DTOR, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_101C2E0); + Matrix_Pop(&gGfxMatrix); + Matrix_Scale(gGfxMatrix, 0.5f, 0.5f, 1.0f, 1); + if (!(D_80177DB0 & 1)) { + Matrix_Scale(gGfxMatrix, 1.7f, 1.7f, 1.0f, 1); + } else { + Matrix_Scale(gGfxMatrix, 1.3f, 1.3f, 1.0f, 1); + } + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_1024AC0); + Matrix_Pop(&gGfxMatrix); + } +} + +void func_80055B58(UnkStruct_D_80178280* arg0) { + Vec3f sp4C; + Vec3f sp40; + f32 var_fv0; + s32 pad[3]; + + if ((arg0->unk_234 != 0) && (arg0->unk_1C8 != 4)) { + switch (arg0->unk_1CC) { + case 0: + + Matrix_RotateY(gCalcMatrix, (arg0->unk_114 + arg0->unk_0E8 + arg0->unk_134 + 180.0f) * M_DTOR, 0); + Matrix_RotateX(gCalcMatrix, -((arg0->unk_120 + arg0->unk_0E4 + arg0->unk_134 + arg0->unk_4D8) * M_DTOR), + 1); + Matrix_RotateZ(gCalcMatrix, -((arg0->unk_0F8 + arg0->unk_0F0 + arg0->unk_134) * M_DTOR), 1); + Matrix_Translate(gCalcMatrix, arg0->unk_084, arg0->unk_080, 0.0f, 1); + var_fv0 = arg0->unk_194 * 30.0f; + if (var_fv0 > 30.0f) { + var_fv0 = 30.0f; + } + + sp4C.x = 0; + sp4C.y = 0; + sp4C.z = -40.0f - var_fv0; + + Matrix_MultVec3f(gCalcMatrix, &sp4C, &sp40); + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, arg0->unk_074 + sp40.x, arg0->unk_078 + sp40.y, + arg0->unk_138 + arg0->unk_144 + sp40.z, 1); + Matrix_RotateY(gGfxMatrix, -D_80178280[D_801778A0].unk_058, 1); + Matrix_RotateX(gGfxMatrix, D_80178280[D_801778A0].unk_05C, 1); + Matrix_SetGfxMtx(&gMasterDisp); + func_8005478C(arg0); + Matrix_Pop(&gGfxMatrix); + func_80054914(arg0); + func_80054CA4(arg0); + func_80054E80(arg0); + break; + case 1: + func_80052D48(arg0); + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, D_80161518[arg0->unk_1C4].x, D_80161518[arg0->unk_1C4].y, + D_80161518[arg0->unk_1C4].z, 0); + Matrix_SetGfxMtx(&gMasterDisp); + func_8005478C(arg0); + Matrix_Pop(&gGfxMatrix); + func_80055788(arg0); + break; + case 2: + func_80054914(arg0); + break; + } + } +} + +void func_80055E98(UnkStruct_D_80178280* arg0) { + f32 sp5C; + f32 sp58; + f32 sp54; + f32 sp50; + f32 var_fs0; + + sp5C = 70.0f; + sp58 = -18.0f; + if (arg0->unk_204 == 2) { + sp5C = 108.0f; + sp58 = -22.0f; + } + if (arg0->unk_25C != 0.0f) { + sp54 = 0.0f; + if (D_80177DB0 & 1) { + sp54 = 180.0f; + } + var_fs0 = arg0->unk_0E8; + if (var_fs0 > 90.0f) { + var_fs0 -= 180.0f; + } + var_fs0 = var_fs0 * 0.25f; + sp50 = arg0->unk_0E4 * 0.25f; + if (arg0->unk_1C8 == 7) { + var_fs0 = 0.0f; + sp50 = 0.0f; + } + RCP_SetupDL_64(); + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 100); + if (arg0->unk_49C.unk_01 == 2) { + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, sp5C, sp58, -100.0f, 1); + Matrix_RotateX(gGfxMatrix, M_DTOR * sp50, 1); + Matrix_RotateY(gGfxMatrix, -(M_DTOR * var_fs0), 1); + Matrix_Scale(gGfxMatrix, arg0->unk_25C, 1.0f, 50.0f, 1); + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -17.5f, 1); + Matrix_RotateX(gGfxMatrix, M_PI / 2.0f, 1); + Matrix_RotateY(gGfxMatrix, M_DTOR * sp54, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_102A8A0); + Matrix_Pop(&gGfxMatrix); + } + if (arg0->unk_49C.unk_00 == 2) { + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, -sp5C, sp58, -100.0f, 1); + Matrix_RotateX(gGfxMatrix, M_DTOR * sp50, 1); + Matrix_RotateY(gGfxMatrix, -(M_DTOR * var_fs0), 1); + Matrix_Scale(gGfxMatrix, arg0->unk_25C, 1.0f, 50.0f, 1); + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -17.5f, 1); + Matrix_RotateX(gGfxMatrix, M_PI / 2.0f, 1); + Matrix_RotateY(gGfxMatrix, M_DTOR * sp54, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_102A8A0); + Matrix_Pop(&gGfxMatrix); + } + } +} + +void func_80056230(UnkStruct_D_80178280* arg0) { + if ((arg0->unk_234 != 0) && (arg0->unk_1CC == 0) && (D_80178234 != 9) && (D_80178234 != 0xA) && (D_80177C98 == 0)) { + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, arg0->unk_074, arg0->unk_078, arg0->unk_138 + arg0->unk_144, 1); + Matrix_RotateY(gGfxMatrix, (arg0->unk_114 + arg0->unk_0E8 + 180.0f) * M_DTOR, 1); + Matrix_RotateX(gGfxMatrix, -((arg0->unk_120 + arg0->unk_0E4 + arg0->unk_4D8) * M_DTOR), 1); + Matrix_RotateZ(gGfxMatrix, -((arg0->unk_0F8 + arg0->unk_0F0 + arg0->unk_134) * M_DTOR), 1); + Matrix_Translate(gGfxMatrix, arg0->unk_084, arg0->unk_080, 0.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + func_80055E98(arg0); + Matrix_Pop(&gGfxMatrix); + } +} + +#ifdef NON_MATCHING +// Vec3f D_800CA2DC = {0.0f, 0.0f, 0.0f}; +bool func_800563B4(s32 arg0, s32 arg1) { + Vec3f sp2C = { 0.0f, 0.0f, 0.0f }; + Vec3f sp20; + + Matrix_MultVec3f(gGfxMatrix, &sp2C, &sp20); + if ((sp20.z < 200.0f) && (sp20.z > -12000.0f) && (fabsf(sp20.x) < (fabsf(sp20.z * 0.5f) + 500.0f)) && + (fabsf(sp20.y) < (fabsf(sp20.z * 0.5f) + 500.0f))) { + if (arg1 == 0) { + D_800CA224[arg0] = 1; + } + return true; + } else { + if (arg1 == 0) { + D_800CA224[arg0] = 0; + } + return false; + } +} +#else +Vec3f D_800CA2DC = { 0.0f, 0.0f, 0.0f }; +s32 func_800563B4(s32, s32); +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/fox_52730/func_800563B4.s") +#endif + +s32 D_800CA2E8[16] = { 60, 40, 20, 20, 20, 20, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0 }; + +#ifdef NON_MATCHING +// Vec3f D_800CA328 = {0.0f, 0.0f, 0.0f}; +void func_800564C0(UnkStruct_D_80178280* arg0, s32 arg1) { + s32 i; + Vec3f sp50 = { 0.0f, 0.0f, 0.0f }; + Vec3f* temp_s0; + + if (arg0->unk_234 != 0) { + Matrix_Push(&gGfxMatrix); + if (arg0->unk_1CC == 1) { + if (arg0->unk_1D4 != 0) { + Matrix_Translate(gGfxMatrix, 0.0f, D_8017847C, 0.0f, 1); + } + Matrix_Translate(gGfxMatrix, arg0->unk_074, arg0->unk_078 + arg0->unk_18C + 30.0f, + arg0->unk_138 + arg0->unk_144, 1); + if (D_801778E8 != 0) { + for (i = 0; i < D_801778A8; i++) { + if (D_80177B00[arg0->unk_1C4][i] != 0) { + temp_s0 = &D_80161578[i]; + Matrix_MultVec3f(gGfxMatrix, &sp50, temp_s0); + if ((i == D_801778A0) && ((temp_s0->z > 300.0f) || (temp_s0->z < -8000.0f) || + ((fabsf(temp_s0->z * 0.5f) + 100.0f) < fabsf(temp_s0->x)) || + ((fabsf(temp_s0->z * 0.5f) + 100.0f) < fabsf(temp_s0->y)))) { + D_80177B00[arg0->unk_1C4][i] = 0; + } + } + } + } + if (func_800563B4(arg0->unk_1C4, arg1) == 0) { + Matrix_Pop(&gGfxMatrix); + return; + } + Matrix_RotateX(gGfxMatrix, (arg0->unk_0E4 + arg0->unk_134) * M_DTOR, 1); + Matrix_RotateZ(gGfxMatrix, (arg0->unk_0EC + arg0->unk_0F0 + arg0->unk_134) * M_DTOR, 1); + Matrix_RotateY(gGfxMatrix, (arg0->unk_114 + arg0->unk_0E8 + 180.0f) * M_DTOR, 1); + if (D_801778E8 != 0) { + Matrix_RotateX(gGfxMatrix, arg0->unk_000 * M_DTOR, 1); + } + Matrix_RotateZ(gGfxMatrix, (-arg0->unk_12C - arg0->unk_130) * M_DTOR, 1); + Matrix_Translate(gGfxMatrix, arg0->unk_084, arg0->unk_080 - 30.0f, 0.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + } else if (arg0->unk_1CC == 3) { + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, arg0->unk_074, arg0->unk_078, arg0->unk_138 + arg0->unk_144, 1); + if (func_800563B4(arg0->unk_1C4, arg1) == 0) { + Matrix_Pop(&gGfxMatrix); + Matrix_Pop(&gGfxMatrix); + return; + } + Matrix_Pop(&gGfxMatrix); + Matrix_Translate(gCalcMatrix, arg0->unk_074, arg0->unk_078 + D_8017847C, arg0->unk_138 + arg0->unk_144, 0); + Matrix_RotateY(gCalcMatrix, (arg0->unk_114 + arg0->unk_0E8 + arg0->unk_134 + 180.0f) * M_DTOR, 1); + Matrix_RotateX(gCalcMatrix, -((arg0->unk_120 + arg0->unk_0E4 + arg0->unk_134) * M_DTOR), 1); + Matrix_RotateZ(gCalcMatrix, -((arg0->unk_0F8 + arg0->unk_0F0 + arg0->unk_134) * M_DTOR), 1); + Matrix_Translate(gCalcMatrix, arg0->unk_084, arg0->unk_080, 0.0f, 1); + } else { + Matrix_Translate(gGfxMatrix, arg0->unk_074, arg0->unk_078, arg0->unk_138 + arg0->unk_144, 1); + if (D_801778E8 != 0) { + for (i = 0; i < D_801778A8; i++) { + if (D_80177B00[arg0->unk_1C4][i] != 0) { + temp_s0 = &D_80161578[i]; + Matrix_MultVec3f(gGfxMatrix, &sp50, temp_s0); + if ((i == D_801778A0) && ((temp_s0->z > 300.0f) || (temp_s0->z < -8000.0f) || + ((fabsf(temp_s0->z * 0.5f) + 100.0f) < fabsf(temp_s0->x)) || + ((fabsf(temp_s0->z * 0.5f) + 100.0f) < fabsf(temp_s0->y)))) { + D_80177B00[arg0->unk_1C4][i] = 0; + } + } + } + } + if (func_800563B4(arg0->unk_1C4, arg1) == 0) { + Matrix_Pop(&gGfxMatrix); + return; + } + Matrix_RotateY(gGfxMatrix, (arg0->unk_114 + arg0->unk_0E8 + arg0->unk_134 + 180.0f) * M_DTOR, 1); + Matrix_RotateX(gGfxMatrix, -((arg0->unk_120 + arg0->unk_0E4 + arg0->unk_4D8 + arg0->unk_134) * M_DTOR), 1); + Matrix_RotateZ(gGfxMatrix, -((arg0->unk_0F8 + arg0->unk_0F0 + arg0->unk_134) * M_DTOR), 1); + Matrix_Translate(gGfxMatrix, arg0->unk_084, arg0->unk_080, 0.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + } + switch (arg0->unk_200) { + case 0: + if (D_801778E8 == 0) { + if ((D_80178234 == 0xE) || (D_80178234 == 0xC)) { + RCP_SetupDL_29(D_80178320, D_80178328, D_80178330, D_80178338, D_801783D8, 0x3ED); + } else { + RCP_SetupDL_29(D_80178320, D_80178328, D_80178330, D_80178338, D_801783D8, D_801783DC); + } + } else if (D_8017789C == 2) { + RCP_SetupDL_29(0x80, 0x80, 0xFF, 0xFF, D_801783D8, D_801783DC); + } else { + RCP_SetupDL_29(0, 0, 0, 0xFF, D_801783D8, D_801783DC); + } + break; + case 1: + RCP_SetupDL_27(); + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 0, 0, 255); + break; + case 2: + RCP_SetupDL_32(); + break; + } + if (arg1 != 0) { + func_800596C0(); + } else { + Matrix_Copy(&D_80161418[arg0->unk_1C4], gGfxMatrix); + } + func_80054280(arg0, arg1); + Matrix_Pop(&gGfxMatrix); + } +} +#else +Vec3f D_800CA328 = { 0.0f, 0.0f, 0.0f }; +void func_800564C0(UnkStruct_D_80178280*, s32); +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/fox_52730/func_800564C0.s") +#endif + +f32 D_800CA334[] = { + 0.02f, 0.06f, 0.08f, 0.05f, 0.04f, 0.03f, 0.06f, 0.04f, +}; +Gfx* D_800CA354[] = { + D_1024570, D_1024570, D_10246D0, D_1024410, D_1024410, D_1024410, + D_1024410, D_1024410, D_D000000, D_D00B5C0, D_D00B720, +}; +f32 D_800CA380 = 0.0f; +f32 D_800CA384 = 0.0f; +f32 D_800CA388 = -300.0f; +f32 D_800CA38C[] = { + 0.0f, + -300.0f, + -150.0f, + -50.0f, +}; + +void func_80056E2C(UnkStruct_D_80178280* arg0) { + f32 sp34; + f32 sp30; + f32 sp2C; + + if ((arg0->unk_234 != 0) && (arg0->unk_240 == 0)) { + sp34 = D_800CA334[D_80177DB0 & 7]; + sp30 = D_800CA334[(D_80177DB0 + 4) & 7]; + if (arg0->unk_1D4 != 0) { + sp34 = sp30 = 0.0f; + } + Matrix_Push(&gGfxMatrix); + if (D_80177880 == 1) { + if (arg0->unk_1CC == 3) { + Matrix_Translate(gGfxMatrix, arg0->unk_064, arg0->unk_068 + 2.0f, arg0->unk_06C, 1); + } else { + Matrix_Translate(gGfxMatrix, arg0->unk_064, arg0->unk_068 + 2.0f, arg0->unk_06C, 1); + } + } else { + Matrix_Translate(gGfxMatrix, arg0->unk_064, arg0->unk_068 + 2.0f, arg0->unk_06C + arg0->unk_144, 1); + } + Matrix_RotateY(gGfxMatrix, arg0->unk_070, 1); + Matrix_RotateX(gGfxMatrix, arg0->unk_248, 1); + Matrix_RotateZ(gGfxMatrix, arg0->unk_24C, 1); + Matrix_Scale(gGfxMatrix, 0.8f + sp34, 0.0f, 0.8f + sp30, 1); + if ((arg0->unk_1CC == 0) || (arg0->unk_1CC == 2) || (arg0->unk_1CC == 3)) { + sp2C = arg0->unk_0F8 + arg0->unk_0F0 + arg0->unk_134; + if (((sp2C > 70.0f) && (sp2C < 110.0f)) || ((sp2C < -70.0f) && (sp2C > -110.0f))) { + sp2C = 70.0f; + } + Matrix_RotateY(gGfxMatrix, -arg0->unk_070, 1); + Matrix_RotateY(gGfxMatrix, (arg0->unk_114 + arg0->unk_0E8 + arg0->unk_134) * M_DTOR, 1); + Matrix_RotateX(gGfxMatrix, -((arg0->unk_120 + arg0->unk_0E4 + arg0->unk_4D8 + arg0->unk_134) * M_DTOR), 1); + Matrix_RotateZ(gGfxMatrix, M_DTOR * sp2C, 1); + } else { + Matrix_RotateY(gGfxMatrix, arg0->unk_114 * M_DTOR, 1); + Matrix_RotateX(gGfxMatrix, (arg0->unk_0E4 + arg0->unk_4D8 + arg0->unk_134) * M_DTOR, 1); + Matrix_RotateZ(gGfxMatrix, (arg0->unk_0EC + arg0->unk_0F0 + arg0->unk_134) * M_DTOR, 1); + Matrix_RotateY(gGfxMatrix, arg0->unk_0E8 * M_DTOR, 1); + Matrix_RotateZ(gGfxMatrix, (-arg0->unk_12C - arg0->unk_130) * M_DTOR, 1); + } + func_80054300(arg0); + Matrix_Pop(&gGfxMatrix); + } +} + +#ifdef NON_MATCHING +void func_80057248(void) { + s32 i; + Vec3f* var_s0; + f32 var_fs0; + + if (!(D_80177DB0 & 4)) { + RCP_SetupDL_40(); + for (i = 0, var_s0 = D_80177E98; i < ARRAY_COUNT(D_80177E98); i++, var_s0++) { + if (var_s0->z < 0.0f) { + var_fs0 = sqrtf(VEC3F_SQ(*var_s0)) * 0.0015f; + if (var_fs0 > 100.0f) { + var_fs0 = 100.0f; + } else if (var_fs0 < 1.0f) { + var_fs0 = 1.0f; + } + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, var_s0->x, var_s0->y, var_s0->z, 1); + Matrix_Scale(gGfxMatrix, var_fs0 * 0.25f, var_fs0 * 0.25f, 1.0f, 1); + if ((i == 0) && (D_80178234 == 0x12)) { + Matrix_Scale(gGfxMatrix, 2.0f, 2.0f, 1.0f, 1); + } + Matrix_Translate(gGfxMatrix, 0.0f, 150.0f, 0.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gDPSetTextureFilter(gMasterDisp++, G_TF_POINT); + if ((i == 0) && (D_80178234 == 0x12)) { + gSPDisplayList(gMasterDisp++, D_6004330); + } else { + gSPDisplayList(gMasterDisp++, D_800CA354[i]); + } + Matrix_Pop(&gGfxMatrix); + } + var_s0->x = var_s0->y = 0; + var_s0->z = 100.0f; + } + gDPSetTextureFilter(gMasterDisp++, G_TF_BILERP); + } +} +#else +void func_80057248(void); +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/fox_52730/func_80057248.s") +#endif + +#ifdef NON_MATCHING +void func_80057504(void) { + s32 i; + f32 var_fs0; + Vec3f* var_s0; + f32 tm; + + for (i = 0, var_s0 = D_80161578; i < D_801778A8; i++, var_s0++) { + if (var_s0->z < 0.f) { + tm = sqrtf(VEC3F_SQ(*var_s0)); + if (tm < 20000.0f) { + var_fs0 = tm * 0.0015f; + if (var_fs0 > 100.0f) { + var_fs0 = 100.0f; + } + if (var_fs0 < 1.2f) { + var_fs0 = 1.2f; + } + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, var_s0->x, var_s0->y, var_s0->z, 1); + if ((D_80177854 != 0x64) && (i == D_801778A0)) { + Math_SmoothStepToF(&D_801615A8[i], 0.0f, 0.5f, 20.0f, 0.0f); + Math_SmoothStepToF(&D_801615B8[i], 1.0, 0.5f, 0.2f, 0.0f); + } + var_fs0 *= D_801615B8[i]; + Matrix_Scale(gGfxMatrix, var_fs0 * 1.5f, var_fs0 * 1.5f, 1.0f, 1); + Matrix_RotateZ(gGfxMatrix, D_801615A8[i] * M_DTOR, 1); + Matrix_SetGfxMtx(&gMasterDisp); + RCP_SetupDL(&gMasterDisp, 0x43); + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 0, 0, 255); + gDPSetEnvColor(gMasterDisp++, 255, 0, 0, 255); + gSPDisplayList(gMasterDisp++, D_1024F60); + Matrix_Pop(&gGfxMatrix); + } + } + } + for (i = 0; i < D_801778A8; i++) { + D_80161578[i].x = D_80161578[i].y = 0; + D_80161578[i].z = 100.0f; + } +} +#else +void func_80057504(void); +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/fox_52730/func_80057504.s") +#endif + +void func_80057814(UnkStruct_D_80178280* arg0) { + Vec3f sp2C; + Vec3f sp20; + + sp20.x = arg0->unk_074; + sp20.y = arg0->unk_078; + sp20.z = arg0->unk_138; + sp2C.x = arg0->unk_460[0].x; + sp2C.y = arg0->unk_460[0].y; + sp2C.z = arg0->unk_460[0].z; + func_8005F0E8(&arg0->unk_460[0], &sp20); + arg0->unk_460[1].x = arg0->unk_460[0].x - sp2C.x; + arg0->unk_460[1].y = arg0->unk_460[0].y - sp2C.y; + arg0->unk_460[1].z = arg0->unk_460[0].z - sp2C.z; + arg0->unk_480 = &arg0->unk_460[1]; + arg0->unk_47C = &arg0->unk_460[0]; + arg0->unk_488 = arg0->unk_0C0.y; + arg0->unk_490 = arg0->unk_0F8; +} + +// Vec3f D_800CA39C = {0.0f, 0.0f, -300.0f}; +void func_800578C4(UnkStruct_D_80178280* arg0) { + Vec3f sp4C = { 0.0f, 0.0f, -300.0f }; + Vec3f sp40; + f32 sp3C; + f32 sp38; + + switch (D_800CA220) { + case 0: + Math_SmoothStepToAngle(&arg0->unk_49C.unk_30, 0.0f, 0.2f, 3.0f, 0.0f); + Math_SmoothStepToAngle(&arg0->unk_49C.unk_34, 0.0f, 0.2f, 3.0f, 0.0f); + D_801779D8.x = arg0->unk_040.x; + D_801779D8.y = arg0->unk_040.y; + D_801779D8.z = arg0->unk_040.z; + D_801779E8.x = arg0->unk_04C.x; + D_801779E8.y = arg0->unk_04C.y; + D_801779E8.z = arg0->unk_04C.z; + break; + case 1: + case 2: + case 3: + sp38 = Math_RadToDeg(arg0->unk_05C) + arg0->unk_0E4; + if (sp38 > 360.0f) { + sp38 -= 360.0f; + } + if (sp38 < 0.0f) { + sp38 += 360.0f; + } + sp3C = (Math_RadToDeg(arg0->unk_058) + 180.0f) - arg0->unk_0E8; + if (sp3C > 360.0f) { + sp3C -= 360.0f; + } + if (sp3C < 0.0f) { + sp3C += 360.0f; + } + sp3C = 360.0f - sp3C; + Math_SmoothStepToAngle(&arg0->unk_49C.unk_30, sp38, 0.2f, 6.0f, 0.0f); + Math_SmoothStepToAngle(&arg0->unk_49C.unk_34, sp3C, 0.2f, 6.0f, 0.0f); + Math_SmoothStepToF(&D_800CA380, gChangedInput->stick_y * 0.75f, 0.1f, 2.0f, 0.0f); + Math_SmoothStepToF(&D_800CA384, gChangedInput->stick_x * 3.0f, 0.1f, 5.0f, 0.0f); + Math_SmoothStepToF(&D_800CA388, D_800CA38C[D_800CA220], 0.1f, 10.0f, 0.0f); + sp4C.z = D_800CA388; + Matrix_RotateX(gCalcMatrix, (arg0->unk_0E8 + D_800CA380) * M_DTOR, 0); + Matrix_RotateY(gCalcMatrix, (arg0->unk_0E4 + D_800CA384) * M_DTOR, 1); + Matrix_MultVec3f(gCalcMatrix, &sp4C, &sp40); + D_801779D8.x = arg0->unk_074 + sp40.x; + D_801779D8.y = arg0->unk_078 + sp40.y + 20.0f; + D_801779D8.z = arg0->unk_138 + sp40.z; + D_801779E8.x = (__sinf(D_80177DB0 * 3.0f * M_DTOR) * 3.0f) + arg0->unk_074; + D_801779E8.y = (__cosf(D_80177DB0 * 4.0f * M_DTOR) * 3.0f) + arg0->unk_078; + D_801779E8.z = (__sinf(D_80177DB0 * 3.5f * M_DTOR) * 3.0f) + arg0->unk_138; + break; + } +} + +void func_80057D00(void) { + s32 i; + Vec3f sp78; + Vec3f sp6C; + Vec3f sp60; + s32 pad; + UnkStruct_D_80178280* var_s0; + UnkStruct_D_80178280* sp54 = &D_80178280[D_801778A0]; + + D_800CA228 = 0; + + if (D_80161A98 > 0x1FF) { + D_80161A98 = 0x1FF; + } + Matrix_Push(&gGfxMatrix); + if ((D_80178234 == 0xD) && (D_80178280->unk_1C8 == 3)) { + Math_SmoothStepToF(&D_800CA230, 0.01f, 0.2f, 0.002f, 0.0f); + } else { + Math_SmoothStepToF(&D_800CA230, 0.0f, 0.2f, 0.002f, 0.0f); + } + Matrix_RotateZ(gGfxMatrix, (f32) D_80177DB0 * 10.0f * 0.017453292f, 1); + Matrix_Scale(gGfxMatrix, 1.0f + D_800CA230, 1.0f - D_800CA230, 1.0f, 1); + Matrix_RotateZ(gGfxMatrix, -(f32) D_80177DB0 * 10.0f * 0.017453292f, 1); + Matrix_Scale(gGfxMatrix, 1.0f + D_800CA230, 1.0f - D_800CA230, 1.0f, 1); + Matrix_Push(&gGfxMatrix); + func_800B73E0(sp54); + Lights_SetOneLight(&gMasterDisp, D_801784DC, D_801784E0, D_801784E4, D_80178548, D_8017854C, D_80178550, D_80178554, + D_80178558, D_8017855C); + if (D_80177880 == 0) { + Matrix_RotateY(gCalcMatrix, sp54->unk_114 * 0.017453292f, 0); + Matrix_RotateX(gCalcMatrix, sp54->unk_120 * 0.017453292f, 1); + sp78.x = sp54->unk_040.x - sp54->unk_074; + sp78.y = sp54->unk_040.y - sp54->unk_078; + sp78.z = sp54->unk_040.z - (sp54->unk_138 + sp54->unk_144); + Matrix_MultVec3f(gCalcMatrix, &sp78, &D_801779D8); + D_801779D8.x += sp54->unk_074; + D_801779D8.y += sp54->unk_078; + D_801779D8.z += sp54->unk_138 + sp54->unk_144; + sp78.x = sp54->unk_04C.x - sp54->unk_074; + sp78.y = sp54->unk_04C.y - sp54->unk_078; + sp78.z = sp54->unk_04C.z - (sp54->unk_138 + sp54->unk_144); + Matrix_MultVec3f(gCalcMatrix, &sp78, &D_801779E8); + D_801779E8.x += sp54->unk_074; + D_801779E8.y += sp54->unk_078; + D_801779E8.z += sp54->unk_138 + sp54->unk_144; + if ((sp54->unk_238 != 0) && (sp54->unk_110 > 5.0f)) { + D_801779E8.x += __sinf((f32) D_80177DB0 * 150.0f * 0.017453292f) * sp54->unk_110 * 0.2f; + } + } else if (sp54->unk_1C8 == 7) { + func_800578C4(sp54); + } else { + D_801779D8.x = sp54->unk_040.x; + D_801779D8.y = sp54->unk_040.y; + D_801779D8.z = sp54->unk_040.z; + D_801779E8.x = sp54->unk_04C.x; + D_801779E8.y = sp54->unk_04C.y; + D_801779E8.z = sp54->unk_04C.z; + } + sp54->unk_058 = -Math_Atan2F(D_801779D8.x - D_801779E8.x, D_801779D8.z - D_801779E8.z); + sp54->unk_05C = -Math_Atan2F(D_801779D8.y - D_801779E8.y, + sqrtf(SQ(D_801779D8.z - D_801779E8.z) + SQ(D_801779D8.x - D_801779E8.x))); + Matrix_RotateY(gCalcMatrix, -sp54->unk_058, 0); + Matrix_RotateX(gCalcMatrix, sp54->unk_05C, 1); + Matrix_RotateZ(gCalcMatrix, -sp54->unk_034 * 0.017453292f, 1); + sp78.x = 0.0f; + sp78.y = 100.0f; + sp78.z = 0.0f; + Matrix_MultVec3f(gCalcMatrix, &sp78, &sp6C); + if (D_80178410 != 0) { + D_80178428 = (D_80178280->unk_034 / 180.0f) * M_PI; + func_800B6F50(D_801779D8.x, D_801779D8.y, D_801779D8.z, D_801779E8.x, D_801779E8.y, D_801779E8.z); + func_8003DAF0(); + } + func_8003E1E8(); + func_80040450(); + Matrix_Push(&gGfxMatrix); + Matrix_LookAt(gGfxMatrix, D_801779D8.x, D_801779D8.y, D_801779D8.z, D_801779E8.x, D_801779E8.y, D_801779E8.z, + sp6C.x, sp6C.y, sp6C.z, 1); + if ((D_80177C98 == 0) || (D_80178234 == 0x11)) { + if ((D_80178234 == 0xC) && ((D_80178280->unk_1C8 != 2) || (D_80178280->unk_19C != 0))) { + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, 0.0f, D_8017847C, 0.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + func_E6A810_801B58AC(&gMasterDisp, D_80177CC8); + D_80177CC8 = 0.0f; + Matrix_Pop(&gGfxMatrix); + } else if (D_80161A88 != 2) { + D_8015F964 = 0; + func_80040CE4(); + } + } + Lights_SetOneLight(&gMasterDisp, D_80178504, D_80178508, D_8017850C, D_80178564, D_80178568, D_8017856C, D_80178554, + D_80178558, D_8017855C); + for (i = 0, var_s0 = D_80178280; i < D_801778A8; i++, var_s0++) { + sp60.x = var_s0->unk_074; + sp60.y = var_s0->unk_078; + sp60.z = var_s0->unk_138; + func_8005F670(&sp60); + func_800564C0(var_s0, 0); + func_80057814(var_s0); + } + if ((D_80161A88 == 2) && (D_80178280->unk_1C8 != 2)) { + Lights_SetOneLight(&gMasterDisp, D_80178504, -1 * D_80178508, D_8017850C, D_80178564, D_80178568, D_8017856C, + D_80178554, D_80178558, D_8017855C); + Matrix_Push(&gGfxMatrix); + Matrix_Scale(gGfxMatrix, 1.0f, -1.0f, 1.0f, 1); + for (i = 0, var_s0 = D_80178280; i < D_801778A8; i++, var_s0++) { + sp60.x = var_s0->unk_074; + sp60.y = var_s0->unk_078; + sp60.z = var_s0->unk_138; + func_800564C0(var_s0, 1); + } + Matrix_Pop(&gGfxMatrix); + } + Lights_SetOneLight(&gMasterDisp, D_801784DC, D_801784E0, D_801784E4, D_80178548, D_8017854C, D_80178550, D_80178554, + D_80178558, D_8017855C); + func_80060714(1); + func_80060968(); + D_80161410 = 1; + func_8003DA0C(); + if ((D_80161A88 == 2) && (D_80178280->unk_1C8 != 2)) { + Matrix_Push(&gGfxMatrix); + Matrix_Scale(gGfxMatrix, 1.0f, -1.0f, 1.0f, 1); + D_80161410 = -1; + func_8003DA0C(); + Matrix_Pop(&gGfxMatrix); + } + D_80161410 = -1; + if ((D_80161A88 == 2) && (D_80178280->unk_1C8 != 2)) { + Matrix_Push(&gGfxMatrix); + Matrix_Scale(gGfxMatrix, 1.0f, -1.0f, 1.0f, 1); + for (i = 0, var_s0 = D_80178280; i < D_801778A8; i++, var_s0++) { + if (D_800CA224[i] != 0) { + func_80055B58(var_s0); + func_80056230(var_s0); + } + Matrix_Pop(&gGfxMatrix); + } + } + if (D_80178234 == 0xD) { + func_8006089C(0); + } + if ((D_80161A88 == 2) || (D_80177AC8 != 0)) { + D_8015F964 = 1; + func_8006089C(1); + func_80040CE4(); + } + if ((D_80178234 != 0xD) && + (((D_80178234 != 0) && (D_80178234 != 9)) || ((D_80178280->unk_1C8 != 7) && (D_80178280->unk_1C8 != 2)))) { + func_8006089C(0); + } + D_80161410 = 1; + for (i = 0, var_s0 = D_80178280; i < D_801778A8; i++, var_s0++) { + if (D_800CA224[i] != 0) { + func_80056E2C(var_s0); + func_80055B58(var_s0); + func_80056230(var_s0); + } + } + if ((D_80178234 == 0xD) && (D_80178280->unk_1C8 == 3)) { + func_E16C50_801AA20C(); + } + if (((D_80178234 == 0) || (D_80178234 == 9)) && ((D_80178280->unk_1C8 == 7) || (D_80178280->unk_1C8 == 2))) { + func_8006089C(0); + } + func_80077790(); + Matrix_Pop(&gGfxMatrix); + func_80057248(); + func_80057504(); + if (D_800CA228 != 0) { + func_80053B18(); + } + for (i = 0, var_s0 = D_80178280; i < D_801778A8; i++, var_s0++) { + if (D_800CA224[i] != 0) { + if (D_800D2860[i] != 0) { + func_80053F7C(var_s0); + } + if (var_s0->unk_1CC == 1) { + func_80052B80(var_s0); + } else if (var_s0->unk_1CC == 3) { + func_80052584(var_s0); + } + } + } + if ((D_80177880 == 2) && (D_80178280->unk_1C8 == 3)) { + func_E9F1D0_801A6164(D_80178280); + } + func_80040954(); + if ((D_801778A8 != 1) && ((sp54->unk_1C8 == 3) || (sp54->unk_1C8 == 5))) { + func_8008FA84(); + func_8008CA44(); + } + Matrix_Pop(&gGfxMatrix); + func_80051B30(); + D_800CA224[D_801778A0] = 0; + Matrix_Pop(&gGfxMatrix); +} diff --git a/src/main/fox_A24B0.c b/src/main/fox_A24B0.c index 22bdff30..ff5876b5 100644 --- a/src/main/fox_A24B0.c +++ b/src/main/fox_A24B0.c @@ -372,7 +372,7 @@ void func_800A26C0(void) { for (i = 0; i < 30; i++) { D_800D3180[i] = 0; } - D_801779F8 = 0; + gExpertMode = false; D_80177C74 = gSaveFile.save.data.unk_14; switch (D_80177C74) { case 0: diff --git a/src/main/fox_display.c b/src/main/fox_display.c index 8761a601..74c3e036 100644 --- a/src/main/fox_display.c +++ b/src/main/fox_display.c @@ -283,46 +283,44 @@ void Animation_FindBoundingBox(Gfx* dList, s32 len, Vec3f* min, Vec3f* max, s32* Vtx** vtxList) { s64* sp44 = SEGMENTED_TO_VIRTUAL(dList); s64* var_s0; - u32 temp_v1; for (var_s0 = sp44; (s32) (*var_s0 >> 0x38) != G_ENDDL && var_s0 - sp44 < len; var_s0++) { - temp_v1 = (*var_s0 >> 0x38); - if (temp_v1 != G_TRI1) { - if (temp_v1 != G_VTX) { - if (temp_v1 == G_DL) { - Animation_FindBoundingBox(*var_s0 & 0xFFFFFFFF, (*var_s0 >> 0x20) & 0xFFFF, min, max, vtxFound, - vtxCount, vtxList); - } - } else { + switch ((s32) (*var_s0 >> 0x38)) { + case G_DL: + Animation_FindBoundingBox((Gfx*) (*var_s0 & 0xFFFFFFFF), (*var_s0 >> 0x20) & 0xFFFF, min, max, vtxFound, + vtxCount, vtxList); + break; + case G_VTX: *vtxList = SEGMENTED_TO_VIRTUAL(*var_s0 & 0xFFFFFFFF); *vtxCount = (*var_s0 >> 0x30) & 0xF; - } - } else { - if (!*vtxFound) { - *vtxFound = 1; - max->x = min->x = (*vtxList)[*var_s0 & 0xFF].v.ob[0]; - max->y = min->y = (*vtxList)[*var_s0 & 0xFF].v.ob[1]; - max->z = min->z = (*vtxList)[*var_s0 & 0xFF].v.ob[2]; - } else { - min->x = MIN(min->x, (*vtxList)[*var_s0 & 0xFF].v.ob[0]); - min->y = MIN(min->y, (*vtxList)[*var_s0 & 0xFF].v.ob[1]); - min->z = MIN(min->z, (*vtxList)[*var_s0 & 0xFF].v.ob[2]); - max->x = MAX(max->x, (*vtxList)[*var_s0 & 0xFF].v.ob[0]); - max->y = MAX(max->y, (*vtxList)[*var_s0 & 0xFF].v.ob[1]); - max->z = MAX(max->z, (*vtxList)[*var_s0 & 0xFF].v.ob[2]); - } - min->x = MIN(min->x, (*vtxList)[(*var_s0 >> 8) & 0xFF].v.ob[0]); - min->y = MIN(min->y, (*vtxList)[(*var_s0 >> 8) & 0xFF].v.ob[1]); - min->z = MIN(min->z, (*vtxList)[(*var_s0 >> 8) & 0xFF].v.ob[2]); - max->x = MAX(max->x, (*vtxList)[(*var_s0 >> 8) & 0xFF].v.ob[0]); - max->y = MAX(max->y, (*vtxList)[(*var_s0 >> 8) & 0xFF].v.ob[1]); - max->z = MAX(max->z, (*vtxList)[(*var_s0 >> 8) & 0xFF].v.ob[2]); - min->x = MIN(min->x, (*vtxList)[(*var_s0 >> 0x10) & 0xFF].v.ob[0]); - min->y = MIN(min->y, (*vtxList)[(*var_s0 >> 0x10) & 0xFF].v.ob[1]); - min->z = MIN(min->z, (*vtxList)[(*var_s0 >> 0x10) & 0xFF].v.ob[2]); - max->x = MAX(max->x, (*vtxList)[(*var_s0 >> 0x10) & 0xFF].v.ob[0]); - max->y = MAX(max->y, (*vtxList)[(*var_s0 >> 0x10) & 0xFF].v.ob[1]); - max->z = MAX(max->z, (*vtxList)[(*var_s0 >> 0x10) & 0xFF].v.ob[2]); + break; + case G_TRI1: + if (!*vtxFound) { + *vtxFound = 1; + max->x = min->x = (*vtxList)[*var_s0 & 0xFF].v.ob[0]; + max->y = min->y = (*vtxList)[*var_s0 & 0xFF].v.ob[1]; + max->z = min->z = (*vtxList)[*var_s0 & 0xFF].v.ob[2]; + } else { + min->x = MIN(min->x, (*vtxList)[*var_s0 & 0xFF].v.ob[0]); + min->y = MIN(min->y, (*vtxList)[*var_s0 & 0xFF].v.ob[1]); + min->z = MIN(min->z, (*vtxList)[*var_s0 & 0xFF].v.ob[2]); + max->x = MAX(max->x, (*vtxList)[*var_s0 & 0xFF].v.ob[0]); + max->y = MAX(max->y, (*vtxList)[*var_s0 & 0xFF].v.ob[1]); + max->z = MAX(max->z, (*vtxList)[*var_s0 & 0xFF].v.ob[2]); + } + min->x = MIN(min->x, (*vtxList)[(*var_s0 >> 8) & 0xFF].v.ob[0]); + min->y = MIN(min->y, (*vtxList)[(*var_s0 >> 8) & 0xFF].v.ob[1]); + min->z = MIN(min->z, (*vtxList)[(*var_s0 >> 8) & 0xFF].v.ob[2]); + max->x = MAX(max->x, (*vtxList)[(*var_s0 >> 8) & 0xFF].v.ob[0]); + max->y = MAX(max->y, (*vtxList)[(*var_s0 >> 8) & 0xFF].v.ob[1]); + max->z = MAX(max->z, (*vtxList)[(*var_s0 >> 8) & 0xFF].v.ob[2]); + min->x = MIN(min->x, (*vtxList)[(*var_s0 >> 0x10) & 0xFF].v.ob[0]); + min->y = MIN(min->y, (*vtxList)[(*var_s0 >> 0x10) & 0xFF].v.ob[1]); + min->z = MIN(min->z, (*vtxList)[(*var_s0 >> 0x10) & 0xFF].v.ob[2]); + max->x = MAX(max->x, (*vtxList)[(*var_s0 >> 0x10) & 0xFF].v.ob[0]); + max->y = MAX(max->y, (*vtxList)[(*var_s0 >> 0x10) & 0xFF].v.ob[1]); + max->z = MAX(max->z, (*vtxList)[(*var_s0 >> 0x10) & 0xFF].v.ob[2]); + break; } } } diff --git a/src/main/fox_edata.c b/src/main/fox_edata.c index c8963575..a0af4e03 100644 --- a/src/main/fox_edata.c +++ b/src/main/fox_edata.c @@ -1,5 +1,9 @@ #include "global.h" +#include "fox_edata_1C.c" + +f32* D_800CF964[] = { NULL }; + void func_800594F0(Object_80* arg0) { RCP_SetupDL_57(D_80178320, D_80178328, D_80178330, D_80178338, D_801783D8, D_801783DC); Matrix_RotateY(gGfxMatrix, M_PI, 1); diff --git a/src/main/fox_edata_1C.c b/src/main/fox_edata_1C.c new file mode 100644 index 00000000..6298db84 --- /dev/null +++ b/src/main/fox_edata_1C.c @@ -0,0 +1,729 @@ +#include "global.h" + +// these are overlay functions. They will need to be replaced with their proper overlay names +void func_80187530(Object*); +void func_8018753C(Object*); +void func_8018756C(Object*); +void func_801875A4(Object*); +void func_80187650(Object*); +void func_801877C4(Object*); +void func_80187944(Object*); +void func_8018795C(Object*); +void func_801880E4(Object*); +void func_80188344(Object*); +void func_80188448(Object*); +void func_80188528(Object*); +void func_80188660(Object*); +void func_801887D0(Object*); +void func_80188AD0(Object*); +void func_80188CAC(Object*); +void func_80188F60(Object*); +void func_80188FA8(Object*); +void func_80188FAC(Object*); +void func_80188FE4(Object*); +void func_80189058(Object*); +void func_80189114(Object*); +void func_80189194(Object*); +void func_8018933C(Object*); +void func_801893B8(Object*); +void func_80189470(Object*); +void func_801895B8(Object*); +void func_80189724(Object*); +void func_8018978C(Object*); +void func_80189AFC(Object*); +void func_80189B70(Object*); +void func_80189CC8(Object*); +void func_8018A1C0(Object*); +void func_8018A544(Object*); +void func_8018AA74(Object*); +void func_8018AABC(Object*); +void func_8018AB44(Object*); +void func_8018AED0(Object*); +void func_8018B15C(Object*); +void func_8018B268(Object*); +void func_8018B418(Object*); +void func_8018B58C(Object*); +void func_8018B6AC(Object*); +void func_8018B8C0(Object*); +void func_8018B9D0(Object*); +void func_8018BAAC(Object*); +void func_8018BACC(Object*); +void func_8018BBA4(Object*); +void func_8018BBF8(Object*); +void func_8018BD7C(Object*); +void func_8018BE84(Object*); +void func_8018C19C(Object*); +void func_8018C54C(Object*); +void func_8018C8A8(Object*); +void func_8018CAD4(Object*); +void func_8018CF98(Object*); +void func_8018D9EC(Object*); +void func_8018DA6C(Object*); +void func_8018DAEC(Object*); +void func_8018DB6C(Object*); +void func_8018DBEC(Object*); +void func_8018DBF0(Object*); +void func_8018DCE4(Object*); +void func_8018DDAC(Object*); +void func_8018DE14(Object*); +void func_8018E290(Object*); +void func_8018E2D8(Object*); +void func_8018E54C(Object*); +void func_8018E5B4(Object*); +void func_8018E5F8(Object*); +void func_8018E76C(Object*); +void func_8018ECAC(Object*); +void func_8018ED78(Object*); +void func_8018EE84(Object*); +void func_8018EF14(Object*); +void func_8018EF90(Object*); +void func_8018F038(Object*); +void func_8018F044(Object*); +void func_8018F31C(Object*); +void func_8018F330(Object*); +void func_8018F4D8(Object*); +void func_8018F884(Object*); +void func_8018F8B8(Object*); +void func_8018FE38(Object*); +void func_8018FF20(Object*); +void func_8018FF84(Object*); +void func_80190020(Object*); +void func_80190078(Object*); +void func_80190430(Object*); +void func_801904CC(Object*); +void func_80190A00(Object*); +void func_80190F08(Object*); +void func_80191010(Object*); +void func_80191054(Object*); +void func_80191180(Object*); +void func_801912FC(Object*); +void func_801914C4(Object*); +void func_80191680(Object*); +void func_80191AFC(Object*); +void func_80191B4C(Object*); +void func_80191BC4(Object*); +void func_80191DB0(Object*); +void func_80191FFC(Object*); +void func_80192094(Object*); +void func_801922DC(Object*); +void func_80192358(Object*); +void func_801923C0(Object*); +void func_8019243C(Object*); +void func_801924A8(Object*); +void func_80192518(Object*); +void func_80192834(Object*); +void func_801928C8(Object*); +void func_80192984(Object*); +void func_80192A68(Object*); +void func_80192C18(Object*); +void func_80192CD4(Object*); +void func_80192E2C(Object*); +void func_80192E64(Object*); +void func_80192E94(Object*); +void func_80192EB0(Object*); +void func_80193240(Object*); +void func_80193244(Object*); +void func_80193380(Object*); +void func_801933DC(Object*); +void func_80193434(Object*); +void func_801934D0(Object*); +void func_8019350C(Object*); +void func_80193540(Object*); +void func_8019356C(Object*); +void func_801935D4(Object*); +void func_80193718(Object*); +void func_80193B1C(Object*); +void func_80194398(Object*); +void func_801946C4(Object*); +void func_801949DC(Object*); +void func_80194A84(Object*); +void func_80196210(Object*); +void func_80196288(Object*); +void func_801968F4(Object*); +void func_80197A94(Object*); +void func_80197C64(Object*); +void func_80197CB8(Object*); +void func_801982A8(Object*); +void func_801985E4(Object*); +void func_80198968(Object*); +void func_8019969C(Object*); +void func_8019983C(Object*); +void func_80199A28(Object*); +void func_80199E24(Object*); +void func_80199F10(Object*); +void func_8019A1FC(Object*); +void func_8019A5D4(Object*); +void func_8019ACCC(Object*); +void func_8019B548(Object*); +void func_8019B7DC(Object*); +void func_8019B854(Object*); +void func_8019BDE0(Object*); +void func_8019BE48(Object*); +void func_8019C1CC(Object*); +void func_8019C454(Object*); +void func_8019C778(Object*); +void func_8019C83C(Object*); +void func_8019C888(Object*); +void func_8019CBEC(Object*); +void func_8019CE58(Object*); +void func_8019CE88(Object*); +void func_8019D15C(Object*); +void func_8019D3C4(Object*); +void func_8019D700(Object*); +void func_8019E234(Object*); +void func_8019E2C4(Object*); +void func_8019E3A8(Object*); +void func_8019E410(Object*); +void func_8019E454(Object*); +void func_8019E98C(Object*); +void func_8019EA60(Object*); +void func_8019EA7C(Object*); +void func_8019EE68(Object*); +void func_8019F20C(Object*); +void func_8019F7AC(Object*); +void func_8019FF9C(Object*); +void func_801A003C(Object*); +void func_801A0120(Object*); +void func_801A0AF0(Object*); +void func_801A0BD8(Object*); +void func_801A12C4(Object*); +void func_801A23AC(Object*); +void func_801A2A78(Object*); +void func_801A2B24(Object*); +void func_801A2DD8(Object*); +void func_801A3240(Object*); +void func_801A3BD4(Object*); +void func_801A3E98(Object*); +void func_801A43BC(Object*); +void func_801A46A0(Object*); +void func_801A4A64(Object*); +void func_801A4B24(Object*); +void func_801A4CB0(Object*); +void func_801A4E44(Object*); +void func_801A52B8(Object*); +void func_801A54E8(Object*); +void func_801A57D0(Object*); +void func_801A5AF0(Object*); +void func_801A5B3C(Object*); +void func_801A5B4C(Object*); +void func_801A5D68(Object*); +void func_801A5E54(Object*); +void func_801A5F90(Object*); +void func_801A5FD0(Object*); +void func_801A6100(Object*); +void func_801A6144(Object*); +void func_801A6540(Object*); +void func_801A6608(Object*); +void func_801A67C8(Object*); +void func_801A68EC(Object*); +void func_801A71B8(Object*); +void func_801A7E7C(Object*); +void func_801AC294(Object*); +void func_801AC438(Object*); +void func_801AC918(Object*); +void func_801AD6C0(Object*); +void func_801AD6F0(Object*); +void func_801ADAC8(Object*); +void func_801ADD68(Object*); +void func_801AE168(Object*); +void func_801AE2C0(Object*); +void func_801AE3D8(Object*); +void func_801AE87C(Object*); +void func_801AEAA0(Object*); +void func_801AEB44(Object*); +void func_801AEC04(Object*); +void func_801AEEFC(Object*); +void func_801AFA5C(Object*); +void func_801B099C(Object*); +void func_801B0B60(Object*); +void func_801B0EC0(Object*); +void func_801B134C(Object*); +void func_801B4D84(Object*); +void func_801B504C(Object*); +void func_801B50E8(Object*); +void func_801B619C(Object*); +void func_801B638C(Object*); +void func_801B6FF8(Object*); +void func_801B7A24(Object*); +void func_801B7C78(Object*); +void func_801B90DC(Object*); +void func_801B91A4(Object*); +void func_801BA108(Object*); +void func_801BA26C(Object*); +void func_801BA4E4(Object*); +void func_801BA6A4(Object*); +void func_801BAD7C(Object*); +void func_801BADF8(Object*); +void func_801BB204(Object*); +void func_801BB79C(Object*); +void func_801BC930(Object*); +void func_801BC9A0(Object*); +void func_801BD264(Object*); +void func_801BD54C(Object*); +void func_801BDE6C(Object*); +void func_801BE1FC(Object*); +void func_801BE3F8(Object*); +void func_801BEB1C(Object*); +void func_801BEC50(Object*); +void func_801BEC5C(Object*); +void func_801BEC68(Object*); +void func_801BEC74(Object*); + +f32 D_800CBE70[] = { + 1.0f, 0.0f, 50.0f, 0.0f, 25.0f, 0.0f, 25.0f, +}; +f32 D_800CBE8C[] = { + 1.0f, 0.0f, 50.0f, 0.0f, 50.0f, 0.0f, 50.0f, +}; +f32 D_800CBEA8[] = { + 1.0f, 0.0f, 75.0f, 0.0f, 75.0f, 0.0f, 75.0f, +}; +f32 D_800CBEC4[] = { + 1.0f, 0.0f, 100.0f, 0.0f, 100.0f, 0.0f, 100.0f, 1.0f, 0.0f, 150.0f, 0.0f, + 150.0f, 0.0f, 150.0f, 1.0f, 0.0f, 200.0f, 0.0f, 200.0f, 0.0f, 200.0f, +}; +f32 D_800CBF18[] = { + 1.0f, -113.0f, 61.0f, 98.0f, 100.0f, 0.0f, 219.0f, +}; +f32 D_800CBF34[] = { + 0.0f, +}; +f32 D_800CBF38[] = { + 1.0f, -40.0f, 40.0f, 0.0f, 180.0f, 0.0f, 180.0f, +}; +f32 D_800CBF54[] = { + 1.0f, 0.0f, 120.0f, 0.0f, 120.0f, 0.0f, 120.0f, +}; +f32 D_800CBF70[] = { + 1.0f, -40.0f, 100.0f, 0.0f, 100.0f, 0.0f, 100.0f, +}; +f32 D_800CBF8C[] = { + 1.0f, 0.0f, 100.0f, 0.0f, 1200.0f, 0.0f, 1200.0f, +}; +f32 D_800CBFA8[] = { + 1.0f, 0.0f, 120.0f, 0.0f, 120.0f, 0.0f, 120.0f, 0.0f, +}; +f32 D_800CBFC8[] = { + 1.0f, 0.0f, 120.0f, 0.0f, 120.0f, 0.0f, 120.0f, +}; +f32 D_800CBFE4[] = { + 1.0f, 0.0f, 40.0f, 0.0f, 40.0f, 0.0f, 40.0f, +}; +f32 D_800CC000[] = { + 1.0f, 0.0f, 50.0f, 0.0f, 50.0f, 0.0f, 50.0f, +}; +f32 D_800CC01C[] = { + 1.0f, 0.0f, 40.0f, 0.0f, 40.0f, 0.0f, 40.0f, +}; +f32 D_800CC038[] = { + 1.0f, 0.0f, 40.0f, 0.0f, 40.0f, 0.0f, 40.0f, 1.0f, 0.0f, 140.0f, 0.0f, 170.0f, + 0.0f, 140.0f, 4.0f, 0.0f, 140.0f, -675.0f, 140.0f, 0.0f, 810.0f, 0.0f, 140.0f, 675.0f, + 140.0f, 0.0f, 810.0f, 0.0f, 140.0f, 0.0f, 810.0f, 675.0f, 140.0f, 0.0f, 140.0f, 0.0f, + 810.0f, -675.0f, 140.0f, 1.0f, 0.0f, 140.0f, 0.0f, 140.0f, 0.0f, 1800.0f, 2.0f, 0.0f, + 140.0f, 0.0f, 140.0f, 0.0f, 1800.0f, 1.0f, 141.0f, 1.0f, 1800.0f, 1.0f, 140.0f, +}; + +// clang-format off +ObjectStruct_1C D_800CC124[0x190] = { + { D_6015F00, 0, NULL, D_603E3E0, 800.0f, 0, 0, 39, 0, 0.0f, 0 }, + { D_602E9E0, 0, NULL, D_800CBF34, 2000.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_601BEC0, 0, NULL, D_800CBF34, 3000.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_602E7A0, 0, NULL, D_800CBF34, 3000.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_60244A0, 0, NULL, D_800CBF34, 3000.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_602E570, 0, NULL, D_800CBF34, 3000.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_60132B0, 0, NULL, D_603DCA4, 2500.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_602E080, 0, NULL, D_603DD40, 2500.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_60164F0, 0, NULL, D_800CBF34, 2500.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_6014500, 0, NULL, D_800CBF34, 2500.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_602D5F0, 0, NULL, D_603DDF0, 200.0f, 0, 0, 39, 0, 0.0f, 0 }, + { D_601A7D0, 0, NULL, D_603DE8C, 200.0f, 0, 0, 39, 0, 0.0f, 0 }, + { D_6014B50, 0, NULL, D_603DEF4, 500.0f, 0, 0, 39, 0, 0.0f, 0 }, + { D_6016580, 0, NULL, D_603DF8C, 200.0f, 0, 0, 39, 0, 0.0f, 0 }, + { D_601B560, 0, func_80066EA8, D_603DFDC, 200.0f, 0, 0, 39, 0, 0.0f, 0 }, + { D_60361F0, 0, func_80066EA8, D_603E014, 200.0f, 0, 0, 39, 0, 0.0f, 0 }, + { D_6018E80, 0, func_80066EA8, D_603E030, 200.0f, 0, 0, 39, 0, 0.0f, 0 }, + { D_6035F10, 0, func_80066EA8, D_603E09C, 200.0f, 0, 0, 39, 0, 0.0f, 0 }, + { func_8018753C, 1, func_80187530, D_603E98C, 200.0f, 0, 0, 39, 0, 0.0f, 0 }, + { D_60153B0, 0, NULL, D_603E118, 100.0f, 0, 0, 39, 0, 0.0f, 0 }, + { D_601F5A0, 0, NULL, D_603E14C, 500.0f, 0, 0, 39, 0, 0.0f, 0 }, + { D_60137B0, 0, NULL, D_603E1B4, 400.0f, 0, 0, 39, 0, 0.0f, 0 }, + { D_6006A80, 0, NULL, D_603E21C, 400.0f, 0, 0, 39, 0, 0.0f, 0 }, + { D_6016270, 0, NULL, D_603E4A0, 200.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_6010E00, 0, NULL, D_603E9EC, 2500.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_6014670, 0, NULL, D_603EA08, 2500.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_6010A50, 0, NULL, D_603EA74, 2500.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_60143E0, 0, NULL, D_603EAE0, 2500.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_6014A20, 0, NULL, D_603EB0C, 2500.0f, 0, 0, 40, 0, 0.0f, 0 }, + { func_80059B20, 1, func_800652CC, D_60064FC, 100.0f, 0, 0, 40, 0, 0.0f, 0 }, + { func_80059B20, 1, func_800652CC, D_6006518, 100.0f, 0, 0, 40, 0, 0.0f, 0 }, + { func_80059B20, 1, func_800652CC, D_6006564, 100.0f, 0, 0, 40, 0, 0.0f, 0 }, + { func_80059B20, 1, func_800652CC, D_60065B0, 100.0f, 0, 0, 40, 0, 0.0f, 0 }, + { func_80059B20, 1, func_800652CC, D_60065FC, 100.0f, 0, 0, 40, 0, 0.0f, 0 }, + { func_80059B20, 1, func_800652CC, D_6006648, 100.0f, 0, 0, 40, 0, 0.0f, 0 }, + { func_80059B20, 1, func_800652CC, D_6006694, 100.0f, 0, 0, 40, 0, 0.0f, 0 }, + { func_80059B20, 1, func_800652CC, D_60066E0_f32, 100.0f, 0, 0, 40, 0, 0.0f, 0 }, + { func_80059B20, 1, func_800652CC, D_600672C, 100.0f, 0, 0, 40, 0, 0.0f, 0 }, + { func_80059B20, 1, func_800652CC, D_6006778, 100.0f, 0, 0, 40, 0, 0.0f, 0 }, + { func_80059AEC, 1, func_8006D350, D_800CBF34, 6000.0f, 0, 0, 40, 0, 0.0f, 0 }, + { func_80059F68, 1, func_80066D5C, D_603E4A4, 1000.0f, 0, 0, 40, 0, 0.0f, 0 }, + { func_80059FDC, 1, func_80066EA8, D_603E4DC, 300.0f, 0, 0, 40, 0, 0.0f, 0 }, + { func_80059BBC, 1, func_8006B95C, D_603E514, 1000.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_6024AC0, 0, NULL, D_602B9EC, 200.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_600F560, 0, NULL, D_602BA20, 1500.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_600EC90, 0, NULL, D_602BAE4, 1500.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_600E820, 0, NULL, D_602BBD8, 1500.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_601FCB0, 0, NULL, D_602BC54, 500.0f, 0, 0, 40, 0, 0.0f, 0 }, + { func_800594F0, 1, NULL, D_601B4E0, 2500.0f, 0, 0, 40, 0, 0.0f, 0 }, + { func_800595D0, 1, NULL, D_601B4FC, 2500.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_6007410, 0, NULL, D_601B518, 2500.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_6006F50, 0, NULL, D_601B584, 2500.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_6005780, 0, func_80193540, D_601B5F4, 2500.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_6003610, 0, NULL, D_601B644, 2500.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_6000E00, 0, func_8006AA98, D_603E0EC, 1000.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_6013B50, 0, NULL, D_603E88C, 1000.0f, 0, 0, 41, 0, 0.0f, 0 }, + { func_8018F31C, 2, func_8018F044, D_603E8A8, 1000.0f, 0, 0, 39, 0, 0.0f, 0 }, + { func_8018F8B8, 1, func_8018F4D8, D_6006BF0, 800.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_700BE00, 0, NULL, D_6006C44, 2000.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_6024010, 0, NULL, D_603626C, 300.0f, 0, 0, 5, 0, 0.0f, 0 }, + { D_6027180, 0, NULL, D_6036288, 400.0f, 0, 0, 5, 0, 0.0f, 0 }, + { func_801A2A78, 1, NULL, D_60362A4, 200.0f, 0, 0, 5, 0, 0.0f, 0 }, + { D_60270E0, 0, NULL, D_800CBF34, 1500.0f, 0, 0, 0, 0, 0.0f, 0 }, + { D_6013960, 0, NULL, D_6036894, 500.0f, 0, 0, 5, 0, 0.0f, 0 }, + { D_600AF40, 0, NULL, D_60368E0, 100.0f, 0, 0, 40, 0, 0.0f, 0 }, + { func_801A6608, 1, NULL, D_6036724, 400.0f, 0, 0, 0, 0, 0.0f, 0 }, + { D_601F1D0, 0, NULL, D_60362D8, 2500.0f, 0, 0, 5, 0, 0.0f, 0 }, + { D_60238F0, 0, NULL, D_6036328, 2000.0f, 0, 0, 5, 0, 0.0f, 0 }, + { D_601B7C0, 0, NULL, D_60362F4, 2500.0f, 0, 0, 5, 0, 0.0f, 0 }, + { D_6030500, 0, NULL, D_6036370, 500.0f, 0, 0, 0, 0, 0.0f, 0 }, + { D_602DAE0, 0, NULL, D_603638C, 1900.0f, 0, 0, 0, 0, 0.0f, 0 }, + { D_6027900, 0, NULL, D_60363B8, 1900.0f, 0, 0, 0, 0, 0.0f, 0 }, + { D_602DB80, 0, NULL, D_60363E4, 1100.0f, 0, 0, 0, 0, 0.0f, 0 }, + { D_6030630, 0, NULL, D_6036410, 1100.0f, 0, 0, 0, 0, 0.0f, 0 }, + { D_602DC20, 0, NULL, D_603643C, 1000.0f, 0, 0, 0, 0, 0.0f, 0 }, + { D_601B0D0, 0, NULL, D_6036760, 3000.0f, 0, 0, 0, 0, 0.0f, 0 }, + { D_60075D0, 0, NULL, D_800CBF34, 1000.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_801A2B24, 1, NULL, D_6036344, 200.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_801A2B24, 1, NULL, D_800CBF34, 200.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_801A2B24, 1, NULL, D_800CBF34, 200.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_801A2B24, 1, NULL, D_800CBF34, 200.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_801A2B24, 1, NULL, D_800CBF34, 200.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_801A2B24, 1, NULL, D_800CBF34, 200.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_801A3240, 1, func_801A2DD8, D_800CBF34, 15000.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_801A2B24, 1, NULL, D_800CBF34, 500.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_801A2B24, 1, NULL, D_800CBF34, 500.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_801A2B24, 1, NULL, D_800CBF34, 500.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_801A2B24, 1, NULL, D_800CBF34, 500.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_801A2B24, 1, NULL, D_800CBF34, 500.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_801A2B24, 1, NULL, D_800CBF34, 500.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_801A2B24, 1, NULL, D_800CBF34, 500.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_801A2B24, 1, NULL, D_800CBF34, 500.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_801A23AC, 1, NULL, D_800CBF34, 500.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_801A23AC, 1, NULL, D_800CBF34, 500.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_801A23AC, 1, NULL, D_800CBF34, 15000.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_801A23AC, 1, NULL, D_800CBF34, 15000.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_801A23AC, 1, NULL, D_800CBF34, 2500.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_801A23AC, 1, NULL, D_800CBF34, 15000.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_801A23AC, 1, NULL, D_800CBF34, 15000.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_801A23AC, 1, NULL, D_800CBF34, 2500.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_801A23AC, 1, NULL, D_800CBF34, 2500.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_801A23AC, 1, NULL, D_800CBF34, 2500.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_801A23AC, 1, NULL, D_800CBF34, 2500.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_801A23AC, 1, NULL, D_800CBF34, 2500.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_801A23AC, 1, func_801A0BD8, D_6036594, 2500.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_801A23AC, 1, NULL, D_6036204, 1300.0f, 0, 0, 0, 0, 0.0f, 0 }, + { D_60097E0, 0, NULL, D_6034478, 4000.0f, 0, 0, 41, 0, 0.0f, 0 }, + { D_601D730, 0, NULL, D_603450C, 4000.0f, 0, 0, 41, 0, 0.0f, 0 }, + { D_60102C0, 0, NULL, D_6034588, 4000.0f, 0, 0, 41, 0, 0.0f, 0 }, + { D_60036A0, 0, func_801A4E44, D_6034664, 4000.0f, 0, 0, 41, 0, 0.0f, 0 }, + { D_6005360, 0, NULL, D_6034770, 4000.0f, 0, 0, 41, 0, 0.0f, 0 }, + { func_80074F90, 1, NULL, D_800CBF34, 2000.0f, 0, 0, 0, 0, 0.0f, 0 }, + { D_600F6C0, 0, func_801A52B8, D_60347F0, 4000.0f, 0, 0, 41, 0, 0.0f, 0 }, + { D_601B610, 0, NULL, D_800CBF34, 2000.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_601C6A0, 0, NULL, D_800CBF34, 2000.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_60188D0, 0, NULL, D_603486C, 2000.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_60034D0, 0, NULL, D_60347D4, 2000.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_60231C0, 0, NULL, D_6030C60, 2000.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_6011EE0, 0, NULL, D_6030C7C, 2000.0f, 0, 0, 41, 0, 0.0f, 0 }, + { D_6015730, 0, NULL, D_6030D74, 2000.0f, 0, 0, 39, 0, 0.0f, 0 }, + { D_601DE60, 0, NULL, D_6030DF8, 2000.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_602B4C0, 0, NULL, D_6030E14, 2000.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_600EE10, 0, NULL, D_6030E30, 2000.0f, 0, 0, 41, 0, 0.0f, 0 }, + { D_60120F0, 0, NULL, D_6030E4C, 2000.0f, 0, 0, 41, 0, 0.0f, 0 }, + { D_600EEF0, 0, NULL, D_800CBF34, 2000.0f, 0, 0, 41, 0, 0.0f, 0 }, + { D_600BF80, 0, NULL, D_6030E68, 2000.0f, 0, 0, 41, 0, 0.0f, 0 }, + { func_801BE1FC, 1, NULL, D_800CBF34, 2000.0f, 0, 0, 41, 0, 0.0f, 0 }, + { D_9005C80, 0, func_801924A8, D_601B678, 1000.0f, 0, 0, 42, 0, 0.0f, 0 }, + { D_9003F50, 0, NULL, D_601B6C4, 3200.0f, 0, 0, 42, 0, 0.0f, 0 }, + { D_900F060, 0, NULL, D_601B710, 3200.0f, 0, 0, 42, 0, 0.0f, 0 }, + { D_900F1D0, 0, NULL, D_601B75C, 3200.0f, 0, 0, 42, 0, 0.0f, 0 }, + { func_801935D4, 1, func_8019356C, D_C038BD8, 500.0f, 0, 0, 41, 0, 0.0f, 0 }, + { func_8019350C, 1, func_80193380, D_C038A48, 500.0f, 0, 0, 41, 0, 0.0f, 0 }, + { D_60030F0, 0, NULL, D_6009CC4, 1000.0f, 0, 0, 20, 0, 0.0f, 0 }, + { D_6003000, 0, NULL, D_C038BA4, 0.0f, 0, 0, 41, 1, 0.0f, 0 }, + { D_6006890_Gfx, 0, NULL, D_C038B40, 0.0f, 0, 0, 41, 1, 0.0f, 0 }, + { D_6002990, 0, NULL, D_C038B40, 0.0f, 0, 0, 41, 1, 0.0f, 0 }, + { D_6004170, 0, NULL, D_800CBF34, 0.0f, 0, 0, 0, 1, 0.0f, 0 }, + { D_3017600, 0, NULL, D_302EE64, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_3017600, 0, NULL, D_302EE80, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_30173C0, 0, NULL, D_800CBF34, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_30174E0, 0, NULL, D_800CBF34, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_301B080, 0, NULL, D_302EE9C, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_3016B00, 0, NULL, D_302EE00, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_3013780, 0, NULL, D_302ED4C, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_3013580, 0, NULL, D_302ED98, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_3012ED0, 0, NULL, D_302EDB4, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, + { NULL, 0, NULL, D_800CBF34, 0.0f, 0, 0, 0, 0, 0.0f, 0 }, + { D_60079B0, 0, NULL, D_600FF80, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_6007D80, 0, NULL, D_600FFA0, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_6006310, 0, NULL, D_600FFC0, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_60066E0_Gfx, 0, NULL, D_600FEB8, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_600F4C0, 0, NULL, D_6011C10, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_600B8B0, 0, NULL, D_6011C48, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_600BAF0, 0, NULL, D_601115C, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, + { NULL, 0, NULL, D_800CBF34, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, + { func_80197CB8, 1, NULL, D_6034368, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_6001DA0, 0, NULL, D_600924C, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_6001360, 0, NULL, D_60092E8, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_6008370, 0, NULL, D_601668C, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_6010960, 0, NULL, D_6016714, 0.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_602F7C0, 0, func_80068FE0, D_603E468, 100.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_601C9B0, 0, func_80068FE0, D_603E484, 100.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_600A420, 0, func_80068FE0, D_600FE9C, 100.0f, 0, 0, 40, 0, 0.0f, 0 }, + { func_80059C40, 1, NULL, D_800CBF34, 1800.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_602DCA0, 0, NULL, D_800CBF34, -100.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_601F500, 0, NULL, D_800CBF34, -100.0f, 0, 0, 40, 0, 0.0f, 0 }, + { func_80059C34, 1, func_80066E8C, D_800CBF34, 500.0f, 0, 0, 40, 0, 0.0f, 0 }, + { func_80059850, 1, NULL, D_800CBF34, 100.0f, 0, 0, 40, 0, 0.0f, 0 }, + { D_60023B0, 0, func_8018F038, D_60068BC, 100.0f, 0, 0, 0, 0, 0.0f, 0 }, + { NULL, 1, func_801875A4, D_800CBF34, 0.0f, 0, 0, 0, 0, 0.0f, 0 }, + { NULL, 1, func_801922DC, D_800CBF34, 0.0f, 0, 0, 0, 0, 0.0f, 0 }, + { NULL, 1, func_80192358, D_800CBF34, 0.0f, 0, 0, 0, 0, 0.0f, 0 }, + { NULL, 1, func_801923C0, D_800CBF34, 0.0f, 0, 0, 0, 0, 0.0f, 0 }, + { NULL, 1, func_8019243C, D_800CBF34, 0.0f, 0, 0, 0, 0, 0.0f, 0 }, + { NULL, 1, NULL, D_800CBF34, 1000.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_8018BAAC, 2, func_8018AED0, D_603E5D0, 500.0f, 0, 0, 39, 1, 200.0f, 1 }, + { func_8018BBA4, 2, func_8018B15C, D_603E5D0, 500.0f, 0, 0, 39, 1, 200.0f, 1 }, + { func_8018BBF8, 2, func_8018B418, D_603E5D0, 500.0f, 0, 0, 39, 1, 200.0f, 1 }, + { func_8018BD7C, 2, func_8018B58C, D_603E604, 500.0f, 0, 0, 39, 1, 0.0f, 1 }, + { func_8005B6A4, 1, func_80066A80, D_800CBF34, 1000.0f, 0, 0, 39, 0, 0.0f, 1 }, + { D_6018C00, 0, func_8018756C, D_602F6EC, 200.0f, 0, 0, 39, 0, 1.0f, 1 }, + { func_8005B71C, 1, func_80187650, D_602F708, 100.0f, 0, 1, 39, 0, 1.0f, 1 }, + { func_8018DA6C, 1, func_8018D9EC, D_800CBF34, 100.0f, 0, 1, 39, 0, 0.0f, 1 }, + { func_8018DAEC, 1, func_8018D9EC, D_800CBF34, 100.0f, 0, 1, 39, 0, 0.0f, 1 }, + { func_8018DB6C, 1, func_8018D9EC, D_800CBF34, 100.0f, 0, 1, 39, 0, 0.0f, 1 }, + { func_8005B7CC, 1, func_8018795C, D_602F724, 200.0f, 0, 1, 39, 0, 1.0f, 1 }, + { D_6018450, 0, func_801877C4, D_602F740, 200.0f, 0, 1, 39, 0, 1.0f, 1 }, + { func_801BEC74, 1, func_801BEC68, D_6030BE0, 200.0f, 0, 1, 39, 0, 1.0f, 1 }, + { func_8005A094, 1, func_8006C008, D_800CBF34, 0.0f, 0, 0, 39, 0, 0.0f, 0 }, + { func_8005B848, 1, func_800656D4, D_800CBFE4, 100.0f, 0, 1, 39, 0, 1.0f, 0 }, + { func_8005B848, 1, func_800656D4, D_800CBFE4, 100.0f, 0, 1, 39, 0, 1.0f, 0 }, + { func_8005B9A4, 1, func_8006654C, D_603E54C, 200.0f, 0, 1, 39, 0, 50.0f, 1 }, + { func_8005BA30, 1, func_800669A0, D_603E598, 100.0f, 0, 1, 39, 0, 0.0f, 0 }, + { func_8006B74C, 1, func_8006B094, D_800CC000, 200.0f, 0, 1, 39, 0, 0.0f, 1 }, + { func_8004FEC0, 1, func_8004F8AC, D_800CBF34, 20000.0f, 0, 1, 39, 0, 0.0f, 0 }, + { func_80059BF0, 1, func_8006BB78, D_603E5B4, 200.0f, 0, 1, 39, 0, 1.0f, 1 }, + { func_80035448, 1, func_800319AC, D_800CC038, 20000.0f, 0, 1, 39, 1, 1.0f, 1 }, + { func_80035448, 1, func_80092EC0, D_800CC01C, 20000.0f, 0, 0, 39, 1, 0.0f, 0 }, + { func_80188448, 1, func_801880E4, D_800CBF34, 20000.0f, 0, 0, 39, 1, 0.0f, 0 }, + { func_80074FF0, 1, func_80072594, D_800CBF34, 2000.0f, 0, 1, 39, 0, 0.0f, 1 }, + { func_800598E8, 1, func_8006AC08, D_602F684, 100.0f, 0, 1, 39, 0, 1.0f, 1 }, + { func_80059A24, 1, func_8006AD18, D_602F6A0, 100.0f, 0, 1, 39, 0, 180.0f, 1 }, + { func_8018F884, 1, func_8018F330, D_800CBF34, 1000.0f, 0, 0, 39, 0, 0.0f, 0 }, + { func_801A4CB0, 1, func_801A3BD4, D_603405C, 1000.0f, 0, 0, 39, 0, 1.0f, 1 }, + { func_801A12C4, 1, func_8019C778, D_60359C8, 20000.0f, 0, 0, 40, 1, 0.0f, 0 }, + { func_801A12C4, 1, func_801AC438, D_6035A48, 20000.0f, 0, 0, 40, 1, 0.0f, 0 }, + { func_801AC294, 2, func_801A7E7C, D_603677C, 20000.0f, 0, 0, 40, 1, 0.0f, 0 }, + { func_801A12C4, 1, func_8019EA60, D_6035A14, 20000.0f, 0, 0, 40, 1, 0.0f, 0 }, + { func_801A12C4, 1, func_8019D700, D_6035AE0, 20000.0f, 0, 0, 40, 1, 0.0f, 0 }, + { func_801A12C4, 1, func_8019CE88, D_6035D9C, 20000.0f, 0, 0, 40, 1, 0.0f, 0 }, + { func_801A12C4, 1, func_8019E410, D_6035E04, 20000.0f, 0, 0, 40, 1, 0.0f, 0 }, + { func_801A12C4, 1, func_8019FF9C, D_60360C0, 20000.0f, 0, 0, 40, 1, 0.0f, 0 }, + { func_801A12C4, 1, func_8019EE68, D_6036154, 20000.0f, 0, 0, 40, 1, 0.0f, 0 }, + { func_801A43BC, 1, func_801A3E98, D_6036458, 300.0f, 0, 0, 40, 1, 0.0f, 0 }, + { func_801A4A64, 1, func_801A46A0, D_60364C0, 300.0f, 0, 1, 40, 1, 0.0f, 1 }, + { func_801A5F90, 1, func_801A5E54, D_60366EC, 200.0f, 0, 0, 40, 1, 0.0f, 0 }, + { func_801A6100, 1, func_801A5FD0, D_6036708, 200.0f, 0, 0, 40, 1, 0.0f, 0 }, + { func_801A6540, 1, func_801A6144, D_6036728, 200.0f, 0, 0, 40, 1, 0.0f, 0 }, + { func_801A68EC, 1, func_801A67C8, D_6036744, 300.0f, 0, 0, 40, 1, 0.0f, 0 }, + { func_801ADAC8, 1, func_801AD6F0, D_6036930, 200.0f, 0, 0, 40, 1, 0.0f, 0 }, + { func_801AE2C0, 1, func_801ADD68, D_603694C, 300.0f, 0, 0, 40, 1, 1.0f, 0 }, + { func_801AEEFC, 1, func_801AEC04, D_6036968, 300.0f, 0, 0, 40, 1, 1.0f, 0 }, + { func_801A54E8, 1, func_801A4B24, D_60364DC, 300.0f, 0, 0, 40, 1, 0.0f, 0 }, + { NULL, 1, func_80189194, D_800CBF34, 200.0f, 0, 0, 39, 0, 0.0f, 0 }, + { D_700AB70, 0, func_8018AB44, D_60064AC, 50.0f, 0, 0, 39, 1, 1.0f, 0 }, + { func_80189AFC, 1, func_801895B8, D_60064C8, 300.0f, 0, 0, 39, 1, 70.0f, 1 }, + { func_8018E5B4, 1, func_8018E54C, D_60067C4, 0.0f, 0, 0, 39, 1, 0.0f, 0 }, + { func_8018EF14, 1, func_8018E5F8, D_6006808, 0.0f, 0, 0, 39, 1, 1.0f, 1 }, + { func_8018E2D8, 1, func_8018C8A8, D_6006A3C, 1000.0f, 0, 0, 20, 1, 0.0f, 1 }, + { func_8018AABC, 1, func_8018A544, D_600683C, 0.0f, 0, 1, 39, 1, 0.0f, 1 }, + { func_8018BE84, 1, func_8018B9D0, D_6006858, 0.0f, 0, 0, 39, 1, 0.0f, 1 }, + { func_8018B6AC, 1, func_8018B268, D_6006890_f32, 0.0f, 0, 0, 39, 1, 20.0f, 1 }, + { func_8018A1C0, 1, func_80189CC8, D_60068F0, 200.0f, 0, 0, 39, 1, 1.0f, 1 }, + { func_80077218, 1, func_800771CC, D_800CBF34, 2000.0f, 0, 0, 39, 0, 0.0f, 5 }, + { func_80190430, 2, func_801904CC, D_602C294, 1000.0f, 0, 1, 40, 0, 1.0f, 1 }, + { func_80190F08, 1, func_80190A00, D_602BC58, 5000.0f, 0, 0, 40, 0, 0.0f, 0 }, + { func_8006A978, 1, func_8006A96C, D_800CBF34, 200.0f, 0, 0, 40, 0, 0.0f, 2 }, + { func_801914C4, 2, func_80191010, D_800CBE8C, 200.0f, 0, 1, 40, 0, 1.0f, 1 }, + { NULL, 1, NULL, D_800CBF34, 1000.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_80191B4C, 1, func_80191680, D_800CBE8C, 1500.0f, 0, 1, 40, 0, 20.0f, 0 }, + { func_80191DB0, 1, func_80191BC4, D_800CBE70, 1500.0f, 0, 1, 40, 0, 0.0f, 0 }, + { func_80191FFC, 2, func_80192094, D_602BE3C, 500.0f, 0, 0, 40, 0, 1.0f, 0 }, + { func_80192C18, 2, func_80192834, D_800CBE8C, 0.0f, 0, 1, 40, 0, 1.0f, 1 }, + { func_80193240, 2, func_80192E64, D_602BE58, 2000.0f, 0, 0, 40, 0, 50.0f, 0 }, + { func_8019983C, 1, func_8019969C, D_800CBE8C, 200.0f, 0, 0, 40, 0, 1.0f, 0 }, + { func_80199E24, 1, func_80199A28, D_800CBE8C, 2000.0f, 0, 0, 40, 0, 1.0f, 0 }, + { func_8019D3C4, 1, func_8019D15C, D_602BFC4, 500.0f, 0, 0, 40, 0, 0.0f, 0 }, + { func_8019A1FC, 1, func_80199F10, D_800CBEA8, 2000.0f, 0, 0, 40, 0, 0.0f, 0 }, + { func_8019ACCC, 1, func_8019A5D4, D_800CBEC4, 5000.0f, 0, 0, 40, 0, 0.0f, 0 }, + { func_8019B7DC, 1, func_8019B548, D_602C1D4, 10000.0f, 0, 0, 40, 0, 0.0f, 0 }, + { func_8019BDE0, 2, func_8019B854, D_602C218, 1000.0f, 0, 0, 40, 0, 1.0f, 1 }, + { func_8019C1CC, 1, func_8019BE48, D_602C234, 200.0f, 0, 0, 40, 0, 80.0f, 1 }, + { func_8019C83C, 1, func_8019C454, D_602C250, 300.0f, 0, 0, 40, 0, 0.0f, 0 }, + { func_8019CE58, 1, func_8019CBEC, D_602C2B0, 300.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_801AE168, 1, func_801AD6C0, D_6030BFC, 500.0f, 0, 0, 40, 0, 0.0f, 0 }, + { func_801AEB44, 1, func_801AE3D8, D_6030C18, 10000.0f, 0, 0, 40, 0, 0.0f, 0 }, + { func_801B099C, 1, func_801AFA5C, D_6030C44, 10000.0f, 0, 0, 40, 0, 0.0f, 0 }, + { func_801B0EC0, 1, func_801B0B60, D_800CBE8C, 200.0f, 0, 0, 40, 0, 0.0f, 0 }, + { func_801B619C, 2, func_801B638C, D_6031398, 10000.0f, 0, 0, 40, 0, 0.0f, 0 }, + { func_801B90DC, 2, func_801B7C78, D_60313CC, 300.0f, 0, 0, 40, 0, 0.0f, 0 }, + { func_801B504C, 2, func_801B50E8, D_6031400, 300.0f, 0, 0, 40, 0, 0.0f, 1 }, + { func_801B7A24, 2, func_801B6FF8, D_603144C, 2000.0f, 0, 0, 40, 0, 0.0f, 0 }, + { func_801BA108, 2, func_801B91A4, D_6031480, 200.0f, 0, 0, 40, 0, 0.0f, 1 }, + { func_801BA4E4, 1, func_801BA26C, D_800CBE8C, 200.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_801BAD7C, 1, func_801BA6A4, D_6031500, 200.0f, 0, 0, 40, 0, 0.0f, 1 }, + { func_801BB204, 2, func_801BADF8, D_6031538, 200.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_801BC930, 2, func_801BB79C, D_6031554, 800.0f, 0, 0, 40, 0, 0.0f, 0 }, + { func_801BDE6C, 1, func_801BD54C, D_6031570, 10000.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_801BD264, 1, func_801BC9A0, D_6030D20, 2000.0f, 0, 0, 40, 0, 0.0f, 0 }, + { func_801BEB1C, 1, func_801BE3F8, D_60314C8, 1000.0f, 0, 0, 40, 0, 0.0f, 0 }, + { func_8002E694, 2, func_8002E670, D_6011B24, 0.0f, 0, 0, 39, 0, 730.0f, 1 }, + { func_8002E6DC, 1, func_8002E6B8, D_6011BF4, 0.0f, 0, 0, 39, 0, 150.0f, 1 }, + { func_80188FE4, 2, func_80188AD0, D_600FF30, 0.0f, 0, 0, 39, 0, 220.0f, 1 }, + { func_8019E3A8, 1, func_8019E234, D_800CBEC4, 0.0f, 0, 0, 39, 0, 1.0f, 0 }, + { func_8019F7AC, 1, func_8019F20C, D_800CBE8C, 200.0f, 0, 0, 39, 0, 1.0f, 1 }, + { func_8019F7AC, 1, func_8019F20C, D_800CBE8C, 200.0f, 0, 0, 39, 0, 1.0f, 1 }, + { func_8019F7AC, 1, func_8019F20C, D_800CBEC4, 200.0f, 0, 0, 39, 0, 1.0f, 1 }, + { NULL, 1, func_8019EA7C, D_800CBF34, 200.0f, 0, 0, 0, 0, 0.0f, 1 }, + { NULL, 1, func_801A003C, D_800CBF34, 1000.0f, 0, 0, 0, 0, 0.0f, 1 }, + { D_900DD20, 0, func_80192518, D_601B7F8, 1000.0f, 0, 0, 40, 1, 0.0f, 0 }, + { func_80192E2C, 1, func_80192CD4, D_601B830, 1000.0f, 0, 0, 40, 1, 0.0f, 0 }, + { D_901DA50, 0, func_80192CD4, D_601B868, 1000.0f, 0, 0, 40, 1, 0.0f, 0 }, + { D_9023AD0, 0, func_80192EB0, D_601B8A0, 1000.0f, 0, 0, 40, 1, 0.0f, 0 }, + { func_801934D0, 1, func_801933DC, D_601B8D8, 1000.0f, 0, 0, 40, 0, 0.0f, 0 }, + { func_80193244, 1, func_80192E94, D_800CBE8C, 1000.0f, 0, 0, 20, 0, 1.0f, 1 }, + { func_80188660, 1, func_80188528, D_800CBE8C, 1000.0f, 0, 0, 20, 0, 0.0f, 0 }, + { NULL, 1, func_80189724, D_800CBF34, 1000.0f, 0, 0, 40, 1, 0.0f, 0 }, + { NULL, 1, func_801893B8, D_800CBF34, 1000.0f, 0, 0, 20, 1, 0.0f, 0 }, + { func_800596B0, 1, func_80189470, D_800CBF34, 1000.0f, 0, 0, 20, 1, 0.0f, 0 }, + { NULL, 1, func_8018933C, D_800CBF34, 1000.0f, 0, 0, 20, 0, 0.0f, 0 }, + { func_80067874, 1, func_8006753C, D_800CBEA8, 1000.0f, 0, 0, 0, 0, 1.0f, 0 }, + { func_8018AA74, 2, func_80189058, D_603E620, 20000.0f, 0, 0, 40, 1, 0.0f, 10 }, + { func_8018ECAC, 1, func_8018C19C, D_603E840, 20000.0f, 0, 0, 40, 0, 0.0f, 10 }, + { func_8018ED78, 1, func_8018DDAC, D_603E714, 20000.0f, 0, 0, 40, 0, 0.0f, 10 }, + { func_8018EE84, 1, func_8018E290, D_603E748, 20000.0f, 0, 0, 40, 0, 0.0f, 10 }, + { func_8018EF90, 1, func_8018E76C, D_603E7C4, 20000.0f, 0, 0, 40, 0, 0.0f, 10 }, + { func_8018BACC, 1, func_8018978C, D_602F75C, 20000.0f, 0, 0, 40, 0, 0.0f, 10 }, + { func_801887D0, 1, func_80188344, D_602FA50, 20000.0f, 0, 0, 40, 0, 0.0f, 10 }, + { func_80042FC4, 2, func_80042FB8, D_800CBF34, 20000.0f, 0, 0, 40, 0, 0.0f, 10 }, + { func_80042FE8, 1, func_80042FDC, D_800CBF34, 20000.0f, 0, 0, 40, 0, 0.0f, 10 }, + { func_801BEC5C, 1, func_801BEC50, D_6030B10, 0.0f, 0, 0, 40, 0, 0.0f, 10 }, + { func_8018C54C, 1, func_80187944, D_6028454, 2000.0f, 0, 0, 40, 0, 0.0f, 10 }, + { func_80193434, 2, func_80190078, D_6032550, 20000.0f, 0, 0, 20, 0, 0.0f, 10 }, + { func_8018FF84, 2, func_8018FE38, D_6032488, 1000.0f, 0, 0, 20, 0, 0.0f, 10 }, + { func_80190020, 2, func_8018FF20, D_60324EC, 1000.0f, 0, 0, 20, 0, 0.0f, 10 }, + { func_801982A8, 1, func_80197A94,D_E6A810_801B83A8, 1000.0f, 0, 0, 40, 1, 0.0f, 10 }, + { func_801949DC, 2, func_80194A84, D_602C044, 1000.0f, 0, 0, 40, 0, 1.0f, 10 }, + { func_8008FE78, 1, func_800907C4, D_600FFE0, 0.0f, 0, 0, 40, 1, 0.0f, 10 }, + { func_8002E604, 1, func_8002E5E0, D_800CBF34, 0.0f, 0, 0, 40, 1, 0.0f, 10 }, + { func_8002E64C, 1, func_8002E628, D_800CBF34, 0.0f, 0, 0, 40, 1, 0.0f, 10 }, + { func_80191AFC, 2, func_801912FC, D_6011C80, 0.0f, 0, 0, 40, 1, 0.0f, 10 }, + { func_80196288, 2, func_80196210, D_60166F4, 0.0f, 0, 0, 40, 1, 0.0f, 10 }, + { func_8019E98C, 1, func_8019E454, D_6009388, 0.0f, 0, 0, 40, 0, 0.0f, 10 }, + { func_8019E2C4, 2, func_8019C888, D_800CBF34, 0.0f, 0, 0, 40, 0, 0.0f, 10 }, + { func_801A71B8, 2, func_801A5B3C, D_800CBF34, 0.0f, 0, 0, 40, 0, 0.0f, 10 }, + { func_801968F4, 1, func_801946C4, D_6011058, 0.0f, 0, 0, 40, 0, 0.0f, 10 }, + { func_80193B1C, 1, func_80193718, D_601115C, 0.0f, 0, 0, 40, 1, 0.0f, 10 }, + { func_801B4D84, 2, func_801B134C, D_6030F74, 10000.0f, 0, 0, 40, 0, 0.0f, 10 }, + { func_801985E4, 1, func_80194398,D_DF4260_8019A9B8, 3000.0f, 0, 0, 40, 1, 0.0f, 10 }, + { func_801928C8, 2, func_8018DBF0, D_C038DC0, 10000.0f, 0, 0, 40, 0, 0.0f, 10 }, + { func_8018B8C0, 1, func_80189B70, D_C038F24, 10000.0f, 0, 0, 40, 0, 0.0f, 10 }, + { func_8005CC9C, 1, func_80067F6C, D_800CBFA8, 700.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_8005C5F0, 1, func_80068914, D_800CBF38, 700.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_8005C900, 1, func_80068020, D_800CBF54, 700.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_8005C9C0, 1, func_800685D8, D_800CBF54, 700.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_8005CDA8, 1, func_80068688, D_800CBF70, 700.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_8005CB44, 1, func_80067BEC, D_800CBFC8, 700.0f, 0, 0, 0, 0, 0.0f, 0 }, + { NULL, 1, func_80068C88, D_800CBF8C, 1500.0f, 0, 0, 0, 0, 0.0f, 0 }, + { NULL, 1, func_80068C88, D_800CBF8C, 1500.0f, 0, 0, 0, 0, 0.0f, 0 }, + { NULL, 1, func_80068C88, D_800CBF8C, 1500.0f, 0, 0, 0, 0, 0.0f, 0 }, + { NULL, 1, func_80068C88, D_800CBF8C, 1500.0f, 0, 0, 0, 0, 0.0f, 0 }, + { NULL, 1, func_80068C88, D_800CBF8C, 1500.0f, 0, 0, 0, 0, 0.0f, 0 }, + { NULL, 1, func_80068C88, D_800CBF8C, 1500.0f, 0, 0, 0, 0, 0.0f, 0 }, + { NULL, 1, func_80068C48, D_800CBF18, 700.0f, 0, 0, 0, 0, 0.0f, 0 }, + { D_1022120, 0, func_80067B1C, D_800CBE8C, 700.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_8005CA80, 1, func_800685F8, D_800CBF54, 700.0f, 0, 0, 0, 0, 0.0f, 0 }, + { D_3007650, 0, func_80068618, D_800CBFA8, 700.0f, 0, 0, 0, 0, 0.0f, 0 }, + { D_6006140, 0, func_80198968, D_6009CFC, 700.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_8007D55C, 1, func_8007D2F4, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 }, + { func_8007D55C, 1, func_8007D748, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 }, + { func_8007D55C, 1, func_8007D8A8, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 }, + { func_8007E330, 1, func_8007E298, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 }, + { func_8007CAF0, 1, func_8007C9E0, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 }, + { func_8007868C, 1, func_8007E014, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 }, + { func_8007879C, 1, func_8007E258, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 }, + { func_800788B0, 1, func_8007F438, NULL, -200.0f, 1, 0, 0, 0, 0.0f, 0 }, + { func_800783C0, 1, func_8007B758, NULL, 100.0f, 1, 0, 40, 0, 0.0f, 0 }, + { func_80078A64, 1, func_8007F6B0, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 }, + { NULL, 1, func_8007F958, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 }, + { NULL, 1, func_8007FBE0, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 }, + { func_80078438, 1, func_8007E3E4, NULL, -200.0f, 1, 1, 0, 0, 0.0f, 0 }, + { func_800784B4, 1, func_8007B62C, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 }, + { func_80078B8C, 1, func_8007FE88, NULL, 100.0f, 0, 0, 20, 0, 0.0f, 0 }, + { func_80197C64, 1, func_8007FE88, NULL, 100.0f, 0, 0, 20, 0, 0.0f, 0 }, + { func_80078AEC, 1, func_800802B8, NULL, 100.0f, 1, 0, 20, 1, 0.0f, 0 }, + { func_80078C84, 1, func_800802F8, NULL, 100.0f, 1, 0, 20, 0, 0.0f, 0 }, + { func_800798F0, 1, func_8007968C, NULL, 100.0f, 0, 1, 0, 0, 0.0f, 0 }, + { func_80192A68, 1, func_80192984, NULL, 100.0f, 1, 1, 0, 0, 0.0f, 0 }, + { func_8007AA60, 1, func_8007A994, NULL, -100.0f, 1, 2, 0, 0, 0.0f, 0 }, + { func_8007BEE8, 1, func_8007BE54, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 }, + { func_8007BEE8, 1, func_8007BDE0, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 }, + { func_8007BEE8, 1, func_8007BCE8, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 }, + { func_80094BBC, 1, func_80094954, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 }, + { func_8007B9DC, 1, func_8007B960, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 }, + { func_8007E5CC, 1, func_8007E45C, NULL, -200.0f, 1, 1, 0, 0, 0.0f, 0 }, + { func_80078550, 1, func_801AC918, NULL, 100.0f, 1, 2, 0, 0, 0.0f, 0 }, + { func_80078604, 1, func_8007E648, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 }, + { func_80188FA8, 1, func_80188F60, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 }, + { func_8018DCE4, 1, func_80188CAC, NULL, 100.0f, 0, 1, 40, 0, 0.0f, 0 }, + { func_8018DBEC, 1, func_80188FAC, NULL, 100.0f, 0, 1, 40, 0, 0.0f, 0 }, + { func_8018DE14, 1, func_80189114, NULL, 100.0f, 0, 1, 40, 0, 0.0f, 0 }, + { func_80077A00, 1, func_8007AB50, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 }, + { NULL, 1, func_8007A748, NULL, 500.0f, 0, 1, 0, 0, 0.0f, 0 }, + { func_8007DED4, 1, func_8007DB70, NULL, 100.0f, 0, 1, 40, 0, 0.0f, 0 }, + { func_8007DAE4, 1, func_8007DA58, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 }, + { func_80078CE8, 1, func_80080360, NULL, -200.0f, 1, 0, 0, 0, 0.0f, 0 }, + { func_80078BE0, 1, func_800802D8, NULL, 100.0f, 1, 0, 20, 0, 0.0f, 0 }, + { func_801A5AF0, 1, func_801A57D0, NULL, 100.0f, 0, 0, 20, 0, 0.0f, 0 }, + { func_801AEAA0, 1, func_801AE87C, NULL, 100.0f, 1, 1, 0, 0, 0.0f, 0 }, + { func_801A5D68, 1, func_801A5B4C, NULL, 100.0f, 0, 0, 20, 0, 0.0f, 0 }, + { func_80077A7C, 1, func_8007B0F4, NULL, 500.0f, 0, 0, 0, 0, 0.0f, 0 }, + { NULL, 1, func_8007B040, NULL, 200.0f, 0, 1, 0, 0, 0.0f, 0 }, + { func_8007A3C0, 1, func_8007A28C, NULL, 10000.0f, 0, 1, 0, 0, 0.0f, 0 }, + { func_80077B84, 1, func_8007B3B8, NULL, -200.0f, 1, 1, 0, 0, 0.0f, 0 }, + { func_80078038, 1, func_8007B5C0, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 }, + { NULL, 1, func_8007C250, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 }, + { NULL, 1, func_8007C8C4, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 }, + { func_80077B78, 1, func_8007B670, NULL, -200.0f, 1, 1, 0, 0, 0.0f, 0 }, + { func_800780F8, 1, func_8007B67C, NULL, -200.0f, 1, 1, 0, 0, 0.0f, 0 }, + { NULL, 1, func_8007C50C, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 }, + { func_80083B8C, 1, func_800837EC, NULL, 500.0f, 0, 0, 0, 0, 0.0f, 0 }, + { func_801A0AF0, 1, func_801A0120, NULL, 300.0f, 1, 2, 10, 0, 0.0f, 0 }, + { func_80078F78, 1, func_80078EBC, NULL, 300.0f, 1, 1, 0, 0, 0.0f, 0 }, + { func_80080D04, 1, func_80080ACC, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 }, + { func_80082F78, 1, func_80081C5C, NULL, 300.0f, 0, 1, 40, 0, 0.0f, 0 }, + { func_8018CF98, 1, func_8018CAD4, NULL, 2000.0f, 0, 1, 40, 2, 0.0f, 0 }, + { func_80191180, 1, func_80191054, NULL, 2000.0f, 0, 1, 20, 0, 0.0f, 0 }, + { func_8008092C, 1, func_8008040C, NULL, 100.0f, 0, 0, 40, 0, 0.0f, 0 }, + { func_80084194, 1, func_80083FA8, NULL, 100.0f, 0, 0, 40, 0, 0.0f, 0 }, +}; +// clang-format on diff --git a/src/main/fox_edisplay.c b/src/main/fox_edisplay.c index 6033ccc1..f165e6b9 100644 --- a/src/main/fox_edisplay.c +++ b/src/main/fox_edisplay.c @@ -37,7 +37,7 @@ void func_800598E8(Object_2F4* arg0) { RCP_SetupDL_29(D_80178320, D_80178328, D_80178330, D_80178338, D_801783D8, D_801783DC); } -void func_800599A4(s32 arg0, Vec3f* arg1, s32* arg2) { +void func_800599A4(s32 arg0, Vec3f* arg1, void* arg2) { Vec3f sp24; Vec3f sp18; @@ -46,7 +46,7 @@ void func_800599A4(s32 arg0, Vec3f* arg1, s32* arg2) { sp24.y = 0.0f; sp24.z = 0.0f; Matrix_MultVec3f(gCalcMatrix, &sp24, &sp18); - D_80163FE0[*arg2].unk_114 = sp18.y; + D_80163FE0[*((s32*) arg2)].unk_114 = sp18.y; } } @@ -67,7 +67,7 @@ void func_80059A24(Object_2F4* arg0) { Matrix_Translate(gGfxMatrix, 0.f, -temp, 0.0f, 1); Matrix_SetGfxMtx(&gMasterDisp); Animation_GetFrameData(&D_601E8C4, arg0->unk_0B6, sp30); - Animation_DrawSkeleton(1, &D_601E9D0, sp30, NULL, func_800599A4, &arg0->unk_040, &gIdentityMatrix); + Animation_DrawSkeleton(1, D_601E9D0, sp30, NULL, func_800599A4, &arg0->unk_040, &gIdentityMatrix); } void func_80059AEC(Object_80* arg0) { @@ -509,8 +509,8 @@ void func_8005B388(Object_2F4* arg0) { ((D_80178280[0].unk_1C8 == 7) && (D_80178280[0].unk_1D0 >= 0x64) && (D_80178234 == 0x10) && (arg0->unk_040 == 1)) || ((D_80178234 == 5) && (D_80178280[0].unk_1C8 == 0) && (arg0->unk_0B8 == 5))) { - D_80161630.unk_00 = D_80178280[0].unk_49C; - D_80161630.unk_01 = D_80178280[0].unk_49D; + D_80161630.unk_00 = D_80178280[0].unk_49C.unk_00; + D_80161630.unk_01 = D_80178280[0].unk_49C.unk_01; } else { D_80161630.unk_00 = D_80161630.unk_01 = 2; } @@ -524,7 +524,7 @@ void func_8005B388(Object_2F4* arg0) { D_80161630.unk_14 = D_80161630.unk_18 = D_80161630.unk_1C = D_80161630.unk_20 = D_80161630.unk_38 = D_80161630.unk_24 = 0.0f; D_80161630.unk_28 = arg0->unk_158; - D_80161630.unk_2C = arg0->unk_88; + D_80161630.unk_2C = arg0->unk_088; D_80161630.unk_30 = arg0->unk_164; D_80161630.unk_34 = arg0->unk_160; if (D_80177C98 == 1) { @@ -928,16 +928,16 @@ void func_8005D3CC(Object* arg0, f32 arg1, f32 arg2, f32 arg3, s32 arg4) { void func_8005D654(Object_80* arg0, s32 arg1) { arg0->obj.pos.y += D_8017847C; - func_8005D008(&arg0->obj, arg0->unk_1C.unk_04); + func_8005D008(&arg0->obj, arg0->unk_1C.drawType); arg0->obj.pos.y -= D_8017847C; - if (arg0->unk_1C.unk_04 == 0) { + if (arg0->unk_1C.drawType == 0) { if ((arg0->obj.id == 0x13) || (arg0->obj.id == 0x37) || (arg0->obj.id == 9) || (arg0->obj.id == 0x32)) { RCP_SetupDL_57(D_80178320, D_80178328, D_80178330, D_80178338, D_801783D8, D_801783DC); gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK); if (arg1 < 0) { func_800596C0(); } - gSPDisplayList(gMasterDisp++, arg0->unk_1C.unk_00); + gSPDisplayList(gMasterDisp++, arg0->unk_1C.draw); RCP_SetupDL_29(D_80178320, D_80178328, D_80178330, D_80178338, D_801783D8, D_801783DC); } else { if (arg0->obj.id == 8) { @@ -950,14 +950,14 @@ void func_8005D654(Object_80* arg0, s32 arg1) { if (arg1 < 0) { func_800596C0(); } - gSPDisplayList(gMasterDisp++, arg0->unk_1C.unk_00); + gSPDisplayList(gMasterDisp++, arg0->unk_1C.draw); if (arg0->obj.id == 8) { RCP_SetupDL_29(D_80178320, D_80178328, D_80178330, D_80178338, D_801783D8, D_801783DC); } } - } else if (arg0->unk_1C.unk_00 != NULL) { + } else if (arg0->unk_1C.draw != NULL) { func_800597C0(arg1); - arg0->unk_1C.unk_00(&arg0->obj); + arg0->unk_1C.draw(&arg0->obj); } } @@ -966,10 +966,10 @@ void func_8005D8B8(Object_4C* arg0, s32 arg1) { arg0->obj.pos.y += D_8017847C; func_8005D008(&arg0->obj, 0); arg0->obj.pos.y -= D_8017847C; - if (arg0->unk_1C.unk_04 == 0) { - gSPDisplayList(gMasterDisp++, arg0->unk_1C.unk_00); - } else if (arg0->unk_1C.unk_00 != NULL) { - arg0->unk_1C.unk_00(&arg0->obj); + if (arg0->unk_1C.drawType == 0) { + gSPDisplayList(gMasterDisp++, arg0->unk_1C.draw); + } else if (arg0->unk_1C.draw != NULL) { + arg0->unk_1C.draw(&arg0->obj); } } } @@ -977,7 +977,7 @@ void func_8005D8B8(Object_4C* arg0, s32 arg1) { void func_8005D954(Object_2F4* arg0) { Vec3f sp34 = { 0.0f, 0.0f, 0.0f }; - if (arg0->unk_01C.unk_00 != NULL) { + if (arg0->unk_01C.draw != NULL) { switch (arg0->obj.id) { case 0xC2: func_8006B74C(arg0); @@ -991,19 +991,19 @@ void func_8005D954(Object_2F4* arg0) { } else { if (arg0->unk_01C.unk_19 != 0) { arg0->obj.pos.y += D_8017847C; - func_8005D008(&arg0->obj, arg0->unk_01C.unk_04); + func_8005D008(&arg0->obj, arg0->unk_01C.drawType); arg0->obj.pos.y -= D_8017847C; } else if ((arg0->obj.id == 0xC8) && (arg0->unk_0B4 != 0x1F)) { func_8005D3CC(&arg0->obj, arg0->unk_2E8.x, arg0->unk_2E8.y, arg0->unk_2E8.z + arg0->unk_0FC, - arg0->unk_01C.unk_04); + arg0->unk_01C.drawType); } else { - func_8005D008(&arg0->obj, arg0->unk_01C.unk_04); + func_8005D008(&arg0->obj, arg0->unk_01C.drawType); } - if (arg0->unk_01C.unk_04 == 0) { - gSPDisplayList(gMasterDisp++, arg0->unk_01C.unk_00); + if (arg0->unk_01C.drawType == 0) { + gSPDisplayList(gMasterDisp++, arg0->unk_01C.draw); func_8005F1EC(&arg0->unk_100); } else { - arg0->unk_01C.unk_00(&arg0->obj); + arg0->unk_01C.draw(&arg0->obj); func_8005F1EC(&arg0->unk_100); if (((arg0->obj.id == 0xC6) || ((arg0->obj.id == 0xCB) && (arg0->unk_0B6 > 0))) && (D_80161410 > 0)) { Matrix_MultVec3f(gGfxMatrix, &sp34, &D_80177E98[arg0->unk_0E4]); @@ -1030,7 +1030,7 @@ void func_8005DBC0(Object_2F4* arg0) { f32 var_fv1; D_801615EC = 0; - if (arg0->unk_01C.unk_04 == 2) { + if (arg0->unk_01C.drawType == 2) { Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, D_80177D20, 1); Matrix_Translate(gCalcMatrix, arg0->obj.pos.x, arg0->obj.pos.y, arg0->obj.pos.z, 0); Matrix_Push(&gGfxMatrix); @@ -1049,7 +1049,7 @@ void func_8005DBC0(Object_2F4* arg0) { Matrix_RotateY(gCalcMatrix, arg0->obj.rot.y * M_DTOR, 1); Matrix_RotateX(gCalcMatrix, arg0->obj.rot.x * M_DTOR, 1); Matrix_RotateZ(gCalcMatrix, arg0->obj.rot.z * M_DTOR, 1); - arg0->unk_01C.unk_00(&arg0->obj); + arg0->unk_01C.draw(&arg0->obj); D_801615EC = 1; if ((D_80178280->unk_1C8 == 3) && (arg0->obj.id == 0xC5) && (arg0->unk_0E4 == 0xC8)) { D_80177E98[0] = D_801615E0; @@ -1072,12 +1072,12 @@ void func_8005DBC0(Object_2F4* arg0) { } if (((D_801615E0.z < var_fv0) && (var_fv1 < D_801615E0.z)) && ((fabsf(D_801615E0.x) < (fabsf(D_801615E0.z * var_fa1) + var_ft5)) && - (fabsf(D_801615E0.y) < (fabsf(D_801615E0.z * var_fa1) + var_ft5)) && (arg0->unk_01C.unk_00 != NULL))) { + (fabsf(D_801615E0.y) < (fabsf(D_801615E0.z * var_fa1) + var_ft5)) && (arg0->unk_01C.draw != NULL))) { Matrix_RotateY(gGfxMatrix, arg0->obj.rot.y * M_DTOR, 1); Matrix_RotateX(gGfxMatrix, arg0->obj.rot.x * M_DTOR, 1); Matrix_RotateZ(gGfxMatrix, arg0->obj.rot.z * M_DTOR, 1); Matrix_SetGfxMtx(&gMasterDisp); - arg0->unk_01C.unk_00(&arg0->obj); + arg0->unk_01C.draw(&arg0->obj); D_801615EC = 1; if ((D_80178280->unk_1C8 == 3) && (((arg0->obj.id == 0xC5) && ((arg0->unk_0E4 < 4) || (arg0->unk_0E4 == 8) || (arg0->unk_0E4 == 9))) || @@ -1121,10 +1121,10 @@ void func_8005E1B8(Object_408* arg0, s32 arg1) { if (arg0->unk_01C.unk_19 != 0) { arg0->obj.pos.y += arg0->unk_068 + D_8017847C; - func_8005D1F0(&arg0->obj, arg0->unk_01C.unk_04); + func_8005D1F0(&arg0->obj, arg0->unk_01C.drawType); arg0->obj.pos.y -= arg0->unk_068 + D_8017847C; } else { - func_8005D1F0(&arg0->obj, arg0->unk_01C.unk_04); + func_8005D1F0(&arg0->obj, arg0->unk_01C.drawType); } Matrix_MultVec3f(&D_801615F0, &sp30, &D_801615D0); func_8005F290(&arg0->unk_3FC, &D_801615D0); @@ -1153,13 +1153,13 @@ void func_8005E1B8(Object_408* arg0, s32 arg1) { if (arg0->obj.id != 0x13C) { func_8005F670(&arg0->obj.pos); } - if (arg0->unk_01C.unk_04 != 2) { + if (arg0->unk_01C.drawType != 2) { Matrix_SetGfxMtx(&gMasterDisp); } if (arg1 < 0) { func_800596C0(); } - arg0->unk_01C.unk_00(&arg0->obj); + arg0->unk_01C.draw(&arg0->obj); } } D_801615D0.y = sp3C; @@ -1167,7 +1167,7 @@ void func_8005E1B8(Object_408* arg0, s32 arg1) { arg0->unk_308 = D_801615D0; func_8005F670(&arg0->obj.pos); Matrix_SetGfxMtx(&gMasterDisp); - arg0->unk_01C.unk_00(&arg0->obj); + arg0->unk_01C.draw(&arg0->obj); } } #else @@ -1189,8 +1189,8 @@ void func_8005E454(Object_8C* arg0, s32 arg1) { } else { func_8005D008(&arg0->obj, 0); } - if (arg0->unk_1C.unk_00 != NULL) { - arg0->unk_1C.unk_00(&arg0->obj); + if (arg0->unk_1C.draw != NULL) { + arg0->unk_1C.draw(&arg0->obj); } } @@ -1214,12 +1214,12 @@ void func_8005E538(Object_8C* arg0) { } if ((sp40.z < 0.0f) && (var_fv0 < sp40.z) && (fabsf(sp40.x) < (fabsf(sp40.z * 0.5f) + 500.0f)) && (fabsf(sp40.y) < (fabsf(sp40.z * 0.5f) + 500.0f))) { - if (arg0->unk_1C.unk_00 != NULL) { + if (arg0->unk_1C.draw != NULL) { Matrix_RotateY(gGfxMatrix, arg0->obj.rot.y * M_DTOR, 1); Matrix_RotateX(gGfxMatrix, arg0->obj.rot.x * M_DTOR, 1); Matrix_RotateZ(gGfxMatrix, arg0->obj.rot.z * M_DTOR, 1); Matrix_SetGfxMtx(&gMasterDisp); - arg0->unk_1C.unk_00(&arg0->obj); + arg0->unk_1C.draw(&arg0->obj); } sp3B = 1; } @@ -1245,15 +1245,15 @@ void func_8005E7B8(Object_6C* arg0, s32 arg1) { var_v0 = 0; if ((sp38.z < 0.0f) && (sp38.z > -12000.0f) && (fabsf(sp38.x) < (fabsf(sp38.z * 0.5f) + 500.0f)) && (fabsf(sp38.y) < (fabsf(sp38.z * 0.5f) + 500.0f))) { - if (arg0->unk_1C.unk_00 != NULL) { + if (arg0->unk_1C.draw != NULL) { Matrix_RotateY(gGfxMatrix, arg0->obj.rot.y * M_DTOR, 1); Matrix_RotateX(gGfxMatrix, arg0->obj.rot.x * M_DTOR, 1); Matrix_RotateZ(gGfxMatrix, arg0->obj.rot.z * M_DTOR, 1); Matrix_SetGfxMtx(&gMasterDisp); - if (arg0->unk_1C.unk_04 == 0) { - gSPDisplayList(gMasterDisp++, arg0->unk_1C.unk_00); + if (arg0->unk_1C.drawType == 0) { + gSPDisplayList(gMasterDisp++, arg0->unk_1C.draw); } else { - arg0->unk_1C.unk_00(&arg0->obj); + arg0->unk_1C.draw(&arg0->obj); } } var_v0 = 1; @@ -1450,7 +1450,7 @@ void func_8005F2F4(Object_58* arg0) { } else { Matrix_RotateY(gGfxMatrix, arg0->obj.rot.y * M_DTOR, 1); Matrix_SetGfxMtx(&gMasterDisp); - gSPDisplayList(gMasterDisp++, arg0->unk_1C.unk_00); + gSPDisplayList(gMasterDisp++, arg0->unk_1C.draw); } } } diff --git a/src/main/fox_enmy1.c b/src/main/fox_enmy1.c index 7fdbe33e..27b8bbba 100644 --- a/src/main/fox_enmy1.c +++ b/src/main/fox_enmy1.c @@ -1634,7 +1634,7 @@ void func_80066254(Object_2F4* arg0) { var_v0 = D_80163FE0; for (i = 0, var_v0 = D_80163FE0; i < ARRAY_COUNT(D_80163FE0); i++, var_v0++) { if ((var_v0->obj.status != 0) && (var_v0->unk_040 != arg0->unk_040) && - (arg0->unk_8C == var_v0->unk_8C)) { + (arg0->unk_08C == var_v0->unk_08C)) { return; } } @@ -1954,7 +1954,7 @@ void func_8006753C(Object_2F4* arg0) { if (arg0->unk_0CE <= 0) { func_8007A6F0(&arg0->obj.pos, 0x2903A008); func_8007D2C8(arg0->obj.pos.x, arg0->obj.pos.y, arg0->obj.pos.z, 5.0f); - if (((new_var[0].unk_49C < 2) || (new_var[0].unk_49D < 2)) && (new_var[0].unk_1CC != 1)) { + if (((new_var[0].unk_49C.unk_00 < 2) || (new_var[0].unk_49C.unk_01 < 2)) && (new_var[0].unk_1CC != 1)) { arg0->unk_044 = 0x17; } else if (D_80178280[0].unk_264 < 0x80) { arg0->unk_044 = 0x19; @@ -2001,15 +2001,15 @@ void func_80067874(Object_2F4* arg0) { void func_80067A40(void) { func_80019218(0x09008023, D_80178280[0].unk_460, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); - if (D_80178280[0].unk_49C < 2) { + if (D_80178280[0].unk_49C.unk_00 < 2) { D_80177D40[0] = 1050; - D_80178280[0].unk_49C = 2; + D_80178280[0].unk_49C.unk_00 = 2; } - if (D_80178280[0].unk_49D < 2) { + if (D_80178280[0].unk_49C.unk_01 < 2) { D_80177D58[0] = 1050; - D_80178280[0].unk_49D = 2; + D_80178280[0].unk_49C.unk_01 = 2; } - if (D_801779F8 != 0) { + if (gExpertMode) { D_80177D10[0] = D_80177D28[0] = 10; } else { D_80177D10[0] = D_80177D28[0] = 60; @@ -2060,7 +2060,7 @@ void func_80067BEC(Object_6C* arg0) { D_80161AA8[arg0->unk_4E] = 2; } func_80060F30(D_80178280[arg0->unk_4E].unk_460, 0x49002004, arg0->unk_4E); - if (D_801779F8 != 0) { + if (gExpertMode) { D_80177D10[arg0->unk_4E] = D_80177D28[arg0->unk_4E] = 10; } else { D_80177D10[arg0->unk_4E] = D_80177D28[arg0->unk_4E] = 60; @@ -2086,7 +2086,7 @@ void func_80067BEC(Object_6C* arg0) { } void func_80067F6C(Object_6C* arg0) { - if ((D_801778E8 == 0) && ((D_80178280[0].unk_49D < 2) || (D_80178280[0].unk_49C < 2))) { + if ((D_801778E8 == 0) && ((D_80178280[0].unk_49C.unk_01 < 2) || (D_80178280[0].unk_49C.unk_00 < 2))) { arg0->obj.id = 337; func_800612B8(&arg0->unk_1C, arg0->obj.id); arg0->unk_48 = 2000; @@ -2597,8 +2597,8 @@ void func_80069AAC(Object_2F4* arg0) { break; case 2: func_800693E8(arg0); - if ((arg0->obj.status != 0) && (arg0->unk_01C.unk_08 != NULL)) { - arg0->unk_01C.unk_08(&arg0->obj); + if ((arg0->obj.status != 0) && (arg0->unk_01C.action != NULL)) { + arg0->unk_01C.action(&arg0->obj); } break; case 3: @@ -2640,8 +2640,8 @@ void func_80069CBC(Object_408* arg0) { break; case 2: func_80069658(arg0); - if ((arg0->obj.status != 0) && (arg0->unk_01C.unk_08 != NULL)) { - arg0->unk_01C.unk_08(&arg0->obj); + if ((arg0->obj.status != 0) && (arg0->unk_01C.action != NULL)) { + arg0->unk_01C.action(&arg0->obj); } break; case 3: @@ -2665,8 +2665,8 @@ void func_80069DF4(Object_80* arg0) { break; case 2: func_800696F8(arg0); - if (arg0->unk_1C.unk_08 != NULL) { - arg0->unk_1C.unk_08(&arg0->obj); + if (arg0->unk_1C.action != NULL) { + arg0->unk_1C.action(&arg0->obj); } break; } @@ -2681,8 +2681,8 @@ void func_80069E88(Object_4C* arg0) { break; case 2: func_80069858(arg0); - if (arg0->unk_1C.unk_08 != NULL) { - arg0->unk_1C.unk_08(&arg0->obj); + if (arg0->unk_1C.action != NULL) { + arg0->unk_1C.action(&arg0->obj); } break; case 3: @@ -2707,8 +2707,8 @@ void func_80069F30(Object_6C* arg0) { break; case 2: func_80069A10(arg0); - if (arg0->unk_1C.unk_08 != NULL) { - arg0->unk_1C.unk_08(&arg0->obj); + if (arg0->unk_1C.action != NULL) { + arg0->unk_1C.action(&arg0->obj); } break; } @@ -2725,8 +2725,8 @@ void func_80069FD4(Object_8C* arg0) { /* fallthrough */ case 2: func_80069924(arg0); - if ((arg0->obj.status != 0) && (arg0->unk_1C.unk_08 != NULL)) { - arg0->unk_1C.unk_08(&arg0->obj); + if ((arg0->obj.status != 0) && (arg0->unk_1C.action != NULL)) { + arg0->unk_1C.action(&arg0->obj); } break; } diff --git a/src/main/fox_radio.c b/src/main/fox_radio.c index 95e8d86c..4adece38 100644 --- a/src/main/fox_radio.c +++ b/src/main/fox_radio.c @@ -83,7 +83,7 @@ void func_800BA808(u16* arg0, s32 arg1) { D_800D4A70 = var_a1; D_80177D68 = arg1; - if ((D_801779F8 != 0) && ((arg1 == 0) || (arg1 == 5))) { + if (gExpertMode && ((arg1 == 0) || (arg1 == 5))) { D_80177D68 = 400; } diff --git a/src/main/main.c b/src/main/main.c index 19bc1a0f..14b525db 100644 --- a/src/main/main.c +++ b/src/main/main.c @@ -210,11 +210,11 @@ void Graphics_SetTask(void) { gGfxTask->task.t.ucode_boot = __rspboot_start; gGfxTask->task.t.ucode_boot_size = (uintptr_t) __rspboot_end - (uintptr_t) __rspboot_start; gGfxTask->task.t.ucode = __f3dex_start; - gGfxTask->task.t.ucode_size = 0x1000; + gGfxTask->task.t.ucode_size = SP_UCODE_SIZE; gGfxTask->task.t.ucode_data = (u64*) &gF3dexData; - gGfxTask->task.t.ucode_data_size = 0x800; - gGfxTask->task.t.dram_stack = (u64*) &D_80281000; - gGfxTask->task.t.dram_stack_size = 0x400; + gGfxTask->task.t.ucode_data_size = SP_UCODE_DATA_SIZE; + gGfxTask->task.t.dram_stack = &D_80281000; + gGfxTask->task.t.dram_stack_size = SP_DRAM_STACK_SIZE8; gGfxTask->task.t.output_buff = (u64*) &D_802A7800; gGfxTask->task.t.output_buff_size = (u64*) &D_802D7800; gGfxTask->task.t.data_ptr = (u64*) gGfxPool->masterDL; @@ -544,7 +544,7 @@ void Idle_ThreadEntry(void* arg0) { osCreateViManager(OS_PRIORITY_VIMGR); Main_SetVIMode(); Lib_FillScreen(1); - osCreatePiMgr(OS_PRIORITY_PIMGR, &gPiMgrCmdQueue, sPiMgrCmdBuff, ARRAY_COUNT(sPiMgrCmdBuff)); + osCreatePiManager(OS_PRIORITY_PIMGR, &gPiMgrCmdQueue, sPiMgrCmdBuff, ARRAY_COUNT(sPiMgrCmdBuff)); osCreateThread(&gMainThread, THREAD_ID_MAIN, &Main_ThreadEntry, arg0, sMainThreadStack + sizeof(sMainThreadStack), 100); osStartThread(&gMainThread); diff --git a/src/main/math64.c b/src/main/math64.c index 2ae59de2..8873c62f 100644 --- a/src/main/math64.c +++ b/src/main/math64.c @@ -57,9 +57,9 @@ f32 Math_FAtanF(f32 x) { } if (sector > 0) { - return M_PI / 2 - (x / (1.0f + conv)); + return M_PI / 2.0f - (x / (1.0f + conv)); } else if (sector < 0) { - return -M_PI / 2 - (x / (1.0f + conv)); + return -M_PI / 2.0f - (x / (1.0f + conv)); } else { return x / (1.0f + conv); } @@ -71,9 +71,9 @@ f32 Math_FAtan2F(f32 y, f32 x) { } if (x == 0.0f) { if (y < 0.0f) { - return -M_PI / 2; + return -M_PI / 2.0f; } - return M_PI / 2; + return M_PI / 2.0f; } if (x < 0.0f) { if (y < 0.0f) { diff --git a/src/main/sf_2EFE0.c b/src/main/sf_2EFE0.c new file mode 100644 index 00000000..7a8ec1ac --- /dev/null +++ b/src/main/sf_2EFE0.c @@ -0,0 +1,163 @@ +#include "global.h" + +extern s32 D_8015F904; +extern s32 D_80177CD0[4]; +extern s32 D_8017829C; +extern s32 D_800C9B4C; +extern s16 D_8016F5BE; +extern s16 D_8016F9F0; + +void func_80187520(s32, void*); + +void func_8002E3E0(Object_2F4* arg0) { + s32 var_a3 = 0; + + if (D_80178234 == 0x13) { + if (D_8015F940 < 0xF00) { + var_a3 = 50; + } else if (D_8015F940 < 0x1680) { + var_a3 = 30; + } else if (D_8015F940 < 0x1E00) { + var_a3 = 20; + } else if (D_8015F940 < 0x2580) { + var_a3 = 10; + } + } else { + if (D_8015F940 < 0xF00) { + var_a3 = 10; + } else if (D_8015F940 < 0x1680) { + var_a3 = 5; + } else if (D_8015F940 < 0x1E00) { + var_a3 = 2; + } else if (D_8015F940 < 0x2580) { + var_a3 = 1; + } + } + if (var_a3 != 0) { + func_80077240(arg0->obj.pos.x, arg0->obj.pos.y, arg0->obj.pos.z, var_a3); + } + D_80161A98 += var_a3; + D_80177850 = 0xF; +} + +s32 func_8002E4F8(u16* arg0, s32 arg1) { + if ((D_8017829C == 0) && (D_80178280[0].unk_1C8 != 0)) { + func_800BA808(arg0, arg1); + return true; + } else { + return false; + } +} + +void func_8002E548(void) { + if (D_8015F93C != 0) { + s32 sp24 = D_8015F930[1]; + + func_8008E51C(D_8015F930, D_8015F944); + if ((D_8015F930[0] == 0) && (sp24 != D_8015F930[1]) && (D_8015F930[1] < 15)) { + func_80019218(0x4900C02A, &D_800C5D28, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } + } +} + +void func_8002E5E0(Object* arg0) { + func_80187520(0x5B, arg0); +} + +void func_8002E604(Object* arg0) { + func_80187520(0x5C, arg0); +} + +void func_8002E628(Object* arg0) { + func_80187520(0x5D, arg0); +} + +void func_8002E64C(Object* arg0) { + func_80187520(0x5E, arg0); +} + +void func_8002E670(Object* arg0) { + func_80187520(0x5F, arg0); +} + +void func_8002E694(Object* arg0) { + func_80187520(0x60, arg0); +} + +void func_8002E6B8(Object* arg0) { + func_80187520(0x61, arg0); +} + +void func_8002E6DC(Object* arg0) { + func_80187520(0x62, arg0); +} + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_8002E700.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_8002ED60.s") + +void func_8002EE34(void) { + D_8015F904 = D_8017829C = D_80163FE0[1].unk_054 = D_80163FE0[2].unk_054 = D_80163FE0[3].unk_054 = 0; +} + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_8002EE64.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_8002F180.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_8002F3E0.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_8002F5F4.s") + +void func_8002F64C(void) { + if ((D_80177CD0[0] + D_80177CD0[1] + D_80177CD0[2] + D_80177CD0[3]) == 0) { + D_8017829C = 0; + } + func_8002F5F4(); +} + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_8002F69C.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_8002FB4C.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_8002FC00.s") + +s32 func_8002FE74(void) { + switch (D_80178234) { + case 14: + return D_8015F928 == (D_800C9B4C + 0x960); + case 17: + return D_8016F110[2].unk_0D0 == 4; + case 16: + return D_8016F110[1].unk_0A6 == 2; + default: + return 0; + } + + return 0; +} + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_8002FEF0.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_8003010C.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_800301F4.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_8003049C.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_8003088C.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_80031858.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_80031900.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_800319AC.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_80034E64.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_80035098.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_800352E0.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/func_80035448.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2EFE0/D_800D4E10.s") diff --git a/src/main/sf_2F300.c b/src/main/sf_2F300.c deleted file mode 100644 index 886448cf..00000000 --- a/src/main/sf_2F300.c +++ /dev/null @@ -1,78 +0,0 @@ -#include "global.h" - -extern s32 D_8015F904; -extern s32 D_80177CD0[4]; -extern s32 D_8017829C; -extern s32 D_800C9B4C; -extern s16 D_8016F5BE; -extern s16 D_8016F9F0; - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2F300/func_8002E700.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2F300/func_8002ED60.s") - -void func_8002EE34(void) { - D_8015F904 = D_8017829C = D_80163FE0[1].unk_054 = D_80163FE0[2].unk_054 = D_80163FE0[3].unk_054 = 0; -} - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2F300/func_8002EE64.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2F300/func_8002F180.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2F300/func_8002F3E0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2F300/func_8002F5F4.s") - -void func_8002F64C(void) { - if ((D_80177CD0[0] + D_80177CD0[1] + D_80177CD0[2] + D_80177CD0[3]) == 0) { - D_8017829C = 0; - } - func_8002F5F4(); -} - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2F300/func_8002F69C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2F300/func_8002FB4C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2F300/func_8002FC00.s") - -s32 func_8002FE74(void) { - switch (D_80178234) { - case 14: - return D_8015F928 == (D_800C9B4C + 0x960); - case 17: - return D_8016F110[2].unk_0D0 == 4; - case 16: - return D_8016F110[1].unk_0A6 == 2; - default: - return 0; - } - - return 0; -} - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2F300/func_8002FEF0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2F300/func_8003010C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2F300/func_800301F4.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2F300/func_8003049C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2F300/func_8003088C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2F300/func_80031858.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2F300/func_80031900.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2F300/func_800319AC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2F300/func_80034E64.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2F300/func_80035098.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2F300/func_800352E0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2F300/func_80035448.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_2F300/D_800D4E10.s") diff --git a/src/main/sf_52730.c b/src/main/sf_52730.c deleted file mode 100644 index 299b3b7a..00000000 --- a/src/main/sf_52730.c +++ /dev/null @@ -1,75 +0,0 @@ -#include "common.h" - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_52730/func_80051B30.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_52730/func_800520FC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_52730/func_800523A8.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_52730/func_80052420.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_52730/func_80052498.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_52730/func_8005250C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_52730/func_80052584.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_52730/func_800526B8.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_52730/func_80052884.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_52730/func_80052B80.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_52730/func_80052D48.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_52730/func_8005314C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_52730/func_800531A4.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_52730/func_80053658.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_52730/func_80053B00.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_52730/func_80053B18.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_52730/func_80053C38.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_52730/func_80053F7C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_52730/func_80054280.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_52730/func_80054300.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_52730/func_8005465C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_52730/func_8005478C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_52730/func_80054914.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_52730/func_80054CA4.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_52730/func_80054E80.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_52730/func_80055788.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_52730/func_80055B58.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_52730/func_80055E98.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_52730/func_80056230.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_52730/func_800563B4.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_52730/func_800564C0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_52730/func_80056E2C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_52730/func_80057248.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_52730/func_80057504.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_52730/func_80057814.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_52730/func_800578C4.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_52730/func_80057D00.s") diff --git a/src/main/sf_77E40.c b/src/main/sf_77E40.c index e39ddccd..330318c1 100644 --- a/src/main/sf_77E40.c +++ b/src/main/sf_77E40.c @@ -648,7 +648,7 @@ void func_800798F0(Object_8C* arg0) { break; case 7: Animation_GetFrameData(&D_6027320, 0, frameJointTable); - Animation_DrawSkeleton(1, &D_602742C, frameJointTable, func_800798C4, NULL, arg0, &gIdentityMatrix); + Animation_DrawSkeleton(1, D_602742C, frameJointTable, func_800798C4, NULL, arg0, &gIdentityMatrix); break; case 8: gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK); @@ -756,7 +756,7 @@ void func_800798F0(Object_8C* arg0) { } void func_8007A28C(Object_8C* arg0) { - Texture_Scroll(&D_10190C0, 16, 32, 0); + Texture_Scroll(D_10190C0, 16, 32, 0); D_8017812C = 2; arg0->obj.rot.y += 1.0f; Math_SmoothStepToF(&arg0->unk_70, arg0->unk_6C, 0.05f, 1.5f, 0.001f); diff --git a/src/main/sf_A4B50.c b/src/main/sf_A4B50.c index d1e6de8c..51a027ba 100644 --- a/src/main/sf_A4B50.c +++ b/src/main/sf_A4B50.c @@ -138,7 +138,7 @@ void func_800A4460(UnkStruct_D_80178280* arg0) { arg0->unk_0F4 += 8.0f; if ((D_80177C98 == 0) || ((arg0->unk_238 == 1) && (D_80177880 == 0))) { arg0->unk_080 = -__sinf(arg0->unk_088 * M_DTOR) * 0.5f; - if ((arg0->unk_49C < 2) || (arg0->unk_49D < 2)) { + if ((arg0->unk_49C.unk_00 < 2) || (arg0->unk_49C.unk_01 < 2)) { arg0->unk_0F0 = __sinf(arg0->unk_0F4 * M_DTOR) * 5.0f; } else { arg0->unk_0F0 = __sinf(arg0->unk_0F4 * M_DTOR) * 1.5f; @@ -152,7 +152,7 @@ void func_800A46A0(UnkStruct_D_80178280* arg0) { f32 sp40; if ((arg0->unk_238 == 0) || (D_80177880 == 1)) { - if (arg0->unk_49C < 2) { + if (arg0->unk_49C.unk_00 < 2) { if (!(D_80177DB0 & 1) && (D_80177D70[arg0->unk_1C4] != 0)) { func_8007D10C(((Rand_ZeroOne() - 0.5f) * 10.0f) + arg0->unk_2D4.x, (Rand_ZeroOne() * 5.0f) + arg0->unk_2D4.y, arg0->unk_2D4.z, 1.0f); @@ -163,7 +163,7 @@ void func_800A46A0(UnkStruct_D_80178280* arg0) { arg0->unk_0C0.y, arg0->unk_0C0.z, (Rand_ZeroOne() * 0.02f) + 0.02f, arg0->unk_1C4 + 1); } } - if (arg0->unk_49D < 2) { + if (arg0->unk_49C.unk_01 < 2) { if (!(D_80177DB0 & 1) && (D_80177D88[arg0->unk_1C4] != 0)) { func_8007D10C(((Rand_ZeroOne() - 0.5f) * 10.0f) + arg0->unk_2C8.x, (Rand_ZeroOne() * 5.0f) + arg0->unk_2C8.y, arg0->unk_2C8.z, 1.0f); @@ -336,7 +336,7 @@ void func_800A5338(void) { var_s0->obj.rot.y = D_80178310[j].unk_C; func_800612B8(&var_s0->unk_1C, var_s0->obj.id); if (var_s0->obj.id == 1) { - var_s0->unk_1C.unk_00 = D_6020760; + var_s0->unk_1C.draw = D_6020760; } var_s0++; } @@ -760,11 +760,11 @@ void func_800A6AC0(UnkStruct_D_80178280* arg0, s32 arg1, s32 arg2) { if ((arg0->unk_1CC == 0) && (D_80177AB8[arg0->unk_1C4] < 1.0f)) { if (arg1 == 1) { D_80177D40[arg0->unk_1C4] = 30; - if (arg0->unk_49C == 2) { + if (arg0->unk_49C.unk_00 == 2) { D_80177D10[arg0->unk_1C4] -= arg2; if (D_80177D10[arg0->unk_1C4] <= 0) { func_800A69F8(1, arg0->unk_2D4.x, arg0->unk_2D4.y, arg0->unk_2D4.z); - arg0->unk_49C = 1; + arg0->unk_49C.unk_00 = 1; func_8007D0E0(arg0->unk_2D4.x, arg0->unk_2D4.y, arg0->unk_2D4.z, 2.0f); D_80177D70[arg0->unk_1C4] = 50; func_800A5FA0(arg0->unk_460, 0x0900A02C, arg0->unk_1C4); @@ -775,11 +775,11 @@ void func_800A6AC0(UnkStruct_D_80178280* arg0, s32 arg1, s32 arg2) { } } else if (arg1 == 2) { D_80177D58[arg0->unk_1C4] = 30; - if (arg0->unk_49D == 2) { + if (arg0->unk_49C.unk_01 == 2) { D_80177D28[arg0->unk_1C4] -= arg2; if (D_80177D28[arg0->unk_1C4] <= 0) { func_800A69F8(0, arg0->unk_2C8.x, arg0->unk_2C8.y, arg0->unk_2C8.z); - arg0->unk_49D = 1; + arg0->unk_49C.unk_01 = 1; func_8007D0E0(arg0->unk_2C8.x, arg0->unk_2C8.y, arg0->unk_2C8.z, 2.0f); D_80177D88[arg0->unk_1C4] = 50; func_800A5FA0(arg0->unk_460, 0x0900A02C, arg0->unk_1C4); @@ -802,7 +802,7 @@ void func_800A6CD0(UnkStruct_D_80178280* arg0, s32 arg1, s32 arg2) { if ((arg2 == 39) || (arg2 == 41) || (arg2 == 42) || (arg2 == 43)) { arg2 = 40; } - if (D_801779F8 != 0) { + if (gExpertMode) { arg0->unk_268 = arg2 * 2; } else { arg0->unk_268 = arg2; @@ -817,7 +817,7 @@ void func_800A6CD0(UnkStruct_D_80178280* arg0, s32 arg1, s32 arg2) { arg0->unk_498 = 5; } else if ((D_80178234 == 9) && (D_80178284 == 0)) { arg0->unk_498 = 3; - } else if ((D_80178234 == 6) || (D_80178234 == 0xD)) { + } else if ((D_80178234 == 6) || (D_80178234 == 13)) { arg0->unk_498 = 5; } else { arg0->unk_498 = 20; @@ -1482,7 +1482,7 @@ void func_800A887C(UnkStruct_D_80178280* arg0) { Matrix_RotateZ(gCalcMatrix, -(arg0->unk_0F8 * M_DTOR), 1); sp3C.y = 0.0f; sp3C.z = 0.0f; - if (arg0->unk_49D == 2) { + if (arg0->unk_49C.unk_01 == 2) { sp3C.x = 40.0f; } else { sp3C.y = -10.0f; @@ -1492,7 +1492,7 @@ void func_800A887C(UnkStruct_D_80178280* arg0) { sp3C.x = 24.0f; } Matrix_MultVec3f(gCalcMatrix, &sp3C, &arg0->unk_2C8); - if (arg0->unk_49C == 2) { + if (arg0->unk_49C.unk_00 == 2) { sp3C.x = -40.0f; } else { sp3C.x = -30.0f; diff --git a/src/main/sf_hud.c b/src/main/sf_hud.c index 2c5b0284..623429ae 100644 --- a/src/main/sf_hud.c +++ b/src/main/sf_hud.c @@ -2353,7 +2353,7 @@ void func_80095350(Object_2F4* arg0) { func_800612B8(&arg0->unk_01C, arg0->obj.id); } -#ifdef DATA_IMPORT_PENDING +#ifdef IMPORT_DATA_PENDING void func_800953A0(Object_2F4* arg0, s32 arg1) { Vec3f D_800D2510[] = { { 1800.0f, 0.0f, -4000.0f }, @@ -2374,7 +2374,7 @@ void func_800953A0(Object_2F4* arg0, s32 arg1) { #pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_hud/func_800953A0.s") #endif -#ifdef DATA_IMPORT_PENDING +#ifdef IMPORT_DATA_PENDING void func_8009546C(Object_2F4* arg0, s32 arg1) { Vec3f D_800D2540[] = { { 1300.0f, 0.0f, -2000.0f }, { -1000.0f, 0.0f, -3000.0f }, { 800.0f, 0.0f, 0.0f }, @@ -2393,7 +2393,7 @@ void func_8009546C(Object_2F4* arg0, s32 arg1) { #pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_hud/func_8009546C.s") #endif -#ifdef DATA_IMPORT_PENDING +#ifdef IMPORT_DATA_PENDING void func_80095538(Object_2F4* arg0, s32 arg1) { Vec3f D_800D257C[] = { { 0.0f, 0.0f, -200.0f }, { -300.0f, 0.0f, -700.0f }, { 400.0f, 0.0f, -900.0f }, diff --git a/src/overlays/ovl_EBFBE0/fox_option.c b/src/overlays/ovl_EBFBE0/fox_option.c index 9262a81d..28f7b83d 100644 --- a/src/overlays/ovl_EBFBE0/fox_option.c +++ b/src/overlays/ovl_EBFBE0/fox_option.c @@ -278,7 +278,7 @@ extern u8 D_EBFBE0_801AEF5C[0x28]; void func_EBFBE0_80191B20(void) { s32 var_a1_2; - s32 var_v0_2; + bool var_v0_2; s32 i; D_80137E78 = 2; @@ -325,8 +325,8 @@ void func_EBFBE0_80191B20(void) { D_EBFBE0_801B91A8 = 0; D_EBFBE0_801B91AC = 0; D_EBFBE0_801B91B0 = 0; - var_v0_2 = D_801779F8; - D_801779F8 = 0; + var_v0_2 = gExpertMode; + gExpertMode = false; D_80177DB0 = 0; D_EBFBE0_801B8284 = 0; @@ -349,7 +349,7 @@ void func_EBFBE0_80191B20(void) { } else if (D_800D3180[9] == 2) { D_80177BB0[D_80177B48] = 1; gSaveFile.save.data.unk_00[15].unk_5 = 1; - if (var_v0_2 != 0) { + if (var_v0_2) { gSaveFile.save.data.unk_00[15].unk_4 = 1; gSaveFile.save.data.unk_00[15].unk_3 = 1; } else { @@ -858,7 +858,7 @@ void func_EBFBE0_80192D58(void) { D_EBFBE0_801AE638[0].unk_00.unk_18 = 124.0f; D_EBFBE0_801AE638[0].unk_00.unk_1C = 54.0f; } - D_801779F8 = D_EBFBE0_801B91B0; + gExpertMode = D_EBFBE0_801B91B0; } } if ((D_EBFBE0_801B91A4 == 4) && (D_EBFBE0_801B91C8 != 0)) { @@ -1802,7 +1802,7 @@ void func_EBFBE0_801962A4(void) { D_EBFBE0_801B91B0 = 0; D_EBFBE0_801B91C8 = 0; - D_801779F8 = 0; + gExpertMode = false; D_EBFBE0_801AE638[0].unk_00.unk_08 = D_8003B50; D_EBFBE0_801AE638[0].unk_00.unk_10 = 72; @@ -1959,7 +1959,7 @@ void func_EBFBE0_80196894(void) { #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_EBFBE0/fox_option/func_EBFBE0_80196894.s") #endif -#ifdef IMPORT_DATA_PËNDING +#ifdef IMPORT_DATA_PENDING extern s8 D_EBFBE0_801B7150; extern s8 D_EBFBE0_801B7154; extern s8 D_EBFBE0_801B7158; diff --git a/src/overlays/ovl_EBFBE0/fox_title.h b/src/overlays/ovl_EBFBE0/fox_title.h index b2d20669..c271d9a3 100644 --- a/src/overlays/ovl_EBFBE0/fox_title.h +++ b/src/overlays/ovl_EBFBE0/fox_title.h @@ -82,6 +82,8 @@ typedef struct { /* 0x10 */ f32 scale; } UnkStruct_D_EBFBE0_801B8688; // size = 0x14 +extern char D_EBFBE0_801ADA44[]; +extern s32 D_EBFBE0_801ADA84[]; extern UnkStruct_D_EBFBE0_801B8294 D_EBFBE0_801B6B40[]; extern UnkStruct_D_EBFBE0_801B8294 D_EBFBE0_801B6C60[]; extern f32 D_EBFBE0_801B7BB0; @@ -90,6 +92,8 @@ extern f32 D_EBFBE0_801B7BB8; extern f32 D_EBFBE0_801B7BBC; extern f32 D_EBFBE0_801B7BC0; extern f32 D_EBFBE0_801B7BC4; +extern f32 D_EBFBE0_801B7BC8; +extern f32 D_EBFBE0_801B7BCC; extern s32 D_EBFBE0_801B7BD0; extern s32 D_EBFBE0_801B7BD4; extern s32 D_EBFBE0_801B7BD8; @@ -116,6 +120,7 @@ extern f32 D_EBFBE0_801B7FC0[]; extern f32 D_EBFBE0_801B8060[]; extern s32 D_EBFBE0_801B8100; extern s32 D_EBFBE0_801B8108[]; +extern u8 D_EBFBE0_801B8248[][4]; extern f32 D_EBFBE0_801B828C; extern f32 D_EBFBE0_801B8290; extern UnkStruct_D_EBFBE0_801B8294* D_EBFBE0_801B8294; @@ -123,24 +128,47 @@ extern s32 D_EBFBE0_801B8298; extern f32 D_EBFBE0_801B829C; extern f32 D_EBFBE0_801B82A0; extern f32 D_EBFBE0_801B82A4; +extern s32 D_EBFBE0_801B82A8; +extern s32 D_EBFBE0_801B82AC; extern s32 D_EBFBE0_801B82B0; extern s32 D_EBFBE0_801B82B4; extern s32 D_EBFBE0_801B82B8; +extern s32 D_EBFBE0_801B82BC; +extern s32 D_EBFBE0_801B82C0; +extern s32 D_EBFBE0_801B82C4; extern f32 D_EBFBE0_801B82C8; extern f32 D_EBFBE0_801B82CC; extern f32 D_EBFBE0_801B82D0; extern f32 D_EBFBE0_801B82D4; extern f32 D_EBFBE0_801B82D8; extern f32 D_EBFBE0_801B82DC; +extern f32 D_EBFBE0_801B82E0; +extern f32 D_EBFBE0_801B82E4; +extern f32 D_EBFBE0_801B82E8; extern f32 D_EBFBE0_801B82EC; extern f32 D_EBFBE0_801B82F0; extern f32 D_EBFBE0_801B82F4; +extern s32 D_EBFBE0_801B82F8; +extern s32 D_EBFBE0_801B82FC; +extern s32 D_EBFBE0_801B8300; +extern f32 D_EBFBE0_801B8304; +extern f32 D_EBFBE0_801B8308; +extern f32 D_EBFBE0_801B830C; +extern s32 D_EBFBE0_801B8310; +extern s32 D_EBFBE0_801B8314; +extern s32 D_EBFBE0_801B8318; +extern s32 D_EBFBE0_801B831C; +extern s32 D_EBFBE0_801B8320; +extern s32 D_EBFBE0_801B8324; extern f32 D_EBFBE0_801B8328; extern f32 D_EBFBE0_801B832C; extern f32 D_EBFBE0_801B8330; extern s32 D_EBFBE0_801B8334; extern bool D_EBFBE0_801B8338; +extern f32 D_EBFBE0_801B833C; extern s32 D_EBFBE0_801B8340; +extern s32 D_EBFBE0_801B8344; +extern s32 D_EBFBE0_801B8348; extern UnkStruct_D_801B8350 D_EBFBE0_801B8350[]; extern f32 D_EBFBE0_801B84D0; extern f32 D_EBFBE0_801B84D4; @@ -152,6 +180,7 @@ extern UnkStruct_D_EBFBE0_801B8688 D_EBFBE0_801B8688; extern s32 D_EBFBE0_801B8694; extern s32 D_EBFBE0_801B869C; extern s32 D_EBFBE0_801B86A0; +extern s32 D_EBFBE0_801B86A4; extern f32 D_EBFBE0_801B86A8; extern f32 D_EBFBE0_801B86AC; extern f32 D_EBFBE0_801B86B0; @@ -160,13 +189,23 @@ extern f32 D_EBFBE0_801B86B8; extern f32 D_EBFBE0_801B86BC; extern f32 D_EBFBE0_801B86C0; extern f32 D_EBFBE0_801B86C4; +extern f32 D_EBFBE0_801B86C8; +extern f32 D_EBFBE0_801B86CC; +extern f32 D_EBFBE0_801B86D0; +extern f32 D_EBFBE0_801B86D4; +extern f32 D_EBFBE0_801B86D8; +extern f32 D_EBFBE0_801B86DC; extern Vec3f D_EBFBE0_801B86E0[4][50]; +extern s32 D_EBFBE0_801B9040; extern f32 D_EBFBE0_801B9044; extern f32 D_EBFBE0_801B9048; extern f32 D_EBFBE0_801B904C; extern f32 D_EBFBE0_801B9050; extern f32 D_EBFBE0_801B9054; extern f32 D_EBFBE0_801B9058; +extern f32 D_EBFBE0_801B905C; +extern f32 D_EBFBE0_801B9060; +extern f32 D_EBFBE0_801B9064; extern f32 D_EBFBE0_801B9068; extern f32 D_EBFBE0_801B906C; extern f32 D_EBFBE0_801B9070; @@ -175,6 +214,7 @@ extern f32 D_EBFBE0_801B9078; extern f32 D_EBFBE0_801B907C; extern f32 D_EBFBE0_801B9080; extern f32 D_EBFBE0_801B9084; +extern s32 D_EBFEB0_801ADA94; void func_EBFBE0_8018CC30(UnkStruct_D_EBFBE0_801B8294*, s32, f32); void func_EBFBE0_8018CD9C(Vec3f *pos, UnkStruct_D_EBFBE0_801B8294 *arg1, f32 arg2, s32 arg3); diff --git a/yamls/us/assets.yaml b/yamls/us/assets.yaml index 267b665e..8d972cbe 100644 --- a/yamls/us/assets.yaml +++ b/yamls/us/assets.yaml @@ -10,195 +10,203 @@ type: bin start: 0x137730 - - name: ast_873CB0 + - name: ast_873CB0 #1 type: bin start: 0x873CB0 - - name: ast_8A68C0 + - name: ast_8A68C0 #2 type: bin start: 0x8A68C0 - - name: ast_8AE0A0 + - name: ast_8AE0A0 #2 type: bin start: 0x8AE0A0 - - name: ast_8BFC00 + - name: ast_8BFC00 #3 type: bin start: 0x8BFC00 - - name: ast_8D99F0 + - name: ast_8D99F0 #3 type: bin start: 0x8D99F0 - - name: ast_8E1F80 + - name: ast_8E1F80 #3 type: bin start: 0x8E1F80 - - name: ast_8E92D0 + - name: ast_8E92D0 #3 type: bin start: 0x8E92D0 - - name: ast_918430 + - name: ast_918430 #4 type: bin start: 0x918430 - - name: ast_922730 + - name: ast_922730 #4 type: bin start: 0x922730 - - name: ast_92EC40 + - name: ast_92EC40 #E type: bin start: 0x92EC40 - - name: ast_940AD0 + - name: ast_940AD0 #F type: bin start: 0x940AD0 - - name: ast_955270 + - name: ast_955270 #D type: bin start: 0x955270 - - name: ast_961CE0 + - name: ast_961CE0 #6 type: bin start: 0x961CE0 - - name: ast_9A1460 + - name: ast_9A1460 #6 type: bin start: 0x9A1460 - - name: ast_9D2FD0 + - name: ast_9D2FD0 #6 type: bin start: 0x9D2FD0 - - name: ast_9DD390 + - name: ast_9DD390 #7 type: bin start: 0x9DD390 - - name: ast_9EB5E0 + - name: ast_9EB5E0 #8 type: bin start: 0x9EB5E0 - - name: ast_9F4880 + - name: ast_9F4880 #9 type: bin start: 0x9F4880 - - name: ast_A049A0 + - name: ast_A049A0 #A type: bin start: 0xA049A0 - - name: ast_A0E340 + - name: ast_A0E340 #7 type: bin start: 0xA0E340 - - name: ast_A1D0F0 + - name: ast_A1D0F0 #6 type: bin start: 0xA1D0F0 - - name: ast_A4FBB0 + - name: ast_A4FBB0 #6 type: bin start: 0xA4FBB0 - - name: ast_A58F60 + - name: ast_A58F60 #6 type: bin start: 0xA58F60 - - name: ast_A8B470 + - name: ast_A8B470 #6 type: bin start: 0xA8B470 - - name: ast_AB4000 + - name: ast_AB4000 #6 type: bin start: 0xAB4000 - - name: ast_ACF960 + - name: ast_ACF960 #6 type: bin start: 0xACF960 - - name: ast_AE60A0 + - name: ast_AE60A0 #6, #9 type: bin start: 0xAE60A0 - - name: ast_B0AA00 + - name: ast_B0AA00 #6 type: bin start: 0xB0AA00 - - name: ast_B1CA50 + - name: ast_B1CA50 #6 type: bin start: 0xB1CA50 - - name: ast_B2CA50 + - name: ast_B2CA50 #6 type: bin start: 0xB2CA50 - - name: ast_B612E0 + - name: ast_B612E0 #6 type: bin start: 0xB612E0 - - name: ast_B84560 + - name: ast_B84560 #6 type: bin start: 0xB84560 - - name: ast_BB11D0 + - name: ast_BB11D0 #6 type: bin start: 0xBB11D0 - - name: ast_BC23D0 + - name: ast_BC23D0 #6 type: bin start: 0xBC23D0 - - name: ast_BFA740 + - name: ast_BFA740 #7 type: bin start: 0xBFA740 - - name: ast_BFC510 + - name: ast_BFC510 #6 type: bin start: 0xBFC510 - - name: ast_C48F40 + - name: ast_C48F40 #6 type: bin start: 0xC48F40 - - name: ast_CA9DE0 + - name: ast_CA9DE0 #8 type: bin start: 0xCA9DE0 - - name: ast_CBFE70 + - name: ast_CBFE70 #7 type: bin start: 0xCBFE70 - - name: ast_CD2410 + - name: ast_CD2410 #5 type: bin start: 0xCD2410 - - name: ast_CDDCA0 + - name: ast_CDDCA0 #9 type: bin start: 0xCDDCA0 - - name: ast_CE9E70 + - name: ast_CE9E70 #C type: bin start: 0xCE9E70 - - name: ast_D25100 + - name: ast_D25100 #F type: bin start: 0xD25100 + # width: 128 + # height: 74 + # subsegments: + # - [0xD25100, ia8, nintendo_logo_0, 128, 16] + # - [0xD25900, ia8, nintendo_logo_1, 128, 16] + # - [0xD26100, ia8, nintendo_logo_2, 128, 16] + # - [0xD26900, ia8, nintendo_logo_3, 128, 16] + # - [0xD27100, ia8, nintendo_logo_4, 128, 10] - - name: ast_D27600 + - name: ast_D27600 #7 type: bin start: 0xD27600 - - name: ast_D43400 + - name: ast_D43400 #8 type: bin start: 0xD43400 - - name: ast_D68480 + - name: ast_D68480 #8 type: bin start: 0xD68480 - - name: ast_D91F10 + - name: ast_D91F10 #8 type: bin start: 0xD91F10 - - name: ast_DDC010 + - name: ast_DDC010 #6 type: bin start: 0xDDC010 diff --git a/yamls/us/main.yaml b/yamls/us/main.yaml index 1e6e0dbc..ccb6b88b 100644 --- a/yamls/us/main.yaml +++ b/yamls/us/main.yaml @@ -170,13 +170,12 @@ - [0x2EF40, hasm, ../libultra/rmon/rmonrcp] # Game engine - - [0x2EFE0, c, fox_2EFE0] - - [0x2F300, c, sf_2F300] + - [0x2EFE0, c, sf_2EFE0] - [0x36930, c, sf_36930] - [0x43AC0, c, sf_43AC0] - [0x43E80, c, sf_43E80] - [0x496C0, c, sf_496C0] - - [0x52730, c, sf_52730] + - [0x52730, c, fox_52730] - [0x59780, c, fox_load] - [0x5A0F0, c, fox_edata] - [0x5A2C0, c, fox_edisplay] @@ -263,14 +262,14 @@ # DATA - game engine - - [0xCA690, data, sf_2F300] + - [0xCA690, data, sf_2EFE0] - [0xCA7C0, data, sf_36930] - [0xCAA90, data, sf_43AC0] - [0xCAB00, data, sf_43E80] - [0xCAB60, data, sf_496C0] - - [0xCAE20, data, sf_52730] + - [0xCAE20, .data, fox_52730] - [0xCAFB0, .data, fox_load] - - [0xCCA70, data, fox_edata] + - [0xCCA70, .data, fox_edata] - [0xD0570, .data, fox_edisplay] - [0xD09A0, .data, fox_enmy1] - [0xD0B80, data, sf_6B3B0] @@ -287,12 +286,12 @@ - [0xD5910, .data, fox_save] # RODATA - game engine - - [0xD5A10, .rodata, sf_2F300] + - [0xD5A10, .rodata, sf_2EFE0] - [0xD5CF0, .rodata, sf_36930] - [0xD61D0, .rodata, sf_43AC0] - [0xD61F0, .rodata, sf_43E80] - [0xD6350, .rodata, sf_496C0] - - [0xD69A0, .rodata, sf_52730] + - [0xD69A0, .rodata, fox_52730] - [0xD6BA0, .rodata, fox_load] - [0xD6C20, .rodata, fox_edisplay] - [0xD6FD0, .rodata, fox_enmy1] @@ -356,6 +355,21 @@ # Game engine bss - { start: 0xDE480, type: bss, vram: 0x8015F900, name: engine } + # - { start: 0xDE480, type: bss, vram: 0x8015F900, name: sf_2EFE0 } + # - { start: 0xDE480, type: bss, vram: 0x8015F950, name: sf_36930 } + # - { start: 0xDE480, type: bss, vram: 0x801613A0, name: sf_43AC0 } + # - { start: 0xDE480, type: bss, vram: 0x801613B0, name: fox_52730 } + # - { start: 0xDE480, type: bss, vram: 0x801615D0, name: fox_edisplay } + # - { start: 0xDE480, type: bss, vram: 0x80161680, name: fox_enmy1 } + # - { start: 0xDE480, type: bss, vram: 0x80161690, name: sf_6B3B0 } + # - { start: 0xDE480, type: bss, vram: 0x801616A0, name: sf_hud } + # - { start: 0xDE480, type: bss, vram: 0x80161950, name: sf_97F80 } + # - { start: 0xDE480, type: bss, vram: 0x801619A0, name: fox_display } + # - { start: 0xDE480, type: bss, vram: 0x80161A10, name: fox_A24B0 } + # - { start: 0xDE480, type: bss, vram: 0x80161A50, name: sf_A4B50 } + # - { start: 0xDE480, type: bss, vram: 0x80178580, name: fox_rcp } + # - { start: 0xDE480, type: bss, vram: 0x80178720, name: fox_radio } + # - { start: 0xDE480, type: bss, vram: 0x80178750, name: sf_versus } - { start: 0xDE480, type: .bss, vram: 0x80178870, name: fox_save } - name: dma_table