Bazaar developer reference

CvCity::GetNumResourceLocal(ResourceTypes, bool)

Defined in
CvCity.cpp, line 3340
Class
CvCity
Hook name
CivHooks::CvCity_GetNumResourceLocal

Hooks

static bool BeforeCvCity_GetNumResourceLocal(CvCity* self, ResourceTypes eResource, bool bImproved, int& result);static void AfterCvCity_GetNumResourceLocal(CvCity* self, ResourceTypes eResource, bool bImproved, int& result);static int ReplaceCvCity_GetNumResourceLocal(int (*original)(CvCity*, ResourceTypes, bool), CvCity* self, ResourceTypes eResource, bool bImproved);CivRegisterBefore<CivHooks::CvCity_GetNumResourceLocal>(host, &BeforeCvCity_GetNumResourceLocal);CivRegisterAfter<CivHooks::CvCity_GetNumResourceLocal>(host, &AfterCvCity_GetNumResourceLocal);CivRegisterReplace<CivHooks::CvCity_GetNumResourceLocal>(host, &ReplaceCvCity_GetNumResourceLocal);

Code

3339#if defined(MOD_API_EXTENSIONS) || defined(MOD_TRADE_WONDER_RESOURCE_ROUTES)3340int CvCity::GetNumResourceLocal(ResourceTypes eResource, bool bImproved)3341{3342	VALIDATE_OBJECT3343	CvAssertMsg(eResource > -1 && eResource < GC.getNumResourceInfos(), "Invalid resource index.");33443345	if (!bImproved) {3346		return m_paiNumResourcesLocal[eResource];3347	} else {3348		int iCount = 0;3349		CvImprovementEntry* pImprovement = GC.GetGameImprovements()->GetImprovementForResource(eResource);3350		CvCityCitizens* pCityCitizens = GetCityCitizens();33513352#if defined(MOD_GLOBAL_CITY_WORKING)3353		for(int iI = 0; iI < GetNumWorkablePlots(); iI++)3354#else3355		for(int iI = 0; iI < NUM_CITY_PLOTS; iI++)3356#endif3357		{3358			CvPlot* pLoopPlot = pCityCitizens->GetCityPlotFromIndex(iI);33593360			if (pLoopPlot != NULL && pLoopPlot->getWorkingCity() == this) {3361				if (pLoopPlot->getResourceType() == eResource && pLoopPlot->getImprovementType() == ((ImprovementTypes) pImprovement->GetID()) && !pLoopPlot->IsImprovementPillaged()) {3362					++iCount;3363				}3364			}3365		}3366		3367		return iCount;3368	}3369}

Calls

Called by