本文整理汇总了C++中Weapon::retain方法的典型用法代码示例。如果您正苦于以下问题:C++ Weapon::retain方法的具体用法?C++ Weapon::retain怎么用?C++ Weapon::retain使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Weapon
的用法示例。
在下文中一共展示了Weapon::retain方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: initiate_shipbase
void ShipBase::initiate_shipbase(pugi::xml_node node) {
this->total_hp = this->current_hp = node.attribute("hp").as_int();
this->speed_buff = this->attack_buff = 1;
int i = 0;
this->weapons.resize(this->data.weapon_slotnumber, nullptr);
for (pugi::xml_node weapon_node = node.child("Weapons").first_child(); weapon_node && i < this->data.weapon_slotnumber; weapon_node = weapon_node.next_sibling(), ++i) {
Weapon* weapon = Weapon::createWithXmlNode(weapon_node);
/* NOTE!!! : in the xml file, weapon slot id should start from 1, for 0 is the mark for nonexistence */
weapon->slot_id = weapon_node.attribute("id").as_int();
if (!weapon->slot_id) weapon->slot_id = i;
else --weapon->slot_id;
if (weapons[weapon->slot_id] != nullptr) continue;
weapon->retain();
weapon->set_self(this, weapon->slot_id);
weapons[weapon->slot_id] = weapon;
}
}