summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/net/eathena/questhandler.cpp1
-rw-r--r--src/net/messagein.cpp11
-rw-r--r--src/net/messagein.h2
3 files changed, 14 insertions, 0 deletions
diff --git a/src/net/eathena/questhandler.cpp b/src/net/eathena/questhandler.cpp
index 3d6cde34f..d7e8bf6e8 100644
--- a/src/net/eathena/questhandler.cpp
+++ b/src/net/eathena/questhandler.cpp
@@ -141,6 +141,7 @@ void QuestHandler::processAddQuestsObjectives(Net::MessageIn &msg)
msg.readString(24, "monster name");
}
}
+ msg.skipToEnd("unused");
}
void QuestHandler::processUpdateQuestsObjectives(Net::MessageIn &msg)
diff --git a/src/net/messagein.cpp b/src/net/messagein.cpp
index 0c7f9cb7e..212ce9d55 100644
--- a/src/net/messagein.cpp
+++ b/src/net/messagein.cpp
@@ -200,6 +200,17 @@ void MessageIn::skip(const unsigned int length, const char *const str)
PacketCounters::incInBytes(length);
}
+void MessageIn::skipToEnd(const char *const str)
+{
+ const int diff = static_cast<int>(mLength - mPos);
+ if (diff)
+ {
+ DEBUGLOG2("skip: " + toString(diff), mPos, str);
+ mPos = mLength;
+ PacketCounters::incInBytes(diff);
+ }
+}
+
std::string MessageIn::readString(int length, const char *const dstr)
{
// Get string length
diff --git a/src/net/messagein.h b/src/net/messagein.h
index cc32328cb..ba857ce64 100644
--- a/src/net/messagein.h
+++ b/src/net/messagein.h
@@ -97,6 +97,8 @@ class MessageIn notfinal
virtual void skip(const unsigned int length,
const char *const str = nullptr);
+ void skipToEnd(const char *const str = nullptr);
+
/**
* Reads a string. If a length is not given (-1), it is assumed
* that the length of the string is stored in a short at the