diff --git a/src/lang/english.txt b/src/lang/english.txt index fb7384c026..4eee410263 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -606,6 +606,7 @@ STR_CANNOT_GENERATE_TOWN :{WHITE}Can't bu STR_NO_SPACE_FOR_TOWN :{WHITE}...there is no more space on the map STR_023B_INCREASE_SIZE_OF_TOWN :{BLACK}Increase size of town STR_023C_EXPAND :{BLACK}Expand +STR_TOWN_EXPAND_WARN_NO_ROADS :{WHITE}The town will not build roads. You can enable building of roads via Advanced Settings->Economy->Towns. STR_023D_RANDOM_TOWN :{BLACK}Random Town STR_023E_BUILD_TOWN_IN_RANDOM_LOCATION :{BLACK}Build town in random location STR_0285_CAN_T_BUILD_HERE :{WHITE}Can't build {STRING} here... diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp index fdb8469365..4432f17a31 100644 --- a/src/town_cmd.cpp +++ b/src/town_cmd.cpp @@ -1981,7 +1981,7 @@ static bool BuildTownHouse(Town *t, TileIndex tile) hs = GetHouseSpecs(house); } - if ((hs->extra_flags & BUILDING_IS_HISTORICAL) && !_generating_world) continue; + if ((hs->extra_flags & BUILDING_IS_HISTORICAL) && !_generating_world && _game_mode != GM_EDITOR) continue; } if (_cur_year < hs->min_year || _cur_year > hs->max_year) continue; @@ -2025,7 +2025,7 @@ static bool BuildTownHouse(Town *t, TileIndex tile) byte construction_counter = 0; byte construction_stage = 0; - if (_generating_world) { + if (_generating_world || _game_mode == GM_EDITOR) { uint32 r = Random(); construction_stage = TOWN_HOUSE_COMPLETED; @@ -2166,7 +2166,13 @@ CommandCost CmdRenameTown(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 /** Called from GUI */ void ExpandTown(Town *t) { - _generating_world = true; + /* Warn the users if towns are not allowed to build roads, + * but do this only onces per openttd run. */ + static bool warned_no_roads = false; + if (!_settings_game.economy.allow_town_roads && !warned_no_roads) { + ShowErrorMessage(INVALID_STRING_ID, STR_TOWN_EXPAND_WARN_NO_ROADS, 0, 0); + warned_no_roads = true; + } /* The more houses, the faster we grow */ uint amount = RandomRange(ClampToU16(t->num_houses / 10)) + 3; @@ -2180,7 +2186,6 @@ void ExpandTown(Town *t) UpdateTownRadius(t); UpdateTownMaxPass(t); - _generating_world = false; } extern const byte _town_action_costs[8] = {