From 92bfa759facd47c1e375876c1df4604091811d16 Mon Sep 17 00:00:00 2001 From: Shauren Date: Sun, 17 May 2015 18:06:28 +0200 Subject: Core/Garrisons: Initial work on garrison followers --- src/server/game/Garrison/GarrisonMgr.h | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'src/server/game/Garrison/GarrisonMgr.h') diff --git a/src/server/game/Garrison/GarrisonMgr.h b/src/server/game/Garrison/GarrisonMgr.h index 89fd90f25c3..f037c0867a0 100644 --- a/src/server/game/Garrison/GarrisonMgr.h +++ b/src/server/game/Garrison/GarrisonMgr.h @@ -18,9 +18,14 @@ #ifndef GarrisonMgr_h__ #define GarrisonMgr_h__ +#include "DB2Stores.h" #include -#include "DB2Stores.h" +struct GarrAbilities +{ + std::unordered_set Counters; + std::unordered_set Traits; +}; class GarrisonMgr { @@ -39,6 +44,8 @@ public: bool IsPlotMatchingBuilding(uint32 garrPlotId, uint32 garrBuildingId) const; uint32 GetGarrBuildingPlotInst(uint32 garrBuildingId, uint32 garrSiteLevelPlotInstId) const; GarrBuildingEntry const* GetPreviousLevelBuilding(uint32 buildingType, uint32 currentLevel) const; + uint64 GenerateFollowerDbId(); + std::list RollFollowerAbilities(GarrFollowerEntry const* follower, uint32 quality, uint32 faction, bool initial) const; private: std::unordered_map> _garrisonPlotInstBySiteLevel; @@ -46,6 +53,10 @@ private: std::unordered_map> _garrisonBuildingsByPlot; std::unordered_map _garrisonBuildingPlotInstances; std::unordered_map> _garrisonBuildingsByType; + std::unordered_map _garrisonFollowerAbilities[2]; + std::unordered_set _garrisonFollowerRandomTraits; + + uint64 _followerDbIdGenerator; }; #define sGarrisonMgr GarrisonMgr::Instance() -- cgit v1.2.3