diff options
| author | jackpoz <giacomopoz@gmail.com> | 2019-09-01 19:05:29 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2021-12-18 21:32:51 +0100 |
| commit | 18d1f0c964a17cc79732eb20958b9c594ebd3628 (patch) | |
| tree | 5000603b1f4541ff62672c770b351f605796c7a0 /src | |
| parent | 13dfa97d71c8a60a78efd92c7c1679fdf2934105 (diff) | |
Core/Creature: Fix another pet assert
Fix an assert triggered when dismissing a Warlock pet while it's casting a spell
(cherry picked from commit 4074cb0f01d106c69546c3cb944d6fcf92ade456)
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/game/Entities/Creature/Creature.cpp | 6 | ||||
| -rw-r--r-- | 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 1db79a9ba30..e3babcdd484 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -3300,7 +3300,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; + } SetUpdateFieldValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::Target), _spellFocusInfo.Target); diff --git a/src/server/game/Handlers/PetHandler.cpp b/src/server/game/Handlers/PetHandler.cpp index 7556d124765..1cb1daa5915 100644 --- a/src/server/game/Handlers/PetHandler.cpp +++ b/src/server/game/Handlers/PetHandler.cpp @@ -253,8 +253,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)) { |
