aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Garrison/Garrison.h
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2019-11-14 15:12:08 +0100
committerShauren <shauren.trinity@gmail.com>2019-11-14 15:12:08 +0100
commit36d6959ae6a945408d32a62390ae14e6f956dde2 (patch)
treefdd6dee8e6969f08cfa049db23003c673e0da71b /src/server/game/Garrison/Garrison.h
parentbab99b4054981978e1efa60567d748806f594216 (diff)
Core/Garrison: Add more functions to get garrison data
Diffstat (limited to 'src/server/game/Garrison/Garrison.h')
-rw-r--r--src/server/game/Garrison/Garrison.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/server/game/Garrison/Garrison.h b/src/server/game/Garrison/Garrison.h
index 295d4119565..0dd41482ec7 100644
--- a/src/server/game/Garrison/Garrison.h
+++ b/src/server/game/Garrison/Garrison.h
@@ -191,7 +191,7 @@ public:
{
GameObject* CreateGameObject(Map* map, GarrisonFactionIndex faction);
void DeleteGameObject(Map* map);
- void ClearBuildingInfo(Player* owner);
+ void ClearBuildingInfo(GarrisonType garrisonType, Player* owner);
void SetBuildingInfo(WorldPackets::Garrison::GarrisonBuildingInfo const& buildingInfo, Player* owner);
WorldPackets::Garrison::GarrisonPlotInfo PacketInfo;
@@ -223,6 +223,8 @@ public:
void Leave() const;
GarrisonFactionIndex GetFaction() const;
+ GarrisonType GetType() const { return GARRISON_TYPE_GARRISON; }
+ GarrSiteLevelEntry const* GetSiteLevel() const { return _siteLevel; }
// Plots
std::vector<Plot*> GetPlots();
@@ -232,6 +234,7 @@ public:
// Buildings
void LearnBlueprint(uint32 garrBuildingId);
void UnlearnBlueprint(uint32 garrBuildingId);
+ bool HasBlueprint(uint32 garrBuildingId) const { return _knownBuildings.find(garrBuildingId) != _knownBuildings.end(); }
void PlaceBuilding(uint32 garrPlotInstanceId, uint32 garrBuildingId);
void CancelBuildingConstruction(uint32 garrPlotInstanceId);
void ActivateBuilding(uint32 garrPlotInstanceId);
@@ -239,6 +242,16 @@ public:
// Followers
void AddFollower(uint32 garrFollowerId);
Follower const* GetFollower(uint64 dbId) const;
+ template<typename Predicate>
+ uint32 CountFollowers(Predicate&& predicate) const
+ {
+ uint32 count = 0;
+ for (auto itr = _followers.begin(); itr != _followers.end(); ++itr)
+ if (predicate(itr->second))
+ ++count;
+
+ return count;
+ }
void SendInfo();
void SendRemoteInfo() const;