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
- CvCity::ChooseFreeCultureBuilding() const
- CvCity::ChooseFreeFoodBuilding() const
- CvCity::GetCityBuildings() const
- CvCity::SetOwedCultureBuilding(bool)
- CvCity::SetOwedFoodBuilding(bool)
- CvCityBuildings::SetNumFreeBuilding(BuildingTypes, int)
- CvPlayer::ChangeNumCitiesFreeCultureBuilding(int)
- CvPlayer::ChangeNumCitiesFreeFoodBuilding(int)
- CvPlayer::GetNumCitiesFreeCultureBuilding() const
- CvPlayer::GetNumCitiesFreeFoodBuilding() const