From e74554d22e2308ffb7ecdcae07477b8414f64a3b Mon Sep 17 00:00:00 2001
From: Andrei Karas <akaras@inbox.ru>
Date: Sat, 7 Apr 2018 01:04:43 +0300
Subject: Add packet SMSG_QUEST_LIST 0x09f8.

---
 src/net/eathena/packetsin.inc |  1 +
 src/net/eathena/questrecv.cpp | 19 ++++++++++++++++++-
 2 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/src/net/eathena/packetsin.inc b/src/net/eathena/packetsin.inc
index bbc6dc805..01ae61d3e 100644
--- a/src/net/eathena/packetsin.inc
+++ b/src/net/eathena/packetsin.inc
@@ -925,6 +925,7 @@ if (packetVersion >= 20150513)
     packet(SMSG_BEING_MOVE,                0x09fd,  -1, &BeingRecv::processBeingMove,                   20150513);
     packet(SMSG_PLAYER_HEAL,               0x0a27,   8, &PlayerRecv::processPlayerHeal,                 20150513);
     packet(SMSG_HOMUNCULUS_INFO,           0x09f7,  75, &HomunculusRecv::processHomunculusInfo,         20150513);
+    packet(SMSG_QUEST_LIST,                0x09f8,  -1, &QuestRecv::processAddQuests,                   20150513);
 }
 
 // 20150805
diff --git a/src/net/eathena/questrecv.cpp b/src/net/eathena/questrecv.cpp
index e3277f030..8b709062d 100644
--- a/src/net/eathena/questrecv.cpp
+++ b/src/net/eathena/questrecv.cpp
@@ -94,7 +94,24 @@ void QuestRecv::processAddQuests(Net::MessageIn &msg)
         {
             msg.readInt32("time diff");
             msg.readInt32("time");
-            msg.readInt16("objectives count");
+            const int cnt = msg.readInt16("objectives count");
+            for (int d = 0; d < cnt; d ++)
+            {
+                if (msg.getVersion() >= 20150513)
+                {
+                    msg.readInt32("hunt ident");
+                    msg.readInt32("mob type");
+                }
+                msg.readInt32("mob id");
+                if (msg.getVersion() >= 20150513)
+                {
+                    msg.readInt16("level min");
+                    msg.readInt16("level max");
+                }
+                msg.readInt16("hunt count");
+                msg.readInt16("max count");
+                msg.readString(24, "mob name");
+            }
         }
         if (questsWindow != nullptr)
             questsWindow->updateQuest(var, val, 0, 0, 0);
-- 
cgit v1.2.3-70-g09d2