aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/AI/ScriptedAI
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2011-03-04 23:53:11 +0100
committerShauren <shauren.trinity@gmail.com>2011-03-04 23:53:11 +0100
commit36f848a4c222828cafb50f87790219da14245a03 (patch)
tree82b99d3949a3a38761aee9b2a51a825441ee2a2a /src/server/game/AI/ScriptedAI
parent22cd262e6ced18d7b98c4ef0635aff5d8a7155b2 (diff)
Scripts/Icecrown Citadel: Only one Mutated Abomination can exist during Professor Putricide encounter
Scripts/Spells: Added blizzlike error messages for certain spells Scripts/Items: Removed obsolete scripts
Diffstat (limited to 'src/server/game/AI/ScriptedAI')
-rw-r--r--src/server/game/AI/ScriptedAI/ScriptedCreature.cpp27
-rw-r--r--src/server/game/AI/ScriptedAI/ScriptedCreature.h2
2 files changed, 29 insertions, 0 deletions
diff --git a/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp b/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp
index ddf000e31c7..6eec549d37a 100644
--- a/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp
+++ b/src/server/game/AI/ScriptedAI/ScriptedCreature.cpp
@@ -81,6 +81,33 @@ void SummonList::DespawnAll()
}
}
+void SummonList::RemoveNotExisting()
+{
+ for (iterator i = begin(); i != end();)
+ {
+ if (Unit::GetCreature(*me, *i))
+ ++i;
+ else
+ erase(i++);
+ }
+}
+
+bool SummonList::HasEntry(uint32 entry)
+{
+ for (iterator i = begin(); i != end();)
+ {
+ Creature* summon = Unit::GetCreature(*me, *i);
+ if (!summon)
+ erase(i++);
+ else if (summon->GetEntry() == entry)
+ return true;
+ else
+ ++i;
+ }
+
+ return false;
+}
+
ScriptedAI::ScriptedAI(Creature* pCreature) : CreatureAI(pCreature),
me(pCreature),
IsFleeing(false),
diff --git a/src/server/game/AI/ScriptedAI/ScriptedCreature.h b/src/server/game/AI/ScriptedAI/ScriptedCreature.h
index f94a41dfb10..f7a28a71e33 100644
--- a/src/server/game/AI/ScriptedAI/ScriptedCreature.h
+++ b/src/server/game/AI/ScriptedAI/ScriptedCreature.h
@@ -36,6 +36,8 @@ class SummonList : public std::list<uint64>
void DespawnAll();
void DoAction(uint32 entry, uint32 info);
void DoZoneInCombat(uint32 entry = 0);
+ void RemoveNotExisting();
+ bool HasEntry(uint32 entry);
private:
Creature *me;
};