CvCityBuildings::GetNumAvailableGreatWorkSlots() const
- Defined in
- CvBuildingClasses.cpp, line 3150
- Class
- CvCityBuildings
- Hook name
CivHooks::CvCityBuildings_GetNumAvailableGreatWorkSlots
Hooks
static bool BeforeCvCityBuildings_GetNumAvailableGreatWorkSlots(const CvCityBuildings* self, int& result);static void AfterCvCityBuildings_GetNumAvailableGreatWorkSlots(const CvCityBuildings* self, int& result);static int ReplaceCvCityBuildings_GetNumAvailableGreatWorkSlots(int (*original)(const CvCityBuildings*), const CvCityBuildings* self);CivRegisterBefore<CivHooks::CvCityBuildings_GetNumAvailableGreatWorkSlots>(host, &BeforeCvCityBuildings_GetNumAvailableGreatWorkSlots);CivRegisterAfter<CivHooks::CvCityBuildings_GetNumAvailableGreatWorkSlots>(host, &AfterCvCityBuildings_GetNumAvailableGreatWorkSlots);CivRegisterReplace<CivHooks::CvCityBuildings_GetNumAvailableGreatWorkSlots>(host, &ReplaceCvCityBuildings_GetNumAvailableGreatWorkSlots);
Code
3149/// Accessor: How many Great Work slots of this type are in the city?3150int CvCityBuildings::GetNumAvailableGreatWorkSlots() const3151{3152 int iCount = 0;31533154 for(int iI = 0; iI < GC.getNumBuildingClassInfos(); iI++)3155 {3156 BuildingClassTypes eLoopBuildingClass = (BuildingClassTypes) iI;3157 CvCivilizationInfo *pkCivInfo = GC.getCivilizationInfo(m_pCity->getCivilizationType());3158 if (pkCivInfo)3159 {3160 BuildingTypes eBuilding = (BuildingTypes)pkCivInfo->getCivilizationBuildings(eLoopBuildingClass);3161 if(NO_BUILDING != eBuilding)3162 {3163 if (GetNumBuilding(eBuilding) > 0)3164 {3165 CvBuildingEntry *pkBuilding = GC.getBuildingInfo(eBuilding);3166 if (pkBuilding)3167 {3168 int iNumSlots = pkBuilding->GetGreatWorkCount();3169 int iNumOpenSlots = iNumSlots - GetNumGreatWorksInBuilding(eLoopBuildingClass);3170 if(iNumOpenSlots > 0)3171 {3172 iCount += iNumOpenSlots;3173 }3174 }3175 }3176 }3177 }3178 }31793180 return iCount;3181}
Calls
- CvBuildingEntry::GetGreatWorkCount() const
- CvCity::getCivilizationType() const
- CvCityBuildings::GetNumBuilding(BuildingTypes) const
- CvCityBuildings::GetNumGreatWorksInBuilding(BuildingClassTypes) const
- CvCivilizationInfo::getCivilizationBuildings(int) const
- CvGlobals::getBuildingInfo(BuildingTypes)
- CvGlobals::getCivilizationInfo(CivilizationTypes)
- CvGlobals::getNumBuildingClassInfos()