(svn r8731) [cpp_gui] -Sync: r8730 from trunk cpp_gui
authorbjarni
Wed, 14 Feb 2007 10:46:38 +0000
branchcpp_gui
changeset 6253 23983700e3d7
parent 6252 ca57ad0b45ea
child 6254 abc6ad7c035c
(svn r8731) [cpp_gui] -Sync: r8730 from trunk
src/aircraft_cmd.cpp
src/airport.h
src/airport_movement.h
src/economy.cpp
src/lang/bulgarian.txt
src/lang/catalan.txt
src/lang/czech.txt
src/lang/dutch.txt
src/lang/finnish.txt
src/lang/french.txt
src/lang/icelandic.txt
src/lang/italian.txt
src/lang/lithuanian.txt
src/lang/portuguese.txt
src/lang/slovak.txt
src/lang/spanish.txt
src/lang/swedish.txt
src/lang/traditional_chinese.txt
src/lang/ukrainian.txt
src/lang/unfinished/afrikaans.txt
src/macros.h
src/music/dmusic.cpp
src/music/dmusic.h
src/music/null_m.h
src/music/win32_m.h
src/oldloader.cpp
src/openttd.cpp
src/openttd.h
src/order_gui.cpp
src/rail.h
src/rail_cmd.cpp
src/road.h
src/road_cmd.cpp
src/roadveh_cmd.cpp
src/saveload.cpp
src/settings.cpp
src/ship_cmd.cpp
src/sound/null_s.cpp
src/sound/null_s.h
src/sound/sdl_s.cpp
src/sound/sdl_s.h
src/sound/win32_s.cpp
src/station.cpp
src/station.h
src/station_cmd.cpp
src/strings.cpp
src/table/roadveh.h
src/train_cmd.cpp
src/train_gui.cpp
src/tunnelbridge_cmd.cpp
src/vehicle.cpp
src/vehicle.h
src/video/dedicated_v.h
src/video/null_v.h
src/video/sdl_v.cpp
src/video/sdl_v.h
src/video/win32_v.h
src/water_cmd.cpp
src/yapf/follow_track.hpp
--- a/src/aircraft_cmd.cpp	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/aircraft_cmd.cpp	Wed Feb 14 10:46:38 2007 +0000
@@ -558,7 +558,7 @@
 		StationID next_airport_index = v->u.air.targetairport;
 		const Station *st = GetStation(next_airport_index);
 		/* If the station is not a valid airport or if it has no hangars */
-		if (!IsValidStation(st) || st->airport_tile == 0 || GetAirport(st->airport_type)->nof_depots == 0) {
+		if (!st->IsValid() || st->airport_tile == 0 || GetAirport(st->airport_type)->nof_depots == 0) {
 			StationID station;
 
 			// the aircraft has to search for a hangar on its own
@@ -695,7 +695,7 @@
 
 	st = GetStation(v->current_order.dest);
 	// only goto depot if the target airport has terminals (eg. it is airport)
-	if (IsValidStation(st) && st->airport_tile != 0 && GetAirport(st->airport_type)->terminals != NULL) {
+	if (st->IsValid() && st->airport_tile != 0 && GetAirport(st->airport_type)->terminals != NULL) {
 //		printf("targetairport = %d, st->index = %d\n", v->u.air.targetairport, st->index);
 //		v->u.air.targetairport = st->index;
 		v->current_order.type = OT_GOTO_DEPOT;
--- a/src/airport.h	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/airport.h	Wed Feb 14 10:46:38 2007 +0000
@@ -77,7 +77,7 @@
 
 /* Movement Blocks on Airports */
 // blocks (eg_airport_flags)
-enum {
+static const uint64
 	TERM1_block              = 1 <<  0,
 	TERM2_block              = 1 <<  1,
 	TERM3_block              = 1 <<  2,
@@ -119,8 +119,7 @@
 	OUT_WAY_block2           = 1 << 31,
 // end of new blocks
 
-	NOTHING_block            = 1 << 30
-};
+	NOTHING_block            = 1 << 30;
 
 typedef struct AirportMovingData {
 	int16 x;
--- a/src/airport_movement.h	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/airport_movement.h	Wed Feb 14 10:46:38 2007 +0000
@@ -9,7 +9,7 @@
 typedef struct AirportFTAbuildup {
 	byte position; // the position that an airplane is at
 	byte heading;  // the current orders (eg. TAKEOFF, HANGAR, ENDLANDING, etc.)
-	uint32 block;  // the block this position is on on the airport (st->airport_flags)
+	uint64 block;  // the block this position is on on the airport (st->airport_flags)
 	byte next;     // next position from this position
 } AirportFTAbuildup;
 
--- a/src/economy.cpp	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/economy.cpp	Wed Feb 14 10:46:38 2007 +0000
@@ -1519,7 +1519,7 @@
 
 	if (v->type == VEH_Train) {
 		// Each platform tile is worth 2 rail vehicles.
-		int overhang = v->u.rail.cached_total_length - GetStationPlatforms(st, v->tile) * TILE_SIZE;
+		int overhang = v->u.rail.cached_total_length - st->GetPlatformLength(v->tile) * TILE_SIZE;
 		if (overhang > 0) {
 			unloading_time <<= 1;
 			unloading_time += (overhang * unloading_time) / 8;
--- a/src/lang/bulgarian.txt	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/lang/bulgarian.txt	Wed Feb 14 10:46:38 2007 +0000
@@ -1819,7 +1819,6 @@
 STR_4800_IN_THE_WAY                                             :{WHITE}{STRING} пречи
 STR_4801                                                        :{WHITE}{INDUSTRY}
 STR_4802_COAL_MINE                                              :Мина за въглища
-STR_4803_POWER_STATION                                          :
 STR_4804_SAWMILL                                                :Дъскорезница
 STR_4805_FOREST                                                 :Гора
 STR_4806_OIL_REFINERY                                           :Нефтена рафинерия
--- a/src/lang/catalan.txt	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/lang/catalan.txt	Wed Feb 14 10:46:38 2007 +0000
@@ -1469,7 +1469,7 @@
 STR_NETWORK_CLIENT                                              :Client
 STR_NETWORK_SPECTATORS                                          :Espectadors
 
-STR_NETWORK_CLIENTLIST_NONE                                     :
+STR_NETWORK_CLIENTLIST_NONE                                     :(cap)
 STR_NETWORK_CLIENTLIST_KICK                                     :Breu
 STR_NETWORK_CLIENTLIST_GIVE_MONEY                               :Entrega diners
 STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL                             :Parla a tothom
--- a/src/lang/czech.txt	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/lang/czech.txt	Wed Feb 14 10:46:38 2007 +0000
@@ -2,7 +2,7 @@
 ##ownname Česky
 ##isocode cs_CS
 ##plural 6
-##case nom gen acc dat voc loc ins big news subs
+##case nom gen dat acc voc loc ins big
 ##gender m f n
 
 ##id 0x0000
@@ -24,146 +24,90 @@
 STR_000F_PASSENGERS                                             :cestující
 STR_000F_PASSENGERS.big                                         :Cestující
 STR_000F_PASSENGERS.gen                                         :cestujících
-STR_000F_PASSENGERS.news                                        :cestujících
-STR_000F_PASSENGERS.subs                                        :Cestující
 STR_0010_COAL                                                   :uhlí
 STR_0010_COAL.big                                               :Uhlí
-STR_0010_COAL.subs                                              :Uhlí
 STR_0011_MAIL                                                   :pošta
 STR_0011_MAIL.big                                               :Pošta
 STR_0011_MAIL.gen                                               :pošty
-STR_0011_MAIL.news                                              :pošty
-STR_0011_MAIL.subs                                              :Pošta
 STR_0012_OIL                                                    :ropa
 STR_0012_OIL.big                                                :Ropa
 STR_0012_OIL.gen                                                :ropy
-STR_0012_OIL.news                                               :ropy
-STR_0012_OIL.subs                                               :Ropa
 STR_0013_LIVESTOCK                                              :dobytek
 STR_0013_LIVESTOCK.big                                          :Dobytek
 STR_0013_LIVESTOCK.gen                                          :dobytka
-STR_0013_LIVESTOCK.news                                         :dobytka
-STR_0013_LIVESTOCK.subs                                         :Dobytek
 STR_0014_GOODS                                                  :zboží
 STR_0014_GOODS.big                                              :Zboží
-STR_0014_GOODS.subs                                             :Zboží
 STR_0015_GRAIN                                                  :zrní
 STR_0015_GRAIN.big                                              :Zrní
-STR_0015_GRAIN.subs                                             :Zrní
 STR_0016_WOOD                                                   :dřevo
 STR_0016_WOOD.big                                               :Dřevo
 STR_0016_WOOD.gen                                               :dřeva
-STR_0016_WOOD.news                                              :dreva
-STR_0016_WOOD.subs                                              :Drevo
 STR_0017_IRON_ORE                                               :železná ruda
 STR_0017_IRON_ORE.big                                           :Železná ruda
 STR_0017_IRON_ORE.gen                                           :železné rudy
-STR_0017_IRON_ORE.news                                          :železné rudy
-STR_0017_IRON_ORE.subs                                          :Železná ruda
 STR_0018_STEEL                                                  :ocel
 STR_0018_STEEL.big                                              :Ocel
 STR_0018_STEEL.gen                                              :oceli
-STR_0018_STEEL.news                                             :oceli
-STR_0018_STEEL.subs                                             :Ocel
 STR_0019_VALUABLES                                              :ceniny
 STR_0019_VALUABLES.big                                          :Ceniny
 STR_0019_VALUABLES.gen                                          :cenin
-STR_0019_VALUABLES.news                                         :cenin
-STR_0019_VALUABLES.subs                                         :Ceniny
 STR_001A_COPPER_ORE                                             :měděná ruda
 STR_001A_COPPER_ORE.big                                         :Měděná ruda
 STR_001A_COPPER_ORE.gen                                         :měděné rudy
-STR_001A_COPPER_ORE.news                                        :medene rudy
-STR_001A_COPPER_ORE.subs                                        :Medena ruda
 STR_001B_MAIZE                                                  :kukuřice
 STR_001B_MAIZE.big                                              :Kukuřice
-STR_001B_MAIZE.subs                                             :Kukurice
 STR_001C_FRUIT                                                  :ovoce
 STR_001C_FRUIT.big                                              :Ovoce
-STR_001C_FRUIT.subs                                             :Ovoce
 STR_001D_DIAMONDS                                               :diamanty
 STR_001D_DIAMONDS.big                                           :Diamanty
 STR_001D_DIAMONDS.gen                                           :diamantů
-STR_001D_DIAMONDS.news                                          :diamantu
-STR_001D_DIAMONDS.subs                                          :Diamanty
 STR_001E_FOOD                                                   :jídlo
 STR_001E_FOOD.big                                               :Jídlo
 STR_001E_FOOD.gen                                               :jídlo
-STR_001E_FOOD.news                                              :jídlo
-STR_001E_FOOD.subs                                              :Jídlo
 STR_001F_PAPER                                                  :papír
 STR_001F_PAPER.big                                              :Papír
 STR_001F_PAPER.gen                                              :papíru
-STR_001F_PAPER.news                                             :papíru
-STR_001F_PAPER.subs                                             :Papír
 STR_0020_GOLD                                                   :zlato
 STR_0020_GOLD.big                                               :Zlato
 STR_0020_GOLD.gen                                               :zlata
-STR_0020_GOLD.news                                              :zlata
-STR_0020_GOLD.subs                                              :Zlato
 STR_0021_WATER                                                  :voda
 STR_0021_WATER.big                                              :Voda
 STR_0021_WATER.gen                                              :vody
-STR_0021_WATER.news                                             :vody
-STR_0021_WATER.subs                                             :Voda
 STR_0022_WHEAT                                                  :pšenice
 STR_0022_WHEAT.big                                              :Pšenice
-STR_0022_WHEAT.subs                                             :Pšenice
 STR_0023_RUBBER                                                 :kaučuk
 STR_0023_RUBBER.big                                             :Kaučuk
 STR_0023_RUBBER.gen                                             :kaučuku
-STR_0023_RUBBER.news                                            :kaucuku
-STR_0023_RUBBER.subs                                            :Kaucuk
 STR_0024_SUGAR                                                  :cukr
 STR_0024_SUGAR.big                                              :Cukr
 STR_0024_SUGAR.gen                                              :cukru
-STR_0024_SUGAR.news                                             :cukru
-STR_0024_SUGAR.subs                                             :Cukr
 STR_0025_TOYS                                                   :hračky
 STR_0025_TOYS.big                                               :Hračky
 STR_0025_TOYS.gen                                               :hraček
-STR_0025_TOYS.news                                              :hracek
-STR_0025_TOYS.subs                                              :Hracky
 STR_0026_CANDY                                                  :bonbony
 STR_0026_CANDY.big                                              :Bonbony
 STR_0026_CANDY.gen                                              :bonbonů
-STR_0026_CANDY.news                                             :bonbonu
-STR_0026_CANDY.subs                                             :Bonbony
 STR_0027_COLA                                                   :kola
 STR_0027_COLA.big                                               :Kola
 STR_0027_COLA.gen                                               :koly
-STR_0027_COLA.news                                              :coly
-STR_0027_COLA.subs                                              :Cola
 STR_0028_COTTON_CANDY                                           :cukrová vata
 STR_0028_COTTON_CANDY.big                                       :Cukrová vata
 STR_0028_COTTON_CANDY.gen                                       :cukrové vaty
-STR_0028_COTTON_CANDY.news                                      :cukrové vaty
-STR_0028_COTTON_CANDY.subs                                      :Cukrová vata
 STR_0029_BUBBLES                                                :bubliny
 STR_0029_BUBBLES.big                                            :Bubliny
 STR_0029_BUBBLES.gen                                            :bublin
-STR_0029_BUBBLES.news                                           :bublin
-STR_0029_BUBBLES.subs                                           :Bubliny
 STR_002A_TOFFEE                                                 :karamel
 STR_002A_TOFFEE.big                                             :Karamel
 STR_002A_TOFFEE.gen                                             :karamelu
-STR_002A_TOFFEE.news                                            :karamelu
-STR_002A_TOFFEE.subs                                            :Karamel
 STR_002B_BATTERIES                                              :baterie
 STR_002B_BATTERIES.big                                          :Baterie
 STR_002B_BATTERIES.gen                                          :baterií
-STR_002B_BATTERIES.news                                         :baterií
-STR_002B_BATTERIES.subs                                         :Baterie
 STR_002C_PLASTIC                                                :plast
 STR_002C_PLASTIC.big                                            :Plast
 STR_002C_PLASTIC.gen                                            :plastu
-STR_002C_PLASTIC.news                                           :plastu
-STR_002C_PLASTIC.subs                                           :Plast
 STR_002D_FIZZY_DRINKS                                           :limonáda
 STR_002D_FIZZY_DRINKS.big                                       :Limonáda
 STR_002D_FIZZY_DRINKS.gen                                       :limonád
-STR_002D_FIZZY_DRINKS.news                                      :limonád
-STR_002D_FIZZY_DRINKS.subs                                      :Limonáda
 STR_002E                                                        :
 STR_002F_PASSENGER                                              :cestujících
 STR_0030_COAL                                                   :uhlí
@@ -2590,16 +2534,16 @@
 STR_80FE_GURU_X2_HELICOPTER                                     :Vrtulník Guru X2
 STR_80FF_POWERNAUT_HELICOPTER                                   :Vrtulník Powernaut
 STR_8100_MESSAGE_FROM_VEHICLE_MANUFACTURE                       :{WHITE}Zpráva od výrobce dopravních prostředků
-STR_8101_WE_HAVE_JUST_DESIGNED_A                                :{GOLD}Právě jsme vyvinuli nov{G ý ou é} {STRING.dat}. Měl byste zájem o roční výhradní právo na používání tohoto prostředku, aby byl otestován před uvedením na trh?
+STR_8101_WE_HAVE_JUST_DESIGNED_A                                :{GOLD}Právě jsme vyvinuli nov{G ý ou é} {STRING.acc}. Měl byste zájem o roční výhradní právo na používání tohoto prostředku, aby byl otestován před uvedením na trh?
 STR_8102_RAILROAD_LOCOMOTIVE                                    :{G=f}lokomotiva
-STR_8102_RAILROAD_LOCOMOTIVE.dat                                :{G=f}lokomotivu
+STR_8102_RAILROAD_LOCOMOTIVE.acc                                :{G=f}lokomotivu
 STR_8103_ROAD_VEHICLE                                           :{G=n}silniční vozidlo
 STR_8104_AIRCRAFT                                               :{G=n}letadlo
 STR_8105_SHIP                                                   :{G=f}loď
 STR_8106_MONORAIL_LOCOMOTIVE                                    :{G=f}lokomotiva pro monorail
-STR_8106_MONORAIL_LOCOMOTIVE.dat                                :{G=f}lokomotivu pro monorail
+STR_8106_MONORAIL_LOCOMOTIVE.acc                                :{G=f}lokomotivu pro monorail
 STR_8107_MAGLEV_LOCOMOTIVE                                      :{G=f}lokomotiva Maglev
-STR_8107_MAGLEV_LOCOMOTIVE.dat                                  :{G=f}lokomotivu Maglev
+STR_8107_MAGLEV_LOCOMOTIVE.acc                                  :{G=f}lokomotivu Maglev
 
 ##id 0x8800
 STR_8800_TRAIN_DEPOT                                            :{WHITE}Železniční depo {TOWN}
--- a/src/lang/dutch.txt	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/lang/dutch.txt	Wed Feb 14 10:46:38 2007 +0000
@@ -382,9 +382,6 @@
 STR_SORT_BY_MAX_SPEED                                           :Maximale snelheid
 STR_SORT_BY_MODEL                                               :Model
 STR_SORT_BY_VALUE                                               :Waarde
-STR_SORT_BY_FACILITY                                            :
-STR_SORT_BY_WAITING                                             :
-STR_SORT_BY_RATING_MAX                                          :
 STR_ENGINE_SORT_ENGINE_ID                                       :Motor ID (klassieke soort)
 STR_ENGINE_SORT_COST                                            :Kosten
 STR_ENGINE_SORT_POWER                                           :Kracht
--- a/src/lang/finnish.txt	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/lang/finnish.txt	Wed Feb 14 10:46:38 2007 +0000
@@ -2187,7 +2187,6 @@
 STR_707F_HAS_BEEN_TAKEN_OVER_BY                                 :{BLACK}{BIGFONT}Yhtiön {COMPANY} on ottanut haltuun {COMPANY}!
 STR_7080_PROTECTED                                              :{WHITE}Tällä yhtiöllä ei ole vielä osakkeita...
 
-STR_LIVERY_DEFAULT                                              :
 STR_LIVERY_STEAM                                                :Höyryveturi
 STR_LIVERY_DIESEL                                               :Dieselveturi
 STR_LIVERY_ELECTRIC                                             :Sähköveturi
--- a/src/lang/french.txt	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/lang/french.txt	Wed Feb 14 10:46:38 2007 +0000
@@ -617,12 +617,12 @@
 STR_021F                                                        :{BLUE}{COMMA}
 STR_0221_OPENTTD                                                :{YELLOW}OpenTTD
 STR_0222_SCENARIO_EDITOR                                        :{YELLOW}Éditeur de Scénario
-STR_0223_LAND_GENERATION                                        :{WHITE}Génération de terrain
+STR_0223_LAND_GENERATION                                        :{WHITE}Création du terrain
 STR_0224                                                        :{BLACK}{UPARROW}
 STR_0225                                                        :{BLACK}{DOWNARROW}
 STR_0228_INCREASE_SIZE_OF_LAND_AREA                             :{BLACK}Augmenter la quantité de terre à modifier
 STR_0229_DECREASE_SIZE_OF_LAND_AREA                             :{BLACK}Diminuer la quantité de terre à modifier
-STR_022A_GENERATE_RANDOM_LAND                                   :{BLACK}Générer une terre aléatoire
+STR_022A_GENERATE_RANDOM_LAND                                   :{BLACK}Créer un monde aléatoire
 STR_022B_RESET_LANDSCAPE                                        :{BLACK}Réinitialiser le terrain
 STR_022C_RESET_LANDSCAPE                                        :{WHITE}Réinitialiser le terrain
 STR_RESET_LANDSCAPE_TOOLTIP                                     :{BLACK}Ôter toutes les propriétés des joueurs de la carte
@@ -643,7 +643,7 @@
 STR_NO_SPACE_FOR_TOWN                                           :{WHITE}...Il n'y a plus d'emplacement sur la carte
 STR_023B_INCREASE_SIZE_OF_TOWN                                  :{BLACK}Augmenter la taille de la ville
 STR_023C_EXPAND                                                 :{BLACK}Agrandir
-STR_023D_RANDOM_TOWN                                            :{BLACK}Générer une ville
+STR_023D_RANDOM_TOWN                                            :{BLACK}Créer une ville
 STR_023E_BUILD_TOWN_IN_RANDOM_LOCATION                          :{BLACK}Construire une ville à un emplacement aléatoire
 STR_023F_INDUSTRY_GENERATION                                    :{WHITE}Créer les industries
 STR_0240_COAL_MINE                                              :{BLACK}Mine de Charbon
@@ -720,7 +720,7 @@
 STR_0287_ONLY_ONE_ALLOWED_PER_TOWN                              :{WHITE}...Droit à un par ville seulement
 STR_0288_PLANT_TREES                                            :{BLACK}Semer des arbres
 STR_0289_PLACE_SIGN                                             :{BLACK}Placer un panneau
-STR_028A_RANDOM_TREES                                           :{BLACK}Générer des arbres
+STR_028A_RANDOM_TREES                                           :{BLACK}Ajouter des arbres aléatoires
 STR_028B_PLANT_TREES_RANDOMLY_OVER                              :{BLACK}Semer des arbres sur l'ensemble du terrain de façon aléatoire
 STR_028C_PLACE_ROCKY_AREAS_ON_LANDSCAPE                         :{BLACK}Placer des endroits rocheux sur le terrain
 STR_028D_PLACE_LIGHTHOUSE                                       :{BLACK}Placer un Phare
@@ -788,7 +788,7 @@
 ############ range for menu starts
 STR_02D5_LAND_BLOCK_INFO                                        :Outil d'Inspection
 STR_02D6                                                        :
-STR_CONSOLE_SETTING                                             :Inverser Console
+STR_CONSOLE_SETTING                                             :Afficher la console
 STR_02D7_SCREENSHOT_CTRL_S                                      :Copie d'écran (Ctrl-S)
 STR_02D8_GIANT_SCREENSHOT_CTRL_G                                :Copie géante d'écran (Ctrl-G)
 STR_02D9_ABOUT_OPENTTD                                          :À Propos de 'OpenTTD'
@@ -809,7 +809,7 @@
 STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW                                :{BLACK}Coller depuis la vue
 STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW_TT                             :{BLACK}Colle l'emplacement de cette vue vers la vue globale
 
-STR_02E0_CURRENCY_UNITS                                         :{BLACK}Unité monétaire
+STR_02E0_CURRENCY_UNITS                                         :{BLACK}Devise monétaire
 STR_02E1                                                        :{BLACK}{SKIP}{STRING}
 STR_02E2_CURRENCY_UNITS_SELECTION                               :{BLACK}Sélectionner l'unité monétaire
 STR_MEASURING_UNITS                                             :{BLACK}Unité de mesure
@@ -1005,7 +1005,7 @@
 STR_TRAIN_AUTORENEW_FAILED                                      :{WHITE}Le renouvellement automatique a échoué sur Train {COMMA} (limite d'argent)
 STR_ROADVEHICLE_AUTORENEW_FAILED                                :{WHITE}Le renouvellement automatique a échoué sur Véhicule {COMMA} (limite d'argent)
 STR_SHIP_AUTORENEW_FAILED                                       :{WHITE}Le renouvellement automatique a échoué sur Navire {COMMA} (limite d'argent)
-STR_AIRCRAFT_AUTORENEW_FAILED                                   :{WHITE}Le renouvellement automatique a échoué sur Aéronef {COMMA} (limite d'argent)
+STR_AIRCRAFT_AUTORENEW_FAILED                                   :{WHITE}Le renouvellement automatique d'Aéronef {COMMA} a échoué (limite d'argent)
 STR_TRAIN_TOO_LONG_AFTER_REPLACEMENT                            :{WHITE}Train {COMMA} est trop long après remplacement
 
 STR_CONFIG_PATCHES                                              :{BLACK}Options Avancées
@@ -1026,7 +1026,7 @@
 STR_CONFIG_PATCHES_IMPROVEDLOAD                                 :{LTBLUE}Utiliser l'algorithme amélioré de chargement : {ORANGE}{STRING}
 STR_CONFIG_PATCHES_GRADUAL_LOADING                              :{LTBLUE}Charger les véhicules graduellement: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_INFLATION                                    :{LTBLUE}Inflation: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Livrer cargaison seulement sur demande: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Livrer la cargaison seulement sur demande: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}Permettre la construction de longs ponts: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_GOTODEPOT                                    :{LTBLUE}Permettre l'ordre d'aller au dépôt: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_BUILDXTRAIND                                 :{LTBLUE}Permettre la construction de ressources primaires: {ORANGE}{STRING}
@@ -1299,7 +1299,7 @@
 STR_NETWORK_GENERAL_ONLINE                                      :{BLACK}{COMMA}/{COMMA} - {COMMA}/{COMMA}
 STR_NETWORK_CLIENTS_CAPTION                                     :{BLACK}Clients
 STR_NETWORK_CLIENTS_CAPTION_TIP                                 :{BLACK}Clients en ligne / clients max
-STR_NETWORK_GAME_INFO                                           :{SILVER}INFO DE LA PARTIE
+STR_NETWORK_GAME_INFO                                           :{SILVER}INFOS SUR LE SERVEUR
 STR_ORANGE                                                      :{ORANGE}{STRING}
 STR_NETWORK_CLIENTS                                             :{SILVER}Clients:  {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
 STR_NETWORK_LANGUAGE                                            :{SILVER}Langue:  {WHITE}{STRING}
@@ -1351,7 +1351,7 @@
 STR_NETWORK_NUMBER_OF_SPECTATORS                                :{BLACK}Max spectateurs:
 STR_NETWORK_NUMBER_OF_SPECTATORS_TIP                            :{BLACK}Limiter le serveur à un certain nombre de spectateurs
 STR_NETWORK_COMBO4                                              :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
-STR_NETWORK_LANGUAGE_SPOKEN                                     :{BLACK}Langue parlée :
+STR_NETWORK_LANGUAGE_SPOKEN                                     :{BLACK}Langue utilisée :
 STR_NETWORK_LANGUAGE_TIP                                        :{BLACK}Les autres joueurs sauront quelle langue est parlée sur ce serveur.
 STR_NETWORK_COMBO5                                              :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
 STR_NETWORK_START_GAME                                          :{BLACK}Démarrer la partie
@@ -1360,13 +1360,13 @@
 STR_NETWORK_LOAD_GAME_TIP                                       :{BLACK}Continuer une partie multijoueur sauvée précédemment (attention à reprendre le même joueur)
 
 ############ Leave those lines in this order!!
-STR_NETWORK_LANG_ANY                                            :Peu importe
+STR_NETWORK_LANG_ANY                                            :Aucune
 STR_NETWORK_LANG_ENGLISH                                        :Anglais
 STR_NETWORK_LANG_GERMAN                                         :Allemand
 STR_NETWORK_LANG_FRENCH                                         :Français
 ############ End of leave-in-this-order
 
-STR_NETWORK_GAME_LOBBY                                          :{WHITE}Chat d'avant jeu
+STR_NETWORK_GAME_LOBBY                                          :{WHITE}Préparation de la partie
 
 STR_NETWORK_PREPARE_TO_JOIN                                     :{BLACK}Se prépare à rejoindre :   {ORANGE}{STRING}
 STR_NETWORK_COMPANY_LIST_TIP                                    :{BLACK}Liste des compagnies présentes dans le jeu.  Vous pouvez soit en rejoindre une, soit en créer une.
@@ -1376,10 +1376,10 @@
 STR_NETWORK_SPECTATE_GAME_TIP                                   :{BLACK}Permet d'observer une partie en tant que spectateur
 STR_NETWORK_JOIN_COMPANY                                        :{BLACK}Rejoindre la compagnie
 STR_NETWORK_JOIN_COMPANY_TIP                                    :{BLACK}Aider à gérer cette compagnie
-STR_NETWORK_REFRESH                                             :{BLACK}Rafraîchir
-STR_NETWORK_REFRESH_TIP                                         :{BLACK}Rafraîchir les infos à propos du serveur
+STR_NETWORK_REFRESH                                             :{BLACK}Actualiser
+STR_NETWORK_REFRESH_TIP                                         :{BLACK}Actualiser les infos sur le serveur
 
-STR_NETWORK_COMPANY_INFO                                        :{SILVER}INFO DE LA COMPAGNIE
+STR_NETWORK_COMPANY_INFO                                        :{SILVER}INFOS SUR LA COMPAGNIE
 
 STR_NETWORK_COMPANY_NAME                                        :{SILVER}Nom de la compagnie :  {WHITE}{STRING}
 STR_NETWORK_INAUGURATION_YEAR                                   :{SILVER}Inauguration :  {WHITE}{NUM}
@@ -1806,7 +1806,7 @@
 STR_4002_SAVE                                                   :{BLACK}Sauvegarder
 STR_4003_DELETE                                                 :{BLACK}Supprimer
 STR_4004                                                        :{COMPANY}, {DATE_LONG}
-STR_4005_BYTES_FREE                                             :{BLACK}{COMMA} Mo libres
+STR_4005_BYTES_FREE                                             :{BLACK}{COMMA} Mo libre{P "" s}
 STR_4006_UNABLE_TO_READ_DRIVE                                   :{BLACK}Impossible d'accéder au disque
 STR_4007_GAME_SAVE_FAILED                                       :{WHITE}La sauvegarde à échoué
 STR_4008_UNABLE_TO_DELETE_FILE                                  :{WHITE}Impossible de supprimer le fichier
@@ -1817,7 +1817,7 @@
 STR_400D_SAVE_THE_CURRENT_GAME_USING                            :{BLACK}Sauvegarde la partie avec le nom choisi
 STR_400E_SELECT_NEW_GAME_TYPE                                   :{WHITE}Choix du type de partie
 STR_400F_SELECT_SCENARIO_GREEN_PRE                              :{BLACK}Choisir un scénario (vert), une partie préparée (bleu), ou une partie aléatoire
-STR_4010_GENERATE_RANDOM_NEW_GAME                               :Générer une partie aléatoirement
+STR_4010_GENERATE_RANDOM_NEW_GAME                               :Créer une partie aléatoirement
 STR_4011_LOAD_HEIGHTMAP                                         :{WHITE}Charger une carte d'altitude
 
 ##id 0x4800
@@ -1996,15 +1996,15 @@
 ############ range for difficulty levels ends
 
 ############ range for difficulty settings starts
-STR_6805_MAXIMUM_NO_COMPETITORS                                 :{LTBLUE}Nombre maximum de compétiteurs: {ORANGE}{COMMA}
-STR_6806_COMPETITOR_START_TIME                                  :{LTBLUE}Arrivée des compétiteurs: {ORANGE}{STRING}
+STR_6805_MAXIMUM_NO_COMPETITORS                                 :{LTBLUE}Nombre maximal de concurents: {ORANGE}{COMMA}
+STR_6806_COMPETITOR_START_TIME                                  :{LTBLUE}Arrivée des concurents: {ORANGE}{STRING}
 STR_6807_NO_OF_TOWNS                                            :{LTBLUE}Nombre de villes: {ORANGE}{STRING}
 STR_6808_NO_OF_INDUSTRIES                                       :{LTBLUE}Nombre d'industries: {ORANGE}{STRING}
 STR_6809_MAXIMUM_INITIAL_LOAN_000                               :{LTBLUE}Prêt initial maximum: {ORANGE}{CURRENCY}
 STR_680A_INITIAL_INTEREST_RATE                                  :{LTBLUE}Taux d'interêt initial: {ORANGE}{COMMA}%
 STR_680B_VEHICLE_RUNNING_COSTS                                  :{LTBLUE}Coûts d'entretien: {ORANGE}{STRING}
-STR_680C_CONSTRUCTION_SPEED_OF_COMPETITOR                       :{LTBLUE}Vitesse de développement des compétiteurs: {ORANGE}{STRING}
-STR_680D_INTELLIGENCE_OF_COMPETITORS                            :{LTBLUE}Intelligence des compétiteurs: {ORANGE}{STRING}
+STR_680C_CONSTRUCTION_SPEED_OF_COMPETITOR                       :{LTBLUE}Vitesse de développement des concurents: {ORANGE}{STRING}
+STR_680D_INTELLIGENCE_OF_COMPETITORS                            :{LTBLUE}Intelligence des concurents: {ORANGE}{STRING}
 STR_680E_VEHICLE_BREAKDOWNS                                     :{LTBLUE}Pannes des véhicules: {ORANGE}{STRING}
 STR_680F_SUBSIDY_MULTIPLIER                                     :{LTBLUE}Multiplicateur de subvention: {ORANGE}{STRING}
 STR_6810_COST_OF_CONSTRUCTION                                   :{LTBLUE}Coût des constructions: {ORANGE}{STRING}
@@ -2013,7 +2013,7 @@
 STR_6813_ECONOMY                                                :{LTBLUE}Economie: {ORANGE}{STRING}
 STR_6814_TRAIN_REVERSING                                        :{LTBLUE}Demi-tour des trains: {ORANGE}{STRING}
 STR_6815_DISASTERS                                              :{LTBLUE}Désastres: {ORANGE}{STRING}
-STR_16816_CITY_APPROVAL                                         :{LTBLUE}Attitude de l'hotel de ville face au repaysagement : {ORANGE}{STRING}
+STR_16816_CITY_APPROVAL                                         :{LTBLUE}Attitude de la municipalité face au repaysagement : {ORANGE}{STRING}
 ############ range for difficulty settings ends
 
 STR_26816_NONE                                                  :Aucune
@@ -2620,7 +2620,7 @@
 STR_8865_NAME_TRAIN                                             :{WHITE}Renommer le train
 STR_8866_CAN_T_NAME_TRAIN                                       :{WHITE}Impossible de renommer le train...
 STR_8867_NAME_TRAIN                                             :{BLACK}Renommer le train
-STR_8868_TRAIN_CRASH_DIE_IN_FIREBALL                            :{BLACK}{BIGFONT}Tragédie ferroviaire!{}{COMMA} mort{P "" s} brûlé{P "" s} vif{P "" s} dans la collision
+STR_8868_TRAIN_CRASH_DIE_IN_FIREBALL                            :{BLACK}{BIGFONT}Accident ferroviaire!{}{COMMA} mort{P "" s} brûlé{P "" s} vif{P "" s} dans la collision
 STR_8869_CAN_T_REVERSE_DIRECTION                                :{WHITE}Impossible de faire faire demi-tour...
 STR_886A_RENAME_TRAIN_VEHICLE_TYPE                              :{WHITE}Renommer le type de train
 STR_886B_CAN_T_RENAME_TRAIN_VEHICLE                             :{WHITE}Impossible de renommer le type de train...
@@ -2682,8 +2682,8 @@
 STR_902E_NAME_ROAD_VEHICLE                                      :{BLACK}Renommer le véhicule
 STR_902F_CITIZENS_CELEBRATE_FIRST                               :{BLACK}{BIGFONT}Les habitants célèbrent . . .{}Le premier bus arrive à {STATION}!
 STR_9030_CITIZENS_CELEBRATE_FIRST                               :{BLACK}{BIGFONT}Les habitants célèbrent . . .{}Le premier camion arrive à {STATION}!
-STR_9031_ROAD_VEHICLE_CRASH_DRIVER                              :{BLACK}{BIGFONT}Tragédie routière!{}Un automobiliste meurt brûlé vif lors d'une collision avec un train
-STR_9032_ROAD_VEHICLE_CRASH_DIE                                 :{BLACK}{BIGFONT}Tragédie routière!{}{COMMA} morts, brûlés vifs lors d'une collision avec un train
+STR_9031_ROAD_VEHICLE_CRASH_DRIVER                              :{BLACK}{BIGFONT}Accident routier!{}Un automobiliste meurt brûlé vif lors d'une collision avec un train
+STR_9032_ROAD_VEHICLE_CRASH_DIE                                 :{BLACK}{BIGFONT}Accident routier!{}{COMMA} mort{P "" s} lors d'une collision avec un train
 STR_9033_CAN_T_MAKE_VEHICLE_TURN                                :{WHITE}Impossible de faire faire demi-tour au véhicule...
 STR_ONLY_TURN_SINGLE_UNIT                                       :{WHITE}Impossible de faire faire demi-tour aux unités multiples
 STR_9034_RENAME                                                 :{BLACK}Renommer
@@ -2790,7 +2790,7 @@
 STR_A00D_AGE_RUNNING_COST_YR                                    :{BLACK}Âge: {LTBLUE}{STRING}{BLACK}   Coût d'entretien: {LTBLUE}{CURRENCY}/an
 STR_A00E_MAX_SPEED                                              :{BLACK}Vitesse max.: {LTBLUE}{VELOCITY}
 STR_A00F_PROFIT_THIS_YEAR_LAST_YEAR                             :{BLACK}Profits cette année: {LTBLUE}{CURRENCY} (l'an dernier: {CURRENCY})
-STR_A010_RELIABILITY_BREAKDOWNS                                 :{BLACK}Fiabilité: {LTBLUE}{COMMA}%   {BLACK}Cafouillages depuis le dernier service: {LTBLUE}{COMMA}
+STR_A010_RELIABILITY_BREAKDOWNS                                 :{BLACK}Fiabilité: {LTBLUE}{COMMA}%   {BLACK}Pannes depuis le dernier service: {LTBLUE}{COMMA}
 STR_A011_BUILT_VALUE                                            :{LTBLUE}{STRING}{BLACK}   Construit: {LTBLUE}{NUM}{BLACK} Valeur: {LTBLUE}{CURRENCY}
 STR_A012_CAN_T_SEND_AIRCRAFT_TO                                 :{WHITE}Impossible d'envoyer l'aéronef au hangar...
 STR_HEADING_FOR_HANGAR                                          :{ORANGE}En route pour le hangar de {STATION}
@@ -2828,8 +2828,8 @@
 STR_A031_CAN_T_NAME_AIRCRAFT                                    :{WHITE}Impossible de nommer l'aéronef...
 STR_A032_NAME_AIRCRAFT                                          :{BLACK}Nommer l'aéronef
 STR_A033_CITIZENS_CELEBRATE_FIRST                               :{BLACK}{BIGFONT}Les habitants célèbrent . . .{}Arrivée du premier aéronef à {STATION}!
-STR_A034_PLANE_CRASH_DIE_IN_FIREBALL                            :{BLACK}{BIGFONT}Tragédie aérienne!{}{COMMA} morts brûlés vifs à {STATION}
-STR_PLANE_CRASH_OUT_OF_FUEL                                     :{BLACK}{BIGFONT}Tragédie aérienne !{}L'aéronef n'avait plus de carburant, {COMMA} passagers meurent dans l'incendie!
+STR_A034_PLANE_CRASH_DIE_IN_FIREBALL                            :{BLACK}{BIGFONT}Accident d'avion!{}{COMMA} mort{P "" s} dans un crash à {STATION}
+STR_PLANE_CRASH_OUT_OF_FUEL                                     :{BLACK}{BIGFONT}Accident d'avion!{}L'aéronef n'avait plus de carburant, {COMMA} passager{P "" s} meurent dans le crash!
 STR_A036                                                        :{TINYFONT}{BLACK}{STATION}
 STR_A037_RENAME                                                 :{BLACK}Renommer
 STR_A038_RENAME_AIRCRAFT_TYPE                                   :{BLACK}Renommer type d'aéronef
@@ -2853,7 +2853,7 @@
 STR_B003_FACTORY_DESTROYED_IN_SUSPICIOUS                        :{BLACK}{BIGFONT}Usine détruite dans des circonstances suspectes près de {TOWN}!
 STR_B004_UFO_LANDS_NEAR                                         :{BLACK}{BIGFONT}Un 'OVNI' attérit près de {TOWN}!
 STR_B005_COAL_MINE_SUBSIDENCE_LEAVES                            :{BLACK}{BIGFONT}Affaissement d'une veine de charbon entraîne la desctruction de la mine de {TOWN}!
-STR_B006_FLOOD_VEHICLE_DESTROYED                                :{BLACK}{BIGFONT}Inondations!{}Au moins {COMMA} présumés manquants ou morts après des inondations meurtrières!
+STR_B006_FLOOD_VEHICLE_DESTROYED                                :{BLACK}{BIGFONT}Inondations!{}Au moins {COMMA} présumé{P "" s} manquant{P "" s} ou mort{P "" s} après des inondations meurtrières!
 
 STR_BRIBE_FAILED                                                :{WHITE}Votre tentative de corruption à été
 STR_BRIBE_FAILED_2                                              :{WHITE}révélée à la presse par un journaliste régional.
@@ -2912,10 +2912,10 @@
 STR_NEWGRF_PARAMETER_QUERY                                      :{BLACK}Entrer les paramètres NewGRF
 STR_NEWGRF_NO_INFO                                              :{BLACK}Pas d'informations disponibles
 
-STR_NEWGRF_ADD_CAPTION                                          :{WHITE}Fichier NewGRF disponibles
+STR_NEWGRF_ADD_CAPTION                                          :{WHITE}Fichiers NewGRF disponibles
 STR_NEWGRF_ADD_FILE                                             :{BLACK}Ajouter à la sélection
 STR_NEWGRF_ADD_FILE_TIP                                         :{BLACK}Ajouter le fichier NewGRF sélectionné à votre configuration
-STR_NEWGRF_RESCAN_FILES                                         :{BLACK}Re-scanner les fichiers
+STR_NEWGRF_RESCAN_FILES                                         :{BLACK}Actualiser la liste
 STR_NEWGRF_RESCAN_FILES_TIP                                     :{BLACK}Mettre à jour la liste des fichiers NewGRF disponibles
 STR_NEWGRF_DUPLICATE_GRFID                                      :{WHITE}Ajout impossible: GRF ID en double
 
@@ -3048,22 +3048,22 @@
 
 ########### String for New Landscape Generator
 
-STR_GENERATE                                                    :{WHITE}Générer
+STR_GENERATE                                                    :{WHITE}Créer
 STR_RANDOM                                                      :{BLACK}Nouvelle Amorce
-STR_RANDOM_HELP                                                 :{BLACK}Modifer l'amorce utilisée pour la Génération du Terrain
+STR_RANDOM_HELP                                                 :{BLACK}Modifier l'amorce utilisée pour la Création du Terrain
 STR_WORLD_GENERATION_CAPTION                                    :{WHITE}Création du monde
 STR_RANDOM_SEED                                                 :{BLACK}Amorce :
 STR_RANDOM_SEED_HELP                                            :{BLACK}Cliquer pour saisir une amorce
 STR_LAND_GENERATOR                                              :{BLACK}Générateur :
-STR_TREE_PLACER                                                 :{BLACK}Placement arbres :
+STR_TREE_PLACER                                                 :{BLACK}Ajout des arbres :
 STR_HEIGHTMAP_ROTATION                                          :{BLACK}Rotation de la carte d'altitude :
 STR_TERRAIN_TYPE                                                :{BLACK}Type de terrain :
 STR_QUANTITY_OF_SEA_LAKES                                       :{BLACK}Niveau de la mer :
 STR_SMOOTHNESS                                                  :{BLACK}Lissage :
 STR_SNOW_LINE_HEIGHT                                            :{BLACK}Alt. d'enneigement :
 STR_DATE                                                        :{BLACK}Date:
-STR_NUMBER_OF_TOWNS                                             :{BLACK}No. de villes :
-STR_NUMBER_OF_INDUSTRIES                                        :{BLACK}No. d'industries :
+STR_NUMBER_OF_TOWNS                                             :{BLACK}Nb. de villes :
+STR_NUMBER_OF_INDUSTRIES                                        :{BLACK}Nb. d'industries :
 STR_GENERATE_DATE                                               :{BLACK}{DATE_LONG}
 STR_SNOW_LINE_UP                                                :{BLACK}Augmenter l'altitude d'enneigement
 STR_SNOW_LINE_DOWN                                              :{BLACK}Baisser l'altitude d'enneigement
@@ -3081,15 +3081,15 @@
 STR_PROGRESS                                                    :{WHITE}{NUM}% terminé
 STR_GENERATION_PROGRESS                                         :{BLACK}{NUM} / {NUM}
 STR_WORLD_GENERATION                                            :{BLACK}Création du monde
-STR_TREE_GENERATION                                             :{BLACK}Génération des arbres
-STR_UNMOVABLE_GENERATION                                        :{BLACK}Génération des non-déplacables
-STR_CLEARING_TILES                                              :{BLACK}Génération des zones rugueuses et pierreuses
+STR_TREE_GENERATION                                             :{BLACK}Création des arbres
+STR_UNMOVABLE_GENERATION                                        :{BLACK}Création des non-déplacables
+STR_CLEARING_TILES                                              :{BLACK}Création des zones rugueuses et rocheuses
 STR_SETTINGUP_GAME                                              :{BLACK}Configuration du jeu
 STR_PREPARING_TILELOOP                                          :{BLACK}Rafraîchissement du terrain
 STR_PREPARING_GAME                                              :{BLACK}Préparation du jeu
 STR_DIFFICULTY_TO_CUSTOM                                        :{WHITE}Cette action a modifié le niveau de difficulté en personnalisé
 STR_SE_FLAT_WORLD                                               :{WHITE}Terrain plat
-STR_SE_FLAT_WORLD_TIP                                           :{BLACK}Générer un terrain plat
+STR_SE_FLAT_WORLD_TIP                                           :{BLACK}Créer un monde plat
 STR_SE_RANDOM_LAND                                              :{WHITE}Terrain aléatoire
 STR_SE_NEW_WORLD                                                :{BLACK}Nouveau scénario
 STR_SE_CAPTION                                                  :{WHITE}Type de scénario
--- a/src/lang/icelandic.txt	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/lang/icelandic.txt	Wed Feb 14 10:46:38 2007 +0000
@@ -317,8 +317,8 @@
 STR_UNITS_VELOCITY_METRIC                                       :{COMMA} km/klst
 STR_UNITS_VELOCITY_SI                                           :{COMMA} m/s
 
-STR_UNITS_POWER_IMPERIAL                                        :{COMMA}hestöfl
-STR_UNITS_POWER_METRIC                                          :{COMMA}hestöfl
+STR_UNITS_POWER_IMPERIAL                                        :{COMMA}hö.
+STR_UNITS_POWER_METRIC                                          :{COMMA}hö.
 STR_UNITS_POWER_SI                                              :{COMMA}kW
 
 STR_UNITS_WEIGHT_SHORT_IMPERIAL                                 :{COMMA}tonn
@@ -386,6 +386,9 @@
 STR_SELECT_ALL_FACILITIES                                       :{BLACK}Velja allar gerðir
 STR_SELECT_ALL_TYPES                                            :{BLACK}Velja allar tegundir farms (einnig þær sem ekki bíða)
 STR_REPLACE_VEHICLES                                            :Skipta út vögnum
+STR_SEND_SHIP_TO_DEPOT                                          :Senda í slipp
+STR_SEND_AIRCRAFT_TO_HANGAR                                     :Senda í skýli
+STR_SEND_FOR_SERVICING                                          :Senda í skoðun
 
 ############ range for months starts
 STR_0162_JAN                                                    :Jan
@@ -602,6 +605,8 @@
 STR_022A_GENERATE_RANDOM_LAND                                   :{BLACK}Mynda til land af handahófi
 STR_022B_RESET_LANDSCAPE                                        :{BLACK}Eyða landi
 STR_022C_RESET_LANDSCAPE                                        :{WHITE}Eyða landi
+STR_RESET_LANDSCAPE_TOOLTIP                                     :{BLACK}Fjarlægja allar eignir leikmanna af landinu
+STR_RESET_LANDSCAPE_CONFIRMATION_TEXT                           :{WHITE}Ertu viss um að þú viljir fjarlægja allar eignir leikmanna?
 STR_022E_LANDSCAPE_GENERATION                                   :{BLACK}Landslagsgerð
 STR_022F_TOWN_GENERATION                                        :{BLACK}Bæjargerð
 STR_0230_INDUSTRY_GENERATION                                    :{BLACK}Iðnaðargerð
@@ -706,6 +711,7 @@
 STR_0291_DELETE_THIS_TOWN_COMPLETELY                            :{BLACK}Eyða þessum bæ algjörlega
 STR_0292_SAVE_SCENARIO                                          :Vista kort
 STR_0293_LOAD_SCENARIO                                          :Opna kort
+STR_LOAD_HEIGHTMAP                                              :Hlaða hæðarkorti
 STR_0294_QUIT_EDITOR                                            :Hætta í kortagerð
 STR_0295                                                        :
 STR_0296_QUIT                                                   :Hætta
@@ -713,6 +719,8 @@
 STR_0298_LOAD_SCENARIO                                          :{WHITE}Opna kort
 STR_0299_SAVE_SCENARIO                                          :{WHITE}Vista kort
 STR_029A_PLAY_SCENARIO                                          :{BLACK}Spila kort
+STR_PLAY_HEIGHTMAP                                              :{BLACK}Spila á hæðarkorti
+STR_PLAY_HEIGHTMAP_HINT                                         :{BLACK}Hefja nýjan leik byggðan á hæðarkorti
 STR_QUIT_SCENARIO_QUERY                                         :{YELLOW}Ertu viss um að þú viljir hætta í þessu korti ?
 STR_029C_QUIT_EDITOR                                            :{WHITE}Hætta í kortagerð
 STR_029D_CAN_ONLY_BE_BUILT_IN_TOWNS                             :{WHITE}...aðeins hægt að byggja í bæjum með fleiri en 1200 íbúum
@@ -745,7 +753,7 @@
 STR_02C3_GAME_OPTIONS                                           :Stillingar
 STR_02C5_DIFFICULTY_SETTINGS                                    :Erfiðleikastig
 STR_02C7_CONFIG_PATCHES                                         :Viðbætur
-STR_NEWGRF_SETTINGS                                             :Nýgrf stillingar
+STR_NEWGRF_SETTINGS                                             :NewGRF stillingar
 STR_GAMEOPTMENU_0A                                              :
 STR_02CA_TOWN_NAMES_DISPLAYED                                   :{SETX 12}Bæjarnöfn sýnd
 STR_02CC_STATION_NAMES_DISPLAYED                                :{SETX 12}Stöðvarnöfn sýnd
@@ -866,6 +874,7 @@
 STR_TOWNNAME_DANISH                                             :Dönsk
 STR_TOWNNAME_TURKISH                                            :Tyrknesk
 STR_TOWNNAME_ITALIAN                                            :Ítölsk
+STR_TOWNNAME_CATALAN                                            :Katalónsk
 ############ end of townname region
 
 STR_CURR_GBP                                                    :Pund (£)
@@ -890,7 +899,11 @@
 STR_CURR_PLN                                                    :Pólsk zloty (PLN)
 STR_CURR_ROL                                                    :Rúmensk leu (ROL)
 STR_CURR_RUR                                                    :Rússnesk rúbla (RUR)
+STR_CURR_SIT                                                    :Slóvensk tolar (SIT)
 STR_CURR_SEK                                                    :Sænsk króna (SEK)
+STR_CURR_YTL                                                    :Tyrknesk líra (YTL)
+STR_CURR_SKK                                                    :Slóvakísk kórúna (SKK)
+STR_CURR_BRR                                                    :Brasilísk ríla (BRL)
 
 STR_CURR_CUSTOM                                                 :Sérvalið...
 
@@ -991,6 +1004,7 @@
 STR_CONFIG_PATCHES_JOINSTATIONS                                 :{LTBLUE}Sameina lestarstöðvar sem byggðar eru samsíða: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_FULLLOADANY                                  :{LTBLUE}Yfirgefa stöð þegar einn farmur er fullfermdur, ef valið er 'fullferma': {ORANGE}{STRING}
 STR_CONFIG_PATCHES_IMPROVEDLOAD                                 :{LTBLUE}Nota endurbættan algóriþma við hleðslu: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_GRADUAL_LOADING                              :{LTBLUE}Ferma farartæki smám saman: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_INFLATION                                    :{LTBLUE}Verðbólga: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SELECTGOODS                                  :{LTBLUE}Aðeins afhlaða farmi á stöðvum þar sem er eftirspurn: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LONGBRIDGES                                  :{LTBLUE}Leyfa byggingu mjög langra brúa: {ORANGE}{STRING}
@@ -1007,9 +1021,11 @@
 STR_CONFIG_PATCHES_BRIBE                                        :{LTBLUE}Leyfilegt að múta bæjaryfirvöldum: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NONUNIFORM_STATIONS                          :{LTBLUE}Órétthyrndar lestarstöðvar leyfðar: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_NEW_PATHFINDING_ALL                          :{LTBLUE}Nýtt heildar-leiðarkerfi (NPF, yfirtekur NTP): {ORANGE}{STRING}
+STR_CONFIG_PATCHES_FREIGHT_TRAINS                               :{LTBLUE}Margfalda þyngd farms til að líkja eftir þyngri lestum: {ORANGE}{STRING}
 
 STR_CONFIG_PATCHES_SMALL_AIRPORTS                               :{LTBLUE}Alltaf leyfa litla flugvelli: {ORANGE}{STRING}
 
+STR_CONFIG_PATCHES_WARN_LOST_TRAIN                              :{LTBLUE}Láta vita ef lest týnist: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_ORDER_REVIEW                                 :{LTBLUE}Endurskoða skipanir farartækis: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_ORDER_REVIEW_OFF                             :nei
 STR_CONFIG_PATCHES_ORDER_REVIEW_EXDEPOT                         :já, en útiloka kyrrstæð farartæki
@@ -1026,15 +1042,32 @@
 STR_CONFIG_PATCHES_LAND_GENERATOR                               :{LTBLUE}Landslagsmótun: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LAND_GENERATOR_ORIGINAL                      :Upphafleg
 STR_CONFIG_PATCHES_LAND_GENERATOR_TERRA_GENESIS                 :TerraGenesis
+STR_CONFIG_PATCHES_OIL_REF_EDGE_DISTANCE                        :{LTBLUE}Hámarfjarlægð olíuborpalla frá brún korts {ORANGE}{STRING}
 STR_CONFIG_PATCHES_SNOWLINE_HEIGHT                              :{LTBLUE}Hæð snjólínu: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN                         :{LTBLUE}Hrjúfleiki landslags (TerraGenesis stilling) : {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH             :Mjög slétt
+STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN_SMOOTH                  :Slétt
+STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN_ROUGH                   :Hrjúft
+STR_CONFIG_PATCHES_ROUGHNESS_OF_TERRAIN_VERY_ROUGH              :Mjög hrjúft
+STR_CONFIG_PATCHES_TREE_PLACER                                  :{LTBLUE}Staðsetning trjáa: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_TREE_PLACER_NONE                             :Hvergi
+STR_CONFIG_PATCHES_TREE_PLACER_ORIGINAL                         :Venjuleg
+STR_CONFIG_PATCHES_TREE_PLACER_IMPROVED                         :Endurbætt
 STR_CONFIG_PATCHES_HEIGHTMAP_ROTATION                           :{LTBLUE}Snúningur hæðakorts: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE         :Rangsælis
 STR_CONFIG_PATCHES_HEIGHTMAP_ROTATION_CLOCKWISE                 :Réttsælis
+STR_CONFIG_PATCHES_SE_FLAT_WORLD_HEIGHT                         :{LTBLUE}Hæð jafnslétts lands yfir sjávarmáli: {ORANGE}{STRING}
 
 STR_CONFIG_PATCHES_STATION_SPREAD                               :{LTBLUE}Dreyfing stöðva mest: {ORANGE}{STRING} {RED}Ath.: Há stilling hægir á leiknum
 STR_CONFIG_PATCHES_SERVICEATHELIPAD                             :{LTBLUE}Skoða þyrlur sjálfvirkt á þyrlupalli: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_LINK_TERRAFORM_TOOLBAR                       :{LTBLUE}Opna landmótunarglugga samhliða lestar-, vegar-, hafnar- og flugvallarframkvæmdarglugga: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_REVERSE_SCROLLING                            :{LTBLUE}Færa sjónarhorn í öfuga átt miðað við mús: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_MEASURE_TOOLTIP                              :{LTBLUE}Sýna mælstiku við byggingu: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_LIVERIES                                     :{LTBLUE}Sýna auka litastillingar: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_LIVERIES_NONE                                :Aldrei
+STR_CONFIG_PATCHES_LIVERIES_OWN                                 :Eigin fyrirtækis
+STR_CONFIG_PATCHES_LIVERIES_ALL                                 :Allra fyrirtækja
+STR_CONFIG_PATCHES_PREFER_TEAMCHAT                              :{LTBLUE}Not liðsspjall með <ENTER>: {ORANGE}{STRING}
 
 STR_CONFIG_PATCHES_MAX_TRAINS                                   :{LTBLUE}Lestir á leikmann mest: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_ROADVEH                                  :{LTBLUE}Bifreiðir á leikmann mest: {ORANGE}{STRING}
@@ -1059,6 +1092,7 @@
 STR_CONFIG_PATCHES_SERVINT_SHIPS_DISABLED                       :{LTBLUE}Bið milli skoðana á skipum: {ORANGE}óvirkt
 STR_CONFIG_PATCHES_NOSERVICE                                    :{LTBLUE}Hætta skoðunum þegar bilanir eru afvirktar: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_WAGONSPEEDLIMITS                             :{LTBLUE}Leyfa hraðatakmarkanir vagna: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_DISABLE_ELRAILS                              :{LTBLUE}Ekki nota rafknúnar lestir: {ORANGE}{STRING}
 
 STR_CONFIG_PATCHES_COLORED_NEWS_YEAR                            :{LTBLUE}Fréttir birtast í lit: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_STARTING_YEAR                                :{LTBLUE}Upphafsár: {ORANGE}{STRING}
@@ -1066,6 +1100,7 @@
 STR_CONFIG_PATCHES_SMOOTH_ECONOMY                               :{LTBLUE}Virkja jafnan efnahag (fleiri og minni breytingar)
 STR_CONFIG_PATCHES_ALLOW_SHARES                                 :{LTBLUE}Leyfa hlutabréfakaup í öðrum fyrirtækjum
 STR_CONFIG_PATCHES_DRAG_SIGNALS_DENSITY                         :{LTBLUE}Þegar dregið er, setja skilti á: {ORANGE}{STRING} hvern reit
+STR_CONFIG_PATCHES_SEMAPHORE_BUILD_BEFORE_DATE                  :{LTBLUE}Nota skilti í stað ljósa fyrir: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_TOOLBAR_POS                                  :{LTBLUE}Staðsetning tækjasláar: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_TOOLBAR_POS_LEFT                             :Vinstri
 STR_CONFIG_PATCHES_TOOLBAR_POS_CENTER                           :Miðjað
@@ -1258,6 +1293,7 @@
 STR_NETWORK_SERVER_OFFLINE                                      :{SILVER}ÞJÓNN AFTENGDUR
 STR_NETWORK_SERVER_FULL                                         :{SILVER}ÞJÓNN FULLUR
 STR_NETWORK_VERSION_MISMATCH                                    :{SILVER}ÚTGÁFA STEMMIR EKKI
+STR_NETWORK_GRF_MISMATCH                                        :{SILVER}NEWGRF MISRÆMI
 
 STR_NETWORK_JOIN_GAME                                           :{BLACK}Tengjast leik
 
@@ -1362,6 +1398,7 @@
 STR_NETWORK_ERR_NOTAVAILABLE                                    :{WHITE} Enginn netbúnaður fannst eða vistþýtt án ENABLE_NETWORK
 STR_NETWORK_ERR_NOSERVER                                        :{WHITE} Fann enga netleiki
 STR_NETWORK_ERR_NOCONNECTION                                    :{WHITE} Þjóninn svaraði ekki fyrirspurninni
+STR_NETWORK_ERR_NEWGRF_MISMATCH                                 :{WHITE} Gat ekki tengst vegna NewGRF misræmis
 STR_NETWORK_ERR_DESYNC                                          :{WHITE} Samstilling netleiks mistókst.
 STR_NETWORK_ERR_LOSTCONNECTION                                  :{WHITE} Tenging við netleik glataðist.
 STR_NETWORK_ERR_SAVEGAMEERROR                                   :{WHITE} Gat ekki hlaðið vistuðum leik af þjóni.
@@ -1383,6 +1420,7 @@
 STR_NETWORK_ERR_CLIENT_SAVEGAME                                 :gat ekki opnað kort
 STR_NETWORK_ERR_CLIENT_CONNECTION_LOST                          :tenging rofnaði
 STR_NETWORK_ERR_CLIENT_PROTOCOL_ERROR                           :samskiptavilla
+STR_NETWORK_ERR_CLIENT_NEWGRF_MISMATCH                          :NewGRF misræmi
 STR_NETWORK_ERR_CLIENT_NOT_AUTHORIZED                           :Ekki leyfilegt
 STR_NETWORK_ERR_CLIENT_NOT_EXPECTED                             :tók á móti undarlegum pakka
 STR_NETWORK_ERR_CLIENT_WRONG_REVISION                           :röng útgáfa
@@ -1410,6 +1448,7 @@
 
 STR_NETWORK_SERVER                                              :Þjónn
 STR_NETWORK_CLIENT                                              :Notandi
+STR_NETWORK_SPECTATORS                                          :Áhorfendur
 
 STR_NETWORK_CLIENTLIST_NONE                                     :(ekkert)
 STR_NETWORK_CLIENTLIST_KICK                                     :Sparka
@@ -1430,6 +1469,10 @@
 
 ##### PNG-MAP-Loader
 
+STR_PNGMAP_ERROR                                                :{WHITE}Get ekki hlaðið landslagi úr PNG skrá...
+STR_PNGMAP_ERR_FILE_NOT_FOUND                                   :{WHITE}...skrá ekki til staðar.
+STR_PNGMAP_ERR_IMAGE_TYPE                                       :{WHITE}...gat ekki meðhöndlað myndsniðið. 8 eða 24 bita PNG myndir nauðsynlegar.
+STR_PNGMAP_ERR_MISC                                             :{WHITE}...eitthvað fór úrskeiðis (mögulega gölluð skrá).
 
 STR_BMPMAP_ERROR                                                :{WHITE}Get ekki hlaðið landslagi úr BMP skrá...
 STR_BMPMAP_ERR_IMAGE_TYPE                                       :{WHITE}... gat ekki breytt myndsniði.
@@ -1728,13 +1771,13 @@
 STR_STAT_CLASS_WAYP                                             :Millistöð
 
 ##id 0x3800
-STR_3800_SHIP_DEPOT_ORIENTATION                                 :{WHITE}Staða skipaslipps
+STR_3800_SHIP_DEPOT_ORIENTATION                                 :{WHITE}Staða slipps
 STR_3801_MUST_BE_BUILT_ON_WATER                                 :{WHITE}...verður að byggjast á vatni
-STR_3802_CAN_T_BUILD_SHIP_DEPOT                                 :{WHITE}Get ekki byggt skipaslipp hér...
-STR_3803_SELECT_SHIP_DEPOT_ORIENTATION                          :{BLACK}Velja stöðu skipaslipps
+STR_3802_CAN_T_BUILD_SHIP_DEPOT                                 :{WHITE}Get ekki reist slipp hér...
+STR_3803_SELECT_SHIP_DEPOT_ORIENTATION                          :{BLACK}Velja stöðu slipps
 STR_3804_WATER                                                  :Vatn
 STR_3805_COAST_OR_RIVERBANK                                     :Strönd
-STR_3806_SHIP_DEPOT                                             :Skipaslippur
+STR_3806_SHIP_DEPOT                                             :Slippur
 STR_3807_CAN_T_BUILD_ON_WATER                                   :{WHITE}...Get ekki byggt á vatni
 
 ##id 0x4000
@@ -2127,7 +2170,32 @@
 STR_707F_HAS_BEEN_TAKEN_OVER_BY                                 :{BLACK}{BIGFONT}{COMPANY} hefur verið yfirtekið af {COMPANY}!
 STR_7080_PROTECTED                                              :{WHITE}Þetta fyrirtæki er ekki nógu gamalt til að versla með hluti ...
 
+STR_LIVERY_DEFAULT                                              :Aðal litaskema
+STR_LIVERY_STEAM                                                :Gufuvagnar
+STR_LIVERY_DIESEL                                               :Díselvagnar
+STR_LIVERY_ELECTRIC                                             :Rafmagnsvagnar
+STR_LIVERY_MONORAIL                                             :Einteingungsvagnar
+STR_LIVERY_MAGLEV                                               :Segulsvifvagnar
+STR_LIVERY_PASSENGER_WAGON_STEAM                                :Farþegavagn (Gufu)
+STR_LIVERY_PASSENGER_WAGON_DIESEL                               :Farþegavagn (Dísel)
+STR_LIVERY_PASSENGER_WAGON_ELECTRIC                             :Farþegavagn (Rafmagns)
+STR_LIVERY_FREIGHT_WAGON                                        :Flutningsvagnar
+STR_LIVERY_BUS                                                  :Strætó
+STR_LIVERY_TRUCK                                                :Flutningabílar
+STR_LIVERY_PASSENGER_SHIP                                       :Farþegaferjur
+STR_LIVERY_FREIGHT_SHIP                                         :Flutningsskip
+STR_LIVERY_HELICOPTER                                           :Þyrlur
+STR_LIVERY_SMALL_PLANE                                          :Flugvélar
+STR_LIVERY_LARGE_PLANE                                          :Þotur
 
+STR_LIVERY_GENERAL_TIP                                          :{BLACK}Grunnlitur fyrirtækis
+STR_LIVERY_TRAIN_TIP                                            :{BLACK}Litaskema lesta
+STR_LIVERY_ROADVEH_TIP                                          :{BLACK}Litaskema bifreiða
+STR_LIVERY_SHIP_TIP                                             :{BLACK}Litaskema skipa
+STR_LIVERY_AIRCRAFT_TIP                                         :{BLACK}Litaskema flugvéla
+STR_LIVERY_PRIMARY_TIP                                          :{BLACK}Veldu lit fyrir valda hluti á listanum
+STR_LIVERY_SECONDARY_TIP                                        :{BLACK}Veldu seinni lit fyrir valda hluti á listanum
+STR_LIVERY_PANEL_TIP                                            :{BLACK}Veldu hluti til að breyta lit á, CTRL-smelltu til að velja marga saman. Smelltu í reitinn til að virkja valinn lit.
 
 ##id 0x8000
 STR_8000_KIRBY_PAUL_TANK_STEAM                                  :Kirby Paul Tank (Gufu)
@@ -2433,10 +2501,12 @@
 STR_8819_TRAIN_TOO_LONG                                         :{WHITE}Lestin er of löng
 STR_881A_TRAINS_CAN_ONLY_BE_ALTERED                             :{WHITE}Aðeins er hægt að eiga við lestir þegar þær bíða í skýli
 STR_881B_TRAINS                                                 :{WHITE}{COMPANY} - {COMMA} Lestir
+
 STR_881C_NEW_RAIL_VEHICLES                                      :{WHITE}Nýir lestarvagnar
 STR_NEW_ELRAIL_VEHICLES                                         :{WHITE}Nýjir rafdrifnir lestarvagnar
 STR_881D_NEW_MONORAIL_VEHICLES                                  :{WHITE}Nýir einteingungsvagnar
 STR_881E_NEW_MAGLEV_VEHICLES                                    :{WHITE}Nýir segullestarvagnar
+
 STR_881F_BUILD_VEHICLE                                          :{BLACK}Smíða vagn
 STR_CLONE_ROAD_VEHICLE                                          :{BLACK}Afrita bifreið
 STR_CLONE_ROAD_VEHICLE_INFO                                     :{BLACK}Þetta býr til aðra eins bifreið. Control smelltu til að deila áætlun
@@ -2507,10 +2577,10 @@
 STR_SERVICE_HINT                                                :{BLACK}Sleppa þessarri skipun nema þörf sé á viðgerð
 STR_8859_NEW_NOW_AVAILABLE                                      :{BLACK}{BIGFONT}Ný {STRING} er nú fáanleg!
 STR_885A                                                        :{BLACK}{BIGFONT}{STRING}
-STR_VEHICLE_INFO_COST_WEIGHT_SPEED_POWER                        :{BLACK}Verð: {CURRENCY} Þyngd: {WEIGHT_S}{}Hraði: {VELOCITY}  Hestöfl: {POWER}{}Rekstrarkostnaður: {CURRENCY} á ári{}Burðargeta: {CARGO}
+STR_VEHICLE_INFO_COST_WEIGHT_SPEED_POWER                        :{BLACK}Verð: {CURRENCY} Þyngd: {WEIGHT_S}{}Hraði: {VELOCITY}  Afl: {POWER}{}Rekstrarkostnaður: {CURRENCY} á ári{}Burðargeta: {CARGO}
 STR_885C_BROKEN_DOWN                                            :{RED}Bilaður
 STR_885D_AGE_RUNNING_COST_YR                                    :{BLACK}Aldur: {LTBLUE}{STRING}{BLACK}   Rekstrarkostnaður: {LTBLUE}{CURRENCY} á ári
-STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED                         :{BLACK}Þyngd: {LTBLUE}{WEIGHT_S}  {BLACK}Hestöfl: {LTBLUE}{POWER}{BLACK} Hámarkshraði: {LTBLUE}{VELOCITY}
+STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED                         :{BLACK}Þyngd: {LTBLUE}{WEIGHT_S}  {BLACK}Afl: {LTBLUE}{POWER}{BLACK} Hámarkshraði: {LTBLUE}{VELOCITY}
 STR_885F_PROFIT_THIS_YEAR_LAST_YEAR                             :{BLACK}Hagnaður á þessu ári: {LTBLUE}{CURRENCY}  (síðasta ár: {CURRENCY})
 STR_8860_RELIABILITY_BREAKDOWNS                                 :{BLACK}Áreiðanleiki: {LTBLUE}{COMMA}%  {BLACK}Bilanir frá síðustu viðgerð: {LTBLUE}{COMMA}
 STR_8861_STOPPED                                                :{RED}Stöðvaður
@@ -2535,9 +2605,9 @@
 STR_9000_ROAD_VEHICLE_IN_THE_WAY                                :{WHITE}Bíll fyrir
 STR_9001_ROAD_VEHICLES                                          :{WHITE}{COMPANY} - {COMMA} Bílar
 STR_9002                                                        :{WHITE}{VEHICLE}
-STR_9003_ROAD_VEHICLE_DEPOT                                     :{WHITE}{TOWN} Bílastöð
+STR_9003_ROAD_VEHICLE_DEPOT                                     :{WHITE}{TOWN} bifreiðastöð
 STR_9004_NEW_VEHICLES                                           :{BLACK}Kaupa bifreiðar
-STR_9006_NEW_ROAD_VEHICLES                                      :{WHITE}Nýjir bílar
+STR_9006_NEW_ROAD_VEHICLES                                      :{WHITE}Bifreiðaúrval
 STR_9007_BUILD_VEHICLE                                          :{BLACK}Kaupa bifreið
 STR_9009_CAN_T_BUILD_ROAD_VEHICLE                               :{WHITE}Get ekki byggt bíl...
 STR_900C_DETAILS                                                :{WHITE}{VEHICLE} (Upplýsingar)
@@ -2553,10 +2623,12 @@
 STR_9016_ROAD_VEHICLE_IS_WAITING                                :{WHITE}Bifreið {COMMA} bíður nú í skýli
 STR_HEADING_FOR_ROAD_DEPOT                                      :{ORANGE}Er á leið til bifreiðaskýlis {TOWN}
 STR_HEADING_FOR_ROAD_DEPOT_VEL                                  :{ORANGE}Er á leið til bifreiðaskýlis {TOWN}, {VELOCITY}
+STR_HEADING_FOR_ROAD_DEPOT_SERVICE                              :{LTBLUE}Viðhald í {TOWN} bifreiðaskýli
+STR_HEADING_FOR_ROAD_DEPOT_SERVICE_VEL                          :{LTBLUE}Viðhald í {TOWN} bifreiðaskýli, {VELOCITY}
 STR_9018_CAN_T_SEND_VEHICLE_TO_DEPOT                            :{WHITE}Get ekki sent bifreið í skýli...
 STR_9019_UNABLE_TO_FIND_LOCAL_DEPOT                             :{WHITE}Finnur ekkert nálægt skýli
 STR_901A_ROAD_VEHICLES_CLICK_ON                                 :{BLACK}Bifreið - smelltu á bifreið fyrir nánari upplýsingar
-STR_901B_BUILD_NEW_ROAD_VEHICLES                                :{BLACK}Smíða nýja bifreið (þarfnast bifreiðaskýlis)
+STR_901B_BUILD_NEW_ROAD_VEHICLES                                :{BLACK}Bæta við bílaflota fyrirtækisins (þarfnast bifreiðaskýlis)
 STR_901C_CURRENT_VEHICLE_ACTION                                 :{BLACK}Núverandi aðgerð bifreiðar - smelltu hér til að stöðva/ræsa bifreið
 STR_901D_SHOW_VEHICLE_S_ORDERS                                  :{BLACK}Sýna skipanir bifreiðar
 STR_901E_CENTER_MAIN_VIEW_ON_VEHICLE                            :{BLACK}Miðja aðalsjónarhornið á bifreið
@@ -2564,7 +2636,7 @@
 STR_9020_FORCE_VEHICLE_TO_TURN_AROUND                           :{BLACK}Þvinga bifreið til að snúa við
 STR_9021_SHOW_ROAD_VEHICLE_DETAILS                              :{BLACK}Sýna upplýsingar um bifreið
 STR_9022_VEHICLES_CLICK_ON_VEHICLE                              :{BLACK}Bifreið - smelltu á bifreið fyrir nánari upplýsingar
-STR_9023_BUILD_NEW_ROAD_VEHICLE                                 :{BLACK}Smíða nýja bifreið
+STR_9023_BUILD_NEW_ROAD_VEHICLE                                 :{BLACK}Bæta við bílaflota fyrirtækisins
 STR_9024_DRAG_ROAD_VEHICLE_TO_HERE                              :{BLACK}Dragðu bifreið hingað til að selja hana
 STR_9025_CENTER_MAIN_VIEW_ON_ROAD                               :{BLACK}Miðja aðalsjónarhorn á bifreiðaskýli
 STR_9026_ROAD_VEHICLE_SELECTION                                 :{BLACK}Bifreiðalisti - ýttu á bifreið fyrir nánari upplýsingar
@@ -2593,6 +2665,7 @@
 STR_REFIT_ROAD_VEHICLE                                          :{BLACK}Breyta bifreið
 STR_REFIT_ROAD_VEHICLE_TO_CARRY_HIGHLIGHTED                     :{BLACK}Breyta bifreið svo hún flytji valinn farm
 STR_REFIT_ROAD_VEHICLE_CAN_T                                    :{WHITE}Get ekki breytt bifreið...
+STR_ROAD_SELECT_TYPE_OF_CARGO_FOR                               :{BLACK}Veldu tegund farms sem bifreið mun flytja
 
 ##id 0x9800
 STR_9800_DOCK_CONSTRUCTION                                      :Hafnarframkvæmdir
@@ -2619,25 +2692,27 @@
 STR_9816_BUILT_VALUE                                            :{LTBLUE}{STRING}{BLACK}   Smíðað: {LTBLUE}{NUM}{BLACK} Verðmæti: {LTBLUE}{CURRENCY}
 STR_9817_CAPACITY                                               :{BLACK}Burðargeta: {LTBLUE}{CARGO}
 STR_9818_CAN_T_STOP_START_SHIP                                  :{WHITE}Get ekki stöðvað/ræst skip...
-STR_9819_CAN_T_SEND_SHIP_TO_DEPOT                               :{WHITE}Get ekki sent skip í skýli...
+STR_9819_CAN_T_SEND_SHIP_TO_DEPOT                               :{WHITE}Get ekki sent skip í slipp...
 STR_981A_UNABLE_TO_FIND_LOCAL_DEPOT                             :{WHITE}Finnur ekkert nálægt skýli
-STR_HEADING_FOR_SHIP_DEPOT                                      :{ORANGE}Stefnir að {TOWN} skipaskýlinu
-STR_HEADING_FOR_SHIP_DEPOT_VEL                                  :{ORANGE}Stefnir að {TOWN} skipaskýlinu, {VELOCITY}
-STR_981C_SHIP_IS_WAITING_IN_DEPOT                               :{WHITE}Skip {COMMA} bíður í skýli
+STR_HEADING_FOR_SHIP_DEPOT                                      :{ORANGE}Stefnir að {TOWN} slippi
+STR_HEADING_FOR_SHIP_DEPOT_VEL                                  :{ORANGE}Stefnir að {TOWN} slippi, {VELOCITY}
+STR_HEADING_FOR_SHIP_DEPOT_SERVICE                              :{LTBLUE}Viðhald í {TOWN} slippi
+STR_HEADING_FOR_SHIP_DEPOT_SERVICE_VEL                          :{LTBLUE}Viðhald í {TOWN} slippi, {VELOCITY}
+STR_981C_SHIP_IS_WAITING_IN_DEPOT                               :{WHITE}Skip {COMMA} bíður í slippi
 STR_981D_BUILD_SHIP_DOCK                                        :{BLACK}Byggja höfn
-STR_981E_BUILD_SHIP_DEPOT_FOR_BUILDING                          :{BLACK}Reisa skipaskýli (til að smíða og skoða skip)
+STR_981E_BUILD_SHIP_DEPOT_FOR_BUILDING                          :{BLACK}Reisa slipp (til að smíða og viðhalda skipum)
 STR_981F_SHIPS_CLICK_ON_SHIP_FOR                                :{BLACK}Skip - smelltu á skip fyrir nánari upplýsingar
 STR_9820_BUILD_NEW_SHIP                                         :{BLACK}Smíða nýtt skip
 STR_9821_DRAG_SHIP_TO_HERE_TO_SELL                              :{BLACK}Dragðu skip hingað til að selja það
-STR_9822_CENTER_MAIN_VIEW_ON_SHIP                               :{BLACK}Miðja aðalsjónarhorn á skipaskýli
+STR_9822_CENTER_MAIN_VIEW_ON_SHIP                               :{BLACK}Miðja aðalsjónarhorn á slipp
 STR_9823_SHIPS_CLICK_ON_SHIP_FOR                                :{BLACK}Skip - smelltu fyrir nánari upplýsingar
-STR_9824_BUILD_NEW_SHIPS_REQUIRES                               :{BLACK}Smíða nýtt skip (þarfnast skipaskýlis)
+STR_9824_BUILD_NEW_SHIPS_REQUIRES                               :{BLACK}Smíða nýtt skip (þarfnast slipps)
 STR_9825_SHIP_SELECTION_LIST_CLICK                              :{BLACK}Skipalisti - smelltu á skip fyrir nánari upplýsingar
 STR_9826_BUILD_THE_HIGHLIGHTED_SHIP                             :{BLACK}Smíða valið skip
 STR_9827_CURRENT_SHIP_ACTION_CLICK                              :{BLACK}Núverandi aðgerð skips - smelltu hér til að stöðva/ræsa skipið
 STR_9828_SHOW_SHIP_S_ORDERS                                     :{BLACK}Sýna skipanir skips
 STR_9829_CENTER_MAIN_VIEW_ON_SHIP                               :{BLACK}Miðja aðalsjónarhorn á staðsetningu skips
-STR_982A_SEND_SHIP_TO_DEPOT                                     :{BLACK}Senda skipið í skipaskýli
+STR_982A_SEND_SHIP_TO_DEPOT                                     :{BLACK}Senda skipið í slipp
 STR_982B_SHOW_SHIP_DETAILS                                      :{BLACK}Sýna nánari upplýsingar um skip
 STR_982C_NEW_SHIP_NOW_AVAILABLE                                 :{BLACK}{BIGFONT}Nýtt skip fáanlegt!
 STR_982D                                                        :{BLACK}{BIGFONT}{STRING}
@@ -2688,6 +2763,8 @@
 STR_A012_CAN_T_SEND_AIRCRAFT_TO                                 :{WHITE}Get ekki sent flugvél í flugskýli...
 STR_HEADING_FOR_HANGAR                                          :{ORANGE}Stefnir á {STATION} flugskýli
 STR_HEADING_FOR_HANGAR_VEL                                      :{ORANGE}Stefnir á {STATION} flugskýli, {VELOCITY}
+STR_HEADING_FOR_HANGAR_SERVICE                                  :{LTBLUE}Viðhald í {STATION} flugskýli
+STR_HEADING_FOR_HANGAR_SERVICE_VEL                              :{LTBLUE}Viðhald í {STATION} flugskýli, {VELOCITY}
 STR_A014_AIRCRAFT_IS_WAITING_IN                                 :{WHITE}Flugvél {COMMA} bíður í flugskýli
 STR_A015_AIRCRAFT_IN_THE_WAY                                    :{WHITE}Flugvél er fyrir
 STR_A016_CAN_T_STOP_START_AIRCRAFT                              :{WHITE}Get ekki stöðvað/ræst flugvél...
@@ -2779,13 +2856,30 @@
 STR_PERFORMANCE_DETAIL_LOAN_TIP                                 :{BLACK}Peningar sem þetta fyrirtæki hefur tekið að láni
 STR_PERFORMANCE_DETAIL_TOTAL_TIP                                :{BLACK}Heildarpunktar af mögulegum punktum
 
-STR_NEWGRF_SETTINGS_CAPTION                                     :{WHITE}Nýgrf stillingar
+STR_NEWGRF_SETTINGS_BUTTON                                      :{BLACK}NewGRF Stillingar
+STR_NEWGRF_SETTINGS_CAPTION                                     :{WHITE}NewGRF stillingar
 STR_NEWGRF_APPLY_CHANGES                                        :{BLACK}Virkja breytingar
 STR_NEWGRF_SET_PARAMETERS                                       :{BLACK}Stilla breytur
-STR_NEWGRF_TIP                                                  :{BLACK}Listi yfir öll nýgrf sett sem þú hefur sett inn. Smelltu til að breyta stillingunum
-STR_NEWGRF_NO_FILES_INSTALLED                                   :{BLACK}Það eru engar nýgrf skrár innsettar! Vinsamlegast skoðaðu leiðbeiningarnar fyrir upplýsingar um hvernig setja á inn nýja grafík
+STR_NEWGRF_TIP                                                  :{BLACK}Listi yfir öll NewGRF sett sem þú hefur sett inn. Smelltu til að breyta stillingunum
+STR_NEWGRF_NO_FILES_INSTALLED                                   :{BLACK}Það eru engar NewGRF skrár innsettar! Vinsamlegast skoðaðu leiðbeiningarnar fyrir upplýsingar um hvernig setja á inn nýja grafík
 STR_NEWGRF_FILENAME                                             :{BLACK}Skráarnafn: {SILVER}{STRING}
 STR_NEWGRF_GRF_ID                                               :{BLACK}GRF einkenni: {SILVER}{STRING}
+STR_NEWGRF_MD5SUM                                               :{BLACK}MD5 summa: {SILVER}{STRING}
+STR_NEWGRF_CONFIRMATION_TEXT                                    :{YELLOW}Þú ert í þann mund að eiga við leik í gangi, við það gæti OpenTTD hrunið.{}Ertu viss um að þú viljir halda áfram?
+
+STR_NEWGRF_ADD                                                  :{BLACK}Bæta við
+STR_NEWGRF_ADD_TIP                                              :{BLACK}Bæta NewGRF skrá við listann
+STR_NEWGRF_REMOVE                                               :{BLACK}Fjarlægja
+STR_NEWGRF_REMOVE_TIP                                           :{BLACK}Fjarlægja valda NewGRF skrá af listanum
+STR_NEWGRF_MOVEUP                                               :{BLACK}Færa ofar
+STR_NEWGRF_MOVEUP_TIP                                           :{BLACK}Færa valda NewGRF skrá ofar á listann
+STR_NEWGRF_MOVEDOWN                                             :{BLACK}Færa neðar
+STR_NEWGRF_MOVEDOWN_TIP                                         :{BLACK}Færa valda NewGRF skrá neðar á listann
+STR_NEWGRF_FILE_TIP                                             :{BLACK}Listi yfir NewGRF skrár sem eru til staðar. Smelltu á skrá til að eiga við eiginleika hennar.
+STR_NEWGRF_PARAMETER                                            :{BLACK}Eiginleikar: {SILVER}{STRING}
+
+
+
 
 STR_CURRENCY_WINDOW                                             :{WHITE}Sérvalinn gjaldeyrir
 STR_CURRENCY_EXCHANGE_RATE                                      :{LTBLUE}Gengi: {ORANGE}{CURRENCY} = £ {COMMA}
@@ -2814,11 +2908,9 @@
 STR_SCHEDULED_SHIPS_TIP                                         :{BLACK}Sýna öll skip sem hafa þessa stöð á áætlun
 
 
-
+### depot strings
 
 
-### depot strings
-
 
 
 
@@ -2849,6 +2941,7 @@
 STR_SHORT_DATE                                                  :{WHITE}{DATE_TINY}
 STR_SIGN_LIST_CAPTION                                           :{WHITE}Merkjalisti - {COMMA} merki
 
+
 ############ Lists rail types
 
 STR_RAIL_VEHICLES                                               :Járnbrautavagnar
@@ -2861,7 +2954,7 @@
 STR_TINY_BLACK                                                  :{BLACK}{TINYFONT}{COMMA}
 
 STR_PURCHASE_INFO_COST_WEIGHT                                   :{BLACK}Verð: {GOLD}{CURRENCY}{BLACK} Þyngd: {GOLD}{WEIGHT_S}
-STR_PURCHASE_INFO_SPEED_POWER                                   :{BLACK}Hámarkshraði: {GOLD}{VELOCITY}{BLACK}   Hestöfl: {GOLD}{POWER}
+STR_PURCHASE_INFO_SPEED_POWER                                   :{BLACK}Hámarkshraði: {GOLD}{VELOCITY}{BLACK}   Afl: {GOLD}{POWER}
 STR_PURCHASE_INFO_SPEED                                         :{BLACK}Hraði: {GOLD}{VELOCITY}
 STR_PURCHASE_INFO_RUNNINGCOST                                   :{BLACK}Rekstrarkostnaður: {GOLD}{CURRENCY} á ári
 STR_PURCHASE_INFO_CAPACITY                                      :{BLACK}Burðargeta: {GOLD}{CARGO} {STRING}
@@ -2893,4 +2986,8 @@
 STR_LARGE_AIRPORTS                                              :{BLACK}Stórir flugvellir
 STR_HUB_AIRPORTS                                                :{BLACK}Háannaflugvellir
 STR_HELIPORTS                                                   :{BLACK}Þyrluflugvellir
+
+############ Tooltip measurment
+
+
 ########
--- a/src/lang/italian.txt	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/lang/italian.txt	Wed Feb 14 10:46:38 2007 +0000
@@ -398,7 +398,7 @@
 STR_AVAILABLE_TRAINS                                            :{BLACK}Treni Disponibili
 STR_AVAILABLE_ROAD_VEHICLES                                     :{BLACK}Veicoli Disponibili
 STR_AVAILABLE_SHIPS                                             :{BLACK}Navi Disponibili
-STR_AVAILABLE_AIRCRAFT                                          :{BLACK}Aeromobili Disponibili
+STR_AVAILABLE_AIRCRAFT                                          :{BLACK}Aerei Disponibili
 STR_AVAILABLE_ENGINES_TIP                                       :{BLACK}Mostra una lista di motrici disponibili per quel tipo di veicolo
 STR_MANAGE_LIST                                                 :{BLACK}Gestisci lista
 STR_MANAGE_LIST_TIP                                             :{BLACK}Manda istruzioni a tutti i veicoli in questa lista
@@ -1628,7 +1628,7 @@
 STR_2025_SUBSIDIES                                              :{WHITE}Sussidi
 STR_2026_SUBSIDIES_ON_OFFER_FOR                                 :{BLACK}Sussidi offerti per il servizio:
 STR_2027_FROM_TO                                                :{ORANGE}{STRING} da {STRING} a {STRING}
-STR_2028_BY                                                     :{YELLOW} (dal {DATE_SHORT})
+STR_2028_BY                                                     :{YELLOW} (entro {DATE_SHORT})
 STR_202A_NONE                                                   :{ORANGE}Nessuno
 STR_202B_SERVICES_ALREADY_SUBSIDISED                            :{BLACK}Servizi già sussidiati:
 STR_202C_FROM_TO                                                :{ORANGE}{STRING} da {STATION} a {STATION}{YELLOW} ({COMPANY}
@@ -2425,7 +2425,7 @@
 STR_80CB_WIZZOWOW_BUBBLE_TRUCK                                  :Camion Bolle Wizzowow
 STR_80CC_MPS_OIL_TANKER                                         :Petroliera MPS
 STR_80CD_CS_INC_OIL_TANKER                                      :Petroliera CS-Inc.
-STR_80CE_MPS_PASSENGER_FERRY                                    :Traghetto FFP
+STR_80CE_MPS_PASSENGER_FERRY                                    :Traghetto MPS
 STR_80CF_FFP_PASSENGER_FERRY                                    :Traghetto FFP
 STR_80D0_BAKEWELL_300_HOVERCRAFT                                :Hovercraft Bakewell 300
 STR_80D1_CHUGGER_CHUG_PASSENGER                                 :Traghetto Chugger-Chug
--- a/src/lang/lithuanian.txt	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/lang/lithuanian.txt	Wed Feb 14 10:46:38 2007 +0000
@@ -329,6 +329,7 @@
 STR_0141_LOAD_GAME                                              :{BLACK}Atverti žaidimą
 STR_SINGLE_PLAYER                                               :{BLACK}Vienas zaidejas
 STR_MULTIPLAYER                                                 :{BLACK}Žaidimas tinkle
+STR_SCENARIO_EDITOR                                             :{BLACK}Scenarijaus redaktorius
 
 STR_64                                                          :64
 STR_128                                                         :128
@@ -428,6 +429,10 @@
 STR_NO_WAITING_CARGO                                            :{BLACK}Jokiu kroviniu nera pakrovimui
 STR_SELECT_ALL_FACILITIES                                       :{BLACK}Pazymeti visus pastatus
 STR_SELECT_ALL_TYPES                                            :{BLACK}Pazymeti visus krovinio tipus (iskaitant nelaukiancius kroviniu)
+STR_AVAILABLE_TRAINS                                            :{BLACK}Galimi traukiniai
+STR_AVAILABLE_ROAD_VEHICLES                                     :{BLACK}Galimi automobiliai
+STR_AVAILABLE_SHIPS                                             :{BLACK}Galimi laivai
+STR_AVAILABLE_AIRCRAFT                                          :{BLACK}Galimi lėktuvai
 STR_AVAILABLE_ENGINES_TIP                                       :{BLACK}Peržiūrėti galimų variklių sąrašą tinkamų šiai transporto priemonei.
 STR_MANAGE_LIST                                                 :{BLACK}Tvarkyti sąrašą
 STR_MANAGE_LIST_TIP                                             :{BLACK}Siųsti nurodymus visoms šio sąrašo tr. priemonėms
@@ -653,6 +658,8 @@
 STR_022A_GENERATE_RANDOM_LAND                                   :{BLACK}Kurti atsitiktinę sausumą
 STR_022B_RESET_LANDSCAPE                                        :{BLACK}Anuliuoti kraštovaizdį
 STR_022C_RESET_LANDSCAPE                                        :{WHITE}Anuliuoti kraštovaizdį
+STR_RESET_LANDSCAPE_TOOLTIP                                     :{BLACK}Pašalinti visas žaidėjo turimas transporto priemones nuo žemėlapio
+STR_RESET_LANDSCAPE_CONFIRMATION_TEXT                           :{WHITE}Ar tikrai norite pašalinti visas žaidėjo turimas transporto priemones?
 STR_022E_LANDSCAPE_GENERATION                                   :{BLACK}Kraštovaizdžio kūrimas
 STR_022F_TOWN_GENERATION                                        :{BLACK}Miesto įkūrimas
 STR_0230_INDUSTRY_GENERATION                                    :{BLACK}Pramonės kūrimas
@@ -757,6 +764,7 @@
 STR_0291_DELETE_THIS_TOWN_COMPLETELY                            :{BLACK}Šalinti šį miestą
 STR_0292_SAVE_SCENARIO                                          :Išsaugoti scenarijų
 STR_0293_LOAD_SCENARIO                                          :Atverti scenarijų
+STR_LOAD_HEIGHTMAP                                              :Atverti aukščių žemėlapį
 STR_0294_QUIT_EDITOR                                            :Uždaryti redaktoriu
 STR_0295                                                        :
 STR_0296_QUIT                                                   :Išeiti
@@ -1145,6 +1153,7 @@
 STR_CONFIG_PATCHES_SMOOTH_ECONOMY                               :{LTBLUE}Tolygi ekonomika (daug, bet nezymiu pokyciu)
 STR_CONFIG_PATCHES_ALLOW_SHARES                                 :{LTBLUE}Leisti pirkti kitų kompanijų akcijas
 STR_CONFIG_PATCHES_DRAG_SIGNALS_DENSITY                         :{LTBLUE}Tempiant, kopijuoti šviesoforus kas: {ORANGE}{STRING} langel{P į lius lių}
+STR_CONFIG_PATCHES_SEMAPHORE_BUILD_BEFORE_DATE                  :{LTBLUE}Automatiškai pastatyti semaforus prieš: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_TOOLBAR_POS                                  :{LTBLUE}Pagrindines irankiu juostos pozicija: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_TOOLBAR_POS_LEFT                             :Kaireje
 STR_CONFIG_PATCHES_TOOLBAR_POS_CENTER                           :Centruoti
@@ -1442,6 +1451,7 @@
 STR_NETWORK_ERR_NOTAVAILABLE                                    :{WHITE} Nerastas tinklo irenginys arba sukompiliuota be ENABLE_NETWORK
 STR_NETWORK_ERR_NOSERVER                                        :{WHITE} Nerado nei vieno zidimo tinkle
 STR_NETWORK_ERR_NOCONNECTION                                    :{WHITE} Serveris neatsake i uzklausa
+STR_NETWORK_ERR_NEWGRF_MISMATCH                                 :{WHITE} Nepavyko prisijungti dėl Papild. grafikos neatitikimo
 STR_NETWORK_ERR_DESYNC                                          :{WHITE} Zaidimo tinkle sinchronizacija nepavyko
 STR_NETWORK_ERR_LOSTCONNECTION                                  :{WHITE} Nutruko rysys
 STR_NETWORK_ERR_SAVEGAMEERROR                                   :{WHITE} Negali atverti issaugoto zaidimo
@@ -1463,6 +1473,7 @@
 STR_NETWORK_ERR_CLIENT_SAVEGAME                                 :negali uzkrauti zemelapio
 STR_NETWORK_ERR_CLIENT_CONNECTION_LOST                          :prarastas rysys
 STR_NETWORK_ERR_CLIENT_PROTOCOL_ERROR                           :protokolo klaida
+STR_NETWORK_ERR_CLIENT_NEWGRF_MISMATCH                          :Papild. grafikos neatitikimas
 STR_NETWORK_ERR_CLIENT_NOT_AUTHORIZED                           :Ne autorizuota
 STR_NETWORK_ERR_CLIENT_NOT_EXPECTED                             :gautas neteisingas paketas
 STR_NETWORK_ERR_CLIENT_WRONG_REVISION                           :bloga versija
@@ -1679,7 +1690,7 @@
 STR_2042_DO_IT                                                  :{BLACK}Pirmyn!
 STR_2043_LIST_OF_THINGS_TO_DO_AT                                :{BLACK}Sąrašas veiksmų, kuriuos galima atlikti šiame mieste - spragtelėjus pavadinimą, pateikiama daugiau informacijos
 STR_2044_CARRY_OUT_THE_HIGHLIGHTED                              :{BLACK}Atlikti aukščiau pasirinktą veiksmą
-STR_2045_ACTIONS_AVAILABLE                                      :{BLACK}Galimos akcijos:
+STR_2045_ACTIONS_AVAILABLE                                      :{BLACK}Galimi veiksmai:
 STR_2046_SMALL_ADVERTISING_CAMPAIGN                             :Maža reklamos kompanija
 STR_2047_MEDIUM_ADVERTISING_CAMPAIGN                            :Vidutinė reklamos kompanija
 STR_2048_LARGE_ADVERTISING_CAMPAIGN                             :Didelė reklamos kompanija
--- a/src/lang/portuguese.txt	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/lang/portuguese.txt	Wed Feb 14 10:46:38 2007 +0000
@@ -116,36 +116,36 @@
 STR_QUANTITY_FIZZY_DRINKS                                       :{COMMA} bebida{P "" s} gasosa{P "" s}
 STR_ABBREV_NOTHING                                              :
 STR_ABBREV_PASSENGERS                                           :{TINYFONT}PS
-STR_ABBREV_COAL                                                 :{TINYFONT}CL
-STR_ABBREV_MAIL                                                 :{TINYFONT}ML
-STR_ABBREV_OIL                                                  :{TINYFONT}OL
-STR_ABBREV_LIVESTOCK                                            :{TINYFONT}LV
-STR_ABBREV_GOODS                                                :{TINYFONT}GD
-STR_ABBREV_GRAIN                                                :{TINYFONT}GR
-STR_ABBREV_WOOD                                                 :{TINYFONT}WD
-STR_ABBREV_IRON_ORE                                             :{TINYFONT}OR
-STR_ABBREV_STEEL                                                :{TINYFONT}ST
+STR_ABBREV_COAL                                                 :{TINYFONT}CV
+STR_ABBREV_MAIL                                                 :{TINYFONT}CR
+STR_ABBREV_OIL                                                  :{TINYFONT}PT
+STR_ABBREV_LIVESTOCK                                            :{TINYFONT}GD
+STR_ABBREV_GOODS                                                :{TINYFONT}BN
+STR_ABBREV_GRAIN                                                :{TINYFONT}CR
+STR_ABBREV_WOOD                                                 :{TINYFONT}MD
+STR_ABBREV_IRON_ORE                                             :{TINYFONT}FR
+STR_ABBREV_STEEL                                                :{TINYFONT}AÇ
 STR_ABBREV_VALUABLES                                            :{TINYFONT}VL
 STR_ABBREV_COPPER_ORE                                           :{TINYFONT}CO
-STR_ABBREV_MAIZE                                                :{TINYFONT}MZ
+STR_ABBREV_MAIZE                                                :{TINYFONT}ML
 STR_ABBREV_FRUIT                                                :{TINYFONT}FT
 STR_ABBREV_DIAMONDS                                             :{TINYFONT}DM
-STR_ABBREV_FOOD                                                 :{TINYFONT}FD
-STR_ABBREV_PAPER                                                :{TINYFONT}PR
-STR_ABBREV_GOLD                                                 :{TINYFONT}GD
-STR_ABBREV_WATER                                                :{TINYFONT}WR
-STR_ABBREV_WHEAT                                                :{TINYFONT}WH
-STR_ABBREV_RUBBER                                               :{TINYFONT}RB
-STR_ABBREV_SUGAR                                                :{TINYFONT}SG
+STR_ABBREV_FOOD                                                 :{TINYFONT}CM
+STR_ABBREV_PAPER                                                :{TINYFONT}PP
+STR_ABBREV_GOLD                                                 :{TINYFONT}OU
+STR_ABBREV_WATER                                                :{TINYFONT}AG
+STR_ABBREV_WHEAT                                                :{TINYFONT}TR
+STR_ABBREV_RUBBER                                               :{TINYFONT}BR
+STR_ABBREV_SUGAR                                                :{TINYFONT}AÇ
 STR_ABBREV_TOYS                                                 :{TINYFONT}TY
-STR_ABBREV_SWEETS                                               :{TINYFONT}SW
+STR_ABBREV_SWEETS                                               :{TINYFONT}DC
 STR_ABBREV_COLA                                                 :{TINYFONT}CL
-STR_ABBREV_CANDYFLOSS                                           :{TINYFONT}CF
-STR_ABBREV_BUBBLES                                              :{TINYFONT}BU
-STR_ABBREV_TOFFEE                                               :{TINYFONT}TF
+STR_ABBREV_CANDYFLOSS                                           :{TINYFONT}AD
+STR_ABBREV_BUBBLES                                              :{TINYFONT}BO
+STR_ABBREV_TOFFEE                                               :{TINYFONT}CM
 STR_ABBREV_BATTERIES                                            :{TINYFONT}BA
 STR_ABBREV_PLASTIC                                              :{TINYFONT}PL
-STR_ABBREV_FIZZY_DRINKS                                         :{TINYFONT}FZ
+STR_ABBREV_FIZZY_DRINKS                                         :{TINYFONT}BG
 STR_ABBREV_NONE                                                 :{TINYFONT}NÃO
 STR_ABBREV_ALL                                                  :{TINYFONT}TUDO
 STR_00AE                                                        :{WHITE}{DATE_SHORT}
--- a/src/lang/slovak.txt	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/lang/slovak.txt	Wed Feb 14 10:46:38 2007 +0000
@@ -8,24 +8,24 @@
 ##id 0x0000
 STR_NULL                                                        :
 STR_0001_OFF_EDGE_OF_MAP                                        :{WHITE}Za okrajom mapy
-STR_0002_TOO_CLOSE_TO_EDGE_OF_MAP                               :{WHITE}Prilis blizko okraja mapy
-STR_0003_NOT_ENOUGH_CASH_REQUIRES                               :{WHITE}Mala hotovost - potrebna {CURRENCY}
+STR_0002_TOO_CLOSE_TO_EDGE_OF_MAP                               :{WHITE}Príliš blízko okraja mapy
+STR_0003_NOT_ENOUGH_CASH_REQUIRES                               :{WHITE}Malá hotovost - potrebných {CURRENCY}
 STR_0004                                                        :{WHITE}{CURRENCY64}
 STR_0005                                                        :{RED}{CURRENCY64}
 STR_EMPTY                                                       :
-STR_0007_FLAT_LAND_REQUIRED                                     :{WHITE}Potrebny rovny teren
+STR_0007_FLAT_LAND_REQUIRED                                     :{WHITE}Potrebný rovný terén
 STR_0008_WAITING                                                :{BLACK}Caka: {WHITE}{STRING}
 STR_0009                                                        :{WHITE}{CARGO}
 STR_000A_EN_ROUTE_FROM                                          :{WHITE}{CARGO}{YELLOW}  (na ceste z
 STR_000B                                                        :{YELLOW}{STATION})
-STR_000C_ACCEPTS                                                :{BLACK}Prijima: {WHITE}
-STR_000D_ACCEPTS                                                :{BLACK}Prijima: {GOLD}
+STR_000C_ACCEPTS                                                :{BLACK}Prijíma: {WHITE}
+STR_000D_ACCEPTS                                                :{BLACK}Prijíma: {GOLD}
 STR_000E                                                        :
-STR_000F_PASSENGERS                                             :Cestujucich
+STR_000F_PASSENGERS                                             :Cestujúcich
 STR_000F_PASSENGERS.g                                           :cestujucich
 STR_0010_COAL                                                   :Uhlie
 STR_0010_COAL.g                                                 :uhlia
-STR_0011_MAIL                                                   :Postu
+STR_0011_MAIL                                                   :Poštu
 STR_0011_MAIL.g                                                 :posty
 STR_0012_OIL                                                    :Ropu
 STR_0012_OIL.g                                                  :ropy
@@ -37,13 +37,13 @@
 STR_0015_GRAIN.g                                                :obilia
 STR_0016_WOOD                                                   :Drevo
 STR_0016_WOOD.g                                                 :dreva
-STR_0017_IRON_ORE                                               :Zeleznu rudu
+STR_0017_IRON_ORE                                               :Železnú rudu
 STR_0017_IRON_ORE.g                                             :zeleznej rudy
 STR_0018_STEEL                                                  :Ocel
 STR_0018_STEEL.g                                                :ocele
 STR_0019_VALUABLES                                              :Cennosti
 STR_0019_VALUABLES.g                                            :cennosti
-STR_001A_COPPER_ORE                                             :Medenna ruda
+STR_001A_COPPER_ORE                                             :Medenná ruda
 STR_001A_COPPER_ORE.g                                           :medennej rudy
 STR_001B_MAIZE                                                  :Kukuricu
 STR_001B_MAIZE.g                                                :kukurice
@@ -84,7 +84,7 @@
 STR_002D_FIZZY_DRINKS                                           :Sumienku
 STR_002D_FIZZY_DRINKS.g                                         :sumienky
 STR_002E                                                        :
-STR_002F_PASSENGER                                              :Cestujuci
+STR_002F_PASSENGER                                              :Cestujúci
 STR_002F_PASSENGER.g                                            :cestujucich
 STR_0030_COAL                                                   :Uhlie
 STR_0030_COAL.g                                                 :uhlia
@@ -100,13 +100,13 @@
 STR_0035_GRAIN.g                                                :obilia
 STR_0036_WOOD                                                   :Drevo
 STR_0036_WOOD.g                                                 :dreva
-STR_0037_IRON_ORE                                               :Zelezna ruda
+STR_0037_IRON_ORE                                               :Železná ruda
 STR_0037_IRON_ORE.g                                             :zeleznej rudy
 STR_0038_STEEL                                                  :Ocel
 STR_0038_STEEL.g                                                :ocele
 STR_0039_VALUABLES                                              :Cennosti
 STR_0039_VALUABLES.g                                            :cennosti
-STR_003A_COPPER_ORE                                             :Medenna ruda
+STR_003A_COPPER_ORE                                             :Medenná ruda
 STR_003A_COPPER_ORE.g                                           :medennej rudy
 STR_003B_MAIZE                                                  :Kukurica
 STR_003B_MAIZE.g                                                :kukurice
@@ -165,7 +165,7 @@
 STR_QUANTITY_FOOD                                               :{WEIGHT} jedla
 STR_QUANTITY_PAPER                                              :{WEIGHT} papiera
 STR_QUANTITY_GOLD                                               :{COMMA} deb{P na ny ien} zlata
-STR_QUANTITY_WATER                                              :{VOLUME} voda
+STR_QUANTITY_WATER                                              :{VOLUME} vody
 STR_QUANTITY_WHEAT                                              :{WEIGHT} psenice
 STR_QUANTITY_RUBBER                                             :{VOLUME} kaucuk
 STR_QUANTITY_SUGAR                                              :{WEIGHT} cukru
@@ -216,12 +216,12 @@
 STR_00AF                                                        :{WHITE}{DATE_LONG}
 STR_00B0_MAP                                                    :{WHITE}Mapa - {STRING}
 STR_00B1_GAME_OPTIONS                                           :{WHITE}Nastavenia hry
-STR_00B2_MESSAGE                                                :{YELLOW}Sprava
-STR_00B3_MESSAGE_FROM                                           :{YELLOW}Sprava od {STRING}
+STR_00B2_MESSAGE                                                :{YELLOW}Správa
+STR_00B3_MESSAGE_FROM                                           :{YELLOW}Správa od {STRING}
 STR_POPUP_CAUTION_CAPTION                                       :{WHITE}Upozornenie!
-STR_00B4_CAN_T_DO_THIS                                          :{WHITE}Nie je mozne vykonat ...
-STR_00B5_CAN_T_CLEAR_THIS_AREA                                  :{WHITE}Oblast nie je mozne vycistit ...
-STR_00B6_ORIGINAL_COPYRIGHT                                     :{BLACK}Povodny copyright: {COPYRIGHT} 1995 Chris Sawyer, vsetky prava vyhradene
+STR_00B4_CAN_T_DO_THIS                                          :{WHITE}Nie je možné vykonat ...
+STR_00B5_CAN_T_CLEAR_THIS_AREA                                  :{WHITE}Oblast nie je možné vycistit ...
+STR_00B6_ORIGINAL_COPYRIGHT                                     :{BLACK}Povodný copyright: {COPYRIGHT} 1995 Chris Sawyer, vsetky prava vyhradene
 STR_00B7_VERSION                                                :{BLACK}OpenTTD verzia {REV}
 STR_00BA_COPYRIGHT_OPENTTD                                      :{BLACK}OpenTTD {COPYRIGHT}2002-2007 team OpenTTD
 STR_TRANSLATED_BY                                               :{BLACK} Preklad - Lukas Lengyel & gpsoft
@@ -229,78 +229,78 @@
 STR_00C5                                                        :{BLACK}{CROSS}
 STR_00C6                                                        :{SILVER}{CROSS}
 STR_00C7_QUIT                                                   :{WHITE}Koniec
-STR_00C8_YES                                                    :{BLACK}Ano
+STR_00C8_YES                                                    :{BLACK}Áno
 STR_00C9_NO                                                     :{BLACK}Nie
-STR_00CA_ARE_YOU_SURE_YOU_WANT_TO                               :{YELLOW}Si si isty ze chces ukoncit hru a vratit sa do {STRING}?
+STR_00CA_ARE_YOU_SURE_YOU_WANT_TO                               :{YELLOW}Si si istý že chces ukoncit hru a vrátit sa do {STRING}?
 STR_00CB_1                                                      :{BLACK}1
 STR_00CC_2                                                      :{BLACK}2
 STR_00CD_3                                                      :{BLACK}3
 STR_00CE_4                                                      :{BLACK}4
 STR_00CF_5                                                      :{BLACK}5
 STR_00D0_NOTHING                                                :Nic
-STR_00D1_DARK_BLUE                                              :Tmavomodra
-STR_00D2_PALE_GREEN                                             :Svetlozelena
-STR_00D3_PINK                                                   :Ruzova
-STR_00D4_YELLOW                                                 :Zlta
-STR_00D5_RED                                                    :Cervena
-STR_00D6_LIGHT_BLUE                                             :Svetlomodra
-STR_00D7_GREEN                                                  :Zelena
-STR_00D8_DARK_GREEN                                             :Tmavozelena
-STR_00D9_BLUE                                                   :Modra
-STR_00DA_CREAM                                                  :Kremova
-STR_00DB_MAUVE                                                  :Ruzova
-STR_00DC_PURPLE                                                 :Fialova
-STR_00DD_ORANGE                                                 :Oranzova
-STR_00DE_BROWN                                                  :Hneda
-STR_00DF_GREY                                                   :Seda
+STR_00D1_DARK_BLUE                                              :Tmavomodrá
+STR_00D2_PALE_GREEN                                             :Svetlozelená
+STR_00D3_PINK                                                   :Ružová
+STR_00D4_YELLOW                                                 :Žltá
+STR_00D5_RED                                                    :Cervená
+STR_00D6_LIGHT_BLUE                                             :Svetlomodrá
+STR_00D7_GREEN                                                  :Zelená
+STR_00D8_DARK_GREEN                                             :Tmavozelená
+STR_00D9_BLUE                                                   :Modrá
+STR_00DA_CREAM                                                  :Krémová
+STR_00DB_MAUVE                                                  :Ružová
+STR_00DC_PURPLE                                                 :Fialová
+STR_00DD_ORANGE                                                 :Oranžová
+STR_00DE_BROWN                                                  :Hnedá
+STR_00DF_GREY                                                   :Sedá
 STR_00E0_WHITE                                                  :Biela
-STR_00E1_TOO_MANY_VEHICLES_IN_GAME                              :{WHITE}V hre je prilis vela dopravnych prostriedkov
+STR_00E1_TOO_MANY_VEHICLES_IN_GAME                              :{WHITE}V hre je prílis vela dopravných prostriedkov
 STR_00E2                                                        :{BLACK}{COMMA}
 STR_00E3                                                        :{RED}{COMMA}
-STR_00E4_LOCATION                                               :{BLACK}Pozicia
+STR_00E4_LOCATION                                               :{BLACK}Pozícia
 STR_00E5_CONTOURS                                               :Vrstevnice
-STR_00E6_VEHICLES                                               :Dopravne Prostriedky
+STR_00E6_VEHICLES                                               :Dopravné prostriedky
 STR_00E7_INDUSTRIES                                             :Priemysel
 STR_00E8_ROUTES                                                 :Trasy
-STR_00E9_VEGETATION                                             :Vegetacia
-STR_00EA_OWNERS                                                 :Vlastnici
+STR_00E9_VEGETATION                                             :Vegetácia
+STR_00EA_OWNERS                                                 :Vlastníci
 STR_00EB_ROADS                                                  :{BLACK}{TINYFONT}Cesty
-STR_00EC_RAILROADS                                              :{BLACK}{TINYFONT}Zeleznicne drahy
-STR_00ED_STATIONS_AIRPORTS_DOCKS                                :{BLACK}{TINYFONT}Stanice/Letiska/Pristavy
-STR_00EE_BUILDINGS_INDUSTRIES                                   :{BLACK}{TINYFONT}Budovy/Tovarne
-STR_00EF_VEHICLES                                               :{BLACK}{TINYFONT}Dopravne Prostriedky
+STR_00EC_RAILROADS                                              :{BLACK}{TINYFONT}Železnicné trate
+STR_00ED_STATIONS_AIRPORTS_DOCKS                                :{BLACK}{TINYFONT}Stanice/Letiská/Prístavy
+STR_00EE_BUILDINGS_INDUSTRIES                                   :{BLACK}{TINYFONT}Budovy/Priemysel
+STR_00EF_VEHICLES                                               :{BLACK}{TINYFONT}Dopravné prostriedky
 STR_00F0_100M                                                   :{BLACK}{TINYFONT}100m
 STR_00F1_200M                                                   :{BLACK}{TINYFONT}200m
 STR_00F2_300M                                                   :{BLACK}{TINYFONT}300m
 STR_00F3_400M                                                   :{BLACK}{TINYFONT}400m
 STR_00F4_500M                                                   :{BLACK}{TINYFONT}500m
 STR_00F5_TRAINS                                                 :{BLACK}{TINYFONT}Vlaky
-STR_00F6_ROAD_VEHICLES                                          :{BLACK}{TINYFONT}Auta
+STR_00F6_ROAD_VEHICLES                                          :{BLACK}{TINYFONT}Cestné vozidlá
 STR_00F7_SHIPS                                                  :{BLACK}{TINYFONT}Lode
-STR_00F8_AIRCRAFT                                               :{BLACK}{TINYFONT}Lietadla
-STR_00F9_TRANSPORT_ROUTES                                       :{BLACK}{TINYFONT}Dopravne Trasy
-STR_00FA_COAL_MINE                                              :{BLACK}{TINYFONT}Uholna bana
-STR_00FB_POWER_STATION                                          :{BLACK}{TINYFONT}Elektraren
+STR_00F8_AIRCRAFT                                               :{BLACK}{TINYFONT}Lietadlá
+STR_00F9_TRANSPORT_ROUTES                                       :{BLACK}{TINYFONT}Dopravné trasy
+STR_00FA_COAL_MINE                                              :{BLACK}{TINYFONT}Uholná bana
+STR_00FB_POWER_STATION                                          :{BLACK}{TINYFONT}Elektráren
 STR_00FC_FOREST                                                 :{BLACK}{TINYFONT}Les
-STR_00FD_SAWMILL                                                :{BLACK}{TINYFONT}Pila
-STR_00FE_OIL_REFINERY                                           :{BLACK}{TINYFONT}Ropna rafineria
+STR_00FD_SAWMILL                                                :{BLACK}{TINYFONT}Píla
+STR_00FE_OIL_REFINERY                                           :{BLACK}{TINYFONT}Ropná rafinéria
 STR_00FF_FARM                                                   :{BLACK}{TINYFONT}Farma
-STR_0100_FACTORY                                                :{BLACK}{TINYFONT}Tovaren
+STR_0100_FACTORY                                                :{BLACK}{TINYFONT}Továren
 STR_0101_PRINTING_WORKS                                         :{BLACK}{TINYFONT}Tlaciaren
-STR_0102_OIL_WELLS                                              :{BLACK}{TINYFONT}Ropny vrt
-STR_0103_IRON_ORE_MINE                                          :{BLACK}{TINYFONT}Zelezorudna bana
+STR_0102_OIL_WELLS                                              :{BLACK}{TINYFONT}Ropné vrty
+STR_0103_IRON_ORE_MINE                                          :{BLACK}{TINYFONT}Železorudná bana
 STR_0104_STEEL_MILL                                             :{BLACK}{TINYFONT}Oceliaren
 STR_0105_BANK                                                   :{BLACK}{TINYFONT}Banka
-STR_0106_PAPER_MILL                                             :{BLACK}{TINYFONT}Vyroba papiera
-STR_0107_GOLD_MINE                                              :{BLACK}{TINYFONT}Zlata bana
-STR_0108_FOOD_PROCESSING_PLANT                                  :{BLACK}{TINYFONT}Vyroba potravin
-STR_0109_DIAMOND_MINE                                           :{BLACK}{TINYFONT}Diamantova bana
-STR_010A_COPPER_ORE_MINE                                        :{BLACK}{TINYFONT}Medenna bana
-STR_010B_FRUIT_PLANTATION                                       :{BLACK}{TINYFONT}Ovocny sad
-STR_010C_RUBBER_PLANTATION                                      :{BLACK}{TINYFONT}Kaucukova plantaz
-STR_010D_WATER_SUPPLY                                           :{BLACK}{TINYFONT}Vodny zdroj
+STR_0106_PAPER_MILL                                             :{BLACK}{TINYFONT}Výroba papiera
+STR_0107_GOLD_MINE                                              :{BLACK}{TINYFONT}Zlatá bana
+STR_0108_FOOD_PROCESSING_PLANT                                  :{BLACK}{TINYFONT}Výroba potravín
+STR_0109_DIAMOND_MINE                                           :{BLACK}{TINYFONT}Diamantová bana
+STR_010A_COPPER_ORE_MINE                                        :{BLACK}{TINYFONT}Medenná bana
+STR_010B_FRUIT_PLANTATION                                       :{BLACK}{TINYFONT}Ovocný sad
+STR_010C_RUBBER_PLANTATION                                      :{BLACK}{TINYFONT}Kaucuková plantáž
+STR_010D_WATER_SUPPLY                                           :{BLACK}{TINYFONT}Vodný zdroj
 STR_010E_WATER_TOWER                                            :{BLACK}{TINYFONT}Vodojem
-STR_010F_LUMBER_MILL                                            :{BLACK}{TINYFONT}Pila
+STR_010F_LUMBER_MILL                                            :{BLACK}{TINYFONT}Píla
 STR_0110_COTTON_CANDY_FOREST                                    :{BLACK}{TINYFONT}Les cukrovej vaty
 STR_0111_CANDY_FACTORY                                          :{BLACK}{TINYFONT}Cukrovar
 STR_0112_BATTERY_FARM                                           :{BLACK}{TINYFONT}Vyroba baterii
@@ -312,30 +312,30 @@
 STR_0118_BUBBLE_GENERATOR                                       :{BLACK}{TINYFONT}Bublifuk
 STR_0119_TOFFEE_QUARRY                                          :{BLACK}{TINYFONT}Karamelovy lom
 STR_011A_SUGAR_MINE                                             :{BLACK}{TINYFONT}Cukrova bana
-STR_011B_RAILROAD_STATION                                       :{BLACK}{TINYFONT}Zeleznicna stanica
+STR_011B_RAILROAD_STATION                                       :{BLACK}{TINYFONT}Železnicná stanica
 STR_011C_TRUCK_LOADING_BAY                                      :{BLACK}{TINYFONT}Nakladacia rampa
-STR_011D_BUS_STATION                                            :{BLACK}{TINYFONT}Autobusova zastavka
+STR_011D_BUS_STATION                                            :{BLACK}{TINYFONT}Autobusová stanica
 STR_011E_AIRPORT_HELIPORT                                       :{BLACK}{TINYFONT}Letisko
-STR_011F_DOCK                                                   :{BLACK}{TINYFONT}Pristav
-STR_0120_ROUGH_LAND                                             :{BLACK}{TINYFONT}Hruby teren
-STR_0121_GRASS_LAND                                             :{BLACK}{TINYFONT}Travnaty teren
-STR_0122_BARE_LAND                                              :{BLACK}{TINYFONT}Holy teren
+STR_011F_DOCK                                                   :{BLACK}{TINYFONT}Prístav
+STR_0120_ROUGH_LAND                                             :{BLACK}{TINYFONT}Nerovný terén
+STR_0121_GRASS_LAND                                             :{BLACK}{TINYFONT}Trávnatý terén
+STR_0122_BARE_LAND                                              :{BLACK}{TINYFONT}Holý terén
 STR_0123_FIELDS                                                 :{BLACK}{TINYFONT}Polia
 STR_0124_TREES                                                  :{BLACK}{TINYFONT}Lesy
 STR_0125_ROCKS                                                  :{BLACK}{TINYFONT}Skaly
 STR_0126_WATER                                                  :{BLACK}{TINYFONT}Voda
-STR_0127_NO_OWNER                                               :{BLACK}{TINYFONT}Bez vlastnika
-STR_0128_TOWNS                                                  :{BLACK}{TINYFONT}Mesta
+STR_0127_NO_OWNER                                               :{BLACK}{TINYFONT}Bez vlastníka
+STR_0128_TOWNS                                                  :{BLACK}{TINYFONT}Mestá
 STR_0129_INDUSTRIES                                             :{BLACK}{TINYFONT}Priemysel
-STR_012A_DESERT                                                 :{BLACK}{TINYFONT}Pust
+STR_012A_DESERT                                                 :{BLACK}{TINYFONT}Púšt
 STR_012B_SNOW                                                   :{BLACK}{TINYFONT}Sneh
-STR_012C_MESSAGE                                                :{WHITE}Sprava
+STR_012C_MESSAGE                                                :{WHITE}Správa
 STR_012D                                                        :{WHITE}{STRING}
-STR_012E_CANCEL                                                 :{BLACK}Zrusit
+STR_012E_CANCEL                                                 :{BLACK}Zrušit
 STR_012F_OK                                                     :{BLACK}OK
 STR_0130_RENAME                                                 :{BLACK}Premenovat
-STR_0131_TOO_MANY_NAMES_DEFINED                                 :{WHITE}Pouzitych prilis vela mien
-STR_0132_CHOSEN_NAME_IN_USE_ALREADY                             :{WHITE}Vybrane meno je uz pouzite
+STR_0131_TOO_MANY_NAMES_DEFINED                                 :{WHITE}Použitých príliš vela mien
+STR_0132_CHOSEN_NAME_IN_USE_ALREADY                             :{WHITE}Vybrané meno je už použité
 
 STR_0133_WINDOWS                                                :Windows
 STR_0134_UNIX                                                   :Unix
@@ -345,14 +345,14 @@
 STR_OSNAME_AMIGAOS                                              :AmigaOS
 STR_OSNAME_OS2                                                  :OS/2
 
-STR_013B_OWNED_BY                                               :{WHITE}...vlastnik {STRING}
-STR_013C_CARGO                                                  :{BLACK}Naklad
-STR_013D_INFORMATION                                            :{BLACK}Informacie
+STR_013B_OWNED_BY                                               :{WHITE}... vlastníkom je {STRING}
+STR_013C_CARGO                                                  :{BLACK}Náklad
+STR_013D_INFORMATION                                            :{BLACK}Informácie
 STR_013E_CAPACITIES                                             :{BLACK}Kapacita
-STR_013E_TOTAL_CARGO                                            :{BLACK}Celkovy naklad
+STR_013E_TOTAL_CARGO                                            :{BLACK}Celkový náklad
 STR_013F_CAPACITY                                               :{BLACK}Kapacita: {LTBLUE}{CARGO}
 STR_CAPACITY_MULT                                               :{BLACK}Kapacita: {LTBLUE}{CARGO} (x{NUM})
-STR_013F_TOTAL_CAPACITY_TEXT                                    :{BLACK}Celkovy naklad (kapacita) tohoto vlaku:
+STR_013F_TOTAL_CAPACITY_TEXT                                    :{BLACK}Celkový náklad (kapacita) tohto vlaku:
 STR_013F_TOTAL_CAPACITY                                         :{LTBLUE}- {CARGO} ({SHORTCARGO})
 STR_TOTAL_CAPACITY_MULT                                         :{LTBLUE}- {CARGO} ({SHORTCARGO}) (x{NUM})
 STR_0140_NEW_GAME                                               :{BLACK}Nová hra
@@ -374,7 +374,7 @@
 STR_0150_SOMEONE                                                :niekto{SKIP}{SKIP}
 STR_0151_MAP_OF_WORLD                                           :Mapa sveta
 STR_0152_TOWN_DIRECTORY                                         :Zoznam miest
-STR_0153_SUBSIDIES                                              :Dotacie
+STR_0153_SUBSIDIES                                              :Dotácie
 
 STR_UNITS_IMPERIAL                                              :Imperialne
 STR_UNITS_METRIC                                                :Metricke
@@ -409,18 +409,18 @@
 STR_UNITS_FORCE_SI                                              :{COMMA} kN
 
 ############ range for menu starts
-STR_0154_OPERATING_PROFIT_GRAPH                                 :Graf prevadzkoveho zisku
-STR_0155_INCOME_GRAPH                                           :Graf trzieb
-STR_0156_DELIVERED_CARGO_GRAPH                                  :Graf prepraveneho nakladu
-STR_0157_PERFORMANCE_HISTORY_GRAPH                              :Graf hodnotenia vykonu
+STR_0154_OPERATING_PROFIT_GRAPH                                 :Graf prevádzkového zisku
+STR_0155_INCOME_GRAPH                                           :Graf tržieb
+STR_0156_DELIVERED_CARGO_GRAPH                                  :Graf prepraveného nákladu
+STR_0157_PERFORMANCE_HISTORY_GRAPH                              :Graf hodnotenia výkonu
 STR_0158_COMPANY_VALUE_GRAPH                                    :Graf hodnoty spolocnosti
 STR_0159_CARGO_PAYMENT_RATES                                    :Ceny prepravy
-STR_015A_COMPANY_LEAGUE_TABLE                                   :Hodnotenie spolocnosti
+STR_015A_COMPANY_LEAGUE_TABLE                                   :Hodnotenie spolocností
 STR_PERFORMANCE_DETAIL_MENU                                     :Detailny rating vykonu
 ############ range for menu ends
 
 STR_015B_OPENTTD                                                :{WHITE}OpenTTD
-STR_015C_SAVE_GAME                                              :Ulozit hru
+STR_015C_SAVE_GAME                                              :Uložit hru
 STR_015D_LOAD_GAME                                              :Nahrat hru
 STR_015E_QUIT_GAME                                              :Ukoncit hru
 STR_015F_QUIT                                                   :Ukoncit OpenTTD
@@ -492,49 +492,49 @@
 STR_016F                                                        :{TINYFONT}{STRING}{} {STRING}{}{NUM}
 STR_0170                                                        :{TINYFONT}{STRING}-
 STR_0171_PAUSE_GAME                                             :{BLACK}Pauza
-STR_0172_SAVE_GAME_ABANDON_GAME                                 :{BLACK}Ulozit hru, opustit hru, ukoncit program
-STR_0173_DISPLAY_LIST_OF_COMPANY                                :{BLACK}Zoznam stanic spolocnosti
+STR_0172_SAVE_GAME_ABANDON_GAME                                 :{BLACK}Uložit hru, opustit hru, ukoncit program
+STR_0173_DISPLAY_LIST_OF_COMPANY                                :{BLACK}Zoznam staníc spolocnosti
 STR_0174_DISPLAY_MAP                                            :{BLACK}Zobrazit mapu
 STR_0175_DISPLAY_MAP_TOWN_DIRECTORY                             :{BLACK}Zobrazit mapu, zoznam miest
 STR_0176_DISPLAY_TOWN_DIRECTORY                                 :{BLACK}Zobrazit zoznam miest
-STR_0177_DISPLAY_COMPANY_FINANCES                               :{BLACK}Financne informacie o spolocnosti
-STR_0178_DISPLAY_COMPANY_GENERAL                                :{BLACK}Informacie o spolocnosti
+STR_0177_DISPLAY_COMPANY_FINANCES                               :{BLACK}Financné informécie o spolocnosti
+STR_0178_DISPLAY_COMPANY_GENERAL                                :{BLACK}Informácie o spolocnosti
 STR_0179_DISPLAY_GRAPHS                                         :{BLACK}Grafy
-STR_017A_DISPLAY_COMPANY_LEAGUE                                 :{BLACK}Hodnotenie spolocnosti
+STR_017A_DISPLAY_COMPANY_LEAGUE                                 :{BLACK}Hodnotenie spolocností
 STR_017B_DISPLAY_LIST_OF_COMPANY                                :{BLACK}Zoznam vlakov
 STR_017C_DISPLAY_LIST_OF_COMPANY                                :{BLACK}Zoznam automobilov
-STR_017D_DISPLAY_LIST_OF_COMPANY                                :{BLACK}Zoznam lodi
+STR_017D_DISPLAY_LIST_OF_COMPANY                                :{BLACK}Zoznam lodí
 STR_017E_DISPLAY_LIST_OF_COMPANY                                :{BLACK}Zoznam lietadiel
-STR_017F_ZOOM_THE_VIEW_IN                                       :{BLACK}Priblizit
+STR_017F_ZOOM_THE_VIEW_IN                                       :{BLACK}Priblížit
 STR_0180_ZOOM_THE_VIEW_OUT                                      :{BLACK}Oddialit
-STR_0181_BUILD_RAILROAD_TRACK                                   :{BLACK}Vystavba zeleznice
-STR_0182_BUILD_ROADS                                            :{BLACK}Vystavba ciest
-STR_0183_BUILD_SHIP_DOCKS                                       :{BLACK}Vystavba pristavov
-STR_0184_BUILD_AIRPORTS                                         :{BLACK}Vystavba letisk
-STR_0185_PLANT_TREES_PLACE_SIGNS                                :{BLACK}Vysadba stromov, rezervacia pozemku
-STR_0186_LAND_BLOCK_INFORMATION                                 :{BLACK}Informacie o pozemku
+STR_0181_BUILD_RAILROAD_TRACK                                   :{BLACK}Výstavba železnice
+STR_0182_BUILD_ROADS                                            :{BLACK}Výstavba ciest
+STR_0183_BUILD_SHIP_DOCKS                                       :{BLACK}Výstavba prístavov
+STR_0184_BUILD_AIRPORTS                                         :{BLACK}Výstavba letísk
+STR_0185_PLANT_TREES_PLACE_SIGNS                                :{BLACK}Výsadba stromov, kúpa pozemku, ...
+STR_0186_LAND_BLOCK_INFORMATION                                 :{BLACK}Informácie o pozemku
 STR_0187_OPTIONS                                                :{BLACK}Nastavenia
 STR_0188                                                        :{BLACK}{SMALLUPARROW}
 STR_0189                                                        :{BLACK}{SMALLDOWNARROW}
-STR_018A_CAN_T_CHANGE_SERVICING                                 :{WHITE}Nieje mozne zmenit servisny interval...
+STR_018A_CAN_T_CHANGE_SERVICING                                 :{WHITE}Nie je možné zmenit servisný interval ...
 STR_018B_CLOSE_WINDOW                                           :{BLACK}Zavriet okno
 STR_018C_WINDOW_TITLE_DRAG_THIS                                 :{BLACK}Nadpis okna - potiahni pre posun okna
 STR_STICKY_BUTTON                                               :{BLACK}Oznacit toto okno, aby sa nedalo zatvorit klavesou 'Zavri vsetky okna'
 STR_RESIZE_BUTTON                                               :{BLACK}Uchop a tahaj pre zmenu velkosti okna
 STR_SAVELOAD_HOME_BUTTON                                        :{BLACK}Kliknutim sem sa presuniete do sucasneho vychodzieho adresara pre ukladanie
-STR_018D_DEMOLISH_BUILDINGS_ETC                                 :{BLACK}Zburanie budov, cistenie terenu
-STR_018E_LOWER_A_CORNER_OF_LAND                                 :{BLACK}Znizit roh terenu
-STR_018F_RAISE_A_CORNER_OF_LAND                                 :{BLACK}Zvysit roh terenu
-STR_0190_SCROLL_BAR_SCROLLS_LIST                                :{BLACK}Navigacna lista
+STR_018D_DEMOLISH_BUILDINGS_ETC                                 :{BLACK}Demolácia budov, úprava terénu, ...
+STR_018E_LOWER_A_CORNER_OF_LAND                                 :{BLACK}Znížit roh terénu
+STR_018F_RAISE_A_CORNER_OF_LAND                                 :{BLACK}Zvýšit roh terénu
+STR_0190_SCROLL_BAR_SCROLLS_LIST                                :{BLACK}Navigacná lišta
 STR_HSCROLL_BAR_SCROLLS_LIST                                    :{BLACK}Navigacna lista - posuva vypis dolava/doprava
 STR_0191_SHOW_LAND_CONTOURS_ON_MAP                              :{BLACK}Zobrazit vrstevnice na mape
-STR_0192_SHOW_VEHICLES_ON_MAP                                   :{BLACK}Zobrazit dopravne prostriedky na mape
+STR_0192_SHOW_VEHICLES_ON_MAP                                   :{BLACK}Zobrazit dopravné prostriedky na mape
 STR_0193_SHOW_INDUSTRIES_ON_MAP                                 :{BLACK}Zobrazit priemysel na mape
-STR_0194_SHOW_TRANSPORT_ROUTES_ON                               :{BLACK}Zobrazit dopravne trasy na mape
-STR_0195_SHOW_VEGETATION_ON_MAP                                 :{BLACK}Zobrazit vegetaciu na mape
-STR_0196_SHOW_LAND_OWNERS_ON_MAP                                :{BLACK}Zobrazit vlastnikov pozemkov na mape
-STR_0197_TOGGLE_TOWN_NAMES_ON_OFF                               :{BLACK}Zapnut / Vypnut nazvy miest na mape
-STR_0198_PROFIT_THIS_YEAR_LAST_YEAR                             :{TINYFONT}{BLACK}Zisk tento rok: {CURRENCY} (posledny rok: {CURRENCY})
+STR_0194_SHOW_TRANSPORT_ROUTES_ON                               :{BLACK}Zobrazit dopravné trasy na mape
+STR_0195_SHOW_VEGETATION_ON_MAP                                 :{BLACK}Zobrazit vegetáciu na mape
+STR_0196_SHOW_LAND_OWNERS_ON_MAP                                :{BLACK}Zobrazit vlastníkov pozemkov na mape
+STR_0197_TOGGLE_TOWN_NAMES_ON_OFF                               :{BLACK}Zapnút / Vypnút názvy miest na mape
+STR_0198_PROFIT_THIS_YEAR_LAST_YEAR                             :{TINYFONT}{BLACK}Zisk tento rok: {CURRENCY} (posledný rok: {CURRENCY})
 
 ############ range for service numbers starts
 STR_AGE                                                         :{COMMA} rok{P "" y ov} ({COMMA})
@@ -545,21 +545,21 @@
 STR_019D_AIRCRAFT                                               :{G=s}Lietadlo
 STR_019E_SHIP                                                   :{G=z}Lod
 STR_019F_TRAIN                                                  :{G=m}Vlak
-STR_01A0_IS_GETTING_OLD                                         :{WHITE}{STRING} {COMMA} je star{G y a e}
-STR_01A1_IS_GETTING_VERY_OLD                                    :{WHITE}{STRING} {COMMA} je velmi star{G y a e}
-STR_01A2_IS_GETTING_VERY_OLD_AND                                :{WHITE}{STRING} {COMMA} je velmi star{G y a e} a potrebuje vymenit
-STR_01A3_LAND_AREA_INFORMATION                                  :{WHITE}Informacie o pozemku
-STR_01A4_COST_TO_CLEAR_N_A                                      :{BLACK}Naklady na odstranenie: {LTBLUE}N/A
-STR_01A5_COST_TO_CLEAR                                          :{BLACK}Naklady na odstranenie: {LTBLUE}{CURRENCY}
-STR_01A6_N_A                                                    :Nezname
-STR_01A7_OWNER                                                  :{BLACK}Vlastnik: {LTBLUE}{STRING}
-STR_01A8_LOCAL_AUTHORITY                                        :{BLACK}Miestna sprava: {LTBLUE}{STRING}
-STR_01A9_NONE                                                   :Nezname
+STR_01A0_IS_GETTING_OLD                                         :{WHITE}{STRING} {COMMA} je star{G ý á é}
+STR_01A1_IS_GETTING_VERY_OLD                                    :{WHITE}{STRING} {COMMA} je velmi star{G ý á é}
+STR_01A2_IS_GETTING_VERY_OLD_AND                                :{WHITE}{STRING} {COMMA} je velmi star{G ý á é} a potrebuje vymenit
+STR_01A3_LAND_AREA_INFORMATION                                  :{WHITE}Informácie o pozemku
+STR_01A4_COST_TO_CLEAR_N_A                                      :{BLACK}Náklady na odstránenie: {LTBLUE}N/A
+STR_01A5_COST_TO_CLEAR                                          :{BLACK}Náklady na odstránenie: {LTBLUE}{CURRENCY}
+STR_01A6_N_A                                                    :Neznáme
+STR_01A7_OWNER                                                  :{BLACK}Vlastník: {LTBLUE}{STRING}
+STR_01A8_LOCAL_AUTHORITY                                        :{BLACK}Miestna správa: {LTBLUE}{STRING}
+STR_01A9_NONE                                                   :Neznáme
 STR_01AA_NAME                                                   :{BLACK}Meno
 STR_01AB                                                        :{BLACK}{TINYFONT}{STRING}
 
 ############ range for days starts
-STR_01AC_1ST                                                    :1
+STR_01AC_1ST                                                    :1/
 STR_01AD_2ND                                                    :2
 STR_01AE_3RD                                                    :3
 STR_01AF_4TH                                                    :4
@@ -1740,7 +1740,7 @@
 STR_2055_TRAFFIC_CHAOS_IN_ROAD_REBUILDING                       :{BIGFONT}{BLACK}V meste {TOWN} zavladol dopravny chaos!{}{}Rekonstrukcia ciest financovana {COMPANY} prinesie 6 mesiacov utrpenia pre motoristov!
 STR_2056                                                        :{TINYFONT}{WHITE}{TOWN}
 STR_2057                                                        :{ORANGE}{TOWN}{BLACK} ({COMMA})
-STR_2058_UNDER_CONSTRUCTION                                     :{STRING} (v rekonstrukcii)
+STR_2058_UNDER_CONSTRUCTION                                     :{STRING} (vo výstavbe)
 STR_2059_IGLOO                                                  :Iglu
 STR_205A_TEPEES                                                 :Vigvam
 STR_205B_TEAPOT_HOUSE                                           :Kaviaren
@@ -1959,7 +1959,7 @@
 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_5009_LEVEL_LAND_OR_WATER_REQUIRED                           :{WHITE}Pod mostom je potrebna voda alebo udolie
+STR_5009_LEVEL_LAND_OR_WATER_REQUIRED                           :{WHITE}Pod mostom je potrebná voda alebo údolie
 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}
@@ -2833,7 +2833,7 @@
 STR_9841_CAN_T_REFIT_SHIP                                       :{WHITE}Nemozno prestavat lod...
 STR_9842_REFITTABLE                                             :(mozna prestavba)
 STR_GO_TO_SHIP_DEPOT                                            :Chod do {TOWN} Lodenice
-SERVICE_AT_SHIP_DEPOT                                           :Opravit v {TOWN} Lodenici
+SERVICE_AT_SHIP_DEPOT                                           :Opravit v {TOWN} lodenici
 
 ##id 0xA000
 STR_A000_AIRPORTS                                               :{WHITE}Letiska
@@ -2907,7 +2907,7 @@
 STR_A041_NEW_CAPACITY_COST_OF_REFIT                             :{BLACK}Nová kapacita: {GOLD}{STRING}{}{BLACK}Náklady na prestavbu: {GOLD}{CURRENCY}
 STR_A042_CAN_T_REFIT_AIRCRAFT                                   :{WHITE}Nie je mozne prestavat na novy typ nakladu ...
 STR_GO_TO_AIRPORT_HANGAR                                        :Chod do {STATION} Hangaru
-SERVICE_AT_AIRPORT_HANGAR                                       :Opravit v {STATION} Hangare
+SERVICE_AT_AIRPORT_HANGAR                                       :Opravit v {STATION} hangári
 
 ##id 0xB000
 STR_B000_ZEPPELIN_DISASTER_AT                                   :{BLACK}{BIGFONT}Zeppelin zniceny pri nehode na {STATION}!
--- a/src/lang/spanish.txt	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/lang/spanish.txt	Wed Feb 14 10:46:38 2007 +0000
@@ -1699,7 +1699,6 @@
 STR_2806                                                        :{WHITE}{STRING}
 STR_2808_TOO_MANY_SIGNS                                         :{WHITE}...demasiadas señales
 STR_2809_CAN_T_PLACE_SIGN_HERE                                  :{WHITE}No se puede colocar una señal aquí...
-STR_280A_SIGN                                                   :
 STR_280B_EDIT_SIGN_TEXT                                         :{WHITE}Editar texto de la señal
 STR_280C_CAN_T_CHANGE_SIGN_NAME                                 :{WHITE}No se puede cambiar el nombre de la señal...
 STR_280D_SELECT_TREE_TYPE_TO_PLANT                              :{BLACK}Seleccione el tipo de árboles a plantar
--- a/src/lang/swedish.txt	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/lang/swedish.txt	Wed Feb 14 10:46:38 2007 +0000
@@ -295,6 +295,7 @@
 STR_0141_LOAD_GAME                                              :{BLACK}Ladda spel
 STR_SINGLE_PLAYER                                               :{BLACK}En spelare
 STR_MULTIPLAYER                                                 :{BLACK}Flera spelare
+STR_SCENARIO_EDITOR                                             :{BLACK}Scenario editor
 
 STR_64                                                          :64
 STR_128                                                         :128
@@ -623,6 +624,8 @@
 STR_022A_GENERATE_RANDOM_LAND                                   :{BLACK}Generera slumpmässig mark
 STR_022B_RESET_LANDSCAPE                                        :{BLACK}Återställ landskapet
 STR_022C_RESET_LANDSCAPE                                        :{WHITE}Återställ landskapet
+STR_RESET_LANDSCAPE_TOOLTIP                                     :{BLACK}Ta bort alla spelarägda tillgångar från kartan
+STR_RESET_LANDSCAPE_CONFIRMATION_TEXT                           :{WHITE}Är du säker på att du vill ta bort alla spelarägda tillgångar?
 STR_022E_LANDSCAPE_GENERATION                                   :{BLACK}Skapa landskap
 STR_022F_TOWN_GENERATION                                        :{BLACK}Bygg städer
 STR_0230_INDUSTRY_GENERATION                                    :{BLACK}Bygg industrier
@@ -727,6 +730,7 @@
 STR_0291_DELETE_THIS_TOWN_COMPLETELY                            :{BLACK}Ta bort staden helt och hållet
 STR_0292_SAVE_SCENARIO                                          :Spara scenario
 STR_0293_LOAD_SCENARIO                                          :Öppna scenario
+STR_LOAD_HEIGHTMAP                                              :Ladda höjdkarta
 STR_0294_QUIT_EDITOR                                            :Avsluta editor
 STR_0295                                                        :
 STR_0296_QUIT                                                   :Avsluta
@@ -1413,6 +1417,7 @@
 STR_NETWORK_ERR_NOTAVAILABLE                                    :{WHITE}Inget nätverkskort funnet eller så är spelet kompilerat utan ENABLE_NETWORK
 STR_NETWORK_ERR_NOSERVER                                        :{WHITE}Kunde inte hitta några nätverksspel
 STR_NETWORK_ERR_NOCONNECTION                                    :{WHITE}Servern svarade inte på förfrågan
+STR_NETWORK_ERR_NEWGRF_MISMATCH                                 :{WHITE} Kunde inte ansluta på grund av att NewGRF är omaka
 STR_NETWORK_ERR_DESYNC                                          :{WHITE}Nätverk, Spelsynkronisering misslyckades
 STR_NETWORK_ERR_LOSTCONNECTION                                  :{WHITE}Nätverk, koppling förlorad
 STR_NETWORK_ERR_SAVEGAMEERROR                                   :{WHITE}Kunde inte ladda det sparade spelet från servern
@@ -1434,6 +1439,7 @@
 STR_NETWORK_ERR_CLIENT_SAVEGAME                                 :kunde inte ladda kartan
 STR_NETWORK_ERR_CLIENT_CONNECTION_LOST                          :anslutning förlorad
 STR_NETWORK_ERR_CLIENT_PROTOCOL_ERROR                           :protokollfel
+STR_NETWORK_ERR_CLIENT_NEWGRF_MISMATCH                          :NewGRF är omaka
 STR_NETWORK_ERR_CLIENT_NOT_AUTHORIZED                           :inte godkänd
 STR_NETWORK_ERR_CLIENT_NOT_EXPECTED                             :mottog konstigt paket
 STR_NETWORK_ERR_CLIENT_WRONG_REVISION                           :fel revision
@@ -2624,7 +2630,6 @@
 STR_TRAIN_STOPPING_VEL                                          :{RED}Stannar, {VELOCITY}
 STR_INCOMPATIBLE_RAIL_TYPES                                     :Fel järnvägstyp
 STR_TRAIN_NO_POWER                                              :{RED}Ingen Kraft
-STR_TRAIN_START_NO_CATENARY                                     :
 
 ##id 0x9000
 STR_9000_ROAD_VEHICLE_IN_THE_WAY                                :{WHITE}Vägfordon i vägen
--- a/src/lang/traditional_chinese.txt	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/lang/traditional_chinese.txt	Wed Feb 14 10:46:38 2007 +0000
@@ -78,7 +78,7 @@
 STR_0047_COLA                                                   :可樂
 STR_0048_COTTON_CANDY                                           :棉花糖
 STR_0049_BUBBLE                                                 :泡泡
-STR_004A_TOFFEE                                                 :乳脂糖
+STR_004A_TOFFEE                                                 :太妃糖
 STR_004B_BATTERY                                                :電池
 STR_004C_PLASTIC                                                :塑膠
 STR_004D_FIZZY_DRINK                                            :汽水
@@ -110,7 +110,7 @@
 STR_QUANTITY_COLA                                               :{VOLUME}可樂
 STR_QUANTITY_CANDYFLOSS                                         :{WEIGHT}棉花糖
 STR_QUANTITY_BUBBLES                                            :{COMMA}泡泡
-STR_QUANTITY_TOFFEE                                             :{WEIGHT}乳脂糖
+STR_QUANTITY_TOFFEE                                             :{WEIGHT}太妃糖
 STR_QUANTITY_BATTERIES                                          :{COMMA}顆電池
 STR_QUANTITY_PLASTIC                                            :{VOLUME}塑膠
 STR_QUANTITY_FIZZY_DRINKS                                       :{COMMA}杯汽水
@@ -142,7 +142,7 @@
 STR_ABBREV_COLA                                                 :{TINYFONT}可
 STR_ABBREV_CANDYFLOSS                                           :{TINYFONT}棉
 STR_ABBREV_BUBBLES                                              :{TINYFONT}泡
-STR_ABBREV_TOFFEE                                               :{TINYFONT}乳
+STR_ABBREV_TOFFEE                                               :{TINYFONT}太
 STR_ABBREV_BATTERIES                                            :{TINYFONT}電
 STR_ABBREV_PLASTIC                                              :{TINYFONT}膠
 STR_ABBREV_FIZZY_DRINKS                                         :{TINYFONT}汽
@@ -155,7 +155,7 @@
 STR_00B2_MESSAGE                                                :{YELLOW}訊息
 STR_00B3_MESSAGE_FROM                                           :{YELLOW}來自{STRING}的訊息
 STR_POPUP_CAUTION_CAPTION                                       :{WHITE}注意!
-STR_00B4_CAN_T_DO_THIS                                          :{WHITE}不能執行以下命令....
+STR_00B4_CAN_T_DO_THIS                                          :{WHITE}不能執行以下動作....
 STR_00B5_CAN_T_CLEAR_THIS_AREA                                  :{WHITE}不能清除這個地段....
 STR_00B6_ORIGINAL_COPYRIGHT                                     :{BLACK}原著作權為{COPYRIGHT} 1995 Chris Sawyer, 版權所有
 STR_00B7_VERSION                                                :{BLACK}OpenTTD 版本 {REV}
@@ -167,7 +167,7 @@
 STR_00C7_QUIT                                                   :{WHITE}離開
 STR_00C8_YES                                                    :{BLACK}是
 STR_00C9_NO                                                     :{BLACK}否
-STR_00CA_ARE_YOU_SURE_YOU_WANT_TO                               :{YELLOW}你是否確認放棄進行中的遊戲並回到{STRING}?
+STR_00CA_ARE_YOU_SURE_YOU_WANT_TO                               :{YELLOW}你要放棄遊戲並回到 {STRING} 嗎?
 STR_00CB_1                                                      :{BLACK}1
 STR_00CC_2                                                      :{BLACK}2
 STR_00CD_3                                                      :{BLACK}3
@@ -194,7 +194,7 @@
 STR_00E2                                                        :{BLACK}{COMMA}
 STR_00E3                                                        :{RED}{COMMA}
 STR_00E4_LOCATION                                               :{BLACK}位置
-STR_00E5_CONTOURS                                               :輪廓
+STR_00E5_CONTOURS                                               :地形
 STR_00E6_VEHICLES                                               :交通工具
 STR_00E7_INDUSTRIES                                             :工業
 STR_00E8_ROUTES                                                 :路線
@@ -273,7 +273,7 @@
 STR_0131_TOO_MANY_NAMES_DEFINED                                 :{WHITE}已定義過多名稱
 STR_0132_CHOSEN_NAME_IN_USE_ALREADY                             :{WHITE}所選名稱已被使用
 
-STR_0133_WINDOWS                                                :視窗
+STR_0133_WINDOWS                                                :Windows
 STR_0134_UNIX                                                   :Unix
 STR_0135_OSX                                                    :OS X
 STR_OSNAME_BEOS                                                 :BeOS
@@ -370,8 +370,8 @@
 STR_SORT_BY_PRODUCTION                                          :{BLACK}產量
 STR_SORT_BY_TYPE                                                :{BLACK}種類
 STR_SORT_BY_TRANSPORTED                                         :{BLACK}輸出量
-STR_SORT_BY_NAME                                                :{BLACK}名字
-STR_SORT_BY_DROPDOWN_NAME                                       :名字
+STR_SORT_BY_NAME                                                :{BLACK}名稱
+STR_SORT_BY_DROPDOWN_NAME                                       :名稱
 STR_SORT_BY_DATE                                                :{BLACK}日期
 STR_SORT_BY_NUMBER                                              :編號
 STR_SORT_BY_PROFIT_LAST_YEAR                                    :上年盈利
@@ -421,7 +421,7 @@
 STR_016A_SEP                                                    :九月
 STR_016B_OCT                                                    :十月
 STR_016C_NOV                                                    :十一月
-STR_016D_DEC                                                    :十一月
+STR_016D_DEC                                                    :十二月
 ############ range for months ends
 
 STR_016E                                                        :{TINYFONT}{STRING}{} {STRING}
@@ -461,9 +461,9 @@
 STR_018D_DEMOLISH_BUILDINGS_ETC                                 :{BLACK}於一格土地上拆卸建築物等
 STR_018E_LOWER_A_CORNER_OF_LAND                                 :{BLACK}下降土地上的一角
 STR_018F_RAISE_A_CORNER_OF_LAND                                 :{BLACK}上昇土地上的一角
-STR_0190_SCROLL_BAR_SCROLLS_LIST                                :{BLACK}捲動棒 - 上下捲動清單
+STR_0190_SCROLL_BAR_SCROLLS_LIST                                :{BLACK}捲軸 - 上下捲動清單
 STR_HSCROLL_BAR_SCROLLS_LIST                                    :{BLACK}捲動棒 - 左右捲動清單
-STR_0191_SHOW_LAND_CONTOURS_ON_MAP                              :{BLACK}於地圖上顯示土地輪廓
+STR_0191_SHOW_LAND_CONTOURS_ON_MAP                              :{BLACK}於地圖上顯示地形
 STR_0192_SHOW_VEHICLES_ON_MAP                                   :{BLACK}於地圖上顯示交通公具
 STR_0193_SHOW_INDUSTRIES_ON_MAP                                 :{BLACK}於地圖上顯示各種工業
 STR_0194_SHOW_TRANSPORT_ROUTES_ON                               :{BLACK}於地圖上顯示運輸路線
@@ -481,9 +481,9 @@
 STR_019D_AIRCRAFT                                               :飛機
 STR_019E_SHIP                                                   :船舶
 STR_019F_TRAIN                                                  :列車
-STR_01A0_IS_GETTING_OLD                                         :{WHITE}{STRING} {COMMA}已變得殘舊
-STR_01A1_IS_GETTING_VERY_OLD                                    :{WHITE}{STRING} {COMMA}已變得非常殘舊
-STR_01A2_IS_GETTING_VERY_OLD_AND                                :{WHITE}{STRING} {COMMA}已變得非常殘舊以及必須即時作出替換
+STR_01A0_IS_GETTING_OLD                                         :{WHITE}{STRING} {COMMA}使用年限將近
+STR_01A1_IS_GETTING_VERY_OLD                                    :{WHITE}{STRING} {COMMA}使用年限已過
+STR_01A2_IS_GETTING_VERY_OLD_AND                                :{WHITE}{STRING} {COMMA}使用年限已過必須替換
 STR_01A3_LAND_AREA_INFORMATION                                  :{WHITE}土地資訊
 STR_01A4_COST_TO_CLEAR_N_A                                      :{BLACK}清拆成本: {LTBLUE}不適用
 STR_01A5_COST_TO_CLEAR                                          :{BLACK}清拆成本: {LTBLUE}{CURRENCY}
@@ -634,7 +634,7 @@
 STR_0234_NEW_TOWN                                               :{BLACK}新的市鎮
 STR_0235_CONSTRUCT_NEW_TOWN                                     :{BLACK}建造新的市鎮
 STR_0236_CAN_T_BUILD_TOWN_HERE                                  :{WHITE}不能建造市鎮...
-STR_0237_TOO_CLOSE_TO_EDGE_OF_MAP                               :{WHITE}...太接近地圖邊帶
+STR_0237_TOO_CLOSE_TO_EDGE_OF_MAP                               :{WHITE}...太接近地圖邊緣
 STR_0238_TOO_CLOSE_TO_ANOTHER_TOWN                              :{WHITE}...太接近另一個市鎮
 STR_0239_SITE_UNSUITABLE                                        :{WHITE}...地點不適合
 STR_023A_TOO_MANY_TOWNS                                         :{WHITE}...已有太多市鎮
@@ -771,7 +771,7 @@
 ############ range for menu starts
 STR_02C3_GAME_OPTIONS                                           :遊戲選項
 STR_02C5_DIFFICULTY_SETTINGS                                    :難易設定
-STR_02C7_CONFIG_PATCHES                                         :設定補綴
+STR_02C7_CONFIG_PATCHES                                         :設置修正
 STR_NEWGRF_SETTINGS                                             :NewGRF 設定
 STR_GAMEOPTMENU_0A                                              :
 STR_02CA_TOWN_NAMES_DISPLAYED                                   :{SETX 12}顯示市鎮名稱
@@ -878,7 +878,7 @@
 STR_TOWNNAME_GERMAN                                             :德國
 STR_TOWNNAME_ADDITIONAL_ENGLISH                                 :英國 (增訂版)
 STR_TOWNNAME_LATIN_AMERICAN                                     :拉丁美洲
-STR_TOWNNAME_SILLY                                              :荒唐名字
+STR_TOWNNAME_SILLY                                              :荒唐名稱
 STR_TOWNNAME_SWEDISH                                            :瑞典
 STR_TOWNNAME_DUTCH                                              :荷蘭
 STR_TOWNNAME_FINNISH                                            :芬蘭
@@ -1178,9 +1178,9 @@
 STR_WAYPOINT_VIEWPORT                                           :{WHITE}{WAYPOINT}
 STR_WAYPOINT_VIEWPORT_TINY                                      :{TINYFONT}{WHITE}{WAYPOINT}
 STR_WAYPOINT_RAW                                                :{WAYPOINT}
-STR_EDIT_WAYPOINT_NAME                                          :{WHITE}更改路標名字
+STR_EDIT_WAYPOINT_NAME                                          :{WHITE}更改路標名稱
 
-STR_CANT_CHANGE_WAYPOINT_NAME                                   :{WHITE}不能更改路標名字
+STR_CANT_CHANGE_WAYPOINT_NAME                                   :{WHITE}不能更改路標名稱
 STR_CONVERT_RAIL_TO_WAYPOINT_TIP                                :{BLACK}將路軌變為路標
 STR_CANT_BUILD_TRAIN_WAYPOINT                                   :{WHITE}不能建立鐵路路標
 STR_CANT_REMOVE_TRAIN_WAYPOINT                                  :{WHITE}不能移除鐵路路標
@@ -1461,7 +1461,7 @@
 STR_NETWORK_CHAT_TO_CLIENT                                      :[私人] 給 {STRING}: {GRAY}{STRING}
 STR_NETWORK_CHAT_ALL_CAPTION                                    :[全員] :
 STR_NETWORK_CHAT_ALL                                            :[全員] {STRING}: {GRAY}{STRING}
-STR_NETWORK_NAME_CHANGE                                         :將自己的名字改為
+STR_NETWORK_NAME_CHANGE                                         :將自己的名稱改為
 STR_NETWORK_SERVER_SHUTDOWN                                     :{WHITE} 伺服器關閉連線
 STR_NETWORK_SERVER_REBOOT                                       :{WHITE} 伺服器正在重新啟動...{}請稍候...
 
@@ -1636,10 +1636,10 @@
 STR_202E_OFFER_OF_SUBSIDY_EXPIRED                               :{BLACK}{BIGFONT}補助過期:{}{}將 {STRING} 從 {STRING} 運到 {STRING} 從此不再提供補助。
 STR_202F_SUBSIDY_WITHDRAWN_SERVICE                              :{BLACK}{BIGFONT}補助結束:{}{}將 {STRING} 從 {STATION} 運到 {STATION} 不再提供補助。
 STR_2030_SERVICE_SUBSIDY_OFFERED                                :{BLACK}{BIGFONT}提供補助:{}{}首先將 {STRING} 從 {STRING} 運到 {STRING} 的公司將得到區域當局補助一年!
-STR_2031_SERVICE_SUBSIDY_AWARDED                                :{BLACK}{BIGFONT}{COMPANY} 獲得補補助!{}{}將 {STRING} 從 {STATION} 運到 {STATION} 的服務可在往後一年得到額外 50% 的運費補助!
-STR_2032_SERVICE_SUBSIDY_AWARDED                                :{BLACK}{BIGFONT}{COMPANY} 獲得補補助!{}{}將 {STRING} 從 {STATION} 運到 {STATION} 的服務可在往後一年收到雙倍運費!
-STR_2033_SERVICE_SUBSIDY_AWARDED                                :{BLACK}{BIGFONT}{COMPANY} 獲得補補助!{}{}將 {STRING} 從 {STATION} 運到 {STATION} 的服務可在往後一年收到三倍運費!
-STR_2034_SERVICE_SUBSIDY_AWARDED                                :{BLACK}{BIGFONT}{COMPANY} 獲得補補助!{}{}將 {STRING} 從 {STATION} 運到 {STATION} 的服務可在往後一年收到四倍運費!
+STR_2031_SERVICE_SUBSIDY_AWARDED                                :{BLACK}{BIGFONT}{COMPANY} 獲得補助!{}{}將 {STRING} 從 {STATION} 運到 {STATION} 的服務可在往後一年得到額外 50% 的運費補助!
+STR_2032_SERVICE_SUBSIDY_AWARDED                                :{BLACK}{BIGFONT}{COMPANY} 獲得補助!{}{}將 {STRING} 從 {STATION} 運到 {STATION} 的服務可在往後一年收到雙倍運費!
+STR_2033_SERVICE_SUBSIDY_AWARDED                                :{BLACK}{BIGFONT}{COMPANY} 獲得補助!{}{}將 {STRING} 從 {STATION} 運到 {STATION} 的服務可在往後一年收到三倍運費!
+STR_2034_SERVICE_SUBSIDY_AWARDED                                :{BLACK}{BIGFONT}{COMPANY} 獲得補助!{}{}將 {STRING} 從 {STATION} 運到 {STATION} 的服務可在往後一年收到四倍運費!
 STR_2035_LOCAL_AUTHORITY_REFUSES                                :{WHITE}{TOWN} 地方政府拒絕在城內建造另一座機場
 STR_2036_COTTAGES                                               :農舍
 STR_2037_HOUSES                                                 :住宅
@@ -1754,8 +1754,8 @@
 STR_3049_0                                                      :{YELLOW}{STATION} {STATIONFEATURES}
 STR_304A_NONE                                                   :{YELLOW}- 無 -
 STR_304B_SITE_UNSUITABLE                                        :{WHITE}...地點不適合
-STR_304C_TOO_CLOSE_TO_ANOTHER_DOCK                              :{WHITE}太靠近另一個船塢
-STR_304D_MUST_DEMOLISH_DOCK_FIRST                               :{WHITE}必須先摧毀船塢
+STR_304C_TOO_CLOSE_TO_ANOTHER_DOCK                              :{WHITE}太靠近另一個碼頭
+STR_304D_MUST_DEMOLISH_DOCK_FIRST                               :{WHITE}必須先摧毀碼頭
 STR_304E_SELECT_RAILROAD_STATION                                :{BLACK}選擇鐵道車站方向
 STR_304F_SELECT_NUMBER_OF_PLATFORMS                             :{BLACK}選擇鐵道車站的月台數量
 STR_3050_SELECT_LENGTH_OF_RAILROAD                              :{BLACK}選擇鐵道車站的長度
@@ -1778,7 +1778,7 @@
 STR_3064_HIGHLIGHT_COVERAGE_AREA                                :{BLACK}顯示建築地點的運輸涵蓋範圍
 STR_3065_DON_T_HIGHLIGHT_COVERAGE                               :{BLACK}不顯示建築地點的運輸涵蓋範圍
 STR_3066_COVERAGE_AREA_HIGHLIGHT                                :{BLACK}顯示運輸涵蓋範圍
-STR_3068_DOCK                                                   :{WHITE}船塢
+STR_3068_DOCK                                                   :{WHITE}碼頭
 STR_3069_BUOY                                                   :浮標
 STR_306A_BUOY_IN_THE_WAY                                        :{WHITE}...被浮標擋住
 STR_306C_STATION_TOO_SPREAD_OUT                                 :{WHITE}...車站範圍太大
@@ -1848,7 +1848,7 @@
 STR_4819_FACTORY                                                :工廠
 STR_481A_FARM                                                   :農場
 STR_481B_LUMBER_MILL                                            :伐木場
-STR_481C_COTTON_CANDY_FOREST                                    :太妃糖森林
+STR_481C_COTTON_CANDY_FOREST                                    :綿花糖森林
 STR_481D_CANDY_FACTORY                                          :甜點工廠
 STR_481E_BATTERY_FARM                                           :電池農場
 STR_481F_COLA_WELLS                                             :可樂井
@@ -1884,8 +1884,8 @@
 STR_4839_PRODUCTION_DOWN_BY_50                                  :{BLACK}{BIGFONT}{INDUSTRY} 產量減半
 STR_483A_INSECT_INFESTATION_CAUSES                              :{BLACK}{BIGFONT}{INDUSTRY} 遇到蟲害!{}產量減半
 STR_483B_CAN_ONLY_BE_POSITIONED                                 :{WHITE}...只能位於地圖邊緣
-STR_INDUSTRY_PROD_GOUP                                          :{BLACK}{BIGFONT}{STRING} 在 {INDUSTRY} 的產量上升 {COMMA}%!
-STR_INDUSTRY_PROD_GODOWN                                        :{BLACK}{BIGFONT}{STRING} 在 {INDUSTRY} 的產量減少 {COMMA}%!
+STR_INDUSTRY_PROD_GOUP                                          :{BLACK}{BIGFONT}{1:INDUSTRY}的{0:STRING}產量上升 {2:COMMA}%!
+STR_INDUSTRY_PROD_GODOWN                                        :{BLACK}{BIGFONT}{1:INDUSTRY}的{0:STRING}產量減少 {2:COMMA}%!
 
 ##id 0x5000
 STR_5000_TRAIN_IN_TUNNEL                                        :{WHITE}隧道內有列車
@@ -1963,7 +1963,7 @@
 STR_SV_STNAME_AIRPORT                                           :{STRING} 機場
 STR_SV_STNAME_OILFIELD                                          :{STRING} 油田
 STR_SV_STNAME_MINES                                             :{STRING} 礦場
-STR_SV_STNAME_DOCKS                                             :{STRING} 船塢
+STR_SV_STNAME_DOCKS                                             :{STRING} 碼頭
 STR_SV_STNAME_BUOY_1                                            :{STRING} 一號浮標
 STR_SV_STNAME_BUOY_2                                            :{STRING} 二號浮標
 STR_SV_STNAME_BUOY_3                                            :{STRING} 三號浮標
@@ -2476,7 +2476,7 @@
 STR_80FE_GURU_X2_HELICOPTER                                     :Lockheed X2 直升機
 STR_80FF_POWERNAUT_HELICOPTER                                   :Powernaut 直升機
 STR_8100_MESSAGE_FROM_VEHICLE_MANUFACTURE                       :{WHITE}運具製造商的訊息
-STR_8101_WE_HAVE_JUST_DESIGNED_A                                :{GOLD}我們剛設計了一種新 {STRING} - 您有興趣獨家使用它一年,讓我們在正式發佈之前觀察它的表現嗎?
+STR_8101_WE_HAVE_JUST_DESIGNED_A                                :{GOLD}我們剛設計了一種新{STRING} - 您有興趣獨家使用它一年,讓我們在正式發佈之前觀察它的表現嗎?
 STR_8102_RAILROAD_LOCOMOTIVE                                    :鐵道機車頭
 STR_8103_ROAD_VEHICLE                                           :汽車
 STR_8104_AIRCRAFT                                               :飛機
@@ -2699,9 +2699,9 @@
 STR_ROAD_SELECT_TYPE_OF_CARGO_FOR                               :{BLACK}選擇汽車要運送的酬載種類
 
 ##id 0x9800
-STR_9800_DOCK_CONSTRUCTION                                      :建造船塢
-STR_9801_DOCK_CONSTRUCTION                                      :{WHITE}建造船塢
-STR_9802_CAN_T_BUILD_DOCK_HERE                                  :{WHITE}無法在此建造船塢...
+STR_9800_DOCK_CONSTRUCTION                                      :建造碼頭
+STR_9801_DOCK_CONSTRUCTION                                      :{WHITE}建造碼頭
+STR_9802_CAN_T_BUILD_DOCK_HERE                                  :{WHITE}無法在此建造碼頭...
 STR_9803_SHIP_DEPOT                                             :{WHITE}{TOWN} 船塢
 STR_9804_NEW_SHIPS                                              :{BLACK}購買船舶
 STR_9805_SHIPS                                                  :{WHITE}{COMPANY} - 船舶 {COMMA} 艘
@@ -2730,7 +2730,7 @@
 STR_HEADING_FOR_SHIP_DEPOT_SERVICE                              :{LTBLUE}正在 {TOWN} 船塢維護中
 STR_HEADING_FOR_SHIP_DEPOT_SERVICE_VEL                          :{LTBLUE}正在 {TOWN} 船塢維護中, {VELOCITY}
 STR_981C_SHIP_IS_WAITING_IN_DEPOT                               :{WHITE}船舶 {COMMA} 已在船塢待命
-STR_981D_BUILD_SHIP_DOCK                                        :{BLACK}建造船塢
+STR_981D_BUILD_SHIP_DOCK                                        :{BLACK}建造碼頭
 STR_981E_BUILD_SHIP_DEPOT_FOR_BUILDING                          :{BLACK}建造船塢 (用以購買/維護船舶)
 STR_981F_SHIPS_CLICK_ON_SHIP_FOR                                :{BLACK}船舶 - 點選船舶可看到詳細資訊
 STR_9820_BUILD_NEW_SHIP                                         :{BLACK}購買新船舶
@@ -2769,7 +2769,7 @@
 STR_9841_CAN_T_REFIT_SHIP                                       :{WHITE}無法改裝船舶...
 STR_9842_REFITTABLE                                             :(可改裝)
 STR_GO_TO_SHIP_DEPOT                                            :前往 {TOWN} 船塢
-SERVICE_AT_SHIP_DEPOT                                           :在{TOWN}船廠進行維修
+SERVICE_AT_SHIP_DEPOT                                           :在{TOWN}船塢進行維修
 
 ##id 0xA000
 STR_A000_AIRPORTS                                               :{WHITE}機場
--- a/src/lang/ukrainian.txt	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/lang/ukrainian.txt	Wed Feb 14 10:46:38 2007 +0000
@@ -141,6 +141,7 @@
 STR_003C_FRUIT.r                                                :фруктів
 STR_003C_FRUIT.z                                                :фрукти
 STR_003D_DIAMOND                                                :діаманти
+STR_003D_DIAMOND.r                                              :діамантів
 STR_003D_DIAMOND.z                                              :діаманти
 STR_003E_FOOD                                                   :продукти
 STR_003E_FOOD.r                                                 :продуктів
@@ -862,7 +863,7 @@
 
 STR_02B6                                                        :{STRING}  -  {STRING}
 STR_02B7_SHOW_LAST_MESSAGE_OR_NEWS                              :{BLACK}Показує останнє повідомлення або новини
-STR_OFF                                                         :Викл
+STR_OFF                                                         :Відкл.
 STR_SUMMARY                                                     :Коротко
 STR_FULL                                                        :Повністю
 STR_02BA                                                        :{SILVER}- -  {COMPANY}  - -
@@ -945,7 +946,7 @@
 STR_0300_SELECT_MULTIPLAYER_GAME                                :{BLACK}Грати з 2-8 гравцями
 STR_0301_DISPLAY_GAME_OPTIONS                                   :{BLACK}Показати налашування гри
 STR_0302_DISPLAY_DIFFICULTY_OPTIONS                             :{BLACK}Показати налашування складності
-STR_0303_START_A_NEW_GAME_USING                                 :{BLACK}Почати нову використовуючи сценарій
+STR_0303_START_A_NEW_GAME_USING                                 :{BLACK}Почати нову гру, використовуючи сценарій
 STR_0304_QUIT                                                   :{BLACK}Вихід
 STR_0305_QUIT_OPENTTD                                           :{BLACK}покинути 'OpenTTD'
 STR_0307_OPENTTD                                                :{WHITE}OpenTTD {REV}
@@ -1864,16 +1865,16 @@
 STR_304B_SITE_UNSUITABLE                                        :{WHITE}...ділянка не підходить для цього
 STR_304C_TOO_CLOSE_TO_ANOTHER_DOCK                              :{WHITE}Дуже близько до іншого порту
 STR_304D_MUST_DEMOLISH_DOCK_FIRST                               :{WHITE}Спочатку зруйнуйте порт
-STR_304E_SELECT_RAILROAD_STATION                                :{BLACK}Виберіть направлення залізничної станції
+STR_304E_SELECT_RAILROAD_STATION                                :{BLACK}Виберіть орієнтацію залізничної станції
 STR_304F_SELECT_NUMBER_OF_PLATFORMS                             :{BLACK}Виберіть кількість колій залізничної станції
 STR_3050_SELECT_LENGTH_OF_RAILROAD                              :{BLACK}Виберіть довжину залізничної станції
-STR_3051_SELECT_BUS_STATION_ORIENTATION                         :{BLACK}Виберіть направлення зупинки
-STR_3052_SELECT_TRUCK_LOADING_BAY                               :{BLACK}Виберіть направлення вантажної станції
+STR_3051_SELECT_BUS_STATION_ORIENTATION                         :{BLACK}Виберіть орієнтацію зупинки
+STR_3052_SELECT_TRUCK_LOADING_BAY                               :{BLACK}Виберіть орієнтацію вантажної станції
 STR_3053_CENTER_MAIN_VIEW_ON_STATION                            :{BLACK}Показати станцію в центрі екрану
 STR_3054_SHOW_STATION_RATINGS                                   :{BLACK}Показати рейтинг станції
 STR_3055_CHANGE_NAME_OF_STATION                                 :{BLACK}Перейменувати станцію
 STR_3056_SHOW_LIST_OF_ACCEPTED_CARGO                            :{BLACK}Показати список приймання вантажів
-STR_3057_STATION_NAMES_CLICK_ON                                 :{BLACK}Назва станції - натисніть на назву щоб показати в центрі екрану
+STR_3057_STATION_NAMES_CLICK_ON                                 :{BLACK}Назва станції - натисніть на назву, щоб показати в центрі екрану
 STR_3058_SELECT_SIZE_TYPE_OF_AIRPORT                            :{BLACK}Виберіть розмір/тип аеропорту
 STR_305C_0                                                      :{STATION} {STATIONFEATURES}
 STR_STATION_SIGN_TINY                                           :{TINYFONT}{STATION}
@@ -1889,8 +1890,8 @@
 STR_3068_DOCK                                                   :{WHITE}Порт
 STR_3069_BUOY                                                   :Бакен
 STR_306A_BUOY_IN_THE_WAY                                        :{WHITE}...бакен на шляху
-STR_306C_STATION_TOO_SPREAD_OUT                                 :{WHITE}...станції дуже розкидані
-STR_306D_NONUNIFORM_STATIONS_DISALLOWED                         :{WHITE}...неоднорідні станції відмінено
+STR_306C_STATION_TOO_SPREAD_OUT                                 :{WHITE}...станція занадто велика
+STR_306D_NONUNIFORM_STATIONS_DISALLOWED                         :{WHITE}...неоднорідні станції відключені
 STR_USE_CTRL_TO_SELECT_MORE                                     :{BLACK}Утримуйте CTRL для вибору більш ніж одного пункту
 
 STR_UNDEFINED                                                   :(невизначено)
@@ -1901,7 +1902,7 @@
 STR_3800_SHIP_DEPOT_ORIENTATION                                 :{WHITE}Орієнтація депо
 STR_3801_MUST_BE_BUILT_ON_WATER                                 :{WHITE}...має бути збудовано на воді
 STR_3802_CAN_T_BUILD_SHIP_DEPOT                                 :{WHITE}Неможливо будувати корабельне депо тут...
-STR_3803_SELECT_SHIP_DEPOT_ORIENTATION                          :{BLACK}Виберіть направлення корабельного депо
+STR_3803_SELECT_SHIP_DEPOT_ORIENTATION                          :{BLACK}Виберіть орієнтацію корабельного депо
 STR_3804_WATER                                                  :Вода
 STR_3805_COAST_OR_RIVERBANK                                     :Берег
 STR_3806_SHIP_DEPOT                                             :Корабельне депо
--- a/src/lang/unfinished/afrikaans.txt	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/lang/unfinished/afrikaans.txt	Wed Feb 14 10:46:38 2007 +0000
@@ -300,8 +300,12 @@
 STR_ABANDON_GAME_QUERY                                          :{YELLOW}Is jy seker jy wil die spel verlaat?
 STR_0161_QUIT_GAME                                              :{WHITE}Verlaat Spel
 
+STR_ENGINE_SORT_ENGINE_ID                                       :EngineID (klassieke sorteer)
+STR_ENGINE_SORT_CARGO_CAPACITY                                  :Vrag Kapasiteit
 STR_NO_WAITING_CARGO                                            :{BLACK}Geen vrag van enige tipe is op wag
 STR_AVAILABLE_ENGINES_TIP                                       :{BLACK}Wys '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
 
 ############ range for months starts
 STR_0162_JAN                                                    :Jan
@@ -501,20 +505,16 @@
 STR_021B_ACHIEVES_STATUS                                        :{BLACK}{BIGFONT}{COMPANY} behaal '{STRING}' stand!
 STR_021C_OF_ACHIEVES_STATUS                                     :{WHITE}{BIGFONT}{PLAYERNAME} van {COMPANY} behaal '{STRING}' stand!
 STR_021F                                                        :{BLUE}{COMMA}
-STR_0220_CREATE_SCENARIO                                        :{BLACK}Skep Draaiboek
 STR_0221_OPENTTD                                                :{YELLOW}OpenTTD
 STR_0222_SCENARIO_EDITOR                                        :{YELLOW}Draaiboek Redakteur
 STR_0223_LAND_GENERATION                                        :{WHITE}Land Ontwikkeling
 STR_0224                                                        :{BLACK}{UPARROW}
 STR_0225                                                        :{BLACK}{DOWNARROW}
-STR_0226_RANDOM_LAND                                            :{BLACK}Lukraak Land
-STR_0227_RESET_LAND                                             :{BLACK}Herstel Land
 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_022D_ARE_YOU_SURE_YOU_WANT_TO                               :{WHITE}Is jy seker jy wil die landerye herstel?
 STR_022E_LANDSCAPE_GENERATION                                   :{BLACK}Landerye ontwikkeling
 STR_022F_TOWN_GENERATION                                        :{BLACK}Stad ontwikkeling
 STR_0230_INDUSTRY_GENERATION                                    :{BLACK}Nyweheid ontwikkeling
@@ -619,6 +619,7 @@
 STR_0291_DELETE_THIS_TOWN_COMPLETELY                            :{BLACK}Uitwis hele stad
 STR_0292_SAVE_SCENARIO                                          :Bewaar draaiboek
 STR_0293_LOAD_SCENARIO                                          :Laai draaiboek
+STR_LOAD_HEIGHTMAP                                              :Laai Hoogtekaart
 STR_0294_QUIT_EDITOR                                            :Verlaat redakteur
 STR_0295                                                        :
 STR_0296_QUIT                                                   :Verlaat
@@ -683,6 +684,7 @@
 STR_02DF_TOWN_DIRECTORY                                         :Stad indeks
 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_MAIN_TO_VIEW                                :{BLACK}Deeg van gesigswerf
 
 STR_02E0_CURRENCY_UNITS                                         :{BLACK}Koers eenheide
@@ -752,8 +754,8 @@
 
 STR_CURR_GBP                                                    :Pounds ()
 STR_CURR_USD                                                    :Dollars ($)
-STR_CURR_EUR                                                    :Euro ()
-STR_CURR_YEN                                                    :Yen ()
+STR_CURR_EUR                                                    :Euro (€)
+STR_CURR_YEN                                                    :Yen (¥)
 STR_CURR_ATS                                                    :Austrian Shilling (ATS)
 STR_CURR_BEF                                                    :Belgian Franc (BEF)
 STR_CURR_CHF                                                    :Swiss Franc (CHF)
@@ -772,7 +774,11 @@
 STR_CURR_PLN                                                    :Polish Zloty (PLN)
 STR_CURR_ROL                                                    :Romanian Leu (ROL)
 STR_CURR_RUR                                                    :Russian Rubles (RUR)
+STR_CURR_SIT                                                    :Slovenian Tolar (SIT)
 STR_CURR_SEK                                                    :Swedish Krona (SEK)
+STR_CURR_YTL                                                    :Turkish Lira (YTL)
+STR_CURR_SKK                                                    :Slovak Koruna (SKK)
+STR_CURR_BRR                                                    :Brazilian Real (BRL)
 
 STR_CURR_CUSTOM                                                 :Gewoonte...
 
@@ -861,6 +867,7 @@
 
 STR_CONFIG_PATCHES_SMALL_AIRPORTS                               :{LTBLUE}Klein lughawe is altyd toegelaat: {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
@@ -877,8 +884,19 @@
 STR_CONFIG_PATCHES_LAND_GENERATOR                               :{LTBLUE}Land ontwikkelaar: {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_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_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_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_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_STATION_SPREAD                               :{LTBLUE}Max stasie omvang: {ORANGE}{STRING} {RED}Waarskuwing: Ho�stelling vertraag spel
 STR_CONFIG_PATCHES_SERVICEATHELIPAD                             :{LTBLUE}Versien helikopters by helihawes outomaties: {ORANGE}{STRING}
@@ -888,6 +906,7 @@
 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_MAX_TRAINS                                   :{LTBLUE}Max treine per speler: {ORANGE}{STRING}
 STR_CONFIG_PATCHES_MAX_ROADVEH                                  :{LTBLUE}Max pad voertuie per speler: {ORANGE}{STRING}
@@ -920,6 +939,7 @@
 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_SEMAPHORE_BUILD_BEFORE_DATE                  :{LTBLUE}Outomaties bou semaphores voor: {ORANGE}{STRING}
 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
@@ -1223,10 +1243,13 @@
 STR_NETWORK_CLIENT_JOINED                                       :het die spel 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_TO_COMPANY                                     :[Span] Na {STRING}:
+STR_NETWORK_CHAT_CLIENT_CAPTION                                 :[Privaat] :
 STR_NETWORK_CHAT_CLIENT                                         :[Privaat] {STRING}:
 STR_NETWORK_CHAT_TO_CLIENT                                      :[Privaat] Na {STRING}:
+STR_NETWORK_CHAT_ALL_CAPTION                                    :[All] :
 STR_NETWORK_CHAT_ALL                                            :[All] {STRING}:
 STR_NETWORK_NAME_CHANGE                                         :het hy/sy naam verander na
 STR_NETWORK_SERVER_SHUTDOWN                                     :{WHITE} Die bediender het die sessie toegemaak
@@ -1884,7 +1907,34 @@
 STR_707F_HAS_BEEN_TAKEN_OVER_BY                                 :{BLACK}{BIGFONT}{COMPANY} is deur {COMPANY}! oorgevat!
 STR_7080_PROTECTED                                              :{WHITE}Die maatskappy is nie oud genoeg om aandeele te handel nie...
 
+STR_LIVERY_DEFAULT                                              :Standaard Lewery
+STR_LIVERY_STEAM                                                :Stoom Enjin
+STR_LIVERY_DIESEL                                               :Diesel Enjin
+STR_LIVERY_ELECTRIC                                             :Elektriese Enjin
+STR_LIVERY_MONORAIL                                             :Eenspoor Enjin
+STR_LIVERY_MAGLEV                                               :Maglev Enjin
+STR_LIVERY_DMU                                                  :DMU
+STR_LIVERY_EMU                                                  :EMU
+STR_LIVERY_PASSENGER_WAGON_STEAM                                :Passasier Rytuig (Stoom)
+STR_LIVERY_PASSENGER_WAGON_DIESEL                               :Passasier Rytuig (Diesel)
+STR_LIVERY_PASSENGER_WAGON_ELECTRIC                             :Passasier Rytuig (Elektries)
+STR_LIVERY_FREIGHT_WAGON                                        :Vraag Wa
+STR_LIVERY_BUS                                                  :Bus
+STR_LIVERY_TRUCK                                                :Vraagmotor
+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_GENERAL_TIP                                          :{BLACK}Wys 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_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
 
 ##id 0x8000
 STR_8000_KIRBY_PAUL_TANK_STEAM                                  :Kirby Paul Tank (Stoom)
@@ -2176,11 +2226,14 @@
 
 STR_HEADING_FOR_TRAIN_DEPOT                                     :{ORANGE}Op pad na {TOWN} Trein Depot
 STR_HEADING_FOR_TRAIN_DEPOT_VEL                                 :{ORANGE}Op pad na {TOWN} Trein Depot, {VELOCITY}
+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_8812_EMPTY                                                  :{LTBLUE}Leeg
 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
 STR_8815_NEW_VEHICLES                                           :{BLACK}Nuwe Voertuie
 STR_8816                                                        :{BLACK}-
@@ -2301,6 +2354,8 @@
 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}
+STR_HEADING_FOR_ROAD_DEPOT_SERVICE                              :{LTBLUE}Diens by {TOWN} Pad Depot
+STR_HEADING_FOR_ROAD_DEPOT_SERVICE_VEL                          :{LTBLUE}Diens by {TOWN} Pad Depot, {VELOCITY}
 STR_9018_CAN_T_SEND_VEHICLE_TO_DEPOT                            :{WHITE}Kan nie voertuig na depot stuur nie...
 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
@@ -2366,6 +2421,8 @@
 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
 STR_HEADING_FOR_SHIP_DEPOT_VEL                                  :{ORANGE}Op pad na {TOWN} Skip Depot, {VELOCITY}
+STR_HEADING_FOR_SHIP_DEPOT_SERVICE                              :{LTBLUE}Diens by {TOWN} Skip Depot
+STR_HEADING_FOR_SHIP_DEPOT_SERVICE_VEL                          :{LTBLUE}Diens by {TOWN} Skip Depot, {VELOCITY}
 STR_981C_SHIP_IS_WAITING_IN_DEPOT                               :{WHITE}Skip {COMMA} wag in depot
 STR_981D_BUILD_SHIP_DOCK                                        :{BLACK}Bou skip werf
 STR_981E_BUILD_SHIP_DEPOT_FOR_BUILDING                          :{BLACK}Bou skip depot (vir opbou en diens van skepe)
@@ -2431,6 +2488,8 @@
 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
 STR_HEADING_FOR_HANGAR_VEL                                      :{ORANGE}Op pad na {STATION} Hangar, {VELOCITY}
+STR_HEADING_FOR_HANGAR_SERVICE                                  :{LTBLUE}Diens by {STATION} Hangar
+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...
@@ -2544,9 +2603,22 @@
 
 
 ### depot strings
+STR_DEPOT_SELL_CONFIRMATION_TEXT                                :{YELLOW}Is jy seker jy wil al die voertuie in die depot nou verkoop?
 
+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
+STR_DEPOT_SELL_ALL_BUTTON_SHIP_TIP                              :{BLACK}Verkoop alle skepe in die depot
+STR_DEPOT_SELL_ALL_BUTTON_AIRCRAFT_TIP                          :{BLACK}Verkoop alle vliegtuie in die hangar
 
+STR_DEPOT_VEHICLE_ORDER_LIST_TRAIN_TIP                          :{BLACK}Kry 'n lys van alle treine met die huidige depot in sy opdrae
+STR_DEPOT_VEHICLE_ORDER_LIST_ROADVEH_TIP                        :{BLACK}Kry 'n lys van alle pad voertuie met die huidige depot in sy opdrae
+STR_DEPOT_VEHICLE_ORDER_LIST_SHIP_TIP                           :{BLACK}Kry 'n lys van alle skepe met die huidige depot in sy opdrae
+STR_DEPOT_VEHICLE_ORDER_LIST_AIRCRAFT_TIP                       :{BLACK}Kry 'n lys van alle vliegtuie wat enige hangar by die lughawe in sy opdrae het
 
+STR_DEPOT_AUTOREPLACE_TRAIN_TIP                                 :{BLACK}Outovervang alle treine in die depot
+STR_DEPOT_AUTOREPLACE_ROADVEH_TIP                               :{BLACK}Outovervang alle pad voertuie in die depot
+STR_DEPOT_AUTOREPLACE_SHIP_TIP                                  :{BLACK}Outovervang alle skepe in die depot
+STR_DEPOT_AUTOREPLACE_AIRCRAFT_TIP                              :{BLACK}Outovervang alle vlietuie in die hangar
 
 
 STR_NOT_REPLACING                                               :{BLACK}Word nie vervang nie
@@ -2555,8 +2627,18 @@
 
 STR_ENGINES                                                     :Enjine
 
+STR_MASS_STOP_DEPOT_TRAIN_TIP                                   :{BLACK}Kliek om alle treine in die depot te stop
+STR_MASS_STOP_DEPOT_ROADVEH_TIP                                 :{BLACK}Kliek om alle pad voertuie in die depot te stop
+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_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
 
 
 
@@ -2564,7 +2646,7 @@
 
 STR_ELRAIL_VEHICLES                                             :Elektrifiseerde Spoor Voertuie
 STR_MONORAIL_VEHICLES                                           :Eenspoor Voertuie
-STR_MAGLEV_VEHICLES                                             :Maglev voertuie
+STR_MAGLEV_VEHICLES                                             :Maglev Voertuie
 
 ############ End of list of rail types
 
@@ -2572,11 +2654,32 @@
 
 ########### String for New Landscape Generator
 
+STR_GENERATE                                                    :{WHITE}Ontwikkel
+STR_LAND_GENERATOR                                              :{BLACK}Land ontwikkelaar:
+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_NAME                                              :{BLACK}Hoogtekaart name:
+STR_HEIGHTMAP_SIZE                                              :{BLACK}Groote: {ORANGE}{NUM} x {NUM}
+STR_GENERATION_WORLD                                            :{WHITE}Wereld Ontwikkeling...
+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_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_FLAT_WORLD_HEIGHT_NUM                                       :{NUM}
 
 
 ########### String for new airports
 STR_CITY_AIRPORT                                                :{BLACK}Stad
+STR_METRO_AIRPORT                                               :{BLACK}Metropolitaans lughawe
 STR_INTERNATIONAL_AIRPORT                                       :{BLACK}Internasionaale lughawe
 STR_COMMUTER_AIRPORT                                            :{BLACK}Pendelaar
 STR_INTERCONTINENTAL_AIRPORT                                    :{BLACK}Tussenkontinentaal
@@ -2585,9 +2688,14 @@
 STR_HELISTATION                                                 :{BLACK}Helistasie
 
 STR_LARGE_AIRPORTS                                              :{BLACK}Groot Lughawe
+STR_HUB_AIRPORTS                                                :{BLACK}Naaf lughawe
 STR_HELIPORTS                                                   :{BLACK}Helikopter lughawe
 
 ############ Tooltip measurment
 
+STR_MEASURE_LENGTH                                              :{BLACK}Lengte: {NUM}
+STR_MEASURE_AREA                                                :{BLACK}Area: {NUM} x {NUM}
+STR_MEASURE_LENGTH_HEIGHTDIFF                                   :{BLACK}Lengte: {NUM}{}Hoogte verskil: {NUM} m
+STR_MEASURE_AREA_HEIGHTDIFF                                     :{BLACK}Area: {NUM} x {NUM}{}Hoogte verskil: {NUM} m
 
 ########
--- a/src/macros.h	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/macros.h	Wed Feb 14 10:46:38 2007 +0000
@@ -50,10 +50,6 @@
 	return (int32)(((int64)(a) * (int64)(b)) >> (shift));
 }
 
-static inline int64 BIGMULSS64(int64 a, int64 b, int shift) {
-	return ((a) * (b)) >> (shift);
-}
-
 static inline uint32 BIGMULUS(uint32 a, uint32 b, int shift) {
 	return (uint32)(((uint64)(a) * (uint64)(b)) >> (shift));
 }
--- a/src/music/dmusic.cpp	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/music/dmusic.cpp	Wed Feb 14 10:46:38 2007 +0000
@@ -4,7 +4,6 @@
 
 #ifdef WIN32_ENABLE_DIRECTMUSIC_SUPPORT
 
-#include "../openttd.h"
 #include "../debug.h"
 #include "../win32.h"
 #include "dmusic.h"
@@ -218,7 +217,7 @@
 }
 
 
-extern "C" const HalMusicDriver _dmusic_midi_driver = {
+const HalMusicDriver _dmusic_midi_driver = {
 	DMusicMidiStart,
 	DMusicMidiStop,
 	DMusicMidiPlaySong,
@@ -227,4 +226,4 @@
 	DMusicMidiSetVolume,
 };
 
-#endif
+#endif /* WIN32_ENABLE_DIRECTMUSIC_SUPPORT */
--- a/src/music/dmusic.h	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/music/dmusic.h	Wed Feb 14 10:46:38 2007 +0000
@@ -7,4 +7,4 @@
 
 extern const HalMusicDriver _dmusic_midi_driver;
 
-#endif
+#endif /* MUSIC_DMUSIC_H */
--- a/src/music/null_m.h	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/music/null_m.h	Wed Feb 14 10:46:38 2007 +0000
@@ -7,4 +7,4 @@
 
 extern const HalMusicDriver _null_music_driver;
 
-#endif
+#endif /* MUSIC_NULL_H */
--- a/src/music/win32_m.h	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/music/win32_m.h	Wed Feb 14 10:46:38 2007 +0000
@@ -7,4 +7,4 @@
 
 extern const HalMusicDriver _win32_music_driver;
 
-#endif
+#endif /* MUSIC_WIN32_H */
--- a/src/oldloader.cpp	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/oldloader.cpp	Wed Feb 14 10:46:38 2007 +0000
@@ -623,7 +623,7 @@
 	if (!LoadChunk(ls, st, station_chunk))
 		return false;
 
-	if (IsValidStation(st)) {
+	if (st->IsValid()) {
 		if (st->train_tile) {
 			/* Calculate the trainst_w and trainst_h */
 			uint w = GB(_old_platforms, 3, 3);
--- a/src/openttd.cpp	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/openttd.cpp	Wed Feb 14 10:46:38 2007 +0000
@@ -1458,7 +1458,7 @@
 			if (v->type == VEH_Train) {
 				v->u.rail.track = TRACK_BIT_WORMHOLE;
 			} else {
-				v->u.road.state = 0xFF;
+				v->u.road.state = RVSB_WORMHOLE;
 			}
 		}
 	}
@@ -1776,6 +1776,15 @@
 		}
 	}
 
+	/* Buoys do now store the owner of the previous water tile, which can never
+	 * be OWNER_NONE. So replace OWNER_NONE with OWNER_WATER. */
+	if (CheckSavegameVersion(46)) {
+		Station *st;
+		FOR_ALL_STATIONS(st) {
+			if (st->IsBuoy() && IsTileOwner(st->xy, OWNER_NONE)) SetTileOwner(st->xy, OWNER_WATER);
+		}
+	}
+
 	return true;
 }
 
--- a/src/openttd.h	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/openttd.h	Wed Feb 14 10:46:38 2007 +0000
@@ -361,10 +361,7 @@
 typedef void AnimateTileProc(TileIndex tile);
 typedef void TileLoopProc(TileIndex tile);
 typedef void ChangeTileOwnerProc(TileIndex tile, PlayerID old_player, PlayerID new_player);
-/* Return value has bit 0x2 set, when the vehicle enters a station. Then,
- * result << 8 contains the id of the station entered. If the return value has
- * bit 0x8 set, the vehicle could not and did not enter the tile. Are there
- * other bits that can be set? */
+/** @see VehicleEnterTileStatus to see what the return values mean */
 typedef uint32 VehicleEnterTileProc(Vehicle *v, TileIndex tile, int x, int y);
 typedef Slope GetSlopeTilehProc(TileIndex, Slope tileh);
 
--- a/src/order_gui.cpp	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/order_gui.cpp	Wed Feb 14 10:46:38 2007 +0000
@@ -94,7 +94,7 @@
 
 		/* delete */
 		w->SetWidgetDisabledState(ORDER_WIDGET_DELETE,
-				(uint)v->num_orders + (shared_orders ? 1 : 0) <= (uint)WP(w, order_d).sel);
+				(uint)v->num_orders + ((shared_orders || v->num_orders != 0) ? 1 : 0) <= (uint)WP(w, order_d).sel);
 
 		/* non-stop only for trains */
 		w->SetWidgetDisabledState(ORDER_WIDGET_NON_STOP,  v->type != VEH_Train || order == NULL);
--- a/src/rail.h	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/rail.h	Wed Feb 14 10:46:38 2007 +0000
@@ -79,7 +79,7 @@
 	TRACK_BIT_ALL     = TRACK_BIT_CROSS | TRACK_BIT_HORZ  | TRACK_BIT_VERT,
 	TRACK_BIT_MASK    = 0x3FU,
 	TRACK_BIT_WORMHOLE = 0x40U,
-	TRACK_BIT_SPECIAL = 0x80U,
+	TRACK_BIT_DEPOT   = 0x80U,
 	INVALID_TRACK_BIT = 0xFF
 } TrackBits;
 
@@ -106,7 +106,11 @@
 
 
 /** These are a combination of tracks and directions. Values are 0-5 in one
- * direction (corresponding to the Track enum) and 8-13 in the other direction. */
+ * direction (corresponding to the Track enum) and 8-13 in the other direction.
+ * 6, 7, 14 and 15 are used to encode the reversing of road vehicles. Those
+ * reversing track dirs are not considered to be 'valid' except in a small
+ * corner in the road vehicle controller.
+ */
 typedef enum Trackdirs {
 	TRACKDIR_BEGIN    =  0,
 	TRACKDIR_X_NE     =  0,
@@ -115,14 +119,16 @@
 	TRACKDIR_LOWER_E  =  3,
 	TRACKDIR_LEFT_S   =  4,
 	TRACKDIR_RIGHT_S  =  5,
-	/* Note the two missing values here. This enables trackdir -> track
-	 * conversion by doing (trackdir & 7) */
+	TRACKDIR_RVREV_NE =  6,
+	TRACKDIR_RVREV_SE =  7,
 	TRACKDIR_X_SW     =  8,
 	TRACKDIR_Y_NW     =  9,
 	TRACKDIR_UPPER_W  = 10,
 	TRACKDIR_LOWER_W  = 11,
 	TRACKDIR_LEFT_N   = 12,
 	TRACKDIR_RIGHT_N  = 13,
+	TRACKDIR_RVREV_SW = 14,
+	TRACKDIR_RVREV_NW = 15,
 	TRACKDIR_END,
 	INVALID_TRACKDIR  = 0xFF,
 } Trackdir;
--- a/src/rail_cmd.cpp	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/rail_cmd.cpp	Wed Feb 14 10:46:38 2007 +0000
@@ -1946,7 +1946,7 @@
 	int length;
 
 	// this routine applies only to trains in depot tiles
-	if (v->type != VEH_Train || !IsTileDepotType(tile, TRANSPORT_RAIL)) return 0;
+	if (v->type != VEH_Train || !IsTileDepotType(tile, TRANSPORT_RAIL)) return VETSB_CONTINUE;
 
 	/* depot direction */
 	dir = GetRailDepotDirection(tile);
@@ -1965,18 +1965,18 @@
 
 	if (_fractcoords_behind[dir] == fract_coord) {
 		/* make sure a train is not entering the tile from behind */
-		return 8;
+		return VETSB_CANNOT_ENTER;
 	} else if (_fractcoords_enter[dir] == fract_coord) {
 		if (DiagDirToDir(ReverseDiagDir(dir)) == v->direction) {
 			/* enter the depot */
-			v->u.rail.track = TRACK_BIT_SPECIAL,
+			v->u.rail.track = TRACK_BIT_DEPOT,
 			v->vehstatus |= VS_HIDDEN; /* hide it */
 			v->direction = ReverseDir(v->direction);
 			if (v->next == NULL) VehicleEnterDepot(v);
 			v->tile = tile;
 
 			InvalidateWindowData(WC_VEHICLE_DEPOT, v->tile);
-			return 4;
+			return VETSB_ENTERED_WORMHOLE;
 		}
 	} else if (fract_coord_leave == fract_coord) {
 		if (DiagDirToDir(dir) == v->direction) {
@@ -1988,7 +1988,7 @@
 		}
 	}
 
-	return 0;
+	return VETSB_CONTINUE;
 }
 
 
--- a/src/road.h	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/road.h	Wed Feb 14 10:46:38 2007 +0000
@@ -28,4 +28,16 @@
 	return (RoadBits)(1U << (3 ^ d));
 }
 
+/** Checks whether the trackdir means that we are reversing */
+static inline bool IsReversingRoadTrackdir(Trackdir dir)
+{
+	return (dir & 0x07) >= 6;
+}
+
+/** Checks whether the given trackdir is a straight road */
+static inline bool IsStraightRoadTrackdir(Trackdir dir)
+{
+	return (dir & 0x06) == 0;
+}
+
 #endif /* ROAD_H */
--- a/src/road_cmd.cpp	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/road_cmd.cpp	Wed Feb 14 10:46:38 2007 +0000
@@ -1016,13 +1016,13 @@
 					v->u.road.frame == 11 &&
 					_roadveh_enter_depot_unk0[GetRoadDepotDirection(tile)] == v->u.road.state) {
 				VehicleEnterDepot(v);
-				return 4;
+				return VETSB_ENTERED_WORMHOLE;
 			}
 			break;
 
 		default: break;
 	}
-	return 0;
+	return VETSB_CONTINUE;
 }
 
 
--- a/src/roadveh_cmd.cpp	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/roadveh_cmd.cpp	Wed Feb 14 10:46:38 2007 +0000
@@ -53,17 +53,30 @@
 	 0,   0,   0,   8,   8,   8,   8
 };
 
-
-static const uint16 _road_veh_fp_ax_and[4] = {
-	0x1009, 0x16, 0x520, 0x2A00
+/** 'Convert' the DiagDirection where a road vehicle enters to the trackdirs it can drive onto */
+static const TrackdirBits _road_enter_dir_to_reachable_trackdirs[DIAGDIR_END] = {
+	TRACKDIR_BIT_LEFT_N  | TRACKDIR_BIT_LOWER_E | TRACKDIR_BIT_X_NE,    // Enter from north east
+	TRACKDIR_BIT_LEFT_S  | TRACKDIR_BIT_UPPER_E | TRACKDIR_BIT_Y_SE,    // Enter from south east
+	TRACKDIR_BIT_UPPER_W | TRACKDIR_BIT_X_SW    | TRACKDIR_BIT_RIGHT_S, // Enter from south west
+	TRACKDIR_BIT_RIGHT_N | TRACKDIR_BIT_LOWER_W | TRACKDIR_BIT_Y_NW     // Enter from north west
 };
 
-static const byte _road_reverse_table[4] = {
-	6, 7, 14, 15
+static const Trackdir _road_reverse_table[DIAGDIR_END] = {
+	TRACKDIR_RVREV_NE, TRACKDIR_RVREV_SE, TRACKDIR_RVREV_SW, TRACKDIR_RVREV_NW
 };
 
-static const uint16 _road_pf_table_3[4] = {
-	0x910, 0x1600, 0x2005, 0x2A
+/** 'Convert' the DiagDirection where a road vehicle should exit to
+ * the trackdirs it can use to drive to the exit direction*/
+static const TrackdirBits _road_exit_dir_to_incoming_trackdirs[DIAGDIR_END] = {
+	TRACKDIR_BIT_LOWER_W | TRACKDIR_BIT_X_SW    | TRACKDIR_BIT_LEFT_S,
+	TRACKDIR_BIT_LEFT_N  | TRACKDIR_BIT_UPPER_W | TRACKDIR_BIT_Y_NW,
+	TRACKDIR_BIT_RIGHT_N | TRACKDIR_BIT_UPPER_E | TRACKDIR_BIT_X_NE,
+	TRACKDIR_BIT_RIGHT_S | TRACKDIR_BIT_LOWER_E | TRACKDIR_BIT_Y_SE
+};
+
+/** Converts the exit direction of a depot to trackdir the vehicle is going to drive to */
+static const Trackdir _roadveh_depot_exit_trackdir[DIAGDIR_END] = {
+	TRACKDIR_X_NE, TRACKDIR_Y_SE, TRACKDIR_X_SW, TRACKDIR_Y_NW
 };
 
 int GetRoadVehImage(const Vehicle* v, Direction direction)
@@ -153,7 +166,7 @@
 		v->z_pos = GetSlopeZ(x,y);
 		v->z_height = 6;
 
-		v->u.road.state = 254;
+		v->u.road.state = RVSB_IN_DEPOT;
 		v->vehstatus = VS_HIDDEN|VS_STOPPED|VS_DEFPAL;
 
 		v->spritenum = rvi->image_index;
@@ -444,7 +457,7 @@
 			v->u.road.crashed_ctr != 0 ||
 			v->breakdown_ctr != 0 ||
 			v->u.road.overtaking != 0 ||
-			v->u.road.state == 255 ||
+			v->u.road.state == RVSB_WORMHOLE ||
 			IsRoadVehInDepot(v) ||
 			v->cur_speed < 5) {
 		return CMD_ERROR;
@@ -490,11 +503,11 @@
 {
 	RoadStop *rs = GetRoadStopByTile(v->tile, GetRoadStopType(v->tile));
 
-	// mark station as not busy
-	CLRBIT(rs->status, 7);
+	/* Mark the station entrance as not busy */
+	rs->SetEntranceBusy(false);
 
-	// free parking bay
-	SETBIT(rs->status, HASBIT(v->u.road.state, 1) ? 1 : 0);
+	/* Free the parking bay */
+	rs->FreeBay(HASBIT(v->u.road.state, RVS_USING_SECOND_BAY));
 }
 
 static void RoadVehDelete(Vehicle *v)
@@ -599,7 +612,7 @@
 {
 	TileIndex tile;
 
-	if (v->u.road.state == 255) return;
+	if (v->u.road.state == RVSB_WORMHOLE) return;
 
 	tile = v->tile;
 
@@ -867,7 +880,7 @@
 
 	// Clamp
 	spd = min(spd, v->max_speed);
-	if (v->u.road.state == 255) spd = min(spd, SetSpeedLimitOnBridge(v));
+	if (v->u.road.state == RVSB_WORMHOLE) spd = min(spd, SetSpeedLimitOnBridge(v));
 
 	//updates statusbar only if speed have changed to save CPU time
 	if (spd != v->cur_speed) {
@@ -958,7 +971,8 @@
 
 	if (v->direction != u->direction || !(v->direction & 1)) return;
 
-	if (v->u.road.state >= 32 || (v->u.road.state & 7) > 1) return;
+	/* Check if vehicle is in a road stop, depot, tunnel or bridge or not on a straight road */
+	if (v->u.road.state >= RVS_IN_ROAD_STOP || !IsStraightRoadTrackdir((Trackdir)(v->u.road.state & RVSB_TRACKDIR_MASK))) return;
 
 	tt = GetTileTrackStatus(v->tile, TRANSPORT_ROAD) & 0x3F;
 	if ((tt & 3) == 0) return;
@@ -1041,48 +1055,48 @@
 	return ret;
 }
 
-// Returns direction to choose
-// or -1 if the direction is currently blocked
-static int RoadFindPathToDest(Vehicle* v, TileIndex tile, DiagDirection enterdir)
+/**
+ * Returns direction to for a road vehicle to take or
+ * INVALID_TRACKDIR if the direction is currently blocked
+ * @param v        the vehicle to do the pathfinding for
+ * @param tile     the where to start the pathfinding
+ * @param enterdir the direction the vehicle enters the tile from
+ * @return the trackdir to take
+ */
+static Trackdir RoadFindPathToDest(Vehicle* v, TileIndex tile, DiagDirection enterdir)
 {
-#define return_track(x) {best_track = x; goto found_best_track; }
+#define return_track(x) { best_track = (Trackdir)x; goto found_best_track; }
 
-	uint16 signal;
-	uint bitmask;
 	TileIndex desttile;
 	FindRoadToChooseData frd;
-	int best_track;
-	uint best_dist, best_maxlen;
-	uint i;
+	Trackdir best_track;
 
-	{
-		uint32 r = GetTileTrackStatus(tile, TRANSPORT_ROAD);
-		signal  = GB(r, 16, 16);
-		bitmask = GB(r,  0, 16);
-	}
+	uint32 r  = GetTileTrackStatus(tile, TRANSPORT_ROAD);
+	TrackdirBits signal    = (TrackdirBits)GB(r, 16, 16);
+	TrackdirBits trackdirs = (TrackdirBits)GB(r,  0, 16);
 
 	if (IsTileType(tile, MP_STREET)) {
 		if (GetRoadTileType(tile) == ROAD_TILE_DEPOT && (!IsTileOwner(tile, v->owner) || GetRoadDepotDirection(tile) == enterdir)) {
 			/* Road depot owned by another player or with the wrong orientation */
-			bitmask = 0;
+			trackdirs = TRACKDIR_BIT_NONE;
 		}
 	} else if (IsTileType(tile, MP_STATION) && IsRoadStopTile(tile)) {
 		if (!IsTileOwner(tile, v->owner) || GetRoadStopDir(tile) == enterdir) {
 			/* different station owner or wrong orientation */
-			bitmask = 0;
+			trackdirs = TRACKDIR_BIT_NONE;
 		} else {
 			/* Our station */
 			RoadStop::Type rstype = (v->cargo_type == CT_PASSENGERS) ? RoadStop::BUS : RoadStop::TRUCK;
 
 			if (GetRoadStopType(tile) != rstype) {
-				// wrong station type
-				bitmask = 0;
+				/* Wrong station type */
+				trackdirs = TRACKDIR_BIT_NONE;
 			} else {
-				// proper station type, check if there is free loading bay
+				/* Proper station type, check if there is free loading bay */
 				if (!_patches.roadveh_queue &&
-						GB(GetRoadStopByTile(tile, rstype)->status, 0, 2) == 0) {
-					// station is full and RV queuing is off
-					bitmask = 0;
+						!GetRoadStopByTile(tile, rstype)->HasFreeBay()) {
+					/* Station is full and RV queuing is off */
+					trackdirs = TRACKDIR_BIT_NONE;
 				}
 			}
 		}
@@ -1092,9 +1106,9 @@
 	 * stuff, probably even more arguments to GTTS.
 	 */
 
-	/* remove unreachable tracks */
-	bitmask &= _road_veh_fp_ax_and[enterdir];
-	if (bitmask == 0) {
+	/* Remove tracks unreachable from the enter dir */
+	trackdirs &= _road_enter_dir_to_reachable_trackdirs[enterdir];
+	if (trackdirs == TRACKDIR_BIT_NONE) {
 		/* No reachable tracks, so we'll reverse */
 		return_track(_road_reverse_table[enterdir]);
 	}
@@ -1109,19 +1123,19 @@
 
 	desttile = v->dest_tile;
 	if (desttile == 0) {
-		// Pick a random track
-		return_track(PickRandomBit(bitmask));
+		/* We've got no destination, pick a random track */
+		return_track(PickRandomBit(trackdirs));
 	}
 
-	// Only one track to choose between?
-	if (!(KillFirstBit2x64(bitmask))) {
-		return_track(FindFirstBit2x64(bitmask));
+	/* Only one track to choose between? */
+	if (!(KillFirstBit2x64(trackdirs))) {
+		return_track(FindFirstBit2x64(trackdirs));
 	}
 
 	if (_patches.yapf.road_use_yapf) {
 		Trackdir trackdir = YapfChooseRoadTrack(v, tile, enterdir);
 		if (trackdir != INVALID_TRACKDIR) return_track(trackdir);
-		return_track(PickRandomBit(bitmask));
+		return_track(PickRandomBit(trackdirs));
 	} else if (_patches.new_pathfinding_all) {
 		NPFFindStationOrTileData fstd;
 		NPFFoundTargetData ftd;
@@ -1132,11 +1146,11 @@
 		//debug("Finding path. Enterdir: %d, Trackdir: %d", enterdir, trackdir);
 
 		ftd = PerfNPFRouteToStationOrTile(tile - TileOffsByDiagDir(enterdir), trackdir, &fstd, TRANSPORT_ROAD, v->owner, INVALID_RAILTYPE);
-		if (ftd.best_trackdir == 0xff) {
+		if (ftd.best_trackdir == INVALID_TRACKDIR) {
 			/* We are already at our target. Just do something */
 			//TODO: maybe display error?
 			//TODO: go straight ahead if possible?
-			return_track(FindFirstBit2x64(bitmask));
+			return_track(FindFirstBit2x64(trackdirs));
 		} else {
 			/* If ftd.best_bird_dist is 0, we found our target and ftd.best_trackdir contains
 			the direction we need to take to get there, if ftd.best_bird_dist is not 0,
@@ -1160,40 +1174,40 @@
 				 * pretend we are heading for the tile in front, we'll
 				 * see from there */
 				desttile += TileOffsByDiagDir(dir);
-				if (desttile == tile && bitmask & _road_pf_table_3[dir]) {
+				if (desttile == tile && trackdirs & _road_exit_dir_to_incoming_trackdirs[dir]) {
 					/* If we are already in front of the
 					 * station/depot and we can get in from here,
 					 * we enter */
-					return_track(FindFirstBit2x64(bitmask & _road_pf_table_3[dir]));
+					return_track(FindFirstBit2x64(trackdirs & _road_exit_dir_to_incoming_trackdirs[dir]));
 				}
 			}
 		}
-		// do pathfind
+		/* Do some pathfinding */
 		frd.dest = desttile;
 
-		best_track = -1;
-		best_dist = (uint)-1;
-		best_maxlen = (uint)-1;
-		i = 0;
-		do {
-			if (bitmask & 1) {
-				if (best_track == -1) best_track = i; // in case we don't find the path, just pick a track
+		best_track = INVALID_TRACKDIR;
+		uint best_dist = (uint)-1;
+		uint best_maxlen = (uint)-1;
+		uint bitmask = (uint)trackdirs;
+		for (int i = 0; bitmask != 0; bitmask >>= 1, i++) {
+			if (HASBIT(bitmask, 0)) {
+				if (best_track == INVALID_TRACKDIR) best_track = (Trackdir)i; // in case we don't find the path, just pick a track
 				frd.maxtracklen = (uint)-1;
 				frd.mindist = (uint)-1;
 				FollowTrack(tile, 0x2000 | TRANSPORT_ROAD, _road_pf_directions[i], EnumRoadTrackFindDist, NULL, &frd);
 
-				if (frd.mindist < best_dist || (frd.mindist==best_dist && frd.maxtracklen < best_maxlen)) {
+				if (frd.mindist < best_dist || (frd.mindist == best_dist && frd.maxtracklen < best_maxlen)) {
 					best_dist = frd.mindist;
 					best_maxlen = frd.maxtracklen;
-					best_track = i;
+					best_track = (Trackdir)i;
 				}
 			}
-		} while (++i,(bitmask>>=1) != 0);
+		}
 	}
 
 found_best_track:;
 
-	if (HASBIT(signal, best_track)) return -1;
+	if (HASBIT(signal, best_track)) return INVALID_TRACKDIR;
 
 	return best_track;
 }
@@ -1208,7 +1222,7 @@
 		// use NPF
 		NPFFindStationOrTileData fstd;
 		Trackdir trackdir = GetVehicleTrackdir(v);
-		assert(trackdir != 0xFF);
+		assert(trackdir != INVALID_TRACKDIR);
 
 		fstd.dest_coords = tile;
 		fstd.station_index = INVALID_STATION; // indicates that the destination is a tile, not a station
@@ -1221,6 +1235,18 @@
 	return dist;
 }
 
+enum {
+	RDE_NEXT_TILE = 0x80,
+	RDE_TURNED    = 0x40,
+
+	/* Start frames for when a vehicle enters a tile/changes its state.
+	 * The start frame is different for vehicles that turned around or
+	 * are leaving the depot as the do not start at the edge of the tile */
+	RVC_DEFAULT_START_FRAME     = 0,
+	RVC_TURN_AROUND_START_FRAME = 1,
+	RVC_DEPOT_START_FRAME       = 6
+};
+
 typedef struct RoadDriveEntry {
 	byte x,y;
 } RoadDriveEntry;
@@ -1234,8 +1260,6 @@
 	15, 15, 11, 11
 };
 
-static const byte _roadveh_data_2[4] = { 0, 1, 8, 9 };
-
 static void RoadVehController(Vehicle *v)
 {
 	Direction new_dir;
@@ -1273,20 +1297,21 @@
 	if (v->current_order.type == OT_LOADING) return;
 
 	if (IsRoadVehInDepot(v)) {
+		/* Vehicle is about to leave a depot */
 		DiagDirection dir;
 		const RoadDriveEntry* rdp;
-		byte rd2;
+		Trackdir tdir;
 
 		v->cur_speed = 0;
 
 		dir = GetRoadDepotDirection(v->tile);
 		v->direction = DiagDirToDir(dir);
 
-		rd2 = _roadveh_data_2[dir];
-		rdp = _road_drive_data[(_opt.road_side << 4) + rd2];
+		tdir = _roadveh_depot_exit_trackdir[dir];
+		rdp = _road_drive_data[(_opt.road_side << RVS_DRIVE_SIDE) + tdir];
 
-		x = TileX(v->tile) * TILE_SIZE + (rdp[6].x & 0xF);
-		y = TileY(v->tile) * TILE_SIZE + (rdp[6].y & 0xF);
+		x = TileX(v->tile) * TILE_SIZE + (rdp[RVC_DEPOT_START_FRAME].x & 0xF);
+		y = TileY(v->tile) * TILE_SIZE + (rdp[RVC_DEPOT_START_FRAME].y & 0xF);
 
 		if (RoadVehFindCloseTo(v, x, y, v->direction) != NULL) return;
 
@@ -1297,8 +1322,8 @@
 		BeginVehicleMove(v);
 
 		v->vehstatus &= ~VS_HIDDEN;
-		v->u.road.state = rd2;
-		v->u.road.frame = 6;
+		v->u.road.state = tdir;
+		v->u.road.frame = RVC_DEPOT_START_FRAME;
 
 		v->cur_image = GetRoadVehImage(v, v->direction);
 		UpdateRoadVehDeltaXY(v);
@@ -1308,24 +1333,24 @@
 		return;
 	}
 
+	/* Check if vehicle needs to proceed, return if it doesn't */
 	if (!RoadVehAccelerate(v)) return;
 
 	if (v->u.road.overtaking != 0)  {
 		if (++v->u.road.overtaking_ctr >= 35)
 			/* If overtaking just aborts at a random moment, we can have a out-of-bound problem,
 			 *  if the vehicle started a corner. To protect that, only allow an abort of
-			 *  overtake if we are on straight road, which are the 8 states below */
-			if (v->u.road.state == 0  || v->u.road.state == 1  ||
-					v->u.road.state == 8  || v->u.road.state == 9  ||
-					v->u.road.state == 16 || v->u.road.state == 17 ||
-					v->u.road.state == 24 || v->u.road.state == 25) {
+			 *  overtake if we are on straight roads */
+			if (v->u.road.state < RVSB_IN_ROAD_STOP && IsStraightRoadTrackdir((Trackdir)v->u.road.state)) {
 				v->u.road.overtaking = 0;
 			}
 	}
 
+	/* Save old vehicle position to use at end of move to set viewport area dirty */
 	BeginVehicleMove(v);
 
-	if (v->u.road.state == 255) {
+	if (v->u.road.state == RVSB_WORMHOLE) {
+		/* Vehicle is entering a depot or is on a bridge or in a tunnel */
 		GetNewVehiclePosResult gp;
 
 		GetNewVehiclePos(v, &gp);
@@ -1336,8 +1361,8 @@
 			return;
 		}
 
-		if ((IsTunnelTile(gp.new_tile) || IsBridgeTile(gp.new_tile)) && VehicleEnterTile(v, gp.new_tile, gp.x, gp.y) & 4) {
-			//new_dir = RoadGetNewDirection(v, gp.x, gp.y)
+		if ((IsTunnelTile(gp.new_tile) || IsBridgeTile(gp.new_tile)) && HASBIT(VehicleEnterTile(v, gp.new_tile, gp.x, gp.y), VETS_ENTERED_WORMHOLE)) {
+			/* Vehicle has just entered a bridge or tunnel */
 			v->cur_image = GetRoadVehImage(v, v->direction);
 			UpdateRoadVehDeltaXY(v);
 			SetRoadVehPosition(v,gp.x,gp.y);
@@ -1351,63 +1376,67 @@
 		return;
 	}
 
-	rd = _road_drive_data[(v->u.road.state + (_opt.road_side << 4)) ^ v->u.road.overtaking][v->u.road.frame + 1];
+	/* Get move position data for next frame */
+	rd = _road_drive_data[(v->u.road.state + (_opt.road_side << RVS_DRIVE_SIDE)) ^ v->u.road.overtaking][v->u.road.frame + 1];
 
-// switch to another tile
-	if (rd.x & 0x80) {
+	if (rd.x & RDE_NEXT_TILE) {
 		TileIndex tile = v->tile + TileOffsByDiagDir(rd.x & 3);
-		int dir = RoadFindPathToDest(v, tile, (DiagDirection)(rd.x & 3));
+		Trackdir dir = RoadFindPathToDest(v, tile, (DiagDirection)(rd.x & 3));
 		uint32 r;
 		Direction newdir;
 		const RoadDriveEntry *rdp;
 
-		if (dir == -1) {
+		if (dir == INVALID_TRACKDIR) {
 			v->cur_speed = 0;
 			return;
 		}
 
 again:
-		if ((dir & 7) >= 6) {
+		if (IsReversingRoadTrackdir(dir)) {
 			/* Turning around */
 			tile = v->tile;
 		}
 
-		rdp = _road_drive_data[(dir + (_opt.road_side << 4)) ^ v->u.road.overtaking];
+		/* Get position data for first frame on the new tile */
+		rdp = _road_drive_data[(dir + (_opt.road_side << RVS_DRIVE_SIDE)) ^ v->u.road.overtaking];
 
-		x = TileX(tile) * TILE_SIZE + rdp[0].x;
-		y = TileY(tile) * TILE_SIZE + rdp[0].y;
+		x = TileX(tile) * TILE_SIZE + rdp[RVC_DEFAULT_START_FRAME].x;
+		y = TileY(tile) * TILE_SIZE + rdp[RVC_DEFAULT_START_FRAME].y;
 
 		newdir = RoadVehGetSlidingDirection(v, x, y);
 		if (RoadVehFindCloseTo(v, x, y, newdir) != NULL) return;
 
 		r = VehicleEnterTile(v, tile, x, y);
-		if (r & 8) {
+		if (HASBIT(r, VETS_CANNOT_ENTER)) {
 			if (!IsTileType(tile, MP_TUNNELBRIDGE)) {
 				v->cur_speed = 0;
 				return;
 			}
-			dir = _road_reverse_table[rd.x&3];
+			/* Try an about turn to re-enter the previous tile */
+			dir = _road_reverse_table[rd.x & 3];
 			goto again;
 		}
 
-		if (IS_BYTE_INSIDE(v->u.road.state, 0x20, 0x30) && IsTileType(v->tile, MP_STATION)) {
-			if ((dir & 7) >= 6) {
+		if (IS_BYTE_INSIDE(v->u.road.state, RVSB_IN_ROAD_STOP, RVSB_IN_ROAD_STOP_END) && IsTileType(v->tile, MP_STATION)) {
+			if (IsReversingRoadTrackdir(dir)) {
+				/* New direction is trying to turn vehicle around.
+				 * We can't turn at the exit of a road stop so wait.*/
 				v->cur_speed = 0;
 				return;
 			}
 			if (IsRoadStop(v->tile)) {
 				RoadStop *rs = GetRoadStopByTile(v->tile, GetRoadStopType(v->tile));
 
-				// reached a loading bay, mark it as used and clear the usage bit
-				SETBIT(rs->status, v->u.road.state & 2 ? 1 : 0); // occupied bay
-				CLRBIT(rs->status, 7); // usage bit
+				/* Vehicle is leaving a road stop tile, mark bay as free */
+				rs->FreeBay(HASBIT(v->u.road.state, RVS_USING_SECOND_BAY));
+				rs->SetEntranceBusy(false);
 			}
 		}
 
-		if (!(r & 4)) {
+		if (!HASBIT(r, VETS_ENTERED_WORMHOLE)) {
 			v->tile = tile;
 			v->u.road.state = (byte)dir;
-			v->u.road.frame = 0;
+			v->u.road.frame = RVC_DEFAULT_START_FRAME;
 		}
 		if (newdir != v->direction) {
 			v->direction = newdir;
@@ -1420,35 +1449,34 @@
 		return;
 	}
 
-	if (rd.x & 0x40) {
-		int dir = RoadFindPathToDest(v, v->tile, (DiagDirection)(rd.x & 3));
+	if (rd.x & RDE_TURNED) {
+		/* Vehicle has finished turning around, it will now head back onto the same tile */
+		Trackdir dir = RoadFindPathToDest(v, v->tile, (DiagDirection)(rd.x & 3));
 		uint32 r;
-		int tmp;
 		Direction newdir;
 		const RoadDriveEntry *rdp;
 
-		if (dir == -1) {
+		if (dir == INVALID_TRACKDIR) {
 			v->cur_speed = 0;
 			return;
 		}
 
-		tmp = (_opt.road_side << 4) + dir;
-		rdp = _road_drive_data[tmp];
+		rdp = _road_drive_data[(_opt.road_side << RVS_DRIVE_SIDE) + dir];
 
-		x = TileX(v->tile) * TILE_SIZE + rdp[1].x;
-		y = TileY(v->tile) * TILE_SIZE + rdp[1].y;
+		x = TileX(v->tile) * TILE_SIZE + rdp[RVC_TURN_AROUND_START_FRAME].x;
+		y = TileY(v->tile) * TILE_SIZE + rdp[RVC_TURN_AROUND_START_FRAME].y;
 
 		newdir = RoadVehGetSlidingDirection(v, x, y);
 		if (RoadVehFindCloseTo(v, x, y, newdir) != NULL) return;
 
 		r = VehicleEnterTile(v, v->tile, x, y);
-		if (r & 8) {
+		if (HASBIT(r, VETS_CANNOT_ENTER)) {
 			v->cur_speed = 0;
 			return;
 		}
 
-		v->u.road.state = tmp & ~16;
-		v->u.road.frame = 1;
+		v->u.road.state = dir;
+		v->u.road.frame = RVC_TURN_AROUND_START_FRAME;
 
 		if (newdir != v->direction) {
 			v->direction = newdir;
@@ -1461,15 +1489,19 @@
 		return;
 	}
 
+	/* Calculate new position for the vehicle */
 	x = (v->x_pos & ~15) + (rd.x & 15);
 	y = (v->y_pos & ~15) + (rd.y & 15);
 
 	new_dir = RoadVehGetSlidingDirection(v, x, y);
 
-	if (!IS_BYTE_INSIDE(v->u.road.state, 0x20, 0x30)) {
+	if (!IS_BYTE_INSIDE(v->u.road.state, RVSB_IN_ROAD_STOP, RVSB_IN_ROAD_STOP_END)) {
+		/* Vehicle is not in a road stop.
+		 * Check for another vehicle to overtake */
 		Vehicle* u = RoadVehFindCloseTo(v, x, y, new_dir);
 
 		if (u != NULL) {
+			/* There is a vehicle in front overtake it if possible */
 			if (v->u.road.overtaking == 0) RoadVehCheckOvertake(v, u);
 			return;
 		}
@@ -1480,23 +1512,31 @@
 		v->direction = new_dir;
 		v->cur_speed -= (v->cur_speed >> 2);
 		if (old_dir != v->u.road.state) {
+			/* The vehicle is in a road stop */
 			v->cur_image = GetRoadVehImage(v, new_dir);
 			UpdateRoadVehDeltaXY(v);
 			SetRoadVehPosition(v, v->x_pos, v->y_pos);
+			/* Note, return here means that the frame counter is not incremented
+			 * for vehicles changing direction in a road stop. This causes frames to
+			 * be repeated. (XXX) Is this intended? */
 			return;
 		}
 	}
 
-	if (v->u.road.state >= 0x20 &&
-			_road_veh_data_1[v->u.road.state - 0x20 + (_opt.road_side<<4)] == v->u.road.frame) {
+	if (v->u.road.state >= RVSB_IN_ROAD_STOP &&
+			_road_veh_data_1[v->u.road.state - RVSB_IN_ROAD_STOP + (_opt.road_side << RVS_DRIVE_SIDE)] == v->u.road.frame) {
 		RoadStop *rs = GetRoadStopByTile(v->tile, GetRoadStopType(v->tile));
 		Station* st = GetStationByTile(v->tile);
 
+		/* Vehicle is at the stop position (at a bay) in a road stop.
+		 * Note, if vehicle is loading/unloading it has already been handled,
+		 * so if we get here the vehicle has just arrived or is just ready to leave. */
 		if (v->current_order.type != OT_LEAVESTATION &&
 				v->current_order.type != OT_GOTO_DEPOT) {
+			/* Vehicle has arrived at a bay in a road stop */
 			Order old_order;
 
-			CLRBIT(rs->status, 7);
+			rs->SetEntranceBusy(false);
 
 			v->last_station_visited = GetStationIndex(v->tile);
 
@@ -1521,8 +1561,10 @@
 			return;
 		}
 
+		/* Vehicle is ready to leave a bay in a road stop */
 		if (v->current_order.type != OT_GOTO_DEPOT) {
-			if (HASBIT(rs->status, 7)) {
+			if (rs->IsEntranceBusy()) {
+				/* Road stop entrance is busy, so wait as there is nowhere else to go */
 				v->cur_speed = 0;
 				return;
 			}
@@ -1530,13 +1572,14 @@
 			v->current_order.flags = 0;
 			ClearSlot(v);
 		}
-		SETBIT(rs->status, 7);
+
+		rs->SetEntranceBusy(true);
 
 		if (rs == v->u.road.slot) {
-			//we have arrived at the correct station
+			/* We are leaving the correct station */
 			ClearSlot(v);
 		} else if (v->u.road.slot != NULL) {
-			//we have arrived at the wrong station
+			/* We are leaving the wrong station */
 			//XXX The question is .. what to do? Actually we shouldn't be here
 			//but I guess we need to clear the slot
 			DEBUG(ms, 0, "Vehicle %d (index %d) arrived at wrong stop", v->unitnumber, v->index);
@@ -1562,13 +1605,17 @@
 		InvalidateWindowWidget(WC_VEHICLE_VIEW, v->index, STATUS_BAR);
 	}
 
+	/* Check tile position conditions - i.e. stop position in depot,
+	 * entry onto bridge or into tunnel */
 	r = VehicleEnterTile(v, v->tile, x, y);
-	if (r & 8) {
+	if (HASBIT(r, VETS_CANNOT_ENTER)) {
 		v->cur_speed = 0;
 		return;
 	}
 
-	if ((r & 4) == 0) v->u.road.frame++;
+	/* Move to next frame unless vehicle arrived at a stop position
+	 * in a depot or entered a tunnel/bridge */
+	if (!HASBIT(r, VETS_ENTERED_WORMHOLE)) v->u.road.frame++;
 
 	v->cur_image = GetRoadVehImage(v, v->direction);
 	UpdateRoadVehDeltaXY(v);
--- a/src/saveload.cpp	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/saveload.cpp	Wed Feb 14 10:46:38 2007 +0000
@@ -30,7 +30,7 @@
 #include "variables.h"
 #include <setjmp.h>
 
-extern const uint16 SAVEGAME_VERSION = 45;
+extern const uint16 SAVEGAME_VERSION = 46;
 uint16 _sl_version;       /// the major savegame version identifier
 byte   _sl_minor_version; /// the minor savegame version, DO NOT USE!
 
--- a/src/settings.cpp	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/settings.cpp	Wed Feb 14 10:46:38 2007 +0000
@@ -960,7 +960,7 @@
 	SDTG_CONDVAR(name, type, flags, guiflags, var, def, min, max, interval, str, proc, 0, SL_MAX_VERSION)
 
 #define SDTG_CONDBOOL(name, flags, guiflags, var, def, str, proc, from, to)\
-	SDTG_GENERAL(name, SDT_BOOLX, SL_VAR, SLE_UINT8, flags, guiflags, var, 0, def, 0, 1, 0, NULL, str, proc, from, to)
+	SDTG_GENERAL(name, SDT_BOOLX, SL_VAR, SLE_BOOL, flags, guiflags, var, 0, def, 0, 1, 0, NULL, str, proc, from, to)
 #define SDTG_BOOL(name, flags, guiflags, var, def, str, proc)\
 	SDTG_CONDBOOL(name, flags, guiflags, var, def, str, proc, 0, SL_MAX_VERSION)
 
--- a/src/ship_cmd.cpp	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/ship_cmd.cpp	Wed Feb 14 10:46:38 2007 +0000
@@ -693,14 +693,14 @@
 	BeginVehicleMove(v);
 
 	if (GetNewVehiclePos(v, &gp)) {
-		// staying in tile
+		/* Staying in tile */
 		if (IsShipInDepot(v)) {
 			gp.x = v->x_pos;
 			gp.y = v->y_pos;
 		} else {
-			/* isnot inside depot */
+			/* Not inside depot */
 			r = VehicleEnterTile(v, gp.new_tile, gp.x, gp.y);
-			if (r & 0x8) goto reverse_direction;
+			if (HASBIT(r, VETS_CANNOT_ENTER)) goto reverse_direction;
 
 			/* A leave station order only needs one tick to get processed, so we can
 			 * always skip ahead. */
@@ -722,7 +722,7 @@
 					/* Non-buoy orders really need to reach the tile */
 					if (v->dest_tile == gp.new_tile) {
 						if (v->current_order.type == OT_GOTO_DEPOT) {
-							if ((gp.x&0xF)==8 && (gp.y&0xF)==8) {
+							if ((gp.x & 0xF) == 8 && (gp.y & 0xF) == 8) {
 								VehicleEnterDepot(v);
 								return;
 							}
@@ -757,32 +757,31 @@
 		}
 	} else {
 		DiagDirection diagdir;
-		// new tile
-		if (TileX(gp.new_tile) >= MapMaxX() || TileY(gp.new_tile) >= MapMaxY())
+		/* New tile */
+		if (TileX(gp.new_tile) >= MapMaxX() || TileY(gp.new_tile) >= MapMaxY()) {
 			goto reverse_direction;
+		}
 
 		dir = ShipGetNewDirectionFromTiles(gp.new_tile, gp.old_tile);
 		assert(dir == DIR_NE || dir == DIR_SE || dir == DIR_SW || dir == DIR_NW);
 		diagdir = DirToDiagDir(dir);
 		tracks = GetAvailShipTracks(gp.new_tile, diagdir);
-		if (tracks == 0)
-			goto reverse_direction;
+		if (tracks == TRACK_BIT_NONE) goto reverse_direction;
 
-		// Choose a direction, and continue if we find one
+		/* Choose a direction, and continue if we find one */
 		track = ChooseShipTrack(v, gp.new_tile, diagdir, tracks);
-		if (track == INVALID_TRACK)
-			goto reverse_direction;
+		if (track == INVALID_TRACK) goto reverse_direction;
 
 		b = _ship_subcoord[diagdir][track];
 
-		gp.x = (gp.x&~0xF) | b[0];
-		gp.y = (gp.y&~0xF) | b[1];
+		gp.x = (gp.x & ~0xF) | b[0];
+		gp.y = (gp.y & ~0xF) | b[1];
 
 		/* Call the landscape function and tell it that the vehicle entered the tile */
 		r = VehicleEnterTile(v, gp.new_tile, gp.x, gp.y);
-		if (r&0x8) goto reverse_direction;
+		if (HASBIT(r, VETS_CANNOT_ENTER)) goto reverse_direction;
 
-		if (!(r&0x4)) {
+		if (!HASBIT(r, VETS_ENTERED_WORMHOLE)) {
 			v->tile = gp.new_tile;
 			v->u.ship.state = TrackToTrackBits(track);
 		}
@@ -905,7 +904,7 @@
 		_new_vehicle_id = v->index;
 
 		v->string_id = STR_SV_SHIP_NAME;
-		v->u.ship.state = TRACK_BIT_SPECIAL;
+		v->u.ship.state = TRACK_BIT_DEPOT;
 
 		v->service_interval = _patches.servint_ships;
 		v->date_of_last_service = _date;
--- a/src/sound/null_s.cpp	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/sound/null_s.cpp	Wed Feb 14 10:46:38 2007 +0000
@@ -1,7 +1,6 @@
 /* $Id$ */
 
 #include "../stdafx.h"
-#include "../openttd.h"
 #include "null_s.h"
 
 static const char *NullSoundStart(const char * const *parm) { return NULL; }
--- a/src/sound/null_s.h	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/sound/null_s.h	Wed Feb 14 10:46:38 2007 +0000
@@ -7,4 +7,4 @@
 
 extern const HalSoundDriver _null_sound_driver;
 
-#endif
+#endif /* SOUND_NULL_H */
--- a/src/sound/sdl_s.cpp	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/sound/sdl_s.cpp	Wed Feb 14 10:46:38 2007 +0000
@@ -44,4 +44,4 @@
 	SdlSoundStop,
 };
 
-#endif
+#endif /* WITH_SDL */
--- a/src/sound/sdl_s.h	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/sound/sdl_s.h	Wed Feb 14 10:46:38 2007 +0000
@@ -7,4 +7,4 @@
 
 extern const HalSoundDriver _sdl_sound_driver;
 
-#endif
+#endif /* SOUND_SDL_H */
--- a/src/sound/win32_s.cpp	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/sound/win32_s.cpp	Wed Feb 14 10:46:38 2007 +0000
@@ -42,29 +42,27 @@
 {
 	switch (uMsg) {
 		case WOM_DONE:
-			if (_waveout) FillHeaders();
+			if (_waveout != NULL) FillHeaders();
 			break;
-
-		default:
-			break;
+		default: break;
 	}
 }
 
 static const char *Win32SoundStart(const char* const* parm)
 {
 	WAVEFORMATEX wfex;
-	int hz;
-
-	_bufsize = GetDriverParamInt(parm, "bufsize", 1024);
-	hz = GetDriverParamInt(parm, "hz", 11025);
 	wfex.wFormatTag = WAVE_FORMAT_PCM;
 	wfex.nChannels = 2;
-	wfex.nSamplesPerSec = hz;
-	wfex.nAvgBytesPerSec = hz * 2 * 2;
-	wfex.nBlockAlign = 4;
 	wfex.wBitsPerSample = 16;
+	wfex.nSamplesPerSec = GetDriverParamInt(parm, "hz", 11025);
+	wfex.nBlockAlign = (wfex.nChannels * wfex.wBitsPerSample) / 8;
+	wfex.nAvgBytesPerSec = wfex.nSamplesPerSec * wfex.nBlockAlign;
+
+	_bufsize = GetDriverParamInt(parm, "bufsize", 1024);
+
 	if (waveOutOpen(&_waveout, WAVE_MAPPER, &wfex, (DWORD_PTR)&waveOutProc, 0, CALLBACK_FUNCTION) != MMSYSERR_NOERROR)
 		return "waveOutOpen failed";
+
 	PrepareHeader(&_wave_hdr[0]);
 	PrepareHeader(&_wave_hdr[1]);
 	FillHeaders();
--- a/src/station.cpp	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/station.cpp	Wed Feb 14 10:46:38 2007 +0000
@@ -162,7 +162,7 @@
 	/* We don't use FOR_ALL here, because FOR_ALL skips invalid items.
 	 * TODO - This is just a temporary stage, this will be removed. */
 	for (st = GetStation(0); st != NULL; st = (st->index + 1U < GetStationPoolSize()) ? GetStation(st->index + 1U) : NULL) {
-		if (!IsValidStation(st)) {
+		if (!st->IsValid()) {
 			StationID index = st->index;
 
 			memset(st, 0, sizeof(Station));
@@ -179,12 +179,70 @@
 }
 
 
+/** Obtain the length of a platform
+ * @pre tile must be a railway station tile
+ * @param tile A tile that contains the platform in question
+ * @returns The length of the platform
+ */
+uint Station::GetPlatformLength(TileIndex tile) const
+{
+	TileIndex t;
+	TileIndexDiff delta;
+	uint len = 0;
+	assert(TileBelongsToRailStation(tile));
+
+	delta = (GetRailStationAxis(tile) == AXIS_X ? TileDiffXY(1, 0) : TileDiffXY(0, 1));
+
+	t = tile;
+	do {
+		t -= delta;
+		len++;
+	} while (IsCompatibleTrainStationTile(t, tile));
+
+	t = tile;
+	do {
+		t += delta;
+		len++;
+	} while (IsCompatibleTrainStationTile(t, tile));
+
+	return len - 1;
+}
+
+/** Determines the REMAINING length of a platform, starting at (and including)
+ * the given tile.
+ * @param tile the tile from which to start searching. Must be a railway station tile
+ * @param dir The direction in which to search.
+ * @return The platform length
+ */
+uint Station::GetPlatformLength(TileIndex tile, DiagDirection dir) const
+{
+	TileIndex start_tile = tile;
+	uint length = 0;
+	assert(IsRailwayStationTile(tile));
+	assert(dir < DIAGDIR_END);
+
+	do {
+		length ++;
+		tile += TileOffsByDiagDir(dir);
+	} while (IsCompatibleTrainStationTile(tile, start_tile));
+
+	return length;
+}
+
 /** Determines whether a station is a buoy only.
  * @todo Ditch this encoding of buoys
  */
 bool Station::IsBuoy() const
 {
-	return (this->had_vehicle_of_type & HVOT_BUOY) != 0;
+	return (had_vehicle_of_type & HVOT_BUOY) != 0;
+}
+
+/** Determines whether a station exists
+ * @todo replace 0 by INVALID_TILE
+ */
+bool Station::IsValid() const
+{
+	return xy != 0;
 }
 
 
@@ -437,3 +495,49 @@
 {
 	return xy != INVALID_TILE;
 }
+
+/** Checks whether there is a free bay in this road stop */
+bool RoadStop::HasFreeBay() const
+{
+	return GB(status, 0, MAX_BAY_COUNT) != 0;
+}
+
+/**
+ * Allocates a bay
+ * @return the allocated bay number
+ * @pre this->HasFreeBay()
+ */
+uint RoadStop::AllocateBay()
+{
+	assert(HasFreeBay());
+
+	/* Find the first free bay. If the bit is set, the bay is free. */
+	uint bay_nr = 0;
+	while (!HASBIT(status, bay_nr)) bay_nr++;
+
+	CLRBIT(status, bay_nr);
+	return bay_nr;
+}
+
+/**
+ * Frees the given bay
+ * @param nr the number of the bay to free
+ */
+void RoadStop::FreeBay(uint nr)
+{
+	assert(nr < MAX_BAY_COUNT);
+	SETBIT(status, nr);
+}
+
+
+/** Checks whether the entrance of the road stop is occupied by a vehicle */
+bool RoadStop::IsEntranceBusy() const
+{
+	return HASBIT(status, 7);
+}
+
+/** Makes an entrance occupied or free */
+void RoadStop::SetEntranceBusy(bool busy)
+{
+	SB(status, 7, 1, busy);
+}
--- a/src/station.h	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/station.h	Wed Feb 14 10:46:38 2007 +0000
@@ -44,10 +44,11 @@
 
 	static const int  cDebugCtorLevel =  3;  ///< Debug level on which Contructor / Destructor messages are printed
 	static const uint LIMIT           = 16;  ///< The maximum amount of roadstops that are allowed at a single station
+	static const uint MAX_BAY_COUNT   =  2;  ///< The maximum number of loading bays
 
 	TileIndex        xy;                    ///< Position on the map
 	RoadStopID       index;                 ///< Global (i.e. pool-wide) index
-	byte             status;                ///< Current status of the Stop. Like which spot is taken. TODO - enumify this
+	byte             status;                ///< Current status of the Stop. Like which spot is taken. Access using *Bay and *Busy functions.
 	byte             num_vehicles;          ///< Number of vehicles currently slotted to this stop
 	struct RoadStop  *next;                 ///< Next stop of the given type at this station
 
@@ -62,6 +63,13 @@
 	void operator delete(void *rs, int index);
 
 	bool IsValid() const;
+
+	/* For accessing status */
+	bool HasFreeBay() const;
+	uint AllocateBay();
+	void FreeBay(uint nr);
+	bool IsEntranceBusy() const;
+	void SetEntranceBusy(bool busy);
 protected:
 	static RoadStop *AllocateRaw(void);
 };
@@ -131,8 +139,7 @@
 
 	Date build_date;
 
-	//uint16 airport_flags;
-	uint32 airport_flags;
+	uint64 airport_flags;   /// stores which blocks on the airport are taken. was 16 bit earlier on, then 32
 	StationID index;
 
 	byte last_vehicle_type;
@@ -160,7 +167,10 @@
 	void MarkDirty() const;
 	void MarkTilesDirty() const;
 	bool TileBelongsToRailStation(TileIndex tile) const;
+	uint GetPlatformLength(TileIndex tile, DiagDirection dir) const;
+	uint GetPlatformLength(TileIndex tile) const;
 	bool IsBuoy() const;
+	bool IsValid() const;
 
 protected:
 	static Station *AllocateRaw(void);
@@ -230,20 +240,12 @@
 	return GetStationPoolSize();
 }
 
-/**
- * Check if a station really exists.
- */
-static inline bool IsValidStation(const Station *st)
+static inline bool IsValidStationID(StationID index)
 {
-	return st->xy != 0;
+	return index < GetStationPoolSize() && GetStation(index)->IsValid();
 }
 
-static inline bool IsValidStationID(StationID index)
-{
-	return index < GetStationPoolSize() && IsValidStation(GetStation(index));
-}
-
-#define FOR_ALL_STATIONS_FROM(st, start) for (st = GetStation(start); st != NULL; st = (st->index + 1U < GetStationPoolSize()) ? GetStation(st->index + 1U) : NULL) if (IsValidStation(st))
+#define FOR_ALL_STATIONS_FROM(st, start) for (st = GetStation(start); st != NULL; st = (st->index + 1U < GetStationPoolSize()) ? GetStation(st->index + 1U) : NULL) if (st->IsValid())
 #define FOR_ALL_STATIONS(st) FOR_ALL_STATIONS_FROM(st, 0)
 
 
@@ -260,8 +262,6 @@
 void AfterLoadStations(void);
 void GetProductionAroundTiles(AcceptedCargo produced, TileIndex tile, int w, int h, int rad);
 void GetAcceptanceAroundTiles(AcceptedCargo accepts, TileIndex tile, int w, int h, int rad);
-uint GetStationPlatforms(const Station *st, TileIndex tile);
-uint GetPlatformLength(TileIndex tile, DiagDirection dir);
 
 
 const DrawTileSprites *GetStationTileLayout(byte gfx);
--- a/src/station_cmd.cpp	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/station_cmd.cpp	Wed Feb 14 10:46:38 2007 +0000
@@ -54,7 +54,7 @@
 
 	for (i = start_item; i <= end_item; i++) {
 		Station *st = GetStation(i);
-		if (IsValidStation(st)) st->~Station();
+		if (st->IsValid()) st->~Station();
 	}
 }
 
@@ -167,7 +167,7 @@
 	/* We don't use FOR_ALL here, because FOR_ALL skips invalid items.
 	 * TODO - This is just a temporary stage, this will be removed. */
 	for (st = GetStation(0); st != NULL; st = (st->index + 1U < GetStationPoolSize()) ? GetStation(st->index + 1U) : NULL) {
-		if (!IsValidStation(st)) {
+		if (!st->IsValid()) {
 			StationID index = st->index;
 
 			memset(st, 0, sizeof(Station));
@@ -1140,57 +1140,6 @@
 	return _price.remove_rail_station;
 }
 
-// determine the number of platforms for the station
-uint GetStationPlatforms(const Station *st, TileIndex tile)
-{
-	TileIndex t;
-	TileIndexDiff delta;
-	Axis axis;
-	uint len;
-	assert(st->TileBelongsToRailStation(tile));
-
-	len = 0;
-	axis = GetRailStationAxis(tile);
-	delta = (axis == AXIS_X ? TileDiffXY(1, 0) : TileDiffXY(0, 1));
-
-	// find starting tile..
-	t = tile;
-	do {
-		t -= delta;
-		len++;
-	} while (st->TileBelongsToRailStation(t) && GetRailStationAxis(t) == axis);
-
-	// find ending tile
-	t = tile;
-	do {
-		t += delta;
-		len++;
-	} while (st->TileBelongsToRailStation(t) && GetRailStationAxis(t) == axis);
-
-	return len - 1;
-}
-
-/** Determines the REMAINING length of a platform, starting at (and including)
- * the given tile.
- * @param tile the tile from which to start searching. Must be a railway station tile
- * @param dir The direction in which to search.
- * @return The platform length
- */
-uint GetPlatformLength(TileIndex tile, DiagDirection dir)
-{
-	TileIndex start_tile = tile;
-	uint length = 0;
-	assert(IsRailwayStationTile(tile));
-	assert(dir < DIAGDIR_END);
-
-	do {
-		length ++;
-		tile += TileOffsByDiagDir(dir);
-	} while (IsCompatibleTrainStationTile(tile, start_tile));
-
-	return length;
-}
-
 
 static int32 RemoveRailroadStation(Station *st, TileIndex tile, uint32 flags)
 {
@@ -2260,7 +2209,7 @@
 					if (DiagDirToAxis(dir) != AXIS_X) intswap(x, y);
 					if (y == TILE_SIZE / 2) {
 						if (dir != DIAGDIR_SE && dir != DIAGDIR_SW) x = TILE_SIZE - 1 - x;
-						if (x == 12) return 2 | (station_id << 8); /* enter station */
+						if (x == 12) return VETSB_ENTERED_STATION | (station_id << VETS_STATION_ID_OFFSET); /* enter station */
 						if (x < 12) {
 							uint16 spd;
 
@@ -2273,35 +2222,27 @@
 			}
 		}
 	} else if (v->type == VEH_Road) {
-		if (v->u.road.state < 16 && !HASBIT(v->u.road.state, 2) && v->u.road.frame == 0) {
+		if (v->u.road.state < RVSB_IN_ROAD_STOP && v->u.road.frame == 0) {
 			if (IsRoadStop(tile)) {
 				/* Attempt to allocate a parking bay in a road stop */
 				RoadStop *rs = GetRoadStopByTile(tile, GetRoadStopType(tile));
 
-				/* rs->status bits 0 and 1 describe current the two parking spots.
-				 * 0 means occupied, 1 means free. */
-
-				// Check if station is busy or if there are no free bays.
-				if (HASBIT(rs->status, 7) || GB(rs->status, 0, 2) == 0)
-					return 8;
-
-				v->u.road.state += 32;
-
-				// if the first bay is free, allocate that, else the second bay must be free.
-				if (HASBIT(rs->status, 0)) {
-					CLRBIT(rs->status, 0);
-				} else {
-					CLRBIT(rs->status, 1);
-					v->u.road.state += 2;
-				}
-
-				// mark the station as busy
-				SETBIT(rs->status, 7);
+				/* Check if station is busy or if there are no free bays. */
+				if (rs->IsEntranceBusy() || !rs->HasFreeBay()) return VETSB_CANNOT_ENTER;
+
+				SETBIT(v->u.road.state, RVS_IN_ROAD_STOP);
+
+				/* Allocate a bay and update the road state */
+				uint bay_nr = rs->AllocateBay();
+				SB(v->u.road.state, RVS_USING_SECOND_BAY, 1, bay_nr);
+
+				/* Mark the station entrace as busy */
+				rs->SetEntranceBusy(true);
 			}
 		}
 	}
 
-	return 0;
+	return VETSB_CONTINUE;
 }
 
 /* this function is called for one station each tick */
@@ -2863,8 +2804,9 @@
 	SLE_CONDNULL(2, 0, 5), // Truck/bus stop status
 	SLE_CONDNULL(1, 0, 4), // Blocked months
 
-	SLE_CONDVAR(Station, airport_flags,              SLE_VAR_U32 | SLE_FILE_U16,  0,  2),
-	SLE_CONDVAR(Station, airport_flags,              SLE_UINT32,                  3, SL_MAX_VERSION),
+	SLE_CONDVAR(Station, airport_flags,              SLE_VAR_U64 | SLE_FILE_U16,  0,  2),
+	SLE_CONDVAR(Station, airport_flags,              SLE_VAR_U64 | SLE_FILE_U32,  3, 45),
+	SLE_CONDVAR(Station, airport_flags,              SLE_UINT64,                 46, SL_MAX_VERSION),
 
 	SLE_CONDNULL(2, 0, 25), /* Ex last-vehicle */
 	SLE_CONDVAR(Station, last_vehicle_type,          SLE_UINT8,                  26, SL_MAX_VERSION),
--- a/src/strings.cpp	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/strings.cpp	Wed Feb 14 10:46:38 2007 +0000
@@ -802,7 +802,7 @@
 			case SCC_STATION_NAME: { // {STATION}
 				const Station* st = GetStation(GetInt32(&argv));
 
-				if (!IsValidStation(st)) { // station doesn't exist anymore
+				if (!st->IsValid()) { // station doesn't exist anymore
 					buff = GetStringWithArgs(buff, STR_UNKNOWN_DESTINATION, NULL, last);
 				} else {
 					int32 temp[2];
--- a/src/table/roadveh.h	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/table/roadveh.h	Wed Feb 14 10:46:38 2007 +0000
@@ -17,7 +17,7 @@
 	{ 2, 5},
 	{ 1, 5},
 	{ 0, 5},
-	{0x80, 0}
+	{RDE_NEXT_TILE | DIAGDIR_NE, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_1[] = {
 	{5,  0},
@@ -36,7 +36,7 @@
 	{5, 13},
 	{5, 14},
 	{5, 15},
-	{0x81, 0}
+	{RDE_NEXT_TILE | DIAGDIR_SE, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_2[] = {
 	{5, 0},
@@ -47,7 +47,7 @@
 	{2, 5},
 	{1, 5},
 	{0, 5},
-	{0x80, 0}
+	{RDE_NEXT_TILE | DIAGDIR_NE, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_3[] = {
 	{15,  5},
@@ -66,7 +66,7 @@
 	{ 5, 13},
 	{ 5, 14},
 	{ 5, 15},
-	{0x81, 0}
+	{RDE_NEXT_TILE | DIAGDIR_SE, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_4[] = {
 	{ 5, 0},
@@ -85,7 +85,7 @@
 	{13, 9},
 	{14, 9},
 	{15, 9},
-	{0x82, 0}
+	{RDE_NEXT_TILE | DIAGDIR_SW, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_5[] = {
 	{0,  9},
@@ -97,21 +97,21 @@
 	{5, 13},
 	{5, 14},
 	{5, 15},
-	{0x81, 0}
+	{RDE_NEXT_TILE | DIAGDIR_SE, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_6[] = {
 	{0, 6},
 	{0, 7},
 	{0, 8},
 	{0, 9},
-	{0x42, 0}
+	{RDE_TURNED | DIAGDIR_SW, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_7[] = {
 	{6, 15},
 	{7, 15},
 	{8, 15},
 	{9, 15},
-	{0x43, 0}
+	{RDE_TURNED | DIAGDIR_NW, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_8[] = {
 	{ 0, 9},
@@ -130,7 +130,7 @@
 	{13, 9},
 	{14, 9},
 	{15, 9},
-	{0x82, 0}
+	{RDE_NEXT_TILE | DIAGDIR_SW, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_9[] = {
 	{9, 15},
@@ -149,7 +149,7 @@
 	{9,  2},
 	{9,  1},
 	{9,  0},
-	{0x83, 0}
+	{RDE_NEXT_TILE | DIAGDIR_NW, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_10[] = {
 	{0, 9},
@@ -167,7 +167,7 @@
 	{9, 2},
 	{9, 1},
 	{9, 0},
-	{0x83, 0}
+	{RDE_NEXT_TILE | DIAGDIR_NW, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_11[] = {
 	{ 9, 15},
@@ -179,7 +179,7 @@
 	{13,  9},
 	{14,  9},
 	{15,  9},
-	{0x82, 0}
+	{RDE_NEXT_TILE | DIAGDIR_SW, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_12[] = {
 	{15, 5},
@@ -190,7 +190,7 @@
 	{10, 2},
 	{ 9, 1},
 	{ 9, 0},
-	{0x83, 0}
+	{RDE_NEXT_TILE | DIAGDIR_NW, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_13[] = {
 	{9, 15},
@@ -208,21 +208,21 @@
 	{2,  5},
 	{1,  5},
 	{0,  5},
-	{0x80, 0}
+	{RDE_NEXT_TILE | DIAGDIR_NE, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_14[] = {
 	{15, 8},
 	{15, 7},
 	{15, 6},
 	{15, 5},
-	{0x40, 0}
+	{RDE_TURNED | DIAGDIR_NE, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_15[] = {
 	{8, 0},
 	{7, 0},
 	{6, 0},
 	{5, 0},
-	{0x41, 0}
+	{RDE_TURNED | DIAGDIR_SE, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_16[] = {
 	{15, 9},
@@ -241,7 +241,7 @@
 	{ 2, 9},
 	{ 1, 9},
 	{ 0, 9},
-	{0x80, 0}
+	{RDE_NEXT_TILE | DIAGDIR_NE, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_17[] = {
 	{9,  0},
@@ -260,7 +260,7 @@
 	{9, 13},
 	{9, 14},
 	{9, 15},
-	{0x81, 0}
+	{RDE_NEXT_TILE | DIAGDIR_SE, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_18[] = {
 	{9, 0},
@@ -278,7 +278,7 @@
 	{2, 9},
 	{1, 9},
 	{0, 9},
-	{0x80, 0}
+	{RDE_NEXT_TILE | DIAGDIR_NE, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_19[] = {
 	{15,  9},
@@ -290,7 +290,7 @@
 	{ 9, 13},
 	{ 9, 14},
 	{ 9, 15},
-	{0x81, 0}
+	{RDE_NEXT_TILE | DIAGDIR_SE, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_20[] = {
 	{ 9, 0},
@@ -301,7 +301,7 @@
 	{13, 5},
 	{14, 5},
 	{15, 5},
-	{0x82, 0}
+	{RDE_NEXT_TILE | DIAGDIR_SW, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_21[] = {
 	{0,  5},
@@ -319,21 +319,21 @@
 	{9, 13},
 	{9, 14},
 	{9, 15},
-	{0x81, 0}
+	{RDE_NEXT_TILE | DIAGDIR_SE, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_22[] = {
 	{0, 8},
 	{0, 7},
 	{0, 6},
 	{0, 5},
-	{0x42, 0}
+	{RDE_TURNED | DIAGDIR_SW, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_23[] = {
 	{8, 15},
 	{7, 15},
 	{6, 15},
 	{5, 15},
-	{0x43, 0}
+	{RDE_TURNED | DIAGDIR_NW, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_24[] = {
 	{ 0, 5},
@@ -352,7 +352,7 @@
 	{13, 5},
 	{14, 5},
 	{15, 5},
-	{0x82, 0}
+	{RDE_NEXT_TILE | DIAGDIR_SW, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_25[] = {
 	{5, 15},
@@ -371,7 +371,7 @@
 	{5,  2},
 	{5,  1},
 	{5,  0},
-	{0x83, 0}
+	{RDE_NEXT_TILE | DIAGDIR_NW, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_26[] = {
 	{0, 5},
@@ -382,7 +382,7 @@
 	{5, 2},
 	{5, 1},
 	{5, 0},
-	{0x83, 0}
+	{RDE_NEXT_TILE | DIAGDIR_NW, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_27[] = {
 	{ 5, 15},
@@ -401,7 +401,7 @@
 	{13,  5},
 	{14,  5},
 	{15,  5},
-	{0x82, 0}
+	{RDE_NEXT_TILE | DIAGDIR_SW, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_28[] = {
 	{15, 9},
@@ -420,7 +420,7 @@
 	{ 5, 2},
 	{ 5, 1},
 	{ 5, 0},
-	{0x83, 0}
+	{RDE_NEXT_TILE | DIAGDIR_NW, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_29[] = {
 	{5, 15},
@@ -432,21 +432,21 @@
 	{2,  9},
 	{1,  9},
 	{0,  9},
-	{0x80, 0}
+	{RDE_NEXT_TILE | DIAGDIR_NE, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_30[] = {
 	{15, 6},
 	{15, 7},
 	{15, 8},
 	{15, 9},
-	{0x40, 0}
+	{RDE_TURNED | DIAGDIR_NE, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_31[] = {
 	{6, 0},
 	{7, 0},
 	{8, 0},
 	{9, 0},
-	{0x41, 0}
+	{RDE_TURNED | DIAGDIR_SE, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_32[] = {
 	{15,  5},
@@ -486,7 +486,7 @@
 	{13, 10},
 	{14,  9},
 	{15,  9},
-	{0x82, 0}
+	{RDE_NEXT_TILE | DIAGDIR_SW, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_33[] = {
 	{ 5,  0},
@@ -526,7 +526,7 @@
 	{10,  2},
 	{ 9,  1},
 	{ 9,  0},
-	{0x83, 0}
+	{RDE_NEXT_TILE | DIAGDIR_NW, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_34[] = {
 	{15,  5},
@@ -558,7 +558,7 @@
 	{13, 10},
 	{14,  9},
 	{15,  9},
-	{0x82, 0}
+	{RDE_NEXT_TILE | DIAGDIR_SW, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_35[] = {
 	{ 5, 0},
@@ -590,7 +590,7 @@
 	{10, 2},
 	{ 9, 1},
 	{ 9, 0},
-	{0x83, 0}
+	{RDE_NEXT_TILE | DIAGDIR_NW, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_40[] = {
 	{ 0, 9},
@@ -628,7 +628,7 @@
 	{ 2, 4},
 	{ 1, 5},
 	{ 0, 5},
-	{0x80, 0}
+	{RDE_NEXT_TILE | DIAGDIR_NE, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_41[] = {
 	{9, 15},
@@ -666,7 +666,7 @@
 	{4, 13},
 	{5, 14},
 	{5, 15},
-	{0x81, 0}
+	{RDE_NEXT_TILE | DIAGDIR_SE, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_42[] = {
 	{0, 9},
@@ -696,7 +696,7 @@
 	{2, 4},
 	{1, 5},
 	{0, 5},
-	{0x80, 0}
+	{RDE_NEXT_TILE | DIAGDIR_NE, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_43[] = {
 	{9, 15},
@@ -726,7 +726,7 @@
 	{4, 13},
 	{5, 14},
 	{5, 15},
-	{0x81, 0}
+	{RDE_NEXT_TILE | DIAGDIR_SE, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_48[] = {
 	{15,  9},
@@ -766,7 +766,7 @@
 	{13,  6},
 	{14,  5},
 	{15,  5},
-	{0x82, 0}
+	{RDE_NEXT_TILE | DIAGDIR_SW, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_49[] = {
 	{ 9,  0},
@@ -806,7 +806,7 @@
 	{ 6,  2},
 	{ 5,  1},
 	{ 5,  0},
-	{0x83, 0}
+	{RDE_NEXT_TILE | DIAGDIR_NW, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_50[] = {
 	{15,  9},
@@ -838,7 +838,7 @@
 	{13,  6},
 	{14,  5},
 	{15,  5},
-	{0x82, 0}
+	{RDE_NEXT_TILE | DIAGDIR_SW, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_51[] = {
 	{ 9, 0},
@@ -870,7 +870,7 @@
 	{ 6, 2},
 	{ 5, 1},
 	{ 5, 0},
-	{0x83, 0}
+	{RDE_NEXT_TILE | DIAGDIR_NW, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_56[] = {
 	{ 0, 5},
@@ -908,7 +908,7 @@
 	{ 2, 8},
 	{ 1, 9},
 	{ 0, 9},
-	{0x80, 0}
+	{RDE_NEXT_TILE | DIAGDIR_NE, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_57[] = {
 	{5, 15},
@@ -946,7 +946,7 @@
 	{8, 13},
 	{9, 14},
 	{9, 15},
-	{0x81, 0}
+	{RDE_NEXT_TILE | DIAGDIR_SE, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_58[] = {
 	{0, 5},
@@ -976,7 +976,7 @@
 	{2, 8},
 	{1, 9},
 	{0, 9},
-	{0x80, 0}
+	{RDE_NEXT_TILE | DIAGDIR_NE, 0}
 };
 static const RoadDriveEntry _roadveh_drive_data_59[] = {
 	{5, 15},
@@ -1006,7 +1006,7 @@
 	{8, 13},
 	{9, 14},
 	{9, 15},
-	{0x81, 0}
+	{RDE_NEXT_TILE | DIAGDIR_SE, 0}
 };
 
 static const RoadDriveEntry * const _road_drive_data[] = {
--- a/src/train_cmd.cpp	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/train_cmd.cpp	Wed Feb 14 10:46:38 2007 +0000
@@ -39,7 +39,7 @@
 
 static const byte _vehicle_initial_x_fract[4] = {10, 8, 4,  8};
 static const byte _vehicle_initial_y_fract[4] = { 8, 4, 8, 10};
-static const byte _state_dir_table[4] = { 0x20, 8, 0x10, 4 };
+static const TrackBits _state_dir_table[4] = { TRACK_BIT_RIGHT, TRACK_BIT_LOWER, TRACK_BIT_LEFT, TRACK_BIT_UPPER };
 
 
 /** Return the cargo weight multiplier to use for a rail vehicle
@@ -356,7 +356,7 @@
 
 	if (IsTileType(v->tile, MP_STATION) && IsFrontEngine(v)) {
 		if (TrainShouldStop(v, v->tile)) {
-			int station_length = GetPlatformLength(v->tile, DirToDiagDir(v->direction));
+			int station_length = GetStationByTile(v->tile)->GetPlatformLength(v->tile, DirToDiagDir(v->direction));
 			int delta_v;
 
 			max_speed = 120;
@@ -377,7 +377,7 @@
 		num++;
 		drag_coeff += 3;
 
-		if (u->u.rail.track == 0x80) max_speed = min(max_speed, 61);
+		if (u->u.rail.track == TRACK_BIT_DEPOT) max_speed = min(max_speed, 61);
 
 		if (HASBIT(u->u.rail.flags, VRF_GOINGUP)) {
 			incl += u->u.rail.cached_veh_weight * 60; //3% slope, quite a bit actually
@@ -639,7 +639,7 @@
 			v->z_pos = GetSlopeZ(x,y);
 			v->owner = _current_player;
 			v->z_height = 6;
-			v->u.rail.track = TRACK_BIT_SPECIAL;
+			v->u.rail.track = TRACK_BIT_DEPOT;
 			v->vehstatus = VS_HIDDEN | VS_DEFPAL;
 
 			v->subtype = 0;
@@ -690,7 +690,7 @@
 	FOR_ALL_VEHICLES(v) {
 		if (v->type == VEH_Train && IsFreeWagon(v) &&
 				v->tile == u->tile &&
-				v->u.rail.track == 0x80) {
+				v->u.rail.track == TRACK_BIT_DEPOT) {
 			if (CmdFailed(DoCommand(0, v->index | (u->index << 16), 1, DC_EXEC,
 					CMD_MOVE_RAIL_VEHICLE)))
 				break;
@@ -712,7 +712,7 @@
 	u->y_pos = v->y_pos;
 	u->z_pos = v->z_pos;
 	u->z_height = 6;
-	u->u.rail.track = TRACK_BIT_SPECIAL;
+	u->u.rail.track = TRACK_BIT_DEPOT;
 	u->vehstatus = v->vehstatus & ~VS_STOPPED;
 	u->subtype = 0;
 	SetMultiheaded(u);
@@ -798,7 +798,7 @@
 			v->y_pos = y;
 			v->z_pos = GetSlopeZ(x,y);
 			v->z_height = 6;
-			v->u.rail.track = TRACK_BIT_SPECIAL;
+			v->u.rail.track = TRACK_BIT_DEPOT;
 			v->vehstatus = VS_HIDDEN | VS_STOPPED | VS_DEFPAL;
 			v->spritenum = rvi->image_index;
 			v->cargo_type = rvi->cargo_type;
@@ -885,7 +885,7 @@
 		 *
 		 * Also skip counting rear ends of multiheaded engines */
 		if (!IsArticulatedPart(v) && !(!IsTrainEngine(v) && IsMultiheaded(v))) count++;
-		if (v->u.rail.track != 0x80 || v->tile != tile ||
+		if (v->u.rail.track != TRACK_BIT_DEPOT || v->tile != tile ||
 				(IsFrontEngine(v) && needs_to_be_stopped && !(v->vehstatus & VS_STOPPED))) {
 			return -1;
 		}
@@ -1306,7 +1306,7 @@
 	if (v->vehstatus & VS_STOPPED && v->u.rail.cached_power == 0) return_cmd_error(STR_TRAIN_START_NO_CATENARY);
 
 	if (flags & DC_EXEC) {
-		if (v->vehstatus & VS_STOPPED && v->u.rail.track == 0x80) {
+		if (v->vehstatus & VS_STOPPED && v->u.rail.track == TRACK_BIT_DEPOT) {
 			DeleteVehicleNews(p1, STR_8814_TRAIN_IS_WAITING_IN_DEPOT);
 		}
 
@@ -1585,8 +1585,8 @@
 		Swap(a->direction,    b->direction);
 
 		/* toggle direction */
-		if (!(a->u.rail.track & 0x80)) a->direction = ReverseDir(a->direction);
-		if (!(b->u.rail.track & 0x80)) b->direction = ReverseDir(b->direction);
+		if (a->u.rail.track != TRACK_BIT_DEPOT) a->direction = ReverseDir(a->direction);
+		if (b->u.rail.track != TRACK_BIT_DEPOT) b->direction = ReverseDir(b->direction);
 
 		Swap(a->x_pos, b->x_pos);
 		Swap(a->y_pos, b->y_pos);
@@ -1600,13 +1600,13 @@
 		UpdateVarsAfterSwap(b);
 
 		/* call the proper EnterTile function unless we are in a wormhole */
-		if (!(a->u.rail.track & 0x40)) VehicleEnterTile(a, a->tile, a->x_pos, a->y_pos);
-		if (!(b->u.rail.track & 0x40)) VehicleEnterTile(b, b->tile, b->x_pos, b->y_pos);
+		if (a->u.rail.track != TRACK_BIT_WORMHOLE) VehicleEnterTile(a, a->tile, a->x_pos, a->y_pos);
+		if (b->u.rail.track != TRACK_BIT_WORMHOLE) VehicleEnterTile(b, b->tile, b->x_pos, b->y_pos);
 	} else {
-		if (!(a->u.rail.track & 0x80)) a->direction = ReverseDir(a->direction);
+		if (a->u.rail.track != TRACK_BIT_DEPOT) a->direction = ReverseDir(a->direction);
 		UpdateVarsAfterSwap(a);
 
-		if (!(a->u.rail.track & 0x40)) VehicleEnterTile(a, a->tile, a->x_pos, a->y_pos);
+		if (a->u.rail.track != TRACK_BIT_WORMHOLE) VehicleEnterTile(a, a->tile, a->x_pos, a->y_pos);
 	}
 
 	/* Update train's power incase tiles were different rail type */
@@ -2174,7 +2174,7 @@
 
 	// bail out if not all wagons are in the same depot or not in a depot at all
 	for (u = v; u != NULL; u = u->next) {
-		if (u->u.rail.track != 0x80 || u->tile != v->tile) return false;
+		if (u->u.rail.track != TRACK_BIT_DEPOT || u->tile != v->tile) return false;
 	}
 
 	// if the train got no power, then keep it in the depot
@@ -2420,7 +2420,7 @@
 	uint reverse, reverse_best;
 
 	if (_opt.diff.line_reverse_mode != 0 ||
-			v->u.rail.track & 0xC0 ||
+			v->u.rail.track == TRACK_BIT_DEPOT || v->u.rail.track == TRACK_BIT_WORMHOLE ||
 			!(v->direction & 1))
 		return false;
 
@@ -2887,7 +2887,7 @@
 	if (v != tcc->v &&
 			v != tcc->v_skip &&
 			v->type == VEH_Train &&
-			v->u.rail.track != 0x80 &&
+			v->u.rail.track != TRACK_BIT_DEPOT &&
 			myabs(v->z_pos - tcc->v->z_pos) <= 6 &&
 			myabs(v->x_pos - tcc->v->x_pos) < 6 &&
 			myabs(v->y_pos - tcc->v->y_pos) < 6) {
@@ -2936,9 +2936,9 @@
 	uint num;
 
 	/* can't collide in depot */
-	if (v->u.rail.track == 0x80) return;
-
-	assert(v->u.rail.track == 0x40 || TileVirtXY(v->x_pos, v->y_pos) == v->tile);
+	if (v->u.rail.track == TRACK_BIT_DEPOT) return;
+
+	assert(v->u.rail.track == TRACK_BIT_WORMHOLE || TileVirtXY(v->x_pos, v->y_pos) == v->tile);
 
 	tcc.v = v;
 	tcc.v_skip = v->next;
@@ -2951,7 +2951,7 @@
 
 	/* it can't collide with its own wagons */
 	if (v == coll ||
-			(v->u.rail.track & 0x40 && (v->direction & 2) != (realcoll->direction & 2)))
+			(v->u.rail.track == TRACK_BIT_WORMHOLE && (v->direction & 2) != (realcoll->direction & 2)))
 		return;
 
 	//two drivers + passangers killed in train v
@@ -2995,7 +2995,7 @@
 {
 	Vehicle *prev;
 	GetNewVehiclePosResult gp;
-	uint32 r, tracks,ts;
+	uint32 r, tracks, ts;
 	Trackdir i;
 	DiagDirection enterdir;
 	Direction dir;
@@ -3008,26 +3008,25 @@
 	for (prev = GetPrevVehicleInChain(v); v != NULL; prev = v, v = v->next) {
 		BeginVehicleMove(v);
 
-		if (v->u.rail.track != 0x40) {
+		if (v->u.rail.track != TRACK_BIT_WORMHOLE) {
 			/* Not inside tunnel */
 			if (GetNewVehiclePos(v, &gp)) {
 				/* Staying in the old tile */
-				if (v->u.rail.track == 0x80) {
-					/* inside depot */
+				if (v->u.rail.track == TRACK_BIT_DEPOT) {
+					/* Inside depot */
 					gp.x = v->x_pos;
 					gp.y = v->y_pos;
 				} else {
-					/* is not inside depot */
+					/* Not inside depot */
 
 					if (IsFrontEngine(v) && !TrainCheckIfLineEnds(v)) return;
 
 					r = VehicleEnterTile(v, gp.new_tile, gp.x, gp.y);
-					if (r & 0x8) {
-						//debug("%x & 0x8", r);
+					if (HASBIT(r, VETS_CANNOT_ENTER)) {
 						goto invalid_rail;
 					}
-					if (r & 0x2) {
-						TrainEnterStation(v, r >> 8);
+					if (HASBIT(r, VETS_ENTERED_STATION)) {
+						TrainEnterStation(v, r >> VETS_STATION_ID_OFFSET);
 						return;
 					}
 
@@ -3044,7 +3043,7 @@
 				/* Determine what direction we're entering the new tile from */
 				dir = GetNewVehicleDirectionByTile(gp.new_tile, gp.old_tile);
 				enterdir = DirToDiagDir(dir);
-				assert(enterdir==0 || enterdir==1 || enterdir==2 || enterdir==3);
+				assert(IsValidDiagDirection(enterdir));
 
 				/* Get the status of the tracks in the new tile and mask
 				 * away the bits that aren't reachable. */
@@ -3061,17 +3060,11 @@
 					bits &= ~TrackCrossesTracks(FindFirstTrack(v->u.rail.track));
 				}
 
-				if (bits == TRACK_BIT_NONE) {
-					//debug("%x == 0", bits);
-					goto invalid_rail;
-				}
+				if (bits == TRACK_BIT_NONE) goto invalid_rail;
 
 				/* Check if the new tile contrains tracks that are compatible
 				 * with the current train, if not, bail out. */
-				if (!CheckCompatibleRail(v, gp.new_tile)) {
-					//debug("!CheckCompatibleRail(%p, %x)", v, gp.new_tile);
-					goto invalid_rail;
-				}
+				if (!CheckCompatibleRail(v, gp.new_tile)) goto invalid_rail;
 
 				if (prev == NULL) {
 					/* Currently the locomotive is active. Determine which one of the
@@ -3080,16 +3073,24 @@
 					assert(chosen_track & tracks);
 
 					/* Check if it's a red signal and that force proceed is not clicked. */
-					if ( (tracks>>16)&chosen_track && v->u.rail.force_proceed == 0) goto red_light;
+					if ((tracks >> 16) & chosen_track && v->u.rail.force_proceed == 0) goto red_light;
 				} else {
-					static byte _matching_tracks[8] = {0x30, 1, 0xC, 2, 0x30, 1, 0xC, 2};
+					static const TrackBits _matching_tracks[8] = {
+							TRACK_BIT_LEFT  | TRACK_BIT_RIGHT, TRACK_BIT_X,
+							TRACK_BIT_UPPER | TRACK_BIT_LOWER, TRACK_BIT_Y,
+							TRACK_BIT_LEFT  | TRACK_BIT_RIGHT, TRACK_BIT_X,
+							TRACK_BIT_UPPER | TRACK_BIT_LOWER, TRACK_BIT_Y
+					};
 
 					/* The wagon is active, simply follow the prev vehicle. */
 					chosen_track = (TrackBits)(byte)(_matching_tracks[GetDirectionToVehicle(prev, gp.x, gp.y)] & bits);
 				}
 
-				/* make sure chosen track is a valid track */
-				assert(chosen_track==1 || chosen_track==2 || chosen_track==4 || chosen_track==8 || chosen_track==16 || chosen_track==32);
+				/* Make sure chosen track is a valid track */
+				assert(
+						chosen_track == TRACK_BIT_X     || chosen_track == TRACK_BIT_Y ||
+						chosen_track == TRACK_BIT_UPPER || chosen_track == TRACK_BIT_LOWER ||
+						chosen_track == TRACK_BIT_LEFT  || chosen_track == TRACK_BIT_RIGHT);
 
 				/* Update XY to reflect the entrance to the new tile, and select the direction to use */
 				{
@@ -3101,8 +3102,7 @@
 
 				/* Call the landscape function and tell it that the vehicle entered the tile */
 				r = VehicleEnterTile(v, gp.new_tile, gp.x, gp.y);
-				if (r & 0x8) {
-					//debug("%x & 0x8", r);
+				if (HASBIT(r, VETS_CANNOT_ENTER)) {
 					goto invalid_rail;
 				}
 
@@ -3113,7 +3113,7 @@
 
 				if (IsFrontEngine(v)) v->load_unload_time_rem = 0;
 
-				if (!(r&0x4)) {
+				if (!HASBIT(r, VETS_ENTERED_WORMHOLE)) {
 					v->tile = gp.new_tile;
 
 					if (GetTileRailType(gp.new_tile, FindFirstTrack(chosen_track)) != GetTileRailType(gp.old_tile, FindFirstTrack(v->u.rail.track))) {
@@ -3128,20 +3128,19 @@
 
 				/* Signals can only change when the first
 				 * (above) or the last vehicle moves. */
-				if (v->next == NULL)
-					TrainMovedChangeSignals(gp.old_tile, ReverseDiagDir(enterdir));
+				if (v->next == NULL) TrainMovedChangeSignals(gp.old_tile, ReverseDiagDir(enterdir));
 
 				if (prev == NULL) AffectSpeedByDirChange(v, chosen_dir);
 
 				v->direction = chosen_dir;
 			}
 		} else {
-			/* in tunnel on on a bridge */
+			/* In tunnel or on a bridge */
 			GetNewVehiclePos(v, &gp);
 
 			SetSpeedLimitOnBridge(v);
 
-			if (!(IsTunnelTile(gp.new_tile) || IsBridgeTile(gp.new_tile)) || !(VehicleEnterTile(v, gp.new_tile, gp.x, gp.y) & 0x4)) {
+			if (!(IsTunnelTile(gp.new_tile) || IsBridgeTile(gp.new_tile)) || !HASBIT(VehicleEnterTile(v, gp.new_tile, gp.x, gp.y), VETS_ENTERED_WORMHOLE)) {
 				v->x_pos = gp.x;
 				v->y_pos = gp.y;
 				VehiclePositionChanged(v);
@@ -3235,14 +3234,14 @@
 	EndVehicleMove(v);
 	DeleteVehicle(v);
 
-	if (!(v->u.rail.track & 0xC0))
+	if (v->u.rail.track != TRACK_BIT_DEPOT && v->u.rail.track != TRACK_BIT_WORMHOLE)
 		SetSignalsOnBothDir(v->tile, FIND_FIRST_BIT(v->u.rail.track));
 
 	/* Check if the wagon was on a road/rail-crossing and disable it if no
 	 * others are on it */
 	DisableTrainCrossing(v->tile);
 
-	if ( (v->u.rail.track == 0x40 && v->vehstatus & VS_HIDDEN) ) { // inside a tunnel
+	if ((v->u.rail.track == TRACK_BIT_WORMHOLE && v->vehstatus & VS_HIDDEN)) { // inside a tunnel
 		TileIndex endtile = CheckTunnelBusy(v->tile, NULL);
 
 		if (endtile == INVALID_TILE) return; // tunnel is busy (error returned)
@@ -3282,7 +3281,7 @@
 			/* Refrain from updating the z position of the vehicle when on
 			   a bridge, because AfterSetTrainPos will put the vehicle under
 			   the bridge in that case */
-			if (!(v->u.rail.track & 0x40)) AfterSetTrainPos(v, false);
+			if (v->u.rail.track != TRACK_BIT_WORMHOLE) AfterSetTrainPos(v, false);
 		}
 	} while ((v = v->next) != NULL);
 }
@@ -3293,7 +3292,7 @@
 	uint32 r;
 	Vehicle *u;
 
-	if (state == 4 && !(v->u.rail.track & VS_HIDDEN)) {
+	if (state == 4 && !(v->vehstatus & VS_HIDDEN)) {
 		CreateEffectVehicleRel(v, 4, 4, 8, EV_EXPLOSION_LARGE);
 	}
 
@@ -3376,8 +3375,8 @@
 		v->vehstatus &= ~VS_TRAIN_SLOWING;
 	}
 
-	if (v->u.rail.track & 0x40) return true; // exit if inside a tunnel
-	if (v->u.rail.track & 0x80) return true; // exit if inside a depot
+	if (v->u.rail.track == TRACK_BIT_WORMHOLE) return true; // exit if inside a tunnel
+	if (v->u.rail.track == TRACK_BIT_DEPOT) return true; // exit if inside a depot
 
 	tile = v->tile;
 
--- a/src/train_gui.cpp	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/train_gui.cpp	Wed Feb 14 10:46:38 2007 +0000
@@ -27,7 +27,7 @@
 	FOR_ALL_VEHICLES(v) {
 		if (v->type == VEH_Train && IsFrontEngine(v) &&
 				v->tile == tile &&
-				v->u.rail.track == 0x80) {
+				v->u.rail.track == TRACK_BIT_DEPOT) {
 			if (found != NULL) return; // must be exactly one.
 			found = v;
 		}
--- a/src/tunnelbridge_cmd.cpp	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/tunnelbridge_cmd.cpp	Wed Feb 14 10:46:38 2007 +0000
@@ -1250,7 +1250,10 @@
 static const byte _tunnel_fractcoord_3[4]    = {0x82, 0x88, 0x86, 0x48};
 static const byte _exit_tunnel_track[4]      = {1, 2, 1, 2};
 
-static const byte _road_exit_tunnel_state[4] = {8, 9, 0, 1};
+/** Get the trackdir of the exit of a tunnel */
+static const Trackdir _road_exit_tunnel_state[DIAGDIR_END] = {
+	TRACKDIR_X_SW, TRACKDIR_Y_NW, TRACKDIR_X_NE, TRACKDIR_Y_SE
+};
 static const byte _road_exit_tunnel_frame[4] = {2, 7, 9, 4};
 
 static const byte _tunnel_fractcoord_4[4]    = {0x52, 0x85, 0x98, 0x29};
@@ -1262,7 +1265,7 @@
 {
 	int z = GetSlopeZ(x, y) - v->z_pos;
 
-	if (myabs(z) > 2) return 8;
+	if (myabs(z) > 2) return VETSB_CANNOT_ENTER;
 
 	if (IsTunnel(tile)) {
 		byte fc;
@@ -1275,18 +1278,18 @@
 			dir = GetTunnelDirection(tile);
 			vdir = DirToDiagDir(v->direction);
 
-			if (v->u.rail.track != 0x40 && dir == vdir) {
+			if (v->u.rail.track != TRACK_BIT_WORMHOLE && dir == vdir) {
 				if (IsFrontEngine(v) && fc == _tunnel_fractcoord_1[dir]) {
 					if (!PlayVehicleSound(v, VSE_TUNNEL) && v->spritenum < 4) {
 						SndPlayVehicleFx(SND_05_TRAIN_THROUGH_TUNNEL, v);
 					}
-					return 0;
+					return VETSB_CONTINUE;
 				}
 				if (fc == _tunnel_fractcoord_2[dir]) {
 					v->tile = tile;
 					v->u.rail.track = TRACK_BIT_WORMHOLE;
 					v->vehstatus |= VS_HIDDEN;
-					return 4;
+					return VETSB_ENTERED_WORMHOLE;
 				}
 			}
 
@@ -1296,7 +1299,7 @@
 				v->u.rail.track = (TrackBits)_exit_tunnel_track[dir];
 				assert(v->u.rail.track);
 				v->vehstatus &= ~VS_HIDDEN;
-				return 4;
+				return VETSB_ENTERED_WORMHOLE;
 			}
 		} else if (v->type == VEH_Road) {
 			fc = (x & 0xF) + (y << 4);
@@ -1304,15 +1307,15 @@
 			vdir = DirToDiagDir(v->direction);
 
 			// Enter tunnel?
-			if (v->u.road.state != 0xFF && dir == vdir) {
+			if (v->u.road.state != RVSB_WORMHOLE && dir == vdir) {
 				if (fc == _tunnel_fractcoord_4[dir] ||
 						fc == _tunnel_fractcoord_5[dir]) {
 					v->tile = tile;
-					v->u.road.state = 0xFF;
+					v->u.road.state = RVSB_WORMHOLE;
 					v->vehstatus |= VS_HIDDEN;
-					return 4;
+					return VETSB_ENTERED_WORMHOLE;
 				} else {
-					return 0;
+					return VETSB_CONTINUE;
 				}
 			}
 
@@ -1326,7 +1329,7 @@
 				v->u.road.state = _road_exit_tunnel_state[dir];
 				v->u.road.frame = _road_exit_tunnel_frame[dir];
 				v->vehstatus &= ~VS_HIDDEN;
-				return 4;
+				return VETSB_ENTERED_WORMHOLE;
 			}
 		}
 	} else if (IsBridge(tile)) { // XXX is this necessary?
@@ -1344,37 +1347,37 @@
 		if (DirToDiagDir(v->direction) == dir) {
 			switch (dir) {
 				default: NOT_REACHED();
-				case DIAGDIR_NE: if ((x & 0xF) != 0)             return 0; break;
-				case DIAGDIR_SE: if ((y & 0xF) != TILE_SIZE - 1) return 0; break;
-				case DIAGDIR_SW: if ((x & 0xF) != TILE_SIZE - 1) return 0; break;
-				case DIAGDIR_NW: if ((y & 0xF) != 0)             return 0; break;
+				case DIAGDIR_NE: if ((x & 0xF) != 0)             return VETSB_CONTINUE; break;
+				case DIAGDIR_SE: if ((y & 0xF) != TILE_SIZE - 1) return VETSB_CONTINUE; break;
+				case DIAGDIR_SW: if ((x & 0xF) != TILE_SIZE - 1) return VETSB_CONTINUE; break;
+				case DIAGDIR_NW: if ((y & 0xF) != 0)             return VETSB_CONTINUE; break;
 			}
 			if (v->type == VEH_Train) {
 				v->u.rail.track = TRACK_BIT_WORMHOLE;
 				CLRBIT(v->u.rail.flags, VRF_GOINGUP);
 				CLRBIT(v->u.rail.flags, VRF_GOINGDOWN);
 			} else {
-				v->u.road.state = 0xFF;
+				v->u.road.state = RVSB_WORMHOLE;
 			}
-			return 4;
+			return VETSB_ENTERED_WORMHOLE;
 		} else if (DirToDiagDir(v->direction) == ReverseDiagDir(dir)) {
 			v->tile = tile;
 			if (v->type == VEH_Train) {
-				if (v->u.rail.track == 0x40) {
+				if (v->u.rail.track == TRACK_BIT_WORMHOLE) {
 					v->u.rail.track = (DiagDirToAxis(dir) == AXIS_X ? TRACK_BIT_X : TRACK_BIT_Y);
-					return 4;
+					return VETSB_ENTERED_WORMHOLE;
 				}
 			} else {
-				if (v->u.road.state == 0xFF) {
+				if (v->u.road.state == RVSB_WORMHOLE) {
 					v->u.road.state = _road_exit_tunnel_state[dir];
 					v->u.road.frame = 0;
-					return 4;
+					return VETSB_ENTERED_WORMHOLE;
 				}
 			}
-			return 0;
+			return VETSB_CONTINUE;
 		}
 	}
-	return 0;
+	return VETSB_CONTINUE;
 }
 
 extern const TileTypeProcs _tile_type_tunnelbridge_procs = {
--- a/src/vehicle.cpp	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/vehicle.cpp	Wed Feb 14 10:46:38 2007 +0000
@@ -2316,7 +2316,7 @@
 	switch (type) {
 		case VEH_Train:
 			FOR_ALL_VEHICLES(v) {
-				if (v->tile == tile && v->type == VEH_Train && v->u.rail.track == 0x80) {
+				if (v->tile == tile && v->type == VEH_Train && v->u.rail.track == TRACK_BIT_DEPOT) {
 					if (IsFrontEngine(v)) {
 						if (engine_list == NULL) continue;
 						if (*engine_count == *engine_list_length) ExtendVehicleListSize((const Vehicle***)engine_list, engine_list_length, 25);
@@ -2524,12 +2524,12 @@
 
 		case VEH_Road:
 			InvalidateWindowClasses(WC_ROADVEH_LIST);
-			v->u.road.state = 254;
+			v->u.road.state = RVSB_IN_DEPOT;
 			break;
 
 		case VEH_Ship:
 			InvalidateWindowClasses(WC_SHIPS_LIST);
-			v->u.ship.state = TRACK_BIT_SPECIAL;
+			v->u.ship.state = TRACK_BIT_DEPOT;
 			RecalcShipStuff(v);
 			break;
 
@@ -2737,10 +2737,10 @@
 
 	switch (v->type) {
 		case VEH_Train:
-			if (v->u.rail.track == 0x80) /* We'll assume the train is facing outwards */
+			if (v->u.rail.track == TRACK_BIT_DEPOT) /* We'll assume the train is facing outwards */
 				return DiagdirToDiagTrackdir(GetRailDepotDirection(v->tile)); /* Train in depot */
 
-			if (v->u.rail.track == 0x40) /* train in tunnel, so just use his direction and assume a diagonal track */
+			if (v->u.rail.track == TRACK_BIT_WORMHOLE) /* train in tunnel, so just use his direction and assume a diagonal track */
 				return DiagdirToDiagTrackdir(DirToDiagDir(v->direction));
 
 			return TrackDirectionToTrackdir(FindFirstTrack(v->u.rail.track), v->direction);
@@ -2760,7 +2760,7 @@
 				return DiagdirToDiagTrackdir(GetRoadStopDir(v->tile)); /* Road vehicle in a station */
 
 			/* If vehicle's state is a valid track direction (vehicle is not turning around) return it */
-			if ((v->u.road.state & 7) < 6) return (Trackdir)v->u.road.state;
+			if (!IsReversingRoadTrackdir((Trackdir)v->u.road.state)) return (Trackdir)v->u.road.state;
 
 			/* Vehicle is turning around, get the direction from vehicle's direction */
 			return DiagdirToDiagTrackdir(DirToDiagDir(v->direction));
@@ -2769,10 +2769,11 @@
 		default: return INVALID_TRACKDIR;
 	}
 }
-/* Return value has bit 0x2 set, when the vehicle enters a station. Then,
- * result << 8 contains the id of the station entered. If the return value has
- * bit 0x8 set, the vehicle could not and did not enter the tile. Are there
- * other bits that can be set? */
+
+/**
+ * Returns some meta-data over the to be entered tile.
+ * @see VehicleEnterTileStatus to see what the bits in the return value mean.
+ */
 uint32 VehicleEnterTile(Vehicle *v, TileIndex tile, int x, int y)
 {
 	return _tile_type_procs[GetTileType(tile)]->vehicle_enter_tile_proc(v, tile, x, y);
--- a/src/vehicle.h	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/vehicle.h	Wed Feb 14 10:46:38 2007 +0000
@@ -7,6 +7,57 @@
 #include "order.h"
 #include "rail.h"
 
+/** The returned bits of VehicleEnterTile. */
+enum VehicleEnterTileStatus {
+	VETS_ENTERED_STATION  = 1, ///< The vehicle entered a station
+	VETS_ENTERED_WORMHOLE = 2, ///< The vehicle either entered a bridge, tunnel or depot tile (this includes the last tile of the bridge/tunnel)
+	VETS_CANNOT_ENTER     = 3, ///< The vehicle cannot enter the tile
+
+	/**
+	 * Shift the VehicleEnterTileStatus this many bits
+	 * to the right to get the station ID when
+	 * VETS_ENTERED_STATION is set
+	 */
+	VETS_STATION_ID_OFFSET = 8,
+
+	/** Bit sets of the above specified bits */
+	VETSB_CONTINUE         = 0,                          ///< The vehicle can continue normally
+	VETSB_ENTERED_STATION  = 1 << VETS_ENTERED_STATION,  ///< The vehicle entered a station
+	VETSB_ENTERED_WORMHOLE = 1 << VETS_ENTERED_WORMHOLE, ///< The vehicle either entered a bridge, tunnel or depot tile (this includes the last tile of the bridge/tunnel)
+	VETSB_CANNOT_ENTER     = 1 << VETS_CANNOT_ENTER,     ///< The vehicle cannot enter the tile
+};
+
+/** Road vehicle states */
+enum RoadVehicleStates {
+	/*
+	 * Lower 4 bits are used for vehicle track direction. (Trackdirs)
+	 * When in a road stop (bit 5 set) these bits give the
+	 * track direction of the entry to the road stop.
+	 * As the entry direction will always be a diagonal
+	 * direction (X_NE, Y_SE, X_SW or Y_NW) only bits 0 and 3
+	 * are needed to hold this direction. Bit 1 is then used to show
+	 * that the vehicle is using the second road stop bay.
+	 */
+
+	/* Numeric values */
+	RVSB_IN_DEPOT                = 0xFE,                      ///< The vehicle is in a depot
+	RVSB_WORMHOLE                = 0xFF,                      ///< The vehicle is in a tunnel and/or bridge
+
+	/* Bit numbers */
+	RVS_USING_SECOND_BAY         =    1,                      ///< Only used while in a road stop
+	RVS_DRIVE_SIDE               =    4,                      ///< Only used when retrieving move data and for turning vehicles
+	RVS_IN_ROAD_STOP             =    5,                      ///< The vehicle is in a road stop
+
+	/* Bit sets of the above specified bits */
+	RVSB_USING_SECOND_BAY        = 1 << RVS_USING_SECOND_BAY, ///< Only used while in a road stop
+	RVSB_DRIVE_SIDE              = 1 << RVS_DRIVE_SIDE,       ///< Only used when retrieving move data and for turning vehicles
+	RVSB_IN_ROAD_STOP            = 1 << RVS_IN_ROAD_STOP,     ///< The vehicle is in a road stop
+	RVSB_IN_ROAD_STOP_END        = RVSB_IN_ROAD_STOP + TRACKDIR_END,
+
+	RVSB_TRACKDIR_MASK           = 0x0F,                      ///< The mask used to extract track dirs
+	RVSB_ROAD_STOP_TRACKDIR_MASK = 0x09                       ///< Only bits 0 and 3 are used to encode the trackdir for road stops
+};
+
 enum {
 	VEH_Train,
 	VEH_Road,
@@ -116,7 +167,7 @@
 } VehicleAir;
 
 typedef struct VehicleRoad {
-	byte state;
+	byte state;             /// @see RoadVehicleStates
 	byte frame;
 	uint16 blocked_ctr;
 	byte overtaking;
--- a/src/video/dedicated_v.h	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/video/dedicated_v.h	Wed Feb 14 10:46:38 2007 +0000
@@ -7,4 +7,4 @@
 
 extern const HalVideoDriver _dedicated_video_driver;
 
-#endif
+#endif /* VIDEO_DEDICATED_H */
--- a/src/video/null_v.h	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/video/null_v.h	Wed Feb 14 10:46:38 2007 +0000
@@ -7,4 +7,4 @@
 
 extern const HalVideoDriver _null_video_driver;
 
-#endif
+#endif /* VIDEO_NULL_H */
--- a/src/video/sdl_v.cpp	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/video/sdl_v.cpp	Wed Feb 14 10:46:38 2007 +0000
@@ -510,4 +510,4 @@
 	SdlVideoFullScreen,
 };
 
-#endif
+#endif /* WITH_SDL */
--- a/src/video/sdl_v.h	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/video/sdl_v.h	Wed Feb 14 10:46:38 2007 +0000
@@ -7,4 +7,4 @@
 
 extern const HalVideoDriver _sdl_video_driver;
 
-#endif
+#endif /* VIDEO_SDL_H */
--- a/src/video/win32_v.h	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/video/win32_v.h	Wed Feb 14 10:46:38 2007 +0000
@@ -7,4 +7,4 @@
 
 extern const HalVideoDriver _win32_video_driver;
 
-#endif
+#endif /* VIDEO_WIN32_H */
--- a/src/water_cmd.cpp	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/water_cmd.cpp	Wed Feb 14 10:46:38 2007 +0000
@@ -742,7 +742,7 @@
 
 static uint32 VehicleEnter_Water(Vehicle *v, TileIndex tile, int x, int y)
 {
-	return 0;
+	return VETSB_CONTINUE;
 }
 
 
--- a/src/yapf/follow_track.hpp	Wed Feb 14 00:57:15 2007 +0000
+++ b/src/yapf/follow_track.hpp	Wed Feb 14 10:46:38 2007 +0000
@@ -197,7 +197,7 @@
 		if (IsRailTT() && m_is_station) {
 			// entered railway station
 			// get platform length
-			uint length = GetPlatformLength(m_new_tile, TrackdirToExitdir(m_old_td));
+			uint length = GetStationByTile(m_new_tile)->GetPlatformLength(m_new_tile, TrackdirToExitdir(m_old_td));
 			// how big step we must do to get to the last platform tile;
 			m_tiles_skipped = length - 1;
 			// move to the platform end