-void upgrade_init(upgrade_type *pupgrade, float x, float y, int dir, int kind);
-void upgrade_action(upgrade_type *pupgrade);
-void upgrade_draw(upgrade_type *pupgrade);
-void upgrade_collision(upgrade_type *pupgrade, void* p_c_object, int c_object);
+class Bullet : public MovingObject, public Drawable
+{
+public:
+ Bullet(DisplayManager& manager, const Vector& pos, float xm, int dir,
+ int kind);
+
+ virtual void action(float frame_ratio);
+ virtual void draw(Camera& viewport, int layer);
+ void collision(int c_object);
+
+ virtual void collision(const MovingObject& other_object, int type);