summaryrefslogtreecommitdiff
path: root/openttd-git/underground.patch
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2019-05-02 15:03:24 +0200
committerErich Eckner <git@eckner.net>2019-05-02 15:04:22 +0200
commit9f9f69840730848a5fff616ad9a3c11da0c87339 (patch)
tree317a668aab6466a7fc76de423c8ad1b4825b0175 /openttd-git/underground.patch
parent436a0c7801424150585a8e515d1e0ebd252f47cd (diff)
downloadarchlinuxewe.git.save-9f9f69840730848a5fff616ad9a3c11da0c87339.tar.xz
openttd-git 28924.14dc8dd61-1 -> 28934.672c857e3-1
Diffstat (limited to 'openttd-git/underground.patch')
-rw-r--r--openttd-git/underground.patch300
1 files changed, 153 insertions, 147 deletions
diff --git a/openttd-git/underground.patch b/openttd-git/underground.patch
index b5fc7769..d3085404 100644
--- a/openttd-git/underground.patch
+++ b/openttd-git/underground.patch
@@ -53,10 +53,10 @@ index 0000000000..a5947189b9
+* Expansion of the underground station does not work (when adding cells, a new one is added)
+- GF. "jumps" (the non-editable part of the station changes randomly when the station is modified)
diff --git a/source.list b/source.list
-index f5089d03de..8422117262 100644
+index 4f9c8aa0d7..6e427ce4ec 100644
--- a/source.list
+++ b/source.list
-@@ -1173,3 +1173,12 @@ sound/null_s.cpp
+@@ -1179,3 +1179,12 @@ sound/null_s.cpp
# Threading
thread.h
@@ -432,7 +432,7 @@ index 66be73bd65..dced07599e 100644
static const byte _genterrain_tbl_1[5] = { 10, 22, 33, 37, 4 };
diff --git a/src/lang/afrikaans.txt b/src/lang/afrikaans.txt
-index 0b7d4aaef2..9e08e1703c 100644
+index c253c33370..c7955eaea6 100644
--- a/src/lang/afrikaans.txt
+++ b/src/lang/afrikaans.txt
@@ -2569,7 +2569,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Tremweg
@@ -445,7 +445,7 @@ index 0b7d4aaef2..9e08e1703c 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Stasie klas: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Stasie tiepe: {LTBLUE}{STRING}
diff --git a/src/lang/arabic_egypt.txt b/src/lang/arabic_egypt.txt
-index af79f630fb..359074ec00 100644
+index 0bd31917c3..6a7a8750ec 100644
--- a/src/lang/arabic_egypt.txt
+++ b/src/lang/arabic_egypt.txt
@@ -2204,7 +2204,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}مالك
@@ -458,7 +458,7 @@ index af79f630fb..359074ec00 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK} فئة المحطة: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}نوع المحطة: {LTBLUE}{STRING}
diff --git a/src/lang/basque.txt b/src/lang/basque.txt
-index 67125293f0..69960fe76e 100644
+index 841540c7ea..72d989e6a0 100644
--- a/src/lang/basque.txt
+++ b/src/lang/basque.txt
@@ -2472,7 +2472,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Tranbia
@@ -471,7 +471,7 @@ index 67125293f0..69960fe76e 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Geltoki mota: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Geltoki mota: {LTBLUE}{STRING}
diff --git a/src/lang/belarusian.txt b/src/lang/belarusian.txt
-index 2d05e68230..d2745f394e 100644
+index 5ddd3f8330..0624d4a206 100644
--- a/src/lang/belarusian.txt
+++ b/src/lang/belarusian.txt
@@ -2915,7 +2915,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Улад
@@ -484,7 +484,7 @@ index 2d05e68230..d2745f394e 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Кляса станцыі: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Тып станцыi: {LTBLUE}{STRING}
diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt
-index d7a4178c09..5c356dde80 100644
+index 4b839a5b03..f67853a2c1 100644
--- a/src/lang/brazilian_portuguese.txt
+++ b/src/lang/brazilian_portuguese.txt
@@ -2586,7 +2586,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Dono da
@@ -497,7 +497,7 @@ index d7a4178c09..5c356dde80 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Classe de Estação: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Tipo de Estação: {LTBLUE}{STRING}
diff --git a/src/lang/bulgarian.txt b/src/lang/bulgarian.txt
-index 004240b2d6..55778289b7 100644
+index 4d3301f2af..aa27a727c1 100644
--- a/src/lang/bulgarian.txt
+++ b/src/lang/bulgarian.txt
@@ -2514,7 +2514,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Собс
@@ -510,7 +510,7 @@ index 004240b2d6..55778289b7 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Клас на станцията: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Тип на станцията: {LTBLUE}{STRING}
diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt
-index 413e189dd9..7ac8a6b9af 100644
+index f6c1b3a688..f5dcb0ba9d 100644
--- a/src/lang/catalan.txt
+++ b/src/lang/catalan.txt
@@ -2603,7 +2603,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Propieta
@@ -523,7 +523,7 @@ index 413e189dd9..7ac8a6b9af 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Classe d'estació: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Tipus d'estació: {LTBLUE}{STRING}
diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt
-index aa1a5bcb3a..0858bad856 100644
+index 0b161d60ef..457b270cf9 100644
--- a/src/lang/croatian.txt
+++ b/src/lang/croatian.txt
@@ -2703,7 +2703,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Vlasnik
@@ -536,7 +536,7 @@ index aa1a5bcb3a..0858bad856 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Klasa postaje: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Vrsta postaje: {LTBLUE}{STRING}
diff --git a/src/lang/czech.txt b/src/lang/czech.txt
-index 06600fa4da..1fa40e20da 100644
+index a2dcd9f03e..729b0e0de3 100644
--- a/src/lang/czech.txt
+++ b/src/lang/czech.txt
@@ -2670,7 +2670,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Majitel
@@ -549,7 +549,7 @@ index 06600fa4da..1fa40e20da 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Třída stanice: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Druh stanice: {LTBLUE}{STRING}
diff --git a/src/lang/danish.txt b/src/lang/danish.txt
-index dbd2e43a3a..776afeb49a 100644
+index b993b59619..ab3b6b41c8 100644
--- a/src/lang/danish.txt
+++ b/src/lang/danish.txt
@@ -2604,7 +2604,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Ejer af
@@ -562,7 +562,7 @@ index dbd2e43a3a..776afeb49a 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Stationsklasse: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Stationstype: {LTBLUE}{STRING}
diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt
-index c28321141f..0cad5afc9a 100644
+index b8da710ec1..5582be8870 100644
--- a/src/lang/dutch.txt
+++ b/src/lang/dutch.txt
@@ -2607,7 +2607,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Eigenaar
@@ -575,10 +575,10 @@ index c28321141f..0cad5afc9a 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Stationsklasse: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Stationstype: {LTBLUE}{STRING}
diff --git a/src/lang/english.txt b/src/lang/english.txt
-index 83a28d8cdc..7464d04bd0 100644
+index 9641ecc041..9e58b6dd03 100644
--- a/src/lang/english.txt
+++ b/src/lang/english.txt
-@@ -462,6 +462,18 @@ STR_LANDSCAPING_MENU_PLANT_TREES :Plant trees
+@@ -464,6 +464,18 @@ STR_LANDSCAPING_MENU_PLANT_TREES :Plant trees
STR_LANDSCAPING_MENU_PLACE_SIGN :Place sign
############ range ends here
@@ -597,7 +597,7 @@ index 83a28d8cdc..7464d04bd0 100644
############ range for music menu starts
STR_TOOLBAR_SOUND_MUSIC :Sound/music
############ range ends here
-@@ -2607,7 +2619,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Tramway
+@@ -2614,7 +2626,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Tramway
STR_LAND_AREA_INFORMATION_RAIL_OWNER :{BLACK}Railway owner: {LTBLUE}{STRING1}
STR_LAND_AREA_INFORMATION_LOCAL_AUTHORITY :{BLACK}Local authority: {LTBLUE}{STRING1}
STR_LAND_AREA_INFORMATION_LOCAL_AUTHORITY_NONE :None
@@ -606,7 +606,7 @@ index 83a28d8cdc..7464d04bd0 100644
STR_LAND_AREA_INFORMATION_BUILD_DATE :{BLACK}Built: {LTBLUE}{DATE_LONG}
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Station class: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Station type: {LTBLUE}{STRING}
-@@ -5088,3 +5100,35 @@ STR_PLANE :{BLACK}{PLANE}
+@@ -5119,3 +5131,35 @@ STR_PLANE :{BLACK}{PLANE}
STR_SHIP :{BLACK}{SHIP}
STR_TOOLBAR_RAILTYPE_VELOCITY :{STRING} ({VELOCITY})
@@ -643,7 +643,7 @@ index 83a28d8cdc..7464d04bd0 100644
+
+# end underground string
diff --git a/src/lang/english_AU.txt b/src/lang/english_AU.txt
-index 529c1e03c5..c19564283c 100644
+index 50a35eee38..0d3ba9749a 100644
--- a/src/lang/english_AU.txt
+++ b/src/lang/english_AU.txt
@@ -2543,7 +2543,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Tramway
@@ -656,7 +656,7 @@ index 529c1e03c5..c19564283c 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Station class: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Station type: {LTBLUE}{STRING}
diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt
-index 62193bd46a..bfe35bdf82 100644
+index 3bf1874872..0b295bf280 100644
--- a/src/lang/english_US.txt
+++ b/src/lang/english_US.txt
@@ -2604,7 +2604,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Streetca
@@ -669,7 +669,7 @@ index 62193bd46a..bfe35bdf82 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Station class: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Station type: {LTBLUE}{STRING}
diff --git a/src/lang/esperanto.txt b/src/lang/esperanto.txt
-index 688d713afd..74c436adb0 100644
+index 2ff87d0347..341597595c 100644
--- a/src/lang/esperanto.txt
+++ b/src/lang/esperanto.txt
@@ -2173,7 +2173,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Posedant
@@ -682,7 +682,7 @@ index 688d713afd..74c436adb0 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Stacioklaso: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Staciotipo: {LTBLUE}{STRING}
diff --git a/src/lang/estonian.txt b/src/lang/estonian.txt
-index 537f11557a..028d8fd974 100644
+index 44abe21965..82ac3ee995 100644
--- a/src/lang/estonian.txt
+++ b/src/lang/estonian.txt
@@ -2631,7 +2631,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Trammite
@@ -695,7 +695,7 @@ index 537f11557a..028d8fd974 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Jaama liik: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Jaama rühm: {LTBLUE}{STRING}
diff --git a/src/lang/faroese.txt b/src/lang/faroese.txt
-index 4073b2515b..65472b75d8 100644
+index 9f288edb6f..e047224d1a 100644
--- a/src/lang/faroese.txt
+++ b/src/lang/faroese.txt
@@ -2311,7 +2311,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Sporvogn
@@ -708,7 +708,7 @@ index 4073b2515b..65472b75d8 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Støð klassi: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Støð slag: {LTBLUE}{STRING}
diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt
-index d1bf5e0731..eca8873e7d 100644
+index c9d86cd791..a9e8c601da 100644
--- a/src/lang/finnish.txt
+++ b/src/lang/finnish.txt
@@ -2607,7 +2607,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Raitioti
@@ -721,7 +721,7 @@ index d1bf5e0731..eca8873e7d 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Aseman luokka: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Aseman tyyppi: {LTBLUE}{STRING}
diff --git a/src/lang/french.txt b/src/lang/french.txt
-index da51ab78d4..25bd83aa03 100644
+index 9a90176f39..ced9a1c257 100644
--- a/src/lang/french.txt
+++ b/src/lang/french.txt
@@ -2605,7 +2605,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Proprié
@@ -734,7 +734,7 @@ index da51ab78d4..25bd83aa03 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Type de station{NBSP}: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Type de station{NBSP}: {LTBLUE}{STRING}
diff --git a/src/lang/gaelic.txt b/src/lang/gaelic.txt
-index 1a946afdfe..7017420dfa 100644
+index 2f09153fd4..670f0838eb 100644
--- a/src/lang/gaelic.txt
+++ b/src/lang/gaelic.txt
@@ -2801,7 +2801,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Seilbhea
@@ -747,7 +747,7 @@ index 1a946afdfe..7017420dfa 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Seòrsa an stèisein: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Seòrsa an stèisein: {LTBLUE}{STRING}
diff --git a/src/lang/galician.txt b/src/lang/galician.txt
-index 149e29e497..9e5bc22794 100644
+index fa3c528879..e335df7caf 100644
--- a/src/lang/galician.txt
+++ b/src/lang/galician.txt
@@ -2572,7 +2572,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Propieta
@@ -760,7 +760,7 @@ index 149e29e497..9e5bc22794 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Clase de estación: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Tipo de estación: {LTBLUE}{STRING}
diff --git a/src/lang/german.txt b/src/lang/german.txt
-index 35d02e8d16..8077199bc7 100644
+index 2c6b77a5bf..dde2b31f4d 100644
--- a/src/lang/german.txt
+++ b/src/lang/german.txt
@@ -2592,7 +2592,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Straßen
@@ -773,7 +773,7 @@ index 35d02e8d16..8077199bc7 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Stationsklasse: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Stationstyp: {LTBLUE}{STRING}
diff --git a/src/lang/greek.txt b/src/lang/greek.txt
-index aed86f55d4..20dba726bf 100644
+index 5dd253b5d8..fe7317afb8 100644
--- a/src/lang/greek.txt
+++ b/src/lang/greek.txt
@@ -2711,7 +2711,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Ιδιο
@@ -786,7 +786,7 @@ index aed86f55d4..20dba726bf 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Κατηγορία σταθμού: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Τύπος σταθμού: {LTBLUE}{STRING}
diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt
-index bda99e0d2c..78b0206669 100644
+index 68ea63f1c2..08e3cd5aa4 100644
--- a/src/lang/hebrew.txt
+++ b/src/lang/hebrew.txt
@@ -2594,7 +2594,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}:בעל
@@ -799,7 +799,7 @@ index bda99e0d2c..78b0206669 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}{LTBLUE}{STRING}: אופי התחנה
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK} {LTBLUE}{STRING}: סוג התחנה
diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt
-index eae7abaec9..7bd76d267d 100644
+index b26940b0e0..fd6dffad21 100644
--- a/src/lang/hungarian.txt
+++ b/src/lang/hungarian.txt
@@ -2668,7 +2668,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}A villam
@@ -812,7 +812,7 @@ index eae7abaec9..7bd76d267d 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Állomás osztálya: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Állomás típusa: {LTBLUE}{STRING}
diff --git a/src/lang/icelandic.txt b/src/lang/icelandic.txt
-index 92a28d1bcd..16a33a1eea 100644
+index d279de9df7..829a04d4a6 100644
--- a/src/lang/icelandic.txt
+++ b/src/lang/icelandic.txt
@@ -2418,7 +2418,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Eigandi
@@ -825,7 +825,7 @@ index 92a28d1bcd..16a33a1eea 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Tegund stöðvar: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Tegund stöðvar: {LTBLUE}{STRING}
diff --git a/src/lang/indonesian.txt b/src/lang/indonesian.txt
-index 3a66b6eb15..135b51c262 100644
+index 5e802f90e0..3ac70b2a84 100644
--- a/src/lang/indonesian.txt
+++ b/src/lang/indonesian.txt
@@ -2588,7 +2588,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Pemilik
@@ -838,7 +838,7 @@ index 3a66b6eb15..135b51c262 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Kelas Stasiun: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Tipe Stasiun: {LTBLUE}{STRING}
diff --git a/src/lang/irish.txt b/src/lang/irish.txt
-index 483657f303..f8be9d5cdc 100644
+index edb7990afa..ffc926fd5f 100644
--- a/src/lang/irish.txt
+++ b/src/lang/irish.txt
@@ -2568,7 +2568,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Úinéir
@@ -851,7 +851,7 @@ index 483657f303..f8be9d5cdc 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Aicme an stáisiúin: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Cineál stáisiúin: {LTBLUE}{STRING}
diff --git a/src/lang/italian.txt b/src/lang/italian.txt
-index 696504b5a4..07d75e0827 100644
+index f458082688..3870591f93 100644
--- a/src/lang/italian.txt
+++ b/src/lang/italian.txt
@@ -2637,7 +2637,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Propriet
@@ -864,7 +864,7 @@ index 696504b5a4..07d75e0827 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Tipo stazione: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Tipo stazione: {LTBLUE}{STRING}
diff --git a/src/lang/korean.txt b/src/lang/korean.txt
-index 3aff4a4ae0..f3d0d42b10 100644
+index 1e91fa0986..7ebc13549b 100644
--- a/src/lang/korean.txt
+++ b/src/lang/korean.txt
@@ -2608,7 +2608,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}전찻
@@ -877,7 +877,7 @@ index 3aff4a4ae0..f3d0d42b10 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}역 분류: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}역 종류: {LTBLUE}{STRING}
diff --git a/src/lang/latin.txt b/src/lang/latin.txt
-index bb8d584085..5ab713c38e 100644
+index 7393be5566..3c5bc266cd 100644
--- a/src/lang/latin.txt
+++ b/src/lang/latin.txt
@@ -2803,7 +2803,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Possesso
@@ -890,7 +890,7 @@ index bb8d584085..5ab713c38e 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Classis stationis: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Typus stationis: {LTBLUE}{STRING}
diff --git a/src/lang/latvian.txt b/src/lang/latvian.txt
-index 9635ed054b..88cf0889ac 100644
+index a683e05a77..7d8b579823 100644
--- a/src/lang/latvian.txt
+++ b/src/lang/latvian.txt
@@ -2514,7 +2514,7 @@ STR_LAND_AREA_INFORMATION_RAIL_OWNER :{BLACK}Dzelzce
@@ -903,7 +903,7 @@ index 9635ed054b..88cf0889ac 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Stacijas klase: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Stacijas tips: {LTBLUE}{STRING}
diff --git a/src/lang/lithuanian.txt b/src/lang/lithuanian.txt
-index 68bc4f9657..6b7b54485f 100644
+index 060c8ceef8..c627eb7c5b 100644
--- a/src/lang/lithuanian.txt
+++ b/src/lang/lithuanian.txt
@@ -2787,7 +2787,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Tramvaja
@@ -916,7 +916,7 @@ index 68bc4f9657..6b7b54485f 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Stotelės rūšis: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Stotelės tipas: {LTBLUE}{STRING}
diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt
-index 2f7cd1d061..dbc8bd5a86 100644
+index 9a9b9d3d52..f30d11c301 100644
--- a/src/lang/luxembourgish.txt
+++ b/src/lang/luxembourgish.txt
@@ -2598,7 +2598,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Tramschi
@@ -929,7 +929,7 @@ index 2f7cd1d061..dbc8bd5a86 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Statiounsklass: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Statiounstyp: {LTBLUE}{STRING}
diff --git a/src/lang/malay.txt b/src/lang/malay.txt
-index be78dc3d99..11ce2c0bdc 100644
+index f5af89d905..b89cbf8d2f 100644
--- a/src/lang/malay.txt
+++ b/src/lang/malay.txt
@@ -2315,7 +2315,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Pemilik
@@ -942,7 +942,7 @@ index be78dc3d99..11ce2c0bdc 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Kelas stesen: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Jenis stesen: {LTBLUE}{STRING}
diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt
-index 3baf2badd9..40769e3099 100644
+index 7b9188f746..b6c3a96eb7 100644
--- a/src/lang/norwegian_bokmal.txt
+++ b/src/lang/norwegian_bokmal.txt
@@ -2608,7 +2608,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Eier av
@@ -955,7 +955,7 @@ index 3baf2badd9..40769e3099 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Stasjonstype: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Stasjonstype: {LTBLUE}{STRING}
diff --git a/src/lang/norwegian_nynorsk.txt b/src/lang/norwegian_nynorsk.txt
-index 4342821243..9b03e66cbf 100644
+index 3d6c11ddf5..ce20a37a4d 100644
--- a/src/lang/norwegian_nynorsk.txt
+++ b/src/lang/norwegian_nynorsk.txt
@@ -2491,7 +2491,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Trikkesp
@@ -968,7 +968,7 @@ index 4342821243..9b03e66cbf 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Stasjonsklasse: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Stasjontype: {LTBLUE}{STRING}
diff --git a/src/lang/polish.txt b/src/lang/polish.txt
-index cd2121671b..a6bc169353 100644
+index 21014a46f1..6e1e24b1c5 100644
--- a/src/lang/polish.txt
+++ b/src/lang/polish.txt
@@ -2970,7 +2970,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Wlascici
@@ -981,7 +981,7 @@ index cd2121671b..a6bc169353 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Rodzaj stacji: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Typ stacji: {LTBLUE}{STRING}
diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt
-index 0c8361e54c..51ecc99d45 100644
+index 3758e5838c..0d0d91783e 100644
--- a/src/lang/portuguese.txt
+++ b/src/lang/portuguese.txt
@@ -2605,7 +2605,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Dono da
@@ -994,7 +994,7 @@ index 0c8361e54c..51ecc99d45 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Tipo de Estação: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Tipo de Estação: {LTBLUE}{STRING}
diff --git a/src/lang/romanian.txt b/src/lang/romanian.txt
-index a4149798ad..05a7e29031 100644
+index bedab6c1ad..215c28cf80 100644
--- a/src/lang/romanian.txt
+++ b/src/lang/romanian.txt
@@ -2550,7 +2550,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Propriet
@@ -1007,7 +1007,7 @@ index a4149798ad..05a7e29031 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Clasa staţiei: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Tip staţie: {LTBLUE}{STRING}
diff --git a/src/lang/russian.txt b/src/lang/russian.txt
-index 926420e850..46ed8c3c02 100644
+index 3a201d14c2..2a57b1aee6 100644
--- a/src/lang/russian.txt
+++ b/src/lang/russian.txt
@@ -588,6 +588,18 @@ STR_LANDSCAPING_MENU_PLANT_TREES :Высадка
@@ -1038,7 +1038,7 @@ index 926420e850..46ed8c3c02 100644
STR_LAND_AREA_INFORMATION_BUILD_DATE :{BLACK}Построено: {LTBLUE}{DATE_LONG}
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Класс станции: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Тип станции: {LTBLUE}{STRING}
-@@ -5315,3 +5327,35 @@ STR_PLANE :{BLACK}{PLANE}
+@@ -5313,3 +5325,35 @@ STR_PLANE :{BLACK}{PLANE}
STR_SHIP :{BLACK}{SHIP}
STR_TOOLBAR_RAILTYPE_VELOCITY :{STRING} ({VELOCITY})
@@ -1075,7 +1075,7 @@ index 926420e850..46ed8c3c02 100644
+
+# end underground string
diff --git a/src/lang/serbian.txt b/src/lang/serbian.txt
-index 36cac2be76..3b2db5b410 100644
+index b252081917..f7ccd994c8 100644
--- a/src/lang/serbian.txt
+++ b/src/lang/serbian.txt
@@ -2776,7 +2776,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Vlasnik
@@ -1088,7 +1088,7 @@ index 36cac2be76..3b2db5b410 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Klasa stanice: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Vrsta stanice: {LTBLUE}{STRING}
diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt
-index 3e2767e48b..15da278201 100644
+index 3e00b67fc7..3097552be1 100644
--- a/src/lang/simplified_chinese.txt
+++ b/src/lang/simplified_chinese.txt
@@ -2578,7 +2578,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}有轨
@@ -1101,7 +1101,7 @@ index 3e2767e48b..15da278201 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}车站分类: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}车站类型: {LTBLUE}{STRING}
diff --git a/src/lang/slovak.txt b/src/lang/slovak.txt
-index 47005d904b..a07e3e41d6 100644
+index d25c5d38cc..2edc9b56ed 100644
--- a/src/lang/slovak.txt
+++ b/src/lang/slovak.txt
@@ -2636,7 +2636,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Vlastní
@@ -1114,7 +1114,7 @@ index 47005d904b..a07e3e41d6 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Trieda stanice: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Typ stanice: {LTBLUE}{STRING}
diff --git a/src/lang/slovenian.txt b/src/lang/slovenian.txt
-index 7a86e2bc20..00ac4e59ba 100644
+index d358a190fe..546e4087db 100644
--- a/src/lang/slovenian.txt
+++ b/src/lang/slovenian.txt
@@ -2722,7 +2722,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Lastnik
@@ -1127,7 +1127,7 @@ index 7a86e2bc20..00ac4e59ba 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Razred postaje: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Vrsta postaje: {LTBLUE}{STRING}
diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt
-index 82918400a8..1bebdb738e 100644
+index 5fb6609181..2fce4c2991 100644
--- a/src/lang/spanish.txt
+++ b/src/lang/spanish.txt
@@ -2583,7 +2583,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Propieta
@@ -1140,7 +1140,7 @@ index 82918400a8..1bebdb738e 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Clase de estación: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Tipo de estación: {LTBLUE}{STRING}
diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt
-index 335bbdba8c..c4c12abfae 100644
+index 66cd259696..bf7298a530 100644
--- a/src/lang/spanish_MX.txt
+++ b/src/lang/spanish_MX.txt
@@ -2606,7 +2606,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Propieta
@@ -1153,7 +1153,7 @@ index 335bbdba8c..c4c12abfae 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Clase de estación: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Tipo de estación: {LTBLUE}{STRING}
diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt
-index 0cb8ef4974..6317177587 100644
+index edc9975cc1..168748bef3 100644
--- a/src/lang/swedish.txt
+++ b/src/lang/swedish.txt
@@ -2591,7 +2591,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Spårvä
@@ -1166,7 +1166,7 @@ index 0cb8ef4974..6317177587 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Stationsklass: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Stationstyp: {LTBLUE}{STRING}
diff --git a/src/lang/tamil.txt b/src/lang/tamil.txt
-index ae2767d7f7..18c1441612 100644
+index 25d93659a3..91d312912f 100644
--- a/src/lang/tamil.txt
+++ b/src/lang/tamil.txt
@@ -2262,7 +2262,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}ட்
@@ -1179,7 +1179,7 @@ index ae2767d7f7..18c1441612 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}நிலையத்தின் பிரிவு: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}நிலையத்தின் வகை: {LTBLUE}{STRING}
diff --git a/src/lang/thai.txt b/src/lang/thai.txt
-index 209a2db326..482487c77c 100644
+index 1d5a8ae253..b31b1e2ed5 100644
--- a/src/lang/thai.txt
+++ b/src/lang/thai.txt
@@ -2517,7 +2517,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}ผู
@@ -1192,7 +1192,7 @@ index 209a2db326..482487c77c 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}ประเภทของสถานี: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}รูปแบบของสถานี: {LTBLUE}{STRING}
diff --git a/src/lang/traditional_chinese.txt b/src/lang/traditional_chinese.txt
-index 79da3fe2fc..ed6625a65d 100644
+index 458ed3d5de..92397c63e5 100644
--- a/src/lang/traditional_chinese.txt
+++ b/src/lang/traditional_chinese.txt
@@ -2568,7 +2568,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}電車
@@ -1205,7 +1205,7 @@ index 79da3fe2fc..ed6625a65d 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}車站風格:{LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}車站種類:{LTBLUE}{STRING}
diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt
-index a9d1002e0f..2c8249bcc8 100644
+index 972e6470a6..d089a4e077 100644
--- a/src/lang/turkish.txt
+++ b/src/lang/turkish.txt
@@ -2597,7 +2597,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Tramvay
@@ -1218,7 +1218,7 @@ index a9d1002e0f..2c8249bcc8 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}İstasyon sınıfı: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}İstasyon türü: {LTBLUE}{STRING}
diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt
-index 54c3e01b1b..c310e695eb 100644
+index 1188b3954c..d30dc89cc0 100644
--- a/src/lang/ukrainian.txt
+++ b/src/lang/ukrainian.txt
@@ -2735,7 +2735,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Влас
@@ -1231,7 +1231,7 @@ index 54c3e01b1b..c310e695eb 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Клас станції: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Тип станції: {LTBLUE}{STRING}
diff --git a/src/lang/unfinished/persian.txt b/src/lang/unfinished/persian.txt
-index 858154e392..ef47dd49b4 100644
+index 14e33cb825..e8da58e0eb 100644
--- a/src/lang/unfinished/persian.txt
+++ b/src/lang/unfinished/persian.txt
@@ -2272,7 +2272,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}مالک
@@ -1244,7 +1244,7 @@ index 858154e392..ef47dd49b4 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}کلاس ایستگاه: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}نوع ایستگاه: {LTBLUE}{STRING}
diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt
-index ec75b457aa..25508f44e3 100644
+index 8e902ff752..835fb5fe9e 100644
--- a/src/lang/vietnamese.txt
+++ b/src/lang/vietnamese.txt
@@ -2585,7 +2585,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Chủ đ
@@ -1257,7 +1257,7 @@ index ec75b457aa..25508f44e3 100644
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Loại ga,bến: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Kiểu ga,bến: {LTBLUE}{STRING}
diff --git a/src/lang/welsh.txt b/src/lang/welsh.txt
-index c36e45cf90..bc2e24726d 100644
+index 7d3c7c9a7c..8c0b68398a 100644
--- a/src/lang/welsh.txt
+++ b/src/lang/welsh.txt
@@ -2571,7 +2571,7 @@ STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Perchenn
@@ -1778,10 +1778,10 @@ index 3d09f26f26..251ea4990d 100644
_pause_mode = PM_UNPAUSED;
_fast_forward = 0;
diff --git a/src/misc_gui.cpp b/src/misc_gui.cpp
-index 86c17cdccd..edb7be2522 100644
+index 353972d489..3d0c029a2e 100644
--- a/src/misc_gui.cpp
+++ b/src/misc_gui.cpp
-@@ -214,10 +214,11 @@ public:
+@@ -217,10 +217,11 @@ public:
/* Location */
char tmp[16];
seprintf(tmp, lastof(tmp), "0x%.4X", tile);
@@ -1810,19 +1810,25 @@ index 8619bac6d9..c22b1d2cbc 100644
CursorID rail_swne; ///< Cursor for building rail in X direction
CursorID rail_ew; ///< Cursor for building rail in E-W direction
diff --git a/src/rail_cmd.cpp b/src/rail_cmd.cpp
-index 0804a4d14a..4476fdde76 100644
+index ab87fc40fd..e3df8ac977 100644
--- a/src/rail_cmd.cpp
+++ b/src/rail_cmd.cpp
-@@ -534,7 +534,7 @@ CommandCost CmdBuildSingleRail(TileIndex tile, DoCommandFlag flags, uint32 p1, u
- /* ...but tram is not required. */
- uint num_new_tram_pieces = (tram != ROAD_NONE) ? 2 - CountBits(tram) : 0;
+@@ -535,12 +535,12 @@ CommandCost CmdBuildSingleRail(TileIndex tile, DoCommandFlag flags, uint32 p1, u
+
+ uint num_new_road_pieces = (road != ROAD_NONE) ? 2 - CountBits(road) : 0;
+ if (num_new_road_pieces > 0) {
+- cost.AddCost(num_new_road_pieces * RoadBuildCost(roadtype_road));
++ cost.AddCost(num_new_road_pieces * RoadBuildCost(roadtype_road) * UNDERGROUND_COST_MULTIPLIER(tile));
+ }
-- cost.AddCost((num_new_road_pieces + num_new_tram_pieces) * _price[PR_BUILD_ROAD]);
-+ cost.AddCost((num_new_road_pieces + num_new_tram_pieces) * _price[PR_BUILD_ROAD] * UNDERGROUND_COST_MULTIPLIER(tile));
+ uint num_new_tram_pieces = (tram != ROAD_NONE) ? 2 - CountBits(tram) : 0;
+ if (num_new_tram_pieces > 0) {
+- cost.AddCost(num_new_tram_pieces * RoadBuildCost(roadtype_tram));
++ cost.AddCost(num_new_tram_pieces * RoadBuildCost(roadtype_tram) * UNDERGROUND_COST_MULTIPLIER(tile));
+ }
if (flags & DC_EXEC) {
- MakeRoadCrossing(tile, road_owner, tram_owner, _current_company, (track == TRACK_X ? AXIS_Y : AXIS_X), railtype, roadtypes, GetTownIndex(tile));
-@@ -593,7 +593,7 @@ CommandCost CmdBuildSingleRail(TileIndex tile, DoCommandFlag flags, uint32 p1, u
+@@ -600,7 +600,7 @@ CommandCost CmdBuildSingleRail(TileIndex tile, DoCommandFlag flags, uint32 p1, u
YapfNotifyTrackLayoutChange(tile, track);
}
@@ -1831,7 +1837,7 @@ index 0804a4d14a..4476fdde76 100644
return cost;
}
-@@ -637,7 +637,7 @@ CommandCost CmdRemoveSingleRail(TileIndex tile, DoCommandFlag flags, uint32 p1,
+@@ -644,7 +644,7 @@ CommandCost CmdRemoveSingleRail(TileIndex tile, DoCommandFlag flags, uint32 p1,
if (ret.Failed()) return ret;
}
@@ -1840,7 +1846,7 @@ index 0804a4d14a..4476fdde76 100644
if (flags & DC_EXEC) {
if (HasReservedTracks(tile, trackbit)) {
-@@ -670,7 +670,7 @@ CommandCost CmdRemoveSingleRail(TileIndex tile, DoCommandFlag flags, uint32 p1,
+@@ -678,7 +678,7 @@ CommandCost CmdRemoveSingleRail(TileIndex tile, DoCommandFlag flags, uint32 p1,
if ((present & trackbit) == 0) return_cmd_error(STR_ERROR_THERE_IS_NO_RAILROAD_TRACK);
if (present == (TRACK_BIT_X | TRACK_BIT_Y)) crossing = true;
@@ -1849,7 +1855,7 @@ index 0804a4d14a..4476fdde76 100644
/* Charge extra to remove signals on the track, if they are there */
if (HasSignalOnTrack(tile, track)) {
-@@ -983,7 +983,7 @@ CommandCost CmdBuildTrainDepot(TileIndex tile, DoCommandFlag flags, uint32 p1, u
+@@ -991,7 +991,7 @@ CommandCost CmdBuildTrainDepot(TileIndex tile, DoCommandFlag flags, uint32 p1, u
if (!_settings_game.construction.build_on_slopes || !CanBuildDepotByTileh(dir, tileh)) {
return_cmd_error(STR_ERROR_FLAT_LAND_REQUIRED);
}
@@ -1858,7 +1864,7 @@ index 0804a4d14a..4476fdde76 100644
}
cost.AddCost(DoCommand(tile, 0, 0, flags, CMD_LANDSCAPE_CLEAR));
-@@ -1008,8 +1008,8 @@ CommandCost CmdBuildTrainDepot(TileIndex tile, DoCommandFlag flags, uint32 p1, u
+@@ -1016,8 +1016,8 @@ CommandCost CmdBuildTrainDepot(TileIndex tile, DoCommandFlag flags, uint32 p1, u
YapfNotifyTrackLayoutChange(tile, DiagDirToDiagTrack(dir));
}
@@ -1869,7 +1875,7 @@ index 0804a4d14a..4476fdde76 100644
return cost;
}
-@@ -1659,7 +1659,7 @@ CommandCost CmdConvertRail(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3
+@@ -1667,7 +1667,7 @@ CommandCost CmdConvertRail(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3
InvalidateWindowData(WC_VEHICLE_DEPOT, tile);
InvalidateWindowData(WC_BUILD_VEHICLE, tile);
}
@@ -1878,7 +1884,7 @@ index 0804a4d14a..4476fdde76 100644
break;
default: // RAIL_TILE_NORMAL, RAIL_TILE_SIGNALS
-@@ -1670,7 +1670,7 @@ CommandCost CmdConvertRail(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3
+@@ -1678,7 +1678,7 @@ CommandCost CmdConvertRail(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3
YapfNotifyTrackLayoutChange(tile, RemoveFirstTrack(&tracks));
}
}
@@ -1887,7 +1893,7 @@ index 0804a4d14a..4476fdde76 100644
break;
}
break;
-@@ -1732,7 +1732,7 @@ CommandCost CmdConvertRail(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3
+@@ -1740,7 +1740,7 @@ CommandCost CmdConvertRail(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3
}
}
@@ -1896,7 +1902,7 @@ index 0804a4d14a..4476fdde76 100644
break;
}
-@@ -1742,7 +1742,7 @@ CommandCost CmdConvertRail(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3
+@@ -1750,7 +1750,7 @@ CommandCost CmdConvertRail(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3
YapfNotifyTrackLayoutChange(tile, track);
}
@@ -1906,28 +1912,28 @@ index 0804a4d14a..4476fdde76 100644
}
diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp
-index e9edbf2549..b3270e7004 100644
+index 325dd0f6ea..78672768ff 100644
--- a/src/road_cmd.cpp
+++ b/src/road_cmd.cpp
-@@ -255,7 +255,7 @@ static CommandCost RemoveRoad(TileIndex tile, DoCommandFlag flags, RoadBits piec
+@@ -407,7 +407,7 @@ static CommandCost RemoveRoad(TileIndex tile, DoCommandFlag flags, RoadBits piec
}
} else {
assert(IsDriveThroughStopTile(tile));
-- cost.AddCost(_price[PR_CLEAR_ROAD] * 2);
-+ cost.AddCost(_price[PR_CLEAR_ROAD] * 2 * UNDERGROUND_COST_MULTIPLIER(tile));
+- cost.AddCost(RoadClearCost(existing_rt) * 2);
++ cost.AddCost(RoadClearCost(existing_rt) * 2 * UNDERGROUND_COST_MULTIPLIER(tile));
if (flags & DC_EXEC) {
- Company *c = Company::GetIfValid(GetRoadOwner(tile, rt));
- if (c != nullptr) {
-@@ -737,7 +737,7 @@ do_clear:;
+ /* A full diagonal road tile has two road bits. */
+ UpdateCompanyRoadInfrastructure(existing_rt, GetRoadOwner(tile, rtt), -2);
+@@ -889,7 +889,7 @@ do_clear:;
/* Count pieces */
CountBits(pieces);
-- cost.AddCost(num_pieces * _price[PR_BUILD_ROAD]);
-+ cost.AddCost(num_pieces * _price[PR_BUILD_ROAD] * UNDERGROUND_COST_MULTIPLIER(tile));
+- cost.AddCost(num_pieces * RoadBuildCost(rt));
++ cost.AddCost(num_pieces * RoadBuildCost(rt) * UNDERGROUND_COST_MULTIPLIER(tile));
if (flags & DC_EXEC) {
switch (GetTileType(tile)) {
-@@ -1048,7 +1048,7 @@ CommandCost CmdBuildRoadDepot(TileIndex tile, DoCommandFlag flags, uint32 p1, ui
+@@ -1203,7 +1203,7 @@ CommandCost CmdBuildRoadDepot(TileIndex tile, DoCommandFlag flags, uint32 p1, ui
MarkTileDirtyByTile(tile);
MakeDefaultName(dep);
}
@@ -1978,10 +1984,10 @@ index a857d5b15a..892eba93bf 100644
static void Check_MAPS()
diff --git a/src/script/api/script_window.hpp b/src/script/api/script_window.hpp
-index 47c8488889..5b924025e1 100644
+index 58226ea5b2..d1d4cfb5df 100644
--- a/src/script/api/script_window.hpp
+++ b/src/script/api/script_window.hpp
-@@ -1324,6 +1324,7 @@ public:
+@@ -1328,6 +1328,7 @@ public:
WID_GL_MAPSIZE_X_PULLDOWN = ::WID_GL_MAPSIZE_X_PULLDOWN, ///< Dropdown 'map X size'.
WID_GL_MAPSIZE_Y_PULLDOWN = ::WID_GL_MAPSIZE_Y_PULLDOWN, ///< Dropdown 'map Y size'.
@@ -1989,7 +1995,7 @@ index 47c8488889..5b924025e1 100644
WID_GL_TOWN_PULLDOWN = ::WID_GL_TOWN_PULLDOWN, ///< Dropdown 'No. of towns'.
WID_GL_INDUSTRY_PULLDOWN = ::WID_GL_INDUSTRY_PULLDOWN, ///< Dropdown 'No. of industries'.
-@@ -1372,6 +1373,7 @@ public:
+@@ -1376,6 +1377,7 @@ public:
WID_CS_RANDOM_WORLD = ::WID_CS_RANDOM_WORLD, ///< Generate random land button
WID_CS_MAPSIZE_X_PULLDOWN = ::WID_CS_MAPSIZE_X_PULLDOWN, ///< Pull-down arrow for x map size.
WID_CS_MAPSIZE_Y_PULLDOWN = ::WID_CS_MAPSIZE_Y_PULLDOWN, ///< Pull-down arrow for y map size.
@@ -2031,7 +2037,7 @@ index f2fbd283cd..359a0e1168 100644
byte oil_refinery_limit; ///< distance oil refineries allowed from map edge
byte snow_line_height; ///< the configured snow line height
diff --git a/src/station.cpp b/src/station.cpp
-index e8ae1bc208..194f0edb28 100644
+index 096a3c3739..8c42d1ef81 100644
--- a/src/station.cpp
+++ b/src/station.cpp
@@ -13,6 +13,7 @@
@@ -2127,7 +2133,7 @@ index e8ae1bc208..194f0edb28 100644
bool empty = this->AfterRemoveTile(st, ta.tile);
if (ta.w != 1 || ta.h != 1) empty = empty || this->AfterRemoveTile(st, TILE_ADDXY(ta.tile, ta.w - 1, ta.h - 1));
diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp
-index 4aa6401279..510bc30724 100644
+index 0ba824c0d0..2992988008 100644
--- a/src/station_cmd.cpp
+++ b/src/station_cmd.cpp
@@ -13,6 +13,7 @@
@@ -2138,7 +2144,7 @@ index 4aa6401279..510bc30724 100644
#include "viewport_func.h"
#include "viewport_kdtree.h"
#include "command_func.h"
-@@ -99,21 +100,24 @@ bool IsHangar(TileIndex t)
+@@ -100,21 +101,24 @@ bool IsHangar(TileIndex t)
* @return Succeeded command (if zero or one station found) or failed command (for two or more stations found).
*/
template <class T>
@@ -2172,7 +2178,7 @@ index 4aa6401279..510bc30724 100644
}
*st = (closest_station == INVALID_STATION) ? nullptr : T::Get(closest_station);
return CommandCost();
-@@ -799,7 +803,7 @@ CommandCost CheckBuildableTile(TileIndex tile, uint invalid_dirs, int &allowed_z
+@@ -800,7 +804,7 @@ CommandCost CheckBuildableTile(TileIndex tile, uint invalid_dirs, int &allowed_z
return_cmd_error(STR_ERROR_FLAT_LAND_REQUIRED);
}
}
@@ -2181,16 +2187,16 @@ index 4aa6401279..510bc30724 100644
}
/* The level of this tile must be equal to allowed_z. */
-@@ -1028,7 +1032,7 @@ static CommandCost CheckFlatLandRoadStop(TileArea tile_area, DoCommandFlag flags
+@@ -1035,7 +1039,7 @@ static CommandCost CheckFlatLandRoadStop(TileArea tile_area, DoCommandFlag flags
+ ret = DoCommand(cur_tile, 0, 0, flags, CMD_LANDSCAPE_CLEAR);
+ if (ret.Failed()) return ret;
+ cost.AddCost(ret);
+- cost.AddCost(RoadBuildCost(rt) * 2);
++ cost.AddCost(RoadBuildCost(rt) * 2 * UNDERGROUND_COST_MULTIPLIER(cur_tile));
}
-
- uint roadbits_to_build = CountBits(rts) * 2 - num_roadbits;
-- cost.AddCost(_price[PR_BUILD_ROAD] * roadbits_to_build);
-+ cost.AddCost(_price[PR_BUILD_ROAD] * roadbits_to_build * UNDERGROUND_COST_MULTIPLIER(cur_tile));
}
}
-
-@@ -1047,11 +1051,13 @@ CommandCost CanExpandRailStation(const BaseStation *st, TileArea &new_ta, Axis a
+@@ -1055,11 +1059,13 @@ CommandCost CanExpandRailStation(const BaseStation *st, TileArea &new_ta, Axis a
TileArea cur_ta = st->train_station;
/* determine new size of train station region.. */
@@ -2209,7 +2215,7 @@ index 4aa6401279..510bc30724 100644
/* make sure the final size is not too big. */
if (new_ta.w > _settings_game.station.station_spread || new_ta.h > _settings_game.station.station_spread) {
-@@ -1123,7 +1129,7 @@ void GetStationLayout(byte *layout, int numtracks, int plat_len, const StationSp
+@@ -1131,7 +1137,7 @@ void GetStationLayout(byte *layout, int numtracks, int plat_len, const StationSp
* @return command cost with the error or 'okay'
*/
template <class T, StringID error_message>
@@ -2218,7 +2224,7 @@ index 4aa6401279..510bc30724 100644
{
assert(*st == nullptr);
bool check_surrounding = true;
-@@ -1149,7 +1155,7 @@ CommandCost FindJoiningBaseStation(StationID existing_station, StationID station
+@@ -1157,7 +1163,7 @@ CommandCost FindJoiningBaseStation(StationID existing_station, StationID station
if (check_surrounding) {
/* Make sure there is no more than one other station around us that is owned by us. */
@@ -2227,7 +2233,7 @@ index 4aa6401279..510bc30724 100644
if (ret.Failed()) return ret;
}
-@@ -1168,9 +1174,9 @@ CommandCost FindJoiningBaseStation(StationID existing_station, StationID station
+@@ -1176,9 +1182,9 @@ CommandCost FindJoiningBaseStation(StationID existing_station, StationID station
* @param st 'return' pointer for the found station
* @return command cost with the error or 'okay'
*/
@@ -2239,7 +2245,7 @@ index 4aa6401279..510bc30724 100644
}
/**
-@@ -1279,8 +1285,8 @@ CommandCost CmdBuildRailStation(TileIndex tile_org, DoCommandFlag flags, uint32
+@@ -1287,8 +1293,8 @@ CommandCost CmdBuildRailStation(TileIndex tile_org, DoCommandFlag flags, uint32
CommandCost cost = CheckFlatLandRailStation(new_location, flags, axis, &est, rt, affected_vehicles, spec_class, spec_index, plat_len, numtracks);
if (cost.Failed()) return cost;
/* Add construction expenses. */
@@ -2250,7 +2256,7 @@ index 4aa6401279..510bc30724 100644
Station *st = nullptr;
ret = FindJoiningStation(est, station_to_join, adjacent, new_location, &st);
-@@ -1320,8 +1326,10 @@ CommandCost CmdBuildRailStation(TileIndex tile_org, DoCommandFlag flags, uint32
+@@ -1328,8 +1334,10 @@ CommandCost CmdBuildRailStation(TileIndex tile_org, DoCommandFlag flags, uint32
byte numtracks_orig;
Track track;
@@ -2262,7 +2268,7 @@ index 4aa6401279..510bc30724 100644
st->rect.BeforeAddRect(tile_org, w_org, h_org, StationRect::ADD_TRY);
-@@ -1542,7 +1550,7 @@ CommandCost RemoveFromRailBaseStation(TileArea ta, std::vector<T *> &affected_st
+@@ -1550,7 +1558,7 @@ CommandCost RemoveFromRailBaseStation(TileArea ta, std::vector<T *> &affected_st
}
/* If we reached here, the tile is valid so increase the quantity of tiles we will remove */
@@ -2271,7 +2277,7 @@ index 4aa6401279..510bc30724 100644
if (keep_rail || IsStationTileBlocked(tile)) {
/* Don't refund the 'steel' of the track when we keep the
-@@ -1621,7 +1629,7 @@ CommandCost RemoveFromRailBaseStation(TileArea ta, std::vector<T *> &affected_st
+@@ -1629,7 +1637,7 @@ CommandCost RemoveFromRailBaseStation(TileArea ta, std::vector<T *> &affected_st
CommandCost CmdRemoveFromRailStation(TileIndex start, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
{
TileIndex end = p1 == 0 ? start : p1;
@@ -2280,7 +2286,7 @@ index 4aa6401279..510bc30724 100644
TileArea ta(start, end);
std::vector<Station *> affected_stations;
-@@ -1684,11 +1692,16 @@ CommandCost RemoveRailStation(T *st, DoCommandFlag flags, Money removal_cost)
+@@ -1692,11 +1700,16 @@ CommandCost RemoveRailStation(T *st, DoCommandFlag flags, Money removal_cost)
/* determine width and height of platforms */
TileArea ta = st->train_station;
@@ -2299,7 +2305,7 @@ index 4aa6401279..510bc30724 100644
/* only remove tiles that are actually train station tiles */
if (st->TileBelongsToRailStation(tile)) {
std::vector<T*> affected_stations; // dummy
-@@ -2053,13 +2066,21 @@ CommandCost CmdRemoveRoadStop(TileIndex tile, DoCommandFlag flags, uint32 p1, ui
+@@ -2063,13 +2076,21 @@ CommandCost CmdRemoveRoadStop(TileIndex tile, DoCommandFlag flags, uint32 p1, ui
/* Bankrupting company is not supposed to remove roads, there may be road vehicles. */
if (!keep_drive_through_roads && (flags & DC_BANKRUPT)) return CMD_ERROR;
@@ -2323,7 +2329,7 @@ index 4aa6401279..510bc30724 100644
/* Make sure the specified tile is a road stop of the correct type */
if (!IsTileType(cur_tile, MP_STATION) || !IsRoadStop(cur_tile) || (uint32)GetRoadStopType(cur_tile) != GB(p2, 0, 1)) continue;
-@@ -2243,6 +2264,10 @@ CommandCost CmdBuildAirport(TileIndex tile, DoCommandFlag flags, uint32 p1, uint
+@@ -2248,6 +2269,10 @@ CommandCost CmdBuildAirport(TileIndex tile, DoCommandFlag flags, uint32 p1, uint
if (w > _settings_game.station.station_spread || h > _settings_game.station.station_spread) {
return_cmd_error(STR_ERROR_STATION_TOO_SPREAD_OUT);
}
@@ -2335,7 +2341,7 @@ index 4aa6401279..510bc30724 100644
AirportTileTableIterator iter(as->table[layout], tile);
CommandCost cost = CheckFlatLandAirport(iter, flags);
diff --git a/src/station_gui.cpp b/src/station_gui.cpp
-index 31da16238e..521e53381d 100644
+index 2bee2d80fb..5a956c6c83 100644
--- a/src/station_gui.cpp
+++ b/src/station_gui.cpp
@@ -21,6 +21,7 @@
@@ -2556,7 +2562,7 @@ index c599753498..869ff3e09a 100644
bool Contains(TileIndex tile) const;
diff --git a/src/toolbar_gui.cpp b/src/toolbar_gui.cpp
-index 8b5f79df21..99867aeffd 100644
+index 23c10fb727..b2c7ee31bd 100644
--- a/src/toolbar_gui.cpp
+++ b/src/toolbar_gui.cpp
@@ -13,7 +13,10 @@
@@ -2570,7 +2576,7 @@ index 8b5f79df21..99867aeffd 100644
#include "command_func.h"
#include "vehicle_gui.h"
#include "rail_gui.h"
-@@ -22,6 +25,7 @@
+@@ -23,6 +26,7 @@
#include "vehicle_func.h"
#include "sound_func.h"
#include "terraform_gui.h"
@@ -2578,7 +2584,7 @@ index 8b5f79df21..99867aeffd 100644
#include "strings_func.h"
#include "company_func.h"
#include "company_gui.h"
-@@ -998,6 +1002,39 @@ static CallBackFunction MenuClickForest(int index)
+@@ -1007,6 +1011,39 @@ static CallBackFunction MenuClickForest(int index)
return CBF_NONE;
}
@@ -2618,21 +2624,21 @@ index 8b5f79df21..99867aeffd 100644
/* --- Music button menu --- */
static CallBackFunction ToolbarMusicClick(Window *w)
-@@ -1314,9 +1351,10 @@ static MenuClickedProc * const _menu_clicked_procs[] = {
- MenuClickBuildWater, // 23
- MenuClickBuildAir, // 24
- MenuClickForest, // 25
-- MenuClickMusicWindow, // 26
-- MenuClickNewspaper, // 27
-- MenuClickHelp, // 28
-+ MenuClickUnderground, // 26
-+ MenuClickMusicWindow, // 27
-+ MenuClickNewspaper, // 28
-+ MenuClickHelp, // 29
+@@ -1356,9 +1393,10 @@ static MenuClickedProc * const _menu_clicked_procs[] = {
+ MenuClickBuildWater, // 24
+ MenuClickBuildAir, // 25
+ MenuClickForest, // 26
+- MenuClickMusicWindow, // 27
+- MenuClickNewspaper, // 28
+- MenuClickHelp, // 29
++ MenuClickUnderground, // 27
++ MenuClickMusicWindow, // 28
++ MenuClickNewspaper, // 29
++ MenuClickHelp, // 30
};
/** Full blown container to make it behave exactly as we want :) */
-@@ -1481,7 +1519,7 @@ class NWidgetMainToolbarContainer : public NWidgetToolbarContainer {
+@@ -1523,7 +1561,7 @@ class NWidgetMainToolbarContainer : public NWidgetToolbarContainer {
const byte *GetButtonArrangement(uint &width, uint &arrangable_count, uint &button_count, uint &spacer_count) const override
{
static const uint SMALLEST_ARRANGEMENT = 14;
@@ -2641,7 +2647,7 @@ index 8b5f79df21..99867aeffd 100644
/* The number of buttons of each row of the toolbar should match the number of items which we want to be visible.
* The total number of buttons should be equal to arrangable_count * 2.
-@@ -1748,6 +1786,67 @@ class NWidgetMainToolbarContainer : public NWidgetToolbarContainer {
+@@ -1790,6 +1828,67 @@ class NWidgetMainToolbarContainer : public NWidgetToolbarContainer {
WID_TN_ZOOM_OUT,
WID_TN_SWITCH_BAR,
};
@@ -2709,7 +2715,7 @@ index 8b5f79df21..99867aeffd 100644
static const byte arrange_all[] = {
WID_TN_PAUSE,
WID_TN_FAST_FORWARD,
-@@ -1775,6 +1874,7 @@ class NWidgetMainToolbarContainer : public NWidgetToolbarContainer {
+@@ -1818,6 +1917,7 @@ class NWidgetMainToolbarContainer : public NWidgetToolbarContainer {
WID_TN_WATER,
WID_TN_AIR,
WID_TN_LANDSCAPE,
@@ -2717,7 +2723,7 @@ index 8b5f79df21..99867aeffd 100644
WID_TN_MUSIC_SOUND,
WID_TN_MESSAGES,
WID_TN_HELP
-@@ -1789,7 +1889,7 @@ class NWidgetMainToolbarContainer : public NWidgetToolbarContainer {
+@@ -1832,7 +1932,7 @@ class NWidgetMainToolbarContainer : public NWidgetToolbarContainer {
}
/* Introduce the split toolbar */
@@ -2726,7 +2732,7 @@ index 8b5f79df21..99867aeffd 100644
button_count = arrangable_count = full_buttons;
spacer_count = this->spacers;
-@@ -1940,6 +2040,7 @@ static ToolbarButtonProc * const _toolbar_button_procs[] = {
+@@ -1989,6 +2089,7 @@ static ToolbarButtonProc * const _toolbar_button_procs[] = {
ToolbarBuildWaterClick,
ToolbarBuildAirClick,
ToolbarForestClick,
@@ -2734,7 +2740,7 @@ index 8b5f79df21..99867aeffd 100644
ToolbarMusicClick,
ToolbarNewspaperClick,
ToolbarHelpClick,
-@@ -2225,6 +2326,7 @@ static NWidgetBase *MakeMainToolbar(int *biggest_index)
+@@ -2280,6 +2381,7 @@ static NWidgetBase *MakeMainToolbar(int *biggest_index)
SPR_IMG_BUILDWATER, // WID_TN_WATER
SPR_IMG_BUILDAIR, // WID_TN_AIR
SPR_IMG_LANDSCAPING, // WID_TN_LANDSCAPE
@@ -2743,10 +2749,10 @@ index 8b5f79df21..99867aeffd 100644
SPR_IMG_MESSAGES, // WID_TN_MESSAGES
SPR_IMG_QUERY, // WID_TN_HELP
diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp
-index f3acfb4a38..fa90f16c5c 100644
+index 65032c1fb2..635243bf54 100644
--- a/src/town_cmd.cpp
+++ b/src/town_cmd.cpp
-@@ -13,6 +13,7 @@
+@@ -14,6 +14,7 @@
#include "road_internal.h" /* Cleaning up road bits */
#include "road_cmd.h"
#include "landscape.h"
@@ -2754,17 +2760,17 @@ index f3acfb4a38..fa90f16c5c 100644
#include "viewport_func.h"
#include "viewport_kdtree.h"
#include "cmd_helper.h"
-@@ -2192,6 +2193,9 @@ static inline bool CanBuildHouseHere(TileIndex tile, bool noslope)
+@@ -2261,6 +2262,9 @@ static inline bool CanBuildHouseHere(TileIndex tile, bool noslope)
Slope slope = GetTileSlope(tile);
if ((noslope && slope != SLOPE_FLAT) || IsSteepSlope(slope)) return false;
+ /* */
+ if (IsUnderground(tile)) return false;
+
- /* building under a bridge? */
- if (IsBridgeAbove(tile)) return false;
+ /* at least one RoadTypes allow building the house here? */
+ if (!RoadTypesAllowHouseHere(tile)) return false;
-@@ -2623,6 +2627,8 @@ CommandCost CmdRenameTown(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32
+@@ -2695,6 +2699,8 @@ CommandCost CmdRenameTown(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32
t->UpdateVirtCoord();
InvalidateWindowData(WC_TOWN_DIRECTORY, 0, 1);
@@ -2807,7 +2813,7 @@ index e982abfb28..a8283b8da8 100644
if (tree_to_plant != TREE_INVALID && !IsInsideBS(tree_to_plant, _tree_base_by_landscape[_settings_game.game_creation.landscape], _tree_count_by_landscape[_settings_game.game_creation.landscape])) return CMD_ERROR;
diff --git a/src/tunnelbridge_cmd.cpp b/src/tunnelbridge_cmd.cpp
-index 78586b1a2e..f297a7bd59 100644
+index 83cec4fd36..51d9f984b9 100644
--- a/src/tunnelbridge_cmd.cpp
+++ b/src/tunnelbridge_cmd.cpp
@@ -15,6 +15,7 @@
@@ -2818,7 +2824,7 @@ index 78586b1a2e..f297a7bd59 100644
#include "viewport_func.h"
#include "cmd_helper.h"
#include "command_func.h"
-@@ -277,6 +278,10 @@ CommandCost CmdBuildBridge(TileIndex end_tile, DoCommandFlag flags, uint32 p1, u
+@@ -278,6 +279,10 @@ CommandCost CmdBuildBridge(TileIndex end_tile, DoCommandFlag flags, uint32 p1, u
return_cmd_error(STR_ERROR_CAN_T_START_AND_END_ON);
}
@@ -2829,7 +2835,7 @@ index 78586b1a2e..f297a7bd59 100644
Axis direction;
if (TileX(tile_start) == TileX(tile_end)) {
direction = AXIS_Y;
-@@ -641,6 +646,12 @@ CommandCost CmdBuildTunnel(TileIndex start_tile, DoCommandFlag flags, uint32 p1,
+@@ -669,6 +674,12 @@ CommandCost CmdBuildTunnel(TileIndex start_tile, DoCommandFlag flags, uint32 p1,
for (;;) {
end_tile += delta;
if (!IsValidTile(end_tile)) return_cmd_error(STR_ERROR_TUNNEL_THROUGH_MAP_BORDER);
@@ -3195,7 +3201,7 @@ index 0000000000..81b119545e
+
+#endif /* UNDERGROUND_GUI_H */
diff --git a/src/vehicle.cpp b/src/vehicle.cpp
-index 031b6f95e3..dde4eeffe4 100644
+index 6e26c7bfe8..1c1bf10adb 100644
--- a/src/vehicle.cpp
+++ b/src/vehicle.cpp
@@ -15,6 +15,7 @@
@@ -3383,10 +3389,10 @@ index 877efbb921..9766a06400 100644
WID_CS_START_DATE_TEXT, ///< Clickable start date value.
WID_CS_START_DATE_UP, ///< Increase start year (start later).
diff --git a/src/widgets/toolbar_widget.h b/src/widgets/toolbar_widget.h
-index c317fc9574..280d0f969c 100644
+index 5b9d1e1568..8a865ab6d6 100644
--- a/src/widgets/toolbar_widget.h
+++ b/src/widgets/toolbar_widget.h
-@@ -42,6 +42,7 @@ enum ToolbarNormalWidgets {
+@@ -43,6 +43,7 @@ enum ToolbarNormalWidgets {
WID_TN_WATER, ///< Water building toolbar.
WID_TN_AIR, ///< Airport building toolbar.
WID_TN_LANDSCAPE, ///< Landscaping toolbar.