diff options
author | Andrei Karas <akaras@inbox.ru> | 2014-11-30 17:50:58 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2014-11-30 17:53:18 +0300 |
commit | 0af4b6dd0f616564a55447c7ce5318c72f68e590 (patch) | |
tree | 44757fc069d389f968c0b9bad36840362c3238f1 /src/net/eathena/beinghandler.cpp | |
parent | 8caabaeaf267d617ae04f13454bb587c3dbfa427 (diff) | |
download | mv-0af4b6dd0f616564a55447c7ce5318c72f68e590.tar.gz mv-0af4b6dd0f616564a55447c7ce5318c72f68e590.tar.bz2 mv-0af4b6dd0f616564a55447c7ce5318c72f68e590.tar.xz mv-0af4b6dd0f616564a55447c7ce5318c72f68e590.zip |
eathena: add support for get full moving path from server.
Diffstat (limited to 'src/net/eathena/beinghandler.cpp')
-rw-r--r-- | src/net/eathena/beinghandler.cpp | 11 |
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") |