From 4a73dd1338353a5d23c7de970c47995ee32ff500 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Mon, 5 Sep 2011 20:07:03 +0300 Subject: Fix move animation if moving with mouse or moving to navigation point. --- src/localplayer.cpp | 18 +++++++++++++++--- src/localplayer.h | 1 + 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/localplayer.cpp b/src/localplayer.cpp index e9386a5ee..c91532227 100644 --- a/src/localplayer.cpp +++ b/src/localplayer.cpp @@ -123,7 +123,8 @@ LocalPlayer::LocalPlayer(int id, int subtype): mLastHitFrom(""), mWaitFor(""), mAdvertTime(0), - mBlockAdvert(false) + mBlockAdvert(false), + mNextStep(false) { logger->log1("LocalPlayer::LocalPlayer"); @@ -222,8 +223,9 @@ void LocalPlayer::logic() if (mActivityTime == 0 || mLastAction != -1) mActivityTime = cur_time; - if (mAction != MOVE && !mNavigatePath.empty()) + if ((mAction != MOVE || mNextStep) && !mNavigatePath.empty()) { + mNextStep = false; int dist = 5; if (!mSyncPlayerMove) dist = 20; @@ -844,7 +846,17 @@ void LocalPlayer::nextTile(unsigned char dir A_UNUSED = 0) mPath.clear(); } - Being::nextTile(); + if (mPath.empty()) + { + if (mNavigatePath.empty() || mAction != MOVE) + setAction(STAND); + else + mNextStep = true; + } + else + { + Being::nextTile(); + } } #ifdef MANASERV_SUPPORT else diff --git a/src/localplayer.h b/src/localplayer.h index ebc347ce0..1f2790e88 100644 --- a/src/localplayer.h +++ b/src/localplayer.h @@ -601,6 +601,7 @@ class LocalPlayer : public Being, public ActorSpriteListener, bool mBlockAdvert; bool mEnableAdvert; bool mTradebot; + bool mNextStep; }; extern LocalPlayer *player_node; -- cgit v1.2.3-70-g09d2