From 041a5a85ba09650a85f3ac7a3e88e183c6b88c28 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Mon, 13 Oct 2014 19:46:57 +0300 Subject: eathena: show error for non existing channel in channel tab. --- src/net/ea/chathandler.cpp | 17 ++++++++++++++++- src/net/ea/chathandler.h | 4 ++++ 2 files changed, 20 insertions(+), 1 deletion(-) (limited to 'src/net/ea') diff --git a/src/net/ea/chathandler.cpp b/src/net/ea/chathandler.cpp index 0f5ae0f36..4e5d2300b 100644 --- a/src/net/ea/chathandler.cpp +++ b/src/net/ea/chathandler.cpp @@ -82,7 +82,7 @@ void ChatHandler::talkPet(const std::string &restrict text, talk(action, channel); } -void ChatHandler::processWhisperResponseContinue(const uint8_t type) +std::string ChatHandler::getPopLastWhisperNick() { std::string nick; if (mSentWhispers.empty()) @@ -94,7 +94,22 @@ void ChatHandler::processWhisperResponseContinue(const uint8_t type) nick = mSentWhispers.front(); mSentWhispers.pop(); } + return nick; +} + +std::string ChatHandler::getLastWhisperNick() +{ + std::string nick; + if (mSentWhispers.empty()) + nick = "user"; + else + nick = mSentWhispers.front(); + return nick; +} +void ChatHandler::processWhisperResponseContinue(const uint8_t type) +{ + const std::string nick = getPopLastWhisperNick(); switch (type) { case 0x00: diff --git a/src/net/ea/chathandler.h b/src/net/ea/chathandler.h index 810ca7efa..80cf6afbb 100644 --- a/src/net/ea/chathandler.h +++ b/src/net/ea/chathandler.h @@ -62,6 +62,10 @@ class ChatHandler notfinal : public Net::ChatHandler void processWhisperResponseContinue(const uint8_t type); protected: + std::string getPopLastWhisperNick(); + + std::string getLastWhisperNick(); + typedef std::queue WhisperQueue; WhisperQueue mSentWhispers; int mMotdTime; -- cgit v1.2.3-70-g09d2