Ooops, forgot to upload the actual Statistics implementation.
[supertux.git] / src / badguy.cpp
index 1303cb0..65133b3 100644 (file)
@@ -365,9 +365,9 @@ BadGuy::action_mriceblock(double elapsed_time)
       if(tux.input.fire != DOWN) /* SHOOT! */
         {
           if(dir == LEFT)
-            base.x -= 24;
+            base.x = tux.base.x - base.width;
           else
-            base.x += 24;
+            base.x = tux.base.x + tux.base.width;
           old_base = base;
 
           mode=KICK;
@@ -404,20 +404,27 @@ void
 BadGuy::check_horizontal_bump(bool checkcliff)
 {
     float halfheight = base.height / 2;
-    if (dir == LEFT && issolid( base.x, (int) base.y + halfheight))
+    if (dir == LEFT && issolid( base.x, base.y + halfheight))
     {
         if (kind == BAD_MRICEBLOCK && mode == KICK)
+            {
             Sector::current()->trybreakbrick(Vector(base.x, base.y + halfheight), false);
+            Sector::current()->tryemptybox(Vector(base.x, base.y + halfheight), dir);
+            }
             
         dir = RIGHT;
         physic.set_velocity(-physic.get_velocity_x(), physic.get_velocity_y());
         return;
     }
-    if (dir == RIGHT && issolid( base.x + base.width, (int)base.y + halfheight))
+    if (dir == RIGHT && issolid( base.x + base.width, base.y + halfheight))
     {
         if (kind == BAD_MRICEBLOCK && mode == KICK)
+            {
             Sector::current()->trybreakbrick(
-                Vector(base.x + base.width, (int) base.y + halfheight), false);
+                Vector(base.x + base.width, base.y + halfheight), false);
+            Sector::current()->tryemptybox(
+                Vector(base.x + base.width, base.y + halfheight), dir);
+            }
             
         dir = LEFT;
         physic.set_velocity(-physic.get_velocity_x(), physic.get_velocity_y());