From a864e5ebe2dda26ef7ac5612d9fb2924184c680a Mon Sep 17 00:00:00 2001 From: petrie911 <69443847+petrie911@users.noreply.github.com> Date: Mon, 6 May 2024 17:45:24 -0500 Subject: [PATCH] oh god the docs (#234) --- include/context.h | 2 +- include/functions.h | 114 +-- include/i1.h | 6 +- include/i3.h | 34 +- include/i4.h | 4 +- include/i5.h | 4 +- include/i6.h | 14 +- include/prevent_context_reordering.h | 6 +- include/sf64audio_external.h | 1 + include/sf64object.h | 44 +- include/sf64player.h | 46 +- include/sfx.h | 4 +- linker_scripts/us/symbol_addrs_engine.txt | 178 ++-- linker_scripts/us/symbol_addrs_overlays.txt | 14 +- src/audio/audio_general.c | 10 +- src/engine/fox_360.c | 2 +- src/engine/fox_beam.c | 751 ++++++++--------- src/engine/fox_boss.c | 14 +- src/engine/fox_context.c | 2 +- src/engine/fox_demo.c | 98 +-- src/engine/fox_display.c | 27 +- src/engine/fox_edata_info.c | 28 +- src/engine/fox_edisplay.c | 56 +- src/engine/fox_effect.c | 12 +- src/engine/fox_enmy.c | 90 ++- src/engine/fox_enmy2.c | 96 ++- src/engine/fox_game.c | 26 +- src/engine/fox_hud.c | 32 +- src/engine/fox_play.c | 853 ++++++++++---------- src/engine/fox_tank.c | 83 +- src/engine/fox_versus.c | 16 +- src/overlays/ovl_ending/fox_end2.c | 4 +- src/overlays/ovl_i1/fox_co.c | 30 +- src/overlays/ovl_i1/fox_tr360.c | 27 +- src/overlays/ovl_i1/fox_ve1.c | 28 +- src/overlays/ovl_i2/fox_sx.c | 12 +- src/overlays/ovl_i3/fox_a6.c | 14 +- src/overlays/ovl_i3/fox_aq.c | 118 +-- src/overlays/ovl_i3/fox_so.c | 47 +- src/overlays/ovl_i3/fox_zo.c | 111 +-- src/overlays/ovl_i4/fox_bo.c | 14 +- src/overlays/ovl_i4/fox_fo.c | 40 +- src/overlays/ovl_i4/fox_ka.c | 8 +- src/overlays/ovl_i4/fox_sz.c | 16 +- src/overlays/ovl_i5/fox_ma.c | 40 +- src/overlays/ovl_i5/fox_ti.c | 34 +- src/overlays/ovl_i5/fox_ti_cs.c | 6 +- src/overlays/ovl_i6/fox_andross.c | 30 +- src/overlays/ovl_i6/fox_sy.c | 63 +- src/overlays/ovl_i6/fox_turret.c | 121 +-- src/overlays/ovl_i6/fox_ve2.c | 14 +- src/overlays/ovl_menu/fox_map.c | 12 +- src/overlays/ovl_menu/fox_option.c | 32 +- src/overlays/ovl_menu/fox_title.c | 18 +- src/sys/sys_fault.c | 2 +- src/sys/sys_lib.c | 4 +- src/sys/sys_main.c | 8 +- 57 files changed, 1808 insertions(+), 1712 deletions(-) diff --git a/include/context.h b/include/context.h index 0027aac4..5c697030 100644 --- a/include/context.h +++ b/include/context.h @@ -86,7 +86,7 @@ extern LevelId gCurrentLevel; extern s32 gLevelPhase; extern s32 gBossActive; extern s32 D_ctx_8017828C; -extern s32 D_ctx_80178294; +extern s32 gUseDynaFloor; extern s32 gRadioState; extern s32 gCurrentRadioPortrait; extern s32 gRadioStateTimer; diff --git a/include/functions.h b/include/functions.h index 223e8abf..81fa1215 100644 --- a/include/functions.h +++ b/include/functions.h @@ -32,13 +32,13 @@ void ActorAllRange_Update(Actor* this); void ActorAllRange_Draw(Actor* this); //fox_beam -void func_beam_80038140(PlayerShot* shot); -void func_beam_80036318(PlayerShot* shot); -void func_beam_80035DEC(f32 xPos, f32 yPos, f32 zPos); +void PlayerShot_CollisionCheck(PlayerShot* shot); +void PlayerShot_Impact(PlayerShot* shot); +void PlayerShot_SpawnEffect351(f32 xPos, f32 yPos, f32 zPos); void PlayerShot_Initialize(PlayerShot*); -void func_beam_800365E4(f32, f32, f32, f32, f32, f32, f32, f32, f32, s32, s32); -void PlayerShot_Update(void); -void PlayerShot_Draw(void); +void PlayerShot_SpawnEffect344(f32, f32, f32, f32, f32, f32, f32, f32, f32, s32, s32); +void PlayerShot_UpdateAll(void); +void PlayerShot_DrawAll(void); // fox_bg void Background_DrawStarfield(void); @@ -58,17 +58,17 @@ void Boss299_Draw(Boss* boss); void Boss300_Init(Boss* boss); void Boss300_Update(Boss* boss); void Boss300_Draw(Boss* boss); -void Boss_SpawnActor189(f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, s32, s32); +void Boss_SpawnDebris(f32, f32, f32, f32, f32, f32, f32, f32, f32, f32, s32, s32); void Boss_CompleteLevel(Player* player, f32 xPos, f32 yPos, f32 zPos); // fox_tank -void func_tank_80043468(Player* player); +void Player_UpdateTankCamOnRails(Player* player); void func_tank_800444BC(Player* player); void func_tank_80044868(Player*); void func_tank_80045130(Player*); void func_tank_80045678(Player*); void func_tank_80045E7C(Player*); -void func_tank_80047504(Player* player); +void Tank_UpdateOnRails(Player* player); void func_tank_80046358(Player*); // fox_demo @@ -111,7 +111,7 @@ void Sprite167_Draw(Sprite*); void FogShadow_Draw(Sprite*); void func_edisplay_80059F68(Scenery*); void func_edisplay_80059FDC(Scenery*); -void Actor189_Draw(Actor*); +void ActorDebris_Draw(Actor*); void Actor_DrawEngineAndContrails(Actor*); void Actor_DrawEngineGlow(Actor*, s32); void func_edisplay_8005B388(Actor*); @@ -129,9 +129,9 @@ void ItemBomb_Draw(Item*); void ItemLasers_Draw(Item*); void ItemMeteoWarp_Draw(Item*); void Object_ClampSfxSource(f32*); -void func_edisplay_8005F0E8(f32*, Vec3f*); -void func_edisplay_8005F1EC(f32*); -void func_edisplay_8005F290(f32*, Vec3f*); +void Object_SetSfxSourceToPos(f32*, Vec3f*); +void Object_UpdateSfxSource(f32*); +void Object_SetSfxSourceToView(f32*, Vec3f*); void Display_SetSecondLight(Vec3f*); bool func_edisplay_8005F9DC(Vec3f*); @@ -140,7 +140,7 @@ void Object_Draw(s32 ); void Effect_Draw(u8 ); void TexturedLine_Draw(void); void TexturedLine_DrawPath(s32); -void func_enmy_80060F30(f32* , u32 , s32 ); +void Object_PlayerSfx(f32* , u32 , s32 ); void Object_Kill(Object*, f32*); bool func_enmy_80060FE4(Vec3f*, f32); void Object_SetInfo(ObjectInfo* info, u32 objId); @@ -177,7 +177,7 @@ void Sprite167_Update(Sprite*); void func_enmy_80066EA8(Scenery*); void Item_CheckBounds(Item*); void Item_SpinPickup(Item*); -void func_enmy_800674B4(f32, f32, f32, f32, f32, f32, f32, f32); +void Actor_SpawnDebris70(f32, f32, f32, f32, f32, f32, f32, f32); void ActorSupplies_Update(Actor*); void ActorSupplies_Draw(Actor*); void func_enmy_80067A40(void); @@ -221,7 +221,7 @@ void Actor194_Dying(Actor*); void Actor194_Draw(Actor*); void Scenery42_Update(Scenery*); void Actor196_Update(Actor*); -void Actor189_Update(Actor*); +void ActorDebris_Update(Actor*); void MeteoTunnel_Update(Scenery*); void Actor_SetupPlayerShot(PlayerShotId, PlayerShot*, s32, f32, f32, f32, f32, f32, f32, f32, f32, f32); void Actor_SpawnPlayerLaser(s32, f32, f32, f32, f32, f32, f32, f32, f32, f32); @@ -407,11 +407,11 @@ void HUD_DrawCountdown(s32* , f32); void func_hud_8008E9EC(f32, f32); void func_hud_8008EA14(f32, f32); void HUD_Draw(void); -void func_hud_8008FE78(Boss*); +void HUD_BossFO_Draw(Boss*); void func_hud_8008FFF0(Boss*, s32); s32 func_hud_80090200(Boss* boss); bool func_hud_8009092C(Actor*); -void func_hud_800907C4(Boss*); +void HUD_BossFO_Update(Boss*); bool func_hud_800915FC(Actor*); bool func_hud_800924E0(Actor*); @@ -442,54 +442,54 @@ void func_800A3CA0(void); // fox_play bool Play_CheckMedalStatus(u16); -void func_play_800A3FB0(void); +void Play_dummy_MuteSfx(void); s32 Play_GetMaxShields(void); -void func_play_800A6028(f32*, u32); -void func_play_800AC290(Player* player, PlayerShot* shot, f32 arg2, f32 arg3, PlayerShotId shotId, f32 speed); +void Play_PlaySfxFirstPlayer(f32*, u32); +void Player_SetupArwingShot(Player* player, PlayerShot* shot, f32 arg2, f32 arg3, PlayerShotId shotId, f32 speed); void Play_Setup(void); -void func_play_800A594C(void); +void Play_InitEnvironment(void); +void Play_GenerateStarfield(void); void Play_SetupStarfield(void); -void func_play_800A5EBC(void); -void func_play_800A5FA0(f32* , u32 , s32 ); -void func_play_800A6070(f32* , u32 ); +void Player_PlaySfx(f32* , u32 , s32 ); +void Play_PlaySfxNoPlayer(f32* , u32 ); void Play_ClearObjectData(void); -void func_play_800A69F8(s32 , f32 , f32 , f32 ); +void Play_SpawnDebris(s32 , f32 , f32 , f32 ); void Player_ApplyDamage(Player* player, s32 direction, s32 damage); -bool func_play_800A73E4(f32* , s32* , f32 xPos, f32 yPos, f32 zPos); -bool func_play_800A78C4(Hitbox* hitbox, f32 , f32 , f32 , f32 , f32 , f32 ); -void func_play_800A8BA4(Player* player); -void func_play_800AA800(Player* player); -void func_play_800ACDC0(Player*, PlayerShot*, PlayerShotId ); -void func_play_800B0F50(Player*); -void func_play_800B44C4(Player*); -void func_play_800AB334(void); -void func_play_800ABA08(void); -void func_play_800AE278(Player*); -void func_play_800B2130(Player*); -void func_play_800B2574(Player*); -void func_play_800B56BC(Player*); -void func_play_800B5D30(Player*, s32); -void func_play_800B5FBC(Player*, s32 , bool ); -void func_play_800B63BC(Player*, s32); -void func_play_800B6848(Player*, s32 ); -void func_play_800B6BFC(Player*, s32 ); -void func_play_800B6F50(f32, f32, f32, f32, f32, f32); -void func_play_800B7184(Player*, s32); -void func_play_800B73E0(Player*); +bool Play_CheckDynaFloorCollision(f32* , s32* , f32 xPos, f32 yPos, f32 zPos); +bool Play_CheckSingleHitbox(Hitbox* hitbox, f32 , f32 , f32 , f32 , f32 , f32 ); +void Player_CollisionCheck(Player* player); +void Player_FloorCheck(Player* player); +void Player_SetupOnFootShot(Player*, PlayerShot*, PlayerShotId ); +void Player_Setup(Player*); +void Player_Update360(Player*); +void Play_InitLevel(void); +void Player_InitVersus(void); +void Player_CheckBounds360(Player*); +void Player_UpdateArwingRoll(Player*); +void Player_ArwingBoost(Player*); +void Camera_UpdateArwingOnRails(Player*); +void Camera_UpdateCockpitOnRails(Player*, s32); +void Camera_FollowPlayer(Player*, s32 , bool ); +void Camera_UpdateArwing360(Player*, s32); +void Camera_UpdateTank360(Player*, s32 ); +void Camera_UpdateOnFoot360(Player*, s32 ); +void Camera_SetStarfieldPos(f32, f32, f32, f32, f32, f32); +void Camera_Update360(Player*, s32); +void Camera_SetupLights(Player*); void Play_SpawnVsItem(ObjectId , Item*); void Play_Main(void); -void func_play_800A668C(f32 xPos, f32 yPos, f32 zPos); -void func_play_800AD7F0(Player* player); -void func_play_800ADF58(Player* player); -void func_play_800B415C(Player* player); -void func_play_800B41E0(Player* player); +void Play_SpawnHitmark(f32 xPos, f32 yPos, f32 zPos); +void Player_Shoot(Player* player); +void Player_UpdatePath(Player* player); +void Player_LowHealthAlarm(Player* player); +void Play_dummy_800B41E0(Player* player); void Player_Down(Player* player); -void func_play_800A46A0(Player* player); -void func_play_800A86E4(Player* player); -void func_play_800A887C(Player* player); -s32 func_play_800A7974(Player* player, f32* hitboxData, s32* index, f32 xPos, f32 yPos, f32 zPos, f32 xRot, f32 yRot, +void Player_DamageEffects(Player* player); +void Player_CheckItemCollect(Player* player); +void Player_UpdateHitbox(Player* player); +s32 Player_CheckHitboxCollision(Player* player, f32* hitboxData, s32* index, f32 xPos, f32 yPos, f32 zPos, f32 xRot, f32 yRot, f32 zRot, f32 arg9, f32 argA, f32 argB); -bool func_play_800A8054(ObjectId objId, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, Vec3f* arg7, Vec3f* arg8); +bool Play_CheckPolyCollision(ObjectId objId, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, Vec3f* arg7, Vec3f* arg8); void Scenery360_Initialize(Scenery360*); // fox_versus diff --git a/include/i1.h b/include/i1.h index 5316bb5d..ba1ce7fe 100644 --- a/include/i1.h +++ b/include/i1.h @@ -46,8 +46,8 @@ void Venom1_80192EB0(Actor*); void Venom1_801933DC(Actor*); void Venom1_801934D0(Actor*); void Venom1_80193540(Scenery*); -void Venom1_80194398(Boss*); -void Venom1_801985E4(Boss*); +void Venom1_Boss_Update(Boss*); +void Venom1_Boss_Draw(Boss*); void Training_ItemRing_Update(Item*); void OvlI1_CallFunction(s32, void*); @@ -66,7 +66,7 @@ void Venom1_Boss319_Init(Boss *); void Venom1_80198310(Boss *); void Venom1_80198594(Boss *); void Training_801988E0(void); -void Training_80198C50(void); +void Training_Setup360(void); void Training_8019949C(void); void Venom1_8019864C(PlayerShot*); diff --git a/include/i3.h b/include/i3.h index 94a5c041..a7620e87 100644 --- a/include/i3.h +++ b/include/i3.h @@ -19,12 +19,12 @@ void Aquas_801BE0F0(Actor*); void OvlI3_CallFunction(s32, void*); void Area6_BossA6_Init(Boss *); -void Area6_80187944(Boss*); -void Area6_8018C54C(Boss*); +void Area6_Boss_Update(Boss*); +void Area6_Boss_Draw(Boss*); void Area6_LevelStart(Player *player); void Area6_LevelComplete(Player*); -void Zoness_801900FC(Vec3f*, Vec3f*, f32, f32, f32, s32, f32, s32, s32); +void Zoness_SpawnDebris(Vec3f*, Vec3f*, f32, f32, f32, s32, f32, s32, s32); void Zoness_80190430(Actor* actor); void Zoness_801904CC(Actor* actor); void Zoness_80190A00(Actor* actor); @@ -45,8 +45,8 @@ void Zoness_80192C18(Actor* actor); void Zoness_80192E64(Actor* actor); void Zoness_80193240(Actor* actor); void Zoness_BossZo_Init(Boss* this); -void Zoness_801949DC(Boss* bossZO); -void Zoness_80194A84(Boss* bossZO); +void Zoness_Boss_Draw(Boss* bossZO); +void Zoness_Boss_Update(Boss* bossZO); void Zoness_8019969C(Actor* actor); void Zoness_8019983C(Actor* actor); void Zoness_80199A28(Actor* actor); @@ -83,22 +83,22 @@ void Solar_801A003C(Actor*); void Solar_801A0120(Effect*); void Solar_801A0AF0(Effect*); void Solar_LevelStart(Player* player); -void Solar_801A5B3C(Boss*); -void Solar_801A71B8(Boss*); +void Solar_Boss_Update(Boss*); +void Solar_Boss_Draw(Boss*); void Solar_801A8BE8(Actor*); void Solar_LevelComplete(Player* player); void Aquas_801A9824(void); void Aquas_801AA20C(void); -void Aquas_801AA8E8(Player*); -void Aquas_801AACF8(Player*); +void Aquas_UpdateCamera(Player*); +void Aquas_BlueMarineMove(Player*); void Aquas_801ABA40(PlayerShot*); -void Aquas_801AC274(Player*); +void Aquas_BlueMarineShoot(Player*); void Aquas_801AC8A8(f32, f32, f32, f32, s32); void Aquas_801AC918(Effect*); void Aquas_801ACBB4(Player*); -void Aquas_801ACE50(Player*); -void Aquas_801AD328(Player*); +void Aquas_BlueMarineBoost(Player*); +void Aquas_BlueMarineBrake(Player*); void Aquas_801AD688(Actor *); void Aquas_801AD6C0(Actor*); void Aquas_801AE168(Actor*); @@ -111,8 +111,8 @@ void Aquas_801B099C(Actor*); void Aquas_801B0B60(Actor*); void Aquas_801B0EC0(Actor*); void Aquas_BossAq_Init(Boss*); -void Aquas_801B134C(Boss*); -void Aquas_801B4D84(Boss*); +void Aquas_Boss_Update(Boss*); +void Aquas_Boss_Draw(Boss*); void Aquas_801B504C(Actor*); void Aquas_801B50E8(Actor*); void Aquas_801B619C(Actor*); @@ -144,10 +144,10 @@ void Aquas_801BDF14(void); void Aquas_801BE1FC(Scenery*); void Aquas_801BE3F8(Actor*); void Aquas_801BEB1C(Actor*); -void Aquas_801BEC50(Boss*); -void Aquas_801BEC5C(Boss*); +void Aquas_Boss301_Update(Boss*); +void Aquas_Boss301_Draw(Boss*); void Aquas_801BEC68(Actor*); void Aquas_801BEC74(Actor*); -void Aquas_801BEC80(Player*); +void Aquas_Update360(Player*); #endif diff --git a/include/i4.h b/include/i4.h index d4188c53..a1b9069b 100644 --- a/include/i4.h +++ b/include/i4.h @@ -47,7 +47,7 @@ void Katina_BossUpdate(Boss*); void Katina_BossDraw(Boss*); void SectorZ_8019E234(Actor*); void SectorZ_8019E3A8(Actor*); -void SectorZ_8019E454(Boss*); -void SectorZ_8019E98C(Boss*); +void SectorZ_Boss_Update(Boss*); +void SectorZ_Boss_Draw(Boss*); #endif diff --git a/include/i5.h b/include/i5.h index c73f6513..ae2b94d4 100644 --- a/include/i5.h +++ b/include/i5.h @@ -82,8 +82,8 @@ void Titania_8018EF14(Actor*); void Titania_Cactus_Update(Sprite*); void Titania_8018F4D8(Scenery*); void Titania_8018F8B8(Scenery*); -void Titania_80197A94(Boss*); -void Titania_801982A8(Boss*); +void Titania_Boss_Update(Boss*); +void Titania_Boss_Draw(Boss*); void Macbeth_8019C778(Actor*); void Macbeth_8019CE88(Actor*); void Macbeth_8019D700(Actor*); diff --git a/include/i6.h b/include/i6.h index 7ef81803..844e4fb5 100644 --- a/include/i6.h +++ b/include/i6.h @@ -36,9 +36,9 @@ void Venom2_80196968(void); void SectorY_Boss314_Init(Boss *); void SectorY_Actor204_Update(Actor*); void SectorY_Actor204_Draw(Actor*); -void Turret_801A5AD4(Player*); -void Turret_801A5FC0(Player*); -void Turret_801A6164(Player *); +void Turret_Update(Player*); +void Turret_UpdateCamera(Player*); +void Turret_Draw(Player *); void Andross_801880E4(Actor*); void Andross_80188448(Actor*); @@ -60,12 +60,12 @@ void Andross_80193380(Scenery*); void Andross_8019350C(Scenery*); void Andross_8019356C(Scenery*); void Andross_801935D4(Scenery*); -void Venom2_80196210(Boss*); -void Venom2_80196288(Boss*); +void Venom2_Boss_Update(Boss*); +void Venom2_Boss_Draw(Boss*); void SectorY_80197C64(Effect*); void SectorY_80197CB8(Scenery*); -void SectorY_8019C888(Boss*); -void SectorY_8019E2C4(Boss*); +void SectorY_Boss_Update(Boss*); +void SectorY_Boss_Draw(Boss*); void SectorY_801A4E44(Scenery*); void SectorY_801A52B8(Scenery*); diff --git a/include/prevent_context_reordering.h b/include/prevent_context_reordering.h index 968253ae..9b7404d8 100644 --- a/include/prevent_context_reordering.h +++ b/include/prevent_context_reordering.h @@ -1,15 +1,15 @@ #ifndef PREVENT_CONTEXT_REORDERING_H #define PREVENT_CONTEXT_REORDERING_H -// extern int Dummyhalf; +extern int Dummyhalf; // struct Dummy0 {int x;}; // struct Dummy1 {int x;}; // struct Dummy2 {int x;}; // struct Dummy3 {int x;}; // struct Dummy4 {int x;}; // struct Dummy5 {int x;}; -struct Dummy6 {int x;}; -struct Dummy7 {int x;}; +// struct Dummy6 {int x;}; +// struct Dummy7 {int x;}; struct Dummy8 {int x;}; struct Dummy9 {int x;}; struct Dummy10 {int x;}; diff --git a/include/sf64audio_external.h b/include/sf64audio_external.h index a3be1105..7fb41b79 100644 --- a/include/sf64audio_external.h +++ b/include/sf64audio_external.h @@ -14,6 +14,7 @@ typedef enum AudioType { /* 0 */ AUDIO_TYPE_MUSIC, /* 1 */ AUDIO_TYPE_VOICE, /* 2 */ AUDIO_TYPE_SFX, + /* 3 */ AUDIO_TYPE_MAX, } AudioType; typedef enum { diff --git a/include/sf64object.h b/include/sf64object.h index 8b8899a2..776b8591 100644 --- a/include/sf64object.h +++ b/include/sf64object.h @@ -45,12 +45,12 @@ typedef enum { /* 1 */ COL1_1, // OBJ_SCENERY_ME_TUNNEL /* 2 */ COL1_2, /* 3 */ COL1_3, // ACTOR_EVENT_ID - /* 4 */ COL1_4, // OBJ_BOSS_308 + /* 4 */ COL1_4, // OBJ_BOSS_FO /* 5 */ COL1_5, // OBJ_SCENERY_149 /* 6 */ COL1_6, // OBJ_SCENERY_150 /* 7 */ COL1_7, // OBJ_BOSS_309 - /* 8 */ COL1_8, // OBJ_BOSS_313 - /* 9 */ COL1_9, // OBJ_BOSS_312 + /* 8 */ COL1_8, // OBJ_BOSS_SZ + /* 9 */ COL1_9, // OBJ_BOSS_VE2 } CollisonId_1; typedef enum { @@ -502,7 +502,7 @@ typedef enum ObjectId { /* 186 */ OBJ_ACTOR_186, /* 187 */ OBJ_ACTOR_187, /* 188 */ OBJ_ACTOR_188, - /* 189 */ OBJ_ACTOR_189, + /* 189 */ OBJ_ACTOR_DEBRIS, /* 190 */ OBJ_ACTOR_190, /* 191 */ OBJ_ACTOR_191, /* 192 */ OBJ_ACTOR_192, @@ -619,20 +619,20 @@ typedef enum ObjectId { /* 303 */ OBJ_BOSS_303, /* 304 */ OBJ_BOSS_304, /* 305 */ OBJ_BOSS_305, - /* 306 */ OBJ_BOSS_306, + /* 306 */ OBJ_BOSS_TI, /* 307 */ OBJ_BOSS_ZO, - /* 308 */ OBJ_BOSS_308, + /* 308 */ OBJ_BOSS_FO, /* 309 */ OBJ_BOSS_309, /* 310 */ OBJ_BOSS_310, /* 311 */ OBJ_BOSS_311, - /* 312 */ OBJ_BOSS_312, - /* 313 */ OBJ_BOSS_313, - /* 314 */ OBJ_BOSS_314, + /* 312 */ OBJ_BOSS_VE2, + /* 313 */ OBJ_BOSS_SZ, + /* 314 */ OBJ_BOSS_SY, /* 315 */ OBJ_BOSS_SO, - /* 316 */ OBJ_BOSS_316, - /* 317 */ OBJ_BOSS_317, + /* 316 */ OBJ_BOSS_KA, + /* 317 */ OBJ_BOSS_KA_BASE, /* 318 */ OBJ_BOSS_AQ, - /* 319 */ OBJ_BOSS_319, + /* 319 */ OBJ_BOSS_VE1, /* 320 */ OBJ_BOSS_320, /* 321 */ OBJ_BOSS_321, /* 322 */ OBJ_ITEM_LASERS, @@ -719,10 +719,24 @@ typedef enum ObjectId { /* 403 */ OBJ_UNK_403, /* 404 */ OBJ_UNK_404, /* 405 */ OBJ_UNK_405, - /* 406 */ OBJ_UNK_406, /* 407 */ OBJ_ID_MAX, } ObjectId; +#define OBJ_SCENERY_START OBJ_SCENERY_0 +#define OBJ_SPRITE_START OBJ_SPRITE_CO_POLE +#define OBJ_ACTOR_START OBJ_ACTOR_176 +#define OBJ_BOSS_START OBJ_BOSS_292 +#define OBJ_ITEM_START OBJ_ITEM_LASERS +#define OBJ_EFFECT_START OBJ_EFFECT_FIRE_SMOKE +#define OBJ_ENV_START OBJ_UNK_400 + +#define OBJ_SCENERY_MAX OBJ_SPRITE_START +#define OBJ_SPRITE_MAX OBJ_ACTOR_START +#define OBJ_ACTOR_MAX OBJ_BOSS_START +#define OBJ_BOSS_MAX OBJ_ITEM_START +#define OBJ_ITEM_MAX OBJ_EFFECT_START +#define OBJ_EFFECT_MAX OBJ_ENV_START + #define ACTOR_EVENT_ID 1000 typedef enum ItemDrop { @@ -772,7 +786,7 @@ typedef enum AllRangeAi { /* 200 */ AI360_EVENT_HANDLER = 1000, } AllRangeAi; -Actor* func_game_800A3608(ObjectId); +Actor* Game_SpawnActor(ObjectId); // template enums for boss work buffers @@ -1117,7 +1131,7 @@ typedef Actor Actor185; typedef Actor Actor186; typedef Actor Actor187; typedef Actor Actor188; -typedef Actor Actor189; +typedef Actor ActorDebris; typedef Actor Actor190; typedef Actor Actor191; typedef Actor Actor192; diff --git a/include/sf64player.h b/include/sf64player.h index e0d42f5f..22f78580 100644 --- a/include/sf64player.h +++ b/include/sf64player.h @@ -73,17 +73,23 @@ typedef enum PlayerState1C8 { /* 13 */ PLAYERSTATE_1C8_VS_STANDBY, } PlayerState1C8; -typedef enum { - /* 0 */ PLAYERSHOT_0, // single laser? - /* 1 */ PLAYERSHOT_1, // twin laser? +typedef enum PlayerShotStatus { + /* 0 */ SHOT_FREE, + /* 1 */ SHOT_ACTIVE, + /* 2 */ SHOT_HITMARK, +} PlayerShotStatus; + +typedef enum PlayerShotId { + /* 0 */ PLAYERSHOT_SINGLE_LASER, // single laser? + /* 1 */ PLAYERSHOT_TWIN_LASER, // twin laser? /* 2 */ PLAYERSHOT_2, /* 3 */ PLAYERSHOT_BOMB, // bomb? - /* 4 */ PLAYERSHOT_4, - /* 5 */ PLAYERSHOT_5, // landmaster shot - /* 6 */ PLAYERSHOT_6, // on-foot shot + /* 4 */ PLAYERSHOT_LOCK_SEARCH, + /* 5 */ PLAYERSHOT_TANK, // landmaster shot + /* 6 */ PLAYERSHOT_ON_FOOT, // on-foot shot /* 7 */ PLAYERSHOT_7, // unused? related to on-foot shot somehow - /* 8 */ PLAYERSHOT_8, // charge shot - /* 9 */ PLAYERSHOT_9, + /* 8 */ PLAYERSHOT_LOCK_ON, // charge shot + /* 9 */ PLAYERSHOT_GFOX_LASER, } PlayerShotId; #define NPC_SHOT_ID 100 @@ -91,14 +97,14 @@ typedef enum { #define DMG_SRC_2 2 #define DMG_SRC_100 100 -typedef enum { +typedef enum LaserStrength { /* 0 */ LASERS_SINGLE, /* 1 */ LASERS_TWIN, /* 2 */ LASERS_HYPER, /* 3 */ LASERS_UNK_3, } LaserStrength; -typedef struct { +typedef struct PlayerShot { /* 0x00 */ Object obj; /* 0x1C */ s32 index; /* 0x20 */ Vec3f vel; @@ -112,12 +118,12 @@ typedef struct { /* 0x58 */ s32 unk_58; /* 0x5C */ s32 unk_5C; /* 0x60 */ s32 unk_60; - /* 0x64 */ s32 unk_64; + /* 0x64 */ s32 timer; /* 0x68 */ s32 sourceId; /* 0x6C */ u8 bonus; } PlayerShot; // size = 0x70 -typedef struct { +typedef struct WingInfo { /* 0x00 */ u8 rightState; /* 0x01 */ u8 leftState; /* 0x04 */ f32 unk_04; @@ -136,7 +142,7 @@ typedef struct { /* 0x38 */ f32 unk_38; } WingInfo; // size = 0x3C -typedef struct { +typedef struct PlayerSfx { /* 0x00 */ u8 levelType; /* 0x01 */ u8 form; /* 0x04 */ f32 *srcPos; @@ -167,7 +173,7 @@ typedef struct Player { /* 0x040 */ CameraPoint cam; /* 0x058 */ f32 camYaw; /* 0x05C */ f32 camPitch; - /* 0x05C */ f32 unk_060; + /* 0x05C */ f32 xRock; /* 0x064 */ Vec3f groundPos; // position on ground directly below player /* 0x070 */ f32 groundRotY; // y rotation of actor under player when acting as ground /* 0x074 */ Vec3f pos; // pos.z is position along path. see trueZpos for the actual z position @@ -236,11 +242,11 @@ typedef struct Player { /* 0x1A0 */ s32 unk_1A0; /* 0x1A4 */ s32 unk_1A4; /* 0x1A8 */ char pad1A8[8]; - /* 0x1B0 */ s32 unk_1B0; - /* 0x1B4 */ s32 unk_1B4; + /* 0x1B0 */ s32 turretState; + /* 0x1B4 */ s32 turretActor; /* 0x1B8 */ char pad1B8[4]; - /* 0x1BC */ s32 unk_1BC; - /* 0x1C0 */ s32 unk_1C0; + /* 0x1BC */ s32 turretRecoil; + /* 0x1C0 */ s32 turretLockOnCount; /* 0x1C4 */ s32 num; /* 0x1C8 */ PlayerState1C8 state_1C8; /* 0x1CC */ PlayerForm form; @@ -273,7 +279,7 @@ typedef struct Player { /* 0x238 */ s32 cockpitView; /* 0x23C */ s32 shadowing; /* 0x240 */ s32 unk_240; - /* 0x244 */ s32 timer_244; + /* 0x244 */ s32 shotTimer; /* 0x248 */ f32 unk_248; /* 0x24C */ f32 unk_24C; /* 0x250 */ f32 unk_250; // checked for by event actors, but unused? @@ -290,7 +296,7 @@ typedef struct Player { /* 0x27C */ s32 meteoWarpTimer; /* 0x280 */ s32 barrelRollAlpha; /* 0x284 */ s32 unk_284; - /* 0x288 */ s32 unk_288; + /* 0x288 */ s32 attacker; /* 0x28C */ char pad28C[0x28]; /* 0x2B4 */ bool boostCooldown; /* 0x2B8 */ bool boostActive; diff --git a/include/sfx.h b/include/sfx.h index 537a41e1..5c6f390b 100644 --- a/include/sfx.h +++ b/include/sfx.h @@ -303,8 +303,8 @@ typedef enum SfxBankId { #define NA_SE_EXPLOSION_DEMO5 0x3143402E #define NA_SE_EN_BOSS_BEAM0 0x3143102F #define NA_SE_EN_BOSS_CHARGE 0x39435830 -#define NA_SE_EN_BOSS_ATTACK 0x29003031 -#define NA_SE_EN_SAND_BOUND_M 0x29403031 +#define NA_SE_OB_SAND_BOUND_M 0x29003031 +#define NA_SE_EN_BOSS_ATTACK 0x29403031 #define NA_SE_OB_SPEAR_PILLAR 0x29503032 #define NA_SE_EN_WT_EXPLOSION_S 0x29038033 #define NA_SE_EN_WT_EXPLOSION_M 0x29000034 // Unreferenced. diff --git a/linker_scripts/us/symbol_addrs_engine.txt b/linker_scripts/us/symbol_addrs_engine.txt index 27c43104..8cb30781 100644 --- a/linker_scripts/us/symbol_addrs_engine.txt +++ b/linker_scripts/us/symbol_addrs_engine.txt @@ -186,7 +186,7 @@ func_edisplay_80059FDC = 0x80059FDC; func_edisplay_8005A010 = 0x8005A010; func_edisplay_8005A07C = 0x8005A07C; func_edisplay_8005A088 = 0x8005A088; -Actor189_Draw = 0x8005A094; +ActorDebris_Draw = 0x8005A094; Actor_DrawEngineAndContrails = 0x8005ADAC; Actor_DrawEngineGlow = 0x8005B1E8; func_edisplay_8005B388 = 0x8005B388; @@ -219,9 +219,9 @@ Item_Draw = 0x8005E7B8; ActorAllRange_DrawShadow = 0x8005EA24; Object_DrawShadow = 0x8005ECD8; Object_ClampSfxSource = 0x8005F030; -func_edisplay_8005F0E8 = 0x8005F0E8; -func_edisplay_8005F1EC = 0x8005F1EC; -func_edisplay_8005F290 = 0x8005F290; +Object_SetSfxSourceToPos = 0x8005F0E8; +Object_UpdateSfxSource = 0x8005F1EC; +Object_SetSfxSourceToView = 0x8005F290; Scenery360_Draw = 0x8005F2F4; Display_SetSecondLight = 0x8005F670; func_edisplay_8005F9DC = 0x8005F9DC; @@ -252,7 +252,7 @@ func_effect_80081A8C = 0x80081A8C; func_effect_8008377C = 0x8008377C; // fox_enmy -func_enmy_80060F30 = 0x80060F30; +Object_PlayerSfx = 0x80060F30; Object_Kill = 0x80060FBC; func_enmy_80060FE4 = 0x80060FE4; func_enmy_80061148 = 0x80061148; @@ -313,8 +313,8 @@ func_enmy_80066EA8 = 0x80066EA8; func_enmy_80066EE4 = 0x80066EE4; Item_CheckBounds = 0x80066EF0; Item_SpinPickup = 0x800671D0; -func_enmy_80067348 = 0x80067348; -func_enmy_800674B4 = 0x800674B4; +Actor_SetupDebris70 = 0x80067348; +Actor_SpawnDebris70 = 0x800674B4; ActorSupplies_Update = 0x8006753C; ActorSupplies_Draw = 0x80067874; func_enmy_80067A40 = 0x80067A40; @@ -384,7 +384,7 @@ Game_InitViewport = 0x800A1FB0; Game_Draw = 0x800A24DC; Game_SetScene = 0x800A25DC; Game_Update = 0x800A26C0; -func_game_800A3608 = 0x800A3608; +Game_SpawnActor = 0x800A3608; // sf_hud @@ -568,7 +568,7 @@ gBossActive = 0x80178284; gStarOffsetsX = 0x80178288; D_ctx_8017828C = 0x8017828C; gStarOffsetsY = 0x80178290; -D_ctx_80178294 = 0x80178294; +gUseDynaFloor = 0x80178294; gStarFillColors = 0x80178298; gRadioState = 0x8017829C; gCurrentRadioPortrait = 0x801782A4; @@ -667,104 +667,104 @@ gLight2GTarget = 0x80178574; gLight2BTarget = 0x80178578; Play_GetMaxShields = 0x800A3FC4; -func_play_800A3FB0 = 0x800A3FB0; +Play_dummy_MuteSfx = 0x800A3FB0; Play_CheckMedalStatus = 0x800A3F50; -func_play_800A3FEC = 0x800A3FEC; -func_play_800A4460 = 0x800A4460; -func_play_800A46A0 = 0x800A46A0; -func_play_800A4C40 = 0x800A4C40; +Play_UpdateDynaFloor = 0x800A3FEC; +Player_WingEffects = 0x800A4460; +Player_DamageEffects = 0x800A46A0; +Player_WaterEffects = 0x800A4C40; Scenery360_Initialize = 0x800A4F4C; -func_play_800A4F7C = 0x800A4F7C; -func_play_800A5330 = 0x800A5330; -func_play_800A5338 = 0x800A5338; -func_play_800A55B0 = 0x800A55B0; -func_play_800A57E0 = 0x800A57E0; +Play_InitVsStage = 0x800A4F7C; +Play_dummy_800A5330 = 0x800A5330; +Play_Setup360_CO = 0x800A5338; +Play_Setup360_SY = 0x800A55B0; +Play_Setup360_AND = 0x800A57E0; Play_Setup = 0x800A5844; -func_play_800A594C = 0x800A594C; -Play_SetupStarfield = 0x800A5D6C; -func_play_800A5EBC = 0x800A5EBC; -func_play_800A5FA0 = 0x800A5FA0; -func_play_800A6028 = 0x800A6028; -func_play_800A6070 = 0x800A6070; +Play_InitEnvironment = 0x800A594C; +Play_GenerateStarfield = 0x800A5D6C; +Play_SetupStarfield = 0x800A5EBC; +Player_PlaySfx = 0x800A5FA0; +Play_PlaySfxFirstPlayer = 0x800A6028; +Play_PlaySfxNoPlayer = 0x800A6070; BonusText_Initialize = 0x800A60B8; TexturedLine_Initialize = 0x800A60E8; RadarMark_Initialize = 0x800A6118; Play_ClearObjectData = 0x800A6148; Play_UpdateFillScreen = 0x800A6590; -func_play_800A668C = 0x800A668C; -func_play_800A670C = 0x800A670C; -func_play_800A69F8 = 0x800A69F8; -func_play_800A6A74 = 0x800A6A74; +Play_SpawnHitmark = 0x800A668C; +Play_SetupDebris = 0x800A670C; +Play_SpawnDebris = 0x800A69F8; +Player_CheckAllGoldRings = 0x800A6A74; Player_DamageWings = 0x800A6AC0; Player_ApplyDamage = 0x800A6CD0; -func_play_800A729C = 0x800A729C; -func_play_800A73E4 = 0x800A73E4; -func_play_800A78C4 = 0x800A78C4; -func_play_800A7974 = 0x800A7974; -func_play_800A8054 = 0x800A8054; -func_play_800A8304 = 0x800A8304; -func_play_800A86E4 = 0x800A86E4; -func_play_800A8804 = 0x800A8804; -func_play_800A887C = 0x800A887C; -func_play_800A8BA4 = 0x800A8BA4; -func_play_800AA800 = 0x800AA800; -func_play_800AB2AC = 0x800AB2AC; +Player_GroundedCollision = 0x800A729C; +Play_CheckDynaFloorCollision = 0x800A73E4; +Play_CheckSingleHitbox = 0x800A78C4; +Player_CheckHitboxCollision = 0x800A7974; +Play_CheckPolyCollision = 0x800A8054; +Player_CheckPolyCollision = 0x800A8304; +Player_CheckItemCollect = 0x800A86E4; +Player_Collide = 0x800A8804; +Player_UpdateHitbox = 0x800A887C; +Player_CollisionCheck = 0x800A8BA4; +Player_FloorCheck = 0x800AA800; +Player_InitializeAll = 0x800AB2AC; Player_Initialize = 0x800AB304; -func_play_800AB334 = 0x800AB334; -func_play_800AB964 = 0x800AB964; -func_play_800ABA08 = 0x800ABA08; +Play_InitLevel = 0x800AB334; +Player_ResetVsData = 0x800AB964; +Player_InitVersus = 0x800ABA08; Play_Init = 0x800ABAB4; -func_play_800AC290 = 0x800AC290; -func_play_800AC650 = 0x800AC650; -func_play_800ACA40 = 0x800ACA40; -func_play_800ACABC = 0x800ACABC; -func_play_800ACC7C = 0x800ACC7C; -func_play_800ACDC0 = 0x800ACDC0; -func_play_800AD094 = 0x800AD094; -func_play_800AD118 = 0x800AD118; -func_play_800AD1F4 = 0x800AD1F4; -func_play_800AD7F0 = 0x800AD7F0; -func_play_800ADA28 = 0x800ADA28; -func_play_800ADD98 = 0x800ADD98; -func_play_800ADF58 = 0x800ADF58; -func_play_800AE278 = 0x800AE278; -func_play_800AE4A4 = 0x800AE4A4; -func_play_800AECAC = 0x800AECAC; -func_play_800AF07C = 0x800AF07C; -func_play_800AF928 = 0x800AF928; -func_play_800B00C0 = 0x800B00C0; -func_play_800B0194 = 0x800B0194; -func_play_800B0F50 = 0x800B0F50; -func_play_800B2130 = 0x800B2130; -func_play_800B22C0 = 0x800B22C0; -func_play_800B2574 = 0x800B2574; -func_play_800B2BE0 = 0x800B2BE0; -func_play_800B2C00 = 0x800B2C00; -func_play_800B3010 = 0x800B3010; -func_play_800B3314 = 0x800B3314; -func_play_800B39E0 = 0x800B39E0; +Player_SetupArwingShot = 0x800AC290; +Player_SetupTankShot = 0x800AC650; +Player_TankCannon = 0x800ACA40; +Player_ArwingLaser = 0x800ACABC; +Player_SmartBomb = 0x800ACC7C; +Player_SetupOnFootShot = 0x800ACDC0; +Player_OnFootGun = 0x800AD094; +Player_CanLockOn = 0x800AD118; +Player_UpdateLockOn = 0x800AD1F4; +Player_Shoot = 0x800AD7F0; +Player_ArwingBank = 0x800ADA28; +Player_UseTankJets = 0x800ADD98; +Player_UpdatePath = 0x800ADF58; +Player_CheckBounds360 = 0x800AE278; +Player_ArwingMove360 = 0x800AE4A4; +Player_PerformLoop = 0x800AECAC; +Player_ArwingMoveOnRails = 0x800AF07C; +Player_TankMove360 = 0x800AF928; +Player_OnFootUpdateSpeed = 0x800B00C0; +Player_OnFootMove = 0x800B0194; +Player_Setup = 0x800B0F50; +Player_UpdateArwingRoll = 0x800B2130; +Player_UpdateTankRoll = 0x800B22C0; +Player_ArwingBoost = 0x800B2574; +Player_ArwingBoost2 = 0x800B2BE0; +Player_ArwingBrake = 0x800B2C00; +Player_TankBoostBrake = 0x800B3010; +Player_UpdateTankJets = 0x800B3314; +Player_UpdateEffects = 0x800B39E0; Player_UpdateShields = 0x800B40AC; -func_play_800B415C = 0x800B415C; -func_play_800B41E0 = 0x800B41E0; +Player_LowHealthAlarm = 0x800B415C; +Play_dummy_800B41E0 = 0x800B41E0; Player_Down = 0x800B41EC; -func_play_800B42B0 = 0x800B42B0; -func_play_800B44C4 = 0x800B44C4; -func_play_800B46F8 = 0x800B46F8; +Player_UpdateOnRails = 0x800B42B0; +Player_Update360 = 0x800B44C4; +Player_LowHealthMsg = 0x800B46F8; Player_Update = 0x800B48BC; -func_play_800B56BC = 0x800B56BC; -func_play_800B5D30 = 0x800B5D30; -func_play_800B5FBC = 0x800B5FBC; -func_play_800B63BC = 0x800B63BC; -func_play_800B6848 = 0x800B6848; -func_play_800B6BFC = 0x800B6BFC; -func_play_800B6F50 = 0x800B6F50; -func_play_800B7184 = 0x800B7184; -Player_UpdateCamera = 0x800B71E4; -func_play_800B73E0 = 0x800B73E0; +Camera_UpdateArwingOnRails = 0x800B56BC; +Camera_UpdateCockpitOnRails = 0x800B5D30; +Camera_FollowPlayer = 0x800B5FBC; +Camera_UpdateArwing360 = 0x800B63BC; +Camera_UpdateTank360 = 0x800B6848; +Camera_UpdateOnFoot360 = 0x800B6BFC; +Camera_SetStarfieldPos = 0x800B6F50; +Camera_Update360 = 0x800B7184; +Camera_Update = 0x800B71E4; +Camera_SetupLights = 0x800B73E0; Play_UpdateLevel = 0x800B79B0; Play_Update = 0x800B832C; Play_SpawnVsItem = 0x800B852C; -func_play_800B86A4 = 0x800B86A4; +Play_SetupZPos360 = 0x800B86A4; Play_Main = 0x800B86CC; D_tank_800C9F2C = 0x800C9F2C; diff --git a/linker_scripts/us/symbol_addrs_overlays.txt b/linker_scripts/us/symbol_addrs_overlays.txt index 5e44bc6c..9a1bc028 100644 --- a/linker_scripts/us/symbol_addrs_overlays.txt +++ b/linker_scripts/us/symbol_addrs_overlays.txt @@ -8,7 +8,7 @@ Venom1_80192CB0 = 0x80192CB0;//segment:ovl_i1 Venom1_80192EA4 = 0x80192EA4;//segment:ovl_i1 Venom1_801933B4 = 0x801933B4;//segment:ovl_i1 Venom1_Boss319_Init = 0x801935CC;//segment:ovl_i1 -Venom1_80194398 = 0x80194398;//segment:ovl_i1 +Venom1_Boss_Update = 0x80194398;//segment:ovl_i1 Venom1_801920F0 = 0x801920F0;//segment:ovl_i1 D_i1_8019A04C = 0x8019A04C; // size:0xC type:s16 segment:ovl_i1 D_i1_8019B6C0 = 0x8019B6C0;//segment:ovl_i1 @@ -58,22 +58,22 @@ D_menu_801AF274 = 0x801AF274; // type:f32 size:0x18 force_migration:True segment Area6_801875E4 = 0x801875E4;//segment:ovl_i3 Area6_80187704 = 0x80187704;//segment:ovl_i3 Area6_BossA6_Init = 0x80187754;//segment:ovl_i3 -Area6_80187944 = 0x80187944;//segment:ovl_i3 +Area6_Boss_Update = 0x80187944;//segment:ovl_i3 Area6_8018A1B0 = 0x8018A1B0;//segment:ovl_i3 Area6_8018A2C4 = 0x8018A2C4;//segment:ovl_i3 Area6_8018A464 = 0x8018A464;//segment:ovl_i3 Area6_8018B9BC = 0x8018B9BC;//segment:ovl_i3 Area6_8018BCD4 = 0x8018BCD4;//segment:ovl_i3 Area6_8018C0D0 = 0x8018C0D0;//segment:ovl_i3 -Area6_8018C54C = 0x8018C54C;//segment:ovl_i3 -Zoness_801900FC = 0x801900FC;//segment:ovl_i3 +Area6_Boss_Draw = 0x8018C54C;//segment:ovl_i3 +Zoness_SpawnDebris = 0x801900FC;//segment:ovl_i3 Zoness_801915A4 = 0x801915A4;//segment:ovl_i3 Zoness_80191BB8 = 0x80191BB8;//segment:ovl_i3 Zoness_BossZo_Init = 0x801932AC;//segment:ovl_i3 Zoness_80193908 = 0x80193908;//segment:ovl_i3 Zoness_80193A98 = 0x80193A98;//segment:ovl_i3 Zoness_80193CC8 = 0x80193CC8;//segment:ovl_i3 -Zoness_80194A84 = 0x80194A84;//segment:ovl_i3 +Zoness_Boss_Update = 0x80194A84;//segment:ovl_i3 Zoness_801986FC = 0x801986FC;//segment:ovl_i3 Zoness_801989FC = 0x801989FC;//segment:ovl_i3 Zoness_80198BE8 = 0x80198BE8;//segment:ovl_i3 @@ -90,7 +90,7 @@ Zoness_8019B810 = 0x8019B810;//segment:ovl_i3 Zoness_8019C200 = 0x8019C200;//segment:ovl_i3 Zoness_Actor247_Init = 0x8019D060;//segment:ovl_i3 Solar_LevelComplete = 0x801A7930;//segment:ovl_i3 -Aquas_801A9448 = 0x801A9448;//segment:ovl_i3 +Aquas_SpawnDebris = 0x801A9448;//segment:ovl_i3 Aquas_801A94EC = 0x801A94EC;//segment:ovl_i3 Aquas_801A958C = 0x801A958C;//segment:ovl_i3 Aquas_801AC8A8 = 0x801AC8A8;//segment:ovl_i3 @@ -102,7 +102,7 @@ Aquas_801B0F88 = 0x801B0F88;//segment:ovl_i3 Aquas_801B0FCC = 0x801B0FCC;//segment:ovl_i3 Aquas_801B1008 = 0x801B1008;//segment:ovl_i3 Aquas_BossAq_Init = 0x801B10F8;//segment:ovl_i3 -Aquas_801B134C = 0x801B134C;//segment:ovl_i3 +Aquas_Boss_Update = 0x801B134C;//segment:ovl_i3 Aquas_801B6344 = 0x801B6344;//segment:ovl_i3 Aquas_801B638C = 0x801B638C;//segment:ovl_i3 Aquas_801B6E54 = 0x801B6E54;//segment:ovl_i3 diff --git a/src/audio/audio_general.c b/src/audio/audio_general.c index 5474c4f7..8cb3a405 100644 --- a/src/audio/audio_general.c +++ b/src/audio/audio_general.c @@ -71,7 +71,7 @@ u8 sUsedChannelsPerBank[5][5] = { }; u8 sSfxRequestWriteIndex = 0; u8 sSfxRequestReadIndex = 0; -u8 sSfxChannelLayout = 0; +u8 sSfxChannelLayout = SFXCHAN_0; u16 sChannelMuteFlags = 0; f32 gDefaultSfxSource[3] = { 0.0f, 0.0f, 0.0f }; f32 gDefaultMod = 1.0f; @@ -596,7 +596,7 @@ s8 Audio_GetSfxReverb(u8 bankId, u8 entryIndex, u8 channelId) { } s8 Audio_GetSfxPan(f32 xPos, f32 zPos, u8 mode) { - if (sSfxChannelLayout != 3) { + if (sSfxChannelLayout != SFXCHAN_3) { f32 absx = ABSF(xPos); f32 absz = ABSF(zPos); f32 pan; @@ -638,7 +638,7 @@ f32 Audio_GetSfxFreqMod(u8 bankId, u8 entryIndex) { freqMod += 0.2f * (distance / 33000.0f); } } - if ((sSfxChannelLayout != 0) && (sSfxBanks[bankId][entryIndex].token & 2)) { + if ((sSfxChannelLayout != SFXCHAN_0) && (sSfxBanks[bankId][entryIndex].token & 2)) { freqMod *= 1.1f; } return freqMod; @@ -669,12 +669,12 @@ void Audio_SetSfxProperties(u8 bankId, u8 entryIndex, u8 channelId) { reverb = Audio_GetSfxReverb(bankId, entryIndex, channelId); freqMod = Audio_GetSfxFreqMod(bankId, entryIndex) * *entry->freqMod; if (!((bankId == SFX_BANK_PLAYER) && ((-200.0f < *entry->zPos) && (*entry->zPos < 200.0f)) && - (sSfxChannelLayout != 3))) { + (sSfxChannelLayout != SFXCHAN_3))) { pan = Audio_GetSfxPan(*entry->xPos, *entry->zPos, entry->token); } break; case SFX_BANK_SYSTEM: - if (sSfxChannelLayout == 3) { + if (sSfxChannelLayout == SFXCHAN_3) { if (entry->token != 4) { pan = (entry->token & 1) * 127; } diff --git a/src/engine/fox_360.c b/src/engine/fox_360.c index 46dc224e..5f76df24 100644 --- a/src/engine/fox_360.c +++ b/src/engine/fox_360.c @@ -792,7 +792,7 @@ s32 func_360_8003049C(Actor* this) { } else if (boss->obj.id == OBJ_BOSS_309) { sp44 = 2000.0f; var_ft5 = 750.0f; - } else if (boss->obj.id == OBJ_BOSS_317) { + } else if (boss->obj.id == OBJ_BOSS_KA_BASE) { sp44 = 1500.0f; var_ft5 = 700.0f; } diff --git a/src/engine/fox_beam.c b/src/engine/fox_beam.c index c1a2cca0..a300fa40 100644 --- a/src/engine/fox_beam.c +++ b/src/engine/fox_beam.c @@ -4,9 +4,9 @@ #include "assets/ast_great_fox.h" #include "assets/ast_versus.h" -static Vec3f D_beam_8015F950; +static Vec3f sShotViewPos; -void func_beam_80035D30(Effect* effect, f32 xPos, f32 yPos, f32 zPos) { +void PlayerShot_SetupEffect351(Effect* effect, f32 xPos, f32 yPos, f32 zPos) { Effect_Initialize(effect); effect->obj.status = OBJ_INIT; effect->obj.id = OBJ_EFFECT_351; @@ -24,12 +24,12 @@ void func_beam_80035D30(Effect* effect, f32 xPos, f32 yPos, f32 zPos) { Object_SetInfo(&effect->info, effect->obj.id); } -void func_beam_80035DEC(f32 xPos, f32 yPos, f32 zPos) { +void PlayerShot_SpawnEffect351(f32 xPos, f32 yPos, f32 zPos) { s32 i; for (i = 0; i < ARRAY_COUNT(gEffects); i++) { if (gEffects[i].obj.status == OBJ_FREE) { - func_beam_80035D30(&gEffects[i], xPos, yPos, zPos); + PlayerShot_SetupEffect351(&gEffects[i], xPos, yPos, zPos); break; } } @@ -44,7 +44,7 @@ void PlayerShot_Initialize(PlayerShot* shot) { } } -void func_beam_80035E78(PlayerShot* shot) { +void PlayerShot_ExplodeBomb(PlayerShot* shot) { f32 var_fs0; f32 var_fv0; f32 var_fv1; @@ -54,7 +54,7 @@ void func_beam_80035E78(PlayerShot* shot) { shot->vel.x = shot->vel.y = shot->vel.z = shot->obj.rot.x = shot->obj.rot.y = shot->obj.rot.z = 0.0f; shot->scale = 1.0f; shot->unk_5C = 1; - shot->unk_64 = 30; + shot->timer = 30; shot->unk_58 = 150; Audio_PlayBombExplodeSfx(shot->sourceId, shot->sfxSource); gScreenFlashTimer = 4; @@ -93,7 +93,7 @@ void func_beam_80035E78(PlayerShot* shot) { var_v0 = 0; } func_effect_8007B344(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, shot->unk_48 * 1.5f, var_v0); - if (D_ctx_80178294 != 0) { + if (gUseDynaFloor) { var_fs0 = 5.0f; if (shot->obj.pos.y > 300.0f) { var_fs0 = 1.0f; @@ -118,11 +118,11 @@ void func_beam_80035E78(PlayerShot* shot) { } } -void func_beam_80036318(PlayerShot* shot) { +void PlayerShot_Impact(PlayerShot* shot) { s32 var_v0_2; s32 i; - if (shot->obj.id == PLAYERSHOT_4) { + if (shot->obj.id == PLAYERSHOT_LOCK_SEARCH) { Object_Kill(&shot->obj, shot->sfxSource); return; } @@ -130,13 +130,13 @@ void func_beam_80036318(PlayerShot* shot) { shot->obj.pos.y = D_ctx_801784A0; shot->obj.pos.x = D_ctx_8017849C; if ((shot->obj.id == PLAYERSHOT_BOMB) || - ((gCurrentLevel != LEVEL_AQUAS) && (shot->obj.id == PLAYERSHOT_8) && (shot->unk_5C != 0))) { - if (shot->obj.id == PLAYERSHOT_8) { + ((gCurrentLevel != LEVEL_AQUAS) && (shot->obj.id == PLAYERSHOT_LOCK_ON) && (shot->unk_5C != 0))) { + if (shot->obj.id == PLAYERSHOT_LOCK_ON) { shot->obj.id = PLAYERSHOT_BOMB; shot->unk_5C = 0; } - func_beam_80035E78(shot); - } else if (shot->obj.id == PLAYERSHOT_8) { + PlayerShot_ExplodeBomb(shot); + } else if (shot->obj.id == PLAYERSHOT_LOCK_ON) { shot->scale = 7.5f; for (i = 0; i < ARRAY_COUNT(gActors); i++) { gActors[i].lockOnTimers[shot->sourceId] = 0; @@ -147,7 +147,6 @@ void func_beam_80036318(PlayerShot* shot) { func_effect_8007B344(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 10.0f, 4); func_effect_8007C120(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 0.0f, 0.0f, 0.0f, 0.3f, 30); } else { - if (gVersusMode) { var_v0_2 = shot->sourceId + 10; } else { @@ -157,13 +156,13 @@ void func_beam_80036318(PlayerShot* shot) { func_effect_8007D2C8(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 4.0f); } } else { - shot->obj.status = 2; + shot->obj.status = SHOT_HITMARK; shot->unk_60 = 0; } } -void func_beam_80036528(Effect* effect, f32 xPos, f32 yPos, f32 zPos, f32 yRot, f32 xRot, f32 scale, s32 unk44, - s32 time) { +void PlayerShot_SetupEffect344(Effect* effect, f32 xPos, f32 yPos, f32 zPos, f32 yRot, f32 xRot, f32 scale, s32 unk44, + s32 time) { Effect_Initialize(effect); effect->obj.status = OBJ_INIT; effect->obj.id = OBJ_EFFECT_344; @@ -177,11 +176,11 @@ void func_beam_80036528(Effect* effect, f32 xPos, f32 yPos, f32 zPos, f32 yRot, effect->unk_46 = 80; effect->timer_50 = time; Object_SetInfo(&effect->info, effect->obj.id); - func_play_800A6070(effect->sfxSource, NA_SE_EXPLOSION_S); + Play_PlaySfxNoPlayer(effect->sfxSource, NA_SE_EXPLOSION_S); } -void func_beam_800365E4(f32 xPos, f32 yPos, f32 zPos, f32 arg3, f32 arg4, f32 arg5, f32 yRot, f32 xRot, f32 scale, - s32 unk44, s32 time) { +void PlayerShot_SpawnEffect344(f32 xPos, f32 yPos, f32 zPos, f32 arg3, f32 arg4, f32 arg5, f32 yRot, f32 xRot, + f32 scale, s32 unk44, s32 time) { s32 i; if ((gGroundType != 4) && (gLevelType == LEVELTYPE_PLANET) && (gGroundSurface != SURFACE_WATER) && @@ -189,14 +188,14 @@ void func_beam_800365E4(f32 xPos, f32 yPos, f32 zPos, f32 arg3, f32 arg4, f32 ar (gCurrentLevel != LEVEL_ZONESS)) { for (i = 0; i < 50; i++) { if (gEffects[i].obj.status == OBJ_FREE) { - func_beam_80036528(&gEffects[i], xPos, yPos, zPos, yRot, xRot, scale, unk44, time); + PlayerShot_SetupEffect344(&gEffects[i], xPos, yPos, zPos, yRot, xRot, scale, unk44, time); break; } } } } -void func_beam_800366CC(Effect* effect, f32 xPos, f32 yPos, f32 zPos, f32 yRot, f32 scale) { +void PlayerShot_SetupEffect345(Effect* effect, f32 xPos, f32 yPos, f32 zPos, f32 yRot, f32 scale) { Effect_Initialize(effect); effect->obj.status = OBJ_INIT; effect->obj.id = OBJ_EFFECT_345; @@ -207,17 +206,17 @@ void func_beam_800366CC(Effect* effect, f32 xPos, f32 yPos, f32 zPos, f32 yRot, effect->scale2 = scale * 0.5f; effect->timer_50 = 80; Object_SetInfo(&effect->info, effect->obj.id); - func_play_800A6070(effect->sfxSource, NA_SE_EXPLOSION_S); + Play_PlaySfxNoPlayer(effect->sfxSource, NA_SE_EXPLOSION_S); } -void func_beam_80036770(f32 xPos, f32 yPos, f32 zPos, f32 yRot, f32 scale) { +void PlayerShot_HitGround(f32 xPos, f32 yPos, f32 zPos, f32 yRot, f32 scale) { s32 i; if ((gGroundType != 4) && (gLevelType == LEVELTYPE_PLANET) && (gGroundSurface <= SURFACE_GRASS) && (gCurrentLevel != LEVEL_TRAINING) && (gCurrentLevel != LEVEL_SOLAR) && (gCurrentLevel != LEVEL_ZONESS)) { for (i = 0; i < 50; i++) { if (gEffects[i].obj.status == OBJ_FREE) { - func_beam_800366CC(&gEffects[i], xPos, yPos, zPos, yRot, scale); + PlayerShot_SetupEffect345(&gEffects[i], xPos, yPos, zPos, yRot, scale); func_effect_8007D10C(xPos, yPos, zPos, 2.0f); break; } @@ -228,7 +227,7 @@ void func_beam_80036770(f32 xPos, f32 yPos, f32 zPos, f32 yRot, f32 scale) { } } -s32 func_beam_80036874(PlayerShot* shot, f32* hitboxData, Object* obj) { +s32 PlayerShot_CheckObjectHitbox(PlayerShot* shot, f32* hitboxData, Object* obj) { s32 count; f32 shotPx; f32 shotPy; @@ -257,7 +256,7 @@ s32 func_beam_80036874(PlayerShot* shot, f32* hitboxData, Object* obj) { if (count != 0) { xySizeMod = 10.0f; if ((shot->sourceId < 4) && - ((gLaserStrength[shot->sourceId] != LASERS_SINGLE) || (shot->obj.id == PLAYERSHOT_8))) { + ((gLaserStrength[shot->sourceId] != LASERS_SINGLE) || (shot->obj.id == PLAYERSHOT_LOCK_ON))) { xySizeMod += 30.0f; } hitboxData++; @@ -299,12 +298,12 @@ s32 func_beam_80036874(PlayerShot* shot, f32* hitboxData, Object* obj) { if ((fabsf(hitbox->z.offset + obj->pos.z - shotPz) < (hitbox->z.size + 50.0f)) && (fabsf(hitbox->x.offset + obj->pos.x - shotPx) < (hitbox->x.size + xySizeMod)) && (fabsf(hitbox->y.offset + obj->pos.y - shotPy) < (hitbox->y.size + xySizeMod))) { - if (shot->obj.id == PLAYERSHOT_4) { + if (shot->obj.id == PLAYERSHOT_LOCK_SEARCH) { Object_Kill(&shot->obj, shot->sfxSource); return 0; } - if ((obj->id <= OBJ_SPRITE_GFOX_TARGET) || (obj->id >= OBJ_BOSS_292)) { - func_beam_80036318(shot); + if (!((obj->id >= OBJ_ACTOR_START) && (obj->id < OBJ_ACTOR_MAX))) { + PlayerShot_Impact(shot); } if ((obj->id == OBJ_SCENERY_15) || ((obj->id == OBJ_SCENERY_22) && (i == 0)) || ((obj->id == OBJ_SCENERY_10) && (i == 0)) || ((obj->id == OBJ_SCENERY_13) && (i == 0)) || @@ -314,29 +313,29 @@ s32 func_beam_80036874(PlayerShot* shot, f32* hitboxData, Object* obj) { if (hitbox->z.size + (obj->pos.z + hitbox->z.offset) < shot->obj.pos.z) { shot->obj.pos.z = hitbox->z.size + (obj->pos.z + hitbox->z.offset) - 5.0f; } - func_beam_800365E4((hitbox->x.offset + obj->pos.x) - (hitbox->x.size + 2.0f), - shot->obj.pos.y, shot->obj.pos.z, obj->pos.x, obj->pos.z, obj->rot.y, - obj->rot.y + 90.0f, 0.0f, 2.0f, 1, 20); + PlayerShot_SpawnEffect344((hitbox->x.offset + obj->pos.x) - (hitbox->x.size + 2.0f), + shot->obj.pos.y, shot->obj.pos.z, obj->pos.x, obj->pos.z, + obj->rot.y, obj->rot.y + 90.0f, 0.0f, 2.0f, 1, 20); return i + 1; } if (hitbox->x.size < shot->obj.pos.x - (obj->pos.x + hitbox->x.offset)) { if ((hitbox->z.size + (obj->pos.z + hitbox->z.offset)) < shot->obj.pos.z) { shot->obj.pos.z = hitbox->z.size + (obj->pos.z + hitbox->z.offset) - 5.0f; } - func_beam_800365E4(hitbox->x.size + (hitbox->x.offset + obj->pos.x) + 2.0f, shot->obj.pos.y, - shot->obj.pos.z, obj->pos.x, obj->pos.z, obj->rot.y, obj->rot.y + 90.0f, - 0.0f, 2.0f, 1, 20); + PlayerShot_SpawnEffect344(hitbox->x.size + (hitbox->x.offset + obj->pos.x) + 2.0f, + shot->obj.pos.y, shot->obj.pos.z, obj->pos.x, obj->pos.z, + obj->rot.y, obj->rot.y + 90.0f, 0.0f, 2.0f, 1, 20); return i + 1; } if (((hitbox->y.size + (obj->pos.y + hitbox->y.offset)) - 10.0f) <= shot->obj.pos.y) { shot->obj.pos.y = ((hitbox->y.size + (obj->pos.y + hitbox->y.offset)) - 10.0f); } - func_beam_800365E4(shot->obj.pos.x, shot->obj.pos.y, - hitbox->z.size + (obj->pos.z + hitbox->z.offset) + 20.0f, obj->pos.x, - obj->pos.z, 0.0f, 0.0f, 0.0f, 2.0f, 1, 20); + PlayerShot_SpawnEffect344(shot->obj.pos.x, shot->obj.pos.y, + hitbox->z.size + (obj->pos.z + hitbox->z.offset) + 20.0f, obj->pos.x, + obj->pos.z, 0.0f, 0.0f, 0.0f, 2.0f, 1, 20); return i + 1; } - if (obj->id <= OBJ_SCENERY_160) { + if (obj->id < OBJ_SCENERY_MAX) { func_effect_8007A6F0(&shot->obj.pos, NA_SE_EN_REFLECT); } return i + 1; @@ -347,7 +346,7 @@ s32 func_beam_80036874(PlayerShot* shot, f32* hitboxData, Object* obj) { return 0; } -s32 func_beam_80036F88(PlayerShot* shot, Actor* actor) { +s32 PlayerShot_CheckEventHitbox(PlayerShot* shot, Actor* actor) { s32 i; f32* hitboxData; f32 shotPx; @@ -369,7 +368,7 @@ s32 func_beam_80036F88(PlayerShot* shot, Actor* actor) { if (actor->info.unk_16 == 1) { xySizeMod = fabsf((actor->obj.pos.z + gPathProgress) / 50.0f) + 10.0f; if ((shot->sourceId < 4) && - ((gLaserStrength[shot->sourceId] != LASERS_SINGLE) || (shot->obj.id == PLAYERSHOT_8))) { + ((gLaserStrength[shot->sourceId] != LASERS_SINGLE) || (shot->obj.id == PLAYERSHOT_LOCK_ON))) { xySizeMod += 30.0f; } } @@ -419,7 +418,7 @@ s32 func_beam_80036F88(PlayerShot* shot, Actor* actor) { return 0; } -bool func_beam_80037438(PlayerShot* shot, Actor* actor) { +s32 PlayerShot_CheckActorHitbox(PlayerShot* shot, Actor* actor) { Object* shotx = &shot->obj; f32 temp_fv1 = actor->obj.pos.x - shotx->pos.x; f32 temp_fa0 = actor->obj.pos.z - shotx->pos.z; @@ -434,7 +433,7 @@ bool func_beam_80037438(PlayerShot* shot, Actor* actor) { if (var_fa1 > 200.0f) { var_fa1 = 200.0f; } - if (shotx->id == PLAYERSHOT_8) { + if (shotx->id == PLAYERSHOT_LOCK_ON) { var_fa1 = 30.0f; } else if (gLaserStrength[shot->sourceId] != LASERS_SINGLE) { var_fa1 += 30.0f; @@ -442,7 +441,7 @@ bool func_beam_80037438(PlayerShot* shot, Actor* actor) { 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; + return 1; } } } @@ -450,17 +449,17 @@ bool func_beam_80037438(PlayerShot* shot, Actor* actor) { 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; + return 1; } } } } } - return false; + return 0; } -bool func_beam_80037698(PlayerShot* shot, Sprite* sprite) { +bool PlayerShot_CheckSpriteHitbox(PlayerShot* shot, Sprite* sprite) { f32* temp_v0 = sprite->info.hitbox; if (((s32) temp_v0[0] != 0) && (fabsf(temp_v0[1] + sprite->obj.pos.z - shot->obj.pos.z) < temp_v0[2]) && @@ -471,7 +470,7 @@ bool func_beam_80037698(PlayerShot* shot, Sprite* sprite) { return false; } -bool func_beam_8003774C(PlayerShot* shot, ObjectId objId, Object* obj) { +bool PlayerShot_CheckPolyCollision(PlayerShot* shot, ObjectId objId, Object* obj) { Vec3f sp7C; Vec3f sp70; Vec3f sp64; @@ -486,7 +485,7 @@ bool func_beam_8003774C(PlayerShot* shot, ObjectId objId, Object* obj) { sp7C.z = obj->pos.z - shot->obj.pos.z; // undefined behavior: if this check fails, the function returns no value if (((fabsf(sp7C.x) < 1100.0f) && (fabsf(sp7C.z) < 1100.0f) && (shot->obj.pos.y < 900.0f)) || - (objId == OBJ_BOSS_313) || (objId == ACTOR_EVENT_ID) || (objId == OBJ_SCENERY_ME_TUNNEL)) { + (objId == OBJ_BOSS_SZ) || (objId == ACTOR_EVENT_ID) || (objId == OBJ_SCENERY_ME_TUNNEL)) { Matrix_RotateY(gCalcMatrix, -obj->rot.y * M_DTOR, MTXF_NEW); sp7C.x = shot->obj.pos.x - obj->pos.x; sp7C.y = shot->obj.pos.y - obj->pos.y; @@ -518,10 +517,10 @@ bool func_beam_8003774C(PlayerShot* shot, ObjectId objId, Object* obj) { case OBJ_SCENERY_150: objId = COL1_6; break; - case OBJ_BOSS_308: + case OBJ_BOSS_FO: objId = COL1_4; break; - case OBJ_BOSS_312: + case OBJ_BOSS_VE2: objId = COL1_9; break; case OBJ_BOSS_309: @@ -530,7 +529,7 @@ bool func_beam_8003774C(PlayerShot* shot, ObjectId objId, Object* obj) { case ACTOR_EVENT_ID: objId = COL1_3; break; - case OBJ_BOSS_313: + case OBJ_BOSS_SZ: objId = COL1_8; break; case OBJ_SCENERY_ME_TUNNEL: @@ -608,11 +607,11 @@ bool func_beam_8003774C(PlayerShot* shot, ObjectId objId, Object* obj) { } if (!useCol2) { if (func_col1_800998FC(&sp64, &sp58, &sp38, objId, &sp4C, sp44) > 0) { - if (shot->obj.id == PLAYERSHOT_4) { + if (shot->obj.id == PLAYERSHOT_LOCK_SEARCH) { Object_Kill(&shot->obj, shot->sfxSource); return false; } - func_beam_80036318(shot); + PlayerShot_Impact(shot); func_effect_8007A6F0(&shot->obj.pos, NA_SE_EN_REFLECT); if (gCurrentLevel == LEVEL_METEO) { Matrix_RotateY(gCalcMatrix, obj->rot.y * M_DTOR, MTXF_NEW); @@ -631,11 +630,11 @@ bool func_beam_8003774C(PlayerShot* shot, ObjectId objId, Object* obj) { return true; } } else if (func_col2_800A3690(&sp64, &sp58, objId, &sp4C)) { - if (shot->obj.id == PLAYERSHOT_4) { + if (shot->obj.id == PLAYERSHOT_LOCK_SEARCH) { Object_Kill(&shot->obj, shot->sfxSource); return false; } - func_beam_80036318(shot); + PlayerShot_Impact(shot); func_effect_8007A6F0(&shot->obj.pos, NA_SE_EN_REFLECT); if (gCurrentLevel == LEVEL_FORTUNA) { func_effect_8007BC7C(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 3.0f); @@ -648,7 +647,7 @@ bool func_beam_8003774C(PlayerShot* shot, ObjectId objId, Object* obj) { // return false; } -void func_beam_80037CF4(PlayerShot* shot, Actor* actor, s32 hitIndex) { +void PlayerShot_ApplyDamageToActor(PlayerShot* shot, Actor* actor, s32 hitIndex) { Vec3f sp44 = { 0.0f, 0.0f, -100.0f }; Vec3f sp38; @@ -671,9 +670,9 @@ void func_beam_80037CF4(PlayerShot* shot, Actor* actor, s32 hitIndex) { actor->damage = 30; } } - if (shot->obj.id == PLAYERSHOT_9) { + if (shot->obj.id == PLAYERSHOT_GFOX_LASER) { actor->damage = 100; - } else if (shot->obj.id == PLAYERSHOT_8) { + } else if (shot->obj.id == PLAYERSHOT_LOCK_ON) { if (gCurrentLevel == LEVEL_AQUAS) { actor->damage = 31; } else { @@ -690,16 +689,16 @@ void func_beam_80037CF4(PlayerShot* shot, Actor* actor, s32 hitIndex) { ((actor->unk_0B4 == EVID_48) || (actor->unk_0B4 == EVID_49) || (actor->unk_0B4 == EVID_50))) || ((actor->obj.id == OBJ_ACTOR_ALLRANGE) && (actor->fwork[23] > 1.0f)) || ((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->dmgPart == 0) && (actor->unk_0B4 == EVID_67)) || - ((actor->obj.id == OBJ_ACTOR_261) && (shot->obj.id != PLAYERSHOT_8) && + ((actor->obj.id == OBJ_ACTOR_261) && (shot->obj.id != PLAYERSHOT_LOCK_ON) && ((actor->state < 3) || (actor->state >= 5))) || - ((actor->obj.id == OBJ_ACTOR_260) && (shot->obj.id != PLAYERSHOT_8) && (actor->timer_0BC != 0))) { + ((actor->obj.id == OBJ_ACTOR_260) && (shot->obj.id != PLAYERSHOT_LOCK_ON) && (actor->timer_0BC != 0))) { if ((actor->obj.id == OBJ_ACTOR_261) && (actor->state < 2)) { actor->state = 2; } - if ((shot->obj.id == PLAYERSHOT_8) || (shot->obj.id == PLAYERSHOT_BOMB)) { - func_beam_80036318(shot); + if ((shot->obj.id == PLAYERSHOT_LOCK_ON) || (shot->obj.id == PLAYERSHOT_BOMB)) { + PlayerShot_Impact(shot); } else { - shot->unk_64 = 25; + shot->timer = 25; shot->obj.rot.y += 90.0f; shot->obj.rot.x = RAND_FLOAT(360.0f); Matrix_RotateY(gCalcMatrix, shot->obj.rot.y * M_DTOR, MTXF_NEW); @@ -714,14 +713,14 @@ void func_beam_80037CF4(PlayerShot* shot, Actor* actor, s32 hitIndex) { actor->timer_0C2 = 3; func_effect_80078E50(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 8.0f); AUDIO_PLAY_SFX(NA_SE_EN_REFLECT, actor->sfxSource, 4); - func_play_800A668C(D_ctx_8017849C, D_ctx_801784A0, D_ctx_80178498); + Play_SpawnHitmark(D_ctx_8017849C, D_ctx_801784A0, D_ctx_80178498); } } else { - func_beam_80036318(shot); + PlayerShot_Impact(shot); } } -void func_beam_80038140(PlayerShot* shot) { +void PlayerShot_CollisionCheck(PlayerShot* shot) { s32 i; s32 temp_v0; s32 spA4; @@ -739,7 +738,7 @@ void func_beam_80038140(PlayerShot* shot) { Player* player; sp60 = true; - if (shot->obj.id == PLAYERSHOT_4) { + if (shot->obj.id == PLAYERSHOT_LOCK_SEARCH) { sp60 = false; } if (sp60) { @@ -755,11 +754,11 @@ void func_beam_80038140(PlayerShot* shot) { } } } - for (i = 0, actor = gActors; i < 60; i++, actor++) { + for (i = 0, actor = gActors; i < ARRAY_COUNT(gActors); i++, actor++) { if ((actor->obj.status >= OBJ_ACTIVE) && (actor->timer_0C2 == 0)) { switch (actor->obj.id) { case OBJ_ACTOR_180: - if (func_beam_8003774C(shot, actor->obj.id, &actor->obj)) { + if (PlayerShot_CheckPolyCollision(shot, actor->obj.id, &actor->obj)) { actor->dmgType = DMG_BEAM; actor->dmgPart = shot->sourceId; return; @@ -767,7 +766,7 @@ void func_beam_80038140(PlayerShot* shot) { break; case OBJ_ACTOR_EVENT: if (actor->unk_0B4 == EVID_42) { - if (func_beam_8003774C(shot, ACTOR_EVENT_ID, &actor->obj)) { + if (PlayerShot_CheckPolyCollision(shot, ACTOR_EVENT_ID, &actor->obj)) { actor->dmgType = DMG_BEAM; actor->dmgPart = shot->sourceId; return; @@ -777,12 +776,12 @@ void func_beam_80038140(PlayerShot* shot) { test.y = fabsf(actor->obj.pos.y - shot->obj.pos.y); test.z = fabsf(actor->obj.pos.z - shot->obj.pos.z); if (VEC3F_MAG(&test) < 1000.0f) { - func_beam_80037CF4(shot, actor, 0); + PlayerShot_ApplyDamageToActor(shot, actor, 0); } } else { - temp_v0 = func_beam_80036F88(shot, actor); + temp_v0 = PlayerShot_CheckEventHitbox(shot, actor); if (temp_v0 != 0) { - func_beam_80037CF4(shot, actor, temp_v0); + PlayerShot_ApplyDamageToActor(shot, actor, temp_v0); return; } } @@ -794,7 +793,7 @@ void func_beam_80038140(PlayerShot* shot) { (((gCurrentLevel == LEVEL_VENOM_2) && (shot->sourceId <= NPC_SHOT_ID + AI360_PEPPY)) || ((gCurrentLevel != LEVEL_VENOM_2) && (shot->sourceId == AI360_FOX))) && - (shot->obj.id != PLAYERSHOT_8) && + (shot->obj.id != PLAYERSHOT_LOCK_ON) && (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)) { @@ -805,15 +804,15 @@ void func_beam_80038140(PlayerShot* shot) { } } } - temp_v0 = func_beam_80037438(shot, actor); + temp_v0 = PlayerShot_CheckActorHitbox(shot, actor); if (temp_v0 != 0) { - func_beam_80037CF4(shot, actor, temp_v0); + PlayerShot_ApplyDamageToActor(shot, actor, temp_v0); return; } } else { - temp_v0 = func_beam_80036874(shot, actor->info.hitbox, &actor->obj); + temp_v0 = PlayerShot_CheckObjectHitbox(shot, actor->info.hitbox, &actor->obj); if (temp_v0 != 0) { - func_beam_80037CF4(shot, actor, temp_v0); + PlayerShot_ApplyDamageToActor(shot, actor, temp_v0); return; } } @@ -825,7 +824,7 @@ void func_beam_80038140(PlayerShot* shot) { for (i = 0, player = gPlayer; i < gCamCount; i++, player++) { test.x = 50.0f; if (gVersusMode && (shot->sourceId < 4) && - !((gLaserStrength[shot->sourceId] == LASERS_SINGLE) && (shot->obj.id != PLAYERSHOT_8))) { + ((gLaserStrength[shot->sourceId] != LASERS_SINGLE) || (shot->obj.id == PLAYERSHOT_LOCK_ON))) { test.x = 100.0f; } if (player->barrelRollAlpha >= 100) { @@ -859,20 +858,20 @@ void func_beam_80038140(PlayerShot* shot) { shot->obj.pos.x += 2.0f * shot->vel.x; shot->obj.pos.y += 2.0f * shot->vel.y; shot->obj.pos.z += 2.0f * shot->vel.z; - shot->unk_64 = 5; + shot->timer = 5; AUDIO_PLAY_SFX(NA_SE_ROLLING_REFLECT, player->sfxSource, 0); func_effect_80078E50(player->pos.x, player->pos.y, player->trueZpos, 8.0f); } else { - func_beam_80036318(shot); + PlayerShot_Impact(shot); if (player->hitTimer == 0) { - if (gPlayer[0].form == 3) { + if (gPlayer[0].form == FORM_ON_FOOT) { Player_ApplyDamage(player, 0, 60); } else { Player_ApplyDamage(player, 0, 20); } player->unk_284 = 1; if (gCamCount != 1) { - player->unk_288 = shot->sourceId + 1; + player->attacker = shot->sourceId + 1; } player->knockback.x = shot->vel.x * 0.1f; player->knockback.y = shot->vel.y * 0.1f; @@ -887,14 +886,15 @@ void func_beam_80038140(PlayerShot* shot) { } } if ((gGroundType == 4) && Ground_801B6AEC(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z + gPathProgress)) { - func_beam_80036318(shot); - if (shot->obj.id != PLAYERSHOT_4) { + PlayerShot_Impact(shot); + if (shot->obj.id != PLAYERSHOT_LOCK_SEARCH) { func_effect_8007A900(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 2.0f, 255, 15, 0); } } - if ((D_ctx_80178294 != 0) && func_play_800A73E4(&sp94, &spA4, shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z)) { - func_beam_80036318(shot); - if (shot->obj.id != PLAYERSHOT_4) { + if (gUseDynaFloor && + Play_CheckDynaFloorCollision(&sp94, &spA4, shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z)) { + PlayerShot_Impact(shot); + if (shot->obj.id != PLAYERSHOT_LOCK_SEARCH) { func_effect_8007B228(shot->obj.pos.x, sp94, shot->obj.pos.z, 1.0f); } } @@ -907,9 +907,9 @@ void func_beam_80038140(PlayerShot* shot) { (scenery360->obj.id == OBJ_SCENERY_148) || (scenery360->obj.id == OBJ_SCENERY_143) || (scenery360->obj.id == OBJ_SCENERY_160) || (scenery360->obj.id == OBJ_SCENERY_1) || (scenery360->obj.id == OBJ_SCENERY_3) || (scenery360->obj.id == OBJ_SCENERY_140)) { - func_beam_8003774C(shot, scenery360->obj.id, &scenery360->obj); + PlayerShot_CheckPolyCollision(shot, scenery360->obj.id, &scenery360->obj); } else { - func_beam_80036874(shot, scenery360->info.hitbox, &scenery360->obj); + PlayerShot_CheckObjectHitbox(shot, scenery360->info.hitbox, &scenery360->obj); } } } @@ -923,9 +923,9 @@ void func_beam_80038140(PlayerShot* shot) { (scenery->obj.id == OBJ_SCENERY_2) || (scenery->obj.id == OBJ_SCENERY_3) || (scenery->obj.id == OBJ_SCENERY_67) || (scenery->obj.id == OBJ_SCENERY_74) || (scenery->obj.id == OBJ_SCENERY_3)) { - func_beam_8003774C(shot, scenery->obj.id, &scenery->obj); + PlayerShot_CheckPolyCollision(shot, scenery->obj.id, &scenery->obj); } else { - temp_v0 = func_beam_80036874(shot, scenery->info.hitbox, &scenery->obj); + temp_v0 = PlayerShot_CheckObjectHitbox(shot, scenery->info.hitbox, &scenery->obj); if (temp_v0 != 0) { scenery->dmgType = DMG_BEAM; scenery->dmgPart = temp_v0 - 1; @@ -938,11 +938,11 @@ void func_beam_80038140(PlayerShot* shot) { for (i = 0, sprite = gSprites; i < ARRAY_COUNT(gSprites); i++, sprite++) { if (sprite->obj.status == OBJ_ACTIVE) { if (sprite->obj.id != OBJ_SPRITE_TI_CACTUS) { - if (func_beam_80037698(shot, sprite)) { + if (PlayerShot_CheckSpriteHitbox(shot, sprite)) { sprite->unk_46 = 1; } } else { - if (func_beam_80036874(shot, sprite->info.hitbox, &sprite->obj) != 0) { + if (PlayerShot_CheckObjectHitbox(shot, sprite->info.hitbox, &sprite->obj) != 0) { sprite->unk_46 = 1; } } @@ -951,51 +951,51 @@ void func_beam_80038140(PlayerShot* shot) { } for (i = 0, boss = gBosses; i < ARRAY_COUNT(gBosses); i++, boss++) { if ((boss->obj.status == OBJ_ACTIVE) && (boss->timer_05A == 0)) { - if ((boss->obj.id == OBJ_BOSS_308) || (boss->obj.id == OBJ_BOSS_312) || (boss->obj.id == OBJ_BOSS_309) || - (boss->obj.id == OBJ_BOSS_313)) { - func_beam_8003774C(shot, boss->obj.id, &boss->obj); + if ((boss->obj.id == OBJ_BOSS_FO) || (boss->obj.id == OBJ_BOSS_VE2) || (boss->obj.id == OBJ_BOSS_309) || + (boss->obj.id == OBJ_BOSS_SZ)) { + PlayerShot_CheckPolyCollision(shot, boss->obj.id, &boss->obj); } else if (boss->obj.id == OBJ_BOSS_310) { test.x = fabsf(boss->obj.pos.x - shot->obj.pos.x) * .8333333f; test.y = fabsf(boss->obj.pos.y - shot->obj.pos.y) * 2; test.z = fabsf(boss->obj.pos.z - shot->obj.pos.z) * 0.8333333f; if (VEC3F_MAG(&test) < 1500.0f) { - if (shot->obj.id == PLAYERSHOT_4) { + if (shot->obj.id == PLAYERSHOT_LOCK_SEARCH) { Object_Kill(&shot->obj, shot->sfxSource); } else { boss->dmgType = DMG_BEAM; - func_beam_80036318(shot); + PlayerShot_Impact(shot); AUDIO_PLAY_SFX(NA_SE_EN_BARRIER_REFLECT, shot->sfxSource, 4); } } } else { - if (boss->obj.id == OBJ_BOSS_316) { + if (boss->obj.id == OBJ_BOSS_KA) { test.x = fabsf(boss->obj.pos.x - shot->obj.pos.x); test.y = fabsf(boss->obj.pos.y - 300.0f - shot->obj.pos.y) * 7.42f; test.z = fabsf(boss->obj.pos.z - shot->obj.pos.z); if (VEC3F_MAG(&test) < 2700.0f) { - if (shot->obj.id == PLAYERSHOT_4) { + if (shot->obj.id == PLAYERSHOT_LOCK_SEARCH) { Object_Kill(&shot->obj, shot->sfxSource); } else { boss->dmgType = DMG_BEAM; boss->dmgPart = 100; AUDIO_PLAY_SFX(NA_SE_EN_REFLECT, shot->sfxSource, 4); - func_beam_80036318(shot); + PlayerShot_Impact(shot); } } } - temp_v0 = func_beam_80036874(shot, boss->info.hitbox, &boss->obj); + temp_v0 = PlayerShot_CheckObjectHitbox(shot, boss->info.hitbox, &boss->obj); if (temp_v0 != 0) { - if (shot->obj.id == PLAYERSHOT_4) { + if (shot->obj.id == PLAYERSHOT_LOCK_SEARCH) { Object_Kill(&shot->obj, shot->sfxSource); } else { - if ((boss->obj.id == OBJ_BOSS_316) && (shot->sourceId != TEAM_ID_FOX)) { + if ((boss->obj.id == OBJ_BOSS_KA) && (shot->sourceId != TEAM_ID_FOX)) { break; } boss->dmgType = DMG_BEAM; if (shot->obj.id == PLAYERSHOT_BOMB) { boss->dmgType = DMG_BOMB; boss->damage = 20; - } else if (shot->obj.id == PLAYERSHOT_8) { + } else if (shot->obj.id == PLAYERSHOT_LOCK_ON) { if (gCurrentLevel == LEVEL_AQUAS) { boss->damage = 31; } else { @@ -1014,13 +1014,13 @@ void func_beam_80038140(PlayerShot* shot) { } } } - if (boss->obj.id == OBJ_BOSS_314) { + if (boss->obj.id == OBJ_BOSS_SY) { boss->swork[19] = shot->sourceId; } boss->dmgPart = temp_v0 - 1; if (boss->obj.id == OBJ_BOSS_301) { boss->swork[5] = shot->obj.id; - } else if (boss->obj.id == OBJ_BOSS_319) { + } else if (boss->obj.id == OBJ_BOSS_VE1) { boss->fwork[47] = shot->obj.pos.x; boss->fwork[48] = shot->obj.pos.y; boss->fwork[49] = shot->obj.pos.z; @@ -1032,20 +1032,20 @@ void func_beam_80038140(PlayerShot* shot) { } } -void func_beam_80038F34(PlayerShot* shot) { +void PlayerShot_DrawHitmark(PlayerShot* shot) { Vec3f sp4C = { 0.0f, 0.0f, 0.0f }; - s32 sp48 = 0; + s32 isDrawn = false; Matrix_Translate(gGfxMatrix, shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z + gPathProgress, MTXF_APPLY); - Matrix_MultVec3f(gGfxMatrix, &sp4C, &D_beam_8015F950); - if ((D_beam_8015F950.z < 0.0f) && (D_beam_8015F950.z > -10000.0f)) { - if (fabsf(D_beam_8015F950.x) < (fabsf(D_beam_8015F950.z * 0.5f) + 500.0f)) { - if (fabsf(D_beam_8015F950.y) < (fabsf(D_beam_8015F950.z * 0.5f) + 500.0f)) { - sp48 = 1; + Matrix_MultVec3f(gGfxMatrix, &sp4C, &sShotViewPos); + if ((sShotViewPos.z < 0.0f) && (sShotViewPos.z > -10000.0f)) { + if (fabsf(sShotViewPos.x) < (fabsf(sShotViewPos.z * 0.5f) + 500.0f)) { + if (fabsf(sShotViewPos.y) < (fabsf(sShotViewPos.z * 0.5f) + 500.0f)) { + isDrawn = true; } } } - if (!sp48) { + if (!isDrawn) { if (!gVersusMode) { Object_Kill(&shot->obj, shot->sfxSource); return; @@ -1075,44 +1075,44 @@ void func_beam_80038F34(PlayerShot* shot) { } } -void func_beam_80039210(PlayerShot* shot) { - f32 var_fv0; - f32 var_fv1; +void PlayerShot_DrawLaser(PlayerShot* shot) { + f32 width; + f32 length; u8 var_a1; - f32 sp70; - Gfx* sp6C; + f32 twinLaserSeparation; + Gfx* dList; - sp6C = D_101AED0; + dList = D_101AED0; if (gCamCount < 4) { RCP_SetupDL_21(); - sp70 = 9.0f; + twinLaserSeparation = 9.0f; if ((shot->unk_58 == 0) || ((gCurrentLevel == LEVEL_METEO) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_LEVEL_INTRO))) { - var_fv0 = 4.0f; - var_fv1 = 20.0f; + width = 4.0f; + length = 20.0f; } else { - var_fv0 = 2.0f; - var_fv1 = 10.0f; + width = 2.0f; + length = 10.0f; } if ((gLaserStrength[0] > LASERS_SINGLE) && (shot->unk_58 == 0)) { switch (gLaserStrength[0]) { case LASERS_TWIN: break; case LASERS_HYPER: - sp6C = D_101AD20; + dList = D_101AD20; break; } if (gCurrentLevel == LEVEL_AQUAS) { - sp70 = 4.0f; + twinLaserSeparation = 4.0f; } - Matrix_Scale(gGfxMatrix, var_fv0, var_fv0, var_fv1, MTXF_APPLY); + Matrix_Scale(gGfxMatrix, width, width, length, MTXF_APPLY); Matrix_RotateY(gGfxMatrix, M_PI, MTXF_APPLY); - Matrix_Translate(gGfxMatrix, sp70, 0.f, 0.0f, MTXF_APPLY); + Matrix_Translate(gGfxMatrix, twinLaserSeparation, 0.f, 0.0f, MTXF_APPLY); Matrix_SetGfxMtx(&gMasterDisp); - gSPDisplayList(gMasterDisp++, sp6C); - Matrix_Translate(gGfxMatrix, -(2.0f * sp70), 0.0f, 0.f, MTXF_APPLY); + gSPDisplayList(gMasterDisp++, dList); + Matrix_Translate(gGfxMatrix, -(2.0f * twinLaserSeparation), 0.0f, 0.f, MTXF_APPLY); Matrix_SetGfxMtx(&gMasterDisp); - gSPDisplayList(gMasterDisp++, sp6C); + gSPDisplayList(gMasterDisp++, dList); } else { var_a1 = 0; if ((gCurrentLevel != LEVEL_KATINA) && (shot->sourceId > NPC_SHOT_ID + AI360_PEPPY) && @@ -1138,7 +1138,7 @@ void func_beam_80039210(PlayerShot* shot) { } switch (var_a1) { case 0: - Matrix_Scale(gGfxMatrix, var_fv0, var_fv0, var_fv1, MTXF_APPLY); + Matrix_Scale(gGfxMatrix, width, width, length, MTXF_APPLY); Matrix_RotateY(gGfxMatrix, M_PI, MTXF_APPLY); Matrix_SetGfxMtx(&gMasterDisp); gSPDisplayList(gMasterDisp++, D_101AED0); @@ -1151,15 +1151,15 @@ void func_beam_80039210(PlayerShot* shot) { gSPDisplayList(gMasterDisp++, D_101ABD0); break; case 2: - Matrix_Scale(gGfxMatrix, var_fv0, var_fv0, var_fv1, MTXF_APPLY); + Matrix_Scale(gGfxMatrix, width, width, length, MTXF_APPLY); Matrix_RotateY(gGfxMatrix, M_PI, MTXF_APPLY); Matrix_Translate(gGfxMatrix, 25.0f, 0.0f, 0.f, MTXF_APPLY); Matrix_SetGfxMtx(&gMasterDisp); gSPDisplayList(gMasterDisp++, D_101AED0); - sp6C = D_101AED0; + dList = D_101AED0; Matrix_Translate(gGfxMatrix, -50.0f, 0.0f, 0.f, MTXF_APPLY); Matrix_SetGfxMtx(&gMasterDisp); - gSPDisplayList(gMasterDisp++, sp6C); + gSPDisplayList(gMasterDisp++, dList); break; case 3: Matrix_Push(&gGfxMatrix); @@ -1213,28 +1213,29 @@ static f32 D_800C9BD8[10] = { 100.0f, 100.0f, 0.0f, 0.0f, 0.0f, 50.0f, 0.0f, 40. static u8 D_800C9C00[4] = { 255, 255, 32, 32 }; static u8 D_800C9C04[4] = { 255, 32, 255, 32 }; static u8 D_800C9C08[4] = { 32, 32, 32, 255 }; -void func_beam_80039A50(PlayerShot* shot) { +void PlayerShot_DrawShot(PlayerShot* shot) { Vec3f sp11C = { 0.0f, 0.0f, 0.0f }; s32 pad[4]; f32 var_fv1; - s32 sp104 = 0; + s32 isDrawn = false; Matrix_Translate(gGfxMatrix, shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z + gPathProgress, MTXF_APPLY); - Matrix_MultVec3f(gGfxMatrix, &sp11C, &D_beam_8015F950); - if ((D_beam_8015F950.z < 0.0f) && (D_beam_8015F950.z > -10000.0f)) { - var_fv1 = fabsf(D_beam_8015F950.x); // probably fake. The use of temps was likely different - if (var_fv1 < (fabsf(D_beam_8015F950.z * 0.5f) + 500.0f)) { - if (fabsf(D_beam_8015F950.y) < (fabsf(D_beam_8015F950.z * 0.5f) + 500.0f)) { - sp104 = 1; + Matrix_MultVec3f(gGfxMatrix, &sp11C, &sShotViewPos); + if ((sShotViewPos.z < 0.0f) && (sShotViewPos.z > -10000.0f)) { + var_fv1 = fabsf(sShotViewPos.x); // probably fake. The use of temps was likely different + if (var_fv1 < (fabsf(sShotViewPos.z * 0.5f) + 500.0f)) { + if (fabsf(sShotViewPos.y) < (fabsf(sShotViewPos.z * 0.5f) + 500.0f)) { + isDrawn = true; } } } - if (!sp104) { - if ((shot->obj.id != PLAYERSHOT_BOMB) && (shot->unk_64 < 10) && !gVersusMode) { + if (!isDrawn) { + if ((shot->obj.id != PLAYERSHOT_BOMB) && (shot->timer < 10) && !gVersusMode) { Object_Kill(&shot->obj, shot->sfxSource); } } else { - if ((shot->obj.id == PLAYERSHOT_5) || (shot->obj.id == PLAYERSHOT_6) || (shot->obj.id == PLAYERSHOT_7)) { + if ((shot->obj.id == PLAYERSHOT_TANK) || (shot->obj.id == PLAYERSHOT_ON_FOOT) || + (shot->obj.id == PLAYERSHOT_7)) { shot->obj.rot.y = RAD_TO_DEG(-gPlayer[gPlayerNum].camYaw); shot->obj.rot.x = RAD_TO_DEG(gPlayer[gPlayerNum].camPitch); } @@ -1251,9 +1252,9 @@ void func_beam_80039A50(PlayerShot* shot) { Matrix_Translate(gGfxMatrix, 0.f, 0.f, D_800C9BD8[shot->obj.id], MTXF_APPLY); Matrix_SetGfxMtx(&gMasterDisp); switch (shot->obj.id) { - case PLAYERSHOT_0: - case PLAYERSHOT_1: - func_beam_80039210(shot); + case PLAYERSHOT_SINGLE_LASER: + case PLAYERSHOT_TWIN_LASER: + PlayerShot_DrawLaser(shot); break; case PLAYERSHOT_BOMB: if (shot->unk_5C == 0) { @@ -1320,7 +1321,7 @@ void func_beam_80039A50(PlayerShot* shot) { gSPDisplayList(gMasterDisp++, D_1031EC0); } break; - case PLAYERSHOT_5: + case PLAYERSHOT_TANK: gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK); RCP_SetupDL_40(); if (gVersusMode) { @@ -1371,7 +1372,7 @@ void func_beam_80039A50(PlayerShot* shot) { gSPDisplayList(gMasterDisp++, D_landmaster_3006940); } break; - case PLAYERSHOT_6: + case PLAYERSHOT_ON_FOOT: case PLAYERSHOT_7: Matrix_Scale(gGfxMatrix, shot->scale, shot->scale, shot->scale, MTXF_APPLY); Matrix_SetGfxMtx(&gMasterDisp); @@ -1393,7 +1394,7 @@ void func_beam_80039A50(PlayerShot* shot) { gSPDisplayList(gMasterDisp++, D_versus_301AEF0); } break; - case PLAYERSHOT_8: + case PLAYERSHOT_LOCK_ON: Matrix_RotateY(gGfxMatrix, M_PI, MTXF_APPLY); Matrix_SetGfxMtx(&gMasterDisp); if (gCurrentLevel == LEVEL_AQUAS) { @@ -1410,50 +1411,51 @@ void func_beam_80039A50(PlayerShot* shot) { Matrix_SetGfxMtx(&gMasterDisp); gSPDisplayList(gMasterDisp++, D_1024AC0); } else if (shot->unk_5C == 0) { - if (!(shot->scale > 1.5f)) { - Matrix_Pop(&gGfxMatrix); - Matrix_Push(&gGfxMatrix); - Matrix_Translate(gGfxMatrix, shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z + gPathProgress, - MTXF_APPLY); - Matrix_RotateY(gGfxMatrix, -gPlayer[gPlayerNum].camYaw, MTXF_APPLY); - Matrix_RotateX(gGfxMatrix, gPlayer[gPlayerNum].camPitch, MTXF_APPLY); - Matrix_Push(&gGfxMatrix); - Matrix_Scale(gGfxMatrix, 20.0f, 20.0f, 20.0f, MTXF_APPLY); - RCP_SetupDL(&gMasterDisp, 0x31); - gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 255); - if (gVersusMode) { - switch (shot->sourceId) { - case 0: - gDPSetEnvColor(gMasterDisp++, 255, 255, 32, 255); - break; - case 1: - gDPSetEnvColor(gMasterDisp++, 255, 32, 32, 255); - break; - case 2: - gDPSetEnvColor(gMasterDisp++, 32, 255, 32, 255); - break; - case 3: - gDPSetEnvColor(gMasterDisp++, 32, 32, 255, 255); - break; - } - } else { - gDPSetEnvColor(gMasterDisp++, 0, 255, 0, 255); - } - Matrix_RotateZ(gGfxMatrix, gGameFrameCount * 53.0f * M_DTOR, MTXF_APPLY); - Matrix_SetGfxMtx(&gMasterDisp); - gSPDisplayList(gMasterDisp++, D_101C2E0); - Matrix_RotateZ(gGfxMatrix, gGameFrameCount * -53.0f * 2.0f * M_DTOR, MTXF_APPLY); - Matrix_SetGfxMtx(&gMasterDisp); - gSPDisplayList(gMasterDisp++, D_101C2E0); - Matrix_Pop(&gGfxMatrix); - if (((gGameFrameCount % 2) == 0)) { - Matrix_Scale(gGfxMatrix, 1.7f, 1.7f, 1.7f, MTXF_APPLY); - } else { - Matrix_Scale(gGfxMatrix, 1.3f, 1.3f, 1.3f, MTXF_APPLY); - } - Matrix_SetGfxMtx(&gMasterDisp); - gSPDisplayList(gMasterDisp++, D_1024AC0); + if (shot->scale > 1.5f) { + break; } + Matrix_Pop(&gGfxMatrix); + Matrix_Push(&gGfxMatrix); + Matrix_Translate(gGfxMatrix, shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z + gPathProgress, + MTXF_APPLY); + Matrix_RotateY(gGfxMatrix, -gPlayer[gPlayerNum].camYaw, MTXF_APPLY); + Matrix_RotateX(gGfxMatrix, gPlayer[gPlayerNum].camPitch, MTXF_APPLY); + Matrix_Push(&gGfxMatrix); + Matrix_Scale(gGfxMatrix, 20.0f, 20.0f, 20.0f, MTXF_APPLY); + RCP_SetupDL(&gMasterDisp, 0x31); + gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 255); + if (gVersusMode) { + switch (shot->sourceId) { + case 0: + gDPSetEnvColor(gMasterDisp++, 255, 255, 32, 255); + break; + case 1: + gDPSetEnvColor(gMasterDisp++, 255, 32, 32, 255); + break; + case 2: + gDPSetEnvColor(gMasterDisp++, 32, 255, 32, 255); + break; + case 3: + gDPSetEnvColor(gMasterDisp++, 32, 32, 255, 255); + break; + } + } else { + gDPSetEnvColor(gMasterDisp++, 0, 255, 0, 255); + } + Matrix_RotateZ(gGfxMatrix, gGameFrameCount * 53.0f * M_DTOR, MTXF_APPLY); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_101C2E0); + Matrix_RotateZ(gGfxMatrix, gGameFrameCount * -53.0f * 2.0f * M_DTOR, MTXF_APPLY); + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_101C2E0); + Matrix_Pop(&gGfxMatrix); + if (((gGameFrameCount % 2) == 0)) { + Matrix_Scale(gGfxMatrix, 1.7f, 1.7f, 1.7f, MTXF_APPLY); + } else { + Matrix_Scale(gGfxMatrix, 1.3f, 1.3f, 1.3f, MTXF_APPLY); + } + Matrix_SetGfxMtx(&gMasterDisp); + gSPDisplayList(gMasterDisp++, D_1024AC0); } else { RCP_SetupDL(&gMasterDisp, 0x1D); gSPDisplayList(gMasterDisp++, D_10231A0); @@ -1475,7 +1477,7 @@ void func_beam_80039A50(PlayerShot* shot) { gSPDisplayList(gMasterDisp++, D_1024AC0); } break; - case PLAYERSHOT_9: + case PLAYERSHOT_GFOX_LASER: Matrix_RotateY(gGfxMatrix, M_PI, MTXF_APPLY); Matrix_Scale(gGfxMatrix, 3.0f, 3.0f, 20.0f, MTXF_APPLY); Matrix_SetGfxMtx(&gMasterDisp); @@ -1486,29 +1488,30 @@ void func_beam_80039A50(PlayerShot* shot) { } } -void func_beam_8003AF88(PlayerShot* shot) { +void PlayerShot_Draw(PlayerShot* shot) { switch (shot->obj.status) { - case 1: - func_beam_80039A50(shot); + case SHOT_ACTIVE: + PlayerShot_DrawShot(shot); break; - case 2: - func_beam_80038F34(shot); + case SHOT_HITMARK: + PlayerShot_DrawHitmark(shot); break; } } -void func_beam_8003AFD8(PlayerShot* shot) { +void PlayerShot_UpdateHitmark(PlayerShot* shot) { shot->unk_60++; if (shot->unk_60 > 2) { Object_Kill(&shot->obj, shot->sfxSource); } } -void func_beam_8003B00C(PlayerShot* shot, Player* player) { +void PlayerShot_UpdateShot2(PlayerShot* shot, Player* player) { Vec3f sp5C; Vec3f sp50; Vec3f sp44; Vec3f sp38; + switch (shot->unk_5C) { case 0: Matrix_RotateY(gCalcMatrix, (player->yRot_114 + player->rot.y + 180.0f) * M_DTOR, MTXF_NEW); @@ -1542,18 +1545,18 @@ void func_beam_8003B00C(PlayerShot* shot, Player* player) { shot->obj.pos.y = player->pos.y + sp38.y; shot->obj.pos.z = player->trueZpos + sp38.z; Matrix_Push(&gCalcMatrix); - func_beam_80038140(shot); + PlayerShot_CollisionCheck(shot); Matrix_Pop(&gCalcMatrix); if (shot->obj.pos.y < gGroundHeight) { shot->unk_5C = 0; - func_beam_80036770(shot->obj.pos.x, gGroundHeight + 2.0f, shot->obj.pos.z, shot->obj.rot.y, 2.0f); + PlayerShot_HitGround(shot->obj.pos.x, gGroundHeight + 2.0f, shot->obj.pos.z, shot->obj.rot.y, 2.0f); break; } else if (shot->unk_5C == 2) { shot->unk_5C = 0; break; } } - shot->unk_64 = 30; + shot->timer = 30; shot->obj.rot.y = player->rot.y + player->yRot_114; if (!(gControllerHold->button & U_CBUTTONS) && !(gControllerHold->button & A_BUTTON)) { shot->unk_5C = 1; @@ -1572,7 +1575,7 @@ void func_beam_8003B00C(PlayerShot* shot, Player* player) { shot->unk_4C += shot->vel.y; shot->unk_50 += shot->vel.z; if (((gGameFrameCount % 4) == 0)) { - func_play_800A668C(D_ctx_8017849C, D_ctx_801784A0, D_ctx_80178498); + Play_SpawnHitmark(D_ctx_8017849C, D_ctx_801784A0, D_ctx_80178498); } if ((fabsf(shot->obj.pos.x - shot->unk_48) < 200.0f) && (fabsf(shot->obj.pos.y - shot->unk_4C) < 200.0f) && (fabsf(shot->obj.pos.z - shot->unk_50) < 200.0f)) { @@ -1581,24 +1584,24 @@ void func_beam_8003B00C(PlayerShot* shot, Player* player) { } break; } - if (shot->unk_64 == 0) { + if (shot->timer == 0) { Object_Kill(&shot->obj, shot->sfxSource); } if (shot->unk_5C == 1) { if (shot->obj.pos.y < gGroundHeight) { - func_beam_80036318(shot); - func_beam_80036770(shot->obj.pos.x, gGroundHeight + 2.0f, shot->obj.pos.z, shot->obj.rot.y, 2.0f); + PlayerShot_Impact(shot); + PlayerShot_HitGround(shot->obj.pos.x, gGroundHeight + 2.0f, shot->obj.pos.z, shot->obj.rot.y, 2.0f); if (gCurrentLevel == LEVEL_FORTUNA) { func_effect_8007BC7C(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 3.0f); func_effect_8007BC7C(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 3.0f); func_effect_8007BC7C(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 3.0f); } } - func_beam_80038140(shot); + PlayerShot_CollisionCheck(shot); } } -void func_beam_8003B55C(PlayerShot* shot, s32 index) { +void PlayerShot_UpdateBeam(PlayerShot* shot, s32 index) { Vec3f sp44; Vec3f sp38; @@ -1607,7 +1610,7 @@ void func_beam_8003B55C(PlayerShot* shot, s32 index) { func_effect_8007ACE0(shot->obj.pos.x, gGroundHeight, shot->obj.pos.z, 0.1f, 1.5f, shot->obj.rot.y - 20.0f); } if ((shot->obj.pos.y < gGroundHeight) && (gGroundType != 4)) { - func_beam_80036318(shot); + PlayerShot_Impact(shot); shot->obj.pos.y = gGroundHeight + 2; if (gCurrentLevel == LEVEL_BOLSE) { func_effect_8007A6F0(&shot->obj.pos, NA_SE_EN_REFLECT); @@ -1621,14 +1624,14 @@ void func_beam_8003B55C(PlayerShot* shot, s32 index) { sp44.y = sp44.z = 0.0f; sp44.x = 40.0f; Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp44, &sp38); - func_beam_80036770(shot->obj.pos.x + sp38.x, gGroundHeight + 2.0f, shot->obj.pos.z + sp38.z, - shot->obj.rot.y, 2.0f); + PlayerShot_HitGround(shot->obj.pos.x + sp38.x, gGroundHeight + 2.0f, shot->obj.pos.z + sp38.z, + shot->obj.rot.y, 2.0f); sp44.x = -40.0f; Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp44, &sp38); - func_beam_80036770(shot->obj.pos.x + sp38.x, gGroundHeight + 2.0f, shot->obj.pos.z + sp38.z, - shot->obj.rot.y, 2.0f); + PlayerShot_HitGround(shot->obj.pos.x + sp38.x, gGroundHeight + 2.0f, shot->obj.pos.z + sp38.z, + shot->obj.rot.y, 2.0f); } else { - func_beam_80036770(shot->obj.pos.x, gGroundHeight + 2.0f, shot->obj.pos.z, shot->obj.rot.y, 2.0f); + PlayerShot_HitGround(shot->obj.pos.x, gGroundHeight + 2.0f, shot->obj.pos.z, shot->obj.rot.y, 2.0f); } } if (gGroundSurface == SURFACE_WATER) { @@ -1652,29 +1655,30 @@ void func_beam_8003B55C(PlayerShot* shot, s32 index) { shot->obj.pos.z, 0.8f, 0); } } - if (shot->unk_64 == 0) { + if (shot->timer == 0) { Object_Kill(&shot->obj, shot->sfxSource); return; - } else if ((shot->sourceId < NPC_SHOT_ID + AI360_10) || ((shot->unk_64 % 2) != 0)) { - func_beam_80038140(shot); + } + if ((shot->sourceId < NPC_SHOT_ID + AI360_10) || ((shot->timer % 2) != 0)) { + PlayerShot_CollisionCheck(shot); } } -void func_beam_8003BA80(PlayerShot* shot) { - func_beam_8003B55C(shot, 0); +void PlayerShot_UpdateTank(PlayerShot* shot) { + PlayerShot_UpdateBeam(shot, 0); } -void func_beam_8003BAA0(PlayerShot* shot) { - func_beam_8003B55C(shot, 0); +void PlayerShot_UpdateOnFoot(PlayerShot* shot) { + PlayerShot_UpdateBeam(shot, 0); shot->unk_58 = 0; } -void func_beam_8003BACC(PlayerShot* shot) { +void PlayerShot_UpdateShot7(PlayerShot* shot) { Vec3f sp3C; Vec3f sp30; Vec3f sp24; - func_beam_8003B55C(shot, 0); + PlayerShot_UpdateBeam(shot, 0); sp3C.x = shot->obj.pos.x; sp3C.y = shot->obj.pos.y; sp3C.z = shot->obj.pos.z; @@ -1682,32 +1686,32 @@ void func_beam_8003BACC(PlayerShot* shot) { sp30.y = 0.0f; sp30.z = 0.0f; if (!func_col2_800A3690(&sp3C, &sp30, COL2_5, &sp24)) { - func_beam_80036318(shot); + PlayerShot_Impact(shot); } shot->unk_58 = 0; } -bool func_beam_8003BB4C(PlayerShot* shot) { +bool PlayerShot_FindLockTarget(PlayerShot* shot) { s32 i; s32 j; - f32 var_fa0; + f32 lockRange; Actor* actor; Player* player; if (gLevelMode == LEVELMODE_ON_RAILS) { - var_fa0 = 300.0f; + lockRange = 300.0f; } else { - var_fa0 = 200.0f; + lockRange = 200.0f; } - for (i = 0, actor = gActors; i < 60; i++, actor++) { + for (i = 0, actor = gActors; i < ARRAY_COUNT(gActors); i++, actor++) { if ((actor->obj.status == OBJ_ACTIVE) && (actor->info.targetOffset != 0.0f) && - ((actor->lockOnTimers[shot->sourceId] == 0) && (fabsf(shot->obj.pos.x - actor->obj.pos.x) <= var_fa0) && - (fabsf(shot->obj.pos.y - (actor->obj.pos.y + actor->info.targetOffset)) <= var_fa0) && - (fabsf(shot->obj.pos.z - actor->obj.pos.z) <= var_fa0))) { + ((actor->lockOnTimers[shot->sourceId] == 0) && (fabsf(shot->obj.pos.x - actor->obj.pos.x) <= lockRange) && + (fabsf(shot->obj.pos.y - (actor->obj.pos.y + actor->info.targetOffset)) <= lockRange) && + (fabsf(shot->obj.pos.z - actor->obj.pos.z) <= lockRange))) { actor->lockOnTimers[shot->sourceId] = 20; - func_enmy_80060F30(gPlayer[shot->sourceId].sfxSource, NA_SE_LOCK_ON, shot->sourceId); + Object_PlayerSfx(gPlayer[shot->sourceId].sfxSource, NA_SE_LOCK_ON, shot->sourceId); for (j = 0; j < ARRAY_COUNT(gPlayerShots); j++) { - if (gPlayerShots[j].obj.id == PLAYERSHOT_4) { + if (gPlayerShots[j].obj.id == PLAYERSHOT_LOCK_SEARCH) { Object_Kill(&gPlayerShots[j].obj, gPlayerShots[j].sfxSource); } } @@ -1720,15 +1724,15 @@ bool func_beam_8003BB4C(PlayerShot* shot) { for (i = 0, player = gPlayer; i < gCamCount; i++, player++) { if ((player->state_1C8 == PLAYERSTATE_1C8_ACTIVE) && !player->somersault && (player->form != FORM_ON_FOOT) && (i != shot->sourceId) && (gVsLockOnTimers[i][shot->sourceId] == 0) && - (fabsf(shot->obj.pos.x - player->pos.x) <= var_fa0) && - (fabsf(shot->obj.pos.y - player->pos.y) <= var_fa0) && - (fabsf(shot->obj.pos.z - player->trueZpos) <= var_fa0)) { + (fabsf(shot->obj.pos.x - player->pos.x) <= lockRange) && + (fabsf(shot->obj.pos.y - player->pos.y) <= lockRange) && + (fabsf(shot->obj.pos.z - player->trueZpos) <= lockRange)) { gVsLockOnTimers[0][shot->sourceId] = gVsLockOnTimers[1][shot->sourceId] = gVsLockOnTimers[2][shot->sourceId] = gVsLockOnTimers[3][shot->sourceId] = 0; gVsLockOnTimers[i][shot->sourceId] = 20; - func_enmy_80060F30(gPlayer[shot->sourceId].sfxSource, NA_SE_LOCK_ON, shot->sourceId); + Object_PlayerSfx(gPlayer[shot->sourceId].sfxSource, NA_SE_LOCK_ON, shot->sourceId); for (j = 0; j < ARRAY_COUNT(gPlayerShots); j++) { - if (gPlayerShots[j].obj.id == PLAYERSHOT_4) { + if (gPlayerShots[j].obj.id == PLAYERSHOT_LOCK_SEARCH) { Object_Kill(&gPlayerShots[j].obj, gPlayerShots[j].sfxSource); } } @@ -1741,22 +1745,22 @@ bool func_beam_8003BB4C(PlayerShot* shot) { return false; } -void func_beam_8003BEF4(PlayerShot* shot) { +void PlayerShot_SearchLockOnTarget(PlayerShot* shot) { if (gVersusMode) { - if ((shot->obj.pos.y < gGroundHeight) || func_beam_8003BB4C(shot) || - !(gControllerHold[shot->sourceId].button & A_BUTTON) || (shot->unk_64 == 0)) { + if ((shot->obj.pos.y < gGroundHeight) || PlayerShot_FindLockTarget(shot) || + !(gControllerHold[shot->sourceId].button & A_BUTTON) || (shot->timer == 0)) { Object_Kill(&shot->obj, shot->sfxSource); } } else { - if ((shot->obj.pos.y < gGroundHeight) || func_beam_8003BB4C(shot) || - !(gControllerHold[gMainController].button & A_BUTTON) || (shot->unk_64 == 0)) { + if ((shot->obj.pos.y < gGroundHeight) || PlayerShot_FindLockTarget(shot) || + !(gControllerHold[gMainController].button & A_BUTTON) || (shot->timer == 0)) { Object_Kill(&shot->obj, shot->sfxSource); } } - func_beam_80038140(shot); + PlayerShot_CollisionCheck(shot); } -void func_beam_8003C008(PlayerShot* shot) { +void PlayerShot_CheckBossHitbox(PlayerShot* shot) { s32 i; s32 j; f32* hitboxData; @@ -1771,7 +1775,7 @@ void func_beam_8003C008(PlayerShot* shot) { boss = gBosses; for (i = 0; i < ARRAY_COUNT(gBosses); i++, boss++) { if ((boss->obj.status == OBJ_ACTIVE) && (boss->timer_05A == 0)) { - if (boss->obj.id == OBJ_BOSS_316) { + if (boss->obj.id == OBJ_BOSS_KA) { var_s6 = gGameFrameCount % 8U; var_fs2 = shot->scale * 40.0f; } else { @@ -1818,11 +1822,11 @@ void func_beam_8003C008(PlayerShot* shot) { } } -void func_beam_8003C3D8(PlayerShot* shot) { +void PlayerShot_SetBombLight(PlayerShot* shot) { static u8 D_800C9C18[4] = { 255, 255, 32, 32 }; static u8 D_800C9C1C[4] = { 255, 32, 255, 32 }; static u8 D_800C9C20[4] = { 32, 32, 32, 255 }; - f32 var_fv0; + f32 brightness; gLight3x = shot->obj.pos.x; gLight3y = shot->obj.pos.y; @@ -1836,66 +1840,68 @@ void func_beam_8003C3D8(PlayerShot* shot) { gLight3G = 90; gLight3B = 255; } - var_fv0 = 0.7f; + brightness = 0.7f; if (shot->unk_5C != 0) { - var_fv0 = 1.0f; + brightness = 1.0f; } - Math_SmoothStepToF(&gLight3Brightness, var_fv0, 1.0f, 0.08f, 0.001f); + Math_SmoothStepToF(&gLight3Brightness, brightness, 1.0f, 0.08f, 0.001f); } -void func_beam_8003C4D0(PlayerShot* shot, s32 damage) { +void PlayerShot_ApplyExplosionDamage(PlayerShot* shot, s32 damage) { s32 i; - f32 sp68; - f32 sp64; - f32 sp60; + f32 dx; + f32 dy; + f32 dz; s32 pad[2]; Actor* actor; Sprite* sprite; Scenery* scenery; Effect* effect; Player* player; - f32 temp_fs2 = shot->scale * 60.0f; + f32 radius = shot->scale * 60.0f; - for (i = 0, scenery = gScenery; i < ARRAY_COUNT(gScenery); i++, scenery++) { + scenery = gScenery; + for (i = 0; i < ARRAY_COUNT(gScenery); i++, scenery++) { if ((scenery->obj.status == OBJ_ACTIVE) && (scenery->obj.id == OBJ_SCENERY_56)) { - sp68 = scenery->obj.pos.x - shot->obj.pos.x; - sp64 = scenery->obj.pos.y - shot->obj.pos.y; - sp60 = scenery->obj.pos.z - shot->obj.pos.z; - if (sqrtf(SQ(sp68) + SQ(sp64) + SQ(sp60)) < temp_fs2) { + dx = scenery->obj.pos.x - shot->obj.pos.x; + dy = scenery->obj.pos.y - shot->obj.pos.y; + dz = scenery->obj.pos.z - shot->obj.pos.z; + if (sqrtf(SQ(dx) + SQ(dy) + SQ(dz)) < radius) { scenery->dmgType = DMG_EXPLOSION; } scenery->dmgPart = 0; } } - for (i = 0, sprite = gSprites; i < ARRAY_COUNT(gSprites); i++, sprite++) { + sprite = gSprites; + for (i = 0; i < ARRAY_COUNT(gSprites); i++, sprite++) { if ((sprite->obj.status == OBJ_ACTIVE) && ((sprite->obj.id == OBJ_SPRITE_FO_POLE) || (sprite->obj.id == OBJ_SPRITE_TI_CACTUS) || (sprite->obj.id == OBJ_SPRITE_CO_POLE) || (sprite->obj.id == OBJ_SPRITE_CO_TREE))) { - sp68 = sprite->obj.pos.x - shot->obj.pos.x; - sp64 = sprite->obj.pos.y - shot->obj.pos.y; - sp60 = sprite->obj.pos.z - shot->obj.pos.z; - if (sqrtf(SQ(sp68) + SQ(sp64) + SQ(sp60)) < temp_fs2) { + dx = sprite->obj.pos.x - shot->obj.pos.x; + dy = sprite->obj.pos.y - shot->obj.pos.y; + dz = sprite->obj.pos.z - shot->obj.pos.z; + if (sqrtf(SQ(dx) + SQ(dy) + SQ(dz)) < radius) { sprite->unk_46 = 1; } } } actor = gActors; - for (i = 0; i < 60; i++, actor++) { + for (i = 0; i < ARRAY_COUNT(gActors); i++, actor++) { if ((actor->obj.status == OBJ_ACTIVE) && (actor->timer_0C2 == 0) && !((gCurrentLevel == LEVEL_MACBETH) && (OBJ_ACTOR_205 <= actor->obj.id) && (actor->obj.id < OBJ_ACTOR_214)) && !((actor->obj.id == OBJ_ACTOR_EVENT) && (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; + dx = actor->obj.pos.x - shot->obj.pos.x; + dy = actor->obj.pos.y - shot->obj.pos.y; + dz = actor->obj.pos.z - shot->obj.pos.z; + if ((gLevelMode == LEVELMODE_ON_RAILS) && (dz < 0.0f)) { + dz *= 0.6f; } actor->hitPos.x = shot->obj.pos.x; actor->hitPos.y = shot->obj.pos.y; actor->hitPos.z = shot->obj.pos.z; - if (sqrtf(SQ(sp68) + SQ(sp64) + SQ(sp60)) < temp_fs2) { + if (sqrtf(SQ(dx) + SQ(dy) + SQ(dz)) < radius) { 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) || @@ -1912,9 +1918,9 @@ void func_beam_8003C4D0(PlayerShot* shot, s32 damage) { } } else if ((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->scale >= 0.5f) && (damage > 30)) { actor->dmgSource = shot->sourceId + 1; - actor->vel.x = sp68 * 0.03f; - actor->vel.y = sp64 * 0.03f; - actor->vel.z = sp60 * 0.03f; + actor->vel.x = dx * 0.03f; + actor->vel.y = dy * 0.03f; + actor->vel.z = dz * 0.03f; actor->obj.status = OBJ_DYING; actor->timer_0BC = RAND_INT(15.0f) + 10; actor->timer_0BE = 0; @@ -1940,24 +1946,24 @@ void func_beam_8003C4D0(PlayerShot* shot, s32 damage) { } else if (gCurrentLevel == LEVEL_VENOM_1) { Venom1_8019864C(shot); } else { - func_beam_8003C008(shot); + PlayerShot_CheckBossHitbox(shot); } effect = gEffects; for (i = 0; i < ARRAY_COUNT(gEffects); i++, effect++) { if (effect->obj.status == OBJ_ACTIVE) { - sp68 = effect->obj.pos.x - shot->obj.pos.x; - sp64 = effect->obj.pos.y - shot->obj.pos.y; - sp60 = effect->obj.pos.z - shot->obj.pos.z; - if (sqrtf(SQ(sp68) + SQ(sp64) + SQ(sp60)) < temp_fs2) { + dx = effect->obj.pos.x - shot->obj.pos.x; + dy = effect->obj.pos.y - shot->obj.pos.y; + dz = effect->obj.pos.z - shot->obj.pos.z; + if (sqrtf(SQ(dx) + SQ(dy) + SQ(dz)) < radius) { if (effect->info.unk_16 == 0) { Object_Kill(&effect->obj, effect->sfxSource); } if (effect->info.unk_16 == 2) { - effect->obj.pos.x += sp68 * 0.03f; + effect->obj.pos.x += dx * 0.03f; if (!((gLevelType == LEVELTYPE_PLANET) && (effect->obj.pos.y < 100.0f))) { - effect->obj.pos.y += sp64 * 0.03f; + effect->obj.pos.y += dy * 0.03f; } - effect->obj.pos.z += sp60 * 0.03f; + effect->obj.pos.z += dz * 0.03f; if ((effect->obj.id == OBJ_EFFECT_392) && (effect->state == 0)) { effect->state = 1; effect->unk_44 = 176; @@ -1970,13 +1976,14 @@ void func_beam_8003C4D0(PlayerShot* shot, s32 damage) { } } if (gVersusMode) { - for (i = 0, player = gPlayer; i < gCamCount; i++, player++) { + player = gPlayer; + for (i = 0; i < gCamCount; i++, player++) { if ((i != shot->sourceId) && (player->state_1C8 == PLAYERSTATE_1C8_ACTIVE) && (player->hitTimer == 0)) { - sp68 = player->pos.x - shot->obj.pos.x; - sp64 = player->pos.y - shot->obj.pos.y; - sp60 = player->trueZpos - shot->obj.pos.z; - if (sqrtf(SQ(sp68) + SQ(sp64) + SQ(sp60)) < temp_fs2) { - player->unk_288 = shot->sourceId + 1; + dx = player->pos.x - shot->obj.pos.x; + dy = player->pos.y - shot->obj.pos.y; + dz = player->trueZpos - shot->obj.pos.z; + if (sqrtf(SQ(dx) + SQ(dy) + SQ(dz)) < radius) { + player->attacker = shot->sourceId + 1; switch (player->form) { case FORM_ARWING: Player_ApplyDamage(player, 0, 80); @@ -1994,48 +2001,48 @@ void func_beam_8003C4D0(PlayerShot* shot, s32 damage) { } } -void func_beam_8003CC08(PlayerShot* shot) { +void PlayerShot_UpdateBomb(PlayerShot* shot) { Vec3f test; f32 var_ft5; switch (shot->unk_5C) { case 0: - if (shot->unk_64 == 0) { - func_beam_80035E78(shot); + if (shot->timer == 0) { + PlayerShot_ExplodeBomb(shot); break; } if ((shot->obj.pos.y < gGroundHeight) && (gGroundType != 4)) { - func_beam_80035E78(shot); + PlayerShot_ExplodeBomb(shot); break; } if ((gPlayer[shot->sourceId].form == FORM_LANDMASTER) || (gPlayer[shot->sourceId].form == FORM_ON_FOOT)) { shot->vel.y -= 1.0f; Math_SmoothStepToF(&shot->obj.rot.x, -90.0f, 0.05f, 1.0f, 0.0f); } - if (shot->unk_64 < 25) { + if (shot->timer < 25) { if (gVersusMode) { if (gControllerPress[shot->sourceId].button & gBombButton[shot->sourceId]) { - func_beam_80035E78(shot); + PlayerShot_ExplodeBomb(shot); break; } } else { if (gControllerPress[gMainController].button & gBombButton[shot->sourceId]) { - func_beam_80035E78(shot); + PlayerShot_ExplodeBomb(shot); break; } } } if (!((gCurrentLevel == LEVEL_VENOM_ANDROSS) && (gBosses[0].obj.status == OBJ_ACTIVE) && (gBosses[0].state == 17))) { - func_beam_80038140(shot); + PlayerShot_CollisionCheck(shot); } - func_beam_8003C3D8(shot); + PlayerShot_SetBombLight(shot); break; case 1: D_ctx_8017812C = 2; shot->obj.rot.y += 1.0f; Math_SmoothStepToF(&shot->scale, shot->unk_48, 0.05f, 1.5f, 0.001f); - if ((shot->unk_64 > 0) && (shot->unk_64 < 30)) { + if ((shot->timer > 0) && (shot->timer < 30)) { if (!gVersusMode && ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_ACTIVE) || (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_U_TURN))) { test.x = gPlayer[0].pos.x - shot->obj.pos.x; @@ -2048,9 +2055,9 @@ void func_beam_8003CC08(PlayerShot* shot) { var_ft5 = 60.0f - var_ft5; Math_SmoothStepToF(&D_ctx_801779A8[gMainController], var_ft5 + 5.0f, 1.0f, 3.0f, 0.0f); } - func_beam_8003C3D8(shot); + PlayerShot_SetBombLight(shot); } - if (shot->unk_64 == 0) { + if (shot->timer == 0) { shot->unk_58 -= 8; if (shot->unk_58 < 0) { shot->unk_58 = 0; @@ -2058,13 +2065,13 @@ void func_beam_8003CC08(PlayerShot* shot) { D_ctx_8017812C = 0; } } - func_beam_8003C4D0(shot, 50); + PlayerShot_ApplyExplosionDamage(shot, 50); break; } } -static Vec3f D_800C9C24 = { 0.0f, 0.0f, 0.0f }; -void func_beam_8003CF90(PlayerShot* shot) { +static Vec3f sLockOnPos = { 0.0f, 0.0f, 0.0f }; +void PlayerShot_UpdateLockOnShot(PlayerShot* shot) { s32 i; s32 var_a3; f32 sp6C; @@ -2076,7 +2083,7 @@ void func_beam_8003CF90(PlayerShot* shot) { Actor* actor; Player* player; - if ((shot->obj.pos.y < gGroundHeight) || (shot->unk_64 == 1)) { + if ((shot->obj.pos.y < gGroundHeight) || (shot->timer == 1)) { if ((gGroundSurface == SURFACE_WATER) && (shot->obj.pos.y < gGroundHeight)) { shot->unk_48 = 10.0f; func_effect_8007D9DC(shot->obj.pos.x, gGroundHeight + 2.0f, shot->obj.pos.z, shot->unk_48 * 0.1f, @@ -2087,17 +2094,17 @@ void func_beam_8003CF90(PlayerShot* shot) { shot->unk_48 * 0.5f); func_effect_8007A6F0(&shot->obj.pos, NA_SE_OB_WATER_BOUND_M); } - func_beam_80036318(shot); + PlayerShot_Impact(shot); } else { var_a3 = 0; if (shot->unk_60 == 0) { - for (i = 0, actor = gActors; i < 60; i++, actor++) { + for (i = 0, actor = gActors; i < ARRAY_COUNT(gActors); i++, actor++) { if ((actor->obj.status == OBJ_ACTIVE) && (actor->info.targetOffset != 0.0f) && (actor->lockOnTimers[shot->sourceId] != 0)) { var_a3 = 1; actor->lockOnTimers[shot->sourceId] = 2; - D_800C9C24 = actor->obj.pos; - D_800C9C24.y += actor->info.targetOffset; + sLockOnPos = actor->obj.pos; + sLockOnPos.y += actor->info.targetOffset; } } for (i = 0, player = gPlayer; i < gCamCount; i++, player++) { @@ -2105,19 +2112,19 @@ void func_beam_8003CF90(PlayerShot* shot) { (gVsLockOnTimers[i][shot->sourceId] != 0)) { var_a3 = 1; gVsLockOnTimers[i][shot->sourceId] = 2; - D_800C9C24.x = player->pos.x; + sLockOnPos.x = player->pos.x; if (player->form == FORM_ARWING) { - D_800C9C24.y = player->pos.y; + sLockOnPos.y = player->pos.y; } else { - D_800C9C24.y = player->pos.y + 30.0f; + sLockOnPos.y = player->pos.y + 30.0f; } - D_800C9C24.z = player->trueZpos; + sLockOnPos.z = player->trueZpos; } } if (var_a3 != 0) { - sp6C = shot->obj.pos.x - D_800C9C24.x; - sp68 = shot->obj.pos.y - D_800C9C24.y; - sp64 = shot->obj.pos.z - D_800C9C24.z; + sp6C = shot->obj.pos.x - sLockOnPos.x; + sp68 = shot->obj.pos.y - sLockOnPos.y; + sp64 = shot->obj.pos.z - sLockOnPos.z; sp58 = Math_RadToDeg(Math_Atan2F(sp6C, sp64)); sp5C = Math_RadToDeg(-Math_Atan2F(sp68, sqrtf(SQ(sp6C) + SQ(sp64)))); if (shot->vec_2C.y >= 360.0f) { @@ -2134,7 +2141,7 @@ void func_beam_8003CF90(PlayerShot* shot) { } Math_SmoothStepToAngle(&shot->vec_2C.y, sp58, 1.0f, shot->unk_50, 0.0f); Math_SmoothStepToAngle(&shot->vec_2C.x, sp5C, 1.0f, shot->unk_50, 0.0f); - shot->unk_64 = 30; + shot->timer = 30; } else { shot->unk_60 = 1; } @@ -2160,7 +2167,7 @@ void func_beam_8003CF90(PlayerShot* shot) { shot->vel.y = sp38.y; shot->vel.z = sp38.z; } - func_beam_80038140(shot); + PlayerShot_CollisionCheck(shot); gLight3x = shot->obj.pos.x; gLight3y = shot->obj.pos.y; gLight3z = shot->obj.pos.z; @@ -2171,7 +2178,7 @@ void func_beam_8003CF90(PlayerShot* shot) { } } -void func_beam_8003D54C(PlayerShot* shot, s32 index) { +void PlayerShot_UpdateShot(PlayerShot* shot, s32 index) { s32 teamId; s32 bonus; @@ -2179,34 +2186,34 @@ void func_beam_8003D54C(PlayerShot* shot, s32 index) { shot->obj.pos.y += shot->vel.y; shot->obj.pos.z += shot->vel.z; switch (shot->obj.id) { - case PLAYERSHOT_0: - func_beam_8003B55C(shot, index); + case PLAYERSHOT_SINGLE_LASER: + PlayerShot_UpdateBeam(shot, index); break; - case PLAYERSHOT_1: - case PLAYERSHOT_9: - func_beam_8003B55C(shot, index); + case PLAYERSHOT_TWIN_LASER: + case PLAYERSHOT_GFOX_LASER: + PlayerShot_UpdateBeam(shot, index); break; case PLAYERSHOT_2: - func_beam_8003B00C(shot, &gPlayer[shot->sourceId]); + PlayerShot_UpdateShot2(shot, &gPlayer[shot->sourceId]); break; case PLAYERSHOT_BOMB: - func_beam_8003CC08(shot); + PlayerShot_UpdateBomb(shot); break; - case PLAYERSHOT_4: - func_beam_8003BEF4(shot); + case PLAYERSHOT_LOCK_SEARCH: + PlayerShot_SearchLockOnTarget(shot); break; - case PLAYERSHOT_5: - func_beam_8003BA80(shot); + case PLAYERSHOT_TANK: + PlayerShot_UpdateTank(shot); break; - case PLAYERSHOT_6: - func_beam_8003BAA0(shot); + case PLAYERSHOT_ON_FOOT: + PlayerShot_UpdateOnFoot(shot); break; case PLAYERSHOT_7: - func_beam_8003BACC(shot); + PlayerShot_UpdateShot7(shot); break; - case PLAYERSHOT_8: + case PLAYERSHOT_LOCK_ON: if (shot->scale > 1.5f) { - func_beam_8003C4D0(shot, 30); + PlayerShot_ApplyExplosionDamage(shot, 30); if (shot->bonus != 0) { if (gVersusMode) { gPlayerScores[shot->sourceId] += shot->bonus; @@ -2242,75 +2249,75 @@ void func_beam_8003D54C(PlayerShot* shot, s32 index) { } else if (gCurrentLevel == LEVEL_AQUAS) { Aquas_801ABA40(shot); } else { - func_beam_8003CF90(shot); + PlayerShot_UpdateLockOnShot(shot); } break; } } -void func_beam_8003D854(PlayerShot* shot) { +void PlayerShot_Update(PlayerShot* shot) { s32 i; - s32 var_s5; + s32 ticks; switch (shot->obj.status) { - case 0: + case SHOT_FREE: break; - case 1: - var_s5 = 1; + case SHOT_ACTIVE: + ticks = 1; switch (shot->obj.id) { - case PLAYERSHOT_9: - var_s5 = 4; + case PLAYERSHOT_GFOX_LASER: + ticks = 4; break; - case PLAYERSHOT_0: - case PLAYERSHOT_1: + case PLAYERSHOT_SINGLE_LASER: + case PLAYERSHOT_TWIN_LASER: if ((shot->unk_58 == 0) || (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_LEVEL_INTRO)) { - var_s5 = 4; + ticks = 4; } else { - var_s5 = 3; + ticks = 3; } break; - case PLAYERSHOT_5: - var_s5 = 2; + case PLAYERSHOT_TANK: + ticks = 2; break; } - for (i = 0; i < var_s5 && (shot->obj.status == 1); i++) { - if (shot->unk_64 > 0) { - shot->unk_64--; + for (i = 0; i < ticks && (shot->obj.status == SHOT_ACTIVE); i++) { + if (shot->timer > 0) { + shot->timer--; } D_ctx_80178498 = shot->obj.pos.z; D_ctx_801784A0 = shot->obj.pos.y; D_ctx_8017849C = shot->obj.pos.x; - func_beam_8003D54C(shot, i); + PlayerShot_UpdateShot(shot, i); } break; - case 2: - func_beam_8003AFD8(shot); + case SHOT_HITMARK: + PlayerShot_UpdateHitmark(shot); break; } } -void PlayerShot_Update(void) { +void PlayerShot_UpdateAll(void) { s32 i; for (i = 0; i < ARRAY_COUNT(gPlayerShots); i++) { gPlayerShots[i].index = i; - func_beam_8003D854(&gPlayerShots[i]); + PlayerShot_Update(&gPlayerShots[i]); } } -void PlayerShot_Draw(void) { +void PlayerShot_DrawAll(void) { s32 i; for (i = 0; i < ARRAY_COUNT(gPlayerShots); i++) { gPlayerShots[i].index = i; - if (gPlayerShots[i].obj.status != 0) { + if (gPlayerShots[i].obj.status != SHOT_FREE) { if (!((gReflectY < 0) && (gPlayerShots[i].obj.rot.x < -10.0f))) { Matrix_Push(&gGfxMatrix); - func_beam_8003AF88(&gPlayerShots[i]); + PlayerShot_Draw(&gPlayerShots[i]); Matrix_Pop(&gGfxMatrix); } if (gReflectY > 0) { - func_edisplay_8005F290(gPlayerShots[i].sfxSource, &D_beam_8015F950); + Object_SetSfxSourceToView(gPlayerShots[i].sfxSource, &sShotViewPos); } } } diff --git a/src/engine/fox_boss.c b/src/engine/fox_boss.c index 476ff09b..6fd971af 100644 --- a/src/engine/fox_boss.c +++ b/src/engine/fox_boss.c @@ -32,7 +32,7 @@ void Boss_AwardBonus(Boss* boss) { yOffset = 0.0f; if (boss->obj.id == OBJ_BOSS_292) { yOffset = 300.0f; - } else if (boss->obj.id == OBJ_BOSS_306) { + } else if (boss->obj.id == OBJ_BOSS_TI) { yOffset = 200.0f; } BonusText_Display(boss->obj.pos.x, boss->obj.pos.y + yOffset, boss->obj.pos.z, bonus); @@ -59,11 +59,11 @@ void Boss300_Update(Boss300* this) { void Boss300_Draw(Boss300* this) { } -void Boss_SetupActor189(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) { +void Boss_SetupDebris(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) { Actor_Initialize(actor); actor->obj.status = OBJ_INIT; - actor->obj.id = OBJ_ACTOR_189; + actor->obj.id = OBJ_ACTOR_DEBRIS; actor->state = argB; actor->obj.pos.x = arg1; actor->obj.pos.y = arg2; @@ -83,13 +83,13 @@ void Boss_SetupActor189(Actor* actor, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f3 } } -void Boss_SpawnActor189(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7, f32 arg8, - f32 arg9, s32 argA, s32 argB) { +void Boss_SpawnDebris(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7, f32 arg8, + f32 arg9, s32 argA, s32 argB) { s32 i; for (i = (ARRAY_COUNT(gActors)) - 1; i >= 0; i--) { if (gActors[i].obj.status == OBJ_FREE) { - Boss_SetupActor189(&gActors[i], arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, argA, argB); + Boss_SetupDebris(&gActors[i], arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, argA, argB); return; } } diff --git a/src/engine/fox_context.c b/src/engine/fox_context.c index 2b52d35d..dc11cf2e 100644 --- a/src/engine/fox_context.c +++ b/src/engine/fox_context.c @@ -88,7 +88,7 @@ LevelId gCurrentLevel; s32 gLevelPhase; s32 gBossActive; s32 D_ctx_8017828C; -s32 D_ctx_80178294; +s32 gUseDynaFloor; s32 gRadioState; s32 gCurrentRadioPortrait; s32 gRadioStateTimer; diff --git a/src/engine/fox_demo.c b/src/engine/fox_demo.c index ee4aed90..a6165cf5 100644 --- a/src/engine/fox_demo.c +++ b/src/engine/fox_demo.c @@ -521,7 +521,7 @@ void Cutscene_EnterWarpZone(Player* player) { if (player->csTimer <= 100) { if (player->csTimer == 100) { - func_play_800A6028(player->sfxSource, NA_SE_ARWING_WARP_DASH); + Play_PlaySfxFirstPlayer(player->sfxSource, NA_SE_ARWING_WARP_DASH); player->unk_194 = 5.0f; player->unk_190 = 5.0f; } @@ -589,7 +589,7 @@ void Cutscene_EnterWarpZone(Player* player) { gLevelPhase = 1; D_display_800CA230 = 0.15f; AUDIO_PLAY_SFX(NA_SE_WARP_OUT, gDefaultSfxSource, 0); - func_play_800AB334(); + Play_InitLevel(); } } break; @@ -644,7 +644,7 @@ void Cutscene_LevelStart(Player* player) { switch (gCurrentLevel) { case LEVEL_CORNERIA: Corneria_LevelStart(player); - func_play_800AA800(player); + Player_FloorCheck(player); break; case LEVEL_METEO: @@ -657,7 +657,7 @@ void Cutscene_LevelStart(Player* player) { case LEVEL_TITANIA: Titania_LevelStart(player); - func_play_800AA800(player); + Player_FloorCheck(player); break; case LEVEL_ZONESS: @@ -678,7 +678,7 @@ void Cutscene_LevelStart(Player* player) { case LEVEL_VENOM_1: Venom1_LevelStart(player); - func_play_800AA800(player); + Player_FloorCheck(player); break; case LEVEL_AQUAS: @@ -694,22 +694,22 @@ void Cutscene_LevelStart(Player* player) { switch (gCurrentLevel) { case LEVEL_FORTUNA: AllRange_FortunaIntro(player); - func_play_800AA800(player); + Player_FloorCheck(player); break; case LEVEL_VENOM_2: Venom2_LevelStart(player); - func_play_800AA800(player); + Player_FloorCheck(player); break; case LEVEL_BOLSE: Bolse_LevelStart(player); - func_play_800AA800(player); + Player_FloorCheck(player); break; case LEVEL_KATINA: Katina_LevelStart(player); - func_play_800AA800(player); + Player_FloorCheck(player); break; case LEVEL_SECTOR_Z: @@ -945,7 +945,7 @@ void Cutscene_AllRangeMode(Player* player) { player->rockPhase += 8.0f; player->rockAngle = SIN_DEG(player->rockPhase); - func_play_800AA800(player); + Player_FloorCheck(player); } void Cutscene_CoComplete2(Player* player) { @@ -1307,7 +1307,7 @@ void Cutscene_CoComplete2(Player* player) { case 1255: player->csState = 3; player->csTimer = 10; - func_play_800A6028(player->sfxSource, NA_SE_ARWING_BOOST); + Play_PlaySfxFirstPlayer(player->sfxSource, NA_SE_ARWING_BOOST); SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_BGM, 50); SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_FANFARE, 50); break; @@ -1371,27 +1371,27 @@ void Cutscene_LevelComplete(Player* player) { Area6_LevelComplete(player); } else if (gCurrentLevel == LEVEL_FORTUNA) { Cutscene_FortunaComplete(player); - func_play_800AA800(player); + Player_FloorCheck(player); } else if (gCurrentLevel == LEVEL_BOLSE) { Bolse_LevelComplete(player); - func_play_800AA800(player); + Player_FloorCheck(player); } else if (gCurrentLevel == LEVEL_SECTOR_Z) { SectorZ_LevelComplete(player); } else if (gCurrentLevel == LEVEL_KATINA) { Katina_LevelComplete(player); - func_play_800AA800(player); + Player_FloorCheck(player); } else if (gCurrentLevel == LEVEL_SECTOR_Y) { SectorY_LevelComplete(player); - func_play_800AA800(player); + Player_FloorCheck(player); } else if (gCurrentLevel == LEVEL_SOLAR) { Solar_LevelComplete(player); - func_play_800AA800(player); + Player_FloorCheck(player); } else if (gCurrentLevel == LEVEL_ZONESS) { Zoness_LevelComplete(player); - func_play_800AA800(player); + Player_FloorCheck(player); } else if (gCurrentLevel == LEVEL_VENOM_2) { Venom2_LevelComplete(player); - func_play_800AA800(player); + Player_FloorCheck(player); } else if (gCurrentLevel == LEVEL_METEO) { if (gLevelPhase == 0) { Meteo_LevelComplete(player); @@ -1400,15 +1400,15 @@ void Cutscene_LevelComplete(Player* player) { } } else if ((gCurrentLevel == LEVEL_CORNERIA) && (gLevelMode == LEVELMODE_ALL_RANGE)) { Corneria_LevelComplete1(player); - func_play_800AA800(player); + Player_FloorCheck(player); } else { if (gCsFrameCount == 170) { AUDIO_PLAY_BGM(SEQ_ID_GOOD_END); } Cutscene_CoComplete2(player); - func_play_800AA800(player); + Player_FloorCheck(player); } - func_play_800B2130(player); + Player_UpdateArwingRoll(player); break; case FORM_LANDMASTER: @@ -1514,7 +1514,7 @@ void Cutscene_UTurn(Player* player) { player->zRotBank = -180.0f; } player->csState = 3; - func_play_800A5FA0(player->sfxSource, NA_SE_ARWING_BOOST, player->num); + Player_PlaySfx(player->sfxSource, NA_SE_ARWING_BOOST, player->num); player->unk_194 = 7.0f; player->unk_190 = 7.0f; } @@ -1587,11 +1587,11 @@ void Cutscene_UTurn(Player* player) { player->pos.z += player->vel.z; player->trueZpos = player->pos.z; - func_play_800B2574(player); - func_play_800B2130(player); - func_play_800AD7F0(player); - func_play_800AA800(player); - func_play_800A46A0(player); + Player_ArwingBoost(player); + Player_UpdateArwingRoll(player); + Player_Shoot(player); + Player_FloorCheck(player); + Player_DamageEffects(player); } void func_demo_8004D3C8(s32 arg0) { @@ -1612,7 +1612,7 @@ void Cutscene_KillPlayer(Player* player) { Audio_StopPlayerNoise(player->num); Audio_KillSfxBySourceAndId(player->sfxSource, NA_SE_ARWING_DOWN); - func_play_800A5FA0(player->sfxSource, NA_SE_ARWING_EXPLOSION, player->num); + Player_PlaySfx(player->sfxSource, NA_SE_ARWING_EXPLOSION, player->num); player->state_1C8 = PLAYERSTATE_1C8_NEXT; player->csTimer = 70; player->timer_224 = 20; @@ -1653,11 +1653,11 @@ void Cutscene_KillPlayer(Player* player) { gLifeCount[gPlayerNum] -= 1; } } else { - if (player->unk_288 > 0) { - D_ctx_80177DD0[player->unk_288 - 1][D_ctx_80177DB8[player->unk_288 - 1]] = player->num; - D_ctx_80177DB8[player->unk_288 - 1] += 1; - if (gVsPointsToWin == D_ctx_80177DB8[player->unk_288 - 1]) { - player->unk_288 = -1; + if (player->attacker > 0) { + D_ctx_80177DD0[player->attacker - 1][D_ctx_80177DB8[player->attacker - 1]] = player->num; + D_ctx_80177DB8[player->attacker - 1] += 1; + if (gVsPointsToWin == D_ctx_80177DB8[player->attacker - 1]) { + player->attacker = -1; if (player->unk_284 == 0) { func_effect_8007C688(player->pos.x, player->pos.y, player->trueZpos, 3.0f, 1000); } @@ -1728,7 +1728,7 @@ void func_demo_8004D828(Player* player) { player->vel.y = 10.0f; player->csState = 1; - func_play_800A6070(player->sfxSource, NA_SE_EXPLOSION_S); + Play_PlaySfxNoPlayer(player->sfxSource, NA_SE_EXPLOSION_S); if ((gCurrentLevel == LEVEL_CORNERIA) || (gCurrentLevel == LEVEL_FORTUNA)) { func_enmy_80062C38(player->pos.x, player->pos.z); @@ -1737,12 +1737,12 @@ void func_demo_8004D828(Player* player) { } if (player->wings.rightState == WINGSTATE_INTACT) { - func_play_800A69F8(1, player->hit1.x, player->hit1.y, player->hit1.z); + Play_SpawnDebris(1, player->hit1.x, player->hit1.y, player->hit1.z); player->wings.rightState = WINGSTATE_BROKEN; func_effect_8007D0E0(player->hit1.x, player->hit1.y, player->hit1.z, 2.0f); } if (player->wings.leftState == WINGSTATE_INTACT) { - func_play_800A69F8(0, player->hit2.x, player->hit2.y, player->hit2.z); + Play_SpawnDebris(0, player->hit2.x, player->hit2.y, player->hit2.z); player->wings.leftState = WINGSTATE_BROKEN; func_effect_8007D0E0(player->hit2.x, player->hit2.y, player->hit2.z, 2.0f); } @@ -1759,11 +1759,11 @@ void func_demo_8004D828(Player* player) { } if (gLevelType == LEVELTYPE_PLANET) { for (i = 0; i < 4; i++) { - func_play_800A69F8(2, player->pos.x, player->pos.y, player->trueZpos); + Play_SpawnDebris(2, player->pos.x, player->pos.y, player->trueZpos); } for (i = 0; i < 2; i++) { - func_play_800A69F8(3, player->pos.x, player->pos.y, player->trueZpos); + Play_SpawnDebris(3, player->pos.x, player->pos.y, player->trueZpos); } } func_effect_8007D0E0(player->pos.x, player->pos.y, player->trueZpos, 5.0f); @@ -1790,14 +1790,14 @@ void func_demo_8004D828(Player* player) { if ((gLevelType == LEVELTYPE_PLANET) || (gCurrentLevel == LEVEL_BOLSE)) { player->cam.eye.y = (player->pos.y * player->unk_148) + dest.y; player->cam.eye.y -= player->unk_02C - 50.0f; - player->cam.at.y = (player->pos.y * player->unk_14C) + 20.0f + (player->unk_060 * 5.0f); + player->cam.at.y = (player->pos.y * player->unk_14C) + 20.0f + (player->xRock * 5.0f); } else { player->cam.eye.y = player->pos.y + dest.y; player->cam.at.y = player->pos.y; } if (gVersusMode != 0) { - func_play_800AE278(player); + Player_CheckBounds360(player); } } @@ -1838,19 +1838,19 @@ void func_demo_8004DEF8(Player* player) { player->radioDamageTimer = 0; player->vel.y = 10.0f; player->csState = 1; - func_play_800A6070(player->sfxSource, NA_SE_EXPLOSION_S); + Play_PlaySfxNoPlayer(player->sfxSource, NA_SE_EXPLOSION_S); if (gCurrentLevel == LEVEL_CORNERIA) { func_enmy_80062C38(player->pos.x, player->pos.z); } if (player->wings.rightState == WINGSTATE_INTACT) { - func_play_800A69F8(1, player->hit1.x, player->hit1.y, player->hit1.z); + Play_SpawnDebris(1, player->hit1.x, player->hit1.y, player->hit1.z); player->wings.rightState = WINGSTATE_NONE; func_effect_8007D0E0(player->hit1.x, player->hit1.y, player->hit1.z, 2.0f); } if (player->wings.leftState == WINGSTATE_INTACT) { - func_play_800A69F8(0, player->hit2.x, player->hit2.y, player->hit2.z); + Play_SpawnDebris(0, player->hit2.x, player->hit2.y, player->hit2.z); player->wings.leftState = WINGSTATE_NONE; func_effect_8007D0E0(player->hit2.x, player->hit2.y, player->hit2.z, 2.0f); } @@ -1867,11 +1867,11 @@ void func_demo_8004DEF8(Player* player) { 0.0f, 0.0f, 0.0f, 3.0f, 20); if (gLevelType == LEVELTYPE_PLANET) { for (i = 0; i < 2; i++) { - func_play_800A69F8(2, player->pos.x, player->pos.y, player->trueZpos); + Play_SpawnDebris(2, player->pos.x, player->pos.y, player->trueZpos); } for (i = 0; i < 4; i++) { - func_play_800A69F8(4, player->pos.x, player->pos.y, player->trueZpos); + Play_SpawnDebris(4, player->pos.x, player->pos.y, player->trueZpos); } } Cutscene_KillPlayer(player); @@ -1903,10 +1903,10 @@ void Cutscene_PlayerDown(Player* player) { func_demo_8004D828(player); } else { func_demo_8004DEF8(player); - func_play_800ADF58(player); + Player_UpdatePath(player); } - func_play_800A8BA4(player); - func_play_800AA800(player); + Player_CollisionCheck(player); + Player_FloorCheck(player); break; case FORM_LANDMASTER: @@ -2111,7 +2111,7 @@ void func_demo_8004EBD0(ActorCutscene* this) { if (this->timer_0BC == 0) { this->state++; this->timer_0BC = 10; - func_play_800A6028(this->sfxSource, NA_SE_ARWING_BOOST); + Play_PlaySfxFirstPlayer(this->sfxSource, NA_SE_ARWING_BOOST); this->fwork[29] = 5.0f; } break; diff --git a/src/engine/fox_display.c b/src/engine/fox_display.c index b96f13bf..e725bd51 100644 --- a/src/engine/fox_display.c +++ b/src/engine/fox_display.c @@ -871,7 +871,7 @@ void func_display_80054E80(Player* player) { Vec3f spA0 = { -30.0f, -10.0f, 30.0f }; Vec3f sp94; Vec3f sp88; - u8 var_v1; + u8 laserStrength; f32 sp80; if (gChargeTimers[player->num] > 10) { @@ -936,11 +936,11 @@ void func_display_80054E80(Player* player) { Matrix_Push(&gGfxMatrix); RCP_SetupDL(&gMasterDisp, 0x43); Matrix_Copy(gCalcMatrix, &D_display_80161418[player->num]); - var_v1 = gLaserStrength[player->num]; + laserStrength = gLaserStrength[player->num]; if (player->wings.unk_14 > -8.0f) { - var_v1 = LASERS_SINGLE; + laserStrength = LASERS_SINGLE; } - switch (var_v1) { + switch (laserStrength) { case LASERS_SINGLE: gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 192, 255, 192, 128); gDPSetEnvColor(gMasterDisp++, 64, 255, 64, 128); @@ -959,7 +959,7 @@ void func_display_80054E80(Player* player) { break; case LASERS_TWIN: case LASERS_HYPER: - if (var_v1 == LASERS_TWIN) { + if (laserStrength == LASERS_TWIN) { gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 192, 255, 192, 128); gDPSetEnvColor(gMasterDisp++, 64, 255, 64, 128); } else { @@ -1424,7 +1424,7 @@ void func_display_80057504(void) { for (i = 0; i < gCamCount; i++) { if (gLockOnTargetViewPos[i].z < 0.0f) { - var_fs0 = (VEC3F_MAG(&gLockOnTargetViewPos[i])); + var_fs0 = VEC3F_MAG(&gLockOnTargetViewPos[i]); if (var_fs0 < 20000.0f) { var_fs0 *= 0.0015f; if (var_fs0 > 100.0f) { @@ -1453,7 +1453,6 @@ void func_display_80057504(void) { } } for (j = 0; j < gCamCount; j++) { - gLockOnTargetViewPos[j].x = gLockOnTargetViewPos[j].y = 0.f; gLockOnTargetViewPos[j].z = 100.0f; } @@ -1469,7 +1468,7 @@ void func_display_80057814(Player* player) { sp2C.x = player->sfxSource[0]; sp2C.y = player->sfxSource[1]; sp2C.z = player->sfxSource[2]; - func_edisplay_8005F0E8(player->sfxSource, &sp20); + Object_SetSfxSourceToPos(player->sfxSource, &sp20); player->sfxVel[0] = player->sfxSource[0] - sp2C.x; player->sfxVel[1] = player->sfxSource[1] - sp2C.y; player->sfxVel[2] = player->sfxSource[2] - sp2C.z; @@ -1558,7 +1557,7 @@ void Play_Draw(void) { Matrix_RotateZ(gGfxMatrix, -(f32) gGameFrameCount * 10.0f * M_DTOR, MTXF_APPLY); Matrix_Scale(gGfxMatrix, 1.0f + D_display_800CA230, 1.0f - D_display_800CA230, 1.0f, MTXF_APPLY); Matrix_Push(&gGfxMatrix); - func_play_800B73E0(player); + Camera_SetupLights(player); Lights_SetOneLight(&gMasterDisp, gLight1x, gLight1y, gLight1z, gLight1R, gLight1G, gLight1B, gAmbientR, gAmbientG, gAmbientB); if (gLevelMode == LEVELMODE_ON_RAILS) { @@ -1606,8 +1605,8 @@ void Play_Draw(void) { Matrix_MultVec3f(gCalcMatrix, &tempVec, &playerCamUp); if (gStarCount != 0) { gStarfieldRoll = DEG_TO_RAD(gPlayer[0].camRoll); - func_play_800B6F50(gPlayerCamEye.x, gPlayerCamEye.y, gPlayerCamEye.z, gPlayerCamAt.x, gPlayerCamAt.y, - gPlayerCamAt.z); + Camera_SetStarfieldPos(gPlayerCamEye.x, gPlayerCamEye.y, gPlayerCamEye.z, gPlayerCamAt.x, gPlayerCamAt.y, + gPlayerCamAt.z); Background_DrawStarfield(); } Background_DrawBackdrop(); @@ -1657,12 +1656,12 @@ void Play_Draw(void) { Object_Draw(1); TexturedLine_Draw(); gReflectY = 1; - PlayerShot_Draw(); + PlayerShot_DrawAll(); if ((gGroundSurface == SURFACE_WATER) && (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_LEVEL_INTRO)) { Matrix_Push(&gGfxMatrix); Matrix_Scale(gGfxMatrix, 1.0f, -1.0f, 1.0f, MTXF_APPLY); gReflectY = -1; - PlayerShot_Draw(); + PlayerShot_DrawAll(); Matrix_Pop(&gGfxMatrix); } gReflectY = -1; @@ -1727,7 +1726,7 @@ void Play_Draw(void) { } } if ((gLevelMode == LEVELMODE_UNK_2) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_ACTIVE)) { - Turret_801A6164(gPlayer); + Turret_Draw(gPlayer); } Background_DrawLensFlare(); if ((gCamCount != 1) && diff --git a/src/engine/fox_edata_info.c b/src/engine/fox_edata_info.c index dbb7726c..86581a25 100644 --- a/src/engine/fox_edata_info.c +++ b/src/engine/fox_edata_info.c @@ -282,7 +282,7 @@ ObjectInfo gObjectInfo[] = { /* OBJ_ACTOR_186 */ {(void*) func_edisplay_8005B7CC, 1, (ObjectFunc) Meteo_8018795C, D_ME_602F724, 200.0f, 0, 1, 39, 0, 1.0f, 1 }, /* OBJ_ACTOR_187 */ {(void*) D_ME_6018450, 0, (ObjectFunc) Meteo_801877C4, D_ME_602F740, 200.0f, 0, 1, 39, 0, 1.0f, 1 }, /* OBJ_ACTOR_188 */ {(void*) Aquas_801BEC74, 1, (ObjectFunc) Aquas_801BEC68, D_AQ_6030BE0, 200.0f, 0, 1, 39, 0, 1.0f, 1 }, - /* OBJ_ACTOR_189 */ {(void*) Actor189_Draw, 1, (ObjectFunc) Actor189_Update, gNoHitbox, 0.0f, 0, 0, 39, 0, 0.0f, 0 }, + /* OBJ_ACTOR_DEBRIS */ {(void*) ActorDebris_Draw, 1, (ObjectFunc) ActorDebris_Update, gNoHitbox, 0.0f, 0, 0, 39, 0, 0.0f, 0 }, /* OBJ_ACTOR_190 */ {(void*) func_edisplay_8005B848, 1, (ObjectFunc) func_enmy_800656D4, gActor190_191Hitbox, 100.0f, 0, 1, 39, 0, 1.0f, 0 }, /* OBJ_ACTOR_191 */ {(void*) func_edisplay_8005B848, 1, (ObjectFunc) func_enmy_800656D4, gActor190_191Hitbox, 100.0f, 0, 1, 39, 0, 1.0f, 0 }, /* OBJ_ACTOR_192 */ {(void*) func_edisplay_8005B9A4, 1, (ObjectFunc) func_enmy_8006654C, D_CO_603E54C, 200.0f, 0, 1, 39, 0, 50.0f, 1 }, @@ -394,25 +394,25 @@ ObjectInfo gObjectInfo[] = { /* OBJ_BOSS_298 */ {(void*) Meteo_801887D0, 1, (ObjectFunc) Meteo_80188344, D_ME_602FA50, 20000.0f, 0, 0, 40, 0, 0.0f, 10 }, /* OBJ_BOSS_299 */ {(void*) Boss299_Draw, 2, (ObjectFunc) Boss299_Update, gNoHitbox, 20000.0f, 0, 0, 40, 0, 0.0f, 10 }, /* OBJ_BOSS_300 */ {(void*) Boss300_Draw, 1, (ObjectFunc) Boss300_Update, gNoHitbox, 20000.0f, 0, 0, 40, 0, 0.0f, 10 }, - /* OBJ_BOSS_301 */ {(void*) Aquas_801BEC5C, 1, (ObjectFunc) Aquas_801BEC50, D_AQ_6030B10, 0.0f, 0, 0, 40, 0, 0.0f, 10 }, - /* OBJ_BOSS_A6 */ {(void*) Area6_8018C54C, 1, (ObjectFunc) Area6_80187944, D_A6_6028454, 2000.0f, 0, 0, 40, 0, 0.0f, 10 }, + /* OBJ_BOSS_301 */ {(void*) Aquas_Boss301_Draw, 1, (ObjectFunc) Aquas_Boss301_Update, D_AQ_6030B10, 0.0f, 0, 0, 40, 0, 0.0f, 10 }, + /* OBJ_BOSS_A6 */ {(void*) Area6_Boss_Draw, 1, (ObjectFunc) Area6_Boss_Update, D_A6_6028454, 2000.0f, 0, 0, 40, 0, 0.0f, 10 }, /* OBJ_BOSS_303 */ {(void*) SectorX_80193434, 2, (ObjectFunc) SectorX_80190078, D_SX_6032550, 20000.0f, 0, 0, 20, 0, 0.0f, 10 }, /* OBJ_BOSS_304 */ {(void*) SectorX_8018FF84, 2, (ObjectFunc) SectorX_8018FE38, D_SX_6032488, 1000.0f, 0, 0, 20, 0, 0.0f, 10 }, /* OBJ_BOSS_305 */ {(void*) SectorX_80190020, 2, (ObjectFunc) SectorX_8018FF20, D_SX_60324EC, 1000.0f, 0, 0, 20, 0, 0.0f, 10 }, - /* OBJ_BOSS_306 */ {(void*) Titania_801982A8, 1, (ObjectFunc) Titania_80197A94,D_TI_801B83A8, 1000.0f, 0, 0, 40, 1, 0.0f, 10 }, - /* OBJ_BOSS_ZO */ {(void*) Zoness_801949DC, 2, (ObjectFunc) Zoness_80194A84, D_ZO_602C044, 1000.0f, 0, 0, 40, 0, 1.0f, 10 }, - /* OBJ_BOSS_308 */ {(void*) func_hud_8008FE78, 1, (ObjectFunc) func_hud_800907C4, D_FO_600FFE0, 0.0f, 0, 0, 40, 1, 0.0f, 10 }, + /* OBJ_BOSS_TI */ {(void*) Titania_Boss_Draw, 1, (ObjectFunc) Titania_Boss_Update,D_TI_801B83A8, 1000.0f, 0, 0, 40, 1, 0.0f, 10 }, + /* OBJ_BOSS_ZO */ {(void*) Zoness_Boss_Draw, 2, (ObjectFunc) Zoness_Boss_Update, D_ZO_602C044, 1000.0f, 0, 0, 40, 0, 1.0f, 10 }, + /* OBJ_BOSS_FO */ {(void*) HUD_BossFO_Draw, 1, (ObjectFunc) HUD_BossFO_Update, D_FO_600FFE0, 0.0f, 0, 0, 40, 1, 0.0f, 10 }, /* OBJ_BOSS_309 */ {(void*) Boss309_Draw, 1, (ObjectFunc) Boss309_Update, gNoHitbox, 0.0f, 0, 0, 40, 1, 0.0f, 10 }, /* OBJ_BOSS_310 */ {(void*) Boss310_Draw, 1, (ObjectFunc) Boss310_Update, gNoHitbox, 0.0f, 0, 0, 40, 1, 0.0f, 10 }, /* OBJ_BOSS_311 */ {(void*) Bolse_80191AFC, 2, (ObjectFunc) Bolse_801912FC, D_BO_6011C80, 0.0f, 0, 0, 40, 1, 0.0f, 10 }, - /* OBJ_BOSS_312 */ {(void*) Venom2_80196288, 2, (ObjectFunc) Venom2_80196210, D_VE2_60166F4, 0.0f, 0, 0, 40, 1, 0.0f, 10 }, - /* OBJ_BOSS_313 */ {(void*) SectorZ_8019E98C, 1, (ObjectFunc) SectorZ_8019E454, D_SZ_6009388, 0.0f, 0, 0, 40, 0, 0.0f, 10 }, - /* OBJ_BOSS_314 */ {(void*) SectorY_8019E2C4, 2, (ObjectFunc) SectorY_8019C888, gNoHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 10 }, - /* OBJ_BOSS_SO */ {(void*) Solar_801A71B8, 2, (ObjectFunc) Solar_801A5B3C, gNoHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 10 }, - /* OBJ_BOSS_316 */ {(void*) Katina_BossDraw, 1, (ObjectFunc) Katina_BossUpdate, D_KA_6011058, 0.0f, 0, 0, 40, 0, 0.0f, 10 }, - /* OBJ_BOSS_317 */ {(void*) Katina_Base_Draw, 1, (ObjectFunc) Katina_BaseUpdate, D_KA_601115C, 0.0f, 0, 0, 40, 1, 0.0f, 10 }, - /* OBJ_BOSS_AQ */ {(void*) Aquas_801B4D84, 2, (ObjectFunc) Aquas_801B134C, D_AQ_6030F74, 10000.0f, 0, 0, 40, 0, 0.0f, 10 }, - /* OBJ_BOSS_319 */ {(void*) Venom1_801985E4, 1, (ObjectFunc) Venom1_80194398,D_VE1_8019A9B8, 3000.0f, 0, 0, 40, 1, 0.0f, 10 }, + /* OBJ_BOSS_VE2 */ {(void*) Venom2_Boss_Draw, 2, (ObjectFunc) Venom2_Boss_Update, D_VE2_60166F4, 0.0f, 0, 0, 40, 1, 0.0f, 10 }, + /* OBJ_BOSS_SZ */ {(void*) SectorZ_Boss_Draw, 1, (ObjectFunc) SectorZ_Boss_Update, D_SZ_6009388, 0.0f, 0, 0, 40, 0, 0.0f, 10 }, + /* OBJ_BOSS_SY */ {(void*) SectorY_Boss_Draw, 2, (ObjectFunc) SectorY_Boss_Update, gNoHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 10 }, + /* OBJ_BOSS_SO */ {(void*) Solar_Boss_Draw, 2, (ObjectFunc) Solar_Boss_Update, gNoHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 10 }, + /* OBJ_BOSS_KA */ {(void*) Katina_BossDraw, 1, (ObjectFunc) Katina_BossUpdate, D_KA_6011058, 0.0f, 0, 0, 40, 0, 0.0f, 10 }, + /* OBJ_BOSS_KA_BASE */ {(void*) Katina_Base_Draw, 1, (ObjectFunc) Katina_BaseUpdate, D_KA_601115C, 0.0f, 0, 0, 40, 1, 0.0f, 10 }, + /* OBJ_BOSS_AQ */ {(void*) Aquas_Boss_Draw, 2, (ObjectFunc) Aquas_Boss_Update, D_AQ_6030F74, 10000.0f, 0, 0, 40, 0, 0.0f, 10 }, + /* OBJ_BOSS_VE1 */ {(void*) Venom1_Boss_Draw, 1, (ObjectFunc) Venom1_Boss_Update,D_VE1_8019A9B8, 3000.0f, 0, 0, 40, 1, 0.0f, 10 }, /* OBJ_BOSS_320 */ {(void*) Andross_801928C8, 2, (ObjectFunc) Andross_8018DBF0, D_ANDROSS_C038DC0, 10000.0f, 0, 0, 40, 0, 0.0f, 10 }, /* OBJ_BOSS_321 */ {(void*) Andross_8018B8C0, 1, (ObjectFunc) Andross_80189B70, D_ANDROSS_C038F24, 10000.0f, 0, 0, 40, 0, 0.0f, 10 }, /* OBJ_ITEM_LASERS */ {(void*) ItemLasers_Draw, 1, (ObjectFunc) ItemLasers_Update, gItemLasersHitbox, 700.0f, 0, 0, 0, 0, 0.0f, 0 }, diff --git a/src/engine/fox_edisplay.c b/src/engine/fox_edisplay.c index 8be8cda3..0d315d6e 100644 --- a/src/engine/fox_edisplay.c +++ b/src/engine/fox_edisplay.c @@ -236,7 +236,7 @@ Gfx* D_edisplay_800CFC64[] = { D_AQ_6023940, D_AQ_6023D70, D_AQ_60249C0, D_AQ_60 Gfx* D_edisplay_800CFC7C[] = { D_ZO_601B570, D_ZO_601B710, D_ZO_60209B0, D_ZO_6020B70, D_ZO_6020D50, D_ZO_601B8F0, D_ZO_601B3B0, D_ZO_601B1C0, D_ZO_6011660 }; -void Actor189_Draw(Actor189* this) { +void ActorDebris_Draw(ActorDebris* this) { switch (this->state) { case 0: Matrix_Translate(gGfxMatrix, 18.0f, 15.0f, -15.0f, MTXF_APPLY); @@ -412,7 +412,7 @@ void Actor189_Draw(Actor189* this) { gSPDisplayList(gMasterDisp++, D_VE1_8019A008[this->unk_048]); break; default: - if (this->state > 9) { + if (this->state >= 10) { if (this->state == 36) { gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK); } @@ -669,7 +669,7 @@ void func_edisplay_8005BAB4(ObjectId objId, s32 index) { case OBJ_BOSS_292: gSPDisplayList(gMasterDisp++, D_CO_6034B90); break; - case OBJ_BOSS_316: + case OBJ_BOSS_KA: if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_STANDBY) { RCP_SetupDL(&gMasterDisp, 0x40); gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 0, 0, 0, 200); @@ -754,7 +754,7 @@ void func_edisplay_8005BAB4(ObjectId objId, s32 index) { Matrix_SetGfxMtx(&gMasterDisp); gSPDisplayList(gMasterDisp++, D_1024AC0); break; - case OBJ_BOSS_319: + case OBJ_BOSS_VE1: Venom1_80198310(&gBosses[index]); break; } @@ -1016,10 +1016,10 @@ void Actor_DrawOnRails(Actor* this) { } if (this->info.drawType == 0) { gSPDisplayList(gMasterDisp++, this->info.dList); - func_edisplay_8005F1EC(this->sfxSource); + Object_UpdateSfxSource(this->sfxSource); } else { this->info.draw(&this->obj); - func_edisplay_8005F1EC(this->sfxSource); + Object_UpdateSfxSource(this->sfxSource); if (((this->obj.id == OBJ_ACTOR_TEAM_BOSS) || ((this->obj.id == OBJ_ACTOR_SLIPPY_SX) && (this->unk_0B6 > 0))) && (gReflectY > 0)) { @@ -1114,7 +1114,7 @@ void Actor_DrawAllRange(Actor* this) { } if (!sDrewActor) { this->lockOnTimers[gPlayerNum] = 0; - if ((this->obj.id == OBJ_ACTOR_189) || (this->obj.id == OBJ_ACTOR_286)) { + if ((this->obj.id == OBJ_ACTOR_DEBRIS) || (this->obj.id == OBJ_ACTOR_286)) { Object_Kill(&this->obj, this->sfxSource); } } @@ -1127,7 +1127,7 @@ void Actor_DrawAllRange(Actor* this) { } } } - func_edisplay_8005F290(this->sfxSource, &sViewPos); + Object_SetSfxSourceToView(this->sfxSource, &sViewPos); this->iwork[24] = sDrewActor; } @@ -1137,7 +1137,7 @@ void Boss_Draw(Boss* this, s32 arg1) { f32 var_fv0; f32 var_fv1; f32 sp3C; - Vec3f sp30 = { 0.0f, 0.0f, 0.0f }; + Vec3f origin = { 0.0f, 0.0f, 0.0f }; if (this->info.unk_19 != 0) { this->obj.pos.y += this->unk_068 + gCameraShakeY; @@ -1146,14 +1146,14 @@ void Boss_Draw(Boss* this, s32 arg1) { } else { func_edisplay_8005D1F0(&this->obj, this->info.drawType); } - Matrix_MultVec3f(&D_edisplay_801615F0, &sp30, &D_edisplay_801615D0); - func_edisplay_8005F290(this->sfxSource, &D_edisplay_801615D0); - if ((this->obj.id == OBJ_BOSS_316) || (this->obj.id == OBJ_BOSS_317)) { + Matrix_MultVec3f(&D_edisplay_801615F0, &origin, &D_edisplay_801615D0); + Object_SetSfxSourceToView(this->sfxSource, &D_edisplay_801615D0); + if ((this->obj.id == OBJ_BOSS_KA) || (this->obj.id == OBJ_BOSS_KA_BASE)) { var_fa1 = 6000.0f; var_fv0 = 6000.0f; var_ft5 = 0.9f; var_fv1 = -20000.0f; - } else if (this->obj.id == OBJ_BOSS_313) { + } else if (this->obj.id == OBJ_BOSS_SZ) { var_fv1 = -25000.0f; var_ft5 = 0.7f; var_fa1 = 3000.0f; @@ -1170,7 +1170,7 @@ void Boss_Draw(Boss* this, s32 arg1) { if (fabsf(D_edisplay_801615D0.y) < (fabsf(D_edisplay_801615D0.z * var_ft5) + var_fa1)) { sp3C = 1.0f; if (this->obj.id != OBJ_BOSS_309) { - if (this->obj.id != OBJ_BOSS_316) { + if (this->obj.id != OBJ_BOSS_KA) { Display_SetSecondLight(&this->obj.pos); } if (this->info.drawType != 2) { @@ -1243,7 +1243,7 @@ void Effect_DrawAllRange(Effect* this) { } } } - func_edisplay_8005F290(this->sfxSource, &sp40); + Object_SetSfxSourceToView(this->sfxSource, &sp40); if (!drawn && (this->obj.id != OBJ_EFFECT_352) && (this->obj.id != OBJ_EFFECT_373) && (!gVersusMode)) { Object_Kill(&this->obj, this->sfxSource); } @@ -1275,7 +1275,7 @@ void Item_Draw(Item* this, s32 arg1) { } } } - func_edisplay_8005F290(this->sfxSource, &sp38); + Object_SetSfxSourceToView(this->sfxSource, &sp38); if (!drawn && (gLevelMode == LEVELMODE_ALL_RANGE) && (gCamCount == 1) && (this->obj.id < OBJ_ITEM_GOLD_RING) && (gCurrentLevel != LEVEL_VENOM_ANDROSS)) { Object_Kill(&this->obj, this->sfxSource); @@ -1329,7 +1329,7 @@ void Object_DrawShadow(s32 index, Object* obj) { Matrix_Translate(gGfxMatrix, obj->pos.x, gGroundHeight + 2.0f + gActors[index].fwork[0], obj->pos.z + gPathProgress, MTXF_APPLY); break; - case OBJ_BOSS_316: + case OBJ_BOSS_KA: Matrix_Translate(gGfxMatrix, obj->pos.x, gGroundHeight + 2.0f + gCameraShakeY, obj->pos.z, MTXF_APPLY); break; default: @@ -1341,7 +1341,7 @@ void Object_DrawShadow(s32 index, Object* obj) { Matrix_Scale(gGfxMatrix, 1.0f, 0.0f, 1.0f, MTXF_APPLY); Matrix_RotateY(gGfxMatrix, obj->rot.y * M_DTOR, MTXF_APPLY); } - if ((obj->id < OBJ_BOSS_292) && (obj->id != OBJ_ACTOR_230) && (obj->id != OBJ_ACTOR_229) && + if ((obj->id < OBJ_ACTOR_MAX) && (obj->id != OBJ_ACTOR_230) && (obj->id != OBJ_ACTOR_229) && (obj->id != OBJ_ACTOR_231)) { Matrix_RotateX(gGfxMatrix, obj->rot.x * M_DTOR, MTXF_APPLY); Matrix_RotateZ(gGfxMatrix, obj->rot.z * M_DTOR, MTXF_APPLY); @@ -1372,7 +1372,7 @@ void Object_ClampSfxSource(f32* sfxSrc) { } } -void func_edisplay_8005F0E8(f32* sfxSrc, Vec3f* pos) { +void Object_SetSfxSourceToPos(f32* sfxSrc, Vec3f* pos) { Vec3f sp2C; Vec3f sp20; @@ -1392,15 +1392,15 @@ void func_edisplay_8005F0E8(f32* sfxSrc, Vec3f* pos) { Object_ClampSfxSource(sfxSrc); } -void func_edisplay_8005F1EC(f32* sfxSrc) { - Vec3f sp2C = { 0.0f, 0.0f, 0.0f }; +void Object_UpdateSfxSource(f32* sfxSrc) { + Vec3f origin = { 0.0f, 0.0f, 0.0f }; Vec3f sp20; s32 pad; if (gCamCount != 1) { sfxSrc[0] = sfxSrc[1] = sfxSrc[2] = 0.0f; } else { - Matrix_MultVec3f(&D_edisplay_801615F0, &sp2C, &sp20); + Matrix_MultVec3f(&D_edisplay_801615F0, &origin, &sp20); sfxSrc[0] = sp20.x; sfxSrc[1] = sp20.y; sfxSrc[2] = sp20.z; @@ -1408,13 +1408,13 @@ void func_edisplay_8005F1EC(f32* sfxSrc) { Object_ClampSfxSource(sfxSrc); } -void func_edisplay_8005F290(f32* sfxSrc, Vec3f* pos) { +void Object_SetSfxSourceToView(f32* sfxSrc, Vec3f* viewPos) { if (gCamCount != 1) { sfxSrc[0] = sfxSrc[1] = sfxSrc[2] = 0.0f; } else { - sfxSrc[0] = pos->x; - sfxSrc[1] = pos->y; - sfxSrc[2] = pos->z; + sfxSrc[0] = viewPos->x; + sfxSrc[1] = viewPos->y; + sfxSrc[2] = viewPos->z; } Object_ClampSfxSource(sfxSrc); } @@ -1577,7 +1577,7 @@ void Object_DrawAll(s32 arg0) { Matrix_Push(&gGfxMatrix); Scenery_Draw(scenery, arg0); Matrix_Pop(&gGfxMatrix); - func_edisplay_8005F1EC(scenery->sfxSource); + Object_UpdateSfxSource(scenery->sfxSource); } } } @@ -1697,7 +1697,7 @@ void Effect_DrawAll(s32 arg0) { Matrix_Push(&gGfxMatrix); Effect_DrawOnRails(effect, arg0); Matrix_Pop(&gGfxMatrix); - func_edisplay_8005F1EC(effect->sfxSource); + Object_UpdateSfxSource(effect->sfxSource); if (effect->obj.id == OBJ_EFFECT_374) { Matrix_Push(&gGfxMatrix); Object_DrawShadow(i, &effect->obj); diff --git a/src/engine/fox_effect.c b/src/engine/fox_effect.c index 28b90e71..238f71fe 100644 --- a/src/engine/fox_effect.c +++ b/src/engine/fox_effect.c @@ -1167,7 +1167,7 @@ void func_effect_8007B040(Effect* effect) { f32 sp2C; s32 sp28; - if (func_play_800A73E4(&sp2C, &sp28, effect->obj.pos.x, effect->obj.pos.y, effect->obj.pos.z)) { + if (Play_CheckDynaFloorCollision(&sp2C, &sp28, effect->obj.pos.x, effect->obj.pos.y, effect->obj.pos.z)) { D_ctx_801782EC[sp28] = effect->scale1; D_ctx_801782EC[sp28 + 1] = effect->scale1 * 0.7f; D_ctx_801782EC[sp28 - 1] = effect->scale1 * 0.7f; @@ -1580,7 +1580,7 @@ void func_effect_8007C1AC(f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 for (i = ARRAY_COUNT(gEffects) - 1; i >= 0; i--) { if (gEffects[i].obj.status == OBJ_FREE) { func_effect_8007BF64(&gEffects[i], xPos, yPos, zPos, xVel, yVel, zVel, scale2, timer50); - func_play_800A6070(gEffects[i].sfxSource, NA_SE_EXPLOSION_S); + Play_PlaySfxNoPlayer(gEffects[i].sfxSource, NA_SE_EXPLOSION_S); break; } } @@ -2192,8 +2192,8 @@ void func_effect_8007DB70(Effect* effect) { func_effect_8007BFFC(effect->obj.pos.x, effect->obj.pos.y + 30.0f, effect->obj.pos.z, 0.0f, 0.0f, 0.0f, 4.0f, 5); if ((effect->obj.pos.y < (gGroundHeight + 10.0f)) || (gGroundSurface != SURFACE_WATER)) { - func_beam_800365E4(effect->obj.pos.x, 3.0f, effect->obj.pos.z, effect->obj.pos.x, effect->obj.pos.z, - 0.0f, 0.0f, 90.0f, 5.0f, 0, 0); + PlayerShot_SpawnEffect344(effect->obj.pos.x, 3.0f, effect->obj.pos.z, effect->obj.pos.x, + effect->obj.pos.z, 0.0f, 0.0f, 90.0f, 5.0f, 0, 0); break; } } @@ -3637,8 +3637,8 @@ void func_effect_80081C5C(Effect* effect) { effect->vel.y -= 1.0f; - if ((func_play_800A73E4(&posYOut, &unusedOut, effect->obj.pos.x, effect->obj.pos.y, - effect->obj.pos.z)) || + if ((Play_CheckDynaFloorCollision(&posYOut, &unusedOut, effect->obj.pos.x, effect->obj.pos.y, + effect->obj.pos.z)) || (effect->timer_50 == 0)) { func_effect_8007B228(effect->obj.pos.x, posYOut, effect->obj.pos.z, effect->scale2); Object_Kill(&effect->obj, effect->sfxSource); diff --git a/src/engine/fox_enmy.c b/src/engine/fox_enmy.c index ac6ad445..13cce9b7 100644 --- a/src/engine/fox_enmy.c +++ b/src/engine/fox_enmy.c @@ -73,7 +73,7 @@ u32 gWarpRingSfx[] = { NA_SE_WARP_RING_6, NA_SE_WARP_RING_7, NA_SE_WARP_RING_7, NA_SE_WARP_RING_7, }; -void func_enmy_80060F30(f32* pos, u32 sfxId, s32 shotSource) { +void Object_PlayerSfx(f32* pos, u32 sfxId, s32 playerNum) { PRINTF("CHIME SET \n"); PRINTF("BOMB SET 1\n"); PRINTF("BOMB SET 2\n"); @@ -82,7 +82,7 @@ void func_enmy_80060F30(f32* pos, u32 sfxId, s32 shotSource) { if (!gVersusMode) { AUDIO_PLAY_SFX(sfxId, gDefaultSfxSource, 4); } else { - AUDIO_PLAY_SFX(sfxId, pos, shotSource); + AUDIO_PLAY_SFX(sfxId, pos, playerNum); } } @@ -411,7 +411,7 @@ void Object_Load(ObjectInit* objInit, f32 xMax, f32 xMin, f32 yMax, f32 yMin) { if ((xMax > objInit->xPos - gPlayer[0].xPath) && (objInit->xPos - gPlayer[0].xPath > xMin) && (yMax > objInit->yPos - gPlayer[0].yPath) && (objInit->yPos - gPlayer[0].yPath > yMin)) { - if (objInit->id < OBJ_SPRITE_CO_POLE) { + if (objInit->id < OBJ_SCENERY_MAX) { for (i = 0; i < ARRAY_COUNT(gScenery); i++) { if (gScenery[i].obj.status == OBJ_FREE) { Scenery_Load(&gScenery[i], objInit); @@ -419,7 +419,7 @@ void Object_Load(ObjectInit* objInit, f32 xMax, f32 xMin, f32 yMax, f32 yMin) { } } } - if ((objInit->id >= OBJ_SPRITE_CO_POLE) && (objInit->id < OBJ_ACTOR_176)) { + if ((objInit->id >= OBJ_SPRITE_START) && (objInit->id < OBJ_SPRITE_MAX)) { for (i = 0; i < ARRAY_COUNT(gSprites); i++) { if (gSprites[i].obj.status == OBJ_FREE) { Sprite_Load(&gSprites[i], objInit); @@ -427,7 +427,7 @@ void Object_Load(ObjectInit* objInit, f32 xMax, f32 xMin, f32 yMax, f32 yMin) { } } } - if ((objInit->id >= OBJ_ACTOR_176) && (objInit->id < OBJ_BOSS_292)) { + if ((objInit->id >= OBJ_ACTOR_START) && (objInit->id < OBJ_ACTOR_MAX)) { 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 == OBJ_FREE) { @@ -451,7 +451,7 @@ void Object_Load(ObjectInit* objInit, f32 xMax, f32 xMin, f32 yMax, f32 yMin) { } } } - if ((objInit->id >= OBJ_BOSS_292) && (objInit->id < OBJ_ITEM_LASERS)) { + if ((objInit->id >= OBJ_BOSS_START) && (objInit->id < OBJ_BOSS_MAX)) { for (i = 0; i < ARRAY_COUNT(gBosses); i++) { if (gBosses[i].obj.status == OBJ_FREE) { Boss_Load(&gBosses[i], objInit); @@ -459,7 +459,7 @@ void Object_Load(ObjectInit* objInit, f32 xMax, f32 xMin, f32 yMax, f32 yMin) { } } } - if ((objInit->id >= OBJ_ITEM_LASERS) && (objInit->id < OBJ_EFFECT_FIRE_SMOKE)) { + if ((objInit->id >= OBJ_ITEM_START) && (objInit->id < OBJ_ITEM_MAX)) { for (i = 0; i < ARRAY_COUNT(gItems); i++) { if (gItems[i].obj.status == OBJ_FREE) { Item_Load(&gItems[i], objInit); @@ -467,7 +467,7 @@ void Object_Load(ObjectInit* objInit, f32 xMax, f32 xMin, f32 yMax, f32 yMin) { } } } - if (objInit->id >= OBJ_EFFECT_FIRE_SMOKE && objInit->id <= OBJ_UNK_406) { + if (objInit->id >= OBJ_EFFECT_START && objInit->id <= OBJ_ID_MAX) { switch (objInit->id) { case OBJ_UNK_403: D_MA_801BA1E8 = 99; @@ -493,7 +493,7 @@ void Object_Load(ObjectInit* objInit, f32 xMax, f32 xMin, f32 yMax, f32 yMin) { break; } } - if (objInit->id > OBJ_UNK_406) { + if (objInit->id > OBJ_ID_MAX) { for (i = 0; i < ARRAY_COUNT(gActors); i++) { if (gActors[i].obj.status == OBJ_FREE) { ActorEvent_Load(&gActors[i], objInit, i); @@ -570,8 +570,10 @@ void Object_LoadLevelObjects(void) { gLastPathChange = 0; for (i = 0, objInit = &gLevelObjects[gObjectLoadIndex]; i < 10000; i++, gObjectLoadIndex++, objInit++) { - if ((objInit->id > OBJ_INVALID) && gPathProgress <= objInit->zPos1 && - objInit->zPos1 <= gPathProgress + 200.0f) { + if (objInit->id <= OBJ_INVALID) { + break; + } + if (((gPathProgress <= objInit->zPos1) && (objInit->zPos1 <= gPathProgress + 200.0f))) { if ((gCurrentLevel == LEVEL_VENOM_1) && (objInit->id >= ACTOR_EVENT_ID)) { if (((objInit->rot.y < 180.0f) && (objInit->xPos < gPlayer[0].xPath)) || ((objInit->rot.y > 180.0f) && (gPlayer[0].xPath < objInit->xPos))) { @@ -747,15 +749,15 @@ bool Object_CheckPolyCollision(Vec3f* pos, Vec3f* vel, ObjectId objId, Object* o objPos.y = obj->pos.y; objPos.z = obj->pos.z; if ((objId == OBJ_ACTOR_180) || (objId == OBJ_SCENERY_149) || (objId == OBJ_SCENERY_150) || - (objId == OBJ_BOSS_308) || (objId == OBJ_BOSS_313) || (objId == OBJ_BOSS_312) || (objId == OBJ_BOSS_309) || + (objId == OBJ_BOSS_FO) || (objId == OBJ_BOSS_SZ) || (objId == OBJ_BOSS_VE2) || (objId == OBJ_BOSS_309) || (objId == OBJ_SCENERY_ME_TUNNEL)) { colId = COL1_0; - if (objId == OBJ_BOSS_312) { + if (objId == OBJ_BOSS_VE2) { colId = COL1_9; } if (objId == OBJ_SCENERY_ME_TUNNEL) { colId = COL1_1; - } else if (objId == OBJ_BOSS_308) { + } else if (objId == OBJ_BOSS_FO) { colId = COL1_4; } else if (objId == OBJ_BOSS_309) { colId = COL1_7; @@ -763,7 +765,7 @@ bool Object_CheckPolyCollision(Vec3f* pos, Vec3f* vel, ObjectId objId, Object* o colId = COL1_5; } else if (objId == OBJ_SCENERY_150) { colId = COL1_6; - } else if (objId == OBJ_BOSS_313) { + } else if (objId == OBJ_BOSS_SZ) { colId = COL1_8; } if (func_col1_800998FC(&relPos, &objPos, vel, colId, &sp44, sp30) > 0) { @@ -859,8 +861,8 @@ s32 Object_CheckCollision(s32 index, Vec3f* pos, Vec3f* vel, s32 mode) { boss = gBosses; for (i = 0; i < ARRAY_COUNT(gBosses); i++, boss++) { if (boss->obj.status == OBJ_ACTIVE) { - if ((boss->obj.id == OBJ_BOSS_308) || (boss->obj.id == OBJ_BOSS_312) || - (boss->obj.id == OBJ_BOSS_313) || (boss->obj.id == OBJ_BOSS_309)) { + if ((boss->obj.id == OBJ_BOSS_FO) || (boss->obj.id == OBJ_BOSS_VE2) || + (boss->obj.id == OBJ_BOSS_SZ) || (boss->obj.id == OBJ_BOSS_309)) { if (Object_CheckPolyCollision(pos, vel, boss->obj.id, &boss->obj)) { return 2; } @@ -873,7 +875,7 @@ s32 Object_CheckCollision(s32 index, Vec3f* pos, Vec3f* vel, s32 mode) { return 2; } } else { - if (boss->obj.id == OBJ_BOSS_316) { + if (boss->obj.id == OBJ_BOSS_KA) { temp.x = fabsf(boss->obj.pos.x - pos->x); temp.y = fabsf(boss->obj.pos.y - 300.0f - pos->y) * 7.42f; temp.z = fabsf(boss->obj.pos.z - pos->z); @@ -1188,10 +1190,10 @@ void Object_Init(s32 index, ObjectId objId) { case OBJ_BOSS_320: Andross_Boss320_Init(&gBosses[index]); break; - case OBJ_BOSS_316: + case OBJ_BOSS_KA: Katina_BossSetup(&gBosses[index]); break; - case OBJ_BOSS_314: + case OBJ_BOSS_SY: SectorY_Boss314_Init(&gBosses[index]); break; case OBJ_ACTOR_205: @@ -1273,7 +1275,7 @@ void Object_Init(s32 index, ObjectId objId) { case OBJ_SPRITE_TI_CACTUS: Titania_8018EFF0(&gSprites[index]); break; - case OBJ_BOSS_306: + case OBJ_BOSS_TI: Titania_Boss306_Init(&gBosses[index]); break; case OBJ_ACTOR_240: @@ -1318,7 +1320,7 @@ void Object_Init(s32 index, ObjectId objId) { case OBJ_SCENERY_57: Titania_8018F0D8(&gScenery[index]); break; - case OBJ_BOSS_319: + case OBJ_BOSS_VE1: Venom1_Boss319_Init(&gBosses[index]); break; case OBJ_ACTOR_280: @@ -1961,30 +1963,30 @@ void Item_SpinPickup(Item* this) { this->obj.rot.y = Math_ModF(this->obj.rot.y, 360.0f); } -void func_enmy_80067348(Actor* actor, f32 xPos, f32 yPos, f32 zPos, f32 xRot, f32 yRot, f32 arg6, f32 arg7, f32 arg8) { +void Actor_SetupDebris70(Actor* actor, f32 xPos, f32 yPos, f32 zPos, f32 xRot, f32 yRot, f32 xVel, f32 yVel, f32 zVel) { Actor_Initialize(actor); actor->obj.status = OBJ_ACTIVE; - actor->obj.id = OBJ_ACTOR_189; + actor->obj.id = OBJ_ACTOR_DEBRIS; actor->state = 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->vel.x = xVel; + actor->vel.y = yVel; + actor->vel.z = zVel; actor->timer_0BC = RAND_INT(15.0f) + 25.0f; actor->gravity = 0.5f; Object_SetInfo(&actor->info, actor->obj.id); } -void func_enmy_800674B4(f32 xPos, f32 yPos, f32 zPos, f32 xRot, f32 yRot, f32 arg5, f32 arg6, f32 arg7) { +void Actor_SpawnDebris70(f32 xPos, f32 yPos, f32 zPos, f32 xRot, f32 yRot, f32 arg5, f32 arg6, f32 arg7) { s32 i; for (i = ARRAY_COUNT(gActors) - 1; i >= 50; i--) { if (gActors[i].obj.status == OBJ_FREE) { - func_enmy_80067348(&gActors[i], xPos, yPos, zPos, xRot, yRot, arg5, arg6, arg7); + Actor_SetupDebris70(&gActors[i], xPos, yPos, zPos, xRot, yRot, arg5, arg6, arg7); break; } } @@ -2022,10 +2024,10 @@ void ActorSupplies_Update(ActorSupplies* this) { } Actor_Despawn(this); for (i = 0; i < 6; i++) { - func_enmy_800674B4(D_enmy_800CFEC4[i].x + this->obj.pos.x, D_enmy_800CFEC4[i].y + this->obj.pos.y, - D_enmy_800CFEC4[i].z + this->obj.pos.z, D_enmy_800CFF0C[i].y + this->obj.rot.y, - D_enmy_800CFF0C[i].x + this->obj.rot.x, RAND_FLOAT_CENTERED(40.0f), - RAND_FLOAT(10.0f) + 10.0f, RAND_FLOAT_CENTERED(40.0f)); + Actor_SpawnDebris70(D_enmy_800CFEC4[i].x + this->obj.pos.x, D_enmy_800CFEC4[i].y + this->obj.pos.y, + D_enmy_800CFEC4[i].z + this->obj.pos.z, D_enmy_800CFF0C[i].y + this->obj.rot.y, + D_enmy_800CFF0C[i].x + this->obj.rot.x, RAND_FLOAT_CENTERED(40.0f), + RAND_FLOAT(10.0f) + 10.0f, RAND_FLOAT_CENTERED(40.0f)); func_effect_800794CC(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, 0.6f); } Object_Kill(&this->obj, this->sfxSource); @@ -2078,7 +2080,7 @@ void Item1up_Update(Item1UP* this) { Item_SpinPickup(this); if (this->collected) { Object_Kill(&this->obj, this->sfxSource); - func_enmy_80060F30(gPlayer[this->playerNum].sfxSource, NA_SE_ONE_UP, this->playerNum); + Object_PlayerSfx(gPlayer[this->playerNum].sfxSource, NA_SE_ONE_UP, this->playerNum); if (gCurrentLevel != LEVEL_TRAINING) { gLifeCount[this->playerNum]++; } @@ -2101,8 +2103,8 @@ void ItemPickup_Update(Item* this) { this->timer_48 = 20; this->unk_50 = 60.0f; gBombCount[this->playerNum]++; - func_enmy_80060F30(gPlayer[this->playerNum].sfxSource, NA_SE_BOMB_GET, this->playerNum); - func_enmy_80060F30(gPlayer[this->playerNum].sfxSource, NA_SE_BOMB_GAUGE_UP, this->playerNum); + Object_PlayerSfx(gPlayer[this->playerNum].sfxSource, NA_SE_BOMB_GET, this->playerNum); + Object_PlayerSfx(gPlayer[this->playerNum].sfxSource, NA_SE_BOMB_GAUGE_UP, this->playerNum); } break; case OBJ_ITEM_LASERS: @@ -2116,7 +2118,7 @@ void ItemPickup_Update(Item* this) { if (gLaserStrength[this->playerNum] > LASERS_HYPER) { gLaserStrength[this->playerNum] = LASERS_HYPER; } - func_enmy_80060F30(gPlayer[this->playerNum].sfxSource, NA_SE_TWIN_LASER_GET, this->playerNum); + Object_PlayerSfx(gPlayer[this->playerNum].sfxSource, NA_SE_TWIN_LASER_GET, this->playerNum); if (gExpertMode) { gRightWingHealth[this->playerNum] = gLeftWingHealth[this->playerNum] = 10; } else { @@ -2168,13 +2170,13 @@ void ItemSupplyRing_Update(Item* this) { this->timer_48 = 50; if (this->obj.id == OBJ_ITEM_SILVER_RING) { gPlayer[this->playerNum].heal += 32; - func_enmy_80060F30(gPlayer[this->playerNum].sfxSource, NA_SE_SHIELD_RING, this->playerNum); + Object_PlayerSfx(gPlayer[this->playerNum].sfxSource, NA_SE_SHIELD_RING, this->playerNum); } else if (this->obj.id == OBJ_ITEM_GOLD_RING) { gGoldRingCount[0]++; if (gGoldRingCount[0] == 3) { - func_enmy_80060F30(gPlayer[this->playerNum].sfxSource, NA_SE_SHIELD_UPGRADE, this->playerNum); + Object_PlayerSfx(gPlayer[this->playerNum].sfxSource, NA_SE_SHIELD_UPGRADE, this->playerNum); } else if (gGoldRingCount[0] == 6) { - func_enmy_80060F30(gPlayer[this->playerNum].sfxSource, NA_SE_ONE_UP, this->playerNum); + Object_PlayerSfx(gPlayer[this->playerNum].sfxSource, NA_SE_ONE_UP, this->playerNum); if (gCurrentLevel != LEVEL_TRAINING) { gLifeCount[this->playerNum]++; } @@ -2183,11 +2185,11 @@ void ItemSupplyRing_Update(Item* this) { gPlayer[this->playerNum].trueZpos, BONUS_TEXT_1UP); } else { gPlayer[this->playerNum].heal += 32; - func_enmy_80060F30(gPlayer[this->playerNum].sfxSource, NA_SE_GOLD_RING, this->playerNum); + Object_PlayerSfx(gPlayer[this->playerNum].sfxSource, NA_SE_GOLD_RING, this->playerNum); } } else { gPlayer[this->playerNum].heal += 128; - func_enmy_80060F30(gPlayer[this->playerNum].sfxSource, NA_SE_SHIELD_RING_M, this->playerNum); + Object_PlayerSfx(gPlayer[this->playerNum].sfxSource, NA_SE_SHIELD_RING_M, this->playerNum); } } if ((this->obj.id == OBJ_ITEM_GOLD_RING) && (this->timer_48 == 1)) { @@ -2476,13 +2478,13 @@ void Object_Dying(s32 index, ObjectId objId) { case OBJ_ACTOR_192: func_enmy_8006684C(&gActors[index]); break; - case OBJ_BOSS_306: + case OBJ_BOSS_TI: Titania_801990DC(&gBosses[index]); break; case OBJ_ACTOR_232: Titania_8018B720(&gActors[index]); break; - case OBJ_BOSS_319: + case OBJ_BOSS_VE1: Venom1_80198594(&gBosses[index]); break; } diff --git a/src/engine/fox_enmy2.c b/src/engine/fox_enmy2.c index 333912ac..e24914f2 100644 --- a/src/engine/fox_enmy2.c +++ b/src/engine/fox_enmy2.c @@ -496,8 +496,44 @@ void func_enmy2_8006BF7C(f32 xPos, f32 yPos, f32 zPos) { } } +typedef enum DebrisType { + DEBRIS_0, + DEBRIS_1, + DEBRIS_2, + DEBRIS_3, + DEBRIS_4, + DEBRIS_10, + DEBRIS_34, + DEBRIS_35, + DEBRIS_36, + DEBRIS_37, + DEBRIS_38, // unused + DEBRIS_39, + DEBRIS_40, + DEBRIS_41, + DEBRIS_42, + DEBRIS_43, + DEBRIS_44, + DEBRIS_45, + DEBRIS_46, + DEBRIS_47, + DEBRIS_48, + DEBRIS_49, + DEBRIS_50, + DEBRIS_51, + DEBRIS_52, + DEBRIS_53, + DEBRIS_54, + DEBRIS_55, + DEBRIS_56, + DEBRIS_57, + DEBRIS_58, + DEBRIS_59, + DEBRIS_70 = 70, +} DebrisType; + static Vec3f D_800D0030 = { 0.0f, -10.0f, 0.0f }; // could be in-function -void Actor189_Update(Actor189* this) { +void ActorDebris_Update(ActorDebris* this) { f32 sp4C; f32 sp48; f32 sp44; @@ -534,7 +570,7 @@ void Actor189_Update(Actor189* this) { AUDIO_PLAY_SFX(NA_SE_OB_SAND_BOUND_S, this->sfxSource, 4); break; case 25: - AUDIO_PLAY_SFX(NA_SE_EN_BOSS_ATTACK, this->sfxSource, 4); + AUDIO_PLAY_SFX(NA_SE_OB_SAND_BOUND_M, this->sfxSource, 4); break; } } @@ -753,7 +789,7 @@ void Actor189_Update(Actor189* this) { Object_Kill(&this->obj, this->sfxSource); func_effect_8007A6F0(&this->obj.pos, NA_SE_EN_EXPLOSION_S); } - if (func_play_800A73E4(&sp44, &sp40, this->obj.pos.x, this->obj.pos.y, this->obj.pos.z)) { + if (Play_CheckDynaFloorCollision(&sp44, &sp40, this->obj.pos.x, this->obj.pos.y, this->obj.pos.z)) { func_effect_8007B228(this->obj.pos.x, sp44, this->obj.pos.z, 2.0f); Object_Kill(&this->obj, this->sfxSource); } @@ -856,8 +892,8 @@ void func_enmy2_8006D0F4(Actor* this) { for (j = 0; j < count; j++) { hitbox = (Hitbox*) hitboxData; - if (func_play_800A78C4(hitbox, gScenery[i].obj.pos.x, gScenery[i].obj.pos.y, gScenery[i].obj.pos.z, - temp_fs0, temp_fs1, temp_fs2)) { + if (Play_CheckSingleHitbox(hitbox, gScenery[i].obj.pos.x, gScenery[i].obj.pos.y, + gScenery[i].obj.pos.z, temp_fs0, temp_fs1, temp_fs2)) { D_ctx_80161A7C = 10; D_ctx_80161A80 = 10; D_ctx_80161A84 = 10; @@ -1643,7 +1679,7 @@ void ActorEvent_SpawnTIMine(f32 xPos, f32 yPos, f32 zPos) { void Actor_SetupPlayerShot(PlayerShotId objId, PlayerShot* shot, s32 actorId, f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel, f32 xRot, f32 yRot, f32 zRot) { PlayerShot_Initialize(shot); - shot->obj.status = 1; + shot->obj.status = SHOT_ACTIVE; shot->vel.z = zVel; shot->vel.x = xVel; @@ -1661,10 +1697,10 @@ void Actor_SetupPlayerShot(PlayerShotId objId, PlayerShot* shot, s32 actorId, f3 shot->unk_58 = 1; shot->unk_60 = 0; - if (objId == PLAYERSHOT_9) { - shot->unk_64 = 120; + if (objId == PLAYERSHOT_GFOX_LASER) { + shot->timer = 120; } else { - shot->unk_64 = 30; + shot->timer = 30; } shot->sourceId = actorId + NPC_SHOT_ID; @@ -1690,9 +1726,9 @@ void Actor_SpawnPlayerLaser(s32 actorId, f32 xPos, f32 yPos, f32 zPos, f32 xVel, s32 i; for (i = 0; i < 10; i++) { - if (gPlayerShots[i].obj.status == 0) { - Actor_SetupPlayerShot(PLAYERSHOT_1, &gPlayerShots[i], actorId, xPos, yPos, zPos, xVel, yVel, zVel, xRot, - yRot, zRot); + if (gPlayerShots[i].obj.status == SHOT_FREE) { + Actor_SetupPlayerShot(PLAYERSHOT_TWIN_LASER, &gPlayerShots[i], actorId, xPos, yPos, zPos, xVel, yVel, zVel, + xRot, yRot, zRot); break; } } @@ -1703,9 +1739,9 @@ void Actor_SpawnGreatFoxLaser(s32 actorId, f32 xPos, f32 yPos, f32 zPos, f32 xVe s32 i; for (i = 0; i < 10; i++) { - if (gPlayerShots[i].obj.status == 0) { - Actor_SetupPlayerShot(PLAYERSHOT_9, &gPlayerShots[i], actorId, xPos, yPos, zPos, xVel, yVel, zVel, xRot, - yRot, zRot); + if (gPlayerShots[i].obj.status == SHOT_FREE) { + Actor_SetupPlayerShot(PLAYERSHOT_GFOX_LASER, &gPlayerShots[i], actorId, xPos, yPos, zPos, xVel, yVel, zVel, + xRot, yRot, zRot); break; } } @@ -2003,8 +2039,8 @@ void ActorEvent_8006FEEC(ActorEvent* this) { if (this->health <= 0) { for (i = 3; i < 11; i++) { - Zoness_801900FC(&this->vwork[i], &this->vwork[i + 11], RAND_FLOAT_CENTERED(20.0f), RAND_FLOAT(-10.0f), - RAND_FLOAT(10.0f), 41, this->scale, 200, i); + Zoness_SpawnDebris(&this->vwork[i], &this->vwork[i + 11], RAND_FLOAT_CENTERED(20.0f), + RAND_FLOAT(-10.0f), RAND_FLOAT(10.0f), 41, this->scale, 200, i); } this->itemDrop = DROP_NONE; Actor_Despawn(this); @@ -2117,10 +2153,10 @@ void ActorEvent_800701E0(ActorEvent* this) { if (this->unk_0B4 == EVID_2) { this->timer_04C = 1; if (this->obj.pos.x < this->hitPos.x) { - func_play_800A69F8(1, this->obj.pos.x + 20.0f, this->obj.pos.y, this->obj.pos.z); + Play_SpawnDebris(1, this->obj.pos.x + 20.0f, this->obj.pos.y, this->obj.pos.z); this->fwork[17] = 777.0f; } else { - func_play_800A69F8(0, this->obj.pos.x - 20.0f, this->obj.pos.y, this->obj.pos.z); + Play_SpawnDebris(0, this->obj.pos.x - 20.0f, this->obj.pos.y, this->obj.pos.z); this->fwork[18] = 777.0f; } } @@ -2552,7 +2588,7 @@ void ActorEvent_ProcessTriggers(ActorEvent* this) { case EVC_SHOT_CLOSE_150: for (i = 0; i < ARRAY_COUNT(gPlayerShots); i++) { - if ((gPlayerShots[i].obj.status == 1) && + if ((gPlayerShots[i].obj.status == SHOT_ACTIVE) && (fabsf(this->obj.pos.x - gPlayerShots[i].obj.pos.x) < 150.0f) && (fabsf(this->obj.pos.y - gPlayerShots[i].obj.pos.y) < 150.0f) && (fabsf(this->obj.pos.z - gPlayerShots[i].obj.pos.z) < 150.0f)) { @@ -2564,7 +2600,7 @@ void ActorEvent_ProcessTriggers(ActorEvent* this) { case EVC_SHOT_CLOSE_300: for (i = 0; i < ARRAY_COUNT(gPlayerShots); i++) { - if ((gPlayerShots[i].obj.status == 1) && + if ((gPlayerShots[i].obj.status == SHOT_ACTIVE) && (fabsf(this->obj.pos.x - gPlayerShots[i].obj.pos.x) < 300.0f) && (fabsf(this->obj.pos.y - gPlayerShots[i].obj.pos.y) < 300.0f) && (fabsf(this->obj.pos.z - gPlayerShots[i].obj.pos.z) < 300.0f)) { @@ -3454,7 +3490,7 @@ void ActorEvent_Update(ActorEvent* this) { break; case EVID_46: - if (func_play_800A73E4(&spEC, &spFC, this->obj.pos.x, -100.0f, this->obj.pos.z)) { + if (Play_CheckDynaFloorCollision(&spEC, &spFC, this->obj.pos.x, -100.0f, this->obj.pos.z)) { spF0 = 10.0f; if (Math_SmoothStepToF(&this->obj.pos.y, spEC, 0.5f, 7.0f, 0.0f) >= 0.0f) { @@ -4215,8 +4251,8 @@ void func_enmy2_800763A4(Actor* actor) { func_effect_8007D24C(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 2.2f); } - if ((D_ctx_80178294 != 0) && - func_play_800A73E4(&sp58, &sp5C, actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z)) { + if (gUseDynaFloor && + Play_CheckDynaFloorCollision(&sp58, &sp5C, actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z)) { func_effect_8007BFFC(actor->obj.pos.x, sp58 + 20.0f, actor->obj.pos.z, 0.0f, 0.0f, 0.0f, actor->scale * 3.0f, 5); func_effect_8007B228(actor->obj.pos.x, sp58, actor->obj.pos.z, 2.0f); @@ -4271,11 +4307,11 @@ void func_enmy2_800763A4(Actor* actor) { if ((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->unk_0B4 == EVID_2)) { if (actor->fwork[17] < 360.0f) { - func_play_800A69F8(1, actor->obj.pos.x + 20.0f, actor->obj.pos.y, actor->obj.pos.z); + Play_SpawnDebris(1, actor->obj.pos.x + 20.0f, actor->obj.pos.y, actor->obj.pos.z); actor->fwork[17] = 777.0f; } if (actor->fwork[18] < 360.0f) { - func_play_800A69F8(0, actor->obj.pos.x - 20.0f, actor->obj.pos.y, actor->obj.pos.z); + Play_SpawnDebris(0, actor->obj.pos.x - 20.0f, actor->obj.pos.y, actor->obj.pos.z); actor->fwork[18] = 777.0f; } } @@ -4291,8 +4327,8 @@ void func_enmy2_800763A4(Actor* actor) { 20); func_effect_8007ADF4(actor->obj.pos.x, gGroundHeight, actor->obj.pos.z, 0.1f, 3.0f); } else { - func_beam_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); + PlayerShot_SpawnEffect344(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_effect_8007C120(actor->obj.pos.x, 20.0f, actor->obj.pos.z, 0.0f, 0.0f, 0.0f, actor->scale * 0.05f, 30); @@ -4317,7 +4353,7 @@ void func_enmy2_800763A4(Actor* actor) { for (var_s0 = 0; var_s0 < 4; var_s0++) { if (Rand_ZeroOne() < 0.7f) { if (gCurrentLevel == LEVEL_FORTUNA) { - func_play_800A69F8(4, actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z); + Play_SpawnDebris(4, actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z); } else { func_effect_800794CC(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 1.0f); } @@ -4345,7 +4381,7 @@ void func_enmy2_800763A4(Actor* actor) { for (var_s0 = 0; var_s0 < 4; var_s0++) { if (Rand_ZeroOne() < 0.7f) { if (gCurrentLevel == LEVEL_FORTUNA) { - func_play_800A69F8(4, actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z); + Play_SpawnDebris(4, actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z); } else { func_effect_800794CC(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 1.0f); } diff --git a/src/engine/fox_game.c b/src/engine/fox_game.c index 22116be2..5c9769f7 100644 --- a/src/engine/fox_game.c +++ b/src/engine/fox_game.c @@ -433,21 +433,21 @@ void Game_Update(void) { break; } SEQCMD_SET_SOUND_MODE(soundMode); - gVolumeSettings[0] = gSaveFile.save.data.musicVolume; - gVolumeSettings[1] = gSaveFile.save.data.voiceVolume; - gVolumeSettings[2] = gSaveFile.save.data.sfxVolume; - if (gVolumeSettings[0] > 99) { - gVolumeSettings[0] = 99; + gVolumeSettings[AUDIO_TYPE_MUSIC] = gSaveFile.save.data.musicVolume; + gVolumeSettings[AUDIO_TYPE_VOICE] = gSaveFile.save.data.voiceVolume; + gVolumeSettings[AUDIO_TYPE_SFX] = gSaveFile.save.data.sfxVolume; + if (gVolumeSettings[AUDIO_TYPE_MUSIC] > 99) { + gVolumeSettings[AUDIO_TYPE_MUSIC] = 99; } - if (gVolumeSettings[1] > 99) { - gVolumeSettings[1] = 99; + if (gVolumeSettings[AUDIO_TYPE_VOICE] > 99) { + gVolumeSettings[AUDIO_TYPE_VOICE] = 99; } - if (gVolumeSettings[2] > 99) { - gVolumeSettings[2] = 99; + if (gVolumeSettings[AUDIO_TYPE_SFX] > 99) { + gVolumeSettings[AUDIO_TYPE_SFX] = 99; } - Audio_SetVolume(0, gVolumeSettings[0]); - Audio_SetVolume(1, gVolumeSettings[1]); - Audio_SetVolume(2, gVolumeSettings[2]); + Audio_SetVolume(AUDIO_TYPE_MUSIC, gVolumeSettings[AUDIO_TYPE_MUSIC]); + Audio_SetVolume(AUDIO_TYPE_VOICE, gVolumeSettings[AUDIO_TYPE_VOICE]); + Audio_SetVolume(AUDIO_TYPE_SFX, gVolumeSettings[AUDIO_TYPE_SFX]); break; case GSTATE_TITLE: OvlMenu_CallFunction(OVLCALL_TITLE_UPDATE, NULL); @@ -556,7 +556,7 @@ void Game_Update(void) { } } -Actor* func_game_800A3608(ObjectId objId) { +Actor* Game_SpawnActor(ObjectId objId) { Actor* actor = gActors; s32 i; diff --git a/src/engine/fox_hud.c b/src/engine/fox_hud.c index b159dd8a..01502515 100644 --- a/src/engine/fox_hud.c +++ b/src/engine/fox_hud.c @@ -2668,10 +2668,9 @@ void func_hud_8008C104(u16* srcTexture, u16* dstTexture) { rowPhase = 0.0f; - i = halfHeight - 1; - - while (1) { - if ((rowPhase += 90.0f / halfHeight) > 90.0f) { + for (i = halfHeight - 1; true; i--) { + rowPhase += 90.0f / halfHeight; + if (rowPhase > 90.0f) { break; } @@ -2690,7 +2689,6 @@ void func_hud_8008C104(u16* srcTexture, u16* dstTexture) { buffer[(((halfHeight - i) + (halfHeight - 1)) * width) + j] = src[(((halfHeight - offset) + (halfHeight - 1)) * width) + j]; } - i--; } Texture_Mottle(dst, buffer, 2); } @@ -3423,7 +3421,7 @@ void func_hud_8008EA14(f32 x, f32 y) { break; } - if (gPlayerShots[15].obj.status == OBJ_FREE) { + if (gPlayerShots[15].obj.status == SHOT_FREE) { D_80161770 = D_80161774 = D_80161778 = 255.0f; D_8016177C = D_80161780 = 255.0f; D_80161784 = 0.0f; @@ -3649,7 +3647,7 @@ void HUD_Draw(void) { func_hud_80088970(); } -void func_hud_8008FE78(Boss* boss) { +void HUD_BossFO_Draw(Boss* boss) { RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); gSPDisplayList(gMasterDisp++, D_FO_6003090); RCP_SetupDL_34(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar); @@ -3674,12 +3672,7 @@ void func_hud_8008FFF0(Boss* boss, s32 arg1) { s32 i; f32 temp; s32 temp2; - - while (1) { - if (arg1 < 7000) { - break; - } - + if (arg1 >= 7000) { temp2 = arg1 - 7000; if (temp2 > 1596) { @@ -3703,7 +3696,6 @@ void func_hud_8008FFF0(Boss* boss, s32 arg1) { func_effect_8007BFFC(boss->obj.pos.x + D_800D21C8[i].x, boss->obj.pos.y + D_800D21C8[i].y, boss->obj.pos.z + D_800D21C8[i].z, 0.0f, 0.0f, 0.0f, 7.0f * temp, 10); } - break; } } @@ -3813,7 +3805,7 @@ s32 func_hud_80090200(Boss* boss) { return ret; } -void func_hud_800907C4(Boss* boss) { +void HUD_BossFO_Update(Boss* boss) { switch (boss->state) { case 0: if ((boss->fwork[1] == 255.0f) && (boss->fwork[2] == 212.0f)) { @@ -5215,7 +5207,7 @@ void HUD_AquasStart(Player* player) { player->cam.at.x = player->pos.x * (600.0f / player->pathWidth); player->cam.at.y = player->pos.y * (1050.0f / player->pathHeight); - player->cam.at.y += player->unk_060 * 10.0f; + player->cam.at.y += player->xRock * 10.0f; player->pos.z += 1000.0f; player->camRoll = 0.0f; @@ -5238,7 +5230,7 @@ void HUD_AquasStart(Player* player) { player->cam.at.z = gCsCamAtZ = 0.0f; case 6: - player->unk_060 = SIN_DEG(player->rockPhase * 0.7f) * 0.5f; + player->xRock = SIN_DEG(player->rockPhase * 0.7f) * 0.5f; player->bobPhase += 10.0f; player->rockPhase += 8.0f; player->yBob = -SIN_DEG(player->bobPhase) * 0.5f; @@ -5250,7 +5242,7 @@ void HUD_AquasStart(Player* player) { gCsCamAtX = player->pos.x * (600.0f / player->pathWidth); gCsCamAtY = player->pos.y * (750.0f / player->pathHeight); - gCsCamAtY += player->unk_060 * 10.0f; + gCsCamAtY += player->xRock * 10.0f; Math_SmoothStepToF(&player->pos.z, 0.0f, 0.1f, 40.0f, 0.1f); @@ -5957,7 +5949,7 @@ void HUD_AquasComplete(Player* player) { player->bankAngle = player->rot.z + player->zRotBank + player->zRotBarrelRoll; - player->unk_060 = SIN_DEG(player->rockPhase * 0.7f) * 0.5f; + player->xRock = SIN_DEG(player->rockPhase * 0.7f) * 0.5f; player->bobPhase += 10.0f; player->rockPhase += 8.0f; player->yBob = -SIN_DEG(player->bobPhase) * 0.5f; @@ -6072,7 +6064,7 @@ void func_hud_80096A74(Player* player) { player->boostMeter = 1; player->csTimer = 60; - func_play_800B2574(player); + Player_ArwingBoost(player); gControllerRumbleFlags[0] = 0; gControllerHold[player->num].button = button; diff --git a/src/engine/fox_play.c b/src/engine/fox_play.c index fe62bd11..f8efcba7 100644 --- a/src/engine/fox_play.c +++ b/src/engine/fox_play.c @@ -25,9 +25,9 @@ UNK_TYPE D_800D2F50 = 0; // unused s32 D_800D2F54 = 0; f32 D_800D2F58 = 0.0f; -f32 D_800D2F5C = 0.0f; -f32 D_800D2F60 = 0.0f; -f32 D_800D2F64 = 0.0f; +f32 sMusicVolume = 0.0f; +f32 sVoiceVolume = 0.0f; +f32 sSfxVolume = 0.0f; u8 gVenomHardClear = 0; u8 D_800D2F6C[20] = { PLANET_CORNERIA, PLANET_METEO, PLANET_SECTOR_X, PLANET_AREA_6, PLANET_AREA_6, @@ -56,8 +56,9 @@ bool Play_CheckMedalStatus(u16 hitCount) { } } -void func_play_800A3FB0(void) { - D_800D2F64 = 0.0f; +// This sets a variable related to SFX volume to 0, but that variable is never read from +void Play_dummy_MuteSfx(void) { + sSfxVolume = 0.0f; } s32 Play_GetMaxShields(void) { @@ -67,7 +68,7 @@ s32 Play_GetMaxShields(void) { return 255; } -void func_play_800A3FEC(void) { +void Play_UpdateDynaFloor(void) { Vec3f spC4; Vec3f spB8; Vtx* spB4; @@ -142,15 +143,15 @@ void func_play_800A3FEC(void) { } } -void func_play_800A4460(Player* player) { +void Player_WingEffects(Player* player) { if ((gCurrentLevel == LEVEL_VENOM_ANDROSS) && (gBosses[0].obj.status == OBJ_ACTIVE) && (gBosses[0].state == 17)) { - player->unk_060 = SIN_DEG(player->rockPhase * 0.7f) * 0.5f; + player->xRock = SIN_DEG(player->rockPhase * 0.7f) * 0.5f; player->bobPhase += 13.0f; player->rockPhase += 20.0f; player->yBob = -SIN_DEG(player->bobPhase) * 5.0f; player->rockAngle = SIN_DEG(player->rockPhase) * 10.0f; } else { - player->unk_060 = SIN_DEG(player->rockPhase * 0.7f) * 0.5f; + player->xRock = SIN_DEG(player->rockPhase * 0.7f) * 0.5f; player->bobPhase += 10.0f; player->rockPhase += 8.0f; if ((gLevelType == LEVELTYPE_PLANET) || ((player->cockpitView == true) && (gLevelMode == LEVELMODE_ON_RAILS))) { @@ -164,7 +165,7 @@ void func_play_800A4460(Player* player) { } } -void func_play_800A46A0(Player* player) { +void Player_DamageEffects(Player* player) { s32 var_v1; f32 sp40; @@ -228,7 +229,7 @@ void func_play_800A46A0(Player* player) { } } -void func_play_800A4C40(Player* player) { +void Player_WaterEffects(Player* player) { Vec3f sp54 = { -65.0f, -22.0f, -65.0f }; Vec3f sp48 = { 65.0f, -22.0f, -65.0f }; Vec3f sp3C; @@ -273,7 +274,7 @@ void Scenery360_Initialize(Scenery360* scenery360) { } } -void func_play_800A4F7C(void) { +void Play_InitVsStage(void) { s16 temp_v0; s16 temp_v0_2; s32 var_s1; @@ -330,10 +331,10 @@ void func_play_800A4F7C(void) { } } -void func_play_800A5330(void) { +void Play_dummy_800A5330(void) { } -void func_play_800A5338(void) { +void Play_Setup360_CO(void) { Sprite* sprite; Scenery360* scenery360; s32 i; @@ -345,7 +346,7 @@ void func_play_800A5338(void) { if (gLevelObjects[j].id <= OBJ_INVALID) { break; } - if (gLevelObjects[j].id < OBJ_SPRITE_CO_POLE) { + if (gLevelObjects[j].id < OBJ_SCENERY_MAX) { Scenery360_Initialize(scenery360); scenery360->obj.status = OBJ_ACTIVE; scenery360->obj.id = gLevelObjects[j].id; @@ -386,7 +387,7 @@ void func_play_800A5338(void) { Object_SetInfo(&gBosses[i].info, gBosses[i].obj.id); } -void func_play_800A55B0(void) { +void Play_Setup360_SY(void) { Scenery360* scenery360; s32 i; s32 j; @@ -397,7 +398,7 @@ void func_play_800A55B0(void) { if (gLevelObjects[j].id <= OBJ_INVALID) { break; } - if (gLevelObjects[j].id < OBJ_SPRITE_CO_POLE) { + if (gLevelObjects[j].id < OBJ_SCENERY_MAX) { Scenery360_Initialize(scenery360); scenery360->obj.status = OBJ_ACTIVE; scenery360->obj.id = gLevelObjects[j].id; @@ -415,7 +416,7 @@ void func_play_800A55B0(void) { gBosses[i].obj.pos.x = 0.0f; gBosses[i].obj.pos.y = 0.0f; gBosses[i].obj.pos.z = 0.0f; - gBosses[i].obj.id = OBJ_BOSS_314; + gBosses[i].obj.id = OBJ_BOSS_SY; Object_SetInfo(&gBosses[i].info, gBosses[i].obj.id); i = 1; Boss_Initialize(&gBosses[i]); @@ -423,7 +424,7 @@ void func_play_800A55B0(void) { gBosses[i].obj.pos.x = 0.0f; gBosses[i].obj.pos.y = 0.0f; gBosses[i].obj.pos.z = 0.0f; - gBosses[i].obj.id = OBJ_BOSS_314; + gBosses[i].obj.id = OBJ_BOSS_SY; Object_SetInfo(&gBosses[i].info, gBosses[i].obj.id); i = 2; Boss_Initialize(&gBosses[i]); @@ -431,11 +432,11 @@ void func_play_800A55B0(void) { gBosses[i].obj.pos.x = 0.0f; gBosses[i].obj.pos.y = 0.0f; gBosses[i].obj.pos.z = 0.0f; - gBosses[i].obj.id = OBJ_BOSS_314; + gBosses[i].obj.id = OBJ_BOSS_SY; Object_SetInfo(&gBosses[i].info, gBosses[i].obj.id); } -void func_play_800A57E0(void) { +void Play_Setup360_AND(void) { s32 i = 0; // fake? Boss_Initialize(&gBosses[i]); @@ -479,7 +480,7 @@ Environment* D_800D2F98[21] = { &D_FO_600EA90, NULL, &D_KA_6011000, &D_BO_600FF30, &D_SZ_6006E70, &D_VE2_6014D50, &D_versus_302DD70, }; -void func_play_800A594C(void) { +void Play_InitEnvironment(void) { if (gVersusMode) { switch (gVersusStage) { case 0: @@ -528,7 +529,7 @@ void func_play_800A594C(void) { gFovY = 45.0f; } -void Play_SetupStarfield(void) { +void Play_GenerateStarfield(void) { u32 i; MEM_ARRAY_ALLOCATE(gStarOffsetsX, 1000); @@ -542,8 +543,8 @@ void Play_SetupStarfield(void) { } } -void func_play_800A5EBC(void) { - Play_SetupStarfield(); +void Play_SetupStarfield(void) { + Play_GenerateStarfield(); gGroundHeight = -25000.0f; gStarCount = 600; if (gCurrentLevel == LEVEL_AREA_6) { @@ -571,7 +572,7 @@ void func_play_800A5EBC(void) { } } -void func_play_800A5FA0(f32* sfxSrc, u32 sfxId, s32 mode) { +void Player_PlaySfx(f32* sfxSrc, u32 sfxId, s32 mode) { if (!gVersusMode) { AUDIO_PLAY_SFX(sfxId, sfxSrc, 0); } else { @@ -579,11 +580,11 @@ void func_play_800A5FA0(f32* sfxSrc, u32 sfxId, s32 mode) { } } -void func_play_800A6028(f32* sfxSrc, u32 sfxId) { +void Play_PlaySfxFirstPlayer(f32* sfxSrc, u32 sfxId) { AUDIO_PLAY_SFX(sfxId, sfxSrc, 0); } -void func_play_800A6070(f32* sfxSrc, u32 sfxId) { +void Play_PlaySfxNoPlayer(f32* sfxSrc, u32 sfxId) { AUDIO_PLAY_SFX(sfxId, sfxSrc, 4); } @@ -698,13 +699,13 @@ void Play_UpdateFillScreen(void) { } } -void func_play_800A668C(f32 xPos, f32 yPos, f32 zPos) { +void Play_SpawnHitmark(f32 xPos, f32 yPos, f32 zPos) { s32 i; for (i = 0; i < ARRAY_COUNT(gPlayerShots); i++) { - if (gPlayerShots[i].obj.status == 0) { + if (gPlayerShots[i].obj.status == SHOT_FREE) { PlayerShot_Initialize(&gPlayerShots[i]); - gPlayerShots[i].obj.status = 2; + gPlayerShots[i].obj.status = SHOT_HITMARK; gPlayerShots[i].unk_60 = 0; gPlayerShots[i].obj.pos.x = xPos; gPlayerShots[i].obj.pos.y = yPos; @@ -714,10 +715,10 @@ void func_play_800A668C(f32 xPos, f32 yPos, f32 zPos) { } } -void func_play_800A670C(Actor* actor, s32 state, f32 xPos, f32 yPos, f32 zPos) { +void Play_SetupDebris(Actor* actor, s32 state, f32 xPos, f32 yPos, f32 zPos) { Actor_Initialize(actor); actor->obj.status = OBJ_INIT; - actor->obj.id = OBJ_ACTOR_189; + actor->obj.id = OBJ_ACTOR_DEBRIS; actor->state = state; actor->obj.pos.x = xPos; actor->obj.pos.y = yPos; @@ -758,21 +759,21 @@ void func_play_800A670C(Actor* actor, s32 state, f32 xPos, f32 yPos, f32 zPos) { Object_SetInfo(&actor->info, actor->obj.id); } -void func_play_800A69F8(s32 state, f32 xPos, f32 yPos, f32 zPos) { +void Play_SpawnDebris(s32 state, f32 xPos, f32 yPos, f32 zPos) { s32 i; if (!gVersusMode) { for (i = ARRAY_COUNT(gActors) - 1; i >= 10; i--) { if (gActors[i].obj.status == OBJ_FREE) { - func_play_800A670C(&gActors[i], state, xPos, yPos, zPos); + Play_SetupDebris(&gActors[i], state, xPos, yPos, zPos); break; } } } } -// has to be int. s32 and u32 don't match -bool func_play_800A6A74(void) { +// Unused. Were gold rings in vs mode? +bool Player_CheckAllGoldRings(void) { return gGoldRingCount[0] && gGoldRingCount[1] && gGoldRingCount[2] && gGoldRingCount[3]; } @@ -783,11 +784,11 @@ void Player_DamageWings(Player* player, s32 side, s32 damage) { if (player->wings.rightState == WINGSTATE_INTACT) { gRightWingHealth[player->num] -= damage; if (gRightWingHealth[player->num] <= 0) { - func_play_800A69F8(1, player->hit1.x, player->hit1.y, player->hit1.z); + Play_SpawnDebris(1, player->hit1.x, player->hit1.y, player->hit1.z); player->wings.rightState = WINGSTATE_BROKEN; func_effect_8007D0E0(player->hit1.x, player->hit1.y, player->hit1.z, 2.0f); gRightWingDebrisTimer[player->num] = 50; - func_play_800A5FA0(player->sfxSource, NA_SE_ARWING_WING_BROKEN, player->num); + Player_PlaySfx(player->sfxSource, NA_SE_ARWING_WING_BROKEN, player->num); if (gAllRangeWingRepairTimer == 0) { gAllRangeWingRepairTimer = 1000; } @@ -798,11 +799,11 @@ void Player_DamageWings(Player* player, s32 side, s32 damage) { if (player->wings.leftState == WINGSTATE_INTACT) { gLeftWingHealth[player->num] -= damage; if (gLeftWingHealth[player->num] <= 0) { - func_play_800A69F8(0, player->hit2.x, player->hit2.y, player->hit2.z); + Play_SpawnDebris(0, player->hit2.x, player->hit2.y, player->hit2.z); player->wings.leftState = WINGSTATE_BROKEN; func_effect_8007D0E0(player->hit2.x, player->hit2.y, player->hit2.z, 2.0f); gLeftWingDebrisTimer[player->num] = 50; - func_play_800A5FA0(player->sfxSource, NA_SE_ARWING_WING_BROKEN, player->num); + Player_PlaySfx(player->sfxSource, NA_SE_ARWING_WING_BROKEN, player->num); if (gAllRangeWingRepairTimer == 0) { gAllRangeWingRepairTimer = 1000; } @@ -843,7 +844,7 @@ void Player_ApplyDamage(Player* player, s32 direction, s32 damage) { player->timer_498 = 20; } if (gHasShield[player->num]) { - func_play_800A5FA0(player->sfxSource, NA_SE_DAMAGE_S, player->num); + Player_PlaySfx(player->sfxSource, NA_SE_DAMAGE_S, player->num); gShieldTimer[player->num] = 5; gShieldAlpha[player->num] = 2.0f; player->damage = 0; @@ -856,9 +857,9 @@ void Player_ApplyDamage(Player* player, s32 direction, s32 damage) { } } if (damage < 25) { - func_play_800A5FA0(player->sfxSource, NA_SE_DAMAGE_S, player->num); + Player_PlaySfx(player->sfxSource, NA_SE_DAMAGE_S, player->num); } else { - func_play_800A5FA0(player->sfxSource, NA_SE_DAMAGE_L, player->num); + Player_PlaySfx(player->sfxSource, NA_SE_DAMAGE_L, player->num); } } Matrix_RotateY(gCalcMatrix, player->yRot_114 * M_DTOR, MTXF_NEW); @@ -879,7 +880,7 @@ void Player_ApplyDamage(Player* player, s32 direction, s32 damage) { player->knockback.x = sp38.x; player->knockback.y = sp38.y; player->knockback.z = sp38.z; - func_play_800A668C(player->hit1.x - player->vel.x, player->hit1.y, player->hit1.z - player->vel.z); + Play_SpawnHitmark(player->hit1.x - player->vel.x, player->hit1.y, player->hit1.z - player->vel.z); Player_DamageWings(player, 1, 20); break; case 2: @@ -890,12 +891,12 @@ void Player_ApplyDamage(Player* player, s32 direction, s32 damage) { player->knockback.x = sp38.x; player->knockback.y = sp38.y; player->knockback.z = sp38.z; - func_play_800A668C(player->hit2.x - player->vel.x, player->hit2.y, player->hit2.z - player->vel.z); + Play_SpawnHitmark(player->hit2.x - player->vel.x, player->hit2.y, player->hit2.z - player->vel.z); Player_DamageWings(player, 2, 20); break; case 3: player->timer_224 = 20; - func_play_800A668C(player->hit4.x - player->vel.x, player->hit4.y, player->hit4.z - player->vel.z); + Play_SpawnHitmark(player->hit4.x - player->vel.x, player->hit4.y, player->hit4.z - player->vel.z); if (player->form != FORM_LANDMASTER) { sp44.x = 0.0f; sp44.y = -sp34; @@ -912,7 +913,7 @@ void Player_ApplyDamage(Player* player, s32 direction, s32 damage) { break; case 4: player->timer_224 = 20; - func_play_800A668C(player->hit3.x - player->vel.x, player->hit3.y, player->hit3.z - player->vel.z); + Play_SpawnHitmark(player->hit3.x - player->vel.x, player->hit3.y, player->hit3.z - player->vel.z); sp44.x = 0.0f; sp44.y = sp34; Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp44, &sp38); @@ -940,7 +941,7 @@ f32 D_800D2FEC[5] = { 0.0f, 0.5f, -0.5f, 0.5f, -0.5f, }; -void func_play_800A729C(Player* player, u32 arg1, f32 arg2, f32 arg3) { +void Player_GroundedCollision(Player* player, u32 arg1, f32 arg2, f32 arg3) { player->unk_21C = arg1; switch (arg1) { case 1: @@ -970,7 +971,7 @@ void func_play_800A729C(Player* player, u32 arg1, f32 arg2, f32 arg3) { } } -bool func_play_800A73E4(f32* arg0, s32* arg1, f32 xPos, f32 yPos, f32 zPos) { +bool Play_CheckDynaFloorCollision(f32* arg0, s32* arg1, f32 xPos, f32 yPos, f32 zPos) { Vtx* spA4; u16* spA0; s32 sp9C; @@ -1060,7 +1061,7 @@ bool func_play_800A73E4(f32* arg0, s32* arg1, f32 xPos, f32 yPos, f32 zPos) { return false; } -bool func_play_800A78C4(Hitbox* hitbox, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6) { +bool Play_CheckSingleHitbox(Hitbox* hitbox, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6) { if ((fabsf(hitbox->z.offset + arg3 - arg6) < (hitbox->z.size + D_ctx_8017853C)) && (fabsf(hitbox->x.offset + arg1 - arg4) < (hitbox->x.size + D_ctx_8017853C)) && (fabsf(hitbox->y.offset + arg2 - arg5) < (hitbox->y.size + D_ctx_8017853C))) { @@ -1069,8 +1070,8 @@ bool func_play_800A78C4(Hitbox* hitbox, f32 arg1, f32 arg2, f32 arg3, f32 arg4, return false; } -s32 func_play_800A7974(Player* player, f32* hitboxData, s32* index, f32 xPos, f32 yPos, f32 zPos, f32 xRot, f32 yRot, - f32 zRot, f32 arg9, f32 argA, f32 argB) { +s32 Player_CheckHitboxCollision(Player* player, f32* hitboxData, s32* index, f32 xPos, f32 yPos, f32 zPos, f32 xRot, + f32 yRot, f32 zRot, f32 arg9, f32 argA, f32 argB) { s32 count; s32 i; f32 var_fv0; @@ -1120,7 +1121,7 @@ s32 func_play_800A7974(Player* player, f32* hitboxData, s32* index, f32 xPos, f3 var_fv1 = sp88.y + yPos; var_fa0 = sp88.z + zPos; } - if (func_play_800A78C4((Hitbox*) hitboxData, xPos, yPos, zPos, var_fv0, var_fv1, var_fa0)) { + if (Play_CheckSingleHitbox((Hitbox*) hitboxData, xPos, yPos, zPos, var_fv0, var_fv1, var_fa0)) { *index = i + 1; if (hitboxData[-1] == HITBOX_SHADOW) { return -1; @@ -1144,7 +1145,7 @@ s32 func_play_800A7974(Player* player, f32* hitboxData, s32* index, f32 xPos, f3 var_fv1 = sp88.y + yPos; var_fa0 = sp88.z + zPos; } - if (func_play_800A78C4((Hitbox*) hitboxData, xPos, yPos, zPos, var_fv0, var_fv1, var_fa0)) { + if (Play_CheckSingleHitbox((Hitbox*) hitboxData, xPos, yPos, zPos, var_fv0, var_fv1, var_fa0)) { *index = i + 1; return 4; } @@ -1161,7 +1162,7 @@ s32 func_play_800A7974(Player* player, f32* hitboxData, s32* index, f32 xPos, f3 var_fv1 = sp88.y + yPos; var_fa0 = sp88.z + zPos; } - if (func_play_800A78C4((Hitbox*) hitboxData, xPos, yPos, zPos, var_fv0, var_fv1, var_fa0)) { + if (Play_CheckSingleHitbox((Hitbox*) hitboxData, xPos, yPos, zPos, var_fv0, var_fv1, var_fa0)) { *index = i + 1; return 1; } @@ -1178,7 +1179,7 @@ s32 func_play_800A7974(Player* player, f32* hitboxData, s32* index, f32 xPos, f3 var_fv1 = sp88.y + yPos; var_fa0 = sp88.z + zPos; } - if (func_play_800A78C4((Hitbox*) hitboxData, xPos, yPos, zPos, var_fv0, var_fv1, var_fa0)) { + if (Play_CheckSingleHitbox((Hitbox*) hitboxData, xPos, yPos, zPos, var_fv0, var_fv1, var_fa0)) { *index = i + 1; return 2; } @@ -1188,8 +1189,8 @@ s32 func_play_800A7974(Player* player, f32* hitboxData, s32* index, f32 xPos, f3 return 0; } -bool func_play_800A8054(ObjectId objId, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, Vec3f* arg7, - Vec3f* arg8) { +bool Play_CheckPolyCollision(ObjectId objId, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, Vec3f* arg7, + Vec3f* arg8) { Vec3f sp54; Vec3f sp48; Vec3f sp3C; @@ -1220,10 +1221,10 @@ bool func_play_800A8054(ObjectId objId, f32 arg1, f32 arg2, f32 arg3, f32 arg4, case OBJ_SCENERY_150: colId = COL1_6; break; - case OBJ_BOSS_308: + case OBJ_BOSS_FO: colId = COL1_4; break; - case OBJ_BOSS_312: + case OBJ_BOSS_VE2: colId = COL1_9; break; case OBJ_BOSS_309: @@ -1232,7 +1233,7 @@ bool func_play_800A8054(ObjectId objId, f32 arg1, f32 arg2, f32 arg3, f32 arg4, case ACTOR_EVENT_ID: colId = COL1_3; break; - case OBJ_BOSS_313: + case OBJ_BOSS_SZ: colId = COL1_8; break; case OBJ_SCENERY_ME_TUNNEL: @@ -1374,7 +1375,8 @@ bool func_play_800A8054(ObjectId objId, f32 arg1, f32 arg2, f32 arg3, f32 arg4, } // arg5 could be Vec3f (not Vec3f*) -s32 func_play_800A8304(Player* player, ObjectId objId, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7) { +s32 Player_CheckPolyCollision(Player* player, ObjectId objId, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, + f32 arg7) { Vec3f sp84; Vec3f sp78; Vec3f sp6C; @@ -1394,8 +1396,8 @@ s32 func_play_800A8304(Player* player, ObjectId objId, f32 arg2, f32 arg3, f32 a sp78.y = player->pos.y - sp84.y; sp78.z = player->trueZpos - sp84.z; Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp78, &sp6C); - if (func_play_800A8054(objId, sp84.x, sp84.y, sp84.z, sp6C.x + sp84.x, sp6C.y + sp84.y, sp6C.z + sp84.z, &sp60, - &sp54)) { + if (Play_CheckPolyCollision(objId, sp84.x, sp84.y, sp84.z, sp6C.x + sp84.x, sp6C.y + sp84.y, sp6C.z + sp84.z, + &sp60, &sp54)) { player->pos.y = sp60.y; player->rot_104.x = Math_RadToDeg(sp60.x); player->rot_104.z = Math_RadToDeg(sp60.z); @@ -1405,45 +1407,46 @@ s32 func_play_800A8304(Player* player, ObjectId objId, f32 arg2, f32 arg3, f32 a } player->grounded = true; return 5; + } else { + return 0; } - return 0; } sp78.x = player->hit3.x - sp84.x; sp78.y = player->hit3.y - sp84.y; sp78.z = player->hit3.z - sp84.z; Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp78, &sp6C); - if (func_play_800A8054(objId, sp84.x, sp84.y, sp84.z, sp6C.x + sp84.x, sp6C.y + sp84.y, sp6C.z + sp84.z, &sp60, - &sp54)) { + if (Play_CheckPolyCollision(objId, sp84.x, sp84.y, sp84.z, sp6C.x + sp84.x, sp6C.y + sp84.y, sp6C.z + sp84.z, &sp60, + &sp54)) { return 3; } sp78.x = player->hit4.x - sp84.x; sp78.y = player->hit4.y - sp84.y; sp78.z = player->hit4.z - sp84.z; Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp78, &sp6C); - if (func_play_800A8054(objId, sp84.x, sp84.y, sp84.z, sp6C.x + sp84.x, sp6C.y + sp84.y, sp6C.z + sp84.z, &sp60, - &sp54)) { + if (Play_CheckPolyCollision(objId, sp84.x, sp84.y, sp84.z, sp6C.x + sp84.x, sp6C.y + sp84.y, sp6C.z + sp84.z, &sp60, + &sp54)) { return 4; } sp78.x = player->hit1.x - sp84.x; sp78.y = player->hit1.y - sp84.y; sp78.z = player->hit1.z - sp84.z; Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp78, &sp6C); - if (func_play_800A8054(objId, sp84.x, sp84.y, sp84.z, sp6C.x + sp84.x, sp6C.y + sp84.y, sp6C.z + sp84.z, &sp60, - &sp54)) { + if (Play_CheckPolyCollision(objId, sp84.x, sp84.y, sp84.z, sp6C.x + sp84.x, sp6C.y + sp84.y, sp6C.z + sp84.z, &sp60, + &sp54)) { return 1; } sp78.x = player->hit2.x - sp84.x; sp78.y = player->hit2.y - sp84.y; sp78.z = player->hit2.z - sp84.z; Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp78, &sp6C); - if (func_play_800A8054(objId, sp84.x, sp84.y, sp84.z, sp6C.x + sp84.x, sp6C.y + sp84.y, sp6C.z + sp84.z, &sp60, - &sp54)) { + if (Play_CheckPolyCollision(objId, sp84.x, sp84.y, sp84.z, sp6C.x + sp84.x, sp6C.y + sp84.y, sp6C.z + sp84.z, &sp60, + &sp54)) { return 2; } return 0; } -void func_play_800A86E4(Player* player) { +void Player_CheckItemCollect(Player* player) { s32 i; Item* item; s32 sp6C; @@ -1452,8 +1455,8 @@ void func_play_800A86E4(Player* player) { if ((item->obj.status == OBJ_ACTIVE) && ((player->state_1C8 == PLAYERSTATE_1C8_ACTIVE) || (player->state_1C8 == PLAYERSTATE_1C8_U_TURN)) && (item->timer_4A == 0) && - func_play_800A7974(player, item->info.hitbox, &sp6C, item->obj.pos.x, item->obj.pos.y, item->obj.pos.z, - 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f)) { + Player_CheckHitboxCollision(player, item->info.hitbox, &sp6C, item->obj.pos.x, item->obj.pos.y, + item->obj.pos.z, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f)) { item->collected = true; item->playerNum = gPlayerNum; } @@ -1483,15 +1486,15 @@ Vec3f D_800D30B8[4] = { { 20.0f, 0.0f, 0.0f }, }; -void func_play_800A8804(Player* playerA, Player* playerB) { +void Player_Collide(Player* playerA, Player* playerB) { if (playerA->timer_498 == 0) { Player_ApplyDamage(playerA, 0, D_800D3000[playerA->form][playerB->form]); - playerA->unk_288 = playerB->num + 1; - playerB->unk_288 = playerA->num + 1; + playerA->attacker = playerB->num + 1; + playerB->attacker = playerA->num + 1; } } -void func_play_800A887C(Player* player) { +void Player_UpdateHitbox(Player* player) { Vec3f sp3C; Matrix_Translate(gCalcMatrix, player->pos.x, player->pos.y, player->trueZpos, MTXF_NEW); @@ -1558,7 +1561,7 @@ void func_play_800A887C(Player* player) { } } -void func_play_800A8BA4(Player* player) { +void Player_CollisionCheck(Player* player) { s32 i; s32 j; s32 temp_v0; @@ -1581,7 +1584,7 @@ void func_play_800A8BA4(Player* player) { s32 sp90; f32 sp8C; - func_play_800A887C(player); + Player_UpdateHitbox(player); if (gGroundType == 4) { switch (player->form) { case FORM_LANDMASTER: @@ -1643,19 +1646,20 @@ void func_play_800A8BA4(Player* player) { (scenery360->obj.id == OBJ_SCENERY_150) || (scenery360->obj.id == OBJ_SCENERY_148) || (scenery360->obj.id == OBJ_SCENERY_160) || (scenery360->obj.id == OBJ_SCENERY_1) || (scenery360->obj.id == OBJ_SCENERY_3) || (scenery360->obj.id == OBJ_SCENERY_140)) { - temp_v0 = - func_play_800A8304(player, scenery360->obj.id, scenery360->obj.pos.x, - scenery360->obj.pos.y, scenery360->obj.pos.z, scenery360->obj.rot.x, - scenery360->obj.rot.y, scenery360->obj.rot.z); + temp_v0 = Player_CheckPolyCollision(player, scenery360->obj.id, scenery360->obj.pos.x, + scenery360->obj.pos.y, scenery360->obj.pos.z, + scenery360->obj.rot.x, scenery360->obj.rot.y, + scenery360->obj.rot.z); if (temp_v0 != 0) { if ((player->form == FORM_LANDMASTER) || (player->form == FORM_ON_FOOT)) { - func_play_800A729C(player, temp_v0, scenery360->obj.pos.x, scenery360->obj.pos.z); + Player_GroundedCollision(player, temp_v0, scenery360->obj.pos.x, + scenery360->obj.pos.z); } else { Player_ApplyDamage(player, temp_v0, scenery360->info.damage); } } if ((gCurrentLevel == LEVEL_FORTUNA) || (gCurrentLevel == LEVEL_VENOM_2)) { - temp_v0 = func_play_800A7974( + temp_v0 = Player_CheckHitboxCollision( player, scenery360->info.hitbox, &sp98, scenery360->obj.pos.x, scenery360->obj.pos.y, scenery360->obj.pos.z, scenery360->obj.rot.x, scenery360->obj.rot.y, scenery360->obj.rot.z, 0.0f, 0.0f, 0.0f); @@ -1670,10 +1674,10 @@ void func_play_800A8BA4(Player* player) { } } } else { - temp_v0 = - func_play_800A7974(player, scenery360->info.hitbox, &sp98, scenery360->obj.pos.x, - scenery360->obj.pos.y, scenery360->obj.pos.z, scenery360->obj.rot.x, - scenery360->obj.rot.y, scenery360->obj.rot.z, 0.0f, 0.0f, 0.0f); + temp_v0 = Player_CheckHitboxCollision( + player, scenery360->info.hitbox, &sp98, scenery360->obj.pos.x, scenery360->obj.pos.y, + scenery360->obj.pos.z, scenery360->obj.rot.x, scenery360->obj.rot.y, + scenery360->obj.rot.z, 0.0f, 0.0f, 0.0f); if (temp_v0 != 0) { if (temp_v0 < 0) { if (player->whooshTimer == 0) { @@ -1684,7 +1688,8 @@ void func_play_800A8BA4(Player* player) { player->whooshTimer = 4; } } else if ((player->form == FORM_LANDMASTER) || (player->form == FORM_ON_FOOT)) { - func_play_800A729C(player, temp_v0, scenery360->obj.pos.x, scenery360->obj.pos.z); + Player_GroundedCollision(player, temp_v0, scenery360->obj.pos.x, + scenery360->obj.pos.z); } else { Player_ApplyDamage(player, temp_v0, scenery360->info.damage); if (scenery360->obj.id == OBJ_SCENERY_131) { @@ -1751,9 +1756,9 @@ void func_play_800A8BA4(Player* player) { spC8.x = scenery->obj.pos.x - player->pos.x; spC8.z = scenery->obj.pos.z - player->trueZpos; if (sqrtf(SQ(spC8.x) + SQ(spC8.z)) < 1100.0f) { - temp_v0 = func_play_800A8304(player, scenery->obj.id, scenery->obj.pos.x, - scenery->obj.pos.y, scenery->obj.pos.z, scenery->obj.rot.x, - scenery->obj.rot.y, scenery->obj.rot.z); + temp_v0 = Player_CheckPolyCollision( + player, scenery->obj.id, scenery->obj.pos.x, scenery->obj.pos.y, scenery->obj.pos.z, + scenery->obj.rot.x, scenery->obj.rot.y, scenery->obj.rot.z); if (temp_v0 != 0) { Player_ApplyDamage(player, temp_v0, scenery->info.damage); } @@ -1763,9 +1768,9 @@ void func_play_800A8BA4(Player* player) { if (scenery->info.action == (ObjectFunc) func_enmy_80066EA8) { padB0 = 0.0f; } - temp_v0 = func_play_800A7974(player, scenery->info.hitbox, &sp98, scenery->obj.pos.x, - scenery->obj.pos.y, scenery->obj.pos.z, scenery->obj.rot.x, padB0, - scenery->obj.rot.z, 0.0f, 0.0f, 0.0f); + temp_v0 = Player_CheckHitboxCollision( + player, scenery->info.hitbox, &sp98, scenery->obj.pos.x, scenery->obj.pos.y, + scenery->obj.pos.z, scenery->obj.rot.x, padB0, scenery->obj.rot.z, 0.0f, 0.0f, 0.0f); if (temp_v0 != 0) { if (temp_v0 < 0) { if (temp_v0 == -1) { @@ -1835,10 +1840,11 @@ void func_play_800A8BA4(Player* player) { } for (i = 0, boss = gBosses; i < ARRAY_COUNT(gBosses); i++, boss++) { if (boss->obj.status == OBJ_ACTIVE) { - if ((boss->obj.id == OBJ_BOSS_312) || (boss->obj.id == OBJ_BOSS_308) || - (boss->obj.id == OBJ_BOSS_313) || (boss->obj.id == OBJ_BOSS_309)) { - temp_v0 = func_play_800A8304(player, boss->obj.id, boss->obj.pos.x, boss->obj.pos.y, - boss->obj.pos.z, boss->obj.rot.x, boss->obj.rot.y, boss->obj.rot.z); + if ((boss->obj.id == OBJ_BOSS_VE2) || (boss->obj.id == OBJ_BOSS_FO) || (boss->obj.id == OBJ_BOSS_SZ) || + (boss->obj.id == OBJ_BOSS_309)) { + temp_v0 = + Player_CheckPolyCollision(player, boss->obj.id, boss->obj.pos.x, boss->obj.pos.y, + boss->obj.pos.z, boss->obj.rot.x, boss->obj.rot.y, boss->obj.rot.z); if (temp_v0 != 0) { Player_ApplyDamage(player, temp_v0, boss->info.damage); break; @@ -1866,7 +1872,7 @@ void func_play_800A8BA4(Player* player) { break; } } else { - if (boss->obj.id == OBJ_BOSS_316) { + if (boss->obj.id == OBJ_BOSS_KA) { spfD4.x = fabsf(boss->obj.pos.x - player->pos.x); spfD4.y = fabsf(boss->obj.pos.y - 300.0f - player->pos.y) * 7.42f; spfD4.z = fabsf(boss->obj.pos.z - player->trueZpos); @@ -1874,9 +1880,9 @@ void func_play_800A8BA4(Player* player) { Player_ApplyDamage(player, 3, boss->info.damage); } } - temp_v0 = func_play_800A7974(player, boss->info.hitbox, &sp98, boss->obj.pos.x, boss->obj.pos.y, - boss->obj.pos.z, boss->obj.rot.x, boss->obj.rot.y, boss->obj.rot.z, - 0.0f, 0.0f, 0.0f); + temp_v0 = Player_CheckHitboxCollision(player, boss->info.hitbox, &sp98, boss->obj.pos.x, + boss->obj.pos.y, boss->obj.pos.z, boss->obj.rot.x, + boss->obj.rot.y, boss->obj.rot.z, 0.0f, 0.0f, 0.0f); if (temp_v0 != 0) { if (temp_v0 < 0) { if (player->whooshTimer == 0) { @@ -1907,17 +1913,17 @@ void func_play_800A8BA4(Player* player) { for (i = 0, actor = gActors; i < ARRAY_COUNT(gActors); i++, actor++) { if ((actor->obj.status == OBJ_ACTIVE) && (actor->timer_0C2 == 0)) { if (actor->obj.id == OBJ_ACTOR_180) { - temp_v0 = - func_play_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); + temp_v0 = Player_CheckPolyCollision(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, actor->info.damage); } } else if (actor->obj.id == OBJ_ACTOR_EVENT) { if (actor->unk_0B4 == EVID_42) { - temp_v0 = - func_play_800A8304(player, ACTOR_EVENT_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); + temp_v0 = Player_CheckPolyCollision(player, ACTOR_EVENT_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, actor->info.damage); } @@ -1930,10 +1936,10 @@ void func_play_800A8BA4(Player* player) { actor->dmgType = DMG_COLLISION; } } else { - temp_v0 = func_play_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); + temp_v0 = Player_CheckHitboxCollision( + 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) && (actor->unk_0B4 == EVID_38)) { actor->info.hitbox = SEGMENTED_TO_VIRTUAL(D_SX_6032328); @@ -1961,11 +1967,11 @@ void func_play_800A8BA4(Player* player) { } } } - } else if ((actor->obj.id >= OBJ_ACTOR_205) && (actor->obj.id < OBJ_ACTOR_214)) { - temp_v0 = - func_play_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); + } else if ((OBJ_ACTOR_205 <= actor->obj.id) && (actor->obj.id <= OBJ_ACTOR_213)) { + temp_v0 = Player_CheckHitboxCollision( + 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) { actor->dmgType = DMG_COLLISION; if (actor->info.damage) { @@ -1975,9 +1981,9 @@ void func_play_800A8BA4(Player* player) { } } } else { - temp_v0 = func_play_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); + temp_v0 = Player_CheckHitboxCollision(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->whooshTimer == 0) { @@ -2008,9 +2014,9 @@ void func_play_800A8BA4(Player* player) { for (i = 0, sprite = gSprites; i < ARRAY_COUNT(gSprites); i++, sprite++) { if (sprite->obj.status == OBJ_ACTIVE) { if ((player->trueZpos - 200.0f) < sprite->obj.pos.z) { - temp_v0 = - func_play_800A7974(player, sprite->info.hitbox, &sp98, sprite->obj.pos.x, sprite->obj.pos.y, - sprite->obj.pos.z, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f); + temp_v0 = Player_CheckHitboxCollision(player, sprite->info.hitbox, &sp98, sprite->obj.pos.x, + sprite->obj.pos.y, sprite->obj.pos.z, 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f); if (temp_v0 != 0) { if ((sprite->obj.id == OBJ_SPRITE_FO_POLE) || (sprite->obj.id == OBJ_SPRITE_CO_POLE) || (sprite->obj.id == OBJ_SPRITE_TI_CACTUS) || (sprite->obj.id == OBJ_SPRITE_CO_TREE)) { @@ -2025,7 +2031,7 @@ void func_play_800A8BA4(Player* player) { } } } - func_play_800A86E4(player); + Player_CheckItemCollect(player); if (gCamCount == 4) { for (opponent = &gPlayer[3], i = 3; i >= 0; i--, opponent--) { if ((i != gPlayerNum) && (opponent->state_1C8 == PLAYERSTATE_1C8_ACTIVE)) { @@ -2063,15 +2069,15 @@ void func_play_800A8BA4(Player* player) { opponent->knockback.z = -player->knockback.z; opponent->baseSpeed = player->baseSpeed = 2.0f; } else { - func_play_800A8804(player, opponent); - func_play_800A8804(opponent, player); + Player_Collide(player, opponent); + Player_Collide(opponent, player); } } } } } - if (D_ctx_80178294 != 0) { - if (func_play_800A73E4(&sp94, &sp90, player->hit4.x, player->hit4.y, player->hit4.z)) { + if (gUseDynaFloor) { + if (Play_CheckDynaFloorCollision(&sp94, &sp90, player->hit4.x, player->hit4.y, player->hit4.z)) { if (gCurrentLevel == LEVEL_ZONESS) { player->rot.x = (player->baseSpeed + player->boostSpeed) * 0.8f; player->hitTimer = 15; @@ -2089,8 +2095,8 @@ void func_play_800A8BA4(Player* player) { func_effect_8007AFD0(player->pos.x, player->trueZpos, -30.0f, 0.0f, 5.0f); } } - if (func_play_800A73E4(&sp94, &sp90, player->pos.x + ((player->hit1.x - player->pos.x) * 1.5f), - player->pos.y + (player->hit1.y - player->pos.y) * 1.5f, player->hit1.z)) { + if (Play_CheckDynaFloorCollision(&sp94, &sp90, player->pos.x + ((player->hit1.x - player->pos.x) * 1.5f), + player->pos.y + (player->hit1.y - player->pos.y) * 1.5f, player->hit1.z)) { if (gCurrentLevel == LEVEL_ZONESS) { func_effect_8007B228(player->pos.x + (player->hit1.x - player->pos.x) * 1.5f, sp94, player->hit1.z, 1.0f); @@ -2101,8 +2107,8 @@ void func_play_800A8BA4(Player* player) { player->knockback.y = 30.0f; } } - if (func_play_800A73E4(&sp94, &sp90, player->pos.x + ((player->hit2.x - player->pos.x) * 1.5f), - player->pos.y + (player->hit2.y - player->pos.y) * 1.5f, player->hit2.z)) { + if (Play_CheckDynaFloorCollision(&sp94, &sp90, player->pos.x + ((player->hit2.x - player->pos.x) * 1.5f), + player->pos.y + (player->hit2.y - player->pos.y) * 1.5f, player->hit2.z)) { if (gCurrentLevel == LEVEL_ZONESS) { func_effect_8007B228(player->pos.x + (player->hit2.x - player->pos.x) * 1.5f, sp94, player->hit2.z, 1.0f); @@ -2116,7 +2122,7 @@ void func_play_800A8BA4(Player* player) { } } -void func_play_800AA800(Player* player) { +void Player_FloorCheck(Player* player) { s32 sp144; Scenery360* scenery360; Scenery* scenery; @@ -2337,7 +2343,7 @@ void func_play_800AA800(Player* player) { break; } - if (func_play_800A78C4(hitbox, tempx, tempy, tempz, tempx2, tempy2, tempz2)) { + if (Play_CheckSingleHitbox(hitbox, tempx, tempy, tempz, tempx2, tempy2, tempz2)) { if (gGroundHeight < player->groundPos.y) { player->groundPos.y = spEC.y + 15.0f + tempy; player->groundPos.z = spEC.z + 10.0f + tempz; @@ -2356,7 +2362,7 @@ void func_play_800AA800(Player* player) { } } -void func_play_800AB2AC(void) { +void Player_InitializeAll(void) { u8* ptr = (u8*) gPlayer; u32 i; @@ -2374,7 +2380,7 @@ void Player_Initialize(Player* player) { } } -void func_play_800AB334(void) { +void Play_InitLevel(void) { Vtx* mesh; u8* ptr; s32 i; @@ -2397,7 +2403,7 @@ void func_play_800AB334(void) { gTeamLowHealthMsgTimer = -1; break; } - D_ctx_80178294 = 0; + gUseDynaFloor = 0; switch (gCurrentLevel) { case LEVEL_SECTOR_Z: gGreatFoxIntact = true; @@ -2444,7 +2450,7 @@ void func_play_800AB334(void) { D_ctx_801784A4 = 0; /* fallthrough */ case LEVEL_SOLAR: - D_ctx_80178294 = 1; + gUseDynaFloor = true; gGroundHeight = -20000.0f; fptr = MEM_ARRAY_ALLOCATE(D_ctx_801782CC, 17 * 17); for (i = 0; i < 17 * 17; i++, fptr++) { @@ -2510,7 +2516,7 @@ void func_play_800AB334(void) { } } -void func_play_800AB964(void) { +void Player_ResetVsData(void) { s32 i; s32 j; @@ -2526,16 +2532,16 @@ void func_play_800AB964(void) { D_ctx_80177E7C = D_ctx_80177E74 = 0; } -void func_play_800ABA08(void) { +void Player_InitVersus(void) { s32 i; - func_play_800AB964(); + Player_ResetVsData(); for (i = 0; i < 4; i++) { gPlayerNum = i; Player_Initialize(&gPlayer[i]); - func_play_800B0F50(&gPlayer[i]); - func_play_800B44C4(&gPlayer[i]); - func_play_800B7184(&gPlayer[i], 1); + Player_Setup(&gPlayer[i]); + Player_Update360(&gPlayer[i]); + Camera_Update360(&gPlayer[i], 1); } Play_ClearObjectData(); } @@ -2579,14 +2585,14 @@ void Play_Init(void) { gLevelMode = LEVELMODE_ALL_RANGE; if (gCurrentLevel == LEVEL_VERSUS) { gVersusMode = true; - func_play_800AB964(); + Player_ResetVsData(); } } if ((gCurrentLevel == LEVEL_VENOM_ANDROSS) && (gLevelPhase == 1)) { gLevelMode = LEVELMODE_ALL_RANGE; } D_ctx_80177E7C = 0; - func_play_800A594C(); + Play_InitEnvironment(); gDropHitCountItem = gTeamLowHealthMsgTimer = gStartAndrossFightTimer = gSoShieldsEmpty = gAllRangeEventTimer = gAllRangeFrameCount = gBossActive = gGameFrameCount = gCameraShake = D_ctx_801782FC = gBossFrameCount = gCallTimer = gAllRangeSupplyTimer = gMissionStatus = 0; @@ -2614,7 +2620,7 @@ void Play_Init(void) { gStarWarpDistortion = gStarfieldX = gStarfieldY = gStarfieldRoll = D_ctx_8017842C = D_ctx_80178430 = 0.0f; if ((gLevelType == LEVELTYPE_SPACE) || (gCurrentLevel == LEVEL_TRAINING)) { - func_play_800A5EBC(); + Play_SetupStarfield(); if (gCurrentLevel != LEVEL_TRAINING) { D_ctx_80177A98 = 0; } @@ -2642,7 +2648,7 @@ void Play_Init(void) { gTeamShields[i] = gSavedTeamShields[i]; } MEM_ARRAY_ALLOCATE(gPlayer, gCamCount); - func_play_800AB2AC(); + Player_InitializeAll(); for (i = 0; i < gCamCount; i++) { gPlayer[i].state_1C8 = PLAYERSTATE_1C8_INIT; gPlayerGlareAlphas[i] = D_ctx_801783C0[i] = 0; @@ -2693,15 +2699,15 @@ void Play_Init(void) { } break; case LEVEL_VERSUS: - func_play_800A4F7C(); + Play_InitVsStage(); gTeamLowHealthMsgTimer = -1; break; } } - func_play_800AB334(); + Play_InitLevel(); } -void func_play_800AC290(Player* player, PlayerShot* shot, f32 arg2, f32 arg3, PlayerShotId shotId, f32 speed) { +void Player_SetupArwingShot(Player* player, PlayerShot* shot, f32 arg2, f32 arg3, PlayerShotId shotId, f32 speed) { Vec3f sp44; Vec3f sp38; Vec3f sp2C; @@ -2711,7 +2717,7 @@ void func_play_800AC290(Player* player, PlayerShot* shot, f32 arg2, f32 arg3, Pl Matrix_RotateX(gCalcMatrix, -((player->xRot_120 + player->rot.x + player->aerobaticPitch) * M_DTOR), MTXF_APPLY); Matrix_RotateZ(gCalcMatrix, -((player->bankAngle + player->rockAngle) * M_DTOR), MTXF_APPLY); Matrix_Translate(gCalcMatrix, player->xShake, player->yBob, 0.0f, MTXF_APPLY); - if (gVersusMode && (shotId <= PLAYERSHOT_1)) { + if (gVersusMode && (shotId <= PLAYERSHOT_TWIN_LASER)) { speed *= 0.5f; } sp44.x = 0.0f; @@ -2722,7 +2728,7 @@ void func_play_800AC290(Player* player, PlayerShot* shot, f32 arg2, f32 arg3, Pl sp44.y = -5.0f + arg3; sp44.z = 0.0f; Matrix_MultVec3f(gCalcMatrix, &sp44, &sp2C); - shot->obj.status = 1; + shot->obj.status = SHOT_ACTIVE; shot->vel.x = sp38.x; shot->vel.y = sp38.y; shot->vel.z = sp38.z; @@ -2730,15 +2736,15 @@ void func_play_800AC290(Player* player, PlayerShot* shot, f32 arg2, f32 arg3, Pl shot->obj.id = shotId; if (!gVersusMode) { - shot->unk_64 = 35; + shot->timer = 35; } else { - shot->unk_64 = 37; + shot->timer = 37; } - if (shot->obj.id == PLAYERSHOT_4) { + if (shot->obj.id == PLAYERSHOT_LOCK_SEARCH) { shot->obj.pos.x = player->pos.x + sp2C.x; shot->obj.pos.y = player->pos.y + sp2C.y; shot->obj.pos.z = player->trueZpos + sp2C.z; - shot->unk_64 = 38; + shot->timer = 38; } else { shot->obj.pos.x = player->pos.x + sp2C.x + (sp38.x * 1.2); shot->obj.pos.y = player->pos.y + sp2C.y + (sp38.y * 1.2); @@ -2747,7 +2753,7 @@ void func_play_800AC290(Player* player, PlayerShot* shot, f32 arg2, f32 arg3, Pl shot->obj.rot.x = player->xRot_120 + player->rot.x + player->aerobaticPitch; shot->obj.rot.y = player->rot.y + player->yRot_114; shot->obj.rot.z = player->bankAngle; - if (shotId == PLAYERSHOT_8) { + if (shotId == PLAYERSHOT_LOCK_ON) { if (gCurrentLevel == LEVEL_AQUAS) { shot->unk_58 = RAND_INT(360.0f); shot->unk_60 = RAND_INT(360.0f); @@ -2761,13 +2767,13 @@ void func_play_800AC290(Player* player, PlayerShot* shot, f32 arg2, f32 arg3, Pl if (speed <= 65.0f) { shot->unk_5C = 1; } - shot->unk_64 = 30; + shot->timer = 30; } } shot->sourceId = player->num; } -void func_play_800AC650(Player* player, PlayerShot* shot, PlayerShotId shotId, f32 speed) { +void Player_SetupTankShot(Player* player, PlayerShot* shot, PlayerShotId shotId, f32 speed) { Vec3f sp54; Vec3f sp48; Vec3f sp3C; @@ -2805,40 +2811,40 @@ void func_play_800AC650(Player* player, PlayerShot* shot, PlayerShotId shotId, f shot->obj.pos.x = player->pos.x + sp3C.x; shot->obj.pos.y = player->pos.y + sp3C.y; shot->obj.pos.z = player->trueZpos + sp3C.z; - shot->obj.status = 1; + shot->obj.status = SHOT_ACTIVE; shot->vec_2C.x = -player->unk_17C; shot->vec_2C.y = -player->unk_180; shot->vec_2C.z = player->zRotBank; shot->obj.rot.x = player->rot.x + player->xRot_120; shot->obj.rot.y = player->rot.y + player->yRot_114; shot->obj.rot.z = player->rot.z; - shot->unk_64 = 40; + shot->timer = 40; shot->obj.id = shotId; shot->sourceId = player->num; - if (shotId == PLAYERSHOT_8) { + if (shotId == PLAYERSHOT_LOCK_ON) { if (speed <= 65.0f) { shot->unk_5C = 1; } - shot->unk_64 = 30; + shot->timer = 30; shot->vec_2C.y = player->rot.y + player->yRot_114; } } -void func_play_800ACA40(Player* player) { +void Player_TankCannon(Player* player) { s32 i; for (i = 0; i < ARRAY_COUNT(gPlayerShots) - 1; i++) { - if (gPlayerShots[i].obj.status == 0) { - func_play_800AC650(player, &gPlayerShots[i], PLAYERSHOT_5, 100.0f); - func_play_800A5FA0(player->sfxSource, NA_SE_TANK_SHOT, player->num); + if (gPlayerShots[i].obj.status == SHOT_FREE) { + Player_SetupTankShot(player, &gPlayerShots[i], PLAYERSHOT_TANK, 100.0f); + Player_PlaySfx(player->sfxSource, NA_SE_TANK_SHOT, player->num); player->unk_1A0 = 2; break; } } } -void func_play_800ACABC(Player* player) { +void Player_ArwingLaser(Player* player) { s32 i; LaserStrength laser = gLaserStrength[gPlayerNum]; @@ -2848,9 +2854,10 @@ void func_play_800ACABC(Player* player) { switch (laser) { case LASERS_SINGLE: for (i = 0; i < ARRAY_COUNT(gPlayerShots) - 1; i++) { - if (gPlayerShots[i].obj.status == 0) { - func_play_800AC290(player, &gPlayerShots[i], 0.0f, 0.0f, PLAYERSHOT_0, 400.0f / 3.0f); - func_play_800A5FA0(player->sfxSource, NA_SE_ARWING_SHOT, player->num); + if (gPlayerShots[i].obj.status == SHOT_FREE) { + Player_SetupArwingShot(player, &gPlayerShots[i], 0.0f, 0.0f, PLAYERSHOT_SINGLE_LASER, + 400.0f / 3.0f); + Player_PlaySfx(player->sfxSource, NA_SE_ARWING_SHOT, player->num); gMuzzleFlashScale[player->num] = 0.5f; break; } @@ -2859,13 +2866,14 @@ void func_play_800ACABC(Player* player) { case LASERS_TWIN: case LASERS_HYPER: for (i = 0; i < ARRAY_COUNT(gPlayerShots) - 1; i++) { - if (gPlayerShots[i].obj.status == 0) { - func_play_800AC290(player, &gPlayerShots[i], 0.0f, -10.0f, PLAYERSHOT_1, 400.0f / 3.0f); + if (gPlayerShots[i].obj.status == SHOT_FREE) { + Player_SetupArwingShot(player, &gPlayerShots[i], 0.0f, -10.0f, PLAYERSHOT_TWIN_LASER, + 400.0f / 3.0f); if (laser == LASERS_TWIN) { - func_play_800A5FA0(player->sfxSource, NA_SE_ARWING_TWIN_LASER, player->num); + Player_PlaySfx(player->sfxSource, NA_SE_ARWING_TWIN_LASER, player->num); gMuzzleFlashScale[player->num] = 0.5f; } else { - func_play_800A5FA0(player->sfxSource, NA_SE_ARWING_TWIN_LASER2, player->num); + Player_PlaySfx(player->sfxSource, NA_SE_ARWING_TWIN_LASER2, player->num); gMuzzleFlashScale[player->num] = 0.75f; } break; @@ -2875,21 +2883,21 @@ void func_play_800ACABC(Player* player) { } } -void func_play_800ACC7C(Player* player) { +void Player_SmartBomb(Player* player) { if ((gBombCount[player->num] != 0) && (gBombButton[player->num] & gInputPress->button) && - (gPlayerShots[ARRAY_COUNT(gPlayerShots) - 1].obj.status == OBJ_FREE)) { + (gPlayerShots[ARRAY_COUNT(gPlayerShots) - 1].obj.status == SHOT_FREE)) { if (gVersusMode) { gBombCount[player->num] = 0; } else { gBombCount[player->num]--; } if (player->form == FORM_ARWING) { - func_play_800AC290(player, &gPlayerShots[ARRAY_COUNT(gPlayerShots) - 1], 0.0f, 0.0f, PLAYERSHOT_BOMB, - 180.0f); + Player_SetupArwingShot(player, &gPlayerShots[ARRAY_COUNT(gPlayerShots) - 1], 0.0f, 0.0f, PLAYERSHOT_BOMB, + 180.0f); } else if (player->form == FORM_LANDMASTER) { - func_play_800AC650(player, &gPlayerShots[ARRAY_COUNT(gPlayerShots) - 1], PLAYERSHOT_BOMB, 180.0f); + Player_SetupTankShot(player, &gPlayerShots[ARRAY_COUNT(gPlayerShots) - 1], PLAYERSHOT_BOMB, 180.0f); } else { - func_play_800ACDC0(player, &gPlayerShots[ARRAY_COUNT(gPlayerShots) - 1], PLAYERSHOT_BOMB); + Player_SetupOnFootShot(player, &gPlayerShots[ARRAY_COUNT(gPlayerShots) - 1], PLAYERSHOT_BOMB); } gPlayerShots[ARRAY_COUNT(gPlayerShots) - 1].unk_48 = 30.0f; gPlayerShots[ARRAY_COUNT(gPlayerShots) - 1].unk_60 = 0; @@ -2898,7 +2906,7 @@ void func_play_800ACC7C(Player* player) { } } -void func_play_800ACDC0(Player* player, PlayerShot* shot, PlayerShotId shotId) { +void Player_SetupOnFootShot(Player* player, PlayerShot* shot, PlayerShotId shotId) { Vec3f sp5C; Vec3f sp50; Vec3f sp44; @@ -2935,21 +2943,21 @@ void func_play_800ACDC0(Player* player, PlayerShot* shot, PlayerShotId shotId) { shot->scale = 1.0f; - shot->obj.status = 1; + shot->obj.status = SHOT_ACTIVE; shot->obj.id = shotId; - shot->unk_64 = 30; + shot->timer = 30; shot->unk_58 = 1; shot->sourceId = player->num; } -void func_play_800AD094(Player* player) { +void Player_OnFootGun(Player* player) { s32 i; for (i = 0; i < ARRAY_COUNT(gPlayerShots); i++) { - if (gPlayerShots[i].obj.status == 0) { - func_play_800ACDC0(player, &gPlayerShots[i], PLAYERSHOT_6); - func_play_800A5FA0(player->sfxSource, NA_SE_TANK_SHOT, player->num); + if (gPlayerShots[i].obj.status == SHOT_FREE) { + Player_SetupOnFootShot(player, &gPlayerShots[i], PLAYERSHOT_ON_FOOT); + Player_PlaySfx(player->sfxSource, NA_SE_TANK_SHOT, player->num); player->csTimer = 2; player->unk_180 = 10.0f; break; @@ -2957,7 +2965,7 @@ void func_play_800AD094(Player* player) { } } -bool func_play_800AD118(s32 playerNum) { +bool Player_CanLockOn(s32 playerNum) { Actor* actor; s32 i; @@ -2978,8 +2986,8 @@ bool func_play_800AD118(s32 playerNum) { return true; } -bool func_play_800AD1F4(Player* player) { - bool var_a2; +bool Player_UpdateLockOn(Player* player) { + bool hasBombTarget; s32 i; if (gInputHold->button & A_BUTTON) { @@ -2988,18 +2996,19 @@ bool func_play_800AD1F4(Player* player) { gChargeTimers[player->num] = 21; } if (gChargeTimers[player->num] == 20) { - func_enmy_80060F30(player->sfxSource, NA_SE_LOCK_SEARCH, player->num); + Object_PlayerSfx(player->sfxSource, NA_SE_LOCK_SEARCH, player->num); } - if ((!(gInputHold->button & R_TRIG) || !(gInputHold->button & Z_TRIG) || (player->form != FORM_ARWING) || - (player->state_1C8 != PLAYERSTATE_1C8_ACTIVE)) && - ((gGameFrameCount % 4) == 0) && func_play_800AD118(player->num)) { + if (!((gInputHold->button & R_TRIG) && (gInputHold->button & Z_TRIG) && (player->form == FORM_ARWING) && + (player->state_1C8 == PLAYERSTATE_1C8_ACTIVE)) && + ((gGameFrameCount % 4) == 0) && Player_CanLockOn(player->num)) { if (gChargeTimers[player->num] > 20) { - for (i = 0; i < 13; i++) { - if (gPlayerShots[i].obj.status == 0) { + for (i = 0; i < 13; i++) { // bug? should be 11 + if (gPlayerShots[i].obj.status == SHOT_FREE) { if (player->form == FORM_ARWING) { - func_play_800AC290(player, &gPlayerShots[i], 0.0f, 0.0f, PLAYERSHOT_4, 400.0f); + Player_SetupArwingShot(player, &gPlayerShots[i], 0.0f, 0.0f, PLAYERSHOT_LOCK_SEARCH, + 400.0f); } else { - func_play_800AC650(player, &gPlayerShots[i], PLAYERSHOT_4, 400.0f); + Player_SetupTankShot(player, &gPlayerShots[i], PLAYERSHOT_LOCK_SEARCH, 400.0f); } return true; } @@ -3015,16 +3024,17 @@ bool func_play_800AD1F4(Player* player) { if (gInputPress->button & A_BUTTON) { for (i = 0; i < ARRAY_COUNT(gActors); i++) { if ((gActors[i].obj.status == OBJ_ACTIVE) && (gActors[i].lockOnTimers[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) && + if ((gPlayerShots[14 - player->num].obj.status == SHOT_FREE) || + (gPlayerShots[14 - player->num].obj.id != PLAYERSHOT_LOCK_ON) || + ((gPlayerShots[14 - player->num].obj.id == PLAYERSHOT_LOCK_ON) && (gPlayerShots[14 - player->num].unk_60 != 0))) { if (player->form == FORM_ARWING) { - func_play_800AC290(player, &gPlayerShots[14 - player->num], 0.0f, 0.0f, PLAYERSHOT_8, 70.0f); + Player_SetupArwingShot(player, &gPlayerShots[14 - player->num], 0.0f, 0.0f, PLAYERSHOT_LOCK_ON, + 70.0f); } else { - func_play_800AC650(player, &gPlayerShots[14 - player->num], PLAYERSHOT_8, 70.0f); + Player_SetupTankShot(player, &gPlayerShots[14 - player->num], PLAYERSHOT_LOCK_ON, 70.0f); } - func_enmy_80060F30(player->sfxSource, NA_SE_LOCK_ON_LASER, player->num); + Object_PlayerSfx(player->sfxSource, NA_SE_LOCK_ON_LASER, player->num); gControllerRumbleTimers[player->num] = 5; return true; } @@ -3032,16 +3042,17 @@ bool func_play_800AD1F4(Player* player) { } } if (gChargeTimers[player->num] > 10) { - if ((gPlayerShots[14 - player->num].obj.status == 0) || - (gPlayerShots[14 - player->num].obj.id != PLAYERSHOT_8) || - ((gPlayerShots[14 - player->num].obj.id == PLAYERSHOT_8) && + if ((gPlayerShots[14 - player->num].obj.status == SHOT_FREE) || + (gPlayerShots[14 - player->num].obj.id != PLAYERSHOT_LOCK_ON) || + ((gPlayerShots[14 - player->num].obj.id == PLAYERSHOT_LOCK_ON) && (gPlayerShots[14 - player->num].scale > 1.0f))) { if (player->form == FORM_ARWING) { - func_play_800AC290(player, &gPlayerShots[14 - player->num], 0.0f, 0.0f, PLAYERSHOT_8, 70.0f); + Player_SetupArwingShot(player, &gPlayerShots[14 - player->num], 0.0f, 0.0f, PLAYERSHOT_LOCK_ON, + 70.0f); } else { - func_play_800AC650(player, &gPlayerShots[14 - player->num], PLAYERSHOT_8, 70.0f); + Player_SetupTankShot(player, &gPlayerShots[14 - player->num], PLAYERSHOT_LOCK_ON, 70.0f); } - func_enmy_80060F30(player->sfxSource, NA_SE_LOCK_ON_LASER, player->num); + Object_PlayerSfx(player->sfxSource, NA_SE_LOCK_ON_LASER, player->num); gChargeTimers[player->num] = 0; gControllerRumbleTimers[player->num] = 5; return true; @@ -3050,91 +3061,90 @@ bool func_play_800AD1F4(Player* player) { gChargeTimers[player->num] = 0; } if (gInputPress->button & B_BUTTON) { - var_a2 = false; + hasBombTarget = false; for (i = 0; i < ARRAY_COUNT(gActors); i++) { if ((gActors[i].obj.status == OBJ_ACTIVE) && (gActors[i].lockOnTimers[player->num] != 0)) { - var_a2 = true; + hasBombTarget = true; break; } } for (i = 0; i < gCamCount; i++) { if (gVsLockOnTimers[i][player->num] != 0) { - var_a2 = true; + hasBombTarget = true; break; } } - if (var_a2 != 0) { - if ((gBombCount[player->num] != 0) && (gPlayerShots[ARRAY_COUNT(gPlayerShots) - 1].obj.status == 0)) { - gBombCount[player->num]--; - if (player->form == FORM_ARWING) { - func_play_800AC290(player, &gPlayerShots[ARRAY_COUNT(gPlayerShots) - 1], 0.0f, 0.0f, PLAYERSHOT_8, - 60.0f); - } else { - func_play_800AC650(player, &gPlayerShots[ARRAY_COUNT(gPlayerShots) - 1], PLAYERSHOT_8, 60.0f); - } - gPlayerShots[ARRAY_COUNT(gPlayerShots) - 1].unk_48 = 30.0f; - gPlayerShots[ARRAY_COUNT(gPlayerShots) - 1].unk_60 = 0; - Audio_InitBombSfx(player->num, 1); - Audio_PlayBombFlightSfx(player->num, gPlayerShots[ARRAY_COUNT(gPlayerShots) - 1].sfxSource); - return true; + if (hasBombTarget && (gBombCount[player->num] != 0) && + (gPlayerShots[ARRAY_COUNT(gPlayerShots) - 1].obj.status == SHOT_FREE)) { + gBombCount[player->num]--; + if (player->form == FORM_ARWING) { + Player_SetupArwingShot(player, &gPlayerShots[ARRAY_COUNT(gPlayerShots) - 1], 0.0f, 0.0f, + PLAYERSHOT_LOCK_ON, 60.0f); + } else { + Player_SetupTankShot(player, &gPlayerShots[ARRAY_COUNT(gPlayerShots) - 1], PLAYERSHOT_LOCK_ON, 60.0f); } + gPlayerShots[ARRAY_COUNT(gPlayerShots) - 1].unk_48 = 30.0f; + gPlayerShots[ARRAY_COUNT(gPlayerShots) - 1].unk_60 = 0; + Audio_InitBombSfx(player->num, 1); + Audio_PlayBombFlightSfx(player->num, gPlayerShots[ARRAY_COUNT(gPlayerShots) - 1].sfxSource); + return true; } } return false; } -void func_play_800AD7F0(Player* player) { +void Player_Shoot(Player* player) { switch (player->form) { case FORM_ARWING: if ((player->wings.rightState <= WINGSTATE_BROKEN) || (player->wings.leftState <= WINGSTATE_BROKEN)) { gLaserStrength[player->num] = LASERS_SINGLE; } - if (!func_play_800AD1F4(player)) { + if (!Player_UpdateLockOn(player)) { if (gLaserStrength[gPlayerNum] > LASERS_SINGLE) { Math_SmoothStepToF(&player->wings.unk_14, -10.0f, 1.0f, 0.5f, 0.0f); } else { Math_SmoothStepToF(&player->wings.unk_14, 0.0f, 1.0f, 0.5f, 0.0f); } if (gShootButton[player->num] & gInputPress->button) { - func_play_800ACABC(player); - player->timer_244 = 8; + Player_ArwingLaser(player); + player->shotTimer = 8; } - if (player->timer_244 != 0) { - player->timer_244--; - if ((gShootButton[player->num] & gInputHold->button) && ((player->timer_244 & 3) == 0)) { - func_play_800ACABC(player); + if (player->shotTimer != 0) { + player->shotTimer--; + if ((gShootButton[player->num] & gInputHold->button) && ((player->shotTimer & 3) == 0)) { + Player_ArwingLaser(player); } } - func_play_800ACC7C(player); + Player_SmartBomb(player); } break; case FORM_LANDMASTER: - if (!func_play_800AD1F4(player)) { + if (!Player_UpdateLockOn(player)) { if (gShootButton[player->num] & gInputPress->button) { - func_play_800ACA40(player); + Player_TankCannon(player); } - func_play_800ACC7C(player); + Player_SmartBomb(player); } break; case FORM_ON_FOOT: if (gInputPress->button & A_BUTTON) { - player->timer_244 = 0; + player->shotTimer = 0; } if (gInputHold->button & A_BUTTON) { - if (player->timer_244 == 0) { - func_play_800AD094(player); + if (player->shotTimer == 0) { + Player_OnFootGun(player); } - player->timer_244++; - if (player->timer_244 > 4) { - player->timer_244 = 0; + player->shotTimer++; + if (player->shotTimer > 4) { + player->shotTimer = 0; } } - func_play_800ACC7C(player); + Player_SmartBomb(player); break; } } -void func_play_800ADA28(Player* player) { +void Player_ArwingBank(Player* player) { f32 sp3C; f32 sp38; @@ -3197,7 +3207,7 @@ void func_play_800ADA28(Player* player) { } } -void func_play_800ADD98(Player* player) { +void Player_UseTankJets(Player* player) { Math_SmoothStepToF(&player->unk_170, 0.0f, 1.0f, 0.2f, 0.0f); Math_SmoothStepToF(&player->unk_16C, 0.0f, 1.0f, 0.2f, 0.0f); if (gInputPress->button & Z_TRIG) { @@ -3222,7 +3232,7 @@ void func_play_800ADD98(Player* player) { player->unk_18C += fabsf(SIN_DEG(player->zRotBarrelRoll) * 20.0f); } -void func_play_800ADF58(Player* player) { +void Player_UpdatePath(Player* player) { f32 temp_fv0; f32 temp_fv0_2; s32 temp_v0; @@ -3244,14 +3254,14 @@ void func_play_800ADF58(Player* player) { player->trueZpos = player->pos.z + player->camDist; player->bankAngle = player->rot.z + player->zRotBank + player->zRotBarrelRoll; - while (1) { + while (true) { if (player->bankAngle > 360.0f) { player->bankAngle -= 360.0f; } else { break; } } - while (1) { + while (true) { if (player->bankAngle < -360.0f) { player->bankAngle += 360.0f; } else { @@ -3277,7 +3287,7 @@ void func_play_800ADF58(Player* player) { } } -void func_play_800AE278(Player* player) { +void Player_CheckBounds360(Player* player) { f32 var_fv1; bool var_v0 = false; @@ -3332,7 +3342,7 @@ void func_play_800AE278(Player* player) { } } -void func_play_800AE4A4(Player* player) { +void Player_ArwingMove360(Player* player) { f32 sp7C; f32 sp78; f32 scale; @@ -3454,13 +3464,13 @@ void func_play_800AE4A4(Player* player) { if (player->pos.y < -(player->pathHeight - 100.0f)) { player->flags_228 = PFLAG_228_2; } - func_play_800AE278(player); + Player_CheckBounds360(player); player->trueZpos = player->pos.z; - func_play_800A4460(player); - func_play_800A46A0(player); + Player_WingEffects(player); + Player_DamageEffects(player); } -void func_play_800AECAC(Player* player) { +void Player_PerformLoop(Player* player) { f32 temp; f32 sp58; Vec3f sp4C; @@ -3526,10 +3536,10 @@ void func_play_800AECAC(Player* player) { } player->pos.z += player->vel.z; player->trueZpos = player->pos.z; - func_play_800A46A0(player); + Player_DamageEffects(player); } -void func_play_800AF07C(Player* player) { +void Player_ArwingMoveOnRails(Player* player) { f32 stickX; f32 stickY; f32 var_fa0; @@ -3724,10 +3734,10 @@ void func_play_800AF07C(Player* player) { player->pos.z += player->vel.z; - func_play_800A4460(player); + Player_WingEffects(player); } -void func_play_800AF928(Player* player) { +void Player_TankMove360(Player* player) { f32 sp5C; f32 var_fa0; f32 var_fa1; @@ -3844,20 +3854,20 @@ void func_play_800AF928(Player* player) { player->vel.y = 20.0f; } player->pos.z += player->vel.z; - func_play_800AE278(player); + Player_CheckBounds360(player); player->trueZpos = player->pos.z; player->bankAngle = player->rot.z + player->zRotBank + player->zRotBarrelRoll; if (player->grounded) { player->rockPhase += player->baseSpeed * 5.0f; player->rockAngle = SIN_DEG(player->rockPhase) * 0.7f; } - func_play_800A46A0(player); + Player_DamageEffects(player); } f32 D_800D30F4[4] = { 3.0f, 4.0f, 5.0f, 3.0f }; f32 D_800D3104[4] = { 0.2f, 0.25f, 0.3f, 0.2f }; -void func_play_800B00C0(Player* player) { +void Player_OnFootUpdateSpeed(Player* player) { f32 sp2C = 0.0f; f32 sp28 = 0.7f; f32 sp24 = 0.1f; @@ -3871,7 +3881,7 @@ void func_play_800B00C0(Player* player) { Math_SmoothStepToF(&player->unk_008, sp28, 0.1f, sp24, 0.00001f); } -void func_play_800B0194(Player* player) { +void Player_OnFootMove(Player* player) { Vec3f sp78[30]; f32 sp74; f32 sp70; @@ -4060,7 +4070,7 @@ void func_play_800B0194(Player* player) { player->vel.y = 20.0f; } player->pos.z += player->vel.z; - func_play_800AE278(player); + Player_CheckBounds360(player); player->trueZpos = player->pos.z; } @@ -4072,7 +4082,7 @@ f32 D_800D3134[8] = { }; f32 D_800D3154[4] = { 45.0f, -135.0f, 135.0f, -45.0f }; -void func_play_800B0F50(Player* playerx) { +void Player_Setup(Player* playerx) { s32 j; Vec3f* sp38; ObjectInit* objInit; @@ -4262,7 +4272,7 @@ void func_play_800B0F50(Player* playerx) { } break; } - func_play_800B7184(player, 1); + Camera_Update360(player, 1); } player->state_1C8 = PLAYERSTATE_1C8_ACTIVE; player->unk_204 = gLevelType; @@ -4279,7 +4289,7 @@ void func_play_800B0F50(Player* playerx) { player->yRot_114 = 188.0f; player->unk_240 = 1; } - func_play_800B63BC(player, 1); + Camera_UpdateArwing360(player, 1); } else { player->unk_014 = 1.0f; player->unk_018 = 1.0f; @@ -4297,7 +4307,7 @@ void func_play_800B0F50(Player* playerx) { player->state_1C8 = PLAYERSTATE_1C8_LEVEL_INTRO; player->unk_204 = 1; gGroundSurface = gSavedGroundSurface = SURFACE_WATER; - func_play_800A3FB0(); + Play_dummy_MuteSfx(); break; case LEVEL_BOLSE: player->unk_204 = 1; @@ -4440,7 +4450,7 @@ void func_play_800B0F50(Player* playerx) { gPauseEnabled = 0; } -void func_play_800B2130(Player* player) { +void Player_UpdateArwingRoll(Player* player) { s32 temp_t6; s32 temp_t7; s32 temp_t8; @@ -4506,7 +4516,7 @@ void func_play_800B2130(Player* player) { } } -void func_play_800B22C0(Player* player) { +void Player_UpdateTankRoll(Player* player) { f32 temp_fv0; f32 temp_fv0_2; s32* temp_v1; @@ -4588,7 +4598,7 @@ void func_play_800B22C0(Player* player) { } } -void func_play_800B2574(Player* player) { +void Player_ArwingBoost(Player* player) { f32 sp2C; f32 sp28; s32 var; @@ -4666,7 +4676,7 @@ void func_play_800B2574(Player* player) { if ((gInputHold->button & gBoostButton[player->num]) && !(gInputHold->button & gBrakeButton[player->num]) && (player->state_1C8 != PLAYERSTATE_1C8_U_TURN) && !player->boostCooldown) { if (player->boostMeter == 0.0f) { - func_play_800A5FA0(player->sfxSource, NA_SE_ARWING_BOOST, player->num); + Player_PlaySfx(player->sfxSource, NA_SE_ARWING_BOOST, player->num); player->unk_194 = 5.0f; player->unk_190 = 5.0f; if (gBoostButton[player->num] & gInputPress->button) { @@ -4715,11 +4725,12 @@ void func_play_800B2574(Player* player) { } } -void func_play_800B2BE0(Player* player) { - func_play_800B2574(player); +// Unused +void Player_ArwingBoost2(Player* player) { + Player_ArwingBoost(player); } -void func_play_800B2C00(Player* player) { +void Player_ArwingBrake(Player* player) { f32 sp34; f32 sp30; s32 var; @@ -4760,7 +4771,7 @@ void func_play_800B2C00(Player* player) { if ((gInputHold->button & gBrakeButton[player->num]) && !(gInputHold->button & gBoostButton[player->num]) && (player->state_1C8 != PLAYERSTATE_1C8_U_TURN) && !player->boostCooldown) { if (player->boostMeter == 0.0f) { - func_play_800A5FA0(player->sfxSource, NA_SE_ARWING_BRAKE, player->num); + Player_PlaySfx(player->sfxSource, NA_SE_ARWING_BRAKE, player->num); if ((gLevelMode == LEVELMODE_ALL_RANGE) && (gInputPress->button & gBrakeButton[player->num])) { gUturnBrakeTimers[gPlayerNum] = 5; } @@ -4800,7 +4811,7 @@ void func_play_800B2C00(Player* player) { Math_SmoothStepToF(&player->camDist, 0.0f, 0.1f, 5.0f, 0.0f); } -void func_play_800B3010(Player* player) { +void Player_TankBoostBrake(Player* player) { f32 sp2C; if (!player->boostActive) { @@ -4818,7 +4829,7 @@ void func_play_800B3010(Player* player) { if (player->boostMeter == 0.0f) { player->unk_194 = 4.0f; player->unk_190 = 4.0f; - func_play_800A5FA0(player->sfxSource, NA_SE_ARWING_BOOST, player->num); + Player_PlaySfx(player->sfxSource, NA_SE_ARWING_BOOST, player->num); } Math_SmoothStepToF(&D_ctx_801779A8[player->num], 30.0f, 1.0f, 10.0f, 0.0f); player->unk_190 = 2.0f; @@ -4831,7 +4842,7 @@ void func_play_800B3010(Player* player) { } if ((gInputHold->button & gBrakeButton[player->num]) && !player->boostCooldown) { if (player->boostMeter == 0.0f) { - func_play_800A5FA0(player->sfxSource, NA_SE_ARWING_BRAKE, player->num); + Player_PlaySfx(player->sfxSource, NA_SE_ARWING_BRAKE, player->num); } Math_SmoothStepToF(&D_ctx_801779A8[player->num], 20.0f, 1.0f, 10.0f, 0.0f); sp2C = 5.0f; @@ -4844,14 +4855,14 @@ void func_play_800B3010(Player* player) { Math_SmoothStepToF(&player->baseSpeed, sp2C, 0.1f, 2.0f, 0.001f); } -void func_play_800B3314(Player* player) { +void Player_UpdateTankJets(Player* player) { f32 temp; f32 temp2; player->gravity = 3.0f; if ((gInputHold->button & Z_TRIG) && !player->boostCooldown) { if (player->boostMeter == 0.0f) { - func_play_800A5FA0(player->sfxSource, NA_SE_ARWING_BOOST, player->num); + Player_PlaySfx(player->sfxSource, NA_SE_ARWING_BOOST, player->num); } player->unk_188 = 0.0f; player->zRotBank += 4.0f; @@ -4879,7 +4890,7 @@ void func_play_800B3314(Player* player) { } if ((gInputHold->button & R_TRIG) && !player->boostCooldown) { if (player->boostMeter == 0.0f) { - func_play_800A5FA0(player->sfxSource, NA_SE_ARWING_BOOST, player->num); + Player_PlaySfx(player->sfxSource, NA_SE_ARWING_BOOST, player->num); } player->unk_188 = 0.0f; player->zRotBank -= 4.0f; @@ -4932,7 +4943,7 @@ s32 D_800D3164[6] = { 1, 1, -1, 1, -1, 1, }; -void func_play_800B39E0(Player* player) { +void Player_UpdateEffects(Player* player) { s32 i; player->xShake = 0.0f; @@ -5077,7 +5088,7 @@ void Player_UpdateShields(Player* player) { } } -void func_play_800B415C(Player* player) { +void Player_LowHealthAlarm(Player* player) { s32 var_v0; Player_UpdateShields(player); @@ -5091,12 +5102,12 @@ void func_play_800B415C(Player* player) { var_v0 = 16 - 1; } if ((gGameFrameCount & var_v0) == 0) { - func_enmy_80060F30(player->sfxSource, NA_SE_SHIELD_BUZZER, player->num); + Object_PlayerSfx(player->sfxSource, NA_SE_SHIELD_BUZZER, player->num); } } } -void func_play_800B41E0(Player* player) { +void Play_dummy_800B41E0(Player* player) { } void Player_Down(Player* player) { @@ -5110,7 +5121,7 @@ void Player_Down(Player* player) { Audio_KillSfxById(NA_SE_OVERHEAT_ALARM); } Audio_StopPlayerNoise(player->num); - func_play_800A5FA0(player->sfxSource, NA_SE_ARWING_DOWN, player->num); + Player_PlaySfx(player->sfxSource, NA_SE_ARWING_DOWN, player->num); player->shields = 0; player->csState = 0; player->hitTimer = 0; @@ -5119,7 +5130,7 @@ void Player_Down(Player* player) { gShowHud = 0; } -void func_play_800B42B0(Player* player) { +void Player_UpdateOnRails(Player* player) { switch (player->form) { case FORM_ARWING: if (player->csTimer != 0) { @@ -5129,23 +5140,23 @@ void func_play_800B42B0(Player* player) { gInputHold->button = gBoostButton[player->num]; player->boostMeter = 1.0f; } - func_play_800ADA28(player); - func_play_800B2574(player); - func_play_800B2C00(player); - func_play_800B41E0(player); - func_play_800B2130(player); + Player_ArwingBank(player); + Player_ArwingBoost(player); + Player_ArwingBrake(player); + Play_dummy_800B41E0(player); + Player_UpdateArwingRoll(player); if (player->somersault) { - func_play_800AECAC(player); + Player_PerformLoop(player); } else { - func_play_800AF07C(player); + Player_ArwingMoveOnRails(player); } - func_play_800ADF58(player); - func_play_800AD7F0(player); - func_play_800A8BA4(player); - func_play_800A46A0(player); - func_play_800A4C40(player); - func_play_800AA800(player); - func_play_800B415C(player); + Player_UpdatePath(player); + Player_Shoot(player); + Player_CollisionCheck(player); + Player_DamageEffects(player); + Player_WaterEffects(player); + Player_FloorCheck(player); + Player_LowHealthAlarm(player); if ((player->shields <= 0) && (player->radioDamageTimer != 0)) { Player_Down(player); player->vel.x *= 0.2f; @@ -5160,18 +5171,18 @@ void func_play_800B42B0(Player* player) { } break; case FORM_LANDMASTER: - func_tank_80047504(player); + Tank_UpdateOnRails(player); break; case FORM_BLUE_MARINE: - Aquas_801ACE50(player); - Aquas_801AD328(player); - func_play_800B41E0(player); - Aquas_801AACF8(player); - func_play_800ADF58(player); - Aquas_801AC274(player); - func_play_800A8BA4(player); - func_play_800AA800(player); - func_play_800B415C(player); + Aquas_BlueMarineBoost(player); + Aquas_BlueMarineBrake(player); + Play_dummy_800B41E0(player); + Aquas_BlueMarineMove(player); + Player_UpdatePath(player); + Aquas_BlueMarineShoot(player); + Player_CollisionCheck(player); + Player_FloorCheck(player); + Player_LowHealthAlarm(player); if ((player->shields <= 0) && (player->radioDamageTimer != 0)) { Player_Down(player); } @@ -5179,24 +5190,24 @@ void func_play_800B42B0(Player* player) { } } -void func_play_800B44C4(Player* player) { +void Player_Update360(Player* player) { switch (player->form) { case FORM_ARWING: - func_play_800ADA28(player); - func_play_800B2574(player); - func_play_800B2C00(player); - func_play_800B41E0(player); - func_play_800B2130(player); + Player_ArwingBank(player); + Player_ArwingBoost(player); + Player_ArwingBrake(player); + Play_dummy_800B41E0(player); + Player_UpdateArwingRoll(player); if (player->somersault) { - func_play_800AECAC(player); + Player_PerformLoop(player); } else { - func_play_800AE4A4(player); + Player_ArwingMove360(player); } - func_play_800AD7F0(player); - func_play_800A8BA4(player); - func_play_800A4C40(player); - func_play_800AA800(player); - func_play_800B415C(player); + Player_Shoot(player); + Player_CollisionCheck(player); + Player_WaterEffects(player); + Player_FloorCheck(player); + Player_LowHealthAlarm(player); if ((player->shields <= 0) && (player->radioDamageTimer != 0)) { Player_Down(player); player->vel.y = 5.0f; @@ -5215,30 +5226,30 @@ void func_play_800B44C4(Player* player) { } break; case FORM_LANDMASTER: - func_play_800ADD98(player); - func_play_800B3314(player); - func_play_800B3010(player); - func_play_800B41E0(player); - func_play_800B22C0(player); - func_play_800AF928(player); - func_play_800AD7F0(player); - func_play_800A8BA4(player); - func_play_800AA800(player); - func_play_800B415C(player); + Player_UseTankJets(player); + Player_UpdateTankJets(player); + Player_TankBoostBrake(player); + Play_dummy_800B41E0(player); + Player_UpdateTankRoll(player); + Player_TankMove360(player); + Player_Shoot(player); + Player_CollisionCheck(player); + Player_FloorCheck(player); + Player_LowHealthAlarm(player); if ((player->shields <= 0) && (player->radioDamageTimer != 0)) { Player_Down(player); } break; case FORM_BLUE_MARINE: - Aquas_801BEC80(player); + Aquas_Update360(player); break; case FORM_ON_FOOT: - func_play_800B00C0(player); - func_play_800B0194(player); - func_play_800AD7F0(player); - func_play_800A8BA4(player); - func_play_800AA800(player); - func_play_800B415C(player); + Player_OnFootUpdateSpeed(player); + Player_OnFootMove(player); + Player_Shoot(player); + Player_CollisionCheck(player); + Player_FloorCheck(player); + Player_LowHealthAlarm(player); if ((player->shields <= 0) && (player->radioDamageTimer != 0)) { Player_Down(player); } @@ -5246,7 +5257,7 @@ void func_play_800B44C4(Player* player) { } } -void func_play_800B46F8(Player* player) { +void Player_LowHealthMsg(Player* player) { s32 teamId; if ((player->state_1C8 == PLAYERSTATE_1C8_ACTIVE) && (gTeamLowHealthMsgTimer >= 0)) { @@ -5321,7 +5332,7 @@ void Player_Update(Player* player) { } } if (player->state_1C8 > PLAYERSTATE_1C8_INIT) { - func_play_800B39E0(player); + Player_UpdateEffects(player); } player->flags_228 = 0; if ((player->state_1C8 > PLAYERSTATE_1C8_INIT) && (player->form == FORM_ARWING) && !gVersusMode) { @@ -5350,7 +5361,7 @@ void Player_Update(Player* player) { gPauseEnabled = 0; break; case PLAYERSTATE_1C8_INIT: - func_play_800B0F50(player); + Player_Setup(player); gFillScreenAlphaTarget = 0; gPauseEnabled = 0; break; @@ -5362,7 +5373,7 @@ void Player_Update(Player* player) { break; case PLAYERSTATE_1C8_ACTIVE: gShowHud = 1; - func_play_800B46F8(player); + Player_LowHealthMsg(player); player->wings.modelId = 0; D_hud_80161704 = 255; if ((!gVersusMode || (D_ctx_80177E7C != 0)) && !player->somersault && (gInputPress->button & U_CBUTTONS) && @@ -5380,31 +5391,31 @@ void Player_Update(Player* player) { switch (gLevelMode) { case LEVELMODE_ON_RAILS: gLoadLevelObjects = true; - func_play_800B42B0(player); + Player_UpdateOnRails(player); player->unk_234 = 1; break; case LEVELMODE_ALL_RANGE: if (!gVersusMode) { - func_play_800B44C4(player); + Player_Update360(player); player->unk_234 = 1; } else if (D_ctx_80177E7C != 0) { if (gPlayerInactive[player->num] == true) { do { sp1C4 = RAND_INT(3.9f); } while (gPlayerInactive[sp1C4]); - player->unk_288 = sp1C4 + 1; + player->attacker = sp1C4 + 1; player->state_1C8 = PLAYERSTATE_1C8_VS_STANDBY; player->csState = 0; - func_play_800B5FBC(player, player->unk_288 - 1, 1); + Camera_FollowPlayer(player, player->attacker - 1, 1); } else { if (D_ctx_80177E7C == 1) { D_ctx_80177E7C += 1; for (i = 0; i < 4; i++) { - func_play_800A5FA0(gPlayer[i].sfxSource, NA_SE_ARWING_BOOST, gPlayer[i].num); + Player_PlaySfx(gPlayer[i].sfxSource, NA_SE_ARWING_BOOST, gPlayer[i].num); gPlayer[i].unk_190 = gPlayer[i].unk_194 = 5.0f; } } - func_play_800B44C4(player); + Player_Update360(player); player->unk_234 = 1; } } else { @@ -5415,8 +5426,8 @@ void Player_Update(Player* player) { break; case LEVELMODE_UNK_2: gLoadLevelObjects = true; - Turret_801A5AD4(player); - func_play_800A8BA4(player); + Turret_Update(player); + Player_CollisionCheck(player); break; } break; @@ -5436,10 +5447,10 @@ void Player_Update(Player* player) { Player_UpdateShields(player); Cutscene_UTurn(player); if (gCurrentLevel == LEVEL_KATINA) { - func_play_800A8BA4(player); + Player_CollisionCheck(player); } else { - func_play_800A887C(player); - func_play_800A86E4(player); + Player_UpdateHitbox(player); + Player_CheckItemCollect(player); } break; case PLAYERSTATE_1C8_LEVEL_COMPLETE: @@ -5447,7 +5458,7 @@ void Player_Update(Player* player) { gPauseEnabled = false; Player_UpdateShields(player); Cutscene_LevelComplete(player); - func_play_800A4C40(player); + Player_WaterEffects(player); gShowHud = gChargeTimers[player->num] = 0; break; case PLAYERSTATE_1C8_ENTER_WARP_ZONE: @@ -5460,7 +5471,7 @@ void Player_Update(Player* player) { gPauseEnabled = 0; Player_UpdateShields(player); Cutscene_AllRangeMode(player); - func_play_800B2130(player); + Player_UpdateArwingRoll(player); gChargeTimers[player->num] = player->cockpitView = gShowHud = 0; break; case PLAYERSTATE_1C8_GFOX_REPAIR: @@ -5477,20 +5488,20 @@ void Player_Update(Player* player) { case PLAYERSTATE_1C8_VS_STANDBY: player->unk_234 = 0; if (gPlayerInactive[player->num] == true) { - func_play_800B5FBC(player, player->unk_288 - 1, 0); + Camera_FollowPlayer(player, player->attacker - 1, 0); } else if ((D_ctx_80177E74 == 0) && (player->csState != 0)) { player->csState = 0; Player_Initialize(player); - func_play_800B0F50(player); - func_play_800B44C4(player); - func_play_800B7184(player, 1); - func_play_800A5FA0(player->sfxSource, NA_SE_ARWING_BOOST, player->num); + Player_Setup(player); + Player_Update360(player); + Camera_Update360(player, 1); + Player_PlaySfx(player->sfxSource, NA_SE_ARWING_BOOST, player->num); player->unk_190 = player->unk_194 = 5.0f; - } else if (player->unk_288 >= 0) { - if (player->unk_288 == 0) { - player->unk_288 = 1; + } else if (player->attacker >= 0) { + if (player->attacker == 0) { + player->attacker = 1; } - func_play_800B5FBC(player, player->unk_288 - 1, 0); + Camera_FollowPlayer(player, player->attacker - 1, 0); } break; case PLAYERSTATE_1C8_NEXT: @@ -5596,7 +5607,7 @@ void Player_Update(Player* player) { } } -void func_play_800B56BC(Player* player) { +void Camera_UpdateArwingOnRails(Player* player) { f32 var_fv1; f32 var_fv0; f32 temp; @@ -5627,7 +5638,7 @@ void func_play_800B56BC(Player* player) { gCsCamAtX += player->xShake * -2.0f; gCsCamAtX -= player->unk_030 * 0.5f; gCsCamAtY = ((player->pos.y - player->yPath) * player->unk_14C) + 20.0f; - gCsCamAtY += player->unk_060 * 5.0f; + gCsCamAtY += player->xRock * 5.0f; gCsCamAtY -= player->unk_02C * 0.25f; switch (D_800D2F54) { case 0: @@ -5669,7 +5680,7 @@ void func_play_800B56BC(Player* player) { } } -void func_play_800B5D30(Player* player, s32 arg1) { +void Camera_UpdateCockpitOnRails(Player* player, s32 arg1) { Vec3f sp4C; Vec3f sp40; s32 pad; @@ -5706,7 +5717,7 @@ void func_play_800B5D30(Player* player, s32 arg1) { } } -void func_play_800B5FBC(Player* player, s32 playerNum, bool arg2) { +void Camera_FollowPlayer(Player* player, s32 playerNum, bool arg2) { u8 i; u8 var_v0; Vec3f sp58; @@ -5726,7 +5737,7 @@ void func_play_800B5FBC(Player* player, s32 playerNum, bool arg2) { if (i > 90) { playerNum = 0; } - player->unk_288 = playerNum + 1; + player->attacker = playerNum + 1; Matrix_RotateY(gCalcMatrix, gPlayer[playerNum].yRot_114 * M_DTOR, MTXF_NEW); switch (gPlayer[playerNum].form) { case FORM_ARWING: @@ -5773,7 +5784,7 @@ void func_play_800B5FBC(Player* player, s32 playerNum, bool arg2) { Math_SmoothStepToF(&player->camRoll, 0.0f, 0.05f, 5.0f, 0.00001f); } -void func_play_800B63BC(Player* player, s32 arg1) { +void Camera_UpdateArwing360(Player* player, s32 arg1) { Vec3f sp74; Vec3f sp68; f32 temp1; @@ -5814,7 +5825,7 @@ void func_play_800B63BC(Player* player, s32 arg1) { atX = player->pos.x + player->damageShake; var_fv0 = (player->somersault) ? 1.0f : 0.79f; - atY = (player->pos.y * (var_fv0)) + player->damageShake + (player->unk_060 * 5.0f); + atY = (player->pos.y * (var_fv0)) + player->damageShake + (player->xRock * 5.0f); atY += (player->unk_02C * 0.5f); if (player->state_1C8 == PLAYERSTATE_1C8_U_TURN) { atY = player->pos.y; @@ -5851,7 +5862,7 @@ void func_play_800B63BC(Player* player, s32 arg1) { } } -void func_play_800B6848(Player* player, s32 arg1) { +void Camera_UpdateTank360(Player* player, s32 arg1) { Vec3f sp54; Vec3f sp48; f32 sp44; @@ -5903,7 +5914,7 @@ void func_play_800B6848(Player* player, s32 arg1) { } } -void func_play_800B6BFC(Player* player, s32 arg1) { +void Camera_UpdateOnFoot360(Player* player, s32 arg1) { Vec3f sp64; Vec3f sp58; Vec3f sp4C; @@ -5948,7 +5959,7 @@ void func_play_800B6BFC(Player* player, s32 arg1) { } } -void func_play_800B6F50(f32 xEye, f32 yEye, f32 zEye, f32 xAt, f32 yAt, f32 zAt) { +void Camera_SetStarfieldPos(f32 xEye, f32 yEye, f32 zEye, f32 xAt, f32 yAt, f32 zAt) { f32 sp34; f32 sp30; f32 pitch; @@ -5985,48 +5996,48 @@ void func_play_800B6F50(f32 xEye, f32 yEye, f32 zEye, f32 xAt, f32 yAt, f32 zAt) } } -void func_play_800B7184(Player* player, s32 arg1) { +void Camera_Update360(Player* player, s32 arg1) { switch (player->form) { case FORM_ON_FOOT: - func_play_800B6BFC(player, arg1); + Camera_UpdateOnFoot360(player, arg1); break; case FORM_LANDMASTER: - func_play_800B6848(player, arg1); + Camera_UpdateTank360(player, arg1); break; case FORM_ARWING: - func_play_800B63BC(player, arg1); + Camera_UpdateArwing360(player, arg1); break; } } -void Player_UpdateCamera(Player* player) { +void Camera_Update(Player* player) { switch (player->state_1C8) { case PLAYERSTATE_1C8_ACTIVE: switch (gLevelMode) { case LEVELMODE_ON_RAILS: if (player->form == FORM_ARWING) { if (!player->cockpitView) { - func_play_800B56BC(player); + Camera_UpdateArwingOnRails(player); } else { - func_play_800B5D30(player, 0); + Camera_UpdateCockpitOnRails(player, 0); } } else if (player->form == FORM_LANDMASTER) { - func_tank_80043468(player); + Player_UpdateTankCamOnRails(player); } else if (player->form == FORM_BLUE_MARINE) { - Aquas_801AA8E8(player); + Aquas_UpdateCamera(player); } break; case LEVELMODE_ALL_RANGE: - func_play_800B7184(player, 0); + Camera_Update360(player, 0); break; case LEVELMODE_UNK_2: - Turret_801A5FC0(player); + Turret_UpdateCamera(player); break; } break; case PLAYERSTATE_1C8_U_TURN: player->camRoll -= player->camRoll * 0.1f; - func_play_800B7184(player, 0); + Camera_Update360(player, 0); break; case PLAYERSTATE_1C8_DOWN: if ((gLevelMode == LEVELMODE_ON_RAILS) && (player->form == FORM_ARWING)) { @@ -6047,7 +6058,7 @@ void Player_UpdateCamera(Player* player) { } } -void func_play_800B73E0(Player* player) { +void Camera_SetupLights(Player* player) { Vec3f sp44; Vec3f sp38; f32 pad; @@ -6169,7 +6180,7 @@ void Play_UpdateLevel(void) { gPlayer[0].csState = 0; gPlayer[0].unk_234 = 1; gPlayer[0].pos.z = 15000.0f; - func_play_800B7184(gPlayer, 1); + Camera_Update360(gPlayer, 1); gFillScreenAlpha = 255; gFillScreenAlphaStep = 255; gFillScreenAlphaTarget = 255; @@ -6221,7 +6232,7 @@ void Play_UpdateLevel(void) { func_hud_8008C104(D_AQ_603158C, D_AQ_602ACC0); break; case LEVEL_SOLAR: - func_play_800A3FEC(); + Play_UpdateDynaFloor(); for (gPathTexScroll; gPathTexScroll >= 10.0f; gPathTexScroll -= 10.0f) { Texture_Scroll(D_SO_6005710, 32, 32, 1); @@ -6282,7 +6293,7 @@ void Play_UpdateLevel(void) { } break; case LEVEL_ZONESS: - func_play_800A3FEC(); + Play_UpdateDynaFloor(); for (gPathTexScroll; gPathTexScroll >= 20.0f; gPathTexScroll -= 20.0f) { Texture_Scroll(D_ZO_602C2CC, 32, 32, 1); } @@ -6290,8 +6301,8 @@ void Play_UpdateLevel(void) { Texture_Scroll(D_ZO_602C2CC, 32, 32, 1); } func_hud_8008C104(D_ZO_602C2CC, D_ZO_600D990); - if (func_play_800A73E4(&sp3C, &sp40, gPlayer[0].cam.eye.x, gPlayer[0].cam.eye.y, - gPlayer[0].cam.eye.z - gPathProgress)) { + if (Play_CheckDynaFloorCollision(&sp3C, &sp40, gPlayer[0].cam.eye.x, gPlayer[0].cam.eye.y, + gPlayer[0].cam.eye.z - gPathProgress)) { gLight1R = 0; gLight1G = 7; gLight1B = 10; @@ -6332,11 +6343,11 @@ void Play_Update(void) { Player_Update(&gPlayer[i]); } Object_Update(); - PlayerShot_Update(); + PlayerShot_UpdateAll(); BonusText_Update(); for (i = 0; i < gCamCount; i++) { gPlayer[i].num = gPlayerNum = i; - Player_UpdateCamera(&gPlayer[i]); + Camera_Update(&gPlayer[i]); } gCameraShakeY = 0.0f; if (gCameraShake != 0) { @@ -6373,8 +6384,8 @@ void Play_SpawnVsItem(ObjectId objId, Item* item) { } } -void func_play_800B86A4(f32* arg0) { - *arg0 += gPathProgress + 15000.0f; +void Play_SetupZPos360(f32* zPos) { + *zPos += gPathProgress + 15000.0f; } void Play_Main(void) { @@ -6407,16 +6418,16 @@ void Play_Main(void) { } Play_ClearObjectData(); if (gCurrentLevel == LEVEL_CORNERIA) { - func_play_800A5338(); + Play_Setup360_CO(); } else if (gCurrentLevel == LEVEL_SECTOR_Y) { - func_play_800A55B0(); + Play_Setup360_SY(); } else if (gCurrentLevel == LEVEL_VENOM_ANDROSS) { - func_play_800A57E0(); + Play_Setup360_AND(); } else if (gCurrentLevel == LEVEL_TRAINING) { - Training_80198C50(); + Training_Setup360(); } - func_play_800B86A4(&gPlayer[0].pos.z); - func_play_800B86A4(&gPlayer[0].trueZpos); + Play_SetupZPos360(&gPlayer[0].pos.z); + Play_SetupZPos360(&gPlayer[0].trueZpos); gPlayer[0].cam.eye.z += 15000.0f; gPlayer[0].cam.at.z += 15000.0f; gPlayer[0].zPath = gPlayer[0].zPathVel = gPathVelZ = gPathProgress = 0.0f; @@ -6433,9 +6444,9 @@ void Play_Main(void) { break; case PLAY_INIT: Play_Init(); - D_800D2F5C = gVolumeSettings[0]; - D_800D2F60 = gVolumeSettings[1]; - D_800D2F64 = gVolumeSettings[2]; + sMusicVolume = gVolumeSettings[AUDIO_TYPE_MUSIC]; + sVoiceVolume = gVolumeSettings[AUDIO_TYPE_VOICE]; + sSfxVolume = gVolumeSettings[AUDIO_TYPE_SFX]; gPlayState = PLAY_UPDATE; break; case PLAY_UPDATE: @@ -6487,9 +6498,9 @@ void Play_Main(void) { for (i = 0; i < 4; i++) { if ((gControllerPress[i].button & R_TRIG) && (gPlayer[i].form != FORM_ON_FOOT)) { if (gShowCrosshairs[i] = 1 - gShowCrosshairs[i]) { - func_enmy_80060F30(gPlayer[i].sfxSource, NA_SE_MAP_WINDOW_OPEN, i); + Object_PlayerSfx(gPlayer[i].sfxSource, NA_SE_MAP_WINDOW_OPEN, i); } else { - func_enmy_80060F30(gPlayer[i].sfxSource, NA_SE_MAP_WINDOW_CLOSE, i); + Object_PlayerSfx(gPlayer[i].sfxSource, NA_SE_MAP_WINDOW_CLOSE, i); } } } diff --git a/src/engine/fox_tank.c b/src/engine/fox_tank.c index 45617862..9def6d08 100644 --- a/src/engine/fox_tank.c +++ b/src/engine/fox_tank.c @@ -54,7 +54,7 @@ void func_tank_80043280(u16* text0, u16* text1, f32 zRot) { Matrix_Pop(&gCalcMatrix); } -void func_tank_80043468(Player* player) { +void Player_UpdateTankCamOnRails(Player* player) { f32 sp54; f32 sp50; f32 sp4C; @@ -236,7 +236,7 @@ s32 func_tank_80044120(Hitbox* hitbox, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f sp34.y = arg2 - arg5; sp34.z = arg3 - arg6; Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp34, &sp28); - return func_play_800A78C4(hitbox, arg4, arg5, arg6, sp28.x + arg4, sp28.y + arg5, sp28.z + arg6); + return Play_CheckSingleHitbox(hitbox, arg4, arg5, arg6, sp28.x + arg4, sp28.y + arg5, sp28.z + arg6); } void func_tank_800441C8(Player* player, f32* hitboxData, f32 xPos, f32 yPos, f32 zPos, f32 xRot, f32 yRot, f32 zRot) { @@ -500,7 +500,7 @@ void func_tank_80044868(Player* player) { func_tank_80043280(D_landmaster_3005EA8, D_TI_6009BB8, gGameFrameCount * -55.0f); } } - func_play_800A46A0(player); + Player_DamageEffects(player); } void func_tank_80045130(Player* player) { @@ -777,7 +777,7 @@ void func_tank_800460E0(Player* player, f32* hitboxData, f32 arg2, f32 arg3, f32 sp88.y = spf94.y - arg3; sp88.z = spf94.z - arg4; Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp88, &sp7C); - if (func_play_800A78C4(hitbox, arg2, arg3, arg4, sp7C.x + arg2, sp7C.y + arg3, sp7C.z + arg4)) { + if (Play_CheckSingleHitbox(hitbox, arg2, arg3, arg4, sp7C.x + arg2, sp7C.y + arg3, sp7C.z + arg4)) { player->groundPos.y = arg3 + 20.0f + 3.0f; } } @@ -841,7 +841,7 @@ void func_tank_8004641C(Player* player, s32 arg1, f32 arg2, f32 arg3, f32 arg4, sp84 = sp64.x + arg2; sp80 = sp64.y + arg3; sp7C = sp64.z + arg4; - if (func_play_800A8054(arg1, arg2, arg3, arg4, sp84, sp80, sp7C, &sp58, &sp4C)) { + if (Play_CheckPolyCollision(arg1, arg2, arg3, arg4, sp84, sp80, sp7C, &sp58, &sp4C)) { if (D_MA_801BE250[27] < arg3 + sp58.y) { D_MA_801BE250[27] = arg3 + sp58.y; if (arg1 == OBJ_SCENERY_67) { @@ -852,7 +852,7 @@ void func_tank_8004641C(Player* player, s32 arg1, f32 arg2, f32 arg3, f32 arg4, D_MA_801BE250[28] = sp58.x; D_MA_801BE250[29] = sp58.z; } else if ((arg1 == OBJ_SCENERY_67) && (D_MA_801BE250[27] == 0.0f) && - func_play_800A8054(arg1, arg2 + 20.0f, arg3, arg4, sp84, sp80, sp7C, &sp58, &sp4C)) { + Play_CheckPolyCollision(arg1, arg2 + 20.0f, arg3, arg4, sp84, sp80, sp7C, &sp58, &sp4C)) { player->barrelRoll = 9; player->timer_1E8 = 15; if ((arg6 > 90.0f) && (arg6 < 270.0f)) { @@ -861,7 +861,8 @@ void func_tank_8004641C(Player* player, s32 arg1, f32 arg2, f32 arg3, f32 arg4, player->rollRate = player->baseRollRate = -20; } } - if (func_play_800A8054(arg1, arg2, arg3, arg4, sp84, arg3, sp7C, &sp58, &sp4C) && (D_800C9F10 <= arg3 + sp58.y)) { + if (Play_CheckPolyCollision(arg1, arg2, arg3, arg4, sp84, arg3, sp7C, &sp58, &sp4C) && + (D_800C9F10 <= arg3 + sp58.y)) { D_800C9F10 = arg3 + sp58.y; player->groundPos.x = player->pos.x; player->groundPos.y = D_800C9F10 - 2.0f; @@ -1035,7 +1036,7 @@ s32 func_tank_80046E40(Player* player, f32* hitboxData, s32* index, f32 xPos, f3 var_fv1 = sp88.y + yPos; var_fa0 = sp88.z + zPos; } - if (func_play_800A78C4((Hitbox*) hitboxData, xPos, yPos, zPos, var_fv0, var_fv1, var_fa0)) { + if (Play_CheckSingleHitbox((Hitbox*) hitboxData, xPos, yPos, zPos, var_fv0, var_fv1, var_fa0)) { *index = i + 1; return 1; } @@ -1052,7 +1053,7 @@ s32 func_tank_80046E40(Player* player, f32* hitboxData, s32* index, f32 xPos, f3 var_fv1 = sp88.y + yPos; var_fa0 = sp88.z + zPos; } - if (func_play_800A78C4((Hitbox*) hitboxData, xPos, yPos, zPos, var_fv0, var_fv1, var_fa0)) { + if (Play_CheckSingleHitbox((Hitbox*) hitboxData, xPos, yPos, zPos, var_fv0, var_fv1, var_fa0)) { *index = i + 1; return 2; } @@ -1069,7 +1070,7 @@ s32 func_tank_80046E40(Player* player, f32* hitboxData, s32* index, f32 xPos, f3 var_fv1 = sp88.y + yPos; var_fa0 = sp88.z + zPos; } - if (func_play_800A78C4((Hitbox*) hitboxData, xPos, yPos, zPos, var_fv0, var_fv1, var_fa0)) { + if (Play_CheckSingleHitbox((Hitbox*) hitboxData, xPos, yPos, zPos, var_fv0, var_fv1, var_fa0)) { *index = i + 1; if (hitboxData[-1] == HITBOX_SHADOW) { return -1; @@ -1093,7 +1094,7 @@ s32 func_tank_80046E40(Player* player, f32* hitboxData, s32* index, f32 xPos, f3 var_fv1 = sp88.y + yPos; var_fa0 = sp88.z + zPos; } - if (func_play_800A78C4((Hitbox*) hitboxData, xPos, yPos, zPos, var_fv0, var_fv1, var_fa0)) { + if (Play_CheckSingleHitbox((Hitbox*) hitboxData, xPos, yPos, zPos, var_fv0, var_fv1, var_fa0)) { *index = i + 1; return 4; } @@ -1102,7 +1103,7 @@ s32 func_tank_80046E40(Player* player, f32* hitboxData, s32* index, f32 xPos, f3 return 0; } -void func_tank_80047504(Player* player) { +void Tank_UpdateOnRails(Player* player) { s32 pad; player->unk_204 = 1; @@ -1137,14 +1138,14 @@ void func_tank_80047504(Player* player) { player->boostMeter = 0.0f; } } - func_play_800B41E0(player); + Play_dummy_800B41E0(player); func_tank_80045E7C(player); func_tank_80044868(player); D_800C9F04 = 0; - func_play_800ADF58(player); - func_play_800AD7F0(player); + Player_UpdatePath(player); + Player_Shoot(player); if (gCurrentLevel != LEVEL_MACBETH) { - func_play_800A8BA4(player); + Player_CollisionCheck(player); } else { player->groundPos.x = player->pos.x; player->groundPos.z = player->trueZpos + -10.0f; @@ -1158,7 +1159,7 @@ void func_tank_80047504(Player* player) { func_tank_80046358(player); func_tank_80046260(player); } - func_play_800B415C(player); + Player_LowHealthAlarm(player); if ((player->shields <= 0) && (player->radioDamageTimer != 0)) { Player_Down(player); } @@ -1231,12 +1232,10 @@ label_29: player->rot.x = D_MA_801BE250[13]; // not fake, but weird player->rot.x = D_MA_801BE250[13]; func_tank_80047FBC(player); - } else { - if (((player->pos.x - 150.0f) < D_MA_801BE250[19]) && (D_MA_801BE250[19] < (player->pos.x + 150.0f)) && - ((player->pos.y - 60.0f) < (D_MA_801BE250[12] + 30.0f)) && - ((D_MA_801BE250[12] + 30.0f) < (player->pos.y + 60.0f))) { - func_tank_80047E7C(player, D_MA_801BE250[19], D_MA_801BE250[12] + 30.0f); - } + } else if (((player->pos.x - 150.0f) < D_MA_801BE250[19]) && (D_MA_801BE250[19] < (player->pos.x + 150.0f)) && + ((player->pos.y - 60.0f) < (D_MA_801BE250[12] + 30.0f)) && + ((D_MA_801BE250[12] + 30.0f) < (player->pos.y + 60.0f))) { + func_tank_80047E7C(player, D_MA_801BE250[19], D_MA_801BE250[12] + 30.0f); } } if (!sp2F) { @@ -1339,7 +1338,7 @@ void func_tank_800481F4(Player* player) { s32 pad2; f32 var_fv1; - func_play_800A887C(player); + Player_UpdateHitbox(player); func_tank_800444BC(player); if (player->timer_498 == 0) { for (i = 0, scenery = gScenery; i < ARRAY_COUNT(gScenery); i++, scenery++) { @@ -1355,9 +1354,9 @@ void func_tank_800481F4(Player* player) { if (scenery->info.action == (ObjectFunc) func_enmy_80066EA8) { var_fv1 = 0.0f; } - temp_v0 = func_play_800A7974(player, scenery->info.hitbox, &sp98, scenery->obj.pos.x, - scenery->obj.pos.y, scenery->obj.pos.z, scenery->obj.rot.x, var_fv1, - scenery->obj.rot.z, 0.0f, 0.0f, 0.0f); + temp_v0 = Player_CheckHitboxCollision(player, scenery->info.hitbox, &sp98, scenery->obj.pos.x, + scenery->obj.pos.y, scenery->obj.pos.z, scenery->obj.rot.x, + var_fv1, scenery->obj.rot.z, 0.0f, 0.0f, 0.0f); if (temp_v0 != 0) { if (temp_v0 < 0) { if (temp_v0 == -1) { @@ -1385,9 +1384,9 @@ void func_tank_800481F4(Player* player) { for (i = 0, boss = gBosses; i < ARRAY_COUNT(gBosses); i++, boss++) { if (boss->obj.status == OBJ_ACTIVE) { - temp_v0 = func_play_800A7974(player, boss->info.hitbox, &sp98, boss->obj.pos.x, boss->obj.pos.y, - boss->obj.pos.z, boss->obj.rot.x, boss->obj.rot.y, boss->obj.rot.z, 0.0f, - 0.0f, 0.0f); + temp_v0 = Player_CheckHitboxCollision(player, boss->info.hitbox, &sp98, boss->obj.pos.x, + boss->obj.pos.y, boss->obj.pos.z, boss->obj.rot.x, + boss->obj.rot.y, boss->obj.rot.z, 0.0f, 0.0f, 0.0f); if (temp_v0 != 0) { Player_ApplyDamage(player, temp_v0, boss->info.damage); } @@ -1397,10 +1396,10 @@ void func_tank_800481F4(Player* player) { for (i = 0, actor = gActors; i < ARRAY_COUNT(gActors); i++, actor++) { if ((actor->obj.status == OBJ_ACTIVE) && (actor->timer_0C2 == 0)) { if (actor->obj.id == OBJ_ACTOR_EVENT) { - temp_v0 = func_play_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); + temp_v0 = Player_CheckHitboxCollision(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, actor->info.damage); actor->dmgType = DMG_COLLISION; @@ -1430,7 +1429,7 @@ void func_tank_800481F4(Player* player) { Player_ApplyDamage(player, 0, 5); player->timer_498 = 1; } - } else if ((actor->obj.id >= 205) && (actor->obj.id < 214)) { + } else if ((OBJ_ACTOR_205 <= actor->obj.id) && (actor->obj.id <= OBJ_ACTOR_213)) { if (func_tank_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, @@ -1459,9 +1458,9 @@ void func_tank_800481F4(Player* player) { } } } else { - temp_v0 = func_play_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); + temp_v0 = Player_CheckHitboxCollision(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) { actor->dmgType = DMG_COLLISION; if ((actor->obj.id == OBJ_ACTOR_225) || (actor->obj.id == OBJ_ACTOR_190)) { @@ -1482,9 +1481,9 @@ void func_tank_800481F4(Player* player) { for (i = 0, sprite = gSprites; i < ARRAY_COUNT(gSprites); i++, sprite++) { if (sprite->obj.status == OBJ_ACTIVE) { if ((player->trueZpos - 200.0f) < sprite->obj.pos.z) { - temp_v0 = - func_play_800A7974(player, sprite->info.hitbox, &sp98, sprite->obj.pos.x, sprite->obj.pos.y, - sprite->obj.pos.z, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f); + temp_v0 = Player_CheckHitboxCollision(player, sprite->info.hitbox, &sp98, sprite->obj.pos.x, + sprite->obj.pos.y, sprite->obj.pos.z, 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f); if (temp_v0 != 0) { if ((sprite->obj.id == OBJ_SPRITE_FO_POLE) || (sprite->obj.id == OBJ_SPRITE_CO_POLE) || (sprite->obj.id == OBJ_SPRITE_CO_TREE)) { @@ -1501,5 +1500,5 @@ void func_tank_800481F4(Player* player) { } } } - func_play_800A86E4(player); + Player_CheckItemCollect(player); } diff --git a/src/engine/fox_versus.c b/src/engine/fox_versus.c index 239bbb10..ba25b89e 100644 --- a/src/engine/fox_versus.c +++ b/src/engine/fox_versus.c @@ -822,8 +822,8 @@ s32 Versus_CheckForWinner(void) { if (j == i) { continue; } - if (gPlayer[j].unk_288 >= 0) { - gPlayer[j].unk_288 = i + 1; + if (gPlayer[j].attacker >= 0) { + gPlayer[j].attacker = i + 1; } gPlayer[j].state_1C8 = PLAYERSTATE_1C8_VS_STANDBY; } @@ -863,8 +863,8 @@ s32 Versus_CheckForWinner(void) { if (j == gVsWinner) { continue; } - if (gPlayer[j].unk_288 >= 0) { - gPlayer[j].unk_288 = i + 1; + if (gPlayer[j].attacker >= 0) { + gPlayer[j].attacker = i + 1; } gPlayer[j].state_1C8 = PLAYERSTATE_1C8_VS_STANDBY; } @@ -988,8 +988,8 @@ s32 Versus_CheckForWinner(void) { continue; } - if (gPlayer[j].unk_288 >= 0) { - gPlayer[j].unk_288 = i + 1; + if (gPlayer[j].attacker >= 0) { + gPlayer[j].attacker = i + 1; } gPlayer[j].state_1C8 = PLAYERSTATE_1C8_VS_STANDBY; @@ -1456,7 +1456,7 @@ bool func_versus_800C16A0(s32 arg0) { } void func_versus_800C16D0(void) { - func_play_800ABA08(); + Player_InitVersus(); gVsMatchState = 0; D_80178778 = 0; } @@ -1506,7 +1506,7 @@ bool Versus_Update(void) { break; } if (func_versus_800C16A0(30)) { - func_play_800ABA08(); + Player_InitVersus(); gVsMatchState = 3; func_versus_800C1690(); } diff --git a/src/overlays/ovl_ending/fox_end2.c b/src/overlays/ovl_ending/fox_end2.c index 15b0f9f6..2e0ecb87 100644 --- a/src/overlays/ovl_ending/fox_end2.c +++ b/src/overlays/ovl_ending/fox_end2.c @@ -1053,8 +1053,8 @@ void Ending_801924EC(u32 arg0) { Matrix_LookAt(gGfxMatrix, D_ending_801985D0.x, D_ending_801985D0.y, D_ending_801985D0.z, D_ending_801985E0.x, D_ending_801985E0.y, D_ending_801985E0.z, 0.0f, 1.0f, 0.0f, MTXF_APPLY); - func_play_800B6F50(D_ending_801985D0.x, D_ending_801985D0.y, D_ending_801985D0.z, D_ending_801985E0.x, - D_ending_801985E0.y, D_ending_801985E0.z); + Camera_SetStarfieldPos(D_ending_801985D0.x, D_ending_801985D0.y, D_ending_801985D0.z, D_ending_801985E0.x, + D_ending_801985E0.y, D_ending_801985E0.z); Matrix_GetYRPAngles(gGfxMatrix, &D_ending_801985F0); break; diff --git a/src/overlays/ovl_i1/fox_co.c b/src/overlays/ovl_i1/fox_co.c index a530e5e3..23be8846 100644 --- a/src/overlays/ovl_i1/fox_co.c +++ b/src/overlays/ovl_i1/fox_co.c @@ -239,10 +239,10 @@ void Corneria_80187AC8(Boss* boss) { 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++) { - Boss_SpawnActor189(D_i1_8019B6D8[18 + var_s1 + 2], D_i1_8019B6D8[24 + var_s1 + 2], - D_i1_8019B6D8[30 + var_s1 + 2], D_i1_8019B6D8[36 + var_s1 + 2], - D_i1_8019B6D8[42 + var_s1 + 2], D_i1_8019B6D8[48 + var_s1 + 2], 0.0f, - RAND_FLOAT(20.0f), 0.0f, 5.5f, var_s1 + 28, RAND_INT(30.0f) + 60.0f); + Boss_SpawnDebris(D_i1_8019B6D8[18 + var_s1 + 2], D_i1_8019B6D8[24 + var_s1 + 2], + D_i1_8019B6D8[30 + var_s1 + 2], D_i1_8019B6D8[36 + var_s1 + 2], + D_i1_8019B6D8[42 + var_s1 + 2], D_i1_8019B6D8[48 + var_s1 + 2], 0.0f, + RAND_FLOAT(20.0f), 0.0f, 5.5f, var_s1 + 28, RAND_INT(30.0f) + 60.0f); } if (boss->state < 5) { boss->state = 5; @@ -258,10 +258,10 @@ void Corneria_80187AC8(Boss* boss) { boss->info.hitbox[1 + 30] = 100000.0f; for (var_s1 = 0; var_s1 < 3; var_s1++) { - Boss_SpawnActor189(D_i1_8019B6D8[18 + var_s1 + 2], D_i1_8019B6D8[24 + var_s1 + 2], - D_i1_8019B6D8[30 + var_s1 + 2], D_i1_8019B6D8[36 + var_s1 + 2], - D_i1_8019B6D8[42 + var_s1 + 2], D_i1_8019B6D8[48 + var_s1 + 2], 0.0f, - RAND_FLOAT(20.0f), 0.0f, 5.5f, var_s1 + 28, RAND_INT(30.0f) + 60.0f); + Boss_SpawnDebris(D_i1_8019B6D8[18 + var_s1 + 2], D_i1_8019B6D8[24 + var_s1 + 2], + D_i1_8019B6D8[30 + var_s1 + 2], D_i1_8019B6D8[36 + var_s1 + 2], + D_i1_8019B6D8[42 + var_s1 + 2], D_i1_8019B6D8[48 + var_s1 + 2], 0.0f, + RAND_FLOAT(20.0f), 0.0f, 5.5f, var_s1 + 28, RAND_INT(30.0f) + 60.0f); } if (boss->state < 5) { boss->state = 6; @@ -1360,9 +1360,9 @@ void Corneria_8018B58C(Actor* actor) { for (i = 0; i < 4; i++) { - Boss_SpawnActor189(actor->fwork[2 + i], actor->fwork[6 + i], actor->fwork[10 + i], 0.0f, 0.0f, 0.0f, - spB4[i] * (RAND_FLOAT(0.75f) + 0.5f), spA4[i] * (RAND_FLOAT(0.75f) + 0.5f), - RAND_FLOAT_CENTERED(20.0f), 3.0f, i + 24, RAND_INT(30.0f) + 60.0f); + Boss_SpawnDebris(actor->fwork[2 + i], actor->fwork[6 + i], actor->fwork[10 + i], 0.0f, 0.0f, 0.0f, + spB4[i] * (RAND_FLOAT(0.75f) + 0.5f), spA4[i] * (RAND_FLOAT(0.75f) + 0.5f), + RAND_FLOAT_CENTERED(20.0f), 3.0f, i + 24, RAND_INT(30.0f) + 60.0f); } if ((fabsf(actor->obj.pos.z - gPlayer[0].trueZpos) < 500.0f) && @@ -2887,19 +2887,19 @@ void Corneria_LevelStart(Player* player) { } if (player->csTimer == 70) { actor0->state = 1; - func_play_800A6028(player->sfxSource, NA_SE_ARWING_BOOST); + Play_PlaySfxFirstPlayer(player->sfxSource, NA_SE_ARWING_BOOST); } if (player->csTimer == 50) { actor1->state = 2; - func_play_800A6028(player->sfxSource, NA_SE_ARWING_BOOST); + Play_PlaySfxFirstPlayer(player->sfxSource, NA_SE_ARWING_BOOST); } if (player->csTimer == 30) { actor2->state = 3; - func_play_800A6028(player->sfxSource, NA_SE_ARWING_BOOST); + Play_PlaySfxFirstPlayer(player->sfxSource, NA_SE_ARWING_BOOST); } if (player->csTimer == 0) { player->csState = 9; - func_play_800A6028(player->sfxSource, NA_SE_ARWING_BOOST); + Play_PlaySfxFirstPlayer(player->sfxSource, NA_SE_ARWING_BOOST); player->csTimer = 3; player->unk_194 = 5.0f; player->unk_190 = 5.0f; diff --git a/src/overlays/ovl_i1/fox_tr360.c b/src/overlays/ovl_i1/fox_tr360.c index 75df3f1b..279555b2 100644 --- a/src/overlays/ovl_i1/fox_tr360.c +++ b/src/overlays/ovl_i1/fox_tr360.c @@ -7,7 +7,7 @@ #include "global.h" #include "assets/ast_training.h" -void Training_80198C50(void) { +void Training_Setup360(void) { Scenery360* scenery360; s32 i; @@ -16,21 +16,20 @@ void Training_80198C50(void) { scenery360 = gScenery360; for (i = 0; i < 1000; i++) { - if (gLevelObjects[i].id >= 0) { - if (gLevelObjects[i].id <= 160) { - Scenery360_Initialize(scenery360); - scenery360->obj.status = OBJ_ACTIVE; - scenery360->obj.id = gLevelObjects[i].id; - scenery360->obj.pos.x = gLevelObjects[i].xPos; - scenery360->obj.pos.z = -gLevelObjects[i].zPos1; - scenery360->obj.pos.y = gLevelObjects[i].yPos - RAND_FLOAT_SEEDED(300.0f); - scenery360->obj.rot.y = gLevelObjects[i].rot.y; - Object_SetInfo(&scenery360->info, scenery360->obj.id); - scenery360++; - } - } else { + if (gLevelObjects[i].id <= OBJ_INVALID) { break; } + if (gLevelObjects[i].id < OBJ_SCENERY_MAX) { + Scenery360_Initialize(scenery360); + scenery360->obj.status = OBJ_ACTIVE; + scenery360->obj.id = gLevelObjects[i].id; + scenery360->obj.pos.x = gLevelObjects[i].xPos; + scenery360->obj.pos.z = -gLevelObjects[i].zPos1; + scenery360->obj.pos.y = gLevelObjects[i].yPos - RAND_FLOAT_SEEDED(300.0f); + scenery360->obj.rot.y = gLevelObjects[i].rot.y; + Object_SetInfo(&scenery360->info, scenery360->obj.id); + scenery360++; + } } } diff --git a/src/overlays/ovl_i1/fox_ve1.c b/src/overlays/ovl_i1/fox_ve1.c index 39b4b76f..90a66ba6 100644 --- a/src/overlays/ovl_i1/fox_ve1.c +++ b/src/overlays/ovl_i1/fox_ve1.c @@ -256,7 +256,7 @@ void Venom1_BossTrigger1_Update(Ve1BossTrigger1* this) { s32 i; for (i = 0; i < ARRAY_COUNT(gBosses); i++, boss++) { - if ((boss->obj.status != OBJ_FREE) && (boss->obj.id == OBJ_BOSS_319)) { + if ((boss->obj.status != OBJ_FREE) && (boss->obj.id == OBJ_BOSS_VE1)) { if (boss->obj.pos.z <= this->obj.pos.z) { D_i1_8019C0B8 = (s32) this->obj.rot.x + 1; this->obj.status = OBJ_FREE; @@ -271,7 +271,7 @@ void Venom1_BossTrigger2_Update(Ve1BossTrigger2* this) { s32 i; for (i = 0; i < ARRAY_COUNT(gBosses); i++, boss++) { - if ((boss->obj.status != OBJ_FREE) && (boss->obj.id == OBJ_BOSS_319)) { + if ((boss->obj.status != OBJ_FREE) && (boss->obj.id == OBJ_BOSS_VE1)) { if (boss->obj.pos.z <= this->obj.pos.z) { D_i1_8019C0B8 = 0; this->obj.status = OBJ_FREE; @@ -286,7 +286,7 @@ void Venom1_BossTrigger3_Update(Ve1BossTrigger3* this) { s32 i; for (i = 0; i < ARRAY_COUNT(gBosses); i++, boss++) { - if ((boss->obj.status != OBJ_FREE) && (boss->obj.id == OBJ_BOSS_319)) { + if ((boss->obj.status != OBJ_FREE) && (boss->obj.id == OBJ_BOSS_VE1)) { if (boss->obj.pos.z <= this->obj.pos.z) { D_i1_8019C0BC = (s32) this->obj.rot.x + 1; this->obj.status = OBJ_FREE; @@ -301,7 +301,7 @@ void Venom1_BossTrigger4_Update(Ve1BossTrigger4* this) { s32 i; for (i = 0; i < ARRAY_COUNT(gBosses); i++, boss++) { - if ((boss->obj.status != OBJ_FREE) && (boss->obj.id == OBJ_BOSS_319)) { + if ((boss->obj.status != OBJ_FREE) && (boss->obj.id == OBJ_BOSS_VE1)) { if (boss->obj.pos.z <= this->obj.pos.z) { D_i1_8019C0C0 = 1; this->obj.status = OBJ_FREE; @@ -1074,7 +1074,7 @@ void Venom1_80193D64(s32 limbIndex, Vec3f* rot, void* thisx) { #ifdef NON_MATCHING // Lots of problems with loop at 2082. Seems related to spE8. https://decomp.me/scratch/gOy2L -void Venom1_80194398(Boss* boss) { +void Venom1_Boss_Update(Boss* boss) { s32 is0; Vec3f sp118[27]; Actor* actor; @@ -1296,7 +1296,7 @@ void Venom1_80194398(Boss* boss) { func_effect_8007D2C8(spF8.x, spF8.y, spF8.z, D_i1_8019AD80[is4][2]); } for (is1 = 0; is1 < D_i1_8019AD80[is4][0]; is1++) { - actor = func_game_800A3608(OBJ_ACTOR_189); + actor = Game_SpawnActor(OBJ_ACTOR_DEBRIS); if (actor != NULL) { actor->obj.status = OBJ_ACTIVE; actor->obj.pos.x = spF8.x + RAND_FLOAT_CENTERED(60.0f); @@ -1323,7 +1323,7 @@ void Venom1_80194398(Boss* boss) { } } for (is1 = 0; is1 < D_i1_8019AD80[is4][1]; is1++) { - actor = func_game_800A3608(OBJ_ACTOR_189); + actor = Game_SpawnActor(OBJ_ACTOR_DEBRIS); if (actor != NULL) { actor->obj.status = OBJ_ACTIVE; actor->obj.pos.x = spF8.x + RAND_FLOAT_CENTERED(60.0f); @@ -1357,7 +1357,7 @@ void Venom1_80194398(Boss* boss) { spF8.y += boss->obj.pos.y + RAND_FLOAT_CENTERED(60.0f); spF8.z += boss->obj.pos.z; for (is1 = 0; is1 < 5; is1++) { - actor = func_game_800A3608(OBJ_ACTOR_189); + actor = Game_SpawnActor(OBJ_ACTOR_DEBRIS); if (actor != NULL) { actor->obj.status = OBJ_ACTIVE; actor->obj.pos.x = spF8.x + RAND_FLOAT_CENTERED(60.0f); @@ -1384,7 +1384,7 @@ void Venom1_80194398(Boss* boss) { D_i1_8019B838[spF4].unk_7C &= ~0x10; } if (D_i1_8019B838[spF4].unk_7C & 0x40) { - actor = func_game_800A3608(OBJ_ACTOR_189); + actor = Game_SpawnActor(OBJ_ACTOR_DEBRIS); if (actor != NULL) { actor->obj.status = OBJ_ACTIVE; actor->obj.pos.x = boss->obj.pos.x + D_i1_8019B838[spF4].unk_0C[0].x; @@ -1419,7 +1419,7 @@ void Venom1_80194398(Boss* boss) { actor->gravity = 2.0f; } for (is1 = 0; is1 < 6; is1++) { - actor = func_game_800A3608(OBJ_ACTOR_189); + actor = Game_SpawnActor(OBJ_ACTOR_DEBRIS); if (actor != NULL) { actor->obj.status = OBJ_ACTIVE; actor->obj.pos.x = boss->obj.pos.x + D_i1_8019B838[spF4].unk_0C[0].x; @@ -2316,8 +2316,8 @@ void Venom1_80194398(Boss* boss) { } } #else -void Venom1_80194398(Boss* boss); -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_i1/fox_ve1/Venom1_80194398.s") +void Venom1_Boss_Update(Boss* boss); +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_i1/fox_ve1/Venom1_Boss_Update.s") #endif void Venom1_80198310(Boss* boss) { @@ -2361,7 +2361,7 @@ void Venom1_80198594(Boss* boss) { } } -void Venom1_801985E4(Boss* boss) { +void Venom1_Boss_Draw(Boss* boss) { if (boss->swork[26] == 0) { Animation_DrawSkeleton(0, D_VE1_901C0F4, boss->vwork, Venom1_801937F4, Venom1_80193D64, boss, &gIdentityMatrix); } @@ -2381,7 +2381,7 @@ void Venom1_8019864C(PlayerShot* shot) { boss = gBosses; for (i = 0; i < ARRAY_COUNT(gBosses); i++, boss++) { - if ((boss->obj.id == OBJ_BOSS_319) && (boss->obj.status == OBJ_ACTIVE) && (boss->timer_05A == 0)) { + if ((boss->obj.id == OBJ_BOSS_VE1) && (boss->obj.status == OBJ_ACTIVE) && (boss->timer_05A == 0)) { temp_fs1 = shot->scale * 30.0f; hitboxData = boss->info.hitbox; count = *hitboxData++; diff --git a/src/overlays/ovl_i2/fox_sx.c b/src/overlays/ovl_i2/fox_sx.c index 539c916a..ccdfd779 100644 --- a/src/overlays/ovl_i2/fox_sx.c +++ b/src/overlays/ovl_i2/fox_sx.c @@ -134,7 +134,7 @@ void SectorX_8018F330(Actor* actor) { if (actor->timer_0BC == 0) { gPlayer[0].state_1C8 = PLAYERSTATE_1C8_ACTIVE; if (gPlayer[0].cockpitView) { - func_play_800B5D30(&gPlayer[0], 1); + Camera_UpdateCockpitOnRails(&gPlayer[0], 1); } gProjectFar = 12800.0f; Object_Kill(&gActors[50].obj, gActors[50].sfxSource); @@ -229,7 +229,7 @@ void SectorX_8018FBBC(Vec3f* pos) { (actor->scale < 0.0f) && Object_CheckHitboxCollision(pos, actor->info.hitbox, &actor->obj, actor->vwork[29].x, actor->vwork[29].y, actor->vwork[29].z + actor->unk_0F4.z)) { - func_play_800A6028(actor->sfxSource, NA_SE_SLIPPY_HIT); + Play_PlaySfxFirstPlayer(actor->sfxSource, NA_SE_SLIPPY_HIT); actor->state = 1000; xRot = Math_Atan2F(actor->obj.pos.x - pos->x, actor->obj.pos.z - pos->z); yRot = -Math_Atan2F(actor->obj.pos.y - pos->y, @@ -410,7 +410,7 @@ void SectorX_80190078(Boss* boss) { func_effect_8007C120(boss->obj.pos.x, boss->obj.pos.y + 334.0f, -237.0f + boss->obj.pos.z, boss->vel.x, boss->vel.y, boss->vel.z, 0.15f, 70); for (i = 0; i < 10; i++) { - func_play_800A69F8(4, boss->obj.pos.x, boss->obj.pos.y + 334.0f, -237.0f + boss->obj.pos.z); + Play_SpawnDebris(4, boss->obj.pos.x, boss->obj.pos.y + 334.0f, -237.0f + boss->obj.pos.z); } func_effect_8007A6F0(&boss->obj.pos, NA_SE_EN_EXPLOSION_L); @@ -462,7 +462,7 @@ void SectorX_80190078(Boss* boss) { boss->vel.x, boss->vel.y, boss->vel.z, 0.15f, 70); for (i = 0; i < 10; i++) { - func_play_800A69F8(4, boss->obj.pos.x, boss->obj.pos.y + 334.0f, -237.0f + boss->obj.pos.z); + Play_SpawnDebris(4, boss->obj.pos.x, boss->obj.pos.y + 334.0f, -237.0f + boss->obj.pos.z); } boss->swork[4] = 2; @@ -702,14 +702,14 @@ void SectorX_80190078(Boss* boss) { sp74.y = boss->fwork[9] + boss->obj.pos.y; sp74.z = boss->fwork[10] + boss->obj.pos.z; - func_edisplay_8005F0E8(D_i2_80195D88, &sp74); + Object_SetSfxSourceToPos(D_i2_80195D88, &sp74); AUDIO_PLAY_SFX(NA_SE_EN_SZMIS_ENGINE, D_i2_80195D88, 4); sp74.x = boss->fwork[11] + boss->obj.pos.x; sp74.y = boss->fwork[12] + boss->obj.pos.y; sp74.z = boss->fwork[13] + boss->obj.pos.z; - func_edisplay_8005F0E8(D_i2_80195D98, &sp74); + Object_SetSfxSourceToPos(D_i2_80195D98, &sp74); AUDIO_PLAY_SFX(NA_SE_EN_SZMIS_ENGINE, D_i2_80195D98, 4); Math_SmoothStepToF(&boss->fwork[27], 30.0f, 0.05f, 1.0f, 0); diff --git a/src/overlays/ovl_i3/fox_a6.c b/src/overlays/ovl_i3/fox_a6.c index ed9e797c..17f943ec 100644 --- a/src/overlays/ovl_i3/fox_a6.c +++ b/src/overlays/ovl_i3/fox_a6.c @@ -529,7 +529,7 @@ void Area6_BossA6_Init(BossA6* this) { AUDIO_PLAY_SFX(NA_SE_EN_SHIELD_ROLL_LEVEL, this->sfxSource, 4); } -void Area6_80187944(Boss* bossA6) { +void Area6_Boss_Update(Boss* bossA6) { s32 i; s32 pad; s32 var_s0; @@ -1717,7 +1717,7 @@ void Area6_8018B9BC(Boss* bossA6) { if (D_i3_801C2250[A6_BSS_0] == 0) { for (i = 3, j = 15; j < 18; j++, i++) { if (bossA6->swork[A6_SWK_0 + j] != 0) { - if ((D_ctx_8017812C != 0) && (gPlayerShots[15].unk_64 > 0)) { + if ((D_ctx_8017812C != 0) && (gPlayerShots[15].timer > 0)) { bossA6->swork[A6_SWK_0 + j] -= bossA6->damage; } else if (i + 1 == bossA6->dmgPart) { bossA6->swork[A6_SWK_0 + j] -= bossA6->damage; @@ -1870,7 +1870,7 @@ void Area6_8018C0D0(f32* arg0, f32 arg1, Vec3f* arg2, f32 arg3, s32 arg4) { Matrix_Pop(&gGfxMatrix); } -void Area6_8018C54C(Boss* bossA6) { +void Area6_Boss_Draw(Boss* bossA6) { Vec3f spD0[30]; Vec3f spC4; Vec3f spB8; @@ -2067,7 +2067,7 @@ void Area6_8018D3CC(s32 arg0, f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, s32 i; for (i = 0; i < 10; i++) { - if (gPlayerShots[i].obj.status == 0) { + if (gPlayerShots[i].obj.status == SHOT_FREE) { PlayerShot_Initialize(&gPlayerShots[i]); gPlayerShots[i].vel.z = zVel; gPlayerShots[i].vel.x = xVel; @@ -2075,14 +2075,14 @@ void Area6_8018D3CC(s32 arg0, f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, gPlayerShots[i].obj.pos.x = xPos; gPlayerShots[i].obj.pos.y = yPos; gPlayerShots[i].obj.pos.z = zPos; - gPlayerShots[i].obj.status = OBJ_INIT; + gPlayerShots[i].obj.status = SHOT_ACTIVE; gPlayerShots[i].obj.rot.x = xRot + 180.0f; gPlayerShots[i].obj.rot.y = yRot; gPlayerShots[i].obj.rot.z = -zRot; gPlayerShots[i].unk_58 = 1; gPlayerShots[i].unk_60 = 0; - gPlayerShots[i].obj.id = PLAYERSHOT_1; - gPlayerShots[i].unk_64 = 150; + gPlayerShots[i].obj.id = PLAYERSHOT_TWIN_LASER; + gPlayerShots[i].timer = 150; gPlayerShots[i].sourceId = CS_SHOT_ID; AUDIO_PLAY_SFX(NA_SE_ARWING_SHOT_F, gPlayerShots[i].sfxSource, 4); diff --git a/src/overlays/ovl_i3/fox_aq.c b/src/overlays/ovl_i3/fox_aq.c index 435d50c8..569be961 100644 --- a/src/overlays/ovl_i3/fox_aq.c +++ b/src/overlays/ovl_i3/fox_aq.c @@ -335,11 +335,11 @@ void Aquas_801A92EC(Actor* actor, f32 xUnk, f32 yUnk, f32 zUnk, s32 index, s32 m gTexturedLines[index].timer = 3; } -void Aquas_801A9374(Actor* actor, Vec3f* pos, Vec3f* rot, f32 xVel, f32 yVel, f32 zVel, s32 state, f32 scale, - s32 timerBC, s32 unk48) { +void Aquas_SetupDebris(Actor* actor, Vec3f* pos, Vec3f* rot, f32 xVel, f32 yVel, f32 zVel, s32 state, f32 scale, + s32 timerBC, s32 unk48) { Actor_Initialize(actor); actor->obj.status = OBJ_ACTIVE; - actor->obj.id = OBJ_ACTOR_189; + actor->obj.id = OBJ_ACTOR_DEBRIS; actor->state = state; actor->scale = scale; actor->unk_048 = unk48; @@ -353,13 +353,13 @@ void Aquas_801A9374(Actor* actor, Vec3f* pos, Vec3f* rot, f32 xVel, f32 yVel, f3 Object_SetInfo(&actor->info, actor->obj.id); } -void Aquas_801A9448(Vec3f* pos, Vec3f* rot, f32 xVel, f32 yVel, f32 zVel, s32 unkB8, f32 scale, s32 timerBC, - s32 unk48) { +void Aquas_SpawnDebris(Vec3f* pos, Vec3f* rot, f32 xVel, f32 yVel, f32 zVel, s32 state, f32 scale, s32 timerBC, + s32 unk48) { s32 i; for (i = ARRAY_COUNT(gActors) - 1; i >= 0; i--) { if (gActors[i].obj.status == OBJ_FREE) { - Aquas_801A9374(&gActors[i], pos, rot, xVel, yVel, zVel, unkB8, scale, timerBC, unk48); + Aquas_SetupDebris(&gActors[i], pos, rot, xVel, yVel, zVel, state, scale, timerBC, unk48); break; } } @@ -537,7 +537,7 @@ void Aquas_801A9C98(Player* player) { D_i3_801C4190[0] = D_i3_801C4190[3] = D_i3_801C4190[5] = D_i3_801C4190[1] = 0; } else { var_v0 = 1; - if (actor->info.hitbox[1] == 200000.0f) { + if (actor->info.hitbox[1] == HITBOX_ROTATED) { var_v0 = 5; } D_i3_801C41B8[2] = actor->obj.pos.z + actor->info.hitbox[var_v0 + 0] + actor->info.hitbox[var_v0 + 1]; @@ -783,7 +783,7 @@ void Aquas_801AA4BC(Player* player) { } } -void Aquas_801AA8E8(Player* player) { +void Aquas_UpdateCamera(Player* player) { f32 var_fv0 = gInputPress->stick_x; f32 var_fv1 = -gInputPress->stick_y; f32 temp; @@ -811,7 +811,7 @@ void Aquas_801AA8E8(Player* player) { gCsCamAtX -= player->unk_030 * 0.5f; gCsCamAtX += player->xPath; gCsCamAtY = (player->pos.y - player->yPath) * (750.0f / player->pathHeight); - gCsCamAtY += player->unk_060 * 10.0f; + gCsCamAtY += player->xRock * 10.0f; gCsCamAtY -= player->unk_02C * -0.55f; gCsCamAtY += player->yPath + D_i3_801C41B8[10]; @@ -837,7 +837,7 @@ void Aquas_801AA8E8(Player* player) { Math_SmoothStepToF(&player->camRoll, temp * 0.3f, 0.1f, 1.5f, 0.0f); } -void Aquas_801AACF8(Player* player) { +void Aquas_BlueMarineMove(Player* player) { Vec3f sp8C; Vec3f sp80; Vec3f sp74; @@ -1022,7 +1022,7 @@ void Aquas_801AACF8(Player* player) { player->pos.z += player->vel.z; player->trueZpos = player->pos.z; - player->unk_060 = SIN_DEG(player->rockPhase * 0.7f) * 0.5f; + player->xRock = SIN_DEG(player->rockPhase * 0.7f) * 0.5f; player->bobPhase += 10.0f; player->rockPhase += 8.0f + D_i3_801C41B8[24]; player->yBob = -SIN_DEG(player->bobPhase) * 0.5f; @@ -1073,29 +1073,29 @@ void Aquas_801ABA40(PlayerShot* shot) { if ((fabsf(shot->obj.pos.z - (gPlayer[0].cam.eye.z - gPathProgress)) > 10000.0f) || (fabsf(shot->obj.pos.y - gPlayer[0].cam.eye.y) > 1500.0f) || ((fabsf(shot->obj.pos.x - gPlayer[0].cam.eye.x) > 4000.0f) && (shot->unk_5C != 0))) { - shot->unk_64 = 0; + shot->timer = 0; } if (shot->obj.pos.y < gGroundHeight) { shot->obj.pos.y = gGroundHeight + 2.0f; - func_beam_800365E4(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 0.0f, 0.0f, 0.0f, 0.0f, 90.0f, 2.0f, 0, - 0); + PlayerShot_SpawnEffect344(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 0.0f, 0.0f, 0.0f, 0.0f, 90.0f, + 2.0f, 0, 0); func_effect_8007CF30(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 1.2f); D_i3_801C4190[5] = D_i3_801C4190[3] = 0; - func_beam_80036318(shot); - } else if (((shot->unk_64 == 0) || (D_i3_801C4454 == 0)) && (shot->unk_5C != 0)) { + PlayerShot_Impact(shot); + } else if (((shot->timer == 0) || (D_i3_801C4454 == 0)) && (shot->unk_5C != 0)) { func_effect_8007CF30(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 1.2f); D_i3_801C41B8[21] = D_i3_801C41B8[22] = D_i3_801C41B8[23] = 0.0f; D_i3_801C4190[5] = D_i3_801C4190[3] = 0; - func_beam_80036318(shot); + PlayerShot_Impact(shot); } else { Math_SmoothStepToF(&shot->unk_48, 50.0f, 0.2f, 10.0f, 0.00001f); shot->obj.rot.z += shot->unk_48; if (((gGameFrameCount % 2) == 0)) { - func_beam_80035DEC(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z); + PlayerShot_SpawnEffect351(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z); } - func_beam_80038140(shot); + PlayerShot_CollisionCheck(shot); shot->vec_2C.x = (shot->obj.pos.y * 0.01f) + 1.2f; shot->vec_2C.y = (shot->obj.pos.y * 0.003f) + 0.6f; @@ -1107,7 +1107,7 @@ void Aquas_801ABA40(PlayerShot* shot) { switch (shot->unk_5C) { case 0: - shot->unk_64 = 50; + shot->timer = 50; shot->obj.rot.y = gPlayer[0].rot.y; shot->obj.rot.x = gPlayer[0].rot.x; shot->unk_5C++; @@ -1122,14 +1122,14 @@ void Aquas_801ABA40(PlayerShot* shot) { sp70 = Math_RadToDeg(-Math_Atan2F(sp78, sqrtf(SQ(sp7C) + SQ(sp74)))); Math_SmoothStepToAngle(&shot->obj.rot.y, sp6C, 1.0f, 100.0f, 0.00001f); Math_SmoothStepToAngle(&shot->obj.rot.x, sp70, 1.0f, 100.0f, 0.00001f); - if (shot->unk_64 < 2) { + if (shot->timer < 2) { if (D_i3_801C4458 < -30.0f) { D_i3_801C4458 += 20.0f; } if (D_i3_801C445C < 1.0f) { D_i3_801C445C += 0.25f; } - shot->unk_64 = 10; + shot->timer = 10; } } @@ -1170,13 +1170,13 @@ void Aquas_801ABA40(PlayerShot* shot) { } } -void Aquas_801AC09C(Player* player) { +void Aquas_BlueMarineTorpedo(Player* player) { s32 i; PlayerShot* shot; for (i = 15, shot = &gPlayerShots[15]; i < ARRAY_COUNT(gPlayerShots); i++, shot++) { - if (shot->obj.status == OBJ_FREE) { - func_play_800AC290(player, shot, 0.0f, 0.0f, PLAYERSHOT_8, 50.0f); + if (shot->obj.status == SHOT_FREE) { + Player_SetupArwingShot(player, shot, 0.0f, 0.0f, PLAYERSHOT_LOCK_ON, 50.0f); AUDIO_PLAY_SFX(NA_SE_MAR_BOMB_SHOT, shot->sfxSource, 0); D_i3_801C4190[5] = i + 1; D_i3_801C4454 = 300; @@ -1188,12 +1188,12 @@ void Aquas_801AC09C(Player* player) { } } -void Aquas_801AC18C(Player* player) { +void Aquas_BlueMarineLaser(Player* player) { s32 i; for (i = 0; i < 3; i++) { - if (gPlayerShots[i].obj.status == OBJ_FREE) { - func_play_800AC290(player, &gPlayerShots[i], 0.0f, -10.0f, PLAYERSHOT_0, 120.0f); + if (gPlayerShots[i].obj.status == SHOT_FREE) { + Player_SetupArwingShot(player, &gPlayerShots[i], 0.0f, -10.0f, PLAYERSHOT_SINGLE_LASER, 120.0f); if (gLaserStrength[gPlayerNum] == LASERS_SINGLE) { AUDIO_PLAY_SFX(NA_SE_MAR_SHOT, gPlayerShots[i].sfxSource, 0); } else { @@ -1204,7 +1204,7 @@ void Aquas_801AC18C(Player* player) { } } -void Aquas_801AC274(Player* player) { +void Aquas_BlueMarineShoot(Player* player) { s32 temp; s32 i; f32 tempy1; @@ -1216,7 +1216,7 @@ void Aquas_801AC274(Player* player) { Vec3f sp5C; Actor* actor; - if ((gPlayerShots[D_i3_801C4190[5] - 1].obj.status == OBJ_FREE) && (D_i3_801C4190[5] != 0)) { + if ((gPlayerShots[D_i3_801C4190[5] - 1].obj.status == SHOT_FREE) && (D_i3_801C4190[5] != 0)) { D_i3_801C41B8[21] = D_i3_801C41B8[22] = D_i3_801C41B8[23] = 0.0f; D_i3_801C4190[5] = D_i3_801C4190[3] = 0; } @@ -1246,7 +1246,7 @@ void Aquas_801AC274(Player* player) { temp = D_i3_801C4190[0]; for (i = 0, actor = gActors; i < ARRAY_COUNT(gActors); i++, actor++) { - if ((actor->obj.status == OBJ_ACTIVE) && (actor->obj.id != OBJ_ACTOR_189)) { + if ((actor->obj.status == OBJ_ACTIVE) && (actor->obj.id != OBJ_ACTOR_DEBRIS)) { var_v1 = 1; if (actor->info.hitbox[1] == HITBOX_ROTATED) { var_v1 = 5; @@ -1286,11 +1286,11 @@ void Aquas_801AC274(Player* player) { } if (gInputPress->button & A_BUTTON) { - Aquas_801AC18C(player); + Aquas_BlueMarineLaser(player); } if (gInputPress->button & B_BUTTON) { - Aquas_801AC09C(player); + Aquas_BlueMarineTorpedo(player); if (D_i3_801C4190[0] != 0) { D_i3_801C4190[3] = 1; } @@ -1428,7 +1428,7 @@ void Aquas_801ACBB4(Player* player) { Matrix_Pop(&gGfxMatrix); } -void Aquas_801ACE50(Player* player) { +void Aquas_BlueMarineBoost(Player* player) { f32 pad; f32 pad2; Vec3f sp54; @@ -1513,7 +1513,7 @@ void Aquas_801ACE50(Player* player) { Math_SmoothStepToF(&player->camDist, 0.0f, 0.1f, 2.0f, 0.0f); } -void Aquas_801AD328(Player* player) { +void Aquas_BlueMarineBrake(Player* player) { player->sfx.brake = 0; if ((gBrakeButton[player->num] & gInputHold->button) && (player->unk_230 == 0) && (player->state_1C8 != PLAYERSTATE_1C8_U_TURN) && (player->boostCooldown == 0)) { @@ -2509,7 +2509,7 @@ void Aquas_BossAq_Init(BossAQ* this) { // loop at 2854 unrolls incorrectly // sp100 shouldn't be on the stack // https://decomp.me/scratch/M6ghQ -void Aquas_801B134C(Boss* bossAQ) { +void Aquas_Boss_Update(Boss* bossAQ) { s32 i; s32 i2; s32 i3; @@ -3308,8 +3308,8 @@ void Aquas_801B134C(Boss* bossAQ) { } } #else -void Aquas_801B134C(Boss* bossAQ); -#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_i3/fox_aq/Aquas_801B134C.s") +void Aquas_Boss_Update(Boss* bossAQ); +#pragma GLOBAL_ASM("asm/us/nonmatchings/overlays/ovl_i3/fox_aq/Aquas_Boss_Update.s") #endif bool Aquas_801B42AC(s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3f* rot, void* thisx) { @@ -3575,7 +3575,7 @@ void Aquas_801B49DC(s32 limbIndex, Vec3f* rot, void* thisx) { } // OBJ_BOSS_AQ draw -void Aquas_801B4D84(Boss* bossAQ) { +void Aquas_Boss_Draw(Boss* bossAQ) { Animation_DrawSkeleton(3, D_AQ_602BD60, bossAQ->vwork, Aquas_801B42AC, Aquas_801B49DC, bossAQ, gCalcMatrix); } @@ -3767,8 +3767,8 @@ void Aquas_801B50E8(Actor* actor) { case 7: for (i = 0; i < 8; i++) { - Aquas_801A9448(&actor->vwork[i], &actor->vwork[8 + i], RAND_FLOAT_CENTERED(20.0f), RAND_FLOAT(5.0f), - RAND_FLOAT_CENTERED(10.0f), 49, actor->scale, 200, i); + Aquas_SpawnDebris(&actor->vwork[i], &actor->vwork[8 + i], RAND_FLOAT_CENTERED(20.0f), RAND_FLOAT(5.0f), + RAND_FLOAT_CENTERED(10.0f), 49, actor->scale, 200, i); func_effect_8007BC7C(actor->vwork[i].x, actor->vwork[i].y, actor->vwork[i].z + 100.0f, 6.0f); } actor->itemDrop = DROP_NONE; @@ -3977,8 +3977,8 @@ void Aquas_801B638C(Actor* actor) { if (actor->health == 0) { for (i = 0; i < 9; i++) { - Aquas_801A9448(&actor->vwork[i], &actor->vwork[9 + i], RAND_FLOAT_CENTERED(20.0f), RAND_FLOAT(5.0f), - RAND_FLOAT_CENTERED(10.0f), 48, actor->scale, 200, i); + Aquas_SpawnDebris(&actor->vwork[i], &actor->vwork[9 + i], RAND_FLOAT_CENTERED(20.0f), RAND_FLOAT(5.0f), + RAND_FLOAT_CENTERED(10.0f), 48, actor->scale, 200, i); func_effect_8007BC7C(actor->vwork[i].x, actor->vwork[i].y, actor->vwork[i].z, 10.0f); } @@ -4167,8 +4167,8 @@ void Aquas_801B6FF8(Actor* actor) { actor->itemDrop = DROP_SILVER_RING_50p; Actor_Despawn(actor); for (i = 0; i < 15; i++) { - Aquas_801A9448(&actor->vwork[i], &actor->vwork[15 + i], RAND_FLOAT_CENTERED(20.0f), RAND_FLOAT(5.0f), - RAND_FLOAT_CENTERED(10.0f), 51, actor->scale, 200, i); + Aquas_SpawnDebris(&actor->vwork[i], &actor->vwork[15 + i], RAND_FLOAT_CENTERED(20.0f), RAND_FLOAT(5.0f), + RAND_FLOAT_CENTERED(10.0f), 51, actor->scale, 200, i); func_effect_800815DC(); func_effect_8007D0E0(actor->vwork[i].x, actor->vwork[i].y, actor->vwork[i].z + 100.0f, 6.0f); } @@ -4398,8 +4398,8 @@ void Aquas_801B7C78(Actor* actor) { } for (i = 0; i < 10; i++) { - Aquas_801A9448(&actor->vwork[0 + i], &actor->vwork[10 + i], RAND_FLOAT_CENTERED(20.0f), RAND_FLOAT(5.0f), - RAND_FLOAT_CENTERED(10.0f), 52, actor->scale, 200, i); + Aquas_SpawnDebris(&actor->vwork[0 + i], &actor->vwork[10 + i], RAND_FLOAT_CENTERED(20.0f), RAND_FLOAT(5.0f), + RAND_FLOAT_CENTERED(10.0f), 52, actor->scale, 200, i); func_effect_8007BC7C(actor->vwork[0 + i].x, actor->vwork[0 + i].y, actor->vwork[0 + i].z + 100.0f, 6.0f); } @@ -4825,8 +4825,8 @@ void Aquas_801B91A4(Actor* actor) { } for (i = RAND_INT(10.0f); i < 13; i++) { - Aquas_801A9448(&actor->vwork[0 + i], &actor->vwork[13 + i], RAND_FLOAT_CENTERED(20.0f), RAND_FLOAT(5.0f), - RAND_FLOAT_CENTERED(10.0f), 53, actor->scale, 200, i); + Aquas_SpawnDebris(&actor->vwork[0 + i], &actor->vwork[13 + i], RAND_FLOAT_CENTERED(20.0f), RAND_FLOAT(5.0f), + RAND_FLOAT_CENTERED(10.0f), 53, actor->scale, 200, i); func_effect_8007BC7C(actor->vwork[0 + i].x, actor->vwork[0 + i].y, actor->vwork[0 + i].z + 100.0f, 6.0f); } @@ -5237,8 +5237,8 @@ void Aquas_801BA6A4(Actor* actor) { } } else { for (i = 0; i < 4; i++) { - Aquas_801A9448(&actor->obj.pos, &actor->obj.rot, RAND_FLOAT_CENTERED(30.0f), RAND_FLOAT(5.0f), - RAND_FLOAT_CENTERED(10.0f), 54, 0.1f, 200, i); + Aquas_SpawnDebris(&actor->obj.pos, &actor->obj.rot, RAND_FLOAT_CENTERED(30.0f), RAND_FLOAT(5.0f), + RAND_FLOAT_CENTERED(10.0f), 54, 0.1f, 200, i); } } func_effect_8007BC7C(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z + 130.0f, actor->scale * 30.0f); @@ -5287,8 +5287,8 @@ void Aquas_801BADF8(Actor* actor) { case 2: for (i = 0; i < 5; i++) { - Aquas_801A9448(&actor->vwork[0 + i], &actor->vwork[5 + i], RAND_FLOAT_CENTERED(20.0f), RAND_FLOAT(5.0f), - RAND_FLOAT_CENTERED(10.0f), 55, actor->scale, 200, i); + Aquas_SpawnDebris(&actor->vwork[0 + i], &actor->vwork[5 + i], RAND_FLOAT_CENTERED(20.0f), + RAND_FLOAT(5.0f), RAND_FLOAT_CENTERED(10.0f), 55, actor->scale, 200, i); func_effect_8007BC7C(actor->vwork[0 + i].x, actor->vwork[0 + i].y, actor->vwork[0 + i].z + 100.0f, 6.0f); } @@ -5898,7 +5898,7 @@ void Aquas_801BC9A0(Actor* actor) { case 3: for (i = 0; i < 2; i++) { for (j = 0; j < ARRAY_COUNT(gActors); j++) { - if ((gActors[j].obj.status == OBJ_ACTIVE) && (gActors[j].obj.id == OBJ_ACTOR_189) && + if ((gActors[j].obj.status == OBJ_ACTIVE) && (gActors[j].obj.id == OBJ_ACTOR_DEBRIS) && (gActors[j].state == 58)) { Object_Kill(&gActors[j].obj, gActors[j].sfxSource); break; @@ -5937,8 +5937,8 @@ void Aquas_801BC9A0(Actor* actor) { } for (j = 0; j < 10; j++) { - Aquas_801A9448(&actor->vwork[4], &actor->vwork[5], RAND_FLOAT_CENTERED(20.0f), RAND_FLOAT(5.0f), - RAND_FLOAT_CENTERED(10.0f), 58, 0.2f + RAND_FLOAT(1.0f), 200, 0); + Aquas_SpawnDebris(&actor->vwork[4], &actor->vwork[5], RAND_FLOAT_CENTERED(20.0f), RAND_FLOAT(5.0f), + RAND_FLOAT_CENTERED(10.0f), 58, 0.2f + RAND_FLOAT(1.0f), 200, 0); func_effect_8007BC7C(actor->vwork[4].x, actor->vwork[4].y, actor->vwork[4].z + 50.0f, 6.0f); } @@ -6488,11 +6488,11 @@ void Aquas_801BEB1C(Actor* actor) { } // OBJ_BOSS_301 action -void Aquas_801BEC50(Boss* boss301) { +void Aquas_Boss301_Update(Boss* boss301) { } // OBJ_BOSS_301 draw -void Aquas_801BEC5C(Boss* boss301) { +void Aquas_Boss301_Draw(Boss* boss301) { } // OBJ_ACTOR_188 action @@ -6503,7 +6503,7 @@ void Aquas_801BEC68(Actor* actor) { void Aquas_801BEC74(Actor* actor) { } -void Aquas_801BEC80(Player* player) { +void Aquas_Update360(Player* player) { } void Aquas_801BEC8C(void* arg0) { diff --git a/src/overlays/ovl_i3/fox_so.c b/src/overlays/ovl_i3/fox_so.c index fdc00b24..47a10c3d 100644 --- a/src/overlays/ovl_i3/fox_so.c +++ b/src/overlays/ovl_i3/fox_so.c @@ -252,10 +252,10 @@ void Solar_8019EA7C(Actor* actor) { } if ((actor->unk_046 == 0) || (actor->unk_046 == 1)) { actor->unk_046 = 3; - func_edisplay_8005F0E8(actor->sfxSource, &actor->obj.pos); + Object_SetSfxSourceToPos(actor->sfxSource, &actor->obj.pos); AUDIO_PLAY_SFX(NA_SE_OB_MAGMA_WAVE, actor->sfxSource, 0); } - if (func_play_800A73E4(&sp34, &sp30, actor->obj.pos.x, -100.0f, actor->obj.pos.z)) { + if (Play_CheckDynaFloorCollision(&sp34, &sp30, actor->obj.pos.x, -100.0f, actor->obj.pos.z)) { D_ctx_801782EC[sp30] = actor->fwork[0]; D_ctx_801782EC[sp30 + 1] = actor->fwork[0] * 0.95f; D_ctx_801782EC[sp30 - 1] = actor->fwork[0] * 0.95f; @@ -419,7 +419,7 @@ void Solar_8019F20C(Actor* actor) { case 1: actor->state = 2; actor->vel.y = actor->fwork[0]; - func_play_800A73E4(&sp8C, &sp88, actor->obj.pos.x, actor->obj.pos.y - 100.0f, actor->obj.pos.z); + Play_CheckDynaFloorCollision(&sp8C, &sp88, actor->obj.pos.x, actor->obj.pos.y - 100.0f, actor->obj.pos.z); actor->obj.pos.y = sp8C; for (i = 0; i < 4; i++) { Solar_8019E9F4(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, D_i3_801BF8E0[i], @@ -430,7 +430,7 @@ void Solar_8019F20C(Actor* actor) { break; case 2: actor->gravity = 0.5f; - if (func_play_800A73E4(&sp8C, &sp88, actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z)) { + if (Play_CheckDynaFloorCollision(&sp8C, &sp88, actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z)) { Object_Kill(&actor->obj, actor->sfxSource); func_effect_8007A6F0(&actor->obj.pos, NA_SE_OB_SNROCK_DISAPPEAR); for (i = 0; i < 4; i++) { @@ -665,7 +665,7 @@ void Solar_801A003C(Actor* actor) { actor->state = 0; actor->timer_0BE = 50; actor->unk_04E = 0; - func_edisplay_8005F0E8(actor->sfxSource, &actor->obj.pos); + Object_SetSfxSourceToPos(actor->sfxSource, &actor->obj.pos); AUDIO_PLAY_SFX(NA_SE_EN_OUT_PROMINENCE, actor->sfxSource, 4); } break; @@ -704,7 +704,7 @@ void Solar_801A0120(Effect* effect) { Object_Kill(&effect->obj, effect->sfxSource); } sp48 = effect->unk_48; - if (func_play_800A73E4(&sp5C, &sp4C, effect->obj.pos.x, effect->obj.pos.y, effect->obj.pos.z)) { + if (Play_CheckDynaFloorCollision(&sp5C, &sp4C, effect->obj.pos.x, effect->obj.pos.y, effect->obj.pos.z)) { effect->unk_48 = 1; if (effect->scale2 == 20.0f) { AUDIO_PLAY_SFX(NA_SE_EN_IN_PROMINENCE, effect->sfxSource, 4); @@ -775,7 +775,7 @@ void Solar_801A0120(Effect* effect) { effect->obj.rot.z = 0.0f; } sp48 = effect->unk_48; - if (func_play_800A73E4(&sp5C, &sp4C, effect->obj.pos.x, effect->obj.pos.y, effect->obj.pos.z)) { + if (Play_CheckDynaFloorCollision(&sp5C, &sp4C, effect->obj.pos.x, effect->obj.pos.y, effect->obj.pos.z)) { effect->unk_48 = 1; if (effect->scale2 == 20.0f) { AUDIO_PLAY_SFX(NA_SE_EN_IN_PROMINENCE, effect->sfxSource, 4); @@ -936,7 +936,7 @@ void Solar_801A0DF8(f32 xPos, f32 zPos, f32 yRot, s32 index, f32 yPos) { gActors[sp2C].timer_0BE = 50; gActors[sp2C].unk_04E = 0; gActors[sp2C].obj.pos.y = -1.0f * yPos; - func_edisplay_8005F0E8(gActors[sp2C].sfxSource, &gActors[sp2C].obj.pos); + Object_SetSfxSourceToPos(gActors[sp2C].sfxSource, &gActors[sp2C].obj.pos); AUDIO_PLAY_SFX(NA_SE_EN_OUT_PROMINENCE, gActors[sp2C].sfxSource, 4); } } @@ -1090,7 +1090,7 @@ void Solar_LevelStart(Player* player) { RAND_FLOAT_CENTERED(2000.0f) + 500.0f + gPathProgress, RAND_FLOAT(20.0f) + 20.0f); } if (gCsFrameCount == 615) { - func_play_800A6028(player->sfxSource, NA_SE_ARWING_BOOST); + Play_PlaySfxFirstPlayer(player->sfxSource, NA_SE_ARWING_BOOST); gActors[0].fwork[29] = gActors[1].fwork[29] = gActors[2].fwork[29] = 5.0f; gActors[0].state = 3; gActors[1].state = 2; @@ -1172,7 +1172,7 @@ void Solar_801A1CD8(Actor* actor, f32 xPos, f32 yPos, f32 zPos, f32 xRot, f32 yR f32 zVel, s32 unk46) { Actor_Initialize(actor); actor->obj.status = OBJ_INIT; - actor->obj.id = OBJ_ACTOR_189; + actor->obj.id = OBJ_ACTOR_DEBRIS; actor->state = 40; actor->unk_046 = unk46; actor->unk_04A = 3; @@ -1330,7 +1330,7 @@ void Solar_801A23F4(Boss* bossSO) { bossSO->info.hitbox[42] = 110.0f; } if (bossSO->unk_04C == 29) { - func_edisplay_8005F0E8(bossSO->sfxSource, &bossSO->obj.pos); + Object_SetSfxSourceToPos(bossSO->sfxSource, &bossSO->obj.pos); AUDIO_PLAY_SFX(NA_SE_EN_OUT_PROMINENCE, bossSO->sfxSource, 4); } if (bossSO->unk_04C == 80) { @@ -1357,7 +1357,7 @@ void Solar_801A23F4(Boss* bossSO) { bossSO->info.hitbox[24] = 275.0f; } if (bossSO->unk_04C == 10) { - func_edisplay_8005F0E8(bossSO->sfxSource, &bossSO->obj.pos); + Object_SetSfxSourceToPos(bossSO->sfxSource, &bossSO->obj.pos); AUDIO_PLAY_SFX(NA_SE_EN_OUT_PROMINENCE, bossSO->sfxSource, 4); } if (bossSO->unk_04C == 50) { @@ -1449,7 +1449,7 @@ void Solar_801A23F4(Boss* bossSO) { bossSO->info.hitbox[24] = 110.0f; } if (bossSO->unk_04C == 5) { - func_edisplay_8005F0E8(bossSO->sfxSource, &bossSO->obj.pos); + Object_SetSfxSourceToPos(bossSO->sfxSource, &bossSO->obj.pos); AUDIO_PLAY_SFX(NA_SE_EN_OUT_PROMINENCE, bossSO->sfxSource, 4); } if (bossSO->unk_04C == 20) { @@ -1653,7 +1653,7 @@ void Solar_801A3510(Boss* bossSO) { } } if (bossSO->unk_04C == 29) { - func_edisplay_8005F0E8(bossSO->sfxSource, &bossSO->obj.pos); + Object_SetSfxSourceToPos(bossSO->sfxSource, &bossSO->obj.pos); AUDIO_PLAY_SFX(NA_SE_EN_OUT_PROMINENCE, bossSO->sfxSource, 4); } if (bossSO->unk_04C == 80) { @@ -1671,7 +1671,7 @@ void Solar_801A3510(Boss* bossSO) { } Math_SmoothStepToAngle(&bossSO->obj.rot.x, 20.0f, 0.1f, 10.0f, 0.1f); if (bossSO->unk_04C == 10) { - func_edisplay_8005F0E8(bossSO->sfxSource, &bossSO->obj.pos); + Object_SetSfxSourceToPos(bossSO->sfxSource, &bossSO->obj.pos); AUDIO_PLAY_SFX(NA_SE_EN_OUT_PROMINENCE, bossSO->sfxSource, 4); } if (bossSO->unk_04C == 50) { @@ -2282,7 +2282,7 @@ BossSOfunc D_i3_801BF980[9] = { Solar_801A4214, Solar_801A4A34, Solar_801A4EF8, Solar_801A56B8, }; -void Solar_801A5B3C(Boss* bossSO) { +void Solar_Boss_Update(Boss* bossSO) { f32 sp1CC; f32 sp1C8; f32 sp1C4; @@ -2346,15 +2346,18 @@ void Solar_801A5B3C(Boss* bossSO) { bossSO->info.hitbox[41] = bossSO->fwork[SO_FWK_25] - bossSO->obj.pos.x; } if (((gGameFrameCount % 8) == 0) && (bossSO->fwork[SO_FWK_3] < 4800.0f)) { - if (func_play_800A73E4(&sp1C0, &sp1B8, bossSO->obj.pos.x, bossSO->obj.pos.y - 160.0f, bossSO->obj.pos.z)) { + if (Play_CheckDynaFloorCollision(&sp1C0, &sp1B8, bossSO->obj.pos.x, bossSO->obj.pos.y - 160.0f, + bossSO->obj.pos.z)) { Solar_801A1EB0(bossSO, bossSO->obj.pos.x, 50.0f, sp1C0 - 170.0f, bossSO->obj.pos.z + 100.0f); } - if ((bossSO->swork[SO_SWK_2] != 0) && func_play_800A73E4(&sp1C0, &sp1B8, bossSO->fwork[SO_FWK_16], - bossSO->fwork[SO_FWK_17], bossSO->fwork[SO_FWK_18])) { + if ((bossSO->swork[SO_SWK_2] != 0) && + Play_CheckDynaFloorCollision(&sp1C0, &sp1B8, bossSO->fwork[SO_FWK_16], bossSO->fwork[SO_FWK_17], + bossSO->fwork[SO_FWK_18])) { Solar_801A1EB0(bossSO, bossSO->fwork[SO_FWK_16], 50.0f, sp1C0 - 150.f, bossSO->fwork[SO_FWK_18] + 150.0f); } - if ((bossSO->swork[SO_SWK_3] != 0) && func_play_800A73E4(&sp1C0, &sp1B8, bossSO->fwork[SO_FWK_13], - bossSO->fwork[SO_FWK_14], bossSO->fwork[SO_FWK_15])) { + if ((bossSO->swork[SO_SWK_3] != 0) && + Play_CheckDynaFloorCollision(&sp1C0, &sp1B8, bossSO->fwork[SO_FWK_13], bossSO->fwork[SO_FWK_14], + bossSO->fwork[SO_FWK_15])) { Solar_801A1EB0(bossSO, bossSO->fwork[SO_FWK_13], 50.0f, sp1C0 - 150.0f, bossSO->fwork[SO_FWK_15] + 150.0f); } } @@ -2697,7 +2700,7 @@ void Solar_801A6BDC(s32 limbIndex, Vec3f* rot, void* thisx) { } } -void Solar_801A71B8(Boss* bossSO) { +void Solar_Boss_Draw(Boss* bossSO) { s32 i; Vec3f spE8[9] = { { 150.0f, 300.0f, 100.0f }, { -100.0f, 200.0f, 100.0f }, { 50.0f, 100.0f, 100.0f }, diff --git a/src/overlays/ovl_i3/fox_zo.c b/src/overlays/ovl_i3/fox_zo.c index 9b29c3c0..b1f71137 100644 --- a/src/overlays/ovl_i3/fox_zo.c +++ b/src/overlays/ovl_i3/fox_zo.c @@ -77,7 +77,7 @@ void Zoness_8019962C(Boss* bossZO, f32 arg1); // /* 408 */ Vec3f unk_198; // /* 420 */ char pad1A4[4]; // /* 424 */ Vec3f unk_1A8; -// /* 436 */ Vec3f unk_1B4; +// /* 436 */ Vec3f turretActor; // /* 448 */ char pad1C0[152]; // } UnkStruct_1C24E8; /* size = 600 */ @@ -520,31 +520,32 @@ void Zoness_8018FF50(Actor* actor) { actor->obj.rot.x = RAD_TO_DEG(-Math_Atan2F(gPlayer[0].cam.eye.y - actor->obj.pos.y, temp)); } -void Zoness_80190028(Actor* actor, Vec3f* pos, Vec3f* rot, f32 xVel, f32 yVel, f32 zVel, s32 arg6, f32 scale, s32 arg8, - s32 arg9) { +void Zoness_SetupDebris(Actor* actor, Vec3f* pos, Vec3f* rot, f32 xVel, f32 yVel, f32 zVel, s32 state, f32 scale, + s32 timerBC, s32 unk48) { Actor_Initialize(actor); actor->obj.status = OBJ_ACTIVE; - actor->obj.id = OBJ_ACTOR_189; - actor->state = arg6; + actor->obj.id = OBJ_ACTOR_DEBRIS; + actor->state = state; actor->scale = scale; - actor->unk_048 = arg9; + actor->unk_048 = unk48; actor->obj.pos = *pos; actor->obj.rot = *rot; actor->vel.x = xVel; actor->vel.y = yVel; actor->vel.z = zVel; - actor->timer_0BC = arg8; + actor->timer_0BC = timerBC; actor->gravity = 0.5f; Object_SetInfo(&actor->info, actor->obj.id); } -void Zoness_801900FC(Vec3f* pos, Vec3f* rot, f32 xVel, f32 yVel, f32 zVel, s32 arg6, f32 scale, s32 arg8, s32 arg9) { +void Zoness_SpawnDebris(Vec3f* pos, Vec3f* rot, f32 xVel, f32 yVel, f32 zVel, s32 state, f32 scale, s32 timerBC, + s32 unk48) { s32 i; for (i = ARRAY_COUNT(gActors) - 1; i > 0; i--) { if (gActors[i].obj.status == OBJ_FREE) { - Zoness_80190028(&gActors[i], pos, rot, xVel, yVel, zVel, arg6, scale, arg8, arg9); + Zoness_SetupDebris(&gActors[i], pos, rot, xVel, yVel, zVel, state, scale, timerBC, unk48); break; } } @@ -641,8 +642,8 @@ void Zoness_801904CC(Actor* actor) { break; case 1: for (i = 0; i < 11; i++) { - Zoness_801900FC(&actor->vwork[i], &actor->vwork[i + 11], RAND_FLOAT_CENTERED(20.0f), RAND_FLOAT(-10.0f), - RAND_FLOAT(10.0f), 41, actor->scale, 200, i); + Zoness_SpawnDebris(&actor->vwork[i], &actor->vwork[i + 11], RAND_FLOAT_CENTERED(20.0f), + RAND_FLOAT(-10.0f), RAND_FLOAT(10.0f), 41, actor->scale, 200, i); } actor->itemDrop = DROP_NONE; Actor_Despawn(actor); @@ -722,7 +723,7 @@ void Zoness_80190A00(Actor* actor) { s32 sp28; if ((actor->timer_0C0 == 0) && - func_play_800A73E4(&sp2C, &sp28, actor->obj.pos.x, actor->obj.pos.y - 50.0f, actor->obj.pos.z)) { + Play_CheckDynaFloorCollision(&sp2C, &sp28, actor->obj.pos.x, actor->obj.pos.y - 50.0f, actor->obj.pos.z)) { func_effect_8008377C(actor->obj.pos.x, sp2C, actor->obj.pos.z + 150.0f, 0.0f, 1.7f); if (actor->vel.y >= 0.0f) { AUDIO_PLAY_SFX(NA_SE_OUT_SPLASH_L, actor->sfxSource, 4); @@ -869,7 +870,7 @@ void Zoness_80191010(Actor* actor) { actor->vel.y = 0.0f; Object_Kill(&actor->obj, actor->sfxSource); } - if (func_play_800A73E4(&sp7C, &sp70, actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z) && + if (Play_CheckDynaFloorCollision(&sp7C, &sp70, actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z) && (actor->iwork[0] < 2) && (actor->timer_0C0 == 0)) { if (var_fs0 == 5.0f) { AUDIO_PLAY_SFX(NA_SE_OUT_SPLASH_L, actor->sfxSource, 4); @@ -883,8 +884,8 @@ void Zoness_80191010(Actor* actor) { break; case 3: for (i = 0; i < 3; i++) { - Zoness_801900FC(&actor->vwork[i], &actor->vwork[3 + i], RAND_FLOAT_CENTERED(20.0f), RAND_FLOAT(-10.0f), - RAND_FLOAT(10.0f), 42, actor->scale, 200, i); + Zoness_SpawnDebris(&actor->vwork[i], &actor->vwork[3 + i], RAND_FLOAT_CENTERED(20.0f), + RAND_FLOAT(-10.0f), RAND_FLOAT(10.0f), 42, actor->scale, 200, i); } actor->itemDrop = DROP_SILVER_RING_25p; Actor_Despawn(actor); @@ -1042,7 +1043,8 @@ void Zoness_80191BC4(Actor* actor) { actor->iwork[1] = 1; AUDIO_PLAY_SFX(NA_SE_EN_FALLING_DOWN, actor->sfxSource, 4); } - if (func_play_800A73E4(&sp4C, &sp48, actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z) && (actor->state == 0)) { + if (Play_CheckDynaFloorCollision(&sp4C, &sp48, actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z) && + (actor->state == 0)) { func_effect_8007B344(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 20.0f, 7); func_effect_8007C120(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 0.0f, 0.0f, 0.0f, 0.5f, 50); Object_Kill(&actor->obj, actor->sfxSource); @@ -1133,7 +1135,7 @@ void Zoness_80192094(Actor* actor) { Math_SmoothStepToAngle(&actor->obj.rot.x, temp_fs0_2, 0.1f, 10.0f, 0.00001f); Math_SmoothStepToAngle(&actor->obj.rot.y, spA4, 0.1f, 10.0f, 0.00001f); if ((actor->iwork[0] == 0) && - (func_play_800A73E4(&spB8, &spA0, actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z) != 0)) { + (Play_CheckDynaFloorCollision(&spB8, &spA0, actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z) != 0)) { func_effect_8008377C(actor->obj.pos.x, spB8, actor->obj.pos.z + 100.0f, 0.0f, 1.5f); actor->iwork[0] += 1; if (actor->vel.y >= 0.0f) { @@ -1211,8 +1213,8 @@ void Zoness_80192094(Actor* actor) { break; case 4: for (i = 0; i < 6; i++) { - Zoness_801900FC(&actor->vwork[i], &actor->vwork[i + 6], RAND_FLOAT_CENTERED(40.0f), RAND_FLOAT(-10.0f), - RAND_FLOAT(20.0f), 44, actor->scale, 200, i); + Zoness_SpawnDebris(&actor->vwork[i], &actor->vwork[i + 6], RAND_FLOAT_CENTERED(40.0f), + RAND_FLOAT(-10.0f), RAND_FLOAT(20.0f), 44, actor->scale, 200, i); } actor->itemDrop = DROP_BOMB; Actor_Despawn(actor); @@ -1312,8 +1314,8 @@ void Zoness_80192834(Actor* actor) { break; case 2: for (i = 0; i < 5; i++) { - Zoness_801900FC(&actor->vwork[i], &actor->vwork[5 + i], RAND_FLOAT_CENTERED(20.0f), RAND_FLOAT(-10.0f), - RAND_FLOAT(10.0f), 43, actor->scale, 200, i); + Zoness_SpawnDebris(&actor->vwork[i], &actor->vwork[5 + i], RAND_FLOAT_CENTERED(20.0f), + RAND_FLOAT(-10.0f), RAND_FLOAT(10.0f), 43, actor->scale, 200, i); } actor->itemDrop = DROP_NONE; Actor_Despawn(actor); @@ -1324,7 +1326,7 @@ void Zoness_80192834(Actor* actor) { } if ((actor->iwork[0] == 0) && - (func_play_800A73E4(&sp74, &sp70, actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z) != 0)) { + (Play_CheckDynaFloorCollision(&sp74, &sp70, actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z) != 0)) { actor->iwork[0]++; func_effect_8008377C(actor->obj.pos.x, sp74, actor->obj.pos.z, 0.0f, 0.7f); if (actor->vel.y >= 0.0f) { @@ -1430,8 +1432,8 @@ void Zoness_80192E64(Actor* actor) { break; case 3: for (i = 0; i < 9; i++) { - Zoness_801900FC(&actor->vwork[i], &actor->vwork[9 + i], RAND_FLOAT_CENTERED(40.0f), RAND_FLOAT(-10.0f), - RAND_FLOAT(20.0f), 59, actor->scale, 200, i); + Zoness_SpawnDebris(&actor->vwork[i], &actor->vwork[9 + i], RAND_FLOAT_CENTERED(40.0f), + RAND_FLOAT(-10.0f), RAND_FLOAT(20.0f), 59, actor->scale, 200, i); } actor->itemDrop = DROP_BOMB_33p; Actor_Despawn(actor); @@ -1452,7 +1454,7 @@ void Zoness_80192E64(Actor* actor) { } actor->dmgType = DMG_NONE; } - if (func_play_800A73E4(&sp70, &sp6C, actor->obj.pos.x, actor->obj.pos.y - 1000.0f, actor->obj.pos.z)) { + if (Play_CheckDynaFloorCollision(&sp70, &sp6C, actor->obj.pos.x, actor->obj.pos.y - 1000.0f, actor->obj.pos.z)) { Math_SmoothStepToF(&actor->obj.pos.y, sp70 + 300.0f, 0.1f, 20.0f, 0); } } @@ -1960,7 +1962,7 @@ void Zoness_80194394(s32 limbIndex, Vec3f* rot, void* thisx) { } } -void Zoness_801949DC(Boss* bossZO) { +void Zoness_Boss_Draw(Boss* bossZO) { Matrix_Translate(gCalcMatrix, 0.0f, bossZO->fwork[ZO_FWK_3], 0.0f, MTXF_APPLY); Matrix_Scale(gCalcMatrix, 2.6f, 2.6f, 2.6f, MTXF_APPLY); Animation_DrawSkeleton(3, D_ZO_6019E18, bossZO->vwork, Zoness_80193D08, Zoness_80194394, bossZO, gCalcMatrix); @@ -1972,7 +1974,7 @@ f32 D_i3_801BF6CC[2] = { 250.0f, -250.0f }; f32 D_i3_801BF6D4[2] = { 330.0f, 30.0f }; // OBJ_BOSS_ZO action -void Zoness_80194A84(Boss* bossZO) { +void Zoness_Boss_Update(Boss* bossZO) { f32 sp134; s32 sp130; s32 i; @@ -2085,8 +2087,8 @@ void Zoness_80194A84(Boss* bossZO) { if ((((gGameFrameCount % 8) == 0) || (bossZO->timer_050 == 43)) && (bossZO->swork[ZO_SWK_13] == 0) && ((bossZO->swork[ZO_SWK_12] < 7) || (bossZO->timer_050 == 43))) { D_ctx_801779A8[0] = 20; - if (func_play_800A73E4(&sp134, &sp130, sZoFwork[ZO_BSF_43_X], sZoFwork[ZO_BSF_43_Y] - 300.0f, - sZoFwork[ZO_BSF_43_Z])) { + if (Play_CheckDynaFloorCollision(&sp134, &sp130, sZoFwork[ZO_BSF_43_X], sZoFwork[ZO_BSF_43_Y] - 300.0f, + sZoFwork[ZO_BSF_43_Z])) { sp100 = 1.5f; spFC = 2.0f; if (bossZO->timer_050 == 43) { @@ -2444,9 +2446,9 @@ void Zoness_80194A84(Boss* bossZO) { spD8.y = Math_ModF(RAND_FLOAT_CENTERED(60.0f) + 360.0f, 360.0f); spD8.z = bossZO->obj.rot.z; for (i = 0; i < 5; i++) { - Zoness_801900FC(&spE4, &spD8, RAND_FLOAT_CENTERED(30.0f), RAND_FLOAT_CENTERED(20.0f), - RAND_FLOAT_CENTERED(30.0f), 4, 1.0f, RAND_FLOAT(15.0f) + (bossZO->unk_3F8 * 10.0f), - 0); + Zoness_SpawnDebris(&spE4, &spD8, RAND_FLOAT_CENTERED(30.0f), RAND_FLOAT_CENTERED(20.0f), + RAND_FLOAT_CENTERED(30.0f), 4, 1.0f, + RAND_FLOAT(15.0f) + (bossZO->unk_3F8 * 10.0f), 0); } } bossZO->vel.x = 0.0f; @@ -2493,7 +2495,7 @@ void Zoness_80194A84(Boss* bossZO) { case 7: D_ctx_801779A8[0] = 20; if (((gGameFrameCount % 8) == 0) && - (func_play_800A73E4(&sp134, &sp130, bossZO->obj.pos.x, -300.0f, bossZO->obj.pos.z) != 0)) { + (Play_CheckDynaFloorCollision(&sp134, &sp130, bossZO->obj.pos.x, -300.0f, bossZO->obj.pos.z) != 0)) { func_effect_8008377C(RAND_FLOAT_CENTERED(500.0f) + bossZO->obj.pos.x, sp134 - 300.0f, RAND_FLOAT_CENTERED(3000.0f) + bossZO->obj.pos.z, 5.0f, 2.0f); } @@ -2642,8 +2644,8 @@ void Zoness_80194A84(Boss* bossZO) { sZoFwork[ZO_BSF_87] -= 10.0f; sZoFwork[ZO_BSF_88] += 20.0f; func_effect_8007D0E0(sZoFwork[ZO_BSF_43_X], sZoFwork[ZO_BSF_43_Y], sZoFwork[ZO_BSF_43_Z], 5.0f); - if ((func_play_800A73E4(&sp134, &sp130, sZoFwork[ZO_BSF_43_X], sZoFwork[ZO_BSF_43_Y] - 100.0f, - sZoFwork[ZO_BSF_43_Z]) != 0) && + if ((Play_CheckDynaFloorCollision(&sp134, &sp130, sZoFwork[ZO_BSF_43_X], sZoFwork[ZO_BSF_43_Y] - 100.0f, + sZoFwork[ZO_BSF_43_Z]) != 0) && (sZoSwork[ZO_BSS_45] == 0)) { if (gPlayer) {} func_effect_8008377C(sZoFwork[ZO_BSF_43_X], sp134, sZoFwork[ZO_BSF_43_Z] + 30.0f, 0.0f, 2.0f); @@ -2660,8 +2662,8 @@ void Zoness_80194A84(Boss* bossZO) { sZoFwork[ZO_BSF_81] += 12.0f; sZoFwork[ZO_BSF_82] -= 10.0f; func_effect_8007D0E0(sZoFwork[ZO_BSF_29_X], sZoFwork[ZO_BSF_29_Y], sZoFwork[ZO_BSF_29_Z], 5.0f); - if ((func_play_800A73E4(&sp134, &sp130, sZoFwork[ZO_BSF_29_X], sZoFwork[ZO_BSF_29_Y] - 100.0f, - sZoFwork[ZO_BSF_29_Z]) != 0) && + if ((Play_CheckDynaFloorCollision(&sp134, &sp130, sZoFwork[ZO_BSF_29_X], sZoFwork[ZO_BSF_29_Y] - 100.0f, + sZoFwork[ZO_BSF_29_Z]) != 0) && (sZoSwork[ZO_BSS_46] == 0)) { func_effect_8008377C(sZoFwork[ZO_BSF_29_X], sp134, sZoFwork[ZO_BSF_29_Z] + 30.0f, 0.0f, 2.0f); sZoSwork[ZO_BSS_46]++; @@ -2677,8 +2679,8 @@ void Zoness_80194A84(Boss* bossZO) { sZoFwork[ZO_BSF_84] += 12.0f; sZoFwork[ZO_BSF_85] -= 10.0f; func_effect_8007D0E0(sZoFwork[ZO_BSF_32_X], sZoFwork[ZO_BSF_32_Y], sZoFwork[ZO_BSF_32_Z], 5.0f); - if ((func_play_800A73E4(&sp134, &sp130, sZoFwork[ZO_BSF_32_X], sZoFwork[ZO_BSF_32_Y] - 100.0f, - sZoFwork[ZO_BSF_32_Z]) != 0) && + if ((Play_CheckDynaFloorCollision(&sp134, &sp130, sZoFwork[ZO_BSF_32_X], sZoFwork[ZO_BSF_32_Y] - 100.0f, + sZoFwork[ZO_BSF_32_Z]) != 0) && (sZoSwork[ZO_BSS_47] == 0)) { func_effect_8008377C(sZoFwork[ZO_BSF_32_X], sp134, sZoFwork[ZO_BSF_32_Z] + 30.0f, 0.0f, 2.0f); sZoSwork[ZO_BSS_47]++; @@ -2709,8 +2711,8 @@ void Zoness_80194A84(Boss* bossZO) { sZoFwork[ZO_BSF_91] -= 5.0f; sZoFwork[ZO_BSF_92] -= 5.0f; func_effect_8007D0E0(sZoFwork[ZO_BSF_52_X], sZoFwork[ZO_BSF_52_Y], sZoFwork[ZO_BSF_52_Z], 5.0f); - if ((func_play_800A73E4(&sp134, &sp130, sZoFwork[ZO_BSF_52_X], sZoFwork[ZO_BSF_52_Y] - 100.0f, - sZoFwork[ZO_BSF_52_Z]) != 0) && + if ((Play_CheckDynaFloorCollision(&sp134, &sp130, sZoFwork[ZO_BSF_52_X], sZoFwork[ZO_BSF_52_Y] - 100.0f, + sZoFwork[ZO_BSF_52_Z]) != 0) && (sZoSwork[ZO_BSS_48] == 0)) { func_effect_8008377C(sZoFwork[ZO_BSF_52_X], sp134, sZoFwork[ZO_BSF_52_Z] + 100.0f, 0.0f, 2.0f); sZoSwork[ZO_BSS_48]++; @@ -2981,7 +2983,8 @@ void Zoness_80194A84(Boss* bossZO) { spD8.z = sZoFwork[ZO_BSF_52_Z]; func_effect_8007A6F0(&spD8, NA_SE_OB_DAMAGE_M); } - if (func_play_800A73E4(&sp134, &sp130, bossZO->obj.pos.x, bossZO->obj.pos.y - 500.0f, bossZO->obj.pos.z) != 0) { + if (Play_CheckDynaFloorCollision(&sp134, &sp130, bossZO->obj.pos.x, bossZO->obj.pos.y - 500.0f, + bossZO->obj.pos.z) != 0) { Math_SmoothStepToF(&bossZO->obj.pos.y, sp134 - 20.0f, 0.1f, bossZO->fwork[ZO_FWK_4], 0.0f); bossZO->fwork[ZO_FWK_1] = SIN_DEG(gGameFrameCount * 7.0f) * 12.0f; bossZO->fwork[ZO_FWK_2] = COS_DEG(gGameFrameCount * 9.0f) * 12.0f; @@ -3394,7 +3397,8 @@ void Zoness_80199A28(Actor* actor) { } break; case 1: - if ((func_play_800A73E4(&sp3C, &sp34, actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z) != 0) && + if ((Play_CheckDynaFloorCollision(&sp3C, &sp34, actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z) != + 0) && (actor->iwork[1] == 0)) { func_effect_8008377C(actor->obj.pos.x, sp3C, actor->obj.pos.z, 0.0f, 0.5f); actor->iwork[1]++; @@ -3410,8 +3414,8 @@ void Zoness_80199A28(Actor* actor) { break; case 2: actor->gravity = 1.0f; - if (func_play_800A73E4(&sp3C, &sp34, actor->obj.pos.x, actor->fwork[0] + actor->obj.pos.y, - actor->obj.pos.z) != 0) { + if (Play_CheckDynaFloorCollision(&sp3C, &sp34, actor->obj.pos.x, actor->fwork[0] + actor->obj.pos.y, + actor->obj.pos.z) != 0) { actor->gravity = 0.0f; Math_SmoothStepToF(&actor->fwork[0], -50.0f, 0.1f, 2.0f, 0.001f); sp38 = 10.0f; @@ -3685,7 +3689,8 @@ void Zoness_8019A5D4(Actor* actor) { actor->dmgType = DMG_NONE; } if (((gGameFrameCount % 8) == 0) && (actor->state != 0) && (actor->iwork[0] < 8) && - (func_play_800A73E4(&sp44, &sp40, actor->obj.pos.x, actor->obj.pos.y - 100.0f, actor->obj.pos.z) != 0)) { + (Play_CheckDynaFloorCollision(&sp44, &sp40, actor->obj.pos.x, actor->obj.pos.y - 100.0f, actor->obj.pos.z) != + 0)) { func_effect_8008377C(actor->obj.pos.x, sp44, actor->obj.pos.z, 0.0f, 0.7f); actor->iwork[0]++; if (actor->vel.y >= 0.0f) { @@ -3890,7 +3895,7 @@ void Zoness_8019B548(Actor* actor) { break; } if ((fabsf(actor->obj.pos.z - gPlayer[0].trueZpos) < 1000.0f) && - func_play_800A73E4(&sp6C, &sp68, actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z)) { + Play_CheckDynaFloorCollision(&sp6C, &sp68, actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z)) { Math_SmoothStepToF(&actor->obj.pos.y, sp6C, 0.1f, 4.0f, 0.0f); } } @@ -3936,9 +3941,9 @@ void Zoness_8019B854(Actor* actor) { break; case 1: for (i = 0; i < 6; i++) { - Zoness_801900FC(&actor->vwork[i], &actor->vwork[6 + i], RAND_FLOAT_CENTERED(50.0f), - RAND_FLOAT(10.0f) + 20.0f, RAND_FLOAT_CENTERED(50.0f), 39, actor->scale, - RAND_FLOAT(15.0f) + (actor->scale * 10.0f), i); + Zoness_SpawnDebris(&actor->vwork[i], &actor->vwork[6 + i], RAND_FLOAT_CENTERED(50.0f), + RAND_FLOAT(10.0f) + 20.0f, RAND_FLOAT_CENTERED(50.0f), 39, actor->scale, + RAND_FLOAT(15.0f) + (actor->scale * 10.0f), i); } for (i = 0; i < 10; i++) { func_effect_80079618(RAND_FLOAT_CENTERED(50.0f) + actor->obj.pos.x, @@ -4080,8 +4085,8 @@ void Zoness_8019BE48(Actor* actor) { func_effect_8007A6F0(&actor->obj.pos, NA_SE_EN_WT_EXPLOSION_S); break; } - if ((actor->state < 2) && - (func_play_800A73E4(&sp40, &sp38, actor->obj.pos.x, actor->obj.pos.y - 60.0f, actor->obj.pos.z) != 0)) { + if ((actor->state < 2) && (Play_CheckDynaFloorCollision(&sp40, &sp38, actor->obj.pos.x, actor->obj.pos.y - 60.0f, + actor->obj.pos.z) != 0)) { actor->gravity = 0.0f; sp3C = 10.0f; if (Math_SmoothStepToF(&actor->obj.pos.y, sp40 - 20.0f, 0.1f, 5.0f, 0) >= 0.0f) { @@ -4471,7 +4476,7 @@ void Zoness_LevelStart(Player* player) { gControllerHold[gMainController].button = gBoostButton[gMainController]; player->csTimer = 60; player->boostMeter = 1.0f; - func_play_800B2574(player); + Player_ArwingBoost(player); if (gCsFrameCount > 195) { D_ctx_801779A8[0] = 50.0f; } else { diff --git a/src/overlays/ovl_i4/fox_bo.c b/src/overlays/ovl_i4/fox_bo.c index 62439a96..2ca391f2 100644 --- a/src/overlays/ovl_i4/fox_bo.c +++ b/src/overlays/ovl_i4/fox_bo.c @@ -335,7 +335,7 @@ void Bolse_UpdateEventHandler(Actor* this) { if ((gControllerPress->button & START_BUTTON) || ((gAllRangeSpawnEvent + 300) == gAllRangeEventTimer)) { this->state = 2; player->state_1C8 = PLAYERSTATE_1C8_ACTIVE; - func_play_800B7184(player, 1); + Camera_Update360(player, 1); player->unk_014 = 0.0f; D_hud_80161708 = 0; } @@ -384,7 +384,7 @@ void Bolse_UpdateEventHandler(Actor* this) { gAllRangeEventTimer = 3000; this->state = 2; player->state_1C8 = PLAYERSTATE_1C8_ACTIVE; - func_play_800B7184(player, 1); + Camera_Update360(player, 1); player->unk_014 = 0.0f; Audio_KillSfxBySource(gBosses[1].sfxSource); this->iwork[1] = gHitCount; @@ -616,7 +616,7 @@ bool Bolse_8018D278(Actor* actor) { for (i = 0; i < 3; i++) { if (Rand_ZeroOne() >= 0.5f) { - func_play_800A69F8(4, actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z); + Play_SpawnDebris(4, actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z); } } @@ -717,7 +717,7 @@ bool Bolse_8018D584(Actor* actor) { for (i = 0; i < 10; i++) { if (!(Rand_ZeroOne() >= 0.5f)) { - func_play_800A69F8(4, actor->obj.pos.x, actor->obj.pos.y + 730.0f, actor->obj.pos.z); + Play_SpawnDebris(4, actor->obj.pos.x, actor->obj.pos.y + 730.0f, actor->obj.pos.z); } } @@ -1717,7 +1717,7 @@ void Bolse_LevelComplete(Player* player) { Math_SmoothStepToF(&player->pos.y, 700.0f, 0.1f, 10.0f, 0.0f); } - func_play_800B7184(player, 0); + Camera_Update360(player, 0); player->cam.eye.x += player->vel.x * 0.1f; player->cam.eye.y += player->vel.y * 0.1f; @@ -2113,7 +2113,7 @@ void Bolse_80191ED8(void) { if (gLevelObjects[i].id < 0) { break; } - if (gLevelObjects[i].id < 161) { + if (gLevelObjects[i].id < OBJ_SCENERY_MAX) { Scenery360_Initialize(scenery360); scenery360->obj.status = OBJ_ACTIVE; scenery360->obj.id = gLevelObjects[i].id; @@ -2130,7 +2130,7 @@ void Bolse_80191ED8(void) { if (gLevelObjects[i].id < 0) { break; } - if ((gLevelObjects[i].id >= OBJ_ACTOR_176) && (gLevelObjects[i].id <= OBJ_ACTOR_SUPPLIES)) { + if ((gLevelObjects[i].id >= OBJ_ACTOR_START) && (gLevelObjects[i].id < OBJ_ACTOR_MAX)) { Actor_Initialize(actor); actor->obj.status = OBJ_INIT; actor->obj.id = gLevelObjects[i].id; diff --git a/src/overlays/ovl_i4/fox_fo.c b/src/overlays/ovl_i4/fox_fo.c index 06510360..1b05ec23 100644 --- a/src/overlays/ovl_i4/fox_fo.c +++ b/src/overlays/ovl_i4/fox_fo.c @@ -248,7 +248,7 @@ void Fortuna_UpdateEvents(Actor* actor) { actorPtr->obj.pos.z = D_i4_8019EDF8[i - 1].z; } } - func_play_800B63BC(player, 1); + Camera_UpdateArwing360(player, 1); break; case 1: @@ -295,7 +295,7 @@ void Fortuna_UpdateEvents(Actor* actor) { if ((gControllerPress->button & START_BUTTON) || (gAllRangeEventTimer == (gAllRangeSpawnEvent + 440))) { actor->state = 2; player->state_1C8 = PLAYERSTATE_1C8_ACTIVE; - func_play_800B7184(player, 1); + Camera_Update360(player, 1); player->unk_014 = 0.0f; D_hud_80161708 = 0; } @@ -347,7 +347,7 @@ void Fortuna_UpdateEvents(Actor* actor) { actor->state = 2; player->state_1C8 = PLAYERSTATE_1C8_ACTIVE; - func_play_800B7184(player, 1); + Camera_Update360(player, 1); player->unk_014 = 0.0f; D_hud_80161708 = 0; @@ -440,10 +440,10 @@ void Fortuna_UpdateEvents(Actor* actor) { } } -void Fortuna_801888C0(Actor* actor, Vec3f* pos, Vec3f* rot, f32 xVel, f32 yVel, f32 zVel, s32 state) { +void Fortuna_SetupDebris(Actor* actor, Vec3f* pos, Vec3f* rot, f32 xVel, f32 yVel, f32 zVel, s32 state) { Actor_Initialize(actor); actor->obj.status = OBJ_ACTIVE; - actor->obj.id = OBJ_ACTOR_189; + actor->obj.id = OBJ_ACTOR_DEBRIS; actor->state = state; actor->obj.pos = *pos; @@ -459,12 +459,12 @@ void Fortuna_801888C0(Actor* actor, Vec3f* pos, Vec3f* rot, f32 xVel, f32 yVel, Object_SetInfo(&actor->info, actor->obj.id); } -void Fortuna_80188A48(Vec3f* pos, Vec3f* rot, f32 xVel, f32 yVel, f32 zVel, s32 state) { +void Fortuna_SpawnDebris(Vec3f* pos, Vec3f* rot, f32 xVel, f32 yVel, f32 zVel, s32 state) { s32 i; for (i = ARRAY_COUNT(gActors) - 1; i >= 30; i--) { if (gActors[i].obj.status == 0) { - Fortuna_801888C0(&gActors[i], pos, rot, xVel, yVel, zVel, state); + Fortuna_SetupDebris(&gActors[i], pos, rot, xVel, yVel, zVel, state); break; } } @@ -474,14 +474,14 @@ void Fortuna_80188AD0(Actor* actor) { actor->fwork[0] += 2.0f; if (actor->state == 2) { actor->state = 3; - Fortuna_80188A48(actor->vwork, &actor->vwork[6], RAND_FLOAT_CENTERED(50.0f), RAND_FLOAT(10.0f) + 10.0f, - RAND_FLOAT_CENTERED(50.0f), 36); - Fortuna_80188A48(&actor->vwork[1], &actor->vwork[7], RAND_FLOAT_CENTERED(50.0f), RAND_FLOAT(10.0f) + 10.0f, - RAND_FLOAT_CENTERED(50.0f), 36); - Fortuna_80188A48(&actor->vwork[2], &actor->vwork[8], RAND_FLOAT_CENTERED(50.0f), RAND_FLOAT(10.0f) + 10.0f, - RAND_FLOAT_CENTERED(50.0f), 35); - Fortuna_80188A48(&actor->vwork[3], &actor->vwork[9], RAND_FLOAT_CENTERED(50.0f), RAND_FLOAT(10.0f) + 10.0f, - RAND_FLOAT_CENTERED(50.0f), 35); + Fortuna_SpawnDebris(actor->vwork, &actor->vwork[6], RAND_FLOAT_CENTERED(50.0f), RAND_FLOAT(10.0f) + 10.0f, + RAND_FLOAT_CENTERED(50.0f), 36); + Fortuna_SpawnDebris(&actor->vwork[1], &actor->vwork[7], RAND_FLOAT_CENTERED(50.0f), RAND_FLOAT(10.0f) + 10.0f, + RAND_FLOAT_CENTERED(50.0f), 36); + Fortuna_SpawnDebris(&actor->vwork[2], &actor->vwork[8], RAND_FLOAT_CENTERED(50.0f), RAND_FLOAT(10.0f) + 10.0f, + RAND_FLOAT_CENTERED(50.0f), 35); + Fortuna_SpawnDebris(&actor->vwork[3], &actor->vwork[9], RAND_FLOAT_CENTERED(50.0f), RAND_FLOAT(10.0f) + 10.0f, + RAND_FLOAT_CENTERED(50.0f), 35); func_effect_8007BFFC(actor->obj.pos.x, actor->obj.pos.y + 180.0f, actor->obj.pos.z, 0.0f, 0.0f, 0.0f, 5.0f, 10); actor->itemDrop = DROP_SILVER_RING; actor->obj.pos.y += 230.0f; @@ -652,7 +652,7 @@ void Fortuna_LevelComplete(Player* player) { } else if (player->pos.y < 500.0f) { Math_SmoothStepToF(&player->pos.y, 500.0f, 0.1f, 5.0f, 0.0f); } - func_play_800B7184(player, 0); + Camera_Update360(player, 0); player->cam.eye.x += player->vel.x * 0.1f; player->cam.eye.y += player->vel.y * 0.1f; player->cam.eye.z += player->vel.z * 0.1f; @@ -790,7 +790,7 @@ void Fortuna_LevelComplete(Player* player) { gScenery360[i].obj.status = OBJ_FREE; } - func_play_800A5EBC(); + Play_SetupStarfield(); gLevelType = LEVELTYPE_SPACE; gGroundType = gBgColor = gFogRed = gFogGreen = gFogBlue = 0; gLight1R = gLight2R = D_ctx_80161A70 = 86; @@ -1446,7 +1446,7 @@ void Fortuna_8018BA2C(void) { if (gLevelObjects[i].id <= OBJ_INVALID) { break; } - if (gLevelObjects[i].id <= OBJ_SCENERY_160) { + if (gLevelObjects[i].id < OBJ_SCENERY_MAX) { Scenery360_Initialize(scenery360); scenery360->obj.status = OBJ_ACTIVE; scenery360->obj.id = gLevelObjects[i].id; @@ -1463,7 +1463,7 @@ void Fortuna_8018BA2C(void) { if (gLevelObjects[i].id <= OBJ_INVALID) { break; } - if ((gLevelObjects[i].id >= OBJ_ACTOR_176) && (gLevelObjects[i].id < OBJ_BOSS_292)) { + if ((gLevelObjects[i].id >= OBJ_ACTOR_START) && (gLevelObjects[i].id < OBJ_ACTOR_MAX)) { Actor_Initialize(actor); actor->obj.status = OBJ_INIT; actor->obj.id = gLevelObjects[i].id; @@ -1495,6 +1495,6 @@ void Fortuna_8018BA2C(void) { boss->obj.pos.x = 0.0f; boss->obj.pos.y = 0.0f; boss->obj.pos.z = 0.0f; - boss->obj.id = OBJ_BOSS_308; + boss->obj.id = OBJ_BOSS_FO; Object_SetInfo(&boss->info, boss->obj.id); } diff --git a/src/overlays/ovl_i4/fox_ka.c b/src/overlays/ovl_i4/fox_ka.c index 22cc20cd..b4994917 100644 --- a/src/overlays/ovl_i4/fox_ka.c +++ b/src/overlays/ovl_i4/fox_ka.c @@ -1034,7 +1034,7 @@ void Katina_BossUpdate(Saucerer* this) { if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_STANDBY) { gPlayer[0].state_1C8 = PLAYERSTATE_1C8_ACTIVE; - func_play_800B7184(&gPlayer[0], 1); + Camera_Update360(&gPlayer[0], 1); } gPlayer[0].unk_014 = 0.0f; @@ -1924,7 +1924,7 @@ void Katina_LevelComplete(Player* player) { D_ctx_80177A48[2] = 0.0f; Katina_SFTeam_LevelComplete_Update(); - func_play_800A3FB0(); + Play_dummy_MuteSfx(); gCsFrameCount = 0; } @@ -2356,7 +2356,7 @@ void Katina_BossInit(void) { mothership->obj.pos.x = -15000.0f; mothership->obj.pos.y = 3240.0f; mothership->obj.pos.z = 15000.0f; - mothership->obj.id = OBJ_BOSS_316; + mothership->obj.id = OBJ_BOSS_KA; Object_SetInfo(&mothership->info, mothership->obj.id); Boss_Initialize(base); @@ -2364,7 +2364,7 @@ void Katina_BossInit(void) { base->obj.pos.x = 0.0f; base->obj.pos.y = 0.0f; base->obj.pos.z = 0.0f; - base->obj.id = OBJ_BOSS_317; + base->obj.id = OBJ_BOSS_KA_BASE; Object_SetInfo(&base->info, base->obj.id); } diff --git a/src/overlays/ovl_i4/fox_sz.c b/src/overlays/ovl_i4/fox_sz.c index e46eb186..3a4b6ce7 100644 --- a/src/overlays/ovl_i4/fox_sz.c +++ b/src/overlays/ovl_i4/fox_sz.c @@ -557,7 +557,7 @@ void SectorZ_UpdateEvents(Actor* actor) { if (actor->timer_0BC == 70) { actor->state = 2; player->state_1C8 = PLAYERSTATE_1C8_ACTIVE; - func_play_800B7184(player, 1); + Camera_Update360(player, 1); player->unk_014 = 0.0f; } break; @@ -623,7 +623,7 @@ void SectorZ_UpdateEvents(Actor* actor) { if (actor->timer_0BC < 9680) { actor->state = 2; player->state_1C8 = PLAYERSTATE_1C8_ACTIVE; - func_play_800B7184(player, 1); + Camera_Update360(player, 1); player->unk_014 = 0.0f; gActors[10].fwork[1] = 25.0f; gActors[10].fwork[29] = 5.0f; @@ -1553,7 +1553,7 @@ void SectorZ_LevelComplete(Player* player) { if (player->pos.y < 700.0f) { Math_SmoothStepToF(&player->pos.y, 700.0f, 0.1f, 10.0f, 0.0f); } - func_play_800B7184(player, 0); + Camera_Update360(player, 0); player->cam.eye.x += player->vel.x * 0.1f; player->cam.eye.y += player->vel.y * 0.1f; player->cam.eye.z += player->vel.z * 0.1f; @@ -1710,7 +1710,7 @@ Vec3f D_i4_8019F64C[] = { { 612.0f, 409.0f, 386.0f }, { 1027.0f, 141.0f, 383.0f { 600.0f, 385.0f, 380.0f }, { 776.0f, 245.0f, 384.0f }, { 376.0f, 123.0f, 384.0f }, { 428.0f, 174.0f, 383.0f }, { 722.0f, 306.0f, 383.0f }, { 530.0f, 380.0f, 385.0f } }; -void SectorZ_8019E454(Boss* boss) { +void SectorZ_Boss_Update(Boss* boss) { s32 i; s32 j; f32 x; @@ -1783,7 +1783,7 @@ void SectorZ_8019E454(Boss* boss) { } } -void SectorZ_8019E98C(Boss* boss) { +void SectorZ_Boss_Draw(Boss* boss) { gSPFogPosition(gMasterDisp++, gFogNear, 1005); Cutscene_DrawGreatFox(); } @@ -1804,7 +1804,7 @@ void SectorZ_8019EA68(void) { break; } - if (gLevelObjects[i].id <= OBJ_SCENERY_160) { + if (gLevelObjects[i].id < OBJ_SCENERY_MAX) { Scenery360_Initialize(scenery360); scenery360->obj.status = OBJ_ACTIVE; scenery360->obj.id = gLevelObjects[i].id; @@ -1822,7 +1822,7 @@ void SectorZ_8019EA68(void) { break; } - if ((gLevelObjects[i].id >= OBJ_ACTOR_176) && (gLevelObjects[i].id < OBJ_BOSS_292)) { + if ((gLevelObjects[i].id >= OBJ_ACTOR_START) && (gLevelObjects[i].id < OBJ_ACTOR_MAX)) { Actor_Initialize(actor); actor->obj.status = OBJ_INIT; actor->obj.id = gLevelObjects[i].id; @@ -1855,7 +1855,7 @@ void SectorZ_8019EA68(void) { boss->obj.rot.y = boss->unk_078.y + 180.0f; boss->obj.rot.z = -boss->unk_078.z; - boss->obj.id = OBJ_BOSS_313; + boss->obj.id = OBJ_BOSS_SZ; Object_SetInfo(&boss->info, boss->obj.id); AUDIO_PLAY_SFX(NA_SE_GREATFOX_ENGINE, boss->sfxSource, 0); } diff --git a/src/overlays/ovl_i5/fox_ma.c b/src/overlays/ovl_i5/fox_ma.c index 9dc0b3c9..b3f97a4e 100644 --- a/src/overlays/ovl_i5/fox_ma.c +++ b/src/overlays/ovl_i5/fox_ma.c @@ -4930,20 +4930,20 @@ void Macbeth_LevelStart(Player* player) { sp4C = 0.0f; sp48 = 0.0f; sp44 = 0.0f; - func_play_800ADF58(player); + Player_UpdatePath(player); switch (player->csState) { case 0: - objInit = gLevelObjects = SEGMENTED_TO_VIRTUAL(D_MA_6035678); + gLevelObjects = SEGMENTED_TO_VIRTUAL(D_MA_6035678); - for (i = 0; objInit->id != OBJ_INVALID; i++, objInit++) { + for (i = 0, objInit = gLevelObjects; objInit->id != OBJ_INVALID; i++, objInit++) { Object_Load(objInit, 4000.0f, -4000.0f, 4000.0f, -4000.0f); } - objInit = gLevelObjects = SEGMENTED_TO_VIRTUAL(gLevelObjectInits[gCurrentLevel]); + gLevelObjects = SEGMENTED_TO_VIRTUAL(gLevelObjectInits[gCurrentLevel]); - for (i = 0; i < 40; i++, objInit++) { + for (i = 0, objInit = gLevelObjects; i < 40; i++, objInit++) { Object_Load(objInit, 4000.0f, -4000.0f, 4000.0f, -4000.0f); } @@ -5017,7 +5017,7 @@ void Macbeth_LevelStart(Player* player) { player->gravity = 3.0f; player->unk_014 = 0.0f; D_ctx_8017782C = 1; - func_play_800A594C(); + Play_InitEnvironment(); D_ctx_8017782C = 0; gObjectLoadIndex = 40; player->csState = 4; @@ -5078,7 +5078,9 @@ void Macbeth_801ACF6C(void) { void Macbeth_801ACFBC(void) { ObjectInit* objInit; - for (objInit = gLevelObjects = SEGMENTED_TO_VIRTUAL(D_MA_60357CC); objInit->id != OBJ_INVALID; objInit++) { + gLevelObjects = SEGMENTED_TO_VIRTUAL(D_MA_60357CC); + + for (objInit = gLevelObjects; objInit->id != OBJ_INVALID; objInit++) { Object_Load(objInit, 4000.0f, -4000.0f, 4000.0f, -4000.0f); } } @@ -5086,7 +5088,9 @@ void Macbeth_801ACFBC(void) { void Macbeth_801AD080(void) { ObjectInit* objInit; - for (objInit = gLevelObjects = SEGMENTED_TO_VIRTUAL(D_MA_6035920); objInit->id != OBJ_INVALID; objInit++) { + gLevelObjects = SEGMENTED_TO_VIRTUAL(D_MA_6035920); + + for (objInit = gLevelObjects; objInit->id != OBJ_INVALID; objInit++) { Object_Load(objInit, 4000.0f, -4000.0f, 4000.0f, -4000.0f); } } @@ -5224,8 +5228,8 @@ void Macbeth_801AD6F0(Actor* actor) { func_effect_8007BFFC(actor->obj.pos.x, actor->obj.pos.y + 30.0f, actor->obj.pos.z, 0.0f, 0.0f, 0.0f, 4.0f, 5); if (actor->obj.pos.y < (gGroundHeight + 10.0f)) { - func_beam_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, 5.0f, 0, 0); + PlayerShot_SpawnEffect344(actor->obj.pos.x, 3.0f, actor->obj.pos.z, actor->obj.pos.x, + actor->obj.pos.z, 0.0f, 0.0f, 90.0f, 5.0f, 0, 0); } gControllerRumbleFlags[gMainController] = 1; gControllerRumbleTimers[gMainController] = 10; @@ -6288,7 +6292,7 @@ void Macbeth_LevelComplete2(Player* player) { func_tank_80045130(player); func_tank_80044868(player); func_tank_800444BC(player); - func_play_800ADF58(player); + Player_UpdatePath(player); if (gCsFrameCount >= 2175) { Math_SmoothStepToF(&gCsCamAtZ, gActors[3].obj.pos.z + gPathProgress - 300.0f, 0.1f, 20.0f, 0.0f); Math_SmoothStepToF(&gCsCamAtY, gActors[3].obj.pos.y + 100.0f, 0.1f, 10.0f, 0.0f); @@ -6717,7 +6721,7 @@ void Macbeth_801B38E0(void) { } for (i = 0; i < ARRAY_COUNT(gScenery); i++) { - if (gScenery[i].obj.id <= OBJ_SCENERY_91 || gScenery[i].obj.id >= OBJ_SCENERY_97) { + if ((gScenery[i].obj.id <= OBJ_SCENERY_91) || (gScenery[i].obj.id >= OBJ_SCENERY_97)) { Object_Kill(&gScenery[i].obj, gScenery[i].sfxSource); Scenery_Initialize(&gScenery[i]); } @@ -6834,8 +6838,8 @@ void Macbeth_LevelComplete1(Player* player) { func_tank_80044868(player); func_tank_80045678(player); func_tank_80045E7C(player); - func_play_800A8BA4(player); - func_play_800ADF58(player); + Player_CollisionCheck(player); + Player_UpdatePath(player); break; case 2: Math_SmoothStepToF(D_ctx_80177A48, 0.01f, 0.1f, 0.01f, 0.0f); @@ -6859,8 +6863,8 @@ void Macbeth_LevelComplete1(Player* player) { func_tank_80044868(player); func_tank_80045678(player); func_tank_80045E7C(player); - func_play_800A8BA4(player); - func_play_800ADF58(player); + Player_CollisionCheck(player); + Player_UpdatePath(player); break; case 10: player->csState = 11; @@ -6896,8 +6900,8 @@ void Macbeth_LevelComplete1(Player* player) { func_tank_80044868(player); func_tank_80045678(player); func_tank_80045E7C(player); - func_play_800A8BA4(player); - func_play_800ADF58(player); + Player_CollisionCheck(player); + Player_UpdatePath(player); break; case 12: break; diff --git a/src/overlays/ovl_i5/fox_ti.c b/src/overlays/ovl_i5/fox_ti.c index a0ea9f80..1be30cf1 100644 --- a/src/overlays/ovl_i5/fox_ti.c +++ b/src/overlays/ovl_i5/fox_ti.c @@ -887,7 +887,7 @@ void Titania_8018B720(Actor* actor) { var_s1 = SEGMENTED_TO_VIRTUAL(D_i5_801BDA30); for (i = 0; i < 10; i++, var_s1++) { - actorPtr = func_game_800A3608(OBJ_ACTOR_189); + actorPtr = Game_SpawnActor(OBJ_ACTOR_DEBRIS); if (actorPtr != NULL) { actorPtr->obj.status = OBJ_ACTIVE; actorPtr->state = 46; @@ -1601,7 +1601,7 @@ void Titania_8018C8A8(Actor* actor) { 15.0f); var_s1 = D_i5_801BD738[actor->iwork[0]]; for (i = 0; i < 9U; i++, var_s1++) { - actorPtr = func_game_800A3608(OBJ_ACTOR_189); + actorPtr = Game_SpawnActor(OBJ_ACTOR_DEBRIS); if ((actorPtr != NULL) && D_i5_801B7630[i][1] == 1) { actorPtr->state = 47; actorPtr->unk_048 = i; @@ -1637,7 +1637,7 @@ void Titania_8018C8A8(Actor* actor) { } if (i == 8) { - actorPtr = func_game_800A3608(OBJ_ACTOR_189); + actorPtr = Game_SpawnActor(OBJ_ACTOR_DEBRIS); if (actorPtr != NULL) { actorPtr->state = 47; actorPtr->unk_048 = 9; @@ -3196,7 +3196,7 @@ void Titania_80192118(Boss* boss) { sp54.x = (boss->obj.pos.x + D_i5_801BBEF4[39]) + D_i5_801BBEF4[68]; sp54.y = 0.0f; sp54.z = (boss->obj.pos.z + D_i5_801BBEF4[41]) + D_i5_801BBEF4[70]; - func_effect_8007A6F0(&sp54, NA_SE_EN_SAND_BOUND_M); + func_effect_8007A6F0(&sp54, NA_SE_EN_BOSS_ATTACK); boss->swork[39] = 5; gCameraShake = 5; } @@ -3204,7 +3204,7 @@ void Titania_80192118(Boss* boss) { sp54.x = (boss->obj.pos.x + D_i5_801BBEF4[42]) + D_i5_801BBEF4[71]; sp54.y = 0.0f; sp54.z = (boss->obj.pos.z + D_i5_801BBEF4[44]) + D_i5_801BBEF4[73]; - func_effect_8007A6F0(&sp54, NA_SE_EN_SAND_BOUND_M); + func_effect_8007A6F0(&sp54, NA_SE_EN_BOSS_ATTACK); boss->swork[39] = 5; gCameraShake = 5; } @@ -3667,7 +3667,7 @@ void Titania_80193DF0(Boss* boss) { D_i5_801BBEF0[44] = 0; D_i5_801BBEF0[8] = -1; D_i5_801BBEF0[41] = 1; - actor = func_game_800A3608(OBJ_ACTOR_TEAM_BOSS); + actor = Game_SpawnActor(OBJ_ACTOR_TEAM_BOSS); if (actor != NULL) { Matrix_MultVec3f(gCalcMatrix, &D_i5_801BBF00[i].unk_00.pos, &spC8); actor->obj.pos.x = boss->obj.pos.x + spC8.x; @@ -3681,7 +3681,7 @@ void Titania_80193DF0(Boss* boss) { D_i5_801BBF00[i].unk_26 &= ~16; } if (D_i5_801BBF00[i].unk_26 & 2) { - actor = func_game_800A3608(OBJ_ACTOR_189); + actor = Game_SpawnActor(OBJ_ACTOR_DEBRIS); if (actor != NULL) { actor->state = 40; actor->unk_046 = D_i5_801B7770[i][5]; @@ -4027,7 +4027,7 @@ void Titania_80193DF0(Boss* boss) { AUDIO_PLAY_SFX(NA_SE_EN_GATHER_PARTS, boss->sfxSource, 4); for (i = 0; i < 33; i++) { - actor = func_game_800A3608(OBJ_ACTOR_189); + actor = Game_SpawnActor(OBJ_ACTOR_DEBRIS); if (actor != NULL) { actor->state = 40; actor->obj.pos.x = 0.0f; @@ -4315,7 +4315,7 @@ void Titania_80193DF0(Boss* boss) { func_effect_8007A900(spD4.x, 0.0f, spD4.z, 10.0f, 255, 8, 0); } if (boss->unk_04C == 38) { - func_effect_8007A6F0(&spD4, NA_SE_EN_SAND_BOUND_M); + func_effect_8007A6F0(&spD4, NA_SE_EN_BOSS_ATTACK); boss->swork[39] = 5; gCameraShake = 20; } @@ -4328,7 +4328,7 @@ void Titania_80193DF0(Boss* boss) { func_effect_8007A900(spD4.x, 0.0f, spD4.z, 10.0f, 255, 8, 0); } if (boss->unk_04C == 98) { - func_effect_8007A6F0(&spD4, NA_SE_EN_SAND_BOUND_M); + func_effect_8007A6F0(&spD4, NA_SE_EN_BOSS_ATTACK); boss->swork[39] = 5; gCameraShake = 20; } @@ -4726,7 +4726,7 @@ void Titania_80193DF0(Boss*); static s16 D_i5_801B8D54[4] = { 30, 35, 60, 70 }; -void Titania_80197A94(Boss* boss) { +void Titania_Boss_Update(Boss* boss) { Vec3f sp3C; boss->swork[38]++; @@ -4933,7 +4933,7 @@ static f32 D_i5_801B8E24[4][2] = { { 1.0f, -1.0f }, }; -void Titania_801982A8(Boss* boss) { +void Titania_Boss_Draw(Boss* boss) { TexturedLine* temp_v0_6; f32 sp120; f32 temp_fs0; @@ -5175,14 +5175,14 @@ void Titania_801990DC(Boss* boss) { gShowBossHealth = 0; actor = gActors; for (i = 0; i < ARRAY_COUNT(gActors); i++, actor++) { - if ((actor->obj.status == OBJ_ACTIVE) && (actor->obj.id == OBJ_ACTOR_189) && (actor->state == 40)) { + if ((actor->obj.status == OBJ_ACTIVE) && (actor->obj.id == OBJ_ACTOR_DEBRIS) && (actor->state == 40)) { actor->gravity = 0.2f; } } for (i = 0; i < ARRAY_COUNTU(D_i5_801BBF00); i++) { if (!(D_i5_801BBF00[i].unk_26 & 4)) { - actor = func_game_800A3608(OBJ_ACTOR_189); + actor = Game_SpawnActor(OBJ_ACTOR_DEBRIS); if (actor != NULL) { actor->state = 40; actor->unk_046 = D_i5_801B7770[i][5]; @@ -5223,7 +5223,7 @@ void Titania_801990DC(Boss* boss) { switch (boss->timer_050) { case 100: - actor = func_game_800A3608(OBJ_ACTOR_189); + actor = Game_SpawnActor(OBJ_ACTOR_DEBRIS); if (actor != NULL) { actor->fwork[0] = ((Rand_ZeroOne() < 0.5f) ? -1 : 1) * (RAND_FLOAT(1.0f) + 1.0f); actor->fwork[1] = ((Rand_ZeroOne() < 0.5f) ? -1 : 1) * (RAND_FLOAT(1.0f) + 1.0f); @@ -5243,7 +5243,7 @@ void Titania_801990DC(Boss* boss) { } break; case 120: - actor = func_game_800A3608(OBJ_ACTOR_189); + actor = Game_SpawnActor(OBJ_ACTOR_DEBRIS); if (actor != NULL) { actor->fwork[0] = ((Rand_ZeroOne() < 0.5f) ? -1 : 1) * (RAND_FLOAT(5.0f) + 5.0f); actor->fwork[1] = ((Rand_ZeroOne() < 0.5f) ? -1 : 1) * (RAND_FLOAT(5.0f) + 5.0f); @@ -5264,7 +5264,7 @@ void Titania_801990DC(Boss* boss) { } break; case 140: - actor = func_game_800A3608(OBJ_ACTOR_189); + actor = Game_SpawnActor(OBJ_ACTOR_DEBRIS); if (actor != NULL) { actor->fwork[0] = ((Rand_ZeroOne() < 0.5f) ? -1 : 1) * (RAND_FLOAT(1.0f) + 1.0f); actor->fwork[1] = ((Rand_ZeroOne() < 0.5f) ? -1 : 1) * (RAND_FLOAT(1.0f) + 1.0f); diff --git a/src/overlays/ovl_i5/fox_ti_cs.c b/src/overlays/ovl_i5/fox_ti_cs.c index 4b67df5e..c3302c7d 100644 --- a/src/overlays/ovl_i5/fox_ti_cs.c +++ b/src/overlays/ovl_i5/fox_ti_cs.c @@ -226,7 +226,7 @@ void Titania_LevelStart(Player* player) { player->gravity = 3.0f; player->unk_014 = 0.0f; D_ctx_8017782C = 1; - func_play_800A594C(); + Play_InitEnvironment(); D_ctx_8017782C = 0; if ((gControllerHold[player->num].button & Z_TRIG) && (gControllerHold[player->num].button & R_TRIG)) { Audio_KillSfxBySourceAndId(player->sfxSource, NA_SE_TANK_GO_UP); @@ -354,8 +354,8 @@ void Titania_LevelComplete(Player* player) { func_tank_80044868(player); func_tank_80045678(player); func_tank_80045E7C(player); - func_play_800A8BA4(player); - func_play_800ADF58(player); + Player_CollisionCheck(player); + Player_UpdatePath(player); if (((gGameFrameCount % 4) == 0)) { f32 x; diff --git a/src/overlays/ovl_i6/fox_andross.c b/src/overlays/ovl_i6/fox_andross.c index 5e90e0f7..2fb560da 100644 --- a/src/overlays/ovl_i6/fox_andross.c +++ b/src/overlays/ovl_i6/fox_andross.c @@ -102,7 +102,7 @@ void Andross_801878A8() { break; } - if (gLevelObjects[i].id <= OBJ_SCENERY_160) { + if (gLevelObjects[i].id < OBJ_SCENERY_MAX) { Scenery360_Initialize(scenery360); scenery360->obj.status = OBJ_ACTIVE; scenery360->obj.id = gLevelObjects[i].id; @@ -124,7 +124,7 @@ void Andross_801878A8() { break; } - if ((gLevelObjects[i].id <= OBJ_ACTOR_SUPPLIES) && (gLevelObjects[i].id >= OBJ_ACTOR_176)) { + if ((gLevelObjects[i].id < OBJ_ACTOR_MAX) && (gLevelObjects[i].id >= OBJ_ACTOR_START)) { Actor_Initialize(actor); actor->obj.status = OBJ_ACTIVE; actor->obj.id = gLevelObjects[i].id; @@ -142,7 +142,7 @@ void Andross_801878A8() { if (gLevelObjects[i].id <= OBJ_INVALID) { break; } - if ((gLevelObjects[i].id <= OBJ_ITEM_TRAINING_RING) && (gLevelObjects[i].id >= OBJ_ITEM_LASERS)) { + if ((gLevelObjects[i].id < OBJ_ITEM_MAX) && (gLevelObjects[i].id >= OBJ_ITEM_START)) { Item_Initialize(item); item->obj.status = OBJ_ACTIVE; item->obj.id = gLevelObjects[i].id; @@ -180,7 +180,7 @@ void Andross_80187C5C(void) { break; } - if (gLevelObjects[i].id <= OBJ_SCENERY_160) { + if (gLevelObjects[i].id < OBJ_SCENERY_MAX) { Scenery360_Initialize(scenery360); scenery360->obj.status = OBJ_ACTIVE; scenery360->obj.id = gLevelObjects[i].id; @@ -205,7 +205,7 @@ void Andross_80187C5C(void) { break; } - if ((gLevelObjects[i].id <= OBJ_ACTOR_SUPPLIES) && (gLevelObjects[i].id >= OBJ_ACTOR_176)) { + if ((gLevelObjects[i].id < OBJ_ACTOR_MAX) && (gLevelObjects[i].id >= OBJ_ACTOR_START)) { Actor_Initialize(actor); actor->obj.status = OBJ_ACTIVE; actor->obj.id = gLevelObjects[i].id; @@ -223,7 +223,7 @@ void Andross_80187C5C(void) { if (gLevelObjects[i].id <= OBJ_INVALID) { break; } - if ((gLevelObjects[i].id <= OBJ_ITEM_TRAINING_RING) && (gLevelObjects[i].id >= OBJ_ITEM_LASERS)) { + if ((gLevelObjects[i].id < OBJ_ITEM_MAX) && (gLevelObjects[i].id >= OBJ_ITEM_START)) { Item_Initialize(item); item->obj.status = OBJ_ACTIVE; item->obj.id = gLevelObjects[i].id; @@ -591,7 +591,7 @@ void Andross_80189214(void) { gPathProgress = 0.0f; player->unk_018 = player->unk_014 = 1.0f; player->pos.z = player->trueZpos = -player->zPath; - func_play_800B56BC(player); + Camera_UpdateArwingOnRails(player); } void Andross_8018933C(Actor* actor) { @@ -664,7 +664,7 @@ void Andross_80189470(Actor* actor) { Andross_80193710(); D_ctx_8017782C = 1; - func_play_800A594C(); + Play_InitEnvironment(); gFillScreenRed = gFillScreenGreen = gFillScreenBlue = 0; gFillScreenAlpha = gFillScreenAlphaTarget = 255; player->csTimer = 2; @@ -1018,7 +1018,7 @@ void Andross_80189B70(Boss* boss) { Andross_80188468(); Andross_80187C5C(); gPlayer[0].unk_014 = 1.0f; - func_play_800B7184(gPlayer, 1); + Camera_Update360(gPlayer, 1); Audio_StartPlayerNoise(0); AUDIO_PLAY_BGM(D_boss_800C9E90[gCurrentLevel]); AUDIO_PLAY_SFX(NA_SE_OB_ROOT_EXPLOSION1, gDefaultSfxSource, 0); @@ -1332,7 +1332,7 @@ void Andross_8018C390(Player* player) { break; } player->trueZpos = player->pos.z + player->camDist; - func_play_800A46A0(player); + Player_DamageEffects(player); } void Andross_8018C660(Effect* effect, f32 xPos, f32 yPos, f32 zPos, s32 arg4) { @@ -3368,7 +3368,7 @@ void Andross_80193710(void) { break; } - if (gLevelObjects[i].id <= OBJ_SCENERY_160) { + if (gLevelObjects[i].id < OBJ_SCENERY_MAX) { Scenery360_Initialize(scenery360); scenery360->obj.status = OBJ_ACTIVE; scenery360->obj.id = gLevelObjects[i].id; @@ -3386,7 +3386,7 @@ void Andross_80193710(void) { break; } - if ((gLevelObjects[i].id >= OBJ_ACTOR_176) && (gLevelObjects[i].id <= OBJ_ACTOR_SUPPLIES)) { + if ((gLevelObjects[i].id >= OBJ_ACTOR_START) && (gLevelObjects[i].id < OBJ_ACTOR_MAX)) { Actor_Initialize(actor); actor->obj.status = OBJ_INIT; actor->obj.id = gLevelObjects[i].id; @@ -3402,7 +3402,7 @@ void Andross_80193710(void) { boss = &gBosses[0]; Boss_Initialize(boss); boss->obj.status = OBJ_INIT; - boss->obj.id = OBJ_BOSS_312; + boss->obj.id = OBJ_BOSS_VE2; Object_SetInfo(&boss->info, boss->obj.id); } @@ -3658,7 +3658,7 @@ void Andross_80193C4C(Player* player) { } Andross_80193710(); D_ctx_8017782C = 1; - func_play_800A594C(); + Play_InitEnvironment(); gFillScreenRed = gFillScreenGreen = gFillScreenBlue = 0; gFillScreenAlpha = gFillScreenAlphaTarget = 255; player->csTimer = 2; @@ -3779,7 +3779,7 @@ void Andross_80193C4C(Player* player) { } if (gCsFrameCount == 190) { - Play_SetupStarfield(); + Play_GenerateStarfield(); gStarCount = 1000; player->unk_204 = 0; } diff --git a/src/overlays/ovl_i6/fox_sy.c b/src/overlays/ovl_i6/fox_sy.c index 020a02e8..3d63126d 100644 --- a/src/overlays/ovl_i6/fox_sy.c +++ b/src/overlays/ovl_i6/fox_sy.c @@ -18,8 +18,8 @@ void SectorY_8019BBBC(Boss*); void SectorY_8019BC14(Boss*); void SectorY_8019C194(Boss*, f32, f32); void SectorY_801A0510(Actor*, s32); -void SectorY_801A39FC(Actor*, f32, f32, f32, f32, f32, f32, s32); -void SectorY_801A3B50(f32, f32, f32, f32, f32, f32, s32); +void SectorY_SetupDebris(Actor*, f32, f32, f32, f32, f32, f32, s32); +void SectorY_SpawnDebris(f32, f32, f32, f32, f32, f32, s32); f32 D_i6_801A8440[3]; @@ -555,8 +555,9 @@ void SectorY_80199438(Boss* boss) { func_effect_8007B344(boss->obj.pos.x, boss->obj.pos.y, boss->obj.pos.z, 8.0f, 5); for (i = 10; i < 24; i++) { if (i != 15) { - SectorY_801A3B50(boss->obj.pos.x, boss->obj.pos.y, boss->obj.pos.z, RAND_FLOAT_CENTERED(50.0f), - RAND_FLOAT_CENTERED(50.0f), RAND_FLOAT_CENTERED(50.0f) + boss->vel.z, i); + SectorY_SpawnDebris(boss->obj.pos.x, boss->obj.pos.y, boss->obj.pos.z, + RAND_FLOAT_CENTERED(50.0f), RAND_FLOAT_CENTERED(50.0f), + RAND_FLOAT_CENTERED(50.0f) + boss->vel.z, i); } } } @@ -594,8 +595,8 @@ void SectorY_80199438(Boss* boss) { for (i = 10; i < 24; i++) { if (i != 15) { - SectorY_801A3B50(boss->obj.pos.x, boss->obj.pos.y, boss->obj.pos.z, RAND_FLOAT_CENTERED(50.0f), - RAND_FLOAT_CENTERED(50.0f), RAND_FLOAT_CENTERED(50.0f) + boss->vel.z, i); + SectorY_SpawnDebris(boss->obj.pos.x, boss->obj.pos.y, boss->obj.pos.z, RAND_FLOAT_CENTERED(50.0f), + RAND_FLOAT_CENTERED(50.0f), RAND_FLOAT_CENTERED(50.0f) + boss->vel.z, i); } } boss->timer_058 = 100; @@ -611,7 +612,7 @@ void SectorY_80199438(Boss* boss) { gScenery360[0].info.drawType = 0; } else { gPlayer[0].state_1C8 = PLAYERSTATE_1C8_ACTIVE; - func_play_800B63BC(&gPlayer[0], 1); + Camera_UpdateArwing360(&gPlayer[0], 1); gPlayer[0].unk_014 = 0.0f; if (gTeamShields[TEAM_ID_PEPPY] > 0) { AllRange_PlayMessage(gMsg_ID_14230, RCID_PEPPY); @@ -627,9 +628,9 @@ void SectorY_80199438(Boss* boss) { for (j = ARRAY_COUNT(gActors) - 1; j >= 0; j--) { if (gActors[j].obj.status == OBJ_FREE) { - SectorY_801A39FC(&gActors[j], boss->fwork[28], boss->fwork[29], boss->fwork[30], - RAND_FLOAT_CENTERED(50.0f), RAND_FLOAT_CENTERED(50.0f), - RAND_FLOAT_CENTERED(50.0f) + boss->vel.z, 15); + SectorY_SetupDebris(&gActors[j], boss->fwork[28], boss->fwork[29], boss->fwork[30], + RAND_FLOAT_CENTERED(50.0f), RAND_FLOAT_CENTERED(50.0f), + RAND_FLOAT_CENTERED(50.0f) + boss->vel.z, 15); break; } } @@ -1074,7 +1075,7 @@ void SectorY_8019AEEC(Boss* boss) { boss->fwork[43] = 0.0f; boss->vel.y = 0.0f; gPlayer[0].state_1C8 = PLAYERSTATE_1C8_ACTIVE; - func_play_800B63BC(&gPlayer[0], 1); + Camera_UpdateArwing360(&gPlayer[0], 1); gPlayer[0].unk_014 = 0.0f; boss->swork[34]++; Radio_PlayMessage(gMsg_ID_14310, RCID_BOSS_SECTORY); @@ -1372,7 +1373,7 @@ static BossFuncs D_i6_801A6910[] = { SectorY_80199DAC, SectorY_8019A520, SectorY_8019A66C, SectorY_8019A898, SectorY_8019AAF0, SectorY_8019AEEC, }; -void SectorY_8019C888(Boss* boss) { +void SectorY_Boss_Update(Boss* boss) { s32 i; f32 sp1E8; f32 sp1E4; @@ -1861,7 +1862,7 @@ void SectorY_8019E014(s32 limbIndex, Vec3f* rot, void* data) { static f32 D_i6_801A69AC[20] = { 0.3f, 0.7f, 1.3f, 0.7f, 0.3f, 0.0f, 10.0f, 20.0f, 300.0f, 100.0f, 200.0f, 100.0f, 60.0f, -260.0f, 80.0f, 100.0f, 80.0f, 262.0f, 285.0f, 252.0f }; -void SectorY_8019E2C4(Boss* boss) { +void SectorY_Boss_Draw(Boss* boss) { f32 sp9C; f32 sp98; f32 sp94; @@ -2679,11 +2680,11 @@ void SectorY_801A0AC0(Player* player) { Matrix_MultVec3fNoTranslate(gCalcMatrix, &spA4, &sp98); for (i = 0; i < 10; i++) { - if (gPlayerShots[i].obj.status == OBJ_FREE) { - Actor_SetupPlayerShot(PLAYERSHOT_1, &gPlayerShots[i], CS_SHOT_ID, gActors[8].obj.pos.x, + if (gPlayerShots[i].obj.status == SHOT_FREE) { + Actor_SetupPlayerShot(PLAYERSHOT_TWIN_LASER, &gPlayerShots[i], CS_SHOT_ID, gActors[8].obj.pos.x, gActors[8].obj.pos.y - 200.0f, sp80, sp98.x, sp98.y, sp98.z, sp88, sp84, 0.0f); - gPlayerShots[i].unk_64 = 200; + gPlayerShots[i].timer = 200; break; } } @@ -2794,11 +2795,11 @@ void SectorY_801A0AC0(Player* player) { Matrix_MultVec3fNoTranslate(gCalcMatrix, &spA4, &sp98); for (i = 0; i < 11; i++) { - if (gPlayerShots[i].obj.status == OBJ_FREE) { - Actor_SetupPlayerShot(PLAYERSHOT_1, &gPlayerShots[i], CS_SHOT_ID, gActors[8].obj.pos.x, - gActors[8].obj.pos.y, gActors[8].obj.pos.z, sp98.x, sp98.y, sp98.z, - sp88, sp84, 0.0f); - gPlayerShots[i].unk_64 = 174; + if (gPlayerShots[i].obj.status == SHOT_FREE) { + Actor_SetupPlayerShot(PLAYERSHOT_TWIN_LASER, &gPlayerShots[i], CS_SHOT_ID, + gActors[8].obj.pos.x, gActors[8].obj.pos.y, gActors[8].obj.pos.z, + sp98.x, sp98.y, sp98.z, sp88, sp84, 0.0f); + gPlayerShots[i].timer = 174; break; } } @@ -2830,9 +2831,9 @@ void SectorY_801A0AC0(Player* player) { case 150: Object_Kill(&gActors[11].obj, gActors[11].sfxSource); for (i = 10; i < 24; i++) { - SectorY_801A3B50(gActors[11].obj.pos.x, gActors[11].obj.pos.y, gActors[11].obj.pos.z, - RAND_FLOAT_CENTERED(50.0f), RAND_FLOAT_CENTERED(50.0f), - RAND_FLOAT_CENTERED(50.0f), i); + SectorY_SpawnDebris(gActors[11].obj.pos.x, gActors[11].obj.pos.y, gActors[11].obj.pos.z, + RAND_FLOAT_CENTERED(50.0f), RAND_FLOAT_CENTERED(50.0f), + RAND_FLOAT_CENTERED(50.0f), i); } break; @@ -3396,11 +3397,11 @@ void SectorY_801A0AC0(Player* player) { player->trueZpos = player->pos.z + player->camDist; } -void SectorY_801A39FC(Actor* actor, f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel, s32 arg7) { +void SectorY_SetupDebris(Actor* actor, f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel, s32 state) { Actor_Initialize(actor); actor->obj.status = OBJ_INIT; - actor->obj.id = OBJ_ACTOR_189; - actor->state = arg7; + actor->obj.id = OBJ_ACTOR_DEBRIS; + actor->state = state; actor->obj.pos.x = xPos; actor->obj.pos.y = yPos; actor->obj.pos.z = zPos; @@ -3412,12 +3413,12 @@ void SectorY_801A39FC(Actor* actor, f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 Object_SetInfo(&actor->info, actor->obj.id); } -void SectorY_801A3B50(f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel, s32 arg6) { +void SectorY_SpawnDebris(f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel, s32 state) { s32 i; for (i = ARRAY_COUNT(gActors) - 1; i >= 0; i--) { if (gActors[i].obj.status == OBJ_FREE) { - SectorY_801A39FC(&gActors[i], xPos, yPos, zPos, xVel, yVel, zVel, arg6); + SectorY_SetupDebris(&gActors[i], xPos, yPos, zPos, xVel, yVel, zVel, state); break; } } @@ -3625,8 +3626,8 @@ void SectorY_Actor204_Update(Actor204* this) { Object_Kill(&this->obj, this->sfxSource); Actor_Despawn(this); for (i = 10; i < 24; i++) { - SectorY_801A3B50(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, RAND_FLOAT_CENTERED(50.0f), - RAND_FLOAT_CENTERED(50.0f), this->vel.z + RAND_FLOAT_CENTERED(50.0f), i); + SectorY_SpawnDebris(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, RAND_FLOAT_CENTERED(50.0f), + RAND_FLOAT_CENTERED(50.0f), this->vel.z + RAND_FLOAT_CENTERED(50.0f), i); } } break; diff --git a/src/overlays/ovl_i6/fox_turret.c b/src/overlays/ovl_i6/fox_turret.c index 5519389f..0d4833ab 100644 --- a/src/overlays/ovl_i6/fox_turret.c +++ b/src/overlays/ovl_i6/fox_turret.c @@ -1,6 +1,6 @@ #include "global.h" -void Turret_801A5560(Player* player, PlayerShot* shot, f32 xOffset, f32 yOffset, f32 zOffset, s32 shotId, f32 speed) { +void Turret_SetupShot(Player* player, PlayerShot* shot, f32 xOffset, f32 yOffset, f32 zOffset, s32 shotId, f32 speed) { Vec3f sp4C; Vec3f sp40; Vec3f sp34; @@ -26,7 +26,7 @@ void Turret_801A5560(Player* player, PlayerShot* shot, f32 xOffset, f32 yOffset, sp4C.z = speed; Matrix_MultVec3f(gCalcMatrix, &sp4C, &sp40); Matrix_GetYRPAngles(gCalcMatrix, &sp4C); - shot->obj.status = 1; + shot->obj.status = SHOT_ACTIVE; shot->vel.x = sp40.x; shot->vel.y = sp40.y; @@ -48,53 +48,56 @@ void Turret_801A5560(Player* player, PlayerShot* shot, f32 xOffset, f32 yOffset, shot->obj.rot.z = player->rot.z; shot->unk_60 = 0; shot->obj.id = shotId; - shot->unk_64 = 40; + shot->timer = 40; shot->scale = 1.5f; shot->sourceId = player->num; } -void Turret_801A581C(Player* player, f32 xOffset) { +void Turret_GreatFoxLaser(Player* player, f32 xOffset) { s32 i; PlayerShot* shot; for (i = 0; i < ARRAY_COUNT(gPlayerShots); i++) { - if (gPlayerShots[i].obj.status == 0) { - Turret_801A5560(player, &gPlayerShots[i], xOffset, -100.0f, 200.0f, PLAYERSHOT_9, 100.0f); - func_play_800A6028(gPlayerShots[i].sfxSource, NA_SE_TURRET_SHOT); + if (gPlayerShots[i].obj.status == SHOT_FREE) { + Turret_SetupShot(player, &gPlayerShots[i], xOffset, -100.0f, 200.0f, PLAYERSHOT_GFOX_LASER, 100.0f); + Play_PlaySfxFirstPlayer(gPlayerShots[i].sfxSource, NA_SE_TURRET_SHOT); break; } } } -void Turret_801A58A8(Player* player) { +void Turret_Shoot(Player* player) { s32 i; if (gControllerPress[player->num].button & A_BUTTON) { - player->timer_244 = 0; + player->shotTimer = 0; } + // Fires two great fox lasers. Offsets match up with the possible guns in Draw. if (gControllerHold[player->num].button & A_BUTTON) { - if (player->timer_244 == 0) { - Turret_801A581C(player, -100.0f); - Turret_801A581C(player, 100.0f); - player->unk_1BC = 30; + if (player->shotTimer == 0) { + Turret_GreatFoxLaser(player, -100.0f); + Turret_GreatFoxLaser(player, 100.0f); + player->turretRecoil = 30; } - player->timer_244++; - if (player->timer_244 >= 4) { - player->timer_244 = 0; + player->shotTimer++; + if (player->shotTimer >= 4) { + player->shotTimer = 0; } } - if (player->unk_1BC > 0) { - player->unk_1BC -= 4; + if (player->turretRecoil > 0) { + player->turretRecoil -= 4; } else { - player->unk_1BC = 0; + player->turretRecoil = 0; } + // Fires the lock on attack? The code is missing if so if (gControllerPress[player->num].button & R_TRIG) { - player->unk_1C0 = 0; + player->turretLockOnCount = 0; } - for (i = 0; i < player->unk_1C0; i++) { + // Draws a textured line to each Event Actor in sequence as R is held. Some sort of charged lock on attack? + for (i = 0; i < player->turretLockOnCount; i++) { if ((gActors[i].obj.status == OBJ_ACTIVE) && (gActors[i].obj.id == OBJ_ACTOR_EVENT)) { gTexturedLines[i].mode = 3; gTexturedLines[i].zScale = 1.0f; @@ -116,51 +119,57 @@ void Turret_801A58A8(Player* player) { } } if (gControllerHold[player->num].button & R_TRIG) { - player->unk_1C0++; - if (player->unk_1C0 > ARRAY_COUNT(gActors)) { - player->unk_1C0 = ARRAY_COUNT(gActors); + player->turretLockOnCount++; + if (player->turretLockOnCount > ARRAY_COUNT(gActors)) { + player->turretLockOnCount = ARRAY_COUNT(gActors); } else { - player->unk_1C0 = player->unk_1C0; + player->turretLockOnCount = player->turretLockOnCount; } } else { - player->unk_1C0 = 0; + player->turretLockOnCount = 0; } } -void Turret_801A5AD4(Player* player) { +void Turret_Update(Player* player) { f32 sp2C; f32 sp28; - player->pos.x = gActors[player->unk_1B4].obj.pos.x; - player->pos.y = gActors[player->unk_1B4].obj.pos.y; - player->pos.z = gActors[player->unk_1B4].obj.pos.z; - player->unk_000 = gActors[player->unk_1B4].obj.rot.y; - player->unk_004 = gActors[player->unk_1B4].obj.rot.x; - player->rot.z = gActors[player->unk_1B4].obj.rot.z; - if (player->unk_1B0 < 2) { - if (player->unk_1B0 == 0) { - player->unk_1BC = 200; - player->unk_1B0++; + // The player follows the turret actor. Possibly the great fox + player->pos.x = gActors[player->turretActor].obj.pos.x; + player->pos.y = gActors[player->turretActor].obj.pos.y; + player->pos.z = gActors[player->turretActor].obj.pos.z; + player->unk_000 = gActors[player->turretActor].obj.rot.y; + player->unk_004 = gActors[player->turretActor].obj.rot.x; + player->rot.z = gActors[player->turretActor].obj.rot.z; + + // Disables controls for 50 frames. some sort of big charged attack? + if (player->turretState < 2) { + if (player->turretState == 0) { + player->turretRecoil = 200; + player->turretState++; } gControllerLock = 10; - if (player->unk_1BC == 0) { + if (player->turretRecoil == 0) { gControllerLock = 0; - player->unk_1B0++; + player->turretState++; gLevelStartStatusScreenTimer = 50; } } + + // The control stick may have moved a targeting cursor sp2C = (f32) gControllerPress[player->num].stick_x; sp28 = -(f32) gControllerPress[player->num].stick_y; Math_SmoothStepToF(&player->rot.y, -sp2C * 0.35000002f, 0.5f, 2.0f, 0.00001f); Math_SmoothStepToF(&player->rot.x, -sp28 * 0.3f, 0.5f, 2.0f, 0.00001f); player->trueZpos = player->pos.z; - player->zPathVel = -gActors[player->unk_1B4].vel.z; + player->zPathVel = -gActors[player->turretActor].vel.z; player->zPath += player->zPathVel; gPathVelZ = player->zPathVel; gPathProgress = player->zPath; - if (!(gControllerHold[player->num].button & Z_TRIG) && (sqrtf((sp2C * sp2C) + (sp28 * sp28)) > 55.0f)) { + // These appear to move the camera around unless locked in place with Z + if (!(gControllerHold[player->num].button & Z_TRIG) && (sqrtf(SQ(sp2C) + SQ(sp28)) > 55.0f)) { if ((gControllerHold[player->num].button & R_CBUTTONS) || (sp2C > 40.0f)) { player->unk_008 += 2.0f; } @@ -200,15 +209,17 @@ void Turret_801A5AD4(Player* player) { if (player->unk_00C < -20.0f) { player->flags_228 |= PFLAG_228_2; } + + // the B button recenters the view straight ahead if (gControllerPress[player->num].button & B_BUTTON) { player->unk_008 = player->unk_00C = 0.0f; } Math_SmoothStepToF(&player->unk_180, -player->unk_008, 0.5f, 3.0f, 0.00001f); Math_SmoothStepToF(&player->unk_17C, -player->unk_00C, 0.5f, 3.0f, 0.00001f); - Turret_801A58A8(player); + Turret_Shoot(player); } -void Turret_801A5FC0(Player* player) { +void Turret_UpdateCamera(Player* player) { Vec3f sp3C; Vec3f sp30; @@ -232,9 +243,10 @@ void Turret_801A5FC0(Player* player) { player->cam.eye.z = player->pos.z + gPathProgress; } -void Turret_801A6164(Player* player) { +void Turret_Draw(Player* player) { static f32 D_i6_801A6B80 = -100.0f; + // Probably a Y-offset adjustment, for debug? if (gControllerHold[player->num].button & U_JPAD) { D_i6_801A6B80 += 10.0f; } @@ -243,43 +255,48 @@ void Turret_801A6164(Player* player) { } Matrix_Push(&gGfxMatrix); + // Possibly the targeting cursor. During the big attack, it would come back to the player before moving outward RCP_SetupDL_36(); Matrix_Translate(gGfxMatrix, 0.0f, -100.0f, 0.0f, MTXF_APPLY); Matrix_RotateY(gGfxMatrix, player->rot.y * M_DTOR, MTXF_APPLY); Matrix_RotateX(gGfxMatrix, -player->rot.x * M_DTOR, MTXF_APPLY); - if (player->unk_1B0 < 2) { - Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -5000.0f + (player->unk_1BC * 25), MTXF_APPLY); + if (player->turretState < 2) { + Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -5000.0f + (player->turretRecoil * 25), MTXF_APPLY); } else { Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -5000.0f, MTXF_APPLY); } Matrix_Scale(gGfxMatrix, 12.0f, 12.0f, 1.0f, MTXF_APPLY); Matrix_SetGfxMtx(&gMasterDisp); Matrix_Pop(&gGfxMatrix); + + // Likely displayed the turrets guns. They are 100 units to the left and right of the player and 100 units below RCP_SetupDL_27(); - if ((player->unk_1BC > 20) && (player->unk_1B0 >= 2)) { + if ((player->turretRecoil > 20) && (player->turretState >= 2)) { gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 200, 0, 100, 255); } else { gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 255); } Matrix_Push(&gGfxMatrix); - Matrix_Translate(gGfxMatrix, -100.0f, -100.0f, -200.0f + player->unk_1BC, MTXF_APPLY); + Matrix_Translate(gGfxMatrix, -100.0f, -100.0f, -200.0f + player->turretRecoil, MTXF_APPLY); Matrix_RotateY(gGfxMatrix, player->rot.y * M_DTOR, MTXF_APPLY); Matrix_RotateX(gGfxMatrix, -player->rot.x * M_DTOR, MTXF_APPLY); Matrix_Scale(gGfxMatrix, 1.0f, 1.0f, 1.0f, MTXF_APPLY); Matrix_SetGfxMtx(&gMasterDisp); Matrix_Pop(&gGfxMatrix); Matrix_Push(&gGfxMatrix); - Matrix_Translate(gGfxMatrix, 100.0f, -100.0f, -200.0f + player->unk_1BC, MTXF_APPLY); + Matrix_Translate(gGfxMatrix, 100.0f, -100.0f, -200.0f + player->turretRecoil, MTXF_APPLY); Matrix_RotateY(gGfxMatrix, player->rot.y * M_DTOR, MTXF_APPLY); Matrix_RotateX(gGfxMatrix, -player->rot.x * M_DTOR, MTXF_APPLY); Matrix_Scale(gGfxMatrix, 1.0f, 1.0f, 1.0f, MTXF_APPLY); Matrix_SetGfxMtx(&gMasterDisp); Matrix_Pop(&gGfxMatrix); - if ((player->unk_1BC > 20) && (player->unk_1B0 >= 2)) { + + // Likely drew muzzle flashes. This suggests the guns were 188 long + if ((player->turretRecoil > 20) && (player->turretState >= 2)) { RCP_SetupDL_64(); gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 128); Matrix_Push(&gGfxMatrix); - Matrix_Translate(gGfxMatrix, -100.0f, -100.0f, -200.0f + player->unk_1BC, MTXF_APPLY); + Matrix_Translate(gGfxMatrix, -100.0f, -100.0f, -200.0f + player->turretRecoil, MTXF_APPLY); Matrix_RotateY(gGfxMatrix, player->rot.y * M_DTOR, MTXF_APPLY); Matrix_RotateX(gGfxMatrix, -player->rot.x * M_DTOR, MTXF_APPLY); Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -188.0f, MTXF_APPLY); @@ -287,7 +304,7 @@ void Turret_801A6164(Player* player) { Matrix_SetGfxMtx(&gMasterDisp); Matrix_Pop(&gGfxMatrix); Matrix_Push(&gGfxMatrix); - Matrix_Translate(gGfxMatrix, 100.0f, -100.0f, -200.0f + player->unk_1BC, MTXF_APPLY); + Matrix_Translate(gGfxMatrix, 100.0f, -100.0f, -200.0f + player->turretRecoil, MTXF_APPLY); Matrix_RotateY(gGfxMatrix, player->rot.y * M_DTOR, MTXF_APPLY); Matrix_RotateX(gGfxMatrix, -player->rot.x * M_DTOR, MTXF_APPLY); Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -188.0f, MTXF_APPLY); diff --git a/src/overlays/ovl_i6/fox_ve2.c b/src/overlays/ovl_i6/fox_ve2.c index edee1db0..ebaa5205 100644 --- a/src/overlays/ovl_i6/fox_ve2.c +++ b/src/overlays/ovl_i6/fox_ve2.c @@ -1,7 +1,7 @@ #include "global.h" #include "assets/ast_venom_2.h" -void Venom2_80196210(Boss* boss) { +void Venom2_Boss_Update(Boss* boss) { Math_SmoothStepToF(&boss->fwork[0], boss->fwork[1], 0.5f, 5.0f, 0.0f); } @@ -15,7 +15,7 @@ bool Venom2_8019624C(s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3f* rot, void* d return false; } -void Venom2_80196288(Boss* boss) { +void Venom2_Boss_Draw(Boss* boss) { Animation_GetFrameData(&D_VE2_6014904, 0, boss->vwork); Animation_DrawSkeleton(3, D_VE2_60149D0, boss->vwork, Venom2_8019624C, NULL, boss, gCalcMatrix); } @@ -74,7 +74,7 @@ void Venom2_UpdateEvents(Actor* this) { gFillScreenAlpha = gFillScreenAlphaTarget = 255; } - func_play_800B63BC(player, 1); + Camera_UpdateArwing360(player, 1); /* fallthrough */ case 1: @@ -133,7 +133,7 @@ void Venom2_UpdateEvents(Actor* this) { if ((gControllerPress->button & START_BUTTON) || (gAllRangeEventTimer == (gAllRangeSpawnEvent + 300))) { this->state = 2; player->state_1C8 = PLAYERSTATE_1C8_ACTIVE; - func_play_800B7184(player, 1); + Camera_Update360(player, 1); player->unk_014 = 0.0f; D_hud_80161708 = 0; } @@ -178,7 +178,7 @@ void Venom2_80196968(void) { break; } - if (gLevelObjects[i].id <= OBJ_SCENERY_160) { + if (gLevelObjects[i].id < OBJ_SCENERY_MAX) { Scenery360_Initialize(scenery360); scenery360->obj.status = OBJ_ACTIVE; scenery360->obj.id = gLevelObjects[i].id; @@ -198,7 +198,7 @@ void Venom2_80196968(void) { break; } - if ((gLevelObjects[i].id >= OBJ_ACTOR_176) && (gLevelObjects[i].id <= OBJ_ACTOR_SUPPLIES)) { + if ((gLevelObjects[i].id >= OBJ_ACTOR_START) && (gLevelObjects[i].id < OBJ_ACTOR_MAX)) { Actor_Initialize(actor); actor->obj.status = OBJ_INIT; actor->obj.id = gLevelObjects[i].id; @@ -213,7 +213,7 @@ void Venom2_80196968(void) { boss = &gBosses[0]; Boss_Initialize(boss); boss->obj.status = OBJ_INIT; - boss->obj.id = OBJ_BOSS_312; + boss->obj.id = OBJ_BOSS_VE2; Object_SetInfo(&boss->info, boss->obj.id); } diff --git a/src/overlays/ovl_menu/fox_map.c b/src/overlays/ovl_menu/fox_map.c index 65df066a..ca8b6cae 100644 --- a/src/overlays/ovl_menu/fox_map.c +++ b/src/overlays/ovl_menu/fox_map.c @@ -1204,7 +1204,7 @@ void Map_801AD048(void); void Map_8019E800(void) { Memory_FreeAll(); - Play_SetupStarfield(); + Play_GenerateStarfield(); gStarCount = 0; gNextGameState = GSTATE_MAP; D_game_80161A34 = 5; @@ -1869,8 +1869,8 @@ void Map_8019FF48(void) { Map_801AD718(D_menu_801CDA00, D_menu_801CDA04, D_menu_801CDA08, &D_menu_801CD9F4, &D_menu_801CD9F8, &D_menu_801CD9FC, D_menu_801CDA14, D_menu_801CDA0C + D_menu_801CDA18, D_menu_801CDA10 + D_menu_801CDA1C); - func_play_800B6F50(D_menu_801CD9F4, D_menu_801CD9F8, D_menu_801CD9FC, D_menu_801CDA00, D_menu_801CDA04, - D_menu_801CDA08); + Camera_SetStarfieldPos(D_menu_801CD9F4, D_menu_801CD9F8, D_menu_801CD9FC, D_menu_801CDA00, D_menu_801CDA04, + D_menu_801CDA08); } gGameFrameCount++; #if MODS_LEVEL_SELECT == true @@ -2013,7 +2013,7 @@ void Map_801A0788(void) { gStarCount = 800; Memory_FreeAll(); - Play_SetupStarfield(); + Play_GenerateStarfield(); gStarfieldX = SCREEN_WIDTH; gStarfieldY = SCREEN_HEIGHT; @@ -2896,8 +2896,8 @@ void Map_801A2B8C(void) { break; } - func_play_800B6F50(D_menu_801CD9F4, D_menu_801CD9F8, D_menu_801CD9FC, D_menu_801CDA00, D_menu_801CDA04, - D_menu_801CDA08); + Camera_SetStarfieldPos(D_menu_801CD9F4, D_menu_801CD9F8, D_menu_801CD9FC, D_menu_801CDA00, D_menu_801CDA04, + D_menu_801CDA08); D_menu_801CD9C4++; } diff --git a/src/overlays/ovl_menu/fox_option.c b/src/overlays/ovl_menu/fox_option.c index 4936d5ce..1573e9f1 100644 --- a/src/overlays/ovl_menu/fox_option.c +++ b/src/overlays/ovl_menu/fox_option.c @@ -517,7 +517,7 @@ void Option_Setup(void) { gStarfieldX = SCREEN_WIDTH; gStarfieldY = SCREEN_HEIGHT; - Play_SetupStarfield(); + Play_GenerateStarfield(); gCsCamEyeX = 0.0f; gCsCamEyeY = 0.0f; @@ -1311,27 +1311,27 @@ void Option_SoundInit(void) { gOptionSoundMode = gSaveFile.save.data.soundMode; SEQCMD_SET_SOUND_MODE(D_menu_801AE998[gOptionSoundMode]); - gVolumeSettings[0] = gSaveFile.save.data.musicVolume; - gVolumeSettings[1] = gSaveFile.save.data.voiceVolume; - gVolumeSettings[2] = gSaveFile.save.data.sfxVolume; + gVolumeSettings[AUDIO_TYPE_MUSIC] = gSaveFile.save.data.musicVolume; + gVolumeSettings[AUDIO_TYPE_VOICE] = gSaveFile.save.data.voiceVolume; + gVolumeSettings[AUDIO_TYPE_SFX] = gSaveFile.save.data.sfxVolume; - if (gVolumeSettings[0] > 99) { - gVolumeSettings[0] = 99; + if (gVolumeSettings[AUDIO_TYPE_MUSIC] > 99) { + gVolumeSettings[AUDIO_TYPE_MUSIC] = 99; } - if (gVolumeSettings[1] > 99) { - gVolumeSettings[1] = 99; + if (gVolumeSettings[AUDIO_TYPE_VOICE] > 99) { + gVolumeSettings[AUDIO_TYPE_VOICE] = 99; } - if (gVolumeSettings[2] > 99) { - gVolumeSettings[2] = 99; + if (gVolumeSettings[AUDIO_TYPE_SFX] > 99) { + gVolumeSettings[AUDIO_TYPE_SFX] = 99; } - Audio_SetVolume(0, gVolumeSettings[0]); - Audio_SetVolume(1, gVolumeSettings[1]); - Audio_SetVolume(2, gVolumeSettings[2]); + Audio_SetVolume(0, gVolumeSettings[AUDIO_TYPE_MUSIC]); + Audio_SetVolume(1, gVolumeSettings[AUDIO_TYPE_VOICE]); + Audio_SetVolume(2, gVolumeSettings[AUDIO_TYPE_SFX]); - D_menu_801AEB48[0].unk_18 = gVolumeSettings[0] + 146.0f; - D_menu_801AEB48[1].unk_18 = gVolumeSettings[1] + 146.0f; - D_menu_801AEB48[2].unk_18 = gVolumeSettings[2] + 146.0f; + D_menu_801AEB48[0].unk_18 = gVolumeSettings[AUDIO_TYPE_MUSIC] + 146.0f; + D_menu_801AEB48[1].unk_18 = gVolumeSettings[AUDIO_TYPE_VOICE] + 146.0f; + D_menu_801AEB48[2].unk_18 = gVolumeSettings[AUDIO_TYPE_SFX] + 146.0f; D_menu_801B9288 = 0; D_menu_801B9284 = 0; diff --git a/src/overlays/ovl_menu/fox_title.c b/src/overlays/ovl_menu/fox_title.c index 4804b8d3..5d6f79db 100644 --- a/src/overlays/ovl_menu/fox_title.c +++ b/src/overlays/ovl_menu/fox_title.c @@ -198,7 +198,7 @@ void Title_Init(void) { Memory_FreeAll(); - Play_SetupStarfield(); + Play_GenerateStarfield(); gStarfieldX = SCREEN_WIDTH; gStarfieldY = SCREEN_HEIGHT; @@ -368,7 +368,7 @@ void Title_80187B00(void) { case 1: if (D_menu_801B82BC != 0) { - func_play_800B6F50(gCsCamEyeX, gCsCamEyeY, gCsCamEyeZ, gCsCamAtX, gCsCamAtY, gCsCamAtZ); + Camera_SetStarfieldPos(gCsCamEyeX, gCsCamEyeY, gCsCamEyeZ, gCsCamAtX, gCsCamAtY, gCsCamAtZ); D_ctx_8017842C -= 1.0f; if (D_menu_801B82BC == 60) { SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_BGM, 60); @@ -840,7 +840,7 @@ void Title_801888E8(void) { Title_80191320(1, &gCsCamEyeX, &gCsCamEyeY, &gCsCamEyeZ, &gCsCamAtX, &gCsCamAtY, &gCsCamAtZ, D_menu_801B86A8, D_menu_801B86AC, D_menu_801B86B0); - func_play_800B6F50(gCsCamEyeX, gCsCamEyeY, gCsCamEyeZ, gCsCamAtX, gCsCamAtY, gCsCamAtZ); + Camera_SetStarfieldPos(gCsCamEyeX, gCsCamEyeY, gCsCamEyeZ, gCsCamAtX, gCsCamAtY, gCsCamAtZ); D_ctx_8017842C -= 0.5f; @@ -1192,7 +1192,7 @@ void Title_8018994C(void) { Title_80191674(D_menu_801B86C8, D_menu_801B86CC, 100.0f, &D_menu_801B82E0, &D_menu_801B82E4, &D_menu_801B82E8); if (D_menu_801B7BE8 != 0) { - func_play_800B6F50(gCsCamEyeX, gCsCamEyeY, gCsCamEyeZ, gCsCamAtX, gCsCamAtY, gCsCamAtZ); + Camera_SetStarfieldPos(gCsCamEyeX, gCsCamEyeY, gCsCamEyeZ, gCsCamAtX, gCsCamAtY, gCsCamAtZ); } D_ctx_8017842C -= D_menu_801B7BE8; @@ -1529,7 +1529,7 @@ void Title_8018ACEC(void) { Title_80191320(1, &gCsCamEyeX, &gCsCamEyeY, &gCsCamEyeZ, &gCsCamAtX, &gCsCamAtY, &gCsCamAtZ, D_menu_801B86A8, D_menu_801B86AC, D_menu_801B86B0); Title_80191674(D_menu_801B86C8, D_menu_801B86CC, 100.0f, &D_menu_801B82E0, &D_menu_801B82E4, &D_menu_801B82E8); - func_play_800B6F50(gCsCamEyeX, gCsCamEyeY, gCsCamEyeZ, gCsCamAtX, gCsCamAtY, gCsCamAtZ); + Camera_SetStarfieldPos(gCsCamEyeX, gCsCamEyeY, gCsCamEyeZ, gCsCamAtX, gCsCamAtY, gCsCamAtZ); D_ctx_8017842C += 2.0f; D_ctx_80178430 += 2.0f; @@ -2110,7 +2110,7 @@ void Title_8018C644(void) { Title_80191844(D_menu_801B86A8, D_menu_801B86AC); Title_8018CC30(D_menu_801B8294, 9, D_menu_801B8290); Title_80191674(D_menu_801B86C8, D_menu_801B86CC, 100.0f, &D_menu_801B82E0, &D_menu_801B82E4, &D_menu_801B82E8); - func_play_800B6F50(gCsCamEyeX, gCsCamEyeY, gCsCamEyeZ, gCsCamAtX, gCsCamAtY, gCsCamAtZ); + Camera_SetStarfieldPos(gCsCamEyeX, gCsCamEyeY, gCsCamEyeZ, gCsCamAtX, gCsCamAtY, gCsCamAtZ); D_menu_801B7BEC++; } @@ -2266,7 +2266,7 @@ void Title_8018D2B8(s32 arg0) { func_display_80053658(&wings); - func_edisplay_8005F1EC(D_menu_801B84E8[arg0].unk_50); + Object_UpdateSfxSource(D_menu_801B84E8[arg0].unk_50); if (D_menu_801B84E8[arg0].unk_40 != 0) { Title_8018D80C(arg0); @@ -2468,7 +2468,7 @@ void Title_8018E058(void) { gGreatFoxIntact = true; Cutscene_DrawGreatFox(); - func_edisplay_8005F1EC(D_menu_801B8658.unk_24); + Object_UpdateSfxSource(D_menu_801B8658.unk_24); Matrix_Pop(&gGfxMatrix); } @@ -2575,7 +2575,7 @@ void Title_8018E67C(s32 arg0) { } if (arg0 == 0) { - func_edisplay_8005F1EC(D_menu_801B84D8); + Object_UpdateSfxSource(D_menu_801B84D8); } Matrix_Pop(&gGfxMatrix); diff --git a/src/sys/sys_fault.c b/src/sys/sys_fault.c index 000304a5..c4144236 100644 --- a/src/sys/sys_fault.c +++ b/src/sys/sys_fault.c @@ -318,7 +318,7 @@ void Fault_ThreadEntry(void* arg0) { #endif func_80007910(sp40); - while (1) { + while (true) { ; } } diff --git a/src/sys/sys_lib.c b/src/sys/sys_lib.c index 9360abc0..a49fe580 100644 --- a/src/sys/sys_lib.c +++ b/src/sys/sys_lib.c @@ -27,7 +27,7 @@ void Lib_QuickSort(u8* first, u32 length, u32 size, CompareFunc cFunc) { u8* right; u8* left; - while (1) { + while (true) { last = first + (length - 1) * size; if (length == 2) { @@ -40,7 +40,7 @@ void Lib_QuickSort(u8* first, u32 length, u32 size, CompareFunc cFunc) { left = first; right = last - size; - while (1) { + while (true) { while (cFunc(left, last) < 0) { left += size; } diff --git a/src/sys/sys_main.c b/src/sys/sys_main.c index 1d16f407..63e3b98f 100644 --- a/src/sys/sys_main.c +++ b/src/sys/sys_main.c @@ -112,7 +112,7 @@ void Audio_ThreadEntry(void* arg0) { osWritebackDCacheAll(); osSendMesg(&gTaskMesgQueue, task, OS_MESG_NOBLOCK); } - while (1) { + while (true) { task = AudioThread_CreateTask(); if (task != NULL) { task->mesgQueue = &gAudioTaskMesgQueue; @@ -199,7 +199,7 @@ void SerialInterface_ThreadEntry(void* arg0) { OSMesg sp34; Controller_Init(); - while (1) { + while (true) { MQ_WAIT_FOR_MESG(&gSerialThreadMesgQueue, &sp34); switch ((s32) sp34) { @@ -222,7 +222,7 @@ void SerialInterface_ThreadEntry(void* arg0) { void Timer_ThreadEntry(void* arg0) { void* sp24; - while (1) { + while (true) { MQ_WAIT_FOR_MESG(&gTimerTaskMesgQueue, &sp24); Timer_CompleteTask(sp24); } @@ -247,7 +247,7 @@ void Graphics_ThreadEntry(void* arg0) { gSPEndDisplayList(gMasterDisp++); } Graphics_SetTask(); - while (1) { + while (true) { gSysFrameCount++; Graphics_InitializeTask(gSysFrameCount); MQ_WAIT_FOR_MESG(&gControllerMesgQueue, NULL);