diff options
author | click <none@none> | 2010-04-30 03:21:59 +0200 |
---|---|---|
committer | click <none@none> | 2010-04-30 03:21:59 +0200 |
commit | 7b6f52b2a02c35d6004d2edd4bce89db5e5495a4 (patch) | |
tree | 1cc54673dcd675535237f625cb8b5c71958a7916 | |
parent | 2f21081904d7b5552285c37ac26078d80bfdb3f9 (diff) |
Fix crash when summoning minions (introduced in vanitypet-fix)
--HG--
branch : trunk
-rw-r--r-- | src/game/Unit.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 730792dc48b..3adc65e77f8 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -9243,11 +9243,6 @@ void Unit::SetMinion(Minion *minion, bool apply) minion->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PVP_ATTACKABLE); } - if (minion->HasUnitTypeMask(UNIT_MASK_MINION) && minion->m_Properties->Type == SUMMON_TYPE_MINIPET) - { - SetCritterGUID(minion->GetGUID()); - } - // Can only have one pet. If a new one is summoned, dismiss the old one. if (minion->IsGuardianPet()) { @@ -9278,6 +9273,11 @@ void Unit::SetMinion(Minion *minion, bool apply) } } + if (minion->m_Properties && minion->m_Properties->Type == SUMMON_TYPE_MINIPET) + { + SetCritterGUID(minion->GetGUID()); + } + // PvP, FFAPvP minion->SetByteValue(UNIT_FIELD_BYTES_2, 1, GetByteValue(UNIT_FIELD_BYTES_2, 1)); @@ -9308,9 +9308,10 @@ void Unit::SetMinion(Minion *minion, bool apply) m_Controlled.erase(minion); - if (minion->HasUnitTypeMask(UNIT_MASK_MINION) && minion->m_Properties->Type == SUMMON_TYPE_MINIPET) + if (minion->m_Properties && minion->m_Properties->Type == SUMMON_TYPE_MINIPET) { - SetCritterGUID(0); + if (GetCritterGUID() == minion->GetGUID()) + SetCritterGUID(0); } if (minion->IsGuardianPet()) |