Bazaar developer reference

CvPlayer::DoGreatPeopleSpawnTurn()

Defined in
CvPlayer.cpp, line 14965
Class
CvPlayer
Hook name
CivHooks::CvPlayer_DoGreatPeopleSpawnTurn

Hooks

static bool BeforeCvPlayer_DoGreatPeopleSpawnTurn(CvPlayer* self);static void AfterCvPlayer_DoGreatPeopleSpawnTurn(CvPlayer* self);static void ReplaceCvPlayer_DoGreatPeopleSpawnTurn(void (*original)(CvPlayer*), CvPlayer* self);CivRegisterBefore<CivHooks::CvPlayer_DoGreatPeopleSpawnTurn>(host, &BeforeCvPlayer_DoGreatPeopleSpawnTurn);CivRegisterAfter<CivHooks::CvPlayer_DoGreatPeopleSpawnTurn>(host, &AfterCvPlayer_DoGreatPeopleSpawnTurn);CivRegisterReplace<CivHooks::CvPlayer_DoGreatPeopleSpawnTurn>(host, &ReplaceCvPlayer_DoGreatPeopleSpawnTurn);

Code

14964/// Time to spawn a GreatPeople?14965void CvPlayer::DoGreatPeopleSpawnTurn()14966{14967	// Tick down14968	if(GetGreatPeopleSpawnCounter() > 0)14969	{14970		AI_PERF_FORMAT("AI-perf.csv", ("CvPlayer::DoGreatPeopleSpawnTurn, Turn %03d, %s", GC.getGame().getElapsedGameTurns(), getCivilizationShortDescription()) );14971		ChangeGreatPeopleSpawnCounter(-1);1497214973		// Time to spawn! - Pick a random allied minor14974		if(GetGreatPeopleSpawnCounter() == 0)14975		{14976			PlayerTypes eBestMinor = NO_PLAYER;14977			int iBestScore = -1;14978			int iScore;1497914980			PlayerTypes eMinor;14981			for(int iMinorLoop = MAX_MAJOR_CIVS; iMinorLoop < MAX_CIV_PLAYERS; iMinorLoop++)14982			{14983				eMinor = (PlayerTypes) iMinorLoop;1498414985				// Not alive14986				if(!GET_PLAYER(eMinor).isAlive())14987					continue;1498814989				// Not an ally14990				if(GET_PLAYER(eMinor).GetMinorCivAI()->GetAlly() != GetID())14991					continue;1499214993				iScore = GC.getGame().getJonRandNum(100, "Random minor great person gift location.");1499414995				// Best ally yet?14996				if(eBestMinor == NO_PLAYER || iScore > iBestScore)14997				{14998					eBestMinor = eMinor;14999					iBestScore = iScore;15000				}15001			}1500215003			if(eBestMinor != NO_PLAYER)15004#if defined(MOD_GLOBAL_TRULY_FREE_GP)15005				DoSpawnGreatPerson(eBestMinor, MOD_GLOBAL_TRULY_FREE_GP);15006#else15007				DoSpawnGreatPerson(eBestMinor);15008#endif1500915010			// Reseed counter15011			DoSeedGreatPeopleSpawnCounter();15012		}15013	}15014}

Calls

Called by