aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2025-06-08 01:07:44 +0200
committerShauren <shauren.trinity@gmail.com>2025-06-08 01:07:44 +0200
commit0f9a0accf17ba3a9f20d6a7575b51ed2cb09a73c (patch)
tree2a883a8df46b6d90fb2d2cba3edfead398216f94 /src/server/game/Entities
parentaab8cdec35d66e895679d0e2e179331cfe19efc0 (diff)
Core/Misc: Kill AnyPlayerInObjectRangeCheck (duplicate of AnyUnitInObjectRangeCheck)
Diffstat (limited to 'src/server/game/Entities')
-rw-r--r--src/server/game/Entities/GameObject/GameObject.cpp4
-rw-r--r--src/server/game/Entities/Object/Object.cpp23
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*/)