bool ActorInventory::equip(int id, int count) { DASSERT(isValidId(id) && count > 0); Item item = m_entries[id].item; ItemType::Type type = item.type(); if((type != ItemType::weapon && type != ItemType::armour && type != ItemType::ammo) || !count) return false; if(type == ItemType::ammo && m_weapon.proto().ammo_class_id != Ammo(item).classId()) return false; Entry old_ammo = m_ammo; unequip(type); if(type == ItemType::ammo) { if(old_ammo.item == item) count += old_ammo.count; count = min(count, m_weapon.maxAmmo()); } else count = min(count, 1); count = min(count, m_entries[id].count); remove(id, count); if(type == ItemType::weapon) m_weapon = item; else if(type == ItemType::armour) m_armour = item; else if(type == ItemType::ammo) { m_ammo.item = item; m_ammo.count = count; } return true; }
bool DataMapper<Subclass, T, I>::save(T * model) { if (!model) { return false; } Identity id = idOf(model); QVariantMap record; buildRecordFrom(model, record); QList<QString> variables = record.keys(); if (isValidId(id)) { record[identityFieldName()] = id; QSqlQuery query = getDatabase().build(UPDATE(table()).SET(variables).WHERE(identityFieldName() + " = :" + identityFieldName()), record); query.exec(); } else { QSqlQuery query = getDatabase().build(INSERT().INTO(table()).SET(variables, true), record); if (query.exec()) { Identity id = query.lastInsertId().value<Identity>(); if (isValidId(id)) { m_identities.registerModel(id, model); } } } saveRelationsOf(model); return true; }
void ModelNode::setId(const QString& id) { Internal::WriteLocker locker(m_model.data()); if (!isValid()) { Q_ASSERT_X(isValid(), Q_FUNC_INFO, "model node is invalid"); throw InvalidModelNodeException(__LINE__, __FUNCTION__, __FILE__); } if (!isValidId(id)) throw InvalidIdException(__LINE__, __FUNCTION__, __FILE__, id, InvalidIdException::InvalidCharacters); if (id == ModelNode::id()) return; if (view()->hasId(id)) throw InvalidIdException(__LINE__, __FUNCTION__, __FILE__, id, InvalidIdException::DuplicateId); m_model.data()->d->changeNodeId(internalNode(), id); }
void Teacher::setEmployeeID(string employeeID) { if (isValidId(employeeID)) { m_employeeID = employeeID; } }