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-08-12 17:56:15 +0200
commitcccc062ea002ee63e0288d5a71356f45f7094287 (patch)
tree4e4700e5a2b705844442bf920e0c8d65ac95111d /src/server/game/AI/ScriptedAI
parentf5a2e2ae13e3f7b505b069c1cd98e3157c31c83a (diff)
Core/Misc: Remove boost::heap::fibonacci_heap from header files
(cherry picked from commit e8e330addd55dffa8e34716c7e1969ad243d65b3)
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 4625876abb9..e0c8efe8d7d 100644
--- a/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp
+++ b/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp
@@ -114,8 +114,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 eec1ce71700..1616d3e5787 100644
--- a/src/server/game/AI/ScriptedAI/ScriptedCreature.h
+++ b/src/server/game/AI/ScriptedAI/ScriptedCreature.h
@@ -95,9 +95,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);
@@ -105,7 +105,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;