aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Combat/ThreatManager.cpp11
-rw-r--r--src/server/game/Combat/ThreatManager.h1
2 files changed, 12 insertions, 0 deletions
diff --git a/src/server/game/Combat/ThreatManager.cpp b/src/server/game/Combat/ThreatManager.cpp
index 502031712c4..6852b792422 100644
--- a/src/server/game/Combat/ThreatManager.cpp
+++ b/src/server/game/Combat/ThreatManager.cpp
@@ -281,6 +281,17 @@ size_t ThreatManager::GetThreatListSize() const
return _sortedThreatList->size();
}
+uint32 ThreatManager::GetThreatListPlayerCount(bool includeOffline/* = false*/) const
+{
+ if (includeOffline)
+ return uint32(_sortedThreatList->size());
+ uint32 returnValue = 0;
+ for (ThreatReference const* ref : *_sortedThreatList)
+ if (ref->IsAvailable() && ref->GetOwner()->GetTypeId() == TYPEID_PLAYER)
+ ++returnValue;
+ return returnValue;
+}
+
Trinity::IteratorPair<ThreatManager::ThreatListIterator, std::nullptr_t> ThreatManager::GetUnsortedThreatList() const
{
auto itr = _myThreatListEntries.begin();
diff --git a/src/server/game/Combat/ThreatManager.h b/src/server/game/Combat/ThreatManager.h
index b78a2e59b37..0bcee1427b8 100644
--- a/src/server/game/Combat/ThreatManager.h
+++ b/src/server/game/Combat/ThreatManager.h
@@ -116,6 +116,7 @@ class TC_GAME_API ThreatManager
// returns ThreatReference amount if a ref exists, 0.0f otherwise
float GetThreat(Unit const* who, bool includeOffline = false) const;
size_t GetThreatListSize() const;
+ uint32 GetThreatListPlayerCount(bool includeOffline = false) const;
// fastest of the three threat list getters - gets the threat list in "arbitrary" order
// iterators will invalidate on adding/removing entries from the threat list; slightly less finicky than GetSorted.
Trinity::IteratorPair<ThreatListIterator, std::nullptr_t> GetUnsortedThreatList() const;