diff --git a/lib/rmg/CZonePlacer.cpp b/lib/rmg/CZonePlacer.cpp index fe72425e1..8c185a10e 100644 --- a/lib/rmg/CZonePlacer.cpp +++ b/lib/rmg/CZonePlacer.cpp @@ -349,10 +349,11 @@ void CZonePlacer::placeOnGrid(CRandomGenerator* rand) auto zone = grid[x][y]; if (zone) { - auto targetX = rand->nextDouble(x - 0.5f, x + 0.5f); - vstd::clamp(targetX, 0, gridSize); - auto targetY = rand->nextDouble(y - 0.5f, y + 0.5f); - vstd::clamp(targetY, 0, gridSize); + //i.e. for grid size 5 we get range (0.5 - 4.5) + auto targetX = rand->nextDouble(x + 0.5f, x + 0.5f); + vstd::clamp(targetX, 0.5, gridSize - 0.5); + auto targetY = rand->nextDouble(y + 0.5f, y + 0.5f); + vstd::clamp(targetY, 0.5, gridSize - 0.5); zone->setCenter(float3(targetX / gridSize, targetY / gridSize, zone->getPos().z)); }