void CvMapGenerator::addLakes() { PROFILE_FUNC(); if (gDLL->getPythonIFace()->pythonAddLakes() && !gDLL->getPythonIFace()->pythonUsingDefaultImpl()) { return; // Python override } gDLL->NiTextOut("Adding Lakes..."); CvPlot* pLoopPlot; int iI; for (iI = 0; iI < GC.getMapINLINE().numPlotsINLINE(); iI++) { gDLL->callUpdater(); pLoopPlot = GC.getMapINLINE().plotByIndexINLINE(iI); FAssertMsg(pLoopPlot != NULL, "LoopPlot is not assigned a valid value"); if (!(pLoopPlot->isWater())) { if (!(pLoopPlot->isCoastalLand())) { if (!(pLoopPlot->isRiver())) { if (GC.getGameINLINE().getMapRandNum(GC.getXMLval(XML_LAKE_PLOT_RAND), "addLakes") == 0) { pLoopPlot->setPlotType(PLOT_OCEAN); } } } } } }
//"Check plots for wetlands or seaWater. Returns true if found" bool CvMap::findWater(CvPlot* pPlot, int iRange, bool bFreshWater) { PROFILE_FUNC(); for (int iDX = -(iRange); iDX <= iRange; iDX++) { for (int iDY = -(iRange); iDY <= iRange; iDY++) { CvPlot* pLoopPlot = plotXY(pPlot->getX_INLINE(), pPlot->getY_INLINE(), iDX, iDY); if (pLoopPlot != NULL) { if (bFreshWater) { if (pLoopPlot->isRiver()) { return true; } } else { if (pLoopPlot->isWater()) { return true; } } } } } return false; }