From 31bfc1ecddd8cf940cc6be2c00ec19cb0b1a856a Mon Sep 17 00:00:00 2001 From: inspectredc <78732756+inspectredc@users.noreply.github.com> Date: Sat, 13 Jan 2024 22:45:37 +0000 Subject: [PATCH] fox_co decomp, Object_2F4 rename to Actor with work buffers (#79) * first few functions * funcs so far - messy * only large funcs left * func_DF4260_8018F880 and func_DF4260_80191160 * func_DF4260_8018C19C * func_DF4260_8018F880 player * build post merge * first cleanup pass * add work buffers to Object_2F4 * halfway through data import * finish data import * cleanup and add non_matching * bss complete * actor rename * post merge cleanup * file rename * arg rename * other object variables rename * hex cleanup for func_DF4260_80189058 * format * revert note_data * suggestions * format suggestions --- include/functions.h | 370 +-- include/hud.h | 4 +- include/sf64object.h | 303 +- include/variables.h | 4 +- linker_scripts/us/symbol_addrs.txt | 1 + linker_scripts/us/symbol_addrs_engine.txt | 12 +- src/main/fox_360.c | 825 +++-- src/main/fox_43AC0.c | 46 +- src/main/fox_beam.c | 329 +- src/main/fox_demo.c | 840 +++--- src/main/fox_display.c | 2 +- src/main/fox_edata.c | 2 +- src/main/fox_edata_1C.c | 232 +- src/main/fox_edisplay.c | 419 +-- src/main/fox_effect.c | 30 +- src/main/fox_enmy.c | 1138 ++++--- src/main/fox_enmy2.c | 3245 ++++++++++---------- src/main/fox_game.c | 22 +- src/main/fox_play.c | 194 +- src/main/fox_radio.c | 7 +- src/main/fox_versus.c | 114 +- src/main/sf_43E80.c | 72 +- src/main/sf_hud.c | 561 ++-- src/overlays/ovl_DF4260/DF4260.c | 146 +- src/overlays/ovl_DF4260/DF4260.h | 18 - src/overlays/ovl_DF4260/DFEE30.c | 6 +- src/overlays/ovl_DF4260/fox_co.c | 3324 +++++++++++++++++++++ src/overlays/ovl_E16C50/fox_a6.c | 424 +-- src/overlays/ovl_E16C50/sf_aq.c | 136 +- src/overlays/ovl_E16C50/sf_so.c | 16 +- src/overlays/ovl_E16C50/sf_zo.c | 140 +- yamls/us/overlays.yaml | 10 +- 32 files changed, 8044 insertions(+), 4948 deletions(-) delete mode 100644 src/overlays/ovl_DF4260/DF4260.h create mode 100644 src/overlays/ovl_DF4260/fox_co.c diff --git a/include/functions.h b/include/functions.h index 1be76411..d487781b 100644 --- a/include/functions.h +++ b/include/functions.h @@ -96,23 +96,24 @@ s32 vsprintf(char* dst, const char* fmt, va_list args); // fox_360 void func_8002ED60(Player*); -void func_8002E3E0(Object_2F4*); +void func_8002E3E0(Actor*); void func_8002E548(void); 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*); -void func_8002E6DC(Object_2F4*); +void func_8002E670(Actor*); +void func_8002E694(Actor*); +void func_8002E6B8(Actor*); +void func_8002E6DC(Actor*); +bool func_8002E4F8(u16*, s32); void func_8002E700(Player *); -void func_8002EE64(Object_2F4 * obj2F4); +void func_8002EE64(Actor * actor); void func_8002F180(void); void func_8002F5F4(u16* msg, s32 character); -void func_8003088C(Object_2F4*); -void func_800319AC(Object_2F4* this); -void func_80035448(Object_2F4* obj2F4); +void func_8003088C(Actor*); +void func_800319AC(Actor* this); +void func_80035448(Actor* actor); //fox_beam void PlayerShot_Initialize(PlayerShot *); @@ -131,7 +132,6 @@ void func_80040CE4(void); void func_80042D38(void); // fox_43AC0 -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); @@ -139,6 +139,8 @@ void func_80042FC4(Boss* boss); void func_80042FD0(Boss* boss); void func_80042FDC(Boss* boss); void func_80042FE8(Boss* boss); +void func_800430DC(f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, s32, s32); +void func_8004319C(Player* player, f32 arg1, f32 arg2, f32 arg3); // fox_43E80 void func_80043468(Player* player); @@ -150,12 +152,13 @@ void func_80046358(Player*); void func_80048AC0(s32 teamId); void func_80049C0C(Player *); void func_8004A52C(Player *); +void func_8004AA84(void); void func_8004AAF4(Player *); void func_8004C930(Player *); void func_8004CCC0(Player *); void func_8004E3D8(Player *); -void func_8004F8AC(Object_2F4*); -void func_8004FEC0(Object_2F4*); +void func_8004F8AC(Actor*); +void func_8004FEC0(Actor*); void func_800515C4(void); // fox_display @@ -168,31 +171,31 @@ void func_80057D00(void); void func_800594F0(Object_80*); void func_800595D0(Object_80*); void func_800596C0(void); -void func_800596B0(Object_2F4*); +void func_800596B0(Actor*); // fox_edisplay void Graphics_SetScaleMtx(f32); void func_80059850(Object_4C*); -void func_800598E8(Object_2F4*); -void func_80059A24(Object_2F4*); +void func_800598E8(Actor*); +void func_80059A24(Actor*); void func_80059AEC(Object_80*); void func_80059B20(Object_80*); void func_80059BBC(Object_80*); -void func_80059BF0(Object_2F4*); +void func_80059BF0(Actor*); void func_80059C34(Object_4C*); void func_80059C40(Object_4C*); void func_80059F68(Item*); void func_80059FDC(Item*); -void func_8005A094(Object_2F4*); -void func_8005ADAC(Object_2F4*); -void func_8005B1E8(Object_2F4*, s32); -void func_8005B388(Object_2F4*); -void func_8005B6A4(Object_2F4*); -void func_8005B71C(Object_2F4*); -void func_8005B7CC(Object_2F4*); -void func_8005B848(Object_2F4*); -void func_8005B9A4(Object_2F4*); -void func_8005BA30(Object_2F4*); +void func_8005A094(Actor*); +void func_8005ADAC(Actor*); +void func_8005B1E8(Actor*, s32); +void func_8005B388(Actor*); +void func_8005B6A4(Actor*); +void func_8005B71C(Actor*); +void func_8005B7CC(Actor*); +void func_8005B848(Actor*); +void func_8005B9A4(Actor*); +void func_8005BA30(Actor*); void func_8005C5F0(Item*); void func_8005C900(Item*); void func_8005C9C0(Item*); @@ -218,14 +221,14 @@ s32 func_80060FE4(Vec3f*, f32); void Object_SetInfo(ObjectInfo* info, u32 objId); void Object_80_Initialize(Object_80*); void Object_4C_Initialize(Object_4C*); -void Object_2F4_Initialize(Object_2F4*); +void Actor_Initialize(Actor*); void Boss_Initialize(Boss*); void Item_Initialize(Item*); void Effect_Initialize(Effect*); void func_80061B68(void); void func_80061CD0(void); -void func_80061E48(Object_2F4* , f32 , f32 , f32 ); -void func_80061F0C(Object_2F4* , ObjectInit* , s32 ); +void func_80061E48(Actor* , f32 , f32 , f32 ); +void func_80061F0C(Actor* , ObjectInit* , s32 ); void Object_Load(ObjectInit* , f32 , f32 , f32 , f32 ); void func_80062568(void); void func_80062B60(f32 xPos, f32 zPos, s32 arg2, f32 arg3); @@ -236,13 +239,13 @@ s32 func_8006351C(s32 , Vec3f* , Vec3f* , s32 ); s32 func_801A55D4(s32 , Vec3f* , Vec3f* , s32 ); void func_800652CC(Object_80*); void func_800654E4(Object *); -void func_800656D4(Object_2F4*); -void func_800660F0(Object_2F4*); -void func_80066254(Object_2F4*); -void func_8006654C(Object_2F4*); -void func_8006684C(Object_2F4*); -void func_800669A0(Object_2F4*); -void func_80066A80(Object_2F4*); +void func_800656D4(Actor*); +void func_800660F0(Actor*); +void func_80066254(Actor*); +void func_8006654C(Actor*); +void func_8006684C(Actor*); +void func_800669A0(Actor*); +void func_80066A80(Actor*); void func_80066C00(Object_80*); void func_80066D5C(Object_80*); void func_80066E8C(Object_4C*); @@ -250,8 +253,8 @@ void func_80066EA8(Object_80*); void func_80066EF0(Item *); void func_800671D0(Item *); void func_800674B4(f32, f32, f32, f32, f32, f32, f32, f32); -void func_8006753C(Object_2F4*); -void func_80067874(Object_2F4*); +void func_8006753C(Actor*); +void func_80067874(Actor*); void func_80067A40(void); void func_80067B1C(Item*); void func_80067BEC(Item*); @@ -267,12 +270,12 @@ void func_80068C88(Item*); void func_80068FE0(Object_4C*); void func_800690D0(s32, ObjectId); void func_80069924(Effect *); -void func_800693E8(Object_2F4 *); +void func_800693E8(Actor *); 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 Actor_Update(Actor*); void Boss_Update(Boss *); void Object_80_Update(Object_80 *); void Object_4C_Update(Object_4C *); @@ -283,27 +286,27 @@ void func_8006A38C(void); void Object_UpdateAll(void); //fox_6B3B0 -void func_8006A96C(Object_2F4*); -void func_8006A978(Object_2F4*); +void func_8006A96C(Actor*); +void func_8006A978(Actor*); void func_8006AA98(Object_80*); -void func_8006AC08(Object_2F4*); -void func_8006AD18(Object_2F4*); -void func_8006B094(Object_2F4*); -void func_8006B0A0(Object_2F4 *); -void func_8006B74C(Object_2F4 *); +void func_8006AC08(Actor*); +void func_8006AD18(Actor*); +void func_8006B094(Actor*); +void func_8006B0A0(Actor *); +void func_8006B74C(Actor *); void func_8006B95C(Object_80*); -void func_8006BB78(Object_2F4*); -void func_8006C008(Object_2F4*); +void func_8006BB78(Actor*); +void func_8006C008(Actor*); void func_8006D350(Object_80*); void func_8006EEFC(s32, f32, f32, f32, f32, f32, f32, f32, f32, f32); void func_8006F0D8(f32 xPos, f32 yPos, f32 zPos, f32 arg3); -void func_80072594(Object_2F4*); +void func_80072594(Actor*); s32 func_80074F90(Object_80*); -void func_80074FF0(Object_2F4*); -void func_800763A4(Object_2F4 *); -void func_8007717C(Object_2F4 *); -void func_800771CC(Object_2F4*); -void func_80077218(Object_2F4*); +void func_80074FF0(Actor*); +void func_800763A4(Actor *); +void func_8007717C(Actor *); +void func_800771CC(Actor*); +void func_80077218(Actor*); // fox_effect void func_80077240(f32 posX, f32 posY, f32 posZ, s32 hits); @@ -456,6 +459,7 @@ void func_800869A0(f32, f32, s32, f32, s32, s32); void func_80087530(f32, f32, s32); void func_80088564(void); void func_8008865C(void); +s32 func_8008AC54(s32); void func_8008AD94(void); void func_8008B5B0(f32 x, f32 y); s32 func_8008B774(void); @@ -475,12 +479,12 @@ void func_8008EA14(f32, f32); void func_8008FA84(void); void func_8008FE78(Boss*); void func_8008FFF0(Boss*, s32); -bool func_8009092C(Object_2F4*); +bool func_8009092C(Actor*); void func_800907C4(Boss*); -s32 func_800915FC(Object_2F4*); -void func_80092D48(Object_2F4 *); -void func_80092EC0(Object_2F4*); -void func_80093164(Object_2F4*); +s32 func_800915FC(Actor*); +void func_80092D48(Actor *); +void func_80092EC0(Actor*); +void func_80093164(Actor*); void func_800935E8(Player*); void func_80095604(Player*); void func_80094954(Effect*); @@ -503,7 +507,7 @@ void func_800A1FB0(Gfx **, u8 , u8); void func_800A24DC(s32); void func_800A26C0(void); void func_800A25DC(void); -Object_2F4 *func_800A3608(s32); +Actor *func_800A3608(s32); // fox_A4290 bool func_800A3690(Vec3f*, Vec3f*, s32, Vec3f*); @@ -582,14 +586,14 @@ void func_DF4260_80187520(s32, void*); void func_DF4260_80187530(Object_80*); void func_DF4260_8018753C(Object_80*); void func_DF4260_801878D8(Boss *); -void func_DF4260_8018B0B4(Object_2F4 *); +void func_DF4260_8018B0B4(Actor *); 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_8019250C(Actor *); +void func_DF4260_80192CB0(Actor *); +void func_DF4260_80192EA4(Actor *); +void func_DF4260_801933B4(Actor *); void func_DF4260_801935CC(Boss *); void func_DF4260_80198310(Boss *); void func_DF4260_80198594(Boss *); @@ -600,9 +604,9 @@ void func_DF4260_8019864C(PlayerShot*); void func_E08400_80187520(s32, void*); -void func_E08400_80187B08(Object_2F4 *); +void func_E08400_80187B08(Actor *); void func_E08400_80188A40(Boss *); -void func_E08400_8018CCF8(Object_2F4 *); +void func_E08400_8018CCF8(Actor *); void func_E16C50_80187520(s32, void*); void func_E16C50_80187754(Boss *); @@ -612,61 +616,61 @@ 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_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_80190430(Actor *); +void func_E16C50_801904CC(Actor*); +void func_E16C50_80190A00(Actor*); +void func_E16C50_80190F08(Actor *); +void func_E16C50_80191010(Actor*); +void func_E16C50_801914C4(Actor*); +void func_E16C50_801915A4(Actor *); +void func_E16C50_80191680(Actor*); +void func_E16C50_80191B4C(Actor*); +void func_E16C50_80191BB8(Actor *); +void func_E16C50_80191BC4(Actor*); +void func_E16C50_80191DB0(Actor*); +void func_E16C50_80191DB0(Actor*); +void func_E16C50_80191FFC(Actor*); +void func_E16C50_80192094(Actor*); +void func_E16C50_80192834(Actor*); +void func_E16C50_80192C18(Actor*); +void func_E16C50_80192E64(Actor*); +void func_E16C50_80193240(Actor*); 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_8019969C(Actor*); +void func_E16C50_8019983C(Actor*); +void func_E16C50_80199A28(Actor*); +void func_E16C50_80199E24(Actor*); +void func_E16C50_80199F10(Actor*); +void func_E16C50_8019A1FC(Actor*); +void func_E16C50_8019A5D4(Actor*); +void func_E16C50_8019ACCC(Actor*); +void func_E16C50_8019B1F0(Actor *); +void func_E16C50_8019B548(Actor*); +void func_E16C50_8019B7DC(Actor*); +void func_E16C50_8019B810(Actor *); +void func_E16C50_8019B854(Actor*); +void func_E16C50_8019BDE0(Actor*); +void func_E16C50_8019BE48(Actor*); +void func_E16C50_8019C1CC(Actor*); +void func_E16C50_8019C200(Actor *); +void func_E16C50_8019C454(Actor*); +void func_E16C50_8019C83C(Actor*); +void func_E16C50_8019CBEC(Actor*); +void func_E16C50_8019CE58(Actor*); +void func_E16C50_8019D060(Actor *); +void func_E16C50_8019D15C(Actor*); +void func_E16C50_8019D3C4(Actor*); 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_8019EA7C(Actor*); +void func_E16C50_8019F20C(Actor*); +void func_E16C50_8019F7AC(Actor*); +void func_E16C50_801A003C(Actor*); void func_E16C50_801A0120(Effect*); void func_E16C50_801A0AF0(Effect*); void func_E16C50_801A10F4(Player* player); @@ -687,96 +691,96 @@ void func_E16C50_801AC918(Effect*); 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_801AFA5C(Object_2F4*); -void func_E16C50_801B099C(Object_2F4*); -void func_E16C50_801B0B60(Object_2F4*); -void func_E16C50_801B0EC0(Object_2F4*); +void func_E16C50_801AD688(Actor *); +void func_E16C50_801AD6C0(Actor*); +void func_E16C50_801AE168(Actor*); +void func_E16C50_801AE3AC(Actor *); +void func_E16C50_801AE3D8(Actor*); +void func_E16C50_801AEB44(Actor*); +void func_E16C50_801AF9FC(Actor *); +void func_E16C50_801AFA5C(Actor*); +void func_E16C50_801B099C(Actor*); +void func_E16C50_801B0B60(Actor*); +void func_E16C50_801B0EC0(Actor*); 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_801B504C(Actor*); +void func_E16C50_801B50E8(Actor*); +void func_E16C50_801B619C(Actor*); +void func_E16C50_801B6344(Actor *); +void func_E16C50_801B638C(Actor*); +void func_E16C50_801B6E54(Actor *); +void func_E16C50_801B6FF8(Actor*); +void func_E16C50_801B7A24(Actor*); +void func_E16C50_801B7AF0(Actor *); +void func_E16C50_801B7C78(Actor*); +void func_E16C50_801B90DC(Actor*); +void func_E16C50_801B91A4(Actor*); +void func_E16C50_801BA108(Actor*); +void func_E16C50_801BA26C(Actor*); +void func_E16C50_801BA4E4(Actor*); +void func_E16C50_801BA57C(Actor *); +void func_E16C50_801BA6A4(Actor*); +void func_E16C50_801BAD7C(Actor*); +void func_E16C50_801BADF8(Actor*); +void func_E16C50_801BB204(Actor*); +void func_E16C50_801BB26C(Actor *); +void func_E16C50_801BB79C(Actor*); +void func_E16C50_801BC930(Actor*); +void func_E16C50_801BC9A0(Actor*); +void func_E16C50_801BD264(Actor*); +void func_E16C50_801BD54C(Actor*); +void func_E16C50_801BDE6C(Actor*); void func_E16C50_801BE1FC(Object_80*); -void func_E16C50_801BE3F8(Object_2F4*); -void func_E16C50_801BEB1C(Object_2F4*); +void func_E16C50_801BE3F8(Actor*); +void func_E16C50_801BEB1C(Actor*); 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_801BEC68(Actor*); +void func_E16C50_801BEC74(Actor*); void func_E16C50_801BEC80(Player*); void func_E51970_80187520(s32, void*); -void func_E51970_80187960(Object_2F4*); +void func_E51970_80187960(Actor*); void func_E51970_8018BA2C(Object_58**); -void func_E51970_8018C158(Object_2F4*); +void func_E51970_8018C158(Actor*); void func_E51970_80191ED8(Object_58**); void func_E51970_80192264(void); void func_E51970_80193CA4(Boss *); -void func_E51970_80198594(Object_2F4*); +void func_E51970_80198594(Actor*); void func_E51970_80198930(Object_58**); -void func_E51970_80199900(Object_2F4 *, s32); -void func_E51970_80199C60(Object_2F4*); -void func_E51970_8019AB8C(Object_2F4*); +void func_E51970_80199900(Actor *, s32); +void func_E51970_80199C60(Actor*); +void func_E51970_8019AB8C(Actor*); void func_E51970_8019EA68(Object_58**); 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 *); -void func_E6A810_8018B720(Object_2F4 *); -void func_E6A810_8018B96C(Object_2F4 *); -void func_E6A810_8018BFB0(Object_2F4 *); -void func_E6A810_8018E3B0(Object_2F4 *); -void func_E6A810_8018E3CC(Object_2F4 *); -void func_E6A810_8018E5E8(Object_2F4 *); +void func_E6A810_80189B80(Actor *); +void func_E6A810_8018ADC4(Actor *); +void func_E6A810_8018B720(Actor *); +void func_E6A810_8018B96C(Actor *); +void func_E6A810_8018BFB0(Actor *); +void func_E6A810_8018E3B0(Actor *); +void func_E6A810_8018E3CC(Actor *); +void func_E6A810_8018E5E8(Actor *); void func_E6A810_8018EFF0(Object_4C *); void func_E6A810_8018F0D8(Object_80 *); 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 *); -void func_E6A810_801A4660(Object_2F4 *); -void func_E6A810_801A4AF8(Object_2F4 *); -void func_E6A810_801A5E2C(Object_2F4 *); -void func_E6A810_801A6134(Object_2F4 *); +void func_E6A810_80199F8C(Actor *); +void func_E6A810_801A3E70(Actor *); +void func_E6A810_801A4660(Actor *); +void func_E6A810_801A4AF8(Actor *); +void func_E6A810_801A5E2C(Actor *); +void func_E6A810_801A6134(Actor *); void func_E6A810_801A65E0(Object_80 *); -void func_E6A810_801A7D98(Object_2F4 *); +void func_E6A810_801A7D98(Actor *); void func_E6A810_801ACFBC(ObjectInit*); void func_E6A810_801AD080(void); void func_E6A810_801B5110(f32, f32, f32); @@ -789,20 +793,20 @@ 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_8018769C(Actor*); void func_E9F1D0_80187520(s32, void*); void func_E9F1D0_801878A8(Object_58**); -void func_E9F1D0_801888F4(Object_2F4 *); +void func_E9F1D0_801888F4(Actor *); void func_E9F1D0_80189214(void); void func_E9F1D0_8018BDD8(void); void func_E9F1D0_8018C390(Player*); void func_E9F1D0_8018D16C(Boss *); void func_E9F1D0_801961AC(Object_58**); -void func_E9F1D0_80196314(Object_2F4*); +void func_E9F1D0_80196314(Actor*); void func_E9F1D0_80196968(Object_58**); void func_E9F1D0_80197CC4(Boss *); -void func_E9F1D0_801A3BD4(Object_2F4*); -void func_E9F1D0_801A4CB0(Object_2F4*); +void func_E9F1D0_801A3BD4(Actor*); +void func_E9F1D0_801A4CB0(Actor*); void func_E9F1D0_801A5AD4(Player*); void func_E9F1D0_801A5FC0(Player*); void func_E9F1D0_801A6164(Player *); diff --git a/include/hud.h b/include/hud.h index 749e79b4..96419a6b 100644 --- a/include/hud.h +++ b/include/hud.h @@ -33,8 +33,8 @@ void func_8008D7F4(void); void func_8008D984(void); void func_8008DC34(void); void func_8008E5E8(void); -s32 func_80090E8C(Object_2F4*); -s32 func_800910C0(Object_2F4*); +s32 func_80090E8C(Actor*); +s32 func_800910C0(Actor*); // Weird addresses, assets maybe? extern u16 D_1000E80[]; diff --git a/include/sf64object.h b/include/sf64object.h index a0ee550a..64cee6df 100644 --- a/include/sf64object.h +++ b/include/sf64object.h @@ -43,7 +43,7 @@ typedef struct { } CollisionHeader2; // size = 0x24 typedef enum { - /* 0 */ COL1_0, // OBJ_2F4_180 + /* 0 */ COL1_0, // OBJ_ACTOR_180 /* 1 */ COL1_1, // OBJ_80_39 /* 2 */ COL1_2, /* 3 */ COL1_3, // OBJ_UNK_1000 @@ -207,7 +207,9 @@ typedef struct { /* 0x000 */ Object obj; /* 0x01C */ ObjectInfo info; /* 0x040 */ s32 index; - /* 0x044 */ char unk_44[0xA]; + /* 0x044 */ s16 unk_044; + /* 0x046 */ char unk_46[0x6]; + /* 0x04C */ s16 unk_04C; /* 0x04E */ s16 unk_04E; /* 0x050 */ s16 timer_050; /* 0x052 */ s16 timer_052; @@ -244,44 +246,24 @@ typedef struct { /* 0x04A */ s16 unk_04A; /* 0x04C */ s16 timer_04C; /* 0x04E */ s16 unk_04E; - /* 0x050 */ bool unk_050; - /* 0x054 */ bool unk_054; - /* 0x058 */ s32 unk_058; - /* 0x05C */ s32 unk_05C; - /* 0x060 */ s32 unk_060; - /* 0x064 */ s32 unk_064; - /* 0x068 */ s32 unk_068; - /* 0x06C */ s32 unk_06C; - /* 0x070 */ s32 unk_070; - /* 0x074 */ s32 unk_074; - /* 0x078 */ s32 unk_078; - /* 0x07C */ s32 unk_07C; - /* 0x080 */ s32 unk_080; - /* 0x084 */ s32 unk_084; - /* 0x088 */ s32 unk_088; - /* 0x08C */ s32 unk_08C; - /* 0x090 */ s32 unk_090; - /* 0x094 */ s32 unk_094; - /* 0x098 */ s32 unk_098; - /* 0x09C */ s32 unk_09C; - /* 0x0A0 */ char padA0[0x10]; - /* 0x0B0 */ s32 unk_0B0; + /* 0x050 */ s32 iwork[25]; /* 0x0B4 */ s16 unk_0B4; /* 0x0B6 */ s16 unk_0B6; /* 0x0B8 */ s16 unk_0B8; /* 0x0BA */ char pad0BA[0x2]; /* 0x0BC */ u16 timer_0BC; - /* 0x0BC */ u16 timer_0BE; + /* 0x0BE */ u16 timer_0BE; /* 0x0C0 */ u16 timer_0C0; /* 0x0C2 */ u16 timer_0C2; /* 0x0C4 */ u16 timer_0C4; /* 0x0C6 */ u16 timer_0C6; /* 0x0C8 */ u8 unk_0C8; /* 0x0C9 */ u8 unk_0C9; - /* 0x0C9 */ u8 timer_0CA[4]; + /* 0x0CA */ u8 timer_0CA[4]; /* 0x0CE */ s16 unk_0CE; /* 0x0D0 */ s8 unk_0D0; - /* 0x0D1 */ s16 unk_0D2; + /* 0x0D1 */ char pad0D1[0x1]; + /* 0x0D2 */ s16 unk_0D2; /* 0x0D4 */ s16 unk_0D4; /* 0x0D6 */ u16 unk_0D6; /* 0x0D8 */ Vec3f unk_0D8; @@ -292,38 +274,9 @@ typedef struct { /* 0x100 */ Vec3f sfxPos; /* 0x10C */ f32 gravity; /* 0x110 */ f32 scale; - /* 0x114 */ f32 unk_114; - /* 0x118 */ f32 unk_118; - /* 0x11C */ f32 unk_11C; - /* 0x120 */ f32 unk_120; - /* 0x124 */ Vec3f unk_124; - /* 0x130 */ f32 unk_130; - /* 0x134 */ f32 unk_134; - /* 0x138 */ f32 unk_138; - /* 0x13C */ f32 unk_13C; - /* 0x140 */ f32 unk_140; - /* 0x144 */ f32 unk_144; - /* 0x148 */ f32 unk_148; - /* 0x14C */ f32 unk_14C; - /* 0x150 */ f32 unk_150; - /* 0x154 */ f32 unk_154; - /* 0x158 */ f32 unk_158; - /* 0x15C */ f32 unk_15C; - /* 0x160 */ f32 unk_160; - /* 0x164 */ f32 unk_164; - /* 0x168 */ f32 unk_168; - /* 0x16C */ f32 unk_16C; - /* 0x170 */ f32 unk_170; - /* 0x174 */ f32 unk_174; - /* 0x178 */ f32 unk_178; - /* 0x17C */ f32 unk_17C; - /* 0x180 */ f32 unk_180; - /* 0x184 */ f32 unk_184; - /* 0x188 */ f32 unk_188; - /* 0x18C */ Vec3f unk_18C[28]; // could be joint table - /* 0x2DC */ Vec3f unk_2DC; - /* 0x2E8 */ Vec3f unk_2E8; -} Object_2F4; // size = 0x2F4 + /* 0x114 */ f32 fwork[30]; + /* 0x18C */ Vec3f vwork[30]; +} Actor; // size = 0x2F4 typedef enum{ /* -1 */ OBJ_INVALID=-1, @@ -503,122 +456,122 @@ typedef enum{ /* 173 */ OBJ_4C_173, /* 174 */ OBJ_4C_174, /* 175 */ OBJ_4C_175, - /* 176 */ OBJ_2F4_176, - /* 177 */ OBJ_2F4_177, - /* 178 */ OBJ_2F4_178, - /* 179 */ OBJ_2F4_179, - /* 180 */ OBJ_2F4_180, - /* 181 */ OBJ_2F4_181, - /* 182 */ OBJ_2F4_182, - /* 183 */ OBJ_2F4_183, - /* 184 */ OBJ_2F4_184, - /* 185 */ OBJ_2F4_185, - /* 186 */ OBJ_2F4_186, - /* 187 */ OBJ_2F4_187, - /* 188 */ OBJ_2F4_188, - /* 189 */ OBJ_2F4_189, - /* 190 */ OBJ_2F4_190, - /* 191 */ OBJ_2F4_191, - /* 192 */ OBJ_2F4_192, - /* 193 */ OBJ_2F4_193, - /* 194 */ OBJ_2F4_194, - /* 195 */ OBJ_2F4_195, - /* 196 */ OBJ_2F4_196, - /* 197 */ OBJ_2F4_197, - /* 198 */ OBJ_2F4_198, - /* 199 */ OBJ_2F4_199, - /* 200 */ OBJ_2F4_200, - /* 201 */ OBJ_2F4_201, - /* 202 */ OBJ_2F4_202, - /* 203 */ OBJ_2F4_203, - /* 204 */ OBJ_2F4_204, - /* 205 */ OBJ_2F4_205, - /* 206 */ OBJ_2F4_206, - /* 207 */ OBJ_2F4_207, - /* 208 */ OBJ_2F4_208, - /* 209 */ OBJ_2F4_209, - /* 210 */ OBJ_2F4_210, - /* 211 */ OBJ_2F4_211, - /* 212 */ OBJ_2F4_212, - /* 213 */ OBJ_2F4_213, - /* 214 */ OBJ_2F4_214, - /* 215 */ OBJ_2F4_215, - /* 216 */ OBJ_2F4_216, - /* 217 */ OBJ_2F4_217, - /* 218 */ OBJ_2F4_218, - /* 219 */ OBJ_2F4_219, - /* 220 */ OBJ_2F4_220, - /* 221 */ OBJ_2F4_221, - /* 222 */ OBJ_2F4_222, - /* 223 */ OBJ_2F4_223, - /* 224 */ OBJ_2F4_224, - /* 225 */ OBJ_2F4_225, - /* 226 */ OBJ_2F4_226, - /* 227 */ OBJ_2F4_227, - /* 228 */ OBJ_2F4_228, - /* 229 */ OBJ_2F4_229, - /* 230 */ OBJ_2F4_230, - /* 231 */ OBJ_2F4_231, - /* 232 */ OBJ_2F4_232, - /* 233 */ OBJ_2F4_233, - /* 234 */ OBJ_2F4_234, - /* 235 */ OBJ_2F4_235, - /* 236 */ OBJ_2F4_236, - /* 237 */ OBJ_2F4_237, - /* 238 */ OBJ_2F4_238, - /* 239 */ OBJ_2F4_239, - /* 240 */ OBJ_2F4_240, - /* 241 */ OBJ_2F4_241, - /* 242 */ OBJ_2F4_242, - /* 243 */ OBJ_2F4_243, - /* 244 */ OBJ_2F4_244, - /* 245 */ OBJ_2F4_245, - /* 246 */ OBJ_2F4_246, - /* 247 */ OBJ_2F4_247, - /* 248 */ OBJ_2F4_248, - /* 249 */ OBJ_2F4_249, - /* 250 */ OBJ_2F4_250, - /* 251 */ OBJ_2F4_251, - /* 252 */ OBJ_2F4_252, - /* 253 */ OBJ_2F4_253, - /* 254 */ OBJ_2F4_254, - /* 255 */ OBJ_2F4_255, - /* 256 */ OBJ_2F4_256, - /* 257 */ OBJ_2F4_257, - /* 258 */ OBJ_2F4_258, - /* 259 */ OBJ_2F4_259, - /* 260 */ OBJ_2F4_260, - /* 261 */ OBJ_2F4_261, - /* 262 */ OBJ_2F4_262, - /* 263 */ OBJ_2F4_263, - /* 264 */ OBJ_2F4_264, - /* 265 */ OBJ_2F4_265, - /* 266 */ OBJ_2F4_266, - /* 267 */ OBJ_2F4_267, - /* 268 */ OBJ_2F4_268, - /* 269 */ OBJ_2F4_269, - /* 270 */ OBJ_2F4_270, - /* 271 */ OBJ_2F4_271, - /* 272 */ OBJ_2F4_272, - /* 273 */ OBJ_2F4_273, - /* 274 */ OBJ_2F4_274, - /* 275 */ OBJ_2F4_275, - /* 276 */ OBJ_2F4_276, - /* 277 */ OBJ_2F4_277, - /* 278 */ OBJ_2F4_278, - /* 279 */ OBJ_2F4_279, - /* 280 */ OBJ_2F4_280, - /* 281 */ OBJ_2F4_281, - /* 282 */ OBJ_2F4_282, - /* 283 */ OBJ_2F4_283, - /* 284 */ OBJ_2F4_284, - /* 285 */ OBJ_2F4_285, - /* 286 */ OBJ_2F4_286, - /* 287 */ OBJ_2F4_287, - /* 288 */ OBJ_2F4_288, - /* 289 */ OBJ_2F4_289, - /* 290 */ OBJ_2F4_290, - /* 291 */ OBJ_2F4_291, + /* 176 */ OBJ_ACTOR_176, + /* 177 */ OBJ_ACTOR_177, + /* 178 */ OBJ_ACTOR_178, + /* 179 */ OBJ_ACTOR_179, + /* 180 */ OBJ_ACTOR_180, + /* 181 */ OBJ_ACTOR_181, + /* 182 */ OBJ_ACTOR_182, + /* 183 */ OBJ_ACTOR_183, + /* 184 */ OBJ_ACTOR_184, + /* 185 */ OBJ_ACTOR_185, + /* 186 */ OBJ_ACTOR_186, + /* 187 */ OBJ_ACTOR_187, + /* 188 */ OBJ_ACTOR_188, + /* 189 */ OBJ_ACTOR_189, + /* 190 */ OBJ_ACTOR_190, + /* 191 */ OBJ_ACTOR_191, + /* 192 */ OBJ_ACTOR_192, + /* 193 */ OBJ_ACTOR_193, + /* 194 */ OBJ_ACTOR_194, + /* 195 */ OBJ_ACTOR_195, + /* 196 */ OBJ_ACTOR_196, + /* 197 */ OBJ_ACTOR_197, + /* 198 */ OBJ_ACTOR_198, + /* 199 */ OBJ_ACTOR_199, + /* 200 */ OBJ_ACTOR_200, + /* 201 */ OBJ_ACTOR_201, + /* 202 */ OBJ_ACTOR_202, + /* 203 */ OBJ_ACTOR_203, + /* 204 */ OBJ_ACTOR_204, + /* 205 */ OBJ_ACTOR_205, + /* 206 */ OBJ_ACTOR_206, + /* 207 */ OBJ_ACTOR_207, + /* 208 */ OBJ_ACTOR_208, + /* 209 */ OBJ_ACTOR_209, + /* 210 */ OBJ_ACTOR_210, + /* 211 */ OBJ_ACTOR_211, + /* 212 */ OBJ_ACTOR_212, + /* 213 */ OBJ_ACTOR_213, + /* 214 */ OBJ_ACTOR_214, + /* 215 */ OBJ_ACTOR_215, + /* 216 */ OBJ_ACTOR_216, + /* 217 */ OBJ_ACTOR_217, + /* 218 */ OBJ_ACTOR_218, + /* 219 */ OBJ_ACTOR_219, + /* 220 */ OBJ_ACTOR_220, + /* 221 */ OBJ_ACTOR_221, + /* 222 */ OBJ_ACTOR_222, + /* 223 */ OBJ_ACTOR_223, + /* 224 */ OBJ_ACTOR_224, + /* 225 */ OBJ_ACTOR_225, + /* 226 */ OBJ_ACTOR_226, + /* 227 */ OBJ_ACTOR_227, + /* 228 */ OBJ_ACTOR_228, + /* 229 */ OBJ_ACTOR_229, + /* 230 */ OBJ_ACTOR_230, + /* 231 */ OBJ_ACTOR_231, + /* 232 */ OBJ_ACTOR_232, + /* 233 */ OBJ_ACTOR_233, + /* 234 */ OBJ_ACTOR_234, + /* 235 */ OBJ_ACTOR_235, + /* 236 */ OBJ_ACTOR_236, + /* 237 */ OBJ_ACTOR_237, + /* 238 */ OBJ_ACTOR_238, + /* 239 */ OBJ_ACTOR_239, + /* 240 */ OBJ_ACTOR_240, + /* 241 */ OBJ_ACTOR_241, + /* 242 */ OBJ_ACTOR_242, + /* 243 */ OBJ_ACTOR_243, + /* 244 */ OBJ_ACTOR_244, + /* 245 */ OBJ_ACTOR_245, + /* 246 */ OBJ_ACTOR_246, + /* 247 */ OBJ_ACTOR_247, + /* 248 */ OBJ_ACTOR_248, + /* 249 */ OBJ_ACTOR_249, + /* 250 */ OBJ_ACTOR_250, + /* 251 */ OBJ_ACTOR_251, + /* 252 */ OBJ_ACTOR_252, + /* 253 */ OBJ_ACTOR_253, + /* 254 */ OBJ_ACTOR_254, + /* 255 */ OBJ_ACTOR_255, + /* 256 */ OBJ_ACTOR_256, + /* 257 */ OBJ_ACTOR_257, + /* 258 */ OBJ_ACTOR_258, + /* 259 */ OBJ_ACTOR_259, + /* 260 */ OBJ_ACTOR_260, + /* 261 */ OBJ_ACTOR_261, + /* 262 */ OBJ_ACTOR_262, + /* 263 */ OBJ_ACTOR_263, + /* 264 */ OBJ_ACTOR_264, + /* 265 */ OBJ_ACTOR_265, + /* 266 */ OBJ_ACTOR_266, + /* 267 */ OBJ_ACTOR_267, + /* 268 */ OBJ_ACTOR_268, + /* 269 */ OBJ_ACTOR_269, + /* 270 */ OBJ_ACTOR_270, + /* 271 */ OBJ_ACTOR_271, + /* 272 */ OBJ_ACTOR_272, + /* 273 */ OBJ_ACTOR_273, + /* 274 */ OBJ_ACTOR_274, + /* 275 */ OBJ_ACTOR_275, + /* 276 */ OBJ_ACTOR_276, + /* 277 */ OBJ_ACTOR_277, + /* 278 */ OBJ_ACTOR_278, + /* 279 */ OBJ_ACTOR_279, + /* 280 */ OBJ_ACTOR_280, + /* 281 */ OBJ_ACTOR_281, + /* 282 */ OBJ_ACTOR_282, + /* 283 */ OBJ_ACTOR_283, + /* 284 */ OBJ_ACTOR_284, + /* 285 */ OBJ_ACTOR_285, + /* 286 */ OBJ_ACTOR_286, + /* 287 */ OBJ_ACTOR_287, + /* 288 */ OBJ_ACTOR_288, + /* 289 */ OBJ_ACTOR_289, + /* 290 */ OBJ_ACTOR_290, + /* 291 */ OBJ_ACTOR_291, /* 292 */ OBJ_BOSS_292, /* 293 */ OBJ_BOSS_293, /* 294 */ OBJ_BOSS_294, diff --git a/include/variables.h b/include/variables.h index b3ad62a0..fed1e4d2 100644 --- a/include/variables.h +++ b/include/variables.h @@ -141,7 +141,7 @@ extern Vec3f D_800C9F2C; // fox_display extern s32 D_800CA220; extern f32 D_800CA230; -extern Object_2F4* D_800CA234; +extern Actor* D_800CA234; extern s32 D_Timer_800CA238; // fox_edata @@ -387,7 +387,7 @@ extern s32 D_80161AB8; // 0x44 extern Object_80 gObjects80[50]; extern Object_4C gObjects4C[40]; -extern Object_2F4 gObjects2F4[60]; +extern Actor gActors[60]; extern Boss gBosses[4]; extern Effect gEffects[100]; extern Item gItems[20]; diff --git a/linker_scripts/us/symbol_addrs.txt b/linker_scripts/us/symbol_addrs.txt index 4ae1305f..fb146f4c 100644 --- a/linker_scripts/us/symbol_addrs.txt +++ b/linker_scripts/us/symbol_addrs.txt @@ -86,6 +86,7 @@ D_800D8594 = 0x800D8594; // force_migration:True D_800C93EC = 0x800C93EC; // force_migration:True D_DF4260_8019B1EC = 0x8019B1EC; // force_migration:True segment:ovl_DF4260 +D_DF4260_8019B6D8 = 0x8019B6D8; // size:0x110 segment:ovl_DF4260 D_E16C50_801C171C = 0x801C171C; // force_migration:True segment:ovl_E16C50 D_E16C50_801C1728 = 0x801C1728; // force_migration:True segment:ovl_E16C50 D_E16C50_801C1730 = 0x801C1730; // force_migration:True segment:ovl_E16C50 diff --git a/linker_scripts/us/symbol_addrs_engine.txt b/linker_scripts/us/symbol_addrs_engine.txt index bfb60dd0..0606ad56 100644 --- a/linker_scripts/us/symbol_addrs_engine.txt +++ b/linker_scripts/us/symbol_addrs_engine.txt @@ -201,8 +201,8 @@ func_8005D1F0 = 0x8005D1F0; func_8005D3CC = 0x8005D3CC; Object_80_Draw = 0x8005D654; Object_4C_Draw = 0x8005D8B8; -Object_2F4_Draw2 = 0x8005D954; -Object_2F4_Draw1 = 0x8005DBC0; +Actor_Draw2 = 0x8005D954; +Actor_Draw1 = 0x8005DBC0; Boss_Draw = 0x8005E1B8; Effect_Draw1 = 0x8005E454; Effect_Draw2 = 0x8005E538; @@ -231,13 +231,13 @@ func_80061148 = 0x80061148; Object_SetInfo = 0x800612B8; Object_80_Initialize = 0x80061364; Object_4C_Initialize = 0x80061394; -Object_2F4_Initialize = 0x800613C4; +Actor_Initialize = 0x800613C4; Boss_Initialize = 0x80061404; Item_Initialize = 0x80061444; Effect_Initialize = 0x80061474; Object_80_Load = 0x800614B4; Object_4C_Load = 0x800615A0; -Object_2F4_Load = 0x8006168C; +Actor_Load = 0x8006168C; Boss_Load = 0x80061778; Item_Load = 0x80061864; func_80061958 = 0x80061958; @@ -309,7 +309,7 @@ func_800696F8 = 0x800696F8; func_80069858 = 0x80069858; func_80069924 = 0x80069924; func_80069A10 = 0x80069A10; -Object_2F4_Update = 0x80069AAC; +Actor_Update = 0x80069AAC; Boss_Update = 0x80069CBC; Object_80_Update = 0x80069DF4; Object_4C_Update = 0x80069E88; @@ -385,7 +385,7 @@ gLaserStrength = 0x80161AA8;//size:0x10 D_80161AB8 = 0x80161AB8; gObjects80 = 0x80161B00; //size:0x1900 gObjects4C = 0x80163400; //size:0xBE0 -gObjects2F4 = 0x80163FE0; //size:0xB130 +gActors = 0x80163FE0; //size:0xB130 gBosses = 0x8016F110; //size:0x1020 gEffects = 0x80170130; //size:0x36B0 gItems = 0x801737E0; //size:0x870 diff --git a/src/main/fox_360.c b/src/main/fox_360.c index 63d250ae..5dbd94a4 100644 --- a/src/main/fox_360.c +++ b/src/main/fox_360.c @@ -4,7 +4,7 @@ typedef struct { s32 unk_00; char unk_04[0x2F0]; } UnkStruct_1515F0; // size = 0x2F4 - // placeholder for audio struct. struct size being equal to Object_2F4 probably coincidental + // placeholder for audio struct. struct size being equal to Actor probably coincidental extern UnkStruct_1515F0 D_801515F0[]; /* static */ Vec3f D_800C9A90 = { 0.0f, -10.0f, 0.0f }; @@ -51,7 +51,7 @@ s32 D_8015F93C; s32 D_8015F940; f32 D_8015F944; -void func_8002E3E0(Object_2F4* obj2F4) { +void func_8002E3E0(Actor* actor) { s32 hits = 0; (void) "time=%d\n"; @@ -81,7 +81,7 @@ void func_8002E3E0(Object_2F4* obj2F4) { } } if (hits != 0) { - func_80077240(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, hits); + func_80077240(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, hits); } gHitCount += hits; D_80177850 = 15; @@ -123,20 +123,20 @@ void func_8002E64C(Boss* boss) { func_E51970_80187520(94, boss); } -void func_8002E670(Object_2F4* obj2F4) { - func_E51970_80187520(95, obj2F4); +void func_8002E670(Actor* actor) { + func_E51970_80187520(95, actor); } -void func_8002E694(Object_2F4* obj2F4) { - func_E51970_80187520(96, obj2F4); +void func_8002E694(Actor* actor) { + func_E51970_80187520(96, actor); } -void func_8002E6B8(Object_2F4* obj2F4) { - func_E51970_80187520(97, obj2F4); +void func_8002E6B8(Actor* actor) { + func_E51970_80187520(97, actor); } -void func_8002E6DC(Object_2F4* obj2F4) { - func_E51970_80187520(98, obj2F4); +void func_8002E6DC(Actor* actor) { + func_E51970_80187520(98, actor); } void func_8002E700(Player* player) { @@ -226,7 +226,7 @@ void func_8002E700(Player* player) { player->unk_014 = 0; player->unk_018 = 0; player->unk_01C = 0; - gObjects2F4->unk_0B8 = 2; + gActors->unk_0B8 = 2; } break; } @@ -277,10 +277,10 @@ void func_8002ED60(Player* player) { } void func_8002EE34(void) { - D_8015F904 = gRadioState = gObjects2F4[1].unk_054 = gObjects2F4[2].unk_054 = gObjects2F4[3].unk_054 = 0; + D_8015F904 = gRadioState = gActors[1].iwork[1] = gActors[2].iwork[1] = gActors[3].iwork[1] = 0; } -void func_8002EE64(Object_2F4* obj2F4) { +void func_8002EE64(Actor* actor) { s32 i; s32 colId; Object_58* obj58; @@ -298,23 +298,23 @@ void func_8002EE64(Object_2F4* obj2F4) { s32 pad1; s32 pad2; - obj2F4->unk_178 = obj2F4->unk_17C = obj2F4->unk_184 = obj2F4->unk_180 = 0.0f; - if ((obj2F4->unk_0C9 != 0) && (gLevelMode == LEVELMODE_ALL_RANGE) && (gLevelType == LEVELTYPE_PLANET)) { + actor->fwork[25] = actor->fwork[26] = actor->fwork[28] = actor->fwork[27] = 0.0f; + if ((actor->unk_0C9 != 0) && (gLevelMode == LEVELMODE_ALL_RANGE) && (gLevelType == LEVELTYPE_PLANET)) { for (i = 0, obj58 = gObjects58; i < 200; i++, obj58++) { if ((obj58->obj.status == 2) && ((obj58->obj.id == OBJ_80_150) || (obj58->obj.id == OBJ_80_149) || (obj58->obj.id == OBJ_80_148) || (obj58->obj.id == OBJ_80_1) || (obj58->obj.id == OBJ_80_3)) && - (fabsf(obj58->obj.pos.x - obj2F4->obj.pos.x) < 2500.0f) && - (fabsf(obj58->obj.pos.z - obj2F4->obj.pos.z) < 2500.0f)) { + (fabsf(obj58->obj.pos.x - actor->obj.pos.x) < 2500.0f) && + (fabsf(obj58->obj.pos.z - actor->obj.pos.z) < 2500.0f)) { temp1.x = obj58->obj.pos.x; temp1.y = obj58->obj.pos.y; temp1.z = obj58->obj.pos.z; temp4 = obj58->obj.rot.y; Matrix_RotateY(gCalcMatrix, -temp4 * M_DTOR, 0); - spE4.x = obj2F4->obj.pos.x - temp1.x; + spE4.x = actor->obj.pos.x - temp1.x; spE4.y = 0.0f; - spE4.z = obj2F4->obj.pos.z - temp1.z; + spE4.z = actor->obj.pos.z - temp1.z; Matrix_MultVec3fNoTranslate(gCalcMatrix, &spE4, &spD8); spC0.x = temp1.x; spC0.y = temp1.y; @@ -330,10 +330,10 @@ void func_8002EE64(Object_2F4* obj2F4) { colId = COL1_6; } if (func_800998FC(&spCC, &spC0, &sp94, colId, &spA8, spA0) > 0) { - obj2F4->unk_178 = spA8.y; - obj2F4->unk_17C = spA0[0]; - obj2F4->unk_184 = spA0[1]; - obj2F4->unk_180 = (temp4 / 180.0f) * M_PI; + actor->fwork[25] = spA8.y; + actor->fwork[26] = spA0[0]; + actor->fwork[28] = spA0[1]; + actor->fwork[27] = (temp4 / 180.0f) * M_PI; } } else { colId = COL2_0; @@ -341,10 +341,10 @@ void func_8002EE64(Object_2F4* obj2F4) { colId = COL2_3; } if (func_800A3690(&spCC, &spC0, colId, &spB4)) { - obj2F4->unk_178 = spB4.y; - obj2F4->unk_17C = spB4.x; - obj2F4->unk_184 = spB4.z; - obj2F4->unk_180 = (temp4 / 180.0f) * M_PI; + actor->fwork[25] = spB4.y; + actor->fwork[26] = spB4.x; + actor->fwork[28] = spB4.z; + actor->fwork[27] = (temp4 / 180.0f) * M_PI; } } } @@ -353,90 +353,90 @@ void func_8002EE64(Object_2F4* obj2F4) { } void func_8002F180(void) { - Object_2F4* obj2F4; + Actor* actor; s32 i; s32 temp = 4; - for (i = 0, obj2F4 = gObjects2F4; i < temp; i++, obj2F4++) { + for (i = 0, actor = gActors; i < temp; i++, actor++) { if ((i > 0) && (gTeamShields[i] <= 0)) { continue; } - Object_2F4_Initialize(obj2F4); - obj2F4->obj.status = 2; - obj2F4->obj.id = OBJ_2F4_197; - Object_SetInfo(&obj2F4->info, obj2F4->obj.id); + Actor_Initialize(actor); + actor->obj.status = 2; + actor->obj.id = OBJ_ACTOR_197; + Object_SetInfo(&actor->info, actor->obj.id); if (i == 0) { - obj2F4->unk_0E4 = 1000; + actor->unk_0E4 = 1000; } else { - obj2F4->obj.pos.x = D_800C9A9C[i].x; - obj2F4->obj.pos.y = D_800C9A9C[i].y; - obj2F4->obj.pos.z = D_800C9A9C[i].z; - obj2F4->unk_0E4 = D_800C9ACC[i]; + actor->obj.pos.x = D_800C9A9C[i].x; + actor->obj.pos.y = D_800C9A9C[i].y; + actor->obj.pos.z = D_800C9A9C[i].z; + actor->unk_0E4 = D_800C9ACC[i]; if (gCurrentLevel == LEVEL_KATINA) { - obj2F4->unk_0E6 = D_800C9AEC[i]; + actor->unk_0E6 = D_800C9AEC[i]; } else { - obj2F4->unk_0E6 = D_800C9ADC[i]; + actor->unk_0E6 = D_800C9ADC[i]; } - obj2F4->unk_0B8 = 2; - obj2F4->unk_0F4.y = 180.0f; - if (obj2F4->unk_0E6 < 0) { - obj2F4->unk_0B8 = 3; + actor->unk_0B8 = 2; + actor->unk_0F4.y = 180.0f; + if (actor->unk_0E6 < 0) { + actor->unk_0B8 = 3; } - obj2F4->unk_0CE = 50; + actor->unk_0CE = 50; if ((gLevelType == LEVELTYPE_PLANET) || (gCurrentLevel == LEVEL_BOLSE)) { - obj2F4->unk_0C9 = 1; + actor->unk_0C9 = 1; } - obj2F4->unk_07C = 1; - if (obj2F4->unk_0E4 < 4) { - Audio_PlaySfx(0x3100000C, &obj2F4->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); - obj2F4->info.hitbox = SEGMENTED_TO_VIRTUAL(D_800CC01C); - obj2F4->info.unk_1C = 0.0f; - obj2F4->info.bonus = 0; + actor->iwork[11] = 1; + if (actor->unk_0E4 < 4) { + Audio_PlaySfx(0x3100000C, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + actor->info.hitbox = SEGMENTED_TO_VIRTUAL(D_800CC01C); + actor->info.unk_1C = 0.0f; + actor->info.bonus = 0; } else { - Audio_PlaySfx(0x31000011, &obj2F4->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + Audio_PlaySfx(0x31000011, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } } } } void func_8002F3E0(void) { - Object_2F4* obj2F4; + Actor* actor; s32 i; - for (i = 0, obj2F4 = &gObjects2F4[4]; i < 4; i++, obj2F4++) { + for (i = 0, actor = &gActors[4]; i < 4; i++, actor++) { if (D_80177CD0[i] != 0) { - Object_2F4_Initialize(obj2F4); - obj2F4->obj.status = 2; - obj2F4->obj.pos.x = D_800C9AFC[i].x; - obj2F4->obj.pos.y = D_800C9AFC[i].y; - obj2F4->obj.pos.z = D_800C9AFC[i].z; - obj2F4->obj.id = OBJ_2F4_197; - obj2F4->unk_0E4 = i + 4; - obj2F4->unk_0E6 = D_800C9B2C[i]; - gObjects2F4[obj2F4->unk_0E6].unk_0E6 = -1; - obj2F4->unk_0CE = 100; - obj2F4->unk_0C9 = 1; - obj2F4->unk_0F4.y = 225.0f; - obj2F4->unk_0B8 = 0; - obj2F4->timer_0BC = 250; - obj2F4->unk_0F4.x = -20.0f; - obj2F4->unk_07C = 1; + Actor_Initialize(actor); + actor->obj.status = 2; + actor->obj.pos.x = D_800C9AFC[i].x; + actor->obj.pos.y = D_800C9AFC[i].y; + actor->obj.pos.z = D_800C9AFC[i].z; + actor->obj.id = OBJ_ACTOR_197; + actor->unk_0E4 = i + 4; + actor->unk_0E6 = D_800C9B2C[i]; + gActors[actor->unk_0E6].unk_0E6 = -1; + actor->unk_0CE = 100; + actor->unk_0C9 = 1; + actor->unk_0F4.y = 225.0f; + actor->unk_0B8 = 0; + actor->timer_0BC = 250; + actor->unk_0F4.x = -20.0f; + actor->iwork[11] = 1; if (gCurrentLevel == LEVEL_VENOM_2) { - obj2F4->obj.rot.z = D_800C9B3C[i]; - obj2F4->unk_044 = 25; + actor->obj.rot.z = D_800C9B3C[i]; + actor->unk_044 = 25; } - Object_SetInfo(&obj2F4->info, obj2F4->obj.id); + Object_SetInfo(&actor->info, actor->obj.id); if (gCurrentLevel == LEVEL_VENOM_2) { - Audio_PlaySfx(0x31004006, &obj2F4->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + Audio_PlaySfx(0x31004006, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } else { - Audio_PlaySfx(0x31004005, &obj2F4->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + Audio_PlaySfx(0x31004005, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } } } } void func_8002F5F4(u16* msg, s32 character) { - if ((D_80178300 == 0) && (gObjects2F4[0].unk_0B8 == 2) && (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_0)) { + if ((D_80178300 == 0) && (gActors[0].unk_0B8 == 2) && (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_0)) { func_800BA808(msg, character); } } @@ -448,8 +448,8 @@ void func_8002F64C(u16* msg, s32 character) { func_8002F5F4(msg, character); } -void func_8002F69C(Object_2F4* obj2F4) { - Object_2F4* var_s0; +void func_8002F69C(Actor* actor) { + Actor* var_s0; s32 i; if (D_8015F904 != 0) { @@ -466,7 +466,7 @@ void func_8002F69C(Object_2F4* obj2F4) { } if (D_8015F928 == D_800C9B4C) { func_8002F3E0(); - obj2F4->unk_0B8 = 3; + actor->unk_0B8 = 3; gPlayer[0].state_1C8 = PLAYERSTATE_1C8_0; if ((gCurrentLevel == LEVEL_VENOM_2) || (gCurrentLevel == LEVEL_BOLSE)) { gPlayer[0].unk_034 = 20.0f; @@ -480,26 +480,26 @@ void func_8002F69C(Object_2F4* obj2F4) { } 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; + gPlayer[0].camAt.x = gActors[4].obj.pos.x; + gPlayer[0].camAt.y = gActors[4].obj.pos.y; + gPlayer[0].camAt.z = gActors[4].obj.pos.z; } if (D_8015F928 > D_800C9B4C) { if (D_8015F908 == 0) { D_8015F940++; - for (i = 1, var_s0 = &gObjects2F4[1]; i < 8; i++, var_s0++) { + for (i = 1, var_s0 = &gActors[1]; i < 8; i++, var_s0++) { if ((var_s0->obj.status == 2) && (var_s0->unk_0B8 == 2) && (var_s0->unk_0CE < 70) && (var_s0->timer_0C6 != 0) && (var_s0->unk_0D4 == 1)) { - if ((gObjects2F4[var_s0->unk_0E6].unk_0B8 == 3) && (gObjects2F4[var_s0->unk_0E6].unk_0E4 < 8)) { - gObjects2F4[var_s0->unk_0E6].unk_058 = 0; - gObjects2F4[var_s0->unk_0E6].unk_0B8 = 2; - gObjects2F4[var_s0->unk_0E6].unk_0E6 = var_s0->unk_0E4; - if (D_800CA234 == &gObjects2F4[var_s0->unk_0E6]) { + if ((gActors[var_s0->unk_0E6].unk_0B8 == 3) && (gActors[var_s0->unk_0E6].unk_0E4 < 8)) { + gActors[var_s0->unk_0E6].iwork[2] = 0; + gActors[var_s0->unk_0E6].unk_0B8 = 2; + gActors[var_s0->unk_0E6].unk_0E6 = var_s0->unk_0E4; + if (D_800CA234 == &gActors[var_s0->unk_0E6]) { D_800CA234 = NULL; D_Timer_800CA238 = 0; } - if (gObjects2F4[var_s0->unk_0E6].unk_05C == 0) { - switch (gObjects2F4[var_s0->unk_0E6].unk_0E4) { + if (gActors[var_s0->unk_0E6].iwork[3] == 0) { + switch (gActors[var_s0->unk_0E6].unk_0E4) { case 1: func_8002F5F4(gMsg_ID_9160, RCID_FALCO); break; @@ -510,7 +510,7 @@ void func_8002F69C(Object_2F4* obj2F4) { func_8002F5F4(gMsg_ID_9180, RCID_PEPPY); break; } - gObjects2F4[var_s0->unk_0E6].unk_05C = 200; + gActors[var_s0->unk_0E6].iwork[3] = 200; } } if (var_s0->unk_0E4 == 4) { @@ -525,66 +525,66 @@ void func_8002F69C(Object_2F4* obj2F4) { } } if (gTeamShields[1] <= 0) { - gObjects2F4[5].unk_0E6 = 0; + gActors[5].unk_0E6 = 0; } if (gTeamShields[2] <= 0) { - gObjects2F4[7].unk_0E6 = 0; + gActors[7].unk_0E6 = 0; } if (gTeamShields[3] <= 0) { - gObjects2F4[6].unk_0E6 = 0; + gActors[6].unk_0E6 = 0; } } } } -void func_8002FB4C(Object_2F4* obj2F4) { - Object_2F4* var_a2; - Object_2F4* var_v1; +void func_8002FB4C(Actor* actor) { + Actor* var_a2; + Actor* var_v1; s32 var_a0; s32 j; s32 i; - for (i = 10, var_v1 = &gObjects2F4[10]; i < 60; i++, var_v1++) { - if ((var_v1->obj.status == 2) && (var_v1->obj.id == OBJ_2F4_197) && (var_v1->unk_0B6 == 0) && + for (i = 10, var_v1 = &gActors[10]; i < 60; i++, var_v1++) { + if ((var_v1->obj.status == 2) && (var_v1->obj.id == OBJ_ACTOR_197) && (var_v1->unk_0B6 == 0) && (var_v1->unk_0E6 < 0)) { var_a0 = false; - for (j = 1, var_a2 = &gObjects2F4[1]; j < 4; j++, var_a2++) { - if ((j != obj2F4->index) && (i == var_a2->unk_0E6)) { + for (j = 1, var_a2 = &gActors[1]; j < 4; j++, var_a2++) { + if ((j != actor->index) && (i == var_a2->unk_0E6)) { var_a0 = true; } } if (!var_a0) { - obj2F4->unk_0E6 = i; - obj2F4->unk_0B8 = 2; - obj2F4->unk_058 = 0; + actor->unk_0E6 = i; + actor->unk_0B8 = 2; + actor->iwork[2] = 0; break; } } } } -void func_8002FC00(Object_2F4* obj2F4) { - Object_2F4* var_s1; +void func_8002FC00(Actor* actor) { + Actor* var_s1; s32 var_s5; - for (var_s5 = 0, var_s1 = &gObjects2F4[10]; var_s5 < 50; var_s5++, var_s1++) { + for (var_s5 = 0, var_s1 = &gActors[10]; var_s5 < 50; var_s5++, var_s1++) { if ((var_s1->obj.status == 3) && (var_s1->unk_0E6 > 0) && (var_s1->unk_0E6 < 4)) { - Object_2F4* var_v0; + Actor* var_v0; s32 var_v1; - for (var_v1 = 0, var_v0 = &gObjects2F4[10]; var_v1 < 51; var_v1++, var_v0++) { + for (var_v1 = 0, var_v0 = &gActors[10]; var_v1 < 51; var_v1++, var_v0++) { if ((var_v0->obj.status == 2) && (var_v0->unk_0B8 == 2) && (var_v0->unk_0E6 == var_s1->unk_0E6)) { return; } } if (gTeamShields[var_s1->unk_0E6] > 0) { - func_8002FB4C(&gObjects2F4[var_s1->unk_0E6]); - if ((var_s1->unk_064 != 0) && (var_s1->unk_0D4 == 1) && (gObjects2F4[var_s1->unk_0E6].unk_05C == 0)) { - if (D_800CA234 == &gObjects2F4[var_s1->unk_0E6]) { + func_8002FB4C(&gActors[var_s1->unk_0E6]); + if ((var_s1->iwork[5] != 0) && (var_s1->unk_0D4 == 1) && (gActors[var_s1->unk_0E6].iwork[3] == 0)) { + if (D_800CA234 == &gActors[var_s1->unk_0E6]) { D_800CA234 = NULL; D_Timer_800CA238 = 0; } - switch (gObjects2F4[var_s1->unk_0E6].unk_0E4) { + switch (gActors[var_s1->unk_0E6].unk_0E4) { case 1: func_8002F5F4(gMsg_ID_9160, RCID_FALCO); break; @@ -595,8 +595,8 @@ void func_8002FC00(Object_2F4* obj2F4) { func_8002F5F4(gMsg_ID_9180, RCID_PEPPY); break; } - gObjects2F4[var_s1->unk_0E6].unk_05C = 200; - gObjects2F4[var_s1->unk_0E6].timer_0C4 = 600; + gActors[var_s1->unk_0E6].iwork[3] = 200; + gActors[var_s1->unk_0E6].timer_0C4 = 600; } } } @@ -615,8 +615,8 @@ bool func_8002FE74(void) { return false; } -void func_8002FEF0(Object_2F4* arg0) { - Object_2F4* var_s0; +void func_8002FEF0(Actor* arg0) { + Actor* var_s0; s32 i; if ((D_80161690 != 0) && (gControllerPress[gMainController].button & R_CBUTTONS)) { @@ -629,11 +629,11 @@ void func_8002FEF0(Object_2F4* arg0) { if (D_8015F900 != 0) { D_8015F900--; if (D_8015F900 == 0) { - for (i = 20, var_s0 = &gObjects2F4[20]; i < 60; i++, var_s0++) { + for (i = 20, var_s0 = &gActors[20]; i < 60; i++, var_s0++) { if (var_s0->obj.status == 0) { - Object_2F4_Initialize(var_s0); + Actor_Initialize(var_s0); var_s0->obj.status = 1; - var_s0->obj.id = OBJ_2F4_291; + var_s0->obj.id = OBJ_ACTOR_291; if (gCurrentLevel == LEVEL_SECTOR_Z) { var_s0->obj.pos.x = 200.0f; var_s0->obj.pos.y = -500.0f; @@ -663,33 +663,33 @@ void func_8002FEF0(Object_2F4* arg0) { } } -void func_8003010C(Object_2F4* obj2F4) { +void func_8003010C(Actor* actor) { if ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_4) || (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_6)) { - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); + Object_Kill(&actor->obj, &actor->sfxPos); return; } D_8015F928++; switch (gCurrentLevel) { case LEVEL_FORTUNA: - func_E51970_80187960(obj2F4); + func_E51970_80187960(actor); break; case LEVEL_KATINA: - func_E51970_80198594(obj2F4); + func_E51970_80198594(actor); break; case LEVEL_BOLSE: - func_E51970_8018C158(obj2F4); + func_E51970_8018C158(actor); break; case LEVEL_SECTOR_Z: - func_E51970_8019AB8C(obj2F4); + func_E51970_8019AB8C(actor); break; case LEVEL_VENOM_2: - func_E9F1D0_80196314(obj2F4); + func_E9F1D0_80196314(actor); break; } - func_8002FEF0(obj2F4); + func_8002FEF0(actor); } -s32 func_800301F4(Object_2F4* obj2F4) { +s32 func_800301F4(Actor* actor) { Boss* boss; f32 temp_ft4; f32 temp_ft5; @@ -700,16 +700,16 @@ s32 func_800301F4(Object_2F4* obj2F4) { if (gLevelMode == LEVELMODE_ON_RAILS) { return 0; } - sp1C = __sinf(obj2F4->obj.rot.y * M_DTOR); - sp18 = __cosf(obj2F4->obj.rot.y * M_DTOR); - temp_ft4 = obj2F4->unk_138 * 10.0f + (sp1C * 650.0f); - temp_ft5 = obj2F4->unk_138 * 10.0f + (sp18 * 650.0f); + sp1C = __sinf(actor->obj.rot.y * M_DTOR); + sp18 = __cosf(actor->obj.rot.y * M_DTOR); + temp_ft4 = actor->fwork[9] * 10.0f + (sp1C * 650.0f); + temp_ft5 = actor->fwork[9] * 10.0f + (sp18 * 650.0f); for (i = 0; i < 200; i++) { if ((gObjects58[i].obj.status == 2) && - (fabsf(gObjects58[i].obj.pos.x - (obj2F4->obj.pos.x + temp_ft4)) < 1000.0f) && - (fabsf(gObjects58[i].obj.pos.z - (obj2F4->obj.pos.z + temp_ft5)) < 1000.0f)) { - if (fabsf(gObjects58[i].obj.pos.y - obj2F4->obj.pos.y) < 1000.0f) { - if (gObjects58[i].obj.pos.y < obj2F4->obj.pos.y) { + (fabsf(gObjects58[i].obj.pos.x - (actor->obj.pos.x + temp_ft4)) < 1000.0f) && + (fabsf(gObjects58[i].obj.pos.z - (actor->obj.pos.z + temp_ft5)) < 1000.0f)) { + if (fabsf(gObjects58[i].obj.pos.y - actor->obj.pos.y) < 1000.0f) { + if (gObjects58[i].obj.pos.y < actor->obj.pos.y) { return 1; } else { return -1; @@ -718,10 +718,10 @@ s32 func_800301F4(Object_2F4* obj2F4) { } } 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) { + if ((gCurrentLevel == LEVEL_SECTOR_Z) && (fabsf(boss->obj.pos.x - (actor->obj.pos.x + temp_ft4)) < 2000.0f) && + (fabsf(boss->obj.pos.z - (actor->obj.pos.z + temp_ft5)) < 2000.0f)) { + if (fabsf(boss->obj.pos.y - actor->obj.pos.y) < 1500.0f) { + if (boss->obj.pos.y < actor->obj.pos.y) { return 1; } else { return -1; @@ -731,7 +731,7 @@ s32 func_800301F4(Object_2F4* obj2F4) { return 0; } -s32 func_8003049C(Object_2F4* arg0) { +s32 func_8003049C(Actor* arg0) { Object_58* var_v0_2; s32 i; f32 sp44; @@ -751,8 +751,8 @@ s32 func_8003049C(Object_2F4* arg0) { } sp40 = __sinf(arg0->obj.rot.y * M_DTOR); sp3C = __cosf(arg0->obj.rot.y * M_DTOR); - temp_fa0 = arg0->unk_138 * 10.0f + (sp40 * 650.0f); - temp_ft4 = arg0->unk_138 * 10.0f + (sp3C * 650.0f); + temp_fa0 = arg0->fwork[9] * 10.0f + (sp40 * 650.0f); + temp_ft4 = arg0->fwork[9] * 10.0f + (sp3C * 650.0f); if (gLevelMode == LEVELMODE_ALL_RANGE) { for (i = 0, var_v0_2 = gObjects58; i < 200; i++, var_v0_2++) { if ((var_v0_2->obj.status == 2) && (fabsf(var_v0_2->obj.pos.x - (arg0->obj.pos.x + temp_fa0)) < 1200.0f) && @@ -784,7 +784,7 @@ s32 func_8003049C(Object_2F4* arg0) { return 0; } -void func_8003088C(Object_2F4* arg0) { +void func_8003088C(Actor* arg0) { s32 var_a1; Vec3f sp48; Vec3f sp3C; @@ -800,10 +800,10 @@ void func_8003088C(Object_2F4* arg0) { if (((arg0->unk_0E4 < 4) || (arg0->unk_0E4 == 9) || (arg0->unk_0E4 == 8)) && (arg0->unk_0D0 == 2)) { arg0->unk_0D0 = 0; } - if ((arg0->unk_0D0 == 2) && (arg0->unk_16C > 0.0f)) { + if ((arg0->unk_0D0 == 2) && (arg0->fwork[22] > 0.0f)) { arg0->unk_0D0 = 0; } - if (arg0->unk_170 > 1.0f) { + if (arg0->fwork[23] > 1.0f) { arg0->unk_0D0 = 0; } if (arg0->unk_0D0 != 0) { @@ -835,7 +835,7 @@ void func_8003088C(Object_2F4* arg0) { if (arg0->unk_0E4 == 200) { func_E51970_80199900(arg0, 1); if (arg0->unk_0D4 == 1) { - if (gObjects2F4[8].obj.status == 2) { + if (gActors[8].obj.status == 2) { func_800BA808(gMsg_ID_16140, RCID_KATT); } func_80077240(arg0->obj.pos.x, arg0->obj.pos.y, arg0->obj.pos.z, 10); @@ -860,9 +860,9 @@ void func_8003088C(Object_2F4* arg0) { return; } arg0->timer_0C6 = 50; - arg0->unk_070 = 20; + arg0->iwork[8] = 20; arg0->obj.status = 3; - arg0->unk_170 = 0.0f; + arg0->fwork[23] = 0.0f; func_8007D2C8(arg0->obj.pos.x, arg0->obj.pos.y, arg0->obj.pos.z, 4.0f); Audio_PlaySfx(0x2903700B, &arg0->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); arg0->timer_0C2 = 10; @@ -944,7 +944,7 @@ void func_8003088C(Object_2F4* arg0) { switch (arg0->unk_0D4) { case 1: if (arg0->unk_0E4 >= 10) { - switch (arg0->unk_058) { + switch (arg0->iwork[2]) { case 1: func_8002F5F4(gMsg_ID_20170, RCID_FALCO); break; @@ -984,23 +984,23 @@ void func_8003088C(Object_2F4* arg0) { } else { if (var_a1) { Audio_PlaySfx(0x29001062, &arg0->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); - arg0->unk_06C = 3; - arg0->unk_098 = 5; - arg0->unk_070 = 15; + arg0->iwork[7] = 3; + arg0->iwork[18] = 5; + arg0->iwork[8] = 15; if (Rand_ZeroOne() < 0.5f) { - arg0->unk_134 = 0.0f; - arg0->unk_130 = 360.0f; + arg0->fwork[8] = 0.0f; + arg0->fwork[7] = 360.0f; } else { - arg0->unk_130 = 0.0f; - arg0->unk_134 = 359.999f; + arg0->fwork[7] = 0.0f; + arg0->fwork[8] = 359.999f; } } else { arg0->timer_0C6 = 20; - arg0->unk_070 = 20; + arg0->iwork[8] = 20; } if (arg0->unk_0E4 == 200) { Audio_PlaySfx(0x29034003, &arg0->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); - } else if (arg0->unk_06C == 0) { + } else if (arg0->iwork[7] == 0) { Audio_PlaySfx(0x2903300E, &arg0->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } func_8007D10C(arg0->obj.pos.x, arg0->obj.pos.y, arg0->obj.pos.z, 1.5f); @@ -1012,7 +1012,7 @@ void func_8003088C(Object_2F4* arg0) { } sp48.y = (Rand_ZeroOne() - 0.5f) * 30.0f; sp48.z = 0.0f; - if (arg0->unk_06C != 0) { + if (arg0->iwork[7] != 0) { sp48.x *= 1.5f; sp48.y = 30.0f; @@ -1021,11 +1021,11 @@ void func_8003088C(Object_2F4* arg0) { } } Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp48, &sp3C); - arg0->unk_148 = sp3C.x; - arg0->unk_14C = sp3C.y; - arg0->unk_144 = sp3C.z; + arg0->fwork[13] = sp3C.x; + arg0->fwork[14] = sp3C.y; + arg0->fwork[12] = sp3C.z; } - if ((gRadioState == 0) && (gObjects2F4->obj.status == 2)) { + if ((gRadioState == 0) && (gActors->obj.status == 2)) { if (arg0->unk_0D0 == 3) { switch (arg0->unk_0E4) { case 1: @@ -1081,7 +1081,7 @@ void func_8003088C(Object_2F4* arg0) { break; } } - } else if ((arg0->unk_0E4 < 4) && (arg0->unk_068 != 0) && (arg0->unk_058 != 0)) { + } else if ((arg0->unk_0E4 < 4) && (arg0->iwork[6] != 0) && (arg0->iwork[2] != 0)) { switch (arg0->unk_0E4) { case 1: if (gTeamShields[1] >= 90) { @@ -1125,25 +1125,25 @@ void func_8003088C(Object_2F4* arg0) { } } -void func_80031858(Object_2F4* obj2F4) { - 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++; +void func_80031858(Actor* actor) { + if ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_3) && (actor->iwork[24] != 0) && + (fabsf(actor->obj.pos.x - gPlayer[0].pos.x) < 1000.0f) && + (fabsf(actor->obj.pos.y - gPlayer[0].pos.y) < 1000.0f) && + (fabsf(actor->obj.pos.z - gPlayer[0].unk_138) < 1000.0f)) { + actor->iwork[10]++; } else { - obj2F4->unk_078 = 0; + actor->iwork[10] = 0; } } -bool func_80031900(Object_2F4* obj2F4) { +bool func_80031900(Actor* actor) { Vec3f sp24; Vec3f sp18; - Matrix_RotateY(gCalcMatrix, -obj2F4->obj.rot.y * M_DTOR, 0); - sp24.x = obj2F4->unk_124.x - obj2F4->obj.pos.x; + Matrix_RotateY(gCalcMatrix, -actor->obj.rot.y * M_DTOR, 0); + sp24.x = actor->fwork[4] - actor->obj.pos.x; sp24.y = 0.0f; - sp24.z = obj2F4->unk_124.z - obj2F4->obj.pos.z; + sp24.z = actor->fwork[6] - actor->obj.pos.z; Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp24, &sp18); if (sp18.z > 0.0f) { return true; @@ -1151,7 +1151,7 @@ bool func_80031900(Object_2F4* obj2F4) { return false; } -void func_800319AC(Object_2F4* this) { +void func_800319AC(Actor* this) { u8 sp10F; s32 sp108; s32 sp104; @@ -1190,33 +1190,33 @@ void func_800319AC(Object_2F4* this) { func_8003010C(this); return; } - if ((this->unk_094 != 0) && (this->unk_090 == 0) && (this->unk_0E4 >= 4)) { + if ((this->iwork[17] != 0) && (this->iwork[16] == 0) && (this->unk_0E4 >= 4)) { switch ((s32) (Rand_ZeroOne() * 3.9f)) { case 0: case 1: if (gCurrentLevel == LEVEL_VENOM_2) { - this->unk_090 = 10; + this->iwork[16] = 10; } break; case 2: - this->unk_090 = 8; + this->iwork[16] = 8; break; case 3: - this->unk_090 = 7; + this->iwork[16] = 7; break; } - this->unk_094 = 0; - if (this->unk_098 != 0) { - this->unk_098--; - this->unk_090 = 0; + this->iwork[17] = 0; + if (this->iwork[18] != 0) { + this->iwork[18]--; + this->iwork[16] = 0; } } if ((this->timer_0CA[0] != 0) && (gCurrentLevel != LEVEL_VENOM_2) && (this->unk_0E4 < 10) && (this->timer_0CA[0] < 5) && !(gFrameCount & 0x1F)) { - this->unk_090 = 10; + this->iwork[16] = 10; } - if ((this->unk_090 != 0) && (this->unk_0B8 < 7)) { - this->unk_0B8 = this->unk_090; + if ((this->iwork[16] != 0) && (this->unk_0B8 < 7)) { + this->unk_0B8 = this->iwork[16]; switch (this->unk_0B8) { case 7: case 8: @@ -1228,51 +1228,51 @@ void func_800319AC(Object_2F4* this) { case 9: this->timer_0BC = (s32) (Rand_ZeroOne() * 20.0f) + 30; if (Rand_ZeroOne() < 0.5f) { - this->unk_160 = this->obj.rot.y + 50.0f; + this->fwork[19] = this->obj.rot.y + 50.0f; } else { - this->unk_160 = this->obj.rot.y - 50.0f; + this->fwork[19] = this->obj.rot.y - 50.0f; } - if (this->unk_160 >= 360.0f) { - this->unk_160 -= 360.0f; + if (this->fwork[19] >= 360.0f) { + this->fwork[19] -= 360.0f; } - if (this->unk_160 < 0.0f) { - this->unk_160 += 360.0f; + if (this->fwork[19] < 0.0f) { + this->fwork[19] += 360.0f; } break; case 10: this->timer_0BC = 0x23; if (Rand_ZeroOne() < 0.5f) { - this->unk_130 = 360.0f; - this->unk_134 = 0.0f; - this->unk_08C = 1; + this->fwork[7] = 360.0f; + this->fwork[8] = 0.0f; + this->iwork[15] = 1; } else { - this->unk_130 = 0.0f; - this->unk_134 = 359.999f; - this->unk_08C = -1; + this->fwork[7] = 0.0f; + this->fwork[8] = 359.999f; + this->iwork[15] = -1; } - this->unk_09C = 1; + this->iwork[19] = 1; break; } } - this->unk_090 = 0; + this->iwork[16] = 0; spCC = spC8 = spC4 = 0.0f; - if (this->unk_06C != 0) { - this->unk_06C--; - this->unk_16C = 1.0f; + if (this->iwork[7] != 0) { + this->iwork[7]--; + this->fwork[22] = 1.0f; } - if (this->unk_05C != 0) { - this->unk_05C--; + if (this->iwork[3] != 0) { + this->iwork[3]--; } - Math_SmoothStepToF(&this->unk_13C, 0.0f, 0.1f, 0.2f, 0.00001f); - Math_SmoothStepToF(&this->unk_138, this->unk_13C, 0.1f, 2.0f, 0.00001f); - if (this->unk_13C > 0.1f) { - this->unk_07C = 2; + Math_SmoothStepToF(&this->fwork[10], 0.0f, 0.1f, 0.2f, 0.00001f); + Math_SmoothStepToF(&this->fwork[9], this->fwork[10], 0.1f, 2.0f, 0.00001f); + if (this->fwork[10] > 0.1f) { + this->iwork[11] = 2; } else { - this->unk_07C = 1; + this->iwork[11] = 1; } if (this->unk_0E4 < 10) { func_80031858(this); - if (this->unk_078 == 200) { + if (this->iwork[10] == 200) { switch (this->unk_0E4) { case 4: case 5: @@ -1314,7 +1314,7 @@ void func_800319AC(Object_2F4* this) { } } sp104 = 0; - this->unk_064 = 0; + this->iwork[5] = 0; if ((this->unk_0E4 > 0) && (this->unk_0E4 < 4) && (gTeamShields[this->unk_0E4] <= 0) && (this->unk_0B8 != 6)) { this->unk_0B8 = 6; if (this->timer_0C2 < 100) { @@ -1330,29 +1330,29 @@ void func_800319AC(Object_2F4* this) { func_800BA808(gMsg_ID_20221, RCID_PEPPY); break; } - this->unk_188 = 5.0f; - this->unk_130 = 360.0f; - this->unk_134 = 0.0f; + this->fwork[29] = 5.0f; + this->fwork[7] = 360.0f; + this->fwork[8] = 0.0f; Audio_PlaySfx(0x09000002, &this->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); this->unk_046 = 0; } gTeamShields[this->unk_0E4] = -1; gTeamDamage[this->unk_0E4] = 0; - this->unk_054 = 0; + this->iwork[1] = 0; this->timer_0C2 = 10000; } switch (this->unk_0B8) { case 6: this->timer_0C2 = 10000; - this->unk_07C = 2; - this->unk_118 = 45.0f; - this->unk_120 = 2.0f; + this->iwork[11] = 2; + this->fwork[1] = 45.0f; + this->fwork[3] = 2.0f; gTeamShields[this->unk_0E4] = -1; gTeamDamage[this->unk_0E4] = 0; if (gCurrentLevel == LEVEL_SECTOR_Z) { - this->unk_124.x = D_800C9B50[this->unk_046].x; - this->unk_124.y = D_800C9B50[this->unk_046].y; - this->unk_124.z = D_800C9B50[this->unk_046].z; + this->fwork[4] = D_800C9B50[this->unk_046].x; + this->fwork[5] = D_800C9B50[this->unk_046].y; + this->fwork[6] = D_800C9B50[this->unk_046].z; if ((fabsf(this->obj.pos.x - D_800C9B50[this->unk_046].x) < 800.0f) && (fabsf(this->obj.pos.z - D_800C9B50[this->unk_046].z) < 800.0f)) { this->unk_046++; @@ -1361,7 +1361,7 @@ void func_800319AC(Object_2F4* this) { } } } else { - this->unk_124.y = 20000.0f; + this->fwork[5] = 20000.0f; if (this->obj.pos.y > 3000.0f) { Object_Kill(&this->obj, &this->sfxPos); } @@ -1374,10 +1374,10 @@ void func_800319AC(Object_2F4* this) { break; case 0: if (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_9) { - this->unk_114 = this->unk_118 = 40.0f; - if (gObjects2F4->unk_0B8 == 5) { + this->fwork[0] = this->fwork[1] = 40.0f; + if (gActors->unk_0B8 == 5) { Math_SmoothStepToF(&this->unk_0F4.x, 30.0f, 0.1f, 0.5f, 0.0f); - this->unk_118 = 200.0f; + this->fwork[1] = 200.0f; } if (this->timer_0BC == 0) { if (this->unk_0E4 == 4) { @@ -1390,8 +1390,8 @@ void func_800319AC(Object_2F4* this) { } else { this->unk_0B8 = 2; if (this->unk_0E4 == 8) { - this->unk_130 = 360.0f; - this->unk_134 = 0.0f; + this->fwork[7] = 360.0f; + this->fwork[8] = 0.0f; } } } @@ -1399,7 +1399,7 @@ void func_800319AC(Object_2F4* this) { } break; case 1: - this->unk_118 = 40.0f; + this->fwork[1] = 40.0f; if ((this->timer_0BC < 35) && (gCurrentLevel == LEVEL_FORTUNA)) { Math_SmoothStepToF(&this->unk_0F4.x, 15.0f, 0.1f, 1.0f, 0.0f); } @@ -1415,8 +1415,8 @@ void func_800319AC(Object_2F4* this) { spF8 = 800.0f; spF4 = 1500.0f; spF0 = 0.4f; - spEC = fabsf(this->unk_124.x - this->obj.pos.x); - spE8 = fabsf(this->unk_124.z - this->obj.pos.z); + spEC = fabsf(this->fwork[4] - this->obj.pos.x); + spE8 = fabsf(this->fwork[6] - this->obj.pos.z); sp10F = 0xB; if (this->unk_0E4 == 1) { spF0 = 0.5f; @@ -1429,14 +1429,14 @@ void func_800319AC(Object_2F4* this) { if (this->unk_0E6 < 0) { this->unk_0B8 = 3; } else { - if (gObjects2F4[this->unk_0E6].unk_0E4 == 200) { + if (gActors[this->unk_0E6].unk_0E4 == 200) { spF0 = 0.8f; spF4 = spF8 = 3000.0f; - this->unk_120 = 2.0f; + this->fwork[3] = 2.0f; } if (this->unk_0E6 == 0) { if (gCurrentLevel != LEVEL_VENOM_2) { - if (((gPlayer[0].unk_4DC != 0) && (this->unk_060 > 10)) || + if (((gPlayer[0].unk_4DC != 0) && (this->iwork[4] > 10)) || ((gCurrentLevel == LEVEL_BOLSE) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_0))) { this->unk_0B8 = 3; this->unk_04E = 300; @@ -1445,8 +1445,8 @@ void func_800319AC(Object_2F4* this) { func_8002F5F4(gMsg_ID_9369, RCID_WOLF); } break; - } else if ((this->unk_060 > 200) && (gPlayer[0].timer_224 != 0)) { - this->unk_060 = 100; + } else if ((this->iwork[4] > 200) && (gPlayer[0].timer_224 != 0)) { + this->iwork[4] = 100; break; } } @@ -1457,20 +1457,20 @@ void func_800319AC(Object_2F4* this) { spC4 = __sinf(((this->index * 45) + gFrameCount) * M_DTOR) * 100.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; + this->fwork[4] = gPlayer[0].pos.x + spCC; + this->fwork[5] = gPlayer[0].pos.y + spC8; + this->fwork[6] = gPlayer[0].unk_138 + spC4; + this->fwork[1] = gPlayer[0].unk_0D0 + 10.0f; } - if ((gObjects2F4->unk_0B8 == 6) && (this->unk_0E4 < 4)) { - this->unk_120 = 3.0f; - this->unk_118 = gPlayer[0].unk_0D0 - 5.0f; - this->unk_07C = 2; + if ((gActors->unk_0B8 == 6) && (this->unk_0E4 < 4)) { + this->fwork[3] = 3.0f; + this->fwork[1] = gPlayer[0].unk_0D0 - 5.0f; + this->iwork[11] = 2; } else if ((gCurrentLevel == LEVEL_VENOM_2) && (this->unk_0E4 >= 4)) { - this->unk_120 = 1.6f; - this->unk_118 = 55.0f; + this->fwork[3] = 1.6f; + this->fwork[1] = 55.0f; } else { - this->unk_120 = 1.2f; + this->fwork[3] = 1.2f; } spF4 = 2000.0f; spF8 = 700.0f; @@ -1486,54 +1486,54 @@ void func_800319AC(Object_2F4* this) { spC8 = __cosf(((this->index * 45) + (gFrameCount * 2)) * M_DTOR) * 200.0f; spC4 = __sinf(((this->index * 45) + gFrameCount) * M_DTOR) * 200.0f; } - this->unk_124.x = gObjects2F4[this->unk_0E6].obj.pos.x + spCC; - this->unk_124.y = gObjects2F4[this->unk_0E6].obj.pos.y + spC8; - this->unk_124.z = gObjects2F4[this->unk_0E6].obj.pos.z + spC4; + this->fwork[4] = gActors[this->unk_0E6].obj.pos.x + spCC; + this->fwork[5] = gActors[this->unk_0E6].obj.pos.y + spC8; + this->fwork[6] = gActors[this->unk_0E6].obj.pos.z + spC4; if ((gCurrentLevel == LEVEL_VENOM_2) && (this->unk_0E4 >= 4)) { - this->unk_118 = 55.0f; - this->unk_120 = 1.6f; + this->fwork[1] = 55.0f; + this->fwork[3] = 1.6f; } else if ((gCurrentLevel == LEVEL_FORTUNA) && (this->unk_0E4 >= 0xB)) { - this->unk_120 = 1.4f; - this->unk_118 = 50.0f; + this->fwork[3] = 1.4f; + this->fwork[1] = 50.0f; } else { - this->unk_118 = gObjects2F4[this->unk_0E6].unk_114 + 10.0f; - if (this->unk_118 < 30.0f) { - this->unk_118 = 30.0f; + this->fwork[1] = gActors[this->unk_0E6].fwork[0] + 10.0f; + if (this->fwork[1] < 30.0f) { + this->fwork[1] = 30.0f; } - this->unk_120 = 1.4f; + this->fwork[3] = 1.4f; } } else { - 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; + this->fwork[4] = gBosses[0].obj.pos.x; + this->fwork[5] = gBosses[0].obj.pos.y + 400.0f; + this->fwork[6] = gBosses[0].obj.pos.z; + this->fwork[1] = 40.0f; } - if ((this->unk_0E6 >= 0) && (this->unk_0E6 != 100) && (gObjects2F4->unk_0B8 != 6)) { + if ((this->unk_0E6 >= 0) && (this->unk_0E6 != 100) && (gActors->unk_0B8 != 6)) { if (spE8 < spF8) { if (spEC < spF8) { if (this->unk_0E6 != 0) { - this->unk_118 = gObjects2F4[this->unk_0E6].unk_114 - 5.0f; + this->fwork[1] = gActors[this->unk_0E6].fwork[0] - 5.0f; } else { - this->unk_118 = gPlayer[0].unk_0D0 - 5.0f; + this->fwork[1] = 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; + this->iwork[16] = 8; } } } } else if (this->timer_0C0 == 0) { this->timer_0C0 = (s32) (Rand_ZeroOne() * 200.0f) + 200; - this->unk_13C = 20.0f; + this->fwork[10] = 20.0f; } if ((spE8 < spF4) && (spEC < spF4)) { - this->unk_060++; - this->unk_064 = 1; + this->iwork[4]++; + this->iwork[5] = 1; if (!((this->index + gFrameCount) & sp10F) && (Rand_ZeroOne() < spF0) && func_80031900(this) && - ((gObjects2F4->unk_0B8 == 2) || (gCurrentLevel == LEVEL_TRAINING))) { + ((gActors->unk_0B8 == 2) || (gCurrentLevel == LEVEL_TRAINING))) { if ((this->unk_0E6 == 0) && (gCurrentLevel != LEVEL_TRAINING)) { - if ((this->unk_060 > 250) && (gCurrentLevel != LEVEL_VENOM_ANDROSS)) { + if ((this->iwork[4] > 250) && (gCurrentLevel != LEVEL_VENOM_ANDROSS)) { if ((Rand_ZeroOne() < 0.5f) || (gCurrentLevel == LEVEL_VENOM_2)) { - this->unk_060 = 0; + this->iwork[4] = 0; switch (this->unk_0E4) { case 4: func_8002E4F8(gMsg_ID_19450, RCID_WOLF); @@ -1552,59 +1552,56 @@ void func_800319AC(Object_2F4* this) { func_8002E4F8(gMsg_ID_2233, RCID_FALCO); } } - this->unk_050 = 1; + this->iwork[0] = 1; } else { - this->unk_050 = 1; + this->iwork[0] = 1; } } if ((gRadioState == 0) && (this->timer_0C4 == 0) && (D_8015F928 > 700) && (D_8015F908 == 0) && - (gObjects2F4->obj.status == 2)) { + (gActors->obj.status == 2)) { this->timer_0C4 = 600; if (Rand_ZeroOne() < 0.5f) { - gObjects2F4[this->unk_0E6].unk_068++; + gActors[this->unk_0E6].iwork[6]++; switch (this->unk_0E6) { case 1: if ((gCurrentLevel == LEVEL_VENOM_2) && (Rand_ZeroOne() < 0.5f)) { func_8002F5F4(gMsg_ID_19462, RCID_FALCO); - } else if ((gObjects2F4[this->unk_0E6].unk_068 >= 3) && - (Rand_ZeroOne() < 0.5f)) { + } else if ((gActors[this->unk_0E6].iwork[6] >= 3) && (Rand_ZeroOne() < 0.5f)) { func_8002F5F4(gMsg_ID_20310, RCID_FALCO); } else { func_8002F5F4(gMsg_ID_9100, RCID_FALCO); } - gObjects2F4[this->unk_0E6].unk_058 = this->unk_0E4; + gActors[this->unk_0E6].iwork[2] = this->unk_0E4; if ((D_800CA234 == NULL) || (gTeamShields[this->unk_0E6] <= 50)) { - D_800CA234 = &gObjects2F4[this->unk_0E6]; + D_800CA234 = &gActors[this->unk_0E6]; D_Timer_800CA238 = 320; } break; case 2: if ((gCurrentLevel == LEVEL_VENOM_2) && (Rand_ZeroOne() < 0.5f)) { func_8002F5F4(gMsg_ID_19463, RCID_SLIPPY); - } else if ((gObjects2F4[this->unk_0E6].unk_068 >= 3) && - (Rand_ZeroOne() < 0.5f)) { + } else if ((gActors[this->unk_0E6].iwork[6] >= 3) && (Rand_ZeroOne() < 0.5f)) { func_8002F5F4(gMsg_ID_20311, RCID_SLIPPY); } else { func_8002F5F4(gMsg_ID_9110, RCID_SLIPPY); } - gObjects2F4[this->unk_0E6].unk_058 = this->unk_0E4; + gActors[this->unk_0E6].iwork[2] = this->unk_0E4; if ((D_800CA234 == NULL) || (gTeamShields[this->unk_0E6] <= 50)) { - D_800CA234 = &gObjects2F4[this->unk_0E6]; + D_800CA234 = &gActors[this->unk_0E6]; D_Timer_800CA238 = 320; } break; case 3: if ((gCurrentLevel == LEVEL_VENOM_2) && (Rand_ZeroOne() < 0.5f)) { func_8002F5F4(gMsg_ID_19464, 0x1E); - } else if ((gObjects2F4[this->unk_0E6].unk_068 >= 3) && - (Rand_ZeroOne() < 0.5f)) { + } else if ((gActors[this->unk_0E6].iwork[6] >= 3) && (Rand_ZeroOne() < 0.5f)) { func_8002F5F4(gMsg_ID_20312, 0x1E); } else { func_8002F5F4(gMsg_ID_9120, 0x1E); } - gObjects2F4[this->unk_0E6].unk_058 = this->unk_0E4; + gActors[this->unk_0E6].iwork[2] = this->unk_0E4; if ((D_800CA234 == NULL) || (gTeamShields[this->unk_0E6] <= 50)) { - D_800CA234 = &gObjects2F4[this->unk_0E6]; + D_800CA234 = &gActors[this->unk_0E6]; D_Timer_800CA238 = 320; } break; @@ -1637,7 +1634,7 @@ void func_800319AC(Object_2F4* this) { } else { func_8002F5F4(gMsg_ID_9190, RCID_FALCO); } - gObjects2F4[this->unk_0E6].unk_058 = 1; + gActors[this->unk_0E6].iwork[2] = 1; break; case 2: if ((gCurrentLevel == LEVEL_FORTUNA) && (Rand_ZeroOne() < 0.5f)) { @@ -1645,7 +1642,7 @@ void func_800319AC(Object_2F4* this) { } else { func_8002F5F4(gMsg_ID_9200, RCID_SLIPPY); } - gObjects2F4[this->unk_0E6].unk_058 = 2; + gActors[this->unk_0E6].iwork[2] = 2; break; case 3: if ((gCurrentLevel == LEVEL_FORTUNA) && (Rand_ZeroOne() < 0.5f)) { @@ -1653,16 +1650,16 @@ void func_800319AC(Object_2F4* this) { } else { func_8002F5F4(gMsg_ID_9210, RCID_PEPPY); } - gObjects2F4[this->unk_0E6].unk_058 = 3; + gActors[this->unk_0E6].iwork[2] = 3; break; case 4: if (gCurrentLevel != LEVEL_VENOM_2) { - if (this->unk_068 == 0) { - this->unk_068 = 1; + if (this->iwork[6] == 0) { + this->iwork[6] = 1; func_8002F5F4(gMsg_ID_9289, RCID_WOLF); - } else if (this->unk_060 > 150) { + } else if (this->iwork[4] > 150) { if (Rand_ZeroOne() < 0.5f) { - this->unk_060 = 0; + this->iwork[4] = 0; func_8002F5F4(gMsg_ID_9290, RCID_WOLF); } else { func_8002F5F4(gMsg_ID_2233, RCID_FALCO); @@ -1715,11 +1712,11 @@ void func_800319AC(Object_2F4* this) { } } } else { - this->unk_060 = 0; + this->iwork[4] = 0; } if ((this->unk_0E6 > 0) && - ((gObjects2F4[this->unk_0E6].obj.status == 3) || (gObjects2F4[this->unk_0E6].unk_0B8 == 6) || - (gObjects2F4[this->unk_0E6].obj.status == 0))) { + ((gActors[this->unk_0E6].obj.status == 3) || (gActors[this->unk_0E6].unk_0B8 == 6) || + (gActors[this->unk_0E6].obj.status == 0))) { this->unk_0B8 = 3; if (gCurrentLevel == LEVEL_BOLSE) { func_8002FB4C(this); @@ -1734,22 +1731,22 @@ void func_800319AC(Object_2F4* this) { if ((this->unk_0E4 < 10) || (gCurrentLevel == LEVEL_BOLSE)) { if (gCurrentLevel == LEVEL_VENOM_2) { if (this->unk_0E4 >= 4) { - this->unk_120 = 1.6f; - this->unk_118 = 55.0f; + this->fwork[3] = 1.6f; + this->fwork[1] = 55.0f; } else { - this->unk_120 = 1.4f; - this->unk_118 = 50.0f; + this->fwork[3] = 1.4f; + this->fwork[1] = 50.0f; } } else { - this->unk_120 = 1.2f; - this->unk_118 = 40.0f; + this->fwork[3] = 1.2f; + this->fwork[1] = 40.0f; } } else { - this->unk_120 = 1.0f; - this->unk_118 = 38.0f; + this->fwork[3] = 1.0f; + this->fwork[1] = 38.0f; } - if ((gCurrentLevel == LEVEL_SECTOR_Z) && (gObjects2F4->unk_0B8 == 0xA)) { - this->unk_13C = 30.0f; + if ((gCurrentLevel == LEVEL_SECTOR_Z) && (gActors->unk_0B8 == 0xA)) { + this->fwork[10] = 30.0f; } if ((gLevelType == LEVELTYPE_SPACE) && (gCurrentLevel != LEVEL_BOLSE)) { if ((gCurrentLevel == LEVEL_SECTOR_Z) && (this->unk_0E4 == 8)) { @@ -1777,20 +1774,20 @@ void func_800319AC(Object_2F4* this) { } } if ((fabsf(this->obj.pos.x - spE4) > 2000.0f) || (fabsf(this->obj.pos.z - spDC) > 2000.0f)) { - this->unk_124.x = spE4; - this->unk_124.y = spE0; - this->unk_124.z = spDC; + this->fwork[4] = spE4; + this->fwork[5] = spE0; + this->fwork[6] = spDC; this->timer_0BC = (s32) (Rand_ZeroOne() * 20.0f) + 10; } } if (this->timer_0C0 == 0) { this->timer_0C0 = (s32) (Rand_ZeroOne() * 200.0f) + 200; - this->unk_13C = 30.0f; + this->fwork[10] = 30.0f; } - if ((this->unk_0E6 > 0) && (gObjects2F4[this->unk_0E6].obj.id == OBJ_2F4_197) && - (gObjects2F4[this->unk_0E6].timer_0C2 == 0) && (gObjects2F4[this->unk_0E6].obj.status == 2)) { + if ((this->unk_0E6 > 0) && (gActors[this->unk_0E6].obj.id == OBJ_ACTOR_197) && + (gActors[this->unk_0E6].timer_0C2 == 0) && (gActors[this->unk_0E6].obj.status == 2)) { this->unk_0B8 = 2; - this->unk_058 = 0; + this->iwork[2] = 0; } if (this->unk_0E6 == 0) { if (this->unk_04E != 0) { @@ -1798,12 +1795,12 @@ void func_800319AC(Object_2F4* this) { } if (this->unk_04E == 0) { this->unk_0B8 = 2; - this->unk_058 = 0; + this->iwork[2] = 0; } } break; case 7: - this->unk_118 = 40.0f; + this->fwork[1] = 40.0f; Math_SmoothStepToF(&this->unk_0F4.x, 360.0f, 0.1f, 5.0f, 0.0001f); Math_SmoothStepToAngle(&this->obj.rot.z, 0.0f, 0.1f, 3.0f, 0.01f); if (this->unk_0F4.x > 350.0f) { @@ -1811,7 +1808,7 @@ void func_800319AC(Object_2F4* this) { } break; case 8: - this->unk_118 = 40.0f; + this->fwork[1] = 40.0f; if (this->index & 1) { Math_SmoothStepToAngle(&this->obj.rot.z, 355.0f, 0.1f, 3.0f, 0.01f); } else { @@ -1843,8 +1840,8 @@ void func_800319AC(Object_2F4* this) { } break; case 9: - this->unk_118 = 40.0f; - if (Math_SmoothStepToAngle(&this->unk_0F4.y, this->unk_160, 0.5f, 5.0f, 0.0f) < 0.0f) { + this->fwork[1] = 40.0f; + if (Math_SmoothStepToAngle(&this->unk_0F4.y, this->fwork[19], 0.5f, 5.0f, 0.0f) < 0.0f) { spD0 = 70.0f; } else { spD0 = 290.0f; @@ -1860,39 +1857,39 @@ void func_800319AC(Object_2F4* this) { this->unk_0B8 = 3; } if (this->timer_0BC > 20) { - Math_SmoothStepToF(&this->unk_170, 180.0f, 1.0f, 60.0f, 0.0f); + Math_SmoothStepToF(&this->fwork[23], 180.0f, 1.0f, 60.0f, 0.0f); } break; } if (sp104 != 0) { s32 var_v0 = 3; - spE4 = this->unk_124.x - this->obj.pos.x; - spE0 = this->unk_124.y - this->obj.pos.y; - spDC = this->unk_124.z - this->obj.pos.z; + spE4 = this->fwork[4] - this->obj.pos.x; + spE0 = this->fwork[5] - this->obj.pos.y; + spDC = this->fwork[6] - this->obj.pos.z; if (gCurrentLevel == LEVEL_VENOM_2) { var_v0 = 1; } if (!((this->index + gFrameCount) & var_v0)) { - this->unk_160 = Math_RadToDeg(Math_Atan2F(spE4, spDC)); - this->unk_164 = Math_RadToDeg(Math_Atan2F(spE0, sqrtf(SQ(spE4) + SQ(spDC)))); + this->fwork[19] = Math_RadToDeg(Math_Atan2F(spE4, spDC)); + this->fwork[20] = Math_RadToDeg(Math_Atan2F(spE0, sqrtf(SQ(spE4) + SQ(spDC)))); } - spD8 = this->unk_164; - spD4 = this->unk_160; + spD8 = this->fwork[20]; + spD4 = this->fwork[19]; sp108 = 0; if (sp104 == 1) { if (this->unk_0E4 < 100) { sp108 = func_8003049C(this); if ((sp108 != 0) && (this->unk_0E4 < 10) && (this->timer_0BE == 0) && - ((this->unk_130 < 0.01f) || (this->unk_130 > 359.9f))) { + ((this->fwork[7] < 0.01f) || (this->fwork[7] > 359.9f))) { this->timer_0BE = (s32) (Rand_ZeroOne() * 200.0f) + 200; if (Rand_ZeroOne() < 0.5f) { - this->unk_134 = 0.0f; - this->unk_130 = 360.0f; + this->fwork[8] = 0.0f; + this->fwork[7] = 360.0f; } else { - this->unk_130 = 0.0f; - this->unk_134 = 359.999f; + this->fwork[7] = 0.0f; + this->fwork[8] = 359.999f; } } } @@ -1913,31 +1910,31 @@ void func_800319AC(Object_2F4* this) { this->unk_0F4.x = 0.0f; } } - Math_SmoothStepToAngle(&this->unk_0F4.x, spD8, 0.5f, this->unk_11C, 0.0001f); - spD0 = Math_SmoothStepToAngle(&this->unk_0F4.y, spD4, 0.5f, this->unk_11C, 0.0001f) * 30.0f; + Math_SmoothStepToAngle(&this->unk_0F4.x, spD8, 0.5f, this->fwork[2], 0.0001f); + spD0 = Math_SmoothStepToAngle(&this->unk_0F4.y, spD4, 0.5f, this->fwork[2], 0.0001f) * 30.0f; if (spD0 < 0.0f) { spD0 = spD0 * -1.0f; } else { spD0 = 360.0f - spD0; } - if ((this->unk_130 > 0.01f) && (this->unk_130 < 359.9f)) { + if ((this->fwork[7] > 0.01f) && (this->fwork[7] < 359.9f)) { if (!((gFrameCount + 0xF) & 0x1F) && (gCurrentLevel != LEVEL_VENOM_2)) { this->timer_0CA[0] = 0; } } else { Math_SmoothStepToAngle(&this->obj.rot.z, spD0, 0.1f, 3.0f, 0.01f); - this->unk_09C = 0; + this->iwork[19] = 0; } } - if (this->unk_09C != 0) { - Math_SmoothStepToF(&this->unk_130, this->unk_134, 1.0f, 60.0f, 0.01f); + if (this->iwork[19] != 0) { + Math_SmoothStepToF(&this->fwork[7], this->fwork[8], 1.0f, 60.0f, 0.01f); } else { - Math_SmoothStepToF(&this->unk_130, this->unk_134, 0.2f, 30.0f, 0.01f); + Math_SmoothStepToF(&this->fwork[7], this->fwork[8], 0.2f, 30.0f, 0.01f); } - if ((this->unk_130 > 0.01f) && (this->unk_130 < 359.9f)) { - Math_SmoothStepToAngle(&this->obj.rot.z, this->unk_130, 0.2f, 100.0f, 0.01f); + if ((this->fwork[7] > 0.01f) && (this->fwork[7] < 359.9f)) { + Math_SmoothStepToAngle(&this->obj.rot.z, this->fwork[7], 0.2f, 100.0f, 0.01f); if ((this->unk_0E4 == 8) && !(gFrameCount & 1)) { - if ((this->unk_130 > 10.0f) && (this->unk_130 < 350.0f)) { + if ((this->fwork[7] > 10.0f) && (this->fwork[7] < 350.0f)) { Matrix_RotateY(gCalcMatrix, this->obj.rot.y * M_DTOR, 0); Matrix_RotateX(gCalcMatrix, this->obj.rot.x * M_DTOR, 1); Matrix_RotateZ(gCalcMatrix, this->obj.rot.z * M_DTOR, 1); @@ -1952,30 +1949,30 @@ void func_800319AC(Object_2F4* this) { } this->obj.rot.x = -this->unk_0F4.x; this->obj.rot.y = this->unk_0F4.y; - Math_SmoothStepToF(&this->unk_114, this->unk_118, 0.2f, 1.0f, 0.1f); - Math_SmoothStepToF(&this->unk_11C, this->unk_120, 1.0f, 0.1f, 0.1f); + Math_SmoothStepToF(&this->fwork[0], this->fwork[1], 0.2f, 1.0f, 0.1f); + Math_SmoothStepToF(&this->fwork[2], this->fwork[3], 1.0f, 0.1f, 0.1f); spC0 = __sinf(this->obj.rot.x * M_DTOR); spB8 = __cosf(this->obj.rot.x * M_DTOR); spBC = __sinf(this->obj.rot.y * M_DTOR); spB4 = __cosf(this->obj.rot.y * M_DTOR); - sp9C.z = (this->unk_138 + this->unk_114) * spB8; - sp9C.y = (this->unk_138 + this->unk_114) * -spC0; + sp9C.z = (this->fwork[0] + this->fwork[9]) * spB8; + sp9C.y = (this->fwork[0] + this->fwork[9]) * -spC0; sp9C.x = spBC * sp9C.z; sp9C.z = spB4 * sp9C.z; - this->vel.x = this->unk_148 + sp9C.x; - this->vel.y = this->unk_14C + sp9C.y; - this->vel.z = this->unk_144 + sp9C.z; - this->unk_148 -= (this->unk_148 * 0.1f); - this->unk_14C -= (this->unk_14C * 0.1f); - this->unk_144 -= (this->unk_144 * 0.1f); + this->vel.x = this->fwork[13] + sp9C.x; + this->vel.y = this->fwork[14] + sp9C.y; + this->vel.z = this->fwork[12] + sp9C.z; + this->fwork[13] -= (this->fwork[13] * 0.1f); + this->fwork[14] -= (this->fwork[14] * 0.1f); + this->fwork[12] -= (this->fwork[12] * 0.1f); if ((this->obj.pos.y < D_80177940 + 40.0f) && (this->vel.y < 0.0f)) { this->obj.pos.y = D_80177940 + 40.0f; this->vel.y = 0.0f; } - if (this->unk_050 != 0) { - this->unk_050 = 0; + if (this->iwork[0] != 0) { + this->iwork[0] = 0; sp90.z = spB8 * 200.0f * 0.5f; sp90.y = -spC0 * 200.0f * 0.5f; @@ -2023,9 +2020,9 @@ void func_800319AC(Object_2F4* this) { temp_v1->pos.y = this->obj.pos.y; temp_v1->pos.z = this->obj.pos.z; temp_v1->unk_10 = this->unk_0F4.y + 180.0f; - if (this->unk_054 != 0) { - this->unk_054--; - if ((this->unk_054 == 0) && (gObjects2F4->unk_0B8 == 2) && (gRadioState == 0)) { + if (this->iwork[1] != 0) { + this->iwork[1]--; + if ((this->iwork[1] == 0) && (gActors->unk_0B8 == 2) && (gRadioState == 0)) { switch (this->unk_0E4) { case 1: func_8002F5F4(gMsg_ID_9220, RCID_FALCO); @@ -2082,21 +2079,21 @@ void func_800319AC(Object_2F4* this) { this->unk_04A = 0; } } - Math_SmoothStepToF(&this->unk_16C, 0.0f, 0.8f, 0.05f, 1e-7f); - Math_SmoothStepToF(&this->unk_170, 0.0f, 1.0f, 30.0f, 0.01f); - if (this->unk_070 != 0) { - this->unk_070--; + Math_SmoothStepToF(&this->fwork[22], 0.0f, 0.8f, 0.05f, 1e-7f); + Math_SmoothStepToF(&this->fwork[23], 0.0f, 1.0f, 30.0f, 0.01f); + if (this->iwork[8] != 0) { + this->iwork[8]--; } } -void func_80034E64(Object_2F4* obj2F4) { +void func_80034E64(Actor* actor) { f32 sp24; s32 sp20; - if (obj2F4->unk_16C > 0) { + if (actor->fwork[22] > 0) { Matrix_Push(&gGfxMatrix); sp24 = 3.5f; - sp20 = (s32) (obj2F4->unk_16C * 60.0f); + sp20 = (s32) (actor->fwork[22] * 60.0f); if (gCurrentLevel == LEVEL_VENOM_2) { sp24 *= 1.5f; } @@ -2117,19 +2114,19 @@ void func_80034E64(Object_2F4* obj2F4) { } } -void func_80035098(Object_2F4* obj2F4) { +void func_80035098(Actor* actor) { s32 sp2C; - if (obj2F4->unk_170 > 1.0f) { + if (actor->fwork[23] > 1.0f) { Matrix_Push(&gGfxMatrix); - sp2C = obj2F4->unk_170; + sp2C = actor->fwork[23]; 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, M_DTOR * -obj2F4->obj.rot.y - gPlayer[0].unk_058, 1); + Matrix_RotateZ(gGfxMatrix, -actor->obj.rot.z * M_DTOR, 1); + Matrix_RotateX(gGfxMatrix, -actor->obj.rot.x * M_DTOR, 1); + Matrix_RotateY(gGfxMatrix, M_DTOR * -actor->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_RotateZ(gGfxMatrix, gFrameCount * 20.0f * (*actor).iwork[15] * M_DTOR, 1); + if (actor->iwork[15] < 0) { Matrix_RotateX(gGfxMatrix, M_PI, 1); } Matrix_Scale(gGfxMatrix, 2.0f, 2.0f, 2.0f, 1); @@ -2143,7 +2140,7 @@ void func_80035098(Object_2F4* obj2F4) { } bool func_800352E0(s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3f* rot, void* thisx) { - Object_2F4* this = thisx; + Actor* this = thisx; if (this->timer_0C6 & 1) { RCP_SetupDL(&gMasterDisp, 0x22); @@ -2161,35 +2158,35 @@ bool func_800352E0(s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3f* rot, void* thi return false; } -void func_80035448(Object_2F4* obj2F4) { +void func_80035448(Actor* actor) { f32 sp38; Vec3f sp7C[32]; // larger than expected f32 pad2; sp7C[30] = D_800C9BB0; // not part of array? If not, why have it? - if (obj2F4->unk_0E4 != 1000) { - if ((obj2F4->unk_070 != 0) && (obj2F4->unk_0E4 < 100)) { - pad2 = __sinf(obj2F4->unk_070 * 400.0f * M_DTOR); - sp38 = obj2F4->unk_070 * pad2; + if (actor->unk_0E4 != 1000) { + if ((actor->iwork[8] != 0) && (actor->unk_0E4 < 100)) { + pad2 = __sinf(actor->iwork[8] * 400.0f * M_DTOR); + sp38 = actor->iwork[8] * pad2; Matrix_RotateY(gGfxMatrix, M_DTOR * sp38, 1); Matrix_RotateX(gGfxMatrix, M_DTOR * sp38, 1); Matrix_RotateZ(gGfxMatrix, M_DTOR * sp38, 1); Matrix_SetGfxMtx(&gMasterDisp); } - if (!(obj2F4->timer_0C6 & 1)) { + if (!(actor->timer_0C6 & 1)) { RCP_SetupDL(&gMasterDisp, 0x1D); gSPFogPosition(gMasterDisp++, gFogNear, 1005); } - switch (obj2F4->unk_0E4) { + switch (actor->unk_0E4) { case 0: case 1: case 2: case 3: Matrix_Push(&gGfxMatrix); - func_8005B388(obj2F4); + func_8005B388(actor); Matrix_Pop(&gGfxMatrix); - func_80035098(obj2F4); + func_80035098(actor); break; case 4: case 5: @@ -2199,43 +2196,43 @@ void func_80035448(Object_2F4* obj2F4) { gSPDisplayList(gMasterDisp++, D_F0103D0); Matrix_Push(&gGfxMatrix); Matrix_Translate(gGfxMatrix, 30.0f, 0.0f, -60.0f, 1); - func_8005B1E8(obj2F4, 2); + func_8005B1E8(actor, 2); Matrix_Pop(&gGfxMatrix); Matrix_Push(&gGfxMatrix); Matrix_Translate(gGfxMatrix, -30.0f, 0.0f, -60.0f, 1); - func_8005B1E8(obj2F4, 2); + func_8005B1E8(actor, 2); Matrix_Pop(&gGfxMatrix); - func_80035098(obj2F4); - func_80034E64(obj2F4); + func_80035098(actor); + func_80034E64(actor); } else { gSPDisplayList(gMasterDisp++, D_F00F200); Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -60.0f, 1); if (gCurrentLevel == LEVEL_BOLSE) { - func_8005B1E8(obj2F4, 3); + func_8005B1E8(actor, 3); } else { - func_8005B1E8(obj2F4, 2); + func_8005B1E8(actor, 2); } } break; case 8: gSPDisplayList(gMasterDisp++, D_D009A40); - func_8005ADAC(obj2F4); + func_8005ADAC(actor); break; case 9: gSPDisplayList(gMasterDisp++, D_D00B880); - func_8005ADAC(obj2F4); + func_8005ADAC(actor); break; case 100: - func_8005F670(&obj2F4->obj.pos); - obj2F4->unk_0B6 = 1; - func_8004FEC0(obj2F4); + func_8005F670(&actor->obj.pos); + actor->unk_0B6 = 1; + func_8004FEC0(actor); break; case 200: Animation_GetFrameData(&D_6006D64, 0, sp7C); - Animation_DrawSkeleton(3, D_6006E50, sp7C, func_800352E0, NULL, obj2F4, gCalcMatrix); + Animation_DrawSkeleton(3, D_6006E50, sp7C, func_800352E0, NULL, actor, gCalcMatrix); Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -400.0f, 1); - Matrix_Scale(gGfxMatrix, obj2F4->unk_188, obj2F4->unk_188, obj2F4->unk_188, 1); - func_8005B1E8(obj2F4, 3); + Matrix_Scale(gGfxMatrix, actor->fwork[29], actor->fwork[29], actor->fwork[29], 1); + func_8005B1E8(actor, 3); break; default: if (gCurrentLevel == LEVEL_FORTUNA) { @@ -2244,47 +2241,47 @@ void func_80035448(Object_2F4* obj2F4) { gSPDisplayList(gMasterDisp++, D_6006BE0); Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -100.0f, 1); Matrix_Scale(gGfxMatrix, 1.5f, 1.5f, 1.5f, 1); - func_8005B1E8(obj2F4, 2); + func_8005B1E8(actor, 2); } else if (gCurrentLevel == LEVEL_KATINA) { - switch (obj2F4->unk_0B6) { + switch (actor->unk_0B6) { case 0: gSPDisplayList(gMasterDisp++, D_600EFF0); break; case 1: gSPDisplayList(gMasterDisp++, D_600E050); Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -60.0f, 1); - func_8005B1E8(obj2F4, 0); + func_8005B1E8(actor, 0); break; case 3: gSPDisplayList(gMasterDisp++, D_6001530); Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, 30.0f, 1); - func_80034E64(obj2F4); + func_80034E64(actor); break; } } else if (gCurrentLevel == LEVEL_SECTOR_Z) { gSPDisplayList(gMasterDisp++, D_6004FE0) Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -60.0f, 1); - func_8005B1E8(obj2F4, 2); + func_8005B1E8(actor, 2); } else if (gCurrentLevel == LEVEL_BOLSE) { gSPDisplayList(gMasterDisp++, D_6008770) Matrix_Push(&gGfxMatrix); Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -60.0f, 1); - func_8005B1E8(obj2F4, 2); + func_8005B1E8(actor, 2); Matrix_Pop(&gGfxMatrix); - func_80034E64(obj2F4); + func_80034E64(actor); } else if (gCurrentLevel == LEVEL_VENOM_ANDROSS) { - Animation_GetFrameData(&D_600C200, obj2F4->unk_04A, obj2F4->unk_18C); + Animation_GetFrameData(&D_600C200, actor->unk_04A, actor->vwork); Matrix_Scale(gGfxMatrix, 10.0f, 10.0f, 10.0f, 1); - Animation_DrawSkeleton(0, D_600C2AC, obj2F4->unk_18C, NULL, NULL, obj2F4, &gIdentityMatrix); + Animation_DrawSkeleton(0, D_600C2AC, actor->vwork, NULL, NULL, actor, &gIdentityMatrix); } else if (gCurrentLevel == LEVEL_VERSUS) { gSPDisplayList(gMasterDisp++, D_3015740); } else if (gCurrentLevel == LEVEL_TRAINING) { - if (obj2F4->unk_0E6 == 0) { + if (actor->unk_0E6 == 0) { gSPDisplayList(gMasterDisp++, D_F00F200); Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -60.0f, 1); - func_8005B1E8(obj2F4, 3); + func_8005B1E8(actor, 3); } else { gSPDisplayList(gMasterDisp++, D_40068F0); Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -60.0f, 1); - func_8005B1E8(obj2F4, 2); + func_8005B1E8(actor, 2); } } break; diff --git a/src/main/fox_43AC0.c b/src/main/fox_43AC0.c index e4a30fde..3cc09ae9 100644 --- a/src/main/fox_43AC0.c +++ b/src/main/fox_43AC0.c @@ -55,27 +55,27 @@ void func_80042FDC(Boss* boss) { 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, +void func_80042FF4(Actor* actor, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7, f32 arg8, f32 arg9, f32 argA, s32 argB, s32 argC) { - Object_2F4_Initialize(obj2F4); - obj2F4->obj.status = 1; - obj2F4->obj.id = OBJ_2F4_189; - obj2F4->unk_0B8 = argB; - obj2F4->obj.pos.x = arg1; - obj2F4->obj.pos.y = arg2; - obj2F4->obj.pos.z = arg3; - obj2F4->obj.rot.x = arg4; - obj2F4->obj.rot.y = arg5; - obj2F4->obj.rot.z = arg6; - obj2F4->vel.x = arg7; - obj2F4->vel.y = arg8; - obj2F4->vel.z = arg9; - obj2F4->scale = argA; - obj2F4->timer_0BC = argC; - obj2F4->timer_0BE = 20; - Object_SetInfo(&obj2F4->info, obj2F4->obj.id); + Actor_Initialize(actor); + actor->obj.status = 1; + actor->obj.id = OBJ_ACTOR_189; + actor->unk_0B8 = argB; + actor->obj.pos.x = arg1; + actor->obj.pos.y = arg2; + actor->obj.pos.z = arg3; + actor->obj.rot.x = arg4; + actor->obj.rot.y = arg5; + actor->obj.rot.z = arg6; + actor->vel.x = arg7; + actor->vel.y = arg8; + actor->vel.z = arg9; + actor->scale = argA; + actor->timer_0BC = argC; + actor->timer_0BE = 20; + Object_SetInfo(&actor->info, actor->obj.id); if (gLevelType == LEVELTYPE_PLANET) { - obj2F4->gravity = 0.5f; + actor->gravity = 0.5f; } } @@ -84,15 +84,15 @@ void func_800430DC(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f s32 i; for (i = 59; i >= 0; i--) { - if (gObjects2F4[i].obj.status == 0) { - func_80042FF4(&gObjects2F4[i], arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, argA, argB); + if (gActors[i].obj.status == 0) { + func_80042FF4(&gActors[i], arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, argA, argB); return; } } } -void func_80043188(Object_2F4* obj2F4) { - obj2F4->info.unk_10 = 30000.0f; +void func_80043188(Actor* actor) { + actor->info.unk_10 = 30000.0f; } void func_8004319C(Player* player, f32 arg1, f32 arg2, f32 arg3) { diff --git a/src/main/fox_beam.c b/src/main/fox_beam.c index 92bf7052..4a417787 100644 --- a/src/main/fox_beam.c +++ b/src/main/fox_beam.c @@ -133,8 +133,8 @@ void func_80036318(PlayerShot* shot) { func_80035E78(shot); } else if (shot->obj.id == PLAYERSHOT_8) { shot->unk_44 = 7.5f; - for (i = 0; i < ARRAY_COUNT(gObjects2F4); i++) { - gObjects2F4[i].timer_0CA[shot->playerNum] = 0; + for (i = 0; i < ARRAY_COUNT(gActors); i++) { + gActors[i].timer_0CA[shot->playerNum] = 0; } shot->vel.x = shot->vel.y = shot->vel.z = 0.0f; if (gCurrentLevel == LEVEL_AQUAS) { @@ -339,7 +339,7 @@ s32 func_80036874(PlayerShot* shot, f32* hitboxData, Object* obj) { return 0; } -s32 func_80036F88(PlayerShot* shot, Object_2F4* obj2F4) { +s32 func_80036F88(PlayerShot* shot, Actor* actor) { s32 i; f32* hitboxData; f32 shotPx; @@ -351,22 +351,22 @@ s32 func_80036F88(PlayerShot* shot, Object_2F4* obj2F4) { Hitbox* hitbox; s32 count; - if ((fabsf(shot->obj.pos.z - obj2F4->obj.pos.z) < 2000.0f) && - (fabsf(shot->obj.pos.y - obj2F4->obj.pos.y) < 2000.0f) && - (fabsf(shot->obj.pos.x - obj2F4->obj.pos.x) < 2000.0f)) { - hitboxData = obj2F4->info.hitbox; + if ((fabsf(shot->obj.pos.z - actor->obj.pos.z) < 2000.0f) && + (fabsf(shot->obj.pos.y - actor->obj.pos.y) < 2000.0f) && + (fabsf(shot->obj.pos.x - actor->obj.pos.x) < 2000.0f)) { + hitboxData = actor->info.hitbox; count = *hitboxData++; if (count != 0) { xySizeMod = 0.0f; - if (obj2F4->info.unk_16 == 1) { - xySizeMod = fabsf((obj2F4->obj.pos.z + D_80177D20) / 50.0f) + 10.0f; + if (actor->info.unk_16 == 1) { + xySizeMod = fabsf((actor->obj.pos.z + D_80177D20) / 50.0f) + 10.0f; if ((shot->playerNum < 4) && ((gLaserStrength[shot->playerNum] != LASERS_SINGLE) || (shot->obj.id == PLAYERSHOT_8))) { xySizeMod += 30.0f; } } for (i = 0; i < count; i++, hitboxData += 6) { - if (obj2F4->info.unk_16 == 1) { + if (actor->info.unk_16 == 1) { shotPx = shot->obj.pos.x; shotPy = shot->obj.pos.y; shotPz = shot->obj.pos.z; @@ -375,34 +375,34 @@ s32 func_80036F88(PlayerShot* shot, Object_2F4* obj2F4) { 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, -obj2F4->obj.rot.z * M_DTOR, 1); - Matrix_RotateX(gCalcMatrix, -obj2F4->obj.rot.x * M_DTOR, 1); - Matrix_RotateY(gCalcMatrix, -obj2F4->obj.rot.y * M_DTOR, 1); + Matrix_RotateZ(gCalcMatrix, -actor->obj.rot.z * M_DTOR, 1); + Matrix_RotateX(gCalcMatrix, -actor->obj.rot.x * M_DTOR, 1); + Matrix_RotateY(gCalcMatrix, -actor->obj.rot.y * M_DTOR, 1); hitboxData += 4; } else { - Matrix_RotateZ(gCalcMatrix, -obj2F4->obj.rot.z * M_DTOR, 0); - Matrix_RotateX(gCalcMatrix, -obj2F4->obj.rot.x * M_DTOR, 1); - Matrix_RotateY(gCalcMatrix, -obj2F4->obj.rot.y * M_DTOR, 1); + Matrix_RotateZ(gCalcMatrix, -actor->obj.rot.z * M_DTOR, 0); + Matrix_RotateX(gCalcMatrix, -actor->obj.rot.x * M_DTOR, 1); + Matrix_RotateY(gCalcMatrix, -actor->obj.rot.y * M_DTOR, 1); } - if (((obj2F4->unk_2E8.z != 0.0f) || (obj2F4->unk_2E8.x != 0.0f) || (obj2F4->unk_0F4.z != 0.0f) || - (obj2F4->unk_2E8.y != 0.0f)) && - (obj2F4->unk_0B4 != 31)) { - Matrix_RotateZ(gCalcMatrix, -(obj2F4->unk_2E8.z + obj2F4->unk_0F4.z) * M_DTOR, 1); - Matrix_RotateX(gCalcMatrix, -obj2F4->unk_2E8.x * M_DTOR, 1); - Matrix_RotateY(gCalcMatrix, -obj2F4->unk_2E8.y * M_DTOR, 1); + if (((actor->vwork[29].z != 0.0f) || (actor->vwork[29].x != 0.0f) || (actor->unk_0F4.z != 0.0f) || + (actor->vwork[29].y != 0.0f)) && + (actor->unk_0B4 != 31)) { + Matrix_RotateZ(gCalcMatrix, -(actor->vwork[29].z + actor->unk_0F4.z) * M_DTOR, 1); + Matrix_RotateX(gCalcMatrix, -actor->vwork[29].x * M_DTOR, 1); + Matrix_RotateY(gCalcMatrix, -actor->vwork[29].y * M_DTOR, 1); } - sp7C.x = shot->obj.pos.x - obj2F4->obj.pos.x; - sp7C.y = shot->obj.pos.y - obj2F4->obj.pos.y; - sp7C.z = shot->obj.pos.z - obj2F4->obj.pos.z; + sp7C.x = shot->obj.pos.x - actor->obj.pos.x; + sp7C.y = shot->obj.pos.y - actor->obj.pos.y; + sp7C.z = shot->obj.pos.z - actor->obj.pos.z; Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp7C, &sp70); - shotPx = obj2F4->obj.pos.x + sp70.x; - shotPy = obj2F4->obj.pos.y + sp70.y; - shotPz = obj2F4->obj.pos.z + sp70.z; + shotPx = actor->obj.pos.x + sp70.x; + shotPy = actor->obj.pos.y + sp70.y; + shotPz = actor->obj.pos.z + sp70.z; } hitbox = (Hitbox*) hitboxData; - if ((fabsf(hitbox->z.offset + obj2F4->obj.pos.z - shotPz) < (hitbox->z.size + 50.0f)) && - (fabsf(hitbox->x.offset + obj2F4->obj.pos.x - shotPx) < (hitbox->x.size + xySizeMod)) && - (fabsf(hitbox->y.offset + obj2F4->obj.pos.y - shotPy) < (hitbox->y.size + xySizeMod))) { + if ((fabsf(hitbox->z.offset + actor->obj.pos.z - shotPz) < (hitbox->z.size + 50.0f)) && + (fabsf(hitbox->x.offset + actor->obj.pos.x - shotPx) < (hitbox->x.size + xySizeMod)) && + (fabsf(hitbox->y.offset + actor->obj.pos.y - shotPy) < (hitbox->y.size + xySizeMod))) { return i + 1; } } @@ -411,17 +411,17 @@ s32 func_80036F88(PlayerShot* shot, Object_2F4* obj2F4) { return 0; } -bool func_80037438(PlayerShot* shot, Object_2F4* obj2F4) { +bool func_80037438(PlayerShot* shot, Actor* actor) { Object* shotx = &shot->obj; - f32 temp_fv1 = obj2F4->obj.pos.x - shotx->pos.x; - f32 temp_fa0 = obj2F4->obj.pos.z - shotx->pos.z; + f32 temp_fv1 = actor->obj.pos.x - shotx->pos.x; + f32 temp_fa0 = actor->obj.pos.z - shotx->pos.z; f32 var_fa1; - f32* hitboxData = obj2F4->info.hitbox; + f32* hitboxData = actor->info.hitbox; if (((s32) hitboxData[0] != 0) && (sqrtf(SQ(temp_fv1) + SQ(temp_fa0)) <= 500.0f)) { if (shot->playerNum < 4) { - temp_fv1 = obj2F4->obj.pos.x - gPlayer[0].camEye.x; - temp_fa0 = obj2F4->obj.pos.z + D_80177D20 - gPlayer[0].camEye.z; + temp_fv1 = actor->obj.pos.x - gPlayer[0].camEye.x; + temp_fa0 = actor->obj.pos.z + D_80177D20 - gPlayer[0].camEye.z; var_fa1 = (sqrtf(SQ(temp_fv1) + SQ(temp_fa0)) / 50.0f) + 20.0f + 10.0f; if (var_fa1 > 200.0f) { var_fa1 = 200.0f; @@ -431,17 +431,17 @@ bool func_80037438(PlayerShot* shot, Object_2F4* obj2F4) { } else if (gLaserStrength[shot->playerNum] != LASERS_SINGLE) { var_fa1 += 30.0f; } - if (fabsf(hitboxData[1] + obj2F4->obj.pos.z - shotx->pos.z) < (hitboxData[2] + var_fa1)) { - if (fabsf(hitboxData[3] + obj2F4->obj.pos.y - shotx->pos.y) < (hitboxData[4] + var_fa1)) { - if (fabsf(hitboxData[5] + obj2F4->obj.pos.x - shotx->pos.x) < (hitboxData[6] + var_fa1)) { + if (fabsf(hitboxData[1] + actor->obj.pos.z - shotx->pos.z) < (hitboxData[2] + var_fa1)) { + if (fabsf(hitboxData[3] + actor->obj.pos.y - shotx->pos.y) < (hitboxData[4] + var_fa1)) { + if (fabsf(hitboxData[5] + actor->obj.pos.x - shotx->pos.x) < (hitboxData[6] + var_fa1)) { return true; } } } } else { - if (fabsf(hitboxData[1] + obj2F4->obj.pos.z - shotx->pos.z) < hitboxData[2]) { - if (fabsf(hitboxData[3] + obj2F4->obj.pos.y - shotx->pos.y) < hitboxData[4]) { - if (fabsf(hitboxData[5] + obj2F4->obj.pos.x - shotx->pos.x) < hitboxData[6]) { + if (fabsf(hitboxData[1] + actor->obj.pos.z - shotx->pos.z) < hitboxData[2]) { + if (fabsf(hitboxData[3] + actor->obj.pos.y - shotx->pos.y) < hitboxData[4]) { + if (fabsf(hitboxData[5] + actor->obj.pos.x - shotx->pos.x) < hitboxData[6]) { return true; } } @@ -496,7 +496,7 @@ bool func_8003774C(PlayerShot* shot, ObjectId objId, Object* obj) { sp58.z = obj->pos.z; useCol2 = false; switch (objId) { - case OBJ_2F4_180: + case OBJ_ACTOR_180: objId = COL1_0; break; case OBJ_80_4: @@ -640,52 +640,52 @@ bool func_8003774C(PlayerShot* shot, ObjectId objId, Object* obj) { // return false; } -void func_80037CF4(PlayerShot* shot, Object_2F4* obj2F4, s32 hitIndex) { +void func_80037CF4(PlayerShot* shot, Actor* actor, s32 hitIndex) { Vec3f sp44 = { 0.0f, 0.0f, -100.0f }; Vec3f sp38; - obj2F4->unk_0D0 = 1; - obj2F4->unk_0D2 = hitIndex - 1; - obj2F4->timer_0C2 = 2; - obj2F4->unk_0D6 = 10; + actor->unk_0D0 = 1; + actor->unk_0D2 = hitIndex - 1; + actor->timer_0C2 = 2; + actor->unk_0D6 = 10; if ((shot->playerNum < 4) && (gPlayer[shot->playerNum].form != FORM_LANDMASTER)) { switch (gLaserStrength[shot->playerNum]) { case LASERS_TWIN: - obj2F4->unk_0D6 = 12; + actor->unk_0D6 = 12; break; case LASERS_HYPER: - obj2F4->unk_0D6 = 15; + actor->unk_0D6 = 15; break; } } else if ((shot->playerNum >= 100) && (gCurrentLevel == LEVEL_SECTOR_X)) { - if ((gObjects2F4[shot->playerNum - 100].obj.id == 200) && (gObjects2F4[shot->playerNum - 100].unk_080 == 5)) { - obj2F4->unk_0D6 = 30; + if ((gActors[shot->playerNum - 100].obj.id == 200) && (gActors[shot->playerNum - 100].iwork[12] == 5)) { + actor->unk_0D6 = 30; } } if (shot->obj.id == PLAYERSHOT_9) { - obj2F4->unk_0D6 = 100; + actor->unk_0D6 = 100; } else if (shot->obj.id == PLAYERSHOT_8) { if (gCurrentLevel == LEVEL_AQUAS) { - obj2F4->unk_0D6 = 31; + actor->unk_0D6 = 31; } else { - obj2F4->unk_0D0 = 2; - obj2F4->unk_0D6 = 30; - obj2F4->timer_0CA[shot->playerNum] = 0; + actor->unk_0D0 = 2; + actor->unk_0D6 = 30; + actor->timer_0CA[shot->playerNum] = 0; } } - obj2F4->unk_0D4 = shot->playerNum + 1; - obj2F4->unk_0D8.x = shot->obj.pos.x; - obj2F4->unk_0D8.y = shot->obj.pos.y; - obj2F4->unk_0D8.z = shot->obj.pos.z; - if (((obj2F4->obj.id == OBJ_2F4_200) && (obj2F4->unk_0D2 == 0) && - ((obj2F4->unk_0B4 == 48) || (obj2F4->unk_0B4 == 49) || (obj2F4->unk_0B4 == 50))) || - ((obj2F4->obj.id == OBJ_2F4_197) && (obj2F4->unk_170 > 1.0f)) || - ((obj2F4->obj.id == OBJ_2F4_200) && (obj2F4->unk_0D2 == 0) && (obj2F4->unk_0B4 == 67)) || - ((obj2F4->obj.id == OBJ_2F4_261) && (shot->obj.id != PLAYERSHOT_8) && - ((obj2F4->unk_0B8 < 3) || (obj2F4->unk_0B8 >= 5))) || - ((obj2F4->obj.id == OBJ_2F4_260) && (shot->obj.id != PLAYERSHOT_8) && (obj2F4->timer_0BC != 0))) { - if ((obj2F4->obj.id == OBJ_2F4_261) && (obj2F4->unk_0B8 < 2)) { - obj2F4->unk_0B8 = 2; + actor->unk_0D4 = shot->playerNum + 1; + actor->unk_0D8.x = shot->obj.pos.x; + actor->unk_0D8.y = shot->obj.pos.y; + actor->unk_0D8.z = shot->obj.pos.z; + if (((actor->obj.id == OBJ_ACTOR_200) && (actor->unk_0D2 == 0) && + ((actor->unk_0B4 == 48) || (actor->unk_0B4 == 49) || (actor->unk_0B4 == 50))) || + ((actor->obj.id == OBJ_ACTOR_197) && (actor->fwork[23] > 1.0f)) || + ((actor->obj.id == OBJ_ACTOR_200) && (actor->unk_0D2 == 0) && (actor->unk_0B4 == 67)) || + ((actor->obj.id == OBJ_ACTOR_261) && (shot->obj.id != PLAYERSHOT_8) && + ((actor->unk_0B8 < 3) || (actor->unk_0B8 >= 5))) || + ((actor->obj.id == OBJ_ACTOR_260) && (shot->obj.id != PLAYERSHOT_8) && (actor->timer_0BC != 0))) { + if ((actor->obj.id == OBJ_ACTOR_261) && (actor->unk_0B8 < 2)) { + actor->unk_0B8 = 2; } if ((shot->obj.id == PLAYERSHOT_8) || (shot->obj.id == PLAYERSHOT_3)) { func_80036318(shot); @@ -702,9 +702,9 @@ void func_80037CF4(PlayerShot* shot, Object_2F4* obj2F4, s32 hitIndex) { shot->obj.pos.x += shot->vel.x * 5.0f; shot->obj.pos.y += shot->vel.y * 5.0f; shot->obj.pos.z += shot->vel.z * 5.0f; - obj2F4->timer_0C2 = 3; - func_80078E50(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, 8.0f); - Audio_PlaySfx(0x29121007, &obj2F4->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + actor->timer_0C2 = 3; + func_80078E50(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 8.0f); + Audio_PlaySfx(0x29121007, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); func_800A668C(D_8017849C, D_801784A0, D_80178498); } } else { @@ -722,7 +722,7 @@ void func_80038140(PlayerShot* shot) { f32 sp94; Vec3f sp88; Vec3f sp7C; - Object_2F4* obj2F4; + Actor* actor; Boss* boss; Object_58* obj58; Object_4C* obj4C; @@ -748,64 +748,64 @@ void func_80038140(PlayerShot* shot) { } } } - for (i = 0, obj2F4 = gObjects2F4; i < 60; i++, obj2F4++) { - if ((obj2F4->obj.status >= 2) && (obj2F4->timer_0C2 == 0)) { - switch (obj2F4->obj.id) { - case OBJ_2F4_180: - if (func_8003774C(shot, obj2F4->obj.id, &obj2F4->obj)) { - obj2F4->unk_0D0 = 1; - obj2F4->unk_0D2 = shot->playerNum; + for (i = 0, actor = gActors; i < 60; i++, actor++) { + if ((actor->obj.status >= 2) && (actor->timer_0C2 == 0)) { + switch (actor->obj.id) { + case OBJ_ACTOR_180: + if (func_8003774C(shot, actor->obj.id, &actor->obj)) { + actor->unk_0D0 = 1; + actor->unk_0D2 = shot->playerNum; return; } break; - case OBJ_2F4_200: - if (obj2F4->unk_0B4 == 42) { - if (func_8003774C(shot, OBJ_UNK_1000, &obj2F4->obj)) { - obj2F4->unk_0D0 = 1; - obj2F4->unk_0D2 = shot->playerNum; + case OBJ_ACTOR_200: + if (actor->unk_0B4 == 42) { + if (func_8003774C(shot, OBJ_UNK_1000, &actor->obj)) { + actor->unk_0D0 = 1; + actor->unk_0D2 = shot->playerNum; return; } - } else if (obj2F4->unk_0B4 == 63) { - temp_fv1 = fabsf(obj2F4->obj.pos.x - shot->obj.pos.x); - temp_fa0 = fabsf(obj2F4->obj.pos.y - shot->obj.pos.y); - temp_fv0 = fabsf(obj2F4->obj.pos.z - shot->obj.pos.z); + } else if (actor->unk_0B4 == 63) { + temp_fv1 = fabsf(actor->obj.pos.x - shot->obj.pos.x); + temp_fa0 = fabsf(actor->obj.pos.y - shot->obj.pos.y); + temp_fv0 = fabsf(actor->obj.pos.z - shot->obj.pos.z); if (sqrtf(SQ(temp_fv1) + SQ(temp_fa0) + SQ(temp_fv0)) < 1000.0f) { - func_80037CF4(shot, obj2F4, 0); + func_80037CF4(shot, actor, 0); } } else { - temp_v0 = func_80036F88(shot, obj2F4); + temp_v0 = func_80036F88(shot, actor); if (temp_v0 != 0) { - func_80037CF4(shot, obj2F4, temp_v0); + func_80037CF4(shot, actor, temp_v0); return; } } break; default: - if (obj2F4->info.unk_16 != 0) { - if (obj2F4->obj.id == OBJ_2F4_197) { - if ((obj2F4->unk_0E4 >= 4) && (obj2F4->unk_0E4 < 10) && + if (actor->info.unk_16 != 0) { + if (actor->obj.id == OBJ_ACTOR_197) { + if ((actor->unk_0E4 >= 4) && (actor->unk_0E4 < 10) && (((gCurrentLevel == LEVEL_VENOM_2) && (shot->playerNum < 104)) || ((gCurrentLevel != LEVEL_VENOM_2) && (shot->playerNum == 0))) && (shot->obj.id != PLAYERSHOT_8) && - (fabsf(obj2F4->obj.pos.x - shot->obj.pos.x) < 500.0f) && - (fabsf(obj2F4->obj.pos.y - shot->obj.pos.y) < 300.0f) && - (fabsf(obj2F4->obj.pos.z - shot->obj.pos.z) < 500.0f)) { + (fabsf(actor->obj.pos.x - shot->obj.pos.x) < 500.0f) && + (fabsf(actor->obj.pos.y - shot->obj.pos.y) < 300.0f) && + (fabsf(actor->obj.pos.z - shot->obj.pos.z) < 500.0f)) { if (gCurrentLevel == LEVEL_VENOM_2) { - obj2F4->unk_094 = 1; + actor->iwork[17] = 1; } else if (Rand_ZeroOne() < 0.1f) { - obj2F4->unk_094 = 1; + actor->iwork[17] = 1; } } } - temp_v0 = func_80037438(shot, obj2F4); + temp_v0 = func_80037438(shot, actor); if (temp_v0 != 0) { - func_80037CF4(shot, obj2F4, temp_v0); + func_80037CF4(shot, actor, temp_v0); return; } } else { - temp_v0 = func_80036874(shot, obj2F4->info.hitbox, &obj2F4->obj); + temp_v0 = func_80036874(shot, actor->info.hitbox, &actor->obj); if (temp_v0 != 0) { - func_80037CF4(shot, obj2F4, temp_v0); + func_80037CF4(shot, actor, temp_v0); return; } } @@ -1102,22 +1102,22 @@ void func_80039210(PlayerShot* shot) { } else { var_a1 = 0; if ((gCurrentLevel != LEVEL_KATINA) && (shot->playerNum >= 104) && (shot->playerNum != 108)) { - if (gObjects2F4[shot->playerNum - 100].obj.id != 200) { + if (gActors[shot->playerNum - 100].obj.id != 200) { var_a1 = 1; - } else if (gObjects2F4[shot->playerNum - 100].unk_080 == 5) { + } else if (gActors[shot->playerNum - 100].iwork[12] == 5) { var_a1 = 2; } } else if (gCurrentLevel == LEVEL_KATINA) { if (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_2) { if (shot->playerNum >= 104) { - if (gObjects2F4[shot->playerNum - 100].unk_0B6 == 0) { + if (gActors[shot->playerNum - 100].unk_0B6 == 0) { var_a1 = 1; } - if (gObjects2F4[shot->playerNum - 100].unk_0B6 == 2) { + if (gActors[shot->playerNum - 100].unk_0B6 == 2) { var_a1 = 2; } } - } else if (gObjects2F4[shot->playerNum - 100].unk_0B6 == 34) { + } else if (gActors[shot->playerNum - 100].unk_0B6 == 34) { var_a1 = 1; } } @@ -1672,7 +1672,7 @@ bool func_8003BB4C(PlayerShot* shot) { s32 i; s32 j; f32 var_fa0; - Object_2F4* obj2F4; + Actor* actor; Player* player; if (gLevelMode == LEVELMODE_ON_RAILS) { @@ -1680,12 +1680,12 @@ bool func_8003BB4C(PlayerShot* shot) { } else { var_fa0 = 200.0f; } - for (i = 0, obj2F4 = gObjects2F4; i < 60; i++, obj2F4++) { - if ((obj2F4->obj.status == 2) && (obj2F4->info.unk_1C != 0.0f) && - ((obj2F4->timer_0CA[shot->playerNum] == 0) && (fabsf(shot->obj.pos.x - obj2F4->obj.pos.x) <= var_fa0) && - (fabsf(shot->obj.pos.y - (obj2F4->obj.pos.y + obj2F4->info.unk_1C)) <= var_fa0) && - (fabsf(shot->obj.pos.z - obj2F4->obj.pos.z) <= var_fa0))) { - obj2F4->timer_0CA[shot->playerNum] = 20; + for (i = 0, actor = gActors; i < 60; i++, actor++) { + if ((actor->obj.status == 2) && (actor->info.unk_1C != 0.0f) && + ((actor->timer_0CA[shot->playerNum] == 0) && (fabsf(shot->obj.pos.x - actor->obj.pos.x) <= var_fa0) && + (fabsf(shot->obj.pos.y - (actor->obj.pos.y + actor->info.unk_1C)) <= var_fa0) && + (fabsf(shot->obj.pos.z - actor->obj.pos.z) <= var_fa0))) { + actor->timer_0CA[shot->playerNum] = 20; func_80060F30(gPlayer[shot->playerNum].unk_460_arr, 0x49008027, shot->playerNum); for (j = 0; j < ARRAY_COUNT(gPlayerShots); j++) { if (gPlayerShots[j].obj.id == PLAYERSHOT_4) { @@ -1832,7 +1832,7 @@ void func_8003C4D0(PlayerShot* shot, s32 unkD6) { f32 sp64; f32 sp60; s32 pad[2]; - Object_2F4* obj2F4; + Actor* actor; Object_4C* obj4C; Object_80* obj80; Effect* effect; @@ -1861,54 +1861,55 @@ void func_8003C4D0(PlayerShot* shot, s32 unkD6) { } } } - obj2F4 = gObjects2F4; - for (i = 0; i < 60; i++, obj2F4++) { - if ((obj2F4->obj.status == 2) && (obj2F4->timer_0C2 == 0) && - !((gCurrentLevel == LEVEL_MACBETH) && (OBJ_2F4_205 <= obj2F4->obj.id) && (obj2F4->obj.id < OBJ_2F4_214)) && - !((obj2F4->obj.id == OBJ_2F4_200) && (obj2F4->unk_080 != 0)) && - ((obj2F4->scale >= 0.0f) || (obj2F4->obj.id == OBJ_2F4_271))) { - sp68 = obj2F4->obj.pos.x - shot->obj.pos.x; - sp64 = obj2F4->obj.pos.y - shot->obj.pos.y; - sp60 = obj2F4->obj.pos.z - shot->obj.pos.z; + actor = gActors; + for (i = 0; i < 60; i++, actor++) { + if ((actor->obj.status == 2) && (actor->timer_0C2 == 0) && + !((gCurrentLevel == LEVEL_MACBETH) && (OBJ_ACTOR_205 <= actor->obj.id) && + (actor->obj.id < OBJ_ACTOR_214)) && + !((actor->obj.id == OBJ_ACTOR_200) && (actor->iwork[12] != 0)) && + ((actor->scale >= 0.0f) || (actor->obj.id == OBJ_ACTOR_271))) { + sp68 = actor->obj.pos.x - shot->obj.pos.x; + sp64 = actor->obj.pos.y - shot->obj.pos.y; + sp60 = actor->obj.pos.z - shot->obj.pos.z; if ((gLevelMode == 0) && (sp60 < 0.0f)) { sp60 *= 0.6f; } - obj2F4->unk_0D8.x = shot->obj.pos.x; - obj2F4->unk_0D8.y = shot->obj.pos.y; - obj2F4->unk_0D8.z = shot->obj.pos.z; + actor->unk_0D8.x = shot->obj.pos.x; + actor->unk_0D8.y = shot->obj.pos.y; + actor->unk_0D8.z = shot->obj.pos.z; if (sqrtf(SQ(sp68) + SQ(sp64) + SQ(sp60)) < temp_fs2) { - if ((obj2F4->obj.id == OBJ_2F4_193) || (obj2F4->obj.id == OBJ_2F4_186) || - (obj2F4->obj.id == OBJ_2F4_190) || (obj2F4->obj.id == OBJ_2F4_202) || - (obj2F4->obj.id == OBJ_2F4_201) || (obj2F4->obj.id == OBJ_2F4_187) || - ((obj2F4->obj.id == OBJ_2F4_200) && (obj2F4->unk_0B4 == 78)) || - ((obj2F4->obj.id == OBJ_2F4_200) && (obj2F4->unk_0B4 == 38)) || (obj2F4->obj.id == OBJ_2F4_196)) { - obj2F4->unk_0D0 = 2; - obj2F4->unk_0D2 = 0; - obj2F4->unk_0D4 = shot->playerNum + 1; - obj2F4->unk_0D6 = unkD6; + if ((actor->obj.id == OBJ_ACTOR_193) || (actor->obj.id == OBJ_ACTOR_186) || + (actor->obj.id == OBJ_ACTOR_190) || (actor->obj.id == OBJ_ACTOR_202) || + (actor->obj.id == OBJ_ACTOR_201) || (actor->obj.id == OBJ_ACTOR_187) || + ((actor->obj.id == OBJ_ACTOR_200) && (actor->unk_0B4 == 78)) || + ((actor->obj.id == OBJ_ACTOR_200) && (actor->unk_0B4 == 38)) || (actor->obj.id == OBJ_ACTOR_196)) { + actor->unk_0D0 = 2; + actor->unk_0D2 = 0; + actor->unk_0D4 = shot->playerNum + 1; + actor->unk_0D6 = unkD6; - if (obj2F4->info.bonus != 0) { + if (actor->info.bonus != 0) { shot->bonus++; } - } else if ((obj2F4->obj.id == OBJ_2F4_200) && (obj2F4->scale >= 0.5f) && (unkD6 >= 31)) { - obj2F4->unk_0D4 = shot->playerNum + 1; - obj2F4->vel.x = sp68 * 0.03f; - obj2F4->vel.y = sp64 * 0.03f; - obj2F4->vel.z = sp60 * 0.03f; - obj2F4->obj.status = 3; - obj2F4->timer_0BC = (s32) (Rand_ZeroOne() * 15.0f) + 10; - obj2F4->timer_0BE = 0; - obj2F4->timer_04C = 4; - obj2F4->obj.rot.x = Math_ModF(obj2F4->obj.rot.x, 360.0f); - if (obj2F4->info.bonus != 0) { + } else if ((actor->obj.id == OBJ_ACTOR_200) && (actor->scale >= 0.5f) && (unkD6 >= 31)) { + actor->unk_0D4 = shot->playerNum + 1; + actor->vel.x = sp68 * 0.03f; + actor->vel.y = sp64 * 0.03f; + actor->vel.z = sp60 * 0.03f; + actor->obj.status = 3; + actor->timer_0BC = (s32) (Rand_ZeroOne() * 15.0f) + 10; + actor->timer_0BE = 0; + actor->timer_04C = 4; + actor->obj.rot.x = Math_ModF(actor->obj.rot.x, 360.0f); + if (actor->info.bonus != 0) { shot->bonus++; } } else { - obj2F4->unk_0D0 = 2; - obj2F4->unk_0D2 = 0; - obj2F4->unk_0D4 = shot->playerNum + 1; - obj2F4->unk_0D6 = unkD6; - if (obj2F4->info.bonus != 0) { + actor->unk_0D0 = 2; + actor->unk_0D2 = 0; + actor->unk_0D4 = shot->playerNum + 1; + actor->unk_0D6 = unkD6; + if (actor->info.bonus != 0) { shot->bonus++; } } @@ -2055,7 +2056,7 @@ void func_8003CF90(PlayerShot* shot) { f32 sp60; f32 sp5C; f32 sp58; - Object_2F4* obj2F4; + Actor* actor; Player* player; if ((shot->obj.pos.y < D_80177940) || (shot->unk_64 == 1)) { @@ -2072,13 +2073,13 @@ void func_8003CF90(PlayerShot* shot) { } else { var_a3 = 0; if (shot->unk_60 == 0) { - for (i = 0, obj2F4 = gObjects2F4; i < 60; i++, obj2F4++) { - if ((obj2F4->obj.status == 2) && (obj2F4->info.unk_1C != 0.0f) && - (obj2F4->timer_0CA[shot->playerNum] != 0)) { + for (i = 0, actor = gActors; i < 60; i++, actor++) { + if ((actor->obj.status == 2) && (actor->info.unk_1C != 0.0f) && + (actor->timer_0CA[shot->playerNum] != 0)) { var_a3 = 1; - obj2F4->timer_0CA[shot->playerNum] = 2; - D_800C9C24 = obj2F4->obj.pos; - D_800C9C24.y += obj2F4->info.unk_1C; + actor->timer_0CA[shot->playerNum] = 2; + D_800C9C24 = actor->obj.pos; + D_800C9C24.y += actor->info.unk_1C; } } for (i = 0, player = gPlayer; i < gCamCount; i++, player++) { diff --git a/src/main/fox_demo.c b/src/main/fox_demo.c index d3b1d26c..64e5f325 100644 --- a/src/main/fox_demo.c +++ b/src/main/fox_demo.c @@ -134,9 +134,9 @@ AnimationHeader* D_800CA1F4[] = { extern void func_E6A810_8018769C(Player*); extern void func_801882CC(Player*, OSContPad**, OSContPad**); extern void func_8018CD8C(Player*); -extern void func_8018DA58(Object_2F4*); +extern void func_8018DA58(Actor*); extern void func_8018E084(Player*); -extern void func_8018ED9C(Object_2F4*); +extern void func_8018ED9C(Actor*); extern void func_8018EF6C(Player*); extern void func_8018F880(Player*); extern void func_8018F94C(Player*); @@ -145,26 +145,26 @@ 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_80195E44(Actor*); extern void func_80196BF8(Player*); extern void func_80196D88(Player*); extern void func_80197290(Player*); -extern void func_80197F10(Object_2F4*); +extern void func_80197F10(Actor*); extern void func_801988B8(Player*); extern void func_8019BA64(Player*); extern void func_8019C85C(Player*); -extern void func_8019DD20(Object_2F4*); -extern void func_8019E5F0(Object_2F4*); +extern void func_8019DD20(Actor*); +extern void func_8019E5F0(Actor*); extern void func_8019EE60(Player*); -extern void func_8019FF00(Object_2F4*); +extern void func_8019FF00(Actor*); extern void func_E9F1D0_801A0AC0(Player*); -extern void func_801A8BE8(Object_2F4*); +extern void func_801A8BE8(Actor*); 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_801B28BC(Actor*); extern void func_801B3D04(Player*, OSContPad**, OSContPad**); -extern void func_801BE0F0(Object_2F4*); +extern void func_801BE0F0(Actor*); void func_80048AC0(s32 teamId) { s32 teamShield; @@ -218,24 +218,24 @@ void func_80048AC0(s32 teamId) { } } -void func_80048CC4(Object_2F4* obj2F4, s32 arg1) { - Object_2F4_Initialize(obj2F4); - obj2F4->obj.status = 1; - obj2F4->obj.id = OBJ_2F4_195; - obj2F4->obj.pos.x = D_800C9F60[arg1].x + gPlayer[0].pos.x; - obj2F4->obj.pos.y = D_800C9F60[arg1].y + gPlayer[0].pos.y; - obj2F4->obj.pos.z = D_800C9F60[arg1].z + gPlayer[0].unk_138; - obj2F4->unk_0F4.y = 0.0f; - obj2F4->unk_0F4.z = D_800C9F90[arg1]; - Object_SetInfo(&obj2F4->info, obj2F4->obj.id); +void func_80048CC4(Actor* actor, s32 arg1) { + Actor_Initialize(actor); + actor->obj.status = 1; + actor->obj.id = OBJ_ACTOR_195; + actor->obj.pos.x = D_800C9F60[arg1].x + gPlayer[0].pos.x; + actor->obj.pos.y = D_800C9F60[arg1].y + gPlayer[0].pos.y; + actor->obj.pos.z = D_800C9F60[arg1].z + gPlayer[0].unk_138; + actor->unk_0F4.y = 0.0f; + actor->unk_0F4.z = D_800C9F90[arg1]; + Object_SetInfo(&actor->info, actor->obj.id); if (arg1 == 3) { - Audio_PlaySfx(0x11030010U, &obj2F4->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); - Audio_PlaySfx(0x31024059U, &obj2F4->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); - obj2F4->unk_0B6 = 1; + Audio_PlaySfx(0x11030010U, &actor->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + Audio_PlaySfx(0x31024059U, &actor->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + actor->unk_0B6 = 1; } else { - obj2F4->unk_07C = 1; - Audio_PlaySfx(0x3100000CU, &obj2F4->sfxPos, 4U, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + actor->iwork[11] = 1; + Audio_PlaySfx(0x3100000CU, &actor->sfxPos, 4U, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } } @@ -287,13 +287,13 @@ void func_80048E40(Player* player) { switch (D_80177A80) { case 101: if (gTeamShields[1] > 0) { - func_80048CC4(&gObjects2F4[0], 0); + func_80048CC4(&gActors[0], 0); } if (gTeamShields[2] > 0) { - func_80048CC4(&gObjects2F4[1], 1); + func_80048CC4(&gActors[1], 1); } if (gTeamShields[3] > 0) { - func_80048CC4(&gObjects2F4[2], 2); + func_80048CC4(&gActors[2], 2); } break; @@ -310,15 +310,15 @@ void func_80048E40(Player* player) { break; case 420: - gObjects2F4[0].unk_0B8 = 1; + gActors[0].unk_0B8 = 1; break; case 430: - gObjects2F4[1].unk_0B8 = 1; + gActors[1].unk_0B8 = 1; break; case 440: - gObjects2F4[2].unk_0B8 = 1; + gActors[2].unk_0B8 = 1; break; case 450: @@ -394,53 +394,53 @@ void func_80048E40(Player* player) { player->unk_0F0 = __sinf(player->unk_0F4 * M_DTOR); } -void func_80049630(Object_2F4* obj2F4) { +void func_80049630(Actor* actor) { Vec3f sp3C; Vec3f sp30; - switch (obj2F4->unk_0B8) { + switch (actor->unk_0B8) { case 0: - 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); - Math_SmoothStepToF(&obj2F4->unk_0F4.x, gPlayer[0].unk_0E4, 0.1f, 2.0f, 0.0001f); - Math_SmoothStepToF(&obj2F4->unk_0F4.y, gPlayer[0].unk_0E8, 0.1f, 2.0f, 0.0001f); - Math_SmoothStepToF(&obj2F4->unk_0F4.z, 0.0f, 0.05f, 0.2f, 0.0001f); + actor->vwork[0].x = gPlayer[0].pos.x + D_800C9FA0[actor->index].x; + actor->vwork[0].y = gPlayer[0].pos.y + D_800C9FA0[actor->index].y; + actor->vwork[0].z = gPlayer[0].pos.z + D_800C9FA0[actor->index].z; + Math_SmoothStepToF(&actor->obj.pos.x, actor->vwork[0].x, 0.05f, 50.0f, 0.0001f); + Math_SmoothStepToF(&actor->obj.pos.y, actor->vwork[0].y, 0.05f, 50.0f, 0.0001f); + Math_SmoothStepToF(&actor->obj.pos.z, actor->vwork[0].z, 0.05f, 50.0f, 0.0001f); + Math_SmoothStepToF(&actor->unk_0F4.x, gPlayer[0].unk_0E4, 0.1f, 2.0f, 0.0001f); + Math_SmoothStepToF(&actor->unk_0F4.y, gPlayer[0].unk_0E8, 0.1f, 2.0f, 0.0001f); + Math_SmoothStepToF(&actor->unk_0F4.z, 0.0f, 0.05f, 0.2f, 0.0001f); break; case 1: - obj2F4->unk_0B8 = 2; - Audio_PlaySfx(0x09000002U, &obj2F4->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); - obj2F4->timer_0BC = 0x96; - obj2F4->unk_188 = 5.0f; + actor->unk_0B8 = 2; + Audio_PlaySfx(0x09000002U, &actor->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + actor->timer_0BC = 0x96; + actor->fwork[29] = 5.0f; case 2: - obj2F4->unk_07C = 2; - obj2F4->unk_114 += 2.0f; - if (obj2F4->timer_0BC == 0) { - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); + actor->iwork[11] = 2; + actor->fwork[0] += 2.0f; + if (actor->timer_0BC == 0) { + Object_Kill(&actor->obj, &actor->sfxPos); } break; } - Matrix_RotateY(gCalcMatrix, (obj2F4->unk_0F4.y + 180.0f) * M_DTOR, 0); - Matrix_RotateX(gCalcMatrix, -(obj2F4->unk_0F4.x * M_DTOR), 1); + Matrix_RotateY(gCalcMatrix, (actor->unk_0F4.y + 180.0f) * M_DTOR, 0); + Matrix_RotateX(gCalcMatrix, -(actor->unk_0F4.x * M_DTOR), 1); sp3C.x = 0.0f; sp3C.y = 0.0f; - sp3C.z = obj2F4->unk_114; + sp3C.z = actor->fwork[0]; Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp3C, &sp30); - obj2F4->vel.x = sp30.x; - obj2F4->vel.y = sp30.y; - obj2F4->vel.z = sp30.z; + actor->vel.x = sp30.x; + actor->vel.y = sp30.y; + actor->vel.z = sp30.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; + actor->obj.rot.x = -actor->unk_0F4.x; + actor->obj.rot.y = actor->unk_0F4.y + 180.0f; + actor->obj.rot.z = -actor->unk_0F4.z; } void func_8004990C(Player* player) { @@ -451,23 +451,23 @@ void func_8004990C(Player* player) { player->unk_0F8 = player->unk_0EC + player->unk_12C + player->unk_130; } -void func_80049968(Object_2F4* obj2F4, s32 arg1) { - Object_2F4_Initialize(obj2F4); - obj2F4->obj.status = 1; - obj2F4->obj.id = OBJ_2F4_195; - obj2F4->obj.pos.x = D_800C9FD0[arg1]; - obj2F4->obj.pos.y = D_800C9FE0[arg1]; - obj2F4->obj.pos.z = D_800C9FF0[arg1] + ((void) 0, gPlayer)[0].unk_138; - obj2F4->unk_114 = D_800CA000[arg1]; - obj2F4->unk_118 = D_800CA010[arg1]; - obj2F4->unk_0B6 = D_800CA030[arg1]; - obj2F4->unk_0B8 = D_800CA040[arg1]; - obj2F4->obj.rot.z = D_800CA020[arg1]; - obj2F4->obj.rot.y = 180.0f; - obj2F4->vel.z = gPlayer[0].vel.z; - Object_SetInfo(&obj2F4->info, obj2F4->obj.id); - obj2F4->unk_07C = 1; - Audio_PlaySfx(0x3100000CU, &obj2F4->sfxPos, 4U, &D_800C5D34, &D_800C5D34, &D_800C5D3C); +void func_80049968(Actor* actor, s32 arg1) { + Actor_Initialize(actor); + actor->obj.status = 1; + actor->obj.id = OBJ_ACTOR_195; + actor->obj.pos.x = D_800C9FD0[arg1]; + actor->obj.pos.y = D_800C9FE0[arg1]; + actor->obj.pos.z = D_800C9FF0[arg1] + ((void) 0, gPlayer)[0].unk_138; + actor->fwork[0] = D_800CA000[arg1]; + actor->fwork[1] = D_800CA010[arg1]; + actor->unk_0B6 = D_800CA030[arg1]; + actor->unk_0B8 = D_800CA040[arg1]; + actor->obj.rot.z = D_800CA020[arg1]; + actor->obj.rot.y = 180.0f; + actor->vel.z = gPlayer[0].vel.z; + Object_SetInfo(&actor->info, actor->obj.id); + actor->iwork[11] = 1; + Audio_PlaySfx(0x3100000CU, &actor->sfxPos, 4U, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } void func_80049A9C(Effect* effect, f32 x, f32 y, f32 z) { @@ -543,16 +543,16 @@ void func_80049C0C(Player* player) { player->unk_0CC = -500.0f; if (gTeamShields[1] > 0) { - func_80049968(&gObjects2F4[0], 0); + func_80049968(&gActors[0], 0); } if (gTeamShields[2] > 0) { - func_80049968(&gObjects2F4[1], 1); + func_80049968(&gActors[1], 1); } if (gTeamShields[3] > 0) { - func_80049968(&gObjects2F4[2], 2); + func_80049968(&gActors[2], 2); } - func_80049968(&gObjects2F4[3], 3); + func_80049968(&gActors[3], 3); player->timer_1F8 = 0x32; break; @@ -595,23 +595,23 @@ void func_80049C0C(Player* player) { player->unk_190 = 2.0f; if ((player->timer_1F8 == 0x5F) && (gTeamShields[1] > 0)) { - gObjects2F4[0].unk_0B8 = var_v0; - Audio_PlaySfx(0x0940802AU, &gObjects2F4[0].sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + gActors[0].unk_0B8 = var_v0; + Audio_PlaySfx(0x0940802AU, &gActors[0].sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } if ((player->timer_1F8 == 0x5A) && (gTeamShields[3] > 0)) { - gObjects2F4[2].unk_0B8 = var_v0; - Audio_PlaySfx(0x0940802AU, &gObjects2F4[2].sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + gActors[2].unk_0B8 = var_v0; + Audio_PlaySfx(0x0940802AU, &gActors[2].sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } if ((player->timer_1F8 == 85) && (gTeamShields[2] > 0)) { - gObjects2F4[1].unk_0B8 = var_v0; - Audio_PlaySfx(0x0940802AU, &gObjects2F4[1].sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + gActors[1].unk_0B8 = var_v0; + Audio_PlaySfx(0x0940802AU, &gActors[1].sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } if (player->timer_1F8 == 60) { - gObjects2F4[3].unk_0B8 = var_v0; - Audio_PlaySfx(0x0940802AU, &gObjects2F4[3].sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + gActors[3].unk_0B8 = var_v0; + Audio_PlaySfx(0x0940802AU, &gActors[3].sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); func_800182F4(0x103200FF); func_800182F4(0x113200FF); } @@ -777,27 +777,27 @@ void func_8004A52C(Player* player) { } } -void func_8004A700(Object_2F4* obj2F4, s32 arg1) { - Object_2F4_Initialize(obj2F4); - obj2F4->obj.status = 1; - obj2F4->obj.id = OBJ_2F4_195; - obj2F4->obj.pos.x = gPlayer[0].pos.x; - obj2F4->obj.pos.y = gPlayer[0].pos.y - 1000.0f; - obj2F4->obj.pos.z = gPlayer[0].pos.z; - obj2F4->unk_114 = D_800CA050[arg1]; - obj2F4->unk_118 = D_800CA05C[arg1]; - obj2F4->unk_11C = D_800CA068[arg1]; - obj2F4->unk_120 = 4.0f; - obj2F4->unk_130 = Rand_ZeroOne() * 100.0f; - obj2F4->unk_134 = Rand_ZeroOne() * 100.0f; - obj2F4->obj.rot.z = D_800CA074[arg1]; - obj2F4->unk_07C = 1; - Object_SetInfo(&obj2F4->info, obj2F4->obj.id); - Audio_PlaySfx(0x3100000CU, &obj2F4->sfxPos, 4U, &D_800C5D34, &D_800C5D34, &D_800C5D3C); +void func_8004A700(Actor* actor, s32 arg1) { + Actor_Initialize(actor); + actor->obj.status = 1; + actor->obj.id = OBJ_ACTOR_195; + actor->obj.pos.x = gPlayer[0].pos.x; + actor->obj.pos.y = gPlayer[0].pos.y - 1000.0f; + actor->obj.pos.z = gPlayer[0].pos.z; + actor->fwork[0] = D_800CA050[arg1]; + actor->fwork[1] = D_800CA05C[arg1]; + actor->fwork[2] = D_800CA068[arg1]; + actor->fwork[3] = 4.0f; + actor->fwork[7] = Rand_ZeroOne() * 100.0f; + actor->fwork[8] = Rand_ZeroOne() * 100.0f; + actor->obj.rot.z = D_800CA074[arg1]; + actor->iwork[11] = 1; + Object_SetInfo(&actor->info, actor->obj.id); + Audio_PlaySfx(0x3100000CU, &actor->sfxPos, 4U, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } -void func_8004A840(s32 obj2F4) { - func_8004A700(&gObjects2F4[obj2F4], obj2F4); +void func_8004A840(s32 actor) { + func_8004A700(&gActors[actor], actor); } void func_8004A888(Effect* effect) { @@ -855,7 +855,7 @@ void func_8004AAF4(Player* player) { s32 pad; Vec3f sp70; Vec3f sp64; - Object_2F4* var_s0; + Actor* var_s0; f32 var_s1; f32 var_s2; f32 var_s3; @@ -941,10 +941,10 @@ void func_8004AAF4(Player* player) { if ((gCurrentLevel != 9) && (gCurrentLevel != 0xA)) { D_800D1970 = 0; - for (i = 0, var_s0 = &gObjects2F4[2]; i < 3; i++, var_s0++) { - Object_2F4_Initialize(var_s0); + for (i = 0, var_s0 = &gActors[2]; i < 3; i++, var_s0++) { + Actor_Initialize(var_s0); var_s0->obj.status = 1; - var_s0->obj.id = OBJ_2F4_198; + var_s0->obj.id = OBJ_ACTOR_198; var_s0->obj.pos.x = D_800CA080[i] + player->pos.x; var_s0->obj.pos.y = D_800CA08C[i] + player->pos.y; var_s0->obj.pos.z = player->unk_138 - 1000.0f; @@ -1234,9 +1234,9 @@ void func_8004B368(Player* player) { if ((D_80178418 > 70.0f) && (D_80178418 < 280.0f)) { func_8004AA84(); } - sp78.x = gObjects2F4[0].unk_114 * gObjects2F4[0].unk_120; - sp78.y = gObjects2F4[0].unk_118 * gObjects2F4[0].unk_120; - sp78.z = gObjects2F4[0].unk_11C * gObjects2F4[0].unk_120; + sp78.x = gActors[0].fwork[0] * gActors[0].fwork[3]; + sp78.y = gActors[0].fwork[1] * gActors[0].fwork[3]; + sp78.z = gActors[0].fwork[2] * gActors[0].fwork[3]; Matrix_MultVec3f(gCalcMatrix, &sp78, &sp6C); @@ -1244,9 +1244,9 @@ void func_8004B368(Player* player) { D_80178460[0] = player->pos.y + sp6C.y; D_80178470[0] = player->unk_138 + sp6C.z; - sp78.x = gObjects2F4[1].unk_114 * gObjects2F4[1].unk_120; - sp78.y = gObjects2F4[1].unk_118 * gObjects2F4[1].unk_120; - sp78.z = gObjects2F4[1].unk_11C * gObjects2F4[1].unk_120; + sp78.x = gActors[1].fwork[0] * gActors[1].fwork[3]; + sp78.y = gActors[1].fwork[1] * gActors[1].fwork[3]; + sp78.z = gActors[1].fwork[2] * gActors[1].fwork[3]; Matrix_MultVec3f(gCalcMatrix, &sp78, &sp6C); @@ -1254,9 +1254,9 @@ void func_8004B368(Player* player) { D_80178464 = player->pos.y + sp6C.y; D_80178474 = player->unk_138 + sp6C.z; - sp78.x = gObjects2F4[2].unk_114 * gObjects2F4[2].unk_120; - sp78.y = gObjects2F4[2].unk_118 * gObjects2F4[2].unk_120; - sp78.z = gObjects2F4[2].unk_11C * gObjects2F4[2].unk_120; + sp78.x = gActors[2].fwork[0] * gActors[2].fwork[3]; + sp78.y = gActors[2].fwork[1] * gActors[2].fwork[3]; + sp78.z = gActors[2].fwork[2] * gActors[2].fwork[3]; Matrix_MultVec3f(gCalcMatrix, &sp78, &sp6C); @@ -1982,289 +1982,289 @@ void func_8004E3D8(Player* player) { } } -void func_8004E4D4(Object_2F4* obj2F4) { +void func_8004E4D4(Actor* actor) { Vec3f sp54; Vec3f sp48; Vec3f sp3C; Player* sp38 = gPlayer; f32 sp34; - obj2F4->unk_130 += 3.0f; - obj2F4->unk_0F4.z = __sinf(obj2F4->unk_130 * M_DTOR) * 1.5f; - obj2F4->unk_134 += 2.0f; - sp34 = __sinf(obj2F4->unk_134 * M_DTOR) * 10.0f; + actor->fwork[7] += 3.0f; + actor->unk_0F4.z = __sinf(actor->fwork[7] * M_DTOR) * 1.5f; + actor->fwork[8] += 2.0f; + sp34 = __sinf(actor->fwork[8] * M_DTOR) * 10.0f; - switch (obj2F4->unk_0B8) { + switch (actor->unk_0B8) { case 0: - Math_SmoothStepToF(&obj2F4->obj.rot.z, 0.0f, 0.05f, 1.0f, 0.0f); - Math_SmoothStepToF(&obj2F4->obj.pos.x, obj2F4->unk_114 + sp38->pos.x, 0.03f, 10.0f, 0.0f); - Math_SmoothStepToF(&obj2F4->obj.pos.y, obj2F4->unk_118 + sp38->pos.y + sp34, 0.03f, 10.0f, 0.0f); - Math_SmoothStepToF(&obj2F4->obj.pos.z, obj2F4->unk_11C + sp38->unk_138, 0.03f, 10.0f, 0.0f); - obj2F4->obj.rot.x = -sp38->unk_0E4; - obj2F4->obj.rot.y = sp38->unk_0E8 + 180.0f; + Math_SmoothStepToF(&actor->obj.rot.z, 0.0f, 0.05f, 1.0f, 0.0f); + Math_SmoothStepToF(&actor->obj.pos.x, actor->fwork[0] + sp38->pos.x, 0.03f, 10.0f, 0.0f); + Math_SmoothStepToF(&actor->obj.pos.y, actor->fwork[1] + sp38->pos.y + sp34, 0.03f, 10.0f, 0.0f); + Math_SmoothStepToF(&actor->obj.pos.z, actor->fwork[2] + sp38->unk_138, 0.03f, 10.0f, 0.0f); + actor->obj.rot.x = -sp38->unk_0E4; + actor->obj.rot.y = sp38->unk_0E8 + 180.0f; break; case 1: - obj2F4->unk_0B8 = 2; - obj2F4->timer_0BC = 0x32; - obj2F4->unk_138 = 2.0f; - Audio_PlaySfx(0x09000002U, &obj2F4->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); - obj2F4->unk_188 = 5.0f; + actor->unk_0B8 = 2; + actor->timer_0BC = 0x32; + actor->fwork[9] = 2.0f; + Audio_PlaySfx(0x09000002U, &actor->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + actor->fwork[29] = 5.0f; /* fallthrough */ case 2: if (gLevelType == LEVELTYPE_PLANET) { - obj2F4->unk_168 += 0.4f; - if (obj2F4->unk_168 > 0.6f) { - obj2F4->unk_168 = 0.6f; + actor->fwork[21] += 0.4f; + if (actor->fwork[21] > 0.6f) { + actor->fwork[21] = 0.6f; } } - obj2F4->unk_07C = 2; - obj2F4->unk_138 *= 1.2f; - if (obj2F4->timer_0BC == 0) { - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); + actor->iwork[11] = 2; + actor->fwork[9] *= 1.2f; + if (actor->timer_0BC == 0) { + Object_Kill(&actor->obj, &actor->sfxPos); } break; case 10: - obj2F4->unk_0B8 = 0xB; - obj2F4->timer_0BC = 0x96; - obj2F4->timer_0BE = 0x28; - Audio_PlaySfx(0x09000002U, &obj2F4->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); - obj2F4->unk_188 = 5.0f; + actor->unk_0B8 = 0xB; + actor->timer_0BC = 0x96; + actor->timer_0BE = 0x28; + Audio_PlaySfx(0x09000002U, &actor->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + actor->fwork[29] = 5.0f; /* fallthrough */ case 11: - obj2F4->unk_07C = 2; - obj2F4->unk_138 += 2.0f; - if (obj2F4->unk_138 > 50.0f) { - obj2F4->unk_138 = 50.0f; + actor->iwork[11] = 2; + actor->fwork[9] += 2.0f; + if (actor->fwork[9] > 50.0f) { + actor->fwork[9] = 50.0f; } - if (obj2F4->timer_0BE == 0) { - switch (obj2F4->index) { + if (actor->timer_0BE == 0) { + switch (actor->index) { case 1: - obj2F4->obj.rot.y += 0.3f; - Math_SmoothStepToF(&obj2F4->obj.rot.z, -70.0f, 0.05f, 4.0f, 0.0f); + actor->obj.rot.y += 0.3f; + Math_SmoothStepToF(&actor->obj.rot.z, -70.0f, 0.05f, 4.0f, 0.0f); break; case 2: - obj2F4->obj.rot.y -= 0.3f; - Math_SmoothStepToF(&obj2F4->obj.rot.z, 70.0f, 0.05f, 4.0f, 0.0f); + actor->obj.rot.y -= 0.3f; + Math_SmoothStepToF(&actor->obj.rot.z, 70.0f, 0.05f, 4.0f, 0.0f); break; case 3: - obj2F4->obj.rot.x -= 0.4f; - Math_SmoothStepToF(&obj2F4->obj.rot.z, 1000.0f, 0.05f, 6.0f, 0.0f); + actor->obj.rot.x -= 0.4f; + Math_SmoothStepToF(&actor->obj.rot.z, 1000.0f, 0.05f, 6.0f, 0.0f); break; } } - if (obj2F4->timer_0BC == 0) { - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); + if (actor->timer_0BC == 0) { + Object_Kill(&actor->obj, &actor->sfxPos); } break; case 30: - obj2F4->unk_120 += D_800CA098[obj2F4->index]; + actor->fwork[3] += D_800CA098[actor->index]; - Matrix_RotateY(gCalcMatrix, obj2F4->unk_120 * M_DTOR, 0); + Matrix_RotateY(gCalcMatrix, actor->fwork[3] * M_DTOR, 0); sp54.x = 0.0f; - sp54.y = D_800CA0A4[obj2F4->index]; - sp54.z = D_800CA0B0[obj2F4->index]; + sp54.y = D_800CA0A4[actor->index]; + sp54.z = D_800CA0B0[actor->index]; Matrix_MultVec3f(gCalcMatrix, &sp54, &sp3C); - obj2F4->unk_114 = sp3C.x; - obj2F4->unk_118 = sp3C.y; - obj2F4->unk_11C = sp3C.z - 100.0f; + actor->fwork[0] = sp3C.x; + actor->fwork[1] = sp3C.y; + actor->fwork[2] = sp3C.z - 100.0f; - Math_SmoothStepToF(&obj2F4->obj.rot.z, __sinf(obj2F4->unk_120 * M_DTOR) * -30.0f, 0.1f, 2.0f, 0.0f); - Math_SmoothStepToF(&obj2F4->obj.pos.x, obj2F4->unk_114 + sp38->pos.x, 0.03f, 10.0f, 0.0f); - Math_SmoothStepToF(&obj2F4->obj.pos.y, obj2F4->unk_118 + sp38->pos.y + sp34, 0.03f, 10.0f, 0.0f); - Math_SmoothStepToF(&obj2F4->obj.pos.z, obj2F4->unk_11C + sp38->unk_138, 0.03f, 10.0f, 0.0f); + Math_SmoothStepToF(&actor->obj.rot.z, __sinf(actor->fwork[3] * M_DTOR) * -30.0f, 0.1f, 2.0f, 0.0f); + Math_SmoothStepToF(&actor->obj.pos.x, actor->fwork[0] + sp38->pos.x, 0.03f, 10.0f, 0.0f); + Math_SmoothStepToF(&actor->obj.pos.y, actor->fwork[1] + sp38->pos.y + sp34, 0.03f, 10.0f, 0.0f); + Math_SmoothStepToF(&actor->obj.pos.z, actor->fwork[2] + sp38->unk_138, 0.03f, 10.0f, 0.0f); break; case 31: - Audio_PlaySfx(0x09000002U, &obj2F4->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); - obj2F4->unk_0B8 += 1; - obj2F4->unk_188 = 5.0f; + Audio_PlaySfx(0x09000002U, &actor->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + actor->unk_0B8 += 1; + actor->fwork[29] = 5.0f; /* fallthrough */ case 32: - obj2F4->unk_07C = 2; - Math_SmoothStepToF(&obj2F4->obj.rot.x, -20.0f, 0.1f, 0.5f, 0.0f); - Math_SmoothStepToF(&obj2F4->unk_138, 25.0f, 0.1f, 2.0f, 0.0f); - Math_SmoothStepToF(&obj2F4->obj.rot.z, 0.0f, 0.1f, 0.5f, 0.0f); + actor->iwork[11] = 2; + Math_SmoothStepToF(&actor->obj.rot.x, -20.0f, 0.1f, 0.5f, 0.0f); + Math_SmoothStepToF(&actor->fwork[9], 25.0f, 0.1f, 2.0f, 0.0f); + Math_SmoothStepToF(&actor->obj.rot.z, 0.0f, 0.1f, 0.5f, 0.0f); break; } - Matrix_RotateY(gCalcMatrix, obj2F4->obj.rot.y * M_DTOR, 0); - Matrix_RotateX(gCalcMatrix, obj2F4->obj.rot.x * M_DTOR, 1); + Matrix_RotateY(gCalcMatrix, actor->obj.rot.y * M_DTOR, 0); + Matrix_RotateX(gCalcMatrix, actor->obj.rot.x * M_DTOR, 1); sp54.x = 0.0f; sp54.y = 0.0f; - sp54.z = obj2F4->unk_138; + sp54.z = actor->fwork[9]; Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp54, &sp48); - obj2F4->vel.x = sp48.x; - obj2F4->vel.y = sp48.y; - obj2F4->vel.z = sp48.z; + actor->vel.x = sp48.x; + actor->vel.y = sp48.y; + actor->vel.z = sp48.z; } -void func_8004EBD0(Object_2F4* obj2F4) { +void func_8004EBD0(Actor* actor) { Vec3f src; Vec3f dest; - if (obj2F4->unk_0B8 < 4) { - obj2F4->unk_138 = 0.4f; + if (actor->unk_0B8 < 4) { + actor->fwork[9] = 0.4f; - obj2F4->obj.pos.x += (D_80178450[obj2F4->index] - obj2F4->obj.pos.x) * 0.4f; - obj2F4->obj.pos.y += (D_80178460[obj2F4->index] - obj2F4->obj.pos.y) * 0.4f; - obj2F4->obj.pos.z += (D_80178470[obj2F4->index] - obj2F4->obj.pos.z) * 0.4f; + actor->obj.pos.x += (D_80178450[actor->index] - actor->obj.pos.x) * 0.4f; + actor->obj.pos.y += (D_80178460[actor->index] - actor->obj.pos.y) * 0.4f; + actor->obj.pos.z += (D_80178470[actor->index] - actor->obj.pos.z) * 0.4f; - obj2F4->obj.rot.z *= 0.98f; - obj2F4->obj.rot.x = -gPlayer[0].unk_0E4; - obj2F4->obj.rot.y = gPlayer[0].unk_0E8 + 180.0f; + actor->obj.rot.z *= 0.98f; + actor->obj.rot.x = -gPlayer[0].unk_0E4; + actor->obj.rot.y = gPlayer[0].unk_0E8 + 180.0f; if (1) {} - obj2F4->unk_130 += 1.0f; - if ((s32) obj2F4->unk_130 & 0x40) { - obj2F4->unk_114 += 0.1f; + actor->fwork[7] += 1.0f; + if ((s32) actor->fwork[7] & 0x40) { + actor->fwork[0] += 0.1f; } else { - obj2F4->unk_114 -= 0.1f; + actor->fwork[0] -= 0.1f; } - obj2F4->unk_134 += 1.2f; - if ((s32) obj2F4->unk_134 & 0x40) { - obj2F4->unk_118 += 0.1f; + actor->fwork[8] += 1.2f; + if ((s32) actor->fwork[8] & 0x40) { + actor->fwork[1] += 0.1f; } else { - obj2F4->unk_118 -= 0.1f; + actor->fwork[1] -= 0.1f; } } - switch (obj2F4->unk_0B8) { + switch (actor->unk_0B8) { case 0: - obj2F4->unk_120 *= 0.992f; - if (obj2F4->unk_120 < 1.2f) { - obj2F4->unk_0B8 += 1; + actor->fwork[3] *= 0.992f; + if (actor->fwork[3] < 1.2f) { + actor->unk_0B8 += 1; } break; case 1: - obj2F4->unk_120 *= 0.997f; - if (obj2F4->unk_120 < 1.0f) { - obj2F4->unk_120 = 1.0f; - obj2F4->unk_0B8 += 1; + actor->fwork[3] *= 0.997f; + if (actor->fwork[3] < 1.0f) { + actor->fwork[3] = 1.0f; + actor->unk_0B8 += 1; } - obj2F4->timer_0BC = 560; + actor->timer_0BC = 560; break; case 2: - if (obj2F4->timer_0BC == 110) { + if (actor->timer_0BC == 110) { gPlayer[0].timer_1F8 = 0x2710; } - if (obj2F4->timer_0BC == 260) { + if (actor->timer_0BC == 260) { gPlayer[0].timer_1FC = 0x2710; } - if (obj2F4->timer_0BC == 0) { - obj2F4->unk_0B8++; - obj2F4->timer_0BC = 10; - func_800A6028(&obj2F4->sfxPos, 0x09000002); - obj2F4->unk_188 = 5.0f; + if (actor->timer_0BC == 0) { + actor->unk_0B8++; + actor->timer_0BC = 10; + func_800A6028(&actor->sfxPos, 0x09000002); + actor->fwork[29] = 5.0f; } break; case 3: - obj2F4->unk_07C = 2; - if (obj2F4->timer_0BC == 0) { - obj2F4->unk_0B8++; - obj2F4->timer_0BC = 30; + actor->iwork[11] = 2; + if (actor->timer_0BC == 0) { + actor->unk_0B8++; + actor->timer_0BC = 30; } break; case 4: - obj2F4->unk_168 += 0.4f; - if (obj2F4->unk_168 > 0.6f) { - obj2F4->unk_168 = 0.6f; + actor->fwork[21] += 0.4f; + if (actor->fwork[21] > 0.6f) { + actor->fwork[21] = 0.6f; } - obj2F4->unk_124.z += 1.0f; + actor->fwork[6] += 1.0f; 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_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; + src.z = actor->fwork[6] * actor->fwork[6]; Matrix_MultVec3f(gCalcMatrix, &src, &dest); - obj2F4->vel.x = dest.x; - obj2F4->vel.y = dest.y; - obj2F4->vel.z = dest.z; + actor->vel.x = dest.x; + actor->vel.y = dest.y; + actor->vel.z = dest.z; - if (obj2F4->timer_0BC == 0) { - func_80078E50(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, 30.0f); - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); + if (actor->timer_0BC == 0) { + func_80078E50(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 30.0f); + Object_Kill(&actor->obj, &actor->sfxPos); } break; } - obj2F4->obj.pos.y += 5.0f; - obj2F4->unk_168 -= 0.02f; - if (obj2F4->unk_168 < 0.0f) { - obj2F4->unk_168 = 0.0f; + actor->obj.pos.y += 5.0f; + actor->fwork[21] -= 0.02f; + if (actor->fwork[21] < 0.0f) { + actor->fwork[21] = 0.0f; } } -void func_8004F05C(Object_2F4* obj2F4) { - if (((gLevelType == LEVELTYPE_PLANET) && (obj2F4->unk_0B6 == 0)) || (gCurrentLevel == LEVEL_BOLSE)) { - obj2F4->unk_114 += 3.0f; - obj2F4->unk_118 = __sinf(obj2F4->unk_114 * M_DTOR) * 1.5f; +void func_8004F05C(Actor* actor) { + if (((gLevelType == LEVELTYPE_PLANET) && (actor->unk_0B6 == 0)) || (gCurrentLevel == LEVEL_BOLSE)) { + actor->fwork[0] += 3.0f; + actor->fwork[1] = __sinf(actor->fwork[0] * M_DTOR) * 1.5f; } switch (gCurrentLevel) { case LEVEL_BOLSE: - switch (obj2F4->unk_0B6) { + switch (actor->unk_0B6) { case 0: if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_2) { - obj2F4->unk_0F4.z += obj2F4->unk_0F4.y; - obj2F4->vel.x = __sinf(obj2F4->unk_0F4.z * M_DTOR) * 10.0f; - obj2F4->obj.rot.z = __sinf(obj2F4->unk_0F4.z * M_DTOR) * 40.0f; + actor->unk_0F4.z += actor->unk_0F4.y; + actor->vel.x = __sinf(actor->unk_0F4.z * M_DTOR) * 10.0f; + actor->obj.rot.z = __sinf(actor->unk_0F4.z * M_DTOR) * 40.0f; break; } - Math_SmoothStepToF(&obj2F4->obj.rot.z, obj2F4->unk_118, 0.05f, 0.3f, 0.0f); + Math_SmoothStepToF(&actor->obj.rot.z, actor->fwork[1], 0.05f, 0.3f, 0.0f); - switch (obj2F4->unk_0B8) { + switch (actor->unk_0B8) { case 0: break; case 1: - obj2F4->unk_0B8 = 2; - obj2F4->timer_0BC = 0x64; - Audio_PlaySfx(0x09000002U, &obj2F4->sfxPos, 0U, &D_800C5D34, &D_800C5D34, &D_800C5D3C); - obj2F4->unk_188 = 5.0f; + actor->unk_0B8 = 2; + actor->timer_0BC = 0x64; + Audio_PlaySfx(0x09000002U, &actor->sfxPos, 0U, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + actor->fwork[29] = 5.0f; case 2: - obj2F4->unk_07C = 2; - obj2F4->vel.z -= 5.0f; - if (obj2F4->timer_0BC == 0) { - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); + actor->iwork[11] = 2; + actor->vel.z -= 5.0f; + if (actor->timer_0BC == 0) { + Object_Kill(&actor->obj, &actor->sfxPos); } break; } break; case 31: - if (obj2F4->timer_0BC == 0) { - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); + if (actor->timer_0BC == 0) { + Object_Kill(&actor->obj, &actor->sfxPos); } break; case 32: - obj2F4->obj.rot.z += obj2F4->unk_0F4.z; - if (obj2F4->timer_0BC == 0) { - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); + actor->obj.rot.z += actor->unk_0F4.z; + if (actor->timer_0BC == 0) { + Object_Kill(&actor->obj, &actor->sfxPos); } break; @@ -2274,40 +2274,40 @@ void func_8004F05C(Object_2F4* obj2F4) { break; case LEVEL_AREA_6: - func_8018DA58(obj2F4); + func_8018DA58(actor); break; case LEVEL_SECTOR_Y: - switch (obj2F4->unk_0B6) { + switch (actor->unk_0B6) { case 0: - func_8019FF00(obj2F4); + func_8019FF00(actor); break; case 42: - if (obj2F4->timer_0BC == 0) { - if (obj2F4->obj.pos.x >= -3500.0f) { - if (obj2F4->obj.pos.z <= 3000.0f) { - if ((fabsf(obj2F4->obj.pos.y) <= 400.0f) && (D_80177A80 < 0x12D)) { - func_8007D2C8(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, 8.0f); + if (actor->timer_0BC == 0) { + if (actor->obj.pos.x >= -3500.0f) { + if (actor->obj.pos.z <= 3000.0f) { + if ((fabsf(actor->obj.pos.y) <= 400.0f) && (D_80177A80 < 0x12D)) { + func_8007D2C8(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 8.0f); } } } - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); + Object_Kill(&actor->obj, &actor->sfxPos); } break; case 43: - if (obj2F4->timer_0BC == 0) { - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); + if (actor->timer_0BC == 0) { + Object_Kill(&actor->obj, &actor->sfxPos); } break; } break; case LEVEL_SECTOR_X: - if ((obj2F4->unk_0B8 != 0) && (obj2F4->unk_0B8 == 1)) { - obj2F4->vel.y += 0.1f; - Math_SmoothStepToF(&obj2F4->obj.rot.x, -20.0f, 0.1f, 0.5f, 0.0f); + if ((actor->unk_0B8 != 0) && (actor->unk_0B8 == 1)) { + actor->vel.y += 0.1f; + Math_SmoothStepToF(&actor->obj.rot.x, -20.0f, 0.1f, 0.5f, 0.0f); } break; @@ -2316,93 +2316,93 @@ void func_8004F05C(Object_2F4* obj2F4) { break; default: - switch (obj2F4->unk_0B8) { + switch (actor->unk_0B8) { case 0x64: - Math_SmoothStepToF(&obj2F4->obj.pos.x, obj2F4->unk_18C[0x14].x, 0.03f, 3.0f, 0.0f); - Math_SmoothStepToF(&obj2F4->obj.pos.y, obj2F4->unk_18C[0x14].y, 0.03f, 2.0f, 0.0f); - Math_SmoothStepToF(&obj2F4->obj.pos.z, obj2F4->unk_18C[0x14].z, 0.03f, 2.0f, 0.0f); - Math_SmoothStepToF(&obj2F4->obj.rot.z, 0.0f, 0.02f, 0.3f, 0); + Math_SmoothStepToF(&actor->obj.pos.x, actor->vwork[0x14].x, 0.03f, 3.0f, 0.0f); + Math_SmoothStepToF(&actor->obj.pos.y, actor->vwork[0x14].y, 0.03f, 2.0f, 0.0f); + Math_SmoothStepToF(&actor->obj.pos.z, actor->vwork[0x14].z, 0.03f, 2.0f, 0.0f); + Math_SmoothStepToF(&actor->obj.rot.z, 0.0f, 0.02f, 0.3f, 0); break; case 0x0: - obj2F4->obj.rot.z = obj2F4->unk_0F4.z; - if (obj2F4->unk_0B6 == 0xA) { - obj2F4->obj.pos.z = gPlayer[0].camEye.z + 12000.0f; + actor->obj.rot.z = actor->unk_0F4.z; + if (actor->unk_0B6 == 0xA) { + actor->obj.pos.z = gPlayer[0].camEye.z + 12000.0f; } break; case 0x1: - obj2F4->vel.y += 0.8f; - obj2F4->vel.x += 0.8f; - Math_SmoothStepToF(&obj2F4->obj.rot.z, 420.0f, 0.1f, 15.0f, 0.001f); + actor->vel.y += 0.8f; + actor->vel.x += 0.8f; + Math_SmoothStepToF(&actor->obj.rot.z, 420.0f, 0.1f, 15.0f, 0.001f); break; case 0x2: - obj2F4->vel.y += 0.8f; - obj2F4->vel.x -= 0.8f; - Math_SmoothStepToF(&obj2F4->obj.rot.z, -420.0f, 0.1f, 15.0f, 0.001f); + actor->vel.y += 0.8f; + actor->vel.x -= 0.8f; + Math_SmoothStepToF(&actor->obj.rot.z, -420.0f, 0.1f, 15.0f, 0.001f); break; case 0x3: - obj2F4->vel.y += 1.2f; - obj2F4->vel.z += 0.1f; - Math_SmoothStepToF(&obj2F4->obj.rot.x, -45.0f, 0.1f, 15.0f, 0.001f); + actor->vel.y += 1.2f; + actor->vel.z += 0.1f; + Math_SmoothStepToF(&actor->obj.rot.x, -45.0f, 0.1f, 15.0f, 0.001f); break; case 0xA: - obj2F4->vel.x -= 1.0f; - Math_SmoothStepToF(&obj2F4->obj.rot.z, -45.0f, 0.05f, 0.5f, 0.0f); + actor->vel.x -= 1.0f; + Math_SmoothStepToF(&actor->obj.rot.z, -45.0f, 0.05f, 0.5f, 0.0f); break; case 0xB: - obj2F4->vel.x -= 2.0f; - Math_SmoothStepToF(&obj2F4->obj.rot.z, -70.0f, 0.1f, 6.0f, 0.0f); - Math_SmoothStepToF(&obj2F4->obj.rot.y, 225.0f, 0.05f, 2.0f, 0.0f); + actor->vel.x -= 2.0f; + Math_SmoothStepToF(&actor->obj.rot.z, -70.0f, 0.1f, 6.0f, 0.0f); + Math_SmoothStepToF(&actor->obj.rot.y, 225.0f, 0.05f, 2.0f, 0.0f); break; case 0xC: - obj2F4->vel.x += 2.0f; - obj2F4->vel.y += 1.0f; - Math_SmoothStepToF(&obj2F4->obj.rot.z, 80.0f, 0.1f, 6.0f, 0.0f); - Math_SmoothStepToF(&obj2F4->obj.rot.x, -15.0f, 0.05f, 4.0f, 0.0f); - Math_SmoothStepToF(&obj2F4->obj.rot.y, 135.0f, 0.05f, 2.0f, 0.0f); + actor->vel.x += 2.0f; + actor->vel.y += 1.0f; + Math_SmoothStepToF(&actor->obj.rot.z, 80.0f, 0.1f, 6.0f, 0.0f); + Math_SmoothStepToF(&actor->obj.rot.x, -15.0f, 0.05f, 4.0f, 0.0f); + Math_SmoothStepToF(&actor->obj.rot.y, 135.0f, 0.05f, 2.0f, 0.0f); break; case 0xD: - obj2F4->vel.y += 2.0f; - Math_SmoothStepToF(&obj2F4->obj.rot.z, -400.0f, 0.2f, 14.0f, 0.0f); - Math_SmoothStepToF(&obj2F4->obj.rot.x, -45.0f, 0.05f, 4.0f, 0.0f); + actor->vel.y += 2.0f; + Math_SmoothStepToF(&actor->obj.rot.z, -400.0f, 0.2f, 14.0f, 0.0f); + Math_SmoothStepToF(&actor->obj.rot.x, -45.0f, 0.05f, 4.0f, 0.0f); break; } break; } } -void func_8004F798(Object_2F4* obj2F4) { - obj2F4->unk_07C = 2; +void func_8004F798(Actor* actor) { + actor->iwork[11] = 2; - switch (obj2F4->unk_0B8) { + switch (actor->unk_0B8) { case 0: - Math_SmoothStepToF(&obj2F4->obj.pos.x, obj2F4->unk_114, 0.05f, 50.0f, 0.0f); - Math_SmoothStepToF(&obj2F4->obj.pos.y, obj2F4->unk_118, 0.05f, 50.0f, 0.0f); - Math_SmoothStepToF(&obj2F4->obj.rot.z, 0.0f, 0.05f, 1.0f, 0.0f); - obj2F4->obj.pos.z -= 2.0f; + Math_SmoothStepToF(&actor->obj.pos.x, actor->fwork[0], 0.05f, 50.0f, 0.0f); + Math_SmoothStepToF(&actor->obj.pos.y, actor->fwork[1], 0.05f, 50.0f, 0.0f); + Math_SmoothStepToF(&actor->obj.rot.z, 0.0f, 0.05f, 1.0f, 0.0f); + actor->obj.pos.z -= 2.0f; break; case 1: - obj2F4->unk_188 = 10.0f; - obj2F4->vel.z -= 100.0f; - if ((obj2F4->obj.pos.z + D_80177D20) < -15000.0f) { - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); + actor->fwork[29] = 10.0f; + actor->vel.z -= 100.0f; + if ((actor->obj.pos.z + D_80177D20) < -15000.0f) { + Object_Kill(&actor->obj, &actor->sfxPos); } break; } } -void func_8004F8AC(Object_2F4* obj2F4) { +void func_8004F8AC(Actor* actor) { if (gCurrentLevel == LEVEL_AQUAS) { - func_80093164(obj2F4); + func_80093164(actor); return; } @@ -2411,81 +2411,81 @@ void func_8004F8AC(Object_2F4* obj2F4) { switch (gCurrentLevel) { case LEVEL_SECTOR_Y: if (gPlayer[0].unk_1D0 >= 3) { - func_8019FF00(obj2F4); + func_8019FF00(actor); } break; case LEVEL_SOLAR: if (gPlayer[0].unk_1D0 >= 3) { - func_801A8BE8(obj2F4); + func_801A8BE8(actor); } break; case LEVEL_ZONESS: if (gPlayer[0].unk_1D0 >= 3) { - func_8019E5F0(obj2F4); + func_8019E5F0(actor); } break; case LEVEL_VENOM_ANDROSS: case LEVEL_VENOM_2: - func_80195E44(obj2F4); + func_80195E44(actor); break; case LEVEL_KATINA: - func_80197F10(obj2F4); + func_80197F10(actor); break; case LEVEL_SECTOR_Z: - func_8019DD20(obj2F4); + func_8019DD20(actor); break; case LEVEL_AREA_6: - func_8018DA58(obj2F4); + func_8018DA58(actor); break; case LEVEL_METEO: if (D_8017827C == 0) { - func_8018ED9C(obj2F4); + func_8018ED9C(actor); break; } - func_80049630(obj2F4); + func_80049630(actor); break; case LEVEL_FORTUNA: - if (obj2F4->unk_0B6 == 0xB) { - switch (obj2F4->unk_0B8) { + if (actor->unk_0B6 == 0xB) { + switch (actor->unk_0B8) { case 0: if (D_80177A80 == 0x64) { - obj2F4->unk_0B8 = 1; - obj2F4->timer_0BC = 0x32; - obj2F4->unk_050 = 255; - Audio_PlaySfx(0x2902F026U, &obj2F4->sfxPos, 0, &D_800C5D34, &D_800C5D34, + actor->unk_0B8 = 1; + actor->timer_0BC = 0x32; + actor->iwork[0] = 255; + Audio_PlaySfx(0x2902F026U, &actor->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } break; case 1: - Math_SmoothStepToF(&obj2F4->scale, 0.5f, 0.03f, 0.01f, 0.0f); + Math_SmoothStepToF(&actor->scale, 0.5f, 0.03f, 0.01f, 0.0f); D_80178348 = D_80178340 = D_80178350 = D_80178354 = 0; - if ((obj2F4->timer_0BC == 0x2B) || (obj2F4->timer_0BC == 0x2E) || - (obj2F4->timer_0BC == 0x31)) { + if ((actor->timer_0BC == 0x2B) || (actor->timer_0BC == 0x2E) || + (actor->timer_0BC == 0x31)) { D_80178340 = 0xC0; D_80178348 = D_80178350 = D_80178354 = 255; } - obj2F4->unk_050 -= 2; - if (obj2F4->unk_050 < 0) { - obj2F4->unk_050 = 0; - obj2F4->scale = 0.0f; + actor->iwork[0] -= 2; + if (actor->iwork[0] < 0) { + actor->iwork[0] = 0; + actor->scale = 0.0f; } - D_8017836C = obj2F4->unk_050 / 255.0f; - D_80178370 = gObjects2F4->obj.pos.x + 10.0f; - D_80178374 = gObjects2F4->obj.pos.y - 40.0f; - D_80178378 = gObjects2F4->obj.pos.z - 70.0f; + D_8017836C = actor->iwork[0] / 255.0f; + D_80178370 = gActors->obj.pos.x + 10.0f; + D_80178374 = gActors->obj.pos.y - 40.0f; + D_80178378 = gActors->obj.pos.z - 70.0f; D_80178360 = 255; D_80178364 = 255; D_80178368 = 0x50; @@ -2496,69 +2496,69 @@ void func_8004F8AC(Object_2F4* obj2F4) { case LEVEL_CORNERIA: if (gLevelMode == LEVELMODE_ALL_RANGE) { - func_8004E4D4(obj2F4); + func_8004E4D4(actor); break; } - func_8004EBD0(obj2F4); + func_8004EBD0(actor); break; case LEVEL_SECTOR_X: if (D_8017827C != 0) { - func_80049630(obj2F4); + func_80049630(actor); break; } - func_8004E4D4(obj2F4); + func_8004E4D4(actor); break; case LEVEL_TITANIA: - func_8004E4D4(obj2F4); + func_8004E4D4(actor); break; case LEVEL_MACBETH: - func_801B28BC(obj2F4); + func_801B28BC(actor); break; case LEVEL_BOLSE: - func_8004F05C(obj2F4); + func_8004F05C(actor); break; default: - func_8004EBD0(obj2F4); + func_8004EBD0(actor); break; } break; case PLAYERSTATE_1C8_2: - func_8004F05C(obj2F4); + func_8004F05C(actor); break; case PLAYERSTATE_1C8_8: - func_8004F798(obj2F4); + func_8004F798(actor); break; case PLAYERSTATE_1C8_0: if (gCurrentLevel == LEVEL_SECTOR_Y) { - func_8019FF00(obj2F4); + func_8019FF00(actor); } break; } } -void func_8004FCB8(Object_2F4* obj2F4, s32 arg1) { +void func_8004FCB8(Actor* actor, s32 arg1) { f32 angle; f32 scale; s32 i; - if (obj2F4->timer_0BC == 0) { - obj2F4->timer_0BC = 32; - obj2F4->unk_124.y = 0.3f; + if (actor->timer_0BC == 0) { + actor->timer_0BC = 32; + actor->fwork[5] = 0.3f; } - if (obj2F4->unk_124.y > 0.0f) { - scale = obj2F4->unk_124.y; - obj2F4->unk_124.y -= 0.05f; + if (actor->fwork[5] > 0.0f) { + scale = actor->fwork[5]; + actor->fwork[5] -= 0.05f; RCP_SetupDL_49(); gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255); gDPSetEnvColor(gMasterDisp++, 16, 16, 240, 255); @@ -2567,8 +2567,8 @@ void func_8004FCB8(Object_2F4* obj2F4, s32 arg1) { for (i = arg1; i < (arg1 + 4); i++) { Matrix_Pop(&gGfxMatrix); Matrix_Push(&gGfxMatrix); - Matrix_Translate(gGfxMatrix, D_800CA110[i].x + obj2F4->obj.pos.x, D_800CA110[i].y + obj2F4->obj.pos.y, - D_800CA110[i].z + obj2F4->obj.pos.z, 1); + Matrix_Translate(gGfxMatrix, D_800CA110[i].x + actor->obj.pos.x, D_800CA110[i].y + actor->obj.pos.y, + D_800CA110[i].z + actor->obj.pos.z, 1); Matrix_RotateY(gGfxMatrix, angle, 1); Matrix_Scale(gGfxMatrix, scale, scale, scale, 1); Matrix_SetGfxMtx(&gMasterDisp); @@ -2577,7 +2577,7 @@ void func_8004FCB8(Object_2F4* obj2F4, s32 arg1) { } } -void func_8004FEC0(Object_2F4* obj2F4) { +void func_8004FEC0(Actor* actor) { static f32 D_800CA210 = 0.0f; static f32 D_800CA214 = 0.0f; static f32 D_800CA218 = 0.0f; @@ -2597,26 +2597,26 @@ void func_8004FEC0(Object_2F4* obj2F4) { f32 y; f32 x; - switch (obj2F4->unk_0B6) { + switch (actor->unk_0B6) { case 1000: RCP_SetupDL(&gMasterDisp, 0x2D); - gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, obj2F4->unk_046); + gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, actor->unk_046); gSPDisplayList(gMasterDisp++, D_40018A0); - if (obj2F4->unk_046 >= 0x33) { - func_8005ADAC(obj2F4); + if (actor->unk_046 >= 0x33) { + func_8005ADAC(actor); } break; case 0: - func_8005B388(obj2F4); + func_8005B388(actor); break; case 1: if (gCurrentLevel == LEVEL_SECTOR_Z) { gSPFogPosition(gMasterDisp++, gFogNear, 1005); } - obj2F4->info.bonus = 1; + actor->info.bonus = 1; func_800515C4(); break; @@ -2632,12 +2632,12 @@ void func_8004FEC0(Object_2F4* obj2F4) { gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255); Matrix_Scale(gGfxMatrix, 60.0f, 60.0f, 1.0f, 1); Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, 10.0f, 1); - Matrix_Scale(gGfxMatrix, obj2F4->scale, obj2F4->scale, 1.0f, 1); + Matrix_Scale(gGfxMatrix, actor->scale, actor->scale, 1.0f, 1); Matrix_SetGfxMtx(&gMasterDisp); RCP_SetupDL_49(); - gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, obj2F4->unk_050); - gDPSetEnvColor(gMasterDisp++, 255, 255, 00, obj2F4->unk_050); + gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, actor->iwork[0]); + gDPSetEnvColor(gMasterDisp++, 255, 255, 00, actor->iwork[0]); gSPDisplayList(gMasterDisp++, D_1024AC0); break; @@ -2647,11 +2647,11 @@ void func_8004FEC0(Object_2F4* obj2F4) { case 24: gSPDisplayList(gMasterDisp++, D_D009A40); - func_8005ADAC(obj2F4); + func_8005ADAC(actor); break; case 25: - if (obj2F4->index & 1) { + if (actor->index & 1) { gSPDisplayList(gMasterDisp++, D_6001DA0); } else { gSPDisplayList(gMasterDisp++, D_6001360); @@ -2661,28 +2661,28 @@ void func_8004FEC0(Object_2F4* obj2F4) { case 26: gSPDisplayList(gMasterDisp++, D_6004FE0); Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -60.0f, 1); - func_8005B1E8(obj2F4, 2); + func_8005B1E8(actor, 2); break; case 28: gSPDisplayList(gMasterDisp++, D_400AAE0); Matrix_Translate(gGfxMatrix, 0.f, 0.f, -60.0f, 1); - func_8005B1E8(obj2F4, 2); + func_8005B1E8(actor, 2); break; case 30: - func_8005F670(&obj2F4->obj.pos); + func_8005F670(&actor->obj.pos); - if (obj2F4->unk_046 != 0) { + if (actor->unk_046 != 0) { RCP_SetupDL(&gMasterDisp, 0x37); gSPClearGeometryMode(gMasterDisp++, 0x00002000); Rand_SetSeed(1, 29000, 9876); for (sp2D0 = 0; sp2D0 < 30; sp2D0++) { Matrix_Push(&gGfxMatrix); - Matrix_Translate(gGfxMatrix, ((Rand_ZeroOneSeeded() - 0.5f) * 3000.0f) * (*obj2F4).unk_164, - ((Rand_ZeroOneSeeded() - 0.5f) * 3000.0f) * (*obj2F4).unk_164, - ((Rand_ZeroOneSeeded() - 0.5f) * 3000.0f) * (*obj2F4).unk_164, 1); + Matrix_Translate(gGfxMatrix, ((Rand_ZeroOneSeeded() - 0.5f) * 3000.0f) * (*actor).fwork[20], + ((Rand_ZeroOneSeeded() - 0.5f) * 3000.0f) * (*actor).fwork[20], + ((Rand_ZeroOneSeeded() - 0.5f) * 3000.0f) * (*actor).fwork[20], 1); Matrix_RotateY(gGfxMatrix, 2.0f * (Rand_ZeroOneSeeded() * 3.1415927f), 1); Matrix_RotateZ(gGfxMatrix, (2.0f * gFrameCount) * M_DTOR, 1); Matrix_RotateX(gGfxMatrix, 2.0f * (Rand_ZeroOneSeeded() * 3.1415927f), 1); @@ -2802,13 +2802,13 @@ void func_8004FEC0(Object_2F4* obj2F4) { break; case 33: - if ((obj2F4->index == 3) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_7)) { + if ((actor->index == 3) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_7)) { gSPDisplayList(gMasterDisp++, D_D00B880); } else { gSPDisplayList(gMasterDisp++, D_600E050); } Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -60.0f, 1); - func_8005B1E8(obj2F4, 0); + func_8005B1E8(actor, 0); break; case 34: @@ -2821,45 +2821,45 @@ void func_8004FEC0(Object_2F4* obj2F4) { /* fallthrough */ case 39: gSPDisplayList(gMasterDisp++, D_60097E0); - func_8004FCB8(obj2F4, 4); + func_8004FCB8(actor, 4); break; case 36: - Matrix_Scale(gGfxMatrix, obj2F4->scale, obj2F4->scale, obj2F4->scale, 1); + Matrix_Scale(gGfxMatrix, actor->scale, actor->scale, actor->scale, 1); Matrix_SetGfxMtx(&gMasterDisp); gSPDisplayList(gMasterDisp++, D_601D730); - func_8004FCB8(obj2F4, 0); + func_8004FCB8(actor, 0); break; case 37: RCP_SetupDL_49(); - gDPSetPrimColor(gMasterDisp++, 0, 0, (*obj2F4).unk_050, (*obj2F4).unk_054, (*obj2F4).unk_058, - (*obj2F4).unk_05C); - gDPSetEnvColor(gMasterDisp++, (*obj2F4).unk_060, (*obj2F4).unk_064, (*obj2F4).unk_068, (*obj2F4).unk_06C); - Matrix_Scale(gGfxMatrix, obj2F4->scale, obj2F4->unk_124.x, 1.0f, 1); + gDPSetPrimColor(gMasterDisp++, 0, 0, (*actor).iwork[0], (*actor).iwork[1], (*actor).iwork[2], + (*actor).iwork[3]); + gDPSetEnvColor(gMasterDisp++, (*actor).iwork[4], (*actor).iwork[5], (*actor).iwork[6], (*actor).iwork[7]); + Matrix_Scale(gGfxMatrix, actor->scale, actor->fwork[4], 1.0f, 1); Matrix_SetGfxMtx(&gMasterDisp); gSPDisplayList(gMasterDisp++, D_1024AC0); break; case 38: - animFrameData = Animation_GetFrameData(D_800CA1F4[obj2F4->unk_060], obj2F4->unk_064, sp144); - Math_SmoothStepToVec3fArray(sp144, obj2F4->unk_18C, 1, animFrameData, obj2F4->unk_11C, 100.0f, .0f); + animFrameData = Animation_GetFrameData(D_800CA1F4[actor->iwork[4]], actor->iwork[5], sp144); + Math_SmoothStepToVec3fArray(sp144, actor->vwork, 1, animFrameData, actor->fwork[2], 100.0f, .0f); RCP_SetupDL_30(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); gDPSetPrimColor(gMasterDisp++, 0, 0, 150, 255, 150, 255); - Animation_DrawSkeleton(1, &D_602D140, obj2F4->unk_18C, 0, 0, obj2F4, &gIdentityMatrix); + Animation_DrawSkeleton(1, &D_602D140, actor->vwork, 0, 0, actor, &gIdentityMatrix); - if (obj2F4->unk_114 != 0.0f) { + if (actor->fwork[0] != 0.0f) { RCP_SetupDL_49(); gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255); gDPSetEnvColor(gMasterDisp++, 255, 32, 32, 255); Matrix_Translate(gGfxMatrix, 10.0f, -5.0f, -40.0f, 1); - Matrix_RotateY(gGfxMatrix, (-obj2F4->obj.rot.y) * M_DTOR, 1); + Matrix_RotateY(gGfxMatrix, (-actor->obj.rot.y) * M_DTOR, 1); Graphics_SetScaleMtx(1.0f); - Matrix_Scale(gGfxMatrix, obj2F4->unk_114, obj2F4->unk_114, obj2F4->unk_114, 1); + Matrix_Scale(gGfxMatrix, actor->fwork[0], actor->fwork[0], actor->fwork[0], 1); - camX = gPlayer[0].camEye.x - obj2F4->obj.pos.x; - camY = gPlayer[0].camEye.y - obj2F4->obj.pos.y; - camZ = gPlayer[0].camEye.z - (obj2F4->obj.pos.z + D_80177D20); + camX = gPlayer[0].camEye.x - actor->obj.pos.x; + camY = gPlayer[0].camEye.y - actor->obj.pos.y; + camZ = gPlayer[0].camEye.z - (actor->obj.pos.z + D_80177D20); y = -Math_Atan2F(camX, camZ); x = Math_Atan2F(camY, sqrtf(SQ(camZ) + SQ(camX))); @@ -2869,29 +2869,29 @@ void func_8004FEC0(Object_2F4* obj2F4) { Matrix_SetGfxMtx(&gMasterDisp); gSPDisplayList(gMasterDisp++, D_1024AC0); - Math_SmoothStepToF(&obj2F4->unk_114, 0.0f, 0.1f, 0.2f, 0.05f); + Math_SmoothStepToF(&actor->fwork[0], 0.0f, 0.1f, 0.2f, 0.05f); } - if (obj2F4->unk_124.z != 0.0f) { + if (actor->fwork[6] != 0.0f) { RCP_SetupDL_49(); gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255); gDPSetEnvColor(gMasterDisp++, 255, 48, 0, 255); Matrix_Pop(&gGfxMatrix); Matrix_Push(&gGfxMatrix); - Matrix_RotateY(gCalcMatrix, (obj2F4->obj.rot.y - 90.0f) * M_DTOR, 0); + Matrix_RotateY(gCalcMatrix, (actor->obj.rot.y - 90.0f) * M_DTOR, 0); sp2B8.x = 210.0f; sp2B8.y = 0.0f; sp2B8.z = 40.0f; Matrix_MultVec3fNoTranslate(gCalcMatrix, (Vec3f*) (&sp2B8), &sp2AC); - Matrix_Translate(gGfxMatrix, obj2F4->obj.pos.x + sp2AC.x, obj2F4->obj.pos.y + sp2AC.y, - obj2F4->obj.pos.z + sp2AC.z, 1); - Matrix_Scale(gGfxMatrix, obj2F4->unk_124.z, obj2F4->unk_124.z, obj2F4->unk_124.z, 1); + Matrix_Translate(gGfxMatrix, actor->obj.pos.x + sp2AC.x, actor->obj.pos.y + sp2AC.y, + actor->obj.pos.z + sp2AC.z, 1); + Matrix_Scale(gGfxMatrix, actor->fwork[6], actor->fwork[6], actor->fwork[6], 1); - camX = gPlayer[0].camEye.x - obj2F4->obj.pos.x; - camY = gPlayer[0].camEye.y - obj2F4->obj.pos.y; - camZ = gPlayer[0].camEye.z - (obj2F4->obj.pos.z + D_80177D20); + camX = gPlayer[0].camEye.x - actor->obj.pos.x; + camY = gPlayer[0].camEye.y - actor->obj.pos.y; + camZ = gPlayer[0].camEye.z - (actor->obj.pos.z + D_80177D20); y = -Math_Atan2F(camX, camZ); x = Math_Atan2F(camY, sqrtf(SQ(camZ) + SQ(camX))); @@ -2901,7 +2901,7 @@ void func_8004FEC0(Object_2F4* obj2F4) { Matrix_SetGfxMtx(&gMasterDisp); gSPDisplayList(gMasterDisp++, D_1024AC0); - Math_SmoothStepToF(&obj2F4->unk_124.z, 0.00f, 0.1f, 0.6f, 0); + Math_SmoothStepToF(&actor->fwork[6], 0.00f, 0.1f, 0.6f, 0); } break; @@ -2910,7 +2910,7 @@ void func_8004FEC0(Object_2F4* obj2F4) { break; case 41: - func_801BE0F0(obj2F4); + func_801BE0F0(actor); break; case 42: @@ -2920,27 +2920,27 @@ void func_8004FEC0(Object_2F4* obj2F4) { case 43: RCP_SetupDL_49(); - gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, obj2F4->unk_050); + gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, actor->iwork[0]); gDPSetEnvColor(gMasterDisp++, 255, 0xC0, 128, 255); Matrix_RotateY( gGfxMatrix, Math_Atan2F(gPlayer[0].camEye.x - gPlayer[0].camAt.x, gPlayer[0].camEye.z - gPlayer[0].camAt.z), 1); - Matrix_Scale(gGfxMatrix, obj2F4->unk_114, obj2F4->unk_114, obj2F4->unk_114, 1); + Matrix_Scale(gGfxMatrix, actor->fwork[0], actor->fwork[0], actor->fwork[0], 1); Matrix_SetGfxMtx(&gMasterDisp); gSPDisplayList(gMasterDisp++, D_1024AC0); - if (obj2F4->unk_050 != 0) { - obj2F4->unk_050 -= 7; + if (actor->iwork[0] != 0) { + actor->iwork[0] -= 7; } - obj2F4->unk_114 += 0.2f; + actor->fwork[0] += 0.2f; break; case 44: - Animation_GetFrameData(&D_6020A40, obj2F4->unk_050, obj2F4->unk_18C); + Animation_GetFrameData(&D_6020A40, actor->iwork[0], actor->vwork); gSPClearGeometryMode(gMasterDisp++, 0x00002000); - Animation_DrawSkeleton(1, &D_6020C6C, obj2F4->unk_18C, 0, 0, &obj2F4->index, &gIdentityMatrix); + Animation_DrawSkeleton(1, &D_6020C6C, actor->vwork, 0, 0, &actor->index, &gIdentityMatrix); gSPSetGeometryMode(gMasterDisp++, 0x00002000); break; diff --git a/src/main/fox_display.c b/src/main/fox_display.c index 85c993a8..f5dfb13b 100644 --- a/src/main/fox_display.c +++ b/src/main/fox_display.c @@ -16,7 +16,7 @@ u8 D_800CA224[] = { 0, 0, 0, 0 }; s32 D_800CA228 = 0; s32 D_800CA22C = 0; f32 D_800CA230 = 0.0f; -Object_2F4* D_800CA234 = NULL; +Actor* D_800CA234 = NULL; s32 D_Timer_800CA238 = 0; f32 D_800CA23C[3] = { 0.5f, 0.25f, 0.25f }; f32 D_800CA248[3] = { 2.0f, 1.0f, 0.5f }; diff --git a/src/main/fox_edata.c b/src/main/fox_edata.c index 44ef2d64..c38ce60c 100644 --- a/src/main/fox_edata.c +++ b/src/main/fox_edata.c @@ -20,5 +20,5 @@ void func_800595D0(Object_80* obj80) { RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); } -void func_800596B0(Object_2F4* obj2F4) { +void func_800596B0(Actor* actor) { } diff --git a/src/main/fox_edata_1C.c b/src/main/fox_edata_1C.c index 158bdc91..2791ab0a 100644 --- a/src/main/fox_edata_1C.c +++ b/src/main/fox_edata_1C.c @@ -600,122 +600,122 @@ ObjectInfo D_800CC124[0x190] = { /* OBJ_4C_173 */ {(void*) NULL, 1, (ObjectFunc) func_801923C0, D_800CBF34, 0.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_4C_174 */ {(void*) NULL, 1, (ObjectFunc) func_8019243C, D_800CBF34, 0.0f, 0, 0, 0, 0, 0.0f, 0 }, /* OBJ_4C_175 */ {(void*) NULL, 1, (ObjectFunc) NULL, D_800CBF34, 1000.0f, 0, 0, 0, 0, 0.0f, 0 }, - /* OBJ_2F4_176 */ {(void*) func_8018BAAC, 2, (ObjectFunc) func_8018AED0, D_603E5D0, 500.0f, 0, 0, 39, 1, 200.0f, 1 }, - /* OBJ_2F4_177 */ {(void*) func_8018BBA4, 2, (ObjectFunc) func_8018B15C, D_603E5D0, 500.0f, 0, 0, 39, 1, 200.0f, 1 }, - /* OBJ_2F4_178 */ {(void*) func_8018BBF8, 2, (ObjectFunc) func_8018B418, D_603E5D0, 500.0f, 0, 0, 39, 1, 200.0f, 1 }, - /* OBJ_2F4_179 */ {(void*) func_8018BD7C, 2, (ObjectFunc) func_8018B58C, D_603E604, 500.0f, 0, 0, 39, 1, 0.0f, 1 }, - /* OBJ_2F4_180 */ {(void*) func_8005B6A4, 1, (ObjectFunc) func_80066A80, D_800CBF34, 1000.0f, 0, 0, 39, 0, 0.0f, 1 }, - /* OBJ_2F4_181 */ {(void*) D_6018C00, 0, (ObjectFunc) func_8018756C, D_602F6EC, 200.0f, 0, 0, 39, 0, 1.0f, 1 }, - /* OBJ_2F4_182 */ {(void*) func_8005B71C, 1, (ObjectFunc) func_80187650, D_602F708, 100.0f, 0, 1, 39, 0, 1.0f, 1 }, - /* OBJ_2F4_183 */ {(void*) func_8018DA6C, 1, (ObjectFunc) func_8018D9EC, D_800CBF34, 100.0f, 0, 1, 39, 0, 0.0f, 1 }, - /* OBJ_2F4_184 */ {(void*) func_8018DAEC, 1, (ObjectFunc) func_8018D9EC, D_800CBF34, 100.0f, 0, 1, 39, 0, 0.0f, 1 }, - /* 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_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 }, - /* OBJ_2F4_192 */ {(void*) func_8005B9A4, 1, (ObjectFunc) func_8006654C, D_603E54C, 200.0f, 0, 1, 39, 0, 50.0f, 1 }, - /* OBJ_2F4_193 */ {(void*) func_8005BA30, 1, (ObjectFunc) func_800669A0, D_603E598, 100.0f, 0, 1, 39, 0, 0.0f, 0 }, - /* OBJ_2F4_194 */ {(void*) func_8006B74C, 1, (ObjectFunc) func_8006B094, D_800CC000, 200.0f, 0, 1, 39, 0, 0.0f, 1 }, - /* OBJ_2F4_195 */ {(void*) func_8004FEC0, 1, (ObjectFunc) func_8004F8AC, D_800CBF34, 20000.0f, 0, 1, 39, 0, 0.0f, 0 }, - /* OBJ_2F4_196 */ {(void*) func_80059BF0, 1, (ObjectFunc) func_8006BB78, D_603E5B4, 200.0f, 0, 1, 39, 0, 1.0f, 1 }, - /* OBJ_2F4_197 */ {(void*) func_80035448, 1, (ObjectFunc) func_800319AC, D_800CC038, 20000.0f, 0, 1, 39, 1, 1.0f, 1 }, - /* OBJ_2F4_198 */ {(void*) func_80035448, 1, (ObjectFunc) func_80092EC0, D_800CC01C, 20000.0f, 0, 0, 39, 1, 0.0f, 0 }, - /* OBJ_2F4_199 */ {(void*) func_80188448, 1, (ObjectFunc) func_801880E4, D_800CBF34, 20000.0f, 0, 0, 39, 1, 0.0f, 0 }, - /* OBJ_2F4_200 */ {(void*) func_80074FF0, 1, (ObjectFunc) func_80072594, D_800CBF34, 2000.0f, 0, 1, 39, 0, 0.0f, 1 }, - /* OBJ_2F4_201 */ {(void*) func_800598E8, 1, (ObjectFunc) func_8006AC08, D_602F684, 100.0f, 0, 1, 39, 0, 1.0f, 1 }, - /* OBJ_2F4_202 */ {(void*) func_80059A24, 1, (ObjectFunc) func_8006AD18, D_602F6A0, 100.0f, 0, 1, 39, 0, 180.0f, 1 }, - /* OBJ_2F4_203 */ {(void*) func_8018F884, 1, (ObjectFunc) func_8018F330, D_800CBF34, 1000.0f, 0, 0, 39, 0, 0.0f, 0 }, - /* OBJ_2F4_204 */ {(void*) func_E9F1D0_801A4CB0, 1, (ObjectFunc) func_E9F1D0_801A3BD4, D_603405C, 1000.0f, 0, 0, 39, 0, 1.0f, 1 }, - /* OBJ_2F4_205 */ {(void*) func_801A12C4, 1, (ObjectFunc) func_8019C778, D_60359C8, 20000.0f, 0, 0, 40, 1, 0.0f, 0 }, - /* OBJ_2F4_206 */ {(void*) func_801A12C4, 1, (ObjectFunc) func_801AC438, D_6035A48, 20000.0f, 0, 0, 40, 1, 0.0f, 0 }, - /* OBJ_2F4_207 */ {(void*) func_801AC294, 2, (ObjectFunc) func_801A7E7C, D_603677C, 20000.0f, 0, 0, 40, 1, 0.0f, 0 }, - /* OBJ_2F4_208 */ {(void*) func_801A12C4, 1, (ObjectFunc) func_8019EA60, D_6035A14, 20000.0f, 0, 0, 40, 1, 0.0f, 0 }, - /* OBJ_2F4_209 */ {(void*) func_801A12C4, 1, (ObjectFunc) func_8019D700, D_6035AE0, 20000.0f, 0, 0, 40, 1, 0.0f, 0 }, - /* OBJ_2F4_210 */ {(void*) func_801A12C4, 1, (ObjectFunc) func_8019CE88, D_6035D9C, 20000.0f, 0, 0, 40, 1, 0.0f, 0 }, - /* OBJ_2F4_211 */ {(void*) func_801A12C4, 1, (ObjectFunc) func_8019E410, D_6035E04, 20000.0f, 0, 0, 40, 1, 0.0f, 0 }, - /* OBJ_2F4_212 */ {(void*) func_801A12C4, 1, (ObjectFunc) func_8019FF9C, D_60360C0, 20000.0f, 0, 0, 40, 1, 0.0f, 0 }, - /* OBJ_2F4_213 */ {(void*) func_801A12C4, 1, (ObjectFunc) func_8019EE68, D_6036154, 20000.0f, 0, 0, 40, 1, 0.0f, 0 }, - /* OBJ_2F4_214 */ {(void*) func_801A43BC, 1, (ObjectFunc) func_801A3E98, D_6036458, 300.0f, 0, 0, 40, 1, 0.0f, 0 }, - /* OBJ_2F4_215 */ {(void*) func_801A4A64, 1, (ObjectFunc) func_801A46A0, D_60364C0, 300.0f, 0, 1, 40, 1, 0.0f, 1 }, - /* OBJ_2F4_216 */ {(void*) func_801A5F90, 1, (ObjectFunc) func_801A5E54, D_60366EC, 200.0f, 0, 0, 40, 1, 0.0f, 0 }, - /* OBJ_2F4_217 */ {(void*) func_801A6100, 1, (ObjectFunc) func_801A5FD0, D_6036708, 200.0f, 0, 0, 40, 1, 0.0f, 0 }, - /* OBJ_2F4_218 */ {(void*) func_801A6540, 1, (ObjectFunc) func_801A6144, D_6036728, 200.0f, 0, 0, 40, 1, 0.0f, 0 }, - /* OBJ_2F4_219 */ {(void*) func_801A68EC, 1, (ObjectFunc) func_801A67C8, D_6036744, 300.0f, 0, 0, 40, 1, 0.0f, 0 }, - /* OBJ_2F4_220 */ {(void*) func_801ADAC8, 1, (ObjectFunc) func_801AD6F0, D_6036930, 200.0f, 0, 0, 40, 1, 0.0f, 0 }, - /* OBJ_2F4_221 */ {(void*) func_801AE2C0, 1, (ObjectFunc) func_801ADD68, D_603694C, 300.0f, 0, 0, 40, 1, 1.0f, 0 }, - /* OBJ_2F4_222 */ {(void*) func_801AEEFC, 1, (ObjectFunc) func_801AEC04, D_6036968, 300.0f, 0, 0, 40, 1, 1.0f, 0 }, - /* OBJ_2F4_223 */ {(void*) func_801A54E8, 1, (ObjectFunc) func_801A4B24, D_60364DC, 300.0f, 0, 0, 40, 1, 0.0f, 0 }, - /* OBJ_2F4_224 */ {(void*) NULL, 1, (ObjectFunc) func_80189194, D_800CBF34, 200.0f, 0, 0, 39, 0, 0.0f, 0 }, - /* OBJ_2F4_225 */ {(void*) D_700AB70, 0, (ObjectFunc) func_8018AB44, D_60064AC, 50.0f, 0, 0, 39, 1, 1.0f, 0 }, - /* OBJ_2F4_226 */ {(void*) func_80189AFC, 1, (ObjectFunc) func_801895B8, D_60064C8, 300.0f, 0, 0, 39, 1, 70.0f, 1 }, - /* OBJ_2F4_227 */ {(void*) func_8018E5B4, 1, (ObjectFunc) func_8018E54C, D_60067C4, 0.0f, 0, 0, 39, 1, 0.0f, 0 }, - /* OBJ_2F4_228 */ {(void*) func_8018EF14, 1, (ObjectFunc) func_8018E5F8, D_6006808, 0.0f, 0, 0, 39, 1, 1.0f, 1 }, - /* OBJ_2F4_229 */ {(void*) func_8018E2D8, 1, (ObjectFunc) func_8018C8A8, D_6006A3C, 1000.0f, 0, 0, 20, 1, 0.0f, 1 }, - /* OBJ_2F4_230 */ {(void*) func_8018AABC, 1, (ObjectFunc) func_8018A544, D_600683C, 0.0f, 0, 1, 39, 1, 0.0f, 1 }, - /* OBJ_2F4_231 */ {(void*) func_8018BE84, 1, (ObjectFunc) func_8018B9D0, D_6006858, 0.0f, 0, 0, 39, 1, 0.0f, 1 }, - /* 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_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_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_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_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 }, - /* OBJ_2F4_283 */ {(void*) D_9023AD0, 0, (ObjectFunc) func_80192EB0, D_601B8A0, 1000.0f, 0, 0, 40, 1, 0.0f, 0 }, - /* OBJ_2F4_284 */ {(void*) func_801934D0, 1, (ObjectFunc) func_801933DC, D_601B8D8, 1000.0f, 0, 0, 40, 0, 0.0f, 0 }, - /* OBJ_2F4_285 */ {(void*) func_80193244, 1, (ObjectFunc) func_80192E94, D_800CBE8C, 1000.0f, 0, 0, 20, 0, 1.0f, 1 }, - /* OBJ_2F4_286 */ {(void*) func_80188660, 1, (ObjectFunc) func_80188528, D_800CBE8C, 1000.0f, 0, 0, 20, 0, 0.0f, 0 }, - /* OBJ_2F4_287 */ {(void*) NULL, 1, (ObjectFunc) func_80189724, D_800CBF34, 1000.0f, 0, 0, 40, 1, 0.0f, 0 }, - /* OBJ_2F4_288 */ {(void*) NULL, 1, (ObjectFunc) func_801893B8, D_800CBF34, 1000.0f, 0, 0, 20, 1, 0.0f, 0 }, - /* 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_ACTOR_176 */ {(void*) func_8018BAAC, 2, (ObjectFunc) func_8018AED0, D_603E5D0, 500.0f, 0, 0, 39, 1, 200.0f, 1 }, + /* OBJ_ACTOR_177 */ {(void*) func_8018BBA4, 2, (ObjectFunc) func_8018B15C, D_603E5D0, 500.0f, 0, 0, 39, 1, 200.0f, 1 }, + /* OBJ_ACTOR_178 */ {(void*) func_8018BBF8, 2, (ObjectFunc) func_8018B418, D_603E5D0, 500.0f, 0, 0, 39, 1, 200.0f, 1 }, + /* OBJ_ACTOR_179 */ {(void*) func_8018BD7C, 2, (ObjectFunc) func_8018B58C, D_603E604, 500.0f, 0, 0, 39, 1, 0.0f, 1 }, + /* OBJ_ACTOR_180 */ {(void*) func_8005B6A4, 1, (ObjectFunc) func_80066A80, D_800CBF34, 1000.0f, 0, 0, 39, 0, 0.0f, 1 }, + /* OBJ_ACTOR_181 */ {(void*) D_6018C00, 0, (ObjectFunc) func_8018756C, D_602F6EC, 200.0f, 0, 0, 39, 0, 1.0f, 1 }, + /* OBJ_ACTOR_182 */ {(void*) func_8005B71C, 1, (ObjectFunc) func_80187650, D_602F708, 100.0f, 0, 1, 39, 0, 1.0f, 1 }, + /* OBJ_ACTOR_183 */ {(void*) func_8018DA6C, 1, (ObjectFunc) func_8018D9EC, D_800CBF34, 100.0f, 0, 1, 39, 0, 0.0f, 1 }, + /* OBJ_ACTOR_184 */ {(void*) func_8018DAEC, 1, (ObjectFunc) func_8018D9EC, D_800CBF34, 100.0f, 0, 1, 39, 0, 0.0f, 1 }, + /* OBJ_ACTOR_185 */ {(void*) func_8018DB6C, 1, (ObjectFunc) func_8018D9EC, D_800CBF34, 100.0f, 0, 1, 39, 0, 0.0f, 1 }, + /* OBJ_ACTOR_186 */ {(void*) func_8005B7CC, 1, (ObjectFunc) func_8018795C, D_602F724, 200.0f, 0, 1, 39, 0, 1.0f, 1 }, + /* OBJ_ACTOR_187 */ {(void*) D_6018450, 0, (ObjectFunc) func_801877C4, D_602F740, 200.0f, 0, 1, 39, 0, 1.0f, 1 }, + /* OBJ_ACTOR_188 */ {(void*) func_E16C50_801BEC74, 1, (ObjectFunc) func_E16C50_801BEC68, D_6030BE0, 200.0f, 0, 1, 39, 0, 1.0f, 1 }, + /* OBJ_ACTOR_189 */ {(void*) func_8005A094, 1, (ObjectFunc) func_8006C008, D_800CBF34, 0.0f, 0, 0, 39, 0, 0.0f, 0 }, + /* OBJ_ACTOR_190 */ {(void*) func_8005B848, 1, (ObjectFunc) func_800656D4, D_800CBFE4, 100.0f, 0, 1, 39, 0, 1.0f, 0 }, + /* OBJ_ACTOR_191 */ {(void*) func_8005B848, 1, (ObjectFunc) func_800656D4, D_800CBFE4, 100.0f, 0, 1, 39, 0, 1.0f, 0 }, + /* OBJ_ACTOR_192 */ {(void*) func_8005B9A4, 1, (ObjectFunc) func_8006654C, D_603E54C, 200.0f, 0, 1, 39, 0, 50.0f, 1 }, + /* OBJ_ACTOR_193 */ {(void*) func_8005BA30, 1, (ObjectFunc) func_800669A0, D_603E598, 100.0f, 0, 1, 39, 0, 0.0f, 0 }, + /* OBJ_ACTOR_194 */ {(void*) func_8006B74C, 1, (ObjectFunc) func_8006B094, D_800CC000, 200.0f, 0, 1, 39, 0, 0.0f, 1 }, + /* OBJ_ACTOR_195 */ {(void*) func_8004FEC0, 1, (ObjectFunc) func_8004F8AC, D_800CBF34, 20000.0f, 0, 1, 39, 0, 0.0f, 0 }, + /* OBJ_ACTOR_196 */ {(void*) func_80059BF0, 1, (ObjectFunc) func_8006BB78, D_603E5B4, 200.0f, 0, 1, 39, 0, 1.0f, 1 }, + /* OBJ_ACTOR_197 */ {(void*) func_80035448, 1, (ObjectFunc) func_800319AC, D_800CC038, 20000.0f, 0, 1, 39, 1, 1.0f, 1 }, + /* OBJ_ACTOR_198 */ {(void*) func_80035448, 1, (ObjectFunc) func_80092EC0, D_800CC01C, 20000.0f, 0, 0, 39, 1, 0.0f, 0 }, + /* OBJ_ACTOR_199 */ {(void*) func_80188448, 1, (ObjectFunc) func_801880E4, D_800CBF34, 20000.0f, 0, 0, 39, 1, 0.0f, 0 }, + /* OBJ_ACTOR_200 */ {(void*) func_80074FF0, 1, (ObjectFunc) func_80072594, D_800CBF34, 2000.0f, 0, 1, 39, 0, 0.0f, 1 }, + /* OBJ_ACTOR_201 */ {(void*) func_800598E8, 1, (ObjectFunc) func_8006AC08, D_602F684, 100.0f, 0, 1, 39, 0, 1.0f, 1 }, + /* OBJ_ACTOR_202 */ {(void*) func_80059A24, 1, (ObjectFunc) func_8006AD18, D_602F6A0, 100.0f, 0, 1, 39, 0, 180.0f, 1 }, + /* OBJ_ACTOR_203 */ {(void*) func_8018F884, 1, (ObjectFunc) func_8018F330, D_800CBF34, 1000.0f, 0, 0, 39, 0, 0.0f, 0 }, + /* OBJ_ACTOR_204 */ {(void*) func_E9F1D0_801A4CB0, 1, (ObjectFunc) func_E9F1D0_801A3BD4, D_603405C, 1000.0f, 0, 0, 39, 0, 1.0f, 1 }, + /* OBJ_ACTOR_205 */ {(void*) func_801A12C4, 1, (ObjectFunc) func_8019C778, D_60359C8, 20000.0f, 0, 0, 40, 1, 0.0f, 0 }, + /* OBJ_ACTOR_206 */ {(void*) func_801A12C4, 1, (ObjectFunc) func_801AC438, D_6035A48, 20000.0f, 0, 0, 40, 1, 0.0f, 0 }, + /* OBJ_ACTOR_207 */ {(void*) func_801AC294, 2, (ObjectFunc) func_801A7E7C, D_603677C, 20000.0f, 0, 0, 40, 1, 0.0f, 0 }, + /* OBJ_ACTOR_208 */ {(void*) func_801A12C4, 1, (ObjectFunc) func_8019EA60, D_6035A14, 20000.0f, 0, 0, 40, 1, 0.0f, 0 }, + /* OBJ_ACTOR_209 */ {(void*) func_801A12C4, 1, (ObjectFunc) func_8019D700, D_6035AE0, 20000.0f, 0, 0, 40, 1, 0.0f, 0 }, + /* OBJ_ACTOR_210 */ {(void*) func_801A12C4, 1, (ObjectFunc) func_8019CE88, D_6035D9C, 20000.0f, 0, 0, 40, 1, 0.0f, 0 }, + /* OBJ_ACTOR_211 */ {(void*) func_801A12C4, 1, (ObjectFunc) func_8019E410, D_6035E04, 20000.0f, 0, 0, 40, 1, 0.0f, 0 }, + /* OBJ_ACTOR_212 */ {(void*) func_801A12C4, 1, (ObjectFunc) func_8019FF9C, D_60360C0, 20000.0f, 0, 0, 40, 1, 0.0f, 0 }, + /* OBJ_ACTOR_213 */ {(void*) func_801A12C4, 1, (ObjectFunc) func_8019EE68, D_6036154, 20000.0f, 0, 0, 40, 1, 0.0f, 0 }, + /* OBJ_ACTOR_214 */ {(void*) func_801A43BC, 1, (ObjectFunc) func_801A3E98, D_6036458, 300.0f, 0, 0, 40, 1, 0.0f, 0 }, + /* OBJ_ACTOR_215 */ {(void*) func_801A4A64, 1, (ObjectFunc) func_801A46A0, D_60364C0, 300.0f, 0, 1, 40, 1, 0.0f, 1 }, + /* OBJ_ACTOR_216 */ {(void*) func_801A5F90, 1, (ObjectFunc) func_801A5E54, D_60366EC, 200.0f, 0, 0, 40, 1, 0.0f, 0 }, + /* OBJ_ACTOR_217 */ {(void*) func_801A6100, 1, (ObjectFunc) func_801A5FD0, D_6036708, 200.0f, 0, 0, 40, 1, 0.0f, 0 }, + /* OBJ_ACTOR_218 */ {(void*) func_801A6540, 1, (ObjectFunc) func_801A6144, D_6036728, 200.0f, 0, 0, 40, 1, 0.0f, 0 }, + /* OBJ_ACTOR_219 */ {(void*) func_801A68EC, 1, (ObjectFunc) func_801A67C8, D_6036744, 300.0f, 0, 0, 40, 1, 0.0f, 0 }, + /* OBJ_ACTOR_220 */ {(void*) func_801ADAC8, 1, (ObjectFunc) func_801AD6F0, D_6036930, 200.0f, 0, 0, 40, 1, 0.0f, 0 }, + /* OBJ_ACTOR_221 */ {(void*) func_801AE2C0, 1, (ObjectFunc) func_801ADD68, D_603694C, 300.0f, 0, 0, 40, 1, 1.0f, 0 }, + /* OBJ_ACTOR_222 */ {(void*) func_801AEEFC, 1, (ObjectFunc) func_801AEC04, D_6036968, 300.0f, 0, 0, 40, 1, 1.0f, 0 }, + /* OBJ_ACTOR_223 */ {(void*) func_801A54E8, 1, (ObjectFunc) func_801A4B24, D_60364DC, 300.0f, 0, 0, 40, 1, 0.0f, 0 }, + /* OBJ_ACTOR_224 */ {(void*) NULL, 1, (ObjectFunc) func_80189194, D_800CBF34, 200.0f, 0, 0, 39, 0, 0.0f, 0 }, + /* OBJ_ACTOR_225 */ {(void*) D_700AB70, 0, (ObjectFunc) func_8018AB44, D_60064AC, 50.0f, 0, 0, 39, 1, 1.0f, 0 }, + /* OBJ_ACTOR_226 */ {(void*) func_80189AFC, 1, (ObjectFunc) func_801895B8, D_60064C8, 300.0f, 0, 0, 39, 1, 70.0f, 1 }, + /* OBJ_ACTOR_227 */ {(void*) func_8018E5B4, 1, (ObjectFunc) func_8018E54C, D_60067C4, 0.0f, 0, 0, 39, 1, 0.0f, 0 }, + /* OBJ_ACTOR_228 */ {(void*) func_8018EF14, 1, (ObjectFunc) func_8018E5F8, D_6006808, 0.0f, 0, 0, 39, 1, 1.0f, 1 }, + /* OBJ_ACTOR_229 */ {(void*) func_8018E2D8, 1, (ObjectFunc) func_8018C8A8, D_6006A3C, 1000.0f, 0, 0, 20, 1, 0.0f, 1 }, + /* OBJ_ACTOR_230 */ {(void*) func_8018AABC, 1, (ObjectFunc) func_8018A544, D_600683C, 0.0f, 0, 1, 39, 1, 0.0f, 1 }, + /* OBJ_ACTOR_231 */ {(void*) func_8018BE84, 1, (ObjectFunc) func_8018B9D0, D_6006858, 0.0f, 0, 0, 39, 1, 0.0f, 1 }, + /* OBJ_ACTOR_232 */ {(void*) func_8018B6AC, 1, (ObjectFunc) func_8018B268, D_6006890_f32, 0.0f, 0, 0, 39, 1, 20.0f, 1 }, + /* OBJ_ACTOR_233 */ {(void*) func_8018A1C0, 1, (ObjectFunc) func_80189CC8, D_60068F0, 200.0f, 0, 0, 39, 1, 1.0f, 1 }, + /* OBJ_ACTOR_234 */ {(void*) func_80077218, 1, (ObjectFunc) func_800771CC, D_800CBF34, 2000.0f, 0, 0, 39, 0, 0.0f, 5 }, + /* OBJ_ACTOR_235 */ {(void*) func_E16C50_80190430, 2, (ObjectFunc) func_E16C50_801904CC, D_602C294, 1000.0f, 0, 1, 40, 0, 1.0f, 1 }, + /* OBJ_ACTOR_236 */ {(void*) func_E16C50_80190F08, 1, (ObjectFunc) func_E16C50_80190A00, D_602BC58, 5000.0f, 0, 0, 40, 0, 0.0f, 0 }, + /* OBJ_ACTOR_237 */ {(void*) func_8006A978, 1, (ObjectFunc) func_8006A96C, D_800CBF34, 200.0f, 0, 0, 40, 0, 0.0f, 2 }, + /* OBJ_ACTOR_238 */ {(void*) func_E16C50_801914C4, 2, (ObjectFunc) func_E16C50_80191010, D_800CBE8C, 200.0f, 0, 1, 40, 0, 1.0f, 1 }, + /* OBJ_ACTOR_239 */ {(void*) NULL, 1, (ObjectFunc) NULL, D_800CBF34, 1000.0f, 0, 0, 0, 0, 0.0f, 0 }, + /* OBJ_ACTOR_240 */ {(void*) func_E16C50_80191B4C, 1, (ObjectFunc) func_E16C50_80191680, D_800CBE8C, 1500.0f, 0, 1, 40, 0, 20.0f, 0 }, + /* OBJ_ACTOR_241 */ {(void*) func_E16C50_80191DB0, 1, (ObjectFunc) func_E16C50_80191BC4, D_800CBE70, 1500.0f, 0, 1, 40, 0, 0.0f, 0 }, + /* OBJ_ACTOR_242 */ {(void*) func_E16C50_80191FFC, 2, (ObjectFunc) func_E16C50_80192094, D_602BE3C, 500.0f, 0, 0, 40, 0, 1.0f, 0 }, + /* OBJ_ACTOR_243 */ {(void*) func_E16C50_80192C18, 2, (ObjectFunc) func_E16C50_80192834, D_800CBE8C, 0.0f, 0, 1, 40, 0, 1.0f, 1 }, + /* OBJ_ACTOR_244 */ {(void*) func_E16C50_80193240, 2, (ObjectFunc) func_E16C50_80192E64, D_602BE58, 2000.0f, 0, 0, 40, 0, 50.0f, 0 }, + /* OBJ_ACTOR_245 */ {(void*) func_E16C50_8019983C, 1, (ObjectFunc) func_E16C50_8019969C, D_800CBE8C, 200.0f, 0, 0, 40, 0, 1.0f, 0 }, + /* OBJ_ACTOR_246 */ {(void*) func_E16C50_80199E24, 1, (ObjectFunc) func_E16C50_80199A28, D_800CBE8C, 2000.0f, 0, 0, 40, 0, 1.0f, 0 }, + /* OBJ_ACTOR_247 */ {(void*) func_E16C50_8019D3C4, 1, (ObjectFunc) func_E16C50_8019D15C, D_602BFC4, 500.0f, 0, 0, 40, 0, 0.0f, 0 }, + /* OBJ_ACTOR_248 */ {(void*) func_E16C50_8019A1FC, 1, (ObjectFunc) func_E16C50_80199F10, D_800CBEA8, 2000.0f, 0, 0, 40, 0, 0.0f, 0 }, + /* OBJ_ACTOR_249 */ {(void*) func_E16C50_8019ACCC, 1, (ObjectFunc) func_E16C50_8019A5D4, D_800CBEC4, 5000.0f, 0, 0, 40, 0, 0.0f, 0 }, + /* OBJ_ACTOR_250 */ {(void*) func_E16C50_8019B7DC, 1, (ObjectFunc) func_E16C50_8019B548, D_602C1D4, 10000.0f, 0, 0, 40, 0, 0.0f, 0 }, + /* OBJ_ACTOR_251 */ {(void*) func_E16C50_8019BDE0, 2, (ObjectFunc) func_E16C50_8019B854, D_602C218, 1000.0f, 0, 0, 40, 0, 1.0f, 1 }, + /* OBJ_ACTOR_252 */ {(void*) func_E16C50_8019C1CC, 1, (ObjectFunc) func_E16C50_8019BE48, D_602C234, 200.0f, 0, 0, 40, 0, 80.0f, 1 }, + /* OBJ_ACTOR_253 */ {(void*) func_E16C50_8019C83C, 1, (ObjectFunc) func_E16C50_8019C454, D_602C250, 300.0f, 0, 0, 40, 0, 0.0f, 0 }, + /* OBJ_ACTOR_254 */ {(void*) func_E16C50_8019CE58, 1, (ObjectFunc) func_E16C50_8019CBEC, D_602C2B0, 300.0f, 0, 0, 0, 0, 0.0f, 0 }, + /* OBJ_ACTOR_255 */ {(void*) func_E16C50_801AE168, 1, (ObjectFunc) func_E16C50_801AD6C0, D_6030BFC, 500.0f, 0, 0, 40, 0, 0.0f, 0 }, + /* OBJ_ACTOR_256 */ {(void*) func_E16C50_801AEB44, 1, (ObjectFunc) func_E16C50_801AE3D8, D_6030C18, 10000.0f, 0, 0, 40, 0, 0.0f, 0 }, + /* OBJ_ACTOR_257 */ {(void*) func_E16C50_801B099C, 1, (ObjectFunc) func_E16C50_801AFA5C, D_6030C44, 10000.0f, 0, 0, 40, 0, 0.0f, 0 }, + /* OBJ_ACTOR_258 */ {(void*) func_E16C50_801B0EC0, 1, (ObjectFunc) func_E16C50_801B0B60, D_800CBE8C, 200.0f, 0, 0, 40, 0, 0.0f, 0 }, + /* OBJ_ACTOR_259 */ {(void*) func_E16C50_801B619C, 2, (ObjectFunc) func_E16C50_801B638C, D_6031398, 10000.0f, 0, 0, 40, 0, 0.0f, 0 }, + /* OBJ_ACTOR_260 */ {(void*) func_E16C50_801B90DC, 2, (ObjectFunc) func_E16C50_801B7C78, D_60313CC, 300.0f, 0, 0, 40, 0, 0.0f, 0 }, + /* OBJ_ACTOR_261 */ {(void*) func_E16C50_801B504C, 2, (ObjectFunc) func_E16C50_801B50E8, D_6031400, 300.0f, 0, 0, 40, 0, 0.0f, 1 }, + /* OBJ_ACTOR_262 */ {(void*) func_E16C50_801B7A24, 2, (ObjectFunc) func_E16C50_801B6FF8, D_603144C, 2000.0f, 0, 0, 40, 0, 0.0f, 0 }, + /* OBJ_ACTOR_263 */ {(void*) func_E16C50_801BA108, 2, (ObjectFunc) func_E16C50_801B91A4, D_6031480, 200.0f, 0, 0, 40, 0, 0.0f, 1 }, + /* OBJ_ACTOR_264 */ {(void*) func_E16C50_801BA4E4, 1, (ObjectFunc) func_E16C50_801BA26C, D_800CBE8C, 200.0f, 0, 0, 0, 0, 0.0f, 0 }, + /* OBJ_ACTOR_265 */ {(void*) func_E16C50_801BAD7C, 1, (ObjectFunc) func_E16C50_801BA6A4, D_6031500, 200.0f, 0, 0, 40, 0, 0.0f, 1 }, + /* OBJ_ACTOR_266 */ {(void*) func_E16C50_801BB204, 2, (ObjectFunc) func_E16C50_801BADF8, D_6031538, 200.0f, 0, 0, 0, 0, 0.0f, 0 }, + /* OBJ_ACTOR_267 */ {(void*) func_E16C50_801BC930, 2, (ObjectFunc) func_E16C50_801BB79C, D_6031554, 800.0f, 0, 0, 40, 0, 0.0f, 0 }, + /* OBJ_ACTOR_268 */ {(void*) func_E16C50_801BDE6C, 1, (ObjectFunc) func_E16C50_801BD54C, D_6031570, 10000.0f, 0, 0, 0, 0, 0.0f, 0 }, + /* OBJ_ACTOR_269 */ {(void*) func_E16C50_801BD264, 1, (ObjectFunc) func_E16C50_801BC9A0, D_6030D20, 2000.0f, 0, 0, 40, 0, 0.0f, 0 }, + /* OBJ_ACTOR_270 */ {(void*) func_E16C50_801BEB1C, 1, (ObjectFunc) func_E16C50_801BE3F8, D_60314C8, 1000.0f, 0, 0, 40, 0, 0.0f, 0 }, + /* OBJ_ACTOR_271 */ {(void*) func_8002E694, 2, (ObjectFunc) func_8002E670, D_6011B24, 0.0f, 0, 0, 39, 0, 730.0f, 1 }, + /* OBJ_ACTOR_272 */ {(void*) func_8002E6DC, 1, (ObjectFunc) func_8002E6B8, D_6011BF4, 0.0f, 0, 0, 39, 0, 150.0f, 1 }, + /* OBJ_ACTOR_273 */ {(void*) func_80188FE4, 2, (ObjectFunc) func_80188AD0, D_600FF30, 0.0f, 0, 0, 39, 0, 220.0f, 1 }, + /* OBJ_ACTOR_274 */ {(void*) func_8019E3A8, 1, (ObjectFunc) func_8019E234, D_800CBEC4, 0.0f, 0, 0, 39, 0, 1.0f, 0 }, + /* OBJ_ACTOR_275 */ {(void*) func_E16C50_8019F7AC, 1, (ObjectFunc) func_E16C50_8019F20C, D_800CBE8C, 200.0f, 0, 0, 39, 0, 1.0f, 1 }, + /* OBJ_ACTOR_276 */ {(void*) func_E16C50_8019F7AC, 1, (ObjectFunc) func_E16C50_8019F20C, D_800CBE8C, 200.0f, 0, 0, 39, 0, 1.0f, 1 }, + /* OBJ_ACTOR_277 */ {(void*) func_E16C50_8019F7AC, 1, (ObjectFunc) func_E16C50_8019F20C, D_800CBEC4, 200.0f, 0, 0, 39, 0, 1.0f, 1 }, + /* OBJ_ACTOR_278 */ {(void*) NULL, 1, (ObjectFunc) func_E16C50_8019EA7C, D_800CBF34, 200.0f, 0, 0, 0, 0, 0.0f, 1 }, + /* OBJ_ACTOR_279 */ {(void*) NULL, 1, (ObjectFunc) func_E16C50_801A003C, D_800CBF34, 1000.0f, 0, 0, 0, 0, 0.0f, 1 }, + /* OBJ_ACTOR_280 */ {(void*) D_900DD20, 0, (ObjectFunc) func_80192518, D_601B7F8, 1000.0f, 0, 0, 40, 1, 0.0f, 0 }, + /* OBJ_ACTOR_281 */ {(void*) func_80192E2C, 1, (ObjectFunc) func_80192CD4, D_601B830, 1000.0f, 0, 0, 40, 1, 0.0f, 0 }, + /* OBJ_ACTOR_282 */ {(void*) D_901DA50, 0, (ObjectFunc) func_80192CD4, D_601B868, 1000.0f, 0, 0, 40, 1, 0.0f, 0 }, + /* OBJ_ACTOR_283 */ {(void*) D_9023AD0, 0, (ObjectFunc) func_80192EB0, D_601B8A0, 1000.0f, 0, 0, 40, 1, 0.0f, 0 }, + /* OBJ_ACTOR_284 */ {(void*) func_801934D0, 1, (ObjectFunc) func_801933DC, D_601B8D8, 1000.0f, 0, 0, 40, 0, 0.0f, 0 }, + /* OBJ_ACTOR_285 */ {(void*) func_80193244, 1, (ObjectFunc) func_80192E94, D_800CBE8C, 1000.0f, 0, 0, 20, 0, 1.0f, 1 }, + /* OBJ_ACTOR_286 */ {(void*) func_80188660, 1, (ObjectFunc) func_80188528, D_800CBE8C, 1000.0f, 0, 0, 20, 0, 0.0f, 0 }, + /* OBJ_ACTOR_287 */ {(void*) NULL, 1, (ObjectFunc) func_80189724, D_800CBF34, 1000.0f, 0, 0, 40, 1, 0.0f, 0 }, + /* OBJ_ACTOR_288 */ {(void*) NULL, 1, (ObjectFunc) func_801893B8, D_800CBF34, 1000.0f, 0, 0, 20, 1, 0.0f, 0 }, + /* OBJ_ACTOR_289 */ {(void*) func_800596B0, 1, (ObjectFunc) func_80189470, D_800CBF34, 1000.0f, 0, 0, 20, 1, 0.0f, 0 }, + /* OBJ_ACTOR_290 */ {(void*) NULL, 1, (ObjectFunc) func_8018933C, D_800CBF34, 1000.0f, 0, 0, 20, 0, 0.0f, 0 }, + /* OBJ_ACTOR_291 */ {(void*) func_80067874, 1, (ObjectFunc) func_8006753C, D_800CBEA8, 1000.0f, 0, 0, 0, 0, 1.0f, 0 }, /* 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 }, diff --git a/src/main/fox_edisplay.c b/src/main/fox_edisplay.c index bdccbace..0e0b9527 100644 --- a/src/main/fox_edisplay.c +++ b/src/main/fox_edisplay.c @@ -37,7 +37,7 @@ void func_80059850(Object_4C* obj4C) { void func_800598DC(s32 arg0) { } -void func_800598E8(Object_2F4* obj2F4) { +void func_800598E8(Actor* actor) { RCP_SetupDL_60(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); gSPDisplayList(gMasterDisp++, D_6025B50); RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); @@ -52,7 +52,7 @@ void func_800599A4(s32 limbIndex, Vec3f* rot, void* index) { sp24.y = 0.0f; sp24.z = 0.0f; Matrix_MultVec3f(gCalcMatrix, &sp24, &sp18); - gObjects2F4[*((s32*) index)].unk_114 = sp18.y; + gActors[*((s32*) index)].fwork[0] = sp18.y; } } @@ -66,14 +66,14 @@ f32 D_800CFA2C[] = { 1.0f, 1.0f, 0.95f, 0.9f, 0.85f, 0.8f, 0.75f, 0.7f, 0.65f, 0.6f, }; -void func_80059A24(Object_2F4* obj2F4) { +void func_80059A24(Actor* actor) { Vec3f sp30[30]; - f32 temp = D_800CF9B0[obj2F4->unk_0B6] - 114.0f; + f32 temp = D_800CF9B0[actor->unk_0B6] - 114.0f; Matrix_Translate(gGfxMatrix, 0.f, -temp, 0.0f, 1); Matrix_SetGfxMtx(&gMasterDisp); - Animation_GetFrameData(&D_601E8C4, obj2F4->unk_0B6, sp30); - Animation_DrawSkeleton(1, D_601E9D0, sp30, NULL, func_800599A4, &obj2F4->index, &gIdentityMatrix); + Animation_GetFrameData(&D_601E8C4, actor->unk_0B6, sp30); + Animation_DrawSkeleton(1, D_601E9D0, sp30, NULL, func_800599A4, &actor->index, &gIdentityMatrix); } void func_80059AEC(Object_80* obj80) { @@ -96,8 +96,8 @@ void func_80059BBC(Object_80* obj80) { gSPDisplayList(gMasterDisp++, D_6023AC0); } -void func_80059BF0(Object_2F4* obj2F4) { - if (obj2F4->unk_0B6 != 0) { +void func_80059BF0(Actor* actor) { + if (actor->unk_0B6 != 0) { gSPDisplayList(gMasterDisp++, D_6032BC0); } } @@ -232,8 +232,8 @@ Gfx* D_800CFC7C[] = { 0x0601B570, 0x0601B710, 0x060209B0, 0x06020B70, 0x06020D50, 0x0601B8F0, 0x0601B3B0, 0x0601B1C0, 0x06011660, }; -void func_8005A094(Object_2F4* obj2F4) { - switch (obj2F4->unk_0B8) { +void func_8005A094(Actor* actor) { + switch (actor->unk_0B8) { case 0: Matrix_Translate(gGfxMatrix, 18.0f, 15.0f, -15.0f, 1); Matrix_RotateY(gGfxMatrix, M_PI, 1); @@ -247,15 +247,15 @@ void func_8005A094(Object_2F4* obj2F4) { gSPDisplayList(gMasterDisp++, D_3015D80); break; case 2: - Graphics_SetScaleMtx(obj2F4->scale); + Graphics_SetScaleMtx(actor->scale); gSPDisplayList(gMasterDisp++, D_30155E0); break; case 3: gSPDisplayList(gMasterDisp++, D_3011720); break; case 4: - Graphics_SetScaleMtx(obj2F4->scale); - if (obj2F4->index & 1) { + Graphics_SetScaleMtx(actor->scale); + if (actor->index & 1) { gSPDisplayList(gMasterDisp++, D_10194C0); } else { gSPDisplayList(gMasterDisp++, D_1024290); @@ -263,11 +263,11 @@ void func_8005A094(Object_2F4* obj2F4) { break; case 39: gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK); - gSPDisplayList(gMasterDisp++, D_800CFAC4[obj2F4->unk_048]); + gSPDisplayList(gMasterDisp++, D_800CFAC4[actor->unk_048]); break; case 40: gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 255); - switch (obj2F4->unk_048) { + switch (actor->unk_048) { case 0: break; case 1: @@ -283,7 +283,7 @@ void func_8005A094(Object_2F4* obj2F4) { break; } if (gCurrentLevel != LEVEL_SOLAR) { - gSPDisplayList(gMasterDisp++, D_E6A810_801B769C[obj2F4->unk_046]); + gSPDisplayList(gMasterDisp++, D_E6A810_801B769C[actor->unk_046]); } else { if (gBosses[0].fwork[3] < 4800.0f) { RCP_SetupDL(&gMasterDisp, 0x1E); @@ -294,58 +294,58 @@ void func_8005A094(Object_2F4* obj2F4) { gDPSetFogColor(gMasterDisp++, 0x10, 0x10, 0x10, gFogAlpha); gSPFogPosition(gMasterDisp++, gFogNear, gFogFar); } - Graphics_SetScaleMtx(obj2F4->scale); - gSPDisplayList(gMasterDisp++, D_800CFB40[obj2F4->unk_046]); + Graphics_SetScaleMtx(actor->scale); + gSPDisplayList(gMasterDisp++, D_800CFB40[actor->unk_046]); } break; case 41: - Graphics_SetScaleMtx(obj2F4->scale); - gSPDisplayList(gMasterDisp++, D_800CFADC[obj2F4->unk_048]); + Graphics_SetScaleMtx(actor->scale); + gSPDisplayList(gMasterDisp++, D_800CFADC[actor->unk_048]); break; case 42: - Graphics_SetScaleMtx(obj2F4->scale); - gSPDisplayList(gMasterDisp++, D_800CFB08[obj2F4->unk_048]); + Graphics_SetScaleMtx(actor->scale); + gSPDisplayList(gMasterDisp++, D_800CFB08[actor->unk_048]); break; case 43: - Graphics_SetScaleMtx(obj2F4->scale); - gSPDisplayList(gMasterDisp++, D_800CFB14[obj2F4->unk_048]); + Graphics_SetScaleMtx(actor->scale); + gSPDisplayList(gMasterDisp++, D_800CFB14[actor->unk_048]); break; case 44: - Graphics_SetScaleMtx(obj2F4->scale); - gSPDisplayList(gMasterDisp++, D_800CFB28[obj2F4->unk_048]); + Graphics_SetScaleMtx(actor->scale); + gSPDisplayList(gMasterDisp++, D_800CFB28[actor->unk_048]); break; case 45: gSPDisplayList(gMasterDisp++, D_40018A0); break; case 46: - if ((obj2F4->unk_048 == 2) || (obj2F4->unk_048 == 3) || (obj2F4->unk_048 == 4)) { + if ((actor->unk_048 == 2) || (actor->unk_048 == 3) || (actor->unk_048 == 4)) { RCP_SetupDL(&gMasterDisp, 0x21); } gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK); - gSPDisplayList(gMasterDisp++, D_E6A810_801B7584[obj2F4->unk_048]); + gSPDisplayList(gMasterDisp++, D_E6A810_801B7584[actor->unk_048]); break; case 47: - gSPDisplayList(gMasterDisp++, D_E6A810_801B7608[obj2F4->unk_048]); + gSPDisplayList(gMasterDisp++, D_E6A810_801B7608[actor->unk_048]); break; case 48: - Graphics_SetScaleMtx(obj2F4->scale); - gSPDisplayList(gMasterDisp++, D_800CFB64[obj2F4->unk_048]); + Graphics_SetScaleMtx(actor->scale); + gSPDisplayList(gMasterDisp++, D_800CFB64[actor->unk_048]); break; case 49: - Graphics_SetScaleMtx(obj2F4->scale); - gSPDisplayList(gMasterDisp++, D_800CFB88[obj2F4->unk_048]); + Graphics_SetScaleMtx(actor->scale); + gSPDisplayList(gMasterDisp++, D_800CFB88[actor->unk_048]); break; case 50: Graphics_SetScaleMtx(0.7f); - if (obj2F4->unk_054 == 1) { + if (actor->iwork[1] == 1) { RCP_SetupDL(&gMasterDisp, 0x1E); gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 0, 0, 255); - } else if (obj2F4->unk_054 == 2) { + } else if (actor->iwork[1] == 2) { RCP_SetupDL(&gMasterDisp, 0x1E); gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 0, 0, 255); Graphics_SetScaleMtx(0.7f); } - switch (obj2F4->unk_050) { + switch (actor->iwork[0]) { case 0: gSPDisplayList(gMasterDisp++, D_90234D0); break; @@ -359,94 +359,94 @@ void func_8005A094(Object_2F4* obj2F4) { gSPDisplayList(gMasterDisp++, D_9010FD0); break; } - if (obj2F4->unk_054 != 0) { + if (actor->iwork[1] != 0) { RCP_SetupDL(&gMasterDisp, 0x1D); Graphics_SetScaleMtx(0.7f); } break; case 51: - Graphics_SetScaleMtx(obj2F4->scale); - gSPDisplayList(gMasterDisp++, D_800CFBA8[obj2F4->unk_048]); + Graphics_SetScaleMtx(actor->scale); + gSPDisplayList(gMasterDisp++, D_800CFBA8[actor->unk_048]); break; case 52: - Graphics_SetScaleMtx(obj2F4->scale); - gSPDisplayList(gMasterDisp++, D_800CFBE4[obj2F4->unk_048]); + Graphics_SetScaleMtx(actor->scale); + gSPDisplayList(gMasterDisp++, D_800CFBE4[actor->unk_048]); break; case 53: - Graphics_SetScaleMtx(obj2F4->scale); - gSPDisplayList(gMasterDisp++, D_800CFC0C[obj2F4->unk_048]); + Graphics_SetScaleMtx(actor->scale); + gSPDisplayList(gMasterDisp++, D_800CFC0C[actor->unk_048]); break; case 54: - Graphics_SetScaleMtx(obj2F4->scale); - gSPDisplayList(gMasterDisp++, D_800CFC40[obj2F4->unk_048]); + Graphics_SetScaleMtx(actor->scale); + gSPDisplayList(gMasterDisp++, D_800CFC40[actor->unk_048]); break; case 55: - Graphics_SetScaleMtx(obj2F4->scale); - gSPDisplayList(gMasterDisp++, D_800CFC50[obj2F4->unk_048]); + Graphics_SetScaleMtx(actor->scale); + gSPDisplayList(gMasterDisp++, D_800CFC50[actor->unk_048]); break; case 56: - Graphics_SetScaleMtx(obj2F4->scale); + Graphics_SetScaleMtx(actor->scale); RCP_SetupDL(&gMasterDisp, 0x29); Matrix_SetGfxMtx(&gMasterDisp); gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 191, 255, 223, 255); - gSPDisplayList(gMasterDisp++, D_800CFC64[obj2F4->unk_048]); + gSPDisplayList(gMasterDisp++, D_800CFC64[actor->unk_048]); break; case 58: - Graphics_SetScaleMtx(obj2F4->scale); + Graphics_SetScaleMtx(actor->scale); Matrix_SetGfxMtx(&gMasterDisp); gSPDisplayList(gMasterDisp++, D_60148B0); break; case 59: - Graphics_SetScaleMtx(obj2F4->scale); + Graphics_SetScaleMtx(actor->scale); Matrix_SetGfxMtx(&gMasterDisp); - gSPDisplayList(gMasterDisp++, D_800CFC7C[obj2F4->unk_048]); + gSPDisplayList(gMasterDisp++, D_800CFC7C[actor->unk_048]); break; case 70: gSPDisplayList(gMasterDisp++, D_10177C0); break; case 57: - gSPDisplayList(gMasterDisp++, D_DF4260_8019A008[obj2F4->unk_048]); + gSPDisplayList(gMasterDisp++, D_DF4260_8019A008[actor->unk_048]); break; default: - if (obj2F4->unk_0B8 > 9) { // part of switch tree somehow? - if (obj2F4->unk_0B8 == 0x24) { + if (actor->unk_0B8 > 9) { // part of switch tree somehow? + if (actor->unk_0B8 == 0x24) { gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK); } - gSPDisplayList(gMasterDisp++, D_800CFA54[obj2F4->unk_0B8 - 10]); + gSPDisplayList(gMasterDisp++, D_800CFA54[actor->unk_0B8 - 10]); } break; } } -void func_8005ADAC(Object_2F4* obj2F4) { +void func_8005ADAC(Actor* actor) { f32 sp5C; f32 temp1; f32 sp54; s32 pad[5]; // fake? seems like a lot of padding - if ((obj2F4->unk_07C != 0) && (obj2F4->obj.status == 2)) { + if ((actor->iwork[11] != 0) && (actor->obj.status == 2)) { temp1 = 652.5f * 0.001f; // 0.65250003f; - if (obj2F4->unk_07C >= 2) { + if (actor->iwork[11] >= 2) { temp1 = 1.3050001f; } - Math_SmoothStepToF(&obj2F4->unk_188, temp1, 0.3f, 5.0f, 0.0f); - sp5C = obj2F4->unk_188; + Math_SmoothStepToF(&actor->fwork[29], temp1, 0.3f, 5.0f, 0.0f); + sp5C = actor->fwork[29]; if (gFrameCount & 1) { sp5C *= 1.111f; } Matrix_Push(&gGfxMatrix); Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -60.0f, 1); Matrix_Scale(gGfxMatrix, sp5C, sp5C * 0.7f, sp5C, 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 * M_DTOR, 1); + Matrix_RotateZ(gGfxMatrix, -actor->obj.rot.z * M_DTOR, 1); + Matrix_RotateX(gGfxMatrix, -actor->obj.rot.x * M_DTOR, 1); + Matrix_RotateY(gGfxMatrix, -actor->obj.rot.y * M_DTOR, 1); Matrix_RotateY(gGfxMatrix, -gPlayer[gPlayerNum].unk_058, 1); Matrix_RotateX(gGfxMatrix, gPlayer[gPlayerNum].unk_05C, 1); Matrix_SetGfxMtx(&gMasterDisp); func_8005465C(gLevelType); Matrix_Pop(&gGfxMatrix); } - sp5C = obj2F4->unk_168; + sp5C = actor->fwork[21]; if ((sp5C != 0.0f) && (gLevelType == LEVELTYPE_PLANET)) { sp54 = 0.0f; if (gFrameCount & 1) { @@ -479,22 +479,22 @@ f32 D_800CFCA0[] = { 1.7f, 1.8f, 2.0f, 3.0f, 3.0f, 3.0f, 3.0f, 3.0f, }; -void func_8005B1E8(Object_2F4* obj2F4, s32 levelType) { +void func_8005B1E8(Actor* actor, s32 levelType) { f32 scale; - if ((obj2F4->unk_07C != 0) && (obj2F4->obj.status == 2)) { + if ((actor->iwork[11] != 0) && (actor->obj.status == 2)) { scale = 0.63f; - if (obj2F4->unk_07C >= 2) { - scale = D_800CFCA0[obj2F4->unk_07C - 2] * 0.45f; + if (actor->iwork[11] >= 2) { + scale = D_800CFCA0[actor->iwork[11] - 2] * 0.45f; } if (gFrameCount & 1) { scale *= 1.2f; } Matrix_Push(&gGfxMatrix); Matrix_Scale(gGfxMatrix, scale, scale, scale, 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 * M_DTOR, 1); + Matrix_RotateZ(gGfxMatrix, -actor->obj.rot.z * M_DTOR, 1); + Matrix_RotateX(gGfxMatrix, -actor->obj.rot.x * M_DTOR, 1); + Matrix_RotateY(gGfxMatrix, -actor->obj.rot.y * M_DTOR, 1); Matrix_RotateY(gGfxMatrix, -gPlayer[gPlayerNum].unk_058, 1); Matrix_SetGfxMtx(&gMasterDisp); func_8005465C(levelType); @@ -502,7 +502,7 @@ void func_8005B1E8(Object_2F4* obj2F4, s32 levelType) { } } -void func_8005B388(Object_2F4* obj2F4) { +void func_8005B388(Actor* actor) { Vec3f sp3C = { 0.0f, 0.0f, 0.0f }; Vec3f sp30; @@ -511,13 +511,13 @@ void func_8005B388(Object_2F4* obj2F4) { (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_0) || (gCurrentLevel == LEVEL_VENOM_ANDROSS) || (gCurrentLevel == LEVEL_VENOM_2) || (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_7)) && (gCurrentLevel != LEVEL_MACBETH) && (gCurrentLevel != LEVEL_TITANIA)) { - if (obj2F4->obj.id == OBJ_2F4_195) { + if (actor->obj.id == OBJ_ACTOR_195) { if (((gCurrentLevel == LEVEL_VENOM_2) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_7) && - (obj2F4->index == 10)) || + (actor->index == 10)) || ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_7) && (gPlayer[0].unk_1D0 >= 100) && - (gCurrentLevel == LEVEL_KATINA) && (obj2F4->index == 1)) || + (gCurrentLevel == LEVEL_KATINA) && (actor->index == 1)) || ((gCurrentLevel == LEVEL_SECTOR_Y) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_0) && - (obj2F4->unk_0B8 == 5))) { + (actor->unk_0B8 == 5))) { D_80161630.rightState = gPlayer[0].wings.rightState; D_80161630.leftState = gPlayer[0].wings.leftState; } else { @@ -526,16 +526,16 @@ void func_8005B388(Object_2F4* obj2F4) { } else { D_80161630.rightState = D_80161630.leftState = WINGSTATE_INTACT; } - D_80161630.unk_04 = obj2F4->unk_150; - D_80161630.unk_0C = obj2F4->unk_154; - D_80161630.unk_08 = obj2F4->unk_17C; - D_80161630.unk_10 = obj2F4->unk_180; + D_80161630.unk_04 = actor->fwork[15]; + D_80161630.unk_0C = actor->fwork[16]; + D_80161630.unk_08 = actor->fwork[26]; + D_80161630.unk_10 = actor->fwork[27]; D_80161630.unk_14 = D_80161630.unk_18 = D_80161630.unk_1C = D_80161630.unk_20 = D_80161630.unk_38 = D_80161630.unk_24 = 0.0f; - D_80161630.unk_28 = obj2F4->unk_158; - D_80161630.unk_2C = obj2F4->unk_088; - D_80161630.unk_30 = obj2F4->unk_164; - D_80161630.unk_34 = obj2F4->unk_160; + D_80161630.unk_28 = actor->fwork[17]; + D_80161630.unk_2C = actor->iwork[14]; + D_80161630.unk_30 = actor->fwork[20]; + D_80161630.unk_34 = actor->fwork[19]; if (gLevelType == LEVELTYPE_SPACE) { D_80161630.unk_04 = D_80161630.unk_08 = D_80161630.unk_0C = D_80161630.unk_10 = 0.0f; } @@ -547,31 +547,31 @@ void func_8005B388(Object_2F4* obj2F4) { } else { gSPDisplayList(gMasterDisp++, D_4007870); } - func_8005ADAC(obj2F4); + func_8005ADAC(actor); } -void func_8005B6A4(Object_2F4* obj2F4) { +void func_8005B6A4(Actor* actor) { Matrix_Scale(gGfxMatrix, 1.0f, 1.0f, 1.0f, 1); Matrix_SetGfxMtx(&gMasterDisp); gSPDisplayList(gMasterDisp++, D_6024B60); } -void func_8005B71C(Object_2F4* obj2F4) { - RCP_SetupDL_29(obj2F4->unk_046, gFogGreen, gFogBlue, gFogAlpha, obj2F4->unk_048, gFogFar); +void func_8005B71C(Actor* actor) { + RCP_SetupDL_29(actor->unk_046, gFogGreen, gFogBlue, gFogAlpha, actor->unk_048, gFogFar); Matrix_Scale(gGfxMatrix, 0.5f, 0.5f, 0.5f, 1); Matrix_SetGfxMtx(&gMasterDisp); gSPDisplayList(gMasterDisp++, D_6018C00); } -void func_8005B7CC(Object_2F4* obj2F4) { - RCP_SetupDL_29(obj2F4->unk_046, gFogGreen, gFogBlue, gFogAlpha, obj2F4->unk_048, gFogFar); +void func_8005B7CC(Actor* actor) { + RCP_SetupDL_29(actor->unk_046, gFogGreen, gFogBlue, gFogAlpha, actor->unk_048, gFogFar); gSPDisplayList(gMasterDisp++, D_6022920); } -void func_8005B848(Object_2F4* obj2F4) { +void func_8005B848(Actor* actor) { f32 scale; - switch (obj2F4->unk_0B4) { + switch (actor->unk_0B4) { case 0: gSPDisplayList(gMasterDisp++, D_1028230); break; @@ -588,19 +588,19 @@ void func_8005B848(Object_2F4* obj2F4) { scale = 1.7f; } Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -60.0f, 1); - obj2F4->unk_07C = 1; + actor->iwork[11] = 1; Matrix_Scale(gGfxMatrix, scale, scale, scale, 1); - func_8005B1E8(obj2F4, 2); + func_8005B1E8(actor, 2); } -void func_8005B9A4(Object_2F4* obj2F4) { +void func_8005B9A4(Actor* actor) { Matrix_Translate(gGfxMatrix, 0.0f, -124.0f, 0.0f, 1); - Animation_GetFrameData(&D_6029528, obj2F4->unk_0B6, obj2F4->unk_18C); - Animation_DrawSkeleton(1, D_6029674, obj2F4->unk_18C, NULL, NULL, obj2F4, &gIdentityMatrix); + Animation_GetFrameData(&D_6029528, actor->unk_0B6, actor->vwork); + Animation_DrawSkeleton(1, D_6029674, actor->vwork, NULL, NULL, actor, &gIdentityMatrix); } -void func_8005BA30(Object_2F4* obj2F4) { - if (obj2F4->timer_0BC != 0) { +void func_8005BA30(Actor* actor) { + if (actor->timer_0BC != 0) { RCP_SetupDL_27(); gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 0, 0, 255); } @@ -629,10 +629,10 @@ void func_8005BAB4(ObjectId objId, s32 index) { } RCP_SetupDL(&gMasterDisp, 0x40); break; - case OBJ_2F4_195: - case OBJ_2F4_198: - case OBJ_2F4_200: - switch (gObjects2F4[index].unk_0B4) { + case OBJ_ACTOR_195: + case OBJ_ACTOR_198: + case OBJ_ACTOR_200: + switch (gActors[index].unk_0B4) { case 3: Matrix_Scale(gGfxMatrix, 2.3f, 0.0f, 2.3f, 1); Matrix_RotateX(gGfxMatrix, M_PI / 2.0f, 1); @@ -643,7 +643,7 @@ void func_8005BAB4(ObjectId objId, s32 index) { RCP_SetupDL(&gMasterDisp, 0x30); gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 0, 0, 0, 255); gDPSetEnvColor(gMasterDisp++, 0, 0, 0, 255); - temp_fv0 = gObjects2F4[index].unk_150 * 3.0f; + temp_fv0 = gActors[index].fwork[15] * 3.0f; Matrix_Scale(gGfxMatrix, temp_fv0, temp_fv0, temp_fv0, 1); Matrix_RotateX(gGfxMatrix, -M_PI / 2.0f, 1); Matrix_SetGfxMtx(&gMasterDisp); @@ -696,52 +696,52 @@ void func_8005BAB4(ObjectId objId, s32 index) { break; } break; - case OBJ_2F4_192: + case OBJ_ACTOR_192: gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 150); - Matrix_Scale(gGfxMatrix, 0.4f, 0.4f, gObjects2F4[index].scale, 1); + Matrix_Scale(gGfxMatrix, 0.4f, 0.4f, gActors[index].scale, 1); Matrix_SetGfxMtx(&gMasterDisp); gSPDisplayList(gMasterDisp++, D_6034B90); break; - case OBJ_2F4_230: + case OBJ_ACTOR_230: RCP_SetupDL_48(); RCP_SetupDL(&gMasterDisp, 0x45); gSPSetGeometryMode(gMasterDisp++, G_CULL_BACK); gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 0, 0, 0, 255); gDPSetEnvColor(gMasterDisp++, 0, 0, 0, 0); - Matrix_RotateX(gGfxMatrix, gObjects2F4[index].unk_114, 1); - Matrix_RotateZ(gGfxMatrix, gObjects2F4[index].unk_11C, 1); - Matrix_Scale(gGfxMatrix, gObjects2F4[index].scale, 1.0f, gObjects2F4[index].scale, 1); + Matrix_RotateX(gGfxMatrix, gActors[index].fwork[0], 1); + Matrix_RotateZ(gGfxMatrix, gActors[index].fwork[2], 1); + Matrix_Scale(gGfxMatrix, gActors[index].scale, 1.0f, gActors[index].scale, 1); Matrix_RotateX(gGfxMatrix, -M_PI / 2.0f, 1); Matrix_SetGfxMtx(&gMasterDisp); gSPDisplayList(gMasterDisp++, D_1024AC0); break; - case OBJ_2F4_229: + case OBJ_ACTOR_229: RCP_SetupDL(&gMasterDisp, 0x44); gSPSetGeometryMode(gMasterDisp++, G_CULL_BACK); gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 0, 0, 0, 255); gDPSetEnvColor(gMasterDisp++, 0, 0, 0, 0); Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, 120.0f, 1); - Matrix_RotateX(gGfxMatrix, gObjects2F4[index].unk_118 * M_DTOR, 1); - Matrix_RotateZ(gGfxMatrix, gObjects2F4[index].unk_11C * M_DTOR, 1); - Matrix_RotateY(gGfxMatrix, gObjects2F4[index].obj.rot.y * M_DTOR, 1); + Matrix_RotateX(gGfxMatrix, gActors[index].fwork[1] * M_DTOR, 1); + Matrix_RotateZ(gGfxMatrix, gActors[index].fwork[2] * M_DTOR, 1); + Matrix_RotateY(gGfxMatrix, gActors[index].obj.rot.y * M_DTOR, 1); Matrix_Scale(gGfxMatrix, 6.0f, 1.0f, 7.5f, 1); Matrix_RotateX(gGfxMatrix, -M_PI / 2.0f, 1); Matrix_SetGfxMtx(&gMasterDisp); gSPDisplayList(gMasterDisp++, D_1024AC0); break; - case OBJ_2F4_231: + case OBJ_ACTOR_231: RCP_SetupDL(&gMasterDisp, 0x45); gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 0, 0, 0, 255); gDPSetEnvColor(gMasterDisp++, 0, 0, 0, 0); - Matrix_RotateX(gGfxMatrix, gObjects2F4[index].unk_118, 1); - Matrix_RotateZ(gGfxMatrix, gObjects2F4[index].unk_11C, 1); + Matrix_RotateX(gGfxMatrix, gActors[index].fwork[1], 1); + Matrix_RotateZ(gGfxMatrix, gActors[index].fwork[2], 1); Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, 0.0f, 1); Matrix_Scale(gGfxMatrix, 1.2f, 1.0f, 1.2f, 1); Matrix_RotateX(gGfxMatrix, -M_PI / 2.0f, 1); Matrix_SetGfxMtx(&gMasterDisp); gSPDisplayList(gMasterDisp++, D_1024AC0); break; - case OBJ_2F4_215: + case OBJ_ACTOR_215: RCP_SetupDL_48(); gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 0, 0, 0, 255); gDPSetEnvColor(gMasterDisp++, 0, 0, 0, 255); @@ -984,54 +984,54 @@ void Object_4C_Draw(Object_4C* obj4C, s32 arg1) { } } -void Object_2F4_Draw2(Object_2F4* obj2F4) { +void Actor_Draw2(Actor* actor) { Vec3f sp34 = { 0.0f, 0.0f, 0.0f }; - if (obj2F4->info.draw != NULL) { - switch (obj2F4->obj.id) { - case OBJ_2F4_194: - func_8006B74C(obj2F4); + if (actor->info.draw != NULL) { + switch (actor->obj.id) { + case OBJ_ACTOR_194: + func_8006B74C(actor); return; - case OBJ_2F4_236: - func_E16C50_80190F08(obj2F4); + case OBJ_ACTOR_236: + func_E16C50_80190F08(actor); return; } - if ((obj2F4->obj.id == OBJ_2F4_200) && (obj2F4->unk_0B4 == 200)) { - func_8006B74C(obj2F4); + if ((actor->obj.id == OBJ_ACTOR_200) && (actor->unk_0B4 == 200)) { + func_8006B74C(actor); } else { - if (obj2F4->info.unk_19 != 0) { - obj2F4->obj.pos.y += D_8017847C; - func_8005D008(&obj2F4->obj, obj2F4->info.drawType); - obj2F4->obj.pos.y -= D_8017847C; - } else if ((obj2F4->obj.id == OBJ_2F4_200) && (obj2F4->unk_0B4 != 31)) { - func_8005D3CC(&obj2F4->obj, obj2F4->unk_2E8.x, obj2F4->unk_2E8.y, obj2F4->unk_2E8.z + obj2F4->unk_0F4.z, - obj2F4->info.drawType); + if (actor->info.unk_19 != 0) { + actor->obj.pos.y += D_8017847C; + func_8005D008(&actor->obj, actor->info.drawType); + actor->obj.pos.y -= D_8017847C; + } else if ((actor->obj.id == OBJ_ACTOR_200) && (actor->unk_0B4 != 31)) { + func_8005D3CC(&actor->obj, actor->vwork[29].x, actor->vwork[29].y, + actor->vwork[29].z + actor->unk_0F4.z, actor->info.drawType); } else { - func_8005D008(&obj2F4->obj, obj2F4->info.drawType); + func_8005D008(&actor->obj, actor->info.drawType); } - if (obj2F4->info.drawType == 0) { - gSPDisplayList(gMasterDisp++, obj2F4->info.dList); - func_8005F1EC(&obj2F4->sfxPos); + if (actor->info.drawType == 0) { + gSPDisplayList(gMasterDisp++, actor->info.dList); + func_8005F1EC(&actor->sfxPos); } else { - obj2F4->info.draw(&obj2F4->obj); - func_8005F1EC(&obj2F4->sfxPos); - if (((obj2F4->obj.id == OBJ_2F4_198) || ((obj2F4->obj.id == OBJ_2F4_203) && (obj2F4->unk_0B6 > 0))) && + actor->info.draw(&actor->obj); + func_8005F1EC(&actor->sfxPos); + if (((actor->obj.id == OBJ_ACTOR_198) || ((actor->obj.id == OBJ_ACTOR_203) && (actor->unk_0B6 > 0))) && (D_80161410 > 0)) { - Matrix_MultVec3f(gGfxMatrix, &sp34, &D_80177E98[obj2F4->unk_0E4]); + Matrix_MultVec3f(gGfxMatrix, &sp34, &D_80177E98[actor->unk_0E4]); } } - if ((obj2F4->timer_0CA[0] != 0) && (D_80161410 > 0)) { - sp34.y += obj2F4->info.unk_1C; + if ((actor->timer_0CA[0] != 0) && (D_80161410 > 0)) { + sp34.y += actor->info.unk_1C; Matrix_MultVec3f(gGfxMatrix, &sp34, &D_80161578[0]); if (D_80161578[0].z > -200.0f) { - obj2F4->timer_0CA[0] = 0; + actor->timer_0CA[0] = 0; } } } } } -void Object_2F4_Draw1(Object_2F4* obj2F4) { +void Actor_Draw1(Actor* actor) { s32 var_v1; Vec3f sp50 = { 0.0f, 0.0f, 0.0f }; f32 var_fa1; @@ -1040,40 +1040,40 @@ void Object_2F4_Draw1(Object_2F4* obj2F4) { f32 var_fv1; D_801615EC = 0; - if (obj2F4->info.drawType == 2) { + if (actor->info.drawType == 2) { Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, D_80177D20, 1); - Matrix_Translate(gCalcMatrix, obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, 0); + Matrix_Translate(gCalcMatrix, actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 0); Matrix_Push(&gGfxMatrix); Matrix_Mult(gGfxMatrix, gCalcMatrix, 1); Matrix_MultVec3f(gGfxMatrix, &sp50, &D_801615E0); Matrix_Pop(&gGfxMatrix); var_fv0 = 0.0f; var_fv1 = -12000.0f; - if ((obj2F4->obj.id == OBJ_2F4_197) && (obj2F4->unk_0E4 >= 100)) { + if ((actor->obj.id == OBJ_ACTOR_197) && (actor->unk_0E4 >= 100)) { var_fv0 = 1000.0f; var_fv1 = -25000.0f; } if ((var_fv0 > D_801615E0.z) && (D_801615E0.z > var_fv1)) { if (fabsf(D_801615E0.x) < (fabsf(D_801615E0.z * 0.5f) + 500.0f)) { if (fabsf(D_801615E0.y) < (fabsf(D_801615E0.z * 0.5f) + 500.0f)) { - Matrix_RotateY(gCalcMatrix, obj2F4->obj.rot.y * M_DTOR, 1); - Matrix_RotateX(gCalcMatrix, obj2F4->obj.rot.x * M_DTOR, 1); - Matrix_RotateZ(gCalcMatrix, obj2F4->obj.rot.z * M_DTOR, 1); - obj2F4->info.draw(&obj2F4->obj); + Matrix_RotateY(gCalcMatrix, actor->obj.rot.y * M_DTOR, 1); + Matrix_RotateX(gCalcMatrix, actor->obj.rot.x * M_DTOR, 1); + Matrix_RotateZ(gCalcMatrix, actor->obj.rot.z * M_DTOR, 1); + actor->info.draw(&actor->obj); D_801615EC = 1; - if ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_3) && (obj2F4->obj.id == OBJ_2F4_197) && - (obj2F4->unk_0E4 == 200)) { + if ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_3) && (actor->obj.id == OBJ_ACTOR_197) && + (actor->unk_0E4 == 200)) { D_80177E98[0] = D_801615E0; } } } } } else { - Matrix_Translate(gGfxMatrix, obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, 1); + Matrix_Translate(gGfxMatrix, actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 1); Matrix_MultVec3f(gGfxMatrix, &sp50, &D_801615E0); if ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_2) || (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_0) || - ((obj2F4->obj.id == OBJ_2F4_197) && (obj2F4->unk_0E4 >= 100)) || - ((obj2F4->obj.id == OBJ_2F4_195) && (obj2F4->info.bonus != 0))) { + ((actor->obj.id == OBJ_ACTOR_197) && (actor->unk_0E4 >= 100)) || + ((actor->obj.id == OBJ_ACTOR_195) && (actor->info.bonus != 0))) { var_ft5 = var_fv0 = 3000.0f; var_fv1 = -29000.0f; var_fa1 = 0.7f; @@ -1086,18 +1086,18 @@ void Object_2F4_Draw1(Object_2F4* obj2F4) { if ((var_fv0 > D_801615E0.z) && (D_801615E0.z > var_fv1)) { if (fabsf(D_801615E0.x) < (fabsf(D_801615E0.z * var_fa1) + var_ft5)) { if (fabsf(D_801615E0.y) < (fabsf(D_801615E0.z * var_fa1) + var_ft5)) { - if (obj2F4->info.draw != NULL) { - Matrix_RotateY(gGfxMatrix, obj2F4->obj.rot.y * M_DTOR, 1); - Matrix_RotateX(gGfxMatrix, obj2F4->obj.rot.x * M_DTOR, 1); - Matrix_RotateZ(gGfxMatrix, obj2F4->obj.rot.z * M_DTOR, 1); + if (actor->info.draw != NULL) { + Matrix_RotateY(gGfxMatrix, actor->obj.rot.y * M_DTOR, 1); + Matrix_RotateX(gGfxMatrix, actor->obj.rot.x * M_DTOR, 1); + Matrix_RotateZ(gGfxMatrix, actor->obj.rot.z * M_DTOR, 1); Matrix_SetGfxMtx(&gMasterDisp); - obj2F4->info.draw(&obj2F4->obj); + actor->info.draw(&actor->obj); D_801615EC = 1; if ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_3) && - (((obj2F4->obj.id == OBJ_2F4_197) && - ((obj2F4->unk_0E4 < 4) || (obj2F4->unk_0E4 == 8) || (obj2F4->unk_0E4 == 9))) || - (obj2F4->obj.id == OBJ_2F4_198))) { - D_80177E98[obj2F4->unk_0E4] = D_801615E0; + (((actor->obj.id == OBJ_ACTOR_197) && + ((actor->unk_0E4 < 4) || (actor->unk_0E4 == 8) || (actor->unk_0E4 == 9))) || + (actor->obj.id == OBJ_ACTOR_198))) { + D_80177E98[actor->unk_0E4] = D_801615E0; } } } @@ -1105,22 +1105,22 @@ void Object_2F4_Draw1(Object_2F4* obj2F4) { } } if (D_801615EC == 0) { - obj2F4->timer_0CA[gPlayerNum] = 0; - if ((obj2F4->obj.id == OBJ_2F4_189) || (obj2F4->obj.id == OBJ_2F4_286)) { - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); + actor->timer_0CA[gPlayerNum] = 0; + if ((actor->obj.id == OBJ_ACTOR_189) || (actor->obj.id == OBJ_ACTOR_286)) { + Object_Kill(&actor->obj, &actor->sfxPos); } } for (var_v1 = 0; var_v1 < gCamCount; var_v1++) { - if (obj2F4->timer_0CA[var_v1] != 0) { + if (actor->timer_0CA[var_v1] != 0) { D_80161578[var_v1] = D_801615E0; - D_80161578[var_v1].y += obj2F4->info.unk_1C; + D_80161578[var_v1].y += actor->info.unk_1C; if ((var_v1 == gPlayerNum) && (D_80161578[var_v1].z > -300.0f)) { - obj2F4->timer_0CA[var_v1] = 0; + actor->timer_0CA[var_v1] = 0; } } } - func_8005F290(&obj2F4->sfxPos, &D_801615E0); - obj2F4->unk_0B0 = D_801615EC; + func_8005F290(&actor->sfxPos, &D_801615E0); + actor->iwork[24] = D_801615EC; } void Boss_Draw(Boss* boss, s32 arg1) { @@ -1274,29 +1274,29 @@ void Item_Draw(Item* item, s32 arg1) { } } -void func_8005EA24(Object_2F4* obj2F4) { - Matrix_Translate(gGfxMatrix, obj2F4->obj.pos.x, obj2F4->unk_178 + 3.0f, obj2F4->obj.pos.z, 1); +void func_8005EA24(Actor* actor) { + Matrix_Translate(gGfxMatrix, actor->obj.pos.x, actor->fwork[25] + 3.0f, actor->obj.pos.z, 1); if (gCurrentLevel == LEVEL_FORTUNA) { - Matrix_RotateY(gGfxMatrix, obj2F4->unk_180, 1); - Matrix_RotateX(gGfxMatrix, obj2F4->unk_17C, 1); - Matrix_RotateZ(gGfxMatrix, obj2F4->unk_184, 1); - Matrix_RotateY(gGfxMatrix, -obj2F4->unk_180, 1); + Matrix_RotateY(gGfxMatrix, actor->fwork[27], 1); + Matrix_RotateX(gGfxMatrix, actor->fwork[26], 1); + Matrix_RotateZ(gGfxMatrix, actor->fwork[28], 1); + Matrix_RotateY(gGfxMatrix, -actor->fwork[27], 1); } Matrix_Scale(gGfxMatrix, 1.4f, 0.0f, 1.4f, 1); - Matrix_RotateY(gGfxMatrix, (obj2F4->obj.rot.y + 180.0f) * M_DTOR, 1); - Matrix_RotateZ(gGfxMatrix, obj2F4->obj.rot.z * M_DTOR, 1); + Matrix_RotateY(gGfxMatrix, (actor->obj.rot.y + 180.0f) * M_DTOR, 1); + Matrix_RotateZ(gGfxMatrix, actor->obj.rot.z * M_DTOR, 1); Matrix_SetGfxMtx(&gMasterDisp); - if (obj2F4->unk_0E4 < 4) { + if (actor->unk_0E4 < 4) { Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, 30.0f, 1); Matrix_SetGfxMtx(&gMasterDisp); gSPDisplayList(gMasterDisp++, D_1032780); } else if (gCurrentLevel == LEVEL_KATINA) { - if ((obj2F4->unk_0B6 == 1) || (obj2F4->unk_0B6 == 2)) { + if ((actor->unk_0B6 == 1) || (actor->unk_0B6 == 2)) { gSPDisplayList(gMasterDisp++, D_600D730); } else { gSPDisplayList(gMasterDisp++, D_600DBC0); } - } else if ((obj2F4->unk_0E4 < 8) || (gCurrentLevel != LEVEL_FORTUNA)) { + } else if ((actor->unk_0E4 < 8) || (gCurrentLevel != LEVEL_FORTUNA)) { gSPDisplayList(gMasterDisp++, D_F014310); } else if (gCurrentLevel == LEVEL_FORTUNA) { gSPDisplayList(gMasterDisp++, D_6009F90); @@ -1308,17 +1308,17 @@ void func_8005EA24(Object_2F4* obj2F4) { void func_8005ECD8(s32 index, Object* obj) { RCP_SetupDL(&gMasterDisp, 0x42); gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 0, 0, 0, 180); - if (obj->id == OBJ_2F4_197) { - func_8005EA24(&gObjects2F4[index]); + if (obj->id == OBJ_ACTOR_197) { + func_8005EA24(&gActors[index]); } else { switch (obj->id) { - case OBJ_2F4_230: - Matrix_Translate(gGfxMatrix, obj->pos.x, D_80177940 + 2.0f + gObjects2F4[index].unk_118, + case OBJ_ACTOR_230: + Matrix_Translate(gGfxMatrix, obj->pos.x, D_80177940 + 2.0f + gActors[index].fwork[1], obj->pos.z + D_80177D20, 1); break; - case OBJ_2F4_229: - case OBJ_2F4_231: - Matrix_Translate(gGfxMatrix, obj->pos.x, D_80177940 + 2.0f + gObjects2F4[index].unk_114, + case OBJ_ACTOR_229: + case OBJ_ACTOR_231: + Matrix_Translate(gGfxMatrix, obj->pos.x, D_80177940 + 2.0f + gActors[index].fwork[0], obj->pos.z + D_80177D20, 1); break; case OBJ_BOSS_316: @@ -1328,12 +1328,13 @@ void func_8005ECD8(s32 index, Object* obj) { Matrix_Translate(gGfxMatrix, obj->pos.x, D_80177940 + 2.0f, obj->pos.z + D_80177D20, 1); break; } - if ((D_801784AC != 4) || (obj->id == OBJ_2F4_200) || (obj->id == OBJ_2F4_195) || (obj->id == OBJ_2F4_198)) { + if ((D_801784AC != 4) || (obj->id == OBJ_ACTOR_200) || (obj->id == OBJ_ACTOR_195) || + (obj->id == OBJ_ACTOR_198)) { Matrix_Scale(gGfxMatrix, 1.0f, 0.0f, 1.0f, 1); Matrix_RotateY(gGfxMatrix, obj->rot.y * M_DTOR, 1); } - if ((obj->id < OBJ_BOSS_292) && (obj->id != OBJ_2F4_230) && (obj->id != OBJ_2F4_229) && - (obj->id != OBJ_2F4_231)) { + if ((obj->id < OBJ_BOSS_292) && (obj->id != OBJ_ACTOR_230) && (obj->id != OBJ_ACTOR_229) && + (obj->id != OBJ_ACTOR_231)) { Matrix_RotateX(gGfxMatrix, obj->rot.x * M_DTOR, 1); Matrix_RotateZ(gGfxMatrix, obj->rot.z * M_DTOR, 1); } @@ -1536,7 +1537,7 @@ void Object_DrawAll(s32 arg0) { Vec3f spAC; s32 i; s32 pad[5]; // probably separate iterators for each loop - Object_2F4* obj2F4; + Actor* actor; Boss* boss; Object_4C* obj4C; Object_58* obj58; @@ -1609,9 +1610,9 @@ void Object_DrawAll(s32 arg0) { Matrix_Pop(&gGfxMatrix); } } - for (i = 0, obj2F4 = gObjects2F4; i < ARRAY_COUNT(gObjects2F4); i++, obj2F4++) { - if (obj2F4->obj.status >= 2) { - if (!(obj2F4->timer_0C6 & 1)) { + for (i = 0, actor = gActors; i < ARRAY_COUNT(gActors); i++, actor++) { + if (actor->obj.status >= 2) { + if (!(actor->timer_0C6 & 1)) { if (gCurrentLevel == LEVEL_UNK_15) { RCP_SetupDL_23(); } else { @@ -1619,7 +1620,7 @@ void Object_DrawAll(s32 arg0) { } } else { RCP_SetupDL_27(); - if (obj2F4->scale >= 0.0f) { + if (actor->scale >= 0.0f) { gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 0, 0, 255); } else { gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 64, 64, 255, 255); @@ -1631,25 +1632,25 @@ void Object_DrawAll(s32 arg0) { Matrix_Push(&gGfxMatrix); if ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_2) || (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_7) || (gCurrentLevel == LEVEL_AQUAS)) { - func_8005F670(&obj2F4->obj.pos); + func_8005F670(&actor->obj.pos); } func_800597C0(arg0); - Object_2F4_Draw2(obj2F4); + Actor_Draw2(actor); Matrix_Pop(&gGfxMatrix); - if (obj2F4->unk_0C9 != 0) { + if (actor->unk_0C9 != 0) { Matrix_Push(&gGfxMatrix); - func_8005ECD8(i, &obj2F4->obj); + func_8005ECD8(i, &actor->obj); Matrix_Pop(&gGfxMatrix); } break; case LEVELMODE_ALL_RANGE: Matrix_Push(&gGfxMatrix); - Object_2F4_Draw1(obj2F4); + Actor_Draw1(actor); Matrix_Pop(&gGfxMatrix); - if ((obj2F4->unk_0C9 != 0) && (D_801615EC != 0) && + if ((actor->unk_0C9 != 0) && (D_801615EC != 0) && ((D_801615E0.z > -4000.0f) || (gCurrentLevel != LEVEL_KATINA))) { Matrix_Push(&gGfxMatrix); - func_8005ECD8(i, &obj2F4->obj); + func_8005ECD8(i, &actor->obj); Matrix_Pop(&gGfxMatrix); } break; diff --git a/src/main/fox_effect.c b/src/main/fox_effect.c index 83c344da..21ff28c6 100644 --- a/src/main/fox_effect.c +++ b/src/main/fox_effect.c @@ -532,9 +532,9 @@ void func_80078D60(Effect* effect, f32 posX, f32 posY, f32 posZ, f32 scale2) { effect->scale2 = scale2; if (scale2 == 3.1f) { - effect->vel.x = gObjects2F4[8].vel.x; - effect->vel.y = gObjects2F4[8].vel.y; - effect->vel.z = gObjects2F4[8].vel.z; + effect->vel.x = gActors[8].vel.x; + effect->vel.y = gActors[8].vel.y; + effect->vel.z = gActors[8].vel.z; } if (scale2 != 30.0f) { effect->unk_4E = 1; @@ -2842,22 +2842,22 @@ void func_8007FBE0(Effect* effect) { bool func_8007FD84(Effect* effect) { s32 i; - Object_2F4* obj2F4; + Actor* actor; for (i = 1; i < ARRAY_COUNT(D_800CFF80); i++) { - obj2F4 = &gObjects2F4[D_800CFF80[i]]; - if (obj2F4->obj.status == 2) { - if ((obj2F4->unk_080 > 0) && (obj2F4->unk_080 < 6) && - (fabsf(obj2F4->obj.pos.z - effect->obj.pos.z) < 100.0f) && - (fabsf(obj2F4->obj.pos.x - effect->obj.pos.x) < 100.0f) && - (fabsf(obj2F4->obj.pos.y - effect->obj.pos.y) < 100.0f)) { - obj2F4->unk_0D0 = 1; - obj2F4->unk_0D2 = 0; - obj2F4->unk_0D6 = 10; + actor = &gActors[D_800CFF80[i]]; + if (actor->obj.status == 2) { + if ((actor->iwork[12] > 0) && (actor->iwork[12] < 6) && + (fabsf(actor->obj.pos.z - effect->obj.pos.z) < 100.0f) && + (fabsf(actor->obj.pos.x - effect->obj.pos.x) < 100.0f) && + (fabsf(actor->obj.pos.y - effect->obj.pos.y) < 100.0f)) { + actor->unk_0D0 = 1; + actor->unk_0D2 = 0; + actor->unk_0D6 = 10; if (effect->obj.id == OBJ_EFFECT_354) { - obj2F4->unk_0D6 = 30; + actor->unk_0D6 = 30; } - obj2F4->unk_0D4 = 100; + actor->unk_0D4 = 100; return true; } } diff --git a/src/main/fox_enmy.c b/src/main/fox_enmy.c index 027bb5f7..e0a0ed5e 100644 --- a/src/main/fox_enmy.c +++ b/src/main/fox_enmy.c @@ -138,14 +138,14 @@ void Object_4C_Initialize(Object_4C* obj4C) { } } -void Object_2F4_Initialize(Object_2F4* obj2F4) { +void Actor_Initialize(Actor* actor) { s32 i; - u8* ptr = (u8*) obj2F4; + u8* ptr = (u8*) actor; - for (i = 0; i < sizeof(Object_2F4); i++, ptr++) { + for (i = 0; i < sizeof(Actor); i++, ptr++) { *ptr = 0; } - obj2F4->scale = 1.0f; + actor->scale = 1.0f; } void Boss_Initialize(Boss* boss) { @@ -205,18 +205,18 @@ void Object_4C_Load(Object_4C* obj4C, ObjectInit* objInit) { Object_SetInfo(&obj4C->info, obj4C->obj.id); } -void Object_2F4_Load(Object_2F4* obj2F4, ObjectInit* objInit) { - Object_2F4_Initialize(obj2F4); - obj2F4->obj.status = 1; - obj2F4->obj.pos.z = -objInit->zPos1; - obj2F4->obj.pos.z += -3000.0f + objInit->zPos2; - obj2F4->obj.pos.x = objInit->xPos; - obj2F4->obj.pos.y = objInit->yPos; - obj2F4->obj.rot.y = objInit->unk_C; - obj2F4->obj.rot.x = objInit->unk_A; - obj2F4->obj.rot.z = objInit->unk_E; - obj2F4->obj.id = objInit->id; - Object_SetInfo(&obj2F4->info, obj2F4->obj.id); +void Actor_Load(Actor* actor, ObjectInit* objInit) { + Actor_Initialize(actor); + actor->obj.status = 1; + actor->obj.pos.z = -objInit->zPos1; + actor->obj.pos.z += -3000.0f + objInit->zPos2; + actor->obj.pos.x = objInit->xPos; + actor->obj.pos.y = objInit->yPos; + actor->obj.rot.y = objInit->unk_C; + actor->obj.rot.x = objInit->unk_A; + actor->obj.rot.z = objInit->unk_E; + actor->obj.id = objInit->id; + Object_SetInfo(&actor->info, actor->obj.id); } void Boss_Load(Boss* boss, ObjectInit* objInit) { @@ -342,57 +342,57 @@ void func_80061CD0(void) { } } -void func_80061E48(Object_2F4* obj2F4, f32 xPos, f32 yPos, f32 zPos) { - Object_2F4_Initialize(obj2F4); - obj2F4->obj.status = 1; - obj2F4->obj.id = OBJ_2F4_181; +void func_80061E48(Actor* actor, f32 xPos, f32 yPos, f32 zPos) { + Actor_Initialize(actor); + actor->obj.status = 1; + actor->obj.id = OBJ_ACTOR_181; if (Rand_ZeroOne() < 0.5f) { - obj2F4->obj.id = OBJ_2F4_186; + actor->obj.id = OBJ_ACTOR_186; } if (Rand_ZeroOne() < 0.5f) { - obj2F4->obj.id = OBJ_2F4_182; + actor->obj.id = OBJ_ACTOR_182; } - obj2F4->obj.pos.x = xPos; - obj2F4->obj.pos.y = yPos; - obj2F4->obj.pos.z = zPos; - obj2F4->vel.z = 10.0f; - Object_SetInfo(&obj2F4->info, obj2F4->obj.id); + actor->obj.pos.x = xPos; + actor->obj.pos.y = yPos; + actor->obj.pos.z = zPos; + actor->vel.z = 10.0f; + Object_SetInfo(&actor->info, actor->obj.id); } -void func_80061F0C(Object_2F4* obj2F4, ObjectInit* objInit, s32 arg2) { +void func_80061F0C(Actor* actor, ObjectInit* objInit, s32 arg2) { Vec3f sp24; - Object_2F4_Initialize(obj2F4); - obj2F4->obj.status = 2; - obj2F4->index = arg2; - obj2F4->obj.pos.z = -objInit->zPos1; - obj2F4->obj.pos.z += -3000.0f + objInit->zPos2; - obj2F4->obj.pos.x = objInit->xPos; - obj2F4->obj.pos.y = objInit->yPos; - obj2F4->obj.rot.y = obj2F4->unk_0F4.y = objInit->unk_C; - obj2F4->obj.rot.x = obj2F4->unk_0F4.x = objInit->unk_A; - obj2F4->unk_0F4.z = objInit->unk_E; - obj2F4->obj.id = OBJ_2F4_200; - obj2F4->timer_0C2 = 10; - obj2F4->unk_0B4 = 4095; - obj2F4->unk_0E4 = objInit->id - OBJ_UNK_1000; + Actor_Initialize(actor); + actor->obj.status = 2; + actor->index = arg2; + actor->obj.pos.z = -objInit->zPos1; + actor->obj.pos.z += -3000.0f + objInit->zPos2; + actor->obj.pos.x = objInit->xPos; + actor->obj.pos.y = objInit->yPos; + actor->obj.rot.y = actor->unk_0F4.y = objInit->unk_C; + actor->obj.rot.x = actor->unk_0F4.x = objInit->unk_A; + actor->unk_0F4.z = objInit->unk_E; + actor->obj.id = OBJ_ACTOR_200; + actor->timer_0C2 = 10; + actor->unk_0B4 = 4095; + actor->unk_0E4 = objInit->id - OBJ_UNK_1000; - Object_SetInfo(&obj2F4->info, obj2F4->obj.id); - obj2F4->info.unk_10 = 3000.0f; - obj2F4->unk_178 = 20000.0f; - obj2F4->unk_054 = D_80177E70; - obj2F4->unk_078 = gObjects2F4[D_80177E70].unk_0E4; - obj2F4->unk_16C = D_80161A54; + Object_SetInfo(&actor->info, actor->obj.id); + actor->info.unk_10 = 3000.0f; + actor->fwork[25] = 20000.0f; + actor->iwork[1] = D_80177E70; + actor->iwork[10] = gActors[D_80177E70].unk_0E4; + actor->fwork[22] = D_80161A54; Matrix_RotateZ(gCalcMatrix, -D_80177E88.z * M_DTOR, 0); Matrix_RotateX(gCalcMatrix, -D_80177E88.x * M_DTOR, 1); Matrix_RotateY(gCalcMatrix, -D_80177E88.y * M_DTOR, 1); - sp24.x = obj2F4->obj.pos.x - D_80177F10.x; - sp24.y = obj2F4->obj.pos.y - D_80177F10.y; - sp24.z = obj2F4->obj.pos.z - D_80177F10.z; - Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp24, &obj2F4->unk_2DC); - obj2F4->unk_074 = D_80177E78; + sp24.x = actor->obj.pos.x - D_80177F10.x; + sp24.y = actor->obj.pos.y - D_80177F10.y; + sp24.z = actor->obj.pos.z - D_80177F10.z; + Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp24, &actor->vwork[28]); + actor->iwork[9] = D_80177E78; D_80177E70 = arg2; - Object_2F4_Update(obj2F4); + Actor_Update(actor); } void Object_Load(ObjectInit* objInit, f32 arg1, f32 arg2, f32 arg3, f32 arg4) { @@ -408,7 +408,7 @@ void Object_Load(ObjectInit* objInit, f32 arg1, f32 arg2, f32 arg3, f32 arg4) { } } } - if ((objInit->id >= OBJ_4C_161) && (objInit->id < OBJ_2F4_176)) { + if ((objInit->id >= OBJ_4C_161) && (objInit->id < OBJ_ACTOR_176)) { for (i = 0; i < ARRAY_COUNT(gObjects4C); i++) { if (gObjects4C[i].obj.status == 0) { Object_4C_Load(&gObjects4C[i], objInit); @@ -416,25 +416,25 @@ void Object_Load(ObjectInit* objInit, f32 arg1, f32 arg2, f32 arg3, f32 arg4) { } } } - 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) { - Object_2F4_Load(&gObjects2F4[i], objInit); + if ((objInit->id >= OBJ_ACTOR_176) && (objInit->id < OBJ_BOSS_292)) { + if ((objInit->id == OBJ_ACTOR_267) || (objInit->id == OBJ_ACTOR_254)) { + for (i = ARRAY_COUNT(gActors) - 1; i >= 0; i--) { + if (gActors[i].obj.status == 0) { + Actor_Load(&gActors[i], objInit); break; } } - } else if (objInit->id == OBJ_2F4_198) { + } else if (objInit->id == OBJ_ACTOR_198) { for (i = 0; i < 3; i++) { - if (gObjects2F4[i].obj.status == 0) { - Object_2F4_Load(&gObjects2F4[i], objInit); + if (gActors[i].obj.status == 0) { + Actor_Load(&gActors[i], objInit); break; } } } else { - for (i = 4; i < ARRAY_COUNT(gObjects2F4); i++) { - if (gObjects2F4[i].obj.status == 0) { - Object_2F4_Load(&gObjects2F4[i], objInit); + for (i = 4; i < ARRAY_COUNT(gActors); i++) { + if (gActors[i].obj.status == 0) { + Actor_Load(&gActors[i], objInit); break; } } @@ -483,9 +483,9 @@ void Object_Load(ObjectInit* objInit, f32 arg1, f32 arg2, f32 arg3, f32 arg4) { } } if (objInit->id > OBJ_UNK_406) { - for (i = 0; i < ARRAY_COUNT(gObjects2F4); i++) { - if (gObjects2F4[i].obj.status == 0) { - func_80061F0C(&gObjects2F4[i], objInit, i); + for (i = 0; i < ARRAY_COUNT(gActors); i++) { + if (gActors[i].obj.status == 0) { + func_80061F0C(&gActors[i], objInit, i); break; } } @@ -724,7 +724,7 @@ bool func_8006326C(Vec3f* arg0, Vec3f* arg1, ObjectId objId, Object* obj) { sp74.x = arg0->x - obj->pos.x; sp74.z = arg0->z - obj->pos.z; - if (((fabsf(sp74.x) < 1100.0f) && (fabsf(sp74.z) < 1100.0f)) || (objId == OBJ_2F4_180)) { + if (((fabsf(sp74.x) < 1100.0f) && (fabsf(sp74.z) < 1100.0f)) || (objId == OBJ_ACTOR_180)) { sp74.y = arg0->y - obj->pos.y; Matrix_RotateY(gCalcMatrix, -obj->rot.y * M_DTOR, 0); Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp74, &sp68); @@ -734,7 +734,7 @@ 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_BOSS_308) || + if ((objId == OBJ_ACTOR_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_BOSS_312) { @@ -788,7 +788,7 @@ s32 func_8006351C(s32 index, Vec3f* pos, Vec3f* arg2, s32 arg3) { Object_80* obj80; Object_4C* obj4C; Boss* boss; - Object_2F4* obj2F4; + Actor* actor; Vec3f temp; s32 i; @@ -873,38 +873,38 @@ s32 func_8006351C(s32 index, Vec3f* pos, Vec3f* arg2, s32 arg3) { } } } - obj2F4 = gObjects2F4; - for (i = 0; i < ARRAY_COUNT(gObjects2F4); i++, obj2F4++) { - if ((obj2F4->obj.status >= 2) && (fabsf(pos->x - obj2F4->obj.pos.x) < 1000.0f) && - (fabsf(pos->z - obj2F4->obj.pos.z) < 1500.0f) && (index != i) && (obj2F4->info.unk_16 != 2) && - ((obj2F4->obj.id != OBJ_2F4_197) || (obj2F4->unk_0E4 >= 4)) && (obj2F4->timer_0C2 == 0)) { - if (obj2F4->obj.id == OBJ_2F4_180) { - if (func_8006326C(pos, arg2, obj2F4->obj.id, &obj2F4->obj)) { + actor = gActors; + for (i = 0; i < ARRAY_COUNT(gActors); i++, actor++) { + if ((actor->obj.status >= 2) && (fabsf(pos->x - actor->obj.pos.x) < 1000.0f) && + (fabsf(pos->z - actor->obj.pos.z) < 1500.0f) && (index != i) && (actor->info.unk_16 != 2) && + ((actor->obj.id != OBJ_ACTOR_197) || (actor->unk_0E4 >= 4)) && (actor->timer_0C2 == 0)) { + if (actor->obj.id == OBJ_ACTOR_180) { + if (func_8006326C(pos, arg2, actor->obj.id, &actor->obj)) { return 2; } - } else if (obj2F4->scale < 0.0f) { - if (func_80062DBC(pos, obj2F4->info.hitbox, &obj2F4->obj, obj2F4->unk_2E8.x, obj2F4->unk_2E8.y, - obj2F4->unk_2E8.z + obj2F4->unk_0F4.z)) { - obj2F4->unk_0D0 = 1; - obj2F4->unk_0D6 = 10; - obj2F4->unk_0D2 = -1; - obj2F4->unk_0D8.x = pos->x; - obj2F4->unk_0D8.y = pos->y; - obj2F4->unk_0D8.z = pos->z; + } else if (actor->scale < 0.0f) { + if (func_80062DBC(pos, actor->info.hitbox, &actor->obj, actor->vwork[29].x, actor->vwork[29].y, + actor->vwork[29].z + actor->unk_0F4.z)) { + actor->unk_0D0 = 1; + actor->unk_0D6 = 10; + actor->unk_0D2 = -1; + actor->unk_0D8.x = pos->x; + actor->unk_0D8.y = pos->y; + actor->unk_0D8.z = pos->z; return 2; } } else if ((arg3 != 2) && (arg3 != 3)) { - if (func_800631A8(pos, obj2F4->info.hitbox, &obj2F4->obj.pos)) { - obj2F4->unk_0D0 = 1; - obj2F4->unk_0D6 = 10; - obj2F4->unk_0D2 = -1; - if (((obj2F4->obj.id != OBJ_2F4_200) || (obj2F4->unk_080 == 0)) && - ((obj2F4->obj.id != OBJ_2F4_197) || ((obj2F4->unk_0E4 >= 10) && (obj2F4->unk_0E4 < 100)))) { - obj2F4->unk_0CE = 0; + if (func_800631A8(pos, actor->info.hitbox, &actor->obj.pos)) { + actor->unk_0D0 = 1; + actor->unk_0D6 = 10; + actor->unk_0D2 = -1; + if (((actor->obj.id != OBJ_ACTOR_200) || (actor->iwork[12] == 0)) && + ((actor->obj.id != OBJ_ACTOR_197) || ((actor->unk_0E4 >= 10) && (actor->unk_0E4 < 100)))) { + actor->unk_0CE = 0; } - obj2F4->unk_0D8.x = pos->x; - obj2F4->unk_0D8.y = pos->y; - obj2F4->unk_0D8.z = pos->z; + actor->unk_0D8.x = pos->x; + actor->unk_0D8.y = pos->y; + actor->unk_0D8.z = pos->z; return 1; } } @@ -917,16 +917,16 @@ s32 func_8006351C(s32 index, Vec3f* pos, Vec3f* arg2, s32 arg3) { void func_80063CAC(Object_80* obj80) { s32 i; - for (i = 0; i < ARRAY_COUNT(gObjects2F4); i++) { - if (gObjects2F4[i].obj.status == 0) { - Object_2F4_Initialize(&gObjects2F4[i]); - gObjects2F4[i].obj.status = 1; - gObjects2F4[i].obj.id = OBJ_2F4_193; - gObjects2F4[i].obj.pos.x = obj80->obj.pos.x; - gObjects2F4[i].obj.pos.y = obj80->obj.pos.y; - gObjects2F4[i].obj.pos.z = obj80->obj.pos.z; - gObjects2F4[i].obj.rot.y = Rand_ZeroOne() * 360.0f; - Object_SetInfo(&gObjects2F4[i].info, gObjects2F4[i].obj.id); + for (i = 0; i < ARRAY_COUNT(gActors); i++) { + if (gActors[i].obj.status == 0) { + Actor_Initialize(&gActors[i]); + gActors[i].obj.status = 1; + gActors[i].obj.id = OBJ_ACTOR_193; + gActors[i].obj.pos.x = obj80->obj.pos.x; + gActors[i].obj.pos.y = obj80->obj.pos.y; + gActors[i].obj.pos.z = obj80->obj.pos.z; + gActors[i].obj.rot.y = Rand_ZeroOne() * 360.0f; + Object_SetInfo(&gActors[i].info, gActors[i].obj.id); break; } } @@ -1001,20 +1001,20 @@ void Object_Init(s32 index, ObjectId objId) { case OBJ_4C_170: func_8007A6F0(&gObjects4C[index].obj.pos, 0x11000055); break; - case OBJ_2F4_234: - Audio_PlaySfx(0x11030010, &gObjects2F4[index].sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + case OBJ_ACTOR_234: + Audio_PlaySfx(0x11030010, &gActors[index].sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); break; case OBJ_80_54: Audio_PlaySfx(0x11000000, &gObjects80[index].sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); break; - case OBJ_2F4_198: - func_80092D48(&gObjects2F4[index]); + case OBJ_ACTOR_198: + func_80092D48(&gActors[index]); break; - case OBJ_2F4_235: - gObjects2F4[index].unk_13C = fabsf(Math_ModF(gObjects2F4[index].obj.pos.x, 100.0f)); + case OBJ_ACTOR_235: + gActors[index].fwork[10] = fabsf(Math_ModF(gActors[index].obj.pos.x, 100.0f)); break; - case OBJ_2F4_247: - func_E16C50_8019D060(&gObjects2F4[index]); + case OBJ_ACTOR_247: + func_E16C50_8019D060(&gActors[index]); break; case OBJ_EFFECT_368: if (gCurrentLevel == LEVEL_TITANIA) { @@ -1095,75 +1095,75 @@ void Object_Init(s32 index, ObjectId objId) { case OBJ_80_56: func_80063D58(&gObjects80[index]); break; - case OBJ_2F4_187: - gObjects2F4[index].unk_114 = gObjects2F4[index].obj.pos.x; - gObjects2F4[index].unk_118 = gObjects2F4[index].obj.pos.y; - gObjects2F4[index].obj.rot.z = gObjects2F4[index].obj.rot.x; - gObjects2F4[index].obj.rot.x = 0.0f; + case OBJ_ACTOR_187: + gActors[index].fwork[0] = gActors[index].obj.pos.x; + gActors[index].fwork[1] = gActors[index].obj.pos.y; + gActors[index].obj.rot.z = gActors[index].obj.rot.x; + gActors[index].obj.rot.x = 0.0f; break; - case OBJ_2F4_182: - case OBJ_2F4_186: - gObjects2F4[index].unk_046 = gFogRed; - gObjects2F4[index].unk_048 = gFogNear; - gObjects2F4[index].obj.rot.x = Rand_ZeroOne() * 360.0f; - gObjects2F4[index].obj.rot.y = Rand_ZeroOne() * 360.0f; + case OBJ_ACTOR_182: + case OBJ_ACTOR_186: + gActors[index].unk_046 = gFogRed; + gActors[index].unk_048 = gFogNear; + gActors[index].obj.rot.x = Rand_ZeroOne() * 360.0f; + gActors[index].obj.rot.y = Rand_ZeroOne() * 360.0f; break; - case OBJ_2F4_181: - gObjects2F4[index].obj.rot.x = Rand_ZeroOne() * 360.0f; - gObjects2F4[index].obj.rot.y = Rand_ZeroOne() * 360.0f; - gObjects2F4[index].unk_0CE = 200; + case OBJ_ACTOR_181: + gActors[index].obj.rot.x = Rand_ZeroOne() * 360.0f; + gActors[index].obj.rot.y = Rand_ZeroOne() * 360.0f; + gActors[index].unk_0CE = 200; break; - case OBJ_2F4_202: - gObjects2F4[index].unk_0CE = 30; + case OBJ_ACTOR_202: + gActors[index].unk_0CE = 30; break; - case OBJ_2F4_252: - if (gPlayer[0].pos.z < gObjects2F4[index].obj.pos.z) { - Object_Kill(&gObjects2F4[index].obj, &gObjects2F4[index].sfxPos); + case OBJ_ACTOR_252: + if (gPlayer[0].pos.z < gActors[index].obj.pos.z) { + Object_Kill(&gActors[index].obj, &gActors[index].sfxPos); } break; - case OBJ_2F4_239: - gObjects2F4[index].unk_050 = D_801784A4; + case OBJ_ACTOR_239: + gActors[index].iwork[0] = D_801784A4; D_801784A4++; break; - case OBJ_2F4_236: + case OBJ_ACTOR_236: D_801784A4 = 0; - gObjects2F4[index].unk_0F4.x = gObjects2F4[index].obj.rot.x; - gObjects2F4[index].unk_0F4.y = gObjects2F4[index].obj.rot.y; - gObjects2F4[index].obj.rot.x = gObjects2F4[index].obj.rot.y = 0.0f; - gObjects2F4[index].unk_11C = gObjects2F4[index].obj.pos.y; + gActors[index].unk_0F4.x = gActors[index].obj.rot.x; + gActors[index].unk_0F4.y = gActors[index].obj.rot.y; + gActors[index].obj.rot.x = gActors[index].obj.rot.y = 0.0f; + gActors[index].fwork[2] = gActors[index].obj.pos.y; var_v0 = D_801782C4; for (var_a0 = 0; var_a0 < 200; var_a0++, var_v0++) { - var_v0->pos.x = gObjects2F4[index].obj.pos.x; - var_v0->pos.y = gObjects2F4[index].obj.pos.y; - var_v0->pos.z = gObjects2F4[index].obj.pos.z; - var_v0->rot.x = gObjects2F4[index].obj.rot.x; - var_v0->rot.y = gObjects2F4[index].obj.rot.y; - var_v0->rot.z = gObjects2F4[index].obj.rot.z; + var_v0->pos.x = gActors[index].obj.pos.x; + var_v0->pos.y = gActors[index].obj.pos.y; + var_v0->pos.z = gActors[index].obj.pos.z; + var_v0->rot.x = gActors[index].obj.rot.x; + var_v0->rot.y = gActors[index].obj.rot.y; + var_v0->rot.z = gActors[index].obj.rot.z; } break; - case OBJ_2F4_194: - gObjects2F4[index].unk_046 = 100; + case OBJ_ACTOR_194: + gActors[index].unk_046 = 100; for (var_a0 = 0; var_a0 < 2; var_a0++) { if (D_80176550[var_a0] == 0) { D_80176550[var_a0] = 1; - gObjects2F4[index].unk_046 = var_a0; + gActors[index].unk_046 = var_a0; for (var_a2 = 0; var_a2 < 100; var_a2++) { - D_80176878[var_a0][var_a2] = gObjects2F4[index].obj.pos.y; - D_80176B98[var_a0][var_a2] = gObjects2F4[index].obj.pos.z; + D_80176878[var_a0][var_a2] = gActors[index].obj.pos.y; + D_80176B98[var_a0][var_a2] = gActors[index].obj.pos.z; } break; } } - if (gObjects2F4[index].unk_046 == 100) { - gObjects2F4[index].obj.status = 0; + if (gActors[index].unk_046 == 100) { + gActors[index].obj.status = 0; } break; - case OBJ_2F4_190: - case OBJ_2F4_191: - Audio_PlaySfx(0x31000012, &gObjects2F4[index].sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + case OBJ_ACTOR_190: + case OBJ_ACTOR_191: + Audio_PlaySfx(0x31000012, &gActors[index].sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); break; - case OBJ_2F4_192: - gObjects2F4[index].unk_0C9 = 1; + case OBJ_ACTOR_192: + gActors[index].unk_0C9 = 1; break; case OBJ_BOSS_320: func_E9F1D0_8018D16C(&gBosses[index]); @@ -1174,45 +1174,45 @@ void Object_Init(s32 index, ObjectId objId) { case OBJ_BOSS_314: func_E9F1D0_80197CC4(&gBosses[index]); break; - case OBJ_2F4_205: - case OBJ_2F4_206: - case OBJ_2F4_208: - case OBJ_2F4_209: - case OBJ_2F4_210: - case OBJ_2F4_211: - case OBJ_2F4_212: - case OBJ_2F4_213: - func_E6A810_80199F8C(&gObjects2F4[index]); + case OBJ_ACTOR_205: + case OBJ_ACTOR_206: + case OBJ_ACTOR_208: + case OBJ_ACTOR_209: + case OBJ_ACTOR_210: + case OBJ_ACTOR_211: + case OBJ_ACTOR_212: + case OBJ_ACTOR_213: + func_E6A810_80199F8C(&gActors[index]); break; - case OBJ_2F4_207: - func_E6A810_801A7D98(&gObjects2F4[index]); + case OBJ_ACTOR_207: + func_E6A810_801A7D98(&gActors[index]); break; - case OBJ_2F4_214: - func_E6A810_801A3E70(&gObjects2F4[index]); + case OBJ_ACTOR_214: + func_E6A810_801A3E70(&gActors[index]); break; - case OBJ_2F4_215: - func_E6A810_801A4660(&gObjects2F4[index]); + case OBJ_ACTOR_215: + func_E6A810_801A4660(&gActors[index]); break; - case OBJ_2F4_223: - func_E6A810_801A4AF8(&gObjects2F4[index]); + case OBJ_ACTOR_223: + func_E6A810_801A4AF8(&gActors[index]); break; - case OBJ_2F4_216: - case OBJ_2F4_217: - func_E6A810_801A5E2C(&gObjects2F4[index]); + case OBJ_ACTOR_216: + case OBJ_ACTOR_217: + func_E6A810_801A5E2C(&gActors[index]); break; - case OBJ_2F4_218: - func_E6A810_801A6134(&gObjects2F4[index]); + case OBJ_ACTOR_218: + func_E6A810_801A6134(&gActors[index]); break; case OBJ_80_65: func_E6A810_801A65E0(&gObjects80[index]); break; - case OBJ_2F4_177: - case OBJ_2F4_178: - func_DF4260_8018B0B4(&gObjects2F4[index]); + case OBJ_ACTOR_177: + case OBJ_ACTOR_178: + func_DF4260_8018B0B4(&gActors[index]); /* fallthrough */ - case OBJ_2F4_176: - gObjects2F4[index].unk_0CE = 24; - Audio_PlaySfx(0x31000016, &gObjects2F4[index].sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + case OBJ_ACTOR_176: + gActors[index].unk_0CE = 24; + Audio_PlaySfx(0x31000016, &gActors[index].sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); break; case OBJ_BOSS_297: func_E08400_80188A40(&gBosses[index]); @@ -1232,23 +1232,23 @@ void Object_Init(s32 index, ObjectId objId) { case OBJ_BOSS_A6: func_E16C50_80187754(&gBosses[index]); break; - case OBJ_2F4_231: - func_E6A810_8018B96C(&gObjects2F4[index]); + case OBJ_ACTOR_231: + func_E6A810_8018B96C(&gActors[index]); break; - case OBJ_2F4_232: - func_E6A810_8018ADC4(&gObjects2F4[index]); + case OBJ_ACTOR_232: + func_E6A810_8018ADC4(&gActors[index]); break; - case OBJ_2F4_233: - func_E6A810_80189B80(&gObjects2F4[index]); + case OBJ_ACTOR_233: + func_E6A810_80189B80(&gActors[index]); break; - case OBJ_2F4_229: - func_E6A810_8018BFB0(&gObjects2F4[index]); + case OBJ_ACTOR_229: + func_E6A810_8018BFB0(&gActors[index]); break; - case OBJ_2F4_227: - func_E6A810_8018E3CC(&gObjects2F4[index]); + case OBJ_ACTOR_227: + func_E6A810_8018E3CC(&gActors[index]); break; - case OBJ_2F4_228: - func_E6A810_8018E5E8(&gObjects2F4[index]); + case OBJ_ACTOR_228: + func_E6A810_8018E5E8(&gActors[index]); break; case OBJ_4C_169: func_E6A810_8018EFF0(&gObjects4C[index]); @@ -1256,44 +1256,44 @@ void Object_Init(s32 index, ObjectId objId) { case OBJ_BOSS_306: func_E6A810_8018FA48(&gBosses[index]); break; - case OBJ_2F4_240: - func_E16C50_801915A4(&gObjects2F4[index]); + case OBJ_ACTOR_240: + func_E16C50_801915A4(&gActors[index]); break; - case OBJ_2F4_241: - func_E16C50_80191BB8(&gObjects2F4[index]); + case OBJ_ACTOR_241: + func_E16C50_80191BB8(&gActors[index]); break; case OBJ_BOSS_ZO: func_E16C50_801932AC(&gBosses[index]); break; - case OBJ_2F4_250: - func_E16C50_8019B1F0(&gObjects2F4[index]); + case OBJ_ACTOR_250: + func_E16C50_8019B1F0(&gActors[index]); break; - case OBJ_2F4_251: - func_E16C50_8019B810(&gObjects2F4[index]); + case OBJ_ACTOR_251: + func_E16C50_8019B810(&gActors[index]); break; - case OBJ_2F4_253: - func_E16C50_8019C200(&gObjects2F4[index]); + case OBJ_ACTOR_253: + func_E16C50_8019C200(&gActors[index]); break; - case OBJ_2F4_255: - func_E16C50_801AD688(&gObjects2F4[index]); + case OBJ_ACTOR_255: + func_E16C50_801AD688(&gActors[index]); break; - case OBJ_2F4_256: - func_E16C50_801AE3AC(&gObjects2F4[index]); + case OBJ_ACTOR_256: + func_E16C50_801AE3AC(&gActors[index]); break; - case OBJ_2F4_257: - func_E16C50_801AF9FC(&gObjects2F4[index]); + case OBJ_ACTOR_257: + func_E16C50_801AF9FC(&gActors[index]); break; case OBJ_BOSS_AQ: func_E16C50_801B10F8(&gBosses[index]); break; - case OBJ_2F4_259: - func_E16C50_801B6344(&gObjects2F4[index]); + case OBJ_ACTOR_259: + func_E16C50_801B6344(&gActors[index]); break; - case OBJ_2F4_262: - func_E16C50_801B6E54(&gObjects2F4[index]); + case OBJ_ACTOR_262: + func_E16C50_801B6E54(&gActors[index]); break; - case OBJ_2F4_260: - func_E16C50_801B7AF0(&gObjects2F4[index]); + case OBJ_ACTOR_260: + func_E16C50_801B7AF0(&gActors[index]); break; case OBJ_80_57: func_E6A810_8018F0D8(&gObjects80[index]); @@ -1301,24 +1301,24 @@ void Object_Init(s32 index, ObjectId objId) { case OBJ_BOSS_319: func_DF4260_801935CC(&gBosses[index]); break; - case OBJ_2F4_280: - func_DF4260_8019250C(&gObjects2F4[index]); + case OBJ_ACTOR_280: + func_DF4260_8019250C(&gActors[index]); break; - case OBJ_2F4_281: - case OBJ_2F4_282: - func_DF4260_80192CB0(&gObjects2F4[index]); + case OBJ_ACTOR_281: + case OBJ_ACTOR_282: + func_DF4260_80192CB0(&gActors[index]); break; - case OBJ_2F4_283: - func_DF4260_80192EA4(&gObjects2F4[index]); + case OBJ_ACTOR_283: + func_DF4260_80192EA4(&gActors[index]); break; - case OBJ_2F4_284: - func_DF4260_801933B4(&gObjects2F4[index]); + case OBJ_ACTOR_284: + func_DF4260_801933B4(&gActors[index]); break; - case OBJ_2F4_265: - func_E16C50_801BA57C(&gObjects2F4[index]); + case OBJ_ACTOR_265: + func_E16C50_801BA57C(&gActors[index]); break; - case OBJ_2F4_267: - func_E16C50_801BB26C(&gObjects2F4[index]); + case OBJ_ACTOR_267: + func_E16C50_801BB26C(&gActors[index]); break; } } @@ -1337,31 +1337,31 @@ void func_800652CC(Object_80* obj80) { } } -void func_80065380(Object_2F4* obj2F4, f32 xPos, f32 yPos, f32 zPos, f32 arg4, f32 arg5, f32 arg6) { - Object_2F4_Initialize(obj2F4); - obj2F4->obj.status = 2; - obj2F4->obj.id = OBJ_2F4_182; - obj2F4->timer_0BC = (s32) (Rand_ZeroOne() * 10.0f) + 10; - obj2F4->timer_0C2 = 30; - obj2F4->vel.x = arg4; - obj2F4->vel.y = arg5; - obj2F4->vel.z = arg6; - obj2F4->obj.pos.x = xPos; - obj2F4->obj.pos.y = yPos; - obj2F4->obj.pos.z = zPos; - obj2F4->unk_046 = 0xFF; - obj2F4->unk_048 = 900; - obj2F4->obj.rot.z = Rand_ZeroOne() * 360.0f; - obj2F4->obj.rot.y = Rand_ZeroOne() * 360.0f; - Object_SetInfo(&obj2F4->info, obj2F4->obj.id); +void func_80065380(Actor* actor, f32 xPos, f32 yPos, f32 zPos, f32 arg4, f32 arg5, f32 arg6) { + Actor_Initialize(actor); + actor->obj.status = 2; + actor->obj.id = OBJ_ACTOR_182; + actor->timer_0BC = (s32) (Rand_ZeroOne() * 10.0f) + 10; + actor->timer_0C2 = 30; + actor->vel.x = arg4; + actor->vel.y = arg5; + actor->vel.z = arg6; + actor->obj.pos.x = xPos; + actor->obj.pos.y = yPos; + actor->obj.pos.z = zPos; + actor->unk_046 = 0xFF; + actor->unk_048 = 900; + actor->obj.rot.z = Rand_ZeroOne() * 360.0f; + actor->obj.rot.y = Rand_ZeroOne() * 360.0f; + Object_SetInfo(&actor->info, actor->obj.id); } void func_8006546C(f32 xPos, f32 yPos, f32 zPos, f32 arg3, f32 arg4, f32 arg5) { s32 i; - for (i = 0; i < ARRAY_COUNT(gObjects2F4); i++) { - if (gObjects2F4[i].obj.status == 0) { - func_80065380(&gObjects2F4[i], xPos, yPos, zPos, arg3, arg4, arg5); + for (i = 0; i < ARRAY_COUNT(gActors); i++) { + if (gActors[i].obj.status == 0) { + func_80065380(&gActors[i], xPos, yPos, zPos, arg3, arg4, arg5); break; } } @@ -1379,35 +1379,35 @@ void func_800654E4(Object* obj) { } } -void func_800655C8(Object_2F4* obj2F4, f32 xPos, f32 yPos, f32 zPos, s32 arg4) { - Object_2F4_Initialize(obj2F4); - obj2F4->obj.status = 1; - obj2F4->obj.id = OBJ_2F4_190; - obj2F4->obj.pos.x = xPos; - obj2F4->obj.pos.y = yPos; - obj2F4->obj.pos.z = zPos; - obj2F4->unk_0B4 = arg4; - obj2F4->timer_0BE = 50; - if (obj2F4->unk_0B4 == 1) { - obj2F4->timer_0BE = 30; +void func_800655C8(Actor* actor, f32 xPos, f32 yPos, f32 zPos, s32 arg4) { + Actor_Initialize(actor); + actor->obj.status = 1; + actor->obj.id = OBJ_ACTOR_190; + actor->obj.pos.x = xPos; + actor->obj.pos.y = yPos; + actor->obj.pos.z = zPos; + actor->unk_0B4 = arg4; + actor->timer_0BE = 50; + if (actor->unk_0B4 == 1) { + actor->timer_0BE = 30; } - obj2F4->unk_124.y = 15.0f; - Object_SetInfo(&obj2F4->info, obj2F4->obj.id); + actor->fwork[5] = 15.0f; + Object_SetInfo(&actor->info, actor->obj.id); } void func_8006566C(f32 xPos, f32 yPos, f32 zPos, s32 arg3) { s32 i; - for (i = 0; i < ARRAY_COUNT(gObjects2F4); i++) { - if (gObjects2F4[i].obj.status == 0) { - func_800655C8(&gObjects2F4[i], xPos, yPos, zPos, arg3); + for (i = 0; i < ARRAY_COUNT(gActors); i++) { + if (gActors[i].obj.status == 0) { + func_800655C8(&gActors[i], xPos, yPos, zPos, arg3); break; } } } #ifdef NON_EQUIVALENT -void func_800656D4(Object_2F4* obj2F4) { +void func_800656D4(Actor* actor) { f32 spD4; f32 spD0; f32 spCC; @@ -1435,8 +1435,8 @@ void func_800656D4(Object_2F4* obj2F4) { } else { var_ra = 0; } - if (obj2F4->unk_058 == 0) { - if (obj2F4->obj.id == OBJ_2F4_190) { + if (actor->unk_058 == 0) { + if (actor->obj.id == OBJ_ACTOR_190) { for (i = 0, j = 1; j < 4; i++, j++) { spA8[i] = var_ra + j; spB4[i] = gTeamShields[j]; @@ -1469,130 +1469,128 @@ void func_800656D4(Object_2F4* obj2F4) { if (gLevelMode == LEVELMODE_ALL_RANGE) { if (gTeamShields[spC4 - 1] > 0) { - obj2F4->unk_054 = spC4; + actor->iwork[1] = spC4; goto label; } else { - obj2F4->unk_054 = 10000; + actor->iwork[1] = 10000; } } else { if (gTeamShields[spC4 + 1] > 0) { - obj2F4->unk_054 = spC4; + actor->iwork[1] = spC4; goto label; } else { - obj2F4->unk_054 = 10000; + actor->iwork[1] = 10000; } } } - obj2F4->unk_054 = 10000; + actor->iwork[1] = 10000; label: - obj2F4->unk_058 = 1; + actor->unk_058 = 1; } - spC4 = obj2F4->unk_054; + spC4 = actor->iwork[1]; if ((spC4 == var_ra) || ((var_ra + 1) == spC4) || ((var_ra + 2) == spC4)) { - obj2F4->unk_188 = gObjects2F4[spC4].obj.pos.z; - obj2F4->unk_184 = gObjects2F4[spC4].obj.pos.y; - obj2F4->unk_180 = gObjects2F4[spC4].obj.pos.x; - if ((fabsf(obj2F4->obj.pos.x - gObjects2F4[spC4].obj.pos.x) < 400.0f) && - (fabsf(obj2F4->obj.pos.z - gObjects2F4[spC4].obj.pos.z) < 400.0f)) { + actor->unk_188 = gActors[spC4].obj.pos.z; + actor->unk_184 = gActors[spC4].obj.pos.y; + actor->unk_180 = gActors[spC4].obj.pos.x; + if ((fabsf(actor->obj.pos.x - gActors[spC4].obj.pos.x) < 400.0f) && + (fabsf(actor->obj.pos.z - gActors[spC4].obj.pos.z) < 400.0f)) { if ((Rand_ZeroOne() * (spC4 - 1)) < 0.6f) { - gObjects2F4[spC4].unk_074 = 1; + gActors[spC4].iwork[9] = 1; } } } else { - obj2F4->unk_188 = gPlayer[0].unk_138; - obj2F4->unk_184 = gPlayer[0].pos.y; - obj2F4->unk_180 = gPlayer[0].pos.x; + actor->unk_188 = gPlayer[0].unk_138; + actor->unk_184 = gPlayer[0].pos.y; + actor->unk_180 = gPlayer[0].pos.x; } - if (obj2F4->timer_0BC != 0) { - Math_SmoothStepToAngle(&obj2F4->obj.rot.x, 0.0f, 0.3f, 4.0f, 0.001f); + if (actor->timer_0BC != 0) { + Math_SmoothStepToAngle(&actor->obj.rot.x, 0.0f, 0.3f, 4.0f, 0.001f); } else { - if ((obj2F4->unk_078 == 0) && ((fabsf(obj2F4->unk_180 - obj2F4->obj.pos.x) > 300.0f) || - (fabsf(obj2F4->unk_188 - obj2F4->obj.pos.z) > 300.0f))) { - obj2F4->unk_114 += 5.0f; - obj2F4->unk_118 += 8.0f; - sp80 = sqrtf(SQ(obj2F4->unk_180 - obj2F4->obj.pos.x) + SQ(obj2F4->unk_188 - obj2F4->obj.pos.z)) * 0.2f; - if (obj2F4->unk_0B4 == 1) { + if ((actor->iwork[10] == 0) && ((fabsf(actor->unk_180 - actor->obj.pos.x) > 300.0f) || + (fabsf(actor->unk_188 - actor->obj.pos.z) > 300.0f))) { + actor->fwork[0] += 5.0f; + actor->fwork[1] += 8.0f; + sp80 = sqrtf(SQ(actor->unk_180 - actor->obj.pos.x) + SQ(actor->unk_188 - actor->obj.pos.z)) * 0.2f; + if (actor->unk_0B4 == 1) { sp80 = 0.1f; } - spD0 = __sinf(obj2F4->unk_114 * M_DTOR) * sp80; - sp88 = __cosf(obj2F4->unk_118 * M_DTOR) * sp80; - spD4 = __cosf(obj2F4->obj.rot.y * M_DTOR) * sp88; - spCC = -__sinf(obj2F4->obj.rot.y * M_DTOR) * sp88; - sp88 = (obj2F4->unk_180 + spD4) - obj2F4->obj.pos.x; - sp84 = (obj2F4->unk_184 + spD0) - obj2F4->obj.pos.y; - sp80 = (obj2F4->unk_188 + spCC) - obj2F4->obj.pos.z; + spD0 = __sinf(actor->fwork[0] * M_DTOR) * sp80; + sp88 = __cosf(actor->fwork[1] * M_DTOR) * sp80; + spD4 = __cosf(actor->obj.rot.y * M_DTOR) * sp88; + spCC = -__sinf(actor->obj.rot.y * M_DTOR) * sp88; + sp88 = (actor->unk_180 + spD4) - actor->obj.pos.x; + sp84 = (actor->unk_184 + spD0) - actor->obj.pos.y; + sp80 = (actor->unk_188 + spCC) - actor->obj.pos.z; sp78 = Math_RadToDeg(Math_Atan2F(sp88, sp80)); sp7C = Math_RadToDeg(-Math_Atan2F(sp84, sqrtf(SQ(sp88) + SQ(sp80)))); - sp84 = Math_SmoothStepToAngle(&obj2F4->obj.rot.y, sp78, 0.3f, 4.0f, 0.001f); - Math_SmoothStepToAngle(&obj2F4->obj.rot.x, sp7C, 0.3f, 4.0f, 0.001f); + sp84 = Math_SmoothStepToAngle(&actor->obj.rot.y, sp78, 0.3f, 4.0f, 0.001f); + Math_SmoothStepToAngle(&actor->obj.rot.x, sp7C, 0.3f, 4.0f, 0.001f); } - if ((fabsf(obj2F4->unk_180 - obj2F4->obj.pos.x) < 60.0f) && - (fabsf(obj2F4->unk_184 - obj2F4->obj.pos.y) < 60.0f) && - (fabsf(obj2F4->unk_188 - obj2F4->obj.pos.z) < 60.0f) && ((spC4 == 2) || (spC4 == 3) || (spC4 == 4))) { - gObjects2F4[spC4].unk_0D0 = 1; - gObjects2F4[spC4].unk_0D6 = 20; - gObjects2F4[spC4].unk_0D4 = 2; - func_8007A6F0(&obj2F4->obj.pos, 0x2903A008); - func_8007D2C8(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, 5.0f); - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); + if ((fabsf(actor->unk_180 - actor->obj.pos.x) < 60.0f) && (fabsf(actor->unk_184 - actor->obj.pos.y) < 60.0f) && + (fabsf(actor->unk_188 - actor->obj.pos.z) < 60.0f) && ((spC4 == 2) || (spC4 == 3) || (spC4 == 4))) { + gActors[spC4].unk_0D0 = 1; + gActors[spC4].unk_0D6 = 20; + gActors[spC4].unk_0D4 = 2; + func_8007A6F0(&actor->obj.pos, 0x2903A008); + func_8007D2C8(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 5.0f); + Object_Kill(&actor->obj, &actor->sfxPos); } } - Math_Vec3fFromAngles(&sp98, obj2F4->obj.rot.x, obj2F4->obj.rot.y, obj2F4->unk_124.y); - 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; + Math_Vec3fFromAngles(&sp98, actor->obj.rot.x, actor->obj.rot.y, actor->fwork[5]); + actor->vel.x = sp98.x; + actor->vel.y = sp98.y; + actor->vel.z = sp98.z - D_80177D08; + if (actor->unk_0B4 == 0) { + actor->obj.rot.z += 5.0f; } - if (obj2F4->unk_0B4 == 1) { - if (obj2F4->timer_0BE == 0) { - obj2F4->timer_0BE = 30; - Math_Vec3fFromAngles(&sp98, obj2F4->obj.rot.x, obj2F4->obj.rot.y, 120.0f); - func_8007F04C(0x161, obj2F4->obj.pos.x + sp98.x, obj2F4->obj.pos.y + sp98.y, obj2F4->obj.pos.z + sp98.z, - obj2F4->obj.rot.x, obj2F4->obj.rot.y, obj2F4->obj.rot.z, 0.0f, 0.0f, 0.0f, sp98.x, sp98.y, + if (actor->unk_0B4 == 1) { + if (actor->timer_0BE == 0) { + actor->timer_0BE = 30; + Math_Vec3fFromAngles(&sp98, actor->obj.rot.x, actor->obj.rot.y, 120.0f); + func_8007F04C(0x161, actor->obj.pos.x + sp98.x, actor->obj.pos.y + sp98.y, actor->obj.pos.z + sp98.z, + actor->obj.rot.x, actor->obj.rot.y, actor->obj.rot.z, 0.0f, 0.0f, 0.0f, sp98.x, sp98.y, sp98.z, 1.0f); } var_fv0 = 330.0f; if (sp84 < 0.0f) { var_fv0 = 30.0f; } - Math_SmoothStepToAngle(&obj2F4->obj.rot.z, var_fv0, 0.1f, 3.0f, 0.01f); + Math_SmoothStepToAngle(&actor->obj.rot.z, var_fv0, 0.1f, 3.0f, 0.01f); } - if ((D_801784AC == 4) && - func_E6A810_801B6AEC(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z + D_80177D20)) { - func_8007D2C8(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, 5.0f); - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); + if ((D_801784AC == 4) && func_E6A810_801B6AEC(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z + D_80177D20)) { + func_8007D2C8(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 5.0f); + Object_Kill(&actor->obj, &actor->sfxPos); } - 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); - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); - if (obj2F4->unk_0D0 != 0) { - obj2F4->unk_044 = 2; + sp8C.x = actor->vel.x; + sp8C.y = actor->vel.y; + sp8C.z = actor->vel.z; + if ((func_8006351C(actor->index, &actor->obj.pos, &sp8C, 1) != 0) || (actor->unk_0D0 != 0) || + (actor->obj.pos.y < (D_80177940 + 10.0f)) || (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_7)) { + func_8007D2C8(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 3.0f); + Object_Kill(&actor->obj, &actor->sfxPos); + if (actor->unk_0D0 != 0) { + actor->unk_044 = 2; if ((gCurrentLevel == LEVEL_CORNERIA)) { if (gLevelMode == LEVELMODE_ALL_RANGE) { - obj2F4->unk_044 = 2; + actor->unk_044 = 2; } else { - obj2F4->unk_044 = 4; + actor->unk_044 = 4; } } if (gCurrentLevel == LEVEL_AREA_6) { - obj2F4->unk_044 = 22; + actor->unk_044 = 22; } - func_80066254(obj2F4); + func_80066254(actor); } - func_8007A6F0(&obj2F4->obj.pos, 0x2903A008); + func_8007A6F0(&actor->obj.pos, 0x2903A008); } if (gLevelMode == LEVELMODE_ON_RAILS) { - if (fabsf(obj2F4->obj.pos.z - gPlayer[0].unk_138) < 100.0f) { - obj2F4->unk_078 = 1; + if (fabsf(actor->obj.pos.z - gPlayer[0].unk_138) < 100.0f) { + actor->iwork[10] = 1; } - if (gPlayer[0].camEye.z < (obj2F4->obj.pos.z + D_80177D20)) { - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); + if (gPlayer[0].camEye.z < (actor->obj.pos.z + D_80177D20)) { + Object_Kill(&actor->obj, &actor->sfxPos); } } } @@ -1600,7 +1598,7 @@ void func_800656D4(Object_2F4* obj2F4) { #pragma GLOBAL_ASM("asm/us/nonmatchings/main/fox_enmy/func_800656D4.s") #endif -void func_800660F0(Object_2F4* obj2F4) { +void func_800660F0(Actor* actor) { Item* item = gItems; s32 i; @@ -1608,10 +1606,10 @@ void func_800660F0(Object_2F4* obj2F4) { if (item->obj.status == 0) { Item_Initialize(item); item->obj.status = 1; - item->obj.id = D_800CFDF4[obj2F4->unk_044]; - item->obj.pos.x = obj2F4->obj.pos.x; - item->obj.pos.y = obj2F4->obj.pos.y; - item->obj.pos.z = obj2F4->obj.pos.z; + item->obj.id = D_800CFDF4[actor->unk_044]; + item->obj.pos.x = actor->obj.pos.x; + item->obj.pos.y = actor->obj.pos.y; + item->obj.pos.z = actor->obj.pos.z; item->timer_4A = 8; Object_SetInfo(&item->info, item->obj.id); if ((item->obj.id == OBJ_ITEM_SILVER_RING) || (item->obj.id == OBJ_ITEM_BOMB) || @@ -1631,18 +1629,18 @@ void func_800660F0(Object_2F4* obj2F4) { } } -void func_80066254(Object_2F4* obj2F4) { - Object_2F4* other2F4; +void func_80066254(Actor* actor) { + Actor* otherActor; s32 i; if (gVersusMode) { - if ((obj2F4->unk_0D4 > 0) && (obj2F4->unk_0D4 < 5) && + if ((actor->unk_0D4 > 0) && (actor->unk_0D4 < 5) && !((D_80178768[0] == 0) && (D_80178768[1] == 0) && (D_80178768[2] == 0))) { - D_80177C30[obj2F4->unk_0D4 - 1] += obj2F4->info.bonus; + D_80177C30[actor->unk_0D4 - 1] += actor->info.bonus; } - } else if ((obj2F4->obj.id != OBJ_2F4_197) || (obj2F4->unk_0B6 != 1)) { - if ((obj2F4->unk_0D4 == 1) && (obj2F4->info.bonus != 0)) { - gHitCount += obj2F4->info.bonus; + } else if ((actor->obj.id != OBJ_ACTOR_197) || (actor->unk_0B6 != 1)) { + if ((actor->unk_0D4 == 1) && (actor->info.bonus != 0)) { + gHitCount += actor->info.bonus; D_80177850 = 15; if ((gLevelMode == LEVELMODE_ALL_RANGE) && (D_80161A62 != 0)) { switch (D_80161A62) { @@ -1654,32 +1652,32 @@ void func_80066254(Object_2F4* obj2F4) { case 4: case 19: case 29: - obj2F4->unk_044 = 14; + actor->unk_044 = 14; break; case 14: - obj2F4->unk_044 = 9; + actor->unk_044 = 9; break; } D_80161A62 = 0; } - if (obj2F4->obj.id == OBJ_2F4_197) { - if ((obj2F4->unk_0E4 >= 4) && (obj2F4->unk_0E4 < 8)) { - func_8002E3E0(obj2F4); + if (actor->obj.id == OBJ_ACTOR_197) { + if ((actor->unk_0E4 >= 4) && (actor->unk_0E4 < 8)) { + func_8002E3E0(actor); } } } - if (obj2F4->unk_044) { - if (D_800CFE5C[obj2F4->unk_044] < 0.0f) { - other2F4 = gObjects2F4; - for (i = 0, other2F4 = gObjects2F4; i < ARRAY_COUNT(gObjects2F4); i++, other2F4++) { - if ((other2F4->obj.status != 0) && (other2F4->index != obj2F4->index) && - (obj2F4->unk_08C == other2F4->unk_08C)) { + if (actor->unk_044) { + if (D_800CFE5C[actor->unk_044] < 0.0f) { + otherActor = gActors; + for (i = 0, otherActor = gActors; i < ARRAY_COUNT(gActors); i++, otherActor++) { + if ((otherActor->obj.status != 0) && (otherActor->index != actor->index) && + (otherActor->iwork[15] == actor->iwork[15])) { return; } } - func_800660F0(obj2F4); + func_800660F0(actor); Audio_PlaySfx(0x4900000C, &D_800C5D28, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); - } else if (obj2F4->unk_044 == 24) { + } else if (actor->unk_044 == 24) { if (gTeamShields[3] > 0) { func_800BA808(gMsg_ID_20261, RCID_PEPPY); } else if (gTeamShields[2] > 0) { @@ -1687,113 +1685,113 @@ void func_80066254(Object_2F4* obj2F4) { } else if (gTeamShields[1] > 0) { func_800BA808(gMsg_ID_20262, RCID_FALCO); } - } else if (Rand_ZeroOne() <= D_800CFE5C[obj2F4->unk_044]) { - func_800660F0(obj2F4); + } else if (Rand_ZeroOne() <= D_800CFE5C[actor->unk_044]) { + func_800660F0(actor); } } } } -void func_8006654C(Object_2F4* obj2F4) { - obj2F4->gravity = 0.4f; - if (obj2F4->obj.pos.y <= D_80177940 + 130.0f) { - obj2F4->obj.pos.y = D_80177940 + 130.0f; - obj2F4->vel.y = 0.0f; +void func_8006654C(Actor* actor) { + actor->gravity = 0.4f; + if (actor->obj.pos.y <= D_80177940 + 130.0f) { + actor->obj.pos.y = D_80177940 + 130.0f; + actor->vel.y = 0.0f; } - obj2F4->vel.x = __sinf(obj2F4->obj.rot.y * M_DTOR) * (*obj2F4).unk_114; - obj2F4->vel.z = __cosf(obj2F4->obj.rot.y * M_DTOR) * (*obj2F4).unk_114; - switch (obj2F4->unk_0B8) { + actor->vel.x = __sinf(actor->obj.rot.y * M_DTOR) * (*actor).fwork[0]; + actor->vel.z = __cosf(actor->obj.rot.y * M_DTOR) * (*actor).fwork[0]; + switch (actor->unk_0B8) { case 0: - if (obj2F4->unk_114 < 20.0f) { - obj2F4->unk_114 += 0.5f; + if (actor->fwork[0] < 20.0f) { + actor->fwork[0] += 0.5f; } - obj2F4->unk_0B6++; - if (Animation_GetFrameCount(&D_6029528) < obj2F4->unk_0B6) { - obj2F4->unk_0B6 = 0; + actor->unk_0B6++; + if (Animation_GetFrameCount(&D_6029528) < actor->unk_0B6) { + actor->unk_0B6 = 0; } - if ((obj2F4->obj.rot.z < 15.0f) && (obj2F4->unk_0B6 < 0x14)) { - obj2F4->obj.rot.z += 1.0f; + if ((actor->obj.rot.z < 15.0f) && (actor->unk_0B6 < 0x14)) { + actor->obj.rot.z += 1.0f; } - if ((obj2F4->obj.rot.z > -15.0f) && (obj2F4->unk_0B6 >= 0x15)) { - obj2F4->obj.rot.z -= 1.0f; + if ((actor->obj.rot.z > -15.0f) && (actor->unk_0B6 >= 0x15)) { + actor->obj.rot.z -= 1.0f; } - if ((obj2F4->unk_0B6 == 0x14) || (obj2F4->unk_0B6 == 0x28)) { - obj2F4->unk_0B8++; - obj2F4->timer_0BC = 0x14; + if ((actor->unk_0B6 == 0x14) || (actor->unk_0B6 == 0x28)) { + actor->unk_0B8++; + actor->timer_0BC = 0x14; } break; case 1: - if (obj2F4->obj.rot.z > 0.0f) { - obj2F4->obj.rot.z -= 0.5f; + if (actor->obj.rot.z > 0.0f) { + actor->obj.rot.z -= 0.5f; } - if (obj2F4->obj.rot.z < 0.0f) { - obj2F4->obj.rot.z += 0.5f; + if (actor->obj.rot.z < 0.0f) { + actor->obj.rot.z += 0.5f; } - if (obj2F4->unk_114 > 0.0f) { - obj2F4->unk_114 -= 0.3f; + if (actor->fwork[0] > 0.0f) { + actor->fwork[0] -= 0.3f; } - if (obj2F4->timer_0BC == 0) { - obj2F4->unk_0B8 = 0; + if (actor->timer_0BC == 0) { + actor->unk_0B8 = 0; } break; } - obj2F4->scale = 0.8f; - if (obj2F4->unk_0D0 != 0) { - obj2F4->obj.status = 3; - obj2F4->vel.y = (Rand_ZeroOne() * 5.0f) + 6.0f; - if (obj2F4->unk_0D0 == 2) { - obj2F4->vel.y = -2.0f; + actor->scale = 0.8f; + if (actor->unk_0D0 != 0) { + actor->obj.status = 3; + actor->vel.y = (Rand_ZeroOne() * 5.0f) + 6.0f; + if (actor->unk_0D0 == 2) { + actor->vel.y = -2.0f; } - obj2F4->vel.z = -15.0f; - obj2F4->gravity = 0.5f; - func_8007D2C8(obj2F4->obj.pos.x, obj2F4->obj.pos.y + 30.0f, obj2F4->obj.pos.z, 13.0f); - Audio_PlaySfx(0x2903A008, &obj2F4->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + actor->vel.z = -15.0f; + actor->gravity = 0.5f; + func_8007D2C8(actor->obj.pos.x, actor->obj.pos.y + 30.0f, actor->obj.pos.z, 13.0f); + Audio_PlaySfx(0x2903A008, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } } -void func_8006684C(Object_2F4* obj2F4) { +void func_8006684C(Actor* actor) { s32 pad; - if (obj2F4->timer_0BE != 0) { - obj2F4->vel.z = 0.0f; - obj2F4->vel.x = 0.0f; - obj2F4->vel.y = 0.0f; - if (obj2F4->timer_0BE == 1) { - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); - obj2F4->unk_044 = 1; - func_80066254(obj2F4); - Audio_PlaySfx(0x2903B009, &obj2F4->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); - func_80077240(obj2F4->obj.pos.x, obj2F4->obj.pos.y + 250.0f, obj2F4->obj.pos.z, 3); + if (actor->timer_0BE != 0) { + actor->vel.z = 0.0f; + actor->vel.x = 0.0f; + actor->vel.y = 0.0f; + if (actor->timer_0BE == 1) { + Object_Kill(&actor->obj, &actor->sfxPos); + actor->unk_044 = 1; + func_80066254(actor); + Audio_PlaySfx(0x2903B009, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + func_80077240(actor->obj.pos.x, actor->obj.pos.y + 250.0f, actor->obj.pos.z, 3); gHitCount += 3; D_80177850 = 15; } } else { - obj2F4->obj.rot.x += 11.0f; - obj2F4->obj.rot.y += 7.0f; - if (obj2F4->vel.y < -3.0f) { - func_8007BFFC(obj2F4->obj.pos.x, obj2F4->obj.pos.y + 30.0f, obj2F4->obj.pos.z, 0.0f, 0.0f, 0.0f, 7.0f, 5); - obj2F4->timer_0BE = 3; + actor->obj.rot.x += 11.0f; + actor->obj.rot.y += 7.0f; + if (actor->vel.y < -3.0f) { + func_8007BFFC(actor->obj.pos.x, actor->obj.pos.y + 30.0f, actor->obj.pos.z, 0.0f, 0.0f, 0.0f, 7.0f, 5); + actor->timer_0BE = 3; } } } -void func_800669A0(Object_2F4* obj2F4) { - if (obj2F4->timer_0BC != 0) { - if (obj2F4->timer_0BC == 1) { - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); +void func_800669A0(Actor* actor) { + if (actor->timer_0BC != 0) { + if (actor->timer_0BC == 1) { + Object_Kill(&actor->obj, &actor->sfxPos); } } else { - obj2F4->obj.rot.y += 5.0f; - if (obj2F4->unk_0D0 != 0) { - func_8007D0E0(obj2F4->obj.pos.x, obj2F4->obj.pos.y + 130.0f, obj2F4->obj.pos.z, 8.0f); - func_8007BFFC(obj2F4->obj.pos.x, obj2F4->obj.pos.y + 130.0f, obj2F4->obj.pos.z, 0.0f, 0.0f, 0.0f, 4.0f, 5); - obj2F4->timer_0BC = 4; - func_8007A6F0(&obj2F4->obj.pos, 0x1903400F); + actor->obj.rot.y += 5.0f; + if (actor->unk_0D0 != 0) { + func_8007D0E0(actor->obj.pos.x, actor->obj.pos.y + 130.0f, actor->obj.pos.z, 8.0f); + func_8007BFFC(actor->obj.pos.x, actor->obj.pos.y + 130.0f, actor->obj.pos.z, 0.0f, 0.0f, 0.0f, 4.0f, 5); + actor->timer_0BC = 4; + func_8007A6F0(&actor->obj.pos, 0x1903400F); } } } -void func_80066A80(Object_2F4* obj2F4) { +void func_80066A80(Actor* actor) { } void func_80066A8C(Object_80* obj80) { @@ -1944,85 +1942,85 @@ void func_800671D0(Item* item) { item->obj.rot.y = Math_ModF(item->obj.rot.y, 360.0f); } -void func_80067348(Object_2F4* obj2F4, f32 xPos, f32 yPos, f32 zPos, f32 xRot, f32 yRot, f32 arg6, f32 arg7, f32 arg8) { - Object_2F4_Initialize(obj2F4); - obj2F4->obj.status = 2; - obj2F4->obj.id = OBJ_2F4_189; - obj2F4->unk_0B8 = 70; - 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->vel.x = arg6; - obj2F4->vel.y = arg7; - obj2F4->vel.z = arg8; - obj2F4->timer_0BC = (s32) (Rand_ZeroOne() * 15.0f) + 25.0f; - obj2F4->gravity = 0.5f; - Object_SetInfo(&obj2F4->info, obj2F4->obj.id); +void func_80067348(Actor* actor, f32 xPos, f32 yPos, f32 zPos, f32 xRot, f32 yRot, f32 arg6, f32 arg7, f32 arg8) { + Actor_Initialize(actor); + actor->obj.status = 2; + actor->obj.id = OBJ_ACTOR_189; + actor->unk_0B8 = 70; + actor->obj.pos.x = xPos; + actor->obj.pos.y = yPos; + actor->obj.pos.z = zPos; + actor->obj.rot.x = xRot; + actor->obj.rot.y = yRot; + actor->vel.x = arg6; + actor->vel.y = arg7; + actor->vel.z = arg8; + actor->timer_0BC = (s32) (Rand_ZeroOne() * 15.0f) + 25.0f; + actor->gravity = 0.5f; + Object_SetInfo(&actor->info, actor->obj.id); } void func_800674B4(f32 xPos, f32 yPos, f32 zPos, f32 xRot, f32 yRot, f32 arg5, f32 arg6, f32 arg7) { s32 i; for (i = 59; i >= 50; i--) { - if (gObjects2F4[i].obj.status == 0) { - func_80067348(&gObjects2F4[i], xPos, yPos, zPos, xRot, yRot, arg5, arg6, arg7); + if (gActors[i].obj.status == 0) { + func_80067348(&gActors[i], xPos, yPos, zPos, xRot, yRot, arg5, arg6, arg7); break; } } } -void func_8006753C(Object_2F4* obj2F4) { +void func_8006753C(Actor* actor) { Player* player = &gPlayer[0]; s32 i; - obj2F4->obj.rot.y += 1.0f; + actor->obj.rot.y += 1.0f; if (gLevelMode == LEVELMODE_ALL_RANGE) { if (gCurrentLevel == LEVEL_SECTOR_Z) { - Math_SmoothStepToF(&obj2F4->obj.pos.x, -2000.0f, 0.05f, 60.0f, 0.01f); - Math_SmoothStepToF(&obj2F4->obj.pos.y, -200.0f, 0.05f, 3.0f, 0.01f); - Math_SmoothStepToF(&obj2F4->obj.pos.z, 0.0f, 0.05f, 0.f, 0.01f); + Math_SmoothStepToF(&actor->obj.pos.x, -2000.0f, 0.05f, 60.0f, 0.01f); + Math_SmoothStepToF(&actor->obj.pos.y, -200.0f, 0.05f, 3.0f, 0.01f); + Math_SmoothStepToF(&actor->obj.pos.z, 0.0f, 0.05f, 0.f, 0.01f); } else { - Math_SmoothStepToF(&obj2F4->obj.pos.y, 300.0f, 0.05f, 50.0f, 0.01f); + Math_SmoothStepToF(&actor->obj.pos.y, 300.0f, 0.05f, 50.0f, 0.01f); } } - if (obj2F4->unk_0D0 != 0) { - obj2F4->unk_0D0 = 0; - obj2F4->unk_0CE -= obj2F4->unk_0D6; - if (obj2F4->unk_0CE <= 0) { - func_8007A6F0(&obj2F4->obj.pos, 0x2903A008); - func_8007D2C8(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, 5.0f); + if (actor->unk_0D0 != 0) { + actor->unk_0D0 = 0; + actor->unk_0CE -= actor->unk_0D6; + if (actor->unk_0CE <= 0) { + func_8007A6F0(&actor->obj.pos, 0x2903A008); + func_8007D2C8(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 5.0f); if (((player[0].wings.rightState <= WINGSTATE_BROKEN) || (player[0].wings.leftState <= WINGSTATE_BROKEN)) && (player[0].form != FORM_LANDMASTER)) { - obj2F4->unk_044 = 23; + actor->unk_044 = 23; } else if (gPlayer[0].shields < 128) { - obj2F4->unk_044 = 25; + actor->unk_044 = 25; } else if ((gLaserStrength[0] == LASERS_SINGLE) && (player[0].form != FORM_LANDMASTER)) { - obj2F4->unk_044 = 9; + actor->unk_044 = 9; } else { - obj2F4->unk_044 = 5; + actor->unk_044 = 5; } - func_80066254(obj2F4); + func_80066254(actor); for (i = 0; i < 6; i++) { - func_800674B4(D_800CFEC4[i].x + obj2F4->obj.pos.x, D_800CFEC4[i].y + obj2F4->obj.pos.y, - D_800CFEC4[i].z + obj2F4->obj.pos.z, D_800CFF0C[i].y + obj2F4->obj.rot.y, - D_800CFF0C[i].x + obj2F4->obj.rot.x, (Rand_ZeroOne() - 0.5f) * 40.0f, + func_800674B4(D_800CFEC4[i].x + actor->obj.pos.x, D_800CFEC4[i].y + actor->obj.pos.y, + D_800CFEC4[i].z + actor->obj.pos.z, D_800CFF0C[i].y + actor->obj.rot.y, + D_800CFF0C[i].x + actor->obj.rot.x, (Rand_ZeroOne() - 0.5f) * 40.0f, (Rand_ZeroOne() * 10.0f) + 10.0f, (Rand_ZeroOne() - 0.5f) * 40.0f); - func_800794CC(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, 0.6f); + func_800794CC(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 0.6f); } - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); + Object_Kill(&actor->obj, &actor->sfxPos); } } gUnkEntities28[63].unk_00 = 1; gUnkEntities28[63].unk_02 = 103; - gUnkEntities28[63].pos.x = obj2F4->obj.pos.x; - gUnkEntities28[63].pos.y = obj2F4->obj.pos.y; - gUnkEntities28[63].pos.z = obj2F4->obj.pos.z; + gUnkEntities28[63].pos.x = actor->obj.pos.x; + gUnkEntities28[63].pos.y = actor->obj.pos.y; + gUnkEntities28[63].pos.z = actor->obj.pos.z; gUnkEntities28[63].unk_10 = 0.0f; } -void func_80067874(Object_2F4* obj2F4) { +void func_80067874(Actor* actor) { s32 i; Lights_SetOneLight(&gMasterDisp, -60, -60, 60, 150, 150, 150, 20, 20, 20); @@ -2429,44 +2427,42 @@ void func_80068FE0(Object_4C* obj4C) { void func_800690D0(s32 index, ObjectId objId) { switch (objId) { - case OBJ_2F4_200: - func_8007717C(&gObjects2F4[index]); + case OBJ_ACTOR_200: + func_8007717C(&gActors[index]); break; - case OBJ_2F4_197: + case OBJ_ACTOR_197: if (gCurrentLevel == LEVEL_VENOM_ANDROSS) { - func_E9F1D0_801888F4(&gObjects2F4[index]); + func_E9F1D0_801888F4(&gActors[index]); } else { - func_800763A4(&gObjects2F4[index]); + func_800763A4(&gActors[index]); } break; - case OBJ_2F4_202: - func_800763A4(&gObjects2F4[index]); + case OBJ_ACTOR_202: + func_800763A4(&gActors[index]); break; - case OBJ_2F4_194: - func_8006B0A0(&gObjects2F4[index]); + case OBJ_ACTOR_194: + func_8006B0A0(&gActors[index]); break; - case OBJ_2F4_186: - func_E08400_80187B08(&gObjects2F4[index]); + case OBJ_ACTOR_186: + func_E08400_80187B08(&gActors[index]); break; - case OBJ_2F4_181: - Object_Kill(&gObjects2F4[index].obj, &gObjects2F4[index].sfxPos); - func_8007D2C8(gObjects2F4[index].obj.pos.x, gObjects2F4[index].obj.pos.y, gObjects2F4[index].obj.pos.z, - 20.0f); + case OBJ_ACTOR_181: + Object_Kill(&gActors[index].obj, &gActors[index].sfxPos); + func_8007D2C8(gActors[index].obj.pos.x, gActors[index].obj.pos.y, gActors[index].obj.pos.z, 20.0f); break; - case OBJ_2F4_182: - Object_Kill(&gObjects2F4[index].obj, &gObjects2F4[index].sfxPos); - func_8007D2C8(gObjects2F4[index].obj.pos.x, gObjects2F4[index].obj.pos.y, gObjects2F4[index].obj.pos.z, - 10.0f); - func_80066254(&gObjects2F4[index]); + case OBJ_ACTOR_182: + Object_Kill(&gActors[index].obj, &gActors[index].sfxPos); + func_8007D2C8(gActors[index].obj.pos.x, gActors[index].obj.pos.y, gActors[index].obj.pos.z, 10.0f); + func_80066254(&gActors[index]); break; - case OBJ_2F4_192: - func_8006684C(&gObjects2F4[index]); + case OBJ_ACTOR_192: + func_8006684C(&gActors[index]); break; case OBJ_BOSS_306: func_E6A810_801990DC(&gBosses[index]); break; - case OBJ_2F4_232: - func_E6A810_8018B720(&gObjects2F4[index]); + case OBJ_ACTOR_232: + func_E6A810_8018B720(&gActors[index]); break; case OBJ_BOSS_319: func_DF4260_80198594(&gBosses[index]); @@ -2474,46 +2470,46 @@ void func_800690D0(s32 index, ObjectId objId) { } } -void func_800693E8(Object_2F4* obj2F4) { - obj2F4->obj.pos.x += obj2F4->vel.x; - obj2F4->obj.pos.z += obj2F4->vel.z; - obj2F4->obj.pos.y += obj2F4->vel.y; - obj2F4->vel.y -= obj2F4->gravity; +void func_800693E8(Actor* actor) { + actor->obj.pos.x += actor->vel.x; + actor->obj.pos.z += actor->vel.z; + actor->obj.pos.y += actor->vel.y; + actor->vel.y -= actor->gravity; - if ((D_80161AB8 != 0) && (obj2F4->obj.id != OBJ_2F4_198) && - ((gCurrentLevel != LEVEL_MACBETH) || (obj2F4->obj.id == OBJ_2F4_200))) { + if ((D_80161AB8 != 0) && (actor->obj.id != OBJ_ACTOR_198) && + ((gCurrentLevel != LEVEL_MACBETH) || (actor->obj.id == OBJ_ACTOR_200))) { f32 var_fv0 = 4000.0f; - if ((obj2F4->obj.id == OBJ_2F4_236) || (gCurrentLevel == LEVEL_MACBETH) || - ((obj2F4->obj.id == OBJ_2F4_200) && (obj2F4->unk_0B4 == 56))) { + if ((actor->obj.id == OBJ_ACTOR_236) || (gCurrentLevel == LEVEL_MACBETH) || + ((actor->obj.id == OBJ_ACTOR_200) && (actor->unk_0B4 == 56))) { var_fv0 = 8000.0f; } else if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_8) { var_fv0 = 100000.0f; } - if (((gPlayer[0].camEye.z + obj2F4->info.unk_10) < (obj2F4->obj.pos.z + D_80177D20)) || - ((obj2F4->obj.pos.z + D_80177D20) < -15000.0f) || (obj2F4->obj.pos.y < (gPlayer[0].unk_0B0 - var_fv0)) || - ((gPlayer[0].unk_0B0 + var_fv0) < obj2F4->obj.pos.y) || - ((gPlayer[0].unk_0AC + var_fv0) < obj2F4->obj.pos.x) || - (obj2F4->obj.pos.x < (gPlayer[0].unk_0AC - var_fv0))) { - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); - switch (obj2F4->obj.id) { - case OBJ_2F4_236: + if (((gPlayer[0].camEye.z + actor->info.unk_10) < (actor->obj.pos.z + D_80177D20)) || + ((actor->obj.pos.z + D_80177D20) < -15000.0f) || (actor->obj.pos.y < (gPlayer[0].unk_0B0 - var_fv0)) || + ((gPlayer[0].unk_0B0 + var_fv0) < actor->obj.pos.y) || + ((gPlayer[0].unk_0AC + var_fv0) < actor->obj.pos.x) || + (actor->obj.pos.x < (gPlayer[0].unk_0AC - var_fv0))) { + Object_Kill(&actor->obj, &actor->sfxPos); + switch (actor->obj.id) { + case OBJ_ACTOR_236: D_801784A4 = 0; break; - case OBJ_2F4_229: - func_E6A810_8018E3B0(obj2F4); + case OBJ_ACTOR_229: + func_E6A810_8018E3B0(actor); break; - case OBJ_2F4_194: - D_80176550[obj2F4->unk_046] = 0; + case OBJ_ACTOR_194: + D_80176550[actor->unk_046] = 0; break; - case OBJ_2F4_200: - if ((obj2F4->unk_0B4 >= 200) && (obj2F4->unk_0B4 < 300)) { - D_80176550[obj2F4->unk_046] = 0; - } else if ((obj2F4->unk_0B4 == 38) && (obj2F4->unk_046 != 2)) { + case OBJ_ACTOR_200: + if ((actor->unk_0B4 >= 200) && (actor->unk_0B4 < 300)) { + D_80176550[actor->unk_046] = 0; + } else if ((actor->unk_0B4 == 38) && (actor->unk_046 != 2)) { D_80177E80 = -1; } break; - case OBJ_2F4_252: + case OBJ_ACTOR_252: D_80161684 = 1; break; } @@ -2600,60 +2596,60 @@ void func_80069A10(Item* item) { } } -void Object_2F4_Update(Object_2F4* obj2F4) { +void Actor_Update(Actor* actor) { s32 i; - if (obj2F4->timer_0BC != 0) { - obj2F4->timer_0BC--; + if (actor->timer_0BC != 0) { + actor->timer_0BC--; } - if (obj2F4->timer_0BE != 0) { - obj2F4->timer_0BE--; + if (actor->timer_0BE != 0) { + actor->timer_0BE--; } - if (obj2F4->timer_0C0 != 0) { - obj2F4->timer_0C0--; + if (actor->timer_0C0 != 0) { + actor->timer_0C0--; } - if (obj2F4->timer_0C2 != 0) { - obj2F4->timer_0C2--; + if (actor->timer_0C2 != 0) { + actor->timer_0C2--; } - if (obj2F4->timer_0C6 != 0) { - obj2F4->timer_0C6--; + if (actor->timer_0C6 != 0) { + actor->timer_0C6--; } if (gVersusMode) { for (i = 0; i < gCamCount; i++) { - if (obj2F4->timer_0CA[i] != 0) { + if (actor->timer_0CA[i] != 0) { if (!(gControllerHold[i].button & A_BUTTON)) { - obj2F4->timer_0CA[i]--; + actor->timer_0CA[i]--; } gChargeTimers[i] = 0; } } - } else if (obj2F4->timer_0CA[0] != 0) { + } else if (actor->timer_0CA[0] != 0) { if (!(gControllerHold[gMainController].button & A_BUTTON)) { - obj2F4->timer_0CA[0]--; + actor->timer_0CA[0]--; } gChargeTimers[0] = 0; } - if (obj2F4->timer_0C4 != 0) { - obj2F4->timer_0C4--; + if (actor->timer_0C4 != 0) { + actor->timer_0C4--; } - switch (obj2F4->obj.status) { + switch (actor->obj.status) { case 1: - obj2F4->obj.status = 2; - Object_Init(obj2F4->index, obj2F4->obj.id); - if (obj2F4->obj.id != OBJ_2F4_252) { - func_800693E8(obj2F4); + actor->obj.status = 2; + Object_Init(actor->index, actor->obj.id); + if (actor->obj.id != OBJ_ACTOR_252) { + func_800693E8(actor); } break; case 2: - func_800693E8(obj2F4); - if ((obj2F4->obj.status != 0) && (obj2F4->info.action != NULL)) { - obj2F4->info.action(&obj2F4->obj); + func_800693E8(actor); + if ((actor->obj.status != 0) && (actor->info.action != NULL)) { + actor->info.action(&actor->obj); } break; case 3: - func_800693E8(obj2F4); - if (obj2F4->obj.status != 0) { - func_800690D0(obj2F4->index, obj2F4->obj.id); + func_800693E8(actor); + if (actor->obj.status != 0) { + func_800690D0(actor->index, actor->obj.id); } break; } @@ -2847,7 +2843,7 @@ void Object_UpdateAll(void) { s32 i; s32 pad; Object_58* obj58; - Object_2F4* obj2F4; + Actor* actor; Boss* boss; Object_4C* obj4C; Object_80* obj80; @@ -2894,10 +2890,10 @@ void Object_UpdateAll(void) { Boss_Update(boss); } } - for (i = 0, obj2F4 = gObjects2F4; i < ARRAY_COUNT(gObjects2F4); i++, obj2F4++) { - if (obj2F4->obj.status != 0) { - obj2F4->index = i; - Object_2F4_Update(obj2F4); + for (i = 0, actor = gActors; i < ARRAY_COUNT(gActors); i++, actor++) { + if (actor->obj.status != 0) { + actor->index = i; + Actor_Update(actor); } } for (i = 0, item = gItems; i < ARRAY_COUNT(gItems); i++, item++) { diff --git a/src/main/fox_enmy2.c b/src/main/fox_enmy2.c index ca9d2d20..fc8d4035 100644 --- a/src/main/fox_enmy2.c +++ b/src/main/fox_enmy2.c @@ -4,7 +4,7 @@ s32 D_800CFF80[4] = { 0, 0, 0, 0 }; s32 D_800CFF90 = 0; s32 D_80161690; -void func_80187530(Object_2F4*); // figure out which one later +void func_80187530(Actor*); // figure out which one later void func_8006A7B0(u16* msg, s32 character) { (void) "Enm->obj.pos.y + tmp_xyz.y=<%10.3f>\n"; @@ -50,10 +50,10 @@ void func_8006A900(f32 xPos, f32 yPos, f32 zPos, f32 arg3) { } } -void func_8006A96C(Object_2F4* obj2F4) { +void func_8006A96C(Actor* actor) { } -void func_8006A978(Object_2F4* obj2F4) { +void func_8006A978(Actor* actor) { } void func_8006A984(Effect* effect, f32 xPos, f32 yPos, f32 zPos) { @@ -101,115 +101,115 @@ void func_8006AA98(Object_80* obj80) { } } -bool func_8006ABA4(Object_2F4* obj2F4) { - if ((fabsf(obj2F4->obj.pos.x - gPlayer[0].pos.x) < 700.0f) && - (fabsf(obj2F4->obj.pos.y - gPlayer[0].pos.y) < 700.0f)) { +bool func_8006ABA4(Actor* actor) { + if ((fabsf(actor->obj.pos.x - gPlayer[0].pos.x) < 700.0f) && + (fabsf(actor->obj.pos.y - gPlayer[0].pos.y) < 700.0f)) { return true; } return false; } -void func_8006AC08(Object_2F4* obj2F4) { +void func_8006AC08(Actor* actor) { f32 sp2C; - if (func_8006ABA4(obj2F4) && (obj2F4->timer_0BC == 0)) { - func_8007F11C(OBJ_EFFECT_353, obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, D_80177828); - obj2F4->timer_0BC = 20; + if (func_8006ABA4(actor) && (actor->timer_0BC == 0)) { + func_8007F11C(OBJ_EFFECT_353, actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, D_80177828); + actor->timer_0BC = 20; } - sp2C = obj2F4->obj.pos.z + D_80177D20; - 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)))); + sp2C = actor->obj.pos.z + D_80177D20; + actor->obj.rot.y = Math_RadToDeg(Math_Atan2F(gPlayer[0].camEye.x - actor->obj.pos.x, gPlayer[0].camEye.z - sp2C)); + actor->obj.rot.x = + -Math_RadToDeg(Math_Atan2F(gPlayer[0].camEye.y - actor->obj.pos.y, + sqrtf(SQ(gPlayer[0].camEye.z - sp2C) + SQ(gPlayer[0].camEye.x - actor->obj.pos.x)))); } -void func_8006AD18(Object_2F4* obj2F4) { +void func_8006AD18(Actor* actor) { bool sp34; - obj2F4->gravity = 1.5f; + actor->gravity = 1.5f; sp34 = false; - obj2F4->obj.rot.y = Math_RadToDeg( - Math_Atan2F(gPlayer[gPlayerNum].pos.x - obj2F4->obj.pos.x, gPlayer[gPlayerNum].unk_138 - obj2F4->obj.pos.z)); - if (obj2F4->obj.pos.y < -500.0f) { - obj2F4->obj.pos.y = -500.0f; - obj2F4->vel.y = 0.0f; - obj2F4->vel.x = 0.0f; - obj2F4->vel.z = 0.0f; + actor->obj.rot.y = Math_RadToDeg( + Math_Atan2F(gPlayer[gPlayerNum].pos.x - actor->obj.pos.x, gPlayer[gPlayerNum].unk_138 - actor->obj.pos.z)); + if (actor->obj.pos.y < -500.0f) { + actor->obj.pos.y = -500.0f; + actor->vel.y = 0.0f; + actor->vel.x = 0.0f; + actor->vel.z = 0.0f; sp34 = true; - obj2F4->unk_054 = true; + actor->iwork[1] = true; } if (!(gFrameCount & 0x1F)) { - func_8007F11C(OBJ_EFFECT_353, obj2F4->obj.pos.x, obj2F4->obj.pos.y + 180.0f, obj2F4->obj.pos.z, D_80177828); + func_8007F11C(OBJ_EFFECT_353, actor->obj.pos.x, actor->obj.pos.y + 180.0f, actor->obj.pos.z, D_80177828); } - switch (obj2F4->unk_0B8) { + switch (actor->unk_0B8) { case 0: - obj2F4->unk_0B6++; + actor->unk_0B6++; - if (obj2F4->unk_0B6 >= 30) { - obj2F4->unk_0B6 = 0; + if (actor->unk_0B6 >= 30) { + actor->unk_0B6 = 0; } - if (obj2F4->unk_0B6 == 0x15) { - obj2F4->unk_0B8 = 1; + if (actor->unk_0B6 == 0x15) { + actor->unk_0B8 = 1; - obj2F4->vel.y = 40.0f; - obj2F4->vel.z = -40.0f; - obj2F4->vel.x = 10.0f; + actor->vel.y = 40.0f; + actor->vel.z = -40.0f; + actor->vel.x = 10.0f; - obj2F4->unk_050 = 1 - obj2F4->unk_050; + actor->iwork[0] = 1 - actor->iwork[0]; - if (obj2F4->unk_050) { - obj2F4->vel.x *= -1.0f; + if (actor->iwork[0]) { + actor->vel.x *= -1.0f; } - if (obj2F4->unk_054) { - obj2F4->vel.x = 0.0f; - obj2F4->vel.z = -20.0f; + if (actor->iwork[1]) { + actor->vel.x = 0.0f; + actor->vel.z = -20.0f; } } break; case 1: - if (obj2F4->vel.y > 10.0f) { - obj2F4->unk_0B6++; - if (obj2F4->unk_0B6 >= 30) { - obj2F4->unk_0B6 = 29; + if (actor->vel.y > 10.0f) { + actor->unk_0B6++; + if (actor->unk_0B6 >= 30) { + actor->unk_0B6 = 29; } } else { - obj2F4->unk_0B6--; - if (obj2F4->unk_0B6 < 0) { - obj2F4->unk_0B6 = 0; + actor->unk_0B6--; + if (actor->unk_0B6 < 0) { + actor->unk_0B6 = 0; } } if (sp34) { - obj2F4->unk_0B8 = 0; + actor->unk_0B8 = 0; } break; } - if (obj2F4->unk_0D0 != 0) { - obj2F4->unk_0CE -= 10; - if ((obj2F4->unk_0CE <= 0) || (obj2F4->unk_0D0 >= 2)) { - func_8007D2C8(obj2F4->obj.pos.x, obj2F4->obj.pos.y + 180.0f, obj2F4->obj.pos.z, 10.0f); - func_8007BFFC(obj2F4->obj.pos.x, obj2F4->obj.pos.y + 180.0f, obj2F4->obj.pos.z, obj2F4->vel.x, - obj2F4->vel.y, obj2F4->vel.z, 8.0f, 30); - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); - func_8007A6F0(&obj2F4->obj.pos, 0x2903A008); - gHitCount += obj2F4->info.bonus; + if (actor->unk_0D0 != 0) { + actor->unk_0CE -= 10; + if ((actor->unk_0CE <= 0) || (actor->unk_0D0 >= 2)) { + func_8007D2C8(actor->obj.pos.x, actor->obj.pos.y + 180.0f, actor->obj.pos.z, 10.0f); + func_8007BFFC(actor->obj.pos.x, actor->obj.pos.y + 180.0f, actor->obj.pos.z, actor->vel.x, actor->vel.y, + actor->vel.z, 8.0f, 30); + Object_Kill(&actor->obj, &actor->sfxPos); + func_8007A6F0(&actor->obj.pos, 0x2903A008); + gHitCount += actor->info.bonus; D_80177850 = 15; } else { - obj2F4->unk_0D0 = 0; - obj2F4->timer_0C6 = 20; - Audio_PlaySfx(0x2903300E, &obj2F4->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); - func_8007D1E0(obj2F4->obj.pos.x, obj2F4->obj.pos.y + 180.0f, obj2F4->obj.pos.z, 5.0f); + actor->unk_0D0 = 0; + actor->timer_0C6 = 20; + Audio_PlaySfx(0x2903300E, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + func_8007D1E0(actor->obj.pos.x, actor->obj.pos.y + 180.0f, actor->obj.pos.z, 5.0f); } } } -void func_8006B094(Object_2F4* obj2F4) { +void func_8006B094(Actor* actor) { } s16 D_800CFF94[16] = { @@ -221,56 +221,56 @@ f32 D_800CFFC4[16] = { }; Gfx* D_800D0004[3] = { 0x04000170, 0x040084D0, 0x0400A630 }; -void func_8006B0A0(Object_2F4* obj2F4) { +void func_8006B0A0(Actor* actor) { Vec3f sp34; s32 temp_hi; - obj2F4->unk_04E++; + actor->unk_04E++; - if (obj2F4->unk_04E >= 100) { - obj2F4->unk_04E = 0; + if (actor->unk_04E >= 100) { + actor->unk_04E = 0; } - D_80176558[obj2F4->unk_046][obj2F4->unk_04E] = obj2F4->obj.pos.x; - D_80176878[obj2F4->unk_046][obj2F4->unk_04E] = obj2F4->obj.pos.y; - D_80176B98[obj2F4->unk_046][obj2F4->unk_04E] = obj2F4->obj.pos.z; - D_80176EB8[obj2F4->unk_046][obj2F4->unk_04E] = obj2F4->obj.rot.x; - D_801771D8[obj2F4->unk_046][obj2F4->unk_04E] = obj2F4->obj.rot.y; - D_80177500[obj2F4->unk_046][obj2F4->unk_04E] = obj2F4->obj.rot.z; + D_80176558[actor->unk_046][actor->unk_04E] = actor->obj.pos.x; + D_80176878[actor->unk_046][actor->unk_04E] = actor->obj.pos.y; + D_80176B98[actor->unk_046][actor->unk_04E] = actor->obj.pos.z; + D_80176EB8[actor->unk_046][actor->unk_04E] = actor->obj.rot.x; + D_801771D8[actor->unk_046][actor->unk_04E] = actor->obj.rot.y; + D_80177500[actor->unk_046][actor->unk_04E] = actor->obj.rot.z; - obj2F4->obj.rot.x -= 10.0f; - obj2F4->obj.rot.y += 3.0f; - obj2F4->obj.rot.z += 5.0f; + actor->obj.rot.x -= 10.0f; + actor->obj.rot.y += 3.0f; + actor->obj.rot.z += 5.0f; - Math_Vec3fFromAngles(&sp34, obj2F4->obj.rot.x, obj2F4->obj.rot.y, 40.0f); + Math_Vec3fFromAngles(&sp34, actor->obj.rot.x, actor->obj.rot.y, 40.0f); - obj2F4->vel.x = sp34.x; - obj2F4->vel.y = sp34.y; - obj2F4->vel.z = sp34.z; + actor->vel.x = sp34.x; + actor->vel.y = sp34.y; + actor->vel.z = sp34.z; - if ((obj2F4->timer_0BC == 0) && !(gFrameCount & 3)) { - temp_hi = (D_800CFF94[obj2F4->unk_04A] + obj2F4->unk_04E) % 100; - if (obj2F4->unk_04A == 0) { - func_8007D2C8(D_80176558[obj2F4->unk_046][temp_hi], D_80176878[obj2F4->unk_046][temp_hi], - D_80176B98[obj2F4->unk_046][temp_hi], 7.0f); + if ((actor->timer_0BC == 0) && !(gFrameCount & 3)) { + temp_hi = (D_800CFF94[actor->unk_04A] + actor->unk_04E) % 100; + if (actor->unk_04A == 0) { + func_8007D2C8(D_80176558[actor->unk_046][temp_hi], D_80176878[actor->unk_046][temp_hi], + D_80176B98[actor->unk_046][temp_hi], 7.0f); } else { - func_8007D2C8(D_80176558[obj2F4->unk_046][temp_hi], D_80176878[obj2F4->unk_046][temp_hi], - D_80176B98[obj2F4->unk_046][temp_hi], 4.0f); + func_8007D2C8(D_80176558[actor->unk_046][temp_hi], D_80176878[actor->unk_046][temp_hi], + D_80176B98[actor->unk_046][temp_hi], 4.0f); } - Audio_PlaySfx(0x2903B009, &obj2F4->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); - obj2F4->unk_04A++; + Audio_PlaySfx(0x2903B009, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + actor->unk_04A++; - if (obj2F4->unk_04A > 15) { - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); - D_80176550[obj2F4->unk_046] = 0; - gHitCount += obj2F4->info.bonus; + if (actor->unk_04A > 15) { + Object_Kill(&actor->obj, &actor->sfxPos); + D_80176550[actor->unk_046] = 0; + gHitCount += actor->info.bonus; D_80177850 = 15; } } } -void func_8006B46C(Object_2F4* obj2F4, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, u8 arg7, f32 arg8, +void func_8006B46C(Actor* actor, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, u8 arg7, f32 arg8, s32 arg9) { Vec3f sp34 = { 0.0f, 0.0f, 0.0f }; @@ -288,11 +288,11 @@ void func_8006B46C(Object_2F4* obj2F4, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f if (arg7 != 1) { RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); - if ((arg7 == 0) && (obj2F4->timer_0CA[0] != 0)) { - sp34.y += obj2F4->info.unk_1C; + if ((arg7 == 0) && (actor->timer_0CA[0] != 0)) { + sp34.y += actor->info.unk_1C; Matrix_MultVec3f(gGfxMatrix, &sp34, D_80161578); if (D_80161578->z > -500.0f) { - obj2F4->timer_0CA[0] = 0; + actor->timer_0CA[0] = 0; } } } else { @@ -309,16 +309,16 @@ void func_8006B46C(Object_2F4* obj2F4, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); } -void func_8006B74C(Object_2F4* obj2F4) { +void func_8006B74C(Actor* actor) { s16 var_s0; s16 temp_hi; - for (var_s0 = obj2F4->unk_04A; var_s0 < 16; var_s0++) { - temp_hi = (D_800CFF94[var_s0] + obj2F4->unk_04E) % 100; - func_8006B46C(obj2F4, D_80176558[obj2F4->unk_046][temp_hi], D_80176878[obj2F4->unk_046][temp_hi], - D_80176B98[obj2F4->unk_046][temp_hi], D_80176EB8[obj2F4->unk_046][temp_hi], - D_801771D8[obj2F4->unk_046][temp_hi], D_80177500[obj2F4->unk_046][temp_hi], D_800CFFB4[var_s0], - D_800CFFC4[var_s0], obj2F4->timer_0C6 & 1); + for (var_s0 = actor->unk_04A; var_s0 < 16; var_s0++) { + temp_hi = (D_800CFF94[var_s0] + actor->unk_04E) % 100; + func_8006B46C(actor, D_80176558[actor->unk_046][temp_hi], D_80176878[actor->unk_046][temp_hi], + D_80176B98[actor->unk_046][temp_hi], D_80176EB8[actor->unk_046][temp_hi], + D_801771D8[actor->unk_046][temp_hi], D_80177500[actor->unk_046][temp_hi], D_800CFFB4[var_s0], + D_800CFFC4[var_s0], actor->timer_0C6 & 1); } } @@ -375,96 +375,96 @@ void func_8006BB1C(f32 xPos, f32 yPos, f32 zPos) { } } -void func_8006BB78(Object_2F4* obj2F4) { +void func_8006BB78(Actor* actor) { Vec3f sp44; - switch (obj2F4->unk_0B8) { + switch (actor->unk_0B8) { case 0: - obj2F4->unk_13C = (Rand_ZeroOne() - 0.5f) * 1000.0f; - obj2F4->unk_0B8 = 1; + actor->fwork[10] = (Rand_ZeroOne() - 0.5f) * 1000.0f; + actor->unk_0B8 = 1; break; case 1: - switch (obj2F4->unk_046) { + switch (actor->unk_046) { case 0: - obj2F4->unk_114 += 2.0f; - if (obj2F4->unk_114 > 10.0f) { - obj2F4->unk_046 = 1; + actor->fwork[0] += 2.0f; + if (actor->fwork[0] > 10.0f) { + actor->unk_046 = 1; } break; case 1: - obj2F4->unk_114 -= 2.0f; - if (obj2F4->unk_114 < -10.0f) { - obj2F4->unk_046 = 0; + actor->fwork[0] -= 2.0f; + if (actor->fwork[0] < -10.0f) { + actor->unk_046 = 0; } break; } - Math_Vec3fFromAngles(&sp44, obj2F4->obj.rot.x, obj2F4->obj.rot.y, 10.0f); - obj2F4->vel.x = sp44.x; - obj2F4->vel.y = sp44.y; - obj2F4->vel.z = sp44.z; - if (fabsf((obj2F4->obj.pos.z + obj2F4->unk_13C) - gPlayer[0].unk_138) < 3000.0f) { - obj2F4->unk_0B8 = 2; - obj2F4->timer_0BC = 20; - obj2F4->vel.z = 0.0f; - obj2F4->vel.x = 0.0f; + Math_Vec3fFromAngles(&sp44, actor->obj.rot.x, actor->obj.rot.y, 10.0f); + actor->vel.x = sp44.x; + actor->vel.y = sp44.y; + actor->vel.z = sp44.z; + if (fabsf((actor->obj.pos.z + actor->fwork[10]) - gPlayer[0].unk_138) < 3000.0f) { + actor->unk_0B8 = 2; + actor->timer_0BC = 20; + actor->vel.z = 0.0f; + actor->vel.x = 0.0f; } break; case 2: - if (obj2F4->timer_0BC == 0) { - obj2F4->unk_0B8 = 3; - obj2F4->unk_0B6 = 1; - obj2F4->obj.pos.y += 30.0f; - obj2F4->timer_0BC = 30; - obj2F4->vel.y = 30.0f; - obj2F4->gravity = 1.0f; + if (actor->timer_0BC == 0) { + actor->unk_0B8 = 3; + actor->unk_0B6 = 1; + actor->obj.pos.y += 30.0f; + actor->timer_0BC = 30; + actor->vel.y = 30.0f; + actor->gravity = 1.0f; } break; case 3: - if (obj2F4->timer_0BC == 1) { - func_8007F11C(OBJ_EFFECT_353, obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, D_80177828); + if (actor->timer_0BC == 1) { + func_8007F11C(OBJ_EFFECT_353, actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, D_80177828); } - if (obj2F4->vel.y < 12.0f) { - Math_SmoothStepToF(&obj2F4->obj.rot.x, 180.0f, 0.1f, 7.0f, 0.01f); + if (actor->vel.y < 12.0f) { + Math_SmoothStepToF(&actor->obj.rot.x, 180.0f, 0.1f, 7.0f, 0.01f); } - if (obj2F4->obj.pos.y < (D_80177940 + 10.0f)) { - obj2F4->obj.pos.y = D_80177940; - obj2F4->unk_0B8 = 4; - obj2F4->unk_0B6 = 0; - obj2F4->vel.y = 0.0f; - obj2F4->gravity = 0.0f; - obj2F4->obj.rot.x = 0.0f; + if (actor->obj.pos.y < (D_80177940 + 10.0f)) { + actor->obj.pos.y = D_80177940; + actor->unk_0B8 = 4; + actor->unk_0B6 = 0; + actor->vel.y = 0.0f; + actor->gravity = 0.0f; + actor->obj.rot.x = 0.0f; } break; case 4: - if (obj2F4->timer_0BC == 0) { - obj2F4->unk_0B8 = 0; - obj2F4->obj.rot.y = Rand_ZeroOne() * 360.0f; + if (actor->timer_0BC == 0) { + actor->unk_0B8 = 0; + actor->obj.rot.y = Rand_ZeroOne() * 360.0f; } break; } - if ((obj2F4->obj.pos.y <= (D_80177940 + 10.0f)) && !(gFrameCount & 7)) { - func_8006BB1C(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z); + if ((actor->obj.pos.y <= (D_80177940 + 10.0f)) && !(gFrameCount & 7)) { + func_8006BB1C(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z); } if (!(gFrameCount & 7)) { - func_8006A900(((Rand_ZeroOne() - 0.5f) * 50.0f) + obj2F4->obj.pos.x, obj2F4->obj.pos.y + 10.0f, - ((Rand_ZeroOne() - 0.5f) * 50.0f) + obj2F4->obj.pos.z, 0.5f); + func_8006A900(((Rand_ZeroOne() - 0.5f) * 50.0f) + actor->obj.pos.x, actor->obj.pos.y + 10.0f, + ((Rand_ZeroOne() - 0.5f) * 50.0f) + actor->obj.pos.z, 0.5f); } - if ((obj2F4->unk_0D0 != 0) && (obj2F4->unk_0B6 != 0)) { - func_8007BFFC(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, 0.0f, obj2F4->vel.y, 0.0f, 3.0f, 5); - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); - obj2F4->unk_044 = 1; - func_80066254(obj2F4); + if ((actor->unk_0D0 != 0) && (actor->unk_0B6 != 0)) { + func_8007BFFC(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 0.0f, actor->vel.y, 0.0f, 3.0f, 5); + Object_Kill(&actor->obj, &actor->sfxPos); + actor->unk_044 = 1; + func_80066254(actor); } - obj2F4->unk_0D0 = 0; + actor->unk_0D0 = 0; } f32 D_800D001C[5] = { 0.0f, 30.0f, 60.0f, -60.0f, -30.0f }; // could be in-function @@ -477,123 +477,123 @@ void func_8006BF7C(f32 xPos, f32 yPos, f32 zPos) { } Vec3f D_800D0030 = { 0.0f, -10.0f, 0.0f }; // could be in-function -void func_8006C008(Object_2F4* obj2F4) { +void func_8006C008(Actor* actor) { f32 sp4C; f32 sp48; f32 sp44; s32 sp40; - switch (obj2F4->unk_0B8) { + switch (actor->unk_0B8) { case 40: - if (obj2F4->unk_04A & 4) { - obj2F4->obj.pos.x = gPlayer[0].pos.x + (*obj2F4).unk_120; - obj2F4->obj.pos.z = gPlayer[0].unk_138 + (*obj2F4).unk_124.x; + if (actor->unk_04A & 4) { + actor->obj.pos.x = gPlayer[0].pos.x + (*actor).fwork[3]; + actor->obj.pos.z = gPlayer[0].unk_138 + (*actor).fwork[4]; } - obj2F4->obj.rot.x += obj2F4->unk_114; - obj2F4->obj.rot.y += obj2F4->unk_118; - obj2F4->obj.rot.z += obj2F4->unk_11C; + actor->obj.rot.x += actor->fwork[0]; + actor->obj.rot.y += actor->fwork[1]; + actor->obj.rot.z += actor->fwork[2]; - if (((obj2F4->unk_04A & 1) == 1) && !(obj2F4->timer_0BC & 3)) { - func_8007D0E0(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, obj2F4->scale); + if (((actor->unk_04A & 1) == 1) && !(actor->timer_0BC & 3)) { + func_8007D0E0(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, actor->scale); } - if ((obj2F4->unk_124.y + obj2F4->obj.pos.y) < 0.0f) { - if (obj2F4->unk_050 >= 2) { - obj2F4->unk_11C = 0.0f; - obj2F4->unk_118 = 0.0f; - obj2F4->unk_114 = 0.0f; - obj2F4->vel.x = 0.0f; - obj2F4->vel.y = 0.0f; - obj2F4->vel.z = 0.0f; - obj2F4->gravity = 0.0f; + if ((actor->fwork[5] + actor->obj.pos.y) < 0.0f) { + if (actor->iwork[0] >= 2) { + actor->fwork[2] = 0.0f; + actor->fwork[1] = 0.0f; + actor->fwork[0] = 0.0f; + actor->vel.x = 0.0f; + actor->vel.y = 0.0f; + actor->vel.z = 0.0f; + actor->gravity = 0.0f; } else { - if (obj2F4->unk_04A & 4) { - switch (obj2F4->unk_046) { + if (actor->unk_04A & 4) { + switch (actor->unk_046) { case 2: - Audio_PlaySfx(0x19000024, &obj2F4->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + Audio_PlaySfx(0x19000024, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); break; case 25: - Audio_PlaySfx(0x29003031, &obj2F4->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + Audio_PlaySfx(0x29003031, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); break; } } - Math_SmoothStepToF(&obj2F4->unk_114, 0.0f, 0.8f, 1.0f, 0.01f); - Math_SmoothStepToF(&obj2F4->unk_118, 0.0f, 0.8f, 1.0f, 0.01f); - Math_SmoothStepToF(&obj2F4->unk_11C, 0.0f, 0.8f, 1.0f, 0.01f); - Math_SmoothStepToF(&obj2F4->vel.x, 0.0f, 0.5f, 1.0f, 0.01f); - obj2F4->obj.pos.y = 0.0f; - obj2F4->unk_050 += 1; - if (obj2F4->vel.y < 0.0f) { - if (obj2F4->unk_04A & 2) { - obj2F4->vel.y = obj2F4->vel.y * -0.05f; + Math_SmoothStepToF(&actor->fwork[0], 0.0f, 0.8f, 1.0f, 0.01f); + Math_SmoothStepToF(&actor->fwork[1], 0.0f, 0.8f, 1.0f, 0.01f); + Math_SmoothStepToF(&actor->fwork[2], 0.0f, 0.8f, 1.0f, 0.01f); + Math_SmoothStepToF(&actor->vel.x, 0.0f, 0.5f, 1.0f, 0.01f); + actor->obj.pos.y = 0.0f; + actor->iwork[0] += 1; + if (actor->vel.y < 0.0f) { + if (actor->unk_04A & 2) { + actor->vel.y = actor->vel.y * -0.05f; } else { - obj2F4->vel.y = obj2F4->vel.y * -0.3f; + actor->vel.y = actor->vel.y * -0.3f; } } } - obj2F4->unk_04A &= ~4; + actor->unk_04A &= ~4; } break; case 45: - obj2F4->obj.rot.y += obj2F4->unk_114; - obj2F4->obj.rot.z += obj2F4->unk_118; + actor->obj.rot.y += actor->fwork[0]; + actor->obj.rot.z += actor->fwork[1]; break; case 46: - obj2F4->obj.rot.x += obj2F4->unk_114; - obj2F4->obj.rot.y += obj2F4->unk_118; - obj2F4->obj.rot.z += obj2F4->unk_11C; + actor->obj.rot.x += actor->fwork[0]; + actor->obj.rot.y += actor->fwork[1]; + actor->obj.rot.z += actor->fwork[2]; - func_E6A810_801B6E20(obj2F4->obj.pos.x, obj2F4->obj.pos.z + D_80177D20, &sp4C, &sp48, &sp4C); + func_E6A810_801B6E20(actor->obj.pos.x, actor->obj.pos.z + D_80177D20, &sp4C, &sp48, &sp4C); - if (obj2F4->obj.pos.y < sp48) { - obj2F4->obj.pos.y = sp48; - obj2F4->unk_058++; - if (obj2F4->unk_058 >= 2) { - obj2F4->vel.x = 0.0f; - obj2F4->vel.y = 0.0f; - obj2F4->vel.z = 0.0f; - obj2F4->unk_114 = 0.0f; - obj2F4->unk_118 = 0.0f; - obj2F4->unk_11C = 0.0f; - obj2F4->gravity = 0.0f; + if (actor->obj.pos.y < sp48) { + actor->obj.pos.y = sp48; + actor->iwork[2]++; + if (actor->iwork[2] >= 2) { + actor->vel.x = 0.0f; + actor->vel.y = 0.0f; + actor->vel.z = 0.0f; + actor->fwork[0] = 0.0f; + actor->fwork[1] = 0.0f; + actor->fwork[2] = 0.0f; + actor->gravity = 0.0f; } else { - obj2F4->vel.y = -obj2F4->vel.y * 0.3f; + actor->vel.y = -actor->vel.y * 0.3f; } } break; case 47: - func_E6A810_801B6E20(obj2F4->obj.pos.x, obj2F4->obj.pos.z + D_80177D20, &sp4C, &sp48, &sp4C); + func_E6A810_801B6E20(actor->obj.pos.x, actor->obj.pos.z + D_80177D20, &sp4C, &sp48, &sp4C); - if (obj2F4->obj.pos.y < obj2F4->unk_120 + (-100.0f + sp48)) { - obj2F4->obj.pos.y = obj2F4->unk_120 + sp48; - obj2F4->unk_050 = 0; - obj2F4->unk_058 = 1; - obj2F4->vel.x = 0.0f; - obj2F4->vel.y = 0.0f; - obj2F4->vel.z = 0.0f; - obj2F4->gravity = 0.0f; - obj2F4->unk_114 = 0.0f; - obj2F4->unk_118 = 0.0f; - obj2F4->unk_11C = 0.0f; + if (actor->obj.pos.y < actor->fwork[3] + (-100.0f + sp48)) { + actor->obj.pos.y = actor->fwork[3] + sp48; + actor->iwork[0] = 0; + actor->iwork[2] = 1; + actor->vel.x = 0.0f; + actor->vel.y = 0.0f; + actor->vel.z = 0.0f; + actor->gravity = 0.0f; + actor->fwork[0] = 0.0f; + actor->fwork[1] = 0.0f; + actor->fwork[2] = 0.0f; } - obj2F4->obj.rot.x += obj2F4->unk_114; - obj2F4->obj.rot.y += obj2F4->unk_118; - obj2F4->obj.rot.z += obj2F4->unk_11C; + actor->obj.rot.x += actor->fwork[0]; + actor->obj.rot.y += actor->fwork[1]; + actor->obj.rot.z += actor->fwork[2]; - if ((obj2F4->unk_050 == 1) && !(gFrameCount & 7)) { - func_8007D0E0(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, 2.0f); + if ((actor->iwork[0] == 1) && !(gFrameCount & 7)) { + func_8007D0E0(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 2.0f); } - if (obj2F4->unk_058 == 1) { - if ((obj2F4->unk_054 == 1) && ((obj2F4->unk_048 == 8) || (obj2F4->unk_048 == 9))) { - func_8007D2C8(obj2F4->obj.pos.x, sp48 + 20.0f, obj2F4->obj.pos.z, 8.0f); + if (actor->iwork[2] == 1) { + if ((actor->iwork[1] == 1) && ((actor->unk_048 == 8) || (actor->unk_048 == 9))) { + func_8007D2C8(actor->obj.pos.x, sp48 + 20.0f, actor->obj.pos.z, 8.0f); } - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); + Object_Kill(&actor->obj, &actor->sfxPos); } break; @@ -603,194 +603,191 @@ void func_8006C008(Object_2F4* obj2F4) { case 52: case 53: case 55: - if (((obj2F4->timer_0BC == 0) || (func_8006351C(obj2F4->index, &obj2F4->obj.pos, &D_800D0030, 1) != 0) || - (obj2F4->obj.pos.y < (D_80177940 + 10.0f))) && - (obj2F4->timer_0BE == 0)) { - func_8007B8F8(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z + 50.0f, obj2F4->scale * 10.0f); - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); - func_8007A6F0(&obj2F4->obj.pos, 0x2903A008); + if (((actor->timer_0BC == 0) || (func_8006351C(actor->index, &actor->obj.pos, &D_800D0030, 1) != 0) || + (actor->obj.pos.y < (D_80177940 + 10.0f))) && + (actor->timer_0BE == 0)) { + func_8007B8F8(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z + 50.0f, actor->scale * 10.0f); + Object_Kill(&actor->obj, &actor->sfxPos); + func_8007A6F0(&actor->obj.pos, 0x2903A008); } break; case 56: - Math_SmoothStepToF(&obj2F4->scale, 0.0f, 0.1f, 2.0f, 0.0001f); - if (((obj2F4->timer_0BC == 0) || (func_8006351C(obj2F4->index, &obj2F4->obj.pos, &D_800D0030, 1) != 0) || - (obj2F4->obj.pos.y < (D_80177940 + 10.0f))) && - (obj2F4->timer_0BE == 0)) { - func_8007B8F8(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z + 50.0f, obj2F4->scale * 10.0f); - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); - func_8007A6F0(&obj2F4->obj.pos, 0x2903A008); + Math_SmoothStepToF(&actor->scale, 0.0f, 0.1f, 2.0f, 0.0001f); + if (((actor->timer_0BC == 0) || (func_8006351C(actor->index, &actor->obj.pos, &D_800D0030, 1) != 0) || + (actor->obj.pos.y < (D_80177940 + 10.0f))) && + (actor->timer_0BE == 0)) { + func_8007B8F8(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z + 50.0f, actor->scale * 10.0f); + Object_Kill(&actor->obj, &actor->sfxPos); + func_8007A6F0(&actor->obj.pos, 0x2903A008); } break; case 58: - if (obj2F4->unk_046 == 0) { - obj2F4->unk_046++; - obj2F4->unk_114 = (Rand_ZeroOne() - 0.5f) * 30.0f; - obj2F4->unk_118 = (Rand_ZeroOne() - 0.5f) * 30.0f; - obj2F4->unk_11C = (Rand_ZeroOne() - 0.5f) * 30.0f; + if (actor->unk_046 == 0) { + actor->unk_046++; + actor->fwork[0] = (Rand_ZeroOne() - 0.5f) * 30.0f; + actor->fwork[1] = (Rand_ZeroOne() - 0.5f) * 30.0f; + actor->fwork[2] = (Rand_ZeroOne() - 0.5f) * 30.0f; } - obj2F4->obj.rot.x += obj2F4->unk_114; - obj2F4->obj.rot.y += obj2F4->unk_118; - obj2F4->obj.rot.z += obj2F4->unk_11C; + actor->obj.rot.x += actor->fwork[0]; + actor->obj.rot.y += actor->fwork[1]; + actor->obj.rot.z += actor->fwork[2]; - if (((obj2F4->timer_0BC == 0) || (func_8006351C(obj2F4->index, &obj2F4->obj.pos, &D_800D0030, 1) != 0) || - (obj2F4->obj.pos.y < (D_80177940 + 10.0f))) && - (obj2F4->timer_0BE == 0)) { - func_8007B8F8(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z + 50.0f, obj2F4->scale * 10.0f); - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); - func_8007A6F0(&obj2F4->obj.pos, 0x2903A008); + if (((actor->timer_0BC == 0) || (func_8006351C(actor->index, &actor->obj.pos, &D_800D0030, 1) != 0) || + (actor->obj.pos.y < (D_80177940 + 10.0f))) && + (actor->timer_0BE == 0)) { + func_8007B8F8(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z + 50.0f, actor->scale * 10.0f); + Object_Kill(&actor->obj, &actor->sfxPos); + func_8007A6F0(&actor->obj.pos, 0x2903A008); } break; case 54: - if (((obj2F4->timer_0BC == 0) || (func_8006351C(obj2F4->index, &obj2F4->obj.pos, &D_800D0030, 1) != 0) || - (obj2F4->obj.pos.y < (D_80177940 + 10.0f))) && - (obj2F4->timer_0BE == 0)) { - func_8007B8F8(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z + 70.0f, obj2F4->scale * 20.0f); - func_8007B8F8(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z + 70.0f, obj2F4->scale * 20.0f); - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); - func_8007A6F0(&obj2F4->obj.pos, 0x2903A008); + if (((actor->timer_0BC == 0) || (func_8006351C(actor->index, &actor->obj.pos, &D_800D0030, 1) != 0) || + (actor->obj.pos.y < (D_80177940 + 10.0f))) && + (actor->timer_0BE == 0)) { + func_8007B8F8(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z + 70.0f, actor->scale * 20.0f); + func_8007B8F8(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z + 70.0f, actor->scale * 20.0f); + Object_Kill(&actor->obj, &actor->sfxPos); + func_8007A6F0(&actor->obj.pos, 0x2903A008); } break; case 50: - if ((obj2F4->unk_050 == 2) && (obj2F4->timer_0BC == 0)) { - func_8007D2C8(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, 5.0f); - obj2F4->timer_0BC = 4; + if ((actor->iwork[0] == 2) && (actor->timer_0BC == 0)) { + func_8007D2C8(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 5.0f); + actor->timer_0BC = 4; } - obj2F4->obj.rot.x += obj2F4->unk_114; - obj2F4->obj.rot.y += obj2F4->unk_118; - obj2F4->obj.rot.z += obj2F4->unk_11C; - if (func_8006351C(obj2F4->index, &obj2F4->obj.pos, &D_800C9F2C, 1) != 0) { - obj2F4->vel.x *= -0.7f; + actor->obj.rot.x += actor->fwork[0]; + actor->obj.rot.y += actor->fwork[1]; + actor->obj.rot.z += actor->fwork[2]; + if (func_8006351C(actor->index, &actor->obj.pos, &D_800C9F2C, 1) != 0) { + actor->vel.x *= -0.7f; } - if (obj2F4->obj.pos.y < D_80177940) { - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); + if (actor->obj.pos.y < D_80177940) { + Object_Kill(&actor->obj, &actor->sfxPos); } break; case 57: - obj2F4->obj.rot.x += obj2F4->unk_114; - obj2F4->obj.rot.y += obj2F4->unk_118; - obj2F4->obj.rot.z += obj2F4->unk_11C; + actor->obj.rot.x += actor->fwork[0]; + actor->obj.rot.y += actor->fwork[1]; + actor->obj.rot.z += actor->fwork[2]; - if (func_8006351C(obj2F4->index, &obj2F4->obj.pos, &D_800C9F2C, 1) != 0) { - obj2F4->vel.x *= -0.7f; + if (func_8006351C(actor->index, &actor->obj.pos, &D_800C9F2C, 1) != 0) { + actor->vel.x *= -0.7f; } - if (obj2F4->obj.pos.y < D_80177940) { - if (obj2F4->unk_050 >= 3) { - obj2F4->vel.y = 0.0f; - obj2F4->gravity = 0.0f; - obj2F4->unk_11C = 0.0f; - obj2F4->unk_118 = 0.0f; - obj2F4->unk_114 = 0.0f; + if (actor->obj.pos.y < D_80177940) { + if (actor->iwork[0] >= 3) { + actor->vel.y = 0.0f; + actor->gravity = 0.0f; + actor->fwork[2] = 0.0f; + actor->fwork[1] = 0.0f; + actor->fwork[0] = 0.0f; } else { - obj2F4->unk_050++; - obj2F4->vel.y = -obj2F4->vel.y * 0.7f; - obj2F4->obj.pos.y = D_80177940; - obj2F4->unk_114 *= 0.5f; - obj2F4->unk_118 *= 0.5f; - obj2F4->unk_11C *= 0.5f; + actor->iwork[0]++; + actor->vel.y = -actor->vel.y * 0.7f; + actor->obj.pos.y = D_80177940; + actor->fwork[0] *= 0.5f; + actor->fwork[1] *= 0.5f; + actor->fwork[2] *= 0.5f; } } break; default: - if (obj2F4->unk_046 == 0) { - obj2F4->unk_046++; - obj2F4->unk_13C = (Rand_ZeroOne() - 0.5f) * 30.0f; - obj2F4->unk_140 = (Rand_ZeroOne() - 0.5f) * 30.0f; - obj2F4->unk_144 = (Rand_ZeroOne() - 0.5f) * 30.0f; + if (actor->unk_046 == 0) { + actor->unk_046++; + actor->fwork[10] = (Rand_ZeroOne() - 0.5f) * 30.0f; + actor->fwork[11] = (Rand_ZeroOne() - 0.5f) * 30.0f; + actor->fwork[12] = (Rand_ZeroOne() - 0.5f) * 30.0f; } - obj2F4->obj.rot.x += obj2F4->unk_13C; - obj2F4->obj.rot.y += obj2F4->unk_140; - obj2F4->obj.rot.z += obj2F4->unk_144; + actor->obj.rot.x += actor->fwork[10]; + actor->obj.rot.y += actor->fwork[11]; + actor->obj.rot.z += actor->fwork[12]; - if (obj2F4->unk_0B8 == 0x46) { - if ((obj2F4->timer_0BC == 0) || (func_8006351C(obj2F4->index, &obj2F4->obj.pos, &D_800D0030, 1) != 0) || - (obj2F4->obj.pos.y < (D_80177940 + 10.0f))) { - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); + if (actor->unk_0B8 == 0x46) { + if ((actor->timer_0BC == 0) || (func_8006351C(actor->index, &actor->obj.pos, &D_800D0030, 1) != 0) || + (actor->obj.pos.y < (D_80177940 + 10.0f))) { + Object_Kill(&actor->obj, &actor->sfxPos); } - } else if (obj2F4->unk_0B8 == 0x27) { - if (((obj2F4->timer_0BC == 0) || - (func_8006351C(obj2F4->index, &obj2F4->obj.pos, &D_800D0030, 1) != 0) || - (obj2F4->obj.pos.y < (D_80177940 + 10.0f))) && - (obj2F4->timer_0BE == 0)) { - func_8007D0E0(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, 10.0f); - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); - func_8007A6F0(&obj2F4->obj.pos, 0x2903A008); + } else if (actor->unk_0B8 == 0x27) { + if (((actor->timer_0BC == 0) || (func_8006351C(actor->index, &actor->obj.pos, &D_800D0030, 1) != 0) || + (actor->obj.pos.y < (D_80177940 + 10.0f))) && + (actor->timer_0BE == 0)) { + func_8007D0E0(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 10.0f); + Object_Kill(&actor->obj, &actor->sfxPos); + func_8007A6F0(&actor->obj.pos, 0x2903A008); } - } else if (((obj2F4->unk_0B8 >= 0x29) && (obj2F4->unk_0B8 < 0x2D)) || (obj2F4->unk_0B8 == 0x3B)) { - if (((obj2F4->timer_0BC == 0) || - (func_8006351C(obj2F4->index, &obj2F4->obj.pos, &D_800D0030, 1) != 0)) && - (obj2F4->timer_0BE == 0)) { - func_8007D0E0(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, 2.0f * obj2F4->scale); - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); - func_8007A6F0(&obj2F4->obj.pos, 0x2903A008); + } else if (((actor->unk_0B8 >= 0x29) && (actor->unk_0B8 < 0x2D)) || (actor->unk_0B8 == 0x3B)) { + if (((actor->timer_0BC == 0) || (func_8006351C(actor->index, &actor->obj.pos, &D_800D0030, 1) != 0)) && + (actor->timer_0BE == 0)) { + func_8007D0E0(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 2.0f * actor->scale); + Object_Kill(&actor->obj, &actor->sfxPos); + func_8007A6F0(&actor->obj.pos, 0x2903A008); } - if (func_800A73E4(&sp44, &sp40, obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z)) { - func_8007B228(obj2F4->obj.pos.x, sp44, obj2F4->obj.pos.z, 2.0f); - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); + if (func_800A73E4(&sp44, &sp40, actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z)) { + func_8007B228(actor->obj.pos.x, sp44, actor->obj.pos.z, 2.0f); + Object_Kill(&actor->obj, &actor->sfxPos); } - } else if (obj2F4->unk_0B8 >= 0xA) { - if (!(obj2F4->timer_0BC & 3)) { - func_8007D0E0(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, obj2F4->scale); + } else if (actor->unk_0B8 >= 0xA) { + if (!(actor->timer_0BC & 3)) { + func_8007D0E0(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, actor->scale); } - if (((obj2F4->timer_0BC == 0) || - (func_8006351C(obj2F4->index, &obj2F4->obj.pos, &D_800D0030, 1) != 0) || - (obj2F4->obj.pos.y < (D_80177940 + 10.0f))) && - (obj2F4->timer_0BE == 0)) { - func_8007BFFC(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, obj2F4->vel.x, obj2F4->vel.y, - obj2F4->vel.z, obj2F4->scale * 1.5f, 4); - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); - func_8007A6F0(&obj2F4->obj.pos, 0x2903A008); + if (((actor->timer_0BC == 0) || (func_8006351C(actor->index, &actor->obj.pos, &D_800D0030, 1) != 0) || + (actor->obj.pos.y < (D_80177940 + 10.0f))) && + (actor->timer_0BE == 0)) { + func_8007BFFC(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, actor->vel.x, actor->vel.y, + actor->vel.z, actor->scale * 1.5f, 4); + Object_Kill(&actor->obj, &actor->sfxPos); + func_8007A6F0(&actor->obj.pos, 0x2903A008); } } else { - if ((obj2F4->unk_0B8 == 3) && !(obj2F4->timer_0BC & 7)) { - func_8007D0E0(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, 1.5f); + if ((actor->unk_0B8 == 3) && !(actor->timer_0BC & 7)) { + func_8007D0E0(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 1.5f); } - if ((func_8006351C(obj2F4->index, &obj2F4->obj.pos, &D_800D0030, 1) != 0) || - (obj2F4->obj.pos.y < (D_80177940 + 10.0f))) { + if ((func_8006351C(actor->index, &actor->obj.pos, &D_800D0030, 1) != 0) || + (actor->obj.pos.y < (D_80177940 + 10.0f))) { if (gLevelType == LEVELTYPE_SPACE) { - func_8007D0E0(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, 2.0f); - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); + func_8007D0E0(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 2.0f); + Object_Kill(&actor->obj, &actor->sfxPos); return; } - obj2F4->vel.y *= -0.2f; - obj2F4->obj.pos.y += obj2F4->vel.y * 5.0f; - obj2F4->unk_050++; + actor->vel.y *= -0.2f; + actor->obj.pos.y += actor->vel.y * 5.0f; + actor->iwork[0]++; - if (obj2F4->unk_050 >= 2) { - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); + if (actor->iwork[0] >= 2) { + Object_Kill(&actor->obj, &actor->sfxPos); } - if ((obj2F4->unk_0B8 != 2) && (obj2F4->unk_0B8 != 4)) { - func_8006BF7C(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z); + if ((actor->unk_0B8 != 2) && (actor->unk_0B8 != 4)) { + func_8006BF7C(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z); } else if (gCurrentLevel == LEVEL_FORTUNA) { - func_8007BC7C(((Rand_ZeroOne() - 0.5f) * 10.0f) + obj2F4->obj.pos.x, obj2F4->obj.pos.y, - obj2F4->obj.pos.z, 1.0f); - func_8007BC7C(((Rand_ZeroOne() - 0.5f) * 10.0f) + obj2F4->obj.pos.x, obj2F4->obj.pos.y, - obj2F4->obj.pos.z, 1.0f); - func_8007BC7C(((Rand_ZeroOne() - 0.5f) * 10.0f) + obj2F4->obj.pos.x, obj2F4->obj.pos.y, - obj2F4->obj.pos.z, 1.0f); + func_8007BC7C(((Rand_ZeroOne() - 0.5f) * 10.0f) + actor->obj.pos.x, actor->obj.pos.y, + actor->obj.pos.z, 1.0f); + func_8007BC7C(((Rand_ZeroOne() - 0.5f) * 10.0f) + actor->obj.pos.x, actor->obj.pos.y, + actor->obj.pos.z, 1.0f); + func_8007BC7C(((Rand_ZeroOne() - 0.5f) * 10.0f) + actor->obj.pos.x, actor->obj.pos.y, + actor->obj.pos.z, 1.0f); } } - if (obj2F4->unk_0B8 == 4) { - if ((gCurrentLevel == LEVEL_KATINA) && (obj2F4->timer_0BC == 0)) { - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); + if (actor->unk_0B8 == 4) { + if ((gCurrentLevel == LEVEL_KATINA) && (actor->timer_0BC == 0)) { + Object_Kill(&actor->obj, &actor->sfxPos); } } else { - if (obj2F4->timer_0BC & 1) { - func_8007D24C(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, 1.0f); + if (actor->timer_0BC & 1) { + func_8007D24C(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 1.0f); } - if ((gLevelType == LEVELTYPE_SPACE) && (obj2F4->timer_0BC == 0)) { - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); + if ((gLevelType == LEVELTYPE_SPACE) && (actor->timer_0BC == 0)) { + Object_Kill(&actor->obj, &actor->sfxPos); } } } @@ -798,7 +795,7 @@ void func_8006C008(Object_2F4* obj2F4) { } } -void func_8006D0F4(Object_2F4* obj2F4) { +void func_8006D0F4(Actor* actor) { s32 i; s32 j; f32* hitboxData; @@ -822,9 +819,9 @@ void func_8006D0F4(Object_2F4* obj2F4) { if (count != 0) { Matrix_RotateY(gCalcMatrix, -gObjects80[i].obj.rot.y * M_DTOR, 0); - spA8.x = obj2F4->obj.pos.x - gObjects80[i].obj.pos.x; - spA8.y = obj2F4->obj.pos.y - gObjects80[i].obj.pos.y; - spA8.z = obj2F4->obj.pos.z - gObjects80[i].obj.pos.z; + spA8.x = actor->obj.pos.x - gObjects80[i].obj.pos.x; + spA8.y = actor->obj.pos.y - gObjects80[i].obj.pos.y; + spA8.z = actor->obj.pos.z - gObjects80[i].obj.pos.z; Matrix_MultVec3fNoTranslate(gCalcMatrix, &spA8, &sp9C); @@ -840,7 +837,7 @@ void func_8006D0F4(Object_2F4* obj2F4) { D_80161A7C = 10; D_80161A80 = 10; D_80161A84 = 10; - obj2F4->unk_0C8 = 5; + actor->unk_0C8 = 5; } hitboxData += 6; } @@ -969,7 +966,7 @@ u8 D_800D0DBC[6][4] = { { 80, 255, 80, 255 }, { 255, 80, 80, 255 }, { 255, 255, 80, 255 }, }; -void func_8006D36C(Object_2F4* obj2F4) { +void func_8006D36C(Actor* actor) { u16** var_v1; u16* temp_s1; u16* temp_v0_4; @@ -1024,523 +1021,523 @@ void func_8006D36C(Object_2F4* obj2F4) { var_v1 = SEGMENTED_TO_VIRTUAL(D_603D9E8); break; } - temp_s1 = SEGMENTED_TO_VIRTUAL(var_v1[obj2F4->unk_0E4]); + temp_s1 = SEGMENTED_TO_VIRTUAL(var_v1[actor->unk_0E4]); - switch (temp_s1[obj2F4->unk_0E6] & 0xFE00) { + switch (temp_s1[actor->unk_0E6] & 0xFE00) { case 0xFE00: - obj2F4->unk_0B8 = 200; - if (obj2F4->info.unk_10 > 10000.0f) { - obj2F4->info.unk_10 = 100.0f; + actor->unk_0B8 = 200; + if (actor->info.unk_10 > 10000.0f) { + actor->info.unk_10 = 100.0f; } break; case 0xD000: - Audio_KillSfx(&obj2F4->sfxPos); - obj2F4->unk_0B4 = temp_s1[obj2F4->unk_0E6 + 1]; + Audio_KillSfx(&actor->sfxPos); + actor->unk_0B4 = temp_s1[actor->unk_0E6 + 1]; - if (obj2F4->unk_0B4 == 40) { - obj2F4->timer_0C2 = 10000; + if (actor->unk_0B4 == 40) { + actor->timer_0C2 = 10000; } else { - obj2F4->timer_0C2 = 0; + actor->timer_0C2 = 0; } - obj2F4->unk_140 = 0.0f; - obj2F4->unk_144 = 0.0f; + actor->fwork[11] = 0.0f; + actor->fwork[12] = 0.0f; - if ((obj2F4->unk_0B4 == 64) || (obj2F4->unk_0B4 == 81)) { - obj2F4->unk_150 = 0.0f; - } else if (obj2F4->unk_0B4 == 79) { - obj2F4->info.drawType = 2; + if ((actor->unk_0B4 == 64) || (actor->unk_0B4 == 81)) { + actor->fwork[15] = 0.0f; + } else if (actor->unk_0B4 == 79) { + actor->info.drawType = 2; } - obj2F4->unk_0CE = temp_s1[obj2F4->unk_0E6] & 0x1FF; - obj2F4->unk_0E6 += 2; + actor->unk_0CE = temp_s1[actor->unk_0E6] & 0x1FF; + actor->unk_0E6 += 2; - if ((obj2F4->unk_0B4 >= 200) && (obj2F4->unk_0B4 < 300)) { - obj2F4->unk_046 = 100; - obj2F4->info.hitbox = D_800CBEC4; - obj2F4->info.unk_1C = 1.0f; + if ((actor->unk_0B4 >= 200) && (actor->unk_0B4 < 300)) { + actor->unk_046 = 100; + actor->info.hitbox = D_800CBEC4; + actor->info.unk_1C = 1.0f; for (i = 0; i < 2; i++) { if (D_80176550[i] == 0) { D_80176550[i] = 1; - obj2F4->unk_046 = i; + actor->unk_046 = i; for (j = 0; j < 100; j++) { - D_80176878[i][j] = obj2F4->obj.pos.y; - D_80176B98[i][j] = obj2F4->obj.pos.z; + D_80176878[i][j] = actor->obj.pos.y; + D_80176B98[i][j] = actor->obj.pos.z; } - if (obj2F4->unk_0B4 == 200) { - Audio_PlaySfx(0x11032049, &obj2F4->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + if (actor->unk_0B4 == 200) { + Audio_PlaySfx(0x11032049, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } break; } } - if (obj2F4->unk_046 == 100) { - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); + if (actor->unk_046 == 100) { + Object_Kill(&actor->obj, &actor->sfxPos); } } - if ((obj2F4->unk_0B4 == 2) || (obj2F4->unk_0B4 == 43)) { - obj2F4->unk_0C9 = 1; - obj2F4->unk_07C = 1; + if ((actor->unk_0B4 == 2) || (actor->unk_0B4 == 43)) { + actor->unk_0C9 = 1; + actor->iwork[11] = 1; } - if (obj2F4->unk_0B4 == 81) { - obj2F4->unk_0C9 = 1; + if (actor->unk_0B4 == 81) { + actor->unk_0C9 = 1; } if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_3) { - if (obj2F4->unk_0B4 == 86) { + if (actor->unk_0B4 == 86) { func_8001D4AC(0x36, 0x14, 0xA, 0xA); } - if (obj2F4->unk_0B4 == 85) { + if (actor->unk_0B4 == 85) { func_8001D4AC(0x37, 0x14, 0xA, 0xA); } } - if (obj2F4->unk_0B4 == 103) { - obj2F4->unk_0B6 = 0; + if (actor->unk_0B4 == 103) { + actor->unk_0B6 = 0; } - if (obj2F4->unk_0B4 == 104) { - obj2F4->unk_0B6 = Animation_GetFrameCount(&D_6014658) - 1; + if (actor->unk_0B4 == 104) { + actor->unk_0B6 = Animation_GetFrameCount(&D_6014658) - 1; } - if (obj2F4->unk_0B4 < 200) { - obj2F4->info.hitbox = SEGMENTED_TO_VIRTUAL(D_800D003C[obj2F4->unk_0B4].unk_04); - obj2F4->scale = D_800D003C[obj2F4->unk_0B4].unk_08; - obj2F4->info.unk_16 = D_800D003C[obj2F4->unk_0B4].unk_14; - obj2F4->info.unk_14 = D_800D003C[obj2F4->unk_0B4].unk_15; - obj2F4->info.unk_19 = D_800D003C[obj2F4->unk_0B4].unk_17; - obj2F4->info.unk_1C = D_800D003C[obj2F4->unk_0B4].unk_18; - obj2F4->info.bonus = D_800D003C[obj2F4->unk_0B4].unk_1C; + if (actor->unk_0B4 < 200) { + actor->info.hitbox = SEGMENTED_TO_VIRTUAL(D_800D003C[actor->unk_0B4].unk_04); + actor->scale = D_800D003C[actor->unk_0B4].unk_08; + actor->info.unk_16 = D_800D003C[actor->unk_0B4].unk_14; + actor->info.unk_14 = D_800D003C[actor->unk_0B4].unk_15; + actor->info.unk_19 = D_800D003C[actor->unk_0B4].unk_17; + actor->info.unk_1C = D_800D003C[actor->unk_0B4].unk_18; + actor->info.bonus = D_800D003C[actor->unk_0B4].unk_1C; - if (obj2F4->unk_0B4 == 78) { - obj2F4->info.damage = 0; + if (actor->unk_0B4 == 78) { + actor->info.damage = 0; } - obj2F4->info.unk_10 = D_800D003C[obj2F4->unk_0B4].unk_0C; - obj2F4->unk_178 = D_800D003C[obj2F4->unk_0B4].unk_10; + actor->info.unk_10 = D_800D003C[actor->unk_0B4].unk_0C; + actor->fwork[25] = D_800D003C[actor->unk_0B4].unk_10; - switch (D_800D003C[obj2F4->unk_0B4].unk_16) { + switch (D_800D003C[actor->unk_0B4].unk_16) { case 1: - if ((gCurrentLevel != LEVEL_SOLAR) && (obj2F4->unk_0B4 != 6) && - ((gCurrentLevel != LEVEL_CORNERIA) || (obj2F4->unk_0B4 != 8))) { - Audio_PlaySfx(0x31000011, &obj2F4->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + if ((gCurrentLevel != LEVEL_SOLAR) && (actor->unk_0B4 != 6) && + ((gCurrentLevel != LEVEL_CORNERIA) || (actor->unk_0B4 != 8))) { + Audio_PlaySfx(0x31000011, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } break; case 2: - Audio_PlaySfx(0x3100000C, &obj2F4->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + Audio_PlaySfx(0x3100000C, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); break; case 3: - Audio_PlaySfx(0x11030010, &obj2F4->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + Audio_PlaySfx(0x11030010, &actor->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); break; case 4: - Audio_PlaySfx(0x31012039, &obj2F4->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + Audio_PlaySfx(0x31012039, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); break; case 5: - Audio_PlaySfx(0x1900302B, &obj2F4->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + Audio_PlaySfx(0x1900302B, &actor->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); break; case 6: - Audio_PlaySfx(0x31000014, &obj2F4->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + Audio_PlaySfx(0x31000014, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); break; case 7: - Audio_PlaySfx(0x31000015, &obj2F4->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + Audio_PlaySfx(0x31000015, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); break; } - if (gPlayer[0].unk_138 < obj2F4->obj.pos.z) { - obj2F4->info.unk_10 = 3000.0f; + if (gPlayer[0].unk_138 < actor->obj.pos.z) { + actor->info.unk_10 = 3000.0f; } - if (obj2F4->info.unk_16 == 0) { - obj2F4->obj.rot.z = obj2F4->unk_170 = obj2F4->unk_0F4.z; - if (obj2F4->unk_0B4 != 31) { - obj2F4->unk_0F4.z = 0.0f; + if (actor->info.unk_16 == 0) { + actor->obj.rot.z = actor->fwork[23] = actor->unk_0F4.z; + if (actor->unk_0B4 != 31) { + actor->unk_0F4.z = 0.0f; } } } - func_8006D36C(obj2F4); + func_8006D36C(actor); break; case 0xD200: - obj2F4->unk_080 = temp_s1[obj2F4->unk_0E6 + 1]; + actor->iwork[12] = temp_s1[actor->unk_0E6 + 1]; - if (obj2F4->unk_080 < 4) { - D_800CFF80[obj2F4->unk_080] = obj2F4->index; + if (actor->iwork[12] < 4) { + D_800CFF80[actor->iwork[12]] = actor->index; } - obj2F4->unk_0E6 += 2; - func_8006D36C(obj2F4); + actor->unk_0E6 += 2; + func_8006D36C(actor); break; case 0xE200: - obj2F4->unk_08C = temp_s1[obj2F4->unk_0E6 + 1]; - obj2F4->unk_090 = temp_s1[obj2F4->unk_0E6] & 0x1FF; - obj2F4->unk_0E6 += 2; - func_8006D36C(obj2F4); + actor->iwork[15] = temp_s1[actor->unk_0E6 + 1]; + actor->iwork[16] = temp_s1[actor->unk_0E6] & 0x1FF; + actor->unk_0E6 += 2; + func_8006D36C(actor); break; case 0x0600: - D_80177E78 = obj2F4->index; - D_80177F10.x = obj2F4->obj.pos.x; - D_80177F10.y = obj2F4->obj.pos.y; - D_80177F10.z = obj2F4->obj.pos.z; - D_80177E88.x = obj2F4->obj.rot.x; - D_80177E88.y = obj2F4->obj.rot.y; - D_80177E88.z = obj2F4->obj.rot.z; - obj2F4->unk_0E6 += 2; - func_8006D36C(obj2F4); + D_80177E78 = actor->index; + D_80177F10.x = actor->obj.pos.x; + D_80177F10.y = actor->obj.pos.y; + D_80177F10.z = actor->obj.pos.z; + D_80177E88.x = actor->obj.rot.x; + D_80177E88.y = actor->obj.rot.y; + D_80177E88.z = actor->obj.rot.z; + actor->unk_0E6 += 2; + func_8006D36C(actor); break; case 0xE000: - if (temp_s1[obj2F4->unk_0E6 + 1] == 0xE) { - obj2F4->unk_0B8 = 0xA; - obj2F4->unk_140 = 0.0f; - obj2F4->unk_0E6 += 2; + if (temp_s1[actor->unk_0E6 + 1] == 0xE) { + actor->unk_0B8 = 0xA; + actor->fwork[11] = 0.0f; + actor->unk_0E6 += 2; break; } - if (temp_s1[obj2F4->unk_0E6 + 1] == 0xF) { - obj2F4->info.hitbox = SEGMENTED_TO_VIRTUAL(D_800CBEC4); - obj2F4->unk_0B8 = 0xB; - obj2F4->unk_0E6 += 2; + if (temp_s1[actor->unk_0E6 + 1] == 0xF) { + actor->info.hitbox = SEGMENTED_TO_VIRTUAL(D_800CBEC4); + actor->unk_0B8 = 0xB; + actor->unk_0E6 += 2; break; } - obj2F4->unk_048 = temp_s1[obj2F4->unk_0E6 + 1]; + actor->unk_048 = temp_s1[actor->unk_0E6 + 1]; - if (obj2F4->unk_048 == 3) { - obj2F4->timer_04C = 4; + if (actor->unk_048 == 3) { + actor->timer_04C = 4; } - if (obj2F4->unk_048 == 0xD) { - obj2F4->timer_0BE = 0x32; + if (actor->unk_048 == 0xD) { + actor->timer_0BE = 0x32; } - obj2F4->unk_0E6 += 2; - func_8006D36C(obj2F4); + actor->unk_0E6 += 2; + func_8006D36C(actor); break; case 0xE800: - obj2F4->unk_044 = temp_s1[obj2F4->unk_0E6 + 1]; - obj2F4->unk_0E6 += 2; - func_8006D36C(obj2F4); + actor->unk_044 = temp_s1[actor->unk_0E6 + 1]; + actor->unk_0E6 += 2; + func_8006D36C(actor); break; case 0xEC00: - func_8001D400(temp_s1[obj2F4->unk_0E6 + 1]); - obj2F4->unk_0E6 += 2; - func_8006D36C(obj2F4); + func_8001D400(temp_s1[actor->unk_0E6 + 1]); + actor->unk_0E6 += 2; + func_8006D36C(actor); break; case 0xF000: - temp_v0_4 = Message_PtrFromId(temp_s1[obj2F4->unk_0E6 + 1]); + temp_v0_4 = Message_PtrFromId(temp_s1[actor->unk_0E6 + 1]); if ((temp_v0_4 != NULL) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_3)) { - func_800BA808(temp_v0_4, temp_s1[obj2F4->unk_0E6] & 0x1FF); + func_800BA808(temp_v0_4, temp_s1[actor->unk_0E6] & 0x1FF); } - obj2F4->unk_0E6 += 2; - func_8006D36C(obj2F4); + actor->unk_0E6 += 2; + func_8006D36C(actor); break; case 0xEE00: - if ((D_80161A88 == 2) && (temp_s1[obj2F4->unk_0E6 + 1] != 2)) { + if ((D_80161A88 == 2) && (temp_s1[actor->unk_0E6 + 1] != 2)) { func_8001A55C(&gPlayer[0].unk_460, 0x1100000B); } - D_80161A88 = temp_s1[obj2F4->unk_0E6 + 1]; - obj2F4->unk_0E6 += 2; - func_8006D36C(obj2F4); - obj2F4->obj.status = 0; + D_80161A88 = temp_s1[actor->unk_0E6 + 1]; + actor->unk_0E6 += 2; + func_8006D36C(actor); + actor->obj.status = 0; break; case 0x7000: - D_800CFF90 = temp_s1[obj2F4->unk_0E6] & 0x1FF; - D_80161690 = temp_s1[obj2F4->unk_0E6 + 1]; - obj2F4->unk_0E6 += 2; - func_8006D36C(obj2F4); + D_800CFF90 = temp_s1[actor->unk_0E6] & 0x1FF; + D_80161690 = temp_s1[actor->unk_0E6 + 1]; + actor->unk_0E6 += 2; + func_8006D36C(actor); break; case 0x7200: - gTeamShields[temp_s1[obj2F4->unk_0E6 + 1]] = 0xFF; - obj2F4->unk_0E6 += 2; - func_8006D36C(obj2F4); + gTeamShields[temp_s1[actor->unk_0E6 + 1]] = 0xFF; + actor->unk_0E6 += 2; + func_8006D36C(actor); break; case 0x7400: - func_8001D2FC(&obj2F4->sfxPos, temp_s1[obj2F4->unk_0E6 + 1]); - obj2F4->unk_0E6 += 2; - func_8006D36C(obj2F4); + func_8001D2FC(&actor->sfxPos, temp_s1[actor->unk_0E6 + 1]); + actor->unk_0E6 += 2; + func_8006D36C(actor); break; case 0x7600: - func_8001D3A0(&obj2F4->sfxPos, temp_s1[obj2F4->unk_0E6 + 1]); - obj2F4->unk_0E6 += 2; - func_8006D36C(obj2F4); + func_8001D3A0(&actor->sfxPos, temp_s1[actor->unk_0E6 + 1]); + actor->unk_0E6 += 2; + func_8006D36C(actor); break; case 0xF400: func_800182F4(0x103200FF); func_800182F4(0x113200FF); - obj2F4->unk_0E6 += 2; - func_8006D36C(obj2F4); + actor->unk_0E6 += 2; + func_8006D36C(actor); break; case 0xF200: - if (obj2F4->unk_080 == temp_s1[obj2F4->unk_0E6 + 1]) { - obj2F4->unk_0D0 = 1; - obj2F4->unk_0D6 = temp_s1[obj2F4->unk_0E6] & 0x1FF; - obj2F4->unk_0D4 = 100; + if (actor->iwork[12] == temp_s1[actor->unk_0E6 + 1]) { + actor->unk_0D0 = 1; + actor->unk_0D6 = temp_s1[actor->unk_0E6] & 0x1FF; + actor->unk_0D4 = 100; } else { - gTeamDamage[temp_s1[obj2F4->unk_0E6 + 1]] = temp_s1[obj2F4->unk_0E6] & 0x1FF; + gTeamDamage[temp_s1[actor->unk_0E6 + 1]] = temp_s1[actor->unk_0E6] & 0x1FF; } - obj2F4->unk_0E6 += 2; - func_8006D36C(obj2F4); + actor->unk_0E6 += 2; + func_8006D36C(actor); break; case 0xF800: - obj2F4->unk_06C = 1; + actor->iwork[7] = 1; for (i = 0; i < ARRAY_COUNT(gUnkEntities30); i++) { if (gUnkEntities30[i].mode == 0) { gUnkEntities30[i].mode = 1; gUnkEntities30[i].unk_28 = 3.0f; - gUnkEntities30[i].unk_04.x = obj2F4->obj.pos.x - obj2F4->vel.x; - gUnkEntities30[i].unk_04.y = obj2F4->obj.pos.y - obj2F4->vel.y; - gUnkEntities30[i].unk_04.z = obj2F4->obj.pos.z - obj2F4->vel.z; - gUnkEntities30[i].unk_2C = D_800D0DBC[temp_s1[obj2F4->unk_0E6 + 1]][0]; - gUnkEntities30[i].unk_2D = D_800D0DBC[temp_s1[obj2F4->unk_0E6 + 1]][1]; - gUnkEntities30[i].unk_2E = D_800D0DBC[temp_s1[obj2F4->unk_0E6 + 1]][2]; - gUnkEntities30[i].unk_2F = D_800D0DBC[temp_s1[obj2F4->unk_0E6 + 1]][3]; - obj2F4->unk_070 = i; + gUnkEntities30[i].unk_04.x = actor->obj.pos.x - actor->vel.x; + gUnkEntities30[i].unk_04.y = actor->obj.pos.y - actor->vel.y; + gUnkEntities30[i].unk_04.z = actor->obj.pos.z - actor->vel.z; + gUnkEntities30[i].unk_2C = D_800D0DBC[temp_s1[actor->unk_0E6 + 1]][0]; + gUnkEntities30[i].unk_2D = D_800D0DBC[temp_s1[actor->unk_0E6 + 1]][1]; + gUnkEntities30[i].unk_2E = D_800D0DBC[temp_s1[actor->unk_0E6 + 1]][2]; + gUnkEntities30[i].unk_2F = D_800D0DBC[temp_s1[actor->unk_0E6 + 1]][3]; + actor->iwork[8] = i; break; } } - obj2F4->unk_0E6 += 2; - func_8006D36C(obj2F4); + actor->unk_0E6 += 2; + func_8006D36C(actor); break; case 0xFA00: - obj2F4->unk_06C = 0; - obj2F4->unk_0E6 += 2; - func_8006D36C(obj2F4); + actor->iwork[7] = 0; + actor->unk_0E6 += 2; + func_8006D36C(actor); break; case 0x5000: - obj2F4->unk_0B8 = 6; - obj2F4->timer_0BC = temp_s1[obj2F4->unk_0E6 + 1]; - obj2F4->unk_174 = temp_s1[obj2F4->unk_0E6] & 0x1FF; - obj2F4->unk_0E6 += 2; + actor->unk_0B8 = 6; + actor->timer_0BC = temp_s1[actor->unk_0E6 + 1]; + actor->fwork[24] = temp_s1[actor->unk_0E6] & 0x1FF; + actor->unk_0E6 += 2; break; case 0x5200: - obj2F4->unk_0B8 = 7; - obj2F4->timer_0BC = temp_s1[obj2F4->unk_0E6 + 1]; - obj2F4->unk_174 = temp_s1[obj2F4->unk_0E6] & 0x1FF; - obj2F4->unk_0E6 += 2; + actor->unk_0B8 = 7; + actor->timer_0BC = temp_s1[actor->unk_0E6 + 1]; + actor->fwork[24] = temp_s1[actor->unk_0E6] & 0x1FF; + actor->unk_0E6 += 2; break; case 0x5400: - obj2F4->unk_0B8 = 8; - obj2F4->timer_0BC = temp_s1[obj2F4->unk_0E6 + 1]; - obj2F4->unk_174 = temp_s1[obj2F4->unk_0E6] & 0x1FF; - obj2F4->unk_0E6 += 2; + actor->unk_0B8 = 8; + actor->timer_0BC = temp_s1[actor->unk_0E6 + 1]; + actor->fwork[24] = temp_s1[actor->unk_0E6] & 0x1FF; + actor->unk_0E6 += 2; break; case 0x5600: - obj2F4->unk_0B8 = 9; - obj2F4->timer_0BC = temp_s1[obj2F4->unk_0E6 + 1]; - obj2F4->unk_174 = temp_s1[obj2F4->unk_0E6] & 0x1FF; - obj2F4->unk_0E6 += 2; + actor->unk_0B8 = 9; + actor->timer_0BC = temp_s1[actor->unk_0E6 + 1]; + actor->fwork[24] = temp_s1[actor->unk_0E6] & 0x1FF; + actor->unk_0E6 += 2; break; case 0x5A00: - obj2F4->unk_0B8 = 1; - obj2F4->unk_054 = D_800CFF80[temp_s1[obj2F4->unk_0E6] & 0x1FF]; - obj2F4->unk_158 = temp_s1[obj2F4->unk_0E6 + 1]; - obj2F4->timer_0BC = 0; - obj2F4->unk_0E6 += 2; + actor->unk_0B8 = 1; + actor->iwork[1] = D_800CFF80[temp_s1[actor->unk_0E6] & 0x1FF]; + actor->fwork[17] = temp_s1[actor->unk_0E6 + 1]; + actor->timer_0BC = 0; + actor->unk_0E6 += 2; break; case 0x5800: - obj2F4->unk_0B8 = 0xD; - obj2F4->timer_0BC = temp_s1[obj2F4->unk_0E6 + 1]; - obj2F4->unk_174 = temp_s1[obj2F4->unk_0E6] & 0x1FF; - obj2F4->unk_0E6 += 2; + actor->unk_0B8 = 0xD; + actor->timer_0BC = temp_s1[actor->unk_0E6 + 1]; + actor->fwork[24] = temp_s1[actor->unk_0E6] & 0x1FF; + actor->unk_0E6 += 2; break; case 0x5C00: - obj2F4->unk_0B8 = 0xE; - obj2F4->timer_0BC = temp_s1[obj2F4->unk_0E6 + 1]; - obj2F4->unk_174 = temp_s1[obj2F4->unk_0E6] & 0x1FF; - obj2F4->unk_0E6 += 2; + actor->unk_0B8 = 0xE; + actor->timer_0BC = temp_s1[actor->unk_0E6 + 1]; + actor->fwork[24] = temp_s1[actor->unk_0E6] & 0x1FF; + actor->unk_0E6 += 2; break; case 0x5E00: - obj2F4->unk_0B8 = 0xF; - obj2F4->timer_0BC = temp_s1[obj2F4->unk_0E6 + 1]; - obj2F4->unk_174 = temp_s1[obj2F4->unk_0E6] & 0x1FF; - obj2F4->unk_0E6 += 2; + actor->unk_0B8 = 0xF; + actor->timer_0BC = temp_s1[actor->unk_0E6 + 1]; + actor->fwork[24] = temp_s1[actor->unk_0E6] & 0x1FF; + actor->unk_0E6 += 2; break; case 0xC000: - obj2F4->unk_058 = temp_s1[obj2F4->unk_0E6 + 1]; - obj2F4->unk_05C = temp_s1[obj2F4->unk_0E6] & 0x1FF; - obj2F4->unk_0E6 += 2; - func_8006D36C(obj2F4); + actor->iwork[2] = temp_s1[actor->unk_0E6 + 1]; + actor->iwork[3] = temp_s1[actor->unk_0E6] & 0x1FF; + actor->unk_0E6 += 2; + func_8006D36C(actor); break; case 0xFC00: - if (temp_s1[obj2F4->unk_0E6 + 1] < obj2F4->unk_050) { - obj2F4->unk_0E6 += 2; - obj2F4->unk_050 = 0; - } else if ((temp_s1[obj2F4->unk_0E6] & 0x1FF) < 200) { - obj2F4->unk_0E6 = (temp_s1[obj2F4->unk_0E6] & 0x1FF) * 2; - obj2F4->unk_050++; + if (temp_s1[actor->unk_0E6 + 1] < actor->iwork[0]) { + actor->unk_0E6 += 2; + actor->iwork[0] = 0; + } else if ((temp_s1[actor->unk_0E6] & 0x1FF) < 200) { + actor->unk_0E6 = (temp_s1[actor->unk_0E6] & 0x1FF) * 2; + actor->iwork[0]++; } else { - obj2F4->unk_0E4 = (temp_s1[obj2F4->unk_0E6] & 0x1FF) - 200; - obj2F4->unk_0E6 = 0; - obj2F4->unk_050 = 0; + actor->unk_0E4 = (temp_s1[actor->unk_0E6] & 0x1FF) - 200; + actor->unk_0E6 = 0; + actor->iwork[0] = 0; } - func_8006D36C(obj2F4); + func_8006D36C(actor); break; case 0x6000: - obj2F4->unk_0B8 = 1; - obj2F4->timer_0BC = temp_s1[obj2F4->unk_0E6 + 1]; - obj2F4->unk_0E6 += 2; + actor->unk_0B8 = 1; + actor->timer_0BC = temp_s1[actor->unk_0E6 + 1]; + actor->unk_0E6 += 2; break; case 0x0000: - obj2F4->unk_114 = temp_s1[obj2F4->unk_0E6] & 0x7F; - obj2F4->unk_118 = obj2F4->unk_114; - obj2F4->unk_064 = temp_s1[obj2F4->unk_0E6] & 0x180; - obj2F4->timer_0BC = temp_s1[obj2F4->unk_0E6 + 1]; - obj2F4->unk_0B8 = 1; - obj2F4->unk_0E6 += 2; + actor->fwork[0] = temp_s1[actor->unk_0E6] & 0x7F; + actor->fwork[1] = actor->fwork[0]; + actor->iwork[5] = temp_s1[actor->unk_0E6] & 0x180; + actor->timer_0BC = temp_s1[actor->unk_0E6 + 1]; + actor->unk_0B8 = 1; + actor->unk_0E6 += 2; break; case 0x0400: - obj2F4->unk_16C = temp_s1[obj2F4->unk_0E6 + 1] & 0xFF; - obj2F4->unk_0E6 += 2; - func_8006D36C(obj2F4); + actor->fwork[22] = temp_s1[actor->unk_0E6 + 1] & 0xFF; + actor->unk_0E6 += 2; + func_8006D36C(actor); break; case 0x0200: - obj2F4->unk_118 = temp_s1[obj2F4->unk_0E6] & 0x7F; - obj2F4->unk_064 = temp_s1[obj2F4->unk_0E6] & 0x180; - obj2F4->timer_0BC = temp_s1[obj2F4->unk_0E6 + 1]; - obj2F4->unk_0B8 = 1; - obj2F4->unk_0E6 += 2; + actor->fwork[1] = temp_s1[actor->unk_0E6] & 0x7F; + actor->iwork[5] = temp_s1[actor->unk_0E6] & 0x180; + actor->timer_0BC = temp_s1[actor->unk_0E6 + 1]; + actor->unk_0B8 = 1; + actor->unk_0E6 += 2; break; case 0x0800: - obj2F4->timer_0C0 = temp_s1[obj2F4->unk_0E6 + 1]; - obj2F4->unk_084 = 1; - obj2F4->unk_0E6 += 2; - func_8006D36C(obj2F4); + actor->timer_0C0 = temp_s1[actor->unk_0E6 + 1]; + actor->iwork[13] = 1; + actor->unk_0E6 += 2; + func_8006D36C(actor); break; case 0x1000: - obj2F4->unk_084 = 0; - obj2F4->unk_0E6 += 2; - func_8006D36C(obj2F4); + actor->iwork[13] = 0; + actor->unk_0E6 += 2; + func_8006D36C(actor); break; case 0x1200: - obj2F4->unk_0B8 = 2; - obj2F4->unk_11C = temp_s1[obj2F4->unk_0E6] & 0x1FF; - obj2F4->unk_120 = temp_s1[obj2F4->unk_0E6 + 1] * 0.1f; - obj2F4->unk_0E6 += 2; + actor->unk_0B8 = 2; + actor->fwork[2] = temp_s1[actor->unk_0E6] & 0x1FF; + actor->fwork[3] = temp_s1[actor->unk_0E6 + 1] * 0.1f; + actor->unk_0E6 += 2; break; case 0x1400: - obj2F4->unk_0B8 = 3; - obj2F4->unk_11C = temp_s1[obj2F4->unk_0E6] & 0x1FF; - obj2F4->unk_120 = temp_s1[obj2F4->unk_0E6 + 1] * 0.1f; - obj2F4->unk_0E6 += 2; + actor->unk_0B8 = 3; + actor->fwork[2] = temp_s1[actor->unk_0E6] & 0x1FF; + actor->fwork[3] = temp_s1[actor->unk_0E6 + 1] * 0.1f; + actor->unk_0E6 += 2; break; case 0x1600: - obj2F4->unk_0B8 = 4; - obj2F4->unk_11C = temp_s1[obj2F4->unk_0E6] & 0x1FF; - obj2F4->unk_120 = temp_s1[obj2F4->unk_0E6 + 1] * 0.1f; - obj2F4->unk_0E6 += 2; + actor->unk_0B8 = 4; + actor->fwork[2] = temp_s1[actor->unk_0E6] & 0x1FF; + actor->fwork[3] = temp_s1[actor->unk_0E6 + 1] * 0.1f; + actor->unk_0E6 += 2; break; case 0x1800: - obj2F4->unk_0B8 = 5; - obj2F4->unk_11C = temp_s1[obj2F4->unk_0E6] & 0x1FF; - obj2F4->unk_120 = temp_s1[obj2F4->unk_0E6 + 1] * 0.1f; - obj2F4->unk_0E6 += 2; + actor->unk_0B8 = 5; + actor->fwork[2] = temp_s1[actor->unk_0E6] & 0x1FF; + actor->fwork[3] = temp_s1[actor->unk_0E6 + 1] * 0.1f; + actor->unk_0E6 += 2; break; case 0x2000: - obj2F4->unk_124.x = temp_s1[obj2F4->unk_0E6] & 0x1FF; - obj2F4->unk_124.y = temp_s1[obj2F4->unk_0E6 + 1] * 0.1f; - obj2F4->unk_124.z = 1.0f; - obj2F4->unk_0E6 += 2; - func_8006D36C(obj2F4); + actor->fwork[4] = temp_s1[actor->unk_0E6] & 0x1FF; + actor->fwork[5] = temp_s1[actor->unk_0E6 + 1] * 0.1f; + actor->fwork[6] = 1.0f; + actor->unk_0E6 += 2; + func_8006D36C(actor); break; case 0x2200: - obj2F4->unk_124.x = temp_s1[obj2F4->unk_0E6] & 0x1FF; - obj2F4->unk_124.y = temp_s1[obj2F4->unk_0E6 + 1] * 0.1f; - obj2F4->unk_124.z = -1.0f; - obj2F4->unk_0E6 += 2; - func_8006D36C(obj2F4); + actor->fwork[4] = temp_s1[actor->unk_0E6] & 0x1FF; + actor->fwork[5] = temp_s1[actor->unk_0E6 + 1] * 0.1f; + actor->fwork[6] = -1.0f; + actor->unk_0E6 += 2; + func_8006D36C(actor); break; case 0x2400: - obj2F4->unk_130 = temp_s1[obj2F4->unk_0E6] & 0x1FF; - obj2F4->unk_134 = temp_s1[obj2F4->unk_0E6 + 1] * 0.1f; - obj2F4->unk_138 = 1.0f; - obj2F4->unk_0E6 += 2; - func_8006D36C(obj2F4); + actor->fwork[7] = temp_s1[actor->unk_0E6] & 0x1FF; + actor->fwork[8] = temp_s1[actor->unk_0E6 + 1] * 0.1f; + actor->fwork[9] = 1.0f; + actor->unk_0E6 += 2; + func_8006D36C(actor); break; case 0x2600: - obj2F4->unk_130 = temp_s1[obj2F4->unk_0E6] & 0x1FF; - obj2F4->unk_134 = temp_s1[obj2F4->unk_0E6 + 1] * 0.1f; - obj2F4->unk_138 = -1.0f; - obj2F4->unk_0E6 += 2; - func_8006D36C(obj2F4); + actor->fwork[7] = temp_s1[actor->unk_0E6] & 0x1FF; + actor->fwork[8] = temp_s1[actor->unk_0E6 + 1] * 0.1f; + actor->fwork[9] = -1.0f; + actor->unk_0E6 += 2; + func_8006D36C(actor); break; case 0x2800: - obj2F4->unk_13C = temp_s1[obj2F4->unk_0E6] & 0x1FF; - obj2F4->unk_140 = temp_s1[obj2F4->unk_0E6 + 1] * 0.1f; - obj2F4->unk_144 = 1.0f; - obj2F4->unk_0E6 += 2; - func_8006D36C(obj2F4); + actor->fwork[10] = temp_s1[actor->unk_0E6] & 0x1FF; + actor->fwork[11] = temp_s1[actor->unk_0E6 + 1] * 0.1f; + actor->fwork[12] = 1.0f; + actor->unk_0E6 += 2; + func_8006D36C(actor); break; case 0x2A00: - obj2F4->unk_13C = temp_s1[obj2F4->unk_0E6] & 0x1FF; - obj2F4->unk_140 = temp_s1[obj2F4->unk_0E6 + 1] * 0.1f; - obj2F4->unk_144 = -1.0f; - obj2F4->unk_0E6 += 2; - func_8006D36C(obj2F4); + actor->fwork[10] = temp_s1[actor->unk_0E6] & 0x1FF; + actor->fwork[11] = temp_s1[actor->unk_0E6 + 1] * 0.1f; + actor->fwork[12] = -1.0f; + actor->unk_0E6 += 2; + func_8006D36C(actor); break; case 0x3000: - obj2F4->unk_068 = 1; - obj2F4->unk_0E6 += 2; - func_8006D36C(obj2F4); + actor->iwork[6] = 1; + actor->unk_0E6 += 2; + func_8006D36C(actor); break; case 0x3200: - obj2F4->unk_068 = 0; - obj2F4->unk_0E6 += 2; - func_8006D36C(obj2F4); + actor->iwork[6] = 0; + actor->unk_0E6 += 2; + func_8006D36C(actor); break; } } -void func_8006EA50(Object_2F4* obj2F4) { - if ((obj2F4->unk_06C != 0) && (gUnkEntities30[obj2F4->unk_070].mode != 0)) { - gUnkEntities30[obj2F4->unk_070].unk_10.x = obj2F4->obj.pos.x; - gUnkEntities30[obj2F4->unk_070].unk_10.y = obj2F4->obj.pos.y; - gUnkEntities30[obj2F4->unk_070].unk_10.z = obj2F4->obj.pos.z; +void func_8006EA50(Actor* actor) { + if ((actor->iwork[7] != 0) && (gUnkEntities30[actor->iwork[8]].mode != 0)) { + gUnkEntities30[actor->iwork[8]].unk_10.x = actor->obj.pos.x; + gUnkEntities30[actor->iwork[8]].unk_10.y = actor->obj.pos.y; + gUnkEntities30[actor->iwork[8]].unk_10.z = actor->obj.pos.z; } } @@ -1569,26 +1566,26 @@ void func_8006EB64(f32 xPos, f32 yPos, f32 zPos) { } } -void func_8006EBC0(Object_2F4* obj2F4, f32 xPos, f32 yPos, f32 zPos) { - Object_2F4_Initialize(obj2F4); - obj2F4->obj.status = 1; - obj2F4->obj.id = OBJ_2F4_225; +void func_8006EBC0(Actor* actor, f32 xPos, f32 yPos, f32 zPos) { + Actor_Initialize(actor); + actor->obj.status = 1; + actor->obj.id = OBJ_ACTOR_225; - obj2F4->obj.pos.x = xPos; - obj2F4->obj.pos.y = yPos; - obj2F4->obj.pos.z = zPos; + actor->obj.pos.x = xPos; + actor->obj.pos.y = yPos; + actor->obj.pos.z = zPos; - Object_SetInfo(&obj2F4->info, obj2F4->obj.id); - obj2F4->info.unk_16 = 2; - Audio_PlaySfx(0x2900201D, &obj2F4->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + Object_SetInfo(&actor->info, actor->obj.id); + actor->info.unk_16 = 2; + Audio_PlaySfx(0x2900201D, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } void func_8006EC60(f32 xPos, f32 yPos, f32 zPos) { s32 i; - for (i = 0; i < ARRAY_COUNT(gObjects2F4); i++) { - if (gObjects2F4[i].obj.status == 0) { - func_8006EBC0(&gObjects2F4[i], xPos, yPos, zPos); + for (i = 0; i < ARRAY_COUNT(gActors); i++) { + if (gActors[i].obj.status == 0) { + func_8006EBC0(&gActors[i], xPos, yPos, zPos); break; } } @@ -1628,7 +1625,7 @@ void func_8006ECBC(PlayerShotId objId, PlayerShot* shot, s32 unk0E4, f32 xPos, f } else { Audio_PlaySfx(0x29002002, &shot->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } - } else if ((unk0E4 < 60) && (gObjects2F4[unk0E4].obj.id == OBJ_2F4_200) && (gObjects2F4[unk0E4].unk_080 > 0)) { + } else if ((unk0E4 < 60) && (gActors[unk0E4].obj.id == OBJ_ACTOR_200) && (gActors[unk0E4].iwork[12] > 0)) { Audio_PlaySfx(0x2900000D, &shot->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } else if (unk0E4 + 100 == 200) { shot->playerNum = 100; @@ -1717,105 +1714,104 @@ void func_8006F1EC(f32 xPos, f32 yPos, f32 zPos, f32 arg3) { } } -void func_8006F254(Object_2F4* obj2F4) { +void func_8006F254(Actor* actor) { Vec3f sp54; Vec3f sp48; - Matrix_RotateY(gCalcMatrix, obj2F4->unk_2E8.y * M_DTOR, 0); - Matrix_RotateX(gCalcMatrix, obj2F4->unk_2E8.x * M_DTOR, 1); - Matrix_RotateZ(gCalcMatrix, (obj2F4->unk_2E8.z + obj2F4->unk_0F4.z) * M_DTOR, 1); - Matrix_RotateY(gCalcMatrix, obj2F4->unk_0F4.y * M_DTOR, 1); - Matrix_RotateX(gCalcMatrix, obj2F4->unk_0F4.x * M_DTOR, 1); + Matrix_RotateY(gCalcMatrix, actor->vwork[29].y * M_DTOR, 0); + Matrix_RotateX(gCalcMatrix, actor->vwork[29].x * M_DTOR, 1); + Matrix_RotateZ(gCalcMatrix, (actor->vwork[29].z + actor->unk_0F4.z) * M_DTOR, 1); + Matrix_RotateY(gCalcMatrix, actor->unk_0F4.y * M_DTOR, 1); + Matrix_RotateX(gCalcMatrix, actor->unk_0F4.x * M_DTOR, 1); sp54.x = 0.0f; sp54.y = 0.0f; sp54.z = D_80177828; Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp54, &sp48); - func_8007F04C(OBJ_EFFECT_353, obj2F4->obj.pos.x + sp48.x, obj2F4->obj.pos.y + sp48.y, obj2F4->obj.pos.z + sp48.z, - obj2F4->obj.rot.x, obj2F4->obj.rot.y, obj2F4->obj.rot.z, obj2F4->unk_2E8.x, obj2F4->unk_2E8.y, - obj2F4->unk_2E8.z + obj2F4->unk_0F4.z, sp48.x, sp48.y, sp48.z, 1.0f); + func_8007F04C(OBJ_EFFECT_353, actor->obj.pos.x + sp48.x, actor->obj.pos.y + sp48.y, actor->obj.pos.z + sp48.z, + actor->obj.rot.x, actor->obj.rot.y, actor->obj.rot.z, actor->vwork[29].x, actor->vwork[29].y, + actor->vwork[29].z + actor->unk_0F4.z, sp48.x, sp48.y, sp48.z, 1.0f); } -void func_8006F40C(Object_2F4* obj2F4) { +void func_8006F40C(Actor* actor) { s32 var_v1; Vec3f sp78; Vec3f sp6C; Object_4C* obj4C; - if ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_3) && (obj2F4->unk_0B4 != 0x34) && (obj2F4->unk_0B4 != 0x67) && - (obj2F4->unk_0B4 != 0x68) && (obj2F4->unk_0B4 != 0x30) && (obj2F4->unk_0B4 != 0x31) && - (obj2F4->unk_0B4 != 0x32)) { - switch (obj2F4->unk_048) { + if ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_3) && (actor->unk_0B4 != 0x34) && (actor->unk_0B4 != 0x67) && + (actor->unk_0B4 != 0x68) && (actor->unk_0B4 != 0x30) && (actor->unk_0B4 != 0x31) && (actor->unk_0B4 != 0x32)) { + switch (actor->unk_048) { case 0: break; case 1: - func_8006F254(obj2F4); - obj2F4->unk_048 = 0; + func_8006F254(actor); + actor->unk_048 = 0; break; case 2: - if (obj2F4->obj.pos.z < (gPlayer[0].unk_138 - 600.0f)) { - func_8007F11C(OBJ_EFFECT_353, obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, D_80177828); + if (actor->obj.pos.z < (gPlayer[0].unk_138 - 600.0f)) { + func_8007F11C(OBJ_EFFECT_353, actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, D_80177828); } - obj2F4->unk_048 = 0; + actor->unk_048 = 0; break; case 3: - if (obj2F4->timer_0BE == 0) { - obj2F4->timer_0BE = 6; + if (actor->timer_0BE == 0) { + actor->timer_0BE = 6; sp78.x = 0.0f; sp78.y = 0.0f; sp78.z = 100.0f; Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp78, &sp6C); - func_8006EEFC(obj2F4->index, obj2F4->obj.pos.x + (sp6C.x * 1.5), obj2F4->obj.pos.y + (sp6C.y * 1.5), - obj2F4->obj.pos.z + (sp6C.z * 1.5), sp6C.x, sp6C.y, sp6C.z, obj2F4->unk_0F4.x, - obj2F4->unk_0F4.y, obj2F4->unk_2E8.z + obj2F4->unk_0F4.z); - obj2F4->timer_0C2 = 2; - obj2F4->timer_04C--; - if (obj2F4->timer_04C <= 0) { - obj2F4->unk_048 = 0; + func_8006EEFC(actor->index, actor->obj.pos.x + (sp6C.x * 1.5), actor->obj.pos.y + (sp6C.y * 1.5), + actor->obj.pos.z + (sp6C.z * 1.5), sp6C.x, sp6C.y, sp6C.z, actor->unk_0F4.x, + actor->unk_0F4.y, actor->vwork[29].z + actor->unk_0F4.z); + actor->timer_0C2 = 2; + actor->timer_04C--; + if (actor->timer_04C <= 0) { + actor->unk_048 = 0; } } break; case 4: - func_8006EB64(obj2F4->obj.pos.x, obj2F4->obj.pos.y - 20.0f, obj2F4->obj.pos.z); - obj2F4->unk_048 = 0; + func_8006EB64(actor->obj.pos.x, actor->obj.pos.y - 20.0f, actor->obj.pos.z); + actor->unk_048 = 0; break; case 5: - Matrix_RotateY(gCalcMatrix, obj2F4->unk_2E8.y * M_DTOR, 0); - Matrix_RotateX(gCalcMatrix, obj2F4->unk_2E8.x * M_DTOR, 1); - Matrix_RotateZ(gCalcMatrix, (obj2F4->unk_2E8.z + obj2F4->unk_0F4.z) * M_DTOR, 1); - Matrix_RotateY(gCalcMatrix, obj2F4->unk_0F4.y * M_DTOR, 1); - Matrix_RotateX(gCalcMatrix, obj2F4->unk_0F4.x * M_DTOR, 1); + Matrix_RotateY(gCalcMatrix, actor->vwork[29].y * M_DTOR, 0); + Matrix_RotateX(gCalcMatrix, actor->vwork[29].x * M_DTOR, 1); + Matrix_RotateZ(gCalcMatrix, (actor->vwork[29].z + actor->unk_0F4.z) * M_DTOR, 1); + Matrix_RotateY(gCalcMatrix, actor->unk_0F4.y * M_DTOR, 1); + Matrix_RotateX(gCalcMatrix, actor->unk_0F4.x * M_DTOR, 1); sp78.x = 0.0f; sp78.y = 0.0f; sp78.z = D_80177828; Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp78, &sp6C); - func_8007F04C(OBJ_EFFECT_355, obj2F4->obj.pos.x + sp6C.x, obj2F4->obj.pos.y + sp6C.y, - obj2F4->obj.pos.z + sp6C.z, obj2F4->obj.rot.x, obj2F4->obj.rot.y, obj2F4->obj.rot.z, - obj2F4->unk_2E8.x, obj2F4->unk_2E8.y, obj2F4->unk_2E8.z + obj2F4->unk_0F4.z, sp6C.x, + func_8007F04C(OBJ_EFFECT_355, actor->obj.pos.x + sp6C.x, actor->obj.pos.y + sp6C.y, + actor->obj.pos.z + sp6C.z, actor->obj.rot.x, actor->obj.rot.y, actor->obj.rot.z, + actor->vwork[29].x, actor->vwork[29].y, actor->vwork[29].z + actor->unk_0F4.z, sp6C.x, sp6C.y, sp6C.z, 1.0f); - obj2F4->unk_048 = 0; + actor->unk_048 = 0; break; case 6: - if (obj2F4->obj.pos.z < (gPlayer[0].unk_138 - 600.0f)) { - func_8007F11C(OBJ_EFFECT_355, obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, D_80177828); + if (actor->obj.pos.z < (gPlayer[0].unk_138 - 600.0f)) { + func_8007F11C(OBJ_EFFECT_355, actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, D_80177828); } - obj2F4->unk_048 = 0; + actor->unk_048 = 0; break; case 7: - if (obj2F4->obj.pos.z < (gPlayer[0].unk_138 - 600.0f)) { - func_8007F11C(OBJ_EFFECT_356, obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, 60.0f); + if (actor->obj.pos.z < (gPlayer[0].unk_138 - 600.0f)) { + func_8007F11C(OBJ_EFFECT_356, actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 60.0f); } - obj2F4->unk_048 = 0; + actor->unk_048 = 0; break; case 8: @@ -1823,71 +1819,71 @@ void func_8006F40C(Object_2F4* obj2F4) { sp6C.y = gPlayer[0].pos.y; gPlayer[0].pos.x += (Rand_ZeroOne() - 0.5f) * 300.0f; gPlayer[0].pos.y += (Rand_ZeroOne() - 0.5f) * 300.0f; - func_8007F11C(OBJ_EFFECT_353, obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, D_80177828); + func_8007F11C(OBJ_EFFECT_353, actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, D_80177828); gPlayer[0].pos.x = sp6C.x; gPlayer[0].pos.y = sp6C.y; - obj2F4->unk_048 = 0; + actor->unk_048 = 0; break; case 9: if (gCurrentLevel == LEVEL_AQUAS) { - func_8006F1EC(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, 12.0f); + func_8006F1EC(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 12.0f); } else { - func_8006F0D8(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, 40.0f); + func_8006F0D8(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 40.0f); } - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); + Object_Kill(&actor->obj, &actor->sfxPos); break; case 10: if (gCurrentLevel == LEVEL_AQUAS) { - func_8006F1EC(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, 6.0f); + func_8006F1EC(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 6.0f); } else { - func_8006F0D8(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, 15.0f); + func_8006F0D8(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 15.0f); } - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); + Object_Kill(&actor->obj, &actor->sfxPos); break; case 11: - func_8007BFFC(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, obj2F4->vel.x, obj2F4->vel.y, - obj2F4->vel.z, obj2F4->scale * 3.0f, 15); - func_80066254(obj2F4); - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); - func_8007A6F0(&obj2F4->obj.pos, 0x2903B009); + func_8007BFFC(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, actor->vel.x, actor->vel.y, + actor->vel.z, actor->scale * 3.0f, 15); + func_80066254(actor); + Object_Kill(&actor->obj, &actor->sfxPos); + func_8007A6F0(&actor->obj.pos, 0x2903B009); break; case 12: - func_80066254(obj2F4); - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); + func_80066254(actor); + Object_Kill(&actor->obj, &actor->sfxPos); break; case 13: - if (obj2F4->timer_0BE > 25) { - Math_SmoothStepToF(&obj2F4->unk_150, 90.0f, 0.2f, 8.0f, 0.01f); + if (actor->timer_0BE > 25) { + Math_SmoothStepToF(&actor->fwork[15], 90.0f, 0.2f, 8.0f, 0.01f); } - if (obj2F4->timer_0BE < 25) { - Math_SmoothStepToF(&obj2F4->unk_150, 0.0f, 0.2f, 8.0f, 0.01f); + if (actor->timer_0BE < 25) { + Math_SmoothStepToF(&actor->fwork[15], 0.0f, 0.2f, 8.0f, 0.01f); } - if (obj2F4->timer_0BE == 30) { - func_8006EC60(obj2F4->obj.pos.x, obj2F4->obj.pos.y - 50.0f, obj2F4->obj.pos.z); + if (actor->timer_0BE == 30) { + func_8006EC60(actor->obj.pos.x, actor->obj.pos.y - 50.0f, actor->obj.pos.z); } - if (obj2F4->timer_0BE == 0) { - obj2F4->unk_048 = 0; + if (actor->timer_0BE == 0) { + actor->unk_048 = 0; } break; case 16: - func_8007F11C(OBJ_EFFECT_353, obj2F4->obj.pos.x + 190.0f, obj2F4->obj.pos.y + 90.0f, - obj2F4->obj.pos.z + 220.0f, D_80177828); - func_8007F11C(OBJ_EFFECT_353, obj2F4->obj.pos.x - 190.0f, obj2F4->obj.pos.y + 90.0f, - obj2F4->obj.pos.z + 220.0f, D_80177828); - obj2F4->unk_048 = 0; + func_8007F11C(OBJ_EFFECT_353, actor->obj.pos.x + 190.0f, actor->obj.pos.y + 90.0f, + actor->obj.pos.z + 220.0f, D_80177828); + func_8007F11C(OBJ_EFFECT_353, actor->obj.pos.x - 190.0f, actor->obj.pos.y + 90.0f, + actor->obj.pos.z + 220.0f, D_80177828); + actor->unk_048 = 0; break; case 17: - if (obj2F4->obj.pos.z < (gPlayer[0].camEye.z - 600.0f)) { - func_8007F20C(OBJ_EFFECT_353, obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, D_80177828); + if (actor->obj.pos.z < (gPlayer[0].camEye.z - 600.0f)) { + func_8007F20C(OBJ_EFFECT_353, actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, D_80177828); } - obj2F4->unk_048 = 0; + actor->unk_048 = 0; break; case 18: @@ -1901,9 +1897,9 @@ void func_8006F40C(Object_2F4* obj2F4) { f32 sp54; obj4C->obj.status = 0; - sp64 = obj4C->obj.pos.x - obj2F4->obj.pos.x; - sp60 = obj4C->obj.pos.y - obj2F4->obj.pos.y; - sp5C = obj4C->obj.pos.z - obj2F4->obj.pos.z; + sp64 = obj4C->obj.pos.x - actor->obj.pos.x; + sp60 = obj4C->obj.pos.y - actor->obj.pos.y; + sp5C = obj4C->obj.pos.z - actor->obj.pos.z; sp54 = Math_Atan2F(sp64, sp5C); sp54 = Math_RadToDeg(sp54); sp58 = -Math_Atan2F(sp60, sqrtf(SQ(sp64) + SQ(sp5C))); @@ -1914,67 +1910,67 @@ void func_8006F40C(Object_2F4* obj2F4) { sp6C.y = 0.0f; sp6C.z = 50.0f; Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp6C, &sp78); - func_8006EFA0(100, obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, sp78.x, sp78.y, - sp78.z, sp58, sp54, 0.0f); + func_8006EFA0(100, actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, sp78.x, sp78.y, sp78.z, + sp58, sp54, 0.0f); break; } } - obj2F4->unk_048 = 0; + actor->unk_048 = 0; break; case 19: - func_80083D2C(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, 40.0f); - obj2F4->unk_048 = 0; + func_80083D2C(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 40.0f); + actor->unk_048 = 0; break; } } } -void func_8006FE28(Object_2F4* obj2F4) { - if ((fabsf(obj2F4->obj.pos.x - gPlayer[0].pos.x) < 100.0f) && - (fabsf(obj2F4->obj.pos.y - gPlayer[0].pos.y) < 100.0f) && - (fabsf(obj2F4->obj.pos.z - gPlayer[0].unk_138) < 50.0f)) { +void func_8006FE28(Actor* actor) { + if ((fabsf(actor->obj.pos.x - gPlayer[0].pos.x) < 100.0f) && + (fabsf(actor->obj.pos.y - gPlayer[0].pos.y) < 100.0f) && + (fabsf(actor->obj.pos.z - gPlayer[0].unk_138) < 50.0f)) { func_80067A40(); - func_8001A55C(&obj2F4->sfxPos, 0x1900302B); - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); + func_8001A55C(&actor->sfxPos, 0x1900302B); + Object_Kill(&actor->obj, &actor->sfxPos); } } -void func_8006FEEC(Object_2F4* obj2F4) { +void func_8006FEEC(Actor* actor) { s32 i; - if ((obj2F4->unk_0D0 != 0) && (obj2F4->unk_0CE != 0)) { - obj2F4->unk_0D0 = 0; - obj2F4->timer_0C6 = 0xF; - obj2F4->unk_0CE = obj2F4->unk_0CE - obj2F4->unk_0D6; + if ((actor->unk_0D0 != 0) && (actor->unk_0CE != 0)) { + actor->unk_0D0 = 0; + actor->timer_0C6 = 0xF; + actor->unk_0CE = actor->unk_0CE - actor->unk_0D6; - if (obj2F4->unk_0CE <= 0) { + if (actor->unk_0CE <= 0) { for (i = 3; i < 11; i++) { - func_E16C50_801900FC(&obj2F4->unk_18C[i], &obj2F4->unk_18C[i + 11], (Rand_ZeroOne() - 0.5f) * 20.0f, - Rand_ZeroOne() * -10.0f, Rand_ZeroOne() * 10.0f, 41, obj2F4->scale, 200, i); + func_E16C50_801900FC(&actor->vwork[i], &actor->vwork[i + 11], (Rand_ZeroOne() - 0.5f) * 20.0f, + Rand_ZeroOne() * -10.0f, Rand_ZeroOne() * 10.0f, 41, actor->scale, 200, i); } - obj2F4->unk_044 = 0; - func_80066254(obj2F4); - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); - func_8007A6F0(&obj2F4->obj.pos, 0x29018036); - func_8007D2C8(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, 4.0f); + actor->unk_044 = 0; + func_80066254(actor); + Object_Kill(&actor->obj, &actor->sfxPos); + func_8007A6F0(&actor->obj.pos, 0x29018036); + func_8007D2C8(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 4.0f); } else { - Audio_PlaySfx(0x29033037, &obj2F4->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + Audio_PlaySfx(0x29033037, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } } } -bool func_800700A4(Object_2F4* obj2F4) { - if ((obj2F4->unk_0B8 != 12) && (obj2F4->unk_080 > 0) && (obj2F4->unk_080 < 4) && - (gTeamShields[obj2F4->unk_080] <= 0)) { - obj2F4->unk_0B8 = 12; - obj2F4->unk_058 = 0; - obj2F4->unk_13C = 360.0f; - obj2F4->unk_140 = 20.0f; - gTeamShields[obj2F4->unk_080] = 1; +bool func_800700A4(Actor* actor) { + if ((actor->unk_0B8 != 12) && (actor->iwork[12] > 0) && (actor->iwork[12] < 4) && + (gTeamShields[actor->iwork[12]] <= 0)) { + actor->unk_0B8 = 12; + actor->iwork[2] = 0; + actor->fwork[10] = 360.0f; + actor->fwork[11] = 20.0f; + gTeamShields[actor->iwork[12]] = 1; - switch (obj2F4->unk_080) { + switch (actor->iwork[12]) { case 1: func_800BA808(gMsg_ID_20220, RCID_FALCO); break; @@ -1985,172 +1981,172 @@ bool func_800700A4(Object_2F4* obj2F4) { func_800BA808(gMsg_ID_20221, RCID_PEPPY); break; } - gTeamShields[obj2F4->unk_080] = -1; - gTeamDamage[obj2F4->unk_080] = 0; - obj2F4->timer_0C2 = 5000; - obj2F4->unk_0D0 = 0; + gTeamShields[actor->iwork[12]] = -1; + gTeamDamage[actor->iwork[12]] = 0; + actor->timer_0C2 = 5000; + actor->unk_0D0 = 0; return true; } return false; } -void func_800701E0(Object_2F4* obj2F4) { +void func_800701E0(Actor* actor) { Vec3f sp3C; f32 var_fv1; f32 temp_fv1; - if (!func_800700A4(obj2F4)) { - if ((obj2F4->unk_0D0 != 0) && (obj2F4->unk_0B4 == 0x43) && (obj2F4->unk_0D2 == 0)) { - obj2F4->unk_0D0 = 0; + if (!func_800700A4(actor)) { + if ((actor->unk_0D0 != 0) && (actor->unk_0B4 == 0x43) && (actor->unk_0D2 == 0)) { + actor->unk_0D0 = 0; } - if ((obj2F4->unk_0D0 != 0) && (obj2F4->unk_0B4 == 0x53) && (obj2F4->timer_0C2 >= 2)) { - obj2F4->unk_0D0 = 0; + if ((actor->unk_0D0 != 0) && (actor->unk_0B4 == 0x53) && (actor->timer_0C2 >= 2)) { + actor->unk_0D0 = 0; } - if ((obj2F4->unk_0D0 != 0) && - (((obj2F4->unk_0B4 == 0x40) && (obj2F4->unk_0D2 == 2)) || (obj2F4->unk_0B4 != 0x40))) { - if (obj2F4->unk_080 >= 4) { - obj2F4->unk_0D6 = 0; + if ((actor->unk_0D0 != 0) && + (((actor->unk_0B4 == 0x40) && (actor->unk_0D2 == 2)) || (actor->unk_0B4 != 0x40))) { + if (actor->iwork[12] >= 4) { + actor->unk_0D6 = 0; } - if ((obj2F4->unk_080 > 0) && (obj2F4->unk_080 < 4)) { - gTeamShields[obj2F4->unk_080] -= obj2F4->unk_0D6; - } else if ((obj2F4->unk_0B4 == 0x53) && ((obj2F4->unk_0D6 == 0x1E) || (obj2F4->unk_0D6 == 0x1F))) { - obj2F4->unk_0CE = 0; + if ((actor->iwork[12] > 0) && (actor->iwork[12] < 4)) { + gTeamShields[actor->iwork[12]] -= actor->unk_0D6; + } else if ((actor->unk_0B4 == 0x53) && ((actor->unk_0D6 == 0x1E) || (actor->unk_0D6 == 0x1F))) { + actor->unk_0CE = 0; } else { - obj2F4->unk_0CE -= obj2F4->unk_0D6; + actor->unk_0CE -= actor->unk_0D6; } - if (obj2F4->unk_0CE <= 0) { - if (obj2F4->unk_0B4 == 0x6A) { - func_80077240(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, 3); + if (actor->unk_0CE <= 0) { + if (actor->unk_0B4 == 0x6A) { + func_80077240(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 3); gHitCount += 4; D_80177850 = 15; } - if (obj2F4->unk_0B4 != 0x53) { - if ((obj2F4->unk_0B4 == 6) && (gCurrentLevel == LEVEL_SOLAR)) { - Audio_PlaySfx(0x29018036, &obj2F4->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + if (actor->unk_0B4 != 0x53) { + if ((actor->unk_0B4 == 6) && (gCurrentLevel == LEVEL_SOLAR)) { + Audio_PlaySfx(0x29018036, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } else { - Audio_PlaySfx(0x2903700B, &obj2F4->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + Audio_PlaySfx(0x2903700B, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } - obj2F4->obj.status = 3; + actor->obj.status = 3; var_fv1 = 0.7f; if (gLevelType == LEVELTYPE_SPACE) { var_fv1 = 0.3f; } - if (((Rand_ZeroOne() < var_fv1) || (obj2F4->unk_080 != 0)) && (obj2F4->info.unk_14 == 0) && - (obj2F4->unk_0B4 != 0xD) && (obj2F4->unk_0B4 != 0xE) && (obj2F4->unk_0B4 != 0x3D) && - ((s32) obj2F4->unk_0D6 < 0x1F) && (obj2F4->unk_0B4 != 0x3E) && (obj2F4->unk_0B4 != 0x40) && - (obj2F4->unk_0B4 != 0x48) && (obj2F4->unk_0B4 != 0x44)) { - func_8007D2C8(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, obj2F4->scale * 4.0f); - obj2F4->unk_0D0 = 0; + if (((Rand_ZeroOne() < var_fv1) || (actor->iwork[12] != 0)) && (actor->info.unk_14 == 0) && + (actor->unk_0B4 != 0xD) && (actor->unk_0B4 != 0xE) && (actor->unk_0B4 != 0x3D) && + ((s32) actor->unk_0D6 < 0x1F) && (actor->unk_0B4 != 0x3E) && (actor->unk_0B4 != 0x40) && + (actor->unk_0B4 != 0x48) && (actor->unk_0B4 != 0x44)) { + func_8007D2C8(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, actor->scale * 4.0f); + actor->unk_0D0 = 0; } - obj2F4->timer_0C2 = 10; - obj2F4->timer_0BE = 0; - obj2F4->unk_046 = 0xFF; - obj2F4->unk_048 = 900; - obj2F4->unk_0C9 = 1; + actor->timer_0C2 = 10; + actor->timer_0BE = 0; + actor->unk_046 = 0xFF; + actor->unk_048 = 900; + actor->unk_0C9 = 1; if (gLevelType == LEVELTYPE_PLANET) { - obj2F4->timer_04C = (s16) (s32) (Rand_ZeroOne() * 2.9f); - if (obj2F4->unk_0B4 == 2) { - obj2F4->timer_04C = 1; - if (obj2F4->obj.pos.x < obj2F4->unk_0D8.x) { - func_800A69F8(1, obj2F4->obj.pos.x + 20.0f, obj2F4->obj.pos.y, obj2F4->obj.pos.z); - obj2F4->unk_158 = 777.0f; + actor->timer_04C = (s16) (s32) (Rand_ZeroOne() * 2.9f); + if (actor->unk_0B4 == 2) { + actor->timer_04C = 1; + if (actor->obj.pos.x < actor->unk_0D8.x) { + func_800A69F8(1, actor->obj.pos.x + 20.0f, actor->obj.pos.y, actor->obj.pos.z); + actor->fwork[17] = 777.0f; } else { - func_800A69F8(0, obj2F4->obj.pos.x - 20.0f, obj2F4->obj.pos.y, obj2F4->obj.pos.z); - obj2F4->unk_15C = 777.0f; + func_800A69F8(0, actor->obj.pos.x - 20.0f, actor->obj.pos.y, actor->obj.pos.z); + actor->fwork[18] = 777.0f; } } - obj2F4->timer_0BC = 300; + actor->timer_0BC = 300; if (gLevelMode != LEVELMODE_ALL_RANGE) { - obj2F4->vel.x *= 0.5f; - obj2F4->vel.y = Rand_ZeroOne() * 5.0f; - if (obj2F4->vel.z < 0.0f) { - obj2F4->vel.z = obj2F4->vel.z; + actor->vel.x *= 0.5f; + actor->vel.y = Rand_ZeroOne() * 5.0f; + if (actor->vel.z < 0.0f) { + actor->vel.z = actor->vel.z; } else { - obj2F4->vel.z = obj2F4->vel.z * 0.3f; + actor->vel.z = actor->vel.z * 0.3f; } - if (((obj2F4->obj.pos.z + D_80177D20) > -3000.0f) && (obj2F4->vel.z > 0.0f)) { - obj2F4->vel.z = Rand_ZeroOne() * -10.0f; + if (((actor->obj.pos.z + D_80177D20) > -3000.0f) && (actor->vel.z > 0.0f)) { + actor->vel.z = Rand_ZeroOne() * -10.0f; } } - if (obj2F4->unk_0B4 == 90) { - obj2F4->timer_04C = 999; + if (actor->unk_0B4 == 90) { + actor->timer_04C = 999; } } else { - switch (obj2F4->unk_0B4) { + switch (actor->unk_0B4) { case 13: - func_800654E4(&obj2F4->obj); + func_800654E4(&actor->obj); break; case 61: - func_E08400_8018CCF8(obj2F4); + func_E08400_8018CCF8(actor); break; case 27: - obj2F4->obj.pos.y -= obj2F4->vel.y; - obj2F4->obj.status = 2; - func_8007D0E0(obj2F4->obj.pos.x - obj2F4->vel.x, obj2F4->obj.pos.y + 30.0f, - obj2F4->obj.pos.z - obj2F4->vel.z, obj2F4->scale * 5.0f); - obj2F4->unk_0D0 = 0; - obj2F4->timer_0C2 = 10000; - obj2F4->info.unk_1C = 0.0f; - gHitCount += obj2F4->info.bonus; + actor->obj.pos.y -= actor->vel.y; + actor->obj.status = 2; + func_8007D0E0(actor->obj.pos.x - actor->vel.x, actor->obj.pos.y + 30.0f, + actor->obj.pos.z - actor->vel.z, actor->scale * 5.0f); + actor->unk_0D0 = 0; + actor->timer_0C2 = 10000; + actor->info.unk_1C = 0.0f; + gHitCount += actor->info.bonus; D_80177850 = 0xF; break; default: - obj2F4->timer_0BC = 35; - obj2F4->timer_04C = 2; - obj2F4->vel.y = (Rand_ZeroOne() - 0.5f) * 20.0f; - obj2F4->vel.x = (Rand_ZeroOne() - 0.5f) * 20.0f; - obj2F4->vel.z = 0.0f; + actor->timer_0BC = 35; + actor->timer_04C = 2; + actor->vel.y = (Rand_ZeroOne() - 0.5f) * 20.0f; + actor->vel.x = (Rand_ZeroOne() - 0.5f) * 20.0f; + actor->vel.z = 0.0f; break; } } } - if (obj2F4->unk_0B4 == 0x52) { - Audio_PlaySfx(0x11000055, &obj2F4->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); - obj2F4->unk_0D0 = 1; - func_8007C688(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, 3.0f, 0x3C); + if (actor->unk_0B4 == 0x52) { + Audio_PlaySfx(0x11000055, &actor->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + actor->unk_0D0 = 1; + func_8007C688(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 3.0f, 0x3C); } } else { - obj2F4->timer_0C6 = 20; - if ((obj2F4->unk_0B4 == 6) && (gCurrentLevel == LEVEL_SOLAR)) { - Audio_PlaySfx(0x29033037, &obj2F4->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); - } else if (obj2F4->unk_0CE < 20) { - Audio_PlaySfx(0x2943500F, &obj2F4->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + actor->timer_0C6 = 20; + if ((actor->unk_0B4 == 6) && (gCurrentLevel == LEVEL_SOLAR)) { + Audio_PlaySfx(0x29033037, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } else if (actor->unk_0CE < 20) { + Audio_PlaySfx(0x2943500F, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } else { - Audio_PlaySfx(0x2903300E, &obj2F4->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + Audio_PlaySfx(0x2903300E, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } - if ((obj2F4->unk_0B4 != 0xD) && (obj2F4->unk_0B4 != 0x3D) && (obj2F4->unk_0B4 != 0x53)) { - func_8007D10C(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, obj2F4->scale * 1.5f); + if ((actor->unk_0B4 != 0xD) && (actor->unk_0B4 != 0x3D) && (actor->unk_0B4 != 0x53)) { + func_8007D10C(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, actor->scale * 1.5f); } if (((gLevelMode == LEVELMODE_ALL_RANGE) || (gLevelMode == LEVELMODE_UNK_2)) && - (obj2F4->unk_0B4 != 0x15) && (obj2F4->unk_0B4 != 0x17)) { - obj2F4->unk_148 = 20.0f; - if (obj2F4->obj.pos.x < obj2F4->unk_0D8.x) { - obj2F4->unk_148 *= -1.0f; + (actor->unk_0B4 != 0x15) && (actor->unk_0B4 != 0x17)) { + actor->fwork[13] = 20.0f; + if (actor->obj.pos.x < actor->unk_0D8.x) { + actor->fwork[13] *= -1.0f; } } - if (obj2F4->unk_0D4 == 1) { - switch (obj2F4->unk_080) { + if (actor->unk_0D4 == 1) { + switch (actor->iwork[12]) { case 1: - if (obj2F4->unk_0D0 == 3) { + if (actor->unk_0D0 == 3) { func_8006A7B0(gMsg_ID_20210, RCID_FALCO); } else { func_8006A7B0(gMsg_ID_20060, RCID_FALCO); @@ -2158,7 +2154,7 @@ void func_800701E0(Object_2F4* obj2F4) { break; case 3: - if (obj2F4->unk_0D0 == 3) { + if (actor->unk_0D0 == 3) { func_8006A7B0(gMsg_ID_20200, RCID_PEPPY); } else { func_8006A7B0(gMsg_ID_20070, RCID_PEPPY); @@ -2166,7 +2162,7 @@ void func_800701E0(Object_2F4* obj2F4) { break; case 2: - if (obj2F4->unk_0D0 == 3) { + if (actor->unk_0D0 == 3) { func_8006A7B0(gMsg_ID_20190, RCID_SLIPPY); } else { func_8006A7B0(gMsg_ID_20080, RCID_SLIPPY); @@ -2182,73 +2178,73 @@ void func_800701E0(Object_2F4* obj2F4) { break; } } - obj2F4->unk_0D0 = 0; + actor->unk_0D0 = 0; } } - if ((obj2F4->unk_080 == 0) && (obj2F4->unk_084 == 0) && (obj2F4->info.unk_16 != 2) && + if ((actor->iwork[12] == 0) && (actor->iwork[13] == 0) && (actor->info.unk_16 != 2) && (gLevelType == LEVELTYPE_SPACE)) { - sp3C.x = obj2F4->vel.x; - sp3C.y = obj2F4->vel.y; - sp3C.z = obj2F4->vel.z; + sp3C.x = actor->vel.x; + sp3C.y = actor->vel.y; + sp3C.z = actor->vel.z; - if ((func_8006351C(obj2F4->index, &obj2F4->obj.pos, &sp3C, 0) != 0) || - (obj2F4->obj.pos.y < (D_80177940 + 20.0f))) { - obj2F4->obj.status = 3; - obj2F4->obj.pos.z -= obj2F4->vel.z; - obj2F4->unk_0D0 = 1; - if (obj2F4->unk_0B4 == 13) { - obj2F4->obj.id = OBJ_2F4_182; - func_800654E4(&obj2F4->obj); + if ((func_8006351C(actor->index, &actor->obj.pos, &sp3C, 0) != 0) || + (actor->obj.pos.y < (D_80177940 + 20.0f))) { + actor->obj.status = 3; + actor->obj.pos.z -= actor->vel.z; + actor->unk_0D0 = 1; + if (actor->unk_0B4 == 13) { + actor->obj.id = OBJ_ACTOR_182; + func_800654E4(&actor->obj); } - if (obj2F4->unk_0B4 == 61) { - func_E08400_8018CCF8(obj2F4); + if (actor->unk_0B4 == 61) { + func_E08400_8018CCF8(actor); } } } } } -void func_80070BA8(Object_2F4* obj2F4) { - if (obj2F4->unk_0D0 != 0) { - obj2F4->unk_0D0 = 0; - if ((obj2F4->unk_0B4 != 0x11) || ((obj2F4->unk_0B4 == 0x11) && (obj2F4->unk_0D2 == 0))) { - obj2F4->timer_0C6 = 10; - func_8007C120(obj2F4->unk_0D8.x, obj2F4->unk_0D8.y, obj2F4->unk_0D8.z, obj2F4->vel.x, obj2F4->vel.y, - obj2F4->vel.z, 0.2f, 10); - obj2F4->unk_0CE -= obj2F4->unk_0D6; - Audio_PlaySfx(0x29033064, &obj2F4->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); - if (obj2F4->unk_0CE <= 0) { - func_80077240(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, obj2F4->info.bonus); - gHitCount += obj2F4->info.bonus + 1; +void func_80070BA8(Actor* actor) { + if (actor->unk_0D0 != 0) { + actor->unk_0D0 = 0; + if ((actor->unk_0B4 != 0x11) || ((actor->unk_0B4 == 0x11) && (actor->unk_0D2 == 0))) { + actor->timer_0C6 = 10; + func_8007C120(actor->unk_0D8.x, actor->unk_0D8.y, actor->unk_0D8.z, actor->vel.x, actor->vel.y, + actor->vel.z, 0.2f, 10); + actor->unk_0CE -= actor->unk_0D6; + Audio_PlaySfx(0x29033064, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + if (actor->unk_0CE <= 0) { + func_80077240(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, actor->info.bonus); + gHitCount += actor->info.bonus + 1; D_80177850 = 15; } } else { - Audio_PlaySfx(0x29121007, &obj2F4->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + Audio_PlaySfx(0x29121007, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } } } -void func_80070CEC(Object_2F4* obj2F4) { - if (obj2F4->unk_05C < 200) { - obj2F4->unk_0E6 = obj2F4->unk_05C * 2; - obj2F4->unk_050 = 0; - obj2F4->unk_058 = 0; - func_8006D36C(obj2F4); +void func_80070CEC(Actor* actor) { + if (actor->iwork[3] < 200) { + actor->unk_0E6 = actor->iwork[3] * 2; + actor->iwork[0] = 0; + actor->iwork[2] = 0; + func_8006D36C(actor); } else { - obj2F4->unk_0E4 = obj2F4->unk_05C - 200; - obj2F4->unk_0E6 = 0; - obj2F4->unk_050 = 0; - obj2F4->unk_058 = 0; - func_8006D36C(obj2F4); + actor->unk_0E4 = actor->iwork[3] - 200; + actor->unk_0E6 = 0; + actor->iwork[0] = 0; + actor->iwork[2] = 0; + func_8006D36C(actor); } } -void func_80070D44(Object_2F4* obj2F4) { +void func_80070D44(Actor* actor) { s32 i; s32 var_v1 = 0; s32 var_v1_4; - Object_2F4* other2F4; + Actor* otherActor; for (i = 1; i < 4; i++) { if (gTeamShields[i] > 0) { @@ -2256,269 +2252,253 @@ void func_80070D44(Object_2F4* obj2F4) { } } - if (obj2F4->unk_058 >= 100) { - if (fabsf(obj2F4->obj.pos.z - gPlayer[0].unk_138) <= ((obj2F4->unk_058 - 100) * 100.0f)) { - func_80070CEC(obj2F4); + if (actor->iwork[2] >= 100) { + if (fabsf(actor->obj.pos.z - gPlayer[0].unk_138) <= ((actor->iwork[2] - 100) * 100.0f)) { + func_80070CEC(actor); } return; } - switch (obj2F4->unk_058) { + switch (actor->iwork[2]) { case 0: break; case 1: - if ((gObjects2F4[obj2F4->unk_054].obj.status != 2) || (gObjects2F4[obj2F4->unk_054].unk_0CE <= 0) || - (obj2F4->unk_078 != gObjects2F4[obj2F4->unk_054].unk_0E4)) { - func_80070CEC(obj2F4); + if ((gActors[actor->iwork[1]].obj.status != 2) || (gActors[actor->iwork[1]].unk_0CE <= 0) || + (actor->iwork[10] != gActors[actor->iwork[1]].unk_0E4)) { + func_80070CEC(actor); } break; case 2: if (var_v1 == 3) { - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; case 3: if (var_v1 == 2) { - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; case 4: if (var_v1 == 1) { - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; case 5: if (var_v1 == 0) { - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; case 6: if (gTeamShields[1] > 0) { - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; case 7: if (gTeamShields[3] > 0) { - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; case 8: if (gTeamShields[2] > 0) { - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; case 9: - if (((obj2F4->obj.pos.x - gPlayer[0].pos.x) <= 100.0f) && - ((obj2F4->obj.pos.x - gPlayer[0].pos.x) >= 0.0f)) { - func_80070CEC(obj2F4); + if (((actor->obj.pos.x - gPlayer[0].pos.x) <= 100.0f) && ((actor->obj.pos.x - gPlayer[0].pos.x) >= 0.0f)) { + func_80070CEC(actor); } break; case 10: - if (((obj2F4->obj.pos.x - gPlayer[0].pos.x) <= 400.0f) && - ((obj2F4->obj.pos.x - gPlayer[0].pos.x) >= 0.0f)) { - func_80070CEC(obj2F4); + if (((actor->obj.pos.x - gPlayer[0].pos.x) <= 400.0f) && ((actor->obj.pos.x - gPlayer[0].pos.x) >= 0.0f)) { + func_80070CEC(actor); } break; case 11: - if (((obj2F4->obj.pos.x - gPlayer[0].pos.x) <= 700.0f) && - ((obj2F4->obj.pos.x - gPlayer[0].pos.x) >= 0.0f)) { - func_80070CEC(obj2F4); + if (((actor->obj.pos.x - gPlayer[0].pos.x) <= 700.0f) && ((actor->obj.pos.x - gPlayer[0].pos.x) >= 0.0f)) { + func_80070CEC(actor); } break; case 12: - if (((obj2F4->obj.pos.x - gPlayer[0].pos.x) <= 200.0f) && - ((obj2F4->obj.pos.x - gPlayer[0].pos.x) >= 0.0f)) { - func_80070CEC(obj2F4); + if (((actor->obj.pos.x - gPlayer[0].pos.x) <= 200.0f) && ((actor->obj.pos.x - gPlayer[0].pos.x) >= 0.0f)) { + func_80070CEC(actor); } break; case 13: - if (((obj2F4->obj.pos.x - gPlayer[0].pos.x) >= -100.0f) && - ((obj2F4->obj.pos.x - gPlayer[0].pos.x) <= 0.0f)) { - func_80070CEC(obj2F4); + if (((actor->obj.pos.x - gPlayer[0].pos.x) >= -100.0f) && ((actor->obj.pos.x - gPlayer[0].pos.x) <= 0.0f)) { + func_80070CEC(actor); } break; case 14: - if (((obj2F4->obj.pos.x - gPlayer[0].pos.x) >= -400.0f) && - ((obj2F4->obj.pos.x - gPlayer[0].pos.x) <= 0.0f)) { - func_80070CEC(obj2F4); + if (((actor->obj.pos.x - gPlayer[0].pos.x) >= -400.0f) && ((actor->obj.pos.x - gPlayer[0].pos.x) <= 0.0f)) { + func_80070CEC(actor); } break; case 15: - if (((obj2F4->obj.pos.x - gPlayer[0].pos.x) >= -700.0f) && - ((obj2F4->obj.pos.x - gPlayer[0].pos.x) <= 0.0f)) { - func_80070CEC(obj2F4); + if (((actor->obj.pos.x - gPlayer[0].pos.x) >= -700.0f) && ((actor->obj.pos.x - gPlayer[0].pos.x) <= 0.0f)) { + func_80070CEC(actor); } break; case 16: - if (((obj2F4->obj.pos.x - gPlayer[0].pos.x) >= -200.0f) && - ((obj2F4->obj.pos.x - gPlayer[0].pos.x) <= 0.0f)) { - func_80070CEC(obj2F4); + if (((actor->obj.pos.x - gPlayer[0].pos.x) >= -200.0f) && ((actor->obj.pos.x - gPlayer[0].pos.x) <= 0.0f)) { + func_80070CEC(actor); } break; case 17: - if (((obj2F4->obj.pos.y - gPlayer[0].pos.y) <= 100.0f) && - ((obj2F4->obj.pos.y - gPlayer[0].pos.y) >= 0.0f)) { - func_80070CEC(obj2F4); + if (((actor->obj.pos.y - gPlayer[0].pos.y) <= 100.0f) && ((actor->obj.pos.y - gPlayer[0].pos.y) >= 0.0f)) { + func_80070CEC(actor); } break; case 18: - if (((obj2F4->obj.pos.y - gPlayer[0].pos.y) <= 400.0f) && - ((obj2F4->obj.pos.y - gPlayer[0].pos.y) >= 0.0f)) { - func_80070CEC(obj2F4); + if (((actor->obj.pos.y - gPlayer[0].pos.y) <= 400.0f) && ((actor->obj.pos.y - gPlayer[0].pos.y) >= 0.0f)) { + func_80070CEC(actor); } break; case 19: - if (((obj2F4->obj.pos.y - gPlayer[0].pos.y) <= 700.0f) && - ((obj2F4->obj.pos.y - gPlayer[0].pos.y) >= 0.0f)) { - func_80070CEC(obj2F4); + if (((actor->obj.pos.y - gPlayer[0].pos.y) <= 700.0f) && ((actor->obj.pos.y - gPlayer[0].pos.y) >= 0.0f)) { + func_80070CEC(actor); } break; case 20: - if (((obj2F4->obj.pos.y - gPlayer[0].pos.y) <= 200.0f) && - ((obj2F4->obj.pos.y - gPlayer[0].pos.y) >= 0.0f)) { - func_80070CEC(obj2F4); + if (((actor->obj.pos.y - gPlayer[0].pos.y) <= 200.0f) && ((actor->obj.pos.y - gPlayer[0].pos.y) >= 0.0f)) { + func_80070CEC(actor); } break; case 21: - if (((obj2F4->obj.pos.y - gPlayer[0].pos.y) >= -100.0f) && - ((obj2F4->obj.pos.y - gPlayer[0].pos.y) <= 0.0f)) { - func_80070CEC(obj2F4); + if (((actor->obj.pos.y - gPlayer[0].pos.y) >= -100.0f) && ((actor->obj.pos.y - gPlayer[0].pos.y) <= 0.0f)) { + func_80070CEC(actor); } break; case 22: - if (((obj2F4->obj.pos.y - gPlayer[0].pos.y) >= -400.0f) && - ((obj2F4->obj.pos.y - gPlayer[0].pos.y) <= 0.0f)) { - func_80070CEC(obj2F4); + if (((actor->obj.pos.y - gPlayer[0].pos.y) >= -400.0f) && ((actor->obj.pos.y - gPlayer[0].pos.y) <= 0.0f)) { + func_80070CEC(actor); } break; case 23: - if (((obj2F4->obj.pos.y - gPlayer[0].pos.y) >= -700.0f) && - ((obj2F4->obj.pos.y - gPlayer[0].pos.y) <= 0.0f)) { - func_80070CEC(obj2F4); + if (((actor->obj.pos.y - gPlayer[0].pos.y) >= -700.0f) && ((actor->obj.pos.y - gPlayer[0].pos.y) <= 0.0f)) { + func_80070CEC(actor); } break; case 24: - if (((obj2F4->obj.pos.y - gPlayer[0].pos.y) >= -200.0f) && - ((obj2F4->obj.pos.y - gPlayer[0].pos.y) <= 0.0f)) { - func_80070CEC(obj2F4); + if (((actor->obj.pos.y - gPlayer[0].pos.y) >= -200.0f) && ((actor->obj.pos.y - gPlayer[0].pos.y) <= 0.0f)) { + func_80070CEC(actor); } break; case 25: if (gPlayer[0].shields >= Play_GetMaxShields()) { - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; case 26: if (gPlayer[0].shields >= (Play_GetMaxShields() * 3 / 4)) { - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; case 27: if (gPlayer[0].shields >= (Play_GetMaxShields() / 2)) { - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; case 28: if (gPlayer[0].shields >= (Play_GetMaxShields() / 4)) { - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; case 29: if (gPlayer[0].shields == 0) { - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; case 30: if (gPlayer[0].unk_270 >= 5) { - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; case 31: if (gPlayer[0].unk_270 != 0) { - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; case 32: if (gPlayer[0].unk_270 == 0) { - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; case 33: if (gPlayer[0].unk_250 >= 16.8f) { - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; case 34: if (gPlayer[0].unk_250 <= 8.4f) { - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; case 35: if (gPlayer[0].wings.unk_14 > -8.0f) { - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; case 36: if ((gPlayer[0].wings.unk_14 < -8.0f) && (gLaserStrength[0] == LASERS_TWIN)) { - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; case 37: if ((gPlayer[0].wings.unk_14 < -8.0f) && (gLaserStrength[0] == LASERS_HYPER)) { - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; case 38: if ((gPlayer[0].wings.unk_14 < -8.0f) && (gLaserStrength[0] == LASERS_UNK_3)) { - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; case 39: for (i = 0; i < ARRAY_COUNT(gPlayerShots); i++) { if ((gPlayerShots[i].obj.status == 1) && - (fabsf(obj2F4->obj.pos.x - gPlayerShots[i].obj.pos.x) < 150.0f) && - (fabsf(obj2F4->obj.pos.y - gPlayerShots[i].obj.pos.y) < 150.0f) && - (fabsf(obj2F4->obj.pos.z - gPlayerShots[i].obj.pos.z) < 150.0f)) { - func_80070CEC(obj2F4); + (fabsf(actor->obj.pos.x - gPlayerShots[i].obj.pos.x) < 150.0f) && + (fabsf(actor->obj.pos.y - gPlayerShots[i].obj.pos.y) < 150.0f) && + (fabsf(actor->obj.pos.z - gPlayerShots[i].obj.pos.z) < 150.0f)) { + func_80070CEC(actor); break; } } @@ -2527,47 +2507,45 @@ void func_80070D44(Object_2F4* obj2F4) { case 40: for (i = 0; i < ARRAY_COUNT(gPlayerShots); i++) { if ((gPlayerShots[i].obj.status == 1) && - (fabsf(obj2F4->obj.pos.x - gPlayerShots[i].obj.pos.x) < 300.0f) && - (fabsf(obj2F4->obj.pos.y - gPlayerShots[i].obj.pos.y) < 300.0f) && - (fabsf(obj2F4->obj.pos.z - gPlayerShots[i].obj.pos.z) < 300.0f)) { - func_80070CEC(obj2F4); + (fabsf(actor->obj.pos.x - gPlayerShots[i].obj.pos.x) < 300.0f) && + (fabsf(actor->obj.pos.y - gPlayerShots[i].obj.pos.y) < 300.0f) && + (fabsf(actor->obj.pos.z - gPlayerShots[i].obj.pos.z) < 300.0f)) { + func_80070CEC(actor); break; } } break; case 41: - if ((gObjects2F4[obj2F4->unk_074].obj.status != 2) || - ((gObjects2F4[obj2F4->unk_074].scale < 0.0f) && (obj2F4->unk_0CE <= 0))) { - func_80070CEC(obj2F4); + if ((gActors[actor->iwork[9]].obj.status != 2) || + ((gActors[actor->iwork[9]].scale < 0.0f) && (actor->unk_0CE <= 0))) { + func_80070CEC(actor); } break; case 42: - for (i = 0; i < ARRAY_COUNT(gObjects2F4); i++) { - if ((gObjects2F4[i].obj.status == 2) && (gObjects2F4[i].obj.id == OBJ_2F4_200) && - (gObjects2F4[i].unk_084 != 0) && (i != obj2F4->index) && - (obj2F4->index == gObjects2F4[i].unk_074)) { + for (i = 0; i < ARRAY_COUNT(gActors); i++) { + if ((gActors[i].obj.status == 2) && (gActors[i].obj.id == OBJ_ACTOR_200) && + (gActors[i].iwork[13] != 0) && (i != actor->index) && (actor->index == gActors[i].iwork[9])) { return; } } - func_80070CEC(obj2F4); + func_80070CEC(actor); break; case 43: - for (i = 0; i < ARRAY_COUNT(gObjects2F4); i++) { - if ((gObjects2F4[i].obj.status == 2) && (gObjects2F4[i].obj.id == OBJ_2F4_200) && - (gObjects2F4[i].unk_084 != 0) && (i != obj2F4->index) && - (obj2F4->index == gObjects2F4[i].unk_074)) { - func_80070CEC(obj2F4); + for (i = 0; i < ARRAY_COUNT(gActors); i++) { + if ((gActors[i].obj.status == 2) && (gActors[i].obj.id == OBJ_ACTOR_200) && + (gActors[i].iwork[13] != 0) && (i != actor->index) && (actor->index == gActors[i].iwork[9])) { + func_80070CEC(actor); break; } } break; case 44: - if (obj2F4->unk_0D0 != 0) { - func_80070CEC(obj2F4); + if (actor->unk_0D0 != 0) { + func_80070CEC(actor); } break; @@ -2585,15 +2563,15 @@ void func_80070D44(Object_2F4* obj2F4) { } if (((gCurrentLevel != LEVEL_CORNERIA) || (gTeamShields[1] > 0)) && (D_80177E80 >= var_v1_4)) { - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; case 46: - for (i = 0, other2F4 = gObjects2F4; i < ARRAY_COUNT(gObjects2F4); i++, other2F4++) { - if (((other2F4->obj.status == 3) || (other2F4->obj.status == 0)) && - (obj2F4->unk_08C == other2F4->unk_08C) && (other2F4->unk_090 != 0)) { - func_80070CEC(obj2F4); + for (i = 0, otherActor = gActors; i < ARRAY_COUNT(gActors); i++, otherActor++) { + if (((otherActor->obj.status == 3) || (otherActor->obj.status == 0)) && + (otherActor->iwork[15] == actor->iwork[15]) && (otherActor->iwork[16] != 0)) { + func_80070CEC(actor); } } break; @@ -2603,127 +2581,127 @@ void func_80070D44(Object_2F4* obj2F4) { func_8001AF40(0); D_800CFF90 = 0; D_80161690 = 0; - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; case 48: if ((gPlayer[0].wings.rightState <= WINGSTATE_BROKEN) || (gPlayer[0].wings.leftState <= WINGSTATE_BROKEN)) { - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; case 49: if (D_800D3180[1] != 0) { - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; case 50: if (D_800D3180[0xE] != 0) { - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; case 51: if (D_800D3180[2] != 0) { - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; case 52: if (D_800D3180[0xC] != 0) { - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; case 53: if (D_800D3180[0x11] != 0) { - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; case 54: if (D_800D3180[5] != 0) { - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; case 55: if (D_800D3180[0x10] != 0) { - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; case 56: if (D_800D3180[7] != 0) { - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; case 57: if (D_800D3180[0xB] != 0) { - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; case 58: if (D_800D3180[0xD] != 0) { - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; case 59: if (D_800D3180[8] != 0) { - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; case 60: if (D_800D3180[0x12] != 0) { - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; case 61: if (D_800D3180[3] != 0) { - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; case 62: - if (D_Timer_80161670[obj2F4->unk_080] == 0) { - func_80070CEC(obj2F4); + if (D_Timer_80161670[actor->iwork[12]] == 0) { + func_80070CEC(actor); } break; case 63: - if (D_Timer_80161670[obj2F4->unk_080] != 0) { - func_80070CEC(obj2F4); + if (D_Timer_80161670[actor->iwork[12]] != 0) { + func_80070CEC(actor); } break; case 64: if (D_80161684 != 0) { - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; case 65: if (gHitCount >= 30) { - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; case 66: if (gHitCount >= 80) { - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; case 67: if (gExpertMode) { - func_80070CEC(obj2F4); + func_80070CEC(actor); } break; } @@ -2770,89 +2748,89 @@ Vec3f D_800D1194[21] = { { 453.0f, 420.0f, 67.0f }, }; -void func_80071DC0(Object_2F4* obj2F4) { +void func_80071DC0(Actor* actor) { s32 rInd; Vec3f sp38; - Matrix_RotateY(gCalcMatrix, obj2F4->obj.rot.y * M_DTOR, 0); - Matrix_RotateX(gCalcMatrix, obj2F4->obj.rot.x * M_DTOR, 1); - Matrix_RotateZ(gCalcMatrix, obj2F4->obj.rot.z * M_DTOR, 1); + Matrix_RotateY(gCalcMatrix, actor->obj.rot.y * M_DTOR, 0); + Matrix_RotateX(gCalcMatrix, actor->obj.rot.x * M_DTOR, 1); + Matrix_RotateZ(gCalcMatrix, actor->obj.rot.z * M_DTOR, 1); - if (obj2F4->unk_0B4 == 30) { + if (actor->unk_0B4 == 30) { rInd = Rand_ZeroOne() * (ARRAY_COUNT(D_800D1074) - 1.1f); // off by 1 error? Matrix_MultVec3fNoTranslate(gCalcMatrix, &D_800D1074[rInd], &sp38); } - if (obj2F4->unk_0B4 == 17) { + if (actor->unk_0B4 == 17) { rInd = Rand_ZeroOne() * (ARRAY_COUNT(D_800D0DD4) - 0.1f); Matrix_MultVec3fNoTranslate(gCalcMatrix, &D_800D0DD4[rInd], &sp38); } - if (obj2F4->unk_0B4 == 31) { + if (actor->unk_0B4 == 31) { rInd = Rand_ZeroOne() * (ARRAY_COUNT(D_800D1194) - 0.1f); Matrix_MultVec3fNoTranslate(gCalcMatrix, &D_800D1194[rInd], &sp38); } if (!(gFrameCount & 1)) { - func_8007C120(obj2F4->obj.pos.x + sp38.x, obj2F4->obj.pos.y + sp38.y, obj2F4->obj.pos.z + sp38.z, obj2F4->vel.x, - obj2F4->vel.y, obj2F4->vel.z, 0.3f, 0x14); + func_8007C120(actor->obj.pos.x + sp38.x, actor->obj.pos.y + sp38.y, actor->obj.pos.z + sp38.z, actor->vel.x, + actor->vel.y, actor->vel.z, 0.3f, 0x14); } if (!(gFrameCount & 7)) { - func_8007BFFC(obj2F4->obj.pos.x + sp38.x, obj2F4->obj.pos.y + sp38.y, obj2F4->obj.pos.z + sp38.z, obj2F4->vel.x, - obj2F4->vel.y, obj2F4->vel.z, 10.0f, 9); + func_8007BFFC(actor->obj.pos.x + sp38.x, actor->obj.pos.y + sp38.y, actor->obj.pos.z + sp38.z, actor->vel.x, + actor->vel.y, actor->vel.z, 10.0f, 9); } if (!(gFrameCount & 0xF)) { - Audio_PlaySfx(0x2903B009, &obj2F4->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + Audio_PlaySfx(0x2903B009, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } - obj2F4->vel.y -= 0.1f; - obj2F4->vel.z = 0.0f; - obj2F4->obj.rot.x += 0.2f; - obj2F4->obj.rot.z += 0.3f; + actor->vel.y -= 0.1f; + actor->vel.z = 0.0f; + actor->obj.rot.x += 0.2f; + actor->obj.rot.z += 0.3f; if (!(gFrameCount & 7) && (Rand_ZeroOne() < 0.5f)) { - obj2F4->timer_0C6 = 4; + actor->timer_0C6 = 4; } } -void func_800720E8(Object_2F4* obj2F4) { - switch (obj2F4->unk_046) { +void func_800720E8(Actor* actor) { + switch (actor->unk_046) { case 0: - if (obj2F4->unk_0D0 != 0) { - if (obj2F4->unk_0D0 == 2) { - obj2F4->unk_0D6 = 3; + if (actor->unk_0D0 != 0) { + if (actor->unk_0D0 == 2) { + actor->unk_0D6 = 3; } - if ((obj2F4->unk_0D4 > 100) && (gObjects2F4[obj2F4->unk_0D4 - 101].unk_0B4 == 85)) { - obj2F4->unk_0D6 = 20; + if ((actor->unk_0D4 > 100) && (gActors[actor->unk_0D4 - 101].unk_0B4 == 85)) { + actor->unk_0D6 = 20; } - obj2F4->unk_0CE -= obj2F4->unk_0D6; - obj2F4->unk_154 += 0.2f; - obj2F4->timer_0BC = 5; + actor->unk_0CE -= actor->unk_0D6; + actor->fwork[16] += 0.2f; + actor->timer_0BC = 5; - if (obj2F4->timer_0BE < 20) { - obj2F4->timer_0BE += 5; + if (actor->timer_0BE < 20) { + actor->timer_0BE += 5; } - if (obj2F4->unk_0CE <= 0) { - obj2F4->unk_046 = 1; - obj2F4->info.hitbox = SEGMENTED_TO_VIRTUAL(D_6032408); - Audio_PlaySfx(0x1900000D, &obj2F4->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + if (actor->unk_0CE <= 0) { + actor->unk_046 = 1; + actor->info.hitbox = SEGMENTED_TO_VIRTUAL(D_6032408); + Audio_PlaySfx(0x1900000D, &actor->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } else { - Audio_PlaySfx(0x2903300E, &obj2F4->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + Audio_PlaySfx(0x2903300E, &actor->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } - obj2F4->unk_0D0 = 0; + actor->unk_0D0 = 0; } break; case 1: case 2: - Math_SmoothStepToF(&obj2F4->unk_154, 130.0f, 0.2f, 8.0f, 0.001f); - if (obj2F4->unk_154 > 45.0f) { - Math_SmoothStepToF(&obj2F4->unk_150, 90.0f, 0.2f, 10.0f, 0.001f); + Math_SmoothStepToF(&actor->fwork[16], 130.0f, 0.2f, 8.0f, 0.001f); + if (actor->fwork[16] > 45.0f) { + Math_SmoothStepToF(&actor->fwork[15], 90.0f, 0.2f, 10.0f, 0.001f); } break; } @@ -2893,40 +2871,40 @@ void func_8007240C(f32 xPos, f32 yPos, f32 zPos, f32 yRot) { } } -void func_80072474(Object_2F4* obj2F4) { +void func_80072474(Actor* actor) { f32 var_fv1; - if (obj2F4->unk_048 != 0) { - switch (obj2F4->unk_048) { + if (actor->unk_048 != 0) { + switch (actor->unk_048) { case 1: - obj2F4->unk_154 = 45.0f; + actor->fwork[16] = 45.0f; break; case 2: - obj2F4->unk_154 = 0.0f; + actor->fwork[16] = 0.0f; break; case 3: - obj2F4->unk_08C = 1; + actor->iwork[15] = 1; break; case 4: - obj2F4->unk_08C = 0; + actor->iwork[15] = 0; break; } - obj2F4->unk_048 = 0; + actor->unk_048 = 0; } - if (obj2F4->unk_08C != 0) { + if (actor->iwork[15] != 0) { var_fv1 = - Math_RadToDeg(Math_Atan2F(gPlayer[0].pos.x - obj2F4->obj.pos.x, gPlayer[0].unk_138 - obj2F4->obj.pos.z)); - } else if (obj2F4->unk_068 != 0) { - var_fv1 = obj2F4->unk_0F4.y; + Math_RadToDeg(Math_Atan2F(gPlayer[0].pos.x - actor->obj.pos.x, gPlayer[0].unk_138 - actor->obj.pos.z)); + } else if (actor->iwork[6] != 0) { + var_fv1 = actor->unk_0F4.y; } else { var_fv1 = 0.0f; } - Math_SmoothStepToAngle(&obj2F4->obj.rot.y, var_fv1, 0.2f, 3.0f, 0.0f); - Math_SmoothStepToAngle(&obj2F4->unk_150, obj2F4->unk_154, 0.5f, 8.0f, 0.0f); + Math_SmoothStepToAngle(&actor->obj.rot.y, var_fv1, 0.2f, 3.0f, 0.0f); + Math_SmoothStepToAngle(&actor->fwork[15], actor->fwork[16], 0.5f, 8.0f, 0.0f); } Vec3f D_800D1290 = { 0.0f, 837.00006f, 0.0f }; // could be in-function -void func_80072594(Object_2F4* obj2F4) { +void func_80072594(Actor* actor) { s32 spFC; f32 var_fv0; s32 var_s0; @@ -2951,70 +2929,70 @@ void func_80072594(Object_2F4* obj2F4) { spD4 = 0.0f; if ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_7) || (D_8017828C != 0)) { - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); + Object_Kill(&actor->obj, &actor->sfxPos); return; } - if (obj2F4->unk_0B8 == 0x3E8) { - obj2F4->obj.rot.y += obj2F4->unk_150; - obj2F4->obj.rot.x += obj2F4->unk_154; + if (actor->unk_0B8 == 0x3E8) { + actor->obj.rot.y += actor->fwork[15]; + actor->obj.rot.x += actor->fwork[16]; if (!(gFrameCount & 0xF)) { - func_8007C120(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, obj2F4->vel.x, obj2F4->vel.y, - obj2F4->vel.z, 0.3f, 0xA); + func_8007C120(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, actor->vel.x, actor->vel.y, + actor->vel.z, 0.3f, 0xA); } } else { - if (((obj2F4->unk_0B4 == 0x11) || (obj2F4->unk_0B4 == 0x1E) || (obj2F4->unk_0B4 == 0x1F)) && - (obj2F4->unk_0CE <= 0)) { - func_80071DC0(obj2F4); + if (((actor->unk_0B4 == 0x11) || (actor->unk_0B4 == 0x1E) || (actor->unk_0B4 == 0x1F)) && + (actor->unk_0CE <= 0)) { + func_80071DC0(actor); return; } - if (obj2F4->unk_0B4 == 300) { - gPlayer[0].unk_1A4 = obj2F4->index; - obj2F4->timer_0C2 = 100; - } else if (obj2F4->unk_0B4 >= 200) { - obj2F4->unk_04E++; + if (actor->unk_0B4 == 300) { + gPlayer[0].unk_1A4 = actor->index; + actor->timer_0C2 = 100; + } else if (actor->unk_0B4 >= 200) { + actor->unk_04E++; - if (obj2F4->unk_04E >= 100) { - obj2F4->unk_04E = 0; + if (actor->unk_04E >= 100) { + actor->unk_04E = 0; } - D_80176558[obj2F4->unk_046][obj2F4->unk_04E] = obj2F4->obj.pos.x; - D_80176878[obj2F4->unk_046][obj2F4->unk_04E] = obj2F4->obj.pos.y; - D_80176B98[obj2F4->unk_046][obj2F4->unk_04E] = obj2F4->obj.pos.z; - D_80176EB8[obj2F4->unk_046][obj2F4->unk_04E] = obj2F4->obj.rot.x; - D_801771D8[obj2F4->unk_046][obj2F4->unk_04E] = obj2F4->obj.rot.y; - D_80177500[obj2F4->unk_046][obj2F4->unk_04E] = obj2F4->obj.rot.z; + D_80176558[actor->unk_046][actor->unk_04E] = actor->obj.pos.x; + D_80176878[actor->unk_046][actor->unk_04E] = actor->obj.pos.y; + D_80176B98[actor->unk_046][actor->unk_04E] = actor->obj.pos.z; + D_80176EB8[actor->unk_046][actor->unk_04E] = actor->obj.rot.x; + D_801771D8[actor->unk_046][actor->unk_04E] = actor->obj.rot.y; + D_80177500[actor->unk_046][actor->unk_04E] = actor->obj.rot.z; - if (obj2F4->unk_0D0 != 0) { - obj2F4->unk_0D0 = 0; - obj2F4->timer_0C6 = 20; - obj2F4->unk_0CE -= obj2F4->unk_0D6; + if (actor->unk_0D0 != 0) { + actor->unk_0D0 = 0; + actor->timer_0C6 = 20; + actor->unk_0CE -= actor->unk_0D6; - Audio_PlaySfx(0x29034041, &obj2F4->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + Audio_PlaySfx(0x29034041, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); - if (obj2F4->unk_0CE <= 0) { - obj2F4->timer_0C6 = 200; - obj2F4->obj.status = 3; - func_8007D2C8(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, 8.0f); - obj2F4->obj.status = 3; - obj2F4->timer_0BC = 20; - obj2F4->obj.id = OBJ_2F4_194; + if (actor->unk_0CE <= 0) { + actor->timer_0C6 = 200; + actor->obj.status = 3; + func_8007D2C8(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 8.0f); + actor->obj.status = 3; + actor->timer_0BC = 20; + actor->obj.id = OBJ_ACTOR_194; } } } - if ((obj2F4->unk_0B4 == 27) && (obj2F4->timer_0C2 != 0)) { - obj2F4->unk_0B8 = 0; + if ((actor->unk_0B4 == 27) && (actor->timer_0C2 != 0)) { + actor->unk_0B8 = 0; } - switch (obj2F4->unk_0B8) { + switch (actor->unk_0B8) { case 0: - func_8006D36C(obj2F4); + func_8006D36C(actor); break; case 1: - if (obj2F4->timer_0BC == 0) { - func_8006D36C(obj2F4); + if (actor->timer_0BC == 0) { + func_8006D36C(actor); } break; @@ -3022,16 +3000,16 @@ void func_80072594(Object_2F4* obj2F4) { case 7: case 14: case 15: - spF0 = obj2F4->obj.pos.x; - spEC = obj2F4->obj.pos.y; - spE8 = obj2F4->obj.pos.z; + spF0 = actor->obj.pos.x; + spEC = actor->obj.pos.y; + spE8 = actor->obj.pos.z; - if ((obj2F4->unk_0B4 == 0x21) || (obj2F4->unk_0B4 == 0x44)) { - Matrix_RotateZ(gCalcMatrix, -(obj2F4->unk_2E8.z + obj2F4->unk_0F4.z) * M_DTOR, 0); - Matrix_RotateX(gCalcMatrix, -obj2F4->unk_2E8.x * M_DTOR, 1); - Matrix_RotateY(gCalcMatrix, -obj2F4->unk_2E8.y * M_DTOR, 1); + if ((actor->unk_0B4 == 0x21) || (actor->unk_0B4 == 0x44)) { + Matrix_RotateZ(gCalcMatrix, -(actor->vwork[29].z + actor->unk_0F4.z) * M_DTOR, 0); + Matrix_RotateX(gCalcMatrix, -actor->vwork[29].x * M_DTOR, 1); + Matrix_RotateY(gCalcMatrix, -actor->vwork[29].y * M_DTOR, 1); - if ((obj2F4->unk_0B8 == 0xE) || (obj2F4->unk_0B8 == 0xF)) { + if ((actor->unk_0B8 == 0xE) || (actor->unk_0B8 == 0xF)) { 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; @@ -3057,23 +3035,23 @@ void func_80072594(Object_2F4* obj2F4) { spFC++; } - obj2F4->obj.rot.x = 0.0f; + actor->obj.rot.x = 0.0f; - Math_SmoothStepToAngle(&obj2F4->obj.rot.y, spE0, 0.2f, obj2F4->unk_174, 0.001f); - Math_SmoothStepToAngle(&obj2F4->unk_150, spE4, 0.2f, obj2F4->unk_174, 0.001f); + Math_SmoothStepToAngle(&actor->obj.rot.y, spE0, 0.2f, actor->fwork[24], 0.001f); + Math_SmoothStepToAngle(&actor->fwork[15], spE4, 0.2f, actor->fwork[24], 0.001f); - if (!(obj2F4->timer_0BC & 0x1F) && (spFC == 0)) { - Matrix_RotateY(gCalcMatrix, obj2F4->unk_2E8.y * M_DTOR, 0); - Matrix_RotateX(gCalcMatrix, obj2F4->unk_2E8.x * M_DTOR, 1); - Matrix_RotateZ(gCalcMatrix, (obj2F4->unk_2E8.z + obj2F4->unk_0F4.z) * M_DTOR, 1); + if (!(actor->timer_0BC & 0x1F) && (spFC == 0)) { + Matrix_RotateY(gCalcMatrix, actor->vwork[29].y * M_DTOR, 0); + Matrix_RotateX(gCalcMatrix, actor->vwork[29].x * M_DTOR, 1); + Matrix_RotateZ(gCalcMatrix, (actor->vwork[29].z + actor->unk_0F4.z) * M_DTOR, 1); spB8.x = 0.0f; spB8.y = 25.0f; spB8.z = 0.0f; Matrix_MultVec3fNoTranslate(gCalcMatrix, &spB8, &spA0); - Matrix_RotateY(gCalcMatrix, obj2F4->obj.rot.y * M_DTOR, 1); - Matrix_RotateX(gCalcMatrix, obj2F4->unk_150 * M_DTOR, 1); + Matrix_RotateY(gCalcMatrix, actor->obj.rot.y * M_DTOR, 1); + Matrix_RotateX(gCalcMatrix, actor->fwork[15] * M_DTOR, 1); spB8.x = 0.0f; spB8.y = 0.0f; @@ -3081,21 +3059,21 @@ void func_80072594(Object_2F4* obj2F4) { Matrix_MultVec3fNoTranslate(gCalcMatrix, &spB8, &spAC); - if (obj2F4->unk_0B4 == 0x44) { + if (actor->unk_0B4 == 0x44) { var_fv0 = 80.0f; } else { var_fv0 = 0.0f; } - func_8007F04C(OBJ_EFFECT_353, obj2F4->obj.pos.x + spAC.x + spA0.x, - obj2F4->obj.pos.y + spAC.y + spA0.y + var_fv0, - obj2F4->obj.pos.z + spAC.z + spA0.z, obj2F4->unk_150, obj2F4->obj.rot.y, - obj2F4->obj.rot.z, obj2F4->unk_2E8.x, obj2F4->unk_2E8.y, - obj2F4->unk_2E8.z + obj2F4->unk_0F4.z, spAC.x, spAC.y, spAC.z, 1.0f); - obj2F4->unk_154 = -15.0f; + func_8007F04C(OBJ_EFFECT_353, actor->obj.pos.x + spAC.x + spA0.x, + actor->obj.pos.y + spAC.y + spA0.y + var_fv0, actor->obj.pos.z + spAC.z + spA0.z, + actor->fwork[15], actor->obj.rot.y, actor->obj.rot.z, actor->vwork[29].x, + actor->vwork[29].y, actor->vwork[29].z + actor->unk_0F4.z, spAC.x, spAC.y, spAC.z, + 1.0f); + actor->fwork[16] = -15.0f; } } else { - if ((obj2F4->unk_0B8 == 0xE) || (obj2F4->unk_0B8 == 0xF)) { + if ((actor->unk_0B8 == 0xE) || (actor->unk_0B8 == 0xF)) { spCC = gPlayer[0].camEye.x; spC8 = gPlayer[0].camEye.y; spC4 = gPlayer[0].camEye.z; @@ -3105,12 +3083,12 @@ void func_80072594(Object_2F4* obj2F4) { spC4 = gPlayer[0].pos.z; } - Math_SmoothStepToAngle(&obj2F4->unk_2E8.z, 0.0f, 0.1f, 5.0f, 0.0001f); - Math_SmoothStepToAngle(&obj2F4->unk_0F4.z, 0.0f, 0.1f, 5.0f, 0.0001f); + Math_SmoothStepToAngle(&actor->vwork[29].z, 0.0f, 0.1f, 5.0f, 0.0001f); + Math_SmoothStepToAngle(&actor->unk_0F4.z, 0.0f, 0.1f, 5.0f, 0.0001f); spE0 = Math_RadToDeg(Math_Atan2F(spCC - spF0, spC4 - spE8)); - if ((obj2F4->unk_0B8 == 7) || (obj2F4->unk_0B8 == 0xF)) { + if ((actor->unk_0B8 == 7) || (actor->unk_0B8 == 0xF)) { spE0 += 180.0f; if (spE0 > 360.0f) { spE0 -= 360.0f; @@ -3118,389 +3096,389 @@ void func_80072594(Object_2F4* obj2F4) { } spE4 = Math_RadToDeg(-Math_Atan2F(spC8 - spEC, sqrtf(SQ(spCC - spF0) + SQ(spC4 - spE8)))); - spEC = Math_SmoothStepToAngle(&obj2F4->unk_0F4.y, spE0, 0.2f, obj2F4->unk_174, 0.0001f); + spEC = Math_SmoothStepToAngle(&actor->unk_0F4.y, spE0, 0.2f, actor->fwork[24], 0.0001f); - Math_SmoothStepToAngle(&obj2F4->unk_0F4.x, spE4, 0.2f, obj2F4->unk_174, 0.0001f); + Math_SmoothStepToAngle(&actor->unk_0F4.x, spE4, 0.2f, actor->fwork[24], 0.0001f); - if (obj2F4->unk_068 != 0) { + if (actor->iwork[6] != 0) { var_fv0 = 330.0f; if (spEC < 0.0f) { var_fv0 = 30.0f; } - Math_SmoothStepToAngle(&obj2F4->unk_170, var_fv0, 0.1f, 5.0f, 0.01f); + Math_SmoothStepToAngle(&actor->fwork[23], var_fv0, 0.1f, 5.0f, 0.01f); } } - if (obj2F4->timer_0BC == 0) { - func_8006D36C(obj2F4); + if (actor->timer_0BC == 0) { + func_8006D36C(actor); } break; case 13: - spDC = __sinf(((obj2F4->index * 45) + gFrameCount) * M_DTOR) * (*obj2F4).unk_158; - spD8 = __cosf(((obj2F4->index * 45) + (gFrameCount * 2)) * M_DTOR) * (*obj2F4).unk_158; - pad = obj2F4->unk_054; - pad = gObjects2F4[pad].unk_080; + spDC = __sinf(((actor->index * 45) + gFrameCount) * M_DTOR) * (*actor).fwork[17]; + spD8 = __cosf(((actor->index * 45) + (gFrameCount * 2)) * M_DTOR) * (*actor).fwork[17]; + pad = actor->iwork[1]; + pad = gActors[pad].iwork[12]; D_Timer_80161670[pad] = 5; case 8: case 9: - spF0 = obj2F4->obj.pos.x; - spEC = obj2F4->obj.pos.y; - spE8 = obj2F4->obj.pos.z; + spF0 = actor->obj.pos.x; + spEC = actor->obj.pos.y; + spE8 = actor->obj.pos.z; - spE0 = Math_RadToDeg(Math_Atan2F(gObjects2F4[obj2F4->unk_054].obj.pos.x + spDC - spF0, - gObjects2F4[obj2F4->unk_054].obj.pos.z + spD4 - spE8)); - if (obj2F4->unk_0B8 == 7) { + spE0 = Math_RadToDeg(Math_Atan2F(gActors[actor->iwork[1]].obj.pos.x + spDC - spF0, + gActors[actor->iwork[1]].obj.pos.z + spD4 - spE8)); + if (actor->unk_0B8 == 7) { spE0 += 180.0f; if (spE0 > 360.0f) { spE0 -= 360.0f; } } - spE4 = Math_RadToDeg(-Math_Atan2F(gObjects2F4[obj2F4->unk_054].obj.pos.y + spD8 - spEC, - sqrtf(SQ(gObjects2F4[obj2F4->unk_054].obj.pos.x + spDC - spF0) + - SQ(gObjects2F4[obj2F4->unk_054].obj.pos.z + spD4 - spE8)))); - spEC = Math_SmoothStepToAngle(&obj2F4->unk_0F4.y, spE0, 0.2f, obj2F4->unk_174, 0.0001f); + spE4 = Math_RadToDeg(-Math_Atan2F(gActors[actor->iwork[1]].obj.pos.y + spD8 - spEC, + sqrtf(SQ(gActors[actor->iwork[1]].obj.pos.x + spDC - spF0) + + SQ(gActors[actor->iwork[1]].obj.pos.z + spD4 - spE8)))); + spEC = Math_SmoothStepToAngle(&actor->unk_0F4.y, spE0, 0.2f, actor->fwork[24], 0.0001f); - Math_SmoothStepToAngle(&obj2F4->unk_0F4.x, spE4, 0.2f, obj2F4->unk_174, 0.0001f); + Math_SmoothStepToAngle(&actor->unk_0F4.x, spE4, 0.2f, actor->fwork[24], 0.0001f); - if (obj2F4->unk_068 != 0) { + if (actor->iwork[6] != 0) { var_fv0 = 310.0f; if (spEC < 0.0f) { var_fv0 = 50.0f; } - Math_SmoothStepToAngle(&obj2F4->unk_170, var_fv0, 0.1f, 5.0f, 0.01f); + Math_SmoothStepToAngle(&actor->fwork[23], var_fv0, 0.1f, 5.0f, 0.01f); } - if (obj2F4->timer_0BC == 0) { - func_8006D36C(obj2F4); + if (actor->timer_0BC == 0) { + func_8006D36C(actor); } break; case 2: - obj2F4->unk_0F4.x += obj2F4->unk_120; - obj2F4->unk_11C -= obj2F4->unk_120; - if (obj2F4->unk_11C <= 0.0f) { - func_8006D36C(obj2F4); + actor->unk_0F4.x += actor->fwork[3]; + actor->fwork[2] -= actor->fwork[3]; + if (actor->fwork[2] <= 0.0f) { + func_8006D36C(actor); } break; case 3: - obj2F4->unk_0F4.x -= obj2F4->unk_120; - obj2F4->unk_11C -= obj2F4->unk_120; - if (obj2F4->unk_11C <= 0.0f) { - func_8006D36C(obj2F4); + actor->unk_0F4.x -= actor->fwork[3]; + actor->fwork[2] -= actor->fwork[3]; + if (actor->fwork[2] <= 0.0f) { + func_8006D36C(actor); } break; case 4: - obj2F4->unk_0F4.y += obj2F4->unk_120; - obj2F4->unk_11C -= obj2F4->unk_120; - if (obj2F4->unk_11C <= 0.0f) { - func_8006D36C(obj2F4); + actor->unk_0F4.y += actor->fwork[3]; + actor->fwork[2] -= actor->fwork[3]; + if (actor->fwork[2] <= 0.0f) { + func_8006D36C(actor); } break; case 5: - obj2F4->unk_0F4.y -= obj2F4->unk_120; - obj2F4->unk_11C -= obj2F4->unk_120; - if (obj2F4->unk_11C <= 0.0f) { - func_8006D36C(obj2F4); + actor->unk_0F4.y -= actor->fwork[3]; + actor->fwork[2] -= actor->fwork[3]; + if (actor->fwork[2] <= 0.0f) { + func_8006D36C(actor); } break; case 10: var_s0 = 0; - if (Math_SmoothStepToAngle(&obj2F4->obj.rot.x, 0.0f, 0.3f, 10.0f, 1.0f) == 0.0f) { + if (Math_SmoothStepToAngle(&actor->obj.rot.x, 0.0f, 0.3f, 10.0f, 1.0f) == 0.0f) { var_s0++; } - if (Math_SmoothStepToAngle(&obj2F4->obj.rot.y, 0.0f, 0.3f, 10.0f, 1.0f) == 0.0f) { + if (Math_SmoothStepToAngle(&actor->obj.rot.y, 0.0f, 0.3f, 10.0f, 1.0f) == 0.0f) { var_s0++; } - if (Math_SmoothStepToF(&obj2F4->unk_150, 40.0f, 0.3f, 10.0f, 1.0f) == 0.0f) { + if (Math_SmoothStepToF(&actor->fwork[15], 40.0f, 0.3f, 10.0f, 1.0f) == 0.0f) { var_s0++; } if (var_s0 == 3) { - obj2F4->info.hitbox = SEGMENTED_TO_VIRTUAL(D_602F638); - func_8006D36C(obj2F4); + actor->info.hitbox = SEGMENTED_TO_VIRTUAL(D_602F638); + func_8006D36C(actor); } break; case 11: - if (Math_SmoothStepToF(&obj2F4->unk_150, 0.0f, 0.3f, 10.0f, 1.0f) == 0.0f) { - func_8006D36C(obj2F4); + if (Math_SmoothStepToF(&actor->fwork[15], 0.0f, 0.3f, 10.0f, 1.0f) == 0.0f) { + func_8006D36C(actor); } break; case 12: - Math_SmoothStepToAngle(&obj2F4->unk_0F4.x, 270.0f, 0.1f, 2.0f, 0.0f); - gTeamShields[obj2F4->unk_080] = -1; - gTeamDamage[obj2F4->unk_080] = 0; + Math_SmoothStepToAngle(&actor->unk_0F4.x, 270.0f, 0.1f, 2.0f, 0.0f); + gTeamShields[actor->iwork[12]] = -1; + gTeamDamage[actor->iwork[12]] = 0; break; case 200: break; } - if (obj2F4->unk_084 != 0) { - if (gObjects2F4[obj2F4->unk_074].obj.status != 2) { - obj2F4->unk_084 = 0; + if (actor->iwork[13] != 0) { + if (gActors[actor->iwork[9]].obj.status != 2) { + actor->iwork[13] = 0; } else { - Matrix_RotateY(gCalcMatrix, gObjects2F4[obj2F4->unk_074].obj.rot.y * M_DTOR, 0); - Matrix_RotateX(gCalcMatrix, gObjects2F4[obj2F4->unk_074].obj.rot.x * M_DTOR, 1); - Matrix_RotateZ(gCalcMatrix, gObjects2F4[obj2F4->unk_074].obj.rot.z * M_DTOR, 1); - Matrix_MultVec3fNoTranslate(gCalcMatrix, &obj2F4->unk_2DC, &spAC); - obj2F4->obj.pos.x = gObjects2F4[obj2F4->unk_074].obj.pos.x + spAC.x; - obj2F4->obj.pos.y = gObjects2F4[obj2F4->unk_074].obj.pos.y + spAC.y; - obj2F4->obj.pos.z = gObjects2F4[obj2F4->unk_074].obj.pos.z + spAC.z; - obj2F4->unk_2E8.x = gObjects2F4[obj2F4->unk_074].obj.rot.x; - obj2F4->unk_2E8.y = gObjects2F4[obj2F4->unk_074].obj.rot.y; - obj2F4->unk_2E8.z = gObjects2F4[obj2F4->unk_074].obj.rot.z; - if (obj2F4->timer_0C0 == 0) { - obj2F4->unk_084 = 0; + Matrix_RotateY(gCalcMatrix, gActors[actor->iwork[9]].obj.rot.y * M_DTOR, 0); + Matrix_RotateX(gCalcMatrix, gActors[actor->iwork[9]].obj.rot.x * M_DTOR, 1); + Matrix_RotateZ(gCalcMatrix, gActors[actor->iwork[9]].obj.rot.z * M_DTOR, 1); + Matrix_MultVec3fNoTranslate(gCalcMatrix, &actor->vwork[28], &spAC); + actor->obj.pos.x = gActors[actor->iwork[9]].obj.pos.x + spAC.x; + actor->obj.pos.y = gActors[actor->iwork[9]].obj.pos.y + spAC.y; + actor->obj.pos.z = gActors[actor->iwork[9]].obj.pos.z + spAC.z; + actor->vwork[29].x = gActors[actor->iwork[9]].obj.rot.x; + actor->vwork[29].y = gActors[actor->iwork[9]].obj.rot.y; + actor->vwork[29].z = gActors[actor->iwork[9]].obj.rot.z; + if (actor->timer_0C0 == 0) { + actor->iwork[13] = 0; } } } - Math_SmoothStepToF(&obj2F4->unk_114, obj2F4->unk_118, 0.1f, 5.0f, 0.0001f); + Math_SmoothStepToF(&actor->fwork[0], actor->fwork[1], 0.1f, 5.0f, 0.0001f); - if (obj2F4->unk_0F4.x >= 360.0f) { - obj2F4->unk_0F4.x -= 360.0f; + if (actor->unk_0F4.x >= 360.0f) { + actor->unk_0F4.x -= 360.0f; } - if (obj2F4->unk_0F4.x < 0.0f) { - obj2F4->unk_0F4.x += 360.0f; + if (actor->unk_0F4.x < 0.0f) { + actor->unk_0F4.x += 360.0f; } - if (obj2F4->unk_0F4.y >= 360.0f) { - obj2F4->unk_0F4.y -= 360.0f; + if (actor->unk_0F4.y >= 360.0f) { + actor->unk_0F4.y -= 360.0f; } - if (obj2F4->unk_0F4.y < 0.0f) { - obj2F4->unk_0F4.y += 360.0f; + if (actor->unk_0F4.y < 0.0f) { + actor->unk_0F4.y += 360.0f; } - if (obj2F4->unk_068 != 0) { - if ((gLevelMode == LEVELMODE_UNK_2) && (obj2F4->unk_0B4 == 200)) { - Math_SmoothStepToAngle(&obj2F4->obj.rot.x, obj2F4->unk_0F4.x, 0.1f, 10.0f, 0.00001f); - Math_SmoothStepToAngle(&obj2F4->obj.rot.y, obj2F4->unk_0F4.y, 0.1f, 10.0f, 0.00001f); + if (actor->iwork[6] != 0) { + if ((gLevelMode == LEVELMODE_UNK_2) && (actor->unk_0B4 == 200)) { + Math_SmoothStepToAngle(&actor->obj.rot.x, actor->unk_0F4.x, 0.1f, 10.0f, 0.00001f); + Math_SmoothStepToAngle(&actor->obj.rot.y, actor->unk_0F4.y, 0.1f, 10.0f, 0.00001f); } else { - Math_SmoothStepToAngle(&obj2F4->obj.rot.x, obj2F4->unk_0F4.x, 0.2f, 100.0f, 0.00001f); - Math_SmoothStepToAngle(&obj2F4->obj.rot.y, obj2F4->unk_0F4.y, 0.2f, 100.0f, 0.00001f); + Math_SmoothStepToAngle(&actor->obj.rot.x, actor->unk_0F4.x, 0.2f, 100.0f, 0.00001f); + Math_SmoothStepToAngle(&actor->obj.rot.y, actor->unk_0F4.y, 0.2f, 100.0f, 0.00001f); } } - if (obj2F4->unk_124.x > 0.0f) { - obj2F4->unk_124.x -= obj2F4->unk_124.y; - obj2F4->obj.rot.x += obj2F4->unk_124.y * obj2F4->unk_124.z; - if (obj2F4->obj.rot.x >= 360.0f) { - obj2F4->obj.rot.x -= 360.0f; + if (actor->fwork[4] > 0.0f) { + actor->fwork[4] -= actor->fwork[5]; + actor->obj.rot.x += actor->fwork[5] * actor->fwork[6]; + if (actor->obj.rot.x >= 360.0f) { + actor->obj.rot.x -= 360.0f; } - if (obj2F4->obj.rot.x < 0.0f) { - obj2F4->obj.rot.x += 360.0f; + if (actor->obj.rot.x < 0.0f) { + actor->obj.rot.x += 360.0f; } } - if (obj2F4->unk_130 > 0.0f) { - obj2F4->unk_130 -= obj2F4->unk_134; - obj2F4->obj.rot.y += obj2F4->unk_134 * obj2F4->unk_138; - if (obj2F4->obj.rot.y >= 360.0f) { - obj2F4->obj.rot.y = obj2F4->obj.rot.y - 360.0f; + if (actor->fwork[7] > 0.0f) { + actor->fwork[7] -= actor->fwork[8]; + actor->obj.rot.y += actor->fwork[8] * actor->fwork[9]; + if (actor->obj.rot.y >= 360.0f) { + actor->obj.rot.y = actor->obj.rot.y - 360.0f; } - if (obj2F4->obj.rot.y < 0.0f) { - obj2F4->obj.rot.y += 360.0f; + if (actor->obj.rot.y < 0.0f) { + actor->obj.rot.y += 360.0f; } } - if (obj2F4->unk_13C > 0.0f) { - if ((obj2F4->unk_0B4 == 0xD) || (obj2F4->unk_0B4 == 0xE) || (obj2F4->unk_0B4 == 0x3D) || - (obj2F4->unk_0B4 == 0x3E) || (obj2F4->unk_0B4 == 0x3F) || (obj2F4->unk_0B4 == 0x40) || - (obj2F4->unk_0B4 == 0x41) || (obj2F4->unk_0B4 == 0x42) || (obj2F4->unk_0B4 == 0x5E) || - (obj2F4->unk_0B4 == 0x5F) || (obj2F4->unk_0B4 == 0x61)) { - obj2F4->obj.rot.y -= obj2F4->unk_140 * obj2F4->unk_144; - obj2F4->obj.rot.x += obj2F4->unk_140 * obj2F4->unk_144; + if (actor->fwork[10] > 0.0f) { + if ((actor->unk_0B4 == 0xD) || (actor->unk_0B4 == 0xE) || (actor->unk_0B4 == 0x3D) || + (actor->unk_0B4 == 0x3E) || (actor->unk_0B4 == 0x3F) || (actor->unk_0B4 == 0x40) || + (actor->unk_0B4 == 0x41) || (actor->unk_0B4 == 0x42) || (actor->unk_0B4 == 0x5E) || + (actor->unk_0B4 == 0x5F) || (actor->unk_0B4 == 0x61)) { + actor->obj.rot.y -= actor->fwork[11] * actor->fwork[12]; + actor->obj.rot.x += actor->fwork[11] * actor->fwork[12]; } else { - obj2F4->unk_13C -= obj2F4->unk_140; - obj2F4->unk_170 += obj2F4->unk_140 * obj2F4->unk_144; + actor->fwork[10] -= actor->fwork[11]; + actor->fwork[23] += actor->fwork[11] * actor->fwork[12]; } } - if (obj2F4->unk_170 >= 360.0f) { - obj2F4->unk_170 -= 360.0f; + if (actor->fwork[23] >= 360.0f) { + actor->fwork[23] -= 360.0f; } - if (obj2F4->unk_170 < 0.0f) { - obj2F4->unk_170 += 360.0f; + if (actor->fwork[23] < 0.0f) { + actor->fwork[23] += 360.0f; } - Math_SmoothStepToAngle(&obj2F4->obj.rot.z, obj2F4->unk_170, 0.2f, 100.0f, 0.0001f); - Matrix_RotateZ(gCalcMatrix, (obj2F4->unk_2E8.z + obj2F4->unk_0F4.z) * M_DTOR, 0); - Matrix_RotateY(gCalcMatrix, obj2F4->unk_0F4.y * M_DTOR, 1); - Matrix_RotateX(gCalcMatrix, obj2F4->unk_0F4.x * M_DTOR, 1); + Math_SmoothStepToAngle(&actor->obj.rot.z, actor->fwork[23], 0.2f, 100.0f, 0.0001f); + Matrix_RotateZ(gCalcMatrix, (actor->vwork[29].z + actor->unk_0F4.z) * M_DTOR, 0); + Matrix_RotateY(gCalcMatrix, actor->unk_0F4.y * M_DTOR, 1); + Matrix_RotateX(gCalcMatrix, actor->unk_0F4.x * M_DTOR, 1); spB8.x = 0.0f; spB8.y = 0.0f; - spB8.z = obj2F4->unk_114; + spB8.z = actor->fwork[0]; Matrix_MultVec3fNoTranslate(gCalcMatrix, &spB8, &spAC); - obj2F4->vel.x = obj2F4->unk_148 + spAC.x; - obj2F4->vel.y = obj2F4->unk_14C + spAC.y; - obj2F4->vel.z = spAC.z; + actor->vel.x = actor->fwork[13] + spAC.x; + actor->vel.y = actor->fwork[14] + spAC.y; + actor->vel.z = spAC.z; - obj2F4->unk_148 -= obj2F4->unk_148 * 0.1f; - obj2F4->unk_14C -= obj2F4->unk_14C * 0.1f; + actor->fwork[13] -= actor->fwork[13] * 0.1f; + actor->fwork[14] -= actor->fwork[14] * 0.1f; - if (obj2F4->unk_064 == 0x80) { - obj2F4->vel.z -= obj2F4->unk_16C; + if (actor->iwork[5] == 0x80) { + actor->vel.z -= actor->fwork[22]; if ((gCurrentLevel == LEVEL_SECTOR_Y) && (D_80177D08 < 0.0f)) { - obj2F4->vel.z -= D_80177D08; + actor->vel.z -= D_80177D08; } } - if (obj2F4->unk_064 == 0x100) { - obj2F4->vel.z -= D_80177D08; + if (actor->iwork[5] == 0x100) { + actor->vel.z -= D_80177D08; } if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_8) { - obj2F4->vel.z = 100.0f; + actor->vel.z = 100.0f; } - func_80070D44(obj2F4); - func_8006F40C(obj2F4); - func_8006EA50(obj2F4); + func_80070D44(actor); + func_8006F40C(actor); + func_8006EA50(actor); - if (obj2F4->unk_0B4 == 0x26) { - func_800720E8(obj2F4); + if (actor->unk_0B4 == 0x26) { + func_800720E8(actor); } else { - if (obj2F4->scale <= -1.999f) { - func_80070BA8(obj2F4); + if (actor->scale <= -1.999f) { + func_80070BA8(actor); } else { - if ((obj2F4->unk_0D0 == 1) && (obj2F4->scale < 0.5f) && (obj2F4->unk_0B4 != 0x30) && - (obj2F4->unk_0B4 != 0x31) && (obj2F4->unk_0B4 != 0x32)) { - obj2F4->unk_0D0 = 0; + if ((actor->unk_0D0 == 1) && (actor->scale < 0.5f) && (actor->unk_0B4 != 0x30) && + (actor->unk_0B4 != 0x31) && (actor->unk_0B4 != 0x32)) { + actor->unk_0D0 = 0; if (gCurrentLevel == LEVEL_METEO) { - Audio_PlaySfx(0x2902107D, &obj2F4->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + Audio_PlaySfx(0x2902107D, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } else { - Audio_PlaySfx(0x29121007, &obj2F4->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + Audio_PlaySfx(0x29121007, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } } - if ((obj2F4->unk_0B4 < 200) && (obj2F4->unk_0B4 != 78) && (obj2F4->scale >= 0.5f)) { - switch (obj2F4->unk_0B4) { + if ((actor->unk_0B4 < 200) && (actor->unk_0B4 != 78) && (actor->scale >= 0.5f)) { + switch (actor->unk_0B4) { case 71: - func_8006FE28(obj2F4); + func_8006FE28(actor); break; case 79: - func_8006FEEC(obj2F4); + func_8006FEEC(actor); break; default: - func_800701E0(obj2F4); + func_800701E0(actor); break; } } } } - switch (obj2F4->unk_0B4) { + switch (actor->unk_0B4) { case 92: case 93: case 94: case 95: case 96: if (!(gFrameCount & 7)) { - obj2F4->unk_15C = Rand_ZeroOne() * 255.0f; - obj2F4->unk_160 = Rand_ZeroOne() * 255.0f; - obj2F4->unk_164 = Rand_ZeroOne() * 255.0f; + actor->fwork[18] = Rand_ZeroOne() * 255.0f; + actor->fwork[19] = Rand_ZeroOne() * 255.0f; + actor->fwork[20] = Rand_ZeroOne() * 255.0f; } - Math_SmoothStepToF(&obj2F4->unk_150, obj2F4->unk_15C, 1.0f, 10.0f, 0.0f); - Math_SmoothStepToF(&obj2F4->unk_154, obj2F4->unk_160, 1.0f, 10.0f, 0.0f); - Math_SmoothStepToF(&obj2F4->unk_158, obj2F4->unk_164, 1.0f, 10.0f, 0.0f); + Math_SmoothStepToF(&actor->fwork[15], actor->fwork[18], 1.0f, 10.0f, 0.0f); + Math_SmoothStepToF(&actor->fwork[16], actor->fwork[19], 1.0f, 10.0f, 0.0f); + Math_SmoothStepToF(&actor->fwork[17], actor->fwork[20], 1.0f, 10.0f, 0.0f); break; case 46: - if (func_800A73E4(&spEC, &spFC, obj2F4->obj.pos.x, -100.0f, obj2F4->obj.pos.z)) { + if (func_800A73E4(&spEC, &spFC, actor->obj.pos.x, -100.0f, actor->obj.pos.z)) { spF0 = 10.0f; - if (Math_SmoothStepToF(&obj2F4->obj.pos.y, spEC, 0.5f, 7.0f, 0.0f) >= 0.0f) { + if (Math_SmoothStepToF(&actor->obj.pos.y, spEC, 0.5f, 7.0f, 0.0f) >= 0.0f) { spF0 = 350.0f; if (!(gFrameCount & 3)) { - func_8007240C(obj2F4->obj.pos.x, spEC, obj2F4->obj.pos.z, obj2F4->obj.rot.y); - Audio_PlaySfx(0x19800017, &obj2F4->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + func_8007240C(actor->obj.pos.x, spEC, actor->obj.pos.z, actor->obj.rot.y); + Audio_PlaySfx(0x19800017, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } } - Math_SmoothStepToAngle(&obj2F4->obj.rot.x, spF0, 0.1f, 1.0f, 0.0f); + Math_SmoothStepToAngle(&actor->obj.rot.x, spF0, 0.1f, 1.0f, 0.0f); - if ((obj2F4->unk_0B8 == 4) || (obj2F4->unk_0B8 == 5)) { - var_fv0 = obj2F4->unk_120 * 20.0f; - if (obj2F4->unk_0B8 == 4) { + if ((actor->unk_0B8 == 4) || (actor->unk_0B8 == 5)) { + var_fv0 = actor->fwork[3] * 20.0f; + if (actor->unk_0B8 == 4) { var_fv0 *= -1.0f; } - Math_SmoothStepToAngle(&obj2F4->obj.rot.z, var_fv0, 0.1f, 3.0f, 0.0f); + Math_SmoothStepToAngle(&actor->obj.rot.z, var_fv0, 0.1f, 3.0f, 0.0f); } } - obj2F4->obj.rot.y = obj2F4->unk_0F4.y; + actor->obj.rot.y = actor->unk_0F4.y; break; case 31: - obj2F4->obj.rot.z = gFrameCount; + actor->obj.rot.z = gFrameCount; break; case 21: case 22: - obj2F4->obj.rot.z = gFrameCount * 3.0f; + actor->obj.rot.z = gFrameCount * 3.0f; break; case 3: - obj2F4->unk_0C9 = 1; - obj2F4->obj.rot.y -= 10.0f; + actor->unk_0C9 = 1; + actor->obj.rot.y -= 10.0f; break; case 6: - obj2F4->unk_0B6++; + actor->unk_0B6++; if (gCurrentLevel == LEVEL_SOLAR) { - if (obj2F4->unk_0B6 >= Animation_GetFrameCount(&D_600636C)) { - obj2F4->unk_0B6 = 0; + if (actor->unk_0B6 >= Animation_GetFrameCount(&D_600636C)) { + actor->unk_0B6 = 0; } if (((s32) gFrameCount % 3) == 0) { - func_E16C50_8019E9F4(obj2F4->obj.pos.x, obj2F4->obj.pos.y - 20, obj2F4->obj.pos.z - 180.0f, - 0.0f, Rand_ZeroOne() * 20.0f * -1.0f, 0.0f, 4.0f, 2); + func_E16C50_8019E9F4(actor->obj.pos.x, actor->obj.pos.y - 20, actor->obj.pos.z - 180.0f, 0.0f, + Rand_ZeroOne() * 20.0f * -1.0f, 0.0f, 4.0f, 2); } - } else if (obj2F4->unk_0B6 >= Animation_GetFrameCount(&D_40057AC)) { - obj2F4->unk_0B6 = 0; + } else if (actor->unk_0B6 >= Animation_GetFrameCount(&D_40057AC)) { + actor->unk_0B6 = 0; } break; case 9: - obj2F4->unk_0B6++; - if (obj2F4->unk_0B6 >= Animation_GetFrameCount(&D_40001A4)) { - obj2F4->unk_0B6 = 0; + actor->unk_0B6++; + if (actor->unk_0B6 >= Animation_GetFrameCount(&D_40001A4)) { + actor->unk_0B6 = 0; } - if (obj2F4->unk_068 == 0) { - obj2F4->obj.rot.y = 0.0f; + if (actor->iwork[6] == 0) { + actor->obj.rot.y = 0.0f; } break; case 48: case 49: case 50: - func_E9F1D0_801A3BD4(obj2F4); + func_E9F1D0_801A3BD4(actor); break; case 52: - func_80072474(obj2F4); + func_80072474(actor); break; case 78: - func_8006753C(obj2F4); + func_8006753C(actor); break; case 79: - if (obj2F4->timer_0C4 == 0) { - obj2F4->unk_0B6 += 1; - if (Animation_GetFrameCount(&D_600E5EC) < obj2F4->unk_0B6) { - obj2F4->unk_0B6 = 0; + if (actor->timer_0C4 == 0) { + actor->unk_0B6 += 1; + if (Animation_GetFrameCount(&D_600E5EC) < actor->unk_0B6) { + actor->unk_0B6 = 0; } } break; @@ -3512,24 +3490,24 @@ void func_80072594(Object_2F4* obj2F4) { Vec3f sp78; s32 sp74; - switch (obj2F4->unk_046) { + switch (actor->unk_046) { case 1: break; case 0: - Matrix_RotateZ(gCalcMatrix, obj2F4->unk_0F4.z * M_DTOR, 0); + Matrix_RotateZ(gCalcMatrix, actor->unk_0F4.z * M_DTOR, 0); Matrix_MultVec3fNoTranslate(gCalcMatrix, &D_800D1290, &sp90); - if ((obj2F4->obj.pos.y + sp90.y) > -30.0f) { + if ((actor->obj.pos.y + sp90.y) > -30.0f) { for (sp74 = 0; sp74 < 7; sp74++) { effect = func_8007783C(OBJ_EFFECT_394); if (effect != NULL) { effect->unk_78 = effect->unk_7A = 12; effect->obj.status = 2; - effect->obj.pos.x = obj2F4->obj.pos.x + sp90.x; - effect->obj.pos.y = obj2F4->obj.pos.y + sp90.y; - effect->obj.pos.z = obj2F4->obj.pos.z; + effect->obj.pos.x = actor->obj.pos.x + sp90.x; + effect->obj.pos.y = actor->obj.pos.y + sp90.y; + effect->obj.pos.z = actor->obj.pos.z; effect->obj.rot.x = Rand_ZeroOne() * 360.0f; effect->obj.rot.y = Rand_ZeroOne() * 360.0f; effect->obj.rot.z = Rand_ZeroOne() * 360.0f; @@ -3548,24 +3526,24 @@ void func_80072594(Object_2F4* obj2F4) { effect->unk_60.z = (Rand_ZeroOne() - 0.5f) + 5.0f; } } - obj2F4->unk_046++; + actor->unk_046++; } break; } - if ((fabsf(obj2F4->unk_114) > 10.0f) && !(gFrameCount & 1)) { + if ((fabsf(actor->fwork[0]) > 10.0f) && !(gFrameCount & 1)) { effect = func_8007783C(OBJ_EFFECT_394); if (effect != NULL) { - Matrix_RotateZ(gCalcMatrix, obj2F4->unk_0F4.z * M_DTOR, 0); + Matrix_RotateZ(gCalcMatrix, actor->unk_0F4.z * M_DTOR, 0); Matrix_MultVec3fNoTranslate(gCalcMatrix, &D_800D1290, &sp90); effect->unk_78 = effect->unk_7A = 0xB; effect->obj.status = 2; - effect->obj.pos.x = ((Rand_ZeroOne() - 0.5f) * 3.0f) + obj2F4->obj.pos.x + sp90.x; - effect->obj.pos.y = ((Rand_ZeroOne() - 0.5f) * 3.0f) + obj2F4->obj.pos.y + sp90.y; - effect->obj.pos.z = ((Rand_ZeroOne() - 0.5f) * 3.0f) + obj2F4->obj.pos.z + 180.0f; + effect->obj.pos.x = ((Rand_ZeroOne() - 0.5f) * 3.0f) + actor->obj.pos.x + sp90.x; + effect->obj.pos.y = ((Rand_ZeroOne() - 0.5f) * 3.0f) + actor->obj.pos.y + sp90.y; + effect->obj.pos.z = ((Rand_ZeroOne() - 0.5f) * 3.0f) + actor->obj.pos.z + 180.0f; effect->scale2 = 9.0f; effect->obj.rot.z = Rand_ZeroOne() * 360.0f; @@ -3589,9 +3567,9 @@ void func_80072594(Object_2F4* obj2F4) { if (effect != NULL) { effect->unk_78 = effect->unk_7A = 0xB; effect->obj.status = 2; - effect->obj.pos.x = ((Rand_ZeroOne() - 0.5f) * 3.0f) + obj2F4->obj.pos.x; - effect->obj.pos.y = ((Rand_ZeroOne() - 0.5f) * 5.0f) + obj2F4->obj.pos.y + 50.0f; - effect->obj.pos.z = ((Rand_ZeroOne() - 0.5f) * 3.0f) + obj2F4->obj.pos.z + 200.0f; + effect->obj.pos.x = ((Rand_ZeroOne() - 0.5f) * 3.0f) + actor->obj.pos.x; + effect->obj.pos.y = ((Rand_ZeroOne() - 0.5f) * 5.0f) + actor->obj.pos.y + 50.0f; + effect->obj.pos.z = ((Rand_ZeroOne() - 0.5f) * 3.0f) + actor->obj.pos.z + 200.0f; effect->scale2 = 9.0f; effect->obj.rot.z = Rand_ZeroOne() * 360.0f; effect->vel.x = (Rand_ZeroOne() - 0.5f) * 5.0f; @@ -3613,93 +3591,93 @@ void func_80072594(Object_2F4* obj2F4) { } break; case 81: - Math_SmoothStepToF(&obj2F4->unk_150, 1.0f, 0.1f, 0.1f, 0.001f); + Math_SmoothStepToF(&actor->fwork[15], 1.0f, 0.1f, 0.1f, 0.001f); - if (obj2F4->unk_150 > 0.5f) { - obj2F4->info.hitbox = SEGMENTED_TO_VIRTUAL(D_601B4C4); + if (actor->fwork[15] > 0.5f) { + actor->info.hitbox = SEGMENTED_TO_VIRTUAL(D_601B4C4); } - if (obj2F4->unk_046 == 0) { - obj2F4->unk_154 += 4.0f; - if (obj2F4->unk_154 >= 100.0f) { - obj2F4->unk_046 = 1; - obj2F4->unk_154 = 100.0f; + if (actor->unk_046 == 0) { + actor->fwork[16] += 4.0f; + if (actor->fwork[16] >= 100.0f) { + actor->unk_046 = 1; + actor->fwork[16] = 100.0f; } } else { - obj2F4->unk_154 -= 4.0f; - if (obj2F4->unk_154 <= 0.0f) { - obj2F4->unk_046 = 0; - obj2F4->unk_154 = 0.0f; + actor->fwork[16] -= 4.0f; + if (actor->fwork[16] <= 0.0f) { + actor->unk_046 = 0; + actor->fwork[16] = 0.0f; } } break; case 83: - if (obj2F4->unk_0CE <= 0) { - if (obj2F4->unk_0B6 == 0x14) { - spD4 = obj2F4->obj.pos.z; - spD8 = obj2F4->obj.pos.y; + if (actor->unk_0CE <= 0) { + if (actor->unk_0B6 == 0x14) { + spD4 = actor->obj.pos.z; + spD8 = actor->obj.pos.y; - obj2F4->obj.pos.y += 80.0f; - obj2F4->obj.pos.z += 40.0f; - func_80066254(obj2F4); - obj2F4->obj.pos.y = spD8; - obj2F4->obj.pos.z = spD4; + actor->obj.pos.y += 80.0f; + actor->obj.pos.z += 40.0f; + func_80066254(actor); + actor->obj.pos.y = spD8; + actor->obj.pos.z = spD4; } - if ((obj2F4->unk_0B6 >= 0x12) && (obj2F4->unk_0B6 < 0x18)) { - func_8007BC7C(obj2F4->obj.pos.x, obj2F4->obj.pos.y + 80.0f, obj2F4->obj.pos.z + 60.0f, 20.0f); + if ((actor->unk_0B6 >= 0x12) && (actor->unk_0B6 < 0x18)) { + func_8007BC7C(actor->obj.pos.x, actor->obj.pos.y + 80.0f, actor->obj.pos.z + 60.0f, 20.0f); } - if (obj2F4->unk_0B6 < 49) { - obj2F4->unk_0B6++; - if (obj2F4->unk_0B6 >= 49) { - obj2F4->unk_0B6 = 49; + if (actor->unk_0B6 < 49) { + actor->unk_0B6++; + if (actor->unk_0B6 >= 49) { + actor->unk_0B6 = 49; } if (gFrameCount & 1) { - func_E16C50_801AC8A8(((Rand_ZeroOne() - 0.5f) * 100.0f) + obj2F4->obj.pos.x, - (Rand_ZeroOne() * 50.0f) + obj2F4->obj.pos.y, - ((Rand_ZeroOne() - 0.5f) * 100.0f) + obj2F4->obj.pos.z, 1.0f, 0); + func_E16C50_801AC8A8(((Rand_ZeroOne() - 0.5f) * 100.0f) + actor->obj.pos.x, + (Rand_ZeroOne() * 50.0f) + actor->obj.pos.y, + ((Rand_ZeroOne() - 0.5f) * 100.0f) + actor->obj.pos.z, 1.0f, 0); } } - obj2F4->timer_0C2 = 10000; + actor->timer_0C2 = 10000; } break; case 88: - if (obj2F4->unk_04A == 0) { - obj2F4->unk_046 += 4; - if (obj2F4->unk_046 >= 0xFF) { - obj2F4->unk_046 = 0xFF; - obj2F4->unk_04A = 1; + if (actor->unk_04A == 0) { + actor->unk_046 += 4; + if (actor->unk_046 >= 0xFF) { + actor->unk_046 = 0xFF; + actor->unk_04A = 1; } } else { - obj2F4->unk_046 -= 4; - if (obj2F4->unk_046 <= 0) { - obj2F4->unk_046 = 0; - obj2F4->unk_04A = 0; + actor->unk_046 -= 4; + if (actor->unk_046 <= 0) { + actor->unk_046 = 0; + actor->unk_04A = 0; } } break; case 103: case 104: - func_80187530(obj2F4); + func_80187530(actor); break; case 106: - obj2F4->unk_0B6 += 1; - if (obj2F4->unk_0B6 >= 6) { - obj2F4->unk_0B6 = 0; + actor->unk_0B6 += 1; + if (actor->unk_0B6 >= 6) { + actor->unk_0B6 = 0; } break; } if (gLevelMode == LEVELMODE_ALL_RANGE) { - D_80177F24[obj2F4->index] = obj2F4->obj.pos.x; - D_8017802C[obj2F4->index] = obj2F4->obj.pos.z; - D_80178134[obj2F4->index] = Math_ModF(obj2F4->unk_0F4.y, 360.0f) + 180.0f; - D_80178238[obj2F4->index + 1] = 1; + D_80177F24[actor->index] = actor->obj.pos.x; + D_8017802C[actor->index] = actor->obj.pos.z; + D_80178134[actor->index] = Math_ModF(actor->unk_0F4.y, 360.0f) + 180.0f; + D_80178238[actor->index + 1] = 1; } } } @@ -3707,23 +3685,23 @@ void func_80072594(Object_2F4* obj2F4) { UNK_TYPE D_800D129C[0x8C] = { 0 }; // unused bool func_80074BFC(s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3f* rot, void* data) { - Object_2F4* obj2F4 = data; + Actor* actor = data; if (limbIndex == 1) { - pos->x += obj2F4->unk_154; + pos->x += actor->fwork[16]; } if (limbIndex == 2) { - rot->z -= obj2F4->unk_150; + rot->z -= actor->fwork[15]; } return false; } bool func_80074C44(s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3f* rot, void* data) { - Object_2F4* obj2F4 = data; + Actor* actor = data; s32 var_s1; if (limbIndex == 5) { - var_s1 = (s32) (obj2F4->unk_0CE * 0.6375f); + var_s1 = (s32) (actor->unk_0CE * 0.6375f); if (var_s1 > 255) { var_s1 = 255; } @@ -3749,14 +3727,14 @@ bool func_80074C44(s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3f* rot, void* dat return false; } -void func_80074E3C(Object_2F4* obj2F4) { +void func_80074E3C(Actor* actor) { Vec3f sp30[10]; Animation_GetFrameData(&D_6013820, 0, sp30); - sp30[6].y += obj2F4->unk_150; - sp30[5].z += obj2F4->unk_154 + ((obj2F4->timer_0BE >> 2) & 1); - sp30[4].z -= obj2F4->unk_154 + ((obj2F4->timer_0BE >> 2) & 1); - Animation_DrawSkeleton(1, D_601390C, sp30, func_80074C44, NULL, obj2F4, &gIdentityMatrix); + sp30[6].y += actor->fwork[15]; + sp30[5].z += actor->fwork[16] + ((actor->timer_0BE >> 2) & 1); + sp30[4].z -= actor->fwork[16] + ((actor->timer_0BE >> 2) & 1); + Animation_DrawSkeleton(1, D_601390C, sp30, func_80074C44, NULL, actor, &gIdentityMatrix); } bool func_80074F04(s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3f* rot, void* thisx) { @@ -3775,25 +3753,24 @@ s32 func_80074F90(Object_80* obj80) { return 0; } -void func_80074FF0(Object_2F4* obj2F4) { +void func_80074FF0(Actor* actor) { Vec3f sp114[31]; f32 sp40; s16 temp_s0; s32 pad; - if (obj2F4->timer_0C6 && (obj2F4->unk_0B4 != 0x5A) && (obj2F4->unk_0B4 != 0x44) && (obj2F4->unk_0B4 != 0x48)) { - if ((obj2F4->unk_0B4 != 0xD) && (obj2F4->unk_0B4 != 0xE) && (obj2F4->unk_0B4 != 0x3D) && - (obj2F4->unk_0B4 != 0x3E) && (obj2F4->unk_0B4 != 0x53) && (obj2F4->unk_0B4 != 0x62) && - (obj2F4->scale > 0.5f) && (obj2F4->timer_0C6 >= 9) && !(obj2F4->timer_0C6 & 3) && (D_80177854 != 0x64)) { - func_8007C120(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, obj2F4->vel.x, obj2F4->vel.y, - obj2F4->vel.z, obj2F4->scale * 0.07f, 3); + if (actor->timer_0C6 && (actor->unk_0B4 != 0x5A) && (actor->unk_0B4 != 0x44) && (actor->unk_0B4 != 0x48)) { + if ((actor->unk_0B4 != 0xD) && (actor->unk_0B4 != 0xE) && (actor->unk_0B4 != 0x3D) && + (actor->unk_0B4 != 0x3E) && (actor->unk_0B4 != 0x53) && (actor->unk_0B4 != 0x62) && (actor->scale > 0.5f) && + (actor->timer_0C6 >= 9) && !(actor->timer_0C6 & 3) && (D_80177854 != 0x64)) { + func_8007C120(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, actor->vel.x, actor->vel.y, + actor->vel.z, actor->scale * 0.07f, 3); } - if ((obj2F4->unk_0B4 != 0x15) && (obj2F4->unk_0B4 != 0x17) && (obj2F4->unk_0B4 != 0x4F) && - (obj2F4->unk_0B4 != 0x53) && (obj2F4->unk_0B4 != 0x1B) && (obj2F4->unk_0B4 != 0x33) && - (obj2F4->unk_0B4 != 0xD) && (obj2F4->unk_0B4 != 0x48) && (obj2F4->unk_0B4 != 0x1C) && - (obj2F4->scale > 0.5f)) { - sp40 = __sinf(obj2F4->timer_0C6 * 400.0f * M_DTOR) * obj2F4->timer_0C6; + if ((actor->unk_0B4 != 0x15) && (actor->unk_0B4 != 0x17) && (actor->unk_0B4 != 0x4F) && + (actor->unk_0B4 != 0x53) && (actor->unk_0B4 != 0x1B) && (actor->unk_0B4 != 0x33) && + (actor->unk_0B4 != 0xD) && (actor->unk_0B4 != 0x48) && (actor->unk_0B4 != 0x1C) && (actor->scale > 0.5f)) { + sp40 = __sinf(actor->timer_0C6 * 400.0f * M_DTOR) * actor->timer_0C6; Matrix_RotateY(gGfxMatrix, M_DTOR * sp40, 1); Matrix_RotateX(gGfxMatrix, M_DTOR * sp40, 1); Matrix_RotateZ(gGfxMatrix, M_DTOR * sp40, 1); @@ -3801,23 +3778,23 @@ void func_80074FF0(Object_2F4* obj2F4) { } } - if ((obj2F4->obj.status == 3) && (obj2F4->timer_0BE != 0)) { + if ((actor->obj.status == 3) && (actor->timer_0BE != 0)) { RCP_SetupDL_27(); gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 0, 0, 255); } - if ((obj2F4->unk_0B4 == 0x1D) || (obj2F4->unk_0B4 == 0x3B) || (obj2F4->unk_0B4 == 0x3C)) { + if ((actor->unk_0B4 == 0x1D) || (actor->unk_0B4 == 0x3B) || (actor->unk_0B4 == 0x3C)) { RCP_SetupDL_60(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); - } else if ((obj2F4->unk_0B4 == 0x52) || (obj2F4->unk_0B4 == 0x5A) || - ((obj2F4->unk_0B4 == 6) && (gCurrentLevel == LEVEL_SOLAR))) { - if (!(obj2F4->timer_0C6 & 1)) { + } else if ((actor->unk_0B4 == 0x52) || (actor->unk_0B4 == 0x5A) || + ((actor->unk_0B4 == 6) && (gCurrentLevel == LEVEL_SOLAR))) { + if (!(actor->timer_0C6 & 1)) { RCP_SetupDL(&gMasterDisp, 0x39); } else { RCP_SetupDL(&gMasterDisp, 0x3D); } } - switch (obj2F4->unk_0B4) { + switch (actor->unk_0B4) { case 92: case 93: case 94: @@ -3825,42 +3802,42 @@ void func_80074FF0(Object_2F4* obj2F4) { case 96: RCP_SetupDL(&gMasterDisp, 0x22); gDPSetTextureFilter(gMasterDisp++, G_TF_POINT); - gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, (s32) (*obj2F4).unk_150, (s32) (*obj2F4).unk_154, - (s32) (*obj2F4).unk_158, 255); - gSPDisplayList(gMasterDisp++, D_800D003C[obj2F4->unk_0B4].unk_00); + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, (s32) (*actor).fwork[15], (s32) (*actor).fwork[16], + (s32) (*actor).fwork[17], 255); + gSPDisplayList(gMasterDisp++, D_800D003C[actor->unk_0B4].unk_00); gDPSetTextureFilter(gMasterDisp++, G_TF_BILERP); break; default: - if ((obj2F4->unk_0B4 < 200) && (D_800D003C[obj2F4->unk_0B4].unk_00 != NULL)) { - gSPDisplayList(gMasterDisp++, D_800D003C[obj2F4->unk_0B4].unk_00); + if ((actor->unk_0B4 < 200) && (D_800D003C[actor->unk_0B4].unk_00 != NULL)) { + gSPDisplayList(gMasterDisp++, D_800D003C[actor->unk_0B4].unk_00); } - switch (obj2F4->unk_0B4) { + switch (actor->unk_0B4) { case 56: func_800515C4(); break; case 0: - obj2F4->unk_07C = 1; - func_8005ADAC(obj2F4); + actor->iwork[11] = 1; + func_8005ADAC(actor); break; case 2: - obj2F4->unk_150 -= obj2F4->unk_150 * 0.1f; - obj2F4->unk_17C -= obj2F4->unk_17C * 0.1f; - obj2F4->unk_154 -= obj2F4->unk_154 * 0.1f; - obj2F4->unk_180 -= obj2F4->unk_180 * 0.1f; + actor->fwork[15] -= actor->fwork[15] * 0.1f; + actor->fwork[26] -= actor->fwork[26] * 0.1f; + actor->fwork[16] -= actor->fwork[16] * 0.1f; + actor->fwork[27] -= actor->fwork[27] * 0.1f; - if (obj2F4->obj.rot.z > 0.0f) { - obj2F4->unk_150 += (obj2F4->obj.rot.z * 0.7f - obj2F4->unk_150) * 0.2f; - obj2F4->unk_17C += (-obj2F4->obj.rot.z * 0.7f - obj2F4->unk_17C) * 0.2f; + if (actor->obj.rot.z > 0.0f) { + actor->fwork[15] += (actor->obj.rot.z * 0.7f - actor->fwork[15]) * 0.2f; + actor->fwork[26] += (-actor->obj.rot.z * 0.7f - actor->fwork[26]) * 0.2f; } - if (obj2F4->obj.rot.z < 0.0f) { - obj2F4->unk_154 += (-obj2F4->obj.rot.z * 0.7f - obj2F4->unk_154) * 0.2f; - obj2F4->unk_180 += (obj2F4->obj.rot.z * 0.7f - obj2F4->unk_180) * 0.2f; + if (actor->obj.rot.z < 0.0f) { + actor->fwork[16] += (-actor->obj.rot.z * 0.7f - actor->fwork[16]) * 0.2f; + actor->fwork[27] += (actor->obj.rot.z * 0.7f - actor->fwork[27]) * 0.2f; } - func_8005B388(obj2F4); + func_8005B388(actor); break; case 43: @@ -3869,52 +3846,52 @@ void func_80074FF0(Object_2F4* obj2F4) { } else { gSPDisplayList(gMasterDisp++, D_4007870); } - func_8005ADAC(obj2F4); + func_8005ADAC(actor); break; case 5: - obj2F4->unk_07C = 1; - func_8005ADAC(obj2F4); + actor->iwork[11] = 1; + func_8005ADAC(actor); break; case 6: if (gCurrentLevel == LEVEL_SOLAR) { gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK); - Animation_GetFrameData(&D_600636C, obj2F4->unk_0B6, sp114); - Animation_DrawSkeleton(1, D_6006558, sp114, NULL, NULL, obj2F4, &gIdentityMatrix); + Animation_GetFrameData(&D_600636C, actor->unk_0B6, sp114); + Animation_DrawSkeleton(1, D_6006558, sp114, NULL, NULL, actor, &gIdentityMatrix); gSPSetGeometryMode(gMasterDisp++, G_CULL_BACK); } else { - Animation_GetFrameData(&D_40057AC, obj2F4->unk_0B6, sp114); - Animation_DrawSkeleton(1, D_40058B8, sp114, NULL, NULL, obj2F4, &gIdentityMatrix); + Animation_GetFrameData(&D_40057AC, actor->unk_0B6, sp114); + Animation_DrawSkeleton(1, D_40058B8, sp114, NULL, NULL, actor, &gIdentityMatrix); } break; case 7: - obj2F4->unk_07C = 1; - func_8005ADAC(obj2F4); + actor->iwork[11] = 1; + func_8005ADAC(actor); break; case 9: Matrix_Translate(gGfxMatrix, 0.0f, -30.0f, 0.0f, 1); - Animation_GetFrameData(&D_40001A4, obj2F4->unk_0B6, sp114); - Animation_DrawSkeleton(1, D_4000270, sp114, NULL, NULL, obj2F4, &gIdentityMatrix); + Animation_GetFrameData(&D_40001A4, actor->unk_0B6, sp114); + Animation_DrawSkeleton(1, D_4000270, sp114, NULL, NULL, actor, &gIdentityMatrix); break; case 18: - if (obj2F4->unk_114 > 0.1f) { - obj2F4->unk_07C = 1; + if (actor->fwork[0] > 0.1f) { + actor->iwork[11] = 1; Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -30.0f, 1); Matrix_Scale(gGfxMatrix, 2.5f, 2.5f, 2.5f, 1); - func_8005B1E8(obj2F4, 2); + func_8005B1E8(actor, 2); } break; case 19: - if (obj2F4->unk_114 > 0.1f) { - obj2F4->unk_07C = 1; + if (actor->fwork[0] > 0.1f) { + actor->iwork[11] = 1; Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -30.0f, 1); Matrix_Scale(gGfxMatrix, 2.5f, 2.5f, 2.5f, 1); - func_8005B1E8(obj2F4, 2); + func_8005B1E8(actor, 2); } break; @@ -3928,8 +3905,8 @@ void func_80074FF0(Object_2F4* obj2F4) { gSPDisplayList(gMasterDisp++, D_6018BF0); gSPSetGeometryMode(gMasterDisp++, G_CULL_BACK); Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -30.0f, 1); - obj2F4->unk_07C = 1; - func_8005B1E8(obj2F4, 2); + actor->iwork[11] = 1; + func_8005B1E8(actor, 2); break; case 22: @@ -3937,16 +3914,16 @@ void func_80074FF0(Object_2F4* obj2F4) { gSPDisplayList(gMasterDisp++, D_6019730); gSPSetGeometryMode(gMasterDisp++, G_CULL_BACK); Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -30.0f, 1); - obj2F4->unk_07C = 1; - func_8005B1E8(obj2F4, 2); + actor->iwork[11] = 1; + func_8005B1E8(actor, 2); break; case 27: - if (obj2F4->timer_0C2 != 0) { - if (!(obj2F4->timer_0C2 & 3) && (D_80177854 != 0x64)) { - func_8007D0E0(((Rand_ZeroOne() - 0.5f) * 200.0f) + obj2F4->obj.pos.x, - ((Rand_ZeroOne() - 0.5f) * 200.0f) + obj2F4->obj.pos.y, - ((Rand_ZeroOne() - 0.5f) * 200.0f) + obj2F4->obj.pos.z, + if (actor->timer_0C2 != 0) { + if (!(actor->timer_0C2 & 3) && (D_80177854 != 0x64)) { + func_8007D0E0(((Rand_ZeroOne() - 0.5f) * 200.0f) + actor->obj.pos.x, + ((Rand_ZeroOne() - 0.5f) * 200.0f) + actor->obj.pos.y, + ((Rand_ZeroOne() - 0.5f) * 200.0f) + actor->obj.pos.z, (Rand_ZeroOne() * 1.5f) + 2.5f); } RCP_SetupDL(&gMasterDisp, 0x39); @@ -3964,49 +3941,49 @@ void func_80074FF0(Object_2F4* obj2F4) { break; case 33: - Animation_GetFrameData(&D_400A30C, obj2F4->unk_0B6, sp114); + Animation_GetFrameData(&D_400A30C, actor->unk_0B6, sp114); Matrix_RotateY(gGfxMatrix, M_PI, 1); Matrix_Scale(gGfxMatrix, 1.5f, 1.5f, 1.5f, 1); - Animation_DrawSkeleton(1, D_400A398, sp114, func_80074BFC, NULL, obj2F4, &gIdentityMatrix); - Math_SmoothStepToF(&(*obj2F4).unk_154, 0.0f, 0.3f, 2.0f, 0.0001f); + Animation_DrawSkeleton(1, D_400A398, sp114, func_80074BFC, NULL, actor, &gIdentityMatrix); + Math_SmoothStepToF(&(*actor).fwork[16], 0.0f, 0.3f, 2.0f, 0.0001f); break; case 36: - Animation_GetFrameData(&D_700CAF4, obj2F4->unk_0B6, sp114); - sp114[2].z += obj2F4->unk_150; - Animation_DrawSkeleton(1, D_700CB60, sp114, NULL, NULL, obj2F4, &gIdentityMatrix); + Animation_GetFrameData(&D_700CAF4, actor->unk_0B6, sp114); + sp114[2].z += actor->fwork[15]; + Animation_DrawSkeleton(1, D_700CB60, sp114, NULL, NULL, actor, &gIdentityMatrix); break; case 38: - func_80074E3C(obj2F4); + func_80074E3C(actor); break; case 48: case 49: case 50: - func_E9F1D0_801A4CB0(obj2F4); + func_E9F1D0_801A4CB0(actor); break; case 52: - Animation_GetFrameData(&D_601F874, obj2F4->unk_0B6, sp114); - sp114[2].z -= obj2F4->unk_150; + Animation_GetFrameData(&D_601F874, actor->unk_0B6, sp114); + sp114[2].z -= actor->fwork[15]; gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK); Matrix_Scale(gGfxMatrix, 2.6f, 2.6f, 2.6f, 1); - Animation_DrawSkeleton(1, D_601F920, sp114, NULL, NULL, obj2F4, &gIdentityMatrix); + Animation_DrawSkeleton(1, D_601F920, sp114, NULL, NULL, actor, &gIdentityMatrix); gSPSetGeometryMode(gMasterDisp++, G_CULL_BACK); break; case 64: Matrix_Push(&gGfxMatrix); - Matrix_RotateX(gGfxMatrix, obj2F4->unk_0F4.x * M_DTOR, 1); - Matrix_RotateY(gGfxMatrix, obj2F4->unk_0F4.y * M_DTOR, 1); + Matrix_RotateX(gGfxMatrix, actor->unk_0F4.x * M_DTOR, 1); + Matrix_RotateY(gGfxMatrix, actor->unk_0F4.y * M_DTOR, 1); Matrix_Push(&gGfxMatrix); - Matrix_Translate(gGfxMatrix, 0.0f, obj2F4->unk_150, 0.0f, 1); + Matrix_Translate(gGfxMatrix, 0.0f, actor->fwork[15], 0.0f, 1); Matrix_SetGfxMtx(&gMasterDisp); gSPDisplayList(gMasterDisp++, D_600CAA0); Matrix_Pop(&gGfxMatrix); gSPDisplayList(gMasterDisp++, D_600C130); - Matrix_Translate(gGfxMatrix, 0.0f, -obj2F4->unk_150, 0.0f, 1); + Matrix_Translate(gGfxMatrix, 0.0f, -actor->fwork[15], 0.0f, 1); Matrix_SetGfxMtx(&gMasterDisp); gSPDisplayList(gMasterDisp++, D_600C740); Matrix_Pop(&gGfxMatrix); @@ -4019,14 +3996,14 @@ void func_80074FF0(Object_2F4* obj2F4) { break; case 78: - func_80067874(obj2F4); + func_80067874(actor); break; case 79: - temp_s0 = obj2F4->unk_0B8; - obj2F4->unk_0B8 = 2; - func_E16C50_80190430(obj2F4); - obj2F4->unk_0B8 = temp_s0; + temp_s0 = actor->unk_0B8; + actor->unk_0B8 = 2; + func_E16C50_80190430(actor); + actor->unk_0B8 = temp_s0; break; case 80: @@ -4036,10 +4013,10 @@ void func_80074FF0(Object_2F4* obj2F4) { break; case 81: - if (obj2F4->unk_150 > 0.001f) { - Matrix_Scale(gGfxMatrix, obj2F4->unk_150, obj2F4->unk_150, obj2F4->unk_150, 1); + if (actor->fwork[15] > 0.001f) { + Matrix_Scale(gGfxMatrix, actor->fwork[15], actor->fwork[15], actor->fwork[15], 1); Matrix_SetGfxMtx(&gMasterDisp); - Texture_BlendRGBA16(obj2F4->unk_154, 16 * 11, D_9003890, D_9003DF0, D_9003330); + Texture_BlendRGBA16(actor->fwork[16], 16 * 11, D_9003890, D_9003DF0, D_9003330); gSPDisplayList(gMasterDisp++, D_9002CF0); } break; @@ -4052,23 +4029,23 @@ void func_80074FF0(Object_2F4* obj2F4) { case 83: Matrix_Scale(gGfxMatrix, 3.0f, 3.0f, 3.0f, 1); - Animation_GetFrameData(&D_602201C, obj2F4->unk_0B6, sp114); - Animation_DrawSkeleton(1, D_60220E8, sp114, NULL, NULL, obj2F4, &gIdentityMatrix); + Animation_GetFrameData(&D_602201C, actor->unk_0B6, sp114); + Animation_DrawSkeleton(1, D_60220E8, sp114, NULL, NULL, actor, &gIdentityMatrix); break; case 85: gSPDisplayList(gMasterDisp++, D_D00B880); - func_8005ADAC(obj2F4); + func_8005ADAC(actor); break; case 86: gSPDisplayList(gMasterDisp++, D_D009A40); - func_8005ADAC(obj2F4); + func_8005ADAC(actor); break; case 88: RCP_SetupDL(&gMasterDisp, 0x16); - gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, obj2F4->unk_046, obj2F4->unk_046, obj2F4->unk_046, 255); + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, actor->unk_046, actor->unk_046, actor->unk_046, 255); gSPDisplayList(gMasterDisp++, D_6008970); break; @@ -4079,7 +4056,7 @@ void func_80074FF0(Object_2F4* obj2F4) { case 103: case 104: - func_E9F1D0_8018769C(obj2F4); + func_E9F1D0_8018769C(actor); break; case 105: @@ -4090,30 +4067,30 @@ void func_80074FF0(Object_2F4* obj2F4) { break; case 106: - Animation_GetFrameData(&D_4000080, obj2F4->unk_0B6, sp114); - Animation_DrawSkeleton(1, D_400014C, sp114, NULL, NULL, obj2F4, &gIdentityMatrix); + Animation_GetFrameData(&D_4000080, actor->unk_0B6, sp114); + Animation_DrawSkeleton(1, D_400014C, sp114, NULL, NULL, actor, &gIdentityMatrix); break; case 0xFFF: - obj2F4->timer_0C2 = 10; + actor->timer_0C2 = 10; break; } - if ((D_80161410 > 0) && ((obj2F4->unk_080 > 0) && (obj2F4->unk_080 < 6))) { + if ((D_80161410 > 0) && ((actor->iwork[12] > 0) && (actor->iwork[12] < 6))) { Vec3f sp58 = { 0.0f, 0.0f, 0.0f }; - if ((obj2F4->unk_080 == 4) || (obj2F4->unk_080 == 5)) { - Matrix_MultVec3f(gGfxMatrix, &sp58, &D_80177E98[obj2F4->unk_080 + 4]); + if ((actor->iwork[12] == 4) || (actor->iwork[12] == 5)) { + Matrix_MultVec3f(gGfxMatrix, &sp58, &D_80177E98[actor->iwork[12] + 4]); return; } else { - Matrix_MultVec3f(gGfxMatrix, &sp58, &D_80177E98[obj2F4->unk_080]); + Matrix_MultVec3f(gGfxMatrix, &sp58, &D_80177E98[actor->iwork[12]]); } } break; } } -void func_800763A4(Object_2F4* obj2F4) { +void func_800763A4(Actor* actor) { s32 var_s0; s32 sp60; s32 sp5C; @@ -4121,251 +4098,249 @@ void func_800763A4(Object_2F4* obj2F4) { Vec3f sp4C; s32 pad; - if (obj2F4->unk_0B4 == 27) { - obj2F4->obj.pos.y -= obj2F4->vel.y; - obj2F4->obj.status = 2; - func_8007D0E0(obj2F4->obj.pos.x - obj2F4->vel.x, obj2F4->obj.pos.y + 30.0f, obj2F4->obj.pos.z - obj2F4->vel.z, - obj2F4->scale * 5.0f); - obj2F4->timer_0C2 = 10000; + if (actor->unk_0B4 == 27) { + actor->obj.pos.y -= actor->vel.y; + actor->obj.status = 2; + func_8007D0E0(actor->obj.pos.x - actor->vel.x, actor->obj.pos.y + 30.0f, actor->obj.pos.z - actor->vel.z, + actor->scale * 5.0f); + actor->timer_0C2 = 10000; return; } - if (obj2F4->timer_0BE != 0) { - obj2F4->vel.z = 0.0f; - obj2F4->vel.x = 0.0f; - obj2F4->vel.y = 0.0f; + if (actor->timer_0BE != 0) { + actor->vel.z = 0.0f; + actor->vel.x = 0.0f; + actor->vel.y = 0.0f; - if (obj2F4->timer_0BE == 1) { - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); - func_80066254(obj2F4); + if (actor->timer_0BE == 1) { + Object_Kill(&actor->obj, &actor->sfxPos); + func_80066254(actor); if (gLevelMode == LEVELMODE_ALL_RANGE) { - D_80177F24[obj2F4->index] = obj2F4->obj.pos.x; - D_8017802C[obj2F4->index] = obj2F4->obj.pos.z; - D_80178134[obj2F4->index] = 1001.0f; + D_80177F24[actor->index] = actor->obj.pos.x; + D_8017802C[actor->index] = actor->obj.pos.z; + D_80178134[actor->index] = 1001.0f; } return; } } else { if ((gLevelType == LEVELTYPE_PLANET) || (gCurrentLevel == LEVEL_BOLSE)) { - obj2F4->gravity = 0.4f; + actor->gravity = 0.4f; } - switch (obj2F4->timer_04C) { + switch (actor->timer_04C) { case 0: case 1: - if (obj2F4->index & 1) { - obj2F4->obj.rot.z -= 8.0f; + if (actor->index & 1) { + actor->obj.rot.z -= 8.0f; } else { - obj2F4->obj.rot.z += 8.0f; + actor->obj.rot.z += 8.0f; } break; case 2: - obj2F4->obj.rot.y += 5.0f; - obj2F4->obj.rot.x += 7.3f; + actor->obj.rot.y += 5.0f; + actor->obj.rot.x += 7.3f; break; case 3: - obj2F4->obj.rot.y += 6.0f; - obj2F4->obj.rot.x += 18.3f; - obj2F4->gravity = 0.7f; + actor->obj.rot.y += 6.0f; + actor->obj.rot.x += 18.3f; + actor->gravity = 0.7f; break; case 4: - obj2F4->obj.rot.x += (-90.0f - obj2F4->obj.rot.x) * 0.1f; + actor->obj.rot.x += (-90.0f - actor->obj.rot.x) * 0.1f; break; } - if (((obj2F4->timer_0BC & 3) == 1) && (obj2F4->unk_0B4 != 13) && (obj2F4->unk_0B4 != 61)) { - func_8007D24C(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, 2.2f); + if (((actor->timer_0BC & 3) == 1) && (actor->unk_0B4 != 13) && (actor->unk_0B4 != 61)) { + func_8007D24C(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 2.2f); } - if ((D_80178294 != 0) && func_800A73E4(&sp58, &sp5C, obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z)) { - func_8007BFFC(obj2F4->obj.pos.x, sp58 + 20.0f, obj2F4->obj.pos.z, 0.0f, 0.0f, 0.0f, obj2F4->scale * 3.0f, - 5); - func_8007B228(obj2F4->obj.pos.x, sp58, obj2F4->obj.pos.z, 2.0f); - obj2F4->timer_0BE = 2; - func_8007A6F0(&obj2F4->obj.pos, 0x2903A008); + if ((D_80178294 != 0) && func_800A73E4(&sp58, &sp5C, actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z)) { + func_8007BFFC(actor->obj.pos.x, sp58 + 20.0f, actor->obj.pos.z, 0.0f, 0.0f, 0.0f, actor->scale * 3.0f, 5); + func_8007B228(actor->obj.pos.x, sp58, actor->obj.pos.z, 2.0f); + actor->timer_0BE = 2; + func_8007A6F0(&actor->obj.pos, 0x2903A008); return; } if (D_801784AC == 4) { - if (func_E6A810_801B6AEC(obj2F4->obj.pos.x, obj2F4->obj.pos.y - 10.0f, obj2F4->obj.pos.z + D_80177D20) != - 0) { - func_8007D2C8(obj2F4->obj.pos.x, obj2F4->obj.pos.y + 20.0f, obj2F4->obj.pos.z, obj2F4->scale * 6.0f); - func_8007BFFC(obj2F4->obj.pos.x - obj2F4->vel.x, obj2F4->obj.pos.y + 30.0f, - obj2F4->obj.pos.z - obj2F4->vel.z, 0.0f, 0.0f, 0.0f, obj2F4->scale * 4.0f, 20); - func_80062C38(obj2F4->obj.pos.x, obj2F4->obj.pos.z); - obj2F4->timer_0BE = 2; - func_8007A6F0(&obj2F4->obj.pos, 0x2903A008); + if (func_E6A810_801B6AEC(actor->obj.pos.x, actor->obj.pos.y - 10.0f, actor->obj.pos.z + D_80177D20) != 0) { + func_8007D2C8(actor->obj.pos.x, actor->obj.pos.y + 20.0f, actor->obj.pos.z, actor->scale * 6.0f); + func_8007BFFC(actor->obj.pos.x - actor->vel.x, actor->obj.pos.y + 30.0f, + actor->obj.pos.z - actor->vel.z, 0.0f, 0.0f, 0.0f, actor->scale * 4.0f, 20); + func_80062C38(actor->obj.pos.x, actor->obj.pos.z); + actor->timer_0BE = 2; + func_8007A6F0(&actor->obj.pos, 0x2903A008); return; } } else { - sp4C.x = obj2F4->vel.x; - sp4C.y = obj2F4->vel.y; - sp4C.z = obj2F4->vel.z; + sp4C.x = actor->vel.x; + sp4C.y = actor->vel.y; + sp4C.z = actor->vel.z; - sp60 = func_8006351C(obj2F4->index, &obj2F4->obj.pos, &sp4C, 0); + sp60 = func_8006351C(actor->index, &actor->obj.pos, &sp4C, 0); - if ((sp60 != 0) || (obj2F4->obj.pos.y < (D_80177940 + 30.0f))) { - if ((Rand_ZeroOne() < 0.5f) && (obj2F4->timer_04C < 3) && (gLevelType == LEVELTYPE_PLANET) && - (sp60 != 999) && (D_80161A88 != 2) && ((obj2F4->vel.z < -20.0f) || (obj2F4->vel.z > 0.0f))) { + if ((sp60 != 0) || (actor->obj.pos.y < (D_80177940 + 30.0f))) { + if ((Rand_ZeroOne() < 0.5f) && (actor->timer_04C < 3) && (gLevelType == LEVELTYPE_PLANET) && + (sp60 != 999) && (D_80161A88 != 2) && ((actor->vel.z < -20.0f) || (actor->vel.z > 0.0f))) { if (gCurrentLevel == LEVEL_FORTUNA) { - func_8006BF7C(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z - obj2F4->vel.z); - func_80062C38(obj2F4->obj.pos.x, obj2F4->obj.pos.z); + func_8006BF7C(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z - actor->vel.z); + func_80062C38(actor->obj.pos.x, actor->obj.pos.z); } - obj2F4->obj.pos.y -= obj2F4->vel.y; - obj2F4->vel.y = Rand_ZeroOne() * 10.0f; - obj2F4->timer_04C = 3; + actor->obj.pos.y -= actor->vel.y; + actor->vel.y = Rand_ZeroOne() * 10.0f; + actor->timer_04C = 3; if (gLevelMode == LEVELMODE_ALL_RANGE) { - func_8007D2C8(obj2F4->obj.pos.x - obj2F4->vel.x, obj2F4->obj.pos.y, - obj2F4->obj.pos.z - obj2F4->vel.z, obj2F4->scale * 3.0f); + func_8007D2C8(actor->obj.pos.x - actor->vel.x, actor->obj.pos.y, + actor->obj.pos.z - actor->vel.z, actor->scale * 3.0f); } - func_8007D2C8(obj2F4->obj.pos.x - obj2F4->vel.x, obj2F4->obj.pos.y, - obj2F4->obj.pos.z - obj2F4->vel.z, obj2F4->scale * 3.0f); + func_8007D2C8(actor->obj.pos.x - actor->vel.x, actor->obj.pos.y, actor->obj.pos.z - actor->vel.z, + actor->scale * 3.0f); - if ((obj2F4->obj.id == OBJ_2F4_197) && (obj2F4->unk_0E4 < 8)) { - func_8007A6F0(&obj2F4->obj.pos, 0x2903B009); + if ((actor->obj.id == OBJ_ACTOR_197) && (actor->unk_0E4 < 8)) { + func_8007A6F0(&actor->obj.pos, 0x2903B009); } else { - func_8007A6F0(&obj2F4->obj.pos, 0x2903A008); + func_8007A6F0(&actor->obj.pos, 0x2903A008); } - if ((obj2F4->obj.id == OBJ_2F4_200) && (obj2F4->unk_0B4 == 2)) { - if (obj2F4->unk_158 < 360.0f) { - func_800A69F8(1, obj2F4->obj.pos.x + 20.0f, obj2F4->obj.pos.y, obj2F4->obj.pos.z); - obj2F4->unk_158 = 777.0f; + if ((actor->obj.id == OBJ_ACTOR_200) && (actor->unk_0B4 == 2)) { + if (actor->fwork[17] < 360.0f) { + func_800A69F8(1, actor->obj.pos.x + 20.0f, actor->obj.pos.y, actor->obj.pos.z); + actor->fwork[17] = 777.0f; } - if (obj2F4->unk_15C < 360.0f) { - func_800A69F8(0, obj2F4->obj.pos.x - 20.0f, obj2F4->obj.pos.y, obj2F4->obj.pos.z); - obj2F4->unk_15C = 777.0f; + if (actor->fwork[18] < 360.0f) { + func_800A69F8(0, actor->obj.pos.x - 20.0f, actor->obj.pos.y, actor->obj.pos.z); + actor->fwork[18] = 777.0f; } } } else { - if ((obj2F4->obj.pos.y < (D_80177940 + 30.0f)) && (gLevelType == LEVELTYPE_PLANET)) { - obj2F4->vel.z = 0.0f; + if ((actor->obj.pos.y < (D_80177940 + 30.0f)) && (gLevelType == LEVELTYPE_PLANET)) { + actor->vel.z = 0.0f; if (D_80161A88 == 2) { - func_8007D9DC(obj2F4->obj.pos.x, D_80177940 + 2.0f, obj2F4->obj.pos.z, 3.0f, 20.0f, 0); - func_8007D9DC(obj2F4->obj.pos.x, D_80177940 + 2.0f, obj2F4->obj.pos.z, 3.0f, 20.0f, 10); - func_8007D9DC(obj2F4->obj.pos.x, D_80177940 + 2.0f, obj2F4->obj.pos.z, 3.0f, 20.0f, 20); - func_8007ADF4(obj2F4->obj.pos.x, D_80177940, obj2F4->obj.pos.z, 0.1f, 3.0f); + func_8007D9DC(actor->obj.pos.x, D_80177940 + 2.0f, actor->obj.pos.z, 3.0f, 20.0f, 0); + func_8007D9DC(actor->obj.pos.x, D_80177940 + 2.0f, actor->obj.pos.z, 3.0f, 20.0f, 10); + func_8007D9DC(actor->obj.pos.x, D_80177940 + 2.0f, actor->obj.pos.z, 3.0f, 20.0f, 20); + func_8007ADF4(actor->obj.pos.x, D_80177940, actor->obj.pos.z, 0.1f, 3.0f); } else { - func_800365E4(obj2F4->obj.pos.x, 3.0f, obj2F4->obj.pos.z, obj2F4->obj.pos.x, - obj2F4->obj.pos.z, 0.0f, 0.0f, 90.0f, 6.5f, 0, 0); + func_800365E4(actor->obj.pos.x, 3.0f, actor->obj.pos.z, actor->obj.pos.x, actor->obj.pos.z, + 0.0f, 0.0f, 90.0f, 6.5f, 0, 0); } - func_8007C120(obj2F4->obj.pos.x, 20.0f, obj2F4->obj.pos.z, 0.0f, 0.0f, 0.0f, - obj2F4->scale * 0.05f, 0x1E); + func_8007C120(actor->obj.pos.x, 20.0f, actor->obj.pos.z, 0.0f, 0.0f, 0.0f, actor->scale * 0.05f, + 0x1E); if ((gCurrentLevel == LEVEL_FORTUNA) || (gCurrentLevel == LEVEL_VENOM_2)) { - func_8007C688(obj2F4->obj.pos.x, D_80177940 + 30.0f, obj2F4->obj.pos.z, 3.0f, 60); + func_8007C688(actor->obj.pos.x, D_80177940 + 30.0f, actor->obj.pos.z, 3.0f, 60); if (gCurrentLevel == LEVEL_FORTUNA) { - func_80062C38(obj2F4->obj.pos.x, obj2F4->obj.pos.z); + func_80062C38(actor->obj.pos.x, actor->obj.pos.z); } } } - obj2F4->obj.pos.y -= obj2F4->vel.y; - func_8007D0E0(obj2F4->obj.pos.x - obj2F4->vel.x, obj2F4->obj.pos.y + 30.0f, - obj2F4->obj.pos.z - obj2F4->vel.z, obj2F4->scale * 5.0f); + actor->obj.pos.y -= actor->vel.y; + func_8007D0E0(actor->obj.pos.x - actor->vel.x, actor->obj.pos.y + 30.0f, + actor->obj.pos.z - actor->vel.z, actor->scale * 5.0f); if (gLevelMode == LEVELMODE_ALL_RANGE) { - func_8007BFFC(obj2F4->obj.pos.x, obj2F4->obj.pos.y + 30.0f, obj2F4->obj.pos.z, obj2F4->vel.x, - 10.0f, obj2F4->vel.z, obj2F4->scale * 3.0f, 20); + func_8007BFFC(actor->obj.pos.x, actor->obj.pos.y + 30.0f, actor->obj.pos.z, actor->vel.x, 10.0f, + actor->vel.z, actor->scale * 3.0f, 20); if (sp60 == 999) { - func_8007C688(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, obj2F4->scale * 3.0f, + func_8007C688(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, actor->scale * 3.0f, 70); } for (var_s0 = 0; var_s0 < 4; var_s0++) { if (Rand_ZeroOne() < 0.7f) { if (gCurrentLevel == LEVEL_FORTUNA) { - func_800A69F8(4, obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z); + func_800A69F8(4, actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z); } else { - func_800794CC(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, 1.0f); + func_800794CC(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 1.0f); } } } } else { - func_8007BFFC(obj2F4->obj.pos.x - obj2F4->vel.x, obj2F4->obj.pos.y + 30.0f, - (obj2F4->obj.pos.z - obj2F4->vel.z) + 48.0f, 0.0f, 0.0f, 0.0f, - obj2F4->scale * 3.0f, 5); + func_8007BFFC(actor->obj.pos.x - actor->vel.x, actor->obj.pos.y + 30.0f, + (actor->obj.pos.z - actor->vel.z) + 48.0f, 0.0f, 0.0f, 0.0f, actor->scale * 3.0f, + 5); } - obj2F4->timer_0BE = 2; + actor->timer_0BE = 2; - if ((obj2F4->obj.id == OBJ_2F4_197) && (obj2F4->unk_0E4 < 8)) { - func_8007A6F0(&obj2F4->obj.pos, 0x2903B009); + if ((actor->obj.id == OBJ_ACTOR_197) && (actor->unk_0E4 < 8)) { + func_8007A6F0(&actor->obj.pos, 0x2903B009); } else { - func_8007A6F0(&obj2F4->obj.pos, 0x2903A008); + func_8007A6F0(&actor->obj.pos, 0x2903A008); } } } } - if ((obj2F4->unk_0D0 != 0) || (obj2F4->timer_0BC == 0) || - ((obj2F4->unk_044 != 0) && (obj2F4->obj.id != OBJ_2F4_197))) { + if ((actor->unk_0D0 != 0) || (actor->timer_0BC == 0) || + ((actor->unk_044 != 0) && (actor->obj.id != OBJ_ACTOR_197))) { if (gLevelMode == LEVELMODE_ALL_RANGE) { for (var_s0 = 0; var_s0 < 4; var_s0++) { if (Rand_ZeroOne() < 0.7f) { if (gCurrentLevel == LEVEL_FORTUNA) { - func_800A69F8(4, obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z); + func_800A69F8(4, actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z); } else { - func_800794CC(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, 1.0f); + func_800794CC(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 1.0f); } } } - func_8007BFFC(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, obj2F4->vel.x, obj2F4->vel.y, - obj2F4->vel.z, 5.0f, 15); - func_8007D0E0(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z - obj2F4->vel.z, 8.0f); + func_8007BFFC(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, actor->vel.x, actor->vel.y, + actor->vel.z, 5.0f, 15); + func_8007D0E0(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z - actor->vel.z, 8.0f); } else { - if ((obj2F4->unk_0B4 != 0xD) && (obj2F4->unk_0B4 != 61)) { - func_8007D0E0(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z - obj2F4->vel.z, - obj2F4->scale * 5.0f); + if ((actor->unk_0B4 != 0xD) && (actor->unk_0B4 != 61)) { + func_8007D0E0(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z - actor->vel.z, + actor->scale * 5.0f); } - if (obj2F4->unk_0B4 == 0x24) { - func_8007BFFC(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, obj2F4->vel.x, obj2F4->vel.y, - obj2F4->vel.z, 5.0f, 0xF); + if (actor->unk_0B4 == 0x24) { + func_8007BFFC(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, actor->vel.x, actor->vel.y, + actor->vel.z, 5.0f, 0xF); } } - obj2F4->timer_0BE = 2; + actor->timer_0BE = 2; - if ((obj2F4->obj.id == OBJ_2F4_197) && (obj2F4->unk_0E4 < 8)) { - func_8007A6F0(&obj2F4->obj.pos, 0x2903B009); + if ((actor->obj.id == OBJ_ACTOR_197) && (actor->unk_0E4 < 8)) { + func_8007A6F0(&actor->obj.pos, 0x2903B009); } else { - func_8007A6F0(&obj2F4->obj.pos, 0x2903A008); + func_8007A6F0(&actor->obj.pos, 0x2903A008); } } } if (gLevelMode == LEVELMODE_ALL_RANGE) { - D_80177F24[obj2F4->index] = obj2F4->obj.pos.x; - D_8017802C[obj2F4->index] = obj2F4->obj.pos.z; - D_80178134[obj2F4->index] = obj2F4->unk_0F4.y + 180.0f; + D_80177F24[actor->index] = actor->obj.pos.x; + D_8017802C[actor->index] = actor->obj.pos.z; + D_80178134[actor->index] = actor->unk_0F4.y + 180.0f; } - if (obj2F4->obj.id == OBJ_2F4_197) { - func_8002EE64(obj2F4); + if (actor->obj.id == OBJ_ACTOR_197) { + func_8002EE64(actor); } } -void func_8007717C(Object_2F4* obj2F4) { - if ((obj2F4->unk_0B4 == 0x30) || (obj2F4->unk_0B4 == 0x31) || (obj2F4->unk_0B4 == 0x32)) { - func_E9F1D0_801A3BD4(obj2F4); +void func_8007717C(Actor* actor) { + if ((actor->unk_0B4 == 0x30) || (actor->unk_0B4 == 0x31) || (actor->unk_0B4 == 0x32)) { + func_E9F1D0_801A3BD4(actor); } else { - func_800763A4(obj2F4); + func_800763A4(actor); } } -void func_800771CC(Object_2F4* obj2F4) { +void func_800771CC(Actor* actor) { Vec3f sp24; - Math_Vec3fFromAngles(&sp24, obj2F4->obj.rot.x, obj2F4->obj.rot.y, 50.0f); - obj2F4->vel.x = sp24.x; - obj2F4->vel.y = sp24.y; - obj2F4->vel.z = sp24.z; + Math_Vec3fFromAngles(&sp24, actor->obj.rot.x, actor->obj.rot.y, 50.0f); + actor->vel.x = sp24.x; + actor->vel.y = sp24.y; + actor->vel.z = sp24.z; } -void func_80077218(Object_2F4* obj2F4) { +void func_80077218(Actor* actor) { func_800515C4(); } diff --git a/src/main/fox_game.c b/src/main/fox_game.c index c7a095d9..530b51ca 100644 --- a/src/main/fox_game.c +++ b/src/main/fox_game.c @@ -539,21 +539,21 @@ void func_800A26C0(void) { } } -Object_2F4* func_800A3608(s32 arg0) { - Object_2F4* obj2F4 = gObjects2F4; +Actor* func_800A3608(s32 arg0) { + Actor* actor = gActors; s32 i; - for (i = 0; i < ARRAY_COUNT(gObjects2F4); i++, obj2F4++) { - if (obj2F4->obj.status == 0) { - Object_2F4_Initialize(obj2F4); - obj2F4->obj.status = 1; - obj2F4->obj.id = arg0; - Object_SetInfo(&obj2F4->info, obj2F4->obj.id); + for (i = 0; i < ARRAY_COUNT(gActors); i++, actor++) { + if (actor->obj.status == 0) { + Actor_Initialize(actor); + actor->obj.status = 1; + actor->obj.id = arg0; + Object_SetInfo(&actor->info, actor->obj.id); break; } } - if (i == ARRAY_COUNT(gObjects2F4)) { - obj2F4 = NULL; + if (i == ARRAY_COUNT(gActors)) { + actor = NULL; } - return obj2F4; + return actor; } diff --git a/src/main/fox_play.c b/src/main/fox_play.c index ad7158b8..15eea076 100644 --- a/src/main/fox_play.c +++ b/src/main/fox_play.c @@ -609,9 +609,9 @@ void func_800A6148(void) { for (i = 0; i < ARRAY_COUNT(gObjects4C); i++) { Object_4C_Initialize(&gObjects4C[i]); } - for (i = 0; i < ARRAY_COUNT(gObjects2F4); i++) { - Object_Kill(&gObjects2F4[i].obj, &gObjects2F4[i].sfxPos); - Object_2F4_Initialize(&gObjects2F4[i]); + for (i = 0; i < ARRAY_COUNT(gActors); i++) { + Object_Kill(&gActors[i].obj, &gActors[i].sfxPos); + Actor_Initialize(&gActors[i]); } for (i = 0; i < ARRAY_COUNT(gBosses); i++) { Object_Kill(&gBosses[i].obj, &gBosses[i].sfxPos); @@ -688,57 +688,57 @@ void func_800A668C(f32 xPos, f32 yPos, f32 zPos) { } } -void func_800A670C(Object_2F4* obj2F4, s32 arg1, f32 arg2, f32 arg3, f32 arg4) { - Object_2F4_Initialize(obj2F4); - obj2F4->obj.status = 1; - obj2F4->obj.id = OBJ_2F4_189; - obj2F4->unk_0B8 = arg1; - obj2F4->obj.pos.x = arg2; - obj2F4->obj.pos.y = arg3; - obj2F4->obj.pos.z = arg4; - obj2F4->gravity = 0.5f; +void func_800A670C(Actor* actor, s32 arg1, f32 arg2, f32 arg3, f32 arg4) { + Actor_Initialize(actor); + actor->obj.status = 1; + actor->obj.id = OBJ_ACTOR_189; + actor->unk_0B8 = arg1; + actor->obj.pos.x = arg2; + actor->obj.pos.y = arg3; + actor->obj.pos.z = arg4; + actor->gravity = 0.5f; if ((arg1 == 0) || (arg1 == 1)) { - obj2F4->vel.y = (Rand_ZeroOne() * 5.0f) + 10.0f; - obj2F4->vel.x = 10.0f; + actor->vel.y = (Rand_ZeroOne() * 5.0f) + 10.0f; + actor->vel.x = 10.0f; if (arg1 == 0) { - obj2F4->vel.x = -10.0f; + actor->vel.x = -10.0f; } - obj2F4->timer_0BC = 15; + actor->timer_0BC = 15; } else { if (gLevelType == LEVELTYPE_PLANET) { - obj2F4->vel.y = (Rand_ZeroOne() * 7.0f) + 7.0f; - obj2F4->vel.x = (Rand_ZeroOne() - 0.5f) * 10.0f; - obj2F4->vel.z = (Rand_ZeroOne() * 5.0f) + 5.0f; + actor->vel.y = (Rand_ZeroOne() * 7.0f) + 7.0f; + actor->vel.x = (Rand_ZeroOne() - 0.5f) * 10.0f; + actor->vel.z = (Rand_ZeroOne() * 5.0f) + 5.0f; if (gLevelMode == LEVELMODE_ALL_RANGE) { - obj2F4->vel.z = (Rand_ZeroOne() - 0.5f) * 10.0f; + actor->vel.z = (Rand_ZeroOne() - 0.5f) * 10.0f; } - obj2F4->timer_0BC = (s32) (Rand_ZeroOne() * 10.0f) + 10; + actor->timer_0BC = (s32) (Rand_ZeroOne() * 10.0f) + 10; } else { - obj2F4->vel.x = (Rand_ZeroOne() - 0.5f) * 10.0f; - obj2F4->vel.y = (Rand_ZeroOne() - 0.5f) * 10.0f; - obj2F4->vel.z = (Rand_ZeroOne() - 0.5f) * 10.0f; - obj2F4->timer_0BC = (s32) (Rand_ZeroOne() * 25.0f) + 25; - obj2F4->gravity = 0.0f; + actor->vel.x = (Rand_ZeroOne() - 0.5f) * 10.0f; + actor->vel.y = (Rand_ZeroOne() - 0.5f) * 10.0f; + actor->vel.z = (Rand_ZeroOne() - 0.5f) * 10.0f; + actor->timer_0BC = (s32) (Rand_ZeroOne() * 25.0f) + 25; + actor->gravity = 0.0f; } if (arg1 == 2) { - obj2F4->scale = (Rand_ZeroOne() * 1.5f) + 0.75f; + actor->scale = (Rand_ZeroOne() * 1.5f) + 0.75f; } else if (arg1 == 4) { - obj2F4->scale = (Rand_ZeroOne() * 0.8f) + 0.3f; - obj2F4->timer_0BC = (s32) (Rand_ZeroOne() * 50.0f) + 70; + actor->scale = (Rand_ZeroOne() * 0.8f) + 0.3f; + actor->timer_0BC = (s32) (Rand_ZeroOne() * 50.0f) + 70; } - obj2F4->obj.rot.x = Rand_ZeroOne() * 360.0f; + actor->obj.rot.x = Rand_ZeroOne() * 360.0f; } - Object_SetInfo(&obj2F4->info, obj2F4->obj.id); + Object_SetInfo(&actor->info, actor->obj.id); } void func_800A69F8(s32 arg0, f32 arg1, f32 arg2, f32 arg3) { s32 i; if (!gVersusMode) { - for (i = ARRAY_COUNT(gObjects2F4) - 1; i >= 10; i--) { - if (gObjects2F4[i].obj.status == 0) { - func_800A670C(&gObjects2F4[i], arg0, arg1, arg2, arg3); + for (i = ARRAY_COUNT(gActors) - 1; i >= 10; i--) { + if (gActors[i].obj.status == 0) { + func_800A670C(&gActors[i], arg0, arg1, arg2, arg3); break; } } @@ -1177,7 +1177,7 @@ bool func_800A8054(ObjectId objId, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 a useCol2 = false; switch (objId) { - case OBJ_2F4_180: + case OBJ_ACTOR_180: colId = COL1_0; break; case OBJ_80_4: @@ -1512,14 +1512,14 @@ void func_800A8BA4(Player* player) { Vec3f spfD4; Vec3f spC8; Vec3f spBC; - f32 padB8; // B8 - Object_2F4* obj2F4; // B4 - f32 padB0; // B0 - Boss* boss; // AC - Object_4C* obj4C; // A8 - s32 pad; // A4 - Object_80* obj80; // A0 - Player* opponent; // 9C + f32 padB8; // B8 + Actor* actor; // B4 + f32 padB0; // B0 + Boss* boss; // AC + Object_4C* obj4C; // A8 + s32 pad; // A4 + Object_80* obj80; // A0 + Player* opponent; // 9C s32 sp98; f32 sp94; s32 sp90; @@ -1841,40 +1841,39 @@ void func_800A8BA4(Player* player) { } } } - for (i = 0, obj2F4 = gObjects2F4; i < ARRAY_COUNT(gObjects2F4); i++, obj2F4++) { - if ((obj2F4->obj.status == 2) && (obj2F4->timer_0C2 == 0)) { - if (obj2F4->obj.id == OBJ_2F4_180) { - temp_v0 = func_800A8304(player, obj2F4->obj.id, obj2F4->obj.pos.x, obj2F4->obj.pos.y, - obj2F4->obj.pos.z, obj2F4->obj.rot.x, obj2F4->obj.rot.y, obj2F4->obj.rot.z); + for (i = 0, actor = gActors; i < ARRAY_COUNT(gActors); i++, actor++) { + if ((actor->obj.status == 2) && (actor->timer_0C2 == 0)) { + if (actor->obj.id == OBJ_ACTOR_180) { + temp_v0 = func_800A8304(player, actor->obj.id, actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, + actor->obj.rot.x, actor->obj.rot.y, actor->obj.rot.z); if (temp_v0 != 0) { - Player_ApplyDamage(player, temp_v0, obj2F4->info.damage); + Player_ApplyDamage(player, temp_v0, actor->info.damage); } - } else if (obj2F4->obj.id == OBJ_2F4_200) { - if (obj2F4->unk_0B4 == 42) { - temp_v0 = - func_800A8304(player, OBJ_UNK_1000, obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, - obj2F4->obj.rot.x, obj2F4->obj.rot.y, obj2F4->obj.rot.z); + } else if (actor->obj.id == OBJ_ACTOR_200) { + if (actor->unk_0B4 == 42) { + temp_v0 = func_800A8304(player, OBJ_UNK_1000, actor->obj.pos.x, actor->obj.pos.y, + actor->obj.pos.z, actor->obj.rot.x, actor->obj.rot.y, actor->obj.rot.z); if (temp_v0 != 0) { - Player_ApplyDamage(player, temp_v0, obj2F4->info.damage); + Player_ApplyDamage(player, temp_v0, actor->info.damage); } - } else if (obj2F4->unk_0B4 == 63) { - spfD4.x = fabsf(obj2F4->obj.pos.x - player->pos.x); - spfD4.y = fabsf(obj2F4->obj.pos.y - player->pos.y); - spfD4.z = fabsf(obj2F4->obj.pos.z - player->unk_138); + } else if (actor->unk_0B4 == 63) { + spfD4.x = fabsf(actor->obj.pos.x - player->pos.x); + spfD4.y = fabsf(actor->obj.pos.y - player->pos.y); + spfD4.z = fabsf(actor->obj.pos.z - player->unk_138); if (sqrtf(VEC3F_SQ(spfD4)) < 900.0f) { - Player_ApplyDamage(player, 0, obj2F4->info.damage); - obj2F4->unk_0D0 = 3; + Player_ApplyDamage(player, 0, actor->info.damage); + actor->unk_0D0 = 3; } } else { - temp_v0 = - func_800A7974(player, obj2F4->info.hitbox, &sp98, obj2F4->obj.pos.x, obj2F4->obj.pos.y, - obj2F4->obj.pos.z, obj2F4->obj.rot.x, obj2F4->obj.rot.y, obj2F4->obj.rot.z, - obj2F4->unk_2E8.x, obj2F4->unk_2E8.y, obj2F4->unk_2E8.z + obj2F4->unk_0F4.z); + temp_v0 = func_800A7974(player, actor->info.hitbox, &sp98, actor->obj.pos.x, actor->obj.pos.y, + actor->obj.pos.z, actor->obj.rot.x, actor->obj.rot.y, actor->obj.rot.z, + actor->vwork[29].x, actor->vwork[29].y, + actor->vwork[29].z + actor->unk_0F4.z); if (temp_v0 != 0) { - if ((temp_v0 < 0) && (obj2F4->unk_0B4 == 38)) { - obj2F4->info.hitbox = SEGMENTED_TO_VIRTUAL(D_6032328); + if ((temp_v0 < 0) && (actor->unk_0B4 == 38)) { + actor->info.hitbox = SEGMENTED_TO_VIRTUAL(D_6032328); if (D_80177E80 >= 0) { - obj2F4->unk_046 = 2; + actor->unk_046 = 2; D_80177E80++; if (D_80177E80 == 3) { func_800BA808(gMsg_ID_5504, RCID_FALCO); @@ -1885,57 +1884,56 @@ void func_800A8BA4(Player* player) { } } else if (temp_v0 < 0) { if (player->unk_22C == 0) { - Audio_PlaySfx(0x19000001, &obj2F4->sfxPos, 0, &D_800C5D34, &D_800C5D34, - &D_800C5D3C); + Audio_PlaySfx(0x19000001, &actor->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } player->unk_22C += 2; if (player->unk_22C >= 4) { player->unk_22C = 4; } } else { - Player_ApplyDamage(player, temp_v0, obj2F4->info.damage); - obj2F4->unk_0D0 = 3; - obj2F4->unk_0D4 = player->num + 1; + Player_ApplyDamage(player, temp_v0, actor->info.damage); + actor->unk_0D0 = 3; + actor->unk_0D4 = player->num + 1; } } } - } else if ((obj2F4->obj.id >= OBJ_2F4_205) && (obj2F4->obj.id < OBJ_2F4_214)) { - temp_v0 = func_800A7974(player, obj2F4->info.hitbox, &sp98, obj2F4->unk_178 + obj2F4->obj.pos.x, - obj2F4->unk_134 + obj2F4->obj.pos.y + 25.0f, obj2F4->obj.pos.z, - obj2F4->unk_188, obj2F4->unk_17C, obj2F4->obj.rot.z, 0.0f, 0.0f, 0.0f); + } else if ((actor->obj.id >= OBJ_ACTOR_205) && (actor->obj.id < OBJ_ACTOR_214)) { + temp_v0 = func_800A7974(player, actor->info.hitbox, &sp98, actor->fwork[25] + actor->obj.pos.x, + actor->fwork[8] + actor->obj.pos.y + 25.0f, actor->obj.pos.z, + actor->fwork[29], actor->fwork[26], actor->obj.rot.z, 0.0f, 0.0f, 0.0f); if (temp_v0 != 0) { - obj2F4->unk_0D0 = 3; - if (obj2F4->info.damage) { - Player_ApplyDamage(player, temp_v0, obj2F4->info.damage); + actor->unk_0D0 = 3; + if (actor->info.damage) { + Player_ApplyDamage(player, temp_v0, actor->info.damage); } else { - obj2F4->unk_0D0 = -1; + actor->unk_0D0 = -1; } } } else { - temp_v0 = func_800A7974(player, obj2F4->info.hitbox, &sp98, obj2F4->obj.pos.x, obj2F4->obj.pos.y, - obj2F4->obj.pos.z, obj2F4->obj.rot.x, obj2F4->obj.rot.y, obj2F4->obj.rot.z, + temp_v0 = func_800A7974(player, actor->info.hitbox, &sp98, actor->obj.pos.x, actor->obj.pos.y, + actor->obj.pos.z, actor->obj.rot.x, actor->obj.rot.y, actor->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, &obj2F4->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + Audio_PlaySfx(0x19000001, &actor->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } player->unk_22C += 2; if (player->unk_22C >= 4) { player->unk_22C = 4; } } else { - obj2F4->unk_0D0 = 3; - if (obj2F4->obj.id == OBJ_2F4_190) { - obj2F4->unk_0D0 = -1; + actor->unk_0D0 = 3; + if (actor->obj.id == OBJ_ACTOR_190) { + actor->unk_0D0 = -1; } - if (obj2F4->info.damage) { - Player_ApplyDamage(player, temp_v0, obj2F4->info.damage); - if (obj2F4->obj.id == OBJ_2F4_225) { + if (actor->info.damage) { + Player_ApplyDamage(player, temp_v0, actor->info.damage); + if (actor->obj.id == OBJ_ACTOR_225) { player->unk_0D8.y = 0.0f; } } else { - obj2F4->unk_0D0 = -1; + actor->unk_0D0 = -1; } } } @@ -2886,11 +2884,11 @@ void func_800AD094(Player* player) { } bool func_800AD118(s32 playerNum) { - Object_2F4* obj2F4; + Actor* actor; s32 i; - for (i = 0, obj2F4 = gObjects2F4; i < ARRAY_COUNT(gObjects2F4); i++, obj2F4++) { - if ((obj2F4->obj.status == 2) && (obj2F4->timer_0CA[playerNum] != 0)) { + for (i = 0, actor = gActors; i < ARRAY_COUNT(gActors); i++, actor++) { + if ((actor->obj.status == 2) && (actor->timer_0CA[playerNum] != 0)) { return false; } } @@ -2941,8 +2939,8 @@ bool func_800AD1F4(Player* player) { } if (gInputPress->button & A_BUTTON) { - for (i = 0; i < ARRAY_COUNT(gObjects2F4); i++) { - if ((gObjects2F4[i].obj.status == 2) && (gObjects2F4[i].timer_0CA[player->num] != 0)) { + for (i = 0; i < ARRAY_COUNT(gActors); i++) { + if ((gActors[i].obj.status == 2) && (gActors[i].timer_0CA[player->num] != 0)) { if ((gPlayerShots[14 - player->num].obj.status == 0) || (gPlayerShots[14 - player->num].obj.id != PLAYERSHOT_8) || ((gPlayerShots[14 - player->num].obj.id == PLAYERSHOT_8) && @@ -2979,8 +2977,8 @@ bool func_800AD1F4(Player* player) { } if (gInputPress->button & B_BUTTON) { var_a2 = false; - for (i = 0; i < ARRAY_COUNT(gObjects2F4); i++) { - if ((gObjects2F4[i].obj.status == 2) && (gObjects2F4[i].timer_0CA[player->num] != 0)) { + for (i = 0; i < ARRAY_COUNT(gActors); i++) { + if ((gActors[i].obj.status == 2) && (gActors[i].timer_0CA[player->num] != 0)) { var_a2 = true; break; } diff --git a/src/main/fox_radio.c b/src/main/fox_radio.c index 64a7976b..9faddd08 100644 --- a/src/main/fox_radio.c +++ b/src/main/fox_radio.c @@ -718,15 +718,14 @@ void func_800BB5D0(void) { break; } - if ((gObjects2F4[var_v1].obj.status != 2) && (gFrameCount & 4) && - (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_3) && (D_801782A4 != 2) && (D_801782A4 != 3) && - (D_801782A4 != 1000)) { + if ((gActors[var_v1].obj.status != 2) && (gFrameCount & 4) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_3) && + (D_801782A4 != 2) && (D_801782A4 != 3) && (D_801782A4 != 1000)) { RCP_SetupDL(&gMasterDisp, 0x4C); gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 0, 255); Graphics_DisplaySmallText(31, 167, 1.0f, 1.0f, "DOWN"); } if (((D_801782A4 != 2) && (D_801782A4 != 3)) && (D_801782A4 != 1000)) { - func_80086110(22.0f, 165.0f, gObjects2F4[var_v1].unk_0CE * 2.55f); + func_80086110(22.0f, 165.0f, gActors[var_v1].unk_0CE * 2.55f); } } if (((D_801782A4 != 2) && (D_801782A4 != 3)) && (D_801782A4 != 1000)) { diff --git a/src/main/fox_versus.c b/src/main/fox_versus.c index 5b28a0ef..091f4f0a 100644 --- a/src/main/fox_versus.c +++ b/src/main/fox_versus.c @@ -1844,17 +1844,17 @@ void func_800C20B0(void) { void func_800C2190(void) { } -bool func_800C2198(Object_2F4* obj2F4, f32 arg1, f32 arg2) { - if ((fabsf(gBosses[0].obj.pos.x - (obj2F4->obj.pos.x + (arg1 * 650.0f))) < 1500.0f) && - (fabsf(gBosses[0].obj.pos.z - (obj2F4->obj.pos.z + (arg2 * 650.0f))) < 1500.0f) && - (fabsf(gBosses[0].obj.pos.y - obj2F4->obj.pos.y) < 700.0f)) { +bool func_800C2198(Actor* actor, f32 arg1, f32 arg2) { + if ((fabsf(gBosses[0].obj.pos.x - (actor->obj.pos.x + (arg1 * 650.0f))) < 1500.0f) && + (fabsf(gBosses[0].obj.pos.z - (actor->obj.pos.z + (arg2 * 650.0f))) < 1500.0f) && + (fabsf(gBosses[0].obj.pos.y - actor->obj.pos.y) < 700.0f)) { return true; } else { return false; } } -void func_800C2244(Object_2F4* obj2F4) { +void func_800C2244(Actor* actor) { bool boolTemp2; bool boolTemp; s32 pad2[6]; @@ -1874,44 +1874,44 @@ void func_800C2244(Object_2F4* obj2F4) { boolTemp = false; - switch (obj2F4->unk_0B8) { + switch (actor->unk_0B8) { case 0: boolTemp = true; - if (obj2F4->timer_0BC == 0) { + if (actor->timer_0BC == 0) { y = Rand_ZeroOne() * 1000.0f; x = (Rand_ZeroOne() - 0.5f) * 10000.0f; z = (Rand_ZeroOne() - 0.5f) * 10000.0f; - if ((fabsf(obj2F4->obj.pos.x - x) > 2000.0f) || (fabsf(obj2F4->obj.pos.z - z) > 2000.0f)) { - obj2F4->unk_124.x = x; - obj2F4->unk_124.y = y; - obj2F4->unk_124.z = z; - obj2F4->timer_0BC = (s32) (Rand_ZeroOne() * 20.0f) + 10; + if ((fabsf(actor->obj.pos.x - x) > 2000.0f) || (fabsf(actor->obj.pos.z - z) > 2000.0f)) { + actor->fwork[4] = x; + actor->fwork[5] = y; + actor->fwork[6] = z; + actor->timer_0BC = (s32) (Rand_ZeroOne() * 20.0f) + 10; } } break; } - sinX = __sinf(M_DTOR * (obj2F4->obj.rot.x)); - cosX = __cosf(M_DTOR * (obj2F4->obj.rot.x)); - sinY = __sinf(M_DTOR * (obj2F4->obj.rot.y)); - cosY = __cosf(M_DTOR * (obj2F4->obj.rot.y)); + sinX = __sinf(M_DTOR * (actor->obj.rot.x)); + cosX = __cosf(M_DTOR * (actor->obj.rot.x)); + sinY = __sinf(M_DTOR * (actor->obj.rot.y)); + cosY = __cosf(M_DTOR * (actor->obj.rot.y)); if (boolTemp) { - x = obj2F4->unk_124.x - obj2F4->obj.pos.x; - y = obj2F4->unk_124.y - obj2F4->obj.pos.y; - z = obj2F4->unk_124.z - obj2F4->obj.pos.z; + x = actor->fwork[4] - actor->obj.pos.x; + y = actor->fwork[5] - actor->obj.pos.y; + z = actor->fwork[6] - actor->obj.pos.z; - if (!((gFrameCount + obj2F4->index) & 7)) { - obj2F4->unk_160 = Math_RadToDeg((Math_Atan2F(x, z))); + if (!((gFrameCount + actor->index) & 7)) { + actor->fwork[19] = Math_RadToDeg((Math_Atan2F(x, z))); z = sqrtf(SQ(x) + SQ(z)); - obj2F4->unk_164 = Math_RadToDeg((Math_Atan2F(y, z))); + actor->fwork[20] = Math_RadToDeg((Math_Atan2F(y, z))); } - x3 = obj2F4->unk_164; + x3 = actor->fwork[20]; - boolTemp2 = func_800C2198(obj2F4, sinY, cosY); + boolTemp2 = func_800C2198(actor, sinY, cosY); if (boolTemp2) { x3 += 40.0f * boolTemp2; @@ -1923,15 +1923,15 @@ void func_800C2244(Object_2F4* obj2F4) { x3 += 360.0f; } - } else if (obj2F4->obj.pos.y < D_80177940 + 50.0f) { + } else if (actor->obj.pos.y < D_80177940 + 50.0f) { if (x3 > 180.0f) { x3 = 0.0f; - obj2F4->unk_0F4.x = 0.0f; + actor->unk_0F4.x = 0.0f; } } - Math_SmoothStepToAngle(&obj2F4->unk_0F4.x, x3, 0.5f, 1.0f, 0.0001f); - y3 = Math_SmoothStepToAngle(&obj2F4->unk_0F4.y, obj2F4->unk_160, 0.5f, 1.0f, 0.0001f) * 30.0f; + Math_SmoothStepToAngle(&actor->unk_0F4.x, x3, 0.5f, 1.0f, 0.0001f); + y3 = Math_SmoothStepToAngle(&actor->unk_0F4.y, actor->fwork[19], 0.5f, 1.0f, 0.0001f) * 30.0f; if (y3 < 0.0f) { y3 *= -1.0f; @@ -1939,11 +1939,11 @@ void func_800C2244(Object_2F4* obj2F4) { y3 = 360.0f - y3; } - Math_SmoothStepToAngle(&obj2F4->obj.rot.z, y3, 0.1f, 3.0f, 0.01f); + Math_SmoothStepToAngle(&actor->obj.rot.z, y3, 0.1f, 3.0f, 0.01f); } - obj2F4->obj.rot.x = -obj2F4->unk_0F4.x; - obj2F4->obj.rot.y = obj2F4->unk_0F4.y; + actor->obj.rot.x = -actor->unk_0F4.x; + actor->obj.rot.y = actor->unk_0F4.y; vec.z = +cosX * 38.0f; vec.y = -sinX * 38.0f; @@ -1951,23 +1951,23 @@ void func_800C2244(Object_2F4* obj2F4) { vec.x = sinY * vec.z; vec.z = cosY * vec.z; - obj2F4->vel.x = vec.x + obj2F4->unk_148; - obj2F4->vel.y = vec.y + obj2F4->unk_14C; - obj2F4->vel.z = vec.z + obj2F4->unk_144; + actor->vel.x = vec.x + actor->fwork[13]; + actor->vel.y = vec.y + actor->fwork[14]; + actor->vel.z = vec.z + actor->fwork[12]; - obj2F4->unk_148 -= obj2F4->unk_148 * 0.1f; - obj2F4->unk_14C -= obj2F4->unk_14C * 0.1f; - obj2F4->unk_144 -= obj2F4->unk_144 * 0.1f; + actor->fwork[13] -= actor->fwork[13] * 0.1f; + actor->fwork[14] -= actor->fwork[14] * 0.1f; + actor->fwork[12] -= actor->fwork[12] * 0.1f; - if ((obj2F4->obj.pos.y < D_80177940 + 40.0f) && (obj2F4->vel.y < 0.0f)) { - obj2F4->obj.pos.y = D_80177940 + 40.0f; - obj2F4->vel.y = 0.0f; + if ((actor->obj.pos.y < D_80177940 + 40.0f) && (actor->vel.y < 0.0f)) { + actor->obj.pos.y = D_80177940 + 40.0f; + actor->vel.y = 0.0f; } - func_8003088C(obj2F4); + func_8003088C(actor); - if (obj2F4->unk_070) { - obj2F4->unk_070--; + if (actor->iwork[8]) { + actor->iwork[8]--; } } @@ -1975,7 +1975,7 @@ void func_800C26C8(void) { s32 i; Vec3f src; Vec3f dest; - Object_2F4* obj2F4; + Actor* actor; if ((D_801778AC != 2) || (D_80177E7C == 0)) { return; @@ -1992,22 +1992,22 @@ void func_800C26C8(void) { src.y = 500.0f; src.z = -10000.0f; - for (i = 0, obj2F4 = &gObjects2F4[10]; i < 5; i++, obj2F4++) { - if (obj2F4->obj.status == 0) { - Object_2F4_Initialize(obj2F4); - obj2F4->obj.status = 2; - obj2F4->obj.id = 197; + for (i = 0, actor = &gActors[10]; i < 5; i++, actor++) { + if (actor->obj.status == 0) { + Actor_Initialize(actor); + actor->obj.status = 2; + actor->obj.id = 197; Matrix_RotateY(gCalcMatrix, M_DTOR * (Rand_ZeroOne() * 360.0f), 0); Matrix_MultVec3fNoTranslate(gCalcMatrix, &src, &dest); - obj2F4->obj.pos.x = dest.x; - obj2F4->obj.pos.y = dest.y; - obj2F4->obj.pos.z = dest.z; - obj2F4->unk_0E4 = i + 10; - obj2F4->unk_0CE = 24; - obj2F4->timer_0C2 = 30; + actor->obj.pos.x = dest.x; + actor->obj.pos.y = dest.y; + actor->obj.pos.z = dest.z; + actor->unk_0E4 = i + 10; + actor->unk_0CE = 24; + actor->timer_0C2 = 30; - Object_SetInfo(&obj2F4->info, obj2F4->obj.id); - obj2F4->info.action = (ObjectFunc) func_800C2244; + Object_SetInfo(&actor->info, actor->obj.id); + actor->info.action = (ObjectFunc) func_800C2244; break; } } diff --git a/src/main/sf_43E80.c b/src/main/sf_43E80.c index b0df5d3f..8c38a472 100644 --- a/src/main/sf_43E80.c +++ b/src/main/sf_43E80.c @@ -1344,7 +1344,7 @@ void func_800481F4(Player* player) { s32 pad[17]; s32 i; s32 temp_v0; - Object_2F4* obj2F4; + Actor* actor; Boss* boss; Object_4C* obj4C; Object_80* obj80; @@ -1405,29 +1405,29 @@ void func_800481F4(Player* player) { } } - for (i = 0, obj2F4 = gObjects2F4; i < ARRAY_COUNT(gObjects2F4); i++, obj2F4++) { - if ((obj2F4->obj.status == 2) && (obj2F4->timer_0C2 == 0)) { - if (obj2F4->obj.id == OBJ_2F4_200) { + for (i = 0, actor = gActors; i < ARRAY_COUNT(gActors); i++, actor++) { + if ((actor->obj.status == 2) && (actor->timer_0C2 == 0)) { + if (actor->obj.id == OBJ_ACTOR_200) { temp_v0 = - func_800A7974(player, obj2F4->info.hitbox, &sp98, obj2F4->obj.pos.x, obj2F4->obj.pos.y, - obj2F4->obj.pos.z, obj2F4->obj.rot.x, obj2F4->obj.rot.y, obj2F4->obj.rot.z, - obj2F4->unk_2E8.x, obj2F4->unk_2E8.y, obj2F4->unk_2E8.z + obj2F4->unk_0F4.z); + func_800A7974(player, actor->info.hitbox, &sp98, actor->obj.pos.x, actor->obj.pos.y, + actor->obj.pos.z, actor->obj.rot.x, actor->obj.rot.y, actor->obj.rot.z, + actor->vwork[29].x, actor->vwork[29].y, actor->vwork[29].z + actor->unk_0F4.z); if (temp_v0 != 0) { - Player_ApplyDamage(player, temp_v0, obj2F4->info.damage); - obj2F4->unk_0D0 = 3; - obj2F4->unk_0D4 = player->num + 1; + Player_ApplyDamage(player, temp_v0, actor->info.damage); + actor->unk_0D0 = 3; + actor->unk_0D4 = player->num + 1; } - } else if (obj2F4->obj.id == OBJ_2F4_207) { - if (func_80046E40(player, obj2F4->info.hitbox, &sp98, obj2F4->obj.pos.x, obj2F4->obj.pos.y, - obj2F4->obj.pos.z, obj2F4->obj.rot.x, obj2F4->obj.rot.y, obj2F4->obj.rot.z, 0.0f, + } else if (actor->obj.id == OBJ_ACTOR_207) { + if (func_80046E40(player, actor->info.hitbox, &sp98, actor->obj.pos.x, actor->obj.pos.y, + actor->obj.pos.z, actor->obj.rot.x, actor->obj.rot.y, actor->obj.rot.z, 0.0f, 0.0f, 0.0f) != 0) { - if (player->pos.x < obj2F4->obj.pos.x) { - player->unk_0D8.x = (obj2F4->vel.z > 5.0f) ? -5.0f : -1.5f; + if (player->pos.x < actor->obj.pos.x) { + player->unk_0D8.x = (actor->vel.z > 5.0f) ? -5.0f : -1.5f; player->unk_1DC = 8; player->timer_1E8 = 15; player->unk_1EC = player->unk_1F0 = 20; } else { - player->unk_0D8.x = (obj2F4->vel.z > 5.0f) ? 5.0f : 1.5f; + player->unk_0D8.x = (actor->vel.z > 5.0f) ? 5.0f : 1.5f; player->unk_1DC = 8; player->timer_1E8 = 15; player->unk_1EC = player->unk_1F0 = -20; @@ -1437,23 +1437,23 @@ void func_800481F4(Player* player) { player->vel.x = 0.0f; player->vel.y = 30.0f; player->pos.x = player->unk_090.x; - obj2F4->unk_0D0 = 3; + actor->unk_0D0 = 3; Player_ApplyDamage(player, 0, 5); player->timer_498 = 1; } - } else if ((obj2F4->obj.id >= 205) && (obj2F4->obj.id < 214)) { - if (func_80046E40(player, obj2F4->info.hitbox, &sp98, obj2F4->unk_178 + obj2F4->obj.pos.x, - obj2F4->unk_134 + obj2F4->obj.pos.y + 25.0f, obj2F4->obj.pos.z, obj2F4->unk_188, - obj2F4->unk_17C, obj2F4->obj.rot.z, 0.0f, 0.0f, 0.0f) != 0) { + } else if ((actor->obj.id >= 205) && (actor->obj.id < 214)) { + if (func_80046E40(player, actor->info.hitbox, &sp98, actor->fwork[25] + actor->obj.pos.x, + actor->fwork[8] + actor->obj.pos.y + 25.0f, actor->obj.pos.z, actor->fwork[29], + actor->fwork[26], actor->obj.rot.z, 0.0f, 0.0f, 0.0f) != 0) { Math_SmoothStepToF(&player->unk_0D0, 15.0f, 0.3f, 3.5f, 0.001f); Math_SmoothStepToF(&player->unk_08C, 0, 0.3f, 3.5f, 0.001f); - if (player->pos.x < (obj2F4->unk_170 + obj2F4->obj.pos.x)) { - player->unk_0D8.x = (obj2F4->vel.z > 5.0f) ? -5.0f : -1.5f; + if (player->pos.x < (actor->fwork[23] + actor->obj.pos.x)) { + player->unk_0D8.x = (actor->vel.z > 5.0f) ? -5.0f : -1.5f; player->unk_1DC = 8; player->timer_1E8 = 15; player->unk_1EC = player->unk_1F0 = 20; } else { - player->unk_0D8.x = (obj2F4->vel.z > 5.0f) ? 5.0f : 1.5f; + player->unk_0D8.x = (actor->vel.z > 5.0f) ? 5.0f : 1.5f; player->unk_1DC = 8; player->timer_1E8 = 15; player->unk_1EC = player->unk_1F0 = -20; @@ -1461,29 +1461,29 @@ void func_800481F4(Player* player) { player->vel.x = 0.0f; player->vel.y = 30.0f; player->pos.x = player->unk_090.x; - obj2F4->unk_0D0 = 3; - if (obj2F4->info.damage != 0) { + actor->unk_0D0 = 3; + if (actor->info.damage != 0) { Player_ApplyDamage(player, 0, 20); } else { - obj2F4->unk_0D0 = -1; + actor->unk_0D0 = -1; } } } else { - temp_v0 = func_800A7974(player, obj2F4->info.hitbox, &sp98, obj2F4->obj.pos.x, obj2F4->obj.pos.y, - obj2F4->obj.pos.z, obj2F4->obj.rot.x, obj2F4->obj.rot.y, obj2F4->obj.rot.z, + temp_v0 = func_800A7974(player, actor->info.hitbox, &sp98, actor->obj.pos.x, actor->obj.pos.y, + actor->obj.pos.z, actor->obj.rot.x, actor->obj.rot.y, actor->obj.rot.z, 0.0f, 0.0f, 0.0f); if (temp_v0 != 0) { - obj2F4->unk_0D0 = 3; - if ((obj2F4->obj.id == OBJ_2F4_225) || (obj2F4->obj.id == OBJ_2F4_190)) { - obj2F4->unk_0D0 = -1; + actor->unk_0D0 = 3; + if ((actor->obj.id == OBJ_ACTOR_225) || (actor->obj.id == OBJ_ACTOR_190)) { + actor->unk_0D0 = -1; } - if (obj2F4->info.damage) { - Player_ApplyDamage(player, temp_v0, obj2F4->info.damage); - if (obj2F4->obj.id == OBJ_2F4_225) { + if (actor->info.damage) { + Player_ApplyDamage(player, temp_v0, actor->info.damage); + if (actor->obj.id == OBJ_ACTOR_225) { player->unk_0D8.y = 0.0f; } } else { - obj2F4->unk_0D0 = -1; + actor->unk_0D0 = -1; } } } diff --git a/src/main/sf_hud.c b/src/main/sf_hud.c index 532ef126..20692e06 100644 --- a/src/main/sf_hud.c +++ b/src/main/sf_hud.c @@ -705,26 +705,27 @@ void func_80089E98(s32 arg0) { #pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_hud/func_8008A4DC.s") s32 func_8008AC54(s32 arg0) { - Object_2F4* obj2F4; + Actor* actor; s32 i; s32 ret = 0; - for (i = 0, obj2F4 = gObjects2F4; i < 60; i++, obj2F4++) { + for (i = 0, actor = gActors; i < 60; i++, actor++) { switch (arg0) { case 0: - if ((obj2F4->obj.status == 2) && (obj2F4->obj.id == OBJ_2F4_190)) { + if ((actor->obj.status == 2) && (actor->obj.id == OBJ_ACTOR_190)) { ret++; } break; case 1: - if ((obj2F4->obj.status == 2) && (obj2F4->obj.id == OBJ_2F4_191)) { + if ((actor->obj.status == 2) && (actor->obj.id == OBJ_ACTOR_191)) { ret++; } break; case 2: - if (((obj2F4->obj.id == OBJ_2F4_190) || (obj2F4->obj.id == OBJ_2F4_191)) && (obj2F4->obj.status == 2)) { + if (((actor->obj.id == OBJ_ACTOR_190) || (actor->obj.id == OBJ_ACTOR_191)) && + (actor->obj.status == 2)) { ret++; } break; @@ -1622,12 +1623,12 @@ void func_800907C4(Boss* boss) { func_8008FFF0(boss, D_8015F928); } -bool func_8009092C(Object_2F4* obj2F4) { +bool func_8009092C(Actor* actor) { bool var_s5 = false; Boss* boss; s32 i = 0; - if (obj2F4->unk_0E6 != 0) { + if (actor->unk_0E6 != 0) { return true; } @@ -1636,143 +1637,142 @@ bool func_8009092C(Object_2F4* obj2F4) { for (i = 1; i < 4; i++, boss++) { if (boss->obj.status == 2) { var_s5 = true; - if (obj2F4->unk_0E6 == 0) { - obj2F4->unk_0E6 = i; + if (actor->unk_0E6 == 0) { + actor->unk_0E6 = i; } else if (Rand_ZeroOne() > 0.4f) { - obj2F4->unk_0E6 = i; + actor->unk_0E6 = i; } - obj2F4->unk_0B8 = 0; + actor->unk_0B8 = 0; } } return var_s5; } -bool func_80090A00(Object_2F4* obj2F4) { - switch (obj2F4->unk_064) { +bool func_80090A00(Actor* actor) { + switch (actor->iwork[5]) { case 0: - obj2F4->unk_134 = 0.0f; - obj2F4->unk_130 = 360.0f; - obj2F4->timer_0BC = 8; - obj2F4->unk_0F4.y = 100.0f; - obj2F4->unk_0F4.x = 300.0f; - obj2F4->unk_060 = 1; - obj2F4->unk_064 = 1; + actor->fwork[8] = 0.0f; + actor->fwork[7] = 360.0f; + actor->timer_0BC = 8; + actor->unk_0F4.y = 100.0f; + actor->unk_0F4.x = 300.0f; + actor->iwork[4] = 1; + actor->iwork[5] = 1; case 1: - if (obj2F4->timer_0BC == 0.0f) { - obj2F4->unk_118 = 20.0f; - obj2F4->unk_120 = 3.6f; - obj2F4->unk_058 = 0; - obj2F4->unk_05C = 36; - obj2F4->unk_064 = 2; + if (actor->timer_0BC == 0.0f) { + actor->fwork[1] = 20.0f; + actor->fwork[3] = 3.6f; + actor->iwork[2] = 0; + actor->iwork[3] = 36; + actor->iwork[5] = 2; } else { - obj2F4->obj.pos.y -= 8.0f; + actor->obj.pos.y -= 8.0f; break; } case 2: - 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++; - if (obj2F4->unk_05C == obj2F4->unk_058) { - obj2F4->unk_064 = 3; - obj2F4->unk_05C = 40; - obj2F4->unk_058 = 0; - } else if (obj2F4->unk_058 == 6) { - obj2F4->unk_054 = 1; + actor->fwork[4] = gBosses[0].obj.pos.x + 1000.0f; + actor->fwork[5] = 300.0f; + actor->fwork[6] = actor->obj.pos.z - 10000.0f; + actor->iwork[2]++; + if (actor->iwork[2] == actor->iwork[3]) { + actor->iwork[5] = 3; + actor->iwork[3] = 40; + actor->iwork[2] = 0; + } else if (actor->iwork[2] == 6) { + actor->iwork[1] = 1; } break; case 3: - obj2F4->unk_124.x = gBosses[0].obj.pos.x - 1000.0f; - obj2F4->unk_124.y = 400.0f; - obj2F4->unk_124.z = gBosses[0].obj.pos.z; - obj2F4->unk_058++; - if (obj2F4->unk_05C == obj2F4->unk_058) { - obj2F4->unk_064 = 4; - } else if (obj2F4->unk_058 == 20) { - obj2F4->unk_118 = 30.0f; + actor->fwork[4] = gBosses[0].obj.pos.x - 1000.0f; + actor->fwork[5] = 400.0f; + actor->fwork[6] = gBosses[0].obj.pos.z; + actor->iwork[2]++; + if (actor->iwork[2] == actor->iwork[3]) { + actor->iwork[5] = 4; + } else if (actor->iwork[2] == 20) { + actor->fwork[1] = 30.0f; } break; case 4: - obj2F4->unk_124.z = gPlayer[0].unk_138; - obj2F4->unk_124.y = 100.0f; - obj2F4->unk_124.x = gPlayer[0].pos.x; - if ((fabsf(obj2F4->obj.pos.x - gPlayer[0].pos.x) < 300.0f) && - (fabsf(obj2F4->obj.pos.z - gPlayer[0].unk_138) < 300.0f)) { - obj2F4->unk_064 = 5; - obj2F4->unk_05C = 20; - obj2F4->unk_058 = 0; + actor->fwork[6] = gPlayer[0].unk_138; + actor->fwork[5] = 100.0f; + actor->fwork[4] = gPlayer[0].pos.x; + if ((fabsf(actor->obj.pos.x - gPlayer[0].pos.x) < 300.0f) && + (fabsf(actor->obj.pos.z - gPlayer[0].unk_138) < 300.0f)) { + actor->iwork[5] = 5; + actor->iwork[3] = 20; + actor->iwork[2] = 0; } break; case 5: - obj2F4->unk_124.z = gPlayer[0].unk_138 + 1000.0f; - obj2F4->unk_124.y = 1000.0f; - obj2F4->unk_124.x = gPlayer[0].pos.x - 1000.0f; - obj2F4->unk_058++; - if (obj2F4->unk_05C == obj2F4->unk_058) { - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); + actor->fwork[6] = gPlayer[0].unk_138 + 1000.0f; + actor->fwork[5] = 1000.0f; + actor->fwork[4] = gPlayer[0].pos.x - 1000.0f; + actor->iwork[2]++; + if (actor->iwork[2] == actor->iwork[3]) { + Object_Kill(&actor->obj, &actor->sfxPos); } break; } return false; } -bool func_80090CCC(Object_2F4* obj2F4) { +bool func_80090CCC(Actor* actor) { bool ret = false; - if (func_8009092C(obj2F4)) { - 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; + if (func_8009092C(actor)) { + actor->fwork[6] = gBosses[actor->unk_0E6].obj.pos.z; + actor->fwork[5] = gBosses[actor->unk_0E6].obj.pos.y; + actor->fwork[4] = gBosses[actor->unk_0E6].obj.pos.x; } else { - 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; + actor->fwork[6] = gBosses[0].obj.pos.z; + actor->fwork[5] = gBosses[0].obj.pos.y; + actor->fwork[4] = gBosses[0].obj.pos.x; } - if ((fabsf(obj2F4->obj.pos.x - obj2F4->unk_124.x) < 2000.0f) && - (fabsf(obj2F4->obj.pos.z - obj2F4->unk_124.z) < 2000.0f)) { - obj2F4->unk_068++; - if (obj2F4->unk_068 >= 9) { - obj2F4->unk_050 = 1; - obj2F4->unk_068 = 0; + if ((fabsf(actor->obj.pos.x - actor->fwork[4]) < 2000.0f) && + (fabsf(actor->obj.pos.z - actor->fwork[6]) < 2000.0f)) { + actor->iwork[6]++; + if (actor->iwork[6] >= 9) { + actor->iwork[0] = 1; + actor->iwork[6] = 0; } } - if ((fabsf(obj2F4->obj.pos.x - obj2F4->unk_124.x) < 700.0f) && - (fabsf(obj2F4->obj.pos.x - obj2F4->unk_124.x) < 700.0f)) { - obj2F4->unk_0B8 = 1; - obj2F4->unk_068 = 0; + if ((fabsf(actor->obj.pos.x - actor->fwork[4]) < 700.0f) && (fabsf(actor->obj.pos.x - actor->fwork[4]) < 700.0f)) { + actor->unk_0B8 = 1; + actor->iwork[6] = 0; ret = true; } - if (obj2F4->timer_0BE == 0) { - obj2F4->timer_0BE = (s32) (Rand_ZeroOne() * 200.0f) + 200; - obj2F4->unk_13C = 30.0f; + if (actor->timer_0BE == 0) { + actor->timer_0BE = (s32) (Rand_ZeroOne() * 200.0f) + 200; + actor->fwork[10] = 30.0f; } - if (gBosses[obj2F4->unk_0E6].obj.status == 0) { - obj2F4->unk_0B8 = 1; - obj2F4->unk_0E6 = 0; - obj2F4->unk_068 = 0; + if (gBosses[actor->unk_0E6].obj.status == 0) { + actor->unk_0B8 = 1; + actor->unk_0E6 = 0; + actor->iwork[6] = 0; ret = true; } return ret; } -s32 func_80090E8C(Object_2F4* obj2F4) { +s32 func_80090E8C(Actor* actor) { f32 x; f32 y; f32 z; f32 var_fv1_2; - if (obj2F4->timer_0BC == 0) { + if (actor->timer_0BC == 0) { if (gLevelType == LEVELTYPE_SPACE) { x = (Rand_ZeroOne() - 0.5f) * 20000.0f; y = (Rand_ZeroOne() - 0.5f) * 5000.0f; @@ -1783,96 +1783,95 @@ s32 func_80090E8C(Object_2F4* obj2F4) { z = (Rand_ZeroOne() - 0.5f) * 10000.0f; } - if ((fabsf(obj2F4->obj.pos.x - x) > 2000.0f) && (fabsf(obj2F4->obj.pos.z - z) > 2000.0f)) { - obj2F4->unk_124.x = x; - obj2F4->unk_124.y = y; - obj2F4->unk_124.z = z; - obj2F4->timer_0BC = (s32) (Rand_ZeroOne() * 20.0f) + 10; + if ((fabsf(actor->obj.pos.x - x) > 2000.0f) && (fabsf(actor->obj.pos.z - z) > 2000.0f)) { + actor->fwork[4] = x; + actor->fwork[5] = y; + actor->fwork[6] = z; + actor->timer_0BC = (s32) (Rand_ZeroOne() * 20.0f) + 10; } } - if (obj2F4->unk_0E4 == 1) { + if (actor->unk_0E4 == 1) { var_fv1_2 = 3000.0f; } else { var_fv1_2 = 5000.0f; } - 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; + if ((var_fv1_2 < fabsf(actor->obj.pos.x - gBosses[0].obj.pos.x)) && + (var_fv1_2 < fabsf(actor->obj.pos.z - gBosses[0].obj.pos.z))) { + actor->unk_0B8 = 0; } - if (obj2F4->timer_0BE == 0) { - obj2F4->timer_0BE = (s32) (Rand_ZeroOne() * 200.0f) + 200; - obj2F4->unk_13C = 30.0f; + if (actor->timer_0BE == 0) { + actor->timer_0BE = (s32) (Rand_ZeroOne() * 200.0f) + 200; + actor->fwork[10] = 30.0f; } return false; } -bool func_800910C0(Object_2F4* obj2F4) { +bool func_800910C0(Actor* actor) { f32 var_fv1; - if (obj2F4->timer_0BC == 0) { - obj2F4->unk_2DC.x = (Rand_ZeroOne() - 0.5f) * 2000.0f; - obj2F4->unk_2DC.y = (Rand_ZeroOne() * 1000.0f) + 200.0f; - obj2F4->unk_2DC.z = (Rand_ZeroOne() - 0.5f) * 2000.0f; - obj2F4->timer_0BC = (s32) (Rand_ZeroOne() * 20.0f) + 10; + if (actor->timer_0BC == 0) { + actor->vwork[28].x = (Rand_ZeroOne() - 0.5f) * 2000.0f; + actor->vwork[28].y = (Rand_ZeroOne() * 1000.0f) + 200.0f; + actor->vwork[28].z = (Rand_ZeroOne() - 0.5f) * 2000.0f; + actor->timer_0BC = (s32) (Rand_ZeroOne() * 20.0f) + 10; } - 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; + actor->fwork[4] = gBosses[0].obj.pos.x + (*actor).vwork[28].x; + actor->fwork[5] = (*actor).vwork[28].y; + actor->fwork[6] = gBosses[0].obj.pos.z + (*actor).vwork[28].z; - if (obj2F4->unk_0E4 == 1) { + if (actor->unk_0E4 == 1) { var_fv1 = 1500.0f; } else { var_fv1 = 3000.0f; } - if ((var_fv1 < fabsf(obj2F4->obj.pos.x - obj2F4->unk_124.x)) && - (var_fv1 < fabsf(obj2F4->obj.pos.z - obj2F4->unk_124.z))) { - obj2F4->unk_0B8 = 0; + if ((var_fv1 < fabsf(actor->obj.pos.x - actor->fwork[4])) && + (var_fv1 < fabsf(actor->obj.pos.z - actor->fwork[6]))) { + actor->unk_0B8 = 0; } - if (obj2F4->timer_0BE == 0) { - obj2F4->timer_0BE = (s32) (Rand_ZeroOne() * 200.0f) + 200; - obj2F4->unk_13C = 30.0f; + if (actor->timer_0BE == 0) { + actor->timer_0BE = (s32) (Rand_ZeroOne() * 200.0f) + 200; + actor->fwork[10] = 30.0f; } return false; } -void func_80091254(Object_2F4* obj2F4) { +void func_80091254(Actor* actor) { if (gLevelMode == LEVELMODE_ALL_RANGE) { - func_80090E8C(obj2F4); + func_80090E8C(actor); } else { - func_800910C0(obj2F4); + func_800910C0(actor); } } -bool func_80091298(Object_2F4* obj2F4) { - obj2F4->unk_118 = gPlayer[0].unk_0D0 + 10.0f; - obj2F4->unk_120 = 3.6f; - obj2F4->unk_124.x = gPlayer[0].pos.x + ((f32) (obj2F4->unk_0E4 - 2) * 700.0f); - obj2F4->unk_124.y = gPlayer[0].pos.y; - obj2F4->unk_124.z = gPlayer[0].unk_138; +bool func_80091298(Actor* actor) { + actor->fwork[1] = gPlayer[0].unk_0D0 + 10.0f; + actor->fwork[3] = 3.6f; + actor->fwork[4] = gPlayer[0].pos.x + ((f32) (actor->unk_0E4 - 2) * 700.0f); + actor->fwork[5] = gPlayer[0].pos.y; + actor->fwork[6] = gPlayer[0].unk_138; - if ((fabsf(obj2F4->obj.pos.x - obj2F4->unk_124.x) < 700.0f) || - (fabsf(obj2F4->obj.pos.z - obj2F4->unk_124.z) < 700.0f)) { - obj2F4->unk_118 = gPlayer[0].unk_0D0 - 10.0f; - obj2F4->unk_120 = 1.2f; + if ((fabsf(actor->obj.pos.x - actor->fwork[4]) < 700.0f) || (fabsf(actor->obj.pos.z - actor->fwork[6]) < 700.0f)) { + actor->fwork[1] = gPlayer[0].unk_0D0 - 10.0f; + actor->fwork[3] = 1.2f; } return false; } -bool func_80091368(Object_2F4* obj2F4) { - switch (obj2F4->unk_064) { +bool func_80091368(Actor* actor) { + switch (actor->iwork[5]) { case 0: - obj2F4->unk_124.y = 20000.0f; - obj2F4->unk_054 = 1; - obj2F4->unk_064 = 1; - gTeamShields[obj2F4->unk_0E4] = 1; + actor->fwork[5] = 20000.0f; + actor->iwork[1] = 1; + actor->iwork[5] = 1; + gTeamShields[actor->unk_0E4] = 1; - switch (obj2F4->unk_0E4) { + switch (actor->unk_0E4) { case 1: func_800BA808(gMsg_ID_20220, RCID_FALCO); break; @@ -1885,67 +1884,67 @@ bool func_80091368(Object_2F4* obj2F4) { func_800BA808(gMsg_ID_20222, RCID_SLIPPY); break; } - gTeamShields[obj2F4->unk_0E4] = -1; + gTeamShields[actor->unk_0E4] = -1; break; case 1: - if (obj2F4->unk_188 < 2.0f) { - obj2F4->unk_188 = 2.0f; + if (actor->fwork[29] < 2.0f) { + actor->fwork[29] = 2.0f; } - if (obj2F4->timer_0BC == 0) { - obj2F4->timer_0BC = (s32) (Rand_ZeroOne() * 20.0f) + 30; - obj2F4->unk_130 = 360.0f; - obj2F4->unk_134 = 0.0f; + if (actor->timer_0BC == 0) { + actor->timer_0BC = (s32) (Rand_ZeroOne() * 20.0f) + 30; + actor->fwork[7] = 360.0f; + actor->fwork[8] = 0.0f; } - if (obj2F4->obj.pos.y > 3000.0f) { - Object_Kill(&obj2F4->obj, &obj2F4->sfxPos); + if (actor->obj.pos.y > 3000.0f) { + Object_Kill(&actor->obj, &actor->sfxPos); } break; } return false; } -void func_800914FC(Object_2F4* obj2F4) { - switch (obj2F4->unk_0B8) { +void func_800914FC(Actor* actor) { + switch (actor->unk_0B8) { case 0: - if (!func_80090CCC(obj2F4)) { + if (!func_80090CCC(actor)) { break; } case 1: - func_80091254(obj2F4); + func_80091254(actor); break; case 2: - func_80091298(obj2F4); + func_80091298(actor); break; case 3: - func_80091368(obj2F4); + func_80091368(actor); break; case 7: - func_80090A00(obj2F4); + func_80090A00(actor); break; } - if ((gTeamShields[obj2F4->unk_0E4] <= 0) && (obj2F4->unk_0B8 != 3)) { - obj2F4->unk_064 = 0; - obj2F4->unk_0B8 = 3; + if ((gTeamShields[actor->unk_0E4] <= 0) && (actor->unk_0B8 != 3)) { + actor->iwork[5] = 0; + actor->unk_0B8 = 3; } if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_7) { - if ((obj2F4->unk_0B8 != 2) && (obj2F4->unk_0B8 != 3)) { - obj2F4->unk_060 = 1; - obj2F4->unk_0B8 = 2; + if ((actor->unk_0B8 != 2) && (actor->unk_0B8 != 3)) { + actor->iwork[4] = 1; + actor->unk_0B8 = 2; } } } #pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_hud/func_800915FC.s") -bool func_80091864(Object_2F4* obj2F4) { +bool func_80091864(Actor* actor) { f32 sp44; f32 sp40; f32 sp3C; @@ -1955,25 +1954,25 @@ bool func_80091864(Object_2F4* obj2F4) { f32 sp2C; f32 sp28; - x = obj2F4->unk_124.x - obj2F4->obj.pos.x; - y = obj2F4->unk_124.y - obj2F4->obj.pos.y; - z = obj2F4->unk_124.z - obj2F4->obj.pos.z; + x = actor->fwork[4] - actor->obj.pos.x; + y = actor->fwork[5] - actor->obj.pos.y; + z = actor->fwork[6] - actor->obj.pos.z; sp40 = Math_RadToDeg(Math_Atan2F(x, z)); sp44 = Math_RadToDeg(Math_Atan2F(y, sqrtf(SQ(x) + SQ(z)))); - if ((func_800915FC(obj2F4) != 0) && (obj2F4->unk_060 == 0)) { + if ((func_800915FC(actor) != 0) && (actor->iwork[4] == 0)) { sp44 += 40.0f; if (sp44 >= 360.0f) { sp44 -= 360.0f; - } else if ((obj2F4->obj.pos.y < (D_80177940 + 50.0f)) && (gLevelType == LEVELTYPE_PLANET) && (sp44 > 180.0f)) { + } else if ((actor->obj.pos.y < (D_80177940 + 50.0f)) && (gLevelType == LEVELTYPE_PLANET) && (sp44 > 180.0f)) { sp44 = 0.0f; } - obj2F4->unk_050 = 0; + actor->iwork[0] = 0; } - sp3C = Math_SmoothStepToAngle(&obj2F4->unk_0F4.y, sp40, 0.5f, obj2F4->unk_11C, 0.001f) * 30.0f; - Math_SmoothStepToAngle(&obj2F4->unk_0F4.x, sp44, 0.5f, obj2F4->unk_11C, 0.0001f); + sp3C = Math_SmoothStepToAngle(&actor->unk_0F4.y, sp40, 0.5f, actor->fwork[2], 0.001f) * 30.0f; + Math_SmoothStepToAngle(&actor->unk_0F4.x, sp44, 0.5f, actor->fwork[2], 0.0001f); sp2C = sp28 = 0.0f; if (sp3C < 0.0f) { @@ -1982,10 +1981,10 @@ bool func_80091864(Object_2F4* obj2F4) { sp28 = sp3C; } - Math_SmoothStepToF(&obj2F4->unk_150, sp2C, 0.2f, 30.0f, 0.00f); - Math_SmoothStepToF(&obj2F4->unk_17C, -sp2C, 0.2f, 30.0f, 0.00f); - Math_SmoothStepToF(&obj2F4->unk_154, sp28, 0.2f, 30.0f, 0.00f); - Math_SmoothStepToF(&obj2F4->unk_180, -sp28, 0.2f, 30.0f, 0.00f); + Math_SmoothStepToF(&actor->fwork[15], sp2C, 0.2f, 30.0f, 0.00f); + Math_SmoothStepToF(&actor->fwork[26], -sp2C, 0.2f, 30.0f, 0.00f); + Math_SmoothStepToF(&actor->fwork[16], sp28, 0.2f, 30.0f, 0.00f); + Math_SmoothStepToF(&actor->fwork[27], -sp28, 0.2f, 30.0f, 0.00f); if (sp3C < 0.0f) { sp3C *= -1.0f; @@ -1993,101 +1992,101 @@ bool func_80091864(Object_2F4* obj2F4) { sp3C = 360.0f - sp3C; } - Math_SmoothStepToF(&obj2F4->unk_130, obj2F4->unk_134, 0.2f, 30.0f, 0.0001f); + Math_SmoothStepToF(&actor->fwork[7], actor->fwork[8], 0.2f, 30.0f, 0.0001f); - if ((obj2F4->unk_130 > 0.01f) && (obj2F4->unk_130 < 359.9f)) { - Math_SmoothStepToAngle(&obj2F4->obj.rot.z, obj2F4->unk_130, 0.2f, 100.0f, 0.01f); + if ((actor->fwork[7] > 0.01f) && (actor->fwork[7] < 359.9f)) { + Math_SmoothStepToAngle(&actor->obj.rot.z, actor->fwork[7], 0.2f, 100.0f, 0.01f); } else { - Math_SmoothStepToAngle(&obj2F4->obj.rot.z, sp3C, 0.1f, 3.0f, 0.01f); + Math_SmoothStepToAngle(&actor->obj.rot.z, sp3C, 0.1f, 3.0f, 0.01f); } return false; } -bool func_80091B90(Object_2F4* obj2F4) { +bool func_80091B90(Actor* actor) { Vec3f vec; - obj2F4->obj.rot.x = -obj2F4->unk_0F4.x; - obj2F4->obj.rot.y = obj2F4->unk_0F4.y; + actor->obj.rot.x = -actor->unk_0F4.x; + actor->obj.rot.y = actor->unk_0F4.y; - Math_SmoothStepToF(&obj2F4->unk_114, obj2F4->unk_118, 0.2f, 1.0f, 0.0f); - Math_SmoothStepToF(&obj2F4->unk_11C, obj2F4->unk_120, 1.0f, 1.0f, 0.0f); + Math_SmoothStepToF(&actor->fwork[0], actor->fwork[1], 0.2f, 1.0f, 0.0f); + Math_SmoothStepToF(&actor->fwork[2], actor->fwork[3], 1.0f, 1.0f, 0.0f); - Math_Vec3fFromAngles(&vec, obj2F4->obj.rot.x, obj2F4->obj.rot.y, obj2F4->unk_138 + obj2F4->unk_114); + Math_Vec3fFromAngles(&vec, actor->obj.rot.x, actor->obj.rot.y, actor->fwork[0] + actor->fwork[9]); - obj2F4->vel.y = obj2F4->unk_14C + vec.y; - obj2F4->vel.x = obj2F4->unk_148 + vec.x; - obj2F4->vel.z = obj2F4->unk_144 + vec.z; + actor->vel.y = actor->fwork[14] + vec.y; + actor->vel.x = actor->fwork[13] + vec.x; + actor->vel.z = actor->fwork[12] + vec.z; - obj2F4->unk_148 -= obj2F4->unk_148 * 0.1f; - obj2F4->unk_14C -= obj2F4->unk_14C * 0.1f; - obj2F4->unk_144 -= obj2F4->unk_144 * 0.1f; + actor->fwork[13] -= actor->fwork[13] * 0.1f; + actor->fwork[14] -= actor->fwork[14] * 0.1f; + actor->fwork[12] -= actor->fwork[12] * 0.1f; - if ((obj2F4->obj.pos.y < D_80177940 + 40.0f) && (obj2F4->vel.y < 0.0f) && (gLevelType == LEVELTYPE_PLANET)) { - obj2F4->obj.pos.y = D_80177940 + 40.0f; - obj2F4->vel.y = 0.0f; + if ((actor->obj.pos.y < D_80177940 + 40.0f) && (actor->vel.y < 0.0f) && (gLevelType == LEVELTYPE_PLANET)) { + actor->obj.pos.y = D_80177940 + 40.0f; + actor->vel.y = 0.0f; } - obj2F4->vel.z -= D_80177D08; + actor->vel.z -= D_80177D08; return false; } -bool func_80091CF8(Object_2F4* obj2F4) { - if (obj2F4->unk_054 != 0) { - if (obj2F4->unk_13C < 0.1f) { - obj2F4->unk_13C = 20.0f; - Audio_PlaySfx(0x09000002, &obj2F4->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); - obj2F4->unk_188 = 5.0f; +bool func_80091CF8(Actor* actor) { + if (actor->iwork[1] != 0) { + if (actor->fwork[10] < 0.1f) { + actor->fwork[10] = 20.0f; + Audio_PlaySfx(0x09000002, &actor->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + actor->fwork[29] = 5.0f; } - obj2F4->unk_054 = 0; + actor->iwork[1] = 0; } - Math_SmoothStepToF(&obj2F4->unk_13C, 0.0f, 0.1f, 0.2f, 0.0f); - Math_SmoothStepToF(&obj2F4->unk_138, obj2F4->unk_13C, 0.1f, 2.0f, 0.0f); + Math_SmoothStepToF(&actor->fwork[10], 0.0f, 0.1f, 0.2f, 0.0f); + Math_SmoothStepToF(&actor->fwork[9], actor->fwork[10], 0.1f, 2.0f, 0.0f); - if (obj2F4->unk_13C < 0.1f) { - obj2F4->unk_07C = 1; + if (actor->fwork[10] < 0.1f) { + actor->iwork[11] = 1; } return false; } -bool func_80091DF4(Object_2F4* obj2F4) { +bool func_80091DF4(Actor* actor) { Vec3f sp44; Vec3f sp38; - if ((obj2F4->unk_050 != 0) && (D_80177848 > 70)) { - obj2F4->unk_050 = 0; + if ((actor->iwork[0] != 0) && (D_80177848 > 70)) { + actor->iwork[0] = 0; sp44.x = 0.0f; sp44.y = 0.0f; sp44.z = 100.0f; Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp44, &sp38); - func_8006EEFC(obj2F4->unk_0E4, obj2F4->obj.pos.x + (sp38.x * 1.5), obj2F4->obj.pos.y + (sp38.y * 1.5), - obj2F4->obj.pos.z + (sp38.z * 1.5), sp38.x, sp38.y, sp38.z, obj2F4->obj.rot.x, obj2F4->obj.rot.y, - obj2F4->obj.rot.z); + func_8006EEFC(actor->unk_0E4, actor->obj.pos.x + (sp38.x * 1.5), actor->obj.pos.y + (sp38.y * 1.5), + actor->obj.pos.z + (sp38.z * 1.5), sp38.x, sp38.y, sp38.z, actor->obj.rot.x, actor->obj.rot.y, + actor->obj.rot.z); } return false; } -bool func_80091F00(Object_2F4* obj2F4) { - u8 temp_v0 = obj2F4->unk_0D0; +bool func_80091F00(Actor* actor) { + u8 temp_v0 = actor->unk_0D0; Vec3f sp40; Vec3f sp34; - obj2F4->unk_0D0 = 0; + actor->unk_0D0 = 0; - if ((obj2F4->unk_0B8 == 3) || (temp_v0 == 2)) { + if ((actor->unk_0B8 == 3) || (temp_v0 == 2)) { return false; } - obj2F4->unk_0CE -= obj2F4->unk_0D6; - if (obj2F4->unk_0CE <= 0) { - obj2F4->unk_0CE = -1; + actor->unk_0CE -= actor->unk_0D6; + if (actor->unk_0CE <= 0) { + actor->unk_0CE = -1; } - obj2F4->timer_0C6 = 20; + actor->timer_0C6 = 20; - Audio_PlaySfx(0x2903300E, &obj2F4->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); - func_8007D10C(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, 1.5f); - Matrix_RotateY(gCalcMatrix, obj2F4->unk_0F4.y * M_DTOR, 0); + Audio_PlaySfx(0x2903300E, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + func_8007D10C(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 1.5f); + Matrix_RotateY(gCalcMatrix, actor->unk_0F4.y * M_DTOR, 0); if (Rand_ZeroOne() < 0.5f) { sp40.x = -20.0f; @@ -2100,18 +2099,18 @@ bool func_80091F00(Object_2F4* obj2F4) { Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp40, &sp34); - obj2F4->unk_148 = sp34.x; - obj2F4->unk_14C = sp34.y; - obj2F4->unk_144 = sp34.z; + actor->fwork[13] = sp34.x; + actor->fwork[14] = sp34.y; + actor->fwork[12] = sp34.z; - gTeamShields[obj2F4->unk_0E4] = obj2F4->unk_0CE; + gTeamShields[actor->unk_0E4] = actor->unk_0CE; if (gRadioState != 0) { return false; } - if ((obj2F4->unk_0D0 == 3) && (obj2F4->unk_0D4 == 1)) { - switch (obj2F4->unk_0E4) { + if ((actor->unk_0D0 == 3) && (actor->unk_0D4 == 1)) { + switch (actor->unk_0E4) { case 1: func_800BA808(gMsg_ID_20210, RCID_FALCO); break; @@ -2124,8 +2123,8 @@ bool func_80091F00(Object_2F4* obj2F4) { } } - if ((obj2F4->unk_0D0 != 3) && (obj2F4->unk_0D4 == 1)) { - switch (obj2F4->unk_0E4) { + if ((actor->unk_0D0 != 3) && (actor->unk_0D4 == 1)) { + switch (actor->unk_0E4) { case 1: func_800BA808(gMsg_ID_20060, RCID_FALCO); break; @@ -2138,8 +2137,8 @@ bool func_80091F00(Object_2F4* obj2F4) { } } - if ((obj2F4->unk_0D4 == 2) || (obj2F4->unk_0D4 == 100)) { - switch (obj2F4->unk_0E4) { + if ((actor->unk_0D4 == 2) || (actor->unk_0D4 == 100)) { + switch (actor->unk_0E4) { case 1: func_800BA808(gMsg_ID_20030, RCID_FALCO); break; @@ -2151,47 +2150,47 @@ bool func_80091F00(Object_2F4* obj2F4) { break; } } - obj2F4->unk_070 = 20; + actor->iwork[8] = 20; return false; } -void func_80092244(Object_2F4* obj2F4) { - gUnkEntities28[obj2F4->index].unk_00 = 1; - gUnkEntities28[obj2F4->index].unk_02 = obj2F4->unk_0E4; - gUnkEntities28[obj2F4->index].pos.x = obj2F4->obj.pos.x; - gUnkEntities28[obj2F4->index].pos.y = obj2F4->obj.pos.y; - gUnkEntities28[obj2F4->index].pos.z = obj2F4->obj.pos.z; - gUnkEntities28[obj2F4->index].unk_10 = obj2F4->unk_0F4.y + 180.0f; +void func_80092244(Actor* actor) { + gUnkEntities28[actor->index].unk_00 = 1; + gUnkEntities28[actor->index].unk_02 = actor->unk_0E4; + gUnkEntities28[actor->index].pos.x = actor->obj.pos.x; + gUnkEntities28[actor->index].pos.y = actor->obj.pos.y; + gUnkEntities28[actor->index].pos.z = actor->obj.pos.z; + gUnkEntities28[actor->index].unk_10 = actor->unk_0F4.y + 180.0f; } -void func_800922F4(Object_2F4* obj2F4) { +void func_800922F4(Actor* actor) { s32 temp; - if ((gTeamShields[obj2F4->unk_0E4] < 64) && (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_7)) { + if ((gTeamShields[actor->unk_0E4] < 64) && (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_7)) { temp = 7; - if (gTeamShields[obj2F4->unk_0E4] > 16) { + if (gTeamShields[actor->unk_0E4] > 16) { temp = 15; } - if (gTeamShields[obj2F4->unk_0E4] > 32) { + if (gTeamShields[actor->unk_0E4] > 32) { temp = 31; } - if (gTeamShields[obj2F4->unk_0E4] > 48) { + if (gTeamShields[actor->unk_0E4] > 48) { temp = 63; } if (!(gFrameCount & temp)) { - func_8007D10C(obj2F4->obj.pos.x + ((Rand_ZeroOne() - 0.5f) * 10.0f), - obj2F4->obj.pos.y + (Rand_ZeroOne() * 10.0f), - obj2F4->obj.pos.z + ((Rand_ZeroOne() - 0.5f) * 10.0f), 2.2f); + func_8007D10C(actor->obj.pos.x + ((Rand_ZeroOne() - 0.5f) * 10.0f), + actor->obj.pos.y + (Rand_ZeroOne() * 10.0f), + actor->obj.pos.z + ((Rand_ZeroOne() - 0.5f) * 10.0f), 2.2f); } if (!((temp >> 2) & gFrameCount)) { if (Rand_ZeroOne() < 0.5f) { - func_8007C120(obj2F4->obj.pos.x + ((Rand_ZeroOne() - 0.5f) * 30.0f), - obj2F4->obj.pos.y + (Rand_ZeroOne() * 10.0f), - obj2F4->obj.pos.z + ((Rand_ZeroOne() - 0.5f) * 30.0f), obj2F4->vel.x, obj2F4->vel.y, - obj2F4->vel.z, obj2F4->scale * 0.07f, 3); + func_8007C120(actor->obj.pos.x + ((Rand_ZeroOne() - 0.5f) * 30.0f), + actor->obj.pos.y + (Rand_ZeroOne() * 10.0f), + actor->obj.pos.z + ((Rand_ZeroOne() - 0.5f) * 30.0f), actor->vel.x, actor->vel.y, + actor->vel.z, actor->scale * 0.07f, 3); } } } @@ -2208,16 +2207,16 @@ void func_800922F4(Object_2F4* obj2F4) { #pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_hud/func_80093164.s") void func_80093310(void) { - Object_2F4* this = &gObjects2F4[0]; + Actor* this = &gActors[0]; - Object_2F4_Initialize(this); + Actor_Initialize(this); this->obj.status = 1; this->obj.pos.x = 0.0f; this->obj.pos.y += 1700.0f; this->obj.pos.z -= 5000.0f; - gObjects2F4->unk_0B6 = 1; + gActors->unk_0B6 = 1; if (1) {} - this->obj.id = OBJ_2F4_195; + this->obj.id = OBJ_ACTOR_195; Object_SetInfo(&this->info, this->obj.id); Audio_PlaySfx(0x11030010, &this->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } @@ -2352,16 +2351,16 @@ void stub_80094D18(void) { #pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_hud/func_80094D20.s") -void func_80095350(Object_2F4* obj2F4) { - Object_2F4_Initialize(obj2F4); - obj2F4->obj.status = 2; - obj2F4->obj.id = OBJ_2F4_195; - obj2F4->unk_0B6 = 9999; - Object_SetInfo(&obj2F4->info, obj2F4->obj.id); +void func_80095350(Actor* actor) { + Actor_Initialize(actor); + actor->obj.status = 2; + actor->obj.id = OBJ_ACTOR_195; + actor->unk_0B6 = 9999; + Object_SetInfo(&actor->info, actor->obj.id); } #ifdef IMPORT_DATA_PENDING -void func_800953A0(Object_2F4* obj_2F4, s32 arg1) { +void func_800953A0(Actor* actor, s32 arg1) { Vec3f D_800D2510[] = { { 1800.0f, 0.0f, -4000.0f }, { -1000.0f, 0.0f, -4800.0f }, @@ -2369,51 +2368,51 @@ void func_800953A0(Object_2F4* obj_2F4, s32 arg1) { { -200.0f, 0.0f, -7000.0f }, }; - Object_2F4_Initialize(obj_2F4); - obj_2F4->obj.status = 2; - obj_2F4->obj.id = OBJ_2F4_195; - obj_2F4->obj.pos = D_800D2510[arg1]; - obj_2F4->obj.pos.z -= D_80177D20; - obj_2F4->unk_0B6 = 45; - Object_SetInfo(&obj_2F4->info, obj_2F4->obj.id); + Actor_Initialize(actor); + actor->obj.status = 2; + actor->obj.id = OBJ_ACTOR_195; + actor->obj.pos = D_800D2510[arg1]; + actor->obj.pos.z -= D_80177D20; + actor->unk_0B6 = 45; + Object_SetInfo(&actor->info, actor->obj.id); } #else #pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_hud/func_800953A0.s") #endif #ifdef IMPORT_DATA_PENDING -void func_8009546C(Object_2F4* obj2F4, s32 arg1) { +void func_8009546C(Actor* actor, s32 arg1) { Vec3f D_800D2540[] = { { 1300.0f, 0.0f, -2000.0f }, { -1000.0f, 0.0f, -3000.0f }, { 800.0f, 0.0f, 0.0f }, { -1200.0f, 0.0f, -1000.0f }, { -1400.0f, 0.0f, 700.0f }, }; - Object_2F4_Initialize(obj2F4); - obj2F4->obj.status = 2; - obj2F4->obj.id = OBJ_2F4_195; - obj2F4->obj.pos = D_800D2540[arg1]; - obj2F4->obj.pos.z -= D_80177D20; - obj2F4->unk_0B6 = 46; - Object_SetInfo(&obj2F4->info, obj2F4->obj.id); + Actor_Initialize(actor); + actor->obj.status = 2; + actor->obj.id = OBJ_ACTOR_195; + actor->obj.pos = D_800D2540[arg1]; + actor->obj.pos.z -= D_80177D20; + actor->unk_0B6 = 46; + Object_SetInfo(&actor->info, actor->obj.id); } #else #pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_hud/func_8009546C.s") #endif #ifdef IMPORT_DATA_PENDING -void func_80095538(Object_2F4* obj_2F4, s32 arg1) { +void func_80095538(Actor* actor, s32 arg1) { Vec3f D_800D257C[] = { { 0.0f, 0.0f, -200.0f }, { -300.0f, 0.0f, -700.0f }, { 400.0f, 0.0f, -900.0f }, { 300.0f, 0.0f, -1700.0f }, { -260.0f, 0.0f, -2000.0f }, { -200.0f, 0.0f, -2600.0f }, }; - Object_2F4_Initialize(obj_2F4); - obj_2F4->obj.status = 2; - obj_2F4->obj.id = OBJ_2F4_195; - obj_2F4->obj.pos = D_800D257C[arg1]; - obj_2F4->obj.pos.z -= D_80177D20; - obj_2F4->unk_0B6 = 47; - Object_SetInfo(&obj_2F4->info, obj_2F4->obj.id); + Actor_Initialize(actor); + actor->obj.status = 2; + actor->obj.id = OBJ_ACTOR_195; + actor->obj.pos = D_800D257C[arg1]; + actor->obj.pos.z -= D_80177D20; + actor->unk_0B6 = 47; + Object_SetInfo(&actor->info, actor->obj.id); } #else #pragma GLOBAL_ASM("asm/us/nonmatchings/main/sf_hud/func_80095538.s") diff --git a/src/overlays/ovl_DF4260/DF4260.c b/src/overlays/ovl_DF4260/DF4260.c index 13fc9677..b0d3e3d8 100644 --- a/src/overlays/ovl_DF4260/DF4260.c +++ b/src/overlays/ovl_DF4260/DF4260.c @@ -1,146 +1,8 @@ #include "global.h" -#include "DF4260.h" + +static s32 D_DF4260_801997D0 = 0; + +s32 D_DF4260_8019B6C0; void func_DF4260_80187520(s32 arg0, void* arg1) { } - -void func_DF4260_80187530(Object_80* obj80) { -} - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018753C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_801875A4.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_80187670.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_80187710.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_801877A0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_80187838.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_801878D8.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018798C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_801879F0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_80187A38.s") - -f32 func_DF4260_80187A88(s32 arg0) { - f32 ret = arg0 * 0.5f; - - if (ret > 8.0f) { - ret = 8.0f; - } - return ret; -} - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_80187AC8.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_80188750.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_801887AC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_80188A18.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_80188C7C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_80188D50.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_80189058.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018A434.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018A730.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018AA74.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018AB08.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018AB64.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018ACE0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018AED0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018B0B4.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018B15C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018B418.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018B58C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018BAAC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018BAFC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018BBA4.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018BBF8.s") - -bool func_DF4260_8018BC50(s32 arg0, Gfx** arg1, Vec3f* arg2, Vec3f* arg3, UnkStruct_func_DF4260_8018BC50* arg4) { - if ((arg4->unkB8 == 0x65) && (arg0 != 8)) { - *arg1 = NULL; - } - return false; -} - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018BC84.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018BD7C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018BDD4.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018BE7C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018C0B0.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018C19C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018DDAC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018E290.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018E76C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018EC54.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018ECAC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018ED1C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018ED78.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018EE2C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018EE84.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018EF38.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018EF90.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018F044.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018F1C8.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018F31C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018F3BC.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018F4A4.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018F55C.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018F678.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018F6F8.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_8018F880.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_80190F74.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/func_DF4260_80191160.s") - -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DF4260/D_DF4260_8019AEF0.s") diff --git a/src/overlays/ovl_DF4260/DF4260.h b/src/overlays/ovl_DF4260/DF4260.h deleted file mode 100644 index 4f6f53f1..00000000 --- a/src/overlays/ovl_DF4260/DF4260.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef OVL_DF4260_H -#define OVL_DF4260_H - -#include "global.h" - -typedef struct { - /* 0x00 */ char pad_0[0xB8]; - /* 0xB8 */ s16 unkB8; -} UnkStruct_func_DF4260_8018BC50; - -typedef struct { - /* 0x00 */ char pad_0[0x6C]; - /* 0x6C */ f32 unk6C; - /* 0x70 */ f32 unk70; - /* 0x74 */ f32 unk74; -} UnkStruct_func_DF4260_80187A38; - -#endif diff --git a/src/overlays/ovl_DF4260/DFEE30.c b/src/overlays/ovl_DF4260/DFEE30.c index 896b2d6c..78559903 100644 --- a/src/overlays/ovl_DF4260/DFEE30.c +++ b/src/overlays/ovl_DF4260/DFEE30.c @@ -32,9 +32,9 @@ void func_DF4260_801924A8(Object_80* arg0) { #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DFEE30/func_DF4260_80192AA4.s") -void func_DF4260_80192CB0(Object_2F4* obj2F4) { - obj2F4->unk_050 = obj2F4->obj.rot.x; - obj2F4->obj.rot.x = 0.0f; +void func_DF4260_80192CB0(Actor* actor) { + actor->iwork[0] = actor->obj.rot.x; + actor->obj.rot.x = 0.0f; } #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/DFEE30/func_DF4260_80192CD4.s") diff --git a/src/overlays/ovl_DF4260/fox_co.c b/src/overlays/ovl_DF4260/fox_co.c new file mode 100644 index 00000000..dc2b4c85 --- /dev/null +++ b/src/overlays/ovl_DF4260/fox_co.c @@ -0,0 +1,3324 @@ +#include "global.h" + +// bss +u8 D_DF4260_8019B6D0; +f32 D_DF4260_8019B6D8[68]; + +void func_DF4260_80187530(Object_80* obj80) { +} + +extern Gfx D_60199D0[]; + +void func_DF4260_8018753C(Object_80* obj80) { + + GCGM_BACK(); + GDL(&D_60199D0); + GSGM_BACK(); +} + +void func_801875A4(Object* obj) { + f32 sp1C; + f32 sp18; + f32 var_f; + + if (!(gFrameCount & 3)) { + sp1C = (Rand_ZeroOne() - 0.5f) * 10.0f; + sp18 = (Rand_ZeroOne() - 0.5f) * 10.0f; + var_f = ((Rand_ZeroOne() * 0.5f) + 1.0f); + func_8007C85C(obj->pos.x + sp1C, obj->pos.y + sp18, obj->pos.z, 4.0f * var_f); + } +} + +void func_DF4260_80187670(Actor* actor, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, s32 arg7, s32 arg8, + s32 arg9) { + + Actor_Initialize(actor); + actor->obj.status = 1; + actor->obj.id = arg9; + actor->obj.pos.x = arg1; + actor->obj.pos.y = arg2; + actor->obj.pos.z = arg3; + actor->obj.rot.x = arg5; + actor->obj.rot.y = arg6; + actor->timer_0BC = arg7; + actor->timer_0BE = 20; + actor->unk_0B4 = arg8; + actor->fwork[5] = arg4; + Object_SetInfo(&actor->info, actor->obj.id); +} + +void func_DF4260_80187710(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, s32 arg6, s32 arg7, s32 arg8) { + s32 i; + + for (i = 0; i < ARRAY_COUNT(gActors); i++) { + if (gActors[i].obj.status == 0) { + (void) "Enms[1].obj.mode %d\n"; + func_DF4260_80187670(&gActors[i], arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); + return; + } + } +} + +void func_DF4260_801877A0(Boss* boss, f32 arg1, f32 arg2, f32 arg3) { + Vec3f sp2C; + Vec3f sp20; + + sp2C.x = arg1; + sp2C.y = arg2; + sp2C.z = arg3; + Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp2C, &sp20); + func_8007F11C(OBJ_EFFECT_353, boss->obj.pos.x + sp20.x, boss->obj.pos.y + sp20.y, boss->obj.pos.z + sp20.z, 100.0f); +} + +void func_DF4260_80187838(s32 arg0, f32 arg1, f32 arg2, f32 arg3, s32 arg4) { + s32 i; + + for (i = 0; i < ARRAY_COUNT(gItems); i++) { + if (gItems[i].obj.status == 0) { + Item_Initialize(&gItems[i]); + gItems[i].obj.status = 1; + gItems[i].obj.id = arg4; + gItems[i].timer_4A = 8; + gItems[i].obj.pos.x = arg1; + gItems[i].obj.pos.y = arg2; + gItems[i].obj.pos.z = arg3; + Object_SetInfo(&gItems[i].info, gItems[i].obj.id); + return; + } + } +} + +void func_DF4260_801878D8(Boss* boss) { + s32 i; + + D_801613A0 = 0; + if (gLevelMode == 0) { + if (gPlayer[0].state_1C8 == 3) { + gPlayer[0].state_1C8 = 9; + gPlayer[0].unk_1D0 = 0; + func_800182F4(0x103200FF); + func_800182F4(0x113200FF); + } + Object_Kill(&boss->obj, &boss->sfxPos); + return; + } + + for (i = 0; i < ARRAY_COUNT(D_DF4260_8019B6D8); i++) { + D_DF4260_8019B6D8[i] = 0.0f; + } +} + +void func_DF4260_8018798C(Boss* boss, f32 arg1, f32 arg2, f32 arg3, f32 arg4) { + func_8007BFFC(arg1, arg2, arg3, 0.0f, 0.0f, 0.0f, arg4, 30); + func_8007A6F0(&boss->obj.pos, 0x29034003); +} + +void func_DF4260_801879F0(Boss* boss, f32 arg1, f32 arg2, f32 arg3, f32 arg4) { + func_8007D1E0(arg1, arg2, arg3, arg4); + func_8007A6F0(&boss->obj.pos, 0x29034003); +} + +void func_DF4260_80187A38(Boss* boss, f32 arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5) { + func_8007C120(arg1, arg2, arg3, boss->vel.x, boss->vel.y, boss->vel.z, arg4, arg5); +} + +f32 func_DF4260_80187A88(s32 arg0) { + f32 ret = arg0 * 0.5f; + + if (ret > 8.0f) { + ret = 8.0f; + } + return ret; +} + +void func_DF4260_80187AC8(Boss* boss) { + Object_4C* obj4C; + s32 var_v0; + s32 var_s1; + s32 var_s1_2; + + if (boss->unk_062 != 0) { + boss->unk_062 = 0; + if (boss->unk_066 == 0) { + boss->swork[10] = 15; + boss->swork[29] -= boss->unk_064; + func_DF4260_80187A38(boss, D_DF4260_8019B6D8[62], D_DF4260_8019B6D8[63], D_DF4260_8019B6D8[64], 0.2f, 20); + if (boss->swork[29] < 30) { + func_8007A6F0(&boss->obj.pos, 0x2943500F); + } else { + func_8007A6F0(&boss->obj.pos, 0x29034003); + } + func_800BA808(gMsg_ID_2270, RCID_BOSS_CORNERIA); + if (boss->swork[29] <= 0) { + boss->swork[10] = 1000; + boss->info.hitbox[1 + 0] = 100000.0f; + func_DF4260_8018798C(boss, D_DF4260_8019B6D8[62], D_DF4260_8019B6D8[63], D_DF4260_8019B6D8[64], 10.0f); + Audio_PlaySfx(0x2940D09A, &boss->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + D_Timer_80161A60 = 8; + if (fabsf(boss->obj.rot.x) < 20.0f) { + boss->swork[32] = 1; + } + boss->unk_04E = 7; + boss->timer_050 = 100; + func_800182F4(0x105000FF); + func_800182F4(0x115000FF); + D_80177A80 = 0; + + if ((gPlayer[0].state_1C8 == 3) || (gPlayer[0].state_1C8 == 5)) { + gPlayer[0].state_1C8 = 7; + gPlayer[0].unk_1D0 = gPlayer[0].timer_1F8 = 0; + gPlayer[0].unk_0E8 += gPlayer[0].unk_114; + if (gPlayer[0].unk_0E8 > 360.0f) { + gPlayer[0].unk_0E8 -= 360.0f; + } + if (gPlayer[0].unk_0E8 < 0.0f) { + gPlayer[0].unk_0E8 += 360.0f; + } + gPlayer[0].unk_114 = 0.0f; + } + func_800BA808(gMsg_ID_2280, RCID_BOSS_CORNERIA); + func_80042EC0(boss); + D_801613A0 = 100000; + return; + } + } else if (boss->unk_066 == 3) { + boss->swork[3] = 15; + boss->swork[20] = 30; + boss->swork[28] -= boss->unk_064; + func_DF4260_801879F0(boss, D_DF4260_8019B6D8[12] + ((Rand_ZeroOne() - 0.5f) * 60.0f), D_DF4260_8019B6D8[13], + D_DF4260_8019B6D8[14] + ((Rand_ZeroOne() - 0.5f) * 60.0f), 2.0f); + func_DF4260_80187A38(boss, D_DF4260_8019B6D8[12], D_DF4260_8019B6D8[13], D_DF4260_8019B6D8[14], 0.1f, 20); + if (boss->swork[28] <= 0) { + boss->swork[3] = 1000; + boss->info.hitbox[1 + 18] = 100000.0f; + func_DF4260_8018798C(boss, D_DF4260_8019B6D8[12], D_DF4260_8019B6D8[13], D_DF4260_8019B6D8[14], 10.0f); + } + } + + if (boss->unk_066 == 1) { + boss->swork[2] = 15; + boss->swork[21] = 30; + boss->swork[26] -= boss->unk_064; + + func_DF4260_801879F0(boss, D_DF4260_8019B6D8[6] + ((Rand_ZeroOne() - 0.5f) * 60.0f), D_DF4260_8019B6D8[7], + D_DF4260_8019B6D8[8] + ((Rand_ZeroOne() - 0.5f) * 60.0f), 2.0f); + func_DF4260_80187A38(boss, D_DF4260_8019B6D8[6], D_DF4260_8019B6D8[7], D_DF4260_8019B6D8[8], 0.1f, 20); + if (boss->swork[26] <= 0) { + boss->swork[2] = 1000; + boss->info.hitbox[1 + 6] = 100000.0f; + func_DF4260_8018798C(boss, D_DF4260_8019B6D8[6], D_DF4260_8019B6D8[7], D_DF4260_8019B6D8[8], 7.0f); + } + } else if (boss->unk_066 == 2) { + boss->swork[1] = 15; + boss->swork[22] = 30; + boss->swork[27] -= boss->unk_064; + func_DF4260_801879F0(boss, D_DF4260_8019B6D8[0] + ((Rand_ZeroOne() - 0.5f) * 60.0f), D_DF4260_8019B6D8[1], + D_DF4260_8019B6D8[2] + ((Rand_ZeroOne() - 0.5f) * 60.0f), 2.0f); + func_DF4260_80187A38(boss, D_DF4260_8019B6D8[0], D_DF4260_8019B6D8[1], D_DF4260_8019B6D8[2], 0.1f, 20); + if (boss->swork[27] <= 0) { + boss->swork[1] = 1000; + boss->info.hitbox[1 + 12] = 100000.0f; + func_DF4260_8018798C(boss, D_DF4260_8019B6D8[0], D_DF4260_8019B6D8[1], D_DF4260_8019B6D8[2], 7.0f); + } + } else if ((boss->unk_066 == 4) || (boss->unk_066 == 5)) { + Audio_PlaySfx(0x2903300E, &boss->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + boss->swork[23] = 200; + if (boss->unk_066 == 4) { + boss->swork[24] -= boss->unk_064; + boss->swork[7] = boss->swork[8] = boss->swork[9] = 5; + boss->swork[18] = 30; + if (boss->swork[24] <= 0) { + boss->swork[7] = boss->swork[8] = boss->swork[9] = 1000; + boss->info.hitbox[1 + 24] = 100000.0f; + for (var_s1 = 3; var_s1 < 6; var_s1++) { + func_800430DC(D_DF4260_8019B6D8[18 + var_s1 + 2], D_DF4260_8019B6D8[24 + var_s1 + 2], + D_DF4260_8019B6D8[30 + var_s1 + 2], D_DF4260_8019B6D8[36 + var_s1 + 2], + D_DF4260_8019B6D8[42 + var_s1 + 2], D_DF4260_8019B6D8[48 + var_s1 + 2], 0.0f, + (Rand_ZeroOne() * 20.0f), 0.0f, 5.5f, var_s1 + 0x1C, + ((s32) (Rand_ZeroOne() * 30.0f)) + 60.0f); + } + if (boss->unk_04E < 5) { + boss->unk_04E = 5; + boss->timer_050 = 60; + } + } + } else { + boss->swork[25] -= boss->unk_064; + boss->swork[4] = boss->swork[5] = boss->swork[6] = 5; + boss->swork[19] = 30; + if (boss->swork[25] <= 0) { + boss->swork[4] = boss->swork[5] = boss->swork[6] = 1000; + boss->info.hitbox[1 + 30] = 100000.0f; + + for (var_s1 = 0; var_s1 < 3; var_s1++) { + func_800430DC(D_DF4260_8019B6D8[18 + var_s1 + 2], D_DF4260_8019B6D8[24 + var_s1 + 2], + D_DF4260_8019B6D8[30 + var_s1 + 2], D_DF4260_8019B6D8[36 + var_s1 + 2], + D_DF4260_8019B6D8[42 + var_s1 + 2], D_DF4260_8019B6D8[48 + var_s1 + 2], 0.0f, + (Rand_ZeroOne() * 20.0f), 0.0f, 5.5f, var_s1 + 0x1C, + ((s32) (Rand_ZeroOne() * 30.0f)) + 60.0f); + } + if (boss->unk_04E < 5) { + boss->unk_04E = 6; + boss->timer_050 = 60; + } + } + } + + if (boss->timer_050 < 50) { + boss->timer_050 += 10; + } + + if ((boss->unk_04E != 0) && (boss->unk_04E < 5)) { + boss->fwork[14] = 0.0f; + if (Rand_ZeroOne() < 0.5f) { + var_v0 = 0x144; + } else { + var_v0 = 0x147; + } + func_DF4260_80187838(boss, boss->obj.pos.x, boss->obj.pos.y + 100.0f, boss->obj.pos.z, var_v0); + } + if (boss->unk_04E < 5) { + boss->unk_04E = 0; + switch ((s32) (Rand_ZeroOne() * 5.0f)) { + case 0: + boss->swork[31] = 2; + break; + case 1: + boss->swork[31] = 3; + break; + case 2: + case 3: + case 4: + boss->swork[31] = 4; + break; + } + } + } else { + func_8007A6F0(&boss->obj.pos, 0x29121007); + } + } + + if (!(D_801615D0.y < 0.0f)) { + + obj4C = gObjects4C; + for (var_s1 = 0; var_s1 < 40; var_s1++, obj4C++) { + if ((obj4C->obj.status == 2) && (obj4C->obj.id == OBJ_4C_162)) { + if ((fabsf(obj4C->obj.pos.x - D_DF4260_8019B6D8[20]) < 90.0f) && + (fabsf(obj4C->obj.pos.z - D_DF4260_8019B6D8[32]) < 90.0f)) { + obj4C->unk_46 = 1; + break; + } else if ((fabsf(obj4C->obj.pos.x - D_DF4260_8019B6D8[23]) < 90.0f) && + (fabsf(obj4C->obj.pos.z - D_DF4260_8019B6D8[35]) < 90.0f)) { + obj4C->unk_46 = 1; + break; + } + } + } + if ((boss->swork[1] == 1000) && !(gFrameCount & 3)) { + func_8007BFFC(D_DF4260_8019B6D8[3], D_DF4260_8019B6D8[4], D_DF4260_8019B6D8[5], + (D_DF4260_8019B6D8[3] - boss->obj.pos.x) * 0.1f, 0.0f, + (D_DF4260_8019B6D8[5] - boss->obj.pos.z) * 0.1f, 1.5f, 5); + } + if ((boss->swork[2] == 1000) && !(gFrameCount & 3)) { + func_8007BFFC(D_DF4260_8019B6D8[9], D_DF4260_8019B6D8[10], D_DF4260_8019B6D8[11], + (D_DF4260_8019B6D8[9] - boss->obj.pos.x) * 0.1f, 0.0f, + (D_DF4260_8019B6D8[11] - boss->obj.pos.z) * 0.1f, 1.5f, 5); + } + if ((boss->swork[3] == 1000) && !(gFrameCount & 3)) { + func_8007BFFC(D_DF4260_8019B6D8[12], D_DF4260_8019B6D8[13], D_DF4260_8019B6D8[14], 0.0f, 20.0f, 0.0f, 2.0f, + 5); + } + if ((boss->swork[4] == 1000) && !(gFrameCount & 3)) { + func_8007BFFC(D_DF4260_8019B6D8[56], D_DF4260_8019B6D8[57], D_DF4260_8019B6D8[58], 0.0f, 10.0f, 0.0f, 2.0f, + 5); + } + if ((boss->swork[7] == 1000) && !(gFrameCount & 3)) { + func_8007BFFC(D_DF4260_8019B6D8[59], D_DF4260_8019B6D8[60], D_DF4260_8019B6D8[61], 0.0f, 10.0f, 0.0f, 2.0f, + 5); + } + } +} + +s32 func_DF4260_80188750(Boss* boss) { + + boss->swork[35]++; + if (boss->swork[35] >= 5) { + boss->swork[35] = 0; + return 0xBF; + } + + if (func_8008AC54(0) < 4) { + return 0xBE; + } else { + return 0; + } +} + +void func_DF4260_801887AC(Boss* boss) { + Vec3f sp3C; + s32 sp38; + s32 temp_v0; + + if ((D_801613A0 >= 500)) { + temp_v0 = boss->swork[30]; + if (temp_v0 != 0) { + switch (temp_v0) { + case 1: + sp38 = func_DF4260_80188750(boss); + if (sp38 != 0) { + if (boss->swork[1] != 1000) { + func_DF4260_80187710(D_DF4260_8019B6D8[0], D_DF4260_8019B6D8[1], D_DF4260_8019B6D8[2], + 65.0f, 0.0f, D_DF4260_8019B6D8[16] + boss->obj.rot.y, 0, 0, sp38); + } + if (boss->swork[2] != 1000) { + func_DF4260_80187710(D_DF4260_8019B6D8[6], D_DF4260_8019B6D8[7], D_DF4260_8019B6D8[8], + 65.0f, 0.0f, D_DF4260_8019B6D8[16] + boss->obj.rot.y, 0, 0, sp38); + } + } + boss->swork[30] = 0; + break; + case 2: + func_DF4260_801877A0(boss, 40.0f, 228.0f, 212.0f); + func_DF4260_801877A0(boss, -40.0f, 228.0f, 212.0f); + boss->swork[30] = 0; + break; + case 3: + if (boss->swork[3] != 1000) { + sp3C.x = gPlayer[0].pos.x; + sp3C.y = gPlayer[0].pos.y; + sp3C.z = gPlayer[0].unk_138; + gPlayer[0].pos.x += (Rand_ZeroOne() - 0.5f) * 300.0f; + gPlayer[0].pos.y += (Rand_ZeroOne() - 0.5f) * 300.0f; + gPlayer[0].unk_138 += (Rand_ZeroOne() - 0.5f) * 300.0f; + func_8007F11C(OBJ_EFFECT_376, D_DF4260_8019B6D8[12], D_DF4260_8019B6D8[13], + D_DF4260_8019B6D8[14], 60.0f); + gPlayer[0].pos.x = sp3C.x; + gPlayer[0].pos.y = sp3C.y; + gPlayer[0].unk_138 = sp3C.z; + } + boss->swork[30] = 0; + break; + } + } + } +} + +void func_DF4260_80188A18(Boss* boss) { + + if (boss->timer_050 == 0) { + boss->unk_04E = 0; + boss->timer_050 = (s32) (Rand_ZeroOne() * 20.0f) + 20; + boss->fwork[14] = 0.0f; + + switch ((s32) (Rand_ZeroOne() * 8.0f)) { + case 0: + case 1: + boss->swork[31] = 1; + break; + case 2: + case 3: + boss->swork[31] = 2; + break; + case 4: + if (D_801615D0.y < 0.0f) { + boss->swork[31] = 4; + } else { + boss->swork[31] = 3; + } + break; + case 5: + case 6: + case 7: + boss->swork[31] = 4; + break; + } + + if ((D_801613A0 >= 1001) && (Rand_ZeroOne() < 0.3f)) { + if (Rand_ZeroOne() < 0.5f) { + func_8002E4F8(gMsg_ID_2263, RCID_BOSS_CORNERIA); + } else { + func_8002E4F8(gMsg_ID_2265, RCID_BOSS_CORNERIA); + } + } + } + if ((D_801613A0 >= 801) && !(D_801613A0 & 0x1FF)) { + if (D_80177B6C < 2) { + func_800BA808(gMsg_ID_20237, RCID_PEPPY); + } else if (D_801615D0.z > 0.0f) { + func_800BA808(gMsg_ID_2233, RCID_FALCO); + } else { + func_800BA808(gMsg_ID_2282, RCID_PEPPY); + } + } +} + +void func_DF4260_80188C7C(Boss* boss) { + + if (boss->unk_044 == 0) { + boss->unk_044++; + boss->fwork[12] *= -0.2f; + Audio_PlaySfx(0x19030004, &boss->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + func_80062B60(D_DF4260_8019B6D8[56], D_DF4260_8019B6D8[58], 0, 30.0f); + boss->swork[18] = 13; + boss->swork[19] = 15; + boss->swork[21] = 10; + boss->swork[22] = 12; + boss->swork[20] = 17; + D_80178480 = 20; + } else { + boss->fwork[12] = 0.0f; + } +} + +void func_DF4260_80188D50(Boss* boss) { + static s32 D_DF4260_801997E0 = 0; + s32 i; + Vec3f sp48; + Vec3f sp3C; + s32 temp_ft3; + + if (boss->swork[36] == 0) { + if (gPlayer[0].unk_1F4 != 0) { + D_DF4260_801997E0 = 80; + } + + if (D_DF4260_801997E0 != 0) { + D_DF4260_801997E0--; + } else if ((gPlayer[0].pos.y < 200.0f) && (boss->unk_04E < 5) && + (fabsf(boss->obj.pos.x - gPlayer[0].pos.x) < 200.0f) && + (fabsf(boss->obj.pos.z - gPlayer[0].unk_138) < 200.0f) && (gPlayer[0].unk_4D8 > 180.0f)) { + boss->swork[36]++; + D_DF4260_801997E0 = 20; + Audio_PlaySfx(0x49008025, &D_800C5D28, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + if ((gTeamShields[1] > 0) || (gTeamShields[2] > 0) || (gTeamShields[3] > 0)) { + do { + do { + temp_ft3 = (s32) (Rand_ZeroOne() * 2.9f) + 1; + } while (gTeamShields[temp_ft3] <= 0); + } while (0); + + switch (temp_ft3) { + case 1: + func_800BA808(gMsg_ID_7100, RCID_FALCO); + break; + case 2: + func_800BA808(gMsg_ID_15252, RCID_SLIPPY); + break; + case 3: + func_800BA808(gMsg_ID_17160, RCID_PEPPY); + break; + } + } + Matrix_RotateY(gCalcMatrix, (gPlayer[0].unk_114 + gPlayer[0].unk_0E8) * M_DTOR, 0); + sp48.x = 0.0f; + sp48.y = 0.0f; + sp48.z = -2500.0f; + Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp48, &sp3C); + for (i = 0; i < ARRAY_COUNT(gItems); i++) { + if (gItems[i].obj.status == 0) { + Item_Initialize(&gItems[i]); + gItems[i].obj.status = 1; + gItems[i].obj.id = OBJ_ITEM_1UP; + gItems[i].obj.pos.x = gPlayer[0].pos.x + sp3C.x; + gItems[i].obj.pos.y = gPlayer[0].pos.y + 100.0f; + gItems[i].obj.pos.z = gPlayer[0].unk_138 + sp3C.z; + gItems[i].timer_4A = 8; + Object_SetInfo(&gItems[i].info, gItems[i].obj.id); + func_8007B344(gItems[i].obj.pos.x, gItems[i].obj.pos.y, gItems[i].obj.pos.z, 5.0f, 0); + break; + } + } + } + } +} + +extern AnimationHeader D_602BC18; +extern AnimationHeader D_602C0D0; + +static Vec3f D_DF4260_801997E4 = { 0.0f, 0.0f, 0.0f }; +static Vec3f D_DF4260_801997F0 = { 0.0f, 0.0f, 5.0f }; +static Vec3f D_DF4260_801997FC = { 0.0f, 0.0f, 40.0f }; +static Vec3f D_DF4260_80199808 = { 0.0f, 0.0f, -30.0f }; + +#ifdef NON_MATCHING +// Stack issues https://decomp.me/scratch/ZsX2L +void func_DF4260_80189058(Boss* boss) { + Vec3f sp21C; + s32 sp218; + + f32 sp214; + f32 sp210; + f32 sp20C; + s32 var_v0; + s32 pad_sp204; + f32 sp200; + f32 sp1FC; + s32 pad_sp1F8; + + Vec3f sp1EC; + Vec3f sp84[30]; + Vec3f sp78; + Vec3f sp6C; + f32 sp5C; + + sp21C = D_DF4260_801997E4; + sp1EC = D_DF4260_801997F0; + sp78 = D_DF4260_801997FC; + sp6C = D_DF4260_80199808; + + if (gPlayer->state_1C8 != 9) { + if (boss->swork[33] == 0) { + boss->swork[33]++; + D_80178284 = 2; + + boss->unk_05E = 1; + boss->swork[24] = 150; + boss->swork[25] = 150; + boss->swork[26] = 40; + boss->swork[27] = 40; + boss->swork[28] = 40; + boss->swork[29] = 130; + boss->info.hitbox[1 + 0] = -241.0f; + boss->info.hitbox[1 + 6] = 0.0f; + boss->info.hitbox[1 + 12] = 0.0f; + boss->info.hitbox[1 + 18] = 0.0f; + boss->info.hitbox[1 + 24] = 0.0f; + boss->info.hitbox[1 + 30] = 0.0f; + boss->timer_052 = 100; + boss->unk_04E = 0; + boss->swork[31] = 1; + D_DF4260_8019B6D8[66] = 0.0f; + D_DF4260_8019B6D8[67] = 10000.0f; + boss->timer_050 = 30; + Animation_GetFrameData(&D_602C0D0, 0, boss->vwork); + D_801613A0 = 0; + } + D_801613A0++; + gUnkEntities28[59].unk_00 = 1; + gUnkEntities28[59].unk_02 = 0x66; + gUnkEntities28[59].pos.x = boss->obj.pos.x; + gUnkEntities28[59].pos.y = boss->obj.pos.y; + gUnkEntities28[59].pos.z = boss->obj.pos.z; + + gUnkEntities28[59].unk_10 = boss->obj.rot.y + 180.0f; + func_DF4260_80188D50(boss); + if (D_801615D0.z > 0.0f) { + if (D_801615D0.x > 0.0f) { + gPlayer->unk_228 = 0x10; + } else { + gPlayer->unk_228 = 0x20; + } + } + + switch (D_801613A0) { + case 20: + func_800BA808(gMsg_ID_2240, RCID_BOSS_CORNERIA); + break; + case 160: + func_800BA808(gMsg_ID_2250, RCID_BOSS_CORNERIA); + break; + case 330: + func_800BA808(gMsg_ID_2225, RCID_SLIPPY); + break; + case 486: + D_80161734 = 1; + break; + case 500: + func_800BA808(gMsg_ID_2260, RCID_BOSS_CORNERIA); + break; + case 900: + func_800BA808(gMsg_ID_2230, RCID_PEPPY); + break; + case 3840: + if (boss->unk_04E < 5) { + func_800BA808(gMsg_ID_2230, RCID_PEPPY); + } + break; + } + + if (D_801613A0 >= 487) { + D_80177848 = boss->swork[29] * 2; + } + + for (sp218 = 0; sp218 < 24; sp218++) { + + if ((boss->swork[sp218] != 0) && (boss->swork[sp218] < 1000)) { + boss->swork[sp218]--; + } + } + + func_DF4260_80187AC8(boss); + boss->fwork[0] = __sinf(boss->swork[18] * 50.0f * M_DTOR) * func_DF4260_80187A88(boss->swork[18]); + boss->fwork[1] = __sinf(boss->swork[19] * 50.0f * M_DTOR) * func_DF4260_80187A88(boss->swork[19]); + boss->fwork[2] = __sinf(boss->swork[20] * 50.0f * M_DTOR) * func_DF4260_80187A88(boss->swork[20]); + boss->fwork[3] = __sinf(boss->swork[21] * 50.0f * M_DTOR) * func_DF4260_80187A88(boss->swork[21]); + boss->fwork[4] = __sinf(boss->swork[22] * 50.0f * M_DTOR) * func_DF4260_80187A88(boss->swork[22]); + + if (boss->unk_04E < 5) { + sp5C = __sinf(boss->swork[23] * 12.0f * M_DTOR) * func_DF4260_80187A88(boss->swork[23]) * 0.3f; + Math_SmoothStepToF(&boss->obj.rot.z, sp5C, 0.2f, 100.0f, 0.001f); + } + if (boss->obj.pos.y <= 10.0f) { + boss->obj.pos.y = 10.0f; + } + sp214 = D_DF4260_8019B6D8[17] - boss->obj.pos.x; + sp210 = D_DF4260_8019B6D8[18] - (boss->obj.pos.y + 300.0f); + sp20C = D_DF4260_8019B6D8[19] - boss->obj.pos.z; + sp1FC = Math_RadToDeg(Math_Atan2F(sp214, sp20C)); + sp200 = Math_RadToDeg(-Math_Atan2F(sp210, sqrtf(SQ(sp214) + SQ(sp20C)))); + + if ((sp200 > 50.0f) && (sp200 < 180.0f)) { + sp200 = 50.0f; + } + if ((sp200 < 310.0f) && (sp200 > 180.0f)) { + sp200 = 310.0f; + } + sp1FC -= boss->obj.rot.y; + if (sp1FC > 360.0f) { + sp1FC -= 360.0f; + } + if (sp1FC < 0.0f) { + sp1FC += 360.0f; + } + if ((sp1FC > 50.0f) && (sp1FC < 180.0f)) { + sp1FC = 50.0f; + } + if ((sp1FC < 310.0f) && (sp1FC > 180.0f)) { + sp1FC = 310.0f; + } + + Math_SmoothStepToAngle(&D_DF4260_8019B6D8[16], sp1FC, 0.1f, 3.0f, 0.0f); + Math_SmoothStepToAngle(&D_DF4260_8019B6D8[15], sp200, 0.1f, 3.0f, 0.0f); + if (boss->unk_04E != 0) { + Math_SmoothStepToAngle(&boss->obj.rot.y, + Math_RadToDeg(Math_Atan2F(D_DF4260_8019B6D8[66] - boss->obj.pos.x, + D_DF4260_8019B6D8[67] - boss->obj.pos.z)), + 0.1f, 3.0f, 0.0f); + } + Matrix_RotateY(gCalcMatrix, boss->obj.rot.y * M_DTOR, 0U); + + switch (boss->unk_04E) { + case 0: + boss->unk_04C = 0; + D_DF4260_8019B6D8[17] = gPlayer->pos.x; + D_DF4260_8019B6D8[18] = gPlayer->pos.y; + D_DF4260_8019B6D8[19] = gPlayer->unk_138; + if (boss->timer_050 == 0) { + switch (boss->swork[31]) { + case 1: + boss->unk_04E = 1; + boss->timer_050 = (s32) (Rand_ZeroOne() * 50.0f) + 50; + boss->fwork[14] = 0.0f; + break; + case 2: + boss->unk_04E = 2; + boss->timer_050 = (s32) (Rand_ZeroOne() * 100.0f) + 150; + boss->timer_052 = 40; + boss->timer_054 = 40; + boss->fwork[14] = 0.07f; + break; + case 4: + boss->unk_04E = 4; + boss->timer_050 = (s32) (Rand_ZeroOne() * 70.0f) + 100; + boss->fwork[14] = 0.1f; + D_DF4260_8019B6D8[66] = (Rand_ZeroOne() - 0.5f) * 6000.0f; + D_DF4260_8019B6D8[67] = (Rand_ZeroOne() - 0.5f) * 6000.0f; + boss->fwork[14] = 0.07f; + break; + case 3: + boss->unk_04E = 3; + boss->timer_050 = (s32) (Rand_ZeroOne() * 100.0f) + 150; + boss->fwork[14] = 0.07f; + break; + } + } + Animation_GetFrameData(&D_602C0D0, boss->unk_04C, sp84); + if (boss->timer_052 == 0) { + boss->timer_052 = 150; + boss->swork[30] = 1; + } + break; + case 1: + D_DF4260_8019B6D8[17] = D_DF4260_8019B6D8[66] = gPlayer->pos.x; + D_DF4260_8019B6D8[18] = gPlayer->pos.y; + D_DF4260_8019B6D8[19] = D_DF4260_8019B6D8[67] = gPlayer->unk_138; + + boss->unk_04C += 2; + if (boss->unk_04C >= Animation_GetFrameCount(&D_602BC18)) { + boss->unk_04C = 0; + } + Animation_GetFrameData(&D_602BC18, boss->unk_04C, sp84); + Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp1EC, &sp21C); + if (boss->timer_052 == 0) { + boss->timer_052 = 150; + boss->swork[30] = 1; + } + func_DF4260_80188A18(boss); + break; + case 2: + D_DF4260_8019B6D8[17] = D_DF4260_8019B6D8[66] = gPlayer->pos.x; + D_DF4260_8019B6D8[18] = gPlayer->pos.y; + D_DF4260_8019B6D8[19] = D_DF4260_8019B6D8[67] = gPlayer->unk_138; + + boss->unk_04C -= 4; + if (boss->unk_04C < 0) { + boss->unk_04C = 100; + } + Animation_GetFrameData(&D_602BC18, boss->unk_04C, sp84); + Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp6C, &sp21C); + if (boss->timer_052 == 0) { + boss->timer_052 = 30; + boss->swork[30] = 2; + } + if (boss->timer_054 == 0) { + boss->timer_054 = 9; + boss->swork[30] = 3; + } + func_DF4260_80188A18(boss); + break; + case 3: + D_DF4260_8019B6D8[17] = D_DF4260_8019B6D8[66] = gPlayer->pos.x; + D_DF4260_8019B6D8[18] = gPlayer->pos.y; + D_DF4260_8019B6D8[19] = D_DF4260_8019B6D8[67] = gPlayer->unk_138; + + boss->unk_04C += 4; + if (boss->unk_04C >= 101) { + boss->unk_04C = 0; + } + Animation_GetFrameData(&D_602BC18, boss->unk_04C, sp84); + Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp78, &sp21C); + if (boss->timer_052 == 0) { + boss->timer_052 = 30; + boss->swork[30] = 2; + } + if (boss->timer_054 == 0) { + boss->timer_054 = 9; + boss->swork[30] = 3; + } + func_DF4260_80188A18(boss); + break; + case 4: + D_DF4260_8019B6D8[17] = gPlayer->pos.x; + D_DF4260_8019B6D8[18] = gPlayer->pos.y; + D_DF4260_8019B6D8[19] = gPlayer->unk_138; + + boss->unk_04C += 4; + if (boss->unk_04C >= 101) { + boss->unk_04C = 0; + } + Animation_GetFrameData(&D_602BC18, boss->unk_04C, sp84); + Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp78, &sp21C); + func_DF4260_80188A18(boss); + break; + case 5: + case 6: + boss->unk_05E = 0; + D_8017812C = 1; + if (!(gFrameCount & 7)) { + D_DF4260_8019B6D8[17] = ((Rand_ZeroOne() - 0.5f) * 2000.0f) + gPlayer->pos.x; + D_DF4260_8019B6D8[18] = gPlayer->pos.y; + D_DF4260_8019B6D8[19] = ((Rand_ZeroOne() - 0.5f) * 2000.0f) + gPlayer->unk_138; + } + boss->fwork[12] += 0.05f; + if (boss->unk_04E == 6) { + boss->obj.rot.z += boss->fwork[12]; + if (boss->obj.rot.z > 60.0f) { + boss->obj.rot.z = 60.0f; + func_DF4260_80188C7C(boss); + + if ((gFrameCount & 0x1FF) == 0) { + func_800BA808(gMsg_ID_2275, RCID_BOSS_CORNERIA); + } + + if ((gFrameCount & 0x1FF) == 0x100) { + func_800BA808(gMsg_ID_2220, RCID_BOSS_CORNERIA); + } + } + boss->obj.rot.x = boss->obj.rot.z; + } else { + boss->obj.rot.z -= boss->fwork[12]; + if (boss->obj.rot.z < -60.0f) { + boss->obj.rot.z = -60.0f; + func_DF4260_80188C7C(boss); + + if ((gFrameCount & 0x1FF) == 0) { + func_800BA808(gMsg_ID_2275, RCID_BOSS_CORNERIA); + } + if ((gFrameCount & 0x1FF) == 0x100) { + func_800BA808(gMsg_ID_2220, RCID_BOSS_CORNERIA); + } + } + boss->obj.rot.x = -boss->obj.rot.z; + } + if (boss->timer_050 == 0) { + s32 temp_v0_3; + + boss->timer_050 = 60; + temp_v0_3 = func_DF4260_80188750(boss); + + if (temp_v0_3 != 0) { + func_DF4260_80187710(D_DF4260_8019B6D8[62], D_DF4260_8019B6D8[63], D_DF4260_8019B6D8[64], 65.0f, + 270.0f, 0.0f, 0, 0, temp_v0_3); + } + } + + boss->unk_068 = __sinf(boss->obj.rot.z * M_DTOR) * 30.0f; + if (!(gFrameCount & 0xF)) { + boss->unk_04C = (s32) (Rand_ZeroOne() * 100.0f); + } + Animation_GetFrameData(&D_602BC18, boss->unk_04C, sp84); + boss->fwork[14] = 0.03f; + break; + case 7: + if (boss->swork[32] != 0) { + boss->fwork[12] += 0.05f; + boss->obj.rot.x += boss->fwork[12]; + if (boss->obj.rot.x > 60.0f) { + boss->obj.rot.x = 60.0f; + func_DF4260_80188C7C(boss); + } + } + + boss->swork[24] = boss->swork[25] = boss->swork[26] = boss->swork[27] = boss->swork[28] = 0; + + if (boss->timer_050 == 12) { + Object_Kill(&gEffects[0].obj, &gEffects[0].sfxPos); + func_8007D0E0(D_DF4260_8019B6D8[62], D_DF4260_8019B6D8[63] - 100.0f, D_DF4260_8019B6D8[64], 25.0f); + } + if (boss->timer_050 == 10) { + for (sp218 = 0; sp218 < 50; sp218++) { + if (gEffects[sp218].obj.status != 0) { + Object_Kill(&gEffects[sp218].obj, &gEffects[sp218].sfxPos); + } + } + func_8007A568(D_DF4260_8019B6D8[62], D_DF4260_8019B6D8[63] - 100.0f, D_DF4260_8019B6D8[64], 40.0f); + func_8007D0E0(D_DF4260_8019B6D8[62], D_DF4260_8019B6D8[63] - 100.0f, D_DF4260_8019B6D8[64], 30.0f); + func_80062B60(D_DF4260_8019B6D8[62], D_DF4260_8019B6D8[64], 0, 120.0f); + D_80178480 = 25; + D_80161734 = 0; + + for (sp218 = 0; sp218 < 100; sp218++) { + func_80079618(D_DF4260_8019B6D8[62] + ((Rand_ZeroOne() - 0.5f) * 600.0f), + (D_DF4260_8019B6D8[63] + ((Rand_ZeroOne() - 0.5f) * 500.0f)) - 100.0f, + D_DF4260_8019B6D8[64] + ((Rand_ZeroOne() - 0.5f) * 600.0f), 2.0f); + } + } + if (boss->timer_050 < 50) { + boss->unk_066 = boss->timer_050 & 7; + + switch (boss->unk_066) { + case 1: + if (boss->swork[2] != 1000) { + boss->unk_062 = 1; + } + break; + case 2: + if (boss->swork[1] != 1000) { + boss->unk_062 = 1; + } + case 3: + if (boss->swork[3] != 1000) { + boss->unk_062 = 1; + } + break; + case 4: + if (boss->swork[7] != 1000) { + boss->unk_062 = 1; + } + case 5: + if (boss->swork[4] != 1000) { + boss->unk_062 = 1; + } + break; + } + } + if (boss->timer_050 == 0) { + Object_Kill(&boss->obj, &boss->sfxPos); + } + Animation_GetFrameData(&D_602BC18, 0, sp84); + break; + default: + Animation_GetFrameData(&D_602C0D0, boss->unk_04C, sp84); + break; + } + Math_SmoothStepToF(&boss->vel.x, sp21C.x, 0.3f, 5.0f, 0.0f); + Math_SmoothStepToF(&boss->vel.z, sp21C.z, 0.3f, 5.0f, 0.0f); + func_DF4260_801887AC(boss); + Math_SmoothStepToVec3fArray(sp84, boss->vwork, 1, 19, boss->fwork[14], 100.0f, 0.0f); + Math_SmoothStepToF(&boss->fwork[14], 1.0f, 1.0f, 0.01f, 0.0f); + + if (boss->unk_04E < 5) { + if (((fabsf(boss->obj.pos.x) > 4000.0f) || (fabsf(boss->obj.pos.z) > 4000.0f)) && (boss->unk_04E != 4)) { + boss->unk_04E = 4; + boss->timer_050 = 150; + D_DF4260_8019B6D8[66] = 0.0f; + D_DF4260_8019B6D8[67] = 0.0f; + boss->swork[31] = 0; + } + if ((boss->unk_04E != 0) && ((boss->unk_04C == 0) || (boss->unk_04C == 52))) { + Audio_PlaySfx(0x29022019U, &boss->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } + if ((gPlayer->unk_4DC != 0) && (boss->unk_04E != 0)) { + boss->unk_04E = 0; + boss->swork[31] = 1; + boss->timer_050 = 100; + boss->fwork[14] = 0.0f; + } + } + } +} +#else +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_DF4260/fox_co/func_DF4260_80189058.s") +#endif + +s32 func_DF4260_8018A434(s32 arg0, Gfx** arg1, Vec3f* arg2, Vec3f* arg3, void* arg4) { + Boss* boss = (Boss*) arg4; + + if (boss->swork[arg0] == 1000) { + *arg1 = 0; + } + + RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, 1001); + switch (arg0) { + case 6: + arg3->x += boss->fwork[1]; + arg3->y += boss->fwork[1]; + arg3->y -= boss->fwork[13] * 0.6f; + break; + case 5: + arg3->x -= boss->fwork[1]; + arg3->y -= boss->fwork[1]; + arg3->z += boss->fwork[1]; + break; + case 4: + arg3->x += boss->fwork[1]; + arg3->y += boss->fwork[1]; + arg3->z -= boss->fwork[1]; + break; + case 9: + arg3->x -= boss->fwork[0]; + arg3->y -= boss->fwork[0]; + arg3->y += boss->fwork[13]; + break; + case 8: + arg3->x += boss->fwork[0]; + arg3->y += boss->fwork[0]; + arg3->z -= boss->fwork[0]; + break; + case 7: + arg3->x -= boss->fwork[0]; + arg3->y -= boss->fwork[0]; + arg3->z += boss->fwork[0]; + break; + case 3: + arg3->x += boss->fwork[2]; + arg3->y += boss->fwork[2]; + arg3->z += D_DF4260_8019B6D8[15]; + break; + case 1: + arg3->x += boss->fwork[4] - D_DF4260_8019B6D8[15]; + arg3->y += boss->fwork[4]; + break; + case 2: + arg3->x += boss->fwork[3] + D_DF4260_8019B6D8[15]; + arg3->y += boss->fwork[3]; + break; + case 16: + arg3->x += D_DF4260_8019B6D8[16]; + break; + } + if ((boss->swork[arg0] & 1) || (boss->timer_05C & 1)) { + RCP_SetupDL_64(); + GPC(64, 64, 255, 255); + } + return false; +} + +static Vec3f D_DF4260_80199814 = { 0.0f, 0.0f, 0.0f }; +static Vec3f D_DF4260_80199820 = { 75.0f, 0.0f, 0.0f }; +static Vec3f D_DF4260_8019982C = { 190.0f, 0.0f, 0.0f }; +static Vec3f D_DF4260_80199838 = { 96.0f, 34.0f, 0.0f }; +static Vec3f D_DF4260_80199844 = { 70.0f, 170.0f, 11.0f }; +static Vec3f D_DF4260_80199850 = { 70.0f, -170.0f, 11.0f }; +static Vec3f D_DF4260_8019985C = { 64.0f, 0.0f, -236.0f }; + +void func_DF4260_8018A730(s32 arg0, Vec3f* arg1, void* arg2) { + s32 pad; + Vec3f sp80; + Vec3f sp74; + Vec3f sp68; + Vec3f sp5C; + Vec3f sp50; + Vec3f sp44; + Vec3f sp38; + Vec3f sp2C; + + sp80 = D_DF4260_80199814; + sp68 = D_DF4260_80199820; + sp5C = D_DF4260_8019982C; + sp50 = D_DF4260_80199838; + sp44 = D_DF4260_80199844; + sp38 = D_DF4260_80199850; + sp2C = D_DF4260_8019985C; + + if ((arg0 >= 4) && (arg0 < 10)) { + Matrix_MultVec3f(gCalcMatrix, &sp80, &sp74); + + D_DF4260_8019B6D8[arg0 + 16] = sp74.x; + D_DF4260_8019B6D8[arg0 + 22] = sp74.y; + D_DF4260_8019B6D8[arg0 + 28] = sp74.z; + Matrix_GetYRPAngles(gCalcMatrix, &sp74); + D_DF4260_8019B6D8[arg0 + 34] = sp74.x; + D_DF4260_8019B6D8[arg0 + 40] = sp74.y; + D_DF4260_8019B6D8[arg0 + 46] = sp74.z; + } + switch (arg0) { + case 1: + Matrix_MultVec3f(gCalcMatrix, &sp68, &sp74); + D_DF4260_8019B6D8[3] = sp74.x; + D_DF4260_8019B6D8[4] = sp74.y; + D_DF4260_8019B6D8[5] = sp74.z; + Matrix_MultVec3f(gCalcMatrix, &sp5C, &sp74); + D_DF4260_8019B6D8[0] = sp74.x; + D_DF4260_8019B6D8[1] = sp74.y; + D_DF4260_8019B6D8[2] = sp74.z; + break; + case 2: + Matrix_MultVec3f(gCalcMatrix, &sp68, &sp74); + D_DF4260_8019B6D8[9] = sp74.x; + D_DF4260_8019B6D8[10] = sp74.y; + D_DF4260_8019B6D8[11] = sp74.z; + Matrix_MultVec3f(gCalcMatrix, &sp5C, &sp74); + D_DF4260_8019B6D8[6] = sp74.x; + D_DF4260_8019B6D8[7] = sp74.y; + D_DF4260_8019B6D8[8] = sp74.z; + break; + case 3: + Matrix_MultVec3f(gCalcMatrix, &sp50, &sp74); + D_DF4260_8019B6D8[12] = sp74.x; + D_DF4260_8019B6D8[13] = sp74.y; + D_DF4260_8019B6D8[14] = sp74.z; + break; + case 17: + Matrix_MultVec3f(gCalcMatrix, &sp44, &sp74); + D_DF4260_8019B6D8[56] = sp74.x; + D_DF4260_8019B6D8[57] = sp74.y; + D_DF4260_8019B6D8[58] = sp74.z; + Matrix_MultVec3f(gCalcMatrix, &sp38, &sp74); + D_DF4260_8019B6D8[59] = sp74.x; + D_DF4260_8019B6D8[60] = sp74.y; + D_DF4260_8019B6D8[61] = sp74.z; + break; + case 10: + Matrix_MultVec3f(gCalcMatrix, &sp2C, &sp74); + D_DF4260_8019B6D8[62] = sp74.x; + D_DF4260_8019B6D8[63] = sp74.y; + D_DF4260_8019B6D8[64] = sp74.z; + break; + default: + break; + } +} + +extern Limb* D_602BE64[]; + +void func_DF4260_8018AA74(Boss* boss) { + Matrix_Translate(gCalcMatrix, 0.0f, 700.0f, 0.0f, (u8) 1); + Animation_DrawSkeleton(2, D_602BE64, boss->vwork, func_DF4260_8018A434, func_DF4260_8018A730, boss, gCalcMatrix); + Matrix_Pop(&gGfxMatrix); + Matrix_Push(&gGfxMatrix); +} + +s32 func_DF4260_8018AB08(s32 arg0, Gfx** arg1, Vec3f* arg2, Vec3f* arg3, void* arg4) { + Actor* actor = (Actor*) arg4; + + if (arg0 == 1) { + arg3->x += actor->fwork[1]; + } + if ((arg0 == 3) && (actor->obj.id == OBJ_ACTOR_176)) { + arg3->x += actor->fwork[1]; + } + return false; +} + +static Vec3f D_DF4260_80199868 = { 0.0f, -10.0f, 0.0f }; + +s32 func_DF4260_8018AB64(Actor* actor) { + s32 pad[2]; + s32 i; + s32 temp_v0; + Vec3f sp7C; + Vec3f sp70 = D_DF4260_80199868; + f32 sp60[4] = { 130.0f, -130.0f, 0.0f, 0.0f }; + f32 sp50[4] = { 0.0f, 0.0f, 130.0f, -130.0f }; + + for (i = 0; i < 4; i++) { + sp7C.x = sp60[i] + actor->obj.pos.x; + sp7C.y = actor->obj.pos.y; + sp7C.z = sp50[i] + actor->obj.pos.z; + temp_v0 = func_8006351C(actor->index, &sp7C, &sp70, 1); + if ((temp_v0 != 0) && (temp_v0 >= 10)) { + if ((gObjects80[temp_v0 - 10].obj.status == 2) && (gObjects80[temp_v0 - 10].obj.id == OBJ_80_40)) { + return temp_v0 - 9; + } + } + } + return 0; +} + +void func_DF4260_8018ACE0(Actor* actor) { + + if (actor->unk_0D0 != 0) { + actor->unk_0D0 = 0; + if (actor->unk_0D2 == 0) { + Audio_PlaySfx(0x29034003, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + func_8007C120(actor->obj.pos.x, actor->obj.pos.y + 200.0f, actor->obj.pos.z, actor->vel.x, actor->vel.y, + actor->vel.z, 0.1f, 20); + actor->timer_0C6 = 15; + actor->unk_0CE -= actor->unk_0D6; + if (actor->unk_0CE <= 0) { + actor->obj.id = OBJ_ACTOR_179; + Object_SetInfo(&actor->info, actor->obj.id); + actor->unk_0B8 = 100; + actor->timer_0BC = 10; + actor->timer_0CA[0] = 0; + actor->vel.x = actor->vel.y = actor->vel.z = 0.0f; + } + } + } + if ((actor->unk_0CE < 11) && !(gFrameCount & 3)) { + func_8007D2C8(((Rand_ZeroOne() - 0.5f) * 100.0f) + actor->obj.pos.x, + ((Rand_ZeroOne() - 0.5f) * 100.0f) + (actor->obj.pos.y + 200.0f), + (Rand_ZeroOne() * 50.0f) + (actor->obj.pos.z + 50.0f), 3.0f); + func_8007C120(actor->obj.pos.x, actor->obj.pos.y + 200.0f, actor->obj.pos.z, actor->vel.x, actor->vel.y, + actor->vel.z, 0.1f, 10); + } +} + +extern AnimationHeader D_602991C; +extern Gfx D_60329C0[]; + +void func_DF4260_8018AED0(Actor* actor) { + Vec3f sp40[20]; + f32 temp_sin; + f32 temp_cos; + + func_DF4260_8018ACE0(actor); + Math_SmoothStepToVec3fArray(sp40, actor->vwork, 0, Animation_GetFrameData(&D_602991C, actor->unk_0B6, sp40), 1.0f, + 1.0f, 1.0f); + temp_sin = __sinf(actor->obj.rot.y * M_DTOR); + actor->vel.x = actor->fwork[0] * temp_sin; + temp_cos = __cosf(actor->obj.rot.y * M_DTOR); + actor->vel.z = actor->fwork[0] * temp_cos; + switch (actor->unk_0B8) { + case 0: + actor->fwork[1] += 20.0f; + Texture_Scroll(&D_60329C0, 16, 16, 1); + actor->unk_0B6 = 0; + actor->fwork[0] += 1.0f; + if (actor->fwork[0] > 10.0f) { + actor->fwork[0] = 10.0f; + } + + actor->iwork[0] = func_DF4260_8018AB64(actor); + if (actor->iwork[0] != 0) { + actor->unk_0B8++; + return; + } + return; + case 1: + actor->unk_0B6++; + actor->fwork[1] += 20.0f; + actor->fwork[0] = 0.0f; + if (actor->unk_0B6 == 50) { + gObjects80[actor->iwork[0] - 1].unk_48 = 1; + } + if (actor->unk_0B6 >= Animation_GetFrameCount(&D_602991C)) { + actor->unk_0B8++; + } + break; + case 2: + actor->unk_0B6 = 0; + actor->fwork[1] += 20.0f; + break; + } +} + +void func_DF4260_8018B0B4(Actor* actor) { + s32 i; + + for (i = 0; i < 50; i++) { + if (gObjects80[i].obj.status == 0) { + Object_80_Initialize(&gObjects80[i]); + gObjects80[i].obj.status = 1; + gObjects80[i].obj.id = OBJ_80_42; + gObjects80[i].obj.pos.x = actor->obj.pos.x; + gObjects80[i].obj.pos.y = actor->obj.pos.y; + gObjects80[i].obj.pos.z = actor->obj.pos.z; + gObjects80[i].obj.rot.y = actor->obj.rot.y; + Object_SetInfo(&gObjects80[i].info, gObjects80[i].obj.id); + actor->iwork[0] = i; + return; + } + } +} + +extern AnimationHeader D_602AA04; + +void func_DF4260_8018B15C(Actor* actor) { + Vec3f sp60[20]; + Vec3f sp54; + Vec3f sp48; + Object_80* temp_s1; + f32 temp_sin; + f32 temp_cos; + + func_DF4260_8018ACE0(actor); + temp_s1 = &gObjects80[actor->iwork[0]]; + temp_sin = __sinf(actor->obj.rot.y * M_DTOR); + actor->vel.x = actor->fwork[0] * temp_sin; + temp_cos = __cosf(actor->obj.rot.y * M_DTOR); + actor->vel.z = actor->fwork[0] * temp_cos; + Matrix_RotateY(gCalcMatrix, actor->obj.rot.y * M_DTOR, 0); + + switch (actor->unk_0B8) { + case 3: + break; + case 0: + actor->timer_0BC = 40; + actor->unk_0B8 = 1; + actor->unk_0B6 = 0; + break; + case 1: + actor->fwork[0] = -10.0f; + Texture_Scroll(&D_60329C0, 16, 16, 1); + if (actor->timer_0BC == 0) { + actor->unk_0B8 = 2; + actor->iwork[2] = (s32) (Rand_ZeroOne() * 10.0f) + 10; + } + break; + case 2: + actor->fwork[0] = -10.0f; + Texture_Scroll(&D_60329C0, 16, 16, 1); + actor->unk_0B6++; + if (actor->unk_0B6 >= Animation_GetFrameCount(&D_602AA04)) { + actor->unk_0B8 = 3; + } + if (actor->unk_0B6 == (Animation_GetFrameCount(&D_602AA04) - actor->iwork[2])) { + actor->iwork[1] = 1; + temp_s1->unk_48 = 1; + sp54.x = 0.0f; + sp54.y = 0.0f; + sp54.z = 30.0f; + Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp54, &sp48); + temp_s1->vel.x = sp48.x; + temp_s1->vel.y = sp48.y; + temp_s1->vel.z = sp48.z; + Audio_PlaySfx(0x2902401C, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } + break; + } + if (actor->iwork[1] == 0) { + temp_s1->obj.pos.x = actor->fwork[2]; + temp_s1->obj.pos.y = actor->fwork[6]; + temp_s1->obj.pos.z = actor->fwork[10]; + temp_s1->obj.rot.y = actor->obj.rot.y; + temp_s1->vel.y = 0.0f; + } + Math_SmoothStepToVec3fArray(sp60, actor->vwork, 0, Animation_GetFrameData(&D_602AA04, actor->unk_0B6, sp60), 1.0f, + 1.0f, 1.0f); +} + +extern AnimationHeader D_602A520; + +void func_DF4260_8018B418(Actor* actor) { + s32 pad; + Vec3f sp54[20]; + Object_80* temp_v0_2; + f32 temp_sin; + f32 temp_cos; + s32 pad2[4]; + + func_DF4260_8018ACE0(actor); + temp_sin = __sinf(actor->obj.rot.y * M_DTOR); + actor->vel.x = actor->fwork[0] * temp_sin; + temp_cos = __cosf(actor->obj.rot.y * M_DTOR); + actor->vel.z = actor->fwork[0] * temp_cos; + switch (actor->unk_0B8) { + case 0: + actor->unk_0B8 = 1; + break; + case 1: + actor->fwork[0] = 5.0f; + actor->fwork[1] += 5.0f; + Texture_Scroll(&D_60329C0, 16, 16, 1); + actor->unk_0B6++; + if (actor->unk_0B6 >= Animation_GetFrameCount(&D_602A520)) { + actor->unk_0B6 = 0; + } + break; + } + if (actor->iwork[1] == 0) { + temp_v0_2 = &gObjects80[actor->iwork[0]]; + temp_v0_2->obj.pos.x = actor->fwork[2]; + temp_v0_2->obj.pos.y = actor->fwork[6]; + temp_v0_2->obj.pos.z = actor->fwork[10]; + temp_v0_2->obj.rot.y = actor->fwork[1]; + temp_v0_2->vel.y = 0.0f; + } + Math_SmoothStepToVec3fArray(sp54, actor->vwork, 0, Animation_GetFrameData(&D_602A520, actor->unk_0B6, sp54), 1.0f, + 1.0f, 1.0f); +} + +void func_DF4260_8018B58C(Actor* actor) { + s32 i; + f32 spB4[4] = { -10.0f, -5.0f, 10.0f, 5.0f }; + f32 spA4[4] = { 10.0f, 15.0f, 10.0f, 15.0f }; + + Math_SmoothStepToF(&actor->vel.x, 0.0f, 0.05f, 1.0f, 0.0001f); + Math_SmoothStepToF(&actor->vel.y, 0.0f, 0.05f, 1.0f, 0.0001f); + Math_SmoothStepToF(&actor->vel.z, 0.0f, 0.05f, 1.0f, 0.0001f); + + switch (actor->unk_0B8) { + case 100: + if (!(actor->timer_0BC & 3)) { + + func_8007D2C8(((Rand_ZeroOne() - 0.5f) * 100.0f) + actor->obj.pos.x, + ((Rand_ZeroOne() - 0.5f) * 100.0f) + (actor->obj.pos.y + 200.0f), + (Rand_ZeroOne() * 50.0f) + (actor->obj.pos.z + 50.0f), 3.0f); + func_8007C120(actor->obj.pos.x, actor->obj.pos.y + 200.0f, actor->obj.pos.z, actor->vel.x, actor->vel.y, + actor->vel.z, 0.1f, 10); + Audio_PlaySfx(0x2903A008, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } + + if (actor->timer_0BC == 0) { + + for (i = 0; i < 4; i++) { + + func_800430DC(actor->fwork[2 + i], actor->fwork[6 + i], actor->fwork[10 + i], 0.0f, 0.0f, 0.0f, + spB4[i] * ((Rand_ZeroOne() * 0.75f) + 0.5f), + spA4[i] * ((Rand_ZeroOne() * 0.75f) + 0.5f), (Rand_ZeroOne() - 0.5f) * 20.0f, 3.0f, + i + 0x18, ((s32) (Rand_ZeroOne() * 30.0f) + 60.0f)); + } + + if ((fabsf(actor->obj.pos.z - gPlayer[0].unk_138) < 500.0f) && + (fabsf(actor->obj.pos.x - gPlayer[0].pos.x) < 200.0f) && + (fabsf(actor->obj.pos.y - gPlayer[0].pos.y) < 200.0f)) { + *D_Timer_80177BD0 = 25; + } + func_80077240(actor->obj.pos.x, actor->obj.pos.y + 250.0f, actor->obj.pos.z, 5); + gHitCount += 6; + D_80177850 = 15; + actor->unk_0B8 = 101; + actor->timer_0BE = 50; + } + if (actor->timer_0BC == 8) { + func_8007BFFC(actor->obj.pos.x, actor->obj.pos.y + 200.0f, actor->obj.pos.z + 50.0f, 0.0f, 0.0f, 0.0f, + 5.0f, 30); + Audio_PlaySfx(0x2903B009, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } + break; + case 101: + if ((actor->timer_0BE != 0) && !(gFrameCount & 1)) { + func_8007797C(actor->obj.pos.x, actor->obj.pos.y + 150.0f, actor->obj.pos.z, 0.0f, 10.0f, 0.0f, 3.0f); + } + break; + } +} + +extern Limb* D_6029A48[]; + +void func_DF4260_8018BAAC(Actor* actor) { + Animation_DrawSkeleton(3, D_6029A48, actor->vwork, func_DF4260_8018AB08, NULL, actor, gCalcMatrix); +} + +static Vec3f D_DF4260_801998B4 = { 120.0f, 0.0f, 0.0f }; + +void func_DF4260_8018BAFC(s32 arg0, Vec3f* arg1, void* arg2) { + Actor* actor = (Actor*) arg2; + Vec3f sp28; + Vec3f sp1C; + + sp28 = D_DF4260_801998B4; + + if (arg0 == 1) { + Matrix_MultVec3f(gCalcMatrix, &sp28, &sp1C); + actor->fwork[2] = sp1C.x; + actor->fwork[6] = sp1C.y; + actor->fwork[10] = sp1C.z; + if (actor->iwork[1] == 0) { + gObjects80[actor->iwork[0]].obj.rot.x = -arg1->y; + } + } +} + +void func_DF4260_8018BBA4(Actor* actor) { + Animation_DrawSkeleton(3, D_6029A48, actor->vwork, NULL, func_DF4260_8018BAFC, actor, gCalcMatrix); +} + +void func_DF4260_8018BBF8(Actor* actor) { + Animation_DrawSkeleton(3, D_6029A48, actor->vwork, func_DF4260_8018AB08, func_DF4260_8018BAFC, actor, gCalcMatrix); +} + +s32 func_DF4260_8018BC50(s32 arg0, Gfx** arg1, Vec3f* arg2, Vec3f* arg3, void* arg4) { + Actor* actor = (Actor*) arg4; + + if ((actor->unk_0B8 == 101) && (arg0 != 8)) { + *arg1 = NULL; + } + return false; +} + +static Vec3f D_DF4260_801998C0 = { 0.0f, 0.0f, 0.0f }; + +void func_DF4260_8018BC84(s32 arg0, Vec3f* arg1, void* arg2) { + Actor* actor = (Actor*) arg2; + Vec3f sp28; + Vec3f sp1C; + + sp28 = D_DF4260_801998C0; + + Matrix_MultVec3f(gCalcMatrix, &sp28, &sp1C); + switch (arg0) { + case 1: + actor->fwork[2] = sp1C.x; + actor->fwork[6] = sp1C.y; + actor->fwork[10] = sp1C.z; + return; + case 2: + actor->fwork[3] = sp1C.x; + actor->fwork[7] = sp1C.y; + actor->fwork[11] = sp1C.z; + return; + case 3: + actor->fwork[4] = sp1C.x; + actor->fwork[8] = sp1C.y; + actor->fwork[12] = sp1C.z; + return; + case 4: + actor->fwork[5] = sp1C.x; + actor->fwork[9] = sp1C.y; + actor->fwork[13] = sp1C.z; + return; + } +} + +void func_DF4260_8018BD7C(Actor* actor) { + Animation_DrawSkeleton(3, D_6029A48, actor->vwork, func_DF4260_8018BC50, func_DF4260_8018BC84, actor, gCalcMatrix); +} + +void func_DF4260_8018BDD4(Boss* boss, f32 arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5, s32 arg6) { + s32 var_v1; + + var_v1 = 0xBF; + + if (func_8008AC54(0) < 4) { + var_v1 = 0xBE; + } + + func_DF4260_80187710(boss->obj.pos.x + arg1, boss->obj.pos.y + arg2, boss->obj.pos.z + arg3, arg4, boss->obj.rot.x, + boss->obj.rot.y, arg5, arg6, var_v1); +} + +void func_DF4260_8018BE7C(Boss* boss) { + s32 i; + s16 temp_s1; + + D_80178284 = 1; + D_801613A0 = 0; + boss->unk_05E = 1; + boss->timer_050 = 354; + boss->unk_060 = 601; + boss->fwork[18] = -D_80161A54 - 10.0f; + if (fabsf(gPlayer[0].unk_0AC) < 1.0f) { + boss->timer_05A = 30000; + boss->obj.pos.z = (gPlayer[0].camEye.z - D_80177D20) - 2000.0f; + Audio_PlaySfx(0x31038018, &boss->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + D_DF4260_8019B6D0 = 0; + } else { + D_DF4260_8019B6D0 = 1; + boss->obj.rot.y = 180.0f; + boss->fwork[6] = 800.0f; + boss->obj.pos.z = gPlayer[0].unk_138 + 2000.0f; + boss->fwork[7] = boss->obj.pos.x; + boss->fwork[5] = 30.0f; + Audio_PlaySfx(0x31038018, &boss->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + boss->swork[10] = 3; + boss->swork[8] = 3; + } + + temp_s1 = boss->timer_05A; + + // Bosses OBJ_BOSS_294 to OBJ_BOSS_296 + for (i = 1; i < 4; i++) { + Boss_Initialize(&gBosses[i]); + gBosses[i].obj.status = 1; + gBosses[i].obj.id = i + 293; + gBosses[i].obj.pos.x = boss->obj.pos.x; + gBosses[i].obj.pos.y = boss->obj.pos.y; + gBosses[i].obj.pos.z = boss->obj.pos.z; + gBosses[i].unk_060 = 200; + gBosses[i].unk_05E = 1; + gBosses[i].timer_05A = temp_s1; + Object_SetInfo(&gBosses[i].info, gBosses[i].obj.id); + gBosses[3].unk_05E = 0; + } +} + +void func_DF4260_8018C0B0(Boss* boss) { + func_8007D9DC(boss->obj.pos.x, D_80177940 + 2.0f, boss->obj.pos.z, 5.0f, 100.0f, 0); + func_8007D9DC(boss->obj.pos.x, D_80177940 + 2.0f, boss->obj.pos.z, 5.0f, 100.0f, 5); + func_8007D9DC(boss->obj.pos.x, D_80177940 + 2.0f, boss->obj.pos.z, 5.0f, 100.0f, 10); + func_8007ADF4(boss->obj.pos.x, D_80177940, boss->obj.pos.z, 1.0f, 10.0f); +} + +static Vec3f D_DF4260_801998CC = { 442.0f, 5.0f, 360.0f }; +static Vec3f D_DF4260_801998D8 = { -439.0f, 180.0f, 323.0f }; +static Vec3f D_DF4260_801998E4 = { -439.0f, -180.0f, 323.0f }; +static Vec3f D_DF4260_801998F0[2] = { + { 0.0f, 50.0f, 473.0f }, + { 300.0f, 70.0f, 200.0f }, +}; +static Vec3f D_DF4260_80199908 = { 230.0f, 30.0f, -200.0f }; +static Vec3f D_DF4260_80199914[2] = { + { 434.0f, -74.0f, -580.0f }, + { -438.0f, -277.0f, -750.0f }, +}; +static Vec3f D_DF4260_8019992C = { -438.0f, 275.0f, -750.0f }; +static Vec3f D_DF4260_80199938 = { -426.0f, 147.0f, 2.0f }; +static Vec3f D_DF4260_80199944 = { -437.0f, -135.0f, 2.0f }; +static Vec3f D_DF4260_80199950 = { -250.0f, 30.0f, -200.0f }; +static Vec3f D_DF4260_8019995C[20] = { + { 67.0f, 44.0f, 377.0f }, { -146.0f, 24.0f, 376.0f }, { -88.0f, 85.0f, -15.0f }, { 105.0f, 89.0f, -169.0f }, + { -107.0f, -36.0f, 367.0f }, { 110.0f, -39.0f, 286.0f }, { -126.0f, -93.0f, 221.0f }, { 88.0f, -94.0f, 155.0f }, + { 126.0f, -179.0f, -101.0f }, { -94.0f, -151.0f, 29.0f }, { 105.0f, -140.0f, 2.0f }, { -18.0f, -101.0f, 77.0f }, + { -60.0f, -151.0f, 29.0f }, { -132.0f, 9.0f, 430.0f }, { 52.0f, 29.0f, 431.0f }, { -23.0f, 68.0f, 325.0f }, + { 116.0f, 34.0f, 368.0f }, { -49.0f, -53.0f, 366.0f }, { 113.0f, -62.0f, 255.0f }, { -114.0f, -88.0f, 182.0f } +}; + +static s32 D_DF4260_80199A4C[4] = { 150, 200, 150, 200 }; + +static f32 D_DF4260_80199A5C[4] = { -225.0f, 0.0f, 225.0f, 0.0f }; + +void func_DF4260_8018C19C(Boss* boss) { + // todo: figure out vec3f stack + s32 pad[9]; + Vec3f sp84[30]; + Vec3f sp78; + Vec3f sp6C; + Effect* effect; + f32 temp_fv0_2; + s32 pad2; + s32 var_v1; + s32 var_v0; + s32 i; + s32 pad3; + f32* temp_a0; + f32* temp_a1; + + D_801613A0++; + Matrix_RotateY(gCalcMatrix, boss->obj.rot.y * M_DTOR, 0); + Matrix_RotateX(gCalcMatrix, boss->obj.rot.x * M_DTOR, 1); + Matrix_RotateZ(gCalcMatrix, boss->obj.rot.z * M_DTOR, 1); + if (D_DF4260_8019B6D0 == 0) { + if (boss->obj.pos.x > 6000.0f) { + Object_Kill(&boss->obj, &boss->sfxPos); + for (i = 1; i < ARRAY_COUNT(gBosses); i++) { + Object_Kill(&gBosses[i].obj, &gBosses[i].sfxPos); + } + return; + } + sp78.x = 0.0f; + sp78.y = 0.0f; + sp78.z = 60.0f; + Matrix_MultVec3f(gCalcMatrix, &sp78, &sp6C); + boss->vel.x = sp6C.x; + boss->vel.y = sp6C.y; + boss->vel.z = sp6C.z - D_80177D08; + boss->fwork[16] = 4.0f; + if (!(gFrameCount & 1)) { + Matrix_MultVec3f(gCalcMatrix, &D_DF4260_80199914[0], &sp84[6]); + Matrix_MultVec3f(gCalcMatrix, &D_DF4260_80199914[1], &sp84[7]); + Matrix_MultVec3f(gCalcMatrix, &D_DF4260_8019992C, &sp84[8]); + func_8007BC7C(sp84[6].x + boss->obj.pos.x, sp84[6].y + boss->obj.pos.y, sp84[6].z + boss->obj.pos.z, 20.0f); + func_8007BC7C(sp84[7].x + boss->obj.pos.x, sp84[7].y + boss->obj.pos.y, sp84[7].z + boss->obj.pos.z, 10.0f); + func_8007BC7C(sp84[8].x + boss->obj.pos.x, sp84[8].y + boss->obj.pos.y, sp84[8].z + boss->obj.pos.z, 10.0f); + } + } else { + if ((D_801613A0 >= 381) && (D_801613A0 < 430)) { + D_80178540 = 5; + D_80178570 = 20; + D_80178574 = 20; + D_80178578 = 20; + gPlayer[0].unk_23C = 100; + } + Matrix_MultVec3f(gCalcMatrix, &D_DF4260_801998CC, &sp84[0]); + Matrix_MultVec3f(gCalcMatrix, &D_DF4260_801998D8, &sp84[1]); + Matrix_MultVec3f(gCalcMatrix, &D_DF4260_801998E4, &sp84[2]); + + if (boss->unk_060 != 601) { + var_v1 = boss->unk_060 - 601; + + if (var_v1 < 0) { + var_v1 *= -1; + } + + for (i = 0; var_v1 >= 60; i++, var_v1 -= 60) {} + + for (var_v0 = 0, var_v1 = 13; var_v0 < i; var_v0++, var_v1++) { + if ((gFrameCount & 0xF) == (var_v0 & 0xF)) { + Matrix_MultVec3f(gCalcMatrix, &D_DF4260_8019995C[var_v0], &sp84[var_v1]); + func_8007D0E0(sp84[var_v1].x + boss->obj.pos.x, sp84[var_v1].y + boss->obj.pos.y, + sp84[var_v1].z + boss->obj.pos.z, boss->fwork[17]); + func_8007C120(sp84[var_v1].x + boss->obj.pos.x, sp84[var_v1].y + boss->obj.pos.y, + sp84[var_v1].z + boss->obj.pos.z, boss->vel.x, boss->vel.y, boss->vel.z, 0.1f, 7); + } + } + } + if (boss->unk_062 != 0) { + boss->unk_062 = 0; + if ((gBosses[1].unk_04E != 0) && (gBosses[2].unk_04E != 0) && (gBosses[3].unk_04E != 0)) { + if (boss->unk_060 >= 2) { + boss->timer_05C = 15; + boss->unk_060 -= boss->unk_064; + if (boss->unk_060 < 120) { + boss->fwork[17] = 2.8f; + Audio_PlaySfx(0x2943500F, &boss->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } else { + Audio_PlaySfx(0x29034003, &boss->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } + } + } else { + Audio_PlaySfx(0x29121007, &boss->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } + } + boss->vel.z = boss->fwork[18]; + if (boss->unk_04E > 0) { + boss->fwork[3] = (gPlayer[0].camEye.z - D_80177D20) - 2500.0f; + } + if (boss->unk_04E != 7) { + Math_SmoothStepToF(&boss->fwork[4], boss->fwork[5], 0.1f, 2.0f, 0.00001f); + Math_SmoothStepToF(&boss->obj.pos.z, boss->fwork[3], 0.1f, boss->fwork[4], 0.00001f); + } + Math_SmoothStepToF(&boss->obj.pos.y, boss->fwork[6], 0.02f, 2.0f, 0.00001f); + Math_SmoothStepToAngle(&boss->fwork[0], boss->fwork[9], 0.2f, 5.0f, 0.00001f); + Math_SmoothStepToAngle(&boss->fwork[1], boss->fwork[10], 0.2f, 5.0f, 0.00001f); + Math_SmoothStepToAngle(&boss->fwork[2], boss->fwork[11], 0.2f, 5.0f, 0.00001f); + if (boss->unk_04E < 6) { + Math_SmoothStepToAngle(&boss->obj.rot.y, boss->fwork[13], 0.03f, boss->fwork[8], 0.00001f); + Math_SmoothStepToF(&boss->fwork[8], boss->fwork[12], 0.1f, 0.02f, 0.001f); + Math_SmoothStepToAngle(&boss->obj.rot.z, boss->fwork[14], 0.03f, boss->fwork[15], 0.00001f); + if (boss->timer_056 == 1) { + boss->fwork[14] = 0.0f; + boss->fwork[15] = 0.5f; + } + } + if ((gBosses[1].unk_04E != 0) && !(gFrameCount & 0xF)) { + Matrix_MultVec3f(gCalcMatrix, &D_DF4260_80199908, &sp84[5]); + func_8007D0E0(gBosses[0].obj.pos.x + sp84[5].x, gBosses[0].obj.pos.y + sp84[5].y, + gBosses[0].obj.pos.z + sp84[5].z, 5.0f); + } + if (gBosses[2].unk_04E != 0) { + gBosses[3].unk_05E = 1; + if (gBosses[3].unk_04E != 0) { + if (!(gFrameCount & 7)) { + Matrix_MultVec3f(gCalcMatrix, &D_DF4260_80199950, &sp84[11]); + func_8007D0E0(gBosses[0].obj.pos.x + sp84[11].x, gBosses[0].obj.pos.y + sp84[11].y, + gBosses[0].obj.pos.z + sp84[11].z, 7.0f); + } + } else if (!(gFrameCount & 0xF)) { + Matrix_MultVec3f(gCalcMatrix, &D_DF4260_80199938, &sp84[9]); + func_8007D0E0(gBosses[0].obj.pos.x + sp84[9].x, gBosses[0].obj.pos.y + sp84[9].y, + gBosses[0].obj.pos.z + sp84[9].z, 5.0f); + } + } + if ((gBosses[3].unk_04E != 0) && (gBosses[2].unk_04E == 0) && !(gFrameCount & 0xF)) { + Matrix_MultVec3f(gCalcMatrix, &D_DF4260_80199944, &sp84[10]); + func_8007D0E0(gBosses[0].obj.pos.x + sp84[10].x, gBosses[0].obj.pos.y + sp84[10].y, + gBosses[0].obj.pos.z + sp84[10].z, 5.0f); + } + + if (((boss->unk_04E == 1) || (boss->unk_04E == 2)) && !(gFrameCount & 7)) { + Matrix_MultVec3f(gCalcMatrix, &D_DF4260_80199914[0], &sp84[6]); + Matrix_MultVec3f(gCalcMatrix, &D_DF4260_80199914[1], &sp84[7]); + Matrix_MultVec3f(gCalcMatrix, &D_DF4260_8019992C, &sp84[8]); + func_8007BC7C(sp84[6].x + boss->obj.pos.x, sp84[6].y + boss->obj.pos.y, sp84[6].z + boss->obj.pos.z, 20.0f); + func_8007BC7C(sp84[7].x + boss->obj.pos.x, sp84[7].y + boss->obj.pos.y, sp84[7].z + boss->obj.pos.z, 10.0f); + func_8007BC7C(sp84[8].x + boss->obj.pos.x, sp84[8].y + boss->obj.pos.y, sp84[8].z + boss->obj.pos.z, 10.0f); + } + if (boss->timer_052 != 0) { + Math_SmoothStepToF(&D_801779A8[0], 50.0f, 1.0f, 1.6f, 0.0001f); + } + + switch (boss->unk_04E) { + case 0: + boss->fwork[3] = gPlayer[0].unk_138 + 1500.0f; + if (boss->timer_050 == 350) { + func_800182F4(0x102800FF); + func_800182F4(0x112800FF); + func_800BA808(gMsg_ID_2290, RCID_BOSS_CORNERIA2); + } + if (boss->timer_050 == 180) { + func_800BA808(gMsg_ID_2298, RCID_PEPPY); + boss->timer_052 = 350; + } + if (boss->timer_050 == 0) { + boss->obj.pos.y = 900.0f; + boss->unk_04E = 1; + boss->fwork[13] = 180.0f; + boss->fwork[12] = 1.5f; + boss->fwork[6] = 800.0f; + boss->fwork[3] = gPlayer[0].camEye.z - D_80177D20 - 2500.0f; + boss->fwork[18] = -D_80161A54; + func_8001D444(0, 0x8030, 0, 0xFF); + boss->timer_050 = 40; + } + break; + case 1: + if (boss->timer_050 == 0) { + boss->unk_04E = 2; + boss->fwork[8] = 0.0f; + boss->fwork[13] = 359.9f; + boss->timer_050 = 250; + } + break; + case 2: + if (boss->timer_050 == 0) { + boss->unk_04E = 3; + boss->swork[0] = 4; + boss->timer_050 = 75; + boss->timer_054 = 0; + boss->fwork[8] = 0.0f; + func_800BA808(gMsg_ID_2291, RCID_BOSS_CORNERIA2); + boss->swork[4]++; + } + break; + case 3: + boss->fwork[12] = 1.5f; + boss->fwork[11] = 0.0f; + boss->fwork[9] = 0.0f; + boss->fwork[10] = 0.0f; + boss->fwork[13] = 0.0f; + if (boss->timer_050 == 0) { + boss->unk_04E = boss->swork[0]; + boss->timer_050 = 60; + boss->fwork[8] = 0.0f; + Audio_PlaySfx(0x2940201A, &boss->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } + break; + case 4: + boss->fwork[11] = 120.0f; + boss->fwork[13] = 340.0f; + if ((boss->timer_050 == 0) || (gBosses[1].unk_04E != 0)) { + boss->unk_04E = 3; + boss->swork[0] = 5; + boss->timer_050 = 20; + boss->fwork[8] = 0.0f; + if (gBosses[1].unk_04E == 0) { + Audio_PlaySfx(0x2940201A, &boss->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } + if ((boss->swork[5] == 0) && ((gBosses[2].unk_04E == 0) || (gBosses[3].unk_04E == 0))) { + func_800BA808(gMsg_ID_2292, RCID_BOSS_CORNERIA2); + } + boss->swork[5]++; + boss->swork[5] &= 3; + } else if ((boss->fwork[2] > 60.0f) && (boss->timer_054 == 0)) { + boss->timer_054 = 20; + func_DF4260_8018BDD4(boss, sp84[0].x, sp84[0].y, sp84[0].z, 30.0f, 0, 1); + } + break; + case 5: + boss->fwork[9] = 120.0f; + boss->fwork[10] = 120.0f; + boss->fwork[13] = 20.0f; + if ((boss->fwork[0] > 60.0f) && (gBosses[2].unk_04E == 0) && (boss->swork[1] == 0)) { + func_DF4260_8018BDD4(boss, sp84[1].x, sp84[1].y + 50.0f, sp84[1].z, 45.0f, 0, 0); + Audio_PlaySfx(0x2903201B, &boss->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + func_DF4260_8018BDD4(boss, sp84[1].x, sp84[1].y - 50.0f, sp84[1].z, 40.0f, 0, 0); + boss->swork[1] = 1; + } + if ((boss->fwork[1] > 60.0f) && (gBosses[3].unk_04E == 0) && (boss->swork[2] == 0)) { + func_DF4260_8018BDD4(boss, sp84[2].x, sp84[2].y + 50.0f, sp84[2].z, 35.0f, 0, 0); + Audio_PlaySfx(0x2903201B, &boss->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + func_DF4260_8018BDD4(boss, sp84[2].x, sp84[2].y - 50.0f, sp84[2].z, 30.0f, 0, 0); + boss->swork[2] = 1; + } + if ((boss->timer_050 == 0) || ((gBosses[3].unk_04E != 0) && (gBosses[2].unk_04E != 0))) { + boss->unk_04E = 3; + boss->swork[0] = 4; + boss->timer_050 = 70; + boss->swork[1] = 0; + boss->swork[2] = 0; + boss->fwork[8] = 0.0f; + if ((boss->swork[4] == 0) && (gBosses[1].unk_04E == 0)) { + func_800BA808(gMsg_ID_2291, RCID_BOSS_CORNERIA2); + } + if ((boss->swork[4] == 2) && (boss->swork[7] == 0) && + ((gBosses[3].unk_04E == 0) || (gBosses[2].unk_04E == 0) || (gBosses[1].unk_04E == 0))) { + func_800BA808(gMsg_ID_2299, RCID_PEPPY); + boss->swork[7]++; + } + boss->swork[4]++; + boss->swork[4] &= 3; + if ((gBosses[3].unk_04E == 0) && (gBosses[2].unk_04E == 0)) { + Audio_PlaySfx(0x2940201A, &boss->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } + } + break; + case 6: + Math_SmoothStepToAngle(&boss->obj.rot.y, boss->fwork[13], 0.1f, 5.0f, 0.01f); + Math_SmoothStepToAngle(&boss->obj.rot.z, boss->fwork[14], 0.1f, 5.0f, 0.01f); + if ((boss->obj.rot.y == 0.0f) || (boss->timer_058 == 0)) { + boss->timer_058 = 0; + boss->unk_04E = 7; + boss->obj.rot.z = 0.0f; + boss->obj.rot.y = 0.0f; + } + break; + case 7: + boss->fwork[3] = (gPlayer[0].camEye.z - D_80177D20) - 4000.0f; + Math_SmoothStepToF(&boss->obj.pos.z, boss->fwork[3], 0.1f, 15.0f, 0.00001f); + if (boss->timer_058 == 0) { + + boss->timer_058 = D_DF4260_80199A4C[boss->swork[3]]; + boss->fwork[20] = D_DF4260_80199A5C[boss->swork[3]]; + boss->swork[3]++; + boss->swork[3] &= 3; + boss->fwork[8] = 0.0f; + + if ((boss->swork[3] != 1) || (boss->swork[3] != 3)) { + func_8001A55C(&boss->sfxPos, 0x31034025); + boss->swork[9] = 0; + } + } + + if ((boss->swork[3] == 0) || (boss->swork[3] == 2)) { + + if ((boss->obj.rot.y < 20.0f) && (boss->obj.rot.y > -20.0f)) { + if (boss->swork[9] == 0) { + boss->swork[9]++; + Audio_PlaySfx(0x31034025, &boss->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + if (boss->swork[6] == 0) { + func_800BA808(gMsg_ID_2293, RCID_BOSS_CORNERIA2); + } + boss->swork[6]++; + boss->swork[6] &= 1; + } + if (!(gFrameCount & 7)) { + if (fabsf(boss->obj.pos.z - gPlayer[0].unk_138) > 700.0f) { + + Matrix_MultVec3f(gCalcMatrix, &D_DF4260_801998F0[0], &sp84[3]); + effect = gEffects; + for (i = 0; i < 100; i++, effect++) { + if (effect->obj.status == 0) { + Effect_Initialize(effect); + effect->obj.status = 1; + effect->obj.id = OBJ_EFFECT_398; + effect->timer_50 = 100; + effect->unk_44 = 1; + effect->scale2 = 1.0f; + effect->obj.rot.z = 30.0f; + effect->obj.pos.x = sp84[3].x + boss->obj.pos.x; + effect->obj.pos.y = sp84[3].y + boss->obj.pos.y; + effect->obj.pos.z = sp84[3].z + boss->obj.pos.z; + Object_SetInfo(&effect->info, effect->obj.id); + break; + } + } + + if (i >= 60) { + effect->obj.status = 0; + } + } + } + } + } + if (boss->unk_060 < 2) { + D_8017796C = -1; + func_8001A55C(&boss->sfxPos, 0x31034025); + func_800182F4(0x102800FF); + func_800182F4(0x112800FF); + Audio_PlaySfx(0x2940D09A, &boss->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + D_Timer_80161A60 = 8; + D_80161734 = 0; + func_800BA808(gMsg_ID_2294, RCID_BOSS_CORNERIA2); + boss->unk_060 = 1; + boss->timer_056 = 150; + boss->unk_04E = 8; + boss->fwork[19] = 15.0f; + } else { + Math_SmoothStepToF(&boss->fwork[8], 3.0f, 0.1f, 0.5f, 0.001f); + Math_SmoothStepToAngle(&boss->obj.rot.z, boss->fwork[14], 0.1f, 3.0f, 0.00001f); + temp_fv0_2 = Math_SmoothStepToF(&boss->obj.rot.y, boss->fwork[20], 0.1f, boss->fwork[8], 0.00001f); + boss->fwork[14] = 0.0f; + if (temp_fv0_2 < -1.0f) { + boss->fwork[14] = 25.0f; + } + if (temp_fv0_2 > 1.0f) { + boss->fwork[14] = 335.0f; + } + sp78.x = 0.0f; + sp78.y = 0.0f; + sp78.z = 40.0f; + Matrix_MultVec3f(gCalcMatrix, &sp78, &sp6C); + boss->vel.x = sp6C.x; + boss->vel.y = sp6C.y; + boss->vel.z = sp6C.z - D_80177D08; + } + break; + case 8: + D_801779A8[0] = 20.0f; + if (!(gFrameCount & 0x1F)) { + for (i = 0; i < 10; i++) { + func_80079618(((Rand_ZeroOne() - 0.5f) * 300.0f) + boss->obj.pos.x, boss->obj.pos.y, + boss->obj.pos.z, 1.0f); + } + } + Math_SmoothStepToF(&boss->obj.pos.x, boss->fwork[7], 1.0f, 10.0f, 0.00001f); + Math_SmoothStepToF(&boss->vel.x, 0.0f, 0.1f, 2.0f, 0.00001f); + Math_SmoothStepToF(&boss->vel.y, 0.0f, 0.1f, 2.0f, 0.00001f); + Math_SmoothStepToF(&boss->vel.z, 0.0f, 0.1f, 2.0f, 0.00001f); + if (boss->obj.rot.z == boss->fwork[14]) { + if (boss->fwork[14] == boss->fwork[19]) { + boss->fwork[14] = 360.0f - boss->fwork[19]; + } else { + boss->fwork[14] = boss->fwork[19]; + } + } + Math_SmoothStepToAngle(&boss->obj.rot.z, boss->fwork[14], 1.0f, 1.0f, 0.001f); + if (boss->unk_060 != 0) { + if (boss->timer_056 == 0) { + func_80042EC0(boss); + boss->fwork[17] = 10.0f; + boss->vel.y *= 1.5f; + D_80177930 = 1; + if ((gPlayer[0].state_1C8 == 3) || (gPlayer[0].state_1C8 == 5)) { + func_8004319C(gPlayer, boss->obj.pos.x, boss->obj.pos.y, boss->obj.pos.z); + } + boss->unk_060--; + boss->fwork[8] = 0.0f; + func_800BA808(gMsg_ID_2296, RCID_BOSS_CORNERIA2); + } else { + Math_SmoothStepToF(&boss->obj.rot.y, 0.0f, 0.1f, boss->fwork[8], 0.00001f); + sp78.x = 0.0f; + sp78.y = 0.0f; + sp78.z = 20.0f; + Matrix_MultVec3f(gCalcMatrix, &sp78, &sp6C); + boss->vel.x = sp6C.x; + boss->vel.y = sp6C.y; + boss->vel.z = sp6C.z - D_80177D08; + if (boss->timer_056 == 60) { + func_800BA808(gMsg_ID_2295, RCID_FOX); + } + } + } else { + boss->unk_04E = 9; + } + break; + case 9: + if (!(gFrameCount & 0xF)) { + for (i = 0; i < 10; i++) { + func_80079618(((Rand_ZeroOne() - 0.5f) * 300.0f) + boss->obj.pos.x, boss->obj.pos.y, + boss->obj.pos.z, 1.0f); + } + } + Math_SmoothStepToF(&boss->vel.x, 0.0f, 0.1f, 2.0f, 0.00001f); + Math_SmoothStepToF(&boss->vel.y, 0.0f, 0.1f, 2.0f, 0.00001f); + Math_SmoothStepToF(&boss->vel.z, 0.0f, 0.1f, 2.0f, 0.00001f); + boss->obj.rot.z -= 2.0f; + boss->gravity = 1.0f; + if (boss->obj.pos.y < (D_80177940 + 150.0f)) { + D_80178480 = 100; + func_80081A8C(boss->obj.pos.x, boss->obj.pos.y, boss->obj.pos.z, 40.0f, 12); + boss->timer_050 = 20; + boss->vel.y = -10.0f; + boss->gravity = 0.0f; + boss->fwork[17] = 20.0f; + func_DF4260_8018C0B0(boss); + boss->unk_04E = 10; + } + break; + case 10: + if (!(gFrameCount & 7)) { + for (i = 0; i < 10; i++) { + func_80079618(((Rand_ZeroOne() - 0.5f) * 300.0f) + boss->obj.pos.x, boss->obj.pos.y, + boss->obj.pos.z, 1.0f); + } + } + if (boss->timer_050 == 0) { + func_8007A568(boss->obj.pos.x, boss->obj.pos.y + 500.0f, boss->obj.pos.z, 120.0f); + Object_Kill(&boss->obj, &boss->sfxPos); + } + break; + } + temp_a0 = SEGMENTED_TO_VIRTUAL(D_603E748); + temp_a1 = SEGMENTED_TO_VIRTUAL(D_603E7C4); + temp_a0[9] = -100000.0f; + temp_a0[3] = 172.0f; + temp_a1[9] = -100000.0f; + temp_a1[3] = -150.0f; + if (boss->fwork[0] > 60.0f) { + temp_a0[3] = -100000.0f; + temp_a0[9] = 543.0f; + } + if (boss->fwork[1] > 60.0f) { + temp_a1[3] = -100000.0f; + temp_a1[9] = -557.0f; + } + boss->fwork[16] = 4.0f; + if ((boss->swork[10] == 0) && (boss->unk_04E < 6)) { + boss->fwork[17] = 1.8f; + Audio_PlaySfx(0x11020084, &boss->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + boss->timer_058 = 71; + boss->unk_04E = 6; + boss->fwork[12] = 0.0f; + boss->fwork[8] = 0.0f; + boss->fwork[14] = 0.0f; + boss->fwork[13] = 0.0f; + } + + if (D_801613A0 == 430) { + func_800BA808(gMsg_ID_2225, RCID_SLIPPY); + } + if (D_801613A0 == 586) { + D_80161734 = 1; + } + if (D_801613A0 >= 587) { + D_80177848 = (boss->unk_060 / 601.0f) * 255.0f; + } + } +} + +static Vec3f D_DF4260_80199A6C = { -270.0f, 0.0f, 200.0f }; +static Vec3f D_DF4260_80199A78 = { 440.0f, 0.0f, 0.0f }; + +void func_DF4260_8018DDAC(Boss* boss) { + Vec3f sp4C; + Vec3f sp40; + s32 i; + + switch (boss->unk_04E) { + case 0: + if (boss->unk_062 != 0) { + boss->unk_062 = 0; + if (boss->unk_066 == 0) { + if (boss->fwork[2] > 60.0f) { + if (boss->unk_060 != 0) { + boss->timer_05C = 15; + boss->unk_060 -= boss->unk_064; + Audio_PlaySfx(0x29034003, &boss->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + if (boss->unk_060 <= 0) { + gBosses[0].swork[8]--; + if (gBosses[0].swork[8] != 0) { + func_800BA808(gMsg_ID_15130, RCID_FALCO); + } else { + func_800BA808(gMsg_ID_7085, RCID_FALCO); + } + boss->info.unk_10 = 300.0f; + gBosses[0].fwork[14] = 25.0f; + gBosses[0].fwork[15] = 0.0f; + Audio_PlaySfx(0x2940C027, &boss->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + if (gBosses[0].swork[10] != 0) { + gBosses[0].swork[10]--; + } + gBosses[0].timer_056 = 30; + boss->unk_04E = 1; + Matrix_MultVec3f(gCalcMatrix, &D_DF4260_80199A6C, &sp4C); + + for (i = 0; i < 10; i++) { + func_80079618(boss->obj.pos.x + sp4C.x, boss->obj.pos.y + sp4C.y, + boss->obj.pos.z + sp4C.z, 1.0f); + } + + if ((gBosses[2].unk_04E == 1) && (gBosses[3].unk_04E == 1)) { + gBosses[0].fwork[14] = 335.0f; + } + } + } + } + } else { + Audio_PlaySfx(0x29121007, &boss->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } + } + boss->obj.rot.x = gBosses[0].obj.rot.x; + boss->obj.rot.y = gBosses[0].obj.rot.y; + boss->obj.rot.z = gBosses[0].obj.rot.z; + Matrix_RotateY(gCalcMatrix, boss->obj.rot.y * M_DTOR, 0); + Matrix_RotateX(gCalcMatrix, boss->obj.rot.x * M_DTOR, 1); + Matrix_RotateZ(gCalcMatrix, boss->obj.rot.z * M_DTOR, 1); + Matrix_MultVec3f(gCalcMatrix, &D_DF4260_80199A78, &sp40); + boss->obj.pos.x = gBosses[0].obj.pos.x + sp40.x; + boss->obj.pos.y = gBosses[0].obj.pos.y + sp40.y; + boss->obj.pos.z = gBosses[0].obj.pos.z + sp40.z; + boss->fwork[2] = gBosses[0].fwork[2]; + break; + case 1: + Matrix_RotateZ(gCalcMatrix, boss->obj.rot.z * M_DTOR, 0); + gBosses[0].fwork[15] += 0.5f; + + if (!(gFrameCount & 7) && (Rand_ZeroOne() < 0.5f)) { + boss->timer_05C = 4; + } + + if (!(gFrameCount & 1)) { + Matrix_MultVec3f(gCalcMatrix, &D_DF4260_80199A6C, &sp4C); + func_8007C120(boss->obj.pos.x + sp4C.x, boss->obj.pos.y + sp4C.y, boss->obj.pos.z + sp4C.z, boss->vel.x, + boss->vel.y, boss->vel.z, 0.2f, 10); + } + + if (boss->obj.pos.y < (D_80177940 + 150.0f)) { + if (boss->swork[0] == 0) { + boss->vel.y = -5.0f; + boss->swork[0] = 1; + boss->gravity = 0.0f; + func_DF4260_8018C0B0(boss); + Audio_PlaySfx(0x19000014, &boss->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } + } else { + boss->obj.rot.z -= 2.0f; + boss->gravity = 1.0f; + } + break; + } +} + +static Vec3f D_DF4260_80199A84 = { 20.0f, -90.0f, 0.0f }; + +static Vec3f D_DF4260_80199A90 = { -440.0f, 210.0f, 0.0f }; + +void func_DF4260_8018E290(Boss* boss) { + Vec3f sp4C; + Vec3f sp40; + s32 i; + + switch (boss->unk_04E) { + case 0: + if (boss->unk_062 != 0) { + boss->unk_062 = 0; + if (boss->unk_066 == 2) { + if (boss->fwork[0] > 60.0f) { + if (boss->unk_060 != 0) { + boss->timer_05C = 15; + boss->unk_060 -= boss->unk_064; + Audio_PlaySfx(0x29034003, &boss->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + if (boss->unk_060 <= 0) { + gBosses[0].swork[8]--; + if (gBosses[0].swork[8] != 0) { + func_800BA808(gMsg_ID_15130, RCID_FALCO); + } else { + func_800BA808(gMsg_ID_7085, RCID_FALCO); + } + boss->info.unk_10 = 300.0f; + gBosses[0].fwork[15] = 0.0f; + gBosses[0].fwork[14] = 335.0f; + boss->unk_060 = 0; + Audio_PlaySfx(0x2940C027, &boss->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + if (gBosses[0].swork[10] != 0) { + gBosses[0].swork[10]--; + } + gBosses[0].timer_056 = 30; + boss->unk_04E = 1; + Matrix_MultVec3f(gCalcMatrix, &D_DF4260_80199A84, &sp4C); + for (i = 0; i < 10; i++) { + func_80079618(boss->obj.pos.x + sp4C.x, boss->obj.pos.y + sp4C.y, + boss->obj.pos.z + sp4C.z, 1.0f); + } + if (gBosses[1].unk_04E == 1) { + gBosses[0].fwork[14] = 25.0f; + } + } + } + } + } else { + Audio_PlaySfx(0x29121007, &boss->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } + } + boss->obj.rot.x = gBosses[0].obj.rot.x; + boss->obj.rot.y = gBosses[0].obj.rot.y; + boss->obj.rot.z = gBosses[0].obj.rot.z; + Matrix_RotateY(gCalcMatrix, boss->obj.rot.y * M_DTOR, 0); + Matrix_RotateX(gCalcMatrix, boss->obj.rot.x * M_DTOR, 1); + Matrix_RotateZ(gCalcMatrix, boss->obj.rot.z * M_DTOR, 1); + Matrix_MultVec3f(gCalcMatrix, &D_DF4260_80199A90, &sp40); + boss->obj.pos.x = gBosses[0].obj.pos.x + sp40.x; + boss->obj.pos.y = gBosses[0].obj.pos.y + sp40.y; + boss->obj.pos.z = gBosses[0].obj.pos.z + sp40.z; + boss->fwork[0] = gBosses[0].fwork[0]; + break; + case 1: + Matrix_RotateZ(gCalcMatrix, boss->obj.rot.z * M_DTOR, 0); + gBosses[0].fwork[15] += 0.5f; + + if (!(gFrameCount & 7) && (Rand_ZeroOne() < 0.5f)) { + boss->timer_05C = 4; + } + + if (!(gFrameCount & 1)) { + Matrix_MultVec3f(gCalcMatrix, &D_DF4260_80199A84, &sp4C); + func_8007C120(boss->obj.pos.x + sp4C.x, boss->obj.pos.y + sp4C.y, boss->obj.pos.z + sp4C.z, boss->vel.x, + boss->vel.y, boss->vel.z, 0.2f, 10); + } + + if (boss->obj.pos.y < (D_80177940 + 150.0f)) { + if (boss->swork[0] == 0) { + boss->vel.y = -5.0f; + boss->swork[0] = 1; + boss->gravity = 0.0f; + func_DF4260_8018C0B0(boss); + Audio_PlaySfx(0x19000014, &boss->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } + } else { + boss->obj.rot.z -= 2.0f; + boss->gravity = 1.0f; + } + break; + } +} + +static Vec3f D_DF4260_80199A9C = { 20.0f, 90.0f, 0.0f }; + +static Vec3f D_DF4260_80199AA8 = { -440.0f, -210.0f, 0.0f }; + +void func_DF4260_8018E76C(Boss* boss) { + Vec3f sp4C; + Vec3f sp40; + s32 i; + + switch (boss->unk_04E) { + case 0: + if (boss->unk_062 != 0) { + boss->unk_062 = 0; + if (boss->unk_066 == 2) { + if (boss->fwork[1] > 60.0f) { + if (boss->unk_060 != 0) { + boss->timer_05C = 15; + boss->unk_060 -= boss->unk_064; + Audio_PlaySfx(0x29034003, &boss->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + if (boss->unk_060 <= 0) { + gBosses[0].swork[8]--; + if (gBosses[0].swork[8] != 0) { + func_800BA808(gMsg_ID_15130, RCID_FALCO); + } else { + func_800BA808(gMsg_ID_7085, RCID_FALCO); + } + boss->info.unk_10 = 300.0f; + gBosses[0].fwork[15] = 0.0f; + gBosses[0].fwork[14] = 335.0f; + boss->unk_060 = 0; + Audio_PlaySfx(0x2940C027, &boss->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + if (gBosses[0].swork[10] != 0) { + gBosses[0].swork[10]--; + } + gBosses[0].timer_056 = 30; + boss->unk_04E = 1; + gBosses[0].fwork[6] = 500.0f; + Matrix_MultVec3f(gCalcMatrix, &D_DF4260_80199A9C, &sp4C); + + for (i = 0; i < 10; i++) { + func_80079618(boss->obj.pos.x + sp4C.x, boss->obj.pos.y + sp4C.y, + boss->obj.pos.z + sp4C.z, 1.0f); + } + + if (gBosses[1].unk_04E == 1) { + gBosses[0].fwork[14] = 25.0f; + } + } + } + } + } else { + Audio_PlaySfx(0x29121007, &boss->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } + } + boss->obj.rot.x = gBosses[0].obj.rot.x; + boss->obj.rot.y = gBosses[0].obj.rot.y; + boss->obj.rot.z = gBosses[0].obj.rot.z; + Matrix_RotateY(gCalcMatrix, boss->obj.rot.y * M_DTOR, 0); + Matrix_RotateX(gCalcMatrix, boss->obj.rot.x * M_DTOR, 1); + Matrix_RotateZ(gCalcMatrix, boss->obj.rot.z * M_DTOR, 1); + Matrix_MultVec3f(gCalcMatrix, &D_DF4260_80199AA8, &sp40); + boss->obj.pos.x = gBosses[0].obj.pos.x + sp40.x; + boss->obj.pos.y = gBosses[0].obj.pos.y + sp40.y; + boss->obj.pos.z = gBosses[0].obj.pos.z + sp40.z; + boss->fwork[1] = gBosses[0].fwork[1]; + break; + case 1: + Matrix_RotateZ(gCalcMatrix, boss->obj.rot.z * M_DTOR, 0); + gBosses[0].fwork[15] += 0.5f; + if (!(gFrameCount & 7) && (Rand_ZeroOne() < 0.5f)) { + boss->timer_05C = 4; + } + if (!(gFrameCount & 1)) { + Matrix_MultVec3f(gCalcMatrix, &D_DF4260_80199A9C, &sp4C); + func_8007C120(boss->obj.pos.x + sp4C.x, boss->obj.pos.y + sp4C.y, boss->obj.pos.z + sp4C.z, boss->vel.x, + boss->vel.y, boss->vel.z, 0.2f, 10); + } + if (boss->obj.pos.y < (D_80177940 + 150.0f)) { + if (boss->swork[0] == 0) { + boss->vel.y = -5.0f; + boss->swork[0] = 1; + boss->gravity = 0.0f; + func_DF4260_8018C0B0(boss); + Audio_PlaySfx(0x19000014, &boss->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } + } else { + boss->obj.rot.z -= 2.0f; + boss->gravity = 1.0f; + } + break; + } +} + +s32 func_DF4260_8018EC54(s32 arg0, Gfx** arg1, Vec3f* arg2, Vec3f* arg3, void* arg4) { + if ((arg0 == 10) && (gBosses[2].unk_04E != 0) && (gBosses[3].unk_04E != 0)) { + *arg1 = NULL; + } + if ((arg0 != 12) && (arg0 != 10)) { + *arg1 = NULL; + } + return false; +} + +extern AnimationHeader D_602D400; +extern Limb* D_602D5AC[]; + +void func_DF4260_8018ECAC(Boss* boss) { + + Animation_GetFrameData(&D_602D400, 0, boss->vwork); + Animation_DrawSkeleton(1, D_602D5AC, boss->vwork, func_DF4260_8018EC54, NULL, &boss->index, &gIdentityMatrix); +} + +s32 func_DF4260_8018ED1C(s32 arg0, Gfx** arg1, Vec3f* arg2, Vec3f* arg3, void* arg4) { + if (arg0 == 5) { + arg3->y -= gBosses[*(s32*) arg4].fwork[2]; + } + if ((arg0 != 6) && (arg0 != 5)) { + *arg1 = NULL; + } + return 0; +} + +void func_DF4260_8018ED78(Boss* boss) { + + Matrix_Translate(gGfxMatrix, -D_DF4260_80199A78.x, -D_DF4260_80199A78.y, 0.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + Animation_GetFrameData(&D_602D400, 0, boss->vwork); + Animation_DrawSkeleton(1, D_602D5AC, boss->vwork, func_DF4260_8018ED1C, NULL, &boss->index, &gIdentityMatrix); +} + +s32 func_DF4260_8018EE2C(s32 arg0, Gfx** arg1, Vec3f* arg2, Vec3f* arg3, void* arg4) { + if (arg0 == 1) { + arg3->z -= gBosses[*(s32*) arg4].fwork[0]; + } + if ((arg0 != 1) && (arg0 != 2)) { + *arg1 = NULL; + } + return 0; +} + +void func_DF4260_8018EE84(Boss* boss) { + + Matrix_Translate(gGfxMatrix, -D_DF4260_80199A90.x, -D_DF4260_80199A90.y, 0.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + Animation_GetFrameData(&D_602D400, 0, boss->vwork); + Animation_DrawSkeleton(1, D_602D5AC, boss->vwork, func_DF4260_8018EE2C, NULL, &boss->index, &gIdentityMatrix); +} + +s32 func_DF4260_8018EF38(s32 arg0, Gfx** arg1, Vec3f* arg2, Vec3f* arg3, void* arg4) { + if (arg0 == 3) { + arg3->z -= gBosses[*(s32*) arg4].fwork[1]; + } + if ((arg0 != 3) && (arg0 != 4)) { + *arg1 = NULL; + } + return 0; +} + +void func_DF4260_8018EF90(Boss* boss) { + + Matrix_Translate(gGfxMatrix, -D_DF4260_80199AA8.x, -D_DF4260_80199AA8.y, 0.0f, 1); + Matrix_SetGfxMtx(&gMasterDisp); + Animation_GetFrameData(&D_602D400, 0, boss->vwork); + Animation_DrawSkeleton(1, D_602D5AC, boss->vwork, func_DF4260_8018EF38, NULL, &boss->index, &gIdentityMatrix); +} + +extern f32 D_603E924[]; + +void func_DF4260_8018F044(Object_80* obj80) { + + switch (obj80->unk_48) { + case 0: + if (obj80->unk_50 != 0) { + obj80->unk_50 = 0; + if (obj80->unk_54 < 2) { + obj80->unk_44++; + obj80->timer_4C = 5; + obj80->vel.x += 2.0f; + obj80->vel.y += 2.0f; + if (obj80->unk_44 >= 3) { + obj80->unk_48 = 1; + obj80->info.hitbox = SEGMENTED_TO_VIRTUAL(&D_603E924); + Audio_PlaySfx(0x1900000D, &obj80->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + return; + } + Audio_PlaySfx(0x2903300E, &obj80->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } + } + break; + case 1: + Math_SmoothStepToF(&obj80->vel.x, 80.0f, 0.2f, 10.0f, 0.0f); + Math_SmoothStepToF(&obj80->vel.y, 80.0f, 0.2f, 10.0f, 0.0f); + break; + } +} + +s32 func_DF4260_8018F1C8(s32 arg0, Gfx** arg1, Vec3f* arg2, Vec3f* arg3, void* arg4) { + Object_80* obj80 = (Object_80*) arg4; + + RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); + switch (arg0) { + case 1: + arg3->y -= obj80->vel.x; + if (obj80->timer_4C & 1) { + RCP_SetupDL_60(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); + } + break; + case 2: + arg3->y += obj80->vel.y; + if (obj80->timer_4C & 1) { + RCP_SetupDL_60(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); + } + break; + } + return 0; +} + +extern AnimationHeader D_602AA7C; +extern Limb* D_602AB48[]; + +void func_DF4260_8018F31C(Object_80* obj80) { + Vec3f sp28[10]; + + Animation_GetFrameData(&D_602AA7C, 0, sp28); + Animation_DrawSkeleton(3, D_602AB48, sp28, func_DF4260_8018F1C8, NULL, obj80, gCalcMatrix); + RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); +} + +void func_DF4260_8018F3BC(Object_80* obj80, f32 arg1) { + Object_80_Initialize(obj80); + obj80->obj.status = 1; + obj80->obj.pos.x = ((Rand_ZeroOne() - 0.5f) * 1000.0f) + arg1; + obj80->obj.rot.y = (Rand_ZeroOne() * 90.0f) + 45.0f; + if (arg1 > 0.0f) { + obj80->obj.rot.y *= -1.0f; + } + obj80->obj.pos.y = 0.0f; + obj80->obj.id = 1; + obj80->unk_60 = 60.0f; + Object_SetInfo(&obj80->info, obj80->obj.id); + obj80->obj.pos.z = -2000.0f; + obj80->info.unk_10 = 15000.0f; +} + +void func_DF4260_8018F4A4(void) { + s32 i; + + if (!(gFrameCount & 0xF) && !(gPlayer[0].unk_1D0 < 4)) { + for (i = 0; i < 50; i++) { + if (gObjects80[i].obj.status == 0) { + func_DF4260_8018F3BC(&gObjects80[i], 4000.0f); + break; + } + } + + for (i = 0; i < ARRAY_COUNT(gObjects80); i++) { + if (gObjects80[i].obj.status == 0) { + func_DF4260_8018F3BC(&gObjects80[i], -4000.0f); + break; + } + } + } +} + +void func_DF4260_8018F55C(Effect* effect) { + + Effect_Initialize(effect); + effect->obj.status = 1; + effect->obj.pos.x = gPlayer[0].camEye.x + ((Rand_ZeroOne() - 0.5f) * 500.0f); + effect->obj.pos.y = gPlayer[0].camEye.y + ((Rand_ZeroOne() - 0.8f) * 350.0f); + effect->obj.id = OBJ_EFFECT_352; + effect->timer_50 = 80; + effect->unk_46 = 0x90; + effect->obj.pos.z = -4000.0f; + effect->vel.z = 60.0f; + effect->scale2 = (Rand_ZeroOne() * 15.0f) + 10.0f; + if (Rand_ZeroOne() < 0.5f) { + effect->obj.rot.z = 180.0f; + } + Object_SetInfo(&effect->info, effect->obj.id); +} + +void func_DF4260_8018F678(void) { + s32 i; + + if (!(gFrameCount & 0x1F) && gPlayer[0].pos.x == 0.0f) { + + for (i = 0; i < ARRAY_COUNT(gEffects); i++) { + if (gEffects[i].obj.status == 0) { + func_DF4260_8018F55C(&gEffects[i]); + return; + } + } + } +} + +static f32 D_DF4260_80199AB4[3] = { 180.0f, -180.0f, 0.0f }; + +static f32 D_DF4260_80199AC0[3] = { 200.0f, 140.0f, 200.0f }; + +static f32 D_DF4260_80199ACC[3] = { 160.0f, 160.0f, 320.0f }; + +static f32 D_DF4260_80199AD8[3] = { -60.0f, 60.0f, -45.0f }; + +void func_DF4260_8018F6F8(Actor* actor, s32 arg1) { + + Actor_Initialize(actor); + actor->obj.status = 1; + actor->obj.id = OBJ_ACTOR_195; + actor->obj.pos.x = (D_DF4260_80199AB4[arg1] * 4.0f) + gPlayer[0].pos.x; + actor->obj.pos.y = (D_DF4260_80199AC0[arg1] * 2.0f) + gPlayer[0].pos.y; + actor->obj.pos.z = (D_DF4260_80199ACC[arg1] * 3.0f) + gPlayer[0].unk_138; + actor->vwork[20].x = D_DF4260_80199AB4[arg1] + gPlayer[0].pos.x; + actor->vwork[20].y = gPlayer[0].pos.y; + actor->vwork[20].z = D_DF4260_80199ACC[arg1] + gPlayer[0].unk_138; + actor->obj.rot.z = D_DF4260_80199AD8[arg1]; + actor->unk_0B8 = 100; + actor->obj.rot.y = 180.0f; + actor->fwork[0] = Rand_ZeroOne() * 360.0f; + Object_SetInfo(&actor->info, actor->obj.id); + actor->unk_0C9 = 1; + actor->iwork[11] = 1; + actor->info.unk_10 = 200.0f; + Audio_PlaySfx(0x3100000C, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); +} + +extern Gfx* D_30184D8; + +void func_DF4260_8018F880(Player* player) { + s32 i; + Actor* actor0 = &gActors[0]; + Actor* actor1 = &gActors[1]; + Actor* actor2 = &gActors[2]; + f32 sp44; + f32 sp40; + f32 sp3C; + f32 sp38; + f32 sp34; + f32 sp30; + f32 sp2C; + + if (D_80177A80 < 0x32F) { + sp3C = player->pos.x; + sp38 = player->pos.y + 15.0f; + sp34 = player->unk_138 - 20.0f; + } else { + if (D_80177A80 < 0x3F1) { + sp3C = actor0->obj.pos.x; + sp38 = actor0->obj.pos.y + 15.0f; + sp34 = actor0->obj.pos.z - 20.0f; + } else if (D_80177A80 < 0x4AE) { + sp3C = actor2->obj.pos.x; + sp38 = actor2->obj.pos.y + 15.0f; + sp34 = actor2->obj.pos.z - 20.0f; + } else { + sp3C = actor1->obj.pos.x; + sp38 = actor1->obj.pos.y + 15.0f; + sp34 = actor1->obj.pos.z - 20.0f; + } + } + + sp2C = -Math_Atan2F(player->camEye.x - sp3C, player->camEye.z - sp34); + sp30 = -Math_Atan2F(player->camEye.y - sp38, sqrtf(SQ(player->camEye.z - sp34) + SQ(player->camEye.x - sp3C))); + sp44 = Math_RadToDeg(sp2C) - D_80177A48[4]; + sp40 = Math_RadToDeg(sp30) - D_80177A48[5]; + if (sp44 > 180.0f) { + sp44 -= 360.0f; + } + if (sp44 < -180.0f) { + sp44 += 360.0f; + } + if (sp40 > 180.0f) { + sp40 -= 360.0f; + } + if (sp40 < -180.0f) { + sp40 += 360.0f; + } + + D_80177A48[6] += fabsf(sp44); + D_80177A48[7] += fabsf(sp40); + + if (sp2C >= 0.0f) { + Texture_Scroll(&D_30184D8, 64, 32, 2); + Texture_Scroll(&D_30184D8, 64, 32, 2); + } else { + Texture_Scroll(&D_30184D8, 64, 32, 3); + Texture_Scroll(&D_30184D8, 64, 32, 3); + } + + for (i = 0; (i < 40 && D_80177A48[6] >= 0.2f); i++, D_80177A48[6] -= 0.2f) { + if (sp44 >= 0) { + Texture_Scroll(&D_30184D8, 64, 32, 2); + } else { + Texture_Scroll(&D_30184D8, 64, 32, 3); + } + } + + for (i = 0; (i < 40 && D_80177A48[7] >= 0.3f); i++, D_80177A48[7] -= 0.3f) { + if (sp40 >= 0) { + Texture_Scroll(&D_30184D8, 64, 32, 0); + } else { + Texture_Scroll(&D_30184D8, 64, 32, 1); + } + } + + D_80177A48[4] = Math_RadToDeg(sp2C); + D_80177A48[5] = Math_RadToDeg(sp30); + player->unk_228 = 0; + D_80177950 = -1.0f; + if ((Math_RadToDeg(gPlayer[0].unk_058) < 90.0f) || (Math_RadToDeg(gPlayer[0].unk_058) > 270.0f)) { + D_80177950 = 1.0f; + } + player->vel.z = 0.0f; + player->pos.z = player->pos.z; + player->unk_138 = player->pos.z + player->unk_08C; + player->unk_088 += 10.0f; + player->unk_080 = -__sinf(player->unk_088 * M_DTOR) * 0.5f; + player->unk_0F4 += 3.0f; + player->unk_0F0 = __sinf(player->unk_0F4 * M_DTOR) * 1.5f; + func_DF4260_8018F678(); + player->wings.unk_30 = 0; + + switch (player->unk_1D0) { + case 0: + D_80177A80 = 0; + player->unk_1D0 = 1; + player->timer_1F8 = 600; + player->pos.y = 6000.0f; + player->pos.x = 0.1f; + func_DF4260_8018F6F8(&gActors[0], 0); + func_DF4260_8018F6F8(&gActors[1], 1); + func_DF4260_8018F6F8(&gActors[2], 2); + actor0->iwork[14] = 2; + actor1->iwork[14] = 3; + actor2->iwork[14] = 4; + player->camEye.x = D_80177978 = player->pos.x - 400.0f; + gPlayer->camEye.y = D_80177980 = player->pos.y + 600.0f; + player->camEye.z = D_80177988 = player->unk_138 + 2000.0f; + player->camAt.x = D_801779A0 = player->pos.x; + player->camAt.y = D_801779B8 = player->pos.y; + player->camAt.z = D_801779C0 = player->unk_138 + 300.0f; + D_80177A48[0] = 0; + D_80177A48[1] = D_80177A48[2] = 0; + D_80178358 = 0xFF; + D_80178340 = 0xFF; + D_80178348 = D_80178350 = D_80178354 = 0xFF; + break; + case 1: + if (player->timer_1F8 < 0x226) { + D_80178358 = 0; + D_8017835C = 3; + Math_SmoothStepToF(&D_80177A48[0], 0.01f, 1.0f, 0.0005f, 0.0f); + } + D_80177978 = player->pos.x - 150.0f; + D_80177980 = player->pos.y - 70.0f; + D_80177988 = player->unk_138 + 150.0f; + D_801779A0 = player->pos.x; + D_801779B8 = player->pos.y; + D_801779C0 = player->unk_138; + if (player->timer_1F8 == 0) { + player->unk_1D0 = 2; + player->timer_1F8 = 130; + D_80177A48[0] = 0.0f; + } + if (player->timer_1F8 == 315) { + player->pos.x = 0.0f; + } + if (player->timer_1F8 == 270) { + D_80178300 = 0; + func_800BA808(gMsg_ID_2005, RCID_FOX); + } + if (player->timer_1F8 == 180) { + Audio_PlaySfx(0x09000007, &player->unk_460, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } + if (player->timer_1F8 == 120) { + Audio_PlaySfx(0x09000013, &player->unk_460, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + } + if ((player->timer_1F8 < 190) && (player->timer_1F8 >= 151)) { + Math_SmoothStepToF(&player->wings.unk_24, 2.0f, 0.2f, 0.5f, 0.0f); + } + if (player->timer_1F8 < 150) { + player->unk_204 = 0; + } + if ((player->timer_1F8 < 120) && !(player->timer_1F8 & 0xF)) { + D_80177A48[1] = ((Rand_ZeroOne() - 0.5f) * 60.0f); + D_80177A48[2] = ((Rand_ZeroOne() - 0.5f) * 60.0f); + } + if (player->timer_1F8 == 0) { + D_80177A48[1] = 0.0f; + D_80177A48[2] = D_80177A48[1]; + } + break; + case 2: + Math_SmoothStepToF(&D_80177A48[0], 0.1f, 1.0f, 0.001f, 0.0f); + D_80177978 = player->pos.x - 50.0f; + D_80177980 = player->pos.y + 10.0f; + D_80177988 = player->unk_138 - 10.0f; + D_801779A0 = player->pos.x; + D_801779B8 = player->pos.y + 10.0f; + D_801779C0 = player->unk_138 + 10.0f; + if (player->timer_1F8 == 20) { + func_800BA808(gMsg_ID_2010, RCID_FOX); + } + if (player->timer_1F8 == 0) { + player->unk_1D0 = 3; + player->timer_1F8 = 180; + player->unk_004 = 0.0f; + actor0->unk_0B8 = 0; + actor2->unk_0B8 = 0; + actor1->unk_0B8 = 0; + actor0->obj.pos.y = player->pos.y + 80.0f; + actor0->obj.pos.z += 100.0f; + } + if ((D_801782F8 != 0) && (gFrameCount & 2)) { + player->wings.unk_30 = 5.0f; + } + break; + case 3: + if (fabsf(Math_SmoothStepToF(&actor0->obj.pos.z, player->pos.z + 100.0f, 0.05f, 5.0f, 0.0f)) < 1.0f) { + player->unk_1D0 = 4; + D_80177A48[0] = 0.0f; + player->timer_1F8 = 190; + } + if ((D_801782F8 != 0) && (gFrameCount & 2)) { + player->wings.unk_30 = 5.0f; + } + D_80177980 = player->pos.y + 10.0f; + D_801779B8 = player->pos.y + 10.0f; + break; + case 4: + if ((D_801782F8 != 0) && (gFrameCount & 2)) { + player->wings.unk_30 = 5.0f; + } + Math_SmoothStepToF(&D_80177A48[0], 0.1f, 1.0f, 0.001f, 0.0f); + D_80177978 = actor0->obj.pos.x - 50.0f; + D_80177980 = actor0->obj.pos.y + 10.0f; + D_80177988 = actor0->obj.pos.z - 10.0f; + D_801779A0 = actor0->obj.pos.x; + D_801779B8 = actor0->obj.pos.y + 10.0f; + D_801779C0 = actor0->obj.pos.z + 10.0f; + if (player->timer_1F8 == 0) { + player->unk_1D0 = 5; + player->timer_1F8 = 5; + } + if (player->timer_1F8 == 80) { + func_800BA808(gMsg_ID_2020, RCID_FALCO); + } + if (player->timer_1F8 < 100) { + Math_SmoothStepToF(&actor0->fwork[19], 50.0f, 0.1f, 3.0f, 0.01f); + } + actor0->fwork[20] = 0.0f; + if ((D_801782F8 != 0) && (gFrameCount & 2)) { + actor0->fwork[20] = 5.0f; + } + break; + case 5: + Math_SmoothStepToF(&actor0->fwork[19], 0, 0.1f, 3.0f, 0.01f); + if (player->timer_1F8 == 0) { + player->unk_1D0 = 6; + D_80177A48[0] = 0.0f; + player->timer_1F8 = 190; + } + + D_80177980 = actor0->obj.pos.y + 10.0f; + D_801779B8 = actor0->obj.pos.y + 10.0f; + break; + case 6: + Math_SmoothStepToF(&actor0->fwork[19], 0.0f, 0.1f, 3.0f, 0.01f); + Math_SmoothStepToF(&D_80177A48[0], 0.1f, 1.0f, 0.001f, 0.0f); + + D_80177A48[3] -= 0.5f; + + D_80177978 = actor2->obj.pos.x + 100.0f + D_80177A48[3]; + D_80177980 = actor2->obj.pos.y + 10.0f; + D_80177988 = actor2->obj.pos.z - 70.0f; + + D_801779A0 = actor2->obj.pos.x + 20.0f + (D_80177A48[3] * 0.5f); + D_801779B8 = actor2->obj.pos.y + 10.0f; + D_801779C0 = actor2->obj.pos.z + 10.0f; + + if (player->timer_1F8 == 0) { + player->unk_1D0 = 7; + player->timer_1F8 = 190; + D_80177A48[0] = 0.0f; + actor0->obj.pos.y = player->pos.y; + actor0->obj.pos.z = player->unk_138 + 240.0f; + } + if (player->timer_1F8 == 80) { + func_800BA808(gMsg_ID_2030, RCID_PEPPY); + } + actor2->fwork[20] = 0.0f; + if ((D_801782F8 != 0) && (gFrameCount & 2)) { + actor2->fwork[20] = 5.0f; + } + break; + case 7: + Math_SmoothStepToF(&D_80177A48[0], 0.1f, 1.0f, 0.001f, 0.0f); + D_80177978 = actor1->obj.pos.x + 20.0f; + D_80177980 = actor1->obj.pos.y + 10.0f; + D_80177988 = actor1->obj.pos.z - 50.0f; + D_801779A0 = actor1->obj.pos.x + 10.0f; + D_801779B8 = actor1->obj.pos.y + 10.0f; + D_801779C0 = actor1->obj.pos.z + 10.0f; + if (player->timer_1F8 == 0) { + player->unk_1D0 = 8; + D_80177A48[0] = 0.0f; + player->timer_1F8 = 300; + D_80177A48[8] = 50.0f; + D_80177A48[3] = 0.0f; + } + if (player->timer_1F8 == 80) { + func_800BA808(gMsg_ID_2040, RCID_SLIPPY); + player->pos.x = 0.1f; + } + if (player->timer_1F8 < 100) { + Math_SmoothStepToF(&actor1->fwork[19], -20.0f, 0.1f, 3.0f, 0.01f); + } + actor1->fwork[20] = 0.0f; + if ((D_801782F8 != 0) && (gFrameCount & 2)) { + actor1->fwork[20] = 5.0f; + } + break; + case 8: + Math_SmoothStepToF(&D_80177A48[0], 0.1f, 1.0f, 0.001f, 0.0f); + if (player->timer_1F8 < 150) { + D_80177A48[3] += player->unk_004; + Math_SmoothStepToF(&player->unk_004, 2.0f, 1.0f, 0.2f, 0.0f); + } + D_80177978 = player->pos.x; + D_80177988 = (player->unk_138 - 600.0f) + D_80177A48[3]; + D_80177980 = player->pos.y + D_80177A48[8]; + D_801779A0 = player->pos.x; + D_801779B8 = player->pos.y + 20.0f; + D_801779C0 = player->unk_138 + 100.0f; + if (player->timer_1F8 < 100) { + Math_SmoothStepToF(&D_80177A48[8], 10.0f, 0.1f, 0.7f, 0.0f); + } + if (player->timer_1F8 == 200) { + func_800BA808(gMsg_ID_2050, RCID_FOX); + } + player->wings.unk_30 = 0.0f; + if ((D_801782F8 != 0) && (gFrameCount & 2)) { + player->wings.unk_30 = 5.0f; + } + if (player->timer_1F8 == 80) { + actor0->fwork[29] = 5.0f; + } + if (player->timer_1F8 == 60) { + actor1->fwork[29] = 5.0f; + } + if (player->timer_1F8 == 40) { + actor2->fwork[29] = 5.0f; + } + if ((player->timer_1F8 >= 71) && (player->timer_1F8 < 80)) { + actor0->iwork[11] = 2; + } + if ((player->timer_1F8 >= 51) && (player->timer_1F8 < 60)) { + actor1->iwork[11] = 2; + } + if ((player->timer_1F8 >= 31) && (player->timer_1F8 < 40)) { + actor2->iwork[11] = 2; + } + if (player->timer_1F8 == 70) { + actor0->unk_0B8 = 1; + func_800A6028(&player->unk_460, 0x09000002); + } + if (player->timer_1F8 == 50) { + actor1->unk_0B8 = 2; + func_800A6028(&player->unk_460, 0x09000002); + } + if (player->timer_1F8 == 30) { + actor2->unk_0B8 = 3; + func_800A6028(&player->unk_460, 0x09000002); + } + if (player->timer_1F8 == 0) { + player->unk_1D0 = 9; + func_800A6028(&player->unk_460, 0x09000002); + player->timer_1F8 = 3; + player->unk_194 = 5.0f; + player->unk_190 = 5.0f; + } + break; + case 9: + D_80177978 = player->pos.x; + D_80177980 = player->pos.y; + D_80177988 = player->unk_138 + 1000.0f; + D_801779A0 = player->pos.x; + D_801779B8 = player->pos.y; + D_801779C0 = player->unk_138 + 1100.0f; + D_80177A48[0] = 0.03f; + player->unk_190 = 2.0f; + if (player->timer_1F8 == 0) { + D_80178358 = 0xFF; + D_8017835C = 0x30; + D_80178348 = D_80178350 = D_80178354 = 0xFF; + } + if (D_80178340 == 0xFF) { + func_8001D444(0, D_80177C90, 0, 0xFF); + Object_Kill(&actor0->obj, &actor0->sfxPos); + Object_Kill(&actor1->obj, &actor1->sfxPos); + Object_Kill(&actor2->obj, &actor2->sfxPos); + + D_80177838 = 80; + player->pos.y = 350.0f; + player->camEye.x = player->pos.x; + player->camEye.y = (player->pos.y * player->unk_148) + 50.0f; + player->camEye.z = 30.0f; + player->state_1C8 = 3; + player->unk_1D0 = 0; + player->camAt.x = player->pos.x; + player->camAt.y = (player->pos.y * player->unk_148) + 20.0f; + player->camAt.z = player->unk_138; + D_80177950 = 1.0f; + D_80178380[0] = D_80178380[1] = D_80178380[2] = D_80178380[3] = 0; + D_80178488 = 1; + D_80178358 = 0; + player->timer_1F8 = 15; + } + break; + case 10: + break; + } + Math_SmoothStepToF(&player->camEye.x, D_80177978, D_80177A48[0], 20000.0f, 0.0f); + Math_SmoothStepToF(&player->camEye.y, player->unk_080 + D_80177980, D_80177A48[0], 20000.0f, 0.0f); + Math_SmoothStepToF(&player->camEye.z, D_80177988, D_80177A48[0], 20000.0f, 0.0f); + Math_SmoothStepToF(&player->camAt.x, D_801779A0, D_80177A48[0], 20000.0f, 0.0f); + Math_SmoothStepToF(&player->camAt.y, D_801779B8 - player->unk_080, D_80177A48[0], 20000.0f, 0.0f); + Math_SmoothStepToF(&player->camAt.z, D_801779C0, D_80177A48[0], 20000.0f, 0.0f); + Math_SmoothStepToF(&player->wings.unk_04, D_80177A48[1], 0.2f, 1.0f, 0.0f); + Math_SmoothStepToF(&player->wings.unk_0C, D_80177A48[2], 0.2f, 1.0f, 0.0f); + player->wings.unk_08 = player->wings.unk_04; + player->wings.unk_10 = player->wings.unk_0C; + player->camEye.y -= 3.0f; + player->camAt.y -= 3.0f; + player->pos.y -= 3.0f; + actor0->vwork[20].y -= 3.0f; + actor0->obj.pos.y -= 3.0f; + actor2->vwork[20].y -= 3.0f; + actor2->obj.pos.y -= 3.0f; + actor1->vwork[20].y -= 3.0f; + actor1->obj.pos.y -= 3.0f; +} + +static f32 D_DF4260_80199AE4[3] = { -1500.0f, 700.0f, 0.0f }; + +static f32 D_DF4260_80199AF0[3] = { -300.0f, 400.0f, 500.0f }; + +static f32 D_DF4260_80199AFC[3] = { 500.0f, 800.0f, 1200.0f }; + +static f32 D_DF4260_80199B08[3] = { -150.0f, 150.0f, 0.0f }; + +static f32 D_DF4260_80199B14[3] = { 0.0f, 0.0f, 0.0f }; + +static f32 D_DF4260_80199B20[3] = { 200.0f, 200.0f, 400.0f }; + +static f32 D_DF4260_80199B2C[3] = { 180.0f, -120.0f, 180.0f }; + +void func_DF4260_80190F74(Actor* actor, s32 arg1) { + Vec3f sp5C; + Vec3f sp50; + Vec3f sp44; + Vec3f sp38; + Player* player = &gPlayer[0]; + + Matrix_RotateY(gCalcMatrix, player->unk_0E8 * M_DTOR, 0); + sp5C.x = D_DF4260_80199AE4[arg1]; + sp5C.y = D_DF4260_80199AF0[arg1]; + sp5C.z = D_DF4260_80199AFC[arg1]; + sp44.x = D_DF4260_80199B08[arg1]; + sp44.y = D_DF4260_80199B14[arg1]; + sp44.z = D_DF4260_80199B20[arg1]; + Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp5C, &sp50); + Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp44, &sp38); + Actor_Initialize(actor); + actor->obj.pos.x = player->pos.x + sp50.x; + actor->obj.pos.y = player->pos.y + sp50.y; + actor->obj.pos.z = player->pos.z + sp50.z; + actor->fwork[0] = sp38.x; + actor->fwork[1] = sp38.y; + actor->fwork[2] = sp38.z; + actor->fwork[7] = Rand_ZeroOne() * 360.0f; + actor->fwork[8] = Rand_ZeroOne() * 360.0f; + actor->vel.x = player->vel.x; + actor->vel.y = player->vel.y; + actor->vel.z = player->vel.z; + actor->obj.status = 1; + actor->obj.id = OBJ_ACTOR_195; + actor->obj.rot.z = D_DF4260_80199B2C[arg1]; + Object_SetInfo(&actor->info, actor->obj.id); + actor->iwork[11] = 1; + Audio_PlaySfx(0x3100000C, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); +} + +void func_DF4260_80191160(Player* player) { + Vec3f sp64; + Vec3f sp58; + f32 sp54; + f32 var_fv1; + f32 sp4C; + f32 temp_fa0; + f32 temp_fa1; + f32 temp_deg; + + player->wings.unk_04 = player->wings.unk_0C = player->wings.unk_08 = player->wings.unk_10 = 0.0f; + 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_034, 0.0f, 0.1f, 3.0f, 0.0f); + Math_SmoothStepToAngle(&player->unk_4D8, 0.0f, 0.1f, 20.0f, 0.0f); + Math_SmoothStepToF(&player->unk_110, 0.0f, 0.1f, 3.0f, 0.0f); + if (player->unk_1D0 >= 3) { + player->camEye.y += 3.0f; + player->camAt.y += 3.0f; + player->pos.y += 3.0f; + gActors[0].obj.pos.y += 3.0f; + gActors[1].obj.pos.y += 3.0f; + gActors[2].obj.pos.y += 3.0f; + } + + gBgColor = 0x845; + + switch (player->unk_1D0) { + case 0: + func_8001A38C(1, &player->unk_460); + sp54 = player->camEye.x - D_DF4260_8019B6D8[62]; + sp4C = player->camEye.z - D_DF4260_8019B6D8[64]; + + D_80177A48[0] = Math_RadToDeg(Math_Atan2F(sp54, sp4C)); + D_80177A48[1] = sqrtf(SQ(sp54) + SQ(sp4C)); + player->unk_1D0++; + D_80177A48[5] = 0.0f; + D_80177A48[4] = D_80177A48[5]; + D_80177A48[2] = D_80177A48[5]; + /* fallthrough */ + case 1: + Math_SmoothStepToF(&player->unk_0E4, 0.0f, 0.1f, 5.0f, 0.0f); + Math_SmoothStepToF(&player->pos.y, 400.0f, 0.05f, 3.0f, 0.0f); + Math_SmoothStepToF(&D_80177A48[1], 1300.0f, 0.05f, 1000.0f, 0.0f); + if (player->unk_0E8 > 180.0f) { + D_80177A48[0] += 0.5f; + } else { + D_80177A48[0] -= 0.5f; + } + Matrix_RotateY(gCalcMatrix, D_80177A48[0] * M_DTOR, 0); + sp64.x = 0.0f; + sp64.y = 0.0f; + sp64.z = D_80177A48[1]; + Matrix_MultVec3f(gCalcMatrix, &sp64, &sp58); + Math_SmoothStepToF(&player->camEye.x, D_DF4260_8019B6D8[62] + sp58.x, 0.05f, 500.0f, 0.0f); + Math_SmoothStepToF(&player->camEye.y, D_DF4260_8019B6D8[63] + 100.0f, 0.05f, 500.0f, 0.0f); + Math_SmoothStepToF(&player->camEye.z, D_DF4260_8019B6D8[64] + sp58.z, 0.05f, 500.0f, 0.0f); + Math_SmoothStepToF(&player->camAt.x, D_DF4260_8019B6D8[62], 0.05f, 500.0f, 0.0f); + Math_SmoothStepToF(&player->camAt.y, D_DF4260_8019B6D8[63], 0.05f, 500.0f, 0.0f); + Math_SmoothStepToF(&player->camAt.z, D_DF4260_8019B6D8[64], 0.05f, 500.0f, 0.0f); + temp_fa0 = player->pos.x - D_DF4260_8019B6D8[62]; + temp_fa1 = player->pos.z - D_DF4260_8019B6D8[64]; + if (D_80177A80 < 30) { + temp_deg = Math_RadToDeg(-Math_Atan2F(temp_fa0, temp_fa1)); + var_fv1 = Math_SmoothStepToAngle(&player->unk_0E8, temp_deg, 0.5f, 4.0f, 0.0001f) * 20.0f; + } else { + temp_deg = Math_RadToDeg(Math_Atan2F(temp_fa0, temp_fa1)); + var_fv1 = Math_SmoothStepToAngle(&player->unk_0E8, temp_deg, 0.5f, 2.0f, 0.0001f) * 30.0f; + } + Math_SmoothStepToAngle(&player->unk_0EC, var_fv1, 0.1f, 5.0f, 0.0001f); + if (D_80177A80 == 220) { + player->unk_1D0++; + } + break; + case 2: + Math_SmoothStepToAngle(&player->unk_0E4, 20.0f, 0.1f, 0.5f, 0.0001f); + Math_SmoothStepToAngle(&player->unk_0EC, 0.0f, 0.1f, 1.0f, 0.0001f); + Math_SmoothStepToF(&D_80177A48[2], 0.05f, 1.0f, 0.005f, 0.0001f); + Math_SmoothStepToF(&player->camAt.x, player->pos.x, D_80177A48[2], 500.0f, 0.0f); + Math_SmoothStepToF(&player->camAt.y, player->pos.y, D_80177A48[2], 500.0f, 0.0f); + Math_SmoothStepToF(&player->camAt.z, player->pos.z, D_80177A48[2], 500.0f, 0.0f); + if (D_80177A80 == 350) { + player->unk_1D0++; + D_80177A48[2] = 0.0f; + D_80177A48[3] = 0.05f; + } + break; + case 3: + if ((D_80177A80 >= 701) && (D_80177A80 < 1000)) { + func_8004AA84(); + } + Math_SmoothStepToAngle(&player->unk_0E4, 20.0f, 0.1f, 0.5f, 0); + Math_SmoothStepToAngle(&player->unk_0EC, 0.0f, 0.1f, 1.0f, 0); + Math_SmoothStepToF(&player->unk_0D0, 0.0f, 0.1f, 2.0f, 0.0f); + Math_SmoothStepToF(&D_80177A48[2], 0.1f, 1.0f, 0.002f, 0); + Math_SmoothStepToF(&D_80177A48[3], 0.1f, 1.0f, 0.002f, 0); + Matrix_RotateY(gCalcMatrix, player->unk_0E8 * M_DTOR, 0); + Matrix_Push(&gCalcMatrix); + Matrix_RotateY(gCalcMatrix, D_80177A48[5] * M_DTOR, 1); + sp64.x = 0.0f; + sp64.y = -200.0f; + sp64.z = 800.0f; + Matrix_MultVec3f(gCalcMatrix, &sp64, &sp58); + Math_SmoothStepToF(&player->camEye.x, player->pos.x + sp58.x, D_80177A48[2], 500.0f, 0.0f); + Math_SmoothStepToF(&player->camEye.y, player->pos.y + sp58.y, D_80177A48[2], 500.0f, 0.0f); + Math_SmoothStepToF(&player->camEye.z, player->pos.z + sp58.z, D_80177A48[2], 500.0f, 0.0f); + Matrix_Pop(&gCalcMatrix); + sp64.x = 0.0f; + sp64.y = 0; + sp64.z = 150.0f; + Matrix_MultVec3f(gCalcMatrix, &sp64, &sp58); + Math_SmoothStepToF(&player->camAt.x, player->pos.x + sp58.x, D_80177A48[3], 500.0f, 0.0f); + Math_SmoothStepToF(&player->camAt.y, player->pos.y + sp58.y, D_80177A48[3], 500.0f, 0.0f); + Math_SmoothStepToF(&player->camAt.z, player->pos.z + sp58.z, D_80177A48[3], 500.0f, 0.0f); + D_80177A48[5] += D_80177A48[4]; + + if ((D_80177A80 >= 401) && (D_80177A80 < 1000)) { + Math_SmoothStepToF(&D_80177A48[4], 0.5f, 1.0f, 0.003f, 0); + } + if (D_80177A80 >= 1101) { + Math_SmoothStepToF(&D_80177A48[4], 0.0f, 1.0f, 0.003f, 0); + } + if (D_80177A80 == 1270) { + func_800182F4(0x103200FF); + func_800182F4(0x113200FF); + Audio_PlaySfx(0x09000002, &player->unk_460, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + player->unk_1D0++; + player->unk_0D0 = 2.0f; + player->unk_194 = 5.0f; + player->unk_190 = 5.0f; + } + break; + case 4: + if (D_80177A80 >= 1270) { + player->unk_0D0 *= 1.2f; + player->unk_25C += 0.04f; + if (player->unk_25C > 0.6f) { + player->unk_25C = 0.6f; + } + player->unk_190 = 2.0f; + } + if (D_80177A80 == 1290) { + func_8001DBD0(50); + } + if (D_80177A80 >= 1301) { + D_80178358 = 0xFF; + D_80178348 = D_80178350 = D_80178354 = 0; + D_8017835C = 8; + if (D_80178340 == 0xFF) { + player->state_1C8 = 6; + player->timer_1F8 = 0; + D_8017837C = 4; + D_800D3180[gCurrentLevel] = Play_CheckMedalStatus(150) + 1; + } + } + break; + } + + switch (D_80177A80) { + case 981: + D_80177830 = 1; + break; + case 1181: + D_80177830 = 0; + break; + case 240: + func_8001D444(0, 0x26, 0, 0xFF); + break; + case 330: + D_80177840 = 100; + break; + case 470: + func_800A6148(); + if (gTeamShields[1] > 0) { + func_DF4260_80190F74(&gActors[0], 0); + } + if (gTeamShields[2] > 0) { + func_DF4260_80190F74(&gActors[1], 1); + } + if (gTeamShields[3] > 0) { + func_DF4260_80190F74(&gActors[2], 2); + } + break; + case 410: + func_800BA808(gMsg_ID_2335, RCID_FOX); + break; + case 550: + if ((gTeamShields[2] == -1) || (gTeamShields[2] == 0)) { + func_800BA808(gMsg_ID_20333, RCID_ROB64); + } else { + func_800BA808(gMsg_ID_2300, RCID_SLIPPY); + } + break; + case 682: + if ((gTeamShields[3] == -1) || (gTeamShields[3] == 0)) { + func_800BA808(gMsg_ID_20332, RCID_ROB64); + } else { + func_800BA808(gMsg_ID_2310, RCID_PEPPY); + } + break; + case 816: + if ((gTeamShields[1] == -1) || (gTeamShields[1] == 0)) { + func_800BA808(gMsg_ID_20331, RCID_ROB64); + } else { + func_800BA808(gMsg_ID_2320, RCID_FALCO); + } + break; + case 1150: + if (gTeamShields[1] > 0) { + gActors[0].unk_0B8 = 1; + gActors[0].fwork[9] = 2.0f; + gActors[0].timer_0BC = 50; + Audio_PlaySfx(0x09000002, &gActors[0].sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + gActors[0].fwork[29] = 5.0f; + } + break; + case 1190: + if (gTeamShields[2] > 0) { + gActors[1].unk_0B8 = 1; + gActors[1].fwork[9] = 2.0f; + gActors[1].timer_0BC = 50; + Audio_PlaySfx(0x09000002, &gActors[1].sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + gActors[1].fwork[29] = 5.0f; + } + break; + case 1230: + if (gTeamShields[3] > 0) { + gActors[2].unk_0B8 = 1; + gActors[2].fwork[9] = 2.0f; + gActors[2].timer_0BC = 50; + Audio_PlaySfx(0x09000002, &gActors[2].sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + gActors[2].fwork[29] = 5.0f; + } + break; + } + Matrix_RotateY(gCalcMatrix, (player->unk_0E8 + 180.0f) * M_DTOR, 0); + Matrix_RotateX(gCalcMatrix, -((player->unk_0E4 + player->unk_4D8) * M_DTOR), 1); + sp64.x = 0.0f; + sp64.y = 0.0f; + sp64.z = player->unk_0D0 + player->unk_110; + Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp64, &sp58); + player->vel.x = sp58.x; + player->vel.z = sp58.z; + player->vel.y = sp58.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; + player->unk_088 += 10.0f; + player->unk_080 = -__sinf(player->unk_088 * M_DTOR) * 0.3f; + player->unk_0F4 += 8.0f; + player->unk_0F0 = __sinf(player->unk_0F4 * M_DTOR); +} diff --git a/src/overlays/ovl_E16C50/fox_a6.c b/src/overlays/ovl_E16C50/fox_a6.c index e29f5c1f..3dcb1a5b 100644 --- a/src/overlays/ovl_E16C50/fox_a6.c +++ b/src/overlays/ovl_E16C50/fox_a6.c @@ -149,34 +149,34 @@ 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 func_E16C50_80187530(Actor* actor, f32 xPos, f32 yPos, f32 zPos, f32 fwork6, 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); + Actor_Initialize(actor); + actor->obj.status = 1; + actor->obj.id = OBJ_ACTOR_191; + actor->obj.pos.x = xPos; + actor->obj.pos.y = yPos; + actor->obj.pos.z = zPos; + actor->obj.rot.x = xRot; + actor->obj.rot.y = yRot; + actor->timer_0BC = timer0BC; + actor->timer_0BE = 20; + actor->unk_0B4 = unk0B4; + actor->fwork[5] = fwork6; + Object_SetInfo(&actor->info, actor->obj.id); + func_8007A6F0(&actor->obj.pos, 0x2903201B); } -void func_E16C50_801875E4(f32 xPos, f32 yPos, f32 zPos, f32 unk124y, f32 xRot, f32 yRot, s32 timer0BC, s32 unk0B4) { +void func_E16C50_801875E4(f32 xPos, f32 yPos, f32 zPos, f32 fwork6, f32 xRot, f32 yRot, s32 timer0BC, s32 unk0B4) { s32 i; - Object_2F4* obj2F4; + Actor* actor; - 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); + for (i = 0, actor = gActors; i < ARRAY_COUNT(gActors); i++, actor++) { + if (actor->obj.status == 0) { + func_E16C50_80187530(actor, xPos, yPos, zPos, fwork6, xRot, yRot, timer0BC, unk0B4); D_E16C50_801C2250.unk_00[11] = i + 1; break; } @@ -809,7 +809,7 @@ void func_E16C50_80187944(Boss* bossA6) { if (temp_1 < 0) { temp_1 = 0; } - if ((gObjects2F4[temp_1].obj.status == 0) || (gObjects2F4[temp_1].obj.id != OBJ_2F4_191) || + if ((gActors[temp_1].obj.status == 0) || (gActors[temp_1].obj.id != OBJ_ACTOR_191) || (D_E16C50_801C2250.unk_00[24] == 0)) { D_E16C50_801C2250.unk_00[12 + i] = 0; temp_1 = 0; @@ -1706,60 +1706,60 @@ void func_E16C50_8018D3CC(s32 arg0, f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 } } -void func_E16C50_8018D4E0(Object_2F4* obj2F4) { +void func_E16C50_8018D4E0(Actor* actor) { 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); + func_8007BFFC(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 0.0f, 0.0f, 0.0f, 4.0f, 0x14); + func_8007D2C8(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 7.0f); + func_8007B344(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 6.0f, 5); + Object_Kill(&actor->obj, &actor->sfxPos); for (i = 0; i < 15; i++) { - func_800794CC(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, 1.0f); + func_800794CC(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 1.0f); } - func_8007A6F0(&obj2F4->obj.pos, 0x2903B009); + func_8007A6F0(&actor->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); + Actor_Initialize(&gActors[i]); + gActors[i].obj.status = 1; + gActors[i].obj.pos.x = 1600.0f; + gActors[i].obj.pos.y = 3750.0f; + gActors[i].obj.pos.z = 13000.0f; + gActors[i].unk_0B6 = 1; + gActors[i].unk_0B8 = 90; + gActors[i].fwork[0] = 0.0f; + gActors[i].obj.id = OBJ_ACTOR_195; + Object_SetInfo(&gActors[i].info, gActors[i].obj.id); + Audio_PlaySfx(0x11030010, &gActors[i].sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } -void func_E16C50_8018D694(Object_2F4* obj2F4, s32 arg1) { +void func_E16C50_8018D694(Actor* actor, 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); + Actor_Initialize(actor); + actor->obj.status = 2; + actor->obj.id = OBJ_ACTOR_195; + actor->obj.pos.x = sp2C[arg1].x + 100.0f; + actor->obj.pos.y = sp2C[arg1].y + 350.0f; + actor->obj.pos.z = sp2C[arg1].z + 1000.0f; + actor->unk_0B8 = 1; + actor->unk_0B6 = 28; + actor->iwork[11] = 1; + actor->unk_0F4.y = 90.0f; + actor->fwork[0] = 1.5f; + actor->fwork[7] = Rand_ZeroOneSeeded() * 360.0f; + actor->fwork[8] = Rand_ZeroOneSeeded() * 360.0f; + actor->fwork[9] = Rand_ZeroOneSeeded() * 360.0f; + Object_SetInfo(&actor->info, actor->obj.id); + Audio_PlaySfx(0x31000011, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } -void func_E16C50_8018D804(Object_2F4* obj2F4, s32 arg1) { +void func_E16C50_8018D804(Actor* actor, s32 arg1) { Vec3f sp2C[3] = { { -200.0f, 0.0f, -500.0f }, { 200.0f, 30.0f, -600.0f }, @@ -1767,17 +1767,17 @@ void func_E16C50_8018D804(Object_2F4* obj2F4, s32 arg1) { }; 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); + Actor_Initialize(actor); + actor->obj.status = 2; + actor->obj.id = OBJ_ACTOR_195; + actor->obj.pos.x = sp2C[arg1].x + player->pos.x; + actor->obj.pos.y = sp2C[arg1].y + player->pos.y; + actor->obj.pos.z = sp2C[arg1].z + player->pos.z; + actor->unk_0B8 = 5; + actor->iwork[11] = 1; + actor->fwork[0] = 0.0f; + Object_SetInfo(&actor->info, actor->obj.id); + Audio_PlaySfx(0x3100000C, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } void func_E16C50_8018D920(Vec3f* arg0) { @@ -1798,7 +1798,7 @@ void func_E16C50_8018D920(Vec3f* arg0) { 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) { +void func_E16C50_8018DA58(Actor* actor) { Vec3f sp5C; Vec3f sp50; f32 sp4C; @@ -1808,37 +1808,37 @@ void func_E16C50_8018DA58(Object_2F4* obj2F4) { f32 sp3C; f32 sp38; - switch (obj2F4->unk_0B8) { /* irregular */ + switch (actor->unk_0B8) { /* irregular */ case 1: - obj2F4->unk_130 += 2.5f; - obj2F4->unk_0F4.z = __sinf(obj2F4->unk_130 * M_DTOR) * 10.0f; - obj2F4->unk_134 += 1.0f; - obj2F4->obj.pos.y += __sinf(obj2F4->unk_134 * M_DTOR) * 1.5f; - obj2F4->unk_138 += 1.0f; - obj2F4->obj.pos.z += __cosf(obj2F4->unk_138 * M_DTOR) * 1.5f; + actor->fwork[7] += 2.5f; + actor->unk_0F4.z = __sinf(actor->fwork[7] * M_DTOR) * 10.0f; + actor->fwork[8] += 1.0f; + actor->obj.pos.y += __sinf(actor->fwork[8] * M_DTOR) * 1.5f; + actor->fwork[9] += 1.0f; + actor->obj.pos.z += __cosf(actor->fwork[9] * M_DTOR) * 1.5f; break; case 2: - Math_SmoothStepToF(&obj2F4->unk_0F4.z, -180.0f, 0.1f, 3.0f, 0.0f); + Math_SmoothStepToF(&actor->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); + Math_SmoothStepToF(&actor->unk_0F4.z, -45.0f, 0.05f, 2.0f, 0.0f); + Math_SmoothStepToAngle(&actor->unk_0F4.y, 340.0f, 0.05f, 2.4f, 0.0f); + Math_SmoothStepToF(&actor->unk_0F4.x, 3.0f, 0.05f, 1.0f, 0.0f); + Math_SmoothStepToF(&actor->fwork[0], 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; + actor->unk_0B8++; + Audio_PlaySfx(0x09000002, &actor->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + actor->fwork[29] = 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) { + actor->iwork[11] = 2; + Math_SmoothStepToF(&actor->fwork[0], 50.0f, 0.1f, 3.0f, 0.01f); + switch (actor->unk_0B8) { case 7: sp48 = -100.0f; sp4C = 100.0f; @@ -1863,29 +1863,29 @@ void func_E16C50_8018DA58(Object_2F4* obj2F4) { 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); + sp38 = Math_SmoothStepToAngle(&actor->unk_0F4.y, sp3C, 0.5f, 2.0f, 0.0001f) * 30.0f; + Math_SmoothStepToAngle(&actor->unk_0F4.x, sp40, 0.5f, 2.0f, 0.0001f); + Math_SmoothStepToAngle(&actor->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); + Math_SmoothStepToF(&actor->obj.pos.y, 0.0f, 0.1f, 5.0f, 0.1f); + Math_SmoothStepToF(&actor->obj.pos.z, 0.0f, 1.0f, 20.0f, 20.0f); break; case 90: break; } - Matrix_RotateY(gCalcMatrix, (obj2F4->unk_0F4.y + 180.0f) * M_DTOR, 0); - Matrix_RotateX(gCalcMatrix, -(obj2F4->unk_0F4.x * M_DTOR), 1); + Matrix_RotateY(gCalcMatrix, (actor->unk_0F4.y + 180.0f) * M_DTOR, 0); + Matrix_RotateX(gCalcMatrix, -(actor->unk_0F4.x * M_DTOR), 1); sp5C.x = 0.0f; sp5C.y = 0.0f; - sp5C.z = obj2F4->unk_114; + sp5C.z = actor->fwork[0]; 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; + actor->vel.x = sp50.x; + actor->vel.y = sp50.y; + actor->vel.z = sp50.z; + actor->obj.rot.x = -actor->unk_0F4.x; + actor->obj.rot.y = actor->unk_0F4.y + 180.0f; + actor->obj.rot.z = -actor->unk_0F4.z; } void func_E16C50_8018DF74(Player* player) { @@ -1902,36 +1902,36 @@ void func_E16C50_8018DF74(Player* player) { 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_8018D694(&gActors[1], 0); + func_E16C50_8018D694(&gActors[2], 1); + func_E16C50_8018D694(&gActors[6], 2); + func_E16C50_8018D694(&gActors[7], 3); + func_E16C50_8018D694(&gActors[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); + func_E16C50_8018D804(&gActors[3], 0); } if (gTeamShields[2] > 0) { - func_E16C50_8018D804(&gObjects2F4[4], 1); + func_E16C50_8018D804(&gActors[4], 1); } if (gTeamShields[3] > 0) { - func_E16C50_8018D804(&gObjects2F4[5], 2); + func_E16C50_8018D804(&gActors[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; + gActors[0].fwork[0] = 20.0f; + gActors[3].fwork[0] = 30.0f; + gActors[4].fwork[0] = 30.0f; + gActors[5].fwork[0] = 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); + Math_SmoothStepToF(&gActors->obj.pos.y, 0.0f, 0.01f, 10.0f, 0.001f); if (D_80177A80 < 490) { sp74.x = 0.0f; sp74.y = 0.0f; @@ -1944,9 +1944,9 @@ void func_E16C50_8018DF74(Player* player) { 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_801779A0 = gActors[1].obj.pos.x; + D_801779B8 = gActors[1].obj.pos.y; + D_801779C0 = gActors[1].obj.pos.z; D_80177A48[0] = 1.0f; D_80177A48[1] = 1.0f; } else { @@ -2016,48 +2016,48 @@ void func_E16C50_8018DF74(Player* player) { break; case 176: if (gTeamShields[1] > 0) { - func_E16C50_8018D920(&gObjects2F4[3].obj.pos); + func_E16C50_8018D920(&gActors[3].obj.pos); } break; case 187: if (gTeamShields[2] > 0) { - func_E16C50_8018D920(&gObjects2F4[4].obj.pos); + func_E16C50_8018D920(&gActors[4].obj.pos); } break; case 198: if (gTeamShields[3] > 0) { - func_E16C50_8018D920(&gObjects2F4[5].obj.pos); + func_E16C50_8018D920(&gActors[5].obj.pos); } break; case 199: - func_E16C50_8018D4E0(&gObjects2F4[1]); + func_E16C50_8018D4E0(&gActors[1]); break; case 210: func_800BA808(gMsg_ID_7006, RCID_CAIMAN_AREA6); break; case 240: - gObjects2F4[2].unk_0B8 = 3; + gActors[2].unk_0B8 = 3; break; case 250: - gObjects2F4[6].unk_0B8 = 3; + gActors[6].unk_0B8 = 3; break; case 260: - gObjects2F4[7].unk_0B8 = 3; + gActors[7].unk_0B8 = 3; break; case 270: - gObjects2F4[8].unk_0B8 = 3; + gActors[8].unk_0B8 = 3; break; case 360: func_800BA808(gMsg_ID_7011, RCID_FALCO); break; case 430: - gObjects2F4[5].unk_0B8 = 16; + gActors[5].unk_0B8 = 16; break; case 440: - gObjects2F4[4].unk_0B8 = 11; + gActors[4].unk_0B8 = 11; break; case 450: - gObjects2F4[3].unk_0B8 = 6; + gActors[3].unk_0B8 = 6; break; case 480: func_800A6148(); @@ -2087,46 +2087,46 @@ void func_E16C50_8018DF74(Player* player) { 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_8018EA88(Actor* actor) { + Actor_Initialize(actor); + actor->obj.status = 2; + actor->obj.id = OBJ_ACTOR_195; + actor->obj.pos.x = 0.0f; + actor->obj.pos.y = 0.0f; + actor->obj.pos.z = gBosses[0].obj.pos.z + 500.0f; + actor->unk_0B6 = 37; + actor->unk_0B8 = 100; + actor->iwork[0] = 255; + actor->iwork[1] = 255; + actor->iwork[2] = 255; + actor->iwork[3] = 240; + actor->iwork[4] = 0; + actor->iwork[5] = 0; + actor->iwork[6] = 255; + actor->iwork[7] = 100; + actor->fwork[4] = 1.0f; + actor->scale = 1.0f; + Object_SetInfo(&actor->info, actor->obj.id); } -void func_E16C50_8018EB3C(Object_2F4* obj2F4) { +void func_E16C50_8018EB3C(Actor* actor) { 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); + Actor_Initialize(actor); + actor->obj.status = 1; + actor->obj.id = OBJ_ACTOR_195; + actor->obj.pos.x = player->pos.x; + actor->obj.pos.y = player->pos.y + 600.0f; + actor->obj.pos.z = player->pos.z + 2800.0f; + actor->unk_0B6 = 1; + actor->unk_0B8 = 100; + actor->fwork[0] = 0.0f; + Object_SetInfo(&actor->info, actor->obj.id); + Audio_PlaySfx(0x11030010, &actor->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + Audio_PlaySfx(0x31024059, &actor->sfxPos, 0, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } -void func_E16C50_8018EC38(Object_2F4* obj2F4, s32 arg1) { +void func_E16C50_8018EC38(Actor* actor, s32 arg1) { Vec3f sp2C[3] = { { -150.0f, 40.0f, 75.0f }, { 150.0f, 40.0f, 150.0f }, @@ -2135,20 +2135,20 @@ void func_E16C50_8018EC38(Object_2F4* obj2F4, s32 arg1) { 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; + Actor_Initialize(actor); + actor->obj.status = 2; + actor->obj.id = OBJ_ACTOR_195; + actor->obj.pos.x = sp2C[arg1].x + player->pos.x; + actor->obj.pos.y = sp2C[arg1].y + player->pos.y; + actor->obj.pos.z = sp2C[arg1].z + player->pos.z; + actor->unk_0B8 = 0x64; + actor->iwork[11] = 1; + actor->fwork[0] = 0.0f; if (arg1 + 1 != 3) { - obj2F4->unk_088 = arg1 + 2; + actor->iwork[14] = arg1 + 2; } - Object_SetInfo(&obj2F4->info, obj2F4->obj.id); - Audio_PlaySfx(0x3100000C, &obj2F4->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); + Object_SetInfo(&actor->info, actor->obj.id); + Audio_PlaySfx(0x3100000C, &actor->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C); } } @@ -2212,10 +2212,10 @@ void func_E16C50_8018ED78(Player* player) { 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; + func_E16C50_8018EA88(&gActors[4]); + func_E16C50_8018EA88(&gActors[5]); + func_E16C50_8018EA88(&gActors[6]); + gActors[4].fwork[4] = 0.5f; } if (D_80177A80 >= 200) { if (D_80178340 == 255) { @@ -2233,29 +2233,29 @@ void func_E16C50_8018ED78(Player* player) { 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); + Audio_PlaySfx(0x2940F026, &gActors[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; + gActors[4].iwork[3] -= 4; + if (gActors[4].iwork[3] < 0) { + gActors[4].iwork[3] = 0; } - gObjects2F4[4].unk_06C -= 4; - if (gObjects2F4[4].unk_06C < 0) { - gObjects2F4[4].unk_06C = 0; + gActors[4].iwork[7] -= 4; + if (gActors[4].iwork[7] < 0) { + gActors[4].iwork[7] = 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); + Math_SmoothStepToF(&gActors[5].fwork[4], 450.0f, 0.03f, 1000.0f, 1.0f); + Math_SmoothStepToF(&gActors[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); + Math_SmoothStepToF(&gActors[6].fwork[4], 350.0f, 0.03f, 1000.0f, 1.0f); + Math_SmoothStepToF(&gActors[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); + gActors[4].obj.pos.x = gActors[5].obj.pos.x = gActors[6].obj.pos.x = gBosses[0].obj.pos.x; + gActors[4].obj.pos.y = gActors[5].obj.pos.y = gActors[6].obj.pos.y = gBosses[0].obj.pos.y; + gActors[4].obj.pos.z = gActors[5].obj.pos.z = gActors[6].obj.pos.z = gBosses[0].obj.pos.z; + Math_SmoothStepToF(&gActors[4].scale, 600.0f, 0.03f, 1000.0f, 0.01f); } break; case 2: @@ -2271,10 +2271,10 @@ void func_E16C50_8018ED78(Player* player) { 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]); + func_E16C50_8018EC38(&gActors[1], 0); + func_E16C50_8018EC38(&gActors[2], 1); + func_E16C50_8018EC38(&gActors[3], 2); + func_E16C50_8018EB3C(&gActors[0]); D_80177A48[5] = 300.0f; D_80177A48[4] = 0.0f; D_80177A48[9] = 50.0f; @@ -2290,10 +2290,10 @@ void func_E16C50_8018ED78(Player* player) { } 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); + Math_SmoothStepToF(&gActors[1].obj.pos.y, 40.0f, 0.01f, 10.0f, 0.001f); + Math_SmoothStepToF(&gActors[2].obj.pos.y, 40.0f, 0.01f, 10.0f, 0.001f); + Math_SmoothStepToF(&gActors[3].obj.pos.y, 88.0f, 0.01f, 10.0f, 0.001f); + Math_SmoothStepToF(&gActors[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; @@ -2333,7 +2333,7 @@ void func_E16C50_8018ED78(Player* player) { player->camEye.z = D_80177988 = sp6C.z; if (D_80177A80 == 1076) { - Object_Kill(&gObjects2F4[0].obj, &gObjects2F4[0].sfxPos); + Object_Kill(&gActors[0].obj, &gActors[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); @@ -2386,26 +2386,26 @@ void func_E16C50_8018ED78(Player* player) { 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); + gActors[1].fwork[29] = 5.0f; + Audio_PlaySfx(0x09000002, &gActors[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); + gActors[2].fwork[29] = 5.0f; + Audio_PlaySfx(0x09000002, &gActors[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); + gActors[3].fwork[29] = 5.0f; + Audio_PlaySfx(0x09000002, &gActors[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); + Math_SmoothStepToF(&gActors[1].fwork[12], 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); + Math_SmoothStepToF(&gActors[2].fwork[12], 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); + Math_SmoothStepToF(&gActors[3].fwork[12], 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); diff --git a/src/overlays/ovl_E16C50/sf_aq.c b/src/overlays/ovl_E16C50/sf_aq.c index bc33e1ab..bdc26e39 100644 --- a/src/overlays/ovl_E16C50/sf_aq.c +++ b/src/overlays/ovl_E16C50/sf_aq.c @@ -1,41 +1,41 @@ #include "global.h" void func_E16C50_801AC918(Effect*); -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_801AD6C0(Actor*); +void func_E16C50_801AE168(Actor*); +void func_E16C50_801AE3D8(Actor*); +void func_E16C50_801AEB44(Actor*); +void func_E16C50_801AFA5C(Actor*); +void func_E16C50_801B099C(Actor*); +void func_E16C50_801B0B60(Actor*); +void func_E16C50_801B0EC0(Actor*); +void func_E16C50_801B504C(Actor*); +void func_E16C50_801B50E8(Actor*); +void func_E16C50_801B619C(Actor*); +void func_E16C50_801B638C(Actor*); +void func_E16C50_801B6FF8(Actor*); +void func_E16C50_801B7A24(Actor*); +void func_E16C50_801B7C78(Actor*); +void func_E16C50_801B90DC(Actor*); +void func_E16C50_801B91A4(Actor*); +void func_E16C50_801BA108(Actor*); +void func_E16C50_801BA26C(Actor*); +void func_E16C50_801BA4E4(Actor*); +void func_E16C50_801BA6A4(Actor*); +void func_E16C50_801BAD7C(Actor*); +void func_E16C50_801BADF8(Actor*); +void func_E16C50_801BB204(Actor*); +void func_E16C50_801BB79C(Actor*); +void func_E16C50_801BC930(Actor*); +void func_E16C50_801BC9A0(Actor*); +void func_E16C50_801BD264(Actor*); +void func_E16C50_801BD54C(Actor*); +void func_E16C50_801BDE6C(Actor*); 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*); +void func_E16C50_801BE3F8(Actor*); +void func_E16C50_801BEB1C(Actor*); +void func_E16C50_801BEC68(Actor*); +void func_E16C50_801BEC74(Actor*); f32 D_E16C50_801BFB60 = 0.0f; s32 D_E16C50_801BFB64[11] = { @@ -306,34 +306,34 @@ f32 D_E16C50_801C445C; #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801AD688.s") -// OBJ_2F4_255 action +// OBJ_ACTOR_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 +// OBJ_ACTOR_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 +// OBJ_ACTOR_256 action #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801AE3D8.s") -// OBJ_2F4_256 draw +// OBJ_ACTOR_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 +// OBJ_ACTOR_257 action #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801AFA5C.s") -// OBJ_2F4_257 draw +// OBJ_ACTOR_257 draw #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801B099C.s") -// OBJ_2F4_258 action +// OBJ_ACTOR_258 action #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801B0B60.s") -// OBJ_2F4_258 draw +// OBJ_ACTOR_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") @@ -362,106 +362,106 @@ void func_E16C50_801B4D84(Boss* bossAQ); #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801B4E94.s") -// OBJ_2F4_261 draw +// OBJ_ACTOR_261 draw #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801B504C.s") -// OBJ_2F4_261 action +// OBJ_ACTOR_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 +// OBJ_ACTOR_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 +// OBJ_ACTOR_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 +// OBJ_ACTOR_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 +// OBJ_ACTOR_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 +// OBJ_ACTOR_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 +// OBJ_ACTOR_260 draw #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801B90DC.s") -// OBJ_2F4_263 action +// OBJ_ACTOR_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 +// OBJ_ACTOR_263 draw #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BA108.s") -// OBJ_2F4_264 action +// OBJ_ACTOR_264 action #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BA26C.s") -// OBJ_2F4_264 draw +// OBJ_ACTOR_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 +// OBJ_ACTOR_265 action #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BA6A4.s") -// OBJ_2F4_265 draw +// OBJ_ACTOR_265 draw #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BAD7C.s") -// OBJ_2F4_266 action +// OBJ_ACTOR_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 +// OBJ_ACTOR_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 +// OBJ_ACTOR_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 +// OBJ_ACTOR_267 draw #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BC930.s") -// OBJ_2F4_269 action +// OBJ_ACTOR_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 +// OBJ_ACTOR_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 +// OBJ_ACTOR_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 +// OBJ_ACTOR_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") @@ -475,10 +475,10 @@ void func_E16C50_801B4D84(Boss* bossAQ); #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BE274.s") -// OBJ_2F4_270 action +// OBJ_ACTOR_270 action #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BE3F8.s") -// OBJ_2F4_270 draw +// OBJ_ACTOR_270 draw #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BEB1C.s") // OBJ_BOSS_301 action @@ -489,10 +489,10 @@ void func_E16C50_801BEC50(Boss* boss301) { void func_E16C50_801BEC5C(Boss* boss301) { } -// OBJ_2F4_188 action +// OBJ_ACTOR_188 action #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_aq/func_E16C50_801BEC68.s") -// OBJ_2F4_188 draw +// OBJ_ACTOR_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") diff --git a/src/overlays/ovl_E16C50/sf_so.c b/src/overlays/ovl_E16C50/sf_so.c index 9da8bc4c..5d221287 100644 --- a/src/overlays/ovl_E16C50/sf_so.c +++ b/src/overlays/ovl_E16C50/sf_so.c @@ -2,10 +2,10 @@ 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_8019EA7C(Actor*); +void func_E16C50_8019F20C(Actor*); +void func_E16C50_8019F7AC(Actor*); +void func_E16C50_801A003C(Actor*); void func_E16C50_801A0120(Effect*); void func_E16C50_801A0AF0(Effect*); @@ -93,7 +93,7 @@ s32 D_E16C50_801C27A0[8]; // unused? part of previous? #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_8019E9F4.s") -// OBJ_2F4_278 action +// OBJ_ACTOR_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") @@ -104,10 +104,10 @@ s32 D_E16C50_801C27A0[8]; // unused? part of previous? #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_8019F194.s") -// OBJ_2F4_275, 276, 277 action +// OBJ_ACTOR_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 +// OBJ_ACTOR_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") @@ -122,7 +122,7 @@ s32 D_E16C50_801C27A0[8]; // unused? part of previous? #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_8019FFC0.s") -// OBJ_2F4_279 action +// OBJ_ACTOR_279 action #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_so/func_E16C50_801A003C.s") // OBJ_EFFECT_392 action diff --git a/src/overlays/ovl_E16C50/sf_zo.c b/src/overlays/ovl_E16C50/sf_zo.c index 5aeb68ff..8fd7e53a 100644 --- a/src/overlays/ovl_E16C50/sf_zo.c +++ b/src/overlays/ovl_E16C50/sf_zo.c @@ -1,39 +1,39 @@ #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*); +void func_E16C50_801904CC(Actor*); +void func_E16C50_80190A00(Actor*); +void func_E16C50_80191010(Actor*); +void func_E16C50_801914C4(Actor*); +void func_E16C50_80191680(Actor*); +void func_E16C50_80191B4C(Actor*); +void func_E16C50_80191BC4(Actor*); +void func_E16C50_80191DB0(Actor*); +void func_E16C50_80191FFC(Actor*); +void func_E16C50_80192094(Actor*); +void func_E16C50_80192834(Actor*); +void func_E16C50_80192C18(Actor*); +void func_E16C50_80192E64(Actor*); +void func_E16C50_80193240(Actor*); +void func_E16C50_8019969C(Actor*); +void func_E16C50_8019983C(Actor*); +void func_E16C50_80199A28(Actor*); +void func_E16C50_80199E24(Actor*); +void func_E16C50_80199F10(Actor*); +void func_E16C50_8019A1FC(Actor*); +void func_E16C50_8019A5D4(Actor*); +void func_E16C50_8019ACCC(Actor*); +void func_E16C50_8019B548(Actor*); +void func_E16C50_8019B7DC(Actor*); +void func_E16C50_8019B854(Actor*); +void func_E16C50_8019BDE0(Actor*); +void func_E16C50_8019BE48(Actor*); +void func_E16C50_8019C1CC(Actor*); +void func_E16C50_8019C454(Actor*); +void func_E16C50_8019C83C(Actor*); +void func_E16C50_8019CBEC(Actor*); +void func_E16C50_8019CE58(Actor*); +void func_E16C50_8019D15C(Actor*); +void func_E16C50_8019D3C4(Actor*); Vec3f D_E16C50_801BF560 = { 0.0f, 0.0f, 0.0f }; s16 D_E16C50_801BF56C[20] = { @@ -159,70 +159,70 @@ UnkStruct_1C24E8 D_E16C50_801C24E8; #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80190204.s") -// OBJ_2F4_235 draw +// OBJ_ACTOR_235 draw #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80190430.s") -// OBJ_2F4_235 action +// OBJ_ACTOR_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 +// OBJ_ACTOR_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 +// OBJ_ACTOR_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 +// OBJ_ACTOR_238 action #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80191010.s") -// OBJ_2F4_238 draw +// OBJ_ACTOR_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 +// OBJ_ACTOR_240 action #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80191680.s") -// OBJ_2F4_240 draw +// OBJ_ACTOR_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 +// OBJ_ACTOR_241 action #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80191BC4.s") -// OBJ_2F4_241 draw +// OBJ_ACTOR_241 draw #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80191DB0.s") -// OBJ_2F4_242 action +// OBJ_ACTOR_242 action #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80191E94.s") -// OBJ_2F4_242 draw +// OBJ_ACTOR_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 +// OBJ_ACTOR_243 action #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80192834.s") -// OBJ_2F4_243 draw +// OBJ_ACTOR_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 +// OBJ_ACTOR_244 action #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80192E64.s") -// OBJ_2F4_244 draw +// OBJ_ACTOR_244 draw #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80193240.s") // OBJ_BOSS_ZO init @@ -281,84 +281,84 @@ void func_E16C50_80194A84(Boss* bossZO); #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019962C.s") -// OBJ_2F4_245 action +// OBJ_ACTOR_245 action #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019969C.s") -// OBJ_2F4_245 draw +// OBJ_ACTOR_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 +// OBJ_ACTOR_246 action #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80199A28.s") -// OBJ_2F4_246 draw +// OBJ_ACTOR_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 +// OBJ_ACTOR_248 action #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_80199F10.s") -// OBJ_2F4_248 draw +// OBJ_ACTOR_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 +// OBJ_ACTOR_249 action #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019A5D4.s") -// OBJ_2F4_249 draw +// OBJ_ACTOR_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 +// OBJ_ACTOR_250 action #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019B548.s") -// OBJ_2F4_250 draw +// OBJ_ACTOR_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 +// OBJ_ACTOR_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 +// OBJ_ACTOR_251 draw #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019BDE0.s") -// OBJ_2F4_252 action +// OBJ_ACTOR_252 action #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019BE48.s") -// OBJ_2F4_252 draw +// OBJ_ACTOR_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 +// OBJ_ACTOR_253 action #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019C454.s") -// OBJ_2F4_253 draw +// OBJ_ACTOR_253 draw #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019C83C.s") -// OBJ_2F4_254 action +// OBJ_ACTOR_254 action #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019CBEC.s") -// OBJ_2F4_254 draw +// OBJ_ACTOR_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 +// OBJ_ACTOR_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 +// OBJ_ACTOR_247 draw #pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_E16C50/sf_zo/func_E16C50_8019D3C4.s") void func_E16C50_8019D428(Player* player); diff --git a/yamls/us/overlays.yaml b/yamls/us/overlays.yaml index 667bca90..9d4c666f 100644 --- a/yamls/us/overlays.yaml +++ b/yamls/us/overlays.yaml @@ -8,17 +8,21 @@ symbol_name_format: DF4260_$VRAM subsegments: - [0xDF4260, c, DF4260] + - [0xDF4270, c, fox_co] - [0xDFEE30, c, DFEE30] - [0xE05620, c, E05620] - [0xE05990, c, E05990] - - [0xE06510, data, DF4260] + - [0xE06510, .data, DF4260] + - [0xE06520, .data, fox_co] - [0xE06880, data, DFEE30] - [0xE07B90, data, E05990] - - [0xE07C30, .rodata, DF4260] + - [0xE07C30, .rodata, fox_co] - [0xE07FF0, .rodata, DFEE30] - [0xE08380, .rodata, E05620] - [0xE083C0, .rodata, E05990] - - { start: 0xE08400, type: bss, vram: 0x8019B6C0, name: ovl_DF4260 } + - { start: 0xE08400, type: .bss, vram: 0x8019B6C0, name: DF4260 } + - { start: 0xE08410, type: .bss, vram: 0x8019B6D0, name: fox_co } + - { start: 0xE08530, type: bss, vram: 0x8019B7F0, name: DFEE30 } - name: ovl_E08400 type: code