diff options
Diffstat (limited to 'src/net')
-rw-r--r-- | src/net/eathena/inventoryrecv.cpp | 43 | ||||
-rw-r--r-- | src/net/tmwa/inventoryrecv.cpp | 43 |
2 files changed, 64 insertions, 22 deletions
diff --git a/src/net/eathena/inventoryrecv.cpp b/src/net/eathena/inventoryrecv.cpp index dea3a411f..4ca2f042e 100644 --- a/src/net/eathena/inventoryrecv.cpp +++ b/src/net/eathena/inventoryrecv.cpp @@ -243,7 +243,6 @@ void InventoryRecv::processPlayerInventoryAdd(Net::MessageIn &msg) } const ItemColor color = ItemColorManager::getColorFromCards(&cards[0]); - const ItemInfo &itemInfo = ItemDB::get(itemId); BeingId floorId; if (Ea::InventoryRecv::mSentPickups.empty()) { @@ -285,22 +284,44 @@ void InventoryRecv::processPlayerInventoryAdd(Net::MessageIn &msg) } if (localPlayer) { - localPlayer->pickedUp(itemInfo, - 0, - color, - floorId, - pickup); + if (itemId == 0) + { + localPlayer->pickedUp(ItemDB::getEmpty(), + 0, + color, + floorId, + pickup); + } + else + { + localPlayer->pickedUp(ItemDB::get(itemId), + 0, + color, + floorId, + pickup); + } } } else { if (localPlayer) { - localPlayer->pickedUp(itemInfo, - amount, - color, - floorId, - Pickup::OKAY); + if (itemId == 0) + { + localPlayer->pickedUp(ItemDB::getEmpty(), + amount, + color, + floorId, + Pickup::OKAY); + } + else + { + localPlayer->pickedUp(ItemDB::get(itemId), + amount, + color, + floorId, + Pickup::OKAY); + } } if (inventory) diff --git a/src/net/tmwa/inventoryrecv.cpp b/src/net/tmwa/inventoryrecv.cpp index 878a03538..9d753efe2 100644 --- a/src/net/tmwa/inventoryrecv.cpp +++ b/src/net/tmwa/inventoryrecv.cpp @@ -159,7 +159,6 @@ void InventoryRecv::processPlayerInventoryAdd(Net::MessageIn &msg) cards[f] = msg.readUInt16("card"); const int equipType = msg.readInt16("equip type"); const ItemTypeT type = static_cast<ItemTypeT>(msg.readUInt8("item type")); - const ItemInfo &itemInfo = ItemDB::get(itemId); const unsigned char err = msg.readUInt8("status"); BeingId floorId; if (Ea::InventoryRecv::mSentPickups.empty()) @@ -202,22 +201,44 @@ void InventoryRecv::processPlayerInventoryAdd(Net::MessageIn &msg) } if (localPlayer) { - localPlayer->pickedUp(itemInfo, - 0, - ItemColor_one, - floorId, - pickup); + if (itemId == 0) + { + localPlayer->pickedUp(ItemDB::getEmpty(), + 0, + ItemColor_one, + floorId, + pickup); + } + else + { + localPlayer->pickedUp(ItemDB::get(itemId), + 0, + ItemColor_one, + floorId, + pickup); + } } } else { if (localPlayer) { - localPlayer->pickedUp(itemInfo, - amount, - ItemColor_one, - floorId, - Pickup::OKAY); + if (itemId == 0) + { + localPlayer->pickedUp(ItemDB::getEmpty(), + amount, + ItemColor_one, + floorId, + Pickup::OKAY); + } + else + { + localPlayer->pickedUp(ItemDB::get(itemId), + amount, + ItemColor_one, + floorId, + Pickup::OKAY); + } } if (inventory) |