New sounds: cracking, icecrash, pop, and sizzle.
[supertux.git] / src / badguy / short_fuse.cpp
index db16a61..8b07a3e 100644 (file)
@@ -15,9 +15,9 @@
 //  You should have received a copy of the GNU General Public License
 //  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-#include "audio/sound_manager.hpp"
 #include "badguy/bomb.hpp"
 #include "badguy/short_fuse.hpp"
+#include "object/bullet.hpp"
 #include "object/explosion.hpp"
 #include "object/player.hpp"
 #include "sprite/sprite.hpp"
@@ -35,9 +35,6 @@ ShortFuse::ShortFuse(const Reader& reader) :
   walk_speed = 100;
   max_drop_height = -1;
 
-  //Prevent stutter when Tux jumps on Mr Bomb
-  sound_manager->preload("sounds/explosion.wav");
-
   //Check if we need another sprite
   if( !reader.get( "sprite", sprite_name ) ){
     return;
@@ -50,15 +47,6 @@ ShortFuse::ShortFuse(const Reader& reader) :
   sprite = sprite_manager->create( sprite_name );
 }
 
-/* ShortFuse created by a dispenser always gets default sprite atm.*/
-ShortFuse::ShortFuse(const Vector& pos, Direction d) :
-  WalkingBadguy(pos, d, "images/creatures/short_fuse/short_fuse.sprite", "left", "right")
-{
-  walk_speed = 80;
-  max_drop_height = 16;
-  sound_manager->preload("sounds/explosion.wav");
-}
-
 void
 ShortFuse::explode (void)
 {
@@ -71,6 +59,7 @@ ShortFuse::explode (void)
   explosion->pushes (true);
   Sector::current()->add_object (explosion);
 
+  run_dead_script ();
   remove_me ();
 }
 
@@ -97,5 +86,20 @@ ShortFuse::collision_player (Player& player, const CollisionHit&)
   return ABORT_MOVE;
 }
 
+HitResponse
+ShortFuse::collision_bullet (Bullet& bullet, const CollisionHit& )
+{
+  // All bullets cause the unstable short fuse to explode
+  bullet.remove_me();
+  explode();
+  return ABORT_MOVE;
+}
+
+void
+ShortFuse::kill_fall (void)
+{
+  explode ();
+}
+
 /* vim: set sw=2 sts=2 et : */
 /* EOF */