From c1b0e49636cbc2a08f7690c33a6367542f6857b3 Mon Sep 17 00:00:00 2001
From: Andrei Karas <akaras@inbox.ru>
Date: Sat, 6 Sep 2014 00:26:49 +0300
Subject: eathena: add packet SMSG_BEING_STATUS_CHANGE2 0x043f.

---
 src/net/eathena/beinghandler.cpp | 7 ++++++-
 src/net/eathena/packets.h        | 2 +-
 src/net/eathena/protocol.h       | 1 +
 3 files changed, 8 insertions(+), 2 deletions(-)

(limited to 'src/net')

diff --git a/src/net/eathena/beinghandler.cpp b/src/net/eathena/beinghandler.cpp
index baaa3eccc..bff076502 100644
--- a/src/net/eathena/beinghandler.cpp
+++ b/src/net/eathena/beinghandler.cpp
@@ -83,6 +83,7 @@ BeingHandler::BeingHandler(const bool enableSync) :
         SMSG_PLAYER_MOVE_TO_ATTACK,
         SMSG_PLAYER_STATUS_CHANGE,
         SMSG_BEING_STATUS_CHANGE,
+        SMSG_BEING_STATUS_CHANGE2,
         SMSG_BEING_RESURRECT,
         SMSG_SOLVE_CHAR_NAME,
         SMSG_BEING_SPAWN,
@@ -194,6 +195,7 @@ void BeingHandler::handleMessage(Net::MessageIn &msg)
             break;
 
         case SMSG_BEING_STATUS_CHANGE:
+        case SMSG_BEING_STATUS_CHANGE2:
             processBeingStatusChange(msg);
             break;
 
@@ -903,11 +905,14 @@ void BeingHandler::processBeingStatusChange(Net::MessageIn &msg) const
         return;
     }
 
+    const bool status1 = msg.getId() == SMSG_BEING_STATUS_CHANGE;
+
     // Status change
     const uint16_t status = msg.readInt16("status");
     const int id = msg.readInt32("being id");
     const bool flag = msg.readUInt8("flag: 0: stop, 1: start");
-    msg.readInt32("total");
+    if (status1)
+        msg.readInt32("total");
     msg.readInt32("left");
     msg.readInt32("val1");
     msg.readInt32("val2");
diff --git a/src/net/eathena/packets.h b/src/net/eathena/packets.h
index 6775691f1..5483cf138 100644
--- a/src/net/eathena/packets.h
+++ b/src/net/eathena/packets.h
@@ -130,7 +130,7 @@ int16_t packet_lengths[] =
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,  25,
 // #0x0440
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
diff --git a/src/net/eathena/protocol.h b/src/net/eathena/protocol.h
index aa1ed94c2..12e307846 100644
--- a/src/net/eathena/protocol.h
+++ b/src/net/eathena/protocol.h
@@ -108,6 +108,7 @@
 #define SMSG_PLAYER_STATUS_CHANGE    0x0119
 #define SMSG_PLAYER_GUILD_PARTY_INFO 0x0195
 #define SMSG_BEING_STATUS_CHANGE     0x0983
+#define SMSG_BEING_STATUS_CHANGE2    0x043f
 
 #define SMSG_NPC_MESSAGE             0x00b4
 #define SMSG_NPC_NEXT                0x00b5
-- 
cgit v1.2.3-70-g09d2