当前位置: 首页>>代码示例>>C++>>正文


C++ ItemPtr::isStackable方法代码示例

本文整理汇总了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();
  }
}
开发者ID:lonski,项目名称:amarlon_textgame,代码行数:28,代码来源:item_container.cpp

示例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;
}
开发者ID:AndreFaramir,项目名称:otclient,代码行数:11,代码来源:protocolgameparse.cpp


注:本文中的ItemPtr::isStackable方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。