CvPlayer::DoProcessGoldenAge()
- Defined in
- CvPlayer.cpp, line 13564
- Class
- CvPlayer
- Hook name
CivHooks::CvPlayer_DoProcessGoldenAge
Hand-placed hooks inside
A replacement for this function that does not call original stops these hooks from running.
Hooks
static bool BeforeCvPlayer_DoProcessGoldenAge(CvPlayer* self);static void AfterCvPlayer_DoProcessGoldenAge(CvPlayer* self);static void ReplaceCvPlayer_DoProcessGoldenAge(void (*original)(CvPlayer*), CvPlayer* self);CivRegisterBefore<CivHooks::CvPlayer_DoProcessGoldenAge>(host, &BeforeCvPlayer_DoProcessGoldenAge);CivRegisterAfter<CivHooks::CvPlayer_DoProcessGoldenAge>(host, &AfterCvPlayer_DoProcessGoldenAge);CivRegisterReplace<CivHooks::CvPlayer_DoProcessGoldenAge>(host, &ReplaceCvPlayer_DoProcessGoldenAge);
Code
13563/// Update all Golden-Age related stuff13564void CvPlayer::DoProcessGoldenAge()13565{13566 if(GC.getGame().isOption(GAMEOPTION_NO_HAPPINESS))13567 {13568 return;13569 }1357013571 // Minors and Barbs can't get GAs13572 if(!isMinorCiv() && !isBarbarian())13573 {13574 // Already in a GA - don't decrement counter while in Anarchy13575 if(getGoldenAgeTurns() > 0)13576 {13577 if(!IsAnarchy())13578 {13579 changeGoldenAgeTurns(-1);13580 }13581 }1358213583 // Not in GA13584 else13585 {13586 // Note: This will actually REDUCE the GA meter if the player is running in the red13587 ChangeGoldenAgeProgressMeter(GetExcessHappiness());13588 13589#if defined(MOD_API_UNIFIED_YIELDS_GOLDEN_AGE)13590 // GA points from religion13591 ChangeGoldenAgeProgressMeter(GetYieldPerTurnFromReligion(YIELD_GOLDEN_AGE_POINTS));1359213593 // Trait bonus which adds GA points for trade partners? 13594 ChangeGoldenAgeProgressMeter(GetYieldPerTurnFromTraits(YIELD_GOLDEN_AGE_POINTS));1359513596 // Add in all the GA points from city yields13597 CvCity* pLoopCity;13598 int iLoop;1359913600 for(pLoopCity = firstCity(&iLoop); pLoopCity != NULL; pLoopCity = nextCity(&iLoop))13601 {13602 ChangeGoldenAgeProgressMeter(pLoopCity->getYieldRate(YIELD_GOLDEN_AGE_POINTS, false));13603 }13604#endif1360513606 // Enough GA Progress to trigger new GA?13607 if(GetGoldenAgeProgressMeter() >= GetGoldenAgeProgressThreshold())13608 {13609 int iOverflow = GetGoldenAgeProgressMeter() - GetGoldenAgeProgressThreshold();1361013611 SetGoldenAgeProgressMeter(iOverflow);13612 13613 int iLength = getGoldenAgeLength();13614 changeGoldenAgeTurns(iLength);1361513616#if defined(CIV_HOST_API)13617 CivHandPopupRaised(GetID(), BUTTONPOPUP_GOLDEN_AGE_REWARD, -1, -1, -1, false, false, "");hand-placed hook: PopupRaised13618#endif13619 // If it's the active player then show the popup13620 if(GetID() == GC.getGame().getActivePlayer())13621 {13622 // Don't show in MP13623#if defined(MOD_API_EXTENSIONS)13624 if(!GC.getGame().isReallyNetworkMultiPlayer())13625#else13626 if(!GC.getGame().isNetworkMultiPlayer()) // KWG: Candidate for !GC.getGame().isOption(GAMEOPTION_SIMULTANEOUS_TURNS)13627#endif13628 {13629 CvPopupInfo kPopupInfo(BUTTONPOPUP_GOLDEN_AGE_REWARD);13630 GC.GetEngineUserInterface()->AddPopup(kPopupInfo);13631 }13632 }13633 }13634 }13635 }13636}
Calls
CivHandPopupRaised- CvCity::getYieldRate(YieldTypes, bool) const
- CvGame::getActivePlayer() const
- CvGame::isOption(GameOptionTypes) const
- CvGame::isReallyNetworkMultiPlayer() const
- CvGlobals::GetEngineUserInterface()
- CvGlobals::getGame()
- CvPlayer::ChangeGoldenAgeProgressMeter(int)
- CvPlayer::changeGoldenAgeTurns(int)
- CvPlayer::firstCity(int *, bool)
- CvPlayer::GetExcessHappiness() const
- CvPlayer::getGoldenAgeLength() const
- CvPlayer::GetGoldenAgeProgressMeter() const
- CvPlayer::GetGoldenAgeProgressThreshold() const
- CvPlayer::getGoldenAgeTurns() const
- CvPlayer::GetID() const
- CvPlayer::GetYieldPerTurnFromReligion(YieldTypes) const
- CvPlayer::GetYieldPerTurnFromTraits(YieldTypes) const
- CvPlayer::IsAnarchy() const
- CvPlayer::isBarbarian() const
- CvPlayer::isMinorCiv() const
- CvPlayer::nextCity(int *, bool)
- CvPlayer::SetGoldenAgeProgressMeter(int)
CvPopupInfo::CvPopupInfoICvUserInterface1::AddPopup