aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Unit
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2025-07-11 17:40:34 +0200
committerShauren <shauren.trinity@gmail.com>2025-07-11 17:40:34 +0200
commitcbb532e4bec11d59f2072441a43b7c797de6d16d (patch)
tree27a0dc63805e527d2f47744963fc2f341493ce27 /src/server/game/Entities/Unit
parentae197a62b77cd93799571b16756c372081704929 (diff)
Core/Groups: Use iterators instead of raw LinkedListElement to interact with group members
Diffstat (limited to 'src/server/game/Entities/Unit')
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp20
1 files changed, 10 insertions, 10 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 63eeb3b1ea2..91ab4c5168c 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -6612,18 +6612,18 @@ Unit* Unit::GetNextRandomRaidMemberOrPet(float radius)
// reserve place for players and pets because resizing vector every unit push is unefficient (vector is reallocated then)
nearMembers.reserve(group->GetMembersCount() * 2);
- for (GroupReference* itr = group->GetFirstMember(); itr != nullptr; itr = itr->next())
- if (Player* Target = itr->GetSource())
- {
- // IsHostileTo check duel and controlled by enemy
- if (Target != this && IsWithinDistInMap(Target, radius) && Target->IsAlive() && !IsHostileTo(Target))
- nearMembers.push_back(Target);
+ for (GroupReference const& itr : group->GetMembers())
+ {
+ Player* Target = itr.GetSource();
+ // IsHostileTo check duel and controlled by enemy
+ if (Target != this && IsWithinDistInMap(Target, radius) && Target->IsAlive() && !IsHostileTo(Target))
+ nearMembers.push_back(Target);
// Push player's pet to vector
if (Unit* pet = Target->GetGuardianPet())
if (pet != this && IsWithinDistInMap(pet, radius) && pet->IsAlive() && !IsHostileTo(pet))
nearMembers.push_back(pet);
- }
+ }
if (nearMembers.empty())
return nullptr;
@@ -11978,12 +11978,12 @@ void Unit::GetPartyMembers(std::list<Unit*> &TagUnitMap)
{
uint8 subgroup = owner->ToPlayer()->GetSubGroup();
- for (GroupReference* itr = group->GetFirstMember(); itr != nullptr; itr = itr->next())
+ for (GroupReference const& itr : group->GetMembers())
{
- Player* Target = itr->GetSource();
+ Player* Target = itr.GetSource();
// IsHostileTo check duel and controlled by enemy
- if (Target && Target->IsInMap(owner) && Target->GetSubGroup() == subgroup && !IsHostileTo(Target))
+ if (Target->IsInMap(owner) && Target->GetSubGroup() == subgroup && !IsHostileTo(Target))
{
if (Target->IsAlive())
TagUnitMap.push_back(Target);