CvCityBuildings::GetCityStateTradeRouteProductionModifier() const
- Defined in
- CvBuildingClasses.cpp, line 3535
- Class
- CvCityBuildings
- Hook name
CivHooks::CvCityBuildings_GetCityStateTradeRouteProductionModifier
Hooks
static bool BeforeCvCityBuildings_GetCityStateTradeRouteProductionModifier(const CvCityBuildings* self, int& result);static void AfterCvCityBuildings_GetCityStateTradeRouteProductionModifier(const CvCityBuildings* self, int& result);static int ReplaceCvCityBuildings_GetCityStateTradeRouteProductionModifier(int (*original)(const CvCityBuildings*), const CvCityBuildings* self);CivRegisterBefore<CivHooks::CvCityBuildings_GetCityStateTradeRouteProductionModifier>(host, &BeforeCvCityBuildings_GetCityStateTradeRouteProductionModifier);CivRegisterAfter<CivHooks::CvCityBuildings_GetCityStateTradeRouteProductionModifier>(host, &AfterCvCityBuildings_GetCityStateTradeRouteProductionModifier);CivRegisterReplace<CivHooks::CvCityBuildings_GetCityStateTradeRouteProductionModifier>(host, &ReplaceCvCityBuildings_GetCityStateTradeRouteProductionModifier);
Code
3534/// Accessor: What is the production modifier for each city state trade route?3535int CvCityBuildings::GetCityStateTradeRouteProductionModifier() const3536{3537 int iRtnValue = 0;35383539 for(int iI = 0; iI < GC.getNumBuildingClassInfos(); iI++)3540 {3541 BuildingClassTypes eLoopBuildingClass = (BuildingClassTypes) iI;3542 CvCivilizationInfo *pkCivInfo = GC.getCivilizationInfo(m_pCity->getCivilizationType());3543 if (pkCivInfo)3544 {3545 BuildingTypes eBuilding = (BuildingTypes)pkCivInfo->getCivilizationBuildings(eLoopBuildingClass);3546 if (NO_BUILDING != eBuilding)3547 {3548 if (GetNumBuilding(eBuilding) > 0)3549 {3550 CvBuildingEntry *pkEntry = GC.getBuildingInfo(eBuilding);3551 if (pkEntry)3552 {3553 int iProductionModifier = pkEntry->GetCityStateTradeRouteProductionModifier();3554 int iCityStates = GET_PLAYER(m_pCity->getOwner()).GetTrade()->GetNumberOfCityStateTradeRoutes();3555 if (iProductionModifier > 0 && iCityStates > 0)3556 {3557#if defined(MOD_BUGFIX_MINOR)3558 iRtnValue = iProductionModifier * iCityStates * GetNumBuilding(eBuilding);3559#else3560 iRtnValue = iProductionModifier * iCityStates;3561#endif3562 }3563 }3564 }3565 }3566 }3567 }35683569 return iRtnValue;3570}
Calls
- CvBuildingEntry::GetCityStateTradeRouteProductionModifier() const
- CvCity::getCivilizationType() const
- CvCity::getOwner() const
- CvCityBuildings::GetNumBuilding(BuildingTypes) const
- CvCivilizationInfo::getCivilizationBuildings(int) const
- CvGlobals::getBuildingInfo(BuildingTypes)
- CvGlobals::getCivilizationInfo(CivilizationTypes)
- CvGlobals::getNumBuildingClassInfos()
- CvPlayer::GetTrade() const
- CvPlayerAI::getPlayer(PlayerTypes)
- CvPlayerTrade::GetNumberOfCityStateTradeRoutes()