diff options
| author | Treeston <treeston.mmoc@gmail.com> | 2018-03-08 18:41:46 +0100 |
|---|---|---|
| committer | Treeston <treeston.mmoc@gmail.com> | 2018-03-08 18:41:46 +0100 |
| commit | df639d85e4e82add71432ea0a4cba91f238a30ba (patch) | |
| tree | 6fffc85dae24ae1a71db094231a928c5da41609c /src | |
| parent | 5df0a020fa54cc658ec6ae8e5df1cecd2cf3d3dc (diff) | |
Core/CreatureAI: CheckBoundary -> IsInBoundary, better reflects what it does. Also moved to public so spellscript can use it.
Diffstat (limited to 'src')
8 files changed, 15 insertions, 16 deletions
diff --git a/src/server/game/AI/CreatureAI.cpp b/src/server/game/AI/CreatureAI.cpp index fec1166481a..22e2226af50 100644 --- a/src/server/game/AI/CreatureAI.cpp +++ b/src/server/game/AI/CreatureAI.cpp @@ -258,13 +258,13 @@ int32 CreatureAI::VisualizeBoundary(uint32 duration, Unit* owner, bool fill) con std::unordered_set<coordinate> outOfBounds; Position startPosition = owner->GetPosition(); - if (!CheckBoundary(&startPosition)) + if (!IsInBoundary(&startPosition)) { // fall back to creature position startPosition = me->GetPosition(); - if (!CheckBoundary(&startPosition)) + if (!IsInBoundary(&startPosition)) { // fall back to creature home position startPosition = me->GetHomePosition(); - if (!CheckBoundary(&startPosition)) + if (!IsInBoundary(&startPosition)) return LANG_CREATURE_NO_INTERIOR_POINT_FOUND; } } @@ -287,7 +287,7 @@ int32 CreatureAI::VisualizeBoundary(uint32 duration, Unit* owner, bool fill) con if (alreadyChecked.find(next) == alreadyChecked.end()) // never check a coordinate twice { Position nextPos(startPosition.GetPositionX() + next.first*BOUNDARY_VISUALIZE_STEP_SIZE, startPosition.GetPositionY() + next.second*BOUNDARY_VISUALIZE_STEP_SIZE, startPosition.GetPositionZ()); - if (CheckBoundary(&nextPos)) + if (IsInBoundary(&nextPos)) Q.push(next); else { @@ -314,7 +314,7 @@ int32 CreatureAI::VisualizeBoundary(uint32 duration, Unit* owner, bool fill) con return boundsWarning ? LANG_CREATURE_MOVEMENT_MAYBE_UNBOUNDED : 0; } -bool CreatureAI::CheckBoundary(Position const* who) const +bool CreatureAI::IsInBoundary(Position const* who) const { if (!_boundary) return true; @@ -336,7 +336,7 @@ bool CreatureAI::IsInBounds(CreatureBoundary const& boundary, Position const* po bool CreatureAI::CheckInRoom() { - if (CheckBoundary()) + if (IsInBoundary()) return true; else { diff --git a/src/server/game/AI/CreatureAI.h b/src/server/game/AI/CreatureAI.h index 94244445587..78b276325de 100644 --- a/src/server/game/AI/CreatureAI.h +++ b/src/server/game/AI/CreatureAI.h @@ -80,8 +80,6 @@ class TC_GAME_API CreatureAI : public UnitAI Creature* DoSummon(uint32 entry, WorldObject* obj, float radius = 5.0f, uint32 despawnTime = 30000, TempSummonType summonType = TEMPSUMMON_CORPSE_TIMED_DESPAWN); Creature* DoSummonFlyer(uint32 entry, WorldObject* obj, float flightZ, float radius = 5.0f, uint32 despawnTime = 30000, TempSummonType summonType = TEMPSUMMON_CORPSE_TIMED_DESPAWN); - bool CheckBoundary(Position const* who = nullptr) const; - public: enum EvadeReason { @@ -224,6 +222,7 @@ class TC_GAME_API CreatureAI : public UnitAI void SetBoundary(CreatureBoundary const* boundary, bool negativeBoundaries = false); static bool IsInBounds(CreatureBoundary const& boundary, Position const* who); + bool IsInBoundary(Position const* who = nullptr) const; protected: virtual void MoveInLineOfSight(Unit* /*who*/); diff --git a/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp b/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp index d3aba9f9a04..414e86a3e1e 100644 --- a/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp +++ b/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp @@ -523,7 +523,7 @@ void BossAI::TeleportCheaters() for (auto const& pair : me->GetCombatManager().GetPvECombatRefs()) { Unit* target = pair.second->GetOther(me); - if (target->IsControlledByPlayer() && !CheckBoundary(target)) + if (target->IsControlledByPlayer() && !IsInBoundary(target)) target->NearTeleportTo(x, y, z, 0); } } @@ -562,7 +562,7 @@ void BossAI::UpdateAI(uint32 diff) bool BossAI::CanAIAttack(Unit const* target) const { - return CheckBoundary(target); + return IsInBoundary(target); } void BossAI::_DespawnAtEvade(Seconds delayToRespawn, Creature* who) diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp index f13f4269ed3..969ca6cd63f 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp @@ -767,7 +767,7 @@ class npc_halion_controller : public CreatureScript Map::PlayerList const& players = me->GetMap()->GetPlayers(); for (Map::PlayerList::const_iterator i = players.begin(); i != players.end(); ++i) if (Player* player = i->GetSource()) - if (player->IsAlive() && CheckBoundary(player) && !player->IsGameMaster()) + if (player->IsAlive() && IsInBoundary(player) && !player->IsGameMaster()) return; EnterEvadeMode(EVADE_REASON_NO_HOSTILES); diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp index d8db758f8cc..7c2ea2a09af 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp @@ -1245,7 +1245,7 @@ class npc_thorim_arena_phase : public CreatureScript if (_isInArena && HeightPositionCheck(true)(who)) return false; - return CheckBoundary(who); + return IsInBoundary(who); } void Reset() override @@ -1338,7 +1338,7 @@ struct npc_thorim_minibossAI : public ScriptedAI bool CanAIAttack(Unit const* who) const final override { - return CheckBoundary(who); + return IsInBoundary(who); } void JustSummoned(Creature* summon) final override diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp index 46bf8df220f..bbe2b972d27 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp @@ -1072,7 +1072,7 @@ class instance_ulduar : public InstanceMapScript void AddDoor(GameObject* door, bool add) override { // Leviathan doors are South except the one it uses to enter the room - // which is North and should not be used for boundary checks in BossAI::CheckBoundary() + // which is North and should not be used for boundary checks in BossAI::IsInBoundary() if (door->GetEntry() == GO_LEVIATHAN_DOOR && door->GetPositionX() > 400.f) { if (add) diff --git a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp index 31bfb9c919d..9a619f742f0 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp @@ -685,7 +685,7 @@ struct boss_illidan_stormrage : public BossAI Map::PlayerList const& players = me->GetMap()->GetPlayers(); for (Map::PlayerList::const_iterator i = players.begin(); i != players.end(); ++i) if (Player* player = i->GetSource()) - if (player->IsAlive() && !player->IsGameMaster() && CheckBoundary(player)) + if (player->IsAlive() && !player->IsGameMaster() && IsInBoundary(player)) return; EnterEvadeMode(EVADE_REASON_NO_HOSTILES); diff --git a/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp b/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp index 4d34034530c..0e9583202ae 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp @@ -288,7 +288,7 @@ struct boss_shade_of_akama : public BossAI Map::PlayerList const& players = me->GetMap()->GetPlayers(); for (Map::PlayerList::const_iterator i = players.begin(); i != players.end(); ++i) if (Player* player = i->GetSource()) - if (player->IsAlive() && !player->IsGameMaster() && CheckBoundary(player)) + if (player->IsAlive() && !player->IsGameMaster() && IsInBoundary(player)) return; EnterEvadeMode(EVADE_REASON_NO_HOSTILES); |
