diff options
-rw-r--r-- | src/game/Player.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 09468436aa9..4f931a24aad 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -5646,10 +5646,12 @@ bool Player::SetPosition(float x, float y, float z, float orientation, bool tele // mover->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_TURNING); //AURA_INTERRUPT_FLAG_JUMP not sure - if(GetOrientation() != orientation) + bool turn = (GetOrientation() != orientation); + bool move2d = (teleport || GetPositionX() != x || GetPositionY() != y); + + if(turn) RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_TURNING); - bool move2d = (teleport || GetPositionX() != x || GetPositionY() != y); if(move2d || GetPositionZ() != z) { RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_MOVE); @@ -5669,6 +5671,10 @@ bool Player::SetPosition(float x, float y, float z, float orientation, bool tele CheckExploreSystem(); } + else if(turn) + { + SetOrientation(orientation); + } return true; } |