summaryrefslogtreecommitdiff
path: root/src/net
diff options
context:
space:
mode:
authorYohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer>2012-01-18 16:31:05 +0100
committerYohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer>2012-01-18 22:06:40 +0100
commite554d9b2be1ec2fcb15065ae70151302adeef602 (patch)
tree7ed91e2cc9ec4e2049d4438e0682d1b62ed7590f /src/net
parentd706e45af52a25a2a0032d1161a3c4423a63eae2 (diff)
downloadmana-client-e554d9b2be1ec2fcb15065ae70151302adeef602.tar.gz
mana-client-e554d9b2be1ec2fcb15065ae70151302adeef602.tar.bz2
mana-client-e554d9b2be1ec2fcb15065ae70151302adeef602.tar.xz
mana-client-e554d9b2be1ec2fcb15065ae70151302adeef602.zip
Found a better way to fix the movement glitches on both servers.
The patch also takes care of not spamming the different servers, when the servers are setting the being speed correctly. The most problems were coming from the keyboard movement functions handling 1 tile paths. To void the issues seen in #405, #439, and #440, I simply prevented to set a new path before reaching the destination of the former one, when using the keyboard. The mouse path system remains unchanged. I also made some functions private (or here protected) to show they shouldn't be called by something else than the localplayer object. And I removed the nextTile() function, since it was obsolete, unused, and replaced by the nextTile(direction) function. That patch was tested on both servers with mouse/keyboard mixed use. Resolves: Mana-Mantis #405, #439, #440. Reviewed-by: bjorn
Diffstat (limited to 'src/net')
-rw-r--r--src/net/manaserv/playerhandler.cpp8
-rw-r--r--src/net/manaserv/playerhandler.h2
-rw-r--r--src/net/playerhandler.h6
-rw-r--r--src/net/tmwa/playerhandler.cpp5
-rw-r--r--src/net/tmwa/playerhandler.h2
5 files changed, 0 insertions, 23 deletions
diff --git a/src/net/manaserv/playerhandler.cpp b/src/net/manaserv/playerhandler.cpp
index 43af40f5..aa670ad8 100644
--- a/src/net/manaserv/playerhandler.cpp
+++ b/src/net/manaserv/playerhandler.cpp
@@ -442,12 +442,4 @@ Vector PlayerHandler::getPixelsPerTickMoveSpeed(const Vector &speed, Map *map)
return speedInTicks;
}
-int PlayerHandler::getKeyboardMoveDelay(const Vector& speed)
-{
- int maxSpeed = std::max(speed.x, speed.y);
- if (maxSpeed <= 0)
- maxSpeed = 2;
- return 1000 / maxSpeed;
-}
-
} // namespace ManaServ
diff --git a/src/net/manaserv/playerhandler.h b/src/net/manaserv/playerhandler.h
index 0edb4354..3e3f8aad 100644
--- a/src/net/manaserv/playerhandler.h
+++ b/src/net/manaserv/playerhandler.h
@@ -69,8 +69,6 @@ class PlayerHandler : public MessageHandler, public Net::PlayerHandler
Vector getPixelsPerTickMoveSpeed(const Vector &speed, Map *map = 0);
- int getKeyboardMoveDelay(const Vector& speed);
-
bool usePixelPrecision()
{ return true; }
diff --git a/src/net/playerhandler.h b/src/net/playerhandler.h
index b52b6315..6ac28b62 100644
--- a/src/net/playerhandler.h
+++ b/src/net/playerhandler.h
@@ -77,12 +77,6 @@ class PlayerHandler
Map *map = 0) = 0;
/**
- * Convert the original speed into the keyboard move delay.
- * The delay is set in milliseconds per tiles.
- */
- virtual int getKeyboardMoveDelay(const Vector& speed) = 0;
-
- /**
* Tells whether the client has to use pixel paths.
* Return false when tiles-center positions only are to be used.
*/
diff --git a/src/net/tmwa/playerhandler.cpp b/src/net/tmwa/playerhandler.cpp
index f91d8573..132e45ee 100644
--- a/src/net/tmwa/playerhandler.cpp
+++ b/src/net/tmwa/playerhandler.cpp
@@ -662,9 +662,4 @@ Vector PlayerHandler::getPixelsPerTickMoveSpeed(const Vector &speed, Map *map)
return speedInTicks;
}
-int PlayerHandler::getKeyboardMoveDelay(const Vector& speed)
-{
- return std::min(speed.x, speed.y) * MILLISECONDS_IN_A_TICK;
-}
-
} // namespace TmwAthena
diff --git a/src/net/tmwa/playerhandler.h b/src/net/tmwa/playerhandler.h
index 3e22be22..63812f47 100644
--- a/src/net/tmwa/playerhandler.h
+++ b/src/net/tmwa/playerhandler.h
@@ -62,8 +62,6 @@ class PlayerHandler : public MessageHandler, public Net::PlayerHandler
Vector getPixelsPerTickMoveSpeed(const Vector &speed, Map *map = 0);
- int getKeyboardMoveDelay(const Vector& speed);
-
bool usePixelPrecision()
{ return false; }
};