diff options
Diffstat (limited to 'src/net/tmwa/buysellhandler.cpp')
-rw-r--r-- | src/net/tmwa/buysellhandler.cpp | 54 |
1 files changed, 9 insertions, 45 deletions
diff --git a/src/net/tmwa/buysellhandler.cpp b/src/net/tmwa/buysellhandler.cpp index e41b1580e..1d15f4ad7 100644 --- a/src/net/tmwa/buysellhandler.cpp +++ b/src/net/tmwa/buysellhandler.cpp @@ -37,6 +37,9 @@ #include "net/chathandler.h" +#include "net/ea/buysellrecv.h" + +#include "net/tmwa/buysellrecv.h" #include "net/tmwa/protocol.h" #include "utils/timer.h" @@ -63,7 +66,7 @@ BuySellHandler::BuySellHandler() : }; handledMessages = _messages; buySellHandler = this; - mBuyDialog = nullptr; + Ea::BuySellRecv::mBuyDialog = nullptr; } void BuySellHandler::handleMessage(Net::MessageIn &msg) @@ -72,23 +75,23 @@ void BuySellHandler::handleMessage(Net::MessageIn &msg) switch (msg.getId()) { case SMSG_NPC_BUY_SELL_CHOICE: - processNpcBuySellChoice(msg); + Ea::BuySellRecv::processNpcBuySellChoice(msg); break; case SMSG_NPC_BUY: - processNpcBuy(msg); + BuySellRecv::processNpcBuy(msg); break; case SMSG_NPC_SELL: - processNpcSell(msg); + Ea::BuySellRecv::processNpcSell(msg); break; case SMSG_NPC_BUY_RESPONSE: - processNpcBuyResponse(msg); + Ea::BuySellRecv::processNpcBuyResponse(msg); break; case SMSG_NPC_SELL_RESPONSE: - processNpcSellResponse(msg); + BuySellRecv::processNpcSellResponse(msg); break; default: @@ -97,45 +100,6 @@ void BuySellHandler::handleMessage(Net::MessageIn &msg) BLOCK_END("BuySellHandler::handleMessage") } -void BuySellHandler::processNpcBuy(Net::MessageIn &msg) -{ - msg.readInt16("len"); - const unsigned int n_items = (msg.getLength() - 4U) / 11; - CREATEWIDGETV(mBuyDialog, BuyDialog, mNpcId); - mBuyDialog->setMoney(PlayerInfo::getAttribute(Attributes::MONEY)); - - for (unsigned int k = 0; k < n_items; k++) - { - const int value = msg.readInt32("price"); - msg.readInt32("dc value?"); - const int type = msg.readUInt8("type"); - const int itemId = msg.readInt16("item id"); - const ItemColor color = ItemColor_one; - mBuyDialog->addItem(itemId, type, color, 0, value); - } - mBuyDialog->sort(); -} - -void BuySellHandler::processNpcSellResponse(Net::MessageIn &msg) -{ - switch (msg.readUInt8("result")) - { - case 0: - NotifyManager::notify(NotifyTypes::SOLD); - break; - case 1: - default: - NotifyManager::notify(NotifyTypes::SELL_FAILED); - break; - case 2: - NotifyManager::notify(NotifyTypes::SELL_TRADE_FAILED); - break; - case 3: - NotifyManager::notify(NotifyTypes::SELL_UNSELLABLE_FAILED); - break; - } -} - void BuySellHandler::requestSellList(const std::string &nick) const { if (nick.empty() != 0 || !shopWindow) |