summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2014-09-11 23:08:36 +0300
committerAndrei Karas <akaras@inbox.ru>2014-09-11 23:08:36 +0300
commit603d7aa8dd15738bbf72d83bdb0d6c4caedb62c8 (patch)
tree26b274e90a7412ef7b3117addf3a1c4c7339b870
parentf96c3bf4bdccbf983b21b103d3ba748153e81f1c (diff)
downloadmanaplus-603d7aa8dd15738bbf72d83bdb0d6c4caedb62c8.tar.gz
manaplus-603d7aa8dd15738bbf72d83bdb0d6c4caedb62c8.tar.bz2
manaplus-603d7aa8dd15738bbf72d83bdb0d6c4caedb62c8.tar.xz
manaplus-603d7aa8dd15738bbf72d83bdb0d6c4caedb62c8.zip
eathena: add partial support for packet SMSG_CHAT_IGNORE_LIST 0x00d4.
-rw-r--r--src/net/eathena/chathandler.cpp13
-rw-r--r--src/net/eathena/chathandler.h2
-rw-r--r--src/net/eathena/protocol.h2
3 files changed, 17 insertions, 0 deletions
diff --git a/src/net/eathena/chathandler.cpp b/src/net/eathena/chathandler.cpp
index eaea75651..031222e3e 100644
--- a/src/net/eathena/chathandler.cpp
+++ b/src/net/eathena/chathandler.cpp
@@ -59,6 +59,7 @@ ChatHandler::ChatHandler() :
SMSG_MVP, // MVP
SMSG_IGNORE_ALL_RESPONSE,
SMSG_COLOR_MESSAGE,
+ SMSG_CHAT_IGNORE_LIST,
0
};
handledMessages = _messages;
@@ -101,6 +102,10 @@ void ChatHandler::handleMessage(Net::MessageIn &msg)
processIgnoreAllResponse(msg);
break;
+ case SMSG_CHAT_IGNORE_LIST:
+ processChatIgnoreList(msg);
+ break;
+
default:
break;
}
@@ -343,4 +348,12 @@ void ChatHandler::processWhisperResponse(Net::MessageIn &msg)
processWhisperResponseContinue(type);
}
+void ChatHandler::processChatIgnoreList(Net::MessageIn &msg)
+{
+ // +++ need put it in some object or window
+ const int count = (msg.readInt16("len") - 4) / 24;
+ for (int f = 0; f < count; f ++)
+ msg.readString(24, "nick");
+}
+
} // namespace EAthena
diff --git a/src/net/eathena/chathandler.h b/src/net/eathena/chathandler.h
index 6e2689087..29eca423b 100644
--- a/src/net/eathena/chathandler.h
+++ b/src/net/eathena/chathandler.h
@@ -78,6 +78,8 @@ class ChatHandler final : public MessageHandler, public Ea::ChatHandler
void processWhisperResponse(Net::MessageIn &msg);
void processGmChat2(Net::MessageIn &msg);
+
+ void processChatIgnoreList(Net::MessageIn &msg);
};
} // namespace EAthena
diff --git a/src/net/eathena/protocol.h b/src/net/eathena/protocol.h
index 7fc6ea834..73aa49443 100644
--- a/src/net/eathena/protocol.h
+++ b/src/net/eathena/protocol.h
@@ -204,6 +204,8 @@
#define SMSG_MONSTER_HP 0x0977
#define SMSG_PLAYER_HP 0x080e
+#define SMSG_CHAT_IGNORE_LIST 0x00d4
+
#define SMSG_MAIL_OPEN_WINDOW 0x0260
#define SMSG_PET_MESSAGE 0x01aa