Badguys that die will still trigger collisions during the current frame (closes issue 50)
[supertux.git] / src / badguy / walking_badguy.hpp
index 98d694f..3200cb7 100644 (file)
 
 #include "badguy.hpp"
 
+class Timer;
+
 /**
- * Baseclass for a Badguy that just walks around.
+ * Base class for Badguys that walk on the floor.
  */
 class WalkingBadguy : public BadGuy
 {
@@ -37,14 +39,21 @@ public:
   void active_update(float elapsed_time);
   void collision_solid(const CollisionHit& hit);
   HitResponse collision_badguy(BadGuy& badguy, const CollisionHit& hit);
+  void freeze();
+  void unfreeze();
+
+  float get_velocity_y() const;
+  void set_velocity_y(float vy);
 
 protected:
-  void turn_around(); 
+  void turn_around();
 
   std::string walk_left_action;
   std::string walk_right_action;
   float walk_speed;
   int max_drop_height; /**< Maximum height of drop before we will turn around, or -1 to just drop from any ledge */
+  Timer turn_around_timer;
+  int turn_around_counter; /**< counts number of turns since turn_around_timer was started */
 };
 
 #endif