diff --git a/include/functions.h b/include/functions.h index cd2e1b4f..026dde0b 100644 --- a/include/functions.h +++ b/include/functions.h @@ -95,12 +95,13 @@ void Mio0_Decompress(void* header, u8* dst); s32 vsprintf(char* dst, const char* fmt, va_list args); // fox_360 +void func_8002ED60(Player*); void func_8002E3E0(Object_2F4*); void func_8002E548(void); -void func_8002E5E0(Object_408*); -void func_8002E604(Object_408*); -void func_8002E628(Object_408*); -void func_8002E64C(Object_408*); +void func_8002E5E0(Boss*); +void func_8002E604(Boss*); +void func_8002E628(Boss*); +void func_8002E64C(Boss*); void func_8002E670(Object_2F4*); void func_8002E694(Object_2F4*); void func_8002E6B8(Object_2F4*); @@ -129,19 +130,23 @@ void func_80040CE4(void); void func_80042D38(void); // fox_43AC0 -void func_80042FAC(Object_408 *); -void func_80042FB8(Object_408*); -void func_80042FC4(Object_408*); -void func_80042FD0(Object_408 *); -void func_80042FDC(Object_408*); -void func_80042FE8(Object_408*); +void func_8004319C(Player* player, f32 arg1, f32 arg2, f32 arg3); +void func_80042EC0(Boss* boss); +void func_80042FAC(Boss* boss); +void func_80042FB8(Boss* boss); +void func_80042FC4(Boss* boss); +void func_80042FD0(Boss* boss); +void func_80042FDC(Boss* boss); +void func_80042FE8(Boss* boss); // fox_43E80 void func_80043468(Player* player); void func_800444BC(Player * player); void func_80047504(Player * player); +void func_80046358(Player*); // sf_496E0 +void func_80048AC0(s32 teamId); void func_80049C0C(Player *); void func_8004A52C(Player *); void func_8004AAF4(Player *); @@ -213,7 +218,7 @@ void Object_SetInfo(ObjectInfo*, u32); void Object_80_Initialize(Object_80*); void Object_4C_Initialize(Object_4C*); void Object_2F4_Initialize(Object_2F4*); -void Object_408_Initialize(Object_408*); +void Boss_Initialize(Boss*); void Item_Initialize(Item*); void Object_8C_Initialize(Object_8C*); void func_80061B68(void); @@ -261,12 +266,12 @@ void func_80068FE0(Object_4C*); void func_800690D0(s32, ObjectId); void func_80069924(Object_8C *); void func_800693E8(Object_2F4 *); -void func_80069658(Object_408 *); +void func_80069658(Boss *); void func_800696F8(Object_80 *); void func_80069858(Object_4C *); void func_80069A10(Item *); void Object_2F4_Update(Object_2F4*); -void Object_408_Update(Object_408 *); +void Boss_Update(Boss *); void Object_80_Update(Object_80 *); void Object_4C_Update(Object_4C *); void Item_Update(Item *); @@ -433,6 +438,7 @@ 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); @@ -440,6 +446,7 @@ void func_80086110(f32, f32, s32); void func_80086664(f32, f32); void func_800869A0(f32, f32, s32, f32, s32, s32); void func_80087530(f32, f32, s32); +void func_80088564(void); void func_8008865C(void); void func_8008AD94(void); void func_8008B5B0(f32 x, f32 y); @@ -458,13 +465,16 @@ void func_8008E51C(s32* , f32); void func_8008E9EC(f32, f32); void func_8008EA14(f32, f32); void func_8008FA84(void); -void func_8008FE78(Object_408*); -void func_8008FFF0(Object_408*, s32); +void func_8008FE78(Boss*); +void func_8008FFF0(Boss*, s32); bool func_8009092C(Object_2F4*); -void func_800907C4(Object_408*); +void func_800907C4(Boss*); s32 func_800915FC(Object_2F4*); void func_80092D48(Object_2F4 *); void func_80092EC0(Object_2F4*); +void func_80093164(Object_2F4*); +void func_800935E8(Player*); +void func_80095604(Player*); void func_80094954(Object_8C*); void func_80094BBC(Object_8C*); void func_80094D20(f32, f32); @@ -496,6 +506,7 @@ void func_800A3CA0(void); // fox_play s32 Play_CheckMedalStatus(u16); s32 Play_GetMaxShields(void); +void func_800A6028(Vec3f*, u32); void func_800A5844(void); void func_800A5D6C(void); void func_800A5FA0(Vec3f* , u32 , s32 ); @@ -510,6 +521,10 @@ void func_800AA800(Player *player); void func_800ACDC0(Player *, PlayerShot *, PlayerShotId ); void func_800B0F50(Player *); void func_800B44C4(Player *); +void func_800AB334(void); +void func_800AE278(Player*); +void func_800B2130(Player*); +void func_800B2574(Player*); void func_800B5FBC(Player *, s32 , s32 ); void func_800B63BC(Player *, s32); void func_800B6848(Player *, s32 ); @@ -554,72 +569,173 @@ s32 Save_Read(void); void func_EFFA40_80187520(s32, void*); +void func_DF4260_80187520(s32, void*); void func_DF4260_80187530(Object_80*); void func_DF4260_8018753C(Object_80*); -void func_DF4260_801878D8(Object_408 *); +void func_DF4260_801878D8(Boss *); void func_DF4260_8018B0B4(Object_2F4 *); -void func_DF4260_8018BE7C(Object_408 *); -void func_DF4260_8018ED78(Object_408*); +void func_DF4260_8018BE7C(Boss *); +void func_DF4260_8018ED78(Boss*); void func_DF4260_801924A8(Object_80* ); void func_DF4260_8019250C(Object_2F4 *); void func_DF4260_80192CB0(Object_2F4 *); void func_DF4260_80192EA4(Object_2F4 *); void func_DF4260_801933B4(Object_2F4 *); -void func_DF4260_801935CC(Object_408 *); -void func_DF4260_80198310(Object_408 *); -void func_DF4260_80198594(Object_408 *); +void func_DF4260_801935CC(Boss *); +void func_DF4260_80198310(Boss *); +void func_DF4260_80198594(Boss *); void func_DF4260_801988E0(void); void func_DF4260_80198C50(void); void func_DF4260_8019949C(void); void func_DF4260_8019864C(PlayerShot*); + +void func_E08400_80187520(s32, void*); void func_E08400_80187B08(Object_2F4 *); -void func_E08400_80188A40(Object_408 *); +void func_E08400_80188A40(Boss *); void func_E08400_8018CCF8(Object_2F4 *); -void func_E16C50_801ABA40(PlayerShot*); -void func_E16C50_801AC8A8(f32, f32, f32, f32, s32); -void func_E16C50_80187754(Object_408 *); +void func_E16C50_80187520(s32, void*); +void func_E16C50_80187754(Boss *); +void func_E16C50_80187944(Boss*); +void func_E16C50_8018C54C(Boss*); +void func_E16C50_8018DF74(Player *player); void func_E16C50_8018ED78(Player*); + void func_E16C50_801900FC(Vec3f*, Vec3f*, f32, f32, f32, s32, f32, s32, s32); void func_E16C50_80190430(Object_2F4 *); +void func_E16C50_801904CC(Object_2F4*); +void func_E16C50_80190A00(Object_2F4*); void func_E16C50_80190F08(Object_2F4 *); +void func_E16C50_80191010(Object_2F4*); +void func_E16C50_801914C4(Object_2F4*); void func_E16C50_801915A4(Object_2F4 *); +void func_E16C50_80191680(Object_2F4*); +void func_E16C50_80191B4C(Object_2F4*); void func_E16C50_80191BB8(Object_2F4 *); +void func_E16C50_80191BC4(Object_2F4*); void func_E16C50_80191DB0(Object_2F4*); -void func_E16C50_801932AC(Object_408 *); +void func_E16C50_80191DB0(Object_2F4*); +void func_E16C50_80191FFC(Object_2F4*); +void func_E16C50_80192094(Object_2F4*); +void func_E16C50_80192834(Object_2F4*); +void func_E16C50_80192C18(Object_2F4*); +void func_E16C50_80192E64(Object_2F4*); +void func_E16C50_80193240(Object_2F4*); +void func_E16C50_801932AC(Boss*); +void func_E16C50_801949DC(Boss*); +void func_E16C50_80194A84(Boss*); +void func_E16C50_8019969C(Object_2F4*); +void func_E16C50_8019983C(Object_2F4*); +void func_E16C50_80199A28(Object_2F4*); +void func_E16C50_80199E24(Object_2F4*); +void func_E16C50_80199F10(Object_2F4*); +void func_E16C50_8019A1FC(Object_2F4*); +void func_E16C50_8019A5D4(Object_2F4*); +void func_E16C50_8019ACCC(Object_2F4*); void func_E16C50_8019B1F0(Object_2F4 *); +void func_E16C50_8019B548(Object_2F4*); +void func_E16C50_8019B7DC(Object_2F4*); void func_E16C50_8019B810(Object_2F4 *); +void func_E16C50_8019B854(Object_2F4*); +void func_E16C50_8019BDE0(Object_2F4*); +void func_E16C50_8019BE48(Object_2F4*); +void func_E16C50_8019C1CC(Object_2F4*); void func_E16C50_8019C200(Object_2F4 *); +void func_E16C50_8019C454(Object_2F4*); +void func_E16C50_8019C83C(Object_2F4*); +void func_E16C50_8019CBEC(Object_2F4*); +void func_E16C50_8019CE58(Object_2F4*); void func_E16C50_8019D060(Object_2F4 *); +void func_E16C50_8019D15C(Object_2F4*); +void func_E16C50_8019D3C4(Object_2F4*); +void func_E16C50_8019D428(Player* player); +void func_E16C50_8019D76C(Player* player); + void func_E16C50_8019E8B8(f32, f32, f32, f32); void func_E16C50_8019E9F4(f32, f32, f32, f32, f32, f32, f32, s32); +void func_E16C50_8019EA7C(Object_2F4*); +void func_E16C50_8019F20C(Object_2F4*); +void func_E16C50_8019F7AC(Object_2F4*); +void func_E16C50_801A003C(Object_2F4*); +void func_E16C50_801A0120(Object_8C*); +void func_E16C50_801A0AF0(Object_8C*); +void func_E16C50_801A10F4(Player* player); +void func_E16C50_801A5B3C(Boss*); +void func_E16C50_801A71B8(Boss*); +void func_E16C50_801A8BE8(Player* player); +void func_E16C50_801A7930(Player* player); + void func_E16C50_801A9824(void); void func_E16C50_801AA20C(void); void func_E16C50_801AA8E8(Player*); void func_E16C50_801AACF8(Player*); +void func_E16C50_801ABA40(PlayerShot*); void func_E16C50_801AC274(Player*); void func_E16C50_801AC8A8(f32, f32, f32, f32, s32); +void func_E16C50_801AC8A8(f32, f32, f32, f32, s32); +void func_E16C50_801AC918(Object_8C*); void func_E16C50_801ACBB4(void); void func_E16C50_801ACE50(Player*); void func_E16C50_801AD328(Player*); void func_E16C50_801AD688(Object_2F4 *); +void func_E16C50_801AD6C0(Object_2F4*); +void func_E16C50_801AE168(Object_2F4*); void func_E16C50_801AE3AC(Object_2F4 *); +void func_E16C50_801AE3D8(Object_2F4*); +void func_E16C50_801AEB44(Object_2F4*); void func_E16C50_801AF9FC(Object_2F4 *); -void func_E16C50_801B10F8(Object_408 *); +void func_E16C50_801AFA5C(Object_2F4*); +void func_E16C50_801B099C(Object_2F4*); +void func_E16C50_801B0B60(Object_2F4*); +void func_E16C50_801B0EC0(Object_2F4*); +void func_E16C50_801B10F8(Boss*); +void func_E16C50_801B134C(Boss*); +void func_E16C50_801B4D84(Boss*); +void func_E16C50_801B504C(Object_2F4*); +void func_E16C50_801B50E8(Object_2F4*); +void func_E16C50_801B619C(Object_2F4*); void func_E16C50_801B6344(Object_2F4 *); +void func_E16C50_801B638C(Object_2F4*); void func_E16C50_801B6E54(Object_2F4 *); +void func_E16C50_801B6FF8(Object_2F4*); +void func_E16C50_801B7A24(Object_2F4*); void func_E16C50_801B7AF0(Object_2F4 *); +void func_E16C50_801B7C78(Object_2F4*); +void func_E16C50_801B90DC(Object_2F4*); +void func_E16C50_801B91A4(Object_2F4*); +void func_E16C50_801BA108(Object_2F4*); +void func_E16C50_801BA26C(Object_2F4*); +void func_E16C50_801BA4E4(Object_2F4*); void func_E16C50_801BA57C(Object_2F4 *); +void func_E16C50_801BA6A4(Object_2F4*); +void func_E16C50_801BAD7C(Object_2F4*); +void func_E16C50_801BADF8(Object_2F4*); +void func_E16C50_801BB204(Object_2F4*); void func_E16C50_801BB26C(Object_2F4 *); +void func_E16C50_801BB79C(Object_2F4*); +void func_E16C50_801BC930(Object_2F4*); +void func_E16C50_801BC9A0(Object_2F4*); +void func_E16C50_801BD264(Object_2F4*); +void func_E16C50_801BD54C(Object_2F4*); +void func_E16C50_801BDE6C(Object_2F4*); +void func_E16C50_801BE1FC(Object_80*); +void func_E16C50_801BE3F8(Object_2F4*); +void func_E16C50_801BEB1C(Object_2F4*); +void func_E16C50_801BEC50(Boss*); +void func_E16C50_801BEC5C(Boss*); +void func_E16C50_801BEC68(Object_2F4*); +void func_E16C50_801BEC74(Object_2F4*); void func_E16C50_801BEC80(Player*); + +void func_E51970_80187520(s32, void*); void func_E51970_80187960(Object_2F4*); void func_E51970_8018BA2C(Object_58**); void func_E51970_8018C158(Object_2F4*); void func_E51970_80191ED8(Object_58**); void func_E51970_80192264(void); -void func_E51970_80193CA4(Object_408 *); +void func_E51970_80193CA4(Boss *); void func_E51970_80198594(Object_2F4*); void func_E51970_80198930(Object_58**); void func_E51970_80199900(Object_2F4 *, s32); @@ -627,7 +743,9 @@ void func_E51970_80199C60(Object_2F4*); void func_E51970_8019AB8C(Object_2F4*); void func_E51970_8019EA68(Object_58**); -void func_E6A810_8018769C(Object_2F4 *); + +void func_E6A810_80187520(s32, void*); +void func_E6A810_8018769C(Player *); void func_E6A810_80188F30(void); void func_E6A810_80189B80(Object_2F4 *); void func_E6A810_8018ADC4(Object_2F4 *); @@ -639,8 +757,8 @@ void func_E6A810_8018E3CC(Object_2F4 *); void func_E6A810_8018E5E8(Object_2F4 *); void func_E6A810_8018EFF0(Object_4C *); void func_E6A810_8018F0D8(Object_80 *); -void func_E6A810_8018FA48(Object_408 *); -void func_E6A810_801990DC(Object_408 *); +void func_E6A810_8018FA48(Boss *); +void func_E6A810_801990DC(Boss *); void func_E6A810_80199920(void); void func_E6A810_80199F8C(Object_2F4 *); void func_E6A810_801A3E70(Object_2F4 *); @@ -657,24 +775,207 @@ void func_E6A810_801B58AC(Gfx **, f32); bool func_E6A810_801B6AEC(f32, f32, f32); void func_E6A810_801B6E20(f32, f32, f32 *, f32 *, f32 *); void func_E6A810_801AD144(PlayerShot*); +void func_E6A810_80189120(f32 x, f32 y, f32 z, f32, f32); +bool func_E6A810_801A3C20(f32); +s32 func_E6A810_801A3300(Player*, f32, f32); +s32 func_E6A810_801A3790(Player*, f32, f32); +void func_E9F1D0_8018769C(Object_2F4*); +void func_E9F1D0_80187520(s32, void*); void func_E9F1D0_801878A8(Object_58**); void func_E9F1D0_801888F4(Object_2F4 *); void func_E9F1D0_80189214(void); void func_E9F1D0_8018BDD8(void); void func_E9F1D0_8018C390(Player*); -void func_E9F1D0_8018D16C(Object_408 *); +void func_E9F1D0_8018D16C(Boss *); void func_E9F1D0_801961AC(Object_58**); void func_E9F1D0_80196314(Object_2F4*); void func_E9F1D0_80196968(Object_58**); -void func_E9F1D0_80197CC4(Object_408 *); +void func_E9F1D0_80197CC4(Boss *); void func_E9F1D0_801A3BD4(Object_2F4*); void func_E9F1D0_801A4CB0(Object_2F4*); void func_E9F1D0_801A5AD4(Player*); void func_E9F1D0_801A5FC0(Player*); void func_E9F1D0_801A6164(Player *); +void func_EBFBE0_80187520(s32, void*); + void func_EF0260_8018A96C(void); void func_EF0260_8018AAC4(void); +// void func_DF4260_801875A4(Object*); +// void func_DF4260_80189058(Object*); +// void func_DF4260_8018AA74(Object*); +// void func_DF4260_8018AED0(Object*); +// void func_DF4260_8018B15C(Object*); +// void func_DF4260_8018B418(Object*); +// void func_DF4260_8018B58C(Object*); +// void func_DF4260_8018BAAC(Object*); +// void func_DF4260_8018BBA4(Object*); +// void func_DF4260_8018BBF8(Object*); +// void func_DF4260_8018BD7C(Object*); +// void func_DF4260_8018C19C(Object*); +// void func_DF4260_8018DDAC(Object*); +// void func_DF4260_8018E290(Object*); +// void func_DF4260_8018E76C(Object*); +// void func_DF4260_8018ECAC(Object*); +// void func_DF4260_8018ED78(Object*); +// void func_DF4260_8018EE84(Object*); +// void func_DF4260_8018EF90(Object*); +// void func_DF4260_8018F044(Object*); +// void func_DF4260_8018F31C(Object*); +// void func_DF4260_801922DC(Object*); +// void func_DF4260_80192358(Object*); +// void func_DF4260_801923C0(Object*); +// void func_DF4260_8019243C(Object*); +// void func_DF4260_80192518(Object*); +// void func_DF4260_80192CD4(Object*); +// void func_DF4260_80192E2C(Object*); +// void func_DF4260_80192EB0(Object*); +// void func_DF4260_801933DC(Object*); +// void func_DF4260_801934D0(Object*); +// void func_DF4260_80193540(Object*); +// void func_DF4260_80194398(Object*); +// void func_DF4260_801985E4(Object*); +// void func_DF4260_80198968(Object*); +// void func_E08400_8018756C(Object*); +// void func_E08400_80187650(Object*); +// void func_E08400_801877C4(Object*); +// void func_E08400_8018795C(Object*); +// void func_E08400_80188344(Object*); +// void func_E08400_801887D0(Object*); +// void func_E08400_80188CAC(Object*); +// void func_E08400_80188FAC(Object*); +// void func_E08400_80189114(Object*); +// void func_E08400_8018978C(Object*); +// void func_E08400_8018BACC(Object*); +// void func_E08400_8018D9EC(Object*); +// void func_E08400_8018DA6C(Object*); +// void func_E08400_8018DAEC(Object*); +// void func_E08400_8018DB6C(Object*); +// void func_E08400_8018DBEC(Object*); +// void func_E08400_8018DCE4(Object*); +// void func_E08400_8018DE14(Object*); +// void func_E08400_8018F330(Object*); +// void func_E08400_8018F884(Object*); +// void func_E08400_8018FE38(Object*); +// void func_E08400_8018FF20(Object*); +// void func_E08400_8018FF84(Object*); +// void func_E08400_80190020(Object*); +// void func_E08400_80190078(Object*); +// void func_E08400_80193434(Object*); +// void func_E51970_80188AD0(Object*); +// void func_E51970_80188FE4(Object*); +// void func_E51970_80191054(Object*); +// void func_E51970_80191180(Object*); +// void func_E51970_801912FC(Object*); +// void func_E51970_80191AFC(Object*); +// void func_E51970_80192984(Object*); +// void func_E51970_80192A68(Object*); +// void func_E51970_80193718(Object*); +// void func_E51970_80193B1C(Object*); +// void func_E51970_801946C4(Object*); +// void func_E51970_801968F4(Object*); +// void func_E51970_8019E234(Object*); +// void func_E51970_8019E3A8(Object*); +// void func_E51970_8019E454(Object*); +// void func_E51970_8019E98C(Object*); +// void func_E6A810_80188F60(Object*); +// void func_E6A810_80188FA8(Object*); +// void func_E6A810_80189194(Object*); +// void func_E6A810_801895B8(Object*); +// void func_E6A810_80189AFC(Object*); +// void func_E6A810_80189CC8(Object*); +// void func_E6A810_8018A1C0(Object*); +// void func_E6A810_8018A544(Object*); +// void func_E6A810_8018AABC(Object*); +// void func_E6A810_8018AB44(Object*); +// void func_E6A810_8018B268(Object*); +// void func_E6A810_8018B6AC(Object*); +// void func_E6A810_8018B9D0(Object*); +// void func_E6A810_8018BE84(Object*); +// void func_E6A810_8018C8A8(Object*); +// void func_E6A810_8018E2D8(Object*); +// void func_E6A810_8018E54C(Object*); +// void func_E6A810_8018E5B4(Object*); +// void func_E6A810_8018E5F8(Object*); +// void func_E6A810_8018EF14(Object*); +// void func_E6A810_8018F038(Object*); +// void func_E6A810_8018F4D8(Object*); +// void func_E6A810_8018F8B8(Object*); +// void func_E6A810_80197A94(Object*); +// void func_E6A810_801982A8(Object*); +// void func_E6A810_8019C778(Object*); +// void func_E6A810_8019CE88(Object*); +// void func_E6A810_8019D700(Object*); +// void func_E6A810_8019E410(Object*); +// void func_E6A810_8019EA60(Object*); +// void func_E6A810_8019EE68(Object*); +// void func_E6A810_8019FF9C(Object*); +// void func_E6A810_801A0BD8(Object*); +// void func_E6A810_801A12C4(Object*); +// void func_E6A810_801A23AC(Object*); +// void func_E6A810_801A2A78(Object*); +// void func_E6A810_801A2B24(Object*); +// void func_E6A810_801A2DD8(Object*); +// void func_E6A810_801A3240(Object*); +// void func_E6A810_801A3E98(Object*); +// void func_E6A810_801A43BC(Object*); +// void func_E6A810_801A46A0(Object*); +// void func_E6A810_801A4A64(Object*); +// void func_E6A810_801A4B24(Object*); +// void func_E6A810_801A54E8(Object*); +// void func_E6A810_801A57D0(Object*); +// void func_E6A810_801A5AF0(Object*); +// void func_E6A810_801A5B4C(Object*); +// void func_E6A810_801A5D68(Object*); +// void func_E6A810_801A5E54(Object*); +// void func_E6A810_801A5F90(Object*); +// void func_E6A810_801A5FD0(Object*); +// void func_E6A810_801A6100(Object*); +// void func_E6A810_801A6144(Object*); +// void func_E6A810_801A6540(Object*); +// void func_E6A810_801A6608(Object*); +// void func_E6A810_801A67C8(Object*); +// void func_E6A810_801A68EC(Object*); +// void func_E6A810_801A7E7C(Object*); +// void func_E6A810_801AC294(Object*); +// void func_E6A810_801AC438(Object*); +// void func_E6A810_801AD6F0(Object*); +// void func_E6A810_801ADAC8(Object*); +// void func_E6A810_801ADD68(Object*); +// void func_E6A810_801AE2C0(Object*); +// void func_E6A810_801AE87C(Object*); +// void func_E6A810_801AEAA0(Object*); +// void func_E6A810_801AEC04(Object*); +// void func_E6A810_801AEEFC(Object*); +// void func_E9F1D0_801880E4(Object*); +// void func_E9F1D0_80188448(Object*); +// void func_E9F1D0_80188528(Object*); +// void func_E9F1D0_80188660(Object*); +// void func_E9F1D0_8018933C(Object*); +// void func_E9F1D0_801893B8(Object*); +// void func_E9F1D0_80189470(Object*); +// void func_E9F1D0_80189724(Object*); +// void func_E9F1D0_80189B70(Object*); +// void func_E9F1D0_8018B8C0(Object*); +// void func_E9F1D0_8018CAD4(Object*); +// void func_E9F1D0_8018CF98(Object*); +// void func_E9F1D0_8018DBF0(Object*); +// void func_E9F1D0_801928C8(Object*); +// void func_E9F1D0_80192E94(Object*); +// void func_E9F1D0_80193244(Object*); +// void func_E9F1D0_80193380(Object*); +// void func_E9F1D0_8019350C(Object*); +// void func_E9F1D0_8019356C(Object*); +// void func_E9F1D0_801935D4(Object*); +// void func_E9F1D0_80196210(Object*); +// void func_E9F1D0_80196288(Object*); +// void func_E9F1D0_80197C64(Object*); +// void func_E9F1D0_80197CB8(Object*); +// void func_E9F1D0_8019C888(Object*); +// void func_E9F1D0_8019E2C4(Object*); +// void func_E9F1D0_801A4E44(Object*); +// void func_E9F1D0_801A52B8(Object*); + #endif diff --git a/include/gfx.h b/include/gfx.h index ad127b3e..2aa8983e 100644 --- a/include/gfx.h +++ b/include/gfx.h @@ -16,8 +16,8 @@ #define GDL(dl) gSPDisplayList(gMasterDisp++, dl) // 06000000 dl #define GPC(r, g, b, a) gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, r, g, b, a) // FA000000 RRGGBBAA #define GEC(r, g, b, a) gDPSetEnvColor(gMasterDisp++, r, g, b, a) // FB000000 RRGGBBAA -#define GSGM_BACK(mode) gSPSetGeometryMode(gMasterDisp++, G_CULL_BACK) // B7000000 00002000, most common geometry mode changed -#define GCGM_BACK(mode) gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK) // B6000000 00002000 +#define GSGM_BACK() gSPSetGeometryMode(gMasterDisp++, G_CULL_BACK) // B7000000 00002000, most common geometry mode changed +#define GCGM_BACK() gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK) // B6000000 00002000 #define gSPSetOtherModeHi(pkt, settings) gSPSetOtherMode(pkt, G_SETOTHERMODE_H, G_MDSFT_BLENDMASK, 24, settings) #define gsSPSetOtherModeHi(settings) gsSPSetOtherMode(G_SETOTHERMODE_H, G_MDSFT_BLENDMASK, 24, settings) diff --git a/include/prevent_bss_reordering.h b/include/prevent_bss_reordering.h new file mode 100644 index 00000000..604e45b8 --- /dev/null +++ b/include/prevent_bss_reordering.h @@ -0,0 +1,83 @@ +#ifndef PREVENT_BSS_REORDERING_H +#define PREVENT_BSS_REORDERING_H + +/** + * To determine variable order for .bss, the compiler sorts variables by their + * "name index" mod 256, where name index is something that, with -g, gets + * incremented by struct and variable declarations, typedefs, and file markers, + * among else. (Without -g, only variable declarations affects the index.) + * This file contains enough dummy declarations to bump the index by 128. + * Including it, or removing the include, should fix bss reordering problems + * for a file, assuming the name index distance between its first and last bss + * variable is at most 128. + * Note that if a variable is declared "extern" within a header file, the name + * index is taken at that point of the extern declaration. Thus, this include + * must come before any such header. + */ + +struct Dummy0 { int x; }; +struct Dummy1 { int x; }; +struct Dummy2 { int x; }; +struct Dummy3 { int x; }; +struct Dummy4 { int x; }; +struct Dummy5 { int x; }; +struct Dummy6 { int x; }; +struct Dummy7 { int x; }; +struct Dummy8 { int x; }; +struct Dummy9 { int x; }; +struct Dummy10 { int x; }; +struct Dummy11 { int x; }; +struct Dummy12 { int x; }; +struct Dummy13 { int x; }; +struct Dummy14 { int x; }; +struct Dummy15 { int x; }; +struct Dummy16 { int x; }; +struct Dummy17 { int x; }; +struct Dummy18 { int x; }; +struct Dummy19 { int x; }; +struct Dummy20 { int x; }; +struct Dummy21 { int x; }; +struct Dummy22 { int x; }; +struct Dummy23 { int x; }; +struct Dummy24 { int x; }; +struct Dummy25 { int x; }; +struct Dummy26 { int x; }; +struct Dummy27 { int x; }; +struct Dummy28 { int x; }; +struct Dummy29 { int x; }; +struct Dummy30 { int x; }; +struct Dummy31 { int x; }; +struct Dummy32 { int x; }; +struct Dummy33 { int x; }; +struct Dummy34 { int x; }; +struct Dummy35 { int x; }; +struct Dummy36 { int x; }; +struct Dummy37 { int x; }; +struct Dummy38 { int x; }; +struct Dummy39 { int x; }; +struct Dummy40 { int x; }; +struct Dummy41 { int x; }; +struct Dummy42 { int x; }; +struct Dummy43 { int x; }; +struct Dummy44 { int x; }; +struct Dummy45 { int x; }; +struct Dummy46 { int x; }; +struct Dummy47 { int x; }; +struct Dummy48 { int x; }; +struct Dummy49 { int x; }; +struct Dummy50 { int x; }; +struct Dummy51 { int x; }; +struct Dummy52 { int x; }; +struct Dummy53 { int x; }; +struct Dummy54 { int x; }; +struct Dummy55 { int x; }; +struct Dummy56 { int x; }; +struct Dummy57 { int x; }; +struct Dummy58 { int x; }; +struct Dummy59 { int x; }; +struct Dummy60 { int x; }; +struct Dummy61 { int x; }; +struct Dummy62 { int x; }; +typedef int Dummy63; + +#endif diff --git a/include/sf64object.h b/include/sf64object.h index c3e5a8f7..c31673ac 100644 --- a/include/sf64object.h +++ b/include/sf64object.h @@ -47,12 +47,12 @@ typedef enum { /* 1 */ COL1_1, // OBJ_80_39 /* 2 */ COL1_2, /* 3 */ COL1_3, // OBJ_UNK_1000 - /* 4 */ COL1_4, // OBJ_408_308 + /* 4 */ COL1_4, // OBJ_BOSS_308 /* 5 */ COL1_5, // OBJ_80_149 /* 6 */ COL1_6, // OBJ_80_150 - /* 7 */ COL1_7, // OBJ_408_309 - /* 8 */ COL1_8, // OBJ_408_313 - /* 9 */ COL1_9, // OBJ_408_312 + /* 7 */ COL1_7, // OBJ_BOSS_309 + /* 8 */ COL1_8, // OBJ_BOSS_313 + /* 9 */ COL1_9, // OBJ_BOSS_312 } CollisonId_1; typedef enum { @@ -217,55 +217,22 @@ typedef struct { /* 0x05A */ s16 timer_05A; /* 0x05C */ s16 timer_05C; /* 0x05E */ u8 unk_05E; - /* 0x05F */ char pad5F[3]; + /* 0x060 */ s16 unk_060; /* 0x062 */ s8 unk_062; - /* 0x063 */ char pad63[1]; /* 0x064 */ s16 unk_064; /* 0x066 */ s16 unk_066; /* 0x068 */ f32 unk_068; - /* 0x06C */ Vec3f vel; - /* 0x078 */ char pad78[0xC]; + /* 0x06C */ Vec3f vel; + /* 0x078 */ f32 unk_078; + /* 0x07C */ f32 unk_07C; + /* 0x080 */ char pad80[4]; /* 0x084 */ f32 gravity; - /* 0x088 */ s16 unk_088; - /* 0x08A */ s16 unk_08A; - /* 0x08C */ char pad8C[6]; - /* 0x092 */ u16 unk_092; - /* 0x094 */ char pad94[0x12]; - /* 0x0A6 */ s16 unk_0A6; - /* 0x0A8 */ char padA8[6]; - /* 0x0AE */ s16 unk_0AE; - /* 0x0B0 */ char padB0[0x16]; - /* 0x0C6 */ u16 unk_0C6; - /* 0x0C8 */ char padC8[1]; - /* 0x0C9 */ u8 unk_0C9; - /* 0x0CA */ char padCA[6]; - /* 0x0D0 */ s16 unk_0D0; - /* 0x0D2 */ char padD2[4]; - /* 0x0D6 */ s16 unk_0D6; - /* 0x0D8 */ char padD8[4]; - /* 0x0DC */ f32 unk_0DC; - /* 0x0E0 */ f32 unk_0E0; - /* 0x0E4 */ f32 unk_0E4; - /* 0x0E8 */ f32 unk_0E8; - /* 0x0EC */ f32 unk_0EC; - /* 0x0F0 */ f32 unk_0F0; - /* 0x0F4 */ f32 unk_0F4; - /* 0x0F8 */ f32 unk_0F8; - /* 0x0FC */ f32 unk_0FC; - /* 0x100 */ Vec3f unk_100; - /* 0x10C */ char pad10C[4]; - /* 0x110 */ f32 unk_110; - /* 0x114 */ f32 unk_114; - /* 0x118 */ char pad118[0x7C]; - /* 0x194 */ f32 unk_194; - /* 0x198 */ f32 unk_198; - /* 0x19C */ f32 unk_19C; - /* 0x1A0 */ char pad1A0[0x168]; - /* 0x308 */ Vec3f unk_308; - /* 0x314 */ char pad314[0xE4]; + /* 0x088 */ s16 swork[40]; + /* 0x0D8 */ f32 fwork[50]; + /* 0x1A0 */ Vec3f vwork[50]; /* 0x3F8 */ f32 unk_3F8; /* 0x3FC */ Vec3f sfxPos; -} Object_408; // size = 0x408 +} Boss; // size = 0x408 typedef struct { /* 0x000 */ Object obj; @@ -652,36 +619,36 @@ typedef enum{ /* 289 */ OBJ_2F4_289, /* 290 */ OBJ_2F4_290, /* 291 */ OBJ_2F4_291, - /* 292 */ OBJ_408_292, - /* 293 */ OBJ_408_293, - /* 294 */ OBJ_408_294, - /* 295 */ OBJ_408_295, - /* 296 */ OBJ_408_296, - /* 297 */ OBJ_408_297, - /* 298 */ OBJ_408_298, - /* 299 */ OBJ_408_299, - /* 300 */ OBJ_408_300, - /* 301 */ OBJ_408_301, - /* 302 */ OBJ_408_302, - /* 303 */ OBJ_408_303, - /* 304 */ OBJ_408_304, - /* 305 */ OBJ_408_305, - /* 306 */ OBJ_408_306, - /* 307 */ OBJ_408_307, - /* 308 */ OBJ_408_308, - /* 309 */ OBJ_408_309, - /* 310 */ OBJ_408_310, - /* 311 */ OBJ_408_311, - /* 312 */ OBJ_408_312, - /* 313 */ OBJ_408_313, - /* 314 */ OBJ_408_314, - /* 315 */ OBJ_408_315, - /* 316 */ OBJ_408_316, - /* 317 */ OBJ_408_317, - /* 318 */ OBJ_408_318, - /* 319 */ OBJ_408_319, - /* 320 */ OBJ_408_320, - /* 321 */ OBJ_408_321, + /* 292 */ OBJ_BOSS_292, + /* 293 */ OBJ_BOSS_293, + /* 294 */ OBJ_BOSS_294, + /* 295 */ OBJ_BOSS_295, + /* 296 */ OBJ_BOSS_296, + /* 297 */ OBJ_BOSS_297, + /* 298 */ OBJ_BOSS_298, + /* 299 */ OBJ_BOSS_299, + /* 300 */ OBJ_BOSS_300, + /* 301 */ OBJ_BOSS_301, + /* 302 */ OBJ_BOSS_A6, + /* 303 */ OBJ_BOSS_303, + /* 304 */ OBJ_BOSS_304, + /* 305 */ OBJ_BOSS_305, + /* 306 */ OBJ_BOSS_306, + /* 307 */ OBJ_BOSS_ZO, + /* 308 */ OBJ_BOSS_308, + /* 309 */ OBJ_BOSS_309, + /* 310 */ OBJ_BOSS_310, + /* 311 */ OBJ_BOSS_311, + /* 312 */ OBJ_BOSS_312, + /* 313 */ OBJ_BOSS_313, + /* 314 */ OBJ_BOSS_314, + /* 315 */ OBJ_BOSS_SO, + /* 316 */ OBJ_BOSS_316, + /* 317 */ OBJ_BOSS_317, + /* 318 */ OBJ_BOSS_AQ, + /* 319 */ OBJ_BOSS_319, + /* 320 */ OBJ_BOSS_320, + /* 321 */ OBJ_BOSS_321, /* 322 */ OBJ_ITEM_LASERS, /* 323 */ OBJ_ITEM_CHECKPOINT, /* 324 */ OBJ_ITEM_SILVER_RING, diff --git a/include/sf64player.h b/include/sf64player.h index 05787c84..c17b0401 100644 --- a/include/sf64player.h +++ b/include/sf64player.h @@ -234,7 +234,7 @@ typedef struct Player { /* 0x224 */ s32 timer_224; /* 0x228 */ s32 unk_228; /* 0x22C */ s32 unk_22C; - /* 0x230 */ char pad230[4]; + /* 0x230 */ s32 unk_230; /* 0x234 */ s32 unk_234; /* 0x238 */ s32 unk_238; /* 0x23C */ s32 unk_23C; diff --git a/include/variables.h b/include/variables.h index b3e3c7f7..9d705d67 100644 --- a/include/variables.h +++ b/include/variables.h @@ -401,7 +401,7 @@ extern s32 D_80161AB8; extern Object_80 gObjects80[50]; extern Object_4C gObjects4C[40]; extern Object_2F4 gObjects2F4[60]; -extern Object_408 gObjects408[4]; +extern Boss gBosses[4]; extern Object_8C gObjects8C[100]; extern Item gItems[20]; extern PlayerShot gPlayerShots[16]; @@ -820,7 +820,7 @@ extern Gfx* D_DF4260_8019A008[]; extern f32 D_DF4260_8019A9B8[]; // ovl_E16C50 -extern f32 D_E16C50_801C4188; +// extern f32 D_E16C50_801C4188; Currently externed in relevant files for bss ordering // ovl_E51970 extern Matrix D_E51970_8019EE80; @@ -1707,6 +1707,13 @@ extern u16 D_60447A0[]; extern u16 D_6047550[]; extern Gfx D_604A9F0[]; extern Gfx D_605C230[]; +extern f32 D_6028578[]; +extern Gfx D_600F1F0[]; +extern Gfx D_6015EE0[]; +extern Gfx D_6011910[]; +extern AnimationHeader D_6018994; +extern Limb* D_6018BA0[]; +extern Gfx D_601B2B0[]; // ast_9DD390, ast_A0E340, ast_BFA740, ast_CBFE70, ast_D27600 extern Gfx D_7000000[]; diff --git a/linker_scripts/us/symbol_addrs.txt b/linker_scripts/us/symbol_addrs.txt index cf7e2386..4ae1305f 100644 --- a/linker_scripts/us/symbol_addrs.txt +++ b/linker_scripts/us/symbol_addrs.txt @@ -81,7 +81,6 @@ D_800D503C = 0x800D503C; // force_migration:True D_800D5248 = 0x800D5248; // force_migration:True D_800D525C = 0x800D525C; // force_migration:True D_800D8560 = 0x800D8560; // force_migration:True -D_800D55E4_fake = 0x800D55E4; // force_migration:True D_800D8570 = 0x800D8570; // force_migration:True D_800D8594 = 0x800D8594; // force_migration:True D_800C93EC = 0x800C93EC; // force_migration:True diff --git a/linker_scripts/us/symbol_addrs_engine.txt b/linker_scripts/us/symbol_addrs_engine.txt index 7ef01546..396b94ca 100644 --- a/linker_scripts/us/symbol_addrs_engine.txt +++ b/linker_scripts/us/symbol_addrs_engine.txt @@ -198,7 +198,7 @@ Object_80_Draw = 0x8005D654; Object_4C_Draw = 0x8005D8B8; Object_2F4_Draw2 = 0x8005D954; Object_2F4_Draw1 = 0x8005DBC0; -Object_408_Draw = 0x8005E1B8; +Boss_Draw = 0x8005E1B8; Object_8C_Draw1 = 0x8005E454; Object_8C_Draw2 = 0x8005E538; Item_Draw = 0x8005E7B8; @@ -227,13 +227,13 @@ Object_SetInfo = 0x800612B8; Object_80_Initialize = 0x80061364; Object_4C_Initialize = 0x80061394; Object_2F4_Initialize = 0x800613C4; -Object_408_Initialize = 0x80061404; +Boss_Initialize = 0x80061404; Item_Initialize = 0x80061444; Object_8C_Initialize = 0x80061474; Object_80_Load = 0x800614B4; Object_4C_Load = 0x800615A0; Object_2F4_Load = 0x8006168C; -Object_408_Load = 0x80061778; +Boss_Load = 0x80061778; Item_Load = 0x80061864; func_80061958 = 0x80061958; func_80061A4C = 0x80061A4C; @@ -305,7 +305,7 @@ func_80069858 = 0x80069858; func_80069924 = 0x80069924; func_80069A10 = 0x80069A10; Object_2F4_Update = 0x80069AAC; -Object_408_Update = 0x80069CBC; +Boss_Update = 0x80069CBC; Object_80_Update = 0x80069DF4; Object_4C_Update = 0x80069E88; Item_Update = 0x80069F30; @@ -381,7 +381,7 @@ D_80161AB8 = 0x80161AB8; gObjects80 = 0x80161B00; //size:0x1900 gObjects4C = 0x80163400; //size:0xBE0 gObjects2F4 = 0x80163FE0; //size:0xB130 -gObjects408 = 0x8016F110; //size:0x1020 +gBosses = 0x8016F110; //size:0x1020 gObjects8C = 0x80170130; //size:0x36B0 gItems = 0x801737E0; //size:0x870 gPlayerShots = 0x80174050; //size:0x700 diff --git a/linker_scripts/us/symbol_addrs_overlays.txt b/linker_scripts/us/symbol_addrs_overlays.txt index 81c75042..88f5f7f4 100644 --- a/linker_scripts/us/symbol_addrs_overlays.txt +++ b/linker_scripts/us/symbol_addrs_overlays.txt @@ -49,6 +49,47 @@ func_E16C50_801915A4 = 0x801915A4; func_E16C50_80191BB8 = 0x80191BB8; D_E16C50_801C2240 = 0x801C2240; D_E16C50_801C4188 = 0x801C4188; +D_E16C50_801C2250 = 0x801C2250;//size:0xA0 segment:ovl_E16C50 +D_E16C50_801C22F0 = 0x801C22F0;//size:0x40 segment:ovl_E16C50 +D_E16C50_801BF1F0 = 0x801BF1F0;//size:0x30 type:f32 segment:ovl_E16C50 +D_E16C50_801BF220 = 0x801BF220;//size:0x30 type:f32 segment:ovl_E16C50 +D_E16C50_801BF250 = 0x801BF250;//size:0x30 type:f32 segment:ovl_E16C50 +D_E16C50_801BF280 = 0x801BF280;//size:0x30 type:f32 segment:ovl_E16C50 +D_E16C50_801BF2B0 = 0x801BF2B0;//size:0x30 type:f32 segment:ovl_E16C50 +D_E16C50_801BF2E0 = 0x801BF2E0;//size:0x30 type:f32 segment:ovl_E16C50 +D_E16C50_801BF8AC = 0x801BF8AC;//size:0xC type:Vec3f segment:ovl_E16C50 +D_E16C50_801BF8B8 = 0x801BF8B8;//size:0xC type:Vec3f segment:ovl_E16C50 +D_E16C50_801BF8C4 = 0x801BF8C4;//size:0x8 type:f32 segment:ovl_E16C50 +D_E16C50_801BED10 = 0x801BED10;//size:0xC type:Vec3f segment:ovl_E16C50 +D_E16C50_801BED1C = 0x801BED1C;//size:0xC type:Vec3f segment:ovl_E16C50 +D_E16C50_801BED70 = 0x801BED70;//size:0x90 type:Vec3f segment:ovl_E16C50 +D_E16C50_801BEE00 = 0x801BEE00;//size:0x90 type:Vec3f segment:ovl_E16C50 +D_E16C50_801BEEF0 = 0x801BEEF0;//size:0x90 type:Vec3f segment:ovl_E16C50 +D_E16C50_801BEF80 = 0x801BEF80;//size:0x90 type:Vec3f segment:ovl_E16C50 +D_E16C50_801BF070 = 0x801BF070;//size:0x90 type:Vec3f segment:ovl_E16C50 +D_E16C50_801BF100 = 0x801BF100;//size:0x90 type:Vec3f segment:ovl_E16C50 +D_E16C50_801BF190 = 0x801BF190;//size:0x30 type:f32 segment:ovl_E16C50 + +D_E16C50_801C2330 = 0x801C2330;//segment:ovl_E16C50 type:s32 size:0xA0 +D_E16C50_801C23D0 = 0x801C23D0;//segment:ovl_E16C50 type:s32 size:0x118 +D_E16C50_801C24E8 = 0x801C24E8;//segment:ovl_E16C50 type:f32 size:0x258 + +D_E16C50_801C27C8 = 0x801C27C8; //segment:ovl_E16C50 size:0x12C0 +D_E16C50_801C3A88 = 0x801C3A88; //segment:ovl_E16C50 size:0x700 +D_E16C50_801C4190 = 0x801C4190; //segment:ovl_E16C50 size:0x28 +D_E16C50_801C41B8 = 0x801C41B8; //segment:ovl_E16C50 size:0x78 +D_E16C50_801C4230 = 0x801C4230; //segment:ovl_E16C50 size:0x70 +D_E16C50_801C42A0 = 0x801C42A0; //segment:ovl_E16C50 size:0x68 +D_E16C50_801C4308 = 0x801C4308; //segment:ovl_E16C50 size:0x148 +D_E16C50_801C0060 = 0x801C0060; //segment:ovl_E16C50 type:f32 +D_E16C50_801BFE14 = 0x801BFE14; //segment:ovl_E16C50 type:s32 +D_E16C50_801C0264 = 0x801C0264; //segment:ovl_E16C50 type:s32 +D_E16C50_801C02C8 = 0x801C02C8; //segment:ovl_E16C50 type:f32 +D_E16C50_801C02D0 = 0x801C02D0; //segment:ovl_E16C50 type:s32 +D_E16C50_801C0130 = 0x801C0130; //segment:ovl_E16C50 ignore:True +D_E16C50_801C2740 = 0x801C2740; //segment:ovl_E16C50 size:0x28 +D_E16C50_801C2768 = 0x801C2768; //segment:ovl_E16C50 size:0x38 +D_E16C50_801C27A0 = 0x801C27A0; //segment:ovl_E16C50 size:0x20 func_E51970_80198594 = 0x80198594; func_E51970_80193CA4 = 0x80193CA4; diff --git a/src/main/fox_360.c b/src/main/fox_360.c index 1c2dc5cb..63d250ae 100644 --- a/src/main/fox_360.c +++ b/src/main/fox_360.c @@ -1,8 +1,5 @@ #include "global.h" -// placeholder for ambiguous overlay function -void func_80187520(s32, void*); - typedef struct { s32 unk_00; char unk_04[0x2F0]; @@ -110,36 +107,36 @@ void func_8002E548(void) { } } -void func_8002E5E0(Object_408* obj408) { - func_80187520(0x5B, obj408); +void func_8002E5E0(Boss* boss) { + func_E51970_80187520(91, boss); } -void func_8002E604(Object_408* obj408) { - func_80187520(0x5C, obj408); +void func_8002E604(Boss* boss) { + func_E51970_80187520(92, boss); } -void func_8002E628(Object_408* obj408) { - func_80187520(0x5D, obj408); +void func_8002E628(Boss* boss) { + func_E51970_80187520(93, boss); } -void func_8002E64C(Object_408* obj408) { - func_80187520(0x5E, obj408); +void func_8002E64C(Boss* boss) { + func_E51970_80187520(94, boss); } -void func_8002E670(Object_2F4* obj408) { - func_80187520(0x5F, obj408); +void func_8002E670(Object_2F4* obj2F4) { + func_E51970_80187520(95, obj2F4); } -void func_8002E694(Object_2F4* obj408) { - func_80187520(0x60, obj408); +void func_8002E694(Object_2F4* obj2F4) { + func_E51970_80187520(96, obj2F4); } -void func_8002E6B8(Object_2F4* obj408) { - func_80187520(0x61, obj408); +void func_8002E6B8(Object_2F4* obj2F4) { + func_E51970_80187520(97, obj2F4); } -void func_8002E6DC(Object_2F4* obj408) { - func_80187520(0x62, obj408); +void func_8002E6DC(Object_2F4* obj2F4) { + func_E51970_80187520(98, obj2F4); } void func_8002E700(Player* player) { @@ -470,22 +467,22 @@ void func_8002F69C(Object_2F4* obj2F4) { if (D_8015F928 == D_800C9B4C) { func_8002F3E0(); obj2F4->unk_0B8 = 3; - gPlayer->state_1C8 = PLAYERSTATE_1C8_0; + gPlayer[0].state_1C8 = PLAYERSTATE_1C8_0; if ((gCurrentLevel == LEVEL_VENOM_2) || (gCurrentLevel == LEVEL_BOLSE)) { - gPlayer->unk_034 = 20.0f; + gPlayer[0].unk_034 = 20.0f; } func_8001D444(0, 0x802B, 0, 0xFF); func_8002EE34(); if ((gCurrentLevel == LEVEL_FORTUNA) || (gCurrentLevel == LEVEL_VENOM_2)) { - gPlayer->camEye.x = 4500.0f; + gPlayer[0].camEye.x = 4500.0f; } else if (gCurrentLevel == LEVEL_BOLSE) { - gPlayer->camEye.x = 5500.0f; + gPlayer[0].camEye.x = 5500.0f; } - gPlayer->camEye.y = 2500.0f; - gPlayer->camEye.z = 5000.0f; - gPlayer->camAt.x = gObjects2F4[4].obj.pos.x; - gPlayer->camAt.y = gObjects2F4[4].obj.pos.y; - gPlayer->camAt.z = gObjects2F4[4].obj.pos.z; + gPlayer[0].camEye.y = 2500.0f; + gPlayer[0].camEye.z = 5000.0f; + gPlayer[0].camAt.x = gObjects2F4[4].obj.pos.x; + gPlayer[0].camAt.y = gObjects2F4[4].obj.pos.y; + gPlayer[0].camAt.z = gObjects2F4[4].obj.pos.z; } if (D_8015F928 > D_800C9B4C) { if (D_8015F908 == 0) { @@ -611,9 +608,9 @@ bool func_8002FE74(void) { case LEVEL_FORTUNA: return D_8015F928 == D_800C9B4C + 2400; case LEVEL_BOLSE: - return gObjects408[2].unk_0D0 == 4; + return gBosses[2].swork[36] == 4; case LEVEL_KATINA: - return gObjects408[1].unk_0A6 == 2; + return gBosses[1].swork[15] == 2; } return false; } @@ -655,11 +652,11 @@ void func_8002FEF0(Object_2F4* arg0) { } } } - if ((gPlayer->state_1C8 == PLAYERSTATE_1C8_3) && (D_8015F910 == 0)) { + if ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_3) && (D_8015F910 == 0)) { if (D_8015F90C != 0) { D_8015F90C--; } - if ((gPlayer->shields < 64) || func_8002FE74() || (D_8015F90C == 1)) { + if ((gPlayer[0].shields < 64) || func_8002FE74() || (D_8015F90C == 1)) { D_80161690 = 60; D_8015F910 = 1; } @@ -667,7 +664,7 @@ void func_8002FEF0(Object_2F4* arg0) { } void func_8003010C(Object_2F4* obj2F4) { - if ((gPlayer->state_1C8 == PLAYERSTATE_1C8_4) || (gPlayer->state_1C8 == PLAYERSTATE_1C8_6)) { + if ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_4) || (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_6)) { Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); return; } @@ -693,7 +690,7 @@ void func_8003010C(Object_2F4* obj2F4) { } s32 func_800301F4(Object_2F4* obj2F4) { - Object_408* obj408; + Boss* boss; f32 temp_ft4; f32 temp_ft5; s32 i; @@ -720,11 +717,11 @@ s32 func_800301F4(Object_2F4* obj2F4) { } } } - obj408 = gObjects408; - if ((gCurrentLevel == LEVEL_SECTOR_Z) && (fabsf(obj408->obj.pos.x - (obj2F4->obj.pos.x + temp_ft4)) < 2000.0f) && - (fabsf(obj408->obj.pos.z - (obj2F4->obj.pos.z + temp_ft5)) < 2000.0f)) { - if (fabsf(obj408->obj.pos.y - obj2F4->obj.pos.y) < 1500.0f) { - if (obj408->obj.pos.y < obj2F4->obj.pos.y) { + boss = &gBosses[0]; + if ((gCurrentLevel == LEVEL_SECTOR_Z) && (fabsf(boss->obj.pos.x - (obj2F4->obj.pos.x + temp_ft4)) < 2000.0f) && + (fabsf(boss->obj.pos.z - (obj2F4->obj.pos.z + temp_ft5)) < 2000.0f)) { + if (fabsf(boss->obj.pos.y - obj2F4->obj.pos.y) < 1500.0f) { + if (boss->obj.pos.y < obj2F4->obj.pos.y) { return 1; } else { return -1; @@ -743,10 +740,10 @@ s32 func_8003049C(Object_2F4* arg0) { f32 temp_fa0; f32 temp_ft4; f32 var_ft5; - Object_408* obj408 = &gObjects408[0]; + Boss* boss = &gBosses[0]; s32 pad[4]; - if (gPlayer->state_1C8 == PLAYERSTATE_1C8_2) { + if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_2) { return 0; } if ((gLevelType == LEVELTYPE_SPACE) && (gCurrentLevel != LEVEL_BOLSE)) { @@ -770,18 +767,18 @@ s32 func_8003049C(Object_2F4* arg0) { var_ft5 = 720.0f; } - if (obj408->obj.id == OBJ_408_293) { + if (boss->obj.id == OBJ_BOSS_293) { var_ft5 = 350.0f; - } else if (obj408->obj.id == OBJ_408_309) { + } else if (boss->obj.id == OBJ_BOSS_309) { sp44 = 2000.0f; var_ft5 = 750.0f; - } else if (obj408->obj.id == OBJ_408_317) { + } else if (boss->obj.id == OBJ_BOSS_317) { sp44 = 1500.0f; var_ft5 = 700.0f; } - if ((fabsf(obj408->obj.pos.x - (arg0->obj.pos.x + temp_fa0)) < sp44) && - (fabsf(obj408->obj.pos.z - (arg0->obj.pos.z + temp_ft4)) < sp44) && - (fabsf(obj408->obj.pos.y - arg0->obj.pos.y) < var_ft5)) { + if ((fabsf(boss->obj.pos.x - (arg0->obj.pos.x + temp_fa0)) < sp44) && + (fabsf(boss->obj.pos.z - (arg0->obj.pos.z + temp_ft4)) < sp44) && + (fabsf(boss->obj.pos.y - arg0->obj.pos.y) < var_ft5)) { return 1; } return 0; @@ -812,7 +809,7 @@ void func_8003088C(Object_2F4* arg0) { if (arg0->unk_0D0 != 0) { var_a1 = false; if ((arg0->unk_0B6 == 3) || - ((gCurrentLevel == LEVEL_BOLSE) && (gObjects408[1].obj.status != 0) && (arg0->unk_0E4 >= 4)) || + ((gCurrentLevel == LEVEL_BOLSE) && (gBosses[1].obj.status != 0) && (arg0->unk_0E4 >= 4)) || ((gCurrentLevel == LEVEL_VENOM_2) && (arg0->unk_0E4 >= 4) && (arg0->unk_0E4 < 10) && (arg0->unk_0D0 == 2))) { arg0->unk_0D6 = 0; @@ -1129,10 +1126,10 @@ void func_8003088C(Object_2F4* arg0) { } void func_80031858(Object_2F4* obj2F4) { - if ((gPlayer->state_1C8 == PLAYERSTATE_1C8_3) && (obj2F4->unk_0B0 != 0) && - (fabsf(obj2F4->obj.pos.x - gPlayer->pos.x) < 1000.0f) && - (fabsf(obj2F4->obj.pos.y - gPlayer->pos.y) < 1000.0f) && - (fabsf(obj2F4->obj.pos.z - gPlayer->unk_138) < 1000.0f)) { + if ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_3) && (obj2F4->unk_0B0 != 0) && + (fabsf(obj2F4->obj.pos.x - gPlayer[0].pos.x) < 1000.0f) && + (fabsf(obj2F4->obj.pos.y - gPlayer[0].pos.y) < 1000.0f) && + (fabsf(obj2F4->obj.pos.z - gPlayer[0].unk_138) < 1000.0f)) { obj2F4->unk_078++; } else { obj2F4->unk_078 = 0; @@ -1284,7 +1281,7 @@ void func_800319AC(Object_2F4* this) { case 8: break; case 1: - if (gPlayer->shields < (Play_GetMaxShields() / 2)) { + if (gPlayer[0].shields < (Play_GetMaxShields() / 2)) { func_800BA808(gMsg_ID_20298, RCID_FALCO); } else if (Rand_ZeroOne() < 0.5f) { func_800BA808(gMsg_ID_20280, RCID_FALCO); @@ -1293,7 +1290,7 @@ void func_800319AC(Object_2F4* this) { } break; case 2: - if (gPlayer->shields < (Play_GetMaxShields() / 2)) { + if (gPlayer[0].shields < (Play_GetMaxShields() / 2)) { func_800BA808(gMsg_ID_20297, RCID_SLIPPY); } else if (Rand_ZeroOne() < 0.5f) { func_800BA808(gMsg_ID_20282, RCID_SLIPPY); @@ -1302,7 +1299,7 @@ void func_800319AC(Object_2F4* this) { } break; case 3: - if (gPlayer->shields < (Play_GetMaxShields() / 2)) { + if (gPlayer[0].shields < (Play_GetMaxShields() / 2)) { func_800BA808(gMsg_ID_20296, RCID_PEPPY); } else if (Rand_ZeroOne() < 0.5f) { func_800BA808(gMsg_ID_20281, RCID_PEPPY); @@ -1376,7 +1373,7 @@ void func_800319AC(Object_2F4* this) { sp104 = 1; break; case 0: - if (gPlayer->state_1C8 != PLAYERSTATE_1C8_9) { + if (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_9) { this->unk_114 = this->unk_118 = 40.0f; if (gObjects2F4->unk_0B8 == 5) { Math_SmoothStepToF(&this->unk_0F4.x, 30.0f, 0.1f, 0.5f, 0.0f); @@ -1439,8 +1436,8 @@ void func_800319AC(Object_2F4* this) { } if (this->unk_0E6 == 0) { if (gCurrentLevel != LEVEL_VENOM_2) { - if (((gPlayer->unk_4DC != 0) && (this->unk_060 > 10)) || - ((gCurrentLevel == LEVEL_BOLSE) && (gPlayer->state_1C8 == PLAYERSTATE_1C8_0))) { + if (((gPlayer[0].unk_4DC != 0) && (this->unk_060 > 10)) || + ((gCurrentLevel == LEVEL_BOLSE) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_0))) { this->unk_0B8 = 3; this->unk_04E = 300; this->timer_0BC = 160; @@ -1448,7 +1445,7 @@ void func_800319AC(Object_2F4* this) { func_8002F5F4(gMsg_ID_9369, RCID_WOLF); } break; - } else if ((this->unk_060 > 200) && (gPlayer->timer_224 != 0)) { + } else if ((this->unk_060 > 200) && (gPlayer[0].timer_224 != 0)) { this->unk_060 = 100; break; } @@ -1459,15 +1456,15 @@ void func_800319AC(Object_2F4* this) { spC8 = __cosf(((this->index * 45) + (gFrameCount * 2)) * M_DTOR) * 100.0f; spC4 = __sinf(((this->index * 45) + gFrameCount) * M_DTOR) * 100.0f; } - if (gPlayer->unk_4DC == 0) { - this->unk_124.x = gPlayer->pos.x + spCC; - this->unk_124.y = gPlayer->pos.y + spC8; - this->unk_124.z = gPlayer->unk_138 + spC4; - this->unk_118 = gPlayer->unk_0D0 + 10.0f; + if (gPlayer[0].unk_4DC == 0) { + this->unk_124.x = gPlayer[0].pos.x + spCC; + this->unk_124.y = gPlayer[0].pos.y + spC8; + this->unk_124.z = gPlayer[0].unk_138 + spC4; + this->unk_118 = gPlayer[0].unk_0D0 + 10.0f; } if ((gObjects2F4->unk_0B8 == 6) && (this->unk_0E4 < 4)) { this->unk_120 = 3.0f; - this->unk_118 = gPlayer->unk_0D0 - 5.0f; + this->unk_118 = gPlayer[0].unk_0D0 - 5.0f; this->unk_07C = 2; } else if ((gCurrentLevel == LEVEL_VENOM_2) && (this->unk_0E4 >= 4)) { this->unk_120 = 1.6f; @@ -1506,9 +1503,9 @@ void func_800319AC(Object_2F4* this) { this->unk_120 = 1.4f; } } else { - this->unk_124.x = gObjects408->obj.pos.x; - this->unk_124.y = gObjects408->obj.pos.y + 400.0f; - this->unk_124.z = gObjects408->obj.pos.z; + this->unk_124.x = gBosses[0].obj.pos.x; + this->unk_124.y = gBosses[0].obj.pos.y + 400.0f; + this->unk_124.z = gBosses[0].obj.pos.z; this->unk_118 = 40.0f; } if ((this->unk_0E6 >= 0) && (this->unk_0E6 != 100) && (gObjects2F4->unk_0B8 != 6)) { @@ -1517,9 +1514,9 @@ void func_800319AC(Object_2F4* this) { if (this->unk_0E6 != 0) { this->unk_118 = gObjects2F4[this->unk_0E6].unk_114 - 5.0f; } else { - this->unk_118 = gPlayer->unk_0D0 - 5.0f; - if ((gCurrentLevel == LEVEL_VENOM_2) && (gPlayer->state_1C8 == PLAYERSTATE_1C8_5) && - (gPlayer->unk_4D8 > 100.0f)) { + this->unk_118 = gPlayer[0].unk_0D0 - 5.0f; + if ((gCurrentLevel == LEVEL_VENOM_2) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_5) && + (gPlayer[0].unk_4D8 > 100.0f)) { this->unk_090 = 8; } } @@ -1774,7 +1771,7 @@ void func_800319AC(Object_2F4* this) { spE0 = 0.0f; } spDC = (Rand_ZeroOne() - 0.5f) * 10000.0f; - if ((gCurrentLevel == LEVEL_KATINA) && (gPlayer->state_1C8 == PLAYERSTATE_1C8_0)) { + if ((gCurrentLevel == LEVEL_KATINA) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_0)) { spE4 = (Rand_ZeroOne() - 0.5f) * 5000.0f; spDC = (Rand_ZeroOne() - 0.5f) * 5000.0f; } @@ -2129,9 +2126,9 @@ void func_80035098(Object_2F4* obj2F4) { Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -30.0f, 1); Matrix_RotateZ(gGfxMatrix, -obj2F4->obj.rot.z * M_DTOR, 1); Matrix_RotateX(gGfxMatrix, -obj2F4->obj.rot.x * M_DTOR, 1); - Matrix_RotateY(gGfxMatrix, -obj2F4->obj.rot.y * (0, M_DTOR) - gPlayer->unk_058, 1); // fake - Matrix_RotateX(gGfxMatrix, gPlayer->unk_05C, 1); - Matrix_RotateZ(gGfxMatrix, obj2F4->unk_08C * (gFrameCount * 20.0f) * M_DTOR, 1); + Matrix_RotateY(gGfxMatrix, M_DTOR * -obj2F4->obj.rot.y - gPlayer[0].unk_058, 1); + Matrix_RotateX(gGfxMatrix, gPlayer[0].unk_05C, 1); + Matrix_RotateZ(gGfxMatrix, gFrameCount * 20.0f * (*obj2F4).unk_08C * M_DTOR, 1); if (obj2F4->unk_08C < 0) { Matrix_RotateX(gGfxMatrix, M_PI, 1); } diff --git a/src/main/fox_43AC0.c b/src/main/fox_43AC0.c index f664975e..e4a30fde 100644 --- a/src/main/fox_43AC0.c +++ b/src/main/fox_43AC0.c @@ -9,7 +9,7 @@ s32 D_800C9E90[28] = { const f32 D_800D55D0[] = { 6000.0f, 18000.0f, -6000.0f, -18000.0f }; -void func_80042EC0(Object_408* obj408) { +void func_80042EC0(Boss* boss) { s32 var_a3; f32 var_fv0; @@ -26,33 +26,33 @@ void func_80042EC0(Object_408* obj408) { } if (var_a3 != 0) { var_fv0 = 0.0f; - if (obj408->obj.id == OBJ_408_292) { + if (boss->obj.id == OBJ_BOSS_292) { var_fv0 = 300.0f; - } else if (obj408->obj.id == OBJ_408_306) { + } else if (boss->obj.id == OBJ_BOSS_306) { var_fv0 = 200.0f; } - func_80077240(obj408->obj.pos.x, obj408->obj.pos.y + var_fv0, obj408->obj.pos.z, var_a3); + func_80077240(boss->obj.pos.x, boss->obj.pos.y + var_fv0, boss->obj.pos.z, var_a3); } gHitCount += var_a3 + 1; - D_80177850 = 0xF; + D_80177850 = 15; } -void func_80042FAC(Object_408* obj408) { +void func_80042FAC(Boss* boss) { } -void func_80042FB8(Object_408* obj408) { +void func_80042FB8(Boss* boss) { } -void func_80042FC4(Object_408* obj408) { +void func_80042FC4(Boss* boss) { } -void func_80042FD0(Object_408* obj408) { +void func_80042FD0(Boss* boss) { } -void func_80042FDC(Object_408* obj408) { +void func_80042FDC(Boss* boss) { } -void func_80042FE8(Object_408* obj408) { +void func_80042FE8(Boss* boss) { } void func_80042FF4(Object_2F4* obj2F4, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7, f32 arg8, diff --git a/src/main/fox_97F80.c b/src/main/fox_97F80.c index a2f93cdb..1602158e 100644 --- a/src/main/fox_97F80.c +++ b/src/main/fox_97F80.c @@ -1,25 +1,26 @@ #include "global.h" +#include "prevent_bss_reordering.h" -static f32 __dx1; -static f32 __dx2; -static f32 __dy1; -static f32 __dy2; -static f32 __dz1; -static f32 __dz2; -static f32 __vtx0_x; -static f32 __vtx0_y; -static f32 __vtx0_z; -static f32 __vtx1_x; -static f32 __vtx1_y; -static f32 __vtx1_z; -static f32 __vtx2_x; -static f32 __vtx2_y; -static f32 __vtx2_z; -static f32 __vtx3_x; -static f32 __vtx3_y; -static f32 __vtx3_z; -static f32 __pos_x; -static f32 __pos_z; +f32 __dx1; +f32 __dx2; +f32 __dy1; +f32 __dy2; +f32 __dz1; +f32 __dz2; +f32 __vtx0_x; +f32 __vtx0_y; +f32 __vtx0_z; +f32 __vtx1_x; +f32 __vtx1_y; +f32 __vtx1_z; +f32 __vtx2_x; +f32 __vtx2_y; +f32 __vtx2_z; +f32 __vtx3_x; +f32 __vtx3_y; +f32 __vtx3_z; +f32 __pos_x; +f32 __pos_z; #define TRINORM_X(A, B, C) ((B##_y - A##_y) * (C##_z - B##_z) - (B##_z - A##_z) * (C##_y - B##_y)) #define TRINORM_Y(A, B, C) ((B##_z - A##_z) * (C##_x - B##_x) - (B##_x - A##_x) * (C##_z - B##_z)) diff --git a/src/main/fox_beam.c b/src/main/fox_beam.c index 61ed0ba7..7ed3bfab 100644 --- a/src/main/fox_beam.c +++ b/src/main/fox_beam.c @@ -478,7 +478,7 @@ bool func_8003774C(PlayerShot* shot, ObjectId objId, Object* obj) { sp7C.z = obj->pos.z - shot->obj.pos.z; // undefined behavior: if this check fails, the function returns no value if (((fabsf(sp7C.x) < 1100.0f) && (fabsf(sp7C.z) < 1100.0f) && (shot->obj.pos.y < 900.0f)) || - (objId == OBJ_408_313) || (objId == OBJ_UNK_1000) || (objId == OBJ_80_39)) { + (objId == OBJ_BOSS_313) || (objId == OBJ_UNK_1000) || (objId == OBJ_80_39)) { Matrix_RotateY(gCalcMatrix, -obj->rot.y * M_DTOR, 0); sp7C.x = shot->obj.pos.x - obj->pos.x; sp7C.y = shot->obj.pos.y - obj->pos.y; @@ -510,19 +510,19 @@ bool func_8003774C(PlayerShot* shot, ObjectId objId, Object* obj) { case OBJ_80_150: objId = COL1_6; break; - case OBJ_408_308: + case OBJ_BOSS_308: objId = COL1_4; break; - case OBJ_408_312: + case OBJ_BOSS_312: objId = COL1_9; break; - case OBJ_408_309: + case OBJ_BOSS_309: objId = COL1_7; break; case OBJ_UNK_1000: objId = COL1_3; break; - case OBJ_408_313: + case OBJ_BOSS_313: objId = COL1_8; break; case OBJ_80_39: @@ -723,7 +723,7 @@ void func_80038140(PlayerShot* shot) { Vec3f sp88; Vec3f sp7C; Object_2F4* obj2F4; - Object_408* obj408; + Boss* boss; Object_58* obj58; Object_4C* obj4C; Object_80* obj80; @@ -937,78 +937,78 @@ void func_80038140(PlayerShot* shot) { } } } - for (i = 0, obj408 = gObjects408; i < 4; i++, obj408++) { - if ((obj408->obj.status == 2) && (obj408->timer_05A == 0)) { - if ((obj408->obj.id == OBJ_408_308) || (obj408->obj.id == OBJ_408_312) || (obj408->obj.id == OBJ_408_309) || - (obj408->obj.id == OBJ_408_313)) { - func_8003774C(shot, obj408->obj.id, &obj408->obj); - } else if (obj408->obj.id == OBJ_408_310) { - temp_fv1 = fabsf(obj408->obj.pos.x - shot->obj.pos.x) * .8333333f; - temp_fa0 = fabsf(obj408->obj.pos.y - shot->obj.pos.y) * 2; - temp_fv0 = fabsf(obj408->obj.pos.z - shot->obj.pos.z) * 0.8333333f; + for (i = 0, boss = gBosses; i < 4; i++, boss++) { + if ((boss->obj.status == 2) && (boss->timer_05A == 0)) { + if ((boss->obj.id == OBJ_BOSS_308) || (boss->obj.id == OBJ_BOSS_312) || (boss->obj.id == OBJ_BOSS_309) || + (boss->obj.id == OBJ_BOSS_313)) { + func_8003774C(shot, boss->obj.id, &boss->obj); + } else if (boss->obj.id == OBJ_BOSS_310) { + temp_fv1 = fabsf(boss->obj.pos.x - shot->obj.pos.x) * .8333333f; + temp_fa0 = fabsf(boss->obj.pos.y - shot->obj.pos.y) * 2; + temp_fv0 = fabsf(boss->obj.pos.z - shot->obj.pos.z) * 0.8333333f; if (sqrtf(SQ(temp_fv1) + SQ(temp_fa0) + SQ(temp_fv0)) < 1500.0f) { if (shot->obj.id == PLAYERSHOT_4) { Object_Kill(&shot->obj, &shot->sfxPos); } else { - obj408->unk_062 = 1; + boss->unk_062 = 1; func_80036318(shot); Audio_PlaySfx(0x29001062, &shot->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } } } else { - if (obj408->obj.id == OBJ_408_316) { - temp_fv1 = fabsf(obj408->obj.pos.x - shot->obj.pos.x); - temp_fa0 = fabsf(obj408->obj.pos.y - 300.0f - shot->obj.pos.y) * 7.42f; - temp_fv0 = fabsf(obj408->obj.pos.z - shot->obj.pos.z); + if (boss->obj.id == OBJ_BOSS_316) { + temp_fv1 = fabsf(boss->obj.pos.x - shot->obj.pos.x); + temp_fa0 = fabsf(boss->obj.pos.y - 300.0f - shot->obj.pos.y) * 7.42f; + temp_fv0 = fabsf(boss->obj.pos.z - shot->obj.pos.z); if (sqrtf(SQ(temp_fv1) + SQ(temp_fa0) + SQ(temp_fv0)) < 2700.0f) { if (shot->obj.id == PLAYERSHOT_4) { Object_Kill(&shot->obj, &shot->sfxPos); } else { - obj408->unk_062 = 1; - obj408->unk_066 = 100; + boss->unk_062 = 1; + boss->unk_066 = 100; Audio_PlaySfx(0x29121007, &shot->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); func_80036318(shot); } } } - temp_v0 = func_80036874(shot, obj408->info.hitbox, &obj408->obj); + temp_v0 = func_80036874(shot, boss->info.hitbox, &boss->obj); if (temp_v0 != 0) { if (shot->obj.id == PLAYERSHOT_4) { Object_Kill(&shot->obj, &shot->sfxPos); - } else if (!((obj408->obj.id == OBJ_408_316) && (shot->playerNum != 0))) { - obj408->unk_062 = 1; + } else if (!((boss->obj.id == OBJ_BOSS_316) && (shot->playerNum != 0))) { + boss->unk_062 = 1; if (shot->obj.id == PLAYERSHOT_3) { - obj408->unk_062 = -1; - obj408->unk_064 = 20; + boss->unk_062 = -1; + boss->unk_064 = 20; } else if (shot->obj.id == PLAYERSHOT_8) { if (gCurrentLevel == LEVEL_AQUAS) { - obj408->unk_064 = 31; + boss->unk_064 = 31; } else { - obj408->unk_064 = 30; + boss->unk_064 = 30; } } else { - obj408->unk_064 = 10; + boss->unk_064 = 10; if (shot->playerNum < 4) { switch (gLaserStrength[shot->playerNum]) { case LASERS_SINGLE: case LASERS_TWIN: break; case LASERS_HYPER: - obj408->unk_064 = 15; + boss->unk_064 = 15; break; } } } - if (obj408->obj.id == OBJ_408_314) { - obj408->unk_0AE = shot->playerNum; + if (boss->obj.id == OBJ_BOSS_314) { + boss->swork[19] = shot->playerNum; } - obj408->unk_066 = temp_v0 - 1; - if (obj408->obj.id == OBJ_408_301) { - obj408->unk_092 = shot->obj.id; - } else if (obj408->obj.id == OBJ_408_319) { - obj408->unk_194 = shot->obj.pos.x; - obj408->unk_198 = shot->obj.pos.y; - obj408->unk_19C = shot->obj.pos.z; + boss->unk_066 = temp_v0 - 1; + if (boss->obj.id == OBJ_BOSS_301) { + boss->swork[5] = shot->obj.id; + } else if (boss->obj.id == OBJ_BOSS_319) { + boss->fwork[47] = shot->obj.pos.x; + boss->fwork[48] = shot->obj.pos.y; + boss->fwork[49] = shot->obj.pos.z; } } else { return; @@ -1741,7 +1741,7 @@ void func_8003C008(PlayerShot* shot) { s32 i; s32 j; f32* hitboxData; - Object_408* obj408; + Boss* boss; f32 temp_ft4; f32 temp_ft5; f32 var_fa1; @@ -1751,17 +1751,17 @@ void func_8003C008(PlayerShot* shot) { s32 var_s6; s32 count; - obj408 = gObjects408; - for (i = 0; i < ARRAY_COUNT(gObjects408); i++, obj408++) { - if ((obj408->obj.status == 2) && (obj408->timer_05A == 0)) { - if (obj408->obj.id == OBJ_408_316) { + boss = gBosses; + for (i = 0; i < ARRAY_COUNT(gBosses); i++, boss++) { + if ((boss->obj.status == 2) && (boss->timer_05A == 0)) { + if (boss->obj.id == OBJ_BOSS_316) { var_s6 = gFrameCount & 7; var_fs2 = shot->unk_44 * 40.0f; } else { var_s6 = gFrameCount & 0xF; var_fs2 = shot->unk_44 * 30.0f; } - hitboxData = obj408->info.hitbox; + hitboxData = boss->info.hitbox; count = *hitboxData++; if (count != 0) { for (j = 0; j < count; j++, hitboxData += 6) { @@ -1769,30 +1769,30 @@ void func_8003C008(PlayerShot* shot) { Matrix_RotateZ(gCalcMatrix, -hitboxData[3] * M_DTOR, 0); Matrix_RotateX(gCalcMatrix, -hitboxData[1] * M_DTOR, 1); Matrix_RotateY(gCalcMatrix, -hitboxData[2] * M_DTOR, 1); - Matrix_RotateZ(gCalcMatrix, -obj408->obj.rot.z * M_DTOR, 1); - Matrix_RotateX(gCalcMatrix, -obj408->obj.rot.x * M_DTOR, 1); - Matrix_RotateY(gCalcMatrix, -obj408->obj.rot.y * M_DTOR, 1); + Matrix_RotateZ(gCalcMatrix, -boss->obj.rot.z * M_DTOR, 1); + Matrix_RotateX(gCalcMatrix, -boss->obj.rot.x * M_DTOR, 1); + Matrix_RotateY(gCalcMatrix, -boss->obj.rot.y * M_DTOR, 1); hitboxData += 4; } else { - Matrix_RotateZ(gCalcMatrix, -obj408->obj.rot.z * M_DTOR, 0); - Matrix_RotateX(gCalcMatrix, -obj408->obj.rot.x * M_DTOR, 1); - Matrix_RotateY(gCalcMatrix, -obj408->obj.rot.y * M_DTOR, 1); + Matrix_RotateZ(gCalcMatrix, -boss->obj.rot.z * M_DTOR, 0); + Matrix_RotateX(gCalcMatrix, -boss->obj.rot.x * M_DTOR, 1); + Matrix_RotateY(gCalcMatrix, -boss->obj.rot.y * M_DTOR, 1); } if ((j == var_s6) && (hitboxData[1] > -100.0f) && (hitboxData[3] > -100.0f)) { - sp8C.x = shot->obj.pos.x - obj408->obj.pos.x; - sp8C.y = shot->obj.pos.y - obj408->obj.pos.y; - sp8C.z = shot->obj.pos.z - obj408->obj.pos.z; + sp8C.x = shot->obj.pos.x - boss->obj.pos.x; + sp8C.y = shot->obj.pos.y - boss->obj.pos.y; + sp8C.z = shot->obj.pos.z - boss->obj.pos.z; Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp8C, &sp80); - temp_ft4 = (hitboxData[4] + obj408->obj.pos.x) - (obj408->obj.pos.x + sp80.x); - temp_ft5 = (hitboxData[2] + obj408->obj.pos.y) - (obj408->obj.pos.y + sp80.y); - var_fa1 = (hitboxData[0] + obj408->obj.pos.z) - (obj408->obj.pos.z + sp80.z); + temp_ft4 = (hitboxData[4] + boss->obj.pos.x) - (boss->obj.pos.x + sp80.x); + temp_ft5 = (hitboxData[2] + boss->obj.pos.y) - (boss->obj.pos.y + sp80.y); + var_fa1 = (hitboxData[0] + boss->obj.pos.z) - (boss->obj.pos.z + sp80.z); if ((gLevelMode == LEVELMODE_ON_RAILS) && (var_fa1 < 0.0f)) { var_fa1 *= 0.6f; } if (sqrtf(SQ(temp_ft4) + SQ(temp_ft5) + SQ(var_fa1)) < var_fs2) { - obj408->unk_066 = j; - obj408->unk_062 = -1; - obj408->unk_064 = 20; + boss->unk_066 = j; + boss->unk_062 = -1; + boss->unk_064 = 20; } } } @@ -2007,8 +2007,8 @@ void func_8003CC08(PlayerShot* shot) { } } } - if (!((gCurrentLevel == LEVEL_VENOM_ANDROSS) && (gObjects408->obj.status == 2) && - (gObjects408->unk_04E == 17))) { + if (!((gCurrentLevel == LEVEL_VENOM_ANDROSS) && (gBosses[0].obj.status == 2) && + (gBosses[0].unk_04E == 17))) { func_80038140(shot); } func_8003C3D8(shot); diff --git a/src/main/fox_bg.c b/src/main/fox_bg.c index f15944bc..9590a2b4 100644 --- a/src/main/fox_bg.c +++ b/src/main/fox_bg.c @@ -1,5 +1,7 @@ #include "global.h" +extern f32 D_E16C50_801C4188; + f32 D_8015F960; u8 D_8015F964; f32 D_8015F968; @@ -368,14 +370,14 @@ void func_8003E1E8(void) { Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -290.0f, 1); Matrix_Push(&gGfxMatrix); Matrix_Scale(gGfxMatrix, 11.0f, 11.0f, 1.0f, 1); - Matrix_RotateZ(gGfxMatrix, (gPlayer->unk_034 + (gFrameCount * 1.5f)) * M_DTOR, 1); + Matrix_RotateZ(gGfxMatrix, (gPlayer[0].unk_034 + (gFrameCount * 1.5f)) * M_DTOR, 1); Matrix_SetGfxMtx(&gMasterDisp); gSPDisplayList(gMasterDisp++, D_C039208); Matrix_Pop(&gGfxMatrix); if (D_80177AB0 != 5) { Matrix_Push(&gGfxMatrix); Matrix_Scale(gGfxMatrix, 10.0f, 10.0f, 1.0f, 1); - Matrix_RotateZ(gGfxMatrix, (gPlayer->unk_034 + (gFrameCount * -1.3f)) * M_DTOR, 1); + Matrix_RotateZ(gGfxMatrix, (gPlayer[0].unk_034 + (gFrameCount * -1.3f)) * M_DTOR, 1); Matrix_SetGfxMtx(&gMasterDisp); gSPDisplayList(gMasterDisp++, D_C039208); Matrix_Pop(&gGfxMatrix); @@ -384,7 +386,7 @@ void func_8003E1E8(void) { } break; case LEVEL_AQUAS: - if (gPlayer->state_1C8 == PLAYERSTATE_1C8_2) { + if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_2) { sp13C = ((Math_RadToDeg(gPlayer[gPlayerNum].unk_058) - gPlayer[gPlayerNum].unk_114)); sp134 = (gPlayer[gPlayerNum].unk_05C * -7000.0f) - (gPlayer[gPlayerNum].camEye.y * 0.6f); sp13C = Math_ModF(sp13C * -40.44444f * 2.0f, 7280.0f); @@ -394,7 +396,7 @@ void func_8003E1E8(void) { Matrix_Push(&gGfxMatrix); Matrix_Translate(gGfxMatrix, sp13C, sp134, -7000.0f, 1); Matrix_SetGfxMtx(&gMasterDisp); - if (gPlayer->state_1C8 == PLAYERSTATE_1C8_2) { + if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_2) { gSPDisplayList(gMasterDisp++, D_601AFF0); } else { gSPDisplayList(gMasterDisp++, D_601C080); @@ -407,7 +409,7 @@ void func_8003E1E8(void) { } Matrix_Translate(gGfxMatrix, 7280.0f * sp13C, 0.0f, 0.0f, 1); Matrix_SetGfxMtx(&gMasterDisp); - if (gPlayer->state_1C8 == PLAYERSTATE_1C8_2) { + if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_2) { gSPDisplayList(gMasterDisp++, D_601AFF0); } else { @@ -423,14 +425,14 @@ void func_8003E1E8(void) { sp138 = Math_RadToDeg(gPlayer[gPlayerNum].unk_058) - gPlayer[gPlayerNum].unk_114; sp134 = (gPlayer[gPlayerNum].unk_05C * -7000.0f) - (gPlayer[gPlayerNum].camEye.y * 0.6f); sp13C = sp138 * -40.44444f * 2.0f; - if ((gCurrentLevel == LEVEL_TITANIA) && (gPlayer->state_1C8 == PLAYERSTATE_1C8_2) && - (gPlayer->unk_1D0 < 3)) { - D_8015F968 += __sinf(gPlayer->unk_058) * 20.0f; + if ((gCurrentLevel == LEVEL_TITANIA) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_2) && + (gPlayer[0].unk_1D0 < 3)) { + D_8015F968 += __sinf(gPlayer[0].unk_058) * 20.0f; sp13C += D_8015F968; } - if ((gCurrentLevel == LEVEL_SOLAR) && (gPlayer->state_1C8 == PLAYERSTATE_1C8_2) && - (gPlayer->unk_1D0 >= 2) && (gPlayer->camEye.z <= -1900.0f)) { - D_8015F968 = __sinf(gPlayer->unk_05C) * 7000.0f; + if ((gCurrentLevel == LEVEL_SOLAR) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_2) && + (gPlayer[0].unk_1D0 >= 2) && (gPlayer[0].camEye.z <= -1900.0f)) { + D_8015F968 = __sinf(gPlayer[0].unk_05C) * 7000.0f; sp134 -= fabsf(D_8015F968); } sp13C = Math_ModF(sp13C, 7280.0f); @@ -474,10 +476,10 @@ void func_8003E1E8(void) { } break; case LEVELTYPE_SPACE: - if (gPlayer->state_1C8 != PLAYERSTATE_1C8_8) { + if (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_8) { Matrix_Push(&gGfxMatrix); - sp12C = Math_RadToDeg(gPlayer->unk_058); - sp130 = Math_RadToDeg(gPlayer->unk_05C); + sp12C = Math_RadToDeg(gPlayer[0].unk_058); + sp130 = Math_RadToDeg(gPlayer[0].unk_05C); if (((sp12C < 45.0f) || (sp12C > 315.0f)) && ((sp130 < 40.0f) || (sp130 > 325.0f))) { RCP_SetupDL_36(); sp138 = D_80178420; @@ -498,7 +500,7 @@ void func_8003E1E8(void) { sp138 = Math_ModF(sp138 - 34.5f, 480.0f); sp134 = Math_ModF(sp134 + 19.0f, 360.0f); } else if (sp11C == LEVEL_BOLSE) { - if ((gPlayer->state_1C8 != PLAYERSTATE_1C8_7) || (gPlayer->unk_1D0 < 10)) { + if ((gPlayer[0].state_1C8 != PLAYERSTATE_1C8_7) || (gPlayer[0].unk_1D0 < 10)) { sp134 = Math_ModF(sp134 + 360.0f - 100.0f, 360.0f); } } else { @@ -530,7 +532,7 @@ void func_8003E1E8(void) { } break; case LEVEL_METEO: - if ((gPlayer->state_1C8 == PLAYERSTATE_1C8_7) && (D_80177A80 > 260)) { + if ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_7) && (D_80177A80 > 260)) { Matrix_Translate(gGfxMatrix, sp138 - 120.0f, -(sp134 - 120.0f) - 30.0f, -290.0f, 1); Matrix_Scale(gGfxMatrix, 0.5f, 0.5f, 1.0f, 1); Matrix_SetGfxMtx(&gMasterDisp); @@ -566,7 +568,7 @@ void func_8003E1E8(void) { if (sp128 > 3.5f) { sp128 = 3.5f; } - if (gPlayer->state_1C8 == PLAYERSTATE_1C8_7) { + if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_7) { sp128 = D_8015F984; if (sp128 > 3.5f) { sp128 = 3.5f; @@ -590,7 +592,7 @@ void func_8003E1E8(void) { break; case LEVEL_BOLSE: sp128 = 1.0f; - if ((D_80177A80 > 500) && (gPlayer->state_1C8 == PLAYERSTATE_1C8_7)) { + if ((D_80177A80 > 500) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_7)) { sp128 = 1.3f; } Matrix_Translate(gGfxMatrix, sp138 - 120.0f, -(sp134 - 120.0f), -290.0f, 1); @@ -665,7 +667,7 @@ void func_80040450(void) { if (D_80178380[gPlayerNum] > 300) { D_80178380[gPlayerNum] = 0; } - if (((gCurrentLevel == LEVEL_AQUAS) && (gPlayer->state_1C8 == PLAYERSTATE_1C8_2)) || + if (((gCurrentLevel == LEVEL_AQUAS) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_2)) || (((gPlayer[gPlayerNum].state_1C8 == PLAYERSTATE_1C8_5) || (gLevelMode == LEVELMODE_ALL_RANGE) || (gPlayer[gPlayerNum].state_1C8 == PLAYERSTATE_1C8_7)) && (gLevelType == LEVELTYPE_PLANET) && (gCurrentLevel != LEVEL_TITANIA) && (gCurrentLevel != LEVEL_AQUAS))) { @@ -683,7 +685,7 @@ void func_80040450(void) { if (gCurrentLevel == LEVEL_KATINA) { D_801783D4 -= 80.0f; } - if ((gCurrentLevel == LEVEL_ZONESS) && (gPlayer->unk_1D0 >= 2) && (D_80161684 == 0)) { + if ((gCurrentLevel == LEVEL_ZONESS) && (gPlayer[0].unk_1D0 >= 2) && (D_80161684 == 0)) { D_801783D4 -= 60.0f; D_801783D0 -= 480.0f; } @@ -788,7 +790,7 @@ void func_80040CE4(void) { u16* sp1C4; Gfx* sp1C0; - if ((gCurrentLevel != LEVEL_VENOM_2) && ((gPlayer->camEye.y > 4000.0f) || (D_80177A98 == 0))) { + if ((gCurrentLevel != LEVEL_VENOM_2) && ((gPlayer[0].camEye.y > 4000.0f) || (D_80177A98 == 0))) { return; } if ((gCurrentLevel == LEVEL_BOLSE) && (D_800C9C34 != 0)) { @@ -1043,9 +1045,9 @@ void func_80040CE4(void) { } else { RCP_SetupDL(&gMasterDisp, 0x25); } - if ((gPlayer->state_1C8 == PLAYERSTATE_1C8_2) && (gPlayer->unk_1D0 < 2)) { + if ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_2) && (gPlayer[0].unk_1D0 < 2)) { gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 255); - } else if (gPlayer->state_1C8 == PLAYERSTATE_1C8_7) { + } else if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_7) { gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, D_8015F974, D_8015F978, D_8015F97C, D_8015F980); } else { gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, (s32) D_E16C50_801C4188); diff --git a/src/main/fox_demo.c b/src/main/fox_demo.c index df36c7f3..5cd6a441 100644 --- a/src/main/fox_demo.c +++ b/src/main/fox_demo.c @@ -131,60 +131,39 @@ AnimationHeader* D_800CA1F4[] = { D_60265B4, D_602B8DC, D_60034C4, D_602A2CC, D_602CEB4, D_602B778, (AnimationHeader*) 0x0601F3B8, }; -extern void func_80187520(s32, void*); -extern void func_800AB334(void); -extern void func_800ADF58(Player*); -extern void func_8004D440(Player*); -extern void func_80046358(Player*); -extern void func_8004B368(Player*); -extern void func_80095604(Player*); -extern void func_800B2130(Player*); +extern void func_E6A810_8018769C(Player*); extern void func_801882CC(Player*, OSContPad**, OSContPad**); -extern void func_8018E084(Player*); -extern void func_8018F94C(Player*); -extern void func_80191160(Player*); -extern void func_80193C4C(Player*); -extern void func_80194728(Player*); -extern void func_80196D88(Player*); -extern void func_80197290(Player*); -extern void func_8019C85C(Player*); -extern void func_8019D76C(Player*); -extern void func_8019EE60(Player*); -extern void func_801A7930(Player*); -extern void func_801AF8F4(Player*, OSContPad**, OSContPad**); -extern void func_801B3D04(Player*, OSContPad**, OSContPad**); -extern void func_8002ED60(Player*); -extern void func_800935E8(Player*); -extern void func_8018769C(Player*); extern void func_8018CD8C(Player*); -extern void func_8018DF74(Player*); +extern void func_8018DA58(Object_2F4*); +extern void func_8018E084(Player*); +extern void func_8018ED9C(Object_2F4*); extern void func_8018EF6C(Player*); extern void func_8018F880(Player*); +extern void func_8018F94C(Player*); +extern void func_80191160(Player*); extern void func_80192E20(Player*); extern void func_80193A30(Player*); +extern void func_80193C4C(Player*); +extern void func_80194728(Player*); +extern void func_80195E44(Object_2F4*); extern void func_80196BF8(Player*); +extern void func_80196D88(Player*); +extern void func_80197290(Player*); +extern void func_80197F10(Object_2F4*); extern void func_801988B8(Player*); extern void func_8019BA64(Player*); -extern void func_8019D428(Player*); -extern void func_801A0AC0(Player*); -extern void func_801A10F4(Player*); -extern void func_801AB9B0(Player*); -extern void func_801AC754(Player*); -extern void func_800A46A0(Player*); -extern void func_800AD7F0(Player*); -extern void func_800B2574(Player*); -extern void func_800AE278(Player*); -extern void func_80093164(Object_2F4*); -extern void func_800A6028(Vec3f*, u32); -extern void func_8018DA58(Object_2F4*); -extern void func_8018ED9C(Object_2F4*); -extern void func_80195E44(Object_2F4*); -extern void func_80197F10(Object_2F4*); +extern void func_8019C85C(Player*); extern void func_8019DD20(Object_2F4*); extern void func_8019E5F0(Object_2F4*); +extern void func_8019EE60(Player*); extern void func_8019FF00(Object_2F4*); +extern void func_E9F1D0_801A0AC0(Player*); extern void func_801A8BE8(Object_2F4*); +extern void func_801AB9B0(Player*); +extern void func_E6A810_801AC754(Player*); +extern void func_801AF8F4(Player*, OSContPad**, OSContPad**); extern void func_801B28BC(Object_2F4*); +extern void func_801B3D04(Player*, OSContPad**, OSContPad**); extern void func_801BE0F0(Object_2F4*); void func_80048AC0(s32 teamId) { @@ -268,7 +247,7 @@ void func_80048E40(Player* player) { f32 temp_ret; s32 temp_v1; - gObjects408[1].obj.status = 0; + gBosses[1].obj.status = 0; Math_SmoothStepToF(&player->unk_130, 0.0f, 0.1f, 15.0f, 0.0f); Math_SmoothStepToF(&player->unk_12C, 0.0f, 0.1f, 15.0f, 0.0f); Math_SmoothStepToF(&player->unk_0E4, 0.0f, 0.1f, 3.0f, 0.0f); @@ -421,9 +400,9 @@ void func_80049630(Object_2F4* obj2F4) { switch (obj2F4->unk_0B8) { case 0: - obj2F4->unk_18C[0].x = D_800C9FA0[obj2F4->index].x + gPlayer->pos.x; - obj2F4->unk_18C[0].y = D_800C9FA0[obj2F4->index].y + gPlayer->pos.y; - obj2F4->unk_18C[0].z = D_800C9FA0[obj2F4->index].z + gPlayer->pos.z; + obj2F4->unk_18C[0].x = gPlayer[0].pos.x + D_800C9FA0[obj2F4->index].x; + obj2F4->unk_18C[0].y = gPlayer[0].pos.y + D_800C9FA0[obj2F4->index].y; + obj2F4->unk_18C[0].z = gPlayer[0].pos.z + D_800C9FA0[obj2F4->index].z; Math_SmoothStepToF(&obj2F4->obj.pos.x, obj2F4->unk_18C[0].x, 0.05f, 50.0f, 0.0001f); Math_SmoothStepToF(&obj2F4->obj.pos.y, obj2F4->unk_18C[0].y, 0.05f, 50.0f, 0.0001f); Math_SmoothStepToF(&obj2F4->obj.pos.z, obj2F4->unk_18C[0].z, 0.05f, 50.0f, 0.0001f); @@ -733,24 +712,24 @@ void func_8004A52C(Player* player) { break; case LEVEL_TITANIA: - func_8018769C(player); + func_E6A810_8018769C(player); func_800AA800(player); break; case LEVEL_ZONESS: - func_8019D428(player); + func_E16C50_8019D428(player); break; case LEVEL_MACBETH: - func_801AC754(player); + func_E6A810_801AC754(player); break; case LEVEL_SECTOR_Y: - func_801A0AC0(player); + func_E9F1D0_801A0AC0(player); break; case LEVEL_SOLAR: - func_801A10F4(player); + func_E16C50_801A10F4(player); break; case LEVEL_VENOM_1: @@ -763,7 +742,7 @@ void func_8004A52C(Player* player) { break; case LEVEL_AREA_6: - func_8018DF74(player); + func_E16C50_8018DF74(player); break; } func_8004990C(player); @@ -1422,8 +1401,8 @@ void func_8004B368(Player* player) { player->unk_0F0 = __sinf(player->unk_0F4 * M_DTOR); } -void func_8004C90C(s32 arg0) { - func_80187520(0x5A, arg0); +void func_8004C90C(Player* player) { + func_E51970_80187520(90, player); } void func_8004C930(Player* player) { @@ -1444,7 +1423,7 @@ void func_8004C930(Player* player) { func_80048E40(player); } } else if (gCurrentLevel == LEVEL_AREA_6) { - func_DF4260_8018ED78((Object_408*) player); + func_E16C50_8018ED78(player); } else if (gCurrentLevel == LEVEL_FORTUNA) { func_8004C90C(player); func_800AA800(player); @@ -1460,10 +1439,10 @@ void func_8004C930(Player* player) { func_8019EE60(player); func_800AA800(player); } else if (gCurrentLevel == LEVEL_SOLAR) { - func_801A7930(player); + func_E16C50_801A7930(player); func_800AA800(player); } else if (gCurrentLevel == LEVEL_ZONESS) { - func_8019D76C(player); + func_E16C50_8019D76C(player); func_800AA800(player); } else if (gCurrentLevel == LEVEL_VENOM_2) { func_80196D88(player); @@ -2213,8 +2192,7 @@ void func_8004EBD0(Object_2F4* obj2F4) { Matrix_RotateY(gCalcMatrix, (gPlayer[0].unk_0E8 + 180.0f) * M_DTOR, 0); Matrix_RotateX(gCalcMatrix, -(gPlayer[0].unk_0E4 * M_DTOR), 1); - Matrix_RotateZ(gCalcMatrix, -((gPlayer[0].unk_0F0 + gPlayer->unk_0F8) * M_DTOR), 1); - + Matrix_RotateZ(gCalcMatrix, -((gPlayer[0].unk_0F8 + gPlayer[0].unk_0F0) * M_DTOR), 1); src.x = 0.0f; src.y = 0.0f; src.z = obj2F4->unk_124.z * obj2F4->unk_124.z; diff --git a/src/main/fox_edata_1C.c b/src/main/fox_edata_1C.c index ea1ae184..2829939c 100644 --- a/src/main/fox_edata_1C.c +++ b/src/main/fox_edata_1C.c @@ -1,527 +1,358 @@ #include "global.h" // these are overlay functions. They will need to be replaced with their proper overlay names given below them. - -void func_8018756C(Object*); -// func_E08400_8018756C -void func_801875A4(Object*); // func_DF4260_801875A4 -void func_80187650(Object*); -// func_E08400_80187650 -void func_801877C4(Object*); -// func_E08400_801877C4 -void func_80187944(Object*); -// func_E16C50_80187944 -void func_8018795C(Object*); -// func_E08400_8018795C -void func_801880E4(Object*); -// func_E9F1D0_801880E4 -void func_80188344(Object*); -// func_E08400_80188344 -void func_80188448(Object*); -// func_E9F1D0_80188448 -void func_80188528(Object*); -// func_E9F1D0_80188528 -void func_80188660(Object*); -// func_E9F1D0_80188660 -void func_801887D0(Object*); -// func_E08400_801887D0 -void func_80188AD0(Object*); -// func_E51970_80188AD0 -void func_80188CAC(Object*); -// func_E08400_80188CAC -void func_80188F60(Object*); -// func_E6A810_80188F60 -void func_80188FA8(Object*); -// func_E6A810_80188FA8 -void func_80188FAC(Object*); -// func_E08400_80188FAC -void func_80188FE4(Object*); -// func_E51970_80188FE4 -void func_80189058(Object*); +void func_801875A4(Object*); // func_DF4260_80189058 -void func_80189114(Object*); -// func_E08400_80189114 -void func_80189194(Object*); -// func_E6A810_80189194 -void func_8018933C(Object*); -// func_E9F1D0_8018933C -void func_801893B8(Object*); -// func_E9F1D0_801893B8 -void func_80189470(Object*); -// func_E9F1D0_80189470 -void func_801895B8(Object*); -// func_E6A810_801895B8 -void func_80189724(Object*); -// func_E9F1D0_80189724 -void func_8018978C(Object*); -// func_E08400_8018978C -void func_80189AFC(Object*); -// func_E6A810_80189AFC -void func_80189B70(Object*); -// func_E9F1D0_80189B70 -void func_80189CC8(Object*); -// func_E6A810_80189CC8 -void func_8018A1C0(Object*); -// func_E6A810_8018A1C0 -void func_8018A544(Object*); -// func_E6A810_8018A544 -void func_8018AA74(Object*); +void func_80189058(Object*); // func_DF4260_8018AA74 -void func_8018AABC(Object*); -// func_E6A810_8018AABC -void func_8018AB44(Object*); -// func_E6A810_8018AB44 -void func_8018AED0(Object*); +void func_8018AA74(Object*); // func_DF4260_8018AED0 -void func_8018B15C(Object*); +void func_8018AED0(Object*); // func_DF4260_8018B15C -void func_8018B268(Object*); -// func_E6A810_8018B268 -void func_8018B418(Object*); +void func_8018B15C(Object*); // func_DF4260_8018B418 -void func_8018B58C(Object*); +void func_8018B418(Object*); // func_DF4260_8018B58C -void func_8018B6AC(Object*); -// func_E6A810_8018B6AC -void func_8018B8C0(Object*); -// func_E9F1D0_8018B8C0 -void func_8018B9D0(Object*); -// func_E6A810_8018B9D0 -void func_8018BAAC(Object*); +void func_8018B58C(Object*); // func_DF4260_8018BAAC -void func_8018BACC(Object*); -// func_E08400_8018BACC -void func_8018BBA4(Object*); +void func_8018BAAC(Object*); // func_DF4260_8018BBA4 -void func_8018BBF8(Object*); +void func_8018BBA4(Object*); // func_DF4260_8018BBF8 -void func_8018BD7C(Object*); +void func_8018BBF8(Object*); // func_DF4260_8018BD7C -void func_8018BE84(Object*); -// func_E6A810_8018BE84 -void func_8018C19C(Object*); +void func_8018BD7C(Object*); // func_DF4260_8018C19C -void func_8018C54C(Object*); -// func_E16C50_8018C54C -void func_8018C8A8(Object*); -// func_E6A810_8018C8A8 -void func_8018CAD4(Object*); -// func_E9F1D0_8018CAD4 -void func_8018CF98(Object*); -// func_E9F1D0_8018CF98 -void func_8018D9EC(Object*); -// func_E08400_8018D9EC -void func_8018DA6C(Object*); -// func_E08400_8018DA6C -void func_8018DAEC(Object*); -// func_E08400_8018DAEC -void func_8018DB6C(Object*); -// func_E08400_8018DB6C -void func_8018DBEC(Object*); -// func_E08400_8018DBEC -void func_8018DBF0(Object*); -// func_E9F1D0_8018DBF0 -void func_8018DCE4(Object*); -// func_E08400_8018DCE4 -void func_8018DDAC(Object*); +void func_8018C19C(Object*); // func_DF4260_8018DDAC -void func_8018DE14(Object*); -// func_E08400_8018DE14 -void func_8018E290(Object*); +void func_8018DDAC(Object*); // func_DF4260_8018E290 -void func_8018E2D8(Object*); -// func_E6A810_8018E2D8 -void func_8018E54C(Object*); -// func_E6A810_8018E54C -void func_8018E5B4(Object*); -// func_E6A810_8018E5B4 -void func_8018E5F8(Object*); -// func_E6A810_8018E5F8 -void func_8018E76C(Object*); +void func_8018E290(Object*); // func_DF4260_8018E76C -void func_8018ECAC(Object*); +void func_8018E76C(Object*); // func_DF4260_8018ECAC -void func_8018ED78(Object*); +void func_8018ECAC(Object*); // func_DF4260_8018ED78 -void func_8018EE84(Object*); +void func_8018ED78(Object*); // func_DF4260_8018EE84 -void func_8018EF14(Object*); -// func_E6A810_8018EF14 -void func_8018EF90(Object*); +void func_8018EE84(Object*); // func_DF4260_8018EF90 -void func_8018F038(Object*); -// func_E6A810_8018F038 -void func_8018F044(Object*); +void func_8018EF90(Object*); // func_DF4260_8018F044 -void func_8018F31C(Object*); +void func_8018F044(Object*); // func_DF4260_8018F31C -void func_8018F330(Object*); -// func_E08400_8018F330 -void func_8018F4D8(Object*); -// func_E6A810_8018F4D8 -void func_8018F884(Object*); -// func_E08400_8018F884 -void func_8018F8B8(Object*); -// func_E6A810_8018F8B8 -void func_8018FE38(Object*); -// func_E08400_8018FE38 -void func_8018FF20(Object*); -// func_E08400_8018FF20 -void func_8018FF84(Object*); -// func_E08400_8018FF84 -void func_80190020(Object*); -// func_E08400_80190020 -void func_80190078(Object*); -// func_E08400_80190078 -void func_801904CC(Object*); -// func_E16C50_801904CC -void func_80190A00(Object*); -// func_E16C50_80190A00 -void func_80191010(Object*); -// func_E16C50_80191010 -void func_80191054(Object*); -// func_E51970_80191054 -void func_80191180(Object*); -// func_E51970_80191180 -void func_801912FC(Object*); -// func_E51970_801912FC -void func_801914C4(Object*); -// func_E16C50_801914C4 -void func_80191680(Object*); -// func_E16C50_80191680 -void func_80191AFC(Object*); -// func_E51970_80191AFC -void func_80191B4C(Object*); -// func_E16C50_80191B4C -void func_80191BC4(Object*); -// func_E16C50_80191BC4 -void func_80191DB0(Object*); -// func_E16C50_80191DB0 -void func_80191FFC(Object*); -// func_E16C50_80191FFC -void func_80192094(Object*); -// func_E16C50_80192094 -void func_801922DC(Object*); +void func_8018F31C(Object*); // func_DF4260_801922DC -void func_80192358(Object*); +void func_801922DC(Object*); // func_DF4260_80192358 -void func_801923C0(Object*); +void func_80192358(Object*); // func_DF4260_801923C0 -void func_8019243C(Object*); +void func_801923C0(Object*); // func_DF4260_8019243C -void func_80192518(Object*); +void func_8019243C(Object*); // func_DF4260_80192518 -void func_80192834(Object*); -// func_E16C50_80192834 -void func_801928C8(Object*); -// func_E9F1D0_801928C8 -void func_80192984(Object*); -// func_E51970_80192984 -void func_80192A68(Object*); -// func_E51970_80192A68 -void func_80192C18(Object*); -// func_E16C50_80192C18 -void func_80192CD4(Object*); +void func_80192518(Object*); // func_DF4260_80192CD4 -void func_80192E2C(Object*); +void func_80192CD4(Object*); // func_DF4260_80192E2C -void func_80192E64(Object*); -// func_E16C50_80192E64 -void func_80192E94(Object*); -// func_E9F1D0_80192E94 -void func_80192EB0(Object*); +void func_80192E2C(Object*); // func_DF4260_80192EB0 -void func_80193240(Object*); -// func_E16C50_80193240 -void func_80193244(Object*); -// func_E9F1D0_80193244 -void func_80193380(Object*); -// func_E9F1D0_80193380 -void func_801933DC(Object*); +void func_80192EB0(Object*); // func_DF4260_801933DC -void func_80193434(Object*); -// func_E08400_80193434 -void func_801934D0(Object*); +void func_801933DC(Object*); // func_DF4260_801934D0 -void func_8019350C(Object*); -// func_E9F1D0_8019350C -void func_80193540(Object*); +void func_801934D0(Object*); // func_DF4260_80193540 -void func_8019356C(Object*); -// func_E9F1D0_8019356C -void func_801935D4(Object*); -// func_E9F1D0_801935D4 -void func_80193718(Object*); -// func_E51970_80193718 -void func_80193B1C(Object*); -// func_E51970_80193B1C -void func_80194398(Object*); +void func_80193540(Object*); // func_DF4260_80194398 -void func_801946C4(Object*); -// func_E51970_801946C4 -void func_801949DC(Object*); -// func_E16C50_801949DC -void func_80194A84(Object*); -// func_E16C50_80194A84 -void func_80196210(Object*); -// func_E9F1D0_80196210 -void func_80196288(Object*); -// func_E9F1D0_80196288 -void func_801968F4(Object*); -// func_E51970_801968F4 -void func_80197A94(Object*); -// func_E6A810_80197A94 -void func_80197C64(Object*); -// func_E9F1D0_80197C64 -void func_80197CB8(Object*); -// func_E9F1D0_80197CB8 -void func_801982A8(Object*); -// func_E6A810_801982A8 -void func_801985E4(Object*); +void func_80194398(Object*); // func_DF4260_801985E4 -void func_80198968(Object*); +void func_801985E4(Object*); // func_DF4260_80198968 -void func_8019969C(Object*); -// func_E16C50_8019969C -void func_8019983C(Object*); -// func_E16C50_8019983C -void func_80199A28(Object*); -// func_E16C50_80199A28 -void func_80199E24(Object*); -// func_E16C50_80199E24 -void func_80199F10(Object*); -// func_E16C50_80199F10 -void func_8019A1FC(Object*); -// func_E16C50_8019A1FC -void func_8019A5D4(Object*); -// func_E16C50_8019A5D4 -void func_8019ACCC(Object*); -// func_E16C50_8019ACCC -void func_8019B548(Object*); -// func_E16C50_8019B548 -void func_8019B7DC(Object*); -// func_E16C50_8019B7DC -void func_8019B854(Object*); -// func_E16C50_8019B854 -void func_8019BDE0(Object*); -// func_E16C50_8019BDE0 -void func_8019BE48(Object*); -// func_E16C50_8019BE48 -void func_8019C1CC(Object*); -// func_E16C50_8019C1CC -void func_8019C454(Object*); -// func_E16C50_8019C454 -void func_8019C778(Object*); -// func_E6A810_8019C778 -void func_8019C83C(Object*); -// func_E16C50_8019C83C -void func_8019C888(Object*); -// func_E9F1D0_8019C888 -void func_8019CBEC(Object*); -// func_E16C50_8019CBEC -void func_8019CE58(Object*); -// func_E16C50_8019CE58 -void func_8019CE88(Object*); -// func_E6A810_8019CE88 -void func_8019D15C(Object*); -// func_E16C50_8019D15C -void func_8019D3C4(Object*); -// func_E16C50_8019D3C4 -void func_8019D700(Object*); -// func_E6A810_8019D700 -void func_8019E234(Object*); +void func_80198968(Object*); + +// func_E08400_8018756C +void func_8018756C(Object*); +// func_E08400_80187650 +void func_80187650(Object*); +// func_E08400_801877C4 +void func_801877C4(Object*); +// func_E08400_8018795C +void func_8018795C(Object*); +// func_E08400_80188344 +void func_80188344(Object*); +// func_E08400_801887D0 +void func_801887D0(Object*); +// func_E08400_80188CAC +void func_80188CAC(Object*); +// func_E08400_80188FAC +void func_80188FAC(Object*); +// func_E08400_80189114 +void func_80189114(Object*); +// func_E08400_8018978C +void func_8018978C(Object*); +// func_E08400_8018BACC +void func_8018BACC(Object*); +// func_E08400_8018D9EC +void func_8018D9EC(Object*); +// func_E08400_8018DA6C +void func_8018DA6C(Object*); +// func_E08400_8018DAEC +void func_8018DAEC(Object*); +// func_E08400_8018DB6C +void func_8018DB6C(Object*); +// func_E08400_8018DBEC +void func_8018DBEC(Object*); +// func_E08400_8018DCE4 +void func_8018DCE4(Object*); +// func_E08400_8018DE14 +void func_8018DE14(Object*); +// func_E08400_8018F330 +void func_8018F330(Object*); +// func_E08400_8018F884 +void func_8018F884(Object*); +// func_E08400_8018FE38 +void func_8018FE38(Object*); +// func_E08400_8018FF20 +void func_8018FF20(Object*); +// func_E08400_8018FF84 +void func_8018FF84(Object*); +// func_E08400_80190020 +void func_80190020(Object*); +// func_E08400_80190078 +void func_80190078(Object*); +// func_E08400_80193434 +void func_80193434(Object*); + +// func_E51970_80188AD0 +void func_80188AD0(Object*); +// func_E51970_80188FE4 +void func_80188FE4(Object*); +// func_E51970_80191054 +void func_80191054(Object*); +// func_E51970_80191180 +void func_80191180(Object*); +// func_E51970_801912FC +void func_801912FC(Object*); +// func_E51970_80191AFC +void func_80191AFC(Object*); +// func_E51970_80192984 +void func_80192984(Object*); +// func_E51970_80192A68 +void func_80192A68(Object*); +// func_E51970_80193718 +void func_80193718(Object*); +// func_E51970_80193B1C +void func_80193B1C(Object*); +// func_E51970_801946C4 +void func_801946C4(Object*); +// func_E51970_801968F4 +void func_801968F4(Object*); // func_E51970_8019E234 -void func_8019E2C4(Object*); -// func_E9F1D0_8019E2C4 -void func_8019E3A8(Object*); +void func_8019E234(Object*); // func_E51970_8019E3A8 -void func_8019E410(Object*); -// func_E6A810_8019E410 -void func_8019E454(Object*); +void func_8019E3A8(Object*); // func_E51970_8019E454 -void func_8019E98C(Object*); +void func_8019E454(Object*); // func_E51970_8019E98C -void func_8019EA60(Object*); +void func_8019E98C(Object*); + +// func_E6A810_80188F60 +void func_80188F60(Object*); +// func_E6A810_80188FA8 +void func_80188FA8(Object*); +// func_E6A810_80189194 +void func_80189194(Object*); +// func_E6A810_801895B8 +void func_801895B8(Object*); +// func_E6A810_80189AFC +void func_80189AFC(Object*); +// func_E6A810_80189CC8 +void func_80189CC8(Object*); +// func_E6A810_8018A1C0 +void func_8018A1C0(Object*); +// func_E6A810_8018A544 +void func_8018A544(Object*); +// func_E6A810_8018AABC +void func_8018AABC(Object*); +// func_E6A810_8018AB44 +void func_8018AB44(Object*); +// func_E6A810_8018B268 +void func_8018B268(Object*); +// func_E6A810_8018B6AC +void func_8018B6AC(Object*); +// func_E6A810_8018B9D0 +void func_8018B9D0(Object*); +// func_E6A810_8018BE84 +void func_8018BE84(Object*); +// func_E6A810_8018C8A8 +void func_8018C8A8(Object*); +// func_E6A810_8018E2D8 +void func_8018E2D8(Object*); +// func_E6A810_8018E54C +void func_8018E54C(Object*); +// func_E6A810_8018E5B4 +void func_8018E5B4(Object*); +// func_E6A810_8018E5F8 +void func_8018E5F8(Object*); +// func_E6A810_8018EF14 +void func_8018EF14(Object*); +// func_E6A810_8018F038 +void func_8018F038(Object*); +// func_E6A810_8018F4D8 +void func_8018F4D8(Object*); +// func_E6A810_8018F8B8 +void func_8018F8B8(Object*); +// func_E6A810_80197A94 +void func_80197A94(Object*); +// func_E6A810_801982A8 +void func_801982A8(Object*); +// func_E6A810_8019C778 +void func_8019C778(Object*); +// func_E6A810_8019CE88 +void func_8019CE88(Object*); +// func_E6A810_8019D700 +void func_8019D700(Object*); +// func_E6A810_8019E410 +void func_8019E410(Object*); // func_E6A810_8019EA60 -void func_8019EA7C(Object*); -// func_E16C50_8019EA7C -void func_8019EE68(Object*); +void func_8019EA60(Object*); // func_E6A810_8019EE68 -void func_8019F20C(Object*); -// func_E16C50_8019F20C -void func_8019F7AC(Object*); -// func_E16C50_8019F7AC -void func_8019FF9C(Object*); +void func_8019EE68(Object*); // func_E6A810_8019FF9C -void func_801A003C(Object*); -// func_E16C50_801A003C -void func_801A0120(Object*); -// func_E16C50_801A0120 -void func_801A0AF0(Object*); -// func_E16C50_801A0AF0 -void func_801A0BD8(Object*); +void func_8019FF9C(Object*); // func_E6A810_801A0BD8 -void func_801A12C4(Object*); +void func_801A0BD8(Object*); // func_E6A810_801A12C4 -void func_801A23AC(Object*); +void func_801A12C4(Object*); // func_E6A810_801A23AC -void func_801A2A78(Object*); +void func_801A23AC(Object*); // func_E6A810_801A2A78 -void func_801A2B24(Object*); +void func_801A2A78(Object*); // func_E6A810_801A2B24 -void func_801A2DD8(Object*); +void func_801A2B24(Object*); // func_E6A810_801A2DD8 -void func_801A3240(Object*); +void func_801A2DD8(Object*); // func_E6A810_801A3240 -void func_801A3E98(Object*); +void func_801A3240(Object*); // func_E6A810_801A3E98 -void func_801A43BC(Object*); +void func_801A3E98(Object*); // func_E6A810_801A43BC -void func_801A46A0(Object*); +void func_801A43BC(Object*); // func_E6A810_801A46A0 -void func_801A4A64(Object*); +void func_801A46A0(Object*); // func_E6A810_801A4A64 -void func_801A4B24(Object*); +void func_801A4A64(Object*); // func_E6A810_801A4B24 -void func_801A4E44(Object*); -// func_E9F1D0_801A4E44 -void func_801A52B8(Object*); -// func_E9F1D0_801A52B8 -void func_801A54E8(Object*); +void func_801A4B24(Object*); // func_E6A810_801A54E8 -void func_801A57D0(Object*); +void func_801A54E8(Object*); // func_E6A810_801A57D0 -void func_801A5AF0(Object*); +void func_801A57D0(Object*); // func_E6A810_801A5AF0 -void func_801A5B3C(Object*); -// func_E16C50_801A5B3C -void func_801A5B4C(Object*); +void func_801A5AF0(Object*); // func_E6A810_801A5B4C -void func_801A5D68(Object*); +void func_801A5B4C(Object*); // func_E6A810_801A5D68 -void func_801A5E54(Object*); +void func_801A5D68(Object*); // func_E6A810_801A5E54 -void func_801A5F90(Object*); +void func_801A5E54(Object*); // func_E6A810_801A5F90 -void func_801A5FD0(Object*); +void func_801A5F90(Object*); // func_E6A810_801A5FD0 -void func_801A6100(Object*); +void func_801A5FD0(Object*); // func_E6A810_801A6100 -void func_801A6144(Object*); +void func_801A6100(Object*); // func_E6A810_801A6144 -void func_801A6540(Object*); +void func_801A6144(Object*); // func_E6A810_801A6540 -void func_801A6608(Object*); +void func_801A6540(Object*); // func_E6A810_801A6608 -void func_801A67C8(Object*); +void func_801A6608(Object*); // func_E6A810_801A67C8 -void func_801A68EC(Object*); +void func_801A67C8(Object*); // func_E6A810_801A68EC -void func_801A71B8(Object*); -// func_E16C50_801A71B8 -void func_801A7E7C(Object*); +void func_801A68EC(Object*); // func_E6A810_801A7E7C -void func_801AC294(Object*); +void func_801A7E7C(Object*); // func_E6A810_801AC294 -void func_801AC438(Object*); +void func_801AC294(Object*); // func_E6A810_801AC438 -void func_801AC918(Object*); -// func_E16C50_801AC918 -void func_801AD6C0(Object*); -// func_E16C50_801AD6C0 -void func_801AD6F0(Object*); +void func_801AC438(Object*); // func_E6A810_801AD6F0 -void func_801ADAC8(Object*); +void func_801AD6F0(Object*); // func_E6A810_801ADAC8 -void func_801ADD68(Object*); +void func_801ADAC8(Object*); // func_E6A810_801ADD68 -void func_801AE168(Object*); -// func_E16C50_801AE168 -void func_801AE2C0(Object*); +void func_801ADD68(Object*); // func_E6A810_801AE2C0 -void func_801AE3D8(Object*); -// func_E16C50_801AE3D8 -void func_801AE87C(Object*); +void func_801AE2C0(Object*); // func_E6A810_801AE87C -void func_801AEAA0(Object*); +void func_801AE87C(Object*); // func_E6A810_801AEAA0 -void func_801AEB44(Object*); -// func_E16C50_801AEB44 -void func_801AEC04(Object*); +void func_801AEAA0(Object*); // func_E6A810_801AEC04 -void func_801AEEFC(Object*); +void func_801AEC04(Object*); // func_E6A810_801AEEFC -void func_801AFA5C(Object*); -// func_E16C50_801AFA5C -void func_801B099C(Object*); -// func_E16C50_801B099C -void func_801B0B60(Object*); -// func_E16C50_801B0B60 -void func_801B0EC0(Object*); -// func_E16C50_801B0EC0 -void func_801B134C(Object*); -// func_E16C50_801B134C -void func_801B4D84(Object*); -// func_E16C50_801B4D84 -void func_801B504C(Object*); -// func_E16C50_801B504C -void func_801B50E8(Object*); -// func_E16C50_801B50E8 -void func_801B619C(Object*); -// func_E16C50_801B619C -void func_801B638C(Object*); -// func_E16C50_801B638C -void func_801B6FF8(Object*); -// func_E16C50_801B6FF8 -void func_801B7A24(Object*); -// func_E16C50_801B7A24 -void func_801B7C78(Object*); -// func_E16C50_801B7C78 -void func_801B90DC(Object*); -// func_E16C50_801B90DC -void func_801B91A4(Object*); -// func_E16C50_801B91A4 -void func_801BA108(Object*); -// func_E16C50_801BA108 -void func_801BA26C(Object*); -// func_E16C50_801BA26C -void func_801BA4E4(Object*); -// func_E16C50_801BA4E4 -void func_801BA6A4(Object*); -// func_E16C50_801BA6A4 -void func_801BAD7C(Object*); -// func_E16C50_801BAD7C -void func_801BADF8(Object*); -// func_E16C50_801BADF8 -void func_801BB204(Object*); -// func_E16C50_801BB204 -void func_801BB79C(Object*); -// func_E16C50_801BB79C -void func_801BC930(Object*); -// func_E16C50_801BC930 -void func_801BC9A0(Object*); -// func_E16C50_801BC9A0 -void func_801BD264(Object*); -// func_E16C50_801BD264 -void func_801BD54C(Object*); -// func_E16C50_801BD54C -void func_801BDE6C(Object*); -// func_E16C50_801BDE6C -void func_801BE1FC(Object*); -// func_E16C50_801BE1FC -void func_801BE3F8(Object*); -// func_E16C50_801BE3F8 -void func_801BEB1C(Object*); -// func_E16C50_801BEB1C -void func_801BEC50(Object*); -// func_E16C50_801BEC50 -void func_801BEC5C(Object*); -// func_E16C50_801BEC5C -void func_801BEC68(Object*); -// func_E16C50_801BEC68 -void func_801BEC74(Object*); -// func_E16C50_801BEC74 +void func_801AEEFC(Object*); + +// func_E9F1D0_801880E4 +void func_801880E4(Object*); +// func_E9F1D0_80188448 +void func_80188448(Object*); +// func_E9F1D0_80188528 +void func_80188528(Object*); +// func_E9F1D0_80188660 +void func_80188660(Object*); +// func_E9F1D0_8018933C +void func_8018933C(Object*); +// func_E9F1D0_801893B8 +void func_801893B8(Object*); +// func_E9F1D0_80189470 +void func_80189470(Object*); +// func_E9F1D0_80189724 +void func_80189724(Object*); +// func_E9F1D0_80189B70 +void func_80189B70(Object*); +// func_E9F1D0_8018B8C0 +void func_8018B8C0(Object*); +// func_E9F1D0_8018CAD4 +void func_8018CAD4(Object*); +// func_E9F1D0_8018CF98 +void func_8018CF98(Object*); +// func_E9F1D0_8018DBF0 +void func_8018DBF0(Object*); +// func_E9F1D0_801928C8 +void func_801928C8(Object*); +// func_E9F1D0_80192E94 +void func_80192E94(Object*); +// func_E9F1D0_80193244 +void func_80193244(Object*); +// func_E9F1D0_80193380 +void func_80193380(Object*); +// func_E9F1D0_8019350C +void func_8019350C(Object*); +// func_E9F1D0_8019356C +void func_8019356C(Object*); +// func_E9F1D0_801935D4 +void func_801935D4(Object*); +// func_E9F1D0_80196210 +void func_80196210(Object*); +// func_E9F1D0_80196288 +void func_80196288(Object*); +// func_E9F1D0_80197C64 +void func_80197C64(Object*); +// func_E9F1D0_80197CB8 +void func_80197CB8(Object*); +// func_E9F1D0_8019C888 +void func_8019C888(Object*); +// func_E9F1D0_8019E2C4 +void func_8019E2C4(Object*); +// func_E9F1D0_801A4E44 +void func_801A4E44(Object*); +// func_E9F1D0_801A52B8 +void func_801A52B8(Object*); f32 D_800CBE70[] = { 1.0f, 0.0f, 50.0f, 0.0f, 25.0f, 0.0f, 25.0f, @@ -719,7 +550,7 @@ ObjectInfo D_800CC124[0x190] = { /* OBJ_80_123 */ {(void*) D_60120F0, 0, (ObjectFunc) NULL, D_6030E4C, 2000.0f, 0, 0, 41, 0, 0.0f, 0 }, /* OBJ_80_124 */ {(void*) D_600EEF0, 0, (ObjectFunc) NULL, D_800CBF34, 2000.0f, 0, 0, 41, 0, 0.0f, 0 }, /* OBJ_80_125 */ {(void*) D_600BF80, 0, (ObjectFunc) NULL, D_6030E68, 2000.0f, 0, 0, 41, 0, 0.0f, 0 }, - /* OBJ_80_126 */ {(void*) func_801BE1FC, 1, (ObjectFunc) NULL, D_800CBF34, 2000.0f, 0, 0, 41, 0, 0.0f, 0 }, + /* OBJ_80_126 */ {(void*) func_E16C50_801BE1FC, 1, (ObjectFunc) NULL, D_800CBF34, 2000.0f, 0, 0, 41, 0, 0.0f, 0 }, /* OBJ_80_127 */ {(void*) D_9005C80, 0, (ObjectFunc) func_DF4260_801924A8, D_601B678, 1000.0f, 0, 0, 42, 0, 0.0f, 0 }, /* OBJ_80_128 */ {(void*) D_9003F50, 0, (ObjectFunc) NULL, D_601B6C4, 3200.0f, 0, 0, 42, 0, 0.0f, 0 }, /* OBJ_80_129 */ {(void*) D_900F060, 0, (ObjectFunc) NULL, D_601B710, 3200.0f, 0, 0, 42, 0, 0.0f, 0 }, @@ -781,7 +612,7 @@ ObjectInfo D_800CC124[0x190] = { /* OBJ_2F4_185 */ {(void*) func_8018DB6C, 1, (ObjectFunc) func_8018D9EC, D_800CBF34, 100.0f, 0, 1, 39, 0, 0.0f, 1 }, /* OBJ_2F4_186 */ {(void*) func_8005B7CC, 1, (ObjectFunc) func_8018795C, D_602F724, 200.0f, 0, 1, 39, 0, 1.0f, 1 }, /* OBJ_2F4_187 */ {(void*) D_6018450, 0, (ObjectFunc) func_801877C4, D_602F740, 200.0f, 0, 1, 39, 0, 1.0f, 1 }, - /* OBJ_2F4_188 */ {(void*) func_801BEC74, 1, (ObjectFunc) func_801BEC68, D_6030BE0, 200.0f, 0, 1, 39, 0, 1.0f, 1 }, + /* OBJ_2F4_188 */ {(void*) func_E16C50_801BEC74, 1, (ObjectFunc) func_E16C50_801BEC68, D_6030BE0, 200.0f, 0, 1, 39, 0, 1.0f, 1 }, /* OBJ_2F4_189 */ {(void*) func_8005A094, 1, (ObjectFunc) func_8006C008, D_800CBF34, 0.0f, 0, 0, 39, 0, 0.0f, 0 }, /* OBJ_2F4_190 */ {(void*) func_8005B848, 1, (ObjectFunc) func_800656D4, D_800CBFE4, 100.0f, 0, 1, 39, 0, 1.0f, 0 }, /* OBJ_2F4_191 */ {(void*) func_8005B848, 1, (ObjectFunc) func_800656D4, D_800CBFE4, 100.0f, 0, 1, 39, 0, 1.0f, 0 }, @@ -828,51 +659,51 @@ ObjectInfo D_800CC124[0x190] = { /* OBJ_2F4_232 */ {(void*) func_8018B6AC, 1, (ObjectFunc) func_8018B268, D_6006890_f32, 0.0f, 0, 0, 39, 1, 20.0f, 1 }, /* OBJ_2F4_233 */ {(void*) func_8018A1C0, 1, (ObjectFunc) func_80189CC8, D_60068F0, 200.0f, 0, 0, 39, 1, 1.0f, 1 }, /* OBJ_2F4_234 */ {(void*) func_80077218, 1, (ObjectFunc) func_800771CC, D_800CBF34, 2000.0f, 0, 0, 39, 0, 0.0f, 5 }, - /* OBJ_2F4_235 */ {(void*) func_E16C50_80190430, 2, (ObjectFunc) func_801904CC, D_602C294, 1000.0f, 0, 1, 40, 0, 1.0f, 1 }, - /* OBJ_2F4_236 */ {(void*) func_E16C50_80190F08, 1, (ObjectFunc) func_80190A00, D_602BC58, 5000.0f, 0, 0, 40, 0, 0.0f, 0 }, + /* OBJ_2F4_235 */ {(void*) func_E16C50_80190430, 2, (ObjectFunc) func_E16C50_801904CC, D_602C294, 1000.0f, 0, 1, 40, 0, 1.0f, 1 }, + /* OBJ_2F4_236 */ {(void*) func_E16C50_80190F08, 1, (ObjectFunc) func_E16C50_80190A00, D_602BC58, 5000.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_2F4_237 */ {(void*) func_8006A978, 1, (ObjectFunc) func_8006A96C, D_800CBF34, 200.0f, 0, 0, 40, 0, 0.0f, 2 }, - /* OBJ_2F4_238 */ {(void*) func_801914C4, 2, (ObjectFunc) func_80191010, D_800CBE8C, 200.0f, 0, 1, 40, 0, 1.0f, 1 }, + /* OBJ_2F4_238 */ {(void*) func_E16C50_801914C4, 2, (ObjectFunc) func_E16C50_80191010, D_800CBE8C, 200.0f, 0, 1, 40, 0, 1.0f, 1 }, /* OBJ_2F4_239 */ {(void*) NULL, 1, (ObjectFunc) NULL, D_800CBF34, 1000.0f, 0, 0, 0, 0, 0.0f, 0 }, - /* OBJ_2F4_240 */ {(void*) func_80191B4C, 1, (ObjectFunc) func_80191680, D_800CBE8C, 1500.0f, 0, 1, 40, 0, 20.0f, 0 }, - /* OBJ_2F4_241 */ {(void*) func_80191DB0, 1, (ObjectFunc) func_80191BC4, D_800CBE70, 1500.0f, 0, 1, 40, 0, 0.0f, 0 }, - /* OBJ_2F4_242 */ {(void*) func_80191FFC, 2, (ObjectFunc) func_80192094, D_602BE3C, 500.0f, 0, 0, 40, 0, 1.0f, 0 }, - /* OBJ_2F4_243 */ {(void*) func_80192C18, 2, (ObjectFunc) func_80192834, D_800CBE8C, 0.0f, 0, 1, 40, 0, 1.0f, 1 }, - /* OBJ_2F4_244 */ {(void*) func_80193240, 2, (ObjectFunc) func_80192E64, D_602BE58, 2000.0f, 0, 0, 40, 0, 50.0f, 0 }, - /* OBJ_2F4_245 */ {(void*) func_8019983C, 1, (ObjectFunc) func_8019969C, D_800CBE8C, 200.0f, 0, 0, 40, 0, 1.0f, 0 }, - /* OBJ_2F4_246 */ {(void*) func_80199E24, 1, (ObjectFunc) func_80199A28, D_800CBE8C, 2000.0f, 0, 0, 40, 0, 1.0f, 0 }, - /* OBJ_2F4_247 */ {(void*) func_8019D3C4, 1, (ObjectFunc) func_8019D15C, D_602BFC4, 500.0f, 0, 0, 40, 0, 0.0f, 0 }, - /* OBJ_2F4_248 */ {(void*) func_8019A1FC, 1, (ObjectFunc) func_80199F10, D_800CBEA8, 2000.0f, 0, 0, 40, 0, 0.0f, 0 }, - /* OBJ_2F4_249 */ {(void*) func_8019ACCC, 1, (ObjectFunc) func_8019A5D4, D_800CBEC4, 5000.0f, 0, 0, 40, 0, 0.0f, 0 }, - /* OBJ_2F4_250 */ {(void*) func_8019B7DC, 1, (ObjectFunc) func_8019B548, D_602C1D4, 10000.0f, 0, 0, 40, 0, 0.0f, 0 }, - /* OBJ_2F4_251 */ {(void*) func_8019BDE0, 2, (ObjectFunc) func_8019B854, D_602C218, 1000.0f, 0, 0, 40, 0, 1.0f, 1 }, - /* OBJ_2F4_252 */ {(void*) func_8019C1CC, 1, (ObjectFunc) func_8019BE48, D_602C234, 200.0f, 0, 0, 40, 0, 80.0f, 1 }, - /* OBJ_2F4_253 */ {(void*) func_8019C83C, 1, (ObjectFunc) func_8019C454, D_602C250, 300.0f, 0, 0, 40, 0, 0.0f, 0 }, - /* OBJ_2F4_254 */ {(void*) func_8019CE58, 1, (ObjectFunc) func_8019CBEC, D_602C2B0, 300.0f, 0, 0, 0, 0, 0.0f, 0 }, - /* OBJ_2F4_255 */ {(void*) func_801AE168, 1, (ObjectFunc) func_801AD6C0, D_6030BFC, 500.0f, 0, 0, 40, 0, 0.0f, 0 }, - /* OBJ_2F4_256 */ {(void*) func_801AEB44, 1, (ObjectFunc) func_801AE3D8, D_6030C18, 10000.0f, 0, 0, 40, 0, 0.0f, 0 }, - /* OBJ_2F4_257 */ {(void*) func_801B099C, 1, (ObjectFunc) func_801AFA5C, D_6030C44, 10000.0f, 0, 0, 40, 0, 0.0f, 0 }, - /* OBJ_2F4_258 */ {(void*) func_801B0EC0, 1, (ObjectFunc) func_801B0B60, D_800CBE8C, 200.0f, 0, 0, 40, 0, 0.0f, 0 }, - /* OBJ_2F4_259 */ {(void*) func_801B619C, 2, (ObjectFunc) func_801B638C, D_6031398, 10000.0f, 0, 0, 40, 0, 0.0f, 0 }, - /* OBJ_2F4_260 */ {(void*) func_801B90DC, 2, (ObjectFunc) func_801B7C78, D_60313CC, 300.0f, 0, 0, 40, 0, 0.0f, 0 }, - /* OBJ_2F4_261 */ {(void*) func_801B504C, 2, (ObjectFunc) func_801B50E8, D_6031400, 300.0f, 0, 0, 40, 0, 0.0f, 1 }, - /* OBJ_2F4_262 */ {(void*) func_801B7A24, 2, (ObjectFunc) func_801B6FF8, D_603144C, 2000.0f, 0, 0, 40, 0, 0.0f, 0 }, - /* OBJ_2F4_263 */ {(void*) func_801BA108, 2, (ObjectFunc) func_801B91A4, D_6031480, 200.0f, 0, 0, 40, 0, 0.0f, 1 }, - /* OBJ_2F4_264 */ {(void*) func_801BA4E4, 1, (ObjectFunc) func_801BA26C, D_800CBE8C, 200.0f, 0, 0, 0, 0, 0.0f, 0 }, - /* OBJ_2F4_265 */ {(void*) func_801BAD7C, 1, (ObjectFunc) func_801BA6A4, D_6031500, 200.0f, 0, 0, 40, 0, 0.0f, 1 }, - /* OBJ_2F4_266 */ {(void*) func_801BB204, 2, (ObjectFunc) func_801BADF8, D_6031538, 200.0f, 0, 0, 0, 0, 0.0f, 0 }, - /* OBJ_2F4_267 */ {(void*) func_801BC930, 2, (ObjectFunc) func_801BB79C, D_6031554, 800.0f, 0, 0, 40, 0, 0.0f, 0 }, - /* OBJ_2F4_268 */ {(void*) func_801BDE6C, 1, (ObjectFunc) func_801BD54C, D_6031570, 10000.0f, 0, 0, 0, 0, 0.0f, 0 }, - /* OBJ_2F4_269 */ {(void*) func_801BD264, 1, (ObjectFunc) func_801BC9A0, D_6030D20, 2000.0f, 0, 0, 40, 0, 0.0f, 0 }, - /* OBJ_2F4_270 */ {(void*) func_801BEB1C, 1, (ObjectFunc) func_801BE3F8, D_60314C8, 1000.0f, 0, 0, 40, 0, 0.0f, 0 }, + /* OBJ_2F4_240 */ {(void*) func_E16C50_80191B4C, 1, (ObjectFunc) func_E16C50_80191680, D_800CBE8C, 1500.0f, 0, 1, 40, 0, 20.0f, 0 }, + /* OBJ_2F4_241 */ {(void*) func_E16C50_80191DB0, 1, (ObjectFunc) func_E16C50_80191BC4, D_800CBE70, 1500.0f, 0, 1, 40, 0, 0.0f, 0 }, + /* OBJ_2F4_242 */ {(void*) func_E16C50_80191FFC, 2, (ObjectFunc) func_E16C50_80192094, D_602BE3C, 500.0f, 0, 0, 40, 0, 1.0f, 0 }, + /* OBJ_2F4_243 */ {(void*) func_E16C50_80192C18, 2, (ObjectFunc) func_E16C50_80192834, D_800CBE8C, 0.0f, 0, 1, 40, 0, 1.0f, 1 }, + /* OBJ_2F4_244 */ {(void*) func_E16C50_80193240, 2, (ObjectFunc) func_E16C50_80192E64, D_602BE58, 2000.0f, 0, 0, 40, 0, 50.0f, 0 }, + /* OBJ_2F4_245 */ {(void*) func_E16C50_8019983C, 1, (ObjectFunc) func_E16C50_8019969C, D_800CBE8C, 200.0f, 0, 0, 40, 0, 1.0f, 0 }, + /* OBJ_2F4_246 */ {(void*) func_E16C50_80199E24, 1, (ObjectFunc) func_E16C50_80199A28, D_800CBE8C, 2000.0f, 0, 0, 40, 0, 1.0f, 0 }, + /* OBJ_2F4_247 */ {(void*) func_E16C50_8019D3C4, 1, (ObjectFunc) func_E16C50_8019D15C, D_602BFC4, 500.0f, 0, 0, 40, 0, 0.0f, 0 }, + /* OBJ_2F4_248 */ {(void*) func_E16C50_8019A1FC, 1, (ObjectFunc) func_E16C50_80199F10, D_800CBEA8, 2000.0f, 0, 0, 40, 0, 0.0f, 0 }, + /* OBJ_2F4_249 */ {(void*) func_E16C50_8019ACCC, 1, (ObjectFunc) func_E16C50_8019A5D4, D_800CBEC4, 5000.0f, 0, 0, 40, 0, 0.0f, 0 }, + /* OBJ_2F4_250 */ {(void*) func_E16C50_8019B7DC, 1, (ObjectFunc) func_E16C50_8019B548, D_602C1D4, 10000.0f, 0, 0, 40, 0, 0.0f, 0 }, + /* OBJ_2F4_251 */ {(void*) func_E16C50_8019BDE0, 2, (ObjectFunc) func_E16C50_8019B854, D_602C218, 1000.0f, 0, 0, 40, 0, 1.0f, 1 }, + /* OBJ_2F4_252 */ {(void*) func_E16C50_8019C1CC, 1, (ObjectFunc) func_E16C50_8019BE48, D_602C234, 200.0f, 0, 0, 40, 0, 80.0f, 1 }, + /* OBJ_2F4_253 */ {(void*) func_E16C50_8019C83C, 1, (ObjectFunc) func_E16C50_8019C454, D_602C250, 300.0f, 0, 0, 40, 0, 0.0f, 0 }, + /* OBJ_2F4_254 */ {(void*) func_E16C50_8019CE58, 1, (ObjectFunc) func_E16C50_8019CBEC, D_602C2B0, 300.0f, 0, 0, 0, 0, 0.0f, 0 }, + /* OBJ_2F4_255 */ {(void*) func_E16C50_801AE168, 1, (ObjectFunc) func_E16C50_801AD6C0, D_6030BFC, 500.0f, 0, 0, 40, 0, 0.0f, 0 }, + /* OBJ_2F4_256 */ {(void*) func_E16C50_801AEB44, 1, (ObjectFunc) func_E16C50_801AE3D8, D_6030C18, 10000.0f, 0, 0, 40, 0, 0.0f, 0 }, + /* OBJ_2F4_257 */ {(void*) func_E16C50_801B099C, 1, (ObjectFunc) func_E16C50_801AFA5C, D_6030C44, 10000.0f, 0, 0, 40, 0, 0.0f, 0 }, + /* OBJ_2F4_258 */ {(void*) func_E16C50_801B0EC0, 1, (ObjectFunc) func_E16C50_801B0B60, D_800CBE8C, 200.0f, 0, 0, 40, 0, 0.0f, 0 }, + /* OBJ_2F4_259 */ {(void*) func_E16C50_801B619C, 2, (ObjectFunc) func_E16C50_801B638C, D_6031398, 10000.0f, 0, 0, 40, 0, 0.0f, 0 }, + /* OBJ_2F4_260 */ {(void*) func_E16C50_801B90DC, 2, (ObjectFunc) func_E16C50_801B7C78, D_60313CC, 300.0f, 0, 0, 40, 0, 0.0f, 0 }, + /* OBJ_2F4_261 */ {(void*) func_E16C50_801B504C, 2, (ObjectFunc) func_E16C50_801B50E8, D_6031400, 300.0f, 0, 0, 40, 0, 0.0f, 1 }, + /* OBJ_2F4_262 */ {(void*) func_E16C50_801B7A24, 2, (ObjectFunc) func_E16C50_801B6FF8, D_603144C, 2000.0f, 0, 0, 40, 0, 0.0f, 0 }, + /* OBJ_2F4_263 */ {(void*) func_E16C50_801BA108, 2, (ObjectFunc) func_E16C50_801B91A4, D_6031480, 200.0f, 0, 0, 40, 0, 0.0f, 1 }, + /* OBJ_2F4_264 */ {(void*) func_E16C50_801BA4E4, 1, (ObjectFunc) func_E16C50_801BA26C, D_800CBE8C, 200.0f, 0, 0, 0, 0, 0.0f, 0 }, + /* OBJ_2F4_265 */ {(void*) func_E16C50_801BAD7C, 1, (ObjectFunc) func_E16C50_801BA6A4, D_6031500, 200.0f, 0, 0, 40, 0, 0.0f, 1 }, + /* OBJ_2F4_266 */ {(void*) func_E16C50_801BB204, 2, (ObjectFunc) func_E16C50_801BADF8, D_6031538, 200.0f, 0, 0, 0, 0, 0.0f, 0 }, + /* OBJ_2F4_267 */ {(void*) func_E16C50_801BC930, 2, (ObjectFunc) func_E16C50_801BB79C, D_6031554, 800.0f, 0, 0, 40, 0, 0.0f, 0 }, + /* OBJ_2F4_268 */ {(void*) func_E16C50_801BDE6C, 1, (ObjectFunc) func_E16C50_801BD54C, D_6031570, 10000.0f, 0, 0, 0, 0, 0.0f, 0 }, + /* OBJ_2F4_269 */ {(void*) func_E16C50_801BD264, 1, (ObjectFunc) func_E16C50_801BC9A0, D_6030D20, 2000.0f, 0, 0, 40, 0, 0.0f, 0 }, + /* OBJ_2F4_270 */ {(void*) func_E16C50_801BEB1C, 1, (ObjectFunc) func_E16C50_801BE3F8, D_60314C8, 1000.0f, 0, 0, 40, 0, 0.0f, 0 }, /* OBJ_2F4_271 */ {(void*) func_8002E694, 2, (ObjectFunc) func_8002E670, D_6011B24, 0.0f, 0, 0, 39, 0, 730.0f, 1 }, /* OBJ_2F4_272 */ {(void*) func_8002E6DC, 1, (ObjectFunc) func_8002E6B8, D_6011BF4, 0.0f, 0, 0, 39, 0, 150.0f, 1 }, /* OBJ_2F4_273 */ {(void*) func_80188FE4, 2, (ObjectFunc) func_80188AD0, D_600FF30, 0.0f, 0, 0, 39, 0, 220.0f, 1 }, /* OBJ_2F4_274 */ {(void*) func_8019E3A8, 1, (ObjectFunc) func_8019E234, D_800CBEC4, 0.0f, 0, 0, 39, 0, 1.0f, 0 }, - /* OBJ_2F4_275 */ {(void*) func_8019F7AC, 1, (ObjectFunc) func_8019F20C, D_800CBE8C, 200.0f, 0, 0, 39, 0, 1.0f, 1 }, - /* OBJ_2F4_276 */ {(void*) func_8019F7AC, 1, (ObjectFunc) func_8019F20C, D_800CBE8C, 200.0f, 0, 0, 39, 0, 1.0f, 1 }, - /* OBJ_2F4_277 */ {(void*) func_8019F7AC, 1, (ObjectFunc) func_8019F20C, D_800CBEC4, 200.0f, 0, 0, 39, 0, 1.0f, 1 }, - /* OBJ_2F4_278 */ {(void*) NULL, 1, (ObjectFunc) func_8019EA7C, D_800CBF34, 200.0f, 0, 0, 0, 0, 0.0f, 1 }, - /* OBJ_2F4_279 */ {(void*) NULL, 1, (ObjectFunc) func_801A003C, D_800CBF34, 1000.0f, 0, 0, 0, 0, 0.0f, 1 }, + /* OBJ_2F4_275 */ {(void*) func_E16C50_8019F7AC, 1, (ObjectFunc) func_E16C50_8019F20C, D_800CBE8C, 200.0f, 0, 0, 39, 0, 1.0f, 1 }, + /* OBJ_2F4_276 */ {(void*) func_E16C50_8019F7AC, 1, (ObjectFunc) func_E16C50_8019F20C, D_800CBE8C, 200.0f, 0, 0, 39, 0, 1.0f, 1 }, + /* OBJ_2F4_277 */ {(void*) func_E16C50_8019F7AC, 1, (ObjectFunc) func_E16C50_8019F20C, D_800CBEC4, 200.0f, 0, 0, 39, 0, 1.0f, 1 }, + /* OBJ_2F4_278 */ {(void*) NULL, 1, (ObjectFunc) func_E16C50_8019EA7C, D_800CBF34, 200.0f, 0, 0, 0, 0, 0.0f, 1 }, + /* OBJ_2F4_279 */ {(void*) NULL, 1, (ObjectFunc) func_E16C50_801A003C, D_800CBF34, 1000.0f, 0, 0, 0, 0, 0.0f, 1 }, /* OBJ_2F4_280 */ {(void*) D_900DD20, 0, (ObjectFunc) func_80192518, D_601B7F8, 1000.0f, 0, 0, 40, 1, 0.0f, 0 }, /* OBJ_2F4_281 */ {(void*) func_80192E2C, 1, (ObjectFunc) func_80192CD4, D_601B830, 1000.0f, 0, 0, 40, 1, 0.0f, 0 }, /* OBJ_2F4_282 */ {(void*) D_901DA50, 0, (ObjectFunc) func_80192CD4, D_601B868, 1000.0f, 0, 0, 40, 1, 0.0f, 0 }, @@ -885,36 +716,36 @@ ObjectInfo D_800CC124[0x190] = { /* OBJ_2F4_289 */ {(void*) func_800596B0, 1, (ObjectFunc) func_80189470, D_800CBF34, 1000.0f, 0, 0, 20, 1, 0.0f, 0 }, /* OBJ_2F4_290 */ {(void*) NULL, 1, (ObjectFunc) func_8018933C, D_800CBF34, 1000.0f, 0, 0, 20, 0, 0.0f, 0 }, /* OBJ_2F4_291 */ {(void*) func_80067874, 1, (ObjectFunc) func_8006753C, D_800CBEA8, 1000.0f, 0, 0, 0, 0, 1.0f, 0 }, - /* OBJ_408_292 */ {(void*) func_8018AA74, 2, (ObjectFunc) func_80189058, D_603E620, 20000.0f, 0, 0, 40, 1, 0.0f, 10 }, - /* OBJ_408_293 */ {(void*) func_8018ECAC, 1, (ObjectFunc) func_8018C19C, D_603E840, 20000.0f, 0, 0, 40, 0, 0.0f, 10 }, - /* OBJ_408_294 */ {(void*) func_8018ED78, 1, (ObjectFunc) func_8018DDAC, D_603E714, 20000.0f, 0, 0, 40, 0, 0.0f, 10 }, - /* OBJ_408_295 */ {(void*) func_8018EE84, 1, (ObjectFunc) func_8018E290, D_603E748, 20000.0f, 0, 0, 40, 0, 0.0f, 10 }, - /* OBJ_408_296 */ {(void*) func_8018EF90, 1, (ObjectFunc) func_8018E76C, D_603E7C4, 20000.0f, 0, 0, 40, 0, 0.0f, 10 }, - /* OBJ_408_297 */ {(void*) func_8018BACC, 1, (ObjectFunc) func_8018978C, D_602F75C, 20000.0f, 0, 0, 40, 0, 0.0f, 10 }, - /* OBJ_408_298 */ {(void*) func_801887D0, 1, (ObjectFunc) func_80188344, D_602FA50, 20000.0f, 0, 0, 40, 0, 0.0f, 10 }, - /* OBJ_408_299 */ {(void*) func_80042FC4, 2, (ObjectFunc) func_80042FB8, D_800CBF34, 20000.0f, 0, 0, 40, 0, 0.0f, 10 }, - /* OBJ_408_300 */ {(void*) func_80042FE8, 1, (ObjectFunc) func_80042FDC, D_800CBF34, 20000.0f, 0, 0, 40, 0, 0.0f, 10 }, - /* OBJ_408_301 */ {(void*) func_801BEC5C, 1, (ObjectFunc) func_801BEC50, D_6030B10, 0.0f, 0, 0, 40, 0, 0.0f, 10 }, - /* OBJ_408_302 */ {(void*) func_8018C54C, 1, (ObjectFunc) func_80187944, D_6028454, 2000.0f, 0, 0, 40, 0, 0.0f, 10 }, - /* OBJ_408_303 */ {(void*) func_80193434, 2, (ObjectFunc) func_80190078, D_6032550, 20000.0f, 0, 0, 20, 0, 0.0f, 10 }, - /* OBJ_408_304 */ {(void*) func_8018FF84, 2, (ObjectFunc) func_8018FE38, D_6032488, 1000.0f, 0, 0, 20, 0, 0.0f, 10 }, - /* OBJ_408_305 */ {(void*) func_80190020, 2, (ObjectFunc) func_8018FF20, D_60324EC, 1000.0f, 0, 0, 20, 0, 0.0f, 10 }, - /* OBJ_408_306 */ {(void*) func_801982A8, 1, (ObjectFunc) func_80197A94,D_E6A810_801B83A8, 1000.0f, 0, 0, 40, 1, 0.0f, 10 }, - /* OBJ_408_307 */ {(void*) func_801949DC, 2, (ObjectFunc) func_80194A84, D_602C044, 1000.0f, 0, 0, 40, 0, 1.0f, 10 }, - /* OBJ_408_308 */ {(void*) func_8008FE78, 1, (ObjectFunc) func_800907C4, D_600FFE0, 0.0f, 0, 0, 40, 1, 0.0f, 10 }, - /* OBJ_408_309 */ {(void*) func_8002E604, 1, (ObjectFunc) func_8002E5E0, D_800CBF34, 0.0f, 0, 0, 40, 1, 0.0f, 10 }, - /* OBJ_408_310 */ {(void*) func_8002E64C, 1, (ObjectFunc) func_8002E628, D_800CBF34, 0.0f, 0, 0, 40, 1, 0.0f, 10 }, - /* OBJ_408_311 */ {(void*) func_80191AFC, 2, (ObjectFunc) func_801912FC, D_6011C80, 0.0f, 0, 0, 40, 1, 0.0f, 10 }, - /* OBJ_408_312 */ {(void*) func_80196288, 2, (ObjectFunc) func_80196210, D_60166F4, 0.0f, 0, 0, 40, 1, 0.0f, 10 }, - /* OBJ_408_313 */ {(void*) func_8019E98C, 1, (ObjectFunc) func_8019E454, D_6009388, 0.0f, 0, 0, 40, 0, 0.0f, 10 }, - /* OBJ_408_314 */ {(void*) func_8019E2C4, 2, (ObjectFunc) func_8019C888, D_800CBF34, 0.0f, 0, 0, 40, 0, 0.0f, 10 }, - /* OBJ_408_315 */ {(void*) func_801A71B8, 2, (ObjectFunc) func_801A5B3C, D_800CBF34, 0.0f, 0, 0, 40, 0, 0.0f, 10 }, - /* OBJ_408_316 */ {(void*) func_801968F4, 1, (ObjectFunc) func_801946C4, D_6011058, 0.0f, 0, 0, 40, 0, 0.0f, 10 }, - /* OBJ_408_317 */ {(void*) func_80193B1C, 1, (ObjectFunc) func_80193718, D_601115C, 0.0f, 0, 0, 40, 1, 0.0f, 10 }, - /* OBJ_408_318 */ {(void*) func_801B4D84, 2, (ObjectFunc) func_801B134C, D_6030F74, 10000.0f, 0, 0, 40, 0, 0.0f, 10 }, - /* OBJ_408_319 */ {(void*) func_801985E4, 1, (ObjectFunc) func_80194398,D_DF4260_8019A9B8, 3000.0f, 0, 0, 40, 1, 0.0f, 10 }, - /* OBJ_408_320 */ {(void*) func_801928C8, 2, (ObjectFunc) func_8018DBF0, D_C038DC0, 10000.0f, 0, 0, 40, 0, 0.0f, 10 }, - /* OBJ_408_321 */ {(void*) func_8018B8C0, 1, (ObjectFunc) func_80189B70, D_C038F24, 10000.0f, 0, 0, 40, 0, 0.0f, 10 }, + /* OBJ_BOSS_292 */ {(void*) func_8018AA74, 2, (ObjectFunc) func_80189058, D_603E620, 20000.0f, 0, 0, 40, 1, 0.0f, 10 }, + /* OBJ_BOSS_293 */ {(void*) func_8018ECAC, 1, (ObjectFunc) func_8018C19C, D_603E840, 20000.0f, 0, 0, 40, 0, 0.0f, 10 }, + /* OBJ_BOSS_294 */ {(void*) func_8018ED78, 1, (ObjectFunc) func_8018DDAC, D_603E714, 20000.0f, 0, 0, 40, 0, 0.0f, 10 }, + /* OBJ_BOSS_295 */ {(void*) func_8018EE84, 1, (ObjectFunc) func_8018E290, D_603E748, 20000.0f, 0, 0, 40, 0, 0.0f, 10 }, + /* OBJ_BOSS_296 */ {(void*) func_8018EF90, 1, (ObjectFunc) func_8018E76C, D_603E7C4, 20000.0f, 0, 0, 40, 0, 0.0f, 10 }, + /* OBJ_BOSS_297 */ {(void*) func_8018BACC, 1, (ObjectFunc) func_8018978C, D_602F75C, 20000.0f, 0, 0, 40, 0, 0.0f, 10 }, + /* OBJ_BOSS_298 */ {(void*) func_801887D0, 1, (ObjectFunc) func_80188344, D_602FA50, 20000.0f, 0, 0, 40, 0, 0.0f, 10 }, + /* OBJ_BOSS_299 */ {(void*) func_80042FC4, 2, (ObjectFunc) func_80042FB8, D_800CBF34, 20000.0f, 0, 0, 40, 0, 0.0f, 10 }, + /* OBJ_BOSS_300 */ {(void*) func_80042FE8, 1, (ObjectFunc) func_80042FDC, D_800CBF34, 20000.0f, 0, 0, 40, 0, 0.0f, 10 }, + /* OBJ_BOSS_301 */ {(void*) func_E16C50_801BEC5C, 1, (ObjectFunc) func_E16C50_801BEC50, D_6030B10, 0.0f, 0, 0, 40, 0, 0.0f, 10 }, + /* OBJ_BOSS_A6 */ {(void*) func_E16C50_8018C54C, 1, (ObjectFunc) func_E16C50_80187944, D_6028454, 2000.0f, 0, 0, 40, 0, 0.0f, 10 }, + /* OBJ_BOSS_303 */ {(void*) func_80193434, 2, (ObjectFunc) func_80190078, D_6032550, 20000.0f, 0, 0, 20, 0, 0.0f, 10 }, + /* OBJ_BOSS_304 */ {(void*) func_8018FF84, 2, (ObjectFunc) func_8018FE38, D_6032488, 1000.0f, 0, 0, 20, 0, 0.0f, 10 }, + /* OBJ_BOSS_305 */ {(void*) func_80190020, 2, (ObjectFunc) func_8018FF20, D_60324EC, 1000.0f, 0, 0, 20, 0, 0.0f, 10 }, + /* OBJ_BOSS_306 */ {(void*) func_801982A8, 1, (ObjectFunc) func_80197A94,D_E6A810_801B83A8, 1000.0f, 0, 0, 40, 1, 0.0f, 10 }, + /* OBJ_BOSS_ZO */ {(void*) func_E16C50_801949DC, 2, (ObjectFunc) func_E16C50_80194A84, D_602C044, 1000.0f, 0, 0, 40, 0, 1.0f, 10 }, + /* OBJ_BOSS_308 */ {(void*) func_8008FE78, 1, (ObjectFunc) func_800907C4, D_600FFE0, 0.0f, 0, 0, 40, 1, 0.0f, 10 }, + /* OBJ_BOSS_309 */ {(void*) func_8002E604, 1, (ObjectFunc) func_8002E5E0, D_800CBF34, 0.0f, 0, 0, 40, 1, 0.0f, 10 }, + /* OBJ_BOSS_310 */ {(void*) func_8002E64C, 1, (ObjectFunc) func_8002E628, D_800CBF34, 0.0f, 0, 0, 40, 1, 0.0f, 10 }, + /* OBJ_BOSS_311 */ {(void*) func_80191AFC, 2, (ObjectFunc) func_801912FC, D_6011C80, 0.0f, 0, 0, 40, 1, 0.0f, 10 }, + /* OBJ_BOSS_312 */ {(void*) func_80196288, 2, (ObjectFunc) func_80196210, D_60166F4, 0.0f, 0, 0, 40, 1, 0.0f, 10 }, + /* OBJ_BOSS_313 */ {(void*) func_8019E98C, 1, (ObjectFunc) func_8019E454, D_6009388, 0.0f, 0, 0, 40, 0, 0.0f, 10 }, + /* OBJ_BOSS_314 */ {(void*) func_8019E2C4, 2, (ObjectFunc) func_8019C888, D_800CBF34, 0.0f, 0, 0, 40, 0, 0.0f, 10 }, + /* OBJ_BOSS_SO */ {(void*) func_E16C50_801A71B8, 2, (ObjectFunc) func_E16C50_801A5B3C, D_800CBF34, 0.0f, 0, 0, 40, 0, 0.0f, 10 }, + /* OBJ_BOSS_316 */ {(void*) func_801968F4, 1, (ObjectFunc) func_801946C4, D_6011058, 0.0f, 0, 0, 40, 0, 0.0f, 10 }, + /* OBJ_BOSS_317 */ {(void*) func_80193B1C, 1, (ObjectFunc) func_80193718, D_601115C, 0.0f, 0, 0, 40, 1, 0.0f, 10 }, + /* OBJ_BOSS_AQ */ {(void*) func_E16C50_801B4D84, 2, (ObjectFunc) func_E16C50_801B134C, D_6030F74, 10000.0f, 0, 0, 40, 0, 0.0f, 10 }, + /* OBJ_BOSS_319 */ {(void*) func_801985E4, 1, (ObjectFunc) func_80194398,D_DF4260_8019A9B8, 3000.0f, 0, 0, 40, 1, 0.0f, 10 }, + /* OBJ_BOSS_320 */ {(void*) func_801928C8, 2, (ObjectFunc) func_8018DBF0, D_C038DC0, 10000.0f, 0, 0, 40, 0, 0.0f, 10 }, + /* OBJ_BOSS_321 */ {(void*) func_8018B8C0, 1, (ObjectFunc) func_80189B70, D_C038F24, 10000.0f, 0, 0, 40, 0, 0.0f, 10 }, /* OBJ_ITEM_LASERS */ {(void*) func_8005CC9C, 1, (ObjectFunc) func_80067F6C, D_800CBFA8, 700.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_ITEM_CHECKPOINT */ {(void*) func_8005C5F0, 1, (ObjectFunc) func_80068914, D_800CBF38, 700.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_ITEM_SILVER_RING */ {(void*) func_8005C900, 1, (ObjectFunc) func_80068020, D_800CBF54, 700.0f, 0, 0, 0, 0, 0.0f, 0 }, @@ -959,7 +790,7 @@ ObjectInfo D_800CC124[0x190] = { /* OBJ_8C_363 */ {(void*) func_80094BBC, 1, (ObjectFunc) func_80094954, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 }, /* OBJ_8C_364 */ {(void*) func_8007B9DC, 1, (ObjectFunc) func_8007B960, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 }, /* OBJ_8C_365 */ {(void*) func_8007E5CC, 1, (ObjectFunc) func_8007E45C, NULL, -200.0f, 1, 1, 0, 0, 0.0f, 0 }, - /* OBJ_8C_366 */ {(void*) func_80078550, 1, (ObjectFunc) func_801AC918, NULL, 100.0f, 1, 2, 0, 0, 0.0f, 0 }, + /* OBJ_8C_366 */ {(void*) func_80078550, 1, (ObjectFunc) func_E16C50_801AC918, NULL, 100.0f, 1, 2, 0, 0, 0.0f, 0 }, /* OBJ_8C_367 */ {(void*) func_80078604, 1, (ObjectFunc) func_8007E648, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 }, /* OBJ_8C_368 */ {(void*) func_80188FA8, 1, (ObjectFunc) func_80188F60, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 }, /* OBJ_8C_369 */ {(void*) func_8018DCE4, 1, (ObjectFunc) func_80188CAC, NULL, 100.0f, 0, 1, 40, 0, 0.0f, 0 }, @@ -985,7 +816,7 @@ ObjectInfo D_800CC124[0x190] = { /* OBJ_8C_389 */ {(void*) func_800780F8, 1, (ObjectFunc) func_8007B67C, NULL, -200.0f, 1, 1, 0, 0, 0.0f, 0 }, /* OBJ_8C_390 */ {(void*) NULL, 1, (ObjectFunc) func_8007C50C, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 }, /* OBJ_8C_391 */ {(void*) func_80083B8C, 1, (ObjectFunc) func_800837EC, NULL, 500.0f, 0, 0, 0, 0, 0.0f, 0 }, - /* OBJ_8C_392 */ {(void*) func_801A0AF0, 1, (ObjectFunc) func_801A0120, NULL, 300.0f, 1, 2, 10, 0, 0.0f, 0 }, + /* OBJ_8C_392 */ {(void*) func_E16C50_801A0AF0, 1, (ObjectFunc) func_E16C50_801A0120, NULL, 300.0f, 1, 2, 10, 0, 0.0f, 0 }, /* OBJ_8C_393 */ {(void*) func_80078F78, 1, (ObjectFunc) func_80078EBC, NULL, 300.0f, 1, 1, 0, 0, 0.0f, 0 }, /* OBJ_8C_394 */ {(void*) func_80080D04, 1, (ObjectFunc) func_80080ACC, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 }, /* OBJ_8C_395 */ {(void*) func_80082F78, 1, (ObjectFunc) func_80081C5C, NULL, 300.0f, 0, 1, 40, 0, 0.0f, 0 }, diff --git a/src/main/fox_edisplay.c b/src/main/fox_edisplay.c index 005d6964..5c9c44a3 100644 --- a/src/main/fox_edisplay.c +++ b/src/main/fox_edisplay.c @@ -285,7 +285,7 @@ void func_8005A094(Object_2F4* obj2F4) { if (gCurrentLevel != LEVEL_SOLAR) { gSPDisplayList(gMasterDisp++, D_E6A810_801B769C[obj2F4->unk_046]); } else { - if (gObjects408[0].unk_0E4 < 4800.0f) { + if (gBosses[0].fwork[3] < 4800.0f) { RCP_SetupDL(&gMasterDisp, 0x1E); gDPSetFogColor(gMasterDisp++, 0x40, 0x20, 0x20, gFogAlpha); gSPFogPosition(gMasterDisp++, gFogNear, gFogFar); @@ -661,10 +661,10 @@ void func_8005BAB4(ObjectId objId, s32 index) { break; } break; - case OBJ_408_292: + case OBJ_BOSS_292: gSPDisplayList(gMasterDisp++, D_6034B90); break; - case OBJ_408_316: + case OBJ_BOSS_316: if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_0) { RCP_SetupDL(&gMasterDisp, 0x40); gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 0, 0, 0, 200); @@ -673,25 +673,25 @@ void func_8005BAB4(ObjectId objId, s32 index) { Graphics_SetScaleMtx(150.0f); gSPDisplayList(gMasterDisp++, D_102A8A0); break; - case OBJ_408_293: - case OBJ_408_294: - case OBJ_408_295: - case OBJ_408_296: - __cosf(gObjects408[index].obj.rot.z * M_DTOR); + case OBJ_BOSS_293: + case OBJ_BOSS_294: + case OBJ_BOSS_295: + case OBJ_BOSS_296: + __cosf(gBosses[index].obj.rot.z * M_DTOR); if (D_80161A88 == 2) { gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 90); } else { gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 150); } switch (objId) { - case OBJ_408_293: + case OBJ_BOSS_293: gSPDisplayList(gMasterDisp++, D_6036840); break; - case OBJ_408_294: + case OBJ_BOSS_294: gSPDisplayList(gMasterDisp++, D_6036CD0); break; - case OBJ_408_295: - case OBJ_408_296: + case OBJ_BOSS_295: + case OBJ_BOSS_296: gSPDisplayList(gMasterDisp++, D_60363B0); break; } @@ -749,8 +749,8 @@ void func_8005BAB4(ObjectId objId, s32 index) { Matrix_SetGfxMtx(&gMasterDisp); gSPDisplayList(gMasterDisp++, D_1024AC0); break; - case OBJ_408_319: - func_DF4260_80198310(&gObjects408[index]); + case OBJ_BOSS_319: + func_DF4260_80198310(&gBosses[index]); break; } } @@ -1123,7 +1123,7 @@ void Object_2F4_Draw1(Object_2F4* obj2F4) { obj2F4->unk_0B0 = D_801615EC; } -void Object_408_Draw(Object_408* obj408, s32 arg1) { +void Boss_Draw(Boss* boss, s32 arg1) { f32 var_fa1; f32 var_ft5; f32 var_fv0; @@ -1131,21 +1131,21 @@ void Object_408_Draw(Object_408* obj408, s32 arg1) { f32 sp3C; Vec3f sp30 = { 0.0f, 0.0f, 0.0f }; - if (obj408->info.unk_19 != 0) { - obj408->obj.pos.y += obj408->unk_068 + D_8017847C; - func_8005D1F0(&obj408->obj, obj408->info.drawType); - obj408->obj.pos.y -= obj408->unk_068 + D_8017847C; + if (boss->info.unk_19 != 0) { + boss->obj.pos.y += boss->unk_068 + D_8017847C; + func_8005D1F0(&boss->obj, boss->info.drawType); + boss->obj.pos.y -= boss->unk_068 + D_8017847C; } else { - func_8005D1F0(&obj408->obj, obj408->info.drawType); + func_8005D1F0(&boss->obj, boss->info.drawType); } Matrix_MultVec3f(&D_801615F0, &sp30, &D_801615D0); - func_8005F290(&obj408->sfxPos, &D_801615D0); - if ((obj408->obj.id == OBJ_408_316) || (obj408->obj.id == OBJ_408_317)) { + func_8005F290(&boss->sfxPos, &D_801615D0); + if ((boss->obj.id == OBJ_BOSS_316) || (boss->obj.id == OBJ_BOSS_317)) { var_fa1 = 6000.0f; var_fv0 = 6000.0f; var_ft5 = 0.9f; var_fv1 = -20000.0f; - } else if (obj408->obj.id == OBJ_408_313) { + } else if (boss->obj.id == OBJ_BOSS_313) { var_fv1 = -25000.0f; var_ft5 = 0.7f; var_fa1 = 3000.0f; @@ -1161,27 +1161,27 @@ void Object_408_Draw(Object_408* obj408, s32 arg1) { if (fabsf(D_801615D0.x) < (fabsf(D_801615D0.z * var_ft5) + var_fa1)) { if (fabsf(D_801615D0.y) < (fabsf(D_801615D0.z * var_ft5) + var_fa1)) { sp3C = 1.0f; - if (obj408->obj.id != OBJ_408_309) { - if (obj408->obj.id != OBJ_408_316) { - func_8005F670(&obj408->obj.pos); + if (boss->obj.id != OBJ_BOSS_309) { + if (boss->obj.id != OBJ_BOSS_316) { + func_8005F670(&boss->obj.pos); } - if (obj408->info.drawType != 2) { + if (boss->info.drawType != 2) { Matrix_SetGfxMtx(&gMasterDisp); } if (arg1 < 0) { func_800596C0(); } - obj408->info.draw(&obj408->obj); + boss->info.draw(&boss->obj); } } } } D_801615D0.y = sp3C; - if (obj408->obj.id == OBJ_408_309) { - obj408->unk_308 = D_801615D0; - func_8005F670(&obj408->obj.pos); + if (boss->obj.id == OBJ_BOSS_309) { + boss->vwork[30] = D_801615D0; + func_8005F670(&boss->obj.pos); Matrix_SetGfxMtx(&gMasterDisp); - obj408->info.draw(&obj408->obj); + boss->info.draw(&boss->obj); } } @@ -1320,7 +1320,7 @@ void func_8005ECD8(s32 index, Object* obj) { Matrix_Translate(gGfxMatrix, obj->pos.x, D_80177940 + 2.0f + gObjects2F4[index].unk_114, obj->pos.z + D_80177D20, 1); break; - case OBJ_408_316: + case OBJ_BOSS_316: Matrix_Translate(gGfxMatrix, obj->pos.x, D_80177940 + 2.0f + D_8017847C, obj->pos.z, 1); break; default: @@ -1331,7 +1331,7 @@ void func_8005ECD8(s32 index, Object* obj) { Matrix_Scale(gGfxMatrix, 1.0f, 0.0f, 1.0f, 1); Matrix_RotateY(gGfxMatrix, obj->rot.y * M_DTOR, 1); } - if ((obj->id < OBJ_408_292) && (obj->id != OBJ_2F4_230) && (obj->id != OBJ_2F4_229) && + if ((obj->id < OBJ_BOSS_292) && (obj->id != OBJ_2F4_230) && (obj->id != OBJ_2F4_229) && (obj->id != OBJ_2F4_231)) { Matrix_RotateX(gGfxMatrix, obj->rot.x * M_DTOR, 1); Matrix_RotateZ(gGfxMatrix, obj->rot.z * M_DTOR, 1); @@ -1536,7 +1536,7 @@ void Object_DrawAll(s32 arg0) { s32 i; s32 pad[5]; // probably separate iterators for each loop Object_2F4* obj2F4; - Object_408* obj408; + Boss* boss; Object_4C* obj4C; Object_58* obj58; Item* item; @@ -1554,7 +1554,7 @@ void Object_DrawAll(s32 arg0) { spAC.y = obj58->sfxPos.y; spAC.z = obj58->sfxPos.z; Matrix_MultVec3fNoTranslate(&D_E51970_8019EE80, &spAC, &obj58->obj.pos); - obj58->obj.rot.y = obj58->unk_54 + gObjects408->obj.rot.y; + obj58->obj.rot.y = gBosses[0].obj.rot.y + (*obj58).unk_54; } Matrix_Push(&gGfxMatrix); Object_58_Draw(obj58); @@ -1575,9 +1575,9 @@ void Object_DrawAll(s32 arg0) { } } } - for (i = 0, obj408 = gObjects408; i < ARRAY_COUNT(gObjects408); i++, obj408++) { - if ((obj408->obj.status >= 2) && (obj408->obj.id != OBJ_408_310)) { - if (!(obj408->timer_05C & 1)) { + for (i = 0, boss = gBosses; i < ARRAY_COUNT(gBosses); i++, boss++) { + if ((boss->obj.status >= 2) && (boss->obj.id != OBJ_BOSS_310)) { + if (!(boss->timer_05C & 1)) { RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); } else { RCP_SetupDL_27(); @@ -1585,11 +1585,11 @@ void Object_DrawAll(s32 arg0) { } func_800597C0(arg0); Matrix_Push(&gGfxMatrix); - Object_408_Draw(obj408, arg0); + Boss_Draw(boss, arg0); Matrix_Pop(&gGfxMatrix); - if ((obj408->unk_05E != 0) && (D_801615D0.y > 0.0f)) { + if ((boss->unk_05E != 0) && (D_801615D0.y > 0.0f)) { Matrix_Push(&gGfxMatrix); - func_8005ECD8(i, &obj408->obj); + func_8005ECD8(i, &boss->obj); Matrix_Pop(&gGfxMatrix); } } @@ -1673,7 +1673,7 @@ void Object_DrawAll(s32 arg0) { void func_8006046C(s32 arg0) { s32 i; - Object_408* obj408; + Boss* boss; Object_8C* obj8C; RCP_SetupDL(&gMasterDisp, 0x40); @@ -1700,16 +1700,16 @@ void func_8006046C(s32 arg0) { } } } - for (i = 0, obj408 = gObjects408; i < ARRAY_COUNT(gObjects408); i++, obj408++) { - if ((obj408->obj.status >= 2) && (obj408->obj.id == OBJ_408_310)) { - if (!(obj408->timer_05C & 1)) { + for (i = 0, boss = gBosses; i < ARRAY_COUNT(gBosses); i++, boss++) { + if ((boss->obj.status >= 2) && (boss->obj.id == OBJ_BOSS_310)) { + if (!(boss->timer_05C & 1)) { RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); } else { RCP_SetupDL_27(); gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 64, 64, 255, 255); } Matrix_Push(&gGfxMatrix); - Object_408_Draw(obj408, arg0); + Boss_Draw(boss, arg0); Matrix_Pop(&gGfxMatrix); } } diff --git a/src/main/fox_enmy.c b/src/main/fox_enmy.c index 3806b7fa..027f510e 100644 --- a/src/main/fox_enmy.c +++ b/src/main/fox_enmy.c @@ -148,14 +148,14 @@ void Object_2F4_Initialize(Object_2F4* obj2F4) { obj2F4->scale = 1.0f; } -void Object_408_Initialize(Object_408* obj408) { +void Boss_Initialize(Boss* boss) { s32 i; - u8* ptr = (u8*) obj408; + u8* ptr = (u8*) boss; - for (i = 0; i < sizeof(Object_408); i++, ptr++) { + for (i = 0; i < sizeof(Boss); i++, ptr++) { *ptr = 0; } - obj408->unk_3F8 = 1.0f; + boss->unk_3F8 = 1.0f; } void Item_Initialize(Item* item) { @@ -219,18 +219,18 @@ void Object_2F4_Load(Object_2F4* obj2F4, ObjectInit* objInit) { Object_SetInfo(&obj2F4->info, obj2F4->obj.id); } -void Object_408_Load(Object_408* obj408, ObjectInit* objInit) { - Object_408_Initialize(obj408); - obj408->obj.status = 1; - obj408->obj.pos.z = -objInit->zPos1; - obj408->obj.pos.z += -3000.0f + objInit->zPos2; - obj408->obj.pos.x = objInit->xPos; - obj408->obj.pos.y = objInit->yPos; - obj408->obj.rot.y = objInit->unk_C; - obj408->obj.rot.x = objInit->unk_A; - obj408->obj.rot.z = objInit->unk_E; - obj408->obj.id = objInit->id; - Object_SetInfo(&obj408->info, obj408->obj.id); +void Boss_Load(Boss* boss, ObjectInit* objInit) { + Boss_Initialize(boss); + boss->obj.status = 1; + boss->obj.pos.z = -objInit->zPos1; + boss->obj.pos.z += -3000.0f + objInit->zPos2; + boss->obj.pos.x = objInit->xPos; + boss->obj.pos.y = objInit->yPos; + boss->obj.rot.y = objInit->unk_C; + boss->obj.rot.x = objInit->unk_A; + boss->obj.rot.z = objInit->unk_E; + boss->obj.id = objInit->id; + Object_SetInfo(&boss->info, boss->obj.id); } void Item_Load(Item* item, ObjectInit* objInit) { @@ -416,7 +416,7 @@ void Object_Load(ObjectInit* objInit, f32 arg1, f32 arg2, f32 arg3, f32 arg4) { } } } - if ((objInit->id >= OBJ_2F4_176) && (objInit->id < OBJ_408_292)) { + if ((objInit->id >= OBJ_2F4_176) && (objInit->id < OBJ_BOSS_292)) { if ((objInit->id == OBJ_2F4_267) || (objInit->id == OBJ_2F4_254)) { for (i = ARRAY_COUNT(gObjects2F4) - 1; i >= 0; i--) { if (gObjects2F4[i].obj.status == 0) { @@ -440,10 +440,10 @@ void Object_Load(ObjectInit* objInit, f32 arg1, f32 arg2, f32 arg3, f32 arg4) { } } } - if ((objInit->id >= OBJ_408_292) && (objInit->id < OBJ_ITEM_LASERS)) { - for (i = 0; i < ARRAY_COUNT(gObjects408); i++) { - if (gObjects408[i].obj.status == 0) { - Object_408_Load(&gObjects408[i], objInit); + if ((objInit->id >= OBJ_BOSS_292) && (objInit->id < OBJ_ITEM_LASERS)) { + for (i = 0; i < ARRAY_COUNT(gBosses); i++) { + if (gBosses[i].obj.status == 0) { + Boss_Load(&gBosses[i], objInit); break; } } @@ -734,23 +734,23 @@ bool func_8006326C(Vec3f* arg0, Vec3f* arg1, ObjectId objId, Object* obj) { sp50.x = obj->pos.x; sp50.y = obj->pos.y; sp50.z = obj->pos.z; - if ((objId == OBJ_2F4_180) || (objId == OBJ_80_149) || (objId == OBJ_80_150) || (objId == OBJ_408_308) || - (objId == OBJ_408_313) || (objId == OBJ_408_312) || (objId == OBJ_408_309) || (objId == OBJ_80_39)) { + if ((objId == OBJ_2F4_180) || (objId == OBJ_80_149) || (objId == OBJ_80_150) || (objId == OBJ_BOSS_308) || + (objId == OBJ_BOSS_313) || (objId == OBJ_BOSS_312) || (objId == OBJ_BOSS_309) || (objId == OBJ_80_39)) { colId = COL1_0; - if (objId == OBJ_408_312) { + if (objId == OBJ_BOSS_312) { colId = COL1_9; } if (objId == OBJ_80_39) { colId = COL1_1; - } else if (objId == OBJ_408_308) { + } else if (objId == OBJ_BOSS_308) { colId = COL1_4; - } else if (objId == OBJ_408_309) { + } else if (objId == OBJ_BOSS_309) { colId = COL1_7; } else if (objId == OBJ_80_149) { colId = COL1_5; } else if (objId == OBJ_80_150) { colId = COL1_6; - } else if (objId == OBJ_408_313) { + } else if (objId == OBJ_BOSS_313) { colId = COL1_8; } if (func_800998FC(&sp5C, &sp50, arg1, colId, &sp44, &sp30) > 0) { @@ -787,7 +787,7 @@ s32 func_8006351C(s32 index, Vec3f* pos, Vec3f* arg2, s32 arg3) { Object_58* obj58; Object_80* obj80; Object_4C* obj4C; - Object_408* obj408; + Boss* boss; Object_2F4* obj2F4; Vec3f temp; s32 i; @@ -838,34 +838,34 @@ s32 func_8006351C(s32 index, Vec3f* pos, Vec3f* arg2, s32 arg3) { } if ((arg3 == 0) || (arg3 == 2) || (arg3 == 3)) { if (arg3 != 2) { - obj408 = gObjects408; - for (i = 0; i < ARRAY_COUNT(gObjects408); i++, obj408++) { - if (obj408->obj.status == 2) { - if ((obj408->obj.id == OBJ_408_308) || (obj408->obj.id == OBJ_408_312) || - (obj408->obj.id == OBJ_408_313) || (obj408->obj.id == OBJ_408_309)) { - if (func_8006326C(pos, arg2, obj408->obj.id, &obj408->obj)) { + boss = gBosses; + for (i = 0; i < ARRAY_COUNT(gBosses); i++, boss++) { + if (boss->obj.status == 2) { + if ((boss->obj.id == OBJ_BOSS_308) || (boss->obj.id == OBJ_BOSS_312) || + (boss->obj.id == OBJ_BOSS_313) || (boss->obj.id == OBJ_BOSS_309)) { + if (func_8006326C(pos, arg2, boss->obj.id, &boss->obj)) { return 2; } - } else if (obj408->obj.id == OBJ_408_310) { - temp.x = fabsf(obj408->obj.pos.x - pos->x) * (5.0f / 6.0f); - temp.y = fabsf(obj408->obj.pos.y - pos->y) * 2; - temp.z = fabsf(obj408->obj.pos.z - pos->z) * (5.0f / 6.0f); + } else if (boss->obj.id == OBJ_BOSS_310) { + temp.x = fabsf(boss->obj.pos.x - pos->x) * (5.0f / 6.0f); + temp.y = fabsf(boss->obj.pos.y - pos->y) * 2; + temp.z = fabsf(boss->obj.pos.z - pos->z) * (5.0f / 6.0f); if (sqrtf(VEC3F_SQ(temp)) < 1500.0f) { - obj408->unk_062 = 1; + boss->unk_062 = 1; return 2; } } else { - if (obj408->obj.id == OBJ_408_316) { - temp.x = fabsf(obj408->obj.pos.x - pos->x); - temp.y = fabsf(obj408->obj.pos.y - 300.0f - pos->y) * 7.42f; - temp.z = fabsf(obj408->obj.pos.z - pos->z); + if (boss->obj.id == OBJ_BOSS_316) { + temp.x = fabsf(boss->obj.pos.x - pos->x); + temp.y = fabsf(boss->obj.pos.y - 300.0f - pos->y) * 7.42f; + temp.z = fabsf(boss->obj.pos.z - pos->z); if (sqrtf(VEC3F_SQ(temp)) < 2700.0f) { return 2; } } - if ((fabsf(pos->x - obj408->obj.pos.x) < 2000.0f) && - (fabsf(pos->z - obj408->obj.pos.z) < 2000.0f)) { - if (func_80062DBC(pos, obj408->info.hitbox, &obj408->obj, 0.0f, 0.0f, 0.0f)) { + if ((fabsf(pos->x - boss->obj.pos.x) < 2000.0f) && + (fabsf(pos->z - boss->obj.pos.z) < 2000.0f)) { + if (func_80062DBC(pos, boss->info.hitbox, &boss->obj, 0.0f, 0.0f, 0.0f)) { return 2; } } @@ -1165,14 +1165,14 @@ void Object_Init(s32 index, ObjectId objId) { case OBJ_2F4_192: gObjects2F4[index].unk_0C9 = 1; break; - case OBJ_408_320: - func_E9F1D0_8018D16C(&gObjects408[index]); + case OBJ_BOSS_320: + func_E9F1D0_8018D16C(&gBosses[index]); break; - case OBJ_408_316: - func_E51970_80193CA4(&gObjects408[index]); + case OBJ_BOSS_316: + func_E51970_80193CA4(&gBosses[index]); break; - case OBJ_408_314: - func_E9F1D0_80197CC4(&gObjects408[index]); + case OBJ_BOSS_314: + func_E9F1D0_80197CC4(&gBosses[index]); break; case OBJ_2F4_205: case OBJ_2F4_206: @@ -1214,23 +1214,23 @@ void Object_Init(s32 index, ObjectId objId) { gObjects2F4[index].unk_0CE = 24; Audio_PlaySfx(0x31000016, &gObjects2F4[index].sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); break; - case OBJ_408_297: - func_E08400_80188A40(&gObjects408[index]); + case OBJ_BOSS_297: + func_E08400_80188A40(&gBosses[index]); break; - case OBJ_408_299: - func_80042FAC(&gObjects408[index]); + case OBJ_BOSS_299: + func_80042FAC(&gBosses[index]); break; - case OBJ_408_300: - func_80042FD0(&gObjects408[index]); + case OBJ_BOSS_300: + func_80042FD0(&gBosses[index]); break; - case OBJ_408_292: - func_DF4260_801878D8(&gObjects408[index]); + case OBJ_BOSS_292: + func_DF4260_801878D8(&gBosses[index]); break; - case OBJ_408_293: - func_DF4260_8018BE7C(&gObjects408[index]); + case OBJ_BOSS_293: + func_DF4260_8018BE7C(&gBosses[index]); break; - case OBJ_408_302: - func_E16C50_80187754(&gObjects408[index]); + case OBJ_BOSS_A6: + func_E16C50_80187754(&gBosses[index]); break; case OBJ_2F4_231: func_E6A810_8018B96C(&gObjects2F4[index]); @@ -1253,8 +1253,8 @@ void Object_Init(s32 index, ObjectId objId) { case OBJ_4C_169: func_E6A810_8018EFF0(&gObjects4C[index]); break; - case OBJ_408_306: - func_E6A810_8018FA48(&gObjects408[index]); + case OBJ_BOSS_306: + func_E6A810_8018FA48(&gBosses[index]); break; case OBJ_2F4_240: func_E16C50_801915A4(&gObjects2F4[index]); @@ -1262,8 +1262,8 @@ void Object_Init(s32 index, ObjectId objId) { case OBJ_2F4_241: func_E16C50_80191BB8(&gObjects2F4[index]); break; - case OBJ_408_307: - func_E16C50_801932AC(&gObjects408[index]); + case OBJ_BOSS_ZO: + func_E16C50_801932AC(&gBosses[index]); break; case OBJ_2F4_250: func_E16C50_8019B1F0(&gObjects2F4[index]); @@ -1283,8 +1283,8 @@ void Object_Init(s32 index, ObjectId objId) { case OBJ_2F4_257: func_E16C50_801AF9FC(&gObjects2F4[index]); break; - case OBJ_408_318: - func_E16C50_801B10F8(&gObjects408[index]); + case OBJ_BOSS_AQ: + func_E16C50_801B10F8(&gBosses[index]); break; case OBJ_2F4_259: func_E16C50_801B6344(&gObjects2F4[index]); @@ -1298,8 +1298,8 @@ void Object_Init(s32 index, ObjectId objId) { case OBJ_80_57: func_E6A810_8018F0D8(&gObjects80[index]); break; - case OBJ_408_319: - func_DF4260_801935CC(&gObjects408[index]); + case OBJ_BOSS_319: + func_DF4260_801935CC(&gBosses[index]); break; case OBJ_2F4_280: func_DF4260_8019250C(&gObjects2F4[index]); @@ -1539,9 +1539,9 @@ void func_800656D4(Object_2F4* obj2F4) { } } Math_Vec3fFromAngles(&sp98, obj2F4->obj.rot.x, obj2F4->obj.rot.y, obj2F4->unk_124.y); - obj2F4->unk_0E8.x = sp98.x; - obj2F4->unk_0E8.y = sp98.y; - obj2F4->unk_0E8.z = sp98.z - D_80177D08; + obj2F4->vel.x = sp98.x; + obj2F4->vel.y = sp98.y; + obj2F4->vel.z = sp98.z - D_80177D08; if (obj2F4->unk_0B4 == 0) { obj2F4->obj.rot.z += 5.0f; } @@ -1564,9 +1564,9 @@ void func_800656D4(Object_2F4* obj2F4) { func_8007D2C8(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, 5.0f); Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); } - sp8C.x = obj2F4->unk_0E8.x; - sp8C.y = obj2F4->unk_0E8.y; - sp8C.z = obj2F4->unk_0E8.z; + sp8C.x = obj2F4->vel.x; + sp8C.y = obj2F4->vel.y; + sp8C.z = obj2F4->vel.z; if ((func_8006351C(obj2F4->index, &obj2F4->obj.pos, &sp8C, 1) != 0) || (obj2F4->unk_0D0 != 0) || (obj2F4->obj.pos.y < (D_80177940 + 10.0f)) || (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_7)) { func_8007D2C8(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, 3.0f); @@ -1974,7 +1974,7 @@ void func_800674B4(f32 xPos, f32 yPos, f32 zPos, f32 xRot, f32 yRot, f32 arg5, f } void func_8006753C(Object_2F4* obj2F4) { - Player* player = gPlayer; // fake? + Player* player = &gPlayer[0]; s32 i; obj2F4->obj.rot.y += 1.0f; @@ -2462,14 +2462,14 @@ void func_800690D0(s32 index, ObjectId objId) { case OBJ_2F4_192: func_8006684C(&gObjects2F4[index]); break; - case OBJ_408_306: - func_E6A810_801990DC(&gObjects408[index]); + case OBJ_BOSS_306: + func_E6A810_801990DC(&gBosses[index]); break; case OBJ_2F4_232: func_E6A810_8018B720(&gObjects2F4[index]); break; - case OBJ_408_319: - func_DF4260_80198594(&gObjects408[index]); + case OBJ_BOSS_319: + func_DF4260_80198594(&gBosses[index]); break; } } @@ -2521,14 +2521,14 @@ void func_800693E8(Object_2F4* obj2F4) { } } -void func_80069658(Object_408* obj408) { - obj408->obj.pos.x += obj408->vel.x; - obj408->obj.pos.y += obj408->vel.y; - obj408->obj.pos.z += obj408->vel.z; - obj408->vel.y -= obj408->gravity; - if ((D_80161AB8 != 0) && ((obj408->obj.pos.z + D_80177D20) > (obj408->info.unk_10 - gPlayer[0].camEye.z))) { +void func_80069658(Boss* boss) { + boss->obj.pos.x += boss->vel.x; + boss->obj.pos.y += boss->vel.y; + boss->obj.pos.z += boss->vel.z; + boss->vel.y -= boss->gravity; + if ((D_80161AB8 != 0) && ((boss->obj.pos.z + D_80177D20) > (boss->info.unk_10 - gPlayer[0].camEye.z))) { if (gPlayer[0].camEye.z) {} // fake - Object_Kill(&obj408->obj, &obj408->sfxPos); + Object_Kill(&boss->obj, &boss->sfxPos); } } @@ -2659,44 +2659,44 @@ void Object_2F4_Update(Object_2F4* obj2F4) { } } -void Object_408_Update(Object_408* obj408) { - if (obj408->timer_050 != 0) { - obj408->timer_050--; +void Boss_Update(Boss* boss) { + if (boss->timer_050 != 0) { + boss->timer_050--; } - if (obj408->timer_052 != 0) { - obj408->timer_052--; + if (boss->timer_052 != 0) { + boss->timer_052--; } - if (obj408->timer_054 != 0) { - obj408->timer_054--; + if (boss->timer_054 != 0) { + boss->timer_054--; } - if (obj408->timer_056 != 0) { - obj408->timer_056--; + if (boss->timer_056 != 0) { + boss->timer_056--; } - if (obj408->timer_058 != 0) { - obj408->timer_058--; + if (boss->timer_058 != 0) { + boss->timer_058--; } - if (obj408->timer_05A != 0) { - obj408->timer_05A--; + if (boss->timer_05A != 0) { + boss->timer_05A--; } - if (obj408->timer_05C != 0) { - obj408->timer_05C--; + if (boss->timer_05C != 0) { + boss->timer_05C--; } - switch (obj408->obj.status) { + switch (boss->obj.status) { case 1: - obj408->obj.status = 2; - Object_Init(obj408->index, obj408->obj.id); - func_80069658(obj408); + boss->obj.status = 2; + Object_Init(boss->index, boss->obj.id); + func_80069658(boss); break; case 2: - func_80069658(obj408); - if ((obj408->obj.status != 0) && (obj408->info.action != NULL)) { - obj408->info.action(&obj408->obj); + func_80069658(boss); + if ((boss->obj.status != 0) && (boss->info.action != NULL)) { + boss->info.action(&boss->obj); } break; case 3: - func_80069658(obj408); - if (obj408->obj.status != 0) { - func_800690D0(obj408->index, obj408->obj.id); + func_80069658(boss); + if (boss->obj.status != 0) { + func_800690D0(boss->index, boss->obj.id); } break; } @@ -2848,7 +2848,7 @@ void Object_UpdateAll(void) { s32 pad; Object_58* obj58; Object_2F4* obj2F4; - Object_408* obj408; + Boss* boss; Object_4C* obj4C; Object_80* obj80; Item* item; @@ -2888,10 +2888,10 @@ void Object_UpdateAll(void) { Object_4C_Update(obj4C); } } - for (i = 0, obj408 = gObjects408; i < ARRAY_COUNT(gObjects408); i++, obj408++) { - if (obj408->obj.status != 0) { - obj408->index = i; - Object_408_Update(obj408); + for (i = 0, boss = gBosses; i < ARRAY_COUNT(gBosses); i++, boss++) { + if (boss->obj.status != 0) { + boss->index = i; + Boss_Update(boss); } } for (i = 0, obj2F4 = gObjects2F4; i < ARRAY_COUNT(gObjects2F4); i++, obj2F4++) { diff --git a/src/main/fox_enmy2.c b/src/main/fox_enmy2.c index 43a809ec..9e57bdcd 100644 --- a/src/main/fox_enmy2.c +++ b/src/main/fox_enmy2.c @@ -110,7 +110,6 @@ bool func_8006ABA4(Object_2F4* obj2F4) { return false; } -// fake? gPlayer[0]. doesn't match void func_8006AC08(Object_2F4* obj2F4) { f32 sp2C; @@ -119,10 +118,10 @@ void func_8006AC08(Object_2F4* obj2F4) { obj2F4->timer_0BC = 20; } sp2C = obj2F4->obj.pos.z + D_80177D20; - obj2F4->obj.rot.y = Math_RadToDeg(Math_Atan2F(gPlayer->camEye.x - obj2F4->obj.pos.x, gPlayer->camEye.z - sp2C)); - obj2F4->obj.rot.x = - -Math_RadToDeg(Math_Atan2F(gPlayer->camEye.y - obj2F4->obj.pos.y, - sqrtf(SQ(gPlayer->camEye.x - obj2F4->obj.pos.x) + SQ(gPlayer->camEye.z - sp2C)))); + obj2F4->obj.rot.y = Math_RadToDeg(Math_Atan2F(gPlayer[0].camEye.x - obj2F4->obj.pos.x, gPlayer[0].camEye.z - sp2C)); + obj2F4->obj.rot.x = -Math_RadToDeg( + Math_Atan2F(gPlayer[0].camEye.y - obj2F4->obj.pos.y, + sqrtf(SQ(gPlayer[0].camEye.z - sp2C) + SQ(gPlayer[0].camEye.x - obj2F4->obj.pos.x)))); } void func_8006AD18(Object_2F4* obj2F4) { @@ -478,7 +477,6 @@ void func_8006BF7C(f32 xPos, f32 yPos, f32 zPos) { } } -// fake? gPlayer[0]. doesn't match Vec3f D_800D0030 = { 0.0f, -10.0f, 0.0f }; // could be in-function void func_8006C008(Object_2F4* obj2F4) { f32 sp4C; @@ -489,8 +487,8 @@ void func_8006C008(Object_2F4* obj2F4) { switch (obj2F4->unk_0B8) { case 40: if (obj2F4->unk_04A & 4) { - obj2F4->obj.pos.x = obj2F4->unk_120 + gPlayer->pos.x; - obj2F4->obj.pos.z = obj2F4->unk_124.x + gPlayer->unk_138; + obj2F4->obj.pos.x = gPlayer[0].pos.x + (*obj2F4).unk_120; + obj2F4->obj.pos.z = gPlayer[0].unk_138 + (*obj2F4).unk_124.x; } obj2F4->obj.rot.x += obj2F4->unk_114; @@ -2953,7 +2951,7 @@ void func_80072594(Object_2F4* obj2F4) { spD8 = 0.0f; spD4 = 0.0f; - if ((gPlayer->state_1C8 == PLAYERSTATE_1C8_7) || (D_8017828C != 0)) { + if ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_7) || (D_8017828C != 0)) { Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); return; } @@ -2972,7 +2970,7 @@ void func_80072594(Object_2F4* obj2F4) { return; } if (obj2F4->unk_0B4 == 300) { - gPlayer->unk_1A4 = obj2F4->index; + gPlayer[0].unk_1A4 = obj2F4->index; obj2F4->timer_0C2 = 100; } else if (obj2F4->unk_0B4 >= 200) { obj2F4->unk_04E++; @@ -3035,13 +3033,13 @@ void func_80072594(Object_2F4* obj2F4) { Matrix_RotateY(gCalcMatrix, -obj2F4->unk_2E8.y * M_DTOR, 1); if ((obj2F4->unk_0B8 == 0xE) || (obj2F4->unk_0B8 == 0xF)) { - spB8.x = gPlayer->camEye.x - spF0; - spB8.y = gPlayer->camEye.y - (spEC + 25.0f); - spB8.z = (gPlayer->camEye.z * 15.0f) - spE8; + spB8.x = gPlayer[0].camEye.x - spF0; + spB8.y = gPlayer[0].camEye.y - (spEC + 25.0f); + spB8.z = (gPlayer[0].camEye.z * 15.0f) - spE8; } else { - spB8.x = gPlayer->pos.x - spF0; - spB8.y = gPlayer->pos.y - (spEC + 25.0f); - spB8.z = (gPlayer->vel.z * 15.0f) + gPlayer->pos.z - spE8; + spB8.x = gPlayer[0].pos.x - spF0; + spB8.y = gPlayer[0].pos.y - (spEC + 25.0f); + spB8.z = gPlayer[0].pos.z + (gPlayer[0].vel.z * 15.0f) - spE8; } Matrix_MultVec3fNoTranslate(gCalcMatrix, &spB8, &spAC); @@ -3099,13 +3097,13 @@ void func_80072594(Object_2F4* obj2F4) { } } else { if ((obj2F4->unk_0B8 == 0xE) || (obj2F4->unk_0B8 == 0xF)) { - spCC = gPlayer->camEye.x; - spC8 = gPlayer->camEye.y; - spC4 = gPlayer->camEye.z; + spCC = gPlayer[0].camEye.x; + spC8 = gPlayer[0].camEye.y; + spC4 = gPlayer[0].camEye.z; } else { - spCC = gPlayer->pos.x; - spC8 = gPlayer->pos.y; - spC4 = gPlayer->pos.z; + spCC = gPlayer[0].pos.x; + spC8 = gPlayer[0].pos.y; + spC4 = gPlayer[0].pos.z; } Math_SmoothStepToAngle(&obj2F4->unk_2E8.z, 0.0f, 0.1f, 5.0f, 0.0001f); @@ -3366,7 +3364,7 @@ void func_80072594(Object_2F4* obj2F4) { obj2F4->vel.z -= D_80177D08; } - if (gPlayer->state_1C8 == PLAYERSTATE_1C8_8) { + if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_8) { obj2F4->vel.z = 100.0f; } @@ -4082,7 +4080,7 @@ void func_80074FF0(Object_2F4* obj2F4) { case 103: case 104: - func_E6A810_8018769C(obj2F4); + func_E9F1D0_8018769C(obj2F4); break; case 105: diff --git a/src/main/fox_game.c b/src/main/fox_game.c index 867eb890..c7a095d9 100644 --- a/src/main/fox_game.c +++ b/src/main/fox_game.c @@ -1,8 +1,6 @@ #include "global.h" #include "sf64dma.h" -extern void func_80187520(s32, void*); - f32 D_80161A10; f32 D_80161A14; s32 gPlayerInactive[4]; @@ -247,15 +245,15 @@ void func_800A24DC(s32 arg0) { break; case DRAWMODE_1: func_8003DAF0(); - func_80187520(0x68, NULL); + func_EBFBE0_80187520(104, NULL); break; case DRAWMODE_2: func_8003DAF0(); - func_80187520(0x6C, NULL); + func_EBFBE0_80187520(108, NULL); break; case DRAW_MAP: func_8003DAF0(); - func_80187520(0x6A, NULL); + func_EBFBE0_80187520(106, NULL); break; case DRAWMODE_4: gPlayerNum = arg0; @@ -263,7 +261,7 @@ void func_800A24DC(s32 arg0) { break; case DRAWMODE_5: func_8003DAF0(); - func_80187520(0x6E, NULL); + func_EBFBE0_80187520(110, NULL); break; case DRAWMODE_6: func_800C2190(); @@ -443,10 +441,10 @@ void func_800A26C0(void) { func_8001D8A8(2, gVolumeSettings[2]); break; case GSTATE_TITLE: - func_80187520(0x67, NULL); + func_EBFBE0_80187520(103, NULL); break; case GSTATE_MENU: - func_80187520(0x6B, NULL); + func_EBFBE0_80187520(107, NULL); break; case GSTATE_MAP: func_EBFBE0_8019E8D0(); @@ -458,7 +456,7 @@ void func_800A26C0(void) { func_800B86CC(); break; case GSTATE_GAME_OVER: - func_80187520(0x6D, NULL); + func_EBFBE0_80187520(109, NULL); break; case GSTATE_CREDITS: gDrawMode = DRAWMODE_8; diff --git a/src/main/fox_play.c b/src/main/fox_play.c index dbb0ba99..1be70e80 100644 --- a/src/main/fox_play.c +++ b/src/main/fox_play.c @@ -27,6 +27,8 @@ extern u8 D_800D317C; extern u8 D_800D3180[30]; extern s32 D_800D31A0[4]; +extern f32 D_E16C50_801C4188; + #define MEM_ARRAY_ALLOCATE(arr, count) ((arr) = Memory_Allocate((count) * sizeof(*(arr)))) bool Play_CheckMedalStatus(u16 hitCount) { @@ -123,7 +125,7 @@ void func_800A3FEC(void) { } void func_800A4460(Player* player) { - if ((gCurrentLevel == LEVEL_VENOM_ANDROSS) && (gObjects408[0].obj.status == 2) && (gObjects408[0].unk_04E == 17)) { + if ((gCurrentLevel == LEVEL_VENOM_ANDROSS) && (gBosses[0].obj.status == 2) && (gBosses[0].unk_04E == 17)) { player->unk_060 = __sinf(player->unk_0F4 * 0.7f * M_DTOR) * 0.5f; player->unk_088 += 13.0f; player->unk_0F4 += 20.0f; @@ -356,13 +358,13 @@ void func_800A5338(void) { } } i = 0; // fake? - Object_408_Initialize(&gObjects408[i]); - gObjects408[i].obj.status = 1; - gObjects408[i].obj.pos.x = 0.0f; - gObjects408[i].obj.pos.y = 0.0f; - gObjects408[i].obj.pos.z = 0.0f; - gObjects408[i].obj.id = OBJ_408_292; - Object_SetInfo(&gObjects408[i].info, gObjects408[i].obj.id); + Boss_Initialize(&gBosses[i]); + gBosses[i].obj.status = 1; + gBosses[i].obj.pos.x = 0.0f; + gBosses[i].obj.pos.y = 0.0f; + gBosses[i].obj.pos.z = 0.0f; + gBosses[i].obj.id = OBJ_BOSS_292; + Object_SetInfo(&gBosses[i].info, gBosses[i].obj.id); } void func_800A55B0(void) { @@ -389,41 +391,41 @@ void func_800A55B0(void) { } } i = 0; // fake? - Object_408_Initialize(&gObjects408[i]); - gObjects408[i].obj.status = 1; - gObjects408[i].obj.pos.x = 0.0f; - gObjects408[i].obj.pos.y = 0.0f; - gObjects408[i].obj.pos.z = 0.0f; - gObjects408[i].obj.id = OBJ_408_314; - Object_SetInfo(&gObjects408[i].info, gObjects408[i].obj.id); + Boss_Initialize(&gBosses[i]); + gBosses[i].obj.status = 1; + gBosses[i].obj.pos.x = 0.0f; + gBosses[i].obj.pos.y = 0.0f; + gBosses[i].obj.pos.z = 0.0f; + gBosses[i].obj.id = OBJ_BOSS_314; + Object_SetInfo(&gBosses[i].info, gBosses[i].obj.id); i = 1; - Object_408_Initialize(&gObjects408[i]); - gObjects408[i].obj.status = 1; - gObjects408[i].obj.pos.x = 0.0f; - gObjects408[i].obj.pos.y = 0.0f; - gObjects408[i].obj.pos.z = 0.0f; - gObjects408[i].obj.id = OBJ_408_314; - Object_SetInfo(&gObjects408[i].info, gObjects408[i].obj.id); + Boss_Initialize(&gBosses[i]); + gBosses[i].obj.status = 1; + gBosses[i].obj.pos.x = 0.0f; + gBosses[i].obj.pos.y = 0.0f; + gBosses[i].obj.pos.z = 0.0f; + gBosses[i].obj.id = OBJ_BOSS_314; + Object_SetInfo(&gBosses[i].info, gBosses[i].obj.id); i = 2; - Object_408_Initialize(&gObjects408[i]); - gObjects408[i].obj.status = 1; - gObjects408[i].obj.pos.x = 0.0f; - gObjects408[i].obj.pos.y = 0.0f; - gObjects408[i].obj.pos.z = 0.0f; - gObjects408[i].obj.id = OBJ_408_314; - Object_SetInfo(&gObjects408[i].info, gObjects408[i].obj.id); + Boss_Initialize(&gBosses[i]); + gBosses[i].obj.status = 1; + gBosses[i].obj.pos.x = 0.0f; + gBosses[i].obj.pos.y = 0.0f; + gBosses[i].obj.pos.z = 0.0f; + gBosses[i].obj.id = OBJ_BOSS_314; + Object_SetInfo(&gBosses[i].info, gBosses[i].obj.id); } void func_800A57E0(void) { s32 i = 0; // fake? - Object_408_Initialize(&gObjects408[i]); - gObjects408[i].obj.status = 1; - gObjects408[i].obj.pos.x = 0.0f; - gObjects408[i].obj.pos.y = 0.0f; - gObjects408[i].obj.pos.z = 0.0f; - gObjects408[i].obj.id = OBJ_408_321; - Object_SetInfo(&gObjects408[i].info, gObjects408[i].obj.id); + Boss_Initialize(&gBosses[i]); + gBosses[i].obj.status = 1; + gBosses[i].obj.pos.x = 0.0f; + gBosses[i].obj.pos.y = 0.0f; + gBosses[i].obj.pos.z = 0.0f; + gBosses[i].obj.id = OBJ_BOSS_321; + Object_SetInfo(&gBosses[i].info, gBosses[i].obj.id); } void func_800A5844(void) { @@ -611,9 +613,9 @@ void func_800A6148(void) { Object_Kill(&gObjects2F4[i].obj, &gObjects2F4[i].sfxPos); Object_2F4_Initialize(&gObjects2F4[i]); } - for (i = 0; i < ARRAY_COUNT(gObjects408); i++) { - Object_Kill(&gObjects408[i].obj, &gObjects408[i].sfxPos); - Object_408_Initialize(&gObjects408[i]); + for (i = 0; i < ARRAY_COUNT(gBosses); i++) { + Object_Kill(&gBosses[i].obj, &gBosses[i].sfxPos); + Boss_Initialize(&gBosses[i]); } for (i = 0; i < ARRAY_COUNT(gObjects8C); i++) { Object_Kill(&gObjects8C[i].obj, &gObjects8C[i].sfxPos); @@ -1189,19 +1191,19 @@ bool func_800A8054(ObjectId objId, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 a case OBJ_80_150: colId = COL1_6; break; - case OBJ_408_308: + case OBJ_BOSS_308: colId = COL1_4; break; - case OBJ_408_312: + case OBJ_BOSS_312: colId = COL1_9; break; - case OBJ_408_309: + case OBJ_BOSS_309: colId = COL1_7; break; case OBJ_UNK_1000: colId = COL1_3; break; - case OBJ_408_313: + case OBJ_BOSS_313: colId = COL1_8; break; case OBJ_80_39: @@ -1513,7 +1515,7 @@ void func_800A8BA4(Player* player) { f32 padB8; // B8 Object_2F4* obj2F4; // B4 f32 padB0; // B0 - Object_408* obj408; // AC + Boss* boss; // AC Object_4C* obj4C; // A8 s32 pad; // A4 Object_80* obj80; // A0 @@ -1767,27 +1769,27 @@ void func_800A8BA4(Player* player) { } } } - for (i = 0, obj408 = gObjects408; i < ARRAY_COUNT(gObjects408); i++, obj408++) { - if (obj408->obj.status == 2) { - if ((obj408->obj.id == OBJ_408_312) || (obj408->obj.id == OBJ_408_308) || - (obj408->obj.id == OBJ_408_313) || (obj408->obj.id == OBJ_408_309)) { - temp_v0 = func_800A8304(player, obj408->obj.id, obj408->obj.pos.x, obj408->obj.pos.y, - obj408->obj.pos.z, obj408->obj.rot.x, obj408->obj.rot.y, obj408->obj.rot.z); + for (i = 0, boss = gBosses; i < ARRAY_COUNT(gBosses); i++, boss++) { + if (boss->obj.status == 2) { + if ((boss->obj.id == OBJ_BOSS_312) || (boss->obj.id == OBJ_BOSS_308) || + (boss->obj.id == OBJ_BOSS_313) || (boss->obj.id == OBJ_BOSS_309)) { + temp_v0 = func_800A8304(player, boss->obj.id, boss->obj.pos.x, boss->obj.pos.y, boss->obj.pos.z, + boss->obj.rot.x, boss->obj.rot.y, boss->obj.rot.z); if (temp_v0 != 0) { - Player_ApplyDamage(player, temp_v0, obj408->info.damage); + Player_ApplyDamage(player, temp_v0, boss->info.damage); break; } } - if (obj408->obj.id == OBJ_408_310) { - spfD4.x = fabsf(obj408->obj.pos.x - player->pos.x) * .8333333f; - spfD4.y = fabsf(obj408->obj.pos.y - player->pos.y) * 2; - spfD4.z = fabsf(obj408->obj.pos.z - player->unk_138) * 0.8333333f; + if (boss->obj.id == OBJ_BOSS_310) { + spfD4.x = fabsf(boss->obj.pos.x - player->pos.x) * .8333333f; + spfD4.y = fabsf(boss->obj.pos.y - player->pos.y) * 2; + spfD4.z = fabsf(boss->obj.pos.z - player->unk_138) * 0.8333333f; if (sqrtf(VEC3F_SQ(spfD4)) < 1500.0f) { - Player_ApplyDamage(player, 0, obj408->info.damage); + Player_ApplyDamage(player, 0, boss->info.damage); player->unk_110 = 0.0f; player->timer_498 = 5; player->unk_0D8.y = 30.0f; - obj408->unk_062 = 1; + boss->unk_062 = 1; func_8007BFFC(player->pos.x + (10.0f * (Rand_ZeroOne() - 0.5f)), player->pos.y + (10.0f * Rand_ZeroOne()), player->unk_138 + (10.0f * (Rand_ZeroOne() - 0.5f)), 0.0f, 15.0f, 0.0f, 2.0f, 5); @@ -1801,38 +1803,38 @@ void func_800A8BA4(Player* player) { break; } } else { - if (obj408->obj.id == OBJ_408_316) { - spfD4.x = fabsf(obj408->obj.pos.x - player->pos.x); - spfD4.y = fabsf(obj408->obj.pos.y - 300.0f - player->pos.y) * 7.42f; - spfD4.z = fabsf(obj408->obj.pos.z - player->unk_138); + if (boss->obj.id == OBJ_BOSS_316) { + spfD4.x = fabsf(boss->obj.pos.x - player->pos.x); + spfD4.y = fabsf(boss->obj.pos.y - 300.0f - player->pos.y) * 7.42f; + spfD4.z = fabsf(boss->obj.pos.z - player->unk_138); if (sqrtf(VEC3F_SQ(spfD4)) < 2700.0f) { - Player_ApplyDamage(player, 3, obj408->info.damage); + Player_ApplyDamage(player, 3, boss->info.damage); } } - temp_v0 = func_800A7974(player, obj408->info.hitbox, &sp98, obj408->obj.pos.x, obj408->obj.pos.y, - obj408->obj.pos.z, obj408->obj.rot.x, obj408->obj.rot.y, obj408->obj.rot.z, - 0.0f, 0.0f, 0.0f); + temp_v0 = func_800A7974(player, boss->info.hitbox, &sp98, boss->obj.pos.x, boss->obj.pos.y, + boss->obj.pos.z, boss->obj.rot.x, boss->obj.rot.y, boss->obj.rot.z, 0.0f, + 0.0f, 0.0f); if (temp_v0 != 0) { if (temp_v0 < 0) { if (player->unk_22C == 0) { - Audio_PlaySfx(0x19000001, &obj408->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + Audio_PlaySfx(0x19000001, &boss->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } player->unk_22C += 2; if (player->unk_22C >= 4) { player->unk_22C = 4; } } else { - if ((obj408->obj.id == OBJ_408_320) && (obj408->timer_056 != 0) && (sp98 == 5)) { + if ((boss->obj.id == OBJ_BOSS_320) && (boss->timer_056 != 0) && (sp98 == 5)) { break; } - Player_ApplyDamage(player, temp_v0, obj408->info.damage); - if ((obj408->obj.id == OBJ_408_303) && ((obj408->unk_04E == 2) || (obj408->unk_04E == 3)) && + Player_ApplyDamage(player, temp_v0, boss->info.damage); + if ((boss->obj.id == OBJ_BOSS_303) && ((boss->unk_04E == 2) || (boss->unk_04E == 3)) && (sp98 >= 9)) { player->unk_0D8.y = -100.0f; } - if ((obj408->obj.id == OBJ_408_320) && (sp98 < 5)) { - player->unk_0D8.x = obj408->unk_110; - player->unk_0D8.y = obj408->unk_114; + if ((boss->obj.id == OBJ_BOSS_320) && (sp98 < 5)) { + player->unk_0D8.x = boss->fwork[14]; + player->unk_0D8.y = boss->fwork[15]; } } } @@ -1877,7 +1879,7 @@ void func_800A8BA4(Player* player) { if (D_80177E80 == 3) { func_800BA808(gMsg_ID_5504, RCID_FALCO); } - Audio_PlaySfx(D_800CFF54[D_80177E80], &gPlayer->unk_460, 0, &D_800C5D34, + Audio_PlaySfx(D_800CFF54[D_80177E80], &gPlayer[0].unk_460, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); Audio_PlaySfx(0x49008025, &D_800C5D28, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } @@ -5400,7 +5402,7 @@ void func_800B48BC(Player* player) { } if (D_80178340 == 0xFF) { func_800A6148(); - D_80177D20 = gPlayer->unk_144 = 0.0f; + D_80177D20 = gPlayer[0].unk_144 = 0.0f; D_80178380[0] = 0; D_8015F93C = gRadioState = 0; func_8001AE58(); @@ -5466,7 +5468,7 @@ void func_800B48BC(Player* player) { Math_SmoothStepToF(&player->unk_09C, sp1C8, 1.0f, 10.0f, 0.0f); if (player->form == FORM_ARWING) { Math_SmoothStepToF(&player->unk_194, player->unk_190, 0.5f, 5.0f, 0.0f); - if (player->unk_2B4 && (gPlayer->state_1C8 == PLAYERSTATE_1C8_3)) { + if (player->unk_2B4 && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_3)) { player->unk_190 = 0.5f; } else { player->unk_190 = 1.0f; @@ -5851,14 +5853,14 @@ void func_800B6F50(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5) { } var_ft5 = 0.0f; if (gCurrentLevel == LEVEL_UNK_15) { - var_ft5 = gPlayer->camEye.y * 0.03f; + var_ft5 = gPlayer[0].camEye.y * 0.03f; } sp30 = (2.0f * (-sp2C * (-8.0f / 3.0f * M_RTOD))) + 3000.0f + D_80178430 + var_ft5; sp34 = (2.0f * (sp28 * (-8.0f / 3.0f * M_RTOD))) + 3000.0f + D_8017842C; sp20 = D_80178420; D_80178420 = Math_ModF(sp34, 480.0f); D_80178424 = Math_ModF(sp30, 360.0f); - if ((gGameState == GSTATE_PLAY) && (gPlayer->state_1C8 == PLAYERSTATE_1C8_2) && (gCurrentLevel == LEVEL_METEO)) { + if ((gGameState == GSTATE_PLAY) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_2) && (gCurrentLevel == LEVEL_METEO)) { if (fabsf(D_80178420 - sp20) < 50.0f) { D_8015F96C = 0.0f; if (fabsf(D_80178420 - sp20) > 3.0f) { @@ -5935,7 +5937,7 @@ void func_800B73E0(Player* player) { Vec3f sp38; f32 pad; - if ((gCurrentLevel == LEVEL_AQUAS) && (gPlayer->state_1C8 != PLAYERSTATE_1C8_2)) { + if ((gCurrentLevel == LEVEL_AQUAS) && (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_2)) { D_801784D4 = D_801784C8 = D_801784C8 = D_801784FC = D_801784C8 = 110.0f; if (gFrameCount & 0x20) { D_801784D4 = D_801784C8 = D_801784C8 = D_801784FC = D_801784C8 = 90.0f; @@ -6046,11 +6048,11 @@ void func_800B79B0(void) { } break; case LEVEL_VENOM_2: - if ((gPlayer->state_1C8 != PLAYERSTATE_1C8_7) && (D_8017827C == 2)) { - gPlayer->state_1C8 = PLAYERSTATE_1C8_7; - gPlayer->unk_1D0 = 0; - gPlayer->unk_234 = 1; - gPlayer->pos.z = 15000.0f; + if ((gPlayer[0].state_1C8 != PLAYERSTATE_1C8_7) && (D_8017827C == 2)) { + gPlayer[0].state_1C8 = PLAYERSTATE_1C8_7; + gPlayer[0].unk_1D0 = 0; + gPlayer[0].unk_234 = 1; + gPlayer[0].pos.z = 15000.0f; func_800B7184(gPlayer, 1); D_80178340 = 255; D_8017835C = 255; @@ -6062,8 +6064,8 @@ void func_800B79B0(void) { case LEVEL_VENOM_ANDROSS: func_E9F1D0_8018BDD8(); D_80177940 = -25000.0f; - gPlayer->unk_0A0 = 612.0f; - gPlayer->unk_0A4 = -544.0f; + gPlayer[0].unk_0A0 = 612.0f; + gPlayer[0].unk_0A4 = -544.0f; if (D_Timer_80177B44 != 0) { D_Timer_80177B44--; if (D_Timer_80177B44 == 0) { @@ -6077,7 +6079,7 @@ void func_800B79B0(void) { case LEVEL_SECTOR_X: if (D_8017827C == 1) { gBlurAlpha = 128; - if (gPlayer->state_1C8 == PLAYERSTATE_1C8_7) { + if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_7) { Math_SmoothStepToF(&D_8015F960, 0.0f, 1.0f, 1.0f, 0.0f); } else { Math_SmoothStepToF(&D_8015F960, 128.0f, 1.0f, 1.0f, 0.0f); @@ -6085,8 +6087,8 @@ void func_800B79B0(void) { } if ((gCurrentLevel == LEVEL_SECTOR_X) && (D_8017827C == 0) && (D_80177E80 == 4)) { D_80177E80++; - gPlayer->state_1C8 = PLAYERSTATE_1C8_8; - gPlayer->unk_1D0 = 0; + gPlayer[0].state_1C8 = PLAYERSTATE_1C8_8; + gPlayer[0].unk_1D0 = 0; gOverlayStage = 1; Audio_PlaySfx(0x1900602A, &D_800C5D28, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); D_80177930 = 2; @@ -6108,7 +6110,7 @@ void func_800B79B0(void) { for (D_80177CE8; D_80177CE8 >= 10.0f; D_80177CE8 -= 10.0f) { Texture_Scroll(D_6005710, 32, 32, 1); } - if (gPlayer->state_1C8 == PLAYERSTATE_1C8_6) { + if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_6) { Texture_Scroll(D_6005710, 32, 32, 1); } Texture_Mottle(D_601E1E8, D_6020F60, 3); @@ -6150,13 +6152,13 @@ void func_800B79B0(void) { } var_a0 = MIN(gPlayer[0].shields, 0xFF); func_8001D1C8(var_a0, sp3A); - if (!(gFrameCount & 7) && (gPlayer->state_1C8 != PLAYERSTATE_1C8_7)) { + if (!(gFrameCount & 7) && (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_7)) { func_E16C50_8019E8B8((Rand_ZeroOne() - 0.5f) * 6000.0f, -80.0f, - (Rand_ZeroOne() * 2000.0f) + -6000.0f + gPlayer->unk_138, + gPlayer[0].unk_138 + ((Rand_ZeroOne() * 2000.0f) + -6000.0f), (Rand_ZeroOne() * 10.0f) + 20.0f); } func_8008C104(D_60229A4, D_6010198); - if (gPlayer->shields == 0) { + if (gPlayer[0].shields == 0) { D_80177B4C = 1; } break; @@ -6165,11 +6167,12 @@ void func_800B79B0(void) { for (D_80177CE8; D_80177CE8 >= 20.0f; D_80177CE8 -= 20.0f) { Texture_Scroll(D_602C2CC, 32, 32, 1); } - if (gPlayer->state_1C8 == PLAYERSTATE_1C8_6) { + if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_6) { Texture_Scroll(D_602C2CC, 32, 32, 1); } func_8008C104(D_602C2CC, D_600D990); - if (func_800A73E4(&sp3C, &sp40, gPlayer->camEye.x, gPlayer->camEye.y, gPlayer->camEye.z - D_80177D20)) { + if (func_800A73E4(&sp3C, &sp40, gPlayer[0].camEye.x, gPlayer[0].camEye.y, + gPlayer[0].camEye.z - D_80177D20)) { gLight1R = 0; gLight1G = 7; gLight1B = 10; @@ -6291,11 +6294,11 @@ void func_800B86CC(void) { } else if (gCurrentLevel == LEVEL_TRAINING) { func_DF4260_80198C50(); } - func_800B86A4(&gPlayer->pos.z); - func_800B86A4(&gPlayer->unk_138); - gPlayer->camEye.z += 15000.0f; - gPlayer->camAt.z += 15000.0f; - gPlayer->unk_144 = gPlayer->unk_140 = D_80177D08 = D_80177D20 = 0.0f; + func_800B86A4(&gPlayer[0].pos.z); + func_800B86A4(&gPlayer[0].unk_138); + gPlayer[0].camEye.z += 15000.0f; + gPlayer[0].camAt.z += 15000.0f; + gPlayer[0].unk_144 = gPlayer[0].unk_140 = D_80177D08 = D_80177D20 = 0.0f; } if (D_80177854 != 100) { (void) "play_time = %d\n"; @@ -6323,7 +6326,7 @@ void func_800B86CC(void) { gDrawMode = DRAWMODE_4; func_800B832C(); if ((gControllerPress[gMainController].button & START_BUTTON) && - (gPlayer->state_1C8 == PLAYERSTATE_1C8_2) && + (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_2) && gSaveFile.save.data.planet[D_800D2F6C[gCurrentLevel]].normalClear) { func_8001AE58(); func_8001D400(0); diff --git a/src/main/sf_43E80.c b/src/main/sf_43E80.c index 7c41d022..5e1c5cf9 100644 --- a/src/main/sf_43E80.c +++ b/src/main/sf_43E80.c @@ -42,11 +42,6 @@ extern f32 D_E6A810_801BE29C; extern f32 D_E6A810_801BE2A4; extern s16 D_E6A810_801BE2FA; -void func_80189120(f32 x, f32 y, f32 z, f32, f32); -bool func_801A3C20(f32); -s32 func_801A3300(Player*, f32, f32); -s32 func_801A3790(Player*, f32, f32); - void func_80043280(u16* text0, u16* text1, f32 zRot) { s32 py; s32 px; @@ -148,8 +143,8 @@ void func_800438E0(Object_8C* obj8C, f32 xPos, f32 yPos, f32 zPos, f32 scale) { obj8C->obj.pos.y = yPos; obj8C->obj.pos.z = zPos; obj8C->vel.x = Rand_ZeroOne() - (2.0f * Rand_ZeroOne()); - obj8C->vel.y = ((Rand_ZeroOne() * 3.0f) - (gPlayer->vel.z / 5.0f)) + 3.0f; - obj8C->vel.z = ((Rand_ZeroOne() * 3.0f) - (gPlayer->vel.z / 5.0f)) + 2.0f; + obj8C->vel.y = ((Rand_ZeroOne() * 3.0f) - (gPlayer[0].vel.z / 5.0f)) + 3.0f; + obj8C->vel.z = ((Rand_ZeroOne() * 3.0f) - (gPlayer[0].vel.z / 5.0f)) + 2.0f; obj8C->scale2 = ((Rand_ZeroOne() * 0.8f) + 0.3f) * scale; obj8C->timer_50 = (s32) (Rand_ZeroOne() * 5.0f) + 8; obj8C->obj.rot.x = Rand_ZeroOne() * 360.0f; @@ -203,8 +198,8 @@ void func_80043B18(Player* player) { func_80043AA0(player->pos.x + sp3C.x, player->pos.y + sp3C.y, player->unk_138 + sp3C.z, 0.2f); } else { if (!(gFrameCount & 1)) { - func_80189120(player->pos.x + sp3C.x, player->pos.y + sp3C.y, player->unk_138 + sp3C.z, - player->unk_0E8 + sp38, 1.3f); + func_E6A810_80189120(player->pos.x + sp3C.x, player->pos.y + sp3C.y, player->unk_138 + sp3C.z, + player->unk_0E8 + sp38, 1.3f); } if (!(gFrameCount & 3)) { func_8007A900(player->pos.x + sp3C.x, player->pos.y + sp3C.y + 20.0f, player->unk_138 + sp3C.z, 2.0f, @@ -222,8 +217,8 @@ void func_80043B18(Player* player) { } } else { if (!(gFrameCount & 1)) { - func_80189120(player->pos.x + sp3C.x, player->pos.y + sp3C.y, player->unk_138 + sp3C.z, - player->unk_0E8 + sp38, 1.0f); + func_E6A810_80189120(player->pos.x + sp3C.x, player->pos.y + sp3C.y, player->unk_138 + sp3C.z, + player->unk_0E8 + sp38, 1.0f); } if (!(gFrameCount & 3) && (player->unk_0D0 >= 5.0f)) { func_8007A900(player->pos.x + sp3C.x, player->pos.y + sp3C.y + 20.0f, player->unk_138 + sp3C.z, @@ -240,8 +235,8 @@ void func_80043B18(Player* player) { } } else { if (!(gFrameCount & 1)) { - func_80189120(player->pos.x + sp3C.x, player->pos.y + sp3C.y, player->unk_138 + sp3C.z, - player->unk_0E8 + sp38, 1.0f); + func_E6A810_80189120(player->pos.x + sp3C.x, player->pos.y + sp3C.y, player->unk_138 + sp3C.z, + player->unk_0E8 + sp38, 1.0f); } if (!(gFrameCount & 3) && (player->unk_0D0 >= 5.0f)) { func_8007A900(player->pos.x + sp3C.x, player->pos.y + sp3C.y + 20.0f, player->unk_138 + sp3C.z, @@ -995,7 +990,7 @@ void func_80046704(Player* player) { (obj80->obj.pos.z <= (player->unk_138 + 220.0f)) && (player->pos.y >= 200.0f)) { player->unk_068 = obj80->obj.pos.y + 204.0f; } - } else if ((obj80->obj.id == OBJ_80_105) && func_801A3C20(player->unk_138)) { + } else if ((obj80->obj.id == OBJ_80_105) && func_E6A810_801A3C20(player->unk_138)) { if (((player->pos.x - 200.0f) < D_E6A810_801BE250.unk_54) && (D_E6A810_801BE250.unk_54 < (player->pos.x + 200.0f))) { player->unk_068 = D_E6A810_801BE250.unk_58 - 1.0f; @@ -1188,7 +1183,7 @@ void func_80047504(Player* player) { void func_80047754(Player* player) { u8 sp2F = false; - if ((D_E6A810_801BE2FA == 0) && (func_801A3300(player, player->unk_138, player->unk_0E8) == 0)) { + if ((D_E6A810_801BE2FA == 0) && (func_E6A810_801A3300(player, player->unk_138, player->unk_0E8) == 0)) { if (((player->pos.x - 110.0f) < D_E6A810_801BE274) && (D_E6A810_801BE274 < (player->pos.x + 110.0f)) && ((player->pos.y - 60.0f) < (D_E6A810_801BE258 + 30.0f)) && ((D_E6A810_801BE258 + 30.0f) < (player->pos.y + 60.f))) { @@ -1202,7 +1197,7 @@ void func_80047754(Player* player) { func_80047E7C(player, D_E6A810_801BE274, D_E6A810_801BE258 + 30.0f); } } - if (func_801A3C20(player->unk_138)) { + if (func_E6A810_801A3C20(player->unk_138)) { player->unk_0E4 = D_E6A810_801BE250.unk_5C; if (((player->pos.x - 200.0f) < D_E6A810_801BE250.unk_54) && (D_E6A810_801BE250.unk_54 < (player->pos.x + 200.0f))) { @@ -1243,7 +1238,7 @@ void func_80047754(Player* player) { label_29: if (((D_E6A810_801BE2FA == 1) || (player->unk_138 < -116467.875f)) && - (func_801A3790(player, player->unk_138, player->unk_0E8) == 0)) { + (func_E6A810_801A3790(player, player->unk_138, player->unk_0E8) == 0)) { if (((player->pos.x - 110.0f) < D_E6A810_801BE29C) && (D_E6A810_801BE29C < (player->pos.x + 110.0f)) && ((player->pos.y - 60.0f) < (D_E6A810_801BE280 + 30.0f)) && ((D_E6A810_801BE280 + 30.0f) < (player->pos.y + 60.0f))) { @@ -1317,7 +1312,7 @@ void func_80047FBC(Player* player) { if (!(D_800C9F08 & 1)) { Math_SmoothStepToF(&player->unk_0EC, -((player->vel.z / 5.0f) * 4.0f), 0.4f, 8.0f, 0.01f); if (player->unk_0EC >= 3.0f) { - if (gPlayer->state_1C8 != PLAYERSTATE_1C8_7) { + if (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_7) { Audio_PlaySfx(0x19000065, &player->unk_460, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } D_800C9F08 |= 1; @@ -1350,7 +1345,7 @@ void func_800481F4(Player* player) { s32 i; s32 temp_v0; Object_2F4* obj2F4; - Object_408* obj408; + Boss* boss; Object_4C* obj4C; Object_80* obj80; s32 sp98; @@ -1399,13 +1394,13 @@ void func_800481F4(Player* player) { } } - for (i = 0, obj408 = gObjects408; i < ARRAY_COUNT(gObjects408); i++, obj408++) { - if (obj408->obj.status == 2) { - temp_v0 = func_800A7974(player, obj408->info.hitbox, &sp98, obj408->obj.pos.x, obj408->obj.pos.y, - obj408->obj.pos.z, obj408->obj.rot.x, obj408->obj.rot.y, obj408->obj.rot.z, - 0.0f, 0.0f, 0.0f); + for (i = 0, boss = gBosses; i < ARRAY_COUNT(gBosses); i++, boss++) { + if (boss->obj.status == 2) { + temp_v0 = + func_800A7974(player, boss->info.hitbox, &sp98, boss->obj.pos.x, boss->obj.pos.y, boss->obj.pos.z, + boss->obj.rot.x, boss->obj.rot.y, boss->obj.rot.z, 0.0f, 0.0f, 0.0f); if (temp_v0 != 0) { - Player_ApplyDamage(player, temp_v0, obj408->info.damage); + Player_ApplyDamage(player, temp_v0, boss->info.damage); } } } diff --git a/src/main/sf_77E40.c b/src/main/sf_77E40.c index 1942b6b7..40cd3a90 100644 --- a/src/main/sf_77E40.c +++ b/src/main/sf_77E40.c @@ -493,8 +493,8 @@ void func_8007905C(Object_8C* obj8C, f32 posX, f32 posY, f32 posZ, f32 arg4, u8 obj8C->obj.pos.z = posZ; obj8C->unk_4C = arg5; if (arg4 == 1.6f) { - obj8C->vel.x = (posX - gObjects408[1].obj.pos.x) * 0.1f; - obj8C->vel.z = (posZ - gObjects408[1].obj.pos.z) * 0.1f; + obj8C->vel.x = (posX - gBosses[1].obj.pos.x) * 0.1f; + obj8C->vel.z = (posZ - gBosses[1].obj.pos.z) * 0.1f; } else if (arg4 == 1.3f) { obj8C->vel.x = ((Rand_ZeroOne() * 0.05f) + 0.03f) * posX; obj8C->vel.z = ((Rand_ZeroOne() * 0.05f) + 0.03f) * posZ; @@ -1299,7 +1299,7 @@ void func_8007BB14(Object_8C* obj8C, f32 posX, f32 posY, f32 posZ, f32 arg4) { obj8C->scale2 = arg4 * 0.25f; obj8C->obj.rot.z = Rand_ZeroOne() * 360.0f; if (arg4 == 6.0f) { - obj8C->vel.z = gPlayer->vel.z * 0.6f; + obj8C->vel.z = gPlayer[0].vel.z * 0.6f; } Object_SetInfo(&obj8C->info, obj8C->obj.id); } @@ -1316,11 +1316,11 @@ void func_8007BC7C(f32 posX, f32 posY, f32 posZ, f32 arg3) { } void func_8007BCE8(Object_8C* obj8C) { - if (gPlayer->state_1C8 == PLAYERSTATE_1C8_7) { - obj8C->obj.rot.x = (gPlayer->unk_05C * 180.0f) / M_PI; - obj8C->obj.rot.y = (-gPlayer->unk_058 * 180.0f) / M_PI; + if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_7) { + obj8C->obj.rot.x = (gPlayer[0].unk_05C * 180.0f) / M_PI; + obj8C->obj.rot.y = (-gPlayer[0].unk_058 * 180.0f) / M_PI; } - if (gPlayer->state_1C8 == PLAYERSTATE_1C8_6) { + if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_6) { obj8C->unk_46 = 2; obj8C->vel.y -= 0.13f; } @@ -1349,7 +1349,7 @@ void func_8007BE54(Object_8C* obj8C) { if (obj8C->unk_4A < 0) { Object_Kill(&obj8C->obj, &obj8C->sfxPos); } - obj8C->vel.z = gPlayer->vel.z + 7.0f; + obj8C->vel.z = gPlayer[0].vel.z + 7.0f; obj8C->obj.rot.z += obj8C->unk_48; obj8C->vel.y += 0.1f; } @@ -1529,7 +1529,7 @@ void func_8007C6FC(Object_8C* obj8C, f32 posX, f32 posY, f32 posZ, f32 arg4) { if (Rand_ZeroOne() < 0.5f) { obj8C->unk_48 = -obj8C->unk_48; } - if ((gCurrentLevel == LEVEL_FORTUNA) && (gPlayer->state_1C8 != PLAYERSTATE_1C8_6)) { + if ((gCurrentLevel == LEVEL_FORTUNA) && (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_6)) { obj8C->unk_4A = 180; } else { obj8C->unk_4A = 255; @@ -1564,7 +1564,7 @@ void func_8007C8C4(Object_8C* obj8C) { s32 var_v0; var_v0 = 0; - if ((gCurrentLevel == LEVEL_FORTUNA) && (gPlayer->state_1C8 != PLAYERSTATE_1C8_6)) { + if ((gCurrentLevel == LEVEL_FORTUNA) && (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_6)) { var_v0 = 3; } if (!(obj8C->timer_50 & var_v0) && (gLevelType == LEVELTYPE_PLANET)) { @@ -1783,7 +1783,7 @@ void func_8007D2C8(f32 posX, f32 posY, f32 posZ, f32 scale2) { void func_8007D2F4(Object_8C* obj8C) { if (gLevelType == LEVELTYPE_PLANET) { - if ((gCurrentLevel == LEVEL_KATINA) && (gPlayer->state_1C8 == PLAYERSTATE_1C8_7)) { + if ((gCurrentLevel == LEVEL_KATINA) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_7)) { obj8C->vel.y += 0.1f; if (obj8C->timer_50 == 0) { obj8C->unk_4C++; @@ -1796,7 +1796,8 @@ void func_8007D2F4(Object_8C* obj8C) { } } } else { - if ((gCurrentLevel == LEVEL_MACBETH) && (gPlayer->state_1C8 == PLAYERSTATE_1C8_7) && (obj8C->vel.x != 0)) { + if ((gCurrentLevel == LEVEL_MACBETH) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_7) && + (obj8C->vel.x != 0)) { Math_SmoothStepToF(&obj8C->vel.x, -1.0f, 1.0f, 1.0f, 0.0f); Math_SmoothStepToF(&obj8C->vel.z, 4.0f, 1.0f, 1.0f, 0.0f); obj8C->vel.y += 1.7f; @@ -1996,10 +1997,10 @@ void func_8007DB70(Object_8C* obj8C) { } } obj8C->obj.rot.y = 180.0f - obj8C->obj.rot.y; - if ((fabsf(gPlayer->unk_138 - obj8C->obj.pos.z) < 40.0f) && - (fabsf(gPlayer->pos.x - obj8C->obj.pos.x) < 80.0f)) { - if ((obj8C->obj.pos.y < gPlayer->pos.y) && - ((gPlayer->pos.y - obj8C->obj.pos.y) < (obj8C->scale2 * 35.0f)) && (gPlayer->timer_498 == 0)) { + if ((fabsf(gPlayer[0].unk_138 - obj8C->obj.pos.z) < 40.0f) && + (fabsf(gPlayer[0].pos.x - obj8C->obj.pos.x) < 80.0f)) { + if ((obj8C->obj.pos.y < gPlayer[0].pos.y) && + ((gPlayer[0].pos.y - obj8C->obj.pos.y) < (obj8C->scale2 * 35.0f)) && (gPlayer[0].timer_498 == 0)) { Player_ApplyDamage(gPlayer, 0, obj8C->info.damage); } } diff --git a/src/main/sf_hud.c b/src/main/sf_hud.c index 47920fb7..b5ae391a 100644 --- a/src/main/sf_hud.c +++ b/src/main/sf_hud.c @@ -1598,43 +1598,43 @@ void func_8008F96C(void) { #pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_hud/func_80090200.s") -void func_800907C4(Object_408* obj408) { - switch (obj408->unk_04E) { +void func_800907C4(Boss* boss) { + switch (boss->unk_04E) { case 0: - if ((obj408->unk_0DC == 255.0f) && (obj408->unk_0E0 == 212.0f)) { - obj408->unk_04E = 1; + if ((boss->fwork[1] == 255.0f) && (boss->fwork[2] == 212.0f)) { + boss->unk_04E = 1; } else { - Math_SmoothStepToF(&obj408->unk_0DC, 255.0f, 0.3f, 6.0f, 6.0f); - Math_SmoothStepToF(&obj408->unk_0E0, 212.0f, 0.3f, 4.98f, 4.98f); + Math_SmoothStepToF(&boss->fwork[1], 255.0f, 0.3f, 6.0f, 6.0f); + Math_SmoothStepToF(&boss->fwork[2], 212.0f, 0.3f, 4.98f, 4.98f); } break; case 1: - if ((obj408->unk_0DC == 28.0f) && (obj408->unk_0E0 == 23.0f)) { - obj408->unk_04E = 0; + if ((boss->fwork[1] == 28.0f) && (boss->fwork[2] == 23.0f)) { + boss->unk_04E = 0; } else { - Math_SmoothStepToF(&obj408->unk_0DC, 28.0f, 0.3f, 6.0f, 6.0f); - Math_SmoothStepToF(&obj408->unk_0E0, 23.0f, 0.3f, 4.98f, 4.98f); + Math_SmoothStepToF(&boss->fwork[1], 28.0f, 0.3f, 6.0f, 6.0f); + Math_SmoothStepToF(&boss->fwork[2], 23.0f, 0.3f, 4.98f, 4.98f); } break; } - func_8008FFF0(obj408, D_8015F928); + func_8008FFF0(boss, D_8015F928); } bool func_8009092C(Object_2F4* obj2F4) { bool var_s5 = false; - Object_408* obj408; + Boss* boss; s32 i = 0; if (obj2F4->unk_0E6 != 0) { return true; } - obj408 = &gObjects408[1]; + boss = &gBosses[1]; - for (i = 1; i < 4; i++, obj408++) { - if (obj408->obj.status == 2) { + for (i = 1; i < 4; i++, boss++) { + if (boss->obj.status == 2) { var_s5 = true; if (obj2F4->unk_0E6 == 0) { obj2F4->unk_0E6 = i; @@ -1672,7 +1672,7 @@ bool func_80090A00(Object_2F4* obj2F4) { } case 2: - obj2F4->unk_124.x = gObjects408[0].obj.pos.x + 1000.0f; + obj2F4->unk_124.x = gBosses[0].obj.pos.x + 1000.0f; obj2F4->unk_124.y = 300.0f; obj2F4->unk_124.z = obj2F4->obj.pos.z - 10000.0f; obj2F4->unk_058++; @@ -1686,9 +1686,9 @@ bool func_80090A00(Object_2F4* obj2F4) { break; case 3: - obj2F4->unk_124.x = gObjects408[0].obj.pos.x - 1000.0f; + obj2F4->unk_124.x = gBosses[0].obj.pos.x - 1000.0f; obj2F4->unk_124.y = 400.0f; - obj2F4->unk_124.z = gObjects408[0].obj.pos.z; + obj2F4->unk_124.z = gBosses[0].obj.pos.z; obj2F4->unk_058++; if (obj2F4->unk_05C == obj2F4->unk_058) { obj2F4->unk_064 = 4; @@ -1726,13 +1726,13 @@ bool func_80090CCC(Object_2F4* obj2F4) { bool ret = false; if (func_8009092C(obj2F4)) { - obj2F4->unk_124.z = gObjects408[obj2F4->unk_0E6].obj.pos.z; - obj2F4->unk_124.y = gObjects408[obj2F4->unk_0E6].obj.pos.y; - obj2F4->unk_124.x = gObjects408[obj2F4->unk_0E6].obj.pos.x; + obj2F4->unk_124.z = gBosses[obj2F4->unk_0E6].obj.pos.z; + obj2F4->unk_124.y = gBosses[obj2F4->unk_0E6].obj.pos.y; + obj2F4->unk_124.x = gBosses[obj2F4->unk_0E6].obj.pos.x; } else { - obj2F4->unk_124.z = gObjects408[0].obj.pos.z; - obj2F4->unk_124.y = gObjects408[0].obj.pos.y; - obj2F4->unk_124.x = gObjects408[0].obj.pos.x; + obj2F4->unk_124.z = gBosses[0].obj.pos.z; + obj2F4->unk_124.y = gBosses[0].obj.pos.y; + obj2F4->unk_124.x = gBosses[0].obj.pos.x; } if ((fabsf(obj2F4->obj.pos.x - obj2F4->unk_124.x) < 2000.0f) && @@ -1756,7 +1756,7 @@ bool func_80090CCC(Object_2F4* obj2F4) { obj2F4->unk_13C = 30.0f; } - if (gObjects408[obj2F4->unk_0E6].obj.status == 0) { + if (gBosses[obj2F4->unk_0E6].obj.status == 0) { obj2F4->unk_0B8 = 1; obj2F4->unk_0E6 = 0; obj2F4->unk_068 = 0; @@ -1797,8 +1797,8 @@ s32 func_80090E8C(Object_2F4* obj2F4) { var_fv1_2 = 5000.0f; } - if ((var_fv1_2 < fabsf(obj2F4->obj.pos.x - gObjects408->obj.pos.x)) && - (var_fv1_2 < fabsf(obj2F4->obj.pos.z - gObjects408->obj.pos.z))) { + if ((var_fv1_2 < fabsf(obj2F4->obj.pos.x - gBosses[0].obj.pos.x)) && + (var_fv1_2 < fabsf(obj2F4->obj.pos.z - gBosses[0].obj.pos.z))) { obj2F4->unk_0B8 = 0; } @@ -1819,9 +1819,9 @@ bool func_800910C0(Object_2F4* obj2F4) { obj2F4->timer_0BC = (s32) (Rand_ZeroOne() * 20.0f) + 10; } - obj2F4->unk_124.x = obj2F4->unk_2DC.x + gObjects408->obj.pos.x; - obj2F4->unk_124.y = obj2F4->unk_2DC.y; - obj2F4->unk_124.z = obj2F4->unk_2DC.z + gObjects408->obj.pos.z; + obj2F4->unk_124.x = gBosses[0].obj.pos.x + (*obj2F4).unk_2DC.x; + obj2F4->unk_124.y = (*obj2F4).unk_2DC.y; + obj2F4->unk_124.z = gBosses[0].obj.pos.z + (*obj2F4).unk_2DC.z; if (obj2F4->unk_0E4 == 1) { var_fv1 = 1500.0f; diff --git a/src/overlays/ovl_DF4260/DF4260.c b/src/overlays/ovl_DF4260/DF4260.c index 72e0c2a2..13fc9677 100644 --- a/src/overlays/ovl_DF4260/DF4260.c +++ b/src/overlays/ovl_DF4260/DF4260.c @@ -1,7 +1,7 @@ #include "global.h" #include "DF4260.h" -void func_DF4260_80187520(s32 arg0, s32 arg1) { +void func_DF4260_80187520(s32 arg0, void* arg1) { } void func_DF4260_80187530(Object_80* obj80) { diff --git a/src/overlays/ovl_E16C50/E16C50.c b/src/overlays/ovl_E16C50/E16C50.c index 88a99cf0..ae81998a 100644 --- a/src/overlays/ovl_E16C50/E16C50.c +++ b/src/overlays/ovl_E16C50/E16C50.c @@ -1,55 +1,7 @@ -#include "common.h" +#include "global.h" -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E16C50/func_E16C50_80187520.s") +static s32 D_E16C50_801BECA0 = 0; +static s32 D_E16C50_801C2240; -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E16C50/func_E16C50_80187530.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E16C50/func_E16C50_801875E4.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E16C50/func_E16C50_8018767C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E16C50/func_E16C50_80187704.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E16C50/func_E16C50_80187754.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E16C50/func_E16C50_80187944.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E16C50/func_E16C50_8018A1B0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E16C50/func_E16C50_8018A2C4.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E16C50/func_E16C50_8018A464.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E16C50/func_E16C50_8018B9BC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E16C50/func_E16C50_8018BCD4.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E16C50/func_E16C50_8018C0D0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E16C50/func_E16C50_8018C54C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E16C50/func_E16C50_8018D3CC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E16C50/func_E16C50_8018D4E0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E16C50/func_E16C50_8018D5C8.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E16C50/func_E16C50_8018D694.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E16C50/func_E16C50_8018D804.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E16C50/func_E16C50_8018D920.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E16C50/func_E16C50_8018DA58.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E16C50/func_E16C50_8018DF74.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E16C50/func_E16C50_8018EA88.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E16C50/func_E16C50_8018EB3C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E16C50/func_E16C50_8018EC38.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E16C50/func_E16C50_8018ED78.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E16C50/D_E16C50_801C0900.s") +void func_E16C50_80187520(s32 arg0, void* arg1) { +} diff --git a/src/overlays/ovl_E16C50/E1F680.c b/src/overlays/ovl_E16C50/E1F680.c deleted file mode 100644 index 36433408..00000000 --- a/src/overlays/ovl_E16C50/E1F680.c +++ /dev/null @@ -1,177 +0,0 @@ -#include "common.h" - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_8018FF50.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80190028.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_801900FC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_8019019C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80190204.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80190430.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_801904CC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80190790.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80190A00.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80190B4C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80190D0C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80190F08.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80190F28.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80191010.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_801914C4.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_801915A4.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80191680.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80191B4C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80191BB8.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80191BC4.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80191DB0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80191E94.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80191FFC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80192094.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_801926F4.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80192834.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80192C18.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80192C84.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80192E64.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80193240.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_801932AC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80193628.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_801937D8.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80193908.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80193970.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80193A98.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80193B08.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80193C5C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80193CC8.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80193D08.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80194394.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_801949DC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80194A84.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_801986FC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_801989FC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80198BE8.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80198ECC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80198F3C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_8019907C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_8019914C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_801991D0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80199394.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80199470.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_8019962C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_8019969C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_8019983C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_801998E0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_801999CC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80199A28.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80199E24.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80199E9C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_80199F10.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_8019A1FC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_8019A4E0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_8019A5D4.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_8019ACCC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_8019B1F0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_8019B548.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_8019B7DC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_8019B810.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_8019B854.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_8019BC78.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_8019BDE0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_8019BE48.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_8019C1CC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_8019C200.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_8019C454.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_8019C83C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_8019CBEC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_8019CE58.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_8019D060.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_8019D15C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_8019D340.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_8019D3C4.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_8019D428.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_8019D76C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/func_E16C50_8019E5F0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E1F680/D_E16C50_801C0DB0.s") diff --git a/src/overlays/ovl_E16C50/E2DF20.c b/src/overlays/ovl_E16C50/E2DF20.c deleted file mode 100644 index b2fce8d3..00000000 --- a/src/overlays/ovl_E16C50/E2DF20.c +++ /dev/null @@ -1,105 +0,0 @@ -#include "common.h" - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_8019E7F0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_8019E8B8.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_8019E920.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_8019E9F4.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_8019EA7C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_8019EF30.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_8019F038.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_8019F0B0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_8019F194.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_8019F20C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_8019F7AC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_8019F99C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_8019FAA4.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_8019FDE0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_8019FEE8.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_8019FF44.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_8019FFC0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_801A003C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_801A0120.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_801A0AF0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_801A0CEC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_801A0D90.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_801A0DF8.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_801A0FD4.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_801A10F4.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_801A1CD8.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_801A1E14.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_801A1EB0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_801A1F80.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_801A239C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_801A23F4.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_801A2C3C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_801A2C98.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_801A30CC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_801A3128.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_801A3468.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_801A3510.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_801A3C4C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_801A4214.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_801A48B8.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_801A4A34.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_801A4EC0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_801A4EF8.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_801A56B8.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_801A5B3C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_801A68A8.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_801A6BDC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_801A71B8.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_801A7750.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_801A7930.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_801A8BE8.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E2DF20/func_E16C50_801A8DB8.s") diff --git a/src/overlays/ovl_E16C50/E38560.c b/src/overlays/ovl_E16C50/E38560.c deleted file mode 100644 index fae79397..00000000 --- a/src/overlays/ovl_E16C50/E38560.c +++ /dev/null @@ -1,213 +0,0 @@ -#include "common.h" - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801A8E30.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801A92EC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801A9374.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801A9448.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801A94EC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801A958C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801A95C8.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801A96DC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801A9728.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801A9824.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801A99D4.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801A9C98.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801A9DE4.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801A9ED0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801AA20C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801AA4BC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801AA8E8.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801AACF8.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801AB9B0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801ABA40.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801AC09C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801AC18C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801AC274.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801AC7C8.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801AC8A8.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801AC918.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801ACBB4.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801ACE50.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801AD328.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801AD598.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801AD688.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801AD6C0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801ADF7C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801AE168.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801AE3AC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801AE3D8.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801AEB44.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801AF9FC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801AFA5C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801B099C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801B0B60.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801B0EC0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801B0F88.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801B0FCC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801B1008.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801B10F8.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801B134C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801B42AC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801B49DC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801B4D84.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801B4DDC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801B4E94.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801B504C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801B50E8.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801B5C18.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801B5F68.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801B619C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801B6344.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801B638C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801B6E54.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801B6FF8.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801B76EC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801B7754.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801B7A24.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801B7AF0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801B7C78.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801B8C50.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801B8D7C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801B90DC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801B91A4.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801B9DB0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801BA108.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801BA26C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801BA4E4.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801BA57C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801BA6A4.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801BAD7C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801BADF8.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801BB0C4.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801BB204.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801BB26C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801BB79C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801BC530.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801BC91C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801BC930.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801BC9A0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801BD17C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801BD264.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801BD3B0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801BD54C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801BDDFC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801BDE6C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801BDF14.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801BE034.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801BE0F0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801BE1FC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801BE274.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801BE3F8.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801BEB1C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801BEC50.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801BEC5C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801BEC68.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801BEC74.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801BEC80.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/func_E16C50_801BEC8C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/E38560/D_E16C50_801C1A30.s") diff --git a/src/overlays/ovl_E16C50/fox_a6.c b/src/overlays/ovl_E16C50/fox_a6.c new file mode 100644 index 00000000..07e41180 --- /dev/null +++ b/src/overlays/ovl_E16C50/fox_a6.c @@ -0,0 +1,2437 @@ +#include "global.h" + +void func_E16C50_8018A1B0(Boss* bossA6, s32 arg1); +void func_E16C50_8018A2C4(Boss* bossA6); +void func_E16C50_8018A464(Boss* bossA6, s32 arg1); +void func_E16C50_8018B9BC(Boss* bossA6); +void func_E16C50_8018BCD4(Vec3f* arg0, f32 arg1, f32 arg2, Vec3f* arg3, s32 arg4, f32 arg5, s32 arg6, f32 arg7); +void func_E16C50_8018C0D0(f32* arg0, f32 arg1, Vec3f* arg2, f32 arg3, s32 arg4); +void func_E16C50_8018C54C(Boss* bossA6); + +typedef struct { + s32 unk_00[40]; +} UnkStruct_1C2250; + +typedef struct { + f32 r[3]; + f32 g[3]; + f32 b[3]; + f32 unk_24; + f32 unk_28[3]; + f32 unk_34; +} UnkStruct_1C22F0; + +typedef struct { + f32 r, g, b, a; +} Color_RGBAF32; + +typedef struct { + f32 r, g, b; +} Color_RGBF32; + +UnkStruct_1C2250 D_E16C50_801C2250; +UnkStruct_1C22F0 D_E16C50_801C22F0; + +f32 D_E16C50_801BECB0[4][3] = { + { 255.0f, 0.0f, 0.0f }, + { 255.0f, 63.0f, 63.0f }, + { 255.0f, 127.0f, 127.0f }, + { 255.0f, 255.0f, 255.0f }, +}; +Vec3f D_E16C50_801BECE0 = { 497.0f, 287.0f, 169.0f }; +Vec3f D_E16C50_801BECEC = { -497.0f, 287.0f, 169.0f }; +Vec3f D_E16C50_801BECF8 = { -6.0f, -528.0f, 169.0f }; +Vec3f D_E16C50_801BED04 = { 0.0f, 0.0f, 169.0f }; +Vec3f D_E16C50_801BED10 = { 238.0f, 235.0f, 169.0f }; +Vec3f D_E16C50_801BED1C = { 238.0f, -235.0f, 169.0f }; +Vec3f D_E16C50_801BED28 = { -238.0f, 235.0f, 169.0f }; +Vec3f D_E16C50_801BED34 = { -238.0f, -235.0f, 169.0f }; +Vec3f D_E16C50_801BED40[4] = { + { 0.0f, -300.0f, 300.0f }, + { 500.0f, -300.0f, 300.0f }, + { 270.0f, 45.0f, 135.0f }, + { 0.0f, 135.0f, 235.0f }, +}; +Vec3f D_E16C50_801BED70[12] = { + { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, +}; +Vec3f D_E16C50_801BEE00[12] = { + { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, +}; +f32 D_E16C50_801BEE90[12] = { + 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, +}; +f32 D_E16C50_801BEEC0[12] = { + 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, +}; +Vec3f D_E16C50_801BEEF0[12] = { + { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, +}; +Vec3f D_E16C50_801BEF80[12] = { + { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, +}; +f32 D_E16C50_801BF010[12] = { + 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, +}; +f32 D_E16C50_801BF040[12] = { + 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, +}; +Vec3f D_E16C50_801BF070[12] = { + { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, +}; +Vec3f D_E16C50_801BF100[12] = { + { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, + { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, +}; +f32 D_E16C50_801BF190[12] = { + 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, +}; +f32 D_E16C50_801BF1C0[12] = { + 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, +}; +f32 D_E16C50_801BF1F0[12] = { + 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, +}; +f32 D_E16C50_801BF220[12] = { + 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, +}; +f32 D_E16C50_801BF250[12] = { + 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, +}; +f32 D_E16C50_801BF280[12] = { + 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, +}; +f32 D_E16C50_801BF2B0[12] = { + 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, +}; +f32 D_E16C50_801BF2E0[12] = { + 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, +}; +s32 D_E16C50_801BF310[3] = { 255, 255, 32 }; +s32 D_E16C50_801BF31C[3] = { 32, 255, 32 }; +s32 D_E16C50_801BF328[3] = { 32, 34, 255 }; +f32 D_E16C50_801BF334[12] = { + 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, +}; +f32 D_E16C50_801BF364[12] = { + 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, +}; +f32 D_E16C50_801BF394[12] = { + 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, +}; +f32 D_E16C50_801BF3C4[12] = { + 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, +}; +f32 D_E16C50_801BF3F4[12] = { + 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, +}; +f32 D_E16C50_801BF424[12] = { + 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, +}; +Color_RGBAF32 D_E16C50_801BF454[4] = { + { 255.0f, 0.0f, 0.0f, 0.0f }, + { 255.0f, 255.0f, 0.0f, 0.0f }, + { 0.0f, 255.0f, 255.0f, 0.0f }, + { 144.0f, 255.0f, 144.0f, 0.0f }, +}; +f32 D_E16C50_801BF494[12] = { + -90.0f, 30.0f, 26.0f, 22.0f, 18.0f, 11.0f, 8.0f, 5.0f, 3.0f, 2.0f, 1.0f, 0.0f, +}; + +void func_E16C50_80187530(Object_2F4* obj2F4, f32 xPos, f32 yPos, f32 zPos, f32 unk124y, f32 xRot, f32 yRot, + s32 timer0BC, s32 unk0B4) { + + (void) "おん\n"; + (void) "おふ\n"; + Object_2F4_Initialize(obj2F4); + obj2F4->obj.status = 1; + obj2F4->obj.id = OBJ_2F4_191; + obj2F4->obj.pos.x = xPos; + obj2F4->obj.pos.y = yPos; + obj2F4->obj.pos.z = zPos; + obj2F4->obj.rot.x = xRot; + obj2F4->obj.rot.y = yRot; + obj2F4->timer_0BC = timer0BC; + obj2F4->timer_0BE = 20; + obj2F4->unk_0B4 = unk0B4; + obj2F4->unk_124.y = unk124y; + Object_SetInfo(&obj2F4->info, obj2F4->obj.id); + func_8007A6F0(&obj2F4->obj.pos, 0x2903201B); +} + +void func_E16C50_801875E4(f32 xPos, f32 yPos, f32 zPos, f32 unk124y, f32 xRot, f32 yRot, s32 timer0BC, s32 unk0B4) { + s32 i; + Object_2F4* obj2F4; + + for (i = 0, obj2F4 = gObjects2F4; i < ARRAY_COUNT(gObjects2F4); i++, obj2F4++) { + if (obj2F4->obj.status == 0) { + func_E16C50_80187530(obj2F4, xPos, yPos, zPos, unk124y, xRot, yRot, timer0BC, unk0B4); + D_E16C50_801C2250.unk_00[11] = i + 1; + break; + } + } +} + +void func_E16C50_8018767C(Object_8C* obj8C) { + Object_8C_Initialize(obj8C); + obj8C->obj.status = 1; + obj8C->obj.id = OBJ_8C_395; + obj8C->obj.pos.x = gBosses[0].obj.pos.x; + obj8C->obj.pos.y = gBosses[0].obj.pos.y; + obj8C->obj.pos.z = gBosses[0].obj.pos.z + 250.0f; + obj8C->unk_4E = 8; + obj8C->scale2 = 1.0f; + Object_SetInfo(&obj8C->info, obj8C->obj.id); +} + +void func_E16C50_80187704(void) { + s32 i; + + for (i = 0; i < ARRAY_COUNT(gObjects8C); i++) { + if (gObjects8C[i].obj.status == 0) { + func_E16C50_8018767C(&gObjects8C[i]); + break; + } + } +} + +void func_E16C50_80187754(Boss* bossA6) { + Hitbox* hitbox; + s32 i; + s32* ptr; + + D_80178284 = 1; + D_80161A44 = 25000.0f; + D_801613A0 = 0; + bossA6->unk_060 = 780; + bossA6->fwork[2] = bossA6->fwork[34] = 2.0f; + bossA6->fwork[35] = 1.2f; + bossA6->swork[25] = 3; + bossA6->swork[15 + 0] = bossA6->swork[15 + 1] = bossA6->swork[15 + 2] = 40; + bossA6->swork[18 + 0] = bossA6->swork[18 + 1] = bossA6->swork[18 + 2] = 3; + for (i = 0; i < 40; i++) { + ((s32*) D_E16C50_801C2250.unk_00)[i] = 0; + } + D_E16C50_801C22F0.unk_24 = D_E16C50_801C22F0.unk_28[0] = D_E16C50_801C22F0.unk_28[2] = D_E16C50_801C22F0.unk_28[1] = + 255.0f; + D_E16C50_801C22F0.unk_34 = 0.0f; + bossA6->swork[27 + 0] = bossA6->swork[27 + 1] = bossA6->swork[27 + 2] = 0; + bossA6->swork[22] = 32; + bossA6->swork[23] = 32; + bossA6->swork[24] = 255; + bossA6->fwork[29] = 255.0f; + + bossA6->fwork[3] = -1700.0f; + bossA6->fwork[5] = 30.0f; + bossA6->fwork[32] = 1.0f; + bossA6->timer_050 = 500; + bossA6->info.hitbox[8] = bossA6->info.hitbox[14] = bossA6->info.hitbox[20] = 195.0f; + bossA6->info.hitbox[10] = bossA6->info.hitbox[16] = bossA6->info.hitbox[22] = 147.0f; + bossA6->info.hitbox[12] = bossA6->info.hitbox[18] = bossA6->info.hitbox[24] = 153.0f; + func_800182F4(0x102800FF); + func_800182F4(0x112800FF); + Audio_PlaySfx(0x11002050, &bossA6->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); +} + +#ifdef NON_MATCHING +void func_E16C50_80187944(Boss* bossA6) { + s32 i; + f32 var_fv1; + s32 var_s0; + s32 sp128; + Color_RGBAF32* sp68; + f32 sp120; + f32 sp11C; + f32 sp118; + f32 sp114; + f32 sp110; + f32 sp10C; + Object_8C* temp_s0_3; + f32 sp104; + Vec3f spC8[5]; + Vec3f spA4[3]; + Vec3f sp98; + Vec3f sp8C; + s32 temp_1; + f32 temp2; + + D_801613A0++; + if ((bossA6->unk_04E < 6) || ((bossA6->unk_04E >= 8) && (bossA6->unk_04E < 12))) { + bossA6->obj.rot.y = Math_Atan2F(gPlayer[0].camEye.x - bossA6->obj.pos.x, + gPlayer[0].camEye.z - (bossA6->obj.pos.z + D_80177D20)) * + 180.0f / M_PI; + bossA6->obj.rot.x = -Math_Atan2F(gPlayer[0].camEye.y - bossA6->obj.pos.y, + sqrtf(SQ(gPlayer[0].camEye.z - (bossA6->obj.pos.z + D_80177D20)) + + SQ(gPlayer[0].camEye.x - bossA6->obj.pos.x))) * + 180.0f / M_PI; + } + Matrix_RotateY(gCalcMatrix, bossA6->obj.rot.y * M_DTOR, 0); + Matrix_RotateX(gCalcMatrix, bossA6->obj.rot.x * M_DTOR, 1); + Matrix_RotateZ(gCalcMatrix, bossA6->obj.rot.z * M_DTOR, 1); + if ((bossA6->unk_062 != 0) && (bossA6->unk_060 > 0)) { + bossA6->unk_062 = 0; + if (bossA6->fwork[0] > 5.0f) { + if ((bossA6->unk_066 == 0) && (bossA6->swork[25] == 0) && (bossA6->fwork[29] < 30.0f)) { + bossA6->unk_060 -= bossA6->unk_064; + bossA6->timer_05C = 15; + if (bossA6->unk_060 < 390) { + Audio_PlaySfx(0x2943500F, &bossA6->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } else { + Audio_PlaySfx(0x29034003, &bossA6->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } + if (bossA6->unk_060 <= 0) { + bossA6->unk_060 = 0; + func_80042EC0((Boss*) bossA6); + func_800BA808(gMsg_ID_15252, RCID_SLIPPY); + D_8017796C = -1; + D_8015F984 = (D_80177D20 * 0.00004f) + 0.5f; + Audio_PlaySfx(0x2940D09A, &bossA6->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + D_80161734 = 0; + func_800182F4(0x102800FF); + func_800182F4(0x112800FF); + bossA6->fwork[5] = 5.0f; + bossA6->fwork[3] = -20000.0f; + bossA6->fwork[1] = 170.0f; + bossA6->vel.z = -20.0f; + Matrix_MultVec3f(gCalcMatrix, &D_E16C50_801BECE0, &spA4[0]); + Matrix_MultVec3f(gCalcMatrix, &D_E16C50_801BECEC, &spA4[1]); + Matrix_MultVec3f(gCalcMatrix, &D_E16C50_801BECF8, &spA4[2]); + for (i = 0; i < 3; i++) { + func_8007D0E0(spA4[i].x + bossA6->obj.pos.x, spA4[i].y + bossA6->obj.pos.y, + spA4[i].z + bossA6->obj.pos.z, 10.0f); + } + bossA6->timer_052 = 170; + + D_E16C50_801C2250.unk_00[2] = D_E16C50_801C2250.unk_00[3] = D_E16C50_801C2250.unk_00[4] = + bossA6->swork[33 + 0] = bossA6->swork[33 + 1] = bossA6->swork[33 + 2] = 0; + D_Timer_80161A60 = 4; + bossA6->unk_04E = 11; + Audio_PlaySfx(0x2940C00A, &bossA6->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + Audio_PlaySfx(0x3143402E, &bossA6->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } + } + if (((bossA6->unk_066 == 4) || (bossA6->unk_066 == 5) || (bossA6->unk_066 == 6)) && + (bossA6->swork[25] != 0)) { + func_E16C50_8018B9BC(bossA6); + } + } + if ((bossA6->unk_066 == 1) || (bossA6->unk_066 == 2) || (bossA6->unk_066 == 3)) { + func_E16C50_8018A2C4(bossA6); + } + if (bossA6->unk_066 >= 7) { + Audio_PlaySfx(0x29121007, &bossA6->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } + } + for (i = 0; i < 3; i++) { + var_s0 = (bossA6->swork[15 + i] / 10) - 1; + if (var_s0 < 0) { + var_s0 = 0; + } + Math_SmoothStepToF(&D_E16C50_801C22F0.r[i], D_E16C50_801BECB0[var_s0][0], 1.0f, 10.0f, 0); + Math_SmoothStepToF(&D_E16C50_801C22F0.g[i], D_E16C50_801BECB0[var_s0][1], 1.0f, 10.0f, 0); + Math_SmoothStepToF(&D_E16C50_801C22F0.b[i], D_E16C50_801BECB0[var_s0][2], 1.0f, 10.0f, 0); + } + if ((bossA6->swork[15 + 0] == 0) && (bossA6->swork[15 + 1] == 0) && (bossA6->swork[15 + 2] == 0) && + (bossA6->fwork[0] != 0) && !(gFrameCount & 1)) { + func_8007C120(bossA6->obj.pos.x, bossA6->obj.pos.y, bossA6->obj.pos.z + 200.0f, bossA6->vel.x, bossA6->vel.y, + bossA6->vel.z, 0.3f, 1); + } + temp2 = 0.5f; + if (((Boss*) gBosses)[0].swork[25] == 1) { + temp2 = 2.0f; + } + if (D_E16C50_801C2250.unk_00[10] != 0) { + D_E16C50_801C22F0.unk_34 += temp2; + if (D_E16C50_801C22F0.unk_34 > 360.0f) { + D_E16C50_801C22F0.unk_34 -= 360.0f; + } + } else { + D_E16C50_801C22F0.unk_34 -= temp2; + if (D_E16C50_801C22F0.unk_34 < 0.0f) { + D_E16C50_801C22F0.unk_34 += 360.0f; + } + } + if ((bossA6->unk_04E >= 3) && (bossA6->unk_04E < 5) && (bossA6->fwork[28] == 0.0f)) { + Math_SmoothStepToAngle(&bossA6->fwork[9], bossA6->fwork[32], 0.05f, 0.02f, 0.00001f); + Math_SmoothStepToAngle(&bossA6->obj.rot.z, bossA6->fwork[8], 0.05f, bossA6->fwork[9], 0.00001f); + if (bossA6->swork[25] >= 2) { + if (!(gFrameCount & 0x3F) && (Rand_ZeroOne() < 0.5f)) { + bossA6->fwork[6] = gPlayer[0].camEye.x + ((Rand_ZeroOne() - 0.5f) * 500.0f); + } + if (!(gFrameCount & 0x3F) && (Rand_ZeroOne() < 0.5f)) { + bossA6->fwork[7] = gPlayer[0].camEye.y + ((Rand_ZeroOne() - 0.5f) * 500.0f); + } + } else { + if (!(gFrameCount & 0x1F) && (Rand_ZeroOne() < 0.7f)) { + bossA6->fwork[6] = gPlayer[0].camEye.x + (Rand_ZeroOne() - 0.5f) * 1000.0f; + bossA6->fwork[30] = 0.0f; + } + if (!(gFrameCount & 0x1F) && (Rand_ZeroOne() < 0.7f)) { + bossA6->fwork[7] = gPlayer[0].camEye.y + (Rand_ZeroOne() - 0.5f) * 1000.0f; + bossA6->fwork[31] = 0.0f; + } + } + } + if (bossA6->unk_04E != 0) { + Math_SmoothStepToF(&bossA6->fwork[4], bossA6->fwork[5], 0.1f, 2.0f, 0.00001f); + Math_SmoothStepToF(&bossA6->obj.pos.z, bossA6->fwork[3] + (gPlayer[0].camEye.z - D_80177D20), 0.1f, + bossA6->fwork[4], 0.00001f); + if (bossA6->unk_04E < 5) { + sp120 = 2.0f; + if (bossA6->swork[25] == 1) { + sp120 = 50.0f; + } + Math_SmoothStepToF(&bossA6->fwork[30], sp120, 0.1f, 1.0f, 0.00001f); + Math_SmoothStepToF(&bossA6->fwork[31], sp120, 0.1f, 1.0f, 0.00001f); + Math_SmoothStepToF(&bossA6->obj.pos.x, bossA6->fwork[6], 0.2f, bossA6->fwork[30], 0.00001f); + Math_SmoothStepToF(&bossA6->obj.pos.y, bossA6->fwork[7], 0.2f, bossA6->fwork[31], 0.00001f); + } + Math_SmoothStepToAngle(&bossA6->fwork[0], bossA6->fwork[1], 0.2f, bossA6->fwork[2], 0.00001f); + } + Math_SmoothStepToF(&bossA6->fwork[10 + 0], bossA6->fwork[13 + 0], 0.1f, bossA6->fwork[16 + 0], 0.0001f); + Math_SmoothStepToF(&bossA6->fwork[10 + 1], bossA6->fwork[13 + 1], 0.1f, bossA6->fwork[16 + 1], 0.0001f); + Math_SmoothStepToF(&bossA6->fwork[10 + 2], bossA6->fwork[13 + 2], 0.1f, bossA6->fwork[16 + 2], 0.0001f); + Math_SmoothStepToF(&bossA6->fwork[19 + 0], bossA6->fwork[22 + 0], 0.1f, 10.0f, 0.00001f); + Math_SmoothStepToF(&bossA6->fwork[19 + 1], bossA6->fwork[22 + 1], 0.1f, 10.0f, 0.00001f); + Math_SmoothStepToF(&bossA6->fwork[19 + 2], bossA6->fwork[22 + 2], 0.1f, 10.0f, 0.00001f); + if (bossA6->unk_04E > 10) { + bossA6->obj.rot.z += bossA6->fwork[28]; + bossA6->obj.rot.z = Math_ModF(bossA6->obj.rot.z, 360.0f); + Math_SmoothStepToF(&bossA6->fwork[28], 5.0f, 0.1f, 0.2f, 0.0001f); + for (i = 0; i < 10; i++) { + func_80079618(bossA6->obj.pos.x + ((Rand_ZeroOne() - 0.5f) * 500.0f), + bossA6->obj.pos.y + ((Rand_ZeroOne() - 0.5f) * 500.0f), + bossA6->obj.pos.z + ((Rand_ZeroOne() - 0.5f) * 100.0f), (Rand_ZeroOne() * 4.0f) + 1.0f); + } + if (bossA6->timer_05C == 0) { + bossA6->timer_05C = 15; + } + if (!(gFrameCount & 1)) { + Matrix_MultVec3f(gCalcMatrix, &D_E16C50_801BED04, &spC8[0]); + Matrix_MultVec3f(gCalcMatrix, &D_E16C50_801BED10, &spC8[1]); + Matrix_MultVec3f(gCalcMatrix, &D_E16C50_801BED1C, &spC8[2]); + Matrix_MultVec3f(gCalcMatrix, &D_E16C50_801BED28, &spC8[3]); + Matrix_MultVec3f(gCalcMatrix, &D_E16C50_801BED34, &spC8[4]); + for (i = 0; i < 5; i++) { + var_s0 = (Rand_ZeroOne() - 0.5f) * 300.0f; + if (i == 0) { + var_s0 = (Rand_ZeroOne() - 0.5f) * 100.0f; + } + func_8007D0E0(bossA6->obj.pos.x + var_s0 + spC8[i].x, bossA6->obj.pos.y + var_s0 + spC8[i].y, + bossA6->obj.pos.z + spC8[i].z, 10.0f); + } + } + if (!(gFrameCount & 0x1F)) { + func_8007C120(bossA6->obj.pos.x, bossA6->obj.pos.y, bossA6->obj.pos.z + 300.0f, bossA6->vel.x, + bossA6->vel.y, bossA6->vel.z, 0.5f, 70); + } + } + if (!(gFrameCount & 0xF)) { + sp114 = fabsf(bossA6->fwork[3] / -1700.0f); + if (sp114 < 1.0f) { + sp114 = 1.0f; + } + if (sp114 > 3.0f) { + sp114 = 3.0f; + } + for (i = 0; i < 3; i++) { + var_fv1 = sp114; + if (bossA6->swork[18 + i] != 0) { + var_fv1 = 1.0f; + } + bossA6->info.hitbox[1 + 1 + 6 * (i + 1)] = 195.0f * var_fv1; + bossA6->info.hitbox[1 + 3 + 6 * (i + 1)] = 147.0f * var_fv1; + bossA6->info.hitbox[1 + 5 + 6 * (i + 1)] = 153.0f * var_fv1; + } + } + switch (bossA6->unk_04E) { + case 0: + bossA6->info.hitbox[0] = 0; + + sp11C = gPlayer[0].pos.x - bossA6->obj.pos.x; + sp118 = gPlayer[0].pos.y - bossA6->obj.pos.y; + sp114 = gPlayer[0].pos.z - 700.0f - bossA6->obj.pos.z; + sp104 = 10.0f; + if ((bossA6->timer_050 != 0) && (bossA6->timer_050 < 200)) { + sp11C = gPlayer[0].camEye.x - bossA6->obj.pos.x; + sp118 = gPlayer[0].camEye.y - bossA6->obj.pos.y; + sp114 = gPlayer[0].camEye.z - D_80177D20 + bossA6->fwork[3] - bossA6->obj.pos.z; + sp104 = 100.0f; + } + sp10C = Math_RadToDeg(Math_Atan2F(sp11C, sp114)); + sp110 = Math_RadToDeg(-Math_Atan2F(sp118, sqrtf(SQ(sp11C) + SQ(sp114)))); + Math_SmoothStepToAngle(&bossA6->unk_07C, sp10C, 1.0f, sp104, 0.00001f); + Math_SmoothStepToAngle(&bossA6->unk_078, sp110, 1.0f, sp104, 0.00001f); + Matrix_RotateY(gCalcMatrix, bossA6->unk_07C * M_DTOR, 0); + Matrix_RotateX(gCalcMatrix, bossA6->unk_078 * M_DTOR, 1); + sp98.x = sp98.y = 0.0f; + sp98.z = 30.0f; + Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp98, &sp8C); + bossA6->vel.x = sp8C.x; + bossA6->vel.y = sp8C.y; + sp98.x = sp98.y = 0.0f; + sp98.z = 60.0f; + Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp98, &sp8C); + bossA6->vel.z = sp8C.z; + bossA6->fwork[33] += 30.0f; + if (bossA6->timer_050 == 0) { + Math_SmoothStepToF(&D_E16C50_801C22F0.unk_24, 0.0f, 0.1f, 1.0f, 0); + if (D_E16C50_801C22F0.unk_24 < 1.0f) { + D_E16C50_801C22F0.unk_24 = 0.0f; + Audio_KillSfx(&bossA6->sfxPos); + Audio_PlaySfx(0x19004051, &bossA6->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + bossA6->timer_050 = 20; + bossA6->obj.pos.z = gPlayer[0].camEye.z - D_80177D20 + bossA6->fwork[3]; + bossA6->fwork[6] = bossA6->obj.pos.x = gPlayer[0].camEye.x; + bossA6->fwork[7] = bossA6->obj.pos.y = gPlayer[0].camEye.y; + bossA6->unk_04E = 2; + bossA6->vel.x = 0.0f; + bossA6->vel.y = 0.0f; + bossA6->vel.z = -40.0f; + + Audio_PlaySfx(0x39408092, &bossA6->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } + } + break; + case 1: + Math_SmoothStepToF(D_801779A8, 10.0f, 1.0f, 5.0f, 0.0f); + bossA6->info.hitbox[0] = 0; + Math_SmoothStepToAngle(&bossA6->obj.rot.z, 0.0f, 1.0f, 10.0f, 0.0001f); + if (bossA6->obj.rot.z < 1.0f) { + if (D_E16C50_801C2250.unk_00[27] == 0) { + Audio_PlaySfx(0x39408091, &bossA6->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + D_E16C50_801C2250.unk_00[27] = 1; + } + bossA6->obj.rot.z = 0.0f; + Math_SmoothStepToF(&D_E16C50_801C22F0.unk_24, 0.0f, 0.1f, 5.0f, 0.0f); + Math_SmoothStepToF(&bossA6->fwork[34], 2.0f, 0.1f, 0.1f, 0.0f); + Math_SmoothStepToF(&bossA6->fwork[35], 1.2f, 0.1f, 0.1f, 0.0f); + if (D_E16C50_801C22F0.unk_24 < 1.0f) { + bossA6->fwork[6] = gPlayer[0].camEye.x + ((Rand_ZeroOne() - 0.5f) * 1000.0f); + bossA6->fwork[7] = gPlayer[0].camEye.y + ((Rand_ZeroOne() - 0.5f) * 1000.0f); + bossA6->fwork[3] = -3700.0f + (Rand_ZeroOne() - 0.5f) * 3000.0f; + bossA6->fwork[34] = 2.0f; + bossA6->fwork[35] = 1.2f; + if ((bossA6->swork[37] == 0) && (bossA6->swork[33 + 0] == 0) && (bossA6->swork[33 + 1] == 0) && + (bossA6->swork[33 + 2] == 0) && (bossA6->swork[27 + 0] == 0) && (bossA6->swork[27 + 1] == 0) && + (bossA6->swork[27 + 2] == 0)) { + bossA6->swork[37] = 1; + } + if (bossA6->swork[37] != 0) { + bossA6->swork[18 + 0] = bossA6->swork[18 + 1] = bossA6->swork[18 + 2] = 3; + bossA6->fwork[3] = -1700.0f; + if ((bossA6->swork[25] != 1) && (D_E16C50_801C2250.unk_00[0] != 2)) { + bossA6->fwork[3] = ((Rand_ZeroOne() - 0.5f) * 1000.0f) + -3700.0f; + } + bossA6->obj.pos.z = gPlayer[0].camEye.z - D_80177D20 + bossA6->fwork[3]; + bossA6->fwork[6] = bossA6->obj.pos.x = gPlayer[0].camEye.x; + bossA6->fwork[7] = bossA6->obj.pos.y = gPlayer[0].camEye.y; + } + D_E16C50_801C22F0.unk_24 = 0.0f; + bossA6->timer_050 = 50; + bossA6->unk_04E = 2; + D_E16C50_801C2250.unk_00[8] = 0; + Audio_PlaySfx(0x39408092, &bossA6->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } + } + break; + case 2: + Math_SmoothStepToF(D_801779A8, 10.0f, 1.0f, 5.0f, 0.0f); + if (bossA6->timer_050 == 10) { + D_80178348 = D_80178350 = D_80178354 = 255; + D_80178340 = D_80178358 = 255; + D_80178358 = 0; + D_8017835C = 25; + D_80178480 = 50; + } + if (bossA6->timer_050 == 0) { + if (D_E16C50_801C2250.unk_00[8] == 0) { + D_E16C50_801C2250.unk_00[8] = 1; + D_80178348 = D_80178350 = D_80178354 = D_80178340 = 0; + } + Math_SmoothStepToF(&D_E16C50_801C22F0.unk_24, 255.0f, 0.1f, 10.0f, 0.0f); + Math_SmoothStepToF(&bossA6->fwork[34], 1.0f, 0.1f, 0.1f, 0.0f); + Math_SmoothStepToF(&bossA6->fwork[35], 1.0f, 0.1f, 0.1f, 0.0f); + if (D_E16C50_801C22F0.unk_24 > 254.0f) { + D_E16C50_801C22F0.unk_24 = 255.0f; + bossA6->info.hitbox[0] = 10; + bossA6->fwork[34] = bossA6->fwork[35] = 1.0f; + switch (bossA6->swork[38]) { + case 0: + bossA6->timer_050 = 100; + break; + case 1: + bossA6->timer_050 = 1399; + break; + } + bossA6->swork[38] = 0; + D_E16C50_801C2250.unk_00[28] = 1; + bossA6->unk_04E = 4; + if (bossA6->swork[37] != 0) { + bossA6->timer_050 = 30; + bossA6->swork[37] = 0; + bossA6->fwork[8] = bossA6->fwork[9] = 0.0f; + if (bossA6->swork[36] < 2) { + bossA6->swork[36]++; + } + bossA6->unk_04E = 3; + } + if (D_E16C50_801C2250.unk_00[6] != 0) { + if (D_E16C50_801C2250.unk_00[0] != 2) { + D_E16C50_801C2250.unk_00[0] = 1; + } else { + D_E16C50_801C2250.unk_00[0] = 0; + } + } + if ((D_E16C50_801C2250.unk_00[6] == 0) || (D_E16C50_801C2250.unk_00[0] == 0)) { + bossA6->fwork[1] = 90.0f; + bossA6->fwork[2] = 2.0f; + Audio_PlaySfx(0x31404066, &bossA6->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + bossA6->info.hitbox = SEGMENTED_TO_VIRTUAL(D_6028578); + D_E16C50_801C2250.unk_00[7] = 0; + } + } + } + break; + case 3: + if (bossA6->timer_050 == 1) { + Audio_KillSfx(&bossA6->sfxPos); + if (D_E16C50_801C2250.unk_00[7] == 0) { + Audio_PlaySfx(0x31008069, &bossA6->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + D_E16C50_801C2250.unk_00[7] = 1; + } + } + if (D_E16C50_801C2250.unk_00[0] != 0) { + if (bossA6->swork[25] == 1) { + bossA6->timer_052 = 30; + bossA6->unk_04E = 5; + bossA6->fwork[1] = 90.0f; + bossA6->fwork[2] = 2.0f; + bossA6->fwork[37] = 300.0f; + } else { + bossA6->timer_052 = 30; + bossA6->unk_04E = 8; + } + } else { + if ((bossA6->swork[36] == 3) && (D_E16C50_801C2250.unk_00[29] == 0)) { + func_800BA808(gMsg_ID_7084, RCID_PEPPY); + bossA6->swork[36] = 4; + D_E16C50_801C2250.unk_00[29]++; + D_E16C50_801C2250.unk_00[29] &= 1; + } + if ((bossA6->swork[30 + 0] != 0) && (bossA6->swork[30 + 1] != 0) && (bossA6->swork[30 + 2] != 0)) { + bossA6->timer_050 = 1500; + bossA6->fwork[1] = 0.0f; + D_E16C50_801C2250.unk_00[28] = 0; + bossA6->unk_04E = 4; + bossA6->fwork[2] = 1.0f; + bossA6->info.hitbox = SEGMENTED_TO_VIRTUAL(D_6028454); + D_E16C50_801C2250.unk_00[6] = 1; + Audio_KillSfx(&bossA6->sfxPos); + Audio_PlaySfx(0x31404067, &bossA6->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + bossA6->swork[30 + 0] = bossA6->swork[30 + 1] = bossA6->swork[30 + 2] = 0; + } else if (bossA6->swork[30 + 0] == 0) { + func_E16C50_8018A1B0(bossA6, 0); + } else if (bossA6->swork[30 + 1] == 0) { + func_E16C50_8018A1B0(bossA6, 1); + } else if (bossA6->swork[30 + 2] == 0) { + func_E16C50_8018A1B0(bossA6, 2); + } + } + break; + case 4: + if (bossA6->timer_050 == 1400) { + bossA6->swork[15 + 0] = bossA6->swork[15 + 1] = bossA6->swork[15 + 2] = 40; + if (bossA6->swork[25] == 0) { + bossA6->swork[25] = 1; + } + bossA6->fwork[3] = ((Rand_ZeroOne() - 0.5f) * 1000.0f) + -3700.0f; + if (D_E16C50_801C2250.unk_00[28] == 0) { + Audio_PlaySfx(0x39404068, &bossA6->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } + } + Math_SmoothStepToF(&bossA6->fwork[29], 255.0f, 1.0f, 10.0f, 0.0001f); + if ((bossA6->swork[36] == 2) && (bossA6->fwork[0] == 0.0f) && (D_E16C50_801C2250.unk_00[30] == 0)) { + func_800BA808(gMsg_ID_7083, RCID_PEPPY); + bossA6->swork[36] = 3; + D_E16C50_801C2250.unk_00[30]++; + D_E16C50_801C2250.unk_00[30] &= 1; + } + if (!(gFrameCount & 0x3F)) { + bossA6->fwork[8] = Rand_ZeroOne() * 360.0f; + bossA6->fwork[9] = 0.0f; + } + if ((bossA6->timer_050 == 0) || + ((bossA6->swork[33 + 0] == 0) && (bossA6->swork[33 + 1] == 0) && (bossA6->swork[33 + 2] == 0) && + (bossA6->swork[27 + 0] == 0) && (bossA6->swork[27 + 1] == 0) && (bossA6->swork[27 + 2] == 0))) { + bossA6->swork[37] = 1; + if (D_E16C50_801C2250.unk_00[6] != 0) { + bossA6->unk_04E = 1; + D_E16C50_801C2250.unk_00[27] = 0; + } else { + bossA6->fwork[1] = 90.0f; + bossA6->timer_050 = 30; + bossA6->fwork[8] = bossA6->fwork[9] = 0; + bossA6->fwork[2] = 2.0f; + Audio_PlaySfx(0x31404066, &bossA6->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + bossA6->info.hitbox = SEGMENTED_TO_VIRTUAL(D_6028578); + D_E16C50_801C2250.unk_00[7] = bossA6->swork[37] = 0; + bossA6->unk_04E = 3; + if (D_E16C50_801C2250.unk_00[6] == 0) { + func_8001D444(0, 0x8017, 0, 0xFF); + } + } + } else if (bossA6->swork[38] != 0) { + bossA6->timer_052 = 30; + bossA6->unk_04E = 9; + bossA6->fwork[28] = 0.0f; + D_E16C50_801C2250.unk_00[24] = 0; + D_E16C50_801C2250.unk_00[27] = 0; + bossA6->timer_050 = 0; + bossA6->timer_054 = 0; + D_E16C50_801C2250.unk_00[34] = 1; + } + break; + case 5: + if (bossA6->timer_050 == 1) { + func_E16C50_80187704(); + Audio_PlaySfx(0x39033093, &bossA6->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + D_E16C50_801C2250.unk_00[33] = 120; + } + if (D_E16C50_801C2250.unk_00[33] != 0) { + D_E16C50_801C2250.unk_00[33]--; + } + if (D_E16C50_801C2250.unk_00[33] == 15) { + if (D_E16C50_801C2250.unk_00[32] == 0) { + if (gTeamShields[1] > 0) { + func_800BA808(gMsg_ID_20315, RCID_FALCO); + } else if (gTeamShields[2] > 0) { + func_800BA808(gMsg_ID_20316, RCID_SLIPPY); + } else if (gTeamShields[3] > 0) { + func_800BA808(gMsg_ID_20317, RCID_PEPPY); + } + } + D_E16C50_801C2250.unk_00[32]++; + D_E16C50_801C2250.unk_00[32] &= 1; + } + break; + case 6: + bossA6->obj.pos.z -= bossA6->fwork[37]; + Math_SmoothStepToF(&bossA6->fwork[37], 0.0f, 1.0f, 10.0f, 0.00001f); + Math_SmoothStepToF(&bossA6->fwork[3], -6000.0f, 10.0f, 100.0f, 0.00001f); + sp68 = &D_E16C50_801BF454[D_E16C50_801C2250.unk_00[9]]; + Math_SmoothStepToF(&D_E16C50_801C22F0.unk_28[0], sp68->r, 0.5f, 100.0f, 0.00001f); + Math_SmoothStepToF(&D_E16C50_801C22F0.unk_28[2], sp68->g, 0.5f, 100.0f, 0.00001f); + Math_SmoothStepToF(&D_E16C50_801C22F0.unk_28[1], sp68->b, 0.5f, 100.0f, 0.00001f); + if (!(gFrameCount & 0xF)) { + D_E16C50_801C2250.unk_00[9]++; + D_E16C50_801C2250.unk_00[9] &= 3; + } + if (bossA6->timer_050 == 0) { + bossA6->unk_04E = 7; + bossA6->fwork[1] = 0.0f; + } + break; + case 7: + temp_s0_3 = &gObjects8C[bossA6->swork[39]]; + Math_SmoothStepToF(&D_E16C50_801C22F0.unk_28[0], 255.0f, 1.0f, 100.0f, 0.00001f); + Math_SmoothStepToF(&D_E16C50_801C22F0.unk_28[2], 255.0f, 1.0f, 100.0f, 0.00001f); + Math_SmoothStepToF(&D_E16C50_801C22F0.unk_28[1], 255.0f, 1.0f, 100.0f, 0.00001f); + if (bossA6->fwork[0] < 10.0f) { + temp_s0_3->unk_60.y = 5.0f - ((10.0f - bossA6->fwork[0]) * 0.3f); + temp_s0_3->unk_60.x = 5.0f - ((10.0f - bossA6->fwork[0]) * 0.3f); + } + if (bossA6->fwork[0] < 1.0f) { + Math_SmoothStepToF(&temp_s0_3->unk_60.x, 0.0f, 0.1f, 1.0f, 0.00001f); + Math_SmoothStepToF(&temp_s0_3->unk_60.y, 0.0f, 0.1f, 1.0f, 0.00001f); + Math_SmoothStepToF(&temp_s0_3->unk_60.z, 0.0f, 1.0f, 2.0f, 0.00001f); + if (temp_s0_3->unk_60.z < 0.2f) { + D_E16C50_801C2250.unk_00[0] = 2; + bossA6->swork[37] = 1; + bossA6->timer_050 = 20; + D_E16C50_801C22F0.unk_28[0] = D_E16C50_801C22F0.unk_28[2] = D_E16C50_801C22F0.unk_28[1] = 255.0f; + bossA6->unk_04E = 1; + D_E16C50_801C2250.unk_00[27] = 0; + Object_Kill(&temp_s0_3->obj, &temp_s0_3->sfxPos); + } + } + break; + case 8: + if (bossA6->timer_052 == 0) { + D_E16C50_801C2250.unk_00[24] = 0; + bossA6->timer_052 = 300; + bossA6->timer_054 = 0; + bossA6->unk_04E = 9; + Audio_PlaySfx(0x11002050, &bossA6->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } + break; + case 9: + if (bossA6->timer_052 == 0) { + Audio_KillSfx(&bossA6->sfxPos); + Audio_PlaySfx(0x19004051, &bossA6->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + bossA6->timer_054 = 0; + bossA6->unk_04E = 10; + } else { + if (D_E16C50_801C2250.unk_00[34] == 0) { + bossA6->obj.rot.z += bossA6->fwork[28]; + bossA6->obj.rot.z = Math_ModF(bossA6->obj.rot.z, 360.0f); + Math_SmoothStepToF(&bossA6->fwork[28], 20.0f, 0.1f, 0.5f, 0.0001f); + } + if (bossA6->timer_054 == 0) { + bossA6->timer_054 = 10; + if (D_E16C50_801C2250.unk_00[34] == 0) { + bossA6->timer_054 = 30; + } + sp128 = 6; + if (bossA6->swork[25] == 2) { + sp128 = 12; + } + for (i = 0; i < sp128; i++) { + Matrix_RotateZ(gCalcMatrix, (360.0f / sp128) * M_DTOR, 1); + sp98.x = 0.0f; + sp98.y = 400.0f; + sp98.z = 0.0f; + Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp98, &sp8C); + sp10C = Math_RadToDeg(Math_Atan2F(sp8C.x, sp8C.z)); + sp110 = Math_RadToDeg(-Math_Atan2F(sp8C.y, sqrtf(SQ(sp8C.x) + SQ(sp8C.z)))); + temp_1 = D_E16C50_801C2250.unk_00[12 + i] - 1; + if (temp_1 < 0) { + temp_1 = 0; + } + if ((gObjects2F4[temp_1].obj.status == 0) || (gObjects2F4[temp_1].obj.id != OBJ_2F4_191) || + (D_E16C50_801C2250.unk_00[24] == 0)) { + D_E16C50_801C2250.unk_00[12 + i] = 0; + temp_1 = 0; + if (bossA6->swork[25] == 1) { + temp_1 = 1; + } + func_E16C50_801875E4(bossA6->obj.pos.x + sp8C.x, bossA6->obj.pos.y + sp8C.y, + bossA6->obj.pos.z + sp8C.z, 25.0f, sp110, sp10C, 10, temp_1); + D_E16C50_801C2250.unk_00[12 + i] = D_E16C50_801C2250.unk_00[11]; + } + } + D_E16C50_801C2250.unk_00[24] = 1; + } + } + break; + case 10: + if (D_E16C50_801C2250.unk_00[34] == 0) { + bossA6->obj.rot.z += bossA6->fwork[28]; + bossA6->obj.rot.z = Math_ModF(bossA6->obj.rot.z, 360.0f); + Math_SmoothStepToF(&bossA6->fwork[28], 0.0f, 0.1f, 0.5f, 0.0001f); + } + if (bossA6->fwork[28] <= 0.1f) { + if (D_E16C50_801C2250.unk_00[34] == 0) { + bossA6->fwork[28] = 0.0f; + D_E16C50_801C2250.unk_00[0] = 2; + bossA6->swork[37] = 1; + } + bossA6->timer_050 = 20; + D_E16C50_801C2250.unk_00[27] = 0; + D_E16C50_801C2250.unk_00[34] = 0; + bossA6->unk_04E = 1; + } + break; + case 11: + if ((bossA6->timer_052 == 160) && + ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_3) || (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_5))) { + gPlayer[0].state_1C8 = PLAYERSTATE_1C8_7; + gPlayer[0].unk_1D0 = 0; + } + if (bossA6->timer_052 < 50) { + D_801779A8[0] = 50.0f; + } else { + D_801779A8[0] = 20.0f; + } + if (bossA6->timer_052 == 0) { + D_80161734 = 0; + Object_Kill(&bossA6->obj, &bossA6->sfxPos); + } + break; + } + func_E16C50_8018A464(bossA6, 0); + func_E16C50_8018A464(bossA6, 1); + func_E16C50_8018A464(bossA6, 2); + for (i = 0; i < 5; i++) { + if (!(gFrameCount & 3)) { + D_E16C50_801BF280[i] = (Rand_ZeroOne() - 0.5f) * 10.0f; + D_E16C50_801BF2B0[i] = (Rand_ZeroOne() - 0.5f) * 10.0f; + D_E16C50_801BF2E0[i] = (Rand_ZeroOne() - 0.5f) * 10.0f; + } + Math_SmoothStepToF(&D_E16C50_801BF1F0[i], D_E16C50_801BF280[i], 1.0f, 5.0f, 0.001f); + Math_SmoothStepToF(&D_E16C50_801BF220[i], D_E16C50_801BF2B0[i], 1.0f, 5.0f, 0.001f); + Math_SmoothStepToF(&D_E16C50_801BF250[i], D_E16C50_801BF2E0[i], 1.0f, 5.0f, 0.001f); + } + bossA6->info.hitbox[1 + 4 * 6 + 0] = bossA6->vwork[4].z; + bossA6->info.hitbox[1 + 4 * 6 + 2] = bossA6->vwork[4].y; + bossA6->info.hitbox[1 + 4 * 6 + 4] = bossA6->vwork[4].x; + bossA6->info.hitbox[1 + 5 * 6 + 0] = bossA6->vwork[5].z; + bossA6->info.hitbox[1 + 5 * 6 + 2] = bossA6->vwork[5].y; + bossA6->info.hitbox[1 + 5 * 6 + 4] = bossA6->vwork[5].x; + bossA6->info.hitbox[1 + 6 * 6 + 0] = bossA6->vwork[6].z; + bossA6->info.hitbox[1 + 6 * 6 + 2] = bossA6->vwork[6].y; + bossA6->info.hitbox[1 + 6 * 6 + 4] = bossA6->vwork[6].x; + if (D_801613A0 == 600) { + func_800BA808(gMsg_ID_2225, RCID_SLIPPY); + } + if (D_801613A0 == 756) { + D_80161734 = 1; + } + if (D_801613A0 > 756) { + D_80177848 = (bossA6->unk_060 / 780.0f) * 255.0f; + } + for (i = 0; i < 15; i++) { + if (bossA6->swork[i] != 0) { + bossA6->swork[i]--; + } + } + if (bossA6->fwork[0] > 20.0f) { + for (i = 0; i < 3; i++) { + if (bossA6->swork[i] == 0) { + bossA6->swork[i] = 5; + } + } + } + if (D_E16C50_801C2250.unk_00[5] != 0) { + D_E16C50_801C2250.unk_00[5]--; + } + if (D_E16C50_801C2250.unk_00[25] != 0) { + D_E16C50_801C2250.unk_00[25]--; + } +} +#else +void func_E16C50_80187944(Boss* bossA6); +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/fox_a6/func_E16C50_80187944.s") +#endif + +void func_E16C50_8018A1B0(Boss* bossA6, s32 arg1) { + switch (D_E16C50_801C2250.unk_00[arg1 + 2]) { + case 0: + bossA6->swork[27 + arg1] = 12; + D_E16C50_801C2250.unk_00[arg1 + 2] = 1; + break; + case 1: + bossA6->fwork[13 + arg1] = 120.0f; + if (((bossA6->swork[33 + arg1] == 0) && (D_E16C50_801C2250.unk_00[6] != 0) && + ((bossA6->swork[15 + 0] != 0) || (bossA6->swork[15 + 1] != 0) || (bossA6->swork[15 + 2] != 0))) || + (bossA6->swork[25] == 0)) { + bossA6->fwork[16 + arg1] = 1.0f; + } else { + bossA6->fwork[16 + arg1] = 60.0f; + } + if (bossA6->fwork[10 + arg1] >= 119.0f) { + bossA6->fwork[10 + arg1] = 120.0f; + bossA6->swork[33 + arg1] = 30; + bossA6->fwork[16 + arg1] = 60.0f; + D_E16C50_801C2250.unk_00[arg1 + 2] = 0; + bossA6->swork[arg1 + 6] = 0; + bossA6->swork[arg1 + 9] = 0; + bossA6->swork[30 + arg1] = 1; + bossA6->swork[18 + arg1] = 0; + } + break; + } +} + +void func_E16C50_8018A2C4(Boss* bossA6) { + s32 i; + Vec3f sp58; + s32 pad1; + + for (i = 0; i < 3; i++) { + if ((bossA6->unk_066 == i + 1) && (bossA6->unk_04E == 4) && (bossA6->fwork[0] < 20.0f)) { + if ((bossA6->swork[18 + i] != 1) && (bossA6->swork[18 + i] != 3)) { + bossA6->swork[i] = 15; + bossA6->swork[i + 3] = 40; + bossA6->swork[33 + i] -= bossA6->unk_064; + if (i == 0) { + sp58.x = D_E16C50_801BF334[0]; + sp58.y = D_E16C50_801BF3C4[0]; + sp58.z = bossA6->obj.pos.z; + func_8007A6F0(&sp58, 0x29034003); + } + if (i == 1) { + sp58.x = D_E16C50_801BF364[0]; + sp58.y = D_E16C50_801BF3F4[0]; + sp58.z = bossA6->obj.pos.z; + func_8007A6F0(&sp58, 0x29034003); + } + if (i == 2) { + sp58.x = D_E16C50_801BF394[0]; + sp58.y = D_E16C50_801BF424[0]; + sp58.z = bossA6->obj.pos.z; + func_8007A6F0(&sp58, 0x29034003); + } + if (bossA6->swork[33 + i] < 0) { + bossA6->swork[33 + i] = 0; + } + } + } + } +} + +typedef struct { + f32 count; + Hitbox box[1]; +} JntHitbox; + +#ifdef NON_MATCHING +void func_E16C50_8018A464(Boss* bossA6, s32 arg1) { + s32 i; + s32 j; + f32 temp_ft2; + Vec3f spE0; + + bossA6->info.hitbox[1 + 6 * (arg1 + 1) + 0] = bossA6->vwork[1 + arg1].z; + bossA6->info.hitbox[1 + 6 * (arg1 + 1) + 2] = bossA6->vwork[1 + arg1].y; + bossA6->info.hitbox[1 + 6 * (arg1 + 1) + 4] = bossA6->vwork[1 + arg1].x; + if ((D_E16C50_801C2250.unk_00[5] != 0) && (bossA6->timer_056 != 0)) { + bossA6->timer_050 = 202; + bossA6->timer_056 = 0; + } + switch (bossA6->swork[18 + arg1]) { /* irregular */ + case 0: + Math_SmoothStepToF(&bossA6->fwork[25 + arg1], -90.0f, 0.05f, 2.0f, 0.00001f); + Math_SmoothStepToF(&bossA6->fwork[22 + arg1], 0.0f, 0.1f, 10.0f, 0.00001f); + switch (arg1) { + case 0: + if (bossA6->swork[33] != 0) { + for (i = 1; i < 12; i++) { + D_E16C50_801BEE90[i] = 3.0f; + D_E16C50_801BEEC0[i] = 3.0f; + if ((bossA6->swork[6] == 0) && (bossA6->unk_04E != 3)) { + bossA6->swork[6] = 20; + D_E16C50_801BEE00[0].y = (Rand_ZeroOne() - 0.5f) * 720.0f; + if (D_E16C50_801BEE00[0].y < -20.0f) { + D_E16C50_801BEE00[0].y = -20.0f; + } + if (D_E16C50_801BEE00[0].y > 20.0f) { + D_E16C50_801BEE00[0].y = 20.0f; + } + D_E16C50_801BF3C4[0] = D_E16C50_801BEE00[0].y; + } else if (!(bossA6->swork[6] & 3)) { + temp_ft2 = D_E16C50_801BEE00[i].y; + D_E16C50_801BEE00[i].y = D_E16C50_801BF3C4[i - 1]; + D_E16C50_801BF3C4[i] = temp_ft2; + } + if (bossA6->swork[9] == 0) { + if ((D_E16C50_801BEE00[0].y < -20.0f) || (D_E16C50_801BEE00[0].y > 20.0f)) { + for (j = 0; j < 12; j++) { + Math_SmoothStepToF(&D_E16C50_801BEE00[j].x, 0.0f, 0.5f, 100.0f, 0.001f); + } + } else { + bossA6->swork[9] = 30; + D_E16C50_801BEE00[0].x = (Rand_ZeroOne() - 0.5f) * 30.0f; + } + D_E16C50_801BF334[0] = D_E16C50_801BEE00[0].x; + } else if (!(bossA6->swork[9] & 7)) { + temp_ft2 = D_E16C50_801BEE00[i].y; + D_E16C50_801BEE00[i].y = D_E16C50_801BF334[i - 1]; + D_E16C50_801BF334[i] = temp_ft2; + } + } + for (i = 0; i < 12; i++) { + Math_SmoothStepToF(&D_E16C50_801BED70[i].y, D_E16C50_801BEE00[i].y, 0.05f, + D_E16C50_801BEEC0[i], 0.001f); + Math_SmoothStepToF(&D_E16C50_801BED70[i].x, D_E16C50_801BEE00[i].x, 0.05f, + D_E16C50_801BEE90[i], 0.001f); + Math_SmoothStepToF(&D_E16C50_801BEE90[i], 1.0f, 0.03f, 0.05f, 0.001f); + Math_SmoothStepToF(&D_E16C50_801BEEC0[i], 1.0f, 0.03f, 0.05f, 0.001f); + } + } + break; + case 1: /* switch 1 */ + if (bossA6->swork[34] != 0) { + for (i = 1; i < 12; i++) { + D_E16C50_801BF010[i] = 3.0f; + D_E16C50_801BF040[i] = 3.0f; + if (bossA6->swork[7] == 0) { + bossA6->swork[7] = 20; + D_E16C50_801BEF80[0].y = (Rand_ZeroOne() - 0.5f) * 720.0f; + if (D_E16C50_801BEF80[0].y < -20.0f) { + D_E16C50_801BEF80[0].y = -20.0f; + } + if (D_E16C50_801BEF80[0].y > 20.0f) { + D_E16C50_801BEF80[0].y = 20.0f; + } + D_E16C50_801BF3F4[0] = D_E16C50_801BEF80[0].y; + } else if (!(bossA6->swork[7] & 3)) { + temp_ft2 = D_E16C50_801BEE00[i].y; + D_E16C50_801BEE00[i].y = D_E16C50_801BF3F4[i - 1]; + D_E16C50_801BF3F4[i] = temp_ft2; + } + if (bossA6->swork[10] == 0) { + if ((D_E16C50_801BEF80[0].y < -20.0f) || (D_E16C50_801BEF80[0].y > 20.0f)) { + for (j = 0; j < 12; j++) { + Math_SmoothStepToF(&D_E16C50_801BEF80[j].x, 0.0f, 0.5f, 100.0f, 0.001f); + } + } else { + bossA6->swork[10] = 30; + D_E16C50_801BEF80[0].x = (Rand_ZeroOne() - 0.5f) * 30.0f; + } + D_E16C50_801BF364[0] = D_E16C50_801BEF80[0].x; + } else if (!(bossA6->swork[10] & 7)) { + temp_ft2 = D_E16C50_801BEF80[i].y; + D_E16C50_801BEF80[i].y = D_E16C50_801BF364[i - 1]; + D_E16C50_801BF364[i] = temp_ft2; + } + } + for (i = 0; i < 12; i++) { + Math_SmoothStepToF(&D_E16C50_801BEEF0[i].y, D_E16C50_801BEF80[i].y, 0.05f, + D_E16C50_801BF040[i], 0.001f); + Math_SmoothStepToF(&D_E16C50_801BEEF0[i].x, D_E16C50_801BEF80[i].x, 0.05f, + D_E16C50_801BF010[i], 0.001f); + Math_SmoothStepToF(&D_E16C50_801BF010[i], 1.0f, 0.03f, 0.05f, 0.001f); + Math_SmoothStepToF(&D_E16C50_801BF040[i], 1.0f, 0.03f, 0.05f, 0.001f); + } + } + break; + case 2: /* switch 1 */ + if (bossA6->swork[35] != 0) { + for (i = 1; i < 12; i++) { + D_E16C50_801BF190[i] = 3.0f; + D_E16C50_801BF1C0[i] = 3.0f; + if (bossA6->swork[8] == 0) { + bossA6->swork[8] = 20; + D_E16C50_801BF100[0].y = (Rand_ZeroOne() - 0.5f) * 720.0f; + if (D_E16C50_801BF100[0].y < -20.0f) { + D_E16C50_801BF100[0].y = -20.0f; + } + if (D_E16C50_801BF100[0].y > 20.0f) { + D_E16C50_801BF100[0].y = 20.0f; + } + D_E16C50_801BF424[0] = D_E16C50_801BF100[0].y; + } else if (!(bossA6->swork[8] & 3)) { + temp_ft2 = D_E16C50_801BEE00[i].y; + D_E16C50_801BEE00[i].y = D_E16C50_801BF424[i - 1]; + D_E16C50_801BF424[i] = temp_ft2; + } + if (bossA6->swork[11] == 0) { + if ((D_E16C50_801BF100[0].y < -20.0f) || (D_E16C50_801BF100[0].y > 20.0f)) { + for (j = 0; j < 12; j++) { + Math_SmoothStepToF(&D_E16C50_801BF100[j].x, 0.0f, 0.5f, 100.0f, 0.001f); + } + } else { + bossA6->swork[11] = 30; + D_E16C50_801BF100[0].x = (Rand_ZeroOne() - 0.5f) * 30.0f; + } + D_E16C50_801BF394[0] = D_E16C50_801BF100[0].x; + } else if (!(bossA6->swork[11] & 7)) { + temp_ft2 = D_E16C50_801BF100[i].y; + D_E16C50_801BF100[i].y = D_E16C50_801BF394[i - 1]; + D_E16C50_801BF394[i] = temp_ft2; + } + } + for (i = 0; i < 12; i++) { + Math_SmoothStepToF(&D_E16C50_801BF070[i].y, D_E16C50_801BF100[i].y, 0.05f, + D_E16C50_801BF1C0[i], 0.001f); + Math_SmoothStepToF(&D_E16C50_801BF070[i].x, D_E16C50_801BF100[i].x, 0.05f, + D_E16C50_801BF190[i], 0.001f); + Math_SmoothStepToF(&D_E16C50_801BF190[i], 1.0f, 0.03f, 0.05f, 0.001f); + Math_SmoothStepToF(&D_E16C50_801BF1C0[i], 1.0f, 0.03f, 0.05f, 0.001f); + } + } + break; + } + if ((bossA6->unk_04E >= 3) && (bossA6->fwork[0] == 0.0f) && + ((bossA6->swork[33] != 0) || (bossA6->swork[34] != 0) || (bossA6->swork[35] != 0)) && + (D_E16C50_801C2250.unk_00[5] == 0)) { + f32 var_fs0 = 0.5f; + if (bossA6->swork[25] < 2) { + var_fs0 = 0.7f; + } + if (!(gFrameCount & 31) && (Rand_ZeroOne() < var_fs0) && (D_E16C50_801C2250.unk_00[5] == 0) && + (bossA6->swork[33 + arg1] != 0)) { + if ((Rand_ZeroOne() < 0.2f) || (bossA6->swork[25] < 2)) { + if (bossA6->swork[18] == 0) { + bossA6->swork[18] = 1; + } + if (bossA6->swork[19] == 0) { + bossA6->swork[19] = 1; + } + if (bossA6->swork[20] == 0) { + bossA6->swork[20] = 1; + } + bossA6->swork[12] = 30; + if (bossA6->swork[33] != 0) { + bossA6->swork[13] = bossA6->swork[12] + 50; + } else { + bossA6->swork[13] = 30; + } + if (bossA6->swork[34] != 0) { + bossA6->swork[14] = bossA6->swork[13] + 50; + } else { + bossA6->swork[14] = bossA6->swork[13]; + } + } else { + for (i = 0; i < 3; i++) { + ; + if ((i == (gFrameCount & 15)) && (bossA6->swork[18 + i] == 0)) { + bossA6->swork[12 + i] = 15; + bossA6->swork[18 + i] = 1; + i = 3; + } + } + } + } + } + break; + case 1: + D_E16C50_801C2250.unk_00[5] = 50; + for (i = 0; i < 12; i++) { + if (arg1 == 0) { + D_E16C50_801BEE00[i].y = 0.0f; + D_E16C50_801BEE00[i].x = i * -3.0f; + Math_SmoothStepToF(&D_E16C50_801BED70[i].x, D_E16C50_801BEE00[i].x, 0.1f, 10.0f, 0.001f); + Math_SmoothStepToF(&D_E16C50_801BED70[i].y, D_E16C50_801BEE00[i].y, 0.1f, 10.0f, 0.001f); + } + if (arg1 == 1) { + D_E16C50_801BEE00[i].y = 0.0f; + D_E16C50_801BEE00[i].x = i * -3.0f; + Math_SmoothStepToF(&D_E16C50_801BEEF0[i].x, D_E16C50_801BEF80[i].x, 0.1f, 10.0f, 0.001f); + Math_SmoothStepToF(&D_E16C50_801BEEF0[i].y, D_E16C50_801BEF80[i].y, 0.1f, 10.0f, 0.001f); + } + if (arg1 == 2) { + D_E16C50_801BEE00[i].y = 0.0f; + D_E16C50_801BEE00[i].x = i * -3.0f; + Math_SmoothStepToF(&D_E16C50_801BF070[i].x, D_E16C50_801BF100[i].x, 0.1f, 10.0f, 0.001f); + Math_SmoothStepToF(&D_E16C50_801BF070[i].y, D_E16C50_801BF100[i].y, 0.1f, 10.0f, 0.001f); + } + } + if (bossA6->swork[12 + i] == 0) { + bossA6->swork[12 + i] = 40.0f - ((20.0f - ((bossA6->fwork[3] * -1.0f) / 150.0f)) * 3.0f); + if (arg1 == 0) { + spE0.x = D_E16C50_801BF334[0]; + spE0.y = D_E16C50_801BF3C4[0]; + spE0.z = bossA6->obj.pos.z; + func_8007A6F0(&spE0, 0x29034065); + } + if (arg1 == 1) { + spE0.x = D_E16C50_801BF364[0]; + spE0.y = D_E16C50_801BF3F4[0]; + spE0.z = bossA6->obj.pos.z; + func_8007A6F0(&spE0, 0x29034065); + } + if (arg1 == 2) { + spE0.x = D_E16C50_801BF394[0]; + spE0.y = D_E16C50_801BF424[0]; + spE0.z = bossA6->obj.pos.z; + func_8007A6F0(&spE0, 0x29034065); + } + bossA6->swork[18 + i] = 2; + } + break; + case 2: + D_E16C50_801C2250.unk_00[5] = 50; + Math_SmoothStepToF(&bossA6->fwork[25 + arg1], 0.0f, 0.4f, 100.0f, 0.00001f); + Math_SmoothStepToF(&bossA6->fwork[22 + arg1], + 420.0f - ((20.0f - ((bossA6->fwork[3] * -1.0f) / 150.0f)) * 20.0f), 0.3f, 100.0f, + 0.00001f); + if ((bossA6->swork[12 + i] == 0) || (bossA6->swork[7 + i] != 0)) { + bossA6->swork[12 + i] = 0; + for (i = 0; i < 12; i++) { + if (arg1 == 0) { + D_E16C50_801BEE90[i] = 0.0f; + D_E16C50_801BEEC0[i] = 0.0f; + } + if (arg1 == 1) { + D_E16C50_801BF010[i] = 0.0f; + D_E16C50_801BF040[i] = 0.0f; + } + if (arg1 == 2) { + D_E16C50_801BF190[i] = 0.0f; + D_E16C50_801BF1C0[i] = 0.0f; + } + } + } + for (i = 0; i < 12; i++) { + if (arg1 == 0) { + D_E16C50_801BEE00[i].y = 0.0f; + D_E16C50_801BEE00[i].x = D_E16C50_801BF494[i]; + Math_SmoothStepToF(&D_E16C50_801BED70[i].y, D_E16C50_801BEE00[i].y, 0.3f, 100.0f, 0.00001f); + Math_SmoothStepToF(&D_E16C50_801BED70[i].x, D_E16C50_801BEE00[i].x, 0.3f, 100.0f, 0.00001f); + } + if (arg1 == 1) { + D_E16C50_801BEF80[i].y = 0.0f; + D_E16C50_801BEF80[i].x = D_E16C50_801BF494[i]; + Math_SmoothStepToF(&D_E16C50_801BEEF0[i].y, D_E16C50_801BEF80[i].y, 0.3f, 100.0f, 0.00001f); + Math_SmoothStepToF(&D_E16C50_801BEEF0[i].x, D_E16C50_801BEF80[i].x, 0.3f, 100.0f, 0.00001f); + } + if (arg1 == 2) { + D_E16C50_801BF100[i].y = 0.0f; + D_E16C50_801BF100[i].x = D_E16C50_801BF494[i]; + Math_SmoothStepToF(&D_E16C50_801BF070[i].y, D_E16C50_801BF100[i].y, 0.3f, 100.0f, 0.00001f); + Math_SmoothStepToF(&D_E16C50_801BF070[i].x, D_E16C50_801BF100[i].x, 0.3f, 100.0f, 0.00001f); + } + } + break; + case 3: + for (i = 0; i < 12; i++) { + Math_SmoothStepToF(&D_E16C50_801BEE00[i].y, 0.0f, 0.5f, 50.0f, 0.001f); + Math_SmoothStepToF(&D_E16C50_801BEE00[i].x, 0.0f, 0.5f, 50.0f, 0.001f); + Math_SmoothStepToF(&D_E16C50_801BEF80[i].y, 0.0f, 0.5f, 50.0f, 0.001f); + Math_SmoothStepToF(&D_E16C50_801BEF80[i].x, 0.0f, 0.5f, 50.0f, 0.001f); + Math_SmoothStepToF(&D_E16C50_801BF100[i].y, 0.0f, 0.5f, 50.0f, 0.001f); + Math_SmoothStepToF(&D_E16C50_801BF100[i].x, 0.0f, 0.5f, 50.0f, 0.001f); + } + bossA6->timer_050 = 0; + bossA6->swork[18] = bossA6->swork[19] = bossA6->swork[20] = 4; + bossA6->fwork[28] = bossA6->fwork[10] = bossA6->fwork[11] = bossA6->fwork[12] = bossA6->fwork[19] = + bossA6->fwork[20] = bossA6->fwork[21] = bossA6->fwork[13] = bossA6->fwork[14] = bossA6->fwork[15] = + bossA6->fwork[22] = bossA6->fwork[23] = bossA6->fwork[24] = 0.0f; + bossA6->fwork[25] = bossA6->fwork[26] = bossA6->fwork[27] = -90.0f; + for (i = 0; i < 12; i++) { + D_E16C50_801BEE00[i].x = 0.0f; + D_E16C50_801BEE00[i].y = 0.0f; + D_E16C50_801BED70[i].x = 0.0f; + D_E16C50_801BED70[i].y = 0.0f; + D_E16C50_801BEEC0[i] = D_E16C50_801BEE90[i] = 3.0f; + + D_E16C50_801BEF80[i].x = 0.0f; + D_E16C50_801BEF80[i].y = 0.0f; + D_E16C50_801BEEF0[i].x = 0.0f; + D_E16C50_801BEEF0[i].y = 0.0f; + D_E16C50_801BF010[i] = 3.0f; + D_E16C50_801BF040[i] = 3.0f; + + D_E16C50_801BF100[i].x = 0.0f; + D_E16C50_801BF100[i].y = 0.0f; + D_E16C50_801BF070[i].x = 0.0f; + D_E16C50_801BF070[i].y = 0.0f; + D_E16C50_801BF190[i] = 3.0f; + D_E16C50_801BF1C0[i] = 3.0f; + } + break; + } +} +#else +void func_E16C50_8018A464(Boss* bossA6, s32 arg1); +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/fox_a6/func_E16C50_8018A464.s") +#endif + +void func_E16C50_8018B9BC(Boss* bossA6) { + s32 i; + s32 j; + Vec3f sp94; + Vec3f sp88; + + if (D_E16C50_801C2250.unk_00[0] == 0) { + for (i = 3, j = 15; j < 18; j++, i++) { + if (bossA6->swork[j] != 0) { + if ((D_8017812C != 0) && (gPlayerShots[15].unk_64 > 0)) { + bossA6->swork[j] -= bossA6->unk_064; + } else if (i + 1 == bossA6->unk_066) { + bossA6->swork[j] -= bossA6->unk_064; + if ((D_E16C50_801C2250.unk_00[25] == 0) && (bossA6->swork[25] == 1) && (Rand_ZeroOne() < 0.4f)) { + D_E16C50_801C2250.unk_00[10]++; + D_E16C50_801C2250.unk_00[10] &= 1; + D_E16C50_801C2250.unk_00[25] = 20; + } + } + Audio_PlaySfx(0x29033064, &bossA6->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + if (bossA6->swork[j] <= 0) { + bossA6->swork[j] = 0; + Matrix_MultVec3f(gCalcMatrix, &bossA6->vwork[1 + i], &sp94); + func_8007D0E0(bossA6->obj.pos.x + sp94.x, bossA6->obj.pos.y + sp94.y, bossA6->obj.pos.z + sp94.z, + 10.0f); + sp88.x = bossA6->obj.pos.x + sp94.x; + sp88.y = bossA6->obj.pos.y + sp94.y; + sp88.z = bossA6->obj.pos.z + sp94.z; + func_8007A6F0(&sp88, 0x2903B009); + func_8007C120(bossA6->obj.pos.x, bossA6->obj.pos.y, bossA6->obj.pos.z + 150.0f, bossA6->vel.x, + bossA6->vel.y, bossA6->vel.z, 0.2f, 50); + } + if ((bossA6->swork[15] == 0) && (bossA6->swork[16] == 0) && (bossA6->swork[17] == 0)) { + Audio_KillSfx(&bossA6->sfxPos); + if (bossA6->swork[25] != 0) { + bossA6->swork[25]--; + if (bossA6->swork[25] != 0) { + bossA6->unk_060 -= 60; + } + } + if (bossA6->swork[25] != 0) { + bossA6->timer_058 = 50; + } else { + bossA6->timer_054 = 30; + bossA6->fwork[32] = 20.0f; + } + } + } + } + } +} + +void func_E16C50_8018BCD4(Vec3f* arg0, f32 arg1, f32 arg2, Vec3f* arg3, s32 arg4, f32 arg5, s32 arg6, f32 arg7) { + s32 i; + Vec3f sp90 = { 0.0f, 0.0f, 0.0f }; + + if (D_E16C50_801C22F0.unk_24 != 0.0f) { + RCP_SetupDL(&gMasterDisp, 0x17); + if (D_E16C50_801C22F0.unk_24 != 255.0f) { + RCP_SetupDL(&gMasterDisp, 0x47); + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, (s32) D_E16C50_801C22F0.unk_24); + } else if (arg4 != 0) { + RCP_SetupDL(&gMasterDisp, 0x1B); + if (arg7 < 18.0f) { + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 0, 255, 255); + } else { + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 0, 255); + } + } + Matrix_Push(&gGfxMatrix); + Matrix_Push(&gCalcMatrix); + Matrix_Copy(gCalcMatrix, &gIdentityMatrix); + Matrix_RotateZ(gCalcMatrix, 0.017453292f * arg1, 1); + Matrix_Translate(gCalcMatrix, 0.0f, 100.0f, -223.0f, 1); + Matrix_RotateX(gCalcMatrix, 0.017453292f * arg2, 1); + for (i = 0; i < arg6; i++) { + Matrix_Push(&gGfxMatrix); + Matrix_Push(&gCalcMatrix); + if (i == 11) { + Matrix_Scale(gCalcMatrix, 1.5f, 1.5f, 1.5f, 1); + Matrix_Mult(gGfxMatrix, gCalcMatrix, 1); + Matrix_SetGfxMtx(&gMasterDisp); + GSGM_BACK(); + gSPDisplayList(gMasterDisp++, D_600F1F0); + Matrix_MultVec3f(gCalcMatrix, &sp90, arg3); + } else { + Matrix_Scale(gCalcMatrix, 2.0f, 2.0f, 2.0f, 1); + Matrix_Mult(gGfxMatrix, gCalcMatrix, 1); + Matrix_SetGfxMtx(&gMasterDisp); + GCGM_BACK(); + gSPDisplayList(gMasterDisp++, D_6015EE0); + if (arg6 != 12) { + Matrix_MultVec3f(gCalcMatrix, &sp90, arg3); + } + } + Matrix_Pop(&gGfxMatrix); + Matrix_Pop(&gCalcMatrix); + Matrix_RotateY(gCalcMatrix, arg0[i].y * 0.017453292f, 1); + Matrix_RotateX(gCalcMatrix, arg0[i].x * 0.017453292f, 1); + Matrix_Translate(gCalcMatrix, 0.0f, 0.0f, arg5, 1); + } + Matrix_Pop(&gGfxMatrix); + } +} + +void func_E16C50_8018C0D0(f32* arg0, f32 arg1, Vec3f* arg2, f32 arg3, s32 arg4) { + s32 i; + Vec3f spB0 = { 0.0f, 0.0f, 0.0f }; + f32 spAC; + f32 var_fs3 = 5.0f; + + if (!(gFrameCount & 1)) { + spAC = 0.0f; + } else { + spAC = 180.0f; + var_fs3 = 5.0f - (2.0f * (var_fs3 / 10.0f)); + } + Matrix_Push(&gGfxMatrix); + Matrix_Push(&gCalcMatrix); + Matrix_Copy(gCalcMatrix, &gIdentityMatrix); + GCGM_BACK(); + Matrix_RotateZ(gCalcMatrix, (D_E16C50_801C22F0.unk_34 + arg1) * 0.017453292f, 1); + Matrix_Translate(gCalcMatrix, 0.0f, -360.0f, 120.0f, 1); + Matrix_RotateX(gCalcMatrix, -(90.0f - arg3) * 0.017453292f, 1); + Matrix_Scale(gCalcMatrix, 0.7f, 0.7f, 0.7f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + for (i = 0; i < 5; i++) { + Matrix_Push(&gGfxMatrix); + Matrix_Push(&gCalcMatrix); + if (i == 4) { + Matrix_RotateX(gCalcMatrix, 1.3962634f, 1); + Matrix_RotateX(gCalcMatrix, (90.0f - arg3) * 0.017453292f, 1); + Matrix_Scale(gCalcMatrix, var_fs3, var_fs3, 1.0f, 1); + Matrix_Mult(gGfxMatrix, gCalcMatrix, 1); + Matrix_SetGfxMtx(&gMasterDisp); + RCP_SetupDL(&gMasterDisp, 0x31); + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, (s32) D_E16C50_801C22F0.r[arg4], (s32) D_E16C50_801C22F0.g[arg4], + (s32) D_E16C50_801C22F0.b[arg4], 255); + gDPSetEnvColor(gMasterDisp++, 255, 0, 0, 255); + gSPDisplayList(gMasterDisp++, D_1024AC0); + Matrix_MultVec3f(gCalcMatrix, &spB0, arg2); + } else { + RCP_SetupDL(&gMasterDisp, 0x2F); + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 64, 64, 192); + Matrix_Translate(gCalcMatrix, 0.0f, -60.0f, 0.0f, 1); + Matrix_Scale(gCalcMatrix, 2.0f, 3.0f, 1.0f, 1); + Matrix_RotateY(gCalcMatrix, 0.017453292f * spAC, 1); + Matrix_Mult(gGfxMatrix, gCalcMatrix, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_102F5E0); + } + Matrix_Pop(&gCalcMatrix); + Matrix_Pop(&gGfxMatrix); + Matrix_Translate(gCalcMatrix, 0.0f, -120.0f, 0.0f, 1); + Matrix_RotateX(gCalcMatrix, -0.34906584f, 1); + Matrix_RotateZ(gCalcMatrix, arg0[i] * 0.017453292f, 1); + } + Matrix_Pop(&gCalcMatrix); + Matrix_Pop(&gGfxMatrix); +} + +#ifdef NON_MATCHING +void func_E16C50_8018C54C(Boss* bossA6) { + Vec3f spD0[30]; + Vec3f spC4; + Vec3f spB8; + Vec3f spAC; + s32 i; + s32 j; + + if (bossA6->unk_04E == 0) { + RCP_SetupDL(&gMasterDisp, 0x31); + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, (s32) D_E16C50_801C22F0.unk_24); + gDPSetEnvColor(gMasterDisp++, 255, 255, 0, 255); + Matrix_Scale(gGfxMatrix, 10.0f, 10.0f, 10.0f, 1); + Matrix_RotateZ(gGfxMatrix, bossA6->fwork[0x21] * 0.017453292f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_101C2E0); + } else if (D_E16C50_801C22F0.unk_24 != 0.0f) { + Animation_GetFrameData(&D_6018994, 0, spD0); + if (D_E16C50_801C22F0.unk_24 != 255.0f) { + RCP_SetupDL(&gMasterDisp, 0x47); + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, (s32) D_E16C50_801C22F0.unk_24); + spAC.x = 0.0f; + if ((gFrameCounter & 1) == 0) { + spAC.x = 0.0f; + } + spAC.y = spAC.z = 0.0f; + Matrix_RotateZ(gCalcMatrix, gFrameCount * 6.0f * 0.017453292f, 0); + Matrix_MultVec3f(gCalcMatrix, &spAC, &spB8); + Matrix_Translate(gGfxMatrix, spB8.x, spB8.y, 0.0f, 1); + Matrix_Scale(gGfxMatrix, bossA6->unk_3F8, bossA6->unk_3F8, bossA6->unk_3F8, 1); + Matrix_RotateZ(gGfxMatrix, gFrameCount * 10.0f * 0.017453292f, 1); + Matrix_Scale(gGfxMatrix, bossA6->fwork[0x22], bossA6->fwork[0x23], 1.0f, 1); + Matrix_RotateZ(gGfxMatrix, -(f32) gFrameCount * 10.0f * 0.017453292f, 1); + Matrix_Scale(gGfxMatrix, bossA6->fwork[0x22], bossA6->fwork[0x23], 1.0f, 1); + } else { + RCP_SetupDL(&gMasterDisp, 0x1B); + if (bossA6->timer_05C & 1) { + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 0, 0, 255); + } else { + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, (s32) D_E16C50_801C22F0.unk_28[0], + (s32) D_E16C50_801C22F0.unk_28[2], (s32) D_E16C50_801C22F0.unk_28[1], 255); + } + } + spD0[3].z -= bossA6->fwork[0]; + spD0[4].z -= bossA6->fwork[0]; + spD0[5].z -= bossA6->fwork[0]; + Animation_DrawSkeleton(1, D_6018BA0, spD0, NULL, NULL, &bossA6->index, &gIdentityMatrix); + if (bossA6->unk_3F8 >= 1.0f) { + for (i = 0; i < 3; i++) { + if ((bossA6->swork[33 + i] == 0) && (bossA6->unk_04E != 3) && (D_E16C50_801C2250.unk_00[2 + i] == 0) && + !(gFrameCount & 3) && (bossA6->swork[0x1B + i] != 0) && (D_80177854 != 0x64)) { + Matrix_RotateY(gCalcMatrix, bossA6->obj.rot.y * 0.017453292f, 0); + Matrix_RotateX(gCalcMatrix, bossA6->obj.rot.x * 0.017453292f, 1); + Matrix_RotateZ(gCalcMatrix, bossA6->obj.rot.z * 0.017453292f, 1); + Matrix_MultVec3f(gCalcMatrix, &bossA6->vwork[1 + i], &spC4); + func_8007D0E0(bossA6->obj.pos.x + spC4.x, bossA6->obj.pos.y + spC4.y, bossA6->obj.pos.z + spC4.z, + 20.0f); + spB8.x = bossA6->obj.pos.x + spC4.x; + spB8.y = bossA6->obj.pos.y + spC4.y; + spB8.z = bossA6->obj.pos.z + spC4.z; + if (D_E16C50_801C2250.unk_00[0x1A] == 0) { + func_8007A6F0(&spB8, 0x2903B009); + } + D_E16C50_801C2250.unk_00[0x1A]++; + D_E16C50_801C2250.unk_00[0x1A] &= 1; + bossA6->swork[0x1B + i] -= 1; + if (bossA6->swork[0x1B + i] <= 0) { + bossA6->swork[0x12 + i] = 4; + bossA6->swork[0x26 + i] = 1; + bossA6->fwork[10 + i] = bossA6->fwork[19 + i] = bossA6->fwork[13 + i] = bossA6->fwork[22 + i] = + 0.0f; + bossA6->fwork[25 + i] = -90.0f; + for (j = 0; j < 12; j++) { + if (i == 0) { + D_E16C50_801BED70[j].x = 0.0f; + D_E16C50_801BED70[j].y = 0.0f; + D_E16C50_801BEE00[j].x = 0.0f; + D_E16C50_801BEE00[j].y = 0.0f; + D_E16C50_801BEE90[j] = 3.0f; + D_E16C50_801BEEC0[j] = 3.0f; + } + if (i == 1) { + D_E16C50_801BEEF0[j].x = 0.0f; + D_E16C50_801BEEF0[j].y = 0.0f; + D_E16C50_801BEF80[j].x = 0.0f; + D_E16C50_801BEF80[j].y = 0.0f; + D_E16C50_801BF010[j] = 3.0f; + D_E16C50_801BF040[j] = 3.0f; + } + if (i == 2) { + D_E16C50_801BF070[j].x = 0.0f; + D_E16C50_801BF070[j].y = 0.0f; + D_E16C50_801BF100[j].x = 0.0f; + D_E16C50_801BF100[j].y = 0.0f; + D_E16C50_801BF190[j] = 3.0f; + D_E16C50_801BF1C0[j] = 3.0f; + } + } + } + } + } + func_E16C50_8018BCD4(D_E16C50_801BED70, 0.0f, bossA6->fwork[0x19], &bossA6->vwork[1], bossA6->swork[0] & 1, + bossA6->fwork[0xA] + bossA6->fwork[0x13], (s32) bossA6->swork[0x1B], bossA6->fwork[0]); + func_E16C50_8018BCD4(D_E16C50_801BEEF0, -120.0f, bossA6->fwork[0x1A], &bossA6->vwork[2], + bossA6->swork[1] & 1, bossA6->fwork[0xB] + bossA6->fwork[0x14], + (s32) bossA6->swork[0x1C], bossA6->fwork[0]); + func_E16C50_8018BCD4(D_E16C50_801BF070, 120.0f, bossA6->fwork[0x1B], &bossA6->vwork[3], + bossA6->swork[2] & 1, bossA6->fwork[0xC] + bossA6->fwork[0x15], + (s32) bossA6->swork[0x1D], bossA6->fwork[0]); + if ((bossA6->swork[0xF] != 0) && (bossA6->unk_04E >= 3) && (D_E16C50_801C22F0.unk_24 == 255.0f) && + (D_E16C50_801C2250.unk_00[0] == 0)) { + func_E16C50_8018C0D0(D_E16C50_801BF1F0, 0.0f, &bossA6->vwork[4], bossA6->fwork[0], 0); + } + if ((bossA6->swork[0x10] != 0) && (bossA6->unk_04E >= 3) && (D_E16C50_801C22F0.unk_24 == 255.0f) && + (D_E16C50_801C2250.unk_00[0] == 0)) { + func_E16C50_8018C0D0(D_E16C50_801BF220, -120.0f, &bossA6->vwork[5], bossA6->fwork[0], 1); + } + if ((bossA6->swork[0x11] != 0) && (bossA6->unk_04E >= 3) && (D_E16C50_801C22F0.unk_24 == 255.0f) && + (D_E16C50_801C2250.unk_00[0] == 0)) { + func_E16C50_8018C0D0(D_E16C50_801BF250, 120.0f, &bossA6->vwork[6], bossA6->fwork[0], 2); + } + if (bossA6->swork[0x19] != 0) { + j = bossA6->swork[0x19] - 1; + if ((bossA6->timer_058 != 0) && !(bossA6->timer_058 & 3)) { + Audio_PlaySfx(0x29034003, &bossA6->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } + if (bossA6->timer_058 == 1) { + if (bossA6->swork[0x19] == 2) { + func_800BA808(gMsg_ID_7085, RCID_FALCO); + } else if (bossA6->swork[0x19] == 1) { + func_800BA808(gMsg_ID_7086, RCID_SLIPPY); + } + } + if (bossA6->swork[0x16] != D_E16C50_801BF310[j]) { + if (bossA6->swork[0x16] < D_E16C50_801BF310[j]) { + bossA6->swork[0x16]++; + } else { + bossA6->swork[0x16]--; + } + } + if (bossA6->swork[0x17] != D_E16C50_801BF31C[j]) { + if (bossA6->swork[0x17] < D_E16C50_801BF31C[j]) { + bossA6->swork[0x17]++; + } else { + bossA6->swork[0x17]--; + } + } + if (bossA6->swork[0x18] != D_E16C50_801BF328[j]) { + if (bossA6->swork[0x18] < D_E16C50_801BF328[j]) { + bossA6->swork[0x18]++; + } else { + bossA6->swork[0x18]--; + } + } + } else { + Math_SmoothStepToF(&bossA6->fwork[0x1D], 0.0f, 1.0f, 10.0f, 0.0001f); + if ((bossA6->timer_054 == 0) && (bossA6->swork[0x24] == 4) && (D_E16C50_801C2250.unk_00[0x1F] == 0)) { + func_800BA808(gMsg_ID_7087, 0x1E); + bossA6->swork[0x24] = 5; + D_E16C50_801C2250.unk_00[0x1F]++; + D_E16C50_801C2250.unk_00[0x1F] &= 1; + } + } + } + Matrix_Push(&gGfxMatrix); + RCP_SetupDL(&gMasterDisp, 0x47); + Matrix_Translate(gGfxMatrix, 0.0f, 2.0f, 70.0f, 1); + Matrix_Scale(gGfxMatrix, 1.7f, 1.7f, 1.7f, 1); + if (bossA6->timer_05C & 1) { + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 0, 0, 255); + } else { + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, (s32) D_E16C50_801C22F0.unk_24); + } + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_601B2B0); + Matrix_Pop(&gGfxMatrix); + RCP_SetupDL(&gMasterDisp, 0x47); + if (D_E16C50_801C22F0.unk_24 != 255.0f) { + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, bossA6->swork[0x16], bossA6->swork[0x17], bossA6->swork[0x18], + (s32) D_E16C50_801C22F0.unk_28[-1]); + } else { + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, bossA6->swork[0x16], bossA6->swork[0x17], bossA6->swork[0x18], + (s32) bossA6->fwork[0x1D]); + } + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, 74.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_6011910); + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, 74.0f, 1); + } +} +#else +void func_E16C50_8018C54C(Boss* bossA6); +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/fox_a6/func_E16C50_8018C54C.s") +#endif + +void func_E16C50_8018D3CC(s32 arg0, f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel, f32 xRot, f32 yRot, + f32 zRot) { + s32 i; + + for (i = 0; i < 10; i++) { + if (gPlayerShots[i].obj.status == 0) { + PlayerShot_Initialize(&gPlayerShots[i]); + gPlayerShots[i].vel.z = zVel; + gPlayerShots[i].vel.x = xVel; + gPlayerShots[i].vel.y = yVel; + gPlayerShots[i].obj.pos.x = xPos; + gPlayerShots[i].obj.pos.y = yPos; + gPlayerShots[i].obj.pos.z = zPos; + gPlayerShots[i].obj.status = 1; + gPlayerShots[i].obj.rot.x = xRot + 180.0f; + gPlayerShots[i].obj.rot.y = yRot; + gPlayerShots[i].obj.rot.z = -zRot; + gPlayerShots[i].unk_58 = 1; + gPlayerShots[i].unk_60 = 0; + gPlayerShots[i].obj.id = PLAYERSHOT_1; + gPlayerShots[i].unk_64 = 150; + gPlayerShots[i].playerNum = 100; + + Audio_PlaySfx(0x2900000D, &gPlayerShots[i].sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + break; + } + } +} + +void func_E16C50_8018D4E0(Object_2F4* obj2F4) { + s32 i; + + func_8007BFFC(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, 0.0f, 0.0f, 0.0f, 4.0f, 0x14); + func_8007D2C8(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, 7.0f); + func_8007B344(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, 6.0f, 5); + Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); + for (i = 0; i < 15; i++) { + func_800794CC(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, 1.0f); + } + func_8007A6F0(&obj2F4->obj.pos, 0x2903B009); +} + +void func_E16C50_8018D5C8(void) { + s32 i = 0; + + Object_2F4_Initialize(&gObjects2F4[i]); + gObjects2F4[i].obj.status = 1; + gObjects2F4[i].obj.pos.x = 1600.0f; + gObjects2F4[i].obj.pos.y = 3750.0f; + gObjects2F4[i].obj.pos.z = 13000.0f; + gObjects2F4[i].unk_0B6 = 1; + gObjects2F4[i].unk_0B8 = 90; + gObjects2F4[i].unk_114 = 0.0f; + gObjects2F4[i].obj.id = OBJ_2F4_195; + Object_SetInfo(&gObjects2F4[i].info, gObjects2F4[i].obj.id); + Audio_PlaySfx(0x11030010, &gObjects2F4[i].sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); +} + +void func_E16C50_8018D694(Object_2F4* obj2F4, s32 arg1) { + Vec3f sp2C[5] = { + { -150.0f, 0.0f, 200.0f }, { 0.0f, 50.0f, 0.0f }, { 150.0f, -50.0f, 100.0f }, + { -350.0f, 100.0f, 300.0f }, { 100.0f, -300.0f, 100.0f }, + }; + + Object_2F4_Initialize(obj2F4); + obj2F4->obj.status = 2; + obj2F4->obj.id = OBJ_2F4_195; + obj2F4->obj.pos.x = sp2C[arg1].x + 100.0f; + obj2F4->obj.pos.y = sp2C[arg1].y + 350.0f; + obj2F4->obj.pos.z = sp2C[arg1].z + 1000.0f; + obj2F4->unk_0B8 = 1; + obj2F4->unk_0B6 = 28; + obj2F4->unk_07C = 1; + obj2F4->unk_0F4.y = 90.0f; + obj2F4->unk_114 = 1.5f; + obj2F4->unk_130 = Rand_ZeroOneSeeded() * 360.0f; + obj2F4->unk_134 = Rand_ZeroOneSeeded() * 360.0f; + obj2F4->unk_138 = Rand_ZeroOneSeeded() * 360.0f; + Object_SetInfo(&obj2F4->info, obj2F4->obj.id); + Audio_PlaySfx(0x31000011, &obj2F4->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); +} + +void func_E16C50_8018D804(Object_2F4* obj2F4, s32 arg1) { + Vec3f sp2C[3] = { + { -200.0f, 0.0f, -500.0f }, + { 200.0f, 30.0f, -600.0f }, + { 50.0f, -90.0f, -700.0f }, + }; + Player* player = &gPlayer[0]; + + Object_2F4_Initialize(obj2F4); + obj2F4->obj.status = 2; + obj2F4->obj.id = OBJ_2F4_195; + obj2F4->obj.pos.x = sp2C[arg1].x + player->pos.x; + obj2F4->obj.pos.y = sp2C[arg1].y + player->pos.y; + obj2F4->obj.pos.z = sp2C[arg1].z + player->pos.z; + obj2F4->unk_0B8 = 5; + obj2F4->unk_07C = 1; + obj2F4->unk_114 = 0.0f; + Object_SetInfo(&obj2F4->info, obj2F4->obj.id); + Audio_PlaySfx(0x3100000C, &obj2F4->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); +} + +void func_E16C50_8018D920(Vec3f* arg0) { + f32 sp6C = arg0->x - arg0->x; + f32 sp68 = arg0->y - arg0->y; + f32 sp64 = arg0->z - 1000.0f - arg0->z; + f32 sp60 = Math_RadToDeg(Math_Atan2F(sp6C, sp64)); + f32 sp5C = Math_RadToDeg(-Math_Atan2F(sp68, sqrtf(SQ(sp6C) + SQ(sp64)))); + Vec3f sp50; + Vec3f sp44; + + Matrix_RotateY(gCalcMatrix, 0.017453292f * sp60, 0); + Matrix_RotateX(gCalcMatrix, 0.017453292f * sp5C, 1); + sp50.x = 0.0f; + sp50.y = 0.0f; + sp50.z = 100.0f; + Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp50, &sp44); + func_E16C50_8018D3CC(100, arg0->x, arg0->y, arg0->z, sp44.x, sp44.y, sp44.z, sp5C, sp60, 0.0f); +} + +void func_E16C50_8018DA58(Object_2F4* obj2F4) { + Vec3f sp5C; + Vec3f sp50; + f32 sp4C; + f32 sp48; + f32 sp44; + f32 sp40; + f32 sp3C; + f32 sp38; + + switch (obj2F4->unk_0B8) { /* irregular */ + case 1: + obj2F4->unk_130 += 2.5f; + obj2F4->unk_0F4.z = __sinf(obj2F4->unk_130 * 0.017453292f) * 10.0f; + obj2F4->unk_134 += 1.0f; + obj2F4->obj.pos.y += __sinf(obj2F4->unk_134 * 0.017453292f) * 1.5f; + obj2F4->unk_138 += 1.0f; + obj2F4->obj.pos.z += __cosf(obj2F4->unk_138 * 0.017453292f) * 1.5f; + break; + case 2: + Math_SmoothStepToF(&obj2F4->unk_0F4.z, -180.0f, 0.1f, 3.0f, 0.0f); + break; + case 3: + Math_SmoothStepToF(&obj2F4->unk_0F4.z, -45.0f, 0.05f, 2.0f, 0.0f); + Math_SmoothStepToAngle(&obj2F4->unk_0F4.y, 340.0f, 0.05f, 2.4f, 0.0f); + Math_SmoothStepToF(&obj2F4->unk_0F4.x, 3.0f, 0.05f, 1.0f, 0.0f); + Math_SmoothStepToF(&obj2F4->unk_114, 30.0f, 0.1f, 3.0f, 0.0f); + break; + case 6: + case 11: + case 16: + obj2F4->unk_0B8++; + Audio_PlaySfx(0x09000002, &obj2F4->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + obj2F4->unk_188 = 5.0f; + /* fallthrough */ + case 7: + case 12: + case 17: + obj2F4->unk_07C = 2; + Math_SmoothStepToF(&obj2F4->unk_114, 50.0f, 0.1f, 3.0f, 0.01f); + switch (obj2F4->unk_0B8) { + case 7: + sp48 = -100.0f; + sp4C = 100.0f; + sp44 = -999.0f; + break; + case 12: + sp4C = -100.0f; + sp48 = -100.0f; + sp44 = -999.0f; + break; + case 17: + sp48 = -100.0f; + sp4C = 100.0f; + sp44 = -999.0f; + break; + } + sp3C = Math_RadToDeg(Math_Atan2F(sp4C, sp44)); + sp40 = Math_RadToDeg(-Math_Atan2F(sp48, sqrtf((sp4C * sp4C) + (sp44 * sp44)))); + if ((sp40 + 40.0f) >= 360.0f) { + sp40 -= 360.0f; + } + if (sp40 > 180.0f) { + sp40 = 0.0f; + } + sp38 = Math_SmoothStepToAngle(&obj2F4->unk_0F4.y, sp3C, 0.5f, 2.0f, 0.0001f) * 30.0f; + Math_SmoothStepToAngle(&obj2F4->unk_0F4.x, sp40, 0.5f, 2.0f, 0.0001f); + Math_SmoothStepToAngle(&obj2F4->unk_0F4.z, sp38, 0.1f, 5.0f, 0.0001f); + break; + case 91: + Math_SmoothStepToF(&obj2F4->obj.pos.y, 0.0f, 0.1f, 5.0f, 0.1f); + Math_SmoothStepToF(&obj2F4->obj.pos.z, 0.0f, 1.0f, 20.0f, 20.0f); + break; + case 90: + break; + } + Matrix_RotateY(gCalcMatrix, (obj2F4->unk_0F4.y + 180.0f) * 0.017453292f, 0); + Matrix_RotateX(gCalcMatrix, -(obj2F4->unk_0F4.x * 0.017453292f), 1); + sp5C.x = 0.0f; + sp5C.y = 0.0f; + sp5C.z = obj2F4->unk_114; + Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp5C, &sp50); + obj2F4->vel.x = sp50.x; + obj2F4->vel.y = sp50.y; + obj2F4->vel.z = sp50.z; + obj2F4->obj.rot.x = -obj2F4->unk_0F4.x; + obj2F4->obj.rot.y = obj2F4->unk_0F4.y + 180.0f; + obj2F4->obj.rot.z = -obj2F4->unk_0F4.z; +} + +void func_E16C50_8018DF74(Player* player) { + Vec3f sp74; + Vec3f sp68; + Vec3f sp5C; + f32 temp1; // 58 + f32 temp2; // 54 + f32 temp3; // 50 + f32 temp4; // 4C + + switch (player->unk_1D0) { + case 0: + D_80177A80 = 0; + player->unk_1D0 = 1; + Rand_SetSeed(1, 29000, 9876); + func_E16C50_8018D694(&gObjects2F4[1], 0); + func_E16C50_8018D694(&gObjects2F4[2], 1); + func_E16C50_8018D694(&gObjects2F4[6], 2); + func_E16C50_8018D694(&gObjects2F4[7], 3); + func_E16C50_8018D694(&gObjects2F4[8], 4); + func_E16C50_8018D5C8(); + player->pos.x = 0.0f; + player->pos.y = 350.0f; + player->pos.z = 16000.0f; + player->unk_0D0 = 30.0f; + if (gTeamShields[1] > 0) { + func_E16C50_8018D804(&gObjects2F4[3], 0); + } + if (gTeamShields[2] > 0) { + func_E16C50_8018D804(&gObjects2F4[4], 1); + } + if (gTeamShields[3] > 0) { + func_E16C50_8018D804(&gObjects2F4[5], 2); + } + gObjects2F4[0].unk_114 = 20.0f; + gObjects2F4[3].unk_114 = 30.0f; + gObjects2F4[4].unk_114 = 30.0f; + gObjects2F4[5].unk_114 = 30.0f; + D_80177A48[4] = 270.0f; + D_80177A48[5] = 1000.0f; + D_80177A48[6] = 1100.0f; + D_80177A48[3] = 0.001f; + /* fallthrough */ + case 1: + Math_SmoothStepToF(&gObjects2F4->obj.pos.y, 0.0f, 0.01f, 10.0f, 0.001f); + if (D_80177A80 < 490) { + sp74.x = 0.0f; + sp74.y = 0.0f; + sp74.z = D_80177A48[5]; + Matrix_Translate(gCalcMatrix, 0.0f, 350.0f, D_80177A48[6], 0); + Matrix_RotateY(gCalcMatrix, -(D_80177A48[4] * 0.017453292f), 1); + Matrix_MultVec3f(gCalcMatrix, &sp74, &sp68); + D_80177978 = sp68.x; + D_80177980 = sp68.y; + D_80177988 = sp68.z; + if (D_80177A80 < 200) { + Math_SmoothStepToF(&D_80177A48[4], 0.0f, 0.05f, 0.56f, 0.001f); + D_801779A0 = gObjects2F4[1].obj.pos.x; + D_801779B8 = gObjects2F4[1].obj.pos.y; + D_801779C0 = gObjects2F4[1].obj.pos.z; + D_80177A48[0] = 1.0f; + D_80177A48[1] = 1.0f; + } else { + Math_SmoothStepToF(&D_80177A48[4], 0.0f, 0.05f, 0.56f, 0.001f); + Math_SmoothStepToF(&D_80177A48[5], 0.0f, 0.003f, 100.0f, 0.001f); + Math_SmoothStepToF(&D_801779A0, player->pos.x, 0.01f, 20.0f, 0.0001f); + Math_SmoothStepToF(&D_801779B8, player->pos.y, 0.01f, 20.0f, 0.0001f); + Math_SmoothStepToF(&D_801779C0, player->pos.z - 2500.0f, 0.01f, 20.0f, 0.0001f); + D_80177A48[0] = 1.0f; + D_80177A48[1] = 1.0f; + } + } else { + Math_SmoothStepToF(&D_80177A48[3], 0.1f, 0.3f, 0.1f, 0.00001f); + temp1 = fabsf(player->pos.x - D_80177978) * D_80177A48[3]; + temp2 = fabsf(player->pos.y * player->unk_148 + 50.0f - D_80177980) * D_80177A48[3]; + temp3 = fabsf(player->pos.z + 400.0f - D_80177988) * D_80177A48[3]; + D_80177978 += temp1; + D_80177980 -= temp2; + D_80177988 -= temp3; + temp1 = fabsf(player->pos.x - D_801779A0) * D_80177A48[3]; + temp2 = fabsf(player->pos.y * player->unk_148 + 20.0f - D_801779B8) * D_80177A48[3]; + temp3 = fabsf(player->pos.z - 51.0f - D_801779C0) * D_80177A48[3]; + D_801779A0 += temp1; + D_801779B8 -= temp2; + D_801779C0 -= temp3; + D_80177A48[0] = 1.0f; + D_80177A48[1] = 1.0f; + } + if (D_80177A80 == 460) { + player->unk_190 = 2.0f; + player->unk_194 = 5.0f; + Audio_PlaySfx(0x09000002, &player->unk_460, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } + if (D_80177A80 >= 460) { + Math_SmoothStepToF(&player->unk_0D0, 50.0f, 0.1f, 3.0f, 0.01f); + } + if (player->pos.z < 30.0f) { + player->unk_0D0 = player->pos.z = 0.0f; + } + if (D_80177A80 == 540) { + D_80178488 = 1; + D_80177838 = 50; + player->pos.x = 0.0f; + player->pos.z = 0.0f; + player->pos.y = 350.0f; + player->unk_0D0 = D_80161A54; + player->unk_1D0 = 0; + player->timer_1F8 = 0; + + func_8001D444(0, 0x8007, 0, 0xFF); + player->state_1C8 = PLAYERSTATE_1C8_3; + } + break; + } + switch (D_80177A80) { + case 280: + func_8001D444(0, 0x33, 0, 0xFF); + break; + case 40: + func_800BA808(gMsg_ID_7005, RCID_CAIMAN_AREA6); + break; + case 155: + sp5C.x = player->pos.x; + sp5C.y = player->pos.y; + sp5C.z = player->pos.z; + func_E16C50_8018D920(&sp5C); + break; + case 176: + if (gTeamShields[1] > 0) { + func_E16C50_8018D920(&gObjects2F4[3].obj.pos); + } + break; + case 187: + if (gTeamShields[2] > 0) { + func_E16C50_8018D920(&gObjects2F4[4].obj.pos); + } + break; + case 198: + if (gTeamShields[3] > 0) { + func_E16C50_8018D920(&gObjects2F4[5].obj.pos); + } + break; + case 199: + func_E16C50_8018D4E0(&gObjects2F4[1]); + break; + case 210: + func_800BA808(gMsg_ID_7006, RCID_CAIMAN_AREA6); + break; + case 240: + gObjects2F4[2].unk_0B8 = 3; + break; + case 250: + gObjects2F4[6].unk_0B8 = 3; + break; + case 260: + gObjects2F4[7].unk_0B8 = 3; + break; + case 270: + gObjects2F4[8].unk_0B8 = 3; + break; + case 360: + func_800BA808(gMsg_ID_7011, RCID_FALCO); + break; + case 430: + gObjects2F4[5].unk_0B8 = 16; + break; + case 440: + gObjects2F4[4].unk_0B8 = 11; + break; + case 450: + gObjects2F4[3].unk_0B8 = 6; + break; + case 480: + func_800A6148(); + break; + } + Matrix_RotateY(gCalcMatrix, (player->unk_0E8 + player->unk_114 + 180.0f) * 0.017453292f, 0); + Matrix_RotateX(gCalcMatrix, -(player->unk_0E4 * 0.017453292f), 1); + if (player->state_1C8 != PLAYERSTATE_1C8_3) { + sp74.x = 0.0f; + sp74.y = 0.0f; + sp74.z = player->unk_0D0; + Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp74, &sp68); + player->vel.x = sp68.x; + player->vel.z = sp68.z; + player->vel.y = sp68.y; + player->pos.x += player->vel.x; + player->pos.y += player->vel.y; + player->pos.z += player->vel.z; + player->unk_138 = player->pos.z; + } + player->unk_0F8 = player->unk_0EC + player->unk_12C + player->unk_130; + Math_SmoothStepToF(&player->camEye.x, D_80177978, D_80177A48[0], 50000.0f, 0.001f); + Math_SmoothStepToF(&player->camEye.y, D_80177980, D_80177A48[0], 50000.0f, 0.001f); + Math_SmoothStepToF(&player->camEye.z, D_80177988, D_80177A48[0], 50000.0f, 0.001f); + Math_SmoothStepToF(&player->camAt.x, D_801779A0, D_80177A48[1], 50000.0f, 0.001f); + Math_SmoothStepToF(&player->camAt.y, D_801779B8, D_80177A48[1], 50000.0f, 0.001f); + Math_SmoothStepToF(&player->camAt.z, D_801779C0, D_80177A48[1], 50000.0f, 0.001f); +} + +void func_E16C50_8018EA88(Object_2F4* obj2F4) { + Object_2F4_Initialize(obj2F4); + obj2F4->obj.status = 2; + obj2F4->obj.id = OBJ_2F4_195; + obj2F4->obj.pos.x = 0.0f; + obj2F4->obj.pos.y = 0.0f; + obj2F4->obj.pos.z = gBosses[0].obj.pos.z + 500.0f; + obj2F4->unk_0B6 = 37; + obj2F4->unk_0B8 = 100; + obj2F4->unk_050 = 255; + obj2F4->unk_054 = 255; + obj2F4->unk_058 = 255; + obj2F4->unk_05C = 240; + obj2F4->unk_060 = 0; + obj2F4->unk_064 = 0; + obj2F4->unk_068 = 255; + obj2F4->unk_06C = 100; + obj2F4->unk_124.x = 1.0f; + obj2F4->scale = 1.0f; + Object_SetInfo(&obj2F4->info, obj2F4->obj.id); +} + +void func_E16C50_8018EB3C(Object_2F4* obj2F4) { + Player* player = &gPlayer[0]; + + Object_2F4_Initialize(obj2F4); + obj2F4->obj.status = 1; + obj2F4->obj.id = OBJ_2F4_195; + obj2F4->obj.pos.x = player->pos.x; + obj2F4->obj.pos.y = player->pos.y + 600.0f; + obj2F4->obj.pos.z = player->pos.z + 2800.0f; + obj2F4->unk_0B6 = 1; + obj2F4->unk_0B8 = 100; + obj2F4->unk_114 = 0.0f; + Object_SetInfo(&obj2F4->info, obj2F4->obj.id); + Audio_PlaySfx(0x11030010, &obj2F4->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + Audio_PlaySfx(0x31024059, &obj2F4->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); +} + +void func_E16C50_8018EC38(Object_2F4* obj2F4, s32 arg1) { + Vec3f sp2C[3] = { + { -150.0f, 40.0f, 75.0f }, + { 150.0f, 40.0f, 150.0f }, + { 38.0f, 88.0f, 225.0f }, + }; + Player* player = &gPlayer[0]; + + if (gTeamShields[arg1 + 1] > 0) { + Object_2F4_Initialize(obj2F4); + obj2F4->obj.status = 2; + obj2F4->obj.id = OBJ_2F4_195; + obj2F4->obj.pos.x = sp2C[arg1].x + player->pos.x; + obj2F4->obj.pos.y = sp2C[arg1].y + player->pos.y; + obj2F4->obj.pos.z = sp2C[arg1].z + player->pos.z; + obj2F4->unk_0B8 = 0x64; + obj2F4->unk_07C = 1; + obj2F4->unk_114 = 0.0f; + if (arg1 + 1 != 3) { + obj2F4->unk_088 = arg1 + 2; + } + Object_SetInfo(&obj2F4->info, obj2F4->obj.id); + Audio_PlaySfx(0x3100000C, &obj2F4->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } +} + +#ifdef NON_MATCHING +void func_E16C50_8018ED78(Player* player) { + s32 i; + Vec3f spf90; + f32 sp8C; + f32 sp88; + f32 sp84; + Vec3f sp78; + Vec3f sp6C; + s32 pad[2]; + + switch (player->unk_1D0) { /* irregular */ + case 0: + D_80177A80 = 0; + player->unk_1D0 = 1; + player->wings.unk_2C = 1; + player->unk_194 = 5.0f; + player->unk_190 = 2.0f; + player->unk_0D0 = 60.0f; + Audio_PlaySfx(0x09000002, &player->unk_460, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + D_80177A48[3] = 0.0f; + /* fallthrough */ + case 1: + Math_SmoothStepToAngle(&player->unk_130, 0.0f, 0.05f, 1.2f, 0.0001f); + Math_SmoothStepToAngle(&player->unk_12C, 0.0f, 0.05f, 1.2f, 0.0001f); + Math_SmoothStepToF(&player->unk_034, 0.0f, 0.1f, 3.0f, 0.0f); + Math_SmoothStepToAngle(&player->unk_4D8, 0.0f, 0.1f, 20.0f, 0.0f); + if (D_80177A80 < 60) { + spf90.x = -100.0f; + spf90.y = -100.0f; + spf90.z = -1000.0f; + + sp8C = Math_RadToDeg(Math_Atan2F(spf90.x, spf90.z)); + sp88 = Math_RadToDeg(-Math_Atan2F(spf90.y, sqrtf(SQ(spf90.x) + SQ(spf90.z)))); + if ((sp88 + 40.0f) >= 360.0f) { + sp88 -= 360.0f; + } + if (sp88 > 180.0f) { + sp88 = 0.0f; + } + sp84 = Math_SmoothStepToAngle(&player->unk_0E8, sp8C, 0.5f, 2.0f, 0.0001f) * 30.0f; + Math_SmoothStepToAngle(&player->unk_0E4, sp88, 0.1f, 5.0f, 0.0001f); + Math_SmoothStepToAngle(&player->unk_0EC, sp84, 0.1f, 5.0f, 0.0001f); + } + if (D_80177A80 == 60) { + player->unk_234 = 0; + player->unk_0D0 = 0.0f; + } + Math_SmoothStepToF(&D_80177978, gBosses[0].obj.pos.x, 0.05f, 1000.0f, 0.001f); + Math_SmoothStepToF(&D_80177980, gBosses[0].obj.pos.y, 0.05f, 1000.0f, 0.001f); + Math_SmoothStepToF(&D_80177988, gBosses[0].obj.pos.z + D_80177D20, 0.05f, 10.0f, 0.0001f); + player->camEye.x = D_80177978; + player->camEye.y = D_80177980; + player->camEye.z = D_80177988; + + D_801779A0 = gBosses[0].obj.pos.x; + D_801779B8 = gBosses[0].obj.pos.y; + D_801779C0 = gBosses[0].obj.pos.z + D_80177D20; + D_80177A48[0] = 0.04f; + if (D_80177A80 == 140) { + func_E16C50_8018EA88(&gObjects2F4[4]); + func_E16C50_8018EA88(&gObjects2F4[5]); + func_E16C50_8018EA88(&gObjects2F4[6]); + gObjects2F4[4].unk_124.x = 0.5f; + } + if (D_80177A80 >= 200) { + if (D_80178340 == 255) { + player->unk_1D0 = 2; + func_800A6148(); + } else { + D_80178348 = D_80178350 = D_80178354 = 255; + D_80178358 = 255; + D_8017835C = 16; + } + } else if ((D_80177A80 == 131) || (D_80177A80 == 134) || (D_80177A80 == 137)) { + D_80178348 = D_80178350 = D_80178354 = 255; + D_80178340 = 192; + } else { + D_80178348 = D_80178350 = D_80178354 = D_80178340 = 0; + } + if ((D_80177A80 == 146) || (D_80177A80 == 150)) { + Audio_PlaySfx(0x2940F026, &gObjects2F4[5].sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } + if (D_80177A80 >= 147) { + gObjects2F4[4].unk_05C -= 4; + if (gObjects2F4[4].unk_05C < 0) { + gObjects2F4[4].unk_05C = 0; + } + gObjects2F4[4].unk_06C -= 4; + if (gObjects2F4[4].unk_06C < 0) { + gObjects2F4[4].unk_06C = 0; + } + Math_SmoothStepToF(&gObjects2F4[5].unk_124.x, 450.0f, 0.03f, 1000.0f, 1.0f); + Math_SmoothStepToF(&gObjects2F4[5].scale, 450.0f, 0.03f, 1000.0f, 1.0f); + } + if (D_80177A80 >= 161) { + Math_SmoothStepToF(&gObjects2F4[6].unk_124.x, 350.0f, 0.03f, 1000.0f, 1.0f); + Math_SmoothStepToF(&gObjects2F4[6].scale, 350.0f, 0.03f, 1000.0f, 1.0f); + } + if (D_80177A80 >= 141) { + gObjects2F4[4].obj.pos.x = gObjects2F4[5].obj.pos.x = gObjects2F4[6].obj.pos.x = gBosses[0].obj.pos.x; + gObjects2F4[4].obj.pos.y = gObjects2F4[5].obj.pos.y = gObjects2F4[6].obj.pos.y = gBosses[0].obj.pos.y; + gObjects2F4[4].obj.pos.z = gObjects2F4[5].obj.pos.z = gObjects2F4[6].obj.pos.z = gBosses[0].obj.pos.z; + Math_SmoothStepToF(&gObjects2F4[4].scale, 600.0f, 0.03f, 1000.0f, 0.01f); + } + break; + case 2: + if (D_80177A80 < 300) { + break; + } + if (D_80177A80 == 300) { + player->unk_234 = 1; + player->pos.x = 0.0f; + player->pos.y = 200.0f; + player->pos.z = 1000.0f; + player->unk_08C = player->unk_0EC = player->unk_0E8 = player->unk_0E4 = player->unk_0D0 = + player->unk_110 = player->unk_034 = player->unk_12C = player->unk_130 = player->unk_4D8 = 0.0f; + + D_8015F984 = (D_80177D20 * 0.00004f) + 0.5f; + func_E16C50_8018EC38(&gObjects2F4[1], 0); + func_E16C50_8018EC38(&gObjects2F4[2], 1); + func_E16C50_8018EC38(&gObjects2F4[3], 2); + func_E16C50_8018EB3C(&gObjects2F4[0]); + D_80177A48[5] = 300.0f; + D_80177A48[4] = 0.0f; + D_80177A48[9] = 50.0f; + player->camAt.x = D_801779A0 = player->pos.x; + player->camAt.y = D_801779B8 = 0.0f; + player->camAt.z = D_801779C0 = player->pos.z + 50.0f + D_80177D20; + } + if (D_80178340 != 0) { + D_80178358 = 0; + D_8017835C = 4; + } else { + player->unk_1D0 = 3; + } + case 3: + Math_SmoothStepToF(&player->pos.y, 0.0f, 0.01f, 10.0f, 0.001f); + Math_SmoothStepToF(&gObjects2F4[1].obj.pos.y, 40.0f, 0.01f, 10.0f, 0.001f); + Math_SmoothStepToF(&gObjects2F4[2].obj.pos.y, 40.0f, 0.01f, 10.0f, 0.001f); + Math_SmoothStepToF(&gObjects2F4[3].obj.pos.y, 88.0f, 0.01f, 10.0f, 0.001f); + Math_SmoothStepToF(&gObjects2F4[0].obj.pos.y, 60.0f, 0.01f, 2.0f, 0.001f); + if (D_80177A80 < 1077) { + D_80177A48[1] = player->pos.x; + D_80177A48[3] = player->pos.z; + } + if (D_80177A80 >= 940) { + Math_SmoothStepToF(&D_80177A48[9], 0.0f, 0.01f, 1000.0f, 0.001f); + } + if (D_80177A80 < 1077) { + D_80177A48[4] = D_80177A48[4] + 0.3f; + if (D_80177A48[4] >= 360.0f) { + D_80177A48[4] = D_80177A48[4] - 360.0f; + } + if (D_80177A48[4] < 0.0f) { + D_80177A48[4] = D_80177A48[4] + 360.0f; + } + D_801779A0 = player->pos.x; + D_801779B8 = 0.0f; + D_801779C0 = D_80177A48[9] + player->pos.z + D_80177D20; + D_80177A48[0] = 0.008f; + } else { + Math_SmoothStepToAngle(&D_80177A48[4], 0.0f, 0.1f, 10.0f, 0.001f); + Math_SmoothStepToF(&D_80177A48[5], 0.0f, 0.1f, 1000.0f, 0.001f); + D_8015F984 -= 0.005f; + D_801779A0 += 2.0f; + player->camAt.x = D_801779A0 = player->pos.x; + player->camAt.y = D_801779B8 = 0.0f; + player->camAt.z = D_801779C0 = D_80177A48[9] + player->pos.z + D_80177D20; + } + sp78.x = 0.0f; + sp78.y = 0.0f; + sp78.z = D_80177A48[5]; + Matrix_Translate(gCalcMatrix, D_80177A48[1], 0.0f, D_80177A48[3] + D_80177D20, 0); + Matrix_RotateY(gCalcMatrix, -(D_80177A48[4] * 0.017453292f), 1); + Matrix_MultVec3f(gCalcMatrix, &sp78, &sp6C); + player->camEye.x = D_80177978 = sp6C.x; + player->camEye.y = D_80177980 = sp6C.y; + player->camEye.z = D_80177988 = sp6C.z; + + if (D_80177A80 == 1076) { + Object_Kill(&gObjects2F4[0].obj, &gObjects2F4[0].sfxPos); + player->unk_190 = 2.0f; + player->unk_194 = 5.0f; + Audio_PlaySfx(0x09000002, &player->unk_460, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } + if (D_80177A80 >= 1090) { + D_80178348 = D_80178350 = D_80178354 = 0; + D_80178358 = 255; + D_8017835C = 8; + if (D_80178340 == 255) { + D_800D3180[3] = Play_CheckMedalStatus(300) + 1; + for (i = 1; i < 6; i++) { + D_80177C38[i] = gTeamShields[i]; + D_801778F0[i] = gSavedTeamShields[i]; + gSavedTeamShields[i] = gTeamShields[i]; + } + for (i = 1; i < 4; i++) { + if (D_80177C38[i] == 0) { + D_80177C38[i] = 255; + } + } + D_80161A94[0] = gGoldRingCount[0]; + func_8001CA24(0); + Audio_KillSfx(&player->unk_460); + func_800A6148(); + gNextGameState = 7; + gNextLevel = LEVEL_VENOM_2; + func_80088564(); + } + } + if (D_80177A80 == 1040) { + func_800182F4(0x105000FF); + func_800182F4(0x115000FF); + } + break; + } + switch (D_80177A80) { /* switch 1; irregular */ + case 380: /* switch 1 */ + func_8001D444(0, 38, 0, 255); + break; + case 550: /* switch 1 */ + D_80177840 = 100; + break; + case 700: /* switch 1 */ + D_80177830 = 1; + break; + case 900: /* switch 1 */ + D_80177830 = 0; + break; + case 940: /* switch 1 */ + func_800BA808(gMsg_ID_7093, RCID_FOX); + break; + case 1070: /* switch 1 */ + gObjects2F4[1].unk_188 = 5.0f; + Audio_PlaySfx(0x09000002, &gObjects2F4[1].sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + break; + case 1072: /* switch 1 */ + gObjects2F4[2].unk_188 = 5.0f; + Audio_PlaySfx(0x09000002, &gObjects2F4[2].sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + break; + case 1074: /* switch 1 */ + gObjects2F4[3].unk_188 = 5.0f; + Audio_PlaySfx(0x09000002, &gObjects2F4[3].sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + break; + } + if (D_80177A80 >= 1070) { + Math_SmoothStepToF(&gObjects2F4[1].unk_144, 50.0f, 0.1f, 1000.0f, 0.001f); + } + if (D_80177A80 >= 1072) { + Math_SmoothStepToF(&gObjects2F4[2].unk_144, 50.0f, 0.1f, 1000.0f, 0.001f); + } + if (D_80177A80 >= 1074) { + Math_SmoothStepToF(&gObjects2F4[3].unk_144, 50.0f, 0.1f, 1000.0f, 0.001f); + } + if (D_80177A80 >= 1076) { + Math_SmoothStepToF(&player->unk_0D0, 50.0f, 0.1f, 1000.0f, 0.001f); + } + Matrix_RotateY(gCalcMatrix, (player->unk_0E8 + player->unk_114 + 180.0f) * 0.017453292f, 0); + Matrix_RotateX(gCalcMatrix, -(player->unk_0E4 * 0.017453292f), 1); + sp78.x = 0.0f; + sp78.y = 0.0f; + sp78.z = player->unk_0D0; + Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp78, &sp6C); + player->vel.x = sp6C.x; + player->vel.z = sp6C.z; + player->vel.y = sp6C.y; + player->pos.x += player->vel.x; + player->pos.y += player->vel.y; + player->pos.z += player->vel.z; + player->unk_138 = player->pos.z; + player->unk_0F8 = player->unk_0EC + player->unk_12C + player->unk_130; + Math_SmoothStepToF(&player->camEye.x, D_80177978, D_80177A48[0], 50000.0f, 0.0001f); + Math_SmoothStepToF(&player->camEye.y, D_80177980, D_80177A48[0], 50000.0f, 0.0001f); + Math_SmoothStepToF(&player->camEye.z, D_80177988, D_80177A48[0], 50000.0f, 0.0001f); + Math_SmoothStepToF(&player->camAt.x, D_801779A0, D_80177A48[0], 50000.0f, 0.0001f); + Math_SmoothStepToF(&player->camAt.y, D_801779B8, D_80177A48[0], 50000.0f, 0.0001f); + Math_SmoothStepToF(&player->camAt.z, D_801779C0, D_80177A48[0], 50000.0f, 0.0001f); +} +#else +void func_E16C50_8018ED78(Player* player); +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/fox_a6/func_E16C50_8018ED78.s") +#endif diff --git a/src/overlays/ovl_E16C50/sf_aq.c b/src/overlays/ovl_E16C50/sf_aq.c new file mode 100644 index 00000000..a9e40284 --- /dev/null +++ b/src/overlays/ovl_E16C50/sf_aq.c @@ -0,0 +1,502 @@ +#include "global.h" + +void func_E16C50_801AC918(Object_8C*); +void func_E16C50_801AD6C0(Object_2F4*); +void func_E16C50_801AE168(Object_2F4*); +void func_E16C50_801AE3D8(Object_2F4*); +void func_E16C50_801AEB44(Object_2F4*); +void func_E16C50_801AFA5C(Object_2F4*); +void func_E16C50_801B099C(Object_2F4*); +void func_E16C50_801B0B60(Object_2F4*); +void func_E16C50_801B0EC0(Object_2F4*); +void func_E16C50_801B504C(Object_2F4*); +void func_E16C50_801B50E8(Object_2F4*); +void func_E16C50_801B619C(Object_2F4*); +void func_E16C50_801B638C(Object_2F4*); +void func_E16C50_801B6FF8(Object_2F4*); +void func_E16C50_801B7A24(Object_2F4*); +void func_E16C50_801B7C78(Object_2F4*); +void func_E16C50_801B90DC(Object_2F4*); +void func_E16C50_801B91A4(Object_2F4*); +void func_E16C50_801BA108(Object_2F4*); +void func_E16C50_801BA26C(Object_2F4*); +void func_E16C50_801BA4E4(Object_2F4*); +void func_E16C50_801BA6A4(Object_2F4*); +void func_E16C50_801BAD7C(Object_2F4*); +void func_E16C50_801BADF8(Object_2F4*); +void func_E16C50_801BB204(Object_2F4*); +void func_E16C50_801BB79C(Object_2F4*); +void func_E16C50_801BC930(Object_2F4*); +void func_E16C50_801BC9A0(Object_2F4*); +void func_E16C50_801BD264(Object_2F4*); +void func_E16C50_801BD54C(Object_2F4*); +void func_E16C50_801BDE6C(Object_2F4*); +void func_E16C50_801BE1FC(Object_80*); +void func_E16C50_801BE3F8(Object_2F4*); +void func_E16C50_801BEB1C(Object_2F4*); +void func_E16C50_801BEC68(Object_2F4*); +void func_E16C50_801BEC74(Object_2F4*); + +f32 D_E16C50_801BFB60 = 0.0f; +s32 D_E16C50_801BFB64[11] = { + 0, 0x1E, 0x1B, 0x18, 0x15, 0x12, 0xF, 0xC, 9, 6, 3, +}; +u8 D_E16C50_801BFB90[12] = { + 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, +}; +u32 D_E16C50_801BFB9C[3] = { 0x06015FF0, 0x06022110, 0x06015DD0 }; +f32 D_E16C50_801BFBA8[2] = { 40.0f, -40.0f }; +f32 D_E16C50_801BFBB0[3] = { 20.0f, 10.0f, 15.0f }; +f32 D_E16C50_801BFBBC[3] = { 8.0f, 27.0f, 42.0f }; +f32 D_E16C50_801BFBC8[3] = { 15.0f, 6.0f, 7.0f }; +f32 D_E16C50_801BFBD4[3] = { 358.0f, 12.0f, 352.0f }; +f32 D_E16C50_801BFBE0[3][4] = { + { 1.3f, 0.1f, 1.0f, 777.0f }, + { 0.7f, 0.5f, 5.0f, 777.0f }, + { 1.0f, 0.2f, 2.0f, 777.0f }, +}; +f32 D_E16C50_801BFC10[3][4] = { + { 0.6f, 0.1f, 1.0f, 777.0f }, + { 1.5f, 0.5f, 5.0f, 777.0f }, + { 1.0f, 0.2f, 2.0f, 777.0f }, +}; +f32 D_E16C50_801BFC40[3][4] = { + { 1.3f, 0.1f, 1.0f, 777.0f }, + { 0.7f, 0.5f, 5.0f, 777.0f }, + { 1.0f, 0.2f, 2.0f, 777.0f }, +}; +s32 D_E16C50_801BFC70[3] = { 0x12, 0x16, 0x2D }; +f32 D_E16C50_801BFC7C[3] = { 20.0f, 10.0f, 0.0f }; +f32 D_E16C50_801BFC88[3] = { 10.0f, 320.0f, 30.0f }; +Vec3f D_E16C50_801BFC94[6][4] = { + { { 1.0f, 1.0f, 1.0f }, { 0.9f, 0.9f, 0.9f }, { 1.0f, 1.0f, 1.0f }, { 1.0f, 1.0f, 1.0f } }, + { { 1.0f, 1.0f, 1.0f }, { 0.9f, 0.9f, 0.9f }, { 1.0f, 1.0f, 1.0f }, { 1.0f, 1.0f, 1.0f } }, + { { 1.0f, 1.0f, 1.0f }, { 0.9f, 0.9f, 0.9f }, { 1.0f, 1.0f, 1.0f }, { 1.0f, 1.0f, 1.0f } }, + { { 1.0f, 1.0f, 1.0f }, { 0.9f, 1.0f, 0.9f }, { 1.0f, 1.0f, 1.0f }, { 1.0f, 1.0f, 1.0f } }, + { { 1.0f, 1.0f, 1.0f }, { 0.9f, 1.0f, 0.9f }, { 1.0f, 1.0f, 1.0f }, { 1.0f, 1.0f, 1.0f } }, + { { 1.0f, 1.0f, 1.0f }, { 1.0f, 0.8f, 0.9f }, { 1.0f, 1.0f, 1.0f }, { 1.0f, 1.0f, 1.0f } }, +}; +s32 D_E16C50_801BFDB4[6][4] = { + { 1, 5, 0xF, 0x186A0 }, { 1, 5, 0xF, 0x186A0 }, { 1, 5, 0xF, 0x186A0 }, + { 1, 0xA, 0x14, 0x186A0 }, { 1, 0xA, 0x14, 0x186A0 }, { 1, 0xA, 0x14, 0x186A0 }, +}; +s32 D_E16C50_801BFE14 = 0; +Vec3f D_E16C50_801BFE18[6][4] = { + { { 0.4f, 0.4f, 0.4f }, { 0.4f, 0.4f, 0.4f }, { 0.4f, 0.4f, 0.4f }, { 0.4f, 0.4f, 0.4f } }, + { { 0.4f, 0.4f, 0.4f }, { 0.4f, 0.4f, 0.4f }, { 0.4f, 0.4f, 0.4f }, { 0.4f, 0.4f, 0.4f } }, + { { 0.4f, 0.4f, 0.4f }, { 0.4f, 0.4f, 0.4f }, { 0.4f, 0.4f, 0.4f }, { 0.4f, 0.4f, 0.4f } }, + { { 0.2f, 0.2f, 0.2f }, { 0.3f, 0.3f, 0.3f }, { 0.2f, 0.2f, 0.2f }, { 0.2f, 0.2f, 0.2f } }, + { { 0.2f, 0.2f, 0.2f }, { 0.2f, 0.2f, 0.2f }, { 0.2f, 0.2f, 0.2f }, { 0.2f, 0.2f, 0.2f } }, + { { 0.2f, 0.2f, 0.2f }, { 0.2f, 0.2f, 0.2f }, { 0.2f, 0.2f, 0.2f }, { 0.2f, 0.2f, 0.2f } }, +}; +Vec3f D_E16C50_801BFF38[6][4] = { + { { 1.0f, 1.0f, 1.0f }, { 5.0f, 5.0f, 5.0f }, { 10.0f, 10.0f, 10.0f }, { 5.0f, 5.0f, 5.0f } }, + { { 1.0f, 1.0f, 1.0f }, { 5.0f, 5.0f, 5.0f }, { 10.0f, 10.0f, 10.0f }, { 5.0f, 5.0f, 5.0f } }, + { { 1.0f, 1.0f, 1.0f }, { 3.0f, 3.0f, 3.0f }, { 2.0f, 2.0f, 2.0f }, { 1.0f, 1.0f, 1.0f } }, + { { 1.0f, 1.0f, 1.0f }, { 3.0f, 1.0f, 3.0f }, { 2.0f, 1.0f, 2.0f }, { 1.0f, 1.0f, 1.0f } }, + { { 1.0f, 1.0f, 1.0f }, { 3.0f, 1.0f, 3.0f }, { 2.0f, 1.0f, 2.0f }, { 1.0f, 1.0f, 1.0f } }, + { { 1.0f, 1.0f, 1.0f }, { 1.0f, 4.0f, 3.0f }, { 1.0f, 3.0f, 2.0f }, { 1.0f, 1.0f, 1.0f } }, +}; +f32 D_E16C50_801C0058 = 191.0f; +f32 D_E16C50_801C005C = 63.0f; +f32 D_E16C50_801C0060[14] = { + 50.0f, 8.0f, 50.0f, 8.0f, 10.0f, 1.0f, 20.0f, 2.0f, 20.0f, 2.0f, 20.0f, 2.0f, 50.0f, 2.0f, +}; +Vec3f D_E16C50_801C0098[2] = { + { 370.0f, -53.0f, 1085.0f }, + { -370.0f, -53.0f, 1085.0f }, +}; +f32 D_E16C50_801C00B0[3][4] = { + { 1.0f, 1.2f, 0.8f, 1.0f }, + { 1.0f, 1.2f, 0.9f, 1.0f }, + { 1.0f, 0.7f, 1.4f, 1.0f }, +}; +s32 D_E16C50_801C00E0[4] = { 1, 5, 8, 0x28 }; +f32 D_E16C50_801C00F0[3][4] = { + { 0.3f, 0.3f, 0.3f, 0.3f }, + { 0.3f, 0.3f, 0.3f, 0.3f }, + { 0.5f, 0.5f, 0.5f, 0.5f }, +}; +f32 D_E16C50_801C0120[3][4] = { + { 1.0f, 1.0f, 1.0f, 1.0f }, + { 1.0f, 1.0f, 1.0f, 1.0f }, + { 2.0f, 2.0f, 2.0f, 2.0f }, +}; +f32 D_E16C50_801C0150[4][4] = { + { 0.0f, 0.0f, 0.0f, 0.0f }, + { 0.0f, -25.5f, 0.0f, 0.0f }, + { -25.5f, 25.5f, -25.5f, 0.0f }, + { 25.5f, 0.0f, 25.5f, 0.0f }, +}; +f32 D_E16C50_801C0190[5] = { + 0.0f, -30.0f, 30.0f, -30.0f, 30.0f, +}; +Vec3f D_E16C50_801C01A4 = { 0.0f, 0.0f, 0.0f }; +Vec3f D_E16C50_801C01B0 = { 0.0f, 0.0f, 0.0f }; +Vec3f D_E16C50_801C01BC = { 340.0f, 600.0f, 1480.0f }; +Vec3f D_E16C50_801C01C8 = { -640.0f, 380.0f, 1520.0f }; +Vec3f D_E16C50_801C01D4 = { 760.0f, 340.0f, 1560.0f }; +Vec3f D_E16C50_801C01E0 = { 130.0f, 350.0f, 130.0f }; +Vec3f D_E16C50_801C01EC = { -130.0f, 350.0f, 130.0f }; +f32 D_E16C50_801C01F8[11] = { + 400.0f, 430.0f, 460.0f, 490.0f, 520.0f, 550.0f, 580.0f, 610.0f, 640.0f, 670.0f, 700.0f, +}; +f32 D_E16C50_801C0224[11] = { + 6.0f, 6.0f, 8.0f, 8.0f, 8.0f, 10.0f, 11.0f, 12.0f, 13.0f, 14.0f, 15.0f, +}; +Vec3f D_E16C50_801C0250 = { 0.0f, 0.0f, 0.0f }; +f32 D_E16C50_801C025C[2] = { 120.0f, 0.0f }; +s32 D_E16C50_801C0264[19] = { + 0, 0, 3, 4, 0, 5, 6, 7, 1, 2, 0, 0, 0, 0, 0, 0, 8, 9, 0, +}; +Vec3f D_E16C50_801C02B0 = { 0.0f, 0.0f, 0.0f }; +Vec3f D_E16C50_801C02BC = { 0.0f, 0.0f, 0.0f }; +f32 D_E16C50_801C02C8[2] = { 255.0f, 68.0f }; +s32 D_E16C50_801C02D0[2] = { 0x46, 0x64 }; +Vec3f D_E16C50_801C02D8 = { 0.0f, 0.0f, 0.0f }; +Vec3f D_E16C50_801C02E4 = { 0.0f, 0.0f, 0.0f }; +Vec3f D_E16C50_801C02F0 = { 108.0f, 0.0f, 24.0f }; +Vec3f D_E16C50_801C02FC = { 102.0f, 14.0f, -21.0f }; +Vec3f D_E16C50_801C0308 = { 0.0f, 0.0f, 0.0f }; +Vec3f D_E16C50_801C0314 = { 0.0f, 0.0f, 50.0f }; +Vec3f D_E16C50_801C0320 = { 0.0f, 0.0f, 0.0f }; +Vec3f D_E16C50_801C032C = { -27.0f, 7.0f, 5.0f }; +Vec3f D_E16C50_801C0338 = { 0.0f, 0.0f, 0.0f }; +Vec3f D_E16C50_801C0344[4] = { + { -6.4f, -4.6f, -7.8f }, + { 6.4f, 4.6f, 7.8f }, + { -5.9f, -7.8f, -7.0f }, + { 5.9f, 7.8f, 7.0f }, +}; +Vec3f D_E16C50_801C0374[17] = { + { 1.0f, 1.0f, 1.0f }, { 1.3f, 0.8f, 1.3f }, { 1.0f, 1.2f, 1.0f }, { 1.3f, 0.8f, 1.3f }, + { 1.0f, 1.0f, 1.0f }, { 1.3f, 1.0f, 1.3f }, { 1.0f, 1.0f, 1.0f }, { 1.3f, 1.0f, 1.3f }, + { 1.0f, 1.0f, 1.0f }, { 0.85f, 0.95f, 0.85f }, { 0.85f, 0.95f, 0.85f }, { 0.85f, 0.95f, 0.85f }, + { 1.0f, 1.05f, 1.0f }, { 0.85f, 0.95f, 0.85f }, { 0.85f, 0.95f, 0.85f }, { 0.85f, 0.95f, 0.85f }, + { 0.85f, 0.95f, 0.85f }, +}; +s32 D_E16C50_801C0440[24] = { + 0, 0x1E, 0x3C, 0x5A, 0, 0, 0, 0, 0, 0xF, 0x1E, 0x2D, 0, 0, 0, 0, 0, 0xF, 0x1E, 0x2D, 0x3C, 0x4B, 0x5A, 0x69, +}; +s32 D_E16C50_801C04A0[6] = { + 0xF, -0xF, 0xA, -0xA, 7, -7, +}; +Vec3f D_E16C50_801C04B8 = { 0.0f, 0.0f, 0.0f }; +s32 D_E16C50_801C04C4[9] = { + 1, 5, 9, 0xE, 0xF, 0x10, 0x11, 0, 0xD, +}; +Vec3f D_E16C50_801C04E8 = { 0.0f, 0.0f, 0.0f }; +f32 D_E16C50_801C04F4[4] = { + 700.0f, + 300.0f, + 600.0f, + 400.0f, +}; +Vec3f D_E16C50_801C0504[50] = { + { 416.0f, 440.0f, -4182.0f }, { 437.0f, 440.0f, -4178.0f }, { 510.0f, 420.0f, -4156.0f }, + { 168.0f, 361.0f, -4168.0f }, { 434.0f, 440.0f, -4162.0f }, { 465.0f, 465.0f, -4146.0f }, + { 464.0f, 493.0f, -4124.0f }, { 426.0f, 395.0f, -4136.0f }, { 457.0f, 440.0f, -4112.0f }, + { 480.0f, 487.0f, -4110.0f }, { 454.0f, 440.0f, -4256.0f }, { 179.0f, 507.0f, -4272.0f }, + { 442.0f, 392.0f, -4242.0f }, { 450.0f, 481.0f, -4248.0f }, { 474.0f, 420.0f, -4232.0f }, + { 376.0f, 440.0f, -4196.0f }, { 463.0f, 507.0f, -4190.0f }, { 467.0f, 424.0f, -4208.0f }, + { 394.0f, 404.0f, -4186.0f }, { 256.0f, 440.0f, -3680.0f }, { 243.0f, 515.0f, -3648.0f }, + { 277.0f, 390.0f, -3662.0f }, { 234.0f, 457.0f, -3664.0f }, { 561.0f, 440.0f, -4332.0f }, + { 550.0f, 514.0f, -4346.0f }, { 568.0f, 404.0f, -4304.0f }, { 580.0f, 545.0f, -4350.0f }, + { 552.0f, 382.0f, -4292.0f }, { 528.0f, 462.0f, -4322.0f }, { 558.0f, 440.0f, -4294.0f }, + { 396.0f, 440.0f, -4284.0f }, { 391.0f, 363.0f, -4254.0f }, { 379.0f, 501.0f, -4254.0f }, + { 428.0f, 440.0f, -4246.0f }, { 374.0f, 440.0f, -4282.0f }, { 373.0f, 342.0f, -4290.0f }, + { 353.0f, 570.0f, -4266.0f }, { 359.0f, 440.0f, -4232.0f }, { 399.0f, 216.0f, -4246.0f }, + { 406.0f, 251.0f, -4222.0f }, { 380.0f, 189.0f, -4248.0f }, { 370.0f, 278.0f, -4214.0f }, + { 383.0f, 237.0f, -4266.0f }, { 360.0f, 299.0f, -4320.0f }, { 359.0f, 266.0f, -4280.0f }, + { 354.0f, 211.0f, -4256.0f }, { 391.0f, 238.0f, -4192.0f }, { 340.0f, 294.0f, -4216.0f }, + { 423.0f, 242.0f, -4200.0f }, { 429.0f, 311.0f, -4138.0f }, +}; +f32 D_E16C50_801C075C[51] = { + 28.0f, 28.0f, 28.0f, 28.0f, 28.0f, 28.0f, 28.0f, 28.0f, 28.0f, 28.0f, 28.0f, 28.0f, 28.0f, + 28.0f, 28.0f, 28.0f, 28.0f, 28.0f, 28.0f, 320.0f, 320.0f, 320.0f, 320.0f, 40.0f, 40.0f, 40.0f, + 40.0f, 40.0f, 40.0f, 40.0f, 28.0f, 28.0f, 28.0f, 28.0f, 28.0f, 28.0f, 28.0f, 28.0f, 28.0f, + 28.0f, 28.0f, 28.0f, 28.0f, 28.0f, 28.0f, 28.0f, 28.0f, 28.0f, 10.0f, 28.0f, 28.0f, +}; +f32 D_E16C50_801C0828[51] = { + 210.0f, 250.0f, 170.0f, 200.0f, 225.0f, 240.0f, 220.0f, 180.0f, 210.0f, 230.0f, 355.0f, 349.0f, 357.0f, + 12.0f, 357.0f, 65.0f, 256.0f, 250.0f, 88.0f, 0.0f, 0.0f, 0.0f, 9.0f, 14.0f, 35.0f, 40.0f, + 5.0f, 92.0f, 56.0f, 71.0f, 355.0f, 326.0f, 30.0f, 5.0f, 30.0f, 30.0f, 60.0f, 69.0f, 1.0f, + 346.0f, 30.0f, 97.0f, 30.0f, 30.0f, 30.0f, 30.0f, 162.0f, 98.0f, 10.0f, 213.0f, 30.0f, +}; +Vec3f D_E16C50_801C08F4 = { 0.0f, 0.0f, 0.0f }; + +typedef struct { + char unk_00[0x148]; +} UnkStruct_1C4308; + +PosRot* D_E16C50_801C27C0; +PosRot D_E16C50_801C27C8[4][50]; +Vtx D_E16C50_801C3A88[2][2][28]; +f32 D_E16C50_801C4188; +s32 D_E16C50_801C4190[10]; +f32 D_E16C50_801C41B8[30]; +s32 D_E16C50_801C4230[28]; +s32 D_E16C50_801C42A0[25]; +UnkStruct_1C4308 D_E16C50_801C4308; +s32 D_E16C50_801C4450; +s32 D_E16C50_801C4454; +f32 D_E16C50_801C4458; +f32 D_E16C50_801C445C; + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801A8E30.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801A92EC.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801A9374.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801A9448.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801A94EC.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801A958C.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801A95C8.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801A96DC.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801A9728.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801A9824.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801A99D4.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801A9C98.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801A9DE4.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801A9ED0.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801AA20C.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801AA4BC.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801AA8E8.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801AACF8.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801AB9B0.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801ABA40.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801AC09C.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801AC18C.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801AC274.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801AC7C8.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801AC8A8.s") + +// OBJ_8C_366 action +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801AC918.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801ACBB4.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801ACE50.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801AD328.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801AD598.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801AD688.s") + +// OBJ_2F4_255 action +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801AD6C0.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801ADF7C.s") + +// OBJ_2F4_255 draw +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801AE168.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801AE3AC.s") + +// OBJ_2F4_256 action +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801AE3D8.s") + +// OBJ_2F4_256 draw +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801AEB44.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801AF9FC.s") + +// OBJ_2F4_257 action +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801AFA5C.s") + +// OBJ_2F4_257 draw +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801B099C.s") + +// OBJ_2F4_258 action +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801B0B60.s") + +// OBJ_2F4_258 draw +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801B0EC0.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801B0F88.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801B0FCC.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801B1008.s") + +// OBJ_BOSS_AQ init +void func_E16C50_801B10F8(Boss* bossAQ); +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801B10F8.s") + +// OBJ_BOSS_AQ action +void func_E16C50_801B134C(Boss* bossAQ); +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801B134C.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801B42AC.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801B49DC.s") + +// OBJ_BOSS_AQ draw +void func_E16C50_801B4D84(Boss* bossAQ); +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801B4D84.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801B4DDC.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801B4E94.s") + +// OBJ_2F4_261 draw +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801B504C.s") + +// OBJ_2F4_261 action +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801B50E8.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801B5C18.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801B5F68.s") + +// OBJ_2F4_259 draw +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801B619C.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801B6344.s") + +// OBJ_2F4_259 action +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801B638C.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801B6E54.s") + +// OBJ_2F4_262 action +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801B6FF8.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801B76EC.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801B7754.s") + +// OBJ_2F4_262 draw +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801B7A24.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801B7AF0.s") + +// OBJ_2F4_260 action +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801B7C78.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801B8C50.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801B8D7C.s") + +// OBJ_2F4_260 draw +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801B90DC.s") + +// OBJ_2F4_263 action +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801B91A4.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801B9DB0.s") + +// OBJ_2F4_263 draw +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BA108.s") + +// OBJ_2F4_264 action +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BA26C.s") + +// OBJ_2F4_264 draw +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BA4E4.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BA57C.s") + +// OBJ_2F4_265 action +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BA6A4.s") + +// OBJ_2F4_265 draw +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BAD7C.s") + +// OBJ_2F4_266 action +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BADF8.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BB0C4.s") + +// OBJ_2F4_266 draw +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BB204.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BB26C.s") + +// OBJ_2F4_267 action +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BB79C.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BC530.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BC91C.s") + +// OBJ_2F4_267 draw +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BC930.s") + +// OBJ_2F4_269 action +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BC9A0.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BD17C.s") + +// OBJ_2F4_269 draw +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BD264.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BD3B0.s") + +// OBJ_2F4_268 action +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BD54C.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BDDFC.s") + +// OBJ_2F4_268 draw +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BDE6C.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BDF14.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BE034.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BE0F0.s") + +// OBJ_80_126 draw +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BE1FC.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BE274.s") + +// OBJ_2F4_270 action +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BE3F8.s") + +// OBJ_2F4_270 draw +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BEB1C.s") + +// OBJ_BOSS_301 action +void func_E16C50_801BEC50(Boss* boss301) { +} + +// OBJ_BOSS_301 draw +void func_E16C50_801BEC5C(Boss* boss301) { +} + +// OBJ_2F4_188 action +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BEC68.s") + +// OBJ_2F4_188 draw +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BEC74.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BEC80.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BEC8C.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/D_E16C50_801C1A30.s") diff --git a/src/overlays/ovl_E16C50/sf_so.c b/src/overlays/ovl_E16C50/sf_so.c new file mode 100644 index 00000000..79177876 --- /dev/null +++ b/src/overlays/ovl_E16C50/sf_so.c @@ -0,0 +1,203 @@ +#include "global.h" + +typedef void (*BossSOfunc)(Boss*); + +void func_E16C50_8019EA7C(Object_2F4*); +void func_E16C50_8019F20C(Object_2F4*); +void func_E16C50_8019F7AC(Object_2F4*); +void func_E16C50_801A003C(Object_2F4*); +void func_E16C50_801A0120(Object_8C*); +void func_E16C50_801A0AF0(Object_8C*); + +void func_E16C50_801A1F80(Boss* bossSO); +void func_E16C50_801A23F4(Boss* bossSO); +void func_E16C50_801A2C98(Boss* bossSO); +void func_E16C50_801A3128(Boss* bossSO); +void func_E16C50_801A3510(Boss* bossSO); +void func_E16C50_801A4214(Boss* bossSO); +void func_E16C50_801A4A34(Boss* bossSO); +void func_E16C50_801A4EF8(Boss* bossSO); +void func_E16C50_801A56B8(Boss* bossSO); + +f32 D_E16C50_801BF8E0[4] = { 10.0f, 6.0f, -6.0f, -10.0f }; +Vec3f D_E16C50_801BF8F0[4] = { + { 10.0f, 7.0f, 0.0f }, + { -10.0f, 7.0f, 0.0f }, + { 7.0f, 10.0f, 0.0f }, + { -7.0f, 10.0f, 0.0f }, +}; +Vec3f D_E16C50_801BF920 = { 0.0f, 0.0f, 0.0f }; +u32 D_E16C50_801BF92C[6] = { + 0x0200B630, 0x0200A5A0, 0x02009510, 0x060084C0, 0x06008D40, 0x06007C40, +}; +u32 D_E16C50_801BF944[6] = { + 0x0601B790, 0x0601B790, 0x0601A700, 0x06019670, 0x060185E0, 0x06017550, +}; +Vec3f D_E16C50_801BF95C[3] = { + { 0.0f, 30.0f, 480.0f }, + { -180.0f, 0.0f, 240.0f }, + { 180.0f, 0.0f, 240.0f }, +}; +BossSOfunc D_E16C50_801BF980[9] = { + func_E16C50_801A1F80, func_E16C50_801A23F4, func_E16C50_801A2C98, func_E16C50_801A3128, func_E16C50_801A3510, + func_E16C50_801A4214, func_E16C50_801A4A34, func_E16C50_801A4EF8, func_E16C50_801A56B8, +}; +Vec3f D_E16C50_801BF9A4 = { 0.0f, 0.0f, 0.0f }; +Vec3f D_E16C50_801BF9B0 = { 10.0f, 0.0f, 0.0f }; +Vec3f D_E16C50_801BF9BC = { -10.0f, 0.0f, 0.0f }; +Vec3f D_E16C50_801BF9C8 = { 90.0f, 0.0f, -10.0f }; +Vec3f D_E16C50_801BF9D4 = { 135.0f, 0.0f, -40.0f }; +Vec3f D_E16C50_801BF9E0 = { 106.0f, 0.0f, 0.0f }; +Vec3f D_E16C50_801BF9EC = { 75.0f, 0.0f, 0.0f }; +Vec3f D_E16C50_801BF9F8 = { 85.0f, 0.0f, 0.0f }; +Vec3f D_E16C50_801BFA04 = { 10.0f, 2.0f, 0.0f }; +Vec3f D_E16C50_801BFA10 = { 10.0f, -2.0f, 0.0f }; +Vec3f D_E16C50_801BFA1C = { 0.0f, 0.05f, 0.0f }; +Vec3f D_E16C50_801BFA28 = { 0.0f, -0.05f, 0.0f }; +Vec3f D_E16C50_801BFA34 = { 0.0f, 0.0f, 0.0f }; +Vec3f D_E16C50_801BFA40[9] = { + { 150.0f, 300.0f, 100.0f }, { -100.0f, 200.0f, 100.0f }, { 50.0f, 100.0f, 100.0f }, + { 0.0f, 0.0f, -500.0f }, { 790.0f, 630.0f, -600.0f }, { 280.0f, 140.0f, 500.0f }, + { -210.0f, 110.0f, 500.0f }, { -460.0f, 260.0f, 500.0f }, { 380.0f, 290.0f, 500.0f }, +}; +Vec3f D_E16C50_801BFAAC[3] = { + { -1.0f, -0.3f, -2.0f }, + { 121.0f, 209.0f, 183.0f }, + { 181.0f, 167.0f, 182.0f }, +}; +Vec3f D_E16C50_801BFAD0[3] = { + { -89.0f, -90.0f, -88.0f }, + { -36.0f, -73.0f, -95.0f }, + { -91.0f, -83.0f, -91.0f }, +}; +Vec3f D_E16C50_801BFAF4[5] = { + { 0.0f, 10.0f, 20.0f }, { 300.0f, 100.0f, 200.0f }, { 100.0f, 60.0f, -260.0f }, + { 80.0f, 100.0f, 80.0f }, { 262.0f, 285.0f, 252.0f }, +}; +Vec3f D_E16C50_801BFB30[4] = { + { 0.0f, 50.0f, 500.0f }, + { -500.0f, 0.0f, 250.0f }, + { 500.0f, 0.0f, 250.0f }, + { 0.0f, 0.0f, 0.0f }, +}; + +s32 D_E16C50_801C2740[10]; +f32 D_E16C50_801C2768[14]; +s32 D_E16C50_801C27A0[8]; // unused? part of previous? + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_8019E7F0.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_8019E8B8.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_8019E920.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_8019E9F4.s") + +// OBJ_2F4_278 action +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_8019EA7C.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_8019EF30.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_8019F038.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_8019F0B0.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_8019F194.s") + +// OBJ_2F4_275, 276, 277 action +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_8019F20C.s") + +// OBJ_2F4_275, 276, 277 draw +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_8019F7AC.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_8019F99C.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_8019FAA4.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_8019FDE0.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_8019FEE8.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_8019FF44.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_8019FFC0.s") + +// OBJ_2F4_279 action +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_801A003C.s") + +// OBJ_8C_392 action +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_801A0120.s") + +// OBJ_8C_392 draw +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_801A0AF0.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_801A0CEC.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_801A0D90.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_801A0DF8.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_801A0FD4.s") + +void func_E16C50_801A10F4(Player* player); +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_801A10F4.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_801A1CD8.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_801A1E14.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_801A1EB0.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_801A1F80.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_801A239C.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_801A23F4.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_801A2C3C.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_801A2C98.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_801A30CC.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_801A3128.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_801A3468.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_801A3510.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_801A3C4C.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_801A4214.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_801A48B8.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_801A4A34.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_801A4EC0.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_801A4EF8.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_801A56B8.s") + +// OBJ_BOSS_SO action +void func_E16C50_801A5B3C(Boss* bossSO); +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_801A5B3C.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_801A68A8.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_801A6BDC.s") + +// OBJ_BOSS_SO draw +void func_E16C50_801A71B8(Boss* bossSO); +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_801A71B8.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_801A7750.s") + +void func_E16C50_801A7930(Player* player); +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_801A7930.s") + +void func_E16C50_801A8BE8(Player* player); +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_801A8BE8.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_801A8DB8.s") diff --git a/src/overlays/ovl_E16C50/sf_zo.c b/src/overlays/ovl_E16C50/sf_zo.c new file mode 100644 index 00000000..5aeb68ff --- /dev/null +++ b/src/overlays/ovl_E16C50/sf_zo.c @@ -0,0 +1,372 @@ +#include "global.h" + +void func_E16C50_801904CC(Object_2F4*); +void func_E16C50_80190A00(Object_2F4*); +void func_E16C50_80191010(Object_2F4*); +void func_E16C50_801914C4(Object_2F4*); +void func_E16C50_80191680(Object_2F4*); +void func_E16C50_80191B4C(Object_2F4*); +void func_E16C50_80191BC4(Object_2F4*); +void func_E16C50_80191DB0(Object_2F4*); +void func_E16C50_80191FFC(Object_2F4*); +void func_E16C50_80192094(Object_2F4*); +void func_E16C50_80192834(Object_2F4*); +void func_E16C50_80192C18(Object_2F4*); +void func_E16C50_80192E64(Object_2F4*); +void func_E16C50_80193240(Object_2F4*); +void func_E16C50_8019969C(Object_2F4*); +void func_E16C50_8019983C(Object_2F4*); +void func_E16C50_80199A28(Object_2F4*); +void func_E16C50_80199E24(Object_2F4*); +void func_E16C50_80199F10(Object_2F4*); +void func_E16C50_8019A1FC(Object_2F4*); +void func_E16C50_8019A5D4(Object_2F4*); +void func_E16C50_8019ACCC(Object_2F4*); +void func_E16C50_8019B548(Object_2F4*); +void func_E16C50_8019B7DC(Object_2F4*); +void func_E16C50_8019B854(Object_2F4*); +void func_E16C50_8019BDE0(Object_2F4*); +void func_E16C50_8019BE48(Object_2F4*); +void func_E16C50_8019C1CC(Object_2F4*); +void func_E16C50_8019C454(Object_2F4*); +void func_E16C50_8019C83C(Object_2F4*); +void func_E16C50_8019CBEC(Object_2F4*); +void func_E16C50_8019CE58(Object_2F4*); +void func_E16C50_8019D15C(Object_2F4*); +void func_E16C50_8019D3C4(Object_2F4*); + +Vec3f D_E16C50_801BF560 = { 0.0f, 0.0f, 0.0f }; +s16 D_E16C50_801BF56C[20] = { + 0, 190, 180, 170, 160, 150, 140, 130, 120, 110, 100, 90, 80, 70, 60, 50, 40, 30, 20, 10, +}; +u8 D_E16C50_801BF594[20] = { + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, +}; +Gfx* D_E16C50_801BF5A8[3] = { (Gfx*) 0x060012A0, (Gfx*) 0x060239E0, (Gfx*) 0x06023730 }; +Vec3f D_E16C50_801BF5B4 = { 0.0f, 0.0f, 0.0f }; +Vec3f D_E16C50_801BF5C0 = { 0.0f, 0.0f, 0.0f }; +Vec3f D_E16C50_801BF5CC = { 0.0f, 0.0f, 0.0f }; +Vec3f D_E16C50_801BF5D8 = { 0.0f, 0.0f, 0.0f }; +Vec3f D_E16C50_801BF5E4 = { 0.0f, 0.0f, 0.0f }; +s32 D_E16C50_801BF5F0[6] = { + 20, 40, 20, 20, 10, 10, +}; +f32 D_E16C50_801BF608[6] = { + -45.0f, 0.0f, -45.0f, 0.0f, -45.0f, 0.0f, +}; +Vec3f D_E16C50_801BF620 = { 0.0f, 0.0f, 40.0f }; +Vec3f D_E16C50_801BF62C = { 96.0f, 199.0f, -9.0f }; +Vec3f D_E16C50_801BF638 = { 50.0f, 150.0f, -20.0f }; +Vec3f D_E16C50_801BF644 = { 50.0f, 150.0f, 20.0f }; +Vec3f D_E16C50_801BF650 = { 0.0f, 0.0f, 0.0f }; +Vec3f D_E16C50_801BF65C = { 210.0f, -50.0f, 0.0f }; +Vec3f D_E16C50_801BF668 = { 50.0f, 70.0f, 0.0f }; +Vec3f D_E16C50_801BF674 = { 166.0f, -174.0f, -25.0f }; +Vec3f D_E16C50_801BF680 = { 166.0f, -174.0f, 25.0f }; +Vec3f D_E16C50_801BF68C = { 50.0f, 0.0f, 0.0f }; +Vec3f D_E16C50_801BF698 = { 150.0f, 0.0f, 0.0f }; +Vec3f D_E16C50_801BF6A4 = { 0.0f, 0.0f, 0.0f }; +Vec3f D_E16C50_801BF6B0 = { 0.0f, 0.0f, 0.0f }; +f32 D_E16C50_801BF6BC[2] = { -600.0f, -3400.0f }; +f32 D_E16C50_801BF6C4[2] = { 330.0f, 30.0f }; +f32 D_E16C50_801BF6CC[2] = { 250.0f, -250.0f }; +f32 D_E16C50_801BF6D4[2] = { 330.0f, 30.0f }; +Vec3f D_E16C50_801BF6DC = { 615.0f, 532.0f, -80.0f }; +Vec3f D_E16C50_801BF6E8 = { -615.0f, 532.0f, -80.0f }; +Vec3f D_E16C50_801BF6F4 = { 0.0f, 0.0f, 0.0f }; +Vec3f D_E16C50_801BF700 = { 0.0f, 0.0f, 0.0f }; +Vec3f D_E16C50_801BF70C = { 0.0f, 0.0f, 40.0f }; +Vec3f D_E16C50_801BF718 = { 0.0f, 0.0f, 50.0f }; +Vec3f D_E16C50_801BF724 = { 0.0f, 0.0f, 20.0f }; +Vec3f D_E16C50_801BF730 = { 0.0f, 0.0f, 100.0f }; +f32 D_E16C50_801BF73C[2] = { -80.0f, 80.0f }; +Vec3f D_E16C50_801BF744[3] = { + { 0.0f, 50.0f, -200.0f }, + { 0.0f, 50.0f, 200.0f }, + { 0.0f, 50.0f, 600.0f }, +}; +Vec3f D_E16C50_801BF768[3] = { + { 0.0f, 300.0f, 0.0f }, + { 0.0f, 300.0f, -200.0f }, + { 0.0f, 300.0f, 300.0f }, +}; +s32 D_E16C50_801BF78C[30] = { + 0, 7, 7, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 4, 7, 0, 0, 0, 0, 327, 324, 0, 322, 327, 0, 324, 324, 0, 336, 0, +}; +f32 D_E16C50_801BF804[8] = { 0.0f, 0.0f, 270.0f, 90.0f, 0.0f, 180.0f, 400.0f, 400.0f }; +s32 D_E16C50_801BF824[10] = { 1, 5, 9, 14, 15, 16, 17, 0, 13, 1000 }; +Vec3f D_E16C50_801BF84C[6] = { + { 5.0f, -10.0f, 0.0f }, { 10.0f, 0.0f, 0.0f }, { 5.0f, 10.0f, 0.0f }, + { -5.0f, -10.0f, 0.0f }, { -10.0f, 0.0f, 0.0f }, { -5.0f, 10.0f, 0.0f }, +}; +Vec3f D_E16C50_801BF894 = { 0.0f, 0.0f, 0.0f }; +Vec3f D_E16C50_801BF8A0 = { 0.0f, 0.0f, 0.0f }; +Vec3f D_E16C50_801BF8AC = { 230.0f, -50.0f, 0.0f }; +Vec3f D_E16C50_801BF8B8 = { 230.0f, -250.0f, 0.0f }; +f32 D_E16C50_801BF8C4[2] = { 46.0f, 314.0f }; +f32 D_E16C50_801BF8CC[2] = { 23.0f, 337.0f }; + +typedef struct { + /* 0x000 */ char pad0[4]; + /* 0x004 */ f32 unk_4; + /* 0x008 */ char pad8[0x24]; + /* 0x02C */ f32 unk_2C; + /* 0x030 */ char pad30[0x2C]; + /* 0x05C */ f32 unk_5C; + /* 0x060 */ char pad60[4]; + /* 0x064 */ f32 unk_64; + /* 0x068 */ f32 unk_68; + /* 0x06C */ char pad6C[4]; + /* 0x070 */ f32 unk_70; + /* 0x074 */ Vec3f unk_74; + /* 0x080 */ Vec3f unk_80; + /* 0x08C */ char pad8C[8]; + /* 0x094 */ Vec3f unk_94; + /* 0x0A0 */ Vec3f unk_A0; + /* 0x0AC */ Vec3f unk_AC; + /* 0x0B8 */ Vec3f unk_B8; + /* 0x0C4 */ Vec3f unk_C4; + /* 0x0D0 */ Vec3f unk_D0; + /* 0x0DC */ Vec3f unk_DC; + /* 0x0E8 */ char padE8[8]; + /* 0x0F0 */ Vec3f unk_F0; + /* 0x0FC */ char padFC[8]; + /* 0x104 */ Vec3f unk_104; + /* 0x110 */ Vec3f unk_110; + /* 0x11C */ Vec3f unk_11C; + /* 0x128 */ char pad128[0x4C]; + /* 0x174 */ Vec3f unk_174; + /* 0x180 */ Vec3f unk_180; + /* 0x18C */ Vec3f unk_18C; + /* 0x198 */ Vec3f unk_198; + /* 0x1A4 */ char pad1A4[4]; + /* 0x1A8 */ Vec3f unk_1A8; + /* 0x1B4 */ Vec3f unk_1B4; + /* 0x1C0 */ char pad1C0[0x98]; +} UnkStruct_1C24E8; /* size = 0x258 */ + +s32 D_E16C50_801C2330[40]; +s32 D_E16C50_801C23D0[70]; +UnkStruct_1C24E8 D_E16C50_801C24E8; + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8018FF50.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80190028.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_801900FC.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019019C.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80190204.s") + +// OBJ_2F4_235 draw +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80190430.s") + +// OBJ_2F4_235 action +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_801904CC.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80190790.s") + +// OBJ_2F4_236 action +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80190A00.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80190B4C.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80190D0C.s") + +// OBJ_2F4_236 draw +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80190F08.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80190F28.s") + +// OBJ_2F4_238 action +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80191010.s") + +// OBJ_2F4_238 draw +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_801914C4.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_801915A4.s") + +// OBJ_2F4_240 action +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80191680.s") + +// OBJ_2F4_240 draw +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80191B4C.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80191BB8.s") + +// OBJ_2F4_241 action +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80191BC4.s") + +// OBJ_2F4_241 draw +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80191DB0.s") + +// OBJ_2F4_242 action +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80191E94.s") + +// OBJ_2F4_242 draw +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80191FFC.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80192094.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_801926F4.s") + +// OBJ_2F4_243 action +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80192834.s") + +// OBJ_2F4_243 draw +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80192C18.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80192C84.s") + +// OBJ_2F4_244 action +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80192E64.s") + +// OBJ_2F4_244 draw +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80193240.s") + +// OBJ_BOSS_ZO init +void func_E16C50_801932AC(Boss* bossZO); +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_801932AC.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80193628.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_801937D8.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80193908.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80193970.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80193A98.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80193B08.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80193C5C.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80193CC8.s") + +bool func_E16C50_80193D08(s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3f* rot, Boss* thisx); +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80193D08.s") + +void func_E16C50_80194394(s32 limbIndex, Vec3f* rot, Boss* thisx); +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80194394.s") + +// OBJ_BOSS_ZO draw +void func_E16C50_801949DC(Boss* bossZO); +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_801949DC.s") + +// OBJ_BOSS_ZO action +void func_E16C50_80194A84(Boss* bossZO); +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80194A84.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_801986FC.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_801989FC.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80198BE8.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80198ECC.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80198F3C.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019907C.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019914C.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_801991D0.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80199394.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80199470.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019962C.s") + +// OBJ_2F4_245 action +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019969C.s") + +// OBJ_2F4_245 draw +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019983C.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_801998E0.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_801999CC.s") + +// OBJ_2F4_246 action +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80199A28.s") + +// OBJ_2F4_246 draw +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80199E24.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80199E9C.s") + +// OBJ_2F4_248 action +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80199F10.s") + +// OBJ_2F4_248 draw +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019A1FC.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019A4E0.s") + +// OBJ_2F4_249 action +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019A5D4.s") + +// OBJ_2F4_249 draw +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019ACCC.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019B1F0.s") + +// OBJ_2F4_250 action +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019B548.s") + +// OBJ_2F4_250 draw +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019B7DC.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019B810.s") + +// OBJ_2F4_251 action +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019B854.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019BC78.s") + +// OBJ_2F4_251 draw +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019BDE0.s") + +// OBJ_2F4_252 action +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019BE48.s") + +// OBJ_2F4_252 draw +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019C1CC.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019C200.s") + +// OBJ_2F4_253 action +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019C454.s") + +// OBJ_2F4_253 draw +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019C83C.s") + +// OBJ_2F4_254 action +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019CBEC.s") + +// OBJ_2F4_254 draw +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019CE58.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019D060.s") + +// OBJ_2F4_247 action +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019D15C.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019D340.s") + +// OBJ_2F4_247 draw +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019D3C4.s") + +void func_E16C50_8019D428(Player* player); +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019D428.s") + +void func_E16C50_8019D76C(Player* player); +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019D76C.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019E5F0.s") + +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/D_E16C50_801C0DB0.s") diff --git a/src/overlays/ovl_menu/EBFBE0.c b/src/overlays/ovl_menu/EBFBE0.c index f3f438ed..26a5695e 100644 --- a/src/overlays/ovl_menu/EBFBE0.c +++ b/src/overlays/ovl_menu/EBFBE0.c @@ -9,7 +9,7 @@ void func_EBFBE0_8019E8C8(void); void func_EBFBE0_8019E8D0(void); void func_EBFBE0_801A01A8(void); -void func_EBFBE0_80187520(s32 arg0, s32 arg1) { +void func_EBFBE0_80187520(s32 arg0, void* arg1) { switch (arg0) { case 103: func_EBFBE0_80187754(); diff --git a/yamls/us/overlays.yaml b/yamls/us/overlays.yaml index 754ff141..ee8d2bf9 100644 --- a/yamls/us/overlays.yaml +++ b/yamls/us/overlays.yaml @@ -47,18 +47,24 @@ symbol_name_format: E16C50_$VRAM subsegments: - [0xE16C50, c, E16C50] - - [0xE1F680, c, E1F680] - - [0xE2DF20, c, E2DF20] - - [0xE38560, c, E38560] - - [0xE4E3D0, data, E16C50] - - [0xE4EC90, data, E1F680] - - [0xE4F010, data, E2DF20] - - [0xE4F290, data, E38560] - - [0xE50030, .rodata, E16C50] - - [0xE504E0, .rodata, E1F680] - - [0xE50C00, .rodata, E2DF20] - - [0xE51160, .rodata, E38560] - - { start: 0xE51970, type: bss, vram: 0x801C2240, name: ovl_E16C50 } + - [0xE16C60, c, fox_a6] + - [0xE1F680, c, sf_zo] + - [0xE2DF20, c, sf_so] + - [0xE38560, c, sf_aq] + - [0xE4E3D0, .data, E16C50] + - [0xE4E3E0, .data, fox_a6] + - [0xE4EC90, .data, sf_zo] + - [0xE4F010, .data, sf_so] + - [0xE4F290, .data, sf_aq] + - [0xE50030, .rodata, fox_a6] + - [0xE504E0, .rodata, sf_zo] + - [0xE50C00, .rodata, sf_so] + - [0xE51160, .rodata, sf_aq] + - { start: 0xE51970, type: .bss, vram: 0x801C2240, name: E16C50 } + - { start: 0xE51970, type: .bss, vram: 0x801C2250, name: fox_a6 } + - { start: 0xE51970, type: .bss, vram: 0x801C2330, name: sf_zo } + - { start: 0xE51970, type: .bss, vram: 0x801C2740, name: sf_so } + - { start: 0xE51970, type: .bss, vram: 0x801C27C0, name: sf_aq } - name: ovl_E51970 type: code