Bazaar developer reference

CvPlayer::AwardFreeBuildings(CvCity *)

Defined in
CvPlayer.cpp, line 7454
Class
CvPlayer
Hook name
CivHooks::CvPlayer_AwardFreeBuildings

Hooks

static bool BeforeCvPlayer_AwardFreeBuildings(CvPlayer* self, CvCity* pCity);static void AfterCvPlayer_AwardFreeBuildings(CvPlayer* self, CvCity* pCity);static void ReplaceCvPlayer_AwardFreeBuildings(void (*original)(CvPlayer*, CvCity*), CvPlayer* self, CvCity* pCity);CivRegisterBefore<CivHooks::CvPlayer_AwardFreeBuildings>(host, &BeforeCvPlayer_AwardFreeBuildings);CivRegisterAfter<CivHooks::CvPlayer_AwardFreeBuildings>(host, &AfterCvPlayer_AwardFreeBuildings);CivRegisterReplace<CivHooks::CvPlayer_AwardFreeBuildings>(host, &ReplaceCvPlayer_AwardFreeBuildings);

Code

7454void CvPlayer::AwardFreeBuildings(CvCity* pCity)7455{7456	int iNumFreeCultureBuildings = GetNumCitiesFreeCultureBuilding();7457	if(iNumFreeCultureBuildings > 0)7458	{7459		BuildingTypes eBuilding = pCity->ChooseFreeCultureBuilding();7460		if(eBuilding != NO_BUILDING)7461		{7462			pCity->GetCityBuildings()->SetNumFreeBuilding(eBuilding, 1);7463		}7464		else7465		{7466			pCity->SetOwedCultureBuilding(true);7467		}74687469		ChangeNumCitiesFreeCultureBuilding(-1);7470	}74717472	int iNumFreeFoodBuildings = GetNumCitiesFreeFoodBuilding();7473	if(iNumFreeFoodBuildings > 0)7474	{7475		BuildingTypes eBuilding = pCity->ChooseFreeFoodBuilding();7476		if(eBuilding != NO_BUILDING)7477		{7478			pCity->GetCityBuildings()->SetNumFreeBuilding(eBuilding, 1);7479		}7480#if defined(MOD_BUGFIX_FREE_FOOD_BUILDING)7481		else7482		{7483			pCity->SetOwedFoodBuilding(true);7484		}7485#endif74867487		ChangeNumCitiesFreeFoodBuilding(-1);7488	}7489}

Calls

Called by