summaryrefslogtreecommitdiff
path: root/src/engine
diff options
context:
space:
mode:
authorAlejandro Asenjo Nitti <96613413+sonicdcer@users.noreply.github.com>2024-08-12 11:58:54 -0300
committerGitHub <noreply@github.com>2024-08-12 11:58:54 -0300
commit0251769d1699b7f4bc7a6f05de6f52cf2ca4f29a (patch)
treeb4a8984774446718076fcaa8feb5c5366e741480 /src/engine
parent83c54429159331ced13e2a97c3fbb17549a72b4e (diff)
General docs (#269)
* fox_display.c DOCS * PRINTF * actor->destroy boolean * corneria docs * Boss->unk_04C to Boss->animFrame * aCoGrangaWalkingAnim * more corneria docs * Spawner * Spawner code refined * Spawner description * Actor Spawn guard * Molar Rock (name by @inspectredc) * more docs * actor docs * initial disassembly config for lodgenet * correct vram addresses for lodgenet * Actor Docs * More actor docs * more actor docs * correction * correction * more actor docs * Preliminary work for Effect documentation * Change Init for Setup * fox_play cleanup and defake * fox_zo function names * fox_so function renaming * more object docs * venom 1 actors * actor docs * some fox_bo docs * some fox_fo corrections * fox_ma obj->this * fox_ma renamings * fox_ma docs * fox_ti Actors * revert permuter settings to ido * some renames on fox_andross.c * fox_sy actors * object names * corrections * some effect comments * fix AudioTable struct and data to avoid UB * uintptr_t in audio * audio load changes * event id enum usage in fox_sy * clear padding in sPlaylists * HUD_FoBase_ExplodeCs * HUD
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/fox_360.c54
-rw-r--r--src/engine/fox_beam.c221
-rw-r--r--src/engine/fox_bg.c4
-rw-r--r--src/engine/fox_boss.c8
-rw-r--r--src/engine/fox_context.c20
-rw-r--r--src/engine/fox_demo.c43
-rw-r--r--src/engine/fox_display.c371
-rw-r--r--src/engine/fox_edata.c6
-rw-r--r--src/engine/fox_edata_info.c582
-rw-r--r--src/engine/fox_edisplay.c109
-rw-r--r--src/engine/fox_effect.c313
-rw-r--r--src/engine/fox_enmy.c465
-rw-r--r--src/engine/fox_enmy2.c296
-rw-r--r--src/engine/fox_fade.c2
-rw-r--r--src/engine/fox_game.c36
-rw-r--r--src/engine/fox_hud.c1149
-rw-r--r--src/engine/fox_play.c1159
-rw-r--r--src/engine/fox_radio.c2
-rw-r--r--src/engine/fox_tank.c99
-rw-r--r--src/engine/fox_versus.c2
20 files changed, 2822 insertions, 2119 deletions
diff --git a/src/engine/fox_360.c b/src/engine/fox_360.c
index cb52d2ef..4071055e 100644
--- a/src/engine/fox_360.c
+++ b/src/engine/fox_360.c
@@ -106,36 +106,36 @@ void AllRange_DrawCountdown(void) {
}
}
-void Boss309_Update(Boss309* this) {
- OvlI4_CallFunction(OVLCALL_BOSS309_UPDATE, this);
+void BoBase_Update(BoBase* this) {
+ OvlI4_CallFunction(OVLCALL_BO_BASE_UPDATE, this);
}
-void Boss309_Draw(Boss309* this) {
- OvlI4_CallFunction(OVLCALL_BOSS309_DRAW, this);
+void BoBase_Draw(BoBase* this) {
+ OvlI4_CallFunction(OVLCALL_BO_BASE_DRAW, this);
}
-void Boss310_Update(Boss310* this) {
- OvlI4_CallFunction(OVLCALL_BOSS310_UPDATE, this);
+void BoBaseShield_Update(BoBaseShield* this) {
+ OvlI4_CallFunction(OVLCALL_BO_BASE_SHIELD_UPDATE, this);
}
-void Boss310_Draw(Boss310* this) {
- OvlI4_CallFunction(OVLCALL_BOSS310_DRAW, this);
+void BoBaseShield_Draw(BoBaseShield* this) {
+ OvlI4_CallFunction(OVLCALL_BO_BASE_SHIELD_DRAW, this);
}
-void Actor271_Update(Actor271* this) {
- OvlI4_CallFunction(OVLCALL_ACTOR271_UPDATE, this);
+void BoShieldReactor_Update(BoShieldReactor* this) {
+ OvlI4_CallFunction(OVLCALL_BO_SHIELD_REACTOR_UPDATE, this);
}
-void Actor271_Draw(Actor271* this) {
- OvlI4_CallFunction(OVLCALL_ACTOR271_DRAW, this);
+void BoShieldReactor_Draw(BoShieldReactor* this) {
+ OvlI4_CallFunction(OVLCALL_BO_SHIELD_REACTOR_DRAW, this);
}
-void Actor272_Update(Actor272* this) {
- OvlI4_CallFunction(OVLCALL_ACTOR272_UPDATE, this);
+void BoLaserCannon_Update(BoLaserCannon* this) {
+ OvlI4_CallFunction(OVLCALL_BO_LASER_CANNON_UPDATE, this);
}
-void Actor272_Draw(Actor272* this) {
- OvlI4_CallFunction(OVLCALL_ACTOR272_DRAW, this);
+void BoLaserCannon_Draw(BoLaserCannon* this) {
+ OvlI4_CallFunction(OVLCALL_BO_LASER_CANNON_DRAW, this);
}
void AllRange_GreatFoxRepair(Player* player) {
@@ -309,8 +309,9 @@ void ActorAllRange_SetShadowData(Actor* this) {
if (this->drawShadow && (gLevelMode == LEVELMODE_ALL_RANGE) && (gLevelType == LEVELTYPE_PLANET)) {
for (i = 0, scenery360 = gScenery360; i < 200; i++, scenery360++) {
if ((scenery360->obj.status == OBJ_ACTIVE) &&
- ((scenery360->obj.id == OBJ_SCENERY_150) || (scenery360->obj.id == OBJ_SCENERY_149) ||
- (scenery360->obj.id == OBJ_SCENERY_148) || (scenery360->obj.id == OBJ_SCENERY_CO_BUMP_1) ||
+ ((scenery360->obj.id == OBJ_SCENERY_FO_MOUNTAIN_3) ||
+ (scenery360->obj.id == OBJ_SCENERY_FO_MOUNTAIN_2) ||
+ (scenery360->obj.id == OBJ_SCENERY_FO_MOUNTAIN_1) || (scenery360->obj.id == OBJ_SCENERY_CO_BUMP_1) ||
(scenery360->obj.id == OBJ_SCENERY_CO_BUMP_3)) &&
(fabsf(scenery360->obj.pos.x - this->obj.pos.x) < 2500.0f) &&
(fabsf(scenery360->obj.pos.z - this->obj.pos.z) < 2500.0f)) {
@@ -332,8 +333,9 @@ void ActorAllRange_SetShadowData(Actor* this) {
spCC.y = spD8.y + temp1.y;
spCC.z = spD8.z + temp1.z;
- if ((scenery360->obj.id == OBJ_SCENERY_149) || (scenery360->obj.id == OBJ_SCENERY_150)) {
- if (scenery360->obj.id == OBJ_SCENERY_149) {
+ if ((scenery360->obj.id == OBJ_SCENERY_FO_MOUNTAIN_2) ||
+ (scenery360->obj.id == OBJ_SCENERY_FO_MOUNTAIN_3)) {
+ if (scenery360->obj.id == OBJ_SCENERY_FO_MOUNTAIN_2) {
colId = COL1_5;
} else {
colId = COL1_6;
@@ -831,10 +833,10 @@ s32 func_360_8003049C(ActorAllRange* this) {
if (boss->obj.id == OBJ_BOSS_CO_CARRIER) {
var_ft5 = 350.0f;
- } else if (boss->obj.id == OBJ_BOSS_309) {
+ } else if (boss->obj.id == OBJ_BOSS_BO_BASE) {
sp44 = 2000.0f;
var_ft5 = 750.0f;
- } else if (boss->obj.id == OBJ_BOSS_KA_BASE) {
+ } else if (boss->obj.id == OBJ_BOSS_KA_FLBASE) {
sp44 = 1500.0f;
var_ft5 = 700.0f;
}
@@ -2127,8 +2129,8 @@ void ActorAllRange_Update(ActorAllRange* this) {
spA8.y = 70.0f;
spA8.z = -70.0f;
Matrix_MultVec3fNoTranslate(gCalcMatrix, &spA8, &sp9C);
- func_effect_80078E50(this->obj.pos.x + sp9C.x, this->obj.pos.y + sp9C.y, this->obj.pos.z + sp9C.z,
- 3.1f);
+ Effect_Effect393_Spawn(this->obj.pos.x + sp9C.x, this->obj.pos.y + sp9C.y, this->obj.pos.z + sp9C.z,
+ 3.1f);
}
}
}
@@ -2260,7 +2262,7 @@ void ActorAllRange_Update(ActorAllRange* this) {
this->timer_0BE = 2;
this->obj.status = OBJ_DYING;
this->itemDrop = DROP_NONE;
- func_effect_8007BFFC(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, 0.0f, 0.0f, 0.0f, 5.0f, 15);
+ Effect386_Spawn1(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, 0.0f, 0.0f, 0.0f, 5.0f, 15);
Effect_SpawnTimedSfxAtPos(&this->obj.pos, NA_SE_EN_EXPLOSION_S);
} else {
this->dmgType = DMG_BEAM;
@@ -2339,7 +2341,7 @@ void ActorAllRange_DrawBarrelRoll(ActorAllRange* this) {
RCP_SetupDL(&gMasterDisp, SETUPDL_67);
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, alpha);
gDPSetEnvColor(gMasterDisp++, 0, 0, 160, alpha);
- gSPDisplayList(gMasterDisp++, D_101DC10);
+ gSPDisplayList(gMasterDisp++, aBarrelRollTex);
Matrix_Pop(&gGfxMatrix);
}
}
diff --git a/src/engine/fox_beam.c b/src/engine/fox_beam.c
index fa72deda..0c27fc28 100644
--- a/src/engine/fox_beam.c
+++ b/src/engine/fox_beam.c
@@ -61,14 +61,14 @@ void PlayerShot_ExplodeBomb(PlayerShot* shot) {
if (shot->obj.pos.y < (gGroundHeight + 450.0f)) {
gCameraShake = 15;
if (gGroundSurface == SURFACE_WATER) {
- func_effect_8007D9DC(shot->obj.pos.x, gGroundHeight + 2.0f, shot->obj.pos.z, shot->unk_48 * 0.1f,
- shot->unk_48 * 3.0f, 0);
- func_effect_8007D9DC(shot->obj.pos.x, gGroundHeight + 2.0f, shot->obj.pos.z, shot->unk_48 * 0.1f,
- shot->unk_48 * 3.0f, 5);
- func_effect_8007D9DC(shot->obj.pos.x, gGroundHeight + 2.0f, shot->obj.pos.z, shot->unk_48 * 0.1f,
- shot->unk_48 * 3.0f, 10);
- func_effect_8007ADF4(shot->obj.pos.x, gGroundHeight, shot->obj.pos.z, shot->unk_48 * 0.05f,
- shot->unk_48 * 0.5f);
+ Effect_Effect367_Spawn(shot->obj.pos.x, gGroundHeight + 2.0f, shot->obj.pos.z, shot->unk_48 * 0.1f,
+ shot->unk_48 * 3.0f, 0);
+ Effect_Effect367_Spawn(shot->obj.pos.x, gGroundHeight + 2.0f, shot->obj.pos.z, shot->unk_48 * 0.1f,
+ shot->unk_48 * 3.0f, 5);
+ Effect_Effect367_Spawn(shot->obj.pos.x, gGroundHeight + 2.0f, shot->obj.pos.z, shot->unk_48 * 0.1f,
+ shot->unk_48 * 3.0f, 10);
+ Effect_Effect372_Spawn2(shot->obj.pos.x, gGroundHeight, shot->obj.pos.z, shot->unk_48 * 0.05f,
+ shot->unk_48 * 0.5f);
Effect_SpawnTimedSfxAtPos(&shot->obj.pos, NA_SE_OB_WATER_BOUND_M);
} else {
func_enmy_80062B60(shot->obj.pos.x, shot->obj.pos.z, 0, shot->unk_48 * 3.0f);
@@ -83,8 +83,8 @@ void PlayerShot_ExplodeBomb(PlayerShot* shot) {
if (var_fv1 > 2.0f) {
var_fv1 = 2.0f;
}
- func_effect_8007B550(shot->obj.pos.x, gGroundHeight + 6.0f, shot->obj.pos.z,
- shot->unk_48 * (1.5f + var_fv1), var_fv0);
+ Effect_Effect385_Spawn(shot->obj.pos.x, gGroundHeight + 6.0f, shot->obj.pos.z,
+ shot->unk_48 * (1.5f + var_fv1), var_fv0);
}
if (gVersusMode) {
@@ -92,7 +92,7 @@ void PlayerShot_ExplodeBomb(PlayerShot* shot) {
} else {
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);
+ Effect_Effect384_Spawn(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, shot->unk_48 * 1.5f, var_v0);
if (gUseDynaFloor) {
var_fs0 = 5.0f;
if (shot->obj.pos.y > 300.0f) {
@@ -105,15 +105,15 @@ void PlayerShot_ExplodeBomb(PlayerShot* shot) {
var_fs0 = 4.0f;
}
var_fs0 *= 2.0f;
- func_effect_8007AFD0(shot->obj.pos.x, shot->obj.pos.z, 50.0f, 0.0f, var_fs0);
- func_effect_8007AFD0(shot->obj.pos.x, shot->obj.pos.z, 46.0f, 19.0f, var_fs0);
- func_effect_8007AFD0(shot->obj.pos.x, shot->obj.pos.z, 35.0f, 35.0f, var_fs0);
- func_effect_8007AFD0(shot->obj.pos.x, shot->obj.pos.z, 19.0f, 46.0f, var_fs0);
- func_effect_8007AFD0(shot->obj.pos.x, shot->obj.pos.z, 0.0f, 50.0f, var_fs0);
- func_effect_8007AFD0(shot->obj.pos.x, shot->obj.pos.z, -50.0f, 0.0f, var_fs0);
- func_effect_8007AFD0(shot->obj.pos.x, shot->obj.pos.z, -46.0f, 19.0f, var_fs0);
- func_effect_8007AFD0(shot->obj.pos.x, shot->obj.pos.z, -35.0f, 35.0f, var_fs0);
- func_effect_8007AFD0(shot->obj.pos.x, shot->obj.pos.z, -19.0f, 46.0f, var_fs0);
+ Effect_Effect382_Spawn(shot->obj.pos.x, shot->obj.pos.z, 50.0f, 0.0f, var_fs0);
+ Effect_Effect382_Spawn(shot->obj.pos.x, shot->obj.pos.z, 46.0f, 19.0f, var_fs0);
+ Effect_Effect382_Spawn(shot->obj.pos.x, shot->obj.pos.z, 35.0f, 35.0f, var_fs0);
+ Effect_Effect382_Spawn(shot->obj.pos.x, shot->obj.pos.z, 19.0f, 46.0f, var_fs0);
+ Effect_Effect382_Spawn(shot->obj.pos.x, shot->obj.pos.z, 0.0f, 50.0f, var_fs0);
+ Effect_Effect382_Spawn(shot->obj.pos.x, shot->obj.pos.z, -50.0f, 0.0f, var_fs0);
+ Effect_Effect382_Spawn(shot->obj.pos.x, shot->obj.pos.z, -46.0f, 19.0f, var_fs0);
+ Effect_Effect382_Spawn(shot->obj.pos.x, shot->obj.pos.z, -35.0f, 35.0f, var_fs0);
+ Effect_Effect382_Spawn(shot->obj.pos.x, shot->obj.pos.z, -19.0f, 46.0f, var_fs0);
}
}
}
@@ -144,15 +144,15 @@ void PlayerShot_Impact(PlayerShot* shot) {
shot->vel.x = shot->vel.y = shot->vel.z = 0.0f;
if (gCurrentLevel == LEVEL_AQUAS) {
gLight3R = gLight3G = gLight3B = 0;
- 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);
+ Effect_Effect384_Spawn(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 10.0f, 4);
+ Effect_Effect390_Spawn(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 {
var_v0_2 = 12;
}
- func_effect_8007B344(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 10.0f, var_v0_2);
+ Effect_Effect384_Spawn(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 10.0f, var_v0_2);
func_effect_8007D2C8(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 4.0f);
}
} else {
@@ -165,7 +165,7 @@ void PlayerShot_SetupEffect344(Effect* effect, f32 xPos, f32 yPos, f32 zPos, f32
s32 time) {
Effect_Initialize(effect);
effect->obj.status = OBJ_INIT;
- effect->obj.id = OBJ_EFFECT_344;
+ effect->obj.id = OBJ_EFFECT_EXPLOSION_MARK_1;
effect->obj.pos.x = xPos;
effect->obj.pos.y = yPos;
effect->obj.pos.z = zPos;
@@ -198,7 +198,7 @@ void PlayerShot_SpawnEffect344(f32 xPos, f32 yPos, f32 zPos, f32 arg3, f32 arg4,
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;
+ effect->obj.id = OBJ_EFFECT_LASER_MARK_1;
effect->obj.pos.x = xPos;
effect->obj.pos.y = yPos;
effect->obj.pos.z = zPos;
@@ -504,7 +504,7 @@ bool PlayerShot_CheckPolyCollision(PlayerShot* shot, ObjectId objId, Object* obj
sp58.z = obj->pos.z;
useCol2 = false;
switch (objId) {
- case OBJ_ACTOR_180:
+ case OBJ_ACTOR_ME_MOLAR_ROCK:
objId = COL1_0;
break;
case OBJ_SCENERY_CO_BUMP_4:
@@ -512,19 +512,19 @@ bool PlayerShot_CheckPolyCollision(PlayerShot* shot, ObjectId objId, Object* obj
objId = COL2_1;
useCol2 = true;
break;
- case OBJ_SCENERY_149:
+ case OBJ_SCENERY_FO_MOUNTAIN_2:
objId = COL1_5;
break;
- case OBJ_SCENERY_150:
+ case OBJ_SCENERY_FO_MOUNTAIN_3:
objId = COL1_6;
break;
- case OBJ_BOSS_FO:
+ case OBJ_BOSS_FO_BASE:
objId = COL1_4;
break;
- case OBJ_BOSS_VE2:
+ case OBJ_BOSS_VE2_BASE:
objId = COL1_9;
break;
- case OBJ_BOSS_309:
+ case OBJ_BOSS_BO_BASE:
objId = COL1_7;
break;
case ACTOR_EVENT_ID:
@@ -536,23 +536,23 @@ bool PlayerShot_CheckPolyCollision(PlayerShot* shot, ObjectId objId, Object* obj
case OBJ_SCENERY_ME_TUNNEL:
objId = COL1_1;
break;
- case OBJ_SCENERY_120:
+ case OBJ_SCENERY_AQ_CORAL_REEF_2:
objId = COL2_18;
useCol2 = true;
break;
- case OBJ_SCENERY_143:
+ case OBJ_SCENERY_VS_KA_FLBASE:
objId = COL2_17;
useCol2 = true;
break;
- case OBJ_SCENERY_124:
+ case OBJ_SCENERY_AQ_BUMP_1:
objId = COL2_15;
useCol2 = true;
break;
- case OBJ_SCENERY_126:
+ case OBJ_SCENERY_AQ_BUMP_2:
objId = COL2_16;
useCol2 = true;
break;
- case OBJ_SCENERY_47:
+ case OBJ_SCENERY_ZO_ISLAND:
objId = COL2_7;
useCol2 = true;
break;
@@ -561,43 +561,43 @@ bool PlayerShot_CheckPolyCollision(PlayerShot* shot, ObjectId objId, Object* obj
useCol2 = true;
break;
case OBJ_SCENERY_CO_BUMP_3:
- case OBJ_SCENERY_69:
+ case OBJ_SCENERY_MA_TERRAIN_BUMP:
objId = COL2_3;
useCol2 = true;
break;
- case OBJ_SCENERY_140:
+ case OBJ_SCENERY_VS_PYRAMID_1:
objId = COL2_4;
useCol2 = true;
break;
- case OBJ_SCENERY_141:
+ case OBJ_SCENERY_VS_PYRAMID_2:
objId = COL2_6;
useCol2 = true;
break;
- case OBJ_SCENERY_117:
+ case OBJ_SCENERY_AQ_CORAL_REEF_1:
objId = COL2_14;
useCol2 = true;
break;
- case OBJ_SCENERY_70:
+ case OBJ_SCENERY_MA_FLOOR_1:
objId = COL2_8;
useCol2 = true;
break;
- case OBJ_SCENERY_72:
+ case OBJ_SCENERY_MA_FLOOR_3:
objId = COL2_9;
useCol2 = true;
break;
- case OBJ_SCENERY_71:
+ case OBJ_SCENERY_MA_FLOOR_2:
objId = COL2_10;
useCol2 = true;
break;
- case OBJ_SCENERY_73:
+ case OBJ_SCENERY_MA_FLOOR_4:
objId = COL2_11;
useCol2 = true;
break;
- case OBJ_SCENERY_67:
+ case OBJ_SCENERY_MA_WALL_3:
objId = COL2_12;
useCol2 = true;
break;
- case OBJ_SCENERY_74:
+ case OBJ_SCENERY_MA_FLOOR_5:
objId = COL2_13;
useCol2 = true;
break;
@@ -625,8 +625,8 @@ bool PlayerShot_CheckPolyCollision(PlayerShot* shot, ObjectId objId, Object* obj
shot->obj.pos.z = obj->pos.z + sp70.z;
}
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);
+ Effect_Effect362_Spawn(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 3.0f);
+ Effect_Effect362_Spawn(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 3.0f);
}
return true;
}
@@ -638,8 +638,8 @@ bool PlayerShot_CheckPolyCollision(PlayerShot* shot, ObjectId objId, Object* obj
PlayerShot_Impact(shot);
Effect_SpawnTimedSfxAtPos(&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);
- func_effect_8007BC7C(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 3.0f);
+ Effect_Effect362_Spawn(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 3.0f);
+ Effect_Effect362_Spawn(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 3.0f);
}
return true;
}
@@ -691,10 +691,10 @@ void PlayerShot_ApplyDamageToActor(PlayerShot* shot, Actor* actor, s32 hitIndex)
((actor->obj.id == OBJ_ACTOR_ALLRANGE) && (actor->fwork[23] > 1.0f)) ||
((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->dmgPart == 0) &&
(actor->eventType == EVID_METEO_PYRAMID_SHIP)) ||
- ((actor->obj.id == OBJ_ACTOR_261) && (shot->obj.id != PLAYERSHOT_LOCK_ON) &&
+ ((actor->obj.id == OBJ_ACTOR_AQ_SCULPIN) && (shot->obj.id != PLAYERSHOT_LOCK_ON) &&
((actor->state < 3) || (actor->state >= 5))) ||
- ((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->obj.id == OBJ_ACTOR_AQ_GAROA) && (shot->obj.id != PLAYERSHOT_LOCK_ON) && (actor->timer_0BC != 0))) {
+ if ((actor->obj.id == OBJ_ACTOR_AQ_SCULPIN) && (actor->state < 2)) {
actor->state = 2;
}
if ((shot->obj.id == PLAYERSHOT_LOCK_ON) || (shot->obj.id == PLAYERSHOT_BOMB)) {
@@ -713,7 +713,7 @@ void PlayerShot_ApplyDamageToActor(PlayerShot* shot, Actor* actor, s32 hitIndex)
shot->obj.pos.y += shot->vel.y * 5.0f;
shot->obj.pos.z += shot->vel.z * 5.0f;
actor->timer_0C2 = 3;
- func_effect_80078E50(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 8.0f);
+ Effect_Effect393_Spawn(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 8.0f);
AUDIO_PLAY_SFX(NA_SE_EN_REFLECT, actor->sfxSource, 4);
Play_SpawnHitmark(gShotHitPosX, gShotHitPosY, gShotHitPosZ);
}
@@ -759,7 +759,7 @@ void PlayerShot_CollisionCheck(PlayerShot* shot) {
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:
+ case OBJ_ACTOR_ME_MOLAR_ROCK:
if (PlayerShot_CheckPolyCollision(shot, actor->obj.id, &actor->obj)) {
actor->dmgType = DMG_BEAM;
actor->dmgPart = shot->sourceId;
@@ -862,7 +862,7 @@ void PlayerShot_CollisionCheck(PlayerShot* shot) {
shot->obj.pos.z += 2.0f * shot->vel.z;
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);
+ Effect_Effect393_Spawn(player->pos.x, player->pos.y, player->trueZpos, 8.0f);
} else {
PlayerShot_Impact(shot);
if (player->hitTimer == 0) {
@@ -879,7 +879,7 @@ void PlayerShot_CollisionCheck(PlayerShot* shot) {
player->knockback.y = shot->vel.y * 0.1f;
player->knockback.z = shot->vel.z * 0.1f;
if (player->form != FORM_ON_FOOT) {
- func_effect_8007D1E0(player->pos.x, player->pos.y, player->trueZpos, 2.0f);
+ Effect_Effect341_Spawn(player->pos.x, player->pos.y, player->trueZpos, 2.0f);
}
}
}
@@ -890,25 +890,28 @@ void PlayerShot_CollisionCheck(PlayerShot* shot) {
if ((gGroundType == 4) && Ground_801B6AEC(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z + gPathProgress)) {
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);
+ Effect_Effect359_Spawn(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 2.0f, 255, 15, 0);
}
}
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);
+ Effect_Effect381_Spawn(shot->obj.pos.x, sp94, shot->obj.pos.z, 1.0f);
}
}
if ((gLevelMode == LEVELMODE_ALL_RANGE) && (shot->sourceId < 110)) {
for (i = 0, scenery360 = gScenery360; i < 200; i++, scenery360++) {
if (scenery360->obj.status == OBJ_ACTIVE) {
- if ((scenery360->obj.id == OBJ_SCENERY_117) || (scenery360->obj.id == OBJ_SCENERY_141) ||
- (scenery360->obj.id == OBJ_SCENERY_149) || (scenery360->obj.id == OBJ_SCENERY_150) ||
- (scenery360->obj.id == OBJ_SCENERY_148) || (scenery360->obj.id == OBJ_SCENERY_143) ||
- (scenery360->obj.id == OBJ_SCENERY_160) || (scenery360->obj.id == OBJ_SCENERY_CO_BUMP_1) ||
- (scenery360->obj.id == OBJ_SCENERY_CO_BUMP_3) || (scenery360->obj.id == OBJ_SCENERY_140)) {
+ if ((scenery360->obj.id == OBJ_SCENERY_AQ_CORAL_REEF_1) ||
+ (scenery360->obj.id == OBJ_SCENERY_VS_PYRAMID_2) ||
+ (scenery360->obj.id == OBJ_SCENERY_FO_MOUNTAIN_2) ||
+ (scenery360->obj.id == OBJ_SCENERY_FO_MOUNTAIN_3) ||
+ (scenery360->obj.id == OBJ_SCENERY_FO_MOUNTAIN_1) ||
+ (scenery360->obj.id == OBJ_SCENERY_VS_KA_FLBASE) ||
+ (scenery360->obj.id == OBJ_SCENERY_VE2_MOUNTAIN) || (scenery360->obj.id == OBJ_SCENERY_CO_BUMP_1) ||
+ (scenery360->obj.id == OBJ_SCENERY_CO_BUMP_3) || (scenery360->obj.id == OBJ_SCENERY_VS_PYRAMID_1)) {
PlayerShot_CheckPolyCollision(shot, scenery360->obj.id, &scenery360->obj);
} else {
PlayerShot_CheckObjectHitbox(shot, scenery360->info.hitbox, &scenery360->obj);
@@ -920,10 +923,10 @@ void PlayerShot_CollisionCheck(PlayerShot* shot) {
if (scenery->obj.status == OBJ_ACTIVE) {
if ((scenery->obj.id == OBJ_SCENERY_CO_BUMP_1) || (scenery->obj.id == OBJ_SCENERY_ME_TUNNEL) ||
(scenery->obj.id == OBJ_SCENERY_CO_BUMP_4) || (scenery->obj.id == OBJ_SCENERY_CO_BUMP_5) ||
- (scenery->obj.id == OBJ_SCENERY_120) || (scenery->obj.id == OBJ_SCENERY_124) ||
- (scenery->obj.id == OBJ_SCENERY_126) || (scenery->obj.id == OBJ_SCENERY_47) ||
+ (scenery->obj.id == OBJ_SCENERY_AQ_CORAL_REEF_2) || (scenery->obj.id == OBJ_SCENERY_AQ_BUMP_1) ||
+ (scenery->obj.id == OBJ_SCENERY_AQ_BUMP_2) || (scenery->obj.id == OBJ_SCENERY_ZO_ISLAND) ||
(scenery->obj.id == OBJ_SCENERY_CO_BUMP_2) || (scenery->obj.id == OBJ_SCENERY_CO_BUMP_3) ||
- (scenery->obj.id == OBJ_SCENERY_67) || (scenery->obj.id == OBJ_SCENERY_74) ||
+ (scenery->obj.id == OBJ_SCENERY_MA_WALL_3) || (scenery->obj.id == OBJ_SCENERY_MA_FLOOR_5) ||
(scenery->obj.id == OBJ_SCENERY_CO_BUMP_3)) {
PlayerShot_CheckPolyCollision(shot, scenery->obj.id, &scenery->obj);
} else {
@@ -941,11 +944,11 @@ void PlayerShot_CollisionCheck(PlayerShot* shot) {
if (sprite->obj.status == OBJ_ACTIVE) {
if (sprite->obj.id != OBJ_SPRITE_TI_CACTUS) {
if (PlayerShot_CheckSpriteHitbox(shot, sprite)) {
- sprite->destroy = 1;
+ sprite->destroy = true;
}
} else {
if (PlayerShot_CheckObjectHitbox(shot, sprite->info.hitbox, &sprite->obj) != 0) {
- sprite->destroy = 1;
+ sprite->destroy = true;
}
}
}
@@ -953,10 +956,10 @@ void PlayerShot_CollisionCheck(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_FO) || (boss->obj.id == OBJ_BOSS_VE2) || (boss->obj.id == OBJ_BOSS_309) ||
- (boss->obj.id == OBJ_BOSS_SZ_GREAT_FOX)) {
+ if ((boss->obj.id == OBJ_BOSS_FO_BASE) || (boss->obj.id == OBJ_BOSS_VE2_BASE) ||
+ (boss->obj.id == OBJ_BOSS_BO_BASE) || (boss->obj.id == OBJ_BOSS_SZ_GREAT_FOX)) {
PlayerShot_CheckPolyCollision(shot, boss->obj.id, &boss->obj);
- } else if (boss->obj.id == OBJ_BOSS_310) {
+ } else if (boss->obj.id == OBJ_BOSS_BO_BASE_SHIELD) {
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;
@@ -970,7 +973,7 @@ void PlayerShot_CollisionCheck(PlayerShot* shot) {
}
}
} else {
- if (boss->obj.id == OBJ_BOSS_KA) {
+ if (boss->obj.id == OBJ_BOSS_KA_SAUCERER) {
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);
@@ -990,7 +993,7 @@ void PlayerShot_CollisionCheck(PlayerShot* shot) {
if (shot->obj.id == PLAYERSHOT_LOCK_SEARCH) {
Object_Kill(&shot->obj, shot->sfxSource);
} else {
- if ((boss->obj.id == OBJ_BOSS_KA) && (shot->sourceId != TEAM_ID_FOX)) {
+ if ((boss->obj.id == OBJ_BOSS_KA_SAUCERER) && (shot->sourceId != TEAM_ID_FOX)) {
break;
}
boss->dmgType = DMG_BEAM;
@@ -1016,13 +1019,13 @@ void PlayerShot_CollisionCheck(PlayerShot* shot) {
}
}
}
- if (boss->obj.id == OBJ_BOSS_SY) {
+ if (boss->obj.id == OBJ_BOSS_SY_SHOGUN) {
boss->swork[19] = shot->sourceId;
}
boss->dmgPart = temp_v0 - 1;
- if (boss->obj.id == OBJ_BOSS_301) {
+ if (boss->obj.id == OBJ_BOSS_AQ_UNK_301) {
boss->swork[5] = shot->obj.id;
- } else if (boss->obj.id == OBJ_BOSS_VE1) {
+ } else if (boss->obj.id == OBJ_BOSS_VE1_GOLEMECH) {
boss->fwork[47] = shot->obj.pos.x;
boss->fwork[48] = shot->obj.pos.y;
boss->fwork[49] = shot->obj.pos.z;
@@ -1594,9 +1597,9 @@ void PlayerShot_UpdateShot2(PlayerShot* shot, Player* player) {
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);
+ Effect_Effect362_Spawn(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 3.0f);
+ Effect_Effect362_Spawn(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 3.0f);
+ Effect_Effect362_Spawn(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 3.0f);
}
}
PlayerShot_CollisionCheck(shot);
@@ -1608,8 +1611,8 @@ void PlayerShot_UpdateBeam(PlayerShot* shot, s32 index) {
Vec3f sp38;
if ((gGroundSurface == SURFACE_WATER) && (shot->obj.pos.y < (gGroundHeight + 50.0f)) && (index == 0)) {
- func_effect_8007ACE0(shot->obj.pos.x, gGroundHeight, shot->obj.pos.z, 0.1f, 1.5f, shot->obj.rot.y + 20.0f);
- func_effect_8007ACE0(shot->obj.pos.x, gGroundHeight, shot->obj.pos.z, 0.1f, 1.5f, shot->obj.rot.y - 20.0f);
+ Effect_Effect372_Spawn1(shot->obj.pos.x, gGroundHeight, shot->obj.pos.z, 0.1f, 1.5f, shot->obj.rot.y + 20.0f);
+ Effect_Effect372_Spawn1(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)) {
PlayerShot_Impact(shot);
@@ -1641,20 +1644,20 @@ void PlayerShot_UpdateBeam(PlayerShot* shot, s32 index) {
return;
}
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);
+ Effect_Effect362_Spawn(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 3.0f);
+ Effect_Effect362_Spawn(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 3.0f);
+ Effect_Effect362_Spawn(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 3.0f);
}
if (gCurrentLevel == LEVEL_AQUAS) {
- func_effect_8007B8F8(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 3.0f);
- func_effect_8007B8F8(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 3.0f);
- func_effect_8007B8F8(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 3.0f);
- Aquas_801AC8A8(RAND_FLOAT_CENTERED(10.0f) + shot->obj.pos.x, RAND_FLOAT_CENTERED(10.0f) + shot->obj.pos.y,
- shot->obj.pos.z, 0.8f, 0);
- Aquas_801AC8A8(RAND_FLOAT_CENTERED(10.0f) + shot->obj.pos.x, RAND_FLOAT_CENTERED(10.0f) + shot->obj.pos.y,
- shot->obj.pos.z, 0.8f, 0);
- Aquas_801AC8A8(RAND_FLOAT_CENTERED(10.0f) + shot->obj.pos.x, RAND_FLOAT_CENTERED(10.0f) + shot->obj.pos.y,
- shot->obj.pos.z, 0.8f, 0);
+ Effect_Effect364_Spawn(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 3.0f);
+ Effect_Effect364_Spawn(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 3.0f);
+ Effect_Effect364_Spawn(shot->obj.pos.x, shot->obj.pos.y, shot->obj.pos.z, 3.0f);
+ Aquas_Effect366_Spawn(RAND_FLOAT_CENTERED(10.0f) + shot->obj.pos.x,
+ RAND_FLOAT_CENTERED(10.0f) + shot->obj.pos.y, shot->obj.pos.z, 0.8f, 0);
+ Aquas_Effect366_Spawn(RAND_FLOAT_CENTERED(10.0f) + shot->obj.pos.x,
+ RAND_FLOAT_CENTERED(10.0f) + shot->obj.pos.y, shot->obj.pos.z, 0.8f, 0);
+ Aquas_Effect366_Spawn(RAND_FLOAT_CENTERED(10.0f) + shot->obj.pos.x,
+ RAND_FLOAT_CENTERED(10.0f) + shot->obj.pos.y, shot->obj.pos.z, 0.8f, 0);
}
}
if (shot->timer == 0) {
@@ -1777,7 +1780,7 @@ void PlayerShot_CheckBossHitbox(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_KA) {
+ if (boss->obj.id == OBJ_BOSS_KA_SAUCERER) {
var_s6 = gGameFrameCount % 8U;
var_fs2 = shot->scale * 40.0f;
} else {
@@ -1883,17 +1886,17 @@ void PlayerShot_ApplyExplosionDamage(PlayerShot* shot, s32 damage) {
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->destroy = 1;
+ sprite->destroy = true;
}
}
}
actor = gActors;
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)) &&
+ !((gCurrentLevel == LEVEL_MACBETH) && (OBJ_ACTOR_MA_LOCOMOTIVE <= actor->obj.id) &&
+ (actor->obj.id < OBJ_ACTOR_MA_RAILROAD_SWITCH)) &&
!((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->iwork[12] != 0)) &&
- ((actor->scale >= 0.0f) || (actor->obj.id == OBJ_ACTOR_271))) {
+ ((actor->scale >= 0.0f) || (actor->obj.id == OBJ_ACTOR_BO_SHIELD_REACTOR))) {
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;
@@ -1904,12 +1907,12 @@ void PlayerShot_ApplyExplosionDamage(PlayerShot* shot, s32 damage) {
actor->hitPos.y = shot->obj.pos.y;
actor->hitPos.z = shot->obj.pos.z;
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_MISSILE_SEEK_TEAM) || (actor->obj.id == OBJ_ACTOR_202) ||
- (actor->obj.id == OBJ_ACTOR_201) || (actor->obj.id == OBJ_ACTOR_187) ||
+ if ((actor->obj.id == OBJ_ACTOR_CO_RADAR) || (actor->obj.id == OBJ_ACTOR_ME_LASER_CANNON_1) ||
+ (actor->obj.id == OBJ_MISSILE_SEEK_TEAM) || (actor->obj.id == OBJ_ACTOR_ME_HOPBOT) ||
+ (actor->obj.id == OBJ_ACTOR_ME_METEO_BALL) || (actor->obj.id == OBJ_ACTOR_ME_LASER_CANNON_2) ||
((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->eventType == EVID_SUPPLY_CRATE)) ||
((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->eventType == EVID_SX_WARP_GATE)) ||
- (actor->obj.id == OBJ_ACTOR_196)) {
+ (actor->obj.id == OBJ_ACTOR_CO_MOLE_MISSILE)) {
actor->dmgType = DMG_EXPLOSION;
actor->dmgPart = 0;
actor->dmgSource = shot->sourceId + 1;
@@ -2088,12 +2091,12 @@ void PlayerShot_UpdateLockOnShot(PlayerShot* shot) {
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,
- shot->unk_48 * 3.0f, 0);
- func_effect_8007D9DC(shot->obj.pos.x, gGroundHeight + 2.0f, shot->obj.pos.z, shot->unk_48 * 0.1f,
- shot->unk_48 * 3.0f, 5);
- func_effect_8007ADF4(shot->obj.pos.x, gGroundHeight, shot->obj.pos.z, shot->unk_48 * 0.05f,
- shot->unk_48 * 0.5f);
+ Effect_Effect367_Spawn(shot->obj.pos.x, gGroundHeight + 2.0f, shot->obj.pos.z, shot->unk_48 * 0.1f,
+ shot->unk_48 * 3.0f, 0);
+ Effect_Effect367_Spawn(shot->obj.pos.x, gGroundHeight + 2.0f, shot->obj.pos.z, shot->unk_48 * 0.1f,
+ shot->unk_48 * 3.0f, 5);
+ Effect_Effect372_Spawn2(shot->obj.pos.x, gGroundHeight, shot->obj.pos.z, shot->unk_48 * 0.05f,
+ shot->unk_48 * 0.5f);
Effect_SpawnTimedSfxAtPos(&shot->obj.pos, NA_SE_OB_WATER_BOUND_M);
}
PlayerShot_Impact(shot);
diff --git a/src/engine/fox_bg.c b/src/engine/fox_bg.c
index 98c1af7a..76c6be8b 100644
--- a/src/engine/fox_bg.c
+++ b/src/engine/fox_bg.c
@@ -263,7 +263,7 @@ void Background_DrawBackdrop(void) {
Matrix_Push(&gGfxMatrix);
- if (D_ctx_80177C70 == 2) {
+ if (gFovYMode == 2) {
Matrix_Scale(gGfxMatrix, 1.2f, 1.2f, 1.0f, MTXF_APPLY);
}
@@ -931,7 +931,7 @@ void Background_DrawGround(void) {
Matrix_Push(&gGfxMatrix);
Matrix_Translate(gGfxMatrix, gPlayer[gPlayerNum].xPath, -3.0f + gCameraShakeY, sp1D4, MTXF_APPLY);
- if (D_ctx_80177C70 == 2) {
+ if (gFovYMode == 2) {
Matrix_Scale(gGfxMatrix, 1.2f, 1.2f, 1.0f, MTXF_APPLY);
}
diff --git a/src/engine/fox_boss.c b/src/engine/fox_boss.c
index ae9235e0..8243257d 100644
--- a/src/engine/fox_boss.c
+++ b/src/engine/fox_boss.c
@@ -31,7 +31,7 @@ void Boss_AwardBonus(Boss* this) {
yOffset = 0.0f;
if (this->obj.id == OBJ_BOSS_CO_GRANGA) {
yOffset = 300.0f;
- } else if (this->obj.id == OBJ_BOSS_TI) {
+ } else if (this->obj.id == OBJ_BOSS_TI_GORAS) {
yOffset = 200.0f;
}
BonusText_Display(this->obj.pos.x, this->obj.pos.y + yOffset, this->obj.pos.z, bonus);
@@ -42,21 +42,27 @@ void Boss_AwardBonus(Boss* this) {
}
void Boss299_Init(Boss299* this) {
+ /* Unimplemented */
}
void Boss299_Update(Boss299* this) {
+ /* Unimplemented */
}
void Boss299_Draw(Boss299* this) {
+ /* Unimplemented */
}
void Boss300_Init(Boss300* this) {
+ /* Unimplemented */
}
void Boss300_Update(Boss300* this) {
+ /* Unimplemented */
}
void Boss300_Draw(Boss300* this) {
+ /* Unimplemented */
}
void Boss_SetupDebris(ActorDebris* this, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7, f32 arg8,
diff --git a/src/engine/fox_context.c b/src/engine/fox_context.c
index 954a2a08..cfe7acf3 100644
--- a/src/engine/fox_context.c
+++ b/src/engine/fox_context.c
@@ -180,7 +180,7 @@ s32 D_ctx_80178494; // Torpedoes have this set to their unk_5C. Were they
f32 gShotHitPosZ;
f32 gShotHitPosX;
f32 gShotHitPosY;
-s32 gZOSnakeWaypointCount;
+s32 gZoDodoraWaypointCount;
UNK_TYPE F_801784A8;
GroundType gGroundType;
UNK_TYPE F_801784B0;
@@ -276,13 +276,13 @@ PlayerShot gPlayerShots[16];
TexturedLine gTexturedLines[100];
RadarMark gRadarMarks[65];
BonusText gBonusText[10];
-s32 gActor194Status[2];
-f32 gActor194xPos[2][100];
-f32 gActor194yPos[2][100];
-f32 gActor194zPos[2][100];
-f32 gActor194xRot[2][100];
-f32 gActor194yRot[2][100];
-f32 gActor194zRot[2][100];
+s32 gMeMoraStatus[2];
+f32 gMeMoraXpos[2][100];
+f32 gMeMoraYpos[2][100];
+f32 gMeMoraZpos[2][100];
+f32 gMeMoraXrot[2][100];
+f32 gMeMoraYrot[2][100];
+f32 gMeMoraZrot[2][100];
UNK_TYPE P_800D31A8 = 0;
u16 gEnemyShotSpeed; // enemy shot speed?
u8 gShowLevelClearStatusScreen;
@@ -330,7 +330,7 @@ u8 gTiStartLandmaster;
u16 gControllerRumbleTimers[4];
u16 gPlayerScores[4];
s32 gCircleWipeFrame;
-s32 D_ctx_80177C70; // sets camera field of view Y. initialized to 0 and never changed
+s32 gFovYMode; // sets camera field of view Y. initialized to 0 and never changed
s32 gTraining360MsgTimer;
s32 gTraining360MsgIndex;
s32 D_ctx_80177C94; // these save player parameters across the Venom -> Andross transition
@@ -368,7 +368,7 @@ Scenery360* gScenery360;
UNK_TYPE F_801782B0;
s32 gDrawSmallRocks;
s32 D_ctx_801782BC; // set to 0, never used
-PosRot* gZOSnakePosRots;
+PosRot* gZoDodoraPosRots;
f32* D_ctx_801782CC; // arrays used for dynamic floor
f32* D_ctx_801782D4;
f32* D_ctx_801782DC;
diff --git a/src/engine/fox_demo.c b/src/engine/fox_demo.c
index 17a1fc61..10512bf0 100644
--- a/src/engine/fox_demo.c
+++ b/src/engine/fox_demo.c
@@ -692,7 +692,7 @@ void func_demo_8004A840(s32 actor) {
func_demo_8004A700(&gActors[actor], actor);
}
-void func_demo_8004A888(Clouds* this) {
+void func_demo_8004A888(EffectClouds* this) {
Vec3f src;
Vec3f dest;
@@ -1226,7 +1226,7 @@ void Cutscene_CoComplete2(Player* player) {
player->csState = 5;
player->baseSpeed = 0.0f;
player->csTimer = 10;
- func_effect_80078E50(player->pos.x, player->pos.y, player->trueZpos, 30.0f);
+ Effect_Effect393_Spawn(player->pos.x, player->pos.y, player->trueZpos, 30.0f);
}
gCsCamAtX = player->pos.x;
gCsCamAtY = player->pos.y - D_ctx_80177A48[6];
@@ -1612,7 +1612,7 @@ void Cutscene_KillPlayer(Player* player) {
if (gVsPointsToWin == gVsPoints[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);
+ Effect_Effect387_Spawn(player->pos.x, player->pos.y, player->trueZpos, 3.0f, 1000);
}
}
}
@@ -1631,10 +1631,10 @@ void Cutscene_LandmasterDown(Player* player) {
player->pos.y += 30.0f;
func_effect_8007D0E0(player->pos.x, player->pos.y, player->trueZpos, 6.0f);
if (gCamCount == 1) {
- func_effect_8007BFFC(player->pos.x, player->pos.y, player->trueZpos, 0.0f, 0.0f, 0.0f, 3.0f, 80);
- func_effect_8007C688(player->pos.x, player->pos.y, player->trueZpos, 3.0f, 800);
+ Effect386_Spawn1(player->pos.x, player->pos.y, player->trueZpos, 0.0f, 0.0f, 0.0f, 3.0f, 80);
+ Effect_Effect387_Spawn(player->pos.x, player->pos.y, player->trueZpos, 3.0f, 800);
} else {
- func_effect_8007BFFC(player->pos.x, player->pos.y, player->trueZpos, 0.0f, 0.0f, 0.0f, 3.0f, 10);
+ Effect386_Spawn1(player->pos.x, player->pos.y, player->trueZpos, 0.0f, 0.0f, 0.0f, 3.0f, 10);
}
Cutscene_KillPlayer(player);
}
@@ -1704,7 +1704,8 @@ void Cutscene_ArwingDown360(Player* player) {
(player->csTimer == 0)) {
if (gCamCount != 4) {
if (player->unk_284 == 0) {
- func_effect_8007C688(player->pos.x, player->pos.y, player->trueZpos - (2.0f * player->vel.z), 3.0f, 80);
+ Effect_Effect387_Spawn(player->pos.x, player->pos.y, player->trueZpos - (2.0f * player->vel.z), 3.0f,
+ 80);
}
if (player->pos.y < player->pathFloor) {
func_enmy_80062C38(player->pos.x, player->pos.z);
@@ -1720,8 +1721,7 @@ void Cutscene_ArwingDown360(Player* player) {
}
}
func_effect_8007D0E0(player->pos.x, player->pos.y, player->trueZpos, 5.0f);
- func_effect_8007BFFC(player->pos.x, player->pos.y, player->trueZpos, player->vel.x, 0.0f, player->vel.z, 5.0f,
- 20);
+ Effect386_Spawn1(player->pos.x, player->pos.y, player->trueZpos, player->vel.x, 0.0f, player->vel.z, 5.0f, 20);
Cutscene_KillPlayer(player);
}
Math_SmoothStepToF(&player->camRoll, 0.0f, 0.05f, 5.0f, 0.00001f);
@@ -1810,14 +1810,14 @@ void Cutscene_ArwingDownOnRails(Player* player) {
} else if (((player->radioDamageTimer > 0) || (player->pos.y < player->pathFloor) || (player->csEventTimer == 0)) &&
(player->csTimer == 0)) {
if (player->pos.y < player->pathFloor) {
- func_effect_8007C688(player->pos.x, gGroundHeight + 20.0f, player->trueZpos - (2.0f * player->vel.z), 3.0f,
- 800);
+ Effect_Effect387_Spawn(player->pos.x, gGroundHeight + 20.0f, player->trueZpos - (2.0f * player->vel.z),
+ 3.0f, 800);
func_enmy_80062C38(player->pos.x, player->pos.z);
}
func_effect_8007D0E0(player->pos.x, player->pos.y - (2.0f * player->vel.y),
player->trueZpos - (2.0f * player->vel.z), 6.0f);
- func_effect_8007BFFC(player->pos.x, player->pos.y - player->vel.y, player->trueZpos - (2.0f * player->vel.z),
- 0.0f, 0.0f, 0.0f, 3.0f, 20);
+ Effect386_Spawn1(player->pos.x, player->pos.y - player->vel.y, player->trueZpos - (2.0f * player->vel.z), 0.0f,
+ 0.0f, 0.0f, 3.0f, 20);
if (gLevelType == LEVELTYPE_PLANET) {
for (i = 0; i < 2; i++) {
Play_SpawnDebris(2, player->pos.x, player->pos.y, player->trueZpos);
@@ -1837,8 +1837,8 @@ void Cutscene_ArwingDownOnRails(Player* player) {
}
if ((gGroundSurface == SURFACE_WATER) && (player->pos.y <= player->pathFloor)) {
- func_effect_8007D9DC(player->pos.x, gGroundHeight + 2.0f, player->trueZpos, 3.0f, 20.0f, 0);
- func_effect_8007ADF4(player->pos.x, gGroundHeight, player->trueZpos, 0.1f, 2.0f);
+ Effect_Effect367_Spawn(player->pos.x, gGroundHeight + 2.0f, player->trueZpos, 3.0f, 20.0f, 0);
+ Effect_Effect372_Spawn2(player->pos.x, gGroundHeight, player->trueZpos, 0.1f, 2.0f);
}
}
@@ -2103,7 +2103,7 @@ void func_demo_8004EBD0(ActorCutscene* this) {
this->vel.z = dest.z;
if (this->timer_0BC == 0) {
- func_effect_80078E50(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, 30.0f);
+ Effect_Effect393_Spawn(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, 30.0f);
Object_Kill(&this->obj, this->sfxSource);
}
break;
@@ -2299,7 +2299,6 @@ void func_demo_8004F798(ActorCutscene* this) {
}
void ActorCutscene_Update(ActorCutscene* this) {
-
if (gCurrentLevel == LEVEL_AQUAS) {
func_hud_80093164(this);
return;
@@ -2747,14 +2746,14 @@ void ActorCutscene_Draw(ActorCutscene* this) {
Matrix_SetGfxMtx(&gMasterDisp);
/* fallthrough */
case 39:
- gSPDisplayList(gMasterDisp++, D_SY_60097E0);
+ gSPDisplayList(gMasterDisp++, aSyShip1DL);
func_demo_8004FCB8(this, 4);
break;
case 36:
Matrix_Scale(gGfxMatrix, this->scale, this->scale, this->scale, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp);
- gSPDisplayList(gMasterDisp++, D_SY_601D730);
+ gSPDisplayList(gMasterDisp++, aSyShip2DL);
func_demo_8004FCB8(this, 0);
break;
@@ -2874,15 +2873,15 @@ void ActorCutscene_Draw(ActorCutscene* this) {
case 45:
Matrix_Scale(gGfxMatrix, 0.5f, 0.5f, 0.5f, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp);
- gSPDisplayList(gMasterDisp++, D_AQ_600EEF0);
+ gSPDisplayList(gMasterDisp++, aAqBump2DL);
break;
case 46:
- gSPDisplayList(gMasterDisp++, D_AQ_601DE60);
+ gSPDisplayList(gMasterDisp++, aAqCoralReef2DL);
break;
case 47:
- gSPDisplayList(gMasterDisp++, D_AQ_602B4C0);
+ gSPDisplayList(gMasterDisp++, aAqRockDL);
break;
}
}
diff --git a/src/engine/fox_display.c b/src/engine/fox_display.c
index c173c4f6..7ef105e8 100644
--- a/src/engine/fox_display.c
+++ b/src/engine/fox_display.c
@@ -16,17 +16,17 @@ f32 D_display_801615A8[4];
f32 D_display_801615B8[4];
s32 D_display_800CA220 = 0;
-u8 sPlayersVisible[] = { 0, 0, 0, 0 }; //
-s32 sDrawCockpit = 0; //
-s32 D_display_800CA22C = false; //
+u8 sPlayersVisible[] = { false, false, false, false };
+bool sDrawCockpit = false;
+s32 D_display_800CA22C = false;
f32 gCamDistortion = 0.0f;
Actor* gTeamHelpActor = NULL;
s32 gTeamHelpTimer = 0;
-f32 D_display_800CA23C[3] = { 0.5f, 0.25f, 0.25f }; //
-f32 D_display_800CA248[3] = { 2.0f, 1.0f, 0.5f }; //
+f32 D_display_800CA23C[3] = { 0.5f, 0.25f, 0.25f };
+f32 D_display_800CA248[3] = { 2.0f, 1.0f, 0.5f };
void Display_DrawHelpAlert(void) {
- s32 sp7C;
+ bool sp7C;
f32 sp78;
f32 sp74;
Vec3f sp68;
@@ -60,9 +60,9 @@ void Display_DrawHelpAlert(void) {
Matrix_MultVec3f(gCalcMatrix, &sp68, &sp5C);
- sp7C = 0;
+ sp7C = false;
if ((sp5C.z < 0.0f) && (sp5C.z > -12000.0f) && (fabsf(sp5C.x) < fabsf(sp5C.z * 0.4f))) {
- sp7C = 1;
+ sp7C = true;
}
RCP_SetupDL(&gMasterDisp, SETUPDL_12);
@@ -80,7 +80,7 @@ void Display_DrawHelpAlert(void) {
}
switch (sp7C) {
- case 0:
+ case false:
if (gTeamHelpActor->sfxSource[0] > 0.0f) {
sp78 = 20.0f;
sp74 = M_PI / 2;
@@ -97,7 +97,7 @@ void Display_DrawHelpAlert(void) {
Matrix_Pop(&gGfxMatrix);
break;
- case 1:
+ case true:
Matrix_Push(&gGfxMatrix);
Matrix_Translate(gGfxMatrix, 20.0f, 0.0f, -50.0f, MTXF_APPLY);
Matrix_RotateZ(gGfxMatrix, -M_PI / 2, MTXF_APPLY);
@@ -117,7 +117,7 @@ void Display_DrawHelpAlert(void) {
}
switch (sp7C) {
- case 0:
+ case false:
RCP_SetupDL(&gMasterDisp, SETUPDL_76);
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 0, 255);
if (sp78 < 0.0f) {
@@ -127,7 +127,7 @@ void Display_DrawHelpAlert(void) {
}
break;
- case 1:
+ case true:
RCP_SetupDL(&gMasterDisp, SETUPDL_76);
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 0, 255);
Graphics_DisplaySmallText(43 - 19, 106, 1.0f, 1.0f, "HELP!!");
@@ -137,7 +137,7 @@ void Display_DrawHelpAlert(void) {
}
}
-bool func_display_800520FC(s32 limbIndex, Gfx** gfxPtr, Vec3f* pos, Vec3f* rot, void* data) {
+bool Display_OnFootCharacter_OverrideLimbDraw(s32 limbIndex, Gfx** gfxPtr, Vec3f* pos, Vec3f* rot, void* data) {
Player* player = (Player*) data;
gSPSetGeometryMode(gMasterDisp++, G_CULL_BACK);
@@ -194,7 +194,7 @@ bool func_display_800520FC(s32 limbIndex, Gfx** gfxPtr, Vec3f* pos, Vec3f* rot,
return false;
}
-void func_display_800523A8(s32 limbIndex, Vec3f* rot, void* data) {
+void Display_OnFootFox_PostLimbDraw(s32 limbIndex, Vec3f* rot, void* data) {
Vec3f sp1C;
Player* player = (Player*) data;
@@ -206,7 +206,7 @@ void func_display_800523A8(s32 limbIndex, Vec3f* rot, void* data) {
}
}
-void func_display_80052420(s32 limbIndex, Vec3f* rot, void* data) {
+void Display_OnFootPeppy_PostLimbDraw(s32 limbIndex, Vec3f* rot, void* data) {
Vec3f sp1C;
Player* player = (Player*) data;
@@ -218,7 +218,7 @@ void func_display_80052420(s32 limbIndex, Vec3f* rot, void* data) {
}
}
-void func_display_80052498(s32 limbIndex, Vec3f* rot, void* data) {
+void Display_OnFootSlippy_PostLimbDraw(s32 limbIndex, Vec3f* rot, void* data) {
Vec3f sp1C;
Player* player = (Player*) data;
@@ -230,7 +230,7 @@ void func_display_80052498(s32 limbIndex, Vec3f* rot, void* data) {
}
}
-void func_display_8005250C(s32 limbIndex, Vec3f* rot, void* data) {
+void Display_OnFootFalco_PostLimbDraw(s32 limbIndex, Vec3f* rot, void* data) {
Vec3f sp1C;
Player* player = (Player*) data;
@@ -242,7 +242,7 @@ void func_display_8005250C(s32 limbIndex, Vec3f* rot, void* data) {
}
}
-void func_display_80052584(Player* player) {
+void Display_OnFootMuzzleFlash(Player* player) {
Matrix_Push(&gGfxMatrix);
Matrix_Copy(gGfxMatrix, &gIdentityMatrix);
if ((player->state_1C8 == PLAYERSTATE_1C8_ACTIVE) && (player->csTimer != 0)) {
@@ -258,34 +258,34 @@ void func_display_80052584(Player* player) {
Matrix_Pop(&gGfxMatrix);
}
-void func_display_800526B8(Player* player) {
+void Display_OnFootCharacter(Player* player) {
Matrix_Push(&gGfxMatrix);
Matrix_Scale(gCalcMatrix, 0.5f, 0.5f, 0.5f, MTXF_APPLY);
Matrix_Translate(gCalcMatrix, 0.0f, 35.0f, 0.0f, MTXF_APPLY);
switch (player->num) {
case 0:
- Animation_DrawSkeleton(5, D_versus_301D258, player->jointTable, func_display_800520FC,
- func_display_800523A8, player, gCalcMatrix);
+ Animation_DrawSkeleton(5, aVsOnFootFoxSkel, player->jointTable, Display_OnFootCharacter_OverrideLimbDraw,
+ Display_OnFootFox_PostLimbDraw, player, gCalcMatrix);
break;
case 1:
- Animation_DrawSkeleton(5, D_versus_301DB94, player->jointTable, func_display_800520FC,
- func_display_80052420, player, gCalcMatrix);
+ Animation_DrawSkeleton(5, aVsOnFootPeppySkel, player->jointTable, Display_OnFootCharacter_OverrideLimbDraw,
+ Display_OnFootPeppy_PostLimbDraw, player, gCalcMatrix);
break;
case 2:
- Animation_DrawSkeleton(5, D_versus_301E3E8, player->jointTable, func_display_800520FC,
- func_display_80052498, player, gCalcMatrix);
+ Animation_DrawSkeleton(5, aVsOnFootSlippySkel, player->jointTable, Display_OnFootCharacter_OverrideLimbDraw,
+ Display_OnFootSlippy_PostLimbDraw, player, gCalcMatrix);
break;
case 3:
- Animation_DrawSkeleton(5, D_versus_301C614, player->jointTable, func_display_800520FC,
- func_display_8005250C, player, gCalcMatrix);
+ Animation_DrawSkeleton(5, aVsOnFootFalcoSkel, player->jointTable, Display_OnFootCharacter_OverrideLimbDraw,
+ Display_OnFootFalco_PostLimbDraw, player, gCalcMatrix);
break;
}
Matrix_Pop(&gGfxMatrix);
gSPSetGeometryMode(gMasterDisp++, G_CULL_BACK);
}
-void func_display_80052884(Player* player) {
+void Display_Landmaster(Player* player) {
f32 sp64;
Vec3f sp58;
Vec3f sp4C = { 0.0f, 0.0f, 90.0f };
@@ -294,9 +294,9 @@ void func_display_80052884(Player* player) {
Matrix_Push(&gGfxMatrix);
if (!gVersusMode) {
- gSPDisplayList(gMasterDisp++, D_landmaster_3000090);
+ gSPDisplayList(gMasterDisp++, aLandmasterModelDL);
} else {
- gSPDisplayList(gMasterDisp++, D_versus_300FB80);
+ gSPDisplayList(gMasterDisp++, aVsLandmasterModelDL);
}
Matrix_MultVec3f(gGfxMatrix, &sp40, &D_display_80161518[player->num]);
@@ -324,9 +324,9 @@ void func_display_80052884(Player* player) {
RCP_SetupDL_64();
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 64, 255, 64, 255);
}
- gSPDisplayList(gMasterDisp++, D_landmaster_3004680);
+ gSPDisplayList(gMasterDisp++, aLandmasterCanonDL);
} else {
- gSPDisplayList(gMasterDisp++, D_versus_301F140);
+ gSPDisplayList(gMasterDisp++, aVsLandmasterCanonDL);
}
Matrix_MultVec3f(gGfxMatrix, &sp4C, &D_display_80161548[player->num]);
@@ -338,10 +338,10 @@ Gfx* D_display_800CA27C[] = { D_arwing_3001C90, D_arwing_3016CC0, D_arwing_3005A
f32 D_display_800CA28C = 2.0f;
f32 D_display_800CA290 = 13.0f;
f32 D_display_800CA294 = -10.0f;
-f32 sCrosshairScales[] = { 0.0f, 0.0f, 0.0f, 0.0f };
+f32 sReticleScales[] = { 0.0f, 0.0f, 0.0f, 0.0f };
f32 sPlayerShadowing = 0.0f;
-void func_display_80052B80(Player* player) {
+void Display_LandmasterMuzzleFlash(Player* player) {
Matrix_Push(&gGfxMatrix);
if ((player->state_1C8 == PLAYERSTATE_1C8_ACTIVE) && (player->unk_1A0 != 0)) {
@@ -367,7 +367,7 @@ void func_display_80052B80(Player* player) {
Matrix_Pop(&gGfxMatrix);
}
-void func_display_80052D48(Player* player) {
+void Display_LandmasterThrusters(Player* player) {
f32 sp2C;
Matrix_Push(&gGfxMatrix);
@@ -387,17 +387,22 @@ void func_display_80052D48(Player* player) {
if (!gVersusMode) {
sp2C *= 1.1f;
}
+
if ((gGameFrameCount % 2) != 0) {
sp2C *= 1.1f;
}
+
Matrix_Push(&gGfxMatrix);
Matrix_Translate(gGfxMatrix, 20.0f, 30.0f, -10.0f, MTXF_APPLY);
+
if (!gVersusMode) {
Matrix_RotateY(gGfxMatrix, -gPlayer[gPlayerNum].camYaw, MTXF_APPLY);
}
+
Matrix_Scale(gGfxMatrix, sp2C, sp2C, sp2C, MTXF_APPLY);
Matrix_Translate(gGfxMatrix, 0.0f, -30.0f, 0.0f, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp);
+
if (!gVersusMode) {
gSPDisplayList(gMasterDisp++, D_landmaster_30066B0);
} else {
@@ -411,17 +416,22 @@ void func_display_80052D48(Player* player) {
if (!gVersusMode) {
sp2C *= 1.1f;
}
+
if ((gGameFrameCount % 2) != 0) {
sp2C *= 1.1f;
}
+
Matrix_Push(&gGfxMatrix);
Matrix_Translate(gGfxMatrix, -20.0f, 30.0f, -10.0f, MTXF_APPLY);
+
if (!gVersusMode) {
Matrix_RotateY(gGfxMatrix, -gPlayer[gPlayerNum].camYaw, MTXF_APPLY);
}
+
Matrix_Scale(gGfxMatrix, sp2C, sp2C, sp2C, MTXF_APPLY);
Matrix_Translate(gGfxMatrix, 0.0f, -30.0f, 0.0f, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp);
+
if (!gVersusMode) {
gSPDisplayList(gMasterDisp++, D_landmaster_30066B0);
} else {
@@ -432,19 +442,19 @@ void func_display_80052D48(Player* player) {
Matrix_Pop(&gGfxMatrix);
}
-void func_display_8005314C(void) {
+void Display_SetCullingMode(void) {
if (gReflectY != 0) {
gSPSetGeometryMode(gMasterDisp++, G_CULL_FRONT);
gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK);
}
}
-bool func_display_800531A4(s32 limbIndex, Gfx** gfxPtr, Vec3f* pos, Vec3f* rot, void* wingData) {
+bool Display_ArwingWingsOverrideLimbDraw(s32 limbIndex, Gfx** gfxPtr, Vec3f* pos, Vec3f* rot, void* wingData) {
WingInfo* wings = (WingInfo*) wingData;
if (D_display_800CA22C && (gPlayer[0].dmgEffect == 0)) {
RCP_SetupDL(&gMasterDisp, SETUPDL_29);
- func_display_8005314C();
+ Display_SetCullingMode();
}
switch (limbIndex) {
@@ -457,7 +467,7 @@ bool func_display_800531A4(s32 limbIndex, Gfx** gfxPtr, Vec3f* pos, Vec3f* rot,
}
if (D_display_800CA22C && ((gRightWingFlashTimer[0] % 2) != 0)) {
RCP_SetupDL(&gMasterDisp, SETUPDL_34);
- func_display_8005314C();
+ Display_SetCullingMode();
if (gRightWingFlashTimer[0] > 1000) {
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 32, 32, 255, 255);
} else {
@@ -473,7 +483,7 @@ bool func_display_800531A4(s32 limbIndex, Gfx** gfxPtr, Vec3f* pos, Vec3f* rot,
}
if (D_display_800CA22C && ((gRightWingFlashTimer[0] % 2) != 0)) {
RCP_SetupDL(&gMasterDisp, SETUPDL_34);
- func_display_8005314C();
+ Display_SetCullingMode();
if (gRightWingFlashTimer[0] > 1000) {
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 32, 32, 255, 255);
} else {
@@ -491,7 +501,7 @@ bool func_display_800531A4(s32 limbIndex, Gfx** gfxPtr, Vec3f* pos, Vec3f* rot,
}
if (D_display_800CA22C && ((gLeftWingFlashTimer[0] % 2) != 0)) {
RCP_SetupDL(&gMasterDisp, SETUPDL_34);
- func_display_8005314C();
+ Display_SetCullingMode();
if (gLeftWingFlashTimer[0] > 1000) {
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 32, 32, 255, 255);
} else {
@@ -507,7 +517,7 @@ bool func_display_800531A4(s32 limbIndex, Gfx** gfxPtr, Vec3f* pos, Vec3f* rot,
}
if (D_display_800CA22C && ((gLeftWingFlashTimer[0] % 2) != 0)) {
RCP_SetupDL(&gMasterDisp, SETUPDL_34);
- func_display_8005314C();
+ Display_SetCullingMode();
if (gLeftWingFlashTimer[0] > 1000) {
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 32, 32, 255, 255);
} else {
@@ -548,7 +558,7 @@ bool func_display_800531A4(s32 limbIndex, Gfx** gfxPtr, Vec3f* pos, Vec3f* rot,
return false;
}
-void func_display_80053658(WingInfo* wings) {
+void Display_ArwingWings(WingInfo* wings) {
Vec3f sp68[30];
s32 modelId;
@@ -560,15 +570,16 @@ void func_display_80053658(WingInfo* wings) {
}
if (gGameState == GSTATE_PLAY) {
- Animation_DrawSkeleton(1, D_arwing_3016610, gPlayer[0].jointTable, func_display_800531A4, NULL, wings,
- &gIdentityMatrix);
+ Animation_DrawSkeleton(1, D_arwing_3016610, gPlayer[0].jointTable, Display_ArwingWingsOverrideLimbDraw, NULL,
+ wings, &gIdentityMatrix);
} else {
if (gGameState == GSTATE_MENU) {
Animation_GetFrameData(&D_arwing_3015AF4, 0, sp68);
} else {
Animation_GetFrameData(&D_arwing_3015C28, 0, sp68);
}
- Animation_DrawSkeleton(1, D_arwing_3016610, sp68, func_display_800531A4, NULL, wings, &gIdentityMatrix);
+ Animation_DrawSkeleton(1, D_arwing_3016610, sp68, Display_ArwingWingsOverrideLimbDraw, NULL, wings,
+ &gIdentityMatrix);
}
D_display_800CA22C = false;
@@ -620,10 +631,11 @@ void func_display_80053658(WingInfo* wings) {
Matrix_Pop(&gGfxMatrix);
}
-void func_display_80053B00(f32 arg0, f32 arg1, UNK_TYPE arg2, UNK_TYPE arg3) {
+void Display_Unused(f32 arg0, f32 arg1, UNK_TYPE arg2, UNK_TYPE arg3) {
+ /* Unimplemented. */
}
-void func_display_80053B18(void) {
+void Display_CockpitGlass(void) {
Matrix_Push(&gGfxMatrix);
Matrix_Copy(gGfxMatrix, &D_display_80161418[0]);
Matrix_Translate(gGfxMatrix, 0.0f, D_display_800CA290, D_display_800CA294, MTXF_APPLY);
@@ -637,11 +649,11 @@ void func_display_80053B18(void) {
Matrix_Pop(&gGfxMatrix);
}
-void func_display_80053C38(Player* player, s32 arg1) {
+void Display_Arwing(Player* player, s32 reflectY) {
Vec3f sp4C;
f32 sp48;
- if ((gPlayerNum == player->num) && (arg1 == 0)) {
+ if ((gPlayerNum == player->num) && (reflectY == 0)) {
sp48 = 0.0f;
if (gChargeTimers[player->num] >= 20) {
sp48 = (s32) (gGameFrameCount % 8U) * 80.0f;
@@ -656,8 +668,8 @@ void func_display_80053C38(Player* player, s32 arg1) {
if (player->alternateView && (gLevelMode == LEVELMODE_ON_RAILS) &&
(fabsf(player->trueZpos + gPathProgress - player->cam.eye.z) < 10.0f)) {
- if (arg1 == 0) {
- sDrawCockpit = 1;
+ if (reflectY == 0) {
+ sDrawCockpit = true;
Matrix_Push(&gGfxMatrix);
Matrix_Translate(gGfxMatrix, 0.0f, -8.0f, 5.0f, MTXF_APPLY);
Matrix_RotateY(gGfxMatrix, M_PI, MTXF_APPLY);
@@ -684,13 +696,13 @@ void func_display_80053C38(Player* player, s32 arg1) {
player->wings.unk_10 = 0.0f;
}
D_display_800CA22C = true;
- gReflectY = arg1;
- func_display_80053658(&player->wings);
+ gReflectY = reflectY;
+ Display_ArwingWings(&player->wings);
}
}
}
-void func_display_80053F7C(Player* player) {
+void Display_Reticle(Player* player) {
Vec3f* translate;
s32 i;
@@ -708,7 +720,7 @@ void func_display_80053F7C(Player* player) {
if (i == 1) {
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 0, 0, 255);
gDPSetEnvColor(gMasterDisp++, 255, 0, 0, 255);
- Math_SmoothStepToF(&sCrosshairScales[player->num], 2.0f, 1.0f, 0.4f, 0.0f);
+ Math_SmoothStepToF(&sReticleScales[player->num], 2.0f, 1.0f, 0.4f, 0.0f);
} else {
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 0, 255);
gDPSetEnvColor(gMasterDisp++, 255, 255, 0, 255);
@@ -718,9 +730,8 @@ void func_display_80053F7C(Player* player) {
}
if (i == 1) {
- Matrix_Scale(gGfxMatrix, sCrosshairScales[player->num], sCrosshairScales[player->num], 1.0f,
- MTXF_APPLY);
- Math_SmoothStepToF(&sCrosshairScales[player->num], 1.0f, 1.0f, 0.2f, 0.0f);
+ Matrix_Scale(gGfxMatrix, sReticleScales[player->num], sReticleScales[player->num], 1.0f, MTXF_APPLY);
+ Math_SmoothStepToF(&sReticleScales[player->num], 1.0f, 1.0f, 0.2f, 0.0f);
}
Matrix_Scale(gGfxMatrix, 4.0f, 4.0f, 4.0f, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp);
@@ -730,24 +741,24 @@ void func_display_80053F7C(Player* player) {
}
}
-void func_display_80054280(Player* player, s32 arg1) {
+void Display_DrawPlayer(Player* player, s32 reflectY) {
switch (player->form) {
case FORM_ARWING:
- func_display_80053C38(player, arg1);
+ Display_Arwing(player, reflectY);
break;
case FORM_LANDMASTER:
- func_display_80052884(player);
+ Display_Landmaster(player);
break;
case FORM_BLUE_MARINE:
- Aquas_801ACBB4(player);
+ Aquas_BlueMarine_Draw(player);
break;
case FORM_ON_FOOT:
- func_display_800526B8(player);
+ Display_OnFootCharacter(player);
break;
}
}
-void func_display_80054300(Player* player) {
+void Display_PlayerShadow_Draw(Player* player) {
Math_SmoothStepToF(&sPlayerShadowing, player->shadowing, 1.0f, 10.0f, 0.0f);
RCP_SetupDL(&gMasterDisp, SETUPDL_66);
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 0, 0, 0, (s32) sPlayerShadowing);
@@ -803,7 +814,7 @@ void func_display_80054300(Player* player) {
}
}
-void Play_DrawEngineGlow(s32 levelType) {
+void Display_DrawEngineGlow(s32 levelType) {
RCP_SetupDL(&gMasterDisp, SETUPDL_67);
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 255);
@@ -824,7 +835,7 @@ void Play_DrawEngineGlow(s32 levelType) {
gSPDisplayList(gMasterDisp++, D_1024AC0);
}
-void func_display_8005478C(Player* player) {
+void Display_LandmasterEngineGlow_Draw(Player* player) {
RCP_SetupDL_64();
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 100);
Matrix_Push(&gGfxMatrix);
@@ -846,14 +857,14 @@ void func_display_8005478C(Player* player) {
Matrix_Scale(gGfxMatrix, 0.9f * 0.9f, 0.9f * 0.63f, 1.0f, MTXF_APPLY);
}
Matrix_SetGfxMtx(&gMasterDisp);
- Play_DrawEngineGlow(gLevelType);
+ Display_DrawEngineGlow(gLevelType);
Matrix_Pop(&gGfxMatrix);
}
-void func_display_80054914(Player* player) {
- f32 sp4C;
- Vec3f sp40;
- Vec3f sp34;
+void Display_BarrelRollShield(Player* player) {
+ f32 zRotDirection;
+ Vec3f src;
+ Vec3f dest;
if (player->barrelRollAlpha != 0) {
Matrix_RotateY(gCalcMatrix, (player->yRot_114 + player->rot.y + player->damageShake + 180.0f) * M_DTOR,
@@ -866,23 +877,23 @@ void func_display_80054914(Player* player) {
Matrix_Translate(gCalcMatrix, player->xShake, player->yBob, 0.0f, MTXF_APPLY);
- sp40.x = 0.0f;
- sp40.y = 0.0f;
- sp40.z = -30.0f;
+ src.x = 0.0f;
+ src.y = 0.0f;
+ src.z = -30.0f;
- Matrix_MultVec3f(gCalcMatrix, &sp40, &sp34);
+ Matrix_MultVec3f(gCalcMatrix, &src, &dest);
- sp4C = 1.0f;
+ zRotDirection = 1.0f;
if (player->baseRollRate < 0) {
- sp4C = -1.0f;
+ zRotDirection = -1.0f;
}
Matrix_Push(&gGfxMatrix);
- Matrix_Translate(gGfxMatrix, player->pos.x + sp34.x, player->pos.y + sp34.y,
- player->trueZpos + player->zPath + sp34.z, MTXF_APPLY);
+ Matrix_Translate(gGfxMatrix, player->pos.x + dest.x, player->pos.y + dest.y,
+ player->trueZpos + player->zPath + dest.z, MTXF_APPLY);
Matrix_RotateY(gGfxMatrix, -gPlayer[gPlayerNum].camYaw, MTXF_APPLY);
Matrix_RotateX(gGfxMatrix, gPlayer[gPlayerNum].camPitch, MTXF_APPLY);
- Matrix_RotateZ(gGfxMatrix, gGameFrameCount * 20.0f * sp4C * M_DTOR, MTXF_APPLY);
+ Matrix_RotateZ(gGfxMatrix, gGameFrameCount * 20.0f * zRotDirection * M_DTOR, MTXF_APPLY);
if (player->form == FORM_ARWING) {
Matrix_Scale(gGfxMatrix, 2.0f, 2.0f, 2.0f, MTXF_APPLY);
@@ -898,12 +909,12 @@ void func_display_80054914(Player* player) {
RCP_SetupDL(&gMasterDisp, SETUPDL_67);
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, player->barrelRollAlpha);
gDPSetEnvColor(gMasterDisp++, 0, 0, 160, player->barrelRollAlpha);
- gSPDisplayList(gMasterDisp++, D_101DC10);
+ gSPDisplayList(gMasterDisp++, aBarrelRollTex);
Matrix_Pop(&gGfxMatrix);
}
}
-void func_display_80054CA4(Player* player) {
+void Display_UnusedShield(Player* player) {
if (gShieldAlpha[player->num] > 1.0f) {
Matrix_Push(&gGfxMatrix);
Matrix_Copy(gGfxMatrix, &D_display_80161418[player->num]);
@@ -913,14 +924,14 @@ void func_display_80054CA4(Player* player) {
RCP_SetupDL(&gMasterDisp, SETUPDL_68);
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 0, 255, 255, (s32) gShieldAlpha[player->num]);
gDPSetEnvColor(gMasterDisp++, 255, 0, 255, (s32) gShieldAlpha[player->num]);
- gSPDisplayList(gMasterDisp++, D_101CD70);
+ gSPDisplayList(gMasterDisp++, aUnusedShieldDL);
Matrix_Pop(&gGfxMatrix);
- Texture_Scroll(D_101D070, 32, 32, 3);
- Texture_Scroll(D_101D070, 32, 32, 3);
+ Texture_Scroll(aUnusedShieldTex, 32, 32, 3);
+ Texture_Scroll(aUnusedShieldTex, 32, 32, 3);
}
}
-void func_display_80054E80(Player* player) {
+void Display_ArwingLaserCharge(Player* player) {
Vec3f spC4 = { 0.0f, -5.0f, 60.0f };
Vec3f spB8 = { 0.0f, -14.0f, 60.0f };
Vec3f spAC = { 30.0f, -10.0f, 30.0f };
@@ -933,6 +944,7 @@ void func_display_80054E80(Player* player) {
if (gChargeTimers[player->num] > 10) {
RCP_SetupDL(&gMasterDisp, SETUPDL_67);
Matrix_Copy(gCalcMatrix, &D_display_80161418[player->num]);
+
if (player->alternateView && (gLevelMode == LEVELMODE_ON_RAILS)) {
Matrix_MultVec3f(gCalcMatrix, &spB8, &sp94);
} else {
@@ -1013,17 +1025,21 @@ void func_display_80054E80(Player* player) {
case LASERS_SINGLE:
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 192, 255, 192, 128);
gDPSetEnvColor(gMasterDisp++, 64, 255, 64, 128);
+
if (player->alternateView && (gLevelMode == LEVELMODE_ON_RAILS)) {
Matrix_MultVec3f(gCalcMatrix, &spB8, &sp94);
} else {
Matrix_MultVec3f(gCalcMatrix, &spC4, &sp94);
}
+
Matrix_Push(&gGfxMatrix);
+
Matrix_Translate(gGfxMatrix, sp94.x, sp94.y, sp94.z, MTXF_NEW);
Matrix_Scale(gGfxMatrix, gMuzzleFlashScale[player->num], gMuzzleFlashScale[player->num], 1.0f,
MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp);
gSPDisplayList(gMasterDisp++, D_1024AC0);
+
Matrix_Pop(&gGfxMatrix);
break;
@@ -1045,12 +1061,14 @@ void func_display_80054E80(Player* player) {
Matrix_SetGfxMtx(&gMasterDisp);
gSPDisplayList(gMasterDisp++, D_1024AC0);
Matrix_Pop(&gGfxMatrix);
+
Matrix_Push(&gGfxMatrix);
Matrix_Translate(gGfxMatrix, sp88.x, sp88.y, sp88.z, MTXF_NEW);
Matrix_Scale(gGfxMatrix, gMuzzleFlashScale[player->num], gMuzzleFlashScale[player->num], 1.0f,
MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp);
gSPDisplayList(gMasterDisp++, D_1024AC0);
+
Matrix_Pop(&gGfxMatrix);
break;
}
@@ -1058,17 +1076,22 @@ void func_display_80054E80(Player* player) {
}
}
-void func_display_80055788(Player* player) {
+void Display_LandmasterLaserCharge(Player* player) {
f32 sp54;
if (gChargeTimers[player->num] > 10) {
RCP_SetupDL(&gMasterDisp, SETUPDL_67);
Matrix_Push(&gGfxMatrix);
+
sp54 = gChargeTimers[player->num] / 20.0f;
+
Matrix_Translate(gGfxMatrix, D_display_80161548[player->num].x, D_display_80161548[player->num].y,
D_display_80161548[player->num].z, MTXF_NEW);
+
Matrix_Scale(gGfxMatrix, sp54, sp54, 1.0f, MTXF_APPLY);
+
Matrix_Push(&gGfxMatrix);
+
Matrix_Scale(gGfxMatrix, 10.0f, 10.0f, 10.0f, MTXF_APPLY);
RCP_SetupDL(&gMasterDisp, SETUPDL_49);
@@ -1096,9 +1119,11 @@ void func_display_80055788(Player* player) {
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);
Matrix_Scale(gGfxMatrix, 0.5f, 0.5f, 1.0f, MTXF_APPLY);
@@ -1113,9 +1138,9 @@ void func_display_80055788(Player* player) {
}
}
-void func_display_80055B58(Player* player) {
- Vec3f sp4C;
- Vec3f sp40;
+void Display_PlayerFeatures(Player* player) {
+ Vec3f src;
+ Vec3f dest;
f32 var_fv0;
s32 pad[3];
@@ -1137,43 +1162,43 @@ void func_display_80055B58(Player* player) {
var_fv0 = 30.0f;
}
- sp4C.x = 0;
- sp4C.y = 0;
- sp4C.z = -40.0f - var_fv0;
+ src.x = 0;
+ src.y = 0;
+ src.z = -40.0f - var_fv0;
- Matrix_MultVec3f(gCalcMatrix, &sp4C, &sp40);
+ Matrix_MultVec3f(gCalcMatrix, &src, &dest);
Matrix_Push(&gGfxMatrix);
- Matrix_Translate(gGfxMatrix, player->pos.x + sp40.x, player->pos.y + sp40.y,
- player->trueZpos + player->zPath + sp40.z, MTXF_APPLY);
+ Matrix_Translate(gGfxMatrix, player->pos.x + dest.x, player->pos.y + dest.y,
+ player->trueZpos + player->zPath + dest.z, MTXF_APPLY);
Matrix_RotateY(gGfxMatrix, -gPlayer[gPlayerNum].camYaw, MTXF_APPLY);
Matrix_RotateX(gGfxMatrix, gPlayer[gPlayerNum].camPitch, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp);
- func_display_8005478C(player);
+ Display_LandmasterEngineGlow_Draw(player);
Matrix_Pop(&gGfxMatrix);
- func_display_80054914(player);
- func_display_80054CA4(player);
- func_display_80054E80(player);
+ Display_BarrelRollShield(player);
+ Display_UnusedShield(player);
+ Display_ArwingLaserCharge(player);
break;
case FORM_LANDMASTER:
- func_display_80052D48(player);
+ Display_LandmasterThrusters(player);
Matrix_Push(&gGfxMatrix);
Matrix_Translate(gGfxMatrix, D_display_80161518[player->num].x, D_display_80161518[player->num].y,
D_display_80161518[player->num].z, MTXF_NEW);
Matrix_SetGfxMtx(&gMasterDisp);
- func_display_8005478C(player);
+ Display_LandmasterEngineGlow_Draw(player);
Matrix_Pop(&gGfxMatrix);
- func_display_80055788(player);
+ Display_LandmasterLaserCharge(player);
break;
case FORM_BLUE_MARINE:
- func_display_80054914(player);
+ Display_BarrelRollShield(player);
break;
}
}
}
-void func_display_80055E98(Player* player) {
+void Display_ArwingWingTrail_Draw(Player* player) {
f32 sp5C = 70.0f;
f32 sp58 = -18.0f;
f32 sp54;
@@ -1236,7 +1261,7 @@ void func_display_80055E98(Player* player) {
}
}
-void func_display_80056230(Player* player) {
+void Display_ArwingWingTrail_Update(Player* player) {
if (player->draw && (player->form == FORM_ARWING) && (gCurrentLevel != LEVEL_VENOM_ANDROSS) &&
(gCurrentLevel != LEVEL_TRAINING) && (gLevelType == LEVELTYPE_PLANET)) {
Matrix_Push(&gGfxMatrix);
@@ -1247,37 +1272,38 @@ void func_display_80056230(Player* player) {
MTXF_APPLY);
Matrix_Translate(gGfxMatrix, player->xShake, player->yBob, 0.0f, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp);
- func_display_80055E98(player);
+ Display_ArwingWingTrail_Draw(player);
Matrix_Pop(&gGfxMatrix);
}
}
-bool func_display_800563B4(s32 index, s32 arg1) {
- Vec3f sp2C = { 0.0f, 0.0f, 0.0f };
- Vec3f sp20;
+bool Display_CheckPlayerVisible(s32 index, s32 reflectY) {
+ Vec3f src = { 0.0f, 0.0f, 0.0f };
+ Vec3f dest;
- Matrix_MultVec3f(gGfxMatrix, &sp2C, &sp20);
+ Matrix_MultVec3f(gGfxMatrix, &src, &dest);
- if ((sp20.z < 200.0f) && (sp20.z > -12000.0f)) {
- if (fabsf(sp20.x) < (fabsf(sp20.z * 0.5f) + 500.0f)) {
- if (fabsf(sp20.y) < (fabsf(sp20.z * 0.5f) + 500.0f)) {
- if (arg1 == 0) {
- sPlayersVisible[index] = 1;
+ if ((dest.z < 200.0f) && (dest.z > -12000.0f)) {
+ if (fabsf(dest.x) < (fabsf(dest.z * 0.5f) + 500.0f)) {
+ if (fabsf(dest.y) < (fabsf(dest.z * 0.5f) + 500.0f)) {
+ if (reflectY == 0) {
+ sPlayersVisible[index] = true;
}
return true;
}
}
}
- if (arg1 == 0) {
- sPlayersVisible[index] = 0;
+ if (reflectY == 0) {
+ sPlayersVisible[index] = false;
}
return false;
}
+// unused
s32 D_display_800CA2E8[16] = { 60, 40, 20, 20, 20, 20, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0 };
-void func_display_800564C0(Player* player, s32 arg1) {
+void Display_Player_Update(Player* player, s32 reflectY) {
s32 i;
Vec3f sp50 = { 0.0f, 0.0f, 0.0f };
@@ -1304,7 +1330,7 @@ void func_display_800564C0(Player* player, s32 arg1) {
}
}
- if (!func_display_800563B4(player->num, arg1)) {
+ if (!Display_CheckPlayerVisible(player->num, reflectY)) {
Matrix_Pop(&gGfxMatrix);
return;
}
@@ -1324,7 +1350,7 @@ void func_display_800564C0(Player* player, s32 arg1) {
Matrix_Push(&gGfxMatrix);
Matrix_Translate(gGfxMatrix, player->pos.x, player->pos.y, player->trueZpos + player->zPath, MTXF_APPLY);
- if (!func_display_800563B4(player->num, arg1)) {
+ if (!Display_CheckPlayerVisible(player->num, reflectY)) {
Matrix_Pop(&gGfxMatrix);
Matrix_Pop(&gGfxMatrix);
return;
@@ -1357,7 +1383,7 @@ void func_display_800564C0(Player* player, s32 arg1) {
}
}
- if (!func_display_800563B4(player->num, arg1)) {
+ if (!Display_CheckPlayerVisible(player->num, reflectY)) {
Matrix_Pop(&gGfxMatrix);
return;
}
@@ -1398,12 +1424,12 @@ void func_display_800564C0(Player* player, s32 arg1) {
break;
}
- if (arg1 != 0) {
+ if (reflectY != 0) {
Object_ApplyWaterDistortion();
} else {
Matrix_Copy(&D_display_80161418[player->num], gGfxMatrix);
}
- func_display_80054280(player, arg1);
+ Display_DrawPlayer(player, reflectY);
Matrix_Pop(&gGfxMatrix);
}
}
@@ -1411,16 +1437,16 @@ void func_display_800564C0(Player* player, s32 arg1) {
f32 D_display_800CA334[] = {
0.02f, 0.06f, 0.08f, 0.05f, 0.04f, 0.03f, 0.06f, 0.04f,
};
-Gfx* D_display_800CA354[] = {
- D_1024570, D_1024570, D_10246D0, D_1024410, D_1024410, D_1024410,
- D_1024410, D_1024410, D_D000000, D_D00B5C0, D_D00B720,
+Gfx* sTeammateMarkDLs[] = {
+ aFalcoMarkDL, aFalcoMarkDL, aSlippyMarkDL, aPeppyMarkDL, aPeppyMarkDL, aPeppyMarkDL,
+ aPeppyMarkDL, aPeppyMarkDL, aKattMarkDL, aBillMarkDL, aJamesMarkDL,
};
f32 D_display_800CA380 = 0.0f;
f32 D_display_800CA384 = 0.0f;
f32 D_display_800CA388 = -300.0f;
f32 D_display_800CA38C[] = { 0.0f, -300.0f, -150.0f, -50.0f };
-void func_display_80056E2C(Player* player) {
+void Display_PlayerShadow_Update(Player* player) {
f32 sp34;
f32 sp30;
f32 sp2C;
@@ -1428,6 +1454,7 @@ void func_display_80056E2C(Player* player) {
if (player->draw && !player->hideShadow) {
sp34 = D_display_800CA334[gGameFrameCount % 8U];
sp30 = D_display_800CA334[(gGameFrameCount + 4) % 8U];
+
if (player->grounded) {
sp34 = sp30 = 0.0f;
}
@@ -1450,6 +1477,7 @@ void func_display_80056E2C(Player* player) {
Matrix_RotateY(gGfxMatrix, player->groundRotY, MTXF_APPLY);
Matrix_RotateX(gGfxMatrix, player->shadowRotX, MTXF_APPLY);
Matrix_RotateZ(gGfxMatrix, player->shadowRotZ, MTXF_APPLY);
+
Matrix_Scale(gGfxMatrix, 0.8f + sp34, 0.0f, 0.8f + sp30, MTXF_APPLY);
if ((player->form == FORM_ARWING) || (player->form == FORM_BLUE_MARINE) || (player->form == FORM_ON_FOOT)) {
@@ -1472,17 +1500,18 @@ void func_display_80056E2C(Player* player) {
Matrix_RotateY(gGfxMatrix, player->rot.y * M_DTOR, MTXF_APPLY);
Matrix_RotateZ(gGfxMatrix, (-player->zRotBank - player->zRotBarrelRoll) * M_DTOR, MTXF_APPLY);
}
- func_display_80054300(player);
+ Display_PlayerShadow_Draw(player);
Matrix_Pop(&gGfxMatrix);
}
}
-void func_display_80057248(void) {
+void Display_ActorMarks(void) {
s32 i;
f32 var_fs0;
if ((gGameFrameCount & 4) == 0) {
RCP_SetupDL_40();
+
for (i = 0; i < ARRAY_COUNT(gTeamArrowsViewPos); i++) {
if (gTeamArrowsViewPos[i].z < 0.0f) {
var_fs0 = (VEC3F_MAG(&gTeamArrowsViewPos[i])) * 0.0015f;
@@ -1491,20 +1520,24 @@ void func_display_80057248(void) {
} else if (var_fs0 < 1.0f) {
var_fs0 = 1.0f;
}
+
Matrix_Push(&gGfxMatrix);
Matrix_Translate(gGfxMatrix, gTeamArrowsViewPos[i].x, gTeamArrowsViewPos[i].y, gTeamArrowsViewPos[i].z,
MTXF_APPLY);
Matrix_Scale(gGfxMatrix, var_fs0 * 0.25f, var_fs0 * 0.25f, 1.0f, MTXF_APPLY);
+
if ((i == 0) && (gCurrentLevel == LEVEL_SECTOR_Z)) {
Matrix_Scale(gGfxMatrix, 2.0f, 2.0f, 1.0f, MTXF_APPLY);
}
+
Matrix_Translate(gGfxMatrix, 0.0f, 150.0f, 0.0f, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp);
gDPSetTextureFilter(gMasterDisp++, G_TF_POINT);
+
if ((i == 0) && (gCurrentLevel == LEVEL_SECTOR_Z)) {
- gSPDisplayList(gMasterDisp++, D_SZ_6004330);
+ gSPDisplayList(gMasterDisp++, aSzMissileMark);
} else {
- gSPDisplayList(gMasterDisp++, D_display_800CA354[i]);
+ gSPDisplayList(gMasterDisp++, sTeammateMarkDLs[i]);
}
Matrix_Pop(&gGfxMatrix);
}
@@ -1515,7 +1548,7 @@ void func_display_80057248(void) {
}
}
-void func_display_80057504(void) {
+void Display_LockOnIndicator(void) {
s32 i;
s32 j;
f32 var_fs0;
@@ -1558,7 +1591,7 @@ void func_display_80057504(void) {
}
}
-void func_display_80057814(Player* player) {
+void Display_SetupPlayerSfxPos(Player* player) {
Vec3f sp2C;
Vec3f sp20;
@@ -1578,7 +1611,7 @@ void func_display_80057814(Player* player) {
player->sfx.zRot = player->bankAngle;
}
-void func_display_800578C4(Player* player) {
+void Display_CsLevelCompleteHandleCamera(Player* player) {
Vec3f sp4C = { 0.0f, 0.0f, -300.0f };
Vec3f sp40;
f32 sp3C;
@@ -1596,6 +1629,7 @@ void func_display_800578C4(Player* player) {
gPlayCamAt.z = player->cam.at.z;
break;
+ // Seems unused. Some sort of debugging code leftover?
case 1:
case 2:
case 3:
@@ -1606,6 +1640,7 @@ void func_display_800578C4(Player* player) {
if (sp38 < 0.0f) {
sp38 += 360.0f;
}
+
sp3C = (Math_RadToDeg(player->camYaw) + 180.0f) - player->rot.y;
if (sp3C > 360.0f) {
sp3C -= 360.0f;
@@ -1614,11 +1649,14 @@ void func_display_800578C4(Player* player) {
sp3C += 360.0f;
}
sp3C = 360.0f - sp3C;
+
Math_SmoothStepToAngle(&player->wings.unk_30, sp38, 0.2f, 6.0f, 0.0f);
Math_SmoothStepToAngle(&player->wings.unk_34, sp3C, 0.2f, 6.0f, 0.0f);
- Math_SmoothStepToF(&D_display_800CA380, gControllerPress->stick_y * 0.75f, 0.1f, 2.0f, 0.0f);
- Math_SmoothStepToF(&D_display_800CA384, gControllerPress->stick_x * 3.0f, 0.1f, 5.0f, 0.0f);
+
+ Math_SmoothStepToF(&D_display_800CA380, gControllerPress[0].stick_y * 0.75f, 0.1f, 2.0f, 0.0f);
+ Math_SmoothStepToF(&D_display_800CA384, gControllerPress[0].stick_x * 3.0f, 0.1f, 5.0f, 0.0f);
Math_SmoothStepToF(&D_display_800CA388, D_display_800CA38C[D_display_800CA220], 0.1f, 10.0f, 0.0f);
+
sp4C.z = D_display_800CA388;
Matrix_RotateX(gCalcMatrix, (player->rot.y + D_display_800CA380) * M_DTOR, MTXF_NEW);
Matrix_RotateY(gCalcMatrix, (player->rot.x + D_display_800CA384) * M_DTOR, MTXF_APPLY);
@@ -1633,7 +1671,7 @@ void func_display_800578C4(Player* player) {
}
}
-void Play_Draw(void) {
+void Display_Update(void) {
s32 i;
Vec3f tempVec;
Vec3f playerCamUp;
@@ -1642,8 +1680,9 @@ void Play_Draw(void) {
Player* player;
Player* camPlayer = &gPlayer[gPlayerNum];
- sDrawCockpit = 0;
+ sDrawCockpit = false;
+ // 511 hit count cap
if (gHitCount > 511) {
gHitCount = 511;
}
@@ -1689,7 +1728,7 @@ void Play_Draw(void) {
gPlayCamAt.x += SIN_DEG(gGameFrameCount * 150.0f) * camPlayer->boostSpeed * 0.2f;
}
} else if (camPlayer->state_1C8 == PLAYERSTATE_1C8_LEVEL_COMPLETE) {
- func_display_800578C4(camPlayer);
+ Display_CsLevelCompleteHandleCamera(camPlayer);
} else {
gPlayCamEye.x = camPlayer->cam.eye.x;
gPlayCamEye.y = camPlayer->cam.eye.y;
@@ -1740,13 +1779,13 @@ void Play_Draw(void) {
Lights_SetOneLight(&gMasterDisp, gLight2x, gLight2y, gLight2z, gLight2R, gLight2G, gLight2B, gAmbientR, gAmbientG,
gAmbientB);
- for (i = 0, player = gPlayer; i < gCamCount; i++, player++) {
+ for (i = 0, player = &gPlayer[0]; i < gCamCount; i++, player++) {
playerPos.x = player->pos.x;
playerPos.y = player->pos.y;
playerPos.z = player->trueZpos;
Display_SetSecondLight(&playerPos);
- func_display_800564C0(player, 0);
- func_display_80057814(player);
+ Display_Player_Update(player, 0);
+ Display_SetupPlayerSfxPos(player);
}
if ((gGroundSurface == SURFACE_WATER) && (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_LEVEL_INTRO)) {
@@ -1754,11 +1793,11 @@ void Play_Draw(void) {
gAmbientG, gAmbientB);
Matrix_Push(&gGfxMatrix);
Matrix_Scale(gGfxMatrix, 1.0f, -1.0f, 1.0f, MTXF_APPLY);
- for (i = 0, player = gPlayer; i < gCamCount; i++, player++) {
+ for (i = 0, player = &gPlayer[0]; i < gCamCount; i++, player++) {
playerPos.x = player->pos.x;
playerPos.y = player->pos.y;
playerPos.z = player->trueZpos;
- func_display_800564C0(player, 1);
+ Display_Player_Update(player, 1);
}
Matrix_Pop(&gGfxMatrix);
}
@@ -1783,10 +1822,10 @@ void Play_Draw(void) {
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);
- for (i = 0, player = gPlayer; i < gCamCount; i++, player++) {
- if (sPlayersVisible[i] != 0) {
- func_display_80055B58(player);
- func_display_80056230(player);
+ for (i = 0, player = &gPlayer[0]; i < gCamCount; i++, player++) {
+ if (sPlayersVisible[i]) {
+ Display_PlayerFeatures(player);
+ Display_ArwingWingTrail_Update(player);
}
Matrix_Pop(&gGfxMatrix);
}
@@ -1811,11 +1850,11 @@ void Play_Draw(void) {
gReflectY = 1;
- for (i = 0, player = gPlayer; i < gCamCount; i++, player++) {
- if (sPlayersVisible[i] != 0) {
- func_display_80056E2C(player);
- func_display_80055B58(player);
- func_display_80056230(player);
+ for (i = 0, player = &gPlayer[0]; i < gCamCount; i++, player++) {
+ if (sPlayersVisible[i]) {
+ Display_PlayerShadow_Update(player);
+ Display_PlayerFeatures(player);
+ Display_ArwingWingTrail_Update(player);
}
}
@@ -1831,22 +1870,22 @@ void Play_Draw(void) {
BonusText_DrawAll();
Matrix_Pop(&gGfxMatrix);
- func_display_80057248();
- func_display_80057504();
+ Display_ActorMarks();
+ Display_LockOnIndicator();
- if (sDrawCockpit != 0) {
- func_display_80053B18();
+ if (sDrawCockpit) {
+ Display_CockpitGlass();
}
- for (i = 0, player = gPlayer; i < gCamCount; i++, player++) {
- if (sPlayersVisible[i] != 0) {
- if (gShowCrosshairs[i]) {
- func_display_80053F7C(player);
+ for (i = 0, player = &gPlayer[0]; i < gCamCount; i++, player++) {
+ if (sPlayersVisible[i]) {
+ if (gShowReticles[i]) {
+ Display_Reticle(player);
}
if (player->form == FORM_LANDMASTER) {
- func_display_80052B80(player);
+ Display_LandmasterMuzzleFlash(player);
} else if (player->form == FORM_ON_FOOT) {
- func_display_80052584(player);
+ Display_OnFootMuzzleFlash(player);
}
}
}
@@ -1864,6 +1903,6 @@ void Play_Draw(void) {
}
Matrix_Pop(&gGfxMatrix);
Display_DrawHelpAlert();
- sPlayersVisible[gPlayerNum] = 0;
+ sPlayersVisible[gPlayerNum] = false;
Matrix_Pop(&gGfxMatrix);
}
diff --git a/src/engine/fox_edata.c b/src/engine/fox_edata.c
index 56b5af5e..b2c89e75 100644
--- a/src/engine/fox_edata.c
+++ b/src/engine/fox_edata.c
@@ -4,7 +4,7 @@
f32* D_edata_800CF964[] = { NULL }; // Likely a scrapped array of scenery shadow boxes
-void Scenery48_Draw(Scenery* scenery) {
+void Ve1SceneryWall1_Draw(Scenery* scenery) {
RCP_SetupDL_57(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
Matrix_RotateY(gGfxMatrix, M_PI, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp);
@@ -12,7 +12,7 @@ void Scenery48_Draw(Scenery* scenery) {
RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
}
-void Scenery49_Draw(Scenery* scenery) {
+void Ve1SceneryWall2_Draw(Scenery* scenery) {
RCP_SetupDL_57(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
Matrix_RotateY(gGfxMatrix, M_PI, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp);
@@ -20,5 +20,5 @@ void Scenery49_Draw(Scenery* scenery) {
RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
}
-void Actor289_Draw(Actor* actor) {
+void AndJamesTrigger_Draw(Actor* actor) {
}
diff --git a/src/engine/fox_edata_info.c b/src/engine/fox_edata_info.c
index 241d4b4e..44484112 100644
--- a/src/engine/fox_edata_info.c
+++ b/src/engine/fox_edata_info.c
@@ -22,7 +22,7 @@
#include "assets/ast_area_6.h"
#include "assets/ast_zoness.h"
-f32 gActor241Hitbox[] = {
+f32 gZoEnergyBallHitbox[] = {
1.0f, 0.0f, 50.0f, 0.0f, 25.0f, 0.0f, 25.0f,
};
f32 gCubeHitbox100[] = {
@@ -65,10 +65,10 @@ f32 gItemLasersHitbox[] = {
f32 gItemBombHitbox[] = {
1.0f, 0.0f, 120.0f, 0.0f, 120.0f, 0.0f, 120.0f,
};
-f32 gActor190_191Hitbox[] = {
+f32 gActorMissileSeekHitbox[] = {
1.0f, 0.0f, 40.0f, 0.0f, 40.0f, 0.0f, 40.0f,
};
-f32 gActor194Hitbox[] = {
+f32 gMeMoraHitbox[] = {
1.0f, 0.0f, 50.0f, 0.0f, 50.0f, 0.0f, 50.0f,
};
f32 gTeamHitbox[] = {
@@ -93,167 +93,167 @@ f32 gWarpZoneEvent93Hitbox[] = {
// clang-format off
ObjectInfo gObjectInfo[] = {
- /* OBJ_SCENERY_CO_STONE_ARCH, */ {(void*) aCoStoneArchDL, 0, (ObjectFunc) NULL, aCoStoneArchHitbox, 800.0f, 0, 0, 39, 0, 0.0f, 0 },
- /* OBJ_SCENERY_CO_BUMP_1, */ {(void*) aCoBump1DL, 0, (ObjectFunc) NULL, gNoHitbox, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_CO_BUMP_2, */ {(void*) aCoBump2DL, 0, (ObjectFunc) NULL, gNoHitbox, 3000.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_CO_BUMP_3, */ {(void*) aCoBump3DL, 0, (ObjectFunc) NULL, gNoHitbox, 3000.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_CO_BUMP_4, */ {(void*) aCoBump4DL, 0, (ObjectFunc) NULL, gNoHitbox, 3000.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_CO_BUMP_5, */ {(void*) aCoBump5DL, 0, (ObjectFunc) NULL, gNoHitbox, 3000.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_CO_HIGHWAY_1, */ {(void*) aCoHighway1DL, 0, (ObjectFunc) NULL, aCoHighway1Hitbox, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_CO_HIGHWAY_2, */ {(void*) aCoHighway2DL, 0, (ObjectFunc) NULL, aCoHighway2Hitbox, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_CO_HIGHWAY_3, */ {(void*) aCoHighway3DL, 0, (ObjectFunc) NULL, gNoHitbox, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_CO_HIGHWAY_4, */ {(void*) aCoHighway4DL, 0, (ObjectFunc) NULL, gNoHitbox, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_CO_BUILDING_1, */ {(void*) aCoBuilding1DL, 0, (ObjectFunc) NULL, aCoBuilding1Hitbox, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
- /* OBJ_SCENERY_CO_BUILDING_2, */ {(void*) aCoBuilding2DL, 0, (ObjectFunc) NULL, aCoBuilding2Hitbox, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
- /* OBJ_SCENERY_CO_BUILDING_3, */ {(void*) aCoBuilding3DL, 0, (ObjectFunc) NULL, aCoBuilding3Hitbox, 500.0f, 0, 0, 39, 0, 0.0f, 0 },
- /* OBJ_SCENERY_CO_BUILDING_4, */ {(void*) aCoBuilding4DL, 0, (ObjectFunc) NULL, aCoBuilding4Hitbox, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
- /* OBJ_SCENERY_CO_BUILDING_5, */ {(void*) aCoBuilding5DL, 0, (ObjectFunc) SceneryRotateTowardsCamera, aCoBuilding5Hitbox, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
- /* OBJ_SCENERY_CO_BUILDING_6, */ {(void*) aCoBuilding6DL, 0, (ObjectFunc) SceneryRotateTowardsCamera, aCoBuilding6Hitbox, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
- /* OBJ_SCENERY_CO_BUILDING_7, */ {(void*) aCoBuilding7DL, 0, (ObjectFunc) SceneryRotateTowardsCamera, aCoBuilding7Hitbox, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
- /* OBJ_SCENERY_CO_BUILDING_8, */ {(void*) aCoBuilding8DL, 0, (ObjectFunc) SceneryRotateTowardsCamera, aCoBuilding8Hitbox, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
- /* OBJ_SCENERY_CO_BUILDING_ON_FIRE, */ {(void*) Corneria_BuildingOnFire_Draw, 1, (ObjectFunc) Corneria_BuildingOnFire_Update, aCoBuildingOnFireHitbox, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_CO_STONE_ARCH */ {(void*) aCoStoneArchDL, 0, (ObjectFunc) NULL, aCoStoneArchHitbox, 800.0f, 0, 0, 39, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_CO_BUMP_1 */ {(void*) aCoBump1DL, 0, (ObjectFunc) NULL, gNoHitbox, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_CO_BUMP_2 */ {(void*) aCoBump2DL, 0, (ObjectFunc) NULL, gNoHitbox, 3000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_CO_BUMP_3 */ {(void*) aCoBump3DL, 0, (ObjectFunc) NULL, gNoHitbox, 3000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_CO_BUMP_4 */ {(void*) aCoBump4DL, 0, (ObjectFunc) NULL, gNoHitbox, 3000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_CO_BUMP_5 */ {(void*) aCoBump5DL, 0, (ObjectFunc) NULL, gNoHitbox, 3000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_CO_HIGHWAY_1 */ {(void*) aCoHighway1DL, 0, (ObjectFunc) NULL, aCoHighway1Hitbox, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_CO_HIGHWAY_2 */ {(void*) aCoHighway2DL, 0, (ObjectFunc) NULL, aCoHighway2Hitbox, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_CO_HIGHWAY_3 */ {(void*) aCoHighway3DL, 0, (ObjectFunc) NULL, gNoHitbox, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_CO_HIGHWAY_4 */ {(void*) aCoHighway4DL, 0, (ObjectFunc) NULL, gNoHitbox, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_CO_BUILDING_1 */ {(void*) aCoBuilding1DL, 0, (ObjectFunc) NULL, aCoBuilding1Hitbox, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_CO_BUILDING_2 */ {(void*) aCoBuilding2DL, 0, (ObjectFunc) NULL, aCoBuilding2Hitbox, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_CO_BUILDING_3 */ {(void*) aCoBuilding3DL, 0, (ObjectFunc) NULL, aCoBuilding3Hitbox, 500.0f, 0, 0, 39, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_CO_BUILDING_4 */ {(void*) aCoBuilding4DL, 0, (ObjectFunc) NULL, aCoBuilding4Hitbox, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_CO_BUILDING_5 */ {(void*) aCoBuilding5DL, 0, (ObjectFunc) SceneryRotateTowardsCamera, aCoBuilding5Hitbox, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_CO_BUILDING_6 */ {(void*) aCoBuilding6DL, 0, (ObjectFunc) SceneryRotateTowardsCamera, aCoBuilding6Hitbox, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_CO_BUILDING_7 */ {(void*) aCoBuilding7DL, 0, (ObjectFunc) SceneryRotateTowardsCamera, aCoBuilding7Hitbox, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_CO_BUILDING_8 */ {(void*) aCoBuilding8DL, 0, (ObjectFunc) SceneryRotateTowardsCamera, aCoBuilding8Hitbox, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_CO_BUILDING_ON_FIRE, */ {(void*) Corneria_CoBuildingOnFire_Draw, 1, (ObjectFunc) Corneria_CoBuildingOnFire_Update, aCoBuildingOnFireHitbox, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_TOWER, */ {(void*) aCoTowerDL, 0, (ObjectFunc) NULL, aCoTowerHitbox, 100.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_ARCH_1, */ {(void*) aCoArch1DL, 0, (ObjectFunc) NULL, aCoArch1Hitbox, 500.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_ARCH_2, */ {(void*) aCoArch2DL, 0, (ObjectFunc) NULL, aCoArch2Hitbox, 400.0f, 0, 0, 39, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_ARCH_3, */ {(void*) aCoArch3DL, 0, (ObjectFunc) NULL, aCoArch3Hitbox, 400.0f, 0, 0, 39, 0, 0.0f, 0 },
- /* OBJ_SCENERY_CO_RADAR, */ {(void*) aRadarDL, 0, (ObjectFunc) NULL, aCoRadarHitbox, 200.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_CO_RADAR_DISH, */ {(void*) aRadarDL, 0, (ObjectFunc) NULL, aCoRadarHitbox, 200.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_HIGHWAY_5, */ {(void*) aCoHighway5DL, 0, (ObjectFunc) NULL, aCoHighway5Hitbox, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_HIGHWAY_6, */ {(void*) aCoHighway6DL, 0, (ObjectFunc) NULL, aCoHighway6Hitbox, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_HIGHWAY_7, */ {(void*) aCoHighway7DL, 0, (ObjectFunc) NULL, aCoHighway7Hitbox, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_HIGHWAY_8, */ {(void*) aCoHighway8DL, 0, (ObjectFunc) NULL, aCoHighway8Hitbox, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_HIGHWAY_9, */ {(void*) aCoHighway9DL, 0, (ObjectFunc) NULL, aCoHighway9Hitbox, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_TI_SKULL, */ {(void*) Scenery_DrawTitaniaBones, 1, (ObjectFunc) Scenery_UpdateTitaniaBones, aTiSkullHitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_TI_RIB_0, */ {(void*) Scenery_DrawTitaniaBones, 1, (ObjectFunc) Scenery_UpdateTitaniaBones, aTiRib0Hitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_TI_RIB_1, */ {(void*) Scenery_DrawTitaniaBones, 1, (ObjectFunc) Scenery_UpdateTitaniaBones, aTiRib1Hitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_TI_RIB_2, */ {(void*) Scenery_DrawTitaniaBones, 1, (ObjectFunc) Scenery_UpdateTitaniaBones, aTiRib2Hitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_TI_RIB_3, */ {(void*) Scenery_DrawTitaniaBones, 1, (ObjectFunc) Scenery_UpdateTitaniaBones, aTiRib3Hitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_TI_RIB_4, */ {(void*) Scenery_DrawTitaniaBones, 1, (ObjectFunc) Scenery_UpdateTitaniaBones, aTiRib4Hitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_TI_RIB_5, */ {(void*) Scenery_DrawTitaniaBones, 1, (ObjectFunc) Scenery_UpdateTitaniaBones, aTiRib5Hitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_TI_RIB_6, */ {(void*) Scenery_DrawTitaniaBones, 1, (ObjectFunc) Scenery_UpdateTitaniaBones, aTiRib6Hitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_TI_RIB_7, */ {(void*) Scenery_DrawTitaniaBones, 1, (ObjectFunc) Scenery_UpdateTitaniaBones, aTiRib7Hitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_TI_RIB_8, */ {(void*) Scenery_DrawTitaniaBones, 1, (ObjectFunc) Scenery_UpdateTitaniaBones, aTiRib8Hitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_TI_SKULL, */ {(void*) Scenery_DrawTitaniaBones, 1, (ObjectFunc) Scenery_UpdateTitaniaBones, aTiSkullHitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_TI_RIB_0, */ {(void*) Scenery_DrawTitaniaBones, 1, (ObjectFunc) Scenery_UpdateTitaniaBones, aTiRib0Hitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_TI_RIB_1, */ {(void*) Scenery_DrawTitaniaBones, 1, (ObjectFunc) Scenery_UpdateTitaniaBones, aTiRib1Hitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_TI_RIB_2, */ {(void*) Scenery_DrawTitaniaBones, 1, (ObjectFunc) Scenery_UpdateTitaniaBones, aTiRib2Hitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_TI_RIB_3, */ {(void*) Scenery_DrawTitaniaBones, 1, (ObjectFunc) Scenery_UpdateTitaniaBones, aTiRib3Hitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_TI_RIB_4, */ {(void*) Scenery_DrawTitaniaBones, 1, (ObjectFunc) Scenery_UpdateTitaniaBones, aTiRib4Hitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_TI_RIB_5, */ {(void*) Scenery_DrawTitaniaBones, 1, (ObjectFunc) Scenery_UpdateTitaniaBones, aTiRib5Hitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_TI_RIB_6, */ {(void*) Scenery_DrawTitaniaBones, 1, (ObjectFunc) Scenery_UpdateTitaniaBones, aTiRib6Hitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_TI_RIB_7, */ {(void*) Scenery_DrawTitaniaBones, 1, (ObjectFunc) Scenery_UpdateTitaniaBones, aTiRib7Hitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_TI_RIB_8, */ {(void*) Scenery_DrawTitaniaBones, 1, (ObjectFunc) Scenery_UpdateTitaniaBones, aTiRib8Hitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_ME_TUNNEL, */ {(void*) MeteoTunnel_Draw, 1, (ObjectFunc) MeteoTunnel_Update, gNoHitbox, 6000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_BUILDING_9, */ {(void*) CoBuilding9_Draw, 1, (ObjectFunc) CoBuilding9_Update, aCoBuilding9Hitbox, 1000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_BUILDING_10, */ {(void*) CoBuilding10_Draw, 1, (ObjectFunc) SceneryRotateTowardsCamera, aCoBuilding10Hitbox, 300.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_IBEAM, */ {(void*) CoIBeam_Draw, 1, (ObjectFunc) CoIBeam_Update, aCoIBeamHitbox, 1000.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_ZO_ROCK_1, */ {(void*) aZoRock1DL, 0, (ObjectFunc) NULL, aZoRock1Hitbox, 200.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_44, */ {(void*) D_ZO_600F560, 0, (ObjectFunc) NULL, D_ZO_602BA20, 1500.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_45, */ {(void*) D_ZO_600EC90, 0, (ObjectFunc) NULL, D_ZO_602BAE4, 1500.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_46, */ {(void*) D_ZO_600E820, 0, (ObjectFunc) NULL, D_ZO_602BBD8, 1500.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_47, */ {(void*) D_ZO_601FCB0, 0, (ObjectFunc) NULL, D_ZO_602BC54, 500.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_48, */ {(void*) Scenery48_Draw, 1, (ObjectFunc) NULL, D_VE1_601B4E0, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_49, */ {(void*) Scenery49_Draw, 1, (ObjectFunc) NULL, D_VE1_601B4FC, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_50, */ {(void*) D_VE1_6007410, 0, (ObjectFunc) NULL, D_VE1_601B518, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_51, */ {(void*) D_VE1_6006F50, 0, (ObjectFunc) NULL, D_VE1_601B584, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_52, */ {(void*) D_VE1_6005780, 0, (ObjectFunc) Venom1_Scenery52_Update, D_VE1_601B5F4, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_53, */ {(void*) D_VE1_6003610, 0, (ObjectFunc) NULL, D_VE1_601B644, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_ZO_ROCK, */ {(void*) aZoRockDL, 0, (ObjectFunc) NULL, aZoRockHitbox, 200.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_ZO_OIL_RIG_1, */ {(void*) aZoOilRig1DL, 0, (ObjectFunc) NULL, aZoOilRig1Hitbox, 1500.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_ZO_OIL_RIG_2, */ {(void*) aZoOilRig2DL, 0, (ObjectFunc) NULL, aZoOilRig2Hitbox, 1500.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_ZO_OIL_RIG_3, */ {(void*) aZoOilRig3DL, 0, (ObjectFunc) NULL, aZoOilRig3Hitbox, 1500.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_ZO_ISLAND, */ {(void*) aZoIslandDL, 0, (ObjectFunc) NULL, aZoIslandHitbox, 500.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_VE1_WALL_1, */ {(void*) Ve1SceneryWall1_Draw, 1, (ObjectFunc) NULL, aVe1SceneryWall1Hitbox, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_VE1_WALL_2, */ {(void*) Ve1SceneryWall2_Draw, 1, (ObjectFunc) NULL, aVe1SceneryWall2Hitbox, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_VE1_WALL_3, */ {(void*) aVe1SceneryWall3DL, 0, (ObjectFunc) NULL, aVe1SceneryWall3Hitbox, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_VE1_HALLWAY_OBSTACLE, */ {(void*) aVe1HallwayObstacleDL, 0, (ObjectFunc) NULL, aVe1HallwayObstacleHitbox, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_VE1_GENERATOR, */ {(void*) aVe1GeneratorDL, 0, (ObjectFunc) Venom1_Ve1Generator_Update, aVe1GeneratorHitbox, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_VE1_WATCH_POST, */ {(void*) aVe1WatchPostDL, 0, (ObjectFunc) NULL, aVe1WatchPostHitbox, 2500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_WATERFALL, */ {(void*) aCoWaterfallDL, 0, (ObjectFunc) CoWaterfall_Update, aCoWaterfallHitbox, 1000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_CO_ROCKWALL, */ {(void*) aCoRockwallDL, 0, (ObjectFunc) NULL, aCoRockwallHitbox, 1000.0f, 0, 0, 41, 0, 0.0f, 0 },
- /* OBJ_SCENERY_CO_DOORS, */ {(void*) Corneria_Doors_Draw, 2, (ObjectFunc) Corneria_Doors_Update, aCoDoorsHitbox, 1000.0f, 0, 0, 39, 0, 0.0f, 0 },
- /* OBJ_SCENERY_57, */ {(void*) Titania_Scenery57_Draw, 1, (ObjectFunc) Titania_Scenery57_Update, D_TI_6006BF0, 800.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_58, */ {(void*) D_TI1_700BE00, 0, (ObjectFunc) NULL, D_TI_6006C44, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_59, */ {(void*) D_MA_6024010, 0, (ObjectFunc) NULL, D_MA_603626C, 300.0f, 0, 0, 5, 0, 0.0f, 0 },
- /* OBJ_SCENERY_60, */ {(void*) D_MA_6027180, 0, (ObjectFunc) NULL, D_MA_6036288, 400.0f, 0, 0, 5, 0, 0.0f, 0 },
- /* OBJ_SCENERY_61, */ {(void*) Macbeth_Scenery61_Draw, 1, (ObjectFunc) NULL, D_MA_60362A4, 200.0f, 0, 0, 5, 0, 0.0f, 0 },
- /* OBJ_SCENERY_62, */ {(void*) D_MA_60270E0, 0, (ObjectFunc) NULL, gNoHitbox, 1500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_CO_DOORS, */ {(void*) Corneria_CoDoors_Draw, 2, (ObjectFunc) Corneria_CoDoors_Update, aCoDoorsHitbox, 1000.0f, 0, 0, 39, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_TI_PILLAR, */ {(void*) Titania_TiPillar_Draw, 1, (ObjectFunc) Titania_TiPillar_Update, aTiPillarHitbox, 800.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_TI_BRIDGE, */ {(void*) aTiBridgeDL, 0, (ObjectFunc) NULL, aTiBridgeHitbox, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_BUILDING_1, */ {(void*) aMaBuilding1DL, 0, (ObjectFunc) NULL, aMaBuilding1Hitbox, 300.0f, 0, 0, 5, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_BUILDING_2, */ {(void*) aMaBuilding2DL, 0, (ObjectFunc) NULL, aMaBuilding2Hitbox, 400.0f, 0, 0, 5, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_TOWER, */ {(void*) Macbeth_MaTower_Draw, 1, (ObjectFunc) NULL, aMaTowerHitbox, 200.0f, 0, 0, 5, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_WALL_1, */ {(void*) aMaWall1DL, 0, (ObjectFunc) NULL, gNoHitbox, 1500.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SCENERY_63, */ {(void*) D_MA_6013960, 0, (ObjectFunc) NULL, D_MA_6036894, 500.0f, 0, 0, 5, 0, 0.0f, 0 },
- /* OBJ_SCENERY_64, */ {(void*) D_MA_600AF40, 0, (ObjectFunc) NULL, D_MA_60368E0, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_65, */ {(void*) Macbeth_Scenery65_Draw, 1, (ObjectFunc) NULL, D_MA_6036724, 400.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SCENERY_66, */ {(void*) D_MA_601F1D0, 0, (ObjectFunc) NULL, D_MA_60362D8, 2500.0f, 0, 0, 5, 0, 0.0f, 0 },
- /* OBJ_SCENERY_67, */ {(void*) D_MA_60238F0, 0, (ObjectFunc) NULL, D_MA_6036328, 2000.0f, 0, 0, 5, 0, 0.0f, 0 },
- /* OBJ_SCENERY_68, */ {(void*) D_MA_601B7C0, 0, (ObjectFunc) NULL, D_MA_60362F4, 2500.0f, 0, 0, 5, 0, 0.0f, 0 },
- /* OBJ_SCENERY_69, */ {(void*) D_MA_6030500, 0, (ObjectFunc) NULL, D_MA_6036370, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SCENERY_70, */ {(void*) D_MA_602DAE0, 0, (ObjectFunc) NULL, D_MA_603638C, 1900.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SCENERY_71, */ {(void*) D_MA_6027900, 0, (ObjectFunc) NULL, D_MA_60363B8, 1900.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SCENERY_72, */ {(void*) D_MA_602DB80, 0, (ObjectFunc) NULL, D_MA_60363E4, 1100.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SCENERY_73, */ {(void*) D_MA_6030630, 0, (ObjectFunc) NULL, D_MA_6036410, 1100.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SCENERY_74, */ {(void*) D_MA_602DC20, 0, (ObjectFunc) NULL, D_MA_603643C, 1000.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SCENERY_75, */ {(void*) D_MA_601B0D0, 0, (ObjectFunc) NULL, D_MA_6036760, 3000.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SCENERY_76, */ {(void*) D_MA_60075D0, 0, (ObjectFunc) NULL, gNoHitbox, 1000.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SCENERY_77, */ {(void*) Macbeth_SceneryDoodad2_Draw, 1, (ObjectFunc) NULL, D_MA_6036344, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SCENERY_78, */ {(void*) Macbeth_SceneryDoodad2_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SCENERY_79, */ {(void*) Macbeth_SceneryDoodad2_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SCENERY_80, */ {(void*) Macbeth_SceneryDoodad2_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SCENERY_81, */ {(void*) Macbeth_SceneryDoodad2_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SCENERY_82, */ {(void*) Macbeth_SceneryDoodad2_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SCENERY_83, */ {(void*) Macbeth_Scenery83_Draw, 1, (ObjectFunc) Macbeth_Scenery83_Update, gNoHitbox, 15000.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SCENERY_84, */ {(void*) Macbeth_SceneryDoodad2_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SCENERY_85, */ {(void*) Macbeth_SceneryDoodad2_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SCENERY_86, */ {(void*) Macbeth_SceneryDoodad2_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SCENERY_87, */ {(void*) Macbeth_SceneryDoodad2_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SCENERY_88, */ {(void*) Macbeth_SceneryDoodad2_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SCENERY_89, */ {(void*) Macbeth_SceneryDoodad2_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SCENERY_90, */ {(void*) Macbeth_SceneryDoodad2_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SCENERY_91, */ {(void*) Macbeth_SceneryDoodad2_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SCENERY_92, */ {(void*) Macbeth_SceneryDoodad_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SCENERY_93, */ {(void*) Macbeth_SceneryDoodad_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SCENERY_94, */ {(void*) Macbeth_SceneryDoodad_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 15000.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SCENERY_95, */ {(void*) Macbeth_SceneryDoodad_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 15000.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SCENERY_96, */ {(void*) Macbeth_SceneryDoodad_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SCENERY_97, */ {(void*) Macbeth_SceneryDoodad_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 15000.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SCENERY_98, */ {(void*) Macbeth_SceneryDoodad_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 15000.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SCENERY_99, */ {(void*) Macbeth_SceneryDoodad_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SCENERY_100 */ {(void*) Macbeth_SceneryDoodad_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SCENERY_101 */ {(void*) Macbeth_SceneryDoodad_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SCENERY_102 */ {(void*) Macbeth_SceneryDoodad_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SCENERY_103 */ {(void*) Macbeth_SceneryDoodad_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SCENERY_104 */ {(void*) Macbeth_SceneryDoodad_Draw, 1, (ObjectFunc) Macbeth_Scenery104_Update, D_MA_6036594, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SCENERY_105 */ {(void*) Macbeth_SceneryDoodad_Draw, 1, (ObjectFunc) NULL, D_MA_6036204, 1300.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SCENERY_106 */ {(void*) D_SY_60097E0, 0, (ObjectFunc) NULL, D_SY_6034478, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
- /* OBJ_SCENERY_107 */ {(void*) D_SY_601D730, 0, (ObjectFunc) NULL, D_SY_603450C, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
- /* OBJ_SCENERY_108 */ {(void*) D_SY_60102C0, 0, (ObjectFunc) NULL, D_SY_6034588, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
- /* OBJ_SCENERY_109 */ {(void*) D_SY_60036A0, 0, (ObjectFunc) SectorY_Scenery109_Update, D_SY_6034664, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
- /* OBJ_SCENERY_110 */ {(void*) D_SY_6005360, 0, (ObjectFunc) NULL, D_SY_6034770, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
- /* OBJ_SCENERY_111 */ {(void*) Scenery111_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 2000.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SCENERY_112 */ {(void*) D_SY_600F6C0, 0, (ObjectFunc) SectorY_Scenery112_Update, D_SY_60347F0, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
- /* OBJ_SCENERY_113 */ {(void*) D_SY_601B610, 0, (ObjectFunc) NULL, gNoHitbox, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_114 */ {(void*) D_SY_601C6A0, 0, (ObjectFunc) NULL, gNoHitbox, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_115 */ {(void*) D_SY_60188D0, 0, (ObjectFunc) NULL, D_SY_603486C, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_116 */ {(void*) D_SY_60034D0, 0, (ObjectFunc) NULL, D_SY_60347D4, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_117 */ {(void*) D_AQ_60231C0, 0, (ObjectFunc) NULL, D_AQ_6030C60, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_118 */ {(void*) D_AQ_6011EE0, 0, (ObjectFunc) NULL, D_AQ_6030C7C, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
- /* OBJ_SCENERY_119 */ {(void*) D_AQ_6015730, 0, (ObjectFunc) NULL, D_AQ_6030D74, 2000.0f, 0, 0, 39, 0, 0.0f, 0 },
- /* OBJ_SCENERY_120 */ {(void*) D_AQ_601DE60, 0, (ObjectFunc) NULL, D_AQ_6030DF8, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_121 */ {(void*) D_AQ_602B4C0, 0, (ObjectFunc) NULL, D_AQ_6030E14, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_122 */ {(void*) D_AQ_600EE10, 0, (ObjectFunc) NULL, D_AQ_6030E30_Hitbox, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
- /* OBJ_SCENERY_123 */ {(void*) D_AQ_60120F0, 0, (ObjectFunc) NULL, D_AQ_6030E4C, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
- /* OBJ_SCENERY_124 */ {(void*) D_AQ_600EEF0, 0, (ObjectFunc) NULL, gNoHitbox, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
- /* OBJ_SCENERY_125 */ {(void*) D_AQ_600BF80, 0, (ObjectFunc) NULL, D_AQ_6030E68, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
- /* OBJ_SCENERY_126 */ {(void*) Aquas_Scenery126_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
- /* OBJ_SCENERY_127 */ {(void*) D_VE1_9005C80, 0, (ObjectFunc) Venom1_Scenery127_Update, D_VE1_601B678, 1000.0f, 0, 0, 42, 0, 0.0f, 0 },
- /* OBJ_SCENERY_128 */ {(void*) D_VE1_9003F50, 0, (ObjectFunc) NULL, D_VE1_601B6C4, 3200.0f, 0, 0, 42, 0, 0.0f, 0 },
- /* OBJ_SCENERY_129 */ {(void*) D_VE1_900F060, 0, (ObjectFunc) NULL, D_VE1_601B710, 3200.0f, 0, 0, 42, 0, 0.0f, 0 },
- /* OBJ_SCENERY_130 */ {(void*) D_VE1_900F1D0, 0, (ObjectFunc) NULL, D_VE1_601B75C, 3200.0f, 0, 0, 42, 0, 0.0f, 0 },
- /* OBJ_SCENERY_131 */ {(void*) Andross_Scenery131_Draw, 1, (ObjectFunc) Andross_Scenery131_Update, D_ANDROSS_C038BD8, 500.0f, 0, 0, 41, 0, 0.0f, 0 },
- /* OBJ_SCENERY_132 */ {(void*) Andross_Scenery132_Draw, 1, (ObjectFunc) Andross_Scenery132_Update, D_ANDROSS_C038A48, 500.0f, 0, 0, 41, 0, 0.0f, 0 },
- /* OBJ_SCENERY_133 */ {(void*) D_TR_60030F0, 0, (ObjectFunc) NULL, D_TR_6009CC4, 1000.0f, 0, 0, 20, 0, 0.0f, 0 },
- /* OBJ_SCENERY_134 */ {(void*) D_VE2_6003000, 0, (ObjectFunc) NULL, D_ANDROSS_C038BA4, 0.0f, 0, 0, 41, 1, 0.0f, 0 },
- /* OBJ_SCENERY_135 */ {(void*) D_VE2_6006890, 0, (ObjectFunc) NULL, D_ANDROSS_C038B40, 0.0f, 0, 0, 41, 1, 0.0f, 0 },
- /* OBJ_SCENERY_136 */ {(void*) D_VE2_6002990, 0, (ObjectFunc) NULL, D_ANDROSS_C038B40, 0.0f, 0, 0, 41, 1, 0.0f, 0 },
- /* OBJ_SCENERY_137 */ {(void*) D_VE2_6004170, 0, (ObjectFunc) NULL, gNoHitbox, 0.0f, 0, 0, 0, 1, 0.0f, 0 },
- /* OBJ_SCENERY_138 */ {(void*) D_versus_3017600, 0, (ObjectFunc) NULL, D_versus_302EE64, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_139 */ {(void*) D_versus_3017600, 0, (ObjectFunc) NULL, D_versus_302EE80, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_140 */ {(void*) D_versus_30173C0, 0, (ObjectFunc) NULL, gNoHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_141 */ {(void*) D_versus_30174E0, 0, (ObjectFunc) NULL, gNoHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_142 */ {(void*) D_versus_301B080, 0, (ObjectFunc) NULL, D_versus_302EE9C, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_143 */ {(void*) D_versus_3016B00, 0, (ObjectFunc) NULL, D_versus_302EE00, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_144 */ {(void*) D_versus_3013780, 0, (ObjectFunc) NULL, D_versus_302ED4C, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_145 */ {(void*) D_versus_3013580, 0, (ObjectFunc) NULL, D_versus_302ED98, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_146 */ {(void*) D_versus_3012ED0, 0, (ObjectFunc) NULL, D_versus_302EDB4, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_GUILLOTINE, */ {(void*) aMaGuillotineDL, 0, (ObjectFunc) NULL, aMaGuillotineHitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_PROXIMITY_LIGHT, */ {(void*) Macbeth_MaProximityLight_Draw, 1, (ObjectFunc) NULL, aMaProximityLightHitbox, 400.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_WALL_2, */ {(void*) aMaWall2DL, 0, (ObjectFunc) NULL, aMaWall2Hitbox, 2500.0f, 0, 0, 5, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_WALL_3, */ {(void*) aMaWall3DL, 0, (ObjectFunc) NULL, aMaWall3Hitbox, 2000.0f, 0, 0, 5, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_WALL_4, */ {(void*) aMaWall4DL, 0, (ObjectFunc) NULL, aMaWall4Hitbox, 2500.0f, 0, 0, 5, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_TERRAIN_BUMP, */ {(void*) aMaTerrainBumpDL, 0, (ObjectFunc) NULL, aMaTerrainBumpHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_FLOOR_1, */ {(void*) aMaFloor1DL, 0, (ObjectFunc) NULL, aMaFloor1Hitbox, 1900.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_FLOOR_2, */ {(void*) aMaFloor2DL, 0, (ObjectFunc) NULL, aMaFloor2Hitbox, 1900.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_FLOOR_3, */ {(void*) aMaFloor3DL, 0, (ObjectFunc) NULL, aMaFloor3Hitbox, 1100.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_FLOOR_4, */ {(void*) aMaFloor4DL, 0, (ObjectFunc) NULL, aMaFloor4Hitbox, 1100.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_FLOOR_5, */ {(void*) aMaFloor5DL, 0, (ObjectFunc) NULL, aMaFloor5Hitbox, 1000.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_FLOOR_6, */ {(void*) aMaFloor6DL, 0, (ObjectFunc) NULL, aMaFloor6Hitbox, 3000.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_WEAPONS_FACTORY, */ {(void*) aMaWeaponsFactoryDL, 0, (ObjectFunc) NULL, gNoHitbox, 1000.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_INDICATOR_SIGN, */ {(void*) Macbeth_IndicatorSign_Draw, 1, (ObjectFunc) NULL, aMaIndicatorSignHitbox, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_DISTANCE_SIGN_1, */ {(void*) Macbeth_IndicatorSign_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_DISTANCE_SIGN_2, */ {(void*) Macbeth_IndicatorSign_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_DISTANCE_SIGN_3, */ {(void*) Macbeth_IndicatorSign_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_DISTANCE_SIGN_4, */ {(void*) Macbeth_IndicatorSign_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_DISTANCE_SIGN_5, */ {(void*) Macbeth_IndicatorSign_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_TRAIN_STOP_BLOCK, */ {(void*) Macbeth_MaTrainStopBlock_Draw, 1, (ObjectFunc) Macbeth_MaTrainStopBlock_Update, gNoHitbox, 15000.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_RAILROAD_SWITCH_1, */ {(void*) Macbeth_IndicatorSign_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_RAILROAD_SWITCH_2, */ {(void*) Macbeth_IndicatorSign_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_RAILROAD_SWITCH_3, */ {(void*) Macbeth_IndicatorSign_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_RAILROAD_SWITCH_4, */ {(void*) Macbeth_IndicatorSign_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_RAILROAD_SWITCH_5, */ {(void*) Macbeth_IndicatorSign_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_RAILROAD_SWITCH_6, */ {(void*) Macbeth_IndicatorSign_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_RAILROAD_SWITCH_7, */ {(void*) Macbeth_IndicatorSign_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_RAILROAD_SWITCH_8, */ {(void*) Macbeth_IndicatorSign_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_TRAIN_TRACK_1, */ {(void*) Macbeth_TrainTrack_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_TRAIN_TRACK_2, */ {(void*) Macbeth_TrainTrack_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_TRAIN_TRACK_3, */ {(void*) Macbeth_TrainTrack_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 15000.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_TRAIN_TRACK_4, */ {(void*) Macbeth_TrainTrack_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 15000.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_TRAIN_TRACK_5, */ {(void*) Macbeth_TrainTrack_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_TRAIN_TRACK_6, */ {(void*) Macbeth_TrainTrack_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 15000.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_TRAIN_TRACK_7, */ {(void*) Macbeth_TrainTrack_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 15000.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_TRAIN_TRACK_8, */ {(void*) Macbeth_TrainTrack_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_TRAIN_TRACK_9 */ {(void*) Macbeth_TrainTrack_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_TRAIN_TRACK_10 */ {(void*) Macbeth_TrainTrack_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_TRAIN_TRACK_11 */ {(void*) Macbeth_TrainTrack_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_TRAIN_TRACK_12 */ {(void*) Macbeth_TrainTrack_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_SWITCH_TRACK */ {(void*) Macbeth_TrainTrack_Draw, 1, (ObjectFunc) Macbeth_MaSwitchTrack_Update, aMaSwitchTrackHitbox, 2500.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_MA_TRAIN_TRACK_13 */ {(void*) Macbeth_TrainTrack_Draw, 1, (ObjectFunc) NULL, aMaTrainTrack13Hitbox, 1300.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_SY_SHIP_1 */ {(void*) aSyShip1DL, 0, (ObjectFunc) NULL, aSyShip1Hitbox, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_SY_SHIP_2 */ {(void*) aSyShip2DL, 0, (ObjectFunc) NULL, aSyShip2Hitbox, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_SY_SHIP_3 */ {(void*) aSyShip3DL, 0, (ObjectFunc) NULL, aSyShip3Hitbox, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_SY_SHIP_3_DESTROYED */ {(void*) aSyShip3DestroyedDL, 0, (ObjectFunc) SectorY_SyShip3Destroyed_Update, aSyShip3DestroyedHitbox, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_SY_SHIP_4 */ {(void*) aSyShip4DL, 0, (ObjectFunc) NULL, aSyShip4Hitbox, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_SY_SHIP_DEBRIS */ {(void*) Scenery111_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 2000.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_SY_SHIP_2_DESTROYED */ {(void*) aSyShip4DestroyedDL, 0, (ObjectFunc) SectorY_SyShip4Destroyed_Update, aSyShip4DestroyedHitbox, 4000.0f, 0, 0, 41, 0, 0.0f, 0 },
+ /* OBJ_SPRITE_SY_SHIP_2 */ {(void*) aSyShip2SpriteDL, 0, (ObjectFunc) NULL, gNoHitbox, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SPRITE_SY_SHIP_3 */ {(void*) aSyShip3SpriteDL, 0, (ObjectFunc) NULL, gNoHitbox, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_SY_SHIP_PROJECTILE */ {(void*) aSyShipProjectileDL, 0, (ObjectFunc) NULL, aSyShipProjectileHitbox, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_SY_SHIP_WINDOWS */ {(void*) aSyShipWindowsDL, 0, (ObjectFunc) NULL, aSyShipWindowsHitbox, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_AQ_CORAL_REEF_1 */ {(void*) aAqCoralReef1DL, 0, (ObjectFunc) NULL, aAqCoralReef1Hitbox, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_AQ_TUNNEL_1 */ {(void*) aAqTunnel1DL, 0, (ObjectFunc) NULL, aAqTunnel1Hitbox, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_AQ_ARCH */ {(void*) aAqArchDL, 0, (ObjectFunc) NULL, aAqArchHitbox, 2000.0f, 0, 0, 39, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_AQ_CORAL_REEF_2 */ {(void*) aAqCoralReef2DL, 0, (ObjectFunc) NULL, aAqCoralReef2Hitbox, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_AQ_ROCK */ {(void*) aAqRockDL, 0, (ObjectFunc) NULL, aAqRockHitbox, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_AQ_WALL_1 */ {(void*) aAqWall1DL, 0, (ObjectFunc) NULL, aAqWall1Hitbox, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_AQ_ROOF */ {(void*) aAqRoofDL, 0, (ObjectFunc) NULL, aAqRoofHitbox, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_AQ_BUMP_1 */ {(void*) aAqBump2DL, 0, (ObjectFunc) NULL, gNoHitbox, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_AQ_TUNNEL_2 */ {(void*) aAqTunnel2DL, 0, (ObjectFunc) NULL, aAqTunnel2Hitbox, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_AQ_BUMP_2 */ {(void*) Aquas_AqBump2_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 2000.0f, 0, 0, 41, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_VE1_TEMPLE_ENTRANCE */ {(void*) aVe1TempleEntranceDL, 0, (ObjectFunc) Venom1_Ve1TempleEntrance_Update, aVe1TempleEntranceHitbox, 1000.0f, 0, 0, 42, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_VE1_TEMPLE_INTERIOR_1 */ {(void*) aVe1TempleInterior1DL, 0, (ObjectFunc) NULL, aVe1TempleInterior1Hitbox, 3200.0f, 0, 0, 42, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_VE1_TEMPLE_INTERIOR_2 */ {(void*) aVe1TempleInterior2DL, 0, (ObjectFunc) NULL, aVe1TempleInterior2Hitbox, 3200.0f, 0, 0, 42, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_VE1_TEMPLE_INTERIOR_3 */ {(void*) aVe1TempleInterior3DL, 0, (ObjectFunc) NULL, aVe1TempleInterior3Hitbox, 3200.0f, 0, 0, 42, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_AND_PASSAGE */ {(void*) Andross_AndPassage_Draw, 1, (ObjectFunc) Andross_AndPassage_Update, aAndPassageHitbox, 500.0f, 0, 0, 41, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_AND_DOOR */ {(void*) Andross_AndDoor_Draw, 1, (ObjectFunc) Andross_AndDoor_Update, aAndDoorHitbox, 500.0f, 0, 0, 41, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_TR_BUILDING */ {(void*) aTrBuildingDL, 0, (ObjectFunc) NULL, aTrBuildingHitbox, 1000.0f, 0, 0, 20, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_AND_PATH_INTERSECTION */ {(void*) aAndPathIntersectionDL, 0, (ObjectFunc) NULL, aAndPathIntersectionHitbox, 0.0f, 0, 0, 41, 1, 0.0f, 0 },
+ /* OBJ_SCENERY_AND_PATH_WALLS */ {(void*) aAndPathWallsDL, 0, (ObjectFunc) NULL, D_ANDROSS_C038B40, 0.0f, 0, 0, 41, 1, 0.0f, 0 },
+ /* OBJ_SCENERY_AND_PATH_EXIT */ {(void*) aAndPathExitDL, 0, (ObjectFunc) NULL, D_ANDROSS_C038B40, 0.0f, 0, 0, 41, 1, 0.0f, 0 },
+ /* OBJ_SCENERY_AND_PATH_ENTRANCE */ {(void*) aAndPathEntranceDL, 0, (ObjectFunc) NULL, gNoHitbox, 0.0f, 0, 0, 0, 1, 0.0f, 0 },
+ /* OBJ_SCENERY_VS_BUILDING_1 */ {(void*) aVsBuildingDL, 0, (ObjectFunc) NULL, aVsBuilding1Hibox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_VS_BUILDING_2 */ {(void*) aVsBuildingDL, 0, (ObjectFunc) NULL, aVsBuilding2Hibox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_VS_PYRAMID_1 */ {(void*) aVsPyramid1DL, 0, (ObjectFunc) NULL, gNoHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_VS_PYRAMID_2 */ {(void*) aVsPyramid2DL, 0, (ObjectFunc) NULL, gNoHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_VS_ARCH */ {(void*) aVsArchDL, 0, (ObjectFunc) NULL, aVsArchHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_VS_KA_FLBASE */ {(void*) aVsKaFlBaseDL, 0, (ObjectFunc) NULL, aVsKaFlBaseHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_VS_SPACE_JUNK_1 */ {(void*) aVsSpaceJunk1DL, 0, (ObjectFunc) NULL, aVsSpaceJunk1Hitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_VS_SPACE_JUNK_2 */ {(void*) aVsSpaceJunk2DL, 0, (ObjectFunc) NULL, aVsSpaceJunk2Hitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_VS_SPACE_JUNK_3 */ {(void*) aVsSpaceJunk3DL, 0, (ObjectFunc) NULL, aVsSpaceJunk3Hitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SCENERY_147 */ {(void*) NULL, 0, (ObjectFunc) NULL, gNoHitbox, 0.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SCENERY_148 */ {(void*) D_FO_60079B0, 0, (ObjectFunc) NULL, D_FO_600FF80, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_149 */ {(void*) D_FO_6007D80, 0, (ObjectFunc) NULL, D_FO_600FFA0, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_150 */ {(void*) D_FO_6006310, 0, (ObjectFunc) NULL, D_FO_600FFC0, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_151 */ {(void*) D_FO_60066E0, 0, (ObjectFunc) NULL, D_FO_600FEB8, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_152 */ {(void*) D_BO_600F4C0, 0, (ObjectFunc) NULL, D_BO_6011C10, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_153 */ {(void*) D_BO_600B8B0, 0, (ObjectFunc) NULL, D_BO_6011C48, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_154 */ {(void*) aKaFLBaseDL, 0, (ObjectFunc) NULL, D_KA_601115C, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_155 */ {(void*) NULL, 0, (ObjectFunc) NULL, gNoHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_156 */ {(void*) SectorY_Scenery156_Draw, 1, (ObjectFunc) NULL, D_SY_6034368, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_157 */ {(void*) aSzSpaceJunk3DL, 0, (ObjectFunc) NULL, D_SZ_600924C, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_158 */ {(void*) aSzSpaceJunk1DL, 0, (ObjectFunc) NULL, D_SZ_60092E8, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_159 */ {(void*) D_VE2_6008370, 0, (ObjectFunc) NULL, D_VE2_601668C, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_SCENERY_160 */ {(void*) D_VE2_6010960, 0, (ObjectFunc) NULL, D_VE2_6016714, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_FO_MOUNTAIN_1 */ {(void*) aFoMountain1DL, 0, (ObjectFunc) NULL, aFoMountain1Hitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_FO_MOUNTAIN_2 */ {(void*) aFoMountain2DL, 0, (ObjectFunc) NULL, aFoMountain2Hitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_FO_MOUNTAIN_3 */ {(void*) aFoMountain3DL, 0, (ObjectFunc) NULL, aFoMountain3Hitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_FO_TOWER */ {(void*) aFoTowerDL, 0, (ObjectFunc) NULL, aFoTowerHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_BO_POLE */ {(void*) aBoPoleDL, 0, (ObjectFunc) NULL, aBoPoleHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_BO_BUILDING */ {(void*) aBoBuildingDL, 0, (ObjectFunc) NULL, aBoBuildingHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_KA_FLBASE */ {(void*) aKaFLBaseDL, 0, (ObjectFunc) NULL, aKaFrontlineBaseHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_UNK_155 */ {(void*) NULL, 0, (ObjectFunc) NULL, gNoHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_UNK_156 */ {(void*) SectorY_Scenery156_Draw, 1, (ObjectFunc) NULL, aSyScenery156Hitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_SZ_SPACE_JUNK_3 */ {(void*) aSzSpaceJunk3DL, 0, (ObjectFunc) NULL, aSzSpaceJunk3Hitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_SZ_SPACE_JUNK_1 */ {(void*) aSzSpaceJunk1DL, 0, (ObjectFunc) NULL, aSzSpaceJunk1Hitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_VE2_TOWER */ {(void*) aVe2TowerDL, 0, (ObjectFunc) NULL, aVe2TowerHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_SCENERY_VE2_MOUNTAIN */ {(void*) aVe2MountainDL, 0, (ObjectFunc) NULL, aVe2MountainHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SPRITE_CO_POLE */ {(void*) aCoPoleDL, 0, (ObjectFunc) Sprite_UpdateDoodad, aCoPoleHitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SPRITE_CO_TREE */ {(void*) aCoTreeDL, 0, (ObjectFunc) Sprite_UpdateDoodad, aCoTreeHitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SPRITE_FO_POLE */ {(void*) aFoPoleDL, 0, (ObjectFunc) Sprite_UpdateDoodad, aFoPoleHitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
@@ -263,7 +263,7 @@ ObjectInfo gObjectInfo[] = {
/* OBJ_SPRITE_167 */ {(void*) Sprite167_Draw, 1, (ObjectFunc) Sprite167_Update, gNoHitbox, 500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SPRITE_168 */ {(void*) Sprite168_Draw, 1, (ObjectFunc) NULL, gNoHitbox, 100.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_SPRITE_TI_CACTUS */ {(void*) aTiCactusDL, 0, (ObjectFunc) Titania_Cactus_Update, aTiCactusHitbox, 100.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_SPRITE_CO_SMOKE */ {(void*) NULL, 1, (ObjectFunc) Corneria_Smoke_Update, gNoHitbox, 0.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_SPRITE_CO_SMOKE */ {(void*) NULL, 1, (ObjectFunc) Corneria_CoSmoke_Update, gNoHitbox, 0.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SPRITE_VE1_BOSS_TRIGGER1 */ {(void*) NULL, 1, (ObjectFunc) Venom1_BossTrigger1_Update, gNoHitbox, 0.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SPRITE_VE1_BOSS_TRIGGER2 */ {(void*) NULL, 1, (ObjectFunc) Venom1_BossTrigger2_Update, gNoHitbox, 0.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_SPRITE_VE1_BOSS_TRIGGER3 */ {(void*) NULL, 1, (ObjectFunc) Venom1_BossTrigger3_Update, gNoHitbox, 0.0f, 0, 0, 0, 0, 0.0f, 0 },
@@ -273,148 +273,148 @@ ObjectInfo gObjectInfo[] = {
/* OBJ_ACTOR_CO_GARUDA_2 */ {(void*) Corneria_CoGaruda2_Draw, 2, (ObjectFunc) Corneria_CoGaruda2_Update, CoGarudaHitbox, 500.0f, 0, 0, 39, 1, 200.0f, 1 },
/* OBJ_ACTOR_CO_GARUDA_3 */ {(void*) Corneria_CoGaruda3_Draw, 2, (ObjectFunc) Corneria_CoGaruda3_Update, CoGarudaHitbox, 500.0f, 0, 0, 39, 1, 200.0f, 1 },
/* OBJ_ACTOR_CO_GARUDA_DESTROY */ {(void*) Corneria_CoGarudaDestroy_Draw, 2, (ObjectFunc) Corneria_CoGarudaDestroy_Update, aCoGarudaDestroyHitbox, 500.0f, 0, 0, 39, 1, 0.0f, 1 },
- /* OBJ_ACTOR_180 */ {(void*) Actor180_Draw, 1, (ObjectFunc) Actor180_Update, gNoHitbox, 1000.0f, 0, 0, 39, 0, 0.0f, 1 },
- /* OBJ_ACTOR_181 */ {(void*) D_ME_6018C00, 0, (ObjectFunc) Meteo_Actor181_Update, D_ME_602F6EC, 200.0f, 0, 0, 39, 0, 1.0f, 1 },
- /* OBJ_ACTOR_182 */ {(void*) Actor182_Draw, 1, (ObjectFunc) Meteo_Actor182_Update, D_ME_602F708, 100.0f, 0, 1, 39, 0, 1.0f, 1 },
- /* OBJ_ACTOR_183 */ {(void*) Meteo_Actor183_Draw, 1, (ObjectFunc) Meteo_ActorDoodad_Update, gNoHitbox, 100.0f, 0, 1, 39, 0, 0.0f, 1 },
- /* OBJ_ACTOR_184 */ {(void*) Meteo_Actor184_Draw, 1, (ObjectFunc) Meteo_ActorDoodad_Update, gNoHitbox, 100.0f, 0, 1, 39, 0, 0.0f, 1 },
- /* OBJ_ACTOR_185 */ {(void*) Meteo_Actor185_Draw, 1, (ObjectFunc) Meteo_ActorDoodad_Update, gNoHitbox, 100.0f, 0, 1, 39, 0, 0.0f, 1 },
- /* OBJ_ACTOR_186 */ {(void*) Actor186_Draw, 1, (ObjectFunc) Meteo_Actor186_Update, D_ME_602F724, 200.0f, 0, 1, 39, 0, 1.0f, 1 },
- /* OBJ_ACTOR_187 */ {(void*) D_ME_6018450, 0, (ObjectFunc) Meteo_Actor187_Update, D_ME_602F740, 200.0f, 0, 1, 39, 0, 1.0f, 1 },
- /* OBJ_ACTOR_188 */ {(void*) Aquas_Actor188_Draw, 1, (ObjectFunc) Aquas_Actor188_Update, D_AQ_6030BE0, 200.0f, 0, 1, 39, 0, 1.0f, 1 },
+ /* OBJ_ACTOR_ME_MOLAR_ROCK */ {(void*) MeMolarRock_Draw, 1, (ObjectFunc) MeMolarRock_Update, gNoHitbox, 1000.0f, 0, 0, 39, 0, 0.0f, 1 },
+ /* OBJ_ACTOR_ME_METEOR_1 */ {(void*) aMeMeteor1DL, 0, (ObjectFunc) Meteo_MeMeteor1_Update, aMeMeteor1Hitbox, 200.0f, 0, 0, 39, 0, 1.0f, 1 },
+ /* OBJ_ACTOR_ME_METEOR_2 */ {(void*) MeMeteor2_Draw, 1, (ObjectFunc) Meteo_MeMeteor2_Update, aMeMeteor2Hitbox, 100.0f, 0, 1, 39, 0, 1.0f, 1 },
+ /* OBJ_ACTOR_ME_METEOR_SHOWER_1 */ {(void*) Meteo_MeMeteorShower1_Draw, 1, (ObjectFunc) Meteo_MeteorShower_Update, gNoHitbox, 100.0f, 0, 1, 39, 0, 0.0f, 1 },
+ /* OBJ_ACTOR_ME_METEOR_SHOWER_2 */ {(void*) Meteo_MeMeteorShower2_Draw, 1, (ObjectFunc) Meteo_MeteorShower_Update, gNoHitbox, 100.0f, 0, 1, 39, 0, 0.0f, 1 },
+ /* OBJ_ACTOR_ME_METEOR_SHOWER_3 */ {(void*) Meteo_MeMeteorShower3_Draw, 1, (ObjectFunc) Meteo_MeteorShower_Update, gNoHitbox, 100.0f, 0, 1, 39, 0, 0.0f, 1 },
+ /* OBJ_ACTOR_ME_LASER_CANNON_1 */ {(void*) MeLaserCannon1_Draw, 1, (ObjectFunc) Meteo_MeLaserCannon1_Update, aMeLaserCannon1Hitbox, 200.0f, 0, 1, 39, 0, 1.0f, 1 },
+ /* OBJ_ACTOR_ME_LASER_CANNON_2 */ {(void*) aMeLaserCannon2DL, 0, (ObjectFunc) Meteo_MeLaserCannon2_Update, aMeLaserCannon2Hitbox, 200.0f, 0, 1, 39, 0, 1.0f, 1 },
+ /* OBJ_ACTOR_AQ_UNK_188 */ {(void*) Aquas_Actor188_Draw, 1, (ObjectFunc) Aquas_Actor188_Update, aAqActor188Hitbox, 200.0f, 0, 1, 39, 0, 1.0f, 1 },
/* OBJ_ACTOR_DEBRIS */ {(void*) ActorDebris_Draw, 1, (ObjectFunc) ActorDebris_Update, gNoHitbox, 0.0f, 0, 0, 39, 0, 0.0f, 0 },
- /* OBJ_MISSILE_SEEK_TEAM */ {(void*) Actor190_191_Draw, 1, (ObjectFunc) Actors190_191_Update, gActor190_191Hitbox, 100.0f, 0, 1, 39, 0, 1.0f, 0 },
- /* OBJ_MISSILE_SEEK_PLAYER */ {(void*) Actor190_191_Draw, 1, (ObjectFunc) Actors190_191_Update, gActor190_191Hitbox, 100.0f, 0, 1, 39, 0, 1.0f, 0 },
- /* OBJ_ACTOR_192 */ {(void*) Actor192_Draw, 1, (ObjectFunc) Actor192_Update, D_CO_603E54C, 200.0f, 0, 1, 39, 0, 50.0f, 1 },
- /* OBJ_ACTOR_193 */ {(void*) Actor193_Draw, 1, (ObjectFunc) Actor193_Update, D_CO_603E598, 100.0f, 0, 1, 39, 0, 0.0f, 0 },
- /* OBJ_ACTOR_194 */ {(void*) Actor194_Draw, 1, (ObjectFunc) Actor194_Update, gActor194Hitbox, 200.0f, 0, 1, 39, 0, 0.0f, 1 },
+ /* OBJ_MISSILE_SEEK_TEAM */ {(void*) ActorMissileSeek_Draw, 1, (ObjectFunc) ActorMissileSeek_Update, gActorMissileSeekHitbox, 100.0f, 0, 1, 39, 0, 1.0f, 0 },
+ /* OBJ_MISSILE_SEEK_PLAYER */ {(void*) ActorMissileSeek_Draw, 1, (ObjectFunc) ActorMissileSeek_Update, gActorMissileSeekHitbox, 100.0f, 0, 1, 39, 0, 1.0f, 0 },
+ /* OBJ_ACTOR_CO_SKIBOT */ {(void*) ActorSkibot_Draw, 1, (ObjectFunc) ActorSkibot_Update, aCoActorSkibotHitbox, 200.0f, 0, 1, 39, 0, 50.0f, 1 },
+ /* OBJ_ACTOR_CO_RADAR */ {(void*) ActorRadar_Draw, 1, (ObjectFunc) ActorRadar_Update, aCoActorRadarHitbox, 100.0f, 0, 1, 39, 0, 0.0f, 0 },
+ /* OBJ_ACTOR_ME_MORA */ {(void*) MeMora_Draw, 1, (ObjectFunc) MeMora_Update, gMeMoraHitbox, 200.0f, 0, 1, 39, 0, 0.0f, 1 },
/* OBJ_ACTOR_CUTSCENE */ {(void*) ActorCutscene_Draw, 1, (ObjectFunc) ActorCutscene_Update, gNoHitbox, 20000.0f, 0, 1, 39, 0, 0.0f, 0 },
- /* OBJ_ACTOR_196 */ {(void*) Actor196_Draw, 1, (ObjectFunc) Actor196_Update, D_CO_603E5B4, 200.0f, 0, 1, 39, 0, 1.0f, 1 },
+ /* OBJ_ACTOR_CO_MOLE_MISSILE */ {(void*) ActorMoleMissile_Draw, 1, (ObjectFunc) ActorMoleMissile_Update, aCoMoleMissileHitbox, 200.0f, 0, 1, 39, 0, 1.0f, 1 },
/* OBJ_ACTOR_ALLRANGE */ {(void*) ActorAllRange_Draw, 1, (ObjectFunc) ActorAllRange_Update, gActorAllRangeHItbox, 20000.0f, 0, 1, 39, 1, 1.0f, 1 },
/* OBJ_ACTOR_TEAM_BOSS */ {(void*) ActorAllRange_Draw, 1, (ObjectFunc) ActorTeamBoss_Update, gTeamHitbox, 20000.0f, 0, 0, 39, 1, 0.0f, 0 },
/* OBJ_ACTOR_199 */ {(void*) Andross_Actor199_Draw, 1, (ObjectFunc) Andross_Actor199_Update, gNoHitbox, 20000.0f, 0, 0, 39, 1, 0.0f, 0 },
/* OBJ_ACTOR_EVENT */ {(void*) ActorEvent_Draw, 1, (ObjectFunc) ActorEvent_Update, gNoHitbox, 2000.0f, 0, 1, 39, 0, 0.0f, 1 },
- /* OBJ_ACTOR_201 */ {(void*) Actor201_Draw, 1, (ObjectFunc) Actor201_Update, D_ME_602F684, 100.0f, 0, 1, 39, 0, 1.0f, 1 },
- /* OBJ_ACTOR_202 */ {(void*) Actor202_Draw, 1, (ObjectFunc) Actor202_Update, D_ME_602F6A0, 100.0f, 0, 1, 39, 0, 180.0f, 1 },
- /* OBJ_ACTOR_SLIPPY_SX */ {(void*) SectorX_Slippy_Draw, 1, (ObjectFunc) SectorX_Slippy_Update, gNoHitbox, 1000.0f, 0, 0, 39, 0, 0.0f, 0 },
- /* OBJ_ACTOR_204 */ {(void*) SectorY_Actor204_Draw, 1, (ObjectFunc) SectorY_Actor204_Update, D_SY_603405C, 1000.0f, 0, 0, 39, 0, 1.0f, 1 },
- /* OBJ_ACTOR_205 */ {(void*) Macbeth_ActorDoodad_Draw, 1, (ObjectFunc) Macbeth_Actor205_Update, D_MA_60359C8, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
- /* OBJ_ACTOR_206 */ {(void*) Macbeth_ActorDoodad_Draw, 1, (ObjectFunc) Macbeth_Actor206_Update, D_MA_6035A48, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
- /* OBJ_ACTOR_207 */ {(void*) Macbeth_Actor207_Draw, 2, (ObjectFunc) Macbeth_Actor207_Update, D_MA_603677C, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
- /* OBJ_ACTOR_208 */ {(void*) Macbeth_ActorDoodad_Draw, 1, (ObjectFunc) Macbeth_Actor208_Update, D_MA_6035A14, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
- /* OBJ_ACTOR_209 */ {(void*) Macbeth_ActorDoodad_Draw, 1, (ObjectFunc) Macbeth_Actor209_Update, D_MA_6035AE0, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
- /* OBJ_ACTOR_210 */ {(void*) Macbeth_ActorDoodad_Draw, 1, (ObjectFunc) Macbeth_Actor210_Update, D_MA_6035D9C, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
- /* OBJ_ACTOR_211 */ {(void*) Macbeth_ActorDoodad_Draw, 1, (ObjectFunc) Macbeth_Actor211_Update, D_MA_6035E04, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
- /* OBJ_ACTOR_212 */ {(void*) Macbeth_ActorDoodad_Draw, 1, (ObjectFunc) Macbeth_Actor212_Update, D_MA_60360C0, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
- /* OBJ_ACTOR_213 */ {(void*) Macbeth_ActorDoodad_Draw, 1, (ObjectFunc) Macbeth_Actor213_Update, D_MA_6036154, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
- /* OBJ_ACTOR_214 */ {(void*) Macbeth_Actor214_Draw, 1, (ObjectFunc) Macbeth_Actor214_Update, D_MA_6036458, 300.0f, 0, 0, 40, 1, 0.0f, 0 },
- /* OBJ_ACTOR_215 */ {(void*) Macbeth_Actor215_Draw, 1, (ObjectFunc) Macbeth_Actor215_Update, D_MA_60364C0, 300.0f, 0, 1, 40, 1, 0.0f, 1 },
- /* OBJ_ACTOR_216 */ {(void*) Macbeth_Actor216_Draw, 1, (ObjectFunc) Macbeth_Actor216_Update, D_MA_60366EC, 200.0f, 0, 0, 40, 1, 0.0f, 0 },
- /* OBJ_ACTOR_217 */ {(void*) Macbeth_Actor217_Draw, 1, (ObjectFunc) Macbeth_Actor217_Update, D_MA_6036708, 200.0f, 0, 0, 40, 1, 0.0f, 0 },
- /* OBJ_ACTOR_218 */ {(void*) Macbeth_Actor218_Draw, 1, (ObjectFunc) Macbeth_Actor218_Update, D_MA_6036728, 200.0f, 0, 0, 40, 1, 0.0f, 0 },
- /* OBJ_ACTOR_219 */ {(void*) Macbeth_Actor219_Draw, 1, (ObjectFunc) Macbeth_Actor219_Update, D_MA_6036744, 300.0f, 0, 0, 40, 1, 0.0f, 0 },
- /* OBJ_ACTOR_220 */ {(void*) Macbeth_Actor220_Draw, 1, (ObjectFunc) Macbeth_Actor220_Update, D_MA_6036930, 200.0f, 0, 0, 40, 1, 0.0f, 0 },
- /* OBJ_ACTOR_221 */ {(void*) Macbeth_Actor221_Draw, 1, (ObjectFunc) Macbeth_Actor221_Update, D_MA_603694C, 300.0f, 0, 0, 40, 1, 1.0f, 0 },
- /* OBJ_ACTOR_222 */ {(void*) Macbeth_Actor222_Draw, 1, (ObjectFunc) Macbeth_Actor222_Update, D_MA_6036968, 300.0f, 0, 0, 40, 1, 1.0f, 0 },
- /* OBJ_ACTOR_223 */ {(void*) Macbeth_Actor223_Draw, 1, (ObjectFunc) Macbeth_Actor223_Update, D_MA_60364DC, 300.0f, 0, 0, 40, 1, 0.0f, 0 },
- /* OBJ_ACTOR_224 */ {(void*) NULL, 1, (ObjectFunc) Titania_Actor224_Update, gNoHitbox, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
- /* OBJ_ACTOR_225 */ {(void*) D_TI1_700AB70, 0, (ObjectFunc) Titania_Actor225_Update, D_TI_60064AC, 50.0f, 0, 0, 39, 1, 1.0f, 0 },
- /* OBJ_ACTOR_226 */ {(void*) Titania_Actor226_Draw, 1, (ObjectFunc) Titania_Actor226_Update, D_TI_60064C8, 300.0f, 0, 0, 39, 1, 70.0f, 1 },
- /* OBJ_ACTOR_227 */ {(void*) Titania_Actor227_Draw, 1, (ObjectFunc) Titania_Actor227_Update, D_TI_60067C4, 0.0f, 0, 0, 39, 1, 0.0f, 0 },
- /* OBJ_ACTOR_228 */ {(void*) Titania_Actor228_Draw, 1, (ObjectFunc) Titania_Actor228_Update, D_TI_6006808, 0.0f, 0, 0, 39, 1, 1.0f, 1 },
- /* OBJ_ACTOR_229 */ {(void*) Titania_Actor229_Draw, 1, (ObjectFunc) Titania_Actor229_Update, D_TI_6006A3C, 1000.0f, 0, 0, 20, 1, 0.0f, 1 },
- /* OBJ_ACTOR_230 */ {(void*) Titania_Actor230_Draw, 1, (ObjectFunc) Titania_Actor230_Update, D_TI_600683C, 0.0f, 0, 1, 39, 1, 0.0f, 1 },
- /* OBJ_ACTOR_231 */ {(void*) Titania_Actor231_Draw, 1, (ObjectFunc) Titania_Actor231_Update, D_TI_6006858, 0.0f, 0, 0, 39, 1, 0.0f, 1 },
- /* OBJ_ACTOR_232 */ {(void*) Titania_Actor232_Draw, 1, (ObjectFunc) Titania_Actor232_Update, D_TI_6006890, 0.0f, 0, 0, 39, 1, 20.0f, 1 },
- /* OBJ_ACTOR_233 */ {(void*) Titania_Actor233_Draw, 1, (ObjectFunc) Titania_Actor233_Update, D_TI_60068F0, 200.0f, 0, 0, 39, 1, 1.0f, 1 },
- /* OBJ_ACTOR_234 */ {(void*) Actor234_Draw, 1, (ObjectFunc) Actor234_Update, gNoHitbox, 2000.0f, 0, 0, 39, 0, 0.0f, 5 },
- /* OBJ_ACTOR_235 */ {(void*) Zoness_Actor235_Draw, 2, (ObjectFunc) Zoness_Actor235_Update, D_ZO_602C294, 1000.0f, 0, 1, 40, 0, 1.0f, 1 },
- /* OBJ_ACTOR_236 */ {(void*) Zoness_Actor236_Draw, 1, (ObjectFunc) Zoness_Actor236_Update, D_ZO_602BC58, 5000.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_ACTOR_237 */ {(void*) Actor237_Draw, 1, (ObjectFunc) Actor237_Update, gNoHitbox, 200.0f, 0, 0, 40, 0, 0.0f, 2 },
- /* OBJ_ACTOR_238 */ {(void*) Zoness_Actor238_Draw, 2, (ObjectFunc) Zoness_Actor238_Update, gCubeHitbox100, 200.0f, 0, 1, 40, 0, 1.0f, 1 },
- /* OBJ_ACTOR_239 */ {(void*) NULL, 1, (ObjectFunc) NULL, gNoHitbox, 1000.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_ACTOR_240 */ {(void*) Zoness_Actor240_Draw, 1, (ObjectFunc) Zoness_Actor240_Update, gCubeHitbox100, 1500.0f, 0, 1, 40, 0, 20.0f, 0 },
- /* OBJ_ACTOR_241 */ {(void*) Zoness_Actor241_Draw, 1, (ObjectFunc) Zoness_Actor241_Update, gActor241Hitbox, 1500.0f, 0, 1, 40, 0, 0.0f, 0 },
- /* OBJ_ACTOR_242 */ {(void*) Zoness_Actor242_Draw, 2, (ObjectFunc) Zoness_Actor242_Update, D_ZO_602BE3C, 500.0f, 0, 0, 40, 0, 1.0f, 0 },
- /* OBJ_ACTOR_243 */ {(void*) Zoness_Actor243_Draw, 2, (ObjectFunc) Zoness_Actor243_Update, gCubeHitbox100, 0.0f, 0, 1, 40, 0, 1.0f, 1 },
- /* OBJ_ACTOR_244 */ {(void*) Zoness_Actor244_Draw, 2, (ObjectFunc) Zoness_Actor244_Update, D_ZO_602BE58, 2000.0f, 0, 0, 40, 0, 50.0f, 0 },
- /* OBJ_ACTOR_245 */ {(void*) Zoness_Actor245_Draw, 1, (ObjectFunc) Zoness_Actor245_Update, gCubeHitbox100, 200.0f, 0, 0, 40, 0, 1.0f, 0 },
- /* OBJ_ACTOR_246 */ {(void*) Zoness_Actor246_Draw, 1, (ObjectFunc) Zoness_Actor246_Update, gCubeHitbox100, 2000.0f, 0, 0, 40, 0, 1.0f, 0 },
- /* OBJ_ACTOR_247 */ {(void*) Zoness_Actor247_Draw, 1, (ObjectFunc) Zoness_Actor247_Update, D_ZO_602BFC4, 500.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_ACTOR_248 */ {(void*) Zoness_Actor248_Draw, 1, (ObjectFunc) Zoness_Actor248_Update, gCubeHitbox150, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_ACTOR_249 */ {(void*) Zoness_Actor249_Draw, 1, (ObjectFunc) Zoness_Actor249_Update, gCubeHitbox200, 5000.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_ACTOR_250 */ {(void*) Zoness_Actor250_Draw, 1, (ObjectFunc) Zoness_Actor250_Update, D_ZO_602C1D4, 10000.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_ACTOR_251 */ {(void*) Zoness_Actor251_Draw, 2, (ObjectFunc) Zoness_Actor251_Update, D_ZO_602C218, 1000.0f, 0, 0, 40, 0, 1.0f, 1 },
- /* OBJ_ACTOR_252 */ {(void*) Zoness_Actor252_Draw, 1, (ObjectFunc) Zoness_Actor252_Update, D_ZO_602C234, 200.0f, 0, 0, 40, 0, 80.0f, 1 },
- /* OBJ_ACTOR_253 */ {(void*) Zoness_Actor253_Draw, 1, (ObjectFunc) Zoness_Actor253_Update, D_ZO_602C250, 300.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_ACTOR_254 */ {(void*) Zoness_Actor254_Draw, 1, (ObjectFunc) Zoness_Actor254_Update, D_ZO_602C2B0, 300.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_ACTOR_ME_METEO_BALL */ {(void*) MeteoBall_Draw, 1, (ObjectFunc) MeteoBall_Update, aMeMeteoBallHitbox, 100.0f, 0, 1, 39, 0, 1.0f, 1 },
+ /* OBJ_ACTOR_ME_HOPBOT */ {(void*) ActorHopBot_Draw, 1, (ObjectFunc) ActorHopBot_Update, aMeHopBotHitbox, 100.0f, 0, 1, 39, 0, 180.0f, 1 },
+ /* OBJ_ACTOR_SLIPPY_SX */ {(void*) SectorX_SxSlippy_Draw, 1, (ObjectFunc) SectorX_SxSlippy_Update, gNoHitbox, 1000.0f, 0, 0, 39, 0, 0.0f, 0 },
+ /* OBJ_ACTOR_SY_ROBOT */ {(void*) SectorY_SyRobot_Draw, 1, (ObjectFunc) SectorY_SyRobot_Update, aSyRobotHitbox, 1000.0f, 0, 0, 39, 0, 1.0f, 1 },
+ /* OBJ_ACTOR_MA_LOCOMOTIVE */ {(void*) Macbeth_Train_Draw, 1, (ObjectFunc) Macbeth_MaLocomotive_Update, aMaLocomotiveHitbox, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
+ /* OBJ_ACTOR_MA_TRAIN_CAR_1 */ {(void*) Macbeth_Train_Draw, 1, (ObjectFunc) Macbeth_MaTrainCar1_Update, aMaTrainCar1Hitbox, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
+ /* OBJ_ACTOR_207 */ {(void*) Macbeth_Actor207_Draw, 2, (ObjectFunc) Macbeth_Actor207_Update, aMaActor207Hitbox, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
+ /* OBJ_ACTOR_MA_TRAIN_CAR_2 */ {(void*) Macbeth_Train_Draw, 1, (ObjectFunc) Macbeth_MaTrainCar2_Update, aMaTrainCar2Hitbox, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
+ /* OBJ_ACTOR_MA_TRAIN_CAR_3 */ {(void*) Macbeth_Train_Draw, 1, (ObjectFunc) Macbeth_MaTrainCar3_Update, aMaTrainCar3Hitbox, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
+ /* OBJ_ACTOR_MA_TRAIN_CAR_4 */ {(void*) Macbeth_Train_Draw, 1, (ObjectFunc) Macbeth_MaTrainCar4_Update, aMaTrainCar4Hitbox, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
+ /* OBJ_ACTOR_MA_TRAIN_CAR_5 */ {(void*) Macbeth_Train_Draw, 1, (ObjectFunc) Macbeth_MaTrainCar5_Update, aMaTrainCar5Hitbox, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
+ /* OBJ_ACTOR_MA_TRAIN_CAR_6 */ {(void*) Macbeth_Train_Draw, 1, (ObjectFunc) Macbeth_MaTrainCar6_Update, aMaTrainCar6Hitbox, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
+ /* OBJ_ACTOR_MA_TRAIN_CAR_7 */ {(void*) Macbeth_Train_Draw, 1, (ObjectFunc) Macbeth_MaTrainCar7_Update, aMaTrainCar7Hitbox, 20000.0f, 0, 0, 40, 1, 0.0f, 0 },
+ /* OBJ_ACTOR_MA_RAILROAD_SWITCH */ {(void*) Macbeth_MaRailroadSwitch_Draw, 1, (ObjectFunc) Macbeth_MaRailroadSwitch_Update, aMaMaRailroadSwitchHitbox, 300.0f, 0, 0, 40, 1, 0.0f, 0 },
+ /* OBJ_ACTOR_MA_BOULDER */ {(void*) Macbeth_MaBoulder_Draw, 1, (ObjectFunc) Macbeth_MaBoulder_Update, aMaBoulderHitbox, 300.0f, 0, 1, 40, 1, 0.0f, 1 },
+ /* OBJ_ACTOR_MA_HORIZONTAL_LOCK_BAR */ {(void*) Macbeth_MaHorizontalLockBar_Draw, 1, (ObjectFunc) Macbeth_MaHorizontalLockBar_Update, aMaHorizontalLockBarHitbox, 200.0f, 0, 0, 40, 1, 0.0f, 0 },
+ /* OBJ_ACTOR_MA_VERTICAL_LOCK_BAR */ {(void*) Macbeth_MaVerticalLockBar_Draw, 1, (ObjectFunc) Macbeth_MaVerticalLockBar_Update, aMaVerticalLockBarHitbox, 200.0f, 0, 0, 40, 1, 0.0f, 0 },
+ /* OBJ_ACTOR_MA_BARRIER */ {(void*) Macbeth_MaBarrier_Draw, 1, (ObjectFunc) Macbeth_MaBarrier_Update, aMaBarrierHitbox, 200.0f, 0, 0, 40, 1, 0.0f, 0 },
+ /* OBJ_ACTOR_219 */ {(void*) Macbeth_Actor219_Draw, 1, (ObjectFunc) Macbeth_Actor219_Update, aMaActor219Hitbox, 300.0f, 0, 0, 40, 1, 0.0f, 0 },
+ /* OBJ_ACTOR_MA_BOMBDROP */ {(void*) Macbeth_MaBombDrop_Draw, 1, (ObjectFunc) Macbeth_MaBombDrop_Update, aMaBombDropHitbox, 200.0f, 0, 0, 40, 1, 0.0f, 0 },
+ /* OBJ_ACTOR_MA_SPEAR */ {(void*) Macbeth_MaSpear_Draw, 1, (ObjectFunc) Macbeth_MaSpear_Update, aMaSpearHitbox, 300.0f, 0, 0, 40, 1, 1.0f, 0 },
+ /* OBJ_ACTOR_MA_SHOCK_BOX */ {(void*) Macbeth_MaShockBox_Draw, 1, (ObjectFunc) Macbeth_MaShockBox_Update, aMaShockBoxHitbox, 300.0f, 0, 0, 40, 1, 1.0f, 0 },
+ /* OBJ_ACTOR_MA_RAILWAY_SIGNAL */ {(void*) Macbeth_MaRailwaySignal_Draw, 1, (ObjectFunc) Macbeth_MaRailwaySignal_Update, aMaRailwaySignalHitbox, 300.0f, 0, 0, 40, 1, 0.0f, 0 },
+ /* OBJ_ACTOR_TI_TERRAIN */ {(void*) NULL, 1, (ObjectFunc) Titania_TiTerrain_Update, gNoHitbox, 200.0f, 0, 0, 39, 0, 0.0f, 0 },
+ /* OBJ_ACTOR_TI_LANDMINE */ {(void*) aTi1LandmineDL, 0, (ObjectFunc) Titania_TiLandmine_Update, aTi1LandmineHitbox, 50.0f, 0, 0, 39, 1, 1.0f, 0 },
+ /* OBJ_ACTOR_TI_DESERT_ROVER */ {(void*) Titania_TiDesertRover_Draw, 1, (ObjectFunc) Titania_TiDesertRover_Update, aTiDesertRoverHitbox, 300.0f, 0, 0, 39, 1, 70.0f, 1 },
+ /* OBJ_ACTOR_TI_DELPHOR */ {(void*) Titania_TiDelphor_Draw, 1, (ObjectFunc) Titania_TiDelphor_Update, aTiDelphorHitbox, 0.0f, 0, 0, 39, 1, 0.0f, 0 },
+ /* OBJ_ACTOR_TI_DELPHOR_HEAD */ {(void*) Titania_TiDelphorHead_Draw, 1, (ObjectFunc) Titania_TiDelphorHead_Update, aTiDelphorHeadHitbox, 0.0f, 0, 0, 39, 1, 1.0f, 1 },
+ /* OBJ_ACTOR_TI_DESERT_CRAWLER */ {(void*) Titania_TiDesertCrawler_Draw, 1, (ObjectFunc) Titania_TiDesertCrawler_Update, aTiDesertCrawlerHitbox, 1000.0f, 0, 0, 20, 1, 0.0f, 1 },
+ /* OBJ_ACTOR_TI_BOULDER */ {(void*) Titania_TiBoulder_Draw, 1, (ObjectFunc) Titania_TiBoulder_Update, aTiBoulderHitbox, 0.0f, 0, 1, 39, 1, 0.0f, 1 },
+ /* OBJ_ACTOR_TI_BOMB */ {(void*) Titania_TiBomb_Draw, 1, (ObjectFunc) Titania_TiBomb_Update, aTiBombHitbox, 0.0f, 0, 0, 39, 1, 0.0f, 1 },
+ /* OBJ_ACTOR_TI_RASCO */ {(void*) Titania_TiRasco_Draw, 1, (ObjectFunc) Titania_TiRasco_Update, aTiRascoHitbox, 0.0f, 0, 0, 39, 1, 20.0f, 1 },
+ /* OBJ_ACTOR_TI_FEKUDA */ {(void*) Titania_TiFekuda_Draw, 1, (ObjectFunc) Titania_TiFekuda_Update, aTiFekudaHitbox, 200.0f, 0, 0, 39, 1, 1.0f, 1 },
+ /* OBJ_ACTOR_TI_GREAT_FOX */ {(void*) TiGreatFox_Draw, 1, (ObjectFunc) TiGreatFox_Update, gNoHitbox, 2000.0f, 0, 0, 39, 0, 0.0f, 5 },
+ /* OBJ_ACTOR_ZO_BIRD */ {(void*) Zoness_ZoBird_Draw, 2, (ObjectFunc) Zoness_ZoBird_Update, aZoBirdHitbox, 1000.0f, 0, 1, 40, 0, 1.0f, 1 },
+ /* OBJ_ACTOR_ZO_DODORA */ {(void*) Zoness_ZoDodora_Draw, 1, (ObjectFunc) Zoness_ZoDodora_Update, aZoDodoraHitbox, 5000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_ACTOR_UNK_237 */ {(void*) Actor237_Draw, 1, (ObjectFunc) Actor237_Update, gNoHitbox, 200.0f, 0, 0, 40, 0, 0.0f, 2 },
+ /* OBJ_ACTOR_ZO_FISH */ {(void*) Zoness_ZoFish_Draw, 2, (ObjectFunc) Zoness_ZoFish_Update, gCubeHitbox100, 200.0f, 0, 1, 40, 0, 1.0f, 1 },
+ /* OBJ_ACTOR_ZO_DODORA_WP_COUNT */ {(void*) NULL, 1, (ObjectFunc) NULL, gNoHitbox, 1000.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_ACTOR_ZO_Z_GULL */ {(void*) Zoness_ZGull_Draw, 1, (ObjectFunc) Zoness_ZGull_Update, gCubeHitbox100, 1500.0f, 0, 1, 40, 0, 20.0f, 0 },
+ /* OBJ_ACTOR_ZO_ENERGY_BALL */ {(void*) Zoness_ZoEnergyBall_Draw, 1, (ObjectFunc) Zoness_ZoEnergyBall_Update, gZoEnergyBallHitbox, 1500.0f, 0, 1, 40, 0, 0.0f, 0 },
+ /* OBJ_ACTOR_ZO_TROIKA */ {(void*) Zoness_ZoTroika_Draw, 2, (ObjectFunc) Zoness_ZoTroika_Update, aZoTroikaHitbox, 500.0f, 0, 0, 40, 0, 1.0f, 0 },
+ /* OBJ_ACTOR_ZO_SHRIMP */ {(void*) Zoness_ZoShrimp_Draw, 2, (ObjectFunc) Zoness_ZoShrimp_Update, gCubeHitbox100, 0.0f, 0, 1, 40, 0, 1.0f, 1 },
+ /* OBJ_ACTOR_ZO_OBNEMA */ {(void*) Zoness_ZoObnema_Draw, 2, (ObjectFunc) Zoness_ZoObnema_Update, aZoObnemaHitbox, 2000.0f, 0, 0, 40, 0, 50.0f, 0 },
+ /* OBJ_ACTOR_ZO_BALL */ {(void*) Zoness_ZoBall_Draw, 1, (ObjectFunc) Zoness_ZoBall_Update, gCubeHitbox100, 200.0f, 0, 0, 40, 0, 1.0f, 0 },
+ /* OBJ_ACTOR_ZO_MINE */ {(void*) Zoness_ZoMine_Draw, 1, (ObjectFunc) Zoness_ZoMine_Update, gCubeHitbox100, 2000.0f, 0, 0, 40, 0, 1.0f, 0 },
+ /* OBJ_ACTOR_ZO_BARRIER */ {(void*) Zoness_ZoBarrier_Draw, 1, (ObjectFunc) Zoness_ZoBarrier_Update, aZoBarrierHitbox, 500.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_ACTOR_ZO_CRANE_MAGNET */ {(void*) Zoness_ZoCraneMagnet_Draw, 1, (ObjectFunc) Zoness_ZoCraneMagnet_Update, gCubeHitbox150, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_ACTOR_SPIKEBALL */ {(void*) Zoness_ZoSpikeBall_Draw, 1, (ObjectFunc) Zoness_ZoSpikeBall_Update, gCubeHitbox200, 5000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_ACTOR_ZO_CARGOSHIP */ {(void*) Zoness_ZoCargoShip_Draw, 1, (ObjectFunc) Zoness_ZoCargoShip_Update, aZoCargoShipHitbox, 10000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_ACTOR_ZO_CONTAINER */ {(void*) Zoness_ZoContainer_Draw, 2, (ObjectFunc) Zoness_ZoContainer_Update, aZoContainerHitbox, 1000.0f, 0, 0, 40, 0, 1.0f, 1 },
+ /* OBJ_ACTOR_ZO_RADARBUOY */ {(void*) Zoness_ZoRadarBuoy_Draw, 1, (ObjectFunc) Zoness_ZoRadarBuoy_Update, aZoRadarBuoyHitbox, 200.0f, 0, 0, 40, 0, 80.0f, 1 },
+ /* OBJ_ACTOR_ZO_SUPPLYCRANE */ {(void*) Zoness_ZoSupplyCrane_Draw, 1, (ObjectFunc) Zoness_ZoSupplyCrane_Update, aZoSupplyCraneHitbox, 300.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_ACTOR_ZO_SEARCHLIGHT */ {(void*) Zoness_ZoSearchLight_Draw, 1, (ObjectFunc) Zoness_ZoSearchLight_Update, aZoSearchLightHitbox, 300.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ACTOR_255 */ {(void*) Aquas_Actor255_Draw, 1, (ObjectFunc) Aquas_Actor255_Update, D_AQ_6030BFC, 500.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_ACTOR_256 */ {(void*) Aquas_Actor256_Draw, 1, (ObjectFunc) Aquas_Actor256_Update, D_AQ_6030C18, 10000.0f, 0, 0, 40, 0, 0.0f, 0 },
/* OBJ_ACTOR_257 */ {(void*) Aquas_Actor257_Draw, 1, (ObjectFunc) Aquas_Actor257_Update, D_AQ_6030C44, 10000.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_ACTOR_258 */ {(void*) Aquas_Actor258_Draw, 1, (ObjectFunc) Aquas_Actor258_Update, gCubeHitbox100, 200.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_ACTOR_259 */ {(void*) Aquas_Actor259_Draw, 2, (ObjectFunc) Aquas_Actor259_Update, D_AQ_6031398, 10000.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_ACTOR_260 */ {(void*) Aquas_Actor260_Draw, 2, (ObjectFunc) Aquas_Actor260_Update, D_AQ_60313CC, 300.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_ACTOR_261 */ {(void*) Aquas_Actor261_Draw, 2, (ObjectFunc) Aquas_Actor261_Update, D_AQ_6031400, 300.0f, 0, 0, 40, 0, 0.0f, 1 },
- /* OBJ_ACTOR_262 */ {(void*) Aquas_Actor262_Draw, 2, (ObjectFunc) Aquas_Actor262_Update, D_AQ_603144C, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_ACTOR_263 */ {(void*) Aquas_Actor263_Draw, 2, (ObjectFunc) Aquas_Actor263_Update, D_AQ_6031480, 200.0f, 0, 0, 40, 0, 0.0f, 1 },
- /* OBJ_ACTOR_264 */ {(void*) Aquas_Actor264_Draw, 1, (ObjectFunc) Aquas_Actor264_Update, gCubeHitbox100, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_ACTOR_265 */ {(void*) Aquas_Actor265_Draw, 1, (ObjectFunc) Aquas_Actor265_Update, D_AQ_6031500, 200.0f, 0, 0, 40, 0, 0.0f, 1 },
- /* OBJ_ACTOR_266 */ {(void*) Aquas_Actor266_Draw, 2, (ObjectFunc) Aquas_Actor266_Update, D_AQ_6031538, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_ACTOR_267 */ {(void*) Aquas_Actor267_Draw, 2, (ObjectFunc) Aquas_Actor267_Update, D_AQ_6031554, 800.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_ACTOR_268 */ {(void*) Aquas_Actor268_Draw, 1, (ObjectFunc) Aquas_Actor268_Update, D_AQ_6031570, 10000.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_ACTOR_269 */ {(void*) Aquas_Actor269_Draw, 1, (ObjectFunc) Aquas_Actor269_Update, D_AQ_6030D20, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_ACTOR_270 */ {(void*) Aquas_Actor270_Draw, 1, (ObjectFunc) Aquas_Actor270_Update, D_AQ_60314C8, 1000.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_ACTOR_271 */ {(void*) Actor271_Draw, 2, (ObjectFunc) Actor271_Update, D_BO_6011B24, 0.0f, 0, 0, 39, 0, 730.0f, 1 },
- /* OBJ_ACTOR_272 */ {(void*) Actor272_Draw, 1, (ObjectFunc) Actor272_Update, D_BO_6011BF4, 0.0f, 0, 0, 39, 0, 150.0f, 1 },
- /* OBJ_ACTOR_FO_RADAR */ {(void*) Fortuna_Radar_Draw, 2, (ObjectFunc) Fortuna_Radar_Update, aFoRadarHitbox, 0.0f, 0, 0, 39, 0, 220.0f, 1 },
+ /* OBJ_ACTOR_AQ_PEARL */ {(void*) Aquas_AqPearl_Draw, 1, (ObjectFunc) Aquas_AqPearl_Update, gCubeHitbox100, 200.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_ACTOR_AQ_ANGLERFISH */ {(void*) Aquas_AqAnglerFish_Draw, 2, (ObjectFunc) Aquas_AqAnglerFish_Update, aAqAnglerFishHitbox, 10000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_ACTOR_AQ_GAROA */ {(void*) Aquas_AqGaroa_Draw, 2, (ObjectFunc) Aquas_AqGaroa_Update, aAqGaroaHitbox, 300.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_ACTOR_AQ_SCULPIN */ {(void*) Aquas_AqSculpin_Draw, 2, (ObjectFunc) Aquas_AqSculpin_Update, aAqSculpinHitbox, 300.0f, 0, 0, 40, 0, 0.0f, 1 },
+ /* OBJ_ACTOR_AQ_SPINDLYFISH */ {(void*) Aquas_AqSpindlyFish_Draw, 2, (ObjectFunc) Aquas_AqSpindlyFish_Update, aAqSpindlyFishHitbox, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_ACTOR_AQ_SQUID */ {(void*) Aquas_AqSquid_Draw, 2, (ObjectFunc) Aquas_AqSquid_Update, aAqSquidHitbox, 200.0f, 0, 0, 40, 0, 0.0f, 1 },
+ /* OBJ_ACTOR_AQ_SEAWEED */ {(void*) Aquas_AqSeaweed_Draw, 1, (ObjectFunc) Aquas_AqSeaweed_Update, gCubeHitbox100, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_ACTOR_AQ_BOULDER */ {(void*) Aquas_AqBoulder_Draw, 1, (ObjectFunc) Aquas_AqBoulder_Update, aAqBoulderHitbox, 200.0f, 0, 0, 40, 0, 0.0f, 1 },
+ /* OBJ_ACTOR_AQ_CORAL */ {(void*) Aquas_AqCoral_Draw, 2, (ObjectFunc) Aquas_AqCoral_Update, aAqCoralHitbox, 200.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_ACTOR_AQ_JELLYFISH */ {(void*) Aquas_AqJellyfish_Draw, 2, (ObjectFunc) Aquas_AqJellyfish_Update, aAqJellyfishHitbox, 800.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_ACTOR_AQ_FISHGROUP */ {(void*) Aquas_AqFishGroup_Draw, 1, (ObjectFunc) Aquas_AqFishGroup_Update, aAqFishGroupHitbox, 10000.0f, 0, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_ACTOR_AQ_STONE_COLUMN */ {(void*) Aquas_AqStoneColumn_Draw, 1, (ObjectFunc) Aquas_AqStoneColumn_Update, aAqStoneColumnHitbox, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_ACTOR_AQ_OYSTER */ {(void*) Aquas_AqOyster_Draw, 1, (ObjectFunc) Aquas_AqOyster_Update, aAqOysterHitbox, 1000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_ACTOR_BO_SHIELD_REACTOR */ {(void*) BoShieldReactor_Draw, 2, (ObjectFunc) BoShieldReactor_Update, aBoShieldReactorHitbox, 0.0f, 0, 0, 39, 0, 730.0f, 1 },
+ /* OBJ_ACTOR_BO_LASER_CANNON */ {(void*) BoLaserCannon_Draw, 1, (ObjectFunc) BoLaserCannon_Update, aBoLaserCannonHitbox, 0.0f, 0, 0, 39, 0, 150.0f, 1 },
+ /* OBJ_ACTOR_FO_RADAR */ {(void*) Fortuna_FoRadar_Draw, 2, (ObjectFunc) Fortuna_FoRadar_Update, aFoRadarHitbox, 0.0f, 0, 0, 39, 0, 220.0f, 1 },
/* OBJ_ACTOR_SZ_SPACE_JUNK */ {(void*) SectorZ_SpaceJunkDraw, 1, (ObjectFunc) SectorZ_SpaceJunkUpdate, gCubeHitbox200, 0.0f, 0, 0, 39, 0, 1.0f, 0 },
- /* OBJ_ACTOR_275 */ {(void*) Solar_Doodad_Draw, 1, (ObjectFunc) Solar_Doodad_Update, gCubeHitbox100, 200.0f, 0, 0, 39, 0, 1.0f, 1 },
- /* OBJ_ACTOR_276 */ {(void*) Solar_Doodad_Draw, 1, (ObjectFunc) Solar_Doodad_Update, gCubeHitbox100, 200.0f, 0, 0, 39, 0, 1.0f, 1 },
- /* OBJ_ACTOR_277 */ {(void*) Solar_Doodad_Draw, 1, (ObjectFunc) Solar_Doodad_Update, gCubeHitbox200, 200.0f, 0, 0, 39, 0, 1.0f, 1 },
- /* OBJ_ACTOR_278 */ {(void*) NULL, 1, (ObjectFunc) Solar_Actor278_Update, gNoHitbox, 200.0f, 0, 0, 0, 0, 0.0f, 1 },
- /* OBJ_ACTOR_279 */ {(void*) NULL, 1, (ObjectFunc) Solar_Actor279_Update, gNoHitbox, 1000.0f, 0, 0, 0, 0, 0.0f, 1 },
- /* OBJ_ACTOR_280 */ {(void*) D_VE1_900DD20, 0, (ObjectFunc) Venom1_Actor280_Update, D_VE1_601B7F8, 1000.0f, 0, 0, 40, 1, 0.0f, 0 },
- /* OBJ_ACTOR_281 */ {(void*) Venom1_Actor281_Draw, 1, (ObjectFunc) Venom1_Doodad_Update, D_VE1_601B830, 1000.0f, 0, 0, 40, 1, 0.0f, 0 },
- /* OBJ_ACTOR_282 */ {(void*) D_VE1_901DA50, 0, (ObjectFunc) Venom1_Doodad_Update, D_VE1_601B868, 1000.0f, 0, 0, 40, 1, 0.0f, 0 },
- /* OBJ_ACTOR_283 */ {(void*) D_VE1_9023AD0, 0, (ObjectFunc) Venom1_Actor283_Update, D_VE1_601B8A0, 1000.0f, 0, 0, 40, 1, 0.0f, 0 },
- /* OBJ_ACTOR_284 */ {(void*) Venom1_Actor284_Draw, 1, (ObjectFunc) Venom1_Actor284_Update, D_VE1_601B8D8, 1000.0f, 0, 0, 40, 0, 0.0f, 0 },
- /* OBJ_ACTOR_285 */ {(void*) Andross_Actor285_Draw, 1, (ObjectFunc) Andross_Actor285_Update, gCubeHitbox100, 1000.0f, 0, 0, 20, 0, 1.0f, 1 },
- /* OBJ_ACTOR_286 */ {(void*) Andross_Actor286_Draw, 1, (ObjectFunc) Andross_Actor286_Update, gCubeHitbox100, 1000.0f, 0, 0, 20, 0, 0.0f, 0 },
- /* OBJ_ACTOR_287 */ {(void*) NULL, 1, (ObjectFunc) Andross_Actor287_Update, gNoHitbox, 1000.0f, 0, 0, 40, 1, 0.0f, 0 },
- /* OBJ_ACTOR_288 */ {(void*) NULL, 1, (ObjectFunc) Andross_Actor288_Update, gNoHitbox, 1000.0f, 0, 0, 20, 1, 0.0f, 0 },
- /* OBJ_ACTOR_289 */ {(void*) Actor289_Draw, 1, (ObjectFunc) Andross_Actor289_Update, gNoHitbox, 1000.0f, 0, 0, 20, 1, 0.0f, 0 },
- /* OBJ_ACTOR_290 */ {(void*) NULL, 1, (ObjectFunc) Andross_Actor290_Update, gNoHitbox, 1000.0f, 0, 0, 20, 0, 0.0f, 0 },
+ /* OBJ_ACTOR_SO_ROCK_1 */ {(void*) Solar_SoRock_Draw, 1, (ObjectFunc) Solar_SoRock_Update, gCubeHitbox100, 200.0f, 0, 0, 39, 0, 1.0f, 1 },
+ /* OBJ_ACTOR_SO_ROCK_2 */ {(void*) Solar_SoRock_Draw, 1, (ObjectFunc) Solar_SoRock_Update, gCubeHitbox100, 200.0f, 0, 0, 39, 0, 1.0f, 1 },
+ /* OBJ_ACTOR_SO_ROCK_3 */ {(void*) Solar_SoRock_Draw, 1, (ObjectFunc) Solar_SoRock_Update, gCubeHitbox200, 200.0f, 0, 0, 39, 0, 1.0f, 1 },
+ /* OBJ_ACTOR_SO_WAVE */ {(void*) NULL, 1, (ObjectFunc) Solar_SoWave_Update, gNoHitbox, 200.0f, 0, 0, 0, 0, 0.0f, 1 },
+ /* OBJ_ACTOR_SO_PROMINENCE */ {(void*) NULL, 1, (ObjectFunc) Solar_SoProminence_Update, gNoHitbox, 1000.0f, 0, 0, 0, 0, 0.0f, 1 },
+ /* OBJ_ACTOR_VE1_PILLAR_1 */ {(void*) aVe1Pillar1DL, 0, (ObjectFunc) Venom1_Ve1Pillar1_Update, aVe1Pillar1Hitbox, 1000.0f, 0, 0, 40, 1, 0.0f, 0 },
+ /* OBJ_ACTOR_VE1_PILLAR_2 */ {(void*) Venom1_Ve1Pillar2_Draw, 1, (ObjectFunc) Venom1_Pillar2_3_Update, aVe1Pillar2Hitbox, 1000.0f, 0, 0, 40, 1, 0.0f, 0 },
+ /* OBJ_ACTOR_VE1_PILLAR_3 */ {(void*) aVe1Pillar3DL, 0, (ObjectFunc) Venom1_Pillar2_3_Update, aVe1Pillar3Hitbox, 1000.0f, 0, 0, 40, 1, 0.0f, 0 },
+ /* OBJ_ACTOR_VE1_PILLAR_4 */ {(void*) aVe1Pillar4DL, 0, (ObjectFunc) Venom1_Ve1Pillar4_Update, aVe1Pillar4Hitbox, 1000.0f, 0, 0, 40, 1, 0.0f, 0 },
+ /* OBJ_ACTOR_VE1_MONKEY_STATUE */ {(void*) Venom1_Ve1MonkeyStatue_Draw, 1, (ObjectFunc) Venom1_Ve1MonkeyStatue_Update, aVe1MonkeyStatueHitbox, 1000.0f, 0, 0, 40, 0, 0.0f, 0 },
+ /* OBJ_ACTOR_AND_LASER_EMITTER */ {(void*) Andross_AndLaserEmitter_Draw, 1, (ObjectFunc) Andross_AndLaserEmitter_Update, gCubeHitbox100, 1000.0f, 0, 0, 20, 0, 1.0f, 1 },
+ /* OBJ_ACTOR_AND_BRAIN_WASTE */ {(void*) Andross_AndBrainWaste_Draw, 1, (ObjectFunc) Andross_AndBrainWaste_Update, gCubeHitbox100, 1000.0f, 0, 0, 20, 0, 0.0f, 0 },
+ /* OBJ_ACTOR_AND_EXPLOSION */ {(void*) NULL, 1, (ObjectFunc) Andross_AndExplosion_Update, gNoHitbox, 1000.0f, 0, 0, 40, 1, 0.0f, 0 },
+ /* OBJ_ACTOR_AND_RADIO */ {(void*) NULL, 1, (ObjectFunc) Andross_AndRadio_Update, gNoHitbox, 1000.0f, 0, 0, 20, 1, 0.0f, 0 },
+ /* OBJ_ACTOR_AND_JAMES_TRIGGER */ {(void*) AndJamesTrigger_Draw, 1, (ObjectFunc) Andross_AndJamesTrigger_Update, gNoHitbox, 1000.0f, 0, 0, 20, 1, 0.0f, 0 },
+ /* OBJ_ACTOR_AND_BOSS_TIMER_SET */ {(void*) NULL, 1, (ObjectFunc) Andross_AndBossTimer_Update, gNoHitbox, 1000.0f, 0, 0, 20, 0, 0.0f, 0 },
/* OBJ_ACTOR_SUPPLIES */ {(void*) ActorSupplies_Draw, 1, (ObjectFunc) ActorSupplies_Update, gCubeHitbox150, 1000.0f, 0, 0, 0, 0, 1.0f, 0 },
- /* OBJ_BOSS_CO_GRANGA */ {(void*) Corneria_Granga_Draw, 2, (ObjectFunc) Corneria_Granga_Update, aCoGrangaHitbox, 20000.0f, 0, 0, 40, 1, 0.0f, 10 },
- /* OBJ_BOSS_CO_CARRIER */ {(void*) Corneria_Carrier_Draw, 1, (ObjectFunc) Corneria_Carrier_Update, aCoCarrierHitbox, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
- /* OBJ_BOSS_294 */ {(void*) Corneria_Boss294_Draw, 1, (ObjectFunc) Corneria_Boss294_Update, D_CO_603E714, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
- /* OBJ_BOSS_295 */ {(void*) Corneria_Boss295_Draw, 1, (ObjectFunc) Corneria_Boss295_Update, D_CO_603E748, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
- /* OBJ_BOSS_296 */ {(void*) Corneria_Boss296_Draw, 1, (ObjectFunc) Corneria_Boss296_Update, D_CO_603E7C4, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
- /* OBJ_BOSS_297 */ {(void*) Meteo_Boss297_Draw, 1, (ObjectFunc) Meteo_Boss297_Update, D_ME_602F75C, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
- /* OBJ_BOSS_298 */ {(void*) Meteo_Boss298_Draw, 1, (ObjectFunc) Meteo_Boss298_Update, 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_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_SX_SPYBORG */ {(void*) SectorX_Boss_Draw, 2, (ObjectFunc) SectorX_Boss_Update, D_SX_6032550, 20000.0f, 0, 0, 20, 0, 0.0f, 10 },
- /* OBJ_BOSS_304 */ {(void*) SectorX_Boss304_Draw, 2, (ObjectFunc) SectorX_Boss304_Update, D_SX_6032488, 1000.0f, 0, 0, 20, 0, 0.0f, 10 },
- /* OBJ_BOSS_305 */ {(void*) SectorX_Boss305_Draw, 2, (ObjectFunc) SectorX_Boss305_Update, D_SX_60324EC, 1000.0f, 0, 0, 20, 0, 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_Boss311_Draw, 2, (ObjectFunc) Bolse_Boss311_Update, D_BO_6011C80, 0.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_GREAT_FOX */ {(void*) SectorZ_GreatFoxDraw, 1, (ObjectFunc) SectorZ_GreatFoxUpdate, 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_Boss320_Draw, 2, (ObjectFunc) Andross_Boss320_Update, D_ANDROSS_C038DC0, 10000.0f, 0, 0, 40, 0, 0.0f, 10 },
- /* OBJ_BOSS_321 */ {(void*) Andross_Boss321_Draw, 1, (ObjectFunc) Andross_Boss321_Update, D_ANDROSS_C038F24, 10000.0f, 0, 0, 40, 0, 0.0f, 10 },
+ /* OBJ_BOSS_CO_GRANGA */ {(void*) Corneria_CoGranga_Draw, 2, (ObjectFunc) Corneria_CoGranga_Update, aCoGrangaHitbox, 20000.0f, 0, 0, 40, 1, 0.0f, 10 },
+ /* OBJ_BOSS_CO_CARRIER */ {(void*) Corneria_CoCarrier_Draw, 1, (ObjectFunc) Corneria_CoCarrier_Update, aCoCarrierHitbox, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
+ /* OBJ_BOSS_CO_CARRIER_LEFT */ {(void*) Corneria_CoCarrierLeft_Draw, 1, (ObjectFunc) Corneria_CarrierLeft_Update, aCoCarrierLeftHitbox, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
+ /* OBJ_BOSS_CO_CARRIER_UPPER */ {(void*) Corneria_CoCarrierUpper_Draw, 1, (ObjectFunc) Corneria_CarrierUpper_Update, aCoCarrierUpperHitbox, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
+ /* OBJ_BOSS_CO_CARRIER_BOTTOM */ {(void*) Corneria_CoCarrierBottom_Draw, 1, (ObjectFunc) Corneria_CarrierBottom_Update, aCoCarrierBottomHitbox, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
+ /* OBJ_BOSS_ME_CRUSHER */ {(void*) Meteo_MeCrusher_Draw, 1, (ObjectFunc) Meteo_MeCrusher_Update, aMeCrusherHitbox, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
+ /* OBJ_BOSS_ME_CRUSHER_SHIELD */ {(void*) Meteo_MeCrusherShield_Draw, 1, (ObjectFunc) Meteo_MeCrusherShield_Update, aMeCrusherShieldHitbox, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
+ /* OBJ_BOSS_UNK_299 */ {(void*) Boss299_Draw, 2, (ObjectFunc) Boss299_Update, gNoHitbox, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
+ /* OBJ_BOSS_UNK_300 */ {(void*) Boss300_Draw, 1, (ObjectFunc) Boss300_Update, gNoHitbox, 20000.0f, 0, 0, 40, 0, 0.0f, 10 },
+ /* OBJ_BOSS_AQ_UNK_301 */ {(void*) Aquas_Boss301_Draw, 1, (ObjectFunc) Aquas_Boss301_Update, aBoss301Hitbox, 0.0f, 0, 0, 40, 0, 0.0f, 10 },
+ /* OBJ_BOSS_A6_GORGON */ {(void*) Area6_A6Gorgon_Draw, 1, (ObjectFunc) Area6_A6Gorgon_Update, aA6GorgonHitbox, 2000.0f, 0, 0, 40, 0, 0.0f, 10 },
+ /* OBJ_BOSS_SX_SPYBORG */ {(void*) SectorX_SxSpyborg_Draw, 2, (ObjectFunc) SectorX_SxSpyborg_Update, aSxSpyborgHitbox, 20000.0f, 0, 0, 20, 0, 0.0f, 10 },
+ /* OBJ_BOSS_SX_SPYBORG_LEFT_ARM */ {(void*) SectorX_SxSpyborgLeftArm_Draw, 2, (ObjectFunc) SectorX_SxSpyborgLeftArm_Update, aSxSpyborgLeftArmHitbox, 1000.0f, 0, 0, 20, 0, 0.0f, 10 },
+ /* OBJ_BOSS_SX_SPYBORG_RIGHT_ARM */ {(void*) SectorX_SxSpyborgRightArm_Draw, 2, (ObjectFunc) SectorX_SxSpyborgRightArm_Update, aSxSpyborgRightArmHitbox, 1000.0f, 0, 0, 20, 0, 0.0f, 10 },
+ /* OBJ_BOSS_TI_GORAS */ {(void*) Titania_TiGoras_Draw, 1, (ObjectFunc) Titania_TiGoras_Update, aTiGorasHitbox, 1000.0f, 0, 0, 40, 1, 0.0f, 10 },
+ /* OBJ_BOSS_ZO_SARUMARINE */ {(void*) Zoness_ZoSarumarine_Draw, 2, (ObjectFunc) Zoness_ZoSarumarine_Update, aZoSarumarineHitbox, 1000.0f, 0, 0, 40, 0, 1.0f, 10 },
+ /* OBJ_BOSS_FO_BASE */ {(void*) HUD_FoBase_Draw, 1, (ObjectFunc) HUD_FoBase_Update, aFoBaseHitbox, 0.0f, 0, 0, 40, 1, 0.0f, 10 },
+ /* OBJ_BOSS_BO_BASE */ {(void*) BoBase_Draw, 1, (ObjectFunc) BoBase_Update, gNoHitbox, 0.0f, 0, 0, 40, 1, 0.0f, 10 },
+ /* OBJ_BOSS_BO_BASE_SHIELD */ {(void*) BoBaseShield_Draw, 1, (ObjectFunc) BoBaseShield_Update, gNoHitbox, 0.0f, 0, 0, 40, 1, 0.0f, 10 },
+ /* OBJ_BOSS_BO_BASE_CORE */ {(void*) Bolse_BoBaseCore_Draw, 2, (ObjectFunc) Bolse_BoBaseCore_Update, aBoBaseCoreHitbox, 0.0f, 0, 0, 40, 1, 0.0f, 10 },
+ /* OBJ_BOSS_VE2_BASE */ {(void*) Venom2_Ve2Base_Draw, 2, (ObjectFunc) Venom2_Ve2Base_Update, aVe2BaseHitbox, 0.0f, 0, 0, 40, 1, 0.0f, 10 },
+ /* OBJ_BOSS_SZ_GREAT_FOX */ {(void*) SectorZ_SzGreatFox_Draw, 1, (ObjectFunc) SectorZ_SzGreatFox_Update, aSzGreatFoxHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 10 },
+ /* OBJ_BOSS_SY_SHOGUN */ {(void*) SectorY_SyShogun_Draw, 2, (ObjectFunc) SectorY_SyShogun_Update, gNoHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 10 },
+ /* OBJ_BOSS_SO_VULKAIN */ {(void*) Solar_SoVulkain_Draw, 2, (ObjectFunc) Solar_SoVulkain_Update, gNoHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 10 },
+ /* OBJ_BOSS_KA_SAUCERER */ {(void*) Katina_KaSaucerer_Draw, 1, (ObjectFunc) Katina_KaSaucerer_Update, aKaSaucererHitbox, 0.0f, 0, 0, 40, 0, 0.0f, 10 },
+ /* OBJ_BOSS_KA_FLBASE */ {(void*) Katina_KaFrontlineBase_Draw, 1, (ObjectFunc) Katina_KaFrontlineBase_Update, aKaFrontlineBaseHitbox, 0.0f, 0, 0, 40, 1, 0.0f, 10 },
+ /* OBJ_BOSS_AQ_BACOON */ {(void*) Aquas_AqBacoon_Draw, 2, (ObjectFunc) Aquas_AqBacoon_Update, aAqBacoonHitbox, 10000.0f, 0, 0, 40, 0, 0.0f, 10 },
+ /* OBJ_BOSS_VE1_GOLEMECH */ {(void*) Venom1_Ve1Golemech_Draw, 1, (ObjectFunc) Venom1_Ve1Golemech_Update, aVe1GolemechHitbox, 3000.0f, 0, 0, 40, 1, 0.0f, 10 },
+ /* OBJ_BOSS_AND_ANDROSS */ {(void*) Andross_AndAndross_Draw, 2, (ObjectFunc) Andross_AndAndross_Update, aAndAndrossHitbox, 10000.0f, 0, 0, 40, 0, 0.0f, 10 },
+ /* OBJ_BOSS_AND_BRAIN */ {(void*) Andross_AndBrain_Draw, 1, (ObjectFunc) Andross_AndBrain_Update, aAndBrainHitbox, 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 },
/* OBJ_ITEM_CHECKPOINT */ {(void*) ItemCheckpoint_Draw, 1, (ObjectFunc) ItemCheckpoint_Update, gItemCheckpointHitbox, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_SILVER_RING */ {(void*) ItemSilverRing_Draw, 1, (ObjectFunc) ItemSupplyRing_Update, gItemSupplyRingHitbox, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
@@ -432,13 +432,13 @@ ObjectInfo gObjectInfo[] = {
/* OBJ_ITEM_GOLD_RING */ {(void*) ItemGoldRing_Draw, 1, (ObjectFunc) ItemGoldRing_Update, gItemSupplyRingHitbox, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_WING_REPAIR */ {(void*) aArwingItemLasersDL, 0, (ObjectFunc) ItemWingRepair_Update, gItemLasersHitbox, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
/* OBJ_ITEM_TRAINING_RING */ {(void*) gItemTrainingRingDL, 0, (ObjectFunc) Training_ItemRing_Update, D_TR_6009CFC, 700.0f, 0, 0, 0, 0, 0.0f, 0 },
- /* OBJ_EFFECT_FIRE_SMOKE */ {(void*) Effect_FireSmoke_Draw, 1, (ObjectFunc) Effect_Effect339_Update, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
- /* OBJ_EFFECT_340 */ {(void*) Effect_FireSmoke_Draw, 1, (ObjectFunc) Effect_Effect340_Update, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
- /* OBJ_EFFECT_341 */ {(void*) Effect_FireSmoke_Draw, 1, (ObjectFunc) Effect_Effect341_Update, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
- /* OBJ_EFFECT_342 */ {(void*) Effect_Effect342_Draw, 1, (ObjectFunc) Effect_Effect342_Update, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
- /* OBJ_EFFECT_343 */ {(void*) Effect_Effect343_Draw, 1, (ObjectFunc) Effect_Effect343_Update, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
- /* OBJ_EFFECT_344 */ {(void*) Effect_Effect344_Draw, 1, (ObjectFunc) Effect_Effect344_Update, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 },
- /* OBJ_EFFECT_345 */ {(void*) Effect_Effect345_Draw, 1, (ObjectFunc) Effect_Effect345_Update, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 },
+ /* OBJ_EFFECT_FIRE_SMOKE_1 */ {(void*) Effect_FireSmoke_Draw, 1, (ObjectFunc) Effect_Effect339_Update, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
+ /* OBJ_EFFECT_FIRE_SMOKE_2 */ {(void*) Effect_FireSmoke_Draw, 1, (ObjectFunc) Effect_Effect340_Update, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
+ /* OBJ_EFFECT_FIRE_SMOKE_3 */ {(void*) Effect_FireSmoke_Draw, 1, (ObjectFunc) Effect_Effect341_Update, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
+ /* OBJ_EFFECT_SMOKE_1 */ {(void*) Effect_Effect342_Draw, 1, (ObjectFunc) Effect_Effect342_Update, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
+ /* OBJ_EFFECT_SMOKE_2 */ {(void*) Effect_Effect343_Draw, 1, (ObjectFunc) Effect_Effect343_Update, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
+ /* OBJ_EFFECT_EXPLOSION_MARK_1 */ {(void*) Effect_Effect344_Draw, 1, (ObjectFunc) Effect_Effect344_Update, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 },
+ /* OBJ_EFFECT_LASER_MARK_1 */ {(void*) Effect_Effect345_Draw, 1, (ObjectFunc) Effect_Effect345_Update, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_346 */ {(void*) Effect_Effect346_Draw, 1, (ObjectFunc) Effect_Effect346_Update, NULL, -200.0f, 1, 0, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_347 */ {(void*) Effect_Effect347_Draw, 1, (ObjectFunc) Effect_Effect347_Update, NULL, 100.0f, 1, 0, 40, 0, 0.0f, 0 },
/* OBJ_EFFECT_348 */ {(void*) Effect_Effect348_Draw, 1, (ObjectFunc) Effect_Effect348_Update, NULL, -200.0f, -1, 1, 0, 0, 0.0f, 0 },
@@ -451,7 +451,7 @@ ObjectInfo gObjectInfo[] = {
/* OBJ_EFFECT_355 */ {(void*) Effect_Effect355_Draw, 1, (ObjectFunc) Effect_Effect355_Update, NULL, 100.0f, 1, 0, 20, 1, 0.0f, 0 },
/* OBJ_EFFECT_356 */ {(void*) Effect_Effect356_Draw, 1, (ObjectFunc) Effect_Effect356_Update, NULL, 100.0f, 1, 0, 20, 0, 0.0f, 0 },
/* OBJ_EFFECT_357 */ {(void*) Effect_Effect357_Draw, 1, (ObjectFunc) Effect_Effect357_Update, NULL, 100.0f, 0, 1, 0, 0, 0.0f, 0 },
- /* OBJ_EFFECT_358 */ {(void*) Katina_LaserEnergyParticlesDraw, 1, (ObjectFunc) Katina_LaserEnergyParticlesUpdate, NULL, 100.0f, 1, 1, 0, 0, 0.0f, 0 },
+ /* OBJ_EFFECT_KA_ENERGY_PARTICLES */ {(void*) Katina_LaserEnergyParticlesDraw, 1, (ObjectFunc) Katina_LaserEnergyParticlesUpdate, NULL, 100.0f, 1, 1, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_359 */ {(void*) Effect_Effect359_Draw, 1, (ObjectFunc) Effect_Effect359_Update, NULL, -100.0f, 1, 2, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_360 */ {(void*) Effect_Effect360_361_362_Draw, 1, (ObjectFunc) Effect_Effect360_Update, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_361 */ {(void*) Effect_Effect360_361_362_Draw, 1, (ObjectFunc) Effect_Effect361_Update, NULL, -200.0f, 1, 2, 0, 0, 0.0f, 0 },
@@ -467,10 +467,10 @@ ObjectInfo gObjectInfo[] = {
/* OBJ_EFFECT_371 */ {(void*) Meteo_Effect371_Draw, 1, (ObjectFunc) Meteo_Effect371_Update, NULL, 100.0f, 0, 1, 40, 0, 0.0f, 0 },
/* OBJ_EFFECT_372 */ {(void*) Effect_Effect372_Draw, 1, (ObjectFunc) Effect_Effect372_Update, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_TIMED_SFX */ {(void*) NULL, 1, (ObjectFunc) Effect_TimedSfx_Update, NULL, 500.0f, 0, 1, 0, 0, 0.0f, 0 },
- /* OBJ_EFFECT_374 */ {(void*) Macbeth_Effect374_Draw, 1, (ObjectFunc) Effect_Effect374_Update, NULL, 100.0f, 0, 1, 40, 0, 0.0f, 0 },
- /* OBJ_EFFECT_375 */ {(void*) Macbeth_Effect375_Draw, 1, (ObjectFunc) Effect_Effect375_Update, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 },
- /* OBJ_EFFECT_376 */ {(void*) Macbeth_Effect376_Draw, 1, (ObjectFunc) Effect_Effect376_Update, NULL, -200.0f, 1, 0, 0, 0, 0.0f, 0 },
- /* OBJ_EFFECT_377 */ {(void*) Macbeth_Effect377_Draw, 1, (ObjectFunc) Effect_Effect377_Update, NULL, 100.0f, 1, 0, 20, 0, 0.0f, 0 },
+ /* OBJ_EFFECT_374 */ {(void*) Effect_Effect374_Draw, 1, (ObjectFunc) Effect_Effect374_Update, NULL, 100.0f, 0, 1, 40, 0, 0.0f, 0 },
+ /* OBJ_EFFECT_375 */ {(void*) Effect_Effect375_Draw, 1, (ObjectFunc) Effect_Effect375_Update, NULL, -200.0f, 0, 1, 0, 0, 0.0f, 0 },
+ /* OBJ_EFFECT_376 */ {(void*) Effect_Effect376_Draw, 1, (ObjectFunc) Effect_Effect376_Update, NULL, -200.0f, 1, 0, 0, 0, 0.0f, 0 },
+ /* OBJ_EFFECT_377 */ {(void*) Effect_Effect377_Draw, 1, (ObjectFunc) Effect_Effect377_Update, NULL, 100.0f, 1, 0, 20, 0, 0.0f, 0 },
/* OBJ_EFFECT_378 */ {(void*) Macbeth_Effect378_Draw, 1, (ObjectFunc) Macbeth_Effect378_Update, NULL, 100.0f, 0, 0, 20, 0, 0.0f, 0 },
/* OBJ_EFFECT_379 */ {(void*) Macbeth_Effect379_Draw, 1, (ObjectFunc) Macbeth_Effect379_Update, NULL, 100.0f, 1, 1, 0, 0, 0.0f, 0 },
/* OBJ_EFFECT_380 */ {(void*) Macbeth_Effect380_Draw, 1, (ObjectFunc) Macbeth_Effect380_Update, NULL, 100.0f, 0, 0, 20, 0, 0.0f, 0 },
diff --git a/src/engine/fox_edisplay.c b/src/engine/fox_edisplay.c
index d53269c3..6c2f8c03 100644
--- a/src/engine/fox_edisplay.c
+++ b/src/engine/fox_edisplay.c
@@ -59,13 +59,13 @@ void Sprite168_Draw(Sprite168* this) {
void Object_dummy_800598DC(s32 arg0) {
}
-void Actor201_Draw(Actor201* this) {
+void MeteoBall_Draw(MeteoBall* this) {
RCP_SetupDL_60(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
gSPDisplayList(gMasterDisp++, D_MA_6025B50);
RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
}
-void Actor202_PostLimbDraw(s32 limbIndex, Vec3f* rot, void* index) {
+void ActorHopBot_PostLimbDraw(s32 limbIndex, Vec3f* rot, void* index) {
Vec3f sp24;
Vec3f sp18;
@@ -88,17 +88,17 @@ f32 D_edisplay_800CFA2C[] = {
1.0f, 1.0f, 0.95f, 0.9f, 0.85f, 0.8f, 0.75f, 0.7f, 0.65f, 0.6f,
};
-void Actor202_Draw(Actor202* this) {
+void ActorHopBot_Draw(ActorHopBot* this) {
Vec3f sp30[30];
f32 temp = D_edisplay_800CF9B0[this->animFrame] - 114.0f;
Matrix_Translate(gGfxMatrix, 0.f, -temp, 0.0f, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp);
Animation_GetFrameData(&D_ME_601E8C4, this->animFrame, sp30);
- Animation_DrawSkeleton(1, D_ME_601E9D0, sp30, NULL, Actor202_PostLimbDraw, &this->index, &gIdentityMatrix);
+ Animation_DrawSkeleton(1, D_ME_601E9D0, sp30, NULL, ActorHopBot_PostLimbDraw, &this->index, &gIdentityMatrix);
}
-void MeteoTunnel_Draw(MeteoTunnel* this) {
+void MeteoTunnel_Draw(MeTunnel* this) {
gSPDisplayList(gMasterDisp++, D_ME_601AE40);
}
@@ -118,7 +118,7 @@ void CoIBeam_Draw(CoIBeam* this) {
gSPDisplayList(gMasterDisp++, D_CO_6023AC0);
}
-void Actor196_Draw(Actor196* this) {
+void ActorMoleMissile_Draw(ActorMoleMissile* this) {
if (this->animFrame != 0) {
gSPDisplayList(gMasterDisp++, D_CO_6032BC0);
}
@@ -231,7 +231,7 @@ Gfx* D_edisplay_800CFC0C[] = {
D_AQ_60294A0, D_AQ_60291B0, D_AQ_60287F0, D_AQ_6029330, D_AQ_6029240, D_AQ_6029790, D_AQ_6029900,
D_AQ_6028F50, D_AQ_60290C0, D_AQ_6029530, D_AQ_60296A0, D_AQ_6028A80, D_AQ_6028910,
};
-Gfx* D_edisplay_800CFC40[] = { D_AQ_6014FD0, D_AQ_6014FD0, D_AQ_6014FD0, D_AQ_6014FD0 };
+Gfx* D_edisplay_800CFC40[] = { aAqBoulderDL, aAqBoulderDL, aAqBoulderDL, aAqBoulderDL };
Gfx* D_edisplay_800CFC50[] = { D_AQ_601EDE0, D_AQ_601F2F0, D_AQ_601F830, D_AQ_601FD70, D_AQ_601D110 };
Gfx* D_edisplay_800CFC64[] = { D_AQ_6023940, D_AQ_6023D70, D_AQ_60249C0, D_AQ_6023EB0, D_AQ_60249C0, D_AQ_6023B80 };
Gfx* D_edisplay_800CFC7C[] = { D_ZO_601B570, D_ZO_601B710, D_ZO_60209B0, D_ZO_6020B70, D_ZO_6020D50,
@@ -448,7 +448,7 @@ void Actor_DrawEngineAndContrails(Actor* actor) {
Matrix_RotateY(gGfxMatrix, -gPlayer[gPlayerNum].camYaw, MTXF_APPLY);
Matrix_RotateX(gGfxMatrix, gPlayer[gPlayerNum].camPitch, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp);
- Play_DrawEngineGlow(gLevelType);
+ Display_DrawEngineGlow(gLevelType);
Matrix_Pop(&gGfxMatrix);
}
sp5C = actor->fwork[21];
@@ -502,16 +502,17 @@ void Actor_DrawEngineGlow(Actor* actor, s32 levelType) {
Matrix_RotateY(gGfxMatrix, -actor->obj.rot.y * M_DTOR, MTXF_APPLY);
Matrix_RotateY(gGfxMatrix, -gPlayer[gPlayerNum].camYaw, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp);
- Play_DrawEngineGlow(levelType);
+ Display_DrawEngineGlow(levelType);
Matrix_Pop(&gGfxMatrix);
}
}
-void func_edisplay_8005B388(Actor* actor) {
+void func_edisplay_8005B388(Actor199* actor) {
Vec3f sp3C = { 0.0f, 0.0f, 0.0f };
Vec3f sp30;
Matrix_MultVec3f(gGfxMatrix, &sp3C, &sp30);
+
if ((((fabsf(sp30.z) < 3000.0f) && (fabsf(sp30.x) < 3000.0f) && !gBossActive) ||
(gPlayer[0].state_1C8 == PLAYERSTATE_1C8_STANDBY) || (gCurrentLevel == LEVEL_VENOM_ANDROSS) ||
(gCurrentLevel == LEVEL_VENOM_2) || (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_LEVEL_COMPLETE)) &&
@@ -545,7 +546,7 @@ void func_edisplay_8005B388(Actor* actor) {
D_edisplay_80161630.unk_04 = D_edisplay_80161630.unk_08 = D_edisplay_80161630.unk_0C =
D_edisplay_80161630.unk_10 = 0.0f;
}
- func_display_80053658(&D_edisplay_80161630);
+ Display_ArwingWings(&D_edisplay_80161630);
} else if (gLevelType == LEVELTYPE_PLANET) {
gSPDisplayList(gMasterDisp++, D_ENMY_PLANET_40018A0);
} else if (gPlayer[0].wingPosition == 2) {
@@ -556,25 +557,25 @@ void func_edisplay_8005B388(Actor* actor) {
Actor_DrawEngineAndContrails(actor);
}
-void Actor180_Draw(Actor* actor) {
+void MeMolarRock_Draw(Actor* actor) {
Matrix_Scale(gGfxMatrix, 1.0f, 1.0f, 1.0f, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp);
gSPDisplayList(gMasterDisp++, D_ME_6024B60);
}
-void Actor182_Draw(Actor* actor) {
+void MeMeteor2_Draw(Actor* actor) {
RCP_SetupDL_29(actor->unk_046, gFogGreen, gFogBlue, gFogAlpha, actor->unk_048, gFogFar);
Matrix_Scale(gGfxMatrix, 0.5f, 0.5f, 0.5f, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp);
- gSPDisplayList(gMasterDisp++, D_ME_6018C00);
+ gSPDisplayList(gMasterDisp++, aMeMeteor1DL);
}
-void Actor186_Draw(Actor* actor) {
+void MeLaserCannon1_Draw(Actor* actor) {
RCP_SetupDL_29(actor->unk_046, gFogGreen, gFogBlue, gFogAlpha, actor->unk_048, gFogFar);
gSPDisplayList(gMasterDisp++, D_ME_6022920);
}
-void Actor190_191_Draw(Actor* actor) {
+void ActorMissileSeek_Draw(Actor* actor) {
f32 scale;
switch (actor->eventType) {
@@ -599,13 +600,13 @@ void Actor190_191_Draw(Actor* actor) {
Actor_DrawEngineGlow(actor, 2);
}
-void Actor192_Draw(Actor* actor) {
+void ActorSkibot_Draw(Actor* actor) {
Matrix_Translate(gGfxMatrix, 0.0f, -124.0f, 0.0f, MTXF_APPLY);
Animation_GetFrameData(&D_CO_6029528, actor->animFrame, actor->vwork);
Animation_DrawSkeleton(1, D_CO_6029674, actor->vwork, NULL, NULL, actor, &gIdentityMatrix);
}
-void Actor193_Draw(Actor* actor) {
+void ActorRadar_Draw(Actor* actor) {
if (actor->timer_0BC != 0) {
RCP_SetupDL_27();
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 0, 0, 255);
@@ -670,7 +671,7 @@ void Object_SetShadowDL(ObjectId objId, s32 index) {
case OBJ_BOSS_CO_GRANGA:
gSPDisplayList(gMasterDisp++, D_CO_6034B90);
break;
- case OBJ_BOSS_KA:
+ case OBJ_BOSS_KA_SAUCERER:
if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_STANDBY) {
RCP_SetupDL(&gMasterDisp, SETUPDL_64);
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 0, 0, 0, 200);
@@ -680,9 +681,9 @@ void Object_SetShadowDL(ObjectId objId, s32 index) {
gSPDisplayList(gMasterDisp++, D_102A8A0);
break;
case OBJ_BOSS_CO_CARRIER:
- case OBJ_BOSS_294:
- case OBJ_BOSS_295:
- case OBJ_BOSS_296:
+ case OBJ_BOSS_CO_CARRIER_LEFT:
+ case OBJ_BOSS_CO_CARRIER_UPPER:
+ case OBJ_BOSS_CO_CARRIER_BOTTOM:
COS_DEG(gBosses[index].obj.rot.z);
if (gGroundSurface == SURFACE_WATER) {
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 90);
@@ -693,22 +694,22 @@ void Object_SetShadowDL(ObjectId objId, s32 index) {
case OBJ_BOSS_CO_CARRIER:
gSPDisplayList(gMasterDisp++, D_CO_6036840);
break;
- case OBJ_BOSS_294:
+ case OBJ_BOSS_CO_CARRIER_LEFT:
gSPDisplayList(gMasterDisp++, D_CO_6036CD0);
break;
- case OBJ_BOSS_295:
- case OBJ_BOSS_296:
+ case OBJ_BOSS_CO_CARRIER_UPPER:
+ case OBJ_BOSS_CO_CARRIER_BOTTOM:
gSPDisplayList(gMasterDisp++, D_CO_60363B0);
break;
}
break;
- case OBJ_ACTOR_192:
+ case OBJ_ACTOR_CO_SKIBOT:
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 150);
Matrix_Scale(gGfxMatrix, 0.4f, 0.4f, gActors[index].scale, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp);
gSPDisplayList(gMasterDisp++, D_CO_6034B90);
break;
- case OBJ_ACTOR_230:
+ case OBJ_ACTOR_TI_BOULDER:
RCP_SetupDL_48();
RCP_SetupDL(&gMasterDisp, SETUPDL_69);
gSPSetGeometryMode(gMasterDisp++, G_CULL_BACK);
@@ -721,7 +722,7 @@ void Object_SetShadowDL(ObjectId objId, s32 index) {
Matrix_SetGfxMtx(&gMasterDisp);
gSPDisplayList(gMasterDisp++, D_1024AC0);
break;
- case OBJ_ACTOR_229:
+ case OBJ_ACTOR_TI_DESERT_CRAWLER:
RCP_SetupDL(&gMasterDisp, SETUPDL_68);
gSPSetGeometryMode(gMasterDisp++, G_CULL_BACK);
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 0, 0, 0, 255);
@@ -735,7 +736,7 @@ void Object_SetShadowDL(ObjectId objId, s32 index) {
Matrix_SetGfxMtx(&gMasterDisp);
gSPDisplayList(gMasterDisp++, D_1024AC0);
break;
- case OBJ_ACTOR_231:
+ case OBJ_ACTOR_TI_BOMB:
RCP_SetupDL(&gMasterDisp, SETUPDL_69);
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 0, 0, 0, 255);
gDPSetEnvColor(gMasterDisp++, 0, 0, 0, 0);
@@ -747,7 +748,7 @@ void Object_SetShadowDL(ObjectId objId, s32 index) {
Matrix_SetGfxMtx(&gMasterDisp);
gSPDisplayList(gMasterDisp++, D_1024AC0);
break;
- case OBJ_ACTOR_215:
+ case OBJ_ACTOR_MA_BOULDER:
RCP_SetupDL_48();
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 0, 0, 0, 255);
gDPSetEnvColor(gMasterDisp++, 0, 0, 0, 255);
@@ -755,8 +756,8 @@ void Object_SetShadowDL(ObjectId objId, s32 index) {
Matrix_SetGfxMtx(&gMasterDisp);
gSPDisplayList(gMasterDisp++, D_1024AC0);
break;
- case OBJ_BOSS_VE1:
- Venom1_80198310(&gBosses[index]);
+ case OBJ_BOSS_VE1_GOLEMECH:
+ Venom1_Ve1Golemech_SetShadow(&gBosses[index]);
break;
}
}
@@ -947,7 +948,7 @@ void Scenery_Draw(Scenery* this, s32 arg1) {
this->obj.pos.y -= gCameraShakeY;
if (this->info.drawType == 0) {
if ((this->obj.id == OBJ_SCENERY_CO_TOWER) || (this->obj.id == OBJ_SCENERY_CO_ROCKWALL) ||
- (this->obj.id == OBJ_SCENERY_CO_HIGHWAY_4) || (this->obj.id == OBJ_SCENERY_50)) {
+ (this->obj.id == OBJ_SCENERY_CO_HIGHWAY_4) || (this->obj.id == OBJ_SCENERY_VE1_WALL_3)) {
RCP_SetupDL_57(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK);
if (arg1 < 0) {
@@ -995,15 +996,15 @@ void Actor_DrawOnRails(Actor* this) {
if (this->info.draw != NULL) {
switch (this->obj.id) {
- case OBJ_ACTOR_194:
- Actor194_Draw(this);
+ case OBJ_ACTOR_ME_MORA:
+ MeMora_Draw(this);
return;
- case OBJ_ACTOR_236:
- Zoness_Actor236_Draw(this);
+ case OBJ_ACTOR_ZO_DODORA:
+ Zoness_ZoDodora_Draw(this);
return;
}
if ((this->obj.id == OBJ_ACTOR_EVENT) && (this->eventType == EVID_200)) {
- Actor194_Draw(this);
+ MeMora_Draw(this);
} else {
if (this->info.unk_19 != 0) {
this->obj.pos.y += gCameraShakeY;
@@ -1115,7 +1116,7 @@ void Actor_DrawAllRange(Actor* this) {
}
if (!sDrewActor) {
this->lockOnTimers[gPlayerNum] = 0;
- if ((this->obj.id == OBJ_ACTOR_DEBRIS) || (this->obj.id == OBJ_ACTOR_286)) {
+ if ((this->obj.id == OBJ_ACTOR_DEBRIS) || (this->obj.id == OBJ_ACTOR_AND_BRAIN_WASTE)) {
Object_Kill(&this->obj, this->sfxSource);
}
}
@@ -1149,7 +1150,7 @@ void Boss_Draw(Boss* this, s32 arg1) {
}
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)) {
+ if ((this->obj.id == OBJ_BOSS_KA_SAUCERER) || (this->obj.id == OBJ_BOSS_KA_FLBASE)) {
var_fa1 = 6000.0f;
var_fv0 = 6000.0f;
var_ft5 = 0.9f;
@@ -1170,8 +1171,8 @@ void Boss_Draw(Boss* this, s32 arg1) {
if (fabsf(D_edisplay_801615D0.x) < (fabsf(D_edisplay_801615D0.z * var_ft5) + var_fa1)) {
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_KA) {
+ if (this->obj.id != OBJ_BOSS_BO_BASE) {
+ if (this->obj.id != OBJ_BOSS_KA_SAUCERER) {
Display_SetSecondLight(&this->obj.pos);
}
if (this->info.drawType != 2) {
@@ -1186,7 +1187,7 @@ void Boss_Draw(Boss* this, s32 arg1) {
}
}
D_edisplay_801615D0.y = sp3C;
- if (this->obj.id == OBJ_BOSS_309) {
+ if (this->obj.id == OBJ_BOSS_BO_BASE) {
this->vwork[30] = D_edisplay_801615D0;
Display_SetSecondLight(&this->obj.pos);
Matrix_SetGfxMtx(&gMasterDisp);
@@ -1321,16 +1322,16 @@ void Object_DrawShadow(s32 index, Object* obj) {
ActorAllRange_DrawShadow(&gActors[index]);
} else {
switch (obj->id) {
- case OBJ_ACTOR_230:
+ case OBJ_ACTOR_TI_BOULDER:
Matrix_Translate(gGfxMatrix, obj->pos.x, gGroundHeight + 2.0f + gActors[index].fwork[1],
obj->pos.z + gPathProgress, MTXF_APPLY);
break;
- case OBJ_ACTOR_229:
- case OBJ_ACTOR_231:
+ case OBJ_ACTOR_TI_DESERT_CRAWLER:
+ case OBJ_ACTOR_TI_BOMB:
Matrix_Translate(gGfxMatrix, obj->pos.x, gGroundHeight + 2.0f + gActors[index].fwork[0],
obj->pos.z + gPathProgress, MTXF_APPLY);
break;
- case OBJ_BOSS_KA:
+ case OBJ_BOSS_KA_SAUCERER:
Matrix_Translate(gGfxMatrix, obj->pos.x, gGroundHeight + 2.0f + gCameraShakeY, obj->pos.z, MTXF_APPLY);
break;
default:
@@ -1342,8 +1343,8 @@ 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_ACTOR_MAX) && (obj->id != OBJ_ACTOR_230) && (obj->id != OBJ_ACTOR_229) &&
- (obj->id != OBJ_ACTOR_231)) {
+ if ((obj->id < OBJ_ACTOR_MAX) && (obj->id != OBJ_ACTOR_TI_BOULDER) &&
+ (obj->id != OBJ_ACTOR_TI_DESERT_CRAWLER) && (obj->id != OBJ_ACTOR_TI_BOMB)) {
Matrix_RotateX(gGfxMatrix, obj->rot.x * M_DTOR, MTXF_APPLY);
Matrix_RotateZ(gGfxMatrix, obj->rot.z * M_DTOR, MTXF_APPLY);
}
@@ -1428,14 +1429,14 @@ void Scenery360_Draw(Scenery360* this) {
f32 sp3C = 2000.0f;
f32 sp38 = 0.5f;
- if (this->obj.id == OBJ_SCENERY_156) {
+ if (this->obj.id == OBJ_SCENERY_UNK_156) {
sp44 = 4000.0f;
sp40 = -13000.0f;
sp3C = 4500.0f;
} else if (gCurrentLevel == LEVEL_VENOM_ANDROSS) {
sp40 = -20000.0f;
sp38 = 0.4f;
- } else if (this->obj.id == OBJ_SCENERY_143) {
+ } else if (this->obj.id == OBJ_SCENERY_VS_KA_FLBASE) {
sp44 = 6000.0f;
sp40 = -20000.0f;
sp3C = 6000.0f;
@@ -1451,7 +1452,7 @@ void Scenery360_Draw(Scenery360* this) {
if (fabsf(sp48.y) < (fabsf(sp48.z * sp38) + sp3C)) {
if (fabsf(sp48.x) < (fabsf(sp48.z * sp38) + sp3C)) {
Display_SetSecondLight(&this->obj.pos);
- if (this->obj.id == OBJ_SCENERY_131) {
+ if (this->obj.id == OBJ_SCENERY_AND_PASSAGE) {
Matrix_RotateY(gGfxMatrix, this->obj.rot.y * M_DTOR, MTXF_APPLY);
Matrix_RotateX(gGfxMatrix, this->obj.rot.x * M_DTOR, MTXF_APPLY);
Matrix_RotateZ(gGfxMatrix, this->obj.rot.z * M_DTOR, MTXF_APPLY);
@@ -1583,7 +1584,7 @@ void Object_DrawAll(s32 arg0) {
}
}
for (i = 0, boss = gBosses; i < ARRAY_COUNT(gBosses); i++, boss++) {
- if ((boss->obj.status >= OBJ_ACTIVE) && (boss->obj.id != OBJ_BOSS_310)) {
+ if ((boss->obj.status >= OBJ_ACTIVE) && (boss->obj.id != OBJ_BOSS_BO_BASE_SHIELD)) {
if ((boss->timer_05C % 2) == 0) {
RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
} else {
@@ -1708,7 +1709,7 @@ void Effect_DrawAll(s32 arg0) {
}
}
for (i = 0, boss = gBosses; i < ARRAY_COUNT(gBosses); i++, boss++) {
- if ((boss->obj.status >= OBJ_ACTIVE) && (boss->obj.id == OBJ_BOSS_310)) {
+ if ((boss->obj.status >= OBJ_ACTIVE) && (boss->obj.id == OBJ_BOSS_BO_BASE_SHIELD)) {
if ((boss->timer_05C % 2) == 0) {
RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
} else {
diff --git a/src/engine/fox_effect.c b/src/engine/fox_effect.c
index b3e5d6b3..80db07cb 100644
--- a/src/engine/fox_effect.c
+++ b/src/engine/fox_effect.c
@@ -145,7 +145,7 @@ void BonusText_DrawAll(void) {
}
}
-Effect* func_effect_8007783C(ObjectId objId) {
+Effect* Effect_Load(ObjectId objId) {
Effect* effect;
s32 i;
@@ -164,11 +164,11 @@ Effect* func_effect_8007783C(ObjectId objId) {
return effect;
}
-void func_effect_800778C4(EffectFireSmoke* this, f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel,
- f32 scale2) {
+void Effect_FireSmoke_Setup2(EffectFireSmoke* this, f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel,
+ f32 scale2) {
Effect_Initialize(this);
this->obj.status = OBJ_INIT;
- this->obj.id = OBJ_EFFECT_FIRE_SMOKE;
+ this->obj.id = OBJ_EFFECT_FIRE_SMOKE_1;
this->obj.pos.x = xPos;
this->obj.pos.y = yPos;
@@ -182,16 +182,18 @@ void func_effect_800778C4(EffectFireSmoke* this, f32 xPos, f32 yPos, f32 zPos, f
this->unk_4C = 0;
this->scale1 = 0.5f;
this->obj.rot.z = RAND_FLOAT(360.0f);
+
Object_SetInfo(&this->info, this->obj.id);
+
this->unk_44 = 255;
}
-void func_effect_8007797C(f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel, f32 scale2) {
+void Effect_FireSmoke_Spawn2(f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel, f32 scale2) {
s32 i;
for (i = ARRAY_COUNT(gEffects) - 1; i >= 0; i--) {
if (gEffects[i].obj.status == OBJ_FREE) {
- func_effect_800778C4(&gEffects[i], xPos, yPos, zPos, xVel, yVel, zVel, scale2);
+ Effect_FireSmoke_Setup2(&gEffects[i], xPos, yPos, zPos, xVel, yVel, zVel, scale2);
break;
}
}
@@ -373,7 +375,7 @@ void Effect_Effect351_Draw(Effect351* this) {
gSPDisplayList(gMasterDisp++, D_102A8A0);
}
-void Effect_Clouds_Draw(Clouds* this) {
+void Effect_Clouds_Draw(EffectClouds* this) {
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, this->unk_46);
Graphics_SetScaleMtx(this->scale2);
Matrix_RotateX(gGfxMatrix, M_PI / 2, MTXF_APPLY);
@@ -453,6 +455,7 @@ void Effect_Effect348_Draw(Effect348* this) {
}
void func_effect_80078AE0(Effect* this) {
+ /* Unimplemented */
}
void Effect_Effect355_Draw(Effect355* this) {
@@ -467,16 +470,17 @@ void Effect_Effect353_Draw(Effect353* this) {
RCP_SetupDL(&gMasterDisp, SETUPDL_64);
}
-void Macbeth_Effect377_Draw(Effect377* this) {
- f32 var_fv0;
+void Effect_Effect377_Draw(Effect377* this) {
+ f32 scale;
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 160);
- var_fv0 = 3.0f;
+ scale = 3.0f;
if ((gGameFrameCount % 2) != 0) {
- var_fv0 *= 1.2f;
+ scale *= 1.2f;
}
- Graphics_SetScaleMtx(this->scale2 * var_fv0);
+
+ Graphics_SetScaleMtx(this->scale2 * scale);
gSPDisplayList(gMasterDisp++, D_SX_600F8A0);
}
@@ -486,13 +490,13 @@ void Effect_Effect356_Draw(Effect356* this) {
gSPDisplayList(gMasterDisp++, D_ME_6000A80);
}
-void Macbeth_Effect376_Draw(Effect376* this) {
+void Effect_Effect376_Draw(Effect376* this) {
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, this->unk_4A);
Graphics_SetScaleMtx(this->scale2);
gSPDisplayList(gMasterDisp++, D_CO_6033000);
}
-void func_effect_80078D60(Effect393* this, f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
+void Effect_Effect393_Setup(Effect393* this, f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
Effect_Initialize(this);
this->obj.status = OBJ_INIT;
this->obj.id = OBJ_EFFECT_393;
@@ -517,12 +521,12 @@ void func_effect_80078D60(Effect393* this, f32 xPos, f32 yPos, f32 zPos, f32 sca
Object_SetInfo(&this->info, this->obj.id);
}
-void func_effect_80078E50(f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
+void Effect_Effect393_Spawn(f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
s32 i;
for (i = ARRAY_COUNT(gEffects) - 1; i >= 0; i--) {
if (gEffects[i].obj.status == OBJ_FREE) {
- func_effect_80078D60(&gEffects[i], xPos, yPos, zPos, scale2);
+ Effect_Effect393_Setup(&gEffects[i], xPos, yPos, zPos, scale2);
break;
}
}
@@ -553,6 +557,7 @@ void Effect_Effect393_Draw(Effect393* this) {
} else {
RCP_SetupDL(&gMasterDisp, SETUPDL_63);
}
+
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255);
gDPSetEnvColor(gMasterDisp++, 255, 255, 0, 255);
Graphics_SetScaleMtx(this->scale2 * this->scale1);
@@ -560,7 +565,7 @@ void Effect_Effect393_Draw(Effect393* this) {
RCP_SetupDL(&gMasterDisp, SETUPDL_64);
}
-void func_effect_8007905C(Effect357* this, f32 xPos, f32 yPos, f32 zPos, f32 scale2, u8 arg5) {
+void Effect_Effect357_Setup(Effect357* this, f32 xPos, f32 yPos, f32 zPos, f32 scale2, u8 arg5) {
Vec3f sp54;
Vec3f sp48;
Vec3f sp3C;
@@ -618,35 +623,35 @@ void func_effect_8007905C(Effect357* this, f32 xPos, f32 yPos, f32 zPos, f32 sca
Object_SetInfo(&this->info, this->obj.id);
}
-void func_effect_800794CC(f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
+void Effect_Effect357_Spawn50(f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
s32 i;
for (i = 50; i >= 0; i--) {
if (gEffects[i].obj.status == OBJ_FREE) {
- func_effect_8007905C(&gEffects[i], xPos, yPos, zPos, scale2, 0);
+ Effect_Effect357_Setup(&gEffects[i], xPos, yPos, zPos, scale2, 0);
break;
}
}
}
// Broken pieces and debris effect
-void func_effect_8007953C(f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
+void Effect_Effect357_Spawn80(f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
s32 i;
for (i = (ARRAY_COUNT(gEffects) - 20) - 1; i >= 0; i--) {
if (gEffects[i].obj.status == OBJ_FREE) {
- func_effect_8007905C(&gEffects[i], xPos, yPos, zPos, scale2, 0);
+ Effect_Effect357_Setup(&gEffects[i], xPos, yPos, zPos, scale2, 0);
break;
}
}
}
-void func_effect_800795AC(f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
+void Effect_Effect357_Spawn95(f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
s32 i;
for (i = 0; i < 95; i++) {
if (gEffects[i].obj.status == OBJ_FREE) {
- func_effect_8007905C(&gEffects[i], xPos, yPos, zPos, scale2, 0);
+ Effect_Effect357_Setup(&gEffects[i], xPos, yPos, zPos, scale2, 0);
break;
}
}
@@ -657,7 +662,7 @@ void func_effect_80079618(f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
for (i = 50; i >= 0; i--) {
if (gEffects[i].obj.status == OBJ_FREE) {
- func_effect_8007905C(&gEffects[i], xPos, yPos, zPos, scale2, 1);
+ Effect_Effect357_Setup(&gEffects[i], xPos, yPos, zPos, scale2, 1);
break;
}
}
@@ -804,7 +809,7 @@ void Effect_Effect357_Draw(Effect357* this) {
case 16:
gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK);
- gSPDisplayList(gMasterDisp++, D_SY_600F6C0);
+ gSPDisplayList(gMasterDisp++, aSyShip4DestroyedDL);
gSPSetGeometryMode(gMasterDisp++, G_CULL_BACK);
break;
@@ -914,7 +919,7 @@ void Effect_Effect383_Draw(Effect383* this) {
}
}
-void func_effect_8007A4B8(Effect383* this, f32 xPos, f32 yPos, f32 zPos, f32 scale1) {
+void Effect_Effect383_Setup(Effect383* this, f32 xPos, f32 yPos, f32 zPos, f32 scale1) {
Effect_Initialize(this);
this->obj.status = OBJ_INIT;
this->obj.id = OBJ_EFFECT_383;
@@ -930,16 +935,16 @@ void func_effect_8007A4B8(Effect383* this, f32 xPos, f32 yPos, f32 zPos, f32 sca
Object_SetInfo(&this->info, this->obj.id);
}
-void func_effect_8007A568(f32 xPos, f32 yPos, f32 zPos, f32 scale1) {
+void Effect_Effect383_Spawn(f32 xPos, f32 yPos, f32 zPos, f32 scale1) {
s32 i;
for (i = ARRAY_COUNT(gEffects) - 1; i >= 0; i--) {
if (gEffects[i].obj.status == OBJ_FREE) {
- func_effect_8007A4B8(&gEffects[i], xPos, yPos, zPos, scale1);
+ Effect_Effect383_Setup(&gEffects[i], xPos, yPos, zPos, scale1);
break;
}
}
- func_effect_8007B344(xPos, yPos, zPos, 80.0f, 4);
+ Effect_Effect384_Spawn(xPos, yPos, zPos, 80.0f, 4);
}
void Effect_SetupTimedSfxAtPos(TimedSfx* this, Vec3f* pos, u32 sfxId) {
@@ -961,6 +966,7 @@ void Effect_SetupTimedSfxAtPos(TimedSfx* this, Vec3f* pos, u32 sfxId) {
} else {
AUDIO_PLAY_SFX(sfxId, this->sfxSource, 4);
}
+
Object_SetInfo(&this->info, this->obj.id);
}
@@ -991,7 +997,7 @@ bool func_effect_8007A774(Player* player, Effect* this, f32 arg2) {
}
}
-void func_effect_8007A818(Effect359* this, f32 xPos, f32 yPos, f32 zPos, f32 scale1, u8 arg5, u8 arg6, u16 arg7) {
+void Effect_Effect359_Setup(Effect359* this, f32 xPos, f32 yPos, f32 zPos, f32 scale1, u8 arg5, u8 arg6, u16 arg7) {
Effect_Initialize(this);
this->obj.status = OBJ_INIT;
this->obj.id = OBJ_EFFECT_359;
@@ -1011,13 +1017,13 @@ void func_effect_8007A818(Effect359* this, f32 xPos, f32 yPos, f32 zPos, f32 sca
Object_SetInfo(&this->info, this->obj.id);
}
-void func_effect_8007A900(f32 xPos, f32 yPos, f32 zPos, f32 scale1, u8 arg4, u8 arg5, u16 arg6) {
+void Effect_Effect359_Spawn(f32 xPos, f32 yPos, f32 zPos, f32 scale1, u8 arg4, u8 arg5, u16 arg6) {
s32 i;
if (gCurrentLevel == LEVEL_TITANIA) {
for (i = ARRAY_COUNT(gEffects) - 1; i >= 0; i--) {
if (gEffects[i].obj.status == OBJ_FREE) {
- func_effect_8007A818(&gEffects[i], xPos, yPos, zPos, scale1, arg4, arg5, arg6);
+ Effect_Effect359_Setup(&gEffects[i], xPos, yPos, zPos, scale1, arg4, arg5, arg6);
break;
}
}
@@ -1072,7 +1078,7 @@ void Effect_Effect372_Update(Effect372* this) {
}
}
-void func_effect_8007AC0C(Effect372* this, f32 xPos, f32 unused_posY, f32 zPos, f32 scale2, f32 scale1, f32 yRot) {
+void Effect_Effect372_Setup1(Effect372* this, f32 xPos, f32 unused_posY, f32 zPos, f32 scale2, f32 scale1, f32 yRot) {
Effect_Initialize(this);
this->obj.status = OBJ_INIT;
this->obj.id = OBJ_EFFECT_372;
@@ -1090,18 +1096,18 @@ void func_effect_8007AC0C(Effect372* this, f32 xPos, f32 unused_posY, f32 zPos,
Object_SetInfo(&this->info, this->obj.id);
}
-void func_effect_8007ACE0(f32 xPos, f32 yPos, f32 zPos, f32 scale2, f32 scale1, f32 yRot) {
+void Effect_Effect372_Spawn1(f32 xPos, f32 yPos, f32 zPos, f32 scale2, f32 scale1, f32 yRot) {
s32 i;
for (i = 0; i < ARRAY_COUNT(gEffects); i++) {
if (gEffects[i].obj.status == OBJ_FREE) {
- func_effect_8007AC0C(&gEffects[i], xPos, yPos, zPos, scale2, scale1, yRot);
+ Effect_Effect372_Setup1(&gEffects[i], xPos, yPos, zPos, scale2, scale1, yRot);
break;
}
}
}
-void func_effect_8007AD58(Effect372* this, f32 xPos, f32 unused_posY, f32 zPos, f32 scale2, f32 scale1, f32 yRot) {
+void Effect_Effect372_Setup2(Effect372* this, f32 xPos, f32 unused_posY, f32 zPos, f32 scale2, f32 scale1, f32 yRot) {
Effect_Initialize(this);
this->obj.status = OBJ_INIT;
this->obj.id = OBJ_EFFECT_372;
@@ -1118,7 +1124,7 @@ void func_effect_8007AD58(Effect372* this, f32 xPos, f32 unused_posY, f32 zPos,
Object_SetInfo(&this->info, this->obj.id);
}
-void func_effect_8007ADF4(f32 xPos, f32 yPos, f32 zPos, f32 scale2, f32 scale1) {
+void Effect_Effect372_Spawn2(f32 xPos, f32 yPos, f32 zPos, f32 scale2, f32 scale1) {
f32 cosf;
f32 sinf;
f32 yRot;
@@ -1130,14 +1136,14 @@ void func_effect_8007ADF4(f32 xPos, f32 yPos, f32 zPos, f32 scale2, f32 scale1)
if (gEffects[j].obj.status == OBJ_FREE) {
sinf = SIN_DEG(yRot) * scale1 * 20.0f;
cosf = COS_DEG(yRot) * scale1 * 20.0f;
- func_effect_8007AD58(&gEffects[j], xPos + sinf, yPos, zPos + cosf, scale2, scale1, yRot);
+ Effect_Effect372_Setup2(&gEffects[j], xPos + sinf, yPos, zPos + cosf, scale2, scale1, yRot);
break;
}
}
}
}
-void func_effect_8007AF30(Effect382* this, f32 xPos, f32 zPos, f32 xVel, f32 zVel, f32 scale1) {
+void Effect_Effect382_Setup(Effect382* this, f32 xPos, f32 zPos, f32 xVel, f32 zVel, f32 scale1) {
Effect_Initialize(this);
this->obj.status = OBJ_INIT;
this->obj.id = OBJ_EFFECT_382;
@@ -1153,12 +1159,12 @@ void func_effect_8007AF30(Effect382* this, f32 xPos, f32 zPos, f32 xVel, f32 zVe
Object_SetInfo(&this->info, this->obj.id);
}
-void func_effect_8007AFD0(f32 xPos, f32 zPos, f32 xVel, f32 zVel, f32 scale1) {
+void Effect_Effect382_Spawn(f32 xPos, f32 zPos, f32 xVel, f32 zVel, f32 scale1) {
s32 i;
for (i = 0; i < ARRAY_COUNT(gEffects); i++) {
if (gEffects[i].obj.status == OBJ_FREE) {
- func_effect_8007AF30(&gEffects[i], xPos, zPos, xVel, zVel, scale1);
+ Effect_Effect382_Setup(&gEffects[i], xPos, zPos, xVel, zVel, scale1);
break;
}
}
@@ -1187,7 +1193,7 @@ void Effect_Effect381_Update(Effect381* this) {
}
}
-void func_effect_8007B180(Effect381* this, f32 xPos, f32 yPos, f32 zPos, f32 scale1) {
+void Effect_Effect381_Setup(Effect381* this, f32 xPos, f32 yPos, f32 zPos, f32 scale1) {
Effect_Initialize(this);
this->obj.status = OBJ_INIT;
this->obj.id = OBJ_EFFECT_381;
@@ -1202,18 +1208,18 @@ void func_effect_8007B180(Effect381* this, f32 xPos, f32 yPos, f32 zPos, f32 sca
AUDIO_PLAY_SFX(NA_SE_SPLASH_LEVEL_L, this->sfxSource, 0);
}
-void func_effect_8007B228(f32 xPos, f32 yPos, f32 zPos, f32 scale1) {
+void Effect_Effect381_Spawn(f32 xPos, f32 yPos, f32 zPos, f32 scale1) {
s32 i;
for (i = 0; i < ARRAY_COUNT(gEffects) && gCurrentLevel == LEVEL_ZONESS; i++) {
if (gEffects[i].obj.status == OBJ_FREE) {
- func_effect_8007B180(&gEffects[i], xPos, yPos, zPos, scale1);
+ Effect_Effect381_Setup(&gEffects[i], xPos, yPos, zPos, scale1);
break;
}
}
}
-void func_effect_8007B2BC(Effect384* this, f32 xPos, f32 yPos, f32 zPos, f32 scale1, s32 arg5) {
+void Effect_Effect384_Setup(Effect384* this, f32 xPos, f32 yPos, f32 zPos, f32 scale1, s32 arg5) {
Effect_Initialize(this);
this->obj.status = OBJ_INIT;
this->obj.id = OBJ_EFFECT_384;
@@ -1225,16 +1231,17 @@ void func_effect_8007B2BC(Effect384* this, f32 xPos, f32 yPos, f32 zPos, f32 sca
this->scale1 = scale1;
this->unk_44 = 255;
this->unk_4C = arg5;
+
Object_SetInfo(&this->info, this->obj.id);
}
-// Orange-yellowish light this simulating an explosion
-void func_effect_8007B344(f32 xPos, f32 yPos, f32 zPos, f32 scale1, s32 arg4) {
+// Orange-yellowish light simulating an explosion
+void Effect_Effect384_Spawn(f32 xPos, f32 yPos, f32 zPos, f32 scale1, s32 arg4) {
s32 i;
for (i = ARRAY_COUNT(gEffects) - 1; i >= 0; i--) {
if (gEffects[i].obj.status == OBJ_FREE) {
- func_effect_8007B2BC(&gEffects[i], xPos, yPos, zPos, scale1, arg4);
+ Effect_Effect384_Setup(&gEffects[i], xPos, yPos, zPos, scale1, arg4);
break;
}
}
@@ -1267,7 +1274,7 @@ void Effect_Effect384_Update(Effect384* this) {
}
}
-void func_effect_8007B494(Effect385* this, f32 xPos, f32 yPos, f32 zPos, f32 scale1, s32 arg5) {
+void Effect_Effect385_Setup(Effect385* this, f32 xPos, f32 yPos, f32 zPos, f32 scale1, s32 arg5) {
Effect_Initialize(this);
this->obj.status = OBJ_INIT;
this->obj.id = OBJ_EFFECT_385;
@@ -1287,15 +1294,16 @@ void func_effect_8007B494(Effect385* this, f32 xPos, f32 yPos, f32 zPos, f32 sca
} else {
this->unk_46 = 3;
}
+
Object_SetInfo(&this->info, this->obj.id);
}
-void func_effect_8007B550(f32 xPos, f32 yPos, f32 zPos, f32 scale1, s32 arg4) {
+void Effect_Effect385_Spawn(f32 xPos, f32 yPos, f32 zPos, f32 scale1, s32 arg4) {
s32 i;
for (i = 0; i < ARRAY_COUNT(gEffects); i++) {
if (gEffects[i].obj.status == OBJ_FREE) {
- func_effect_8007B494(&gEffects[i], xPos, yPos, zPos, scale1, arg4);
+ Effect_Effect385_Setup(&gEffects[i], xPos, yPos, zPos, scale1, arg4);
break;
}
}
@@ -1309,7 +1317,7 @@ void Effect_Effect385_Update(Effect385* this) {
}
}
-void Effect_Clouds_Update(Clouds* this) {
+void Effect_Clouds_Update(EffectClouds* this) {
if (this->timer_50 == 0) {
this->unk_46 -= 4;
if (this->unk_46 <= 0) {
@@ -1357,7 +1365,7 @@ void Effect_Effect347_Update(Effect347* this) {
func_effect_8007A774(gPlayer, this, this->scale2 * 20.0f);
}
-void func_effect_8007B7E8(Effect364* this, f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
+void Effect_Effect364_Setup(Effect364* this, f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
Effect_Initialize(this);
this->obj.status = OBJ_INIT;
this->obj.id = OBJ_EFFECT_364;
@@ -1380,12 +1388,12 @@ void func_effect_8007B7E8(Effect364* this, f32 xPos, f32 yPos, f32 zPos, f32 sca
Object_SetInfo(&this->info, this->obj.id);
}
-void func_effect_8007B8F8(f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
+void Effect_Effect364_Spawn(f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
s32 i, j;
for (i = ARRAY_COUNT(gEffects) - 1, j = 0; j < ARRAY_COUNT(gEffects); i--, j++) {
if (gEffects[i].obj.status == OBJ_FREE) {
- func_effect_8007B7E8(&gEffects[i], xPos, yPos, zPos, scale2);
+ Effect_Effect364_Setup(&gEffects[i], xPos, yPos, zPos, scale2);
break;
}
}
@@ -1393,6 +1401,7 @@ void func_effect_8007B8F8(f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
void Effect_Effect364_Update(Effect364* this) {
this->scale2 += 0.07f;
+
this->unk_4A -= this->unk_46;
if (this->unk_4A < 0) {
Object_Kill(&this->obj, this->sfxSource);
@@ -1425,7 +1434,7 @@ void Effect_Effect364_Draw(Effect364* this) {
}
}
-void func_effect_8007BB14(Effect362* this, f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
+void Effect_Effect362_Setup(Effect362* this, f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
Effect_Initialize(this);
this->obj.status = OBJ_INIT;
this->obj.id = OBJ_EFFECT_362;
@@ -1459,12 +1468,12 @@ void func_effect_8007BB14(Effect362* this, f32 xPos, f32 yPos, f32 zPos, f32 sca
Object_SetInfo(&this->info, this->obj.id);
}
-void func_effect_8007BC7C(f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
+void Effect_Effect362_Spawn(f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
s32 i;
for (i = ARRAY_COUNT(gEffects) - 20; i >= 0; i--) {
if (gEffects[i].obj.status == OBJ_FREE) {
- func_effect_8007BB14(&gEffects[i], xPos, yPos, zPos, scale2);
+ Effect_Effect362_Setup(&gEffects[i], xPos, yPos, zPos, scale2);
break;
}
}
@@ -1492,6 +1501,7 @@ void Effect_Effect362_Update(Effect362* this) {
void Effect_Effect361_Update(Effect361* this) {
this->scale2 += 0.04f;
+
this->unk_4A -= 2;
if (this->unk_4A < 0) {
Object_Kill(&this->obj, this->sfxSource);
@@ -1517,8 +1527,8 @@ void Effect_Effect360_361_362_Draw(Effect* this) {
gSPDisplayList(gMasterDisp++, D_BG_PLANET_2010A30);
}
-void func_effect_8007BF64(Effect386* this, f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel, f32 scale2,
- s32 timer50) {
+void Effect_Effect386_Setup(Effect386* this, f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel, f32 scale2,
+ s32 timer50) {
Effect_Initialize(this);
this->obj.status = OBJ_INIT;
this->obj.id = OBJ_EFFECT_386;
@@ -1535,19 +1545,19 @@ void func_effect_8007BF64(Effect386* this, f32 xPos, f32 yPos, f32 zPos, f32 xVe
Object_SetInfo(&this->info, this->obj.id);
}
-void func_effect_8007BFFC(f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel, f32 scale2, s32 timer50) {
+void Effect386_Spawn1(f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel, f32 scale2, s32 timer50) {
s32 i;
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);
+ Effect_Effect386_Setup(&gEffects[i], xPos, yPos, zPos, xVel, yVel, zVel, scale2, timer50);
break;
}
}
}
-void func_effect_8007C088(Effect390* this, f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel, f32 scale2,
- s32 timer50) {
+void Effect_Effect390_Setup(Effect390* this, f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel, f32 scale2,
+ s32 timer50) {
Effect_Initialize(this);
this->obj.status = OBJ_INIT;
this->obj.id = OBJ_EFFECT_390;
@@ -1564,23 +1574,23 @@ void func_effect_8007C088(Effect390* this, f32 xPos, f32 yPos, f32 zPos, f32 xVe
Object_SetInfo(&this->info, this->obj.id);
}
-void func_effect_8007C120(f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel, f32 scale2, s32 timer50) {
+void Effect_Effect390_Spawn(f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel, f32 scale2, s32 timer50) {
s32 i;
for (i = ARRAY_COUNT(gEffects) - 1; i >= 0; i--) {
if (gEffects[i].obj.status == OBJ_FREE) {
- func_effect_8007C088(&gEffects[i], xPos, yPos, zPos, xVel, yVel, zVel, scale2, timer50);
+ Effect_Effect390_Setup(&gEffects[i], xPos, yPos, zPos, xVel, yVel, zVel, scale2, timer50);
break;
}
}
}
-void func_effect_8007C1AC(f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel, f32 scale2, s32 timer50) {
+void Effect386_Spawn2(f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel, f32 scale2, s32 timer50) {
s32 i;
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);
+ Effect_Effect386_Setup(&gEffects[i], xPos, yPos, zPos, xVel, yVel, zVel, scale2, timer50);
Play_PlaySfxNoPlayer(gEffects[i].sfxSource, NA_SE_EXPLOSION_S);
break;
}
@@ -1591,18 +1601,18 @@ void Effect_Effect386_Update(Effect386* this) {
f32 randX;
f32 randY;
f32 randOther;
- s32 var_v0;
+ s32 mask;
Math_SmoothStepToF(&this->vel.x, 0.0f, 0.2f, 10.0f, 0.1f);
Math_SmoothStepToF(&this->vel.y, 0.0f, 0.2f, 10.0f, 0.1f);
Math_SmoothStepToF(&this->vel.z, 0.0f, 0.2f, 10.0f, 0.1f);
- var_v0 = 4 - 1;
+ mask = 4 - 1;
if (gLevelMode == LEVELMODE_ALL_RANGE) {
- var_v0 = 2 - 1;
+ mask = 2 - 1;
}
- if ((this->timer_50 & var_v0) == 0) {
+ if ((this->timer_50 & mask) == 0) {
randX = RAND_FLOAT_CENTERED(40.0f);
randY = RAND_FLOAT_CENTERED(40.0f);
randOther = RAND_FLOAT(0.5f) + 1.0f;
@@ -1614,8 +1624,8 @@ void Effect_Effect386_Update(Effect386* this) {
}
}
-void func_effect_8007C3B4(Effect389* this, f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel, f32 scale2,
- s32 arg8) {
+void Effect_Effect389_Setup(Effect389* this, f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel, f32 scale2,
+ s32 arg8) {
Effect_Initialize(this);
this->obj.status = OBJ_INIT;
this->obj.id = OBJ_EFFECT_389;
@@ -1632,16 +1642,18 @@ void func_effect_8007C3B4(Effect389* this, f32 xPos, f32 yPos, f32 zPos, f32 xVe
this->unk_4A = arg8;
this->unk_4C = RAND_INT(12.0f);
this->obj.rot.z = RAND_FLOAT(360.0f);
+
Object_SetInfo(&this->info, this->obj.id);
+
this->unk_44 = 255;
}
-void func_effect_8007C484(f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel, f32 scale2, s32 arg7) {
+void Effect_Effect389_Spawn(f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel, f32 scale2, s32 arg7) {
s32 i;
for (i = ARRAY_COUNT(gEffects) - 1; i > 32; i--) {
if (gEffects[i].obj.status == OBJ_FREE) {
- func_effect_8007C3B4(&gEffects[i], xPos, yPos, zPos, xVel, yVel, zVel, scale2, arg7);
+ Effect_Effect389_Setup(&gEffects[i], xPos, yPos, zPos, xVel, yVel, zVel, scale2, arg7);
break;
}
}
@@ -1656,15 +1668,15 @@ void Effect_Effect390_Update(Effect390* this) {
randX = RAND_FLOAT_CENTERED(40.0f) * this->scale2;
randY = RAND_FLOAT_CENTERED(40.0f) * this->scale2;
randOther = RAND_FLOAT(1.0f) + 1.0f;
- func_effect_8007C484(this->obj.pos.x + randX, this->obj.pos.y + randY, this->obj.pos.z, this->vel.x,
- this->vel.y, this->vel.z, this->scale2 * randOther, 0);
+ Effect_Effect389_Spawn(this->obj.pos.x + randX, this->obj.pos.y + randY, this->obj.pos.z, this->vel.x,
+ this->vel.y, this->vel.z, this->scale2 * randOther, 0);
if (this->timer_50 == 0) {
Object_Kill(&this->obj, this->sfxSource);
}
}
}
-void func_effect_8007C608(Effect387* this, f32 xPos, f32 yPos, f32 zPos, f32 scale2, s32 timer50) {
+void Effect_Effect387_Setup(Effect387* this, f32 xPos, f32 yPos, f32 zPos, f32 scale2, s32 timer50) {
Effect_Initialize(this);
this->obj.status = OBJ_INIT;
this->obj.id = OBJ_EFFECT_387;
@@ -1678,21 +1690,21 @@ void func_effect_8007C608(Effect387* this, f32 xPos, f32 yPos, f32 zPos, f32 sca
Object_SetInfo(&this->info, this->obj.id);
}
-void func_effect_8007C688(f32 xPos, f32 yPos, f32 zPos, f32 scale2, s32 timer50) {
+void Effect_Effect387_Spawn(f32 xPos, f32 yPos, f32 zPos, f32 scale2, s32 timer50) {
s32 i;
for (i = ARRAY_COUNT(gEffects) - 1; i >= 0; i--) {
if (gEffects[i].obj.status == OBJ_FREE) {
- func_effect_8007C608(&gEffects[i], xPos, yPos, zPos, scale2, timer50);
+ Effect_Effect387_Setup(&gEffects[i], xPos, yPos, zPos, scale2, timer50);
break;
}
}
}
-void func_effect_8007C6FC(Effect343* this, f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
+void Effect_Effect343_Setup(Effect343* this, f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
Effect_Initialize(this);
this->obj.status = OBJ_INIT;
- this->obj.id = OBJ_EFFECT_343;
+ this->obj.id = OBJ_EFFECT_SMOKE_2;
this->obj.pos.x = xPos;
this->obj.pos.y = yPos;
@@ -1700,9 +1712,11 @@ void func_effect_8007C6FC(Effect343* this, f32 xPos, f32 yPos, f32 zPos, f32 sca
this->unk_48 = 3;
this->vel.y = 5.0f;
+
if (Rand_ZeroOne() < 0.5f) {
this->unk_48 = -this->unk_48;
}
+
if ((gCurrentLevel == LEVEL_FORTUNA) && (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_NEXT)) {
this->unk_4A = 180;
} else {
@@ -1718,16 +1732,17 @@ void func_effect_8007C6FC(Effect343* this, f32 xPos, f32 yPos, f32 zPos, f32 sca
this->unk_4A = 255;
this->scale2 = scale2 * 0.3f;
}
+
this->scale1 = RAND_FLOAT(0.2f);
Object_SetInfo(&this->info, this->obj.id);
}
-void func_effect_8007C85C(f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
+void Effect_Effect343_Spawn(f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
s32 i;
for (i = 0; i < ARRAY_COUNT(gEffects) - 20; i++) {
if (gEffects[i].obj.status == OBJ_FREE) {
- func_effect_8007C6FC(&gEffects[i], xPos, yPos, zPos, scale2);
+ Effect_Effect343_Setup(&gEffects[i], xPos, yPos, zPos, scale2);
break;
}
}
@@ -1748,8 +1763,8 @@ void Effect_Effect387_Update(Effect387* this) {
randX = RAND_FLOAT_CENTERED(10.0f);
randY = RAND_FLOAT_CENTERED(10.0f);
randOther = RAND_FLOAT(0.5f) + 1.0f;
- func_effect_8007C85C(this->obj.pos.x + randX, this->obj.pos.y + randY, this->obj.pos.z,
- this->scale2 * randOther);
+ Effect_Effect343_Spawn(this->obj.pos.x + randX, this->obj.pos.y + randY, this->obj.pos.z,
+ this->scale2 * randOther);
if (this->timer_50 == 0) {
Object_Kill(&this->obj, this->sfxSource);
}
@@ -1791,18 +1806,22 @@ void Effect_Effect343_Draw(Effect343* this) {
}
}
-void func_effect_8007CC00(EffectFireSmoke* this, f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
+void EffectFireSmoke_Setup(EffectFireSmoke* this, f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
Effect_Initialize(this);
this->obj.status = OBJ_INIT;
- this->obj.id = OBJ_EFFECT_FIRE_SMOKE;
+ this->obj.id = OBJ_EFFECT_FIRE_SMOKE_1;
+
this->obj.pos.x = xPos;
this->obj.pos.y = yPos;
this->obj.pos.z = zPos;
+
this->scale2 = scale2;
this->scale1 = 0.5f;
this->unk_4C = 0;
this->obj.rot.z = RAND_FLOAT(360.0f);
+
Object_SetInfo(&this->info, this->obj.id);
+
if (gLevelType == LEVELTYPE_PLANET) {
this->unk_44 = 230;
} else {
@@ -1810,10 +1829,10 @@ void func_effect_8007CC00(EffectFireSmoke* this, f32 xPos, f32 yPos, f32 zPos, f
}
}
-void func_effect_8007CCBC(Effect340* this, f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
+void Effect_Effect340_Setup(Effect340* this, f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
Effect_Initialize(this);
this->obj.status = OBJ_INIT;
- this->obj.id = OBJ_EFFECT_340;
+ this->obj.id = OBJ_EFFECT_FIRE_SMOKE_2;
this->obj.pos.x = xPos;
this->obj.pos.y = yPos;
@@ -1823,7 +1842,9 @@ void func_effect_8007CCBC(Effect340* this, f32 xPos, f32 yPos, f32 zPos, f32 sca
this->unk_4C = 3;
this->scale1 = 0.2f;
this->obj.rot.z = RAND_FLOAT(360.0f);
+
Object_SetInfo(&this->info, this->obj.id);
+
if (gLevelType == LEVELTYPE_PLANET) {
this->unk_44 = 230;
} else {
@@ -1831,10 +1852,10 @@ void func_effect_8007CCBC(Effect340* this, f32 xPos, f32 yPos, f32 zPos, f32 sca
}
}
-void func_effect_8007CD7C(Effect342* this, f32 xPos, f32 yPos, f32 zPos, f32 scale2, s32 timer50) {
+void Effect_Effect342_Setup(Effect342* this, f32 xPos, f32 yPos, f32 zPos, f32 scale2, s32 timer50) {
Effect_Initialize(this);
this->obj.status = OBJ_INIT;
- this->obj.id = OBJ_EFFECT_342;
+ this->obj.id = OBJ_EFFECT_SMOKE_1;
this->timer_50 = timer50;
this->obj.pos.x = xPos;
@@ -1861,45 +1882,45 @@ void func_effect_8007CD7C(Effect342* this, f32 xPos, f32 yPos, f32 zPos, f32 sca
Object_SetInfo(&this->info, this->obj.id);
}
-void func_effect_8007CEBC(f32 xPos, f32 yPos, f32 zPos, f32 scale2, s32 timer50) {
+void Effect_Effect342_Spawn(f32 xPos, f32 yPos, f32 zPos, f32 scale2, s32 timer50) {
s32 i;
for (i = ARRAY_COUNT(gEffects) - 1; i >= 0; i--) {
if (gEffects[i].obj.status == OBJ_FREE) {
- func_effect_8007CD7C(&gEffects[i], xPos, yPos, zPos, scale2, timer50);
+ Effect_Effect342_Setup(&gEffects[i], xPos, yPos, zPos, scale2, timer50);
break;
}
}
}
-void func_effect_8007CF30(f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
+void Effect_FireSmoke_Spawn(f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
s32 i;
for (i = ARRAY_COUNT(gEffects) - 1; i >= 0; i--) {
if (gEffects[i].obj.status == OBJ_FREE) {
- func_effect_8007CC00(&gEffects[i], xPos, yPos, zPos, scale2);
+ EffectFireSmoke_Setup(&gEffects[i], xPos, yPos, zPos, scale2);
break;
}
}
}
-void func_effect_8007CF9C(f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
+void Effect_Effect340_Spawn(f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
s32 i;
for (i = ARRAY_COUNT(gEffects) - 1; i >= 0; i--) {
if (gEffects[i].obj.status == OBJ_FREE) {
- func_effect_8007CCBC(&gEffects[i], xPos, yPos, zPos, scale2);
+ Effect_Effect340_Setup(&gEffects[i], xPos, yPos, zPos, scale2);
break;
}
}
}
-void func_effect_8007D008(f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
+void EffectFireSmoke_Spawn2(f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
s32 i;
for (i = ARRAY_COUNT(gEffects) - 1; i >= 0; i--) {
if (gEffects[i].obj.status == OBJ_FREE) {
- func_effect_8007CC00(&gEffects[i], xPos, yPos, zPos, scale2);
+ EffectFireSmoke_Setup(&gEffects[i], xPos, yPos, zPos, scale2);
break;
}
}
@@ -1910,24 +1931,24 @@ void func_effect_8007D074(f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
for (i = ARRAY_COUNT(gEffects) - 1; i >= 0; i--) {
if (gEffects[i].obj.status == OBJ_FREE) {
- func_effect_8007CCBC(&gEffects[i], xPos, yPos, zPos, scale2);
+ Effect_Effect340_Setup(&gEffects[i], xPos, yPos, zPos, scale2);
break;
}
}
}
void func_effect_8007D0E0(f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
- func_effect_8007CF30(xPos, yPos, zPos, scale2);
+ Effect_FireSmoke_Spawn(xPos, yPos, zPos, scale2);
}
void func_effect_8007D10C(f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
- func_effect_8007CF9C(xPos, yPos, zPos, scale2);
+ Effect_Effect340_Spawn(xPos, yPos, zPos, scale2);
}
-void func_effect_8007D138(Effect341* this, f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
+void Effect_Effect341_Setup(Effect341* this, f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
Effect_Initialize(this);
this->obj.status = OBJ_INIT;
- this->obj.id = OBJ_EFFECT_341;
+ this->obj.id = OBJ_EFFECT_FIRE_SMOKE_3;
this->obj.pos.x = xPos;
this->obj.pos.y = yPos;
@@ -1935,19 +1956,21 @@ void func_effect_8007D138(Effect341* this, f32 xPos, f32 yPos, f32 zPos, f32 sca
this->scale2 = scale2;
this->obj.rot.z = RAND_FLOAT(360.0f);
+
Object_SetInfo(&this->info, this->obj.id);
+
if (gLevelType == LEVELTYPE_PLANET) {
this->unk_4C = 15;
}
this->unk_44 = 180;
}
-void func_effect_8007D1E0(f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
+void Effect_Effect341_Spawn(f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
s32 i;
for (i = ARRAY_COUNT(gEffects) - 1; i >= 0; i--) {
if (gEffects[i].obj.status == OBJ_FREE) {
- func_effect_8007D138(&gEffects[i], xPos, yPos, zPos, scale2);
+ Effect_Effect341_Setup(&gEffects[i], xPos, yPos, zPos, scale2);
break;
}
}
@@ -1955,15 +1978,15 @@ void func_effect_8007D1E0(f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
void func_effect_8007D24C(f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
if (gLevelType == LEVELTYPE_PLANET) {
- func_effect_8007D1E0(xPos, yPos, zPos, scale2);
- func_effect_8007CEBC(xPos, scale2 + yPos, zPos, scale2, 9);
+ Effect_Effect341_Spawn(xPos, yPos, zPos, scale2);
+ Effect_Effect342_Spawn(xPos, scale2 + yPos, zPos, scale2, 9);
} else {
func_effect_8007D0E0(xPos, yPos, zPos, scale2);
}
}
void func_effect_8007D2C8(f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
- func_effect_8007D008(xPos, yPos, zPos, scale2);
+ EffectFireSmoke_Spawn2(xPos, yPos, zPos, scale2);
}
void Effect_Effect339_Update(EffectFireSmoke* this) {
@@ -2129,7 +2152,7 @@ void Effect_Effect341_Update(Effect341* this) {
}
}
-void func_effect_8007D94C(Effect367* this, f32 xPos, f32 yPos, f32 zPos, f32 scale2, f32 scale1, s32 timer50) {
+void Effect_Effect367_Setup(Effect367* this, f32 xPos, f32 yPos, f32 zPos, f32 scale2, f32 scale1, s32 timer50) {
Effect_Initialize(this);
this->obj.status = OBJ_INIT;
this->obj.id = OBJ_EFFECT_367;
@@ -2143,12 +2166,12 @@ void func_effect_8007D94C(Effect367* this, f32 xPos, f32 yPos, f32 zPos, f32 sca
Object_SetInfo(&this->info, this->obj.id);
}
-void func_effect_8007D9DC(f32 xPos, f32 yPos, f32 zPos, f32 scale2, f32 scale1, s32 timer50) {
+void Effect_Effect367_Spawn(f32 xPos, f32 yPos, f32 zPos, f32 scale2, f32 scale1, s32 timer50) {
s32 i;
for (i = ARRAY_COUNT(gEffects) - 1; i >= 0; i--) {
if (gEffects[i].obj.status == OBJ_FREE) {
- func_effect_8007D94C(&gEffects[i], xPos, yPos, zPos, scale2, scale1, timer50);
+ Effect_Effect367_Setup(&gEffects[i], xPos, yPos, zPos, scale2, scale1, timer50);
break;
}
}
@@ -2167,7 +2190,7 @@ void Effect_Effect375_Update(Effect375* this) {
}
}
-void Macbeth_Effect375_Draw(Effect375* this) {
+void Effect_Effect375_Draw(Effect375* this) {
Graphics_SetScaleMtx(this->scale2);
RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
gSPDisplayList(gMasterDisp++, D_CO_6004900);
@@ -2193,8 +2216,7 @@ void Effect_Effect374_Update(Effect374* this) {
this->scale1 = 2.5f;
AUDIO_PLAY_SFX(NA_SE_EN_EXPLOSION_M, this->sfxSource, 4);
func_effect_8007D0E0(this->obj.pos.x, this->obj.pos.y + 30.0f, this->obj.pos.z, 7.0f);
- func_effect_8007BFFC(this->obj.pos.x, this->obj.pos.y + 30.0f, this->obj.pos.z, 0.0f, 0.0f, 0.0f, 4.0f,
- 5);
+ Effect386_Spawn1(this->obj.pos.x, this->obj.pos.y + 30.0f, this->obj.pos.z, 0.0f, 0.0f, 0.0f, 4.0f, 5);
if ((this->obj.pos.y < (gGroundHeight + 10.0f)) || (gGroundSurface != SURFACE_WATER)) {
PlayerShot_SpawnEffect344(this->obj.pos.x, 3.0f, this->obj.pos.z, this->obj.pos.x, this->obj.pos.z,
0.0f, 0.0f, 90.0f, 5.0f, 0, 0);
@@ -2212,7 +2234,9 @@ void Effect_Effect374_Update(Effect374* this) {
Object_Kill(&this->obj, this->sfxSource);
}
}
+
this->obj.rot.y = 180.0f - this->obj.rot.y;
+
if ((fabsf(gPlayer[0].trueZpos - this->obj.pos.z) < 40.0f) &&
(fabsf(gPlayer[0].pos.x - this->obj.pos.x) < 80.0f)) {
if ((this->obj.pos.y < gPlayer[0].pos.y) &&
@@ -2224,7 +2248,7 @@ void Effect_Effect374_Update(Effect374* this) {
}
}
-void Macbeth_Effect374_Draw(Effect374* this) {
+void Effect_Effect374_Draw(Effect374* this) {
switch (this->state) {
case 0:
Graphics_SetScaleMtx(this->scale2);
@@ -2263,8 +2287,8 @@ void Effect_Effect344_Update(Effect344* this) {
}
for (i = 0; i < ARRAY_COUNT(gEffects); i++) {
- if ((gEffects[i].obj.status == OBJ_ACTIVE) && (gEffects[i].obj.id == OBJ_EFFECT_344) && (i != this->index) &&
- (fabsf(this->obj.pos.z - gEffects[i].obj.pos.z) < 20.0f) &&
+ if ((gEffects[i].obj.status == OBJ_ACTIVE) && (gEffects[i].obj.id == OBJ_EFFECT_EXPLOSION_MARK_1) &&
+ (i != this->index) && (fabsf(this->obj.pos.z - gEffects[i].obj.pos.z) < 20.0f) &&
(fabsf(this->obj.pos.x - gEffects[i].obj.pos.x) < 20.0f) &&
(fabsf(this->obj.pos.y - gEffects[i].obj.pos.y) < 20.0f)) {
Object_Kill(&this->obj, this->sfxSource);
@@ -2489,6 +2513,7 @@ void func_effect_8007EBB8(Effect* this, ObjectId objId, f32 xPos, f32 yPos, f32
this->vel.z = zVel;
this->scale2 = scale2;
+
if (objId == OBJ_EFFECT_355) {
AUDIO_PLAY_SFX(NA_SE_EN_ENERGY_BEAM, this->sfxSource, 4);
} else {
@@ -2536,6 +2561,7 @@ void func_effect_8007ED54(Effect* this, ObjectId objId, f32 xPos, f32 yPos, f32
this->unk_60.z = unkZ;
this->scale2 = scale2;
+
if (this->obj.id != OBJ_EFFECT_380) {
AUDIO_PLAY_SFX(NA_SE_EN_SHOT_0, this->sfxSource, 4);
}
@@ -2728,11 +2754,11 @@ void Effect_Effect348_Update(Effect348* this) {
}
if (gCurrentLevel == LEVEL_AQUAS) {
- func_effect_8007B8F8(this->obj.pos.x + sin, yPos, this->obj.pos.z + cos, 20.0f);
+ Effect_Effect364_Spawn(this->obj.pos.x + sin, yPos, this->obj.pos.z + cos, 20.0f);
} else if (gCurrentLevel == LEVEL_FORTUNA) {
- func_effect_8007BC7C(this->obj.pos.x + sin, yPos, this->obj.pos.z + cos, 20.0f);
+ Effect_Effect362_Spawn(this->obj.pos.x + sin, yPos, this->obj.pos.z + cos, 20.0f);
} else if (gCurrentLevel == LEVEL_TITANIA) {
- func_effect_8007A900(this->obj.pos.x + sin, yPos, this->obj.pos.z + cos, 10.0f, 255, 15, 0);
+ Effect_Effect359_Spawn(this->obj.pos.x + sin, yPos, this->obj.pos.z + cos, 10.0f, 255, 15, 0);
}
}
}
@@ -2775,9 +2801,9 @@ void Effect_Effect349_Update(Effect349* this) {
}
if (gCurrentLevel == LEVEL_FORTUNA) {
- func_effect_8007BC7C(this->obj.pos.x + sin, yPos, this->obj.pos.z + cos, 8.0f);
+ Effect_Effect362_Spawn(this->obj.pos.x + sin, yPos, this->obj.pos.z + cos, 8.0f);
} else if (gCurrentLevel == LEVEL_TITANIA) {
- func_effect_8007A900(this->obj.pos.x + sin, yPos, this->obj.pos.z + cos, 8.0f, 255, 15, 0);
+ Effect_Effect359_Spawn(this->obj.pos.x + sin, yPos, this->obj.pos.z + cos, 8.0f, 255, 15, 0);
}
}
}
@@ -2809,7 +2835,7 @@ void Effect_Effect350_Update(Effect350* this) {
sin = __sinf(temp) * this->scale2 * 16.0f;
cos = __cosf(temp) * this->scale2 * 16.0f;
yPos = gGroundHeight + 10.0f;
- func_effect_8007BC7C(this->obj.pos.x + sin, yPos, this->obj.pos.z + cos, 12.0f);
+ Effect_Effect362_Spawn(this->obj.pos.x + sin, yPos, this->obj.pos.z + cos, 12.0f);
}
}
}
@@ -2933,6 +2959,7 @@ void Effect_Effect377_Update(Effect377* this) {
void Effect_Effect356_Update(Effect356* this) {
Effect_Effect353_354_Update(this);
this->obj.rot.z += 10.0f;
+
this->scale2 = 3.0f;
if ((gGameFrameCount % 2) != 0) {
this->scale2 = 3.5f;
@@ -3492,14 +3519,14 @@ void Effect_Effect395_Update(Effect395* this) {
}
if ((gGameFrameCount % 2) == 0) {
- func_effect_8007C484(RAND_FLOAT_CENTERED(50.0f) + this->obj.pos.x,
- RAND_FLOAT_CENTERED(50.0f) + this->obj.pos.y,
- RAND_FLOAT_CENTERED(50.0f) + this->obj.pos.z, this->vel.x, this->vel.y,
- this->vel.z, RAND_FLOAT(0.05f) + 0.05f, 0);
+ Effect_Effect389_Spawn(RAND_FLOAT_CENTERED(50.0f) + this->obj.pos.x,
+ RAND_FLOAT_CENTERED(50.0f) + this->obj.pos.y,
+ RAND_FLOAT_CENTERED(50.0f) + this->obj.pos.z, this->vel.x, this->vel.y,
+ this->vel.z, RAND_FLOAT(0.05f) + 0.05f, 0);
}
if (Object_CheckCollision(this->index, &this->obj.pos, &velocity, 1) != 0) {
- func_effect_8007B344(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, 3.0f, 7);
+ Effect_Effect384_Spawn(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, 3.0f, 7);
Object_Kill(&this->obj, this->sfxSource);
}
sp84 = 50.0f;
@@ -3558,13 +3585,13 @@ void Effect_Effect395_Update(Effect395* this) {
}
if ((gGameFrameCount % 4) == 0) {
- func_effect_8007C120((RAND_FLOAT_CENTERED(this->scale2) * 50.0f) + this->obj.pos.x,
- (RAND_FLOAT_CENTERED(this->scale2) * 50.0f) + this->obj.pos.y,
- (RAND_FLOAT_CENTERED(this->scale2) * 50.0f) + this->obj.pos.z, this->vel.x,
- this->vel.y, this->vel.z, RAND_FLOAT(0.03f) + 0.05f, 10);
+ Effect_Effect390_Spawn((RAND_FLOAT_CENTERED(this->scale2) * 50.0f) + this->obj.pos.x,
+ (RAND_FLOAT_CENTERED(this->scale2) * 50.0f) + this->obj.pos.y,
+ (RAND_FLOAT_CENTERED(this->scale2) * 50.0f) + this->obj.pos.z, this->vel.x,
+ this->vel.y, this->vel.z, RAND_FLOAT(0.03f) + 0.05f, 10);
}
if (Object_CheckCollision(this->index, &this->obj.pos, &velocity, 1) != 0) {
- func_effect_8007B344(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, 3.0f, 7);
+ Effect_Effect384_Spawn(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, 3.0f, 7);
Object_Kill(&this->obj, this->sfxSource);
}
sp84 = 50.0f;
@@ -3643,7 +3670,7 @@ void Effect_Effect395_Update(Effect395* this) {
if ((Play_CheckDynaFloorCollision(&posYOut, &unusedOut, this->obj.pos.x, this->obj.pos.y,
this->obj.pos.z)) ||
(this->timer_50 == 0)) {
- func_effect_8007B228(this->obj.pos.x, posYOut, this->obj.pos.z, this->scale2);
+ Effect_Effect381_Spawn(this->obj.pos.x, posYOut, this->obj.pos.z, this->scale2);
Object_Kill(&this->obj, this->sfxSource);
}
break;
@@ -3966,7 +3993,7 @@ void Effect_Effect395_Draw(Effect395* this) {
RCP_SetupDL(&gMasterDisp, SETUPDL_64);
}
-void func_effect_800836C0(Effect391* this, f32 xPos, f32 yPos, f32 zPos, f32 arg4, f32 scale) {
+void Effect_Effect391_Setup(Effect391* this, f32 xPos, f32 yPos, f32 zPos, f32 arg4, f32 scale) {
Effect_Initialize(this);
this->obj.status = OBJ_INIT;
this->obj.id = OBJ_EFFECT_391;
@@ -3987,12 +4014,12 @@ void func_effect_800836C0(Effect391* this, f32 xPos, f32 yPos, f32 zPos, f32 arg
Object_SetInfo(&this->info, this->obj.id);
}
-void func_effect_8008377C(f32 xPos, f32 yPos, f32 zPos, f32 arg3, f32 scale) {
+void Effect_Effect391_Spawn(f32 xPos, f32 yPos, f32 zPos, f32 arg3, f32 scale) {
s32 i;
for (i = 0; i < ARRAY_COUNT(gEffects); i++) {
if (gEffects[i].obj.status == OBJ_FREE) {
- func_effect_800836C0(&gEffects[i], xPos, yPos, zPos, arg3, scale);
+ Effect_Effect391_Setup(&gEffects[i], xPos, yPos, zPos, arg3, scale);
break;
}
}
@@ -4063,8 +4090,8 @@ void Effect_Effect391_Draw(Effect391* this) {
RCP_SetupDL(&gMasterDisp, SETUPDL_64);
}
-void func_effect_80083C70(Effect399* this, f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel, f32 arg7,
- s32 arg8) {
+void Effect_Effect399_Setup(Effect399* this, f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel, f32 arg7,
+ s32 arg8) {
Effect_Initialize(this);
this->obj.status = OBJ_INIT;
this->obj.id = OBJ_EFFECT_399;
@@ -4132,7 +4159,7 @@ void func_effect_80083D2C(f32 xPos, f32 yPos, f32 zPos, f32 srcZ) {
for (i = 0; i < 6; i++) {
for (j = 0; j < ARRAY_COUNT(gEffects); j++) {
if (gEffects[j].obj.status == OBJ_FREE) {
- func_effect_80083C70(&gEffects[j], xPos, yPos, zPos, dest.x, dest.y, dest.z, i * 60.0f, i);
+ Effect_Effect399_Setup(&gEffects[j], xPos, yPos, zPos, dest.x, dest.y, dest.z, i * 60.0f, i);
if (i == 0) {
AUDIO_PLAY_SFX(NA_SE_EN_MARBLE_BEAM, gEffects[j].sfxSource, 4);
}
diff --git a/src/engine/fox_enmy.c b/src/engine/fox_enmy.c
index 8273a1bf..2ee7b60d 100644
--- a/src/engine/fox_enmy.c
+++ b/src/engine/fox_enmy.c
@@ -116,6 +116,7 @@ bool func_enmy_80060FE4(Vec3f* arg0, f32 arg1) {
return false;
}
+// Unused
bool func_enmy_80061148(Vec3f* arg0, f32 arg1) {
Vec3f src;
Vec3f dest;
@@ -278,7 +279,7 @@ void Item_Load(Item* this, ObjectInit* objInit) {
Object_SetInfo(&this->info, this->obj.id);
}
-void func_enmy_80061958(Effect346* this, f32 xPos, f32 yPos, f32 zPos) {
+void Effect_Effect346_Setup(Effect346* this, f32 xPos, f32 yPos, f32 zPos) {
Effect_Initialize(this);
this->obj.status = OBJ_INIT;
this->obj.id = OBJ_EFFECT_346;
@@ -317,12 +318,13 @@ void func_enmy_80061A4C(void) {
if (gPathVelZ < 0.0f) {
z = -gPathProgress + 500.0f;
}
- func_enmy_80061958(&gEffects[i], x, y, z);
+ Effect_Effect346_Setup(&gEffects[i], x, y, z);
break;
}
}
}
+// For Aquas
void func_enmy_80061B68(void) {
s32 i;
f32 x;
@@ -341,12 +343,13 @@ void func_enmy_80061B68(void) {
if (gPathVelZ < 0.0f) {
z = -gPathProgress + 1000.0f;
}
- func_enmy_80061958(&gEffects[i], x, y, z);
+ Effect_Effect346_Setup(&gEffects[i], x, y, z);
break;
}
}
}
+// Unused
void func_enmy_80061CD0(void) {
s32 i;
f32 x;
@@ -361,22 +364,25 @@ void func_enmy_80061CD0(void) {
if (gPathVelZ < 0.0f) {
z = -gPathProgress + 1000.0f;
}
- func_enmy_80061958(&gEffects[i], x, y, z);
+ Effect_Effect346_Setup(&gEffects[i], x, y, z);
break;
}
}
}
+// Unused
void func_enmy_80061E48(Actor* this, f32 xPos, f32 yPos, f32 zPos) {
Actor_Initialize(this);
this->obj.status = OBJ_INIT;
- this->obj.id = OBJ_ACTOR_181;
+
+ this->obj.id = OBJ_ACTOR_ME_METEOR_1;
if (Rand_ZeroOne() < 0.5f) {
- this->obj.id = OBJ_ACTOR_186;
+ this->obj.id = OBJ_ACTOR_ME_LASER_CANNON_1;
}
if (Rand_ZeroOne() < 0.5f) {
- this->obj.id = OBJ_ACTOR_182;
+ this->obj.id = OBJ_ACTOR_ME_METEOR_2;
}
+
this->obj.pos.x = xPos;
this->obj.pos.y = yPos;
this->obj.pos.z = zPos;
@@ -403,17 +409,21 @@ void ActorEvent_Load(ActorEvent* this, ObjectInit* objInit, s32 index) {
this->aiType = objInit->id - ACTOR_EVENT_ID;
Object_SetInfo(&this->info, this->obj.id);
+
this->info.cullDistance = 3000.0f;
this->fwork[25] = 20000.0f;
this->iwork[1] = gPrevEventActorIndex;
this->iwork[10] = gActors[gPrevEventActorIndex].aiType;
this->fwork[22] = gArwingSpeed;
+
Matrix_RotateZ(gCalcMatrix, -gFormationInitRot.z * M_DTOR, MTXF_NEW);
Matrix_RotateX(gCalcMatrix, -gFormationInitRot.x * M_DTOR, MTXF_APPLY);
Matrix_RotateY(gCalcMatrix, -gFormationInitRot.y * M_DTOR, MTXF_APPLY);
+
src.x = this->obj.pos.x - gFormationInitPos.x;
src.y = this->obj.pos.y - gFormationInitPos.y;
src.z = this->obj.pos.z - gFormationInitPos.z;
+
Matrix_MultVec3fNoTranslate(gCalcMatrix, &src, &this->vwork[28]);
this->iwork[9] = gFormationLeaderIndex;
gPrevEventActorIndex = index;
@@ -442,7 +452,7 @@ void Object_Load(ObjectInit* objInit, f32 xMax, f32 xMin, f32 yMax, f32 yMin) {
}
}
if ((objInit->id >= OBJ_ACTOR_START) && (objInit->id < OBJ_ACTOR_MAX)) {
- if ((objInit->id == OBJ_ACTOR_267) || (objInit->id == OBJ_ACTOR_254)) {
+ if ((objInit->id == OBJ_ACTOR_AQ_JELLYFISH) || (objInit->id == OBJ_ACTOR_ZO_SEARCHLIGHT)) {
for (i = ARRAY_COUNT(gActors) - 1; i >= 0; i--) {
if (gActors[i].obj.status == OBJ_FREE) {
Actor_Load(&gActors[i], objInit);
@@ -481,7 +491,7 @@ void Object_Load(ObjectInit* objInit, f32 xMax, f32 xMin, f32 yMax, f32 yMin) {
}
}
}
- if (objInit->id >= OBJ_EFFECT_START && objInit->id <= OBJ_ID_MAX) {
+ if ((objInit->id >= OBJ_EFFECT_START) && (objInit->id <= OBJ_ID_MAX)) {
switch (objInit->id) {
case OBJ_UNK_403:
D_MA_801BA1E8 = 99;
@@ -496,10 +506,10 @@ void Object_Load(ObjectInit* objInit, f32 xMax, f32 xMin, f32 yMax, f32 yMin) {
D_Andross_801A7F78 = objInit->rot.z * 0.1f;
D_Andross_801A7F60 = -(f32) objInit->rot.x;
break;
- case OBJ_UNK_400:
+ case OBJ_ENV_SMALL_ROCKS_ENABLE:
gDrawSmallRocks++;
break;
- case OBJ_UNK_401:
+ case OBJ_ENV_SMALL_ROCKS_DISABLE:
if (gDrawSmallRocks > 0) {
gDrawSmallRocks--;
}
@@ -552,6 +562,7 @@ void Object_LoadLevelObjects(void) {
} else {
gLevelObjects = SEGMENTED_TO_VIRTUAL(gLevelObjectInits[gCurrentLevel]);
}
+
if (gGroundClipMode == 0) {
for (j = 0; j < gDrawSmallRocks; j++) {
if (gCurrentLevel == LEVEL_AQUAS) {
@@ -561,6 +572,7 @@ void Object_LoadLevelObjects(void) {
}
}
}
+
if (gCurrentLevel == LEVEL_METEO) {
yMax = xMax = 10000.0f;
yMin = xMin = -10000.0f;
@@ -581,13 +593,14 @@ void Object_LoadLevelObjects(void) {
if ((gPlayer[0].pathChangeTimer != 0) && (gPlayer[0].pathChangeYaw > 0.0f)) {
xMin = -10000.0f;
}
+
gLastPathChange = 0;
for (i = 0, objInit = &gLevelObjects[gObjectLoadIndex]; i < 10000; i++, gObjectLoadIndex++, objInit++) {
if (objInit->id <= OBJ_INVALID) {
break;
}
- if (((gPathProgress <= objInit->zPos1) && (objInit->zPos1 <= gPathProgress + 200.0f))) {
+ 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))) {
@@ -680,9 +693,11 @@ bool Object_CheckHitboxCollision(Vec3f* pos, f32* hitboxData, Object* obj, f32 x
count = *hitboxData;
if (count != 0) {
hitboxData++;
+
for (i = 0; i < count; i++, hitboxData += 6) {
rotate = 0.0f;
hitRot.x = hitRot.y = hitRot.z = 0.0f;
+
if (*hitboxData >= HITBOX_SHADOW) {
return false;
}
@@ -693,6 +708,7 @@ bool Object_CheckHitboxCollision(Vec3f* pos, f32* hitboxData, Object* obj, f32 x
hitRot.z = hitboxData[3];
hitboxData += 4;
}
+
if ((obj->rot.y == 0.0f) && (obj->rot.z == 0.0f) && (obj->rot.x == 0.0f) && (rotate == 0.0f)) {
hitPos.x = pos->x;
hitPos.y = pos->y;
@@ -701,22 +717,28 @@ bool Object_CheckHitboxCollision(Vec3f* pos, f32* hitboxData, Object* obj, f32 x
Matrix_RotateZ(gCalcMatrix, -hitRot.z * M_DTOR, MTXF_NEW);
Matrix_RotateX(gCalcMatrix, -hitRot.x * M_DTOR, MTXF_APPLY);
Matrix_RotateY(gCalcMatrix, -hitRot.y * M_DTOR, MTXF_APPLY);
+
Matrix_RotateZ(gCalcMatrix, -obj->rot.z * M_DTOR, MTXF_APPLY);
Matrix_RotateX(gCalcMatrix, -obj->rot.x * M_DTOR, MTXF_APPLY);
Matrix_RotateY(gCalcMatrix, -obj->rot.y * M_DTOR, MTXF_APPLY);
+
if ((xRot != 0.0f) || (yRot != 0.0f) || (zRot != 0.0f)) {
Matrix_RotateZ(gCalcMatrix, -zRot * M_DTOR, MTXF_APPLY);
Matrix_RotateX(gCalcMatrix, -xRot * M_DTOR, MTXF_APPLY);
Matrix_RotateY(gCalcMatrix, -yRot * M_DTOR, MTXF_APPLY);
}
+
sp80.x = pos->x - obj->pos.x;
sp80.y = pos->y - obj->pos.y;
sp80.z = pos->z - obj->pos.z;
+
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp80, &sp74);
+
hitPos.x = obj->pos.x + sp74.x;
hitPos.y = obj->pos.y + sp74.y;
hitPos.z = obj->pos.z + sp74.z;
}
+
hitbox = (Hitbox*) hitboxData;
if (((hitbox->z.size + 20.0f) > fabsf(hitbox->z.offset + obj->pos.z - hitPos.z)) &&
((hitbox->x.size + 20.0f) > fabsf(hitbox->x.offset + obj->pos.x - hitPos.x)) &&
@@ -752,32 +774,37 @@ bool Object_CheckPolyCollision(Vec3f* pos, Vec3f* vel, ObjectId objId, Object* o
sp74.x = pos->x - obj->pos.x;
sp74.z = pos->z - obj->pos.z;
- if (((fabsf(sp74.x) < 1100.0f) && (fabsf(sp74.z) < 1100.0f)) || (objId == OBJ_ACTOR_180)) {
+
+ if (((fabsf(sp74.x) < 1100.0f) && (fabsf(sp74.z) < 1100.0f)) || (objId == OBJ_ACTOR_ME_MOLAR_ROCK)) {
sp74.y = pos->y - obj->pos.y;
+
Matrix_RotateY(gCalcMatrix, -obj->rot.y * M_DTOR, MTXF_NEW);
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp74, &sp68);
+
relPos.x = obj->pos.x + sp68.x;
relPos.y = obj->pos.y + sp68.y;
relPos.z = obj->pos.z + sp68.z;
+
objPos.x = obj->pos.x;
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_FO) || (objId == OBJ_BOSS_SZ_GREAT_FOX) || (objId == OBJ_BOSS_VE2) ||
- (objId == OBJ_BOSS_309) || (objId == OBJ_SCENERY_ME_TUNNEL)) {
+
+ if ((objId == OBJ_ACTOR_ME_MOLAR_ROCK) || (objId == OBJ_SCENERY_FO_MOUNTAIN_2) ||
+ (objId == OBJ_SCENERY_FO_MOUNTAIN_3) || (objId == OBJ_BOSS_FO_BASE) || (objId == OBJ_BOSS_SZ_GREAT_FOX) ||
+ (objId == OBJ_BOSS_VE2_BASE) || (objId == OBJ_BOSS_BO_BASE) || (objId == OBJ_SCENERY_ME_TUNNEL)) {
colId = COL1_0;
- if (objId == OBJ_BOSS_VE2) {
+ if (objId == OBJ_BOSS_VE2_BASE) {
colId = COL1_9;
}
if (objId == OBJ_SCENERY_ME_TUNNEL) {
colId = COL1_1;
- } else if (objId == OBJ_BOSS_FO) {
+ } else if (objId == OBJ_BOSS_FO_BASE) {
colId = COL1_4;
- } else if (objId == OBJ_BOSS_309) {
+ } else if (objId == OBJ_BOSS_BO_BASE) {
colId = COL1_7;
- } else if (objId == OBJ_SCENERY_149) {
+ } else if (objId == OBJ_SCENERY_FO_MOUNTAIN_2) {
colId = COL1_5;
- } else if (objId == OBJ_SCENERY_150) {
+ } else if (objId == OBJ_SCENERY_FO_MOUNTAIN_3) {
colId = COL1_6;
} else if (objId == OBJ_BOSS_SZ_GREAT_FOX) {
colId = COL1_8;
@@ -793,17 +820,18 @@ bool Object_CheckPolyCollision(Vec3f* pos, Vec3f* vel, ObjectId objId, Object* o
if (objId == OBJ_SCENERY_CO_BUMP_3) {
colId = COL2_3;
}
- if (objId == OBJ_SCENERY_140) {
+ if (objId == OBJ_SCENERY_VS_PYRAMID_1) {
colId = COL2_4;
}
- if (objId == OBJ_SCENERY_141) {
+ if (objId == OBJ_SCENERY_VS_PYRAMID_2) {
colId = COL2_6;
}
- if (objId == OBJ_SCENERY_117) {
+ if (objId == OBJ_SCENERY_AQ_CORAL_REEF_1) {
colId = COL2_14;
} else if ((objId == OBJ_SCENERY_CO_BUMP_4) || (objId == OBJ_SCENERY_CO_BUMP_5)) {
colId = COL2_1;
}
+
if (func_col2_800A3690(&relPos, &objPos, colId, &sp44)) {
return true;
}
@@ -826,9 +854,12 @@ s32 Object_CheckCollision(s32 index, Vec3f* pos, Vec3f* vel, s32 mode) {
for (i = 0; i < 200; i++, scenery360++) {
if (scenery360->obj.status == OBJ_ACTIVE) {
if ((scenery360->obj.id == OBJ_SCENERY_CO_BUMP_1) || (scenery360->obj.id == OBJ_SCENERY_CO_BUMP_3) ||
- (scenery360->obj.id == OBJ_SCENERY_117) || (scenery360->obj.id == OBJ_SCENERY_141) ||
- (scenery360->obj.id == OBJ_SCENERY_150) || (scenery360->obj.id == OBJ_SCENERY_149) ||
- (scenery360->obj.id == OBJ_SCENERY_148) || (scenery360->obj.id == OBJ_SCENERY_140)) {
+ (scenery360->obj.id == OBJ_SCENERY_AQ_CORAL_REEF_1) ||
+ (scenery360->obj.id == OBJ_SCENERY_VS_PYRAMID_2) ||
+ (scenery360->obj.id == OBJ_SCENERY_FO_MOUNTAIN_3) ||
+ (scenery360->obj.id == OBJ_SCENERY_FO_MOUNTAIN_2) ||
+ (scenery360->obj.id == OBJ_SCENERY_FO_MOUNTAIN_1) ||
+ (scenery360->obj.id == OBJ_SCENERY_VS_PYRAMID_1)) {
if (Object_CheckPolyCollision(pos, vel, scenery360->obj.id, &scenery360->obj)) {
return 999;
}
@@ -867,7 +898,7 @@ s32 Object_CheckCollision(s32 index, Vec3f* pos, Vec3f* vel, s32 mode) {
Object_CheckSingleHitbox(pos, sprite->info.hitbox, &sprite->obj.pos)) {
if ((sprite->obj.id == OBJ_SPRITE_FO_POLE) || (sprite->obj.id == OBJ_SPRITE_CO_TREE) ||
(sprite->obj.id == OBJ_SPRITE_CO_TREE)) {
- sprite->destroy = 1;
+ sprite->destroy = true;
}
return 0;
}
@@ -878,12 +909,12 @@ s32 Object_CheckCollision(s32 index, Vec3f* pos, Vec3f* vel, s32 mode) {
boss = &gBosses[0];
for (i = 0; i < ARRAY_COUNT(gBosses); i++, boss++) {
if (boss->obj.status == OBJ_ACTIVE) {
- if ((boss->obj.id == OBJ_BOSS_FO) || (boss->obj.id == OBJ_BOSS_VE2) ||
- (boss->obj.id == OBJ_BOSS_SZ_GREAT_FOX) || (boss->obj.id == OBJ_BOSS_309)) {
+ if ((boss->obj.id == OBJ_BOSS_FO_BASE) || (boss->obj.id == OBJ_BOSS_VE2_BASE) ||
+ (boss->obj.id == OBJ_BOSS_SZ_GREAT_FOX) || (boss->obj.id == OBJ_BOSS_BO_BASE)) {
if (Object_CheckPolyCollision(pos, vel, boss->obj.id, &boss->obj)) {
return 2;
}
- } else if (boss->obj.id == OBJ_BOSS_310) {
+ } else if (boss->obj.id == OBJ_BOSS_BO_BASE_SHIELD) {
temp.x = fabsf(boss->obj.pos.x - pos->x) * (5.0f / 6.0f);
temp.y = fabsf(boss->obj.pos.y - pos->y) * 2;
temp.z = fabsf(boss->obj.pos.z - pos->z) * (5.0f / 6.0f);
@@ -892,7 +923,7 @@ s32 Object_CheckCollision(s32 index, Vec3f* pos, Vec3f* vel, s32 mode) {
return 2;
}
} else {
- if (boss->obj.id == OBJ_BOSS_KA) {
+ if (boss->obj.id == OBJ_BOSS_KA_SAUCERER) {
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);
@@ -916,7 +947,7 @@ s32 Object_CheckCollision(s32 index, Vec3f* pos, Vec3f* vel, s32 mode) {
if ((actor->obj.status >= OBJ_ACTIVE) && (fabsf(pos->x - actor->obj.pos.x) < 1000.0f) &&
(fabsf(pos->z - actor->obj.pos.z) < 1500.0f) && (index != i) && (actor->info.unk_16 != 2) &&
!((actor->obj.id == OBJ_ACTOR_ALLRANGE) && (actor->aiType <= AI360_PEPPY)) && (actor->timer_0C2 == 0)) {
- if (actor->obj.id == OBJ_ACTOR_180) {
+ if (actor->obj.id == OBJ_ACTOR_ME_MOLAR_ROCK) {
if (Object_CheckPolyCollision(pos, vel, actor->obj.id, &actor->obj)) {
return 2;
}
@@ -953,14 +984,14 @@ s32 Object_CheckCollision(s32 index, Vec3f* pos, Vec3f* vel, s32 mode) {
return 0;
}
-void func_enmy_80063CAC(Scenery* this) {
+void Actor_CoRadar_Init(Scenery* this) {
s32 i;
for (i = 0; i < ARRAY_COUNT(gActors); i++) {
if (gActors[i].obj.status == OBJ_FREE) {
Actor_Initialize(&gActors[i]);
gActors[i].obj.status = OBJ_INIT;
- gActors[i].obj.id = OBJ_ACTOR_193;
+ gActors[i].obj.id = OBJ_ACTOR_CO_RADAR;
gActors[i].obj.pos.x = this->obj.pos.x;
gActors[i].obj.pos.y = this->obj.pos.y;
gActors[i].obj.pos.z = this->obj.pos.z;
@@ -971,7 +1002,7 @@ void func_enmy_80063CAC(Scenery* this) {
}
}
-void func_enmy_80063D58(CoDoors* this) {
+void Scenery_Corneria_Init(CoDoors* this) {
s32 i;
this->obj.pos.y = gGroundHeight;
@@ -1001,7 +1032,7 @@ void func_enmy_80063D58(CoDoors* this) {
}
}
-void func_enmy_80063E5C(Scenery* this, f32* hitboxData) {
+void Scenery_CoStoneArch_Init(CoStoneArch* this, f32* hitboxData) {
s32 i;
Item* item;
@@ -1021,7 +1052,9 @@ void func_enmy_80063E5C(Scenery* this, f32* hitboxData) {
}
}
+// Unused
void func_enmy_80063F4C(s32 arg0) {
+ /* Unimplemented */
}
void func_enmy_80063F58(Item* item) {
@@ -1033,10 +1066,10 @@ void func_enmy_80063F74(Item* item) {
}
void Object_Init(s32 index, ObjectId objId) {
- s32 var_a0;
- s32 var_a2;
- f32 sp54;
- f32 sp50;
+ s32 i;
+ s32 j;
+ f32 xRot;
+ f32 zRot;
f32 sp4C;
PosRot* var_v0;
@@ -1044,7 +1077,7 @@ void Object_Init(s32 index, ObjectId objId) {
case OBJ_SPRITE_CO_SMOKE:
Effect_SpawnTimedSfxAtPos(&gSprites[index].obj.pos, NA_SE_OB_SMOKE);
break;
- case OBJ_ACTOR_234:
+ case OBJ_ACTOR_TI_GREAT_FOX:
AUDIO_PLAY_SFX(NA_SE_GREATFOX_ENGINE, gActors[index].sfxSource, 0);
break;
case OBJ_SCENERY_CO_WATERFALL:
@@ -1053,52 +1086,52 @@ void Object_Init(s32 index, ObjectId objId) {
case OBJ_ACTOR_TEAM_BOSS:
ActorTeamBoss_Init(&gActors[index]);
break;
- case OBJ_ACTOR_235:
+ case OBJ_ACTOR_ZO_BIRD:
gActors[index].fwork[10] = fabsf(Math_ModF(gActors[index].obj.pos.x, 100.0f));
break;
- case OBJ_ACTOR_247:
- Zoness_Actor247_Init(&gActors[index]);
+ case OBJ_ACTOR_ZO_BARRIER:
+ Zoness_ZoBarrier_Init(&gActors[index]);
break;
case OBJ_EFFECT_368:
if (gCurrentLevel == LEVEL_TITANIA) {
- Ground_801B6E20(gEffects[index].obj.pos.x, gEffects[index].obj.pos.z + gPathProgress, &sp54, &sp4C,
- &sp50);
+ Ground_801B6E20(gEffects[index].obj.pos.x, gEffects[index].obj.pos.z + gPathProgress, &xRot, &sp4C,
+ &zRot);
gEffects[index].obj.pos.y = sp4C + 3.0f;
- gEffects[index].obj.rot.x = RAD_TO_DEG(sp54);
- gEffects[index].obj.rot.z = RAD_TO_DEG(sp50);
+ gEffects[index].obj.rot.x = RAD_TO_DEG(xRot);
+ gEffects[index].obj.rot.z = RAD_TO_DEG(zRot);
} else if (gCurrentLevel == LEVEL_MACBETH) {
gEffects[index].obj.status = OBJ_FREE;
}
break;
case OBJ_SCENERY_TI_RIB_0:
- func_enmy_80063E5C(&gScenery[index], D_TI_6006940);
+ Scenery_CoStoneArch_Init(&gScenery[index], D_TI_6006940);
break;
case OBJ_SCENERY_TI_RIB_1:
- func_enmy_80063E5C(&gScenery[index], D_TI_600695C);
+ Scenery_CoStoneArch_Init(&gScenery[index], D_TI_600695C);
break;
case OBJ_SCENERY_TI_RIB_2:
- func_enmy_80063E5C(&gScenery[index], D_TI_6006978);
+ Scenery_CoStoneArch_Init(&gScenery[index], D_TI_6006978);
break;
case OBJ_SCENERY_TI_RIB_3:
- func_enmy_80063E5C(&gScenery[index], D_TI_6006994);
+ Scenery_CoStoneArch_Init(&gScenery[index], D_TI_6006994);
break;
case OBJ_SCENERY_TI_RIB_4:
- func_enmy_80063E5C(&gScenery[index], D_TI_60069B0);
+ Scenery_CoStoneArch_Init(&gScenery[index], D_TI_60069B0);
break;
case OBJ_SCENERY_TI_RIB_5:
- func_enmy_80063E5C(&gScenery[index], D_TI_60069CC);
+ Scenery_CoStoneArch_Init(&gScenery[index], D_TI_60069CC);
break;
case OBJ_SCENERY_TI_RIB_6:
- func_enmy_80063E5C(&gScenery[index], D_TI_60069E8);
+ Scenery_CoStoneArch_Init(&gScenery[index], D_TI_60069E8);
break;
case OBJ_SCENERY_TI_RIB_7:
- func_enmy_80063E5C(&gScenery[index], D_TI_6006A04);
+ Scenery_CoStoneArch_Init(&gScenery[index], D_TI_6006A04);
break;
case OBJ_SCENERY_TI_RIB_8:
- func_enmy_80063E5C(&gScenery[index], D_TI_6006A20);
+ Scenery_CoStoneArch_Init(&gScenery[index], D_TI_6006A20);
break;
- case OBJ_SCENERY_CO_RADAR:
- func_enmy_80063CAC(&gScenery[index]);
+ case OBJ_SCENERY_CO_RADAR_DISH:
+ Actor_CoRadar_Init(&gScenery[index]);
break;
case OBJ_ITEM_CHECKPOINT:
if (gSavedObjectLoadIndex != 0) {
@@ -1128,7 +1161,7 @@ void Object_Init(s32 index, ObjectId objId) {
}
break;
case OBJ_SCENERY_CO_STONE_ARCH:
- func_enmy_80063E5C(&gScenery[index], gItemRingCheckHitbox);
+ Scenery_CoStoneArch_Init(&gScenery[index], gItemRingCheckHitbox);
/* fallthrough */
case OBJ_SCENERY_CO_HIGHWAY_1:
case OBJ_SCENERY_CO_HIGHWAY_2:
@@ -1136,46 +1169,46 @@ void Object_Init(s32 index, ObjectId objId) {
case OBJ_SCENERY_CO_ARCH_2:
case OBJ_SCENERY_CO_ARCH_3:
case OBJ_SCENERY_CO_DOORS:
- func_enmy_80063D58(&gScenery[index]);
+ Scenery_Corneria_Init(&gScenery[index]);
break;
- case OBJ_ACTOR_187:
+ case OBJ_ACTOR_ME_LASER_CANNON_2:
gActors[index].fwork[0] = gActors[index].obj.pos.x;
gActors[index].fwork[1] = gActors[index].obj.pos.y;
gActors[index].obj.rot.z = gActors[index].obj.rot.x;
gActors[index].obj.rot.x = 0.0f;
break;
- case OBJ_ACTOR_182:
- case OBJ_ACTOR_186:
+ case OBJ_ACTOR_ME_METEOR_2:
+ case OBJ_ACTOR_ME_LASER_CANNON_1:
gActors[index].unk_046 = gFogRed;
gActors[index].unk_048 = gFogNear;
gActors[index].obj.rot.x = RAND_FLOAT(360.0f);
gActors[index].obj.rot.y = RAND_FLOAT(360.0f);
break;
- case OBJ_ACTOR_181:
+ case OBJ_ACTOR_ME_METEOR_1:
gActors[index].obj.rot.x = RAND_FLOAT(360.0f);
gActors[index].obj.rot.y = RAND_FLOAT(360.0f);
gActors[index].health = 200;
break;
- case OBJ_ACTOR_202:
+ case OBJ_ACTOR_ME_HOPBOT:
gActors[index].health = 30;
break;
- case OBJ_ACTOR_252:
+ case OBJ_ACTOR_ZO_RADARBUOY:
if (gPlayer[0].pos.z < gActors[index].obj.pos.z) {
Object_Kill(&gActors[index].obj, gActors[index].sfxSource);
}
break;
- case OBJ_ACTOR_239:
- gActors[index].iwork[0] = gZOSnakeWaypointCount;
- gZOSnakeWaypointCount++;
+ case OBJ_ACTOR_ZO_DODORA_WP_COUNT:
+ gActors[index].iwork[0] = gZoDodoraWaypointCount;
+ gZoDodoraWaypointCount++;
break;
- case OBJ_ACTOR_236:
- gZOSnakeWaypointCount = 0;
+ case OBJ_ACTOR_ZO_DODORA:
+ gZoDodoraWaypointCount = 0;
gActors[index].rot_0F4.x = gActors[index].obj.rot.x;
gActors[index].rot_0F4.y = gActors[index].obj.rot.y;
gActors[index].obj.rot.x = gActors[index].obj.rot.y = 0.0f;
gActors[index].fwork[2] = gActors[index].obj.pos.y;
- var_v0 = gZOSnakePosRots;
- for (var_a0 = 0; var_a0 < 200; var_a0++, var_v0++) {
+ var_v0 = gZoDodoraPosRots;
+ for (i = 0; i < 200; i++, var_v0++) {
var_v0->pos.x = gActors[index].obj.pos.x;
var_v0->pos.y = gActors[index].obj.pos.y;
var_v0->pos.z = gActors[index].obj.pos.z;
@@ -1184,15 +1217,15 @@ void Object_Init(s32 index, ObjectId objId) {
var_v0->rot.z = gActors[index].obj.rot.z;
}
break;
- case OBJ_ACTOR_194:
+ case OBJ_ACTOR_ME_MORA:
gActors[index].unk_046 = 100;
- for (var_a0 = 0; var_a0 < 2; var_a0++) {
- if (gActor194Status[var_a0] == 0) {
- gActor194Status[var_a0] = 1;
- gActors[index].unk_046 = var_a0;
- for (var_a2 = 0; var_a2 < 100; var_a2++) {
- gActor194yPos[var_a0][var_a2] = gActors[index].obj.pos.y;
- gActor194zPos[var_a0][var_a2] = gActors[index].obj.pos.z;
+ for (i = 0; i < 2; i++) {
+ if (gMeMoraStatus[i] == 0) {
+ gMeMoraStatus[i] = 1;
+ gActors[index].unk_046 = i;
+ for (j = 0; j < 100; j++) {
+ gMeMoraYpos[i][j] = gActors[index].obj.pos.y;
+ gMeMoraZpos[i][j] = gActors[index].obj.pos.z;
}
break;
}
@@ -1205,163 +1238,163 @@ void Object_Init(s32 index, ObjectId objId) {
case OBJ_MISSILE_SEEK_PLAYER:
AUDIO_PLAY_SFX(NA_SE_EN_MISSILE_ENGINE, gActors[index].sfxSource, 4);
break;
- case OBJ_ACTOR_192:
+ case OBJ_ACTOR_CO_SKIBOT:
gActors[index].drawShadow = true;
break;
- case OBJ_BOSS_320:
- Andross_Boss320_Init(&gBosses[index]);
+ case OBJ_BOSS_AND_ANDROSS:
+ Andross_AndAndross_Init(&gBosses[index]);
break;
- case OBJ_BOSS_KA:
- Katina_BossSetup(&gBosses[index]);
+ case OBJ_BOSS_KA_SAUCERER:
+ Katina_KaSaucerer_Init(&gBosses[index]);
break;
- case OBJ_BOSS_SY:
- SectorY_Boss314_Init(&gBosses[index]);
+ case OBJ_BOSS_SY_SHOGUN:
+ SectorY_SyShogun_Init(&gBosses[index]);
break;
- case OBJ_ACTOR_205:
- case OBJ_ACTOR_206:
- case OBJ_ACTOR_208:
- case OBJ_ACTOR_209:
- case OBJ_ACTOR_210:
- case OBJ_ACTOR_211:
- case OBJ_ACTOR_212:
- case OBJ_ACTOR_213:
- Macbeth_80199F8C(&gActors[index]);
+ case OBJ_ACTOR_MA_LOCOMOTIVE:
+ case OBJ_ACTOR_MA_TRAIN_CAR_1:
+ case OBJ_ACTOR_MA_TRAIN_CAR_2:
+ case OBJ_ACTOR_MA_TRAIN_CAR_3:
+ case OBJ_ACTOR_MA_TRAIN_CAR_4:
+ case OBJ_ACTOR_MA_TRAIN_CAR_5:
+ case OBJ_ACTOR_MA_TRAIN_CAR_6:
+ case OBJ_ACTOR_MA_TRAIN_CAR_7:
+ Macbeth_Train_Init(&gActors[index]);
break;
case OBJ_ACTOR_207:
- Macbeth_801A7D98(&gActors[index]);
+ Macbeth_Actor207_Init(&gActors[index]);
break;
- case OBJ_ACTOR_214:
- Macbeth_801A3E70(&gActors[index]);
+ case OBJ_ACTOR_MA_RAILROAD_SWITCH:
+ Macbeth_MaMaRailroadSwitch_Init(&gActors[index]);
break;
- case OBJ_ACTOR_215:
- Macbeth_801A4660(&gActors[index]);
+ case OBJ_ACTOR_MA_BOULDER:
+ Macbeth_MaBoulder_Init(&gActors[index]);
break;
- case OBJ_ACTOR_223:
- Macbeth_801A4AF8(&gActors[index]);
+ case OBJ_ACTOR_MA_RAILWAY_SIGNAL:
+ Macbeth_MaRailwaySignal_Init(&gActors[index]);
break;
- case OBJ_ACTOR_216:
- case OBJ_ACTOR_217:
- Macbeth_801A5E2C(&gActors[index]);
+ case OBJ_ACTOR_MA_HORIZONTAL_LOCK_BAR:
+ case OBJ_ACTOR_MA_VERTICAL_LOCK_BAR:
+ Macbeth_LockBars_Init(&gActors[index]);
break;
- case OBJ_ACTOR_218:
- Macbeth_801A6134(&gActors[index]);
+ case OBJ_ACTOR_MA_BARRIER:
+ Macbeth_MaBarrier_Init(&gActors[index]);
break;
- case OBJ_SCENERY_65:
- Macbeth_801A65E0(&gScenery[index]);
+ case OBJ_SCENERY_MA_PROXIMITY_LIGHT:
+ Macbeth_MaProximityLight_Init(&gScenery[index]);
break;
case OBJ_ACTOR_CO_GARUDA_2:
case OBJ_ACTOR_CO_GARUDA_3:
- Corneria_IBeam_Init(&gActors[index]);
+ Corneria_CoIBeam_Init(&gActors[index]);
/* fallthrough */
case OBJ_ACTOR_CO_GARUDA_1:
gActors[index].health = 24;
AUDIO_PLAY_SFX(NA_SE_EN_TANK_RB_ENGINE, gActors[index].sfxSource, 4);
break;
- case OBJ_BOSS_297:
- Meteo_Boss297_Init(&gBosses[index]);
+ case OBJ_BOSS_ME_CRUSHER:
+ Meteo_MeCrusher_Init(&gBosses[index]);
break;
- case OBJ_BOSS_299:
+ case OBJ_BOSS_UNK_299:
Boss299_Init(&gBosses[index]);
break;
- case OBJ_BOSS_300:
+ case OBJ_BOSS_UNK_300:
Boss300_Init(&gBosses[index]);
break;
case OBJ_BOSS_CO_GRANGA:
Corneria_Granga_Init(&gBosses[index]);
break;
case OBJ_BOSS_CO_CARRIER:
- Corneria_Carrier_Init(&gBosses[index]);
+ Corneria_CoCarrier_Init(&gBosses[index]);
break;
- case OBJ_BOSS_A6:
- Area6_BossA6_Init(&gBosses[index]);
+ case OBJ_BOSS_A6_GORGON:
+ Area6_A6Gorgon_Init(&gBosses[index]);
break;
- case OBJ_ACTOR_231:
- Titania_Actor231_Init(&gActors[index]);
+ case OBJ_ACTOR_TI_BOMB:
+ Titania_TiBomb_Init(&gActors[index]);
break;
- case OBJ_ACTOR_232:
- Titania_8018ADC4(&gActors[index]);
+ case OBJ_ACTOR_TI_RASCO:
+ Titania_TiRasco_Init(&gActors[index]);
break;
- case OBJ_ACTOR_233:
- Titania_80189B80(&gActors[index]);
+ case OBJ_ACTOR_TI_FEKUDA:
+ Titania_TiFekuda_Init(&gActors[index]);
break;
- case OBJ_ACTOR_229:
- Titania_8018BFB0(&gActors[index]);
+ case OBJ_ACTOR_TI_DESERT_CRAWLER:
+ Titania_TiDesertCrawler_Init(&gActors[index]);
break;
- case OBJ_ACTOR_227:
- Titania_8018E3CC(&gActors[index]);
+ case OBJ_ACTOR_TI_DELPHOR:
+ Titania_TiDelphor_Init(&gActors[index]);
break;
- case OBJ_ACTOR_228:
- Titania_8018E5E8(&gActors[index]);
+ case OBJ_ACTOR_TI_DELPHOR_HEAD:
+ Titania_TiDelphorHead_Init(&gActors[index]);
break;
case OBJ_SPRITE_TI_CACTUS:
- Titania_8018EFF0(&gSprites[index]);
+ Titania_TiCactus_Init(&gSprites[index]);
break;
- case OBJ_BOSS_TI:
- Titania_Boss306_Init(&gBosses[index]);
+ case OBJ_BOSS_TI_GORAS:
+ Titania_TiGoras_Init(&gBosses[index]);
break;
- case OBJ_ACTOR_240:
- Zoness_801915A4(&gActors[index]);
+ case OBJ_ACTOR_ZO_Z_GULL:
+ Zoness_ZoEnergyBall_Init(&gActors[index]);
break;
- case OBJ_ACTOR_241:
- Zoness_80191BB8(&gActors[index]);
+ case OBJ_ACTOR_ZO_ENERGY_BALL:
+ Zoness_ZoEnergyBall_Init2(&gActors[index]);
break;
- case OBJ_BOSS_ZO:
- Zoness_BossZo_Init(&gBosses[index]);
+ case OBJ_BOSS_ZO_SARUMARINE:
+ Zoness_ZoSarumarine_Init(&gBosses[index]);
break;
- case OBJ_ACTOR_250:
- Zoness_8019B1F0(&gActors[index]);
+ case OBJ_ACTOR_ZO_CARGOSHIP:
+ Zoness_ZoCargoShip_Init(&gActors[index]);
break;
- case OBJ_ACTOR_251:
- Zoness_8019B810(&gActors[index]);
+ case OBJ_ACTOR_ZO_CONTAINER:
+ Zoness_ZoContainer_Init(&gActors[index]);
break;
- case OBJ_ACTOR_253:
- Zoness_8019C200(&gActors[index]);
+ case OBJ_ACTOR_ZO_SUPPLYCRANE:
+ Zoness_ZoSupplyCrane_Init(&gActors[index]);
break;
case OBJ_ACTOR_255:
- Aquas_801AD688(&gActors[index]);
+ Aquas_Actor255_Init(&gActors[index]);
break;
case OBJ_ACTOR_256:
- Aquas_801AE3AC(&gActors[index]);
+ Aquas_Actor256_Init(&gActors[index]);
break;
case OBJ_ACTOR_257:
- Aquas_801AF9FC(&gActors[index]);
+ Aquas_Actor257_Init(&gActors[index]);
break;
- case OBJ_BOSS_AQ:
- Aquas_BossAq_Init(&gBosses[index]);
+ case OBJ_BOSS_AQ_BACOON:
+ Aquas_AqBacoon_Init(&gBosses[index]);
break;
- case OBJ_ACTOR_259:
- Aquas_801B6344(&gActors[index]);
+ case OBJ_ACTOR_AQ_ANGLERFISH:
+ Aquas_AqAnglerFish_Init(&gActors[index]);
break;
- case OBJ_ACTOR_262:
- Aquas_801B6E54(&gActors[index]);
+ case OBJ_ACTOR_AQ_SPINDLYFISH:
+ Aquas_AqSpindlyFish_Init(&gActors[index]);
break;
- case OBJ_ACTOR_260:
- Aquas_801B7AF0(&gActors[index]);
+ case OBJ_ACTOR_AQ_GAROA:
+ Aquas_AqGaroa_Init(&gActors[index]);
break;
- case OBJ_SCENERY_57:
- Titania_8018F0D8(&gScenery[index]);
+ case OBJ_SCENERY_TI_PILLAR:
+ Titania_TiPillar_Init(&gScenery[index]);
break;
- case OBJ_BOSS_VE1:
- Venom1_Boss319_Init(&gBosses[index]);
+ case OBJ_BOSS_VE1_GOLEMECH:
+ Venom1_Ve1Golemech_Init(&gBosses[index]);
break;
- case OBJ_ACTOR_280:
- Venom1_8019250C(&gActors[index]);
+ case OBJ_ACTOR_VE1_PILLAR_1:
+ Venom1_Ve1Pillar1_Init(&gActors[index]);
break;
- case OBJ_ACTOR_281:
- case OBJ_ACTOR_282:
- Venom1_80192CB0(&gActors[index]);
+ case OBJ_ACTOR_VE1_PILLAR_2:
+ case OBJ_ACTOR_VE1_PILLAR_3:
+ Venom1_Ve1Pillar2_3_Init(&gActors[index]);
break;
- case OBJ_ACTOR_283:
- Venom1_80192EA4(&gActors[index]);
+ case OBJ_ACTOR_VE1_PILLAR_4:
+ Venom1_Ve1Pillar4_Init(&gActors[index]);
break;
- case OBJ_ACTOR_284:
- Venom1_801933B4(&gActors[index]);
+ case OBJ_ACTOR_VE1_MONKEY_STATUE:
+ Venom1_Ve1MonkeyStatue_Init(&gActors[index]);
break;
- case OBJ_ACTOR_265:
- Aquas_801BA57C(&gActors[index]);
+ case OBJ_ACTOR_AQ_BOULDER:
+ Venom1_AqBoulder_Init(&gActors[index]);
break;
- case OBJ_ACTOR_267:
- Aquas_801BB26C(&gActors[index]);
+ case OBJ_ACTOR_AQ_JELLYFISH:
+ Venom1_AqJellyfish_Init(&gActors[index]);
break;
}
}
@@ -1380,10 +1413,10 @@ void Scenery_UpdateTitaniaBones(Scenery* this) {
}
}
-void func_enmy_80065380(Actor182* this, f32 xPos, f32 yPos, f32 zPos, f32 arg4, f32 arg5, f32 arg6) {
+void func_enmy_80065380(MeMeteor2* this, f32 xPos, f32 yPos, f32 zPos, f32 arg4, f32 arg5, f32 arg6) {
Actor_Initialize(this);
this->obj.status = OBJ_ACTIVE;
- this->obj.id = OBJ_ACTOR_182;
+ this->obj.id = OBJ_ACTOR_ME_METEOR_2;
this->timer_0BC = RAND_INT(10.0f) + 10;
this->timer_0C2 = 30;
this->vel.x = arg4;
@@ -1413,23 +1446,24 @@ void func_enmy_8006546C(f32 xPos, f32 yPos, f32 zPos, f32 arg3, f32 arg4, f32 ar
void func_enmy_800654E4(Object* obj) {
f32 temp_fs0;
f32 temp_fs1;
- s32 var_s1;
+ s32 i;
func_effect_8007D2C8(obj->pos.x, obj->pos.y, obj->pos.z, 12.0f);
- for (var_s1 = 0; var_s1 < 4; var_s1++) {
+
+ for (i = 0; i < 4; i++) {
func_enmy_8006546C(obj->pos.x, obj->pos.y, obj->pos.z, RAND_FLOAT_CENTERED(40.0f), RAND_FLOAT_CENTERED(40.0f),
RAND_FLOAT(-20.0f));
}
}
-void func_enmy_800655C8(Actor190* this, f32 xPos, f32 yPos, f32 zPos, s32 arg4) {
+void func_enmy_800655C8(ActorMissileSeekTeam* this, f32 xPos, f32 yPos, f32 zPos, s32 eventType) {
Actor_Initialize(this);
this->obj.status = OBJ_INIT;
this->obj.id = OBJ_MISSILE_SEEK_TEAM;
this->obj.pos.x = xPos;
this->obj.pos.y = yPos;
this->obj.pos.z = zPos;
- this->eventType = arg4;
+ this->eventType = eventType;
this->timer_0BE = 50;
if (this->eventType == 1) {
this->timer_0BE = 30;
@@ -1449,8 +1483,7 @@ void func_enmy_8006566C(f32 xPos, f32 yPos, f32 zPos, s32 arg3) {
}
}
-// Actors 190 & 191
-void Actors190_191_Update(Actor* this) {
+void ActorMissileSeek_Update(Actor* this) {
s32 i;
s32 j;
f32 spD4;
@@ -1747,7 +1780,7 @@ void Actor_Despawn(Actor* this) {
}
}
-void Actor192_Update(Actor192* this) {
+void ActorSkibot_Update(ActorSkibot* this) {
this->gravity = 0.4f;
if (this->obj.pos.y <= gGroundHeight + 130.0f) {
@@ -1815,7 +1848,7 @@ void Actor192_Update(Actor192* this) {
}
}
-void func_enmy_8006684C(Actor192* this) {
+void func_enmy_8006684C(ActorSkibot* this) {
s32 pad;
if (this->timer_0BE != 0) {
@@ -1835,13 +1868,13 @@ void func_enmy_8006684C(Actor192* this) {
this->obj.rot.x += 11.0f;
this->obj.rot.y += 7.0f;
if (this->vel.y < -3.0f) {
- func_effect_8007BFFC(this->obj.pos.x, this->obj.pos.y + 30.0f, this->obj.pos.z, 0.0f, 0.0f, 0.0f, 7.0f, 5);
+ Effect386_Spawn1(this->obj.pos.x, this->obj.pos.y + 30.0f, this->obj.pos.z, 0.0f, 0.0f, 0.0f, 7.0f, 5);
this->timer_0BE = 3;
}
}
}
-void Actor193_Update(Actor193* this) {
+void ActorRadar_Update(CoRadar* this) {
if (this->timer_0BC != 0) {
if (this->timer_0BC == 1) {
Object_Kill(&this->obj, this->sfxSource);
@@ -1850,14 +1883,14 @@ void Actor193_Update(Actor193* this) {
this->obj.rot.y += 5.0f;
if (this->dmgType != DMG_NONE) {
func_effect_8007D0E0(this->obj.pos.x, this->obj.pos.y + 130.0f, this->obj.pos.z, 8.0f);
- func_effect_8007BFFC(this->obj.pos.x, this->obj.pos.y + 130.0f, this->obj.pos.z, 0.0f, 0.0f, 0.0f, 4.0f, 5);
+ Effect386_Spawn1(this->obj.pos.x, this->obj.pos.y + 130.0f, this->obj.pos.z, 0.0f, 0.0f, 0.0f, 4.0f, 5);
this->timer_0BC = 4;
Effect_SpawnTimedSfxAtPos(&this->obj.pos, NA_SE_OB_EXPLOSION_S);
}
}
}
-void Actor180_Update(Actor180* this) {
+void MeMolarRock_Update(MeMolarRock* this) {
}
void func_enmy_80066A8C(CoBuilding9* this) {
@@ -2015,7 +2048,7 @@ void Item_SpinPickup(Item* this) {
src.y = RAND_FLOAT_CENTERED(120.0f);
src.z = 0.0f;
Matrix_MultVec3fNoTranslate(gCalcMatrix, &src, &dest);
- func_effect_80078E50(this->obj.pos.x + dest.x, this->obj.pos.y + dest.y, this->obj.pos.z + dest.z, 3.0f);
+ Effect_Effect393_Spawn(this->obj.pos.x + dest.x, this->obj.pos.y + dest.y, this->obj.pos.z + dest.z, 3.0f);
}
this->obj.rot.y += this->unk_50;
this->obj.rot.y = Math_ModF(this->obj.rot.y, 360.0f);
@@ -2092,7 +2125,7 @@ void ActorSupplies_Update(ActorSupplies* this) {
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);
+ Effect_Effect357_Spawn50(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, 0.6f);
}
Object_Kill(&this->obj, this->sfxSource);
}
@@ -2316,8 +2349,8 @@ void ItemSupplyRing_Update(Item* this) {
src.y = this->width * 100.0f;
src.z = 0.0f;
Matrix_MultVec3fNoTranslate(gCalcMatrix, &src, &dest);
- func_effect_80078E50(this->obj.pos.x + dest.x, this->obj.pos.y + dest.y, this->obj.pos.z + dest.z,
- 3.5f);
+ Effect_Effect393_Spawn(this->obj.pos.x + dest.x, this->obj.pos.y + dest.y, this->obj.pos.z + dest.z,
+ 3.5f);
}
break;
}
@@ -2568,43 +2601,43 @@ void Object_Dying(s32 index, ObjectId objId) {
}
break;
- case OBJ_ACTOR_202:
+ case OBJ_ACTOR_ME_HOPBOT:
func_enmy2_800763A4(&gActors[index]);
break;
- case OBJ_ACTOR_194:
- Actor194_Dying(&gActors[index]);
+ case OBJ_ACTOR_ME_MORA:
+ MeMora_Dying(&gActors[index]);
break;
- case OBJ_ACTOR_186:
+ case OBJ_ACTOR_ME_LASER_CANNON_1:
Meteo_80187B08(&gActors[index]);
break;
- case OBJ_ACTOR_181:
+ case OBJ_ACTOR_ME_METEOR_1:
Object_Kill(&gActors[index].obj, gActors[index].sfxSource);
func_effect_8007D2C8(gActors[index].obj.pos.x, gActors[index].obj.pos.y, gActors[index].obj.pos.z, 20.0f);
break;
- case OBJ_ACTOR_182:
+ case OBJ_ACTOR_ME_METEOR_2:
Object_Kill(&gActors[index].obj, gActors[index].sfxSource);
func_effect_8007D2C8(gActors[index].obj.pos.x, gActors[index].obj.pos.y, gActors[index].obj.pos.z, 10.0f);
Actor_Despawn(&gActors[index]);
break;
- case OBJ_ACTOR_192:
+ case OBJ_ACTOR_CO_SKIBOT:
func_enmy_8006684C(&gActors[index]);
break;
- case OBJ_BOSS_TI:
+ case OBJ_BOSS_TI_GORAS:
Titania_801990DC(&gBosses[index]);
break;
- case OBJ_ACTOR_232:
- Titania_8018B720(&gActors[index]);
+ case OBJ_ACTOR_TI_RASCO:
+ Titania_TiRasco_Dying(&gActors[index]);
break;
- case OBJ_BOSS_VE1:
- Venom1_80198594(&gBosses[index]);
+ case OBJ_BOSS_VE1_GOLEMECH:
+ Venom1_Ve1Golemech_Dying(&gBosses[index]);
break;
}
}
@@ -2623,7 +2656,7 @@ void Actor_Move(Actor* this) {
}
var_fv0 = 4000.0f;
- if ((this->obj.id == OBJ_ACTOR_236) || (gCurrentLevel == LEVEL_MACBETH) ||
+ if ((this->obj.id == OBJ_ACTOR_ZO_DODORA) || (gCurrentLevel == LEVEL_MACBETH) ||
((this->obj.id == OBJ_ACTOR_EVENT) && (this->eventType == EVID_56))) {
var_fv0 = 8000.0f;
} else if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_ENTER_WARP_ZONE) {
@@ -2637,27 +2670,27 @@ void Actor_Move(Actor* this) {
Object_Kill(&this->obj, this->sfxSource);
switch (this->obj.id) {
- case OBJ_ACTOR_236:
- gZOSnakeWaypointCount = 0;
+ case OBJ_ACTOR_ZO_DODORA:
+ gZoDodoraWaypointCount = 0;
break;
- case OBJ_ACTOR_229:
+ case OBJ_ACTOR_TI_DESERT_CRAWLER:
Titania_8018E3B0(this);
break;
- case OBJ_ACTOR_194:
- gActor194Status[this->unk_046] = 0;
+ case OBJ_ACTOR_ME_MORA:
+ gMeMoraStatus[this->unk_046] = 0;
break;
case OBJ_ACTOR_EVENT:
if ((this->eventType >= EVID_200) && (this->eventType < EVID_300)) {
- gActor194Status[this->unk_046] = 0;
+ gMeMoraStatus[this->unk_046] = 0;
} else if ((this->eventType == EVID_SX_WARP_GATE) && (this->unk_046 != 2)) {
gRingPassCount = -1;
}
break;
- case OBJ_ACTOR_252:
+ case OBJ_ACTOR_ZO_RADARBUOY:
gMissedZoSearchlight = true;
break;
}
@@ -2791,7 +2824,7 @@ void Actor_Update(Actor* this) {
case OBJ_INIT:
this->obj.status = OBJ_ACTIVE;
Object_Init(this->index, this->obj.id);
- if (this->obj.id != OBJ_ACTOR_252) {
+ if (this->obj.id != OBJ_ACTOR_ZO_RADARBUOY) {
Actor_Move(this);
}
break;
@@ -3046,7 +3079,7 @@ void Object_Update(void) {
}
} else if (gVersusMode) {
for (i = 0, scenery360 = gScenery360; i < 200; i++, scenery360++) {
- if ((scenery360->obj.status != OBJ_FREE) && (scenery360->obj.id == OBJ_SCENERY_146)) {
+ if ((scenery360->obj.status != OBJ_FREE) && (scenery360->obj.id == OBJ_SCENERY_VS_SPACE_JUNK_3)) {
if ((i % 2) != 0) {
scenery360->obj.rot.y += 0.5f;
} else {
diff --git a/src/engine/fox_enmy2.c b/src/engine/fox_enmy2.c
index f647430c..ee920c7e 100644
--- a/src/engine/fox_enmy2.c
+++ b/src/engine/fox_enmy2.c
@@ -70,9 +70,11 @@ void func_enmy2_8006A900(f32 xPos, f32 yPos, f32 zPos, f32 scale2) {
}
void Actor237_Update(Actor237* this) {
+ /* Unimplemented */
}
void Actor237_Draw(Actor237* this) {
+ /* Unimplemented */
}
void Obj54_8006A984(Effect* this, f32 xPos, f32 yPos, f32 zPos) {
@@ -120,17 +122,18 @@ void CoWaterfall_Update(CoWaterfall* this) {
}
}
-bool Actor201_8006ABA4(Actor201* this) {
+bool MeteoBall_IsCloseToPlayer(MeteoBall* this) {
if ((fabsf(this->obj.pos.x - gPlayer[0].pos.x) < 700.0f) && (fabsf(this->obj.pos.y - gPlayer[0].pos.y) < 700.0f)) {
return true;
}
return false;
}
-void Actor201_Update(Actor201* this) {
+// Unused Meteo Ball
+void MeteoBall_Update(MeteoBall* this) {
f32 sp2C;
- if (Actor201_8006ABA4(this) && (this->timer_0BC == 0)) {
+ if (MeteoBall_IsCloseToPlayer(this) && (this->timer_0BC == 0)) {
Effect_EnemyLaser(OBJ_EFFECT_ENEMY_LASER_1, this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, gEnemyShotSpeed);
this->timer_0BC = 20;
}
@@ -141,7 +144,7 @@ void Actor201_Update(Actor201* this) {
sqrtf(SQ(gPlayer[0].cam.eye.z - sp2C) + SQ(gPlayer[0].cam.eye.x - this->obj.pos.x))));
}
-void Actor202_Update(Actor202* this) {
+void ActorHopBot_Update(ActorHopBot* this) {
bool sp34;
this->gravity = 1.5f;
@@ -213,8 +216,8 @@ void Actor202_Update(Actor202* this) {
this->health -= 10;
if ((this->health <= 0) || (this->dmgType >= DMG_EXPLOSION)) {
func_effect_8007D2C8(this->obj.pos.x, this->obj.pos.y + 180.0f, this->obj.pos.z, 10.0f);
- func_effect_8007BFFC(this->obj.pos.x, this->obj.pos.y + 180.0f, this->obj.pos.z, this->vel.x, this->vel.y,
- this->vel.z, 8.0f, 30);
+ Effect386_Spawn1(this->obj.pos.x, this->obj.pos.y + 180.0f, this->obj.pos.z, this->vel.x, this->vel.y,
+ this->vel.z, 8.0f, 30);
Object_Kill(&this->obj, this->sfxSource);
Effect_SpawnTimedSfxAtPos(&this->obj.pos, NA_SE_EN_EXPLOSION_S);
gHitCount += this->info.bonus;
@@ -223,12 +226,12 @@ void Actor202_Update(Actor202* this) {
this->dmgType = DMG_NONE;
this->timer_0C6 = 20;
AUDIO_PLAY_SFX(NA_SE_EN_DAMAGE_S, this->sfxSource, 4);
- func_effect_8007D1E0(this->obj.pos.x, this->obj.pos.y + 180.0f, this->obj.pos.z, 5.0f);
+ Effect_Effect341_Spawn(this->obj.pos.x, this->obj.pos.y + 180.0f, this->obj.pos.z, 5.0f);
}
}
}
-void Actor194_Update(Actor194* this) {
+void MeMora_Update(MeMora* this) {
}
static s16 D_800CFF94[16] = {
@@ -240,9 +243,9 @@ static f32 D_800CFFC4[16] = {
};
static Gfx* D_800D0004[3] = { D_ENMY_SPACE_4000170, D_ENMY_SPACE_40084D0, D_ENMY_SPACE_400A630 };
-void Actor194_Dying(Actor194* this) {
+void MeMora_Dying(MeMora* this) {
Vec3f sp34;
- s32 temp_hi;
+ s32 index;
this->counter_04E++;
@@ -250,12 +253,12 @@ void Actor194_Dying(Actor194* this) {
this->counter_04E = 0;
}
- gActor194xPos[this->unk_046][this->counter_04E] = this->obj.pos.x;
- gActor194yPos[this->unk_046][this->counter_04E] = this->obj.pos.y;
- gActor194zPos[this->unk_046][this->counter_04E] = this->obj.pos.z;
- gActor194xRot[this->unk_046][this->counter_04E] = this->obj.rot.x;
- gActor194yRot[this->unk_046][this->counter_04E] = this->obj.rot.y;
- gActor194zRot[this->unk_046][this->counter_04E] = this->obj.rot.z;
+ gMeMoraXpos[this->unk_046][this->counter_04E] = this->obj.pos.x;
+ gMeMoraYpos[this->unk_046][this->counter_04E] = this->obj.pos.y;
+ gMeMoraZpos[this->unk_046][this->counter_04E] = this->obj.pos.z;
+ gMeMoraXrot[this->unk_046][this->counter_04E] = this->obj.rot.x;
+ gMeMoraYrot[this->unk_046][this->counter_04E] = this->obj.rot.y;
+ gMeMoraZrot[this->unk_046][this->counter_04E] = this->obj.rot.z;
this->obj.rot.x -= 10.0f;
this->obj.rot.y += 3.0f;
@@ -268,13 +271,13 @@ void Actor194_Dying(Actor194* this) {
this->vel.z = sp34.z;
if ((this->timer_0BC == 0) && ((gGameFrameCount % 4) == 0)) {
- temp_hi = (D_800CFF94[this->unk_04A] + this->counter_04E) % 100;
+ index = (D_800CFF94[this->unk_04A] + this->counter_04E) % 100;
if (this->unk_04A == 0) {
- func_effect_8007D2C8(gActor194xPos[this->unk_046][temp_hi], gActor194yPos[this->unk_046][temp_hi],
- gActor194zPos[this->unk_046][temp_hi], 7.0f);
+ func_effect_8007D2C8(gMeMoraXpos[this->unk_046][index], gMeMoraYpos[this->unk_046][index],
+ gMeMoraZpos[this->unk_046][index], 7.0f);
} else {
- func_effect_8007D2C8(gActor194xPos[this->unk_046][temp_hi], gActor194yPos[this->unk_046][temp_hi],
- gActor194zPos[this->unk_046][temp_hi], 4.0f);
+ func_effect_8007D2C8(gMeMoraXpos[this->unk_046][index], gMeMoraYpos[this->unk_046][index],
+ gMeMoraZpos[this->unk_046][index], 4.0f);
}
AUDIO_PLAY_SFX(NA_SE_EN_EXPLOSION_M, this->sfxSource, 4);
@@ -282,15 +285,15 @@ void Actor194_Dying(Actor194* this) {
if (this->unk_04A > 15) {
Object_Kill(&this->obj, this->sfxSource);
- gActor194Status[this->unk_046] = 0;
+ gMeMoraStatus[this->unk_046] = 0;
gHitCount += this->info.bonus;
D_ctx_80177850 = 15;
}
}
}
-void Actor194_8006B46C(Actor194* this, f32 xTrans, f32 yTrans, f32 zTrans, f32 xRot, f32 yRot, f32 zRot, u8 arg7,
- f32 scale, s32 arg9) {
+void MeMora_8006B46C(MeMora* this, f32 xTrans, f32 yTrans, f32 zTrans, f32 xRot, f32 yRot, f32 zRot, u8 arg7, f32 scale,
+ s32 arg9) {
Vec3f sp34 = { 0.0f, 0.0f, 0.0f };
Matrix_Push(&gGfxMatrix);
@@ -328,16 +331,15 @@ void Actor194_8006B46C(Actor194* this, f32 xTrans, f32 yTrans, f32 zTrans, f32 x
RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
}
-void Actor194_Draw(Actor194* this) {
- s16 var_s0;
- s16 temp_hi;
+void MeMora_Draw(MeMora* this) {
+ s16 i;
+ s16 j;
- for (var_s0 = this->unk_04A; var_s0 < 16; var_s0++) {
- temp_hi = (D_800CFF94[var_s0] + this->counter_04E) % 100;
- Actor194_8006B46C(this, gActor194xPos[this->unk_046][temp_hi], gActor194yPos[this->unk_046][temp_hi],
- gActor194zPos[this->unk_046][temp_hi], gActor194xRot[this->unk_046][temp_hi],
- gActor194yRot[this->unk_046][temp_hi], gActor194zRot[this->unk_046][temp_hi],
- D_800CFFB4[var_s0], D_800CFFC4[var_s0], this->timer_0C6 % 2U);
+ for (i = this->unk_04A; i < ARRAY_COUNT(D_800CFF94); i++) {
+ j = (D_800CFF94[i] + this->counter_04E) % 100;
+ MeMora_8006B46C(this, gMeMoraXpos[this->unk_046][j], gMeMoraYpos[this->unk_046][j],
+ gMeMoraZpos[this->unk_046][j], gMeMoraXrot[this->unk_046][j], gMeMoraYrot[this->unk_046][j],
+ gMeMoraZrot[this->unk_046][j], D_800CFFB4[i], D_800CFFC4[i], this->timer_0C6 % 2U);
}
}
@@ -394,7 +396,7 @@ void func_enmy2_8006BB1C(f32 xPos, f32 yPos, f32 zPos) {
}
}
-void Actor196_Update(Actor196* this) {
+void ActorMoleMissile_Update(ActorMoleMissile* this) {
Vec3f sp44;
switch (this->state) {
@@ -481,7 +483,7 @@ void Actor196_Update(Actor196* this) {
}
if ((this->dmgType != DMG_NONE) && (this->animFrame != 0)) {
- func_effect_8007BFFC(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, 0.0f, this->vel.y, 0.0f, 3.0f, 5);
+ Effect386_Spawn1(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, 0.0f, this->vel.y, 0.0f, 3.0f, 5);
Object_Kill(&this->obj, this->sfxSource);
this->itemDrop = DROP_SILVER_RING;
Actor_Despawn(this);
@@ -489,8 +491,8 @@ void Actor196_Update(Actor196* this) {
this->dmgType = DMG_NONE;
}
-static f32 D_800D001C[5] = { 0.0f, 30.0f, 60.0f, -60.0f, -30.0f }; // could be in-function
void func_enmy2_8006BF7C(f32 xPos, f32 yPos, f32 zPos) {
+ static f32 D_800D001C[5] = { 0.0f, 30.0f, 60.0f, -60.0f, -30.0f };
s32 i;
for (i = 0; i < ARRAY_COUNT(D_800D001C); i++) {
@@ -664,7 +666,7 @@ void ActorDebris_Update(ActorDebris* this) {
if (((this->timer_0BC == 0) || (Object_CheckCollision(this->index, &this->obj.pos, &D_800D0030, 1) != 0) ||
(this->obj.pos.y < (gGroundHeight + 10.0f))) &&
(this->timer_0BE == 0)) {
- func_effect_8007B8F8(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z + 50.0f, this->scale * 10.0f);
+ Effect_Effect364_Spawn(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z + 50.0f, this->scale * 10.0f);
Object_Kill(&this->obj, this->sfxSource);
Effect_SpawnTimedSfxAtPos(&this->obj.pos, NA_SE_EN_EXPLOSION_S);
}
@@ -675,7 +677,7 @@ void ActorDebris_Update(ActorDebris* this) {
if (((this->timer_0BC == 0) || (Object_CheckCollision(this->index, &this->obj.pos, &D_800D0030, 1) != 0) ||
(this->obj.pos.y < (gGroundHeight + 10.0f))) &&
(this->timer_0BE == 0)) {
- func_effect_8007B8F8(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z + 50.0f, this->scale * 10.0f);
+ Effect_Effect364_Spawn(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z + 50.0f, this->scale * 10.0f);
Object_Kill(&this->obj, this->sfxSource);
Effect_SpawnTimedSfxAtPos(&this->obj.pos, NA_SE_EN_EXPLOSION_S);
}
@@ -696,7 +698,7 @@ void ActorDebris_Update(ActorDebris* this) {
if (((this->timer_0BC == 0) || (Object_CheckCollision(this->index, &this->obj.pos, &D_800D0030, 1) != 0) ||
(this->obj.pos.y < (gGroundHeight + 10.0f))) &&
(this->timer_0BE == 0)) {
- func_effect_8007B8F8(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z + 50.0f, this->scale * 10.0f);
+ Effect_Effect364_Spawn(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z + 50.0f, this->scale * 10.0f);
Object_Kill(&this->obj, this->sfxSource);
Effect_SpawnTimedSfxAtPos(&this->obj.pos, NA_SE_EN_EXPLOSION_S);
}
@@ -706,8 +708,8 @@ void ActorDebris_Update(ActorDebris* this) {
if (((this->timer_0BC == 0) || (Object_CheckCollision(this->index, &this->obj.pos, &D_800D0030, 1) != 0) ||
(this->obj.pos.y < (gGroundHeight + 10.0f))) &&
(this->timer_0BE == 0)) {
- func_effect_8007B8F8(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z + 70.0f, this->scale * 20.0f);
- func_effect_8007B8F8(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z + 70.0f, this->scale * 20.0f);
+ Effect_Effect364_Spawn(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z + 70.0f, this->scale * 20.0f);
+ Effect_Effect364_Spawn(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z + 70.0f, this->scale * 20.0f);
Object_Kill(&this->obj, this->sfxSource);
Effect_SpawnTimedSfxAtPos(&this->obj.pos, NA_SE_EN_EXPLOSION_S);
}
@@ -792,7 +794,7 @@ void ActorDebris_Update(ActorDebris* this) {
Effect_SpawnTimedSfxAtPos(&this->obj.pos, NA_SE_EN_EXPLOSION_S);
}
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);
+ Effect_Effect381_Spawn(this->obj.pos.x, sp44, this->obj.pos.z, 2.0f);
Object_Kill(&this->obj, this->sfxSource);
}
} else if (this->state >= 10) {
@@ -803,8 +805,8 @@ void ActorDebris_Update(ActorDebris* this) {
(Object_CheckCollision(this->index, &this->obj.pos, &D_800D0030, 1) != 0) ||
(this->obj.pos.y < (gGroundHeight + 10.0f))) &&
(this->timer_0BE == 0)) {
- func_effect_8007BFFC(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, this->vel.x, this->vel.y,
- this->vel.z, this->scale * 1.5f, 4);
+ Effect386_Spawn1(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, this->vel.x, this->vel.y,
+ this->vel.z, this->scale * 1.5f, 4);
Object_Kill(&this->obj, this->sfxSource);
Effect_SpawnTimedSfxAtPos(&this->obj.pos, NA_SE_EN_EXPLOSION_S);
}
@@ -831,12 +833,12 @@ void ActorDebris_Update(ActorDebris* this) {
if ((this->state != 2) && (this->state != 4)) {
func_enmy2_8006BF7C(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z);
} else if (gCurrentLevel == LEVEL_FORTUNA) {
- func_effect_8007BC7C(RAND_FLOAT_CENTERED(10.0f) + this->obj.pos.x, this->obj.pos.y,
- this->obj.pos.z, 1.0f);
- func_effect_8007BC7C(RAND_FLOAT_CENTERED(10.0f) + this->obj.pos.x, this->obj.pos.y,
- this->obj.pos.z, 1.0f);
- func_effect_8007BC7C(RAND_FLOAT_CENTERED(10.0f) + this->obj.pos.x, this->obj.pos.y,
- this->obj.pos.z, 1.0f);
+ Effect_Effect362_Spawn(RAND_FLOAT_CENTERED(10.0f) + this->obj.pos.x, this->obj.pos.y,
+ this->obj.pos.z, 1.0f);
+ Effect_Effect362_Spawn(RAND_FLOAT_CENTERED(10.0f) + this->obj.pos.x, this->obj.pos.y,
+ this->obj.pos.z, 1.0f);
+ Effect_Effect362_Spawn(RAND_FLOAT_CENTERED(10.0f) + this->obj.pos.x, this->obj.pos.y,
+ this->obj.pos.z, 1.0f);
}
}
@@ -909,7 +911,7 @@ void func_enmy2_8006D0F4(Actor* this) {
}
}
-void MeteoTunnel_Update(MeteoTunnel* this) {
+void MeteoTunnel_Update(MeTunnel* this) {
this->obj.rot.z += 1.0f;
}
@@ -952,7 +954,7 @@ static EventActorInfo sEventActorInfo[108] = {
/* 10 */ { D_ENMY_SPACE_400BD20, gCubeHitbox200, 2.0f, 100.0f, 3000.0f, 1, 0, EISFX_EN_ENGINE_01, 0, 1.0f, 1 },
/* 11 */ { D_ENMY_SPACE_4001310, gCubeHitbox100, 1.5f, 100.0f, 3000.0f, 1, 0, EISFX_EN_ALIEN_FLY, 0, 1.0f, 1 },
/* 12 */ { D_ENMY_SPACE_400B390, gCubeHitbox100, 2.0f, 100.0f, 3000.0f, 1, 0, EISFX_EN_ENGINE_01, 0, 1.0f, 1 },
- /* 13 */ { D_ME_6018C00, gCubeHitbox100, 2.5f, 100.0f, 3000.0f, 1, 0, EISFX_EN_ENGINE_01, 0, 1.0f, 1 },
+ /* 13 */ { aMeMeteor1DL, gCubeHitbox100, 2.5f, 100.0f, 3000.0f, 1, 0, EISFX_EN_ENGINE_01, 0, 1.0f, 1 },
/* 14 */ { D_ME_601F2A0, gCubeHitbox400, 7.0f, 100.0f, 3000.0f, 1, 0, EISFX_EN_ENGINE_01, 0, 1.0f, 1 },
/* 15 */ { D_ENMY_SPACE_400AAE0, gCubeHitbox100, 1.5f, 100.0f, 3000.0f, 1, 0, EISFX_EN_ENGINE_01, 0, 1.0f, 1 },
/* 16 */ { D_ENMY_SPACE_4000650, gCubeHitbox100, 1.5f, 100.0f, 3000.0f, 1, 0, EISFX_EN_ALIEN_FLY, 0, 1.0f, 1 },
@@ -980,23 +982,23 @@ static EventActorInfo sEventActorInfo[108] = {
/* 38 */ { NULL, D_SX_603238C, 1.0f, 500.0f, 3000.0f, 1, 0, EISFX_NONE, 0, 0.0f, 1 },
/* 39 */ { D_SX_6020D20, D_SX_60328CC, -1.0f, 2100.0f, 3001.0f, 0, 0, EISFX_NONE, 0, 0.0f, 1 },
/* 40 */ { NULL, gNoHitbox, 1.0f, 100.0f, 3001.0f, 2, 0, EISFX_NONE, 0, 0.0f, 1 },
- /* 41 */ { D_SY_60097E0, D_SY_6034478, -1.0f, 10000.0f, 3001.0f, 0, 0, EISFX_NONE, 0, 0.0f, 1 },
- /* 42 */ { D_SY_601D730, D_SY_603450C, -1.0f, 10000.0f, 3001.0f, 0, 0, EISFX_NONE, 0, 0.0f, 1 },
+ /* 41 */ { aSyShip1DL, aSyShip1Hitbox, -1.0f, 10000.0f, 3001.0f, 0, 0, EISFX_NONE, 0, 0.0f, 1 },
+ /* 42 */ { aSyShip2DL, aSyShip2Hitbox, -1.0f, 10000.0f, 3001.0f, 0, 0, EISFX_NONE, 0, 0.0f, 1 },
/* 43 */ { NULL, gCubeHitbox100, 1.0f, 20000.0f, 3000.0f, 1, 0, EISFX_ARWING_ENGINE_FG, 0, 0.0f, 0 },
- /* 44 */ { D_SY_60102C0, D_SY_6034588, -1.0f, 10000.0f, 3001.0f, 0, 0, EISFX_NONE, 0, 0.0f, 1 },
+ /* 44 */ { aSyShip3DL, aSyShip3Hitbox, -1.0f, 10000.0f, 3001.0f, 0, 0, EISFX_NONE, 0, 0.0f, 1 },
/* 45 */ { D_ME_6017B60, gCubeHitbox200, -1.0f, 300.0f, 3001.0f, 0, 0, EISFX_NONE, 0, 1.0f, 1 },
/* 46 */ { D_ZO_6004D00, gCubeHitbox200, 1.0f, 100.0f, 3000.0f, 1, 0, EISFX_EN_SHIP_ENGINE_S, 0, 1.0f, 1 },
/* 47 */ { D_ME_601A880, gCubeHitbox100, -1.0f, 100.0f, 3000.0f, 1, 0, EISFX_NONE, 0, 0.0f, 1 },
- /* 48 */ { NULL, D_SY_603405C, 0.3f, 100.0f, 3000.0f, 0, 0, EISFX_EN_ENGINE_01, 0, 1.0f, 1 },
- /* 49 */ { NULL, D_SY_603405C, 0.3f, 100.0f, 3000.0f, 0, 0, EISFX_EN_ENGINE_01, 0, 1.0f, 1 },
- /* 50 */ { NULL, D_SY_603405C, 0.3f, 100.0f, 3000.0f, 0, 0, EISFX_EN_ENGINE_01, 0, 1.0f, 1 },
+ /* 48 */ { NULL, aSyRobotHitbox, 0.3f, 100.0f, 3000.0f, 0, 0, EISFX_EN_ENGINE_01, 0, 1.0f, 1 },
+ /* 49 */ { NULL, aSyRobotHitbox, 0.3f, 100.0f, 3000.0f, 0, 0, EISFX_EN_ENGINE_01, 0, 1.0f, 1 },
+ /* 50 */ { NULL, aSyRobotHitbox, 0.3f, 100.0f, 3000.0f, 0, 0, EISFX_EN_ENGINE_01, 0, 1.0f, 1 },
/* 51 */ { D_SY_6015D60, D_SY_6034124, 2.0f, 100.0f, 3000.0f, 0, 0, EISFX_EN_ENGINE_01, 0, 1.0f, 1 },
/* 52 */ { NULL, D_ZO_602C1A0, -1.0f, 1000.0f, 3000.0f, 0, 0, EISFX_NONE, 0, 0.0f, 1 },
/* 53 */ { D_SX_600B540, D_SX_60328E8, -1.0f, 2100.0f, 3001.0f, 0, 0, EISFX_NONE, 0, 0.0f, 1 },
/* 54 */ { D_ENMY_SPACE_4000EC0, gCubeHitbox100, 1.5f, 100.0f, 3000.0f, 1, 0, EISFX_EN_ENGINE_01, 0, 1.0f, 1 },
/* 55 */ { D_ENMY_SPACE_4008D50, gCubeHitbox100, 1.5f, 100.0f, 3000.0f, 1, 0, EISFX_EN_ENGINE_01, 0, 1.0f, 1 },
/* 56 */ { NULL, gNoHitbox, -1.0f, 2000.0f, 3000.0f, 0, 0, EISFX_GREATFOX_ENGINE, 0, 0.0f, 1 },
- /* 57 */ { D_SY_60102C0, gNoHitbox, -1.0f, 10000.0f, 3001.0f, 0, 0, EISFX_NONE, 0, 0.0f, 1 },
+ /* 57 */ { aSyShip3DL, gNoHitbox, -1.0f, 10000.0f, 3001.0f, 0, 0, EISFX_NONE, 0, 0.0f, 1 },
/* 58 */ { D_SY_601F3D0, gNoHitbox, -1.0f, 10000.0f, 3001.0f, 0, 0, EISFX_NONE, 0, 0.0f, 1 },
/* 59 */ { D_SY_6022B10, gNoHitbox, 2.0f, 100.0f, 3000.0f, 0, 0, EISFX_EN_ENGINE_01, 0, 0.0f, 1 },
/* 60 */ { D_SY_60209F0, gNoHitbox, 2.0f, 100.0f, 3000.0f, 0, 0, EISFX_EN_ENGINE_01, 0, 0.0f, 1 },
@@ -1008,17 +1010,18 @@ static EventActorInfo sEventActorInfo[108] = {
/* 66 */ { D_ME_600BD40, gCubeHitbox100, -1.0f, 100.0f, 8000.0f, 1, 0, EISFX_NONE, 0, 0.0f, 1 },
/* 67 */ { NULL, D_ME_602F604, 3.0f, 100.0f, 3000.0f, 2, 0, EISFX_EN_ENGINE_01, 0, 1.0f, 1 },
/* 68 */ { D_SY_60205D0, D_SY_603445C, 3.0f, 100.0f, 3000.0f, 1, 0, EISFX_NONE, 0, 1.0f, 1 },
- /* 69 */ { D_SY_60036A0, D_SY_6034664, -1.0f, 10000.0f, 3001.0f, 0, 0, EISFX_NONE, 0, 0.0f, 1 },
+ /* 69 */ { aSyShip3DestroyedDL, aSyShip3DestroyedHitbox, -1.0f, 10000.0f, 3001.0f, 0, 0, EISFX_NONE, 0, 0.0f, 1 },
/* 70 */ { D_SY_601AD70, gNoHitbox, 4.0f, 100.0f, 3000.0f, 0, 0, EISFX_EN_ENGINE_01, 0, 0.0f, 1 },
/* 71 */ { aArwingItemLasersDL, gNoHitbox, 1.0f, 100.0f, 3000.0f, 2, 0, EISFX_OB_WING, 0, 0.0f, 1 },
- /* 72 */ { D_SY_60034D0, D_SY_60347D4, 3.0f, 100.0f, 3000.0f, 1, 0, EISFX_NONE, 0, 0.0f, 1 },
- /* 73 */ { D_SY_6005360, D_SY_6034770, -1.0f, 10000.0f, 3001.0f, 0, 0, EISFX_NONE, 0, 0.0f, 1 },
- /* 74 */ { D_SY_600F6C0, D_SY_60347F0, -1.0f, 10000.0f, 3001.0f, 0, 0, EISFX_NONE, 0, 0.0f, 1 },
- /* 75 */ { D_SY_601B610, gNoHitbox, -1.0f, 10000.0f, 3001.0f, 0, 0, EISFX_EN_ENGINE_01, 0, 0.0f, 1 },
- /* 76 */ { D_SY_601C6A0, gNoHitbox, -1.0f, 10000.0f, 3001.0f, 0, 0, EISFX_EN_ENGINE_01, 0, 0.0f, 1 },
- /* 77 */ { D_SY_60188D0, D_SY_603486C, 3.0f, 100.0f, 3001.0f, 0, 0, EISFX_EN_ENGINE_01, 0, 0.0f, 1 },
+ /* 72 */ { aSyShipWindowsDL, aSyShipWindowsHitbox, 3.0f, 100.0f, 3000.0f, 1, 0, EISFX_NONE, 0, 0.0f, 1 },
+ /* 73 */ { aSyShip4DL, aSyShip4Hitbox, -1.0f, 10000.0f, 3001.0f, 0, 0, EISFX_NONE, 0, 0.0f, 1 },
+ /* 74 */ { aSyShip4DestroyedDL, aSyShip4DestroyedHitbox, -1.0f, 10000.0f, 3001.0f, 0, 0, EISFX_NONE, 0, 0.0f, 1 },
+ /* 75 */ { aSyShip2SpriteDL, gNoHitbox, -1.0f, 10000.0f, 3001.0f, 0, 0, EISFX_EN_ENGINE_01, 0, 0.0f, 1 },
+ /* 76 */ { aSyShip3SpriteDL, gNoHitbox, -1.0f, 10000.0f, 3001.0f, 0, 0, EISFX_EN_ENGINE_01, 0, 0.0f, 1 },
+ /* 77 */
+ { aSyShipProjectileDL, aSyShipProjectileHitbox, 3.0f, 100.0f, 3001.0f, 0, 0, EISFX_EN_ENGINE_01, 0, 0.0f, 1 },
/* 78 */ { NULL, gCubeHitbox150, 1.0f, 100.0f, 3000.0f, 2, 0, EISFX_NONE, 0, 1.0f, 0 },
- /* 79 */ { NULL, D_ZO_602C294, 1.0f, 100.0f, 3000.0f, 0, 0, EISFX_NONE, 0, 1.0f, 1 },
+ /* 79 */ { NULL, aZoBirdHitbox, 1.0f, 100.0f, 3000.0f, 0, 0, EISFX_NONE, 0, 1.0f, 1 },
/* 80 */ { NULL, D_VE1_601B474, -1.0f, 100.0f, 3000.0f, 2, 0, EISFX_NONE, 0, 0.0f, 1 },
/* 81 */ { NULL, gNoHitbox, -1.0f, 100.0f, 3000.0f, 0, 0, EISFX_NONE, 0, 0.0f, 1 },
/* 82 */ { NULL, gCubeHitbox100, 2.0f, 100.0f, 3000.0f, 1, 0, EISFX_EN_ENGINE_01, 0, 1.0f, 1 },
@@ -1030,14 +1033,14 @@ static EventActorInfo sEventActorInfo[108] = {
/* 88 */ { NULL, D_AQ_6030B30, 1.0f, 100.0f, 3000.0f, 1, 0, EISFX_NONE, 0, 1.0f, 1 },
/* 89 */ { NULL, D_AQ_6030B14_f32, 1.0f, 100.0f, 3000.0f, 1, 0, EISFX_NONE, 0, 1.0f, 1 },
/* 90 */ { D_MA_601C520, D_MA_60368FC, 1.0f, 100.0f, 3000.0f, 1, 0, EISFX_NONE, 0, 0.0f, 1 },
- /* 91 */ { D_MA_600AF40, D_MA_60368E0, -1.0f, 100.0f, 3000.0f, 1, 0, EISFX_NONE, 0, 0.0f, 1 },
+ /* 91 */ { aMaGuillotineDL, aMaGuillotineHitbox, -1.0f, 100.0f, 3000.0f, 1, 0, EISFX_NONE, 0, 0.0f, 1 },
/* 92 */ { D_WZ_7000C40, gWarpZoneEvent92Hitbox, -1.0f, 2100.0f, 3001.0f, 0, 0, EISFX_NONE, 0, 0.0f, 1 },
/* 93 */ { D_WZ_70010E0, gWarpZoneEvent93Hitbox, -1.0f, 2100.0f, 3001.0f, 0, 0, EISFX_NONE, 0, 0.0f, 1 },
/* 94 */ { D_WZ_7000E80, gWarpZoneEvent94Hitbox, 2.5f, 100.0f, 3000.0f, 1, 0, EISFX_NONE, 0, 1.0f, 1 },
/* 95 */ { D_WZ_70008F0, gCubeHitbox100, -1.0f, 100.0f, 8000.0f, 1, 0, EISFX_NONE, 0, 0.0f, 0 },
/* 96 */ { D_WZ_7000280, gWarpZoneEvent96Hitbox, -1.0f, 1000.0f, 3000.0f, 1, 0, EISFX_NONE, 0, 0.0f, 0 },
/* 97 */ { D_ME_600AC70, gCubeHitbox100, -1.0f, 100.0f, 3000.0f, 1, 0, EISFX_NONE, 0, 0.0f, 1 },
- /* 98 */ { D_MA_601A2B0, D_MA_60364C0, 1.0f, 100.0f, 3000.0f, 1, 1, EISFX_NONE, 0, 0.0f, 1 },
+ /* 98 */ { D_MA_601A2B0, aMaBoulderHitbox, 1.0f, 100.0f, 3000.0f, 1, 1, EISFX_NONE, 0, 0.0f, 1 },
/* 99 */ { D_VE1_6002500, D_VE1_601B944, -1.0f, 100.0f, 3000.0f, 0, 0, EISFX_NONE, 0, 0.0f, 1 },
/* 100 */ { D_VE1_60043F0, gNoHitbox, -1.0f, 100.0f, 3000.0f, 0, 0, EISFX_NONE, 0, 0.0f, 1 },
/* 101 */ { D_VE1_6004310, gNoHitbox, -1.0f, 100.0f, 3000.0f, 0, 0, EISFX_NONE, 0, 0.0f, 1 },
@@ -1046,7 +1049,7 @@ static EventActorInfo sEventActorInfo[108] = {
/* 104 */ { NULL, gNoHitbox, -1.0f, 500.0f, 3000.0f, 0, 0, EISFX_NONE, 0, 0.0f, 0 },
/* 105 */ { NULL, gCubeHitbox200, 1.0f, 100.0f, 3000.0f, 0, 0, EISFX_NONE, 0, 1.0f, 1 },
/* 106 */ { NULL, gCubeHitbox100, 1.0f, 100.0f, 3000.0f, 0, 0, EISFX_EN_ALIEN_FLY, 0, 0.0f, 0 },
- /* 107 */ { D_MA_6002890, D_MA_60368E0, -1.0f, 100.0f, 3000.0f, 1, 0, EISFX_NONE, 0, 0.0f, 1 },
+ /* 107 */ { D_MA_6002890, aMaGuillotineHitbox, -1.0f, 100.0f, 3000.0f, 1, 0, EISFX_NONE, 0, 0.0f, 1 },
};
static Color_RGBA32 sEventTexLineColors[6] = {
@@ -1148,12 +1151,12 @@ void ActorEvent_ProcessScript(ActorEvent* this) {
this->info.targetOffset = 1.0f;
for (i = 0; i < 2; i++) {
- if (gActor194Status[i] == 0) {
- gActor194Status[i] = 1;
+ if (gMeMoraStatus[i] == 0) {
+ gMeMoraStatus[i] = 1;
this->unk_046 = i;
for (j = 0; j < 100; j++) {
- gActor194yPos[i][j] = this->obj.pos.y;
- gActor194zPos[i][j] = this->obj.pos.z;
+ gMeMoraYpos[i][j] = this->obj.pos.y;
+ gMeMoraZpos[i][j] = this->obj.pos.z;
}
if (this->eventType == EVID_200) {
AUDIO_PLAY_SFX(NA_SE_EN_SPACE_SNAKE, this->sfxSource, 4);
@@ -1658,7 +1661,7 @@ void ActorEvent_SpawnEffect374(f32 xPos, f32 yPos, f32 zPos) {
void ActorEvent_SetupTIMine(Actor* actor, f32 xPos, f32 yPos, f32 zPos) {
Actor_Initialize(actor);
actor->obj.status = OBJ_INIT;
- actor->obj.id = OBJ_ACTOR_225;
+ actor->obj.id = OBJ_ACTOR_TI_LANDMINE;
actor->obj.pos.x = xPos;
actor->obj.pos.y = yPos;
@@ -1941,8 +1944,8 @@ void ActorEvent_ProcessActions(ActorEvent* this) {
break;
case EVACT_11:
- func_effect_8007BFFC(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, this->vel.x, this->vel.y,
- this->vel.z, this->scale * 3.0f, 15);
+ Effect386_Spawn1(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, this->vel.x, this->vel.y,
+ this->vel.z, this->scale * 3.0f, 15);
Actor_Despawn(this);
Object_Kill(&this->obj, this->sfxSource);
Effect_SpawnTimedSfxAtPos(&this->obj.pos, NA_SE_EN_EXPLOSION_M);
@@ -2043,8 +2046,8 @@ void ActorEvent_8006FEEC(ActorEvent* this) {
if (this->health <= 0) {
for (i = 3; i < 11; 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);
+ Zoness_ActorDebris_Spawn(&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);
@@ -2189,7 +2192,7 @@ void ActorEvent_800701E0(ActorEvent* this) {
break;
case EVID_61:
- Meteo_8018CCF8(this);
+ Meteo_Effect346_Spawn(this);
break;
case EVID_27:
@@ -2218,7 +2221,7 @@ void ActorEvent_800701E0(ActorEvent* this) {
if (this->eventType == EVID_82) {
AUDIO_PLAY_SFX(NA_SE_OB_SMOKE, this->sfxSource, 0);
this->dmgType = DMG_BEAM;
- func_effect_8007C688(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, 3.0f, 60);
+ Effect_Effect387_Spawn(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, 3.0f, 60);
}
} else {
this->timer_0C6 = 20;
@@ -2292,12 +2295,12 @@ void ActorEvent_800701E0(ActorEvent* this) {
this->obj.pos.z -= this->vel.z;
this->dmgType = DMG_BEAM;
if (this->eventType == EVID_13) {
- this->obj.id = OBJ_ACTOR_182;
+ this->obj.id = OBJ_ACTOR_ME_METEOR_2;
func_enmy_800654E4(&this->obj);
}
if (this->eventType == EVID_61) {
- Meteo_8018CCF8(this);
+ Meteo_Effect346_Spawn(this);
}
}
}
@@ -2308,8 +2311,8 @@ void ActorEvent_80070BA8(ActorEvent* this) {
this->dmgType = DMG_NONE;
if ((this->eventType != EVID_17) || ((this->eventType == EVID_17) && (this->dmgPart == 0))) {
this->timer_0C6 = 10;
- func_effect_8007C120(this->hitPos.x, this->hitPos.y, this->hitPos.z, this->vel.x, this->vel.y, this->vel.z,
- 0.2f, 10);
+ Effect_Effect390_Spawn(this->hitPos.x, this->hitPos.y, this->hitPos.z, this->vel.x, this->vel.y,
+ this->vel.z, 0.2f, 10);
this->health -= this->damage;
AUDIO_PLAY_SFX(NA_SE_EN_SPARK_DAMAGE_M, this->sfxSource, 4);
if (this->health <= 0) {
@@ -2871,13 +2874,13 @@ void ActorEvent_80071DC0(ActorEvent* this) {
}
if (((gGameFrameCount % 2) == 0)) {
- func_effect_8007C120(this->obj.pos.x + sp38.x, this->obj.pos.y + sp38.y, this->obj.pos.z + sp38.z, this->vel.x,
- this->vel.y, this->vel.z, 0.3f, 20);
+ Effect_Effect390_Spawn(this->obj.pos.x + sp38.x, this->obj.pos.y + sp38.y, this->obj.pos.z + sp38.z,
+ this->vel.x, this->vel.y, this->vel.z, 0.3f, 20);
}
if (((gGameFrameCount % 8) == 0)) {
- func_effect_8007BFFC(this->obj.pos.x + sp38.x, this->obj.pos.y + sp38.y, this->obj.pos.z + sp38.z, this->vel.x,
- this->vel.y, this->vel.z, 10.0f, 9);
+ Effect386_Spawn1(this->obj.pos.x + sp38.x, this->obj.pos.y + sp38.y, this->obj.pos.z + sp38.z, this->vel.x,
+ this->vel.y, this->vel.z, 10.0f, 9);
}
if (((gGameFrameCount % 16) == 0)) {
@@ -3033,9 +3036,9 @@ void ActorEvent_Update(ActorEvent* this) {
if (this->state == EVSTATE_1000) {
this->obj.rot.y += this->fwork[15];
this->obj.rot.x += this->fwork[16];
- if (((gGameFrameCount % 16) == 0)) {
- func_effect_8007C120(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, this->vel.x, this->vel.y,
- this->vel.z, 0.3f, 10);
+ if ((gGameFrameCount % 16) == 0) {
+ Effect_Effect390_Spawn(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, this->vel.x, this->vel.y,
+ this->vel.z, 0.3f, 10);
}
return;
}
@@ -3054,12 +3057,12 @@ void ActorEvent_Update(ActorEvent* this) {
this->counter_04E = 0;
}
- gActor194xPos[this->unk_046][this->counter_04E] = this->obj.pos.x;
- gActor194yPos[this->unk_046][this->counter_04E] = this->obj.pos.y;
- gActor194zPos[this->unk_046][this->counter_04E] = this->obj.pos.z;
- gActor194xRot[this->unk_046][this->counter_04E] = this->obj.rot.x;
- gActor194yRot[this->unk_046][this->counter_04E] = this->obj.rot.y;
- gActor194zRot[this->unk_046][this->counter_04E] = this->obj.rot.z;
+ gMeMoraXpos[this->unk_046][this->counter_04E] = this->obj.pos.x;
+ gMeMoraYpos[this->unk_046][this->counter_04E] = this->obj.pos.y;
+ gMeMoraZpos[this->unk_046][this->counter_04E] = this->obj.pos.z;
+ gMeMoraXrot[this->unk_046][this->counter_04E] = this->obj.rot.x;
+ gMeMoraYrot[this->unk_046][this->counter_04E] = this->obj.rot.y;
+ gMeMoraZrot[this->unk_046][this->counter_04E] = this->obj.rot.z;
if (this->dmgType != DMG_NONE) {
this->dmgType = DMG_NONE;
@@ -3074,7 +3077,7 @@ void ActorEvent_Update(ActorEvent* this) {
func_effect_8007D2C8(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, 8.0f);
this->obj.status = OBJ_DYING;
this->timer_0BC = 20;
- this->obj.id = OBJ_ACTOR_194;
+ this->obj.id = OBJ_ACTOR_ME_MORA;
}
}
}
@@ -3484,7 +3487,7 @@ void ActorEvent_Update(ActorEvent* this) {
case EVID_94:
case EVID_95:
case EVID_96:
- if (((gGameFrameCount % 8) == 0)) {
+ if ((gGameFrameCount % 8) == 0) {
this->fwork[18] = RAND_FLOAT(255.0f);
this->fwork[19] = RAND_FLOAT(255.0f);
this->fwork[20] = RAND_FLOAT(255.0f);
@@ -3561,7 +3564,7 @@ void ActorEvent_Update(ActorEvent* this) {
case EVID_48:
case EVID_49:
case EVID_50:
- SectorY_Actor204_Update(this);
+ SectorY_SyRobot_Update(this);
break;
case EVID_52:
@@ -3598,7 +3601,7 @@ void ActorEvent_Update(ActorEvent* this) {
if ((this->obj.pos.y + sp90.y) > -30.0f) {
for (sp74 = 0; sp74 < 7; sp74++) {
- effect = func_effect_8007783C(OBJ_EFFECT_394);
+ effect = Effect_Load(OBJ_EFFECT_394);
if (effect != NULL) {
effect->unk_78 = effect->unk_7A = 12;
@@ -3630,7 +3633,7 @@ void ActorEvent_Update(ActorEvent* this) {
}
if ((fabsf(this->fwork[0]) > 10.0f) && ((gGameFrameCount % 2) == 0)) {
- effect = func_effect_8007783C(OBJ_EFFECT_394);
+ effect = Effect_Load(OBJ_EFFECT_394);
if (effect != NULL) {
Matrix_RotateZ(gCalcMatrix, this->rot_0F4.z * M_DTOR, MTXF_NEW);
Matrix_MultVec3fNoTranslate(gCalcMatrix, &D_800D1290, &sp90);
@@ -3661,7 +3664,7 @@ void ActorEvent_Update(ActorEvent* this) {
}
if (((gGameFrameCount % 4) == 0)) {
- effect = func_effect_8007783C(OBJ_EFFECT_394);
+ effect = Effect_Load(OBJ_EFFECT_394);
if (effect != NULL) {
effect->unk_78 = effect->unk_7A = 11;
effect->obj.status = OBJ_ACTIVE;
@@ -3724,7 +3727,7 @@ void ActorEvent_Update(ActorEvent* this) {
}
if ((this->animFrame >= 18) && (this->animFrame < 24)) {
- func_effect_8007BC7C(this->obj.pos.x, this->obj.pos.y + 80.0f, this->obj.pos.z + 60.0f, 20.0f);
+ Effect_Effect362_Spawn(this->obj.pos.x, this->obj.pos.y + 80.0f, this->obj.pos.z + 60.0f, 20.0f);
}
if (this->animFrame < 49) {
@@ -3733,9 +3736,9 @@ void ActorEvent_Update(ActorEvent* this) {
this->animFrame = 49;
}
if ((gGameFrameCount % 2) != 0) {
- Aquas_801AC8A8(RAND_FLOAT_CENTERED(100.0f) + this->obj.pos.x,
- RAND_FLOAT(50.0f) + this->obj.pos.y,
- RAND_FLOAT_CENTERED(100.0f) + this->obj.pos.z, 1.0f, 0);
+ Aquas_Effect366_Spawn(RAND_FLOAT_CENTERED(100.0f) + this->obj.pos.x,
+ RAND_FLOAT(50.0f) + this->obj.pos.y,
+ RAND_FLOAT_CENTERED(100.0f) + this->obj.pos.z, 1.0f, 0);
}
}
this->timer_0C2 = 10000;
@@ -3843,7 +3846,7 @@ bool ActorEvent_OverrideLimbDraw3(s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3f*
return false;
}
-s32 Scenery111_Draw(Scenery_111* this) {
+s32 Scenery111_Draw(SyShipDebris* this) {
RCP_SetupDL(&gMasterDisp, SETUPDL_60);
gSPDisplayList(gMasterDisp++, D_SY_601AD70);
RCP_SetupDL(&gMasterDisp, SETUPDL_64);
@@ -3862,8 +3865,8 @@ void ActorEvent_Draw(ActorEvent* this) {
(this->eventType != EVID_62) && (this->eventType != EVID_AQ_CLAM) && (this->eventType != EVID_98) &&
(this->scale > 0.5f) && (this->timer_0C6 >= 9) && ((this->timer_0C6 & 3) == 0) &&
(gPlayState != PLAY_PAUSE)) {
- func_effect_8007C120(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, this->vel.x, this->vel.y,
- this->vel.z, this->scale * 0.07f, 3);
+ Effect_Effect390_Spawn(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, this->vel.x, this->vel.y,
+ this->vel.z, this->scale * 0.07f, 3);
}
if ((this->eventType != EVID_A6_MISSILE) && (this->eventType != EVID_23) && (this->eventType != EVID_79) &&
@@ -4063,7 +4066,7 @@ void ActorEvent_Draw(ActorEvent* this) {
case EVID_48:
case EVID_49:
case EVID_50:
- SectorY_Actor204_Draw(this);
+ SectorY_SyRobot_Draw(this);
break;
case EVID_52:
@@ -4104,7 +4107,7 @@ void ActorEvent_Draw(ActorEvent* this) {
case EVID_79:
temp_s0 = this->state;
this->state = 2; // actor 235 state
- Zoness_Actor235_Draw(this);
+ Zoness_ZoBird_Draw(this);
this->state = temp_s0;
break;
@@ -4131,8 +4134,8 @@ void ActorEvent_Draw(ActorEvent* this) {
case EVID_AQ_CLAM:
Matrix_Scale(gGfxMatrix, 3.0f, 3.0f, 3.0f, MTXF_APPLY);
- Animation_GetFrameData(&D_AQ_602201C, this->animFrame, sp114);
- Animation_DrawSkeleton(1, D_AQ_60220E8, sp114, NULL, NULL, this, &gIdentityMatrix);
+ Animation_GetFrameData(&aAqOysterAnim, this->animFrame, sp114);
+ Animation_DrawSkeleton(1, aAqOysterSkel, sp114, NULL, NULL, this, &gIdentityMatrix);
break;
case EVID_BILL:
@@ -4260,9 +4263,9 @@ void func_enmy2_800763A4(Actor* actor) {
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);
+ Effect386_Spawn1(actor->obj.pos.x, sp58 + 20.0f, actor->obj.pos.z, 0.0f, 0.0f, 0.0f, actor->scale * 3.0f,
+ 5);
+ Effect_Effect381_Spawn(actor->obj.pos.x, sp58, actor->obj.pos.z, 2.0f);
actor->timer_0BE = 2;
Effect_SpawnTimedSfxAtPos(&actor->obj.pos, NA_SE_EN_EXPLOSION_S);
return;
@@ -4271,8 +4274,8 @@ void func_enmy2_800763A4(Actor* actor) {
if (gGroundType == 4) {
if (Ground_801B6AEC(actor->obj.pos.x, actor->obj.pos.y - 10.0f, actor->obj.pos.z + gPathProgress) != 0) {
func_effect_8007D2C8(actor->obj.pos.x, actor->obj.pos.y + 20.0f, actor->obj.pos.z, actor->scale * 6.0f);
- func_effect_8007BFFC(actor->obj.pos.x - actor->vel.x, actor->obj.pos.y + 30.0f,
- actor->obj.pos.z - actor->vel.z, 0.0f, 0.0f, 0.0f, actor->scale * 4.0f, 20);
+ Effect386_Spawn1(actor->obj.pos.x - actor->vel.x, actor->obj.pos.y + 30.0f,
+ actor->obj.pos.z - actor->vel.z, 0.0f, 0.0f, 0.0f, actor->scale * 4.0f, 20);
func_enmy_80062C38(actor->obj.pos.x, actor->obj.pos.z);
actor->timer_0BE = 2;
Effect_SpawnTimedSfxAtPos(&actor->obj.pos, NA_SE_EN_EXPLOSION_S);
@@ -4326,21 +4329,21 @@ void func_enmy2_800763A4(Actor* actor) {
if ((actor->obj.pos.y < (gGroundHeight + 30.0f)) && (gLevelType == LEVELTYPE_PLANET)) {
actor->vel.z = 0.0f;
if (gGroundSurface == SURFACE_WATER) {
- func_effect_8007D9DC(actor->obj.pos.x, gGroundHeight + 2.0f, actor->obj.pos.z, 3.0f, 20.0f,
- 0);
- func_effect_8007D9DC(actor->obj.pos.x, gGroundHeight + 2.0f, actor->obj.pos.z, 3.0f, 20.0f,
- 10);
- func_effect_8007D9DC(actor->obj.pos.x, gGroundHeight + 2.0f, actor->obj.pos.z, 3.0f, 20.0f,
- 20);
- func_effect_8007ADF4(actor->obj.pos.x, gGroundHeight, actor->obj.pos.z, 0.1f, 3.0f);
+ Effect_Effect367_Spawn(actor->obj.pos.x, gGroundHeight + 2.0f, actor->obj.pos.z, 3.0f,
+ 20.0f, 0);
+ Effect_Effect367_Spawn(actor->obj.pos.x, gGroundHeight + 2.0f, actor->obj.pos.z, 3.0f,
+ 20.0f, 10);
+ Effect_Effect367_Spawn(actor->obj.pos.x, gGroundHeight + 2.0f, actor->obj.pos.z, 3.0f,
+ 20.0f, 20);
+ Effect_Effect372_Spawn2(actor->obj.pos.x, gGroundHeight, actor->obj.pos.z, 0.1f, 3.0f);
} else {
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);
+ Effect_Effect390_Spawn(actor->obj.pos.x, 20.0f, actor->obj.pos.z, 0.0f, 0.0f, 0.0f,
+ actor->scale * 0.05f, 30);
if ((gCurrentLevel == LEVEL_FORTUNA) || (gCurrentLevel == LEVEL_VENOM_2)) {
- func_effect_8007C688(actor->obj.pos.x, gGroundHeight + 30.0f, actor->obj.pos.z, 3.0f, 60);
+ Effect_Effect387_Spawn(actor->obj.pos.x, gGroundHeight + 30.0f, actor->obj.pos.z, 3.0f, 60);
if (gCurrentLevel == LEVEL_FORTUNA) {
func_enmy_80062C38(actor->obj.pos.x, actor->obj.pos.z);
}
@@ -4351,25 +4354,26 @@ void func_enmy2_800763A4(Actor* actor) {
func_effect_8007D0E0(actor->obj.pos.x - actor->vel.x, actor->obj.pos.y + 30.0f,
actor->obj.pos.z - actor->vel.z, actor->scale * 5.0f);
if (gLevelMode == LEVELMODE_ALL_RANGE) {
- func_effect_8007BFFC(actor->obj.pos.x, actor->obj.pos.y + 30.0f, actor->obj.pos.z, actor->vel.x,
- 10.0f, actor->vel.z, actor->scale * 3.0f, 20);
+ Effect386_Spawn1(actor->obj.pos.x, actor->obj.pos.y + 30.0f, actor->obj.pos.z, actor->vel.x,
+ 10.0f, actor->vel.z, actor->scale * 3.0f, 20);
if (sp60 == 999) {
- func_effect_8007C688(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z,
- actor->scale * 3.0f, 70);
+ Effect_Effect387_Spawn(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z,
+ actor->scale * 3.0f, 70);
}
for (var_s0 = 0; var_s0 < 4; var_s0++) {
if (Rand_ZeroOne() < 0.7f) {
if (gCurrentLevel == LEVEL_FORTUNA) {
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);
+ Effect_Effect357_Spawn50(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z,
+ 1.0f);
}
}
}
} else {
- func_effect_8007BFFC(actor->obj.pos.x - actor->vel.x, actor->obj.pos.y + 30.0f,
- (actor->obj.pos.z - actor->vel.z) + 48.0f, 0.0f, 0.0f, 0.0f,
- actor->scale * 3.0f, 5);
+ Effect386_Spawn1(actor->obj.pos.x - actor->vel.x, actor->obj.pos.y + 30.0f,
+ (actor->obj.pos.z - actor->vel.z) + 48.0f, 0.0f, 0.0f, 0.0f,
+ actor->scale * 3.0f, 5);
}
actor->timer_0BE = 2;
@@ -4390,13 +4394,13 @@ void func_enmy2_800763A4(Actor* actor) {
if (gCurrentLevel == LEVEL_FORTUNA) {
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);
+ Effect_Effect357_Spawn50(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 1.0f);
}
}
}
- func_effect_8007BFFC(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, actor->vel.x, actor->vel.y,
- actor->vel.z, 5.0f, 15);
+ Effect386_Spawn1(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, actor->vel.x, actor->vel.y,
+ actor->vel.z, 5.0f, 15);
func_effect_8007D0E0(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z - actor->vel.z, 8.0f);
} else {
if ((actor->eventType != EVID_13) && (actor->eventType != EVID_61)) {
@@ -4405,8 +4409,8 @@ void func_enmy2_800763A4(Actor* actor) {
}
if (actor->eventType == EVID_36) {
- func_effect_8007BFFC(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, actor->vel.x,
- actor->vel.y, actor->vel.z, 5.0f, 15);
+ Effect386_Spawn1(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, actor->vel.x, actor->vel.y,
+ actor->vel.z, 5.0f, 15);
}
}
@@ -4433,13 +4437,13 @@ void func_enmy2_800763A4(Actor* actor) {
void ActorEvent_Dying(ActorEvent* this) {
if ((this->eventType == EVID_48) || (this->eventType == EVID_49) || (this->eventType == EVID_50)) {
- SectorY_Actor204_Update(this);
+ SectorY_SyRobot_Update(this);
} else {
func_enmy2_800763A4(this);
}
}
-void Actor234_Update(Actor234* this) {
+void TiGreatFox_Update(TiGreatFox* this) {
Vec3f sp24;
Math_Vec3fFromAngles(&sp24, this->obj.rot.x, this->obj.rot.y, 50.0f);
@@ -4448,6 +4452,6 @@ void Actor234_Update(Actor234* this) {
this->vel.z = sp24.z;
}
-void Actor234_Draw(Actor234* this) {
+void TiGreatFox_Draw(TiGreatFox* this) {
Cutscene_DrawGreatFox();
}
diff --git a/src/engine/fox_fade.c b/src/engine/fox_fade.c
index 2999878d..adca18a9 100644
--- a/src/engine/fox_fade.c
+++ b/src/engine/fox_fade.c
@@ -41,7 +41,7 @@ void Wipe_Draw(WipeMode mode, s32 frame) {
Wipe_Vertical(frame);
break;
default:
- (void) "そのような フェード は ない (%d)\n"; // There is no such fade
+ PRINTF("そのような フェード は ない (%d)\n"); // There is no such fade
break;
}
}
diff --git a/src/engine/fox_game.c b/src/engine/fox_game.c
index d4006f58..88550a7f 100644
--- a/src/engine/fox_game.c
+++ b/src/engine/fox_game.c
@@ -20,7 +20,7 @@ f32 gFovY;
f32 gProjectNear;
f32 gProjectFar;
-bool gShowCrosshairs[4] = { true, true, true, true };
+bool gShowReticles[4] = { true, true, true, true };
bool D_game_800D2870 = false;
static s32 sVsCameraULx[] = { 0, SCREEN_WIDTH / 2, 0, SCREEN_WIDTH / 2 };
static s32 sVsCameraLRx[] = { SCREEN_WIDTH / 2 - 1, SCREEN_WIDTH - 1, SCREEN_WIDTH / 2 - 1, SCREEN_WIDTH - 1 };
@@ -114,6 +114,7 @@ void Game_SetGameState(void) {
gSceneSetup = 0;
gFillScreenColor = gBgColor = 0;
gPathProgress = 0.0f;
+
if ((gCurrentLevel == LEVEL_VENOM_2) && (gLevelPhase == 2)) {
gFillScreenColor = gBgColor = 0xFFFF; // 248, 248, 248
gFillScreenRed = gFillScreenGreen = gFillScreenBlue = 255;
@@ -281,7 +282,7 @@ void Game_Draw(s32 playerNum) {
break;
case DRAW_PLAY:
gPlayerNum = playerNum;
- Play_Draw();
+ Display_Update();
break;
case DRAW_UNK_MAP: // likely game over
Background_DrawStarfield();
@@ -342,29 +343,36 @@ void Game_Update(void) {
u8 soundMode;
Game_SetGameState();
+
if (gGameStandby) {
Game_InitStandbyDL(&gUnkDisp1);
gGameStandby = false;
return;
}
+
Game_InitMasterDL(&gUnkDisp1);
Game_SetScene();
+
if (Game_ChangeScene() != true) {
Lib_InitPerspective(&gUnkDisp1);
Game_InitViewport(&gUnkDisp1, gCamCount, 0);
+
if (gNextGameStateTimer != 0) {
gNextGameStateTimer--;
}
+
switch (gGameState) {
case GSTATE_BOOT:
gNextGameStateTimer = 2;
gGameState++;
break;
+
case GSTATE_BOOT_WAIT:
if (gNextGameStateTimer == 0) {
gGameState++;
}
break;
+
case GSTATE_SHOW_LOGO:
RCP_SetupDL(&gMasterDisp, SETUPDL_76);
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 255);
@@ -375,6 +383,7 @@ void Game_Update(void) {
TextureRect_IA8(&gMasterDisp, &gNintendoLogo[128 * 16 * 4], 128, 10, 100.0f, 150.0f, 1.0f, 1.0f);
gGameState++;
break;
+
case GSTATE_CHECK_SAVE:
if (Save_Read() != 0) {
#ifdef AVOID_UB
@@ -397,11 +406,13 @@ void Game_Update(void) {
TextureRect_IA8(&gMasterDisp, &gNintendoLogo[128 * 16 * 3], 128, 16, 100.0f, 134.0f, 1.0f, 1.0f);
TextureRect_IA8(&gMasterDisp, &gNintendoLogo[128 * 16 * 4], 128, 10, 100.0f, 150.0f, 1.0f, 1.0f);
break;
+
case GSTATE_START:
gGameState = GSTATE_INIT;
gSceneId = SCENE_TITLE;
gSceneSetup = 0;
break;
+
case GSTATE_INIT:
gGameState = GSTATE_TITLE;
gTitleState = 1;
@@ -430,17 +441,21 @@ void Game_Update(void) {
D_ctx_80177858[i] = 3;
gPlayerForms[i] = FORM_ARWING;
- gShowCrosshairs[i] = true;
+ gShowReticles[i] = true;
gPlayerGlareAlphas[i] = 0;
}
+
gVersusStage = 0;
gVsPointsToWin = 3;
gBlurAlpha = 255;
+
for (i = 0; i < ARRAY_COUNT(gLeveLClearStatus); i++) {
gLeveLClearStatus[i] = 0;
}
+
gExpertMode = false;
gOptionSoundMode = gSaveFile.save.data.soundMode;
+
switch (gOptionSoundMode) {
case OPTIONSOUND_STEREO:
soundMode = SOUNDMODE_STEREO;
@@ -456,10 +471,12 @@ void Game_Update(void) {
soundMode = SOUNDMODE_STEREO;
break;
}
+
SEQCMD_SET_SOUND_MODE(soundMode);
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;
}
@@ -473,6 +490,7 @@ void Game_Update(void) {
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);
break;
@@ -498,7 +516,9 @@ void Game_Update(void) {
default:
break;
}
+
Game_Draw(0);
+
if (gCamCount == 2) {
Game_InitViewport(&gMasterDisp, gCamCount, 1);
Game_Draw(1);
@@ -538,7 +558,9 @@ void Game_Update(void) {
HUD_dummy_8008CB8C();
}
+
partialFill = false;
+
if (gCamCount == 1) {
Graphics_FillRectangle(&gMasterDisp, 0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, gPlayerGlareReds[0],
gPlayerGlareGreens[0], gPlayerGlareBlues[0], gPlayerGlareAlphas[0]);
@@ -565,9 +587,11 @@ void Game_Update(void) {
}
}
}
+
Background_dummy_80040CDC();
HUD_DrawStatusScreens();
AllRange_DrawCountdown();
+
if ((gGameState == GSTATE_PLAY) && gVersusMode) {
Versus_Draw();
}
@@ -585,6 +609,9 @@ void Game_Update(void) {
#if MODS_FPS_COUNTER == 1
Play_RenderFps();
#endif
+#if MODS_SPAWNER == 1
+ Spawner();
+#endif
}
}
@@ -594,6 +621,9 @@ void Game_Update(void) {
#if MODS_RAM_MOD == 1
#include "../mods/object_ram.c"
#endif
+#if MODS_SPAWNER == 1
+#include "../mods/spawner.c"
+#endif
Actor* Game_SpawnActor(ObjectId objId) {
Actor* actor = gActors;
diff --git a/src/engine/fox_hud.c b/src/engine/fox_hud.c
index f59c8ecb..1589f979 100644
--- a/src/engine/fox_hud.c
+++ b/src/engine/fox_hud.c
@@ -359,7 +359,7 @@ void func_hud_80085944(void) {
y = D_800D1AD8[i + 1];
scale = 0.28f;
- if (D_ctx_80177C70 == 2) {
+ if (gFovYMode == 2) {
x -= 7.00f;
y += 7.00f;
scale += 0.06f;
@@ -408,7 +408,7 @@ void func_hud_80085944(void) {
y = D_800D1AD8[i + 1];
scale = 0.28f;
- if (D_ctx_80177C70 == 2) {
+ if (gFovYMode == 2) {
x -= 7.00f;
y += 7.00f;
scale += 0.06f;
@@ -1834,7 +1834,7 @@ void func_hud_80089D28(void) {
gSPDisplayList(gMasterDisp++, D_1024230);
}
-void RadarMark_Draw(s32 arg0) {
+void HUD_RadarMark_Draw(s32 arg0) {
s32 var_a1;
s32 var_a1_2;
@@ -2149,7 +2149,7 @@ s32 func_hud_8008A4DC(void) {
Matrix_Scale(gGfxMatrix, scale, scale, 1.0f, MTXF_APPLY);
Matrix_SetGfxMtx(&gMasterDisp);
- RadarMark_Draw(gRadarMarks[i].type);
+ HUD_RadarMark_Draw(gRadarMarks[i].type);
Matrix_Pop(&gGfxMatrix);
gRadarMarks[i].status = 0;
@@ -2160,7 +2160,7 @@ s32 func_hud_8008A4DC(void) {
}
// Why is this function here in fox_hud? Weird.
-s32 Hud_MissileSeekModeCheck(s32 missileSeekMode) {
+s32 ActorMissileSeek_ModeCheck(s32 missileSeekMode) {
Actor* actor;
s32 i;
s32 ret = 0;
@@ -2191,7 +2191,7 @@ s32 Hud_MissileSeekModeCheck(s32 missileSeekMode) {
return ret;
}
-void func_hud_8008AD94(void) {
+void HUD_RadioCharacterName_Draw(void) {
if (gGameState == GSTATE_PLAY) {
RCP_SetupDL(&gMasterDisp, SETUPDL_76);
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 0, 255);
@@ -2316,7 +2316,7 @@ s32 D_800D1EB8 = 255;
s32 D_800D1EBC = 255;
void func_hud_8008B2F0(void) {
- f32 var_fv0;
+ f32 shields;
switch (D_hud_80161730) {
case 0:
@@ -2330,8 +2330,8 @@ void func_hud_8008B2F0(void) {
D_801617A4 = D_801617A8 = 1.0f;
}
- var_fv0 = gPlayer[0].shields;
- D_801617AC = var_fv0 / ((256.0f * D_801617A8) - 1.0f);
+ shields = gPlayer[0].shields;
+ D_801617AC = shields / ((256.0f * D_801617A8) - 1.0f);
if (gGoldRingCount[0] >= 3) {
D_hud_80161730 = 2;
@@ -2354,7 +2354,7 @@ void func_hud_8008B2F0(void) {
}
}
- if (((D_801617B0 != 0) || ((D_801617A4 - D_801617A8) > 0.1f)) && (gGameFrameCount & 2)) {
+ if (((D_801617B0 != 0) || ((D_801617A4 - D_801617A8) > 0.1f)) && ((gGameFrameCount & 2) != 0)) {
D_800D1EB4 = 0;
D_800D1EB8 = 255;
D_800D1EBC = 0;
@@ -2368,11 +2368,11 @@ void func_hud_8008B2F0(void) {
Math_SmoothStepToF(&D_801617A8, D_801617A4, 0.02f, 1000.0f, 0.001f);
- var_fv0 = gPlayer[0].shields;
- if (var_fv0 > (256.0f * D_801617A8) - 1.0f) {
- var_fv0 = (256.0f * D_801617A8) - 1.0f;
+ shields = gPlayer[0].shields;
+ if (shields > (256.0f * D_801617A8) - 1.0f) {
+ shields = (256.0f * D_801617A8) - 1.0f;
}
- D_801617AC = var_fv0 / ((256.0f * D_801617A8) - 1.0f);
+ D_801617AC = shields / ((256.0f * D_801617A8) - 1.0f);
break;
}
}
@@ -2465,7 +2465,7 @@ s32 func_hud_8008B774(void) {
((gActors[i].obj.id == OBJ_ACTOR_TEAM_BOSS) &&
((gActors[i].aiType == AI360_FALCO) || (gActors[i].aiType == AI360_SLIPPY) ||
(gActors[i].aiType == AI360_PEPPY)))) {
- if (gActors[i].timer_0C6) {
+ if (gActors[i].timer_0C6 != 0) {
ret = 1;
} else {
ret = 0;
@@ -2489,7 +2489,7 @@ s32 func_hud_8008B774(void) {
case 6:
case 7:
if (gLevelMode == LEVELMODE_ALL_RANGE) {
- if (gActors[i].timer_0C6) {
+ if (gActors[i].timer_0C6 != 0) {
ret = 1;
}
if ((ret == 1) && (gActors[i].health <= 0)) {
@@ -2503,11 +2503,12 @@ s32 func_hud_8008B774(void) {
break;
default:
- if (gActors[i].timer_0C6) {
+ if (gActors[i].timer_0C6 != 0) {
ret = 1;
}
break;
}
+
return ret;
}
@@ -2973,6 +2974,7 @@ void func_hud_8008D4F0(f32 arg0, f32 arg1) {
if (temp_fs0 > 0.01f) {
func_hud_800857DC(D_800D2108[var_v1] + temp + 1.0f, D_800D211C[var_v1] + sp60, temp_fs0, 1.0f);
}
+
RCP_SetupDL(&gMasterDisp, SETUPDL_76);
gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, 255);
func_hud_80085740(D_800D2108[var_v1], D_800D211C[var_v1], 1.0f, 1.0f);
@@ -3645,7 +3647,7 @@ void HUD_Draw(void) {
func_hud_80088970();
}
-void HUD_BossFO_Draw(Boss* boss) {
+void HUD_FoBase_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);
@@ -3656,7 +3658,7 @@ void HUD_BossFO_Draw(Boss* boss) {
gDPSetTextureFilter(gMasterDisp++, G_TF_BILERP);
}
-void func_hud_8008FFF0(Boss* boss, s32 arg1) {
+void func_hud_8008FFF0(FoBase* this, s32 arg1) {
Vec3s D_800D21C8[] = {
{ -385, 54, 233 }, { -324, 148, 193 }, { -267, 186, 136 }, { -128, 430, 180 }, { -231, 584, 140 },
{ -431, 551, -120 }, { -285, 516, -32 }, { -285, 601, 18 }, { 300, 596, 18 }, { 300, 529, -65 },
@@ -3670,6 +3672,7 @@ void func_hud_8008FFF0(Boss* boss, s32 arg1) {
s32 i;
f32 temp;
s32 temp2;
+
if (arg1 >= 7000) {
temp2 = arg1 - 7000;
@@ -3679,160 +3682,162 @@ void func_hud_8008FFF0(Boss* boss, s32 arg1) {
temp = temp2 / 1596.0f;
- if (boss->swork[0] != 1) {
+ if (this->swork[0] != 1) {
temp /= 2.0f;
}
i = RAND_INT(36.0f);
if ((gGameFrameCount & 2) == 0) {
- func_effect_8007C120(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, 0.3f * temp, 20);
+ Effect_Effect390_Spawn(this->obj.pos.x + D_800D21C8[i].x, this->obj.pos.y + D_800D21C8[i].y,
+ this->obj.pos.z + D_800D21C8[i].z, 0.0f, 0.0f, 0.0f, 0.3f * temp, 20);
}
- if (((gGameFrameCount % 8) == 0)) {
- 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);
+ if ((gGameFrameCount % 8) == 0) {
+ Effect386_Spawn1(this->obj.pos.x + D_800D21C8[i].x, this->obj.pos.y + D_800D21C8[i].y,
+ this->obj.pos.z + D_800D21C8[i].z, 0.0f, 0.0f, 0.0f, 7.0f * temp, 10);
}
}
}
-s32 func_hud_80090200(Boss* boss) {
- Vec3f dest, src;
+s32 HUD_FoBase_ExplodeCs(FoBase* this) {
+ Vec3f dest;
+ Vec3f src;
Player* player;
- s32 ret = 0;
+ s32 csState = 0;
- if (boss->swork[0] == 1) {
- func_hud_8008FFF0(boss, 8596);
+ if (this->swork[0] == 1) {
+ func_hud_8008FFF0(this, 8596);
player = &gPlayer[0];
- ret = 1;
+ csState = 1;
- switch (boss->swork[1]) {
+ switch (this->swork[1]) {
case 0:
- AUDIO_PLAY_SFX(NA_SE_EARTHQUAKE, boss->sfxSource, 0);
- AUDIO_PLAY_SFX(NA_SE_EXPLOSION_DEMO, boss->sfxSource, 0);
+ AUDIO_PLAY_SFX(NA_SE_EARTHQUAKE, this->sfxSource, 0);
+ AUDIO_PLAY_SFX(NA_SE_EXPLOSION_DEMO, this->sfxSource, 0);
SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_BGM, 50);
SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_FANFARE, 50);
- player->cam.eye.x = boss->fwork[4] = boss->obj.pos.x;
- player->cam.eye.y = boss->fwork[5] = boss->obj.pos.y + 500.0f;
- player->cam.eye.z = boss->fwork[6] = boss->obj.pos.z + 4000.0f;
+ player->cam.eye.x = this->fwork[4] = this->obj.pos.x;
+ player->cam.eye.y = this->fwork[5] = this->obj.pos.y + 500.0f;
+ player->cam.eye.z = this->fwork[6] = this->obj.pos.z + 4000.0f;
- player->cam.at.x = boss->obj.pos.x;
- player->cam.at.y = boss->obj.pos.y;
- player->cam.at.z = boss->obj.pos.z;
+ player->cam.at.x = this->obj.pos.x;
+ player->cam.at.y = this->obj.pos.y;
+ player->cam.at.z = this->obj.pos.z;
- boss->fwork[7] = 0.0f;
- boss->fwork[8] = 0.0f;
- boss->fwork[9] = 10.0f;
+ this->fwork[7] = 0.0f;
+ this->fwork[8] = 0.0f;
+ this->fwork[9] = 10.0f;
- boss->timer_050 = 1000;
+ this->timer_050 = 1000;
- boss->swork[1] = 1;
+ this->swork[1] = 1;
break;
case 1:
- if (boss->timer_050 == 930) {
- boss->swork[1] = 2;
+ if (this->timer_050 == 930) {
+ this->swork[1] = 2;
}
- boss->fwork[7] += 0.5f;
- if (boss->fwork[7] >= 360.0f) {
- boss->fwork[7] = 0.0f;
+ this->fwork[7] += 0.5f;
+ if (this->fwork[7] >= 360.0f) {
+ this->fwork[7] = 0.0f;
}
- Math_SmoothStepToF(&boss->fwork[9], 80.0f, 0.01f, 10000.0f, 0.0f);
- Math_SmoothStepToF(&boss->fwork[4], boss->obj.pos.x + 0.0f, 0.02f, 10000.0f, 0.0f);
- Math_SmoothStepToF(&boss->fwork[5], boss->obj.pos.y + 500.0f, 0.02f, 10000.0f, 0.0f);
- Math_SmoothStepToF(&boss->fwork[6], boss->obj.pos.z + 1500.0f, 0.02f, 10000.0f, 0.0f);
+ Math_SmoothStepToF(&this->fwork[9], 80.0f, 0.01f, 10000.0f, 0.0f);
+ Math_SmoothStepToF(&this->fwork[4], this->obj.pos.x + 0.0f, 0.02f, 10000.0f, 0.0f);
+ Math_SmoothStepToF(&this->fwork[5], this->obj.pos.y + 500.0f, 0.02f, 10000.0f, 0.0f);
+ Math_SmoothStepToF(&this->fwork[6], this->obj.pos.z + 1500.0f, 0.02f, 10000.0f, 0.0f);
break;
case 2:
- if (boss->timer_050 == 870) {
- boss->swork[1] = 3;
+ if (this->timer_050 == 870) {
+ this->swork[1] = 3;
}
- boss->fwork[7] += 3.0f;
- if (boss->fwork[7] >= 360.0f) {
- boss->fwork[7] = 0.0f;
+ this->fwork[7] += 3.0f;
+ if (this->fwork[7] >= 360.0f) {
+ this->fwork[7] = 0.0f;
}
- Math_SmoothStepToF(&boss->fwork[4], boss->obj.pos.x + 0.0f, 0.02f, 10000.0f, 0.0f);
- Math_SmoothStepToF(&boss->fwork[5], boss->obj.pos.y + 1500.0f, 0.02f, 10000.0f, 0.0f);
- Math_SmoothStepToF(&boss->fwork[6], boss->obj.pos.z + 1500.0f, 0.02f, 10000.0f, 0.0f);
+ Math_SmoothStepToF(&this->fwork[4], this->obj.pos.x + 0.0f, 0.02f, 10000.0f, 0.0f);
+ Math_SmoothStepToF(&this->fwork[5], this->obj.pos.y + 1500.0f, 0.02f, 10000.0f, 0.0f);
+ Math_SmoothStepToF(&this->fwork[6], this->obj.pos.z + 1500.0f, 0.02f, 10000.0f, 0.0f);
break;
case 3:
- if (boss->timer_050 == 770) {
- boss->swork[1] = 4;
+ if (this->timer_050 == 770) {
+ this->swork[1] = 4;
}
- Math_SmoothStepToF(&boss->fwork[9], 10.0f, 0.01f, 10000.0f, 0.0f);
- Math_SmoothStepToF(&boss->fwork[4], boss->obj.pos.x + 4000.0f, 0.02f, 10000.0f, 0.0f);
- Math_SmoothStepToF(&boss->fwork[5], boss->obj.pos.y + 2000.0f, 0.02f, 10000.0f, 0.0f);
- Math_SmoothStepToF(&boss->fwork[6], boss->obj.pos.z + 1500.0f, 0.02f, 10000.0f, 0.0f);
+ Math_SmoothStepToF(&this->fwork[9], 10.0f, 0.01f, 10000.0f, 0.0f);
+ Math_SmoothStepToF(&this->fwork[4], this->obj.pos.x + 4000.0f, 0.02f, 10000.0f, 0.0f);
+ Math_SmoothStepToF(&this->fwork[5], this->obj.pos.y + 2000.0f, 0.02f, 10000.0f, 0.0f);
+ Math_SmoothStepToF(&this->fwork[6], this->obj.pos.z + 1500.0f, 0.02f, 10000.0f, 0.0f);
break;
case 4:
- ret = 2;
+ csState = 2;
+ break;
}
- if (boss->swork[1] < 4) {
- src.x = boss->fwork[4] - boss->obj.pos.x;
- src.y = boss->fwork[5] - boss->obj.pos.y;
- src.z = boss->fwork[6] - boss->obj.pos.z;
+ if (this->swork[1] < 4) {
+ src.x = this->fwork[4] - this->obj.pos.x;
+ src.y = this->fwork[5] - this->obj.pos.y;
+ src.z = this->fwork[6] - this->obj.pos.z;
- Matrix_Translate(gCalcMatrix, boss->obj.pos.x, boss->obj.pos.y, boss->obj.pos.z, MTXF_NEW);
- Matrix_RotateY(gCalcMatrix, M_DTOR * boss->fwork[7], MTXF_APPLY);
- Matrix_RotateX(gCalcMatrix, M_DTOR * boss->fwork[8], MTXF_APPLY);
+ Matrix_Translate(gCalcMatrix, this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, MTXF_NEW);
+ Matrix_RotateY(gCalcMatrix, M_DTOR * this->fwork[7], MTXF_APPLY);
+ Matrix_RotateX(gCalcMatrix, M_DTOR * this->fwork[8], MTXF_APPLY);
Matrix_MultVec3f(gCalcMatrix, &src, &dest);
player->cam.eye.x = dest.x;
player->cam.eye.y = dest.y;
player->cam.eye.z = dest.z;
- player->cam.at.x = boss->obj.pos.x;
- player->cam.at.y = boss->obj.pos.x;
- player->cam.at.z = boss->obj.pos.x;
+ player->cam.at.x = this->obj.pos.x;
+ player->cam.at.y = this->obj.pos.x;
+ player->cam.at.z = this->obj.pos.x;
- player->cam.at.x += COS_DEG(boss->timer_050 * 60.0f) * boss->fwork[9];
- player->cam.at.y += SIN_DEG(boss->timer_050 * 179.0f) * boss->fwork[9];
+ player->cam.at.x += COS_DEG(this->timer_050 * 60.0f) * this->fwork[9];
+ player->cam.at.y += SIN_DEG(this->timer_050 * 179.0f) * this->fwork[9];
}
}
- return ret;
+ return csState;
}
-void HUD_BossFO_Update(Boss* boss) {
- switch (boss->state) {
+void HUD_FoBase_Update(FoBase* this) {
+ switch (this->state) {
case 0:
- if ((boss->fwork[1] == 255.0f) && (boss->fwork[2] == 212.0f)) {
- boss->state = 1;
+ if ((this->fwork[1] == 255.0f) && (this->fwork[2] == 212.0f)) {
+ this->state = 1;
} else {
- Math_SmoothStepToF(&boss->fwork[1], 255.0f, 0.3f, 6.0f, 6.0f);
- Math_SmoothStepToF(&boss->fwork[2], 212.0f, 0.3f, 4.98f, 4.98f);
+ Math_SmoothStepToF(&this->fwork[1], 255.0f, 0.3f, 6.0f, 6.0f);
+ Math_SmoothStepToF(&this->fwork[2], 212.0f, 0.3f, 4.98f, 4.98f);
}
break;
case 1:
- if ((boss->fwork[1] == 28.0f) && (boss->fwork[2] == 23.0f)) {
- boss->state = 0;
+ if ((this->fwork[1] == 28.0f) && (this->fwork[2] == 23.0f)) {
+ this->state = 0;
} else {
- Math_SmoothStepToF(&boss->fwork[1], 28.0f, 0.3f, 6.0f, 6.0f);
- Math_SmoothStepToF(&boss->fwork[2], 23.0f, 0.3f, 4.98f, 4.98f);
+ Math_SmoothStepToF(&this->fwork[1], 28.0f, 0.3f, 6.0f, 6.0f);
+ Math_SmoothStepToF(&this->fwork[2], 23.0f, 0.3f, 4.98f, 4.98f);
}
break;
}
- func_hud_8008FFF0(boss, gAllRangeEventTimer);
+ func_hud_8008FFF0(this, gAllRangeEventTimer);
}
-bool func_hud_8009092C(Actor* actor) {
- bool var_s5 = false;
+bool func_hud_8009092C(ActorTeamBoss* this) {
+ bool ret = false;
Boss* boss;
s32 i = 0;
- if (actor->aiIndex != 0) {
+ if (this->aiIndex != 0) {
return true;
}
@@ -3840,143 +3845,142 @@ bool func_hud_8009092C(Actor* actor) {
for (i = 1; i < ARRAY_COUNT(gBosses); i++, boss++) {
if (boss->obj.status == OBJ_ACTIVE) {
- var_s5 = true;
- if (actor->aiIndex == 0) {
- actor->aiIndex = i;
+ ret = true;
+ if (this->aiIndex == 0) {
+ this->aiIndex = i;
} else if (Rand_ZeroOne() > 0.4f) {
- actor->aiIndex = i;
+ this->aiIndex = i;
}
- actor->state = 0;
+ this->state = 0;
}
}
- return var_s5;
+ return ret;
}
-bool func_hud_80090A00(Actor* actor) {
- switch (actor->iwork[5]) {
+bool func_hud_80090A00(ActorTeamBoss* this) {
+ switch (this->iwork[5]) {
case 0:
- actor->fwork[8] = 0.0f;
- actor->fwork[7] = 360.0f;
- actor->timer_0BC = 8;
- actor->rot_0F4.y = 100.0f;
- actor->rot_0F4.x = 300.0f;
- actor->iwork[4] = 1;
- actor->iwork[5] = 1;
+ this->fwork[8] = 0.0f;
+ this->fwork[7] = 360.0f;
+ this->timer_0BC = 8;
+ this->rot_0F4.y = 100.0f;
+ this->rot_0F4.x = 300.0f;
+ this->iwork[4] = 1;
+ this->iwork[5] = 1;
case 1:
- if (actor->timer_0BC == 0.0f) {
- actor->fwork[1] = 20.0f;
- actor->fwork[3] = 3.6f;
- actor->iwork[2] = 0;
- actor->iwork[3] = 36;
- actor->iwork[5] = 2;
+ if (this->timer_0BC == 0.0f) {
+ this->fwork[1] = 20.0f;
+ this->fwork[3] = 3.6f;
+ this->iwork[2] = 0;
+ this->iwork[3] = 36;
+ this->iwork[5] = 2;
} else {
- actor->obj.pos.y -= 8.0f;
+ this->obj.pos.y -= 8.0f;
break;
}
case 2:
- actor->fwork[4] = gBosses[0].obj.pos.x + 1000.0f;
- actor->fwork[5] = 300.0f;
- actor->fwork[6] = actor->obj.pos.z - 10000.0f;
- actor->iwork[2]++;
- if (actor->iwork[2] == actor->iwork[3]) {
- actor->iwork[5] = 3;
- actor->iwork[3] = 40;
- actor->iwork[2] = 0;
- } else if (actor->iwork[2] == 6) {
- actor->iwork[1] = 1;
+ this->fwork[4] = gBosses[0].obj.pos.x + 1000.0f;
+ this->fwork[5] = 300.0f;
+ this->fwork[6] = this->obj.pos.z - 10000.0f;
+ this->iwork[2]++;
+ if (this->iwork[2] == this->iwork[3]) {
+ this->iwork[5] = 3;
+ this->iwork[3] = 40;
+ this->iwork[2] = 0;
+ } else if (this->iwork[2] == 6) {
+ this->iwork[1] = 1;
}
break;
case 3:
- actor->fwork[4] = gBosses[0].obj.pos.x - 1000.0f;
- actor->fwork[5] = 400.0f;
- actor->fwork[6] = gBosses[0].obj.pos.z;
- actor->iwork[2]++;
- if (actor->iwork[2] == actor->iwork[3]) {
- actor->iwork[5] = 4;
- } else if (actor->iwork[2] == 20) {
- actor->fwork[1] = 30.0f;
+ this->fwork[4] = gBosses[0].obj.pos.x - 1000.0f;
+ this->fwork[5] = 400.0f;
+ this->fwork[6] = gBosses[0].obj.pos.z;
+ this->iwork[2]++;
+ if (this->iwork[2] == this->iwork[3]) {
+ this->iwork[5] = 4;
+ } else if (this->iwork[2] == 20) {
+ this->fwork[1] = 30.0f;
}
break;
case 4:
- actor->fwork[6] = gPlayer[0].trueZpos;
- actor->fwork[5] = 100.0f;
- actor->fwork[4] = gPlayer[0].pos.x;
- if ((fabsf(actor->obj.pos.x - gPlayer[0].pos.x) < 300.0f) &&
- (fabsf(actor->obj.pos.z - gPlayer[0].trueZpos) < 300.0f)) {
- actor->iwork[5] = 5;
- actor->iwork[3] = 20;
- actor->iwork[2] = 0;
+ this->fwork[6] = gPlayer[0].trueZpos;
+ this->fwork[5] = 100.0f;
+ this->fwork[4] = gPlayer[0].pos.x;
+ if ((fabsf(this->obj.pos.x - gPlayer[0].pos.x) < 300.0f) &&
+ (fabsf(this->obj.pos.z - gPlayer[0].trueZpos) < 300.0f)) {
+ this->iwork[5] = 5;
+ this->iwork[3] = 20;
+ this->iwork[2] = 0;
}
break;
case 5:
- actor->fwork[6] = gPlayer[0].trueZpos + 1000.0f;
- actor->fwork[5] = 1000.0f;
- actor->fwork[4] = gPlayer[0].pos.x - 1000.0f;
- actor->iwork[2]++;
- if (actor->iwork[2] == actor->iwork[3]) {
- Object_Kill(&actor->obj, actor->sfxSource);
+ this->fwork[6] = gPlayer[0].trueZpos + 1000.0f;
+ this->fwork[5] = 1000.0f;
+ this->fwork[4] = gPlayer[0].pos.x - 1000.0f;
+ this->iwork[2]++;
+ if (this->iwork[2] == this->iwork[3]) {
+ Object_Kill(&this->obj, this->sfxSource);
}
break;
}
return false;
}
-bool func_hud_80090CCC(Actor* actor) {
+bool func_hud_80090CCC(ActorTeamBoss* this) {
bool ret = false;
- if (func_hud_8009092C(actor)) {
- actor->fwork[6] = gBosses[actor->aiIndex].obj.pos.z;
- actor->fwork[5] = gBosses[actor->aiIndex].obj.pos.y;
- actor->fwork[4] = gBosses[actor->aiIndex].obj.pos.x;
+ if (func_hud_8009092C(this)) {
+ this->fwork[6] = gBosses[this->aiIndex].obj.pos.z;
+ this->fwork[5] = gBosses[this->aiIndex].obj.pos.y;
+ this->fwork[4] = gBosses[this->aiIndex].obj.pos.x;
} else {
- actor->fwork[6] = gBosses[0].obj.pos.z;
- actor->fwork[5] = gBosses[0].obj.pos.y;
- actor->fwork[4] = gBosses[0].obj.pos.x;
+ this->fwork[6] = gBosses[0].obj.pos.z;
+ this->fwork[5] = gBosses[0].obj.pos.y;
+ this->fwork[4] = gBosses[0].obj.pos.x;
}
- if ((fabsf(actor->obj.pos.x - actor->fwork[4]) < 2000.0f) &&
- (fabsf(actor->obj.pos.z - actor->fwork[6]) < 2000.0f)) {
- actor->iwork[6]++;
- if (actor->iwork[6] >= 9) {
- actor->iwork[0] = 1;
- actor->iwork[6] = 0;
+ if ((fabsf(this->obj.pos.x - this->fwork[4]) < 2000.0f) && (fabsf(this->obj.pos.z - this->fwork[6]) < 2000.0f)) {
+ this->iwork[6]++;
+ if (this->iwork[6] >= 9) {
+ this->iwork[0] = 1;
+ this->iwork[6] = 0;
}
}
- if ((fabsf(actor->obj.pos.x - actor->fwork[4]) < 700.0f) && (fabsf(actor->obj.pos.x - actor->fwork[4]) < 700.0f)) {
- actor->state = 1;
- actor->iwork[6] = 0;
+ if ((fabsf(this->obj.pos.x - this->fwork[4]) < 700.0f) && (fabsf(this->obj.pos.x - this->fwork[4]) < 700.0f)) {
+ this->state = 1;
+ this->iwork[6] = 0;
ret = true;
}
- if (actor->timer_0BE == 0) {
- actor->timer_0BE = RAND_INT(200.0f) + 200;
- actor->fwork[10] = 30.0f;
+ if (this->timer_0BE == 0) {
+ this->timer_0BE = RAND_INT(200.0f) + 200;
+ this->fwork[10] = 30.0f;
}
- if (gBosses[actor->aiIndex].obj.status == OBJ_FREE) {
- actor->state = 1;
- actor->aiIndex = 0;
- actor->iwork[6] = 0;
+ if (gBosses[this->aiIndex].obj.status == OBJ_FREE) {
+ this->state = 1;
+ this->aiIndex = 0;
+ this->iwork[6] = 0;
ret = true;
}
return ret;
}
-s32 func_hud_80090E8C(Actor* actor) {
+s32 func_hud_80090E8C(ActorTeamBoss* this) {
f32 x;
f32 y;
f32 z;
f32 var_fv1_2;
- if (actor->timer_0BC == 0) {
+ if (this->timer_0BC == 0) {
if (gLevelType == LEVELTYPE_SPACE) {
x = RAND_FLOAT_CENTERED(20000.0f);
y = RAND_FLOAT_CENTERED(5000.0f);
@@ -3987,95 +3991,94 @@ s32 func_hud_80090E8C(Actor* actor) {
z = RAND_FLOAT_CENTERED(10000.0f);
}
- if ((fabsf(actor->obj.pos.x - x) > 2000.0f) && (fabsf(actor->obj.pos.z - z) > 2000.0f)) {
- actor->fwork[4] = x;
- actor->fwork[5] = y;
- actor->fwork[6] = z;
- actor->timer_0BC = RAND_INT(20.0f) + 10;
+ if ((fabsf(this->obj.pos.x - x) > 2000.0f) && (fabsf(this->obj.pos.z - z) > 2000.0f)) {
+ this->fwork[4] = x;
+ this->fwork[5] = y;
+ this->fwork[6] = z;
+ this->timer_0BC = RAND_INT(20.0f) + 10;
}
}
- if (actor->aiType == AI360_FALCO) {
+ if (this->aiType == AI360_FALCO) {
var_fv1_2 = 3000.0f;
} else {
var_fv1_2 = 5000.0f;
}
- if ((var_fv1_2 < fabsf(actor->obj.pos.x - gBosses[0].obj.pos.x)) &&
- (var_fv1_2 < fabsf(actor->obj.pos.z - gBosses[0].obj.pos.z))) {
- actor->state = 0;
+ if ((var_fv1_2 < fabsf(this->obj.pos.x - gBosses[0].obj.pos.x)) &&
+ (var_fv1_2 < fabsf(this->obj.pos.z - gBosses[0].obj.pos.z))) {
+ this->state = 0;
}
- if (actor->timer_0BE == 0) {
- actor->timer_0BE = RAND_INT(200.0f) + 200;
- actor->fwork[10] = 30.0f;
+ if (this->timer_0BE == 0) {
+ this->timer_0BE = RAND_INT(200.0f) + 200;
+ this->fwork[10] = 30.0f;
}
return false;
}
-bool func_hud_800910C0(Actor* actor) {
+bool func_hud_800910C0(ActorTeamBoss* this) {
f32 var_fv1;
- if (actor->timer_0BC == 0) {
- actor->vwork[28].x = RAND_FLOAT_CENTERED(2000.0f);
- actor->vwork[28].y = RAND_FLOAT(1000.0f) + 200.0f;
- actor->vwork[28].z = RAND_FLOAT_CENTERED(2000.0f);
- actor->timer_0BC = RAND_INT(20.0f) + 10;
+ if (this->timer_0BC == 0) {
+ this->vwork[28].x = RAND_FLOAT_CENTERED(2000.0f);
+ this->vwork[28].y = RAND_FLOAT(1000.0f) + 200.0f;
+ this->vwork[28].z = RAND_FLOAT_CENTERED(2000.0f);
+ this->timer_0BC = RAND_INT(20.0f) + 10;
}
- actor->fwork[4] = gBosses[0].obj.pos.x + actor->vwork[28].x;
- actor->fwork[5] = actor->vwork[28].y;
- actor->fwork[6] = gBosses[0].obj.pos.z + actor->vwork[28].z;
+ this->fwork[4] = gBosses[0].obj.pos.x + this->vwork[28].x;
+ this->fwork[5] = this->vwork[28].y;
+ this->fwork[6] = gBosses[0].obj.pos.z + this->vwork[28].z;
- if (actor->aiType == AI360_FALCO) {
+ if (this->aiType == AI360_FALCO) {
var_fv1 = 1500.0f;
} else {
var_fv1 = 3000.0f;
}
- if ((var_fv1 < fabsf(actor->obj.pos.x - actor->fwork[4])) &&
- (var_fv1 < fabsf(actor->obj.pos.z - actor->fwork[6]))) {
- actor->state = 0;
+ if ((var_fv1 < fabsf(this->obj.pos.x - this->fwork[4])) && (var_fv1 < fabsf(this->obj.pos.z - this->fwork[6]))) {
+ this->state = 0;
}
- if (actor->timer_0BE == 0) {
- actor->timer_0BE = RAND_INT(200.0f) + 200;
- actor->fwork[10] = 30.0f;
+ if (this->timer_0BE == 0) {
+ this->timer_0BE = RAND_INT(200.0f) + 200;
+ this->fwork[10] = 30.0f;
}
return false;
}
-void func_hud_80091254(Actor* actor) {
+void func_hud_80091254(ActorTeamBoss* this) {
if (gLevelMode == LEVELMODE_ALL_RANGE) {
- func_hud_80090E8C(actor);
+ func_hud_80090E8C(this);
} else {
- func_hud_800910C0(actor);
+ func_hud_800910C0(this);
}
}
-bool func_hud_80091298(Actor* actor) {
- actor->fwork[1] = gPlayer[0].baseSpeed + 10.0f;
- actor->fwork[3] = 3.6f;
- actor->fwork[4] = gPlayer[0].pos.x + ((f32) (actor->aiType - 2) * 700.0f);
- actor->fwork[5] = gPlayer[0].pos.y;
- actor->fwork[6] = gPlayer[0].trueZpos;
+bool func_hud_80091298(ActorTeamBoss* this) {
+ this->fwork[1] = gPlayer[0].baseSpeed + 10.0f;
+ this->fwork[3] = 3.6f;
+ this->fwork[4] = gPlayer[0].pos.x + ((f32) (this->aiType - 2) * 700.0f);
+ this->fwork[5] = gPlayer[0].pos.y;
+ this->fwork[6] = gPlayer[0].trueZpos;
- if ((fabsf(actor->obj.pos.x - actor->fwork[4]) < 700.0f) || (fabsf(actor->obj.pos.z - actor->fwork[6]) < 700.0f)) {
- actor->fwork[1] = gPlayer[0].baseSpeed - 10.0f;
- actor->fwork[3] = 1.2f;
+ if ((fabsf(this->obj.pos.x - this->fwork[4]) < 700.0f) || (fabsf(this->obj.pos.z - this->fwork[6]) < 700.0f)) {
+ this->fwork[1] = gPlayer[0].baseSpeed - 10.0f;
+ this->fwork[3] = 1.2f;
}
return false;
}
-bool func_hud_80091368(Actor* actor) {
- switch (actor->iwork[5]) {
+bool func_hud_80091368(ActorTeamBoss* this) {
+ switch (this->iwork[5]) {
case 0:
- actor->fwork[5] = 20000.0f;
- actor->iwork[1] = 1;
- actor->iwork[5] = 1;
- gTeamShields[actor->aiType] = 1;
+ this->fwork[5] = 20000.0f;
+ this->iwork[1] = 1;
+ this->iwork[5] = 1;
+ gTeamShields[this->aiType] = 1;
- switch (actor->aiType) {
+ switch (this->aiType) {
case AI360_FALCO:
Radio_PlayMessage(gMsg_ID_20220, RCID_FALCO);
break;
@@ -4088,65 +4091,65 @@ bool func_hud_80091368(Actor* actor) {
Radio_PlayMessage(gMsg_ID_20222, RCID_SLIPPY);
break;
}
- gTeamShields[actor->aiType] = -1;
+ gTeamShields[this->aiType] = -1;
break;
case 1:
- if (actor->fwork[29] < 2.0f) {
- actor->fwork[29] = 2.0f;
+ if (this->fwork[29] < 2.0f) {
+ this->fwork[29] = 2.0f;
}
- if (actor->timer_0BC == 0) {
- actor->timer_0BC = RAND_INT(20.0f) + 30;
- actor->fwork[7] = 360.0f;
- actor->fwork[8] = 0.0f;
+ if (this->timer_0BC == 0) {
+ this->timer_0BC = RAND_INT(20.0f) + 30;
+ this->fwork[7] = 360.0f;
+ this->fwork[8] = 0.0f;
}
- if (actor->obj.pos.y > 3000.0f) {
- Object_Kill(&actor->obj, actor->sfxSource);
+ if (this->obj.pos.y > 3000.0f) {
+ Object_Kill(&this->obj, this->sfxSource);
}
break;
}
return false;
}
-void func_hud_800914FC(Actor* actor) {
- switch (actor->state) {
+void func_hud_800914FC(ActorTeamBoss* this) {
+ switch (this->state) {
case 0:
- if (!func_hud_80090CCC(actor)) {
+ if (!func_hud_80090CCC(this)) {
break;
}
case 1:
- func_hud_80091254(actor);
+ func_hud_80091254(this);
break;
case 2:
- func_hud_80091298(actor);
+ func_hud_80091298(this);
break;
case 3:
- func_hud_80091368(actor);
+ func_hud_80091368(this);
break;
case 7:
- func_hud_80090A00(actor);
+ func_hud_80090A00(this);
break;
}
- if ((gTeamShields[actor->aiType] <= 0) && (actor->state != 3)) {
- actor->iwork[5] = 0;
- actor->state = 3;
+ if ((gTeamShields[this->aiType] <= 0) && (this->state != 3)) {
+ this->iwork[5] = 0;
+ this->state = 3;
}
if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_LEVEL_COMPLETE) {
- if ((actor->state != 2) && (actor->state != 3)) {
- actor->iwork[4] = 1;
- actor->state = 2;
+ if ((this->state != 2) && (this->state != 3)) {
+ this->iwork[4] = 1;
+ this->state = 2;
}
}
}
-bool func_hud_800915FC(Actor* actor) {
+bool func_hud_800915FC(ActorTeamBoss* this) {
s32 i;
f32 y;
Vec3f vec;
@@ -4154,7 +4157,7 @@ bool func_hud_800915FC(Actor* actor) {
Scenery360* scenery360;
bool ret = false;
- Math_Vec3fFromAngles(&vec, 0.0f, actor->rot_0F4.y, 650.0f + actor->fwork[9] * 10.0f);
+ Math_Vec3fFromAngles(&vec, 0.0f, this->rot_0F4.y, 650.0f + this->fwork[9] * 10.0f);
if (gLevelMode == LEVELMODE_ALL_RANGE) {
for (i = 0, scenery360 = &gScenery360[0]; i < 200; i++, scenery360++) {
@@ -4162,15 +4165,15 @@ bool func_hud_800915FC(Actor* actor) {
continue;
}
- if (fabsf(scenery360->obj.pos.x - (actor->obj.pos.x + vec.x)) > 1200.0f) {
+ if (fabsf(scenery360->obj.pos.x - (this->obj.pos.x + vec.x)) > 1200.0f) {
continue;
}
- if (fabsf(scenery360->obj.pos.z - (actor->obj.pos.z + vec.z)) > 1200.0f) {
+ if (fabsf(scenery360->obj.pos.z - (this->obj.pos.z + vec.z)) > 1200.0f) {
continue;
}
- if (actor->obj.pos.y + vec.y < 650.0f) {
+ if (this->obj.pos.y + vec.y < 650.0f) {
ret = true;
}
}
@@ -4183,7 +4186,7 @@ bool func_hud_800915FC(Actor* actor) {
boss = &gBosses[0];
y = 650.0f;
- if (actor->aiType < AI360_KATT) {
+ if (this->aiType < AI360_KATT) {
y = 720.0f;
}
@@ -4191,16 +4194,16 @@ bool func_hud_800915FC(Actor* actor) {
y = 280.0f;
}
- if (!(fabsf(boss->obj.pos.x - (actor->obj.pos.x + vec.x)) > 1000.0f) &&
- !(fabsf(boss->obj.pos.z - (actor->obj.pos.z + vec.z)) > 1000.0f) &&
- !(fabsf(boss->obj.pos.y - (actor->obj.pos.y)) > y)) {
+ if (!(fabsf(boss->obj.pos.x - (this->obj.pos.x + vec.x)) > 1000.0f) &&
+ !(fabsf(boss->obj.pos.z - (this->obj.pos.z + vec.z)) > 1000.0f) &&
+ !(fabsf(boss->obj.pos.y - (this->obj.pos.y)) > y)) {
ret = true;
}
return ret;
}
-bool func_hud_80091864(Actor* actor) {
+bool func_hud_80091864(ActorTeamBoss* this) {
f32 sp44;
f32 sp40;
f32 sp3C;
@@ -4210,26 +4213,25 @@ bool func_hud_80091864(Actor* actor) {
f32 sp2C;
f32 sp28;
- x = actor->fwork[4] - actor->obj.pos.x;
- y = actor->fwork[5] - actor->obj.pos.y;
- z = actor->fwork[6] - actor->obj.pos.z;
+ x = this->fwork[4] - this->obj.pos.x;
+ y = this->fwork[5] - this->obj.pos.y;
+ z = this->fwork[6] - this->obj.pos.z;
sp40 = Math_RadToDeg(Math_Atan2F(x, z));
sp44 = Math_RadToDeg(Math_Atan2F(y, sqrtf(SQ(x) + SQ(z))));
- if ((func_hud_800915FC(actor) != 0) && (actor->iwork[4] == 0)) {
+ if ((func_hud_800915FC(this) != 0) && (this->iwork[4] == 0)) {
sp44 += 40.0f;
if (sp44 >= 360.0f) {
sp44 -= 360.0f;
- } else if ((actor->obj.pos.y < (gGroundHeight + 50.0f)) && (gLevelType == LEVELTYPE_PLANET) &&
- (sp44 > 180.0f)) {
+ } else if ((this->obj.pos.y < (gGroundHeight + 50.0f)) && (gLevelType == LEVELTYPE_PLANET) && (sp44 > 180.0f)) {
sp44 = 0.0f;
}
- actor->iwork[0] = 0;
+ this->iwork[0] = 0;
}
- sp3C = Math_SmoothStepToAngle(&actor->rot_0F4.y, sp40, 0.5f, actor->fwork[2], 0.001f) * 30.0f;
- Math_SmoothStepToAngle(&actor->rot_0F4.x, sp44, 0.5f, actor->fwork[2], 0.0001f);
+ sp3C = Math_SmoothStepToAngle(&this->rot_0F4.y, sp40, 0.5f, this->fwork[2], 0.001f) * 30.0f;
+ Math_SmoothStepToAngle(&this->rot_0F4.x, sp44, 0.5f, this->fwork[2], 0.0001f);
sp2C = sp28 = 0.0f;
if (sp3C < 0.0f) {
@@ -4238,10 +4240,10 @@ bool func_hud_80091864(Actor* actor) {
sp28 = sp3C;
}
- Math_SmoothStepToF(&actor->fwork[15], sp2C, 0.2f, 30.0f, 0.00f);
- Math_SmoothStepToF(&actor->fwork[26], -sp2C, 0.2f, 30.0f, 0.00f);
- Math_SmoothStepToF(&actor->fwork[16], sp28, 0.2f, 30.0f, 0.00f);
- Math_SmoothStepToF(&actor->fwork[27], -sp28, 0.2f, 30.0f, 0.00f);
+ Math_SmoothStepToF(&this->fwork[15], sp2C, 0.2f, 30.0f, 0.00f);
+ Math_SmoothStepToF(&this->fwork[26], -sp2C, 0.2f, 30.0f, 0.00f);
+ Math_SmoothStepToF(&this->fwork[16], sp28, 0.2f, 30.0f, 0.00f);
+ Math_SmoothStepToF(&this->fwork[27], -sp28, 0.2f, 30.0f, 0.00f);
if (sp3C < 0.0f) {
sp3C *= -1.0f;
@@ -4249,101 +4251,101 @@ bool func_hud_80091864(Actor* actor) {
sp3C = 360.0f - sp3C;
}
- Math_SmoothStepToF(&actor->fwork[7], actor->fwork[8], 0.2f, 30.0f, 0.0001f);
+ Math_SmoothStepToF(&this->fwork[7], this->fwork[8], 0.2f, 30.0f, 0.0001f);
- if ((actor->fwork[7] > 0.01f) && (actor->fwork[7] < 359.9f)) {
- Math_SmoothStepToAngle(&actor->obj.rot.z, actor->fwork[7], 0.2f, 100.0f, 0.01f);
+ if ((this->fwork[7] > 0.01f) && (this->fwork[7] < 359.9f)) {
+ Math_SmoothStepToAngle(&this->obj.rot.z, this->fwork[7], 0.2f, 100.0f, 0.01f);
} else {
- Math_SmoothStepToAngle(&actor->obj.rot.z, sp3C, 0.1f, 3.0f, 0.01f);
+ Math_SmoothStepToAngle(&this->obj.rot.z, sp3C, 0.1f, 3.0f, 0.01f);
}
return false;
}
-bool func_hud_80091B90(Actor* actor) {
+bool func_hud_80091B90(ActorTeamBoss* this) {
Vec3f vec;
- actor->obj.rot.x = -actor->rot_0F4.x;
- actor->obj.rot.y = actor->rot_0F4.y;
+ this->obj.rot.x = -this->rot_0F4.x;
+ this->obj.rot.y = this->rot_0F4.y;
- Math_SmoothStepToF(&actor->fwork[0], actor->fwork[1], 0.2f, 1.0f, 0.0f);
- Math_SmoothStepToF(&actor->fwork[2], actor->fwork[3], 1.0f, 1.0f, 0.0f);
+ Math_SmoothStepToF(&this->fwork[0], this->fwork[1], 0.2f, 1.0f, 0.0f);
+ Math_SmoothStepToF(&this->fwork[2], this->fwork[3], 1.0f, 1.0f, 0.0f);
- Math_Vec3fFromAngles(&vec, actor->obj.rot.x, actor->obj.rot.y, actor->fwork[0] + actor->fwork[9]);
+ Math_Vec3fFromAngles(&vec, this->obj.rot.x, this->obj.rot.y, this->fwork[0] + this->fwork[9]);
- actor->vel.y = actor->fwork[14] + vec.y;
- actor->vel.x = actor->fwork[13] + vec.x;
- actor->vel.z = actor->fwork[12] + vec.z;
+ this->vel.y = this->fwork[14] + vec.y;
+ this->vel.x = this->fwork[13] + vec.x;
+ this->vel.z = this->fwork[12] + vec.z;
- actor->fwork[13] -= actor->fwork[13] * 0.1f;
- actor->fwork[14] -= actor->fwork[14] * 0.1f;
- actor->fwork[12] -= actor->fwork[12] * 0.1f;
+ this->fwork[13] -= this->fwork[13] * 0.1f;
+ this->fwork[14] -= this->fwork[14] * 0.1f;
+ this->fwork[12] -= this->fwork[12] * 0.1f;
- if ((actor->obj.pos.y < gGroundHeight + 40.0f) && (actor->vel.y < 0.0f) && (gLevelType == LEVELTYPE_PLANET)) {
- actor->obj.pos.y = gGroundHeight + 40.0f;
- actor->vel.y = 0.0f;
+ if ((this->obj.pos.y < gGroundHeight + 40.0f) && (this->vel.y < 0.0f) && (gLevelType == LEVELTYPE_PLANET)) {
+ this->obj.pos.y = gGroundHeight + 40.0f;
+ this->vel.y = 0.0f;
}
- actor->vel.z -= gPathVelZ;
+ this->vel.z -= gPathVelZ;
return false;
}
-bool func_hud_80091CF8(Actor* actor) {
- if (actor->iwork[1] != 0) {
- if (actor->fwork[10] < 0.1f) {
- actor->fwork[10] = 20.0f;
- AUDIO_PLAY_SFX(NA_SE_ARWING_BOOST, actor->sfxSource, 0);
- actor->fwork[29] = 5.0f;
+bool func_hud_80091CF8(ActorTeamBoss* this) {
+ if (this->iwork[1] != 0) {
+ if (this->fwork[10] < 0.1f) {
+ this->fwork[10] = 20.0f;
+ AUDIO_PLAY_SFX(NA_SE_ARWING_BOOST, this->sfxSource, 0);
+ this->fwork[29] = 5.0f;
}
- actor->iwork[1] = 0;
+ this->iwork[1] = 0;
}
- Math_SmoothStepToF(&actor->fwork[10], 0.0f, 0.1f, 0.2f, 0.0f);
- Math_SmoothStepToF(&actor->fwork[9], actor->fwork[10], 0.1f, 2.0f, 0.0f);
+ Math_SmoothStepToF(&this->fwork[10], 0.0f, 0.1f, 0.2f, 0.0f);
+ Math_SmoothStepToF(&this->fwork[9], this->fwork[10], 0.1f, 2.0f, 0.0f);
- if (actor->fwork[10] < 0.1f) {
- actor->iwork[11] = 1;
+ if (this->fwork[10] < 0.1f) {
+ this->iwork[11] = 1;
}
return false;
}
-bool func_hud_80091DF4(Actor* actor) {
- Vec3f sp44;
- Vec3f sp38;
+bool func_hud_80091DF4(ActorTeamBoss* this) {
+ Vec3f src;
+ Vec3f dest;
- if ((actor->iwork[0] != 0) && (gBossHealthBar > 70)) {
- actor->iwork[0] = 0;
- sp44.x = 0.0f;
- sp44.y = 0.0f;
- sp44.z = 100.0f;
- Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp44, &sp38);
- Actor_SpawnPlayerLaser(actor->aiType, actor->obj.pos.x + (sp38.x * 1.5), actor->obj.pos.y + (sp38.y * 1.5),
- actor->obj.pos.z + (sp38.z * 1.5), sp38.x, sp38.y, sp38.z, actor->obj.rot.x,
- actor->obj.rot.y, actor->obj.rot.z);
+ if ((this->iwork[0] != 0) && (gBossHealthBar > 70)) {
+ this->iwork[0] = 0;
+ src.x = 0.0f;
+ src.y = 0.0f;
+ src.z = 100.0f;
+ Matrix_MultVec3fNoTranslate(gCalcMatrix, &src, &dest);
+ Actor_SpawnPlayerLaser(this->aiType, this->obj.pos.x + (dest.x * 1.5), this->obj.pos.y + (dest.y * 1.5),
+ this->obj.pos.z + (dest.z * 1.5), dest.x, dest.y, dest.z, this->obj.rot.x,
+ this->obj.rot.y, this->obj.rot.z);
}
return false;
}
-bool func_hud_80091F00(Actor* actor) {
- u8 temp_v0 = actor->dmgType;
+bool func_hud_80091F00(ActorTeamBoss* this) {
+ u8 temp_v0 = this->dmgType;
Vec3f sp40;
Vec3f sp34;
- actor->dmgType = DMG_NONE;
+ this->dmgType = DMG_NONE;
- if ((actor->state == 3) || (temp_v0 == DMG_EXPLOSION)) {
+ if ((this->state == 3) || (temp_v0 == DMG_EXPLOSION)) {
return false;
}
- actor->health -= actor->damage;
- if (actor->health <= 0) {
- actor->health = -1;
+ this->health -= this->damage;
+ if (this->health <= 0) {
+ this->health = -1;
}
- actor->timer_0C6 = 20;
+ this->timer_0C6 = 20;
- AUDIO_PLAY_SFX(NA_SE_EN_DAMAGE_S, actor->sfxSource, 4);
- func_effect_8007D10C(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 1.5f);
- Matrix_RotateY(gCalcMatrix, actor->rot_0F4.y * M_DTOR, MTXF_NEW);
+ AUDIO_PLAY_SFX(NA_SE_EN_DAMAGE_S, this->sfxSource, 4);
+ func_effect_8007D10C(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, 1.5f);
+ Matrix_RotateY(gCalcMatrix, this->rot_0F4.y * M_DTOR, MTXF_NEW);
if (Rand_ZeroOne() < 0.5f) {
sp40.x = -20.0f;
@@ -4356,18 +4358,18 @@ bool func_hud_80091F00(Actor* actor) {
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp40, &sp34);
- actor->fwork[13] = sp34.x;
- actor->fwork[14] = sp34.y;
- actor->fwork[12] = sp34.z;
+ this->fwork[13] = sp34.x;
+ this->fwork[14] = sp34.y;
+ this->fwork[12] = sp34.z;
- gTeamShields[actor->aiType] = actor->health;
+ gTeamShields[this->aiType] = this->health;
if (gRadioState != 0) {
return false;
}
- if ((actor->dmgType == DMG_COLLISION) && (actor->dmgSource == AI360_FOX + 1)) {
- switch (actor->aiType) {
+ if ((this->dmgType == DMG_COLLISION) && (this->dmgSource == AI360_FOX + 1)) {
+ switch (this->aiType) {
case AI360_FALCO:
Radio_PlayMessage(gMsg_ID_20210, RCID_FALCO);
break;
@@ -4380,8 +4382,8 @@ bool func_hud_80091F00(Actor* actor) {
}
}
- if ((actor->dmgType != DMG_COLLISION) && (actor->dmgSource == AI360_FOX + 1)) {
- switch (actor->aiType) {
+ if ((this->dmgType != DMG_COLLISION) && (this->dmgSource == AI360_FOX + 1)) {
+ switch (this->aiType) {
case AI360_FALCO:
Radio_PlayMessage(gMsg_ID_20060, RCID_FALCO);
break;
@@ -4394,8 +4396,8 @@ bool func_hud_80091F00(Actor* actor) {
}
}
- if ((actor->dmgSource == DMG_SRC_2) || (actor->dmgSource == DMG_SRC_100)) {
- switch (actor->aiType) {
+ if ((this->dmgSource == DMG_SRC_2) || (this->dmgSource == DMG_SRC_100)) {
+ switch (this->aiType) {
case AI360_FALCO:
Radio_PlayMessage(gMsg_ID_20030, RCID_FALCO);
break;
@@ -4407,279 +4409,278 @@ bool func_hud_80091F00(Actor* actor) {
break;
}
}
- actor->iwork[8] = 20;
+ this->iwork[8] = 20;
return false;
}
-void func_hud_80092244(Actor* actor) {
- gRadarMarks[actor->index].status = 1;
- gRadarMarks[actor->index].type = actor->aiType;
- gRadarMarks[actor->index].pos.x = actor->obj.pos.x;
- gRadarMarks[actor->index].pos.y = actor->obj.pos.y;
- gRadarMarks[actor->index].pos.z = actor->obj.pos.z;
- gRadarMarks[actor->index].yRot = actor->rot_0F4.y + 180.0f;
+void func_hud_80092244(ActorTeamBoss* this) {
+ gRadarMarks[this->index].status = 1;
+ gRadarMarks[this->index].type = this->aiType;
+ gRadarMarks[this->index].pos.x = this->obj.pos.x;
+ gRadarMarks[this->index].pos.y = this->obj.pos.y;
+ gRadarMarks[this->index].pos.z = this->obj.pos.z;
+ gRadarMarks[this->index].yRot = this->rot_0F4.y + 180.0f;
}
-void func_hud_800922F4(Actor* actor) {
- s32 temp;
+void func_hud_800922F4(ActorTeamBoss* this) {
+ s32 mask;
- if ((gTeamShields[actor->aiType] < 64) && (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_LEVEL_COMPLETE)) {
- temp = 8 - 1;
- if (gTeamShields[actor->aiType] > 16) {
- temp = 16 - 1;
+ if ((gTeamShields[this->aiType] < 64) && (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_LEVEL_COMPLETE)) {
+ mask = 8 - 1;
+ if (gTeamShields[this->aiType] > 16) {
+ mask = 16 - 1;
}
- if (gTeamShields[actor->aiType] > 32) {
- temp = 32 - 1;
+ if (gTeamShields[this->aiType] > 32) {
+ mask = 32 - 1;
}
- if (gTeamShields[actor->aiType] > 48) {
- temp = 64 - 1;
+ if (gTeamShields[this->aiType] > 48) {
+ mask = 64 - 1;
}
- if ((gGameFrameCount & temp) == 0) {
- func_effect_8007D10C(actor->obj.pos.x + RAND_FLOAT_CENTERED(10.0f), actor->obj.pos.y + RAND_FLOAT(10.0f),
- actor->obj.pos.z + RAND_FLOAT_CENTERED(10.0f), 2.2f);
+ if ((gGameFrameCount & mask) == 0) {
+ func_effect_8007D10C(this->obj.pos.x + RAND_FLOAT_CENTERED(10.0f), this->obj.pos.y + RAND_FLOAT(10.0f),
+ this->obj.pos.z + RAND_FLOAT_CENTERED(10.0f), 2.2f);
}
- if (!(gGameFrameCount & (temp >> 2)) && (Rand_ZeroOne() < 0.5f)) {
- func_effect_8007C120(actor->obj.pos.x + RAND_FLOAT_CENTERED(30.0f), actor->obj.pos.y + RAND_FLOAT(10.0f),
- actor->obj.pos.z + RAND_FLOAT_CENTERED(30.0f), actor->vel.x, actor->vel.y,
- actor->vel.z, actor->scale * 0.07f, 3);
+ if (!(gGameFrameCount & (mask >> 2)) && (Rand_ZeroOne() < 0.5f)) {
+ Effect_Effect390_Spawn(this->obj.pos.x + RAND_FLOAT_CENTERED(30.0f), this->obj.pos.y + RAND_FLOAT(10.0f),
+ this->obj.pos.z + RAND_FLOAT_CENTERED(30.0f), this->vel.x, this->vel.y, this->vel.z,
+ this->scale * 0.07f, 3);
}
}
}
-bool func_hud_800924E0(Actor* actor) {
+bool func_hud_800924E0(ActorTeamBoss* this) {
Vec3f src;
Vec3f dest;
f32 var_fv0;
bool ret = false;
- if (actor->iwork[7] == 0) {
- actor->vwork[29].x = actor->obj.rot.x;
- actor->iwork[7] = 1;
- actor->iwork[1] = 1;
+ if (this->iwork[7] == 0) {
+ this->vwork[29].x = this->obj.rot.x;
+ this->iwork[7] = 1;
+ this->iwork[1] = 1;
}
- if (actor->fwork[29] < 2.0f) {
- actor->fwork[29] = 2.0f;
+ if (this->fwork[29] < 2.0f) {
+ this->fwork[29] = 2.0f;
}
var_fv0 = 60.0f;
- if (actor->fwork[19] > 240.0f) {
+ if (this->fwork[19] > 240.0f) {
var_fv0 = -50.0f;
}
- Math_SmoothStepToF(&actor->fwork[15], var_fv0, 0.3f, 100.0f, 0.0f);
- Math_SmoothStepToF(&actor->fwork[26], var_fv0, 0.3f, 100.0f, 0.0f);
- Math_SmoothStepToF(&actor->fwork[16], var_fv0, 0.3f, 100.0f, 0.0f);
- Math_SmoothStepToF(&actor->fwork[27], var_fv0, 0.3f, 100.0f, 0.0f);
+ Math_SmoothStepToF(&this->fwork[15], var_fv0, 0.3f, 100.0f, 0.0f);
+ Math_SmoothStepToF(&this->fwork[26], var_fv0, 0.3f, 100.0f, 0.0f);
+ Math_SmoothStepToF(&this->fwork[16], var_fv0, 0.3f, 100.0f, 0.0f);
+ Math_SmoothStepToF(&this->fwork[27], var_fv0, 0.3f, 100.0f, 0.0f);
- if (actor->fwork[19] < 180.0f) {
- actor->obj.pos.y += 2.0f;
+ if (this->fwork[19] < 180.0f) {
+ this->obj.pos.y += 2.0f;
}
- if (Math_SmoothStepToF(&actor->fwork[19], 360.0f, 0.1f, 5.0f, 0.01f) == 0.0f) {
- actor->obj.rot.x = actor->vwork[29].x;
- actor->fwork[19] = actor->vwork[29].x = 0.0f;
+ if (Math_SmoothStepToF(&this->fwork[19], 360.0f, 0.1f, 5.0f, 0.01f) == 0.0f) {
+ this->obj.rot.x = this->vwork[29].x;
+ this->fwork[19] = this->vwork[29].x = 0.0f;
ret = true;
- actor->iwork[7] = 0;
- actor->fwork[29] = 1.0f;
+ this->iwork[7] = 0;
+ this->fwork[29] = 1.0f;
}
- if (actor->iwork[7] != 0) {
- Math_SmoothStepToAngle(&actor->vwork[29].x, 0.0f, 0.1f, 5.0f, 0.0f);
- Math_SmoothStepToAngle(&actor->obj.rot.z, 0.0f, 0.1f, 5.0f, 0.0f);
- actor->obj.rot.x = actor->vwork[29].x + (360.0f - actor->fwork[19]);
+ if (this->iwork[7] != 0) {
+ Math_SmoothStepToAngle(&this->vwork[29].x, 0.0f, 0.1f, 5.0f, 0.0f);
+ Math_SmoothStepToAngle(&this->obj.rot.z, 0.0f, 0.1f, 5.0f, 0.0f);
+ this->obj.rot.x = this->vwork[29].x + (360.0f - this->fwork[19]);
- Matrix_RotateY(gCalcMatrix, actor->rot_0F4.y * M_DTOR, MTXF_NEW);
- Matrix_RotateX(gCalcMatrix, -(M_DTOR * ((actor->rot_0F4.x + actor->vwork[29].x) + actor->fwork[19])),
- MTXF_APPLY);
+ Matrix_RotateY(gCalcMatrix, this->rot_0F4.y * M_DTOR, MTXF_NEW);
+ Matrix_RotateX(gCalcMatrix, -(M_DTOR * ((this->rot_0F4.x + this->vwork[29].x) + this->fwork[19])), MTXF_APPLY);
- src.z = actor->fwork[1];
+ src.z = this->fwork[1];
src.y = 0.0f;
src.x = 0.0f;
Matrix_MultVec3fNoTranslate(gCalcMatrix, &src, &dest);
- actor->vel.x = dest.x;
- actor->vel.y = dest.y;
- actor->vel.z = dest.z;
+ this->vel.x = dest.x;
+ this->vel.y = dest.y;
+ this->vel.z = dest.z;
- if (actor->obj.pos.y < gGroundHeight + 50.0f) {
- actor->obj.pos.y = gGroundHeight + 50.0f;
- actor->vel.y = 0.0f;
+ if (this->obj.pos.y < gGroundHeight + 50.0f) {
+ this->obj.pos.y = gGroundHeight + 50.0f;
+ this->vel.y = 0.0f;
}
}
return ret;
}
-bool func_hud_800927A0(Actor* actor) {
+bool func_hud_800927A0(ActorTeamBoss* this) {
Vec3f src;
Vec3f dest;
f32 sp54;
f32 sp50;
bool ret = false;
- if (actor->iwork[11] == 0) {
- actor->unk_046 = 0;
- actor->iwork[11] = 1;
- actor->iwork[1] = 1;
- actor->vwork[29].x = actor->obj.rot.x;
- actor->vwork[29].y = actor->obj.rot.y;
- actor->vwork[29].z = actor->obj.rot.z;
+ if (this->iwork[11] == 0) {
+ this->unk_046 = 0;
+ this->iwork[11] = 1;
+ this->iwork[1] = 1;
+ this->vwork[29].x = this->obj.rot.x;
+ this->vwork[29].y = this->obj.rot.y;
+ this->vwork[29].z = this->obj.rot.z;
} else {
- Math_SmoothStepToAngle(&actor->vwork[29].z, 0.0f, 0.1f, 5.0f, 0.0f);
- Math_SmoothStepToAngle(&actor->vwork[29].y, 0.0f, 0.1f, 5.0f, 0.0f);
- Math_SmoothStepToAngle(&actor->vwork[29].x, 0.0f, 0.1f, 5.0f, 0.0f);
- sp50 = Math_RadToDeg(Math_Atan2F(0.0f - actor->obj.pos.x, 0.0f - actor->obj.pos.z));
+ Math_SmoothStepToAngle(&this->vwork[29].z, 0.0f, 0.1f, 5.0f, 0.0f);
+ Math_SmoothStepToAngle(&this->vwork[29].y, 0.0f, 0.1f, 5.0f, 0.0f);
+ Math_SmoothStepToAngle(&this->vwork[29].x, 0.0f, 0.1f, 5.0f, 0.0f);
+ sp50 = Math_RadToDeg(Math_Atan2F(0.0f - this->obj.pos.x, 0.0f - this->obj.pos.z));
- switch (actor->unk_046) {
+ switch (this->unk_046) {
case 0:
- if (actor->unk_04A != 0) {
- actor->timer_0BC = 30;
+ if (this->unk_04A != 0) {
+ this->timer_0BC = 30;
} else {
- actor->timer_0BC = 10;
+ this->timer_0BC = 10;
}
- actor->unk_046 = 1;
- if (actor->fwork[19] > 180.0f) {
- actor->fwork[19] = actor->fwork[19] - 360.0f;
+ this->unk_046 = 1;
+ if (this->fwork[19] > 180.0f) {
+ this->fwork[19] = this->fwork[19] - 360.0f;
}
case 1:
- if (actor->timer_0BC == 0) {
- actor->unk_046 = 2;
- if (actor->unk_04A != 0) {
- actor->timer_0BC = 80;
+ if (this->timer_0BC == 0) {
+ this->unk_046 = 2;
+ if (this->unk_04A != 0) {
+ this->timer_0BC = 80;
} else {
- actor->timer_0BC = 60;
+ this->timer_0BC = 60;
}
- Math_SmoothStepToF(&actor->fwork[20], 0.0f, 0.1f, 15.0f, 0.0f);
+ Math_SmoothStepToF(&this->fwork[20], 0.0f, 0.1f, 15.0f, 0.0f);
}
break;
case 2:
- if (actor->fwork[19] > 140.0f) {
+ if (this->fwork[19] > 140.0f) {
sp54 = 0.0f;
} else {
sp54 = 60.0f;
}
- Math_SmoothStepToF(&actor->fwork[15], sp54, 0.3f, 100.0f, 0.0f);
- Math_SmoothStepToF(&actor->fwork[26], sp54, 0.3f, 100.0f, 0.0f);
- Math_SmoothStepToF(&actor->fwork[16], sp54, 0.3f, 100.0f, 0.0f);
- Math_SmoothStepToF(&actor->fwork[27], sp54, 0.3f, 100.0f, 0.0f);
- Math_SmoothStepToF(&actor->fwork[19], 190.0f, 0.1f, 6.0f, 0.001f);
- Math_SmoothStepToF(&actor->fwork[20], 0.0f, 0.1f, 15.0f, 0.0f);
-
- if (actor->fwork[19] > 180.0f) {
- actor->rot_0F4.y += 180.0f;
- if (actor->rot_0F4.y >= 360.0f) {
- actor->rot_0F4.y = actor->rot_0F4.y - 360.0f;
+ Math_SmoothStepToF(&this->fwork[15], sp54, 0.3f, 100.0f, 0.0f);
+ Math_SmoothStepToF(&this->fwork[26], sp54, 0.3f, 100.0f, 0.0f);
+ Math_SmoothStepToF(&this->fwork[16], sp54, 0.3f, 100.0f, 0.0f);
+ Math_SmoothStepToF(&this->fwork[27], sp54, 0.3f, 100.0f, 0.0f);
+ Math_SmoothStepToF(&this->fwork[19], 190.0f, 0.1f, 6.0f, 0.001f);
+ Math_SmoothStepToF(&this->fwork[20], 0.0f, 0.1f, 15.0f, 0.0f);
+
+ if (this->fwork[19] > 180.0f) {
+ this->rot_0F4.y += 180.0f;
+ if (this->rot_0F4.y >= 360.0f) {
+ this->rot_0F4.y = this->rot_0F4.y - 360.0f;
}
- actor->fwork[19] -= 180.0f;
+ this->fwork[19] -= 180.0f;
- if ((sp50 - actor->rot_0F4.y) < 180.0f) {
- actor->fwork[20] = 180.0f;
+ if ((sp50 - this->rot_0F4.y) < 180.0f) {
+ this->fwork[20] = 180.0f;
} else {
- actor->fwork[20] = -180.0f;
+ this->fwork[20] = -180.0f;
}
- actor->iwork[1] = 1;
- actor->unk_046 = 3;
+ this->iwork[1] = 1;
+ this->unk_046 = 3;
}
- actor->fwork[28] -= 0.2f;
+ this->fwork[28] -= 0.2f;
break;
case 3:
- if (actor->fwork[29] < 2.0f) {
- actor->fwork[29] = 2.0f;
+ if (this->fwork[29] < 2.0f) {
+ this->fwork[29] = 2.0f;
}
- Math_SmoothStepToF(&actor->fwork[20], 0.0f, 0.1f, 15.0f, 0.0f);
+ Math_SmoothStepToF(&this->fwork[20], 0.0f, 0.1f, 15.0f, 0.0f);
- sp54 = actor->fwork[20] * 0.3f;
+ sp54 = this->fwork[20] * 0.3f;
- Math_SmoothStepToF(&actor->fwork[15], sp54, 0.3f, 100.0f, 0.0f);
- Math_SmoothStepToF(&actor->fwork[26], sp54, 0.3f, 100.0f, 0.0f);
- Math_SmoothStepToF(&actor->fwork[16], -sp54, 0.3f, 100.0f, 0.0f);
- Math_SmoothStepToF(&actor->fwork[27], -sp54, 0.3f, 100.0f, 0.0f);
+ Math_SmoothStepToF(&this->fwork[15], sp54, 0.3f, 100.0f, 0.0f);
+ Math_SmoothStepToF(&this->fwork[26], sp54, 0.3f, 100.0f, 0.0f);
+ Math_SmoothStepToF(&this->fwork[16], -sp54, 0.3f, 100.0f, 0.0f);
+ Math_SmoothStepToF(&this->fwork[27], -sp54, 0.3f, 100.0f, 0.0f);
- if (actor->unk_04A != 0) {
- Math_SmoothStepToAngle(&actor->rot_0F4.y, sp50, 0.1f, 2.0f, 0.0f);
+ if (this->unk_04A != 0) {
+ Math_SmoothStepToAngle(&this->rot_0F4.y, sp50, 0.1f, 2.0f, 0.0f);
}
- if (actor->obj.pos.y < gPlayer[0].pathHeight) {
- if (actor->fwork[28] < 0.0f) {
- actor->fwork[28] = actor->fwork[28] + 0.2f;
+ if (this->obj.pos.y < gPlayer[0].pathHeight) {
+ if (this->fwork[28] < 0.0f) {
+ this->fwork[28] = this->fwork[28] + 0.2f;
}
} else {
- actor->fwork[28] -= 0.2f;
+ this->fwork[28] -= 0.2f;
}
- if (actor->timer_0BC == 0) {
+ if (this->timer_0BC == 0) {
ret = true;
- actor->iwork[11] = 0;
- actor->unk_046 = 0;
- actor->fwork[28] = 0.0f;
- actor->fwork[20] = 0.0f;
- actor->fwork[29] = 1.0f;
+ this->iwork[11] = 0;
+ this->unk_046 = 0;
+ this->fwork[28] = 0.0f;
+ this->fwork[20] = 0.0f;
+ this->fwork[29] = 1.0f;
}
break;
}
- actor->obj.rot.x = actor->vwork[29].x - actor->fwork[19];
- actor->obj.rot.y = actor->rot_0F4.y;
- actor->obj.rot.z = actor->vwork[29].z + actor->fwork[20];
- actor->obj.pos.y += actor->fwork[28];
+ this->obj.rot.x = this->vwork[29].x - this->fwork[19];
+ this->obj.rot.y = this->rot_0F4.y;
+ this->obj.rot.z = this->vwork[29].z + this->fwork[20];
+ this->obj.pos.y += this->fwork[28];
- Matrix_RotateY(gCalcMatrix, actor->rot_0F4.y * M_DTOR, 0U);
- Matrix_RotateX(gCalcMatrix, -(M_DTOR * (actor->rot_0F4.x + actor->vwork[29].x + actor->fwork[19])), MTXF_APPLY);
+ Matrix_RotateY(gCalcMatrix, this->rot_0F4.y * M_DTOR, 0U);
+ Matrix_RotateX(gCalcMatrix, -(M_DTOR * (this->rot_0F4.x + this->vwork[29].x + this->fwork[19])), MTXF_APPLY);
- src.z = actor->fwork[1];
+ src.z = this->fwork[1];
src.y = 0.0f;
src.x = 0.0f;
Matrix_MultVec3fNoTranslate(gCalcMatrix, &src, &dest);
- actor->vel.x = dest.x;
- actor->vel.y = dest.y;
- actor->vel.z = dest.z;
+ this->vel.x = dest.x;
+ this->vel.y = dest.y;
+ this->vel.z = dest.z;
}
return ret;
}
-void ActorTeamBoss_Init(Actor* actor) {
+void ActorTeamBoss_Init(ActorTeamBoss* this) {
s32 D_800D22A8[] = { TEAM_ID_FALCO, TEAM_ID_SLIPPY, TEAM_ID_PEPPY };
if (gCurrentLevel != LEVEL_TITANIA) {
- actor->fwork[1] = 40.0f;
- actor->fwork[3] = 1.2f;
- actor->aiType = (D_hud_800D1970 % 4U) + 1;
+ this->fwork[1] = 40.0f;
+ this->fwork[3] = 1.2f;
+ this->aiType = (D_hud_800D1970 % 4U) + 1;
D_hud_800D1970++;
} else {
- actor->state = 7;
- actor->aiType = AI360_SLIPPY;
- actor->iwork[5] = 0;
+ this->state = 7;
+ this->aiType = AI360_SLIPPY;
+ this->iwork[5] = 0;
gTeamShields[TEAM_ID_SLIPPY] = 255;
}
- actor->iwork[12] = D_800D22A8[actor->aiType - 1];
- actor->iwork[11] = 1;
+ this->iwork[12] = D_800D22A8[this->aiType - 1];
+ this->iwork[11] = 1;
if (gLevelType == LEVELTYPE_PLANET) {
- actor->drawShadow = true;
+ this->drawShadow = true;
}
- AUDIO_PLAY_SFX(NA_SE_ARWING_ENGINE_FG, actor->sfxSource, 4);
+ AUDIO_PLAY_SFX(NA_SE_ARWING_ENGINE_FG, this->sfxSource, 4);
if (((s32) (D_hud_800D1970 % 4U) == AI360_SLIPPY) && (gCurrentLevel == LEVEL_SECTOR_X)) {
- Object_Kill(&actor->obj, actor->sfxSource);
+ Object_Kill(&this->obj, this->sfxSource);
}
- if (gTeamShields[actor->aiType] <= 0) {
- Object_Kill(&actor->obj, actor->sfxSource);
+ if (gTeamShields[this->aiType] <= 0) {
+ Object_Kill(&this->obj, this->sfxSource);
}
}
@@ -4761,64 +4762,63 @@ void ActorTeamBoss_Update(ActorTeamBoss* this) {
this->iwork[10] = 0;
}
-void func_hud_80093164(Actor* actor) {
+void func_hud_80093164(ActorCutscene* this) {
Vec3f src;
Vec3f dest;
Player* player = &gPlayer[0];
- if (actor->state == 0) {
- switch (actor->animFrame) {
+ if (this->state == 0) {
+ switch (this->animFrame) {
case 1:
- if ((player->state_1C8 != PLAYERSTATE_1C8_LEVEL_INTRO) || (actor->animFrame != 1)) {
+ if ((player->state_1C8 != PLAYERSTATE_1C8_LEVEL_INTRO) || (this->animFrame != 1)) {
if (gCsFrameCount > 1588) {
- actor->fwork[0] = 5.0f;
+ this->fwork[0] = 5.0f;
} else {
- actor->fwork[0] = 15.0f;
+ this->fwork[0] = 15.0f;
}
- actor->fwork[0] = 12.0f;
+ this->fwork[0] = 12.0f;
}
break;
case 41:
- Aquas_801BE034(actor);
+ Aquas_CsAqFishGroup_Update(this);
break;
case 44:
- actor->iwork[0]++;
- if (actor->iwork[0] > 118) {
- actor->iwork[0] = 0;
+ this->iwork[0]++;
+ if (this->iwork[0] > 118) {
+ this->iwork[0] = 0;
}
break;
}
}
- Matrix_RotateY(gCalcMatrix, (actor->rot_0F4.y + 180.0f) * M_DTOR, MTXF_NEW);
- Matrix_RotateX(gCalcMatrix, -(actor->rot_0F4.x * M_DTOR), MTXF_APPLY);
+ Matrix_RotateY(gCalcMatrix, (this->rot_0F4.y + 180.0f) * M_DTOR, MTXF_NEW);
+ Matrix_RotateX(gCalcMatrix, -(this->rot_0F4.x * M_DTOR), MTXF_APPLY);
src.x = 0.0f;
src.y = 0.0f;
- src.z = actor->fwork[0];
+ src.z = this->fwork[0];
Matrix_MultVec3fNoTranslate(gCalcMatrix, &src, &dest);
- actor->vel.x = dest.x;
- actor->vel.y = dest.y;
- actor->vel.z = dest.z;
- actor->obj.rot.x = -actor->rot_0F4.x;
- actor->obj.rot.y = actor->rot_0F4.y + 180.0f;
- actor->obj.rot.z = -actor->rot_0F4.z;
+ this->vel.x = dest.x;
+ this->vel.y = dest.y;
+ this->vel.z = dest.z;
+ this->obj.rot.x = -this->rot_0F4.x;
+ this->obj.rot.y = this->rot_0F4.y + 180.0f;
+ this->obj.rot.z = -this->rot_0F4.z;
}
void func_hud_80093310(void) {
- Actor* this = &gActors[0];
+ ActorCutscene* actor = &gActors[0];
- Actor_Initialize(this);
- this->obj.status = OBJ_INIT;
- this->obj.pos.x = 0.0f;
- this->obj.pos.y += 1700.0f;
- this->obj.pos.z -= 5000.0f;
- gActors[0].animFrame = 1;
- if (1) {}
- this->obj.id = OBJ_ACTOR_CUTSCENE;
- Object_SetInfo(&this->info, this->obj.id);
- AUDIO_PLAY_SFX(NA_SE_GREATFOX_ENGINE, this->sfxSource, 0);
+ Actor_Initialize(actor);
+ actor->obj.status = OBJ_INIT;
+ actor->obj.pos.x = 0.0f;
+ actor->obj.pos.y += 1700.0f;
+ actor->obj.pos.z -= 5000.0f;
+ actor->animFrame = 1;
+ actor->obj.id = OBJ_ACTOR_CUTSCENE;
+ Object_SetInfo(&actor->info, actor->obj.id);
+ AUDIO_PLAY_SFX(NA_SE_GREATFOX_ENGINE, actor->sfxSource, 0);
}
void func_hud_800933D8(f32 x, f32 y, f32 z, f32 arg3) {
@@ -5158,7 +5158,7 @@ void HUD_AquasStart(Player* player) {
player->pos.z = dest.z;
if (((player->csTimer % 8) == 0) && (player->csTimer > 740)) {
- func_effect_8007D9DC(player->cam.eye.x, 1600.0f, player->cam.eye.z, 10.0f, 100.0f, 0);
+ Effect_Effect367_Spawn(player->cam.eye.x, 1600.0f, player->cam.eye.z, 10.0f, 100.0f, 0);
}
if ((player->unk_018 > -200.0f) && (D_ctx_80177A10[8] < 6)) {
@@ -5173,9 +5173,9 @@ void HUD_AquasStart(Player* player) {
if (((gGameFrameCount % 3) == 0) && (player->csTimer <= 740)) {
for (i = 0; i < 8; i++) {
- Aquas_801AC8A8(player->cam.eye.x + RAND_FLOAT_CENTERED(D_800D22C4),
- player->cam.eye.y + 260.0f + RAND_FLOAT_CENTERED(D_800D22C8),
- player->cam.eye.z + RAND_FLOAT_CENTERED(D_800D22CC), 1.0f, 0);
+ Aquas_Effect366_Spawn(player->cam.eye.x + RAND_FLOAT_CENTERED(D_800D22C4),
+ player->cam.eye.y + 260.0f + RAND_FLOAT_CENTERED(D_800D22C8),
+ player->cam.eye.z + RAND_FLOAT_CENTERED(D_800D22CC), 1.0f, 0);
}
}
}
@@ -5265,8 +5265,9 @@ void HUD_AquasStart(Player* player) {
AUDIO_PLAY_BGM(NA_BGM_STAGE_AQ);
}
- Aquas_801AC8A8(player->pos.x + RAND_FLOAT_CENTERED(10.0f), player->pos.y + RAND_FLOAT_CENTERED(10.0f),
- player->pos.z - 65.0f + RAND_FLOAT_CENTERED(10.0f), 0.4f, 1);
+ Aquas_Effect366_Spawn(player->pos.x + RAND_FLOAT_CENTERED(10.0f),
+ player->pos.y + RAND_FLOAT_CENTERED(10.0f),
+ player->pos.z - 65.0f + RAND_FLOAT_CENTERED(10.0f), 0.4f, 1);
break;
default:
@@ -5307,74 +5308,74 @@ f32 D_800D24C0[] = { 128.0f, 128.0f, 255.0f, 128.0f };
s32 D_800D24C8[] = { 0, 900 };
f32 D_800D24CC = 0.02f;
-void Hud_Effect363_Update(Effect* effect) {
+void Hud_Effect363_Update(Effect363* this) {
Player* player = &gPlayer[0];
if ((player->state_1C8 == PLAYERSTATE_1C8_LEVEL_INTRO) && (gCurrentLevel == LEVEL_AQUAS) && (player->csState < 2)) {
- switch (effect->state) {
+ switch (this->state) {
case 0:
- effect->unk_44 += effect->unk_46;
- effect->unk_4A = effect->unk_44;
- effect->scale2 += 0.01f;
+ this->unk_44 += this->unk_46;
+ this->unk_4A = this->unk_44;
+ this->scale2 += 0.01f;
- if (effect->unk_4A >= 200) {
- effect->state = 1;
- effect->unk_4A = 200;
+ if (this->unk_4A >= 200) {
+ this->state = 1;
+ this->unk_4A = 200;
}
break;
case 1:
- effect->unk_4A -= effect->unk_46;
- effect->scale2 -= 0.1f;
+ this->unk_4A -= this->unk_46;
+ this->scale2 -= 0.1f;
break;
}
- if ((effect->state == 1) && (effect->unk_4A <= 0)) {
- Object_Kill(&effect->obj, effect->sfxSource);
+ if ((this->state == 1) && (this->unk_4A <= 0)) {
+ Object_Kill(&this->obj, this->sfxSource);
}
- effect->vel.y += effect->scale1;
- effect->scale1 -= 0.05f;
+ this->vel.y += this->scale1;
+ this->scale1 -= 0.05f;
- if (effect->scale1 < -1.0f) {
- effect->scale1 = -1.0f;
+ if (this->scale1 < -1.0f) {
+ this->scale1 = -1.0f;
}
- effect->obj.rot.z += effect->unk_48;
+ this->obj.rot.z += this->unk_48;
} else {
if (player->state_1C8 == PLAYERSTATE_1C8_LEVEL_COMPLETE) {
- effect->obj.rot.x = RAD_TO_DEG(player->camPitch);
- effect->obj.rot.y = RAD_TO_DEG(-player->camYaw);
+ this->obj.rot.x = RAD_TO_DEG(player->camPitch);
+ this->obj.rot.y = RAD_TO_DEG(-player->camYaw);
}
if (player->state_1C8 == PLAYERSTATE_1C8_NEXT) {
- effect->unk_46 = 2;
+ this->unk_46 = 2;
if (player->csState >= 4) {
- effect->vel.y -= 0.13f;
+ this->vel.y -= 0.13f;
}
}
- effect->scale2 += 0.8f;
- effect->unk_4A -= effect->unk_46;
+ this->scale2 += 0.8f;
+ this->unk_4A -= this->unk_46;
- if ((effect->unk_4A < 0) || ((player->state_1C8 == PLAYERSTATE_1C8_LEVEL_INTRO) &&
- (gCurrentLevel == LEVEL_AQUAS) && (player->csState == 5))) {
- Object_Kill(&effect->obj, effect->sfxSource);
+ if ((this->unk_4A < 0) || ((player->state_1C8 == PLAYERSTATE_1C8_LEVEL_INTRO) &&
+ (gCurrentLevel == LEVEL_AQUAS) && (player->csState == 5))) {
+ Object_Kill(&this->obj, this->sfxSource);
}
- effect->obj.rot.z += effect->unk_48;
+ this->obj.rot.z += this->unk_48;
}
}
-void Hud_Effect363_Draw(Effect* effect) {
+void Hud_Effect363_Draw(Effect363* this) {
if ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_LEVEL_INTRO) && (gCurrentLevel == LEVEL_AQUAS) &&
(gPlayer[0].csState < 2)) {
RCP_SetupDL(&gMasterDisp, SETUPDL_68);
- gDPSetPrimColor(gMasterDisp++, 0, 0, 0, 21, 34, effect->unk_4A);
+ gDPSetPrimColor(gMasterDisp++, 0, 0, 0, 21, 34, this->unk_4A);
gDPSetEnvColor(gMasterDisp++, 255, 255, 251, 0);
- Graphics_SetScaleMtx(effect->scale2);
+ Graphics_SetScaleMtx(this->scale2);
gSPDisplayList(gMasterDisp++, D_1023750);
} else {
- Graphics_SetScaleMtx(effect->scale2);
- gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, effect->unk_4A);
+ Graphics_SetScaleMtx(this->scale2);
+ gDPSetPrimColor(gMasterDisp++, 0, 0, 255, 255, 255, this->unk_4A);
gSPDisplayList(gMasterDisp++, D_1023750);
}
}
@@ -5519,15 +5520,15 @@ void func_hud_80094D20(f32 x, f32 y) {
}
}
-void func_hud_80095350(Actor* actor) {
- Actor_Initialize(actor);
- actor->obj.status = OBJ_ACTIVE;
- actor->obj.id = OBJ_ACTOR_CUTSCENE;
- actor->animFrame = 9999;
- Object_SetInfo(&actor->info, actor->obj.id);
+void func_hud_80095350(ActorCutscene* this) {
+ Actor_Initialize(this);
+ this->obj.status = OBJ_ACTIVE;
+ this->obj.id = OBJ_ACTOR_CUTSCENE;
+ this->animFrame = 9999;
+ Object_SetInfo(&this->info, this->obj.id);
}
-void func_hud_800953A0(Actor* actor, s32 arg1) {
+void func_hud_800953A0(ActorCutscene* this, s32 arg1) {
Vec3f D_800D2510[] = {
{ 1800.0f, 0.0f, -4000.0f },
{ -1000.0f, 0.0f, -4800.0f },
@@ -5535,31 +5536,31 @@ void func_hud_800953A0(Actor* actor, s32 arg1) {
{ -200.0f, 0.0f, -7000.0f },
};
- Actor_Initialize(actor);
- actor->obj.status = OBJ_ACTIVE;
- actor->obj.id = OBJ_ACTOR_CUTSCENE;
- actor->obj.pos = D_800D2510[arg1];
- actor->obj.pos.z -= gPathProgress;
- actor->animFrame = 45;
- Object_SetInfo(&actor->info, actor->obj.id);
+ Actor_Initialize(this);
+ this->obj.status = OBJ_ACTIVE;
+ this->obj.id = OBJ_ACTOR_CUTSCENE;
+ this->obj.pos = D_800D2510[arg1];
+ this->obj.pos.z -= gPathProgress;
+ this->animFrame = 45;
+ Object_SetInfo(&this->info, this->obj.id);
}
-void func_hud_8009546C(Actor* actor, s32 arg1) {
+void func_hud_8009546C(ActorCutscene* this, s32 arg1) {
Vec3f D_800D2540[] = {
{ 1300.0f, 0.0f, -2000.0f }, { -1000.0f, 0.0f, -3000.0f }, { 800.0f, 0.0f, 0.0f },
{ -1200.0f, 0.0f, -1000.0f }, { -1400.0f, 0.0f, 700.0f },
};
- Actor_Initialize(actor);
- actor->obj.status = OBJ_ACTIVE;
- actor->obj.id = OBJ_ACTOR_CUTSCENE;
- actor->obj.pos = D_800D2540[arg1];
- actor->obj.pos.z -= gPathProgress;
- actor->animFrame = 46;
- Object_SetInfo(&actor->info, actor->obj.id);
+ Actor_Initialize(this);
+ this->obj.status = OBJ_ACTIVE;
+ this->obj.id = OBJ_ACTOR_CUTSCENE;
+ this->obj.pos = D_800D2540[arg1];
+ this->obj.pos.z -= gPathProgress;
+ this->animFrame = 46;
+ Object_SetInfo(&this->info, this->obj.id);
}
-void func_hud_80095538(Actor* actor, s32 arg1) {
+void func_hud_80095538(Actor* actor, s32 index) {
Vec3f D_800D257C[] = {
{ 0.0f, 0.0f, -200.0f }, { -300.0f, 0.0f, -700.0f }, { 400.0f, 0.0f, -900.0f },
{ 300.0f, 0.0f, -1700.0f }, { -260.0f, 0.0f, -2000.0f }, { -200.0f, 0.0f, -2600.0f },
@@ -5568,7 +5569,7 @@ void func_hud_80095538(Actor* actor, s32 arg1) {
Actor_Initialize(actor);
actor->obj.status = OBJ_ACTIVE;
actor->obj.id = OBJ_ACTOR_CUTSCENE;
- actor->obj.pos = D_800D257C[arg1];
+ actor->obj.pos = D_800D257C[index];
actor->obj.pos.z -= gPathProgress;
actor->animFrame = 47;
Object_SetInfo(&actor->info, actor->obj.id);
@@ -5958,9 +5959,9 @@ void HUD_AquasComplete(Player* player) {
src.y = 0.0f;
src.z = -70.0f;
Matrix_MultVec3fNoTranslate(gCalcMatrix, &src, &dest);
- Aquas_801AC8A8(player->pos.x + dest.x + RAND_FLOAT_CENTERED(10.0f),
- player->pos.y + dest.y + RAND_FLOAT_CENTERED(10.0f),
- player->pos.z + dest.z + RAND_FLOAT_CENTERED(10.0f), 0.4f, 1);
+ Aquas_Effect366_Spawn(player->pos.x + dest.x + RAND_FLOAT_CENTERED(10.0f),
+ player->pos.y + dest.y + RAND_FLOAT_CENTERED(10.0f),
+ player->pos.z + dest.z + RAND_FLOAT_CENTERED(10.0f), 0.4f, 1);
}
player->unk_178 += 20.0f;
diff --git a/src/engine/fox_play.c b/src/engine/fox_play.c
index 6651bf43..7fc39ca5 100644
--- a/src/engine/fox_play.c
+++ b/src/engine/fox_play.c
@@ -86,6 +86,7 @@ void Play_UpdateDynaFloor(void) {
f32 sp84;
gDynaFloorTimer++;
+
switch (gCurrentLevel) {
case LEVEL_SOLAR:
if ((gGameFrameCount % 2) != 0) {
@@ -100,6 +101,7 @@ void Play_UpdateDynaFloor(void) {
sp88 = 2.2f;
sp84 = 0.5f;
break;
+
case LEVEL_ZONESS:
if ((gGameFrameCount % 2) != 0) {
spB4 = SEGMENTED_TO_VIRTUAL(D_ZO_6009ED0);
@@ -114,29 +116,38 @@ void Play_UpdateDynaFloor(void) {
sp84 = 2.0f;
break;
}
+
var_s3 = D_ctx_801782CC;
var_s5 = D_ctx_801782D4;
var_s4 = D_ctx_801782DC;
var_s0 = D_ctx_801782E4;
var_s1 = D_ctx_801782EC;
+
for (i = 0; i < 17 * 17; i++, var_s3++, var_s5++, var_s4++, var_s0++, var_s1++, spB0++) {
Math_SmoothStepToF(var_s3, *var_s5, sp8C, *var_s4, 0.0f);
Math_SmoothStepToF(var_s4, 100.0f, 1.0f, sp84, 0.0f);
+
if ((gDynaFloorTimer & spA8) == (i & spA8)) {
*var_s5 = RAND_FLOAT(sp90);
*var_s4 = 0.0f;
}
+
*var_s0 += *var_s1;
*var_s1 -= 0.5f;
if (*var_s0 < 0.0f) {
*var_s1 = *var_s0 = 0.0f;
}
+
spB4[*spB0].n.ob[1] = (s16) *var_s3 + (s16) *var_s0;
+
Matrix_RotateZ(gCalcMatrix, *var_s3 * sp88 * M_DTOR, MTXF_NEW);
+
spC4.x = 120.0f;
spC4.y = 0.0f;
spC4.z = 0.0f;
+
Matrix_MultVec3fNoTranslate(gCalcMatrix, &spC4, &spB8);
+
spB4[*spB0].n.n[0] = spB8.x;
spB4[*spB0].n.n[1] = spB8.y;
spB4[*spB0].n.n[2] = spB8.z;
@@ -154,6 +165,7 @@ void Player_WingEffects(Player* player) {
player->xRock = SIN_DEG(player->rockPhase * 0.7f) * 0.5f;
player->bobPhase += 10.0f;
player->rockPhase += 8.0f;
+
if ((gLevelType == LEVELTYPE_PLANET) ||
((player->alternateView == true) && (gLevelMode == LEVELMODE_ON_RAILS))) {
player->yBob = -SIN_DEG(player->bobPhase) * 0.5f;
@@ -177,9 +189,9 @@ void Player_DamageEffects(Player* player) {
player->hit1.z, 1.0f);
}
if (((gGameFrameCount % 2U) == 0) && (Rand_ZeroOne() < 0.5f) && !gVersusMode) {
- func_effect_8007C484(RAND_FLOAT_CENTERED(5.0f) + player->hit1.x, RAND_FLOAT(5.0f) + player->hit1.y,
- player->hit1.z, player->vel.x, player->vel.y, player->vel.z,
- RAND_FLOAT(0.02f) + 0.02f, player->num + 1);
+ Effect_Effect389_Spawn(RAND_FLOAT_CENTERED(5.0f) + player->hit1.x, RAND_FLOAT(5.0f) + player->hit1.y,
+ player->hit1.z, player->vel.x, player->vel.y, player->vel.z,
+ RAND_FLOAT(0.02f) + 0.02f, player->num + 1);
}
}
if (player->wings.leftState <= WINGSTATE_BROKEN) {
@@ -188,12 +200,13 @@ void Player_DamageEffects(Player* player) {
player->hit2.z, 1.0f);
}
if (((gGameFrameCount % 2U) == 0) && (Rand_ZeroOne() < 0.5f) && !gVersusMode) {
- func_effect_8007C484(RAND_FLOAT_CENTERED(5.0f) + player->hit2.x, RAND_FLOAT(5.0f) + player->hit2.y,
- player->hit2.z, player->vel.x, player->vel.y, player->vel.z,
- RAND_FLOAT(0.02f) + 0.02f, player->num + 1);
+ Effect_Effect389_Spawn(RAND_FLOAT_CENTERED(5.0f) + player->hit2.x, RAND_FLOAT(5.0f) + player->hit2.y,
+ player->hit2.z, player->vel.x, player->vel.y, player->vel.z,
+ RAND_FLOAT(0.02f) + 0.02f, player->num + 1);
}
}
}
+
var_v1 = 7;
if (player->shields < 64) {
if (player->shields > 16) {
@@ -205,21 +218,23 @@ void Player_DamageEffects(Player* player) {
if (player->shields > 48) {
var_v1 = 64 - 1;
}
+
if (!player->alternateView || (gLevelMode == LEVELMODE_ALL_RANGE)) {
sp40 = 0.0f;
if (player->form == FORM_LANDMASTER) {
sp40 = 30.0f;
}
+
if ((gGameFrameCount & var_v1) == 0) {
func_effect_8007D10C(player->pos.x + RAND_FLOAT_CENTERED(10.0f),
player->pos.y + sp40 + RAND_FLOAT(10.0f),
player->trueZpos + RAND_FLOAT_CENTERED(10.0f), 2.2f);
}
if (((gGameFrameCount & (var_v1 >> 2)) == 0) && (Rand_ZeroOne() < 0.5f)) {
- func_effect_8007C484(player->pos.x + RAND_FLOAT_CENTERED(30.0f),
- player->pos.y + sp40 + RAND_FLOAT(10.0f),
- player->trueZpos + RAND_FLOAT_CENTERED(30.0f), player->vel.x, player->vel.y,
- player->vel.z, 0.04f + RAND_FLOAT(0.03f), player->num + 1);
+ Effect_Effect389_Spawn(player->pos.x + RAND_FLOAT_CENTERED(30.0f),
+ player->pos.y + sp40 + RAND_FLOAT(10.0f),
+ player->trueZpos + RAND_FLOAT_CENTERED(30.0f), player->vel.x, player->vel.y,
+ player->vel.z, 0.04f + RAND_FLOAT(0.03f), player->num + 1);
if (player->dmgEffectTimer == 0) {
player->dmgEffectTimer = 2;
}
@@ -239,22 +254,26 @@ void Player_WaterEffects(Player* player) {
if (gGroundSurface == SURFACE_WATER) {
Matrix_Translate(gCalcMatrix, player->pos.x, player->pos.y, player->trueZpos, MTXF_NEW);
+
Matrix_RotateY(gCalcMatrix, (player->yRot_114 + player->rot.y + 180.0f) * M_DTOR, MTXF_APPLY);
Matrix_RotateX(gCalcMatrix, -((player->rot.x + player->aerobaticPitch) * M_DTOR), MTXF_APPLY);
Matrix_RotateZ(gCalcMatrix, -(player->bankAngle * M_DTOR), MTXF_APPLY);
+
Matrix_MultVec3f(gCalcMatrix, &sp54, &sp3C);
Matrix_MultVec3f(gCalcMatrix, &sp48, &sp30);
+
if (player->pos.y < (gGroundHeight + 100.0f)) {
if ((sp3C.y < gGroundHeight + 80.0f) && ((gGameFrameCount % 2) == 0)) {
if (sPlayWingSplashSfx) {}
- func_effect_8007ACE0(sp3C.x, gGroundHeight, sp3C.z, 0.1f, 2.0f,
- player->rot.y + player->yRot_114 + 20.0f);
+ Effect_Effect372_Spawn1(sp3C.x, gGroundHeight, sp3C.z, 0.1f, 2.0f,
+ player->rot.y + player->yRot_114 + 20.0f);
}
if ((sp30.y < gGroundHeight + 80.0f) && ((gGameFrameCount % 2) == 0)) {
- func_effect_8007ACE0(sp30.x, gGroundHeight, sp30.z, 0.1f, 2.0f,
- player->rot.y + player->yRot_114 - 20.0f);
+ Effect_Effect372_Spawn1(sp30.x, gGroundHeight, sp30.z, 0.1f, 2.0f,
+ player->rot.y + player->yRot_114 - 20.0f);
}
}
+
if ((sp30.y < gGroundHeight + 80.0f) || (sp3C.y < gGroundHeight + 80.0f)) {
if (!sPlayWingSplashSfx) {
sPlayWingSplashSfx = true;
@@ -300,6 +319,7 @@ void Play_InitVsStage(void) {
}
break;
}
+
for (i = 0, j = 0; i < 199; j++) {
if (gLevelObjects[j].id <= OBJ_INVALID) {
break;
@@ -315,6 +335,7 @@ void Play_InitVsStage(void) {
i++;
}
}
+
for (i = 5, j = 0; i < 199; j++) {
if (gLevelObjects[j].id <= OBJ_INVALID) {
break;
@@ -337,25 +358,25 @@ void Play_dummy_800A5330(void) {
}
void Play_Setup360_CO(void) {
- Sprite* sprite;
+ Boss* boss = &gBosses[0];
Scenery360* scenery360;
+ Sprite* sprite;
s32 i;
- s32 j;
gLevelObjects = SEGMENTED_TO_VIRTUAL(aCoAllRangeLevelObjects);
- for (j = 0, scenery360 = gScenery360; j < 200; j++) {
- if (gLevelObjects[j].id <= OBJ_INVALID) {
+ for (i = 0, scenery360 = gScenery360; i < 200; i++) {
+ if (gLevelObjects[i].id <= OBJ_INVALID) {
break;
}
- if (gLevelObjects[j].id < OBJ_SCENERY_MAX) {
+ if (gLevelObjects[i].id < OBJ_SCENERY_MAX) {
Scenery360_Initialize(scenery360);
scenery360->obj.status = OBJ_ACTIVE;
- scenery360->obj.id = gLevelObjects[j].id;
- scenery360->obj.pos.x = gLevelObjects[j].xPos;
- scenery360->obj.pos.z = gLevelObjects[j].zPos1;
- scenery360->obj.pos.y = gLevelObjects[j].yPos;
- scenery360->obj.rot.y = gLevelObjects[j].rot.y;
+ 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;
+ scenery360->obj.rot.y = gLevelObjects[i].rot.y;
Object_SetInfo(&scenery360->info, scenery360->obj.id);
if (scenery360->obj.id == OBJ_SCENERY_CO_BUMP_1) {
scenery360->info.dList = D_CO_6020760;
@@ -364,90 +385,92 @@ void Play_Setup360_CO(void) {
}
}
- for (j = 0, sprite = gSprites; j < ARRAY_COUNT(gSprites); j++) {
- if (gLevelObjects[j].id <= OBJ_INVALID) {
+ for (i = 0, sprite = gSprites; i < ARRAY_COUNT(gSprites); i++) {
+ if (gLevelObjects[i].id <= OBJ_INVALID) {
break;
}
- if (gLevelObjects[j].id == OBJ_SPRITE_CO_TREE) {
+ if (gLevelObjects[i].id == OBJ_SPRITE_CO_TREE) {
Sprite_Initialize(sprite);
sprite->obj.status = OBJ_INIT;
- sprite->obj.id = gLevelObjects[j].id;
- sprite->obj.pos.x = gLevelObjects[j].xPos;
- sprite->obj.pos.z = gLevelObjects[j].zPos1;
- sprite->obj.pos.y = gLevelObjects[j].yPos;
+ sprite->obj.id = gLevelObjects[i].id;
+ sprite->obj.pos.x = gLevelObjects[i].xPos;
+ sprite->obj.pos.z = gLevelObjects[i].zPos1;
+ sprite->obj.pos.y = gLevelObjects[i].yPos;
Object_SetInfo(&sprite->info, sprite->obj.id);
sprite++;
}
}
- i = 0; // fake?
- Boss_Initialize(&gBosses[i]);
- gBosses[i].obj.status = OBJ_INIT;
- 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_CO_GRANGA;
- Object_SetInfo(&gBosses[i].info, gBosses[i].obj.id);
+
+ Boss_Initialize(&boss[0]);
+ boss[0].obj.status = OBJ_INIT;
+ boss[0].obj.pos.x = 0.0f;
+ boss[0].obj.pos.y = 0.0f;
+ boss[0].obj.pos.z = 0.0f;
+ boss[0].obj.id = OBJ_BOSS_CO_GRANGA;
+ Object_SetInfo(&boss[0].info, boss[0].obj.id);
}
void Play_Setup360_SY(void) {
+ Boss* boss = &gBosses[0];
Scenery360* scenery360;
s32 i;
- s32 j;
gLevelObjects = SEGMENTED_TO_VIRTUAL(D_SY_6030B14);
- for (j = 0, scenery360 = gScenery360; j < 200; j++) {
- if (gLevelObjects[j].id <= OBJ_INVALID) {
+ for (i = 0, scenery360 = gScenery360; i < 200; i++) {
+ if (gLevelObjects[i].id <= OBJ_INVALID) {
break;
}
- if (gLevelObjects[j].id < OBJ_SCENERY_MAX) {
+ if (gLevelObjects[i].id < OBJ_SCENERY_MAX) {
Scenery360_Initialize(scenery360);
scenery360->obj.status = OBJ_ACTIVE;
- scenery360->obj.id = gLevelObjects[j].id;
- scenery360->obj.pos.x = gLevelObjects[j].xPos;
- scenery360->obj.pos.z = gLevelObjects[j].zPos1;
- scenery360->obj.pos.y = gLevelObjects[j].yPos;
- scenery360->obj.rot.y = gLevelObjects[j].rot.y;
+ 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;
+ scenery360->obj.rot.y = gLevelObjects[i].rot.y;
Object_SetInfo(&scenery360->info, scenery360->obj.id);
scenery360++;
}
}
- i = 0; // fake?
- Boss_Initialize(&gBosses[i]);
- gBosses[i].obj.status = OBJ_INIT;
- 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_SY;
- Object_SetInfo(&gBosses[i].info, gBosses[i].obj.id);
- i = 1;
- Boss_Initialize(&gBosses[i]);
- gBosses[i].obj.status = OBJ_INIT;
- 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_SY;
- Object_SetInfo(&gBosses[i].info, gBosses[i].obj.id);
- i = 2;
- Boss_Initialize(&gBosses[i]);
- gBosses[i].obj.status = OBJ_INIT;
- 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_SY;
- Object_SetInfo(&gBosses[i].info, gBosses[i].obj.id);
+
+ Boss_Initialize(&boss[0]);
+ boss[0].obj.status = OBJ_INIT;
+ boss[0].obj.pos.x = 0.0f;
+ boss[0].obj.pos.y = 0.0f;
+ boss[0].obj.pos.z = 0.0f;
+ boss[0].obj.id = OBJ_BOSS_SY_SHOGUN;
+ Object_SetInfo(&boss[0].info, boss[0].obj.id);
+
+ Boss_Initialize(&boss[1]);
+ boss[1].obj.status = OBJ_INIT;
+ boss[1].obj.pos.x = 0.0f;
+ boss[1].obj.pos.y = 0.0f;
+ boss[1].obj.pos.z = 0.0f;
+ boss[1].obj.id = OBJ_BOSS_SY_SHOGUN;
+ Object_SetInfo(&boss[1].info, boss[1].obj.id);
+
+ Boss_Initialize(&boss[2]);
+ boss[2].obj.status = OBJ_INIT;
+ boss[2].obj.pos.x = 0.0f;
+ boss[2].obj.pos.y = 0.0f;
+ boss[2].obj.pos.z = 0.0f;
+ boss[2].obj.id = OBJ_BOSS_SY_SHOGUN;
+ Object_SetInfo(&boss[2].info, boss[2].obj.id);
}
void Play_Setup360_AND(void) {
- s32 i = 0; // fake?
-
- Boss_Initialize(&gBosses[i]);
- gBosses[i].obj.status = OBJ_INIT;
- gBosses[i].obj.pos.x = 0.0f;
- gBosses[i].obj.pos.y = 0.0f;
- gBosses[i].obj.pos.z = 0.0f;
- gBosses[i].obj.id = OBJ_BOSS_321;
- Object_SetInfo(&gBosses[i].info, gBosses[i].obj.id);
+ Boss* boss = &gBosses[0];
+
+ Boss_Initialize(boss);
+ boss->obj.status = OBJ_INIT;
+
+ boss->obj.pos.x = 0.0f;
+ boss->obj.pos.y = 0.0f;
+ boss->obj.pos.z = 0.0f;
+
+ boss->obj.id = OBJ_BOSS_AND_BRAIN;
+ Object_SetInfo(&boss->info, boss->obj.id);
}
void Play_Setup(void) {
@@ -500,6 +523,7 @@ void Play_InitEnvironment(void) {
} else {
sEnvironment = SEGMENTED_TO_VIRTUAL(D_800D2F98[gCurrentLevel]);
}
+
if (!D_ctx_8017782C) {
if (gCurrentLevel == LEVEL_SOLAR) {
Audio_SetHeatAlarmParams(255, 1);
@@ -509,6 +533,7 @@ void Play_InitEnvironment(void) {
} else if (gCurrentLevel == LEVEL_AQUAS) {
sEnvironment = SEGMENTED_TO_VIRTUAL(&D_AQ_602E584);
}
+
gBgmSeqId = sEnvironment->seqId;
gLevelType = sEnvironment->type;
gGroundType = sEnvironment->unk04;
@@ -518,15 +543,19 @@ void Play_InitEnvironment(void) {
gFogBlue = sEnvironment->fogB;
gFogNear = sEnvironment->fogN;
gFogFar = sEnvironment->fogF;
+
gLight1R = gLight2R = D_ctx_80161A70 = sEnvironment->lightR;
gLight1G = gLight2G = D_ctx_80161A74 = sEnvironment->lightG;
gLight1B = gLight2B = D_ctx_80161A78 = sEnvironment->lightB;
+
gAmbientR = sEnvironment->ambR;
gAmbientG = sEnvironment->ambG;
gAmbientB = sEnvironment->ambB;
+
gEnvLightxRot = gLight2xRotTarget = D_ctx_80178520 = gLight1xRot = gLight1xRotTarget = sEnvironment->lightDir.x;
gEnvLightyRot = gLight2yRotTarget = D_ctx_80178524 = gLight1yRot = gLight1yRotTarget = sEnvironment->lightDir.y;
gEnvLightzRot = gLight2zRotTarget = D_ctx_80178528 = gLight1zRot = gLight1zRotTarget = sEnvironment->lightDir.z;
+
gProjectFar = 12800.0f;
gLight2colorStep = 40;
D_ctx_80178544 = 40;
@@ -539,7 +568,9 @@ void Play_GenerateStarfield(void) {
MEM_ARRAY_ALLOCATE(gStarOffsetsX, 1000);
MEM_ARRAY_ALLOCATE(gStarOffsetsY, 1000);
MEM_ARRAY_ALLOCATE(gStarFillColors, 1000);
+
Rand_SetSeed(1, 29000, 9876);
+
for (i = 0; i < 1000; i++) {
gStarOffsetsX[i] = RAND_FLOAT_SEEDED(480.0f) - 80.0f;
gStarOffsetsY[i] = RAND_FLOAT_SEEDED(360.0f) - 60.0f;
@@ -551,6 +582,7 @@ void Play_SetupStarfield(void) {
Play_GenerateStarfield();
gGroundHeight = -25000.0f;
gStarCount = 600;
+
if (gCurrentLevel == LEVEL_AREA_6) {
gStarCount = 300;
}
@@ -659,17 +691,19 @@ void Play_ClearObjectData(void) {
Object_Kill(&gPlayerShots[i].obj, gPlayerShots[i].sfxSource);
PlayerShot_Initialize(&gPlayerShots[i]);
}
+
gDrawSmallRocks = D_ctx_801782BC = D_ctx_801782C0 = D_ctx_801782D0 = gBossActive = gKillEventActors =
gGroundClipMode = gPrevEventActorIndex = gFormationLeaderIndex = gRingPassCount = 0;
gFormationInitPos.x = gFormationInitPos.y = gFormationInitPos.z = gFormationInitRot.x = gFormationInitRot.y =
gFormationInitRot.z = 0.0f;
+
for (i = 0; i < ARRAY_COUNT(gTeamArrowsViewPos); i++) {
gTeamArrowsViewPos[i].x = gTeamArrowsViewPos[i].y = gTeamArrowsViewPos[i].z = 100.0f;
}
- for (i = 0; i < ARRAY_COUNT(gActor194yPos); i++) {
- gActor194Status[i] = 0;
- for (j = 0; j < ARRAY_COUNT(*gActor194yPos); j++) {
- gActor194yPos[i][j] = -5000.0f;
+ for (i = 0; i < ARRAY_COUNT(gMeMoraYpos); i++) {
+ gMeMoraStatus[i] = 0;
+ for (j = 0; j < ARRAY_COUNT(*gMeMoraYpos); j++) {
+ gMeMoraYpos[i][j] = -5000.0f;
}
}
}
@@ -688,8 +722,10 @@ void Play_UpdateFillScreen(void) {
}
}
}
+
gFillScreenAlphaStep = 16;
Math_SmoothStepToF(&gLight3Brightness, 0.0f, 1.0f, 0.04f, 0.001f);
+
if (gScreenFlashTimer != 0) {
gScreenFlashTimer--;
if ((gScreenFlashTimer & 2) != 0) {
@@ -728,6 +764,7 @@ void Play_SetupDebris(Actor* actor, s32 state, f32 xPos, f32 yPos, f32 zPos) {
actor->obj.pos.y = yPos;
actor->obj.pos.z = zPos;
actor->gravity = 0.5f;
+
if ((state == 0) || (state == 1)) {
actor->vel.y = RAND_FLOAT(5.0f) + 10.0f;
actor->vel.x = 10.0f;
@@ -752,6 +789,7 @@ void Play_SetupDebris(Actor* actor, s32 state, f32 xPos, f32 yPos, f32 zPos) {
actor->timer_0BC = RAND_INT(25.0f) + 25;
actor->gravity = 0.0f;
}
+
if (state == 2) {
actor->scale = RAND_FLOAT(1.5f) + 0.75f;
} else if (state == 4) {
@@ -824,19 +862,24 @@ void Player_ApplyDamage(Player* player, s32 direction, s32 damage) {
player->dmgType = damage;
player->hitDirection = direction;
+
if ((damage == 39) || (damage == 41) || (damage == 42) || (damage == 43)) {
damage = 40;
}
+
if (gExpertMode) {
player->damage = damage * 2;
} else {
player->damage = damage;
}
+
if (player->damage != 0) {
player->radioDamageTimer = 4;
}
+
player->unk_284 = 0;
player->hitTimer = 20;
+
if (player->dmgType > 40) {
sp34 = (player->boostSpeed * 0.3f) + 20.0f;
player->mercyTimer = 5;
@@ -847,6 +890,7 @@ void Player_ApplyDamage(Player* player, s32 direction, s32 damage) {
} else {
player->mercyTimer = 20;
}
+
if (gHasShield[player->num]) {
Player_PlaySfx(player->sfxSource, NA_SE_DAMAGE_S, player->num);
gShieldTimer[player->num] = 5;
@@ -866,9 +910,12 @@ void Player_ApplyDamage(Player* player, s32 direction, s32 damage) {
Player_PlaySfx(player->sfxSource, NA_SE_DAMAGE_L, player->num);
}
}
+
Matrix_RotateY(gCalcMatrix, player->yRot_114 * M_DTOR, MTXF_NEW);
Matrix_RotateZ(gCalcMatrix, player->bankAngle * M_DTOR, MTXF_APPLY);
+
sp44.z = 0.0f;
+
switch (player->hitDirection) {
case 0:
player->dmgEffectTimer = 20;
@@ -876,10 +923,10 @@ void Player_ApplyDamage(Player* player, s32 direction, s32 damage) {
player->knockback.y = 0.f;
player->knockback.z = 0.f;
break;
+
case 1:
sp44.x = -sp34;
sp44.y = 0.0f;
-
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp44, &sp38);
player->knockback.x = sp38.x;
player->knockback.y = sp38.y;
@@ -887,10 +934,10 @@ void Player_ApplyDamage(Player* player, s32 direction, s32 damage) {
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:
sp44.x = sp34;
sp44.y = 0.0f;
-
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp44, &sp38);
player->knockback.x = sp38.x;
player->knockback.y = sp38.y;
@@ -898,6 +945,7 @@ void Player_ApplyDamage(Player* player, s32 direction, s32 damage) {
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->dmgEffectTimer = 20;
Play_SpawnHitmark(player->hit4.x - player->vel.x, player->hit4.y, player->hit4.z - player->vel.z);
@@ -909,12 +957,14 @@ void Player_ApplyDamage(Player* player, s32 direction, s32 damage) {
player->knockback.y = sp38.y;
player->knockback.z = sp38.z;
}
+
if (Rand_ZeroOne() < 0.5f) {
Player_DamageWings(player, 1, 15);
} else {
Player_DamageWings(player, 2, 15);
}
break;
+
case 4:
player->dmgEffectTimer = 20;
Play_SpawnHitmark(player->hit3.x - player->vel.x, player->hit3.y, player->hit3.z - player->vel.z);
@@ -931,6 +981,7 @@ void Player_ApplyDamage(Player* player, s32 direction, s32 damage) {
}
break;
}
+
if ((gCurrentLevel == LEVEL_VENOM_1) && (player->dmgType == 42)) {
if (player->pos.x > 0.0f) {
player->knockback.x = -30.0f;
@@ -947,6 +998,7 @@ f32 D_800D2FEC[5] = {
void Player_GroundedCollision(Player* player, u32 arg1, f32 arg2, f32 arg3) {
player->hitDirection = arg1;
+
switch (arg1) {
case 1:
case 2:
@@ -958,6 +1010,7 @@ void Player_GroundedCollision(Player* player, u32 arg1, f32 arg2, f32 arg3) {
}
Math_SmoothStepToF(&player->baseSpeed, 2.0f, 1.0f, 2.0f, 0.00001f);
break;
+
case 3:
case 4:
player->pos.z = player->basePos.z;
@@ -969,6 +1022,7 @@ void Player_GroundedCollision(Player* player, u32 arg1, f32 arg2, f32 arg3) {
player->trueZpos = player->pos.z;
Math_SmoothStepToF(&player->baseSpeed, 2.0f, 1.0f, 2.0f, 0.00001f);
break;
+
case 0:
case 5:
break;
@@ -1019,15 +1073,19 @@ bool Play_CheckDynaFloorCollision(f32* arg0, s32* arg1, f32 xPos, f32 yPos, f32
sp9C = (s32) ((xPos + 2400.0f) / 300.0f);
sp98 = (s32) ((zPos + gPathProgress + 1500.0f + 2400.0f) / 300.0f);
+
if ((sp9C < 0) || (sp9C >= 16) || (sp98 < 0) || (sp98 >= 16)) {
return false;
}
+
sp90 = Math_ModF(xPos + 2400.0f, 300.0f);
sp94 = Math_ModF(zPos + gPathProgress + 1500.0f + 2400.0f, 300.0f);
sp8C = (sp98 * 17) + sp9C;
+
x0 = spA4[spA0[sp8C]].n.ob[0] * 3.0f;
y0 = spA4[spA0[sp8C]].n.ob[1] * 2.0f;
z0 = spA4[spA0[sp8C]].n.ob[2] * 3.0f;
+
if (sp90 < sp94) {
x1 = spA4[spA0[sp8C + 18]].n.ob[0] * 3.0f;
y1 = spA4[spA0[sp8C + 18]].n.ob[1] * 2.0f;
@@ -1070,8 +1128,9 @@ bool Play_CheckSingleHitbox(Hitbox* hitbox, f32 arg1, f32 arg2, f32 arg3, f32 ar
(fabsf(hitbox->x.offset + arg1 - arg4) < (hitbox->x.size + D_ctx_8017853C)) &&
(fabsf(hitbox->y.offset + arg2 - arg5) < (hitbox->y.size + D_ctx_8017853C))) {
return true;
+ } else {
+ return false;
}
- return false;
}
s32 Player_CheckHitboxCollision(Player* player, f32* hitboxData, s32* index, f32 xPos, f32 yPos, f32 zPos, f32 xRot,
@@ -1089,7 +1148,7 @@ s32 Player_CheckHitboxCollision(Player* player, f32* hitboxData, s32* index, f32
if (count != 0) {
hitboxData++;
for (i = 0; i < count; i++, hitboxData += 6) {
- spA0 = 0;
+ spA0 = false;
if (*hitboxData == HITBOX_ROTATED) {
Matrix_RotateZ(gCalcMatrix, -hitboxData[3] * M_DTOR, MTXF_NEW);
Matrix_RotateX(gCalcMatrix, -hitboxData[1] * M_DTOR, MTXF_APPLY);
@@ -1098,7 +1157,7 @@ s32 Player_CheckHitboxCollision(Player* player, f32* hitboxData, s32* index, f32
Matrix_RotateX(gCalcMatrix, -xRot * M_DTOR, MTXF_APPLY);
Matrix_RotateY(gCalcMatrix, -yRot * M_DTOR, MTXF_APPLY);
hitboxData += 4;
- spA0 = 1;
+ spA0 = true;
} else {
if (*hitboxData >= HITBOX_SHADOW) {
hitboxData++;
@@ -1107,12 +1166,14 @@ s32 Player_CheckHitboxCollision(Player* player, f32* hitboxData, s32* index, f32
Matrix_RotateX(gCalcMatrix, -xRot * M_DTOR, MTXF_APPLY);
Matrix_RotateY(gCalcMatrix, -yRot * M_DTOR, MTXF_APPLY);
}
+
if (!((arg9 == 0) && (argA == 0) && (argB == 0))) {
Matrix_RotateZ(gCalcMatrix, -argB * M_DTOR, MTXF_APPLY);
Matrix_RotateX(gCalcMatrix, -arg9 * M_DTOR, MTXF_APPLY);
Matrix_RotateY(gCalcMatrix, -argA * M_DTOR, MTXF_APPLY);
}
- if ((yRot == 0.0f) && (zRot == 0.0f) && (xRot == 0.0f) && (spA0 == 0)) {
+
+ if ((yRot == 0.0f) && (zRot == 0.0f) && (xRot == 0.0f) && !spA0) {
var_fv0 = player->hit3.x;
var_fv1 = player->hit3.y;
var_fa0 = player->hit3.z;
@@ -1125,6 +1186,7 @@ s32 Player_CheckHitboxCollision(Player* player, f32* hitboxData, s32* index, f32
var_fv1 = sp88.y + yPos;
var_fa0 = sp88.z + zPos;
}
+
if (Play_CheckSingleHitbox((Hitbox*) hitboxData, xPos, yPos, zPos, var_fv0, var_fv1, var_fa0)) {
*index = i + 1;
if (hitboxData[-1] == HITBOX_SHADOW) {
@@ -1135,8 +1197,9 @@ s32 Player_CheckHitboxCollision(Player* player, f32* hitboxData, s32* index, f32
}
return 3;
}
+
if (hitboxData[-1] < HITBOX_SHADOW) {
- if ((yRot == 0.0f) && (zRot == 0.0f) && (xRot == 0.0f) && (spA0 == 0)) {
+ if ((yRot == 0.0f) && (zRot == 0.0f) && (xRot == 0.0f) && !spA0) {
var_fv0 = player->hit4.x;
var_fv1 = player->hit4.y;
var_fa0 = player->hit4.z;
@@ -1149,11 +1212,13 @@ s32 Player_CheckHitboxCollision(Player* player, f32* hitboxData, s32* index, f32
var_fv1 = sp88.y + yPos;
var_fa0 = sp88.z + zPos;
}
+
if (Play_CheckSingleHitbox((Hitbox*) hitboxData, xPos, yPos, zPos, var_fv0, var_fv1, var_fa0)) {
*index = i + 1;
return 4;
}
- if ((yRot == 0.0f) && (zRot == 0.0f) && (xRot == 0.0f) && (spA0 == 0)) {
+
+ if ((yRot == 0.0f) && (zRot == 0.0f) && (xRot == 0.0f) && !spA0) {
var_fv0 = player->hit1.x;
var_fv1 = player->hit1.y;
var_fa0 = player->hit1.z;
@@ -1166,11 +1231,13 @@ s32 Player_CheckHitboxCollision(Player* player, f32* hitboxData, s32* index, f32
var_fv1 = sp88.y + yPos;
var_fa0 = sp88.z + zPos;
}
+
if (Play_CheckSingleHitbox((Hitbox*) hitboxData, xPos, yPos, zPos, var_fv0, var_fv1, var_fa0)) {
*index = i + 1;
return 1;
}
- if ((yRot == 0.0f) && (zRot == 0.0f) && (xRot == 0.0f) && (spA0 == 0)) {
+
+ if ((yRot == 0.0f) && (zRot == 0.0f) && (xRot == 0.0f) && !spA0) {
var_fv0 = player->hit2.x;
var_fv1 = player->hit2.y;
var_fa0 = player->hit2.z;
@@ -1183,6 +1250,7 @@ s32 Player_CheckHitboxCollision(Player* player, f32* hitboxData, s32* index, f32
var_fv1 = sp88.y + yPos;
var_fa0 = sp88.z + zPos;
}
+
if (Play_CheckSingleHitbox((Hitbox*) hitboxData, xPos, yPos, zPos, var_fv0, var_fv1, var_fa0)) {
*index = i + 1;
return 2;
@@ -1210,8 +1278,9 @@ bool Play_CheckPolyCollision(ObjectId objId, f32 arg1, f32 arg2, f32 arg3, f32 a
sp48.z = arg3;
useCol2 = false;
+
switch (objId) {
- case OBJ_ACTOR_180:
+ case OBJ_ACTOR_ME_MOLAR_ROCK:
colId = COL1_0;
break;
case OBJ_SCENERY_CO_BUMP_4:
@@ -1219,19 +1288,19 @@ bool Play_CheckPolyCollision(ObjectId objId, f32 arg1, f32 arg2, f32 arg3, f32 a
colId = COL2_1;
useCol2 = true;
break;
- case OBJ_SCENERY_149:
+ case OBJ_SCENERY_FO_MOUNTAIN_2:
colId = COL1_5;
break;
- case OBJ_SCENERY_150:
+ case OBJ_SCENERY_FO_MOUNTAIN_3:
colId = COL1_6;
break;
- case OBJ_BOSS_FO:
+ case OBJ_BOSS_FO_BASE:
colId = COL1_4;
break;
- case OBJ_BOSS_VE2:
+ case OBJ_BOSS_VE2_BASE:
colId = COL1_9;
break;
- case OBJ_BOSS_309:
+ case OBJ_BOSS_BO_BASE:
colId = COL1_7;
break;
case ACTOR_EVENT_ID:
@@ -1243,19 +1312,19 @@ bool Play_CheckPolyCollision(ObjectId objId, f32 arg1, f32 arg2, f32 arg3, f32 a
case OBJ_SCENERY_ME_TUNNEL:
colId = COL1_1;
break;
- case OBJ_SCENERY_120:
+ case OBJ_SCENERY_AQ_CORAL_REEF_2:
colId = COL2_18;
useCol2 = true;
break;
- case OBJ_SCENERY_124:
+ case OBJ_SCENERY_AQ_BUMP_1:
colId = COL2_15;
useCol2 = true;
break;
- case OBJ_SCENERY_126:
+ case OBJ_SCENERY_AQ_BUMP_2:
colId = COL2_16;
useCol2 = true;
break;
- case OBJ_SCENERY_47:
+ case OBJ_SCENERY_ZO_ISLAND:
colId = COL2_7;
useCol2 = true;
break;
@@ -1264,102 +1333,102 @@ bool Play_CheckPolyCollision(ObjectId objId, f32 arg1, f32 arg2, f32 arg3, f32 a
useCol2 = true;
break;
case OBJ_SCENERY_CO_BUMP_3:
- case OBJ_SCENERY_69:
+ case OBJ_SCENERY_MA_TERRAIN_BUMP:
colId = COL2_3;
useCol2 = true;
break;
- case OBJ_SCENERY_143:
+ case OBJ_SCENERY_VS_KA_FLBASE:
colId = COL2_17;
useCol2 = true;
break;
- case OBJ_SCENERY_140:
+ case OBJ_SCENERY_VS_PYRAMID_1:
colId = COL2_4;
useCol2 = true;
break;
- case OBJ_SCENERY_141:
+ case OBJ_SCENERY_VS_PYRAMID_2:
colId = COL2_6;
useCol2 = true;
break;
- case OBJ_SCENERY_117:
+ case OBJ_SCENERY_AQ_CORAL_REEF_1:
colId = COL2_14;
useCol2 = true;
break;
- case OBJ_SCENERY_70:
+ case OBJ_SCENERY_MA_FLOOR_1:
colId = COL2_8;
useCol2 = true;
break;
- case OBJ_SCENERY_72:
+ case OBJ_SCENERY_MA_FLOOR_3:
colId = COL2_9;
useCol2 = true;
break;
- case OBJ_SCENERY_71:
+ case OBJ_SCENERY_MA_FLOOR_2:
colId = COL2_10;
useCol2 = true;
break;
- case OBJ_SCENERY_73:
+ case OBJ_SCENERY_MA_FLOOR_4:
colId = COL2_11;
useCol2 = true;
break;
- case OBJ_SCENERY_67:
+ case OBJ_SCENERY_MA_WALL_3:
colId = COL2_12;
useCol2 = true;
break;
- case OBJ_SCENERY_74:
+ case OBJ_SCENERY_MA_FLOOR_5:
colId = COL2_13;
useCol2 = true;
break;
- case OBJ_SCENERY_118:
- case OBJ_SCENERY_119:
- case OBJ_SCENERY_121:
- case OBJ_SCENERY_122:
- case OBJ_SCENERY_123:
- case OBJ_SCENERY_125:
- case OBJ_SCENERY_127:
- case OBJ_SCENERY_128:
- case OBJ_SCENERY_129:
- case OBJ_SCENERY_130:
- case OBJ_SCENERY_131:
- case OBJ_SCENERY_132:
- case OBJ_SCENERY_133:
- case OBJ_SCENERY_134:
- case OBJ_SCENERY_135:
- case OBJ_SCENERY_136:
- case OBJ_SCENERY_137:
- case OBJ_SCENERY_138:
- case OBJ_SCENERY_139:
- case OBJ_SCENERY_142:
- case OBJ_SCENERY_144:
- case OBJ_SCENERY_145:
- case OBJ_SCENERY_146:
+ case OBJ_SCENERY_AQ_TUNNEL_1:
+ case OBJ_SCENERY_AQ_ARCH:
+ case OBJ_SCENERY_AQ_ROCK:
+ case OBJ_SCENERY_AQ_WALL_1:
+ case OBJ_SCENERY_AQ_ROOF:
+ case OBJ_SCENERY_AQ_TUNNEL_2:
+ case OBJ_SCENERY_VE1_TEMPLE_ENTRANCE:
+ case OBJ_SCENERY_VE1_TEMPLE_INTERIOR_1:
+ case OBJ_SCENERY_VE1_TEMPLE_INTERIOR_2:
+ case OBJ_SCENERY_VE1_TEMPLE_INTERIOR_3:
+ case OBJ_SCENERY_AND_PASSAGE:
+ case OBJ_SCENERY_AND_DOOR:
+ case OBJ_SCENERY_TR_BUILDING:
+ case OBJ_SCENERY_AND_PATH_INTERSECTION:
+ case OBJ_SCENERY_AND_PATH_WALLS:
+ case OBJ_SCENERY_AND_PATH_EXIT:
+ case OBJ_SCENERY_AND_PATH_ENTRANCE:
+ case OBJ_SCENERY_VS_BUILDING_1:
+ case OBJ_SCENERY_VS_BUILDING_2:
+ case OBJ_SCENERY_VS_ARCH:
+ case OBJ_SCENERY_VS_SPACE_JUNK_1:
+ case OBJ_SCENERY_VS_SPACE_JUNK_2:
+ case OBJ_SCENERY_VS_SPACE_JUNK_3:
case OBJ_SCENERY_147:
- case OBJ_SCENERY_148:
+ case OBJ_SCENERY_FO_MOUNTAIN_1:
case OBJ_SCENERY_CO_BUILDING_9:
case OBJ_SCENERY_CO_BUILDING_10:
case OBJ_SCENERY_IBEAM:
- case OBJ_SCENERY_ZO_ROCK_1:
- case OBJ_SCENERY_44:
- case OBJ_SCENERY_45:
- case OBJ_SCENERY_46:
- case OBJ_SCENERY_48:
- case OBJ_SCENERY_49:
- case OBJ_SCENERY_50:
- case OBJ_SCENERY_51:
- case OBJ_SCENERY_52:
- case OBJ_SCENERY_53:
+ case OBJ_SCENERY_ZO_ROCK:
+ case OBJ_SCENERY_ZO_OIL_RIG_1:
+ case OBJ_SCENERY_ZO_OIL_RIG_2:
+ case OBJ_SCENERY_ZO_OIL_RIG_3:
+ case OBJ_SCENERY_VE1_WALL_1:
+ case OBJ_SCENERY_VE1_WALL_2:
+ case OBJ_SCENERY_VE1_WALL_3:
+ case OBJ_SCENERY_VE1_HALLWAY_OBSTACLE:
+ case OBJ_SCENERY_VE1_GENERATOR:
+ case OBJ_SCENERY_VE1_WATCH_POST:
case OBJ_SCENERY_CO_WATERFALL:
case OBJ_SCENERY_CO_ROCKWALL:
case OBJ_SCENERY_CO_DOORS:
- case OBJ_SCENERY_57:
- case OBJ_SCENERY_58:
- case OBJ_SCENERY_59:
- case OBJ_SCENERY_60:
- case OBJ_SCENERY_61:
- case OBJ_SCENERY_62:
+ case OBJ_SCENERY_TI_PILLAR:
+ case OBJ_SCENERY_TI_BRIDGE:
+ case OBJ_SCENERY_MA_BUILDING_1:
+ case OBJ_SCENERY_MA_BUILDING_2:
+ case OBJ_SCENERY_MA_TOWER:
+ case OBJ_SCENERY_MA_WALL_1:
case OBJ_SCENERY_63:
- case OBJ_SCENERY_64:
- case OBJ_SCENERY_65:
- case OBJ_SCENERY_66:
- case OBJ_SCENERY_68:
+ case OBJ_SCENERY_MA_GUILLOTINE:
+ case OBJ_SCENERY_MA_PROXIMITY_LIGHT:
+ case OBJ_SCENERY_MA_WALL_2:
+ case OBJ_SCENERY_MA_WALL_4:
default:
colId = COL2_0;
useCol2 = true;
@@ -1378,27 +1447,32 @@ bool Play_CheckPolyCollision(ObjectId objId, f32 arg1, f32 arg2, f32 arg3, f32 a
return false;
}
-s32 Player_CheckPolyCollision(Player* player, ObjectId objId, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6,
- f32 arg7) {
+s32 Player_CheckPolyCollision(Player* player, ObjectId objId, f32 x, f32 y, f32 z, f32 arg5, f32 arg6, f32 arg7) {
Vec3f sp84;
Vec3f sp78;
Vec3f sp6C;
Vec3f sp60;
Vec3f sp54;
- sp84.x = arg2;
- sp84.y = arg3;
- sp84.z = arg4;
+ sp84.x = x;
+ sp84.y = y;
+ sp84.z = z;
+
Matrix_RotateY(gCalcMatrix, -arg6 * M_DTOR, MTXF_NEW);
+
sp78.x = player->vel.x;
sp78.y = player->vel.y;
sp78.z = player->vel.z;
+
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp78, &sp54);
+
if ((player->form == FORM_LANDMASTER) || (player->form == FORM_ON_FOOT)) {
sp78.x = player->pos.x - sp84.x;
sp78.y = player->pos.y - sp84.y;
sp78.z = player->trueZpos - sp84.z;
+
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp78, &sp6C);
+
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;
@@ -1414,39 +1488,51 @@ s32 Player_CheckPolyCollision(Player* player, ObjectId objId, f32 arg2, f32 arg3
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 (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 (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 (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 (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;
+ } else {
+ return 0;
}
- return 0;
}
void Player_CheckItemCollect(Player* player) {
@@ -1609,9 +1695,9 @@ void Player_CollisionCheck(Player* player) {
Player_ApplyDamage(player, 1, 21);
}
if (gCurrentLevel == LEVEL_FORTUNA) {
- func_effect_8007BC7C(player->hit1.x, player->hit1.y, player->hit1.z, 6.0f);
- func_effect_8007BC7C(player->hit1.x, player->hit1.y, player->hit1.z, 6.0f);
- func_effect_8007BC7C(player->hit1.x, player->hit1.y, player->hit1.z, 6.0f);
+ Effect_Effect362_Spawn(player->hit1.x, player->hit1.y, player->hit1.z, 6.0f);
+ Effect_Effect362_Spawn(player->hit1.x, player->hit1.y, player->hit1.z, 6.0f);
+ Effect_Effect362_Spawn(player->hit1.x, player->hit1.y, player->hit1.z, 6.0f);
}
}
if ((player->hit2.y < (gGroundHeight + 13.0f)) && (player->state_1C8 != PLAYERSTATE_1C8_DOWN)) {
@@ -1622,9 +1708,9 @@ void Player_CollisionCheck(Player* player) {
Player_ApplyDamage(player, 2, 21);
}
if (gCurrentLevel == LEVEL_FORTUNA) {
- func_effect_8007BC7C(player->hit2.x, player->hit2.y, player->hit2.z, 6.0f);
- func_effect_8007BC7C(player->hit2.x, player->hit2.y, player->hit2.z, 6.0f);
- func_effect_8007BC7C(player->hit2.x, player->hit2.y, player->hit2.z, 6.0f);
+ Effect_Effect362_Spawn(player->hit2.x, player->hit2.y, player->hit2.z, 6.0f);
+ Effect_Effect362_Spawn(player->hit2.x, player->hit2.y, player->hit2.z, 6.0f);
+ Effect_Effect362_Spawn(player->hit2.x, player->hit2.y, player->hit2.z, 6.0f);
}
}
} else if ((player->form == FORM_LANDMASTER) && !gVersusMode) {
@@ -1639,16 +1725,23 @@ void Player_CollisionCheck(Player* player) {
if ((gCurrentLevel == LEVEL_SECTOR_Y) || (gCurrentLevel == LEVEL_VENOM_ANDROSS)) {
sp8C = 4000.0f;
}
+
for (i = 0, scenery360 = gScenery360; i < 200; i++, scenery360++) {
if (scenery360->obj.status == OBJ_ACTIVE) {
spC8.x = scenery360->obj.pos.x - player->pos.x;
spC8.z = scenery360->obj.pos.z - player->trueZpos;
+
if (sqrtf(SQ(spC8.x) + SQ(spC8.z)) < sp8C) {
- if ((scenery360->obj.id == OBJ_SCENERY_117) || (scenery360->obj.id == OBJ_SCENERY_143) ||
- (scenery360->obj.id == OBJ_SCENERY_141) || (scenery360->obj.id == OBJ_SCENERY_149) ||
- (scenery360->obj.id == OBJ_SCENERY_150) || (scenery360->obj.id == OBJ_SCENERY_148) ||
- (scenery360->obj.id == OBJ_SCENERY_160) || (scenery360->obj.id == OBJ_SCENERY_CO_BUMP_1) ||
- (scenery360->obj.id == OBJ_SCENERY_CO_BUMP_3) || (scenery360->obj.id == OBJ_SCENERY_140)) {
+ if ((scenery360->obj.id == OBJ_SCENERY_AQ_CORAL_REEF_1) ||
+ (scenery360->obj.id == OBJ_SCENERY_VS_KA_FLBASE) ||
+ (scenery360->obj.id == OBJ_SCENERY_VS_PYRAMID_2) ||
+ (scenery360->obj.id == OBJ_SCENERY_FO_MOUNTAIN_2) ||
+ (scenery360->obj.id == OBJ_SCENERY_FO_MOUNTAIN_3) ||
+ (scenery360->obj.id == OBJ_SCENERY_FO_MOUNTAIN_1) ||
+ (scenery360->obj.id == OBJ_SCENERY_VE2_MOUNTAIN) ||
+ (scenery360->obj.id == OBJ_SCENERY_CO_BUMP_1) ||
+ (scenery360->obj.id == OBJ_SCENERY_CO_BUMP_3) ||
+ (scenery360->obj.id == OBJ_SCENERY_VS_PYRAMID_1)) {
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,
@@ -1661,6 +1754,7 @@ void Player_CollisionCheck(Player* player) {
Player_ApplyDamage(player, temp_v0, scenery360->info.damage);
}
}
+
if ((gCurrentLevel == LEVEL_FORTUNA) || (gCurrentLevel == LEVEL_VENOM_2)) {
temp_v0 = Player_CheckHitboxCollision(
player, scenery360->info.hitbox, &sp98, scenery360->obj.pos.x,
@@ -1695,7 +1789,8 @@ void Player_CollisionCheck(Player* player) {
scenery360->obj.pos.z);
} else {
Player_ApplyDamage(player, temp_v0, scenery360->info.damage);
- if (scenery360->obj.id == OBJ_SCENERY_131) {
+
+ if (scenery360->obj.id == OBJ_SCENERY_AND_PASSAGE) {
Matrix_RotateY(gCalcMatrix, (scenery360->obj.rot.y + 180.0f) * M_DTOR,
MTXF_NEW);
Matrix_MultVec3f(gCalcMatrix, &D_800D3040[sp98 - 1], &spBC);
@@ -1710,9 +1805,10 @@ void Player_CollisionCheck(Player* player) {
player->yRot_114 = scenery360->obj.rot.y + 180.0f;
player->mercyTimer = 5;
}
- if ((scenery360->obj.id == OBJ_SCENERY_135) ||
- (scenery360->obj.id == OBJ_SCENERY_136)) {
- if (scenery360->obj.id == OBJ_SCENERY_135) {
+
+ if ((scenery360->obj.id == OBJ_SCENERY_AND_PATH_WALLS) ||
+ (scenery360->obj.id == OBJ_SCENERY_AND_PATH_EXIT)) {
+ if (scenery360->obj.id == OBJ_SCENERY_AND_PATH_WALLS) {
Matrix_RotateY(gCalcMatrix, (scenery360->obj.rot.y + 180.0f) * M_DTOR,
MTXF_NEW);
Matrix_MultVec3f(gCalcMatrix, &D_800D3088[sp98 - 1], &spBC);
@@ -1720,15 +1816,19 @@ void Player_CollisionCheck(Player* player) {
Matrix_RotateY(gCalcMatrix, scenery360->obj.rot.y * M_DTOR, MTXF_NEW);
Matrix_MultVec3f(gCalcMatrix, &D_800D30B8[sp98 - 1], &spBC);
}
+
player->knockback.x = spBC.x;
player->knockback.y = spBC.y;
player->knockback.z = spBC.z;
+
player->rot.y = 0.0f;
player->rot.x = 0.0f;
+
player->pos.x = player->basePos.x;
player->pos.y = player->basePos.y;
player->pos.z = player->basePos.z;
- if (scenery360->obj.id == OBJ_SCENERY_135) {
+
+ if (scenery360->obj.id == OBJ_SCENERY_AND_PATH_WALLS) {
player->yRot_114 = scenery360->obj.rot.y + 180.0f;
} else {
player->yRot_114 = scenery360->obj.rot.y;
@@ -1743,18 +1843,20 @@ void Player_CollisionCheck(Player* player) {
}
} else {
for (i = 0, scenery = gScenery; i < ARRAY_COUNT(gScenery); i++, scenery++) {
- if ((scenery->obj.status == OBJ_ACTIVE) && (scenery->obj.id != OBJ_SCENERY_58) &&
- (scenery->obj.id != OBJ_SCENERY_105) && (scenery->obj.id != OBJ_SCENERY_59) &&
- (scenery->obj.id != OBJ_SCENERY_60) && (scenery->obj.id != OBJ_SCENERY_61) &&
- (scenery->obj.id != OBJ_SCENERY_66) && (scenery->obj.id != OBJ_SCENERY_67) &&
- (scenery->obj.id != OBJ_SCENERY_70) && (scenery->obj.id != OBJ_SCENERY_72) &&
- (scenery->obj.id != OBJ_SCENERY_71) && (scenery->obj.id != OBJ_SCENERY_73) &&
- (scenery->obj.id != OBJ_SCENERY_74) && (scenery->obj.id != OBJ_SCENERY_69) &&
+ if ((scenery->obj.status == OBJ_ACTIVE) && (scenery->obj.id != OBJ_SCENERY_TI_BRIDGE) &&
+ (scenery->obj.id != OBJ_SCENERY_MA_TRAIN_TRACK_13) &&
+ (scenery->obj.id != OBJ_SCENERY_MA_BUILDING_1) && (scenery->obj.id != OBJ_SCENERY_MA_BUILDING_2) &&
+ (scenery->obj.id != OBJ_SCENERY_MA_TOWER) && (scenery->obj.id != OBJ_SCENERY_MA_WALL_2) &&
+ (scenery->obj.id != OBJ_SCENERY_MA_WALL_3) && (scenery->obj.id != OBJ_SCENERY_MA_FLOOR_1) &&
+ (scenery->obj.id != OBJ_SCENERY_MA_FLOOR_3) && (scenery->obj.id != OBJ_SCENERY_MA_FLOOR_2) &&
+ (scenery->obj.id != OBJ_SCENERY_MA_FLOOR_4) && (scenery->obj.id != OBJ_SCENERY_MA_FLOOR_5) &&
+ (scenery->obj.id != OBJ_SCENERY_MA_TERRAIN_BUMP) &&
((player->trueZpos - 2000.0f) < scenery->obj.pos.z)) {
if ((scenery->obj.id == OBJ_SCENERY_CO_BUMP_1) || (scenery->obj.id == OBJ_SCENERY_CO_BUMP_4) ||
- (scenery->obj.id == OBJ_SCENERY_CO_BUMP_5) || (scenery->obj.id == OBJ_SCENERY_47) ||
- (scenery->obj.id == OBJ_SCENERY_117) || (scenery->obj.id == OBJ_SCENERY_120) ||
- (scenery->obj.id == OBJ_SCENERY_124) || (scenery->obj.id == OBJ_SCENERY_126) ||
+ (scenery->obj.id == OBJ_SCENERY_CO_BUMP_5) || (scenery->obj.id == OBJ_SCENERY_ZO_ISLAND) ||
+ (scenery->obj.id == OBJ_SCENERY_AQ_CORAL_REEF_1) ||
+ (scenery->obj.id == OBJ_SCENERY_AQ_CORAL_REEF_2) ||
+ (scenery->obj.id == OBJ_SCENERY_AQ_BUMP_1) || (scenery->obj.id == OBJ_SCENERY_AQ_BUMP_2) ||
(scenery->obj.id == OBJ_SCENERY_CO_BUMP_2) || (scenery->obj.id == OBJ_SCENERY_CO_BUMP_3)) {
spC8.x = scenery->obj.pos.x - player->pos.x;
spC8.z = scenery->obj.pos.z - player->trueZpos;
@@ -1800,9 +1902,9 @@ void Player_CollisionCheck(Player* player) {
}
} else {
Player_ApplyDamage(player, temp_v0, scenery->info.damage);
- if ((scenery->obj.id == OBJ_SCENERY_48) ||
+ if ((scenery->obj.id == OBJ_SCENERY_VE1_WALL_1) ||
(scenery->obj.id == OBJ_SCENERY_CO_ROCKWALL) ||
- (scenery->obj.id == OBJ_SCENERY_49)) {
+ (scenery->obj.id == OBJ_SCENERY_VE1_WALL_2)) {
Matrix_RotateY(gCalcMatrix, scenery->obj.rot.y * M_DTOR, MTXF_NEW);
spC8.x = -(player->baseSpeed + player->boostSpeed) * 0.7f;
spC8.y = 0.0f;
@@ -1813,7 +1915,7 @@ void Player_CollisionCheck(Player* player) {
player->knockback.y = spBC.y;
player->pos.x = player->basePos.x;
player->mercyTimer = 5;
- } else if (scenery->obj.id == OBJ_SCENERY_50) {
+ } else if (scenery->obj.id == OBJ_SCENERY_VE1_WALL_3) {
if (player->pos.x < scenery->obj.pos.x) {
player->knockback.x = -30.0f;
player->rot.y = 45.0f;
@@ -1824,7 +1926,7 @@ void Player_CollisionCheck(Player* player) {
player->knockback.y = 0.0f;
player->pos.x = player->basePos.x;
player->mercyTimer = 5;
- } else if (scenery->obj.id == OBJ_SCENERY_131) {
+ } else if (scenery->obj.id == OBJ_SCENERY_AND_PASSAGE) {
Matrix_RotateY(gCalcMatrix, (scenery->obj.rot.y + 180.0f) * M_DTOR, MTXF_NEW);
Matrix_RotateZ(gCalcMatrix, -scenery->obj.rot.z * M_DTOR, MTXF_APPLY);
Matrix_MultVec3f(gCalcMatrix, &D_800D3040[sp98 - 1], &spBC);
@@ -1842,10 +1944,11 @@ void Player_CollisionCheck(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_VE2) || (boss->obj.id == OBJ_BOSS_FO) ||
- (boss->obj.id == OBJ_BOSS_SZ_GREAT_FOX) || (boss->obj.id == OBJ_BOSS_309)) {
+ if ((boss->obj.id == OBJ_BOSS_VE2_BASE) || (boss->obj.id == OBJ_BOSS_FO_BASE) ||
+ (boss->obj.id == OBJ_BOSS_SZ_GREAT_FOX) || (boss->obj.id == OBJ_BOSS_BO_BASE)) {
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);
@@ -1854,7 +1957,8 @@ void Player_CollisionCheck(Player* player) {
break;
}
}
- if (boss->obj.id == OBJ_BOSS_310) {
+
+ if (boss->obj.id == OBJ_BOSS_BO_BASE_SHIELD) {
spfD4.x = fabsf(boss->obj.pos.x - player->pos.x) * .8333333f;
spfD4.y = fabsf(boss->obj.pos.y - player->pos.y) * 2;
spfD4.z = fabsf(boss->obj.pos.z - player->trueZpos) * 0.8333333f;
@@ -1864,11 +1968,10 @@ void Player_CollisionCheck(Player* player) {
player->mercyTimer = 5;
player->knockback.y = 30.0f;
boss->dmgType = DMG_BEAM;
- func_effect_8007BFFC(player->pos.x + RAND_FLOAT_CENTERED(10.0f),
- player->pos.y + RAND_FLOAT(10.0f),
- player->trueZpos + RAND_FLOAT_CENTERED(10.0f), 0.0f, 15.0f, 0.0f, 2.0f, 5);
+ Effect386_Spawn1(player->pos.x + RAND_FLOAT_CENTERED(10.0f), player->pos.y + RAND_FLOAT(10.0f),
+ player->trueZpos + RAND_FLOAT_CENTERED(10.0f), 0.0f, 15.0f, 0.0f, 2.0f, 5);
for (j = 0; j < 10; j++) {
- func_effect_8007C484(
+ Effect_Effect389_Spawn(
player->pos.x + RAND_FLOAT_CENTERED(30.0f), player->pos.y + RAND_FLOAT(10.0f),
player->trueZpos + RAND_FLOAT_CENTERED(30.0f), player->vel.x, 20.0f + player->vel.y,
player->vel.z, RAND_FLOAT(0.1f) + 0.1f, player->num + 11);
@@ -1876,7 +1979,7 @@ void Player_CollisionCheck(Player* player) {
break;
}
} else {
- if (boss->obj.id == OBJ_BOSS_KA) {
+ if (boss->obj.id == OBJ_BOSS_KA_SAUCERER) {
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);
@@ -1897,7 +2000,7 @@ void Player_CollisionCheck(Player* player) {
player->whooshTimer = 4;
}
} else {
- if ((boss->obj.id == OBJ_BOSS_320) && (boss->timer_056 != 0) && (sp98 == 5)) {
+ if ((boss->obj.id == OBJ_BOSS_AND_ANDROSS) && (boss->timer_056 != 0) && (sp98 == 5)) {
break;
}
Player_ApplyDamage(player, temp_v0, boss->info.damage);
@@ -1905,7 +2008,7 @@ void Player_CollisionCheck(Player* player) {
(sp98 >= 9)) {
player->knockback.y = -100.0f;
}
- if ((boss->obj.id == OBJ_BOSS_320) && (sp98 < 5)) {
+ if ((boss->obj.id == OBJ_BOSS_AND_ANDROSS) && (sp98 < 5)) {
player->knockback.x = boss->fwork[14];
player->knockback.y = boss->fwork[15];
}
@@ -1914,9 +2017,10 @@ void Player_CollisionCheck(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) {
+ if (actor->obj.id == OBJ_ACTOR_ME_MOLAR_ROCK) {
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);
@@ -1971,7 +2075,7 @@ void Player_CollisionCheck(Player* player) {
}
}
}
- } else if ((OBJ_ACTOR_205 <= actor->obj.id) && (actor->obj.id <= OBJ_ACTOR_213)) {
+ } else if ((OBJ_ACTOR_MA_LOCOMOTIVE <= actor->obj.id) && (actor->obj.id <= OBJ_ACTOR_MA_TRAIN_CAR_7)) {
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],
@@ -2004,7 +2108,7 @@ void Player_CollisionCheck(Player* player) {
}
if (actor->info.damage) {
Player_ApplyDamage(player, temp_v0, actor->info.damage);
- if (actor->obj.id == OBJ_ACTOR_225) {
+ if (actor->obj.id == OBJ_ACTOR_TI_LANDMINE) {
player->knockback.y = 0.0f;
}
} else {
@@ -2015,6 +2119,7 @@ void Player_CollisionCheck(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) {
@@ -2024,7 +2129,7 @@ void Player_CollisionCheck(Player* player) {
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)) {
- sprite->destroy = 1;
+ sprite->destroy = true;
player->hitTimer = 6;
player->hitDirection = 0;
} else {
@@ -2035,7 +2140,9 @@ void Player_CollisionCheck(Player* 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)) {
@@ -2043,20 +2150,24 @@ void Player_CollisionCheck(Player* player) {
if (player->form == FORM_ON_FOOT) {
spC8.x = 4.0f;
}
+
spC8.y = 25.0f;
if (opponent->form == FORM_ON_FOOT) {
spC8.y = 4.0f;
}
spBC.x = spBC.z = spC8.x + spC8.y;
+
spC8.x = 23.0f;
if (player->form == FORM_ON_FOOT) {
spC8.x = 7.0f;
}
+
spC8.y = 23.0f;
if (opponent->form == FORM_ON_FOOT) {
spC8.y = 7.0f;
}
spBC.y = spC8.x + spC8.y;
+
if ((fabsf(opponent->trueZpos - player->trueZpos) <= spBC.z) &&
(fabsf(opponent->pos.y - player->pos.y) <= spBC.y) &&
(fabsf(opponent->pos.x - player->pos.x) <= spBC.x)) {
@@ -2080,12 +2191,13 @@ void Player_CollisionCheck(Player* player) {
}
}
}
+
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;
- func_effect_8007B228(player->hit4.x, sp94, player->hit4.z, 1.0f);
+ Effect_Effect381_Spawn(player->hit4.x, sp94, player->hit4.z, 1.0f);
} else {
if (player->hitTimer == 0) {
Player_ApplyDamage(player, 4, 10);
@@ -2095,15 +2207,16 @@ void Player_CollisionCheck(Player* player) {
}
if (player->state_1C8 == PLAYERSTATE_1C8_DOWN) {
player->radioDamageTimer = 2;
- func_effect_8007AFD0(player->pos.x, player->trueZpos, 30.0f, 0.0f, 5.0f);
- func_effect_8007AFD0(player->pos.x, player->trueZpos, -30.0f, 0.0f, 5.0f);
+ Effect_Effect382_Spawn(player->pos.x, player->trueZpos, 30.0f, 0.0f, 5.0f);
+ Effect_Effect382_Spawn(player->pos.x, player->trueZpos, -30.0f, 0.0f, 5.0f);
}
}
+
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);
+ Effect_Effect381_Spawn(player->pos.x + (player->hit1.x - player->pos.x) * 1.5f, sp94, player->hit1.z,
+ 1.0f);
} else {
if (player->hitTimer == 0) {
Player_ApplyDamage(player, 1, 10);
@@ -2111,11 +2224,12 @@ void Player_CollisionCheck(Player* player) {
player->knockback.y = 30.0f;
}
}
+
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);
+ Effect_Effect381_Spawn(player->pos.x + (player->hit2.x - player->pos.x) * 1.5f, sp94, player->hit2.z,
+ 1.0f);
} else {
if (player->hitTimer == 0) {
Player_ApplyDamage(player, 2, 40);
@@ -2162,8 +2276,10 @@ void Player_FloorCheck(Player* player) {
if (player->hideShadow) {
return;
}
+
player->groundPos.x = player->pos.x;
player->groundPos.z = player->trueZpos - player->pos.y;
+
if (gGroundType != 4) {
if (gCamCount == 1) {
player->groundPos.y = gGroundHeight + 3.0f;
@@ -2175,16 +2291,19 @@ void Player_FloorCheck(Player* player) {
}
player->shadowRotX = player->shadowRotZ = player->groundRotY = 0.0f;
}
+
sp100 = 0.0f;
spFC = 0.0f;
spF8 = 0.0f;
+
if (gCamCount != 1) {
if (player->form == FORM_ON_FOOT) {
for (sp144 = 0; sp144 < 200; sp144++) {
scenery360 = &gScenery360[sp144];
if ((scenery360->obj.status == OBJ_ACTIVE) &&
- ((scenery360->obj.id == OBJ_SCENERY_143) || (scenery360->obj.id == OBJ_SCENERY_140) ||
- (scenery360->obj.id == OBJ_SCENERY_141)) &&
+ ((scenery360->obj.id == OBJ_SCENERY_VS_KA_FLBASE) ||
+ (scenery360->obj.id == OBJ_SCENERY_VS_PYRAMID_1) ||
+ (scenery360->obj.id == OBJ_SCENERY_VS_PYRAMID_2)) &&
(fabsf(scenery360->obj.pos.x - player->pos.x) < 2000.0f) &&
(fabsf(scenery360->obj.pos.z - player->trueZpos) < 2000.0f)) {
spC8.x = scenery360->obj.pos.x;
@@ -2194,9 +2313,9 @@ void Player_FloorCheck(Player* player) {
spD4.y = gGroundHeight;
spD4.z = player->trueZpos;
colId = COL2_4;
- if (scenery360->obj.id == OBJ_SCENERY_141) {
+ if (scenery360->obj.id == OBJ_SCENERY_VS_PYRAMID_2) {
colId = COL2_6;
- } else if (scenery360->obj.id == OBJ_SCENERY_143) {
+ } else if (scenery360->obj.id == OBJ_SCENERY_VS_KA_FLBASE) {
colId = COL2_17;
}
if (func_col2_800A3690(&spD4, &spC8, colId, &spBC)) {
@@ -2214,9 +2333,10 @@ void Player_FloorCheck(Player* player) {
player->groundPos.z = player->trueZpos;
for (sp144 = 0, scenery360 = gScenery360; sp144 < 200; sp144++, scenery360++) {
if ((scenery360->obj.status == OBJ_ACTIVE) &&
- ((scenery360->obj.id == OBJ_SCENERY_150) || (scenery360->obj.id == OBJ_SCENERY_149) ||
- (scenery360->obj.id == OBJ_SCENERY_148) || (scenery360->obj.id == OBJ_SCENERY_CO_BUMP_1) ||
- (scenery360->obj.id == OBJ_SCENERY_CO_BUMP_3)) &&
+ ((scenery360->obj.id == OBJ_SCENERY_FO_MOUNTAIN_3) ||
+ (scenery360->obj.id == OBJ_SCENERY_FO_MOUNTAIN_2) ||
+ (scenery360->obj.id == OBJ_SCENERY_FO_MOUNTAIN_1) ||
+ (scenery360->obj.id == OBJ_SCENERY_CO_BUMP_1) || (scenery360->obj.id == OBJ_SCENERY_CO_BUMP_3)) &&
(fabsf(scenery360->obj.pos.x - player->pos.x) < 2500.0f) &&
(fabsf(scenery360->obj.pos.z - player->trueZpos) < 2500.0f)) {
tempx = scenery360->obj.pos.x;
@@ -2235,8 +2355,9 @@ void Player_FloorCheck(Player* player) {
spC8.y = tempy;
spC8.z = tempz;
- if ((scenery360->obj.id == OBJ_SCENERY_149) || (scenery360->obj.id == OBJ_SCENERY_150)) {
- if (scenery360->obj.id == OBJ_SCENERY_149) {
+ if ((scenery360->obj.id == OBJ_SCENERY_FO_MOUNTAIN_2) ||
+ (scenery360->obj.id == OBJ_SCENERY_FO_MOUNTAIN_3)) {
+ if (scenery360->obj.id == OBJ_SCENERY_FO_MOUNTAIN_2) {
colId = COL1_5;
} else {
colId = COL1_6;
@@ -2272,7 +2393,7 @@ void Player_FloorCheck(Player* player) {
tempz = scenery->obj.pos.z;
sp120 = scenery->obj.rot.y;
if ((scenery->obj.id == OBJ_SCENERY_CO_BUMP_3) || (scenery->obj.id == OBJ_SCENERY_CO_BUMP_2) ||
- (scenery->obj.id == OBJ_SCENERY_47) || (scenery->obj.id == OBJ_SCENERY_CO_BUMP_4) ||
+ (scenery->obj.id == OBJ_SCENERY_ZO_ISLAND) || (scenery->obj.id == OBJ_SCENERY_CO_BUMP_4) ||
(scenery->obj.id == OBJ_SCENERY_CO_BUMP_5)) {
Matrix_RotateY(gCalcMatrix, -sp120 * M_DTOR, MTXF_NEW);
for (var_fs1 = var_fs0 = -50.0f; var_fs0 > -500.0f; var_fs0 -= 5.0f, var_fs1 -= 5.0f) {
@@ -2292,7 +2413,7 @@ void Player_FloorCheck(Player* player) {
colId = COL2_0;
- if (scenery->obj.id == OBJ_SCENERY_47) {
+ if (scenery->obj.id == OBJ_SCENERY_ZO_ISLAND) {
colId = COL2_7;
}
if (scenery->obj.id == OBJ_SCENERY_CO_BUMP_2) {
@@ -2409,11 +2530,14 @@ void Play_InitLevel(void) {
gTeamLowHealthMsgTimer = -1;
break;
}
+
gUseDynaFloor = 0;
+
switch (gCurrentLevel) {
case LEVEL_SECTOR_Z:
gGreatFoxIntact = true;
break;
+
case LEVEL_METEO:
case LEVEL_SECTOR_X:
if (gLevelPhase == 1) {
@@ -2428,32 +2552,37 @@ void Play_InitLevel(void) {
gAmbientB = 100;
}
break;
+
case LEVEL_VENOM_ANDROSS:
gDrawGround = false;
gDrawBackdrop = 6;
D_Andross_801A7F58 = D_Andross_801A7F60 = D_Andross_801A7F68 = D_Andross_801A7F70 = D_Andross_801A7F78 =
0.0f;
break;
+
case LEVEL_AQUAS:
gVIsPerFrame = 3;
D_bg_8015F970 = 1600.0f;
D_AQ_801C4188 = 128.0f;
- Aquas_801A9824();
+ Aquas_InitLevel();
break;
+
case LEVEL_TITANIA:
Titania_80188F30();
gTeamShields[TEAM_ID_SLIPPY] = -2;
break;
+
case LEVEL_MACBETH:
- Macbeth_80199920();
+ Macbeth_InitLevel();
break;
+
case LEVEL_ZONESS:
- MEM_ARRAY_ALLOCATE(gZOSnakePosRots, 200);
- ptr = (u8*) gZOSnakePosRots;
- for (i = 0; i < 200 * sizeof(*gZOSnakePosRots); i++, ptr++) {
+ MEM_ARRAY_ALLOCATE(gZoDodoraPosRots, 200);
+ ptr = (u8*) gZoDodoraPosRots;
+ for (i = 0; i < 200 * sizeof(*gZoDodoraPosRots); i++, ptr++) {
*ptr = 0;
}
- gZOSnakeWaypointCount = 0;
+ gZoDodoraWaypointCount = 0;
/* fallthrough */
case LEVEL_SOLAR:
gUseDynaFloor = true;
@@ -2487,6 +2616,7 @@ void Play_InitLevel(void) {
mesh = SEGMENTED_TO_VIRTUAL(D_ZO_6009ED0);
break;
}
+
for (i = 0; i < 17 * 17; i++, mesh++) {
if (mesh->v.ob[0] == 800) {
mesh->v.ob[0] = 1400;
@@ -2507,6 +2637,7 @@ void Play_InitLevel(void) {
mesh = SEGMENTED_TO_VIRTUAL(D_ZO_600C780);
break;
}
+
for (i = 0; i < 17 * 17; i++, mesh++) {
if (mesh->v.ob[0] == 800) {
mesh->v.ob[0] = 1400;
@@ -2527,6 +2658,7 @@ void Player_ResetVsData(void) {
s32 j;
gVsMatchState = VS_STATE_0;
+
for (i = 0; i < 4; i++) {
gVsPoints[i] = 0;
for (j = 0; j < 10; j++) {
@@ -2542,6 +2674,7 @@ void Player_InitVersus(void) {
s32 i;
Player_ResetVsData();
+
for (i = 0; i < 4; i++) {
gPlayerNum = i;
Player_Initialize(&gPlayer[i]);
@@ -2556,6 +2689,7 @@ void Play_Init(void) {
s32 i;
gArwingSpeed = 40.0f;
+
for (i = 0; i < ARRAY_COUNT(gControllerRumbleEnabled); i++) {
gControllerRumbleEnabled[i] = 0;
}
@@ -2565,21 +2699,27 @@ void Play_Init(void) {
} else {
gEnemyShotSpeed = 100;
}
+
gPauseEnabled = false;
gVIsPerFrame = 2;
- D_ctx_80177C70 = 0;
+ gFovYMode = 0;
gTeamHelpActor = NULL;
gTeamHelpTimer = 0;
+
Audio_KillSfxById(NA_SE_OB_ROUTE_EXPLOSION1);
Audio_KillSfxById(NA_SE_DEMO_SIREN);
+
Memory_FreeAll();
+
gTraining360MsgTimer = gTraining360MsgIndex = gShowBossHealth = gStarWolfMsgTimer = gAllRangeWingRepairTimer =
gAllRangeSuppliesSent = 0;
D_display_800CA220 = 0;
gShowLevelClearStatusScreen = 0;
+
if (gCurrentLevel != LEVEL_VERSUS) {
gSceneSetup = 0;
}
+
gShowHud = 1;
gDrawGround = gDrawBackdrop = 1;
gAqDrawMode = sOverheadCam = 0;
@@ -2587,6 +2727,7 @@ void Play_Init(void) {
gLevelMode = LEVELMODE_ON_RAILS;
gPathTexScroll = D_bg_8015F968 = 0.0f;
D_hud_800D1970 = gVersusMode = gHideRadio = gChangeTo360 = false;
+
if (gCurrentLevel >= LEVEL_FORTUNA) {
gLevelMode = LEVELMODE_ALL_RANGE;
if (gCurrentLevel == LEVEL_VERSUS) {
@@ -2597,6 +2738,7 @@ void Play_Init(void) {
if ((gCurrentLevel == LEVEL_VENOM_ANDROSS) && (gLevelPhase == 1)) {
gLevelMode = LEVELMODE_ALL_RANGE;
}
+
gVsMatchStart = false;
Play_InitEnvironment();
gDropHitCountItem = gTeamLowHealthMsgTimer = gStartAndrossFightTimer = gSoShieldsEmpty = gAllRangeEventTimer =
@@ -2606,8 +2748,10 @@ void Play_Init(void) {
if (gCurrentLevel == LEVEL_SECTOR_X) {
gMissionStatus = MISSION_ACCOMPLISHED;
}
+
gWaterLevel = -25000.0f;
D_ctx_80177950 = 1.0f;
+
if ((gCurrentLevel == LEVEL_VENOM_2) && (gLevelPhase == 2)) {
gFillScreenRed = gFillScreenGreen = gFillScreenBlue = 255;
} else {
@@ -2633,39 +2777,49 @@ void Play_Init(void) {
} else {
gStarCount = 0;
}
+
gFogAlpha = 255;
gLight1rotStep = 5.0f;
gLight2rotStep = 5.0f;
D_ctx_80178538 = 5.0f;
Play_ClearObjectData();
D_ctx_801782C8 = 0;
+
if (gCurrentLevel == LEVEL_TITANIA) {
Ground_801B5110(0.0f, 0.0f, 200.0f);
}
if (gCurrentLevel == LEVEL_AQUAS) {
gWaterLevel = 1000.0f;
}
+
gLoadLevelObjects = false;
gCamCount = 1;
+
if (gCurrentLevel == LEVEL_VERSUS) {
gCamCount = 4;
}
+
for (i = TEAM_ID_FALCO; i < TEAM_ID_MAX; i++) {
gTeamShields[i] = gSavedTeamShields[i];
}
+
MEM_ARRAY_ALLOCATE(gPlayer, gCamCount);
Player_InitializeAll();
+
for (i = 0; i < gCamCount; i++) {
gPlayer[i].state_1C8 = PLAYERSTATE_1C8_INIT;
gPlayerGlareAlphas[i] = D_ctx_801783C0[i] = 0;
gControllerRumbleTimers[i] = 0;
gPlayerScores[i] = 0;
}
+
if (gLevelMode == LEVELMODE_ALL_RANGE) {
MEM_ARRAY_ALLOCATE(gScenery360, 200);
+
for (i = 0; i < 200; i++) {
gScenery360[i].obj.status = OBJ_FREE;
}
+
switch (gCurrentLevel) {
case LEVEL_SECTOR_Z:
if (!D_ctx_8017782C) {
@@ -2673,28 +2827,33 @@ void Play_Init(void) {
ActorAllRange_SpawnTeam();
}
break;
+
case LEVEL_FORTUNA:
Fortuna_LoadLevelObjects();
ActorAllRange_SpawnTeam();
break;
+
case LEVEL_KATINA:
Katina_Init();
if (!D_ctx_8017782C) {
ActorAllRange_SpawnTeam();
}
break;
+
case LEVEL_BOLSE:
if (!D_ctx_8017782C) {
- Bolse_80191ED8();
+ Bolse_LoadLevelObjects();
ActorAllRange_SpawnTeam();
}
break;
+
case LEVEL_VENOM_2:
Venom2_LoadLevelObjects();
if (gLevelPhase == 0) {
ActorAllRange_SpawnTeam();
}
break;
+
case LEVEL_VENOM_ANDROSS:
if (gLevelPhase == 1) {
if (gAllRangeCheckpoint == 0) {
@@ -2704,6 +2863,7 @@ void Play_Init(void) {
}
}
break;
+
case LEVEL_VERSUS:
Play_InitVsStage();
gTeamLowHealthMsgTimer = -1;
@@ -2719,21 +2879,29 @@ void Player_SetupArwingShot(Player* player, PlayerShot* shot, f32 arg2, f32 arg3
Vec3f sp2C;
PlayerShot_Initialize(shot);
+
Matrix_RotateY(gCalcMatrix, (player->yRot_114 + player->rot.y + 180.0f) * M_DTOR, MTXF_NEW);
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_TWIN_LASER)) {
speed *= 0.5f;
}
+
sp44.x = 0.0f;
sp44.y = 0.0f;
sp44.z = speed;
+
Matrix_MultVec3f(gCalcMatrix, &sp44, &sp38);
+
sp44.x = arg2;
sp44.y = -5.0f + arg3;
sp44.z = 0.0f;
+
Matrix_MultVec3f(gCalcMatrix, &sp44, &sp2C);
+
shot->obj.status = SHOT_ACTIVE;
shot->vel.x = sp38.x;
shot->vel.y = sp38.y;
@@ -2746,6 +2914,7 @@ void Player_SetupArwingShot(Player* player, PlayerShot* shot, f32 arg2, f32 arg3
} else {
shot->timer = 37;
}
+
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;
@@ -2756,9 +2925,11 @@ void Player_SetupArwingShot(Player* player, PlayerShot* shot, f32 arg2, f32 arg3
shot->obj.pos.y = player->pos.y + sp2C.y + (sp38.y * 1.2);
shot->obj.pos.z = player->trueZpos + sp2C.z + (sp38.z * 1.2f);
}
+
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_LOCK_ON) {
if (gCurrentLevel == LEVEL_AQUAS) {
shot->unk_58 = RAND_INT(360.0f);
@@ -2826,8 +2997,8 @@ void Player_SetupTankShot(Player* player, PlayerShot* shot, PlayerShotId shotId,
shot->obj.rot.z = player->rot.z;
shot->timer = 40;
shot->obj.id = shotId;
-
shot->sourceId = player->num;
+
if (shotId == PLAYERSHOT_LOCK_ON) {
if (speed <= 65.0f) {
shot->unk_5C = 1;
@@ -2852,11 +3023,13 @@ void Player_TankCannon(Player* player) {
void Player_ArwingLaser(Player* player) {
s32 i;
- LaserStrength laser = gLaserStrength[gPlayerNum];
+ LaserStrength laser;
+ laser = gLaserStrength[gPlayerNum];
if (player->wings.unk_14 > -8.0f) {
laser = LASERS_SINGLE;
}
+
switch (laser) {
case LASERS_SINGLE:
for (i = 0; i < ARRAY_COUNT(gPlayerShots) - 1; i++) {
@@ -2897,6 +3070,7 @@ void Player_SmartBomb(Player* player) {
} else {
gBombCount[player->num]--;
}
+
if (player->form == FORM_ARWING) {
Player_SetupArwingShot(player, &gPlayerShots[ARRAY_COUNT(gPlayerShots) - 1], 0.0f, 0.0f, PLAYERSHOT_BOMB,
180.0f);
@@ -2905,8 +3079,10 @@ void Player_SmartBomb(Player* player) {
} else {
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;
+
Audio_InitBombSfx(player->num, 1);
Audio_PlayBombFlightSfx(player->num, gPlayerShots[ARRAY_COUNT(gPlayerShots) - 1].sfxSource);
}
@@ -2918,17 +3094,21 @@ void Player_SetupOnFootShot(Player* player, PlayerShot* shot, PlayerShotId shotI
Vec3f sp44;
PlayerShot_Initialize(shot);
+
Matrix_RotateY(gCalcMatrix, (player->yRot_114 + player->rot.y + player->damageShake + 180.0f) * M_DTOR, MTXF_NEW);
Matrix_RotateX(gCalcMatrix, -((player->rot.x + player->damageShake) * M_DTOR), MTXF_APPLY);
Matrix_RotateZ(gCalcMatrix, -((player->bankAngle + player->rockAngle + player->damageShake) * M_DTOR), MTXF_APPLY);
Matrix_RotateX(gCalcMatrix, player->unk_154 * M_DTOR, MTXF_APPLY);
+
sp5C.x = 0.0f;
sp5C.y = 0.0f;
+
if (shotId == PLAYERSHOT_BOMB) {
sp5C.z = 100.0f;
} else {
sp5C.z = 150.0f;
}
+
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp5C, &sp50);
Matrix_RotateY(gCalcMatrix, (player->yRot_114 + player->rot.y + player->damageShake + 180.0f) * M_DTOR, MTXF_NEW);
Matrix_RotateX(gCalcMatrix, -((player->rot.x + player->damageShake) * M_DTOR), MTXF_APPLY);
@@ -2936,13 +3116,17 @@ void Player_SetupOnFootShot(Player* player, PlayerShot* shot, PlayerShotId shotI
Matrix_Translate(gCalcMatrix, 0.0f, player->yBob, 0, MTXF_APPLY);
Matrix_Translate(gCalcMatrix, -10.0f, 25.0f, 0.0f, MTXF_APPLY);
Matrix_RotateX(gCalcMatrix, player->unk_154 * M_DTOR, MTXF_APPLY);
+
sp5C.x = 0.0f;
sp5C.y = 0.0f;
sp5C.z = 0;
+
Matrix_MultVec3f(gCalcMatrix, &sp5C, &sp44);
+
shot->vel.x = sp50.x;
shot->vel.y = sp50.y;
shot->vel.z = sp50.z;
+
shot->obj.pos.x = player->pos.x + sp44.x;
shot->obj.pos.y = player->pos.y + sp44.y;
shot->obj.pos.z = player->trueZpos + sp44.z;
@@ -2980,6 +3164,7 @@ bool Player_CanLockOn(s32 playerNum) {
return false;
}
}
+
if (gVersusMode) {
for (i = 0; i < gCamCount; i++) {
if (((gPlayer[playerNum].state_1C8 == PLAYERSTATE_1C8_ACTIVE) ||
@@ -3004,6 +3189,7 @@ bool Player_UpdateLockOn(Player* player) {
if (gChargeTimers[player->num] == 20) {
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) && Player_CanLockOn(player->num)) {
@@ -3047,6 +3233,7 @@ bool Player_UpdateLockOn(Player* player) {
break;
}
}
+
if (gChargeTimers[player->num] > 10) {
if ((gPlayerShots[14 - player->num].obj.status == SHOT_FREE) ||
(gPlayerShots[14 - player->num].obj.id != PLAYERSHOT_LOCK_ON) ||
@@ -3066,20 +3253,24 @@ bool Player_UpdateLockOn(Player* player) {
}
gChargeTimers[player->num] = 0;
}
+
if (gInputPress->button & B_BUTTON) {
hasBombTarget = false;
+
for (i = 0; i < ARRAY_COUNT(gActors); i++) {
if ((gActors[i].obj.status == OBJ_ACTIVE) && (gActors[i].lockOnTimers[player->num] != 0)) {
hasBombTarget = true;
break;
}
}
+
for (i = 0; i < gCamCount; i++) {
if (gVsLockOnTimers[i][player->num] != 0) {
hasBombTarget = true;
break;
}
}
+
if (hasBombTarget && (gBombCount[player->num] != 0) &&
(gPlayerShots[ARRAY_COUNT(gPlayerShots) - 1].obj.status == SHOT_FREE)) {
gBombCount[player->num]--;
@@ -3105,6 +3296,7 @@ void Player_Shoot(Player* player) {
if ((player->wings.rightState <= WINGSTATE_BROKEN) || (player->wings.leftState <= WINGSTATE_BROKEN)) {
gLaserStrength[player->num] = LASERS_SINGLE;
}
+
if (!Player_UpdateLockOn(player)) {
if (gLaserStrength[gPlayerNum] > LASERS_SINGLE) {
Math_SmoothStepToF(&player->wings.unk_14, -10.0f, 1.0f, 0.5f, 0.0f);
@@ -3124,6 +3316,7 @@ void Player_Shoot(Player* player) {
Player_SmartBomb(player);
}
break;
+
case FORM_LANDMASTER:
if (!Player_UpdateLockOn(player)) {
if (gShootButton[player->num] & gInputPress->button) {
@@ -3132,6 +3325,7 @@ void Player_Shoot(Player* player) {
Player_SmartBomb(player);
}
break;
+
case FORM_ON_FOOT:
if (gInputPress->button & A_BUTTON) {
player->shotTimer = 0;
@@ -3160,6 +3354,7 @@ void Player_ArwingBank(Player* player) {
} else if ((player->wings.leftState <= WINGSTATE_BROKEN) && (player->wings.rightState == WINGSTATE_INTACT)) {
sp3C = 17.0f;
}
+
sp38 = 0.1f;
if ((gInputHold->button & Z_TRIG) && !(gInputHold->button & R_TRIG)) {
sp3C = 90.0f;
@@ -3188,7 +3383,9 @@ void Player_ArwingBank(Player* player) {
}
}
}
+
Math_SmoothStepToF(&player->zRotBank, sp3C, sp38, 10.0f, 0.f);
+
if (gInputPress->button & Z_TRIG) {
player->sfx.bank = 1;
if (player->rollInputTimerL != 0) {
@@ -3200,6 +3397,7 @@ void Player_ArwingBank(Player* player) {
player->rollInputTimerL = 10;
}
}
+
if (gInputPress->button & R_TRIG) {
player->sfx.bank = 1;
if (player->rollInputTimerR != 0) {
@@ -3216,6 +3414,7 @@ void Player_ArwingBank(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) {
if ((player->rollInputTimerL != 0) && (player->zRotBank > 0.0f) && (player->boostMeter < 10.0f)) {
player->rollState = 1;
@@ -3225,6 +3424,7 @@ void Player_UseTankJets(Player* player) {
player->rollInputTimerL = 10;
}
}
+
if (gInputPress->button & R_TRIG) {
if ((player->rollInputTimerR != 0) && (player->zRotBank < 0.0f) && (player->boostMeter < 10.0f)) {
player->rollState = 1;
@@ -3234,6 +3434,7 @@ void Player_UseTankJets(Player* player) {
player->rollInputTimerR = 10;
}
}
+
player->unk_18C = fabsf(SIN_DEG(player->zRotBank) * 25.0f);
player->unk_18C += fabsf(SIN_DEG(player->zRotBarrelRoll) * 20.0f);
}
@@ -3245,12 +3446,15 @@ void Player_UpdatePath(Player* player) {
player->zPathVel = -player->vel.z;
player->zPath += -player->vel.z;
+
gPathVelZ = -player->vel.z;
gPathProgress = player->zPath;
gPathTexScroll += player->zPathVel;
+
if (gGroundType == 4) {
gPathGroundScroll = player->zPathVel;
}
+
if (!gBossActive && (player->zPath > 500000.0f)) {
player->zPath = 0.0f;
player->pos.z = 0.0f;
@@ -3267,6 +3471,7 @@ void Player_UpdatePath(Player* player) {
break;
}
}
+
while (true) {
if (player->bankAngle < -360.0f) {
player->bankAngle += 360.0f;
@@ -3274,6 +3479,7 @@ void Player_UpdatePath(Player* player) {
break;
}
}
+
if (gCurrentLevel == LEVEL_UNK_15) {
Math_SmoothStepToF(&player->pathStep, 10.0f, 0.1f, 0.5f, 0.0001f);
player->pos.x += Math_SmoothStepToF(&player->xPath, player->xPathTarget, 0.1f, player->pathStep, 0.0001f);
@@ -3283,6 +3489,7 @@ void Player_UpdatePath(Player* player) {
gPathVelX = Math_SmoothStepToF(&player->xPath, player->xPathTarget, 0.1f, player->pathStep, 0.0001f);
gPathVelY = Math_SmoothStepToF(&player->yPath, player->yPathTarget, 0.1f, player->pathStep, 0.0001f);
}
+
if (player->pathChangeTimer != 0) {
player->pathChangeTimer--;
Math_SmoothStepToF(&player->yRot_114, player->pathChangeYaw, 0.03f, 0.5f, 0.0001f);
@@ -3364,16 +3571,22 @@ void Player_MoveArwing360(Player* player) {
gPlayerTurnRate = 2.3f;
gPlayerTurnStickMod = 0.68f;
+
sp7C = -gInputPress->stick_x;
sp78 = gInputPress->stick_y;
+
Math_SmoothStepToAngle(&player->aerobaticPitch, 0.0f, 0.1f, 5.0f, 0.01f);
Matrix_RotateZ(gCalcMatrix, -player->zRotBank * M_DTOR, MTXF_NEW);
+
sp4C.x = sp7C * 0.75f;
sp4C.y = sp78 * 0.75f;
sp4C.z = 0.0f;
+
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp4C, &sp40);
+
sp60 = sp40.y;
sp5C = sp58 = 0.0f;
+
if (sp40.x < -5.0f) {
sp5C = -sp40.x;
}
@@ -3386,16 +3599,20 @@ void Player_MoveArwing360(Player* player) {
Math_SmoothStepToF(&player->wings.unk_08, -sp60 - sp5C, 0.1f, 100.0f, 0.0f);
Math_SmoothStepToF(&player->wings.unk_0C, -sp60 + sp58, 0.1f, 100.0f, 0.0f);
Math_SmoothStepToF(&player->wings.unk_10, -sp60 - sp58, 0.1f, 100.0f, 0.0f);
+
scale = 0.1f;
if ((player->zRotBank > 10.0f) && (sp7C > 0)) {
gPlayerTurnRate *= 2.0f;
scale = 0.2f;
}
+
if ((player->zRotBank < -10.0f) && (sp7C < 0)) {
gPlayerTurnRate *= 2.0f;
scale = 0.2f;
}
+
Math_SmoothStepToF(&player->rot.y, sp7C * gPlayerTurnStickMod, scale, gPlayerTurnRate, 0.03f);
+
scale = 0.03f;
if ((player->zRotBank > 10.0f) && (sp7C > 0)) {
scale = 0.05f;
@@ -3403,7 +3620,9 @@ void Player_MoveArwing360(Player* player) {
if ((player->zRotBank < -10.0f) && (sp7C < 0)) {
scale = 0.05f;
}
+
Math_SmoothStepToF(&player->yRotVel_11C, player->rot.y * scale, 0.1f, 0.8f, 0.05f);
+
player->yRot_114 += player->yRotVel_11C;
if (player->yRot_114 >= 360.0f) {
player->yRot_114 -= 360.0f;
@@ -3411,33 +3630,44 @@ void Player_MoveArwing360(Player* player) {
if (player->yRot_114 < 0.0f) {
player->yRot_114 += 360.0f;
}
+
gPlayerTurnRate = 2.3f;
var_fa1 = 0.1f;
temp = -sp78 * gPlayerTurnStickMod;
+
if ((temp <= 0.0f) && (player->pos.y < (gGroundHeight + 50.0f))) {
gPlayerTurnRate *= 2.0f;
temp = 0.0f;
var_fa1 = 0.2f;
}
+
Math_SmoothStepToF(&player->rot.x, temp, var_fa1, gPlayerTurnRate, 0.03f);
+
var_fv1 = 1.5f;
if (player->pos.y < (gGroundHeight + 70.0f)) {
var_fv1 = 0.8f;
}
+
if (!((gInputHold->button & R_TRIG) && (gInputHold->button & Z_TRIG)) &&
!(!(gInputHold->button & R_TRIG) && !(gInputHold->button & Z_TRIG))) {
var_fv1 = 0.1f;
}
+
var_fv0 = 4.0f;
if (sp7C == 0) {
var_fv0 = 1.0f;
}
+
Math_SmoothStepToF(&player->rot.z, sp7C * 0.6f * var_fv1, 0.1f, var_fv0, 0.03f);
+
player->bankAngle = player->rot.z + player->zRotBank + player->zRotBarrelRoll;
+
Matrix_RotateY(gCalcMatrix, (player->yRot_114 + player->rot.y + 180.0f) * M_DTOR, MTXF_NEW);
Matrix_RotateX(gCalcMatrix, -((player->xRot_120 + player->rot.x + player->aerobaticPitch) * M_DTOR), MTXF_APPLY);
+
sp4C.x = 0.0f;
sp4C.y = 0.0f;
+
if (player->wings.rightState <= WINGSTATE_BROKEN) {
sp4C.x -= 2.5f;
sp4C.y -= 2.5f;
@@ -3447,15 +3677,20 @@ void Player_MoveArwing360(Player* player) {
sp4C.y -= 2.5f;
}
sp4C.z = player->baseSpeed + player->boostSpeed;
+
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp4C, &sp40);
+
player->vel.x = sp40.x;
player->vel.z = sp40.z;
player->vel.y = sp40.y;
+
player->pos.x += player->vel.x;
player->pos.y += player->vel.y;
+
if ((player->pathHeight < player->pos.y) && (player->vel.y >= 0.0f)) {
Math_SmoothStepToF(&player->pos.y, player->pathHeight, 0.1f, fabsf(player->vel.y * 1.5f) + 5.0f, 0.0f);
}
+
if ((player->pos.y < player->pathFloor) && (player->vel.y <= 0.0f)) {
if (player->pathFloor >= 0.0f) {
player->pos.y = player->pathFloor;
@@ -3463,13 +3698,17 @@ void Player_MoveArwing360(Player* player) {
Math_SmoothStepToF(&player->pos.y, player->pathFloor, 0.1f, fabsf(player->vel.y * 1.5f) + 5.0f, 0.0f);
}
}
+
player->pos.z += player->vel.z;
+
if (player->pathHeight - 100.0f < player->pos.y) {
player->flags_228 = PFLAG_228_3;
}
+
if (player->pos.y < -(player->pathHeight - 100.0f)) {
player->flags_228 = PFLAG_228_2;
}
+
Player_CheckBounds360(player);
player->trueZpos = player->pos.z;
Player_WingEffects(player);
@@ -3478,36 +3717,43 @@ void Player_MoveArwing360(Player* player) {
void Player_PerformLoop(Player* player) {
f32 temp;
- f32 sp58;
+ f32 sp58 = 60.0f;
Vec3f sp4C;
Vec3f sp40;
- sp58 = 60.0f;
if (gVersusMode) {
gVsLockOnTimers[player->num][0] = gVsLockOnTimers[player->num][1] = gVsLockOnTimers[player->num][2] =
gVsLockOnTimers[player->num][3] = 0;
}
+
if (player->aerobaticPitch > 240.0f) {
sp58 = -50.0f;
}
+
Math_SmoothStepToF(&player->wings.unk_04, sp58, 0.3f, 100.0f, 0.0f);
Math_SmoothStepToF(&player->wings.unk_08, sp58, 0.3f, 100.0f, 0.0f);
Math_SmoothStepToF(&player->wings.unk_0C, sp58, 0.3f, 100.0f, 0.0f);
Math_SmoothStepToF(&player->wings.unk_10, sp58, 0.3f, 100.0f, 0.0f);
+
if (player->aerobaticPitch < 180.0f) {
player->pos.y += 2.0f;
}
+
player->boostCooldown = true;
+
if (gLevelMode == LEVELMODE_ON_RAILS) {
player->boostMeter += 2.0f;
} else {
player->boostMeter += 1.0f;
}
+
if (player->boostMeter > 90.0f) {
player->boostMeter = 90.0f;
}
+
player->unk_190 = 2;
Math_SmoothStepToF(&player->aerobaticPitch, 360.0f, 0.1f, 5.0f, 0.001f);
+
if (player->aerobaticPitch > 350.0f) {
player->somersault = false;
if (gLevelMode != LEVELMODE_ON_RAILS) {
@@ -3522,20 +3768,28 @@ void Player_PerformLoop(Player* player) {
}
Math_SmoothStepToF(&player->rot.z, 0.0f, 0.1f, 5.0f, 0.0f);
Math_SmoothStepToF(&player->rot.x, 0.0f, 0.1f, 5.0f, 0.0f);
+
temp = -gInputPress->stick_x * 0.68f;
+
Math_SmoothStepToF(&player->rot.y, temp, 0.1f, 2.0f, 0.0f);
+
player->bankAngle = player->rot.z + player->zRotBank + player->zRotBarrelRoll;
+
Matrix_RotateY(gCalcMatrix, (player->yRot_114 + player->rot.y + 180.0f) * M_DTOR, MTXF_NEW);
Matrix_RotateX(gCalcMatrix, -((player->xRot_120 + player->rot.x + player->aerobaticPitch) * M_DTOR), MTXF_APPLY);
+
sp4C.x = 0.0f;
sp4C.y = 0.0f;
sp4C.z = player->baseSpeed;
+
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp4C, &sp40);
+
player->vel.x = sp40.x;
player->vel.z = sp40.z;
player->vel.y = sp40.y;
player->pos.x += player->vel.x;
player->pos.y += player->vel.y;
+
if (player->pos.y < player->pathFloor + player->yPath) {
player->pos.y = player->pathFloor + player->yPath;
player->vel.y = 0.0f;
@@ -3764,14 +4018,17 @@ void Player_MoveTank360(Player* player) {
if (var_fv1 < player->unk_17C) {
player->unk_17C -= 3.0f;
}
+
if (player->unk_180 < 0) {
player->unk_180 += 3.0f;
}
if (player->unk_180 > 0) {
player->unk_180 -= 3.0f;
}
+
gPlayerTurnRate = 3.0f;
gPlayerTurnStickMod = 0.6666f;
+
sp5C = gInputPress->stick_x;
if (sp5C == 0) {
Math_SmoothStepToF(&player->rot.y, -sp5C * gPlayerTurnStickMod, 0.1f, gPlayerTurnRate * 0.5f, 0.1f);
@@ -3779,6 +4036,7 @@ void Player_MoveTank360(Player* player) {
Math_SmoothStepToF(&player->rot.y, -sp5C * gPlayerTurnStickMod, 0.1f, gPlayerTurnRate, 0.1f);
}
player->rot_104.y = player->rot.y;
+
var_fa0 = 0.03f;
var_fa1 = 1.5f;
if ((player->zRotBank > 10.0f) && (sp5C < 0.0f)) {
@@ -3799,29 +4057,38 @@ void Player_MoveTank360(Player* player) {
var_fa1 = 20.0f;
}
}
+
Math_SmoothStepToF(&player->yRotVel_11C, player->rot.y * var_fa0, 0.1f, var_fa1, 0.05f);
+
player->yRot_114 += player->yRotVel_11C;
player->yRot_114 = Math_ModF(player->yRot_114, 360.0f);
+
Matrix_RotateX(gCalcMatrix, player->rot_104.x * M_DTOR, MTXF_NEW);
Matrix_RotateZ(gCalcMatrix, player->rot_104.z * M_DTOR, MTXF_APPLY);
Matrix_RotateY(gCalcMatrix, (player->yRot_114 + player->rot.y + 180.0f) * M_DTOR, MTXF_APPLY);
+
sp44.x = 0.0f;
sp44.y = 0.0f;
sp44.z = player->baseSpeed;
sp44.z -= fabsf((player->unk_184 * 0.4f * player->baseSpeed) / 15.0f);
sp44.z += SIN_DEG(player->unk_000) * player->boostSpeed;
+
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp44, &sp38);
+
player->vel.x = sp38.x;
player->vel.z = sp38.z;
+
if (player->unk_16C > 0.2f) {
Math_SmoothStepToF(&player->unk_184, player->baseSpeed * 0.5f, 1.0f, 1.0f, 0);
}
+
if (player->unk_170 > 0.2f) {
Math_SmoothStepToF(&player->unk_184, -player->baseSpeed * 0.5f, 1.0f, 1.0f, 0);
}
if (!(player->unk_170 > 0.2f) && !(player->unk_16C > 0.2f) && player->grounded) {
Math_SmoothStepToF(&player->unk_184, 0.0f, 1.0f, 0.75f, 0.0f);
}
+
if (player->rollState != 0) {
if (player->rollRate < 0) {
player->unk_184 = 15.0f;
@@ -3830,21 +4097,27 @@ void Player_MoveTank360(Player* player) {
player->unk_184 = -15.0f;
}
}
+
sp44.x = -player->unk_184;
sp44.y = 0;
sp44.z = 0;
+
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp44, &sp38);
+
player->pos.x += sp38.x;
player->pos.z += sp38.z;
player->pos.x += player->vel.x;
player->vel.y -= player->gravity;
player->pos.y += player->vel.y;
+
if (player->grounded) {
Math_SmoothStepToAngle(&player->rot.x, player->rot_104.x, 0.2f, 5.0f, 0.005f);
Math_SmoothStepToAngle(&player->rot.z, player->rot_104.z, 0.2f, 5.0f, 0.005f);
Math_SmoothStepToF(&player->unk_000, 0.0f, 0.1f, 5.0f, 0.00001f);
}
+
player->grounded = false;
+
if (player->pos.y <= gGroundHeight - 5.0f) {
player->pos.y = gGroundHeight - 5.0f;
if (player->vel.y < -20.0f) {
@@ -3853,16 +4126,19 @@ void Player_MoveTank360(Player* player) {
player->vel.y = 0.0f;
player->grounded = true;
}
+
if (player->vel.y < -80.0f) {
player->vel.y = -80.0f;
}
if (player->vel.y > 20.0f) {
player->vel.y = 20.0f;
}
+
player->pos.z += player->vel.z;
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;
@@ -3901,6 +4177,7 @@ void Player_MoveOnFoot(Player* player) {
s32 pad;
player->camRoll = 0.0f;
+
var_fa0 = 0.0f;
if (player->pos.y > 10.0f) {
var_fa0 = 20.0f;
@@ -3908,6 +4185,7 @@ void Player_MoveOnFoot(Player* player) {
if (player->pos.y > 300.0f) {
var_fa0 = 40.0f;
}
+
sp74 = gInputPress->stick_y * 0.8f;
if (sp74 < -40.0f) {
sp74 = -40.0f;
@@ -3915,17 +4193,22 @@ void Player_MoveOnFoot(Player* player) {
if (var_fa0 < sp74) {
sp74 = var_fa0;
}
+
Math_SmoothStepToF(&player->unk_154, sp74, 0.1f, 3.0f, 0.00001f);
Math_SmoothStepToF(&player->unk_180, 0.0f, 0.15f, 5.0f, 0.00001f);
Math_SmoothStepToF(&player->unk_158, sp74, 0.2f, 5.0f, 0.00001f);
+
gPlayerTurnRate = 3.0f;
gPlayerTurnStickMod = 0.666f;
+
sp74 = gInputPress->stick_x;
sp70 = gInputPress->stick_y;
Math_SmoothStepToF(&player->rot.y, -sp74 * gPlayerTurnStickMod * 0.6f, 0.5f, gPlayerTurnRate, 0.001f);
Math_SmoothStepToF(&player->rot.z, -sp74 * gPlayerTurnStickMod * 0.2f * player->baseSpeed / 15.0f, 0.2f, 5.0f,
0.001f);
+
player->bankAngle = player->rot.z;
+
if ((sp74 != 0.0f) || (sp70 != 0.0f)) {
Math_SmoothStepToF(&player->unk_15C, sp74 * gPlayerTurnStickMod, 0.9f, 2.0f * gPlayerTurnRate, 0.1f);
Math_SmoothStepToF(&player->unk_164, sp74 * 0.3f, 0.1f, 10.0f, 0.00001f);
@@ -3944,7 +4227,9 @@ void Player_MoveOnFoot(Player* player) {
Math_SmoothStepToF(&player->unk_164, player->unk_174, 0.1f, 10.0f, 0.00001f);
Math_SmoothStepToF(&player->unk_168, player->unk_178, 0.1f, 10.0f, 0.00001f);
}
+
player->rot_104.y = player->rot.y;
+
if (player->baseSpeed < 1.5f) {
var_fv0 = 0.12f;
var_fa0 = 3.0f;
@@ -3952,37 +4237,50 @@ void Player_MoveOnFoot(Player* player) {
var_fv0 = 0.08f;
var_fa0 = 1.5f;
}
+
Math_SmoothStepToF(&player->yRotVel_11C, -sp74 * gPlayerTurnStickMod * var_fv0, 0.2f, var_fa0, 0.0f);
+
player->yRot_114 += player->yRotVel_11C;
player->yRot_114 = Math_ModF(player->yRot_114, 360.0f);
+
Matrix_RotateX(gCalcMatrix, player->rot_104.x * M_DTOR, MTXF_NEW);
Matrix_RotateZ(gCalcMatrix, player->rot_104.z * M_DTOR, MTXF_APPLY);
Matrix_RotateY(gCalcMatrix, (player->yRot_114 + player->rot.y + 180.0f) * M_DTOR, MTXF_APPLY);
+
sp58.x = 0.0f;
sp58.y = 0.0f;
sp58.z = player->baseSpeed;
+
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp58, &sp4C);
+
player->vel.x = sp4C.x;
player->vel.z = sp4C.z;
player->pos.x += player->vel.x;
+
if ((player->pos.y < 40.0f) || (player->pos.y > 670.0f)) {
player->rot_104.z = 0.0f;
player->rot_104.x = 0.0f;
}
+
Math_SmoothStepToAngle(&player->xRot_0FC, player->rot_104.x, 0.15f, 15.0f, 0.005f);
Math_SmoothStepToAngle(&player->zRot_0FC, player->rot_104.z, 0.15f, 15.0f, 0.005f);
+
if (player->grounded) {
if (player->baseSpeed > 1.0f) {
player->unk_00C += player->unk_008;
+
if ((s32) player->unk_00C >= Animation_GetFrameCount(&D_versus_301CFEC)) {
player->unk_00C = 0.0f;
}
+
player->yBob = 2.0f * SIN_DEG((player->unk_20C + 7) * 24.0f);
if (player->yBob < -0.5f) {
player->yBob = -0.5f;
}
+
player->yBob -= 3.0f;
player->unk_20C = player->unk_00C;
+
switch (gPlayerNum) {
case 0:
sp44 = Animation_GetFrameData(&D_versus_301CFEC, player->unk_20C, sp78);
@@ -3997,10 +4295,13 @@ void Player_MoveOnFoot(Player* player) {
sp44 = Animation_GetFrameData(&D_versus_301C3A8, player->unk_20C, sp78);
break;
}
+
Math_SmoothStepToVec3fArray(sp78, player->jointTable, 1, sp44, 1.0f, player->unk_010, 0.01f);
+
if (player->unk_010 < 50.0f) {
player->unk_010 += 2.0f;
}
+
sp64 = player->baseSpeed;
if (gGameFrameCount & 4) {
sp64 = 2.0f * player->baseSpeed;
@@ -4014,6 +4315,7 @@ void Player_MoveOnFoot(Player* player) {
player->unk_010 = 0.0f;
}
}
+
switch (gPlayerNum) {
case 0:
sp48 = SEGMENTED_TO_VIRTUAL(D_versus_302E56C);
@@ -4036,6 +4338,7 @@ void Player_MoveOnFoot(Player* player) {
player->unk_00C = 0.0f;
}
}
+
if (!player->grounded) {
switch (gPlayerNum) {
case 0:
@@ -4053,6 +4356,7 @@ void Player_MoveOnFoot(Player* player) {
}
Math_SmoothStepToVec3fArray(sp48, player->jointTable, 1, 24, 0.2f, 10.0f, 0.01f);
}
+
player->gravity = 2.0f;
if ((gInputPress->button & Z_TRIG) && player->grounded) {
player->vel.y = 12.0f;
@@ -4060,15 +4364,18 @@ void Player_MoveOnFoot(Player* player) {
if ((gInputHold->button & Z_TRIG) && (player->vel.y > 0.0f)) {
player->gravity = 1.5f;
}
+
player->grounded = false;
player->vel.y -= player->gravity;
player->pos.y += player->vel.y;
+
if (player->pos.y <= gGroundHeight) {
player->grounded = true;
player->pos.y = 0.0f;
player->vel.y = 0.0f;
player->rot.x += (player->pos.y - player->rot.x) * 0.05f;
}
+
if (player->vel.y < -50.0f) {
player->vel.y = -50.0f;
}
@@ -4098,6 +4405,7 @@ void Player_Setup(Player* playerx) {
gTiStartLandmaster = 0;
player->shields = 255;
+
if (gVersusMode) {
switch (gHandicap[gPlayerNum]) {
case 1:
@@ -4108,8 +4416,10 @@ void Player_Setup(Player* playerx) {
break;
}
}
+
player->wings.rightState = WINGSTATE_INTACT;
player->wings.leftState = WINGSTATE_INTACT;
+
if (gExpertMode) {
gLeftWingHealth[gPlayerNum] = 10;
gRightWingHealth[gPlayerNum] = 10;
@@ -4136,6 +4446,7 @@ void Player_Setup(Player* playerx) {
player->groundPos.y = -1000.0f;
player->cam.at.z = player->cam.eye.z - 1000.0f;
D_ctx_80177950 = 1.0f;
+
if ((gLevelType == LEVELTYPE_SPACE) && (gCurrentLevel != LEVEL_BOLSE)) {
player->hideShadow = true;
player->unk_0A8 = 3000.0f;
@@ -4152,8 +4463,10 @@ void Player_Setup(Player* playerx) {
player->pathFloor = gGroundHeight + 40.0f;
player->unk_0A8 = 3000.0f;
}
+
player->baseSpeed = gArwingSpeed;
player->pos.y = 350.0f;
+
switch (gCurrentLevel) {
case LEVEL_MACBETH:
case LEVEL_TITANIA:
@@ -4172,6 +4485,7 @@ void Player_Setup(Player* playerx) {
player->pos.y = 0.0f;
}
break;
+
case LEVEL_AQUAS:
player->form = FORM_BLUE_MARINE;
player->gravity = 0.0f;
@@ -4180,14 +4494,17 @@ void Player_Setup(Player* playerx) {
player->pathHeight = 720.0f;
player->pathFloor = gGroundHeight + 30.0f;
break;
+
case LEVEL_SOLAR:
case LEVEL_ZONESS:
player->pathFloor = -450.0f;
break;
}
+
if (gCurrentLevel != LEVEL_CORNERIA) {
gSavedGroundSurface = SURFACE_GRASS;
}
+
gGoldRingCount[0] = gSavedGoldRingCount[0];
do {
if (gGoldRingCount[0] > 3) {
@@ -4198,6 +4515,7 @@ void Player_Setup(Player* playerx) {
if (gGoldRingCount[0] == 3) {
gGoldRingCount[0] = 0;
}
+
gHitCount = gSavedHitCount;
if ((gCurrentLevel == LEVEL_VENOM_ANDROSS) || ((gCurrentLevel == LEVEL_VENOM_2) && (gLevelPhase == 2))) {
if (D_ctx_80177C9C != 0) {
@@ -4213,9 +4531,11 @@ void Player_Setup(Player* playerx) {
}
gHitCount = gSavedHitCount = D_ctx_80177CA4;
}
+
D_hud_80161720[0] = 0.0f;
D_hud_80161720[1] = 0.0f;
D_hud_80161720[2] = 0.0f;
+
gDisplayedHitCount = gHitCount;
D_hud_80161730 = 0;
gMissedZoSearchlight = gSavedZoSearchlightStatus;
@@ -4223,6 +4543,7 @@ void Player_Setup(Player* playerx) {
gGroundSurface = gSavedGroundSurface;
gPathProgress = player->zPath = gSavedPathProgress;
player->pos.z = player->trueZpos = -player->zPath;
+
if ((gSavedObjectLoadIndex > 0) && (gLevelMode == LEVELMODE_ON_RAILS)) {
if (gCurrentLevel == LEVEL_MACBETH) {
sp2E = gObjectLoadIndex;
@@ -4231,6 +4552,7 @@ void Player_Setup(Player* playerx) {
}
func_enmy_80062568();
}
+
if (player->form == FORM_LANDMASTER) {
player->pos.z -= 200.0f;
player->trueZpos -= 200.0f;
@@ -4247,18 +4569,22 @@ void Player_Setup(Player* playerx) {
player->pos.z = D_800D3124[gPlayerNum];
player->yRot_114 = D_800D3154[gPlayerNum];
player->form = gPlayerForms[gPlayerNum];
+
switch (player->form) {
case FORM_ARWING:
break;
+
case FORM_LANDMASTER:
player->pos.y = 0.0f;
player->baseSpeed = 15.0f;
player->gravity = 3.0f;
break;
+
case FORM_ON_FOOT:
player->pos.y = 0.0f;
player->baseSpeed = 15.0f;
player->groundPos.y = 0;
+
switch (gPlayerNum) {
case 0:
sp38 = SEGMENTED_TO_VIRTUAL(D_versus_302E56C);
@@ -4273,6 +4599,7 @@ void Player_Setup(Player* playerx) {
sp38 = SEGMENTED_TO_VIRTUAL(D_versus_302E65C);
break;
}
+
for (j = 0; j < 30; j++, sp38++) {
player->jointTable[j] = *sp38;
}
@@ -4280,8 +4607,10 @@ void Player_Setup(Player* playerx) {
}
Camera_Update360(player, true);
}
+
player->state_1C8 = PLAYERSTATE_1C8_ACTIVE;
player->wingPosition = gLevelType;
+
if ((gLevelMode == LEVELMODE_ALL_RANGE) && !gVersusMode) {
player->pos.z = 8000.0f;
player->pos.y = 670.0f;
@@ -4300,14 +4629,17 @@ void Player_Setup(Player* playerx) {
player->unk_014 = 1.0f;
player->unk_018 = 1.0f;
}
+
if (D_ctx_8017782C && (gSavedObjectLoadIndex == 0)) {
gLeveLClearStatus[gCurrentLevel] = 0;
+
for (j = 0; j < 10; j++) {
D_ctx_80177A10[j] = 0;
D_ctx_80177A48[j] = 0.0f;
}
D_ctx_8017782C = false;
gAllRangeCheckpoint = 0;
+
switch (gCurrentLevel) {
case LEVEL_CORNERIA:
player->state_1C8 = PLAYERSTATE_1C8_LEVEL_INTRO;
@@ -4359,6 +4691,7 @@ void Player_Setup(Player* playerx) {
Macbeth_801ACFBC();
}
}
+
if (player->state_1C8 == PLAYERSTATE_1C8_LEVEL_INTRO) {
player->draw = true;
switch (gCurrentLevel) {
@@ -4406,6 +4739,7 @@ void Player_Setup(Player* playerx) {
if ((gCurrentLevel == LEVEL_TRAINING)) {
gClearPlayerInfo = true;
}
+
if (gClearPlayerInfo && !gVersusMode) {
for (j = TEAM_ID_FALCO; j < TEAM_ID_MAX; j++) {
gTeamShields[j] = gSavedTeamShields[j] = gPrevPlanetTeamShields[j] = gPrevPlanetSavedTeamShields[j] = 255;
@@ -4427,16 +4761,21 @@ void Player_Setup(Player* playerx) {
gClearPlayerInfo = false;
}
}
+
if ((gCurrentLevel == LEVEL_TRAINING)) {
gClearPlayerInfo = true;
}
+
player->sfx.levelType = gLevelType;
player->sfx.form = player->form;
- func_display_80057814(player);
+
+ Display_SetupPlayerSfxPos(player);
+
if (!gVersusMode && (((gCurrentLevel != LEVEL_TITANIA) && (gCurrentLevel != LEVEL_SOLAR)) || gVersusMode ||
(player->state_1C8 != PLAYERSTATE_1C8_LEVEL_INTRO))) {
Audio_StartPlayerNoise(gPlayerNum);
}
+
if ((player->form == FORM_ARWING) && !gVersusMode) {
switch (player->wingPosition) {
case 0:
@@ -4450,6 +4789,7 @@ void Player_Setup(Player* playerx) {
break;
}
}
+
if (gLaserStrength[gPlayerNum] > LASERS_SINGLE) {
player->wings.unk_14 = -10.0f;
}
@@ -4472,12 +4812,14 @@ void Player_UpdateArwingRoll(Player* player) {
Math_SmoothStepToF(&player->unk_150, 1.0f, 0.05f, 10.0f, 0.0001f);
player->zRotBarrelRoll = Math_ModF(player->zRotBarrelRoll, 360.0f);
+
if (player->barrelRollAlpha > 0) {
player->barrelRollAlpha -= 30;
if (player->barrelRollAlpha <= 0) {
player->barrelRollAlpha = 0;
}
}
+
if (player->meteoWarpTimer == 0) {
if (player->rollState == 0) {
Math_SmoothStepToF(&player->zRotBarrelRoll, 0.0f, 0.1f, 10.0f, 0.00001f);
@@ -4497,6 +4839,7 @@ void Player_UpdateArwingRoll(Player* player) {
if (player->rollTimer != 0) {
player->rollTimer--;
}
+
if (player->rollState != 0) {
player->rollInputTimerR = 0;
player->rollInputTimerL = 0;
@@ -4523,20 +4866,9 @@ void Player_UpdateArwingRoll(Player* player) {
}
void Player_UpdateTankRoll(Player* player) {
- f32 temp_fv0;
- f32 temp_fv0_2;
- s32* temp_v1;
- s32 temp_t3;
- s32 temp_t4;
- s32 temp_v0;
- s32 temp_v0_2;
- s32 temp_v0_3;
- s32 temp_v0_4;
- s32 var_v0;
-
player->zRotBarrelRoll = Math_ModF(player->zRotBarrelRoll, 360.0f);
+
if (player->rollState == 0) {
- temp_fv0 = player->zRotBarrelRoll;
if (player->zRotBarrelRoll > 0.0f) {
player->zRotBarrelRoll -= (player->zRotBarrelRoll * 0.1f);
if (player->zRotBarrelRoll < 0.1f) {
@@ -4550,7 +4882,7 @@ void Player_UpdateTankRoll(Player* player) {
}
}
}
- temp_v0 = player->rollInputTimerL;
+
if (player->rollInputTimerL != 0) {
player->rollInputTimerL--;
}
@@ -4560,6 +4892,7 @@ void Player_UpdateTankRoll(Player* player) {
if (player->rollTimer != 0) {
player->rollTimer--;
}
+
if (player->rollState != 0) {
player->rollInputTimerR = 0;
player->rollInputTimerL = 0;
@@ -4570,12 +4903,14 @@ void Player_UpdateTankRoll(Player* player) {
player->zRotBank = 0.0f;
}
}
+
if (player->zRotBank < 0.0f) {
player->zRotBank += 8.0f;
if (player->zRotBank > 0.0f) {
player->zRotBank = 0.0f;
}
}
+
if (player->rollTimer == 0) {
if (player->rollRate > 0) {
player->rollRate -= 2;
@@ -4589,6 +4924,7 @@ void Player_UpdateTankRoll(Player* player) {
} else {
Math_SmoothStepToF(&D_ctx_801779A8[player->num], 30.0f, 1.0f, 30.0f, 0.0f);
}
+
if ((player->rollTimer >= 5) && (player->mercyTimer == 0)) {
if (player->rollRate > 0) {
player->unk_170 = 1.3f;
@@ -4597,6 +4933,7 @@ void Player_UpdateTankRoll(Player* player) {
player->unk_16C = 1.3f;
}
}
+
if (gVersusMode) {
gVsLockOnTimers[player->num][0] = gVsLockOnTimers[player->num][1] = gVsLockOnTimers[player->num][2] =
gVsLockOnTimers[player->num][3] = 0;
@@ -4613,6 +4950,7 @@ void Player_ArwingBoost(Player* player) {
(gInputHold->button & gBoostButton[player->num])) {
player->boostCooldown = true;
}
+
if (gLevelMode == LEVELMODE_ON_RAILS) {
sp28 = 3.0f;
sp2C = 0.5f;
@@ -4621,8 +4959,11 @@ void Player_ArwingBoost(Player* player) {
sp28 = 1.5f;
sp2C = 0.35f;
}
+
player->sfx.boost = 0;
+
var = gInputPress->stick_y; // fake?
+
if (gLoopDownTimers[gPlayerNum] != 0) {
gLoopDownTimers[gPlayerNum]--;
}
@@ -4739,7 +5080,7 @@ void Player_ArwingBoost2(Player* player) {
void Player_ArwingBrake(Player* player) {
f32 sp34;
f32 sp30;
- s32 var;
+ s32 stickY;
if (gLevelMode == LEVELMODE_ON_RAILS) {
sp30 = 3.0f;
@@ -4748,17 +5089,21 @@ void Player_ArwingBrake(Player* player) {
sp30 = 1.5f;
sp34 = 0.35f;
}
- player->sfx.brake = 0;
- var = gInputPress->stick_y; // fake?
+
+ player->sfx.brake = false;
+
+ stickY = gInputPress->stick_y; // fake?
+
if (gUturnDownTimers[gPlayerNum] != 0) {
gUturnDownTimers[gPlayerNum]--;
}
if (gUturnBrakeTimers[gPlayerNum] != 0) {
gUturnBrakeTimers[gPlayerNum]--;
}
- if (var >= -50) {
+ if (stickY >= -50) {
gUturnDownTimers[gPlayerNum] = 5;
}
+
if ((gUturnDownTimers[gPlayerNum] > 0) && (gUturnDownTimers[gPlayerNum] < 5) && (gDrawBackdrop < 5) &&
(gUturnBrakeTimers[gPlayerNum] != 0)) {
gUturnDownTimers[gPlayerNum] = 0;
@@ -4774,6 +5119,7 @@ void Player_ArwingBrake(Player* player) {
gCoUturnCount++;
}
}
+
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) {
@@ -4782,24 +5128,28 @@ void Player_ArwingBrake(Player* player) {
gUturnBrakeTimers[gPlayerNum] = 5;
}
}
+
if (gLevelType == LEVELTYPE_PLANET) {
Math_SmoothStepToF(&player->wings.unk_04, 90.0f, 0.2f, 100.0f, 0.0f);
Math_SmoothStepToF(&player->wings.unk_08, -90.0f, 0.2f, 100.0f, 0.0f);
Math_SmoothStepToF(&player->wings.unk_0C, 90.0f, 0.2f, 100.0f, 0.0f);
Math_SmoothStepToF(&player->wings.unk_10, -90.0f, 0.2f, 100.0f, 0.0f);
}
+
player->boostMeter += sp30;
if (player->boostMeter > 90.0f) {
player->boostCooldown = true;
player->boostMeter = 90.0f;
}
+
player->unk_190 = 0.3f;
player->boostSpeed -= 1.0f;
if (player->boostSpeed < -20.0f) {
player->boostSpeed = -20.0f;
}
+
Math_SmoothStepToF(&player->camDist, 180.0f, 0.1f, 10.0f, 0.0f);
- player->sfx.brake = 1;
+ player->sfx.brake = true;
Math_SmoothStepToF(&D_ctx_801779A8[player->num], 25.0f, 1.0f, 5.0f, 0.0f);
} else if (player->boostMeter > 0.0f) {
player->boostMeter -= sp34;
@@ -4824,12 +5174,14 @@ void Player_TankBoostBrake(Player* player) {
Math_SmoothStepToF(&player->boostMeter, 0.0f, 1.0f, 1.0f, 0.0f);
}
player->boostActive = false;
+
if (player->boostMeter == 0.0f) {
player->boostCooldown = false;
} else if (!(gInputHold->button & Z_TRIG) && !(gInputHold->button & R_TRIG) &&
!(gInputHold->button & gBoostButton[player->num]) && !(gInputHold->button & gBrakeButton[player->num])) {
player->boostCooldown = true;
}
+
sp2C = 20.0f;
if ((gInputHold->button & gBoostButton[player->num]) && !player->boostCooldown) {
if (player->boostMeter == 0.0f) {
@@ -4846,6 +5198,7 @@ void Player_TankBoostBrake(Player* player) {
player->boostCooldown = true;
}
}
+
if ((gInputHold->button & gBrakeButton[player->num]) && !player->boostCooldown) {
if (player->boostMeter == 0.0f) {
Player_PlaySfx(player->sfxSource, NA_SE_ARWING_BRAKE, player->num);
@@ -4862,22 +5215,29 @@ void Player_TankBoostBrake(Player* player) {
}
void Player_UpdateTankJets(Player* player) {
- f32 temp;
- f32 temp2;
+ f32 stickY;
+ s32 pad;
player->gravity = 3.0f;
+
if ((gInputHold->button & Z_TRIG) && !player->boostCooldown) {
if (player->boostMeter == 0.0f) {
Player_PlaySfx(player->sfxSource, NA_SE_ARWING_BOOST, player->num);
}
+
player->unk_188 = 0.0f;
+
player->zRotBank += 4.0f;
if (player->zRotBank > 50.0f) {
player->zRotBank = 50.0f;
}
+
Math_SmoothStepToF(&player->unk_170, 1.0f, 1.0f, 0.4f, 0.0f);
+
player->boostActive = true;
+
Math_SmoothStepToF(&player->boostMeter, 90.0f, 1.0f, 0.7f, 0.0f);
+
if (player->boostMeter >= 90.0f) {
player->boostCooldown = true;
}
@@ -4898,14 +5258,20 @@ void Player_UpdateTankJets(Player* player) {
if (player->boostMeter == 0.0f) {
Player_PlaySfx(player->sfxSource, NA_SE_ARWING_BOOST, player->num);
}
+
player->unk_188 = 0.0f;
+
player->zRotBank -= 4.0f;
if (player->zRotBank < -50.0f) {
player->zRotBank = -50.0f;
}
+
Math_SmoothStepToF(&player->unk_16C, 1.0f, 1.0f, 0.4f, 0.0f);
+
player->boostActive = true;
+
Math_SmoothStepToF(&player->boostMeter, 90.0f, 1.0f, 0.7f, 0.0f);
+
if (player->boostMeter >= 90.0f) {
player->boostCooldown = true;
}
@@ -4920,27 +5286,28 @@ void Player_UpdateTankJets(Player* player) {
}
}
}
+
if ((player->unk_16C > 0.2f) && (player->unk_170 > 0.2f) && (player->radioDamageTimer == 0)) {
player->zRotBank += (((__cosf(gGameFrameCount * M_DTOR * 8.0f) * 10.0f) - player->zRotBank) * 0.1f);
Math_SmoothStepToAngle(&player->rot.x, 0.0f, 0.05f, 5.0f, 0.00001f);
Math_SmoothStepToAngle(&player->rot.z, 0.0f, 0.05f, 5.0f, 0.00001f);
- temp = gInputPress->stick_y;
- Math_SmoothStepToF(&player->unk_000, temp * 0.5f, 0.05f, 5.0f, 0.00001f);
+ stickY = gInputPress->stick_y;
+ Math_SmoothStepToF(&player->unk_000, stickY * 0.5f, 0.05f, 5.0f, 0.00001f);
Math_SmoothStepToF(&player->boostSpeed, 30.0f, 0.5f, 5.0f, 0.0f);
player->gravity = -0.4f;
Math_SmoothStepToF(&D_ctx_801779A8[player->num], 30.0f, 1.0f, 10.0f, 0.0f);
if ((gCamCount == 1) && ((gGameFrameCount % 2) == 0)) {
- func_effect_8007BC7C(RAND_FLOAT_CENTERED(20.0f) + player->pos.x, player->groundPos.y + 10.0f,
- player->trueZpos - 10.0f, RAND_FLOAT(2.0f) + 4.0f);
+ Effect_Effect362_Spawn(RAND_FLOAT_CENTERED(20.0f) + player->pos.x, player->groundPos.y + 10.0f,
+ player->trueZpos - 10.0f, RAND_FLOAT(2.0f) + 4.0f);
}
} else if ((gCamCount == 1) && ((gGameFrameCount % 4) == 0) && (player->rollState == 0)) {
if ((player->unk_16C > 0.2f) && (player->radioDamageTimer == 0)) {
- func_effect_8007BC7C(RAND_FLOAT_CENTERED(10.0f) + (player->pos.x - 57.0f), player->groundPos.y + 10.0f,
- player->trueZpos - 10.0f, RAND_FLOAT(2.0f) + 3.0f);
+ Effect_Effect362_Spawn(RAND_FLOAT_CENTERED(10.0f) + (player->pos.x - 57.0f), player->groundPos.y + 10.0f,
+ player->trueZpos - 10.0f, RAND_FLOAT(2.0f) + 3.0f);
}
if ((player->unk_170 > 0.2f) && (player->radioDamageTimer == 0)) {
- func_effect_8007BC7C(RAND_FLOAT_CENTERED(10.0f) + (player->pos.x + 57.0f), player->groundPos.y + 10.0f,
- player->trueZpos - 10.0f, RAND_FLOAT(2.0f) + 3.0f);
+ Effect_Effect362_Spawn(RAND_FLOAT_CENTERED(10.0f) + (player->pos.x + 57.0f), player->groundPos.y + 10.0f,
+ player->trueZpos - 10.0f, RAND_FLOAT(2.0f) + 3.0f);
}
}
}
@@ -4953,9 +5320,11 @@ void Player_UpdateEffects(Player* player) {
s32 i;
player->xShake = 0.0f;
+
player->basePos.x = player->pos.x;
player->basePos.y = player->pos.y;
player->basePos.z = player->pos.z;
+
if (player->csTimer != 0) {
player->csTimer--;
}
@@ -4971,6 +5340,7 @@ void Player_UpdateEffects(Player* player) {
if (player->dmgEffectTimer != 0) {
player->dmgEffectTimer--;
}
+
if (gVersusMode) {
for (i = 0; i < gCamCount; i++) {
if ((gVsLockOnTimers[player->num][i] != 0) && !(gControllerHold[i].button & A_BUTTON)) {
@@ -4978,6 +5348,7 @@ void Player_UpdateEffects(Player* player) {
}
}
}
+
if (gRightWingFlashTimer[player->num] != 0) {
gRightWingFlashTimer[player->num]--;
if (gRightWingFlashTimer[player->num] == 1000) {
@@ -4996,17 +5367,22 @@ void Player_UpdateEffects(Player* player) {
if (gRightWingDebrisTimer[player->num] != 0) {
gRightWingDebrisTimer[player->num]--;
}
+
if (gShieldTimer[player->num] != 0) {
gShieldTimer[player->num]--;
Math_SmoothStepToF(&gShieldAlpha[player->num], 128.0f, 1.0f, 40.0f, 0.01f);
} else {
Math_SmoothStepToF(&gShieldAlpha[player->num], 0.0f, 1.0f, 10.0f, 0.01f);
}
+
Math_SmoothStepToF(&gMuzzleFlashScale[player->num], 0.0f, 1.0f, 0.4f, 0.01f);
+
if ((player->form == FORM_LANDMASTER) && (player->unk_1A0 != 0)) {
player->unk_1A0--;
}
+
player->dmgEffect = player->dmgEffectTimer & 1;
+
if (player->dmgEffectTimer != 0) {
gFillScreenAlphaStep = 8;
}
@@ -5015,6 +5391,7 @@ void Player_UpdateEffects(Player* player) {
gFillScreenRed = 255;
gFillScreenGreen = gFillScreenBlue = 0;
}
+
if (player->timer_278 != 0) {
if ((player->timer_278 % 8) == 0) {
if (player->timer_278 & 8) {
@@ -5025,11 +5402,13 @@ void Player_UpdateEffects(Player* player) {
}
player->timer_278--;
}
+
if (player->hitTimer > 0) {
if (player->hitTimer > 3) {
*gControllerRumble = 1;
}
player->hitTimer--;
+
if (player->form == FORM_ARWING) {
player->damageShake =
SIN_DEG(player->hitTimer * 400.0f) * player->hitTimer * D_800D3164[player->hitDirection];
@@ -5042,6 +5421,7 @@ void Player_UpdateEffects(Player* player) {
SIN_DEG(player->hitTimer * 400.0f) * player->hitTimer * D_800D3164[player->hitDirection] * 1.5f;
player->xShake = 0.0f;
}
+
if ((gLevelMode != LEVELMODE_UNK_2) &&
((player->knockback.x != 0.f) || (player->knockback.y != 0.f) || (player->knockback.z != 0.f)) &&
((player->dmgType >= 40) || (player->dmgType == 21))) {
@@ -5050,18 +5430,23 @@ void Player_UpdateEffects(Player* player) {
player->rot.y = 0;
Math_SmoothStepToF(&player->boostSpeed, 0, 1.0f, 5.0f, 0);
}
+
if (player->hitTimer == 0) {
player->damageShake = 0;
}
}
+
player->pos.x += player->knockback.x;
player->pos.y += player->knockback.y;
+
if (gLevelMode == LEVELMODE_ALL_RANGE) {
player->pos.z += player->knockback.z;
Math_SmoothStepToF(&player->knockback.z, 0, 0.1f, 1.0f, 0.5f);
}
+
Math_SmoothStepToF(&player->knockback.x, 0, 0.1f, 1.0f, 0.5f);
Math_SmoothStepToF(&player->knockback.y, 0, 0.1f, 1.0f, 0.5f);
+
player->contrailScale -= 0.02f;
if (player->contrailScale < 0.0f) {
player->contrailScale = 0.0f;
@@ -5080,6 +5465,7 @@ void Player_UpdateShields(Player* player) {
player->damage = 0;
}
}
+
if (player->heal > 0) {
player->damage = 0;
player->heal -= 2;
@@ -5096,19 +5482,19 @@ void Player_UpdateShields(Player* player) {
}
void Player_LowHealthAlarm(Player* player) {
- s32 var_v0;
+ s32 mask;
Player_UpdateShields(player);
if (player->shields < 128) {
if (player->shields > 80) {
- var_v0 = 64 - 1;
+ mask = 64 - 1;
} else if (player->shields > 40) {
- var_v0 = 32 - 1;
+ mask = 32 - 1;
} else {
- var_v0 = 16 - 1;
+ mask = 16 - 1;
}
- if ((gGameFrameCount & var_v0) == 0) {
+ if ((gGameFrameCount & mask) == 0) {
Object_PlayerSfx(player->sfxSource, NA_SE_SHIELD_BUZZER, player->num);
}
}
@@ -5119,6 +5505,7 @@ void Play_dummy_800B41E0(Player* player) {
void Player_Down(Player* player) {
player->state_1C8 = PLAYERSTATE_1C8_DOWN;
+
if (!gVersusMode) {
SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_BGM, 1);
SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_FANFARE, 1);
@@ -5147,16 +5534,19 @@ void Player_UpdateOnRails(Player* player) {
gInputHold->button = gBoostButton[player->num];
player->boostMeter = 1.0f;
}
+
Player_ArwingBank(player);
Player_ArwingBoost(player);
Player_ArwingBrake(player);
Play_dummy_800B41E0(player);
Player_UpdateArwingRoll(player);
+
if (player->somersault) {
Player_PerformLoop(player);
} else {
Player_MoveArwingOnRails(player);
}
+
Player_UpdatePath(player);
Player_Shoot(player);
Player_CollisionCheck(player);
@@ -5164,6 +5554,7 @@ void Player_UpdateOnRails(Player* 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;
@@ -5177,9 +5568,11 @@ void Player_UpdateOnRails(Player* player) {
player->csEventTimer = 120;
}
break;
+
case FORM_LANDMASTER:
Tank_UpdateOnRails(player);
break;
+
case FORM_BLUE_MARINE:
Aquas_BlueMarineBoost(player);
Aquas_BlueMarineBrake(player);
@@ -5190,6 +5583,7 @@ void Player_UpdateOnRails(Player* player) {
Player_CollisionCheck(player);
Player_FloorCheck(player);
Player_LowHealthAlarm(player);
+
if ((player->shields <= 0) && (player->radioDamageTimer != 0)) {
Player_Down(player);
}
@@ -5205,16 +5599,19 @@ void Player_Update360(Player* player) {
Player_ArwingBrake(player);
Play_dummy_800B41E0(player);
Player_UpdateArwingRoll(player);
+
if (player->somersault) {
Player_PerformLoop(player);
} else {
Player_MoveArwing360(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;
@@ -5232,6 +5629,7 @@ void Player_Update360(Player* player) {
player->aerobaticPitch = 0.0f;
}
break;
+
case FORM_LANDMASTER:
Player_UseTankJets(player);
Player_UpdateTankJets(player);
@@ -5247,9 +5645,11 @@ void Player_Update360(Player* player) {
Player_Down(player);
}
break;
+
case FORM_BLUE_MARINE:
Aquas_Update360(player);
break;
+
case FORM_ON_FOOT:
Player_OnFootUpdateSpeed(player);
Player_MoveOnFoot(player);
@@ -5257,6 +5657,7 @@ void Player_Update360(Player* player) {
Player_CollisionCheck(player);
Player_FloorCheck(player);
Player_LowHealthAlarm(player);
+
if ((player->shields <= 0) && (player->radioDamageTimer != 0)) {
Player_Down(player);
}
@@ -5279,6 +5680,7 @@ void Player_LowHealthMsg(Player* player) {
teamId = RAND_INT(2.9f) + 1;
} while (gTeamShields[teamId] <= 0);
} while (0); // macro?
+
switch (teamId) {
case 1:
if (Rand_ZeroOne() < 0.5f) {
@@ -5341,7 +5743,9 @@ void Player_Update(Player* player) {
if (player->state_1C8 > PLAYERSTATE_1C8_INIT) {
Player_UpdateEffects(player);
}
+
player->flags_228 = 0;
+
if ((player->state_1C8 > PLAYERSTATE_1C8_INIT) && (player->form == FORM_ARWING) && !gVersusMode) {
switch (player->wingPosition) {
case 0:
@@ -5361,28 +5765,33 @@ void Player_Update(Player* player) {
if (sp1C4 != 0) {
player->whooshTimer--;
}
+
switch (player->state_1C8) {
case PLAYERSTATE_1C8_STANDBY:
player->draw = false;
gShowHud = 0;
gPauseEnabled = false;
break;
+
case PLAYERSTATE_1C8_INIT:
Player_Setup(player);
gFillScreenAlphaTarget = 0;
gPauseEnabled = false;
break;
+
case PLAYERSTATE_1C8_LEVEL_INTRO:
gShowHud = 0;
gPauseEnabled = false;
player->wings.modelId = 1;
Cutscene_LevelStart(player);
break;
+
case PLAYERSTATE_1C8_ACTIVE:
gShowHud = 1;
Player_LowHealthMsg(player);
player->wings.modelId = 0;
D_hud_80161704 = 255;
+
if ((!gVersusMode || gVsMatchStart) && !player->somersault && (gInputPress->button & U_CBUTTONS) &&
((player->form == FORM_ARWING) || (gVersusMode && (player->form == FORM_LANDMASTER)))) {
if (player->alternateView = 1 - player->alternateView) {
@@ -5395,12 +5804,14 @@ void Player_Update(Player* player) {
}
player->unk_014 = 0.1f;
}
+
switch (gLevelMode) {
case LEVELMODE_ON_RAILS:
gLoadLevelObjects = true;
Player_UpdateOnRails(player);
player->draw = true;
break;
+
case LEVELMODE_ALL_RANGE:
if (!gVersusMode) {
Player_Update360(player);
@@ -5431,6 +5842,7 @@ void Player_Update(Player* player) {
gPauseEnabled = false;
}
break;
+
case LEVELMODE_UNK_2:
gLoadLevelObjects = true;
Turret_Update(player);
@@ -5438,21 +5850,26 @@ void Player_Update(Player* player) {
break;
}
break;
+
case PLAYERSTATE_1C8_DOWN:
Cutscene_PlayerDown(player);
break;
+
case PLAYERSTATE_1C8_U_TURN:
if (gVersusMode) {
gVsLockOnTimers[player->num][0] = gVsLockOnTimers[player->num][1] = gVsLockOnTimers[player->num][2] =
gVsLockOnTimers[player->num][3] = 0;
}
player->wings.modelId = 1;
+
Math_SmoothStepToF(&player->wings.unk_04, 0.0f, 0.1f, 5.0f, 0);
Math_SmoothStepToF(&player->wings.unk_08, 0.0f, 0.1f, 5.0f, 0);
Math_SmoothStepToF(&player->wings.unk_0C, 0.0f, 0.1f, 5.0f, 0);
Math_SmoothStepToF(&player->wings.unk_10, 0.0f, 0.1f, 5.0f, 0);
+
Player_UpdateShields(player);
Cutscene_UTurn(player);
+
if (gCurrentLevel == LEVEL_KATINA) {
Player_CollisionCheck(player);
} else {
@@ -5460,6 +5877,7 @@ void Player_Update(Player* player) {
Player_CheckItemCollect(player);
}
break;
+
case PLAYERSTATE_1C8_LEVEL_COMPLETE:
player->alternateView = false;
gPauseEnabled = false;
@@ -5468,12 +5886,14 @@ void Player_Update(Player* player) {
Player_WaterEffects(player);
gShowHud = gChargeTimers[player->num] = 0;
break;
+
case PLAYERSTATE_1C8_ENTER_WARP_ZONE:
gPauseEnabled = false;
Player_UpdateShields(player);
Cutscene_EnterWarpZone(player);
gShowHud = 0;
break;
+
case PLAYERSTATE_1C8_START_360:
gPauseEnabled = false;
Player_UpdateShields(player);
@@ -5481,17 +5901,21 @@ void Player_Update(Player* player) {
Player_UpdateArwingRoll(player);
gChargeTimers[player->num] = player->alternateView = gShowHud = 0;
break;
+
case PLAYERSTATE_1C8_GFOX_REPAIR:
gPauseEnabled = false;
AllRange_GreatFoxRepair(player);
gShowHud = 0;
break;
+
case PLAYERSTATE_1C8_ANDROSS_MOUTH:
Andross_8018C390(player);
Player_UpdateShields(player);
break;
+
case PLAYERSTATE_1C8_12:
break;
+
case PLAYERSTATE_1C8_VS_STANDBY:
player->draw = false;
if (gPlayerInactive[player->num] == true) {
@@ -5511,11 +5935,14 @@ void Player_Update(Player* player) {
Camera_FollowPlayer(player, player->attacker - 1, 0);
}
break;
+
case PLAYERSTATE_1C8_NEXT:
gShowHud = 0;
+
if (!gVersusMode) {
gPauseEnabled = false;
}
+
player->draw = false;
player->vel.z = player->vel.x = player->vel.y = player->knockback.x = player->knockback.y = 0.0f;
@@ -5523,10 +5950,12 @@ void Player_Update(Player* player) {
player->cam.eye.x += 1.0f;
player->cam.eye.z += 1.5f;
}
+
if ((gCurrentLevel == LEVEL_ZONESS) || (gCurrentLevel == LEVEL_SOLAR)) {
Math_SmoothStepToF(&player->cam.eye.y, 500.0f, 0.05f, 10.0f, 0.0f);
Math_SmoothStepToF(&player->cam.eye.z, player->trueZpos + gPathProgress + 500.0f, 0.05f, 20.0f, 0.0f);
}
+
if (player->csTimer == 0) {
if (gCamCount == 4) {
player->state_1C8 = PLAYERSTATE_1C8_VS_STANDBY;
@@ -5535,6 +5964,7 @@ void Player_Update(Player* player) {
gFillScreenRed = gFillScreenGreen = gFillScreenBlue = 0;
gFillScreenAlphaTarget = 255;
}
+
if (gFillScreenAlpha == 255) {
Play_ClearObjectData();
gPathProgress = gPlayer[0].zPath = 0.0f;
@@ -5543,9 +5973,11 @@ void Player_Update(Player* player) {
Audio_ClearVoice();
Audio_SetEnvSfxReverb(0);
gSavedGoldRingCount[0] = gGoldRingCount[0];
+
if (gCurrentLevel == LEVEL_VENOM_ANDROSS) {
D_ctx_80177C94 = gGoldRingCount[0];
}
+
switch (gFadeoutType) {
case 7:
if (gCurrentLevel == LEVEL_TRAINING) {
@@ -5571,11 +6003,13 @@ void Player_Update(Player* player) {
gDrawMode = DRAW_NONE;
}
break;
+
case 4:
gNextGameState = GSTATE_MAP;
gLastGameState = GSTATE_PLAY;
gDrawMode = DRAW_NONE;
break;
+
default:
gDrawMode = DRAW_NONE;
break;
@@ -5584,22 +6018,25 @@ void Player_Update(Player* player) {
}
}
break;
+
default:
break;
}
- if ((D_ctx_80177C70 == 0) && (player->form == FORM_ARWING)) {
+ if ((gFovYMode == 0) && (player->form == FORM_ARWING)) {
sp1CC = 0.77699995f;
sp1C8 = 1100.0f;
- } else if (D_ctx_80177C70 == 2) {
+ } else if (gFovYMode == 2) {
sp1CC = 0.77699995f;
sp1C8 = 1100.0f;
} else {
sp1CC = 0.74f;
sp1C8 = 700.0f;
}
+
Math_SmoothStepToF(&player->unk_148, sp1CC, 1.0f, 0.05f, 0.0f);
Math_SmoothStepToF(&player->unk_14C, sp1CC, 1.0f, 0.05f, 0.0f);
Math_SmoothStepToF(&player->pathWidth, sp1C8, 1.0f, 10.0f, 0.0f);
+
if (player->form == FORM_ARWING) {
Math_SmoothStepToF(&player->unk_194, player->unk_190, 0.5f, 5.0f, 0.0f);
if (player->boostCooldown && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_ACTIVE)) {
@@ -5620,6 +6057,7 @@ void Camera_UpdateArwingOnRails(Player* player) {
f32 temp;
gCsCamEyeX = (player->pos.x - player->xPath) * player->unk_148;
+
if (((player->form == FORM_ARWING) && (player->state_1C8 == PLAYERSTATE_1C8_ACTIVE)) ||
(player->state_1C8 == PLAYERSTATE_1C8_U_TURN)) {
gCsCamEyeY = (player->pos.y - player->yPath) * player->unk_148;
@@ -5631,6 +6069,7 @@ void Camera_UpdateArwingOnRails(Player* player) {
var_fv0 = 0.0f;
var_fv1 = 0;
}
+
Math_SmoothStepToF(&player->unk_030, var_fv1 * 1.6f, 0.1f, 3.0f, 0.05f);
if (gLevelType == LEVELTYPE_SPACE) {
Math_SmoothStepToF(&player->unk_02C, var_fv0 * 0.8f, 0.1f, 3.0f, 0.05f);
@@ -5647,6 +6086,7 @@ void Camera_UpdateArwingOnRails(Player* player) {
gCsCamAtY = ((player->pos.y - player->yPath) * player->unk_14C) + 20.0f;
gCsCamAtY += player->xRock * 5.0f;
gCsCamAtY -= player->unk_02C * 0.25f;
+
switch (sOverheadCam) {
case 0:
Math_SmoothStepToF(&sOverheadCamDist, 0.0f, 0.4f, 10.0f, 0);
@@ -5655,14 +6095,16 @@ void Camera_UpdateArwingOnRails(Player* player) {
Math_SmoothStepToF(&sOverheadCamDist, 200.0f, 0.4f, 10.0f, 0);
break;
}
+
gCsCamEyeX += player->xPath;
gCsCamAtX += player->xPath;
gCsCamEyeY += player->yPath + sOverheadCamDist;
gCsCamAtZ = player->trueZpos + gPathProgress - 1.0f;
gCsCamEyeZ = 400.0f + sOverheadCamDist;
- if (D_ctx_80177C70 == 2) {
+ if (gFovYMode == 2) {
gCsCamEyeZ -= 50.0f;
}
+
if (player->somersault) {
gCsCamEyeZ += 200.0f;
gCsCamAtY = (player->pos.y - player->yPath) * 0.9f;
@@ -5673,12 +6115,14 @@ void Camera_UpdateArwingOnRails(Player* player) {
Math_SmoothStepToF(&player->unk_018, 1.0f, 1.0f, 0.05f, 0.0f);
}
gCsCamAtY += player->yPath + (sOverheadCamDist * 0.5f);
+
Math_SmoothStepToF(&player->cam.eye.x, gCsCamEyeX, player->unk_014, 1000.0f, 0.0f);
Math_SmoothStepToF(&player->cam.eye.y, gCsCamEyeY, player->unk_018, 1000.0f, 0.0f);
Math_SmoothStepToF(&player->cam.at.x, gCsCamAtX, player->unk_014, 1000.0f, 0.0f);
Math_SmoothStepToF(&player->cam.at.y, gCsCamAtY, player->unk_018, 1000.0f, 0.0f);
Math_SmoothStepToF(&player->cam.at.z, gCsCamAtZ, player->unk_014, 1000.0f, 0.0f);
Math_SmoothStepToF(&player->unk_014, 1.0f, 1.0f, 0.05f, 0.0f);
+
temp = -player->rot.z;
if (gLevelType == LEVELTYPE_PLANET) {
Math_SmoothStepToF(&player->camRoll, temp * 0.3f, 0.1f, 1.5f, 0.0f);
@@ -5696,16 +6140,20 @@ void Camera_UpdateCockpitOnRails(Player* player, s32 arg1) {
Matrix_RotateY(gCalcMatrix, (player->rot.y + player->damageShake) * M_DTOR * 0.75f, MTXF_NEW);
Matrix_RotateX(gCalcMatrix, (player->rot.x + player->damageShake) * M_DTOR * 0.75f, MTXF_APPLY);
+
sp4C.x = 0;
sp4C.y = 0;
sp4C.z = -1000.0f;
+
Matrix_MultVec3f(gCalcMatrix, &sp4C, &sp40);
+
gCsCamEyeX = player->pos.x;
gCsCamEyeY = player->pos.y + player->yBob;
gCsCamEyeZ = player->trueZpos + gPathProgress;
gCsCamAtX = player->pos.x + sp40.x;
gCsCamAtY = player->pos.y + player->yBob + sp40.y;
gCsCamAtZ = player->trueZpos + gPathProgress + sp40.z;
+
Math_SmoothStepToF(&player->cam.eye.x, gCsCamEyeX, player->unk_014, 100.0f, 0.0f);
Math_SmoothStepToF(&player->cam.eye.y, gCsCamEyeY, player->unk_014, 100.0f, 0.0f);
Math_SmoothStepToF(&player->cam.eye.z, gCsCamEyeZ, player->unk_014, 50.0f, 0.0f);
@@ -5713,6 +6161,7 @@ void Camera_UpdateCockpitOnRails(Player* player, s32 arg1) {
Math_SmoothStepToF(&player->cam.at.y, gCsCamAtY, player->unk_014, 100.0f, 0.0f);
Math_SmoothStepToF(&player->cam.at.z, gCsCamAtZ, player->unk_014, 100.0f, 0.0f);
Math_SmoothStepToF(&player->unk_014, 1.0f, 1.0f, 0.05f, 0);
+
player->camRoll = -(player->bankAngle + player->rockAngle);
if (arg1 != 0) {
player->cam.eye.x = gCsCamEyeX;
@@ -5726,26 +6175,30 @@ void Camera_UpdateCockpitOnRails(Player* player, s32 arg1) {
void Camera_FollowPlayer(Player* player, s32 playerNum, bool arg2) {
u8 i;
- u8 var_v0;
+ u8 mask;
Vec3f sp58;
Vec3f sp4C;
- var_v0 = 0x7F;
+ mask = 0x7F;
if (gPlayer[playerNum].form == FORM_LANDMASTER) {
- var_v0 = 0xFF;
+ mask = 0xFF;
}
- if (((var_v0 & gGameFrameCount) == (gPlayerNum * 32)) || arg2) {
+
+ if (((gGameFrameCount & mask) == (gPlayerNum * 32)) || arg2) {
for (i = 0; i < 100; i++) {
playerNum = RAND_INT(3.9f);
if ((gPlayer[playerNum].state_1C8 != PLAYERSTATE_1C8_VS_STANDBY) && !gPlayerInactive[playerNum]) {
break;
}
}
+
if (i > 90) {
playerNum = 0;
}
player->attacker = playerNum + 1;
+
Matrix_RotateY(gCalcMatrix, gPlayer[playerNum].yRot_114 * M_DTOR, MTXF_NEW);
+
switch (gPlayer[playerNum].form) {
case FORM_ARWING:
sp58.x = 300.0f;
@@ -5760,6 +6213,7 @@ void Camera_FollowPlayer(Player* player, s32 playerNum, bool arg2) {
sp58.z = -300.0f;
break;
}
+
if (Rand_ZeroOne() < 0.5f) {
sp58.x *= -1.0f;
}
@@ -5769,9 +6223,11 @@ void Camera_FollowPlayer(Player* player, s32 playerNum, bool arg2) {
player->cam.eye.y = gPlayer[playerNum].pos.y + 50.0f;
player->cam.eye.z = gPlayer[playerNum].trueZpos + sp4C.z;
}
+
player->cam.at.x = gPlayer[playerNum].pos.x;
player->cam.at.y = gPlayer[playerNum].pos.y;
player->cam.at.z = gPlayer[playerNum].trueZpos;
+
switch (gPlayer[playerNum].form) {
case FORM_ARWING:
player->cam.eye.x += gPlayer[playerNum].vel.x * 0.5f;
@@ -5807,6 +6263,7 @@ void Camera_UpdateArwing360(Player* player, bool arg1) {
Matrix_RotateY(gCalcMatrix, (player->yRot_114 + (player->damageShake * 0.2f)) * M_DTOR, MTXF_NEW);
Matrix_RotateX(gCalcMatrix, player->damageShake * 0.2f * M_DTOR, MTXF_APPLY);
+
sp74.x = 0.0f;
sp74.y = 0.0f;
if (player->alternateView) {
@@ -5814,16 +6271,21 @@ void Camera_UpdateArwing360(Player* player, bool arg1) {
} else {
sp74.z = 300.0f - player->camDist;
}
+
if (player->somersault) {
sp74.z += 500.0f;
}
+
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp74, &sp68);
+
if (!gVersusMode) {
var_fv0 = -gInputPress->stick_y;
} else {
var_fv0 = -gControllerPress[player->num].stick_y;
}
+
Math_SmoothStepToF(&player->unk_02C, var_fv0, 0.05f, 5.0f, 0.0f);
+
eyeX = player->pos.x + sp68.x;
eyeY = (player->pos.y * player->unk_148) + 50.0f;
eyeY -= (player->unk_02C * 1.5f);
@@ -5832,21 +6294,27 @@ void Camera_UpdateArwing360(Player* player, bool arg1) {
atX = player->pos.x + player->damageShake;
var_fv0 = (player->somersault) ? 1.0f : 0.79f;
+
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;
}
atZ = player->pos.z;
+
Math_SmoothStepToF(&player->unk_028, 2.0f * player->rot.y, 0.05f, 2.0f, 0.02f);
+
sp74.x = -player->unk_028;
sp74.y = 0.0f;
sp74.z = 0.f;
+
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp74, &sp68);
+
eyeX += sp68.x;
eyeZ += sp68.z;
atX += sp68.x;
atZ += sp68.z;
+
if (player->state_1C8 == PLAYERSTATE_1C8_ACTIVE) {
Math_SmoothStepToF(&player->cam.eye.x, eyeX, player->unk_014, 30000.0f, 0);
Math_SmoothStepToF(&player->cam.eye.y, eyeY, player->unk_014, 30000.0f, 0);
@@ -5854,11 +6322,13 @@ void Camera_UpdateArwing360(Player* player, bool arg1) {
Math_SmoothStepToF(&player->camRoll, player->rot.y * -0.3f, 0.1f, 1.0f, 0);
Math_SmoothStepToF(&player->unk_014, 0.2f, 0.1f, 0.005f, 0.0f);
}
+
Math_SmoothStepToF(&player->cam.at.x, atX, player->unk_01C, 30000.0f, 0);
Math_SmoothStepToF(&player->cam.at.y, atY, player->unk_018, 30000.0f, 0);
Math_SmoothStepToF(&player->cam.at.z, atZ, player->unk_01C, 30000.0f, 0);
Math_SmoothStepToF(&player->unk_018, 0.2f, 0.1f, 0.005f, 0);
Math_SmoothStepToF(&player->unk_01C, 1.0f, 0.1f, 0.005f, 0);
+
if (arg1) {
player->cam.eye.x = eyeX;
player->cam.eye.y = eyeY;
@@ -5880,6 +6350,7 @@ void Camera_UpdateTank360(Player* player, s32 arg1) {
Matrix_RotateZ(gCalcMatrix, player->rot.z * M_DTOR, MTXF_APPLY);
Matrix_RotateY(gCalcMatrix, (player->yRot_114 + (player->damageShake * 0.2f)) * M_DTOR, MTXF_APPLY);
Matrix_RotateX(gCalcMatrix, player->damageShake * 0.2f * M_DTOR, MTXF_APPLY);
+
sp54.x = 0.0f;
if (player->alternateView) {
sp54.y = 150.0f;
@@ -5888,12 +6359,15 @@ void Camera_UpdateTank360(Player* player, s32 arg1) {
sp54.y = 100.0f;
sp54.z = 250.0f - player->camDist;
}
+
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp54, &sp48);
+
if (player->alternateView) {
Math_SmoothStepToF(&player->unk_02C, -player->unk_17C * 3.0f + 30.0f, 0.2f, 8.0f, 0.001f);
} else {
Math_SmoothStepToF(&player->unk_02C, -player->unk_17C * 3.0f, 0.2f, 8.0f, 0.001f);
}
+
sp44 = player->pos.x + sp48.x;
sp40 = player->pos.y + sp48.y - (player->unk_02C * 0.6f);
sp3C = player->pos.z + sp48.z;
@@ -5901,19 +6375,26 @@ void Camera_UpdateTank360(Player* player, s32 arg1) {
player->cam.at.x = player->pos.x + player->damageShake;
player->cam.at.y = player->pos.y + 60.0f + player->unk_02C + player->damageShake;
player->cam.at.z = player->pos.z;
+
Math_SmoothStepToF(&player->unk_028, 2.0f * player->rot.y, 0.05f, 2.0f, 0.02f);
+
sp54.x = -player->unk_028;
sp54.y = 0.0f;
sp54.z = 0.0f;
+
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp54, &sp48);
+
sp44 += sp48.x;
sp3C += sp48.z;
+
player->cam.at.x += sp48.x;
player->cam.at.z += sp48.z;
+
Math_SmoothStepToF(&player->cam.eye.x, sp44, 0.1f, 200.0f, 0.001f);
Math_SmoothStepToF(&player->cam.eye.y, sp40, 0.1f, 200.0f, 0.001f);
Math_SmoothStepToF(&player->cam.eye.z, sp3C, 0.1f, 200.0f, 0.001f);
Math_SmoothStepToF(&player->camRoll, player->zRotBank * -0.1f, 0.1f, 1.0f, 0.01f);
+
if (arg1 != 0) {
player->cam.eye.x = sp44;
player->cam.eye.y = sp40;
@@ -5930,9 +6411,11 @@ void Camera_UpdateOnFoot360(Player* player, s32 arg1) {
Matrix_RotateZ(gCalcMatrix, player->zRot_0FC * M_DTOR, MTXF_APPLY);
Matrix_RotateY(gCalcMatrix, (player->yRot_114 + (player->damageShake * 0.02f)) * M_DTOR, MTXF_APPLY);
Matrix_RotateX(gCalcMatrix, player->damageShake * 0.02f * M_DTOR, MTXF_APPLY);
+
sp64.x = 0.0f;
sp64.y = 20.0f;
sp64.z = 60.0f - player->camDist;
+
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp64, &sp58);
Math_SmoothStepToF(&player->unk_02C, -player->unk_158 * 0.5f, 0.07f, 3.0f, 0.001f);
@@ -5946,12 +6429,16 @@ void Camera_UpdateOnFoot360(Player* player, s32 arg1) {
player->cam.at.z = player->pos.z;
Math_SmoothStepToF(&player->unk_028, player->rot.y * (player->baseSpeed + 5.0f) * 0.04f, 0.05f, 2.0f, 0.02f);
+
sp64.x = -player->unk_028;
sp64.y = 0.0f;
sp64.z = 0.0f;
+
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp64, &sp58);
+
sp4C.x += sp58.x;
sp4C.z += sp58.z;
+
player->cam.at.x += sp58.x;
player->cam.at.z += sp58.z;
@@ -5959,6 +6446,7 @@ void Camera_UpdateOnFoot360(Player* player, s32 arg1) {
Math_SmoothStepToF(&player->cam.eye.y, sp4C.y, 0.3f, 65.0f, 0.001f);
Math_SmoothStepToF(&player->cam.eye.z, sp4C.z, 0.3f, 65.0f, 0.001f);
Math_SmoothStepToF(&player->camRoll, player->zRotBank * -0.1f, 0.1f, 1.0f, 0.01f);
+
if (arg1 != 0) {
player->cam.eye.x = sp4C.x;
player->cam.eye.y = sp4C.y;
@@ -5983,15 +6471,19 @@ void Camera_SetStarfieldPos(f32 xEye, f32 yEye, f32 zEye, f32 xAt, f32 yAt, f32
if (yaw <= -M_PI / 2) {
yaw += M_PI;
}
+
tempf = 0.0f;
if (gCurrentLevel == LEVEL_UNK_15) {
tempf = gPlayer[0].cam.eye.y * 0.03f;
}
+
sp30 = (-pitch * (-8.0f / 3.0f * M_RTOD) * 2.0f) + 3000.0f + gStarfieldScrollY + tempf;
sp34 = (yaw * (-8.0f / 3.0f * M_RTOD) * 2.0f) + 3000.0f + gStarfieldScrollX;
sp20 = gStarfieldX;
+
gStarfieldX = Math_ModF(sp34, SCREEN_WIDTH * 1.5f);
gStarfieldY = Math_ModF(sp30, SCREEN_HEIGHT * 1.5f);
+
if ((gGameState == GSTATE_PLAY) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_LEVEL_INTRO) &&
(gCurrentLevel == LEVEL_METEO)) {
if (fabsf(gStarfieldX - sp20) < 50.0f) {
@@ -6034,18 +6526,22 @@ void Camera_Update(Player* player) {
Aquas_UpdateCamera(player);
}
break;
+
case LEVELMODE_ALL_RANGE:
Camera_Update360(player, false);
break;
+
case LEVELMODE_UNK_2:
Turret_UpdateCamera(player);
break;
}
break;
+
case PLAYERSTATE_1C8_U_TURN:
player->camRoll -= player->camRoll * 0.1f;
Camera_Update360(player, false);
break;
+
case PLAYERSTATE_1C8_DOWN:
if ((gLevelMode == LEVELMODE_ON_RAILS) && (player->form == FORM_ARWING)) {
player->cam.eye.x += (player->pos.x - player->cam.eye.x) * 0.1f;
@@ -6059,6 +6555,7 @@ void Camera_Update(Player* player) {
player->cam.at.z = player->trueZpos + gPathProgress - 1.0f;
}
break;
+
case PLAYERSTATE_1C8_NEXT:
case PLAYERSTATE_1C8_LEVEL_COMPLETE:
break;
@@ -6066,8 +6563,8 @@ void Camera_Update(Player* player) {
}
void Camera_SetupLights(Player* player) {
- Vec3f sp44;
- Vec3f sp38;
+ Vec3f src;
+ Vec3f dest;
f32 pad;
if ((gCurrentLevel == LEVEL_AQUAS) && (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_LEVEL_INTRO)) {
@@ -6077,6 +6574,7 @@ void Camera_SetupLights(Player* player) {
}
gLight1rotStep = gLight2rotStep = D_ctx_80178538 = 1.0f;
}
+
Math_SmoothStepToAngle(&gLight1xRot, gLight1xRotTarget, 1.0f, gLight1rotStep, 0.0f);
Math_SmoothStepToAngle(&gLight1yRot, gLight1yRotTarget, 1.0f, gLight1rotStep, 0.0f);
Math_SmoothStepToAngle(&gLight1zRot, gLight1zRotTarget, 1.0f, gLight1rotStep, 0.0f);
@@ -6117,39 +6615,54 @@ void Camera_SetupLights(Player* player) {
gLight2B = gLight2BTarget;
}
}
+
Math_SmoothStepToAngle(&gLight2xRot, gLight2xRotTarget, 1.0f, gLight2rotStep, 0.0f);
Math_SmoothStepToAngle(&gLight2yRot, gLight2yRotTarget, 1.0f, gLight2rotStep, 0.0f);
Math_SmoothStepToAngle(&gLight2zRot, gLight2zRotTarget, 1.0f, gLight2rotStep, 0.0f);
+
gLight2xRotTarget = gLight1xRotTarget = gEnvLightxRot;
gLight2yRotTarget = gLight1yRotTarget = gEnvLightyRot;
gLight2zRotTarget = gLight1zRotTarget = gEnvLightzRot;
+
gLight1rotStep = 5.0f;
+
gLight2RTarget = gLight1R;
gLight2GTarget = gLight1G;
gLight2BTarget = gLight1B;
+
pad = player->camRoll;
+
Matrix_RotateZ(gCalcMatrix, M_DTOR * pad, MTXF_NEW);
Matrix_RotateX(gCalcMatrix, -player->camPitch, MTXF_APPLY);
Matrix_RotateY(gCalcMatrix, player->camYaw, MTXF_APPLY);
+
Matrix_Push(&gCalcMatrix);
+
Matrix_RotateX(gCalcMatrix, M_DTOR * gLight1xRot, MTXF_APPLY);
Matrix_RotateY(gCalcMatrix, M_DTOR * gLight1yRot, MTXF_APPLY);
Matrix_RotateZ(gCalcMatrix, M_DTOR * gLight1zRot, MTXF_APPLY);
- sp44.x = 0.0f;
- sp44.y = 0.0f;
- sp44.z = 100.0f;
- Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp44, &sp38);
- gLight1x = sp38.x;
- gLight1y = sp38.y;
- gLight1z = sp38.z;
+
+ src.x = 0.0f;
+ src.y = 0.0f;
+ src.z = 100.0f;
+
+ Matrix_MultVec3fNoTranslate(gCalcMatrix, &src, &dest);
+
+ gLight1x = dest.x;
+ gLight1y = dest.y;
+ gLight1z = dest.z;
+
Matrix_Pop(&gCalcMatrix);
+
Matrix_RotateX(gCalcMatrix, M_DTOR * gLight2xRot, MTXF_APPLY);
Matrix_RotateY(gCalcMatrix, M_DTOR * gLight2yRot, MTXF_APPLY);
Matrix_RotateZ(gCalcMatrix, M_DTOR * gLight2zRot, MTXF_APPLY);
- Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp44, &sp38);
- gLight2x = sp38.x;
- gLight2y = sp38.y;
- gLight2z = sp38.z;
+
+ Matrix_MultVec3fNoTranslate(gCalcMatrix, &src, &dest);
+
+ gLight2x = dest.x;
+ gLight2y = dest.y;
+ gLight2z = dest.z;
}
void Play_UpdateLevel(void) {
@@ -6165,6 +6678,7 @@ void Play_UpdateLevel(void) {
Training_SpawnEnemies();
}
break;
+
case LEVEL_VERSUS:
func_versus_800C26C8();
gVsItemSpawnTimer++;
@@ -6181,6 +6695,7 @@ void Play_UpdateLevel(void) {
gVsItemSpawnTimer = 0;
}
break;
+
case LEVEL_VENOM_2:
if ((gPlayer[0].state_1C8 != PLAYERSTATE_1C8_LEVEL_COMPLETE) && (gLevelPhase == 2)) {
gPlayer[0].state_1C8 = PLAYERSTATE_1C8_LEVEL_COMPLETE;
@@ -6195,6 +6710,7 @@ void Play_UpdateLevel(void) {
gFillScreenRed = gFillScreenGreen = gFillScreenBlue = 255;
}
break;
+
case LEVEL_VENOM_ANDROSS:
Andross_8018BDD8();
gGroundHeight = -25000.0f;
@@ -6207,6 +6723,7 @@ void Play_UpdateLevel(void) {
}
}
break;
+
case LEVEL_METEO:
Texture_Scroll(D_102FF08, 8, 8, 1);
/* fallthrough */
@@ -6219,6 +6736,7 @@ void Play_UpdateLevel(void) {
Math_SmoothStepToF(&gWarpZoneBgAlpha, 128.0f, 1.0f, 1.0f, 0.0f);
}
}
+
if ((gCurrentLevel == LEVEL_SECTOR_X) && (gLevelPhase == 0) && (gRingPassCount == 4)) {
gRingPassCount++;
gPlayer[0].state_1C8 = PLAYERSTATE_1C8_ENTER_WARP_ZONE;
@@ -6229,15 +6747,18 @@ void Play_UpdateLevel(void) {
gLeveLClearStatus[gCurrentLevel] = 1;
}
break;
+
case LEVEL_CORNERIA:
func_hud_8008C104(D_CO_603EB38, D_CO_6028A60);
if ((gGameFrameCount % 2) != 0) {
Texture_Scroll(D_CO_600CBD8, 64, 32, 3);
}
break;
+
case LEVEL_AQUAS:
func_hud_8008C104(D_AQ_603158C, D_AQ_602ACC0);
break;
+
case LEVEL_SOLAR:
Play_UpdateDynaFloor();
@@ -6287,18 +6808,24 @@ void Play_UpdateLevel(void) {
}
}
}
+
shields = MIN(gPlayer[0].shields, 255);
+
Audio_SetHeatAlarmParams(shields, heightParam);
+
if (((gGameFrameCount % 8) == 0) && (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_LEVEL_COMPLETE)) {
Solar_8019E8B8(RAND_FLOAT_CENTERED(6000.0f), -80.0f,
gPlayer[0].trueZpos + (RAND_FLOAT(2000.0f) + -6000.0f),
RAND_FLOAT(10.0f) + 20.0f); // check
}
+
func_hud_8008C104(D_SO_60229A4, D_SO_6010198);
+
if (gPlayer[0].shields == 0) {
gSoShieldsEmpty = 1;
}
break;
+
case LEVEL_ZONESS:
Play_UpdateDynaFloor();
for (gPathTexScroll; gPathTexScroll >= 20.0f; gPathTexScroll -= 20.0f) {
@@ -6307,7 +6834,9 @@ void Play_UpdateLevel(void) {
if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_NEXT) {
Texture_Scroll(D_ZO_602C2CC, 32, 32, 1);
}
+
func_hud_8008C104(D_ZO_602C2CC, D_ZO_600D990);
+
if (Play_CheckDynaFloorCollision(&sp3C, &sp40, gPlayer[0].cam.eye.x, gPlayer[0].cam.eye.y,
gPlayer[0].cam.eye.z - gPathProgress)) {
gLight1R = 0;
@@ -6336,6 +6865,7 @@ void Play_Update(void) {
s32 i;
Play_UpdateFillScreen();
+
for (i = TEAM_ID_FALCO; i <= TEAM_ID_PEPPY; i++) {
if (gTeamDamage[i] > 0) {
gTeamDamage[i] -= 2;
@@ -6345,17 +6875,21 @@ void Play_Update(void) {
}
}
}
+
for (i = 0; i < gCamCount; i++) {
gPlayer[i].num = gPlayerNum = i;
Player_Update(&gPlayer[i]);
}
+
Object_Update();
PlayerShot_UpdateAll();
BonusText_Update();
+
for (i = 0; i < gCamCount; i++) {
gPlayer[i].num = gPlayerNum = i;
Camera_Update(&gPlayer[i]);
}
+
gCameraShakeY = 0.0f;
if (gCameraShake != 0) {
f32 var_fv1;
@@ -6400,30 +6934,36 @@ void Play_Main(void) {
s32 pad2;
s32 pad3;
s32 i;
- f32 sp34;
+ f32 fovYtarget;
- switch (D_ctx_80177C70) {
+ switch (gFovYMode) {
case 0:
- sp34 = 45.0f;
+ fovYtarget = 45.0f;
break;
case 1:
- sp34 = 45.0f;
+ fovYtarget = 45.0f;
break;
case 2:
- sp34 = 55.0f;
+ fovYtarget = 55.0f;
break;
}
- Math_SmoothStepToF(&gFovY, sp34, 0.1f, 5.0f, 0.0f);
+
+ Math_SmoothStepToF(&gFovY, fovYtarget, 0.1f, 5.0f, 0.0f);
+
if (gChangeTo360) {
gChangeTo360 = false;
gLevelMode = LEVELMODE_ALL_RANGE;
+
if (gCurrentLevel != LEVEL_VENOM_ANDROSS) {
MEM_ARRAY_ALLOCATE(gScenery360, 200);
}
+
for (i = 0; i < 200; i++) {
gScenery360[i].obj.status = OBJ_FREE;
}
+
Play_ClearObjectData();
+
if (gCurrentLevel == LEVEL_CORNERIA) {
Play_Setup360_CO();
} else if (gCurrentLevel == LEVEL_SECTOR_Y) {
@@ -6433,22 +6973,27 @@ void Play_Main(void) {
} else if (gCurrentLevel == LEVEL_TRAINING) {
Training_Setup360();
}
+
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;
}
+
if (gPlayState != PLAY_PAUSE) {
- PRINTF("play_time = %d\n");
+ PRINTF("play_time = %d\n", gGameFrameCount);
gGameFrameCount++;
}
+
switch (gPlayState) {
case PLAY_STANDBY:
if (gNextGameStateTimer == 0) {
gPlayState = PLAY_INIT;
}
break;
+
case PLAY_INIT:
Play_Init();
sMusicVolume = gVolumeSettings[AUDIO_TYPE_MUSIC];
@@ -6456,24 +7001,30 @@ void Play_Main(void) {
sSfxVolume = gVolumeSettings[AUDIO_TYPE_SFX];
gPlayState = PLAY_UPDATE;
break;
+
case PLAY_UPDATE:
if ((gLevelStartStatusScreenTimer != 0) || (gLevelClearScreenTimer != 0)) {
gPauseEnabled = false;
} else {
gPauseEnabled = true;
}
+
gDrawMode = DRAW_PLAY;
+
Play_Update();
+
if ((gControllerPress[gMainController].button & START_BUTTON) &&
(gPlayer[0].state_1C8 == PLAYERSTATE_1C8_LEVEL_INTRO) &&
gSaveFile.save.data.planet[sSaveSlotFromLevel[gCurrentLevel]].normalClear) {
Audio_ClearVoice();
Audio_SetEnvSfxReverb(0);
Play_ClearObjectData();
+
for (i = 0; i < gCamCount; i++) {
Audio_KillSfxBySource(gPlayer[i].sfxSource);
Audio_StopPlayerNoise(i);
}
+
gPlayState = PLAY_INIT;
gDrawMode = gVersusMode = 0;
gCamCount = 1;
@@ -6481,9 +7032,11 @@ void Play_Main(void) {
gCsFrameCount = gLevelClearScreenTimer = gLevelStartStatusScreenTimer = gRadioState = 0;
D_ctx_8017782C = false;
}
+
if (gVersusMode) {
Versus_Main();
}
+
if ((gControllerPress[gMainController].button & START_BUTTON) && gPauseEnabled) {
Audio_PlayPauseSfx(1);
gPlayState = PLAY_PAUSE;
@@ -6491,11 +7044,12 @@ void Play_Main(void) {
D_ctx_80178484 = 100000;
}
break;
+
case PLAY_PAUSE:
if (!gVersusMode) {
if ((gControllerPress[gMainController].button & R_TRIG) && (gPlayer[0].form != FORM_BLUE_MARINE) &&
(gPlayer[0].state_1C8 != PLAYERSTATE_1C8_STANDBY)) {
- if (gShowCrosshairs[0] = 1 - gShowCrosshairs[0]) {
+ if (gShowReticles[0] = 1 - gShowReticles[0]) {
AUDIO_PLAY_SFX(NA_SE_MAP_WINDOW_OPEN, gDefaultSfxSource, 4);
} else {
AUDIO_PLAY_SFX(NA_SE_MAP_WINDOW_CLOSE, gDefaultSfxSource, 4);
@@ -6504,7 +7058,7 @@ void Play_Main(void) {
} else {
for (i = 0; i < 4; i++) {
if ((gControllerPress[i].button & R_TRIG) && (gPlayer[i].form != FORM_ON_FOOT)) {
- if (gShowCrosshairs[i] = 1 - gShowCrosshairs[i]) {
+ if (gShowReticles[i] = 1 - gShowReticles[i]) {
Object_PlayerSfx(gPlayer[i].sfxSource, NA_SE_MAP_WINDOW_OPEN, i);
} else {
Object_PlayerSfx(gPlayer[i].sfxSource, NA_SE_MAP_WINDOW_CLOSE, i);
@@ -6512,6 +7066,7 @@ void Play_Main(void) {
}
}
}
+
if ((D_ctx_80177868 == 4) && (gControllerPress[gMainController].button & START_BUTTON) && gPauseEnabled) {
Audio_PlayPauseSfx(0);
gPlayState = PLAY_UPDATE;
diff --git a/src/engine/fox_radio.c b/src/engine/fox_radio.c
index 645ba22d..3a6200f6 100644
--- a/src/engine/fox_radio.c
+++ b/src/engine/fox_radio.c
@@ -769,7 +769,7 @@ void Radio_Draw(void) {
}
if (((gCurrentRadioPortrait != RCID_STATIC) && (gCurrentRadioPortrait != RCID_STATIC + 1)) &&
(gCurrentRadioPortrait != RCID_1000)) {
- func_hud_8008AD94();
+ HUD_RadioCharacterName_Draw();
}
}
diff --git a/src/engine/fox_tank.c b/src/engine/fox_tank.c
index 8b604450..0dc3b8cd 100644
--- a/src/engine/fox_tank.c
+++ b/src/engine/fox_tank.c
@@ -179,12 +179,12 @@ void func_tank_80043B18(Player* player) {
func_tank_80043AA0(player->pos.x + sp3C.x, player->pos.y + sp3C.y, player->trueZpos + sp3C.z, 0.2f);
} else {
if (((gGameFrameCount % 2) == 0)) {
- Titania_80189120(player->pos.x + sp3C.x, player->pos.y + sp3C.y, player->trueZpos + sp3C.z,
- player->rot.y + sp38, 1.3f);
+ Titania_Effect368_Spawn(player->pos.x + sp3C.x, player->pos.y + sp3C.y, player->trueZpos + sp3C.z,
+ player->rot.y + sp38, 1.3f);
}
if (((gGameFrameCount % 4) == 0)) {
- func_effect_8007A900(player->pos.x + sp3C.x, player->pos.y + sp3C.y + 20.0f, player->trueZpos + sp3C.z,
- 2.0f, 255, 15, 0);
+ Effect_Effect359_Spawn(player->pos.x + sp3C.x, player->pos.y + sp3C.y + 20.0f,
+ player->trueZpos + sp3C.z, 2.0f, 255, 15, 0);
}
}
} else {
@@ -198,12 +198,12 @@ void func_tank_80043B18(Player* player) {
}
} else {
if (((gGameFrameCount % 2) == 0)) {
- Titania_80189120(player->pos.x + sp3C.x, player->pos.y + sp3C.y, player->trueZpos + sp3C.z,
- player->rot.y + sp38, 1.0f);
+ Titania_Effect368_Spawn(player->pos.x + sp3C.x, player->pos.y + sp3C.y, player->trueZpos + sp3C.z,
+ player->rot.y + sp38, 1.0f);
}
if (((gGameFrameCount % 4) == 0) && (player->baseSpeed >= 5.0f)) {
- func_effect_8007A900(player->pos.x + sp3C.x, player->pos.y + sp3C.y + 20.0f,
- player->trueZpos + sp3C.z, 2.0f, 255, 15, 0);
+ Effect_Effect359_Spawn(player->pos.x + sp3C.x, player->pos.y + sp3C.y + 20.0f,
+ player->trueZpos + sp3C.z, 2.0f, 255, 15, 0);
}
}
}
@@ -216,12 +216,12 @@ void func_tank_80043B18(Player* player) {
}
} else {
if (((gGameFrameCount % 2) == 0)) {
- Titania_80189120(player->pos.x + sp3C.x, player->pos.y + sp3C.y, player->trueZpos + sp3C.z,
- player->rot.y + sp38, 1.0f);
+ Titania_Effect368_Spawn(player->pos.x + sp3C.x, player->pos.y + sp3C.y, player->trueZpos + sp3C.z,
+ player->rot.y + sp38, 1.0f);
}
if (((gGameFrameCount % 4) == 0) && (player->baseSpeed >= 5.0f)) {
- func_effect_8007A900(player->pos.x + sp3C.x, player->pos.y + sp3C.y + 20.0f,
- player->trueZpos + sp3C.z, 2.0f, 255, 15, 0);
+ Effect_Effect359_Spawn(player->pos.x + sp3C.x, player->pos.y + sp3C.y + 20.0f,
+ player->trueZpos + sp3C.z, 2.0f, 255, 15, 0);
}
}
}
@@ -285,7 +285,7 @@ void func_tank_800443DC(Player* player) {
s32 i;
for (i = 0, scenery = gScenery; i < ARRAY_COUNT(gScenery); i++, scenery++) {
- if ((scenery->obj.status == OBJ_ACTIVE) && (scenery->obj.id == OBJ_SCENERY_58) &&
+ if ((scenery->obj.status == OBJ_ACTIVE) && (scenery->obj.id == OBJ_SCENERY_TI_BRIDGE) &&
((player->trueZpos - 2000.0f) < scenery->obj.pos.z)) {
func_tank_800441C8(player, scenery->info.hitbox, scenery->obj.pos.x, scenery->obj.pos.y, scenery->obj.pos.z,
scenery->obj.rot.x, scenery->obj.rot.y, scenery->obj.rot.z);
@@ -673,19 +673,21 @@ void func_tank_80045678(Player* player) {
Math_SmoothStepToF(&player->vel.y, 0.0f, 0.1f, 2.0f, 0);
}
if ((gCamCount == 1) && ((gGameFrameCount % 2) == 0)) {
- func_effect_8007A900(RAND_FLOAT_CENTERED(20.0f) + player->pos.x, player->groundPos.y + 10.0f,
- player->trueZpos - 10.0f, RAND_FLOAT(2.0f) + 3.5f, 255, 16, 1);
+ Effect_Effect359_Spawn(RAND_FLOAT_CENTERED(20.0f) + player->pos.x, player->groundPos.y + 10.0f,
+ player->trueZpos - 10.0f, RAND_FLOAT(2.0f) + 3.5f, 255, 16, 1);
}
} else {
D_800C9F3C = 0;
if ((gCamCount == 1) && ((gGameFrameCount % 4) == 0) && (player->rollState == 0)) {
if ((player->unk_16C > 0.2f) && (player->radioDamageTimer == 0)) {
- func_effect_8007A900(RAND_FLOAT_CENTERED(10.0f) + (player->pos.x - 57.0f), player->groundPos.y + 10.0f,
- player->trueZpos - 10.0f, RAND_FLOAT(1.0f) + 1.5f, 255, 15, 0);
+ Effect_Effect359_Spawn(RAND_FLOAT_CENTERED(10.0f) + (player->pos.x - 57.0f),
+ player->groundPos.y + 10.0f, player->trueZpos - 10.0f, RAND_FLOAT(1.0f) + 1.5f,
+ 255, 15, 0);
}
if ((player->unk_170 > 0.2f) && (player->radioDamageTimer == 0)) {
- func_effect_8007A900(RAND_FLOAT_CENTERED(10.0f) + (player->pos.x + 57.0f), player->groundPos.y + 10.0f,
- player->trueZpos - 10.0f, RAND_FLOAT(1.0f) + 1.5f, 255, 15, 0);
+ Effect_Effect359_Spawn(RAND_FLOAT_CENTERED(10.0f) + (player->pos.x + 57.0f),
+ player->groundPos.y + 10.0f, player->trueZpos - 10.0f, RAND_FLOAT(1.0f) + 1.5f,
+ 255, 15, 0);
}
}
}
@@ -789,7 +791,7 @@ void func_tank_80046260(Player* player) {
s32 i;
for (i = 0, scenery = gScenery; i < ARRAY_COUNT(gScenery); i++, scenery++) {
- if ((scenery->obj.status == OBJ_ACTIVE) && (scenery->obj.id == OBJ_SCENERY_58) &&
+ if ((scenery->obj.status == OBJ_ACTIVE) && (scenery->obj.id == OBJ_SCENERY_TI_BRIDGE) &&
((player->trueZpos - 2000.0f) < scenery->obj.pos.z) && (scenery->obj.pos.y < player->pos.y)) {
func_tank_800460E0(player, scenery->info.hitbox, scenery->obj.pos.x, scenery->obj.pos.y, scenery->obj.pos.z,
scenery->obj.rot.x, scenery->obj.rot.y, scenery->obj.rot.z);
@@ -844,14 +846,14 @@ void func_tank_8004641C(Player* player, s32 arg1, f32 arg2, f32 arg3, f32 arg4,
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) {
+ if (arg1 == OBJ_SCENERY_MA_WALL_3) {
player->rollState = 0;
D_800C9F04 = 1;
}
}
D_MA_801BE250[28] = sp58.x;
D_MA_801BE250[29] = sp58.z;
- } else if ((arg1 == OBJ_SCENERY_67) && (D_MA_801BE250[27] == 0.0f) &&
+ } else if ((arg1 == OBJ_SCENERY_MA_WALL_3) && (D_MA_801BE250[27] == 0.0f) &&
Play_CheckPolyCollision(arg1, arg2 + 20.0f, arg3, arg4, sp84, sp80, sp7C, &sp58, &sp4C)) {
player->rollState = 9;
player->rollTimer = 15;
@@ -886,9 +888,9 @@ void func_tank_80046704(Player* player) {
if (1) {}
for (i = 0, scenery = gScenery; i < ARRAY_COUNT(gScenery); i++, scenery++) {
if ((scenery->obj.status == OBJ_ACTIVE) && ((player->trueZpos - 2000.0f) < scenery->obj.pos.z)) {
- if ((scenery->obj.id == OBJ_SCENERY_69) || (scenery->obj.id == OBJ_SCENERY_70) ||
- (scenery->obj.id == OBJ_SCENERY_71) || (scenery->obj.id == OBJ_SCENERY_72) ||
- (scenery->obj.id == OBJ_SCENERY_73) || (scenery->obj.id == OBJ_SCENERY_67)) {
+ if ((scenery->obj.id == OBJ_SCENERY_MA_TERRAIN_BUMP) || (scenery->obj.id == OBJ_SCENERY_MA_FLOOR_1) ||
+ (scenery->obj.id == OBJ_SCENERY_MA_FLOOR_2) || (scenery->obj.id == OBJ_SCENERY_MA_FLOOR_3) ||
+ (scenery->obj.id == OBJ_SCENERY_MA_FLOOR_4) || (scenery->obj.id == OBJ_SCENERY_MA_WALL_3)) {
temp1 = scenery->obj.pos.x - player->pos.x;
temp2 = scenery->obj.pos.z - player->trueZpos;
@@ -896,7 +898,7 @@ void func_tank_80046704(Player* player) {
func_tank_8004641C(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);
}
- } else if (scenery->obj.id == OBJ_SCENERY_74) {
+ } else if (scenery->obj.id == OBJ_SCENERY_MA_FLOOR_5) {
if (((player->pos.x - 820.0f) <= scenery->obj.pos.x) &&
(scenery->obj.pos.x <= (player->pos.x + 820.0f)) &&
((player->pos.y - 50.0f) <= scenery->obj.pos.y) &&
@@ -907,10 +909,10 @@ void func_tank_80046704(Player* player) {
player->groundPos.y = D_MA_801BE250[27] - 3.0f;
}
}
- if ((scenery->obj.id == OBJ_SCENERY_59) || (scenery->obj.id == OBJ_SCENERY_60) ||
- (scenery->obj.id == OBJ_SCENERY_61) || (scenery->obj.id == OBJ_SCENERY_63) ||
- (scenery->obj.id == OBJ_SCENERY_105) || (scenery->obj.id == OBJ_SCENERY_66) ||
- (scenery->obj.id == OBJ_SCENERY_67) || (scenery->obj.id == OBJ_SCENERY_68)) {
+ if ((scenery->obj.id == OBJ_SCENERY_MA_BUILDING_1) || (scenery->obj.id == OBJ_SCENERY_MA_BUILDING_2) ||
+ (scenery->obj.id == OBJ_SCENERY_MA_TOWER) || (scenery->obj.id == OBJ_SCENERY_63) ||
+ (scenery->obj.id == OBJ_SCENERY_MA_TRAIN_TRACK_13) || (scenery->obj.id == OBJ_SCENERY_MA_WALL_2) ||
+ (scenery->obj.id == OBJ_SCENERY_MA_WALL_3) || (scenery->obj.id == OBJ_SCENERY_MA_WALL_4)) {
s32 temp_v0;
s32 sp94;
@@ -934,9 +936,9 @@ void func_tank_80046704(Player* player) {
player->pos.x += (D_800C9F4C[temp_v0] * 5.0f);
break;
case 3:
- if ((scenery->obj.id == OBJ_SCENERY_59) || (scenery->obj.id == OBJ_SCENERY_60) ||
- (scenery->obj.id == OBJ_SCENERY_63) || (scenery->obj.id == OBJ_SCENERY_66) ||
- (scenery->obj.id == OBJ_SCENERY_68)) {
+ if ((scenery->obj.id == OBJ_SCENERY_MA_BUILDING_1) ||
+ (scenery->obj.id == OBJ_SCENERY_MA_BUILDING_2) || (scenery->obj.id == OBJ_SCENERY_63) ||
+ (scenery->obj.id == OBJ_SCENERY_MA_WALL_2) || (scenery->obj.id == OBJ_SCENERY_MA_WALL_4)) {
Player_ApplyDamage(player, temp_v0, 5);
}
player->baseSpeed = -(D_800C9F00 * 1.5f);
@@ -945,7 +947,7 @@ void func_tank_80046704(Player* player) {
AUDIO_PLAY_SFX(NA_SE_TANK_WALL_HIT, player->sfxSource, 0);
break;
}
- if (scenery->obj.id == OBJ_SCENERY_59) {
+ if (scenery->obj.id == OBJ_SCENERY_MA_BUILDING_1) {
if (((player->pos.x - 230.0f) <= scenery->obj.pos.x) &&
(scenery->obj.pos.x <= (player->pos.x + 230.0f)) &&
((80.0f <= player->pos.y - scenery->obj.pos.y)) &&
@@ -975,7 +977,7 @@ void func_tank_80046704(Player* player) {
(scenery->obj.pos.z <= (player->trueZpos + 220.0f)) && (player->pos.y >= 200.0f)) {
player->groundPos.y = scenery->obj.pos.y + 204.0f;
}
- } else if ((scenery->obj.id == OBJ_SCENERY_105) && Macbeth_801A3C20(player->trueZpos)) {
+ } else if ((scenery->obj.id == OBJ_SCENERY_MA_TRAIN_TRACK_13) && Macbeth_801A3C20(player->trueZpos)) {
if (((player->pos.x - 200.0f) < D_MA_801BE250[21]) &&
(D_MA_801BE250[21] < (player->pos.x + 200.0f))) {
player->groundPos.y = D_MA_801BE250[22] - 1.0f;
@@ -1342,14 +1344,15 @@ void func_tank_800481F4(Player* player) {
func_tank_800444BC(player);
if (player->mercyTimer == 0) {
for (i = 0, scenery = gScenery; i < ARRAY_COUNT(gScenery); i++, scenery++) {
- if ((scenery->obj.status == OBJ_ACTIVE) && (scenery->obj.id != OBJ_SCENERY_58) &&
- (scenery->obj.id != OBJ_SCENERY_105) && (scenery->obj.id != OBJ_SCENERY_59) &&
- (scenery->obj.id != OBJ_SCENERY_60) && (scenery->obj.id != OBJ_SCENERY_63) &&
- (scenery->obj.id != OBJ_SCENERY_66) && (scenery->obj.id != OBJ_SCENERY_67) &&
- (scenery->obj.id != OBJ_SCENERY_68) && (scenery->obj.id != OBJ_SCENERY_70) &&
- (scenery->obj.id != OBJ_SCENERY_72) && (scenery->obj.id != OBJ_SCENERY_71) &&
- (scenery->obj.id != OBJ_SCENERY_73) && (scenery->obj.id != OBJ_SCENERY_74) &&
- (scenery->obj.id != OBJ_SCENERY_69) && ((player->trueZpos - 2000.0f) < scenery->obj.pos.z)) {
+ if ((scenery->obj.status == OBJ_ACTIVE) && (scenery->obj.id != OBJ_SCENERY_TI_BRIDGE) &&
+ (scenery->obj.id != OBJ_SCENERY_MA_TRAIN_TRACK_13) && (scenery->obj.id != OBJ_SCENERY_MA_BUILDING_1) &&
+ (scenery->obj.id != OBJ_SCENERY_MA_BUILDING_2) && (scenery->obj.id != OBJ_SCENERY_63) &&
+ (scenery->obj.id != OBJ_SCENERY_MA_WALL_2) && (scenery->obj.id != OBJ_SCENERY_MA_WALL_3) &&
+ (scenery->obj.id != OBJ_SCENERY_MA_WALL_4) && (scenery->obj.id != OBJ_SCENERY_MA_FLOOR_1) &&
+ (scenery->obj.id != OBJ_SCENERY_MA_FLOOR_3) && (scenery->obj.id != OBJ_SCENERY_MA_FLOOR_2) &&
+ (scenery->obj.id != OBJ_SCENERY_MA_FLOOR_4) && (scenery->obj.id != OBJ_SCENERY_MA_FLOOR_5) &&
+ (scenery->obj.id != OBJ_SCENERY_MA_TERRAIN_BUMP) &&
+ ((player->trueZpos - 2000.0f) < scenery->obj.pos.z)) {
var_fv1 = scenery->obj.rot.y;
if (scenery->info.action == (ObjectFunc) SceneryRotateTowardsCamera) {
var_fv1 = 0.0f;
@@ -1429,7 +1432,7 @@ void func_tank_800481F4(Player* player) {
Player_ApplyDamage(player, 0, 5);
player->mercyTimer = 1;
}
- } else if ((OBJ_ACTOR_205 <= actor->obj.id) && (actor->obj.id <= OBJ_ACTOR_213)) {
+ } else if ((OBJ_ACTOR_MA_LOCOMOTIVE <= actor->obj.id) && (actor->obj.id <= OBJ_ACTOR_MA_TRAIN_CAR_7)) {
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,
@@ -1463,12 +1466,12 @@ void func_tank_800481F4(Player* player) {
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_MISSILE_SEEK_TEAM)) {
+ if ((actor->obj.id == OBJ_ACTOR_TI_LANDMINE) || (actor->obj.id == OBJ_MISSILE_SEEK_TEAM)) {
actor->dmgType = -1;
}
if (actor->info.damage) {
Player_ApplyDamage(player, temp_v0, actor->info.damage);
- if (actor->obj.id == OBJ_ACTOR_225) {
+ if (actor->obj.id == OBJ_ACTOR_TI_LANDMINE) {
player->knockback.y = 0.0f;
}
} else {
@@ -1487,11 +1490,11 @@ void func_tank_800481F4(Player* player) {
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)) {
- sprite->destroy = 1;
+ sprite->destroy = true;
player->hitTimer = 6;
player->hitDirection = 0;
} else if (sprite->obj.id == OBJ_SPRITE_TI_CACTUS) {
- sprite->destroy = 1;
+ sprite->destroy = true;
} else {
Player_ApplyDamage(player, temp_v0, sprite->info.damage);
}
diff --git a/src/engine/fox_versus.c b/src/engine/fox_versus.c
index 28633126..0ea9aa97 100644
--- a/src/engine/fox_versus.c
+++ b/src/engine/fox_versus.c
@@ -246,7 +246,7 @@ void func_versus_800BD7C4(f32 xPos, f32 yPos, s32 arg2) {
s32 i;
for (i = 10; i != 1; i /= 10) {
- if (xPos > 0 && (yPos > 0)) {
+ if ((xPos > 0) && (yPos > 0)) {
TextureRect_IA8(&gMasterDisp, D_800D4B20[arg2 / i], 16, 8, xPos, yPos, 1.0f, 1.0f);
}
xPos += 9.0f;