aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities
diff options
context:
space:
mode:
authorEpicurus4 <maxmakki2@gmail.com>2015-02-10 22:16:07 -0500
committerEpicurus4 <maxmakki2@gmail.com>2015-02-10 22:16:07 -0500
commit4ffdf3396d4dec2ca16489154bafe071d9f1fa9b (patch)
tree83ed9bcd5505056358b08c35388c2cf43748a6e0 /src/server/game/Entities
parent36963f244279b958d9808aa4e3a420328a53e9ef (diff)
Added a player searcher
This can be used in scripts to search for Player* objects within a given range.
Diffstat (limited to 'src/server/game/Entities')
-rw-r--r--src/server/game/Entities/Object/Object.cpp11
-rw-r--r--src/server/game/Entities/Object/Object.h1
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);