aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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())