diff options
author | QAston <none@none> | 2009-08-17 02:53:39 +0200 |
---|---|---|
committer | QAston <none@none> | 2009-08-17 02:53:39 +0200 |
commit | 41c12d173b8d0cf297edf70e40b8e13b9bf3af35 (patch) | |
tree | 483b138dcad5abd803330495cc211c3a90218173 /src/game/SpellHandler.cpp | |
parent | 6359bfb27ac42392dc3a314fc5fe194964485931 (diff) |
*Add spell_bonus_data for lightwell - by Elron
*Add aura_required, aura_forbidden, user_type columns to npc_spellclick_spells table for additional requirement checks
*Remove workarounds from lightwell code and use new npc_spellclick_spells fields instead.
--HG--
branch : trunk
Diffstat (limited to 'src/game/SpellHandler.cpp')
-rw-r--r-- | src/game/SpellHandler.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/game/SpellHandler.cpp b/src/game/SpellHandler.cpp index dd88ef8e50a..ab338f932ab 100644 --- a/src/game/SpellHandler.cpp +++ b/src/game/SpellHandler.cpp @@ -525,12 +525,12 @@ void WorldSession::HandleSpellClick( WorldPacket & recv_data ) SpellClickInfoMapBounds clickPair = objmgr.GetSpellClickInfoMapBounds(unit->GetEntry()); for(SpellClickInfoMap::const_iterator itr = clickPair.first; itr != clickPair.second; ++itr) { - if(itr->second.IsFitToRequirements(_player)) + if(itr->second.IsFitToRequirements(_player, unit)) { - Unit *caster = (itr->second.castFlags & 0x1) ? (Unit*)_player : (Unit*)unit; - Unit *target = (itr->second.castFlags & 0x2) ? (Unit*)_player : (Unit*)unit; - - caster->CastSpell(target, itr->second.spellId, true); + Unit *caster = (itr->second.castFlags & NPC_CLICK_CAST_CASTER_PLAYER) ? (Unit*)_player : (Unit*)unit; + Unit *target = (itr->second.castFlags & NPC_CLICK_CAST_TARGET_PLAYER) ? (Unit*)_player : (Unit*)unit; + uint64 origCasterGUID = (itr->second.castFlags & NPC_CLICK_CAST_ORIG_CASTER_OWNER) ? unit->GetOwnerGUID() : 0; + caster->CastSpell(target, itr->second.spellId, true, NULL, NULL, origCasterGUID); } } |