From 4074cb0f01d106c69546c3cb944d6fcf92ade456 Mon Sep 17 00:00:00 2001 From: jackpoz Date: Sun, 1 Sep 2019 19:05:29 +0200 Subject: [PATCH] Core/Creature: Fix another pet assert Fix an assert triggered when dismissing a Warlock pet while it's casting a spell --- src/server/game/Entities/Creature/Creature.cpp | 6 +++++- src/server/game/Handlers/PetHandler.cpp | 3 +-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index 5aef93cf67c..1dce8415082 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -3158,7 +3158,11 @@ void Creature::ReleaseSpellFocus(Spell const* focusSpell, bool withDelay) void Creature::ReacquireSpellFocusTarget() { - ASSERT(HasSpellFocus()); + if (!HasSpellFocus()) + { + TC_LOG_ERROR("entities.unit", "Creature::ReacquireSpellFocusTarget() being called with HasSpellFocus() returning false. %s", GetDebugInfo().c_str()); + return; + } SetGuidValue(UNIT_FIELD_TARGET, _spellFocusInfo.Target); diff --git a/src/server/game/Handlers/PetHandler.cpp b/src/server/game/Handlers/PetHandler.cpp index c2cf331e4af..b10ebe22ce4 100644 --- a/src/server/game/Handlers/PetHandler.cpp +++ b/src/server/game/Handlers/PetHandler.cpp @@ -255,8 +255,7 @@ void WorldSession::HandlePetActionHelper(Unit* pet, ObjectGuid guid1, uint32 spe if (((Pet*)pet)->getPetType() == HUNTER_PET) GetPlayer()->RemovePet((Pet*)pet, PET_SAVE_AS_DELETED); else - // dismissing a summoned pet is like killing them (this prevents returning a soulshard...) - pet->setDeathState(CORPSE); + GetPlayer()->RemovePet((Pet*)pet, PET_SAVE_NOT_IN_SLOT); } else if (pet->HasUnitTypeMask(UNIT_MASK_MINION)) {