diff options
Diffstat (limited to 'src/net/tmwa')
-rw-r--r-- | src/net/tmwa/tradehandler.cpp | 18 | ||||
-rw-r--r-- | src/net/tmwa/tradehandler.h | 2 |
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 |