Consolidated code for walkingflame and swalking flame, added new dormant state
[supertux.git] / src / badguy / walkingflame.hpp
index 7b782ed..69e2e54 100644 (file)
@@ -24,6 +24,9 @@ class WalkingFlame : public WalkingBadguy
 public:
   WalkingFlame(const Reader& reader);
 
+  void collision_solid(const CollisionHit& hit);
+  HitResponse collision_badguy(BadGuy& badguy, const CollisionHit& hit);
+  void active_update(float elapsed_time);
   void draw(DrawingContext& context);
 
   void freeze();
@@ -34,35 +37,31 @@ public:
 
 private:
   SpritePtr lightsprite;
+
+protected:
+  enum SState {
+    STATE_SLEEPING,
+    STATE_WAKING,
+    STATE_WALKING,
+    STATE_DORMANT
+  };
+  SState state;
 };
 
-class SWalkingFlame : public WalkingBadguy
+class SWalkingFlame : public WalkingFlame
 {
 public:
   SWalkingFlame(const Reader& reader);
 
   void initialize();
-  void collision_solid(const CollisionHit& hit);
-  HitResponse collision_badguy(BadGuy& badguy, const CollisionHit& hit);
-  void active_update(float elapsed_time);
-  void draw(DrawingContext& context);
-
-  void freeze();
-  bool is_freezable() const;
-  bool is_flammable() const;
+};
 
-  virtual void kill_fall();
+class DWalkingFlame : public WalkingFlame
+{
+public:
+  DWalkingFlame(const Reader& reader);
   
-protected:
-  enum SState {
-    STATE_SLEEPING,
-    STATE_WAKING,
-    STATE_WALKING
-  };
-  SState state;
-
-private:
-  SpritePtr lightsprite;
+  void initialize();
 };
 
 #endif