diff options
author | QAston <none@none> | 2008-12-22 02:11:11 +0100 |
---|---|---|
committer | QAston <none@none> | 2008-12-22 02:11:11 +0100 |
commit | e11dbbd62d7fc16e08f7e1ad59af80a4b3283684 (patch) | |
tree | 9bb3946f70182e3a825b0c697afa84263469c73c /src/game/Player.cpp | |
parent | f91989cf641cf2deb16243b387dd7554cd6104fa (diff) |
*Remove 'first_spell' and 'rank' columns from table spell_chain
*Separate req_spell and spell_chain data to save some memory
*Use spell_chain data generated from dbc instead of sql
--HG--
branch : trunk
Diffstat (limited to 'src/game/Player.cpp')
-rw-r--r-- | src/game/Player.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/game/Player.cpp b/src/game/Player.cpp index e9a7a0f73ed..314e6c5ac09 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -2952,8 +2952,8 @@ void Player::removeSpell(uint32 spell_id, bool disabled) removeSpell(node->next,disabled); } //unlearn spells dependent from recently removed spells - SpellRequiredMap const& reqMap = spellmgr.GetSpellRequiredMap(); - SpellRequiredMap::const_iterator itr2 = reqMap.find(spell_id); + SpellsRequiringSpellMap const& reqMap = spellmgr.GetSpellsRequiringSpell(); + SpellsRequiringSpellMap::const_iterator itr2 = reqMap.find(spell_id); for (uint32 i=reqMap.count(spell_id);i>0;i--,itr2++) removeSpell(itr2->second,disabled); @@ -3546,9 +3546,12 @@ TrainerSpellState Player::GetTrainerSpellState(TrainerSpell const* trainer_spell // check prev.rank requirement if(spell_chain->prev && !HasSpell(spell_chain->prev)) return TRAINER_SPELL_RED; + } + if(uint32 spell_req = spellmgr.GetSpellRequired(trainer_spell->spell)) + { // check additional spell requirement - if(spell_chain->req && !HasSpell(spell_chain->req)) + if(!HasSpell(spell_req)) return TRAINER_SPELL_RED; } |