diff --git a/binaries/data/mods/public/maps/random/jebel_barkal.js b/binaries/data/mods/public/maps/random/jebel_barkal.js
index e06d945a54..be9c2aa47f 100644
a
|
b
|
Engine.SetProgress(60);
|
665 | 665 | // The city is a circle segment of this maximum size |
666 | 666 | g_Map.log("Computing city grid"); |
667 | 667 | var gridCenter = new Vector2D(0, fractionToTiles(0.3)).rotate(-riverAngle).add(mapCenter).round(); |
668 | | var gridMaxAngle = scaleByMapSize(Math.PI / 3, Math.PI); |
| 668 | var gridMaxAngle = Math.min(scaleByMapSize(1/3, 1), 2/3) * Math.PI; |
669 | 669 | var gridStartAngle = -Math.PI / 2 -gridMaxAngle / 2 + riverAngle; |
670 | 670 | var gridRadius = y => hillRadius + 18 * y; |
671 | 671 | |
… |
… |
var areaCityPaths = new Area(areasCityPaths.reduce((points, area) => points.conc
|
976 | 976 | var areaRoads = []; |
977 | 977 | for (let roadStart of roadStartLocations) |
978 | 978 | { |
979 | | if (areaRoads.length >= scaleByMapSize(2, 4)) |
| 979 | if (areaRoads.length >= scaleByMapSize(2, 5)) |
980 | 980 | break; |
981 | 981 | |
982 | 982 | let closestPoint = areaCityPaths.getClosestPointTo(roadStart); |
… |
… |
for (let roadStart of roadStartLocations)
|
987 | 987 | new PathPlacer( |
988 | 988 | Vector2D.add(closestPoint, new Vector2D(0, 3/4 * mapSize).rotate(closestPoint.angleTo(roadStart))), |
989 | 989 | roadStart, |
990 | | 4, |
| 990 | scaleByMapSize(5, 3), |
991 | 991 | 0.1, |
992 | 992 | 5, |
993 | 993 | 0.5, |
diff --git a/binaries/data/mods/public/maps/random/rmgen-common/wall_builder.js b/binaries/data/mods/public/maps/random/rmgen-common/wall_builder.js
index 4ed8b39749..5273d4bec2 100644
a
|
b
|
function placeCircularWall(center, radius, wallPart, style, playerId = 0, orient
|
619 | 619 | |
620 | 620 | // Placement |
621 | 621 | if (wallEle.templateName && g_Map.inMapBounds(place) && constraint.allows(place.clone().floor())) |
622 | | entities.push(g_Map.placeEntityPassable(wallEle.templateName, playerId, place, placeAngle + wallEle.angle)); |
| 622 | { |
| 623 | let entity = g_Map.placeEntityPassable(wallEle.templateName, playerId, place, placeAngle + wallEle.angle); |
| 624 | if (entity) |
| 625 | entities.push(entity); |
| 626 | } |
623 | 627 | |
624 | 628 | // Prepare for the next wall element |
625 | 629 | actualAngle += addAngle; |
… |
… |
function placeCircularWall(center, radius, wallPart, style, playerId = 0, orient
|
634 | 638 | let place = Vector2D.average([position, target]); |
635 | 639 | let placeAngle = actualAngle + addAngle / 2; |
636 | 640 | if (g_Map.inMapBounds(place) && constraint.allows(place.clone().floor())) |
637 | | entities.push(g_Map.placeEntityPassable(wallEle.templateName, playerId, place, placeAngle + wallEle.angle)); |
| 641 | { |
| 642 | let entity = g_Map.placeEntityPassable(wallEle.templateName, playerId, place, placeAngle + wallEle.angle); |
| 643 | if (entity) |
| 644 | entities.push(entity); |
| 645 | } |
638 | 646 | } |
639 | 647 | |
640 | 648 | return entities; |