Browse Source

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

(cherry picked from commit 33eb28b570e132f63d7aaa451a732f3d0c9a10d6)
Tomasz Zieliński 2 năm trước cách đây
mục cha
commit
8d5cd6d072
1 tập tin đã thay đổi với 4 bổ sung4 xóa
  1. 4 4
      lib/rmg/CZonePlacer.cpp

+ 4 - 4
lib/rmg/CZonePlacer.cpp

@@ -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));
 			}