EvEmu  0.8.4
11 September 2021
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
AnomalyMgr.h
Go to the documentation of this file.
1 
10 #ifndef EVEMU_SYSTEM_ANOMALYMGR_H_
11 #define EVEMU_SYSTEM_ANOMALYMGR_H_
12 
13 /* this class is in charge of creating/destroying and maintaining
14  * anomaly types in it's system.
15  *
16  * a new iteration of this class is created for each system as that system is booted.
17  */
18 
19 #include "system/SystemGPoint.h"
21 
22 
23 class DungeonMgr;
24 class BeltMgr;
25 class PyServiceMgr;
26 class SpawnMgr;
27 class SystemManager;
28 
30 {
31  public:
33  ~AnomalyMgr();
34 
35  bool Init(BeltMgr* beltMgr, DungeonMgr* dungMgr, SpawnMgr* spawnMgr);
36  void Close();
37  void Process();
38 
39  void SaveAnomaly();
40  void CreateAnomaly(int8 typeID=0);
41  void LoadAnomalies();
42 
43  // assign sigID and add to anom list to allow showing on scanner
44  void AddSignal(SystemEntity* pSE, uint32 id = 0);
46  // list for ship scanner
47  void GetAnomalyList(std::vector< CosmicSignature >& sig);
48  // list for probe
49  void GetSignatureList(std::vector< CosmicSignature >& sig);
50 
51  uint32 GetAnomalyID(std::string& sigID);
52  GPoint GetAnomalyPos(std::string& sigID);
53 
54  const char* GetScanGroupName(uint8 groupID=0);
55 
56 protected:
60 
62 
63 private:
64  /* we do not own any of these (our sysmgr does) */
70 
73 
75 
76  // internal data counters hard-capped at 256/128
77  uint8 m_maxSigs; // max total for this system
78  uint8 m_Sigs; // total probe-needed items, hard-capped at 256
79  // these should be fine soft-capped at 128
80  int8 m_WH; // < 0 means "not allowed"
81  int8 m_Grav; // < 0 means "not allowed"
82  int8 m_Mag; // < 0 means "not allowed"
83  int8 m_Ladar; // < 0 means "not allowed"
84  int8 m_Radar; // < 0 means "not allowed"
85  // simple combat sites, no probe needed
86  int8 m_Unrated; // < 0 means "not allowed"
87  // DED sites
88  int8 m_Complex; // < 0 means "not allowed"
89  // system total, including pos, wrecks, ships. 65535 *should* be large enough
90  uint16 m_Anoms; // this counts signals added thru sysmgr also
91 
92 
93  std::map<uint32, CosmicSignature> m_sigByItemID; // signatures in system - need probes to scan down
94  std::map<uint32, CosmicSignature> m_anomByItemID; // anomalies in system - no probes needed
95  std::map<std::string, CosmicSignature> m_sigBySigID; // map for all signatures in system
96 
97 };
98 
99 #endif // EVEMU_SYSTEM_ANOMALYMGR_H_
bool Init(BeltMgr *beltMgr, DungeonMgr *dungMgr, SpawnMgr *spawnMgr)
Definition: AnomalyMgr.cpp:78
unsigned __int8 uint8
Definition: eve-compat.h:46
bool m_initalized
Definition: AnomalyMgr.h:74
void GetSignatureList(std::vector< CosmicSignature > &sig)
Definition: AnomalyMgr.cpp:192
AnomalyMgr(SystemManager *mgr, PyServiceMgr &svc)
Definition: AnomalyMgr.cpp:49
int8 m_Complex
Definition: AnomalyMgr.h:88
ManagerDB m_mdb
Definition: AnomalyMgr.h:57
SpawnMgr * m_spawnMgr
Definition: AnomalyMgr.h:67
const char * GetScanGroupName(uint8 groupID=0)
Definition: AnomalyMgr.cpp:539
SystemGPoint m_gp
Definition: AnomalyMgr.h:59
std::map< std::string, CosmicSignature > m_sigBySigID
Definition: AnomalyMgr.h:95
int8 m_Radar
Definition: AnomalyMgr.h:84
Timer m_procTimer
Definition: AnomalyMgr.h:72
uint8 GetDungeonType()
Definition: AnomalyMgr.cpp:339
void Process()
Definition: AnomalyMgr.cpp:156
signed __int8 int8
Definition: eve-compat.h:45
PyServiceMgr & m_services
Definition: AnomalyMgr.h:69
ServiceDB m_sdb
Definition: AnomalyMgr.h:58
int8 m_Ladar
Definition: AnomalyMgr.h:83
uint8 m_maxSigs
Definition: AnomalyMgr.h:77
Definition: gpoint.h:33
int8 m_WH
Definition: AnomalyMgr.h:80
uint32 GetAnomalyID(std::string &sigID)
Definition: AnomalyMgr.cpp:403
std::map< uint32, CosmicSignature > m_anomByItemID
Definition: AnomalyMgr.h:94
GPoint GetAnomalyPos(std::string &sigID)
Definition: AnomalyMgr.cpp:411
void Close()
Definition: AnomalyMgr.cpp:171
BeltMgr * m_beltMgr
Definition: AnomalyMgr.h:65
unsigned __int32 uint32
Definition: eve-compat.h:50
void GetAnomalyList(std::vector< CosmicSignature > &sig)
Definition: AnomalyMgr.cpp:200
SystemManager * m_system
Definition: AnomalyMgr.h:68
void LoadAnomalies()
Definition: AnomalyMgr.cpp:176
void AddSignal(SystemEntity *pSE, uint32 id=0)
Definition: AnomalyMgr.cpp:422
void CreateAnomaly(int8 typeID=0)
Definition: AnomalyMgr.cpp:207
typeID Spawn an NPC with the specified type text Search for items matching the specified query() type()() itemID() copy() materialLevel()() itemID(attributeID)-Retrieves attribute value." ) COMMAND( setattr
void RemoveSignal(uint32 itemID)
Definition: AnomalyMgr.cpp:518
int8 m_Mag
Definition: AnomalyMgr.h:82
Definition: timer.h:30
uint16 m_Anoms
Definition: AnomalyMgr.h:90
unsigned __int16 uint16
Definition: eve-compat.h:48
uint8 m_Sigs
Definition: AnomalyMgr.h:78
std::map< uint32, CosmicSignature > m_sigByItemID
Definition: AnomalyMgr.h:93
int8 m_Unrated
Definition: AnomalyMgr.h:86
int8 m_Grav
Definition: AnomalyMgr.h:81
DungeonMgr * m_dungMgr
Definition: AnomalyMgr.h:66
Timer m_spawnTimer
Definition: AnomalyMgr.h:71
void SaveAnomaly()
Definition: AnomalyMgr.cpp:184