aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Movement/MotionMaster.cpp
diff options
context:
space:
mode:
authorGolrag <Golrag@users.noreply.github.com>2017-12-14 16:56:30 +0100
committerfunjoker <funjoker109@gmail.com>2021-03-15 20:17:31 +0100
commitfe362cf2c9d5c71db4698480ce26cb35dbc58f28 (patch)
treeee322a201886df019ba4f9b0cd31eca0814beb59 /src/server/game/Movement/MotionMaster.cpp
parent2313343227b9415a08a0efc1e95cced9e308ef9d (diff)
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)
Diffstat (limited to 'src/server/game/Movement/MotionMaster.cpp')
-rw-r--r--src/server/game/Movement/MotionMaster.cpp4
1 files changed, 3 insertions, 1 deletions
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);
}