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/character.h')
-rw-r--r--src/game/base/character.h119
1 files changed, 119 insertions, 0 deletions
diff --git a/src/game/base/character.h b/src/game/base/character.h
new file mode 100644
index 0000000..7940c73
--- /dev/null
+++ b/src/game/base/character.h
@@ -0,0 +1,119 @@
+/*
+ base/character.h
+ This file is part of the Osirion project and is distributed under
+ the terms of the GNU General Public License version 2
+*/
+
+#ifndef __INCLUDED_BASE_CHARACTER_H__
+#define __INCLUDED_BASE_CHARACTER_H__
+
+#include "core/label.h"
+#include "core/level.h"
+
+namespace core
+{
+
+class Entity;
+
+}; // namespace core
+
+namespace game
+{
+
+class Faction;
+class ShipModel;
+class Weapon;
+
+/**
+ * @brief contaisn default settings for new Player or NPC characters.
+ * */
+class Character : public core::Label
+{
+public:
+ /**
+ * @brief default constructor
+ * */
+ Character();
+ /**
+ * @brief copy constructor
+ * */
+ Character(const Character & other);
+ /**
+ * @brief destructor
+ * */
+ ~Character();
+
+ /* --- inspectors ------------------------------------------ */
+
+ inline core::Entity *spawn() const
+ {
+ return _spawn;
+ }
+
+ inline const Faction *faction() const
+ {
+ return _faction;
+ }
+
+ inline const ShipModel *shipmodel() const
+ {
+ return _shipmodel;
+ }
+
+ inline const Weapon *cannon() const
+ {
+ return _cannon;
+ }
+
+ inline const Weapon *turret() const
+ {
+ return _turret;
+ }
+
+ inline const core::Level level() const
+ {
+ return _level;
+ }
+
+ inline const long credits() const
+ {
+ return _credits;
+ }
+
+ /* --- mutators -------------------------------------------- */
+
+ void set_spawn(core::Entity *spawn);
+
+ void set_faction(const Faction *faction);
+
+ void set_shipmodel(const ShipModel *shipmodel);
+
+ void set_cannon(const Weapon *cannon);
+
+ void set_turret(const Weapon *turret);
+
+ void set_level(const core::Level level);
+
+ void set_credits(const long credits);
+
+ /* --- actors ---------------------------------------------- */
+
+private:
+ core::Entity *_spawn;
+
+ const Faction *_faction;
+
+ const ShipModel *_shipmodel;
+ const Weapon *_cannon;
+ const Weapon *_turret;
+
+ core::Level _level;
+
+ long _credits;
+
+}; // class Character
+
+} // namespace game
+
+#endif // __INCLUDED_BASE_CHARACTER_H__
+