Bazaar developer reference

CvCitySiteEvaluator::ComputeFoodValue(CvPlot *, CvPlayer *)

Defined in
CvSiteEvaluationClasses.cpp, line 772
Class
CvCitySiteEvaluator
Hook name
CivHooks::CvCitySiteEvaluator_ComputeFoodValue

Hooks

static bool BeforeCvCitySiteEvaluator_ComputeFoodValue(CvCitySiteEvaluator* self, CvPlot* pPlot, CvPlayer* pPlayer, int& result);static void AfterCvCitySiteEvaluator_ComputeFoodValue(CvCitySiteEvaluator* self, CvPlot* pPlot, CvPlayer* pPlayer, int& result);static int ReplaceCvCitySiteEvaluator_ComputeFoodValue(int (*original)(CvCitySiteEvaluator*, CvPlot*, CvPlayer*), CvCitySiteEvaluator* self, CvPlot* pPlot, CvPlayer* pPlayer);CivRegisterBefore<CivHooks::CvCitySiteEvaluator_ComputeFoodValue>(host, &BeforeCvCitySiteEvaluator_ComputeFoodValue);CivRegisterAfter<CivHooks::CvCitySiteEvaluator_ComputeFoodValue>(host, &AfterCvCitySiteEvaluator_ComputeFoodValue);CivRegisterReplace<CivHooks::CvCitySiteEvaluator_ComputeFoodValue>(host, &ReplaceCvCitySiteEvaluator_ComputeFoodValue);

Code

771/// Value of plot for providing food772int CvCitySiteEvaluator::ComputeFoodValue(CvPlot* pPlot, CvPlayer* pPlayer)773{774	int rtnValue = 0;775776	// From tile yield777	if(pPlayer == NULL)778	{779		rtnValue += pPlot->calculateNatureYield(YIELD_FOOD, NO_TEAM);780	}781	else782	{783		rtnValue += pPlot->calculateNatureYield(YIELD_FOOD, pPlayer->getTeam());784	}785786	// From resource787	TeamTypes eTeam = NO_TEAM;788	if(pPlayer != NULL)789	{790		eTeam = pPlayer->getTeam();791	}792793	ResourceTypes eResource;794	eResource = pPlot->getResourceType(eTeam);795	if(eResource != NO_RESOURCE)796	{797		rtnValue += GC.getResourceInfo(eResource)->getYieldChange(YIELD_FOOD);798799		CvImprovementEntry* pImprovement = GC.GetGameImprovements()->GetImprovementForResource(eResource);800		if(pImprovement)801		{802			rtnValue += pImprovement->GetImprovementResourceYield(eResource, YIELD_FOOD);803		}804	}805806	return rtnValue * m_iFlavorMultiplier[YIELD_FOOD];807}

Calls

Called by