summaryrefslogtreecommitdiff
path: root/src/net/eathena
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/eathena')
-rw-r--r--src/net/eathena/playerhandler.cpp16
-rw-r--r--src/net/eathena/playerhandler.h2
2 files changed, 18 insertions, 0 deletions
diff --git a/src/net/eathena/playerhandler.cpp b/src/net/eathena/playerhandler.cpp
index a4ce3c0d0..c6636fded 100644
--- a/src/net/eathena/playerhandler.cpp
+++ b/src/net/eathena/playerhandler.cpp
@@ -340,4 +340,20 @@ void PlayerHandler::processPlayerGetExp(Net::MessageIn &msg)
// need show particle depend on isQuest flag, for now ignored
}
+void PlayerHandler::processWalkResponse(Net::MessageIn &msg)
+{
+ BLOCK_START("PlayerHandler::processWalkResponse")
+ /*
+ * This client assumes that all walk messages succeed,
+ * and that the server will send a correction notice
+ * otherwise.
+ */
+ uint16_t srcX, srcY, dstX, dstY;
+ msg.readInt32(); // tick
+ msg.readCoordinatePair(srcX, srcY, dstX, dstY);
+ if (localPlayer)
+ localPlayer->setRealPos(dstX, dstY);
+ BLOCK_END("PlayerHandler::processWalkResponse")
+}
+
} // namespace EAthena
diff --git a/src/net/eathena/playerhandler.h b/src/net/eathena/playerhandler.h
index 03806ec4d..cc6804164 100644
--- a/src/net/eathena/playerhandler.h
+++ b/src/net/eathena/playerhandler.h
@@ -64,6 +64,8 @@ class PlayerHandler final : public MessageHandler, public Ea::PlayerHandler
void processPlayerStatUpdate5(Net::MessageIn &msg);
void processPlayerGetExp(Net::MessageIn &msg);
+
+ static void processWalkResponse(Net::MessageIn &msg);
};
} // namespace EAthena