Bazaar developer reference

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

Called by