summaryrefslogtreecommitdiff
path: root/src/net/eathena/beinghandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/eathena/beinghandler.cpp')
-rw-r--r--src/net/eathena/beinghandler.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/net/eathena/beinghandler.cpp b/src/net/eathena/beinghandler.cpp
index 447e7fc4a..2973a791c 100644
--- a/src/net/eathena/beinghandler.cpp
+++ b/src/net/eathena/beinghandler.cpp
@@ -119,6 +119,7 @@ BeingHandler::BeingHandler(const bool enableSync) :
SMSG_BEING_FAKE_NAME,
SMSG_BEING_STAT_UPDATE_1,
SMSG_MOB_INFO,
+ SMSG_BEING_MOVE3,
0
};
handledMessages = _messages;
@@ -324,6 +325,10 @@ void BeingHandler::handleMessage(Net::MessageIn &msg)
processMobInfo(msg);
break;
+ case SMSG_BEING_MOVE3:
+ processBeingMove3(msg);
+ break;
+
default:
break;
}
@@ -1230,7 +1235,8 @@ void BeingHandler::processBeingMove(Net::MessageIn &msg)
msg.readInt8("ys");
dstBeing->setAction(BeingAction::STAND, 0);
dstBeing->setTileCoords(srcX, srcY);
- dstBeing->setDestination(dstX, dstY);
+ if (!serverFeatures->haveMove3())
+ dstBeing->setDestination(dstX, dstY);
// because server don't send direction in move packet, we fixing it
@@ -1517,7 +1523,8 @@ void BeingHandler::processBeingMove2(Net::MessageIn &msg)
dstBeing->setAction(BeingAction::STAND, 0);
dstBeing->setTileCoords(srcX, srcY);
- dstBeing->setDestination(dstX, dstY);
+ if (!serverFeatures->haveMove3())
+ dstBeing->setDestination(dstX, dstY);
if (dstBeing->getType() == ActorType::Player)
dstBeing->setMoveTime();
BLOCK_END("BeingHandler::processBeingMove2")