aboutsummaryrefslogtreecommitdiff
path: root/src/game/Unit.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/Unit.cpp')
-rw-r--r--src/game/Unit.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index 8c2d95fb825..a38ea3cc0ca 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -8612,6 +8612,19 @@ void Unit::SetMinion(Minion *minion, bool apply)
}
}
+void Unit::RemoveAllMinionsByEntry(uint32 entry)
+{
+ for(Unit::ControlList::iterator itr = m_Controlled.begin(); itr != m_Controlled.end();)
+ {
+ Unit *unit = *itr;
+ ++itr;
+ if(unit->GetEntry() == entry && unit->GetTypeId() == TYPEID_UNIT
+ && ((Creature*)unit)->isSummon()) // minion, actually
+ ((TempSummon*)unit)->UnSummon();
+ // i think this is safe because i have never heard that a despawned minion will trigger a same minion
+ }
+}
+
void Unit::SetCharm(Unit* charm, bool apply)
{
if(apply)