diff options
Diffstat (limited to 'src')
-rwxr-xr-x | src/server/game/Spells/Spell.cpp | 10 | ||||
-rwxr-xr-x | src/server/game/Spells/Spell.h | 2 |
2 files changed, 7 insertions, 5 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index f76dbd7be47..d864ce2d606 100755 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -3829,6 +3829,9 @@ void Spell::SendSpellGo() castFlags |= CAST_FLAG_UNKNOWN_19; // same as in SMSG_SPELL_START } + if (m_targets.HasTraj()) + castFlags |= CAST_FLAG_ADJUST_MISSILE; + WorldPacket data(SMSG_SPELL_GO, 50); // guess size if (m_CastItem) @@ -3871,11 +3874,10 @@ void Spell::SendSpellGo() } } } - - if (castFlags & CAST_FLAG_UNKNOWN_18) + if (castFlags & CAST_FLAG_ADJUST_MISSILE) { - data << float(0); - data << uint32(0); + data << m_targets.GetElevation(); + data << uint32(m_targets.GetSpeedXY()*m_targets.GetSpeedZ()*2); } if (castFlags & CAST_FLAG_AMMO) diff --git a/src/server/game/Spells/Spell.h b/src/server/game/Spells/Spell.h index 6b7c73ad32b..2bbc04d6a3b 100755 --- a/src/server/game/Spells/Spell.h +++ b/src/server/game/Spells/Spell.h @@ -55,7 +55,7 @@ enum SpellCastFlags CAST_FLAG_UNKNOWN_15 = 0x00004000, CAST_FLAG_UNKNOWN_16 = 0x00008000, CAST_FLAG_UNKNOWN_17 = 0x00010000, - CAST_FLAG_UNKNOWN_18 = 0x00020000, + CAST_FLAG_ADJUST_MISSILE = 0x00020000, CAST_FLAG_UNKNOWN_19 = 0x00040000, CAST_FLAG_UNKNOWN_20 = 0x00080000, CAST_FLAG_UNKNOWN_21 = 0x00100000, |