diff options
Diffstat (limited to 'src/server/game/Entities/Object')
| -rw-r--r-- | src/server/game/Entities/Object/Object.cpp | 11 | ||||
| -rw-r--r-- | src/server/game/Entities/Object/Object.h | 1 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index 335df6505a6..04bd4904dee 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -2697,6 +2697,17 @@ void WorldObject::GetCreatureListWithEntryInGrid(std::list<Creature*>& creatureL cell.Visit(pair, visitor, *(this->GetMap()), *this, maxSearchRange); } +void WorldObject::GetPlayerListInGrid(std::list<Player*>& playerList, float maxSearchRange) const +{ + CellCoord pair(Trinity::ComputeCellCoord(this->GetPositionX(), this->GetPositionY())); + Cell cell(pair); + cell.SetNoCreate(); + + Trinity::AnyPlayerInObjectRangeCheck checker(this, maxSearchRange); + Trinity::PlayerListSearcher<Trinity::AnyPlayerInObjectRangeCheck> searcher(this, playerList, checker); + this->VisitNearbyWorldObject(maxSearchRange, searcher); +} + /* namespace Trinity { diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h index 88d8cee9b2f..e8022df5462 100644 --- a/src/server/game/Entities/Object/Object.h +++ b/src/server/game/Entities/Object/Object.h @@ -712,6 +712,7 @@ class WorldObject : public Object, public WorldLocation void GetGameObjectListWithEntryInGrid(std::list<GameObject*>& lList, uint32 uiEntry, float fMaxSearchRange) const; void GetCreatureListWithEntryInGrid(std::list<Creature*>& lList, uint32 uiEntry, float fMaxSearchRange) const; + void GetPlayerListInGrid(std::list<Player*>& lList, float fMaxSearchRange) const; void DestroyForNearbyPlayers(); virtual void UpdateObjectVisibility(bool forced = true); |
