aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/AI/ScriptedAI
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2023-01-06 16:54:16 +0100
committerShauren <shauren.trinity@gmail.com>2023-01-06 16:54:16 +0100
commite8e330addd55dffa8e34716c7e1969ad243d65b3 (patch)
tree2e5cd08a6d1758d9867cc5c4b8aca4591d0e931d /src/server/game/AI/ScriptedAI
parentb65c3f5f4a4edbc953c405bfacd33f186f3a1931 (diff)
Core/Misc: Remove boost::heap::fibonacci_heap from header files
Diffstat (limited to 'src/server/game/AI/ScriptedAI')
-rw-r--r--src/server/game/AI/ScriptedAI/ScriptedCreature.cpp5
-rw-r--r--src/server/game/AI/ScriptedAI/ScriptedCreature.h8
2 files changed, 8 insertions, 5 deletions
diff --git a/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp b/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp
index c6c232f57eb..fd01ee4b423 100644
--- a/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp
+++ b/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp
@@ -109,8 +109,11 @@ bool SummonList::HasEntry(uint32 entry) const
return false;
}
-void SummonList::DoActionImpl(int32 action, StorageType const& summons)
+void SummonList::DoActionImpl(int32 action, StorageType& summons, uint16 max)
{
+ if (max)
+ Trinity::Containers::RandomResize(summons, max);
+
for (ObjectGuid const& guid : summons)
{
Creature* summon = ObjectAccessor::GetCreature(*_me, guid);
diff --git a/src/server/game/AI/ScriptedAI/ScriptedCreature.h b/src/server/game/AI/ScriptedAI/ScriptedCreature.h
index d8d3a356c06..bcb0496ec36 100644
--- a/src/server/game/AI/ScriptedAI/ScriptedCreature.h
+++ b/src/server/game/AI/ScriptedAI/ScriptedCreature.h
@@ -98,9 +98,9 @@ public:
void DoAction(int32 info, Predicate&& predicate, uint16 max = 0)
{
// We need to use a copy of SummonList here, otherwise original SummonList would be modified
- StorageType listCopy = _storage;
- Trinity::Containers::RandomResize<StorageType, Predicate>(listCopy, std::forward<Predicate>(predicate), max);
- DoActionImpl(info, listCopy);
+ StorageType listCopy;
+ std::copy_if(std::begin(_storage), std::end(_storage), std::inserter(listCopy, std::end(listCopy)), predicate);
+ DoActionImpl(info, listCopy, max);
}
void DoZoneInCombat(uint32 entry = 0);
@@ -108,7 +108,7 @@ public:
bool HasEntry(uint32 entry) const;
private:
- void DoActionImpl(int32 action, StorageType const& summons);
+ void DoActionImpl(int32 action, StorageType& summons, uint16 max);
Creature* _me;
StorageType _storage;