CvPlayerCulture::ControlsGreatWork(int)
- Defined in
- CvCultureClasses.cpp, line 992
- Class
- CvPlayerCulture
- Hook name
CivHooks::CvPlayerCulture_ControlsGreatWork
Hooks
static bool BeforeCvPlayerCulture_ControlsGreatWork(CvPlayerCulture* self, int iIndex, bool& result);static void AfterCvPlayerCulture_ControlsGreatWork(CvPlayerCulture* self, int iIndex, bool& result);static bool ReplaceCvPlayerCulture_ControlsGreatWork(bool (*original)(CvPlayerCulture*, int), CvPlayerCulture* self, int iIndex);CivRegisterBefore<CivHooks::CvPlayerCulture_ControlsGreatWork>(host, &BeforeCvPlayerCulture_ControlsGreatWork);CivRegisterAfter<CivHooks::CvPlayerCulture_ControlsGreatWork>(host, &AfterCvPlayerCulture_ControlsGreatWork);CivRegisterReplace<CivHooks::CvPlayerCulture_ControlsGreatWork>(host, &ReplaceCvPlayerCulture_ControlsGreatWork);
Code
991/// Does this player have this great work in one of their buildings992bool CvPlayerCulture::ControlsGreatWork (int iIndex)993{994 CvCity* pLoopCity = NULL;995 int iLoop = 0;996997 for(pLoopCity = m_pPlayer->firstCity(&iLoop); pLoopCity != NULL; pLoopCity = m_pPlayer->nextCity(&iLoop))998 {999 for(int iBuildingClassLoop = 0; iBuildingClassLoop < GC.getNumBuildingClassInfos(); iBuildingClassLoop++)1000 {1001 CvCivilizationInfo& playerCivilizationInfo = m_pPlayer->getCivilizationInfo();1002 BuildingTypes eBuilding = (BuildingTypes)playerCivilizationInfo.getCivilizationBuildings((BuildingClassTypes)iBuildingClassLoop);1003 if (eBuilding != NO_BUILDING)1004 {1005 CvBuildingEntry *pkBuilding = GC.getBuildingInfo(eBuilding);1006 if (pkBuilding)1007 {1008 if (pLoopCity->GetCityBuildings()->GetNumBuilding(eBuilding) > 0)1009 {1010 int iNumSlots = pkBuilding->GetGreatWorkCount();1011 for (int iI = 0; iI < iNumSlots; iI++)1012 {1013 int iGreatWorkIndex = pLoopCity->GetCityBuildings()->GetBuildingGreatWork((BuildingClassTypes)iBuildingClassLoop, iI);1014 if (iGreatWorkIndex == iIndex)1015 {1016 return true;1017 }1018 }1019 }1020 }1021 }1022 }1023 }10241025 return false; 1026}
Calls
- CvBuildingEntry::GetGreatWorkCount() const
- CvCity::GetCityBuildings() const
- CvCityBuildings::GetBuildingGreatWork(BuildingClassTypes, int) const
- CvCityBuildings::GetNumBuilding(BuildingTypes) const
- CvCivilizationInfo::getCivilizationBuildings(int) const
- CvGlobals::getBuildingInfo(BuildingTypes)
- CvGlobals::getNumBuildingClassInfos()
- CvPlayer::firstCity(int *, bool)
- CvPlayer::getCivilizationInfo() const
- CvPlayer::nextCity(int *, bool)