diff options
-rw-r--r-- | src/shyguy.cpp | 3 | ||||
-rw-r--r-- | src/topman.cpp | 28 |
2 files changed, 15 insertions, 16 deletions
diff --git a/src/shyguy.cpp b/src/shyguy.cpp index c2193c7..bbae18b 100644 --- a/src/shyguy.cpp +++ b/src/shyguy.cpp @@ -308,8 +308,7 @@ daShyGuy *daShyGuy::build() { if (this->type < 6) { // Regular Shy Guys Except Jumper - if (this->pos.x < apOther->owner->pos.x) { this->backFire = 0; OSReport("Fire is to the right"); } // Fire is to the right - else { this->backFire = 1; OSReport("Fire is to the left"); } // Fire is to the left + backFire = apOther->owner->direction; if (this->isDown == 0) { stateVar = &StateID_FireKnockBack; diff --git a/src/topman.cpp b/src/topman.cpp index ba784c7..66b4454 100644 --- a/src/topman.cpp +++ b/src/topman.cpp @@ -30,6 +30,8 @@ class daTopman : public dEn_c { char isInSpace; char fromBehind; char isWaiting; + char backFire; + int directionStore; static daTopman *build(); @@ -116,10 +118,10 @@ daTopman *daTopman::build() { else if(hitType == 0) { EN_LandbarrelPlayerCollision(this, apThis, apOther); if (this->pos.x > apOther->owner->pos.x) { - this->direction = 1; + this->backFire = 1; } else { - this->direction = 0; + this->backFire = 0; } doStateChange(&StateID_KnockBack); } @@ -152,6 +154,7 @@ daTopman *daTopman::build() { } void daTopman::collisionCat9_RollingObject(ActivePhysics *apThis, ActivePhysics *apOther) { + backFire = apOther->owner->direction ^ 1; doStateChange(&StateID_KnockBack); } @@ -164,15 +167,17 @@ daTopman *daTopman::build() { } void daTopman::collisionCatA_PenguinMario(ActivePhysics *apThis, ActivePhysics *apOther){ + backFire = apOther->owner->direction ^ 1; doStateChange(&StateID_KnockBack); } void daTopman::collisionCat14_YoshiFire(ActivePhysics *apThis, ActivePhysics *apOther){ + backFire = apOther->owner->direction ^ 1; doStateChange(&StateID_KnockBack); } void daTopman::collisionCat1_Fireball_E_Explosion(ActivePhysics *apThis, ActivePhysics *apOther) { - direction = apOther->owner->direction ^ 1; + backFire = apOther->owner->direction ^ 1; doStateChange(&StateID_KnockBack); } @@ -508,8 +513,9 @@ void daTopman::updateModelMatrices() { void daTopman::beginState_KnockBack() { bindAnimChr_and_setUpdateRate("begoman_damage", 1, 0.0, 0.75); - this->max_speed.x = (this->direction) ? this->XSpeed*5.0 : -this->XSpeed*5.0; - this->speed.x = (this->direction) ? 4.0f : -4.0f; + directionStore = direction; + speed.x = (backFire) ? XSpeed*5.0f : XSpeed*-5.0f; + max_speed.x = speed.x; } void daTopman::executeState_KnockBack() { @@ -519,22 +525,16 @@ void daTopman::updateModelMatrices() { bodyModel._vf1C(); if(this->chrAnimation.isAnimationDone()) { if (this->isWaiting == 0) { + OSReport("Done being knocked back, going back to Walk state\n"); doStateChange(&StateID_Walk); } else { + OSReport("Done being knocked back, going back to Wait state\n"); doStateChange(&StateID_Wait); } } } void daTopman::endState_KnockBack() { - if (this->rot.y == 0x2800) { - - this->direction = 0; - } - else { - - this->direction = 1; - } - // this->direction ^= 1; + direction = directionStore; bindAnimChr_and_setUpdateRate("begoman_wait2", 1, 0.0, 1.0); } |