/*! -------------------------------------------------------------------- \file missle.h \brief Missle object to fire \author Roy Thompson \date 2002-09-20 $Updated: qsb $ $Date: 2002/12/12 07:22:10 $ // -------------------------------------------------------------------*/ #ifndef __MISSLE_H__ #define __MISSLE_H__ #include #include "m3d.h" #include "spaceship.h" #define theMissles Missle::getInstance() class Missle { public: //! returns a handle to the singleton instance of Missles (use "theMissles") static Missle& getInstance() { if (!s_pMissle) s_pMissle = new Missle(); return *s_pMissle; }; Missle(); void AddMissle(Math3d::M3d pos, Math3d::M3d dir, float spd, float radius, float damage); void Render(); void UpdateState(float timeElapsed); float IsCollision(BoundingVol bvol); void Restart(); protected: // singleton instance static Missle *s_pMissle; struct Missles { Math3d::M3d position; Math3d::M3d lastpos; Math3d::M3d direction; float speed; float distance; float radius; float damage; bool active; Missles *next; }; int lastTime; Missles *frontList; }; #endif