summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-03-28 23:01:11 +0300
committerAndrei Karas <akaras@inbox.ru>2015-03-28 23:01:11 +0300
commit4e5cc9a9f4bcd7ba16f3bdbdce08fc4213164ff6 (patch)
tree6694e0fcbe744e835251fbe438a4fc09d0d8c401
parent388e14d628a67dd981c2cef7d7553d7cad22e091 (diff)
downloadmv-4e5cc9a9f4bcd7ba16f3bdbdce08fc4213164ff6.tar.gz
mv-4e5cc9a9f4bcd7ba16f3bdbdce08fc4213164ff6.tar.bz2
mv-4e5cc9a9f4bcd7ba16f3bdbdce08fc4213164ff6.tar.xz
mv-4e5cc9a9f4bcd7ba16f3bdbdce08fc4213164ff6.zip
eathena: add packet CMSG_LEAVE_CHAT_ROOM 0x00e3.
-rw-r--r--src/net/chathandler.h2
-rw-r--r--src/net/eathena/chathandler.cpp5
-rw-r--r--src/net/eathena/chathandler.h2
-rw-r--r--src/net/eathena/protocol.h1
-rw-r--r--src/net/tmwa/chathandler.cpp4
-rw-r--r--src/net/tmwa/chathandler.h2
6 files changed, 16 insertions, 0 deletions
diff --git a/src/net/chathandler.h b/src/net/chathandler.h
index dad30b676..fb8a1ab59 100644
--- a/src/net/chathandler.h
+++ b/src/net/chathandler.h
@@ -79,6 +79,8 @@ class ChatHandler notfinal
const int limit,
const bool isPublic) = 0;
+ virtual void leaveChatRoom() const = 0;
+
virtual void battleTalk(const std::string &text) const = 0;
virtual void joinChat(const ChatObject *const chat,
diff --git a/src/net/eathena/chathandler.cpp b/src/net/eathena/chathandler.cpp
index fad5f2c1b..78e909d62 100644
--- a/src/net/eathena/chathandler.cpp
+++ b/src/net/eathena/chathandler.cpp
@@ -939,4 +939,9 @@ void ChatHandler::processScriptMessage(Net::MessageIn &msg)
msg.readString(sz, "message");
}
+void ChatHandler::leaveChatRoom() const
+{
+ createOutPacket(CMSG_LEAVE_CHAT_ROOM);
+}
+
} // namespace EAthena
diff --git a/src/net/eathena/chathandler.h b/src/net/eathena/chathandler.h
index 37ad3ad5e..174c70bfa 100644
--- a/src/net/eathena/chathandler.h
+++ b/src/net/eathena/chathandler.h
@@ -87,6 +87,8 @@ class ChatHandler final : public MessageHandler, public Ea::ChatHandler
void talkPet(const std::string &restrict text,
const std::string &restrict channel) const override final;
+ void leaveChatRoom() const override final;
+
protected:
static std::string extractChannelFromMessage(std::string &chatMsg);
diff --git a/src/net/eathena/protocol.h b/src/net/eathena/protocol.h
index 4e0311e29..884cfc382 100644
--- a/src/net/eathena/protocol.h
+++ b/src/net/eathena/protocol.h
@@ -493,6 +493,7 @@
#define CMSG_BATTLE_CHAT_MESSAGE 0x02db
#define CMSG_CREAYE_CHAT_ROOM 0x00d5
+#define CMSG_LEAVE_CHAT_ROOM 0x00e3
#define CMSG_SKILL_LEVELUP_REQUEST 0x0112
#define CMSG_STAT_UPDATE_REQUEST 0x00bb
diff --git a/src/net/tmwa/chathandler.cpp b/src/net/tmwa/chathandler.cpp
index 75d14e7ce..4b426e1d8 100644
--- a/src/net/tmwa/chathandler.cpp
+++ b/src/net/tmwa/chathandler.cpp
@@ -688,4 +688,8 @@ void ChatHandler::talkPet(const std::string &restrict text,
talk(action, channel);
}
+void ChatHandler::leaveChatRoom() const
+{
+}
+
} // namespace TmwAthena
diff --git a/src/net/tmwa/chathandler.h b/src/net/tmwa/chathandler.h
index 4639a7cae..b5b5e2a36 100644
--- a/src/net/tmwa/chathandler.h
+++ b/src/net/tmwa/chathandler.h
@@ -85,6 +85,8 @@ class ChatHandler final : public MessageHandler, public Ea::ChatHandler
void talkPet(const std::string &restrict text,
const std::string &restrict channel) const override final;
+ void leaveChatRoom() const override final;
+
protected:
static void processChat(Net::MessageIn &msg);