aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/game/DBCStores.cpp6
-rw-r--r--src/game/Pet.cpp2
-rw-r--r--src/game/Player.cpp2
-rw-r--r--src/game/SpellMgr.cpp7
4 files changed, 7 insertions, 10 deletions
diff --git a/src/game/DBCStores.cpp b/src/game/DBCStores.cpp
index e1fe1eba5e7..c643dc4613a 100644
--- a/src/game/DBCStores.cpp
+++ b/src/game/DBCStores.cpp
@@ -334,10 +334,12 @@ void LoadDBCStores(const std::string& dataPath)
if(skillLine->skillId != cFamily->skillLine[0] && skillLine->skillId != cFamily->skillLine[1])
continue;
+ if(spellInfo->spellLevel)
+ continue;
// Passive spell has to have spellfamilyflags if name present (need to not apply 20782)
- if (spellInfo->Attributes & SPELL_ATTR_UNK18 && spellInfo->SpellFamilyName && !spellInfo->SpellFamilyFlags)
- continue;
+ //if (spellInfo->Attributes & SPELL_ATTR_UNK18 && spellInfo->SpellFamilyName && !spellInfo->SpellFamilyFlags)
+ // continue;
sPetFamilySpellsStore[i].insert(spellInfo->Id);
}
diff --git a/src/game/Pet.cpp b/src/game/Pet.cpp
index df4ed5f46d4..9c8835b8ded 100644
--- a/src/game/Pet.cpp
+++ b/src/game/Pet.cpp
@@ -1089,8 +1089,6 @@ void Pet::_SaveSpells()
void Pet::_LoadAuras(uint32 timediff)
{
sLog.outDebug("Loading auras for pet %u",GetGUIDLow());
- for (int i = 0; i < TOTAL_AURAS; i++)
- m_modAuras[i].clear();
QueryResult *result = CharacterDatabase.PQuery("SELECT caster_guid,spell,effect_mask,stackcount,amount0, amount1, amount2 ,maxduration,remaintime,remaincharges FROM pet_aura WHERE guid = '%u'",m_charmInfo->GetPetNumber());
diff --git a/src/game/Player.cpp b/src/game/Player.cpp
index 5ce396bfa69..71936933a8b 100644
--- a/src/game/Player.cpp
+++ b/src/game/Player.cpp
@@ -14633,8 +14633,6 @@ void Player::_LoadActions(QueryResult *result)
void Player::_LoadAuras(QueryResult *result, uint32 timediff)
{
sLog.outDebug("Loading auras for player %u",GetGUIDLow());
- for (int i = 0; i < TOTAL_AURAS; i++)
- m_modAuras[i].clear();
//QueryResult *result = CharacterDatabase.PQuery("SELECT caster_guid,spell,effect_mask,stackcount,amount0,amount1,amount2,maxduration,remaintime,remaincharges FROM character_aura WHERE guid = '%u'",GetGUIDLow());
diff --git a/src/game/SpellMgr.cpp b/src/game/SpellMgr.cpp
index 57da4116275..df5fa14541b 100644
--- a/src/game/SpellMgr.cpp
+++ b/src/game/SpellMgr.cpp
@@ -2533,11 +2533,10 @@ void SpellMgr::LoadPetLevelupSpellMap()
if (creatureFamily->skillLine[j]!=skillLine->skillId)
continue;
SpellEntry const *spell = sSpellStore.LookupEntry(skillLine->spellId);
- // not exist or passive (passives are handled elsewhere)
- if(!spell || IsPassiveSpell(spell->Id))
+ // not exist or triggered or talent
+ if(!spell || !spell->spellLevel || GetTalentSpellPos(spell->Id))
continue;
- // Make sure that triggered spells aren't learned
- if (!spell->SpellFamilyName && !spell->StartRecoveryCategory)
+ if (!spell->SpellFamilyFlags && spell->SpellIconID!=2310 && (!spell->RecoveryTime || !spell->StartRecoveryCategory))
continue;
mPetLevelupSpellMap.insert(PetLevelupSpellMap::value_type(creatureFamily->ID, std::make_pair(spell->spellLevel , spell->Id )));
count++;