summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/town_cmd.cpp20
1 files changed, 11 insertions, 9 deletions
diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp
index 49775798c..921a592b6 100644
--- a/src/town_cmd.cpp
+++ b/src/town_cmd.cpp
@@ -1315,17 +1315,19 @@ static bool GrowTown(Town *t)
/* No road available, try to build a random road block by
* clearing some land and then building a road there. */
- tile = t->xy;
- for (ptr = _town_coord_mod; ptr != endof(_town_coord_mod); ++ptr) {
- /* Only work with plain land that not already has a house */
- if (!IsTileType(tile, MP_HOUSE) && GetTileSlope(tile, NULL) == SLOPE_FLAT) {
- if (CmdSucceeded(DoCommand(tile, 0, 0, DC_AUTO | DC_NO_WATER, CMD_LANDSCAPE_CLEAR))) {
- DoCommand(tile, GenRandomRoadBits(), t->index, DC_EXEC | DC_AUTO, CMD_BUILD_ROAD);
- _current_company = old_company;
- return true;
+ if (_settings_game.economy.allow_town_roads || _generating_world) {
+ tile = t->xy;
+ for (ptr = _town_coord_mod; ptr != endof(_town_coord_mod); ++ptr) {
+ /* Only work with plain land that not already has a house */
+ if (!IsTileType(tile, MP_HOUSE) && GetTileSlope(tile, NULL) == SLOPE_FLAT) {
+ if (CmdSucceeded(DoCommand(tile, 0, 0, DC_AUTO | DC_NO_WATER, CMD_LANDSCAPE_CLEAR))) {
+ DoCommand(tile, GenRandomRoadBits(), t->index, DC_EXEC | DC_AUTO, CMD_BUILD_ROAD);
+ _current_company = old_company;
+ return true;
+ }
}
+ tile = TILE_ADD(tile, ToTileIndexDiff(*ptr));
}
- tile = TILE_ADD(tile, ToTileIndexDiff(*ptr));
}
_current_company = old_company;