From 5bbbdc24293ad1138a0b93628f7d28f8b249b92d Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Sun, 25 Jan 2015 20:24:40 +0000 Subject: Added support for default player characters when joining a game. --- src/game/base/character.h | 119 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 src/game/base/character.h (limited to 'src/game/base/character.h') 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__ + -- cgit v1.2.3