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
- CvBaseInfo::GetID() const
- CvCity::GetCityCitizens() const
- CvCity::GetNumWorkablePlots(int) const
- CvCityCitizens::GetCityPlotFromIndex(int) const
- CvGlobals::GetGameImprovements() const
- CvImprovementXMLEntries::GetImprovementForResource(int)
- CvPlot::getImprovementType() const
- CvPlot::getResourceType(TeamTypes) const
- CvPlot::getWorkingCity() const
- CvPlot::IsImprovementPillaged() const
FAutoVariable::operator[]