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
- CvCity::foodConsumption(bool, int) const
- CvCity::getBaseYieldRate(YieldTypes) const
- CvCity::getBaseYieldRateModifier(YieldTypes, int, CvString *) const
- CvCity::getFeatureProduction() const
- CvCity::GetFoodProduction(int) const
- CvCity::getOverflowProduction() const
- CvCity::getOwner() const
- CvCity::getPopulation(bool) const
- CvCity::GetYieldPerPopTimes100(YieldTypes) const
- CvCity::getYieldRate(YieldTypes, bool) const
- CvCity::IsRazing() const
- CvCity::IsResistance() const
- CvPlayer::IsAnarchy() const
- CvPlayerAI::getPlayer(PlayerTypes)