From e0d490b2313976562135f91bf7e723825871b3d4 Mon Sep 17 00:00:00 2001
From: Andrei Karas <akaras@inbox.ru>
Date: Fri, 5 Sep 2014 23:11:41 +0300
Subject: eathena: fix reading packet SMSG_BEING_MOVE2 0x0086.

---
 src/net/eathena/beinghandler.cpp | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

(limited to 'src')

diff --git a/src/net/eathena/beinghandler.cpp b/src/net/eathena/beinghandler.cpp
index bdfeb813a..d87455c81 100644
--- a/src/net/eathena/beinghandler.cpp
+++ b/src/net/eathena/beinghandler.cpp
@@ -926,6 +926,11 @@ void BeingHandler::processBeingMove2(Net::MessageIn &msg) const
       */
     Being *const dstBeing = actorManager->findBeing(msg.readInt32("being id"));
 
+    uint16_t srcX, srcY, dstX, dstY;
+    msg.readCoordinatePair(srcX, srcY, dstX, dstY, "move path");
+    msg.readUInt8("(sx<<4) | (sy&0x0f)");
+    msg.readInt32("tick");
+
     /*
       * This packet doesn't have enough info to actually
       * create a new being, so if the being isn't found,
@@ -938,10 +943,6 @@ void BeingHandler::processBeingMove2(Net::MessageIn &msg) const
         return;
     }
 
-    uint16_t srcX, srcY, dstX, dstY;
-    msg.readCoordinatePair(srcX, srcY, dstX, dstY, "move path");
-    msg.readInt32("tick");
-
     dstBeing->setAction(BeingAction::STAND, 0);
     dstBeing->setTileCoords(srcX, srcY);
     dstBeing->setDestination(dstX, dstY);
-- 
cgit v1.2.3-70-g09d2