aboutsummaryrefslogtreecommitdiff
path: root/src/game
diff options
context:
space:
mode:
authorclick <none@none>2010-04-30 03:21:59 +0200
committerclick <none@none>2010-04-30 03:21:59 +0200
commit7b6f52b2a02c35d6004d2edd4bce89db5e5495a4 (patch)
tree1cc54673dcd675535237f625cb8b5c71958a7916 /src/game
parent2f21081904d7b5552285c37ac26078d80bfdb3f9 (diff)
Fix crash when summoning minions (introduced in vanitypet-fix)
--HG-- branch : trunk
Diffstat (limited to 'src/game')
-rw-r--r--src/game/Unit.cpp15
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())