Bazaar developer reference

CvCity::getProductionDifference(int, int, int, bool, bool) const

Defined in
CvCity.cpp, line 5787
Class
CvCity
Hook name
CivHooks::CvCity_getProductionDifference

Hooks

static bool BeforeCvCity_getProductionDifference(const CvCity* self, int arg0, int arg1, int iProductionModifier, bool bFoodProduction, bool bOverflow, int& result);static void AfterCvCity_getProductionDifference(const CvCity* self, int arg0, int arg1, int iProductionModifier, bool bFoodProduction, bool bOverflow, int& result);static int ReplaceCvCity_getProductionDifference(int (*original)(const CvCity*, int, int, int, bool, bool), const CvCity* self, int arg0, int arg1, int iProductionModifier, bool bFoodProduction, bool bOverflow);CivRegisterBefore<CivHooks::CvCity_getProductionDifference>(host, &BeforeCvCity_getProductionDifference);CivRegisterAfter<CivHooks::CvCity_getProductionDifference>(host, &AfterCvCity_getProductionDifference);CivRegisterReplace<CivHooks::CvCity_getProductionDifference>(host, &ReplaceCvCity_getProductionDifference);

Code

5787int CvCity::getProductionDifference(int /*iProductionNeeded*/, int /*iProduction*/, int iProductionModifier, bool bFoodProduction, bool bOverflow) const5788{5789	VALIDATE_OBJECT5790	// If we're in anarchy, then no Production is done!5791	if(GET_PLAYER(getOwner()).IsAnarchy())5792	{5793		return 0;5794	}5795	// If we're in Resistance, then no Production is done!5796	if(IsResistance() || IsRazing())5797	{5798		return 0;5799	}58005801	int iFoodProduction = ((bFoodProduction) ? (GetFoodProduction(getYieldRate(YIELD_FOOD, false) - foodConsumption(true))) : 0);58025803	int iOverflow = ((bOverflow) ? (getOverflowProduction() + getFeatureProduction()) : 0);58045805	// Sum up difference5806	int iBaseProduction = getBaseYieldRate(YIELD_PRODUCTION) * 100;5807	iBaseProduction += (GetYieldPerPopTimes100(YIELD_PRODUCTION) * getPopulation());58085809	int iModifiedProduction = iBaseProduction * getBaseYieldRateModifier(YIELD_PRODUCTION, iProductionModifier);5810	iModifiedProduction /= 10000;58115812	iModifiedProduction += iOverflow;5813	iModifiedProduction += iFoodProduction;58145815	return iModifiedProduction;58165817}

Calls

Called by