/* 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; } /// label of the ship model inline std::string const &label() const { return shipmodel_label; } /// name of the ship model inline std::string const & name() const { return shipmodel_name; } /// name of the model of the ship inline std::string const & modelname() const { return shipmodel_modelname; } float shipmodel_acceleration; float shipmodel_maxspeed; float shipmodel_turnspeed; std::string shipmodel_label; std::string shipmodel_name; std::string shipmodel_modelname; /// indicates of this model can be equiped with a jump drive bool shipmodel_jumpdrive; static ShipModel *find(const std::string label); /// the ship model registry static std::map registry; typedef std::map::iterator iterator; /// clear the ship model registry static void clear(); /// list the ship model registry static void list(); /// add a new ship model static void add(ShipModel *shipmodel); }; } #endif // __INCLUDED_GAME_SHIPMODEL_H__