aboutsummaryrefslogtreecommitdiff
path: root/src/game/SpellHandler.cpp
diff options
context:
space:
mode:
authorQAston <none@none>2009-08-17 02:53:39 +0200
committerQAston <none@none>2009-08-17 02:53:39 +0200
commit41c12d173b8d0cf297edf70e40b8e13b9bf3af35 (patch)
tree483b138dcad5abd803330495cc211c3a90218173 /src/game/SpellHandler.cpp
parent6359bfb27ac42392dc3a314fc5fe194964485931 (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.cpp10
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);
}
}