X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fbadguy%2Fsnail.hpp;h=0d31ca8c401fa546aa0a72ca06dd9b4525935d8c;hb=7a6f00e27bdc0aac2107506c3b00cbf0bf1cccc5;hp=7aff914f054c1aad51acaabbc7a4533639c22f28;hpb=58eb3364f724b2100859fd39da9bba5a9a09cafc;p=supertux.git diff --git a/src/badguy/snail.hpp b/src/badguy/snail.hpp index 7aff914f0..0d31ca8c4 100644 --- a/src/badguy/snail.hpp +++ b/src/badguy/snail.hpp @@ -20,28 +20,29 @@ #ifndef __SNAIL_H__ #define __SNAIL_H__ -#include "badguy.hpp" +#include "walking_badguy.hpp" /** * Badguy "Snail" - a snail-like creature that can be flipped and tossed around at an angle */ -class Snail : public BadGuy +class Snail : public WalkingBadguy { public: Snail(const lisp::Lisp& reader); - Snail(float pos_x, float pos_y, Direction d); + Snail(const Vector& pos, Direction d); - void activate(); + void initialize(); void write(lisp::Writer& writer); - HitResponse collision_solid(GameObject& object, const CollisionHit& hit); + void collision_solid(const CollisionHit& hit); HitResponse collision_badguy(BadGuy& badguy, const CollisionHit& hit); + bool can_break(); void active_update(float elapsed_time); virtual Snail* clone() const { return new Snail(*this); } protected: - bool collision_squished(Player& player); + bool collision_squished(GameObject& object); void be_normal(); /**< switch to state STATE_NORMAL */ void be_flat(); /**< switch to state STATE_FLAT */ void be_kicked(); /**< switch to state STATE_KICKED_DELAY */ @@ -57,9 +58,6 @@ private: Timer flat_timer; /**< wait time until flipping right-side-up again */ Timer kicked_delay_timer; /**< wait time until switching from STATE_KICKED_DELAY to STATE_KICKED */ int squishcount; - bool set_direction; - Direction initial_direction; }; #endif -