summaryrefslogtreecommitdiff
path: root/src/net/eathena
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/eathena')
-rw-r--r--src/net/eathena/messagein.cpp11
-rw-r--r--src/net/eathena/messagein.h3
-rw-r--r--src/net/eathena/network.cpp5
3 files changed, 16 insertions, 3 deletions
diff --git a/src/net/eathena/messagein.cpp b/src/net/eathena/messagein.cpp
index 3a71e0c76..7b21b7485 100644
--- a/src/net/eathena/messagein.cpp
+++ b/src/net/eathena/messagein.cpp
@@ -40,12 +40,21 @@ MessageIn::MessageIn(const char *const data,
{
}
-void MessageIn::postInit(const char *const str)
+void MessageIn::postInit(const char *const str,
+ const unsigned int version)
{
// Read the message ID
mId = readId();
+ mVersion = version;
IGNOREDEBUGLOG;
DEBUGLOG2("Receive packet", 0, "MessageIn");
+#ifdef ENABLEDEBUGLOG
+ if (mVersion > 0)
+ {
+ const std::string verStr = toString(mVersion);
+ DEBUGLOG2("Version", 0, verStr.c_str());
+ }
+#endif
readInt16(str);
}
diff --git a/src/net/eathena/messagein.h b/src/net/eathena/messagein.h
index da5f57d7d..5ba13ea9c 100644
--- a/src/net/eathena/messagein.h
+++ b/src/net/eathena/messagein.h
@@ -46,7 +46,8 @@ class MessageIn final : public Net::MessageIn
A_DELETE_COPY(MessageIn)
- void postInit(const char *const str);
+ void postInit(const char *const str,
+ const unsigned int version);
/**< Reads a short. */
int16_t readInt16(const char *const str) override final;
diff --git a/src/net/eathena/network.cpp b/src/net/eathena/network.cpp
index fc0cd3837..96bebd320 100644
--- a/src/net/eathena/network.cpp
+++ b/src/net/eathena/network.cpp
@@ -134,7 +134,10 @@ void Network::dispatchMessages()
len = readWord(2);
MessageIn msg(mInBuffer, len);
- msg.postInit(mPackets[msgId].name);
+ unsigned int ver = mPackets[msgId].version;
+ if (ver == 0)
+ ver = packetVersion;
+ msg.postInit(mPackets[msgId].name, ver);
SDL_mutexV(mMutexIn);
if (len == 0)