blob: 7940c73e1b8aab0a4836ceb3dd26755435741171 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
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__
|