]> jfr.im git - irc/gameservirc.git/blob - gameserv-2.0/libgameservgldl/include/GameServ/GameLayer/GameObjects/LevelGO.h
Finished out the LevelGO class for now
[irc/gameservirc.git] / gameserv-2.0 / libgameservgldl / include / GameServ / GameLayer / GameObjects / LevelGO.h
1 #ifndef __GS__LEVEL_H__
2 #define __GS__LEVEL_H__
3 #include <GameServ/GameLayer/GameObjects/GameObject.h>
4 using GameServ::GameLayer::GameObjects::GameObject;
5 #include <GameServ/GameLayer/GameObjects/MasterGO.h>
6 using GameServ::GameLayer::GameObjects::MasterGO;
7 #include <GameServ/GameLayer/GameObjects/MonsterGO.h>
8 using GameServ::GameLayer::GameObjects::MonsterGO;
9
10 #include <GameServ/Types.h>
11 using GameServ::Types::ObjectTypes;
12
13 #include <boost/smart_ptr/shared_ptr.hpp>
14 using boost::shared_ptr;
15
16 #include <string>
17 using std::string;
18 #include <vector>
19 using std::vector;
20
21 #include <boost/smart_ptr/shared_ptr.hpp>
22 using boost::shared_ptr;
23
24 namespace GameServ { namespace GameLayer { namespace GameObjects
25 {
26 class LevelGO : public GameObject
27 {
28 public:
29
30 LevelGO();
31 LevelGO(const string &Id);
32
33 virtual ~LevelGO();
34
35 bool operator==(const LevelGO &right) const;
36 bool operator!=(const LevelGO &right) const;
37
38 virtual LevelGO *Clone(void) const;
39
40 virtual ObjectTypes::ObjectType ObjectType(void) const;
41
42 //! Property set - Master
43 void Master(shared_ptr<MasterGO> spMaster);
44
45 //! Property get - Master
46 shared_ptr<MasterGO> Master(void) const;
47
48 //! Property set - Monster list
49 void Monsters(const vector< shared_ptr<MonsterGO> > &spMonsters);
50
51 //! Property get - Monster List
52 vector< shared_ptr<MonsterGO> > Monsters(void) const;
53
54 //! Remove a monster from the list
55 void RemoveMonster(shared_ptr<MonsterGO> spMonster);
56
57 //! Add a monster to the list
58 void AddMonster(shared_ptr<MonsterGO> spMonster);
59
60 private:
61
62 vector< shared_ptr<MonsterGO> > mspMonsters;
63 shared_ptr<MasterGO> mspMaster;
64
65 };
66 }}} // GameServ::GameLayer::GameObjects
67 #endif