本文整理汇总了C++中ItemPtr::isStackable方法的典型用法代码示例。如果您正苦于以下问题:C++ ItemPtr::isStackable方法的具体用法?C++ ItemPtr::isStackable怎么用?C++ ItemPtr::isStackable使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ItemPtr
的用法示例。
在下文中一共展示了ItemPtr::isStackable方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: container_insertion_error
/*
* Passing a reference (not by value), because otherwise if insert fail, the item could be lost.
*/
void Item::Container::insert(ItemPtr &item, int amount)
{
if ( !item->isStackable() ) amount = 1;
Weight items_weight = amount * item->weight();
if ( _weight_cap.cur + items_weight > _weight_cap.max )
{
qDebug() << "Cur cap [" << _weight_cap.cur << "] + items_weight [" << items_weight << "] < max_cap [" << _weight_cap.max << "]";
throw error::container_insertion_error("Zbyt duży ciężar, aby pomieścić go w pojemniku.");
}
else
{
if (item->isStackable() && _items.find(item->ref()) != _items.end() )
{
AmountedItem& aitem = _items[item->ref()];
aitem.amount += amount;
}
else
{
_items.insert(std::make_pair<dbRef, AmountedItem >(item->ref(), AmountedItem(item, amount)) );
}
set_modified();
}
}
示例2: internalGetItem
ItemPtr ProtocolGame::internalGetItem(InputMessage& msg, int id)
{
if(id == 0)
id = msg.getU16();
ItemPtr item = Item::create(id);
if(item->isStackable() || item->isFluidContainer() || item->isFluid())
item->setData(msg.getU8());
return item;
}