Bazaar developer reference

CvTacticalAnalysisMap::AddTemporaryZones()

Defined in
CvTacticalAnalysisMap.cpp, line 466
Class
CvTacticalAnalysisMap
Hook name
CivHooks::CvTacticalAnalysisMap_AddTemporaryZones

Hooks

static bool BeforeCvTacticalAnalysisMap_AddTemporaryZones(CvTacticalAnalysisMap* self);static void AfterCvTacticalAnalysisMap_AddTemporaryZones(CvTacticalAnalysisMap* self);static void ReplaceCvTacticalAnalysisMap_AddTemporaryZones(void (*original)(CvTacticalAnalysisMap*), CvTacticalAnalysisMap* self);CivRegisterBefore<CivHooks::CvTacticalAnalysisMap_AddTemporaryZones>(host, &BeforeCvTacticalAnalysisMap_AddTemporaryZones);CivRegisterAfter<CivHooks::CvTacticalAnalysisMap_AddTemporaryZones>(host, &AfterCvTacticalAnalysisMap_AddTemporaryZones);CivRegisterReplace<CivHooks::CvTacticalAnalysisMap_AddTemporaryZones>(host, &ReplaceCvTacticalAnalysisMap_AddTemporaryZones);

Code

465/// Add in any temporary dominance zones from tactical AI466void CvTacticalAnalysisMap::AddTemporaryZones()467{468	CvTemporaryZone* pZone;469	CvTacticalAI* pTacticalAI = m_pPlayer->GetTacticalAI();470471	if(pTacticalAI)472	{473		pTacticalAI->DropObsoleteZones();474475		pZone = pTacticalAI->GetFirstTemporaryZone();476		while(pZone)477		{478			// Can't be a city zone (which is just used to boost priority but not establish a new zone)479			if(pZone->GetTargetType() != AI_TACTICAL_TARGET_CITY)480			{481				CvPlot* pPlot = GC.getMap().plot(pZone->GetX(), pZone->GetY());482				if(pPlot)483				{484					CvTacticalDominanceZone newZone;485					newZone.SetDominanceZoneID(m_DominanceZones.size());486					newZone.SetTerritoryType(TACTICAL_TERRITORY_TEMP_ZONE);487					newZone.SetOwner(NO_PLAYER);488					newZone.SetAreaID(pPlot->getArea());489					newZone.SetWater(pPlot->isWater());490					newZone.SetTempZoneCenter(pPlot);491					newZone.SetNavalInvasion(pZone->IsNavalInvasion());492					m_DominanceZones.push_back(newZone);493				}494			}495496			pZone = pTacticalAI->GetNextTemporaryZone();497		}498	}499}

Calls

Called by