From 7b6f52b2a02c35d6004d2edd4bce89db5e5495a4 Mon Sep 17 00:00:00 2001 From: click Date: Fri, 30 Apr 2010 03:21:59 +0200 Subject: Fix crash when summoning minions (introduced in vanitypet-fix) --HG-- branch : trunk --- src/game/Unit.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'src/game/Unit.cpp') 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()) -- cgit v1.2.3