summaryrefslogtreecommitdiff
path: root/src/net/tradehandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/tradehandler.cpp')
-rw-r--r--src/net/tradehandler.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/net/tradehandler.cpp b/src/net/tradehandler.cpp
index 6ed3bab2..5675fab8 100644
--- a/src/net/tradehandler.cpp
+++ b/src/net/tradehandler.cpp
@@ -30,11 +30,22 @@
#include "../localplayer.h"
#include "../gui/chat.h"
-#include "../gui/requesttrade.h"
+#include "../gui/confirm_dialog.h"
#include "../gui/trade.h"
std::string tradePartnerName;
+/**
+ * Listener for request trade dialogs
+ */
+struct RequestTradeListener : public gcn::ActionListener
+{
+ void action(const std::string& eventId)
+ {
+ player_node->tradeReply(eventId == "yes");
+ };
+} requestTradeListener;
+
TradeHandler::TradeHandler()
{
static const Uint16 _messages[] = {
@@ -69,7 +80,10 @@ void TradeHandler::handleMessage(MessageIn *msg)
player_node->setTrading(true);
tradePartnerName = msg->readString(24);
- new RequestTradeDialog(tradePartnerName);
+ ConfirmDialog *dlg = new ConfirmDialog("Request for trade",
+ tradePartnerName +
+ " wants to trade with you, do you accept?");
+ dlg->addActionListener(&requestTradeListener);
break;
case SMSG_TRADE_RESPONSE: