diff --git a/src/PlayerInventory.hh b/src/PlayerInventory.hh index 06372670..e75032d6 100644 --- a/src/PlayerInventory.hh +++ b/src/PlayerInventory.hh @@ -179,11 +179,11 @@ struct PlayerInventoryT { } } - void equip_item_id(uint32_t item_id, EquipSlot slot, bool allow_overwrite) { - this->equip_item_index(this->find_item(item_id), slot, allow_overwrite); + void equip_item_id(uint32_t item_id, EquipSlot slot) { + this->equip_item_index(this->find_item(item_id), slot); } - void equip_item_index(size_t index, EquipSlot slot, bool allow_overwrite) { + void equip_item_index(size_t index, EquipSlot slot) { auto& item = this->items[index]; if ((slot == EquipSlot::UNKNOWN) || !item.data.can_be_equipped_in_slot(slot)) { @@ -191,11 +191,7 @@ struct PlayerInventoryT { } if (this->has_equipped_item(slot)) { - if (allow_overwrite) { - this->unequip_item_slot(slot); - } else { - throw std::runtime_error("equip slot is already in use"); - } + this->unequip_item_slot(slot); } item.flags |= 0x00000008; diff --git a/src/ReceiveSubcommands.cc b/src/ReceiveSubcommands.cc index e0495f07..bcf0f430 100644 --- a/src/ReceiveSubcommands.cc +++ b/src/ReceiveSubcommands.cc @@ -2340,7 +2340,7 @@ static asio::awaitable on_equip_item(shared_ptr c, SubcommandMessa auto l = c->require_lobby(); EquipSlot slot = static_cast(cmd.equip_slot.load()); auto p = c->character_file(); - p->inventory.equip_item_id(cmd.item_id, slot, is_pre_v1(c->version())); + p->inventory.equip_item_id(cmd.item_id, slot); c->log.info_f("Equipped item {:08X}", cmd.item_id); forward_subcommand(c, msg);