aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/AI
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2017-05-13 19:37:33 +0200
committerariel- <ariel-@users.noreply.github.com>2017-06-19 13:16:13 -0300
commitd6201e5dbb7fa7ca8b47ffa6c0d30fa38dceada5 (patch)
tree24f77462be2079c892dd604b4a1979f476e56e3c /src/server/game/AI
parent7874bee7bfb70e0e039f91173cff212e9572de09 (diff)
Core/Grids: Ported cmangos/mangos-wotlk@ea99457e50790acde8928aa0f3dc4a9c096b4a8c
(cherry picked from commit 9299e9bde087af7e5d777d5a55a3b79d2b63c48e)
Diffstat (limited to 'src/server/game/AI')
-rw-r--r--src/server/game/AI/CoreAI/TotemAI.cpp2
-rw-r--r--src/server/game/AI/ScriptedAI/ScriptedCreature.cpp16
-rw-r--r--src/server/game/AI/SmartScripts/SmartScript.cpp11
3 files changed, 11 insertions, 18 deletions
diff --git a/src/server/game/AI/CoreAI/TotemAI.cpp b/src/server/game/AI/CoreAI/TotemAI.cpp
index 34a147c0620..a44c4532e60 100644
--- a/src/server/game/AI/CoreAI/TotemAI.cpp
+++ b/src/server/game/AI/CoreAI/TotemAI.cpp
@@ -74,7 +74,7 @@ void TotemAI::UpdateAI(uint32 /*diff*/)
victim = NULL;
Trinity::NearestAttackableUnitInObjectRangeCheck u_check(me, me, max_range);
Trinity::UnitLastSearcher<Trinity::NearestAttackableUnitInObjectRangeCheck> checker(me, victim, u_check);
- me->VisitNearbyObject(max_range, checker);
+ Cell::VisitAllObjects(me, checker, max_range);
}
// If have target
diff --git a/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp b/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp
index 34706b6e882..5464b99f8c9 100644
--- a/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp
+++ b/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp
@@ -330,7 +330,7 @@ Unit* ScriptedAI::DoSelectLowestHpFriendly(float range, uint32 minHPDiff)
Unit* unit = nullptr;
Trinity::MostHPMissingInRange u_check(me, range, minHPDiff);
Trinity::UnitLastSearcher<Trinity::MostHPMissingInRange> searcher(me, unit, u_check);
- me->VisitNearbyObject(range, searcher);
+ Cell::VisitAllObjects(me, searcher, range);
return unit;
}
@@ -340,7 +340,7 @@ Unit* ScriptedAI::DoSelectBelowHpPctFriendlyWithEntry(uint32 entry, float range,
Unit* unit = nullptr;
Trinity::FriendlyBelowHpPctEntryInRange u_check(me, entry, range, minHPDiff, excludeSelf);
Trinity::UnitLastSearcher<Trinity::FriendlyBelowHpPctEntryInRange> searcher(me, unit, u_check);
- me->VisitNearbyObject(range, searcher);
+ Cell::VisitAllObjects(me, searcher, range);
return unit;
}
@@ -350,7 +350,7 @@ std::list<Creature*> ScriptedAI::DoFindFriendlyCC(float range)
std::list<Creature*> list;
Trinity::FriendlyCCedInRange u_check(me, range);
Trinity::CreatureListSearcher<Trinity::FriendlyCCedInRange> searcher(me, list, u_check);
- me->VisitNearbyObject(range, searcher);
+ Cell::VisitAllObjects(me, searcher, range);
return list;
}
@@ -360,7 +360,7 @@ std::list<Creature*> ScriptedAI::DoFindFriendlyMissingBuff(float range, uint32 u
std::list<Creature*> list;
Trinity::FriendlyMissingBuffInRange u_check(me, range, uiSpellid);
Trinity::CreatureListSearcher<Trinity::FriendlyMissingBuffInRange> searcher(me, list, u_check);
- me->VisitNearbyObject(range, searcher);
+ Cell::VisitAllObjects(me, searcher, range);
return list;
}
@@ -369,15 +369,9 @@ Player* ScriptedAI::GetPlayerAtMinimumRange(float minimumRange)
{
Player* player = nullptr;
- CellCoord pair(Trinity::ComputeCellCoord(me->GetPositionX(), me->GetPositionY()));
- Cell cell(pair);
- cell.SetNoCreate();
-
Trinity::PlayerAtMinimumRangeAway check(me, minimumRange);
Trinity::PlayerSearcher<Trinity::PlayerAtMinimumRangeAway> searcher(me, player, check);
- TypeContainerVisitor<Trinity::PlayerSearcher<Trinity::PlayerAtMinimumRangeAway>, GridTypeMapContainer> visitor(searcher);
-
- cell.Visit(pair, visitor, *me->GetMap(), *me, minimumRange);
+ Cell::VisitWorldObjects(me, searcher, minimumRange);
return player;
}
diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp
index 969dc87faba..6dc0bd62256 100644
--- a/src/server/game/AI/SmartScripts/SmartScript.cpp
+++ b/src/server/game/AI/SmartScripts/SmartScript.cpp
@@ -2493,7 +2493,7 @@ void SmartScript::GetWorldObjectsInDist(ObjectVector& targets, float dist) const
Trinity::AllWorldObjectsInRange u_check(obj, dist);
Trinity::WorldObjectListSearcher<Trinity::AllWorldObjectsInRange> searcher(obj, targets, u_check);
- obj->VisitNearbyObject(dist, searcher);
+ Cell::VisitAllObjects(obj, searcher, dist);
}
void SmartScript::ProcessEvent(SmartScriptHolder& e, Unit* unit, uint32 var0, uint32 var1, bool bvar, const SpellInfo* spell, GameObject* gob)
@@ -3356,10 +3356,9 @@ Unit* SmartScript::DoSelectLowestHpFriendly(float range, uint32 MinHPDiff) const
return nullptr;
Unit* unit = nullptr;
-
Trinity::MostHPMissingInRange u_check(me, range, MinHPDiff);
Trinity::UnitLastSearcher<Trinity::MostHPMissingInRange> searcher(me, unit, u_check);
- me->VisitNearbyObject(range, searcher);
+ Cell::VisitGridObjects(me, searcher, range);
return unit;
}
@@ -3370,7 +3369,7 @@ void SmartScript::DoFindFriendlyCC(std::vector<Creature*>& creatures, float rang
Trinity::FriendlyCCedInRange u_check(me, range);
Trinity::CreatureListSearcher<Trinity::FriendlyCCedInRange> searcher(me, creatures, u_check);
- me->VisitNearbyObject(range, searcher);
+ Cell::VisitGridObjects(me, searcher, range);
}
void SmartScript::DoFindFriendlyMissingBuff(std::vector<Creature*>& creatures, float range, uint32 spellid) const
@@ -3380,7 +3379,7 @@ void SmartScript::DoFindFriendlyMissingBuff(std::vector<Creature*>& creatures, f
Trinity::FriendlyMissingBuffInRange u_check(me, range, spellid);
Trinity::CreatureListSearcher<Trinity::FriendlyMissingBuffInRange> searcher(me, creatures, u_check);
- me->VisitNearbyObject(range, searcher);
+ Cell::VisitGridObjects(me, searcher, range);
}
Unit* SmartScript::DoFindClosestFriendlyInRange(float range, bool playerOnly) const
@@ -3391,7 +3390,7 @@ Unit* SmartScript::DoFindClosestFriendlyInRange(float range, bool playerOnly) co
Unit* unit = nullptr;
Trinity::AnyFriendlyUnitInObjectRangeCheck u_check(me, me, range, playerOnly);
Trinity::UnitLastSearcher<Trinity::AnyFriendlyUnitInObjectRangeCheck> searcher(me, unit, u_check);
- me->VisitNearbyObject(range, searcher);
+ Cell::VisitAllObjects(me, searcher, range);
return unit;
}