From cb953c324d886f480dacb41f632e4dc977945021 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Mon, 13 Oct 2014 18:46:33 +0300 Subject: eathena: fix owner for channel messages. --- src/gui/windows/chatwindow.cpp | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'src/gui/windows/chatwindow.cpp') diff --git a/src/gui/windows/chatwindow.cpp b/src/gui/windows/chatwindow.cpp index 77f57a9ea..73ab5a0cf 100644 --- a/src/gui/windows/chatwindow.cpp +++ b/src/gui/windows/chatwindow.cpp @@ -1460,13 +1460,29 @@ std::string ChatWindow::autoCompleteHistory(const std::string &partName) const return autoComplete(nameList, partName); } -bool ChatWindow::resortChatLog(std::string line, ChatMsgType::Type own, +bool ChatWindow::resortChatLog(std::string line, + ChatMsgType::Type own, const std::string &channel, const bool ignoreRecord, const bool tryRemoveColors) { if (own == ChatMsgType::BY_UNKNOWN) - own = ChatMsgType::BY_SERVER; + { + const size_t pos = line.find(" : "); + if (pos != std::string::npos) + { + if (line.length() <= pos + 3) + own = ChatMsgType::BY_SERVER; + else if (line.substr(0, pos) == localPlayer->getName()) + own = ChatMsgType::BY_PLAYER; + else + own = ChatMsgType::BY_OTHER; + } + else + { + own = ChatMsgType::BY_SERVER; + } + } std::string prefix; if (!channel.empty()) -- cgit v1.2.3-60-g2f50