diff --git a/zone/bot.cpp b/zone/bot.cpp index 4255c23b2..6ecb437c8 100644 --- a/zone/bot.cpp +++ b/zone/bot.cpp @@ -4612,17 +4612,17 @@ void Bot::PerformTradeWithClient(int16 begin_slot_id, int16 end_slot_id, Client* struct ClientTrade { ItemInstance* trade_item_instance; int16 from_client_slot; - int16 to_bot_slot; + int16 to_bot_slot = invslot::SLOT_INVALID; - ClientTrade(ItemInstance* item, int16 from) : trade_item_instance(item), from_client_slot(from), to_bot_slot(invslot::SLOT_INVALID) { } + ClientTrade(ItemInstance* item, int16 from) : trade_item_instance(item), from_client_slot(from) { } }; struct ClientReturn { - const ItemInstance* return_item_instance; + ItemInstance* return_item_instance; int16 from_bot_slot; - int16 to_client_slot; + int16 to_client_slot = invslot::SLOT_INVALID; - ClientReturn(const ItemInstance* item, int16 from) : return_item_instance(item), from_bot_slot(from), to_client_slot(invslot::SLOT_INVALID) { } + ClientReturn(ItemInstance* item, int16 from) : return_item_instance(item), from_bot_slot(from) { } }; static const int16 bot_equip_order[invslot::EQUIPMENT_COUNT] = { @@ -4902,7 +4902,7 @@ void Bot::PerformTradeWithClient(int16 begin_slot_id, int16 end_slot_id, Client* if (trade_instance->GetItem()->IsType2HWeapon()) { if (!melee_secondary) { melee_2h_weapon = true; - auto equipped_secondary_weapon = m_inv[invslot::slotSecondary]; + auto equipped_secondary_weapon = GetBotItem(invslot::slotSecondary); if (equipped_secondary_weapon) { client_return.push_back(ClientReturn(equipped_secondary_weapon, invslot::slotSecondary)); } @@ -4918,7 +4918,7 @@ void Bot::PerformTradeWithClient(int16 begin_slot_id, int16 end_slot_id, Client* !trade_instance->IsWeapon() ) { melee_secondary = true; - auto equipped_primary_weapon = m_inv[invslot::slotPrimary]; + auto equipped_primary_weapon = GetBotItem(invslot::slotPrimary); if (equipped_primary_weapon && equipped_primary_weapon->GetItem()->IsType2HWeapon()) { client_return.push_back(ClientReturn(equipped_primary_weapon, invslot::slotPrimary)); } @@ -4933,7 +4933,7 @@ void Bot::PerformTradeWithClient(int16 begin_slot_id, int16 end_slot_id, Client* trade_iterator.to_bot_slot = index; if (m_inv[index]) { - client_return.push_back(ClientReturn(m_inv[index], index)); + client_return.push_back(ClientReturn(GetBotItem(index), index)); } break; @@ -5067,9 +5067,8 @@ void Bot::PerformTradeWithClient(int16 begin_slot_id, int16 end_slot_id, Client* client->DeleteItemInInventory(return_iterator.from_bot_slot); } else { // successful trade returns auto return_instance = m_inv.PopItem(return_iterator.from_bot_slot); - //if (*return_instance != *return_iterator.return_item_instance) { + // // TODO: add logging - //} if (!database.botdb.DeleteItemBySlot(GetBotID(), return_iterator.from_bot_slot)) { OwnerMessage( diff --git a/zone/bot_command.cpp b/zone/bot_command.cpp index e6e2782b8..a125c3935 100644 --- a/zone/bot_command.cpp +++ b/zone/bot_command.cpp @@ -9320,7 +9320,7 @@ void bot_subcommand_inventory_remove(Client *c, const Seperator *sep) return; } - const auto* inst = my_bot->GetBotItem(slot_id); + auto* inst = my_bot->GetBotItem(slot_id); if (!inst) { std::string slot_message = "is"; switch (slot_id) {