diff options
Diffstat (limited to 'src/server/game/Globals/ObjectMgr.cpp')
-rw-r--r-- | src/server/game/Globals/ObjectMgr.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index a506a7676cd..1db80ed6001 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -8563,13 +8563,15 @@ void ObjectMgr::LoadTrainers() if (!allReqValid) continue; + spell.LearnedSpellId = spell.SpellId; for (SpellEffectInfo const* spellEffect : spellInfo->GetEffectsForDifficulty(DIFFICULTY_NONE)) { - if (spellEffect->IsEffect(SPELL_EFFECT_LEARN_SPELL)) + if (spellEffect && spellEffect->IsEffect(SPELL_EFFECT_LEARN_SPELL)) { - spell.CastSpellId = spell.SpellId; - spell.SpellId = spellEffect->TriggerSpell; - break; + ASSERT(spell.LearnedSpellId == spell.SpellId, + "Only one learned spell is currently supported - spell %u already teaches %u but it tried to overwrite it with %u", + spell.SpellId, spell.LearnedSpellId, spellEffect->TriggerSpell); + spell.LearnedSpellId = spellEffect->TriggerSpell; } } |