(svn r11309) [NoAI] -Sync: with trunk r11145:11308. noai
authortruelight
Sat, 20 Oct 2007 10:42:28 +0000
branchnoai
changeset 9718 f82a4facea8b
parent 9717 2c27f9be3fb9
child 9719 546bd3f0da65
(svn r11309) [NoAI] -Sync: with trunk r11145:11308.
bin/ai/regression/regression.txt
config.lib
src/aircraft_cmd.cpp
src/clear_cmd.cpp
src/console_cmds.cpp
src/disaster_cmd.cpp
src/economy.cpp
src/functions.h
src/industry.h
src/industry_cmd.cpp
src/industry_gui.cpp
src/industry_map.h
src/landscape.cpp
src/landscape.h
src/lang/american.txt
src/lang/brazilian_portuguese.txt
src/lang/bulgarian.txt
src/lang/catalan.txt
src/lang/croatian.txt
src/lang/czech.txt
src/lang/dutch.txt
src/lang/english.txt
src/lang/estonian.txt
src/lang/french.txt
src/lang/hungarian.txt
src/lang/italian.txt
src/lang/norwegian_bokmal.txt
src/lang/portuguese.txt
src/lang/russian.txt
src/lang/slovak.txt
src/lang/slovenian.txt
src/lang/spanish.txt
src/lang/swedish.txt
src/lang/turkish.txt
src/lang/ukrainian.txt
src/lang/unfinished/afrikaans.txt
src/misc_cmd.cpp
src/misc_gui.cpp
src/music_gui.cpp
src/network/core/packet.cpp
src/newgrf.cpp
src/newgrf_cargo.cpp
src/newgrf_cargo.h
src/newgrf_commons.cpp
src/newgrf_gui.cpp
src/newgrf_house.cpp
src/newgrf_industries.cpp
src/newgrf_industrytiles.cpp
src/newgrf_text.cpp
src/newgrf_text.h
src/oldloader.cpp
src/openttd.cpp
src/openttd.h
src/player.h
src/player_face.h
src/player_gui.cpp
src/players.cpp
src/rail.cpp
src/rail.h
src/rail_cmd.cpp
src/rail_gui.cpp
src/road_cmd.cpp
src/road_gui.cpp
src/roadveh_cmd.cpp
src/saveload.cpp
src/settings.cpp
src/settings_gui.cpp
src/ship_cmd.cpp
src/slope.h
src/station_cmd.cpp
src/station_map.h
src/strgen/strgen.cpp
src/table/sprites.h
src/texteff.cpp
src/town_cmd.cpp
src/train_cmd.cpp
src/tree_cmd.cpp
src/tunnelbridge_cmd.cpp
src/variables.h
src/vehicle.cpp
src/vehicle_gui.cpp
src/viewport.cpp
src/water_cmd.cpp
src/water_map.h
src/waypoint.cpp
src/window.cpp
src/window.h
--- a/bin/ai/regression/regression.txt	Sat Oct 20 10:14:05 2007 +0000
+++ b/bin/ai/regression/regression.txt	Sat Oct 20 10:42:28 2007 +0000
@@ -9,9 +9,9 @@
  abs( 21): 21
 
 --AIBase--
-  Rand():       -1692638405
-  Rand():       -1170386787
-  Rand():       190814891
+  Rand():       -561136928
+  Rand():       1884901916
+  Rand():       -1202945897
   RandRange(0): 0
   RandRange(0): 0
   RandRange(0): 0
@@ -20,13 +20,13 @@
   RandRange(1): 0
   RandRange(2): 0
   RandRange(2): 0
-  RandRange(2): 0
+  RandRange(2): 1
+  RandRange(9): 2
+  RandRange(9): 5
   RandRange(9): 4
-  RandRange(9): 6
-  RandRange(9): 2
   Chance(1, 2): true
   Chance(1, 2): true
-  Chance(1, 2): false
+  Chance(1, 2): true
 
 --List--
   IsEmpty():     true
@@ -137,144 +137,144 @@
     1098 => 1098
     1099 => 1099
   Randomize ListDump:
-    1 => 581150761
-    2 => 780195416
-    1000 => -1005781929
-    1001 => -304338569
-    1002 => -1743669342
-    1003 => 2052174274
-    1004 => -239846598
-    1005 => -519154508
-    1006 => 1384592592
-    1007 => 92537681
-    1008 => -783011799
-    1009 => 1020927039
-    1010 => -762645416
-    1011 => 1654042603
-    1012 => 210165652
-    1013 => -1851586478
-    1014 => 208319733
-    1015 => -1211393332
-    1016 => 2052272773
-    1017 => -1489194376
-    1018 => -438907823
-    1019 => 130289291
-    1020 => -1283324111
-    1021 => -259554489
-    1022 => 1143992540
-    1023 => -1301766703
-    1024 => 2067670203
-    1025 => 1726364654
-    1026 => 939556491
-    1027 => -1134709978
-    1028 => -110608336
-    1029 => 1339284138
-    1030 => -472993361
-    1031 => 958802835
-    1032 => 761440845
-    1033 => -1469223188
-    1034 => -721599317
-    1035 => 434887418
-    1036 => -820146882
-    1037 => 274760994
-    1038 => -522727528
-    1039 => -669489971
-    1040 => 1377115572
-    1041 => 516401345
-    1042 => 295153940
-    1043 => -1055199725
-    1044 => -1143220467
-    1045 => -686775621
-    1046 => 867901084
-    1047 => 1693214681
-    1048 => -1112224853
-    1049 => 659718584
-    1051 => -1132568097
-    1052 => -1370768491
-    1053 => -1233695197
-    1054 => 824602143
-    1055 => 1213169381
-    1056 => 1616397171
-    1057 => -1494293955
-    1058 => 168525123
-    1059 => 985183216
-    1060 => 163496891
-    1061 => -1920407820
-    1062 => 512739738
-    1063 => 1098365126
-    1064 => 1522198446
-    1065 => 152025258
-    1066 => -1654530986
-    1067 => 1386785618
-    1068 => -49512268
-    1069 => 1214031860
-    1070 => 458782250
-    1071 => -1641082778
-    1072 => -1284412562
-    1073 => 1507095104
-    1074 => -1103314033
-    1075 => -837829736
-    1076 => 1245363646
-    1077 => -1003369287
-    1078 => -729296780
-    1079 => -2042801701
-    1080 => 690945725
-    1081 => 844366079
-    1082 => 1659029417
-    1083 => 585818047
-    1084 => -1199106717
-    1085 => 680742150
-    1086 => 264108503
-    1087 => -301161571
-    1088 => -132905463
-    1089 => 1892881479
-    1090 => -1903322021
-    1091 => 1017533996
-    1092 => -976386914
-    1093 => -90625762
-    1094 => -1290852461
-    1095 => -1953934605
-    1096 => 112304592
-    1097 => 1238896913
-    1098 => 1436365455
-    1099 => 825503137
+    1 => -619704336
+    2 => 1166439751
+    1000 => -914833827
+    1001 => -1215386906
+    1002 => -1069187552
+    1003 => 112127200
+    1004 => 1050904874
+    1005 => -429346856
+    1006 => -608971312
+    1007 => 1169222927
+    1008 => 1369657072
+    1009 => 767111199
+    1010 => 1904874981
+    1011 => 161085759
+    1012 => 271771856
+    1013 => -533081029
+    1014 => -1409657365
+    1015 => 1563875660
+    1016 => 1113935053
+    1017 => 792268145
+    1018 => -70442569
+    1019 => -547592946
+    1020 => -778640532
+    1021 => -1375060615
+    1022 => 318449191
+    1023 => -190171711
+    1024 => 178940318
+    1025 => 442765623
+    1026 => 313145543
+    1027 => -458470184
+    1028 => -1297320844
+    1029 => 2091522683
+    1030 => 529678468
+    1031 => 548268055
+    1032 => -9350756
+    1033 => -1719797748
+    1034 => -1837545138
+    1035 => 794565562
+    1036 => 465317634
+    1037 => -1928623851
+    1038 => -330437837
+    1039 => -956974293
+    1040 => 976574875
+    1041 => -1888843242
+    1042 => -2005628326
+    1043 => -1562648047
+    1044 => -868060600
+    1045 => -403788235
+    1046 => 367414207
+    1047 => 681820797
+    1048 => -1197099260
+    1049 => -650879767
+    1051 => 941556066
+    1052 => -36585116
+    1053 => -988001222
+    1054 => -1407695456
+    1055 => 1569591207
+    1056 => 1434294956
+    1057 => -879654590
+    1058 => 6511542
+    1059 => -270940883
+    1060 => 1646156529
+    1061 => 1457378902
+    1062 => -1703288615
+    1063 => -1530193095
+    1064 => 1852649127
+    1065 => -1071976838
+    1066 => 372901081
+    1067 => 934187143
+    1068 => -516975589
+    1069 => -1086784819
+    1070 => 1484112318
+    1071 => -2061433623
+    1072 => -1787587249
+    1073 => 1528388260
+    1074 => 658189461
+    1075 => 2114811864
+    1076 => 949664695
+    1077 => -1569338881
+    1078 => 880833979
+    1079 => 883721763
+    1080 => 632697644
+    1081 => 1556076896
+    1082 => -1316111879
+    1083 => -1721672483
+    1084 => -1693824167
+    1085 => 1135419548
+    1086 => -1387302877
+    1087 => 1713624705
+    1088 => 492025163
+    1089 => 1559280427
+    1090 => 703894820
+    1091 => -1626847649
+    1092 => 1977038480
+    1093 => -1644526188
+    1094 => -640385428
+    1095 => -726109663
+    1096 => -106206677
+    1097 => 291310901
+    1098 => 647492868
+    1099 => 421056347
   KeepTop(10):
-    1 => 581150761
-    2 => 780195416
-    1000 => -1005781929
-    1001 => -304338569
-    1002 => -1743669342
-    1003 => 2052174274
-    1004 => -239846598
-    1005 => -519154508
-    1006 => 1384592592
-    1007 => 92537681
+    1 => -619704336
+    2 => 1166439751
+    1000 => -914833827
+    1001 => -1215386906
+    1002 => -1069187552
+    1003 => 112127200
+    1004 => 1050904874
+    1005 => -429346856
+    1006 => -608971312
+    1007 => 1169222927
   KeepBottom(8):
-    1000 => -1005781929
-    1001 => -304338569
-    1002 => -1743669342
-    1003 => 2052174274
-    1004 => -239846598
-    1005 => -519154508
-    1006 => 1384592592
-    1007 => 92537681
+    1000 => -914833827
+    1001 => -1215386906
+    1002 => -1069187552
+    1003 => 112127200
+    1004 => 1050904874
+    1005 => -429346856
+    1006 => -608971312
+    1007 => 1169222927
   RemoveBottom(2):
-    1000 => -1005781929
-    1001 => -304338569
-    1002 => -1743669342
-    1003 => 2052174274
-    1004 => -239846598
-    1005 => -519154508
+    1000 => -914833827
+    1001 => -1215386906
+    1002 => -1069187552
+    1003 => 112127200
+    1004 => 1050904874
+    1005 => -429346856
   RemoveTop(2):
-    1002 => -1743669342
-    1003 => 2052174274
-    1004 => -239846598
-    1005 => -519154508
+    1002 => -1069187552
+    1003 => 112127200
+    1004 => 1050904874
+    1005 => -429346856
   RemoveList({1003, 1004}):
-    1002 => -1743669342
-    1005 => -519154508
+    1002 => -1069187552
+    1005 => -429346856
   KeepList({1003, 1004, 1005}):
-    1005 => -519154508
+    1005 => -429346856
   IsEmpty():     true
 
 --AIAirport--
@@ -332,11 +332,11 @@
   GetHangarOfAirport(): 32119
   IsHangarTile():       true
   IsAirportTile():      true
-  GetBankBalance():     90052
+  GetBankBalance():     90100
   RemoveAirport():      true
   IsHangarTile():       false
   IsAirportTile():      false
-  GetBankBalance():     89788
+  GetBankBalance():     89836
   BuildAirport():       true
 
 --AICargo--
@@ -378,7 +378,7 @@
     IsFreight():             true
     GetCargoIncome(0, 0):    0
     GetCargoIncome(10, 10):  5
-    GetCargoIncome(100, 10): 54
+    GetCargoIncome(100, 10): 53
     GetCargoIncome(10, 100): 3
   Cargo 4
     IsValidCargo():          true
@@ -410,7 +410,7 @@
     IsFreight():             true
     GetCargoIncome(0, 0):    0
     GetCargoIncome(10, 10):  6
-    GetCargoIncome(100, 10): 61
+    GetCargoIncome(100, 10): 60
     GetCargoIncome(10, 100): 4
   Cargo 8
     IsValidCargo():          true
@@ -475,11 +475,11 @@
   SetCompanyName():     true
   SetCompanyName():     false
   GetCompanyName():            Regression
-  GetPresidentName():          I. Gribble
+  GetPresidentName():          I. Campbell
   SetPresidentName():          true
   GetPresidentName():          Regression AI
   GetCompanyValue():           0
-  GetBankBalance():            84364
+  GetBankBalance():            84436
   GetCompanyName():            (null : 0x00000000)
   GetLoanAmount():             100000
   GetMaxLoanAmount():          300000
@@ -487,13 +487,13 @@
   SetLoanAmount(1):            false
   SetLoanAmount(100):          false
   SetLoanAmount(10000):        false
-  GetBankBalance():            84364
+  GetBankBalance():            84436
   GetLoanAmount():             100000
   SetMinimumLoanAmount(31337): true
-  GetBankBalance():            24364
+  GetBankBalance():            24436
   GetLoanAmount():             40000
   SetLoanAmount(10000):        true
-  GetBankBalance():            284364
+  GetBankBalance():            284436
   GetLoanAmount():             300000
 
 --Engine--
@@ -513,7 +513,7 @@
     GetCapacity():      0
     GetReliability():   82
     GetMaxSpeed():      64
-    GetPrice():         8257
+    GetPrice():         8203
     GetVehicleType():   0
   Engine 1
     IsValidEngine():    false
@@ -585,7 +585,7 @@
     GetCapacity():      0
     GetReliability():   79
     GetMaxSpeed():      112
-    GetPrice():         15334
+    GetPrice():         15234
     GetVehicleType():   0
   Engine 9
     IsValidEngine():    true
@@ -594,7 +594,7 @@
     GetCapacity():      0
     GetReliability():   83
     GetMaxSpeed():      128
-    GetPrice():         22412
+    GetPrice():         22265
     GetVehicleType():   0
   Engine 10
     IsValidEngine():    false
@@ -756,7 +756,7 @@
     GetCapacity():      40
     GetReliability():   0
     GetMaxSpeed():      0
-    GetPrice():         291359
+    GetPrice():         289453
     GetVehicleType():   0
   Engine 28
     IsValidEngine():    true
@@ -765,7 +765,7 @@
     GetCapacity():      30
     GetReliability():   0
     GetMaxSpeed():      0
-    GetPrice():         268947
+    GetPrice():         267187
     GetVehicleType():   0
   Engine 29
     IsValidEngine():    true
@@ -774,7 +774,7 @@
     GetCapacity():      30
     GetReliability():   0
     GetMaxSpeed():      0
-    GetPrice():         207608
+    GetPrice():         206250
     GetVehicleType():   0
   Engine 30
     IsValidEngine():    true
@@ -783,7 +783,7 @@
     GetCapacity():      30
     GetReliability():   0
     GetMaxSpeed():      0
-    GetPrice():         235918
+    GetPrice():         234375
     GetVehicleType():   0
   Engine 31
     IsValidEngine():    true
@@ -792,7 +792,7 @@
     GetCapacity():      25
     GetReliability():   0
     GetMaxSpeed():      0
-    GetPrice():         226482
+    GetPrice():         225000
     GetVehicleType():   0
   Engine 32
     IsValidEngine():    true
@@ -801,7 +801,7 @@
     GetCapacity():      25
     GetReliability():   0
     GetMaxSpeed():      0
-    GetPrice():         224122
+    GetPrice():         222656
     GetVehicleType():   0
   Engine 33
     IsValidEngine():    true
@@ -810,7 +810,7 @@
     GetCapacity():      30
     GetReliability():   0
     GetMaxSpeed():      0
-    GetPrice():         214686
+    GetPrice():         213281
     GetVehicleType():   0
   Engine 34
     IsValidEngine():    true
@@ -819,7 +819,7 @@
     GetCapacity():      30
     GetReliability():   0
     GetMaxSpeed():      0
-    GetPrice():         213506
+    GetPrice():         212109
     GetVehicleType():   0
   Engine 35
     IsValidEngine():    true
@@ -828,7 +828,7 @@
     GetCapacity():      30
     GetReliability():   0
     GetMaxSpeed():      0
-    GetPrice():         211147
+    GetPrice():         209765
     GetVehicleType():   0
   Engine 36
     IsValidEngine():    true
@@ -837,7 +837,7 @@
     GetCapacity():      20
     GetReliability():   0
     GetMaxSpeed():      0
-    GetPrice():         231200
+    GetPrice():         229687
     GetVehicleType():   0
   Engine 37
     IsValidEngine():    true
@@ -846,7 +846,7 @@
     GetCapacity():      20
     GetReliability():   0
     GetMaxSpeed():      0
-    GetPrice():         300796
+    GetPrice():         298828
     GetVehicleType():   0
   Engine 38
     IsValidEngine():    false
@@ -1026,7 +1026,7 @@
     GetCapacity():      45
     GetReliability():   0
     GetMaxSpeed():      0
-    GetPrice():         291359
+    GetPrice():         289453
     GetVehicleType():   0
   Engine 58
     IsValidEngine():    true
@@ -1035,7 +1035,7 @@
     GetCapacity():      35
     GetReliability():   0
     GetMaxSpeed():      0
-    GetPrice():         268947
+    GetPrice():         267187
     GetVehicleType():   0
   Engine 59
     IsValidEngine():    true
@@ -1044,7 +1044,7 @@
     GetCapacity():      35
     GetReliability():   0
     GetMaxSpeed():      0
-    GetPrice():         207608
+    GetPrice():         206250
     GetVehicleType():   0
   Engine 60
     IsValidEngine():    true
@@ -1053,7 +1053,7 @@
     GetCapacity():      35
     GetReliability():   0
     GetMaxSpeed():      0
-    GetPrice():         235918
+    GetPrice():         234375
     GetVehicleType():   0
   Engine 61
     IsValidEngine():    true
@@ -1062,7 +1062,7 @@
     GetCapacity():      30
     GetReliability():   0
     GetMaxSpeed():      0
-    GetPrice():         226482
+    GetPrice():         225000
     GetVehicleType():   0
   Engine 62
     IsValidEngine():    true
@@ -1071,7 +1071,7 @@
     GetCapacity():      30
     GetReliability():   0
     GetMaxSpeed():      0
-    GetPrice():         224122
+    GetPrice():         222656
     GetVehicleType():   0
   Engine 63
     IsValidEngine():    true
@@ -1080,7 +1080,7 @@
     GetCapacity():      35
     GetReliability():   0
     GetMaxSpeed():      0
-    GetPrice():         214686
+    GetPrice():         213281
     GetVehicleType():   0
   Engine 64
     IsValidEngine():    true
@@ -1089,7 +1089,7 @@
     GetCapacity():      35
     GetReliability():   0
     GetMaxSpeed():      0
-    GetPrice():         213506
+    GetPrice():         212109
     GetVehicleType():   0
   Engine 65
     IsValidEngine():    true
@@ -1098,7 +1098,7 @@
     GetCapacity():      35
     GetReliability():   0
     GetMaxSpeed():      0
-    GetPrice():         211147
+    GetPrice():         209765
     GetVehicleType():   0
   Engine 66
     IsValidEngine():    true
@@ -1107,7 +1107,7 @@
     GetCapacity():      25
     GetReliability():   0
     GetMaxSpeed():      0
-    GetPrice():         231200
+    GetPrice():         229687
     GetVehicleType():   0
   Engine 67
     IsValidEngine():    true
@@ -1116,7 +1116,7 @@
     GetCapacity():      25
     GetReliability():   0
     GetMaxSpeed():      0
-    GetPrice():         300796
+    GetPrice():         298828
     GetVehicleType():   0
   Engine 68
     IsValidEngine():    false
@@ -1314,7 +1314,7 @@
     GetCapacity():      47
     GetReliability():   0
     GetMaxSpeed():      0
-    GetPrice():         291359
+    GetPrice():         289453
     GetVehicleType():   0
   Engine 90
     IsValidEngine():    true
@@ -1323,7 +1323,7 @@
     GetCapacity():      37
     GetReliability():   0
     GetMaxSpeed():      0
-    GetPrice():         268947
+    GetPrice():         267187
     GetVehicleType():   0
   Engine 91
     IsValidEngine():    true
@@ -1332,7 +1332,7 @@
     GetCapacity():      37
     GetReliability():   0
     GetMaxSpeed():      0
-    GetPrice():         207608
+    GetPrice():         206250
     GetVehicleType():   0
   Engine 92
     IsValidEngine():    true
@@ -1341,7 +1341,7 @@
     GetCapacity():      37
     GetReliability():   0
     GetMaxSpeed():      0
-    GetPrice():         235918
+    GetPrice():         234375
     GetVehicleType():   0
   Engine 93
     IsValidEngine():    true
@@ -1350,7 +1350,7 @@
     GetCapacity():      32
     GetReliability():   0
     GetMaxSpeed():      0
-    GetPrice():         226482
+    GetPrice():         225000
     GetVehicleType():   0
   Engine 94
     IsValidEngine():    true
@@ -1359,7 +1359,7 @@
     GetCapacity():      32
     GetReliability():   0
     GetMaxSpeed():      0
-    GetPrice():         224122
+    GetPrice():         222656
     GetVehicleType():   0
   Engine 95
     IsValidEngine():    true
@@ -1368,7 +1368,7 @@
     GetCapacity():      37
     GetReliability():   0
     GetMaxSpeed():      0
-    GetPrice():         214686
+    GetPrice():         213281
     GetVehicleType():   0
   Engine 96
     IsValidEngine():    true
@@ -1377,7 +1377,7 @@
     GetCapacity():      37
     GetReliability():   0
     GetMaxSpeed():      0
-    GetPrice():         213506
+    GetPrice():         212109
     GetVehicleType():   0
   Engine 97
     IsValidEngine():    true
@@ -1386,7 +1386,7 @@
     GetCapacity():      37
     GetReliability():   0
     GetMaxSpeed():      0
-    GetPrice():         211147
+    GetPrice():         209765
     GetVehicleType():   0
   Engine 98
     IsValidEngine():    true
@@ -1395,7 +1395,7 @@
     GetCapacity():      27
     GetReliability():   0
     GetMaxSpeed():      0
-    GetPrice():         231200
+    GetPrice():         229687
     GetVehicleType():   0
   Engine 99
     IsValidEngine():    true
@@ -1404,7 +1404,7 @@
     GetCapacity():      27
     GetReliability():   0
     GetMaxSpeed():      0
-    GetPrice():         300796
+    GetPrice():         298828
     GetVehicleType():   0
   Engine 100
     IsValidEngine():    false
@@ -1557,7 +1557,7 @@
     GetCapacity():      31
     GetReliability():   78
     GetMaxSpeed():      112
-    GetPrice():         4953
+    GetPrice():         4920
     GetVehicleType():   1
   Engine 117
     IsValidEngine():    false
@@ -1620,7 +1620,7 @@
     GetCapacity():      20
     GetReliability():   76
     GetMaxSpeed():      96
-    GetPrice():         4458
+    GetPrice():         4428
     GetVehicleType():   1
   Engine 124
     IsValidEngine():    false
@@ -1647,7 +1647,7 @@
     GetCapacity():      22
     GetReliability():   91
     GetMaxSpeed():      96
-    GetPrice():         4747
+    GetPrice():         4715
     GetVehicleType():   1
   Engine 127
     IsValidEngine():    false
@@ -1701,7 +1701,7 @@
     GetCapacity():      21
     GetReliability():   97
     GetMaxSpeed():      96
-    GetPrice():         4540
+    GetPrice():         4510
     GetVehicleType():   1
   Engine 133
     IsValidEngine():    false
@@ -1728,7 +1728,7 @@
     GetCapacity():      14
     GetReliability():   96
     GetMaxSpeed():      96
-    GetPrice():         4334
+    GetPrice():         4305
     GetVehicleType():   1
   Engine 136
     IsValidEngine():    false
@@ -1755,7 +1755,7 @@
     GetCapacity():      14
     GetReliability():   86
     GetMaxSpeed():      96
-    GetPrice():         4417
+    GetPrice():         4387
     GetVehicleType():   1
   Engine 139
     IsValidEngine():    false
@@ -1782,7 +1782,7 @@
     GetCapacity():      20
     GetReliability():   96
     GetMaxSpeed():      96
-    GetPrice():         4706
+    GetPrice():         4674
     GetVehicleType():   1
   Engine 142
     IsValidEngine():    false
@@ -1809,7 +1809,7 @@
     GetCapacity():      20
     GetReliability():   97
     GetMaxSpeed():      96
-    GetPrice():         4871
+    GetPrice():         4838
     GetVehicleType():   1
   Engine 145
     IsValidEngine():    false
@@ -1836,7 +1836,7 @@
     GetCapacity():      22
     GetReliability():   96
     GetMaxSpeed():      96
-    GetPrice():         4995
+    GetPrice():         4961
     GetVehicleType():   1
   Engine 148
     IsValidEngine():    false
@@ -1863,7 +1863,7 @@
     GetCapacity():      15
     GetReliability():   81
     GetMaxSpeed():      96
-    GetPrice():         4623
+    GetPrice():         4592
     GetVehicleType():   1
   Engine 151
     IsValidEngine():    false
@@ -1890,7 +1890,7 @@
     GetCapacity():      12
     GetReliability():   75
     GetMaxSpeed():      96
-    GetPrice():         5985
+    GetPrice():         5945
     GetVehicleType():   1
   Engine 154
     IsValidEngine():    false
@@ -2349,7 +2349,7 @@
     GetCapacity():      220
     GetReliability():   98
     GetMaxSpeed():      48
-    GetPrice():         30670
+    GetPrice():         30465
     GetVehicleType():   2
   Engine 205
     IsValidEngine():    false
@@ -2367,7 +2367,7 @@
     GetCapacity():      100
     GetReliability():   87
     GetMaxSpeed():      64
-    GetPrice():         18402
+    GetPrice():         18279
     GetVehicleType():   2
   Engine 207
     IsValidEngine():    false
@@ -2412,7 +2412,7 @@
     GetCapacity():      160
     GetReliability():   81
     GetMaxSpeed():      48
-    GetPrice():         24536
+    GetPrice():         24372
     GetVehicleType():   2
   Engine 212
     IsValidEngine():    false
@@ -2448,7 +2448,7 @@
     GetCapacity():      25
     GetReliability():   70
     GetMaxSpeed():      477
-    GetPrice():         28900
+    GetPrice():         28710
     GetVehicleType():   3
   Engine 216
     IsValidEngine():    true
@@ -2457,7 +2457,7 @@
     GetCapacity():      65
     GetReliability():   95
     GetMaxSpeed():      477
-    GetPrice():         30964
+    GetPrice():         30761
     GetVehicleType():   3
   Engine 217
     IsValidEngine():    false
@@ -2484,7 +2484,7 @@
     GetCapacity():      30
     GetReliability():   76
     GetMaxSpeed():      477
-    GetPrice():         30964
+    GetPrice():         30761
     GetVehicleType():   3
   Engine 220
     IsValidEngine():    false
@@ -3180,17 +3180,17 @@
     118 => 0
     117 => 0
   Price ListDump:
-    153 => 5985
-    147 => 4995
-    116 => 4953
-    144 => 4871
-    126 => 4747
-    141 => 4706
-    150 => 4623
-    132 => 4540
-    123 => 4458
-    138 => 4417
-    135 => 4334
+    153 => 5945
+    147 => 4961
+    116 => 4920
+    144 => 4838
+    126 => 4715
+    141 => 4674
+    150 => 4592
+    132 => 4510
+    123 => 4428
+    138 => 4387
+    135 => 4305
     203 => 0
     202 => 0
     201 => 0
@@ -4047,7 +4047,7 @@
   IsBuoyTile():         false
   IsLockTile():         false
   IsCanalTile():        false
-  GetBankBalance():     284034
+  GetBankBalance():     284108
   BuildWaterDepot():    true
   BuildDock():          true
   BuildBuoy():          true
@@ -4058,7 +4058,7 @@
   IsBuoyTile():         true
   IsLockTile():         true
   IsCanalTile():        true
-  GetBankBalance():     254295
+  GetBankBalance():     254559
   RemoveWaterDepot():   true
   RemoveDock():         true
   RemoveBuoy():         true
@@ -4069,7 +4069,7 @@
   IsBuoyTile():         false
   IsLockTile():         false
   IsCanalTile():        false
-  GetBankBalance():     231503
+  GetBankBalance():     231914
   BuildWaterDepot():    true
   BuildDock():          true
 
@@ -4483,27 +4483,27 @@
   Town 0
     IsValidTown():   true
     GetName():       Planfield
-    GetPopulation(): 754
+    GetPopulation(): 538
     GetLocation():   15508
   Town 1
     IsValidTown():   true
     GetName():       Trenningville
-    GetPopulation(): 226
+    GetPopulation(): 236
     GetLocation():   46751
   Town 2
     IsValidTown():   true
     GetName():       Tondston
-    GetPopulation(): 320
+    GetPopulation(): 253
     GetLocation():   28365
   Town 3
     IsValidTown():   true
     GetName():       Tunford
-    GetPopulation(): 211
+    GetPopulation(): 206
     GetLocation():   41895
   Town 4
     IsValidTown():   true
     GetName():       Wrundtown
-    GetPopulation(): 396
+    GetPopulation(): 414
     GetLocation():   41450
   Town 5
     IsValidTown():   true
@@ -4513,22 +4513,22 @@
   Town 6
     IsValidTown():   true
     GetName():       Muningville
-    GetPopulation(): 579
+    GetPopulation(): 566
     GetLocation():   38200
   Town 7
     IsValidTown():   true
     GetName():       Hutfingford
-    GetPopulation(): 777
+    GetPopulation(): 652
     GetLocation():   59234
   Town 8
     IsValidTown():   true
     GetName():       Sadtown
-    GetPopulation(): 290
+    GetPopulation(): 292
     GetLocation():   51267
   Town 9
     IsValidTown():   true
     GetName():       Frindinghattan
-    GetPopulation(): 459
+    GetPopulation(): 447
     GetLocation():   5825
   Town 10
     IsValidTown():   true
@@ -4538,12 +4538,12 @@
   Town 11
     IsValidTown():   true
     GetName():       Fort Frindston
-    GetPopulation(): 197
+    GetPopulation(): 156
     GetLocation():   14935
   Town 12
     IsValidTown():   true
     GetName():       Ginborough
-    GetPopulation(): 853
+    GetPopulation(): 766
     GetLocation():   32740
   Town 13
     IsValidTown():   true
@@ -4553,22 +4553,22 @@
   Town 14
     IsValidTown():   true
     GetName():       Prundinghall
-    GetPopulation(): 336
+    GetPopulation(): 316
     GetLocation():   51298
   Town 15
     IsValidTown():   true
     GetName():       Benville
-    GetPopulation(): 776
+    GetPopulation(): 699
     GetLocation():   42338
   Town 16
     IsValidTown():   true
     GetName():       Kennville
-    GetPopulation(): 717
+    GetPopulation(): 659
     GetLocation():   17345
   Town 17
     IsValidTown():   true
     GetName():       Quartfingfield
-    GetPopulation(): 170
+    GetPopulation(): 185
     GetLocation():   24252
   Town 18
     IsValidTown():   true
@@ -4578,7 +4578,7 @@
   Town 19
     IsValidTown():   true
     GetName():       Mendingston
-    GetPopulation(): 226
+    GetPopulation(): 221
     GetLocation():   6511
   Town 20
     IsValidTown():   true
@@ -4588,22 +4588,22 @@
   Town 21
     IsValidTown():   true
     GetName():       Franinghead
-    GetPopulation(): 780
+    GetPopulation(): 598
     GetLocation():   9634
   Town 22
     IsValidTown():   true
     GetName():       Naborough
-    GetPopulation(): 191
+    GetPopulation(): 174
     GetLocation():   51891
   Town 23
     IsValidTown():   true
     GetName():       Lardborough
-    GetPopulation(): 669
+    GetPopulation(): 657
     GetLocation():   59622
   Town 24
     IsValidTown():   true
     GetName():       Little Fruford
-    GetPopulation(): 636
+    GetPopulation(): 624
     GetLocation():   19596
   Town 25
     IsValidTown():   true
@@ -4613,12 +4613,12 @@
   Town 26
     IsValidTown():   true
     GetName():       Bedburg
-    GetPopulation(): 349
+    GetPopulation(): 336
     GetLocation():   39505
   Town 27
     IsValidTown():   true
     GetName():       Fudinghattan
-    GetPopulation(): 412
+    GetPopulation(): 382
     GetLocation():   45525
   Town 28
     IsValidTown():   false
@@ -4735,17 +4735,17 @@
   KeepAboveValue(500): done
   Count():             11
   Population ListDump:
-    12 => 853
-    21 => 780
-    7 => 777
-    15 => 776
-    0 => 754
-    16 => 717
+    12 => 766
     10 => 702
-    23 => 669
-    24 => 636
-    6 => 579
+    15 => 699
+    16 => 659
+    23 => 657
+    7 => 652
+    24 => 624
+    21 => 598
+    6 => 566
     25 => 548
+    0 => 538
 
 --Vehicle--
   IsValidVehicle(-1):   false
@@ -4755,13 +4755,13 @@
   BuildVehicle():       0
   IsValidVehicle(11):   false
   --Transaction--
-    GetCosts():         5985
+    GetCosts():         5945
     Execute():          true
   IsValidVehicle(11):   true
   CloneVehicle():       12
   --Accounting--
-    GetCosts():         11970
-    Should be:          11970
+    GetCosts():         11890
+    Should be:          11890
     ResetCosts():       (null : 0x00000000)
   SellVehicle(12):      true
   IsInDepot():          true
@@ -4773,8 +4773,8 @@
   IsInDepot():          false
   IsStoppedInDepot():   false
   --Accounting--
-    GetCosts():         -5985
-    Should be:          -5985
+    GetCosts():         -5945
+    Should be:          -5945
   GetName():            Road Vehicle 1
   SetName():            true
   GetName():            MyVehicleName
@@ -4783,10 +4783,10 @@
     GetLocation():       33417
     GetEngineType():     153
     GetUnitNumber():     1
-    GetAge():            1
+    GetAge():            0
     GetMaxAge():         5490
-    GetAgeLeft():        5489
-    GetProfitThisYear(): -1
+    GetAgeLeft():        5490
+    GetProfitThisYear(): 0
     GetProfitLastYear(): 0
     GetVehicleType():    1
     IsInDepot():         false
@@ -4821,18 +4821,18 @@
     13 => 1
     11 => 1
   Age ListDump:
+    15 => 1
+    13 => 1
     12 => 1
     11 => 1
-    15 => 0
-    13 => 0
   MaxAge ListDump:
     15 => 10980
     13 => 10980
     12 => 5490
     11 => 5490
   AgeLeft ListDump:
-    15 => 10980
-    13 => 10980
+    15 => 10979
+    13 => 10979
     12 => 5489
     11 => 5489
   ProfitThisYear ListDump:
--- a/config.lib	Sat Oct 20 10:14:05 2007 +0000
+++ b/config.lib	Sat Oct 20 10:42:28 2007 +0000
@@ -882,6 +882,10 @@
 		LIBS="$LIBS -pthread"
 	fi
 
+	if [ "$os" = "FREEBSD" ]; then
+		LIBS="$LIBS -lpthread"
+	fi
+
 	if [ "$os" = "OSX" ]; then
 		LDFLAGS="$LDFLAGS -framework Cocoa"
 		if [ "$enable_dedicated" = "0" ]; then
--- a/src/aircraft_cmd.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/aircraft_cmd.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -488,6 +488,8 @@
 	if (v->type != VEH_AIRCRAFT || !CheckOwnership(v->owner)) return CMD_ERROR;
 	if (!v->IsStoppedInDepot()) return_cmd_error(STR_A01B_AIRCRAFT_MUST_BE_STOPPED);
 
+	if (HASBITS(v->vehstatus, VS_CRASHED)) return_cmd_error(STR_CAN_T_SELL_DESTROYED_VEHICLE);
+
 	SET_EXPENSES_TYPE(EXPENSES_NEW_VEHICLES);
 
 	if (flags & DC_EXEC) {
@@ -1260,8 +1262,8 @@
 			SetAircraftPosition(v, v->x_pos, v->y_pos, v->z_pos);
 			r = Random();
 			CreateEffectVehicleRel(v,
-				GB(r, 0, 4) + 4,
-				GB(r, 4, 4) + 4,
+				GB(r, 0, 4) - 4,
+				GB(r, 4, 4) - 4,
 				GB(r, 8, 4),
 				EV_EXPLOSION_SMALL);
 		}
--- a/src/clear_cmd.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/clear_cmd.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -480,7 +480,7 @@
 	if (!CheckTileOwnership(tile) && _current_player != OWNER_WATER) return CMD_ERROR;
 
 
-	if (!EnsureNoVehicle(tile)) return CMD_ERROR;
+	if (!EnsureNoVehicleOnGround(tile)) return CMD_ERROR;
 
 	if (flags & DC_EXEC) DoClearSquare(tile);
 
--- a/src/console_cmds.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/console_cmds.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -593,10 +593,8 @@
 
 DEF_CONSOLE_HOOK(ConHookValidateMaxClientsCount)
 {
-	/* XXX - hardcoded, string limiation -- TrueLight
-	 * XXX - also see network.c:NetworkStartup ~1356 */
-	if (_network_game_info.clients_max > 10) {
-		_network_game_info.clients_max = 10;
+	if (_network_game_info.clients_max > MAX_CLIENTS) {
+		_network_game_info.clients_max = MAX_CLIENTS;
 		IConsoleError("Maximum clients out of bounds, truncating to limit.");
 	}
 
--- a/src/disaster_cmd.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/disaster_cmd.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -60,7 +60,7 @@
 
 static void DisasterClearSquare(TileIndex tile)
 {
-	if (!EnsureNoVehicle(tile)) return;
+	if (!EnsureNoVehicleOnGround(tile)) return;
 
 	switch (GetTileType(tile)) {
 		case MP_RAILWAY:
--- a/src/economy.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/economy.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -1524,7 +1524,7 @@
 		byte load_amount = EngInfo(v->engine_type)->load_amount;
 		if (_patches.gradual_loading && HASBIT(EngInfo(v->engine_type)->callbackmask, CBM_VEHICLE_LOAD_AMOUNT)) {
 			uint16 cb_load_amount = GetVehicleCallback(CBID_VEHICLE_LOAD_AMOUNT, 0, 0, v->engine_type, v);
-			if (cb_load_amount != CALLBACK_FAILED) load_amount = cb_load_amount & 0xFF;
+			if (cb_load_amount != CALLBACK_FAILED && cb_load_amount != 0) load_amount = cb_load_amount & 0xFF;
 		}
 
 		GoodsEntry *ge = &st->goods[v->cargo_type];
--- a/src/functions.h	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/functions.h	Sat Oct 20 10:42:28 2007 +0000
@@ -78,7 +78,7 @@
 uint InteractiveRandomRange(uint max);
 
 /* texteff.cpp */
-bool AddAnimatedTile(TileIndex tile);
+void AddAnimatedTile(TileIndex tile);
 void DeleteAnimatedTile(TileIndex tile);
 void AnimateAnimatedTiles();
 void InitializeAnimatedTiles();
@@ -132,7 +132,6 @@
 
 bool ScrollMainWindowToTile(TileIndex tile, bool instant = false);
 bool ScrollMainWindowTo(int x, int y, bool instant = false);
-bool EnsureNoVehicle(TileIndex tile);
 bool EnsureNoVehicleOnGround(TileIndex tile);
 
 /**
--- a/src/industry.h	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/industry.h	Sat Oct 20 10:42:28 2007 +0000
@@ -66,7 +66,7 @@
 	IACT_USERCREATION,    ///< from the Fund/build window
 };
 
-enum IndustyBehaviour {
+enum IndustryBehaviour {
 	INDUSTRYBEH_NONE                  =      0,
 	INDUSTRYBEH_PLANT_FIELDS          = 1 << 0,  ///< periodically plants fileds around itself (temp and artic farms)
 	INDUSTRYBEH_CUT_TREES             = 1 << 1,  ///< cuts trees and produce first output cargo from them (lumber mill)
@@ -90,7 +90,7 @@
 };
 
 
-DECLARE_ENUM_AS_BIT_SET(IndustyBehaviour);
+DECLARE_ENUM_AS_BIT_SET(IndustryBehaviour);
 
 struct Industry;
 DECLARE_OLD_POOL(Industry, Industry, 3, 8000)
@@ -171,7 +171,7 @@
 	uint16 input_cargo_multiplier[3][2];  ///< Input cargo multipliers (multiply amount of incoming cargo for the produced cargos)
 	IndustryLifeType life_type;           ///< This is also known as Industry production flag, in newgrf specs
 	byte climate_availability;            ///< Bitmask, giving landscape enums as bit position
-	IndustyBehaviour behaviour;           ///< How this industry will behave, and how others entities can use it
+	IndustryBehaviour behaviour;           ///< How this industry will behave, and how others entities can use it
 	byte map_colour;                      ///< colour used for the small map
 	StringID name;                        ///< Displayed name of the industry
 	StringID new_industry_text;           ///< Message appearing when the industry is built
--- a/src/industry_cmd.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/industry_cmd.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -1007,7 +1007,7 @@
 	if ((i->counter & 0xFF) == 0) {
 		if (HASBIT(indsp->callback_flags, CBM_IND_PRODUCTION_256_TICKS)) IndustryProductionCallback(i, 1);
 
-		IndustyBehaviour indbehav = indsp->behaviour;
+		IndustryBehaviour indbehav = indsp->behaviour;
 		i->produced_cargo_waiting[0] = min(0xffff, i->produced_cargo_waiting[0] + i->production_rate[0]);
 		i->produced_cargo_waiting[1] = min(0xffff, i->produced_cargo_waiting[1] + i->production_rate[1]);
 
@@ -1185,6 +1185,7 @@
 
 bool IsSlopeRefused(Slope current, Slope refused)
 {
+	if (IsSteepSlope(current)) return true;
 	if (current != SLOPE_FLAT) {
 		if (refused & SLOPE_STEEP) return true;
 
@@ -1220,32 +1221,22 @@
 				return false;
 			}
 		} else {
-			if (!EnsureNoVehicle(cur_tile)) return false;
+			if (!EnsureNoVehicleOnGround(cur_tile)) return false;
 			if (MayHaveBridgeAbove(cur_tile) && IsBridgeAbove(cur_tile)) return false;
 
 			const IndustryTileSpec *its = GetIndustryTileSpec(gfx);
 
-			IndustyBehaviour ind_behav = GetIndustrySpec(type)->behaviour;
+			IndustryBehaviour ind_behav = GetIndustrySpec(type)->behaviour;
+
+			/* Perform land/water check if not disabled */
+			if (!HASBIT(its->slopes_refused, 5) && (IsWaterTile(cur_tile) == !(ind_behav & INDUSTRYBEH_BUILT_ONWATER))) return false;
 
 			if (HASBIT(its->callback_flags, CBM_INDT_SHAPE_CHECK)) {
 				custom_shape = true;
 				if (!PerformIndustryTileSlopeCheck(tile, cur_tile, its, type, gfx, itspec_index)) return false;
 			} else {
-				if (ind_behav & INDUSTRYBEH_BUILT_ONWATER) {
-					/* As soon as the tile is not water, bail out.
-					* But that does not mean the search is over.  You have
-					* to make sure every tile of the industry will be only water*/
-					if (!IsClearWaterTile(cur_tile)) return false;
-				} else {
-					Slope tileh;
-
-					if (IsClearWaterTile(cur_tile)) return false;
-
-					tileh = GetTileSlope(cur_tile, NULL);
-					if (IsSteepSlope(tileh)) return false;
-
-					refused_slope |= IsSlopeRefused(tileh, its->slopes_refused);
-				}
+				Slope tileh = GetTileSlope(cur_tile, NULL);
+				refused_slope |= IsSlopeRefused(tileh, its->slopes_refused);
 			}
 
 			if (ind_behav & INDUSTRYBEH_ONLY_INTOWN) {
@@ -1591,8 +1582,6 @@
  */
 CommandCost CmdBuildIndustry(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
 {
-	int num;
-	const IndustryTileTable * const *itt;
 	const IndustrySpec *indspec;
 
 	SET_EXPENSES_TYPE(EXPENSES_OTHER);
@@ -1617,11 +1606,15 @@
 			 * is nothing we can really do about that. */
 			if (Random() <= indspec->prospecting_chance) {
 				for (int i = 0; i < 5000; i++) {
-					uint tilespec_index = RandomRange(indspec->num_table);
-					const Industry *ind = CreateNewIndustryHelper(RandomTile(), p1, flags, indspec, tilespec_index);
+					const Industry *ind = CreateNewIndustryHelper(RandomTile(), p1, flags, indspec, RandomRange(indspec->num_table));
 					if (ind != NULL) {
 						SetDParam(0, indspec->name);
-						SetDParam(1, ind->town->index);
+						if (indspec->new_industry_text > STR_LAST_STRINGID) {
+							SetDParam(1, STR_TOWN);
+							SetDParam(2, ind->town->index);
+						} else {
+							SetDParam(1, ind->town->index);
+						}
 						AddNewsItem(indspec->new_industry_text,
 								NEWS_FLAGS(NM_THIN, NF_VIEWPORT | NF_TILE, NT_OPENCLOSE, 0), ind->xy, 0);
 						break;
@@ -1630,12 +1623,14 @@
 			}
 		}
 	} else {
-		num = indspec->num_table;
-		itt = indspec->table;
+		int count = indspec->num_table;
+		const IndustryTileTable * const *itt = indspec->table;
+		int num = RandomRange(count);
 
-
+		_error_message = STR_0239_SITE_UNSUITABLE;
 		do {
-			if (--num < 0) return_cmd_error(STR_0239_SITE_UNSUITABLE);
+			if (--count < 0) return CMD_ERROR;
+			if (--num < 0) num = indspec->num_table - 1;
 		} while (!CheckIfIndustryTilesAreFree(tile, itt[num], num, p1));
 
 		if (CreateNewIndustryHelper(tile, p1, flags, indspec, num) == NULL) return CMD_ERROR;
@@ -1829,7 +1824,12 @@
 	}
 
 	SetDParam(0, ind_spc->name);
-	SetDParam(1, ind->town->index);
+	if (ind_spc->new_industry_text > STR_LAST_STRINGID) {
+		SetDParam(1, STR_TOWN);
+		SetDParam(2, ind->town->index);
+	} else {
+		SetDParam(1, ind->town->index);
+	}
 	AddNewsItem(ind_spc->new_industry_text,
 		NEWS_FLAGS(NM_THIN, NF_VIEWPORT | NF_TILE, NT_OPENCLOSE, 0), ind->xy, 0);
 }
@@ -1984,7 +1984,13 @@
 	}
 
 	if (!suppress_message && str != STR_NULL) {
-		SetDParam(0, i->index);
+		if (str > STR_LAST_STRINGID) {
+			SetDParam(0, STR_TOWN);
+			SetDParam(1, i->town->index);
+			SetDParam(2, indspec->name);
+		} else {
+			SetDParam(0, i->index);
+		}
 		AddNewsItem(str,
 			NEWS_FLAGS(NM_THIN, NF_VIEWPORT | NF_TILE, closeit ? NT_OPENCLOSE : NT_ECONOMY, 0),
 			i->xy + TileDiffXY(1, 1), 0);
--- a/src/industry_gui.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/industry_gui.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -112,28 +112,23 @@
 				WP(w, fnd_d).timer_enabled = false;
 			}
 
-			/* We'll perform two distinct loops, one for secondary industries, and the other one for
-			 * primary ones. Each loop will fill the _fund_gui structure. */
+			/* Fill the _fund_gui structure with industries.
+			 * The tests performed after the enabled allow to load the industries
+			 * In the same way they are inserted by grf (if any)
+			 */
 			for (ind = 0; ind < NUM_INDUSTRYTYPES; ind++) {
 				indsp = GetIndustrySpec(ind);
-				if (indsp->enabled && (!indsp->IsRawIndustry() || _game_mode == GM_EDITOR)) {
+				if (indsp->enabled){
+					/* Rule is that editor mode loads all industries.
+					 * In game mode, all non raw industries are loaded too
+					 * and raw ones are loaded only when setting allows it */
+					if (_game_mode != GM_EDITOR && indsp->IsRawIndustry() && _patches.raw_industry_construction == 0) continue;
 					_fund_gui.index[_fund_gui.count] = ind;
 					_fund_gui.enabled[_fund_gui.count] = (_game_mode == GM_EDITOR) || CheckIfCallBackAllowsAvailability(ind, IACT_USERCREATION);
 					_fund_gui.count++;
 				}
 			}
 
-			if (_patches.raw_industry_construction != 0 && _game_mode != GM_EDITOR) {
-				for (ind = 0; ind < NUM_INDUSTRYTYPES; ind++) {
-					indsp = GetIndustrySpec(ind);
-					if (indsp->enabled && indsp->IsRawIndustry()) {
-						_fund_gui.index[_fund_gui.count] = ind;
-						_fund_gui.enabled[_fund_gui.count] = (_game_mode == GM_EDITOR) || CheckIfCallBackAllowsAvailability(ind, IACT_USERCREATION);
-						_fund_gui.count++;
-					}
-				}
-			}
-
 			/* first indutry type is selected.
 			 * I'll be damned if there are none available ;) */
 			WP(w, fnd_d).index = 0;
@@ -178,7 +173,7 @@
 				const IndustrySpec *indsp = GetIndustrySpec(_fund_gui.index[i + w->vscroll.pos]);
 
 				/* Draw the name of the industry in white is selected, otherwise, in orange */
-				DrawString(20,     y + offset, indsp->name, selected ? 12 : 6);
+				DrawStringTruncated(20, y + offset, indsp->name, selected ? 12 : 6, max_width - 25);
 				GfxFillRect(x,     y + 1 + offset,  x + 10, y + 7 + offset, selected ? 15 : 0);
 				GfxFillRect(x + 1, y + 2 + offset,  x +  9, y + 6 + offset, indsp->map_colour);
 			}
@@ -296,6 +291,7 @@
 		} break;
 
 		case WE_PLACE_OBJ: {
+			bool success = true;
 			/* We do not need to protect ourselves against "Random Many Industries" in this mode */
 			const IndustrySpec *indsp = GetIndustrySpec(WP(w, fnd_d).select);
 
@@ -310,17 +306,20 @@
 				_current_player = OWNER_NONE;
 				_generating_world = true;
 				_ignore_restrictions = true;
-				if (!TryBuildIndustry(e->we.place.tile, WP(w, fnd_d).select)) {
+				success = TryBuildIndustry(e->we.place.tile, WP(w, fnd_d).select);
+				if (!success) {
 					SetDParam(0, indsp->name);
 					ShowErrorMessage(_error_message, STR_0285_CAN_T_BUILD_HERE, e->we.place.pt.x, e->we.place.pt.y);
 				}
 
 				_ignore_restrictions = false;
 				_generating_world = false;
-			} else DoCommandP(e->we.place.tile, WP(w, fnd_d).select, 0, NULL, CMD_BUILD_INDUSTRY | CMD_MSG(STR_4830_CAN_T_CONSTRUCT_THIS_INDUSTRY));
+			} else {
+				success = DoCommandP(e->we.place.tile, WP(w, fnd_d).select, 0, NULL, CMD_BUILD_INDUSTRY | CMD_MSG(STR_4830_CAN_T_CONSTRUCT_THIS_INDUSTRY));
+			}
 
-			/* Whatever the outcome of the actions, just reset the cursor and the system */
-			ResetObjectToPlace();
+			/* If an industry has been built, just reset the cursor and the system */
+			if (success) ResetObjectToPlace();
 		} break;
 
 		case WE_TICK:
@@ -504,7 +503,7 @@
 				if (message != STR_NULL && message != STR_UNDEFINED) {
 					y += 10;
 
-					PrepareTextRefStackUsage();
+					PrepareTextRefStackUsage(6);
 					DrawString(2, y, message, 0);
 					StopTextRefStackUsage();
 				}
--- a/src/industry_map.h	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/industry_map.h	Sat Oct 20 10:42:28 2007 +0000
@@ -274,7 +274,7 @@
  * @param bits the random bits
  * @pre IsTileType(tile, MP_INDUSTRY)
  */
-static inline byte GetIndustryRandomBits(TileIndex tile, byte bits)
+static inline void SetIndustryRandomBits(TileIndex tile, byte bits)
 {
 	assert(IsTileType(tile, MP_INDUSTRY));
 	_me[tile].m7 = bits;
--- a/src/landscape.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/landscape.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -206,6 +206,32 @@
 	return _tile_type_procs[GetTileType(tile)]->get_slope_z_proc(tile, x, y);
 }
 
+/**
+ * Determine the Z height of the corners of a specific tile edge
+ *
+ * @pre z1 and z2 must be initialized (typ. with TileZ). The corner heights just get added.
+ *
+ * @param tileh The slope of the tile.
+ * @param edge The edge of interest.
+ * @param z1 Gets incremented by the height of the first corner of the edge. (near corner wrt. the camera)
+ * @param z2 Gets incremented by the height of the second corner of the edge. (far corner wrt. the camera)
+ */
+void GetSlopeZOnEdge(Slope tileh, DiagDirection edge, int *z1, int *z2)
+{
+	static const Slope corners[4][4] = {
+		/*    corner     |          steep slope
+		 *  z1      z2   |       z1             z2        */
+		{SLOPE_E, SLOPE_N, SLOPE_STEEP_E, SLOPE_STEEP_N}, // DIAGDIR_NE, z1 = E, z2 = N
+		{SLOPE_S, SLOPE_E, SLOPE_STEEP_S, SLOPE_STEEP_E}, // DIAGDIR_SE, z1 = S, z2 = E
+		{SLOPE_S, SLOPE_W, SLOPE_STEEP_S, SLOPE_STEEP_W}, // DIAGDIR_SW, z1 = S, z2 = W
+		{SLOPE_W, SLOPE_N, SLOPE_STEEP_W, SLOPE_STEEP_N}, // DIAGDIR_NW, z1 = W, z2 = N
+	};
+
+	if ((tileh & corners[edge][0]) != 0) *z1 += TILE_HEIGHT; // z1 is raised
+	if ((tileh & corners[edge][1]) != 0) *z2 += TILE_HEIGHT; // z2 is raised
+	if (tileh == corners[edge][2]) *z1 += TILE_HEIGHT; // z1 is highest corner of a steep slope
+	if (tileh == corners[edge][3]) *z2 += TILE_HEIGHT; // z2 is highest corner of a steep slope
+}
 
 static Slope GetFoundationSlope(TileIndex tile, uint* z)
 {
@@ -219,32 +245,34 @@
 static bool HasFoundationNW(TileIndex tile, Slope slope_here, uint z_here)
 {
 	uint z;
-	Slope slope = GetFoundationSlope(TILE_ADDXY(tile, 0, -1), &z);
 
-	return
-		(
-			z_here + (slope_here & SLOPE_N ? TILE_HEIGHT : 0) + (slope_here == SLOPE_STEEP_N ? TILE_HEIGHT : 0) >
-			z      + (slope      & SLOPE_E ? TILE_HEIGHT : 0) + (slope      == SLOPE_STEEP_E ? TILE_HEIGHT : 0)
-		) || (
-			z_here + (slope_here & SLOPE_W ? TILE_HEIGHT : 0) + (slope_here == SLOPE_STEEP_W ? TILE_HEIGHT : 0) >
-			z      + (slope      & SLOPE_S ? TILE_HEIGHT : 0) + (slope      == SLOPE_STEEP_S ? TILE_HEIGHT : 0)
-		);
+	int z_W_here = z_here;
+	int z_N_here = z_here;
+	GetSlopeZOnEdge(slope_here, DIAGDIR_NW, &z_W_here, &z_N_here);
+
+	Slope slope = GetFoundationSlope(TILE_ADDXY(tile, 0, -1), &z);
+	int z_W = z;
+	int z_N = z;
+	GetSlopeZOnEdge(slope, DIAGDIR_SE, &z_W, &z_N);
+
+	return (z_N_here > z_N) || (z_W_here > z_W);
 }
 
 
 static bool HasFoundationNE(TileIndex tile, Slope slope_here, uint z_here)
 {
 	uint z;
-	Slope slope = GetFoundationSlope(TILE_ADDXY(tile, -1, 0), &z);
 
-	return
-		(
-			z_here + (slope_here & SLOPE_N ? TILE_HEIGHT : 0) + (slope_here == SLOPE_STEEP_N ? TILE_HEIGHT : 0) >
-			z      + (slope      & SLOPE_W ? TILE_HEIGHT : 0) + (slope      == SLOPE_STEEP_W ? TILE_HEIGHT : 0)
-		) || (
-			z_here + (slope_here & SLOPE_E ? TILE_HEIGHT : 0) + (slope_here == SLOPE_STEEP_E ? TILE_HEIGHT : 0) >
-			z      + (slope      & SLOPE_S ? TILE_HEIGHT : 0) + (slope      == SLOPE_STEEP_S ? TILE_HEIGHT : 0)
-		);
+	int z_E_here = z_here;
+	int z_N_here = z_here;
+	GetSlopeZOnEdge(slope_here, DIAGDIR_NE, &z_E_here, &z_N_here);
+
+	Slope slope = GetFoundationSlope(TILE_ADDXY(tile, -1, 0), &z);
+	int z_E = z;
+	int z_N = z;
+	GetSlopeZOnEdge(slope, DIAGDIR_SW, &z_E, &z_N);
+
+	return (z_N_here > z_N) || (z_E_here > z_E);
 }
 
 
--- a/src/landscape.h	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/landscape.h	Sat Oct 20 10:42:28 2007 +0000
@@ -25,6 +25,7 @@
 
 uint GetPartialZ(int x, int y, Slope corners);
 uint GetSlopeZ(int x, int y);
+void GetSlopeZOnEdge(Slope tileh, DiagDirection edge, int *z1, int *z2);
 
 static inline Point RemapCoords(int x, int y, int z)
 {
--- a/src/lang/american.txt	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/lang/american.txt	Sat Oct 20 10:42:28 2007 +0000
@@ -860,6 +860,7 @@
 
 STR_0314_FUND_NEW_INDUSTRY                                      :{WHITE}Fund new industry
 STR_JUST_STRING                                                 :{STRING}
+STR_JUST_INT                                                    :{NUM}
 STR_0316_CAN_ONLY_BE_BUILT_IN_TOWNS                             :{WHITE}...can only be built in towns
 STR_0317_CAN_ONLY_BE_BUILT_IN_RAINFOREST                        :{WHITE}...can only be built in rainforest areas
 STR_0318_CAN_ONLY_BE_BUILT_IN_DESERT                            :{WHITE}...can only be built in desert areas
@@ -1047,6 +1048,8 @@
 STR_CONFIG_PATCHES_ROADVEH_QUEUE                                :{LTBLUE}Road vehicle queueing (with quantum effects): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_AUTOSCROLL                                   :{LTBLUE}Pan window when mouse is at the edge: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_BRIBE                                        :{LTBLUE}Allow bribing of the local authority: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ALLOW_EXCLUSIVE                              :{LTBLUE}Allow buying exclusive transport rights: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ALLOW_GIVE_MONEY                             :{LTBLUE}Allow sending money to other companies: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NONUNIFORM_STATIONS                          :{LTBLUE}Nonuniform stations: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NEW_PATHFINDING_ALL                          :{LTBLUE}New global pathfinding (NPF, overrides NTP): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_FREIGHT_TRAINS                               :{LTBLUE}Weight multiplier for freight to simulate heavy trains: {ORANGE}{STRING}
@@ -1187,6 +1190,7 @@
 STR_CONFIG_PATCHES_LARGER_TOWNS                                 :{LTBLUE}Proportion of towns that will grow twice as fast: {ORANGE}1 in {STRING}
 STR_CONFIG_PATCHES_LARGER_TOWNS_DISABLED                        :{LTBLUE}Proportion of towns that will grow twice as fast: {ORANGE}None
 STR_CONFIG_PATCHES_CITY_SIZE_MULTIPLIER                         :{LTBLUE}Initial city size multiplier: {ORANGE}{STRING}
+STR_CONFIG_MODIFIED_ROAD_REBUILD                                :{LTBLUE}Remove absurd road-elements during the road construction
 
 STR_CONFIG_PATCHES_GUI                                          :{BLACK}Interface
 STR_CONFIG_PATCHES_CONSTRUCTION                                 :{BLACK}Construction
@@ -2017,6 +2021,8 @@
 STR_5006_MUST_DEMOLISH_TUNNEL_FIRST                             :{WHITE}Must demolish tunnel first
 STR_5007_MUST_DEMOLISH_BRIDGE_FIRST                             :{WHITE}Must demolish bridge first
 STR_5008_CANNOT_START_AND_END_ON                                :{WHITE}Cannot start and end on same position
+STR_BRIDGEHEADS_NOT_SAME_HEIGHT                                 :{WHITE}Bridge heads not at the same level
+STR_BRIDGE_TOO_LOW_FOR_TERRAIN                                  :{WHITE}Bridge is too low for the terrain
 STR_500A_START_AND_END_MUST_BE_IN                               :{WHITE}Start and end must be in line
 STR_500B_SITE_UNSUITABLE_FOR_TUNNEL                             :{WHITE}Site unsuitable for tunnel entrance
 STR_500D                                                        :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY}
@@ -2777,6 +2783,8 @@
 STR_NEW_VEHICLE_TYPE                                            :{BLACK}{BIGFONT}{ENGINE}
 STR_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE                         :{BLACK}New {STRING} now available!  -  {ENGINE}
 
+STR_CAN_T_SELL_DESTROYED_VEHICLE                                :{WHITE}Can't sell destroyed vehicle...
+
 STR_CAN_T_TIMETABLE_VEHICLE                                     :{WHITE}Can't timetable vehicle...
 STR_TIMETABLE_ONLY_WAIT_AT_STATIONS                             :{WHITE}Vehicles can only wait at stations.
 STR_TIMETABLE_NOT_STOPPING_HERE                                 :{WHITE}This vehicle is not stopping at this station.
@@ -3380,3 +3388,51 @@
 STR_PROSPECT_NEW_INDUSTRY                                       :{BLACK}Prospect
 STR_BUILD_NEW_INDUSTRY                                          :{BLACK}Build
 STR_INDUSTRY_SELECTION_HINT                                     :{BLACK}Choose the appropriate industry from this list
+
+############ Face formatting
+STR_FACE_ADVANCED                                               :{BLACK}Advanced
+STR_FACE_ADVANCED_TIP                                           :{BLACK}Advanced face selection.
+STR_FACE_SIMPLE                                                 :{BLACK}Simple
+STR_FACE_SIMPLE_TIP                                             :{BLACK}Simple face selection.
+STR_FACE_LOAD                                                   :{BLACK}Load
+STR_FACE_LOAD_TIP                                               :{BLACK}Load favorite face
+STR_FACE_LOAD_DONE                                              :{WHITE}Your favorite face has been loaded from the OpenTTD config file.
+STR_FACE_FACECODE                                               :{BLACK}Player face no.
+STR_FACE_FACECODE_TIP                                           :{BLACK}View and/or set player face number
+STR_FACE_FACECODE_CAPTION                                       :{WHITE}View and/or set player face number
+STR_FACE_FACECODE_SET                                           :{WHITE}New face number code has been set.
+STR_FACE_FACECODE_ERR                                           :{WHITE}Couldn't set player face number - must be numeric between 0 and 4,294,967,295!
+STR_FACE_SAVE                                                   :{BLACK}Save
+STR_FACE_SAVE_TIP                                               :{BLACK}Save favorite face
+STR_FACE_SAVE_DONE                                              :{WHITE}This face will be saved as your favorite in the OpenTTD config file.
+STR_FACE_EUROPEAN                                               :{BLACK}European
+STR_FACE_SELECT_EUROPEAN                                        :{BLACK}Select European faces
+STR_FACE_AFRICAN                                                :{BLACK}African
+STR_FACE_SELECT_AFRICAN                                         :{BLACK}Select African faces
+STR_FACE_YES                                                    :Yes
+STR_FACE_NO                                                     :No
+STR_FACE_MOUSTACHE_EARRING_TIP                                  :{BLACK}Enable mustache or earring
+STR_FACE_HAIR                                                   :Hair:
+STR_FACE_HAIR_TIP                                               :{BLACK}Change hair
+STR_FACE_EYEBROWS                                               :Eyebrows:
+STR_FACE_EYEBROWS_TIP                                           :{BLACK}Change eyebrows
+STR_FACE_EYECOLOUR                                              :Eye color:
+STR_FACE_EYECOLOUR_TIP                                          :{BLACK}Change eyecolor
+STR_FACE_GLASSES                                                :Glasses:
+STR_FACE_GLASSES_TIP                                            :{BLACK}Enable glasses
+STR_FACE_GLASSES_TIP_2                                          :{BLACK}Change glasses
+STR_FACE_NOSE                                                   :Nose:
+STR_FACE_NOSE_TIP                                               :{BLACK}Change nose
+STR_FACE_LIPS                                                   :Lips:
+STR_FACE_MOUSTACHE                                              :Mustache:
+STR_FACE_LIPS_MOUSTACHE_TIP                                     :{BLACK}Change lips or mustache
+STR_FACE_CHIN                                                   :Chin:
+STR_FACE_CHIN_TIP                                               :{BLACK}Change chin
+STR_FACE_JACKET                                                 :Jacket:
+STR_FACE_JACKET_TIP                                             :{BLACK}Change jacket
+STR_FACE_COLLAR                                                 :Collar:
+STR_FACE_COLLAR_TIP                                             :{BLACK}Change collar
+STR_FACE_TIE                                                    :Tie:
+STR_FACE_EARRING                                                :Earring:
+STR_FACE_TIE_EARRING_TIP                                        :{BLACK}Change tie or earring
+########
--- a/src/lang/brazilian_portuguese.txt	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/lang/brazilian_portuguese.txt	Sat Oct 20 10:42:28 2007 +0000
@@ -862,6 +862,7 @@
 
 STR_0314_FUND_NEW_INDUSTRY                                      :{WHITE}Financiar nova indústria
 STR_JUST_STRING                                                 :{STRING}
+STR_JUST_INT                                                    :{NUM}
 STR_0316_CAN_ONLY_BE_BUILT_IN_TOWNS                             :{WHITE}...só pode ser construído em cidades
 STR_0317_CAN_ONLY_BE_BUILT_IN_RAINFOREST                        :{WHITE}...só pode ser construído em zonas florestais
 STR_0318_CAN_ONLY_BE_BUILT_IN_DESERT                            :{WHITE}...só pode ser construído em áreas desérticas
@@ -1049,6 +1050,8 @@
 STR_CONFIG_PATCHES_ROADVEH_QUEUE                                :{LTBLUE}Fila de automóveis (com efeitos de quantidade): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_AUTOSCROLL                                   :{LTBLUE}Deslocar janela quando o cursor está na borda do mapa: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_BRIBE                                        :{LTBLUE}Permitir o suborno da autoridade local: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ALLOW_EXCLUSIVE                              :{LTBLUE}Permtir compra de direitos exclusivos de transporte: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ALLOW_GIVE_MONEY                             :{LTBLUE}Permitir o envio de dinheiro a outras companhias: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NONUNIFORM_STATIONS                          :{LTBLUE}Estações não uniformes: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NEW_PATHFINDING_ALL                          :{LTBLUE}Novo busca de caminho global (NPF, sobrepõe NTP): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_FREIGHT_TRAINS                               :{LTBLUE}Multiplicador de peso para trens simulando trens pesados: {ORANGE}{STRING}
@@ -1189,6 +1192,7 @@
 STR_CONFIG_PATCHES_LARGER_TOWNS                                 :{LTBLUE}Proporção de cidades que irão crescer duas vezes mais rápido: {ORANGE}1 em {STRING}
 STR_CONFIG_PATCHES_LARGER_TOWNS_DISABLED                        :{LTBLUE}Proporção de cidades que irão crescer duas vezes mais rápido: {ORANGE}Nenhum
 STR_CONFIG_PATCHES_CITY_SIZE_MULTIPLIER                         :{LTBLUE}Multiplicador do tamanho inicial da cidade: {ORANGE}{STRING}
+STR_CONFIG_MODIFIED_ROAD_REBUILD                                :{LTBLUE}Remover elementos de estrada absurdos ao construir ruas
 
 STR_CONFIG_PATCHES_GUI                                          :{BLACK}Interface
 STR_CONFIG_PATCHES_CONSTRUCTION                                 :{BLACK}Construção
@@ -2021,6 +2025,8 @@
 STR_5006_MUST_DEMOLISH_TUNNEL_FIRST                             :{WHITE}Necessário demolir o túnel primeiro
 STR_5007_MUST_DEMOLISH_BRIDGE_FIRST                             :{WHITE}Necessário demolir a ponte primeiro
 STR_5008_CANNOT_START_AND_END_ON                                :{WHITE}Impossível iniciar e terminar no mesmo ponto
+STR_BRIDGEHEADS_NOT_SAME_HEIGHT                                 :{WHITE}Extremidades da ponte não estão no mesmo nível
+STR_BRIDGE_TOO_LOW_FOR_TERRAIN                                  :{WHITE}Ponte é muito baixa para o terreno
 STR_500A_START_AND_END_MUST_BE_IN                               :{WHITE}Inicio e fim necessitam estar alinhados
 STR_500B_SITE_UNSUITABLE_FOR_TUNNEL                             :{WHITE}O local não é adequado para a entrada do túnel
 STR_500D                                                        :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY}
@@ -2781,6 +2787,8 @@
 STR_NEW_VEHICLE_TYPE                                            :{BLACK}{BIGFONT}{ENGINE}
 STR_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE                         :{BLACK}Novo {STRING} agora disponível!  -  {ENGINE}
 
+STR_CAN_T_SELL_DESTROYED_VEHICLE                                :{WHITE}Impossível vender veículo destruído...
+
 STR_CAN_T_TIMETABLE_VEHICLE                                     :{WHITE}Impossível programar veículo...
 STR_TIMETABLE_ONLY_WAIT_AT_STATIONS                             :{WHITE}Veículos só podem aguardar em estações
 STR_TIMETABLE_NOT_STOPPING_HERE                                 :{WHITE}Esse veículo não pára nesta estação
@@ -3384,3 +3392,51 @@
 STR_PROSPECT_NEW_INDUSTRY                                       :{BLACK}Prosperir
 STR_BUILD_NEW_INDUSTRY                                          :{BLACK}Construir
 STR_INDUSTRY_SELECTION_HINT                                     :{BLACK}Escolha a indústria apropriada
+
+############ Face formatting
+STR_FACE_ADVANCED                                               :{BLACK}Avançado
+STR_FACE_ADVANCED_TIP                                           :{BLACK}Seleção de face avançada.
+STR_FACE_SIMPLE                                                 :{BLACK}Simples
+STR_FACE_SIMPLE_TIP                                             :{BLACK}Seleção de face simples.
+STR_FACE_LOAD                                                   :{BLACK}Carregar
+STR_FACE_LOAD_TIP                                               :{BLACK}Carregar face favorita
+STR_FACE_LOAD_DONE                                              :{WHITE}Sua face favorita foi carregada do arquivo de configuração do OpenTTD.
+STR_FACE_FACECODE                                               :{BLACK}Número da face do jogador.
+STR_FACE_FACECODE_TIP                                           :{BLACK}Ver e/ou alterar número da face do jogador
+STR_FACE_FACECODE_CAPTION                                       :{WHITE}Ver e/ou alterar número da face do jogador
+STR_FACE_FACECODE_SET                                           :{WHITE}Novo código de número da face face foi alterado
+STR_FACE_FACECODE_ERR                                           :{WHITE}Não pode alterar o número de face do jogador  precisa ser um número entre 0 e 4,294,967,295!
+STR_FACE_SAVE                                                   :{BLACK}Salvar
+STR_FACE_SAVE_TIP                                               :{BLACK}Salvar face favorita
+STR_FACE_SAVE_DONE                                              :{WHITE}Esta face irá ser salva como sua face favorita no arquivo de configuração do OpenTTD.
+STR_FACE_EUROPEAN                                               :{BLACK}Europeu
+STR_FACE_SELECT_EUROPEAN                                        :{BLACK}Selecione faces européias
+STR_FACE_AFRICAN                                                :{BLACK}Africano
+STR_FACE_SELECT_AFRICAN                                         :{BLACK}Selecione faces africanas
+STR_FACE_YES                                                    :Sim
+STR_FACE_NO                                                     :Não
+STR_FACE_MOUSTACHE_EARRING_TIP                                  :{BLACK}Ativar bigode ou brinco
+STR_FACE_HAIR                                                   :Cabelo:
+STR_FACE_HAIR_TIP                                               :{BLACK}Alterar cabelo
+STR_FACE_EYEBROWS                                               :Sombrancelhas:
+STR_FACE_EYEBROWS_TIP                                           :{BLACK}Alterar sombrancelhas
+STR_FACE_EYECOLOUR                                              :Cor do olho:
+STR_FACE_EYECOLOUR_TIP                                          :{BLACK}Alterar cor do olho
+STR_FACE_GLASSES                                                :Óculos:
+STR_FACE_GLASSES_TIP                                            :{BLACK}Ativar óculos
+STR_FACE_GLASSES_TIP_2                                          :{BLACK}Alterar óculos
+STR_FACE_NOSE                                                   :Nariz:
+STR_FACE_NOSE_TIP                                               :{BLACK}Alterar nariz
+STR_FACE_LIPS                                                   :Boca:
+STR_FACE_MOUSTACHE                                              :Bigode:
+STR_FACE_LIPS_MOUSTACHE_TIP                                     :{BLACK}Alterar boca ou bigode
+STR_FACE_CHIN                                                   :Queixo:
+STR_FACE_CHIN_TIP                                               :{BLACK}Alterar queixo
+STR_FACE_JACKET                                                 :Casaco:
+STR_FACE_JACKET_TIP                                             :{BLACK}Alterar casaco
+STR_FACE_COLLAR                                                 :Colarinho:
+STR_FACE_COLLAR_TIP                                             :{BLACK}Alterar colarinho
+STR_FACE_TIE                                                    :Gravata:
+STR_FACE_EARRING                                                :Brinco:
+STR_FACE_TIE_EARRING_TIP                                        :{BLACK}Alterar gravata ou brinco
+########
--- a/src/lang/bulgarian.txt	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/lang/bulgarian.txt	Sat Oct 20 10:42:28 2007 +0000
@@ -862,6 +862,7 @@
 
 STR_0314_FUND_NEW_INDUSTRY                                      :{WHITE}Инвестирай в нова индустрия
 STR_JUST_STRING                                                 :{STRING}
+STR_JUST_INT                                                    :{NUM}
 STR_0316_CAN_ONLY_BE_BUILT_IN_TOWNS                             :{WHITE}...може да бъде построено само в градовете
 STR_0317_CAN_ONLY_BE_BUILT_IN_RAINFOREST                        :{WHITE}...може да бъде построено само около и в джунглите
 STR_0318_CAN_ONLY_BE_BUILT_IN_DESERT                            :{WHITE}...може да бъде построено само около и в пустините
@@ -1047,6 +1048,8 @@
 STR_CONFIG_PATCHES_ROADVEH_QUEUE                                :{LTBLUE}Опашка на колите (със сумарен ефект): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_AUTOSCROLL                                   :{LTBLUE}Преместване на прозореца когато мишката е в края: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_BRIBE                                        :{LTBLUE}Подкупване на местната власт: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ALLOW_EXCLUSIVE                              :{LTBLUE}Позволи купуване на изклучителни транспортни права: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ALLOW_GIVE_MONEY                             :{LTBLUE}Позволи изпращане на пари до други компаний: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NONUNIFORM_STATIONS                          :{LTBLUE}Нестандартни станции: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NEW_PATHFINDING_ALL                          :{LTBLUE}Нов глобален навигатор (NPF, отменя NTP): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_FREIGHT_TRAINS                               :{LTBLUE}Теглови множител към товарите за симулация на тежки влакове: {ORANGE}{STRING}
@@ -1105,6 +1108,9 @@
 STR_CONFIG_PATCHES_SCROLLWHEEL_OFF                              :Изклучен
 STR_CONFIG_PATCHES_SCROLLWHEEL_MULTIPLIER                       :{LTBLUE}Scrollwheel скорост на картата: {ORANGE}{STRING}
 
+STR_CONFIG_PATCHES_RIGHT_MOUSE_BTN_EMU                          :{LTBLUE}Дясно-щракане емулациа: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_RIGHT_MOUSE_BTN_EMU_COMMAND                  :Команда-щракане
+STR_CONFIG_PATCHES_RIGHT_MOUSE_BTN_EMU_CONTROL                  :Контрол-щракане
 STR_CONFIG_PATCHES_RIGHT_MOUSE_BTN_EMU_OFF                      :Изключен
 
 STR_CONFIG_PATCHES_PAUSE_ON_NEW_GAME                            :{LTBLUE}Автоматична пауза стартирайки нова игра: {ORANGE}{STRING}
@@ -1390,6 +1396,7 @@
 STR_NETWORK_CLIENTS_SELECT                                      :{BLACK}{SKIP}{SKIP}{NUM} клиент{P "" s}
 STR_NETWORK_NUMBER_OF_CLIENTS                                   :{BLACK}Макс. клиенти:
 STR_NETWORK_NUMBER_OF_CLIENTS_TIP                               :{BLACK}Избор на максималния брой клиенти. Не всички слотове трябва да се попълнят
+STR_NETWORK_COMPANIES_SELECT                                    :{BLACK}{SKIP}{SKIP}{SKIP}{NUM} компани{P а ий}
 STR_NETWORK_NUMBER_OF_COMPANIES                                 :{BLACK}Макс. компании:
 STR_NETWORK_NUMBER_OF_COMPANIES_TIP                             :{BLACK}Ограничаване на играта до определен брой компании
 STR_NETWORK_SPECTATORS_SELECT                                   :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{NUM}  зрител{P "" s}
@@ -1626,8 +1633,11 @@
 STR_RAILROAD_TRACK_WITH_PRESIGNALS                              :ЖП линия с пре-сигнали
 STR_RAILROAD_TRACK_WITH_EXITSIGNALS                             :ЖП линия с изходни сигнали
 STR_RAILROAD_TRACK_WITH_COMBOSIGNALS                            :Железопътна линиа с комбинирани знаци
+STR_RAILROAD_TRACK_WITH_NORMAL_PRESIGNALS                       :Железопътна линиа с нормални и пре-сигнали
 STR_RAILROAD_TRACK_WITH_NORMAL_EXITSIGNALS                      :Железопътна линиа с нормални и изходни сигнали
 STR_RAILROAD_TRACK_WITH_NORMAL_COMBOSIGNALS                     :Железопътна линиа с нормални и комбинирани знаци
+STR_RAILROAD_TRACK_WITH_PRE_EXITSIGNALS                         :Железопътна линиа с пре- и изходни сигнали
+STR_RAILROAD_TRACK_WITH_PRE_COMBOSIGNALS                        :Железопътна линиа с пре- и комбинирани сигнали
 STR_RAILROAD_TRACK_WITH_EXIT_COMBOSIGNALS                       :Железопътна линиа с изходни и комбинирани знаци
 STR_MUST_REMOVE_RAILWAY_STATION_FIRST                           :{WHITE}Железопътната гара трябва да бъде премахната първо
 
@@ -2008,6 +2018,8 @@
 STR_5006_MUST_DEMOLISH_TUNNEL_FIRST                             :{WHITE}Първо разрушете тунела
 STR_5007_MUST_DEMOLISH_BRIDGE_FIRST                             :{WHITE}Първо трябва да разрушите моста
 STR_5008_CANNOT_START_AND_END_ON                                :{WHITE}Не може да започва и да свърша на едно и също място
+STR_BRIDGEHEADS_NOT_SAME_HEIGHT                                 :{WHITE}Мостни начала не са на същото ниво
+STR_BRIDGE_TOO_LOW_FOR_TERRAIN                                  :{WHITE}Мостът е ту нисък за теренът
 STR_500A_START_AND_END_MUST_BE_IN                               :{WHITE}Началото и краят трябва да са на една линия
 STR_500B_SITE_UNSUITABLE_FOR_TUNNEL                             :{WHITE}Мястото е неподходящо за вход на тунел
 STR_500D                                                        :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY}
@@ -2629,6 +2641,7 @@
 STR_TIMETABLE_TRAVEL_FOR                                        :Патувай за {STRING}
 STR_TIMETABLE_STAY_FOR                                          :и остани за {STRING}
 STR_TIMETABLE_DAYS                                              :{COMMA} ден{P "" s}
+STR_TIMETABLE_TICKS                                             :{COMMA} щракане{P "" та}
 
 STR_HEADING_FOR_TRAIN_DEPOT                                     :{ORANGE}Отиващ към Влаковото депо на {TOWN}
 STR_HEADING_FOR_TRAIN_DEPOT_VEL                                 :{ORANGE}Отиващ към Влаковото депо на {TOWN}, {VELOCITY}
@@ -2767,6 +2780,8 @@
 STR_NEW_VEHICLE_TYPE                                            :{BLACK}{BIGFONT}{ENGINE}
 STR_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE                         :{BLACK}Нов {STRING} е на разположение! - {ENGINE}
 
+STR_CAN_T_SELL_DESTROYED_VEHICLE                                :{WHITE}Унищожено превозно средство не може да се продаде...
+
 STR_TIMETABLE_ONLY_WAIT_AT_STATIONS                             :{WHITE}Превозни средства могат да чакат само на гари.
 STR_TIMETABLE_NOT_STOPPING_HERE                                 :{WHITE}Това превознот средство не спира на тази гара.
 STR_TIMETABLE_CHANGE_TIME                                       :{BLACK}Промени времето
@@ -2826,6 +2841,8 @@
 STR_902E_NAME_ROAD_VEHICLE                                      :{BLACK}Преименувай МПС-то
 STR_902F_CITIZENS_CELEBRATE_FIRST                               :{BLACK}{BIGFONT}Хората празнуват . . .{}Първи автобус пристигна на {STATION}!
 STR_9030_CITIZENS_CELEBRATE_FIRST                               :{BLACK}{BIGFONT}Хората празнуват . . .{}Първи камион пристигна на {STATION}!
+STR_902F_CITIZENS_CELEBRATE_FIRST_TRAM                          :{BLACK}{BIGFONT}Гражданите празнуват . . .{}Първиат пътнически трамвай пристига на {STATION}!
+STR_9030_CITIZENS_CELEBRATE_FIRST_TRAM                          :{BLACK}{BIGFONT}Гражданите празнуват . . .{}Първиат товарен трамвай пристига на {STATION}!
 STR_9031_ROAD_VEHICLE_CRASH_DRIVER                              :{BLACK}{BIGFONT}Пътно-транспортно Произшествие!{}Шофьор загина на място при екплозия на МПС след сблъсък с влак
 STR_9032_ROAD_VEHICLE_CRASH_DIE                                 :{BLACK}{BIGFONT}Пътно-транспортно Произшествие!{}{COMMA} загинаха на място при екплозия на МПС след сблъсък с влак
 STR_9033_CAN_T_MAKE_VEHICLE_TURN                                :{WHITE}Не може да обърнеш МПС-то...
@@ -3366,3 +3383,50 @@
 STR_PROSPECT_NEW_INDUSTRY                                       :{BLACK}Перспектива
 STR_BUILD_NEW_INDUSTRY                                          :{BLACK}Построи
 STR_INDUSTRY_SELECTION_HINT                                     :{BLACK}Избери правилната промишленост от следниат списък
+
+############ Face formatting
+STR_FACE_ADVANCED                                               :{BLACK}Hапреднат
+STR_FACE_ADVANCED_TIP                                           :{BLACK}Напредната лице селекциа.
+STR_FACE_SIMPLE                                                 :{BLACK}Прост
+STR_FACE_SIMPLE_TIP                                             :{BLACK}Проста лице селекциа.
+STR_FACE_LOAD                                                   :{BLACK}Зареди
+STR_FACE_LOAD_TIP                                               :{BLACK}Зареди любимо лице
+STR_FACE_LOAD_DONE                                              :{WHITE}Твоето любимо лице е заредено от OpenTTD config файлът.
+STR_FACE_FACECODE_TIP                                           :{BLACK}Виж и/или избери номер на лицето на играчът
+STR_FACE_FACECODE_CAPTION                                       :{WHITE}Виж и/или избери номер на лицето на играчът
+STR_FACE_FACECODE_SET                                           :{WHITE}Нов номер на лицето е избран.
+STR_FACE_FACECODE_ERR                                           :{WHITE}Нов номер на лицето неможе да бъде избран - трябва да бъде номер между 0 и 4,294,967,295!
+STR_FACE_SAVE                                                   :{BLACK}Запази
+STR_FACE_SAVE_TIP                                               :{BLACK}Запази любимо лице
+STR_FACE_SAVE_DONE                                              :{WHITE}Това лице ще бъде запазено като твоето любимо в OpenTTD config файлът.
+STR_FACE_EUROPEAN                                               :{BLACK}Eвропеец
+STR_FACE_SELECT_EUROPEAN                                        :{BLACK}Избери Европейски лица
+STR_FACE_AFRICAN                                                :{BLACK}Aфриканец
+STR_FACE_SELECT_AFRICAN                                         :{BLACK}Избери Африкански лица
+STR_FACE_YES                                                    :Дa
+STR_FACE_NO                                                     :He
+STR_FACE_MOUSTACHE_EARRING_TIP                                  :{BLACK}Позволи мустак или обица
+STR_FACE_HAIR                                                   :Kоса:
+STR_FACE_HAIR_TIP                                               :{BLACK}Cмени kocaтa
+STR_FACE_EYEBROWS                                               :Вежди:
+STR_FACE_EYEBROWS_TIP                                           :{BLACK}Смени веждите
+STR_FACE_EYECOLOUR                                              :Цвят на очи:
+STR_FACE_EYECOLOUR_TIP                                          :{BLACK}Смени цветът на очите
+STR_FACE_GLASSES                                                :Oчила:
+STR_FACE_GLASSES_TIP                                            :{BLACK}Позволи oчила
+STR_FACE_GLASSES_TIP_2                                          :{BLACK}Cмени очилатa
+STR_FACE_NOSE                                                   :Hoc:
+STR_FACE_NOSE_TIP                                               :{BLACK}Cмени носът
+STR_FACE_LIPS                                                   :Устни:
+STR_FACE_MOUSTACHE                                              :Mустак :
+STR_FACE_LIPS_MOUSTACHE_TIP                                     :{BLACK}Cмени устните или mустакът
+STR_FACE_CHIN                                                   :Брада:
+STR_FACE_CHIN_TIP                                               :{BLACK}Cмени брадатa
+STR_FACE_JACKET                                                 :Cако:
+STR_FACE_JACKET_TIP                                             :{BLACK}Cмени cakoтo
+STR_FACE_COLLAR                                                 :Яка:
+STR_FACE_COLLAR_TIP                                             :{BLACK}Cмени якатa
+STR_FACE_TIE                                                    :Вратовръзкa:
+STR_FACE_EARRING                                                :Oбица:
+STR_FACE_TIE_EARRING_TIP                                        :{BLACK}Cмени вратовръзкатa или oбицатa
+########
--- a/src/lang/catalan.txt	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/lang/catalan.txt	Sat Oct 20 10:42:28 2007 +0000
@@ -860,6 +860,7 @@
 
 STR_0314_FUND_NEW_INDUSTRY                                      :{WHITE}Financia una nova indústria
 STR_JUST_STRING                                                 :{STRING}
+STR_JUST_INT                                                    :{NUM}
 STR_0316_CAN_ONLY_BE_BUILT_IN_TOWNS                             :{WHITE}...només es pot construir en poblacions
 STR_0317_CAN_ONLY_BE_BUILT_IN_RAINFOREST                        :{WHITE}...només es pot construir en àrees de selva tropical
 STR_0318_CAN_ONLY_BE_BUILT_IN_DESERT                            :{WHITE}...només es pot construir en àrees de desert
@@ -1047,6 +1048,8 @@
 STR_CONFIG_PATCHES_ROADVEH_QUEUE                                :{LTBLUE}Cues d'automòbils (amb efectes quàntics): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_AUTOSCROLL                                   :{LTBLUE}Finestra d'avis quan el ratolí és al marc del programa: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_BRIBE                                        :{LTBLUE}Permet subornar a les autoritats locals: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ALLOW_EXCLUSIVE                              :{LTBLUE}Permet comprar els drets del transport en exclusiva: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ALLOW_GIVE_MONEY                             :{LTBLUE}Permet enviar diners a altres companyies: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NONUNIFORM_STATIONS                          :{LTBLUE}Estacions no uniformes: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NEW_PATHFINDING_ALL                          :{LTBLUE}Nova cerca de rutes global (NPF, anul·la NTP): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_FREIGHT_TRAINS                               :{LTBLUE}Multiplicador de pes per contenidor per simular trens pesats: {ORANGE}{STRING}
@@ -1187,6 +1190,7 @@
 STR_CONFIG_PATCHES_LARGER_TOWNS                                 :{LTBLUE}Proporció de ciutats que creixeran el doble de ràpid: {ORANGE}1 de cada {STRING}
 STR_CONFIG_PATCHES_LARGER_TOWNS_DISABLED                        :{LTBLUE}Proporció de ciutats que creixeran el doble de ràpid: {ORANGE}Cap
 STR_CONFIG_PATCHES_CITY_SIZE_MULTIPLIER                         :{LTBLUE}Multiplicador de mida de ciutat inicial: {ORANGE}{STRING}
+STR_CONFIG_MODIFIED_ROAD_REBUILD                                :{LTBLUE}Treu els elements de carretera absurds durant la reconstrucció de carretera
 
 STR_CONFIG_PATCHES_GUI                                          :{BLACK}Interficie
 STR_CONFIG_PATCHES_CONSTRUCTION                                 :{BLACK}Construcció
@@ -2017,6 +2021,8 @@
 STR_5006_MUST_DEMOLISH_TUNNEL_FIRST                             :{WHITE}Primer has d'enderrocar el túnel
 STR_5007_MUST_DEMOLISH_BRIDGE_FIRST                             :{WHITE}Primer has d'enderrocar el pont
 STR_5008_CANNOT_START_AND_END_ON                                :{WHITE}No es pot començar i acabar a la mateixa posició
+STR_BRIDGEHEADS_NOT_SAME_HEIGHT                                 :{WHITE}Les capçaleres del pont no són al mateix nivell
+STR_BRIDGE_TOO_LOW_FOR_TERRAIN                                  :{WHITE}El pont és massa baix pel terreny
 STR_500A_START_AND_END_MUST_BE_IN                               :{WHITE}Inici i final han d'estar en línia recta
 STR_500B_SITE_UNSUITABLE_FOR_TUNNEL                             :{WHITE}Lloc inadequat per l'entrada del túnel
 STR_500D                                                        :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY}
@@ -2777,6 +2783,8 @@
 STR_NEW_VEHICLE_TYPE                                            :{BLACK}{BIGFONT}{ENGINE}
 STR_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE                         :{BLACK}Nou/Nova {STRING} disponible!  -  {ENGINE}
 
+STR_CAN_T_SELL_DESTROYED_VEHICLE                                :{WHITE}No es pot vendre el vehicle destruït...
+
 STR_CAN_T_TIMETABLE_VEHICLE                                     :{WHITE}Impossible establir l'horari del vehicle...
 STR_TIMETABLE_ONLY_WAIT_AT_STATIONS                             :{WHITE}Els vehicles només poden esperar a les estacions.
 STR_TIMETABLE_NOT_STOPPING_HERE                                 :{WHITE}Aquest vehicle no para en aquesta estació.
@@ -3380,3 +3388,51 @@
 STR_PROSPECT_NEW_INDUSTRY                                       :{BLACK}Prospecciona
 STR_BUILD_NEW_INDUSTRY                                          :{BLACK}Construeix
 STR_INDUSTRY_SELECTION_HINT                                     :{BLACK}Escolleix el tipus d'indústria adequada d'aquesta llista
+
+############ Face formatting
+STR_FACE_ADVANCED                                               :{BLACK}Avançat
+STR_FACE_ADVANCED_TIP                                           :{BLACK}Selecció de cara avançada.
+STR_FACE_SIMPLE                                                 :{BLACK}Simple
+STR_FACE_SIMPLE_TIP                                             :{BLACK}Selecció de cara simple.
+STR_FACE_LOAD                                                   :{BLACK}Carrega
+STR_FACE_LOAD_TIP                                               :{BLACK}Carrega la cara preferida
+STR_FACE_LOAD_DONE                                              :{WHITE}La teva cara preferida ha estat carregada des de l'arxiu de configuració d'OpenTTD.
+STR_FACE_FACECODE                                               :{BLACK}Cara jugador nu.
+STR_FACE_FACECODE_TIP                                           :{BLACK}Veure i/o assigna la cara del jugador número
+STR_FACE_FACECODE_CAPTION                                       :{WHITE}Veure i/o assigna la cara del jugador número
+STR_FACE_FACECODE_SET                                           :{WHITE}El número de la nova cara ha estat assignat.
+STR_FACE_FACECODE_ERR                                           :{WHITE}No s'ha pogut assignar el número de cara del jugador - ha de ser un nombre entre 0 i 4,294,967,295!
+STR_FACE_SAVE                                                   :{BLACK}Desa
+STR_FACE_SAVE_TIP                                               :{BLACK}Desa la cara preferida
+STR_FACE_SAVE_DONE                                              :{WHITE}Aquesta cara serà desada com a preferida a l'arxiu de configuració d'OpenTTD.
+STR_FACE_EUROPEAN                                               :{BLACK}Europea
+STR_FACE_SELECT_EUROPEAN                                        :{BLACK}Selecciona cares europees
+STR_FACE_AFRICAN                                                :{BLACK}Africana
+STR_FACE_SELECT_AFRICAN                                         :{BLACK}Selecciona cares africanes
+STR_FACE_YES                                                    :Si
+STR_FACE_NO                                                     :No
+STR_FACE_MOUSTACHE_EARRING_TIP                                  :{BLACK}Activa el bigoti o les arracades
+STR_FACE_HAIR                                                   :Cabell:
+STR_FACE_HAIR_TIP                                               :{BLACK}Canvia el cabell
+STR_FACE_EYEBROWS                                               :Celles
+STR_FACE_EYEBROWS_TIP                                           :{BLACK}Canvia les celles
+STR_FACE_EYECOLOUR                                              :Color dels ulls:
+STR_FACE_EYECOLOUR_TIP                                          :{BLACK}Canvia el color del ulls:
+STR_FACE_GLASSES                                                :Ulleres:
+STR_FACE_GLASSES_TIP                                            :{BLACK}Activa les ulleres
+STR_FACE_GLASSES_TIP_2                                          :{BLACK}Canvia les ulleres
+STR_FACE_NOSE                                                   :Nas:
+STR_FACE_NOSE_TIP                                               :{BLACK}Canvia el nas
+STR_FACE_LIPS                                                   :Llavis:
+STR_FACE_MOUSTACHE                                              :Bigoti:
+STR_FACE_LIPS_MOUSTACHE_TIP                                     :{BLACK}Canvia els llavis o el bigoti
+STR_FACE_CHIN                                                   :Barbeta:
+STR_FACE_CHIN_TIP                                               :{BLACK}Canvia la barbeta
+STR_FACE_JACKET                                                 :Jaqueta:
+STR_FACE_JACKET_TIP                                             :{BLACK}Canvia la jaqueta
+STR_FACE_COLLAR                                                 :Collaret:
+STR_FACE_COLLAR_TIP                                             :{BLACK}Canvia el collaret
+STR_FACE_TIE                                                    :Corbata:
+STR_FACE_EARRING                                                :Arracades:
+STR_FACE_TIE_EARRING_TIP                                        :{BLACK}Canvia la corbata o les arracades
+########
--- a/src/lang/croatian.txt	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/lang/croatian.txt	Sat Oct 20 10:42:28 2007 +0000
@@ -1049,6 +1049,8 @@
 STR_CONFIG_PATCHES_ROADVEH_QUEUE                                :{LTBLUE}Nizanje cestovnih vozila (s kvantnim učincima): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_AUTOSCROLL                                   :{LTBLUE}Pomakni prozor kada je miš na rubu: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_BRIBE                                        :{LTBLUE}Dopusti potkupljivanje lokalne samouprave: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ALLOW_EXCLUSIVE                              :{LTBLUE}Dopusti kupovinu ekskluzivnih prijevoznih prava: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ALLOW_GIVE_MONEY                             :{LTBLUE}Dopusti slanje novca drugim tvrtkama: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NONUNIFORM_STATIONS                          :{LTBLUE}Neujednačene stanice: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NEW_PATHFINDING_ALL                          :{LTBLUE}Novo globalno pronalaženje puteva (NPF, isključuje NTP): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_FREIGHT_TRAINS                               :{LTBLUE}Težinski množitelj za teret za simulaciju teških vlakova: {ORANGE}{STRING}
@@ -1189,6 +1191,7 @@
 STR_CONFIG_PATCHES_LARGER_TOWNS                                 :{LTBLUE}Omjer gradova koji će postati metropole: {ORANGE}1 u {STRING}
 STR_CONFIG_PATCHES_LARGER_TOWNS_DISABLED                        :{LTBLUE}Omjer gradova koji će postati metropole: {ORANGE}Nijedan
 STR_CONFIG_PATCHES_CITY_SIZE_MULTIPLIER                         :{LTBLUE}Početni množitelj veličine grada: {ORANGE}{STRING}
+STR_CONFIG_MODIFIED_ROAD_REBUILD                                :{LTBLUE}Ukloni apsurne cestovne elemente tijekom konstrukcije prometnica
 
 STR_CONFIG_PATCHES_GUI                                          :{BLACK}Sučelje
 STR_CONFIG_PATCHES_CONSTRUCTION                                 :{BLACK}Izgradnja
@@ -2019,6 +2022,8 @@
 STR_5006_MUST_DEMOLISH_TUNNEL_FIRST                             :{WHITE}Najprije moraš srušiti tunel
 STR_5007_MUST_DEMOLISH_BRIDGE_FIRST                             :{WHITE}Najprije moraš srušiti most
 STR_5008_CANNOT_START_AND_END_ON                                :{WHITE}Početak i kraj ne mogu biti na istom mjestu
+STR_BRIDGEHEADS_NOT_SAME_HEIGHT                                 :{WHITE}Glave mosta nisu na istoj razini
+STR_BRIDGE_TOO_LOW_FOR_TERRAIN                                  :{WHITE}Most je prenizak za teren
 STR_500A_START_AND_END_MUST_BE_IN                               :{WHITE}Početak i kraj moraju biti u ravnini
 STR_500B_SITE_UNSUITABLE_FOR_TUNNEL                             :{WHITE}Neprikladan teren za ulaz u tunel
 STR_500D                                                        :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY}
@@ -2779,6 +2784,8 @@
 STR_NEW_VEHICLE_TYPE                                            :{BLACK}{BIGFONT}{ENGINE}
 STR_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE                         :{BLACK}Novi {STRING} je sada dostupan! - {ENGINE}
 
+STR_CAN_T_SELL_DESTROYED_VEHICLE                                :{WHITE}Ne mogu prodati uništeno vozilo...
+
 STR_CAN_T_TIMETABLE_VEHICLE                                     :{WHITE}Nije moguće rasporediti vozilo...
 STR_TIMETABLE_ONLY_WAIT_AT_STATIONS                             :{WHITE}Vozila mogu čekati samo na stanicama.
 STR_TIMETABLE_NOT_STOPPING_HERE                                 :{WHITE}Ovo vozilo se ne zaustavlja na ovoj stanici.
--- a/src/lang/czech.txt	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/lang/czech.txt	Sat Oct 20 10:42:28 2007 +0000
@@ -1105,6 +1105,8 @@
 STR_CONFIG_PATCHES_ROADVEH_QUEUE                                :{LTBLUE}Silniční vozidla stojí fronty (s kvantovým efektem): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_AUTOSCROLL                                   :{LTBLUE}Posouvat okno, když je kurzor na okraji: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_BRIBE                                        :{LTBLUE}Povolit úplatek místní správě: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ALLOW_EXCLUSIVE                              :{LTBLUE}Umožnit kupování výhradních přepravních práv: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ALLOW_GIVE_MONEY                             :{LTBLUE}Umožnit zasílání peněz ostatním společnostem: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NONUNIFORM_STATIONS                          :{LTBLUE}Nejednolité stanice: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NEW_PATHFINDING_ALL                          :{LTBLUE}Nový globální algoritmus hledání cesty (NPF, nahradí NTP): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_FREIGHT_TRAINS                               :{LTBLUE}Pro simulaci těžkých vlaků vynásobit hmotnost nákladu: {ORANGE}{STRING}x
@@ -1245,6 +1247,7 @@
 STR_CONFIG_PATCHES_LARGER_TOWNS                                 :{LTBLUE}Podíl měst, které budou růst dvakrát tak rychle: {ORANGE}1 z {STRING}
 STR_CONFIG_PATCHES_LARGER_TOWNS_DISABLED                        :{LTBLUE}Podíl měst, které budou růst dvakrát tak rychle: {ORANGE}žádné
 STR_CONFIG_PATCHES_CITY_SIZE_MULTIPLIER                         :{LTBLUE}Násobitel původní velikosti města: {ORANGE}{STRING}
+STR_CONFIG_MODIFIED_ROAD_REBUILD                                :{LTBLUE}Odstraňovat nesmyslné prvky vozovky při výstavbě silnic
 
 STR_CONFIG_PATCHES_GUI                                          :{BLACK}Ovládaní
 STR_CONFIG_PATCHES_CONSTRUCTION                                 :{BLACK}Výstavba
@@ -2841,6 +2844,8 @@
 STR_NEW_VEHICLE_TYPE                                            :{BLACK}{BIGFONT}{ENGINE}
 STR_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE                         :{BLACK}Nov{G á ý é} {STRING} k dispozici!  -  {ENGINE}
 
+STR_CAN_T_SELL_DESTROYED_VEHICLE                                :{WHITE}Nelze prodat zničené vozidlo...
+
 STR_CAN_T_TIMETABLE_VEHICLE                                     :{WHITE}Tomuto vozidlu nejde nastavit jízdní řád...
 STR_TIMETABLE_ONLY_WAIT_AT_STATIONS                             :{WHITE}Vozidla mohou čekat jen ve stanicích.
 STR_TIMETABLE_NOT_STOPPING_HERE                                 :{WHITE}Toto vozidlo v této stanici nestaví.
@@ -3334,7 +3339,7 @@
 STR_FLAT_WORLD_HEIGHT_DOWN                                      :{BLACK}Snížit výšku ploché země o jednu úroveň
 STR_FLAT_WORLD_HEIGHT_UP                                        :{BLACK}Zvednout výšku ploché země o jednu úroveň
 STR_FLAT_WORLD_HEIGHT_QUERY_CAPT                                :{WHITE}Změnit výšku ploché země
-STR_FLAT_WORLD_HEIGHT                                           :{BLACK}Výška ploché zeme:
+STR_FLAT_WORLD_HEIGHT                                           :{BLACK}Výška ploché země:
 STR_FLAT_WORLD_HEIGHT_NUM                                       :{NUM}
 
 STR_SMALLMAP_CENTER                                             :{BLACK}Vycentrovat malou mapu na tomto místě
--- a/src/lang/dutch.txt	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/lang/dutch.txt	Sat Oct 20 10:42:28 2007 +0000
@@ -860,6 +860,7 @@
 
 STR_0314_FUND_NEW_INDUSTRY                                      :{WHITE}Betaal nieuwe industrie
 STR_JUST_STRING                                                 :{STRING}
+STR_JUST_INT                                                    :{NUM}
 STR_0316_CAN_ONLY_BE_BUILT_IN_TOWNS                             :{WHITE}...kan alleen in steden gebouwd worden
 STR_0317_CAN_ONLY_BE_BUILT_IN_RAINFOREST                        :{WHITE}...kan alleen in het regenwoud gebouwd worden
 STR_0318_CAN_ONLY_BE_BUILT_IN_DESERT                            :{WHITE}...kan alleen in woestijngebieden gebouwd worden
@@ -1047,6 +1048,8 @@
 STR_CONFIG_PATCHES_ROADVEH_QUEUE                                :{LTBLUE}Rijvorming bij wegvoertuigen (met bijwerkingen): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_AUTOSCROLL                                   :{LTBLUE}Verschuif scherm als muis aan de rand is: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_BRIBE                                        :{LTBLUE}Omkopen van de gemeente toestaan: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ALLOW_EXCLUSIVE                              :{LTBLUE}Kopen van exclusieve transportrechten toestaan: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ALLOW_GIVE_MONEY                             :{LTBLUE}Geld geven aan andere bedrijven toestaan: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NONUNIFORM_STATIONS                          :{LTBLUE}Vrij gevormde stations: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NEW_PATHFINDING_ALL                          :{LTBLUE}Nieuwe globale routeplanner (NPF, voorkeur over NTP): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_FREIGHT_TRAINS                               :{LTBLUE}Gewichtsverhouding voor vracht om zware treinen te simuleren: {ORANGE}{STRING}
@@ -1187,6 +1190,7 @@
 STR_CONFIG_PATCHES_LARGER_TOWNS                                 :{LTBLUE}Verhouding van steden die twee keer zo snel groeien: {ORANGE}1 in {STRING}
 STR_CONFIG_PATCHES_LARGER_TOWNS_DISABLED                        :{LTBLUE}Verhouding van steden die twee keer zo snel groeien: {ORANGE}Niet
 STR_CONFIG_PATCHES_CITY_SIZE_MULTIPLIER                         :{LTBLUE}Stad groei indicator: {ORANGE}{STRING}
+STR_CONFIG_MODIFIED_ROAD_REBUILD                                :{LTBLUE}Verwijder  rare weg-elementen tijdens het herbouwen van de weg
 
 STR_CONFIG_PATCHES_GUI                                          :{BLACK}Interface
 STR_CONFIG_PATCHES_CONSTRUCTION                                 :{BLACK}Constructie
@@ -2017,6 +2021,8 @@
 STR_5006_MUST_DEMOLISH_TUNNEL_FIRST                             :{WHITE}Tunnel moet eerst afgebroken worden
 STR_5007_MUST_DEMOLISH_BRIDGE_FIRST                             :{WHITE}Brug moet eerst afgebroken worden
 STR_5008_CANNOT_START_AND_END_ON                                :{WHITE}Kan niet beginnen en eindigen op dezelfde plaats
+STR_BRIDGEHEADS_NOT_SAME_HEIGHT                                 :{WHITE}Begin van bruggen niet op hetzelfde niveau
+STR_BRIDGE_TOO_LOW_FOR_TERRAIN                                  :{WHITE}Brug is de laag voor dit terrein
 STR_500A_START_AND_END_MUST_BE_IN                               :{WHITE}Begin en einde moeten op een lijn staan
 STR_500B_SITE_UNSUITABLE_FOR_TUNNEL                             :{WHITE}Locatie ongeschikt voor ingang tunnel
 STR_500D                                                        :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY}
@@ -2777,6 +2783,8 @@
 STR_NEW_VEHICLE_TYPE                                            :{BLACK}{BIGFONT}{ENGINE}
 STR_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE                         :{BLACK}Nieuw {STRING} nu beschikbaar!  -  {ENGINE}
 
+STR_CAN_T_SELL_DESTROYED_VEHICLE                                :{WHITE}Kan verwoest voertuig niet verkopen...
+
 STR_CAN_T_TIMETABLE_VEHICLE                                     :{WHITE}Kan geen dienstregeling opzetten voor dit voertuig...
 STR_TIMETABLE_ONLY_WAIT_AT_STATIONS                             :{WHITE}Voertuigen kunnen alleen wachten op stations.
 STR_TIMETABLE_NOT_STOPPING_HERE                                 :{WHITE}Dit voertuig stopt niet op dit station
@@ -3380,3 +3388,51 @@
 STR_PROSPECT_NEW_INDUSTRY                                       :{BLACK}Onderzoek
 STR_BUILD_NEW_INDUSTRY                                          :{BLACK}Bouw
 STR_INDUSTRY_SELECTION_HINT                                     :{BLACK}Kies de aangewezen industrie van de lijst
+
+############ Face formatting
+STR_FACE_ADVANCED                                               :{BLACK}Geavanceerd
+STR_FACE_ADVANCED_TIP                                           :{BLACK}Geavanceerde gezichtskeuze
+STR_FACE_SIMPLE                                                 :{BLACK}Eenvoudig
+STR_FACE_SIMPLE_TIP                                             :{BLACK}Eenvoudige gezichtskeuze.
+STR_FACE_LOAD                                                   :{BLACK}Laden
+STR_FACE_LOAD_TIP                                               :{BLACK}Laad favoriet gezicht
+STR_FACE_LOAD_DONE                                              :{WHITE}Je favoriete gezicfht op geladen van het OpenTTD configuratie bestand.
+STR_FACE_FACECODE                                               :{BLACK}Speler gezichtsnummer.
+STR_FACE_FACECODE_TIP                                           :{BLACK}Bekijk en/of bewaar spelers gezichtsnummer
+STR_FACE_FACECODE_CAPTION                                       :{WHITE}Bekijken en/of bewaar gezichtnummer
+STR_FACE_FACECODE_SET                                           :{WHITE}Nieuw gezicht nummercode is opgeslagen.
+STR_FACE_FACECODE_ERR                                           :{WHITE}Kon gezichtsnummer niet bewaren - het moet een nummer zijn tussen 0 en 4.294.967.295!
+STR_FACE_SAVE                                                   :{BLACK}Opslaan
+STR_FACE_SAVE_TIP                                               :{BLACK}Sla favoriet gezicht op
+STR_FACE_SAVE_DONE                                              :{WHITE}Dit gezicht wordt zal worden opgeslagen als jouw favoriet in het OpenTTD configuratie bestand.
+STR_FACE_EUROPEAN                                               :{BLACK}Europeaan
+STR_FACE_SELECT_EUROPEAN                                        :{BLACK}Kies europeaan gezicht
+STR_FACE_AFRICAN                                                :{BLACK}Africaan
+STR_FACE_SELECT_AFRICAN                                         :{BLACK}Kies africaans gezicht
+STR_FACE_YES                                                    :Ja
+STR_FACE_NO                                                     :Nee
+STR_FACE_MOUSTACHE_EARRING_TIP                                  :{BLACK}Activeer snor of oorbel
+STR_FACE_HAIR                                                   :Haar:
+STR_FACE_HAIR_TIP                                               :{BLACK}Varander haar
+STR_FACE_EYEBROWS                                               :Wenkbrauwen:
+STR_FACE_EYEBROWS_TIP                                           :{BLACK}Verander wenkbrauwen
+STR_FACE_EYECOLOUR                                              :Kleur ogen
+STR_FACE_EYECOLOUR_TIP                                          :{BLACK}Verander kleur ogen
+STR_FACE_GLASSES                                                :Bril:
+STR_FACE_GLASSES_TIP                                            :{BLACK}Brillen aan
+STR_FACE_GLASSES_TIP_2                                          :{BLACK}Verander bril
+STR_FACE_NOSE                                                   :Neus:
+STR_FACE_NOSE_TIP                                               :{BLACK}Verander neus
+STR_FACE_LIPS                                                   :Lippen:
+STR_FACE_MOUSTACHE                                              :Snor:
+STR_FACE_LIPS_MOUSTACHE_TIP                                     :{BLACK}Verander lippen of snor
+STR_FACE_CHIN                                                   :Kin:
+STR_FACE_CHIN_TIP                                               :{BLACK}Verander kin
+STR_FACE_JACKET                                                 :Jas:
+STR_FACE_JACKET_TIP                                             :{BLACK}Verander jas
+STR_FACE_COLLAR                                                 :Kraag:
+STR_FACE_COLLAR_TIP                                             :{BLACK}Verander kraag
+STR_FACE_TIE                                                    :Stropdas:
+STR_FACE_EARRING                                                :Oorbel:
+STR_FACE_TIE_EARRING_TIP                                        :{BLACK}Verander das of oorbel
+########
--- a/src/lang/english.txt	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/lang/english.txt	Sat Oct 20 10:42:28 2007 +0000
@@ -860,6 +860,7 @@
 
 STR_0314_FUND_NEW_INDUSTRY                                      :{WHITE}Fund new industry
 STR_JUST_STRING                                                 :{STRING}
+STR_JUST_INT                                                    :{NUM}
 STR_0316_CAN_ONLY_BE_BUILT_IN_TOWNS                             :{WHITE}...can only be built in towns
 STR_0317_CAN_ONLY_BE_BUILT_IN_RAINFOREST                        :{WHITE}...can only be built in rainforest areas
 STR_0318_CAN_ONLY_BE_BUILT_IN_DESERT                            :{WHITE}...can only be built in desert areas
@@ -2782,6 +2783,8 @@
 STR_NEW_VEHICLE_TYPE                                            :{BLACK}{BIGFONT}{ENGINE}
 STR_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE                         :{BLACK}New {STRING} now available!  -  {ENGINE}
 
+STR_CAN_T_SELL_DESTROYED_VEHICLE                                :{WHITE}Can't sell destroyed vehicle...
+
 STR_CAN_T_TIMETABLE_VEHICLE                                     :{WHITE}Can't timetable vehicle...
 STR_TIMETABLE_ONLY_WAIT_AT_STATIONS                             :{WHITE}Vehicles can only wait at stations.
 STR_TIMETABLE_NOT_STOPPING_HERE                                 :{WHITE}This vehicle is not stopping at this station.
@@ -3385,3 +3388,51 @@
 STR_PROSPECT_NEW_INDUSTRY                                       :{BLACK}Prospect
 STR_BUILD_NEW_INDUSTRY                                          :{BLACK}Build
 STR_INDUSTRY_SELECTION_HINT                                     :{BLACK}Choose the appropriate industry from this list
+
+############ Face formatting
+STR_FACE_ADVANCED                                               :{BLACK}Advanced
+STR_FACE_ADVANCED_TIP                                           :{BLACK}Advanced face selection.
+STR_FACE_SIMPLE                                                 :{BLACK}Simple
+STR_FACE_SIMPLE_TIP                                             :{BLACK}Simple face selection.
+STR_FACE_LOAD                                                   :{BLACK}Load
+STR_FACE_LOAD_TIP                                               :{BLACK}Load favourite face
+STR_FACE_LOAD_DONE                                              :{WHITE}Your favourite face has been loaded from the OpenTTD config file.
+STR_FACE_FACECODE                                               :{BLACK}Player face no.
+STR_FACE_FACECODE_TIP                                           :{BLACK}View and/or set player face number
+STR_FACE_FACECODE_CAPTION                                       :{WHITE}View and/or set player face number
+STR_FACE_FACECODE_SET                                           :{WHITE}New face number code has been set.
+STR_FACE_FACECODE_ERR                                           :{WHITE}Couldn't set player face number - must be numeric between 0 and 4,294,967,295!
+STR_FACE_SAVE                                                   :{BLACK}Save
+STR_FACE_SAVE_TIP                                               :{BLACK}Save favourite face
+STR_FACE_SAVE_DONE                                              :{WHITE}This face will be saved as your favourite in the OpenTTD config file.
+STR_FACE_EUROPEAN                                               :{BLACK}European
+STR_FACE_SELECT_EUROPEAN                                        :{BLACK}Select european faces
+STR_FACE_AFRICAN                                                :{BLACK}African
+STR_FACE_SELECT_AFRICAN                                         :{BLACK}Select african faces
+STR_FACE_YES                                                    :Yes
+STR_FACE_NO                                                     :No
+STR_FACE_MOUSTACHE_EARRING_TIP                                  :{BLACK}Enable moustache or earring
+STR_FACE_HAIR                                                   :Hair:
+STR_FACE_HAIR_TIP                                               :{BLACK}Change hair
+STR_FACE_EYEBROWS                                               :Eyebrows:
+STR_FACE_EYEBROWS_TIP                                           :{BLACK}Change eyebrows
+STR_FACE_EYECOLOUR                                              :Eye colour:
+STR_FACE_EYECOLOUR_TIP                                          :{BLACK}Change eyecolour
+STR_FACE_GLASSES                                                :Glasses:
+STR_FACE_GLASSES_TIP                                            :{BLACK}Enable glasses
+STR_FACE_GLASSES_TIP_2                                          :{BLACK}Change glasses
+STR_FACE_NOSE                                                   :Nose:
+STR_FACE_NOSE_TIP                                               :{BLACK}Change nose
+STR_FACE_LIPS                                                   :Lips:
+STR_FACE_MOUSTACHE                                              :Moustache:
+STR_FACE_LIPS_MOUSTACHE_TIP                                     :{BLACK}Change lips or moustache
+STR_FACE_CHIN                                                   :Chin:
+STR_FACE_CHIN_TIP                                               :{BLACK}Change chin
+STR_FACE_JACKET                                                 :Jacket:
+STR_FACE_JACKET_TIP                                             :{BLACK}Change jacket
+STR_FACE_COLLAR                                                 :Collar:
+STR_FACE_COLLAR_TIP                                             :{BLACK}Change collar
+STR_FACE_TIE                                                    :Tie:
+STR_FACE_EARRING                                                :Earring:
+STR_FACE_TIE_EARRING_TIP                                        :{BLACK}Change tie or earring
+########
--- a/src/lang/estonian.txt	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/lang/estonian.txt	Sat Oct 20 10:42:28 2007 +0000
@@ -252,7 +252,7 @@
 STR_00AE                                                        :{WHITE}{DATE_SHORT}
 STR_00AF                                                        :{WHITE}{DATE_LONG}
 STR_00B0_MAP                                                    :{WHITE}Kaart - {STRING}
-STR_00B1_GAME_OPTIONS                                           :{WHITE}Mängu seaded
+STR_00B1_GAME_OPTIONS                                           :{WHITE}Mängu valikud
 STR_00B2_MESSAGE                                                :{YELLOW}Sõnum
 STR_00B3_MESSAGE_FROM                                           :{YELLOW}{STRING} teatab
 STR_POPUP_CAUTION_CAPTION                                       :{WHITE}Ettevaatust!
@@ -407,7 +407,7 @@
 STR_2048                                                        :2048
 STR_MAPSIZE                                                     :{BLACK}Kaardi suurus:
 STR_BY                                                          :{BLACK}*
-STR_0148_GAME_OPTIONS                                           :{BLACK}Mängu seaded
+STR_0148_GAME_OPTIONS                                           :{BLACK}Mängu valikud
 
 STR_0150_SOMEONE                                                :keegi{SKIP}{SKIP}
 STR_0151_MAP_OF_WORLD                                           :Maailmakaart
@@ -551,7 +551,7 @@
 STR_0184_BUILD_AIRPORTS                                         :{BLACK}Ehita lennuvälju
 STR_0185_PLANT_TREES_PLACE_SIGNS                                :{BLACK}Puude istutamine, siltide paigaldamine jne.
 STR_0186_LAND_BLOCK_INFORMATION                                 :{BLACK}Maa-ala andmed
-STR_0187_OPTIONS                                                :{BLACK}Seaded
+STR_0187_OPTIONS                                                :{BLACK}Valikud
 STR_0188                                                        :{BLACK}{SMALLUPARROW}
 STR_0189                                                        :{BLACK}{SMALLDOWNARROW}
 STR_018A_CAN_T_CHANGE_SERVICING                                 :{WHITE}Hooldusperioodi ei saa muuta...
@@ -685,8 +685,8 @@
 STR_0200_LAST_MESSAGE_NEWS_REPORT                               :Viimane teade
 STR_0201_MESSAGE_SETTINGS                                       :Teadete seadistused
 STR_MESSAGE_HISTORY_MENU                                        :Teadete ajalugu
-STR_0203_SHOW_LAST_MESSAGE_NEWS                                 :{BLACK}Näita viimast teadet, kuva teadete seaded
-STR_0204_MESSAGE_OPTIONS                                        :{WHITE}Teadete seaded
+STR_0203_SHOW_LAST_MESSAGE_NEWS                                 :{BLACK}Näita viimast teadet, kuva teadete valikud
+STR_0204_MESSAGE_OPTIONS                                        :{WHITE}Teadete valikud
 STR_0205_MESSAGE_TYPES                                          :{BLACK}Teate tüüp:
 STR_0206_ARRIVAL_OF_FIRST_VEHICLE                               :{YELLOW}Mängija jaama saabus esimene veovahend
 STR_0207_ARRIVAL_OF_FIRST_VEHICLE                               :{YELLOW}Konkurendi jaama saabus esimene veovahend
@@ -873,10 +873,10 @@
 
 STR_CHECKMARK                                                   :{CHECKMARK}
 ############ range for menu starts
-STR_02C3_GAME_OPTIONS                                           :Mängu seaded
-STR_02C5_DIFFICULTY_SETTINGS                                    :Raskusastme seaded
-STR_02C7_CONFIG_PATCHES                                         :Paranduste seaded
-STR_NEWGRF_SETTINGS                                             :Newgrf seaded
+STR_02C3_GAME_OPTIONS                                           :Mängu valikud
+STR_02C5_DIFFICULTY_SETTINGS                                    :Raskusastme seadistused
+STR_02C7_CONFIG_PATCHES                                         :Seadista paikasid
+STR_NEWGRF_SETTINGS                                             :NewGRF seadistused
 STR_TRANSPARENCY_OPTIONS                                        :Läbipaistvuse valikud
 STR_GAMEOPTMENU_0A                                              :
 STR_02CA_TOWN_NAMES_DISPLAYED                                   :{SETX 12}Näidatavad linnanimed
@@ -940,8 +940,8 @@
 STR_02FE_CREATE_A_CUSTOMIZED_GAME                               :{BLACK}Loo oma mängukaart
 STR_02FF_SELECT_SINGLE_PLAYER_GAME                              :{BLACK}Vali üksikmäng
 STR_0300_SELECT_MULTIPLAYER_GAME                                :{BLACK}Vali 2-8 mängijaga mitmikmäng
-STR_0301_DISPLAY_GAME_OPTIONS                                   :{BLACK}Näita mängu seadeid
-STR_0302_DISPLAY_DIFFICULTY_OPTIONS                             :{BLACK}Vaata raskusastmete seadeid
+STR_0301_DISPLAY_GAME_OPTIONS                                   :{BLACK}Kuva mängu valikuid
+STR_0302_DISPLAY_DIFFICULTY_OPTIONS                             :{BLACK}Kuva raskusastmete valikuid
 STR_0303_START_A_NEW_GAME_USING                                 :{BLACK}Alusta omatehtud stsenaariumit kasutades uut mängu
 STR_0304_QUIT                                                   :{BLACK}Välju
 STR_0305_QUIT_OPENTTD                                           :{BLACK}Välju 'OpenTTD'st
@@ -1033,18 +1033,18 @@
 
 STR_OPTIONS_LANG                                                :{BLACK}Keel
 STR_OPTIONS_LANG_CBO                                            :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
-STR_OPTIONS_LANG_TIP                                            :{BLACK}Mängus kasutatava keele valik
+STR_OPTIONS_LANG_TIP                                            :{BLACK}Vali kasutajaliideses kasutatav keel
 
 STR_OPTIONS_FULLSCREEN                                          :{BLACK}Täisekraan
-STR_OPTIONS_FULLSCREEN_TIP                                      :{BLACK}Märgistades selle kasti, toimub mäng täisekraanis
+STR_OPTIONS_FULLSCREEN_TIP                                      :{BLACK}Märgi see kast, et OpenTTD täisekraanirežiimis mängida
 
-STR_OPTIONS_RES                                                 :{BLACK}Kuvari eraldusvõime
+STR_OPTIONS_RES                                                 :{BLACK}Ekraanilahutus
 STR_OPTIONS_RES_CBO                                             :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
-STR_OPTIONS_RES_TIP                                             :{BLACK}Kuvari eraldusvõime valimine
+STR_OPTIONS_RES_TIP                                             :{BLACK}Ekraanilahutuse valimine
 
-STR_OPTIONS_SCREENSHOT_FORMAT                                   :{BLACK}Ekraanitõmmise formaat
+STR_OPTIONS_SCREENSHOT_FORMAT                                   :{BLACK}Ekraanipildi vorming
 STR_OPTIONS_SCREENSHOT_FORMAT_CBO                               :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
-STR_OPTIONS_SCREENSHOT_FORMAT_TIP                               :{BLACK}Valik, millises formaadis salvestatakse ekraanitõmmis
+STR_OPTIONS_SCREENSHOT_FORMAT_TIP                               :{BLACK}Vali kasutatav ekraanipildi vorming
 
 STR_AUTOSAVE_1_MONTH                                            :Iga kuu
 STR_AUTOSAVE_FAILED                                             :{WHITE}Isesalvestus ebaõnnestus
@@ -1112,9 +1112,9 @@
 STR_AIRCRAFT_AUTORENEW_FAILED                                   :{WHITE}Õhusõiduki iseuuendamine ebaõnnestus{COMMA} (rahapiirang)
 STR_TRAIN_TOO_LONG_AFTER_REPLACEMENT                            :{WHITE}Rong {COMMA} on peale asendust liiga pikk
 
-STR_CONFIG_PATCHES                                              :{BLACK}Paranduste seaded
-STR_CONFIG_PATCHES_TIP                                          :{BLACK}Paranduste seadistamine
-STR_CONFIG_PATCHES_CAPTION                                      :{WHITE}Paranduste seaded
+STR_CONFIG_PATCHES                                              :{BLACK}Seadista paikasid
+STR_CONFIG_PATCHES_TIP                                          :{BLACK}Seadista paikasid
+STR_CONFIG_PATCHES_CAPTION                                      :{WHITE}Seadista paikasid
 
 STR_CONFIG_PATCHES_OFF                                          :Väljas
 STR_CONFIG_PATCHES_ON                                           :Sees
@@ -1147,6 +1147,8 @@
 STR_CONFIG_PATCHES_ROADVEH_QUEUE                                :{LTBLUE}Mootorsõidukite järjekorrad (koos mahueffektidega): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_AUTOSCROLL                                   :{LTBLUE}Keri vaadet, kui hiir on viidud ekraani serva: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_BRIBE                                        :{LTBLUE}Luba kohalikule omavalitsusele altkäemaksu maksmine: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ALLOW_EXCLUSIVE                              :{LTBLUE}Luba eksklusiivseid veoõiguseid osta: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ALLOW_GIVE_MONEY                             :{LTBLUE}Luba teistele ettevõtetele raha saata: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NONUNIFORM_STATIONS                          :{LTBLUE}Luba suvalise kujuga jaamad: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NEW_PATHFINDING_ALL                          :{LTBLUE}Uus trassi otsimise algoritm(NPF asendab NTP): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_FREIGHT_TRAINS                               :{LTBLUE}Raskete rongide simuleerimiseks kasutatav raskuse korrutaja: {ORANGE}{STRING}
@@ -1188,7 +1190,7 @@
 STR_CONFIG_PATCHES_HEIGHTMAP_ROTATION_CLOCKWISE                 :Päevapidi
 STR_CONFIG_PATCHES_SE_FLAT_WORLD_HEIGHT                         :{LTBLUE}Kõrguse level kui kõrgele lapik kaart läheb: {ORANGE}{STRING}
 
-STR_CONFIG_PATCHES_STATION_SPREAD                               :{LTBLUE}Suurim jaama ala: {ORANGE}{STRING} {RED}Hoiatus: kõrged seaded aeglustavad mängu
+STR_CONFIG_PATCHES_STATION_SPREAD                               :{LTBLUE}Suurim jaama ala: {ORANGE}{STRING} {RED}Hoiatus: kõrged seadistused aeglustavad mängu
 STR_CONFIG_PATCHES_SERVICEATHELIPAD                             :{LTBLUE}Hoolda maandumisplatsidel ise helikoptereid: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LINK_TERRAFORM_TOOLBAR                       :{LTBLUE}Liida maastikuriba raudtee/tee/vee/lennujaamade tööriistaribaga: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_REVERSE_SCROLLING                            :{LTBLUE}Kui kerid hiirega, liiguta vaade vastassuunda: {ORANGE}{STRING}
@@ -1287,6 +1289,7 @@
 STR_CONFIG_PATCHES_LARGER_TOWNS                                 :{LTBLUE}Topeltkiirusel kasvavaid linnu: {ORANGE}1 iga {STRING} linna kohta
 STR_CONFIG_PATCHES_LARGER_TOWNS_DISABLED                        :{LTBLUE}Topeltkiirusel kasvavaid linnu: {ORANGE}puudub
 STR_CONFIG_PATCHES_CITY_SIZE_MULTIPLIER                         :{LTBLUE}Algne linna suuruse kordaja: {ORANGE}{STRING}
+STR_CONFIG_MODIFIED_ROAD_REBUILD                                :{LTBLUE}Eemalda teedeehituse ajal esinevad tarbetud elemendid
 
 STR_CONFIG_PATCHES_GUI                                          :{BLACK}Välimus
 STR_CONFIG_PATCHES_CONSTRUCTION                                 :{BLACK}Ehitamine
@@ -3144,9 +3147,9 @@
 STR_PERFORMANCE_DETAIL_LOAN_TIP                                 :{BLACK}Selle ettevõtte kogulaen
 STR_PERFORMANCE_DETAIL_TOTAL_TIP                                :{BLACK}Kokku punkte võimalikest punktidest
 
-STR_NEWGRF_SETTINGS_BUTTON                                      :{BLACK}NewGRF seaded
+STR_NEWGRF_SETTINGS_BUTTON                                      :{BLACK}NewGRF seadistused
 STR_NEWGRF_SETTINGS_CAPTION                                     :{WHITE}Uue graafika sätted
-STR_NEWGRF_APPLY_CHANGES                                        :{BLACK}Kinnita sätted
+STR_NEWGRF_APPLY_CHANGES                                        :{BLACK}Rakenda muudatused
 STR_NEWGRF_SET_PARAMETERS                                       :{BLACK}Vali parameetrid
 STR_NEWGRF_TIP                                                  :{BLACK}Nimekiri kõikidest uue graafika sätted mida oled installeerinud. Vajuta komplektile et vahetada sätteid
 STR_NEWGRF_NO_FILES_INSTALLED                                   :{BLACK}Sa ei ole installeerinud ühtegi uue graafika komplekti! Vaata õpetust et vaadata juhendit uue graafika installeerimisek
--- a/src/lang/french.txt	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/lang/french.txt	Sat Oct 20 10:42:28 2007 +0000
@@ -861,6 +861,7 @@
 
 STR_0314_FUND_NEW_INDUSTRY                                      :{WHITE}Financer une nouvelle industrie
 STR_JUST_STRING                                                 :{STRING}
+STR_JUST_INT                                                    :{NUM}
 STR_0316_CAN_ONLY_BE_BUILT_IN_TOWNS                             :{WHITE}...peut seulement être construit en ville
 STR_0317_CAN_ONLY_BE_BUILT_IN_RAINFOREST                        :{WHITE}...peut seulement être construit en forêt tropicale
 STR_0318_CAN_ONLY_BE_BUILT_IN_DESERT                            :{WHITE}...peut seulement être construit dans les endroits désertiques
@@ -1048,6 +1049,8 @@
 STR_CONFIG_PATCHES_ROADVEH_QUEUE                                :{LTBLUE}Mise en file Véhicules Routiers (+ effets quantiques): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_AUTOSCROLL                                   :{LTBLUE}Défiler la vue horizontalement avec le pointeur: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_BRIBE                                        :{LTBLUE}Permettre la corruption de la municipalité: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ALLOW_EXCLUSIVE                              :{LTBLUE}Autoriser l'achat des droits de transports exclusifs: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ALLOW_GIVE_MONEY                             :{LTBLUE}Autoriser l'envoi d'argent aux autres compagnies: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NONUNIFORM_STATIONS                          :{LTBLUE}Gares non uniformes: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NEW_PATHFINDING_ALL                          :{LTBLUE}Nouvelle recherche de chemin global (NPF, écrase NTP): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_FREIGHT_TRAINS                               :{LTBLUE}Multiplier le poid pour les trains fret (simule des trains lourds): {ORANGE}{STRING}
@@ -1188,6 +1191,7 @@
 STR_CONFIG_PATCHES_LARGER_TOWNS                                 :{LTBLUE}Proportion des villes qui deviendront des métropoles: {ORANGE}1 sur {STRING}
 STR_CONFIG_PATCHES_LARGER_TOWNS_DISABLED                        :{LTBLUE}Proportion des villes qui deviendront des métropoles: {ORANGE}Aucune
 STR_CONFIG_PATCHES_CITY_SIZE_MULTIPLIER                         :{LTBLUE}Multiplicateur de taille de ville initial: {ORANGE}{STRING}
+STR_CONFIG_MODIFIED_ROAD_REBUILD                                :{LTBLUE}Retirer les éléments absurdes pendant la reconstruction des routes
 
 STR_CONFIG_PATCHES_GUI                                          :{BLACK}Interface
 STR_CONFIG_PATCHES_CONSTRUCTION                                 :{BLACK}Construction
@@ -2018,6 +2022,8 @@
 STR_5006_MUST_DEMOLISH_TUNNEL_FIRST                             :{WHITE}Vous devez d'abord démolir le tunnel
 STR_5007_MUST_DEMOLISH_BRIDGE_FIRST                             :{WHITE}Vous devez d'abord démolir le pont
 STR_5008_CANNOT_START_AND_END_ON                                :{WHITE}Impossible de commencer et de terminer au même endroit
+STR_BRIDGEHEADS_NOT_SAME_HEIGHT                                 :{WHITE}Les extrémités du pont ne sont pas au même niveau
+STR_BRIDGE_TOO_LOW_FOR_TERRAIN                                  :{WHITE}Le pont est trop bas pour le terrain
 STR_500A_START_AND_END_MUST_BE_IN                               :{WHITE}Le début et la fin doivent être alignés
 STR_500B_SITE_UNSUITABLE_FOR_TUNNEL                             :{WHITE}Le site pour l'entrée du tunnel ne convient pas
 STR_500D                                                        :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY}
@@ -2778,6 +2784,8 @@
 STR_NEW_VEHICLE_TYPE                                            :{BLACK}{BIGFONT}{ENGINE}
 STR_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE                         :{BLACK}Nouv{G eau el elle} {STRING} disponible!  -  {ENGINE}
 
+STR_CAN_T_SELL_DESTROYED_VEHICLE                                :{WHITE}Impossible de vendre le véhicule détruit...
+
 STR_CAN_T_TIMETABLE_VEHICLE                                     :{WHITE}Impossible d'affecter un horaire au véhicule...
 STR_TIMETABLE_ONLY_WAIT_AT_STATIONS                             :{WHITE}Les véhicules ne peuvent attendre qu'aux stations.
 STR_TIMETABLE_NOT_STOPPING_HERE                                 :{WHITE}Ce véhicule ne s'arrête pas à cette station.
@@ -3381,3 +3389,51 @@
 STR_PROSPECT_NEW_INDUSTRY                                       :{BLACK}Prospecter
 STR_BUILD_NEW_INDUSTRY                                          :{BLACK}Construire
 STR_INDUSTRY_SELECTION_HINT                                     :{BLACK}Choisissez l'industrie appropriée dans cette liste
+
+############ Face formatting
+STR_FACE_ADVANCED                                               :{BLACK}Avancé
+STR_FACE_ADVANCED_TIP                                           :{BLACK}Sélection avancée du visage.
+STR_FACE_SIMPLE                                                 :{BLACK}Simple
+STR_FACE_SIMPLE_TIP                                             :{BLACK}Sélection simple du visage.
+STR_FACE_LOAD                                                   :{BLACK}Charger
+STR_FACE_LOAD_TIP                                               :{BLACK}Charger visage favori
+STR_FACE_LOAD_DONE                                              :{WHITE}Votre visage favori a été chargé depuis le fichier de configuration d'OpenTTD.
+STR_FACE_FACECODE                                               :{BLACK}No. de visage
+STR_FACE_FACECODE_TIP                                           :{BLACK}Voir et/ou définir le numéro de visage
+STR_FACE_FACECODE_CAPTION                                       :{WHITE}Voir et/ou définir le numéro de visage
+STR_FACE_FACECODE_SET                                           :{WHITE}Le nouveau numéro de visage a été défini.
+STR_FACE_FACECODE_ERR                                           :{WHITE}Impossibe de définir le numéro de visage - doit être un nombre entre 0 et 4.294.967.295!
+STR_FACE_SAVE                                                   :{BLACK}Enregistrer
+STR_FACE_SAVE_TIP                                               :{BLACK}Enregistrer visage favori
+STR_FACE_SAVE_DONE                                              :{WHITE}Ce visage sera enregistré comme favori dans le fichier de configuration d'OpenTTD.
+STR_FACE_EUROPEAN                                               :{BLACK}Européen
+STR_FACE_SELECT_EUROPEAN                                        :{BLACK}Choisir les visages européens
+STR_FACE_AFRICAN                                                :{BLACK}Africain
+STR_FACE_SELECT_AFRICAN                                         :{BLACK}Choisir les visages africains
+STR_FACE_YES                                                    :Oui
+STR_FACE_NO                                                     :Non
+STR_FACE_MOUSTACHE_EARRING_TIP                                  :{BLACK}Activer la moustache ou la boucle d'oreille
+STR_FACE_HAIR                                                   :Cheveux:
+STR_FACE_HAIR_TIP                                               :{BLACK}Modifier les cheveux
+STR_FACE_EYEBROWS                                               :Yeux:
+STR_FACE_EYEBROWS_TIP                                           :{BLACK}Modifier les yeux
+STR_FACE_EYECOLOUR                                              :Couleur des yeux:
+STR_FACE_EYECOLOUR_TIP                                          :{BLACK}Modifier la couleur des yeux
+STR_FACE_GLASSES                                                :Lunettes:
+STR_FACE_GLASSES_TIP                                            :{BLACK}Activer les lunettes
+STR_FACE_GLASSES_TIP_2                                          :{BLACK}Modifier les lunettes
+STR_FACE_NOSE                                                   :Nez:
+STR_FACE_NOSE_TIP                                               :{BLACK}Modifier le nez
+STR_FACE_LIPS                                                   :Lèvres:
+STR_FACE_MOUSTACHE                                              :Moustache:
+STR_FACE_LIPS_MOUSTACHE_TIP                                     :{BLACK}Modifier les lèvres ou la moustache
+STR_FACE_CHIN                                                   :Menton:
+STR_FACE_CHIN_TIP                                               :{BLACK}Modifier le menton
+STR_FACE_JACKET                                                 :Veste:
+STR_FACE_JACKET_TIP                                             :{BLACK}Modifier la veste
+STR_FACE_COLLAR                                                 :Col:
+STR_FACE_COLLAR_TIP                                             :{BLACK}Modifier le col
+STR_FACE_TIE                                                    :Cravate:
+STR_FACE_EARRING                                                :Boucle d'oreille:
+STR_FACE_TIE_EARRING_TIP                                        :{BLACK}Modifier la cravate ou la boucle d'oreille
+########
--- a/src/lang/hungarian.txt	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/lang/hungarian.txt	Sat Oct 20 10:42:28 2007 +0000
@@ -926,6 +926,7 @@
 
 STR_0314_FUND_NEW_INDUSTRY                                      :{WHITE}Új gazdasági épület
 STR_JUST_STRING                                                 :{STRING}
+STR_JUST_INT                                                    :{NUM}
 STR_0316_CAN_ONLY_BE_BUILT_IN_TOWNS                             :{WHITE}...csak városban építhető
 STR_0317_CAN_ONLY_BE_BUILT_IN_RAINFOREST                        :{WHITE}...csak esőerdőben építhető
 STR_0318_CAN_ONLY_BE_BUILT_IN_DESERT                            :{WHITE}...csak sivatagban építhető
@@ -1113,6 +1114,8 @@
 STR_CONFIG_PATCHES_ROADVEH_QUEUE                                :{LTBLUE}Közúti járművek sorbanállása (quantum effektektus): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_AUTOSCROLL                                   :{LTBLUE}Ablakmozgatás, ha az egér a képernyő szélén van: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_BRIBE                                        :{LTBLUE}Önkormányzatok lefizethetősége: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ALLOW_EXCLUSIVE                              :{LTBLUE}Lehessen exkluzív szállítási jogot venni: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ALLOW_GIVE_MONEY                             :{LTBLUE}Lehessen más vállalatoknak pénzt küldeni: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NONUNIFORM_STATIONS                          :{LTBLUE}Különböző vágánytípusok engedélyezése egy állomáson: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NEW_PATHFINDING_ALL                          :{LTBLUE}Új útvonalkereső (NPF, felülbírálja az NTP-t): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_FREIGHT_TRAINS                               :{LTBLUE}Tömegszorzó tehervonatoknak (szimulációs célból): {ORANGE}{STRING}
@@ -1253,6 +1256,7 @@
 STR_CONFIG_PATCHES_LARGER_TOWNS                                 :{LTBLUE}Dupla gyorsan növekvő városok aránya: {ORANGE}{STRING} városból 1
 STR_CONFIG_PATCHES_LARGER_TOWNS_DISABLED                        :{LTBLUE}Dupla gyorsan növekvő városok aránya: {ORANGE}Nincsennek
 STR_CONFIG_PATCHES_CITY_SIZE_MULTIPLIER                         :{LTBLUE}Kezdeti városméret-szorzó: {ORANGE}{STRING}
+STR_CONFIG_MODIFIED_ROAD_REBUILD                                :{LTBLUE}Abszurd útrészletek útépítés közbeni eltávolítása
 
 STR_CONFIG_PATCHES_GUI                                          :{BLACK}Megjelenítés
 STR_CONFIG_PATCHES_CONSTRUCTION                                 :{BLACK}Építkezés
@@ -2120,6 +2124,7 @@
 STR_5006_MUST_DEMOLISH_TUNNEL_FIRST                             :{WHITE}Előbb le kell rombolnod az alagutat
 STR_5007_MUST_DEMOLISH_BRIDGE_FIRST                             :{WHITE}Előbb le kell rombolnod a hidat
 STR_5008_CANNOT_START_AND_END_ON                                :{WHITE}Nem kezdődhet és végződhet ugyanott
+STR_BRIDGE_TOO_LOW_FOR_TERRAIN                                  :{WHITE}A híd túl alacsony a terepre
 STR_500A_START_AND_END_MUST_BE_IN                               :{WHITE}A kezdetének és a végének egy vonalban kell lennie
 STR_500B_SITE_UNSUITABLE_FOR_TUNNEL                             :{WHITE}Nem alkalmas a hely alagút bejáratának
 STR_500D                                                        :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY}
@@ -2880,6 +2885,8 @@
 STR_NEW_VEHICLE_TYPE                                            :{BLACK}{BIGFONT}{ENGINE}
 STR_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE                         :{BLACK}Új {STRING} elérhető!  -  {ENGINE}
 
+STR_CAN_T_SELL_DESTROYED_VEHICLE                                :{WHITE}A megsemmisült jármű nem eladható...
+
 STR_CAN_T_TIMETABLE_VEHICLE                                     :{WHITE}A jármű nem időzíthető
 STR_TIMETABLE_ONLY_WAIT_AT_STATIONS                             :{WHITE}A járművek csak az állomáson várakozhatnak
 STR_TIMETABLE_NOT_STOPPING_HERE                                 :{WHITE}Ez a jármű nem áll meg ezen az állomáson
@@ -3483,3 +3490,33 @@
 STR_PROSPECT_NEW_INDUSTRY                                       :{BLACK}Támogat
 STR_BUILD_NEW_INDUSTRY                                          :{BLACK}Épít
 STR_INDUSTRY_SELECTION_HINT                                     :{BLACK}Válaszd ki a megfelelő ipartípust a listából
+
+############ Face formatting
+STR_FACE_ADVANCED                                               :{BLACK}Fejlett
+STR_FACE_ADVANCED_TIP                                           :{BLACK}Fejlett arcválasztó.
+STR_FACE_SIMPLE                                                 :{BLACK}Egyszerű
+STR_FACE_SIMPLE_TIP                                             :{BLACK}Egyszerű arcválasztó.
+STR_FACE_LOAD                                                   :{BLACK}Betölt
+STR_FACE_LOAD_TIP                                               :{BLACK}Kedvenc arcd betöltése
+STR_FACE_LOAD_DONE                                              :{WHITE}A kedvenc arcod az OpenTTD konfig-fájlból be lett töltve.
+STR_FACE_FACECODE                                               :{BLACK}Játékos arc szám
+STR_FACE_SAVE                                                   :{BLACK}Mentés
+STR_FACE_SAVE_TIP                                               :{BLACK}Kedvenc arc elmentése
+STR_FACE_SAVE_DONE                                              :{WHITE}Ez az arc mint a kedvenc arcod fog az OpenTTD konfig-fájlba elmentődni.
+STR_FACE_EUROPEAN                                               :{BLACK}Európai
+STR_FACE_AFRICAN                                                :{BLACK}Afrikai
+STR_FACE_YES                                                    :Igen
+STR_FACE_NO                                                     :Nem
+STR_FACE_HAIR                                                   :Haj:
+STR_FACE_HAIR_TIP                                               :{BLACK}Haj váltása
+STR_FACE_GLASSES                                                :Szemüveg:
+STR_FACE_GLASSES_TIP                                            :{BLACK}Szemüveg engedélyezése
+STR_FACE_GLASSES_TIP_2                                          :{BLACK}Szemüveg váltása
+STR_FACE_NOSE                                                   :Orr:
+STR_FACE_NOSE_TIP                                               :{BLACK}Orr váltása
+STR_FACE_LIPS                                                   :Ajkak:
+STR_FACE_MOUSTACHE                                              :Bajusz:
+STR_FACE_LIPS_MOUSTACHE_TIP                                     :{BLACK}Ajkak vagy bajusz váltása
+STR_FACE_CHIN                                                   :Ál:
+STR_FACE_CHIN_TIP                                               :{BLACK}Ál váltása
+########
--- a/src/lang/italian.txt	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/lang/italian.txt	Sat Oct 20 10:42:28 2007 +0000
@@ -862,6 +862,7 @@
 
 STR_0314_FUND_NEW_INDUSTRY                                      :{WHITE}Finanzia nuova industria
 STR_JUST_STRING                                                 :{STRING}
+STR_JUST_INT                                                    :{NUM}
 STR_0316_CAN_ONLY_BE_BUILT_IN_TOWNS                             :{WHITE}...può essere costruita solo in città
 STR_0317_CAN_ONLY_BE_BUILT_IN_RAINFOREST                        :{WHITE}...può essere costruita solo nella foresta pluviale
 STR_0318_CAN_ONLY_BE_BUILT_IN_DESERT                            :{WHITE}...può essere costruita solo in aree desertiche
@@ -1049,6 +1050,8 @@
 STR_CONFIG_PATCHES_ROADVEH_QUEUE                                :{LTBLUE}Accodamento automezzi fuori da una stazione occupata: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_AUTOSCROLL                                   :{LTBLUE}Scorri la visuale quando il mouse è su un bordo: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_BRIBE                                        :{LTBLUE}Consenti la corruzione dell'autorità locale: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ALLOW_EXCLUSIVE                              :{LTBLUE}Consenti l'acquisto dell'esclusiva sui trasporti: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ALLOW_GIVE_MONEY                             :{LTBLUE}Consenti l'invio di denaro ad altre compagnie: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NONUNIFORM_STATIONS                          :{LTBLUE}Stazioni non uniformi: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NEW_PATHFINDING_ALL                          :{LTBLUE}Nuovo pathfinding globale (NPF, sovrascrive NTP): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_FREIGHT_TRAINS                               :{LTBLUE}Moltiplicatore di peso per simulare treni merci pesanti: {ORANGE}{STRING}
@@ -1189,6 +1192,7 @@
 STR_CONFIG_PATCHES_LARGER_TOWNS                                 :{LTBLUE}Città che diventeranno metropoli: {ORANGE}1 su {STRING}
 STR_CONFIG_PATCHES_LARGER_TOWNS_DISABLED                        :{LTBLUE}Città che diventeranno metropoli: {ORANGE}Nessuna
 STR_CONFIG_PATCHES_CITY_SIZE_MULTIPLIER                         :{LTBLUE}Moltiplicatore iniziale dimensioni metropoli: {ORANGE}{STRING}
+STR_CONFIG_MODIFIED_ROAD_REBUILD                                :{LTBLUE}Rimuovi segmenti isolati con la ricostruzione delle strade cittadine
 
 STR_CONFIG_PATCHES_GUI                                          :{BLACK}Interfaccia
 STR_CONFIG_PATCHES_CONSTRUCTION                                 :{BLACK}Costruzione
@@ -2019,6 +2023,8 @@
 STR_5006_MUST_DEMOLISH_TUNNEL_FIRST                             :{WHITE}Bisogna demolire il tunnel prima
 STR_5007_MUST_DEMOLISH_BRIDGE_FIRST                             :{WHITE}Bisogna demolire il ponte prima
 STR_5008_CANNOT_START_AND_END_ON                                :{WHITE}Impossibile partire e finire nello stesso punto
+STR_BRIDGEHEADS_NOT_SAME_HEIGHT                                 :{WHITE}Le estremità del ponte non sono allo stesso livello
+STR_BRIDGE_TOO_LOW_FOR_TERRAIN                                  :{WHITE}Il ponte è troppo basso per il terreno
 STR_500A_START_AND_END_MUST_BE_IN                               :{WHITE}Inizio e fine devono essere allineati
 STR_500B_SITE_UNSUITABLE_FOR_TUNNEL                             :{WHITE}Sito inadatto per l'entrata del tunnel
 STR_500D                                                        :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY}
@@ -2779,6 +2785,8 @@
 STR_NEW_VEHICLE_TYPE                                            :{BLACK}{BIGFONT}{ENGINE}
 STR_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE                         :{BLACK}Nuov{G o a} {STRING} disponibile! -  {ENGINE}
 
+STR_CAN_T_SELL_DESTROYED_VEHICLE                                :{WHITE}Impossibile vendere un veicolo distrutto...
+
 STR_CAN_T_TIMETABLE_VEHICLE                                     :{WHITE}Impossibile dare un orario al veicolo...
 STR_TIMETABLE_ONLY_WAIT_AT_STATIONS                             :{WHITE}I veicoli possono attendere solo alle stazioni.
 STR_TIMETABLE_NOT_STOPPING_HERE                                 :{WHITE}Il veicolo non ferma a questa stazione.
@@ -3259,9 +3267,9 @@
 STR_WORLD_GENERATION                                            :{BLACK}Generazione mondo
 STR_TREE_GENERATION                                             :{BLACK}Generazione alberi
 STR_UNMOVABLE_GENERATION                                        :{BLACK}Generazione oggetti inamovibili
-STR_CLEARING_TILES                                              :{BLACK}Generazione di aree brulle e rocciose
+STR_CLEARING_TILES                                              :{BLACK}Generazione aree brulle e rocciose
 STR_SETTINGUP_GAME                                              :{BLACK}Impostazione partita
-STR_PREPARING_TILELOOP                                          :{BLACK}Ciclo generazione riquadri del terreno
+STR_PREPARING_TILELOOP                                          :{BLACK}Generazione riquadri del terreno
 STR_PREPARING_GAME                                              :{BLACK}Preparazione della partita
 STR_DIFFICULTY_TO_CUSTOM                                        :{WHITE}Questa azione ha cambiato il livello di difficolta in 'Personalizzata'
 STR_SE_FLAT_WORLD                                               :{WHITE}Pianeggiante
@@ -3382,3 +3390,51 @@
 STR_PROSPECT_NEW_INDUSTRY                                       :{BLACK}Esegui prospezione
 STR_BUILD_NEW_INDUSTRY                                          :{BLACK}Costruisci
 STR_INDUSTRY_SELECTION_HINT                                     :{BLACK}Selezionare l'industria appropriata dalla lista
+
+############ Face formatting
+STR_FACE_ADVANCED                                               :{BLACK}Avanzata
+STR_FACE_ADVANCED_TIP                                           :{BLACK}Selezione avanzata della faccia
+STR_FACE_SIMPLE                                                 :{BLACK}Semplice
+STR_FACE_SIMPLE_TIP                                             :{BLACK}Selezione semplice della faccia
+STR_FACE_LOAD                                                   :{BLACK}Carica
+STR_FACE_LOAD_TIP                                               :{BLACK}Carica la faccia preferita
+STR_FACE_LOAD_DONE                                              :{WHITE}La faccia preferita è stata caricata dal file di configurazione di OpenTTD
+STR_FACE_FACECODE                                               :{BLACK}Numero faccia
+STR_FACE_FACECODE_TIP                                           :{BLACK}Visualizza e/o imposta il numero della faccia del giocatore
+STR_FACE_FACECODE_CAPTION                                       :{WHITE}Visualizza e/o imposta il numero della faccia
+STR_FACE_FACECODE_SET                                           :{WHITE}Nuovo codice numerico faccia impostato
+STR_FACE_FACECODE_ERR                                           :{WHITE}Impossibile impostare il numero della faccia - deve essere un numero fra 0 e 4.294.967.295!
+STR_FACE_SAVE                                                   :{BLACK}Salva
+STR_FACE_SAVE_TIP                                               :{BLACK}Salva come faccia preferita
+STR_FACE_SAVE_DONE                                              :{WHITE}La faccia corrente è stata salvata come preferita nel file di configurazione di OpenTTD
+STR_FACE_EUROPEAN                                               :{BLACK}Europea
+STR_FACE_SELECT_EUROPEAN                                        :{BLACK}Seleziona le facce europee
+STR_FACE_AFRICAN                                                :{BLACK}Africana
+STR_FACE_SELECT_AFRICAN                                         :{BLACK}Seleziona le facce africane
+STR_FACE_YES                                                    :Sì
+STR_FACE_NO                                                     :No
+STR_FACE_MOUSTACHE_EARRING_TIP                                  :{BLACK}Abilita i baffi o l'orecchino
+STR_FACE_HAIR                                                   :Capelli:
+STR_FACE_HAIR_TIP                                               :{BLACK}Cambia i capelli
+STR_FACE_EYEBROWS                                               :Sopracciglia:
+STR_FACE_EYEBROWS_TIP                                           :{BLACK}Cambia le sopracciglia
+STR_FACE_EYECOLOUR                                              :Colore occhi:
+STR_FACE_EYECOLOUR_TIP                                          :{BLACK}Cambia il colore degli occhi
+STR_FACE_GLASSES                                                :Occhiali:
+STR_FACE_GLASSES_TIP                                            :{BLACK}Abilita gli occhiali
+STR_FACE_GLASSES_TIP_2                                          :{BLACK}Cambia gli occhiali
+STR_FACE_NOSE                                                   :Naso:
+STR_FACE_NOSE_TIP                                               :{BLACK}Cambia il naso
+STR_FACE_LIPS                                                   :Labbra:
+STR_FACE_MOUSTACHE                                              :Baffi:
+STR_FACE_LIPS_MOUSTACHE_TIP                                     :{BLACK}Cambia le labbra o i baffi
+STR_FACE_CHIN                                                   :Mento:
+STR_FACE_CHIN_TIP                                               :{BLACK}Cambia il mento
+STR_FACE_JACKET                                                 :Giacca:
+STR_FACE_JACKET_TIP                                             :{BLACK}Cambia la giacca
+STR_FACE_COLLAR                                                 :Colletto:
+STR_FACE_COLLAR_TIP                                             :{BLACK}Cambia il colletto
+STR_FACE_TIE                                                    :Cravatta:
+STR_FACE_EARRING                                                :Orecchino:
+STR_FACE_TIE_EARRING_TIP                                        :{BLACK}Cambia la cravatta o l'orecchino
+########
--- a/src/lang/norwegian_bokmal.txt	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/lang/norwegian_bokmal.txt	Sat Oct 20 10:42:28 2007 +0000
@@ -2,6 +2,7 @@
 ##ownname Norsk, bokmål
 ##isocode nb_NO
 ##plural 0
+##gender masculinum neutrium femininum
 
 #
 
@@ -860,6 +861,7 @@
 
 STR_0314_FUND_NEW_INDUSTRY                                      :{WHITE}Finansier ny industri
 STR_JUST_STRING                                                 :{STRING}
+STR_JUST_INT                                                    :{NUM}
 STR_0316_CAN_ONLY_BE_BUILT_IN_TOWNS                             :{WHITE}...kan kun bygges i byer
 STR_0317_CAN_ONLY_BE_BUILT_IN_RAINFOREST                        :{WHITE}...kan kun bygges i regnskogområder
 STR_0318_CAN_ONLY_BE_BUILT_IN_DESERT                            :{WHITE}...kan kun bygges i ørkenområder
@@ -926,7 +928,7 @@
 STR_CURR_SIT                                                    :Slovensk tolar (SIT)
 STR_CURR_SEK                                                    :Svensk krone (SEK)
 STR_CURR_YTL                                                    :Tyrkiske lire (YTL)
-STR_CURR_SKK                                                    :Slovakisk Koruna (SKK)
+STR_CURR_SKK                                                    :Slovakisk koruna (SKK)
 STR_CURR_BRR                                                    :Brasiliansk Real (BRL)
 
 STR_CURR_CUSTOM                                                 :Egendefinert...
@@ -1020,12 +1022,13 @@
 STR_CONFIG_PATCHES_ON                                           :På
 STR_CONFIG_PATCHES_VEHICLESPEED                                 :{LTBLUE}Vis kjøretøyets hastighet på statuslinja: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_BUILDONSLOPES                                :{LTBLUE}Tillat bygging på skråninger og i vannkanten: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_AUTOSLOPE                                    :{LTBLUE}Tillat landskapsendring under bygninger, spor, etc.: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_CATCHMENT                                    :{LTBLUE}Mer realistisk størrelse på oppfangingsområder: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_EXTRADYNAMITE                                :{LTBLUE}Tillat riving av industri, mer vei, etc: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAMMOTHTRAINS                                :{LTBLUE}Tillat bygging av veldig lange tog : {ORANGE}{STRING}
 STR_CONFIG_PATCHES_REALISTICACCEL                               :{LTBLUE}Realistisk akslerasjon for tog: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_FORBID_90_DEG                                :{LTBLUE}Forby tog og skip mot å gjøre 90-graders svinger: {ORANGE}{STRING} {LTBLUE} (trenger NGR)
-STR_CONFIG_PATCHES_JOINSTATIONS                                 :{LTBLUE}Slå sammen stasjoner som blir bygget på siden av hverandre: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_FORBID_90_DEG                                :{LTBLUE}Forby tog og skip å gjøre 90-graders svinger: {ORANGE}{STRING} {LTBLUE} (trenger NGR)
+STR_CONFIG_PATCHES_JOINSTATIONS                                 :{LTBLUE}Slå sammen stasjoner som bygges ved siden av hverandre: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_FULLLOADANY                                  :{LTBLUE}Forlat stasjonen når én type varevogn er full, hvis 'full last' er på: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_IMPROVEDLOAD                                 :{LTBLUE}Bruk forbedret lastingsalgoritme: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_GRADUAL_LOADING                              :{LTBLUE}Last kjøretøy gradvis: {ORANGE}{STRING}
@@ -1033,6 +1036,10 @@
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Lever varer til en stasjon bare når varen trengs: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}Tillat bygging av veldig lange broer: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}Tillat 'gå til jernbanestall'-ordre: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD             :{LTBLUE}Konstruksjonsmetode for manuell primærindustri: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE        :ingen
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL      :som andre næringer
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :prospekterer
 STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}Tillat flere like industrier i samme by: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}Industrier av samme type kan bygges nær hverandre: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}Vis alltid lang dato på statuslinjen: {ORANGE}{STRING}
@@ -1042,7 +1049,9 @@
 STR_CONFIG_PATCHES_ROADVEH_QUEUE                                :{LTBLUE}Kjøretøykø (med kvantumseffekter): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_AUTOSCROLL                                   :{LTBLUE}Flytt på bildet hvis pilen er nær ytterkantene av skjermen: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_BRIBE                                        :{LTBLUE}Tillat bestikkelser av bystyret: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_NONUNIFORM_STATIONS                          :{LTBLUE}Ikke-ensartede stasjoner: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ALLOW_EXCLUSIVE                              :{LTBLUE}Tillat kjøp av eksklusive transportrettigheter: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ALLOW_GIVE_MONEY                             :{LTBLUE}Tillat pengeoverføring til andre firmaer: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_NONUNIFORM_STATIONS                          :{LTBLUE}Uensartede stasjoner: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NEW_PATHFINDING_ALL                          :{LTBLUE}Ny global rutesøking (NGR, overstyrer NTK): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_FREIGHT_TRAINS                               :{LTBLUE}Vektmultiplikator for frakt til å simulere tunge tog: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_STOP_ON_TOWN_ROAD                            :{LTBLUE}Tillat gjennomkjøring av stoppesteder på veier som er eid av byene: {ORANGE}{STRING}
@@ -1061,16 +1070,16 @@
 STR_CONFIG_PATCHES_AUTORENEW_MONTHS                             :{LTBLUE}Autoforny når kjøretøy er {ORANGE}{STRING}{LTBLUE} måneder før/etter maks alder
 STR_CONFIG_PATCHES_AUTORENEW_MONEY                              :{LTBLUE}Autoforny minimum penger trengst for fornying: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_ERRMSG_DURATION                              :{LTBLUE}Varighet til feilmelding: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_POPULATION_IN_LABEL                          :{LTBLUE}Vis byers befolkning i tittel: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_POPULATION_IN_LABEL                          :{LTBLUE}Vis byers folketall i tittel: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_INVISIBLE_TREES                              :{LTBLUE}Usynlige trær (med gjennomsiktige bygninger): {ORANGE}{STRING}
 
 STR_CONFIG_PATCHES_LAND_GENERATOR                               :{LTBLUE}Landskapsgenerator: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LAND_GENERATOR_ORIGINAL                      :Orginal
 STR_CONFIG_PATCHES_LAND_GENERATOR_TERRA_GENESIS                 :TerraGenesis
-STR_CONFIG_PATCHES_OIL_REF_EDGE_DISTANCE                        :{LTBLUE}Maksimum avstand fra kartkant for oljerafinerier {ORANGE}{STRING}
+STR_CONFIG_PATCHES_OIL_REF_EDGE_DISTANCE                        :{LTBLUE}Maks. avstand fra kartkant for oljeraffinerier: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SNOWLINE_HEIGHT                              :{LTBLUE}Snøhøyde: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN                         :{LTBLUE}Ulendthet på terreng (kun TerraGenesis): {ORANGE}{STRING}
-STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH             :Veldig levnt
+STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH             :Veldig jevnt
 STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN_SMOOTH                  :Jevnt
 STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN_ROUGH                   :Ulendt
 STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN_VERY_ROUGH              :Veldig ulendt
@@ -1084,10 +1093,11 @@
 STR_CONFIG_PATCHES_SE_FLAT_WORLD_HEIGHT                         :{LTBLUE}Høyden et flatt scenariokart får: {ORANGE}{STRING}
 
 STR_CONFIG_PATCHES_STATION_SPREAD                               :{LTBLUE}Maks stasjonspedning: {ORANGE}{STRING} {RED}Advarsel: Høy instilling gir tregere spill
-STR_CONFIG_PATCHES_SERVICEATHELIPAD                             :{LTBLUE}Utfør vedlikehold på helikopter automatisk på helikopterlandingsteder: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_SERVICEATHELIPAD                             :{LTBLUE}Automatisk vedlikehold ved helikopterlandingsteder: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LINK_TERRAFORM_TOOLBAR                       :{LTBLUE}Koble landskapsverktøylinja til tog-/vei-/vann- og flyplassverktøylinjene: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_REVERSE_SCROLLING                            :{LTBLUE}Ved rulling med musen, flytt synsvinkelen i den motsatte retning: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_MEASURE_TOOLTIP                              :{LTBLUE}Vis et målings-verktøytips når forskjellige "build-tools" brukes: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_SMOOTH_SCROLLING                             :{LTBLUE}Myk scrolling i ekstravindu: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_MEASURE_TOOLTIP                              :{LTBLUE}Vis målingsverktøy ved bruk av byggingsverktøy: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LIVERIES                                     :{LTBLUE}Vis firmaovertakelser: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LIVERIES_NONE                                :Ingen
 STR_CONFIG_PATCHES_LIVERIES_OWN                                 :Eget firma
@@ -1098,9 +1108,33 @@
 STR_CONFIG_PATCHES_SCROLLWHEEL_SCROLL                           :Rull kartet
 STR_CONFIG_PATCHES_SCROLLWHEEL_OFF                              :Av
 STR_CONFIG_PATCHES_SCROLLWHEEL_MULTIPLIER                       :{LTBLUE}Rullehjulets hastighet på kartet: {ORANGE}{STRING}
+
+STR_CONFIG_PATCHES_RIGHT_MOUSE_BTN_EMU                          :{LTBLUE}Høyreklikkemulasjon: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_RIGHT_MOUSE_BTN_EMU_COMMAND                  :Kommando-klikk
+STR_CONFIG_PATCHES_RIGHT_MOUSE_BTN_EMU_CONTROL                  :Ctrl-klikk
+STR_CONFIG_PATCHES_RIGHT_MOUSE_BTN_EMU_OFF                      :Av
+
 STR_CONFIG_PATCHES_PAUSE_ON_NEW_GAME                            :{LTBLUE}Pause automatisk ved start av nytt spill: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_ADVANCED_VEHICLE_LISTS                       :{LTBLUE}Bruk den avanserte kjøretøyslisten: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ADVANCED_VEHICLE_LISTS_OFF                   :Av
+STR_CONFIG_PATCHES_ADVANCED_VEHICLE_LISTS_OWN                   :Eget firma
+STR_CONFIG_PATCHES_ADVANCED_VEHICLE_LISTS_ALL                   :Alle firmaer
+STR_CONFIG_PATCHES_LOADING_INDICATORS                           :{LTBLUE}Bruk lastindikatorer: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_LOADING_INDICATORS_OFF                       :Av
+STR_CONFIG_PATCHES_LOADING_INDICATORS_OWN                       :Eget firma
+STR_CONFIG_PATCHES_LOADING_INDICATORS_ALL                       :Alle firmaer
+STR_CONFIG_PATCHES_TIMETABLE_ALLOW                              :{LTBLUE}Slå på tidstabeller for kjøretøyer: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_TIMETABLE_IN_TICKS                           :{LTBLUE}Vis tidstabell i antall tikk heller enn i dager: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE                            :{LTBLUE}Standard jernbanetype: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_RAIL                       :Vanlig jernbane
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_ELRAIL                     :Elektrisk jernbane
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MONORAIL                   :Énskinnebane
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MAGLEV                     :Maglev
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_FIRST                      :Først tilgjengelig
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_LAST                       :Sist tilgjengelig
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MOST_USED                  :Mest brukt
 
+STR_CONFIG_PATCHES_ALWAYS_BUILD_INFRASTRUCTURE                  :{LTBLUE}Vis byggingsverktøy når det ikke er noen tilgjengelige kjøretøy: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_TRAINS                                   :{LTBLUE}Maks antall tog per spiller: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_ROADVEH                                  :{LTBLUE}Maks antall kjøretøy per spiller: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_AIRCRAFT                                 :{LTBLUE}Maks antall fly per spiller: {ORANGE}{STRING}
@@ -1111,8 +1145,8 @@
 STR_CONFIG_PATCHES_AI_BUILDS_AIRCRAFT                           :{LTBLUE}Hindre datamaskinen i å bygge fly: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_AI_BUILDS_SHIPS                              :{LTBLUE}Hindre datamaskinen i å bygge skip: {ORANGE}{STRING}
 
-STR_CONFIG_PATCHES_AINEW_ACTIVE                                 :{LTBLUE}Aktiver ny AI (alfa): {ORANGE}{STRING}
-STR_CONFIG_PATCHES_AI_IN_MULTIPLAYER                            :{LTBLUE}Tillat AI-spillere i flerspillermodus (eksperimentelt): {ORANGE}{STRING}
+STR_CONFIG_PATCHES_AINEW_ACTIVE                                 :{LTBLUE}Aktiver ny kunstig intelligens (alfa): {ORANGE}{STRING}
+STR_CONFIG_PATCHES_AI_IN_MULTIPLAYER                            :{LTBLUE}Tillat ny kunstig intelligens i flerspillermodus (eksperimentelt): {ORANGE}{STRING}
 
 STR_CONFIG_PATCHES_SERVINT_TRAINS                               :{LTBLUE}Standard vedlikeholdsintervall for tog: {ORANGE}{STRING} dager
 STR_CONFIG_PATCHES_SERVINT_TRAINS_DISABLED                      :{LTBLUE}Standard vedlikeholdsintervall for tog: {ORANGE}deaktivert
@@ -1130,15 +1164,17 @@
 STR_CONFIG_PATCHES_STARTING_YEAR                                :{LTBLUE}Start spillet i år: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_ENDING_YEAR                                  :{LTBLUE}Spillet slutter {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SMOOTH_ECONOMY                               :{LTBLUE}Jevn økonomi (flere mindre endringer)
-STR_CONFIG_PATCHES_ALLOW_SHARES                                 :{LTBLUE}Tillat kjøping av aksjer i andre selskaper
-STR_CONFIG_PATCHES_DRAG_SIGNALS_DENSITY                         :{LTBLUE}Ved opptrekking plasser signal hver: {ORANGE}{STRING} rute(r)
+STR_CONFIG_PATCHES_ALLOW_SHARES                                 :{LTBLUE}Tillat aksjekjøp i andre selskaper
+STR_CONFIG_PATCHES_DRAG_SIGNALS_DENSITY                         :{LTBLUE}Ved dra-og-slipp, plasser signal på hver {ORANGE}{STRING}. rute
 STR_CONFIG_PATCHES_SEMAPHORE_BUILD_BEFORE_DATE                  :{LTBLUE}Bygg signalsystem med mast automatisk før: {ORANGE}{STRING}
 
+STR_CONFIG_PATCHES_TOWN_LAYOUT_INVALID                          :{WHITE}Byutlegget «ingen flere veier» er ikke gyldig i scenariobyggeren
 STR_CONFIG_PATCHES_TOWN_LAYOUT                                  :{LTBLUE}Velg byvei-layout: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_TOWN_LAYOUT_NO_ROADS                         :ingen flere veier
 STR_CONFIG_PATCHES_TOWN_LAYOUT_DEFAULT                          :default
 STR_CONFIG_PATCHES_TOWN_LAYOUT_BETTER_ROADS                     :bedre veier
 STR_CONFIG_PATCHES_TOWN_LAYOUT_2X2_GRID                         :2x2 rutenett
+STR_CONFIG_PATCHES_TOWN_LAYOUT_3X3_GRID                         :3x3-rutenett
 
 STR_CONFIG_PATCHES_TOOLBAR_POS                                  :{LTBLUE}Plassering av hovedverktøylinje: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_TOOLBAR_POS_LEFT                             :Venstre
@@ -1155,6 +1191,7 @@
 STR_CONFIG_PATCHES_LARGER_TOWNS                                 :{LTBLUE}Andel tettsteder som kommer til å bli byer: {ORANGE}1 av {STRING}
 STR_CONFIG_PATCHES_LARGER_TOWNS_DISABLED                        :{LTBLUE}Andel tettsted som kommer til å bli byer: {ORANGE}Ingen
 STR_CONFIG_PATCHES_CITY_SIZE_MULTIPLIER                         :{LTBLUE}Innledende bystørrelse multiplikator: {ORANGE}{STRING}
+STR_CONFIG_MODIFIED_ROAD_REBUILD                                :{LTBLUE}Fjern absurde veielementer under veikonstruksjon
 
 STR_CONFIG_PATCHES_GUI                                          :{BLACK}Grensesnitt
 STR_CONFIG_PATCHES_CONSTRUCTION                                 :{BLACK}Konstruksjon
@@ -1243,6 +1280,7 @@
 
 STR_BUOY_IS_IN_USE                                              :{WHITE}...bøye er i bruk!
 
+STR_LANDINFO_COORDS                                             :{BLACK}Koordinater: {LTBLUE}{NUM}x{NUM}x{NUM} ({STRING})
 
 STR_CANT_REMOVE_PART_OF_STATION                                 :{WHITE}Kan ikke fjerne del av stasjonen...
 STR_CANT_CONVERT_RAIL                                           :{WHITE}Kan ikke konvertere jernbanetype her...
@@ -1293,7 +1331,7 @@
 STR_RAIL_SELECT_TYPE_OF_CARGO_FOR                               :{BLACK}Velg hvilken last lokomotivet skal ta
 STR_RAIL_REFIT_TO_CARRY_HIGHLIGHTED                             :{BLACK}Bygg om lokomotivet til å frakte den valgte varetypen
 STR_RAIL_CAN_T_REFIT_VEHICLE                                    :{WHITE}Kan ikke bygge om lokomotiv...
-STR_CONFIG_PATCHES_SERVINT_ISPERCENT                            :{LTBLUE}Vedlikeholdsintervaller er i prosent: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_SERVINT_ISPERCENT                            :{LTBLUE}Vedlikeholdsintervaller i prosent: {ORANGE}{STRING}
 STR_CONFIG_GAME_PRODUCTION                                      :{WHITE}Endre produksjon
 
 TEMP_AI_IN_PROGRESS                                             :{WHITE}Velkommen til denne nye AI, under konstruksjon. Du kan vente deg problemer. Når du finner ett problem, lag ett skjermbilde av det og post det i forumet. Mor deg!
@@ -1353,18 +1391,23 @@
 STR_NETWORK_PASSWORD_TIP                                        :{BLACK}Beskytt ditt spill med et passord hvis du ikke vil at hvem som helst skal bli med på det
 STR_NETWORK_SELECT_MAP                                          :{BLACK}Velg et kart:
 STR_NETWORK_SELECT_MAP_TIP                                      :{BLACK}Hvilket kart vil du spille?
-STR_NETWORK_NUMBER_OF_CLIENTS                                   :{BLACK}Maksimalt antall tillatte klienter
-STR_NETWORK_NUMBER_OF_CLIENTS_TIP                               :{BLACK}Velg maksimalt antall klienter. Alle plassene trenger ikke bli tatt.
+STR_NETWORK_LAN_INTERNET_COMBO                                  :{BLACK}{SKIP}{STRING}
 STR_NETWORK_LAN                                                 :LAN
 STR_NETWORK_INTERNET                                            :Internett
 STR_NETWORK_LAN_INTERNET                                        :LAN / Internett
 STR_NETWORK_INTERNET_ADVERTISE                                  :Internett (annonser)
+STR_NETWORK_CLIENTS_SELECT                                      :{BLACK}{SKIP}{SKIP}{NUM} klient{P "" er}
+STR_NETWORK_NUMBER_OF_CLIENTS                                   :{BLACK}Maksimalt antall tillatte klienter
+STR_NETWORK_NUMBER_OF_CLIENTS_TIP                               :{BLACK}Velg maksimalt antall klienter. Alle plassene trenger ikke bli tatt.
+STR_NETWORK_COMPANIES_SELECT                                    :{BLACK}{SKIP}{SKIP}{SKIP}{NUM} firma{P "" er}
 STR_NETWORK_NUMBER_OF_COMPANIES                                 :{BLACK}Maks. antall firmaer:
 STR_NETWORK_NUMBER_OF_COMPANIES_TIP                             :{BLACK}Begrens tjeneren til et bestemt antall firmaer
+STR_NETWORK_SPECTATORS_SELECT                                   :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{NUM} tilskuer{P "" e}
 STR_NETWORK_NUMBER_OF_SPECTATORS                                :{BLACK}Maks antall tilskuere
 STR_NETWORK_NUMBER_OF_SPECTATORS_TIP                            :{BLACK}Begrens tjeneren til et bestemt antall tilskuere
 STR_NETWORK_LANGUAGE_SPOKEN                                     :{BLACK}Språk snakket på tjeneren:
 STR_NETWORK_LANGUAGE_TIP                                        :{BLACK}Andre spillere skal kunne vite hvilket språk man snakker på denne tjeneren.
+STR_NETWORK_LANGUAGE_COMBO                                      :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
 STR_NETWORK_START_GAME                                          :{BLACK}Start spill
 STR_NETWORK_START_GAME_TIP                                      :{BLACK}Start et nytt nettverksspill fra en tilfeldig bane, eller scenario
 STR_NETWORK_LOAD_GAME                                           :{BLACK}Last spill
@@ -1375,12 +1418,20 @@
 STR_NETWORK_LANG_ENGLISH                                        :Engelsk
 STR_NETWORK_LANG_GERMAN                                         :Tysk
 STR_NETWORK_LANG_FRENCH                                         :Fransk
+STR_NETWORK_LANG_BRAZILIAN                                      :Brasiliansk
+STR_NETWORK_LANG_BULGARIAN                                      :Bulgarsk
+STR_NETWORK_LANG_CHINESE                                        :Kinesisk
+STR_NETWORK_LANG_CZECH                                          :Tsjekkisk
+STR_NETWORK_LANG_DANISH                                         :Dansk
+STR_NETWORK_LANG_DUTCH                                          :Nederlandsk
+STR_NETWORK_LANG_ESPERANTO                                      :Esperanto
 STR_NETWORK_LANG_FINNISH                                        :Finsk
 STR_NETWORK_LANG_HUNGARIAN                                      :Ungarsk
 STR_NETWORK_LANG_ICELANDIC                                      :Islandsk
 STR_NETWORK_LANG_ITALIAN                                        :Italiensk
 STR_NETWORK_LANG_JAPANESE                                       :Japanesisk
 STR_NETWORK_LANG_KOREAN                                         :Koreansk
+STR_NETWORK_LANG_LITHUANIAN                                     :Litauisk
 STR_NETWORK_LANG_NORWEGIAN                                      :Norsk
 STR_NETWORK_LANG_POLISH                                         :Polsk
 STR_NETWORK_LANG_PORTUGUESE                                     :Portugisisk
@@ -1584,9 +1635,13 @@
 STR_RAILROAD_TRACK_WITH_NORMAL_SIGNALS                          :Jernbanespor med normale signaler
 STR_RAILROAD_TRACK_WITH_PRESIGNALS                              :Jernbanespor med for-signaler
 STR_RAILROAD_TRACK_WITH_EXITSIGNALS                             :Jernbanespor med forlat-signaler
+STR_RAILROAD_TRACK_WITH_COMBOSIGNALS                            :Jernbanespor med kombosignaler
 STR_RAILROAD_TRACK_WITH_NORMAL_PRESIGNALS                       :Togbane med normale og pre-signaler
 STR_RAILROAD_TRACK_WITH_NORMAL_EXITSIGNALS                      :Togbane med normale og utgangs-signaler
+STR_RAILROAD_TRACK_WITH_NORMAL_COMBOSIGNALS                     :Jernbanespor med normale og kombosignaler
 STR_RAILROAD_TRACK_WITH_PRE_EXITSIGNALS                         :Togbane med pre- og utgangs-signaler
+STR_RAILROAD_TRACK_WITH_PRE_COMBOSIGNALS                        :Jernbanespor med pre- og kombosignaler
+STR_RAILROAD_TRACK_WITH_EXIT_COMBOSIGNALS                       :Jernbanespor med utgangs- og kombosignaler
 STR_MUST_REMOVE_RAILWAY_STATION_FIRST                           :{WHITE}Må fjerne togbanestasjon først
 
 
@@ -1595,22 +1650,39 @@
 STR_1801_MUST_REMOVE_ROAD_FIRST                                 :{WHITE}Må fjerne vei først
 STR_ROAD_WORKS_IN_PROGRESS                                      :{WHITE}Veiarbeid i gang
 STR_1802_ROAD_CONSTRUCTION                                      :{WHITE}Bygg vei
+STR_1802_TRAMWAY_CONSTRUCTION                                   :{WHITE}Trikkekonstruksjon
 STR_1803_SELECT_ROAD_BRIDGE                                     :{WHITE}Velg brotype
+STR_ERR_ONEWAY_ROADS_CAN_T_HAVE_JUNCTION                        :{WHITE}... enveiskjørte veier kan ikke ha kryss
 STR_1804_CAN_T_BUILD_ROAD_HERE                                  :{WHITE}Kan ikke bygge vei her
+STR_1804_CAN_T_BUILD_TRAMWAY_HERE                               :{WHITE}Kan ikke bygge trikkespor her...
 STR_1805_CAN_T_REMOVE_ROAD_FROM                                 :{WHITE}Kan ikke fjerne vei herfra...
+STR_1805_CAN_T_REMOVE_TRAMWAY_FROM                              :{WHITE}Kan ikke fjerne trikkespor herfra...
 STR_1806_ROAD_DEPOT_ORIENTATION                                 :{WHITE}Retning for garasje
+STR_1806_TRAM_DEPOT_ORIENTATION                                 :{WHITE}Trikkestallretning
 STR_1807_CAN_T_BUILD_ROAD_VEHICLE                               :{WHITE}Kan ikke bygge garasje her...
-STR_1808_CAN_T_BUILD_BUS_STATION                                :{WHITE}Kan ikke bygge busstatsjon...
+STR_1807_CAN_T_BUILD_TRAM_VEHICLE                               :{WHITE}Kan ikke bygge trikkestall her...
+STR_1808_CAN_T_BUILD_BUS_STATION                                :{WHITE}Kan ikke bygge busstasjon...
 STR_1809_CAN_T_BUILD_TRUCK_STATION                              :{WHITE}Kan ikke bygge lasteterminal...
+STR_1808_CAN_T_BUILD_PASSENGER_TRAM_STATION                     :{WHITE}Kan ikke bygge trikkestasjon for passasjerer...
+STR_1809_CAN_T_BUILD_CARGO_TRAM_STATION                         :{WHITE}Kan ikke bygge trikkestasjon for frakt...
 STR_180A_ROAD_CONSTRUCTION                                      :Bygg vei
+STR_180A_TRAMWAY_CONSTRUCTION                                   :Trikkesporkonstruksjon
 STR_180B_BUILD_ROAD_SECTION                                     :{BLACK}Bygg vei
+STR_180B_BUILD_TRAMWAY_SECTION                                  :{BLACK}Bygg trikkestasjon
 STR_180C_BUILD_ROAD_VEHICLE_DEPOT                               :{BLACK}Bygg garasje (trengs for bygging og vedlikehold av kjøretøy)
+STR_180C_BUILD_TRAM_VEHICLE_DEPOT                               :{BLACK}Bygg trikkevognstall (for kjøp og vedlikehold av kjøretøy)
 STR_180D_BUILD_BUS_STATION                                      :{BLACK}Bygg bussstasjon
 STR_180E_BUILD_TRUCK_LOADING_BAY                                :{BLACK}Bygg lasteterminal
+STR_180D_BUILD_PASSENGER_TRAM_STATION                           :{BLACK}Bygg trikkestasjon for passasjerer
+STR_180E_BUILD_CARGO_TRAM_STATION                               :{BLACK}Bygg trikkestasjon for frakt
 STR_180F_BUILD_ROAD_BRIDGE                                      :{BLACK}Bygg bro
+STR_180F_BUILD_TRAMWAY_BRIDGE                                   :{BLACK}Bygg bro for trikkespor
 STR_1810_BUILD_ROAD_TUNNEL                                      :{BLACK}Bygg tunnel
+STR_1810_BUILD_TRAMWAY_TUNNEL                                   :{BLACK}Bygg tunnel for trikkespor
 STR_1811_TOGGLE_BUILD_REMOVE_FOR                                :{BLACK}Velg mellom bygging/fjerning for veibygging
+STR_1811_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS                       :{BLACK}Velg mellom bygging/fjerning for trikkesporkonstruksjon
 STR_1813_SELECT_ROAD_VEHICLE_DEPOT                              :{BLACK}Velg garasjens retning
+STR_1813_SELECT_TRAM_VEHICLE_DEPOT                              :{BLACK}Velg trikkestallens retning
 STR_1814_ROAD                                                   :Vei
 STR_1815_ROAD_WITH_STREETLIGHTS                                 :Vei med gatelykter
 STR_1816_TREE_LINED_ROAD                                        :Aveny
@@ -1618,6 +1690,8 @@
 STR_1818_ROAD_RAIL_LEVEL_CROSSING                               :Jernbaneovergang
 STR_CAN_T_REMOVE_BUS_STATION                                    :{WHITE}Kan ikke fjerne busstasjonen...
 STR_CAN_T_REMOVE_TRUCK_STATION                                  :{WHITE}Kan ikke fjerne godsstasjonen...
+STR_CAN_T_REMOVE_PASSENGER_TRAM_STATION                         :{WHITE}Kan ikke fjerne trikkestasjon for passasjerer...
+STR_CAN_T_REMOVE_CARGO_TRAM_STATION                             :{WHITE}Kan ikke fjerne trikkestasjon for frakt...
 
 ##id 0x2000
 STR_2000_TOWNS                                                  :{WHITE}Byer
@@ -1660,16 +1734,16 @@
 STR_2023_TRANSPORT_COMPANY_RATINGS                              :{BLACK}Vurdering av transportfirma:
 STR_2024                                                        :{YELLOW}{COMPANY} {COMPANYNUM}: {ORANGE}{STRING}
 STR_2025_SUBSIDIES                                              :{WHITE}Subsidier
-STR_2026_SUBSIDIES_ON_OFFER_FOR                                 :{BLACK}Tilbudte subsidier:
+STR_2026_SUBSIDIES_ON_OFFER_FOR                                 :{BLACK}Subsidietilbud:
 STR_2027_FROM_TO                                                :{ORANGE}{STRING} fra {STRING} til {STRING}
 STR_2028_BY                                                     :{YELLOW} (innen {DATE_SHORT})
 STR_202A_NONE                                                   :{ORANGE}Ingen
-STR_202B_SERVICES_ALREADY_SUBSIDISED                            :{BLACK}Tjenester som allerede er subsidiert:
+STR_202B_SERVICES_ALREADY_SUBSIDISED                            :{BLACK}Tjenester som allerede subsidieres:
 STR_202C_FROM_TO                                                :{ORANGE}{STRING} fra {STATION} til {STATION}{YELLOW} ({COMPANY}
 STR_202D_UNTIL                                                  :{YELLOW}, inntil {DATE_SHORT})
-STR_202E_OFFER_OF_SUBSIDY_EXPIRED                               :{BLACK}{BIGFONT}Tilbud om subsidie har gått ut:{}{}{STRING} fra {STRING} til {STRING} vil ikke lenger være subsidiert.
-STR_202F_SUBSIDY_WITHDRAWN_SERVICE                              :{BLACK}{BIGFONT}Subsidie trukket tilbake:{}{}Transport av {STRING} fra {STATION} til {STATION} er ikke lenger subsidiert.
-STR_2030_SERVICE_SUBSIDY_OFFERED                                :{BLACK}{BIGFONT}Subsidie-tilbud:{}{}Første transport av {STRING} fra {STRING} til {STRING} vil være subsidiert i et år av bystyret!
+STR_202E_OFFER_OF_SUBSIDY_EXPIRED                               :{BLACK}{BIGFONT}Subsidietilbud har gått ut:{}{}{STRING} fra {STRING} til {STRING} subsidieres ikke lenger.
+STR_202F_SUBSIDY_WITHDRAWN_SERVICE                              :{BLACK}{BIGFONT}Subsidie trukket tilbake:{}{}Frakt av {STRING} fra {STATION} til {STATION} subsidieres ikke lenger.
+STR_2030_SERVICE_SUBSIDY_OFFERED                                :{BLACK}{BIGFONT}Subsidietilbud:{}{}Første frakt av {STRING} fra {STRING} til {STRING} vil subsidieres i et år av bystyret!
 STR_2031_SERVICE_SUBSIDY_AWARDED                                :{BLACK}{BIGFONT}Subsidie gitt til {COMPANY}!{}{}Transport av {STRING} fra {STATION} til {STATION} vil gi 50% mer inntekt i løpet av ett år!
 STR_2032_SERVICE_SUBSIDY_AWARDED                                :{BLACK}{BIGFONT}Subsidie gitt til {COMPANY}!{}{}Transport av {STRING} fra {STATION} til {STATION} vil gi dobbelt så mye inntekt i løpet av et år!
 STR_2033_SERVICE_SUBSIDY_AWARDED                                :{BLACK}{BIGFONT}Subsidie gitt til {COMPANY}!{}{}Transport av {STRING} fra {STATION} til {STATION} vil gi tippelt så mye inntekt i løpet av et år!
@@ -1782,8 +1856,12 @@
 STR_3041_NOW_ACCEPTS_AND                                        :{WHITE}{STATION} godtar nå {STRING} og {STRING}
 STR_3042_BUS_STATION_ORIENTATION                                :{WHITE}Retning på bussterminal
 STR_3043_TRUCK_STATION_ORIENT                                   :{WHITE}Retning på lasteterminal
+STR_3042_PASSENGER_TRAM_STATION_ORIENTATION                     :{WHITE}Retning for passasjertrikk
+STR_3043_CARGO_TRAM_STATION_ORIENT                              :{WHITE}Retning for frakttrikk
 STR_3046_MUST_DEMOLISH_BUS_STATION                              :{WHITE}Må rive bussterminal først
 STR_3047_MUST_DEMOLISH_TRUCK_STATION                            :{WHITE}Må rive lasteterminal først
+STR_3046_MUST_DEMOLISH_PASSENGER_TRAM_STATION                   :{WHITE}Må fjerne trikkestasjon for passasjerer først
+STR_3047_MUST_DEMOLISH_CARGO_TRAM_STATION                       :{WHITE}Må fjerne trikkestasjon for frakt først
 STR_3048_STATIONS                                               :{WHITE}{COMPANY} - {COMMA} Stasjoner
 STR_3049_0                                                      :{YELLOW}{STATION} {STATIONFEATURES}
 STR_304A_NONE                                                   :{YELLOW}- Ingen -
@@ -1795,6 +1873,8 @@
 STR_3050_SELECT_LENGTH_OF_RAILROAD                              :{BLACK}Velg hvor lang stasjonen skal være
 STR_3051_SELECT_BUS_STATION_ORIENTATION                         :{BLACK}Velg retning på bussterminal
 STR_3052_SELECT_TRUCK_LOADING_BAY                               :{BLACK}Velg retning på lasteterminal
+STR_3051_SELECT_PASSENGER_TRAM_STATION_ORIENTATION              :{BLACK}Velg retning på trikkestasjon for passasjerer
+STR_3052_SELECT_CARGO_TRAM_STATION_ORIENTATION                  :{BLACK}Velg retning på trikkestasjon for frakt
 STR_3053_CENTER_MAIN_VIEW_ON_STATION                            :{BLACK}Sentrer bildet på stasjonen
 STR_3054_SHOW_STATION_RATINGS                                   :{BLACK}Vis stasjonsvurdering
 STR_3055_CHANGE_NAME_OF_STATION                                 :{BLACK}Endre navnet til stasjonen
@@ -1816,7 +1896,7 @@
 STR_3069_BUOY                                                   :Bøye
 STR_306A_BUOY_IN_THE_WAY                                        :{WHITE}...bøyen er i veien
 STR_306C_STATION_TOO_SPREAD_OUT                                 :{WHITE}...stasjonen er spredd for mye
-STR_306D_NONUNIFORM_STATIONS_DISALLOWED                         :{WHITE}...ikke-ensartede stasjoner deaktivert
+STR_306D_NONUNIFORM_STATIONS_DISALLOWED                         :{WHITE}...uensartede stasjoner deaktivert
 STR_USE_CTRL_TO_SELECT_MORE                                     :{BLACK}Hold nede CTRL for å velge mer en en ting
 
 STR_UNDEFINED                                                   :(udefinert streng)
@@ -1832,6 +1912,7 @@
 STR_3805_COAST_OR_RIVERBANK                                     :Kyst eller elvebredd
 STR_3806_SHIP_DEPOT                                             :Skipsdepot
 STR_3807_CAN_T_BUILD_ON_WATER                                   :{WHITE}...Kan ikke bygge på vann
+STR_MUST_DEMOLISH_CANAL_FIRST                                   :{WHITE}Må fjerne kanal først
 
 ##id 0x4000
 STR_4000_SAVE_GAME                                              :{WHITE}Lagre spill
@@ -1844,6 +1925,9 @@
 STR_4007_GAME_SAVE_FAILED                                       :{WHITE}Lagring av spillet mislyktes{}{STRING}
 STR_4008_UNABLE_TO_DELETE_FILE                                  :{WHITE}Kan ikke slette fil
 STR_4009_GAME_LOAD_FAILED                                       :{WHITE}Feil ved fremhenting av spill{}{STRING}
+STR_GAME_SAVELOAD_ERROR_BROKEN_INTERNAL_ERROR                   :Intern feil: {STRING}
+STR_GAME_SAVELOAD_ERROR_BROKEN_SAVEGAME                         :Ødelagt lagret spill - {STRING}
+STR_GAME_SAVELOAD_ERROR_TOO_NEW_SAVEGAME                        :Spillet er lagret i en nyere versjon
 STR_GAME_SAVELOAD_ERROR_FILE_NOT_READABLE                       :Kan ikke lese filen
 STR_GAME_SAVELOAD_ERROR_FILE_NOT_WRITEABLE                      :Kan ikke skrive til filen
 STR_400A_LIST_OF_DRIVES_DIRECTORIES                             :{BLACK}Liste over disker, mapper og lagrede spill
@@ -1902,6 +1986,13 @@
 STR_4829_REQUIRES                                               :{BLACK}Trenger: {YELLOW}{STRING}, {STRING}, {STRING}
 ############ range for requires ends
 
+############ range for produces starts
+STR_INDUSTRY_WINDOW_WAITING_FOR_PROCESSING                      :{BLACK}Gods som venter på behandling:
+STR_INDUSTRY_WINDOW_WAITING_STOCKPILE_CARGO                     :{YELLOW}{CARGO}{BLACK}
+STR_4827_PRODUCES                                               :{BLACK}Produserer: {YELLOW}{STRING}
+STR_4828_PRODUCES                                               :{BLACK}Produserer: {YELLOW}{STRING}, {STRING}
+############ range for produces ends
+
 STR_482A_PRODUCTION_LAST_MONTH                                  :{BLACK}Produksjon forrige måned:
 STR_482B_TRANSPORTED                                            :{YELLOW}{CARGO}{BLACK} ({COMMA} % transportert)
 STR_482C_CENTER_THE_MAIN_VIEW_ON                                :{BLACK}Sentrer bildet på industriområdet
@@ -1910,9 +2001,9 @@
 STR_482F_COST                                                   :{BLACK}Koster: {YELLOW}{CURRENCY}
 STR_4830_CAN_T_CONSTRUCT_THIS_INDUSTRY                          :{WHITE}Kan ikke bygge denne typen industri her...
 STR_4831_FOREST_CAN_ONLY_BE_PLANTED                             :{WHITE}...skog kan bare plantes over snøgrensen
-STR_4832_ANNOUNCES_IMMINENT_CLOSURE                             :{BLACK}{BIGFONT}{INDUSTRY} offentliggjør umiddelbar nedleggelse!
-STR_4833_SUPPLY_PROBLEMS_CAUSE_TO                               :{BLACK}{BIGFONT}Leveringsproblemer forårsaker {INDUSTRY} til å offentliggjøre umiddelbar nedleggelse!
-STR_4834_LACK_OF_NEARBY_TREES_CAUSES                            :{BLACK}{BIGFONT}Mangel på trær i nærheten får {INDUSTRY} til å offentliggjøre umiddelbar nedleggelse!
+STR_4832_ANNOUNCES_IMMINENT_CLOSURE                             :{BLACK}{BIGFONT}{INDUSTRY} legger ned!
+STR_4833_SUPPLY_PROBLEMS_CAUSE_TO                               :{BLACK}{BIGFONT}{INDUSTRY} legger ned etter leveringsproblemer
+STR_4834_LACK_OF_NEARBY_TREES_CAUSES                            :{BLACK}{BIGFONT}{INDUSTRY} legger ned grunnet tremangel
 STR_4835_INCREASES_PRODUCTION                                   :{BLACK}{BIGFONT}{INDUSTRY} øker produksjonen!
 STR_4836_NEW_COAL_SEAM_FOUND_AT                                 :{BLACK}{BIGFONT}Ny kullåre funnet i {INDUSTRY}!{}En dobling i produksjonen er ventet!
 STR_4837_NEW_OIL_RESERVES_FOUND                                 :{BLACK}{BIGFONT}Nye oljereserver funnet i {INDUSTRY}!{}En dobling i produksjonen er ventet!
@@ -1921,7 +2012,7 @@
 STR_483A_INSECT_INFESTATION_CAUSES                              :{BLACK}{BIGFONT}Insektinvasjon på {INDUSTRY}!{}Produksjonen synker med 50 %
 STR_483B_CAN_ONLY_BE_POSITIONED                                 :{WHITE}...kan kun plasseres i nærheten av kartkanten
 STR_INDUSTRY_PROD_GOUP                                          :{BLACK}{BIGFONT}Produksjonen av {STRING} ved {INDUSTRY} øker med {COMMA} %!
-STR_INDUSTRY_PROD_GODOWN                                        :{BLACK}{BIGFONT}Produksjonen av {STRING} ved {INDUSTRY} synker med {COMMA} %!
+STR_INDUSTRY_PROD_GODOWN                                        :{BLACK}{BIGFONT}{STRING}produksjon ved {INDUSTRY} synker med {COMMA} %!
 
 ##id 0x5000
 STR_5000_TRAIN_IN_TUNNEL                                        :{WHITE}Tog i tunnelen
@@ -1931,6 +2022,8 @@
 STR_5006_MUST_DEMOLISH_TUNNEL_FIRST                             :{WHITE}Må rive tunnel først
 STR_5007_MUST_DEMOLISH_BRIDGE_FIRST                             :{WHITE}Må rive bro først
 STR_5008_CANNOT_START_AND_END_ON                                :{WHITE}Kan ikke starte og slutte på samme felt
+STR_BRIDGEHEADS_NOT_SAME_HEIGHT                                 :{WHITE}Broender er ikke på samme nivå
+STR_BRIDGE_TOO_LOW_FOR_TERRAIN                                  :{WHITE}Broen er for lav for terrenget
 STR_500A_START_AND_END_MUST_BE_IN                               :{WHITE}Start og slutt må være på linje
 STR_500B_SITE_UNSUITABLE_FOR_TUNNEL                             :{WHITE}Feltet er upassende for tunnelinngang
 STR_500D                                                        :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY}
@@ -2245,6 +2338,8 @@
 STR_LIVERY_HELICOPTER                                           :Helikopter
 STR_LIVERY_SMALL_PLANE                                          :Lite fly
 STR_LIVERY_LARGE_PLANE                                          :Stort fly
+STR_LIVERY_PASSENGER_TRAM                                       :Passasjertrikk
+STR_LIVERY_FREIGHT_TRAM                                         :Frakttrikk
 
 STR_LIVERY_GENERAL_TIP                                          :{BLACK}Vis generelle fargetemaer
 STR_LIVERY_TRAIN_TIP                                            :{BLACK}Vis togfargetemaer
@@ -2546,7 +2641,11 @@
 STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT                             :Vedlikehold (uten å stoppe) ved {TOWN} togstall
 
 STR_TIMETABLE_GO_TO                                             :{STRING} {STRING}
+STR_TIMETABLE_TRAVEL_NOT_TIMETABLED                             :Reise (uten tidstabell)
+STR_TIMETABLE_TRAVEL_FOR                                        :Reise for {STRING}
+STR_TIMETABLE_STAY_FOR                                          :og bli værende i {STRING}
 STR_TIMETABLE_DAYS                                              :{COMMA} dag{P "" s}
+STR_TIMETABLE_TICKS                                             :{COMMA} tikk
 
 STR_HEADING_FOR_TRAIN_DEPOT                                     :{ORANGE}Er på vei til {TOWN} togstall
 STR_HEADING_FOR_TRAIN_DEPOT_VEL                                 :{ORANGE}Er på vei til {TOWN} togstall, {VELOCITY}
@@ -2590,6 +2689,7 @@
 STR_REFIT_TIP                                                   :{BLACK}Velg varetypen det skal endres til. CTRL-klikk for å omgjøre.
 STR_REFIT_ORDER                                                 :(Bygg om til {STRING})
 STR_TIMETABLE_VIEW                                              :{BLACK}Tidstabell
+STR_TIMETABLE_VIEW_TOOLTIP                                      :{BLACK}Bytt til tidstabellvisning
 STR_8829_ORDERS                                                 :{WHITE}{VEHICLE} (Ordre)
 STR_882A_END_OF_ORDERS                                          :{SETX 10}- - Slutt på ordre - -
 STR_FULLLOAD_OR_SERVICE                                         :{SKIP}{SKIP}{STRING}
@@ -2640,11 +2740,16 @@
 STR_8851_SHOW_CAPACITIES_OF_EACH                                :{BLACK}Vis kapasiteten til vognene
 STR_8852_SHOW_TOTAL_CARGO                                       :{BLACK}Vis en total kapasitet på togene oppdelt etter godstype
 STR_8852_ORDERS_LIST_CLICK_ON_ORDER                             :{BLACK}Ordreliste - trykk på en ordre for å velge den
+STR_8853_SKIP_THE_CURRENT_ORDER                                 :{BLACK}Hopp over den nåværende ordren og begynn på neste. CTRL + klikk hopper fram til valgte ordre
 STR_8854_DELETE_THE_HIGHLIGHTED                                 :{BLACK}Slett den valgte ordren
 STR_8855_MAKE_THE_HIGHLIGHTED_ORDER                             :{BLACK}Gjør den valgte ordren om til en
 STR_8856_INSERT_A_NEW_ORDER_BEFORE                              :{BLACK}Sett inn en ordre før den valgte ordren, eller i slutten av listen.
 STR_8857_MAKE_THE_HIGHLIGHTED_ORDER                             :{BLACK}Fyll alltid kjøretøyet ved valgte stasjon
 STR_8858_MAKE_THE_HIGHLIGHTED_ORDER                             :{BLACK}Tøm alltid kjøretøyet ved valgte stasjon
+STR_TIMETABLE_TOOLTIP                                           :{BLACK}Tidstabell - klikk en ordre for å merke den.
+STR_TIMETABLE_WAIT_TIME_TOOLTIP                                 :{BLACK}Endre varigheten for valgte ordre
+STR_TIMETABLE_CLEAR_TIME_TOOLTIP                                :{BLACK}Fjern varigheten for valgte ordre
+STR_TIMETABLE_RESET_LATENESS_TOOLTIP                            :{BLACK}Nullstill senhetstelleren slik at kjøretøyet ankommer i tide
 STR_SERVICE_HINT                                                :{BLACK}Hopp over ordren med mindre vedlikehold trengs.
 STR_VEHICLE_INFO_COST_WEIGHT_SPEED_POWER                        :{BLACK}Koster: {CURRENCY} Vekt: {WEIGHT_S}{}Fart: {VELOCITY}  Kraft: {POWER}{}Driftkostnader: {CURRENCY}/år{}Kapasitet: {CARGO}
 STR_885C_BROKEN_DOWN                                            :{RED}Havarert
@@ -2666,6 +2771,8 @@
 STR_886B_CAN_T_RENAME_TRAIN_VEHICLE                             :{WHITE}Kan ikke gi tog/vogn nytt navn...
 STR_886D_MAKE_THE_HIGHLIGHTED_ORDER                             :{BLACK}Få den merkede ordren til å tvinge kjøretøyet til å dumpe lasten
 STR_886F_TRANSFER                                               :{BLACK}Overfør
+STR_CLEAR_TIME                                                  :{BLACK}Nullstill tid
+STR_RESET_LATENESS                                              :{BLACK}Nullstill senhetsteller
 
 STR_TRAIN_STOPPING                                              :{RED}Stopper
 STR_TRAIN_STOPPING_VEL                                          :{RED}Stopper, {VELOCITY}
@@ -2677,13 +2784,19 @@
 STR_NEW_VEHICLE_TYPE                                            :{BLACK}{BIGFONT}{ENGINE}
 STR_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE                         :{BLACK}Ny {STRING} Nå tilgjengelig!  -  {ENGINE}
 
+STR_CAN_T_SELL_DESTROYED_VEHICLE                                :{WHITE}Kan ikke selge ødelagt kjøretøy...
+
+STR_CAN_T_TIMETABLE_VEHICLE                                     :{WHITE}Kan ikke gi kjøretøy tidstabell...
 STR_TIMETABLE_ONLY_WAIT_AT_STATIONS                             :{WHITE}Kjøretøy kan bare vente på stasjoner.
 STR_TIMETABLE_NOT_STOPPING_HERE                                 :{WHITE}Dette kjøretøyet stopper ikke på denne stasjonen.
 STR_TIMETABLE_CHANGE_TIME                                       :{BLACK}Skift Tid
 STR_TIMETABLE_STATUS_ON_TIME                                    :Dette kjøretøyet går på tid
 STR_TIMETABLE_STATUS_LATE                                       :Dette kjøretøyet er {STRING} for sent ute
 STR_TIMETABLE_STATUS_EARLY                                      :Dette kjøretøyet er {STRING} for tidlig ute
+STR_TIMETABLE_TOTAL_TIME                                        :Det vil ta {STRING} å fullføre tidstabellen
+STR_TIMETABLE_TOTAL_TIME_INCOMPLETE                             :Det vil ta minst {STRING} å fullføre denne tidstabellen (tidstabell ikke fullstendig)
 STR_TIMETABLE_AUTOFILL                                          :{BLACK}Fyll automatisk
+STR_TIMETABLE_AUTOFILL_TOOLTIP                                  :{BLACK}Fyll tidstabellen automatisk med verdiene fra forrige tur
 
 ##id 0x9000
 STR_9000_ROAD_VEHICLE_IN_THE_WAY                                :{WHITE}Kjøretøy i veien
@@ -2734,6 +2847,8 @@
 STR_902E_NAME_ROAD_VEHICLE                                      :{BLACK}Navngi kjøretøy
 STR_902F_CITIZENS_CELEBRATE_FIRST                               :{BLACK}{BIGFONT}Innbyggerne jubler . . .{}Første buss ankommer {STATION}!
 STR_9030_CITIZENS_CELEBRATE_FIRST                               :{BLACK}{BIGFONT}Innbyggerne jubler . . .{}Første lastebil ankommer {STATION}!
+STR_902F_CITIZENS_CELEBRATE_FIRST_TRAM                          :{BLACK}{BIGFONT}Borgerne jubler . . .{}Første passasjertrikk ankommer {STATION}!
+STR_9030_CITIZENS_CELEBRATE_FIRST_TRAM                          :{BLACK}{BIGFONT}Borgerne jubler . . .{}Første frakttrikk ankommer {STATION}!
 STR_9031_ROAD_VEHICLE_CRASH_DRIVER                              :{BLACK}{BIGFONT}Kollisjon!{}Sjåfør dør etter kollisjon med tog
 STR_9032_ROAD_VEHICLE_CRASH_DIE                                 :{BLACK}{BIGFONT}Kollisjon!{}{COMMA} dør etter kollisjon med tog
 STR_9033_CAN_T_MAKE_VEHICLE_TURN                                :{WHITE}Kan ikke snu...
@@ -2983,11 +3098,11 @@
 
 STR_NEWGRF_NOT_FOUND                                            :{RED}Ingen passende fil funnet
 STR_NEWGRF_DISABLED                                             :{RED}Deaktivert
-STR_NEWGRF_COMPATIBLE_LOADED                                    :{ORANGE}Matchende fil ikke funnet(kompatibel GRF lastet)
+STR_NEWGRF_COMPATIBLE_LOADED                                    :{ORANGE}Tilsvarende fil ikke funnet (kompatibel GRF lastet)
 
-STR_NEWGRF_COMPATIBLE_LOAD_WARNING                              :{WHITE}Kompatible GRF(er) lastet for manglene filer
-STR_NEWGRF_DISABLED_WARNING                                     :{WHITE}Manglende GRF fil(er) har blitt avslått
-STR_NEWGRF_NOT_FOUND_WARNING                                    :{WHITE}Mangler GRF fil(er) for å kunne laste spill
+STR_NEWGRF_COMPATIBLE_LOAD_WARNING                              :{WHITE}Kompatibel GRF lastet for manglende filer
+STR_NEWGRF_DISABLED_WARNING                                     :{WHITE}Manglende GRF-fil(er) har blitt slått av
+STR_NEWGRF_NOT_FOUND_WARNING                                    :{WHITE}Mangler GRF-fil(er) nødvendige for å laste spillet
 
 STR_CURRENCY_WINDOW                                             :{WHITE}Vanlig valuta
 STR_CURRENCY_EXCHANGE_RATE                                      :{LTBLUE}Valutakurs: {ORANGE}{CURRENCY} = £ {COMMA}
@@ -3020,6 +3135,7 @@
 
 ### depot strings
 STR_DEPOT_SELL_CONFIRMATION_TEXT                                :{YELLOW}Du er nå i ferd med å selge alle kjøretøyene i depoet. Er du sikker på at du vil dette?
+STR_DEPOT_WRONG_DEPOT_TYPE                                      :Gal stalltype
 
 STR_DEPOT_SELL_ALL_BUTTON_TRAIN_TIP                             :{BLACK}Selg alle tog i depodet
 STR_DEPOT_SELL_ALL_BUTTON_ROADVEH_TIP                           :{BLACK}Selg alle kjøretøy i garasjen
@@ -3136,6 +3252,8 @@
 STR_START_DATE_QUERY_CAPT                                       :{WHITE}Endre startår
 STR_HEIGHTMAP_SCALE_WARNING_CAPTION                             :{WHITE}Skalaadvarsel
 STR_HEIGHTMAP_SCALE_WARNING_MESSAGE                             :{YELLOW}Å endre kildemapstørrelsen for mye er ikke anbefalt. Fortsette generering?
+STR_TOWN_LAYOUT_WARNING_CAPTION                                 :{WHITE}Byutleggsadvarsel
+STR_TOWN_LAYOUT_WARNING_MESSAGE                                 :{YELLOW}Byutlegget «ingen flere veier» anbefales ikke. Fortsette generering?
 STR_SNOW_LINE_HEIGHT_NUM                                        :{NUM}
 STR_HEIGHTMAP_NAME                                              :{BLACK}Høydekartnavn:
 STR_HEIGHTMAP_SIZE                                              :{BLACK}Størrelse: {ORANGE}{NUM} x {NUM}
@@ -3208,6 +3326,7 @@
 STR_TRANSPARENT_BUILDINGS_DESC                                  :{BLACK}Skru på gjennomsiktighet for stasjoner, depoter, lokalstasjoner og skinner
 STR_TRANSPARENT_BRIDGES_DESC                                    :{BLACK}Skru på gjennomsiktighet for broer
 STR_TRANSPARENT_STRUCTURES_DESC                                 :{BLACK}Skru på gjennomsiktighet for fyrtårn og antenner
+STR_TRANSPARENT_LOADING_DESC                                    :{BLACK}Velg gjennomsiktighet for lastingsindikatorer
 
 STR_PERCENT_UP_SMALL                                            :{TINYFONT}{WHITE}{NUM}%{UPARROW}
 STR_PERCENT_UP                                                  :{WHITE}{NUM}%{UPARROW}
@@ -3223,26 +3342,33 @@
 STR_GROUP_ALL_ROADS                                             :Alle kjøretøyer
 STR_GROUP_ALL_SHIPS                                             :Alle båter
 STR_GROUP_ALL_AIRCRAFTS                                         :Alle flyfartøy
+STR_GROUP_DEFAULT_TRAINS                                        :Ugrupperte tog
+STR_GROUP_DEFAULT_ROADS                                         :Ugrupperte biler
+STR_GROUP_DEFAULT_SHIPS                                         :Ugrupperte skip
+STR_GROUP_DEFAULT_AIRCRAFTS                                     :Ugrupperte fly
 STR_GROUP_TINY_NUM                                              :{TINYFONT}{COMMA}
 STR_GROUP_ADD_SHARED_VEHICLE                                    :Legg til delte kjøretøy
 STR_GROUP_REMOVE_ALL_VEHICLES                                   :Fjern alle kjøretøy
 
-STR_GROUP_TRAINS_CAPTION                                        :{WHITE}{GROUP} - {COMMA} Tog{P "" s}
-STR_GROUP_ROADVEH_CAPTION                                       :{WHITE}{GROUP} - {COMMA} Kjøretøy{P "" s}
-STR_GROUP_SHIPS_CAPTION                                         :{WHITE}{GROUP} - {COMMA} Skip{P "" s}
+STR_GROUP_TRAINS_CAPTION                                        :{WHITE}{GROUP} - {COMMA} tog
+STR_GROUP_ROADVEH_CAPTION                                       :{WHITE}{GROUP} - {COMMA} kjøretøy
+STR_GROUP_SHIPS_CAPTION                                         :{WHITE}{GROUP} - {COMMA} skip
 STR_GROUP_AIRCRAFTS_CAPTION                                     :{WHITE}{GROUP} - {COMMA} Luftfartøy
 STR_GROUP_RENAME_CAPTION                                        :{BLACK}Gi nytt navn på gruppen
-STR_GROUP_REPLACE_CAPTION                                       :{WHITE}Skift kjøretøyer i "{GROUP}"
+STR_GROUP_REPLACE_CAPTION                                       :{WHITE}Skift ut kjøretøyer i "{GROUP}"
 
 STR_GROUP_CAN_T_CREATE                                          :{WHITE}Kan ikke opprette gruppe...
 STR_GROUP_CAN_T_DELETE                                          :{WHITE}Kan ikke slette denne gruppen...
 STR_GROUP_CAN_T_RENAME                                          :{WHITE}Kan ikke gi nytt navn på denne gruppen...
 STR_GROUP_CAN_T_REMOVE_ALL_VEHICLES                             :{WHITE}Kan ikke fjerne alle kjøretøy fra denne gruppen...
 STR_GROUP_CAN_T_ADD_VEHICLE                                     :{WHITE}Kan ikke legge til kjøretøy i denne grupppen...
+STR_GROUP_CAN_T_ADD_SHARED_VEHICLE                              :{WHITE}Kan ikke legge til delte kjøretøyer i gruppa...
 
+STR_GROUPS_CLICK_ON_GROUP_FOR_TIP                               :{BLACK}Grupper - Klikk en gruppe for å se alle kjøretøy i gruppa
+STR_GROUP_CREATE_TIP                                            :{BLACK}Klikk for å opprette en gruppe
 STR_GROUP_DELETE_TIP                                            :{BLACK}Fjern den valgte gruppen
 STR_GROUP_RENAME_TIP                                            :{BLACK}Gi nytt navn på den valgte gruppen
-
+STR_GROUP_REPLACE_PROTECTION_TIP                                :{BLACK}Klikk for å beskytte denne gruppa fra global autoerstatting
 
 STR_COMPANY_NAME                                                :{COMPANY}
 STR_ENGINE_NAME                                                 :{ENGINE}
@@ -3251,4 +3377,63 @@
 STR_SIGN_NAME                                                   :{SIGN}
 STR_VEHICLE_NAME                                                :{VEHICLE}
 
+STR_NAME_MUST_BE_UNIQUE                                         :{WHITE}Navn må være unikt
+
+#### Improved sign GUI
+STR_NEXT_SIGN_TOOLTIP                                           :{BLACK}Gå til neste signal
+STR_PREVIOUS_SIGN_TOOLTIP                                       :{BLACK}Gå til forrige signal
+
 ########
+
+STR_FUND_NEW_INDUSTRY                                           :{BLACK}Fond
+STR_PROSPECT_NEW_INDUSTRY                                       :{BLACK}Prospekt
+STR_BUILD_NEW_INDUSTRY                                          :{BLACK}Bygg
+STR_INDUSTRY_SELECTION_HINT                                     :{BLACK}Velg passende industri fra listen
+
+############ Face formatting
+STR_FACE_ADVANCED                                               :{BLACK}Avansert
+STR_FACE_ADVANCED_TIP                                           :{BLACK}Avansert ansiktsvalg
+STR_FACE_SIMPLE                                                 :{BLACK}Enkelt
+STR_FACE_SIMPLE_TIP                                             :{BLACK}Enkelt ansiktsvalg.
+STR_FACE_LOAD                                                   :{BLACK}Last
+STR_FACE_LOAD_TIP                                               :{BLACK}Last favorittansikt
+STR_FACE_LOAD_DONE                                              :{WHITE}Ditt favorittansikt har blitt lastet fra OpenTTDs konfigurasjonsfil.
+STR_FACE_FACECODE                                               :{BLACK}Ansiktsnummer
+STR_FACE_FACECODE_TIP                                           :{BLACK}Vis og/eller endre ansiktsnummer
+STR_FACE_FACECODE_CAPTION                                       :{WHITE}Vis og/eller endre ansiktsnummer
+STR_FACE_FACECODE_SET                                           :{WHITE}Ny ansiktsnummerkode har blitt fastsatt.
+STR_FACE_FACECODE_ERR                                           :{WHITE}Kunne ikke endre ansiktsnummer - må være numerisk mellom 0 og 4 294 967 295!
+STR_FACE_SAVE                                                   :{BLACK}Lagre
+STR_FACE_SAVE_TIP                                               :{BLACK}Lagre favorittansikt
+STR_FACE_SAVE_DONE                                              :{WHITE}Dette ansiktet vil bli lagret som din favoritt i OpenTTDs konfigurasjonsfil.
+STR_FACE_EUROPEAN                                               :{BLACK}Europeisk
+STR_FACE_SELECT_EUROPEAN                                        :{BLACK}Velg europeiske ansikter
+STR_FACE_AFRICAN                                                :{BLACK}Afrikansk
+STR_FACE_SELECT_AFRICAN                                         :{BLACK}Velg afrikanske ansikter
+STR_FACE_YES                                                    :Ja
+STR_FACE_NO                                                     :Nei
+STR_FACE_MOUSTACHE_EARRING_TIP                                  :{BLACK}Slå på bart eller ørering
+STR_FACE_HAIR                                                   :Hår:
+STR_FACE_HAIR_TIP                                               :{BLACK}Endre hår
+STR_FACE_EYEBROWS                                               :Øyenbryn:
+STR_FACE_EYEBROWS_TIP                                           :{BLACK}Endre øyenbryn
+STR_FACE_EYECOLOUR                                              :Øyefarge:
+STR_FACE_EYECOLOUR_TIP                                          :{BLACK}Endre øyefarge
+STR_FACE_GLASSES                                                :Briller:
+STR_FACE_GLASSES_TIP                                            :{BLACK}Slå på briller
+STR_FACE_GLASSES_TIP_2                                          :{BLACK}Endre briller
+STR_FACE_NOSE                                                   :Nese:
+STR_FACE_NOSE_TIP                                               :{BLACK}Endre nese
+STR_FACE_LIPS                                                   :Lepper:
+STR_FACE_MOUSTACHE                                              :Bart:
+STR_FACE_LIPS_MOUSTACHE_TIP                                     :{BLACK}Endre lepper eller bart
+STR_FACE_CHIN                                                   :Hake:
+STR_FACE_CHIN_TIP                                               :{BLACK}Endre hake
+STR_FACE_JACKET                                                 :Jakke:
+STR_FACE_JACKET_TIP                                             :{BLACK}Endre jakke
+STR_FACE_COLLAR                                                 :Krage:
+STR_FACE_COLLAR_TIP                                             :{BLACK}Endre krage
+STR_FACE_TIE                                                    :Slips:
+STR_FACE_EARRING                                                :Ørering:
+STR_FACE_TIE_EARRING_TIP                                        :{BLACK}Endre slips eller ørering
+########
--- a/src/lang/portuguese.txt	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/lang/portuguese.txt	Sat Oct 20 10:42:28 2007 +0000
@@ -1103,8 +1103,15 @@
 STR_CONFIG_PATCHES_SCROLLWHEEL_SCROLL                           :Percorrer mapa
 STR_CONFIG_PATCHES_SCROLLWHEEL_OFF                              :Desligado
 STR_CONFIG_PATCHES_SCROLLWHEEL_MULTIPLIER                       :{LTBLUE}Velocidade do scrollwheel no mapa: {ORANGE}{STRING}
+
+STR_CONFIG_PATCHES_RIGHT_MOUSE_BTN_EMU_COMMAND                  :Clique para comando
+STR_CONFIG_PATCHES_RIGHT_MOUSE_BTN_EMU_CONTROL                  :Clique para controlo
+STR_CONFIG_PATCHES_RIGHT_MOUSE_BTN_EMU_OFF                      :Desligado
+
 STR_CONFIG_PATCHES_PAUSE_ON_NEW_GAME                            :{LTBLUE}Pausa automática ao iniciar um novo jogo: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_ADVANCED_VEHICLE_LISTS                       :{LTBLUE}Usar a lista avançada de veículos: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ADVANCED_VEHICLE_LISTS_OFF                   :Desligado
+STR_CONFIG_PATCHES_ADVANCED_VEHICLE_LISTS_OWN                   :Sua companhia
 STR_CONFIG_PATCHES_LOADING_INDICATORS                           :{LTBLUE}Usar indicadores de carga: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_TIMETABLE_ALLOW                              :{LTBLUE}Activar plano de horários para veículos: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_TIMETABLE_IN_TICKS                           :{LTBLUE}Mostrar horário em tics em vez dias: {ORANGE}{STRING}
@@ -2759,6 +2766,7 @@
 STR_NEW_VEHICLE_TYPE                                            :{BLACK}{BIGFONT}{ENGINE}
 STR_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE                         :{BLACK}Novo {STRING} agora disponível! - {ENGINE}
 
+
 STR_CAN_T_TIMETABLE_VEHICLE                                     :{WHITE}Impossível programar veículo...
 STR_TIMETABLE_ONLY_WAIT_AT_STATIONS                             :{WHITE}Veículos apenas podem esperar em estações.
 STR_TIMETABLE_NOT_STOPPING_HERE                                 :{WHITE}Este veículo não pára nesta estação.
@@ -3362,3 +3370,6 @@
 STR_PROSPECT_NEW_INDUSTRY                                       :{BLACK}Prospectar
 STR_BUILD_NEW_INDUSTRY                                          :{BLACK}Construir
 STR_INDUSTRY_SELECTION_HINT                                     :{BLACK}Escolha a indústria apropriada desta lista
+
+############ Face formatting
+########
--- a/src/lang/russian.txt	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/lang/russian.txt	Sat Oct 20 10:42:28 2007 +0000
@@ -862,6 +862,7 @@
 
 STR_0314_FUND_NEW_INDUSTRY                                      :{WHITE}Создать новое предприятие
 STR_JUST_STRING                                                 :{STRING}
+STR_JUST_INT                                                    :{NUM}
 STR_0316_CAN_ONLY_BE_BUILT_IN_TOWNS                             :{WHITE}...можно строить только в городах
 STR_0317_CAN_ONLY_BE_BUILT_IN_RAINFOREST                        :{WHITE}...можно строить только в тропиках
 STR_0318_CAN_ONLY_BE_BUILT_IN_DESERT                            :{WHITE}...можно строить только в пустыне
@@ -1022,6 +1023,7 @@
 STR_CONFIG_PATCHES_ON                                           :да
 STR_CONFIG_PATCHES_VEHICLESPEED                                 :{LTBLUE}Показывать скорость в панели статуса транспорта: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_BUILDONSLOPES                                :{LTBLUE}Разрешить строительство на склонах и на берегу: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_AUTOSLOPE                                    :{LTBLUE}Разрешить терраформ. под зданиями, дорогами и т.д.. (автоспуски): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_CATCHMENT                                    :{LTBLUE}Зона покрытия зависит от типа станции: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_EXTRADYNAMITE                                :{LTBLUE}Разрешить снос (почти) всех городских объектов: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAMMOTHTRAINS                                :{LTBLUE}Разрешить очень длинные поезда: {ORANGE}{STRING}
@@ -1048,6 +1050,8 @@
 STR_CONFIG_PATCHES_ROADVEH_QUEUE                                :{LTBLUE}Автотранспорт строится в очередь у станции: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_AUTOSCROLL                                   :{LTBLUE}Смещать обзор, когда курсор находится у края экрана: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_BRIBE                                        :{LTBLUE}Разрешить подкупать муниципальную власть: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ALLOW_EXCLUSIVE                              :{LTBLUE}Разрешить покупать эксклюзивные трансп. права: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ALLOW_GIVE_MONEY                             :{LTBLUE}Разрешить передачу денег другим компаниям: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NONUNIFORM_STATIONS                          :{LTBLUE}Станции могут быть произвольной формы: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NEW_PATHFINDING_ALL                          :{LTBLUE}Алгоритм навигации NPF (замена оригинального): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_FREIGHT_TRAINS                               :{LTBLUE}Множитель увеличения веса груза для товарных поездов: {ORANGE}{STRING}
@@ -1188,6 +1192,7 @@
 STR_CONFIG_PATCHES_LARGER_TOWNS                                 :{LTBLUE}Соотношение городов, которые растут вдвое быстрее: {ORANGE}1 из {STRING}
 STR_CONFIG_PATCHES_LARGER_TOWNS_DISABLED                        :{LTBLUE}Соотношение городов, которые растут вдвое быстрее: {ORANGE}Выкл.
 STR_CONFIG_PATCHES_CITY_SIZE_MULTIPLIER                         :{LTBLUE}Изначальный множитель размера города: {ORANGE}{STRING}
+STR_CONFIG_MODIFIED_ROAD_REBUILD                                :{LTBLUE}Удалять абсурдные элементы дорог во время строительства
 
 STR_CONFIG_PATCHES_GUI                                          :{BLACK}Интерфейс
 STR_CONFIG_PATCHES_CONSTRUCTION                                 :{BLACK}Строительство
@@ -2018,6 +2023,8 @@
 STR_5006_MUST_DEMOLISH_TUNNEL_FIRST                             :{WHITE}Сначала удалите туннель
 STR_5007_MUST_DEMOLISH_BRIDGE_FIRST                             :{WHITE}Сначала удалите мост
 STR_5008_CANNOT_START_AND_END_ON                                :{WHITE}Не может начинаться и заканчиваться в той же точке
+STR_BRIDGEHEADS_NOT_SAME_HEIGHT                                 :{WHITE}Опоры мостов должны быть на одном уровне
+STR_BRIDGE_TOO_LOW_FOR_TERRAIN                                  :{WHITE}Слишком низкий мост
 STR_500A_START_AND_END_MUST_BE_IN                               :{WHITE}Начало и конец должны быть на одной линии
 STR_500B_SITE_UNSUITABLE_FOR_TUNNEL                             :{WHITE}Неподходящее место для строительства туннеля
 STR_500D                                                        :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY}
@@ -2789,6 +2796,8 @@
 STR_NEW_VEHICLE_TYPE                                            :{BLACK}{BIGFONT}{ENGINE}
 STR_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE                         :{BLACK}Появился новый {STRING}!  -  {ENGINE}
 
+STR_CAN_T_SELL_DESTROYED_VEHICLE                                :{WHITE}Не могу продать разбитый транспорт ...
+
 STR_CAN_T_TIMETABLE_VEHICLE                                     :{WHITE}Не могу составить расписание для этого транспорта...
 STR_TIMETABLE_ONLY_WAIT_AT_STATIONS                             :{WHITE}Транспорт может только ждать на станции.
 STR_TIMETABLE_NOT_STOPPING_HERE                                 :{WHITE}Этот транспорт не останавливается на этой станции.
@@ -3392,3 +3401,51 @@
 STR_PROSPECT_NEW_INDUSTRY                                       :{BLACK}Разведать
 STR_BUILD_NEW_INDUSTRY                                          :{BLACK}Построить
 STR_INDUSTRY_SELECTION_HINT                                     :{BLACK}Выберите тип производства из списка
+
+############ Face formatting
+STR_FACE_ADVANCED                                               :{BLACK}Расш.
+STR_FACE_ADVANCED_TIP                                           :{BLACK}Расширенный выбор лиц.
+STR_FACE_SIMPLE                                                 :{BLACK}Простые
+STR_FACE_SIMPLE_TIP                                             :{BLACK}Выбор простых лиц.
+STR_FACE_LOAD                                                   :{BLACK}Загруз.
+STR_FACE_LOAD_TIP                                               :{BLACK}Загрузить любимое лицо
+STR_FACE_LOAD_DONE                                              :{WHITE}Ваше любимое лицо будет загружено из конфиг-файла.
+STR_FACE_FACECODE                                               :{BLACK}Лицо игрока.
+STR_FACE_FACECODE_TIP                                           :{BLACK}Посмотреть и/или установить номер лица
+STR_FACE_FACECODE_CAPTION                                       :{WHITE}Посмотреть и/или установить номер лица
+STR_FACE_FACECODE_SET                                           :{WHITE}Цифровой код нового лица будет установлен
+STR_FACE_FACECODE_ERR                                           :{WHITE}Не могу установить номер лица - значение должно быть целым и лежать в диапазоне от 0 до 4,294,967,295!
+STR_FACE_SAVE                                                   :{BLACK}Сохр.
+STR_FACE_SAVE_TIP                                               :{BLACK}Сохр. любимое лицо
+STR_FACE_SAVE_DONE                                              :{WHITE}Это лицо будет сохранено как ваше любимое в конфиг-файле.
+STR_FACE_EUROPEAN                                               :{BLACK}Европеоидное
+STR_FACE_SELECT_EUROPEAN                                        :{BLACK}Выбор европеоидного типа лица
+STR_FACE_AFRICAN                                                :{BLACK}Африканское
+STR_FACE_SELECT_AFRICAN                                         :{BLACK}Выбор африканского типа лица
+STR_FACE_YES                                                    :Да
+STR_FACE_NO                                                     :Нет
+STR_FACE_MOUSTACHE_EARRING_TIP                                  :{BLACK}Включить усы или серьги
+STR_FACE_HAIR                                                   :Волосы:
+STR_FACE_HAIR_TIP                                               :{BLACK}Изменить волосы
+STR_FACE_EYEBROWS                                               :Брови
+STR_FACE_EYEBROWS_TIP                                           :{BLACK}Изменить брови
+STR_FACE_EYECOLOUR                                              :Цвет глаз:
+STR_FACE_EYECOLOUR_TIP                                          :{BLACK}Изменить цвет глаз
+STR_FACE_GLASSES                                                :Очки:
+STR_FACE_GLASSES_TIP                                            :{BLACK}Добавить очки
+STR_FACE_GLASSES_TIP_2                                          :{BLACK}Изменить очки
+STR_FACE_NOSE                                                   :Нос:
+STR_FACE_NOSE_TIP                                               :{BLACK}Изменить нос
+STR_FACE_LIPS                                                   :Губы
+STR_FACE_MOUSTACHE                                              :Усы
+STR_FACE_LIPS_MOUSTACHE_TIP                                     :{BLACK}Изменить губы или усы
+STR_FACE_CHIN                                                   :Подбородок:
+STR_FACE_CHIN_TIP                                               :{BLACK}Изменить подбородок
+STR_FACE_JACKET                                                 :Жакет:
+STR_FACE_JACKET_TIP                                             :{BLACK}Изменить жакет
+STR_FACE_COLLAR                                                 :Воротник:
+STR_FACE_COLLAR_TIP                                             :{BLACK}Изменить воротник
+STR_FACE_TIE                                                    :Галстук:
+STR_FACE_EARRING                                                :Серьга:
+STR_FACE_TIE_EARRING_TIP                                        :{BLACK}Изменить галстук или серьгу
+########
--- a/src/lang/slovak.txt	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/lang/slovak.txt	Sat Oct 20 10:42:28 2007 +0000
@@ -924,6 +924,7 @@
 
 STR_0314_FUND_NEW_INDUSTRY                                      :{WHITE}Financovat novy priemysel
 STR_JUST_STRING                                                 :{STRING}
+STR_JUST_INT                                                    :{NUM}
 STR_0316_CAN_ONLY_BE_BUILT_IN_TOWNS                             :{WHITE}... moze byt postavene len v meste
 STR_0317_CAN_ONLY_BE_BUILT_IN_RAINFOREST                        :{WHITE}... moze byt postavene len v dazdovom pralese
 STR_0318_CAN_ONLY_BE_BUILT_IN_DESERT                            :{WHITE}... moze byt postavene len v pusti
@@ -1080,8 +1081,8 @@
 STR_CONFIG_PATCHES_TIP                                          :{BLACK}Nastavenia patchov
 STR_CONFIG_PATCHES_CAPTION                                      :{WHITE}Nastavenia patchov
 
-STR_CONFIG_PATCHES_OFF                                          :Vyp.
-STR_CONFIG_PATCHES_ON                                           :Zap.
+STR_CONFIG_PATCHES_OFF                                          :nie
+STR_CONFIG_PATCHES_ON                                           :áno
 STR_CONFIG_PATCHES_VEHICLESPEED                                 :{LTBLUE}Zobrazit rychlost vozidla v stavovej liste: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_BUILDONSLOPES                                :{LTBLUE}Umoznit vystavbu na svahoch a na pobrezi: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_AUTOSLOPE                                    :{LTBLUE}Povolit úpravy terénu pod budovami, kolajami, ... : {ORANGE}{STRING}
@@ -1111,6 +1112,8 @@
 STR_CONFIG_PATCHES_ROADVEH_QUEUE                                :{LTBLUE}Radenie cestnych vozidiel (podla mnozstva tovaru): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_AUTOSCROLL                                   :{LTBLUE}Posúvat pohlad ked je kurzor myši na okraji okna: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_BRIBE                                        :{LTBLUE}Umoznit podplacanie miestnej spravy: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ALLOW_EXCLUSIVE                              :{LTBLUE}Povolit zakúpenie exkluzívnych dopravných práv: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ALLOW_GIVE_MONEY                             :{LTBLUE}Umožnit posielanie penazí ostatným spolocnostiam: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NONUNIFORM_STATIONS                          :{LTBLUE}Roznorode stanice: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NEW_PATHFINDING_ALL                          :{LTBLUE}Novy globalny algoritmus hladania cesty (NPF namiesto NTP): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_FREIGHT_TRAINS                               :{LTBLUE}Váhový násobok pre nákladné vlaky: {ORANGE}{STRING}
@@ -1251,13 +1254,14 @@
 STR_CONFIG_PATCHES_LARGER_TOWNS                                 :{LTBLUE}Pomer miest, ktoré sa budú rozvíjat rýchlejšie: {ORANGE}1 z {STRING}
 STR_CONFIG_PATCHES_LARGER_TOWNS_DISABLED                        :{LTBLUE}Pomer miest, ktoré sa budú rozvíjat rýchlejšie: {ORANGE}Žiadny
 STR_CONFIG_PATCHES_CITY_SIZE_MULTIPLIER                         :{LTBLUE}Násobok pociatocnej velkosti mesta: {ORANGE}{STRING}
+STR_CONFIG_MODIFIED_ROAD_REBUILD                                :{LTBLUE}Odstránit nezmyselné casti pri rekonštrukcii ciest
 
 STR_CONFIG_PATCHES_GUI                                          :{BLACK}Rozhranie
-STR_CONFIG_PATCHES_CONSTRUCTION                                 :{BLACK}Vystavba
+STR_CONFIG_PATCHES_CONSTRUCTION                                 :{BLACK}Výstavba
 STR_CONFIG_PATCHES_VEHICLES                                     :{BLACK}Vozidlá
 STR_CONFIG_PATCHES_STATIONS                                     :{BLACK}Stanice
 STR_CONFIG_PATCHES_ECONOMY                                      :{BLACK}Ekonomika
-STR_CONFIG_PATCHES_AI                                           :{BLACK}Protivnici
+STR_CONFIG_PATCHES_AI                                           :{BLACK}Konkurenti
 
 STR_CONFIG_PATCHES_DISABLED                                     :zakazane
 STR_CONFIG_PATCHES_INT32                                        :{NUM}
@@ -1708,7 +1712,7 @@
 ##id 0x1800
 STR_1801_MUST_REMOVE_ROAD_FIRST                                 :{WHITE}Cesta musi byt najskor odstranena
 STR_ROAD_WORKS_IN_PROGRESS                                      :{WHITE}Prebiehaju cestne prace
-STR_1802_ROAD_CONSTRUCTION                                      :{WHITE}Vystavba cesty
+STR_1802_ROAD_CONSTRUCTION                                      :{WHITE}Výstavba cesty
 STR_1802_TRAMWAY_CONSTRUCTION                                   :{WHITE}Výstavba elektrickovej trate
 STR_1803_SELECT_ROAD_BRIDGE                                     :{WHITE}Vyber cestny most
 STR_ERR_ONEWAY_ROADS_CAN_T_HAVE_JUNCTION                        :{WHITE}... na jednosmerných cestách nie sú dovolené križovatky
@@ -1724,7 +1728,7 @@
 STR_1809_CAN_T_BUILD_TRUCK_STATION                              :{WHITE}Nemozno postavit vykladku ...
 STR_1808_CAN_T_BUILD_PASSENGER_TRAM_STATION                     :{WHITE}Nie je možné postavit elektrickovú osobnú stanicu ...
 STR_1809_CAN_T_BUILD_CARGO_TRAM_STATION                         :{WHITE}Nie je možné postavit elektrickovú nákladnú stanicu ...
-STR_180A_ROAD_CONSTRUCTION                                      :Vystavba cesty
+STR_180A_ROAD_CONSTRUCTION                                      :Výstavba cesty
 STR_180A_TRAMWAY_CONSTRUCTION                                   :Výstavba elektrickovej dráhy
 STR_180B_BUILD_ROAD_SECTION                                     :{BLACK}Postavit cast cesty
 STR_180B_BUILD_TRAMWAY_SECTION                                  :{BLACK}Postavit cast elektrickovej dráhy
@@ -2081,6 +2085,8 @@
 STR_5006_MUST_DEMOLISH_TUNNEL_FIRST                             :{WHITE}Tunel musi byt najskor zburany
 STR_5007_MUST_DEMOLISH_BRIDGE_FIRST                             :{WHITE}Most musi byt najskor zburany
 STR_5008_CANNOT_START_AND_END_ON                                :{WHITE}Nemozno zacat a skoncit na tom istom mieste
+STR_BRIDGEHEADS_NOT_SAME_HEIGHT                                 :{WHITE}Konce mosta nie sú v rovnakej výške
+STR_BRIDGE_TOO_LOW_FOR_TERRAIN                                  :{WHITE}Most je príliš nízky pre tento terén
 STR_500A_START_AND_END_MUST_BE_IN                               :{WHITE}Zaciatok a koniec musi byt v rovine
 STR_500B_SITE_UNSUITABLE_FOR_TUNNEL                             :{WHITE}To miesto je nepouzitelne ako vstup do tunela
 STR_500D                                                        :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY}
@@ -2841,6 +2847,8 @@
 STR_NEW_VEHICLE_TYPE                                            :{BLACK}{BIGFONT}{ENGINE}
 STR_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE                         :{BLACK}Nové {STRING} dostupné!  -  {ENGINE}
 
+STR_CAN_T_SELL_DESTROYED_VEHICLE                                :{WHITE}Nie je možné predat znicené vozidlo ...
+
 STR_CAN_T_TIMETABLE_VEHICLE                                     :{WHITE}Vozidlu nie je možné zadat cestovný poriadok ...
 STR_TIMETABLE_ONLY_WAIT_AT_STATIONS                             :{WHITE}Vozidlá možu cakat len v staniciach.
 STR_TIMETABLE_NOT_STOPPING_HERE                                 :{WHITE}Toto vozidlo nezastavuje v tejto stanici.
@@ -3025,7 +3033,7 @@
 STR_A01A_CAPACITY                                               :{BLACK}Kapacita: {LTBLUE}{CARGO}
 STR_A01B_AIRCRAFT_MUST_BE_STOPPED                               :{WHITE}Lietadlo musi byt zastavene v hangari
 STR_A01C_CAN_T_SELL_AIRCRAFT                                    :{WHITE}Nie je mozne predat lietadlo ...
-STR_A01D_AIRPORT_CONSTRUCTION                                   :Vystavba letiska
+STR_A01D_AIRPORT_CONSTRUCTION                                   :Výstavba letiska
 STR_A01E_BUILD_AIRPORT                                          :{BLACK}Postavit letisko
 STR_A01F_AIRCRAFT_CLICK_ON_AIRCRAFT                             :{BLACK}Lietadlo - kliknut pre informacie
 STR_A020_BUILD_NEW_AIRCRAFT_REQUIRES                            :{BLACK}Vyrobit nove lietadlo (potrebne letisko z hangarom)
@@ -3444,3 +3452,51 @@
 STR_PROSPECT_NEW_INDUSTRY                                       :{BLACK}Vyhladat
 STR_BUILD_NEW_INDUSTRY                                          :{BLACK}Postavit
 STR_INDUSTRY_SELECTION_HINT                                     :{BLACK}Vyberte vhodný typ priemyslu zo zoznamu
+
+############ Face formatting
+STR_FACE_ADVANCED                                               :{BLACK}Rozšírený
+STR_FACE_ADVANCED_TIP                                           :{BLACK}Rozšírený výber tváre.
+STR_FACE_SIMPLE                                                 :{BLACK}Jednoduchý
+STR_FACE_SIMPLE_TIP                                             :{BLACK}Jednoduchý výber tváre.
+STR_FACE_LOAD                                                   :{BLACK}Nahrat
+STR_FACE_LOAD_TIP                                               :{BLACK}Nahrat oblúbenú tvár
+STR_FACE_LOAD_DONE                                              :{WHITE}Vaša oblúbená tvár bola nahratá z kofiguracného súboru.
+STR_FACE_FACECODE                                               :{BLACK}Kód tváre
+STR_FACE_FACECODE_TIP                                           :{BLACK}Zobrazit/nastavit kód tváre
+STR_FACE_FACECODE_CAPTION                                       :{WHITE}Zobrazit/nastavit kód tváre
+STR_FACE_FACECODE_SET                                           :{WHITE}Nový kód tváre bol nastavený.
+STR_FACE_FACECODE_ERR                                           :{WHITE}Nie je možné nastavit kód tváre - povolené je číslo od 0 do 4 294 967 295!
+STR_FACE_SAVE                                                   :{BLACK}Uložit
+STR_FACE_SAVE_TIP                                               :{BLACK}Uložit oblúbenú tvár
+STR_FACE_SAVE_DONE                                              :{WHITE}Táto tvár bude uložená ako oblúbená do konfiguracného súboru.
+STR_FACE_EUROPEAN                                               :{BLACK}Európan
+STR_FACE_SELECT_EUROPEAN                                        :{BLACK}Vybrat európske tváre
+STR_FACE_AFRICAN                                                :{BLACK}African
+STR_FACE_SELECT_AFRICAN                                         :{BLACK}Vybrat africké tváre
+STR_FACE_YES                                                    :áno
+STR_FACE_NO                                                     :nie
+STR_FACE_MOUSTACHE_EARRING_TIP                                  :{BLACK}Povolit fúzy alebo náušnicu
+STR_FACE_HAIR                                                   :Vlasy:
+STR_FACE_HAIR_TIP                                               :{BLACK}Zmenit vlasy
+STR_FACE_EYEBROWS                                               :Obocie:
+STR_FACE_EYEBROWS_TIP                                           :{BLACK}Zmenit obocie
+STR_FACE_EYECOLOUR                                              :Farba ocí:
+STR_FACE_EYECOLOUR_TIP                                          :{BLACK}Zmenit farbu ocí
+STR_FACE_GLASSES                                                :Okuliare:
+STR_FACE_GLASSES_TIP                                            :{BLACK}Povolit okuliare
+STR_FACE_GLASSES_TIP_2                                          :{BLACK}Zmenit okuliare
+STR_FACE_NOSE                                                   :Nos:
+STR_FACE_NOSE_TIP                                               :{BLACK}Zmenit nos
+STR_FACE_LIPS                                                   :Pery:
+STR_FACE_MOUSTACHE                                              :Fúzy:
+STR_FACE_LIPS_MOUSTACHE_TIP                                     :{BLACK}Zmenit pery alebo fúzy
+STR_FACE_CHIN                                                   :Brada:
+STR_FACE_CHIN_TIP                                               :{BLACK}Zmenit bradu
+STR_FACE_JACKET                                                 :Sako
+STR_FACE_JACKET_TIP                                             :{BLACK}Zmenit sako
+STR_FACE_COLLAR                                                 :Golier:
+STR_FACE_COLLAR_TIP                                             :{BLACK}Zmenit golier
+STR_FACE_TIE                                                    :Kravata:
+STR_FACE_EARRING                                                :Náušnica:
+STR_FACE_TIE_EARRING_TIP                                        :{BLACK}Zmenit kravatu alebo náušnicu
+########
--- a/src/lang/slovenian.txt	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/lang/slovenian.txt	Sat Oct 20 10:42:28 2007 +0000
@@ -902,6 +902,7 @@
 
 STR_0314_FUND_NEW_INDUSTRY                                      :{WHITE}Odpri novo industrijo
 STR_JUST_STRING                                                 :{STRING}
+STR_JUST_INT                                                    :{NUM}
 STR_0316_CAN_ONLY_BE_BUILT_IN_TOWNS                             :{WHITE} ... gradnja mogoča samo v mestih
 STR_0317_CAN_ONLY_BE_BUILT_IN_RAINFOREST                        :{WHITE} ... gradnja mogoča samo v območju deževnega gozda
 STR_0318_CAN_ONLY_BE_BUILT_IN_DESERT                            :{WHITE} ... gradnja mogoča samo v puščavi
@@ -1089,6 +1090,8 @@
 STR_CONFIG_PATCHES_ROADVEH_QUEUE                                :{LTBLUE}Cestna vozila v vrsti (s quantum efekti): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_AUTOSCROLL                                   :{LTBLUE}Premakni okno, ko je miška na robu: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_BRIBE                                        :{LTBLUE}Dovoli podkupovanje mestnih oblasti: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ALLOW_EXCLUSIVE                              :{LTBLUE}Dovoli nakup ekskluzivnih prevoznih dovoljenj: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ALLOW_GIVE_MONEY                             :{LTBLUE}Dovoli pošiljanje denarja drugim podjetjem: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NONUNIFORM_STATIONS                          :{LTBLUE}Neenake postaje: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NEW_PATHFINDING_ALL                          :{LTBLUE}Novo skupno iskanje poti (NPF, prevlada NTP): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_FREIGHT_TRAINS                               :{LTBLUE}Koeficient teže tovora za simulacijo težkih vlakov: {ORANGE}{STRING}
@@ -1229,6 +1232,7 @@
 STR_CONFIG_PATCHES_LARGER_TOWNS                                 :{LTBLUE}Razmerje mest, ki bodo rastla z dvakratno hitrostjo: {ORANGE}1 v {STRING}
 STR_CONFIG_PATCHES_LARGER_TOWNS_DISABLED                        :{LTBLUE}Razmerje mest, ki bodo rastla z dvakratno hitrostjo: {ORANGE}Brez
 STR_CONFIG_PATCHES_CITY_SIZE_MULTIPLIER                         :{LTBLUE}Začetni faktor rasti mesta: {ORANGE}{STRING}
+STR_CONFIG_MODIFIED_ROAD_REBUILD                                :{LTBLUE}Odstrani absurdne cestne elemente med gradnjo cest
 
 STR_CONFIG_PATCHES_GUI                                          :{BLACK}Vmesnik
 STR_CONFIG_PATCHES_CONSTRUCTION                                 :{BLACK}Gradnja
@@ -2097,6 +2101,8 @@
 STR_5006_MUST_DEMOLISH_TUNNEL_FIRST                             :{WHITE}Najprej moraš porušiti predor
 STR_5007_MUST_DEMOLISH_BRIDGE_FIRST                             :{WHITE}Najprej moraš porušiti most
 STR_5008_CANNOT_START_AND_END_ON                                :{WHITE}Ni mogoče začeti in končati v isti točki
+STR_BRIDGEHEADS_NOT_SAME_HEIGHT                                 :{WHITE}Priključki mosta niso na enaki višini
+STR_BRIDGE_TOO_LOW_FOR_TERRAIN                                  :{WHITE}Most je prenizek za teren
 STR_500A_START_AND_END_MUST_BE_IN                               :{WHITE}Začetek in konec morata biti na isti višini
 STR_500B_SITE_UNSUITABLE_FOR_TUNNEL                             :{WHITE}Lokacija neprimerna za vhod v predor
 STR_500D                                                        :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY}
@@ -2857,6 +2863,8 @@
 STR_NEW_VEHICLE_TYPE                                            :{BLACK}{BIGFONT}{ENGINE}
 STR_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE                         :{BLACK}Novo! {STRING} sedaj na razpolago!  -  {ENGINE}
 
+STR_CAN_T_SELL_DESTROYED_VEHICLE                                :{WHITE}Ni mogoča prodaja uničenega vozila...
+
 STR_CAN_T_TIMETABLE_VEHICLE                                     :{WHITE}Nemogoče določiti časa vozilu...
 STR_TIMETABLE_ONLY_WAIT_AT_STATIONS                             :{WHITE}Vozila lahko čakajo le na postajah.
 STR_TIMETABLE_NOT_STOPPING_HERE                                 :{WHITE}To vozilo se ne ustavlja na tej postaji.
@@ -3460,3 +3468,51 @@
 STR_PROSPECT_NEW_INDUSTRY                                       :{BLACK}Obetajoča
 STR_BUILD_NEW_INDUSTRY                                          :{BLACK}Zgradi
 STR_INDUSTRY_SELECTION_HINT                                     :{BLACK}Izberi primerno industrijo iz tega seznama
+
+############ Face formatting
+STR_FACE_ADVANCED                                               :{BLACK}Napredno
+STR_FACE_ADVANCED_TIP                                           :{BLACK}Napredna izbira obraza.
+STR_FACE_SIMPLE                                                 :{BLACK}Enostavno
+STR_FACE_SIMPLE_TIP                                             :{BLACK}Enostavna izbira obraza.
+STR_FACE_LOAD                                                   :{BLACK}Naloži
+STR_FACE_LOAD_TIP                                               :{BLACK}Naloži piljubljen obraz
+STR_FACE_LOAD_DONE                                              :{WHITE}Tvoj priljubljen obraz je bil naložen iz OpenTTD konfiguracije.
+STR_FACE_FACECODE                                               :{BLACK}Obraz igralca št.
+STR_FACE_FACECODE_TIP                                           :{BLACK}Prikaži in/ali nastavi številko obraza igralca
+STR_FACE_FACECODE_CAPTION                                       :{WHITE}Prikaži in/ali nastavi številko obraza igralca
+STR_FACE_FACECODE_SET                                           :{WHITE}Nova koda številke obraza je nastavljena.
+STR_FACE_FACECODE_ERR                                           :{WHITE}Nemogoča nastavitev številke obraza igralca - izbor mogoč med 0 in 4,294,967,295!
+STR_FACE_SAVE                                                   :{BLACK}Shrani
+STR_FACE_SAVE_TIP                                               :{BLACK}Shrani priljubljen obraz
+STR_FACE_SAVE_DONE                                              :{WHITE}Ta obraz bo shranjen kot tvoj priljubljen v konfiguracijo OpenTTD.
+STR_FACE_EUROPEAN                                               :{BLACK}Evropski
+STR_FACE_SELECT_EUROPEAN                                        :{BLACK}Izbor evropskih obrazov
+STR_FACE_AFRICAN                                                :{BLACK}Afriški
+STR_FACE_SELECT_AFRICAN                                         :{BLACK}Izbor afriških obrazov
+STR_FACE_YES                                                    :Da
+STR_FACE_NO                                                     :Ne
+STR_FACE_MOUSTACHE_EARRING_TIP                                  :{BLACK}Vklop brk ali uhanov
+STR_FACE_HAIR                                                   :Lasje:
+STR_FACE_HAIR_TIP                                               :{BLACK}Spremeni lase
+STR_FACE_EYEBROWS                                               :Obrvi:
+STR_FACE_EYEBROWS_TIP                                           :{BLACK}Spremeni obrvi
+STR_FACE_EYECOLOUR                                              :Barva oči:
+STR_FACE_EYECOLOUR_TIP                                          :{BLACK}Spremeni barvo oči
+STR_FACE_GLASSES                                                :Očala:
+STR_FACE_GLASSES_TIP                                            :{BLACK}Vklopi očala
+STR_FACE_GLASSES_TIP_2                                          :{BLACK}Spremeni očala
+STR_FACE_NOSE                                                   :Nos:
+STR_FACE_NOSE_TIP                                               :{BLACK}Spremeni nos
+STR_FACE_LIPS                                                   :Ustnice:
+STR_FACE_MOUSTACHE                                              :Brke:
+STR_FACE_LIPS_MOUSTACHE_TIP                                     :{BLACK}Spremeni ustnice ali brke
+STR_FACE_CHIN                                                   :Brada:
+STR_FACE_CHIN_TIP                                               :{BLACK}Spremeni brado
+STR_FACE_JACKET                                                 :Jakna:
+STR_FACE_JACKET_TIP                                             :{BLACK}Spremeni jakno
+STR_FACE_COLLAR                                                 :Ovratnik:
+STR_FACE_COLLAR_TIP                                             :{BLACK}Spremeni ovratnik
+STR_FACE_TIE                                                    :Kravata:
+STR_FACE_EARRING                                                :Uhani:
+STR_FACE_TIE_EARRING_TIP                                        :{BLACK}Spremeni kravato ali uhane
+########
--- a/src/lang/spanish.txt	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/lang/spanish.txt	Sat Oct 20 10:42:28 2007 +0000
@@ -861,6 +861,7 @@
 
 STR_0314_FUND_NEW_INDUSTRY                                      :{WHITE}Fundar nueva industria
 STR_JUST_STRING                                                 :{STRING}
+STR_JUST_INT                                                    :{NUM}
 STR_0316_CAN_ONLY_BE_BUILT_IN_TOWNS                             :{WHITE}...sólo se puede construir en poblaciones
 STR_0317_CAN_ONLY_BE_BUILT_IN_RAINFOREST                        :{WHITE}...sólo se puede construir en áreas de selva
 STR_0318_CAN_ONLY_BE_BUILT_IN_DESERT                            :{WHITE}...sólo se puede construir en áreas desérticas
@@ -1048,6 +1049,8 @@
 STR_CONFIG_PATCHES_ROADVEH_QUEUE                                :{LTBLUE}Cola de vehículos de carretera (con efecto cuantificador): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_AUTOSCROLL                                   :{LTBLUE}Desplazar ventana mediante el cursor en los bordes: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_BRIBE                                        :{LTBLUE}Permitir sobornos a la autoridad local: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ALLOW_EXCLUSIVE                              :{LTBLUE}Permitir comprar derechos de transporte exclusivos: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ALLOW_GIVE_MONEY                             :{LTBLUE}Permitir enviar dinero a otras empresas: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NONUNIFORM_STATIONS                          :{LTBLUE}Estaciones no uniformes: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NEW_PATHFINDING_ALL                          :{LTBLUE}Nuevo sistema de busq. de rutas global (NPF, anula a NTP): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_FREIGHT_TRAINS                               :{LTBLUE}Carga el multiplicador de peso para simular trenes pesados: {ORANGE}{STRING}
@@ -1188,6 +1191,7 @@
 STR_CONFIG_PATCHES_LARGER_TOWNS                                 :{LTBLUE}Proporción de ciudades que crecerán el doble de rápido: {ORANGE}1 de {STRING}
 STR_CONFIG_PATCHES_LARGER_TOWNS_DISABLED                        :{LTBLUE}Proporción de ciudades que crecerán el doble de rápido: {ORANGE}Ninguna
 STR_CONFIG_PATCHES_CITY_SIZE_MULTIPLIER                         :{LTBLUE}Multiplicador inicial tamaño de ciudad: {ORANGE}{STRING}
+STR_CONFIG_MODIFIED_ROAD_REBUILD                                :{LTBLUE}Quitar elementos absurdos de la carretera durante su construcción
 
 STR_CONFIG_PATCHES_GUI                                          :{BLACK}Interfaz
 STR_CONFIG_PATCHES_CONSTRUCTION                                 :{BLACK}Construcción
@@ -2018,6 +2022,8 @@
 STR_5006_MUST_DEMOLISH_TUNNEL_FIRST                             :{WHITE}Primero debe demolerse el túnel
 STR_5007_MUST_DEMOLISH_BRIDGE_FIRST                             :{WHITE}Primero debe demolerse el puente
 STR_5008_CANNOT_START_AND_END_ON                                :{WHITE}No se puede comenzar y acabar en la misma posición
+STR_BRIDGEHEADS_NOT_SAME_HEIGHT                                 :{WHITE}Las cabeceras del puente no están al mismo nivel
+STR_BRIDGE_TOO_LOW_FOR_TERRAIN                                  :{WHITE}El puente es demasiado bajo para el terreno
 STR_500A_START_AND_END_MUST_BE_IN                               :{WHITE}Comienzo y final deben estar en línea
 STR_500B_SITE_UNSUITABLE_FOR_TUNNEL                             :{WHITE}Lugar inapropiado para entrada de túnel
 STR_500D                                                        :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY}
@@ -2778,6 +2784,8 @@
 STR_NEW_VEHICLE_TYPE                                            :{BLACK}{BIGFONT}{ENGINE}
 STR_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE                         :{BLACK}Nuevo {STRING} ahora disponible!  -  {ENGINE}
 
+STR_CAN_T_SELL_DESTROYED_VEHICLE                                :{WHITE}No se puede vender un vehículo destruido...
+
 STR_CAN_T_TIMETABLE_VEHICLE                                     :{WHITE}No se puede ajustar horarios al vehículo...
 STR_TIMETABLE_ONLY_WAIT_AT_STATIONS                             :{WHITE}Los vehículos solo pueden esperar en las estaciones.
 STR_TIMETABLE_NOT_STOPPING_HERE                                 :{WHITE}Este vehículo no está parando en esta estación.
@@ -3381,3 +3389,51 @@
 STR_PROSPECT_NEW_INDUSTRY                                       :{BLACK}Perspectiva
 STR_BUILD_NEW_INDUSTRY                                          :{BLACK}Construir
 STR_INDUSTRY_SELECTION_HINT                                     :{BLACK}Seleccione la industria apropiada de la lista
+
+############ Face formatting
+STR_FACE_ADVANCED                                               :{BLACK}Avanzado
+STR_FACE_ADVANCED_TIP                                           :{BLACK}Selección avanzada de caras.
+STR_FACE_SIMPLE                                                 :{BLACK}Simple
+STR_FACE_SIMPLE_TIP                                             :{BLACK}Selección simple de caras.
+STR_FACE_LOAD                                                   :{BLACK}Cargar
+STR_FACE_LOAD_TIP                                               :{BLACK}Cargar cara favorita
+STR_FACE_LOAD_DONE                                              :{WHITE}Tu cara favorita ha sido cargada del fichero de configuración de OpenTTD.
+STR_FACE_FACECODE                                               :{BLACK}Cara del jugador no.
+STR_FACE_FACECODE_TIP                                           :{BLACK}Ver y/o asignar número de cara del jugador
+STR_FACE_FACECODE_CAPTION                                       :{WHITE}Ver y/o asignar número de cara del jugador
+STR_FACE_FACECODE_SET                                           :{WHITE}Nuevo código de cara ha sido asignado.
+STR_FACE_FACECODE_ERR                                           :{WHITE}No se puede asignar código de cara - debe ser un valor numérico de 0 a 4,294,967,295!
+STR_FACE_SAVE                                                   :{BLACK}Guardar
+STR_FACE_SAVE_TIP                                               :{BLACK}Guardar cara favorita
+STR_FACE_SAVE_DONE                                              :{WHITE}Esta cara ha sido guardada como tu favorita en el fichero de configuración.
+STR_FACE_EUROPEAN                                               :{BLACK}Europea
+STR_FACE_SELECT_EUROPEAN                                        :{BLACK}Selecciona caras europeas
+STR_FACE_AFRICAN                                                :{BLACK}Africana
+STR_FACE_SELECT_AFRICAN                                         :{BLACK}Selecciona caras africanas
+STR_FACE_YES                                                    :Si
+STR_FACE_NO                                                     :No
+STR_FACE_MOUSTACHE_EARRING_TIP                                  :{BLACK}Activar bigotes o pendientes
+STR_FACE_HAIR                                                   :Pelo:
+STR_FACE_HAIR_TIP                                               :{BLACK}Cambiar pelo
+STR_FACE_EYEBROWS                                               :Cejas:
+STR_FACE_EYEBROWS_TIP                                           :{BLACK}Cambiar cejas
+STR_FACE_EYECOLOUR                                              :Color ojos:
+STR_FACE_EYECOLOUR_TIP                                          :{BLACK}Cambiar color de ojos
+STR_FACE_GLASSES                                                :Gafas:
+STR_FACE_GLASSES_TIP                                            :{BLACK}Activar gafas
+STR_FACE_GLASSES_TIP_2                                          :{BLACK}Cambiar gafas
+STR_FACE_NOSE                                                   :Nariz:
+STR_FACE_NOSE_TIP                                               :{BLACK}Cambiar nariz
+STR_FACE_LIPS                                                   :Labios:
+STR_FACE_MOUSTACHE                                              :Bigote:
+STR_FACE_LIPS_MOUSTACHE_TIP                                     :{BLACK}Cambiar labios o bigote
+STR_FACE_CHIN                                                   :Barbilla:
+STR_FACE_CHIN_TIP                                               :{BLACK}Cambiar barbilla
+STR_FACE_JACKET                                                 :Chaqueta:
+STR_FACE_JACKET_TIP                                             :{BLACK}Cambiar chaqueta
+STR_FACE_COLLAR                                                 :Cuello:
+STR_FACE_COLLAR_TIP                                             :{BLACK}Cambiar cuello
+STR_FACE_TIE                                                    :Corbata:
+STR_FACE_EARRING                                                :Pendientes:
+STR_FACE_TIE_EARRING_TIP                                        :{BLACK}Cambiar corbata o pendientes
+########
--- a/src/lang/swedish.txt	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/lang/swedish.txt	Sat Oct 20 10:42:28 2007 +0000
@@ -860,6 +860,7 @@
 
 STR_0314_FUND_NEW_INDUSTRY                                      :{WHITE}Bekosta ny industri
 STR_JUST_STRING                                                 :{STRING}
+STR_JUST_INT                                                    :{NUM}
 STR_0316_CAN_ONLY_BE_BUILT_IN_TOWNS                             :{WHITE}...kan bara byggas i städer
 STR_0317_CAN_ONLY_BE_BUILT_IN_RAINFOREST                        :{WHITE}...kan bara byggas i regnskog
 STR_0318_CAN_ONLY_BE_BUILT_IN_DESERT                            :{WHITE}...kan bara byggas i öken
@@ -1020,6 +1021,7 @@
 STR_CONFIG_PATCHES_ON                                           :På
 STR_CONFIG_PATCHES_VEHICLESPEED                                 :{LTBLUE}Visa fordonshastighet i statusfältet: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_BUILDONSLOPES                                :{LTBLUE}Tillåt byggnation på sluttningar och kuster: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_AUTOSLOPE                                    :{LTBLUE}Tillåt terraformning under byggnader, spår, etc. (autoslope): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_CATCHMENT                                    :{LTBLUE}Tillåt mer realistiska uppsamlingsområden för stationer: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_EXTRADYNAMITE                                :{LTBLUE}Tillåt borttagning av mera stadsägda vägar etc.: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAMMOTHTRAINS                                :{LTBLUE}Tillåt väldigt långa tåg: {ORANGE}{STRING}
@@ -1046,6 +1048,8 @@
 STR_CONFIG_PATCHES_ROADVEH_QUEUE                                :{LTBLUE}Vägfordonsköer (med kvanteffekter): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_AUTOSCROLL                                   :{LTBLUE}Scrolla vyn när musen är vid kanten: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_BRIBE                                        :{LTBLUE}Tillåt mutning av de lokala myndigheterna: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ALLOW_EXCLUSIVE                              :{LTBLUE}Tillåt köp av exklusiva transporträttigheter: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ALLOW_GIVE_MONEY                             :{LTBLUE}Tillåt skicka pengar till andra företag: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NONUNIFORM_STATIONS                          :{LTBLUE}Icke-rektangulära stationer: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NEW_PATHFINDING_ALL                          :{LTBLUE}Ny globalt sätt att hitta rutt (NPF, åsidosätter NTP): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_FREIGHT_TRAINS                               :{LTBLUE}Godsfaktor för att simulera tunga tåg: {ORANGE}{STRING}
@@ -1186,6 +1190,7 @@
 STR_CONFIG_PATCHES_LARGER_TOWNS                                 :{LTBLUE}Andel av städerna som kommer växa dubbelt så fort: {ORANGE}1 av {STRING}
 STR_CONFIG_PATCHES_LARGER_TOWNS_DISABLED                        :{LTBLUE}Andel av städerna som kommer växa dubbelt så fort: {ORANGE}Inga
 STR_CONFIG_PATCHES_CITY_SIZE_MULTIPLIER                         :{LTBLUE}Initial stadsstorleks multiplikator: {ORANGE}{STRING}
+STR_CONFIG_MODIFIED_ROAD_REBUILD                                :{LTBLUE}Ta bort absurda väg-element under vägkonstruktion
 
 STR_CONFIG_PATCHES_GUI                                          :{BLACK}Gränssnitt
 STR_CONFIG_PATCHES_CONSTRUCTION                                 :{BLACK}Konstruktion
@@ -2016,6 +2021,8 @@
 STR_5006_MUST_DEMOLISH_TUNNEL_FIRST                             :{WHITE}Måste riva tunnel först
 STR_5007_MUST_DEMOLISH_BRIDGE_FIRST                             :{WHITE}Måste riva bro först
 STR_5008_CANNOT_START_AND_END_ON                                :{WHITE}Kan inte börja och sluta på samma plats
+STR_BRIDGEHEADS_NOT_SAME_HEIGHT                                 :{WHITE}Broändar ej på samma höjd
+STR_BRIDGE_TOO_LOW_FOR_TERRAIN                                  :{WHITE}Bro är för låg för terrängen
 STR_500A_START_AND_END_MUST_BE_IN                               :{WHITE}Start- och slutpunkt måste ligga i linje
 STR_500B_SITE_UNSUITABLE_FOR_TUNNEL                             :{WHITE}Platsen passar inte för tunnelentré
 STR_500D                                                        :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY}
@@ -2772,10 +2779,12 @@
 STR_TRAIN_NO_POWER                                              :{RED}Ingen Kraft
 STR_TRAIN_START_NO_CATENARY                                     :Detta spår saknar kedjekurva, så tåget kan inte starta
 
-STR_NEW_VEHICLE_NOW_AVAILABLE                                   :{BLACK}{BIGFONT}Nya {STRING} är nu tillgänglig!
+STR_NEW_VEHICLE_NOW_AVAILABLE                                   :{BLACK}{BIGFONT}Ny {STRING} tillgänglig!
 STR_NEW_VEHICLE_TYPE                                            :{BLACK}{BIGFONT}{ENGINE}
 STR_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE                         :{BLACK}Nya {STRING} är nu tillgänglig  -  {ENGINE}
 
+STR_CAN_T_SELL_DESTROYED_VEHICLE                                :{WHITE}Kan inte sälja förstört fordon...
+
 STR_CAN_T_TIMETABLE_VEHICLE                                     :{WHITE}Kan inte lägga till fordonet i en tidtabell...
 STR_TIMETABLE_ONLY_WAIT_AT_STATIONS                             :{WHITE}Fordon kan enbart vänta vid stationer.
 STR_TIMETABLE_NOT_STOPPING_HERE                                 :{WHITE}Detta fordon stannar inte vid denna station.
@@ -2783,10 +2792,10 @@
 STR_TIMETABLE_STATUS_ON_TIME                                    :Detta fordon ligger efter i tidtabellen
 STR_TIMETABLE_STATUS_LATE                                       :Detta fordon är för tillfället {STRING} sen
 STR_TIMETABLE_STATUS_EARLY                                      :Detta fordon är för tillfället {STRING} tidig
-STR_TIMETABLE_TOTAL_TIME                                        :Denna tidtabell kommer ta {STRING} att slutföra
+STR_TIMETABLE_TOTAL_TIME                                        :Den här tidtabellen kommer ta {STRING} att slutföra
 STR_TIMETABLE_TOTAL_TIME_INCOMPLETE                             :Denna tidtabell kommer att ta åtminstonde {STRING} att slutföra (allt är inte inlagt i en tidtabell)
-STR_TIMETABLE_AUTOFILL                                          :{BLACK}Automatisk ifyllning
-STR_TIMETABLE_AUTOFILL_TOOLTIP                                  :{BLACK}Fyll tidtabellen automatiskt med värdet från den första resan
+STR_TIMETABLE_AUTOFILL                                          :{BLACK}Autofyll
+STR_TIMETABLE_AUTOFILL_TOOLTIP                                  :{BLACK}Fyll tidtabellen automatiskt med värdena från första resan
 
 ##id 0x9000
 STR_9000_ROAD_VEHICLE_IN_THE_WAY                                :{WHITE}Vägfordon i vägen
@@ -3304,7 +3313,7 @@
 
 ########
 
-STR_FEEDER_CARGO_VALUE                                          :{BLACK}Överföringingskredit: {LTBLUE}{CURRENCY}
+STR_FEEDER_CARGO_VALUE                                          :{BLACK} Överför kredit: {LTBLUE}{CURRENCY}
 STR_DRIVE_THROUGH_ERROR_ON_TOWN_ROAD                            :{WHITE}...detta är en stadsägd väg
 STR_DRIVE_THROUGH_ERROR_DIRECTION                               :{WHITE}...vägen pekar i fel riktning
 
@@ -3350,15 +3359,15 @@
 STR_GROUP_CAN_T_CREATE                                          :{WHITE}Kan inte skapa grupp...
 STR_GROUP_CAN_T_DELETE                                          :{WHITE}Kan inte ta bort denna grupp...
 STR_GROUP_CAN_T_RENAME                                          :{WHITE}Kan inte döpa om grupp...
-STR_GROUP_CAN_T_REMOVE_ALL_VEHICLES                             :{WHITE}Kan inte ta bort alla fordon från denna grupp...
-STR_GROUP_CAN_T_ADD_VEHICLE                                     :{WHITE}Kan inte lägga till fordonet till denna grupp...
-STR_GROUP_CAN_T_ADD_SHARED_VEHICLE                              :{WHITE}Kan inte lägga till delade fordon till grupp...
+STR_GROUP_CAN_T_REMOVE_ALL_VEHICLES                             :{WHITE}Kan inte ta bort alla fordon i denna grupp...
+STR_GROUP_CAN_T_ADD_VEHICLE                                     :{WHITE}Kan inte lägga till fordon i denna grupp...
+STR_GROUP_CAN_T_ADD_SHARED_VEHICLE                              :{WHITE}Kan inte lägga till delade fordon i denna grupp...
 
-STR_GROUPS_CLICK_ON_GROUP_FOR_TIP                               :{BLACK}Grupper - Klicka på en grupp för att lista alla fordon i denna grupp
+STR_GROUPS_CLICK_ON_GROUP_FOR_TIP                               :{BLACK}Gripper - Klicka på en grupp för att lista alla fordon i gruppen
 STR_GROUP_CREATE_TIP                                            :{BLACK}Klicka för att skapa en grupp
-STR_GROUP_DELETE_TIP                                            :{BLACK}Ta bort den valda gruppen
-STR_GROUP_RENAME_TIP                                            :{BLACK}Döp om den valda gruppen
-STR_GROUP_REPLACE_PROTECTION_TIP                                :{BLACK}Klicka för att skydda denna grupp från globalt autoutbyte
+STR_GROUP_DELETE_TIP                                            :{BLACK}Ta bort vald grupp
+STR_GROUP_RENAME_TIP                                            :{BLACK}Byt namn på vald grupp
+STR_GROUP_REPLACE_PROTECTION_TIP                                :{BLACK}Klicka för att skydda denna grupp mot allmän autoreplace
 
 STR_COMPANY_NAME                                                :{COMPANY}
 STR_ENGINE_NAME                                                 :{ENGINE}
@@ -3379,3 +3388,51 @@
 STR_PROSPECT_NEW_INDUSTRY                                       :{BLACK}Prospektera
 STR_BUILD_NEW_INDUSTRY                                          :{BLACK}Bygga
 STR_INDUSTRY_SELECTION_HINT                                     :{BLACK}Välj lämplig industri från denna lista
+
+############ Face formatting
+STR_FACE_ADVANCED                                               :{BLACK}Avancerad
+STR_FACE_ADVANCED_TIP                                           :{BLACK}Avancerat ansiktsval.
+STR_FACE_SIMPLE                                                 :{BLACK}Enkelt
+STR_FACE_SIMPLE_TIP                                             :{BLACK}Enkelt ansiktsval.
+STR_FACE_LOAD                                                   :{BLACK}Ladda
+STR_FACE_LOAD_TIP                                               :{BLACK}Ladda favoritansikte
+STR_FACE_LOAD_DONE                                              :{WHITE}Ditt favoritansikte har laddats från OpenTTDs konfigurationsfil.
+STR_FACE_FACECODE                                               :{BLACK}Spelaransikte nummer.
+STR_FACE_FACECODE_TIP                                           :{BLACK}Visa och/eller välj ansiktsnummer
+STR_FACE_FACECODE_CAPTION                                       :{WHITE}Visa och/eller välj ansiktsnummer
+STR_FACE_FACECODE_SET                                           :{WHITE}Nytt kod för ansiktsnumret har valts
+STR_FACE_FACECODE_ERR                                           :{WHITE}Kunde inte ange ansiktsnumret. Det måste vara en siffra mellan 0 och 4,294,967,295!
+STR_FACE_SAVE                                                   :{BLACK}Spara
+STR_FACE_SAVE_TIP                                               :{BLACK}Spara favoritansikte
+STR_FACE_SAVE_DONE                                              :{WHITE}Det här ansiktet kommer att sparas som ditt favoritansikte i OpenTTDs konfigurationsfil.
+STR_FACE_EUROPEAN                                               :{BLACK}Europeisk
+STR_FACE_SELECT_EUROPEAN                                        :{BLACK}Välj europeiska ansikten
+STR_FACE_AFRICAN                                                :{BLACK}Afrikanska
+STR_FACE_SELECT_AFRICAN                                         :{BLACK}Välj afrikanska ansikten
+STR_FACE_YES                                                    :Ja
+STR_FACE_NO                                                     :Nej
+STR_FACE_MOUSTACHE_EARRING_TIP                                  :{BLACK}Aktivera mustasch eller örhänge
+STR_FACE_HAIR                                                   :Hår:
+STR_FACE_HAIR_TIP                                               :{BLACK}Ändra hår
+STR_FACE_EYEBROWS                                               :Ögonbryn:
+STR_FACE_EYEBROWS_TIP                                           :{BLACK}Ändra ögonbryn
+STR_FACE_EYECOLOUR                                              :Ögonfärg:
+STR_FACE_EYECOLOUR_TIP                                          :{BLACK}Ändra ögonfärg
+STR_FACE_GLASSES                                                :Glasögon:
+STR_FACE_GLASSES_TIP                                            :{BLACK}Aktivera glasögon
+STR_FACE_GLASSES_TIP_2                                          :{BLACK}Ändra glasögon
+STR_FACE_NOSE                                                   :Näsa:
+STR_FACE_NOSE_TIP                                               :{BLACK}Ändra näsa
+STR_FACE_LIPS                                                   :Läppar:
+STR_FACE_MOUSTACHE                                              :Mustasch:
+STR_FACE_LIPS_MOUSTACHE_TIP                                     :{BLACK}Ändra läppar eller mustasch
+STR_FACE_CHIN                                                   :Haka:
+STR_FACE_CHIN_TIP                                               :{BLACK}Ändra haka
+STR_FACE_JACKET                                                 :Jacka:
+STR_FACE_JACKET_TIP                                             :{BLACK}Ändra jacka
+STR_FACE_COLLAR                                                 :Krage:
+STR_FACE_COLLAR_TIP                                             :{BLACK}Ändra krage
+STR_FACE_TIE                                                    :Slips:
+STR_FACE_EARRING                                                :Örhänge:
+STR_FACE_TIE_EARRING_TIP                                        :{BLACK}Ändra slips eller örhänge
+########
--- a/src/lang/turkish.txt	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/lang/turkish.txt	Sat Oct 20 10:42:28 2007 +0000
@@ -1046,6 +1046,8 @@
 STR_CONFIG_PATCHES_ROADVEH_QUEUE                                :{LTBLUE}Karayolu taşıtları kuyruğa girsin (içiçe geçerek): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_AUTOSCROLL                                   :{LTBLUE}Fare kenardayken pencere etkin: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_BRIBE                                        :{LTBLUE}Belediye rüşveti izinli: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ALLOW_EXCLUSIVE                              :{LTBLUE}Şehrin ulaşım haklarını satın alma izinli: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ALLOW_GIVE_MONEY                             :{LTBLUE}Diğer şirketlere para gönderme izinli: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NONUNIFORM_STATIONS                          :{LTBLUE}Özel istasyonlar: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NEW_PATHFINDING_ALL                          :{LTBLUE}Yeni evrensel yol bulma (NPF, NTP üzerinde): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_FREIGHT_TRAINS                               :{LTBLUE}Ağır yük trenleri için ağırlık çarpanı: {ORANGE}{STRING}
@@ -1111,6 +1113,7 @@
 
 STR_CONFIG_PATCHES_PAUSE_ON_NEW_GAME                            :{LTBLUE}Yeni bir oyun başlatırken zamanı duraklat: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_ADVANCED_VEHICLE_LISTS                       :{LTBLUE}Gelişmiş araç listesini kullan: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ADVANCED_VEHICLE_LISTS_OFF                   :Kapalı
 STR_CONFIG_PATCHES_ADVANCED_VEHICLE_LISTS_OWN                   :Kendi şirketim
 STR_CONFIG_PATCHES_ADVANCED_VEHICLE_LISTS_ALL                   :Tüm şirketler
 STR_CONFIG_PATCHES_LOADING_INDICATORS                           :{LTBLUE}Araç yükleme bilgisini göster: {ORANGE}{STRING}
@@ -1118,6 +1121,8 @@
 STR_CONFIG_PATCHES_LOADING_INDICATORS_OWN                       :Kendi şirketim
 STR_CONFIG_PATCHES_LOADING_INDICATORS_ALL                       :Tüm şirketler
 STR_CONFIG_PATCHES_TIMETABLE_ALLOW                              :{LTBLUE}Araç zaman çizelgesi açık: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_TIMETABLE_IN_TICKS                           :{LTBLUE}Zaman tablosunda gün yerine işlemci zamanı kullan: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE                            :{LTBLUE}Öntanımlı ray türü (yeni oyundan/oyun yüklemeden sonra): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_RAIL                       :Normal Ray
 STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_ELRAIL                     :Elektrikli Ray
 STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MONORAIL                   :Monoray
@@ -1183,6 +1188,7 @@
 STR_CONFIG_PATCHES_LARGER_TOWNS                                 :{LTBLUE}Kasabaların şehir olması için gerekli nüfus: {ORANGE}1 in {STRING}
 STR_CONFIG_PATCHES_LARGER_TOWNS_DISABLED                        :{LTBLUE}Şehir olacak kasabaların oranı: {ORANGE}Hiçbiri
 STR_CONFIG_PATCHES_CITY_SIZE_MULTIPLIER                         :{LTBLUE}Birincil şehir büyüklüğü çarpanı: {ORANGE}{STRING}
+STR_CONFIG_MODIFIED_ROAD_REBUILD                                :{LTBLUE}Yol yapımı sırasında gerçekçi olmayan yerleri kaldır
 
 STR_CONFIG_PATCHES_GUI                                          :{BLACK}Arayüz
 STR_CONFIG_PATCHES_CONSTRUCTION                                 :{BLACK}İnşaat
@@ -1415,6 +1421,7 @@
 STR_NETWORK_LANG_CZECH                                          :Çekce
 STR_NETWORK_LANG_DANISH                                         :Danimarkaca
 STR_NETWORK_LANG_DUTCH                                          :Hollandaca
+STR_NETWORK_LANG_ESPERANTO                                      :Esperanto
 STR_NETWORK_LANG_FINNISH                                        :Fince
 STR_NETWORK_LANG_HUNGARIAN                                      :Bulgarca
 STR_NETWORK_LANG_ICELANDIC                                      :İzlandaca
@@ -2012,6 +2019,7 @@
 STR_5006_MUST_DEMOLISH_TUNNEL_FIRST                             :{WHITE}Önce tünel yıkılmalı
 STR_5007_MUST_DEMOLISH_BRIDGE_FIRST                             :{WHITE}Önce köprü yıkılmalı
 STR_5008_CANNOT_START_AND_END_ON                                :{WHITE}Aynı noktada başlayıp bitemez
+STR_BRIDGE_TOO_LOW_FOR_TERRAIN                                  :{WHITE}Köprü bu arazi için çok alçakta
 STR_500A_START_AND_END_MUST_BE_IN                               :{WHITE}Başlangıç ve bitiş aynı çizgi üzerinde olmalı
 STR_500B_SITE_UNSUITABLE_FOR_TUNNEL                             :{WHITE}Yer tünel girişi için uygun değil
 STR_500D                                                        :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY}
@@ -2735,6 +2743,8 @@
 STR_8857_MAKE_THE_HIGHLIGHTED_ORDER                             :{BLACK}Seçili talimatı yaparken tren dolana kadar beklesin
 STR_8858_MAKE_THE_HIGHLIGHTED_ORDER                             :{BLACK}Seçili talimatı yaparken tren mutlaka yükünü boşaltsın
 STR_TIMETABLE_TOOLTIP                                           :{BLACK}Zaman çizelgesi - işaretlemek için bir talimata tıklayın.
+STR_TIMETABLE_WAIT_TIME_TOOLTIP                                 :{BLACK}Seçili talimatın harcaması gereken süreyi değiştir
+STR_TIMETABLE_CLEAR_TIME_TOOLTIP                                :{BLACK}Seçili talimatın harcaması gereken süreyi sil
 STR_TIMETABLE_RESET_LATENESS_TOOLTIP                            :{BLACK}Geç kalma sayacını sıfırla, böylece araç zamanında gitmiş sayılacak
 STR_SERVICE_HINT                                                :{BLACK}Bakım gerekmiyorsa bunu atla
 STR_VEHICLE_INFO_COST_WEIGHT_SPEED_POWER                        :{BLACK}Fiyat: {CURRENCY} Ağırlık: {WEIGHT_S}{}Hız: {VELOCITY}  Güç: {POWER}{}Bakım: {CURRENCY}/sene{}Kapasite: {CARGO}
@@ -2770,6 +2780,8 @@
 STR_NEW_VEHICLE_TYPE                                            :{BLACK}{BIGFONT}{ENGINE}
 STR_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE                         :{BLACK}{STRING} artık kullanılabilir!  -  {ENGINE}
 
+STR_CAN_T_SELL_DESTROYED_VEHICLE                                :{WHITE}Hurda araçlar satılamaz...
+
 STR_CAN_T_TIMETABLE_VEHICLE                                     :{WHITE}Aracın zaman çizelgesi oluşturulamıyor...
 STR_TIMETABLE_ONLY_WAIT_AT_STATIONS                             :{WHITE}Araçlar sadece istasyonlarda bekleyebilir.
 STR_TIMETABLE_NOT_STOPPING_HERE                                 :{WHITE}Araç bu istasyonda durmuyor.
--- a/src/lang/ukrainian.txt	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/lang/ukrainian.txt	Sat Oct 20 10:42:28 2007 +0000
@@ -986,6 +986,7 @@
 
 STR_0314_FUND_NEW_INDUSTRY                                      :{WHITE}Нова промисловість
 STR_JUST_STRING                                                 :{STRING}
+STR_JUST_INT                                                    :{NUM}
 STR_0316_CAN_ONLY_BE_BUILT_IN_TOWNS                             :{WHITE}...можна будувати лише у містах
 STR_0317_CAN_ONLY_BE_BUILT_IN_RAINFOREST                        :{WHITE}...можна будувати лише у джунглях
 STR_0318_CAN_ONLY_BE_BUILT_IN_DESERT                            :{WHITE}...можна будувати лише у пустелі
@@ -1173,6 +1174,8 @@
 STR_CONFIG_PATCHES_ROADVEH_QUEUE                                :{LTBLUE}Ставати транспорту в чергу: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_AUTOSCROLL                                   :{LTBLUE}Прокручувати вікно, коли курсор з краю: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_BRIBE                                        :{LTBLUE}Дозволити підкупляти місцеву владу: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ALLOW_EXCLUSIVE                              :{LTBLUE}Дозволити купувати ексклюзивні права на перевезення: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ALLOW_GIVE_MONEY                             :{LTBLUE}Дозволити передавати гроші іншим компаніям: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NONUNIFORM_STATIONS                          :{LTBLUE}Неоднорідні станції: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NEW_PATHFINDING_ALL                          :{LTBLUE}Новий глобальний пошук шляху(NPF, замість NTP): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_FREIGHT_TRAINS                               :{LTBLUE}Множник ваги для імітації важких потягів: {ORANGE}{STRING}
@@ -1311,6 +1314,7 @@
 STR_CONFIG_PATCHES_LARGER_TOWNS                                 :{LTBLUE}Кількість міст, які будуть рости вдвічі швидше: {ORANGE}1 з {STRING}
 STR_CONFIG_PATCHES_LARGER_TOWNS_DISABLED                        :{LTBLUE}Кількість міст, які будуть рости вдвічі швидше: {ORANGE}нема
 STR_CONFIG_PATCHES_CITY_SIZE_MULTIPLIER                         :{LTBLUE}Початковий коефіцієнт розміру міст: {ORANGE}{STRING}
+STR_CONFIG_MODIFIED_ROAD_REBUILD                                :{LTBLUE}Прибрати безглузді елементи доріг під час будівництва доріг
 
 STR_CONFIG_PATCHES_GUI                                          :{BLACK}Вигляд
 STR_CONFIG_PATCHES_CONSTRUCTION                                 :{BLACK}Споруди
@@ -2178,6 +2182,8 @@
 STR_5006_MUST_DEMOLISH_TUNNEL_FIRST                             :{WHITE}Спочатку зруйнуйте тунель
 STR_5007_MUST_DEMOLISH_BRIDGE_FIRST                             :{WHITE}Спочатку зруйнуйте міст
 STR_5008_CANNOT_START_AND_END_ON                                :{WHITE}Початок та кінець не можуть бути в одному місці
+STR_BRIDGEHEADS_NOT_SAME_HEIGHT                                 :{WHITE}Кінці мостів на різних рівнях
+STR_BRIDGE_TOO_LOW_FOR_TERRAIN                                  :{WHITE}Міст дуже низький для цього місця
 STR_500A_START_AND_END_MUST_BE_IN                               :{WHITE}Початок та кінець мають бути на одній лінії
 STR_500B_SITE_UNSUITABLE_FOR_TUNNEL                             :{WHITE}Невідповідне місце для початку тунеля
 STR_500D                                                        :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY}
@@ -2541,7 +2547,7 @@
 STR_8021_GRAIN_HOPPER                                           :Вагон для зерна
 STR_8022_WOOD_TRUCK                                             :Вагон для деревини
 STR_8023_IRON_ORE_HOPPER                                        :Вагон для залізної руди
-STR_8024_STEEL_TRUCK                                            :Вагон лля сталі
+STR_8024_STEEL_TRUCK                                            :Платформа для сталі
 STR_8025_ARMORED_VAN                                            :Броньований вагон
 STR_8026_FOOD_VAN                                               :Вагон для продуктів
 STR_8027_PAPER_TRUCK                                            :Вагон для паперу
@@ -2866,16 +2872,16 @@
 STR_8837_CAN_T_MOVE_VEHICLE                                     :{WHITE}Неможливо перемістити транспорт...
 STR_REAR_ENGINE_FOLLOW_FRONT_ERROR                              :{WHITE}задній потяг зажди слідує  follow its front counterpart!!!
 STR_8838_N_A                                                    :немає{SKIP}
-STR_8839_CAN_T_SELL_RAILROAD_VEHICLE                            :{WHITE}Неможливо продати поїзд...
+STR_8839_CAN_T_SELL_RAILROAD_VEHICLE                            :{WHITE}Не можна продати поїзд...
 STR_883A_UNABLE_TO_FIND_ROUTE_TO                                :{WHITE}Неможливо знайти маршрут до місцевого депо
-STR_883B_CAN_T_STOP_START_TRAIN                                 :{WHITE}Неможливо зупинити поїзд...
+STR_883B_CAN_T_STOP_START_TRAIN                                 :{WHITE}Не можна зупинити/стартувати поїзд...
 STR_883C_SERVICING_INTERVAL_DAYS                                :{BLACK}Інтервал техогляду: {LTBLUE}{COMMA} днів{BLACK}   Останній техогляд: {LTBLUE}{DATE_LONG}
 STR_SERVICING_INTERVAL_PERCENT                                  :{BLACK}Інтервал техогляду: {LTBLUE}{COMMA}%{BLACK}   Останній техогляд: {LTBLUE}{DATE_LONG}
-STR_883D_TRAINS_CLICK_ON_TRAIN_FOR                              :{BLACK} Поїзди - клікніть на поїзді для детальної інформаціїї
+STR_883D_TRAINS_CLICK_ON_TRAIN_FOR                              :{BLACK}Поїзди - клікніть на поїзді для детальної інформаціїї
 STR_883E_BUILD_NEW_TRAINS_REQUIRES                              :{BLACK}Будувати поїзд (потрібне залізничне депо)
 STR_883F_TRAINS_CLICK_ON_TRAIN_FOR                              :{BLACK}Поїзди - клікніть на поїзді для інформації, перетягніть для додавання/вилучення
-STR_8840_BUILD_NEW_TRAIN_VEHICLE                                :{BLACK}Будувати новий потяг
-STR_8841_DRAG_TRAIN_VEHICLE_TO_HERE                             :{BLACK}Перетягніть потяг сюди, щоб продати його
+STR_8840_BUILD_NEW_TRAIN_VEHICLE                                :{BLACK}Будувати новий поїзд
+STR_8841_DRAG_TRAIN_VEHICLE_TO_HERE                             :{BLACK}Перетягніть поїзд сюди, щоб продати його
 STR_8842_CENTER_MAIN_VIEW_ON_TRAIN                              :{BLACK}Показати депо в центрі головного екрану
 STR_8843_TRAIN_VEHICLE_SELECTION                                :{BLACK}Список поїздів - клікніть на поїзді для інформації
 STR_8844_BUILD_THE_HIGHLIGHTED_TRAIN                            :{BLACK}Будувати вибраний поїзд
@@ -2938,6 +2944,8 @@
 STR_NEW_VEHICLE_TYPE                                            :{BLACK}{BIGFONT}{ENGINE}
 STR_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE                         :{BLACK}Став доступним новий {STRING}!  -  {ENGINE}
 
+STR_CAN_T_SELL_DESTROYED_VEHICLE                                :{WHITE}Не можна продати знищений транспорт...
+
 STR_CAN_T_TIMETABLE_VEHICLE                                     :{WHITE}Не можна встановити розклад для транспорту...
 STR_TIMETABLE_ONLY_WAIT_AT_STATIONS                             :{WHITE}Транспорт може чекати тільки на станціях.
 STR_TIMETABLE_NOT_STOPPING_HERE                                 :{WHITE}Цей транспорт не зупиняється на цій станції.
@@ -2985,9 +2993,9 @@
 STR_9020_FORCE_VEHICLE_TO_TURN_AROUND                           :{BLACK}Розвернути авто
 STR_9021_SHOW_ROAD_VEHICLE_DETAILS                              :{BLACK}Показати авто детально
 STR_9022_VEHICLES_CLICK_ON_VEHICLE                              :{BLACK}Авто - натисніть на авто для інформації
-STR_9023_BUILD_NEW_ROAD_VEHICLE                                 :{BLACK}Будувати нове авто
-STR_9024_DRAG_ROAD_VEHICLE_TO_HERE                              :{BLACK}Перетягніть авто сюди, щоб продати
-STR_9025_CENTER_MAIN_VIEW_ON_ROAD                               :{BLACK}Показати авто депо в центрі екрану
+STR_9023_BUILD_NEW_ROAD_VEHICLE                                 :{BLACK}Будувати новий автомобіль
+STR_9024_DRAG_ROAD_VEHICLE_TO_HERE                              :{BLACK}Перетягніть автомобіль сюди, щоб продати
+STR_9025_CENTER_MAIN_VIEW_ON_ROAD                               :{BLACK}Показати автомобільне депо в центрі екрану
 STR_9026_ROAD_VEHICLE_SELECTION                                 :{BLACK}Список авто - натисніть на авто для інформації
 STR_9027_BUILD_THE_HIGHLIGHTED_ROAD                             :{BLACK}Будувати вибране авто
 STR_902A_COST_SPEED_RUNNING_COST                                :{BLACK}Ціна: {CURRENCY}{}Швидкість: {VELOCITY}{}Транспортні витрати: {CURRENCY}/рік{}Місткість: {CARGO}
@@ -3027,9 +3035,9 @@
 STR_9805_SHIPS                                                  :{WHITE}{COMPANY} - {COMMA} кораб{P ель лі лів}
 STR_9808_NEW_SHIPS                                              :{WHITE}Нові кораблі
 STR_9809_BUILD_SHIP                                             :{BLACK}Будувати корабель
-STR_CLONE_SHIP                                                  :{BLACK}Клонувати корабель
+STR_CLONE_SHIP                                                  :{BLACK}Клонувати
 STR_CLONE_SHIP_INFO                                             :{BLACK}Будувати копію корабля. Утримуйте CTRL для спільного завдання
-STR_CLONE_SHIP_DEPOT_INFO                                       :{BLACK}Будувати копію корабля. Натисніть на цю кнопку і потім на корабель в депо або ззовні. Утримуйте CTRL для спільного завдання
+STR_CLONE_SHIP_DEPOT_INFO                                       :{BLACK}Будувати копію корабля. Натисніть на цю кнопку, і потім на корабель в депо або ззовні. Утримуйте CTRL для спільного завдання
 STR_980B_SHIP_MUST_BE_STOPPED_IN                                :{WHITE}Корабль має бути в депо
 STR_980C_CAN_T_SELL_SHIP                                        :{WHITE}Неможливо продати корабель...
 STR_980D_CAN_T_BUILD_SHIP                                       :{WHITE}Неможливо будувати корабель...
@@ -3294,10 +3302,10 @@
 STR_DEPOT_SELL_ALL_BUTTON_SHIP_TIP                              :{BLACK}Продати всі кораблі з депо
 STR_DEPOT_SELL_ALL_BUTTON_AIRCRAFT_TIP                          :{BLACK}Продати всі літаки з ангару
 
-STR_DEPOT_VEHICLE_ORDER_LIST_TRAIN_TIP                          :{BLACK}Отримати список всих поїздів, що заходять до ангарів
-STR_DEPOT_VEHICLE_ORDER_LIST_ROADVEH_TIP                        :{BLACK}Отримати список всих авто, що заходять до ангарів
-STR_DEPOT_VEHICLE_ORDER_LIST_SHIP_TIP                           :{BLACK}Отримати список всих кораблів, що заходять до ангарів
-STR_DEPOT_VEHICLE_ORDER_LIST_AIRCRAFT_TIP                       :{BLACK}Отримати список всих літаків, що заходять до ангарів
+STR_DEPOT_VEHICLE_ORDER_LIST_TRAIN_TIP                          :{BLACK}Отримати список усіх поїздів, що заходять до цього депо
+STR_DEPOT_VEHICLE_ORDER_LIST_ROADVEH_TIP                        :{BLACK}Отримати список усіх автомобілів, що заходять до цього депо
+STR_DEPOT_VEHICLE_ORDER_LIST_SHIP_TIP                           :{BLACK}Отримати список усіх кораблів, що заходять до цього депо
+STR_DEPOT_VEHICLE_ORDER_LIST_AIRCRAFT_TIP                       :{BLACK}Отримати список усіх літаків, що заходять до ангарів у цьому аеропорті
 
 STR_DEPOT_AUTOREPLACE_TRAIN_TIP                                 :{BLACK}Оновити всі поїзди в депо
 STR_DEPOT_AUTOREPLACE_ROADVEH_TIP                               :{BLACK}Оновити всі автомобілі в депо
@@ -3336,15 +3344,15 @@
 STR_MASS_STOP_DEPOT_TRAIN_TIP                                   :{BLACK}Натисніть для зупинки всіх поїздів, що в депо
 STR_MASS_STOP_DEPOT_ROADVEH_TIP                                 :{BLACK}Натисніть для зупинки всіх авто, що в депо
 STR_MASS_STOP_DEPOT_SHIP_TIP                                    :{BLACK}Натисніть для зупинки всіх кораблів, що в депо
-STR_MASS_STOP_HANGAR_TIP                                        :{BLACK}Натисніть для зупинки всіх літаків, що в депо
+STR_MASS_STOP_HANGAR_TIP                                        :{BLACK}Натисніть для зупинки всіх літаків, що в ангарі
 
 STR_MASS_START_DEPOT_TRAIN_TIP                                  :{BLACK}Натисніть для виїзду поїздів з депо
-STR_MASS_START_DEPOT_ROADVEH_TIP                                :{BLACK}Натисніть для виїзду всіх авто з депо
+STR_MASS_START_DEPOT_ROADVEH_TIP                                :{BLACK}Натисніть для виїзду всіх автомобілів з депо
 STR_MASS_START_DEPOT_SHIP_TIP                                   :{BLACK}Натисніть для виїзду всіх кораблів з депо
-STR_MASS_START_HANGAR_TIP                                       :{BLACK}Натисніть для вильоту всіх літаків з депо
+STR_MASS_START_HANGAR_TIP                                       :{BLACK}Натисніть для вильоту всіх літаків з ангару
 
-STR_MASS_STOP_LIST_TIP                                          :{BLACK}Натисніть для зупинки всіх авто зі списку
-STR_MASS_START_LIST_TIP                                         :{BLACK}Натисніть для виїзду всіх авто зі списку
+STR_MASS_STOP_LIST_TIP                                          :{BLACK}Натисніть для зупинки всіх авто, що у списку
+STR_MASS_START_LIST_TIP                                         :{BLACK}Натисніть для виїзду всього транспорту, що у списку
 
 STR_SHORT_DATE                                                  :{WHITE}{DATE_TINY}
 STR_SIGN_LIST_CAPTION                                           :{WHITE}Список позначень - {COMMA} Позначен{P ня ня ь}
@@ -3491,12 +3499,12 @@
 STR_GROUP_NAME_FORMAT                                           :Група {COMMA}
 STR_GROUP_TINY_NAME                                             :{TINYFONT}{GROUP}
 STR_GROUP_ALL_TRAINS                                            :Усі поїзди
-STR_GROUP_ALL_ROADS                                             :Усі авто
+STR_GROUP_ALL_ROADS                                             :Усі автомобілі
 STR_GROUP_ALL_SHIPS                                             :Усі кораблі
 STR_GROUP_ALL_AIRCRAFTS                                         :Усі літаки
 STR_GROUP_DEFAULT_TRAINS                                        :Незгруповані поїзди
 STR_GROUP_DEFAULT_ROADS                                         :Незгруповані автомобілі
-STR_GROUP_DEFAULT_SHIPS                                         :Незгруповані човни
+STR_GROUP_DEFAULT_SHIPS                                         :Незгруповані кораблі
 STR_GROUP_DEFAULT_AIRCRAFTS                                     :Незгруповані літаки
 STR_GROUP_TINY_NUM                                              :{TINYFONT}{COMMA}
 STR_GROUP_ADD_SHARED_VEHICLE                                    :Добавити спільний транспорт
@@ -3541,3 +3549,14 @@
 STR_PROSPECT_NEW_INDUSTRY                                       :{BLACK}Огляд
 STR_BUILD_NEW_INDUSTRY                                          :{BLACK}Будувати
 STR_INDUSTRY_SELECTION_HINT                                     :{BLACK}Виберіть необхідне виробництво
+
+############ Face formatting
+STR_FACE_ADVANCED                                               :{BLACK}Детальний
+STR_FACE_ADVANCED_TIP                                           :{BLACK}Детальний вибір обличчя
+STR_FACE_SIMPLE                                                 :{BLACK}Простий
+STR_FACE_SIMPLE_TIP                                             :{BLACK}Простий вибір обличчя
+STR_FACE_LOAD                                                   :{BLACK}Завантажити
+STR_FACE_LOAD_TIP                                               :{BLACK}Завантажити обране обличчя
+STR_FACE_LOAD_DONE                                              :{WHITE}Обране обличчя було завантажене з файлу конфігурації OpenTTD.
+STR_FACE_FACECODE                                               :{BLACK}Обличчя №
+########
--- a/src/lang/unfinished/afrikaans.txt	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/lang/unfinished/afrikaans.txt	Sat Oct 20 10:42:28 2007 +0000
@@ -7,26 +7,26 @@
 
 ##id 0x0000
 STR_NULL                                                        :
-STR_0001_OFF_EDGE_OF_MAP                                        :{WHITE}Oor kant van kaart
-STR_0002_TOO_CLOSE_TO_EDGE_OF_MAP                               :{WHITE}Te naby aan kant van kaart
+STR_0001_OFF_EDGE_OF_MAP                                        :{WHITE}Af rand van werfkaart
+STR_0002_TOO_CLOSE_TO_EDGE_OF_MAP                               :{WHITE}Te naby aan rand van werfkaart
 STR_0003_NOT_ENOUGH_CASH_REQUIRES                               :{WHITE}Nie genoeg kontant nie - vereis {CURRENCY}
 STR_0004                                                        :{WHITE}{CURRENCY}
 STR_EMPTY                                                       :
-STR_0007_FLAT_LAND_REQUIRED                                     :{WHITE}Vereis platte land
-STR_0008_WAITING                                                :{BLACK}Wagtend: {WHITE}{STRING}
+STR_0007_FLAT_LAND_REQUIRED                                     :{WHITE}Plat daal vereis
+STR_0008_WAITING                                                :{BLACK}Wag: {WHITE}{STRING}
 STR_0009                                                        :{WHITE}{CARGO}
-STR_000A_EN_ROUTE_FROM                                          :{WHITE}{CARGO}{YELLOW}  (op pad van
+STR_000A_EN_ROUTE_FROM                                          :{WHITE}{CARGO}{YELLOW}  (en-roete van
 STR_000B                                                        :{YELLOW}{STATION})
 STR_000C_ACCEPTS                                                :{BLACK}Aanvaar: {WHITE}
 STR_000D_ACCEPTS                                                :{BLACK}Aanvaar: {GOLD}
 STR_000E                                                        :
 STR_000F_PASSENGERS                                             :Passasiers
-STR_0010_COAL                                                   :Steenkool
+STR_0010_COAL                                                   :Kool
 STR_0011_MAIL                                                   :Pos
 STR_0012_OIL                                                    :Olie
 STR_0013_LIVESTOCK                                              :Lewende Hawe
 STR_0014_GOODS                                                  :Goedere
-STR_0015_GRAIN                                                  :Graan
+STR_0015_GRAIN                                                  :Korrel
 STR_0016_WOOD                                                   :Hout
 STR_0017_IRON_ORE                                               :Yster Erts
 STR_0018_STEEL                                                  :Staal
@@ -53,12 +53,12 @@
 STR_002D_FIZZY_DRINKS                                           :Koeldranke
 STR_002E                                                        :
 STR_002F_PASSENGER                                              :Passasier
-STR_0030_COAL                                                   :Steenkool
+STR_0030_COAL                                                   :Kool
 STR_0031_MAIL                                                   :Pos
 STR_0032_OIL                                                    :Olie
 STR_0033_LIVESTOCK                                              :Lewende Hawe
 STR_0034_GOODS                                                  :Goedere
-STR_0035_GRAIN                                                  :Graan
+STR_0035_GRAIN                                                  :Korrel
 STR_0036_WOOD                                                   :Hout
 STR_0037_IRON_ORE                                               :Yster Erts
 STR_0038_STEEL                                                  :Staal
@@ -151,8 +151,8 @@
 STR_ABBREV_ALL                                                  :{TINYFONT}ALLE
 STR_00AE                                                        :{WHITE}{DATE_SHORT}
 STR_00AF                                                        :{WHITE}{DATE_LONG}
-STR_00B0_MAP                                                    :{WHITE}Kaart - {STRING}
-STR_00B1_GAME_OPTIONS                                           :{WHITE}Spel Opsies
+STR_00B0_MAP                                                    :{WHITE}Werfkaart - {STRING}
+STR_00B1_GAME_OPTIONS                                           :{WHITE}Speletjie Opsies
 STR_00B2_MESSAGE                                                :{YELLOW}Boodskap
 STR_00B3_MESSAGE_FROM                                           :{YELLOW}Boodskap van {STRING}
 STR_POPUP_CAUTION_CAPTION                                       :{WHITE}Waarskuwing!
@@ -165,10 +165,10 @@
 
 STR_00C5                                                        :{BLACK}{CROSS}
 STR_00C6                                                        :{SILVER}{CROSS}
-STR_00C7_QUIT                                                   :{WHITE}Verlaat
+STR_00C7_QUIT                                                   :{WHITE}Laat vaar
 STR_00C8_YES                                                    :{BLACK}Ja
 STR_00C9_NO                                                     :{BLACK}Nee
-STR_00CA_ARE_YOU_SURE_YOU_WANT_TO                               :{YELLOW}Is jy seker jy wil die spel verlaat en terug gaan na {STRING}?
+STR_00CA_ARE_YOU_SURE_YOU_WANT_TO                               :{YELLOW}Is jy seker u wil hierdie speletjie verlaat en keer terug na {STRING}?
 STR_00CB_1                                                      :{BLACK}1
 STR_00CC_2                                                      :{BLACK}2
 STR_00CD_3                                                      :{BLACK}3
@@ -191,20 +191,20 @@
 STR_00DE_BROWN                                                  :Bruin
 STR_00DF_GREY                                                   :Grys
 STR_00E0_WHITE                                                  :Wit
-STR_00E1_TOO_MANY_VEHICLES_IN_GAME                              :{WHITE}Te veel voertuie in spel
+STR_00E1_TOO_MANY_VEHICLES_IN_GAME                              :{WHITE}Te veel voertuie in speletjie
 STR_00E2                                                        :{BLACK}{COMMA}
 STR_00E3                                                        :{RED}{COMMA}
-STR_00E4_LOCATION                                               :{BLACK}Plek
-STR_00E5_CONTOURS                                               :Hoogtelyne
+STR_00E4_LOCATION                                               :{BLACK}Lokasie
+STR_00E5_CONTOURS                                               :Kantoere
 STR_00E6_VEHICLES                                               :Voertuie
-STR_00E7_INDUSTRIES                                             :Nywerheide
+STR_00E7_INDUSTRIES                                             :Nywerhede
 STR_00E8_ROUTES                                                 :Roete
 STR_00E9_VEGETATION                                             :Plantegroei
 STR_00EA_OWNERS                                                 :Eienaars
 STR_00EB_ROADS                                                  :{BLACK}{TINYFONT}Paaie
 STR_00EC_RAILROADS                                              :{BLACK}{TINYFONT}Spoorwege
 STR_00ED_STATIONS_AIRPORTS_DOCKS                                :{BLACK}{TINYFONT}Stasies/Lughawes/Werfe
-STR_00EE_BUILDINGS_INDUSTRIES                                   :{BLACK}{TINYFONT}Geboue/Nywerheide
+STR_00EE_BUILDINGS_INDUSTRIES                                   :{BLACK}{TINYFONT}Geboue/Nywerhede
 STR_00EF_VEHICLES                                               :{BLACK}{TINYFONT}Voertuie
 STR_00F0_100M                                                   :{BLACK}{TINYFONT}100m
 STR_00F1_200M                                                   :{BLACK}{TINYFONT}200m
@@ -224,46 +224,46 @@
 STR_00FF_FARM                                                   :{BLACK}{TINYFONT}Boerdery
 STR_0100_FACTORY                                                :{BLACK}{TINYFONT}Fabriek
 STR_0101_PRINTING_WORKS                                         :{BLACK}{TINYFONT}Drukwerke
-STR_0102_OIL_WELLS                                              :{BLACK}{TINYFONT}Olie Bron
+STR_0102_OIL_WELLS                                              :{BLACK}{TINYFONT}Olie Spruite
 STR_0103_IRON_ORE_MINE                                          :{BLACK}{TINYFONT}Yster Erts Myn
-STR_0104_STEEL_MILL                                             :{BLACK}{TINYFONT}Staalmeul
+STR_0104_STEEL_MILL                                             :{BLACK}{TINYFONT}Staal Meule
 STR_0105_BANK                                                   :{BLACK}{TINYFONT}Bank
-STR_0106_PAPER_MILL                                             :{BLACK}{TINYFONT}Papiermeul
+STR_0106_PAPER_MILL                                             :{BLACK}{TINYFONT}Papier Meule
 STR_0107_GOLD_MINE                                              :{BLACK}{TINYFONT}Goud Myn
 STR_0108_FOOD_PROCESSING_PLANT                                  :{BLACK}{TINYFONT}Kos Verwerkings Fabriek
 STR_0109_DIAMOND_MINE                                           :{BLACK}{TINYFONT}Diamant Myn
 STR_010A_COPPER_ORE_MINE                                        :{BLACK}{TINYFONT}Koper Erts Myn
 STR_010B_FRUIT_PLANTATION                                       :{BLACK}{TINYFONT}Vrugte Plantasie
 STR_010C_RUBBER_PLANTATION                                      :{BLACK}{TINYFONT}Gomlastiek Plantasie
-STR_010D_WATER_SUPPLY                                           :{BLACK}{TINYFONT}Water Lewering
+STR_010D_WATER_SUPPLY                                           :{BLACK}{TINYFONT}Water Verskaf
 STR_010E_WATER_TOWER                                            :{BLACK}{TINYFONT}Water Toring
-STR_010F_LUMBER_MILL                                            :{BLACK}{TINYFONT}Timmerhout Meul
+STR_010F_LUMBER_MILL                                            :{BLACK}{TINYFONT}Timmerhout Meule
 STR_0110_COTTON_CANDY_FOREST                                    :{BLACK}{TINYFONT}Spookasem Woud
 STR_0111_CANDY_FACTORY                                          :{BLACK}{TINYFONT}Lekker Fabriek
 STR_0112_BATTERY_FARM                                           :{BLACK}{TINYFONT}Battery Plaas
-STR_0113_COLA_WELLS                                             :{BLACK}{TINYFONT}Cola Bron
+STR_0113_COLA_WELLS                                             :{BLACK}{TINYFONT}Cola Spruite
 STR_0114_TOY_SHOP                                               :{BLACK}{TINYFONT}Speelgoed Winkel
 STR_0115_TOY_FACTORY                                            :{BLACK}{TINYFONT}Speelgoed Fabriek
 STR_0116_PLASTIC_FOUNTAINS                                      :{BLACK}{TINYFONT}Plastiek Fonteine
 STR_0117_FIZZY_DRINK_FACTORY                                    :{BLACK}{TINYFONT}Koeldrank Fabriek
-STR_0118_BUBBLE_GENERATOR                                       :{BLACK}{TINYFONT}Borrel Ontwikkelaar
+STR_0118_BUBBLE_GENERATOR                                       :{BLACK}{TINYFONT}Borrel Genereerder
 STR_0119_TOFFEE_QUARRY                                          :{BLACK}{TINYFONT}Tameletjie Prooi
 STR_011A_SUGAR_MINE                                             :{BLACK}{TINYFONT}Suiker Myn
 STR_011B_RAILROAD_STATION                                       :{BLACK}{TINYFONT}Spoorweg Stasie
-STR_011C_TRUCK_LOADING_BAY                                      :{BLACK}{TINYFONT}Vraagmotor Laai Area
+STR_011C_TRUCK_LOADING_BAY                                      :{BLACK}{TINYFONT}Vragmotor Laai Area
 STR_011D_BUS_STATION                                            :{BLACK}{TINYFONT}Bus Stasie
 STR_011E_AIRPORT_HELIPORT                                       :{BLACK}{TINYFONT}Lughawe/Helihawe
 STR_011F_DOCK                                                   :{BLACK}{TINYFONT}Hawe
-STR_0120_ROUGH_LAND                                             :{BLACK}{TINYFONT}Ru Land
-STR_0121_GRASS_LAND                                             :{BLACK}{TINYFONT}Gras Land
-STR_0122_BARE_LAND                                              :{BLACK}{TINYFONT}Kaal Land
+STR_0120_ROUGH_LAND                                             :{BLACK}{TINYFONT}Rof Daal
+STR_0121_GRASS_LAND                                             :{BLACK}{TINYFONT}Gras Daal
+STR_0122_BARE_LAND                                              :{BLACK}{TINYFONT}Hou Daal
 STR_0123_FIELDS                                                 :{BLACK}{TINYFONT}Velde
 STR_0124_TREES                                                  :{BLACK}{TINYFONT}Boome
 STR_0125_ROCKS                                                  :{BLACK}{TINYFONT}Rotse
 STR_0126_WATER                                                  :{BLACK}{TINYFONT}Water
 STR_0127_NO_OWNER                                               :{BLACK}{TINYFONT}Geen Eienaar
-STR_0128_TOWNS                                                  :{BLACK}{TINYFONT}Stede
-STR_0129_INDUSTRIES                                             :{BLACK}{TINYFONT}Nywerheide
+STR_0128_TOWNS                                                  :{BLACK}{TINYFONT}Dorpe
+STR_0129_INDUSTRIES                                             :{BLACK}{TINYFONT}Nywerhede
 STR_012A_DESERT                                                 :{BLACK}{TINYFONT}Woestyn
 STR_012B_SNOW                                                   :{BLACK}{TINYFONT}Sneeu
 STR_012C_MESSAGE                                                :{WHITE}Boodskap
@@ -271,8 +271,8 @@
 STR_012E_CANCEL                                                 :{BLACK}Kanselleer
 STR_012F_OK                                                     :{BLACK}OK
 STR_0130_RENAME                                                 :{BLACK}Hernoem
-STR_0131_TOO_MANY_NAMES_DEFINED                                 :{WHITE}Te veel naame bepaal
-STR_0132_CHOSEN_NAME_IN_USE_ALREADY                             :{WHITE}Verkieste naam reeds in gebruik
+STR_0131_TOO_MANY_NAMES_DEFINED                                 :{WHITE}Te veel name gestipuleer
+STR_0132_CHOSEN_NAME_IN_USE_ALREADY                             :{WHITE}Gekies naam alreeds in gebruik
 
 STR_0133_WINDOWS                                                :Windows
 STR_0134_UNIX                                                   :Unix
@@ -282,7 +282,7 @@
 STR_OSNAME_AMIGAOS                                              :AmigaOS
 STR_OSNAME_OS2                                                  :OS/2
 
-STR_013B_OWNED_BY                                               :{WHITE}...besit by {STRING}
+STR_013B_OWNED_BY                                               :{WHITE}...besit deur {STRING}
 STR_013C_CARGO                                                  :{BLACK}Vrag
 STR_013D_INFORMATION                                            :{BLACK}Inligting
 STR_013E_CAPACITIES                                             :{BLACK}Kapasiteite
@@ -292,8 +292,8 @@
 STR_013F_TOTAL_CAPACITY_TEXT                                    :{BLACK}Totaale vrag kapasitiet van die trein:
 STR_013F_TOTAL_CAPACITY                                         :{LTBLUE}- {CARGO} ({SHORTCARGO})
 STR_TOTAL_CAPACITY_MULT                                         :{LTBLUE}- {CARGO} ({SHORTCARGO}) (x{NUM})
-STR_0140_NEW_GAME                                               :{BLACK}Nuwe Spel
-STR_0141_LOAD_GAME                                              :{BLACK}Laai Spel
+STR_0140_NEW_GAME                                               :{BLACK}Nuwe Speletjie
+STR_0141_LOAD_GAME                                              :{BLACK}Laai Speletjie
 STR_SINGLE_PLAYER                                               :{BLACK}Enkel speeler
 STR_MULTIPLAYER                                                 :{BLACK}Veelspeler
 STR_SCENARIO_EDITOR                                             :{BLACK}Draaiboek Redakteur
@@ -304,13 +304,13 @@
 STR_512                                                         :512
 STR_1024                                                        :1024
 STR_2048                                                        :2048
-STR_MAPSIZE                                                     :{BLACK}Kaart groote:
+STR_MAPSIZE                                                     :{BLACK}Werfkaart groote:
 STR_BY                                                          :{BLACK}*
-STR_0148_GAME_OPTIONS                                           :{BLACK}Spel Opsies
+STR_0148_GAME_OPTIONS                                           :{BLACK}Speletjie Opsies
 
 STR_0150_SOMEONE                                                :iemand{SKIP}{SKIP}
-STR_0151_MAP_OF_WORLD                                           :Kaart van die wêreld
-STR_0152_TOWN_DIRECTORY                                         :Stad index
+STR_0151_MAP_OF_WORLD                                           :Werfkaart van wêreld
+STR_0152_TOWN_DIRECTORY                                         :Dorp gids
 STR_0153_SUBSIDIES                                              :Subsidiëe
 
 STR_UNITS_IMPERIAL                                              :Imperiaal
@@ -346,23 +346,23 @@
 STR_UNITS_FORCE_SI                                              :{COMMA} kN
 
 ############ range for menu starts
-STR_0154_OPERATING_PROFIT_GRAPH                                 :Opereer profyt grafiek
-STR_0155_INCOME_GRAPH                                           :Inkoms grafiek
-STR_0156_DELIVERED_CARGO_GRAPH                                  :Afgelewerde vrag grafiek
-STR_0157_PERFORMANCE_HISTORY_GRAPH                              :Prestasie geskiedenis grafiek
+STR_0154_OPERATING_PROFIT_GRAPH                                 :Bediening profyt grafiek
+STR_0155_INCOME_GRAPH                                           :Inkomste grafiek
+STR_0156_DELIVERED_CARGO_GRAPH                                  :Gelewer cargo grafiek
+STR_0157_PERFORMANCE_HISTORY_GRAPH                              :Werkverrigting geskiedenis grafiek
 STR_0158_COMPANY_VALUE_GRAPH                                    :Maatskappy waarde grafiek
-STR_0159_CARGO_PAYMENT_RATES                                    :Vrag betaaling grade
-STR_015A_COMPANY_LEAGUE_TABLE                                   :Maatskappy verbond tafel
+STR_0159_CARGO_PAYMENT_RATES                                    :Vrag vergoeding koerse
+STR_015A_COMPANY_LEAGUE_TABLE                                   :Maatskappy verbond tabel
 STR_PERFORMANCE_DETAIL_MENU                                     :Omstandig prestasie gradering
 ############ range for menu ends
 
 STR_015B_OPENTTD                                                :{WHITE}Omtrent OpenTTD
-STR_015C_SAVE_GAME                                              :Bewaar spel
-STR_015D_LOAD_GAME                                              :Laai spel
-STR_015E_QUIT_GAME                                              :Verlaat Spel
-STR_015F_QUIT                                                   :Uitgang
-STR_ABANDON_GAME_QUERY                                          :{YELLOW}Is jy seker jy wil die spel verlaat?
-STR_0161_QUIT_GAME                                              :{WHITE}Verlaat Spel
+STR_015C_SAVE_GAME                                              :Spaar Speletjie
+STR_015D_LOAD_GAME                                              :Laai speletjie
+STR_015E_QUIT_GAME                                              :Verlaat Speletjie
+STR_015F_QUIT                                                   :Gaan uit
+STR_ABANDON_GAME_QUERY                                          :{YELLOW}Is jy seker jy wil die speletjie verlaat?
+STR_0161_QUIT_GAME                                              :{WHITE}Verlaat Speletjie
 STR_SORT_ORDER_TIP                                              :{BLACK}Selekteer sorteer orde (afklimende/klimende)
 STR_SORT_CRITERIA_TIP                                           :{BLACK}Selekteer sorteer maatstaf
 STR_SORT_BY                                                     :{BLACK}Sorteer by
@@ -391,13 +391,14 @@
 STR_ENGINE_SORT_POWER                                           :Krag
 STR_ENGINE_SORT_INTRO_DATE                                      :Inleiding Datum
 STR_ENGINE_SORT_RUNNING_COST                                    :Loopkoste
+STR_ENGINE_SORT_POWER_VS_RUNNING_COST                           :Krag/Loopkoste
 STR_ENGINE_SORT_CARGO_CAPACITY                                  :Vrag Kapasiteit
 STR_NO_WAITING_CARGO                                            :{BLACK}Geen vrag van enige tipe is op wag
 STR_AVAILABLE_TRAINS                                            :{BLACK}Beskikbaar Treine
 STR_AVAILABLE_ROAD_VEHICLES                                     :{BLACK}Beskikbaar Voertuie
 STR_AVAILABLE_SHIPS                                             :{BLACK}Beskikbaar Skepe
 STR_AVAILABLE_AIRCRAFT                                          :{BLACK}Beskikbaar Vliegtuie
-STR_AVAILABLE_ENGINES_TIP                                       :{BLACK}Wys 'n lys van beskikbaare enjin tipes vir die voertiug tipe.
+STR_AVAILABLE_ENGINES_TIP                                       :{BLACK}Toon 'n lys van beskikbaare enjin tipes vir die voertiug tipe.
 STR_MANAGE_LIST                                                 :{BLACK}Bestuur lys
 STR_MANAGE_LIST_TIP                                             :{BLACK}Stuur instruksies na alle voertuie in die lys
 STR_REPLACE_VEHICLES                                            :Vervang voertuie
@@ -425,11 +426,11 @@
 STR_016E                                                        :{TINYFONT}{STRING}{} {STRING}
 STR_016F                                                        :{TINYFONT}{STRING}{} {STRING}{}{NUM}
 STR_0170                                                        :{TINYFONT}{STRING}-
-STR_0171_PAUSE_GAME                                             :{BLACK}Pouseer spel
-STR_0172_SAVE_GAME_ABANDON_GAME                                 :{BLACK}Bewaar spel. verlaat spel, uitgang
+STR_0171_PAUSE_GAME                                             :{BLACK}Pouse speletjie
+STR_0172_SAVE_GAME_ABANDON_GAME                                 :{BLACK}Spaar speletjie, verlaat speletjie, laat vaar
 STR_0173_DISPLAY_LIST_OF_COMPANY                                :{BLACK}Vertoon lys van maatskappy se stasies
-STR_0174_DISPLAY_MAP                                            :{BLACK}Vertoon kaart
-STR_0175_DISPLAY_MAP_TOWN_DIRECTORY                             :{BLACK}Vertoon kaart, stad index
+STR_0174_DISPLAY_MAP                                            :{BLACK}Vertoon werfkaart
+STR_0175_DISPLAY_MAP_TOWN_DIRECTORY                             :{BLACK}Vertoon werfkaart, dorp gids
 STR_0176_DISPLAY_TOWN_DIRECTORY                                 :{BLACK}Vertoon stad index
 STR_0177_DISPLAY_COMPANY_FINANCES                               :{BLACK}Vertoon maatskappy finasi�e inligting
 STR_0178_DISPLAY_COMPANY_GENERAL                                :{BLACK}Vertoon generale maatskappy inligting
@@ -440,51 +441,51 @@
 STR_017D_DISPLAY_LIST_OF_COMPANY                                :{BLACK}Vertoon lys van maatskappy se skepe
 STR_017E_DISPLAY_LIST_OF_COMPANY                                :{BLACK}Vertoon lys van maatskappy se vliegtuie
 STR_017F_ZOOM_THE_VIEW_IN                                       :{BLACK}Vergroot die skerm
-STR_0180_ZOOM_THE_VIEW_OUT                                      :{BLACK}Verklein die skerm
+STR_0180_ZOOM_THE_VIEW_OUT                                      :{BLACK}Vergroot die siening uit
 STR_0181_BUILD_RAILROAD_TRACK                                   :{BLACK}Bou spoorweg spoor
 STR_0182_BUILD_ROADS                                            :{BLACK}Bou Paaie
 STR_0183_BUILD_SHIP_DOCKS                                       :{BLACK}Bou skip hawe
 STR_0184_BUILD_AIRPORTS                                         :{BLACK}Bou lughawe
 STR_0185_PLANT_TREES_PLACE_SIGNS                                :{BLACK}Plant boome, plaas tekens ens.
-STR_0186_LAND_BLOCK_INFORMATION                                 :{BLACK}Land area inligting
+STR_0186_LAND_BLOCK_INFORMATION                                 :{BLACK}Daal area informasie
 STR_0187_OPTIONS                                                :{BLACK}Opsies
 STR_0188                                                        :{BLACK}{SMALLUPARROW}
 STR_0189                                                        :{BLACK}{SMALLDOWNARROW}
-STR_018A_CAN_T_CHANGE_SERVICING                                 :{WHITE}kan nie versiening tussentyd verander nie...
+STR_018A_CAN_T_CHANGE_SERVICING                                 :{WHITE}kan nie diens tussentyd verander nie...
 STR_018B_CLOSE_WINDOW                                           :{BLACK}Maak venster toe
 STR_018C_WINDOW_TITLE_DRAG_THIS                                 :{BLACK}Venster titel - sleep die om venster te beweeg
 STR_STICKY_BUTTON                                               :{BLACK}Bemerk die venste as ontoemaakbaar by die"Sluit Alle Vensters" sleutel
 STR_RESIZE_BUTTON                                               :{BLACK}Kliek en sleep om venster te vergroot
 STR_SAVELOAD_HOME_BUTTON                                        :{BLACK}Kliek hier om na die huidige bewaar/laai leer te spring
-STR_018D_DEMOLISH_BUILDINGS_ETC                                 :{BLACK}Breek gebou af ens. op 'n landblokkie
-STR_018E_LOWER_A_CORNER_OF_LAND                                 :{BLACK}Verlaag 'n hoek van land
-STR_018F_RAISE_A_CORNER_OF_LAND                                 :{BLACK}Verhoog 'n hoek van land
+STR_018D_DEMOLISH_BUILDINGS_ETC                                 :{BLACK}Vernietig geboue ens. op 'n vierkant van daal
+STR_018E_LOWER_A_CORNER_OF_LAND                                 :{BLACK}Laer 'n hoek van daal
+STR_018F_RAISE_A_CORNER_OF_LAND                                 :{BLACK}Verhoog 'n hoek van daal
 STR_0190_SCROLL_BAR_SCROLLS_LIST                                :{BLACK}Rol baan - rol die lys op/af
 STR_HSCROLL_BAR_SCROLLS_LIST                                    :{BLACK}Rol baan - rol die lys op/af
-STR_0191_SHOW_LAND_CONTOURS_ON_MAP                              :{BLACK}Vertoon land hoogtelyne op kaart
-STR_0192_SHOW_VEHICLES_ON_MAP                                   :{BLACK}Vertoon voertuie op kaart
-STR_0193_SHOW_INDUSTRIES_ON_MAP                                 :{BLACK}Vertoon nywerheide op kaart
-STR_0194_SHOW_TRANSPORT_ROUTES_ON                               :{BLACK}Vertoon vervoer roete op kaart
-STR_0195_SHOW_VEGETATION_ON_MAP                                 :{BLACK}Vertoon plantegroei op kaart
-STR_0196_SHOW_LAND_OWNERS_ON_MAP                                :{BLACK}Vertoon land eienaars op kaart
-STR_0197_TOGGLE_TOWN_NAMES_ON_OFF                               :{BLACK}Skakel stad naame aan/af op kaart
+STR_0191_SHOW_LAND_CONTOURS_ON_MAP                              :{BLACK}Toon daal kontoere op werfkaart
+STR_0192_SHOW_VEHICLES_ON_MAP                                   :{BLACK}Vertoon voertuie op werfkaart
+STR_0193_SHOW_INDUSTRIES_ON_MAP                                 :{BLACK}Vertoon nywerhede op werfkaart
+STR_0194_SHOW_TRANSPORT_ROUTES_ON                               :{BLACK}Vertoon vervoer roete op werfkaart
+STR_0195_SHOW_VEGETATION_ON_MAP                                 :{BLACK}Vertoon plantegroei op werfkaart
+STR_0196_SHOW_LAND_OWNERS_ON_MAP                                :{BLACK}Toon daal eienaars op werfkaart
+STR_0197_TOGGLE_TOWN_NAMES_ON_OFF                               :{BLACK}Tokkel dorp name on/off op werfkaart
 STR_0198_PROFIT_THIS_YEAR_LAST_YEAR                             :{TINYFONT}{BLACK}Profyt die jaar: {CURRENCY} (verlede jaar: {CURRENCY})
 
 ############ range for service numbers starts
-STR_AGE                                                         :{COMMA} jaar{P "" e} ({COMMA})
-STR_AGE_RED                                                     :{RED}{COMMA} jaar{P "" e} ({COMMA})
+STR_AGE                                                         :{COMMA} ja{P ar re} ({COMMA})
+STR_AGE_RED                                                     :{RED}{COMMA} ja{P ar re} ({COMMA})
 ############ range for service numbers ends
 
 STR_019C_ROAD_VEHICLE                                           :Pad voertuig
 STR_019D_AIRCRAFT                                               :Vliegtuig
 STR_019E_SHIP                                                   :Skip
 STR_019F_TRAIN                                                  :Trein
-STR_01A0_IS_GETTING_OLD                                         :{WHITE}{STRING} {COMMA} raak nou oud
-STR_01A1_IS_GETTING_VERY_OLD                                    :{WHITE}{STRING} {COMMA} is besig om baie oud te word
-STR_01A2_IS_GETTING_VERY_OLD_AND                                :{WHITE}{STRING} {COMMA} is besig om baie oud te word en moet dringend vervang word
-STR_01A3_LAND_AREA_INFORMATION                                  :{WHITE}Land Area Inligting
-STR_01A4_COST_TO_CLEAR_N_A                                      :{BLACK}Prys om te reinig: {LTBLUE}N/A
-STR_01A5_COST_TO_CLEAR                                          :{BLACK}Prys om te reinig: {LTBLUE}{CURRENCY}
+STR_01A0_IS_GETTING_OLD                                         :{WHITE}{STRING} {COMMA} word ou
+STR_01A1_IS_GETTING_VERY_OLD                                    :{WHITE}{STRING} {COMMA} word baie ou
+STR_01A2_IS_GETTING_VERY_OLD_AND                                :{WHITE}{STRING} {COMMA} word baie ou en dringend benodig vervang
+STR_01A3_LAND_AREA_INFORMATION                                  :{WHITE}Daal area informasie
+STR_01A4_COST_TO_CLEAR_N_A                                      :{BLACK}Kos om te reinig: {LTBLUE}N/A
+STR_01A5_COST_TO_CLEAR                                          :{BLACK}Kos om te reinig: {LTBLUE}{CURRENCY}
 STR_01A6_N_A                                                    :N/A
 STR_01A7_OWNER                                                  :{BLACK}Eienaar: {LTBLUE}{STRING}
 STR_01A8_LOCAL_AUTHORITY                                        :{BLACK}Plaaslike raad: {LTBLUE}{STRING}
@@ -562,7 +563,7 @@
 STR_01EE_TRACK_INDEX                                            :{TINYFONT}{BLACK}Liedjie Index
 STR_01EF_PROGRAM                                                :{TINYFONT}{BLACK}Musiek Lys - '{STRING}'
 STR_01F0_CLEAR                                                  :{TINYFONT}{BLACK}Reinig
-STR_01F1_SAVE                                                   :{TINYFONT}{BLACK}Bewaar
+STR_01F1_SAVE                                                   :{TINYFONT}{BLACK}Spaar
 STR_01F2_CURRENT_PROGRAM_OF_MUSIC                               :{BLACK}Huidige musiek keuse
 STR_01F3_SELECT_ALL_TRACKS_PROGRAM                              :{BLACK}Kies 'alle liedjies' musiek lys
 STR_01F4_SELECT_OLD_STYLE_MUSIC                                 :{BLACK}Kies 'ou styl musiek' musiek lys
@@ -570,10 +571,10 @@
 STR_01F6_SELECT_CUSTOM_1_USER_DEFINED                           :{BLACK}Kies 'Gewoonte 1' (gebruiker-gestel) musiek lys
 STR_01F7_SELECT_CUSTOM_2_USER_DEFINED                           :{BLACK}Kies 'Gewoonte 2' (gebruiker-gestel) musiek lys
 STR_01F8_CLEAR_CURRENT_PROGRAM_CUSTOM1                          :{BLACK}Reinig huidige musiek keuse (slegs Gewoonte1 of Gewoonte2)
-STR_01F9_SAVE_MUSIC_SETTINGS                                    :{BLACK}Bewaar musiek stellings
+STR_01F9_SAVE_MUSIC_SETTINGS                                    :{BLACK}Spaar musiek stellings
 STR_01FA_CLICK_ON_MUSIC_TRACK_TO                                :{BLACK}Kliek op musiek liedjie om by huidige musiek lys in te sit (slegs Gewoonte1 of Gewoonte2)
 STR_CLICK_ON_TRACK_TO_REMOVE                                    :{BLACK}Kliek op musiek lied om te verwyder van huidige program (Slegs Gewoonte1 of Gewoonte2)
-STR_01FB_TOGGLE_PROGRAM_SHUFFLE                                 :{BLACK}Skakel musiek lys skuifel aan/af
+STR_01FB_TOGGLE_PROGRAM_SHUFFLE                                 :{BLACK}Tokkel musiek lys skuifel aan/af
 STR_01FC_SHOW_MUSIC_TRACK_SELECTION                             :{BLACK}Vertoon musiek liedjie keuse venster
 STR_01FD_CLICK_ON_SERVICE_TO_CENTER                             :{BLACK}Kliek op diens om uitsig te senter op nywerheid/stad
 STR_01FE_DIFFICULTY                                             :{BLACK}Moeilikheid ({STRING})
@@ -584,16 +585,16 @@
 STR_0203_SHOW_LAST_MESSAGE_NEWS                                 :{BLACK}Vertoon laaste boodskap/nuus verslag, vertoon boodskap opsies
 STR_0204_MESSAGE_OPTIONS                                        :{WHITE}Boodskap Opsies
 STR_0205_MESSAGE_TYPES                                          :{BLACK}Boodskap tipes:
-STR_0206_ARRIVAL_OF_FIRST_VEHICLE                               :{YELLOW}Aankoms van eerste voetuig by speler se stasie
-STR_0207_ARRIVAL_OF_FIRST_VEHICLE                               :{YELLOW}Aankoms van eerste voertuig by mededinger se stasie
+STR_0206_ARRIVAL_OF_FIRST_VEHICLE                               :{YELLOW}Aankoms van eerste voetuig tot speler se stasie
+STR_0207_ARRIVAL_OF_FIRST_VEHICLE                               :{YELLOW}Aankoms van eerste voertuig tot mededinger se stasie
 STR_0208_ACCIDENTS_DISASTERS                                    :{YELLOW}Ongelukke / rampe
-STR_0209_COMPANY_INFORMATION                                    :{YELLOW}Maatkappy inligting
+STR_0209_COMPANY_INFORMATION                                    :{YELLOW}Maatskappy informasie
 STR_020A_ECONOMY_CHANGES                                        :{YELLOW}Ekonomie veranderings
-STR_020B_ADVICE_INFORMATION_ON_PLAYER                           :{YELLOW}Raad / inligting op speler se voertuie
+STR_020B_ADVICE_INFORMATION_ON_PLAYER                           :{YELLOW}Raad / informasie op speler se voertuie
 STR_020C_NEW_VEHICLES                                           :{YELLOW}Nuwe voertuie
 STR_020D_CHANGES_OF_CARGO_ACCEPTANCE                            :{YELLOW}Veranderings na vrag aanvarde
 STR_020E_SUBSIDIES                                              :{YELLOW}Subsidiee
-STR_020F_GENERAL_INFORMATION                                    :{YELLOW}Generale inligting
+STR_020F_GENERAL_INFORMATION                                    :{YELLOW}Generale informasie
 STR_MESSAGES_ALL                                                :{YELLOW}Stel alle boodskap tipes na: Af/Opsomming/Volle
 STR_MESSAGE_SOUND                                               :{YELLOW}Speel geluid vir opsommige nuus boodskappe
 STR_0210_TOO_FAR_FROM_PREVIOUS_DESTINATIO                       :{WHITE}...te ver van vorige destinasie
@@ -613,36 +614,36 @@
 STR_021C_OF_ACHIEVES_STATUS                                     :{WHITE}{BIGFONT}{PLAYERNAME} van {COMPANY} behaal '{STRING}' stand!
 STR_021F                                                        :{BLUE}{COMMA}
 STR_0221_OPENTTD                                                :{YELLOW}OpenTTD
-STR_0222_SCENARIO_EDITOR                                        :{YELLOW}Draaiboek Redakteur
-STR_0223_LAND_GENERATION                                        :{WHITE}Land Ontwikkeling
+STR_0222_SCENARIO_EDITOR                                        :{YELLOW}Draaiboek Redigeerder
+STR_0223_LAND_GENERATION                                        :{WHITE}Daal Generasie
 STR_0224                                                        :{BLACK}{UPARROW}
 STR_0225                                                        :{BLACK}{DOWNARROW}
 STR_0228_INCREASE_SIZE_OF_LAND_AREA                             :{BLACK}Vergroot land area om te verlaag/verhoog
 STR_0229_DECREASE_SIZE_OF_LAND_AREA                             :{BLACK}Verminder land area om te verlaag/verhoog
-STR_022A_GENERATE_RANDOM_LAND                                   :{BLACK}Ontwikkel lukraak land
-STR_022B_RESET_LANDSCAPE                                        :{BLACK}Herstel landerye
-STR_022C_RESET_LANDSCAPE                                        :{WHITE}Herstel landerye
+STR_022A_GENERATE_RANDOM_LAND                                   :{BLACK}Opwek lukraak daal
+STR_022B_RESET_LANDSCAPE                                        :{BLACK}Herstel landskap
+STR_022C_RESET_LANDSCAPE                                        :{WHITE}Herstel landskap
 STR_RESET_LANDSCAPE_CONFIRMATION_TEXT                           :{WHITE}Is jy seker jy wil alle speler-besittend eiendom verwyder?
-STR_022E_LANDSCAPE_GENERATION                                   :{BLACK}Landerye ontwikkeling
-STR_022F_TOWN_GENERATION                                        :{BLACK}Stad ontwikkeling
-STR_0230_INDUSTRY_GENERATION                                    :{BLACK}Nyweheid ontwikkeling
-STR_0231_ROAD_CONSTRUCTION                                      :{BLACK}Pad konstruksie
-STR_0233_TOWN_GENERATION                                        :{WHITE}Stad Ontwikkeling
-STR_0234_NEW_TOWN                                               :{BLACK}Nuwe Stad
-STR_0235_CONSTRUCT_NEW_TOWN                                     :{BLACK}Bou nuwe stad
-STR_0236_CAN_T_BUILD_TOWN_HERE                                  :{WHITE}Stad kan nie hier gebou word nie...
-STR_0237_TOO_CLOSE_TO_EDGE_OF_MAP                               :{WHITE}...te naby aan kant van kaart
-STR_0238_TOO_CLOSE_TO_ANOTHER_TOWN                              :{WHITE}...te naby aan 'n ander stad
-STR_0239_SITE_UNSUITABLE                                        :{WHITE}...plek ongeskik
-STR_023A_TOO_MANY_TOWNS                                         :{WHITE}...te veel stede
+STR_022E_LANDSCAPE_GENERATION                                   :{BLACK}Landskap generasie
+STR_022F_TOWN_GENERATION                                        :{BLACK}Dorp generasie
+STR_0230_INDUSTRY_GENERATION                                    :{BLACK}Nyweheid generasie
+STR_0231_ROAD_CONSTRUCTION                                      :{BLACK}Pad samestelling
+STR_0233_TOWN_GENERATION                                        :{WHITE}Dorp Generasie
+STR_0234_NEW_TOWN                                               :{BLACK}Nuwe Dorp
+STR_0235_CONSTRUCT_NEW_TOWN                                     :{BLACK}Bou nuwe dorp
+STR_0236_CAN_T_BUILD_TOWN_HERE                                  :{WHITE}Dorp kan nie hier gebou word nie...
+STR_0237_TOO_CLOSE_TO_EDGE_OF_MAP                               :{WHITE}...te naby aan rand van werfkaart
+STR_0238_TOO_CLOSE_TO_ANOTHER_TOWN                              :{WHITE}...te naby aan 'n ander dorp
+STR_0239_SITE_UNSUITABLE                                        :{WHITE}...werf nie geskik nie
+STR_023A_TOO_MANY_TOWNS                                         :{WHITE}...te veel dorpe
 STR_CANNOT_GENERATE_TOWN                                        :{WHITE}Kan nie enige stede bou nie
 STR_NO_SPACE_FOR_TOWN                                           :{WHITE}...daar is nie meer spasie op die kaart nie
-STR_023B_INCREASE_SIZE_OF_TOWN                                  :{BLACK}Vergroot stad
-STR_023C_EXPAND                                                 :{BLACK}Uitbrei
-STR_023D_RANDOM_TOWN                                            :{BLACK}Lukraak Stad
-STR_023E_BUILD_TOWN_IN_RANDOM_LOCATION                          :{BLACK}Bou stad in lukraak plek
-STR_023F_INDUSTRY_GENERATION                                    :{WHITE}Nywerheid Ontwikkeling
-STR_0240_COAL_MINE                                              :{BLACK}Steenkool Myn
+STR_023B_INCREASE_SIZE_OF_TOWN                                  :{BLACK}verhoog grootte van dorp
+STR_023C_EXPAND                                                 :{BLACK}Sprei uit
+STR_023D_RANDOM_TOWN                                            :{BLACK}Lukraak Dorp
+STR_023E_BUILD_TOWN_IN_RANDOM_LOCATION                          :{BLACK}Bou dorp in lukraak lokasie
+STR_023F_INDUSTRY_GENERATION                                    :{WHITE}Nywerheid Generasie
+STR_0240_COAL_MINE                                              :{BLACK}Kool Myn
 STR_0241_POWER_STATION                                          :{BLACK}Krag Stasie
 STR_0242_SAWMILL                                                :{BLACK}Saagmeul
 STR_0243_FOREST                                                 :{BLACK}Woud
@@ -658,134 +659,137 @@
 STR_024D_FOOD_PROCESSING_PLANT                                  :{BLACK}Kos Verwerking Fabriek
 STR_024E_PRINTING_WORKS                                         :{BLACK}Drukwerke
 STR_024F_GOLD_MINE                                              :{BLACK}Goud Myn
-STR_0250_LUMBER_MILL                                            :{BLACK}Timmehoutmeul
+STR_0250_LUMBER_MILL                                            :{BLACK}Timmehout Meule
 STR_0251_FRUIT_PLANTATION                                       :{BLACK}Vrugte Plantasie
 STR_0252_RUBBER_PLANTATION                                      :{BLACK}Gomlastiek Plantasie
-STR_0253_WATER_SUPPLY                                           :{BLACK}Water Lewering
+STR_0253_WATER_SUPPLY                                           :{BLACK}Water Verskaf
 STR_0254_WATER_TOWER                                            :{BLACK}Water Toring
 STR_0255_DIAMOND_MINE                                           :{BLACK}Diamant Myn
 STR_0256_COPPER_ORE_MINE                                        :{BLACK}Koper Erts Myn
 STR_0257_COTTON_CANDY_FOREST                                    :{BLACK}Spookasem Woud
 STR_0258_CANDY_FACTORY                                          :{BLACK}Lekker Fabriek
 STR_0259_BATTERY_FARM                                           :{BLACK}Battery Boerdery
-STR_025A_COLA_WELLS                                             :{BLACK}Cola Bron
+STR_025A_COLA_WELLS                                             :{BLACK}Cola Spruite
 STR_025B_TOY_SHOP                                               :{BLACK}Speelgoed Winkel
 STR_025C_TOY_FACTORY                                            :{BLACK}Speelgoed Fabriek
 STR_025D_PLASTIC_FOUNTAINS                                      :{BLACK}Plastiek Fonteine
 STR_025E_FIZZY_DRINK_FACTORY                                    :{BLACK}Koeldrank Fabriek
-STR_025F_BUBBLE_GENERATOR                                       :{BLACK}Borrel Ontwikkelaar
+STR_025F_BUBBLE_GENERATOR                                       :{BLACK}Borrel Genereerder
 STR_0260_TOFFEE_QUARRY                                          :{BLACK}Tameletjie Prooi
 STR_0261_SUGAR_MINE                                             :{BLACK}Suiker Myn
-STR_0262_CONSTRUCT_COAL_MINE                                    :{BLACK}Bou Steenkool Myn
+STR_0262_CONSTRUCT_COAL_MINE                                    :{BLACK}Bou Kool Myn
 STR_0263_CONSTRUCT_POWER_STATION                                :{BLACK}Bou Krag Stasie
-STR_0264_CONSTRUCT_SAWMILL                                      :{BLACK}Bou Saagmeul
+STR_0264_CONSTRUCT_SAWMILL                                      :{BLACK}Bou Saagmeule
 STR_0265_PLANT_FOREST                                           :{BLACK}Beplant Woud
 STR_0266_CONSTRUCT_OIL_REFINERY                                 :{BLACK}Bou Olie Raffineerdery
-STR_0267_CONSTRUCT_OIL_RIG_CAN_ONLY                             :{BLACK}Bou Olieboor (Kan slegs naby aan kante van kaart gebou word)
+STR_0267_CONSTRUCT_OIL_RIG_CAN_ONLY                             :{BLACK}Bou Olieboor (Kan slegs naby aan kante van werfkaart gebou word)
 STR_0268_CONSTRUCT_FACTORY                                      :{BLACK}Bou Fabriek
-STR_0269_CONSTRUCT_STEEL_MILL                                   :{BLACK}Bou Staalmeul
+STR_0269_CONSTRUCT_STEEL_MILL                                   :{BLACK}Bou Staal Meule
 STR_026A_CONSTRUCT_FARM                                         :{BLACK}Bou Boerdery
 STR_026B_CONSTRUCT_IRON_ORE_MINE                                :{BLACK}Bou Yster Erts Myn
-STR_026C_CONSTRUCT_OIL_WELLS                                    :{BLACK}Bou Olie Bron
-STR_026D_CONSTRUCT_BANK_CAN_ONLY                                :{BLACK}Bou Bank (kan slegs in stede met 'n populasie grooter as 1200 gebou word)
-STR_026E_CONSTRUCT_PAPER_MILL                                   :{BLACK}Bou Papiermeul
+STR_026C_CONSTRUCT_OIL_WELLS                                    :{BLACK}Bou Olie Spruite
+STR_026D_CONSTRUCT_BANK_CAN_ONLY                                :{BLACK}Bou Bank (kan slegs in dorpe met 'n populasie grooter as 1200 gebou word)
+STR_026E_CONSTRUCT_PAPER_MILL                                   :{BLACK}Bou Papier Meule
 STR_026F_CONSTRUCT_FOOD_PROCESSING                              :{BLACK}Bou Kos Verwerkings Fabriek
 STR_0270_CONSTRUCT_PRINTING_WORKS                               :{BLACK}Bou Drukwerke
 STR_0271_CONSTRUCT_GOLD_MINE                                    :{BLACK}Bou Goud Myn
-STR_0272_CONSTRUCT_BANK_CAN_ONLY                                :{BLACK}Bou Bank (Kan slegs in stede gebou word)
-STR_0273_CONSTRUCT_LUMBER_MILL_TO                               :{BLACK}Bou Timmerhoutmeul (om reenwoud te reinig en hout te maak)
+STR_0272_CONSTRUCT_BANK_CAN_ONLY                                :{BLACK}Bou Bank (Kan slegs in dorpe gebou word)
+STR_0273_CONSTRUCT_LUMBER_MILL_TO                               :{BLACK}Bou Timmerhoutmeul (om reenwoud te reinig en Hout te maak)
 STR_0274_PLANT_FRUIT_PLANTATION                                 :{BLACK}Beplant Vrugte Plantasie
 STR_0275_PLANT_RUBBER_PLANTATION                                :{BLACK}Beplant Gomlastiek Plantasie
-STR_0276_CONSTRUCT_WATER_SUPPLY                                 :{BLACK}Bou Water Lewering
-STR_0277_CONSTRUCT_WATER_TOWER_CAN                              :{BLACK}Bou Water Toring (Kan slegs in stede gebou word)
+STR_0276_CONSTRUCT_WATER_SUPPLY                                 :{BLACK}Bou Water Verskaf
+STR_0277_CONSTRUCT_WATER_TOWER_CAN                              :{BLACK}Bou Water Toring (Kan slegs in dorpe gebou word)
 STR_0278_CONSTRUCT_DIAMOND_MINE                                 :{BLACK}Bou Diamant Myn
 STR_0279_CONSTRUCT_COPPER_ORE_MINE                              :{BLACK}Bou Koper Erts Myn
 STR_027A_PLANT_COTTON_CANDY_FOREST                              :{BLACK}Beplant Spookasem Woud
 STR_027B_CONSTRUCT_CANDY_FACTORY                                :{BLACK}Bou Lekker Fabriek
 STR_027C_CONSTRUCT_BATTERY_FARM                                 :{BLACK}Bou Battery Boerdery
-STR_027D_CONSTRUCT_COLA_WELLS                                   :{BLACK}Bou Cola Bron
+STR_027D_CONSTRUCT_COLA_WELLS                                   :{BLACK}Bou Cola Spruite
 STR_027E_CONSTRUCT_TOY_SHOP                                     :{BLACK}Bou Speelgoed Winkel
 STR_027F_CONSTRUCT_TOY_FACTORY                                  :{BLACK}Bou Speelgoed Fabriek
 STR_0280_CONSTRUCT_PLASTIC_FOUNTAINS                            :{BLACK}Bou Plastiek Fonteine
 STR_0281_CONSTRUCT_FIZZY_DRINK_FACTORY                          :{BLACK}Bou Koeldrank Fabriek
-STR_0282_CONSTRUCT_BUBBLE_GENERATOR                             :{BLACK}Bou Borrel Ontwikkelaar
+STR_0282_CONSTRUCT_BUBBLE_GENERATOR                             :{BLACK}Bou Borrel Genereerder
 STR_0283_CONSTRUCT_TOFFEE_QUARRY                                :{BLACK}Bou Tameletjie Prooi
 STR_0284_CONSTRUCT_SUGAR_MINE                                   :{BLACK}Bou Suiker Myn
 STR_0285_CAN_T_BUILD_HERE                                       :{WHITE}Kan nie {STRING} hier bou nie...
-STR_0286_MUST_BUILD_TOWN_FIRST                                  :{WHITE}...moet eers stad bou
-STR_0287_ONLY_ONE_ALLOWED_PER_TOWN                              :{WHITE}...slegs een toegelaat per stad
+STR_0286_MUST_BUILD_TOWN_FIRST                                  :{WHITE}...moet eers dorp bou
+STR_0287_ONLY_ONE_ALLOWED_PER_TOWN                              :{WHITE}...alleen een toegelaat per dorp
 STR_0288_PLANT_TREES                                            :{BLACK}Boome beplant
 STR_0289_PLACE_SIGN                                             :{BLACK}Plaas teken
 STR_028A_RANDOM_TREES                                           :{BLACK}Lukraak Boome
-STR_028B_PLANT_TREES_RANDOMLY_OVER                              :{BLACK}Beplant boome lukraake oor laderye
-STR_028C_PLACE_ROCKY_AREAS_ON_LANDSCAPE                         :{BLACK}Plaas rotse op landerye
+STR_028B_PLANT_TREES_RANDOMLY_OVER                              :{BLACK}Beplant bome wildweg oor landskap
+STR_028C_PLACE_ROCKY_AREAS_ON_LANDSCAPE                         :{BLACK}Plaas rotse op landskap
 STR_028D_PLACE_LIGHTHOUSE                                       :{BLACK}Plaas vuurtoring
 STR_028E_PLACE_TRANSMITTER                                      :{BLACK}Plaas sender
 STR_028F_DEFINE_DESERT_AREA                                     :{BLACK}Bepaal woestyn area.{}Druk en hou CTRL om te verwyder
-STR_0290_DELETE                                                 :{BLACK}Uitwis
-STR_0291_DELETE_THIS_TOWN_COMPLETELY                            :{BLACK}Uitwis hele stad
-STR_0292_SAVE_SCENARIO                                          :Bewaar draaiboek
+STR_CREATE_LAKE                                                 :{BLACK}Bepaal water area.{}Maak 'n kanaal, tensy CTRL is ingehou teen seevlak, dan sal dit vloed vul die omgewings
+STR_0290_DELETE                                                 :{BLACK}Uitvee
+STR_0291_DELETE_THIS_TOWN_COMPLETELY                            :{BLACK}Uitvee hierdie dorp heeltemal
+STR_0292_SAVE_SCENARIO                                          :Spaar draaiboek
 STR_0293_LOAD_SCENARIO                                          :Laai draaiboek
 STR_LOAD_HEIGHTMAP                                              :Laai Hoogtekaart
-STR_0294_QUIT_EDITOR                                            :Verlaat redakteur
+STR_0294_QUIT_EDITOR                                            :Laat vaar redigeerder
 STR_0295                                                        :
-STR_0296_QUIT                                                   :Verlaat
-STR_0297_SAVE_SCENARIO_LOAD_SCENARIO                            :{BLACK}Bewaar draaiboek, laai draaiboek, verlaat draaiboek redakteur, Verlaat
+STR_0296_QUIT                                                   :Laat vaar
+STR_0297_SAVE_SCENARIO_LOAD_SCENARIO                            :{BLACK}spaar draaiboek, laai draaiboek, verlaat draaiboek redigeerder, laat vaar
 STR_0298_LOAD_SCENARIO                                          :{WHITE}Laai Draaiboek
-STR_0299_SAVE_SCENARIO                                          :{WHITE}Bewaar Draaiboek
+STR_0299_SAVE_SCENARIO                                          :{WHITE}Spaar Draaiboek
 STR_029A_PLAY_SCENARIO                                          :{BLACK}Speel Draaiboek
 STR_PLAY_HEIGHTMAP                                              :{BLACK}Speel Hoogtekaart
 STR_PLAY_HEIGHTMAP_HINT                                         :{BLACK}begin 'n nuwe spel, gebruikend 'n hoogtekaart as oStart a new game, using a heightmap as landscape
 STR_QUIT_SCENARIO_QUERY                                         :{YELLOW}Is jy seker jy wil die draaiboek verlaat?
-STR_029C_QUIT_EDITOR                                            :{WHITE}Verlaat Redakteur
-STR_029D_CAN_ONLY_BE_BUILT_IN_TOWNS                             :{WHITE}...kan slegs in stede met 'n populasie van te minste 1200 gebou word
+STR_029C_QUIT_EDITOR                                            :{WHITE}Laat vaar redigeerder
+STR_029D_CAN_ONLY_BE_BUILT_IN_TOWNS                             :{WHITE}...kan slegs in dorpe met 'n populasie van te minste 1200 gebou word
 STR_029E_MOVE_THE_STARTING_DATE                                 :{BLACK}Beweeg die begin datum 1 jaar terug
 STR_029F_MOVE_THE_STARTING_DATE                                 :{BLACK}Beweeg die begin datum 1 jaar voor
-STR_02A0_ENDS_OF_BRIDGE_MUST_BOTH                               :{WHITE}...albei einde van brug moet op land wees
+STR_02A0_ENDS_OF_BRIDGE_MUST_BOTH                               :{WHITE}...albei einde van brug moet op daal wees
 STR_02A1_SMALL                                                  :{BLACK}Klein
 STR_02A2_MEDIUM                                                 :{BLACK}Middel
 STR_02A3_LARGE                                                  :{BLACK}Groot
-STR_02A4_SELECT_TOWN_SIZE                                       :{BLACK}Kies stad groote
-STR_02A5_TOWN_SIZE                                              :{YELLOW}Stad groote:
+STR_SCENARIO_EDITOR_CITY                                        :{BLACK}Stad
+STR_02A4_SELECT_TOWN_SIZE                                       :{BLACK}Kies dorp groote
+STR_02A5_TOWN_SIZE                                              :{YELLOW}Dorp groote:
 
 STR_02B6                                                        :{STRING}  -  {STRING}
-STR_02B7_SHOW_LAST_MESSAGE_OR_NEWS                              :{BLACK}Wys laaste boodskap of nuus verslag
+STR_02B7_SHOW_LAST_MESSAGE_OR_NEWS                              :{BLACK}Toon laas boodskap of nuus verslag
 STR_OFF                                                         :Af
 STR_SUMMARY                                                     :Opsomming
 STR_FULL                                                        :Vol
 STR_02BA                                                        :{SILVER}- -  {COMPANY}  - -
-STR_02BB_TOWN_DIRECTORY                                         :Stad index
-STR_02BC_VEHICLE_DESIGN_NAMES                                   :{BLACK}Voertuig ontwerp naame
+STR_02BB_TOWN_DIRECTORY                                         :Dorp gids
+STR_02BC_VEHICLE_DESIGN_NAMES                                   :{BLACK}Voertuig ontwerp name
 STR_02BD                                                        :{BLACK}{STRING}
-STR_02BE_DEFAULT                                                :Gebrekte
+STR_02BE_DEFAULT                                                :Verstek
 STR_02BF_CUSTOM                                                 :Gewoonte
-STR_02C0_SAVE_CUSTOM_NAMES                                      :{BLACK}Bewaar gewoonte naame
+STR_02C0_SAVE_CUSTOM_NAMES                                      :{BLACK}Spaar gewoonte name
 STR_02C1_VEHICLE_DESIGN_NAMES_SELECTION                         :{BLACK}Voertuig ontwerp name keuse
-STR_02C2_SAVE_CUSTOMIZED_VEHICLE                                :{BLACK}Bewaar doelgeboude voertuig ontwerp naame
+STR_02C2_SAVE_CUSTOMIZED_VEHICLE                                :{BLACK}Spaar pasgemaak voertuig ontwerp name
 
 STR_CHECKMARK                                                   :{CHECKMARK}
 ############ range for menu starts
-STR_02C3_GAME_OPTIONS                                           :Spel opsies
-STR_02C5_DIFFICULTY_SETTINGS                                    :Moeilikheid stellings
-STR_02C7_CONFIG_PATCHES                                         :Skep stukke
+STR_02C3_GAME_OPTIONS                                           :Speletjie opsies
+STR_02C5_DIFFICULTY_SETTINGS                                    :Moeite stellings
+STR_02C7_CONFIG_PATCHES                                         :Konfigureer laslappe
 STR_NEWGRF_SETTINGS                                             :Newgrf stellings
+STR_TRANSPARENCY_OPTIONS                                        :Deursigtigheid opsies
 STR_GAMEOPTMENU_0A                                              :
-STR_02CA_TOWN_NAMES_DISPLAYED                                   :{SETX 12}Stad naame vertoon
-STR_02CC_STATION_NAMES_DISPLAYED                                :{SETX 12}Stasie naame vertoon
+STR_02CA_TOWN_NAMES_DISPLAYED                                   :{SETX 12}Dorp name vertoon
+STR_02CC_STATION_NAMES_DISPLAYED                                :{SETX 12}Stasie name vertoon
 STR_02CE_SIGNS_DISPLAYED                                        :{SETX 12}Tekens vertoon
 STR_WAYPOINTS_DISPLAYED2                                        :{SETX 12}Wegpunte vertoon
 STR_02D0_FULL_ANIMATION                                         :{SETX 12}Volle animasie
-STR_02D2_FULL_DETAIL                                            :{SETX 12}Volle aanwyse
+STR_02D2_FULL_DETAIL                                            :{SETX 12}Vol aanwyse
 STR_02D4_TRANSPARENT_BUILDINGS                                  :{SETX 12}Deurskynend geboue
 STR_TRANSPARENT_SIGNS                                           :{SETX 12}Deurskynend stasie tekens
 ############ range ends here
 
 ############ range for menu starts
-STR_02D5_LAND_BLOCK_INFO                                        :Land area inligting
+STR_02D5_LAND_BLOCK_INFO                                        :Daal area informasie
 STR_02D6                                                        :
 STR_CONSOLE_SETTING                                             :Skakel troos
-STR_02D7_SCREENSHOT_CTRL_S                                      :Skermskut (Ctrl-S)
-STR_02D8_GIANT_SCREENSHOT_CTRL_G                                :Reuse Skermskut (Ctrl-G)
+STR_02D7_SCREENSHOT_CTRL_S                                      :Skermskyf (Ctrl-S)
+STR_02D8_GIANT_SCREENSHOT_CTRL_G                                :Reus Skermskyf (Ctrl-G)
 STR_02D9_ABOUT_OPENTTD                                          :Rakend 'OpenTTD'
 ############ range ends here
 
@@ -793,31 +797,31 @@
 STR_02DA_ON                                                     :{BLACK}An
 STR_02DC_DISPLAY_SUBSIDIES                                      :{BLACK}Vertoon subsidiee
 STR_02DD_SUBSIDIES                                              :Subsidiee
-STR_02DE_MAP_OF_WORLD                                           :Kaart van wêreld
+STR_02DE_MAP_OF_WORLD                                           :Werfkaart van wêreld
 STR_EXTRA_VIEW_PORT                                             :Ekstra gesigswerf
 STR_SIGN_LIST                                                   :Teken lys
-STR_02DF_TOWN_DIRECTORY                                         :Stad indeks
+STR_02DF_TOWN_DIRECTORY                                         :Dorp gids
 STR_TOWN_POPULATION                                             :{BLACK}Wereld populasie: {COMMA}
 STR_EXTRA_VIEW_PORT_TITLE                                       :{WHITE}Gesigswerf {COMMA}
-STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN                                :{BLACK}Afskryf na gesigswerf
-STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN_TT                             :{BLACK}Afskryf die lokasie van die wereldwerf na die gesigswerf
+STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN                                :{BLACK}Kopie na gesigswerf
+STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN_TT                             :{BLACK}Kopie die lokasie van die wereldwerf na die gesigswerf
 STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW                                :{BLACK}Deeg van gesigswerf
 STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW_TT                             :{BLACK}Deeg die lokasie van die gesigspunt na die hoofskerm
 
-STR_02E0_CURRENCY_UNITS                                         :{BLACK}Koers eenheide
+STR_02E0_CURRENCY_UNITS                                         :{BLACK}Koers eenhede
 STR_02E1                                                        :{BLACK}{SKIP}{STRING}
-STR_02E2_CURRENCY_UNITS_SELECTION                               :{BLACK}Koers eendheide keuse
-STR_MEASURING_UNITS                                             :{BLACK}Maatre� eenheide
+STR_02E2_CURRENCY_UNITS_SELECTION                               :{BLACK}Koers eendhede keuse
+STR_MEASURING_UNITS                                             :{BLACK}Meet eenhede
 STR_02E4                                                        :{BLACK}{SKIP}{SKIP}{STRING}
-STR_MEASURING_UNITS_SELECTION                                   :{BLACK}Maatre� eenheide keuse
+STR_MEASURING_UNITS_SELECTION                                   :{BLACK}Meet eenhede keuse
 STR_02E6_ROAD_VEHICLES                                          :{BLACK}Pad voertuie
 STR_02E7                                                        :{BLACK}{SKIP}{SKIP}{SKIP}{STRING}
 STR_02E8_SELECT_SIDE_OF_ROAD_FOR                                :{BLACK}Kies kant van pad waarop voetuie bestuur
 STR_02E9_DRIVE_ON_LEFT                                          :Bestuur op links
 STR_02EA_DRIVE_ON_RIGHT                                         :Bestuur op regs
-STR_02EB_TOWN_NAMES                                             :{BLACK}Stad naame
+STR_02EB_TOWN_NAMES                                             :{BLACK}Dorp name
 STR_02EC                                                        :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
-STR_02ED_SELECT_STYLE_OF_TOWN_NAMES                             :{BLACK}Kies styl van stad naame
+STR_02ED_SELECT_STYLE_OF_TOWN_NAMES                             :{BLACK}Kies styl van stad name
 
 STR_02F4_AUTOSAVE                                               :{BLACK}Outobewaar
 STR_02F5                                                        :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
@@ -829,38 +833,38 @@
 STR_02FB_START_A_NEW_GAME                                       :{BLACK}Begin nuwe spel
 STR_02FC_LOAD_A_SAVED_GAME                                      :{BLACK}Laai 'n bewaarde spel
 STR_02FE_CREATE_A_CUSTOMIZED_GAME                               :{BLACK}Skep 'n doelgeboude spel wêreld/draaiboek
-STR_02FF_SELECT_SINGLE_PLAYER_GAME                              :{BLACK}Kies enkel-speler spel
-STR_0300_SELECT_MULTIPLAYER_GAME                                :{BLACK}Kies veelspeler spel met 2-8 spelers
-STR_0301_DISPLAY_GAME_OPTIONS                                   :{BLACK}Vertoon spel opsies
-STR_0302_DISPLAY_DIFFICULTY_OPTIONS                             :{BLACK}Vertoon moeilikheid opsies
-STR_0303_START_A_NEW_GAME_USING                                 :{BLACK}Begin 'n nuwe spel, met 'n doelgemaakte draaiboek
-STR_0304_QUIT                                                   :{BLACK}Verlaat
-STR_0305_QUIT_OPENTTD                                           :{BLACK}Verlaat 'OpenTTD'
+STR_02FF_SELECT_SINGLE_PLAYER_GAME                              :{BLACK}Kies enkel-speler speletjie
+STR_0300_SELECT_MULTIPLAYER_GAME                                :{BLACK}Kies multispeler speletjie van 2-8 spelers
+STR_0301_DISPLAY_GAME_OPTIONS                                   :{BLACK}Vertoon speletjie opsies
+STR_0302_DISPLAY_DIFFICULTY_OPTIONS                             :{BLACK}Vertoon moeite opsies
+STR_0303_START_A_NEW_GAME_USING                                 :{BLACK}Begin 'n nuwe speletjie, met 'n pasgemaak draaiboek
+STR_0304_QUIT                                                   :{BLACK}Laat vaar
+STR_0305_QUIT_OPENTTD                                           :{BLACK}Laat vaar 'OpenTTD'
 STR_0307_OPENTTD                                                :{WHITE}OpenTTD {REV}
-STR_030D_CAN_ONLY_BE_BUILT_IN_TOWNS                             :{WHITE}...kan slegs in stede gebou word
-STR_030E_SELECT_TEMPERATE_LANDSCAPE                             :{BLACK}Kies 'gematig' landerye styl
-STR_030F_SELECT_SUB_ARCTIC_LANDSCAPE                            :{BLACK}Kies 'onder-noordpool' landerye styl
-STR_0310_SELECT_SUB_TROPICAL_LANDSCAPE                          :{BLACK}Kies 'onder-tropise' landerye styl
-STR_0311_SELECT_TOYLAND_LANDSCAPE                               :{BLACK}Kies 'speelgoedland' landerye styl
-STR_0312_FUND_CONSTRUCTION_OF_NEW                               :{BLACK}Befonds gebou van nuwe nywerheid
+STR_030D_CAN_ONLY_BE_BUILT_IN_TOWNS                             :{WHITE}...kan slegs in dorpe gebou word
+STR_030E_SELECT_TEMPERATE_LANDSCAPE                             :{BLACK}Kies 'matig' landskap styl
+STR_030F_SELECT_SUB_ARCTIC_LANDSCAPE                            :{BLACK}Kies 'onder-noordpool' landskap styl
+STR_0310_SELECT_SUB_TROPICAL_LANDSCAPE                          :{BLACK}Kies 'onder-tropise' landskap styl
+STR_0311_SELECT_TOYLAND_LANDSCAPE                               :{BLACK}Kies 'speelgoedland' landskap styl
+STR_0312_FUND_CONSTRUCTION_OF_NEW                               :{BLACK}Fonds samestelling van nuwe nywerheid
 
 ############ range for menu starts
-STR_INDUSTRY_DIR                                                :Nywerheid Indeks
-STR_0313_FUND_NEW_INDUSTRY                                      :Befonds nuwe nywerheid
+STR_INDUSTRY_DIR                                                :Nywerheid Gids
+STR_0313_FUND_NEW_INDUSTRY                                      :Fonds nuwe nywerheid
 ############ range ends here
 
-STR_0314_FUND_NEW_INDUSTRY                                      :{WHITE}Befonds nuwe nywerheid
+STR_0314_FUND_NEW_INDUSTRY                                      :{WHITE}Fonds nuwe nywerheid
 STR_JUST_STRING                                                 :{STRING}
-STR_0316_CAN_ONLY_BE_BUILT_IN_TOWNS                             :{WHITE}...kan slegs in stede gebou word
+STR_0316_CAN_ONLY_BE_BUILT_IN_TOWNS                             :{WHITE}...kan slegs in dorpe gebou word
 STR_0317_CAN_ONLY_BE_BUILT_IN_RAINFOREST                        :{WHITE}...kan slegs in reenwoud areas gebou word
 STR_0318_CAN_ONLY_BE_BUILT_IN_DESERT                            :{WHITE}...kan slegs in woestyn areas gebou word
-STR_0319_PAUSED                                                 :{YELLOW}* *  POUSEER  *  *
+STR_0319_PAUSED                                                 :{YELLOW}* *  GEPOOS  *  *
 
-STR_031B_SCREENSHOT_SUCCESSFULLY                                :{WHITE}Skermskut suksesvollig bewaar as '{STRING}'
-STR_031C_SCREENSHOT_FAILED                                      :{WHITE}Skermskut gedop!
+STR_031B_SCREENSHOT_SUCCESSFULLY                                :{WHITE}Skermskyf suksesvol gespaar as '{STRING}'
+STR_031C_SCREENSHOT_FAILED                                      :{WHITE}Skermskyf misluk!
 
-STR_0329_PURCHASE_LAND_FOR_FUTURE                               :{BLACK}Koop land vir toekomende gebruik
-STR_032F_AUTOSAVE                                               :{RED}OUTOBEWAAR
+STR_0329_PURCHASE_LAND_FOR_FUTURE                               :{BLACK}Koop daal vir toekoms gebruik
+STR_032F_AUTOSAVE                                               :{RED}OUTOSPAAR
 STR_SAVING_GAME                                                 :{RED}*  *  BEWAAR SPEL  *  *
 STR_SAVE_STILL_IN_PROGRESS                                      :{WHITE}Bewaar nog in vorder, wag asb tot dit klaar is!
 STR_0330_SELECT_EZY_STREET_STYLE                                :{BLACK}Kies 'Ezy Straat styl musiek' musiek lys
@@ -871,6 +875,11 @@
 ############ start of townname region
 STR_TOWNNAME_ORIGINAL_ENGLISH                                   :Engels (Oorspronkilik)
 STR_TOWNNAME_FRENCH                                             :Frans
+STR_TOWNNAME_GERMAN                                             :Duits
+STR_TOWNNAME_ADDITIONAL_ENGLISH                                 :Engels (addisioneel)
+STR_TOWNNAME_LATIN_AMERICAN                                     :Latyns-Amerikaans
+STR_TOWNNAME_SILLY                                              :Snaaks
+STR_TOWNNAME_SWEDISH                                            :Sweeds
 STR_TOWNNAME_DUTCH                                              :Hollands
 STR_TOWNNAME_FINNISH                                            :Finnish
 STR_TOWNNAME_POLISH                                             :Polish
@@ -881,6 +890,10 @@
 STR_TOWNNAME_ROMANIAN                                           :Romanian
 STR_TOWNNAME_CZECH                                              :Czech
 STR_TOWNNAME_SWISS                                              :Swiss
+STR_TOWNNAME_DANISH                                             :Deens
+STR_TOWNNAME_TURKISH                                            :Turks
+STR_TOWNNAME_ITALIAN                                            :Italiaans
+STR_TOWNNAME_CATALAN                                            :Catalan
 ############ end of townname region
 
 STR_CURR_GBP                                                    :Pounds ()
@@ -911,19 +924,25 @@
 STR_CURR_SKK                                                    :Slovak Koruna (SKK)
 STR_CURR_BRR                                                    :Brazilian Real (BRL)
 
-STR_CURR_CUSTOM                                                 :Gewoonte...
+STR_CURR_CUSTOM                                                 :Gebruiklike...
 
 STR_OPTIONS_LANG                                                :{BLACK}Taal
 STR_OPTIONS_LANG_CBO                                            :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
+STR_OPTIONS_LANG_TIP                                            :{BLACK}Kies die koppelvlak taal om te gebruik
 
 STR_OPTIONS_FULLSCREEN                                          :{BLACK}Volskerm
+STR_OPTIONS_FULLSCREEN_TIP                                      :{BLACK}Kies die blokkie om OpenTTD in volleskerm te speel
 
+STR_OPTIONS_RES                                                 :{BLACK}Skerm resolusie
 STR_OPTIONS_RES_CBO                                             :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
+STR_OPTIONS_RES_TIP                                             :{BLACK}Kies die skerm resolusie om te gebruik
 
+STR_OPTIONS_SCREENSHOT_FORMAT                                   :{BLACK}Skermskyf formaat
 STR_OPTIONS_SCREENSHOT_FORMAT_CBO                               :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
+STR_OPTIONS_SCREENSHOT_FORMAT_TIP                               :{BLACK}Kies die skermskyf formaat om te gebruik
 
 STR_AUTOSAVE_1_MONTH                                            :Elke maand
-STR_AUTOSAVE_FAILED                                             :{WHITE}Outobewaar gedop
+STR_AUTOSAVE_FAILED                                             :{WHITE}Outospaar misluk
 
 STR_MONTH_JAN                                                   :Januarie
 STR_MONTH_FEB                                                   :Februarie
@@ -945,147 +964,203 @@
 
 STR_PASSENGERS                                                  :passasiers
 STR_BAGS                                                        :sakke
+STR_TONS                                                        :tonne
 STR_LITERS                                                      :litres
 STR_ITEMS                                                       :items
 STR_CRATES                                                      :hokke
+STR_RES_OTHER                                                   :ander
 STR_NOTHING                                                     :
 
 
 STR_CANT_SHARE_ORDER_LIST                                       :{WHITE}Kan nie opdraglys deel nie...
-STR_CANT_COPY_ORDER_LIST                                        :{WHITE}Kan nie opdraglys afskryf nie...
-STR_END_OF_SHARED_ORDERS                                        :{SETX 10}- - Einde van Verdeelde Opdrae - -
+STR_CANT_COPY_ORDER_LIST                                        :{WHITE}Kan nie opdrag lys kopie nie...
+STR_END_OF_SHARED_ORDERS                                        :{SETX 10}- - Einde van Gedeel Opdrae - -
 
 STR_EURO_INTRODUCE                                              :{BLACK}{BIGFONT}Europees Geldelik Samesmelting!{}{}Die Euro is ingevoer as die enigste koers vir daagliks transaksies in u land!
 
 # Start of order review system.
 # DON'T ADD OR REMOVE LINES HERE
 STR_AIRCRAFT_HAS_TOO_FEW_ORDERS                                 :{WHITE}Vliegtuig {COMMA} het te min opdrae in die opgawe
-STR_AIRCRAFT_HAS_VOID_ORDER                                     :{WHITE}vliegtuig {COMMA} het 'n nietig opdrag
+STR_AIRCRAFT_HAS_VOID_ORDER                                     :{WHITE}vliegtuig {COMMA} het 'n leemte opdrag
 STR_AIRCRAFT_HAS_DUPLICATE_ENTRY                                :{WHITE}Vliegtuig {COMMA} het duplikaat opdrae
-STR_AIRCRAFT_HAS_INVALID_ENTRY                                  :{WHITE}Vliegtuig {COMMA} hen 'n swak opdrag in sy opdrae
+STR_AIRCRAFT_HAS_INVALID_ENTRY                                  :{WHITE}Vliegtuig {COMMA} hen 'n ongeldig stasie in sy opdrae
 # end of order system
 
-STR_AIRCRAFT_AUTORENEW_FAILED                                   :{WHITE}Outohernuwe gedop op vliegtuig {COMMA} (geldperk)
+STR_AIRCRAFT_AUTORENEW_FAILED                                   :{WHITE}Outohernuwe misluk op vliegtuig {COMMA} (geld perk)
 
+STR_CONFIG_PATCHES                                              :{BLACK}Konfigureer Laslappe
+STR_CONFIG_PATCHES_TIP                                          :{BLACK}Konfigureer die laslappe
+STR_CONFIG_PATCHES_CAPTION                                      :{WHITE}konfigureer Laslappe
 
 STR_CONFIG_PATCHES_OFF                                          :Af
 STR_CONFIG_PATCHES_ON                                           :Aan
 STR_CONFIG_PATCHES_VEHICLESPEED                                 :{LTBLUE}Wys voertuig spoed in die standbaan: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_BUILDONSLOPES                                :{LTBLUE}Toelaat opbou op hellings en strande: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_CATCHMENT                                    :{LTBLUE}Toelaat meer werklikheide opvanggebied groote: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_BUILDONSLOPES                                :{LTBLUE}Laattoe gebou op skuinstes en kusse: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_AUTOSLOPE                                    :{LTBLUE}Laattoe terraforming onder geboue, spoore, ens. (autoslope): {ORANGE}{STRING}
+STR_CONFIG_PATCHES_CATCHMENT                                    :{LTBLUE}Laattoe meer realisties grootte opvanggebied: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_EXTRADYNAMITE                                :{LTBLUE}Toelaat verwydering van meer stad-besite paaie, bruge, ens: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_MAMMOTHTRAINS                                :{LTBLUE}Stel in staat die gebou van baie lang treine: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_REALISTICACCEL                               :{LTBLUE}Stel in staat realistiese versnelling vir treine: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_MAMMOTHTRAINS                                :{LTBLUE}Ontsper gebou van baie lang treine: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_REALISTICACCEL                               :{LTBLUE}Ontsper realistiese versnelling vir treine: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_FORBID_90_DEG                                :{LTBLUE}Verbied triene en skepe om 90 graad draaie te maak: {ORANGE}{STRING} {LTBLUE} (benodig NPF)
-STR_CONFIG_PATCHES_JOINSTATIONS                                 :{LTBLUE}Verbind trein stasies wat langsaan gebou is: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_JOINSTATIONS                                 :{LTBLUE}sluit aan trein stasies gebou naby mekaar: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_FULLLOADANY                                  :{LTBLUE}Verlaat stasie as enige vrag vol is, as 'volle gelaai': {ORANGE}{STRING}
 STR_CONFIG_PATCHES_IMPROVEDLOAD                                 :{LTBLUE}Gebruik verebeterde laai algoritme: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_GRADUAL_LOADING                              :{LTBLUE}Laai voertuie geleidelik: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_INFLATION                                    :{LTBLUE}Inflasie: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Aflewer vrag na 'n stasie slegs as daar 'n aanvrag is:: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}Toelaat opbou van baie lank bruge: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}Toelaat gaan na depot opdrae: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}Toelaat veelvout soortgelyke nywerheide per stad: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}Nywerheide van die selfde tipe kan naby aan mekaar gebou word: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}Altyd wys lang datum in die standbaan: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_SIGNALSIDE                                   :{LTBLUE}Wys seine op die bestuur kant: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_SHOWFINANCES                                 :{LTBLUE}Wys finansies venster op die einde van die jaar: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_NEW_NONSTOP                                  :{LTBLUE}TTDPatch bestaanbaar deurgaande behandeling: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}Laattoe gaan na depot opdrae: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD             :{LTBLUE}Manual primêre nywerheid konstruksie metode: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE        :geen
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL      :as ander nywerhede
+STR_CONFIG_PATCHES_MULTIPINDTOWN                                :{LTBLUE}Laattoe vele soortgelyke nywerhede per dorp: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_SAMEINDCLOSE                                 :{LTBLUE}Nywerhede van die selfde tipe kan naby aan mekaar gebou word: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_LONGDATE                                     :{LTBLUE}Toon altyd lang datum in die standbaan: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_SIGNALSIDE                                   :{LTBLUE}Toon seine op die bestuur kant: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_SHOWFINANCES                                 :{LTBLUE}Toon finansies venster op die einde van die jaar: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_NEW_NONSTOP                                  :{LTBLUE}TTDPatch versoenbaar deurgaande hantering: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_ROADVEH_QUEUE                                :{LTBLUE}Pad voertuig toustaan (met kwantum effekte): {ORANGE}{STRING}
 STR_CONFIG_PATCHES_AUTOSCROLL                                   :{LTBLUE}Was skerm as muis by die kant is: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_BRIBE                                        :{LTBLUE}Toelaat die omkooping van plaaslike gesag: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_BRIBE                                        :{LTBLUE}Laattoe die omkooping van plaaslike raad: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ALLOW_EXCLUSIVE                              :{LTBLUE}Laattoe die koop van eksklusief vervoer regte: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ALLOW_GIVE_MONEY                             :{LTBLUE}Laattoe die stuur van geld na ander maatskappye: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NONUNIFORM_STATIONS                          :{LTBLUE}Ongelyk stasies: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_ADJACENT_STATIONS                            :{LTBLUE}Toelaat gebou van teenstandige stasies: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_NEW_PATHFINDING_ALL                          :{LTBLUE}Nuwe wêreldwyd padvind (NPF, oorbrug NTP): {ORANGE}{STRING}
+STR_CONFIG_PATCHES_FREIGHT_TRAINS                               :{LTBLUE}Gewig vermenivoud vir vrag om swaar treine te simuleer: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_STOP_ON_TOWN_ROAD                            :{LTBLUE}Laattoe skyf-deur pad stop op dorp besit paaie: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ADJACENT_STATIONS                            :{LTBLUE}Laattoe gebou van aangrensend stasies: {ORANGE}{STRING}
 
-STR_CONFIG_PATCHES_SMALL_AIRPORTS                               :{LTBLUE}Klein lughawe is altyd toegelaat: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_SMALL_AIRPORTS                               :{LTBLUE}Altyd laattoe klein lughawenst: {ORANGE}{STRING}
 
 STR_CONFIG_PATCHES_WARN_LOST_TRAIN                              :{LTBLUE}Waarsku as trein verloor is: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_ORDER_REVIEW                                 :{LTBLUE}Bespreek voertuig se opdrae: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_ORDER_REVIEW_OFF                             :nee
-STR_CONFIG_PATCHES_ORDER_REVIEW_EXDEPOT                         :ja, maar uitsluit gestopde voertuie
+STR_CONFIG_PATCHES_ORDER_REVIEW_EXDEPOT                         :ja, maar sluit uit gestop voertuie
 STR_CONFIG_PATCHES_ORDER_REVIEW_ON                              :van alle voertuie
 STR_CONFIG_PATCHES_WARN_INCOME_LESS                             :{LTBLUE}Waarsku as trein inkomste negatief is: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NEVER_EXPIRE_VEHICLES                        :{LTBLUE}Voertuie verval nooit nie: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_AUTORENEW_VEHICLE                            :{LTBLUE}Outohernuwe voertuig as hy oud raak
-STR_CONFIG_PATCHES_AUTORENEW_MONTHS                             :{LTBLUE}Outohernuwe wanner voertuig is {ORANGE}{STRING}{LTBLUE} maande voor/agter max ouderdom
+STR_CONFIG_PATCHES_AUTORENEW_MONTHS                             :{LTBLUE}Outohernuwe wanner voertuig is {ORANGE}{STRING}{LTBLUE} maande voor/agter maks ouderdom
 STR_CONFIG_PATCHES_AUTORENEW_MONEY                              :{LTBLUE}Outohernuwe minimum vereisde geld vir hernuwe: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_ERRMSG_DURATION                              :{LTBLUE}Tydgrens van fout boodskap: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_POPULATION_IN_LABEL                          :{LTBLUE}Wys stad populasie in stad naam teken: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ERRMSG_DURATION                              :{LTBLUE}Duur van fout boodskap: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_POPULATION_IN_LABEL                          :{LTBLUE}Toon dorp populasie in die dorp naam etiket: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_INVISIBLE_TREES                              :{LTBLUE}Onsigbaar boome (met deurskynend geboue): {ORANGE}{STRING}
 
-STR_CONFIG_PATCHES_LAND_GENERATOR                               :{LTBLUE}Land ontwikkelaar: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_LAND_GENERATOR                               :{LTBLUE}Land genereerder: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LAND_GENERATOR_ORIGINAL                      :Oorspronklik
 STR_CONFIG_PATCHES_LAND_GENERATOR_TERRA_GENESIS                 :TerraGenesis
-STR_CONFIG_PATCHES_OIL_REF_EDGE_DISTANCE                        :{LTBLUE}Max afstand van kant vir Olie Raffineerderye {ORANGE}{STRING}
+STR_CONFIG_PATCHES_OIL_REF_EDGE_DISTANCE                        :{LTBLUE}Maks afstand van kant vir Olie Raffineerderye {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SNOWLINE_HEIGHT                              :{LTBLUE}Sneeu lyn hoogte: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN                         :{LTBLUE}Ruheid van terrein (slegs TerraGenesis) : {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN                         :{LTBLUE}Grofheif van terrein (slegs TerraGenesis) : {ORANGE}{STRING}
 STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH             :Baie Glad
 STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN_SMOOTH                  :Glad
-STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN_ROUGH                   :Ru
-STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN_VERY_ROUGH              :Baie Ru
+STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN_ROUGH                   :Rof
+STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN_VERY_ROUGH              :Baie Rof
 STR_CONFIG_PATCHES_TREE_PLACER                                  :{LTBLUE}Boom plaas algoritme: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_TREE_PLACER_NONE                             :Geen
 STR_CONFIG_PATCHES_TREE_PLACER_ORIGINAL                         :Oorspronklik
-STR_CONFIG_PATCHES_TREE_PLACER_IMPROVED                         :Verbeterde
+STR_CONFIG_PATCHES_TREE_PLACER_IMPROVED                         :Verbeter
 STR_CONFIG_PATCHES_HEIGHTMAP_ROTATION                           :{LTBLUE}Hoogtekaart rotasie: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_SE_FLAT_WORLD_HEIGHT                         :{LTBLUE}Die hoogtevlak 'n platte landerye kaart kry: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE         :Teller vooruit
+STR_CONFIG_PATCHES_HEIGHTMAP_ROTATION_CLOCKWISE                 :Vooruit
+STR_CONFIG_PATCHES_SE_FLAT_WORLD_HEIGHT                         :{LTBLUE}Die hoogte vlak 'n plat draaiboek werfkaart word: {ORANGE}{STRING}
 
-STR_CONFIG_PATCHES_STATION_SPREAD                               :{LTBLUE}Max stasie omvang: {ORANGE}{STRING} {RED}Waarskuwing: Ho�stelling vertraag spel
+STR_CONFIG_PATCHES_STATION_SPREAD                               :{LTBLUE}Maks stasie gesprei: {ORANGE}{STRING} {RED}Waarskuwing: hoë stel vertraag speletjie
 STR_CONFIG_PATCHES_SERVICEATHELIPAD                             :{LTBLUE}Versien helikopters by helihawes outomaties: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LINK_TERRAFORM_TOOLBAR                       :{LTBLUE}Verbind landereye werktuigbaan na spoor/pad/water/lughawe werktuigbaan: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_REVERSE_SCROLLING                            :{LTBLUE}Omkeer rol rigting: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_LIVERIES                                     :{LTBLUE}Wys maatskappy lewerye: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_SMOOTH_SCROLLING                             :{LTBLUE}Versag kykpoort rollees: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_MEASURE_TOOLTIP                              :{LTBLUE}Toon 'n meting wanneer jy verskeie bou-gereedskap gebruik: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_LIVERIES                                     :{LTBLUE}Toon maatskappy lewerye: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LIVERIES_NONE                                :Geen
 STR_CONFIG_PATCHES_LIVERIES_OWN                                 :Eie maatskappy
 STR_CONFIG_PATCHES_LIVERIES_ALL                                 :Alle maatskappye
-STR_CONFIG_PATCHES_PREFER_TEAMCHAT                              :{LTBLUE}Verkies span gesels met <ENTER>: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_PREFER_TEAMCHAT                              :{LTBLUE}Verkies span klets met <ENTER>: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_SCROLLWHEEL_OFF                              :Af
+STR_CONFIG_PATCHES_SCROLLWHEEL_MULTIPLIER                       :{LTBLUE}Werfkaart rolwiel spoed: {ORANGE}{STRING}
 
+STR_CONFIG_PATCHES_RIGHT_MOUSE_BTN_EMU                          :{LTBLUE}Regs-kliek emulasie: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_RIGHT_MOUSE_BTN_EMU_COMMAND                  :Command-kliek
+STR_CONFIG_PATCHES_RIGHT_MOUSE_BTN_EMU_CONTROL                  :Control-kliek
+STR_CONFIG_PATCHES_RIGHT_MOUSE_BTN_EMU_OFF                      :Af
 
+STR_CONFIG_PATCHES_PAUSE_ON_NEW_GAME                            :{LTBLUE}Outomaties pouse wanneer om te begin 'n nuwe speletjie: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_ADVANCED_VEHICLE_LISTS                       :{LTBLUE}Gebruik die voorloopende voertuiglys: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_ADVANCED_VEHICLE_LISTS_OFF                   :Af
 STR_CONFIG_PATCHES_ADVANCED_VEHICLE_LISTS_OWN                   :Eie maatskappy
 STR_CONFIG_PATCHES_ADVANCED_VEHICLE_LISTS_ALL                   :Alle maatskappye
+STR_CONFIG_PATCHES_LOADING_INDICATORS                           :{LTBLUE}Gebruik laai aanwysers: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_TIMETABLE_ALLOW                              :{LTBLUE}Ontsper timetabling vir voertuie: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_TIMETABLE_IN_TICKS                           :{LTBLUE}Toon rooster in ticks liewer as dae: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE                            :{LTBLUE}Verstek spoor tipe (na nuwe spel/spel laai): {ORANGE}{STRING}
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_RAIL                       :Gewone Spoor
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_ELRAIL                     :Elektrifiseerde Spoor
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MONORAIL                   :Eenspoor
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MAGLEV                     :Maglev
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_FIRST                      :Eers beskikbaar
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_LAST                       :Laas beskikbaar
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MOST_USED                  :Meeste gebruik
 
+STR_CONFIG_PATCHES_ALWAYS_BUILD_INFRASTRUCTURE                  :{LTBLUE}Toon gebou gereedskap wanneer geen geskik voertuie is beskikbaar : {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_TRAINS                                   :{LTBLUE}Max treine per speler: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_ROADVEH                                  :{LTBLUE}Max pad voertuie per speler: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_AIRCRAFT                                 :{LTBLUE}Max vliegtuie per speler: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_SHIPS                                    :{LTBLUE}Max skepe per speler: {ORANGE}{STRING}
 
-STR_CONFIG_PATCHES_AI_BUILDS_TRAINS                             :{LTBLUE}Vermink treine vir rekenaar: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_AI_BUILDS_ROADVEH                            :{LTBLUE}Vermink pad voertuie vir rekenaar: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_AI_BUILDS_AIRCRAFT                           :{LTBLUE}Vermink vliegtuie vir rekenaar: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_AI_BUILDS_SHIPS                              :{LTBLUE}Vermink skepe vir rekenaar: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_AI_BUILDS_TRAINS                             :{LTBLUE}Sper treine vir rekenaar: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_AI_BUILDS_ROADVEH                            :{LTBLUE}Sper pad voertuie vir rekenaar: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_AI_BUILDS_AIRCRAFT                           :{LTBLUE}Sper vliegtuie vir rekenaar: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_AI_BUILDS_SHIPS                              :{LTBLUE}Sper skepe vir rekenaar: {ORANGE}{STRING}
 
-STR_CONFIG_PATCHES_AINEW_ACTIVE                                 :{LTBLUE}Stel nuwe AI (alpha) in staat: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_AI_IN_MULTIPLAYER                            :{LTBLUE}Toelaat AIe in veelspeeler (proefondervindelik): {ORANGE}{STRING}
+STR_CONFIG_PATCHES_AINEW_ACTIVE                                 :{LTBLUE}Ontsper nuwe AI (alpha) in staat: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_AI_IN_MULTIPLAYER                            :{LTBLUE}Laattoe AIe in multispeler (eksperimentele): {ORANGE}{STRING}
 
-STR_CONFIG_PATCHES_SERVINT_TRAINS                               :{LTBLUE}Gebrekte versien tussentyd vir treine: {ORANGE}{STRING} dae/%
-STR_CONFIG_PATCHES_SERVINT_TRAINS_DISABLED                      :{LTBLUE}Gebrekte versien tussentyd vir treine: {ORANGE}gestrem
-STR_CONFIG_PATCHES_SERVINT_ROADVEH                              :{LTBLUE}Gebrekte versien tussentyd vir pad voertuie: {ORANGE}{STRING} dae/%
-STR_CONFIG_PATCHES_SERVINT_ROADVEH_DISABLED                     :{LTBLUE}Gebrekte versien tussentyd vir pad voertuie: {ORANGE}gestrem
+STR_CONFIG_PATCHES_SERVINT_TRAINS                               :{LTBLUE}Verstek diens pouse vir treine: {ORANGE}{STRING} dae/%
+STR_CONFIG_PATCHES_SERVINT_TRAINS_DISABLED                      :{LTBLUE}Verstek diens pouse vir treine: {ORANGE}strem
+STR_CONFIG_PATCHES_SERVINT_ROADVEH                              :{LTBLUE}Verstek diens pouse vir pad voertuie: {ORANGE}{STRING} dae/%
+STR_CONFIG_PATCHES_SERVINT_ROADVEH_DISABLED                     :{LTBLUE}Verstek diens pouse vir pad voertuie: {ORANGE}strem
 STR_CONFIG_PATCHES_SERVINT_AIRCRAFT                             :{LTBLUE}Gebrekte versien tussentyd vir vlietuie: {ORANGE}{STRING} dae/%
 STR_CONFIG_PATCHES_SERVINT_AIRCRAFT_DISABLED                    :{LTBLUE}Gebrekte versien tussentyd vir vlietuie: {ORANGE}gestrem
-STR_CONFIG_PATCHES_SERVINT_SHIPS                                :{LTBLUE}Gebrekte versien tussentyd vir skepe: {ORANGE}{STRING} dae/%
-STR_CONFIG_PATCHES_SERVINT_SHIPS_DISABLED                       :{LTBLUE}Gebrekte versien tussentyd vir skepe: {ORANGE}gestrem
-STR_CONFIG_PATCHES_NOSERVICE                                    :{LTBLUE}Gestrem versiening wanneer oponthoude is na geen gestel: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_SERVINT_SHIPS                                :{LTBLUE}Verstek diens pouse vir skepe: {ORANGE}{STRING} dae/%
+STR_CONFIG_PATCHES_SERVINT_SHIPS_DISABLED                       :{LTBLUE}Verstek diens pouse vir skepe: {ORANGE}strem
+STR_CONFIG_PATCHES_NOSERVICE                                    :{LTBLUE}Sper diens wanneer komplikasies is na geen gestel: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_WAGONSPEEDLIMITS                             :{LTBLUE}Stel wa spoed limite in staak: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_DISABLE_ELRAILS                              :{LTBLUE}Gestrem elektriese spoore: {ORANGE}{STRING}
 
 STR_CONFIG_PATCHES_COLORED_NEWS_YEAR                            :{LTBLUE}Gekleurde nuus verskyn in: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_STARTING_YEAR                                :{LTBLUE}Begins datum: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_ENDING_YEAR                                  :{LTBLUE}Eindig spel in: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_SMOOTH_ECONOMY                               :{LTBLUE}Stel vloeiende ekonomie in staak (meer, kleiner veranderings)
-STR_CONFIG_PATCHES_ALLOW_SHARES                                 :{LTBLUE}Toelaat deele aankoop van ander maatskappye
-STR_CONFIG_PATCHES_DRAG_SIGNALS_DENSITY                         :{LTBLUE}Wanneer sleeping, plaas seine elke: {ORANGE}{STRING} teel(e)
+STR_CONFIG_PATCHES_STARTING_YEAR                                :{LTBLUE}Jaar om te begin: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ENDING_YEAR                                  :{LTBLUE}Eindig speletjie in: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_SMOOTH_ECONOMY                               :{LTBLUE}Ontsper versag ekonomie (meer, kleiner veranderings)
+STR_CONFIG_PATCHES_ALLOW_SHARES                                 :{LTBLUE}Laattoe deele aankoop van ander maatskappye
+STR_CONFIG_PATCHES_DRAG_SIGNALS_DENSITY                         :{LTBLUE}Wanneer sleep, plaas seine elke: {ORANGE}{STRING} teel(e)
 STR_CONFIG_PATCHES_SEMAPHORE_BUILD_BEFORE_DATE                  :{LTBLUE}Outomaties bou semaphores voor: {ORANGE}{STRING}
 
+STR_CONFIG_PATCHES_TOWN_LAYOUT_INVALID                          :{WHITE}Die dorp uitleg "niks meer paaie" is nie geldig in die draaiboek redigeerder
+STR_CONFIG_PATCHES_TOWN_LAYOUT                                  :{LTBLUE}Kies dorp-pad uitleg: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_TOWN_LAYOUT_NO_ROADS                         :niks meer paaie
+STR_CONFIG_PATCHES_TOWN_LAYOUT_DEFAULT                          :verstek
+STR_CONFIG_PATCHES_TOWN_LAYOUT_BETTER_ROADS                     :beter paaie
+STR_CONFIG_PATCHES_TOWN_LAYOUT_2X2_GRID                         :2x2 grid
+STR_CONFIG_PATCHES_TOWN_LAYOUT_3X3_GRID                         :3x3 grid
 
 STR_CONFIG_PATCHES_TOOLBAR_POS                                  :{LTBLUE}Posisie van hoof werktuigbaan: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_TOOLBAR_POS_LEFT                             :Links
 STR_CONFIG_PATCHES_TOOLBAR_POS_CENTER                           :Senter
 STR_CONFIG_PATCHES_TOOLBAR_POS_RIGHT                            :Regs
 STR_CONFIG_PATCHES_SNAP_RADIUS                                  :{LTBLUE}Venster slag straal: {ORANGE}{STRING} px
-STR_CONFIG_PATCHES_SNAP_RADIUS_DISABLED                         :{LTBLUE}Venster slag straal: {ORANGE}gestrem
+STR_CONFIG_PATCHES_SNAP_RADIUS_DISABLED                         :{LTBLUE}Venster slag straal: {ORANGE}strem
+STR_CONFIG_PATCHES_TOWN_GROWTH                                  :{LTBLUE}Dorp groei spoed: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_TOWN_GROWTH_NONE                             :Geen
+STR_CONFIG_PATCHES_TOWN_GROWTH_SLOW                             :Stadig
+STR_CONFIG_PATCHES_TOWN_GROWTH_NORMAL                           :Normaal
+STR_CONFIG_PATCHES_TOWN_GROWTH_FAST                             :Vinnig
+STR_CONFIG_PATCHES_TOWN_GROWTH_VERY_FAST                        :Baie vinnig
+STR_CONFIG_PATCHES_LARGER_TOWNS                                 :{LTBLUE}Gedeelte van dorpe wat sal stede word: {ORANGE}1 in {STRING}
+STR_CONFIG_PATCHES_LARGER_TOWNS_DISABLED                        :{LTBLUE}Gedeelte van dorpe wat sal stede word: {ORANGE}None
+STR_CONFIG_PATCHES_CITY_SIZE_MULTIPLIER                         :{LTBLUE}Aanvanklike stad grootte multiplier: {ORANGE}{STRING}
+STR_CONFIG_MODIFIED_ROAD_REBUILD                                :{LTBLUE}Verwyder verspot pad-elemente gedurende die pad konstruksie
 
+STR_CONFIG_PATCHES_GUI                                          :{BLACK}koppelvlak
 STR_CONFIG_PATCHES_CONSTRUCTION                                 :{BLACK}Konstruksie
 STR_CONFIG_PATCHES_VEHICLES                                     :{BLACK}Voertuie
 STR_CONFIG_PATCHES_STATIONS                                     :{BLACK}Stasies
@@ -1096,25 +1171,25 @@
 STR_CONFIG_PATCHES_INT32                                        :{NUM}
 STR_CONFIG_PATCHES_CURRENCY                                     :{CURRENCY}
 
-STR_CONFIG_PATCHES_QUERY_CAPT                                   :{WHITE}Verander stelling waarde
-STR_CONFIG_PATCHES_SERVICE_INTERVAL_INCOMPATIBLE                :{WHITE}Party of almal van die gebrekte versien tussentyd(e) onder is onbestaanbaar met die verkiesde stelling! 5-90% en 30-800 dae is geldig
+STR_CONFIG_PATCHES_QUERY_CAPT                                   :{WHITE}Verander stel waarde
+STR_CONFIG_PATCHES_SERVICE_INTERVAL_INCOMPATIBLE                :{WHITE}Sommige of almal van die verstek diens pouse(s) onder is onversoenbaar met die gekies stel! 5-90% en 30-800 dae is geldig
 STR_CONFIG_PATCHES_YAPF_SHIPS                                   :{LTBLUE}Gebruik YAPF vir skepe: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_YAPF_ROAD                                    :{LTBLUE}Gebruik YAPF vir pad voertuie: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_YAPF_RAIL                                    :{LTBLUE}Gebruik YAPF vir treine: {ORANGE}{STRING}
 
 
-STR_CHEATS                                                      :{WHITE}Bedriege
-STR_CHEATS_TIP                                                  :{BLACK}Tikblokkies aanwys as jy die bedreig vroe� gebruik het
-STR_CHEATS_WARNING                                              :{BLACK}Waarskuwing! Jy gaan omtrent jou genoote mededingers verrai. Hou in gemoed dat so 'n skande sal vir ewig onhout word.
+STR_CHEATS                                                      :{WHITE}Kullery
+STR_CHEATS_TIP                                                  :{BLACK}Tikblokkies wys ann as jy die bedreig vroeë gebruik het
+STR_CHEATS_WARNING                                              :{BLACK}Waarskuwing! U staan op die punt om jou mededinger te verrai. Hou in gedagte dat so 'n skande sal vir ewigheid onthou word.
 STR_CHEAT_MONEY                                                 :{LTBLUE}Vermeerder geld by {CURRENCY}
 STR_CHEAT_CHANGE_PLAYER                                         :{LTBLUE}Speel as speler: {ORANGE}{COMMA}
-STR_CHEAT_EXTRA_DYNAMITE                                        :{LTBLUE}Tower stootskraper (uitwis nywerheide, onbeweegbares): {ORANGE}{STRING}
+STR_CHEAT_EXTRA_DYNAMITE                                        :{LTBLUE}Tower stootskraper (uitwis nywerhede, onbeweegbares): {ORANGE}{STRING}
 STR_CHEAT_CROSSINGTUNNELS                                       :{LTBLUE}Tonnels mag vir mekaar kruis: {ORANGE}{STRING}
-STR_CHEAT_BUILD_IN_PAUSE                                        :{LTBLUE}Bou terwyl in pouseer: {ORANGE}{STRING}
+STR_CHEAT_BUILD_IN_PAUSE                                        :{LTBLUE}Bou terwyl in pouse modus: {ORANGE}{STRING}
 STR_CHEAT_NO_JETCRASH                                           :{LTBLUE}Straalvliegtuie sal nie (dikwels) op klein lughawe bots nie: {ORANGE} {STRING}
 STR_CHEAT_SWITCH_CLIMATE                                        :{LTBLUE}Skakel klimaat: {ORANGE} {STRING}
 STR_CHEAT_CHANGE_DATE                                           :{LTBLUE}Verander datum: {ORANGE} {DATE_SHORT}
-STR_CHEAT_SETUP_PROD                                            :{LTBLUE}Stel modifikasie van produksie waarde in staak: {ORANGE}{STRING}
+STR_CHEAT_SETUP_PROD                                            :{LTBLUE}Ontsper modifisering van produksie waardes: {ORANGE}{STRING}
 
 STR_HEADING_FOR_WAYPOINT                                        :{LTBLUE}Op pad na {WAYPOINT}
 STR_HEADING_FOR_WAYPOINT_VEL                                    :{LTBLUE}Op pad na {WAYPOINT}, {VELOCITY}
@@ -1137,13 +1212,13 @@
 STR_NO_TOWN_IN_SCENARIO                                         :{WHITE}...daar is geen stad in die draaiboek
 
 STR_GENERATE_RANDOM_LANDSCAPE                                   :{WHITE}Is jy seker jy wil 'n lukraake landeryke skep?
-STR_MANY_RANDOM_TOWNS                                           :{BLACK}Baie lukraak stede
-STR_MANY_RANDOM_INDUSTRIES                                      :Baie luraak nyweheide
-STR_CAN_T_GENERATE_INDUSTRIES                                   :{WHITE}Kan nie nywerheide ontwikkel nie...
+STR_MANY_RANDOM_TOWNS                                           :{BLACK}Baie lukraak dorpe
+STR_MANY_RANDOM_INDUSTRIES                                      :Baie luraak nywehede
+STR_CAN_T_GENERATE_INDUSTRIES                                   :{WHITE}Kan nie nywerhede opwek nie...
 
 STR_LANDSCAPING_TOOLBAR_TIP                                     :{BLACK}Oppe die landargitekteur werktuigbaan om land te verhoog/verlaag, boome beplant, ens.
 STR_LANDSCAPING_TOOLBAR                                         :{WHITE}Landargitekteur
-STR_LEVEL_LAND_TOOLTIP                                          :{BLACK}Vlakte land
+STR_LEVEL_LAND_TOOLTIP                                          :{BLACK}Vlakte daal
 
 
 
@@ -1157,6 +1232,7 @@
 
 STR_BUOY_IS_IN_USE                                              :{WHITE}...baken is in gebruik!
 
+STR_LANDINFO_COORDS                                             :{BLACK}Koördineer: {LTBLUE}{NUM}x{NUM}x{NUM} ({STRING})
 
 STR_CANT_REMOVE_PART_OF_STATION                                 :{WHITE}Kan nie deel van stasie verwyder nie...
 STR_CANT_CONVERT_RAIL                                           :{WHITE}Kan nie spoor tipe hier verdoel nie...
@@ -1169,43 +1245,43 @@
 STR_FAST_FORWARD                                                :{BLACK}Vinnig vooruit die spel
 STR_MESSAGE_HISTORY                                             :{WHITE}Boodskap Geskidenis
 STR_MESSAGE_HISTORY_TIP                                         :{BLACK}'n Lys van al die onlangs nuus boodskappe
-STR_MESSAGES_DISABLE_ALL                                        :{BLACK}Gestrem alle
-STR_MESSAGES_ENABLE_ALL                                         :{BLACK}Stel alle in staak
+STR_MESSAGES_DISABLE_ALL                                        :{BLACK}Sper alle
+STR_MESSAGES_ENABLE_ALL                                         :{BLACK}Ontsper alle
 
-STR_CONSTRUCT_COAL_MINE_TIP                                     :{BLACK}Bou Steenkool Myn
+STR_CONSTRUCT_COAL_MINE_TIP                                     :{BLACK}Bou Kool Myn
 STR_CONSTRUCT_FOREST_TIP                                        :{BLACK}Wout Beplant
 STR_CONSTRUCT_OIL_RIG_TIP                                       :{BLACK}Bou Olieboor
-STR_CONSTRUCT_FARM_TIP                                          :{BLACK}Befonds Plaas
+STR_CONSTRUCT_FARM_TIP                                          :{BLACK}Fonds Boerdery
 STR_CONSTRUCT_COPPER_ORE_MINE_TIP                               :{BLACK}Bou Koper Erts Myn
 STR_CONSTRUCT_OIL_WELLS_TIP                                     :{BLACK}Boor vir Olie
 STR_CONSTRUCT_GOLD_MINE_TIP                                     :{BLACK}Bou Goud Myn
 STR_CONSTRUCT_DIAMOND_MINE_TIP                                  :{BLACK}Bou Diamant Myn
 STR_CONSTRUCT_IRON_ORE_MINE_TIP                                 :{BLACK}Bou Yster Erts Myn
-STR_CONSTRUCT_FRUIT_PLANTATION_TIP                              :{BLACK}Befonds Vrugte Plantasie
-STR_CONSTRUCT_RUBBER_PLANTATION_TIP                             :{BLACK}Befonds Gomlastiek Plantasie
-STR_CONSTRUCT_WATER_SUPPLY_TIP                                  :{BLACK}Befonds Water Lewering
+STR_CONSTRUCT_FRUIT_PLANTATION_TIP                              :{BLACK}Fonds Vrugte Plantasie
+STR_CONSTRUCT_RUBBER_PLANTATION_TIP                             :{BLACK}Fonds Gomlastiek Plantasie
+STR_CONSTRUCT_WATER_SUPPLY_TIP                                  :{BLACK}Fonds Water Verskaf
 STR_CONSTRUCT_COTTON_CANDY_TIP                                  :{BLACK}Beplant Spookasem Woud
-STR_CONSTRUCT_BATTERY_FARM_TIP                                  :{BLACK}Befonds Battery Plaas
+STR_CONSTRUCT_BATTERY_FARM_TIP                                  :{BLACK}Befonds Battery Boerdery
 STR_CONSTRUCT_COLA_WELLS_TIP                                    :{BLACK}Boor vir Cola
-STR_CONSTRUCT_PLASTIC_FOUNTAINS_TIP                             :{BLACK}Befonds Plastiek Fonteine
-STR_CONSTRUCT_BUBBLE_GENERATOR_TIP                              :{BLACK}Bou Borrel Ontwikkelaar
-STR_CONSTRUCT_TOFFEE_QUARRY_TIP                                 :{BLACK}Befonds Tameletjie Prooi
+STR_CONSTRUCT_PLASTIC_FOUNTAINS_TIP                             :{BLACK}Fonds Plastiek Fonteine
+STR_CONSTRUCT_BUBBLE_GENERATOR_TIP                              :{BLACK}Bou Borrel Genereerder
+STR_CONSTRUCT_TOFFEE_QUARRY_TIP                                 :{BLACK}Fonds Tameletjie Prooi
 STR_CONSTRUCT_SUGAR_MINE_TIP                                    :{BLACK}Bou Suiker Myn
 
-STR_INDUSTRYDIR_CAPTION                                         :{WHITE}Nywerheide
+STR_INDUSTRYDIR_CAPTION                                         :{WHITE}Nywerhede
 STR_INDUSTRYDIR_ITEM                                            :{ORANGE}{INDUSTRY}{BLACK} ({CARGO}){YELLOW} ({COMMA}% uitgevoer)
 STR_INDUSTRYDIR_ITEM_TWO                                        :{ORANGE}{INDUSTRY}{BLACK} ({CARGO}/{CARGO}){YELLOW} ({COMMA}%/{COMMA}% uitgevoer)
 STR_INDUSTRYDIR_ITEM_NOPROD                                     :{ORANGE}{INDUSTRY}
 
 STR_INDUSTRY_TOO_CLOSE                                          :{WHITE}...te naby aan 'n ander nywerheid
 
-STR_CONFIG_PATCHES_SERVINT_ISPERCENT                            :{LTBLUE}Versien tussentye is in persente: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_SERVINT_ISPERCENT                            :{LTBLUE}Diens pouse is in persente: {ORANGE}{STRING}
 STR_CONFIG_GAME_PRODUCTION                                      :{WHITE}Verander produksie
 
 
 ############ network gui strings
 
-STR_NETWORK_MULTIPLAYER                                         :{WHITE}Veelspeler
+STR_NETWORK_MULTIPLAYER                                         :{WHITE}Multispeler
 
 STR_NETWORK_PLAYER_NAME                                         :{BLACK}Speler naam:
 STR_NETWORK_ENTER_NAME_TIP                                      :{BLACK}Die is die naam waarmee ander spelers sal jou aanwys
@@ -1216,25 +1292,25 @@
 STR_NETWORK_START_SERVER_TIP                                    :{BLACK}Begin u eie bediender
 
 STR_NETWORK_GAME_NAME                                           :{BLACK}Naam
-STR_NETWORK_GAME_NAME_TIP                                       :{BLACK}Naam van die spel
+STR_NETWORK_GAME_NAME_TIP                                       :{BLACK}Naam van die speletjie
 STR_NETWORK_INFO_ICONS_TIP                                      :{BLACK}Taal, bediender verwerking, ens.
-STR_NETWORK_CLICK_GAME_TO_SELECT                                :{BLACK}kliek 'n naam op die lys om dit te kies
+STR_NETWORK_CLICK_GAME_TO_SELECT                                :{BLACK}Kliek 'n speletjie van die lys om dit te selekteer
 
-STR_NETWORK_FIND_SERVER                                         :{BLACK}Versoek bediender
-STR_NETWORK_FIND_SERVER_TIP                                     :{BLACK}Versoek netwerk vir 'n bediender
+STR_NETWORK_FIND_SERVER                                         :{BLACK}Versoek verskaffer
+STR_NETWORK_FIND_SERVER_TIP                                     :{BLACK}Versoek netwerk vir 'n verskaffer
 STR_NETWORK_ADD_SERVER                                          :{BLACK}Byvoeg Bediender
-STR_NETWORK_ADD_SERVER_TIP                                      :{BLACK}Byvoeg 'n bediender na die lys wat sal altyd nagaan vir lopende spele
+STR_NETWORK_ADD_SERVER_TIP                                      :{BLACK}Voeg 'n verskaffer tot die lys wat sal altyd wees gemerk vir loopende speletjies.
 STR_NETWORK_ENTER_IP                                            :{BLACK}Invoeg die adres van die gasheer
 
 STR_NETWORK_GENERAL_ONLINE                                      :{BLACK}{COMMA}/{COMMA} - {COMMA}/{COMMA}
 STR_NETWORK_CLIENTS_CAPTION                                     :{BLACK}Kliente
-STR_NETWORK_CLIENTS_CAPTION_TIP                                 :{BLACK}Kliente oplyn / Kliente max{}Maatskappye oplyn / Maatskappye max
-STR_NETWORK_GAME_INFO                                           :{SILVER}SPEL INLIGTING
+STR_NETWORK_CLIENTS_CAPTION_TIP                                 :{BLACK}Kliente oplyn / Kliente maks{}Maatskappye oplyn / Maatskappye maks
+STR_NETWORK_GAME_INFO                                           :{SILVER}SPEL INFORMASIE
 STR_ORANGE                                                      :{ORANGE}{STRING}
 STR_NETWORK_CLIENTS                                             :{SILVER}Kliente:  {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
 STR_NETWORK_LANGUAGE                                            :{SILVER}Taal:  {WHITE}{STRING}
 STR_NETWORK_TILESET                                             :{SILVER}Blokkiestel:  {WHITE}{STRING}
-STR_NETWORK_MAP_SIZE                                            :{SILVER}Kaart groote:  {WHITE}{COMMA}x{COMMA}
+STR_NETWORK_MAP_SIZE                                            :{SILVER}Werfkaart groote:  {WHITE}{COMMA}x{COMMA}
 STR_NETWORK_SERVER_VERSION                                      :{SILVER}Bediender hersiening:  {WHITE}{STRING}
 STR_NETWORK_SERVER_ADDRESS                                      :{SILVER}Bediender adres:  {WHITE}{STRING} : {NUM}
 STR_NETWORK_START_DATE                                          :{SILVER}Begin datum:  {WHITE}{DATE_SHORT}
@@ -1243,6 +1319,7 @@
 STR_NETWORK_SERVER_OFFLINE                                      :{SILVER}BEDIENDER AFLYN
 STR_NETWORK_SERVER_FULL                                         :{SILVER}BEDIENDER VOL
 STR_NETWORK_VERSION_MISMATCH                                    :{SILVER}HERSIENING ONGELYK
+STR_NETWORK_GRF_MISMATCH                                        :{SILVER}NEWGRF MISPAS
 
 STR_NETWORK_JOIN_GAME                                           :{BLACK}Verbind spel
 
@@ -1250,39 +1327,67 @@
 STR_NETWORK_START_GAME_WINDOW                                   :{WHITE}Begin nuwe veelspeler spel
 
 STR_NETWORK_NEW_GAME_NAME                                       :{BLACK}Spel naam:
-STR_NETWORK_NEW_GAME_NAME_TIP                                   :{BLACK}Die spel naam sal vertoon word na ander spelers in die veelspeler keuse
+STR_NETWORK_NEW_GAME_NAME_TIP                                   :{BLACK}Die spel naam sal vertoon word na ander spelers in die multispeler keuse
 STR_NETWORK_SET_PASSWORD                                        :{BLACK}Stel wagwoord
 STR_NETWORK_PASSWORD_TIP                                        :{BLACK}Beskerm jou spel met 'n wagwoord as jy wil dit nie publieke toepassing laat wees nie
 STR_NETWORK_SELECT_MAP                                          :{BLACK}Kies 'n kaart
 STR_NETWORK_SELECT_MAP_TIP                                      :{BLACK}Watter kaart wil jy speel?
+STR_NETWORK_LAN_INTERNET_COMBO                                  :{BLACK}{SKIP}{STRING}
 STR_NETWORK_LAN                                                 :LAN
 STR_NETWORK_INTERNET                                            :Internet
 STR_NETWORK_LAN_INTERNET                                        :LAN / Internet
 STR_NETWORK_INTERNET_ADVERTISE                                  :Internet (adverteer)
-STR_NETWORK_NUMBER_OF_CLIENTS                                   :{BLACK}Max kliente:
+STR_NETWORK_CLIENTS_SELECT                                      :{BLACK}{SKIP}{SKIP}{NUM} Klient{P "" e}
+STR_NETWORK_NUMBER_OF_CLIENTS                                   :{BLACK}Maks kliente:
 STR_NETWORK_NUMBER_OF_CLIENTS_TIP                               :{BLACK}Kies die maksimum nommer van kielnte. Alle gleufe hoef nie om vol te wees nie
-STR_NETWORK_NUMBER_OF_COMPANIES                                 :{BLACK}Max maatskappye:
-STR_NETWORK_NUMBER_OF_COMPANIES_TIP                             :{BLACK}Beperk die bedinder na 'n sekere bedrag van maatskappye
-STR_NETWORK_NUMBER_OF_SPECTATORS                                :{BLACK}Max aanskouers:
-STR_NETWORK_NUMBER_OF_SPECTATORS_TIP                            :{BLACK}Beperk die bediender na 'n sekere bedrag van aanskouers
+STR_NETWORK_COMPANIES_SELECT                                    :{BLACK}{SKIP}{SKIP}{SKIP}{NUM} Maatskap{P py pye}
+STR_NETWORK_NUMBER_OF_COMPANIES                                 :{BLACK}Maks maatskappye:
+STR_NETWORK_NUMBER_OF_COMPANIES_TIP                             :{BLACK}Beperk die verskaffer na 'n sekere bedrag van maatskappye
+STR_NETWORK_NUMBER_OF_SPECTATORS                                :{BLACK}Maks aanskouers:
+STR_NETWORK_NUMBER_OF_SPECTATORS_TIP                            :{BLACK}Beperk die verskaffer na 'n sekere bedrag van aanskouers
 STR_NETWORK_LANGUAGE_SPOKEN                                     :{BLACK}Taal gepraat:
-STR_NETWORK_LANGUAGE_TIP                                        :{BLACK}Ander spelers sal weet watter taal op die bediender gepraat is
+STR_NETWORK_LANGUAGE_TIP                                        :{BLACK}Ander spelers sal weet watter taal op die verskaffer gepraat is
 STR_NETWORK_START_GAME                                          :{BLACK}Begin Spel
 STR_NETWORK_START_GAME_TIP                                      :{BLACK}Begin 'n nuwe netwerk spel van 'n lukraak kaart, of draaiboek
-STR_NETWORK_LOAD_GAME                                           :{BLACK}Laai Spel
-STR_NETWORK_LOAD_GAME_TIP                                       :{BLACK}Vervolg 'n vroe� bewaarde veelspeler spel (wees seker om te verbind as die korrekte speler)
+STR_NETWORK_LOAD_GAME                                           :{BLACK}Laai Speletjie
+STR_NETWORK_LOAD_GAME_TIP                                       :{BLACK}Hervat 'n vroeër gespaar multispeler speletjie (wees seker om te konnekteer as die korrekte speler)
 
 ############ Leave those lines in this order!!
 STR_NETWORK_LANG_ANY                                            :Enige
 STR_NETWORK_LANG_ENGLISH                                        :Engels
 STR_NETWORK_LANG_GERMAN                                         :Duits
 STR_NETWORK_LANG_FRENCH                                         :Frans
+STR_NETWORK_LANG_BRAZILIAN                                      :Brazilian
+STR_NETWORK_LANG_BULGARIAN                                      :Bulgarian
+STR_NETWORK_LANG_CHINESE                                        :Chinese
+STR_NETWORK_LANG_CZECH                                          :Czech
+STR_NETWORK_LANG_DANISH                                         :Danish
+STR_NETWORK_LANG_DUTCH                                          :Dutch
+STR_NETWORK_LANG_ESPERANTO                                      :Esperanto
+STR_NETWORK_LANG_FINNISH                                        :Finnish
+STR_NETWORK_LANG_HUNGARIAN                                      :Hungarian
+STR_NETWORK_LANG_ICELANDIC                                      :Icelandic
+STR_NETWORK_LANG_ITALIAN                                        :Italian
+STR_NETWORK_LANG_JAPANESE                                       :Japanese
+STR_NETWORK_LANG_KOREAN                                         :Korean
+STR_NETWORK_LANG_LITHUANIAN                                     :Lithuanian
+STR_NETWORK_LANG_NORWEGIAN                                      :Norwegian
+STR_NETWORK_LANG_POLISH                                         :Polish
+STR_NETWORK_LANG_PORTUGUESE                                     :Portuguese
+STR_NETWORK_LANG_ROMANIAN                                       :Romanian
+STR_NETWORK_LANG_RUSSIAN                                        :Russian
+STR_NETWORK_LANG_SLOVAK                                         :Slovak
+STR_NETWORK_LANG_SLOVENIAN                                      :Slovenian
+STR_NETWORK_LANG_SPANISH                                        :Spanish
+STR_NETWORK_LANG_SWEDISH                                        :Swedish
+STR_NETWORK_LANG_TURKISH                                        :Turkish
+STR_NETWORK_LANG_UKRAINIAN                                      :Ukrainian
 ############ End of leave-in-this-order
 
-STR_NETWORK_GAME_LOBBY                                          :{WHITE}Veelspeler spel tuiste
+STR_NETWORK_GAME_LOBBY                                          :{WHITE}Multispeler spel tuiste
 
 STR_NETWORK_PREPARE_TO_JOIN                                     :{BLACK}Voorberei om te verbind:   {ORANGE}{STRING}
-STR_NETWORK_COMPANY_LIST_TIP                                    :{BLACK}'n Lys van alle maatskappye huiding in die spel. Of kan jy een verbind of as daar 'n vry maatskappy gleuf is 'n nuwe ene begin
+STR_NETWORK_COMPANY_LIST_TIP                                    :{BLACK}'n Lys van alle ondernemings tans in hierdie speletjie. U kan een van beide sluit aan een of begin 'n nuwe een indien daar is 'n vry maatskappy gleuf
 STR_NETWORK_NEW_COMPANY                                         :{BLACK}Nuwe Maatskappy
 STR_NETWORK_NEW_COMPANY_TIP                                     :{BLACK}Skep 'n nuwe maatskappy
 STR_NETWORK_SPECTATE_GAME                                       :{BLACK}Aanskou spel
@@ -1292,7 +1397,7 @@
 STR_NETWORK_REFRESH                                             :{BLACK}Vervris bediender
 STR_NETWORK_REFRESH_TIP                                         :{BLACK}Vervris die bediender inligting
 
-STR_NETWORK_COMPANY_INFO                                        :{SILVER}MAATSKAPPY INLIGTING
+STR_NETWORK_COMPANY_INFO                                        :{SILVER}MAATSKAPPY INFORMASIE
 
 STR_NETWORK_COMPANY_NAME                                        :{SILVER}Maatskappy naam:  {WHITE}{STRING}
 STR_NETWORK_INAUGURATION_YEAR                                   :{SILVER}Inwyding:  {WHITE}{NUM}
@@ -1305,18 +1410,18 @@
 STR_NETWORK_STATIONS                                            :{SILVER}Stasies:  {WHITE}{NUM} {TRAIN}, {NUM} {LORRY}, {NUM} {BUS}, {NUM} {PLANE}, {NUM} {SHIP}
 STR_NETWORK_PLAYERS                                             :{SILVER}Spelers:  {WHITE}{STRING}
 
-STR_NETWORK_CONNECTING                                          :{WHITE}Aansluit...
+STR_NETWORK_CONNECTING                                          :{WHITE}Besig om the konnek...
 
 ############ Leave those lines in this order!!
-STR_NETWORK_CONNECTING_1                                        :{BLACK}(1/6) Aansluit..
+STR_NETWORK_CONNECTING_1                                        :{BLACK}(1/6) Konnek...
 STR_NETWORK_CONNECTING_2                                        :{BLACK}(2/6) Gemagtiging...
 STR_NETWORK_CONNECTING_3                                        :{BLACK}(3/6) Opwagting...
-STR_NETWORK_CONNECTING_4                                        :{BLACK}(4/6) Kaart aflaai..
+STR_NETWORK_CONNECTING_4                                        :{BLACK}(4/6) Werfkaart aflaai..
 STR_NETWORK_CONNECTING_5                                        :{BLACK}(5/6) Verwerk Data...
 STR_NETWORK_CONNECTING_6                                        :{BLACK}(6/6) Registreer...
 
-STR_NETWORK_CONNECTING_SPECIAL_1                                :{BLACK}Haal spel inligting...
-STR_NETWORK_CONNECTING_SPECIAL_2                                :{BLACK}Haal maatskappy inligting...
+STR_NETWORK_CONNECTING_SPECIAL_1                                :{BLACK}Haal speletjie informasie...
+STR_NETWORK_CONNECTING_SPECIAL_2                                :{BLACK}Haal maatskappy informasie...
 ############ End of leave-in-this-order
 STR_NETWORK_CONNECTING_WAITING                                  :{BLACK}{NUM} Klient{P "" e} voor jou
 STR_NETWORK_CONNECTING_DOWNLOADING                              :{BLACK}{NUM} / {NUM} kbytes afgelaai dusver
@@ -1324,26 +1429,27 @@
 STR_NETWORK_DISCONNECT                                          :{BLACK}Loskoppel
 
 STR_NETWORK_GIVE_MONEY_CAPTION                                  :{WHITE}Invoeg die bedrag van geld jy wil gee
-STR_NETWORK_NEED_GAME_PASSWORD_CAPTION                          :{WHITE}Bediender is beskerm. Invoeg wagwoord
+STR_NETWORK_NEED_GAME_PASSWORD_CAPTION                          :{WHITE}Verskaffer is beskerm. Invoeg wagwoord
 STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION                       :{WHITE}Maatskappy is beskerm. Invoeg wagwoord
 STR_NETWORK_CLIENT_LIST                                         :{WHITE}Klient Lys
 
 STR_NETWORK_ERR_NOTAVAILABLE                                    :{WHITE} Geen netwerk ontwerp gevind of voldoen sonder ENABLE_NETWORK
 STR_NETWORK_ERR_NOSERVER                                        :{WHITE} Kan nie enige netwerk spele vind nie
-STR_NETWORK_ERR_NOCONNECTION                                    :{WHITE} Die bedinder het nie die versoek geantwoord nie
+STR_NETWORK_ERR_NOCONNECTION                                    :{WHITE} Die verskaffer het nie die versoek geantwoord nie
+STR_NETWORK_ERR_NEWGRF_MISMATCH                                 :{WHITE} Kan nie konnekteer te danke aan newgrf mispas nie
 STR_NETWORK_ERR_DESYNC                                          :{WHITE} Netwerk-Spel sinchroniseering gedop
 STR_NETWORK_ERR_LOSTCONNECTION                                  :{WHITE} Netwerk-Spel verbinding verloor
-STR_NETWORK_ERR_SAVEGAMEERROR                                   :{WHITE} Kan nie bewaarespel laai nie
-STR_NETWORK_ERR_SERVER_START                                    :{WHITE} Bediender kan nie aangesit word nie
+STR_NETWORK_ERR_SAVEGAMEERROR                                   :{WHITE} Kan nie spaarspel laai nie
+STR_NETWORK_ERR_SERVER_START                                    :{WHITE} Verskaffer kan nie aangesit word nie
 STR_NETWORK_ERR_CLIENT_START                                    :{WHITE} Kan nie verbinding kry nie
 STR_NETWORK_ERR_TIMEOUT                                         :{WHITE} Verbinding #{NUM} het betyds uitgeloop
 STR_NETWORK_ERR_SERVER_ERROR                                    :{WHITE} A protokol-fout was gemaak en die verbinding was verlore
-STR_NETWORK_ERR_WRONG_REVISION                                  :{WHITE} Die hersiening van die klient is nie gelyk aan die bediender se hersiening nie
+STR_NETWORK_ERR_WRONG_REVISION                                  :{WHITE} Die hersiening van die klient is nie gelyk aan die verskaffer se hersiening nie
 STR_NETWORK_ERR_WRONG_PASSWORD                                  :{WHITE} Verkeerde wagwoord
-STR_NETWORK_ERR_SERVER_FULL                                     :{WHITE} Die bediender is vol
-STR_NETWORK_ERR_SERVER_BANNED                                   :{WHITE} Jy is van die bediender verban
+STR_NETWORK_ERR_SERVER_FULL                                     :{WHITE} Die verskaffer is vol
+STR_NETWORK_ERR_SERVER_BANNED                                   :{WHITE} Jy is van die verskaffer verban
 STR_NETWORK_ERR_KICKED                                          :{WHITE} Jy is van die spel geskop
-STR_NETWORK_ERR_CHEATER                                         :{WHITE} Bedreiging is nie op die bediender toegelaat
+STR_NETWORK_ERR_CHEATER                                         :{WHITE} Bedrieg is nie toegelaat op hierdie verskaffer
 
 STR_NETWORK_ERR_LEFT                                            :het die spel verlaat
 ############ Leave those lines in this order!!
@@ -1352,27 +1458,28 @@
 STR_NETWORK_ERR_CLIENT_SAVEGAME                                 :kan nie kaart laai nie
 STR_NETWORK_ERR_CLIENT_CONNECTION_LOST                          :verbinding verloor
 STR_NETWORK_ERR_CLIENT_PROTOCOL_ERROR                           :protokol fout
+STR_NETWORK_ERR_CLIENT_NEWGRF_MISMATCH                          :NewGRF mispas
 STR_NETWORK_ERR_CLIENT_NOT_AUTHORIZED                           :nie gemagtig nie
 STR_NETWORK_ERR_CLIENT_NOT_EXPECTED                             :vreemde pakket aanvaar
 STR_NETWORK_ERR_CLIENT_WRONG_REVISION                           :verkeerde hersiening
 STR_NETWORK_ERR_CLIENT_NAME_IN_USE                              :naam reeds in gebruik
 STR_NETWORK_ERR_CLIENT_WRONG_PASSWORD                           :verkeerde wagwoord
 STR_NETWORK_ERR_CLIENT_PLAYER_MISMATCH                          :verkeerde speler-id in DoCommand
-STR_NETWORK_ERR_CLIENT_KICKED                                   :geskop by bediender
-STR_NETWORK_ERR_CLIENT_CHEATER                                  :was op die proef stel om 'n bereig te gebruik
-STR_NETWORK_ERR_CLIENT_SERVER_FULL                              :bediender vol
+STR_NETWORK_ERR_CLIENT_KICKED                                   :geskop by verskaffer
+STR_NETWORK_ERR_CLIENT_CHEATER                                  :het probeer om 'n bedreig te gebruik
+STR_NETWORK_ERR_CLIENT_SERVER_FULL                              :verskaffer vol
 ############ End of leave-in-this-order
-STR_NETWORK_CLIENT_JOINED                                       :het die spel verbind
+STR_NETWORK_CLIENT_JOINED                                       :het die speletjie verbind
 STR_NETWORK_GIVE_MONEY                                          :het vir u maatskappy geld gegee ({CURRENCY})
 STR_NETWORK_GAVE_MONEY_AWAY                                     :u het vir {STRING} geld ({CURRENCY}) gegee
 STR_NETWORK_CHAT_COMPANY_CAPTION                                :[Span] :
-STR_NETWORK_CHAT_COMPANY                                        :[Span] {STRING}:
+STR_NETWORK_CHAT_COMPANY                                        :[Span] {STRING}: {GRAY}{STRING}
 STR_NETWORK_CHAT_TO_COMPANY                                     :[Span] Na {STRING}:
 STR_NETWORK_CHAT_CLIENT_CAPTION                                 :[Privaat] :
-STR_NETWORK_CHAT_CLIENT                                         :[Privaat] {STRING}:
+STR_NETWORK_CHAT_CLIENT                                         :[Privaat] {STRING}: {GRAY}{STRING}
 STR_NETWORK_CHAT_TO_CLIENT                                      :[Privaat] Na {STRING}:
 STR_NETWORK_CHAT_ALL_CAPTION                                    :[All] :
-STR_NETWORK_CHAT_ALL                                            :[All] {STRING}:
+STR_NETWORK_CHAT_ALL                                            :[All] {STRING}: {GRAY}{STRING}
 STR_NETWORK_NAME_CHANGE                                         :het hy/sy naam verander na
 STR_NETWORK_SERVER_SHUTDOWN                                     :{WHITE} Die bediender het die sessie toegemaak
 STR_NETWORK_SERVER_REBOOT                                       :{WHITE} Die bediender is besig om te weerbegin...{}Wag asb...
@@ -1393,15 +1500,15 @@
 ############ end network gui strings
 
 
-STR_CONFIG_PATCHES_MAP_X                                        :{LTBLUE}X-groote van kaart: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_MAP_Y                                        :{LTBLUE}Y-groote van kaart: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_MAP_X                                        :{LTBLUE}X-groote van werfkaart: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_MAP_Y                                        :{LTBLUE}Y-groote van werfkaart: {ORANGE}{STRING}
 
 
 ##### PNG-MAP-Loader
 
 
-STR_BMPMAP_ERROR                                                :{WHITE}Kan nie landerye van BMP laai nie...
-STR_BMPMAP_ERR_IMAGE_TYPE                                       :{WHITE}...kan nie prent tipe verdoel nie.
+STR_BMPMAP_ERROR                                                :{WHITE}Kan nie landskap van BMP laai nie...
+STR_BMPMAP_ERR_IMAGE_TYPE                                       :{WHITE}...kan nie beeld tipe verdoel nie.
 
 ##id 0x0800
 STR_0800_COST                                                   :{TINYFONT}{RED}Koste: {CURRENCY}
@@ -1410,25 +1517,25 @@
 STR_0803_INCOME                                                 :{GREEN}Inkome: {CURRENCY}
 STR_FEEDER_TINY                                                 :{TINYFONT}{YELLOW}Oorplaas: {CURRENCY}
 STR_FEEDER                                                      :{YELLOW}Oorplaas: {CURRENCY}
-STR_0805_ESTIMATED_COST                                         :{WHITE}Geraamde Koste: {CURRENCY}
-STR_0807_ESTIMATED_INCOME                                       :{WHITE}Geraamde Inkome: {CURRENCY}
-STR_0808_CAN_T_RAISE_LAND_HERE                                  :{WHITE}Kan nie land verhoog hier nie...
-STR_0809_CAN_T_LOWER_LAND_HERE                                  :{WHITE}Kan nie land verlaag hier nie...
+STR_0805_ESTIMATED_COST                                         :{WHITE}Beraamde Koste: {CURRENCY}
+STR_0807_ESTIMATED_INCOME                                       :{WHITE}Beraamde Inkome: {CURRENCY}
+STR_0808_CAN_T_RAISE_LAND_HERE                                  :{WHITE}kan nie daal hier verhoog nie...
+STR_0809_CAN_T_LOWER_LAND_HERE                                  :{WHITE}Kan nie daal hier verlaag nie...
 STR_080A_ROCKS                                                  :Rotse
-STR_080B_ROUGH_LAND                                             :Ru land
-STR_080C_BARE_LAND                                              :Kaal land
+STR_080B_ROUGH_LAND                                             :Rof daal
+STR_080C_BARE_LAND                                              :hou daal
 STR_080D_GRASS                                                  :Gras
 STR_080E_FIELDS                                                 :Velde
 STR_080F_SNOW_COVERED_LAND                                      :Sneeu-bedekte land
 STR_0810_DESERT                                                 :Woestyn
 
 ##id 0x1000
-STR_1000_LAND_SLOPED_IN_WRONG_DIRECTION                         :{WHITE}Land skuins in verkeerde rigting
-STR_1001_IMPOSSIBLE_TRACK_COMBINATION                           :{WHITE}Onmoontlike spoor kombinasie
+STR_1000_LAND_SLOPED_IN_WRONG_DIRECTION                         :{WHITE}Daal skuins in verkeerde rigting
+STR_1001_IMPOSSIBLE_TRACK_COMBINATION                           :{WHITE}Onmoontlik spoor kombinasie
 STR_1002_EXCAVATION_WOULD_DAMAGE                                :{WHITE}Uitgrawing sal tonnel beskadig
 STR_1003_ALREADY_AT_SEA_LEVEL                                   :{WHITE}Reeds op seevlak
 STR_1004_TOO_HIGH                                               :{WHITE}Te hoog
-STR_1005_NO_SUITABLE_RAILROAD_TRACK                             :{WHITE}Geen paslik spoorweg spoor
+STR_1005_NO_SUITABLE_RAILROAD_TRACK                             :{WHITE}Geen geskik spoorweg spoor
 STR_1007_ALREADY_BUILT                                          :{WHITE}...reeds gebou
 STR_1008_MUST_REMOVE_RAILROAD_TRACK                             :{WHITE}Moet eers spoorweg spoor verwyder
 STR_100A_RAILROAD_CONSTRUCTION                                  :{WHITE}Spoorweg Kostruksie
@@ -1441,28 +1548,29 @@
 STR_1011_CAN_T_BUILD_RAILROAD_TRACK                             :{WHITE}Kan nie spoorweg spoor hier bou nie...
 STR_1012_CAN_T_REMOVE_RAILROAD_TRACK                            :{WHITE}Kan nie spoorweg spoor van hier af verwyder nie...
 STR_1013_CAN_T_REMOVE_SIGNALS_FROM                              :{WHITE}Kan nie seine van hier verwyder nie...
-STR_1014_TRAIN_DEPOT_ORIENTATION                                :{WHITE}Trein Depot Ori�tering
+STR_1014_TRAIN_DEPOT_ORIENTATION                                :{WHITE}Trein Depot Orientasie
 STR_1015_RAILROAD_CONSTRUCTION                                  :Spoorweg konstruksie
 STR_1016_MONORAIL_CONSTRUCTION                                  :Eenspoor konstruksie
 STR_1017_MAGLEV_CONSTRUCTION                                    :MagLev konstruksie
 STR_1018_BUILD_RAILROAD_TRACK                                   :{BLACK}Bou spoorweg spoor
-STR_1019_BUILD_TRAIN_DEPOT_FOR_BUILDING                         :{BLACK}Bou trein depot (vir gebou en diens van treine)
+STR_1019_BUILD_TRAIN_DEPOT_FOR_BUILDING                         :{BLACK}Bou trein depot (vir die bou en diens van treine)
 STR_101A_BUILD_RAILROAD_STATION                                 :{BLACK}Bou spoorweg stasie
 STR_101B_BUILD_RAILROAD_SIGNALS                                 :{BLACK}Bou spoorweg seine
 STR_101C_BUILD_RAILROAD_BRIDGE                                  :{BLACK}Bou spoorweg brug
 STR_101D_BUILD_RAILROAD_TUNNEL                                  :{BLACK}Bou spoorweg tonnel
-STR_101E_TOGGLE_BUILD_REMOVE_FOR                                :{BLACK}Skakel bou/verwyder vir spoorweg spoor en seine
-STR_101F_BRIDGE_SELECTION_CLICK                                 :{BLACK}Brug keuse - kliek op jou verkiesde brug om dit te bou
-STR_1020_SELECT_RAILROAD_DEPOT_ORIENTATIO                       :{BLACK}Kies spoorweg depot ori�tering
+STR_101E_TOGGLE_BUILD_REMOVE_FOR                                :{BLACK}Tokkel bou/verwyder vir spoorweg spoor en seine
+STR_101F_BRIDGE_SELECTION_CLICK                                 :{BLACK}Brug keuse - kliek op jou verkies brug om dit te bou
+STR_1020_SELECT_RAILROAD_DEPOT_ORIENTATIO                       :{BLACK}Kies spoorweg depot orientasie
 STR_1021_RAILROAD_TRACK                                         :Spoorweg spoor
 STR_1023_RAILROAD_TRAIN_DEPOT                                   :Spoorweg trein depot
-STR_1024_AREA_IS_OWNED_BY_ANOTHER                               :{WHITE}...area is besit by 'n ander maatskappy
+STR_1024_AREA_IS_OWNED_BY_ANOTHER                               :{WHITE}...area is besit deur 'n ander maatskappy
 
 
 
 ##id 0x1800
 STR_1801_MUST_REMOVE_ROAD_FIRST                                 :{WHITE}Moet pad eers verwyder
 STR_1802_ROAD_CONSTRUCTION                                      :{WHITE}Pad Konstruksie
+STR_1802_TRAMWAY_CONSTRUCTION                                   :{WHITE}Tremweg Konstruksie
 STR_1803_SELECT_ROAD_BRIDGE                                     :{WHITE}Kies Pad Brug
 STR_1804_CAN_T_BUILD_ROAD_HERE                                  :{WHITE}Kan nie pad hier bou nie...
 STR_1805_CAN_T_REMOVE_ROAD_FROM                                 :{WHITE}Kan nie pad van hier verwyder nie...
@@ -1470,13 +1578,14 @@
 STR_1807_CAN_T_BUILD_ROAD_VEHICLE                               :{WHITE}Kan nie pad voertuig depot hier bou nie...
 STR_1807_CAN_T_BUILD_TRAM_VEHICLE                               :{WHITE}Kan nie trem voertuig depot hier bou nie...
 STR_1808_CAN_T_BUILD_BUS_STATION                                :{WHITE}Kan nie bus stasie hier bou nie...
-STR_1809_CAN_T_BUILD_TRUCK_STATION                              :{WHITE}Kan nie vraagmotor stasie bou nie...
-STR_1809_CAN_T_BUILD_CARGO_TRAM_STATION                         :{WHITE}Kan nie vrag trem stasie hier bou nie...
+STR_1809_CAN_T_BUILD_TRUCK_STATION                              :{WHITE}Kan nie vragmotor stasie bou nie...
+STR_1808_CAN_T_BUILD_PASSENGER_TRAM_STATION                     :{WHITE}Kan nie passasier trem stasie bou nie...
+STR_1809_CAN_T_BUILD_CARGO_TRAM_STATION                         :{WHITE}Kan nie vrag trem stasie bou nie...
 STR_180A_ROAD_CONSTRUCTION                                      :Pad konstruksie
 STR_180A_TRAMWAY_CONSTRUCTION                                   :Tremweg konstruksie
 STR_180B_BUILD_ROAD_SECTION                                     :{BLACK}Bou pad afdeling
 STR_180B_BUILD_TRAMWAY_SECTION                                  :{BLACK}Bou tremweg gedeelte
-STR_180C_BUILD_ROAD_VEHICLE_DEPOT                               :{BLACK}Bou pad voertuig depot (vir bou en versiening van voertuie)
+STR_180C_BUILD_ROAD_VEHICLE_DEPOT                               :{BLACK}Bou pad voertuig depot (vir bou en diens van voertuie)
 STR_180C_BUILD_TRAM_VEHICLE_DEPOT                               :{BLACK}Bou trem voertuig depot (vir bou en diens van voertuie)
 STR_180D_BUILD_BUS_STATION                                      :{BLACK}Bou bus stasie
 STR_180E_BUILD_TRUCK_LOADING_BAY                                :{BLACK}Bou vraagmotor laai area
@@ -1486,35 +1595,35 @@
 STR_180F_BUILD_TRAMWAY_BRIDGE                                   :{BLACK}Bou tremweg brug
 STR_1810_BUILD_ROAD_TUNNEL                                      :{BLACK}Bou pad tonnel
 STR_1810_BUILD_TRAMWAY_TUNNEL                                   :{BLACK}Bou tremweg tonnel
-STR_1811_TOGGLE_BUILD_REMOVE_FOR                                :{BLACK}Skakel bou/verwyder vir pad bou
-STR_1811_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS                       :{BLACK}Skakel bou/verwyder vir tremweg konstruksie
-STR_1813_SELECT_ROAD_VEHICLE_DEPOT                              :{BLACK}Kies pad voertuig depot ori�tering
-STR_1813_SELECT_TRAM_VEHICLE_DEPOT                              :{BLACK}Kies trem voertuig depot ori�tering
+STR_1811_TOGGLE_BUILD_REMOVE_FOR                                :{BLACK}Tokkel bou/verwyder vir pad bou
+STR_1811_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS                       :{BLACK}Tokkel bou/verwyder vir tremweg konstruksie
+STR_1813_SELECT_ROAD_VEHICLE_DEPOT                              :{BLACK}Kies pad voertuig depot orientasie
+STR_1813_SELECT_TRAM_VEHICLE_DEPOT                              :{BLACK}Kies trem voertuig depot orientasie
 STR_1814_ROAD                                                   :Pad
 STR_1815_ROAD_WITH_STREETLIGHTS                                 :Pad met straatligte
 STR_1816_TREE_LINED_ROAD                                        :Boom-belynde pad
 STR_1817_ROAD_VEHICLE_DEPOT                                     :Pad voertuig depot
-STR_1818_ROAD_RAIL_LEVEL_CROSSING                               :Pad/spoor gelyk oorgang
+STR_1818_ROAD_RAIL_LEVEL_CROSSING                               :Pad/spoor vlak kruising
 STR_CAN_T_REMOVE_BUS_STATION                                    :{WHITE}Kan nie bus stasie verwyder nie...
-STR_CAN_T_REMOVE_TRUCK_STATION                                  :{WHITE}Kan nie vraagmotor stasie verwyder stasie...
+STR_CAN_T_REMOVE_TRUCK_STATION                                  :{WHITE}Kan nie vragmotor stasie verwyder stasie...
 STR_CAN_T_REMOVE_PASSENGER_TRAM_STATION                         :{WHITE}Kan nie passasier stasie verwyder nie...
 STR_CAN_T_REMOVE_CARGO_TRAM_STATION                             :{WHITE}Kan nie vrag stasie verwyder nie...
 
 ##id 0x2000
-STR_2000_TOWNS                                                  :{WHITE}Stede
+STR_2000_TOWNS                                                  :{WHITE}Dorpe
 STR_2002                                                        :{TINYFONT}{BLACK}{SIGN}
 STR_2004_BUILDING_MUST_BE_DEMOLISHED                            :{WHITE}Gebou moet eers afgebreek word
 STR_2005                                                        :{WHITE}{TOWN}
 STR_2006_POPULATION                                             :{BLACK}Populasie: {ORANGE}{COMMA}{BLACK}  Huise: {ORANGE}{COMMA}
-STR_2007_RENAME_TOWN                                            :Hernoem Stad
-STR_2008_CAN_T_RENAME_TOWN                                      :{WHITE}Kan nie stad hernoem nie...
+STR_2007_RENAME_TOWN                                            :Hernoem Dorp
+STR_2008_CAN_T_RENAME_TOWN                                      :{WHITE}Kan nie dorp hernoem nie...
 STR_2009_LOCAL_AUTHORITY_REFUSES                                :{WHITE}{TOWN} plaaslike raad weier om dit te toelaat
-STR_200A_TOWN_NAMES_CLICK_ON_NAME                               :{BLACK}Stad naame - kliek naam om skerm op stad te senter
-STR_200B_CENTER_THE_MAIN_VIEW_ON                                :{BLACK}Senter skerm op stad
-STR_200C_CHANGE_TOWN_NAME                                       :{BLACK}Verander stad naam
+STR_200A_TOWN_NAMES_CLICK_ON_NAME                               :{BLACK}Dorp naam - kliek naam om skerm op stad te senter
+STR_200B_CENTER_THE_MAIN_VIEW_ON                                :{BLACK}Senter skerm op dorp lokasie
+STR_200C_CHANGE_TOWN_NAME                                       :{BLACK}Verander dorp naam
 STR_200D_PASSENGERS_LAST_MONTH_MAX                              :{BLACK}Passasiers verlede maand: {ORANGE}{COMMA}{BLACK}  max: {ORANGE}{COMMA}
 STR_200E_MAIL_LAST_MONTH_MAX                                    :{BLACK}Pos verlede maand: {ORANGE}{COMMA}{BLACK}  max: {ORANGE}{COMMA}
-STR_200F_TALL_OFFICE_BLOCK                                      :Lank kantoor blok
+STR_200F_TALL_OFFICE_BLOCK                                      :hoog kantoor blok
 STR_2010_OFFICE_BLOCK                                           :Kantoor blok
 STR_2011_SMALL_BLOCK_OF_FLATS                                   :Klein blok van woonstelle
 STR_2012_CHURCH                                                 :Kerk
@@ -1532,7 +1641,7 @@
 STR_201E_STADIUM                                                :Stadion
 STR_201F_OLD_HOUSES                                             :Ou huise
 STR_2020_LOCAL_AUTHORITY                                        :{BLACK}Plaaslike raad
-STR_2021_SHOW_INFORMATION_ON_LOCAL                              :{BLACK}Wys inlingting oor plaaslike raad
+STR_2021_SHOW_INFORMATION_ON_LOCAL                              :{BLACK}Wys informasie oor plaaslike raad
 STR_2022_LOCAL_AUTHORITY                                        :{WHITE}{TOWN} plaaslike raad
 STR_2023_TRANSPORT_COMPANY_RATINGS                              :{BLACK}Vervoer maatskappy graderings:
 STR_2024                                                        :{YELLOW}{COMPANY} {COMPANYNUM}: {ORANGE}{STRING}
@@ -1551,11 +1660,11 @@
 STR_2032_SERVICE_SUBSIDY_AWARDED                                :{BLACK}{BIGFONT}Diens subsidie toeken aan {COMPANY}!{}{}{STRING} diens van {STATION} tot {STATION} sal nou dubbel pryse vir die volgende jaar betaal!
 STR_2033_SERVICE_SUBSIDY_AWARDED                                :{BLACK}{BIGFONT}Diens subsidie toeken aan {COMPANY}!{}{}{STRING} diens van {STATION} tot {STATION} sal nou driemaal pryse vir die volgende jaar betaal!
 STR_2034_SERVICE_SUBSIDY_AWARDED                                :{BLACK}{BIGFONT}Diens subsidie toeken aan {COMPANY}!{}{}{STRING} diens van {STATION} tot {STATION} sal nou viervoud pryse vir die volgende jaar betaal!
-STR_2035_LOCAL_AUTHORITY_REFUSES                                :{WHITE}{TOWN} plaaslike raad weier om nog 'n lughawe in die stad gebou te laat word
+STR_2035_LOCAL_AUTHORITY_REFUSES                                :{WHITE}{TOWN} plaaslike raad weier om nog ‘n lighawe te bou in hierdie stad
 STR_2036_COTTAGES                                               :Kothuise
 STR_2037_HOUSES                                                 :Huise
 STR_2038_FLATS                                                  :Woonstelle
-STR_2039_TALL_OFFICE_BLOCK                                      :Lank kantoor blok
+STR_2039_TALL_OFFICE_BLOCK                                      :Hoog kantoor blok
 STR_203A_SHOPS_AND_OFFICES                                      :Winkels en kantoore
 STR_203B_SHOPS_AND_OFFICES                                      :Winkels en kantoore
 STR_203C_THEATER                                                :Teatre
@@ -1565,8 +1674,8 @@
 STR_2040_CINEMA                                                 :Kinema
 STR_2041_SHOPPING_MALL                                          :Inkoopies winkelplein
 STR_2042_DO_IT                                                  :{BLACK}Doen dit
-STR_2043_LIST_OF_THINGS_TO_DO_AT                                :{BLACK}Lys van dinge te doen by die stad - kliek op item vir meer besonderheide
-STR_2044_CARRY_OUT_THE_HIGHLIGHTED                              :{BLACK}Voeg die beklemtoonde aksie in die lys bo uit
+STR_2043_LIST_OF_THINGS_TO_DO_AT                                :{BLACK}Lys van dinge om te doen by hierdie dorp - kliek op item vir meer besonderhede
+STR_2044_CARRY_OUT_THE_HIGHLIGHTED                              :{BLACK}Voeg die verlig aksie in die lys bo uit
 STR_2045_ACTIONS_AVAILABLE                                      :{BLACK}Aksies beskikbaar:
 STR_2046_SMALL_ADVERTISING_CAMPAIGN                             :Klein adverteer kampeer
 STR_2047_MEDIUM_ADVERTISING_CAMPAIGN                            :Medium adverteer kampeer
@@ -1575,14 +1684,14 @@
 STR_204A_BUILD_STATUE_OF_COMPANY                                :Bou standbeeld van maatskappy eienaar
 STR_204B_FUND_NEW_BUILDINGS                                     :Befonds nuwe geboue
 STR_204C_BUY_EXCLUSIVE_TRANSPORT                                :Koop eksklusief vervoer regte
-STR_204D_INITIATE_A_SMALL_LOCAL                                 :{WHITE}{STRING}{}{YELLOW} Inlei 'n klein plaaslike adverteer kampeer, om meer passasiers en vrag na jou vervoer dienste te aantrek.{}  Prys: {CURRENCY}
-STR_204E_INITIATE_A_MEDIUM_LOCAL                                :{WHITE}{STRING}{}{YELLOW} Inlei 'n medium plaaslike adverteer kampeer, om meer passasiers en vrag na jou vervoer dienste te aantrek.{}  Prys: {CURRENCY}
-STR_204F_INITIATE_A_LARGE_LOCAL                                 :{WHITE}{STRING}{}{YELLOW} Inlei 'n groot plaaslike adverteer kampeer, om meer passasiers en vrag na jou vervoer dienste te aantrek.{}  Prys: {CURRENCY}
-STR_2050_FUND_THE_RECONSTRUCTION                                :{WHITE}{STRING}{}{YELLOW} Befonds die heropbou van die stedelike pad netwerk. Veroorsaak aanmerklike ontwrigging na pad verkeer vir omtrent 6 maande.{}  Prys: {CURRENCY}
+STR_204D_INITIATE_A_SMALL_LOCAL                                 :{WHITE}{STRING}{}{YELLOW} Inwy 'n klein plaaslik advertering veldtog, om te lok meer passasiers en cargo tot jou vervoer dienste.{}  Prys: {CURRENCY}
+STR_204E_INITIATE_A_MEDIUM_LOCAL                                :{WHITE}{STRING}{}{YELLOW} Inwy 'n medium plaaslik advertering veldtog, om te lok meer passasiers en cargo tot jou vervoer dienste.{}  Prys: {CURRENCY}
+STR_204F_INITIATE_A_LARGE_LOCAL                                 :{WHITE}{STRING}{}{YELLOW} Inwy 'n groot plaaslik advertering veldtog, om te lok meer passasiers en cargo tot jou vervoer dienste.{}  Prys: {CURRENCY}
+STR_2050_FUND_THE_RECONSTRUCTION                                :{WHITE}{STRING}{}{YELLOW} Fonds die herkonstruksie van die stedelik pad netwerk. Veroorsaak aansienlike skeuring to pad verkeer vir op tot 6 maande.{}  Prys: {CURRENCY}
 STR_2051_BUILD_A_STATUE_IN_HONOR                                :{WHITE}{STRING}{}{YELLOW} Bou 'n standbeeld in eer van u maatskappy.{} Prys: {CURRENCY}
-STR_2052_FUND_THE_CONSTRUCTION_OF                               :{WHITE}{STRING}{}{YELLOW} Befonds die bou van nuwe kommersieel geboue in die stad.{}  Prys: {CURRENCY}
-STR_2053_BUY_1_YEAR_S_EXCLUSIVE                                 :{WHITE}{STRING}{}{YELLOW} Koop 1 jaar se ekslusief vervoer regte in stad. Stad raad sal passasiers en vrag slegs toelaat om jou maatskappy se stasies te gebruik.{} Prys: {CURRENCY}
-STR_2055_TRAFFIC_CHAOS_IN_ROAD_REBUILDING                       :{BIGFONT}{BLACK}Verkeer warboel in {TOWN}!{}{}Pad heropbou program befonds by {COMPANY} bring 6 maande van narigheid na motoriste!
+STR_2052_FUND_THE_CONSTRUCTION_OF                               :{WHITE}{STRING}{}{YELLOW} Fonds die bou van nuwe kommersieel geboue in die stad.{}  Prys: {CURRENCY}
+STR_2053_BUY_1_YEAR_S_EXCLUSIVE                                 :{WHITE}{STRING}{}{YELLOW} Koop 1 jare eksklusief vervoer regte in dorp. Dorp raad sal alleen laattoe passasiers en cargo om jou maatskappy se stasies te gebruik.{} Prys: {CURRENCY}
+STR_2055_TRAFFIC_CHAOS_IN_ROAD_REBUILDING                       :{BIGFONT}{BLACK}Verkeer warboel in {TOWN}!{}{}Pad heropbou program befonds deur {COMPANY} bring 6 maande van ellende na motoriste!
 STR_2056                                                        :{TINYFONT}{WHITE}{TOWN}
 STR_2057                                                        :{ORANGE}{TOWN}{BLACK} ({COMMA})
 STR_2058_UNDER_CONSTRUCTION                                     :{STRING} (onder opbou)
@@ -1606,8 +1715,8 @@
 STR_2808_TOO_MANY_SIGNS                                         :{WHITE}...te veel tekens
 STR_2809_CAN_T_PLACE_SIGN_HERE                                  :{WHITE}Kan nie teken hier plaas nie...
 STR_280A_SIGN                                                   :Teken
-STR_280B_EDIT_SIGN_TEXT                                         :{WHITE}Verander teken teks
-STR_280C_CAN_T_CHANGE_SIGN_NAME                                 :{WHITE}Teken naam kan nie verander word nie...
+STR_280B_EDIT_SIGN_TEXT                                         :{WHITE}Redigeer teken teks
+STR_280C_CAN_T_CHANGE_SIGN_NAME                                 :{WHITE}Kan nie teken naam verander nie...
 STR_280D_SELECT_TREE_TYPE_TO_PLANT                              :{BLACK}Kies boom tipe om te beplant
 STR_280E_TREES                                                  :Boome
 STR_280F_RAINFOREST                                             :Reenwoud
@@ -1616,7 +1725,7 @@
 ##id 0x3000
 STR_3000_RAIL_STATION_SELECTION                                 :{WHITE}Spoor Stasie Keuse
 STR_3001_AIRPORT_SELECTION                                      :{WHITE}Lughawe Keuse
-STR_3002_ORIENTATION                                            :{BLACK}Ori�tering
+STR_3002_ORIENTATION                                            :{BLACK}Orientasie
 STR_3003_NUMBER_OF_TRACKS                                       :{BLACK}Nommer van spoore
 STR_3004_PLATFORM_LENGTH                                        :{BLACK}Verhoog lengte
 STR_3005_TOO_CLOSE_TO_ANOTHER_RAILROAD                          :{WHITE}Te naby aan 'n ander spoorweg stasie
@@ -1624,7 +1733,7 @@
 STR_3007_TOO_MANY_STATIONS_LOADING                              :{WHITE}Te veel stasies/laai areas in die stad
 STR_3008_TOO_MANY_STATIONS_LOADING                              :{WHITE}Te veel stasies/laai areas
 STR_3008A_TOO_MANY_BUS_STOPS                                    :{WHITE}Te veel bushalte
-STR_3008B_TOO_MANY_TRUCK_STOPS                                  :{WHITE}Te veel vraagmotor stasies
+STR_3008B_TOO_MANY_TRUCK_STOPS                                  :{WHITE}Te veel vragmotor stasies
 STR_3009_TOO_CLOSE_TO_ANOTHER_STATION                           :{WHITE}Te naby aan 'n ander stasie/laai area
 STR_300A_0                                                      :{WHITE}{STATION} {STATIONFEATURES}
 STR_300B_MUST_DEMOLISH_RAILROAD                                 :{WHITE}Moet eers spoorweg stasie afbreek
@@ -1653,12 +1762,12 @@
 STR_303F_NO_LONGER_ACCEPTS_OR                                   :{WHITE}{STATION} aanvaar nie meer {STRING} of {STRING} nie
 STR_3040_NOW_ACCEPTS                                            :{WHITE}{STATION} aanvaar nou {STRING}
 STR_3041_NOW_ACCEPTS_AND                                        :{WHITE}{STATION} aanvaar nou {STRING} en {STRING}
-STR_3042_BUS_STATION_ORIENTATION                                :{WHITE}Bus Stasie Ori�tering
-STR_3043_TRUCK_STATION_ORIENT                                   :{WHITE}Vraagmotor Stasie Ori�tering
-STR_3042_PASSENGER_TRAM_STATION_ORIENTATION                     :{WHITE}Passasier Trem Ori�tering
-STR_3043_CARGO_TRAM_STATION_ORIENT                              :{WHITE}Vrag Trem Ori�tering
+STR_3042_BUS_STATION_ORIENTATION                                :{WHITE}Bus Stasie Orientasie
+STR_3043_TRUCK_STATION_ORIENT                                   :{WHITE}Vraagmotor Stasie Orientasie
+STR_3042_PASSENGER_TRAM_STATION_ORIENTATION                     :{WHITE}Passasier Trem Orientasie
+STR_3043_CARGO_TRAM_STATION_ORIENT                              :{WHITE}Vrag Trem Orientasie
 STR_3046_MUST_DEMOLISH_BUS_STATION                              :{WHITE}Moet eers bus stasie afbreek
-STR_3047_MUST_DEMOLISH_TRUCK_STATION                            :{WHITE}Moet eers vraagmotor stasie afbreek
+STR_3047_MUST_DEMOLISH_TRUCK_STATION                            :{WHITE}Moet eers vragmotor stasie afbreek
 STR_3046_MUST_DEMOLISH_PASSENGER_TRAM_STATION                   :{WHITE}Moet eers passasier trem stasie afbreek
 STR_3047_MUST_DEMOLISH_CARGO_TRAM_STATION                       :{WHITE}Moet eers vrag trem stasie afbreek
 STR_3048_STATIONS                                               :{WHITE}{COMPANY} - {COMMA} Stasie{P "" s}
@@ -1667,13 +1776,13 @@
 STR_304B_SITE_UNSUITABLE                                        :{WHITE}...plek ongeskik
 STR_304C_TOO_CLOSE_TO_ANOTHER_DOCK                              :{WHITE}Te naby aan 'n ander werf
 STR_304D_MUST_DEMOLISH_DOCK_FIRST                               :{WHITE}Moet eers werf afbreek
-STR_304E_SELECT_RAILROAD_STATION                                :{BLACK}Kies spoorweg stasie ori�tering
+STR_304E_SELECT_RAILROAD_STATION                                :{BLACK}Kies spoorweg stasie orientasie
 STR_304F_SELECT_NUMBER_OF_PLATFORMS                             :{BLACK}Kies nommer van verhoogte vir spoorweg stasie
 STR_3050_SELECT_LENGTH_OF_RAILROAD                              :{BLACK}Kies lengte van spoorweg stasie
-STR_3051_SELECT_BUS_STATION_ORIENTATION                         :{BLACK}Kies bus stasie ori�tering
-STR_3052_SELECT_TRUCK_LOADING_BAY                               :{BLACK}Kies vraagmotor laai area ori�tering
-STR_3051_SELECT_PASSENGER_TRAM_STATION_ORIENTATION              :{BLACK}Kies passasier trem stasie ori�tering
-STR_3052_SELECT_CARGO_TRAM_STATION_ORIENTATION                  :{BLACK}Kies vrag trem stasie ori�tering
+STR_3051_SELECT_BUS_STATION_ORIENTATION                         :{BLACK}Kies bus stasie orientasie
+STR_3052_SELECT_TRUCK_LOADING_BAY                               :{BLACK}Kies vragmotor laai area orientasie
+STR_3051_SELECT_PASSENGER_TRAM_STATION_ORIENTATION              :{BLACK}Kies passasier trem stasie orientasie
+STR_3052_SELECT_CARGO_TRAM_STATION_ORIENTATION                  :{BLACK}Kies vrag trem stasie orientasie
 STR_3053_CENTER_MAIN_VIEW_ON_STATION                            :{BLACK}Senter skerm op stasie
 STR_3054_SHOW_STATION_RATINGS                                   :{BLACK}Wys stasie graderings
 STR_3055_CHANGE_NAME_OF_STATION                                 :{BLACK}Verander naam van stasie
@@ -1684,53 +1793,58 @@
 STR_305E_RAILROAD_STATION                                       :Spoorweg stasie
 STR_305F_AIRCRAFT_HANGAR                                        :Vliegtuig hangar
 STR_3060_AIRPORT                                                :Lughawe
-STR_3061_TRUCK_LOADING_AREA                                     :Vraagmotor laai area
+STR_3061_TRUCK_LOADING_AREA                                     :Vragmotor laai area
 STR_3062_BUS_STATION                                            :Bus stasie
 STR_3063_SHIP_DOCK                                              :Skip werf
-STR_3064_HIGHLIGHT_COVERAGE_AREA                                :{BLACK}Beklemtoon dekkingsarea van die voorgestelde bouterrein
-STR_3065_DON_T_HIGHLIGHT_COVERAGE                               :{BLACK}Moenie die dekkingsarea van die voorgestelde bouterrein beklemtoon nie
-STR_3066_COVERAGE_AREA_HIGHLIGHT                                :{BLACK}Dekkingsarea beklemtoon
+STR_3064_HIGHLIGHT_COVERAGE_AREA                                :{BLACK}Verlig dekking area van die voorgestelde bouterrein
+STR_3065_DON_T_HIGHLIGHT_COVERAGE                               :{BLACK}Moenie die dekking area van die voorgestelde bouterrein verlig nie
+STR_3066_COVERAGE_AREA_HIGHLIGHT                                :{BLACK}Dekking area verlig
 STR_3068_DOCK                                                   :{WHITE}Werf
 STR_3069_BUOY                                                   :Baken
 STR_306A_BUOY_IN_THE_WAY                                        :{WHITE}...baken in die pad
 STR_306C_STATION_TOO_SPREAD_OUT                                 :{WHITE}...Stasie te ver van mekaar af
-STR_306D_NONUNIFORM_STATIONS_DISALLOWED                         :{WHITE}...ongelyk stasies is gestrem
+STR_306D_NONUNIFORM_STATIONS_DISALLOWED                         :{WHITE}...ongelyk stasies is versper
 
 
 ##id 0x3800
-STR_3800_SHIP_DEPOT_ORIENTATION                                 :{WHITE}Skip Depot Ori�tering
+STR_3800_SHIP_DEPOT_ORIENTATION                                 :{WHITE}Skip Depot Orientasie
 STR_3801_MUST_BE_BUILT_ON_WATER                                 :{WHITE}...moet op water gebou word
 STR_3802_CAN_T_BUILD_SHIP_DEPOT                                 :{WHITE}Skip depot kan nie hier gebou word nie...
-STR_3803_SELECT_SHIP_DEPOT_ORIENTATION                          :{BLACK}Kies skip depot ori�tering
+STR_3803_SELECT_SHIP_DEPOT_ORIENTATION                          :{BLACK}Kies skip depot orientasie
 STR_3804_WATER                                                  :Water
-STR_3805_COAST_OR_RIVERBANK                                     :Strand of oewer
+STR_3805_COAST_OR_RIVERBANK                                     :Kus of oewer
 STR_3806_SHIP_DEPOT                                             :Skip depot
 STR_3807_CAN_T_BUILD_ON_WATER                                   :{WHITE}...Kan nie op water bou nie
 
 ##id 0x4000
-STR_4000_SAVE_GAME                                              :{WHITE}Bewar Spel
-STR_4001_LOAD_GAME                                              :{WHITE}Laai Spel
-STR_4002_SAVE                                                   :{BLACK}Bewaar
-STR_4003_DELETE                                                 :{BLACK}Uitwis
+STR_4000_SAVE_GAME                                              :{WHITE}Spaar Speletjie
+STR_4001_LOAD_GAME                                              :{WHITE}Laai Speletjie
+STR_4002_SAVE                                                   :{BLACK}Spaar
+STR_4003_DELETE                                                 :{BLACK}Uitvee
 STR_4004                                                        :{COMPANY}, {DATE_LONG}
 STR_4005_BYTES_FREE                                             :{BLACK}{COMMA} megabyte{P "" s} vry
 STR_4006_UNABLE_TO_READ_DRIVE                                   :{BLACK}Kan nie skyf lees nie
-STR_4007_GAME_SAVE_FAILED                                       :{WHITE}Spel Bewaar Gedop{}{STRING}
-STR_4008_UNABLE_TO_DELETE_FILE                                  :{WHITE}Kan nie l�r uitwis nie
-STR_4009_GAME_LOAD_FAILED                                       :{WHITE}Spel Laai Gedop{}{STRING}
-STR_400A_LIST_OF_DRIVES_DIRECTORIES                             :{BLACK}Lys van skywe, voublaaie en spel-bewaar l�rs
-STR_400B_CURRENTLY_SELECTED_NAME                                :{BLACK}Huidige naam vir bewaarde-spel
-STR_400C_DELETE_THE_CURRENTLY_SELECTED                          :{BLACK}Uitwis die verkieste bewaarde-spel
-STR_400D_SAVE_THE_CURRENT_GAME_USING                            :{BLACK}Bewaar die huidige spel, met die verkieste naame
-STR_400E_SELECT_NEW_GAME_TYPE                                   :{WHITE}Kies Nuwe Spel Tipe
-STR_400F_SELECT_SCENARIO_GREEN_PRE                              :{BLACK}Kies draaiboek (groen), voor-gestelde spel (blou), of lukraak nuwe spel
-STR_4010_GENERATE_RANDOM_NEW_GAME                               :Onwikkel lukraak nuwe spel
+STR_4007_GAME_SAVE_FAILED                                       :{WHITE}Speletjie Spaar Misluk{}{STRING}
+STR_4008_UNABLE_TO_DELETE_FILE                                  :{WHITE}Onbekwaam om lêer te uitvee
+STR_4009_GAME_LOAD_FAILED                                       :{WHITE}Speletjie Laai Misluk{}{STRING}
+STR_GAME_SAVELOAD_ERROR_BROKEN_INTERNAL_ERROR                   :Interne fout: {STRING}
+STR_GAME_SAVELOAD_ERROR_BROKEN_SAVEGAME                         :Gebreek spaarspeletjie - {STRING}
+STR_GAME_SAVELOAD_ERROR_TOO_NEW_SAVEGAME                        :Spaarspeletjie is gemaak met nuwer uitgawe
+STR_GAME_SAVELOAD_ERROR_FILE_NOT_READABLE                       :Lêer nie leesbare
+STR_GAME_SAVELOAD_ERROR_FILE_NOT_WRITEABLE                      :Lêer nie skryfbaar
+STR_400A_LIST_OF_DRIVES_DIRECTORIES                             :{BLACK}Lys van skywe, gidse en spaar-speletjie lêers
+STR_400B_CURRENTLY_SELECTED_NAME                                :{BLACK}Huidige naam vir spaar-speletjie
+STR_400C_DELETE_THE_CURRENTLY_SELECTED                          :{BLACK}Vee uit die huidige verkieste spaar-speletjie
+STR_400D_SAVE_THE_CURRENT_GAME_USING                            :{BLACK}Spaar die huidige speletjie, met die verkieste naame
+STR_400E_SELECT_NEW_GAME_TYPE                                   :{WHITE}Kies Nuwe Speletjie Tipe
+STR_400F_SELECT_SCENARIO_GREEN_PRE                              :{BLACK}Kies draaiboek (groen), vooraf-stel speletjie (blou), of lukraak nuwe speletjie
+STR_4010_GENERATE_RANDOM_NEW_GAME                               :Opwek lukraak nuwe speletjie
 STR_4011_LOAD_HEIGHTMAP                                         :{WHITE}Laai Hoogtekaart
 
 ##id 0x4800
 STR_4800_IN_THE_WAY                                             :{WHITE}{STRING} in die pad
 STR_4801                                                        :{WHITE}{INDUSTRY}
-STR_4802_COAL_MINE                                              :Steenkool Myn
+STR_4802_COAL_MINE                                              :Kool Myn
 STR_4803_POWER_STATION                                          :Krag Stasie
 STR_4804_SAWMILL                                                :Saagmeul
 STR_4805_FOREST                                                 :Woud
@@ -1738,7 +1852,7 @@
 STR_4807_OIL_RIG                                                :Olieboor
 STR_4808_FACTORY                                                :Fabriek
 STR_4809_PRINTING_WORKS                                         :Drukwerke
-STR_480A_STEEL_MILL                                             :Staalmeul
+STR_480A_STEEL_MILL                                             :Staal Meule
 STR_480B_FARM                                                   :Boerdery
 STR_480C_COPPER_ORE_MINE                                        :Koper Erts Myn
 STR_480D_OIL_WELLS                                              :Olie Bron
@@ -1751,20 +1865,20 @@
 STR_4814_IRON_ORE_MINE                                          :Yster Erts Myn
 STR_4815_FRUIT_PLANTATION                                       :Vrugte Plantasie
 STR_4816_RUBBER_PLANTATION                                      :Gomlastiek Plantasie
-STR_4817_WATER_SUPPLY                                           :Water Lewering
+STR_4817_WATER_SUPPLY                                           :Water Verskaf
 STR_4818_WATER_TOWER                                            :Water Toring
 STR_4819_FACTORY                                                :Fabriek
 STR_481A_FARM                                                   :Boerdery
-STR_481B_LUMBER_MILL                                            :Timmerhoutmeul
+STR_481B_LUMBER_MILL                                            :Timmerhout Meule
 STR_481C_COTTON_CANDY_FOREST                                    :Spookasem Woud
 STR_481D_CANDY_FACTORY                                          :Lekker Fabriek
 STR_481E_BATTERY_FARM                                           :Battery Boerdery
-STR_481F_COLA_WELLS                                             :Cola Bron
+STR_481F_COLA_WELLS                                             :Cola Spruite
 STR_4820_TOY_SHOP                                               :Speelgoed Winkel
 STR_4821_TOY_FACTORY                                            :Speelgoed Fabriek
 STR_4822_PLASTIC_FOUNTAINS                                      :Plastiek Fonteine
 STR_4823_FIZZY_DRINK_FACTORY                                    :Koeldrank Fabriek
-STR_4824_BUBBLE_GENERATOR                                       :Borrel Ontwikkelaar
+STR_4824_BUBBLE_GENERATOR                                       :Borrel Genereerder
 STR_4825_TOFFEE_QUARRY                                          :Tamletjie Prooi
 STR_4826_SUGAR_MINE                                             :Suiker Myn
 
@@ -1775,6 +1889,8 @@
 ############ range for requires ends
 
 ############ range for produces starts
+STR_INDUSTRY_WINDOW_WAITING_FOR_PROCESSING                      :{BLACK}Vrag wag om geprosesseer te wees:
+STR_INDUSTRY_WINDOW_WAITING_STOCKPILE_CARGO                     :{YELLOW}{CARGO}{BLACK}
 STR_4827_PRODUCES                                               :{BLACK}Produseer: {YELLOW}{STRING}
 STR_4828_PRODUCES                                               :{BLACK}Produseer: {YELLOW}{STRING}, {STRING}
 ############ range for produces ends
@@ -1791,12 +1907,12 @@
 STR_4833_SUPPLY_PROBLEMS_CAUSE_TO                               :{BLACK}{BIGFONT}Lewering probleme veroorsaak {INDUSTRY} om dreigend sluting te aankondig!
 STR_4834_LACK_OF_NEARBY_TREES_CAUSES                            :{BLACK}{BIGFONT}Gemis van naby boome veroorsaak {INDUSTRY} om dreigend sluiting te aankondig!
 STR_4835_INCREASES_PRODUCTION                                   :{BLACK}{BIGFONT}{INDUSTRY} vermeerder produksie!
-STR_4836_NEW_COAL_SEAM_FOUND_AT                                 :{BLACK}{BIGFONT}Nuwe steenkool laag gevind by {INDUSTRY}!{}Produksie is verwag om te verdubbel!
+STR_4836_NEW_COAL_SEAM_FOUND_AT                                 :{BLACK}{BIGFONT}Nuwe kool laag gevind by {INDUSTRY}!{}Produksie is verwag om te verdubbel!
 STR_4837_NEW_OIL_RESERVES_FOUND                                 :{BLACK}{BIGFONT}Nuwe olie reserwes gevind by {INDUSTRY}!{}Produksie is verwag om te verdubbel!
 STR_4838_IMPROVED_FARMING_METHODS                               :{BLACK}{BIGFONT}Verbeterde boerdery metodes by {INDUSTRY} sal produksie verdubbel!
 STR_4839_PRODUCTION_DOWN_BY_50                                  :{BLACK}{BIGFONT}{INDUSTRY} produksie verminder 50%
 STR_483A_INSECT_INFESTATION_CAUSES                              :{BLACK}{BIGFONT}Insek vervuiling oorsaak verwoesting by {INDUSTRY}!{}Produksie verminder 50%
-STR_483B_CAN_ONLY_BE_POSITIONED                                 :{WHITE}...kan net naby aan kant van kaart geplaas word
+STR_483B_CAN_ONLY_BE_POSITIONED                                 :{WHITE}...kan net naby aan kant van werfkaart geplaas word
 STR_INDUSTRY_PROD_GOUP                                          :{BLACK}{BIGFONT}{STRING} produksie by {INDUSTRY} vermeerder {COMMA}%!
 STR_INDUSTRY_PROD_GODOWN                                        :{BLACK}{BIGFONT}{STRING} produksie by {INDUSTRY} verminder {COMMA}%!
 
@@ -1804,17 +1920,19 @@
 STR_5000_TRAIN_IN_TUNNEL                                        :{WHITE}Trein in tonnel
 STR_5001_ROAD_VEHICLE_IN_TUNNEL                                 :{WHITE}Pad voetuig in tonnel
 STR_5003_ANOTHER_TUNNEL_IN_THE_WAY                              :{WHITE}Ander tonnel in die pad
-STR_5005_UNABLE_TO_EXCAVATE_LAND                                :{WHITE}Kan nie land vir ander einde van tonnel te uitgrawe nie
+STR_5005_UNABLE_TO_EXCAVATE_LAND                                :{WHITE}Kan nie daal vir ander einde van tonnel te uitgrawe nie
 STR_5006_MUST_DEMOLISH_TUNNEL_FIRST                             :{WHITE}Moet eers tonnel afbreek
 STR_5007_MUST_DEMOLISH_BRIDGE_FIRST                             :{WHITE}Moet eers brug afbreek
 STR_5008_CANNOT_START_AND_END_ON                                :{WHITE}Kan nie in die selfde plek begin en eindig nie
+STR_BRIDGEHEADS_NOT_SAME_HEIGHT                                 :{WHITE}Brug hoofde is nie op die selfde vlak nie
+STR_BRIDGE_TOO_LOW_FOR_TERRAIN                                  :{WHITE}Brug is te laag vie die daal
 STR_500A_START_AND_END_MUST_BE_IN                               :{WHITE}Begin en einde moet in lyn wees
 STR_500B_SITE_UNSUITABLE_FOR_TUNNEL                             :{WHITE}Plek ongeskik vir tonnel ingang
 STR_500D                                                        :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY}
-STR_500E_SUSPENSION_STEEL                                       :Staking, Staal
-STR_500F_GIRDER_STEEL                                           :Staaf, Staal
+STR_500E_SUSPENSION_STEEL                                       :Suspensie, Staal
+STR_500F_GIRDER_STEEL                                           :Balk, Staal
 STR_5010_CANTILEVER_STEEL                                       :Vrydraer, Staal
-STR_5011_SUSPENSION_CONCRETE                                    :Staking, Beton
+STR_5011_SUSPENSION_CONCRETE                                    :Suspensie, Beton
 STR_5012_WOODEN                                                 :Houterig
 STR_5013_CONCRETE                                               :Beton
 STR_5014_TUBULAR_STEEL                                          : Buis, Staal
@@ -1823,16 +1941,16 @@
 STR_5016_CAN_T_BUILD_TUNNEL_HERE                                :{WHITE}Tonnel kan nie daar gebou word nie...
 STR_5017_RAILROAD_TUNNEL                                        :Spoorweg tonnel
 STR_5018_ROAD_TUNNEL                                            :Pad tonnel
-STR_501B_STEEL_SUSPENSION_RAIL_BRIDGE                           :Staal staking spoor brug
-STR_501C_STEEL_GIRDER_RAIL_BRIDGE                               :Staal staaf spoor brug
+STR_501B_STEEL_SUSPENSION_RAIL_BRIDGE                           :Staal stuspensie spoor brug
+STR_501C_STEEL_GIRDER_RAIL_BRIDGE                               :Staal balk spoor brug
 STR_501D_STEEL_CANTILEVER_RAIL_BRIDGE                           :Staal vrydraer spoor brug
-STR_501E_REINFORCED_CONCRETE_SUSPENSION                         :Gewapende beton staking spoor brug
+STR_501E_REINFORCED_CONCRETE_SUSPENSION                         :Versterk beton suspensie spoor brug
 STR_501F_WOODEN_RAIL_BRIDGE                                     :Houterig spoor brug
 STR_5020_CONCRETE_RAIL_BRIDGE                                   :Beton spoor brug
-STR_5021_STEEL_SUSPENSION_ROAD_BRIDGE                           :Staal staking pad brug
-STR_5022_STEEL_GIRDER_ROAD_BRIDGE                               :Staal staaf pad brug
+STR_5021_STEEL_SUSPENSION_ROAD_BRIDGE                           :Staal suspensie pad brug
+STR_5022_STEEL_GIRDER_ROAD_BRIDGE                               :Staal balk pad brug
 STR_5023_STEEL_CANTILEVER_ROAD_BRIDGE                           :Staal vrydraer pad brug
-STR_5024_REINFORCED_CONCRETE_SUSPENSION                         :Gewapende beton staking pad brug
+STR_5024_REINFORCED_CONCRETE_SUSPENSION                         :Versterk beton suspensie pad brug
 STR_5025_WOODEN_ROAD_BRIDGE                                     :Houterig pad brug
 STR_5026_CONCRETE_ROAD_BRIDGE                                   :Beton pad brug
 STR_5027_TUBULAR_RAIL_BRIDGE                                    :Buis spoor brug
@@ -1842,8 +1960,8 @@
 STR_5800_OBJECT_IN_THE_WAY                                      :{WHITE}Voorwerp in die pad
 STR_5801_TRANSMITTER                                            :Sender
 STR_5802_LIGHTHOUSE                                             :Vuurtoring
-STR_5803_COMPANY_HEADQUARTERS                                   :Maatskappy Hoofkwartiers
-STR_5804_COMPANY_HEADQUARTERS_IN                                :{WHITE}...maatskappy hoofkwartiers in die pad
+STR_5803_COMPANY_HEADQUARTERS                                   :Maatskappy Hoofkwartier
+STR_5804_COMPANY_HEADQUARTERS_IN                                :{WHITE}...maatskappy hoofkwartier in die weg
 STR_5805_COMPANY_OWNED_LAND                                     :Maatskappy-besitte land
 STR_5806_CAN_T_PURCHASE_THIS_LAND                               :{WHITE}Die land area kan nie aangekoop word nie...
 STR_5807_YOU_ALREADY_OWN_IT                                     :{WHITE}...jy besit dit alreeds!
@@ -1885,7 +2003,7 @@
 ############ end of savegame specific region!
 
 ##id 0x6800
-STR_6800_DIFFICULTY_LEVEL                                       :{WHITE}Moeilikheid Vlak
+STR_6800_DIFFICULTY_LEVEL                                       :{WHITE}Moeite Vlak
 STR_OPTIONS_SAVE_CHANGES                                        :{BLACK}Bewaar
 
 ############ range for difficulty levels starts
@@ -1898,17 +2016,17 @@
 ############ range for difficulty settings starts
 STR_6805_MAXIMUM_NO_COMPETITORS                                 :{LTBLUE}Maksimum no. mededingers: {ORANGE}{COMMA}
 STR_6806_COMPETITOR_START_TIME                                  :{LTBLUE}Mededinger begin tyd: {ORANGE}{STRING}
-STR_6807_NO_OF_TOWNS                                            :{LTBLUE}No. van stede: {ORANGE}{STRING}
-STR_6808_NO_OF_INDUSTRIES                                       :{LTBLUE}No. van nywerheide: {ORANGE}{STRING}
+STR_6807_NO_OF_TOWNS                                            :{LTBLUE}No. van dorpe: {ORANGE}{STRING}
+STR_6808_NO_OF_INDUSTRIES                                       :{LTBLUE}No. van nywerhede: {ORANGE}{STRING}
 STR_6809_MAXIMUM_INITIAL_LOAN_000                               :{LTBLUE}Maksimum inisieele lening: {ORANGE}{CURRENCY}
 STR_680A_INITIAL_INTEREST_RATE                                  :{LTBLUE}Inisieele rente koers: {ORANGE}{COMMA}%
 STR_680B_VEHICLE_RUNNING_COSTS                                  :{LTBLUE}Voertuig loopkoste: {ORANGE}{STRING}
 STR_680C_CONSTRUCTION_SPEED_OF_COMPETITOR                       :{LTBLUE}Konstruksie spoed van mededinge: {ORANGE}{STRING}
 STR_680D_INTELLIGENCE_OF_COMPETITORS                            :{LTBLUE}Intelligensie van mededinge: {ORANGE}{STRING}
-STR_680E_VEHICLE_BREAKDOWNS                                     :{LTBLUE}Voertuig oponthoude: {ORANGE}{STRING}
+STR_680E_VEHICLE_BREAKDOWNS                                     :{LTBLUE}Voertuig komplikasies: {ORANGE}{STRING}
 STR_680F_SUBSIDY_MULTIPLIER                                     :{LTBLUE}Subsidie vermenigvuld: {ORANGE}{STRING}
 STR_6810_COST_OF_CONSTRUCTION                                   :{LTBLUE}koste van konstruksie: {ORANGE}{STRING}
-STR_6811_TERRAIN_TYPE                                           :{LTBLUE}Landerye tipe: {ORANGE}{STRING}
+STR_6811_TERRAIN_TYPE                                           :{LTBLUE}Landskap tipe: {ORANGE}{STRING}
 STR_6812_QUANTITY_OF_SEA_LAKES                                  :{LTBLUE}Hoeveelheid see/panne: {ORANGE}{STRING}
 STR_6813_ECONOMY                                                :{LTBLUE}Ekonomie: {ORANGE}{STRING}
 STR_6814_TRAIN_REVERSING                                        :{LTBLUE}Trein omkeer: {ORANGE}{STRING}
@@ -1994,10 +2112,10 @@
 STR_7022_INCOME_GRAPH                                           :{WHITE}Inkome Grafiek
 STR_CURRCOMPACT                                                 :{CURRCOMPACT}
 STR_7024                                                        :{COMMA}
-STR_7025_OPERATING_PROFIT_GRAPH                                 :{WHITE}Bewerking Profyt Grafiek
+STR_7025_OPERATING_PROFIT_GRAPH                                 :{WHITE}Bediening Profyt Grafiek
 STR_7026_BANK_BALANCE                                           :{WHITE}Bank Balans
 STR_7027_LOAN                                                   :{WHITE}Lening
-STR_MAX_LOAN                                                    :{WHITE}Max Lening:  {BLACK}{CURRENCY}
+STR_MAX_LOAN                                                    :{WHITE}Maks Lening:  {BLACK}{CURRENCY}
 STR_7028                                                        :{BLACK}{CURRENCY}
 STR_7029_BORROW                                                 :{BLACK}Leen {SKIP}{SKIP}{CURRENCY}
 STR_702A_REPAY                                                  :{BLACK}Terugbetaal {SKIP}{SKIP}{CURRENCY}
@@ -2030,10 +2148,10 @@
 STR_7048_ACCEPT_NEW_FACE_SELECTION                              :{BLACK}Aanvar nuwe gesig keuse
 STR_7049_SELECT_MALE_FACES                                      :{BLACK}Kies manlik gesige
 STR_704A_SELECT_FEMALE_FACES                                    :{BLACK}Kies vroulik gesige
-STR_704B_GENERATE_RANDOM_NEW_FACE                               :{BLACK}Ontwikkel lukrake nuwe gesig
+STR_704B_GENERATE_RANDOM_NEW_FACE                               :{BLACK}Opwek lukrake nuwe gesig
 STR_704C_KEY                                                    :{BLACK}Sleutel
 STR_704D_SHOW_KEY_TO_GRAPHS                                     :{BLACK}Wys sleutel na grafieke
-STR_704E_KEY_TO_COMPANY_GRAPHS                                  :{WHITE}Sleutel na maatskappy grafieke
+STR_704E_KEY_TO_COMPANY_GRAPHS                                  :{WHITE}Sleutel vir maatskappy grafieke
 STR_704F_CLICK_HERE_TO_TOGGLE_COMPANY                           :{BLACK}Kliek hier om maatskappy se intrede op grafiek aan/af te skakel
 STR_7050_UNITS_OF_CARGO_DELIVERED                               :{WHITE}Eenheide van vrag afgelewer
 STR_7051_COMPANY_PERFORMANCE_RATINGS                            :{WHITE}Maatskappy prestasie graderings (maksimum gradering=1000)
@@ -2076,8 +2194,8 @@
 STR_COMPANY_PASSWORD_TOOLTIP                                    :{BLACK}Wagwoord-beskerm jou maatskappy om onmagtig gebruikers te belet van verbinding
 STR_SET_COMPANY_PASSWORD                                        :Stel maatskappy wagwoord
 STR_7073_WORLD_RECESSION_FINANCIAL                              :{BIGFONT}{BLACK}W�eld Insinking!{}{}Finansieel eksperte vrees ergste as ekonomie inmekaar sak!
-STR_7074_RECESSION_OVER_UPTURN_IN                               :{BIGFONT}{BLACK}Insinking Oor!{}{}Oplewing in sake gee vertroue na nywerheide as ekonomie versterk!
-STR_7075_TOGGLE_LARGE_SMALL_WINDOW                              :{BLACK}Skakel groot/klein venster groote
+STR_7074_RECESSION_OVER_UPTURN_IN                               :{BIGFONT}{BLACK}Insinking Oor!{}{}Oplewing in sake gee vertroue na nywerhede as ekonomie versterk!
+STR_7075_TOGGLE_LARGE_SMALL_WINDOW                              :{BLACK}Tokkel groot/klein venster groote
 STR_7076_COMPANY_VALUE                                          :{GOLD}Maatskappy waarde: {WHITE}{CURRENCY}
 STR_7077_BUY_25_SHARE_IN_COMPANY                                :{BLACK}Koop 25% aandeel in maatskappy
 STR_7078_SELL_25_SHARE_IN_COMPANY                               :{BLACK}Verkoop 25% aandeel in maatskappy
@@ -2103,18 +2221,20 @@
 STR_LIVERY_PASSENGER_WAGON_ELECTRIC                             :Passasier Rytuig (Elektries)
 STR_LIVERY_FREIGHT_WAGON                                        :Vraag Wa
 STR_LIVERY_BUS                                                  :Bus
-STR_LIVERY_TRUCK                                                :Vraagmotor
+STR_LIVERY_TRUCK                                                :Vragmotor
 STR_LIVERY_PASSENGER_SHIP                                       :Passasier Veer
 STR_LIVERY_FREIGHT_SHIP                                         :Vraag Skip
 STR_LIVERY_HELICOPTER                                           :Helikopter
 STR_LIVERY_SMALL_PLANE                                          :Klein Vliegtuig
 STR_LIVERY_LARGE_PLANE                                          :Groot Vliegtuig
+STR_LIVERY_PASSENGER_TRAM                                       :Passasier Trem
+STR_LIVERY_FREIGHT_TRAM                                         :Vrag Trem
 
-STR_LIVERY_GENERAL_TIP                                          :{BLACK}Wys generaal kleur skemas
+STR_LIVERY_GENERAL_TIP                                          :{BLACK}Toon generaal kleur skemas
 STR_LIVERY_TRAIN_TIP                                            :{BLACK}Wys trein kleur skemas
-STR_LIVERY_ROADVEH_TIP                                          :{BLACK}Wys pad voertuig kleur skemas
-STR_LIVERY_SHIP_TIP                                             :{BLACK}Wys skip kleur skemas
-STR_LIVERY_AIRCRAFT_TIP                                         :{BLACK}Wys vliegtuig kleurskemas
+STR_LIVERY_ROADVEH_TIP                                          :{BLACK}Toon pad voertuig kleur skemas
+STR_LIVERY_SHIP_TIP                                             :{BLACK}Toon skip kleur skemas
+STR_LIVERY_AIRCRAFT_TIP                                         :{BLACK}Toon vliegtuig kleurskemas
 STR_LIVERY_PRIMARY_TIP                                          :{BLACK}Kies die premere kleur vir die verkieste skema
 STR_LIVERY_SECONDARY_TIP                                        :{BLACK}Kies die sekondere kleur vir die verkieste skema
 STR_LIVERY_PANEL_TIP                                            :{BLACK}Kies 'n kleur skema te verander, of veelvoud skemas met CTRL+kliek. Kliek op die boks te skakel gebruik van skema
@@ -2149,7 +2269,7 @@
 STR_801A_ASIASTAR_ELECTRIC                                      :'AsiaStar' (Elektries)
 STR_801B_PASSENGER_CAR                                          :Passasier Rytuig
 STR_801C_MAIL_VAN                                               :Pos Wa
-STR_801D_COAL_CAR                                               :Steenkool Wa
+STR_801D_COAL_CAR                                               :Kool Wa
 STR_801E_OIL_TANKER                                             :Olie Tenkwa
 STR_801F_LIVESTOCK_VAN                                          :Lewende Hawe Wa
 STR_8020_GOODS_VAN                                              :Goedere Wa
@@ -2179,7 +2299,7 @@
 STR_8038_WIZZOWOW_Z99                                           :Wizzowow Z99
 STR_8039_PASSENGER_CAR                                          :Passasier Rytuig
 STR_803A_MAIL_VAN                                               :Pos Wa
-STR_803B_COAL_CAR                                               :Steenkool Trok
+STR_803B_COAL_CAR                                               :Kool Trok
 STR_803C_OIL_TANKER                                             :Olie Tenkwa
 STR_803D_LIVESTOCK_VAN                                          :Lewende Hawe Wa
 STR_803E_GOODS_VAN                                              :Goedere Wa
@@ -2211,7 +2331,7 @@
 STR_8058_WIZZOWOW_ROCKETEER                                     :Wizzowow Rocketeer
 STR_8059_PASSENGER_CAR                                          :Passasier Rytuig
 STR_805A_MAIL_VAN                                               :Pos Wa
-STR_805B_COAL_CAR                                               :Steenkool Trok
+STR_805B_COAL_CAR                                               :Kool Trok
 STR_805C_OIL_TANKER                                             :Olie Tenkwa
 STR_805D_LIVESTOCK_VAN                                          :Lewende Hawe Wa
 STR_805E_GOODS_VAN                                              :Goedere Wa
@@ -2243,9 +2363,9 @@
 STR_8078_PLODDYPHUT_MKI_BUS                                     :Ploddyphut MkI Bus
 STR_8079_PLODDYPHUT_MKII_BUS                                    :Ploddyphut MkII Bus
 STR_807A_PLODDYPHUT_MKIII_BUS                                   :Ploddyphut MkIII Bus
-STR_807B_BALOGH_COAL_TRUCK                                      :Balogh Steenkool Trok
-STR_807C_UHL_COAL_TRUCK                                         :Uhl Steenkool Trok
-STR_807D_DW_COAL_TRUCK                                          :DW Steenkool Trok
+STR_807B_BALOGH_COAL_TRUCK                                      :Balogh Kool Trok
+STR_807C_UHL_COAL_TRUCK                                         :Uhl Kool Trok
+STR_807D_DW_COAL_TRUCK                                          :DW Kool Trok
 STR_807E_MPS_MAIL_TRUCK                                         :MPS Pos Trok
 STR_807F_REYNARD_MAIL_TRUCK                                     :Reynard Pos Trok
 STR_8080_PERRY_MAIL_TRUCK                                       :Perry Pos Trok
@@ -2377,7 +2497,7 @@
 STR_80FE_GURU_X2_HELICOPTER                                     :Guru X2 Helikopter
 STR_80FF_POWERNAUT_HELICOPTER                                   :Powernaut Helikopter
 STR_8100_MESSAGE_FROM_VEHICLE_MANUFACTURE                       :{WHITE}Boodskap van voertuig fabrikant
-STR_8101_WE_HAVE_JUST_DESIGNED_A                                :{GOLD}Ons het juis 'n nuwe {STRING} ontwerp - sal jy in 'n jaar se eksklusief gebruik van die voertuig belang stel, dus kan ons sien hoe hy uitvoer voor dit algemeen beskikbaar is?
+STR_8101_WE_HAVE_JUST_DESIGNED_A                                :{GOLD}Ons het sopas ‘n nuwe {STRING} ontwerp, sal jy belangstel om hierdie voertuig eksklusief vir ‘n jaar te gebruik. Hierdie word gedoen om te kyk hoe die voertuig doen voordat hy wereld wyd in produksie gesit word?
 STR_8102_RAILROAD_LOCOMOTIVE                                    :spoorweg lokomotief
 STR_8103_ROAD_VEHICLE                                           :pad voertuig
 STR_8104_AIRCRAFT                                               :vliegtuig
@@ -2389,7 +2509,7 @@
 STR_8800_TRAIN_DEPOT                                            :{WHITE}{TOWN} Trein Depot
 STR_8801_CITIZENS_CELEBRATE_FIRST                               :{BLACK}{BIGFONT}Burgers herdenk . . .{}Eerste trein arriveer by {STATION}!
 STR_8802_DETAILS                                                :{WHITE}{VEHICLE} (Aanwyse)
-STR_8803_TRAIN_IN_THE_WAY                                       :{WHITE}Trein in die pad
+STR_8803_TRAIN_IN_THE_WAY                                       :{WHITE}Trein in die weg
 STR_8804                                                        :{SETX 10}{COMMA}: {STRING} {STRING}
 STR_8805                                                        :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
 STR_8806_GO_TO                                                  :Gaan na {STATION}
@@ -2399,11 +2519,11 @@
 STR_880A_GO_TO_LOAD                                             :Gaan na {STATION} (Laai)
 STR_880B_GO_TO_TRANSFER_LOAD                                    :Gaan na {STATION} (Oordrag en wag vir volle lading)
 STR_880C_GO_NON_STOP_TO                                         :Gaan deurgaande na {STATION}
-STR_880D_GO_TO_NON_STOP_TRANSFER                                :Gaan deurgaande na {STATION} (Oordrag en vat vrag)
+STR_880D_GO_TO_NON_STOP_TRANSFER                                :Gaan deurgaande na {STATION} (Oordra en neem vrag)
 STR_880E_GO_NON_STOP_TO_UNLOAD                                  :Gaan deurgaande na {STATION} (Aflaai)
-STR_880F_GO_TO_NON_STOP_TRANSFER_UNLOAD                         :Gaan deurgaande na {STATION} (Oordrag en verlaat leeg)
+STR_880F_GO_TO_NON_STOP_TRANSFER_UNLOAD                         :Gaan deurgaande na {STATION} (Oordra en verlaat leë)
 STR_8810_GO_NON_STOP_TO_LOAD                                    :Gaan deurgaande na {STATION} (Laai)
-STR_8811_GO_TO_NON_STOP_TRANSFER_LOAD                           :Gaan deurgaande na {STATION} (Oordrag en wag vir volle lading)
+STR_8811_GO_TO_NON_STOP_TRANSFER_LOAD                           :Gaan deurgaande na {STATION} (Oordra en wag vir volle lading)
 STR_GO_TO_TRAIN_DEPOT                                           :Gaan na {TOWN} Trein Depot
 STR_SERVICE_AT_TRAIN_DEPOT                                      :Diens by {TOWN} Trein Depot
 STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT                             :Gaan deurgaande na {TOWN} Trein Depot
@@ -2415,10 +2535,10 @@
 STR_HEADING_FOR_TRAIN_DEPOT_SERVICE                             :{LTBLUE}Diens by {TOWN} Trein Depot
 STR_HEADING_FOR_TRAIN_DEPOT_SERVICE_VEL                         :{LTBLUE}Diens by {TOWN} Trein Depot, {VELOCITY}
 
-STR_INVALID_ORDER                                               :{RED} (Swak Opdrag)
+STR_INVALID_ORDER                                               :{RED} (Ongeldig Opdrag)
 
 STR_UNKNOWN_DESTINATION                                         :onbekende destinasie
-STR_8812_EMPTY                                                  :{LTBLUE}Leeg
+STR_8812_EMPTY                                                  :{LTBLUE}Leë
 STR_8813_FROM                                                   :{LTBLUE}{CARGO} vanaf {STATION}
 STR_FROM_MULT                                                   :{LTBLUE}{CARGO} van {STATION} (x{NUM})
 STR_8814_TRAIN_IS_WAITING_IN_DEPOT                              :{WHITE}Trein {COMMA} wag in depot
@@ -2436,14 +2556,14 @@
 
 STR_881F_BUILD_VEHICLE                                          :{BLACK}Bou Voertuig
 STR_CLONE_ROAD_VEHICLE                                          :{BLACK}Kloon Voertuig
-STR_CLONE_ROAD_VEHICLE_INFO                                     :{BLACK}Dit sal 'n afskrywing van die pad voertuig bou. Control-kliek sal die opdrae deel
-STR_CLONE_ROAD_VEHICLE_DEPOT_INFO                               :{BLACK}Dit sal 'n afskrywing van 'n pad voertuig bou. Kliek die knoppie en dan op 'n pad voertuig binne of buite die depot. Control-kliek sal die opdrae deel
+STR_CLONE_ROAD_VEHICLE_INFO                                     :{BLACK}Dit sal 'n kopie van die pad voertuig bou. Control-kliek sal die opdrae deel
+STR_CLONE_ROAD_VEHICLE_DEPOT_INFO                               :{BLACK}Dit sal 'n kopie van 'n pad voertuig bou. Kliek die knoppie en dan op 'n pad voertuig binne of buite die depot. Control-kliek sal die opdrae deel
 STR_CLONE_TRAIN                                                 :{BLACK}Kloon Trein
-STR_CLONE_TRAIN_INFO                                            :{BLACK}Dit sa 'n afskrywing van die trein bou insluitend alle trokke. Control-kliek sal die opdrae deel
-STR_CLONE_TRAIN_DEPOT_INFO                                      :{BLACK}Dit sal 'n afskrywing van 'n trein bou insluitend alle trokke. Kliek die knoppie en dan op 'n trein binne of buite die depot. Control-kliek sal die opdrae deel
+STR_CLONE_TRAIN_INFO                                            :{BLACK}Dit sa 'n kopie van die trein bou insluitend alle trokke. Control-kliek sal die opdrae deel
+STR_CLONE_TRAIN_DEPOT_INFO                                      :{BLACK}Dit sal 'n kopie van 'n trein bou insluitend alle trokke. Kliek die knoppie en dan op 'n trein binne of buite die depot. Control-kliek sal die opdrae deel
 STR_8820_RENAME                                                 :{BLACK}Hernoem
 STR_8823_SKIP                                                   :{BLACK}Sprong
-STR_8824_DELETE                                                 :{BLACK}Uitwis
+STR_8824_DELETE                                                 :{BLACK}Uit vee
 STR_8825_NON_STOP                                               :{BLACK}Deurgaande
 STR_8826_GO_TO                                                  :{BLACK}Gaan Na
 STR_8827_FULL_LOAD                                              :{BLACK}Volle Lading
@@ -2465,57 +2585,57 @@
 STR_8831_NO_MORE_SPACE_FOR_ORDERS                               :{WHITE}Geen spasie vir nog opdrae
 STR_8832_TOO_MANY_ORDERS                                        :{WHITE}Te veel opdrae
 STR_8833_CAN_T_INSERT_NEW_ORDER                                 :{WHITE}Kan nie nuwe opdrag invoeg nie...
-STR_8834_CAN_T_DELETE_THIS_ORDER                                :{WHITE}Kan nie die opdrag verwyder nie...
+STR_8834_CAN_T_DELETE_THIS_ORDER                                :{WHITE}Kan nie die opdrag uitvee nie...
 STR_8835_CAN_T_MODIFY_THIS_ORDER                                :{WHITE}Die opdrag kan nie verander word nie...
 STR_CAN_T_MOVE_THIS_ORDER                                       :{WHITE}Kan nie opdrag beweeg nie...
 STR_CAN_T_SKIP_ORDER                                            :{WHITE}Kan nie huidige opdrag sprong nie...
 STR_CAN_T_SKIP_TO_ORDER                                         :{WHITE}Kan nie verkieste opdrag sprong nie...
-STR_8837_CAN_T_MOVE_VEHICLE                                     :{WHITE}Voertuig kan nie beweeg nie...
+STR_8837_CAN_T_MOVE_VEHICLE                                     :{WHITE}Kan nie voertuig beweeg nie...
 STR_8838_N_A                                                    :N/A{SKIP}
 STR_8839_CAN_T_SELL_RAILROAD_VEHICLE                            :{WHITE}Kan nie spoorweg voertuig verkoop nie...
 STR_883A_UNABLE_TO_FIND_ROUTE_TO                                :{WHITE}Kan nie roete na plaaslike depot vind nie
 STR_883B_CAN_T_STOP_START_TRAIN                                 :{WHITE}Trein kan nie stop/aanvang word nie...
 STR_883C_SERVICING_INTERVAL_DAYS                                :{BLACK}Diens tussentyd: {LTBLUE}{COMMA}dae{BLACK}   Laaste diens: {LTBLUE}{DATE_LONG}
 STR_SERVICING_INTERVAL_PERCENT                                  :{BLACK}Versiens tussentyd: {LTBLUE}{COMMA}%{BLACK}   Laaste versiening: {LTBLUE}{DATE_LONG}
-STR_883D_TRAINS_CLICK_ON_TRAIN_FOR                              :{BLACK}Treine - kliek op trein vir inligting
+STR_883D_TRAINS_CLICK_ON_TRAIN_FOR                              :{BLACK}Treine - kliek op trein vir informasie
 STR_883E_BUILD_NEW_TRAINS_REQUIRES                              :{BLACK}Bou nuwe treine (vereis trein depot)
 STR_883F_TRAINS_CLICK_ON_TRAIN_FOR                              :{BLACK}Treine - kliek op trein vir info., sleep voertuig om te bysit/verwyder van trein
 STR_8840_BUILD_NEW_TRAIN_VEHICLE                                :{BLACK}Bou nuwe trein voertuig
 STR_8841_DRAG_TRAIN_VEHICLE_TO_HERE                             :{BLACK}Sleep trein voertuig hier om dit te verkoop
 STR_8842_CENTER_MAIN_VIEW_ON_TRAIN                              :{BLACK}Senter skerm op trein depot
 STR_8843_TRAIN_VEHICLE_SELECTION                                :{BLACK}Trein voertuig keuse lys - kliek op voertuig vir inligting
-STR_8844_BUILD_THE_HIGHLIGHTED_TRAIN                            :{BLACK}Bou die beklemtoonde trein voertuig
+STR_8844_BUILD_THE_HIGHLIGHTED_TRAIN                            :{BLACK}Bou die verlig trein voertuig
 STR_8845_RENAME_TRAIN_VEHICLE_TYPE                              :{BLACK}Hernoem trein voertuig tipe
-STR_8846_CURRENT_TRAIN_ACTION_CLICK                             :{BLACK}Huidige trein aksie - kliek hier om trein te stop/aanvang trein
-STR_8847_SHOW_TRAIN_S_ORDERS                                    :{BLACK}Wys trein se opdrae
+STR_8846_CURRENT_TRAIN_ACTION_CLICK                             :{BLACK}Huidige trein aksie - kliek hier om trein te stop/aanskakel
+STR_8847_SHOW_TRAIN_S_ORDERS                                    :{BLACK}Toon trein se opdrae
 STR_8848_CENTER_MAIN_VIEW_ON_TRAIN                              :{BLACK}Senter skerm op trein
 STR_8849_SEND_TRAIN_TO_DEPOT                                    :{BLACK}Stuur trein na depot. CTRL+kliek sal net diens
-STR_884A_FORCE_TRAIN_TO_PROCEED                                 :{BLACK}Dwing trein om voort te gaan sonder om vir seine te wag
+STR_884A_FORCE_TRAIN_TO_PROCEED                                 :{BLACK}Forseer trein om voort te gaan sonder om vir sien die uit te klaar
 STR_884B_REVERSE_DIRECTION_OF_TRAIN                             :{BLACK}Omkeer rigting van trein
-STR_884C_SHOW_TRAIN_DETAILS                                     :{BLACK}Wys trein se aanwyse
+STR_884C_SHOW_TRAIN_DETAILS                                     :{BLACK}Toon trein besonderhede
 STR_884D_INCREASE_SERVICING_INTERVAL                            :{BLACK}Vergroot diens tussentyd
 STR_884E_DECREASE_SERVICING_INTERVAL                            :{BLACK}Verminder diens tussentyd
-STR_884F_SHOW_DETAILS_OF_CARGO_CARRIED                          :{BLACK}Wys aanwyse van vrag gedra
-STR_8850_SHOW_DETAILS_OF_TRAIN_VEHICLES                         :{BLACK}Wys aanwyse van trein voertuie
-STR_8851_SHOW_CAPACITIES_OF_EACH                                :{BLACK}Wys kapasiteite van elke voertuig
-STR_8852_SHOW_TOTAL_CARGO                                       :{BLACK}Wys totaale kapasitiet van trein, verdeel by vrag tipe
-STR_8852_ORDERS_LIST_CLICK_ON_ORDER                             :{BLACK}Opdraglys - kliek op 'n opdrag om dit te beklemtoon. CTRL + kliek senter op stasie
+STR_884F_SHOW_DETAILS_OF_CARGO_CARRIED                          :{BLACK}Toon besonderhede van vrag gedra
+STR_8850_SHOW_DETAILS_OF_TRAIN_VEHICLES                         :{BLACK}Toon besonderhede van trein voertuie
+STR_8851_SHOW_CAPACITIES_OF_EACH                                :{BLACK}Toon kapasiteite van elke voertuig
+STR_8852_SHOW_TOTAL_CARGO                                       :{BLACK}Toon totaale kapasitiet van trein, verdeel by vrag tipe
+STR_8852_ORDERS_LIST_CLICK_ON_ORDER                             :{BLACK}Opdraglys - kliek op 'n opdrag om dit te verlig. CTRL + kliek senter op stasie
 STR_8853_SKIP_THE_CURRENT_ORDER                                 :{BLACK}Sprong die huidige opdraag, en begin die volgende. CTRL + kliek sprong na verkieste opdrag
-STR_8854_DELETE_THE_HIGHLIGHTED                                 :{BLACK}Uitwis die beklemtoonde opdrag
-STR_8855_MAKE_THE_HIGHLIGHTED_ORDER                             :{BLACK}Maak die beklemtoonde opdrag deurgaande
-STR_8856_INSERT_A_NEW_ORDER_BEFORE                              :{BLACK}Invoeg 'n nuwe opdrag voor die beklemtoonde opdrag, of byvoeg na einde van lys
-STR_8857_MAKE_THE_HIGHLIGHTED_ORDER                             :{BLACK}Maak die beklemtoonde opdrag dwing die voertuig om vir 'n volle lading te wag
-STR_8858_MAKE_THE_HIGHLIGHTED_ORDER                             :{BLACK}Maak die beklemtoonde opdrag dwing die voertuig te aflaai
+STR_8854_DELETE_THE_HIGHLIGHTED                                 :{BLACK}Vee uit die verlig opdrag
+STR_8855_MAKE_THE_HIGHLIGHTED_ORDER                             :{BLACK}Maak die verlig opdrag deurgaande
+STR_8856_INSERT_A_NEW_ORDER_BEFORE                              :{BLACK}Invoeg 'n nuwe opdrag voor die verlig opdrag, of byvoeg na einde van lys
+STR_8857_MAKE_THE_HIGHLIGHTED_ORDER                             :{BLACK}Maak die verlig opdrag forseer die voertuig om vir 'n volle laai te wag
+STR_8858_MAKE_THE_HIGHLIGHTED_ORDER                             :{BLACK}Maak die verlig opdrag forseer die voertuig te aflaai
 STR_SERVICE_HINT                                                :{BLACK}Sprong die opdraag tensy 'n versiening nodig is
 STR_VEHICLE_INFO_COST_WEIGHT_SPEED_POWER                        :{BLACK}Koste: {CURRENCY} Gewig: {WEIGHT_S}{}Spoed: {VELOCITY}  Krag: {POWER}{}Loopkoste: {CURRENCY}/jr{}Kapasitiet: {CARGO}
-STR_885C_BROKEN_DOWN                                            :{RED}Oponthoud
+STR_885C_BROKEN_DOWN                                            :{RED}Komplikasies
 STR_885D_AGE_RUNNING_COST_YR                                    :{BLACK}Ouderdom: {LTBLUE}{STRING}{BLACK}   Loopkoste: {LTBLUE}{CURRENCY}/Jr
 STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED                         :{BLACK}Gewig: {LTBLUE}{WEIGHT_S}  {BLACK}Krag: {LTBLUE}{POWER}{BLACK} Max. spoed: {LTBLUE}{VELOCITY}
 STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE                  :{BLACK}Gewig: {LTBLUE}{WEIGHT_S} {BLACK}Krag: {LTBLUE}{POWER}{BLACK} Max. spoed: {LTBLUE}{VELOCITY} {BLACK}Max. T.E.: {LTBLUE}{FORCE}
 STR_885F_PROFIT_THIS_YEAR_LAST_YEAR                             :{BLACK}Profyt die jaar: {LTBLUE}{CURRENCY}  (verlede jaar: {CURRENCY})
-STR_8860_RELIABILITY_BREAKDOWNS                                 :{BLACK}Deeglikheid: {LTBLUE}{COMMA}%  {BLACK}Oponthoude sedert laaste diens: {LTBLUE}{COMMA}
+STR_8860_RELIABILITY_BREAKDOWNS                                 :{BLACK}Betroubaarheid: {LTBLUE}{COMMA}%  {BLACK}Komplikasies na laaste diens: {LTBLUE}{COMMA}
 STR_8861_STOPPED                                                :{RED}Gestop
-STR_8862_CAN_T_MAKE_TRAIN_PASS_SIGNAL                           :{WHITE}Kan nie trein dwing om sein te vermy op gevaar...
+STR_8862_CAN_T_MAKE_TRAIN_PASS_SIGNAL                           :{WHITE}Kan nie trein forseer om sein te vermy op gevaar...
 STR_8863_CRASHED                                                :{RED}Botsing!
 
 STR_8865_NAME_TRAIN                                             :{WHITE}Benaam trein
@@ -2525,8 +2645,8 @@
 STR_8869_CAN_T_REVERSE_DIRECTION                                :{WHITE}Kan nie rigting van trein omkeer nie...
 STR_886A_RENAME_TRAIN_VEHICLE_TYPE                              :{WHITE}Hernoem trein voertuig tipe
 STR_886B_CAN_T_RENAME_TRAIN_VEHICLE                             :{WHITE}Trein voertuig tipe kan nie hernoem word nie...
-STR_886D_MAKE_THE_HIGHLIGHTED_ORDER                             :{BLACK}Maak die beklemtoonde opdrag dwing die voertuig om sy vrag te stort
-STR_886F_TRANSFER                                               :{BLACK}Oordrag
+STR_886D_MAKE_THE_HIGHLIGHTED_ORDER                             :{BLACK}Maak die verlig opdrag forseer die voertuig om sy vrag te stort
+STR_886F_TRANSFER                                               :{BLACK}Oordra
 STR_CLEAR_TIME                                                  :{BLACK}Reinig Tyd
 
 STR_TRAIN_STOPPING                                              :{RED}Ophou
@@ -2535,11 +2655,12 @@
 STR_TRAIN_NO_POWER                                              :{RED}Geen Krag
 
 
-STR_CAN_T_TIMETABLE_VEHICLE                                     :{WHITE}Kan nie voertuig tydtafel nie...
+
+STR_CAN_T_TIMETABLE_VEHICLE                                     :{WHITE}Kan nie rooster voertuig nie...
 
 ##id 0x9000
 STR_9000_ROAD_VEHICLE_IN_THE_WAY                                :{WHITE}Pad voertuig in die pad
-STR_9001_ROAD_VEHICLES                                          :{WHITE}{COMPANY} - {COMMA} Pad voertuig{P "" s}
+STR_9001_ROAD_VEHICLES                                          :{WHITE}{COMPANY} - {COMMA} Pad voert{P uig uie}
 STR_9002                                                        :{WHITE}{VEHICLE}
 STR_9003_ROAD_VEHICLE_DEPOT                                     :{WHITE}{TOWN} Pad Voertuig Depot
 STR_9004_NEW_VEHICLES                                           :{BLACK}Nuwe Voertuie
@@ -2550,12 +2671,12 @@
 STR_900D_AGE_RUNNING_COST_YR                                    :{BLACK}Ouderdom: {LTBLUE}{STRING}{BLACK}   Loopkoste: {LTBLUE}{CURRENCY}/Jr
 STR_900E_MAX_SPEED                                              :{BLACK}Max. spoed: {LTBLUE}{VELOCITY}
 STR_900F_PROFIT_THIS_YEAR_LAST_YEAR                             :{BLACK}Profyt die jaar: {LTBLUE}{CURRENCY}  (verlede jaar: {CURRENCY})
-STR_9010_RELIABILITY_BREAKDOWNS                                 :{BLACK}Deeglikheid: {LTBLUE}{COMMA}%  {BLACK}Oponthoude sedert laaste diens: {LTBLUE}{COMMA}
+STR_9010_RELIABILITY_BREAKDOWNS                                 :{BLACK}Betroubaarheid: {LTBLUE}{COMMA}% {BLACK}Komplikasies na laaste diens: {LTBLUE}{COMMA}
 STR_9011_BUILT_VALUE                                            :{LTBLUE}{ENGINE}{BLACK}   Gebou: {LTBLUE}{NUM}{BLACK} Waarde: {LTBLUE}{CURRENCY}
 STR_9012_CAPACITY                                               :{BLACK}Kapasitiet: {LTBLUE}{CARGO}
 STR_9013_MUST_BE_STOPPED_INSIDE                                 :{WHITE}...moet gestop binne 'n pad voertuig depot wees
 STR_9014_CAN_T_SELL_ROAD_VEHICLE                                :{WHITE}Kan nie pad voertuig verkoop nie
-STR_9015_CAN_T_STOP_START_ROAD_VEHICLE                          :{WHITE}Kani nie pad voertuig stop/aanvang nie...
+STR_9015_CAN_T_STOP_START_ROAD_VEHICLE                          :{WHITE}Kani nie pad voertuig stop/aanskakel nie...
 STR_9016_ROAD_VEHICLE_IS_WAITING                                :{WHITE}Pad voertuig {COMMA} wag in depot
 STR_HEADING_FOR_ROAD_DEPOT                                      :{ORANGE}Op pad na {TOWN} Pad Depot
 STR_HEADING_FOR_ROAD_DEPOT_VEL                                  :{ORANGE}Op pad na {TOWN} Pad Depot, {VELOCITY}
@@ -2565,18 +2686,18 @@
 STR_9019_UNABLE_TO_FIND_LOCAL_DEPOT                             :{WHITE}Kan nie plaaslike depot vind nie
 STR_901A_ROAD_VEHICLES_CLICK_ON                                 :{BLACK}Pad voertuie - kliek op voertuig vir inligting
 STR_901B_BUILD_NEW_ROAD_VEHICLES                                :{BLACK}Bou nuwe pad voertuie (vereis pad voertuig depot)
-STR_901C_CURRENT_VEHICLE_ACTION                                 :{BLACK}Huidige voertuig aksie - kliek hier om voertuig to stop/aanvang
-STR_901D_SHOW_VEHICLE_S_ORDERS                                  :{BLACK}Wys voertuig se opdrae
+STR_901C_CURRENT_VEHICLE_ACTION                                 :{BLACK}Huidige voertuig aksie - kliek hier om voertuig to stop/aanskakel
+STR_901D_SHOW_VEHICLE_S_ORDERS                                  :{BLACK}Toon voertuig se opdrae
 STR_901E_CENTER_MAIN_VIEW_ON_VEHICLE                            :{BLACK}Senter skerm op voertuig
 STR_901F_SEND_VEHICLE_TO_DEPOT                                  :{BLACK}Stuur voertuig na depot. CTRL+kliek sal net diens
-STR_9020_FORCE_VEHICLE_TO_TURN_AROUND                           :{BLACK}Dwing voertuig om te draai om
+STR_9020_FORCE_VEHICLE_TO_TURN_AROUND                           :{BLACK}Forseer voertuig om te draai om
 STR_9021_SHOW_ROAD_VEHICLE_DETAILS                              :{BLACK}Wys pad voertuig aanwyse
 STR_9022_VEHICLES_CLICK_ON_VEHICLE                              :{BLACK}Voertuie - kliek op voertuig vir inligting
 STR_9023_BUILD_NEW_ROAD_VEHICLE                                 :{BLACK}Bou nuwe pad voertuig
 STR_9024_DRAG_ROAD_VEHICLE_TO_HERE                              :{BLACK}Sleep pad voertuig hier om dit te verkoop
 STR_9025_CENTER_MAIN_VIEW_ON_ROAD                               :{BLACK}Senter skerm op pad voertuig depot
 STR_9026_ROAD_VEHICLE_SELECTION                                 :{BLACK}Pad voertuig keuse lys - kliek op voertuig vir inligting
-STR_9027_BUILD_THE_HIGHLIGHTED_ROAD                             :{BLACK}Bou die beklemtoonde pad voertuig
+STR_9027_BUILD_THE_HIGHLIGHTED_ROAD                             :{BLACK}Bou die verlig pad voertuig
 STR_902A_COST_SPEED_RUNNING_COST                                :{BLACK}Koste: {CURRENCY}{}Spoed: {VELOCITY}{}Loopkoste: {CURRENCY}/jr{}Kapasitiet: {CARGO}
 STR_ARTICULATED_RV_CAPACITY                                     :{BLACK}Kapasiteit: {LTBLUE}
 STR_BARE_CARGO                                                  :{CARGO}
@@ -2590,7 +2711,7 @@
 STR_9030_CITIZENS_CELEBRATE_FIRST_TRAM                          :{BLACK}{BIGFONT}Burgers herdenk . . .{}Eerste vrag trein arriveer by {STATION}!
 STR_9031_ROAD_VEHICLE_CRASH_DRIVER                              :{BLACK}{BIGFONT}Pad Voertuig Botsing!{}Bestuurder sterf in vuurbol na botsing met trein
 STR_9032_ROAD_VEHICLE_CRASH_DIE                                 :{BLACK}{BIGFONT}Pad voertuig Botsing!{}{COMMA} sterf in vuurbol na botsing met trein
-STR_9033_CAN_T_MAKE_VEHICLE_TURN                                :{WHITE}Kan nie voertuig dwing om te omdraai nie
+STR_9033_CAN_T_MAKE_VEHICLE_TURN                                :{WHITE}Kan nie voertuig forseer om te omdraai nie...
 STR_ONLY_TURN_SINGLE_UNIT                                       :{WHITE}Kan nie voertuie van veel deele draai nie
 STR_9034_RENAME                                                 :{BLACK}Hernoem
 STR_9035_RENAME_ROAD_VEHICLE_TYPE                               :{BLACK}Hernoem pad voertuig tipe
@@ -2613,8 +2734,8 @@
 STR_9808_NEW_SHIPS                                              :{WHITE}Nuwe Skepe
 STR_9809_BUILD_SHIP                                             :{BLACK}Bou Skip
 STR_CLONE_SHIP                                                  :{BLACK}Kloon Skip
-STR_CLONE_SHIP_INFO                                             :{BLACK}Dit sal 'n afskrywing van die skip bou. Control-kliek sal die opdrae deel
-STR_CLONE_SHIP_DEPOT_INFO                                       :{BLACK}Dit sal 'n afskrywing van 'n skip bou. Kliek die knoppie en dan op 'n skip binne of buite die depot. Control-kliek sal die opdrae deel
+STR_CLONE_SHIP_INFO                                             :{BLACK}Dit sal 'n kopie van die skip bou. Control-kliek sal die opdrae deel
+STR_CLONE_SHIP_DEPOT_INFO                                       :{BLACK}Dit sal 'n kopie van 'n skip bou. Kliek die knoppie en dan op 'n skip binne of buite die depot. Control-kliek sal die opdrae deel
 STR_980B_SHIP_MUST_BE_STOPPED_IN                                :{WHITE}Skip moet in 'n depot gestop wees
 STR_980C_CAN_T_SELL_SHIP                                        :{WHITE}Skip kan nie verkoop word nie...
 STR_980D_CAN_T_BUILD_SHIP                                       :{WHITE}Kan nie skip bou nie...
@@ -2624,10 +2745,10 @@
 STR_9812_AGE_RUNNING_COST_YR                                    :{BLACK}Ouderdom: {LTBLUE}{STRING}{BLACK}   Loopkoste: {LTBLUE}{CURRENCY}/Jr
 STR_9813_MAX_SPEED                                              :{BLACK}Max. spoed: {LTBLUE}{VELOCITY}
 STR_9814_PROFIT_THIS_YEAR_LAST_YEAR                             :{BLACK}Profyt die jaar: {LTBLUE}{CURRENCY}  (verlede jaar: {CURRENCY})
-STR_9815_RELIABILITY_BREAKDOWNS                                 :{BLACK}Deeglikheid: {LTBLUE}{COMMA}%  {BLACK}Oponthoude sedert laaste diens: {LTBLUE}{COMMA}
+STR_9815_RELIABILITY_BREAKDOWNS                                 :{BLACK}Betroubaarheid: {LTBLUE}{COMMA}%  {BLACK}Komplikasies na laaste diens: {LTBLUE}{COMMA}
 STR_9816_BUILT_VALUE                                            :{LTBLUE}{ENGINE}{BLACK}   Gebou: {LTBLUE}{NUM}{BLACK} Waarde: {LTBLUE}{CURRENCY}
 STR_9817_CAPACITY                                               :{BLACK}Kapasitiet: {LTBLUE}{CARGO}
-STR_9818_CAN_T_STOP_START_SHIP                                  :{WHITE}Kan nie skip stop/aanvang nie
+STR_9818_CAN_T_STOP_START_SHIP                                  :{WHITE}Kan nie skip stop/aanskakel nie
 STR_9819_CAN_T_SEND_SHIP_TO_DEPOT                               :{WHITE}Kan nie skip na depot stuur nie...
 STR_981A_UNABLE_TO_FIND_LOCAL_DEPOT                             :{WHITE}Kan nie plaaslike depot vind nie
 STR_HEADING_FOR_SHIP_DEPOT                                      :{ORANGE}Op pad na {TOWN} Skip Depot
@@ -2641,11 +2762,11 @@
 STR_9820_BUILD_NEW_SHIP                                         :{BLACK}Bou nuwe skip
 STR_9821_DRAG_SHIP_TO_HERE_TO_SELL                              :{BLACK}Sleep skip hier om dit te verkoop
 STR_9822_CENTER_MAIN_VIEW_ON_SHIP                               :{BLACK}Senter skerm op skip depot
-STR_9823_SHIPS_CLICK_ON_SHIP_FOR                                :{BLACK}Skepe - kliek op skip vir inligting
+STR_9823_SHIPS_CLICK_ON_SHIP_FOR                                :{BLACK}Skepe - kliek op skip vir informasie
 STR_9824_BUILD_NEW_SHIPS_REQUIRES                               :{BLACK}Bou nuwe skepe (vereis skip depot)
 STR_9825_SHIP_SELECTION_LIST_CLICK                              :{BLACK}Skip keuse lys - kliek op skip vir inligting
-STR_9826_BUILD_THE_HIGHLIGHTED_SHIP                             :{BLACK}Bou die beklemtoonde skip
-STR_9827_CURRENT_SHIP_ACTION_CLICK                              :{BLACK}Huidige skip aksie - kliek hier om skip te stop/aanvang
+STR_9826_BUILD_THE_HIGHLIGHTED_SHIP                             :{BLACK}Bou die verlig skip
+STR_9827_CURRENT_SHIP_ACTION_CLICK                              :{BLACK}Huidige skip aksie - kliek hier om skip te stop/aanskakel
 STR_9828_SHOW_SHIP_S_ORDERS                                     :{BLACK}Wys skip se opdrae
 STR_9829_CENTER_MAIN_VIEW_ON_SHIP                               :{BLACK}Senter skerm op skip
 STR_982A_SEND_SHIP_TO_DEPOT                                     :{BLACK}Stuur skip na depot
@@ -2666,13 +2787,13 @@
 STR_983B_REFIT                                                  :{WHITE}{VEHICLE} (Herstel)
 STR_983C_REFIT_SHIP                                             :{BLACK}Herstel skip
 STR_983D_SELECT_TYPE_OF_CARGO_FOR                               :{BLACK}Kies vrag tipe vir skip te ontvoer
-STR_983E_REFIT_SHIP_TO_CARRY_HIGHLIGHTED                        :{BLACK}Herstel skip om die beklemtoonde vrag tipe te ontvoer
+STR_983E_REFIT_SHIP_TO_CARRY_HIGHLIGHTED                        :{BLACK}Herstel skip om die verlig vrag tipe te ontvoer
 STR_983F_SELECT_CARGO_TYPE_TO_CARRY                             :{GOLD}Kies vrag tipe vir skip te ontvoer:
 STR_9840_NEW_CAPACITY_COST_OF_REFIT                             :{BLACK}Nuwe kapasiteit: {GOLD}{CARGO}{}{BLACK}Herstelkoste: {GOLD}{CURRENCY}
 STR_9841_CAN_T_REFIT_SHIP                                       :{WHITE}Skip kan nie herstel word nie...
 STR_9842_REFITTABLE                                             :(herstelbaar)
 STR_GO_TO_SHIP_DEPOT                                            :Gaan na {TOWN} Skip Depot
-SERVICE_AT_SHIP_DEPOT                                           :Versiening by {TOWN} Skip Depot
+SERVICE_AT_SHIP_DEPOT                                           :Diens by {TOWN} Skip Depot
 
 ##id 0xA000
 STR_A000_AIRPORTS                                               :{WHITE}Lughawe
@@ -2680,8 +2801,8 @@
 STR_A002_AIRCRAFT_HANGAR                                        :{WHITE}{STATION} Vliegtuig Hangar
 STR_A003_NEW_AIRCRAFT                                           :{BLACK}Nuwe Vliegtuig
 STR_CLONE_AIRCRAFT                                              :{BLACK}Kloon Vliegtuig
-STR_CLONE_AIRCRAFT_INFO                                         :{BLACK}Dit sal 'n afskrywing van die vliegtuig bou. Control-kliek sal die opdrae deel
-STR_CLONE_AIRCRAFT_INFO_HANGAR_WINDOW                           :{BLACK}Dit sal 'n afskrywing van 'n vliegtuig bou. Kliek die knoppie en dan op 'n vliegtuig binne of buite die hangar. Control-kliek sal die opdrae deel
+STR_CLONE_AIRCRAFT_INFO                                         :{BLACK}Dit sal 'n kopie van die vliegtuig bou. Control-kliek sal die opdrae deel
+STR_CLONE_AIRCRAFT_INFO_HANGAR_WINDOW                           :{BLACK}Dit sal 'n kopie van 'n vliegtuig bou. Kliek die knoppie en dan op 'n vliegtuig binne of buite die hangar. Control-kliek sal die opdrae deel
 STR_A005_NEW_AIRCRAFT                                           :{WHITE}Nuwe Vliegtuig
 STR_A006_BUILD_AIRCRAFT                                         :{BLACK}Bou Vliegtuig
 STR_A008_CAN_T_BUILD_AIRCRAFT                                   :{WHITE}Kan nie vliegtuig bou nie...
@@ -2692,7 +2813,7 @@
 STR_A00D_AGE_RUNNING_COST_YR                                    :{BLACK}Ouderdom: {LTBLUE}{STRING}{BLACK}   Loopkoste: {LTBLUE}{CURRENCY}/Jr
 STR_A00E_MAX_SPEED                                              :{BLACK}Max. spoed: {LTBLUE}{VELOCITY}
 STR_A00F_PROFIT_THIS_YEAR_LAST_YEAR                             :{BLACK}Profyt die jaar: {LTBLUE}{CURRENCY}  (verlede jaar: {CURRENCY})
-STR_A010_RELIABILITY_BREAKDOWNS                                 :{BLACK}Deeglikheid: {LTBLUE}{COMMA}%  {BLACK}Oponthoude sedert laaste diens: {LTBLUE}{COMMA}
+STR_A010_RELIABILITY_BREAKDOWNS                                 :{BLACK}Betroubaarheid: {LTBLUE}{COMMA}%  {BLACK}Komplikasies na laaste diens: {LTBLUE}{COMMA}
 STR_A011_BUILT_VALUE                                            :{LTBLUE}{ENGINE}{BLACK}   Gebou: {LTBLUE}{NUM}{BLACK} Waarde: {LTBLUE}{CURRENCY}
 STR_A012_CAN_T_SEND_AIRCRAFT_TO                                 :{WHITE}Kan nie vlietuig na hangar stuur nie...
 STR_HEADING_FOR_HANGAR                                          :{ORANGE}Op pad na {STATION} Hangar
@@ -2701,7 +2822,7 @@
 STR_HEADING_FOR_HANGAR_SERVICE_VEL                              :{LTBLUE}Diens by {STATION} Hangar, {VELOCITY}
 STR_A014_AIRCRAFT_IS_WAITING_IN                                 :{WHITE}Vliegtuig {COMMA} wag in die vliegtuig hangar
 STR_A015_AIRCRAFT_IN_THE_WAY                                    :{WHITE}Vliegtuig in die pad
-STR_A016_CAN_T_STOP_START_AIRCRAFT                              :{WHITE}Kan nie vliegtuig stop/aanvang nie...
+STR_A016_CAN_T_STOP_START_AIRCRAFT                              :{WHITE}Kan nie vliegtuig stop/aanskakel nie...
 STR_A017_AIRCRAFT_IS_IN_FLIGHT                                  :{WHITE}Vliegtuig is opvlug
 STR_A019_CAPACITY                                               :{BLACK}Kapasiteit: {LTBLUE}{CARGO}, {CARGO}
 STR_A01A_CAPACITY                                               :{BLACK}Kapasiteit: {LTBLUE}{CARGO}
@@ -2709,19 +2830,19 @@
 STR_A01C_CAN_T_SELL_AIRCRAFT                                    :{WHITE}Vliegtuig kan nie verkoop word nie...
 STR_A01D_AIRPORT_CONSTRUCTION                                   :Lughawe konstruksie
 STR_A01E_BUILD_AIRPORT                                          :{BLACK}Bou lughawe
-STR_A01F_AIRCRAFT_CLICK_ON_AIRCRAFT                             :{BLACK}Vliegtuie - kliek op vliegtuig vir inligting
+STR_A01F_AIRCRAFT_CLICK_ON_AIRCRAFT                             :{BLACK}Vliegtuie - kliek op vliegtuig vir informasie
 STR_A020_BUILD_NEW_AIRCRAFT_REQUIRES                            :{BLACK}Bou nuwe vliegtuig (vereis lughawe met hangar)
-STR_A021_AIRCRAFT_CLICK_ON_AIRCRAFT                             :{BLACK}Vliegtuie - kliek op vliegtuig vir inligting
+STR_A021_AIRCRAFT_CLICK_ON_AIRCRAFT                             :{BLACK}Vliegtuie - kliek op vliegtuig vir informasie
 STR_A022_BUILD_NEW_AIRCRAFT                                     :{BLACK}Bou nuwe vliegtuig
 STR_A023_DRAG_AIRCRAFT_TO_HERE_TO                               :{BLACK}Sleep vliegtuig hier om dit te verkoop
 STR_A024_CENTER_MAIN_VIEW_ON_HANGAR                             :{BLACK}Senter skerm op hangar
 STR_A025_AIRCRAFT_SELECTION_LIST                                :{BLACK}Vliegtuig keuse lys - kliek op vliegtuig vir inligting
-STR_A026_BUILD_THE_HIGHLIGHTED_AIRCRAFT                         :{BLACK}Bou die beklemtoonde vliegtuig
-STR_A027_CURRENT_AIRCRAFT_ACTION                                :{BLACK}Huidige vliegtuig aksie - kliek hier on vliegtuig te stop/aanvang
-STR_A028_SHOW_AIRCRAFT_S_ORDERS                                 :{BLACK}Wys vliegtuig se opdrae
+STR_A026_BUILD_THE_HIGHLIGHTED_AIRCRAFT                         :{BLACK}Bou die verlig vliegtuig
+STR_A027_CURRENT_AIRCRAFT_ACTION                                :{BLACK}Huidige vliegtuig aksie - kliek hier on vliegtuig te stop/aanskakel
+STR_A028_SHOW_AIRCRAFT_S_ORDERS                                 :{BLACK}Toon vliegtuig se opdrae
 STR_A029_CENTER_MAIN_VIEW_ON_AIRCRAFT                           :{BLACK}Senter skerm op vliegtuig
 STR_A02A_SEND_AIRCRAFT_TO_HANGAR                                :{BLACK}Stuur vliegtuig na hangar. CTRL+kliek sal net diens
-STR_A02B_SHOW_AIRCRAFT_DETAILS                                  :{BLACK}Wys vliegtuig aanwyse
+STR_A02B_SHOW_AIRCRAFT_DETAILS                                  :{BLACK}Toon vliegtuig aanwyse
 STR_A02E_COST_MAX_SPEED_CAPACITY                                :{BLACK}Koste: {CURRENCY} Max. Spoed: {VELOCITY}{}Kapasiteit: {COMMA} passasiers, {COMMA} sakke van pos{}Loopkoste: {CURRENCY}/Jr
 
 STR_A030_NAME_AIRCRAFT                                          :{WHITE}Benaam vliegtuig
@@ -2738,22 +2859,22 @@
 STR_A03C_REFIT                                                  :{WHITE}{VEHICLE} (Herstel)
 STR_A03D_REFIT_AIRCRAFT                                         :{BLACK}Herstel vliegtuig
 STR_A03E_SELECT_TYPE_OF_CARGO_FOR                               :{BLACK}Kies vrag tipe vir vliegtuig om te ontvoer
-STR_A03F_REFIT_AIRCRAFT_TO_CARRY                                :{BLACK}Herstel vliegtuig om beklemtoonde vrag tipe te ontvoer
+STR_A03F_REFIT_AIRCRAFT_TO_CARRY                                :{BLACK}Herstel vliegtuig om verlig vrag tipe te ontvoer
 STR_A040_SELECT_CARGO_TYPE_TO_CARRY                             :{GOLD}Kies vrag tipe om te ontvoer:
 STR_A041_NEW_CAPACITY_COST_OF_REFIT                             :{BLACK}Nuwe kapasiteit: {GOLD}{STRING}{}{BLACK}Herstelkoste: {GOLD}{CURRENCY}
 STR_A042_CAN_T_REFIT_AIRCRAFT                                   :{WHITE}Vliegtuig kan nie herstel word nie...
 STR_GO_TO_AIRPORT_HANGAR                                        :Gaan na {STATION} Hangar
-SERVICE_AT_AIRPORT_HANGAR                                       :Versiening by {STATION} Hangar
+SERVICE_AT_AIRPORT_HANGAR                                       :Diens by {STATION} Hangar
 
 
 ##id 0xB000
 STR_B000_ZEPPELIN_DISASTER_AT                                   :{BLACK}{BIGFONT}Zeppelin ramp by {STATION}!
 STR_B001_ROAD_VEHICLE_DESTROYED                                 :{BLACK}{BIGFONT}Pad voertuig vernietig in 'VVV' botsing!
 STR_B002_OIL_REFINERY_EXPLOSION                                 :{BLACK}{BIGFONT}Olie raffineerdery ontploffing naby {TOWN}!
-STR_B003_FACTORY_DESTROYED_IN_SUSPICIOUS                        :{BLACK}{BIGFONT}Fabriek vernietig in verdage omstandighede naby {TOWN}!
+STR_B003_FACTORY_DESTROYED_IN_SUSPICIOUS                        :{BLACK}{BIGFONT}fabriek vernietig in agterdogtig omstandighede naby {TOWN}!
 STR_B004_UFO_LANDS_NEAR                                         :{BLACK}{BIGFONT}'VVV' beland naby {TOWN}!
-STR_B005_COAL_MINE_SUBSIDENCE_LEAVES                            :{BLACK}{BIGFONT}Steenkool myn bedaaring los spoor van vernietiging naby {TOWN}!
-STR_B006_FLOOD_VEHICLE_DESTROYED                                :{BLACK}{BIGFONT}Vloede!{}Te minste {COMMA} verlore, vermoede dood agter beduidend vloeding!
+STR_B005_COAL_MINE_SUBSIDENCE_LEAVES                            :{BLACK}{BIGFONT}Kool myn bedaaring los spoor van vernietiging naby {TOWN}!
+STR_B006_FLOOD_VEHICLE_DESTROYED                                :{BLACK}{BIGFONT}Oorstroom!{}Te minste {COMMA} vermis, aangeneem dood na beduidende oorstroom!
 
 STR_BRIBE_FAILED                                                :{WHITE}Jou omkooping onderneeming is deur
 STR_BRIBE_FAILED_2                                              :{WHITE}'n streek navorser uitgevind
@@ -2795,14 +2916,14 @@
 
 
 STR_CURRENCY_WINDOW                                             :{WHITE}Gewoonte koers
-STR_CURRENCY_EXCHANGE_RATE                                      :{LTBLUE}Wisselkoers: {ORANGE}{CURRENCY} =  {COMMA}
+STR_CURRENCY_EXCHANGE_RATE                                      :{LTBLUE}Wissel koers: {ORANGE}{CURRENCY} = £ {COMMA}
 STR_CURRENCY_SEPARATOR                                          :{LTBLUE}Afskeier
 STR_CURRENCY_PREFIX                                             :{LTBLUE}Vervoegsel:
 STR_CURRENCY_SUFFIX                                             :{LTBLUE}Agtervoegsel:
 STR_CURRENCY_SWITCH_TO_EURO                                     :{LTBLUE}Verwissel na Euro: {ORANGE}{NUM}
 STR_CURRENCY_SWITCH_TO_EURO_NEVER                               :{LTBLUE}Verwissel na Euro: {ORANGE}nooit
 STR_CURRENCY_PREVIEW                                            :{LTBLUE}Voorskou: {ORANGE}{CURRENCY}
-STR_CURRENCY_CHANGE_PARAMETER                                   :{BLACK}Verander gewoonte koers stelling
+STR_CURRENCY_CHANGE_PARAMETER                                   :{BLACK}verander gebruiklike koers parameter
 
 STR_BUS                                                         :{BLACK}{BUS}
 STR_LORRY                                                       :{BLACK}{LORRY}
@@ -2812,7 +2933,8 @@
 
 
 ### depot strings
-STR_DEPOT_SELL_CONFIRMATION_TEXT                                :{YELLOW}Is jy seker jy wil al die voertuie in die depot nou verkoop?
+STR_DEPOT_SELL_CONFIRMATION_TEXT                                :{YELLOW}U staan op die punt om al die voertuie in die depot te verkoop. Is jy seker?
+STR_DEPOT_WRONG_DEPOT_TYPE                                      :Verkeerde depot tipe
 
 STR_DEPOT_SELL_ALL_BUTTON_TRAIN_TIP                             :{BLACK}Verkoop allep treine in die depot
 STR_DEPOT_SELL_ALL_BUTTON_ROADVEH_TIP                           :{BLACK}Verkoop alle pad voertuie in die depot
@@ -2841,13 +2963,13 @@
 STR_MASS_STOP_DEPOT_SHIP_TIP                                    :{BLACK}Kliek om alle skepe in die depot te stop
 STR_MASS_STOP_HANGAR_TIP                                        :{BLACK}Kliek om alle vlietuie in die hangar te stop
 
-STR_MASS_START_DEPOT_TRAIN_TIP                                  :{BLACK}Kliek om alle treine in die depot te laat ry
-STR_MASS_START_DEPOT_ROADVEH_TIP                                :{BLACK}Kliek om alle pad voertuie in die depot te laayt ry
-STR_MASS_START_DEPOT_SHIP_TIP                                   :{BLACK}Kliek om alle skepe in die depot te laat ry
-STR_MASS_START_HANGAR_TIP                                       :{BLACK}Kliek om alle vliegtuie in die hangar te laat ry
+STR_MASS_START_DEPOT_TRAIN_TIP                                  :{BLACK}Kliek om alle treine in die depot te aanskakel
+STR_MASS_START_DEPOT_ROADVEH_TIP                                :{BLACK}Kliek om alle pad voertuie in die depot te aanskakel
+STR_MASS_START_DEPOT_SHIP_TIP                                   :{BLACK}Kliek om alle skepe in die depot te aanskakel
+STR_MASS_START_HANGAR_TIP                                       :{BLACK}Kliek om alle vliegtuie in die hangar te aanskakel
 
 STR_MASS_STOP_LIST_TIP                                          :{BLACK}Kliek om alle voertuie in die lys te stop
-STR_MASS_START_LIST_TIP                                         :{BLACK}Kliek om aller voertuie in die lys te laat ry
+STR_MASS_START_LIST_TIP                                         :{BLACK}Kliek om aller voertuie in die lys te aanskakel
 
 
 
@@ -2863,31 +2985,31 @@
 
 ########### String for New Landscape Generator
 
-STR_GENERATE                                                    :{WHITE}Ontwikkel
-STR_LAND_GENERATOR                                              :{BLACK}Land ontwikkelaar:
+STR_GENERATE                                                    :{WHITE}Opwek
+STR_LAND_GENERATOR                                              :{BLACK}Daal genereerder:
 STR_HEIGHTMAP_ROTATION                                          :{BLACK}Hoogtekaart rotasie:
 STR_DATE                                                        :{BLACK}Date:
 STR_GENERATE_DATE                                               :{BLACK}{DATE_LONG}
 STR_HEIGHTMAP_SCALE_WARNING_CAPTION                             :{WHITE}Skaal waaskuwing
-STR_HEIGHTMAP_SCALE_WARNING_MESSAGE                             :{YELLOW}Te veel afskaaling van oorpsrong kaart is nie goedgekeur nie. Gaan aan met ontwikkeling?
+STR_HEIGHTMAP_SCALE_WARNING_MESSAGE                             :{YELLOW}Om te verstel oorsprong werfkaart te is nie aanbeveel. Voortgaan met die generasie?
 STR_HEIGHTMAP_NAME                                              :{BLACK}Hoogtekaart name:
 STR_HEIGHTMAP_SIZE                                              :{BLACK}Groote: {ORANGE}{NUM} x {NUM}
-STR_GENERATION_WORLD                                            :{WHITE}Wereld Ontwikkeling...
+STR_GENERATION_WORLD                                            :{WHITE}Genereer wêreld...
 STR_GENERATION_ABORT                                            :{BLACK}Verlaat
-STR_GENERATION_ABORT_CAPTION                                    :{WHITE}Verlaat Wereld Ontwikkeling
-STR_GENERATION_ABORT_MESSAGE                                    :{YELLOW}Wil jy rerig die ontwikkeling verlaat?
+STR_GENERATION_ABORT_CAPTION                                    :{WHITE}Verlaat Wêreld Generasie
+STR_GENERATION_ABORT_MESSAGE                                    :{YELLOW}Wil jy rerig die generasie verlaat?
 STR_GENERATION_PROGRESS                                         :{BLACK}{NUM} / {NUM}
 STR_CLEARING_TILES                                              :{BLACK}Ru en rotserig area ontwikkeling
-STR_DIFFICULTY_TO_CUSTOM                                        :{WHITE}Die aksie het die moeilikheids vlak na gewoonte verander
-STR_FLAT_WORLD_HEIGHT_DOWN                                      :{BLACK}Beweeg die hoogte van platte land een af
-STR_FLAT_WORLD_HEIGHT_UP                                        :{BLACK}Beweeg die hoogte van platte land bo een
-STR_FLAT_WORLD_HEIGHT_QUERY_CAPT                                :{WHITE}Verander die hoogte van platte land
-STR_FLAT_WORLD_HEIGHT                                           :{BLACK}Hoogte van platte land:
+STR_DIFFICULTY_TO_CUSTOM                                        :{WHITE}Hierdie aksie verander die moeite vlak to gebruiklike
+STR_FLAT_WORLD_HEIGHT_DOWN                                      :{BLACK}Beweeg die hoogte van platte daal een af
+STR_FLAT_WORLD_HEIGHT_UP                                        :{BLACK}Beweeg die hoogte van platte daal bo een
+STR_FLAT_WORLD_HEIGHT_QUERY_CAPT                                :{WHITE}Verander die hoogte van platte daal
+STR_FLAT_WORLD_HEIGHT                                           :{BLACK}Hoogte van platte daal:
 STR_FLAT_WORLD_HEIGHT_NUM                                       :{NUM}
 
 
 ########### String for new airports
-STR_CITY_AIRPORT                                                :{BLACK}Stad
+STR_CITY_AIRPORT                                                :{BLACK}Dorp
 STR_METRO_AIRPORT                                               :{BLACK}Metropolitaans lughawe
 STR_INTERNATIONAL_AIRPORT                                       :{BLACK}Internasionaale lughawe
 STR_COMMUTER_AIRPORT                                            :{BLACK}Pendelaar
@@ -2908,22 +3030,62 @@
 STR_MEASURE_AREA_HEIGHTDIFF                                     :{BLACK}Area: {NUM} x {NUM}{}Hoogte verskil: {NUM} m
 
 ############ Date formatting
+STR_DATE_TINY                                                   :{STRING}-{STRING}-{NUM}
+STR_DATE_SHORT                                                  :{STRING} {NUM}
+STR_DATE_LONG                                                   :{STRING} {STRING} {NUM}
 
 ########
 
+STR_FEEDER_CARGO_VALUE                                          :{BLACK}oordra Krediete: {LTBLUE}{CURRENCY}
+STR_DRIVE_THROUGH_ERROR_ON_TOWN_ROAD                            :{WHITE}...hierdie is 'n dorp besit pad
+STR_DRIVE_THROUGH_ERROR_DIRECTION                               :{WHITE}...pad teenoor in die verkeerde rigting
 
 
 
 ##### Mass Order
+STR_GROUP_NAME_FORMAT                                           :Groep {COMMA}
+STR_GROUP_TINY_NAME                                             :{TINYFONT}{GROUP}
+STR_GROUP_ALL_TRAINS                                            :Alle triene
+STR_GROUP_ALL_ROADS                                             :Alle pad voertuie
+STR_GROUP_ALL_SHIPS                                             :Alle skepe
+STR_GROUP_ALL_AIRCRAFTS                                         :Alle vliegtuie
+STR_GROUP_DEFAULT_TRAINS                                        :Ongegroepeerde treine
+STR_GROUP_DEFAULT_ROADS                                         :Ongegroepeerde pad voertuie
+STR_GROUP_DEFAULT_SHIPS                                         :Ongegroepeerde skepe
+STR_GROUP_DEFAULT_AIRCRAFTS                                     :Ongegroepeerde vliegtuig
+STR_GROUP_TINY_NUM                                              :{TINYFONT}{COMMA}
+STR_GROUP_ADD_SHARED_VEHICLE                                    :Voeg gedeel voertuie
+STR_GROUP_REMOVE_ALL_VEHICLES                                   :Verwyder alle voertuie
 
+STR_GROUP_TRAINS_CAPTION                                        :{WHITE}{GROUP} - {COMMA} Trein{P "" e}
+STR_GROUP_ROADVEH_CAPTION                                       :{WHITE}{GROUP} - {COMMA} Pad Voer{P tuig tuie}
+STR_GROUP_SHIPS_CAPTION                                         :{WHITE}{GROUP} - {COMMA} Sk{P ip epe}
+STR_GROUP_AIRCRAFTS_CAPTION                                     :{WHITE}{GROUP} - {COMMA} Vliegtuie
+STR_GROUP_RENAME_CAPTION                                        :{BLACK}Hernoem groep
+STR_GROUP_REPLACE_CAPTION                                       :{WHITE}Vervang Voertuie van "{GROUP}"
 
+STR_GROUP_CAN_T_CREATE                                          :{WHITE}Kan nie groep skep nie...
+STR_GROUP_CAN_T_DELETE                                          :{WHITE}Kan nie groep uitvee nie...
+STR_GROUP_CAN_T_RENAME                                          :{WHITE}Kan nie groep hernoem nie...
+STR_GROUP_CAN_T_REMOVE_ALL_VEHICLES                             :{WHITE}Kan nie alle voertuie van groep verwyder nie...
+STR_GROUP_CAN_T_ADD_VEHICLE                                     :{WHITE}Kan nie voeg die voertuig tot hierdie groep nie...
+STR_GROUP_CAN_T_ADD_SHARED_VEHICLE                              :{WHITE}Kan nie gedeel voertuie na groep byvoeg...
 
+STR_GROUPS_CLICK_ON_GROUP_FOR_TIP                               :{BLACK}Groepe - Kliek op 'n groep om te lys alle voertuie van hierdie groep
+STR_GROUP_CREATE_TIP                                            :{BLACK}kliek om groep te skep
+STR_GROUP_DELETE_TIP                                            :{BLACK}Vee uit die gekose groep
+STR_GROUP_RENAME_TIP                                            :{BLACK}Hernoem die gekose groep
+STR_GROUP_REPLACE_PROTECTION_TIP                                :{BLACK}Kliek om te beskerm hierdie groep van wêreldwyd outovervang
 
 STR_COMPANY_NAME                                                :{COMPANY}
+STR_ENGINE_NAME                                                 :{ENGINE}
+STR_GROUP_NAME                                                  :{GROUP}
 
 
 #### Improved sign GUI
 
 ########
 
+STR_FUND_NEW_INDUSTRY                                           :{BLACK}Fonds
 STR_BUILD_NEW_INDUSTRY                                          :{BLACK}Bou
+STR_INDUSTRY_SELECTION_HINT                                     :{BLACK}Kies die paslike nywerheid van hierdie lys
--- a/src/misc_cmd.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/misc_cmd.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -390,7 +390,7 @@
 
 	if (flags & DC_EXEC) {
 		if (p1 != (uint32)-1L) {
-			((int*)&_opt_ptr->diff)[p1] = p2;
+			((GDType*)&_opt_ptr->diff)[p1] = p2;
 			_opt_ptr->diff_level = 3; // custom difficulty level
 		} else {
 			_opt_ptr->diff_level = p2;
--- a/src/misc_gui.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/misc_gui.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -9,6 +9,7 @@
 #include "functions.h"
 #include "landscape.h"
 #include "newgrf.h"
+#include "newgrf_text.h"
 #include "saveload.h"
 #include "strings.h"
 #include "table/sprites.h"
@@ -505,6 +506,13 @@
 		CopyInDParam(0, _errmsg_decode_params, lengthof(_errmsg_decode_params));
 		DrawWindowWidgets(w);
 		CopyInDParam(0, _errmsg_decode_params, lengthof(_errmsg_decode_params));
+
+		/* If the error message comes from a NewGRF, we must use the text ref. stack reserved for error messages.
+		 * If the message doesn't come from a NewGRF, it won't use the TTDP-style text ref. stack, so we won't hurt anything
+		 */
+		SwitchToErrorRefStack();
+		RewindTextRefStack();
+
 		if (!IsWindowOfPrototype(w, _errmsg_face_widgets)) {
 			DrawStringMultiCenter(
 				120,
@@ -533,6 +541,9 @@
 					_errmsg_message_1,
 					w->width - 2);
 		}
+
+		/* Switch back to the normal text ref. stack for NewGRF texts */
+		SwitchToNormalRefStack();
 		break;
 
 	case WE_MOUSELOOP:
--- a/src/music_gui.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/music_gui.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -118,7 +118,8 @@
 		}
 	} while (_playlists[msf.playlist][i++] != 0 && i < lengthof(_cur_playlist) - 1);
 
-	if (msf.shuffle) {
+	/* Do not shuffle when on the intro-start window, as the song to play has to be the original TTD Theme*/
+	if (msf.shuffle && _game_mode != GM_MENU) {
 		i = 500;
 		do {
 			uint32 r = InteractiveRandom();
--- a/src/network/core/packet.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/network/core/packet.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -133,7 +133,8 @@
 void Packet::Send_string(const char* data)
 {
 	assert(data != NULL);
-	assert(this->size < sizeof(this->buffer) - strlen(data) - 1);
+	/* The <= *is* valid due to the fact that we are comparing sizes and not the index. */
+	assert(this->size + strlen(data) + 1 <= sizeof(this->buffer));
 	while ((this->buffer[this->size++] = *data++) != '\0') {}
 }
 
--- a/src/newgrf.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/newgrf.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -1541,8 +1541,8 @@
 		switch (prop) {
 			case 0x08: /* Bit number of cargo */
 				cs->bitnum = grf_load_byte(&buf);
-				cs->grfid = _cur_grffile->grfid;
 				if (cs->IsValid()) {
+					cs->grfid = _cur_grffile->grfid;
 					SETBIT(_cargo_mask, cid + i);
 				} else {
 					CLRBIT(_cargo_mask, cid + i);
@@ -1755,7 +1755,6 @@
 					return false;
 				}
 
-				tsp->grf_prop.override = ovrid;
 				_industile_mngr.Add(indtid + i, ovrid);
 			} break;
 
@@ -1854,6 +1853,9 @@
 					indsp->grf_prop.local_id = indid + i;
 					indsp->grf_prop.subst_id = subs_id;
 					indsp->grf_prop.grffile = _cur_grffile;
+					/* If the grf industry needs to check its surounding upon creation, it should
+					 * rely on callbacks, not on the original placement functions */
+					indsp->check_proc = CHECK_NOTHING;
 				}
 			} break;
 
@@ -1888,8 +1890,7 @@
 
 							copy_from = (IndustryTileTable*)_origin_industry_specs[type].table[laynbr];
 							for (size = 1;; size++) {
-								if (_origin_industry_specs[type].table[laynbr + (size - 1)]->ti.x == -0x80 &&
-										_origin_industry_specs[type].table[laynbr + (size - 1)]->ti.y == 0) break;
+								if (copy_from[size - 1].ti.x == -0x80 && copy_from[size - 1].ti.y == 0) break;
 							}
 							break;
 						}
@@ -2007,7 +2008,7 @@
 				break;
 
 			case 0x1A: // Special industry flags to define special behavior
-				indsp->behaviour = (IndustyBehaviour)grf_load_dword(&buf);
+				indsp->behaviour = (IndustryBehaviour)grf_load_dword(&buf);
 				break;
 
 			case 0x1B: // New industry text ID
@@ -2865,6 +2866,12 @@
 	for (uint i = 0; i < idcount; i++) {
 		uint8 stid = buf[3 + i];
 		StationSpec *statspec = _cur_grffile->stations[stid];
+
+		if (statspec == NULL) {
+			grfmsg(1, "StationMapSpriteGroup: Station with ID 0x%02X does not exist, skipping", stid);
+			return;
+		}
+
 		byte *bp = &buf[4 + idcount];
 
 		for (uint c = 0; c < cidcount; c++) {
@@ -2897,6 +2904,10 @@
 		for (uint i = 0; i < idcount; i++) {
 			uint8 stid = buf[3 + i];
 			StationSpec *statspec = _cur_grffile->stations[stid];
+			if (statspec == NULL) {
+				grfmsg(1, "StationMapSpriteGroup: Station with ID 0x%02X does not exist, skipping", stid);
+				continue;
+			}
 
 			statspec->spritegroup[CT_DEFAULT] = _cur_grffile->spritegroups[groupid];
 			statspec->grffile = _cur_grffile;
@@ -4060,7 +4071,8 @@
 							break;
 
 						case 0x0B: // Cargo
-							src1 = PerformGRM(_grm_cargos, NUM_CARGO, count, op, target, "cargos");
+							/* There are two ranges: one for cargo IDs and one for cargo bitmasks */
+							src1 = PerformGRM(_grm_cargos, NUM_CARGO * 2, count, op, target, "cargos");
 							if (_skip_sprites == -1) return;
 							break;
 
@@ -4179,8 +4191,19 @@
 			_traininfo_vehicle_pitch = res;
 			break;
 
+		case 0x8F: // Rail track type cost factors
+			_railtype_cost_multiplier[0] = GB(res, 0, 8);
+			if (_patches.disable_elrails) {
+				_railtype_cost_multiplier[1] = GB(res, 0, 8);
+				_railtype_cost_multiplier[2] = GB(res, 8, 8);
+			} else {
+				_railtype_cost_multiplier[1] = GB(res, 8, 8);
+				_railtype_cost_multiplier[2] = GB(res, 16, 8);
+			}
+			_railtype_cost_multiplier[3] = GB(res, 16, 8);
+			break;
+
 		/* @todo implement */
-		case 0x8F: // Rail track type cost factors
 		case 0x93: // Tile refresh offset to left
 		case 0x94: // Tile refresh offset to right
 		case 0x95: // Tile refresh offset upwards
@@ -4683,7 +4706,7 @@
 	                   |                                        (1 << 0x19)  // newships
 	                   |                                        (1 << 0x1A)  // newplanes
 	                   |           ((_patches.signal_side ? 1 : 0) << 0x1B)  // signalsontrafficside
-	                   |                                        (1 << 0x1C); // electrifiedrailway
+	                   |       ((_patches.disable_elrails ? 0 : 1) << 0x1C); // electrifiedrailway
 
 	_ttdpatch_flags[2] =                                        (1 << 0x01)  // loadallgraphics - obsolote
 	                   |                                        (1 << 0x03)  // semaphores
@@ -4695,7 +4718,7 @@
 	                   |                                        (0 << 0x10)  // moreindustriesperclimate - obsolete
 	                   |                                        (0 << 0x11)  // moretoylandfeatures
 	                   |                                        (1 << 0x12)  // newstations
-	                   |                                        (0 << 0x13)  // tracktypecostdiff
+	                   |                                        (1 << 0x13)  // tracktypecostdiff
 	                   |                                        (1 << 0x14)  // manualconvert
 	                   |       ((_patches.build_on_slopes ? 1 : 0) << 0x15)  // buildoncoasts
 	                   |                                        (1 << 0x16)  // canals
@@ -4704,7 +4727,7 @@
 	                   |                                        (1 << 0x19)  // newhouses
 	                   |                                        (1 << 0x1A)  // newbridges
 	                   |                                        (1 << 0x1B)  // newtownnames
-	                   |                                        (0 << 0x1C)  // moreanimations
+	                   |                                        (1 << 0x1C)  // moreanimation
 	                   |    ((_patches.wagon_speed_limits ? 1 : 0) << 0x1D)  // wagonspeedlimits
 	                   |                                        (1 << 0x1E)  // newshistory
 	                   |                                        (0 << 0x1F); // custombridgeheads
@@ -4955,6 +4978,9 @@
 	_traininfo_vehicle_pitch = 0;
 	_traininfo_vehicle_width = 29;
 
+	/* Reset track cost multipliers. */
+	memcpy(&_railtype_cost_multiplier, &_default_railtype_cost_multiplier, sizeof(_default_railtype_cost_multiplier));
+
 	_loaded_newgrf_features.has_2CC           = false;
 	_loaded_newgrf_features.has_newhouses     = false;
 	_loaded_newgrf_features.has_newindustries = false;
@@ -5258,7 +5284,7 @@
 	for (CargoID c = 0; c < NUM_CARGO; c++) {
 		CargoSpec *cs = &_cargo[c];
 		/* Don't map if the cargo is unavailable or not from NewGRF */
-		if (!cs->IsValid() || cs->grfid == 0) continue;
+		if (cs->grfid == 0) continue;
 
 		cs->name         = MapGRFStringID(cs->grfid, cs->name);
 		cs->name_single  = MapGRFStringID(cs->grfid, cs->name_single);
--- a/src/newgrf_cargo.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/newgrf_cargo.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -98,17 +98,19 @@
 }
 
 
-CargoID GetCargoTranslation(uint8 cargo, const GRFFile *grffile)
+CargoID GetCargoTranslation(uint8 cargo, const GRFFile *grffile, bool usebit)
 {
 	/* Pre-version 7 uses the 'climate dependent' ID, i.e. cargo is the cargo ID */
-	if (grffile->grf_version < 7) return HASBIT(_cargo_mask, cargo) ? cargo : (CargoID) CT_INVALID;
-
-	/* If the GRF contains a translation table (and the cargo is in bounds)
-	 * then get the cargo ID for the label */
-	if (cargo < grffile->cargo_max) return GetCargoIDByLabel(grffile->cargo_list[cargo]);
-
-	/* Else the cargo value is a 'climate independent' 'bitnum' */
-	return GetCargoIDByBitnum(cargo);
+	if (grffile->grf_version < 7) {
+		if (!usebit) return cargo;
+		/* Else the cargo value is a 'climate independent' 'bitnum' */
+		if (HASBIT(_cargo_mask, cargo)) return GetCargoIDByBitnum(cargo);
+	} else {
+		/* If the GRF contains a translation table (and the cargo is in bounds)
+		 * then get the cargo ID for the label */
+		if (cargo < grffile->cargo_max) return GetCargoIDByLabel(grffile->cargo_list[cargo]);
+	}
+	return CT_INVALID;
 }
 
 uint8 GetReverseCargoTranslation(CargoID cargo, const GRFFile *grffile)
--- a/src/newgrf_cargo.h	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/newgrf_cargo.h	Sat Oct 20 10:42:28 2007 +0000
@@ -29,7 +29,7 @@
 
 SpriteID GetCustomCargoSprite(const CargoSpec *cs);
 uint16 GetCargoCallback(CallbackID callback, uint32 param1, uint32 param2, const CargoSpec *cs);
-CargoID GetCargoTranslation(uint8 cargo, const GRFFile *grffile);
+CargoID GetCargoTranslation(uint8 cargo, const GRFFile *grffile, bool usebit = false);
 uint8 GetReverseCargoTranslation(CargoID cargo, const GRFFile *grffile);
 
 #endif /* NEWGRF_CARGO_H */
--- a/src/newgrf_commons.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/newgrf_commons.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -195,10 +195,10 @@
 
 	if (ind_id == invalid_ID) { // not found?  So this is the introduction of a new industry
 		/* Second step is dealing with the override. */
-		if (inds->grf_prop.override != invalid_ID && _industry_specs[inds->grf_prop.override].grf_prop.override == invalid_ID) {
+		if (inds->grf_prop.override != invalid_ID && _industry_specs[inds->grf_prop.override].grf_prop.grffile == NULL) {
 			/* this is an override, which means it will take the place of the industry it is
 			 * designed to replace. Before we conclude that the override is allowed,
-			* we first need to verify that the slot is not holding another override
+			* we first need to verify that the slot is not holding another industry from a grf
 			* If it's the case,it will be considered as a normal substitute */
 			ind_id = inds->grf_prop.override;
 		} else {
--- a/src/newgrf_gui.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/newgrf_gui.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -342,6 +342,7 @@
 				if (i >= w->vscroll.pos && i < w->vscroll.pos + w->vscroll.cap) {
 					const char *text = (c->name != NULL && !StrEmpty(c->name)) ? c->name : c->filename;
 					SpriteID pal;
+					byte txtoffset;
 
 					/* Pick a colour */
 					switch (c->status) {
@@ -365,7 +366,8 @@
 
 					DrawSprite(SPR_SQUARE, pal, 5, y + 2);
 					if (c->error != NULL) DrawSprite(SPR_WARNING_SIGN, 0, 20, y + 2);
-					DoDrawString(text, c->error != NULL ? 35 : 25, y + 3, WP(w, newgrf_d).sel == c ? 0xC : 0x10);
+					txtoffset = c->error != NULL ? 35 : 25;
+					DoDrawStringTruncated(text, txtoffset, y + 3, WP(w, newgrf_d).sel == c ? 0xC : 0x10, w->width - txtoffset - 10);
 					y += 14;
 				}
 			}
--- a/src/newgrf_house.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/newgrf_house.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -346,7 +346,7 @@
 				HASBIT(_transparent_opt, TO_HOUSES)
 			);
 		} else {
-			AddChildSpriteScreen(image, pal, dtss->delta_x, dtss->delta_y, HASBIT(_transparent_opt, TO_HOUSES));
+			AddChildSpriteScreen(image, pal, (byte)dtss->delta_x, (byte)dtss->delta_y, HASBIT(_transparent_opt, TO_HOUSES));
 		}
 	}
 }
--- a/src/newgrf_industries.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/newgrf_industries.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -83,7 +83,7 @@
  * @return value encoded as per NFO specs */
 uint32 GetIndustryIDAtOffset(TileIndex tile, const Industry *i)
 {
-	if (!IsTileType(tile, MP_INDUSTRY) || GetIndustryIndex(tile) == i->index) {
+	if (!IsTileType(tile, MP_INDUSTRY) || GetIndustryIndex(tile) != i->index) {
 		/* No industry and/or the tile does not have the same industry as the one we match it with */
 		return 0xFFFF;
 	}
@@ -458,6 +458,11 @@
 	 * the building of the industry, as that's how it's done in TTDP. */
 	if (group == NULL || group->type != SGT_CALLBACK) return true;
 
+	/* Copy some parameters from the registers to the error message text ref. stack */
+	SwitchToErrorRefStack();
+	PrepareTextRefStackUsage(4);
+	SwitchToNormalRefStack();
+
 	switch (group->g.callback.result) {
 		case 0x400: return true;
 		case 0x401: _error_message = STR_0239_SITE_UNSUITABLE; break;
--- a/src/newgrf_industrytiles.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/newgrf_industrytiles.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -196,7 +196,7 @@
 				!HASBIT(image, SPRITE_MODIFIER_OPAQUE) && HASBIT(_transparent_opt, TO_INDUSTRIES)
 			);
 		} else {
-			AddChildSpriteScreen(image, pal, dtss->delta_x, dtss->delta_y, HASBIT(_transparent_opt, TO_INDUSTRIES));
+			AddChildSpriteScreen(image, pal, (byte)dtss->delta_x, (byte)dtss->delta_y, HASBIT(_transparent_opt, TO_INDUSTRIES));
 		}
 	}
 }
@@ -265,6 +265,11 @@
 		return callback_res != 0;
 	}
 
+	/* Copy some parameters from the registers to the error message text ref. stack */
+	SwitchToErrorRefStack();
+	PrepareTextRefStackUsage(4);
+	SwitchToNormalRefStack();
+
 	switch (callback_res) {
 		case 0x400: return true;
 		case 0x401: _error_message = STR_0239_SITE_UNSUITABLE;                 return false;
@@ -294,7 +299,7 @@
 
 	bool frame_set_by_callback = false;
 	byte frame = GetIndustryAnimationState(tile);
-	uint16 num_frames = GB(itspec->animation_info, 0, 8) + 1;
+	uint16 num_frames = GB(itspec->animation_info, 0, 8);
 
 	if (HASBIT(itspec->callback_flags, CBM_INDT_ANIM_NEXT_FRAME)) {
 		uint16 callback_res = GetIndustryTileCallback(CBID_INDTILE_ANIM_NEXT_FRAME, HASBIT(itspec->animation_special_flags, 0) ? Random() : 0, 0, gfx, ind, tile);
--- a/src/newgrf_text.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/newgrf_text.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -538,30 +538,52 @@
 		this->stack[this->position + 1] = GB(word, 8, 8);
 	}
 
-	void ResetStack() { this->used = true; this->position = 0; }
+	void ResetStack()  { this->position = 0; this->used = true; }
+	void RewindStack() { this->position = 0; }
 };
 
+static TextRefStack _newgrf_normal_textrefstack;
+static TextRefStack _newgrf_error_textrefstack;
+
 /** The stack that is used for TTDP compatible string code parsing */
-static TextRefStack _newgrf_textrefstack;
+static TextRefStack *_newgrf_textrefstack = &_newgrf_normal_textrefstack;
 
-/** Prepare the TTDP compatible string code parsing */
-void PrepareTextRefStackUsage()
+/**
+ * Prepare the TTDP compatible string code parsing
+ * @param numEntries number of entries to copy from the registers
+ */
+void PrepareTextRefStackUsage(byte numEntries)
 {
 	extern TemporaryStorageArray<uint32, 0x110> _temp_store;
 
-	_newgrf_textrefstack.ResetStack();
+	_newgrf_textrefstack->ResetStack();
 
-	byte *p = _newgrf_textrefstack.stack;
-	for (uint i = 0; i < 6; i++) {
+	byte *p = _newgrf_textrefstack->stack;
+	for (uint i = 0; i < numEntries; i++) {
 		for (uint j = 0; j < 32; j += 8) {
-			*p = GB(_temp_store.Get(0x100 + i), 32 - j, 8);
+			*p = GB(_temp_store.Get(0x100 + i), j, 8);
 			p++;
 		}
 	}
 }
 
 /** Stop using the TTDP compatible string code parsing */
-void StopTextRefStackUsage() { _newgrf_textrefstack.used = false; }
+void StopTextRefStackUsage() { _newgrf_textrefstack->used = false; }
+
+void SwitchToNormalRefStack()
+{
+	_newgrf_textrefstack = &_newgrf_normal_textrefstack;
+}
+
+void SwitchToErrorRefStack()
+{
+	_newgrf_textrefstack = &_newgrf_error_textrefstack;
+}
+
+void RewindTextRefStack()
+{
+	_newgrf_textrefstack->RewindStack();
+}
 
 /**
  * FormatString for NewGRF specific "magic" string control codes
@@ -571,31 +593,31 @@
  */
 uint RemapNewGRFStringControlCode(uint scc, char **buff, const char **str, int64 *argv)
 {
-	if (_newgrf_textrefstack.used) {
+	if (_newgrf_textrefstack->used) {
 		switch (scc) {
 			default: NOT_REACHED();
-			case SCC_NEWGRF_PRINT_SIGNED_BYTE:    *argv = _newgrf_textrefstack.PopSignedByte();    break;
-			case SCC_NEWGRF_PRINT_SIGNED_WORD:    *argv = _newgrf_textrefstack.PopSignedWord();    break;
-			case SCC_NEWGRF_PRINT_QWORD_CURRENCY: *argv = _newgrf_textrefstack.PopUnsignedQWord(); break;
+			case SCC_NEWGRF_PRINT_SIGNED_BYTE:    *argv = _newgrf_textrefstack->PopSignedByte();    break;
+			case SCC_NEWGRF_PRINT_SIGNED_WORD:    *argv = _newgrf_textrefstack->PopSignedWord();    break;
+			case SCC_NEWGRF_PRINT_QWORD_CURRENCY: *argv = _newgrf_textrefstack->PopUnsignedQWord(); break;
 
 			case SCC_NEWGRF_PRINT_DWORD_CURRENCY:
-			case SCC_NEWGRF_PRINT_DWORD:          *argv = _newgrf_textrefstack.PopSignedDWord();   break;
+			case SCC_NEWGRF_PRINT_DWORD:          *argv = _newgrf_textrefstack->PopSignedDWord();   break;
 
 			case SCC_NEWGRF_PRINT_WORD_SPEED:
 			case SCC_NEWGRF_PRINT_WORD_LITRES:
-			case SCC_NEWGRF_PRINT_UNSIGNED_WORD:  *argv = _newgrf_textrefstack.PopUnsignedWord(); break;
+			case SCC_NEWGRF_PRINT_UNSIGNED_WORD:  *argv = _newgrf_textrefstack->PopUnsignedWord();  break;
 
 			case SCC_NEWGRF_PRINT_DATE:
-			case SCC_NEWGRF_PRINT_MONTH_YEAR:     *argv = _newgrf_textrefstack.PopSignedWord() + DAYS_TILL_ORIGINAL_BASE_YEAR; break;
+			case SCC_NEWGRF_PRINT_MONTH_YEAR:     *argv = _newgrf_textrefstack->PopSignedWord() + DAYS_TILL_ORIGINAL_BASE_YEAR; break;
 
-			case SCC_NEWGRF_DISCARD_WORD:         _newgrf_textrefstack.PopUnsignedWord(); break;
+			case SCC_NEWGRF_DISCARD_WORD:         _newgrf_textrefstack->PopUnsignedWord(); break;
 
-			case SCC_NEWGRF_ROTATE_TOP_4_WORDS:   _newgrf_textrefstack.RotateTop4Words(); break;
-			case SCC_NEWGRF_PUSH_WORD:            _newgrf_textrefstack.PushWord(Utf8Consume(str)); break;
+			case SCC_NEWGRF_ROTATE_TOP_4_WORDS:   _newgrf_textrefstack->RotateTop4Words(); break;
+			case SCC_NEWGRF_PUSH_WORD:            _newgrf_textrefstack->PushWord(Utf8Consume(str)); break;
 			case SCC_NEWGRF_UNPRINT:              *buff -= Utf8Consume(str); break;
 
 			case SCC_NEWGRF_PRINT_STRING_ID:
-				*argv = _newgrf_textrefstack.PopUnsignedWord();
+				*argv = _newgrf_textrefstack->PopUnsignedWord();
 				if (*argv == STR_NULL) *argv = STR_EMPTY;
 				break;
 		}
@@ -614,7 +636,7 @@
 			return SCC_CURRENCY;
 
 		case SCC_NEWGRF_PRINT_STRING_ID:
-			return SCC_STRING;
+			return SCC_STRING1;
 
 		case SCC_NEWGRF_PRINT_DATE:
 			return SCC_DATE_LONG;
--- a/src/newgrf_text.h	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/newgrf_text.h	Sat Oct 20 10:42:28 2007 +0000
@@ -15,8 +15,11 @@
 
 bool CheckGrfLangID(byte lang_id, byte grf_version);
 
-void PrepareTextRefStackUsage();
+void PrepareTextRefStackUsage(byte numEntries);
 void StopTextRefStackUsage();
+void SwitchToNormalRefStack();
+void SwitchToErrorRefStack();
+void RewindTextRefStack();
 uint RemapNewGRFStringControlCode(uint scc, char **buff, const char **str, int64 *argv);
 
 #endif /* NEWGRF_TEXT_H */
--- a/src/oldloader.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/oldloader.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -224,7 +224,7 @@
 					default: break;
 				}
 			} else {
-				uint32 res = 0;
+				uint64 res = 0;
 
 				/* Reading from the file: bits 16 to 23 have the FILE type */
 				switch (GetOldChunkFileType(chunk->type)) {
@@ -376,7 +376,8 @@
 #define REMAP_TOWN_IDX(x) ((x) - (0x0459154 - 0x0458EF0)) / 94
 #define REMAP_ORDER_IDX(x) ((x) - (0x045AB08 - 0x0458EF0)) / 2
 
-extern TileIndex _animated_tile_list[256];
+extern TileIndex *_animated_tile_list;
+extern uint _animated_tile_count;
 extern char _name_array[512][32];
 
 static byte   _old_vehicle_multiplier;
@@ -501,6 +502,29 @@
 	return true;
 }
 
+static bool LoadOldAnimTileList(LoadgameState *ls, int num)
+{
+	/* This is sligthly hackish - we must load a chunk into an array whose
+	 * address isn't static, but instead pointed to by _animated_tile_list.
+	 * To achieve that, create an OldChunks list on the stack on the fly.
+	 * The list cannot be static because the value of _animated_tile_list
+	 * can change between calls. */
+
+	const OldChunks anim_chunk[] = {
+		OCL_VAR (   OC_TILE, 256, _animated_tile_list ),
+		OCL_END ()
+	};
+
+	if (!LoadChunk(ls, NULL, anim_chunk)) return false;
+
+	/* Update the animated tile counter by counting till the first zero in the array */
+	for (_animated_tile_count = 0; _animated_tile_count < 256; _animated_tile_count++) {
+		if (_animated_tile_list[_animated_tile_count] == 0) break;
+	}
+
+	return true;
+}
+
 static const OldChunks depot_chunk[] = {
 	OCL_SVAR(   OC_TILE, Depot, xy ),
 	OCL_VAR ( OC_UINT32,   1, &_old_town_index ),
@@ -706,6 +730,7 @@
 
 	if (i->IsValid()) {
 		i->town = GetTown(REMAP_TOWN_IDX(_old_town_index));
+		IncIndustryTypeCount(i->type);
 	}
 
 	return true;
@@ -734,8 +759,8 @@
 }
 
 static const OldChunks player_economy_chunk[] = {
-	OCL_SVAR( OC_INT32, PlayerEconomyEntry, income ),
-	OCL_SVAR( OC_INT32, PlayerEconomyEntry, expenses ),
+	OCL_SVAR( OC_FILE_I32 | OC_VAR_I64, PlayerEconomyEntry, income ),
+	OCL_SVAR( OC_FILE_I32 | OC_VAR_I64, PlayerEconomyEntry, expenses ),
 	OCL_SVAR( OC_INT32, PlayerEconomyEntry, delivered_cargo ),
 	OCL_SVAR( OC_INT32, PlayerEconomyEntry, performance_history ),
 	OCL_SVAR( OC_FILE_I32 | OC_VAR_I64, PlayerEconomyEntry, company_value ),
@@ -778,7 +803,7 @@
 	OCL_SVAR(  OC_UINT8, Player, player_money_fraction ),
 	OCL_SVAR(  OC_UINT8, Player, quarters_of_bankrupcy ),
 	OCL_SVAR(  OC_UINT8, Player, bankrupt_asked ),
-	OCL_SVAR( OC_UINT32, Player, bankrupt_value ),
+	OCL_SVAR( OC_FILE_U32 | OC_VAR_I64, Player, bankrupt_value ),
 	OCL_SVAR( OC_UINT16, Player, bankrupt_timeout ),
 
 	OCL_SVAR( OC_FILE_U32 | OC_VAR_U16, Player, cargo_types ),
@@ -1012,8 +1037,8 @@
 	OCL_SVAR( OC_UINT16, Vehicle, reliability ),
 	OCL_SVAR( OC_UINT16, Vehicle, reliability_spd_dec ),
 
-	OCL_SVAR(  OC_INT32, Vehicle, profit_this_year ),
-	OCL_SVAR(  OC_INT32, Vehicle, profit_last_year ),
+	OCL_SVAR( OC_FILE_I32 | OC_VAR_I64, Vehicle, profit_this_year ),
+	OCL_SVAR( OC_FILE_I32 | OC_VAR_I64, Vehicle, profit_last_year ),
 
 	OCL_VAR ( OC_UINT16,   1, &_old_next_ptr ),
 
@@ -1059,7 +1084,7 @@
 			default:   v->spritenum >>= 1; break;
 		}
 
-		if (_old_next_ptr != 0xFFFF) v->next = GetVehicle(_old_next_ptr);
+		if (_old_next_ptr != 0xFFFF) v->next = GetVehiclePoolSize() <= _old_next_ptr ? new (_old_next_ptr) InvalidVehicle() : GetVehicle(_old_next_ptr);
 
 		v->string_id = RemapOldStringID(_old_string_id);
 
@@ -1141,23 +1166,23 @@
 }
 
 static const OldChunks game_difficulty_chunk[] = {
-	OCL_SVAR( OC_FILE_U16 | OC_VAR_I32, GameDifficulty, max_no_competitors ),
-	OCL_SVAR( OC_FILE_U16 | OC_VAR_I32, GameDifficulty, competitor_start_time ),
-	OCL_SVAR( OC_FILE_U16 | OC_VAR_I32, GameDifficulty, number_towns ),
-	OCL_SVAR( OC_FILE_U16 | OC_VAR_I32, GameDifficulty, number_industries ),
-	OCL_SVAR( OC_FILE_U16 | OC_VAR_I32, GameDifficulty, max_loan ),
-	OCL_SVAR( OC_FILE_U16 | OC_VAR_I32, GameDifficulty, initial_interest ),
-	OCL_SVAR( OC_FILE_U16 | OC_VAR_I32, GameDifficulty, vehicle_costs ),
-	OCL_SVAR( OC_FILE_U16 | OC_VAR_I32, GameDifficulty, competitor_speed ),
-	OCL_SVAR( OC_FILE_U16 | OC_VAR_I32, GameDifficulty, competitor_intelligence ),
-	OCL_SVAR( OC_FILE_U16 | OC_VAR_I32, GameDifficulty, vehicle_breakdowns ),
-	OCL_SVAR( OC_FILE_U16 | OC_VAR_I32, GameDifficulty, subsidy_multiplier ),
-	OCL_SVAR( OC_FILE_U16 | OC_VAR_I32, GameDifficulty, construction_cost ),
-	OCL_SVAR( OC_FILE_U16 | OC_VAR_I32, GameDifficulty, terrain_type ),
-	OCL_SVAR( OC_FILE_U16 | OC_VAR_I32, GameDifficulty, quantity_sea_lakes ),
-	OCL_SVAR( OC_FILE_U16 | OC_VAR_I32, GameDifficulty, economy ),
-	OCL_SVAR( OC_FILE_U16 | OC_VAR_I32, GameDifficulty, line_reverse_mode ),
-	OCL_SVAR( OC_FILE_U16 | OC_VAR_I32, GameDifficulty, disasters ),
+	OCL_SVAR( OC_UINT16, GameDifficulty, max_no_competitors ),
+	OCL_SVAR( OC_UINT16, GameDifficulty, competitor_start_time ),
+	OCL_SVAR( OC_UINT16, GameDifficulty, number_towns ),
+	OCL_SVAR( OC_UINT16, GameDifficulty, number_industries ),
+	OCL_SVAR( OC_UINT16, GameDifficulty, max_loan ),
+	OCL_SVAR( OC_UINT16, GameDifficulty, initial_interest ),
+	OCL_SVAR( OC_UINT16, GameDifficulty, vehicle_costs ),
+	OCL_SVAR( OC_UINT16, GameDifficulty, competitor_speed ),
+	OCL_SVAR( OC_UINT16, GameDifficulty, competitor_intelligence ),
+	OCL_SVAR( OC_UINT16, GameDifficulty, vehicle_breakdowns ),
+	OCL_SVAR( OC_UINT16, GameDifficulty, subsidy_multiplier ),
+	OCL_SVAR( OC_UINT16, GameDifficulty, construction_cost ),
+	OCL_SVAR( OC_UINT16, GameDifficulty, terrain_type ),
+	OCL_SVAR( OC_UINT16, GameDifficulty, quantity_sea_lakes ),
+	OCL_SVAR( OC_UINT16, GameDifficulty, economy ),
+	OCL_SVAR( OC_UINT16, GameDifficulty, line_reverse_mode ),
+	OCL_SVAR( OC_UINT16, GameDifficulty, disasters ),
 	OCL_END()
 };
 
@@ -1275,7 +1300,7 @@
 	OCL_CHUNK(5000, LoadOldOrder ),
 	OCL_ASSERT( 0x4328 ),
 
-	OCL_VAR (   OC_TILE, 256, &_animated_tile_list[0] ),
+	OCL_CHUNK( 1, LoadOldAnimTileList ),
 	OCL_NULL( 4 ),              ///< old end-of-order-list-pointer, no longer in use
 
 	OCL_CHUNK( 255, LoadOldDepot ),
@@ -1324,9 +1349,9 @@
 	OCL_VAR ( OC_FILE_I16 | OC_VAR_I32,   1, &_saved_scrollpos_y ),
 	OCL_VAR ( OC_FILE_U16 | OC_VAR_U8,    1, &_saved_scrollpos_zoom ),
 
-	OCL_VAR ( OC_UINT32,    1, &_economy.max_loan ),
-	OCL_VAR ( OC_UINT32,    1, &_economy.max_loan_unround ),
-	OCL_VAR ( OC_FILE_U16 | OC_VAR_U32,    1, &_economy.fluct ),
+	OCL_VAR ( OC_FILE_U32 | OC_VAR_I64,   1, &_economy.max_loan ),
+	OCL_VAR ( OC_FILE_U32 | OC_VAR_I64,   1, &_economy.max_loan_unround ),
+	OCL_VAR ( OC_FILE_U16 | OC_VAR_U32,   1, &_economy.fluct ),
 
 	OCL_VAR ( OC_UINT16,    1, &_disaster_delay ),
 
@@ -1445,6 +1470,16 @@
 		}
 	}
 
+	/* Make sure the available engines are really available, otherwise
+	 * we will get a "new vehicle"-spree. */
+	for (Engine *e = _engines; e != endof(_engines); e++) {
+		if (_date >= (e->intro_date + 365)) {
+			e->flags = (e->flags & ~ENGINE_EXCLUSIVE_PREVIEW) | ENGINE_AVAILABLE;
+			AddRemoveEngineFromAutoreplaceAndBuildWindows(e->type);
+			e->player_avail = (byte)-1;
+		}
+	}
+
 	/* Fix the game to be compatible with OpenTTD */
 	FixOldTowns();
 	FixOldStations();
--- a/src/openttd.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/openttd.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -77,6 +77,7 @@
 #include "water_map.h"
 #include "industry_map.h"
 #include "unmovable_map.h"
+#include "tree_map.h"
 
 #include <stdarg.h>
 
@@ -1456,9 +1457,9 @@
 						 * an oil rig which got shut down, but not completly removed from
 						 * the map
 						 */
-						TileIndex t1 = TILE_ADDXY(t, 1, 0);
+						TileIndex t1 = TILE_ADDXY(t, 0, 1);
 						if (IsTileType(t1, MP_INDUSTRY) &&
-								GetIndustryGfx(t1) == GFX_OILRIG_3) {
+								GetIndustryGfx(t1) == GFX_OILRIG_1) {
 							/* The internal encoding of oil rigs was changed twice.
 							 * It was 3 (till 2.2) and later 5 (till 5.1).
 							 * Setting it unconditionally does not hurt.
@@ -1634,7 +1635,7 @@
 						if (GB(_m[t].m5, 3, 2) == 0) {
 							MakeClear(t, CLEAR_GRASS, 3);
 						} else {
-							MakeCanal(t, GetTileOwner(t));
+							MakeCanal(t, (GetTileOwner(t) == OWNER_WATER) ? OWNER_NONE : GetTileOwner(t));
 						}
 					}
 					SetBridgeMiddle(t, axis);
@@ -2168,6 +2169,19 @@
 		FOR_ALL_INDUSTRIES(i) i->founder = OWNER_NONE;
 	}
 
+	/* From version 82, old style canals (above sealevel (0), WATER owner) are no longer supported.
+	    Replace the owner for those by OWNER_NONE. */
+	if (CheckSavegameVersion(82)) {
+		for (TileIndex t = 0; t < map_size; t++) {
+			if (IsTileType(t, MP_WATER) &&
+					GetWaterTileType(t) == WATER_TILE_CLEAR &&
+					GetTileOwner(t) == OWNER_WATER &&
+					TileHeight(t) != 0) {
+				SetTileOwner(t, OWNER_NONE);
+			}
+		}
+	}
+
 	/* Recalculate */
 	Group *g;
 	FOR_ALL_GROUPS(g) {
@@ -2205,6 +2219,19 @@
 		}
 	}
 
+	/* Before version 81, the density of grass was always stored as zero, and
+	 * grassy trees were always drawn fully grassy. Furthermore, trees on rough
+	 * land used to have zero density, now they have full density. Therefore,
+	 * make all grassy/rough land trees have a density of 3. */
+	if (CheckSavegameVersion(81)) {
+		for (TileIndex t = 0; t < map_size; t++) {
+			if (GetTileType(t) == MP_TREES) {
+				TreeGround groundType = GetTreeGround(t);
+				if (groundType != TREE_GROUND_SNOW_DESERT) SetTreeGroundDensity(t, groundType, 3);
+			}
+		}
+	}
+
 	return true;
 }
 
--- a/src/openttd.h	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/openttd.h	Sat Oct 20 10:42:28 2007 +0000
@@ -88,6 +88,7 @@
 typedef int32 Year;
 typedef int32 Date;
 
+typedef uint32 PlayerFace; ///< player face bits, info see in player_face.h
 
 enum SwitchModes {
 	SM_NONE            =  0,
@@ -279,25 +280,27 @@
 
 #define GAME_DIFFICULTY_NUM 18
 
+/** Specific type for Game Difficulty to ease changing the type */
+typedef uint16 GDType;
 struct GameDifficulty {
-	int max_no_competitors;
-	int competitor_start_time;
-	int number_towns;
-	int number_industries;
-	int max_loan;
-	int initial_interest;
-	int vehicle_costs;
-	int competitor_speed;
-	int competitor_intelligence; // no longer in use
-	int vehicle_breakdowns;
-	int subsidy_multiplier;
-	int construction_cost;
-	int terrain_type;
-	int quantity_sea_lakes;
-	int economy;
-	int line_reverse_mode;
-	int disasters;
-	int town_council_tolerance; // minimum required town ratings to be allowed to demolish stuff
+	GDType max_no_competitors;
+	GDType competitor_start_time;
+	GDType number_towns;
+	GDType number_industries;
+	GDType max_loan;
+	GDType initial_interest;
+	GDType vehicle_costs;
+	GDType competitor_speed;
+	GDType competitor_intelligence; // no longer in use
+	GDType vehicle_breakdowns;
+	GDType subsidy_multiplier;
+	GDType construction_cost;
+	GDType terrain_type;
+	GDType quantity_sea_lakes;
+	GDType economy;
+	GDType line_reverse_mode;
+	GDType disasters;
+	GDType town_council_tolerance; // minimum required town ratings to be allowed to demolish stuff
 };
 
 enum {
--- a/src/player.h	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/player.h	Sat Oct 20 10:42:28 2007 +0000
@@ -24,8 +24,6 @@
 	LOAN_INTERVAL        = 10000,
 };
 
-typedef uint32 PlayerFace;
-
 struct Player {
 	uint32 name_2;
 	uint16 name_1;
--- a/src/player_face.h	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/player_face.h	Sat Oct 20 10:42:28 2007 +0000
@@ -59,7 +59,7 @@
 	/* PFV_HAS_MOUSTACHE   */ {  3, 1, {  2,  0,  2,  0 }, {     0,     0,     0,     0 } }, ///< Females do not have a moustache
 	/* PFV_HAS_TIE_EARRING */ {  3, 1, {  0,  2,  0,  2 }, {     0,     0,     0,     0 } }, ///< Draw the earring for females or not. For males the tie is always drawn.
 	/* PFV_HAS_GLASSES     */ {  4, 1, {  2,  2,  2,  2 }, {     0,     0,     0,     0 } }, ///< Whether to draw glasses or not
-	/* PFV_EYE_COLOUR      */ {  5, 2, {  3,  3,  3,  3 }, {     0,     0,     0,     0 } }, ///< Palette modification
+	/* PFV_EYE_COLOUR      */ {  5, 2, {  3,  3,  1,  1 }, {     0,     0,     0,     0 } }, ///< Palette modification
 	/* PFV_CHEEKS          */ {  0, 0, {  1,  1,  1,  1 }, { 0x325, 0x326, 0x390, 0x3B0 } }, ///< Cheeks are only indexed by their gender/ethnicity
 	/* PFV_CHIN            */ {  7, 2, {  4,  1,  2,  2 }, { 0x327, 0x327, 0x391, 0x3B1 } },
 	/* PFV_EYEBROWS        */ {  9, 4, { 12, 16, 11, 16 }, { 0x32B, 0x337, 0x39A, 0x3B8 } },
@@ -105,6 +105,32 @@
 }
 
 /**
+ * Increase/Decrease the player face variable by the given amount.
+ * If the new value greater than the max value for this variable it will be set to 0.
+ * Or is it negativ (< 0) it will be set to max value.
+ *
+ * @param pf     the player face to write the bits to
+ * @param pfv    the player face variable to write the data of
+ * @param ge     the gender and ethnicity of the player face
+ * @param amount the amount which change the value
+ *
+ * @pre 0 <= val < _pf_info[pfv].valid_values[ge]
+ */
+static inline void IncreasePlayerFaceBits(PlayerFace &pf, PlayerFaceVariable pfv, GenderEthnicity ge, int8 amount)
+{
+	int8 val = GetPlayerFaceBits(pf, pfv, ge) + amount; // the new value for the pfv
+
+	/* scales the new value to the correct scope */
+	if (val >= _pf_info[pfv].valid_values[ge]) {
+		val = 0;
+	} else if (val < 0) {
+		val = _pf_info[pfv].valid_values[ge] - 1;
+	}
+
+	SetPlayerFaceBits(pf, pfv, ge, val); // save the new value
+}
+
+/**
  * Checks whether the player bits have a valid range
  * @param pf  the face to extract the bits from
  * @param pfv the face variable to get the data of
@@ -132,6 +158,58 @@
 }
 
 /**
+ * Scales all player face bits to the correct scope
+ *
+ * @param pf the player face to write the bits to
+ */
+static inline void ScaleAllPlayerFaceBits(PlayerFace &pf)
+{
+	IncreasePlayerFaceBits(pf, PFV_ETHNICITY, GE_WM, 0); // scales the ethnicity
+
+	GenderEthnicity ge = (GenderEthnicity)GB(pf, _pf_info[PFV_GEN_ETHN].offset, _pf_info[PFV_GEN_ETHN].length); // gender & ethnicity of the face
+
+	/* Is a male face with moustache. Need to reduce CPU load in the loop. */
+	bool is_moust_male = !HASBIT(ge, GENDER_FEMALE) && GetPlayerFaceBits(pf, PFV_HAS_MOUSTACHE, ge) != 0;
+
+	for (PlayerFaceVariable pfv = PFV_EYE_COLOUR; pfv < PFV_END; pfv++) { // scales all other variables
+
+		/* The moustache variable will be scaled only if it is a male face with has a moustache */
+		if (pfv != PFV_MOUSTACHE || is_moust_male) {
+			IncreasePlayerFaceBits(pf, pfv, ge, 0);
+		}
+	}
+}
+
+/**
+ * Make a random new face.
+ * If it is for the advanced player face window then the new face have the same gender
+ * and ethnicity as the old one, else the gender is equal and the ethnicity is random.
+ *
+ * @param pf  the player face to write the bits to
+ * @param ge  the gender and ethnicity of the old player face
+ * @param adv if it for the advanced player face window
+ *
+ * @pre scale 'ge' to a valid gender/ethnicity combination
+ */
+static inline void RandomPlayerFaceBits(PlayerFace &pf, GenderEthnicity ge, bool adv)
+{
+	pf = InteractiveRandom(); // random all player face bits
+
+	/* scale ge: 0 == GE_WM, 1 == GE_WF, 2 == GE_BM, 3 == GE_BF (and maybe in future: ...) */
+	ge = (GenderEthnicity)((uint)ge % GE_END);
+
+	/* set the gender (and ethnicity) for the new player face */
+	if (adv) {
+		SetPlayerFaceBits(pf, PFV_GEN_ETHN, ge, ge);
+	} else {
+		SetPlayerFaceBits(pf, PFV_GENDER, ge, HASBIT(ge, GENDER_FEMALE));
+	}
+
+	/* scales all player face bits to the correct scope */
+	ScaleAllPlayerFaceBits(pf);
+}
+
+/**
  * Gets the sprite to draw for the given player face variable
  * @param pf  the face to extract the data from
  * @param pfv the face variable to get the sprite of
@@ -149,5 +227,6 @@
 void DrawPlayerFace(PlayerFace face, int color, int x, int y);
 PlayerFace ConvertFromOldPlayerFace(uint32 face);
 bool IsValidPlayerFace(PlayerFace pf);
+void DrawFaceStringLabel(const Window *w, byte widget_index, StringID str, uint8 val, bool is_bool_widget);
 
 #endif /* PLAYER_FACE_H */
--- a/src/player_gui.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/player_gui.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -28,6 +28,7 @@
 #include "player_face.h"
 
 static void DoShowPlayerFinances(PlayerID player, bool show_small, bool show_stickied);
+static void DoSelectPlayerFace(PlayerID player, bool show_big);
 
 static void DrawPlayerEconomyStats(const Player *p, byte mode)
 {
@@ -493,11 +494,17 @@
 	bool has_tie_earring = !HASBIT(ge, GENDER_FEMALE) || GetPlayerFaceBits(pf, PFV_HAS_TIE_EARRING, ge) != 0;
 	bool has_glasses     = GetPlayerFaceBits(pf, PFV_HAS_GLASSES, ge) != 0;
 	SpriteID pal;
-	switch (GetPlayerFaceBits(pf, PFV_EYE_COLOUR, ge)) {
-		default: NOT_REACHED();
-		case 0: pal = PALETTE_TO_BROWN; break;
-		case 1: pal = PALETTE_TO_BLUE;  break;
-		case 2: pal = PALETTE_TO_GREEN; break;
+
+	/* Modify eye colour palette only if 2 or more valid values exist */
+	if (_pf_info[PFV_EYE_COLOUR].valid_values[ge] < 2) {
+		pal = PAL_NONE;
+	} else {
+		switch (GetPlayerFaceBits(pf, PFV_EYE_COLOUR, ge)) {
+			default: NOT_REACHED();
+			case 0: pal = PALETTE_TO_BROWN; break;
+			case 1: pal = PALETTE_TO_BLUE;  break;
+			case 2: pal = PALETTE_TO_GREEN; break;
+		}
 	}
 
 	/* Draw the gradient (background) */
@@ -516,60 +523,426 @@
 	}
 }
 
-static void SelectPlayerFaceWndProc(Window *w, WindowEvent *e)
-{
-	switch (e->event) {
-	case WE_PAINT: {
-		Player *p;
-		LowerWindowWidget(w, WP(w, facesel_d).gender + 5);
-		DrawWindowWidgets(w);
-		p = GetPlayer((PlayerID)w->window_number);
-		DrawPlayerFace(WP(w, facesel_d).face, p->player_color, 2, 16);
-	} break;
+/**
+ * Names of the widgets. Keep them in the same order as in the widget array.
+ * Do not change the order of the widgets from PFW_WIDGET_HAS_MOUSTACHE_EARRING to PFW_WIDGET_GLASSES_R,
+ * this order is needed for the WE_CLICK event of DrawFaceStringLabel().
+ */
+enum PlayerFaceWindowWidgets {
+	PFW_WIDGET_CLOSEBOX = 0,
+	PFW_WIDGET_CAPTION,
+	PFW_WIDGET_TOGGLE_LARGE_SMALL,
+	PFW_WIDGET_SELECT_FACE,
+	PFW_WIDGET_CANCEL,
+	PFW_WIDGET_ACCEPT,
+	PFW_WIDGET_MALE,
+	PFW_WIDGET_FEMALE,
+	PFW_WIDGET_RANDOM_NEW_FACE,
+	PFW_WIDGET_TOGGLE_LARGE_SMALL_BUTTON,
+	/* from here is the advanced player face selection window */
+	PFW_WIDGET_LOAD,
+	PFW_WIDGET_FACECODE,
+	PFW_WIDGET_SAVE,
+	PFW_WIDGET_ETHNICITY_EUR,
+	PFW_WIDGET_ETHNICITY_AFR,
+	PFW_WIDGET_HAS_MOUSTACHE_EARRING,
+	PFW_WIDGET_HAS_GLASSES,
+	PFW_WIDGET_EYECOLOUR_L,
+	PFW_WIDGET_EYECOLOUR,
+	PFW_WIDGET_EYECOLOUR_R,
+	PFW_WIDGET_CHIN_L,
+	PFW_WIDGET_CHIN,
+	PFW_WIDGET_CHIN_R,
+	PFW_WIDGET_EYEBROWS_L,
+	PFW_WIDGET_EYEBROWS,
+	PFW_WIDGET_EYEBROWS_R,
+	PFW_WIDGET_LIPS_MOUSTACHE_L,
+	PFW_WIDGET_LIPS_MOUSTACHE,
+	PFW_WIDGET_LIPS_MOUSTACHE_R,
+	PFW_WIDGET_NOSE_L,
+	PFW_WIDGET_NOSE,
+	PFW_WIDGET_NOSE_R,
+	PFW_WIDGET_HAIR_L,
+	PFW_WIDGET_HAIR,
+	PFW_WIDGET_HAIR_R,
+	PFW_WIDGET_JACKET_L,
+	PFW_WIDGET_JACKET,
+	PFW_WIDGET_JACKET_R,
+	PFW_WIDGET_COLLAR_L,
+	PFW_WIDGET_COLLAR,
+	PFW_WIDGET_COLLAR_R,
+	PFW_WIDGET_TIE_EARRING_L,
+	PFW_WIDGET_TIE_EARRING,
+	PFW_WIDGET_TIE_EARRING_R,
+	PFW_WIDGET_GLASSES_L,
+	PFW_WIDGET_GLASSES,
+	PFW_WIDGET_GLASSES_R,
+};
 
-	case WE_CLICK:
-		switch (e->we.click.widget) {
-		case 3: DeleteWindow(w); break;
-		case 4: /* ok click */
-			DoCommandP(0, 0, WP(w, facesel_d).face, NULL, CMD_SET_PLAYER_FACE);
-			DeleteWindow(w);
-			break;
-		case 5: /* male click */
-		case 6: /* female click */
-			RaiseWindowWidget(w, WP(w, facesel_d).gender + 5);
-			WP(w, facesel_d).gender = e->we.click.widget - 5;
-			LowerWindowWidget(w, WP(w, facesel_d).gender + 5);
-			SetWindowDirty(w);
-			break;
-		case 7:
-			WP(w, facesel_d).face = ConvertFromOldPlayerFace((WP(w, facesel_d).gender << 31) + GB(InteractiveRandom(), 0, 31));
-			SetWindowDirty(w);
-			break;
+/** Widget description for the normal/simple player face selection dialog */
+static const Widget _select_player_face_widgets[] = {
+{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,                STR_018B_CLOSE_WINDOW},              // PFW_WIDGET_CLOSEBOX
+{    WWT_CAPTION,   RESIZE_NONE,    14,    11,   174,     0,    13, STR_7043_FACE_SELECTION, STR_018C_WINDOW_TITLE_DRAG_THIS},    // PFW_WIDGET_CAPTION
+{     WWT_IMGBTN,   RESIZE_NONE,    14,   175,   189,     0,    13, SPR_LARGE_SMALL_WINDOW,  STR_FACE_ADVANCED_TIP},              // PFW_WIDGET_TOGGLE_LARGE_SMALL
+{      WWT_PANEL,   RESIZE_NONE,    14,     0,   189,    14,   150, 0x0,                     STR_NULL},                           // PFW_WIDGET_SELECT_FACE
+{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,     0,    94,   151,   162, STR_012E_CANCEL,         STR_7047_CANCEL_NEW_FACE_SELECTION}, // PFW_WIDGET_CANCEL
+{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,    95,   189,   151,   162, STR_012F_OK,             STR_7048_ACCEPT_NEW_FACE_SELECTION}, // PFW_WIDGET_ACCEPT
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,    95,   187,    75,    86, STR_7044_MALE,           STR_7049_SELECT_MALE_FACES},         // PFW_WIDGET_MALE
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,    95,   187,    87,    98, STR_7045_FEMALE,         STR_704A_SELECT_FEMALE_FACES},       // PFW_WIDGET_FEMALE
+{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,     2,    93,   137,   148, STR_7046_NEW_FACE,       STR_704B_GENERATE_RANDOM_NEW_FACE},  // PFW_WIDGET_RANDOM_NEW_FACE
+{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,    95,   187,    16,    27, STR_FACE_ADVANCED,       STR_FACE_ADVANCED_TIP},              // PFW_WIDGET_TOGGLE_LARGE_SMALL_BUTTON
+{   WIDGETS_END},
+};
+
+/** Widget description for the advanced player face selection dialog */
+static const Widget _select_player_face_adv_widgets[] = {
+{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,                STR_018B_CLOSE_WINDOW},              // PFW_WIDGET_CLOSEBOX
+{    WWT_CAPTION,   RESIZE_NONE,    14,    11,   204,     0,    13, STR_7043_FACE_SELECTION, STR_018C_WINDOW_TITLE_DRAG_THIS},    // PFW_WIDGET_CAPTION
+{     WWT_IMGBTN,   RESIZE_NONE,    14,   205,   219,     0,    13, SPR_LARGE_SMALL_WINDOW,  STR_FACE_SIMPLE_TIP},                // PFW_WIDGET_TOGGLE_LARGE_SMALL
+{      WWT_PANEL,   RESIZE_NONE,    14,     0,   219,    14,   207, 0x0,                     STR_NULL},                           // PFW_WIDGET_SELECT_FACE
+{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,     0,    94,   208,   219, STR_012E_CANCEL,         STR_7047_CANCEL_NEW_FACE_SELECTION}, // PFW_WIDGET_CANCEL
+{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,    95,   219,   208,   219, STR_012F_OK,             STR_7048_ACCEPT_NEW_FACE_SELECTION}, // PFW_WIDGET_ACCEPT
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,    96,   156,    32,    43, STR_7044_MALE,           STR_7049_SELECT_MALE_FACES},         // PFW_WIDGET_MALE
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,   157,   217,    32,    43, STR_7045_FEMALE,         STR_704A_SELECT_FEMALE_FACES},       // PFW_WIDGET_FEMALE
+{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,     2,    93,   137,   148, STR_RANDOM,              STR_704B_GENERATE_RANDOM_NEW_FACE},  // PFW_WIDGET_RANDOM_NEW_FACE
+{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,    95,   217,    16,    27, STR_FACE_SIMPLE,         STR_FACE_SIMPLE_TIP},                // PFW_WIDGET_TOGGLE_LARGE_SMALL_BUTTON
+{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,     2,    93,   158,   169, STR_FACE_LOAD,           STR_FACE_LOAD_TIP},                  // PFW_WIDGET_LOAD
+{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,     2,    93,   170,   181, STR_FACE_FACECODE,       STR_FACE_FACECODE_TIP},              // PFW_WIDGET_FACECODE
+{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,     2,    93,   182,   193, STR_FACE_SAVE,           STR_FACE_SAVE_TIP},                  // PFW_WIDGET_SAVE
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,    96,   156,    46,    57, STR_FACE_EUROPEAN,       STR_FACE_SELECT_EUROPEAN},           // PFW_WIDGET_ETHNICITY_EUR
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,   157,   217,    46,    57, STR_FACE_AFRICAN,        STR_FACE_SELECT_AFRICAN},            // PFW_WIDGET_ETHNICITY_AFR
+{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,   175,   217,    60,    71, STR_EMPTY,               STR_FACE_MOUSTACHE_EARRING_TIP},     // PFW_WIDGET_HAS_MOUSTACHE_EARRING
+{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,   175,   217,    72,    83, STR_EMPTY,               STR_FACE_GLASSES_TIP},               // PFW_WIDGET_HAS_GLASSES
+{ WWT_PUSHIMGBTN,   RESIZE_NONE,    14,    175,  183,   110,   121, SPR_ARROW_LEFT,          STR_FACE_EYECOLOUR_TIP},             // PFW_WIDGET_EYECOLOUR_L
+{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,    184,  208,   110,   121, STR_EMPTY,               STR_FACE_EYECOLOUR_TIP},             // PFW_WIDGET_EYECOLOUR
+{ WWT_PUSHIMGBTN,   RESIZE_NONE,    14,    209,  217,   110,   121, SPR_ARROW_RIGHT,         STR_FACE_EYECOLOUR_TIP},             // PFW_WIDGET_EYECOLOUR_R
+{ WWT_PUSHIMGBTN,   RESIZE_NONE,    14,    175,  183,   158,   169, SPR_ARROW_LEFT,          STR_FACE_CHIN_TIP},                  // PFW_WIDGET_CHIN_L
+{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,    184,  208,   158,   169, STR_EMPTY,               STR_FACE_CHIN_TIP},                  // PFW_WIDGET_CHIN
+{ WWT_PUSHIMGBTN,   RESIZE_NONE,    14,    209,  217,   158,   169, SPR_ARROW_RIGHT,         STR_FACE_CHIN_TIP},                  // PFW_WIDGET_CHIN_R
+{ WWT_PUSHIMGBTN,   RESIZE_NONE,    14,    175,  183,    98,   109, SPR_ARROW_LEFT,          STR_FACE_EYEBROWS_TIP},              // PFW_WIDGET_EYEBROWS_L
+{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,    184,  208,    98,   109, STR_EMPTY,               STR_FACE_EYEBROWS_TIP},              // PFW_WIDGET_EYEBROWS
+{ WWT_PUSHIMGBTN,   RESIZE_NONE,    14,    209,  217,    98,   109, SPR_ARROW_RIGHT,         STR_FACE_EYEBROWS_TIP},              // PFW_WIDGET_EYEBROWS_R
+{ WWT_PUSHIMGBTN,   RESIZE_NONE,    14,    175,  183,   146,   157, SPR_ARROW_LEFT,          STR_FACE_LIPS_MOUSTACHE_TIP},        // PFW_WIDGET_LIPS_MOUSTACHE_L
+{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,    184,  208,   146,   157, STR_EMPTY,               STR_FACE_LIPS_MOUSTACHE_TIP},        // PFW_WIDGET_LIPS_MOUSTACHE
+{ WWT_PUSHIMGBTN,   RESIZE_NONE,    14,    209,  217,   146,   157, SPR_ARROW_RIGHT,         STR_FACE_LIPS_MOUSTACHE_TIP},        // PFW_WIDGET_LIPS_MOUSTACHE_R
+{ WWT_PUSHIMGBTN,   RESIZE_NONE,    14,    175,  183,   134,   145, SPR_ARROW_LEFT,          STR_FACE_NOSE_TIP},                  // PFW_WIDGET_NOSE_L
+{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,    184,  208,   134,   145, STR_EMPTY,               STR_FACE_NOSE_TIP},                  // PFW_WIDGET_NOSE
+{ WWT_PUSHIMGBTN,   RESIZE_NONE,    14,    209,  217,   134,   145, SPR_ARROW_RIGHT,         STR_FACE_NOSE_TIP},                  // PFW_WIDGET_NOSE_R
+{ WWT_PUSHIMGBTN,   RESIZE_NONE,    14,    175,  183,    86,    97, SPR_ARROW_LEFT,          STR_FACE_HAIR_TIP},                  // PFW_WIDGET_HAIR_L
+{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,    184,  208,    86,    97, STR_EMPTY,               STR_FACE_HAIR_TIP},                  // PFW_WIDGET_HAIR
+{ WWT_PUSHIMGBTN,   RESIZE_NONE,    14,    209,  217,    86,    97, SPR_ARROW_RIGHT,         STR_FACE_HAIR_TIP},                  // PFW_WIDGET_HAIR_R
+{ WWT_PUSHIMGBTN,   RESIZE_NONE,    14,    175,  183,   170,   181, SPR_ARROW_LEFT,          STR_FACE_JACKET_TIP},                // PFW_WIDGET_JACKET_L
+{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,    184,  208,   170,   181, STR_EMPTY,               STR_FACE_JACKET_TIP},                // PFW_WIDGET_JACKET
+{ WWT_PUSHIMGBTN,   RESIZE_NONE,    14,    209,  217,   170,   181, SPR_ARROW_RIGHT,         STR_FACE_JACKET_TIP},                // PFW_WIDGET_JACKET_R
+{ WWT_PUSHIMGBTN,   RESIZE_NONE,    14,    175,  183,   182,   193, SPR_ARROW_LEFT,          STR_FACE_COLLAR_TIP},                // PFW_WIDGET_COLLAR_L
+{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,    184,  208,   182,   193, STR_EMPTY,               STR_FACE_COLLAR_TIP},                // PFW_WIDGET_COLLAR
+{ WWT_PUSHIMGBTN,   RESIZE_NONE,    14,    209,  217,   182,   193, SPR_ARROW_RIGHT,         STR_FACE_COLLAR_TIP},                // PFW_WIDGET_COLLAR_R
+{ WWT_PUSHIMGBTN,   RESIZE_NONE,    14,    175,  183,   194,   205, SPR_ARROW_LEFT,          STR_FACE_TIE_EARRING_TIP},           // PFW_WIDGET_TIE_EARRING_L
+{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,    184,  208,   194,   205, STR_EMPTY,               STR_FACE_TIE_EARRING_TIP},           // PFW_WIDGET_TIE_EARRING
+{ WWT_PUSHIMGBTN,   RESIZE_NONE,    14,    209,  217,   194,   205, SPR_ARROW_RIGHT,         STR_FACE_TIE_EARRING_TIP},           // PFW_WIDGET_TIE_EARRING_R
+{ WWT_PUSHIMGBTN,   RESIZE_NONE,    14,    175,  183,   122,   133, SPR_ARROW_LEFT,          STR_FACE_GLASSES_TIP_2},             // PFW_WIDGET_GLASSES_L
+{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,    184,  208,   122,   133, STR_EMPTY,               STR_FACE_GLASSES_TIP_2},             // PFW_WIDGET_GLASSES
+{ WWT_PUSHIMGBTN,   RESIZE_NONE,    14,    209,  217,   122,   133, SPR_ARROW_RIGHT,         STR_FACE_GLASSES_TIP_2},             // PFW_WIDGET_GLASSES_R
+{   WIDGETS_END},
+};
+
+/**
+ * Draw dynamic a label to the left of the button and a value in the button
+ *
+ * @param w              Window on which the widget is located
+ * @param widget_index   index of this widget in the window
+ * @param str            the label which will be draw
+ * @param val            the value which will be draw
+ * @param is_bool_widget is it a bool button
+ */
+void DrawFaceStringLabel(const Window *w, byte widget_index, StringID str, uint8 val, bool is_bool_widget)
+{
+	/* Write the label in gold (0x2) to the left of the button. */
+	DrawStringRightAligned(w->widget[widget_index].left - (is_bool_widget ? 5 : 14), w->widget[widget_index].top + 1, str, 0x2);
+
+	if (!IsWindowWidgetDisabled(w, widget_index)) {
+		if (is_bool_widget) {
+			/* if it a bool button write yes or no */
+			str = (val != 0) ? STR_FACE_YES : STR_FACE_NO;
+		} else {
+			/* else write the value + 1 */
+			SetDParam(0, val + 1);
+			str = STR_JUST_INT;
 		}
-		break;
+
+		/* Draw the value/bool in white (0xC). If the button clicked adds 1px to x and y text coordinates (IsWindowWidgetLowered()). */
+		DrawStringCentered(w->widget[widget_index].left + (w->widget[widget_index].right - w->widget[widget_index].left) / 2 +
+			IsWindowWidgetLowered(w, widget_index), w->widget[widget_index].top + 1 + IsWindowWidgetLowered(w, widget_index), str, 0xC);
 	}
 }
 
-static const Widget _select_player_face_widgets[] = {
-{   WWT_CLOSEBOX,   RESIZE_NONE,    14,     0,    10,     0,    13, STR_00C5,                STR_018B_CLOSE_WINDOW},
-{    WWT_CAPTION,   RESIZE_NONE,    14,    11,   189,     0,    13, STR_7043_FACE_SELECTION, STR_018C_WINDOW_TITLE_DRAG_THIS},
-{      WWT_PANEL,   RESIZE_NONE,    14,     0,   189,    14,   136, 0x0,                     STR_NULL},
-{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,     0,    94,   137,   148, STR_012E_CANCEL,         STR_7047_CANCEL_NEW_FACE_SELECTION},
-{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,    95,   189,   137,   148, STR_012F_OK,             STR_7048_ACCEPT_NEW_FACE_SELECTION},
-{    WWT_TEXTBTN,   RESIZE_NONE,    14,    95,   187,    25,    36, STR_7044_MALE,           STR_7049_SELECT_MALE_FACES},
-{    WWT_TEXTBTN,   RESIZE_NONE,    14,    95,   187,    37,    48, STR_7045_FEMALE,         STR_704A_SELECT_FEMALE_FACES},
-{ WWT_PUSHTXTBTN,   RESIZE_NONE,    14,    95,   187,    79,    90, STR_7046_NEW_FACE,       STR_704B_GENERATE_RANDOM_NEW_FACE},
-{   WIDGETS_END},
-};
+/**
+ * Player face selection window event definition
+ *
+ * @param w window pointer
+ * @param e event been triggered
+ */
+static void SelectPlayerFaceWndProc(Window *w, WindowEvent *e)
+{
+	PlayerFace *pf = &WP(w, facesel_d).face; // pointer to the player face bits
+	GenderEthnicity ge = (GenderEthnicity)GB(*pf, _pf_info[PFV_GEN_ETHN].offset, _pf_info[PFV_GEN_ETHN].length); // get the gender and ethnicity
+	bool is_female = HASBIT(ge, GENDER_FEMALE); // get the gender: 0 == male and 1 == female
+	bool is_moust_male = !is_female && GetPlayerFaceBits(*pf, PFV_HAS_MOUSTACHE, ge) != 0; // is a male face with moustache
 
+	switch (e->event) {
+		case WE_PAINT:
+			/* lower the non-selected gender button */
+			SetWindowWidgetLoweredState(w, PFW_WIDGET_MALE,  !is_female);
+			SetWindowWidgetLoweredState(w, PFW_WIDGET_FEMALE, is_female);
+
+			/* advanced player face selection window */
+			if (WP(w, facesel_d).advanced) {
+				/* lower the non-selected ethnicity button */
+				SetWindowWidgetLoweredState(w, PFW_WIDGET_ETHNICITY_EUR, !HASBIT(ge, ETHNICITY_BLACK));
+				SetWindowWidgetLoweredState(w, PFW_WIDGET_ETHNICITY_AFR,  HASBIT(ge, ETHNICITY_BLACK));
+
+
+				/* Disable dynamically the widgets which PlayerFaceVariable has less than 2 options
+				* (or in other words you haven't any choice).
+				* If the widgets depend on a HAS-variable and this is false the widgets will be disabled, too. */
+
+				/* Eye colour buttons */
+				SetWindowWidgetsDisabledState(w, _pf_info[PFV_EYE_COLOUR].valid_values[ge] < 2,
+					PFW_WIDGET_EYECOLOUR, PFW_WIDGET_EYECOLOUR_L, PFW_WIDGET_EYECOLOUR_R, WIDGET_LIST_END);
+
+				/* Chin buttons */
+				SetWindowWidgetsDisabledState(w, _pf_info[PFV_CHIN].valid_values[ge] < 2,
+					PFW_WIDGET_CHIN, PFW_WIDGET_CHIN_L, PFW_WIDGET_CHIN_R, WIDGET_LIST_END);
+
+				/* Eyebrows buttons */
+				SetWindowWidgetsDisabledState(w, _pf_info[PFV_EYEBROWS].valid_values[ge] < 2,
+					PFW_WIDGET_EYEBROWS, PFW_WIDGET_EYEBROWS_L, PFW_WIDGET_EYEBROWS_R, WIDGET_LIST_END);
+
+				/* Lips or (if it a male face with a moustache) moustache buttons */
+				SetWindowWidgetsDisabledState(w, _pf_info[is_moust_male ? PFV_MOUSTACHE : PFV_LIPS].valid_values[ge] < 2,
+					PFW_WIDGET_LIPS_MOUSTACHE, PFW_WIDGET_LIPS_MOUSTACHE_L, PFW_WIDGET_LIPS_MOUSTACHE_R, WIDGET_LIST_END);
+
+				/* Nose buttons | male faces with moustache haven't any nose options */
+				SetWindowWidgetsDisabledState(w, _pf_info[PFV_NOSE].valid_values[ge] < 2 || is_moust_male,
+					PFW_WIDGET_NOSE, PFW_WIDGET_NOSE_L, PFW_WIDGET_NOSE_R, WIDGET_LIST_END);
+
+				/* Hair buttons */
+				SetWindowWidgetsDisabledState(w, _pf_info[PFV_HAIR].valid_values[ge] < 2,
+					PFW_WIDGET_HAIR, PFW_WIDGET_HAIR_L, PFW_WIDGET_HAIR_R, WIDGET_LIST_END);
+
+				/* Jacket buttons */
+				SetWindowWidgetsDisabledState(w, _pf_info[PFV_JACKET].valid_values[ge] < 2,
+					PFW_WIDGET_JACKET, PFW_WIDGET_JACKET_L, PFW_WIDGET_JACKET_R, WIDGET_LIST_END);
+
+				/* Collar buttons */
+				SetWindowWidgetsDisabledState(w, _pf_info[PFV_COLLAR].valid_values[ge] < 2,
+					PFW_WIDGET_COLLAR, PFW_WIDGET_COLLAR_L, PFW_WIDGET_COLLAR_R, WIDGET_LIST_END);
+
+				/* Tie/earring buttons | female faces without earring haven't any earring options */
+				SetWindowWidgetsDisabledState(w, _pf_info[PFV_TIE_EARRING].valid_values[ge] < 2 ||
+						(is_female && GetPlayerFaceBits(*pf, PFV_HAS_TIE_EARRING, ge) == 0),
+					PFW_WIDGET_TIE_EARRING, PFW_WIDGET_TIE_EARRING_L, PFW_WIDGET_TIE_EARRING_R, WIDGET_LIST_END);
+
+				/* Glasses buttons | faces without glasses haven't any glasses options */
+				SetWindowWidgetsDisabledState(w, _pf_info[PFV_GLASSES].valid_values[ge] < 2 || GetPlayerFaceBits(*pf, PFV_HAS_GLASSES, ge) == 0,
+					PFW_WIDGET_GLASSES, PFW_WIDGET_GLASSES_L, PFW_WIDGET_GLASSES_R, WIDGET_LIST_END);
+			}
+
+			DrawWindowWidgets(w);
+
+			/* Draw dynamic button value and labels for the advanced player face selection window */
+			if (WP(w, facesel_d).advanced) {
+				if (is_female) {
+					/* Only for female faces */
+					DrawFaceStringLabel(w, PFW_WIDGET_HAS_MOUSTACHE_EARRING, STR_FACE_EARRING,   GetPlayerFaceBits(*pf, PFV_HAS_TIE_EARRING, ge), true );
+					DrawFaceStringLabel(w, PFW_WIDGET_TIE_EARRING,           STR_FACE_EARRING,   GetPlayerFaceBits(*pf, PFV_TIE_EARRING,     ge), false);
+				} else {
+					/* Only for male faces */
+					DrawFaceStringLabel(w, PFW_WIDGET_HAS_MOUSTACHE_EARRING, STR_FACE_MOUSTACHE, GetPlayerFaceBits(*pf, PFV_HAS_MOUSTACHE,   ge), true );
+					DrawFaceStringLabel(w, PFW_WIDGET_TIE_EARRING,           STR_FACE_TIE,       GetPlayerFaceBits(*pf, PFV_TIE_EARRING,     ge), false);
+				}
+				if (is_moust_male) {
+					/* Only for male faces with moustache */
+					DrawFaceStringLabel(w, PFW_WIDGET_LIPS_MOUSTACHE,        STR_FACE_MOUSTACHE, GetPlayerFaceBits(*pf, PFV_MOUSTACHE,       ge), false);
+				} else {
+					/* Only for female faces or male faces without moustache */
+					DrawFaceStringLabel(w, PFW_WIDGET_LIPS_MOUSTACHE,        STR_FACE_LIPS,      GetPlayerFaceBits(*pf, PFV_LIPS,            ge), false);
+				}
+				/* For all faces */
+				DrawFaceStringLabel(w, PFW_WIDGET_HAS_GLASSES,           STR_FACE_GLASSES,     GetPlayerFaceBits(*pf, PFV_HAS_GLASSES,     ge), true );
+				DrawFaceStringLabel(w, PFW_WIDGET_HAIR,                  STR_FACE_HAIR,        GetPlayerFaceBits(*pf, PFV_HAIR,            ge), false);
+				DrawFaceStringLabel(w, PFW_WIDGET_EYEBROWS,              STR_FACE_EYEBROWS,    GetPlayerFaceBits(*pf, PFV_EYEBROWS,        ge), false);
+				DrawFaceStringLabel(w, PFW_WIDGET_EYECOLOUR,             STR_FACE_EYECOLOUR,   GetPlayerFaceBits(*pf, PFV_EYE_COLOUR,      ge), false);
+				DrawFaceStringLabel(w, PFW_WIDGET_GLASSES,               STR_FACE_GLASSES,     GetPlayerFaceBits(*pf, PFV_GLASSES,         ge), false);
+				DrawFaceStringLabel(w, PFW_WIDGET_NOSE,                  STR_FACE_NOSE,        GetPlayerFaceBits(*pf, PFV_NOSE,            ge), false);
+				DrawFaceStringLabel(w, PFW_WIDGET_CHIN,                  STR_FACE_CHIN,        GetPlayerFaceBits(*pf, PFV_CHIN,            ge), false);
+				DrawFaceStringLabel(w, PFW_WIDGET_JACKET,                STR_FACE_JACKET,      GetPlayerFaceBits(*pf, PFV_JACKET,          ge), false);
+				DrawFaceStringLabel(w, PFW_WIDGET_COLLAR,                STR_FACE_COLLAR,      GetPlayerFaceBits(*pf, PFV_COLLAR,          ge), false);
+			}
+
+			/* Draw the player face picture */
+			DrawPlayerFace(*pf, GetPlayer((PlayerID)w->window_number)->player_color, 2, 16);
+			break;
+
+		case WE_CLICK:
+			switch (e->we.click.widget) {
+				/* Toggle size, advanced/simple face selection */
+				case PFW_WIDGET_TOGGLE_LARGE_SMALL:
+				case PFW_WIDGET_TOGGLE_LARGE_SMALL_BUTTON:
+					DoCommandP(0, 0, *pf, NULL, CMD_SET_PLAYER_FACE);
+					DeleteWindow(w);
+					DoSelectPlayerFace((PlayerID)w->window_number, !WP(w, facesel_d).advanced);
+					break;
+
+				/* Cancel button */
+				case PFW_WIDGET_CANCEL:
+					DeleteWindow(w);
+					break;
+
+				/* OK button */
+				case PFW_WIDGET_ACCEPT:
+					DoCommandP(0, 0, *pf, NULL, CMD_SET_PLAYER_FACE);
+					DeleteWindow(w);
+					break;
+
+				/* Load button */
+				case PFW_WIDGET_LOAD:
+					*pf = _player_face;
+					ScaleAllPlayerFaceBits(*pf);
+					ShowErrorMessage(INVALID_STRING_ID, STR_FACE_LOAD_DONE, 0, 0);
+					SetWindowDirty(w);
+					break;
+
+				/* 'Player face number' button, view and/or set player face number */
+				case PFW_WIDGET_FACECODE:
+					SetDParam(0, *pf);
+					ShowQueryString(STR_JUST_INT, STR_FACE_FACECODE_CAPTION, 10 + 1, 0, w, CS_NUMERAL);
+					break;
+
+				/* Save button */
+				case PFW_WIDGET_SAVE:
+					_player_face = *pf;
+					ShowErrorMessage(INVALID_STRING_ID, STR_FACE_SAVE_DONE, 0, 0);
+					break;
+
+				/* Toggle gender (male/female) button */
+				case PFW_WIDGET_MALE:
+				case PFW_WIDGET_FEMALE:
+					SetPlayerFaceBits(*pf, PFV_GENDER, ge, e->we.click.widget - PFW_WIDGET_MALE);
+					ScaleAllPlayerFaceBits(*pf);
+					SetWindowDirty(w);
+					break;
+
+				/* Randomize face button */
+				case PFW_WIDGET_RANDOM_NEW_FACE:
+					RandomPlayerFaceBits(*pf, ge, WP(w, facesel_d).advanced);
+					SetWindowDirty(w);
+					break;
+
+				/* Toggle ethnicity (european/african) button */
+				case PFW_WIDGET_ETHNICITY_EUR:
+				case PFW_WIDGET_ETHNICITY_AFR:
+					SetPlayerFaceBits(*pf, PFV_ETHNICITY, ge, e->we.click.widget - PFW_WIDGET_ETHNICITY_EUR);
+					ScaleAllPlayerFaceBits(*pf);
+					SetWindowDirty(w);
+					break;
+
+				default:
+					/* For all buttons from PFW_WIDGET_HAS_MOUSTACHE_EARRING to PFW_WIDGET_GLASSES_R is the same function.
+					* Therefor is this combined function.
+					* First it checks which PlayerFaceVariable will be change and then
+					* a: invert the value for boolean variables
+					* or b: it checks inside of IncreasePlayerFaceBits() if a left (_L) butten is pressed and then decrease else increase the variable */
+					if (WP(w, facesel_d).advanced && e->we.click.widget >= PFW_WIDGET_HAS_MOUSTACHE_EARRING && e->we.click.widget <= PFW_WIDGET_GLASSES_R) {
+						PlayerFaceVariable pfv; // which PlayerFaceVariable shall be edited
+
+						if (e->we.click.widget < PFW_WIDGET_EYECOLOUR_L) { // Bool buttons
+							switch (e->we.click.widget - PFW_WIDGET_HAS_MOUSTACHE_EARRING) {
+								default: NOT_REACHED();
+								case 0: pfv = is_female ? PFV_HAS_TIE_EARRING : PFV_HAS_MOUSTACHE; break; // Has earring/moustache button
+								case 1: pfv = PFV_HAS_GLASSES; break; // Has glasses button
+							}
+							SetPlayerFaceBits(*pf, pfv, ge, !GetPlayerFaceBits(*pf, pfv, ge));
+							ScaleAllPlayerFaceBits(*pf);
+
+						} else { // Value buttons
+							switch ((e->we.click.widget - PFW_WIDGET_EYECOLOUR_L) / 3) {
+								default: NOT_REACHED();
+								case 0: pfv = PFV_EYE_COLOUR; break;  // Eye colour buttons
+								case 1: pfv = PFV_CHIN; break;        // Chin buttons
+								case 2: pfv = PFV_EYEBROWS; break;    // Eyebrows buttons
+								case 3: pfv = is_moust_male ? PFV_MOUSTACHE : PFV_LIPS; break; // Moustache or lips buttons
+								case 4: pfv = PFV_NOSE; break;        // Nose buttons
+								case 5: pfv = PFV_HAIR; break;        // Hair buttons
+								case 6: pfv = PFV_JACKET; break;      // Jacket buttons
+								case 7: pfv = PFV_COLLAR; break;      // Collar buttons
+								case 8: pfv = PFV_TIE_EARRING; break; // Tie/earring buttons
+								case 9: pfv = PFV_GLASSES; break;     // Glasses buttons
+							}
+							/* 0 == left (_L), 1 == middle or 2 == right (_R) - button click */
+							IncreasePlayerFaceBits(*pf, pfv, ge, (((e->we.click.widget - PFW_WIDGET_EYECOLOUR_L) % 3) != 0) ? 1 : -1);
+						}
+
+						SetWindowDirty(w);
+					}
+					break;
+			}
+			break;
+
+		case WE_ON_EDIT_TEXT:
+			/* Set a new player face number */
+			if (!StrEmpty(e->we.edittext.str)) {
+				*pf = strtoul(e->we.edittext.str, NULL, 10);
+				ScaleAllPlayerFaceBits(*pf);
+				ShowErrorMessage(INVALID_STRING_ID, STR_FACE_FACECODE_SET, 0, 0);
+				SetWindowDirty(w);
+			} else {
+				ShowErrorMessage(INVALID_STRING_ID, STR_FACE_FACECODE_ERR, 0, 0);
+			}
+			break;
+	}
+}
+
+/** normal/simple player face selection window description */
 static const WindowDesc _select_player_face_desc = {
-	WDP_AUTO, WDP_AUTO, 190, 149, 190, 149,
+	WDP_AUTO, WDP_AUTO, 190, 163, 190, 163,
 	WC_PLAYER_FACE, WC_NONE,
 	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS,
 	_select_player_face_widgets,
 	SelectPlayerFaceWndProc
 };
 
+/** advanced player face selection window description */
+static const WindowDesc _select_player_face_adv_desc = {
+	WDP_AUTO, WDP_AUTO, 220, 220, 220, 220,
+	WC_PLAYER_FACE, WC_NONE,
+	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS,
+	_select_player_face_adv_widgets,
+	SelectPlayerFaceWndProc
+};
+
+/**
+ * Open the simple/advanced player face selection window
+ *
+ * @param player the player which face shall be edited
+ * @param adv    simple or advanced player face selection window
+ *
+ * @pre is player a valid player
+ */
+static void DoSelectPlayerFace(PlayerID player, bool adv)
+{
+	if (!IsValidPlayer(player)) return;
+
+	Window *w = AllocateWindowDescFront(adv ? &_select_player_face_adv_desc : &_select_player_face_desc, player); // simple or advanced window
+
+	if (w != NULL) {
+		w->caption_color = w->window_number;
+		WP(w, facesel_d).face = GetPlayer((PlayerID)w->window_number)->face;
+		WP(w, facesel_d).advanced = adv;
+	}
+}
+
+
 /* Names of the widgets. Keep them in the same order as in the widget array */
 enum PlayerCompanyWindowWidgets {
 	PCW_WIDGET_CLOSEBOX = 0,
@@ -682,6 +1055,12 @@
 	if (num >= 0) DrawString(120, 124, STR_707D_OWNED_BY + num, 0);
 }
 
+/**
+ * Player company window event definition
+ *
+ * @param w window pointer
+ * @param e event been triggered
+ */
 static void PlayerCompanyWndProc(Window *w, WindowEvent *e)
 {
 	switch (e->event) {
@@ -749,15 +1128,7 @@
 
 		case WE_CLICK:
 			switch (e->we.click.widget) {
-				case PCW_WIDGET_NEW_FACE: {
-					Window *wf = AllocateWindowDescFront(&_select_player_face_desc, w->window_number);
-					if (wf != NULL) {
-						wf->caption_color = w->window_number;
-						WP(wf, facesel_d).face = GetPlayer((PlayerID)wf->window_number)->face;
-						WP(wf, facesel_d).gender = 0;
-					}
-					break;
-				}
+				case PCW_WIDGET_NEW_FACE: DoSelectPlayerFace((PlayerID)w->window_number, false); break;
 
 				case PCW_WIDGET_COLOR_SCHEME: {
 					Window *wf = AllocateWindowDescFront(_loaded_newgrf_features.has_2CC ? &_select_player_livery_2cc_desc : &_select_player_livery_desc, w->window_number);
--- a/src/players.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/players.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -94,7 +94,7 @@
 
 	SetPlayerFaceBits(pf, PFV_GEN_ETHN,    ge, ge);
 	SetPlayerFaceBits(pf, PFV_HAS_GLASSES, ge, GB(face, 28, 3) <= 1);
-	SetPlayerFaceBits(pf, PFV_EYE_COLOUR,  ge, clampu(GB(face, 20, 3), 5, 7) - 5);
+	SetPlayerFaceBits(pf, PFV_EYE_COLOUR,  ge, HASBIT(ge, ETHNICITY_BLACK) ? 0 : clampu(GB(face, 20, 3), 5, 7) - 5);
 	SetPlayerFaceBits(pf, PFV_CHIN,        ge, ScalePlayerFaceValue(PFV_CHIN,     ge, GB(face,  4, 2)));
 	SetPlayerFaceBits(pf, PFV_EYEBROWS,    ge, ScalePlayerFaceValue(PFV_EYEBROWS, ge, GB(face,  6, 4)));
 	SetPlayerFaceBits(pf, PFV_HAIR,        ge, ScalePlayerFaceValue(PFV_HAIR,     ge, GB(face, 16, 4)));
@@ -456,6 +456,12 @@
 	}
 }
 
+/**
+ * Create a new player and sets all player variables default values
+ *
+ * @param is_ai is a ai player?
+ * @return the player struct
+ */
 Player *DoStartupNewPlayer(bool is_ai)
 {
 	Player *p;
@@ -478,7 +484,7 @@
 	p->avail_railtypes = GetPlayerRailtypes(p->index);
 	p->avail_roadtypes = GetPlayerRoadtypes(p->index);
 	p->inaugurated_year = _cur_year;
-	p->face = ConvertFromOldPlayerFace(Random());
+	RandomPlayerFaceBits(p->face, (GenderEthnicity)Random(), false); // create a random player face
 
 	/* Engine renewal settings */
 	p->engine_renew_list = NULL;
--- a/src/rail.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/rail.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -103,6 +103,16 @@
 	TRACKDIR_X_NE, TRACKDIR_Y_SE, TRACKDIR_X_SW, TRACKDIR_Y_NW,
 };
 
+extern const TrackBits _corner_to_trackbits[] = {
+	TRACK_BIT_LEFT, TRACK_BIT_LOWER, TRACK_BIT_RIGHT, TRACK_BIT_UPPER,
+};
+
+/* The default multiplier for the cost of building different types of railway
+ * track, which will be divided by 8. Can be changed by newgrf files. */
+const int _default_railtype_cost_multiplier[RAILTYPE_END] = {
+	8, 12, 16, 24,
+};
+int _railtype_cost_multiplier[RAILTYPE_END];
 
 RailType GetTileRailType(TileIndex tile)
 {
--- a/src/rail.h	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/rail.h	Sat Oct 20 10:42:28 2007 +0000
@@ -8,6 +8,7 @@
 #include "gfx.h"
 #include "direction.h"
 #include "tile.h"
+#include "variables.h"
 
 /**
  * Enumeration for all possible railtypes.
@@ -120,6 +121,19 @@
 	return TrackToTrackBits(AxisToTrack(a));
 }
 
+/**
+ * Returns a single horizontal/vertical trackbit, that is in a specific tile corner.
+ *
+ * @param corner The corner of a tile.
+ * @return The TrackBits of the track in the corner.
+ */
+static inline TrackBits CornerToTrackBits(Corner corner)
+{
+	extern const TrackBits _corner_to_trackbits[];
+	assert(IsValidCorner(corner));
+	return _corner_to_trackbits[corner];
+}
+
 
 /**
  * Enumeration for tracks and directions.
@@ -778,6 +792,21 @@
 	return bits != TRACK_BIT_HORZ && bits != TRACK_BIT_VERT;
 }
 
+
+extern int _railtype_cost_multiplier[RAILTYPE_END];
+extern const int _default_railtype_cost_multiplier[RAILTYPE_END];
+
+/**
+ * Returns the cost of building the specified railtype.
+ * @param railtype The railtype being built.
+ * @return The cost multiplier.
+ */
+static inline Money RailBuildCost(RailType railtype)
+{
+	assert(railtype < RAILTYPE_END);
+	return (_price.build_rail * _railtype_cost_multiplier[railtype]) >> 3;
+}
+
 void *UpdateTrainPowerProc(Vehicle *v, void *data);
 void DrawTrainDepotSprite(int x, int y, int image, RailType railtype);
 void DrawDefaultWaypointSprite(int x, int y, RailType railtype);
--- a/src/rail_cmd.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/rail_cmd.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -150,10 +150,8 @@
 }
 
 
-static const TrackBits _valid_tileh_slopes[][15] = {
-
-/* set of normal ones */
-{
+/** Valid TrackBits on a specific (non-steep)-slope without foundation */
+static const TrackBits _valid_tracks_without_foundation[15] = {
 	TRACK_BIT_ALL,
 	TRACK_BIT_RIGHT,
 	TRACK_BIT_UPPER,
@@ -172,10 +170,10 @@
 	TRACK_BIT_X,
 	TRACK_BIT_UPPER,
 	TRACK_BIT_RIGHT,
-},
+};
 
-/* allowed rail for an evenly raised platform */
-{
+/** Valid TrackBits on a specific (non-steep)-slope with leveled foundation */
+static const TrackBits _valid_tracks_on_leveled_foundation[15] = {
 	TRACK_BIT_NONE,
 	TRACK_BIT_LEFT,
 	TRACK_BIT_LOWER,
@@ -194,62 +192,82 @@
 	TRACK_BIT_Y | TRACK_BIT_UPPER | TRACK_BIT_RIGHT,
 	TRACK_BIT_ALL,
 	TRACK_BIT_ALL
-}
 };
 
+/**
+ * Checks if a track combination is valid on a specific slope and returns the needed foundation.
+ *
+ * @param tileh Tile slope.
+ * @param bits  Trackbits.
+ * @return Needed foundation or FOUNDATION_INVALID if track/slope combination is not allowed.
+ */
 Foundation GetRailFoundation(Slope tileh, TrackBits bits)
 {
-	if (!IsSteepSlope(tileh)) {
-		if ((~_valid_tileh_slopes[0][tileh] & bits) == 0) return FOUNDATION_NONE;
-		if ((~_valid_tileh_slopes[1][tileh] & bits) == 0) return FOUNDATION_LEVELED;
-	}
+	if (bits == TRACK_BIT_NONE) return FOUNDATION_NONE;
 
-	switch (bits) {
-		default: NOT_REACHED();
-		case TRACK_BIT_X:     return FOUNDATION_INCLINED_X;
-		case TRACK_BIT_Y:     return FOUNDATION_INCLINED_Y;
-		case TRACK_BIT_LEFT:  return (tileh == SLOPE_STEEP_W ? FOUNDATION_STEEP_HIGHER : FOUNDATION_STEEP_LOWER);
-		case TRACK_BIT_LOWER: return (tileh == SLOPE_STEEP_S ? FOUNDATION_STEEP_HIGHER : FOUNDATION_STEEP_LOWER);
-		case TRACK_BIT_RIGHT: return (tileh == SLOPE_STEEP_E ? FOUNDATION_STEEP_HIGHER : FOUNDATION_STEEP_LOWER);
-		case TRACK_BIT_UPPER: return (tileh == SLOPE_STEEP_N ? FOUNDATION_STEEP_HIGHER : FOUNDATION_STEEP_LOWER);
+	if (IsSteepSlope(tileh)) {
+		/* Test for inclined foundations */
+		if (bits == TRACK_BIT_X) return FOUNDATION_INCLINED_X;
+		if (bits == TRACK_BIT_Y) return FOUNDATION_INCLINED_Y;
+
+		/* Get higher track */
+		Corner highest_corner = GetHighestSlopeCorner(tileh);
+		TrackBits higher_track = CornerToTrackBits(highest_corner);
+
+		/* Only higher track? */
+		if (bits == higher_track) return FOUNDATION_STEEP_HIGHER;
+
+		/* Overlap with higher track? */
+		if (TracksOverlap(bits | higher_track)) return FOUNDATION_INVALID;
+
+		/* either lower track or both higher and lower track */
+		return ((bits & higher_track) != 0 ? FOUNDATION_INVALID : FOUNDATION_STEEP_LOWER);
+	} else {
+		if ((~_valid_tracks_without_foundation[tileh] & bits) == 0) return FOUNDATION_NONE;
+
+		bool valid_on_leveled = ((~_valid_tracks_on_leveled_foundation[tileh] & bits) == 0);
+
+		switch (bits) {
+			case TRACK_BIT_X:
+				if (HasSlopeHighestCorner(tileh)) return FOUNDATION_INCLINED_X;
+				return (valid_on_leveled ? FOUNDATION_LEVELED : FOUNDATION_INVALID);
+
+			case TRACK_BIT_Y:
+				if (HasSlopeHighestCorner(tileh)) return FOUNDATION_INCLINED_Y;
+				return (valid_on_leveled ? FOUNDATION_LEVELED : FOUNDATION_INVALID);
+
+			default:
+				return (valid_on_leveled ? FOUNDATION_LEVELED : FOUNDATION_INVALID);
+		}
 	}
 }
 
 
+/**
+ * Tests if a track can be build on a tile.
+ *
+ * @param tileh Tile slope.
+ * @param rail_bits Tracks to build.
+ * @param existing Tracks already built.
+ * @param tile Tile (used for water test)
+ * @return Error message or cost for foundation building.
+ */
 static CommandCost CheckRailSlope(Slope tileh, TrackBits rail_bits, TrackBits existing, TileIndex tile)
 {
-	if (IsSteepSlope(tileh)) {
-		if (_patches.build_on_slopes && existing == 0) {
-			/* There may only be one track on steep slopes. (Autoslope calls with multiple bits in rail_bits) */
-			if (KILL_FIRST_BIT(rail_bits & TRACK_BIT_MASK) == 0) {
-				TrackBits valid = TRACK_BIT_CROSS | (HASBIT(1 << SLOPE_STEEP_W | 1 << SLOPE_STEEP_E, tileh) ? TRACK_BIT_VERT : TRACK_BIT_HORZ);
-				if (valid & rail_bits) return _price.terraform;
-			}
-		}
-	} else {
-		rail_bits |= existing;
+	/* don't allow building on the lower side of a coast */
+	if (IsTileType(tile, MP_WATER)) {
+		if (!IsSteepSlope(tileh) && ((~_valid_tracks_on_leveled_foundation[tileh] & (rail_bits | existing)) != 0)) return_cmd_error(STR_3807_CAN_T_BUILD_ON_WATER);
+	}
 
-		/* don't allow building on the lower side of a coast */
-		if (IsTileType(tile, MP_WATER) &&
-				~_valid_tileh_slopes[1][tileh] & rail_bits) {
-			return_cmd_error(STR_3807_CAN_T_BUILD_ON_WATER);
-		}
+	Foundation f_new = GetRailFoundation(tileh, rail_bits | existing);
 
-		/* no special foundation */
-		if ((~_valid_tileh_slopes[0][tileh] & rail_bits) == 0) {
-			return CommandCost();
-		} else if (!_patches.build_on_slopes) {
-			return_cmd_error(STR_1000_LAND_SLOPED_IN_WRONG_DIRECTION);
-		}
+	/* check track/slope combination */
+	if ((f_new == FOUNDATION_INVALID) ||
+	    ((f_new != FOUNDATION_NONE) && (!_patches.build_on_slopes))
+	   ) return_cmd_error(STR_1000_LAND_SLOPED_IN_WRONG_DIRECTION);
 
-		if ((~_valid_tileh_slopes[1][tileh] & rail_bits) == 0 || ( // whole tile is leveled up
-					(rail_bits == TRACK_BIT_X || rail_bits == TRACK_BIT_Y) &&
-					(tileh == SLOPE_W || tileh == SLOPE_S || tileh == SLOPE_E || tileh == SLOPE_N)
-				)) { // partly up
-			return CommandCost((existing != 0) ? 0 : _price.terraform);
-		}
-	}
-	return_cmd_error(STR_1000_LAND_SLOPED_IN_WRONG_DIRECTION);
+	Foundation f_old = GetRailFoundation(tileh, existing);
+	return CommandCost(f_new != f_old ? _price.terraform : 0);
 }
 
 /* Validate functions for rail building */
@@ -376,7 +394,7 @@
 		YapfNotifyTrackLayoutChange(tile, track);
 	}
 
-	return cost.AddCost(_price.build_rail);
+	return cost.AddCost(RailBuildCost(railtype));
 }
 
 /** Remove a single piece of track
@@ -1073,7 +1091,7 @@
 		VehicleFromPos(tile, &tile, UpdateTrainPowerProc);
 	}
 
-	return CommandCost(_price.build_rail / 2);
+	return CommandCost(RailBuildCost(totype) / 2);
 }
 
 extern CommandCost DoConvertStationRail(TileIndex tile, RailType totype, bool exec);
--- a/src/rail_gui.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/rail_gui.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -235,25 +235,27 @@
 
 
 /** Enum referring to the widgets of the build rail toolbar */
-enum {
-	RTW_CAPTION        =  1,
-	RTW_BUILD_NS       =  4,
-	RTW_BUILD_X        =  5,
-	RTW_BUILD_EW       =  6,
-	RTW_BUILD_Y        =  7,
-	RTW_AUTORAIL       =  8,
-	RTW_DEMOLISH       =  9,
-	RTW_BUILD_DEPOT    = 10,
-	RTW_BUILD_WAYPOINT = 11,
-	RTW_BUILD_STATION  = 12,
-	RTW_BUILD_SIGNALS  = 13,
-	RTW_BUILD_BRIDGE   = 14,
-	RTW_BUILD_TUNNEL   = 15,
-	RTW_REMOVE         = 16,
-	RTW_CONVERT_RAIL   = 17
+enum RailToolbarWidgets {
+	RTW_CLOSEBOX = 0,
+	RTW_CAPTION,
+	RTW_STICKY,
+	RTW_SPACER,
+	RTW_BUILD_NS,
+	RTW_BUILD_X,
+	RTW_BUILD_EW,
+	RTW_BUILD_Y,
+	RTW_AUTORAIL,
+	RTW_DEMOLISH,
+	RTW_BUILD_DEPOT,
+	RTW_BUILD_WAYPOINT,
+	RTW_BUILD_STATION,
+	RTW_BUILD_SIGNALS,
+	RTW_BUILD_BRIDGE,
+	RTW_BUILD_TUNNEL,
+	RTW_REMOVE,
+	RTW_CONVERT_RAIL,
 };
 
-
 static void BuildRailClick_N(Window *w)
 {
 	HandlePlacePushButton(w, RTW_BUILD_NS, GetRailTypeInfo(_cur_railtype)->cursor.rail_ns, 1, PlaceRail_N);
@@ -433,11 +435,12 @@
 
 static void UpdateRemoveWidgetStatus(Window *w, int clicked_widget)
 {
-	/* If it is the removal button that has been clicked, do nothing,
-	 * as it is up to the other buttons to drive removal status */
-	if (clicked_widget == RTW_REMOVE) return;
-
 	switch (clicked_widget) {
+		case RTW_REMOVE:
+			/* If it is the removal button that has been clicked, do nothing,
+			 * as it is up to the other buttons to drive removal status */
+			return;
+			break;
 		case RTW_BUILD_NS:
 		case RTW_BUILD_X:
 		case RTW_BUILD_EW:
@@ -453,7 +456,7 @@
 
 		default:
 			/* When any other buttons than rail/signal/waypoint/station, raise and
-			 * disable the removal button*/
+			 * disable the removal button */
 			DisableWindowWidget(w, RTW_REMOVE);
 			RaiseWindowWidget(w, RTW_REMOVE);
 			break;
@@ -468,28 +471,25 @@
 	case WE_PAINT: DrawWindowWidgets(w); break;
 
 	case WE_CLICK:
-		if (e->we.click.widget >= 4) {
+		if (e->we.click.widget >= RTW_BUILD_NS) {
 			_remove_button_clicked = false;
-			_build_railroad_button_proc[e->we.click.widget - 4](w);
+			_build_railroad_button_proc[e->we.click.widget - RTW_BUILD_NS](w);
 		}
 		UpdateRemoveWidgetStatus(w, e->we.click.widget);
 		break;
 
-	case WE_KEYPRESS: {
-		uint i;
-
-		for (i = 0; i != lengthof(_rail_keycodes); i++) {
+	case WE_KEYPRESS:
+		for (uint8 i = 0; i != lengthof(_rail_keycodes); i++) {
 			if (e->we.keypress.keycode == _rail_keycodes[i]) {
 				e->we.keypress.cont = false;
 				_remove_button_clicked = false;
 				_build_railroad_button_proc[i](w);
-				UpdateRemoveWidgetStatus(w, i + 4);
+				UpdateRemoveWidgetStatus(w, i + RTW_BUILD_NS);
 				break;
 			}
 		}
 		MarkTileDirty(_thd.pos.x, _thd.pos.y); // redraw tile selection
 		break;
-	}
 
 	case WE_PLACE_OBJ:
 		_place_proc(e->we.place.tile);
@@ -571,30 +571,30 @@
 	}
 }
 
-
+/** Widget definition for the rail toolbar */
 static const Widget _build_rail_widgets[] = {
-{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,                       STR_018B_CLOSE_WINDOW},
-{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   337,     0,    13, STR_100A_RAILROAD_CONSTRUCTION, STR_018C_WINDOW_TITLE_DRAG_THIS},
-{  WWT_STICKYBOX,   RESIZE_NONE,     7,   338,   349,     0,    13, 0x0,                            STR_STICKY_BUTTON},
-
-{      WWT_PANEL,   RESIZE_NONE,     7,   110,   113,    14,    35, 0x0,                            STR_NULL},
+{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,                       STR_018B_CLOSE_WINDOW},                   // RTW_CLOSEBOX
+{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   337,     0,    13, STR_100A_RAILROAD_CONSTRUCTION, STR_018C_WINDOW_TITLE_DRAG_THIS},         // RTW_CAPTION
+{  WWT_STICKYBOX,   RESIZE_NONE,     7,   338,   349,     0,    13, 0x0,                            STR_STICKY_BUTTON},                       // RTW_STICKY
 
-{     WWT_IMGBTN,   RESIZE_NONE,     7,    0,     21,    14,    35, SPR_IMG_RAIL_NS,                STR_1018_BUILD_RAILROAD_TRACK},
-{     WWT_IMGBTN,   RESIZE_NONE,     7,    22,    43,    14,    35, SPR_IMG_RAIL_NE,                STR_1018_BUILD_RAILROAD_TRACK},
-{     WWT_IMGBTN,   RESIZE_NONE,     7,    44,    65,    14,    35, SPR_IMG_RAIL_EW,                STR_1018_BUILD_RAILROAD_TRACK},
-{     WWT_IMGBTN,   RESIZE_NONE,     7,    66,    87,    14,    35, SPR_IMG_RAIL_NW,                STR_1018_BUILD_RAILROAD_TRACK},
-{     WWT_IMGBTN,   RESIZE_NONE,     7,    88,   109,    14,    35, SPR_IMG_AUTORAIL,               STR_BUILD_AUTORAIL_TIP},
+{      WWT_PANEL,   RESIZE_NONE,     7,   110,   113,    14,    35, 0x0,                            STR_NULL},                                // RTW_SPACER
 
-{     WWT_IMGBTN,   RESIZE_NONE,     7,   114,   135,    14,    35, SPR_IMG_DYNAMITE,               STR_018D_DEMOLISH_BUILDINGS_ETC},
-{     WWT_IMGBTN,   RESIZE_NONE,     7,   136,   157,    14,    35, SPR_IMG_DEPOT_RAIL,             STR_1019_BUILD_TRAIN_DEPOT_FOR_BUILDING},
-{     WWT_IMGBTN,   RESIZE_NONE,     7,   158,   179,    14,    35, SPR_IMG_WAYPOINT,               STR_CONVERT_RAIL_TO_WAYPOINT_TIP},
+{     WWT_IMGBTN,   RESIZE_NONE,     7,    0,     21,    14,    35, SPR_IMG_RAIL_NS,                STR_1018_BUILD_RAILROAD_TRACK},           // RTW_BUILD_NS
+{     WWT_IMGBTN,   RESIZE_NONE,     7,    22,    43,    14,    35, SPR_IMG_RAIL_NE,                STR_1018_BUILD_RAILROAD_TRACK},           // RTW_BUILD_X
+{     WWT_IMGBTN,   RESIZE_NONE,     7,    44,    65,    14,    35, SPR_IMG_RAIL_EW,                STR_1018_BUILD_RAILROAD_TRACK},           // RTW_BUILD_EW
+{     WWT_IMGBTN,   RESIZE_NONE,     7,    66,    87,    14,    35, SPR_IMG_RAIL_NW,                STR_1018_BUILD_RAILROAD_TRACK},           // RTW_BUILD_Y
+{     WWT_IMGBTN,   RESIZE_NONE,     7,    88,   109,    14,    35, SPR_IMG_AUTORAIL,               STR_BUILD_AUTORAIL_TIP},                  // RTW_AUTORAIL
 
-{     WWT_IMGBTN,   RESIZE_NONE,     7,   180,   221,    14,    35, SPR_IMG_RAIL_STATION,           STR_101A_BUILD_RAILROAD_STATION},
-{     WWT_IMGBTN,   RESIZE_NONE,     7,   222,   243,    14,    35, SPR_IMG_RAIL_SIGNALS,           STR_101B_BUILD_RAILROAD_SIGNALS},
-{     WWT_IMGBTN,   RESIZE_NONE,     7,   244,   285,    14,    35, SPR_IMG_BRIDGE,                 STR_101C_BUILD_RAILROAD_BRIDGE},
-{     WWT_IMGBTN,   RESIZE_NONE,     7,   286,   305,    14,    35, SPR_IMG_TUNNEL_RAIL,            STR_101D_BUILD_RAILROAD_TUNNEL},
-{     WWT_IMGBTN,   RESIZE_NONE,     7,   306,   327,    14,    35, SPR_IMG_REMOVE,                 STR_101E_TOGGLE_BUILD_REMOVE_FOR},
-{     WWT_IMGBTN,   RESIZE_NONE,     7,   328,   349,    14,    35, SPR_IMG_CONVERT_RAIL,           STR_CONVERT_RAIL_TIP},
+{     WWT_IMGBTN,   RESIZE_NONE,     7,   114,   135,    14,    35, SPR_IMG_DYNAMITE,               STR_018D_DEMOLISH_BUILDINGS_ETC},         // RTW_DEMOLISH
+{     WWT_IMGBTN,   RESIZE_NONE,     7,   136,   157,    14,    35, SPR_IMG_DEPOT_RAIL,             STR_1019_BUILD_TRAIN_DEPOT_FOR_BUILDING}, // RTW_BUILD_DEPOT
+{     WWT_IMGBTN,   RESIZE_NONE,     7,   158,   179,    14,    35, SPR_IMG_WAYPOINT,               STR_CONVERT_RAIL_TO_WAYPOINT_TIP},        // RTW_BUILD_WAYPOINT
+
+{     WWT_IMGBTN,   RESIZE_NONE,     7,   180,   221,    14,    35, SPR_IMG_RAIL_STATION,           STR_101A_BUILD_RAILROAD_STATION},         // RTW_BUILD_STATION
+{     WWT_IMGBTN,   RESIZE_NONE,     7,   222,   243,    14,    35, SPR_IMG_RAIL_SIGNALS,           STR_101B_BUILD_RAILROAD_SIGNALS},         // RTW_BUILD_SIGNALS
+{     WWT_IMGBTN,   RESIZE_NONE,     7,   244,   285,    14,    35, SPR_IMG_BRIDGE,                 STR_101C_BUILD_RAILROAD_BRIDGE},          // RTW_BUILD_BRIDGE
+{     WWT_IMGBTN,   RESIZE_NONE,     7,   286,   305,    14,    35, SPR_IMG_TUNNEL_RAIL,            STR_101D_BUILD_RAILROAD_TUNNEL},          // RTW_BUILD_TUNNEL
+{     WWT_IMGBTN,   RESIZE_NONE,     7,   306,   327,    14,    35, SPR_IMG_REMOVE,                 STR_101E_TOGGLE_BUILD_REMOVE_FOR},        // RTW_REMOVE
+{     WWT_IMGBTN,   RESIZE_NONE,     7,   328,   349,    14,    35, SPR_IMG_CONVERT_RAIL,           STR_CONVERT_RAIL_TIP},                    // RTW_CONVERT_RAIL
 
 {   WIDGETS_END},
 };
@@ -644,13 +644,51 @@
 	}
 
 	_remove_button_clicked = false;
-	if (w != NULL && button >= 0) {
+	if (w != NULL && button >= RTW_CLOSEBOX) {
 		_build_railroad_button_proc[button](w);
-		UpdateRemoveWidgetStatus(w, button + 4);
+		UpdateRemoveWidgetStatus(w, button + RTW_BUILD_NS);
 	}
 	if (_patches.link_terraform_toolbar) ShowTerraformToolbar(w);
 }
 
+/** Enum referring to the widgets of the rail stations window */
+enum BuildRailStationWidgets {
+	BRSW_CLOSEBOX = 0,
+	BRSW_CAPTION,
+	BRSW_BACKGROUND,
+
+	BRSW_PLATFORM_DIR_X,
+	BRSW_PLATFORM_DIR_Y,
+
+	BRSW_PLATFORM_NUM_BEGIN = BRSW_PLATFORM_DIR_Y,
+	BRSW_PLATFORM_NUM_1,
+	BRSW_PLATFORM_NUM_2,
+	BRSW_PLATFORM_NUM_3,
+	BRSW_PLATFORM_NUM_4,
+	BRSW_PLATFORM_NUM_5,
+	BRSW_PLATFORM_NUM_6,
+	BRSW_PLATFORM_NUM_7,
+
+	BRSW_PLATFORM_LEN_BEGIN = BRSW_PLATFORM_NUM_7,
+	BRSW_PLATFORM_LEN_1,
+	BRSW_PLATFORM_LEN_2,
+	BRSW_PLATFORM_LEN_3,
+	BRSW_PLATFORM_LEN_4,
+	BRSW_PLATFORM_LEN_5,
+	BRSW_PLATFORM_LEN_6,
+	BRSW_PLATFORM_LEN_7,
+
+	BRSW_PLATFORM_DRAG_N_DROP,
+
+	BRSW_HIGHLIGHT_OFF,
+	BRSW_HIGHLIGHT_ON,
+
+	BRSW_NEWST_DROPDOWN,
+	BRSW_NEWST_DROPDOWN_TEXT,
+	BRSW_NEWST_LIST,
+	BRSW_NEWST_SCROLL
+};
+
 /* TODO: For custom stations, respect their allowed platforms/lengths bitmasks!
  * --pasky */
 
@@ -680,21 +718,21 @@
 	if (statspec == NULL || _railstation.dragdrop) return;
 
 	if (HASBIT(statspec->disallowed_platforms, _railstation.numtracks - 1)) {
-		RaiseWindowWidget(w, _railstation.numtracks + 4);
+		RaiseWindowWidget(w, _railstation.numtracks + BRSW_PLATFORM_NUM_BEGIN);
 		_railstation.numtracks = 1;
 		while (HASBIT(statspec->disallowed_platforms, _railstation.numtracks - 1)) {
 			_railstation.numtracks++;
 		}
-		LowerWindowWidget(w, _railstation.numtracks + 4);
+		LowerWindowWidget(w, _railstation.numtracks + BRSW_PLATFORM_NUM_BEGIN);
 	}
 
 	if (HASBIT(statspec->disallowed_lengths, _railstation.platlength - 1)) {
-		RaiseWindowWidget(w, _railstation.platlength + 11);
+		RaiseWindowWidget(w, _railstation.platlength + BRSW_PLATFORM_LEN_BEGIN);
 		_railstation.platlength = 1;
 		while (HASBIT(statspec->disallowed_lengths, _railstation.platlength - 1)) {
 			_railstation.platlength++;
 		}
-		LowerWindowWidget(w, _railstation.platlength + 11);
+		LowerWindowWidget(w, _railstation.platlength + BRSW_PLATFORM_LEN_BEGIN);
 	}
 }
 
@@ -702,22 +740,19 @@
 {
 	switch (e->event) {
 	case WE_CREATE:
-		LowerWindowWidget(w, _railstation.orientation + 3);
+		LowerWindowWidget(w, _railstation.orientation + BRSW_PLATFORM_DIR_X);
 		if (_railstation.dragdrop) {
-			LowerWindowWidget(w, 19);
+			LowerWindowWidget(w, BRSW_PLATFORM_DRAG_N_DROP);
 		} else {
-			LowerWindowWidget(w, _railstation.numtracks + 4);
-			LowerWindowWidget(w, _railstation.platlength + 11);
+			LowerWindowWidget(w, _railstation.numtracks + BRSW_PLATFORM_NUM_BEGIN);
+			LowerWindowWidget(w, _railstation.platlength + BRSW_PLATFORM_LEN_BEGIN);
 		}
-		SetWindowWidgetLoweredState(w, 20, !_station_show_coverage);
-		SetWindowWidgetLoweredState(w, 21, _station_show_coverage);
+		SetWindowWidgetLoweredState(w, BRSW_HIGHLIGHT_OFF, !_station_show_coverage);
+		SetWindowWidgetLoweredState(w, BRSW_HIGHLIGHT_ON, _station_show_coverage);
 		break;
 
 	case WE_PAINT: {
-		int rad;
-		uint bits;
 		bool newstations = _railstation.newstations;
-		int y_offset;
 		DrawPixelInfo tmp_dpi, *old_dpi;
 		const StationSpec *statspec = newstations ? GetCustomStationSpec(_railstation.station_class, _railstation.station_type) : NULL;
 
@@ -733,26 +768,26 @@
 				SetTileSelectSize(x, y);
 		}
 
-		rad = (_patches.modified_catchment) ? CA_TRAIN : 4;
+		int rad = (_patches.modified_catchment) ? CA_TRAIN : 4;
 
 		if (_station_show_coverage)
 			SetTileSelectBigSize(-rad, -rad, 2 * rad, 2 * rad);
 
-		for (bits = 0; bits < 7; bits++) {
+		for (uint bits = 0; bits < 7; bits++) {
 			bool disable = bits >= _patches.station_spread;
 			if (statspec == NULL) {
-				SetWindowWidgetDisabledState(w, bits +  5, disable);
-				SetWindowWidgetDisabledState(w, bits + 12, disable);
+				SetWindowWidgetDisabledState(w, bits + BRSW_PLATFORM_NUM_1, disable);
+				SetWindowWidgetDisabledState(w, bits + BRSW_PLATFORM_LEN_1, disable);
 			} else {
-				SetWindowWidgetDisabledState(w, bits +  5, HASBIT(statspec->disallowed_platforms, bits) || disable);
-				SetWindowWidgetDisabledState(w, bits + 12, HASBIT(statspec->disallowed_lengths,   bits) || disable);
+				SetWindowWidgetDisabledState(w, bits + BRSW_PLATFORM_NUM_1, HASBIT(statspec->disallowed_platforms, bits) || disable);
+				SetWindowWidgetDisabledState(w, bits + BRSW_PLATFORM_LEN_1, HASBIT(statspec->disallowed_lengths,   bits) || disable);
 			}
 		}
 
 		SetDParam(0, GetStationClassName(_railstation.station_class));
 		DrawWindowWidgets(w);
 
-		y_offset = newstations ? 90 : 0;
+		int y_offset = newstations ? 90 : 0;
 
 		/* Set up a clipping area for the '/' station preview */
 		if (FillDrawPixelInfo(&tmp_dpi, 7, 26 + y_offset, 66, 48)) {
@@ -782,10 +817,9 @@
 		DrawStationCoverageAreaText(2, 166 + y_offset, SCT_ALL, rad);
 
 		if (newstations) {
-			uint16 i;
 			uint y = 35;
 
-			for (i = w->vscroll.pos; i < _railstation.station_count && i < (uint)(w->vscroll.pos + w->vscroll.cap); i++) {
+			for (uint16 i = w->vscroll.pos; i < _railstation.station_count && i < (uint)(w->vscroll.pos + w->vscroll.cap); i++) {
 				const StationSpec *statspec = GetCustomStationSpec(_railstation.station_class, i);
 
 				if (statspec != NULL && statspec->name != 0) {
@@ -805,26 +839,26 @@
 
 	case WE_CLICK: {
 		switch (e->we.click.widget) {
-		case 3:
-		case 4:
-			RaiseWindowWidget(w, _railstation.orientation + 3);
-			_railstation.orientation = e->we.click.widget - 3;
-			LowerWindowWidget(w, _railstation.orientation + 3);
+		case BRSW_PLATFORM_DIR_X:
+		case BRSW_PLATFORM_DIR_Y:
+			RaiseWindowWidget(w, _railstation.orientation + BRSW_PLATFORM_DIR_X);
+			_railstation.orientation = e->we.click.widget - BRSW_PLATFORM_DIR_X;
+			LowerWindowWidget(w, _railstation.orientation + BRSW_PLATFORM_DIR_X);
 			SndPlayFx(SND_15_BEEP);
 			SetWindowDirty(w);
 			break;
 
-		case 5:
-		case 6:
-		case 7:
-		case 8:
-		case 9:
-		case 10:
-		case 11: {
-			RaiseWindowWidget(w, _railstation.numtracks + 4);
-			RaiseWindowWidget(w, 19);
+		case BRSW_PLATFORM_NUM_1:
+		case BRSW_PLATFORM_NUM_2:
+		case BRSW_PLATFORM_NUM_3:
+		case BRSW_PLATFORM_NUM_4:
+		case BRSW_PLATFORM_NUM_5:
+		case BRSW_PLATFORM_NUM_6:
+		case BRSW_PLATFORM_NUM_7: {
+			RaiseWindowWidget(w, _railstation.numtracks + BRSW_PLATFORM_NUM_BEGIN);
+			RaiseWindowWidget(w, BRSW_PLATFORM_DRAG_N_DROP);
 
-			_railstation.numtracks = (e->we.click.widget - 5) + 1;
+			_railstation.numtracks = e->we.click.widget - BRSW_PLATFORM_NUM_BEGIN;
 			_railstation.dragdrop = false;
 
 			const StationSpec *statspec = _railstation.newstations ? GetCustomStationSpec(_railstation.station_class, _railstation.station_type) : NULL;
@@ -832,31 +866,31 @@
 				/* The previously selected number of platforms in invalid */
 				for (uint i = 0; i < 7; i++) {
 					if (!HASBIT(statspec->disallowed_lengths, i)) {
-						RaiseWindowWidget(w, _railstation.platlength + 11);
+						RaiseWindowWidget(w, _railstation.platlength + BRSW_PLATFORM_LEN_BEGIN);
 						_railstation.platlength = i + 1;
 						break;
 					}
 				}
 			}
 
-			LowerWindowWidget(w, _railstation.platlength + 11);
-			LowerWindowWidget(w, _railstation.numtracks + 4);
+			LowerWindowWidget(w, _railstation.numtracks + BRSW_PLATFORM_NUM_BEGIN);
+			LowerWindowWidget(w, _railstation.platlength + BRSW_PLATFORM_LEN_BEGIN);
 			SndPlayFx(SND_15_BEEP);
 			SetWindowDirty(w);
 			break;
 		}
 
-		case 12:
-		case 13:
-		case 14:
-		case 15:
-		case 16:
-		case 17:
-		case 18: {
-			RaiseWindowWidget(w, _railstation.platlength + 11);
-			RaiseWindowWidget(w, 19);
+		case BRSW_PLATFORM_LEN_1:
+		case BRSW_PLATFORM_LEN_2:
+		case BRSW_PLATFORM_LEN_3:
+		case BRSW_PLATFORM_LEN_4:
+		case BRSW_PLATFORM_LEN_5:
+		case BRSW_PLATFORM_LEN_6:
+		case BRSW_PLATFORM_LEN_7: {
+			RaiseWindowWidget(w, _railstation.platlength + BRSW_PLATFORM_LEN_BEGIN);
+			RaiseWindowWidget(w, BRSW_PLATFORM_DRAG_N_DROP);
 
-			_railstation.platlength = (e->we.click.widget - 12) + 1;
+			_railstation.platlength = e->we.click.widget - BRSW_PLATFORM_LEN_BEGIN;
 			_railstation.dragdrop = false;
 
 			const StationSpec *statspec = _railstation.newstations ? GetCustomStationSpec(_railstation.station_class, _railstation.station_type) : NULL;
@@ -864,44 +898,44 @@
 				/* The previously selected number of tracks in invalid */
 				for (uint i = 0; i < 7; i++) {
 					if (!HASBIT(statspec->disallowed_platforms, i)) {
-						RaiseWindowWidget(w, _railstation.numtracks + 4);
+						RaiseWindowWidget(w, _railstation.numtracks + BRSW_PLATFORM_NUM_BEGIN);
 						_railstation.numtracks = i + 1;
 						break;
 					}
 				}
 			}
 
-			LowerWindowWidget(w, _railstation.platlength + 11);
-			LowerWindowWidget(w, _railstation.numtracks + 4);
+			LowerWindowWidget(w, _railstation.numtracks + BRSW_PLATFORM_NUM_BEGIN);
+			LowerWindowWidget(w, _railstation.platlength + BRSW_PLATFORM_LEN_BEGIN);
 			SndPlayFx(SND_15_BEEP);
 			SetWindowDirty(w);
 			break;
 		}
 
-		case 19:
+		case BRSW_PLATFORM_DRAG_N_DROP:
 			_railstation.dragdrop ^= true;
-			ToggleWidgetLoweredState(w, 19);
-			SetWindowWidgetLoweredState(w, _railstation.numtracks + 4, !_railstation.dragdrop);
-			SetWindowWidgetLoweredState(w, _railstation.platlength + 11, !_railstation.dragdrop);
+			ToggleWidgetLoweredState(w, BRSW_PLATFORM_DRAG_N_DROP);
+			SetWindowWidgetLoweredState(w, _railstation.numtracks + BRSW_PLATFORM_NUM_BEGIN, !_railstation.dragdrop);
+			SetWindowWidgetLoweredState(w, _railstation.platlength + BRSW_PLATFORM_LEN_BEGIN, !_railstation.dragdrop);
 			SndPlayFx(SND_15_BEEP);
 			SetWindowDirty(w);
 			break;
 
-		case 20:
-		case 21:
-			_station_show_coverage = (e->we.click.widget != 20);
-			SetWindowWidgetLoweredState(w, 20, !_station_show_coverage);
-			SetWindowWidgetLoweredState(w, 21, _station_show_coverage);
+		case BRSW_HIGHLIGHT_OFF:
+		case BRSW_HIGHLIGHT_ON:
+			_station_show_coverage = (e->we.click.widget != BRSW_HIGHLIGHT_OFF);
+			SetWindowWidgetLoweredState(w, BRSW_HIGHLIGHT_OFF, !_station_show_coverage);
+			SetWindowWidgetLoweredState(w, BRSW_HIGHLIGHT_ON, _station_show_coverage);
 			SndPlayFx(SND_15_BEEP);
 			SetWindowDirty(w);
 			break;
 
-		case 22:
-		case 23:
+		case BRSW_NEWST_DROPDOWN:
+		case BRSW_NEWST_DROPDOWN_TEXT:
 			ShowDropDownMenu(w, BuildStationClassDropdown(), _railstation.station_class, 23, 0, 1 << STAT_CLASS_WAYP);
 			break;
 
-		case 24: {
+		case BRSW_NEWST_LIST: {
 			const StationSpec *statspec;
 			int y = (e->we.click.pt.y - 32) / 14;
 
@@ -956,67 +990,69 @@
 	}
 }
 
+/** Widget definition of the standard build rail station window */
 static const Widget _station_builder_widgets[] = {
-{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,                        STR_018B_CLOSE_WINDOW},
-{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   147,     0,    13, STR_3000_RAIL_STATION_SELECTION, STR_018C_WINDOW_TITLE_DRAG_THIS},
-{      WWT_PANEL,   RESIZE_NONE,     7,     0,   147,    14,   199, 0x0,                             STR_NULL},
-{      WWT_PANEL,   RESIZE_NONE,    14,     7,    72,    26,    73, 0x0,                             STR_304E_SELECT_RAILROAD_STATION},
-{      WWT_PANEL,   RESIZE_NONE,    14,    75,   140,    26,    73, 0x0,                             STR_304E_SELECT_RAILROAD_STATION},
+{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,                        STR_018B_CLOSE_WINDOW},               // BRSW_CLOSEBOX
+{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   147,     0,    13, STR_3000_RAIL_STATION_SELECTION, STR_018C_WINDOW_TITLE_DRAG_THIS},     // BRSW_CAPTION
+{      WWT_PANEL,   RESIZE_NONE,     7,     0,   147,    14,   199, 0x0,                             STR_NULL},                            // BRSW_BACKGROUND
+{      WWT_PANEL,   RESIZE_NONE,    14,     7,    72,    26,    73, 0x0,                             STR_304E_SELECT_RAILROAD_STATION},    // BRSW_PLATFORM_DIR_X
+{      WWT_PANEL,   RESIZE_NONE,    14,    75,   140,    26,    73, 0x0,                             STR_304E_SELECT_RAILROAD_STATION},    // BRSW_PLATFORM_DIR_Y
 
-{    WWT_TEXTBTN,   RESIZE_NONE,    14,    22,    36,    87,    98, STR_00CB_1,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS},
-{    WWT_TEXTBTN,   RESIZE_NONE,    14,    37,    51,    87,    98, STR_00CC_2,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS},
-{    WWT_TEXTBTN,   RESIZE_NONE,    14,    52,    66,    87,    98, STR_00CD_3,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS},
-{    WWT_TEXTBTN,   RESIZE_NONE,    14,    67,    81,    87,    98, STR_00CE_4,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS},
-{    WWT_TEXTBTN,   RESIZE_NONE,    14,    82,    96,    87,    98, STR_00CF_5,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS},
-{    WWT_TEXTBTN,   RESIZE_NONE,    14,    97,   111,    87,    98, STR_0335_6,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS},
-{    WWT_TEXTBTN,   RESIZE_NONE,    14,   112,   126,    87,    98, STR_0336_7,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS},
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,    22,    36,    87,    98, STR_00CB_1,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS}, // BRSW_PLATFORM_NUM_1
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,    37,    51,    87,    98, STR_00CC_2,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS}, // BRSW_PLATFORM_NUM_2
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,    52,    66,    87,    98, STR_00CD_3,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS}, // BRSW_PLATFORM_NUM_3
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,    67,    81,    87,    98, STR_00CE_4,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS}, // BRSW_PLATFORM_NUM_4
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,    82,    96,    87,    98, STR_00CF_5,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS}, // BRSW_PLATFORM_NUM_5
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,    97,   111,    87,    98, STR_0335_6,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS}, // BRSW_PLATFORM_NUM_6
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,   112,   126,    87,    98, STR_0336_7,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS}, // BRSW_PLATFORM_NUM_7
 
-{    WWT_TEXTBTN,   RESIZE_NONE,    14,    22,    36,   112,   123, STR_00CB_1,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},
-{    WWT_TEXTBTN,   RESIZE_NONE,    14,    37,    51,   112,   123, STR_00CC_2,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},
-{    WWT_TEXTBTN,   RESIZE_NONE,    14,    52,    66,   112,   123, STR_00CD_3,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},
-{    WWT_TEXTBTN,   RESIZE_NONE,    14,    67,    81,   112,   123, STR_00CE_4,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},
-{    WWT_TEXTBTN,   RESIZE_NONE,    14,    82,    96,   112,   123, STR_00CF_5,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},
-{    WWT_TEXTBTN,   RESIZE_NONE,    14,    97,   111,   112,   123, STR_0335_6,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},
-{    WWT_TEXTBTN,   RESIZE_NONE,    14,   112,   126,   112,   123, STR_0336_7,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,    22,    36,   112,   123, STR_00CB_1,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},  // BRSW_PLATFORM_LEN_1
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,    37,    51,   112,   123, STR_00CC_2,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},  // BRSW_PLATFORM_LEN_2
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,    52,    66,   112,   123, STR_00CD_3,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},  // BRSW_PLATFORM_LEN_3
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,    67,    81,   112,   123, STR_00CE_4,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},  // BRSW_PLATFORM_LEN_4
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,    82,    96,   112,   123, STR_00CF_5,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},  // BRSW_PLATFORM_LEN_5
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,    97,   111,   112,   123, STR_0335_6,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},  // BRSW_PLATFORM_LEN_6
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,   112,   126,   112,   123, STR_0336_7,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},  // BRSW_PLATFORM_LEN_7
 
-{    WWT_TEXTBTN,   RESIZE_NONE,    14,    37,   111,   126,   137, STR_DRAG_DROP,                   STR_STATION_DRAG_DROP},
-{    WWT_TEXTBTN,   RESIZE_NONE,    14,    14,    73,   152,   163, STR_02DB_OFF,                    STR_3065_DON_T_HIGHLIGHT_COVERAGE},
-{    WWT_TEXTBTN,   RESIZE_NONE,    14,    74,   133,   152,   163, STR_02DA_ON,                     STR_3064_HIGHLIGHT_COVERAGE_AREA},
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,    37,   111,   126,   137, STR_DRAG_DROP,                   STR_STATION_DRAG_DROP},               // BRSW_PLATFORM_DRAG_N_DROP
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,    14,    73,   152,   163, STR_02DB_OFF,                    STR_3065_DON_T_HIGHLIGHT_COVERAGE},   // BRSW_HIGHLIGHT_OFF
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,    74,   133,   152,   163, STR_02DA_ON,                     STR_3064_HIGHLIGHT_COVERAGE_AREA},    // BRSW_HIGHLIGHT_ON
 {   WIDGETS_END},
 };
 
+/** Widget definition of the build NewGRF rail station window */
 static const Widget _newstation_builder_widgets[] = {
-{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,                        STR_018B_CLOSE_WINDOW},
-{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   147,     0,    13, STR_3000_RAIL_STATION_SELECTION, STR_018C_WINDOW_TITLE_DRAG_THIS},
-{      WWT_PANEL,   RESIZE_NONE,     7,     0,   147,    14,   289, 0x0,                             STR_NULL},
-{      WWT_PANEL,   RESIZE_NONE,    14,     7,    72,   116,   163, 0x0,                             STR_304E_SELECT_RAILROAD_STATION},
-{      WWT_PANEL,   RESIZE_NONE,    14,    75,   140,   116,   163, 0x0,                             STR_304E_SELECT_RAILROAD_STATION},
+{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,                        STR_018B_CLOSE_WINDOW},               // BRSW_CLOSEBOX
+{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   147,     0,    13, STR_3000_RAIL_STATION_SELECTION, STR_018C_WINDOW_TITLE_DRAG_THIS},     // BRSW_CAPTION
+{      WWT_PANEL,   RESIZE_NONE,     7,     0,   147,    14,   289, 0x0,                             STR_NULL},                            // BRSW_BACKGROUND
+{      WWT_PANEL,   RESIZE_NONE,    14,     7,    72,   116,   163, 0x0,                             STR_304E_SELECT_RAILROAD_STATION},    // BRSW_PLATFORM_DIR_X
+{      WWT_PANEL,   RESIZE_NONE,    14,    75,   140,   116,   163, 0x0,                             STR_304E_SELECT_RAILROAD_STATION},    // BRSW_PLATFORM_DIR_Y
 
-{    WWT_TEXTBTN,   RESIZE_NONE,    14,    22,    36,   177,   188, STR_00CB_1,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS},
-{    WWT_TEXTBTN,   RESIZE_NONE,    14,    37,    51,   177,   188, STR_00CC_2,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS},
-{    WWT_TEXTBTN,   RESIZE_NONE,    14,    52,    66,   177,   188, STR_00CD_3,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS},
-{    WWT_TEXTBTN,   RESIZE_NONE,    14,    67,    81,   177,   188, STR_00CE_4,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS},
-{    WWT_TEXTBTN,   RESIZE_NONE,    14,    82,    96,   177,   188, STR_00CF_5,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS},
-{    WWT_TEXTBTN,   RESIZE_NONE,    14,    97,   111,   177,   188, STR_0335_6,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS},
-{    WWT_TEXTBTN,   RESIZE_NONE,    14,   112,   126,   177,   188, STR_0336_7,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS},
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,    22,    36,   177,   188, STR_00CB_1,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS}, // BRSW_PLATFORM_NUM_1
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,    37,    51,   177,   188, STR_00CC_2,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS}, // BRSW_PLATFORM_NUM_2
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,    52,    66,   177,   188, STR_00CD_3,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS}, // BRSW_PLATFORM_NUM_3
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,    67,    81,   177,   188, STR_00CE_4,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS}, // BRSW_PLATFORM_NUM_4
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,    82,    96,   177,   188, STR_00CF_5,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS}, // BRSW_PLATFORM_NUM_5
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,    97,   111,   177,   188, STR_0335_6,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS}, // BRSW_PLATFORM_NUM_6
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,   112,   126,   177,   188, STR_0336_7,                      STR_304F_SELECT_NUMBER_OF_PLATFORMS}, // BRSW_PLATFORM_NUM_7
 
-{    WWT_TEXTBTN,   RESIZE_NONE,    14,    22,    36,   202,   213, STR_00CB_1,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},
-{    WWT_TEXTBTN,   RESIZE_NONE,    14,    37,    51,   202,   213, STR_00CC_2,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},
-{    WWT_TEXTBTN,   RESIZE_NONE,    14,    52,    66,   202,   213, STR_00CD_3,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},
-{    WWT_TEXTBTN,   RESIZE_NONE,    14,    67,    81,   202,   213, STR_00CE_4,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},
-{    WWT_TEXTBTN,   RESIZE_NONE,    14,    82,    96,   202,   213, STR_00CF_5,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},
-{    WWT_TEXTBTN,   RESIZE_NONE,    14,    97,   111,   202,   213, STR_0335_6,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},
-{    WWT_TEXTBTN,   RESIZE_NONE,    14,   112,   126,   202,   213, STR_0336_7,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,    22,    36,   202,   213, STR_00CB_1,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},  // BRSW_PLATFORM_LEN_1
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,    37,    51,   202,   213, STR_00CC_2,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},  // BRSW_PLATFORM_LEN_2
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,    52,    66,   202,   213, STR_00CD_3,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},  // BRSW_PLATFORM_LEN_3
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,    67,    81,   202,   213, STR_00CE_4,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},  // BRSW_PLATFORM_LEN_4
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,    82,    96,   202,   213, STR_00CF_5,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},  // BRSW_PLATFORM_LEN_5
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,    97,   111,   202,   213, STR_0335_6,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},  // BRSW_PLATFORM_LEN_6
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,   112,   126,   202,   213, STR_0336_7,                      STR_3050_SELECT_LENGTH_OF_RAILROAD},  // BRSW_PLATFORM_LEN_7
 
-{    WWT_TEXTBTN,   RESIZE_NONE,    14,    37,   111,   216,   227, STR_DRAG_DROP,                   STR_STATION_DRAG_DROP},
-{    WWT_TEXTBTN,   RESIZE_NONE,    14,    14,    73,   242,   253, STR_02DB_OFF,                    STR_3065_DON_T_HIGHLIGHT_COVERAGE},
-{    WWT_TEXTBTN,   RESIZE_NONE,    14,    74,   133,   242,   253, STR_02DA_ON,                     STR_3064_HIGHLIGHT_COVERAGE_AREA},
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,    37,   111,   216,   227, STR_DRAG_DROP,                   STR_STATION_DRAG_DROP},               // BRSW_PLATFORM_DRAG_N_DROP
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,    14,    73,   242,   253, STR_02DB_OFF,                    STR_3065_DON_T_HIGHLIGHT_COVERAGE},   // BRSW_HIGHLIGHT_OFF
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,    74,   133,   242,   253, STR_02DA_ON,                     STR_3064_HIGHLIGHT_COVERAGE_AREA},    // BRSW_HIGHLIGHT_ON
 
 /* newstations gui additions */
-{      WWT_INSET,   RESIZE_NONE,    14,     7,   140,    17,    28, STR_02BD,                        STR_SELECT_STATION_CLASS_TIP},
-{    WWT_TEXTBTN,   RESIZE_NONE,    14,   129,   139,    18,    27, STR_0225,                        STR_SELECT_STATION_CLASS_TIP},
-{     WWT_MATRIX,   RESIZE_NONE,    14,     7,   128,    32,   102, 0x501,                           STR_SELECT_STATION_TYPE_TIP},
-{  WWT_SCROLLBAR,   RESIZE_NONE,    14,   129,   140,    32,   102, 0x0,                             STR_0190_SCROLL_BAR_SCROLLS_LIST},
+{      WWT_INSET,   RESIZE_NONE,    14,     7,   140,    17,    28, STR_02BD,                        STR_SELECT_STATION_CLASS_TIP},        // BRSW_NEWST_DROPDOWN
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,   129,   139,    18,    27, STR_0225,                        STR_SELECT_STATION_CLASS_TIP},        // BRSW_NEWST_DROPDOWN_TEXT
+{     WWT_MATRIX,   RESIZE_NONE,    14,     7,   128,    32,   102, 0x501,                           STR_SELECT_STATION_TYPE_TIP},         // BRSW_NEWST_LIST
+{  WWT_SCROLLBAR,   RESIZE_NONE,    14,   129,   140,    32,   102, 0x0,                             STR_0190_SCROLL_BAR_SCROLLS_LIST},    // BRSW_NEWST_SCROLL
 {   WIDGETS_END},
 };
 
@@ -1053,33 +1089,41 @@
 	}
 }
 
+/** Enum referring to the widgets of the build rail depot window */
+enum BuildRailDepotWidgets {
+	BRDW_CLOSEBOX = 0,
+	BRDW_CAPTION,
+	BRDW_BACKGROUND,
+	BRDW_DEPOT_NE,
+	BRDW_DEPOT_SE,
+	BRDW_DEPOT_SW,
+	BRDW_DEPOT_NW,
+};
+
 static void BuildTrainDepotWndProc(Window *w, WindowEvent *e)
 {
 	switch (e->event) {
-	case WE_CREATE: LowerWindowWidget(w, _build_depot_direction + 3); break;
+	case WE_CREATE: LowerWindowWidget(w, _build_depot_direction + BRDW_DEPOT_NE); break;
 
 	case WE_PAINT: {
-		RailType r;
-
 		DrawWindowWidgets(w);
 
-		r = _cur_railtype;
-		DrawTrainDepotSprite(70, 17, 0, r);
-		DrawTrainDepotSprite(70, 69, 1, r);
-		DrawTrainDepotSprite( 2, 69, 2, r);
-		DrawTrainDepotSprite( 2, 17, 3, r);
+		DrawTrainDepotSprite(70, 17, DIAGDIR_NE, _cur_railtype);
+		DrawTrainDepotSprite(70, 69, DIAGDIR_SE, _cur_railtype);
+		DrawTrainDepotSprite( 2, 69, DIAGDIR_SW, _cur_railtype);
+		DrawTrainDepotSprite( 2, 17, DIAGDIR_NW, _cur_railtype);
 		break;
 		}
 
 	case WE_CLICK:
 		switch (e->we.click.widget) {
-			case 3:
-			case 4:
-			case 5:
-			case 6:
-				RaiseWindowWidget(w, _build_depot_direction + 3);
-				_build_depot_direction = (DiagDirection)(e->we.click.widget - 3);
-				LowerWindowWidget(w, _build_depot_direction + 3);
+			case BRDW_DEPOT_NE:
+			case BRDW_DEPOT_SE:
+			case BRDW_DEPOT_SW:
+			case BRDW_DEPOT_NW:
+				RaiseWindowWidget(w, _build_depot_direction + BRDW_DEPOT_NE);
+				_build_depot_direction = (DiagDirection)(e->we.click.widget - BRDW_DEPOT_NE);
+				LowerWindowWidget(w, _build_depot_direction + BRDW_DEPOT_NE);
 				SndPlayFx(SND_15_BEEP);
 				SetWindowDirty(w);
 				break;
@@ -1096,14 +1140,15 @@
 	}
 }
 
+/** Widget definition of the build rail depot window */
 static const Widget _build_depot_widgets[] = {
-{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,                         STR_018B_CLOSE_WINDOW},
-{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   139,     0,    13, STR_1014_TRAIN_DEPOT_ORIENTATION, STR_018C_WINDOW_TITLE_DRAG_THIS},
-{      WWT_PANEL,   RESIZE_NONE,     7,     0,   139,    14,   121, 0x0,                              STR_NULL},
-{      WWT_PANEL,   RESIZE_NONE,    14,    71,   136,    17,    66, 0x0,                              STR_1020_SELECT_RAILROAD_DEPOT_ORIENTATIO},
-{      WWT_PANEL,   RESIZE_NONE,    14,    71,   136,    69,   118, 0x0,                              STR_1020_SELECT_RAILROAD_DEPOT_ORIENTATIO},
-{      WWT_PANEL,   RESIZE_NONE,    14,     3,    68,    69,   118, 0x0,                              STR_1020_SELECT_RAILROAD_DEPOT_ORIENTATIO},
-{      WWT_PANEL,   RESIZE_NONE,    14,     3,    68,    17,    66, 0x0,                              STR_1020_SELECT_RAILROAD_DEPOT_ORIENTATIO},
+{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,                         STR_018B_CLOSE_WINDOW},                     // BRDW_CLOSEBOX
+{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   139,     0,    13, STR_1014_TRAIN_DEPOT_ORIENTATION, STR_018C_WINDOW_TITLE_DRAG_THIS},           // BRDW_CAPTION
+{      WWT_PANEL,   RESIZE_NONE,     7,     0,   139,    14,   121, 0x0,                              STR_NULL},                                  // BRDW_BACKGROUND
+{      WWT_PANEL,   RESIZE_NONE,    14,    71,   136,    17,    66, 0x0,                              STR_1020_SELECT_RAILROAD_DEPOT_ORIENTATIO}, // BRDW_DEPOT_NE
+{      WWT_PANEL,   RESIZE_NONE,    14,    71,   136,    69,   118, 0x0,                              STR_1020_SELECT_RAILROAD_DEPOT_ORIENTATIO}, // BRDW_DEPOT_SE
+{      WWT_PANEL,   RESIZE_NONE,    14,     3,    68,    69,   118, 0x0,                              STR_1020_SELECT_RAILROAD_DEPOT_ORIENTATIO}, // BRDW_DEPOT_SW
+{      WWT_PANEL,   RESIZE_NONE,    14,     3,    68,    17,    66, 0x0,                              STR_1020_SELECT_RAILROAD_DEPOT_ORIENTATIO}, // BRDW_DEPOT_NW
 {   WIDGETS_END},
 };
 
@@ -1120,6 +1165,18 @@
 	AllocateWindowDesc(&_build_depot_desc);
 }
 
+/** Enum referring to the widgets of the build NewGRF rail waypoint window */
+enum BuildRailWaypointWidgets {
+	BRWW_CLOSEBOX = 0,
+	BRWW_CAPTION,
+	BRWW_BACKGROUND,
+	BRWW_WAYPOINT_1,
+	BRWW_WAYPOINT_2,
+	BRWW_WAYPOINT_3,
+	BRWW_WAYPOINT_4,
+	BRWW_WAYPOINT_5,
+	BRWW_SCROLL,
+};
 
 static void BuildWaypointWndProc(Window *w, WindowEvent *e)
 {
@@ -1128,7 +1185,7 @@
 		uint i;
 
 		for (i = 0; i < w->hscroll.cap; i++) {
-			SetWindowWidgetLoweredState(w, i + 3, (w->hscroll.pos + i) == _cur_waypoint_type);
+			SetWindowWidgetLoweredState(w, i + BRWW_WAYPOINT_1, (w->hscroll.pos + i) == _cur_waypoint_type);
 		}
 
 		DrawWindowWidgets(w);
@@ -1150,20 +1207,24 @@
 	}
 	case WE_CLICK: {
 		switch (e->we.click.widget) {
-		case 3: case 4: case 5: case 6: case 7: {
-			byte type = e->we.click.widget - 3 + w->hscroll.pos;
+			case BRWW_WAYPOINT_1:
+			case BRWW_WAYPOINT_2:
+			case BRWW_WAYPOINT_3:
+			case BRWW_WAYPOINT_4:
+			case BRWW_WAYPOINT_5: {
+				byte type = e->we.click.widget - BRWW_WAYPOINT_1 + w->hscroll.pos;
 
-			/* Check station availability callback */
-			const StationSpec *statspec = GetCustomStationSpec(STAT_CLASS_WAYP, type);
-			if (statspec != NULL &&
-					HASBIT(statspec->callbackmask, CBM_STATION_AVAIL) &&
-					GetStationCallback(CBID_STATION_AVAILABILITY, 0, 0, statspec, NULL, INVALID_TILE) == 0) return;
+				/* Check station availability callback */
+				const StationSpec *statspec = GetCustomStationSpec(STAT_CLASS_WAYP, type);
+				if (statspec != NULL &&
+						HASBIT(statspec->callbackmask, CBM_STATION_AVAIL) &&
+						GetStationCallback(CBID_STATION_AVAILABILITY, 0, 0, statspec, NULL, INVALID_TILE) == 0) return;
 
-			_cur_waypoint_type = type;
-			SndPlayFx(SND_15_BEEP);
-			SetWindowDirty(w);
-			break;
-		}
+				_cur_waypoint_type = type;
+				SndPlayFx(SND_15_BEEP);
+				SetWindowDirty(w);
+				break;
+			}
 		}
 		break;
 	}
@@ -1178,18 +1239,19 @@
 	}
 }
 
+/** Widget definition for the build NewGRF rail waypoint window */
 static const Widget _build_waypoint_widgets[] = {
-{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,     STR_018B_CLOSE_WINDOW},
-{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   343,     0,    13, STR_WAYPOINT, STR_018C_WINDOW_TITLE_DRAG_THIS},
-{      WWT_PANEL,   RESIZE_NONE,     7,     0,   343,    14,    91, 0x0,          0},
+{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,     STR_018B_CLOSE_WINDOW},            // BRWW_CLOSEBOX
+{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   343,     0,    13, STR_WAYPOINT, STR_018C_WINDOW_TITLE_DRAG_THIS},  // BRWW_CAPTION
+{      WWT_PANEL,   RESIZE_NONE,     7,     0,   343,    14,    91, 0x0,          STR_NULL},                         // BRWW_BACKGROUND
 
-{      WWT_PANEL,   RESIZE_NONE,     7,     3,    68,    17,    76, 0x0,          STR_WAYPOINT_GRAPHICS_TIP},
-{      WWT_PANEL,   RESIZE_NONE,     7,    71,   136,    17,    76, 0x0,          STR_WAYPOINT_GRAPHICS_TIP},
-{      WWT_PANEL,   RESIZE_NONE,     7,   139,   204,    17,    76, 0x0,          STR_WAYPOINT_GRAPHICS_TIP},
-{      WWT_PANEL,   RESIZE_NONE,     7,   207,   272,    17,    76, 0x0,          STR_WAYPOINT_GRAPHICS_TIP},
-{      WWT_PANEL,   RESIZE_NONE,     7,   275,   340,    17,    76, 0x0,          STR_WAYPOINT_GRAPHICS_TIP},
+{      WWT_PANEL,   RESIZE_NONE,     7,     3,    68,    17,    76, 0x0,          STR_WAYPOINT_GRAPHICS_TIP},        // BRWW_WAYPOINT_1
+{      WWT_PANEL,   RESIZE_NONE,     7,    71,   136,    17,    76, 0x0,          STR_WAYPOINT_GRAPHICS_TIP},        // BRWW_WAYPOINT_2
+{      WWT_PANEL,   RESIZE_NONE,     7,   139,   204,    17,    76, 0x0,          STR_WAYPOINT_GRAPHICS_TIP},        // BRWW_WAYPOINT_3
+{      WWT_PANEL,   RESIZE_NONE,     7,   207,   272,    17,    76, 0x0,          STR_WAYPOINT_GRAPHICS_TIP},        // BRWW_WAYPOINT_4
+{      WWT_PANEL,   RESIZE_NONE,     7,   275,   340,    17,    76, 0x0,          STR_WAYPOINT_GRAPHICS_TIP},        // BRWW_WAYPOINT_5
 
-{ WWT_HSCROLLBAR,   RESIZE_NONE,    7,     1,   343,     80,    91, 0x0,          STR_0190_SCROLL_BAR_SCROLLS_LIST},
+{ WWT_HSCROLLBAR,   RESIZE_NONE,    7,     1,   343,     80,    91, 0x0,          STR_0190_SCROLL_BAR_SCROLLS_LIST}, // BRWW_SCROLL
 {    WIDGETS_END},
 };
 
--- a/src/road_cmd.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/road_cmd.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -605,7 +605,7 @@
 		VehicleFromPos(tile, &tile, UpdateTrainPowerProc);
 	}
 
-	return CommandCost(_price.build_rail / 2);
+	return CommandCost(RailBuildCost(totype) / 2);
 }
 
 
@@ -820,7 +820,7 @@
 	if (!CheckTileOwnership(tile) && _current_player != OWNER_WATER)
 		return CMD_ERROR;
 
-	if (!EnsureNoVehicle(tile)) return CMD_ERROR;
+	if (!EnsureNoVehicleOnGround(tile)) return CMD_ERROR;
 
 	if (flags & DC_EXEC) {
 		DoClearSquare(tile);
--- a/src/road_gui.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/road_gui.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -180,20 +180,22 @@
 	VpStartPlaceSizing(tile, VPM_X_AND_Y, DDSP_DEMOLISH_AREA);
 }
 
-
-enum {
-	RTW_ROAD_X        =  3,
-	RTW_ROAD_Y        =  4,
-	RTW_DEMOLISH      =  5,
-	RTW_DEPOT         =  6,
-	RTW_BUS_STATION   =  7,
-	RTW_TRUCK_STATION =  8,
-	RTW_BUILD_BRIDGE  =  9,
-	RTW_BUILD_TUNNEL  = 10,
-	RTW_REMOVE        = 11
+/** Enum referring to the widgets of the build road toolbar */
+enum RoadToolbarWidgets {
+	RTW_CLOSEBOX = 0,
+	RTW_CAPTION,
+	RTW_STICKY,
+	RTW_ROAD_X,
+	RTW_ROAD_Y,
+	RTW_DEMOLISH,
+	RTW_DEPOT,
+	RTW_BUS_STATION,
+	RTW_TRUCK_STATION,
+	RTW_BUILD_BRIDGE,
+	RTW_BUILD_TUNNEL,
+	RTW_REMOVE,
 };
 
-
 typedef void OnButtonClick(Window *w);
 
 static void BuildRoadClick_NE(Window *w)
@@ -249,7 +251,6 @@
 	SetSelectionRed(IsWindowWidgetLowered(w, RTW_REMOVE));
 }
 
-
 static OnButtonClick* const _build_road_button_proc[] = {
 	BuildRoadClick_NE,
 	BuildRoadClick_NW,
@@ -262,38 +263,83 @@
 	BuildRoadClick_Remove
 };
 
+static const uint16 _road_keycodes[] = {
+	'1',
+	'2',
+	'3',
+	'4',
+	'5',
+	'6',
+	'B',
+	'T',
+	'R',
+};
+
+/**
+ * Update the remove button lowered state of the road toolbar
+ *
+ * @param w The toolbar window
+ * @param clicked_widget The widget which the player clicked just now
+ */
+static void UpdateRemoveWidgetStatus(Window *w, int clicked_widget)
+{
+	switch (clicked_widget) {
+		case RTW_REMOVE:
+			/* If it is the removal button that has been clicked, do nothing,
+			 * as it is up to the other buttons to drive removal status */
+			return;
+			break;
+		case RTW_ROAD_X:
+		case RTW_ROAD_Y:
+		case RTW_BUS_STATION:
+		case RTW_TRUCK_STATION:
+			/* Removal button is enabled only if the road/station
+			 * button is still lowered.  Once raised, it has to be disabled */
+			SetWindowWidgetDisabledState(w, RTW_REMOVE, !IsWindowWidgetLowered(w, clicked_widget));
+			break;
+
+		default:
+			/* When any other buttons than road/station, raise and
+			 * disable the removal button */
+			DisableWindowWidget(w, RTW_REMOVE);
+			RaiseWindowWidget(w, RTW_REMOVE);
+			break;
+	}
+}
+
 static void BuildRoadToolbWndProc(Window *w, WindowEvent *e)
 {
 	switch (e->event) {
 	case WE_CREATE: DisableWindowWidget(w, RTW_REMOVE); break;
 
 	case WE_PAINT:
-		if (IsWindowWidgetLowered(w, RTW_ROAD_X) || IsWindowWidgetLowered(w, RTW_ROAD_Y) || IsWindowWidgetLowered(w, RTW_BUS_STATION) || IsWindowWidgetLowered(w, RTW_TRUCK_STATION)) {
-			EnableWindowWidget(w, RTW_REMOVE);
-		}
-		SetWindowWidgetsDisabledState(w, !CanBuildVehicleInfrastructure(VEH_ROAD), 6, 7, 8, WIDGET_LIST_END);
+		SetWindowWidgetsDisabledState(w, !CanBuildVehicleInfrastructure(VEH_ROAD),
+			RTW_DEPOT,
+			RTW_BUS_STATION,
+			RTW_TRUCK_STATION,
+			WIDGET_LIST_END);
 		DrawWindowWidgets(w);
 		break;
 
-	case WE_CLICK: {
-		if (e->we.click.widget >= 3) _build_road_button_proc[e->we.click.widget - 3](w);
-	} break;
+	case WE_CLICK:
+		if (e->we.click.widget >= RTW_ROAD_X) {
+			_remove_button_clicked = false;
+			_build_road_button_proc[e->we.click.widget - RTW_ROAD_X](w);
+		}
+		UpdateRemoveWidgetStatus(w, e->we.click.widget);
+		break;
 
 	case WE_KEYPRESS:
-		switch (e->we.keypress.keycode) {
-			case '1': BuildRoadClick_NE(w);           break;
-			case '2': BuildRoadClick_NW(w);           break;
-			case '3': BuildRoadClick_Demolish(w);     break;
-			case '4': BuildRoadClick_Depot(w);        break;
-			case '5': BuildRoadClick_BusStation(w);   break;
-			case '6': BuildRoadClick_TruckStation(w); break;
-			case 'B': BuildRoadClick_Bridge(w);       break;
-			case 'T': BuildRoadClick_Tunnel(w);       break;
-			case 'R': BuildRoadClick_Remove(w);       break;
-			default: return;
+		for (uint8 i = 0; i != lengthof(_road_keycodes); i++) {
+			if (e->we.keypress.keycode == _road_keycodes[i]) {
+				e->we.keypress.cont = false;
+				_remove_button_clicked = false;
+				_build_road_button_proc[i](w);
+				UpdateRemoveWidgetStatus(w, i + RTW_ROAD_X);
+				break;
+			}
 		}
 		MarkTileDirty(_thd.pos.x, _thd.pos.y); // redraw tile selection
-		e->we.keypress.cont = false;
 		break;
 
 	case WE_PLACE_OBJ:
@@ -368,20 +414,21 @@
 	}
 }
 
+/** Widget definition of the build road toolbar */
 static const Widget _build_road_widgets[] = {
-{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,                   STR_018B_CLOSE_WINDOW},
-{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   205,     0,    13, STR_1802_ROAD_CONSTRUCTION, STR_018C_WINDOW_TITLE_DRAG_THIS},
-{  WWT_STICKYBOX,   RESIZE_NONE,     7,   206,   217,     0,    13, 0x0,                        STR_STICKY_BUTTON},
+{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,                   STR_018B_CLOSE_WINDOW},             // RTW_CLOSEBOX
+{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   205,     0,    13, STR_1802_ROAD_CONSTRUCTION, STR_018C_WINDOW_TITLE_DRAG_THIS},   // RTW_CAPTION
+{  WWT_STICKYBOX,   RESIZE_NONE,     7,   206,   217,     0,    13, 0x0,                        STR_STICKY_BUTTON},                 // RTW_STICKY
 
-{     WWT_IMGBTN,   RESIZE_NONE,     7,     0,    21,    14,    35, SPR_IMG_ROAD_NW,            STR_180B_BUILD_ROAD_SECTION},
-{     WWT_IMGBTN,   RESIZE_NONE,     7,    22,    43,    14,    35, SPR_IMG_ROAD_NE,            STR_180B_BUILD_ROAD_SECTION},
-{     WWT_IMGBTN,   RESIZE_NONE,     7,    44,    65,    14,    35, SPR_IMG_DYNAMITE,           STR_018D_DEMOLISH_BUILDINGS_ETC},
-{     WWT_IMGBTN,   RESIZE_NONE,     7,    66,    87,    14,    35, SPR_IMG_ROAD_DEPOT,         STR_180C_BUILD_ROAD_VEHICLE_DEPOT},
-{     WWT_IMGBTN,   RESIZE_NONE,     7,    88,   109,    14,    35, SPR_IMG_BUS_STATION,        STR_180D_BUILD_BUS_STATION},
-{     WWT_IMGBTN,   RESIZE_NONE,     7,   110,   131,    14,    35, SPR_IMG_TRUCK_BAY,          STR_180E_BUILD_TRUCK_LOADING_BAY},
-{     WWT_IMGBTN,   RESIZE_NONE,     7,   132,   173,    14,    35, SPR_IMG_BRIDGE,             STR_180F_BUILD_ROAD_BRIDGE},
-{     WWT_IMGBTN,   RESIZE_NONE,     7,   174,   195,    14,    35, SPR_IMG_ROAD_TUNNEL,        STR_1810_BUILD_ROAD_TUNNEL},
-{     WWT_IMGBTN,   RESIZE_NONE,     7,   196,   217,    14,    35, SPR_IMG_REMOVE,             STR_1811_TOGGLE_BUILD_REMOVE_FOR},
+{     WWT_IMGBTN,   RESIZE_NONE,     7,     0,    21,    14,    35, SPR_IMG_ROAD_NW,            STR_180B_BUILD_ROAD_SECTION},       // RTW_ROAD_X
+{     WWT_IMGBTN,   RESIZE_NONE,     7,    22,    43,    14,    35, SPR_IMG_ROAD_NE,            STR_180B_BUILD_ROAD_SECTION},       // RTW_ROAD_Y
+{     WWT_IMGBTN,   RESIZE_NONE,     7,    44,    65,    14,    35, SPR_IMG_DYNAMITE,           STR_018D_DEMOLISH_BUILDINGS_ETC},   // RTW_DEMOLISH
+{     WWT_IMGBTN,   RESIZE_NONE,     7,    66,    87,    14,    35, SPR_IMG_ROAD_DEPOT,         STR_180C_BUILD_ROAD_VEHICLE_DEPOT}, // RTW_DEPOT
+{     WWT_IMGBTN,   RESIZE_NONE,     7,    88,   109,    14,    35, SPR_IMG_BUS_STATION,        STR_180D_BUILD_BUS_STATION},        // RTW_BUS_STATION
+{     WWT_IMGBTN,   RESIZE_NONE,     7,   110,   131,    14,    35, SPR_IMG_TRUCK_BAY,          STR_180E_BUILD_TRUCK_LOADING_BAY},  // RTW_TRUCK_STATION
+{     WWT_IMGBTN,   RESIZE_NONE,     7,   132,   173,    14,    35, SPR_IMG_BRIDGE,             STR_180F_BUILD_ROAD_BRIDGE},        // RTW_BUILD_BRIDGE
+{     WWT_IMGBTN,   RESIZE_NONE,     7,   174,   195,    14,    35, SPR_IMG_ROAD_TUNNEL,        STR_1810_BUILD_ROAD_TUNNEL},        // RTW_BUILD_TUNNEL
+{     WWT_IMGBTN,   RESIZE_NONE,     7,   196,   217,    14,    35, SPR_IMG_REMOVE,             STR_1811_TOGGLE_BUILD_REMOVE_FOR},  // RTW_REMOVE
 {   WIDGETS_END},
 };
 
@@ -393,21 +440,21 @@
 	BuildRoadToolbWndProc
 };
 
+/** Widget definition of the build tram toolbar */
 static const Widget _build_tramway_widgets[] = {
-{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,                   STR_018B_CLOSE_WINDOW},
-{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   205,     0,    13, STR_1802_TRAMWAY_CONSTRUCTION, STR_018C_WINDOW_TITLE_DRAG_THIS},
-{  WWT_STICKYBOX,   RESIZE_NONE,     7,   206,   217,     0,    13, 0x0,                        STR_STICKY_BUTTON},
+{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,                   STR_018B_CLOSE_WINDOW},                     // RTW_CLOSEBOX
+{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   205,     0,    13, STR_1802_TRAMWAY_CONSTRUCTION, STR_018C_WINDOW_TITLE_DRAG_THIS},        // RTW_CAPTION
+{  WWT_STICKYBOX,   RESIZE_NONE,     7,   206,   217,     0,    13, 0x0,                        STR_STICKY_BUTTON},                         // RTW_STICKY
 
-{     WWT_IMGBTN,   RESIZE_NONE,     7,     0,    21,    14,    35, SPR_IMG_TRAMWAY_NW,         STR_180B_BUILD_TRAMWAY_SECTION},
-{     WWT_IMGBTN,   RESIZE_NONE,     7,    22,    43,    14,    35, SPR_IMG_TRAMWAY_NE,         STR_180B_BUILD_TRAMWAY_SECTION},
-{     WWT_IMGBTN,   RESIZE_NONE,     7,    44,    65,    14,    35, SPR_IMG_DYNAMITE,           STR_018D_DEMOLISH_BUILDINGS_ETC},
-{     WWT_IMGBTN,   RESIZE_NONE,     7,    66,    87,    14,    35, SPR_IMG_ROAD_DEPOT,         STR_180C_BUILD_TRAM_VEHICLE_DEPOT},
-{     WWT_IMGBTN,   RESIZE_NONE,     7,    88,   109,    14,    35, SPR_IMG_BUS_STATION,        STR_180D_BUILD_PASSENGER_TRAM_STATION},
-{     WWT_IMGBTN,   RESIZE_NONE,     7,   110,   131,    14,    35, SPR_IMG_TRUCK_BAY,          STR_180E_BUILD_CARGO_TRAM_STATION},
-
-{     WWT_IMGBTN,   RESIZE_NONE,     7,   132,   173,    14,    35, SPR_IMG_BRIDGE,             STR_180F_BUILD_TRAMWAY_BRIDGE},
-{     WWT_IMGBTN,   RESIZE_NONE,     7,   174,   195,    14,    35, SPR_IMG_ROAD_TUNNEL,        STR_1810_BUILD_TRAMWAY_TUNNEL},
-{     WWT_IMGBTN,   RESIZE_NONE,     7,   196,   217,    14,    35, SPR_IMG_REMOVE,             STR_1811_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS},
+{     WWT_IMGBTN,   RESIZE_NONE,     7,     0,    21,    14,    35, SPR_IMG_TRAMWAY_NW,         STR_180B_BUILD_TRAMWAY_SECTION},            // RTW_ROAD_X
+{     WWT_IMGBTN,   RESIZE_NONE,     7,    22,    43,    14,    35, SPR_IMG_TRAMWAY_NE,         STR_180B_BUILD_TRAMWAY_SECTION},            // RTW_ROAD_Y
+{     WWT_IMGBTN,   RESIZE_NONE,     7,    44,    65,    14,    35, SPR_IMG_DYNAMITE,           STR_018D_DEMOLISH_BUILDINGS_ETC},           // RTW_DEMOLISH
+{     WWT_IMGBTN,   RESIZE_NONE,     7,    66,    87,    14,    35, SPR_IMG_ROAD_DEPOT,         STR_180C_BUILD_TRAM_VEHICLE_DEPOT},         // RTW_DEPOT
+{     WWT_IMGBTN,   RESIZE_NONE,     7,    88,   109,    14,    35, SPR_IMG_BUS_STATION,        STR_180D_BUILD_PASSENGER_TRAM_STATION},     // RTW_BUS_STATION
+{     WWT_IMGBTN,   RESIZE_NONE,     7,   110,   131,    14,    35, SPR_IMG_TRUCK_BAY,          STR_180E_BUILD_CARGO_TRAM_STATION},         // RTW_TRUCK_STATION
+{     WWT_IMGBTN,   RESIZE_NONE,     7,   132,   173,    14,    35, SPR_IMG_BRIDGE,             STR_180F_BUILD_TRAMWAY_BRIDGE},             // RTW_BUILD_BRIDGE
+{     WWT_IMGBTN,   RESIZE_NONE,     7,   174,   195,    14,    35, SPR_IMG_ROAD_TUNNEL,        STR_1810_BUILD_TRAMWAY_TUNNEL},             // RTW_BUILD_TUNNEL
+{     WWT_IMGBTN,   RESIZE_NONE,     7,   196,   217,    14,    35, SPR_IMG_REMOVE,             STR_1811_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS}, // RTW_REMOVE
 {   WIDGETS_END},
 };
 
@@ -429,20 +476,21 @@
 	if (_patches.link_terraform_toolbar) ShowTerraformToolbar(w);
 }
 
+/** Widget definition of the build road toolbar in the scenario editor */
 static const Widget _build_road_scen_widgets[] = {
-{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,                   STR_018B_CLOSE_WINDOW},
-{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   139,     0,    13, STR_1802_ROAD_CONSTRUCTION, STR_018C_WINDOW_TITLE_DRAG_THIS},
-{  WWT_STICKYBOX,   RESIZE_NONE,     7,   140,   151,     0,    13, 0x0,                        STR_STICKY_BUTTON},
+{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,                   STR_018B_CLOSE_WINDOW},            // RTW_CLOSEBOX
+{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   139,     0,    13, STR_1802_ROAD_CONSTRUCTION, STR_018C_WINDOW_TITLE_DRAG_THIS},  // RTW_CAPTION
+{  WWT_STICKYBOX,   RESIZE_NONE,     7,   140,   151,     0,    13, 0x0,                        STR_STICKY_BUTTON},                // RTW_STICKY
 
-{     WWT_IMGBTN,   RESIZE_NONE,     7,     0,    21,    14,    35, SPR_IMG_ROAD_NW,            STR_180B_BUILD_ROAD_SECTION},
-{     WWT_IMGBTN,   RESIZE_NONE,     7,    22,    43,    14,    35, SPR_IMG_ROAD_NE,            STR_180B_BUILD_ROAD_SECTION},
-{     WWT_IMGBTN,   RESIZE_NONE,     7,    44,    65,    14,    35, SPR_IMG_DYNAMITE,           STR_018D_DEMOLISH_BUILDINGS_ETC},
-{      WWT_EMPTY,   RESIZE_NONE,     0,     0,     0,     0,     0, 0x0,                        STR_NULL},
-{      WWT_EMPTY,   RESIZE_NONE,     0,     0,     0,     0,     0, 0x0,                        STR_NULL},
-{      WWT_EMPTY,   RESIZE_NONE,     0,     0,     0,     0,     0, 0x0,                        STR_NULL},
-{     WWT_IMGBTN,   RESIZE_NONE,     7,    66,   107,    14,    35, SPR_IMG_BRIDGE,             STR_180F_BUILD_ROAD_BRIDGE},
-{     WWT_IMGBTN,   RESIZE_NONE,     7,   108,   129,    14,    35, SPR_IMG_ROAD_TUNNEL,        STR_1810_BUILD_ROAD_TUNNEL},
-{     WWT_IMGBTN,   RESIZE_NONE,     7,   130,   151,    14,    35, SPR_IMG_REMOVE,             STR_1811_TOGGLE_BUILD_REMOVE_FOR},
+{     WWT_IMGBTN,   RESIZE_NONE,     7,     0,    21,    14,    35, SPR_IMG_ROAD_NW,            STR_180B_BUILD_ROAD_SECTION},      // RTW_ROAD_X
+{     WWT_IMGBTN,   RESIZE_NONE,     7,    22,    43,    14,    35, SPR_IMG_ROAD_NE,            STR_180B_BUILD_ROAD_SECTION},      // RTW_ROAD_Y
+{     WWT_IMGBTN,   RESIZE_NONE,     7,    44,    65,    14,    35, SPR_IMG_DYNAMITE,           STR_018D_DEMOLISH_BUILDINGS_ETC},  // RTW_DEMOLISH
+{      WWT_EMPTY,   RESIZE_NONE,     0,     0,     0,     0,     0, 0x0,                        STR_NULL},                         // RTW_DEPOT
+{      WWT_EMPTY,   RESIZE_NONE,     0,     0,     0,     0,     0, 0x0,                        STR_NULL},                         // RTW_BUS_STATION
+{      WWT_EMPTY,   RESIZE_NONE,     0,     0,     0,     0,     0, 0x0,                        STR_NULL},                         // RTW_TRUCK_STATION
+{     WWT_IMGBTN,   RESIZE_NONE,     7,    66,   107,    14,    35, SPR_IMG_BRIDGE,             STR_180F_BUILD_ROAD_BRIDGE},       // RTW_BUILD_BRIDGE
+{     WWT_IMGBTN,   RESIZE_NONE,     7,   108,   129,    14,    35, SPR_IMG_ROAD_TUNNEL,        STR_1810_BUILD_ROAD_TUNNEL},       // RTW_BUILD_TUNNEL
+{     WWT_IMGBTN,   RESIZE_NONE,     7,   130,   151,    14,    35, SPR_IMG_REMOVE,             STR_1811_TOGGLE_BUILD_REMOVE_FOR}, // RTW_REMOVE
 {   WIDGETS_END},
 };
 
@@ -460,10 +508,21 @@
 	AllocateWindowDescFront(&_build_road_scen_desc, 0);
 }
 
+/** Enum referring to the widgets of the build road depot window */
+enum BuildRoadDepotWidgets {
+	BRDW_CLOSEBOX = 0,
+	BRDW_CAPTION,
+	BRDW_BACKGROUND,
+	BRDW_DEPOT_NE,
+	BRDW_DEPOT_SE,
+	BRDW_DEPOT_SW,
+	BRDW_DEPOT_NW,
+};
+
 static void BuildRoadDepotWndProc(Window *w, WindowEvent *e)
 {
 	switch (e->event) {
-	case WE_CREATE: LowerWindowWidget(w, _road_depot_orientation + 3); break;
+	case WE_CREATE: LowerWindowWidget(w, _road_depot_orientation + BRDW_DEPOT_NE); break;
 
 	case WE_PAINT:
 		DrawWindowWidgets(w);
@@ -474,17 +533,20 @@
 		DrawRoadDepotSprite( 2, 17, DIAGDIR_NW, _cur_roadtype);
 		break;
 
-	case WE_CLICK: {
+	case WE_CLICK:
 		switch (e->we.click.widget) {
-		case 3: case 4: case 5: case 6:
-			RaiseWindowWidget(w, _road_depot_orientation + 3);
-			_road_depot_orientation = (DiagDirection)(e->we.click.widget - 3);
-			LowerWindowWidget(w, _road_depot_orientation + 3);
-			SndPlayFx(SND_15_BEEP);
-			SetWindowDirty(w);
-			break;
+			case BRDW_DEPOT_NW:
+			case BRDW_DEPOT_NE:
+			case BRDW_DEPOT_SW:
+			case BRDW_DEPOT_SE:
+				RaiseWindowWidget(w, _road_depot_orientation + BRDW_DEPOT_NE);
+				_road_depot_orientation = (DiagDirection)(e->we.click.widget - BRDW_DEPOT_NE);
+				LowerWindowWidget(w, _road_depot_orientation + BRDW_DEPOT_NE);
+				SndPlayFx(SND_15_BEEP);
+				SetWindowDirty(w);
+				break;
 		}
-	} break;
+		break;
 
 	case WE_MOUSELOOP:
 		if (WP(w, def_d).close) DeleteWindow(w);
@@ -496,25 +558,27 @@
 	}
 }
 
+/** Widget definition of the build road depot window */
 static const Widget _build_road_depot_widgets[] = {
-{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,                        STR_018B_CLOSE_WINDOW},
-{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   139,     0,    13, STR_1806_ROAD_DEPOT_ORIENTATION, STR_018C_WINDOW_TITLE_DRAG_THIS},
-{      WWT_PANEL,   RESIZE_NONE,     7,     0,   139,    14,   121, 0x0,                             STR_NULL},
-{      WWT_PANEL,   RESIZE_NONE,    14,    71,   136,    17,    66, 0x0,                             STR_1813_SELECT_ROAD_VEHICLE_DEPOT},
-{      WWT_PANEL,   RESIZE_NONE,    14,    71,   136,    69,   118, 0x0,                             STR_1813_SELECT_ROAD_VEHICLE_DEPOT},
-{      WWT_PANEL,   RESIZE_NONE,    14,     3,    68,    69,   118, 0x0,                             STR_1813_SELECT_ROAD_VEHICLE_DEPOT},
-{      WWT_PANEL,   RESIZE_NONE,    14,     3,    68,    17,    66, 0x0,                             STR_1813_SELECT_ROAD_VEHICLE_DEPOT},
+{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,                        STR_018B_CLOSE_WINDOW},              // BRDW_CLOSEBOX
+{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   139,     0,    13, STR_1806_ROAD_DEPOT_ORIENTATION, STR_018C_WINDOW_TITLE_DRAG_THIS},    // BRDW_CAPTION
+{      WWT_PANEL,   RESIZE_NONE,     7,     0,   139,    14,   121, 0x0,                             STR_NULL},                           // BRDW_BACKGROUND
+{      WWT_PANEL,   RESIZE_NONE,    14,    71,   136,    17,    66, 0x0,                             STR_1813_SELECT_ROAD_VEHICLE_DEPOT}, // BRDW_DEPOT_NE
+{      WWT_PANEL,   RESIZE_NONE,    14,    71,   136,    69,   118, 0x0,                             STR_1813_SELECT_ROAD_VEHICLE_DEPOT}, // BRDW_DEPOT_SE
+{      WWT_PANEL,   RESIZE_NONE,    14,     3,    68,    69,   118, 0x0,                             STR_1813_SELECT_ROAD_VEHICLE_DEPOT}, // BRDW_DEPOT_SW
+{      WWT_PANEL,   RESIZE_NONE,    14,     3,    68,    17,    66, 0x0,                             STR_1813_SELECT_ROAD_VEHICLE_DEPOT}, // BRDW_DEPOT_NW
 {   WIDGETS_END},
 };
 
+/** Widget definition of the build tram depot window */
 static const Widget _build_tram_depot_widgets[] = {
-{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,                        STR_018B_CLOSE_WINDOW},
-{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   139,     0,    13, STR_1806_TRAM_DEPOT_ORIENTATION, STR_018C_WINDOW_TITLE_DRAG_THIS},
-{      WWT_PANEL,   RESIZE_NONE,     7,     0,   139,    14,   121, 0x0,                             STR_NULL},
-{      WWT_PANEL,   RESIZE_NONE,    14,    71,   136,    17,    66, 0x0,                             STR_1813_SELECT_TRAM_VEHICLE_DEPOT},
-{      WWT_PANEL,   RESIZE_NONE,    14,    71,   136,    69,   118, 0x0,                             STR_1813_SELECT_TRAM_VEHICLE_DEPOT},
-{      WWT_PANEL,   RESIZE_NONE,    14,     3,    68,    69,   118, 0x0,                             STR_1813_SELECT_TRAM_VEHICLE_DEPOT},
-{      WWT_PANEL,   RESIZE_NONE,    14,     3,    68,    17,    66, 0x0,                             STR_1813_SELECT_TRAM_VEHICLE_DEPOT},
+{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,                        STR_018B_CLOSE_WINDOW},              // BRDW_CLOSEBOX
+{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   139,     0,    13, STR_1806_TRAM_DEPOT_ORIENTATION, STR_018C_WINDOW_TITLE_DRAG_THIS},    // BRDW_CAPTION
+{      WWT_PANEL,   RESIZE_NONE,     7,     0,   139,    14,   121, 0x0,                             STR_NULL},                           // BRDW_BACKGROUND
+{      WWT_PANEL,   RESIZE_NONE,    14,    71,   136,    17,    66, 0x0,                             STR_1813_SELECT_TRAM_VEHICLE_DEPOT}, // BRDW_DEPOT_NE
+{      WWT_PANEL,   RESIZE_NONE,    14,    71,   136,    69,   118, 0x0,                             STR_1813_SELECT_TRAM_VEHICLE_DEPOT}, // BRDW_DEPOT_SE
+{      WWT_PANEL,   RESIZE_NONE,    14,     3,    68,    69,   118, 0x0,                             STR_1813_SELECT_TRAM_VEHICLE_DEPOT}, // BRDW_DEPOT_SW
+{      WWT_PANEL,   RESIZE_NONE,    14,     3,    68,    17,    66, 0x0,                             STR_1813_SELECT_TRAM_VEHICLE_DEPOT}, // BRDW_DEPOT_NW
 {   WIDGETS_END},
 };
 
@@ -539,6 +603,22 @@
 	AllocateWindowDesc(_cur_roadtype == ROADTYPE_ROAD ? &_build_road_depot_desc : &_build_tram_depot_desc);
 }
 
+/** Enum referring to the widgets of the build road station window */
+enum BuildRoadStationWidgets {
+	BRSW_CLOSEBOX = 0,
+	BRSW_CAPTION,
+	BRSW_BACKGROUND,
+	BRSW_STATION_NE,
+	BRSW_STATION_SE,
+	BRSW_STATION_SW,
+	BRSW_STATION_NW,
+	BRSW_STATION_X,
+	BRSW_STATION_Y,
+	BRSW_LT_OFF,
+	BRSW_LT_ON,
+	BRSW_INFO,
+};
+
 static void RoadStationPickerWndProc(Window *w, WindowEvent *e)
 {
 	switch (e->event) {
@@ -547,10 +627,15 @@
 		if (_cur_roadtype == ROADTYPE_TRAM && _road_station_picker_orientation < DIAGDIR_END) {
 			_road_station_picker_orientation = DIAGDIR_END;
 		}
-		SetWindowWidgetsDisabledState(w, _cur_roadtype == ROADTYPE_TRAM, 3, 4, 5, 6, WIDGET_LIST_END);
+		SetWindowWidgetsDisabledState(w, _cur_roadtype == ROADTYPE_TRAM,
+			BRSW_STATION_NE,
+			BRSW_STATION_SE,
+			BRSW_STATION_SW,
+			BRSW_STATION_NW,
+			WIDGET_LIST_END);
 
-		LowerWindowWidget(w, _road_station_picker_orientation + 3);
-		LowerWindowWidget(w, _station_show_coverage + 9);
+		LowerWindowWidget(w, _road_station_picker_orientation + BRSW_STATION_NE);
+		LowerWindowWidget(w, _station_show_coverage + BRSW_LT_OFF);
 		break;
 
 	case WE_PAINT: {
@@ -583,20 +668,27 @@
 
 	case WE_CLICK: {
 		switch (e->we.click.widget) {
-		case 3: case 4: case 5: case 6: case 7: case 8:
-			RaiseWindowWidget(w, _road_station_picker_orientation + 3);
-			_road_station_picker_orientation = (DiagDirection)(e->we.click.widget - 3);
-			LowerWindowWidget(w, _road_station_picker_orientation + 3);
-			SndPlayFx(SND_15_BEEP);
-			SetWindowDirty(w);
-			break;
-		case 9: case 10:
-			RaiseWindowWidget(w, _station_show_coverage + 9);
-			_station_show_coverage = (e->we.click.widget != 9);
-			LowerWindowWidget(w, _station_show_coverage + 9);
-			SndPlayFx(SND_15_BEEP);
-			SetWindowDirty(w);
-			break;
+			case BRSW_STATION_NE:
+			case BRSW_STATION_SE:
+			case BRSW_STATION_SW:
+			case BRSW_STATION_NW:
+			case BRSW_STATION_X:
+			case BRSW_STATION_Y:
+				RaiseWindowWidget(w, _road_station_picker_orientation + BRSW_STATION_NE);
+				_road_station_picker_orientation = (DiagDirection)(e->we.click.widget - BRSW_STATION_NE);
+				LowerWindowWidget(w, _road_station_picker_orientation + BRSW_STATION_NE);
+				SndPlayFx(SND_15_BEEP);
+				SetWindowDirty(w);
+				break;
+
+			case BRSW_LT_OFF:
+			case BRSW_LT_ON:
+				RaiseWindowWidget(w, _station_show_coverage + BRSW_LT_OFF);
+				_station_show_coverage = (e->we.click.widget != BRSW_LT_OFF);
+				LowerWindowWidget(w, _station_show_coverage + BRSW_LT_OFF);
+				SndPlayFx(SND_15_BEEP);
+				SetWindowDirty(w);
+				break;
 		}
 	} break;
 
@@ -615,19 +707,22 @@
 	}
 }
 
+/** Widget definition of the build raod station window */
 static const Widget _rv_station_picker_widgets[] = {
-{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,                         STR_018B_CLOSE_WINDOW},
-{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   206,     0,    13, STR_NULL,                         STR_018C_WINDOW_TITLE_DRAG_THIS},
-{      WWT_PANEL,   RESIZE_NONE,     7,     0,   206,    14,   176, 0x0,                              STR_NULL},
-{      WWT_PANEL,   RESIZE_NONE,    14,    71,   136,    17,    66, 0x0,                              STR_NULL},
-{      WWT_PANEL,   RESIZE_NONE,    14,    71,   136,    69,   118, 0x0,                              STR_NULL},
-{      WWT_PANEL,   RESIZE_NONE,    14,     3,    68,    69,   118, 0x0,                              STR_NULL},
-{      WWT_PANEL,   RESIZE_NONE,    14,     3,    68,    17,    66, 0x0,                              STR_NULL},
-{      WWT_PANEL,   RESIZE_NONE,    14,   139,   204,    17,    66, 0x0,                              STR_NULL},
-{      WWT_PANEL,   RESIZE_NONE,    14,   139,   204,    69,   118, 0x0,                              STR_NULL},
-{    WWT_TEXTBTN,   RESIZE_NONE,    14,    10,    69,   133,   144, STR_02DB_OFF,                     STR_3065_DON_T_HIGHLIGHT_COVERAGE},
-{    WWT_TEXTBTN,   RESIZE_NONE,    14,    70,   129,   133,   144, STR_02DA_ON,                      STR_3064_HIGHLIGHT_COVERAGE_AREA},
-{      WWT_LABEL,   RESIZE_NONE,     7,     0,   139,   120,   133, STR_3066_COVERAGE_AREA_HIGHLIGHT, STR_NULL},
+{   WWT_CLOSEBOX,   RESIZE_NONE,     7,     0,    10,     0,    13, STR_00C5,                         STR_018B_CLOSE_WINDOW},             // BRSW_CLOSEBOX
+{    WWT_CAPTION,   RESIZE_NONE,     7,    11,   206,     0,    13, STR_NULL,                         STR_018C_WINDOW_TITLE_DRAG_THIS},   // BRSW_CAPTION
+{      WWT_PANEL,   RESIZE_NONE,     7,     0,   206,    14,   176, 0x0,                              STR_NULL},                          // BRSW_BACKGROUND
+
+{      WWT_PANEL,   RESIZE_NONE,    14,    71,   136,    17,    66, 0x0,                              STR_NULL},                          // BRSW_STATION_NE
+{      WWT_PANEL,   RESIZE_NONE,    14,    71,   136,    69,   118, 0x0,                              STR_NULL},                          // BRSW_STATION_SE
+{      WWT_PANEL,   RESIZE_NONE,    14,     3,    68,    69,   118, 0x0,                              STR_NULL},                          // BRSW_STATION_SW
+{      WWT_PANEL,   RESIZE_NONE,    14,     3,    68,    17,    66, 0x0,                              STR_NULL},                          // BRSW_STATION_NW
+{      WWT_PANEL,   RESIZE_NONE,    14,   139,   204,    17,    66, 0x0,                              STR_NULL},                          // BRSW_STATION_X
+{      WWT_PANEL,   RESIZE_NONE,    14,   139,   204,    69,   118, 0x0,                              STR_NULL},                          // BRSW_STATION_Y
+
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,    10,    69,   133,   144, STR_02DB_OFF,                     STR_3065_DON_T_HIGHLIGHT_COVERAGE}, // BRSW_LT_OFF
+{    WWT_TEXTBTN,   RESIZE_NONE,    14,    70,   129,   133,   144, STR_02DA_ON,                      STR_3064_HIGHLIGHT_COVERAGE_AREA},  // BRSW_LT_ON
+{      WWT_LABEL,   RESIZE_NONE,     7,     0,   139,   120,   133, STR_3066_COVERAGE_AREA_HIGHLIGHT, STR_NULL},                          // BRSW_INFO
 {   WIDGETS_END},
 };
 
@@ -645,8 +740,8 @@
 	if (w == NULL) return;
 
 	w->window_class = (rs == RoadStop::BUS) ? WC_BUS_STATION : WC_TRUCK_STATION;
-	w->widget[1].data = _road_type_infos[_cur_roadtype].picker_title[rs];
-	for (uint i = 3; i < 9; i++) w->widget[i].tooltips = _road_type_infos[_cur_roadtype].picker_tooltip[rs];
+	w->widget[BRSW_CAPTION].data = _road_type_infos[_cur_roadtype].picker_title[rs];
+	for (uint i = BRSW_STATION_NE; i < BRSW_LT_OFF; i++) w->widget[i].tooltips = _road_type_infos[_cur_roadtype].picker_tooltip[rs];
 }
 
 void InitializeRoadGui()
--- a/src/roadveh_cmd.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/roadveh_cmd.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -360,6 +360,8 @@
 
 	if (v->type != VEH_ROAD || !CheckOwnership(v->owner)) return CMD_ERROR;
 
+	if (HASBITS(v->vehstatus, VS_CRASHED)) return_cmd_error(STR_CAN_T_SELL_DESTROYED_VEHICLE);
+
 	SET_EXPENSES_TYPE(EXPENSES_NEW_VEHICLES);
 
 	if (!CheckRoadVehInDepotStopped(v)) {
--- a/src/saveload.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/saveload.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -29,7 +29,7 @@
 #include "strings.h"
 #include <list>
 
-extern const uint16 SAVEGAME_VERSION = 79;
+extern const uint16 SAVEGAME_VERSION = 81;
 uint16 _sl_version;       ///< the major savegame version identifier
 byte   _sl_minor_version; ///< the minor savegame version, DO NOT USE!
 
--- a/src/settings.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/settings.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -41,6 +41,7 @@
 #include "genworld.h"
 #include "date.h"
 #include "rail.h"
+#include "train.h"
 #include "helpers.hpp"
 #include "news.h"
 #ifdef WITH_FREETYPE
@@ -1129,6 +1130,16 @@
 	return 0;
 }
 
+static int32 UpdateConsists(int32 p1)
+{
+	Vehicle *v;
+	FOR_ALL_VEHICLES(v) {
+		/* Update the consist of all trains so the maximum speed is set correctly. */
+		if (v->type == VEH_TRAIN && (IsFrontEngine(v) || IsFreeWagon(v))) TrainConsistChanged(v);
+	}
+	return 0;
+}
+
 /* Check service intervals of vehicles, p1 is value of % or day based servicing */
 static int32 CheckInterval(int32 p1)
 {
@@ -1257,6 +1268,7 @@
 	 SDTG_BOOL("large_aa",                   S, 0, _freetype.large_aa,    false,    STR_NULL, NULL),
 #endif
 	  SDTG_VAR("sprite_cache_size",SLE_UINT, S, 0, _sprite_cache_size,     4, 1, 64, 0, STR_NULL, NULL),
+	  SDTG_VAR("player_face",    SLE_UINT32, S, 0, _player_face,      0,0,0xFFFFFFFF,0, STR_NULL, NULL),
 	  SDTG_END()
 };
 
@@ -1297,8 +1309,8 @@
 	 * XXX - To save file-space and since values are never bigger than about 10? only
 	 * save the first 16 bits in the savegame. Question is why the values are still int32
 	 * and why not byte for example? */
-	SDT_GENERAL("diff_custom", SDT_INTLIST, SL_ARR, (SLE_FILE_I16 | SLE_VAR_I32), 0, 0, GameOptions, diff, 17, 0, 0, 0, 0, NULL, STR_NULL, NULL, NULL, 0, 3),
-	SDT_GENERAL("diff_custom", SDT_INTLIST, SL_ARR, (SLE_FILE_I16 | SLE_VAR_I32), 0, 0, GameOptions, diff, 18, 0, 0, 0, 0, NULL, STR_NULL, NULL, NULL, 4, SL_MAX_VERSION),
+	SDT_GENERAL("diff_custom", SDT_INTLIST, SL_ARR, SLE_UINT16, 0, 0, GameOptions, diff, 17, 0, 0, 0, 0, NULL, STR_NULL, NULL, NULL, 0, 3),
+	SDT_GENERAL("diff_custom", SDT_INTLIST, SL_ARR, SLE_UINT16, 0, 0, GameOptions, diff, 18, 0, 0, 0, 0, NULL, STR_NULL, NULL, NULL, 4, SL_MAX_VERSION),
 	    SDT_VAR(GameOptions, diff_level, SLE_UINT8, 0, 0, 0, 0,  3, 0, STR_NULL, NULL),
 	  SDT_OMANY(GameOptions, currency,  SLE_UINT8, N, 0, 0, CUSTOM_CURRENCY_ID, "GBP|USD|EUR|YEN|ATS|BEF|CHF|CZK|DEM|DKK|ESP|FIM|FRF|GRD|HUF|ISK|ITL|NLG|NOK|PLN|ROL|RUR|SIT|SEK|YTL|SKK|BRR|custom", STR_NULL, NULL, NULL),
 	  SDT_OMANY(GameOptions, units,     SLE_UINT8, N, 0, 1,     2, "imperial|metric|si", STR_NULL, NULL, NULL),
@@ -1396,7 +1408,7 @@
 	 SDT_VAR(Patches, servint_ships,     SLE_UINT16, 0,D0,   360,     5,     800, 0, STR_CONFIG_PATCHES_SERVINT_SHIPS,        InValidateDetailsWindow),
 	 SDT_VAR(Patches, servint_aircraft,  SLE_UINT16, 0,D0,   100,     5,     800, 0, STR_CONFIG_PATCHES_SERVINT_AIRCRAFT,     InValidateDetailsWindow),
 	SDT_BOOL(Patches, no_servicing_if_no_breakdowns, 0, 0, false,                    STR_CONFIG_PATCHES_NOSERVICE,            NULL),
-	SDT_BOOL(Patches, wagon_speed_limits,            0, 0,  true,                    STR_CONFIG_PATCHES_WAGONSPEEDLIMITS,     NULL),
+	SDT_BOOL(Patches, wagon_speed_limits,            0, 0,  true,                    STR_CONFIG_PATCHES_WAGONSPEEDLIMITS,     UpdateConsists),
 	SDT_CONDBOOL(Patches, disable_elrails, 38, SL_MAX_VERSION, 0, 0, false,          STR_CONFIG_PATCHES_DISABLE_ELRAILS,      SettingsDisableElrail),
 	SDT_CONDVAR(Patches, freight_trains, SLE_UINT8, 39, SL_MAX_VERSION, 0, 0, 1, 1, 255, 1, STR_CONFIG_PATCHES_FREIGHT_TRAINS, NULL),
 	SDT_CONDBOOL(Patches, timetabling,              67, SL_MAX_VERSION, 0, 0, true,  STR_CONFIG_PATCHES_TIMETABLE_ALLOW,      NULL),
--- a/src/settings_gui.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/settings_gui.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -399,7 +399,7 @@
  * Q: disasters
  * R: area restructuring (0 = permissive, 2 = hostile)
  */
-static const int16 _default_game_diff[3][GAME_DIFFICULTY_NUM] = { /*
+static const GDType _default_game_diff[3][GAME_DIFFICULTY_NUM] = { /*
 	 A, B, C, D,   E, F, G, H, I, J, K, L, M, N, O, P, Q, R*/
 	{2, 2, 1, 4, 300, 2, 0, 2, 0, 1, 2, 0, 1, 0, 0, 0, 0, 0}, ///< easy
 	{4, 1, 1, 3, 150, 3, 1, 3, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1}, ///< medium
@@ -414,7 +414,7 @@
 	gm_opt->diff_level = mode;
 	if (mode != 3) { // not custom
 		for (i = 0; i != GAME_DIFFICULTY_NUM; i++)
-			((int*)&gm_opt->diff)[i] = _default_game_diff[mode][i];
+			((GDType*)&gm_opt->diff)[i] = _default_game_diff[mode][i];
 	}
 }
 
@@ -428,7 +428,7 @@
 		SetDifficultyLevel(_opt_newgame.diff_level, &_opt_newgame);
 	} else {
 		for (uint i = 0; i < GAME_DIFFICULTY_NUM; i++) {
-			int *diff = ((int*)&_opt_newgame.diff) + i;
+			GDType *diff = ((GDType*)&_opt_newgame.diff) + i;
 			*diff = clamp(*diff, _game_setting_info[i].min, _game_setting_info[i].max);
 			*diff -= *diff % _game_setting_info[i].step;
 		}
@@ -489,7 +489,7 @@
 			DrawStringCentered(20, y, STR_681A, 0);
 
 
-			value = _game_setting_info[i].str + ((int*)&_opt_mod_temp.diff)[i];
+			value = _game_setting_info[i].str + ((GDType*)&_opt_mod_temp.diff)[i];
 			if (i == 4) value *= 1000; // XXX - handle currency option
 			SetDParam(0, value);
 			DrawString(30, y, STR_6805_MAXIMUM_NO_COMPETITORS + i, 0);
@@ -531,7 +531,7 @@
 
 			_difficulty_timeout = 5;
 
-			val = ((int*)&_opt_mod_temp.diff)[btn];
+			val = ((GDType*)&_opt_mod_temp.diff)[btn];
 
 			info = &_game_setting_info[btn]; // get information about the difficulty setting
 			if (x >= 10) {
@@ -546,7 +546,7 @@
 			}
 
 			// save value in temporary variable
-			((int*)&_opt_mod_temp.diff)[btn] = val;
+			((GDType*)&_opt_mod_temp.diff)[btn] = val;
 			RaiseWindowWidget(w, _opt_mod_temp.diff_level + 3);
 			SetDifficultyLevel(3, &_opt_mod_temp); // set difficulty level to custom
 			LowerWindowWidget(w, _opt_mod_temp.diff_level + 3);
@@ -563,11 +563,11 @@
 			ShowHighscoreTable(_opt_mod_temp.diff_level, -1);
 			break;
 		case 10: { /* Save button - save changes */
-			int btn, val;
+			GDType btn, val;
 			for (btn = 0; btn != GAME_DIFFICULTY_NUM; btn++) {
-				val = ((int*)&_opt_mod_temp.diff)[btn];
+				val = ((GDType*)&_opt_mod_temp.diff)[btn];
 				// if setting has changed, change it
-				if (val != ((int*)&_opt_ptr->diff)[btn])
+				if (val != ((GDType*)&_opt_ptr->diff)[btn])
 					DoCommandP(0, btn, val, NULL, CMD_CHANGE_DIFFICULTY_LEVEL);
 			}
 			DoCommandP(0, UINT_MAX, _opt_mod_temp.diff_level, NULL, CMD_CHANGE_DIFFICULTY_LEVEL);
--- a/src/ship_cmd.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/ship_cmd.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -911,6 +911,8 @@
 
 	if (v->type != VEH_SHIP || !CheckOwnership(v->owner)) return CMD_ERROR;
 
+	if (HASBITS(v->vehstatus, VS_CRASHED)) return_cmd_error(STR_CAN_T_SELL_DESTROYED_VEHICLE);
+
 	SET_EXPENSES_TYPE(EXPENSES_NEW_VEHICLES);
 
 	if (!v->IsStoppedInDepot()) {
--- a/src/slope.h	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/slope.h	Sat Oct 20 10:42:28 2007 +0000
@@ -48,9 +48,21 @@
 	CORNER_S = 1,
 	CORNER_E = 2,
 	CORNER_N = 3,
+	CORNER_END
 };
 
 /**
+ * Rangecheck for Corner enumeration.
+ *
+ * @param corner A #Corner.
+ * @return true iff corner is in a valid range.
+ */
+static inline bool IsValidCorner(Corner corner)
+{
+	return IS_INT_INSIDE(corner, 0, CORNER_END);
+}
+
+/**
  * Checks if a slope is steep.
  *
  * @param s The given #Slope.
@@ -79,6 +91,17 @@
 }
 
 /**
+ * Tests if a slope has a highest corner (i.e. one corner raised or a steep slope).
+ *
+ * @param s The #Slope.
+ * @return  true iff the slope has a highest corner.
+ */
+static inline bool HasSlopeHighestCorner(Slope s)
+{
+	return IsSteepSlope(s) || (s == SLOPE_W) || (s == SLOPE_S) || (s == SLOPE_E) || (s == SLOPE_N);
+}
+
+/**
  * Returns the highest corner of a slope (one corner raised or a steep slope).
  *
  * @pre      The slope must be a slope with one corner raised or a steep slope.
@@ -132,7 +155,7 @@
  */
 static inline Slope SlopeWithOneCornerRaised(Corner corner)
 {
-	assert(IS_INT_INSIDE(corner, 0, 4));
+	assert(IsValidCorner(corner));
 	return (Slope)(1 << corner);
 }
 
@@ -158,6 +181,8 @@
 	FOUNDATION_INCLINED_Y,       ///< The tile has an along Y-axis inclined foundation.
 	FOUNDATION_STEEP_LOWER,      ///< The tile has a steep slope. The lowerst corner is raised by a foundation to allow building railroad on the lower halftile.
 	FOUNDATION_STEEP_HIGHER,     ///< The tile has a steep slope. Three corners are raised by a foundation to allow building railroad on the higher halftile.
+
+	FOUNDATION_INVALID = 0xFF    ///< Used inside "rail_cmd.cpp" to indicate invalid slope/track combination.
 };
 
 /**
--- a/src/station_cmd.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/station_cmd.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -1128,7 +1128,7 @@
 
 		/* Check ownership of station */
 		Station *st = GetStationByTile(tile2);
-		if (_current_player != OWNER_WATER && (!CheckOwnership(st->owner) || !EnsureNoVehicle(tile2))) {
+		if (_current_player != OWNER_WATER && (!CheckOwnership(st->owner) || !EnsureNoVehicleOnGround(tile2))) {
 			continue;
 		}
 
@@ -1191,7 +1191,7 @@
 		do {
 			// for nonuniform stations, only remove tiles that are actually train station tiles
 			if (st->TileBelongsToRailStation(tile)) {
-				if (!EnsureNoVehicle(tile))
+				if (!EnsureNoVehicleOnGround(tile))
 					return CMD_ERROR;
 				cost.AddCost(_price.remove_rail_station);
 				if (flags & DC_EXEC) {
@@ -1245,7 +1245,7 @@
 		VehicleFromPos(tile, &tile, UpdateTrainPowerProc);
 	}
 
-	return CommandCost(_price.build_rail / 2);
+	return CommandCost(RailBuildCost(totype) / 2);
 }
 
 /**
@@ -1425,7 +1425,7 @@
 
 	assert(cur_stop != NULL);
 
-	if (!EnsureNoVehicle(tile)) return CMD_ERROR;
+	if (!EnsureNoVehicleOnGround(tile)) return CMD_ERROR;
 
 	if (flags & DC_EXEC) {
 		if (*primary_stop == cur_stop) {
@@ -1769,7 +1769,7 @@
 {
 	SET_EXPENSES_TYPE(EXPENSES_CONSTRUCTION);
 
-	if (!IsClearWaterTile(tile) || tile == 0) return_cmd_error(STR_304B_SITE_UNSUITABLE);
+	if (!IsWaterTile(tile) || tile == 0) return_cmd_error(STR_304B_SITE_UNSUITABLE);
 	if (MayHaveBridgeAbove(tile) && IsBridgeAbove(tile)) return_cmd_error(STR_5007_MUST_DEMOLISH_BRIDGE_FIRST);
 
 	/* allocate and initialize new station */
@@ -1832,7 +1832,7 @@
 	TileIndex tile = st->dock_tile;
 
 	if (CheckShipsOnBuoy(st))   return_cmd_error(STR_BUOY_IS_IN_USE);
-	if (!EnsureNoVehicle(tile)) return CMD_ERROR;
+	if (!EnsureNoVehicleOnGround(tile)) return CMD_ERROR;
 
 	if (flags & DC_EXEC) {
 		st->dock_tile = 0;
@@ -1980,8 +1980,8 @@
 	TileIndex tile1 = st->dock_tile;
 	TileIndex tile2 = tile1 + TileOffsByDiagDir(GetDockDirection(tile1));
 
-	if (!EnsureNoVehicle(tile1)) return CMD_ERROR;
-	if (!EnsureNoVehicle(tile2)) return CMD_ERROR;
+	if (!EnsureNoVehicleOnGround(tile1)) return CMD_ERROR;
+	if (!EnsureNoVehicleOnGround(tile2)) return CMD_ERROR;
 
 	if (flags & DC_EXEC) {
 		DoClearSquare(tile1);
@@ -2088,7 +2088,7 @@
 		DrawTramCatenary(ti, axis == AXIS_X ? ROAD_X : ROAD_Y);
 	}
 
-	if (IsBuoyTile(ti->tile) && (ti->z != 0 || !IsTileOwner(ti->tile, OWNER_WATER))) DrawCanalWater(ti->tile);
+	if (IsCanalBuoyTile(ti->tile)) DrawCanalWater(ti->tile);
 
 	const DrawTileSeqStruct *dtss;
 	foreach_draw_tile_seq(dtss, t->seq) {
--- a/src/station_map.h	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/station_map.h	Sat Oct 20 10:42:28 2007 +0000
@@ -154,6 +154,15 @@
 	return IsTileType(t, MP_STATION) && IsBuoy(t);
 }
 
+static inline bool IsCanalBuoyTile(TileIndex t)
+{
+	return IsBuoyTile(t) && !IsTileOwner(t, OWNER_WATER);
+}
+
+static inline bool IsSeaBuoyTile(TileIndex t)
+{
+	return IsBuoyTile(t) && IsTileOwner(t, OWNER_WATER);
+}
 
 static inline bool IsHangarTile(TileIndex t)
 {
--- a/src/strgen/strgen.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/strgen/strgen.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -1014,7 +1014,6 @@
 	FILE *out;
 	int i;
 	int next = -1;
-	int lastgrp;
 
 	out = fopen("tmp.xxx", "w");
 	if (out == NULL) fatal("can't open tmp.xxx");
@@ -1023,8 +1022,6 @@
 	fprintf(out, "#ifndef TABLE_STRINGS_H\n");
 	fprintf(out, "#define TABLE_STRINGS_H\n");
 
-	lastgrp = 0;
-
 	for (i = 0; i != lengthof(_strings); i++) {
 		if (_strings[i] != NULL) {
 			if (next != i) fprintf(out, "\n");
@@ -1033,6 +1030,8 @@
 		}
 	}
 
+	fprintf(out, "\nstatic const StringID STR_LAST_STRINGID = 0x%X;\n", next - 1);
+
 	fprintf(out,
 		"\nenum {\n"
 		"\tLANGUAGE_PACK_IDENT = 0x474E414C, // Big Endian value for 'LANG' (LE is 0x 4C 41 4E 47)\n"
--- a/src/table/sprites.h	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/table/sprites.h	Sat Oct 20 10:42:28 2007 +0000
@@ -538,14 +538,14 @@
 
 	/* Shores */
 	SPR_NO_SHORE                = 0,  //used for tileh which have no shore
-	SPR_SHORE_TILEH_4           = 4062,
-	SPR_SHORE_TILEH_1           = 4063,
-	SPR_SHORE_TILEH_2           = 4064,
-	SPR_SHORE_TILEH_8           = 4065,
-	SPR_SHORE_TILEH_6           = 4066,
-	SPR_SHORE_TILEH_12          = 4067,
-	SPR_SHORE_TILEH_3           = 4068,
-	SPR_SHORE_TILEH_9           = 4069,
+	SPR_SHORE_TILEH_4           = 4062, // SLOPE_E
+	SPR_SHORE_TILEH_1           = 4063, // SLOPE_W
+	SPR_SHORE_TILEH_2           = 4064, // SLOPE_S
+	SPR_SHORE_TILEH_8           = 4065, // SLOPE_N
+	SPR_SHORE_TILEH_6           = 4066, // SLOPE_SE
+	SPR_SHORE_TILEH_12          = 4067, // SLOPE_NE
+	SPR_SHORE_TILEH_3           = 4068, // SLOPE_SW
+	SPR_SHORE_TILEH_9           = 4069, // SLOPE_NW
 
 	/* Water-related sprites */
 	SPR_SHIP_DEPOT_SE_FRONT     = 4070,
--- a/src/texteff.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/texteff.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -25,7 +25,6 @@
 	MAX_TEXTMESSAGE_LENGTH = 200,
 	INIT_NUM_TEXT_MESSAGES =  20,
 	MAX_CHAT_MESSAGES      =  10,
-	MAX_ANIMATED_TILES     = 256,
 };
 
 struct TextEffect {
@@ -50,7 +49,6 @@
 /* used for text effects */
 static TextEffect *_text_effect_list = NULL;
 static uint16 _num_text_effects = INIT_NUM_TEXT_MESSAGES;
-TileIndex _animated_tile_list[MAX_ANIMATED_TILES];
 
 /* used for chat window */
 static ChatMessage _chatmsg_list[MAX_CHAT_MESSAGES];
@@ -422,62 +420,127 @@
 	}
 }
 
+/** The table/list with animated tiles. */
+TileIndex *_animated_tile_list = NULL;
+/** The number of animated tiles in the current state. */
+uint _animated_tile_count = 0;
+/** The number of slots for animated tiles allocated currently. */
+static uint _animated_tile_allocated = 0;
+
+/**
+ * Removes the given tile from the animated tile table.
+ * @param tile the tile to remove
+ */
 void DeleteAnimatedTile(TileIndex tile)
 {
-	TileIndex *ti;
-
-	for (ti = _animated_tile_list; ti != endof(_animated_tile_list); ti++) {
+	for (TileIndex *ti = _animated_tile_list; ti < _animated_tile_list + _animated_tile_count; ti++) {
 		if (tile == *ti) {
-			/* remove the hole */
-			memmove(ti, ti + 1, (lastof(_animated_tile_list) - ti) * sizeof(*ti));
-			/* and clear last item */
-			*lastof(_animated_tile_list) = 0;
+			/* Remove the hole
+			 * The order of the remaining elements must stay the same, otherwise the animation loop
+			 * may miss a tile; that's why we must use memmove instead of just moving the last element.
+			 */
+			memmove(ti, ti + 1, (_animated_tile_list + _animated_tile_count - (ti + 1)) * sizeof(*ti));
+			_animated_tile_count--;
 			MarkTileDirtyByTile(tile);
 			return;
 		}
 	}
 }
 
-bool AddAnimatedTile(TileIndex tile)
+/**
+ * Add the given tile to the animated tile table (if it does not exist
+ * on that table yet). Also increases the size of the table if necessary.
+ * @param tile the tile to make animated
+ */
+void AddAnimatedTile(TileIndex tile)
 {
-	TileIndex *ti;
+	MarkTileDirtyByTile(tile);
 
-	for (ti = _animated_tile_list; ti != endof(_animated_tile_list); ti++) {
-		if (tile == *ti || *ti == 0) {
-			*ti = tile;
-			MarkTileDirtyByTile(tile);
-			return true;
-		}
+	for (const TileIndex *ti = _animated_tile_list; ti < _animated_tile_list + _animated_tile_count; ti++) {
+		if (tile == *ti) return;
 	}
 
-	return false;
+	/* Table not large enough, so make it larger */
+	if (_animated_tile_count == _animated_tile_allocated) {
+		_animated_tile_allocated *= 2;
+		_animated_tile_list = ReallocT<TileIndex>(_animated_tile_list, _animated_tile_allocated);
+	}
+
+	_animated_tile_list[_animated_tile_count] = tile;
+	_animated_tile_count++;
 }
 
+/**
+ * Animate all tiles in the animated tile list, i.e.\ call AnimateTile on them.
+ */
 void AnimateAnimatedTiles()
 {
-	const TileIndex* ti;
-
-	for (ti = _animated_tile_list; ti != endof(_animated_tile_list) && *ti != 0; ti++) {
-		AnimateTile(*ti);
+	const TileIndex *ti = _animated_tile_list;
+	while (ti < _animated_tile_list + _animated_tile_count) {
+		const TileIndex curr = *ti;
+		AnimateTile(curr);
+		/* During the AnimateTile call, DeleteAnimatedTile could have been called,
+		 * deleting an element we've already processed and pushing the rest one
+		 * slot to the left. We can detect this by checking whether the index
+		 * in the current slot has changed - if it has, an element has been deleted,
+		 * and we should process the current slot again instead of going forward.
+		 * NOTE: this will still break if more than one animated tile is being
+		 *       deleted during the same AnimateTile call, but no code seems to
+		 *       be doing this anyway.
+		 */
+		if (*ti == curr) ++ti;
 	}
 }
 
+/**
+ * Initialize all animated tile variables to some known begin point
+ */
 void InitializeAnimatedTiles()
 {
-	memset(_animated_tile_list, 0, sizeof(_animated_tile_list));
+	_animated_tile_list = ReallocT<TileIndex>(_animated_tile_list, 256);
+	_animated_tile_count = 0;
+	_animated_tile_allocated = 256;
 }
 
-static void SaveLoad_ANIT()
+/**
+ * Save the ANIT chunk.
+ */
+static void Save_ANIT()
 {
-	/* In pre version 6, we has 16bit per tile, now we have 32bit per tile, convert it ;) */
-	if (CheckSavegameVersion(6)) {
-		SlArray(_animated_tile_list, lengthof(_animated_tile_list), SLE_FILE_U16 | SLE_VAR_U32);
-	} else {
-		SlArray(_animated_tile_list, lengthof(_animated_tile_list), SLE_UINT32);
-	}
+	SlSetLength(_animated_tile_count * sizeof(*_animated_tile_list));
+	SlArray(_animated_tile_list, _animated_tile_count, SLE_UINT32);
 }
 
+/**
+ * Load the ANIT chunk; the chunk containing the animated tiles.
+ */
+static void Load_ANIT()
+{
+	/* Before version 80 we did NOT have a variable length animated tile table */
+	if (CheckSavegameVersion(80)) {
+		/* In pre version 6, we has 16bit per tile, now we have 32bit per tile, convert it ;) */
+		SlArray(_animated_tile_list, 256, CheckSavegameVersion(6) ? (SLE_FILE_U16 | SLE_VAR_U32) : SLE_UINT32);
 
+		for (_animated_tile_count = 0; _animated_tile_count < 256; _animated_tile_count++) {
+			if (_animated_tile_list[_animated_tile_count] == 0) break;
+		}
+		return;
+	}
+
+	_animated_tile_count = SlGetFieldLength() / sizeof(*_animated_tile_list);
+
+	/* Determine a nice rounded size for the amount of allocated tiles */
+	_animated_tile_allocated = 256;
+	while (_animated_tile_allocated < _animated_tile_count) _animated_tile_allocated *= 2;
+
+	_animated_tile_list = ReallocT<TileIndex>(_animated_tile_list, _animated_tile_allocated);
+	SlArray(_animated_tile_list, _animated_tile_count, SLE_UINT32);
+}
+
+/**
+ * "Definition" imported by the saveload code to be able to load and save
+ * the animated tile table.
+ */
 extern const ChunkHandler _animated_tile_chunk_handlers[] = {
-	{ 'ANIT', SaveLoad_ANIT, SaveLoad_ANIT, CH_RIFF | CH_LAST},
+	{ 'ANIT', Save_ANIT, Load_ANIT, CH_RIFF | CH_LAST},
 };
--- a/src/town_cmd.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/town_cmd.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -42,6 +42,7 @@
 #include "newgrf_townname.h"
 #include "misc/autoptr.hpp"
 #include "autoslope.h"
+#include "waypoint.h"
 
 /* Initialize the town-pool */
 DEFINE_OLD_POOL_GENERIC(Town, Town)
@@ -932,7 +933,7 @@
 			return false;
 		}
 		bridge_tile = TILE_MASK(bridge_tile + TileOffsByDiagDir(bridge_dir));
-	} while (IsClearWaterTile(bridge_tile));
+	} while (IsWaterTile(bridge_tile));
 
 	/* no water tiles in between? */
 	if (bridge_length == 1) return false;
@@ -1071,7 +1072,7 @@
 		TileIndex house_tile = TileAddByDiagDir(tile, target_dir); // position of a possible house
 
 		/* Don't walk into water. */
-		if (IsClearWaterTile(house_tile)) return;
+		if (IsWaterTile(house_tile)) return;
 
 		switch (_patches.town_layout) {
 			default: NOT_REACHED();
@@ -1120,7 +1121,7 @@
 	}
 
 	/* Return if a water tile */
-	if (IsClearWaterTile(tile)) return;
+	if (IsWaterTile(tile)) return;
 
 	/* Make the roads look nicer */
 	rcmd = CleanUpRoadBits(tile, rcmd);
@@ -1706,7 +1707,10 @@
 			hs = GetHouseSpecs(house);
 
 			if (_loaded_newgrf_features.has_newhouses) {
-				if (hs->override != 0) hs = GetHouseSpecs(hs->override);
+				if (hs->override != 0) {
+					house = hs->override;
+					hs = GetHouseSpecs(house);
+				}
 
 				if ((hs->extra_flags & BUILDING_IS_HISTORICAL) && !_generating_world) continue;
 
@@ -1899,6 +1903,7 @@
 		UpdateTownVirtCoord(t);
 		_town_sort_dirty = true;
 		UpdateAllStationVirtCoord();
+		UpdateAllWaypointSigns();
 		MarkWholeScreenDirty();
 	} else {
 		DeleteName(str);
--- a/src/train_cmd.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/train_cmd.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -534,7 +534,8 @@
 			Vehicle *w;
 			FOR_ALL_VEHICLES(w) {
 				if (w->type == VEH_TRAIN && w->tile == tile &&
-				    IsFreeWagon(w) && w->engine_type == engine) {
+				    IsFreeWagon(w) && w->engine_type == engine &&
+				    !HASBITS(w->vehstatus, VS_CRASHED)) {          /// do not connect new wagon with crashed/flooded consists
 					u = GetLastVehicleInChain(w);
 					break;
 				}
@@ -855,7 +856,7 @@
 	TileIndex tile = src->tile;
 
 	FOR_ALL_VEHICLES(dst) {
-		if (dst->type == VEH_TRAIN && IsFreeWagon(dst) && dst->tile == tile) {
+		if (dst->type == VEH_TRAIN && IsFreeWagon(dst) && dst->tile == tile && !HASBITS(dst->vehstatus, VS_CRASHED)) {
 			/* check so all vehicles in the line have the same engine. */
 			Vehicle *v = dst;
 
@@ -926,6 +927,9 @@
 
 	if (src->type != VEH_TRAIN || !CheckOwnership(src->owner)) return CMD_ERROR;
 
+	/* Do not allow moving crashed vehicles inside the depot, it is likely to cause asserts later */
+	if (HASBITS(src->vehstatus, VS_CRASHED)) return CMD_ERROR;
+
 	/* if nothing is selected as destination, try and find a matching vehicle to drag to. */
 	Vehicle *dst;
 	if (d == INVALID_VEHICLE) {
@@ -934,6 +938,9 @@
 		if (!IsValidVehicleID(d)) return CMD_ERROR;
 		dst = GetVehicle(d);
 		if (dst->type != VEH_TRAIN || !CheckOwnership(dst->owner)) return CMD_ERROR;
+
+		/* Do not allow appending to crashed vehicles, too */
+		if (HASBITS(dst->vehstatus, VS_CRASHED)) return CMD_ERROR;
 	}
 
 	/* if an articulated part is being handled, deal with its parent vehicle */
@@ -1217,6 +1224,8 @@
 
 	if (v->type != VEH_TRAIN || !CheckOwnership(v->owner)) return CMD_ERROR;
 
+	if (HASBITS(v->vehstatus, VS_CRASHED)) return_cmd_error(STR_CAN_T_SELL_DESTROYED_VEHICLE);
+
 	SET_EXPENSES_TYPE(EXPENSES_NEW_VEHICLES);
 
 	while (IsArticulatedPart(v)) v = v->Previous();
@@ -3346,8 +3355,8 @@
 		if (this->type == VEH_TRAIN && IsFrontEngine(this))
 			TrainLocoHandler(this, true);
 	} else if (IsFreeWagon(this) && HASBITS(this->vehstatus, VS_CRASHED)) {
-		/* Delete flooded standalone wagon */
-		if (++this->u.rail.crash_anim_pos >= 4400) delete this;
+		/* Delete flooded standalone wagon chain */
+		if (++this->u.rail.crash_anim_pos >= 4400) DeleteVehicleChain(this);
 	}
 }
 
--- a/src/tree_cmd.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/tree_cmd.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -85,7 +85,7 @@
 			SetTreeGroundDensity(tile, TREE_GROUND_SNOW_DESERT, 3);
 			SetTreeCounter(tile, (TreeGround)GB(r, 24, 3));
 		} else {
-			SetTreeGroundDensity(tile, (TreeGround)GB(r, 28, 1), 0);
+			SetTreeGroundDensity(tile, (TreeGround)GB(r, 28, 1), 3);
 			SetTreeCounter(tile, (TreeGround)GB(r, 24, 4));
 		}
 	}
@@ -346,9 +346,10 @@
 
 						growth = _game_mode == GM_EDITOR ? 3 : 0;
 						switch (GetClearGround(tile)) {
-							case CLEAR_ROUGH: MakeTree(tile, treetype, 0, growth, TREE_GROUND_ROUGH, 0); break;
-							case CLEAR_SNOW:  MakeTree(tile, treetype, 0, growth, TREE_GROUND_SNOW_DESERT, GetClearDensity(tile)); break;
-							default:          MakeTree(tile, treetype, 0, growth, TREE_GROUND_GRASS, 0); break;
+							case CLEAR_ROUGH:  MakeTree(tile, treetype, 0, growth, TREE_GROUND_ROUGH, 3); break;
+							case CLEAR_SNOW:
+							case CLEAR_DESERT: MakeTree(tile, treetype, 0, growth, TREE_GROUND_SNOW_DESERT, GetClearDensity(tile)); break;
+							default:           MakeTree(tile, treetype, 0, growth, TREE_GROUND_GRASS, GetClearDensity(tile)); break;
 						}
 						MarkTileDirtyByTile(tile);
 
@@ -385,7 +386,7 @@
 	byte z;
 
 	switch (GetTreeGround(ti->tile)) {
-		case TREE_GROUND_GRASS: DrawClearLandTile(ti, 3); break;
+		case TREE_GROUND_GRASS: DrawClearLandTile(ti, GetTreeDensity(ti->tile)); break;
 		case TREE_GROUND_ROUGH: DrawHillyLandTile(ti); break;
 		default: DrawGroundSprite(_tree_sprites_1[GetTreeDensity(ti->tile)] + _tileh_to_sprite[ti->tileh], PAL_NONE); break;
 	}
@@ -510,10 +511,8 @@
 
 	if (IS_INT_INSIDE(tt, TREE_RAINFOREST, TREE_CACTUS)) {
 		td->str = STR_280F_RAINFOREST;
-	} else if (tt == TREE_CACTUS) {
-		td->str = STR_2810_CACTUS_PLANTS;
 	} else {
-		td->str = STR_280E_TREES;
+		td->str = tt == TREE_CACTUS ? STR_2810_CACTUS_PLANTS : STR_280E_TREES;
 	}
 
 	td->owner = GetTileOwner(tile);
@@ -557,7 +556,7 @@
 
 	if (k < 0) {
 		if (GetTreeGround(tile) != TREE_GROUND_SNOW_DESERT) return;
-		SetTreeGroundDensity(tile, TREE_GROUND_GRASS, 0);
+		SetTreeGroundDensity(tile, TREE_GROUND_GRASS, 3);
 	} else {
 		uint density = min((uint)k / TILE_HEIGHT, 3);
 
@@ -586,6 +585,16 @@
 
 	TileLoopClearHelper(tile);
 
+	uint treeCounter = GetTreeCounter(tile);
+
+	/* Handle growth of grass at every 8th processings, like it's done for grass */
+	if ((treeCounter & 7) == 7 && GetTreeGround(tile) == TREE_GROUND_GRASS) {
+		uint density = GetTreeDensity(tile);
+		if (density < 3) {
+			SetTreeGroundDensity(tile, TREE_GROUND_GRASS, density + 1);
+			MarkTileDirtyByTile(tile);
+		}
+	}
 	if (GetTreeCounter(tile) < 15) {
 		AddTreeCounter(tile, 1);
 		return;
@@ -622,11 +631,12 @@
 						switch (GetClearGround(tile)) {
 							case CLEAR_GRASS:
 								if (GetClearDensity(tile) != 3) return;
-								MakeTree(tile, treetype, 0, 0, TREE_GROUND_GRASS, 0);
+								MakeTree(tile, treetype, 0, 0, TREE_GROUND_GRASS, 3);
 								break;
 
-							case CLEAR_ROUGH: MakeTree(tile, treetype, 0, 0, TREE_GROUND_ROUGH, 0); break;
-							case CLEAR_SNOW:  MakeTree(tile, treetype, 0, 0, TREE_GROUND_SNOW_DESERT, GetClearDensity(tile)); break;
+							case CLEAR_ROUGH: MakeTree(tile, treetype, 0, 0, TREE_GROUND_ROUGH, 3); break;
+							case CLEAR_DESERT: return; // Cacti don't spread
+							case CLEAR_SNOW: MakeTree(tile, treetype, 0, 0, TREE_GROUND_SNOW_DESERT, GetClearDensity(tile)); break;
 							default: return;
 						}
 						break;
@@ -646,9 +656,11 @@
 			} else {
 				/* just one tree, change type into MP_CLEAR */
 				switch (GetTreeGround(tile)) {
-					case TREE_GROUND_GRASS: MakeClear(tile, CLEAR_GRASS, 3); break;
+					case TREE_GROUND_GRASS: MakeClear(tile, CLEAR_GRASS, GetTreeDensity(tile)); break;
 					case TREE_GROUND_ROUGH: MakeClear(tile, CLEAR_ROUGH, 3); break;
-					default: MakeClear(tile, CLEAR_SNOW, GetTreeDensity(tile)); break;
+					default: // snow or desert
+						MakeClear(tile, _opt.landscape == LT_TROPIC ? CLEAR_DESERT : CLEAR_SNOW, GetTreeDensity(tile));
+						break;
 				}
 			}
 			break;
@@ -675,7 +687,7 @@
 			!IsBridgeAbove(tile) &&
 			(ct = GetClearGround(tile), ct == CLEAR_GRASS || ct == CLEAR_ROUGH) &&
 			(tree = GetRandomTreeType(tile, GB(r, 24, 8))) != TREE_INVALID) {
-		MakeTree(tile, tree, 0, 0, ct == CLEAR_ROUGH ? TREE_GROUND_ROUGH : TREE_GROUND_GRASS, 0);
+		MakeTree(tile, tree, 0, 0, ct == CLEAR_ROUGH ? TREE_GROUND_ROUGH : TREE_GROUND_GRASS, GetClearDensity(tile));
 	}
 
 	/* byte underflow */
@@ -689,8 +701,8 @@
 			(ct = GetClearGround(tile), ct == CLEAR_GRASS || ct == CLEAR_ROUGH || ct == CLEAR_SNOW) &&
 			(tree = GetRandomTreeType(tile, GB(r, 24, 8))) != TREE_INVALID) {
 		switch (ct) {
-			case CLEAR_GRASS: MakeTree(tile, tree, 0, 0, TREE_GROUND_GRASS, 0); break;
-			case CLEAR_ROUGH: MakeTree(tile, tree, 0, 0, TREE_GROUND_ROUGH, 0); break;
+			case CLEAR_GRASS: MakeTree(tile, tree, 0, 0, TREE_GROUND_GRASS, GetClearDensity(tile)); break;
+			case CLEAR_ROUGH: MakeTree(tile, tree, 0, 0, TREE_GROUND_ROUGH, 3); break;
 			default: MakeTree(tile, tree, 0, 0, TREE_GROUND_SNOW_DESERT, GetClearDensity(tile)); break;
 		}
 	}
--- a/src/tunnelbridge_cmd.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/tunnelbridge_cmd.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -243,7 +243,7 @@
 	/* retrieve landscape height and ensure it's on land */
 	tile_start = TileXY(x, y);
 	tile_end = TileXY(sx, sy);
-	if (IsClearWaterTile(tile_start) || IsClearWaterTile(tile_end)) {
+	if (IsWaterTile(tile_start) || IsWaterTile(tile_end)) {
 		return_cmd_error(STR_02A0_ENDS_OF_BRIDGE_MUST_BOTH);
 	}
 
@@ -375,7 +375,7 @@
 
 		switch (GetTileType(tile)) {
 			case MP_WATER:
-				if (!EnsureNoVehicle(tile)) return_cmd_error(STR_980E_SHIP_IN_THE_WAY);
+				if (!EnsureNoVehicleOnGround(tile)) return_cmd_error(STR_980E_SHIP_IN_THE_WAY);
 				if (!IsWater(tile) && !IsCoast(tile)) goto not_valid_below;
 				break;
 
@@ -772,7 +772,7 @@
 			VehicleFromPos(endtile, &endtile, UpdateTrainPowerProc);
 		}
 
-		return CommandCost((length + 1) * (_price.build_rail >> 1));
+		return CommandCost((length + 1) * (RailBuildCost(totype) / 2));
 	} else if (IsBridge(tile) && GetBridgeTransportType(tile) == TRANSPORT_RAIL) {
 		TileIndex endtile = GetOtherBridgeEnd(tile);
 		byte bridge_height = GetBridgeHeight(tile);
@@ -804,48 +804,66 @@
 			}
 		}
 
-		return CommandCost((DistanceManhattan(tile, endtile) + 1) * (_price.build_rail >> 1));
+		return CommandCost((DistanceManhattan(tile, endtile) + 1) * (RailBuildCost(totype) / 2));
 	} else {
 		return CMD_ERROR;
 	}
 }
 
 
-static void DrawBridgePillars(const PalSpriteID *psid, const TileInfo* ti, Axis axis, uint type, int x, int y, int z)
+/**
+ * Draws the pillars under high bridges.
+ *
+ * @param psid Image and palette of a bridge pillar.
+ * @param ti #TileInfo of current bridge-middle-tile.
+ * @param axis Orientation of bridge.
+ * @param type Bridge type.
+ * @param x Sprite X position of front pillar.
+ * @param y Sprite Y position of front pillar.
+ * @param z_bridge Absolute height of bridge bottom.
+ */
+static void DrawBridgePillars(const PalSpriteID *psid, const TileInfo* ti, Axis axis, uint type, int x, int y, int z_bridge)
 {
 	SpriteID image = psid->sprite;
 	if (image != 0) {
 		bool drawfarpillar = !HASBIT(GetBridgeFlags(type), 0);
-		int back_height, front_height;
-		int i = z;
-		const byte *p;
-
-		static const byte _tileh_bits[4][8] = {
-			{ 2, 1, 8, 4,  16,  2, 0, 9 },
-			{ 1, 8, 4, 2,   2, 16, 9, 0 },
-			{ 4, 8, 1, 2,  16,  2, 0, 9 },
-			{ 2, 4, 8, 1,   2, 16, 9, 0 }
-		};
 
-		p = _tileh_bits[(image & 1) * 2 + (axis == AXIS_X ? 0 : 1)];
-		front_height = ti->z + (ti->tileh & p[0] ? TILE_HEIGHT : 0);
-		back_height  = ti->z + (ti->tileh & p[1] ? TILE_HEIGHT : 0);
+		/* "side" specifies the side the pillars stand on.
+		 * The length of the pillars is then set to the height of the bridge over the corners of this edge.
+		 *
+		 *                axis==AXIS_X  axis==AXIS_Y
+		 *   side==false      SW            NW
+		 *   side==true       NE            SE
+		 *
+		 * I have no clue, why this was done this way.
+		 */
+		bool side = HASBIT(image, 0);
 
-		if (IsSteepSlope(ti->tileh)) {
-			if (!(ti->tileh & p[2])) front_height += TILE_HEIGHT;
-			if (!(ti->tileh & p[3])) back_height  += TILE_HEIGHT;
-		}
+		/* "dir" means the edge the pillars stand on */
+		DiagDirection dir = AxisToDiagDir(axis);
+		if (side != (axis == AXIS_Y)) dir = ReverseDiagDir(dir);
 
-		for (; z >= front_height || z >= back_height; z -= TILE_HEIGHT) {
-			/* HACK set height of the BB of pillars to 1, because the origin of the
-			 * sprites is at the top
-			 */
-			if (z >= front_height) { // front facing pillar
-				AddSortableSpriteToDraw(image, psid->pal, x, y, p[4], p[5], BB_HEIGHT_UNDER_BRIDGE - 5, z, HASBIT(_transparent_opt, TO_BRIDGES), 0, 0, -5);
+		/* Determine ground height under pillars */
+		int front_height = ti->z;
+		int back_height = ti->z;
+		GetSlopeZOnEdge(ti->tileh, dir, &front_height, &back_height);
+
+		/* x and y size of bounding-box of pillars */
+		int w = (axis == AXIS_X ? 16 : 2);
+		int h = (axis == AXIS_X ? 2 : 16);
+		/* sprite position of back facing pillar */
+		int x_back = x - (axis == AXIS_X ? 0 : 9);
+		int y_back = y - (axis == AXIS_X ? 9 : 0);
+
+		for (int cur_z = z_bridge; cur_z >= front_height || cur_z >= back_height; cur_z -= TILE_HEIGHT) {
+			/* Draw front facing pillar */
+			if (cur_z >= front_height) {
+				AddSortableSpriteToDraw(image, psid->pal, x, y, w, h, BB_HEIGHT_UNDER_BRIDGE - 5, cur_z, HASBIT(_transparent_opt, TO_BRIDGES), 0, 0, -5);
 			}
 
-			if (drawfarpillar && z >= back_height && z < i - TILE_HEIGHT) { // back facing pillar
-				AddSortableSpriteToDraw(image, psid->pal, x - p[6], y - p[7], p[4], p[5], BB_HEIGHT_UNDER_BRIDGE - 5, z, HASBIT(_transparent_opt, TO_BRIDGES), 0, 0, -5);
+			/* Draw back facing pillar, but not the highest part directly under the bridge-floor */
+			if (drawfarpillar && cur_z >= back_height && cur_z < z_bridge - TILE_HEIGHT) {
+				AddSortableSpriteToDraw(image, psid->pal, x_back, y_back, w, h, BB_HEIGHT_UNDER_BRIDGE - 5, cur_z, HASBIT(_transparent_opt, TO_BRIDGES), 0, 0, -5);
 			}
 		}
 	}
@@ -926,7 +944,7 @@
 			{  1,  0, -15, -14,  0, 15, 16,  1, 0, 1, 16, 15 }, // SW
 			{  0,  1, -14, -15, 15,  0,  1, 16, 1, 0, 15, 16 }, // NW
 		};
-		static const int *BB_data = _tunnel_BB[GetTunnelDirection(ti->tile)];
+		const int *BB_data = _tunnel_BB[GetTunnelDirection(ti->tile)];
 
 		bool catenary = false;
 
--- a/src/variables.h	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/variables.h	Sat Oct 20 10:42:28 2007 +0000
@@ -297,6 +297,8 @@
 
 VARDEF bool _rightclick_emulate;
 
+VARDEF PlayerFace _player_face; ///< for player face storage in openttd.cfg
+
 /* IN/OUT parameters to commands */
 VARDEF byte _yearly_expenses_type;
 VARDEF TileIndex _terraform_err_tile;
--- a/src/vehicle.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/vehicle.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -117,25 +117,11 @@
 	}
 }
 
-static void *EnsureNoVehicleProc(Vehicle *v, void *data)
-{
-	if (v->tile != *(const TileIndex*)data || v->type == VEH_DISASTER)
-		return NULL;
-
-	_error_message = VehicleInTheWayErrMsg(v);
-	return v;
-}
-
-bool EnsureNoVehicle(TileIndex tile)
-{
-	return VehicleFromPos(tile, &tile, EnsureNoVehicleProc) == NULL;
-}
-
 static void *EnsureNoVehicleProcZ(Vehicle *v, void *data)
 {
 	const TileInfo *ti = (const TileInfo*)data;
 
-	if (v->tile != ti->tile || v->type == VEH_DISASTER) return NULL;
+	if (v->tile != ti->tile || v->type == VEH_DISASTER || (v->type == VEH_AIRCRAFT && v->subtype == AIR_SHADOW)) return NULL;
 	if (v->z_pos > ti->z) return NULL;
 
 	_error_message = VehicleInTheWayErrMsg(v);
@@ -564,13 +550,10 @@
 /**
  * Deletes all vehicles in a chain.
  * @param v The first vehicle in the chain.
- *
- * @warning This function is not valid for any vehicle containing articulated
- * parts.
  */
 void DeleteVehicleChain(Vehicle *v)
 {
-	assert(v->type != VEH_TRAIN && v->type != VEH_ROAD);
+	assert(v->First() == v);
 
 	do {
 		Vehicle *u = v;
--- a/src/vehicle_gui.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/vehicle_gui.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -2086,9 +2086,16 @@
 					DoCommandP(v->tile, v->index, 0, NULL,
 										 _vehicle_command_translation_table[VCT_CMD_START_STOP][v->type]);
 					break;
-				case VVW_WIDGET_CENTER_MAIN_VIEH: /* center main view */
-					ScrollMainWindowTo(v->x_pos, v->y_pos);
-					break;
+				case VVW_WIDGET_CENTER_MAIN_VIEH: {/* center main view */
+					const Window *mainwindow = FindWindowById(WC_MAIN_WINDOW, 0);
+					/* code to allow the main window to 'follow' the vehicle if the ctrl key is pressed */
+					if (_ctrl_pressed && mainwindow->viewport->zoom == ZOOM_LVL_NORMAL) {
+						WP(mainwindow, vp_d).follow_vehicle = v->index;
+					} else {
+						ScrollMainWindowTo(v->x_pos, v->y_pos);
+					}
+				} break;
+
 				case VVW_WIDGET_GOTO_DEPOT: /* goto hangar */
 					DoCommandP(v->tile, v->index, _ctrl_pressed ? DEPOT_SERVICE : 0, NULL,
 						_vehicle_command_translation_table[VCT_CMD_GOTO_DEPOT][v->type]);
--- a/src/viewport.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/viewport.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -36,9 +36,6 @@
 static uint32 _active_viewports;    ///< bitmasked variable where each bit signifies if a viewport is in use or not
 assert_compile(lengthof(_viewports) < sizeof(_active_viewports) * 8);
 
-static bool _added_tile_sprite;
-static bool _offset_ground_sprites;
-
 /* The in-game coordiante system looks like this *
  *                                               *
  *                    ^ Z                        *
@@ -128,7 +125,9 @@
 
 	byte combine_sprites;
 
-	int offs_x, offs_y; // used when drawing ground sprites relative
+	ParentSpriteToDraw *foundation;                      ///< Foundation sprite.
+	ChildScreenSpriteToDraw **last_foundation_child;     ///< Tail of ChildSprite list of active foundation.
+	Point foundation_offset;                             ///< Pixeloffset of ground sprites on the foundation.
 };
 
 static ViewportDrawer *_cur_vd;
@@ -469,6 +468,33 @@
 }
 
 /**
+ * Adds a child sprite to the active foundation.
+ *
+ * The pixel offset of the sprite relative to the ParentSprite is the sum of the offset passed to OffsetGroundSprite() and extra_offs_?.
+ *
+ * @param image the image to draw.
+ * @param pal the provided palette.
+ * @param sub Only draw a part of the sprite.
+ * @param extra_offs_x Pixel X offset for the sprite position.
+ * @param extra_offs_y Pixel Y offset for the sprite position.
+ */
+static void AddChildSpriteToFoundation(SpriteID image, SpriteID pal, const SubSprite *sub, int extra_offs_x, int extra_offs_y)
+{
+	ViewportDrawer *vd = _cur_vd;
+	assert(vd->foundation != NULL);
+	Point offs = vd->foundation_offset;
+
+	/* Change the active ChildSprite list to the one of the foundation */
+	ChildScreenSpriteToDraw **old_child = vd->last_child;
+	vd->last_child = vd->last_foundation_child;
+
+	AddChildSpriteScreen(image, pal, offs.x + extra_offs_x, offs.y + extra_offs_y, false, sub);
+
+	/* Switch back to last ChildSprite list */
+	vd->last_child = old_child;
+}
+
+/**
  * Draws a ground sprite for the current tile.
  * If the current tile is drawn on top of a foundation the sprite is added as child sprite to the "foundation"-ParentSprite.
  *
@@ -478,21 +504,33 @@
  */
 void DrawGroundSprite(SpriteID image, SpriteID pal, const SubSprite *sub)
 {
-	if (_offset_ground_sprites) {
-		/* offset ground sprite because of foundation? */
-		AddChildSpriteScreen(image, pal, _cur_vd->offs_x, _cur_vd->offs_y, false, sub);
+	ViewportDrawer *vd = _cur_vd;
+	if (vd->foundation != NULL) {
+		AddChildSpriteToFoundation(image, pal, sub, 0, 0);
 	} else {
-		_added_tile_sprite = true;
 		DrawGroundSpriteAt(image, pal, _cur_ti->x, _cur_ti->y, _cur_ti->z, sub);
 	}
 }
 
 
+/**
+ * Called when a foundation has been drawn for the current tile.
+ * Successive ground sprites for the current tile will be drawn as child sprites of the "foundation"-ParentSprite, not as TileSprites.
+ *
+ * @param x sprite x-offset (screen coordinates) of ground sprites relative to the "foundation"-ParentSprite.
+ * @param y sprite y-offset (screen coordinates) of ground sprites relative to the "foundation"-ParentSprite.
+ */
 void OffsetGroundSprite(int x, int y)
 {
-	_cur_vd->offs_x = x;
-	_cur_vd->offs_y = y;
-	_offset_ground_sprites = true;
+	ViewportDrawer *vd = _cur_vd;
+	assert(vd->foundation == NULL);
+
+	/* vd->last_child == NULL if foundation sprite was clipped by the viewport bounds */
+	if (vd->last_child != NULL) vd->foundation = vd->parent_list[-1];
+
+	vd->foundation_offset.x = x;
+	vd->foundation_offset.y = y;
+	vd->last_foundation_child = vd->last_child;
 }
 
 /**
@@ -683,7 +721,10 @@
 
 	vd->spritelist_mem += sizeof(ChildScreenSpriteToDraw);
 
+	/* Append the sprite to the active ChildSprite list.
+	 * If the active ParentSprite is a foundation, update last_foundation_child as well. */
 	*vd->last_child = cs;
+	if (vd->last_foundation_child == vd->last_child) vd->last_foundation_child = &cs->next;
 	vd->last_child = &cs->next;
 
 	cs->image = image;
@@ -723,12 +764,25 @@
 }
 
 
-static void DrawSelectionSprite(SpriteID image, SpriteID pal, const TileInfo *ti)
+/**
+ * Draws sprites between ground sprite and everything above.
+ *
+ * The sprite is either drawn as TileSprite or as ChildSprite of the active foundation.
+ *
+ * @param image the image to draw.
+ * @param pal the provided palette.
+ * @param ti TileInfo Tile that is being drawn
+ * @param z_offset Z offset relative to the groundsprite. Only used for the sprite position, not for sprite sorting.
+ */
+static void DrawSelectionSprite(SpriteID image, SpriteID pal, const TileInfo *ti, int z_offset)
 {
-	if (_added_tile_sprite && !(_thd.drawstyle & HT_LINE)) { // draw on real ground
-		DrawGroundSpriteAt(image, pal, ti->x, ti->y, ti->z + 7);
-	} else { // draw on top of foundation
-		AddSortableSpriteToDraw(image, pal, ti->x, ti->y, 0x10, 0x10, 1, ti->z + 7);
+	/* FIXME: This is not totally valid for some autorail highlights, that extent over the edges of the tile. */
+	if (_cur_vd->foundation == NULL) {
+		/* draw on real ground */
+		DrawGroundSpriteAt(image, pal, ti->x, ti->y, ti->z + z_offset);
+	} else {
+		/* draw on top of foundation */
+		AddChildSpriteToFoundation(image, pal, NULL, 0, -z_offset);
 	}
 }
 
@@ -740,7 +794,7 @@
  */
 static void DrawTileSelectionRect(const TileInfo *ti, SpriteID pal)
 {
-	DrawSelectionSprite(SPR_SELECT_TILE + _tileh_to_sprite[ti->tileh], pal, ti);
+	DrawSelectionSprite(SPR_SELECT_TILE + _tileh_to_sprite[ti->tileh], pal, ti, 7);
 }
 
 static bool IsPartOfAutoLine(int px, int py)
@@ -796,7 +850,7 @@
 		pal = PALETTE_SEL_TILE_RED;
 	}
 
-	DrawSelectionSprite(image, _thd.make_square_red ? PALETTE_SEL_TILE_RED : pal, ti);
+	DrawSelectionSprite(image, _thd.make_square_red ? PALETTE_SEL_TILE_RED : pal, ti, 7);
 }
 
 /**
@@ -821,12 +875,12 @@
 			DrawTileSelectionRect(ti, _thd.make_square_red ? PALETTE_SEL_TILE_RED : PAL_NONE);
 		} else if (_thd.drawstyle & HT_POINT) {
 			/* Figure out the Z coordinate for the single dot. */
-			byte z = ti->z;
+			byte z = 0;
 			if (ti->tileh & SLOPE_N) {
 				z += TILE_HEIGHT;
 				if (ti->tileh == SLOPE_STEEP_N) z += TILE_HEIGHT;
 			}
-			DrawGroundSpriteAt(_cur_dpi->zoom <= ZOOM_LVL_DETAIL ? SPR_DOT : SPR_DOT_SMALL, PAL_NONE, ti->x, ti->y, z);
+			DrawSelectionSprite(_cur_dpi->zoom <= ZOOM_LVL_DETAIL ? SPR_DOT : SPR_DOT_SMALL, PAL_NONE, ti, z);
 		} else if (_thd.drawstyle & HT_RAIL /*&& _thd.place_mode == VHM_RAIL*/) {
 			/* autorail highlight piece under cursor */
 			uint type = _thd.drawstyle & 0xF;
@@ -913,8 +967,8 @@
 			y_cur += 0x10;
 			x_cur -= 0x10;
 
-			_added_tile_sprite = false;
-			_offset_ground_sprites = false;
+			vd->foundation = NULL;
+			vd->last_foundation_child = NULL;
 
 			_tile_type_procs[tt]->draw_tile_proc(&ti);
 			DrawTileSelection(&ti);
--- a/src/water_cmd.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/water_cmd.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -31,20 +31,21 @@
 #include "newgrf_canal.h"
 #include "misc/autoptr.hpp"
 
+/** Array for the shore sprites */
 static const SpriteID _water_shore_sprites[] = {
 	0,
-	SPR_SHORE_TILEH_1,
-	SPR_SHORE_TILEH_2,
-	SPR_SHORE_TILEH_3,
-	SPR_SHORE_TILEH_4,
+	SPR_SHORE_TILEH_1,  // SLOPE_W
+	SPR_SHORE_TILEH_2,  // SLOPE_S
+	SPR_SHORE_TILEH_3,  // SLOPE_SW
+	SPR_SHORE_TILEH_4,  // SLOPE_E
 	0,
-	SPR_SHORE_TILEH_6,
+	SPR_SHORE_TILEH_6,  // SLOPE_SE
 	0,
-	SPR_SHORE_TILEH_8,
-	SPR_SHORE_TILEH_9,
+	SPR_SHORE_TILEH_8,  // SLOPE_N
+	SPR_SHORE_TILEH_9,  // SLOPE_NW
 	0,
 	0,
-	SPR_SHORE_TILEH_12,
+	SPR_SHORE_TILEH_12, // SLOPE_NE
 	0,
 	0
 };
@@ -71,7 +72,7 @@
 
 	tile2 = tile + (axis == AXIS_X ? TileDiffXY(1, 0) : TileDiffXY(0, 1));
 
-	if (!IsClearWaterTile(tile) || !IsClearWaterTile(tile2))
+	if (!IsWaterTile(tile) || !IsWaterTile(tile2))
 		return_cmd_error(STR_3801_MUST_BE_BUILT_ON_WATER);
 
 	if (IsBridgeAbove(tile) || IsBridgeAbove(tile2)) return_cmd_error(STR_5007_MUST_DEMOLISH_BRIDGE_FIRST);
@@ -104,11 +105,11 @@
 
 	if (!IsShipDepot(tile)) return CMD_ERROR;
 	if (!CheckTileOwnership(tile)) return CMD_ERROR;
-	if (!EnsureNoVehicle(tile)) return CMD_ERROR;
+	if (!EnsureNoVehicleOnGround(tile)) return CMD_ERROR;
 
 	tile2 = GetOtherShipDepotTile(tile);
 
-	if (!EnsureNoVehicle(tile2)) return CMD_ERROR;
+	if (!EnsureNoVehicleOnGround(tile2)) return CMD_ERROR;
 
 	if (flags & DC_EXEC) {
 		/* Kill the depot, which is registered at the northernmost tile. Use that one */
@@ -171,7 +172,7 @@
 	if (!CheckTileOwnership(tile) && GetTileOwner(tile) != OWNER_NONE) return CMD_ERROR;
 
 	/* make sure no vehicle is on the tile. */
-	if (!EnsureNoVehicle(tile) || !EnsureNoVehicle(tile + delta) || !EnsureNoVehicle(tile - delta))
+	if (!EnsureNoVehicleOnGround(tile) || !EnsureNoVehicleOnGround(tile + delta) || !EnsureNoVehicleOnGround(tile - delta))
 		return CMD_ERROR;
 
 	if (flags & DC_EXEC) {
@@ -302,7 +303,7 @@
 			}
 
 			/* Make sure no vehicle is on the tile */
-			if (!EnsureNoVehicle(tile)) return CMD_ERROR;
+			if (!EnsureNoVehicleOnGround(tile)) return CMD_ERROR;
 
 			if (GetTileOwner(tile) != OWNER_WATER && GetTileOwner(tile) != OWNER_NONE && !CheckTileOwnership(tile)) return CMD_ERROR;
 
@@ -313,7 +314,7 @@
 			Slope slope = GetTileSlope(tile, NULL);
 
 			/* Make sure no vehicle is on the tile */
-			if (!EnsureNoVehicle(tile)) return CMD_ERROR;
+			if (!EnsureNoVehicleOnGround(tile)) return CMD_ERROR;
 
 			if (flags & DC_EXEC) DoClearSquare(tile);
 			if (slope == SLOPE_N || slope == SLOPE_E || slope == SLOPE_S || slope == SLOPE_W) {
@@ -457,7 +458,7 @@
 	switch (GetWaterTileType(ti->tile)) {
 		case WATER_TILE_CLEAR:
 			DrawGroundSprite(SPR_FLAT_WATER_TILE, PAL_NONE);
-			if (ti->z != 0 || !IsTileOwner(ti->tile, OWNER_WATER)) DrawCanalWater(ti->tile);
+			if (IsCanal(ti->tile)) DrawCanalWater(ti->tile);
 			DrawBridgeMiddle(ti);
 			break;
 
@@ -517,7 +518,7 @@
 {
 	switch (GetWaterTileType(tile)) {
 		case WATER_TILE_CLEAR:
-			if (TilePixelHeight(tile) == 0 || IsTileOwner(tile, OWNER_WATER)) {
+			if (!IsCanal(tile)) {
 				td->str = STR_3804_WATER;
 			} else {
 				td->str = STR_LANDINFO_CANAL;
@@ -708,7 +709,12 @@
 	}
 }
 
-/** called from tunnelbridge_cmd, and by TileLoop_Industry() */
+/**
+ * Let a water tile floods its diagonal adjoining tiles
+ * called from tunnelbridge_cmd, and by TileLoop_Industry()
+ *
+ * @param tile the water/shore tile that floods
+ */
 void TileLoop_Water(TileIndex tile)
 {
 	static const TileIndexDiffC _tile_loop_offs_array[][5] = {
@@ -719,9 +725,12 @@
 		{{ 0, -1}, {0, 0}, {1, 0}, { 0, -1}, { 1, -1}}
 	};
 
-	/* Ensure sea-level canals and buoys on canal borders do not flood */
-	if ((IsTileType(tile, MP_WATER) || IsBuoyTile(tile)) && !IsTileOwner(tile, OWNER_WATER)) return;
+	/* Ensure buoys on canal borders do not flood */
+	if (IsCanalBuoyTile(tile)) return;
+	/* Ensure only sea and coast floods, not canals or rivers */
+	if (IsTileType(tile, MP_WATER) && !(IsSea(tile) || IsCoast(tile))) return;
 
+	/* floods in all four diagonal directions with the exception of the edges */
 	if (IS_INT_INSIDE(TileX(tile), 1, MapSizeX() - 3 + 1) &&
 			IS_INT_INSIDE(TileY(tile), 1, MapSizeY() - 3 + 1)) {
 		uint i;
@@ -730,6 +739,7 @@
 			TileLoopWaterHelper(tile, _tile_loop_offs_array[i]);
 		}
 	}
+
 	/* _current_player can be changed by TileLoopWaterHelper.. reset it back here */
 	_current_player = OWNER_NONE;
 
@@ -807,7 +817,7 @@
 static CommandCost TerraformTile_Water(TileIndex tile, uint32 flags, uint z_new, Slope tileh_new)
 {
 	/* Canals can't be terraformed */
-	if (IsClearWaterTile(tile) && IsCanal(tile)) return_cmd_error(STR_MUST_DEMOLISH_CANAL_FIRST);
+	if (IsWaterTile(tile) && IsCanal(tile)) return_cmd_error(STR_MUST_DEMOLISH_CANAL_FIRST);
 
 	return DoCommand(tile, 0, 0, flags, CMD_LANDSCAPE_CLEAR);
 }
--- a/src/water_map.h	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/water_map.h	Sat Oct 20 10:42:28 2007 +0000
@@ -27,6 +27,8 @@
 
 static inline WaterTileType GetWaterTileType(TileIndex t)
 {
+	assert(IsTileType(t, MP_WATER));
+
 	if (_m[t].m5 == 0) return WATER_TILE_CLEAR;
 	if (_m[t].m5 == 1) return WATER_TILE_COAST;
 	if (IS_INT_INSIDE(_m[t].m5, LOCK_MIDDLE, LOCK_END)) return WATER_TILE_LOCK;
@@ -35,11 +37,19 @@
 	return WATER_TILE_DEPOT;
 }
 
+/** IsWater return true if any type of clear water like ocean, river, canal */
 static inline bool IsWater(TileIndex t)
 {
 	return GetWaterTileType(t) == WATER_TILE_CLEAR;
 }
 
+static inline bool IsSea(TileIndex t)
+{
+	if (GetWaterTileType(t) != WATER_TILE_CLEAR) return false;
+	if (!IsTileOwner(t, OWNER_WATER)) return false; // 'Human' built water = canal, not sea
+	return true;
+}
+
 static inline bool IsCoast(TileIndex t)
 {
 	return GetWaterTileType(t) == WATER_TILE_COAST;
@@ -50,9 +60,9 @@
 	return GetWaterTileType(t) == WATER_TILE_CLEAR && GetTileOwner(t) != OWNER_WATER;
 }
 
-static inline bool IsClearWaterTile(TileIndex t)
+static inline bool IsWaterTile(TileIndex t)
 {
-	return IsTileType(t, MP_WATER) && IsWater(t) && GetTileSlope(t, NULL) == SLOPE_FLAT;
+	return IsTileType(t, MP_WATER) && IsWater(t);
 }
 
 static inline TileIndex GetOtherShipDepotTile(TileIndex t)
@@ -109,6 +119,7 @@
 
 static inline void MakeCanal(TileIndex t, Owner o)
 {
+	assert(o != OWNER_WATER);
 	SetTileType(t, MP_WATER);
 	SetTileOwner(t, o);
 	_m[t].m2 = 0;
--- a/src/waypoint.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/waypoint.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -175,7 +175,7 @@
 	}
 
 	if (!CheckTileOwnership(tile)) return CMD_ERROR;
-	if (!EnsureNoVehicle(tile)) return CMD_ERROR;
+	if (!EnsureNoVehicleOnGround(tile)) return CMD_ERROR;
 
 	tileh = GetTileSlope(tile, NULL);
 	if (tileh != SLOPE_FLAT &&
@@ -197,7 +197,20 @@
 		wp->string = STR_NULL;
 		wp->town_cn = 0;
 	} else if (flags & DC_EXEC) {
-		/* move existing (recently deleted) waypoint to the new location */
+		/* Move existing (recently deleted) waypoint to the new location */
+
+		/* First we update the destination for all vehicles that
+		 * have the old waypoint in their orders. */
+		Vehicle *v;
+		FOR_ALL_VEHICLES(v) {
+			if (v->type == VEH_TRAIN &&
+					v->First() == v &&
+					v->current_order.type == OT_GOTO_WAYPOINT &&
+					v->dest_tile == wp->xy) {
+				v->dest_tile = tile;
+			}
+		}
+
 		RedrawWaypointSign(wp);
 		wp->xy = tile;
 	}
@@ -263,7 +276,7 @@
 	if (!IsTileType(tile, MP_RAILWAY) ||
 			!IsRailWaypoint(tile) ||
 			(!CheckTileOwnership(tile) && _current_player != OWNER_WATER) ||
-			!EnsureNoVehicle(tile)) {
+			!EnsureNoVehicleOnGround(tile)) {
 		return CMD_ERROR;
 	}
 
--- a/src/window.cpp	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/window.cpp	Sat Oct 20 10:42:28 2007 +0000
@@ -843,23 +843,35 @@
 	}
 }
 
+/**
+ * Set the x and y coordinates of a new window.
+ *
+ * @param *desc         The pointer to the WindowDesc to be created
+ * @param window_number the window number of the new window
+ * @param data          arbitrary data that is send with the WE_CREATE message
+ *
+ * @return see Window pointer of the newly created window
+ */
 static Window *LocalAllocateWindowDesc(const WindowDesc *desc, int window_number, void *data)
 {
 	Point pt;
 	Window *w;
 
 	/* By default position a child window at an offset of 10/10 of its parent.
+	 * With the exception of WC_BUILD_TOOLBAR (build railway/roads/ship docks/airports)
+	 * and WC_SCEN_LAND_GEN (landscaping). Whose child window has an offset of 0/36 of
+	 * its parent. So it's exactly under the parent toolbar and no buttons will be covered.
 	 * However if it falls too extremely outside window positions, reposition
 	 * it to an automatic place */
 	if (desc->parent_cls != 0 /* WC_MAIN_WINDOW */ &&
 			(w = FindWindowById(desc->parent_cls, window_number)) != NULL &&
 			w->left < _screen.width - 20 && w->left > -60 && w->top < _screen.height - 20) {
 
-		pt.x = w->left + 10;
+		pt.x = w->left + ((desc->parent_cls == WC_BUILD_TOOLBAR || desc->parent_cls == WC_SCEN_LAND_GEN) ? 0 : 10);
 		if (pt.x > _screen.width + 10 - desc->default_width) {
 			pt.x = (_screen.width + 10 - desc->default_width) - 20;
 		}
-		pt.y = w->top + 10;
+		pt.y = w->top + ((desc->parent_cls == WC_BUILD_TOOLBAR || desc->parent_cls == WC_SCEN_LAND_GEN) ? 36 : 10);
 	} else {
 		switch (desc->left) {
 			case WDP_ALIGN_TBR: { /* Align the right side with the top toolbar */
@@ -1454,6 +1466,13 @@
 
 	w = FindWindowFromPt(_cursor.pos.x, _cursor.pos.y);
 
+	if (WP(w, vp_d).follow_vehicle != INVALID_VEHICLE && w == FindWindowById(WC_MAIN_WINDOW, 0)) {
+		/* If the main window is following a vehicle, then first let go of it! */
+		const Vehicle *veh = GetVehicle(WP(w, vp_d).follow_vehicle);
+		ScrollMainWindowTo(veh->x_pos, veh->y_pos, true); /* This also resets follow_vehicle */
+		return true;
+	}
+
 	if (!(_right_button_down || scrollwheel_scrolling) || w == NULL) {
 		_cursor.fix_at = false;
 		_scrolling_viewport = false;
--- a/src/window.h	Sat Oct 20 10:14:05 2007 +0000
+++ b/src/window.h	Sat Oct 20 10:42:28 2007 +0000
@@ -390,9 +390,10 @@
 };
 assert_compile(WINDOW_CUSTOM_SIZE >= sizeof(smallmap_d));
 
+/* player face selection window */
 struct facesel_d {
-	uint32 face;
-	byte gender;
+	PlayerFace face; // player face bits
+	bool advanced;   // advance player face selection window
 };
 assert_compile(WINDOW_CUSTOM_SIZE >= sizeof(facesel_d));