qmax patch to fix bug #0000389 - colors in infoblocks
[supertux.git] / src / badguy / mriceblock.hpp
index 01e693a..ddf3847 100644 (file)
 #ifndef __MRICEBLOCK_H__
 #define __MRICEBLOCK_H__
 
-#include "badguy.hpp"
+#include "walking_badguy.hpp"
 #include "object/portable.hpp"
 
-class MrIceBlock : public BadGuy, public Portable
+class MrIceBlock : public WalkingBadguy, public Portable
 {
 public:
   MrIceBlock(const lisp::Lisp& reader);
   MrIceBlock(const Vector& pos, Direction d);
 
-  void activate();
+  void initialize();
   void write(lisp::Writer& writer);
   HitResponse collision(GameObject& object, const CollisionHit& hit);
   void collision_solid(const CollisionHit& hit);
@@ -37,14 +37,17 @@ public:
   HitResponse collision_player(Player& player, const CollisionHit& hit);
 
   void active_update(float elapsed_time);
-  
+
   void grab(MovingObject& object, const Vector& pos, Direction dir);
   void ungrab(MovingObject& object, Direction dir);
+  bool is_portable() const;
+
+  bool can_break();
 
   virtual MrIceBlock* clone() const { return new MrIceBlock(*this); }
 
 protected:
-  bool collision_squished(Player& player);
+  bool collision_squished(GameObject& object);
 
 private:
   enum IceState {
@@ -55,11 +58,11 @@ private:
   };
 
   void set_state(IceState state);
+
   IceState ice_state;
+  Timer nokick_timer;
   Timer flat_timer;
   int squishcount;
 };
 
 #endif
-