Bazaar developer reference

EconomicAIHelpers::IsTestStrategy_HaltGrowthBuildings(CvPlayer *)

Defined in
CvEconomicAI.cpp, line 3943
Hook name
CivHooks::EconomicAIHelpers_IsTestStrategy_HaltGrowthBuildings

Hooks

static bool BeforeEconomicAIHelpers_IsTestStrategy_HaltGrowthBuildings(CvPlayer* pPlayer, bool& result);static void AfterEconomicAIHelpers_IsTestStrategy_HaltGrowthBuildings(CvPlayer* pPlayer, bool& result);static bool ReplaceEconomicAIHelpers_IsTestStrategy_HaltGrowthBuildings(bool (*original)(CvPlayer*), CvPlayer* pPlayer);CivRegisterBefore<CivHooks::EconomicAIHelpers_IsTestStrategy_HaltGrowthBuildings>(host, &BeforeEconomicAIHelpers_IsTestStrategy_HaltGrowthBuildings);CivRegisterAfter<CivHooks::EconomicAIHelpers_IsTestStrategy_HaltGrowthBuildings>(host, &AfterEconomicAIHelpers_IsTestStrategy_HaltGrowthBuildings);CivRegisterReplace<CivHooks::EconomicAIHelpers_IsTestStrategy_HaltGrowthBuildings>(host, &ReplaceEconomicAIHelpers_IsTestStrategy_HaltGrowthBuildings);

Code

3942/// "Halt Growth Buildings" Player Strategy: Stop building granaries if working on a wonder that provides them for free3943bool EconomicAIHelpers::IsTestStrategy_HaltGrowthBuildings(CvPlayer* pPlayer)3944{3945	BuildingTypes eNextDesiredWonder = pPlayer->GetCitySpecializationAI()->GetNextWonderDesired();39463947	// Is average income below desired threshold over past X turns?3948	if(eNextDesiredWonder != NO_BUILDING)3949	{3950		CvBuildingXMLEntries* pkGameBuildings = GC.GetGameBuildings();3951		CvBuildingEntry* pkBuildingInfo = pkGameBuildings->GetEntry(eNextDesiredWonder);3952		if(pkBuildingInfo)3953		{3954			BuildingClassTypes eBuildingClass = (BuildingClassTypes)pkBuildingInfo->GetFreeBuildingClass();3955			if(eBuildingClass != NO_BUILDINGCLASS)3956			{3957				CvBuildingClassInfo* pkBuildingClassInfo = GC.getBuildingClassInfo(eBuildingClass);3958				{3959					if(pkBuildingClassInfo)3960					{3961						BuildingTypes eBuilding = (BuildingTypes)pkBuildingClassInfo->getDefaultBuildingIndex();3962						if(eBuilding != NO_BUILDING)3963						{3964							CvBuildingEntry* pkFreeBuildingInfo = pkGameBuildings->GetEntry(eBuilding);3965							if(pkFreeBuildingInfo)3966							{3967								if(pkFreeBuildingInfo->GetYieldChange(YIELD_FOOD) > 0)3968								{3969									return true;3970								}3971							}3972						}3973					}3974				}3975			}3976		}3977	}3978	return false;3979}

Calls

Called by