summaryrefslogtreecommitdiff
path: root/src/net/tmwa/buysellrecv.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/tmwa/buysellrecv.cpp')
-rw-r--r--src/net/tmwa/buysellrecv.cpp35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/net/tmwa/buysellrecv.cpp b/src/net/tmwa/buysellrecv.cpp
index 230327899..6a30f7bc6 100644
--- a/src/net/tmwa/buysellrecv.cpp
+++ b/src/net/tmwa/buysellrecv.cpp
@@ -82,4 +82,39 @@ void BuySellRecv::processNpcSellResponse(Net::MessageIn &msg)
}
}
+void BuySellRecv::processNpcBuyResponse(Net::MessageIn &msg)
+{
+ const uint8_t response = msg.readUInt8("response");
+ if (response == 0U)
+ {
+ NotifyManager::notify(NotifyTypes::BUY_DONE);
+ return;
+ }
+ // Reset player money since buy dialog already assumed purchase
+ // would go fine
+ if (Ea::BuySellRecv::mBuyDialog)
+ {
+ Ea::BuySellRecv::mBuyDialog->setMoney(
+ PlayerInfo::getAttribute(Attributes::MONEY));
+ }
+ switch (response)
+ {
+ case 1:
+ NotifyManager::notify(NotifyTypes::BUY_FAILED_NO_MONEY);
+ break;
+
+ case 2:
+ NotifyManager::notify(NotifyTypes::BUY_FAILED_OVERWEIGHT);
+ break;
+
+ case 3:
+ NotifyManager::notify(NotifyTypes::BUY_FAILED_TOO_MANY_ITEMS);
+ break;
+
+ default:
+ NotifyManager::notify(NotifyTypes::BUY_FAILED);
+ break;
+ };
+}
+
} // namespace TmwAthena