summaryrefslogtreecommitdiff
path: root/src/net
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2014-09-19 14:46:46 +0300
committerAndrei Karas <akaras@inbox.ru>2014-09-19 14:46:46 +0300
commit2c2a9956f8271fc6a1ac0ff978ceb1c57403f849 (patch)
tree195aa4e30ccd75bf6667168d69ad01bf316fd7d6 /src/net
parent4560d6660217598df26631496ca666793b6be3f5 (diff)
downloadplus-2c2a9956f8271fc6a1ac0ff978ceb1c57403f849.tar.gz
plus-2c2a9956f8271fc6a1ac0ff978ceb1c57403f849.tar.bz2
plus-2c2a9956f8271fc6a1ac0ff978ceb1c57403f849.tar.xz
plus-2c2a9956f8271fc6a1ac0ff978ceb1c57403f849.zip
eathena: add partial support for packet SMSG_CHAT_LEAVE 0x00dd.
Diffstat (limited to 'src/net')
-rw-r--r--src/net/eathena/chathandler.cpp12
-rw-r--r--src/net/eathena/chathandler.h2
-rw-r--r--src/net/eathena/protocol.h1
3 files changed, 15 insertions, 0 deletions
diff --git a/src/net/eathena/chathandler.cpp b/src/net/eathena/chathandler.cpp
index 6ed5dc30c..d03e3b304 100644
--- a/src/net/eathena/chathandler.cpp
+++ b/src/net/eathena/chathandler.cpp
@@ -69,6 +69,7 @@ ChatHandler::ChatHandler() :
SMSG_FORMAT_MESSAGE_SKILL,
SMSG_CHAT_DISPLAY,
SMSG_CHAT_JOIN_ACK,
+ SMSG_CHAT_LEAVE,
0
};
handledMessages = _messages;
@@ -141,6 +142,10 @@ void ChatHandler::handleMessage(Net::MessageIn &msg)
processChatJoinAck(msg);
break;
+ case SMSG_CHAT_LEAVE:
+ processChatLeave(msg);
+ break;
+
default:
break;
}
@@ -496,4 +501,11 @@ void ChatHandler::processChatJoinAck(Net::MessageIn &msg)
}
}
+void ChatHandler::processChatLeave(Net::MessageIn &msg)
+{
+ msg.readInt16("users");
+ msg.readString(24, "name");
+ msg.readUInt8("flag"); // 0 - left, 1 - kicked
+}
+
} // namespace EAthena
diff --git a/src/net/eathena/chathandler.h b/src/net/eathena/chathandler.h
index 4f544fb27..77484c946 100644
--- a/src/net/eathena/chathandler.h
+++ b/src/net/eathena/chathandler.h
@@ -101,6 +101,8 @@ class ChatHandler final : public MessageHandler, public Ea::ChatHandler
void processChatDisplay(Net::MessageIn &msg);
void processChatJoinAck(Net::MessageIn &msg);
+
+ void processChatLeave(Net::MessageIn &msg);
};
} // namespace EAthena
diff --git a/src/net/eathena/protocol.h b/src/net/eathena/protocol.h
index 2dc33397a..16f0acb09 100644
--- a/src/net/eathena/protocol.h
+++ b/src/net/eathena/protocol.h
@@ -215,6 +215,7 @@
#define SMSG_CHAT_IGNORE_LIST 0x00d4
#define SMSG_CHAT_DISPLAY 0x00d7
#define SMSG_CHAT_JOIN_ACK 0x00db
+#define SMSG_CHAT_LEAVE 0x00dd
#define SMSG_MAIL_OPEN_WINDOW 0x0260