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