aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2020-09-23 22:37:11 +0200
committerShauren <shauren.trinity@gmail.com>2022-01-31 00:23:57 +0100
commite102022eeb8a0fd402e34de92468b2afb8f1f006 (patch)
treedbd61ed455ddeafc8c856511362357b0a338ad0f /src
parent914791836318c62d8b206ef3cbffe144e63bf928 (diff)
Core/Pets: Fixed crash happening when summoning a different pet than one that was unsummoned by summoning a guardian (imp -> infernal -> felhunter)
Closes #25478 (cherry picked from commit d29274f3a142545a386420e54f6169e4f7ed6eda)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index d037047e9de..c62211a1a1d 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -5820,8 +5820,8 @@ void Unit::SetMinion(Minion *minion, bool apply)
if (oldPet != minion && (oldPet->IsPet() || minion->IsPet() || oldPet->GetEntry() != minion->GetEntry()))
{
// remove existing minion pet
- if (oldPet->IsPet())
- ((Pet*)oldPet)->Remove(PET_SAVE_AS_CURRENT);
+ if (Pet* oldPetAsPet = oldPet->ToPet())
+ oldPetAsPet->Remove(PET_SAVE_NOT_IN_SLOT);
else
oldPet->UnSummon();
SetPetGUID(minion->GetGUID());