本文整理汇总了C++中Item_spawn_data::create_single方法的典型用法代码示例。如果您正苦于以下问题:C++ Item_spawn_data::create_single方法的具体用法?C++ Item_spawn_data::create_single怎么用?C++ Item_spawn_data::create_single使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Item_spawn_data
的用法示例。
在下文中一共展示了Item_spawn_data::create_single方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: create_single
item Single_item_creator::create_single(int birthday, RecursionList &rec) const
{
item tmp;
if (type == S_ITEM) {
if (id == "corpse") {
tmp = item::make_corpse( NULL_ID, birthday );
} else {
tmp = item(id, birthday);
}
} else if (type == S_ITEM_GROUP) {
if (std::find(rec.begin(), rec.end(), id) != rec.end()) {
debugmsg("recursion in item spawn list %s", id.c_str());
return item(null_item_id, birthday);
}
rec.push_back(id);
Item_spawn_data *isd = item_controller->get_group(id);
if (isd == NULL) {
debugmsg("unknown item spawn list %s", id.c_str());
return item(null_item_id, birthday);
}
tmp = isd->create_single(birthday, rec);
rec.erase( rec.end() - 1 );
} else if (type == S_NONE) {
return item(null_item_id, birthday);
}
if( one_in( 3 ) && tmp.has_flag( "VARSIZE" ) ) {
tmp.item_tags.insert( "FIT" );
}
if (modifier.get() != NULL) {
modifier->modify(tmp);
}
// TODO: change the spawn lists to contain proper references to containers
tmp = tmp.in_its_container();
return tmp;
}