for (pLoopCity = GET_PLAYER(getOwnerINLINE()).firstCity(&iLoop); pLoopCity != NULL; pLoopCity = GET_PLAYER(getOwnerINLINE()).nextCity(&iLoop))
{
iTempMaintenance = 100 * (GC.getDefineINT("MAX_DISTANCE_CITY_MAINTENANCE") * plotDistance(getX_INLINE(), getY_INLINE(), pLoopCity->getX_INLINE(), pLoopCity->getY_INLINE()));
iTempMaintenance *= (getPopulation() + 7);
iTempMaintenance /= 10;
iTempMaintenance *= max(0, (GET_PLAYER(getOwnerINLINE()).getDistanceMaintenanceModifier() + 100));
iTempMaintenance /= 100;
iTempMaintenance *= GC.getWorldInfo(GC.getMapINLINE().getWorldSize()).getDistanceMaintenancePercent();
iTempMaintenance /= 100;
iTempMaintenance *= GC.getHandicapInfo(getHandicapType()).getDistanceMaintenancePercent();
iTempMaintenance /= 100;
iTempMaintenance /= GC.getMapINLINE().maxPlotDistance();
iWorstCityMaintenance = max(iWorstCityMaintenance, iTempMaintenance);
if (pLoopCity->isGovernmentCenter())
{
iBestCapitalMaintenance = min(iBestCapitalMaintenance, iTempMaintenance);
}
}
return min(iWorstCityMaintenance, iBestCapitalMaintenance);
}