1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-26 22:57:00 +02:00

Randomize starting positions a bit so zones don't fall exactly on the grid.

This commit is contained in:
Tomasz Zieliński 2023-04-17 15:09:08 +02:00
parent c13019059f
commit 33eb28b570

View File

@ -276,10 +276,10 @@ void CZonePlacer::placeOnGrid(CRandomGenerator* rand)
if (zone)
{
//i.e. for grid size 5 we get range (0.5 - 4.5)
auto targetX = rand->nextDouble(x + 0.5f, x + 0.5f);
std::clamp(targetX, 0.5, gridSize - 0.5);
auto targetY = rand->nextDouble(y + 0.5f, y + 0.5f);
std::clamp(targetY, 0.5, gridSize - 0.5);
auto targetX = rand->nextDouble(x + 0.25f, x + 0.75f);
vstd::abetween(targetX, 0.5, gridSize - 0.5);
auto targetY = rand->nextDouble(y + 0.25f, y + 0.75f);
vstd::abetween(targetY, 0.5, gridSize - 0.5);
zone->setCenter(float3(targetX / gridSize, targetY / gridSize, zone->getPos().z));
}