diff options
Diffstat (limited to 'src/shyguy.cpp')
-rw-r--r-- | src/shyguy.cpp | 29 |
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 = ­CollisionCallback; @@ -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; |