From 86a2e9474621375552d24bbd830c86cc35c3b9df Mon Sep 17 00:00:00 2001 From: Skjalf <47818697+Nyeriah@users.noreply.github.com> Date: Tue, 7 Mar 2023 05:32:53 -0300 Subject: [PATCH] feat(Core/AI): Implement DoForAllSummons() function to summon lists (#15262) --- src/server/game/AI/ScriptedAI/ScriptedCreature.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/server/game/AI/ScriptedAI/ScriptedCreature.h b/src/server/game/AI/ScriptedAI/ScriptedCreature.h index 4778c2215..744d2d75d 100644 --- a/src/server/game/AI/ScriptedAI/ScriptedCreature.h +++ b/src/server/game/AI/ScriptedAI/ScriptedCreature.h @@ -139,6 +139,20 @@ public: } } + void DoForAllSummons(std::function exec) + { + // We need to use a copy of SummonList here, otherwise original SummonList would be modified + StorageType listCopy = storage_; + + for (auto const& guid : listCopy) + { + if (WorldObject* summon = ObjectAccessor::GetWorldObject(*me, guid)) + { + exec(summon); + } + } + } + void DoZoneInCombat(uint32 entry = 0); void RemoveNotExisting(); bool HasEntry(uint32 entry) const;