diff options
| author | ccrs <ccrs@users.noreply.github.com> | 2025-10-14 18:14:25 +0200 |
|---|---|---|
| committer | ccrs <ccrs@users.noreply.github.com> | 2025-10-14 20:02:01 +0200 |
| commit | 100790c0e22c2cf597bccd33971c6d1b856b8087 (patch) | |
| tree | 03aa593ec1e4bd831ca8d0fb5d3804154a5985c7 | |
| parent | 9e53591e98401c55b4c75d2b7f9af4f9353d88fa (diff) | |
Core/Combat: add new getter to count Players in the threatlist
| -rw-r--r-- | src/server/game/Combat/ThreatManager.cpp | 11 | ||||
| -rw-r--r-- | src/server/game/Combat/ThreatManager.h | 1 |
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; |
