1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-11-27 22:49:25 +02:00

First attempt to enforce curved paths

This commit is contained in:
Tomasz Zieliński
2024-11-21 22:00:24 +01:00
parent 03273ed324
commit 855ab0f0e9
5 changed files with 55 additions and 11 deletions

View File

@@ -190,4 +190,24 @@ const Area & Path::getPathArea() const
return dPath;
}
Path::MoveCostFunction Path::createCurvedCostFunction(const Area & border)
{
// Capture by value to ensure the Area object persists
return [border = border](const int3& src, const int3& dst) -> float
{
// Route main roads far from border
//float ret = dst.dist2d(src);
float ret = dst.dist2d(src);
float dist = border.distanceSqr(dst);
//int3 closestTile = border.nearest(dst);
//float dist = dst.chebdist2d(closestTile);
if(dist > 1.0f)
{
ret /= dist * dist;
}
return ret;
};
}
VCMI_LIB_NAMESPACE_END