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.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/net/eathena/beinghandler.cpp b/src/net/eathena/beinghandler.cpp
index 958cd1391..c68be6f24 100644
--- a/src/net/eathena/beinghandler.cpp
+++ b/src/net/eathena/beinghandler.cpp
@@ -1110,4 +1110,31 @@ void BeingHandler::processRanksList(Net::MessageIn &msg) const
msg.readInt32("my points");
}
+void BeingHandler::processBeingChangeDirection(Net::MessageIn &msg) const
+{
+ BLOCK_START("BeingHandler::processBeingChangeDirection")
+ if (!actorManager)
+ {
+ BLOCK_END("BeingHandler::processBeingChangeDirection")
+ return;
+ }
+
+ Being *const dstBeing = actorManager->findBeing(msg.readInt32("being id"));
+
+ if (!dstBeing)
+ {
+ BLOCK_END("BeingHandler::processBeingChangeDirection")
+ return;
+ }
+
+ msg.readInt16("unused");
+
+ const uint8_t dir = static_cast<uint8_t>(
+ msg.readUInt8("direction") & 0x0FU);
+ dstBeing->setDirection(dir);
+ if (localPlayer)
+ localPlayer->imitateDirection(dstBeing, dir);
+ BLOCK_END("BeingHandler::processBeingChangeDirection")
+}
+
} // namespace EAthena