Bazaar developer reference

CvEconomicAI::GetImprovedToImprovablePlotsRatio()

Defined in
CvEconomicAI.cpp, line 1254
Class
CvEconomicAI
Hook name
CivHooks::CvEconomicAI_GetImprovedToImprovablePlotsRatio

Hooks

static bool BeforeCvEconomicAI_GetImprovedToImprovablePlotsRatio(CvEconomicAI* self, double& result);static void AfterCvEconomicAI_GetImprovedToImprovablePlotsRatio(CvEconomicAI* self, double& result);static double ReplaceCvEconomicAI_GetImprovedToImprovablePlotsRatio(double (*original)(CvEconomicAI*), CvEconomicAI* self);CivRegisterBefore<CivHooks::CvEconomicAI_GetImprovedToImprovablePlotsRatio>(host, &BeforeCvEconomicAI_GetImprovedToImprovablePlotsRatio);CivRegisterAfter<CivHooks::CvEconomicAI_GetImprovedToImprovablePlotsRatio>(host, &AfterCvEconomicAI_GetImprovedToImprovablePlotsRatio);CivRegisterReplace<CivHooks::CvEconomicAI_GetImprovedToImprovablePlotsRatio>(host, &ReplaceCvEconomicAI_GetImprovedToImprovablePlotsRatio);

Code

1253/// What is the ratio of our improved plots to all the plots we are able to improve?1254double CvEconomicAI::GetImprovedToImprovablePlotsRatio()1255{1256	const CvPlotsVector& aiPlots = m_pPlayer->GetPlots();1257	int iNumValidPlots = 0;1258	int iNumImprovedPlots = 0;1259	for(uint ui = 0; ui < aiPlots.size(); ui++)1260	{1261		if(aiPlots[ui] == -1)1262		{1263			continue;1264		}12651266		const CvPlot* pPlot = GC.getMap().plotByIndex(aiPlots[ui]);1267		if(!pPlot)1268		{1269			continue;1270		}12711272		if(pPlot->isWater() || pPlot->isImpassable() || pPlot->isMountain() || pPlot->isCity())1273		{1274			continue;1275		}12761277		iNumValidPlots++;12781279		if(pPlot->getImprovementType() != NO_IMPROVEMENT && !pPlot->IsImprovementPillaged())1280		{1281			iNumImprovedPlots++;1282		}1283	}1284	// Avoid potential division by 01285	if(iNumValidPlots <= 0)1286	{1287		return 1.0;1288	}1289	double fCurrentRatio = iNumImprovedPlots / (double)iNumValidPlots;12901291	return fCurrentRatio;1292}

Calls

Called by