aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Instances/InstanceScript.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2025-06-26 01:19:14 +0200
committerShauren <shauren.trinity@gmail.com>2025-06-26 01:19:14 +0200
commit9247723c0721207dcaea22141861855f4e0a173f (patch)
tree6cc24801d6226d188f2f392f6c33caf00b719b4e /src/server/game/Instances/InstanceScript.cpp
parent17cb655e144b42d1ad5aa5b039edf3552128fa35 (diff)
Core/LFG Fix crash on lfg boss kills
Diffstat (limited to 'src/server/game/Instances/InstanceScript.cpp')
-rw-r--r--src/server/game/Instances/InstanceScript.cpp19
1 files changed, 8 insertions, 11 deletions
diff --git a/src/server/game/Instances/InstanceScript.cpp b/src/server/game/Instances/InstanceScript.cpp
index 6399bd29399..26cbfd86a21 100644
--- a/src/server/game/Instances/InstanceScript.cpp
+++ b/src/server/game/Instances/InstanceScript.cpp
@@ -908,20 +908,17 @@ void InstanceScript::SendBossKillCredit(uint32 encounterId)
void InstanceScript::UpdateLfgEncounterState(BossInfo const* bossInfo)
{
- for (auto const& ref : instance->GetPlayers())
+ for (MapReference const& ref : instance->GetPlayers())
{
- if (Player* player = ref.GetSource())
+ if (Group* grp = ref.GetSource()->GetGroup())
{
- if (Group* grp = player->GetGroup())
+ if (grp->isLFGGroup())
{
- if (grp->isLFGGroup())
- {
- std::array<uint32, MAX_DUNGEON_ENCOUNTERS_PER_BOSS> dungeonEncounterIds;
- std::transform(bossInfo->DungeonEncounters.begin(), bossInfo->DungeonEncounters.end(), dungeonEncounterIds.begin(),
- [](DungeonEncounterEntry const* entry) { return entry->ID; });
- sLFGMgr->OnDungeonEncounterDone(grp->GetGUID(), dungeonEncounterIds, instance);
- break;
- }
+ std::array<uint32, MAX_DUNGEON_ENCOUNTERS_PER_BOSS> dungeonEncounterIds;
+ std::ranges::transform(bossInfo->DungeonEncounters, dungeonEncounterIds.begin(),
+ [](DungeonEncounterEntry const* entry) { return entry ? entry->ID : 0u; });
+ sLFGMgr->OnDungeonEncounterDone(grp->GetGUID(), dungeonEncounterIds, instance);
+ break;
}
}
}