X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fbadguy%2Fwalking_badguy.hpp;h=f5a7eb6279ff01b3d3beb050620b723572baac3e;hb=788a9153f60fb3d25a52fd184387ebbde7636719;hp=313a5293736d08bca787113dcaf18ffe3787fe2d;hpb=89ecbfcacb9abac599f8feba52792392b8199cf1;p=supertux.git diff --git a/src/badguy/walking_badguy.hpp b/src/badguy/walking_badguy.hpp index 313a52937..f5a7eb627 100644 --- a/src/badguy/walking_badguy.hpp +++ b/src/badguy/walking_badguy.hpp @@ -22,8 +22,10 @@ #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 { @@ -32,7 +34,7 @@ public: WalkingBadguy(const Vector& pos, Direction direction, const std::string& sprite_name, const std::string& walk_left_action, const std::string& walk_right_action, int layer = LAYER_OBJECTS); WalkingBadguy(const lisp::Lisp& reader, const std::string& sprite_name, const std::string& walk_left_action, const std::string& walk_right_action, int layer = LAYER_OBJECTS); - void activate(); + void initialize(); void write(lisp::Writer& writer); void active_update(float elapsed_time); void collision_solid(const CollisionHit& hit); @@ -40,6 +42,9 @@ public: void freeze(); void unfreeze(); + float get_velocity_y() const; + void set_velocity_y(float vy); + protected: void turn_around(); @@ -47,6 +52,8 @@ protected: 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