diff --git a/spec b/spec index f11ef25a09..5ebd2c5754 100644 --- a/spec +++ b/spec @@ -4421,11 +4421,7 @@ beginseg name "ovl_Bg_Ikana_Bombwall" compress include "build/src/overlays/actors/ovl_Bg_Ikana_Bombwall/z_bg_ikana_bombwall.o" -#ifdef NON_MATCHING include "build/src/overlays/actors/ovl_Bg_Ikana_Bombwall/ovl_Bg_Ikana_Bombwall_reloc.o" -#else - include "build/data/ovl_Bg_Ikana_Bombwall/ovl_Bg_Ikana_Bombwall.reloc.o" -#endif endseg beginseg @@ -4446,11 +4442,7 @@ beginseg name "ovl_Bg_Haka_Bombwall" compress include "build/src/overlays/actors/ovl_Bg_Haka_Bombwall/z_bg_haka_bombwall.o" - #ifdef NON_MATCHING - include "build/src/overlays/actors/ovl_Bg_Haka_Bombwall/ovl_Bg_Haka_Bombwall_reloc.o" - #else - include "build/data/ovl_Bg_Haka_Bombwall/ovl_Bg_Haka_Bombwall.reloc.o" - #endif + include "build/src/overlays/actors/ovl_Bg_Haka_Bombwall/ovl_Bg_Haka_Bombwall_reloc.o" endseg beginseg diff --git a/src/overlays/actors/ovl_Bg_Haka_Bombwall/z_bg_haka_bombwall.c b/src/overlays/actors/ovl_Bg_Haka_Bombwall/z_bg_haka_bombwall.c index 10cea7035e..331a6dfe5d 100644 --- a/src/overlays/actors/ovl_Bg_Haka_Bombwall/z_bg_haka_bombwall.c +++ b/src/overlays/actors/ovl_Bg_Haka_Bombwall/z_bg_haka_bombwall.c @@ -56,7 +56,7 @@ static ColliderCylinderInit sCylinderInit = { { 80, 80, 0, { 0, 0, 0 } }, }; -static s16 D_80BD64CC[4] = { 24, 15, 10, 5 }; +static s16 sRockScales[4] = { 24, 15, 10, 5 }; static InitChainEntry sInitChain[] = { ICHAIN_F32(uncullZoneForward, 4000, ICHAIN_CONTINUE), @@ -75,76 +75,83 @@ s32 func_80BD5E00(BgHakaBombwall* this) { return false; } -#ifdef NON_MATCHING void func_80BD5E6C(BgHakaBombwall* this, PlayState* play) { - s32 i; - Vec3f spE0; - Vec3f spD4; - Vec3f spC8; - Vec3f spBC; - f32 temp_fs0; - f32 phi_fs1; + u32 i; + Vec3f pos; + Vec3f vel; + Vec3f posOffset; + Vec3f velOffset; + f32 offsetPosX; + f32 offsetPosY; + s16 scale; s16 phi_s0; - s16 gravity; s16 phi_t0; + s16 gravity; Matrix_Push(); Matrix_RotateYS(this->dyna.actor.shape.rot.y, MTXMODE_NEW); - temp_fs0 = 0.0f; - phi_fs1 = 0.0f; + + offsetPosX = 0.0f; + offsetPosY = 0.0f; for (i = 0; i < 30; i++) { - temp_fs0 += 60.0f + (Rand_ZeroOne() * 20.0f); - if (temp_fs0 > 75.0f) { - temp_fs0 -= 150.0f; + offsetPosX += 60.0f + (Rand_ZeroOne() * 20.0f); + + if (offsetPosX > 75.0f) { + offsetPosX -= 150.0f; } - spC8.x = temp_fs0; - phi_fs1 += 5; - spC8.y = phi_fs1; + offsetPosY += 5; - spC8.z = (Rand_ZeroOne() * 20.0f) - 10.0f; + posOffset.x = offsetPosX; + posOffset.y = offsetPosY; + posOffset.z = (Rand_ZeroOne() * 20.0f) - 10.0f; - spBC.x = ((Rand_ZeroOne() - 0.5f) * 5.0f) + (temp_fs0 * (4.0f / 75.0f)); - spBC.y = (Rand_ZeroOne() * 7.0f) - 2.0f; - spBC.z = (Rand_ZeroOne() * 4.0f) - 2.0f; + velOffset.x = ((Rand_ZeroOne() - 0.5f) * 5.0f) + (offsetPosX * (4.0f / 75.0f)); + velOffset.y = (Rand_ZeroOne() * 7.0f) - 2.0f; + velOffset.z = (Rand_ZeroOne() * 4.0f) - 2.0f; - Matrix_MultVec3f(&spC8, &spE0); - Matrix_MultVec3f(&spBC, &spD4); + Matrix_MultVec3f(&posOffset, &pos); + Matrix_MultVec3f(&velOffset, &vel); - spE0.x += this->dyna.actor.world.pos.x; - spE0.y += this->dyna.actor.world.pos.y; - spE0.z += this->dyna.actor.world.pos.z; + pos.x += this->dyna.actor.world.pos.x; + pos.y += this->dyna.actor.world.pos.y; + pos.z += this->dyna.actor.world.pos.z; + + //! FAKE + if (1) {} if ((i & 3) == 0) { phi_s0 = 32; - func_800BBFB0(play, &spE0, 60.0f, 2, 100, 120, 1); + func_800BBFB0(play, &pos, 60.0f, 2, 100, 120, 1); } else { phi_s0 = 64; } - if (i % 2 != 0) { + if ((i % 2) != 0) { phi_s0 |= 1; phi_t0 = 1; } else { phi_t0 = 0; } - if (D_80BD64CC[i & 3] >= 16) { + scale = sRockScales[i & (ARRAY_COUNT(sRockScales) - 1)]; + + //! FAKE + fake_label:; + + if (scale >= 16) { gravity = -550; } else { gravity = -450; } - EffectSsKakera_Spawn(play, &spE0, &spD4, &spE0, gravity, phi_s0, 30, 0, 0, D_80BD64CC[i & 3], phi_t0, 0, 50, -1, + EffectSsKakera_Spawn(play, &pos, &vel, &pos, gravity, phi_s0, 30, 0, 0, scale, phi_t0, 0, 50, -1, OBJECT_HAKA_OBJ, object_haka_obj_DL_001680); } Matrix_Pop(); } -#else -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Bg_Haka_Bombwall/func_80BD5E6C.s") -#endif void BgHakaBombwall_Init(Actor* thisx, PlayState* play) { s32 pad; diff --git a/src/overlays/actors/ovl_Bg_Ikana_Bombwall/z_bg_ikana_bombwall.c b/src/overlays/actors/ovl_Bg_Ikana_Bombwall/z_bg_ikana_bombwall.c index 7dbe579a07..a97ed6b28e 100644 --- a/src/overlays/actors/ovl_Bg_Ikana_Bombwall/z_bg_ikana_bombwall.c +++ b/src/overlays/actors/ovl_Bg_Ikana_Bombwall/z_bg_ikana_bombwall.c @@ -96,50 +96,53 @@ Gfx* D_80BD52E0[] = { object_ikana_obj_DL_000048, }; -#ifdef NON_MATCHING void func_80BD4720(BgIkanaBombwall* this, PlayState* play) { s32 i; - Vec3f spE0; - Vec3f spD4; - Vec3f spC8; - Vec3f spBC; - f32 temp_fs0; - f32 phi_fs1; + Vec3f pos; + Vec3f vel; + Vec3f posOffset; + Vec3f velOffset; + f32 offsetPosX; + f32 offsetPosY; + s16 scale; s16 phi_s0; - s16 temp; s16 phi_t0; + s16 gravity; Matrix_Push(); Matrix_RotateYS(this->dyna.actor.shape.rot.y, MTXMODE_NEW); - temp_fs0 = 0.0f; - phi_fs1 = 0.0f; + offsetPosX = 0.0f; + offsetPosY = 0.0f; for (i = 0; i < 30; i++) { - temp_fs0 += 60.0f + (Rand_ZeroOne() * 20.0f); - if (temp_fs0 > 75.0f) { - temp_fs0 -= 150.0f; + offsetPosX += 60.0f + (Rand_ZeroOne() * 20.0f); + if (offsetPosX > 75.0f) { + offsetPosX -= 150.0f; } - spC8.x = temp_fs0; - phi_fs1 += 5; - spC8.y = phi_fs1; + offsetPosY += 5; - spC8.z = (Rand_ZeroOne() * 20.0f) - 10.0f; + posOffset.x = offsetPosX; + posOffset.y = offsetPosY; + posOffset.z = (Rand_ZeroOne() * 20.0f) - 10.0f; - spBC.x = ((Rand_ZeroOne() - 0.5f) * 5.0f) + (temp_fs0 * 0.053333335f); - spBC.y = (Rand_ZeroOne() * 7.0f) - 2.0f; - spBC.z = (Rand_ZeroOne() * 4.0f) - 2.0f; + velOffset.x = ((Rand_ZeroOne() - 0.5f) * 5.0f) + (offsetPosX * (4.0f / 75.0f)); + velOffset.y = (Rand_ZeroOne() * 7.0f) - 2.0f; + velOffset.z = (Rand_ZeroOne() * 4.0f) - 2.0f; - Matrix_MultVec3f(&spC8, &spE0); - Matrix_MultVec3f(&spBC, &spD4); + Matrix_MultVec3f(&posOffset, &pos); + Matrix_MultVec3f(&velOffset, &vel); - spE0.x += this->dyna.actor.world.pos.x; - spE0.y += this->dyna.actor.world.pos.y; - spE0.z += this->dyna.actor.world.pos.z; + pos.x += this->dyna.actor.world.pos.x; + pos.y += this->dyna.actor.world.pos.y; + pos.z += this->dyna.actor.world.pos.z; + + //! FAKE + if (1) {} if ((i & 3) == 0) { phi_s0 = 32; - func_800BBFB0(play, &spE0, 50.0f, 2, 100, 120, 1); + func_800BBFB0(play, &pos, 50.0f, 2, 100, 120, 1); } else { phi_s0 = 64; } @@ -151,56 +154,57 @@ void func_80BD4720(BgIkanaBombwall* this, PlayState* play) { phi_t0 = 0; } - if (D_80BD52C8[i & 3] >= 16) { - temp = -550; + scale = D_80BD52C8[i & (ARRAY_COUNT(D_80BD52C8) - 1)]; + + //! FAKE + fake_label:; + + if (scale >= 16) { + gravity = -550; } else { - temp = -450; + gravity = -450; } - EffectSsKakera_Spawn(play, &spE0, &spD4, &spE0, temp, phi_s0, 30, 0, 0, D_80BD52C8[i & 3], phi_t0, 0, 50, -1, + EffectSsKakera_Spawn(play, &pos, &vel, &pos, gravity, phi_s0, 30, 0, 0, scale, phi_t0, 0, 50, -1, OBJECT_IKANA_OBJ, object_ikana_obj_DL_000288); } Matrix_Pop(); } -#else -void func_80BD4720(BgIkanaBombwall* this, PlayState* play); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Bg_Ikana_Bombwall/func_80BD4720.s") -#endif void func_80BD4A14(BgIkanaBombwall* this, PlayState* play) { s32 i; - Vec3f spD8; - Vec3f spCC; + Vec3f pos; + Vec3f vel; f32 temp_fs0; f32 temp_fs1; f32 temp_fs3; - s16 temp_v1; - s16 phi_s2; - s32 phi_t0; + s16 scale; + s16 angle; + s32 gravity; s16 phi_v0; s32 phi_v1; temp_fs3 = 0.0f; - for (i = 0, phi_s2 = 0; i < 28; i++, phi_s2 += 0x924) { + for (i = 0, angle = 0; i < 28; i++, angle += 0x924) { temp_fs3 += 20.0f + (Rand_ZeroOne() * 10.0f); if (temp_fs3 > 60.0f) { temp_fs3 -= 60.0f; } - temp_fs0 = Math_SinS(phi_s2); - temp_fs1 = Math_CosS(phi_s2); + temp_fs0 = Math_SinS(angle); + temp_fs1 = Math_CosS(angle); - spD8.x = (temp_fs0 * temp_fs3) + this->dyna.actor.world.pos.x; - spD8.y = this->dyna.actor.world.pos.y; - spD8.z = (temp_fs1 * temp_fs3) + this->dyna.actor.world.pos.z; + pos.x = (temp_fs0 * temp_fs3) + this->dyna.actor.world.pos.x; + pos.y = this->dyna.actor.world.pos.y; + pos.z = (temp_fs1 * temp_fs3) + this->dyna.actor.world.pos.z; - spCC.x = ((Rand_ZeroOne() - 0.5f) * 3.0f * temp_fs0) + ((temp_fs0 * temp_fs3) * 0.033333335f); - spCC.y = (Rand_ZeroOne() * 18.0f) + 4.0f; - spCC.z = ((Rand_ZeroOne() - 0.5f) * 3.0f * temp_fs1) + ((temp_fs1 * temp_fs3) * 0.033333335f); + vel.x = ((Rand_ZeroOne() - 0.5f) * 3.0f * temp_fs0) + ((temp_fs0 * temp_fs3) * (1.0f / 30.0f)); + vel.y = (Rand_ZeroOne() * 18.0f) + 4.0f; + vel.z = ((Rand_ZeroOne() - 0.5f) * 3.0f * temp_fs1) + ((temp_fs1 * temp_fs3) * (1.0f / 30.0f)); - temp_v1 = (Rand_Next() & 3) + (i >> 1) + 6; + scale = (Rand_Next() & 3) + (i >> 1) + 6; if ((i & 3) == 0) { phi_v0 = 32; @@ -208,21 +212,21 @@ void func_80BD4A14(BgIkanaBombwall* this, PlayState* play) { phi_v0 = 64; } - if (temp_v1 >= 15) { + if (scale >= 15) { phi_v0 |= 1; phi_v1 = 1; - phi_t0 = -550; + gravity = -550; } else { phi_v1 = 0; - phi_t0 = -400; + gravity = -400; } - EffectSsKakera_Spawn(play, &spD8, &spCC, &spD8, phi_t0, phi_v0, 30, 0, 0, temp_v1, phi_v1, 0, 50, -1, + EffectSsKakera_Spawn(play, &pos, &vel, &pos, gravity, phi_v0, 30, 0, 0, scale, phi_v1, 0, 50, -1, OBJECT_IKANA_OBJ, object_ikana_obj_DL_000288); if ((i & 3) == 0) { - spD8.y += 30.0f; - func_800BBFB0(play, &spD8, 50.0f, 2, 70, 110, 1); + pos.y += 30.0f; + func_800BBFB0(play, &pos, 50.0f, 2, 70, 110, 1); } } }