diff options
Diffstat (limited to 'src/game/Spell.cpp')
-rw-r--r-- | src/game/Spell.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index c17e5632cb9..672be8614bb 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -2027,6 +2027,11 @@ void Spell::SetTargetMap(uint32 i,uint32 cur,std::list<Unit*> &TagUnitMap) void Spell::prepare(SpellCastTargets * targets, Aura* triggeredByAura) { + if(m_CastItem) + m_castItemGUID = m_CastItem->GetGUID(); + else + m_castItemGUID = 0; + m_targets = *targets; m_spellState = SPELL_STATE_PREPARING; @@ -4986,6 +4991,9 @@ void Spell::UpdatePointers() if(m_originalCaster && !m_originalCaster->IsInWorld()) m_originalCaster = NULL; } + if(m_castItemGUID && m_caster->GetTypeId() == TYPEID_PLAYER) + m_CastItem = ((Player*)m_caster)->GetItemByGuid(m_castItemGUID); + m_targets.Update(m_caster); } |