summaryrefslogtreecommitdiff
path: root/src/net/tmwa
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2014-09-01 00:42:35 +0300
committerAndrei Karas <akaras@inbox.ru>2014-09-06 01:18:54 +0300
commited5325ebc95fd9d954730a27c0e57be35bc5d3d0 (patch)
treed08c494813e4ce6537010aea1263fdda71cdc234 /src/net/tmwa
parenta232b6c9ae2315c4658a0de6ba0fc779d4606fdd (diff)
downloadmanaverse-ed5325ebc95fd9d954730a27c0e57be35bc5d3d0.tar.gz
manaverse-ed5325ebc95fd9d954730a27c0e57be35bc5d3d0.tar.bz2
manaverse-ed5325ebc95fd9d954730a27c0e57be35bc5d3d0.tar.xz
manaverse-ed5325ebc95fd9d954730a27c0e57be35bc5d3d0.zip
Move processMapLogin from ea to tmwa and eathena namespaces.
Diffstat (limited to 'src/net/tmwa')
-rw-r--r--src/net/tmwa/gamehandler.cpp18
-rw-r--r--src/net/tmwa/gamehandler.h3
2 files changed, 21 insertions, 0 deletions
diff --git a/src/net/tmwa/gamehandler.cpp b/src/net/tmwa/gamehandler.cpp
index fabd15b1b..e74315b44 100644
--- a/src/net/tmwa/gamehandler.cpp
+++ b/src/net/tmwa/gamehandler.cpp
@@ -171,4 +171,22 @@ void GameHandler::disconnect2() const
MessageOut outMsg(CMSG_CLIENT_DISCONNECT);
}
+void GameHandler::processMapLogin(Net::MessageIn &msg) const
+{
+ unsigned char direction;
+ uint16_t x, y;
+ msg.readInt32(); // server tick
+ msg.readCoordinates(x, y, direction);
+ msg.skip(2); // 0x0505
+ logger->log("Protocol: Player start position: (%d, %d),"
+ " Direction: %d", x, y, direction);
+
+ mLastHost &= 0xffffff;
+
+ // Switch now or we'll have problems
+ client->setState(STATE_GAME);
+ if (localPlayer)
+ localPlayer->setTileCoords(x, y);
+}
+
} // namespace TmwAthena
diff --git a/src/net/tmwa/gamehandler.h b/src/net/tmwa/gamehandler.h
index fdbb4cf17..b3736289e 100644
--- a/src/net/tmwa/gamehandler.h
+++ b/src/net/tmwa/gamehandler.h
@@ -55,6 +55,9 @@ class GameHandler final : public MessageHandler, public Ea::GameHandler
bool mustPing() const override final A_WARN_UNUSED
{ return false; }
+
+ protected:
+ void processMapLogin(Net::MessageIn &msg) const;
};
} // namespace TmwAthena