mirror of
https://github.com/araxiaonline/TrinityCore.git
synced 2026-06-16 04:59:41 -04:00
Core/AI: Do not expose internal storage of SummonList
This commit is contained in:
@@ -24,26 +24,28 @@ struct TSpellSummary
|
||||
|
||||
void SummonList::DoZoneInCombat(uint32 entry)
|
||||
{
|
||||
for (iterator i = begin(); i != end();)
|
||||
for (StorageType::iterator i = storage_.begin(); i != storage_.end();)
|
||||
{
|
||||
Creature* summon = Unit::GetCreature(*me, *i);
|
||||
++i;
|
||||
if (summon && summon->IsAIEnabled
|
||||
&& (!entry || summon->GetEntry() == entry))
|
||||
&& (!entry || summon->GetEntry() == entry))
|
||||
{
|
||||
summon->AI()->DoZoneInCombat();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void SummonList::DespawnEntry(uint32 entry)
|
||||
{
|
||||
for (iterator i = begin(); i != end();)
|
||||
for (StorageType::iterator i = storage_.begin(); i != storage_.end();)
|
||||
{
|
||||
Creature* summon = Unit::GetCreature(*me, *i);
|
||||
if (!summon)
|
||||
erase(i++);
|
||||
i = storage_.erase(i);
|
||||
else if (summon->GetEntry() == entry)
|
||||
{
|
||||
erase(i++);
|
||||
i = storage_.erase(i);
|
||||
summon->DespawnOrUnsummon();
|
||||
}
|
||||
else
|
||||
@@ -53,33 +55,29 @@ void SummonList::DespawnEntry(uint32 entry)
|
||||
|
||||
void SummonList::DespawnAll()
|
||||
{
|
||||
while (!empty())
|
||||
while (!storage_.empty())
|
||||
{
|
||||
Creature* summon = Unit::GetCreature(*me, *begin());
|
||||
if (!summon)
|
||||
erase(begin());
|
||||
else
|
||||
{
|
||||
erase(begin());
|
||||
Creature* summon = Unit::GetCreature(*me, storage_.front());
|
||||
storage_.pop_front();
|
||||
if (summon)
|
||||
summon->DespawnOrUnsummon();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void SummonList::RemoveNotExisting()
|
||||
{
|
||||
for (iterator i = begin(); i != end();)
|
||||
for (StorageType::iterator i = storage_.begin(); i != storage_.end();)
|
||||
{
|
||||
if (Unit::GetCreature(*me, *i))
|
||||
++i;
|
||||
else
|
||||
erase(i++);
|
||||
i = storage_.erase(i);
|
||||
}
|
||||
}
|
||||
|
||||
bool SummonList::HasEntry(uint32 entry) const
|
||||
{
|
||||
for (const_iterator i = begin(); i != end(); ++i)
|
||||
for (StorageType::const_iterator i = storage_.begin(); i != storage_.end(); ++i)
|
||||
{
|
||||
Creature* summon = Unit::GetCreature(*me, *i);
|
||||
if (summon && summon->GetEntry() == entry)
|
||||
|
||||
Reference in New Issue
Block a user