mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-17 19:05:42 +00:00
feat(Core/Grids): Remove WorldObject separation in grid containers (#22595)
This commit is contained in:
@@ -911,7 +911,7 @@ public:
|
||||
Creature* passenger = nullptr;
|
||||
Acore::AllCreaturesOfEntryInRange check(handler->GetPlayer(), entry, 20.0f);
|
||||
Acore::CreatureSearcher<Acore::AllCreaturesOfEntryInRange> searcher(handler->GetPlayer(), passenger, check);
|
||||
Cell::VisitAllObjects(handler->GetPlayer(), searcher, 30.0f);
|
||||
Cell::VisitObjects(handler->GetPlayer(), searcher, 30.0f);
|
||||
|
||||
if (!passenger || passenger == target)
|
||||
return false;
|
||||
|
||||
@@ -2451,7 +2451,7 @@ public:
|
||||
|
||||
Acore::RespawnDo u_do;
|
||||
Acore::WorldObjectWorker<Acore::RespawnDo> worker(player, u_do);
|
||||
Cell::VisitGridObjects(player, worker, player->GetGridActivationRange());
|
||||
Cell::VisitObjects(player, worker, player->GetGridActivationRange());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -268,7 +268,7 @@ public:
|
||||
std::list<Creature*> creatureList;
|
||||
Acore::AnyUnitInObjectRangeCheck go_check(object, radius);
|
||||
Acore::CreatureListSearcher<Acore::AnyUnitInObjectRangeCheck> go_search(object, creatureList, go_check);
|
||||
Cell::VisitGridObjects(object, go_search, radius);
|
||||
Cell::VisitObjects(object, go_search, radius);
|
||||
|
||||
if (!creatureList.empty())
|
||||
{
|
||||
|
||||
@@ -793,7 +793,7 @@ struct npc_brewfest_super_brew_trigger : public ScriptedAI
|
||||
Player* player = nullptr;
|
||||
Acore::AnyPlayerInObjectRangeCheck checker(me, 2.0f);
|
||||
Acore::PlayerSearcher<Acore::AnyPlayerInObjectRangeCheck> searcher(me, player, checker);
|
||||
Cell::VisitWorldObjects(me, searcher, 2.0f);
|
||||
Cell::VisitObjects(me, searcher, 2.0f);
|
||||
if (player)
|
||||
{
|
||||
player->CastSpell(player, SPELL_DRUNKEN_MASTER, true);
|
||||
|
||||
@@ -807,7 +807,7 @@ struct npc_hallows_end_soh : public ScriptedAI
|
||||
std::list<Player*> players;
|
||||
Acore::AnyPlayerInObjectRangeCheck checker(me, 60.f);
|
||||
Acore::PlayerListSearcher<Acore::AnyPlayerInObjectRangeCheck> searcher(me, players, checker);
|
||||
Cell::VisitWorldObjects(me, searcher, 60.f);
|
||||
Cell::VisitObjects(me, searcher, 60.f);
|
||||
if (players.empty())
|
||||
{
|
||||
return;
|
||||
@@ -887,7 +887,7 @@ struct npc_hallows_end_soh : public ScriptedAI
|
||||
std::list<Player*> players;
|
||||
Acore::AnyPlayerInObjectRangeCheck checker(me, radius);
|
||||
Acore::PlayerListSearcher<Acore::AnyPlayerInObjectRangeCheck> searcher(me, players, checker);
|
||||
Cell::VisitWorldObjects(me, searcher, radius);
|
||||
Cell::VisitObjects(me, searcher, radius);
|
||||
|
||||
for (Player* player : players)
|
||||
{
|
||||
|
||||
@@ -407,7 +407,7 @@ class spell_love_is_in_the_air_romantic_picnic : public AuraScript
|
||||
std::list<Player*> playerList;
|
||||
Acore::AnyPlayerInObjectRangeCheck checker(target, INTERACTION_DISTANCE * 2);
|
||||
Acore::PlayerListSearcher<Acore::AnyPlayerInObjectRangeCheck> searcher(target, playerList, checker);
|
||||
Cell::VisitWorldObjects(target, searcher, INTERACTION_DISTANCE * 2);
|
||||
Cell::VisitObjects(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)
|
||||
|
||||
@@ -198,7 +198,7 @@ public:
|
||||
std::list<WorldObject*> ClusterList;
|
||||
Acore::AllWorldObjectsInRange objects(me, 50.0f);
|
||||
Acore::WorldObjectListSearcher<Acore::AllWorldObjectsInRange> searcher(me, ClusterList, objects);
|
||||
Cell::VisitAllObjects(me, searcher, 50.0f);
|
||||
Cell::VisitObjects(me, searcher, 50.0f);
|
||||
for (std::list<WorldObject*>::const_iterator itr = ClusterList.begin(); itr != ClusterList.end(); ++itr)
|
||||
{
|
||||
if (Player* player = (*itr)->ToPlayer())
|
||||
|
||||
@@ -178,7 +178,7 @@ struct boss_ouro : public BossAI
|
||||
std::list<WorldObject*> targets;
|
||||
Acore::AllWorldObjectsInRange checker(me, 10.0f);
|
||||
Acore::WorldObjectListSearcher<Acore::AllWorldObjectsInRange> searcher(me, targets, checker);
|
||||
Cell::VisitAllObjects(me, searcher, 10.0f);
|
||||
Cell::VisitObjects(me, searcher, 10.0f);
|
||||
|
||||
for (WorldObject* target : targets)
|
||||
{
|
||||
|
||||
@@ -498,7 +498,7 @@ class spell_zulfarrak_unlocking : public SpellScript
|
||||
std::list<WorldObject*> cagesList;
|
||||
Acore::AllWorldObjectsInRange objects(GetCaster(), 15.0f);
|
||||
Acore::WorldObjectListSearcher<Acore::AllWorldObjectsInRange> searcher(GetCaster(), cagesList, objects);
|
||||
Cell::VisitAllObjects(GetCaster(), searcher, 15.0f);
|
||||
Cell::VisitObjects(GetCaster(), searcher, 15.0f);
|
||||
for (std::list<WorldObject*>::const_iterator itr = cagesList.begin(); itr != cagesList.end(); ++itr)
|
||||
{
|
||||
if (GameObject* go = (*itr)->ToGameObject())
|
||||
|
||||
@@ -653,7 +653,7 @@ public:
|
||||
Unit* unit = nullptr;
|
||||
Acore::MostHPMissingInRange u_check(me, 40.f, 1500);
|
||||
Acore::UnitLastSearcher<Acore::MostHPMissingInRange> searcher(me, unit, u_check);
|
||||
Cell::VisitGridObjects(me, searcher, 40.f);
|
||||
Cell::VisitObjects(me, searcher, 40.f);
|
||||
if (unit)
|
||||
{
|
||||
DoCast(unit, SPELL_HEAL);
|
||||
@@ -671,7 +671,7 @@ public:
|
||||
Unit* unit = nullptr;
|
||||
Acore::MostHPMissingInRange u_check(me, 40.f, 700);
|
||||
Acore::UnitLastSearcher<Acore::MostHPMissingInRange> searcher(me, unit, u_check);
|
||||
Cell::VisitGridObjects(me, searcher, 40.f);
|
||||
Cell::VisitObjects(me, searcher, 40.f);
|
||||
if (unit)
|
||||
{
|
||||
DoCast(unit, SPELL_RENEW);
|
||||
|
||||
@@ -333,7 +333,7 @@ public:
|
||||
std::list<Player*> playerOnQuestList;
|
||||
Acore::AnyPlayerInObjectRangeCheck checker(me, 5.0f);
|
||||
Acore::PlayerListSearcher<Acore::AnyPlayerInObjectRangeCheck> searcher(me, playerOnQuestList, checker);
|
||||
Cell::VisitWorldObjects(me, searcher, 5.0f);
|
||||
Cell::VisitObjects(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
|
||||
|
||||
@@ -673,7 +673,7 @@ public:
|
||||
// Reset The Frozen Throne gameobjects
|
||||
FrozenThroneResetWorker reset;
|
||||
Acore::GameObjectWorker<FrozenThroneResetWorker> worker(me, reset);
|
||||
Cell::VisitGridObjects(me, worker, 333.0f);
|
||||
Cell::VisitObjects(me, worker, 333.0f);
|
||||
|
||||
me->AddAura(SPELL_EMOTE_SIT_NO_SHEATH, me);
|
||||
me->SetImmuneToPC(true);
|
||||
|
||||
@@ -224,7 +224,7 @@ public:
|
||||
bool Execute(uint64 /*currTime*/, uint32 /*diff*/) override
|
||||
{
|
||||
Acore::CreatureWorker<ValithriaDespawner> worker(_creature, *this);
|
||||
Cell::VisitGridObjects(_creature, worker, 333.0f);
|
||||
Cell::VisitObjects(_creature, worker, 333.0f);
|
||||
_creature->AI()->Reset();
|
||||
_creature->setActive(false);
|
||||
return true;
|
||||
@@ -545,7 +545,7 @@ public:
|
||||
std::list<Creature*> archmages;
|
||||
RisenArchmageCheck check;
|
||||
Acore::CreatureListSearcher<RisenArchmageCheck> searcher(me, archmages, check);
|
||||
Cell::VisitGridObjects(me, searcher, 100.0f);
|
||||
Cell::VisitObjects(me, searcher, 100.0f);
|
||||
for (std::list<Creature*>::iterator itr = archmages.begin(); itr != archmages.end(); ++itr)
|
||||
(*itr)->AI()->DoAction(ACTION_ENTER_COMBAT);
|
||||
}
|
||||
|
||||
@@ -856,7 +856,7 @@ public:
|
||||
std::list<Creature*> temp;
|
||||
FrostwingVrykulSearcher check(me, 150.0f);
|
||||
Acore::CreatureListSearcher<FrostwingVrykulSearcher> searcher(me, temp, check);
|
||||
Cell::VisitGridObjects(me, searcher, 150.0f);
|
||||
Cell::VisitObjects(me, searcher, 150.0f);
|
||||
|
||||
_aliveTrash.clear();
|
||||
for (std::list<Creature*>::iterator itr = temp.begin(); itr != temp.end(); ++itr)
|
||||
@@ -901,14 +901,14 @@ public:
|
||||
Player* player = nullptr;
|
||||
Acore::AnyPlayerInObjectRangeCheck check(me, 140.0f);
|
||||
Acore::PlayerSearcher<Acore::AnyPlayerInObjectRangeCheck> searcher(me, player, check);
|
||||
Cell::VisitWorldObjects(me, searcher, 140.0f);
|
||||
Cell::VisitObjects(me, searcher, 140.0f);
|
||||
// wipe
|
||||
if (!player || me->GetExactDist(4357.0f, 2606.0f, 350.0f) > 125.0f)
|
||||
{
|
||||
//Talk(SAY_CROK_DEATH);
|
||||
FrostwingGauntletRespawner respawner;
|
||||
Acore::CreatureWorker<FrostwingGauntletRespawner> worker(me, respawner);
|
||||
Cell::VisitGridObjects(me, worker, 333.0f);
|
||||
Cell::VisitObjects(me, worker, 333.0f);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -1365,7 +1365,7 @@ public:
|
||||
Creature* target = nullptr;
|
||||
Acore::MostHPMissingInRange u_check(me, 60.0f, 0);
|
||||
Acore::CreatureLastSearcher<Acore::MostHPMissingInRange> searcher(me, target, u_check);
|
||||
Cell::VisitGridObjects(me, searcher, 60.0f);
|
||||
Cell::VisitObjects(me, searcher, 60.0f);
|
||||
return target;
|
||||
}
|
||||
};
|
||||
@@ -2261,7 +2261,7 @@ public:
|
||||
{
|
||||
FrostwingGauntletRespawner respawner;
|
||||
Acore::CreatureWorker<FrostwingGauntletRespawner> worker(crok, respawner);
|
||||
Cell::VisitGridObjects(crok, worker, 333.0f);
|
||||
Cell::VisitObjects(crok, worker, 333.0f);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
|
||||
@@ -1665,7 +1665,7 @@ class spell_vehicle_throw_passenger : public SpellScript
|
||||
std::list<WorldObject*> targetList;
|
||||
Acore::WorldObjectSpellAreaTargetCheck check(99, GetExplTargetDest(), GetCaster(), GetCaster(), GetSpellInfo(), TARGET_CHECK_DEFAULT, nullptr);
|
||||
Acore::WorldObjectListSearcher<Acore::WorldObjectSpellAreaTargetCheck> searcher(GetCaster(), targetList, check);
|
||||
Cell::VisitAllObjects(GetCaster(), searcher, 99.0f);
|
||||
Cell::VisitObjects(GetCaster(), searcher, 99.0f);
|
||||
float minDist = 99 * 99;
|
||||
Unit* target = nullptr;
|
||||
for (std::list<WorldObject*>::iterator itr = targetList.begin(); itr != targetList.end(); ++itr)
|
||||
|
||||
@@ -1067,7 +1067,7 @@ public:
|
||||
go->Delete();
|
||||
WretchedGhoulCleaner cleaner;
|
||||
Acore::CreatureWorker<WretchedGhoulCleaner> worker(me, cleaner);
|
||||
Cell::VisitGridObjects(me, worker, 150.0f);
|
||||
Cell::VisitObjects(me, worker, 150.0f);
|
||||
}
|
||||
|
||||
void Reset() override
|
||||
@@ -1281,7 +1281,7 @@ public:
|
||||
{
|
||||
WretchedGhoulCleaner cleaner;
|
||||
Acore::CreatureWorker<WretchedGhoulCleaner> worker(me, cleaner);
|
||||
Cell::VisitGridObjects(me, worker, 150.0f);
|
||||
Cell::VisitObjects(me, worker, 150.0f);
|
||||
|
||||
if (Creature* c = me->FindNearestCreature(NPC_SAC_LIGHTS_VENGEANCE, 150.0f, true))
|
||||
if (Creature* v = me->FindNearestCreature(NPC_SAC_VEGARD_1, 50.0f, true))
|
||||
|
||||
@@ -615,7 +615,7 @@ bool OPvPCapturePointNA::Update(uint32 diff)
|
||||
std::list<Player*> players;
|
||||
Acore::AnyPlayerInObjectRangeCheck checker(_capturePoint, radius);
|
||||
Acore::PlayerListSearcher<Acore::AnyPlayerInObjectRangeCheck> searcher(_capturePoint, players, checker);
|
||||
Cell::VisitWorldObjects(_capturePoint, searcher, radius);
|
||||
Cell::VisitObjects(_capturePoint, searcher, radius);
|
||||
|
||||
for (Player* player : players)
|
||||
{
|
||||
|
||||
@@ -699,7 +699,7 @@ public:
|
||||
std::list<WorldObject*> ClusterList;
|
||||
Acore::AllWorldObjectsInRange objects(me, searchDistance);
|
||||
Acore::WorldObjectListSearcher<Acore::AllWorldObjectsInRange> searcher(me, ClusterList, objects);
|
||||
Cell::VisitAllObjects(me, searcher, searchDistance);
|
||||
Cell::VisitObjects(me, searcher, searchDistance);
|
||||
|
||||
for (std::list<WorldObject*>::const_iterator i = ClusterList.begin(); i != ClusterList.end(); ++i)
|
||||
{
|
||||
|
||||
@@ -174,7 +174,7 @@ struct npc_pet_dk_ebon_gargoyle : ScriptedAI
|
||||
std::list<Unit*> targets;
|
||||
Acore::AnyUnfriendlyUnitInObjectRangeCheck u_check(me, me, 50.0f);
|
||||
Acore::UnitListSearcher<Acore::AnyUnfriendlyUnitInObjectRangeCheck> searcher(me, targets, u_check);
|
||||
Cell::VisitAllObjects(me, searcher, 50.0f);
|
||||
Cell::VisitObjects(me, searcher, 50.0f);
|
||||
for (auto const& target : targets)
|
||||
if (target->GetAura(SPELL_DK_SUMMON_GARGOYLE_1, me->GetOwnerGUID()))
|
||||
{
|
||||
|
||||
@@ -1358,11 +1358,7 @@ class spell_gen_cannibalize : public SpellScript
|
||||
// search for nearby enemy corpse in range
|
||||
Acore::AnyDeadUnitSpellTargetInRangeCheck check(caster, max_range, GetSpellInfo(), TARGET_CHECK_CORPSE);
|
||||
Acore::WorldObjectSearcher<Acore::AnyDeadUnitSpellTargetInRangeCheck> searcher(caster, result, check);
|
||||
Cell::VisitWorldObjects(caster, searcher, max_range);
|
||||
if (!result)
|
||||
{
|
||||
Cell::VisitGridObjects(caster, searcher, max_range);
|
||||
}
|
||||
Cell::VisitObjects(caster, searcher, max_range);
|
||||
if (!result)
|
||||
{
|
||||
return SPELL_FAILED_NO_EDIBLE_CORPSES;
|
||||
|
||||
@@ -843,11 +843,7 @@ class spell_hun_pet_carrion_feeder : public SpellScript
|
||||
// search for nearby enemy corpse in range
|
||||
Acore::AnyDeadUnitSpellTargetInRangeCheck check(caster, max_range, GetSpellInfo(), TARGET_CHECK_ENEMY);
|
||||
Acore::WorldObjectSearcher<Acore::AnyDeadUnitSpellTargetInRangeCheck> searcher(caster, result, check);
|
||||
Cell::VisitWorldObjects(caster, searcher, max_range);
|
||||
if (!result)
|
||||
{
|
||||
Cell::VisitGridObjects(caster, searcher, max_range);
|
||||
}
|
||||
Cell::VisitObjects(caster, searcher, max_range);
|
||||
if (!result)
|
||||
{
|
||||
return SPELL_FAILED_NO_EDIBLE_CORPSES;
|
||||
|
||||
@@ -1876,7 +1876,7 @@ class spell_q11010_q11102_q11023_choose_loc : public SpellScript
|
||||
std::list<Player*> playerList;
|
||||
Acore::AnyPlayerInObjectRangeCheck checker(caster, 65.0f);
|
||||
Acore::PlayerListSearcher<Acore::AnyPlayerInObjectRangeCheck> searcher(caster, playerList, checker);
|
||||
Cell::VisitWorldObjects(caster, searcher, 65.0f);
|
||||
Cell::VisitObjects(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)->HasFlyAura() || (*itr)->HasIncreaseMountedFlightSpeedAura())
|
||||
|
||||
@@ -322,7 +322,7 @@ public:
|
||||
std::list<Player*> players;
|
||||
Acore::AnyPlayerExactPositionInGameObjectRangeCheck checker(me, 0.3f);
|
||||
Acore::PlayerListSearcher<Acore::AnyPlayerExactPositionInGameObjectRangeCheck> searcher(me, players, checker);
|
||||
Cell::VisitWorldObjects(me, searcher, 0.3f);
|
||||
Cell::VisitObjects(me, searcher, 0.3f);
|
||||
|
||||
if (players.size() > 0)
|
||||
{
|
||||
@@ -369,7 +369,7 @@ public:
|
||||
std::list<Player*> players;
|
||||
Acore::AnyPlayerExactPositionInGameObjectRangeCheck checker(me, 0.3f);
|
||||
Acore::PlayerListSearcher<Acore::AnyPlayerExactPositionInGameObjectRangeCheck> searcher(me, players, checker);
|
||||
Cell::VisitWorldObjects(me, searcher, 0.3f);
|
||||
Cell::VisitObjects(me, searcher, 0.3f);
|
||||
|
||||
if (players.size() > 0)
|
||||
{
|
||||
@@ -823,7 +823,7 @@ public:
|
||||
std::list<Player*> targets;
|
||||
Acore::AnyPlayerInObjectRangeCheck check(me, me->GetVisibilityRange(), false);
|
||||
Acore::PlayerListSearcherWithSharedVision<Acore::AnyPlayerInObjectRangeCheck> searcher(me, targets, check);
|
||||
Cell::VisitWorldObjects(me, searcher, me->GetVisibilityRange());
|
||||
Cell::VisitObjects(me, searcher, me->GetVisibilityRange());
|
||||
for (Player* player : targets)
|
||||
{
|
||||
if (player->GetTeamId() == TEAM_HORDE)
|
||||
|
||||
@@ -931,7 +931,7 @@ struct npc_pallid_horror : public ScriptedAI
|
||||
std::list<Creature*> targets;
|
||||
FlameshockerCheck check;
|
||||
Acore::CreatureListSearcher<FlameshockerCheck> searcher(me, targets, check);
|
||||
Cell::VisitGridObjects(me, searcher, VISIBILITY_DISTANCE_NORMAL);
|
||||
Cell::VisitObjects(me, searcher, VISIBILITY_DISTANCE_NORMAL);
|
||||
|
||||
if (!targets.empty())
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user