diff options
author | Anubisss <none@none> | 2010-03-27 16:08:14 +0100 |
---|---|---|
committer | Anubisss <none@none> | 2010-03-27 16:08:14 +0100 |
commit | ce8cc85dfabeb57c30f2f2e6deb577abeaabaf37 (patch) | |
tree | 55dbae80d50737b77b869013552e78701e8e5201 /src/game/Unit.cpp | |
parent | 769f54eedfd979101ecc9bd94dea0a274c569ed3 (diff) |
Make a function(ToTempSummon()) which can convert Creature to TempSummon with a C++ cast(reinterpret_cast) and with a type check(isSummon()).
This function is like ToPlayer(), ToTotem(), etc.
This commit is like ede831bdd6f0cff481acc33f269fa7f8c78befd4 / r7496:
http://code.google.com/p/trinitycore/source/detail?r=ede831bdd6f0cff481acc33f269fa7f8c78befd4
As a result, this commit has the advantages and the "disadvantages" too, like r7496.
Please try to be polite if this commit causes some crashes.
--HG--
branch : trunk
Diffstat (limited to 'src/game/Unit.cpp')
-rw-r--r-- | src/game/Unit.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index fabc476e8ff..afcf7e1a44f 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -9335,7 +9335,7 @@ void Unit::RemoveAllMinionsByEntry(uint32 entry) ++itr; if (unit->GetEntry() == entry && unit->GetTypeId() == TYPEID_UNIT && unit->ToCreature()->isSummon()) // minion, actually - ((TempSummon*)unit)->UnSummon(); + unit->ToTempSummon()->UnSummon(); // i think this is safe because i have never heard that a despawned minion will trigger a same minion } } @@ -9502,7 +9502,7 @@ void Unit::RemoveAllControlled() if (target->GetCharmerGUID() == GetGUID()) target->RemoveCharmAuras(); else if (target->GetOwnerGUID() == GetGUID() && target->isSummon()) - ((TempSummon*)target)->UnSummon(); + target->ToTempSummon()->UnSummon(); else sLog.outError("Unit %u is trying to release unit %u which is neither charmed nor owned by it", GetEntry(), target->GetEntry()); } @@ -9620,7 +9620,7 @@ void Unit::UnsummonAllTotems() if (Creature *OldTotem = GetMap()->GetCreature(m_SummonSlot[i])) if (OldTotem->isSummon()) - ((TempSummon*)OldTotem)->UnSummon(); + OldTotem->ToTempSummon()->UnSummon(); } } @@ -12138,7 +12138,7 @@ Unit* Creature::SelectVictim() target = getAttackerForHelper(); if (!target && isSummon()) { - if (Unit * owner = ((TempSummon*)this)->GetOwner()) + if (Unit * owner = this->ToTempSummon()->GetOwner()) { if (owner->isInCombat()) target = owner->getAttackerForHelper(); |