本文整理汇总了C++中ListIter::GetComponents方法的典型用法代码示例。如果您正苦于以下问题:C++ ListIter::GetComponents方法的具体用法?C++ ListIter::GetComponents怎么用?C++ ListIter::GetComponents使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ListIter
的用法示例。
在下文中一共展示了ListIter::GetComponents方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: BuildGroupList
//.........这里部分代码省略.........
CombatZone* assigned_zone = current_zone;
ZoneForce* assigned_force = current_force;
if (highest_zone_need > current_zone_need) {
assigned_zone = highest_zone;
assigned_force = highest_force;
}
// if we couldn't find anything suitable,
// just pick a zone at random:
if (!assigned_zone) {
if (possible_zones.isEmpty())
possible_zones.append(campaign->GetZones());
int nzones = possible_zones.size();
int n = RandomIndex() % nzones;
assigned_zone = possible_zones.at(n);
assigned_force = assigned_zone->FindForce(g->GetIFF());
}
if (assigned_force && assigned_zone) {
Text assigned_rgn;
if (!campaign->GetZone(g->GetRegion())) {
assigned_rgn = *assigned_zone->GetRegions().at(0);
g->AssignRegion(assigned_rgn);
}
g->SetAssignedZone(assigned_zone);
assigned_force->AddNeed(g->Type(), -(g->Value()));
// also assign the carrier's wing and squadrons to the same zone:
ListIter<CombatGroup> squadron = g->GetComponents();
while (++squadron) {
squadron->SetAssignedZone(assigned_zone);
assigned_force->AddNeed(squadron->Type(), -(squadron->Value()));
if (squadron->Type() == CombatGroup::WING) {
ListIter<CombatGroup> s = squadron->GetComponents();
while (++s) {
s->SetAssignedZone(assigned_zone);
assigned_force->AddNeed(s->Type(), -(s->Value()));
}
}
}
}
}
}
// third pass: everything else
g_iter.reset();
while (++g_iter) {
CombatGroup* g = g_iter.value();
int gtype = g->Type();
if (gtype == CombatGroup::BATTLE_GROUP || gtype == CombatGroup::DESTROYER_SQUADRON) {
int current_zone_need = 0;
int highest_zone_need = 0;
CombatZone* highest_zone = 0;
ZoneForce* highest_force = 0;
CombatZone* current_zone = 0;
ZoneForce* current_force = 0;
List<CombatZone> possible_zones;