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/AI/ScriptedAI/ScriptedCreature.cpp | 5 +++++ src/server/game/AI/ScriptedAI/ScriptedCreature.h | 1 + src/server/game/Entities/Object/Object.cpp | 11 +++++++++++ src/server/game/Entities/Object/Object.h | 1 + 4 files changed, 18 insertions(+) (limited to 'src') diff --git a/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp b/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp index 1a0f0b649c2..a03c4039e91 100644 --- a/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp +++ b/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp @@ -677,3 +677,8 @@ void GetGameObjectListWithEntryInGrid(std::list& list, WorldObject* { source->GetGameObjectListWithEntryInGrid(list, entry, maxSearchRange); } + +void GetPlayerListInGrid(std::list& list, WorldObject* source, float maxSearchRange) +{ + source->GetPlayerListInGrid(list, maxSearchRange); +} diff --git a/src/server/game/AI/ScriptedAI/ScriptedCreature.h b/src/server/game/AI/ScriptedAI/ScriptedCreature.h index 9b92840ecf0..5763f3a47da 100644 --- a/src/server/game/AI/ScriptedAI/ScriptedCreature.h +++ b/src/server/game/AI/ScriptedAI/ScriptedCreature.h @@ -423,5 +423,6 @@ Creature* GetClosestCreatureWithEntry(WorldObject* source, uint32 entry, float m GameObject* GetClosestGameObjectWithEntry(WorldObject* source, uint32 entry, float maxSearchRange); void GetCreatureListWithEntryInGrid(std::list& list, WorldObject* source, uint32 entry, float maxSearchRange); void GetGameObjectListWithEntryInGrid(std::list& list, WorldObject* source, uint32 entry, float maxSearchRange); +void GetPlayerListInGrid(std::list& list, WorldObject* source, float maxSearchRange); #endif // SCRIPTEDCREATURE_H_ 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') 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