From fe362cf2c9d5c71db4698480ce26cb35dbc58f28 Mon Sep 17 00:00:00 2001 From: Golrag Date: Thu, 14 Dec 2017 16:56:30 +0100 Subject: Core/Entities: Some changes to LoS z checking & MotionMaster::MoveJumpTo (PR #20970) - Use Midsection height for LoS checking. - Changed MotionMaster::MoveJumpTo to use correct z. This change also makes sure the _owner will jump towards the given angle. Instead of jumping to a unintended angle if the first one is not in LoS. (cherry picked from commit 95456ab5d8bd623481d315ae55dfbb44b45ba9f5) --- src/server/game/Movement/MotionMaster.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/server/game/Movement/MotionMaster.cpp') diff --git a/src/server/game/Movement/MotionMaster.cpp b/src/server/game/Movement/MotionMaster.cpp index 55719daad2c..939a60d575f 100644 --- a/src/server/game/Movement/MotionMaster.cpp +++ b/src/server/game/Movement/MotionMaster.cpp @@ -456,7 +456,9 @@ void MotionMaster::MoveJumpTo(float angle, float speedXY, float speedZ) float moveTimeHalf = speedZ / Movement::gravity; float dist = 2 * moveTimeHalf * speedXY; - _owner->GetClosePoint(x, y, z, _owner->GetCombatReach(), dist, angle); + _owner->GetNearPoint2D(x, y, dist, _owner->GetOrientation() + angle); + z = _owner->GetPositionZ() + _owner->GetMidsectionHeight(); + _owner->UpdateAllowedPositionZ(x, y, z); MoveJump(x, y, z, 0.0f, speedXY, speedZ); } -- cgit v1.2.3