summaryrefslogtreecommitdiff
path: root/src/net/ea
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2011-10-30 03:46:59 +0300
committerAndrei Karas <akaras@inbox.ru>2011-10-30 03:46:59 +0300
commitece00592ecd93f7a96db0ca82589d00846e2f938 (patch)
treec36bde1e1a46d11ee47438d0debaa8317cd0db6e /src/net/ea
parentd14bb7a27ee23cc83b3af1db2f1976eaaa55d78a (diff)
parent2c3c118c03ece5cad2b73affffbcbbc5a5746c7a (diff)
downloadplus-ece00592ecd93f7a96db0ca82589d00846e2f938.tar.gz
plus-ece00592ecd93f7a96db0ca82589d00846e2f938.tar.bz2
plus-ece00592ecd93f7a96db0ca82589d00846e2f938.tar.xz
plus-ece00592ecd93f7a96db0ca82589d00846e2f938.zip
Merge branch 'master' into strippedstripped1.1.10.30
Diffstat (limited to 'src/net/ea')
-rw-r--r--src/net/ea/chathandler.cpp45
-rw-r--r--src/net/ea/chathandler.h2
-rw-r--r--src/net/ea/tradehandler.cpp8
3 files changed, 55 insertions, 0 deletions
diff --git a/src/net/ea/chathandler.cpp b/src/net/ea/chathandler.cpp
index 60af645be..35e8597f0 100644
--- a/src/net/ea/chathandler.cpp
+++ b/src/net/ea/chathandler.cpp
@@ -353,4 +353,49 @@ void ChatHandler::processMVP(Net::MessageIn &msg)
}
}
+void ChatHandler::processIgnoreAllResponse(Net::MessageIn &msg)
+{
+ int action = msg.readInt8();
+ int fail = msg.readInt8();
+ if (!localChatTab)
+ return;
+
+ switch (action)
+ {
+ case 0:
+ {
+ switch (fail)
+ {
+ case 0:
+ localChatTab->chatLog(_("All whispers ignored."),
+ BY_SERVER);
+ break;
+ default:
+ localChatTab->chatLog(_("All whispers ignore failed."),
+ BY_SERVER);
+ break;
+ }
+ break;
+ }
+ case 1:
+ {
+ switch (fail)
+ {
+ case 0:
+ localChatTab->chatLog(_("All whispers unignored."),
+ BY_SERVER);
+ break;
+ default:
+ localChatTab->chatLog(_("All whispers unignore failed."),
+ BY_SERVER);
+ break;
+ }
+ break;
+ }
+ default:
+ // unknown result
+ break;
+ }
+}
+
} // namespace Ea
diff --git a/src/net/ea/chathandler.h b/src/net/ea/chathandler.h
index d000b673d..cff9bf589 100644
--- a/src/net/ea/chathandler.h
+++ b/src/net/ea/chathandler.h
@@ -84,6 +84,8 @@ class ChatHandler : public Net::ChatHandler
virtual void processMVP(Net::MessageIn &msg);
+ virtual void processIgnoreAllResponse(Net::MessageIn &msg);
+
protected:
typedef std::queue<std::string> WhisperQueue;
WhisperQueue mSentWhispers;
diff --git a/src/net/ea/tradehandler.cpp b/src/net/ea/tradehandler.cpp
index bdbba9715..19aa474e3 100644
--- a/src/net/ea/tradehandler.cpp
+++ b/src/net/ea/tradehandler.cpp
@@ -121,6 +121,14 @@ void TradeHandler::processTradeRequest(Net::MessageIn &msg)
void TradeHandler::processTradeResponse(Net::MessageIn &msg)
{
+ if (confirmDlg || tradePartnerName.empty()
+ || !player_relations.hasPermission(tradePartnerName,
+ PlayerRelation::TRADE))
+ {
+ Net::getTradeHandler()->respond(false);
+ return;
+ }
+
switch (msg.readInt8())
{
case 0: // Too far away