Bazaar developer reference

CvPlot::isFreshWater() const

Defined in
CvPlot.cpp, line 1199
Class
CvPlot
Hook name
CivHooks::CvPlot_isFreshWater

Hooks

static bool BeforeCvPlot_isFreshWater(const CvPlot* self, bool& result);static void AfterCvPlot_isFreshWater(const CvPlot* self, bool& result);static bool ReplaceCvPlot_isFreshWater(bool (*original)(const CvPlot*), const CvPlot* self);CivRegisterBefore<CivHooks::CvPlot_isFreshWater>(host, &BeforeCvPlot_isFreshWater);CivRegisterAfter<CivHooks::CvPlot_isFreshWater>(host, &AfterCvPlot_isFreshWater);CivRegisterReplace<CivHooks::CvPlot_isFreshWater>(host, &ReplaceCvPlot_isFreshWater);

Code

1198// XXX precalculate this???1199bool CvPlot::isFreshWater() const1200{1201	CvPlot* pLoopPlot;1202	int iDX, iDY;12031204	if(isWater() || isImpassable() || isMountain())1205		return false;12061207	if(isRiver())1208	{1209		return true;1210	}12111212	for(iDX = -1; iDX <= 1; iDX++)1213	{1214		for(iDY = -1; iDY <= 1; iDY++)1215		{1216			pLoopPlot	= plotXYWithRangeCheck(getX(), getY(), iDX, iDY, 1);12171218			if(pLoopPlot != NULL)1219			{1220				if(pLoopPlot->isLake())1221				{1222					return true;1223				}12241225				FeatureTypes feature_type = pLoopPlot->getFeatureType();12261227				if(feature_type != NO_FEATURE)1228				{1229					if(GC.getFeatureInfo(feature_type)->isAddsFreshWater())1230					{1231						return true;1232					}1233				}12341235#if defined(MOD_API_EXTENSIONS)1236				ImprovementTypes improvement_type = pLoopPlot->getImprovementType();12371238				if(improvement_type != NO_IMPROVEMENT)1239				{1240					if(GC.getImprovementInfo(improvement_type)->IsAddsFreshWater())1241					{1242						return true;1243					}1244				}12451246				if (pLoopPlot->isCity() && pLoopPlot->getPlotCity()->isAddsFreshWater())1247				{1248					return true;1249				}1250#endif1251			}1252		}1253	}12541255	return false;1256}

Calls

Called by