Core/Movement: Implement initializing parabolic splines using jump gravity instead of max parabolic height

Port From (https://github.com/TrinityCore/TrinityCore/commit/684cd9d9681466019dcd06ad6f994890cff8cb2e)
This commit is contained in:
hondacrx
2021-12-01 10:34:19 -05:00
parent 4ec905e0dc
commit 2208a7be60
5 changed files with 54 additions and 5 deletions
@@ -208,7 +208,7 @@ namespace Game.Networking.Packets
data.WriteBits(moveSpline.GetPath().Length, 16);
data.WriteBit(false); // HasSplineFilter
data.WriteBit(moveSpline.spell_effect_extra.HasValue); // HasSpellEffectExtraData
data.WriteBit(moveSpline.splineflags.HasFlag(SplineFlag.Parabolic)); // HasJumpExtraData
bool hasJumpExtraData = data.WriteBit(moveSpline.splineflags.HasFlag(SplineFlag.Parabolic) && (!moveSpline.spell_effect_extra.HasValue || moveSpline.effect_start_time != 0));
data.WriteBit(moveSpline.anim_tier.HasValue); // HasAnimationTierTransition
data.WriteBit(false); // HasUnknown901
data.FlushBits();
@@ -253,7 +253,7 @@ namespace Game.Networking.Packets
data.WriteUInt32(moveSpline.spell_effect_extra.Value.ParabolicCurveId);
}
if (moveSpline.splineflags.HasFlag(SplineFlag.Parabolic))
if (hasJumpExtraData)
{
data.WriteFloat(moveSpline.vertical_acceleration);
data.WriteInt32(moveSpline.effect_start_time);
@@ -385,7 +385,7 @@ namespace Game.Networking.Packets
movementSpline.MoveTime = (uint)moveSpline.Duration();
if (splineFlags.HasFlag(SplineFlag.Parabolic))
if (splineFlags.HasFlag(SplineFlag.Parabolic) && (!moveSpline.spell_effect_extra.HasValue || moveSpline.effect_start_time != 0))
{
movementSpline.JumpExtraData.HasValue = true;
movementSpline.JumpExtraData.Value.JumpGravity = moveSpline.vertical_acceleration;