Bonusblock and Bricks now break themself when hit by MrIceblock or Snail.
[supertux.git] / src / badguy / flyingsnowball.cpp
index 4c3acdb..66a2db5 100644 (file)
@@ -26,7 +26,7 @@
 #include "object/sprite_particle.hpp"
 
 static const float FLYTIME = 1.0;
-static const float FLYSPEED = 100.0;
+static const float FLYSPEED = -100.0;
 
 namespace {
   const float PUFF_PROBABILITY = 0.1; /**< chanche of puffs being spawned in the current cycle */
@@ -75,14 +75,12 @@ FlyingSnowBall::collision_squished(Player& player)
   return true;
 }
 
-HitResponse
-FlyingSnowBall::collision_solid(GameObject& , const CollisionHit& hit)
+void
+FlyingSnowBall::collision_solid(const CollisionHit& hit)
 {
-  if(fabsf(hit.normal.y) > .5) { // hit floor or roof?
+  if(hit.top || hit.bottom) {
     physic.set_velocity_y(0);
   }
-
-  return CONTINUE;
 }
 
 void
@@ -121,7 +119,7 @@ FlyingSnowBall::active_update(float elapsed_time)
     Vector ppos = bbox.get_middle();
     Vector pspeed = Vector(systemRandom.randf(-10, 10), 150);
     Vector paccel = Vector(0,0);
-    Sector::current()->add_object(new SpriteParticle("images/objects/particles/smoke.sprite", ppos, ANCHOR_MIDDLE, pspeed, paccel, LAYER_OBJECTS-1));
+    Sector::current()->add_object(new SpriteParticle("images/objects/particles/smoke.sprite", "default", ppos, ANCHOR_MIDDLE, pspeed, paccel, LAYER_OBJECTS-1));
     puff_timer.start(systemRandom.randf(PUFF_INTERVAL_MIN, PUFF_INTERVAL_MAX));
   }
 }