void Creature::equipItem(Common::UString tag, InventorySlot slot, CreatureInfo &invOwner, bool updateModel) { if (_info.isInventorySlotEquipped(slot)) { Common::UString equippedItem = _info.getEquippedItem(slot); _info.unequipInventorySlot(slot); invOwner.addInventoryItem(equippedItem); _equipment.erase(slot); } if (!tag.empty() && addItemToEquipment(tag, slot)) { invOwner.removeInventoryItem(tag); _info.equipItem(tag, slot); } if (!updateModel) return; switch (slot) { case kInventorySlotBody: loadEquippedModel(); break; case kInventorySlotLeftWeapon: case kInventorySlotRightWeapon: attachWeaponModel(slot); break; default: break; } }