Bazaar developer reference

CvReligionAI::ScoreBeliefAtPlot(CvBeliefEntry *, CvPlot *)

Defined in
CvReligionClasses.cpp, line 6193
Class
CvReligionAI
Hook name
CivHooks::CvReligionAI_ScoreBeliefAtPlot

Hooks

static bool BeforeCvReligionAI_ScoreBeliefAtPlot(CvReligionAI* self, CvBeliefEntry* pEntry, CvPlot* pPlot, int& result);static void AfterCvReligionAI_ScoreBeliefAtPlot(CvReligionAI* self, CvBeliefEntry* pEntry, CvPlot* pPlot, int& result);static int ReplaceCvReligionAI_ScoreBeliefAtPlot(int (*original)(CvReligionAI*, CvBeliefEntry*, CvPlot*), CvReligionAI* self, CvBeliefEntry* pEntry, CvPlot* pPlot);CivRegisterBefore<CivHooks::CvReligionAI_ScoreBeliefAtPlot>(host, &BeforeCvReligionAI_ScoreBeliefAtPlot);CivRegisterAfter<CivHooks::CvReligionAI_ScoreBeliefAtPlot>(host, &AfterCvReligionAI_ScoreBeliefAtPlot);CivRegisterReplace<CivHooks::CvReligionAI_ScoreBeliefAtPlot>(host, &ReplaceCvReligionAI_ScoreBeliefAtPlot);

Code

6192/// AI's evaluation of this belief's usefulness at this one plot6193int CvReligionAI::ScoreBeliefAtPlot(CvBeliefEntry* pEntry, CvPlot* pPlot)6194{6195	int iRtnValue = 0;61966197	for(int iI = 0; iI < NUM_YIELD_TYPES; iI++)6198	{6199		// Terrain6200		TerrainTypes eTerrain = pPlot->getTerrainType();6201		if(eTerrain != NO_TERRAIN)6202		{6203			iRtnValue += pEntry->GetTerrainYieldChange(eTerrain, iI);6204		}62056206#if defined(MOD_RELIGION_PLOT_YIELDS)6207		if (MOD_RELIGION_PLOT_YIELDS) {6208			// Plot6209			PlotTypes ePlot = pPlot->getPlotType();6210			if(ePlot != NO_PLOT)6211			{6212				iRtnValue += pEntry->GetPlotYieldChange(ePlot, iI);6213			}6214		}6215#endif62166217		// Feature6218		FeatureTypes eFeature = pPlot->getFeatureType();6219		if(eFeature != NO_FEATURE)6220		{6221			iRtnValue += pEntry->GetFeatureYieldChange(eFeature, iI);62226223			if(pPlot->IsNaturalWonder())6224			{6225				iRtnValue += pEntry->GetYieldChangeNaturalWonder(iI);6226				iRtnValue += (pEntry->GetYieldModifierNaturalWonder(iI) / 25);6227			}6228		}62296230		// Resource6231		ResourceTypes eResource = pPlot->getResourceType();6232		if(eResource != NO_RESOURCE)6233		{6234			iRtnValue += pEntry->GetResourceYieldChange(eResource, iI);62356236			// Improvement6237			int iNumImprovementInfos = GC.getNumImprovementInfos();6238			for(int jJ = 0; jJ < iNumImprovementInfos; jJ++)6239			{6240				if(pPlot->canHaveImprovement((ImprovementTypes)jJ, m_pPlayer->getTeam()))6241				{6242					iRtnValue += (pEntry->GetImprovementYieldChange((ImprovementTypes)jJ, (YieldTypes)iI) * 2);6243				}6244			}6245		}6246	}62476248	return iRtnValue;6249}

Calls

Called by