void CvMap::updateMinOriginalStartDist(CvArea* pArea) { PROFILE_FUNC(); CvPlot* pStartingPlot; CvPlot* pLoopPlot; int iDist; int iI, iJ; for (iI = 0; iI < numPlotsINLINE(); iI++) { pLoopPlot = plotByIndexINLINE(iI); if (pLoopPlot->area() == pArea) { pLoopPlot->setMinOriginalStartDist(-1); } } for (iI = 0; iI < MAX_PLAYERS; iI++) { pStartingPlot = GET_PLAYER((PlayerTypes)iI).getStartingPlot(); if (pStartingPlot != NULL) { if (pStartingPlot->area() == pArea) { for (iJ = 0; iJ < numPlotsINLINE(); iJ++) { pLoopPlot = plotByIndexINLINE(iJ); if (pLoopPlot->area() == pArea) { //iDist = GC.getMapINLINE().calculatePathDistance(pStartingPlot, pLoopPlot); iDist = stepDistance(pStartingPlot->getX_INLINE(), pStartingPlot->getY_INLINE(), pLoopPlot->getX_INLINE(), pLoopPlot->getY_INLINE()); if (iDist != -1) { //int iCrowDistance = plotDistance(pStartingPlot->getX_INLINE(), pStartingPlot->getY_INLINE(), pLoopPlot->getX_INLINE(), pLoopPlot->getY_INLINE()); //iDist = std::min(iDist, iCrowDistance * 2); if ((pLoopPlot->getMinOriginalStartDist() == -1) || (iDist < pLoopPlot->getMinOriginalStartDist())) { pLoopPlot->setMinOriginalStartDist(iDist); } } } } } } } }