Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/base/platform.h')
-rw-r--r--src/game/base/platform.h75
1 files changed, 75 insertions, 0 deletions
diff --git a/src/game/base/platform.h b/src/game/base/platform.h
new file mode 100644
index 0000000..3a8bddf
--- /dev/null
+++ b/src/game/base/platform.h
@@ -0,0 +1,75 @@
+/*
+ base/platform.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_PLATFORM_H__
+#define __INCLUDED_BASE_PLATFORM_H__
+
+#include "base/weapon.h"
+
+namespace game
+{
+
+/**
+ * @brief a weapons platform
+ * This class also serves as base class for the Station class,
+ **/
+class Platform : public core::Entity
+{
+public:
+ /**
+ * @brief constructor
+ * */
+ Platform();
+
+ /**
+ * @brief destructor
+ * */
+ virtual ~Platform();
+
+ /* -- inspectors ------------------------------------------- */
+
+ /**
+ * @brief the type of cannons the Platform will use
+ * */
+ inline const Weapon *cannon() const
+ {
+ return platform_cannon;
+ }
+
+ /**
+ * @brief the type of turrets the Platform will use
+ * */
+ inline const Weapon *turret() const
+ {
+ return platform_turret;
+ }
+
+ /* -- mutators --------------------------------------------- */
+
+ /**
+ * @brief set the type of cannons the Platform will use
+ * */
+ void set_cannon(const Weapon *cannon);
+
+ /**
+ * @brief set the type of turrets the Platform will use
+ * */
+ void set_turret(const Weapon *turret);
+
+ /**
+ * @brief run a game frame
+ * */
+ virtual void frame(const unsigned long elapsed);
+
+private:
+ const Weapon *platform_cannon;
+ const Weapon *platform_turret;
+};
+
+}
+
+#endif // __INCLUDED_BASE_SHIPDEALER_H__
+