From 950a61e2ea8cc8bd34454ab2d2d47127924e0951 Mon Sep 17 00:00:00 2001 From: megamage Date: Tue, 30 Dec 2008 21:29:06 -0600 Subject: *Temp fix for the crash caused by CastItem. --HG-- branch : trunk --- src/game/Spell.cpp | 8 ++++++++ src/game/Spell.h | 1 + 2 files changed, 9 insertions(+) (limited to 'src') 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 &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); } diff --git a/src/game/Spell.h b/src/game/Spell.h index 17a103ad0c5..b3e4dbc8c6a 100644 --- a/src/game/Spell.h +++ b/src/game/Spell.h @@ -385,6 +385,7 @@ class Spell SpellEntry const* m_spellInfo; int32 m_currentBasePoints[3]; // cache SpellEntry::EffectBasePoints and use for set custom base points Item* m_CastItem; + uint64 m_castItemGUID; uint8 m_cast_count; SpellCastTargets m_targets; -- cgit v1.2.3