LeagueHelpers::GetGameEraForTrigger()
- Defined in
- CvVotingClasses.cpp, line 109
- Hook name
CivHooks::LeagueHelpers_GetGameEraForTrigger
Hooks
static bool BeforeLeagueHelpers_GetGameEraForTrigger(EraTypes& result);static void AfterLeagueHelpers_GetGameEraForTrigger(EraTypes& result);static EraTypes ReplaceLeagueHelpers_GetGameEraForTrigger(EraTypes (*original)());CivRegisterBefore<CivHooks::LeagueHelpers_GetGameEraForTrigger>(host, &BeforeLeagueHelpers_GetGameEraForTrigger);CivRegisterAfter<CivHooks::LeagueHelpers_GetGameEraForTrigger>(host, &AfterLeagueHelpers_GetGameEraForTrigger);CivRegisterReplace<CivHooks::LeagueHelpers_GetGameEraForTrigger>(host, &ReplaceLeagueHelpers_GetGameEraForTrigger);
Code
109EraTypes LeagueHelpers::GetGameEraForTrigger()110{111 EraTypes eGameEra = NO_ERA;112113 // Game era is one era less than the most advanced player114 EraTypes eMostAdvancedEra = NO_ERA;115 for (int i = 0; i < MAX_MAJOR_CIVS; i++)116 {117 if (GET_PLAYER((PlayerTypes)i).isAlive())118 {119 EraTypes e = GET_PLAYER((PlayerTypes)i).GetCurrentEra();120 if (GET_PLAYER((PlayerTypes)i).GetCurrentEra() > eMostAdvancedEra)121 {122 eMostAdvancedEra = e;123 }124 }125 }126 if (eMostAdvancedEra - 1 > NO_ERA)127 {128 eGameEra = (EraTypes) ((int)eMostAdvancedEra - 1);129 }130131 // Unless half or more civs are in this era too, then it is this era132 int iInMostAdvancedEra = 0;133 for (int i = 0; i < MAX_MAJOR_CIVS; i++)134 {135 if (GET_PLAYER((PlayerTypes)i).isAlive())136 {137 EraTypes e = GET_PLAYER((PlayerTypes)i).GetCurrentEra();138 CvAssert(e <= eMostAdvancedEra);139 if (e == eMostAdvancedEra)140 {141 iInMostAdvancedEra++;142 }143 }144 }145 if (iInMostAdvancedEra >= (GC.getGame().countMajorCivsAlive() / 2))146 {147 eGameEra = eMostAdvancedEra;148 }149150 return eGameEra;151}