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
- CvCity::isAddsFreshWater() const
- CvFeatureInfo::isAddsFreshWater() const
- CvGlobals::getFeatureInfo(FeatureTypes)
- CvGlobals::getImprovementInfo(ImprovementTypes)
- CvImprovementEntry::IsAddsFreshWater() const
- CvPlot::getFeatureType() const
- CvPlot::getImprovementType() const
- CvPlot::getPlotCity() const
- CvPlot::getX() const
- CvPlot::getY() const
- CvPlot::isCity() const
- CvPlot::isImpassable() const
- CvPlot::isLake() const
- CvPlot::isMountain() const
- CvPlot::isRiver() const
- CvPlot::isWater() const
- plotXYWithRangeCheck(int, int, int, int, int)
Called by
- CvCity::isValidBuildingLocation(BuildingTypes) const
- CvMap::findWater(CvPlot *, int, bool)
- CvPlot::calculateImprovementYieldChange(ImprovementTypes, YieldTypes, PlayerTypes, bool, RouteTypes) const
- CvPlot::calculateNatureYield(YieldTypes, TeamTypes, bool) const
- CvPlot::canHaveImprovement(ImprovementTypes, TeamTypes, bool) const
- CvCitySiteEvaluator::CanFound(CvPlot *, const CvPlayer *, bool) const
- CvLuaPlot::lIsFreshWater(lua_State *)