mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-06-20 20:19:35 +01:00
(svn r694) Make the town sometimes build streets on slopes.
This commit is contained in:
parent
d9096f9ea4
commit
7a8fb5d2fd
12
town_cmd.c
12
town_cmd.c
@ -416,6 +416,7 @@ static bool IsRoadAllowedHere(uint tile, int dir)
|
|||||||
|
|
||||||
slope = GetTileSlope(tile, NULL);
|
slope = GetTileSlope(tile, NULL);
|
||||||
if (slope == 0) {
|
if (slope == 0) {
|
||||||
|
no_slope:
|
||||||
// Tile has no slope
|
// Tile has no slope
|
||||||
// Disallow the road if any neighboring tile has a road.
|
// Disallow the road if any neighboring tile has a road.
|
||||||
if (HASBIT(GetTownRoadMask(TILE_ADD(tile, _roadblock_tileadd[dir+1])), dir^2) ||
|
if (HASBIT(GetTownRoadMask(TILE_ADD(tile, _roadblock_tileadd[dir+1])), dir^2) ||
|
||||||
@ -434,10 +435,17 @@ static bool IsRoadAllowedHere(uint tile, int dir)
|
|||||||
uint32 r = Random();
|
uint32 r = Random();
|
||||||
|
|
||||||
if (CHANCE16I(1,8, r) && !_generating_world) {
|
if (CHANCE16I(1,8, r) && !_generating_world) {
|
||||||
|
int32 res;
|
||||||
|
|
||||||
if (CHANCE16I(1,16,r))
|
if (CHANCE16I(1,16,r))
|
||||||
DoCommandByTile(tile, slope, 0, DC_EXEC | DC_AUTO | DC_NO_WATER, CMD_TERRAFORM_LAND);
|
res = DoCommandByTile(tile, slope, 0, DC_EXEC | DC_AUTO | DC_NO_WATER,
|
||||||
|
CMD_TERRAFORM_LAND);
|
||||||
else
|
else
|
||||||
DoCommandByTile(tile, slope^0xF, 1, DC_EXEC | DC_AUTO | DC_NO_WATER, CMD_TERRAFORM_LAND);
|
res = DoCommandByTile(tile, slope^0xF, 1, DC_EXEC | DC_AUTO | DC_NO_WATER,
|
||||||
|
CMD_TERRAFORM_LAND);
|
||||||
|
if (res == CMD_ERROR && CHANCE16I(1,3,r))
|
||||||
|
// We can consider building on the slope, though.
|
||||||
|
goto no_slope;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user