diff options
author | joschiwald <joschiwald.trinity@gmail.com> | 2015-01-30 20:34:40 +0100 |
---|---|---|
committer | joschiwald <joschiwald.trinity@gmail.com> | 2015-01-30 20:34:40 +0100 |
commit | 829b99cb23d40b9cb36b6eb8f7b9051ff8d610c8 (patch) | |
tree | 1930e631b01415b5b6ca8ab54cebbdda48bee728 /src | |
parent | c2a52c4119967933e755eca2cb338f91d45a95f0 (diff) |
Core/Spells: fixed loading `spell_target_position`
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Spells/SpellMgr.cpp | 60 |
1 files changed, 21 insertions, 39 deletions
diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index 02d3e2e2ea1..d8bfed43c2b 100644 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -1711,7 +1711,7 @@ void SpellMgr::LoadSpellTargetPositions() { Field* fields = result->Fetch(); - uint32 Spell_ID = fields[0].GetUInt32(); + uint32 spellId = fields[0].GetUInt32(); SpellEffIndex effIndex = SpellEffIndex(fields[1].GetUInt8()); SpellTargetPosition st; @@ -1724,27 +1724,27 @@ void SpellMgr::LoadSpellTargetPositions() MapEntry const* mapEntry = sMapStore.LookupEntry(st.target_mapId); if (!mapEntry) { - TC_LOG_ERROR("sql.sql", "Spell (ID: %u, EffectIndex: %u) is using a non-existant MapID (ID: %u).", Spell_ID, effIndex, st.target_mapId); + TC_LOG_ERROR("sql.sql", "Spell (Id: %u, EffectIndex: %u) is using a non-existant MapID (ID: %u).", spellId, effIndex, st.target_mapId); continue; } if (st.target_X == 0 && st.target_Y == 0 && st.target_Z == 0) { - TC_LOG_ERROR("sql.sql", "Spell (ID: %u, EffectIndex: %u): target coordinates not provided.", Spell_ID, effIndex); + TC_LOG_ERROR("sql.sql", "Spell (Id: %u, EffectIndex: %u): target coordinates not provided.", spellId, effIndex); continue; } - SpellInfo const* spellInfo = GetSpellInfo(Spell_ID); + SpellInfo const* spellInfo = GetSpellInfo(spellId); if (!spellInfo) { - TC_LOG_ERROR("sql.sql", "Spell (ID: %u) listed in `spell_target_position` does not exist.", Spell_ID); + TC_LOG_ERROR("sql.sql", "Spell (Id: %u) listed in `spell_target_position` does not exist.", spellId); continue; } SpellEffectInfo const* effect = spellInfo->GetEffect(effIndex); if (!effect) { - TC_LOG_ERROR("sql.sql", "Spell (Id: %u, effIndex: %u) listed in `spell_target_position` does not have an effect at index %u.", Spell_ID, effIndex, effIndex); + TC_LOG_ERROR("sql.sql", "Spell (Id: %u, EffectIndex: %u) listed in `spell_target_position` does not have an effect at index %u.", spellId, effIndex, effIndex); continue; } @@ -1756,19 +1756,13 @@ void SpellMgr::LoadSpellTargetPositions() if (effect->TargetA.GetTarget() == TARGET_DEST_DB || effect->TargetB.GetTarget() == TARGET_DEST_DB) { - TC_LOG_ERROR("sql.sql", "Spell (Id: %u, effIndex: %u) listed in `spell_target_position` does not have TARGET_DEST_DB as target at index %u.", Spell_ID, effIndex, effIndex); - continue; - } - - if (effect->TargetA.GetTarget() == TARGET_DEST_DB || effect->TargetB.GetTarget() == TARGET_DEST_DB) - { - std::pair<uint32, SpellEffIndex> key = std::make_pair(Spell_ID, effIndex); + std::pair<uint32, SpellEffIndex> key = std::make_pair(spellId, effIndex); mSpellTargetPositions[key] = st; ++count; } else { - TC_LOG_ERROR("sql.sql", "Spell (Id: %u, effIndex: %u) listed in `spell_target_position` does not have target TARGET_DEST_DB (17).", Spell_ID, effIndex); + TC_LOG_ERROR("sql.sql", "Spell (Id: %u, EffectIndex: %u) listed in `spell_target_position` does not have target TARGET_DEST_DB (17).", spellId, effIndex); continue; } @@ -1776,38 +1770,26 @@ void SpellMgr::LoadSpellTargetPositions() /* // Check all spells - for (uint32 i = 1; i < GetSpellInfoStoreSize; ++i) + for (uint32 i = 1; i < GetSpellInfoStoreSize(); ++i) { SpellInfo const* spellInfo = GetSpellInfo(i); if (!spellInfo) continue; - bool found = false; - for (int j = 0; j < MAX_SPELL_EFFECTS; ++j) - { - switch (spellInfo->Effects[j].TargetA) - { - case TARGET_DEST_DB: - found = true; - break; - } - if (found) - break; - switch (spellInfo->Effects[j].TargetB) - { - case TARGET_DEST_DB: - found = true; - break; - } - if (found) - break; - } - if (found) + for (uint8 j = 0; j < MAX_SPELL_EFFECTS; ++j) { - if (!sSpellMgr->GetSpellTargetPosition(i)) - TC_LOG_DEBUG("spells", "Spell (ID: %u) does not have record in `spell_target_position`", i); + SpellEffectInfo const* effect = spellInfo->GetEffect(j); + if (!effect) + continue; + + if (effect->TargetA.GetTarget() != TARGET_DEST_DB && effect->TargetB.GetTarget() != TARGET_DEST_DB) + continue; + + if (!GetSpellTargetPosition(i, SpellEffIndex(j))) + TC_LOG_DEBUG("spells", "Spell (Id: %u, EffectIndex: %u) does not have record in `spell_target_position`.", i, j); } - }*/ + } + */ TC_LOG_INFO("server.loading", ">> Loaded %u spell teleport coordinates in %u ms", count, GetMSTimeDiffToNow(oldMSTime)); } |