diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/game/Spell.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index 294d016e33d..3d1011eb306 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -177,6 +177,8 @@ bool SpellCastTargets::read ( WorldPacket * data, Unit *caster ) if(data->rpos()+4 > data->size()) return false; + //data->hexlike(); + *data >> m_targetMask; sLog.outDebug("Spell read, target mask = %u", m_targetMask); @@ -200,7 +202,7 @@ bool SpellCastTargets::read ( WorldPacket * data, Unit *caster ) if(!data->readPackGUID(m_CorpseTargetGUID)) return false; - /*if( m_targetMask & TARGET_FLAG_SOURCE_LOCATION ) + if( m_targetMask & TARGET_FLAG_SOURCE_LOCATION ) { if(data->rpos()+4+4+4 > data->size()) return false; @@ -208,9 +210,11 @@ bool SpellCastTargets::read ( WorldPacket * data, Unit *caster ) *data >> m_srcX >> m_srcY >> m_srcZ; if(!Trinity::IsValidMapCoord(m_srcX, m_srcY, m_srcZ)) return false; - }*/ - if( m_targetMask & (TARGET_FLAG_SOURCE_LOCATION | TARGET_FLAG_DEST_LOCATION) ) + m_hasDest = true; + } + + if( m_targetMask & TARGET_FLAG_DEST_LOCATION ) { if(data->rpos()+1+4+4+4 > data->size()) return false; @@ -219,9 +223,10 @@ bool SpellCastTargets::read ( WorldPacket * data, Unit *caster ) return false; *data >> m_destX >> m_destY >> m_destZ; - m_hasDest = true; if(!Trinity::IsValidMapCoord(m_destX, m_destY, m_destZ)) return false; + + m_hasDest = true; } if( m_targetMask & TARGET_FLAG_STRING ) |