aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPesthuf <Paladion@web.de>2012-07-28 17:07:05 +0200
committerPesthuf <Paladion@web.de>2012-07-28 17:09:38 +0200
commit5acae3253053ea91bb0327adf6eddd864669f80d (patch)
tree5fcea3d79172f48e58c89ebaf84e1f9f16f7f316 /src
parent2f6583094d6df569176c676bd631cb5e6231e966 (diff)
Core/Movement:
When an NPC is knocked back, the splineflag OrientationFixed should be used, so the NPC keeps his facing and doesn't play the jump start animation. Also corrects the NPCs serverside orientation.
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/Movement/MotionMaster.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/server/game/Movement/MotionMaster.cpp b/src/server/game/Movement/MotionMaster.cpp
index bc0570bb73b..cde176443f0 100755
--- a/src/server/game/Movement/MotionMaster.cpp
+++ b/src/server/game/Movement/MotionMaster.cpp
@@ -335,9 +335,17 @@ void MotionMaster::MoveKnockbackFrom(float srcX, float srcY, float speedXY, floa
float x, y, z;
float moveTimeHalf = speedZ / Movement::gravity;
float dist = 2 * moveTimeHalf * speedXY;
+ float max_height = -Movement::computeFallElevation(moveTimeHalf,false,-speedZ);
_owner->GetNearPoint(_owner, x, y, z, _owner->GetObjectSize(), dist, _owner->GetAngle(srcX, srcY) + M_PI);
- MoveJump(x, y, z, speedXY, speedZ);
+
+ Movement::MoveSplineInit init(*_owner);
+ init.MoveTo(x,y,z);
+ init.SetParabolic(max_height,0);
+ init.SetOrientationFixed(true);
+ init.SetVelocity(speedXY);
+ init.Launch();
+ Mutate(new EffectMovementGenerator(0), MOTION_SLOT_CONTROLLED);
}
void MotionMaster::MoveJumpTo(float angle, float speedXY, float speedZ)