CvCityBuildings::GetNextAvailableGreatWorkSlot(BuildingClassTypes *, int *) const
- Defined in
- CvBuildingClasses.cpp, line 3221
- Class
- CvCityBuildings
- Hook name
CivHooks::CvCityBuildings_GetNextAvailableGreatWorkSlot
Hooks
static bool BeforeCvCityBuildings_GetNextAvailableGreatWorkSlot(const CvCityBuildings* self, BuildingClassTypes * eBuildingClass, int * iSlot, bool& result);static void AfterCvCityBuildings_GetNextAvailableGreatWorkSlot(const CvCityBuildings* self, BuildingClassTypes * eBuildingClass, int * iSlot, bool& result);static bool ReplaceCvCityBuildings_GetNextAvailableGreatWorkSlot(bool (*original)(const CvCityBuildings*, BuildingClassTypes *, int *), const CvCityBuildings* self, BuildingClassTypes * eBuildingClass, int * iSlot);CivRegisterBefore<CivHooks::CvCityBuildings_GetNextAvailableGreatWorkSlot>(host, &BeforeCvCityBuildings_GetNextAvailableGreatWorkSlot);CivRegisterAfter<CivHooks::CvCityBuildings_GetNextAvailableGreatWorkSlot>(host, &AfterCvCityBuildings_GetNextAvailableGreatWorkSlot);CivRegisterReplace<CivHooks::CvCityBuildings_GetNextAvailableGreatWorkSlot>(host, &ReplaceCvCityBuildings_GetNextAvailableGreatWorkSlot);
Code
3220/// Accessor: Is there a Great Work slot of this type somewhere in the city?3221bool CvCityBuildings::GetNextAvailableGreatWorkSlot(BuildingClassTypes *eBuildingClass, int *iSlot) const3222{3223 if (eBuildingClass && iSlot)3224 {3225 for(int iI = 0; iI < GC.getNumBuildingClassInfos(); iI++)3226 {3227 BuildingClassTypes eLoopBuildingClass = (BuildingClassTypes) iI;3228 BuildingTypes eBuilding = (BuildingTypes)GC.getCivilizationInfo(m_pCity->getCivilizationType())->getCivilizationBuildings(eLoopBuildingClass);3229 if(NO_BUILDING != eBuilding)3230 {3231 if (GetNumBuilding(eBuilding) > 0)3232 {3233 int iNumSlots = GC.getBuildingInfo(eBuilding)->GetGreatWorkCount();3234 for (int jJ = 0; jJ < iNumSlots; jJ++)3235 {3236 if (GetBuildingGreatWork (eLoopBuildingClass, jJ) == NO_GREAT_WORK)3237 {3238 *eBuildingClass = eLoopBuildingClass;3239 *iSlot = jJ;3240 return true;3241 }3242 }3243 }3244 }3245 }3246 }32473248 return false;3249}
Calls
- CvBuildingEntry::GetGreatWorkCount() const
- CvCity::getCivilizationType() const
- CvCityBuildings::GetBuildingGreatWork(BuildingClassTypes, int) const
- CvCityBuildings::GetNumBuilding(BuildingTypes) const
- CvCivilizationInfo::getCivilizationBuildings(int) const
- CvGlobals::getBuildingInfo(BuildingTypes)
- CvGlobals::getCivilizationInfo(CivilizationTypes)
- CvGlobals::getNumBuildingClassInfos()