/* 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__