Bazaar developer reference

CvCityCulture::GetThemingBonusIndex(BuildingClassTypes) const

Defined in
CvCultureClasses.cpp, line 5404
Class
CvCityCulture
Hook name
CivHooks::CvCityCulture_GetThemingBonusIndex

Hooks

static bool BeforeCvCityCulture_GetThemingBonusIndex(const CvCityCulture* self, BuildingClassTypes eBuildingClass, int& result);static void AfterCvCityCulture_GetThemingBonusIndex(const CvCityCulture* self, BuildingClassTypes eBuildingClass, int& result);static int ReplaceCvCityCulture_GetThemingBonusIndex(int (*original)(const CvCityCulture*, BuildingClassTypes), const CvCityCulture* self, BuildingClassTypes eBuildingClass);CivRegisterBefore<CivHooks::CvCityCulture_GetThemingBonusIndex>(host, &BeforeCvCityCulture_GetThemingBonusIndex);CivRegisterAfter<CivHooks::CvCityCulture_GetThemingBonusIndex>(host, &AfterCvCityCulture_GetThemingBonusIndex);CivRegisterReplace<CivHooks::CvCityCulture_GetThemingBonusIndex>(host, &ReplaceCvCityCulture_GetThemingBonusIndex);

Code

5403/// Which of the theming bonuses for this building is active5404int CvCityCulture::GetThemingBonusIndex(BuildingClassTypes eBuildingClass) const5405{  5406	vector<int> aGreatWorkIndices;5407	CvCivilizationInfo *pkCivInfo = GC.getCivilizationInfo(m_pCity->getCivilizationType());5408	if (pkCivInfo)5409	{5410		BuildingTypes eBuilding = (BuildingTypes)pkCivInfo->getCivilizationBuildings(eBuildingClass);5411		if(NO_BUILDING != eBuilding)5412		{5413			if (m_pCity->GetCityBuildings()->GetNumBuilding(eBuilding) > 0)5414			{5415				CvBuildingEntry *pkBuilding = GC.getBuildingInfo(eBuilding);5416				if (pkBuilding)5417				{5418					int iNumSlots = pkBuilding->GetGreatWorkCount();5419					if (m_pCity->GetCityBuildings()->GetNumGreatWorksInBuilding(eBuildingClass) < iNumSlots)5420					{5421						return -1;  // No theming bonus if some slots still empty5422					}54235424					// Store info on the attributes of all our Great Works5425					for (int iI = 0; iI < iNumSlots; iI++)5426					{5427						int iGreatWork = m_pCity->GetCityBuildings()->GetBuildingGreatWork(eBuildingClass, iI);5428						aGreatWorkIndices.push_back(iGreatWork);5429					}54305431					return CultureHelpers::GetThemingBonusIndex(m_pCity->getOwner(), pkBuilding, aGreatWorkIndices);5432				}5433			}5434		}5435	}5436	return -1;5437}

Calls

Called by