Bazaar developer reference

CvCity::findYieldRateRank(YieldTypes)

Defined in
CvCity.cpp, line 2466
Class
CvCity
Hook name
CivHooks::CvCity_findYieldRateRank

Hooks

static bool BeforeCvCity_findYieldRateRank(CvCity* self, YieldTypes eYield, int& result);static void AfterCvCity_findYieldRateRank(CvCity* self, YieldTypes eYield, int& result);static int ReplaceCvCity_findYieldRateRank(int (*original)(CvCity*, YieldTypes), CvCity* self, YieldTypes eYield);CivRegisterBefore<CivHooks::CvCity_findYieldRateRank>(host, &BeforeCvCity_findYieldRateRank);CivRegisterAfter<CivHooks::CvCity_findYieldRateRank>(host, &AfterCvCity_findYieldRateRank);CivRegisterReplace<CivHooks::CvCity_findYieldRateRank>(host, &ReplaceCvCity_findYieldRateRank);

Code

2466int CvCity::findYieldRateRank(YieldTypes eYield)2467{2468	if(!m_abYieldRankValid[eYield])2469	{2470		int iRate = getYieldRateTimes100(eYield, false);24712472		int iRank = 1;24732474		int iLoop;2475		CvCity* pLoopCity;2476		for(pLoopCity = GET_PLAYER(getOwner()).firstCity(&iLoop); pLoopCity != NULL; pLoopCity = GET_PLAYER(getOwner()).nextCity(&iLoop))2477		{2478			if ((pLoopCity->getYieldRateTimes100(eYield, false) > iRate) ||2479			    ((pLoopCity->getYieldRateTimes100(eYield, false) == iRate) && (pLoopCity->GetID() < GetID())))2480			{2481				iRank++;2482			}2483		}24842485		m_abYieldRankValid.setAt(eYield, true);2486		m_aiYieldRank.setAt(eYield, iRank);2487	}24882489	return m_aiYieldRank[eYield];2490}

Calls

Called by