Bazaar developer reference

CvCity::GetFaithPurchaseCost(BuildingTypes)

Defined in
CvCity.cpp, line 5279
Class
CvCity
Hook name
CivHooks::CvCity_GetFaithPurchaseCost_with_BuildingTypes

Hooks

static bool BeforeCvCity_GetFaithPurchaseCost_with_BuildingTypes(CvCity* self, BuildingTypes eBuilding, int& result);static void AfterCvCity_GetFaithPurchaseCost_with_BuildingTypes(CvCity* self, BuildingTypes eBuilding, int& result);static int ReplaceCvCity_GetFaithPurchaseCost_with_BuildingTypes(int (*original)(CvCity*, BuildingTypes), CvCity* self, BuildingTypes eBuilding);CivRegisterBefore<CivHooks::CvCity_GetFaithPurchaseCost_with_BuildingTypes>(host, &BeforeCvCity_GetFaithPurchaseCost_with_BuildingTypes);CivRegisterAfter<CivHooks::CvCity_GetFaithPurchaseCost_with_BuildingTypes>(host, &AfterCvCity_GetFaithPurchaseCost_with_BuildingTypes);CivRegisterReplace<CivHooks::CvCity_GetFaithPurchaseCost_with_BuildingTypes>(host, &ReplaceCvCity_GetFaithPurchaseCost_with_BuildingTypes);

Code

5279int CvCity::GetFaithPurchaseCost(BuildingTypes eBuilding)5280{5281	int iCost;52825283	CvBuildingEntry* pkBuildingInfo = GC.getBuildingInfo(eBuilding);5284	if(pkBuildingInfo == NULL)5285	{5286		//Should never happen5287		return 0;5288	}52895290	// Cost goes up in later eras5291	iCost = pkBuildingInfo->GetFaithCost();5292	EraTypes eEra = GET_TEAM(GET_PLAYER(getOwner()).getTeam()).GetCurrentEra();5293	int iMultiplier = GC.getEraInfo(eEra)->getFaithCostMultiplier();5294	iCost = iCost * iMultiplier / 100;5295	iMultiplier = (100 + GET_PLAYER(getOwner()).GetPlayerPolicies()->GetNumericModifier(POLICYMOD_FAITH_COST_MODIFIER));5296	iCost = iCost * iMultiplier / 100;52975298	// Adjust for game speed5299	iCost *= GC.getGame().getGameSpeedInfo().getConstructPercent();5300	iCost /= 100;53015302	// Adjust for difficulty5303	if(!isHuman() && !GET_PLAYER(getOwner()).IsAITeammateOfHuman() && !isBarbarian())5304	{5305		iCost *= GC.getGame().getHandicapInfo().getAIConstructPercent();5306		iCost /= 100;5307	}53085309	// Make the number not be funky5310	int iDivisor = /*10*/ GC.getGOLD_PURCHASE_VISIBLE_DIVISOR();5311	iCost /= iDivisor;5312	iCost *= iDivisor;53135314	return iCost;5315}

Calls

Called by