From 1b1cfaf22ab8281943abed6f909fc32f6da46e61 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Thu, 18 Sep 2014 23:40:58 +0300 Subject: Add chat object to owner being. --- src/net/eathena/chathandler.cpp | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) (limited to 'src/net/eathena/chathandler.cpp') diff --git a/src/net/eathena/chathandler.cpp b/src/net/eathena/chathandler.cpp index 632997081..8b5d8683d 100644 --- a/src/net/eathena/chathandler.cpp +++ b/src/net/eathena/chathandler.cpp @@ -22,6 +22,8 @@ #include "net/eathena/chathandler.h" +#include "actormanager.h" + #include "being/localplayer.h" #include "gui/chatconsts.h" @@ -33,6 +35,8 @@ #include "net/eathena/messageout.h" #include "net/eathena/protocol.h" +#include "resources/chatobject.h" + #include "utils/stringutils.h" #include @@ -452,12 +456,17 @@ void ChatHandler::processChatIgnoreList(Net::MessageIn &msg) void ChatHandler::processChatDisplay(Net::MessageIn &msg) { const int len = msg.readInt16("len") - 17; - msg.readInt32("owner account id"); - msg.readInt32("char id"); - msg.readInt16("max users"); - msg.readInt16("current users"); - msg.readUInt8("type"); - msg.readString(len, "title"); + ChatObject *const obj = new ChatObject; + obj->ownerId = msg.readInt32("owner account id"); + obj->charId = msg.readInt32("char id"); + obj->maxUsers = msg.readInt16("max users"); + obj->currentUsers = msg.readInt16("current users"); + obj->type = msg.readUInt8("type"); + obj->title = msg.readString(len, "title"); + + Being *const dstBeing = actorManager->findBeing(obj->ownerId); + if (dstBeing) + dstBeing->setChat(obj); } } // namespace EAthena -- cgit v1.2.3-60-g2f50