diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-08-21 16:39:23 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-08-21 16:39:23 +0300 |
commit | 3652f41912042501d55e7663315608e0cb8b3bf8 (patch) | |
tree | bf6bf57ac70f107e64a0b0bc029c6ab5c7150ca7 /src/net | |
parent | 2ff57a846a44a84729c5f0a737bb53b8b6926a8e (diff) | |
download | manaplus-3652f41912042501d55e7663315608e0cb8b3bf8.tar.gz manaplus-3652f41912042501d55e7663315608e0cb8b3bf8.tar.bz2 manaplus-3652f41912042501d55e7663315608e0cb8b3bf8.tar.xz manaplus-3652f41912042501d55e7663315608e0cb8b3bf8.zip |
Impliment packet SMSG_PLAYER_REFINE.
Diffstat (limited to 'src/net')
-rw-r--r-- | src/net/eathena/inventoryhandler.cpp | 42 |
1 files changed, 37 insertions, 5 deletions
diff --git a/src/net/eathena/inventoryhandler.cpp b/src/net/eathena/inventoryhandler.cpp index d8a5a2a65..423679711 100644 --- a/src/net/eathena/inventoryhandler.cpp +++ b/src/net/eathena/inventoryhandler.cpp @@ -909,6 +909,7 @@ void InventoryHandler::processPlayerItemRentalTime(Net::MessageIn &msg) const ItemInfo &info = ItemDB::get(id); const std::string timeStr = timeDiffToString(seconds); NotifyManager::notify(NotifyTypes::RENTAL_TIME_LEFT, + // TRANSLATORS: notification message strprintf(_("Left %s rental time for item %s."), timeStr.c_str(), info.getName().c_str())); } @@ -1155,11 +1156,42 @@ void InventoryHandler::processPlayerIdentified(Net::MessageIn &msg) void InventoryHandler::processPlayerRefine(Net::MessageIn &msg) { - UNIMPLIMENTEDPACKET; - - msg.readInt16("flag"); - msg.readInt16("inv index"); - msg.readInt16("val"); + const int flag = msg.readInt16("flag"); + const int index = msg.readInt16("inv index") - INVENTORY_OFFSET; + msg.readInt16("refine"); + const Inventory *const inv = PlayerInfo::getInventory(); + const Item *item = nullptr; + int notifyType; + std::string message; + std::string itemName; + if (inv) + item = inv->getItem(index); + if (item) + { + itemName = item->getName(); + } + else + { + // TRANSLATORS: unknown item + itemName = _("Unknown item"); + } + switch (flag) + { + case 0: + notifyType = NotifyTypes::REFINE_SUCCESS; + break; + case 1: + notifyType = NotifyTypes::REFINE_FAILURE; + break; + case 2: + notifyType = NotifyTypes::REFINE_DOWNGRADE; + break; + default: + UNIMPLIMENTEDPACKET; + notifyType = NotifyTypes::REFINE_UNKNOWN; + break; + } + NotifyManager::notify(notifyType, itemName); } void InventoryHandler::processPlayerRepairList(Net::MessageIn &msg) |