EvEmu  0.8.4
11 September 2021
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
DungeonMgr.h
Go to the documentation of this file.
1 
13 #ifndef _EVEMU_SYSTEM_DUNGEONMGR_H
14 #define _EVEMU_SYSTEM_DUNGEONMGR_H
15 
16 #include <unordered_map>
17 #include "EVE_Dungeon.h"
18 #include "system/SystemGPoint.h"
19 #include "system/SystemManager.h"
21 
22 
23 /*
24  * struct Dungeon::ActiveData {
25  * uint32 systemID;
26  * uint32 dungeonID;
27  * uint8 dunTemplateID;
28  * int64 dunExpiryTime;
29  * uint8 state;
30  * double x;
31  * double y;
32  * double z;
33  * };
34  */
35 
36 // this class is a singleton object to have a common place for all dungeon template data
38 : public Singleton< DungeonDataMgr >
39 {
40 public:
42  ~DungeonDataMgr() { /* nothing do to yet */ }
43 
44  // Initializes the Table:
45  int Initialize();
46 
47  void AddDungeon(Dungeon::ActiveData& dungeon);
48  void GetDungeons(std::vector<Dungeon::ActiveData>& dunList);
49 
50  bool GetTemplate(uint32 templateID, Dungeon::Template& dTemplate);
51 
53 
54  const char* GetDungeonType(int8 typeID);
55 
56 protected:
57  typedef std::map<uint32, Dungeon::Template> DunTemplateDef; //templateID/data
58  typedef std::unordered_multimap<uint32, Dungeon::ActiveData> ActiveDungeonDef; //systemID/data
59  typedef std::unordered_multimap<uint32, Dungeon::RoomData> DunRoomsDef; //roomID/data
60  typedef std::unordered_multimap<uint32, Dungeon::EntryData> DunEntryDef; //entryID/data
61  typedef std::unordered_multimap<uint32, Dungeon::GroupData> DunGroupsDef; //groupID/data
62 
63  DunTemplateDef templates; // templateID/data
64 
65 public:
66  ActiveDungeonDef activeDungeons; // systemID/data
67  DunEntryDef entrys; // entryID/data
68  DunRoomsDef rooms; // roomID/data
69  DunGroupsDef groups; // groupID/data
70 
71 private:
72  void Populate();
73 
75 
76 };
77 
78 #define sDunDataMgr \
79 ( DungeonDataMgr::get() )
80 
81 /* this class is in charge of creating/destroying and maintaining
82  * dungeons in a system.
83  *
84  * a new iteration of this class is created for each system as that system is booted.
85  */
86 
87 class AnomalyMgr;
88 class SpawnMgr;
89 class PyServiceMgr;
90 
91 class DungeonMgr {
92 public:
94  ~DungeonMgr();
95 
96 
97  bool Init(AnomalyMgr* anomMgr, SpawnMgr* spawnMgr);
98  void Process();
99  void Load();
100 
101  bool MakeDungeon(CosmicSignature& sig);
102 
103  bool Create(uint32 templateID, CosmicSignature& sig);
104 
105 protected:
108 
109  void CreateDeco(uint32 templateID, CosmicSignature& sig);
110 
111  /* we do not own any of these */
112 private:
114 
119 
120  int8 GetFaction(uint32 factionID);
121  int8 GetRandLevel();
122 
123  void AddDecoToVector(uint8 dunType, uint32 templateID, std::vector<uint16>& groupVec);
124 
125 
126  std::vector<Dungeon::GroupData> m_anomalyItems;
127 
128  std::map<uint32, std::vector<uint32>> m_dungeonList; // this holds all items associated with the key 'dungeonID' in this system
129 
130 };
131 
132 #endif // _EVEMU_SYSTEM_DUNGEONMGR_H
bool Init(AnomalyMgr *anomMgr, SpawnMgr *spawnMgr)
Definition: DungeonMgr.cpp:182
unsigned __int8 uint8
Definition: eve-compat.h:46
std::map< uint32, Dungeon::Template > DunTemplateDef
Definition: DungeonMgr.h:57
SystemGPoint m_gp
Definition: DungeonMgr.h:107
std::unordered_multimap< uint32, Dungeon::RoomData > DunRoomsDef
Definition: DungeonMgr.h:59
bool MakeDungeon(CosmicSignature &sig)
Definition: DungeonMgr.cpp:417
void Process()
Definition: DungeonMgr.cpp:228
void GetDungeons(std::vector< Dungeon::ActiveData > &dunList)
Definition: DungeonMgr.cpp:127
DunEntryDef entrys
Definition: DungeonMgr.h:67
bool Create(uint32 templateID, CosmicSignature &sig)
Definition: DungeonMgr.cpp:257
signed __int8 int8
Definition: eve-compat.h:45
DunTemplateDef templates
Definition: DungeonMgr.h:63
std::map< uint32, std::vector< uint32 > > m_dungeonList
Definition: DungeonMgr.h:128
SystemManager * m_system
Definition: DungeonMgr.h:117
uint32 GetDungeonID()
Definition: DungeonMgr.h:52
std::vector< Dungeon::GroupData > m_anomalyItems
Definition: DungeonMgr.h:126
DunRoomsDef rooms
Definition: DungeonMgr.h:68
ManagerDB m_db
Definition: DungeonMgr.h:106
void AddDecoToVector(uint8 dunType, uint32 templateID, std::vector< uint16 > &groupVec)
Definition: DungeonMgr.cpp:782
PyServiceMgr & m_services
Definition: DungeonMgr.h:118
void Load()
Definition: DungeonMgr.cpp:235
void CreateDeco(uint32 templateID, CosmicSignature &sig)
Definition: DungeonMgr.cpp:651
bool m_initalized
Definition: DungeonMgr.h:113
bool GetTemplate(uint32 templateID, Dungeon::Template &dTemplate)
Definition: DungeonMgr.cpp:133
unsigned __int32 uint32
Definition: eve-compat.h:50
AnomalyMgr * m_anomMgr
Definition: DungeonMgr.h:115
ActiveDungeonDef activeDungeons
Definition: DungeonMgr.h:66
uint32 m_dungeonID
Definition: DungeonMgr.h:74
void AddDungeon(Dungeon::ActiveData &dungeon)
Definition: DungeonMgr.cpp:120
DungeonMgr(SystemManager *system, PyServiceMgr &svc)
Definition: DungeonMgr.cpp:161
std::unordered_multimap< uint32, Dungeon::ActiveData > ActiveDungeonDef
Definition: DungeonMgr.h:58
const char * GetDungeonType(int8 typeID)
Definition: DungeonMgr.cpp:143
Template used for singleton classes.
Definition: Singleton.h:43
int8 GetRandLevel()
Definition: DungeonMgr.cpp:620
int8 GetFaction(uint32 factionID)
Definition: DungeonMgr.cpp:599
std::unordered_multimap< uint32, Dungeon::EntryData > DunEntryDef
Definition: DungeonMgr.h:60
SpawnMgr * m_spawnMgr
Definition: DungeonMgr.h:116
std::unordered_multimap< uint32, Dungeon::GroupData > DunGroupsDef
Definition: DungeonMgr.h:61
DunGroupsDef groups
Definition: DungeonMgr.h:69