Bazaar developer reference

CvSiteEvaluatorForSettler::PlotFoundValue(CvPlot *, CvPlayer *, YieldTypes, bool)

Defined in
CvSiteEvaluationClasses.cpp, line 1105
Class
CvSiteEvaluatorForSettler
Hook name
CivHooks::CvSiteEvaluatorForSettler_PlotFoundValue
Overrides
CvCitySiteEvaluator::PlotFoundValue(CvPlot *, CvPlayer *, YieldTypes, bool)

Hooks

static bool BeforeCvSiteEvaluatorForSettler_PlotFoundValue(CvSiteEvaluatorForSettler* self, CvPlot* pPlot, CvPlayer* pPlayer, YieldTypes eYield, bool bCoastOnly, int& result);static void AfterCvSiteEvaluatorForSettler_PlotFoundValue(CvSiteEvaluatorForSettler* self, CvPlot* pPlot, CvPlayer* pPlayer, YieldTypes eYield, bool bCoastOnly, int& result);static int ReplaceCvSiteEvaluatorForSettler_PlotFoundValue(int (*original)(CvSiteEvaluatorForSettler*, CvPlot*, CvPlayer*, YieldTypes, bool), CvSiteEvaluatorForSettler* self, CvPlot* pPlot, CvPlayer* pPlayer, YieldTypes eYield, bool bCoastOnly);CivRegisterBefore<CivHooks::CvSiteEvaluatorForSettler_PlotFoundValue>(host, &BeforeCvSiteEvaluatorForSettler_PlotFoundValue);CivRegisterAfter<CivHooks::CvSiteEvaluatorForSettler_PlotFoundValue>(host, &AfterCvSiteEvaluatorForSettler_PlotFoundValue);CivRegisterReplace<CivHooks::CvSiteEvaluatorForSettler_PlotFoundValue>(host, &ReplaceCvSiteEvaluatorForSettler_PlotFoundValue);

Code

1104/// Value of this site for a settler1105int CvSiteEvaluatorForSettler::PlotFoundValue(CvPlot* pPlot, CvPlayer* pPlayer, YieldTypes eYield, bool bCoastOnly)1106{1107	CvAssert(pPlot);1108	if(!pPlot) return 0;11091110	if(!CanFound(pPlot, pPlayer, true))1111	{1112		return 0;1113	}11141115	// Is there any reason this site doesn't work for a settler?1116	//1117	// First must be on coast if settling a new continent1118	bool bIsCoastal = pPlot->isCoastalLand(GC.getMIN_WATER_SIZE_FOR_OCEAN());1119	CvArea* pArea = pPlot->area();1120	CvAssert(pArea);1121	if(!pArea) return 0;1122	int iNumAreaCities = pArea->getCitiesPerPlayer(pPlayer->GetID());1123	if(bCoastOnly && !bIsCoastal && iNumAreaCities == 0)1124	{1125		return 0;1126	}11271128	// Seems okay for a settler, use base class to determine exact value1129	else1130	{1131		// if the civ gets a benefit from settling on a new continent (ie: Indonesia)1132		// double the fertility of that plot1133		int iLuxuryModifier = 0;1134		if (pPlayer->GetPlayerTraits()->WillGetUniqueLuxury(pArea))1135		{1136			iLuxuryModifier = CvCitySiteEvaluator::PlotFoundValue(pPlot, pPlayer, eYield) * 2;1137			return iLuxuryModifier;1138		}1139		else1140		{1141			return CvCitySiteEvaluator::PlotFoundValue(pPlot, pPlayer, eYield);1142		}1143	}1144}

Calls

Called by