From dc9e0c1e86efbabb52085b3977ec1258f4fbb986 Mon Sep 17 00:00:00 2001 From: Maks Szokalski <42069493+illunix@users.noreply.github.com> Date: Fri, 28 Aug 2020 23:13:26 +0200 Subject: Scripts: Minor loop refactors (#25325) --- src/server/scripts/Pet/pet_dk.cpp | 8 +++++--- src/server/scripts/Pet/pet_hunter.cpp | 16 ++++++++-------- 2 files changed, 13 insertions(+), 11 deletions(-) (limited to 'src/server/scripts/Pet') diff --git a/src/server/scripts/Pet/pet_dk.cpp b/src/server/scripts/Pet/pet_dk.cpp index 63aaf99b146..200c81ac3a4 100644 --- a/src/server/scripts/Pet/pet_dk.cpp +++ b/src/server/scripts/Pet/pet_dk.cpp @@ -57,12 +57,14 @@ class npc_pet_dk_ebon_gargoyle : public CreatureScript Trinity::AnyUnfriendlyUnitInObjectRangeCheck u_check(me, me, 30.0f); Trinity::UnitListSearcher searcher(me, targets, u_check); Cell::VisitAllObjects(me, searcher, 30.0f); - for (std::list::const_iterator iter = targets.begin(); iter != targets.end(); ++iter) - if ((*iter)->HasAura(SPELL_DK_SUMMON_GARGOYLE_1, ownerGuid)) + for (Unit* target : targets) + { + if (target->HasAura(SPELL_DK_SUMMON_GARGOYLE_1, ownerGuid)) { - me->Attack((*iter), false); + me->Attack(target, false); break; } + } } void JustDied(Unit* /*killer*/) override diff --git a/src/server/scripts/Pet/pet_hunter.cpp b/src/server/scripts/Pet/pet_hunter.cpp index e575a6b3791..779746b451c 100644 --- a/src/server/scripts/Pet/pet_hunter.cpp +++ b/src/server/scripts/Pet/pet_hunter.cpp @@ -95,20 +95,20 @@ class npc_pet_hunter_snake_trap : public CreatureScript Unit* summoner = me->ToTempSummon()->GetSummonerUnit(); std::vector targets; - for (std::pair const& pair : summoner->GetCombatManager().GetPvPCombatRefs()) + + auto addTargetIfValid = [this, &targets, summoner](CombatReference* ref) mutable { - Unit* enemy = pair.second->GetOther(summoner); + Unit* enemy = ref->GetOther(summoner); if (!enemy->HasBreakableByDamageCrowdControlAura() && me->CanCreatureAttack(enemy) && me->IsWithinDistInMap(enemy, me->GetAttackDistance(enemy))) targets.push_back(enemy); - } + }; + + for (std::pair const& pair : summoner->GetCombatManager().GetPvPCombatRefs()) + addTargetIfValid(pair.second); if (targets.empty()) for (std::pair const& pair : summoner->GetCombatManager().GetPvECombatRefs()) - { - Unit* enemy = pair.second->GetOther(summoner); - if (!enemy->HasBreakableByDamageCrowdControlAura() && me->CanCreatureAttack(enemy) && me->IsWithinDistInMap(enemy, me->GetAttackDistance(enemy))) - targets.push_back(enemy); - } + addTargetIfValid(pair.second); for (Unit* target : targets) me->EngageWithTarget(target); -- cgit v1.2.3