CvTacticalAnalysisMap::BuildEnemyUnitList()
- Defined in
- CvTacticalAnalysisMap.cpp, line 274
- Class
- CvTacticalAnalysisMap
- Hook name
CivHooks::CvTacticalAnalysisMap_BuildEnemyUnitList
Hooks
static bool BeforeCvTacticalAnalysisMap_BuildEnemyUnitList(CvTacticalAnalysisMap* self);static void AfterCvTacticalAnalysisMap_BuildEnemyUnitList(CvTacticalAnalysisMap* self);static void ReplaceCvTacticalAnalysisMap_BuildEnemyUnitList(void (*original)(CvTacticalAnalysisMap*), CvTacticalAnalysisMap* self);CivRegisterBefore<CivHooks::CvTacticalAnalysisMap_BuildEnemyUnitList>(host, &BeforeCvTacticalAnalysisMap_BuildEnemyUnitList);CivRegisterAfter<CivHooks::CvTacticalAnalysisMap_BuildEnemyUnitList>(host, &AfterCvTacticalAnalysisMap_BuildEnemyUnitList);CivRegisterReplace<CivHooks::CvTacticalAnalysisMap_BuildEnemyUnitList>(host, &ReplaceCvTacticalAnalysisMap_BuildEnemyUnitList);
Code
273// Find all our enemies (combat units)274void CvTacticalAnalysisMap::BuildEnemyUnitList()275{276 CvTacticalAnalysisEnemy enemy;277 m_EnemyUnits.clear();278279 for(int iPlayer = 0; iPlayer < MAX_PLAYERS; iPlayer++)280 {281 const PlayerTypes ePlayer = (PlayerTypes)iPlayer;282 CvPlayer& kPlayer = GET_PLAYER(ePlayer);283 const TeamTypes eTeam = kPlayer.getTeam();284285 // for each opposing civ286 if(kPlayer.isAlive() && GET_TEAM(eTeam).isAtWar(m_pPlayer->getTeam()))287 {288 int iLoop;289 CvUnit* pLoopUnit = NULL;290 for(pLoopUnit = kPlayer.firstUnit(&iLoop); pLoopUnit != NULL; pLoopUnit = kPlayer.nextUnit(&iLoop))291 {292 // Make sure this unit can attack293 if(pLoopUnit->IsCanAttack())294 {295 m_EnemyUnits.push_back(pLoopUnit);296 }297 }298 }299 }300}
Calls
BaseVector::clear- CvPlayer::firstUnit(int *, bool)
- CvPlayer::getTeam() const
- CvPlayer::isAlive() const
- CvPlayer::nextUnit(int *, bool)
- CvPlayerAI::getPlayer(PlayerTypes)
- CvTacticalAnalysisEnemy::CvTacticalAnalysisEnemy()
- CvTeam::getTeam(TeamTypes)
- CvTeam::isAtWar(TeamTypes) const
- CvUnit::IsCanAttack() const
FStaticVector::push_back