diff options
Diffstat (limited to 'src/server/game/Spells/SpellMgr.cpp')
-rwxr-xr-x | src/server/game/Spells/SpellMgr.cpp | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index 7a78f5f404a..7997ae0c05c 100755 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -2195,7 +2195,7 @@ void SpellMgr::LoadPetLevelupSpellMap() sLog->outString(); } -bool LoadPetDefaultSpells_helper(CreatureInfo const* cInfo, PetDefaultSpellsEntry& petDefSpells) +bool LoadPetDefaultSpells_helper(CreatureTemplate const* cInfo, PetDefaultSpellsEntry& petDefSpells) { // skip empty list; bool have_spell = false; @@ -2252,27 +2252,24 @@ void SpellMgr::LoadPetDefaultSpells() uint32 countCreature = 0; uint32 countData = 0; - for (uint32 i = 0; i < sCreatureStorage.MaxEntry; ++i) + CreatureTemplateContainer const* ctc = sObjectMgr->GetCreatureTemplates(); + for (CreatureTemplateContainer::const_iterator itr = ctc->begin(); itr != ctc->end(); ++itr) { - CreatureInfo const* cInfo = sCreatureStorage.LookupEntry<CreatureInfo>(i); - if (!cInfo) - continue; - - if (!cInfo->PetSpellDataId) + if (!itr->second.PetSpellDataId) continue; // for creature with PetSpellDataId get default pet spells from dbc - CreatureSpellDataEntry const* spellDataEntry = sCreatureSpellDataStore.LookupEntry(cInfo->PetSpellDataId); + CreatureSpellDataEntry const* spellDataEntry = sCreatureSpellDataStore.LookupEntry(itr->second.PetSpellDataId); if (!spellDataEntry) continue; - int32 petSpellsId = -int32(cInfo->PetSpellDataId); + int32 petSpellsId = -int32(itr->second.PetSpellDataId); PetDefaultSpellsEntry petDefSpells; for (uint8 j = 0; j < MAX_CREATURE_SPELL_DATA_SLOT; ++j) petDefSpells.spellid[j] = spellDataEntry->spellId[j]; - if (LoadPetDefaultSpells_helper(cInfo, petDefSpells)) + if (LoadPetDefaultSpells_helper(&itr->second, petDefSpells)) { mPetDefaultSpellsMap[petSpellsId] = petDefSpells; ++countData; @@ -2298,7 +2295,7 @@ void SpellMgr::LoadPetDefaultSpells() if (spellEntry->Effect[k] == SPELL_EFFECT_SUMMON || spellEntry->Effect[k] == SPELL_EFFECT_SUMMON_PET) { uint32 creature_id = spellEntry->EffectMiscValue[k]; - CreatureInfo const *cInfo = sCreatureStorage.LookupEntry<CreatureInfo>(creature_id); + CreatureTemplate const *cInfo = sObjectMgr->GetCreatureTemplate(creature_id); if (!cInfo) continue; |