void Inventory::setItem(int index, int id, int quantity, int refine, unsigned char color, bool equipment) { if (index < 0 || index >= static_cast<int>(mSize)) { logger->log("Warning: invalid inventory index: %d", index); return; } if (!mItems[index] && id > 0) { Item *item = new Item(id, quantity, refine, color, equipment); item->setInvIndex(index); mItems[index] = item; mUsed++; distributeSlotsChangedEvent(); } else if (id > 0 && mItems[index]) { mItems[index]->setId(id, color); mItems[index]->setQuantity(quantity); mItems[index]->setRefine(refine); mItems[index]->setEquipment(equipment); } else if (mItems[index]) { removeItemAt(index); } }
void Inventory::setItem(int index, int id, int quantity) { if (index < 0 || index >= mSize) { logger->log("Warning: invalid inventory index: %d", index); return; } if (!mItems[index] && id > 0) { Item *item = new Item(id, quantity); item->setInvIndex(index); mItems[index] = item; mUsed++; distributeSlotsChangedEvent(); } else if (id > 0) { mItems[index]->setId(id); mItems[index]->setQuantity(quantity); } else if (mItems[index]) { removeItemAt(index); } }
void Inventory::removeItemAt(int index) { delete mItems[index]; mItems[index] = 0; if (mUsed > 0) { mUsed--; distributeSlotsChangedEvent(); } }
void Inventory::removeItemAt(const int index) { delete2(mItems[index]); mUsed--; if (mUsed < 0) // Already at 0, no need to distribute event mUsed = 0; else distributeSlotsChangedEvent(); }
void ComplexInventory::setItem(const int index, const int id, const ItemTypeT type, const int quantity, const uint8_t refine, const ItemColor color, const Identified identified, const Damaged damaged, const Favorite favorite, const Equipm equipment, const Equipped equipped) { if (index < 0 || index >= CAST_S32(mSize)) { logger->log("Warning: invalid inventory index: %d", index); return; } const Item *const item1 = mItems[index]; if ((item1 == nullptr) && id > 0) { ComplexItem *const item = new ComplexItem(id, type, quantity, refine, color, identified, damaged, favorite, equipment, equipped); item->setInvIndex(index); Item *const item2 = new Item(id, type, quantity, refine, color, identified, damaged, favorite, equipment, equipped); item2->setInvIndex(index); item->addChild(item2, quantity); delete item2; mItems[index] = item; mUsed ++; distributeSlotsChangedEvent(); } }
void Inventory::setItem(const int index, const int id, const ItemTypeT type, const int quantity, const uint8_t refine, const ItemColor color, const Identified identified, const Damaged damaged, const Favorite favorite, const Equipm equipment, const Equipped equipped) { if (index < 0 || index >= CAST_S32(mSize)) { reportAlways("Warning: invalid inventory index: %d", index); return; } Item *const item1 = mItems[index]; if ((item1 == nullptr) && id > 0) { Item *const item = new Item(id, type, quantity, refine, color, identified, damaged, favorite, equipment, equipped); item->setInvIndex(index); mItems[index] = item; mUsed++; distributeSlotsChangedEvent(); } else if (id > 0 && (item1 != nullptr)) { item1->setId(id, color); item1->setQuantity(quantity); item1->setRefine(refine); item1->setEquipment(equipment); item1->setIdentified(identified); item1->setDamaged(damaged); item1->setFavorite(favorite); } else if (item1 != nullptr) { removeItemAt(index); } }
void Inventory::setItem(const int index, const int id, const int type, const int quantity, const uint8_t refine, const ItemColor color, const Identified identified, const Damaged damaged, const Favorite favorite, const Equipm equipment, const Equipped equipped) { if (index < 0 || index >= static_cast<int>(mSize)) { logger->log("Warning: invalid inventory index: %d", index); return; } Item *const item1 = mItems[index]; if (!item1 && id > 0) { Item *const item = new Item(id, type, quantity, refine, color, identified, damaged, favorite, equipment, equipped); item->setInvIndex(index); mItems[index] = item; mUsed++; distributeSlotsChangedEvent(); } else if (id > 0 && item1) { item1->setId(id, color); item1->setQuantity(quantity); item1->setRefine(refine); item1->setEquipment(equipment); item1->setIdentified(identified); item1->setDamaged(damaged); item1->setFavorite(favorite); } else if (item1) { removeItemAt(index); } }
void Inventory::moveItem(const int index1, const int index2) { if (index1 < 0 || index1 >= CAST_S32(mSize) || index2 < 0 || index2 >= CAST_S32(mSize)) { return; } Item *const item1 = mItems[index1]; Item *const item2 = mItems[index2]; if (item1 != nullptr) item1->setInvIndex(index2); if (item2 != nullptr) item2->setInvIndex(index1); mItems[index1] = item2; mItems[index2] = item1; distributeSlotsChangedEvent(); }