summaryrefslogtreecommitdiff
path: root/src/fakeStarCoin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/fakeStarCoin.cpp')
-rw-r--r--src/fakeStarCoin.cpp52
1 files changed, 51 insertions, 1 deletions
diff --git a/src/fakeStarCoin.cpp b/src/fakeStarCoin.cpp
index fb0df72..a845e45 100644
--- a/src/fakeStarCoin.cpp
+++ b/src/fakeStarCoin.cpp
@@ -30,6 +30,12 @@ class daFakeStarCoin : public dEn_c {
void updateModelMatrices();
void playerCollision(ActivePhysics *apThis, ActivePhysics *apOther);
+ void collisionCat1_Fireball_E_Explosion(ActivePhysics *apThis, ActivePhysics *apOther);
+ bool collisionCat2_IceBall_15_YoshiIce(ActivePhysics *apThis, ActivePhysics *apOther);
+ void collisionCat9_RollingObject(ActivePhysics *apThis, ActivePhysics *apOther);
+ void collisionCat13_Hammer(ActivePhysics *apThis, ActivePhysics *apOther);
+ void collisionCat14_YoshiFire(ActivePhysics *apThis, ActivePhysics *apOther);
+
};
@@ -41,6 +47,50 @@ void daFakeStarCoin::playerCollision(ActivePhysics *apThis, ActivePhysics *apOth
this->Delete();
}
+void daFakeStarCoin::collisionCat1_Fireball_E_Explosion(ActivePhysics *apThis, ActivePhysics *apOther) {
+ CreateEffect(&this->pos, &(S16Vec){0,0,0}, &(Vec){1.0, 1.0, 1.0}, 336);
+ CreateEffect(&this->pos, &(S16Vec){0,0,0}, &(Vec){3.0, 3.0, 3.0}, 342);
+
+ PlaySound(this, SE_EMY_FIRE_SNAKE_BIGGER);
+
+ this->Delete();
+}
+bool daFakeStarCoin::collisionCat2_IceBall_15_YoshiIce(ActivePhysics *apThis, ActivePhysics *apOther) {
+ CreateEffect(&this->pos, &(S16Vec){0,0,0}, &(Vec){1.5, 1.5, 1.5}, 44);
+ CreateEffect(&this->pos, &(S16Vec){0,0,0}, &(Vec){1.0, 1.0, 1.0}, 231);
+ CreateEffect(&this->pos, &(S16Vec){0,0,0}, &(Vec){1.5, 1.5, 1.5}, 235);
+
+ PlaySound(this, SE_OBJ_PNGN_ICE_BREAK);
+
+ this->Delete();
+ return false;
+}
+void daFakeStarCoin::collisionCat9_RollingObject(ActivePhysics *apThis, ActivePhysics *apOther) {
+ CreateEffect(&this->pos, &(S16Vec){0,0,0}, &(Vec){1.0, 1.0, 1.0}, 48);
+ CreateEffect(&this->pos, &(S16Vec){0,0,0}, &(Vec){1.0, 1.0, 1.0}, 378);
+
+ PlaySound(this, SE_BOSS_JR_FLOOR_BREAK);
+
+ this->Delete();
+}
+void daFakeStarCoin::collisionCat13_Hammer(ActivePhysics *apThis, ActivePhysics *apOther) {
+ CreateEffect(&this->pos, &(S16Vec){0,0,0}, &(Vec){1.0, 1.0, 1.0}, 48);
+ CreateEffect(&this->pos, &(S16Vec){0,0,0}, &(Vec){1.0, 1.0, 1.0}, 378);
+
+ PlaySound(this, SE_BOSS_JR_FLOOR_BREAK);
+
+ this->Delete();
+}
+void daFakeStarCoin::collisionCat14_YoshiFire(ActivePhysics *apThis, ActivePhysics *apOther) {
+ CreateEffect(&this->pos, &(S16Vec){0,0,0}, &(Vec){1.0, 1.0, 1.0}, 336);
+ CreateEffect(&this->pos, &(S16Vec){0,0,0}, &(Vec){3.0, 3.0, 3.0}, 342);
+
+ PlaySound(this, SE_EMY_FIRE_SNAKE_BIGGER);
+
+ this->Delete();
+}
+
+
daFakeStarCoin *daFakeStarCoin::build() {
@@ -67,7 +117,7 @@ int daFakeStarCoin::onCreate() {
HitMeBaby.category1 = 0x5;
HitMeBaby.category2 = 0x0;
HitMeBaby.bitfield1 = 0x4F;
- HitMeBaby.bitfield2 = 0x200;
+ HitMeBaby.bitfield2 = 0xFFFFFFFF;
HitMeBaby.unkShort1C = 0;
HitMeBaby.callback = &dEn_c::collisionCallback;