diff options
author | Shauren <shauren.trinity@gmail.com> | 2025-06-08 01:07:44 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2025-06-08 01:07:44 +0200 |
commit | 0f9a0accf17ba3a9f20d6a7575b51ed2cb09a73c (patch) | |
tree | 2a883a8df46b6d90fb2d2cba3edfead398216f94 /src/server/game/Entities | |
parent | aab8cdec35d66e895679d0e2e179331cfe19efc0 (diff) |
Core/Misc: Kill AnyPlayerInObjectRangeCheck (duplicate of AnyUnitInObjectRangeCheck)
Diffstat (limited to 'src/server/game/Entities')
-rw-r--r-- | src/server/game/Entities/GameObject/GameObject.cpp | 4 | ||||
-rw-r--r-- | src/server/game/Entities/Object/Object.cpp | 23 |
2 files changed, 12 insertions, 15 deletions
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index e8bb99ffb01..731bc5c7991 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -1472,8 +1472,8 @@ void GameObject::Update(uint32 diff) { // Environmental trap: Any player Player* player = nullptr; - Trinity::AnyPlayerInObjectRangeCheck checker(this, radius); - Trinity::PlayerSearcher<Trinity::AnyPlayerInObjectRangeCheck> searcher(this, player, checker); + Trinity::AnyUnitInObjectRangeCheck checker(this, radius); + Trinity::PlayerSearcher searcher(this, player, checker); Cell::VisitWorldObjects(this, searcher, radius); target = player; } diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index 26e3c8585f3..cdaf87c80a9 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -3452,8 +3452,8 @@ void WorldObject::GetCreatureListWithOptionsInGrid(Container& creatureContainer, template <typename Container> void WorldObject::GetPlayerListInGrid(Container& playerContainer, float maxSearchRange, bool alive /*= true*/) const { - Trinity::AnyPlayerInObjectRangeCheck checker(this, maxSearchRange, alive); - Trinity::PlayerListSearcher<Trinity::AnyPlayerInObjectRangeCheck> searcher(this, playerContainer, checker); + Trinity::AnyUnitInObjectRangeCheck checker(this, maxSearchRange, true, alive); + Trinity::PlayerListSearcher searcher(this, playerContainer, checker); Cell::VisitWorldObjects(this, searcher, maxSearchRange); } @@ -3746,26 +3746,23 @@ void WorldObject::DestroyForNearbyPlayers() if (!IsInWorld()) return; - std::list<Player*> targets; - Trinity::AnyPlayerInObjectRangeCheck check(this, GetVisibilityRange(), false); - Trinity::PlayerListSearcher<Trinity::AnyPlayerInObjectRangeCheck> searcher(this, targets, check); - Cell::VisitWorldObjects(this, searcher, GetVisibilityRange()); - for (std::list<Player*>::const_iterator iter = targets.begin(); iter != targets.end(); ++iter) + auto destroyer = [this](Player* player) { - Player* player = (*iter); - if (player == this) - continue; + return; if (!player->HaveAtClient(this)) - continue; + return; if (Unit const* unit = ToUnit(); unit && unit->GetCharmerGUID() == player->GetGUID()) /// @todo this is for puppet - continue; + return; DestroyForPlayer(player); player->m_clientGUIDs.erase(GetGUID()); - } + }; + + Trinity::PlayerDistWorker worker(this, GetVisibilityRange(), destroyer); + Cell::VisitWorldObjects(this, worker, GetVisibilityRange()); } void WorldObject::UpdateObjectVisibility(bool /*forced*/) |