diff options
author | Stijn Buys <ingar@osirion.org> | 2008-09-28 15:05:13 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2008-09-28 15:05:13 +0000 |
commit | fd778219e40c5fbb4d0af1839cbc313caaf10d9d (patch) | |
tree | b6e413f4c1a5ba4091503ba97c784278485d3933 /src/game/base/shipmodel.h | |
parent | bedcff956d253621ec00aa7d2919c22a4c88b0b2 (diff) |
move base game module to new subdirectory
Diffstat (limited to 'src/game/base/shipmodel.h')
-rw-r--r-- | src/game/base/shipmodel.h | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/src/game/base/shipmodel.h b/src/game/base/shipmodel.h new file mode 100644 index 0000000..d92b840 --- /dev/null +++ b/src/game/base/shipmodel.h @@ -0,0 +1,70 @@ +/* + base/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_BASE_SHIPMODEL_H__ +#define __INCLUDED_BASE_SHIPMODEL_H__ + +#include <map> +#include <string> + +namespace base { + +/// 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<std::string, ShipModel *> registry; + + typedef std::map<std::string, ShipModel *>::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_BASE_SHIPMODEL_H__ + |