diff options
author | Shauren <shauren.trinity@gmail.com> | 2017-05-13 19:37:33 +0200 |
---|---|---|
committer | ariel- <ariel-@users.noreply.github.com> | 2017-06-19 13:16:13 -0300 |
commit | d6201e5dbb7fa7ca8b47ffa6c0d30fa38dceada5 (patch) | |
tree | 24f77462be2079c892dd604b4a1979f476e56e3c /src/server/scripts | |
parent | 7874bee7bfb70e0e039f91173cff212e9572de09 (diff) |
Core/Grids: Ported cmangos/mangos-wotlk@ea99457e50790acde8928aa0f3dc4a9c096b4a8c
(cherry picked from commit 9299e9bde087af7e5d777d5a55a3b79d2b63c48e)
Diffstat (limited to 'src/server/scripts')
33 files changed, 67 insertions, 140 deletions
diff --git a/src/server/scripts/Commands/cs_debug.cpp b/src/server/scripts/Commands/cs_debug.cpp index 918c45c7dcc..3e3215232fb 100644 --- a/src/server/scripts/Commands/cs_debug.cpp +++ b/src/server/scripts/Commands/cs_debug.cpp @@ -929,7 +929,7 @@ public: Creature* passenger = NULL; Trinity::AllCreaturesOfEntryInRange check(handler->GetSession()->GetPlayer(), entry, 20.0f); Trinity::CreatureSearcher<Trinity::AllCreaturesOfEntryInRange> searcher(handler->GetSession()->GetPlayer(), passenger, check); - handler->GetSession()->GetPlayer()->VisitNearbyObject(30.0f, searcher); + Cell::VisitAllObjects(handler->GetSession()->GetPlayer(), searcher, 30.0f); if (!passenger || passenger == target) return false; passenger->EnterVehicle(target, seatId); diff --git a/src/server/scripts/Commands/cs_misc.cpp b/src/server/scripts/Commands/cs_misc.cpp index cc38cd50f7d..0a1b0f75a7b 100644 --- a/src/server/scripts/Commands/cs_misc.cpp +++ b/src/server/scripts/Commands/cs_misc.cpp @@ -1896,7 +1896,7 @@ public: Trinity::RespawnDo u_do; Trinity::WorldObjectWorker<Trinity::RespawnDo> worker(player, u_do); - player->VisitNearbyGridObject(player->GetGridActivationRange(), worker); + Cell::VisitGridObjects(player, worker, player->GetGridActivationRange()); return true; } diff --git a/src/server/scripts/Commands/cs_mmaps.cpp b/src/server/scripts/Commands/cs_mmaps.cpp index c9d7dfc14b9..acee88ce4d5 100644 --- a/src/server/scripts/Commands/cs_mmaps.cpp +++ b/src/server/scripts/Commands/cs_mmaps.cpp @@ -261,18 +261,11 @@ public: float radius = 40.0f; WorldObject* object = handler->GetSession()->GetPlayer(); - CellCoord pair(Trinity::ComputeCellCoord(object->GetPositionX(), object->GetPositionY())); - Cell cell(pair); - cell.SetNoCreate(); - + // Get Creatures std::list<Creature*> creatureList; - Trinity::AnyUnitInObjectRangeCheck go_check(object, radius); Trinity::CreatureListSearcher<Trinity::AnyUnitInObjectRangeCheck> go_search(object, creatureList, go_check); - TypeContainerVisitor<Trinity::CreatureListSearcher<Trinity::AnyUnitInObjectRangeCheck>, GridTypeMapContainer> go_visit(go_search); - - // Get Creatures - cell.Visit(pair, go_visit, *(object->GetMap()), *object, radius); + Cell::VisitGridObjects(object, go_search, radius); if (!creatureList.empty()) { diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp index 72ce2e1c0dd..aa5720bef4e 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp @@ -485,14 +485,9 @@ public: float x, y, z; me->GetPosition(x, y, z); - CellCoord pair(Trinity::ComputeCellCoord(x, y)); - Cell cell(pair); - cell.SetNoCreate(); - Trinity::AllCreaturesOfEntryInRange check(me, entry, 100); Trinity::CreatureListSearcher<Trinity::AllCreaturesOfEntryInRange> searcher(me, templist, check); - TypeContainerVisitor<Trinity::CreatureListSearcher<Trinity::AllCreaturesOfEntryInRange>, GridTypeMapContainer> cSearcher(searcher); - cell.Visit(pair, cSearcher, *(me->GetMap()), *me, me->GetGridActivationRange()); + Cell::VisitGridObjects(me, searcher, me->GetGridActivationRange()); for (std::list<Creature*>::const_iterator i = templist.begin(); i != templist.end(); ++i) { diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp index b0e1c203c82..1ab0ea8908c 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_akilzon.cpp @@ -159,22 +159,10 @@ class boss_akilzon : public CreatureScript for (uint8 i = 2; i < StormCount; ++i) bp0 *= 2; - CellCoord p(Trinity::ComputeCellCoord(me->GetPositionX(), me->GetPositionY())); - Cell cell(p); - cell.SetNoCreate(); - std::list<Unit*> tempUnitMap; - - { - Trinity::AnyAoETargetUnitInObjectRangeCheck u_check(me, me, SIZE_OF_GRIDS); - Trinity::UnitListSearcher<Trinity::AnyAoETargetUnitInObjectRangeCheck> searcher(me, tempUnitMap, u_check); - - TypeContainerVisitor<Trinity::UnitListSearcher<Trinity::AnyAoETargetUnitInObjectRangeCheck>, WorldTypeMapContainer > world_unit_searcher(searcher); - TypeContainerVisitor<Trinity::UnitListSearcher<Trinity::AnyAoETargetUnitInObjectRangeCheck>, GridTypeMapContainer > grid_unit_searcher(searcher); - - cell.Visit(p, world_unit_searcher, *me->GetMap(), *me, SIZE_OF_GRIDS); - cell.Visit(p, grid_unit_searcher, *me->GetMap(), *me, SIZE_OF_GRIDS); - } + Trinity::AnyAoETargetUnitInObjectRangeCheck u_check(me, me, SIZE_OF_GRIDS); + Trinity::UnitListSearcher<Trinity::AnyAoETargetUnitInObjectRangeCheck> searcher(me, tempUnitMap, u_check); + Cell::VisitAllObjects(me, searcher, SIZE_OF_GRIDS); // deal damage for (std::list<Unit*>::const_iterator i = tempUnitMap.begin(); i != tempUnitMap.end(); ++i) diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp index 56ce4193c5f..91978d052ad 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_janalai.cpp @@ -234,18 +234,9 @@ class boss_janalai : public CreatureScript float x, y, z; me->GetPosition(x, y, z); - { - CellCoord pair(Trinity::ComputeCellCoord(x, y)); - Cell cell(pair); - cell.SetNoCreate(); - - Trinity::AllCreaturesOfEntryInRange check(me, NPC_EGG, 100); - Trinity::CreatureListSearcher<Trinity::AllCreaturesOfEntryInRange> searcher(me, templist, check); - - TypeContainerVisitor<Trinity::CreatureListSearcher<Trinity::AllCreaturesOfEntryInRange>, GridTypeMapContainer> cSearcher(searcher); - - cell.Visit(pair, cSearcher, *me->GetMap(), *me, me->GetGridActivationRange()); - } + Trinity::AllCreaturesOfEntryInRange check(me, NPC_EGG, 100); + Trinity::CreatureListSearcher<Trinity::AllCreaturesOfEntryInRange> searcher(me, templist, check); + Cell::VisitGridObjects(me, searcher, me->GetGridActivationRange()); //TC_LOG_ERROR("scripts", "Eggs %d at middle", templist.size()); if (templist.empty()) @@ -267,22 +258,14 @@ class boss_janalai : public CreatureScript float x, y, z; me->GetPosition(x, y, z); - { - CellCoord pair(Trinity::ComputeCellCoord(x, y)); - Cell cell(pair); - cell.SetNoCreate(); - - Trinity::AllCreaturesOfEntryInRange check(me, NPC_FIRE_BOMB, 100); - Trinity::CreatureListSearcher<Trinity::AllCreaturesOfEntryInRange> searcher(me, templist, check); - - TypeContainerVisitor<Trinity::CreatureListSearcher<Trinity::AllCreaturesOfEntryInRange>, GridTypeMapContainer> cSearcher(searcher); + Trinity::AllCreaturesOfEntryInRange check(me, NPC_FIRE_BOMB, 100); + Trinity::CreatureListSearcher<Trinity::AllCreaturesOfEntryInRange> searcher(me, templist, check); + Cell::VisitGridObjects(me, searcher, me->GetGridActivationRange()); - cell.Visit(pair, cSearcher, *me->GetMap(), *me, me->GetGridActivationRange()); - } for (std::list<Creature*>::const_iterator i = templist.begin(); i != templist.end(); ++i) { - (*i)->CastSpell(*i, SPELL_FIRE_BOMB_DAMAGE, true); - (*i)->RemoveAllAuras(); + (*i)->CastSpell(*i, SPELL_FIRE_BOMB_DAMAGE, true); + (*i)->RemoveAllAuras(); } } @@ -525,25 +508,16 @@ class npc_janalai_hatcher : public CreatureScript float x, y, z; me->GetPosition(x, y, z); - { - CellCoord pair(Trinity::ComputeCellCoord(x, y)); - Cell cell(pair); - cell.SetNoCreate(); - - Trinity::AllCreaturesOfEntryInRange check(me, 23817, 50); - Trinity::CreatureListSearcher<Trinity::AllCreaturesOfEntryInRange> searcher(me, templist, check); - - TypeContainerVisitor<Trinity::CreatureListSearcher<Trinity::AllCreaturesOfEntryInRange>, GridTypeMapContainer> cSearcher(searcher); - - cell.Visit(pair, cSearcher, *(me->GetMap()), *me, me->GetGridActivationRange()); - } + Trinity::AllCreaturesOfEntryInRange check(me, 23817, 50); + Trinity::CreatureListSearcher<Trinity::AllCreaturesOfEntryInRange> searcher(me, templist, check); + Cell::VisitGridObjects(me, searcher, me->GetGridActivationRange()); //TC_LOG_ERROR("scripts", "Eggs %d at %d", templist.size(), side); for (std::list<Creature*>::const_iterator i = templist.begin(); i != templist.end() && num > 0; ++i) if ((*i)->GetDisplayId() != 11686) { - (*i)->CastSpell(*i, SPELL_HATCH_EGG, false); + (*i)->CastSpell(*i, SPELL_HATCH_EGG, false); num--; } diff --git a/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp b/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp index 9711126dfcd..e2acc47d651 100644 --- a/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp +++ b/src/server/scripts/EasternKingdoms/ZulAman/boss_nalorakk.cpp @@ -153,7 +153,7 @@ class boss_nalorakk : public CreatureScript Trinity::AllFriendlyCreaturesInGrid check(me); Trinity::CreatureListSearcher<Trinity::AllFriendlyCreaturesInGrid> searcher(me, tempList, check); - me->VisitNearbyGridObject(25.0f, searcher); + Cell::VisitGridObjects(me, searcher, 25.0f); if (tempList.empty()) return; diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp index 3464d1b022e..db091296389 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp @@ -906,17 +906,11 @@ void hyjalAI::JustDied(Unit* /*killer*/) void hyjalAI::HideNearPos(float x, float y) { - CellCoord pair(Trinity::ComputeCellCoord(x, y)); - Cell cell(pair); - cell.SetNoCreate(); - // First get all creatures. std::list<Creature*> creatures; Trinity::AllFriendlyCreaturesInGrid creature_check(me); Trinity::CreatureListSearcher<Trinity::AllFriendlyCreaturesInGrid> creature_searcher(me, creatures, creature_check); - - TypeContainerVisitor <Trinity::CreatureListSearcher<Trinity::AllFriendlyCreaturesInGrid>, GridTypeMapContainer> creature_visitor(creature_searcher); - cell.Visit(pair, creature_visitor, *(me->GetMap()), *me, me->GetGridActivationRange()); + Cell::VisitGridObjects(x, y, me->GetMap(), creature_searcher, me->GetGridActivationRange()); if (!creatures.empty()) { @@ -930,14 +924,9 @@ void hyjalAI::HideNearPos(float x, float y) void hyjalAI::RespawnNearPos(float x, float y) { - CellCoord p(Trinity::ComputeCellCoord(x, y)); - Cell cell(p); - cell.SetNoCreate(); - Trinity::RespawnDo u_do; Trinity::WorldObjectWorker<Trinity::RespawnDo> worker(me, u_do); - TypeContainerVisitor<Trinity::WorldObjectWorker<Trinity::RespawnDo>, GridTypeMapContainer > obj_worker(worker); - cell.Visit(p, obj_worker, *me->GetMap(), *me, me->GetGridActivationRange()); + Cell::VisitGridObjects(x, y, me->GetMap(), worker, me->GetGridActivationRange()); } void hyjalAI::WaypointReached(uint32 waypointId) @@ -961,19 +950,11 @@ void hyjalAI::WaypointReached(uint32 waypointId) } //do some talking //all alive guards walk near here - CellCoord pair(Trinity::ComputeCellCoord(me->GetPositionX(), me->GetPositionY())); - Cell cell(pair); - cell.SetNoCreate(); - // First get all creatures. std::list<Creature*> creatures; Trinity::AllFriendlyCreaturesInGrid creature_check(me); Trinity::CreatureListSearcher<Trinity::AllFriendlyCreaturesInGrid> creature_searcher(me, creatures, creature_check); - TypeContainerVisitor - <Trinity::CreatureListSearcher<Trinity::AllFriendlyCreaturesInGrid>, - GridTypeMapContainer> creature_visitor(creature_searcher); - - cell.Visit(pair, creature_visitor, *(me->GetMap()), *me, me->GetGridActivationRange()); + Cell::VisitGridObjects(me, creature_searcher, me->GetGridActivationRange()); if (!creatures.empty()) { @@ -1002,18 +983,10 @@ void hyjalAI::DoOverrun(uint32 faction, const uint32 diff) { if (TeleportTimer <= diff) { - CellCoord pair(Trinity::ComputeCellCoord(me->GetPositionX(), me->GetPositionY())); - Cell cell(pair); - cell.SetNoCreate(); - std::list<Creature*> creatures; Trinity::AllFriendlyCreaturesInGrid creature_check(me); Trinity::CreatureListSearcher<Trinity::AllFriendlyCreaturesInGrid> creature_searcher(me, creatures, creature_check); - TypeContainerVisitor - <Trinity::CreatureListSearcher<Trinity::AllFriendlyCreaturesInGrid>, - GridTypeMapContainer> creature_visitor(creature_searcher); - - cell.Visit(pair, creature_visitor, *(me->GetMap()), *me, me->GetGridActivationRange()); + Cell::VisitGridObjects(me, creature_searcher, me->GetGridActivationRange()); if (!creatures.empty()) { diff --git a/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp b/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp index 386b92b279e..52a86f5d2fa 100644 --- a/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp +++ b/src/server/scripts/Kalimdor/OnyxiasLair/boss_onyxia.cpp @@ -356,7 +356,7 @@ public: GameObject* Floor = NULL; Trinity::GameObjectInRangeCheck check(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 15); Trinity::GameObjectLastSearcher<Trinity::GameObjectInRangeCheck> searcher(me, Floor, check); - me->VisitNearbyGridObject(30, searcher); + Cell::VisitGridObjects(me, searcher, 30.0f); if (Floor) instance->SetGuidData(DATA_FLOOR_ERUPTION_GUID, Floor->GetGUID()); events.ScheduleEvent(EVENT_BELLOWING_ROAR, 30000); diff --git a/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp b/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp index d2fbc4464c1..afb7c801a01 100644 --- a/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp +++ b/src/server/scripts/Kalimdor/OnyxiasLair/instance_onyxias_lair.cpp @@ -118,7 +118,7 @@ public: std::list<GameObject*> nearFloorList; Trinity::GameObjectInRangeCheck check(floorEruption->GetPositionX(), floorEruption->GetPositionY(), floorEruption->GetPositionZ(), 15); Trinity::GameObjectListSearcher<Trinity::GameObjectInRangeCheck> searcher(floorEruption, nearFloorList, check); - floorEruption->VisitNearbyGridObject(999, searcher); + Cell::VisitGridObjects(floorEruption, searcher, SIZE_OF_GRIDS); //remove all that are not present on FloorEruptionGUID[1] and update treeLen on each GUID for (std::list<GameObject*>::const_iterator itr = nearFloorList.begin(); itr != nearFloorList.end(); ++itr) { diff --git a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp index 3771a6bfbc7..a5329422683 100644 --- a/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp +++ b/src/server/scripts/Kalimdor/RazorfenDowns/razorfen_downs.cpp @@ -207,7 +207,7 @@ public: std::list<WorldObject*> ClusterList; Trinity::AllWorldObjectsInRange objects(me, 50.0f); Trinity::WorldObjectListSearcher<Trinity::AllWorldObjectsInRange> searcher(me, ClusterList, objects); - me->VisitNearbyObject(50.0f, searcher); + Cell::VisitAllObjects(me, searcher, 50.0f); for (std::list<WorldObject*>::const_iterator itr = ClusterList.begin(); itr != ClusterList.end(); ++itr) { if (Player* player = (*itr)->ToPlayer()) diff --git a/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp b/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp index 2cd1176bbc0..77295abb873 100644 --- a/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp +++ b/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp @@ -574,7 +574,7 @@ public: std::list<Player*> players; Trinity::AnyPlayerInObjectRangeCheck checker(me, radius); Trinity::PlayerListSearcher<Trinity::AnyPlayerInObjectRangeCheck> searcher(me, players, checker); - me->VisitNearbyWorldObject(radius, searcher); + Cell::VisitWorldObjects(me, searcher, radius); for (std::list<Player*>::const_iterator itr = players.begin(); itr != players.end(); ++itr) if ((*itr)->GetQuestStatus(QUEST_TREES_COMPANY) == QUEST_STATUS_INCOMPLETE && (*itr)->HasAura(SPELL_TREE_DISGUISE)) diff --git a/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp b/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp index ed9a3d11a59..9dfd78f52e9 100644 --- a/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp +++ b/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp @@ -752,7 +752,7 @@ public: Creature* sironas = NULL; Trinity::AllCreaturesOfEntryInRange check(me, NPC_SIRONAS, SIZE_OF_GRIDS); Trinity::CreatureSearcher<Trinity::AllCreaturesOfEntryInRange> searcher(me, sironas, check); - me->VisitNearbyObject(SIZE_OF_GRIDS, searcher); + Cell::VisitAllObjects(me, searcher, SIZE_OF_GRIDS); if (sironas) { diff --git a/src/server/scripts/Kalimdor/zone_moonglade.cpp b/src/server/scripts/Kalimdor/zone_moonglade.cpp index e89e847f66d..1d220f9ad48 100644 --- a/src/server/scripts/Kalimdor/zone_moonglade.cpp +++ b/src/server/scripts/Kalimdor/zone_moonglade.cpp @@ -150,7 +150,7 @@ public: std::list<Player*> playerOnQuestList; Trinity::AnyPlayerInObjectRangeCheck checker(me, 5.0f); Trinity::PlayerListSearcher<Trinity::AnyPlayerInObjectRangeCheck> searcher(me, playerOnQuestList, checker); - me->VisitNearbyWorldObject(5.0f, searcher); + Cell::VisitWorldObjects(me, searcher, 5.0f); for (std::list<Player*>::const_iterator itr = playerOnQuestList.begin(); itr != playerOnQuestList.end(); ++itr) { // Check if found player target has active quest diff --git a/src/server/scripts/Kalimdor/zone_orgrimmar.cpp b/src/server/scripts/Kalimdor/zone_orgrimmar.cpp index b36d1d8df12..e75f69287b7 100644 --- a/src/server/scripts/Kalimdor/zone_orgrimmar.cpp +++ b/src/server/scripts/Kalimdor/zone_orgrimmar.cpp @@ -441,7 +441,7 @@ public: std::list<Unit*> citizenList; Trinity::AnyFriendlyUnitInObjectRangeCheck checker(me, me, 25.0f); Trinity::UnitListSearcher<Trinity::AnyFriendlyUnitInObjectRangeCheck> searcher(me, citizenList, checker); - me->VisitNearbyObject(20.0f, searcher); + Cell::VisitGridObjects(me, searcher, 20.0f); for (Unit* target : citizenList) { switch (target->GetEntry()) diff --git a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp index d6ff08f3b1d..71487b5e048 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp @@ -396,7 +396,7 @@ public: std::list<Creature*> fireCyclonesList; Trinity::AllCreaturesOfEntryInRange checker(me, NPC_FIRE_CYCLONE, 200.0f); Trinity::CreatureListSearcher<Trinity::AllCreaturesOfEntryInRange> searcher(me, fireCyclonesList, checker); - me->VisitNearbyObject(200.0f, searcher); + Cell::VisitAllObjects(me, searcher, 200.0f); if (fireCyclonesList.empty()) return; diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp index 79c0336b9b6..598caddd72f 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp @@ -135,7 +135,7 @@ class OrbsDespawner : public BasicEvent bool Execute(uint64 /*currTime*/, uint32 /*diff*/) override { Trinity::CreatureWorker<OrbsDespawner> worker(_creature, *this); - _creature->VisitNearbyGridObject(5000.0f, worker); + Cell::VisitGridObjects(_creature, worker, SIZE_OF_GRIDS); return true; } diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp index 974ae333746..a30ea8e9cc5 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp @@ -1475,7 +1475,7 @@ struct npc_gunship_boarding_addAI : public gunship_npc_AI std::list<Player*> players; Trinity::UnitAuraCheck check(true, Instance->GetData(DATA_TEAM_IN_INSTANCE) == HORDE ? SPELL_ON_ORGRIMS_HAMMER_DECK : SPELL_ON_SKYBREAKER_DECK); Trinity::PlayerListSearcher<Trinity::UnitAuraCheck> searcher(me, players, check); - me->VisitNearbyWorldObject(200.0f, searcher); + Cell::VisitWorldObjects(me, searcher, 200.0f); players.remove_if([this](Player* player) { @@ -1539,7 +1539,7 @@ struct npc_gunship_boarding_addAI : public gunship_npc_AI std::list<Player*> players; Trinity::UnitAuraCheck check(true, Instance->GetData(DATA_TEAM_IN_INSTANCE) == HORDE ? SPELL_ON_ORGRIMS_HAMMER_DECK : SPELL_ON_SKYBREAKER_DECK); Trinity::PlayerListSearcher<Trinity::UnitAuraCheck> searcher(me, players, check); - me->VisitNearbyWorldObject(200.0f, searcher); + Cell::VisitWorldObjects(me, searcher,200.0f ); players.remove_if([this](Player* player) { diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp index 030a64d8a97..e5736894b4c 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp @@ -533,7 +533,7 @@ class boss_the_lich_king : public CreatureScript // Reset The Frozen Throne gameobjects FrozenThroneResetWorker reset; Trinity::GameObjectWorker<FrozenThroneResetWorker> worker(me, reset); - me->VisitNearbyGridObject(333.0f, worker); + Cell::VisitGridObjects(me, worker, 333.0f); // Reset any light override me->GetMap()->SetZoneOverrideLight(AREA_ICECROWN_CITADEL, 0, 5000); diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp index c53783b06aa..867fc1ae688 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp @@ -223,7 +223,7 @@ class ValithriaDespawner : public BasicEvent bool Execute(uint64 /*currTime*/, uint32 /*diff*/) override { Trinity::CreatureWorker<ValithriaDespawner> worker(_creature, *this); - _creature->VisitNearbyGridObject(333.0f, worker); + Cell::VisitGridObjects(_creature, worker, 333.0f); return true; } @@ -728,7 +728,7 @@ class npc_risen_archmage : public CreatureScript std::list<Creature*> archmages; RisenArchmageCheck check; Trinity::CreatureListSearcher<RisenArchmageCheck> searcher(me, archmages, check); - me->VisitNearbyGridObject(100.0f, searcher); + Cell::VisitGridObjects(me, searcher, 100.0f); for (std::list<Creature*>::iterator itr = archmages.begin(); itr != archmages.end(); ++itr) (*itr)->AI()->DoAction(ACTION_ENTER_COMBAT); @@ -1103,7 +1103,7 @@ class npc_dream_cloud : public CreatureScript Player* player = nullptr; Trinity::AnyPlayerInObjectRangeCheck check(me, 5.0f); Trinity::PlayerSearcher<Trinity::AnyPlayerInObjectRangeCheck> searcher(me, player, check); - me->VisitNearbyWorldObject(7.5f, searcher); + Cell::VisitWorldObjects(me, searcher, 7.5f); _events.ScheduleEvent(player ? EVENT_EXPLODE : EVENT_CHECK_PLAYER, 1000); break; } diff --git a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp index c05029fb29e..6a56da6e902 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp @@ -1095,7 +1095,7 @@ class npc_crok_scourgebane : public CreatureScript std::list<Creature*> temp; FrostwingVrykulSearcher check(me, 80.0f); Trinity::CreatureListSearcher<FrostwingVrykulSearcher> searcher(me, temp, check); - me->VisitNearbyGridObject(80.0f, searcher); + Cell::VisitGridObjects(me, searcher, 80.0f); _aliveTrash.clear(); for (std::list<Creature*>::iterator itr = temp.begin(); itr != temp.end(); ++itr) @@ -1122,7 +1122,7 @@ class npc_crok_scourgebane : public CreatureScript Player* player = NULL; Trinity::AnyPlayerInObjectRangeCheck check(me, 60.0f); Trinity::PlayerSearcher<Trinity::AnyPlayerInObjectRangeCheck> searcher(me, player, check); - me->VisitNearbyWorldObject(60.0f, searcher); + Cell::VisitWorldObjects(me, searcher, 60.0f); // wipe if (!player) { @@ -1131,7 +1131,7 @@ class npc_crok_scourgebane : public CreatureScript { FrostwingGauntletRespawner respawner; Trinity::CreatureWorker<FrostwingGauntletRespawner> worker(me, respawner); - me->VisitNearbyGridObject(333.0f, worker); + Cell::VisitGridObjects(me, worker, 333.0f); Talk(SAY_CROK_DEATH); } return; @@ -1436,7 +1436,7 @@ class npc_captain_arnath : public CreatureScript Creature* target = NULL; Trinity::MostHPMissingInRange u_check(me, 60.0f, 0); Trinity::CreatureLastSearcher<Trinity::MostHPMissingInRange> searcher(me, target, u_check); - me->VisitNearbyGridObject(60.0f, searcher); + Cell::VisitGridObjects(me, searcher, 60.0f); return target; } }; diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp index 0661d422904..d89a9d08fe5 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp @@ -1757,7 +1757,7 @@ class spell_vehicle_throw_passenger : public SpellScriptLoader std::list<WorldObject*> targetList; Trinity::WorldObjectSpellAreaTargetCheck check(99, GetExplTargetDest(), GetCaster(), GetCaster(), GetSpellInfo(), TARGET_CHECK_DEFAULT, NULL); Trinity::WorldObjectListSearcher<Trinity::WorldObjectSpellAreaTargetCheck> searcher(GetCaster(), targetList, check); - GetCaster()->GetMap()->VisitAll(GetCaster()->m_positionX, GetCaster()->m_positionY, 99, searcher); + Cell::VisitAllObjects(GetCaster(), searcher, 99.0f); float minDist = 99 * 99; Unit* target = NULL; for (std::list<WorldObject*>::iterator itr = targetList.begin(); itr != targetList.end(); ++itr) diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp index 8c6f9fc94f6..59b9cc5bcb1 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp @@ -520,7 +520,7 @@ class boss_hodir : public CreatureScript std::list<Unit*> TargetList; Trinity::AnyUnfriendlyUnitInObjectRangeCheck checker(me, me, 100.0f); Trinity::UnitListSearcher<Trinity::AnyUnfriendlyUnitInObjectRangeCheck> searcher(me, TargetList, checker); - me->VisitNearbyObject(100.0f, searcher); + Cell::VisitAllObjects(me, searcher, 100.0f); for (std::list<Unit*>::iterator itr = TargetList.begin(); itr != TargetList.end(); ++itr) { Unit* target = *itr; @@ -694,7 +694,7 @@ class npc_hodir_priest : public CreatureScript std::list<Unit*> TargetList; Trinity::AnyFriendlyUnitInObjectRangeCheck checker(me, me, 30.0f); Trinity::UnitListSearcher<Trinity::AnyFriendlyUnitInObjectRangeCheck> searcher(me, TargetList, checker); - me->VisitNearbyObject(30.0f, searcher); + Cell::VisitAllObjects(me, searcher, 30.0f); for (std::list<Unit*>::iterator itr = TargetList.begin(); itr != TargetList.end(); ++itr) if ((*itr)->HasAura(SPELL_FREEZE)) DoCast(*itr, SPELL_DISPEL_MAGIC, true); diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp index e63f8ca49d3..0dc4e553ad7 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp @@ -1033,7 +1033,7 @@ struct npc_thorim_trashAI : public ScriptedAI Unit* target = nullptr; MostHPMissingInRange checker(caster, range, heal); Trinity::UnitLastSearcher<MostHPMissingInRange> searcher(caster, target, checker); - caster->VisitNearbyObject(range, searcher); + Cell::VisitGridObjects(caster, searcher, range); return target; } @@ -2079,7 +2079,7 @@ class spell_thorim_activate_lightning_orb_periodic : public SpellScriptLoader UpperOrbCheck check; Trinity::CreatureListSearcher<UpperOrbCheck> searcher(caster, triggers, check); - caster->VisitNearbyGridObject(100.f, searcher); + Cell::VisitGridObjects(caster, searcher, 100.f); if (!triggers.empty()) { diff --git a/src/server/scripts/Outland/BlackTemple/boss_illidari_council.cpp b/src/server/scripts/Outland/BlackTemple/boss_illidari_council.cpp index ccc4c46ca07..e19b0189147 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_illidari_council.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_illidari_council.cpp @@ -346,7 +346,7 @@ public: std::list<Unit*> TargetList; Trinity::AnyFriendlyUnitInObjectRangeCheck checker(me, me, 100.0f); Trinity::UnitListSearcher<Trinity::AnyFriendlyUnitInObjectRangeCheck> searcher(me, TargetList, checker); - me->VisitNearbyObject(100.0f, searcher); + Cell::VisitAllObjects(me, searcher, 100.0f); if (!TargetList.empty()) { diff --git a/src/server/scripts/Outland/zone_blades_edge_mountains.cpp b/src/server/scripts/Outland/zone_blades_edge_mountains.cpp index 09b648006c9..e3e39d0c27e 100644 --- a/src/server/scripts/Outland/zone_blades_edge_mountains.cpp +++ b/src/server/scripts/Outland/zone_blades_edge_mountains.cpp @@ -581,7 +581,7 @@ class npc_simon_bunny : public CreatureScript std::list<WorldObject*> ClusterList; Trinity::AllWorldObjectsInRange objects(me, searchDistance); Trinity::WorldObjectListSearcher<Trinity::AllWorldObjectsInRange> searcher(me, ClusterList, objects); - me->VisitNearbyObject(searchDistance, searcher); + Cell::VisitAllObjects(me, searcher, searchDistance); for (std::list<WorldObject*>::const_iterator i = ClusterList.begin(); i != ClusterList.end(); ++i) { diff --git a/src/server/scripts/Pet/pet_dk.cpp b/src/server/scripts/Pet/pet_dk.cpp index 8ddcaa96479..a17b9fd8b59 100644 --- a/src/server/scripts/Pet/pet_dk.cpp +++ b/src/server/scripts/Pet/pet_dk.cpp @@ -56,7 +56,7 @@ class npc_pet_dk_ebon_gargoyle : public CreatureScript std::list<Unit*> targets; Trinity::AnyUnfriendlyUnitInObjectRangeCheck u_check(me, me, 30.0f); Trinity::UnitListSearcher<Trinity::AnyUnfriendlyUnitInObjectRangeCheck> searcher(me, targets, u_check); - me->VisitNearbyObject(30.0f, searcher); + Cell::VisitAllObjects(me, searcher, 30.0f); for (std::list<Unit*>::const_iterator iter = targets.begin(); iter != targets.end(); ++iter) if ((*iter)->HasAura(SPELL_DK_SUMMON_GARGOYLE_1, ownerGuid)) { diff --git a/src/server/scripts/Pet/pet_mage.cpp b/src/server/scripts/Pet/pet_mage.cpp index 5f6af339f92..fa2e65f7104 100644 --- a/src/server/scripts/Pet/pet_mage.cpp +++ b/src/server/scripts/Pet/pet_mage.cpp @@ -61,7 +61,7 @@ class npc_pet_mage_mirror_image : public CreatureScript std::list<Unit*> targets; Trinity::AnyUnfriendlyUnitInObjectRangeCheck u_check(me, me, 30.0f); Trinity::UnitListSearcher<Trinity::AnyUnfriendlyUnitInObjectRangeCheck> searcher(me, targets, u_check); - me->VisitNearbyObject(40.0f, searcher); + Cell::VisitAllObjects(me, searcher, 40.0f); Unit* highestThreatUnit = nullptr; float highestThreat = 0.0f; @@ -123,7 +123,7 @@ class npc_pet_mage_mirror_image : public CreatureScript std::list<Unit*> targets; Trinity::AnyUnfriendlyUnitInObjectRangeCheck u_check(me, me, 30.0f); Trinity::UnitListSearcher<Trinity::AnyUnfriendlyUnitInObjectRangeCheck> searcher(me, targets, u_check); - me->VisitNearbyObject(40.0f, searcher); + Cell::VisitAllObjects(me, searcher, 40.0f); for (std::list<Unit*>::const_iterator iter = targets.begin(); iter != targets.end(); ++iter) { diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp index bbc366b680b..3e9184acc94 100644 --- a/src/server/scripts/Spells/spell_generic.cpp +++ b/src/server/scripts/Spells/spell_generic.cpp @@ -789,7 +789,9 @@ class spell_gen_cannibalize : public SpellScriptLoader // search for nearby enemy corpse in range Trinity::AnyDeadUnitSpellTargetInRangeCheck check(caster, max_range, GetSpellInfo(), TARGET_CHECK_ENEMY); Trinity::WorldObjectSearcher<Trinity::AnyDeadUnitSpellTargetInRangeCheck> searcher(caster, result, check); - caster->GetMap()->VisitFirstFound(caster->m_positionX, caster->m_positionY, max_range, searcher); + Cell::VisitWorldObjects(caster, searcher, max_range); + if (!result) + Cell::VisitGridObjects(caster, searcher, max_range); if (!result) return SPELL_FAILED_NO_EDIBLE_CORPSES; return SPELL_CAST_OK; diff --git a/src/server/scripts/Spells/spell_holiday.cpp b/src/server/scripts/Spells/spell_holiday.cpp index 431342eaf56..588bccb9596 100644 --- a/src/server/scripts/Spells/spell_holiday.cpp +++ b/src/server/scripts/Spells/spell_holiday.cpp @@ -81,7 +81,7 @@ class spell_love_is_in_the_air_romantic_picnic : public SpellScriptLoader std::list<Player*> playerList; Trinity::AnyPlayerInObjectRangeCheck checker(target, INTERACTION_DISTANCE*2); Trinity::PlayerListSearcher<Trinity::AnyPlayerInObjectRangeCheck> searcher(target, playerList, checker); - target->VisitNearbyWorldObject(INTERACTION_DISTANCE*2, searcher); + Cell::VisitWorldObjects(target, searcher, INTERACTION_DISTANCE * 2); for (std::list<Player*>::const_iterator itr = playerList.begin(); itr != playerList.end(); ++itr) { if ((*itr) != target && (*itr)->HasAura(GetId())) // && (*itr)->GetStandState() == UNIT_STAND_STATE_SIT) diff --git a/src/server/scripts/Spells/spell_hunter.cpp b/src/server/scripts/Spells/spell_hunter.cpp index afee4f033bf..79ca0a1eb6c 100644 --- a/src/server/scripts/Spells/spell_hunter.cpp +++ b/src/server/scripts/Spells/spell_hunter.cpp @@ -915,7 +915,9 @@ class spell_hun_pet_carrion_feeder : public SpellScriptLoader // search for nearby enemy corpse in range Trinity::AnyDeadUnitSpellTargetInRangeCheck check(caster, max_range, GetSpellInfo(), TARGET_CHECK_ENEMY); Trinity::WorldObjectSearcher<Trinity::AnyDeadUnitSpellTargetInRangeCheck> searcher(caster, result, check); - caster->GetMap()->VisitFirstFound(caster->m_positionX, caster->m_positionY, max_range, searcher); + Cell::VisitWorldObjects(caster, searcher, max_range); + if (!result) + Cell::VisitGridObjects(caster, searcher, max_range); if (!result) return SPELL_FAILED_NO_EDIBLE_CORPSES; return SPELL_CAST_OK; diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp index b3d70c52e03..4b3074888cb 100644 --- a/src/server/scripts/Spells/spell_quest.cpp +++ b/src/server/scripts/Spells/spell_quest.cpp @@ -1594,12 +1594,12 @@ class spell_q11010_q11102_q11023_choose_loc : public SpellScriptLoader std::list<Player*> playerList; Trinity::AnyPlayerInObjectRangeCheck checker(caster, 65.0f); Trinity::PlayerListSearcher<Trinity::AnyPlayerInObjectRangeCheck> searcher(caster, playerList, checker); - caster->VisitNearbyWorldObject(65.0f, searcher); - for (std::list<Player*>::const_iterator itr = playerList.begin(); itr != playerList.end(); ++itr) + Cell::VisitWorldObjects(caster, searcher, 65.0f); + for (std::list<Player*>::const_iterator itr = playerList.begin(); itr != playerList.end(); ++itr) // Check if found player target is on fly mount or using flying form - if ((*itr)->HasAuraType(SPELL_AURA_FLY) || (*itr)->HasAuraType(SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED)) - // Summom Fel Cannon (bunny version) at found player - caster->SummonCreature(NPC_FEL_CANNON2, (*itr)->GetPositionX(), (*itr)->GetPositionY(), (*itr)->GetPositionZ()); + if ((*itr)->HasAuraType(SPELL_AURA_FLY) || (*itr)->HasAuraType(SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED)) + // Summom Fel Cannon (bunny version) at found player + caster->SummonCreature(NPC_FEL_CANNON2, (*itr)->GetPositionX(), (*itr)->GetPositionY(), (*itr)->GetPositionZ()); } void Register() override diff --git a/src/server/scripts/World/npcs_special.cpp b/src/server/scripts/World/npcs_special.cpp index b63dfcd2473..7a8b8e77e9a 100644 --- a/src/server/scripts/World/npcs_special.cpp +++ b/src/server/scripts/World/npcs_special.cpp @@ -564,7 +564,7 @@ public: std::list<Player*> players; Trinity::UnitAuraCheck check(true, SPELL_RIBBON_DANCE_COSMETIC); Trinity::PlayerListSearcher<Trinity::UnitAuraCheck> searcher(me, players, check); - me->VisitNearbyWorldObject(10.0f, searcher); + Cell::VisitWorldObjects(me, searcher, 10.0f); return players.empty(); } |