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
- CultureHelpers::GetThemingBonusIndex(PlayerTypes, CvBuildingEntry *, vector<int> &)
- CvBuildingEntry::GetGreatWorkCount() const
- CvCity::GetCityBuildings() const
- CvCity::getCivilizationType() const
- CvCity::getOwner() const
- CvCityBuildings::GetBuildingGreatWork(BuildingClassTypes, int) const
- CvCityBuildings::GetNumBuilding(BuildingTypes) const
- CvCityBuildings::GetNumGreatWorksInBuilding(BuildingClassTypes) const
- CvCivilizationInfo::getCivilizationBuildings(int) const
- CvGlobals::getBuildingInfo(BuildingTypes)
- CvGlobals::getCivilizationInfo(CivilizationTypes)
std::vector::push_backstd::vector::vector