From 4ffdf3396d4dec2ca16489154bafe071d9f1fa9b Mon Sep 17 00:00:00 2001 From: Epicurus4 Date: Tue, 10 Feb 2015 22:16:07 -0500 Subject: Added a player searcher This can be used in scripts to search for Player* objects within a given range. --- src/server/game/Entities/Object/Object.cpp | 11 +++++++++++ src/server/game/Entities/Object/Object.h | 1 + 2 files changed, 12 insertions(+) (limited to 'src/server/game/Entities/Object') 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& creatureL cell.Visit(pair, visitor, *(this->GetMap()), *this, maxSearchRange); } +void WorldObject::GetPlayerListInGrid(std::list& playerList, float maxSearchRange) const +{ + CellCoord pair(Trinity::ComputeCellCoord(this->GetPositionX(), this->GetPositionY())); + Cell cell(pair); + cell.SetNoCreate(); + + Trinity::AnyPlayerInObjectRangeCheck checker(this, maxSearchRange); + Trinity::PlayerListSearcher 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& lList, uint32 uiEntry, float fMaxSearchRange) const; void GetCreatureListWithEntryInGrid(std::list& lList, uint32 uiEntry, float fMaxSearchRange) const; + void GetPlayerListInGrid(std::list& lList, float fMaxSearchRange) const; void DestroyForNearbyPlayers(); virtual void UpdateObjectVisibility(bool forced = true); -- cgit v1.2.3 From 408c631b61b766f57849f72e569fb64fbd6ce810 Mon Sep 17 00:00:00 2001 From: Epicurus4 Date: Wed, 11 Feb 2015 00:04:25 -0500 Subject: Remove un-needed code. --- src/server/game/Entities/Object/Object.cpp | 4 ---- 1 file changed, 4 deletions(-) (limited to 'src/server/game/Entities/Object') diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index 04bd4904dee..4d48c96cc92 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -2699,10 +2699,6 @@ void WorldObject::GetCreatureListWithEntryInGrid(std::list& creatureL void WorldObject::GetPlayerListInGrid(std::list& playerList, float maxSearchRange) const { - CellCoord pair(Trinity::ComputeCellCoord(this->GetPositionX(), this->GetPositionY())); - Cell cell(pair); - cell.SetNoCreate(); - Trinity::AnyPlayerInObjectRangeCheck checker(this, maxSearchRange); Trinity::PlayerListSearcher searcher(this, playerList, checker); this->VisitNearbyWorldObject(maxSearchRange, searcher); -- cgit v1.2.3