--- 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