summaryrefslogtreecommitdiff
path: root/src/net/tmwa
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/tmwa')
-rw-r--r--src/net/tmwa/tradehandler.cpp18
-rw-r--r--src/net/tmwa/tradehandler.h2
2 files changed, 20 insertions, 0 deletions
diff --git a/src/net/tmwa/tradehandler.cpp b/src/net/tmwa/tradehandler.cpp
index 141f2d8ce..f85bdfc49 100644
--- a/src/net/tmwa/tradehandler.cpp
+++ b/src/net/tmwa/tradehandler.cpp
@@ -27,7 +27,9 @@
#include "notifymanager.h"
#include "being/playerinfo.h"
+#include "being/playerrelations.h"
+#include "gui/windows/confirmdialog.h"
#include "gui/windows/tradewindow.h"
#include "net/serverfeatures.h"
@@ -45,6 +47,9 @@
extern Net::TradeHandler *tradeHandler;
+extern std::string tradePartnerName;
+extern ConfirmDialog *confirmDlg;
+
namespace TmwAthena
{
@@ -252,4 +257,17 @@ void TradeHandler::processTradeItemAddResponse(Net::MessageIn &msg)
}
}
+void TradeHandler::processTradeResponse(Net::MessageIn &msg)
+{
+ if (confirmDlg || tradePartnerName.empty()
+ || !player_relations.hasPermission(tradePartnerName,
+ PlayerRelation::TRADE))
+ {
+ tradeHandler->respond(false);
+ return;
+ }
+ const uint8_t type = msg.readUInt8("type");
+ processTradeResponseContinue(type);
+}
+
} // namespace TmwAthena
diff --git a/src/net/tmwa/tradehandler.h b/src/net/tmwa/tradehandler.h
index 715c69838..5cfd3300c 100644
--- a/src/net/tmwa/tradehandler.h
+++ b/src/net/tmwa/tradehandler.h
@@ -60,6 +60,8 @@ class TradeHandler final : public MessageHandler, public Ea::TradeHandler
static void processTradeItemAdd(Net::MessageIn &msg);
static void processTradeItemAddResponse(Net::MessageIn &msg);
+
+ static void processTradeResponse(Net::MessageIn &msg);
};
} // namespace TmwAthena