Bazaar developer reference

CvCityCulture::GetThemingBonus(BuildingClassTypes) const

Defined in
CvCultureClasses.cpp, line 5134
Class
CvCityCulture
Hook name
CivHooks::CvCityCulture_GetThemingBonus

Hooks

static bool BeforeCvCityCulture_GetThemingBonus(const CvCityCulture* self, BuildingClassTypes eBuildingClass, int& result);static void AfterCvCityCulture_GetThemingBonus(const CvCityCulture* self, BuildingClassTypes eBuildingClass, int& result);static int ReplaceCvCityCulture_GetThemingBonus(int (*original)(const CvCityCulture*, BuildingClassTypes), const CvCityCulture* self, BuildingClassTypes eBuildingClass);CivRegisterBefore<CivHooks::CvCityCulture_GetThemingBonus>(host, &BeforeCvCityCulture_GetThemingBonus);CivRegisterAfter<CivHooks::CvCityCulture_GetThemingBonus>(host, &AfterCvCityCulture_GetThemingBonus);CivRegisterReplace<CivHooks::CvCityCulture_GetThemingBonus>(host, &ReplaceCvCityCulture_GetThemingBonus);

Code

5134int CvCityCulture::GetThemingBonus(BuildingClassTypes eBuildingClass) const5135{5136	CvPlayer &kPlayer = GET_PLAYER(m_pCity->getOwner());5137	int iRtnValue = 0;51385139	if (IsThemingBonusPossible(eBuildingClass))5140	{5141		int iIndex = GetThemingBonusIndex(eBuildingClass);5142		if (iIndex >= 0)5143		{5144			BuildingTypes eBuilding = (BuildingTypes)kPlayer.getCivilizationInfo().getCivilizationBuildings(eBuildingClass);5145			CvBuildingEntry *pkBuilding = GC.GetGameBuildings()->GetEntry(eBuilding);5146			if (pkBuilding)5147			{5148				int iBonus = pkBuilding->GetThemingBonusInfo(iIndex)->GetBonus();5149				int iModifier = kPlayer.GetPlayerPolicies()->GetNumericModifier(POLICYMOD_THEMING_BONUS);5150				iRtnValue = iBonus * (100 + iModifier) / 100;5151				if (m_pCity->isCapital())5152				{5153					iModifier = kPlayer.GetPlayerTraits()->GetCapitalThemingBonusModifier();5154					if (iModifier > 0)5155					{5156						iRtnValue = iRtnValue * (100 + iModifier) / 100;51575158#if !defined(NO_ACHIEVEMENTS)5159						if (kPlayer.isHuman() && !GC.getGame().isGameMultiPlayer() && iRtnValue >= 16)5160						{5161							gDLL->UnlockAchievement(ACHIEVEMENT_XP2_40);5162						}5163#endif5164					}5165				}5166			}5167		}5168	}51695170	return iRtnValue;5171}

Calls

Called by