summaryrefslogtreecommitdiff
path: root/src/bossMegaGoomba.cpp
diff options
context:
space:
mode:
authorColin Noga <Tempus@chronometry.ca>2012-12-04 02:09:02 -0600
committerColin Noga <Tempus@chronometry.ca>2012-12-04 02:09:02 -0600
commit42069c9299c18891a81efeeb45d19007d80c70c1 (patch)
treede7263f7bd51366695f5f0a8fc6e2a1717d4fb5b /src/bossMegaGoomba.cpp
parente8ffbf5bdc704c4efb426f4d1c10b21527debdc3 (diff)
downloadkamek-42069c9299c18891a81efeeb45d19007d80c70c1.tar.gz
kamek-42069c9299c18891a81efeeb45d19007d80c70c1.zip
fixed a bunch of bugs, shy guy, mega goomba, challenge star, topman boss
Diffstat (limited to '')
-rw-r--r--src/bossMegaGoomba.cpp20
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;
}