X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fobject%2Frock.hpp;h=099d7caced33b8dc9c892a055e16dc4c97087e38;hb=4587bd9c8fc5cbb20f1e442de76bc06571ab56ba;hp=30c75d26bc34fef5930f670456215e8fc1f67de4;hpb=07ddaed2a657e4d2a3d038fed223fc5827159caf;p=supertux.git diff --git a/src/object/rock.hpp b/src/object/rock.hpp index 30c75d26b..099d7cace 100644 --- a/src/object/rock.hpp +++ b/src/object/rock.hpp @@ -20,7 +20,7 @@ #ifndef __ROCK_H__ #define __ROCK_H__ -#include "moving_object.hpp" +#include "object/moving_sprite.hpp" #include "physic.hpp" #include "lisp/lisp.hpp" #include "portable.hpp" @@ -28,23 +28,25 @@ class Sprite; -class Rock : public MovingObject, public Portable, public Serializable +class Rock : public MovingSprite, public Portable, protected UsesPhysic, public Serializable { public: Rock(const lisp::Lisp& reader); - virtual ~Rock(); + Rock(const lisp::Lisp& reader, std::string spritename); + virtual Rock* clone() const { return new Rock(*this); } + void collision_solid(const CollisionHit& hit); HitResponse collision(GameObject& other, const CollisionHit& hit); void update(float elapsed_time); - void draw(DrawingContext& context); void write(lisp::Writer& writer); - + void grab(MovingObject& object, const Vector& pos, Direction dir); + void ungrab(MovingObject& object, Direction dir); -private: +protected: + bool on_ground; bool grabbed; - Sprite* sprite; - Physic physic; + Vector last_movement; }; #endif