Made short_fuse explode when hit with bullets of all types
authorLMH <lmh.0013@gmail.com>
Mon, 2 Sep 2013 19:15:09 +0000 (09:15 -1000)
committerLMH <lmh.0013@gmail.com>
Mon, 2 Sep 2013 19:15:09 +0000 (09:15 -1000)
src/badguy/short_fuse.cpp
src/badguy/short_fuse.hpp

index d36c54d..127691f 100644 (file)
@@ -18,6 +18,7 @@
 #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"
@@ -50,15 +51,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)
 {
@@ -98,6 +90,15 @@ 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)
 {
index 4c90fb6..f14cca7 100644 (file)
@@ -24,10 +24,10 @@ class ShortFuse : public WalkingBadguy
 {
 public:
   ShortFuse(const Reader& reader);
-  ShortFuse(const Vector& pos, Direction d);
 
 protected:
   HitResponse collision_player (Player& player, const CollisionHit& hit);
+  HitResponse collision_bullet (Bullet& bullet, const CollisionHit& );
   bool collision_squished (GameObject& object);
   void kill_fall (void);
   void explode (void);