Bazaar developer reference

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

Called by