aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2017-05-13 19:37:33 +0200
committerShauren <shauren.trinity@gmail.com>2017-05-13 19:37:33 +0200
commit9299e9bde087af7e5d777d5a55a3b79d2b63c48e (patch)
tree4d3e436ae21faf28154be8a70fd7d23c1b7692f0 /src/server/game/Entities
parent229c78b5a38dc58e14f4912de49437b68341452b (diff)
Core/Grids: Ported cmangos/mangos-wotlk@ea99457e50790acde8928aa0f3dc4a9c096b4a8c
Diffstat (limited to 'src/server/game/Entities')
-rw-r--r--src/server/game/Entities/AreaTrigger/AreaTrigger.cpp8
-rw-r--r--src/server/game/Entities/Creature/Creature.cpp88
-rw-r--r--src/server/game/Entities/GameObject/GameObject.cpp29
-rw-r--r--src/server/game/Entities/Object/Object.cpp41
-rw-r--r--src/server/game/Entities/Object/Object.h4
-rw-r--r--src/server/game/Entities/Player/Player.cpp8
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp10
7 files changed, 51 insertions, 137 deletions
diff --git a/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp b/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp
index 8caf45a59e4..99e343cc948 100644
--- a/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp
+++ b/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp
@@ -269,7 +269,7 @@ void AreaTrigger::SearchUnitInSphere(std::list<Unit*>& targetList)
Trinity::AnyUnitInObjectRangeCheck check(this, radius);
Trinity::UnitListSearcher<Trinity::AnyUnitInObjectRangeCheck> searcher(this, targetList, check);
- VisitNearbyObject(GetTemplate()->MaxSearchRadius, searcher);
+ Cell::VisitAllObjects(this, searcher, GetTemplate()->MaxSearchRadius);
}
void AreaTrigger::SearchUnitInBox(std::list<Unit*>& targetList)
@@ -280,7 +280,7 @@ void AreaTrigger::SearchUnitInBox(std::list<Unit*>& targetList)
Trinity::AnyUnitInObjectRangeCheck check(this, GetTemplate()->MaxSearchRadius, false);
Trinity::UnitListSearcher<Trinity::AnyUnitInObjectRangeCheck> searcher(this, targetList, check);
- VisitNearbyObject(GetTemplate()->MaxSearchRadius, searcher);
+ Cell::VisitAllObjects(this, searcher, GetTemplate()->MaxSearchRadius);
float halfExtentsX = extentsX / 2.0f;
float halfExtentsY = extentsY / 2.0f;
@@ -307,7 +307,7 @@ void AreaTrigger::SearchUnitInPolygon(std::list<Unit*>& targetList)
{
Trinity::AnyUnitInObjectRangeCheck check(this, GetTemplate()->MaxSearchRadius, false);
Trinity::UnitListSearcher<Trinity::AnyUnitInObjectRangeCheck> searcher(this, targetList, check);
- VisitNearbyObject(GetTemplate()->MaxSearchRadius, searcher);
+ Cell::VisitAllObjects(this, searcher, GetTemplate()->MaxSearchRadius);
float height = GetTemplate()->PolygonDatas.Height;
float minZ = GetPositionZ() - height;
@@ -325,7 +325,7 @@ void AreaTrigger::SearchUnitInCylinder(std::list<Unit*>& targetList)
{
Trinity::AnyUnitInObjectRangeCheck check(this, GetTemplate()->MaxSearchRadius, false);
Trinity::UnitListSearcher<Trinity::AnyUnitInObjectRangeCheck> searcher(this, targetList, check);
- VisitNearbyObject(GetTemplate()->MaxSearchRadius, searcher);
+ Cell::VisitAllObjects(this, searcher, GetTemplate()->MaxSearchRadius);
float height = GetTemplate()->CylinderDatas.Height;
float minZ = GetPositionZ() - height;
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp
index b701e0c1ac9..5a8275c2c7c 100644
--- a/src/server/game/Entities/Creature/Creature.cpp
+++ b/src/server/game/Entities/Creature/Creature.cpp
@@ -784,16 +784,9 @@ void Creature::DoFleeToGetAssistance()
if (radius >0)
{
Creature* creature = nullptr;
-
- CellCoord p(Trinity::ComputeCellCoord(GetPositionX(), GetPositionY()));
- Cell cell(p);
- cell.SetNoCreate();
Trinity::NearestAssistCreatureInCreatureRangeCheck u_check(this, GetVictim(), radius);
Trinity::CreatureLastSearcher<Trinity::NearestAssistCreatureInCreatureRangeCheck> searcher(this, creature, u_check);
-
- TypeContainerVisitor<Trinity::CreatureLastSearcher<Trinity::NearestAssistCreatureInCreatureRangeCheck>, GridTypeMapContainer > grid_creature_searcher(searcher);
-
- cell.Visit(p, grid_creature_searcher, *GetMap(), *this, radius);
+ Cell::VisitGridObjects(this, searcher, radius);
SetNoSearchAssistance(true);
UpdateSpeed(MOVE_RUN);
@@ -2018,55 +2011,29 @@ SpellInfo const* Creature::reachWithSpellCure(Unit* victim)
// select nearest hostile unit within the given distance (regardless of threat list).
Unit* Creature::SelectNearestTarget(float dist, bool playerOnly /* = false */) const
{
- CellCoord p(Trinity::ComputeCellCoord(GetPositionX(), GetPositionY()));
- Cell cell(p);
- cell.SetNoCreate();
+ if (dist == 0.0f)
+ dist = MAX_VISIBILITY_DISTANCE;
Unit* target = nullptr;
-
- {
- if (dist == 0.0f)
- dist = MAX_VISIBILITY_DISTANCE;
-
- Trinity::NearestHostileUnitCheck u_check(this, dist, playerOnly);
- Trinity::UnitLastSearcher<Trinity::NearestHostileUnitCheck> searcher(this, target, u_check);
-
- TypeContainerVisitor<Trinity::UnitLastSearcher<Trinity::NearestHostileUnitCheck>, WorldTypeMapContainer > world_unit_searcher(searcher);
- TypeContainerVisitor<Trinity::UnitLastSearcher<Trinity::NearestHostileUnitCheck>, GridTypeMapContainer > grid_unit_searcher(searcher);
-
- cell.Visit(p, world_unit_searcher, *GetMap(), *this, dist);
- cell.Visit(p, grid_unit_searcher, *GetMap(), *this, dist);
- }
-
+ Trinity::NearestHostileUnitCheck u_check(this, dist, playerOnly);
+ Trinity::UnitLastSearcher<Trinity::NearestHostileUnitCheck> searcher(this, target, u_check);
+ Cell::VisitAllObjects(this, searcher, dist);
return target;
}
// select nearest hostile unit within the given attack distance (i.e. distance is ignored if > than ATTACK_DISTANCE), regardless of threat list.
Unit* Creature::SelectNearestTargetInAttackDistance(float dist) const
{
- CellCoord p(Trinity::ComputeCellCoord(GetPositionX(), GetPositionY()));
- Cell cell(p);
- cell.SetNoCreate();
-
- Unit* target = nullptr;
-
if (dist > MAX_VISIBILITY_DISTANCE)
{
TC_LOG_ERROR("entities.unit", "Creature (%s) SelectNearestTargetInAttackDistance called with dist > MAX_VISIBILITY_DISTANCE. Distance set to ATTACK_DISTANCE.", GetGUID().ToString().c_str());
dist = ATTACK_DISTANCE;
}
- {
- Trinity::NearestHostileUnitInAttackDistanceCheck u_check(this, dist);
- Trinity::UnitLastSearcher<Trinity::NearestHostileUnitInAttackDistanceCheck> searcher(this, target, u_check);
-
- TypeContainerVisitor<Trinity::UnitLastSearcher<Trinity::NearestHostileUnitInAttackDistanceCheck>, WorldTypeMapContainer > world_unit_searcher(searcher);
- TypeContainerVisitor<Trinity::UnitLastSearcher<Trinity::NearestHostileUnitInAttackDistanceCheck>, GridTypeMapContainer > grid_unit_searcher(searcher);
-
- cell.Visit(p, world_unit_searcher, *GetMap(), *this, ATTACK_DISTANCE > dist ? ATTACK_DISTANCE : dist);
- cell.Visit(p, grid_unit_searcher, *GetMap(), *this, ATTACK_DISTANCE > dist ? ATTACK_DISTANCE : dist);
- }
-
+ Unit* target = nullptr;
+ Trinity::NearestHostileUnitInAttackDistanceCheck u_check(this, dist);
+ Trinity::UnitLastSearcher<Trinity::NearestHostileUnitInAttackDistanceCheck> searcher(this, target, u_check);
+ Cell::VisitAllObjects(this, searcher, std::max(dist, ATTACK_DISTANCE));
return target;
}
@@ -2076,7 +2043,7 @@ Player* Creature::SelectNearestPlayer(float distance) const
Trinity::NearestPlayerInObjectRangeCheck checker(this, distance);
Trinity::PlayerLastSearcher<Trinity::NearestPlayerInObjectRangeCheck> searcher(this, target, checker);
- VisitNearbyObject(distance, searcher);
+ Cell::VisitAllObjects(this, searcher, distance);
return target;
}
@@ -2104,19 +2071,9 @@ void Creature::CallAssistance()
if (radius > 0)
{
std::list<Creature*> assistList;
-
- {
- CellCoord p(Trinity::ComputeCellCoord(GetPositionX(), GetPositionY()));
- Cell cell(p);
- cell.SetNoCreate();
-
- Trinity::AnyAssistCreatureInRangeCheck u_check(this, GetVictim(), radius);
- Trinity::CreatureListSearcher<Trinity::AnyAssistCreatureInRangeCheck> searcher(this, assistList, u_check);
-
- TypeContainerVisitor<Trinity::CreatureListSearcher<Trinity::AnyAssistCreatureInRangeCheck>, GridTypeMapContainer > grid_creature_searcher(searcher);
-
- cell.Visit(p, grid_creature_searcher, *GetMap(), *this, radius);
- }
+ Trinity::AnyAssistCreatureInRangeCheck u_check(this, GetVictim(), radius);
+ Trinity::CreatureListSearcher<Trinity::AnyAssistCreatureInRangeCheck> searcher(this, assistList, u_check);
+ Cell::VisitGridObjects(this, searcher, radius);
if (!assistList.empty())
{
@@ -2138,16 +2095,9 @@ void Creature::CallForHelp(float radius)
if (radius <= 0.0f || !GetVictim() || IsPet() || IsCharmed())
return;
- CellCoord p(Trinity::ComputeCellCoord(GetPositionX(), GetPositionY()));
- Cell cell(p);
- cell.SetNoCreate();
-
Trinity::CallOfHelpCreatureInRangeDo u_do(this, GetVictim(), radius);
Trinity::CreatureWorker<Trinity::CallOfHelpCreatureInRangeDo> worker(this, u_do);
-
- TypeContainerVisitor<Trinity::CreatureWorker<Trinity::CallOfHelpCreatureInRangeDo>, GridTypeMapContainer > grid_creature_searcher(worker);
-
- cell.Visit(p, grid_creature_searcher, *GetMap(), *this, radius);
+ Cell::VisitGridObjects(this, worker, radius);
}
bool Creature::CanAssistTo(const Unit* u, const Unit* enemy, bool checkfaction /*= true*/) const
@@ -2692,12 +2642,10 @@ Unit* Creature::SelectNearestHostileUnitInAggroRange(bool useLOS) const
Unit* target = NULL;
- {
- Trinity::NearestHostileUnitInAggroRangeCheck u_check(this, useLOS);
- Trinity::UnitSearcher<Trinity::NearestHostileUnitInAggroRangeCheck> searcher(this, target, u_check);
+ Trinity::NearestHostileUnitInAggroRangeCheck u_check(this, useLOS);
+ Trinity::UnitSearcher<Trinity::NearestHostileUnitInAggroRangeCheck> searcher(this, target, u_check);
- VisitNearbyGridObject(MAX_AGGRO_RADIUS, searcher);
- }
+ Cell::VisitGridObjects(this, searcher, MAX_AGGRO_RADIUS);
return target;
}
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp
index ffbb13b42e1..cf9209699a9 100644
--- a/src/server/game/Entities/GameObject/GameObject.cpp
+++ b/src/server/game/Entities/GameObject/GameObject.cpp
@@ -560,9 +560,9 @@ void GameObject::Update(uint32 diff)
// Hunter trap: Search units which are unfriendly to the trap's owner
Trinity::AnyUnfriendlyNoTotemUnitInObjectRangeCheck checker(this, owner, radius);
Trinity::UnitSearcher<Trinity::AnyUnfriendlyNoTotemUnitInObjectRangeCheck> searcher(this, target, checker);
- VisitNearbyGridObject(radius, searcher);
+ Cell::VisitGridObjects(this, searcher, radius);
if (!target)
- VisitNearbyWorldObject(radius, searcher);
+ Cell::VisitWorldObjects(this, searcher, radius);
}
else
{
@@ -570,7 +570,7 @@ void GameObject::Update(uint32 diff)
Player* player = nullptr;
Trinity::AnyPlayerInObjectRangeCheck checker(this, radius);
Trinity::PlayerSearcher<Trinity::AnyPlayerInObjectRangeCheck> searcher(this, player, checker);
- VisitNearbyWorldObject(radius, searcher);
+ Cell::VisitWorldObjects(this, searcher, radius);
target = player;
}
@@ -1162,17 +1162,10 @@ void GameObject::TriggeringLinkedGameObject(uint32 trapEntry, Unit* target)
// search nearest linked GO
GameObject* trapGO = nullptr;
- {
- // using original GO distance
- CellCoord p(Trinity::ComputeCellCoord(GetPositionX(), GetPositionY()));
- Cell cell(p);
-
- Trinity::NearestGameObjectEntryInObjectRangeCheck go_check(*target, trapEntry, range);
- Trinity::GameObjectLastSearcher<Trinity::NearestGameObjectEntryInObjectRangeCheck> checker(this, trapGO, go_check);
-
- TypeContainerVisitor<Trinity::GameObjectLastSearcher<Trinity::NearestGameObjectEntryInObjectRangeCheck>, GridTypeMapContainer > object_checker(checker);
- cell.Visit(p, object_checker, *GetMap(), *target, range);
- }
+ // using original GO distance
+ Trinity::NearestGameObjectEntryInObjectRangeCheck go_check(*target, trapEntry, range);
+ Trinity::GameObjectLastSearcher<Trinity::NearestGameObjectEntryInObjectRangeCheck> checker(this, trapGO, go_check);
+ Cell::VisitGridObjects(this, checker, range);
// found correct GO
if (trapGO)
@@ -1182,15 +1175,9 @@ void GameObject::TriggeringLinkedGameObject(uint32 trapEntry, Unit* target)
GameObject* GameObject::LookupFishingHoleAround(float range)
{
GameObject* ok = nullptr;
-
- CellCoord p(Trinity::ComputeCellCoord(GetPositionX(), GetPositionY()));
- Cell cell(p);
Trinity::NearestGameObjectFishingHole u_check(*this, range);
Trinity::GameObjectSearcher<Trinity::NearestGameObjectFishingHole> checker(this, ok, u_check);
-
- TypeContainerVisitor<Trinity::GameObjectSearcher<Trinity::NearestGameObjectFishingHole>, GridTypeMapContainer > grid_object_checker(checker);
- cell.Visit(p, grid_object_checker, *GetMap(), *this, range);
-
+ Cell::VisitGridObjects(this, checker, range);
return ok;
}
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index 64cd60282cb..b1dc8e894bf 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -2267,13 +2267,13 @@ void WorldObject::SendMessageToSet(WorldPacket const* data, bool self)
void WorldObject::SendMessageToSetInRange(WorldPacket const* data, float dist, bool /*self*/)
{
Trinity::MessageDistDeliverer notifier(this, data, dist);
- VisitNearbyWorldObject(dist, notifier);
+ Cell::VisitWorldObjects(this, notifier, dist);
}
void WorldObject::SendMessageToSet(WorldPacket const* data, Player const* skipped_rcvr)
{
Trinity::MessageDistDeliverer notifier(this, data, GetVisibilityRange(), false, skipped_rcvr);
- VisitNearbyWorldObject(GetVisibilityRange(), notifier);
+ Cell::VisitWorldObjects(this, notifier, GetVisibilityRange());
}
void WorldObject::SetMap(Map* map)
@@ -2415,7 +2415,7 @@ TempSummon* Map::SummonCreature(uint32 entry, Position const& pos, SummonPropert
// call MoveInLineOfSight for nearby creatures
Trinity::AIRelocationNotifier notifier(*summon);
- summon->VisitNearbyObject(GetVisibilityRange(), notifier);
+ Cell::VisitAllObjects(summon, notifier, GetVisibilityRange());
return summon;
}
@@ -2582,7 +2582,7 @@ Creature* WorldObject::FindNearestCreature(uint32 entry, float range, bool alive
Creature* creature = NULL;
Trinity::NearestCreatureEntryWithLiveStateInObjectRangeCheck checker(*this, entry, alive, range);
Trinity::CreatureLastSearcher<Trinity::NearestCreatureEntryWithLiveStateInObjectRangeCheck> searcher(this, creature, checker);
- VisitNearbyObject(range, searcher);
+ Cell::VisitAllObjects(this, searcher, range);
return creature;
}
@@ -2591,7 +2591,7 @@ GameObject* WorldObject::FindNearestGameObject(uint32 entry, float range) const
GameObject* go = NULL;
Trinity::NearestGameObjectEntryInObjectRangeCheck checker(*this, entry, range);
Trinity::GameObjectLastSearcher<Trinity::NearestGameObjectEntryInObjectRangeCheck> searcher(this, go, checker);
- VisitNearbyGridObject(range, searcher);
+ Cell::VisitGridObjects(this, searcher, range);
return go;
}
@@ -2600,41 +2600,29 @@ GameObject* WorldObject::FindNearestGameObjectOfType(GameobjectTypes type, float
GameObject* go = NULL;
Trinity::NearestGameObjectTypeInObjectRangeCheck checker(*this, type, range);
Trinity::GameObjectLastSearcher<Trinity::NearestGameObjectTypeInObjectRangeCheck> searcher(this, go, checker);
- VisitNearbyGridObject(range, searcher);
+ Cell::VisitGridObjects(this, searcher, range);
return go;
}
void WorldObject::GetGameObjectListWithEntryInGrid(std::list<GameObject*>& gameobjectList, uint32 entry, float maxSearchRange) const
{
- CellCoord pair(Trinity::ComputeCellCoord(this->GetPositionX(), this->GetPositionY()));
- Cell cell(pair);
- cell.SetNoCreate();
-
Trinity::AllGameObjectsWithEntryInRange check(this, entry, maxSearchRange);
Trinity::GameObjectListSearcher<Trinity::AllGameObjectsWithEntryInRange> searcher(this, gameobjectList, check);
- TypeContainerVisitor<Trinity::GameObjectListSearcher<Trinity::AllGameObjectsWithEntryInRange>, GridTypeMapContainer> visitor(searcher);
-
- cell.Visit(pair, visitor, *(this->GetMap()), *this, maxSearchRange);
+ Cell::VisitGridObjects(this, searcher, maxSearchRange);
}
void WorldObject::GetCreatureListWithEntryInGrid(std::list<Creature*>& creatureList, uint32 entry, float maxSearchRange) const
{
- CellCoord pair(Trinity::ComputeCellCoord(this->GetPositionX(), this->GetPositionY()));
- Cell cell(pair);
- cell.SetNoCreate();
-
Trinity::AllCreaturesOfEntryInRange check(this, entry, maxSearchRange);
Trinity::CreatureListSearcher<Trinity::AllCreaturesOfEntryInRange> searcher(this, creatureList, check);
- TypeContainerVisitor<Trinity::CreatureListSearcher<Trinity::AllCreaturesOfEntryInRange>, GridTypeMapContainer> visitor(searcher);
-
- cell.Visit(pair, visitor, *(this->GetMap()), *this, maxSearchRange);
+ Cell::VisitGridObjects(this, searcher, maxSearchRange);
}
void WorldObject::GetPlayerListInGrid(std::list<Player*>& playerList, float maxSearchRange) const
{
Trinity::AnyPlayerInObjectRangeCheck checker(this, maxSearchRange);
Trinity::PlayerListSearcher<Trinity::AnyPlayerInObjectRangeCheck> searcher(this, playerList, checker);
- this->VisitNearbyWorldObject(maxSearchRange, searcher);
+ Cell::VisitWorldObjects(this, searcher, maxSearchRange);
}
/*
@@ -3118,7 +3106,7 @@ void WorldObject::DestroyForNearbyPlayers()
std::list<Player*> targets;
Trinity::AnyPlayerInObjectRangeCheck check(this, GetVisibilityRange(), false);
Trinity::PlayerListSearcher<Trinity::AnyPlayerInObjectRangeCheck> searcher(this, targets, check);
- VisitNearbyWorldObject(GetVisibilityRange(), searcher);
+ Cell::VisitWorldObjects(this, searcher, GetVisibilityRange());
for (std::list<Player*>::const_iterator iter = targets.begin(); iter != targets.end(); ++iter)
{
Player* player = (*iter);
@@ -3141,7 +3129,7 @@ void WorldObject::UpdateObjectVisibility(bool /*forced*/)
{
//updates object's visibility for nearby players
Trinity::VisibleChangesNotifier notifier(*this);
- VisitNearbyWorldObject(GetVisibilityRange(), notifier);
+ Cell::VisitWorldObjects(this, notifier, GetVisibilityRange());
}
struct WorldObjectChangeAccumulator
@@ -3216,14 +3204,9 @@ struct WorldObjectChangeAccumulator
void WorldObject::BuildUpdate(UpdateDataMapType& data_map)
{
- CellCoord p = Trinity::ComputeCellCoord(GetPositionX(), GetPositionY());
- Cell cell(p);
- cell.SetNoCreate();
WorldObjectChangeAccumulator notifier(*this, data_map);
- TypeContainerVisitor<WorldObjectChangeAccumulator, WorldTypeMapContainer > player_notifier(notifier);
- Map& map = *GetMap();
//we must build packets for all visible players
- cell.Visit(p, player_notifier, map, *this, GetVisibilityRange());
+ Cell::VisitWorldObjects(this, notifier, GetVisibilityRange());
ClearUpdateMask(false);
}
diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h
index f1e0841f3ed..f3b4041db3c 100644
--- a/src/server/game/Entities/Object/Object.h
+++ b/src/server/game/Entities/Object/Object.h
@@ -700,10 +700,6 @@ class TC_GAME_API WorldObject : public Object, public WorldLocation
bool IsPermanentWorldObject() const { return m_isWorldObject; }
bool IsWorldObject() const;
- template<class NOTIFIER> void VisitNearbyObject(float radius, NOTIFIER& notifier) const { if (IsInWorld()) GetMap()->VisitAll(GetPositionX(), GetPositionY(), radius, notifier); }
- template<class NOTIFIER> void VisitNearbyGridObject(float radius, NOTIFIER& notifier) const { if (IsInWorld()) GetMap()->VisitGrid(GetPositionX(), GetPositionY(), radius, notifier); }
- template<class NOTIFIER> void VisitNearbyWorldObject(float radius, NOTIFIER& notifier) const { if (IsInWorld()) GetMap()->VisitWorld(GetPositionX(), GetPositionY(), radius, notifier); }
-
uint32 LastUsedScriptID;
// Transports
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index a11b84e1dec..41af8b74013 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -5934,7 +5934,7 @@ void Player::SendMessageToSetInRange(WorldPacket const* data, float dist, bool s
GetSession()->SendPacket(data);
Trinity::MessageDistDeliverer notifier(this, data, dist);
- VisitNearbyWorldObject(dist, notifier);
+ Cell::VisitWorldObjects(this, notifier, dist);
}
void Player::SendMessageToSetInRange(WorldPacket const* data, float dist, bool self, bool own_team_only)
@@ -5943,7 +5943,7 @@ void Player::SendMessageToSetInRange(WorldPacket const* data, float dist, bool s
GetSession()->SendPacket(data);
Trinity::MessageDistDeliverer notifier(this, data, dist, own_team_only);
- VisitNearbyWorldObject(dist, notifier);
+ Cell::VisitWorldObjects(this, notifier, dist);
}
void Player::SendMessageToSet(WorldPacket const* data, Player const* skipped_rcvr)
@@ -5954,7 +5954,7 @@ void Player::SendMessageToSet(WorldPacket const* data, Player const* skipped_rcv
// we use World::GetMaxVisibleDistance() because i cannot see why not use a distance
// update: replaced by GetMap()->GetVisibilityDistance()
Trinity::MessageDistDeliverer notifier(this, data, GetVisibilityRange(), false, skipped_rcvr);
- VisitNearbyWorldObject(GetVisibilityRange(), notifier);
+ Cell::VisitWorldObjects(this, notifier, GetVisibilityRange());
}
void Player::SendDirectMessage(WorldPacket const* data) const
@@ -23215,7 +23215,7 @@ void Player::UpdateVisibilityForPlayer()
{
// updates visibility of all objects around point of view for current player
Trinity::VisibleNotifier notifier(*this);
- m_seer->VisitNearbyObject(GetSightRange(), notifier);
+ Cell::VisitAllObjects(m_seer, notifier, GetSightRange());
notifier.SendToSelf(); // send gathered data
}
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 2ef380df948..39c33b09c01 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -11011,7 +11011,7 @@ Unit* Unit::SelectNearbyTarget(Unit* exclude, float dist) const
std::list<Unit*> targets;
Trinity::AnyUnfriendlyUnitInObjectRangeCheck u_check(this, this, dist);
Trinity::UnitListSearcher<Trinity::AnyUnfriendlyUnitInObjectRangeCheck> searcher(this, targets, u_check);
- VisitNearbyObject(dist, searcher);
+ Cell::VisitAllObjects(this, searcher, dist);
// remove current target
if (GetVictim())
@@ -12877,7 +12877,7 @@ void Unit::UpdateObjectVisibility(bool forced)
WorldObject::UpdateObjectVisibility(true);
// call MoveInLineOfSight for nearby creatures
Trinity::AIRelocationNotifier notifier(*this);
- VisitNearbyObject(GetVisibilityRange(), notifier);
+ Cell::VisitAllObjects(this, notifier, GetVisibilityRange());
}
}
@@ -14798,7 +14798,7 @@ void Unit::Talk(std::string const& text, ChatMsg msgType, Language language, flo
Trinity::CustomChatTextBuilder builder(this, msgType, text, language, target);
Trinity::LocalizedPacketDo<Trinity::CustomChatTextBuilder> localizer(builder);
Trinity::PlayerDistWorker<Trinity::LocalizedPacketDo<Trinity::CustomChatTextBuilder> > worker(this, textRange, localizer);
- VisitNearbyWorldObject(textRange, worker);
+ Cell::VisitWorldObjects(this, worker, textRange);
}
void Unit::Say(std::string const& text, Language language, WorldObject const* target /*= nullptr*/)
@@ -14864,7 +14864,7 @@ void Unit::Talk(uint32 textId, ChatMsg msgType, float textRange, WorldObject con
Trinity::BroadcastTextBuilder builder(this, msgType, textId, target);
Trinity::LocalizedPacketDo<Trinity::BroadcastTextBuilder> localizer(builder);
Trinity::PlayerDistWorker<Trinity::LocalizedPacketDo<Trinity::BroadcastTextBuilder> > worker(this, textRange, localizer);
- VisitNearbyWorldObject(textRange, worker);
+ Cell::VisitWorldObjects(this, worker, textRange);
}
void Unit::Say(uint32 textId, WorldObject const* target /*= nullptr*/)
@@ -15034,7 +15034,7 @@ void CombatLogSender::Visit(DynamicObjectMapType& m)
void Unit::SendCombatLogMessage(WorldPackets::CombatLog::CombatLogServerPacket* combatLog) const
{
CombatLogSender notifier(this, combatLog, GetVisibilityRange());
- VisitNearbyWorldObject(GetVisibilityRange(), notifier);
+ Cell::VisitWorldObjects(this, notifier, GetVisibilityRange());
}
bool Unit::VisibleAuraSlotCompare::operator()(AuraApplication* left, AuraApplication* right) const