bool ItemInst::IsAugmented() { for(int i = 0; i < MAX_AUGMENT_SLOTS; ++i) if (GetAugmentItemID(i)) return true; return false; }
void Corpse::MoveItemToCorpse(Client *client, ItemInst *inst, int16 equipSlot, std::list<uint32> &removedList) { AddItem( inst->GetItem()->ID, inst->GetCharges(), equipSlot, inst->GetAugmentItemID(0), inst->GetAugmentItemID(1), inst->GetAugmentItemID(2), inst->GetAugmentItemID(3), inst->GetAugmentItemID(4), inst->GetAugmentItemID(5), inst->IsAttuned() ); removedList.push_back(equipSlot); while (true) { if (!inst->IsType(ItemClassContainer)) { break; } if (equipSlot < EmuConstants::GENERAL_BEGIN || equipSlot > MainCursor) { break; } for (auto sub_index = SUB_BEGIN; sub_index < EmuConstants::ITEM_CONTAINER_SIZE; ++sub_index) { int16 real_bag_slot = Inventory::CalcSlotId(equipSlot, sub_index); auto bag_inst = client->GetInv().GetItem(real_bag_slot); if (bag_inst == nullptr) { continue; } AddItem( bag_inst->GetItem()->ID, bag_inst->GetCharges(), real_bag_slot, bag_inst->GetAugmentItemID(0), bag_inst->GetAugmentItemID(1), bag_inst->GetAugmentItemID(2), bag_inst->GetAugmentItemID(3), bag_inst->GetAugmentItemID(4), bag_inst->GetAugmentItemID(5), bag_inst->IsAttuned() ); removedList.push_back(real_bag_slot); client->DeleteItemInInventory(real_bag_slot, 0, true, false); } break; } client->DeleteItemInInventory(equipSlot, 0, true, false); }
void Corpse::MoveItemToCorpse(Client *client, EQEmu::ItemInstance *inst, int16 equipSlot, std::list<uint32> &removedList) { AddItem( inst->GetItem()->ID, inst->GetCharges(), equipSlot, inst->GetAugmentItemID(0), inst->GetAugmentItemID(1), inst->GetAugmentItemID(2), inst->GetAugmentItemID(3), inst->GetAugmentItemID(4), inst->GetAugmentItemID(5), inst->IsAttuned() ); removedList.push_back(equipSlot); while (true) { if (!inst->IsClassBag()) { break; } if (equipSlot < EQEmu::legacy::GENERAL_BEGIN || equipSlot > EQEmu::inventory::slotCursor) { break; } for (int16 sub_index = EQEmu::inventory::containerBegin; sub_index < EQEmu::inventory::ContainerCount; ++sub_index) { int16 real_bag_slot = EQEmu::InventoryProfile::CalcSlotId(equipSlot, sub_index); auto bag_inst = client->GetInv().GetItem(real_bag_slot); if (bag_inst == nullptr) { continue; } AddItem( bag_inst->GetItem()->ID, bag_inst->GetCharges(), real_bag_slot, bag_inst->GetAugmentItemID(0), bag_inst->GetAugmentItemID(1), bag_inst->GetAugmentItemID(2), bag_inst->GetAugmentItemID(3), bag_inst->GetAugmentItemID(4), bag_inst->GetAugmentItemID(5), bag_inst->IsAttuned() ); removedList.push_back(real_bag_slot); client->DeleteItemInInventory(real_bag_slot, 0, true, false); } break; } client->DeleteItemInInventory(equipSlot, 0, true, false); }
bool EQEmu::ItemInstance::IsAugmented() { if (!m_item || !m_item->IsClassCommon()) return false; for (int index = inventory::socketBegin; index < inventory::SocketCount; ++index) { if (GetAugmentItemID(index)) return true; } return false; }