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); } } } } } } } }
int CvMap::maxStepDistance() { return std::max(1, stepDistance(0, 0, ((isWrapXINLINE()) ? (getGridWidthINLINE() / 2) : (getGridWidthINLINE() - 1)), ((isWrapYINLINE()) ? (getGridHeightINLINE() / 2) : (getGridHeightINLINE() - 1)))); }
int cyStepDistance(int iX1, int iY1, int iX2, int iY2) { return stepDistance(iX1, iY1, iX2, iY2); }