本文整理汇总了C++中BattleItem::getSlot方法的典型用法代码示例。如果您正苦于以下问题:C++ BattleItem::getSlot方法的具体用法?C++ BattleItem::getSlot怎么用?C++ BattleItem::getSlot使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BattleItem
的用法示例。
在下文中一共展示了BattleItem::getSlot方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: load
//.........这里部分代码省略.........
(*i)["position"][1] >> pos.y;
(*i)["position"][2] >> pos.z;
getTile(pos)->load((*i));
}
for (YAML::Iterator i = node["nodes"].begin(); i != node["nodes"].end(); ++i)
{
Node *n = new Node();
n->load(*i);
_nodes.push_back(n);
}
for (YAML::Iterator i = node["units"].begin(); i != node["units"].end(); ++i)
{
UnitFaction faction;
(*i)["faction"] >> a;
faction = (UnitFaction)a;
(*i)["soldierId"] >> a;
Unit *unit;
if (a != -1) // Unit is linked to a geoscape soldier
{
// look up the matching soldier
unit = savedGame->getSoldier(a);
}
else
{
// create a new Unit.
unit = new GenUnit(rule->getGenUnit("SECTOID_SOLDIER"), rule->getArmor("SECTOID_ARMOR0"));
}
BattleUnit *b = new BattleUnit(unit, faction);
b->load(*i);
_units.push_back(b);
if (faction == FACTION_PLAYER)
{
if (b->getId() == selectedUnit)
_selectedUnit = b;
}
else
{
std::string state;
BattleAIState *aiState;
(*i)["AI"]["state"] >> state;
if (state == "PATROL")
{
aiState = new PatrolBAIState(this, b, 0);
}
else if (state == "AGGRO")
{
aiState = new AggroBAIState(this, b);
}
else
{
continue;
}
aiState->load((*i)["AI"]);
b->setAIState(aiState);
}
}
// matches up tiles and units
resetUnitTiles();
for (YAML::Iterator i = node["items"].begin(); i != node["items"].end(); ++i)
{
std::string type;
(*i)["type"] >> type;
if (type != "0")
{
BattleItem *item = new BattleItem(rule->getItem(type), &_itemId);
item->load(*i);
(*i)["inventoryslot"] >> type;
if (type != "NULL")
item->setSlot(rule->getInventory(type));
(*i)["owner"] >> a;
// match up items and units
for (std::vector<BattleUnit*>::iterator bu = _units.begin(); bu != _units.end(); ++bu)
{
if ((*bu)->getId() == a)
{
item->moveToOwner(*bu);
break;
}
}
// match up items and tiles
if (item->getSlot() && item->getSlot()->getType() == INV_GROUND)
{
Position pos;
(*i)["position"][0] >> pos.x;
(*i)["position"][1] >> pos.y;
(*i)["position"][2] >> pos.z;
if (pos.x != -1)
getTile(pos)->addItem(item);
}
_items.push_back(item);
}