summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-03-10 21:03:04 +0300
committerAndrei Karas <akaras@inbox.ru>2015-03-10 21:03:04 +0300
commit38315e4cc40ec0990b1e4f4e6d814fafdd064aae (patch)
tree3f5fd2d9b5571b7f64b8a0bd32df9638d90749f4
parent1bf045651a77b43f870236d7c64e05f47ca1861b (diff)
downloadmanaplus-38315e4cc40ec0990b1e4f4e6d814fafdd064aae.tar.gz
manaplus-38315e4cc40ec0990b1e4f4e6d814fafdd064aae.tar.bz2
manaplus-38315e4cc40ec0990b1e4f4e6d814fafdd064aae.tar.xz
manaplus-38315e4cc40ec0990b1e4f4e6d814fafdd064aae.zip
eathena: add partial support for packet SMSG_CHAT_SETTINGS 0x00df.
-rw-r--r--src/net/eathena/chathandler.cpp17
-rw-r--r--src/net/eathena/chathandler.h2
-rw-r--r--src/net/eathena/protocol.h1
3 files changed, 20 insertions, 0 deletions
diff --git a/src/net/eathena/chathandler.cpp b/src/net/eathena/chathandler.cpp
index 611555ba5..dd232305c 100644
--- a/src/net/eathena/chathandler.cpp
+++ b/src/net/eathena/chathandler.cpp
@@ -81,6 +81,7 @@ ChatHandler::ChatHandler() :
SMSG_CHAT_DESTROY,
SMSG_CHAT_JOIN_FAILED,
SMSG_CHAT_ADD_MEMBER,
+ SMSG_CHAT_SETTINGS,
0
};
handledMessages = _messages;
@@ -181,6 +182,10 @@ void ChatHandler::handleMessage(Net::MessageIn &msg)
processChatAddMember(msg);
break;
+ case SMSG_CHAT_SETTINGS:
+ processChatSettings(msg);
+ break;
+
default:
break;
}
@@ -816,4 +821,16 @@ void ChatHandler::processChatAddMember(Net::MessageIn &msg)
msg.readString(24, "name");
}
+void ChatHandler::processChatSettings(Net::MessageIn &msg)
+{
+ UNIMPLIMENTEDPACKET;
+ const int sz = msg.readInt16("len") - 17;
+ msg.readInt32("owner id");
+ msg.readInt32("chat id");
+ msg.readInt16("limit");
+ msg.readInt16("users");
+ msg.readUInt8("type");
+ msg.readString(sz, "title");
+}
+
} // namespace EAthena
diff --git a/src/net/eathena/chathandler.h b/src/net/eathena/chathandler.h
index e5ea32ed4..5ca4899f0 100644
--- a/src/net/eathena/chathandler.h
+++ b/src/net/eathena/chathandler.h
@@ -135,6 +135,8 @@ class ChatHandler final : public MessageHandler, public Ea::ChatHandler
static void processChatJoinFailed(Net::MessageIn &msg);
static void processChatAddMember(Net::MessageIn &msg);
+
+ static void processChatSettings(Net::MessageIn &msg);
};
} // namespace EAthena
diff --git a/src/net/eathena/protocol.h b/src/net/eathena/protocol.h
index e6535fda4..a929d9d6b 100644
--- a/src/net/eathena/protocol.h
+++ b/src/net/eathena/protocol.h
@@ -265,6 +265,7 @@
#define SMSG_CHAT_JOIN_ACK 0x00db
#define SMSG_CHAT_ADD_MEMBER 0x00dc
#define SMSG_CHAT_LEAVE 0x00dd
+#define SMSG_CHAT_SETTINGS 0x00df
#define SMSG_CHAT_JOIN_CHANNEL 0x0b08
#define SMSG_MAIL_OPEN_WINDOW 0x0260