本文整理汇总了C++中SavedBattleGame::getUnits方法的典型用法代码示例。如果您正苦于以下问题:C++ SavedBattleGame::getUnits方法的具体用法?C++ SavedBattleGame::getUnits怎么用?C++ SavedBattleGame::getUnits使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SavedBattleGame
的用法示例。
在下文中一共展示了SavedBattleGame::getUnits方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: prepareDebriefing
/**
* Prepares debriefing: gathers Aliens, Corpses, Artefacts, UFO Components.
* Adds the items to the craft.
* Also calculates the soldiers experience, and possible promotions.
* If aborted, only the things on the exit area are recovered.
*/
void DebriefingState::prepareDebriefing()
{
_stats.push_back(new DebriefingStat("STR_ALIENS_KILLED", false));
_stats.push_back(new DebriefingStat("STR_ALIEN_CORPSES_RECOVERED", false));
_stats.push_back(new DebriefingStat("STR_LIVE_ALIENS_RECOVERED", false));
_stats.push_back(new DebriefingStat("STR_ALIEN_ARTIFACTS_RECOVERED", false));
_stats.push_back(new DebriefingStat("STR_ALIEN_BASE_CONTROL_DESTROYED", false));
_stats.push_back(new DebriefingStat("STR_CIVILIANS_KILLED_BY_ALIENS", false));
_stats.push_back(new DebriefingStat("STR_CIVILIANS_KILLED_BY_XCOM_OPERATIVES", false));
_stats.push_back(new DebriefingStat("STR_CIVILIANS_SAVED", false));
_stats.push_back(new DebriefingStat("STR_XCOM_OPERATIVES_KILLED", false));
//_stats.push_back(new DebriefingStat("STR_XCOM_OPERATIVES_RETIRED_THROUGH_INJURY", false));
_stats.push_back(new DebriefingStat("STR_XCOM_OPERATIVES_MISSING_IN_ACTION", false));
_stats.push_back(new DebriefingStat("STR_TANKS_DESTROYED", false));
_stats.push_back(new DebriefingStat("STR_XCOM_CRAFT_LOST", false));
_stats.push_back(new DebriefingStat("STR_UFO_POWER_SOURCE", true));
_stats.push_back(new DebriefingStat("STR_UFO_NAVIGATION", true));
_stats.push_back(new DebriefingStat("STR_UFO_CONSTRUCTION", true));
_stats.push_back(new DebriefingStat("STR_ALIEN_FOOD", true));
_stats.push_back(new DebriefingStat("STR_ALIEN_REPRODUCTION", true));
_stats.push_back(new DebriefingStat("STR_ALIEN_ENTERTAINMENT", true));
_stats.push_back(new DebriefingStat("STR_ALIEN_SURGERY", true));
_stats.push_back(new DebriefingStat("STR_EXAMINATION_ROOM", true));
_stats.push_back(new DebriefingStat("STR_ALIEN_ALLOYS", true));
_stats.push_back(new DebriefingStat("STR_ELERIUM_115", true));
SavedGame *save = _game->getSavedGame();
SavedBattleGame *battle = save->getBattleGame();
bool aborted = battle->isAborted();
Craft* craft = 0;
std::vector<Craft*>::iterator craftIterator;
Base* base = 0;
int playerInExitArea = 0; // if this stays 0 the craft is lost...
int playersSurvived = 0; // if this stays 0 the craft is lost...
for (std::vector<Base*>::iterator i = save->getBases()->begin(); i != save->getBases()->end(); ++i)
{
// in case we have a craft - check which craft it is about
for (std::vector<Craft*>::iterator j = (*i)->getCrafts()->begin(); j != (*i)->getCrafts()->end(); ++j)
{
if ((*j)->isInBattlescape())
{
craft = (*j);
base = (*i);
craftIterator = j;
craft->returnToBase();
craft->setLowFuel(true);
craft->setInBattlescape(false);
}
}
}
// UFO crash/landing site disappears
for (std::vector<Ufo*>::iterator i = save->getUfos()->begin(); i != save->getUfos()->end(); ++i)
{
if ((*i)->isInBattlescape())
{
delete *i;
save->getUfos()->erase(i);
break;
}
}
// lets see what happens with units
for (std::vector<BattleUnit*>::iterator j = battle->getUnits()->begin(); j != battle->getUnits()->end(); ++j)
{
UnitStatus status = (*j)->getStatus();
UnitFaction faction = (*j)->getFaction();
int value = (*j)->getValue();
Soldier *soldier = save->getSoldier((*j)->getId());
if (status == STATUS_DEAD)
{
if (faction == FACTION_HOSTILE)
{
addStat("STR_ALIENS_KILLED", 1, value);
}
if (faction == FACTION_PLAYER)
{
if (soldier != 0)
{
addStat("STR_XCOM_OPERATIVES_KILLED", 1, -value);
for (std::vector<Soldier*>::iterator i = base->getSoldiers()->begin(); i != base->getSoldiers()->end(); ++i)
{
if ((*i) == soldier)
{
delete (*i);
base->getSoldiers()->erase(i);
break;
}
}
}
//.........这里部分代码省略.........