Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2008-09-28 15:05:13 +0000
committerStijn Buys <ingar@osirion.org>2008-09-28 15:05:13 +0000
commitfd778219e40c5fbb4d0af1839cbc313caaf10d9d (patch)
treeb6e413f4c1a5ba4091503ba97c784278485d3933 /src/game/base/shipmodel.h
parentbedcff956d253621ec00aa7d2919c22a4c88b0b2 (diff)
move base game module to new subdirectory
Diffstat (limited to 'src/game/base/shipmodel.h')
-rw-r--r--src/game/base/shipmodel.h70
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__
+