Bazaar developer reference

CvCity::HasWorkedImprovement(ImprovementTypes) const

Defined in
CvCity.cpp, line 17316
Class
CvCity
Hook name
CivHooks::CvCity_HasWorkedImprovement

Hooks

static bool BeforeCvCity_HasWorkedImprovement(const CvCity* self, ImprovementTypes iImprovementType, bool& result);static void AfterCvCity_HasWorkedImprovement(const CvCity* self, ImprovementTypes iImprovementType, bool& result);static bool ReplaceCvCity_HasWorkedImprovement(bool (*original)(const CvCity*, ImprovementTypes), const CvCity* self, ImprovementTypes iImprovementType);CivRegisterBefore<CivHooks::CvCity_HasWorkedImprovement>(host, &BeforeCvCity_HasWorkedImprovement);CivRegisterAfter<CivHooks::CvCity_HasWorkedImprovement>(host, &AfterCvCity_HasWorkedImprovement);CivRegisterReplace<CivHooks::CvCity_HasWorkedImprovement>(host, &ReplaceCvCity_HasWorkedImprovement);

Code

17316bool CvCity::HasWorkedImprovement(ImprovementTypes iImprovementType) const17317{17318	int iX = getX(); int iY = getY(); int iOwner = getOwner();1731917320#if defined(MOD_GLOBAL_CITY_WORKING)17321	for (int iCityPlotLoop = 0; iCityPlotLoop < GetNumWorkablePlots(); iCityPlotLoop++)17322#else17323	for (int iCityPlotLoop = 0; iCityPlotLoop < NUM_CITY_PLOTS; iCityPlotLoop++)17324#endif17325	{17326		CvPlot* pLoopPlot = plotCity(iX, iY, iCityPlotLoop);1732717328		// Invalid plot or not owned by this player17329		if (pLoopPlot == NULL || pLoopPlot->getOwner() != iOwner) {17330			continue;17331		}1733217333		// Not being worked by this city17334		if (pLoopPlot->getWorkingCity() != this || !pLoopPlot->isBeingWorked()) {17335			continue;17336		}1733717338		if (pLoopPlot->HasImprovement(iImprovementType)) {17339			return true;17340		}17341	}1734217343	return false;17344}

Calls

Called by