aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsrc/server/game/Spells/Spell.cpp10
-rwxr-xr-xsrc/server/game/Spells/Spell.h2
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,