- added butt-jump
[supertux.git] / src / badguy.cpp
index 5e33158..e02da38 100644 (file)
@@ -929,6 +929,12 @@ BadGuy::kill_me(int score)
   play_sound(sounds[SND_FALL], SOUND_CENTER_SPEAKER);
 }
 
+void BadGuy::explode(BadGuy *badguy)
+{
+World::current()->add_bad_guy(badguy->base.x, badguy->base.y, BAD_BOMB);
+badguy->remove_me();
+}
+
 void
 BadGuy::collision(void *p_c_object, int c_object, CollisionType type)
 {
@@ -974,9 +980,7 @@ BadGuy::collision(void *p_c_object, int c_object, CollisionType type)
         if (pbad_c->kind == BAD_MRBOMB)
         {
           // mrbomb transforms into a bomb now
-          World::current()->add_bad_guy(pbad_c->base.x, pbad_c->base.y,
-                                        BAD_BOMB);
-          pbad_c->remove_me();
+          explode(pbad_c);
           return;
         }
         else if (pbad_c->kind != BAD_MRBOMB)
@@ -988,7 +992,14 @@ BadGuy::collision(void *p_c_object, int c_object, CollisionType type)
       /* Kill any badguys that get hit by stalactite */
       else if (kind == BAD_STALACTITE && dying == DYING_NOT)
       {
-        pbad_c->kill_me(50);
+        if (pbad_c->kind == BAD_MRBOMB)
+        {
+          // mrbomb transforms into a bomb now
+          explode(pbad_c);
+          return;
+        }
+        else
+          pbad_c->kill_me(50);
       }
 
       /* When enemies run into eachother, make them change directions */
@@ -1065,6 +1076,7 @@ BadGuy::collision(void *p_c_object, int c_object, CollisionType type)
     }
 }
 
+
 //---------------------------------------------------------------------------
 
 void load_badguy_gfx()