Bazaar developer reference

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

Called by