From 5a8b8f4ad56914e1c75acd29807897ba1433c96f Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Wed, 20 Mar 2013 13:41:18 +0300 Subject: add netcode support for channels (for now evol only). for now any channel ignored and used as general tab. also change netcode version to 8. --- src/net/ea/chathandler.cpp | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) (limited to 'src/net/ea/chathandler.cpp') diff --git a/src/net/ea/chathandler.cpp b/src/net/ea/chathandler.cpp index 7be94ca3e..3a2c6ec2e 100644 --- a/src/net/ea/chathandler.cpp +++ b/src/net/ea/chathandler.cpp @@ -258,15 +258,25 @@ void ChatHandler::processWhisper(Net::MessageIn &msg) } } -void ChatHandler::processBeingChat(Net::MessageIn &msg) +void ChatHandler::processBeingChat(Net::MessageIn &msg, const bool channels) { if (!actorSpriteManager) return; - const int chatMsgLength = msg.readInt16() - 8; + int chatMsgLength = msg.readInt16() - 8; Being *const being = actorSpriteManager->findBeing(msg.readInt32()); + if (!being) + return; + + if (channels) + { + chatMsgLength -= 3; + msg.readInt8(); // channel + msg.readInt8(); // channel + msg.readInt8(); // channel + } - if (!being || chatMsgLength <= 0) + if (chatMsgLength <= 0) return; std::string chatMsg = msg.readRawString(chatMsgLength); @@ -307,10 +317,17 @@ void ChatHandler::processBeingChat(Net::MessageIn &msg) } } -void ChatHandler::processChat(Net::MessageIn &msg, bool normalChat) +void ChatHandler::processChat(Net::MessageIn &msg, bool normalChat, + bool channels) { - const int chatMsgLength = msg.readInt16() - 4; - + int chatMsgLength = msg.readInt16() - 4; + if (channels) + { + chatMsgLength -= 3; + msg.readInt8(); // channel + msg.readInt8(); // channel + msg.readInt8(); // channel + } if (chatMsgLength <= 0) return; -- cgit v1.2.3-70-g09d2