Core/Pet: Fix an issue that was causing lower ranks of pet spells to remain in DB (#20112)

This commit is contained in:
Necropola
2017-08-06 03:15:04 +02:00
committed by Treeston
parent f27c4806fd
commit ecf5978608

View File

@@ -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;