Added new "Explosion" object
[supertux.git] / src / badguy / root.hpp
index 93d641e..d693f23 100644 (file)
 #ifndef __ROOT_H__
 #define __ROOT_H__
 
+#include <memory>
 #include "badguy.hpp"
 
+class Timer;
+
 class Root : public BadGuy
 {
 public:
@@ -28,11 +31,21 @@ public:
   ~Root();
 
   void activate();
+  void deactivate();
   void active_update(float elapsed_time);
+  virtual void draw(DrawingContext& context);
+  virtual bool is_flammable() const { return false; }
+  virtual bool is_freezable() const { return false; }
+  virtual void kill_fall() { }
 
-private:
-  float ypos;
-  float speed;
+protected:
+  enum MyState {
+    STATE_APPEARING, STATE_HATCHING, STATE_GROWING, STATE_SHRINKING, STATE_VANISHING
+  };
+  MyState mystate;
+  std::auto_ptr<Sprite> base_sprite;
+  float offset_y;
+  Timer hatch_timer;
 };
 
 #endif