Made buttjump a bit easier to perform
[supertux.git] / src / object / rock.hpp
index 30c75d2..86a8e0e 100644 (file)
@@ -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"
 
 class Sprite;
 
-class Rock : public MovingObject, public Portable, public Serializable
+class Rock : public MovingSprite, public Portable, protected UsesPhysic, public Serializable
 {
 public:
+  Rock(const Vector& pos, std::string spritename);
   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