diff options
Diffstat (limited to 'src/localplayer.cpp')
-rw-r--r-- | src/localplayer.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/localplayer.cpp b/src/localplayer.cpp index 65f1fcc7..78988aa1 100644 --- a/src/localplayer.cpp +++ b/src/localplayer.cpp @@ -103,6 +103,7 @@ LocalPlayer::LocalPlayer(int id, int job, Map *map): mTrading(false), mGoingToTarget(false), mKeepAttacking(false), mLastAction(-1), mWalkingDir(0), + mPathSetByMouse(false), mDestX(0), mDestY(0), mInventory(new Inventory(INVENTORY_SIZE)), #ifdef TMWSERV_SUPPORT @@ -538,10 +539,12 @@ void LocalPlayer::setWalkingDir(int dir) player_node->stopWalking(false); // Else, he is not pressing a key, - // And the current path is over. Then, stop (sending to server). - else if (!dir && mPath.empty()) + // and the current path hasn't been sent by mouse, + // then, stop (sending to server). + else if (!dir) { - player_node->stopWalking(true); + if (!mPathSetByMouse) + player_node->stopWalking(true); return; } @@ -641,6 +644,9 @@ void LocalPlayer::stopWalking(bool sendToServer) setAction(STAND); } + // No path set anymore, so we reset the path by mouse flag + mPathSetByMouse = false; + clearPath(); } |