+public:
+ FlyingPlatform(LispReader& reader);
+ FlyingPlatform(int x, int y);
+
+ virtual void write(LispWriter& writer);
+ virtual void action(float frame_ratio);
+ virtual void draw(DrawingContext& context);
+
+ virtual void collision(const MovingObject& other, int);
+ void collision(void *p_c_object, int c_object, CollisionType type);
+
+ float get_vel_x() { return vel_x; }
+ float get_vel_y() { return vel_y; }
+
+ Physic physic;
+ enum { M_NORMAL, M_HELD } mode;
+
+ private:
+ std::vector<int> pos_x;
+ std::vector<int> pos_y;
+ float velocity;
+
+ float vel_x, vel_y; // calculated based in the velocity
+
+ int point;
+ bool move;
+ unsigned int frame;
+};
+
+extern Sprite *img_smoke_cloud;
+
+class SmokeCloud : public GameObject
+{
+public:
+ SmokeCloud(const Vector& pos);