diff options
-rw-r--r-- | src/server/game/Spells/SpellMgr.cpp | 13 | ||||
-rw-r--r-- | src/server/scripts/Commands/cs_learn.cpp | 14 |
2 files changed, 10 insertions, 17 deletions
diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index 5eb160086c2..00f92b8359e 100644 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -2105,15 +2105,12 @@ void SpellMgr::LoadPetLevelupSpellMap() if (!creatureFamily->SkillLine[j]) continue; - for (uint32 k = 0; k < sSkillLineAbilityStore.GetNumRows(); ++k) - { - SkillLineAbilityEntry const* skillLine = sSkillLineAbilityStore.LookupEntry(k); - if (!skillLine) - continue; - - if (skillLine->SkillLine != creatureFamily->SkillLine[j]) - continue; + std::vector<SkillLineAbilityEntry const*> const* skillLineAbilities = sDB2Manager.GetSkillLineAbilitiesBySkill(creatureFamily->SkillLine[j]); + if (!skillLineAbilities) + continue; + for (SkillLineAbilityEntry const* skillLine : *skillLineAbilities) + { if (skillLine->AcquireMethod != SKILL_LINE_ABILITY_LEARNED_ON_SKILL_LEARN) continue; diff --git a/src/server/scripts/Commands/cs_learn.cpp b/src/server/scripts/Commands/cs_learn.cpp index deba00eac0d..d06cce75a78 100644 --- a/src/server/scripts/Commands/cs_learn.cpp +++ b/src/server/scripts/Commands/cs_learn.cpp @@ -423,16 +423,12 @@ public: { uint32 classmask = player->GetClassMask(); - for (uint32 j = 0; j < sSkillLineAbilityStore.GetNumRows(); ++j) - { - SkillLineAbilityEntry const* skillLine = sSkillLineAbilityStore.LookupEntry(j); - if (!skillLine) - continue; - - // wrong skill - if (skillLine->SkillLine != int32(skillId)) - continue; + std::vector<SkillLineAbilityEntry const*> const* skillLineAbilities = sDB2Manager.GetSkillLineAbilitiesBySkill(skillId); + if (!skillLineAbilities) + return; + for (SkillLineAbilityEntry const* skillLine : *skillLineAbilities) + { // not high rank if (skillLine->SupercedesSpell) continue; |