/* game/shipmodel.h This file is part of the Osirion project and is distributed under the terms and conditions of the GNU General Public License version 2 */ #ifndef __INCLUDED_GAME_SHIPMODEL_H__ #define __INCLUDED_GAME_SHIPMODEL_H__ #include #include namespace game { /// ship model specifications class ShipModel { public: ShipModel(); ~ShipModel(); /// acceleration inline float acceleration() const { return shipmodel_acceleration; } /// maximum speed inline float maxspeed() const { return shipmodel_maxspeed; } /// turn speed in rotations per second inline float turnspeed() const { return shipmodel_turnspeed; } /// name of the model to use inline std::string const & modelname() const { return shipmodel_modelname; } /// name of the ship model inline std::string const & name() const { return shipmodel_name; } float shipmodel_acceleration; float shipmodel_maxspeed; float shipmodel_turnspeed; std::string shipmodel_name; std::string shipmodel_modelname; /// the ship model registry static std::list registry; /// clear the ship model registry static void clear(); /// list the ship model registry static void list(); private: /// add a new ship model static void add(ShipModel *shipmodel); }; } #endif // __INCLUDED_GAME_SHIPMODEL_H__