From e5423740f34a6c5be1df36c84e7ce5ea84bfda1e Mon Sep 17 00:00:00 2001
From: Bertram <bertram@cegetel.net>
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 +++++-----
 src/gui/viewport.h   |  5 +----
 2 files changed, 6 insertions(+), 9 deletions(-)

(limited to 'src')

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)
diff --git a/src/gui/viewport.h b/src/gui/viewport.h
index d3a86f1d..4b12bcc6 100644
--- a/src/gui/viewport.h
+++ b/src/gui/viewport.h
@@ -177,11 +177,8 @@ class Viewport : public WindowContainer, public gcn::MouseListener,
         bool mVisibleNames;          /**< Show target names. */
 
         bool mPlayerFollowMouse;
-#ifdef MANASERV_SUPPORT
+
         int mLocalWalkTime; /**< Timestamp before the next walk can be sent. */
-#else
-        int mWalkTime;
-#endif
 
         PopupMenu *mPopupMenu;       /**< Popup menu. */
         Being *mSelectedBeing;       /**< Current selected being. */
-- 
cgit v1.2.3-70-g09d2