diff options
Diffstat (limited to 'src/bossMegaGoomba.cpp')
-rw-r--r-- | src/bossMegaGoomba.cpp | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/src/bossMegaGoomba.cpp b/src/bossMegaGoomba.cpp index 1350ee7..e67caac 100644 --- a/src/bossMegaGoomba.cpp +++ b/src/bossMegaGoomba.cpp @@ -77,6 +77,7 @@ class daMegaGoomba_c : public dEn_c { bool collisionCat2_IceBall_15_YoshiIce(ActivePhysics *apThis, ActivePhysics *apOther); void collisionCat3_StarPower(ActivePhysics *apThis, ActivePhysics *apOther); void collisionCat7_GroundPound(ActivePhysics *apThis, ActivePhysics *apOther); + void collisionCat7_GroundPoundYoshi(ActivePhysics *apThis, ActivePhysics *apOther); void collisionCat9_RollingObject(ActivePhysics *apThis, ActivePhysics *apOther); void collisionCatA_PenguinMario(ActivePhysics *apThis, ActivePhysics *apOther); void collisionCatD_GroundPound(ActivePhysics *apThis, ActivePhysics *apOther); @@ -264,11 +265,14 @@ void daMegaGoomba_c::playerCollision(ActivePhysics *apThis, ActivePhysics *apOth } } void daMegaGoomba_c::collisionCat7_GroundPound(ActivePhysics *apThis, ActivePhysics *apOther) { - apOther->someFlagByte |= 2; - - if(this->takeHit(1)) - doStateChange(&StateID_DieFall); + VEC2 eSpeed = {speed.x, speed.y}; + killWithSpecifiedState(apOther->owner, &eSpeed, &dEn_c::StateID_DieOther); } +void daMegaGoomba_c::collisionCat7_GroundPoundYoshi(ActivePhysics *apThis, ActivePhysics *apOther) { + VEC2 eSpeed = {speed.x, speed.y}; + killWithSpecifiedState(apOther->owner, &eSpeed, &dEn_c::StateID_DieOther); +} + void daMegaGoomba_c::collisionCat1_Fireball_E_Explosion(ActivePhysics *apThis, ActivePhysics *apOther) {} bool daMegaGoomba_c::collisionCat2_IceBall_15_YoshiIce(ActivePhysics *apThis, ActivePhysics *apOther) { return false; } void daMegaGoomba_c::collisionCat3_StarPower(ActivePhysics *apThis, ActivePhysics *apOther) { doStateChange(&StateID_DieFall); } @@ -276,7 +280,10 @@ void daMegaGoomba_c::collisionCat9_RollingObject(ActivePhysics *apThis, ActivePh if(this->takeHit(1)) doStateChange(&StateID_DieFall); } -void daMegaGoomba_c::collisionCatA_PenguinMario(ActivePhysics *apThis, ActivePhysics *apOther) {} +void daMegaGoomba_c::collisionCatA_PenguinMario(ActivePhysics *apThis, ActivePhysics *apOther) { + if(this->takeHit(1)) + doStateChange(&StateID_DieFall); +} void daMegaGoomba_c::collisionCatD_GroundPound(ActivePhysics *apThis, ActivePhysics *apOther) { } void daMegaGoomba_c::collisionCat11_PipeCannon(ActivePhysics *apThis, ActivePhysics *apOther) {} void daMegaGoomba_c::collisionCat13_Hammer(ActivePhysics *apThis, ActivePhysics *apOther) { @@ -301,6 +308,7 @@ void daMegaGoomba_c::bindAnimChr_and_setUpdateRate(const char* name, int unk, fl void daMegaGoomba_c::dieFall_Begin() { this->dEn_c::dieFall_Begin(); + PlaySound(this, SE_EMY_KURIBO_L_DAMAGE_03); } void daMegaGoomba_c::dieFall_Execute() { @@ -612,6 +620,8 @@ void daMegaGoomba_c::dieOther_Begin() { speed.x = speed.y = speed.z = 0.0f; removeMyActivePhysics(); + PlaySound(this, SE_EMY_KURIBO_L_SPLIT_HPDP); + rot.y = 0; counter_500 = 60; } |