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
- CvCity::getBaseYieldRate(YieldTypes) const
- CvCity::GetID() const
- CvCity::getOwner() const
- CvPlayer::firstCity(int *, bool)
- CvPlayer::nextCity(int *, bool)
- CvPlayerAI::getPlayer(PlayerTypes)
FAutoVariable::operator[]FAutoVariable::operator[]FAutoVariable::setAtFAutoVariable::setAt