Bazaar developer reference

CvCity::findBaseYieldRateRank(YieldTypes)

Defined in
CvCity.cpp, line 2437
Class
CvCity
Hook name
CivHooks::CvCity_findBaseYieldRateRank

Hooks

static bool BeforeCvCity_findBaseYieldRateRank(CvCity* self, YieldTypes eYield, int& result);static void AfterCvCity_findBaseYieldRateRank(CvCity* self, YieldTypes eYield, int& result);static int ReplaceCvCity_findBaseYieldRateRank(int (*original)(CvCity*, YieldTypes), CvCity* self, YieldTypes eYield);CivRegisterBefore<CivHooks::CvCity_findBaseYieldRateRank>(host, &BeforeCvCity_findBaseYieldRateRank);CivRegisterAfter<CivHooks::CvCity_findBaseYieldRateRank>(host, &AfterCvCity_findBaseYieldRateRank);CivRegisterReplace<CivHooks::CvCity_findBaseYieldRateRank>(host, &ReplaceCvCity_findBaseYieldRateRank);

Code

2437int CvCity::findBaseYieldRateRank(YieldTypes eYield)2438{2439	VALIDATE_OBJECT2440	if(!m_abBaseYieldRankValid[eYield])2441	{2442		int iRate = getBaseYieldRate(eYield);24432444		int iRank = 1;24452446		int iLoop;2447		CvCity* pLoopCity;2448		for(pLoopCity = GET_PLAYER(getOwner()).firstCity(&iLoop); pLoopCity != NULL; pLoopCity = GET_PLAYER(getOwner()).nextCity(&iLoop))2449		{2450			if((pLoopCity->getBaseYieldRate(eYield) > iRate) ||2451			        ((pLoopCity->getBaseYieldRate(eYield) == iRate) && (pLoopCity->GetID() < GetID())))2452			{2453				iRank++;2454			}2455		}24562457		m_abBaseYieldRankValid.setAt(eYield, true);2458		m_aiBaseYieldRank.setAt(eYield, iRank);2459	}24602461	return m_aiBaseYieldRank[eYield];2462}

Calls

Called by