From ecf59786085cb8750bf48bbfa4f4f3d49b924dbd Mon Sep 17 00:00:00 2001 From: Necropola Date: Sun, 6 Aug 2017 03:15:04 +0200 Subject: [PATCH] Core/Pet: Fix an issue that was causing lower ranks of pet spells to remain in DB (#20112) --- src/server/game/Entities/Pet/Pet.cpp | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/src/server/game/Entities/Pet/Pet.cpp b/src/server/game/Entities/Pet/Pet.cpp index 6cc6d04543a..6890113178a 100644 --- a/src/server/game/Entities/Pet/Pet.cpp +++ b/src/server/game/Entities/Pet/Pet.cpp @@ -1306,24 +1306,22 @@ bool Pet::addSpell(uint32 spellId, ActiveStates active /*= ACT_DECIDE*/, PetSpel if (itr != m_spells.end()) { if (itr->second.state == PETSPELL_REMOVED) - { - m_spells.erase(itr); state = PETSPELL_CHANGED; - } - else if (state == PETSPELL_UNCHANGED && itr->second.state != PETSPELL_UNCHANGED) - { - // can be in case spell loading but learned at some previous spell loading - itr->second.state = PETSPELL_UNCHANGED; - - if (active == ACT_ENABLED) - ToggleAutocast(spellInfo, true); - else if (active == ACT_DISABLED) - ToggleAutocast(spellInfo, false); - - return false; - } else + { + if (state == PETSPELL_UNCHANGED && itr->second.state != PETSPELL_UNCHANGED) + { + // can be in case spell loading but learned at some previous spell loading + itr->second.state = PETSPELL_UNCHANGED; + + if (active == ACT_ENABLED) + ToggleAutocast(spellInfo, true); + else if (active == ACT_DISABLED) + ToggleAutocast(spellInfo, false); + } + return false; + } } PetSpell newspell;