From 0f9a0accf17ba3a9f20d6a7575b51ed2cb09a73c Mon Sep 17 00:00:00 2001 From: Shauren Date: Sun, 8 Jun 2025 01:07:44 +0200 Subject: Core/Misc: Kill AnyPlayerInObjectRangeCheck (duplicate of AnyUnitInObjectRangeCheck) --- src/server/game/Entities/GameObject/GameObject.cpp | 4 ++-- src/server/game/Entities/Object/Object.cpp | 23 ++++++++++------------ src/server/game/Grids/Notifiers/GridNotifiers.h | 22 --------------------- 3 files changed, 12 insertions(+), 37 deletions(-) (limited to 'src/server/game') 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 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 void WorldObject::GetPlayerListInGrid(Container& playerContainer, float maxSearchRange, bool alive /*= true*/) const { - Trinity::AnyPlayerInObjectRangeCheck checker(this, maxSearchRange, alive); - Trinity::PlayerListSearcher 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 targets; - Trinity::AnyPlayerInObjectRangeCheck check(this, GetVisibilityRange(), false); - Trinity::PlayerListSearcher searcher(this, targets, check); - Cell::VisitWorldObjects(this, searcher, GetVisibilityRange()); - for (std::list::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*/) diff --git a/src/server/game/Grids/Notifiers/GridNotifiers.h b/src/server/game/Grids/Notifiers/GridNotifiers.h index 41a74f2fc4c..39ee9374f6c 100644 --- a/src/server/game/Grids/Notifiers/GridNotifiers.h +++ b/src/server/game/Grids/Notifiers/GridNotifiers.h @@ -1599,28 +1599,6 @@ namespace Trinity Customizer& i_customizer; }; - class AnyPlayerInObjectRangeCheck - { - public: - AnyPlayerInObjectRangeCheck(WorldObject const* obj, float range, bool reqAlive = true) : _obj(obj), _range(range), _reqAlive(reqAlive) { } - - bool operator()(Player* u) const - { - if (_reqAlive && !u->IsAlive()) - return false; - - if (!_obj->IsWithinDist(u, _range)) - return false; - - return true; - } - - private: - WorldObject const* _obj; - float _range; - bool _reqAlive; - }; - class AnyPlayerInPositionRangeCheck { public: -- cgit v1.2.3