diff options
Diffstat (limited to '')
-rw-r--r-- | src/bossFuzzyBear.cpp | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/src/bossFuzzyBear.cpp b/src/bossFuzzyBear.cpp index 67fbd6e..3f66c41 100644 --- a/src/bossFuzzyBear.cpp +++ b/src/bossFuzzyBear.cpp @@ -56,7 +56,7 @@ class daFuzzyBear_c : public daBoss { DECLARE_STATE(Grow); DECLARE_STATE(Bounce); // DECLARE_STATE(Needles); - DECLARE_STATE(Spray); + //DECLARE_STATE(Spray); DECLARE_STATE(RolyPoly); DECLARE_STATE(Wait); DECLARE_STATE(Outro); @@ -72,7 +72,7 @@ daFuzzyBear_c *daFuzzyBear_c::build() { CREATE_STATE(daFuzzyBear_c, Grow); CREATE_STATE(daFuzzyBear_c, Bounce); // CREATE_STATE(daFuzzyBear_c, Needles); -CREATE_STATE(daFuzzyBear_c, Spray); +//CREATE_STATE(daFuzzyBear_c, Spray); CREATE_STATE(daFuzzyBear_c, RolyPoly); CREATE_STATE(daFuzzyBear_c, Wait); CREATE_STATE(daFuzzyBear_c, Outro); @@ -119,6 +119,15 @@ bool daFuzzyBear_c::collisionCat9_RollingObject(ActivePhysics *apThis, ActivePhy dActor_c *block = apOther->owner; dEn_c *blah = (dEn_c*)block; + //OSReport("Fuzzy was hit by an actor %d (%p); its field 12C is %x\n", block->name, block, blah->_12C); + if (block->name == AC_LIGHT_BLOCK) { + //OSReport("It's a light block, and its state is %s\n", blah->acState.getCurrentState()->getName()); + if (blah->_12C & 3 || strcmp(blah->acState.getCurrentState()->getName(), "daLightBlock_c::StateID_Throw")) { + //OSReport("Ignoring this!\n"); + return true; + } + } + if (blah->direction == 0) { blah->direction = 1; this->roly = 1; } else { blah->direction = 0; this->roly = 0; } @@ -526,7 +535,7 @@ void daFuzzyBear_c::endState_Bounce() { } // Spray State - jumps in the air and shakes out some small fuzzies -void daFuzzyBear_c::beginState_Spray() { +/*void daFuzzyBear_c::beginState_Spray() { this->timer = 0; this->speed.y = 7.0; this->speed.x = 0.0; @@ -577,7 +586,7 @@ void daFuzzyBear_c::endState_Spray() { this->rot.y = 0; this->timer = 20; this->falldown = 1; -} +}*/ // Roly Poly State - Rolls from left to right, bounces off both walls, and returns to original position. @@ -623,9 +632,9 @@ void daFuzzyBear_c::executeState_RolyPoly() { } if (this->direction == 0) { // is even - this->pos.x = this->pos.x - 4.0; } + this->pos.x = this->pos.x - 3.0; } else { // is odd - this->pos.x = this->pos.x + 4.0; } + this->pos.x = this->pos.x + 3.0; } if (BigBossFuzzyBear == 0) { wallDistance = 38.0; @@ -685,10 +694,11 @@ void daFuzzyBear_c::executeState_Wait() { this->timer = this->timer + 1; if (this->timer > 60) { - int randChoice; + doStateChange(&StateID_Bounce); + //int randChoice; - if (BigBossFuzzyBear == 1) { doStateChange(&StateID_Spray); } - else { doStateChange(&StateID_Bounce); } + //if (BigBossFuzzyBear == 1) { doStateChange(&StateID_Spray); } + //else { doStateChange(&StateID_Bounce); } } } void daFuzzyBear_c::endState_Wait() { } |