From e5423740f34a6c5be1df36c84e7ce5ea84bfda1e Mon Sep 17 00:00:00 2001 From: Bertram Date: Mon, 25 Jan 2010 23:54:38 +0100 Subject: Finished Freeyorp's ViewPort bug fixing commit: http://gitorious.org/mana/mana/commit/58149dca937410826971f99b72e304121e61abb7 by merging ViewPort::mLocalWalkTime and ::mLocalWalktime into the first one, removing ifdefs, and making sure the setDestination() calls aren't done each ticks by setting the mLocalWalkTime equal to player->mWalkTime while Mouse Left Dragging, I also set it back to -1 when stop walking to avoid the bug where you have to start walking using the keyboard before being able to walk dragging the mouse under eAthena. --- src/gui/viewport.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/gui/viewport.cpp') diff --git a/src/gui/viewport.cpp b/src/gui/viewport.cpp index db995ab0..b3ed03f1 100644 --- a/src/gui/viewport.cpp +++ b/src/gui/viewport.cpp @@ -55,11 +55,7 @@ Viewport::Viewport(): mShowDebugPath(false), mVisibleNames(false), mPlayerFollowMouse(false), -#ifdef MANASERV_SUPPORT mLocalWalkTime(-1) -#else - mWalkTime(-1) -#endif { setOpaque(false); addMouseListener(this); @@ -424,8 +420,9 @@ void Viewport::mouseDragged(gcn::MouseEvent &event) player_node->pathSetByMouse(); } #else - if (mWalkTime != player_node->mWalkTime) + if (mLocalWalkTime != player_node->mWalkTime) { + mLocalWalkTime = player_node->mWalkTime; int destX = event.getX() / 32 + mTileViewX; int destY = event.getY() / 32 + mTileViewY; player_node->setDestination(destX, destY); @@ -437,6 +434,9 @@ void Viewport::mouseDragged(gcn::MouseEvent &event) void Viewport::mouseReleased(gcn::MouseEvent &event) { mPlayerFollowMouse = false; +#ifdef EATHENA_SUPPORT + mLocalWalkTime = -1; +#endif } void Viewport::showPopup(int x, int y, Item *item, bool isInventory) -- cgit v1.2.3-70-g09d2