diff --git a/src/game/Pet.cpp b/src/game/Pet.cpp index a85f2d7ab..7a2dd0551 100644 --- a/src/game/Pet.cpp +++ b/src/game/Pet.cpp @@ -1089,17 +1089,7 @@ void Pet::_LoadSpells() { Field *fields = result->Fetch(); - uint32 spell_id = fields[0].GetUInt32(); - - // load only pet talents, other spell types auto-learned - if(GetTalentSpellCost(spell_id)==0) - { - CharacterDatabase.PExecute("DELETE FROM pet_spell WHERE spell = '%u'",spell_id); - sLog.outError("Table `pet_spell` have non-talent spell %u , spell removed from table for all pets.",spell_id); - continue; - } - - addSpell(spell_id, ActiveStates(fields[1].GetUInt16()), PETSPELL_UNCHANGED,PETSPELL_TALENT); + addSpell(fields[0].GetUInt32(), ActiveStates(fields[1].GetUInt16()), PETSPELL_UNCHANGED); } while( result->NextRow() ); @@ -1113,8 +1103,8 @@ void Pet::_SaveSpells() { ++next; - // save only talent spells for pets, other spells auto-applied - if (itr->second.type != PETSPELL_TALENT) + // prevent saving family passives to DB + if (itr->second.type == PETSPELL_FAMILY) continue; switch(itr->second.state) @@ -1325,9 +1315,6 @@ bool Pet::addSpell(uint32 spell_id,ActiveStates active /*= ACT_DECIDE*/, PetSpel // talent: unlearn all other talent ranks (high and low) if(TalentSpellPos const* talentPos = GetTalentSpellPos(spell_id)) { - // propertly mark spell for allow save - newspell.type = PETSPELL_TALENT; - if(TalentEntry const *talentInfo = sTalentStore.LookupEntry( talentPos->talent_id )) { for(int i=0; i < MAX_TALENT_RANK; ++i) diff --git a/src/game/Pet.h b/src/game/Pet.h index 0ddc8fc56..55f679221 100644 --- a/src/game/Pet.h +++ b/src/game/Pet.h @@ -65,12 +65,11 @@ enum PetSpellType { PETSPELL_NORMAL = 0, PETSPELL_FAMILY = 1, - PETSPELL_TALENT = 2, }; struct PetSpell { - ActiveStates active : 16; + uint16 active; // use instead enum (not good use *uint16* limited enum in case when value in enum not possitive in *int16*) PetSpellState state : 8; PetSpellType type : 8; diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index a075ce0b8..71b7bbf85 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "7940" + #define REVISION_NR "7941" #endif // __REVISION_NR_H__