diff options
author | Machiavelli <none@none> | 2009-08-17 02:58:57 +0200 |
---|---|---|
committer | Machiavelli <none@none> | 2009-08-17 02:58:57 +0200 |
commit | b9f1f9232d6a8a9c43cc5253d3683060ec4dc670 (patch) | |
tree | a05e5c895b2cbbad8a7ee5daf4a7a6ddbac422bc /src/game/SpellHandler.cpp | |
parent | 6a68c5cb6fdd43b8828dc2bf9644932cf23e2953 (diff) | |
parent | 41c12d173b8d0cf297edf70e40b8e13b9bf3af35 (diff) |
*Merge
--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); } } |