summaryrefslogtreecommitdiff
path: root/src/shyguy.cpp
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/shyguy.cpp29
1 files changed, 15 insertions, 14 deletions
diff --git a/src/shyguy.cpp b/src/shyguy.cpp
index 2c71252..213caa8 100644
--- a/src/shyguy.cpp
+++ b/src/shyguy.cpp
@@ -195,6 +195,7 @@ daShyGuy *daShyGuy::build() {
}
void ChucklesAndKnuckles(ActivePhysics *apThis, ActivePhysics *apOther) {
+ if (apOther->owner->name != PLAYER) { return; }
((dEn_c*)apThis->owner)->_vf220(apOther->owner);
}
@@ -289,9 +290,9 @@ daShyGuy *daShyGuy::build() {
}
void daShyGuy::yoshiCollision(ActivePhysics *apThis, ActivePhysics *apOther) { this->playerCollision(apThis, apOther); }
- void daShyGuy::collisionCatD_GroundPound(ActivePhysics *apThis, ActivePhysics *apOther) { doStateChange(&StateID_Die); }
- void daShyGuy::collisionCat7_WMWaggleWater(ActivePhysics *apThis, ActivePhysics *apOther) { doStateChange(&StateID_Die); }
- void daShyGuy::collisionCat7_WMWaggleWaterYoshi(ActivePhysics *apThis, ActivePhysics *apOther) { doStateChange(&StateID_Die); }
+ void daShyGuy::collisionCatD_GroundPound(ActivePhysics *apThis, ActivePhysics *apOther) { PlaySound(this, SE_EMY_DOWN); doStateChange(&StateID_Die); }
+ void daShyGuy::collisionCat7_WMWaggleWater(ActivePhysics *apThis, ActivePhysics *apOther) { PlaySound(this, SE_EMY_DOWN); doStateChange(&StateID_Die); }
+ void daShyGuy::collisionCat7_WMWaggleWaterYoshi(ActivePhysics *apThis, ActivePhysics *apOther) { PlaySound(this, SE_EMY_DOWN); doStateChange(&StateID_Die); }
void daShyGuy::collisionCat9_RollingObject(ActivePhysics *apThis, ActivePhysics *apOther) { doStateChange(&StateID_Die); }
void daShyGuy::collisionCatA_PenguinMario(ActivePhysics *apThis, ActivePhysics *apOther){ doStateChange(&StateID_Die); }
@@ -313,6 +314,7 @@ daShyGuy *daShyGuy::build() {
this->damage += 1;
dStateBase_c *stateVar;
+ stateVar = &StateID_DieSmoke;
if (this->type < 6) { // Regular Shy Guys Except Jumper
@@ -556,7 +558,7 @@ int daShyGuy::onCreate() {
this->scale = (Vec){20.0, 20.0, 20.0};
- this->pos.y = this->pos.y + 40.0;
+ this->pos.y += 32.0;
this->rot.x = 0; // X is vertical axis
this->rot.y = 0xD800; // Y is horizontal axis
this->rot.z = 0; // Z is ... an axis >.>
@@ -601,7 +603,7 @@ int daShyGuy::onCreate() {
HitMeBaby.category1 = 0x3;
HitMeBaby.category2 = 0x0;
- HitMeBaby.bitfield1 = 0x4F;
+ HitMeBaby.bitfield1 = 0x6F;
HitMeBaby.bitfield2 = 0xffbafffe;
HitMeBaby.unkShort1C = 0;
HitMeBaby.callback = &shyCollisionCallback;
@@ -668,7 +670,7 @@ int daShyGuy::onCreate() {
iKnuckles.category1 = iChuckles.category1 = 0x3;
iKnuckles.category2 = iChuckles.category2 = 0x0;
iKnuckles.bitfield1 = iChuckles.bitfield1 = 0x4F;
- iKnuckles.bitfield2 = iChuckles.bitfield2 = 0x6;
+ iKnuckles.bitfield2 = iChuckles.bitfield2 = 0x0;
iKnuckles.unkShort1C = iChuckles.unkShort1C = 0x0;
iKnuckles.callback = iChuckles.callback = ChucklesAndKnuckles;
@@ -1116,18 +1118,18 @@ void daShyGuy::updateModelMatrices() {
if (this->direction == 1) {
spawned = CreateActor(89, 0x2, pos, 0, 0);
- spawned->scale.x = 0.75;
- spawned->scale.y = 0.75;
- spawned->scale.z = 0.75;
+ spawned->scale.x = 0.9;
+ spawned->scale.y = 0.9;
+ spawned->scale.z = 0.9;
spawned->speed.x = -2.0;
spawned->speed.y = 2.0;
}
else {
spawned = CreateActor(89, 0x12, pos, 0, 0);
- spawned->scale.x = 0.75;
- spawned->scale.y = 0.75;
- spawned->scale.z = 0.75;
+ spawned->scale.x = 0.9;
+ spawned->scale.y = 0.9;
+ spawned->scale.z = 0.9;
spawned->speed.x = 2.0;
spawned->speed.y = 2.0;
@@ -1264,8 +1266,6 @@ void daShyGuy::updateModelMatrices() {
}
void daShyGuy::executeState_GoDizzy() {
calculateTileCollisions();
-
- // Needs tile collision shit here, because jumpers can get hit and fall downwards.
effect.spawn("Wm_en_spindamage", 0, &(Vec){this->pos.x, this->pos.y + 24.0, 0}, &(S16Vec){0,0,0}, &(Vec){1.0, 1.0, 1.0});
@@ -1425,6 +1425,7 @@ void daShyGuy::updateModelMatrices() {
///////////////
void daShyGuy::beginState_Die() {
// dEn_c::dieFall_Begin();
+ this->removeMyActivePhysics();
bindAnimChr_and_setUpdateRate("c18_C_BLOCK_BREAK_R", 1, 0.0, 2.0);
this->timer = 0;