Merge branch 'save_ext' into improved_breakdowns

# Conflicts:
#	src/train_cmd.cpp
pull/11/head
Jonathan G Rennison 7 years ago
commit dcbde21f18

@ -195,7 +195,7 @@ EXPAND_ONLY_PREDEF = YES
SEARCH_INCLUDES = YES
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED = ENABLE_NETWORK WITH_ZLIB WITH_LZO WITH_LZMA WITH_SDL WITH_PNG WITH_FONTCONFIG WITH_FREETYPE WITH_ICU UNICODE _UNICODE _GNU_SOURCE FINAL=
PREDEFINED = ENABLE_NETWORK WITH_ZLIB WITH_LZO WITH_LZMA WITH_SDL WITH_PNG WITH_FONTCONFIG WITH_FREETYPE WITH_ICU_SORT WITH_ICU_LAYOUT UNICODE _UNICODE _GNU_SOURCE FINAL=
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------

@ -84,7 +84,7 @@ endif
$(Q)cp "$(BIN_DIR)/scripts/"* "$(BUNDLE_DIR)/scripts/"
ifdef MENU_DIR
$(Q)cp "$(ROOT_DIR)/media/openttd.desktop" "$(BUNDLE_DIR)/media/"
$(Q)$(AWK) -f "$(ROOT_DIR)/media/openttd.desktop.translation.awk" "$(SRC_DIR)/lang/"*.txt | $(SORT) | $(AWK) -f "$(ROOT_DIR)/media/openttd.desktop.filter.awk" >> "$(BUNDLE_DIR)/media/openttd.desktop"
$(Q)$(AWK) -f "$(ROOT_DIR)/media/openttd.desktop.translation.awk" "$(SRC_DIR)/lang/"*.txt | LC_ALL=C $(SORT) | $(AWK) -f "$(ROOT_DIR)/media/openttd.desktop.filter.awk" >> "$(BUNDLE_DIR)/media/openttd.desktop"
$(Q)sed s/=openttd/=$(BINARY_NAME)/g "$(BUNDLE_DIR)/media/openttd.desktop" > "$(ROOT_DIR)/media/openttd.desktop.install"
endif
ifeq ($(TTD), openttd.exe)
@ -172,6 +172,7 @@ install: bundle
$(Q)install -d "$(INSTALL_BINARY_DIR)"
$(Q)install -d "$(INSTALL_ICON_DIR)"
$(Q)install -d "$(INSTALL_DATA_DIR)/ai"
$(Q)install -d "$(INSTALL_DATA_DIR)/game"
$(Q)install -d "$(INSTALL_DATA_DIR)/baseset"
$(Q)install -d "$(INSTALL_DATA_DIR)/lang"
$(Q)install -d "$(INSTALL_DATA_DIR)/scripts"
@ -182,6 +183,7 @@ else
endif
$(Q)install -m 644 "$(BUNDLE_DIR)/lang/"* "$(INSTALL_DATA_DIR)/lang"
$(Q)install -m 644 "$(BUNDLE_DIR)/ai/"* "$(INSTALL_DATA_DIR)/ai"
$(Q)install -m 644 "$(BUNDLE_DIR)/game/"* "$(INSTALL_DATA_DIR)/game"
$(Q)install -m 644 "$(BUNDLE_DIR)/baseset/"* "$(INSTALL_DATA_DIR)/baseset"
$(Q)install -m 644 "$(BUNDLE_DIR)/scripts/"* "$(INSTALL_DATA_DIR)/scripts"
ifndef DO_NOT_INSTALL_DOCS

@ -210,7 +210,7 @@ endif
{ \
print $$0 \
} \
' < Makefile.dep.tmp | sed 's@ *@ @g;s@ $$@@' | $(SORT) > Makefile.dep
' < Makefile.dep.tmp | sed 's@ *@ @g;s@ $$@@' | LC_ALL=C $(SORT) > Makefile.dep
$(Q)rm -f Makefile.dep.tmp Makefile.dep.tmp.bak

@ -6,3 +6,5 @@
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
*/
AILog.Info("1.6 API compatibility in effect.");

@ -0,0 +1,8 @@
/* $Id$ */
/*
* This file is part of OpenTTD.
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
*/

@ -6,7 +6,7 @@ class Regression extends AIInfo {
function GetShortName() { return "REGR"; }
function GetDescription() { return "This runs regression-tests on some commands. On the same map the result should always be the same."; }
function GetVersion() { return 1; }
function GetAPIVersion() { return "1.6"; }
function GetAPIVersion() { return "1.7"; }
function GetDate() { return "2007-03-18"; }
function CreateInstance() { return "Regression"; }
}

@ -12,7 +12,7 @@ description.af_ZA = 'n Musiek stel sonder enige musiek.
description.ar_EG = مجموعة موسيقى بدون موسيقى
description.be_BY = "Пусты" набор музычнага афармлення, які не зьмяшчае ніякай музыкі.
description.bg_BG = Празен музикален пакет.
description.ca_ES = Un joc de música sense cap música.
description.ca_ES = Una llista de música sense cap peça.
description.cs_CZ = Prázná hudební sada.
description.cy_GB = Pecyn cerddoriaeth heb unrhyw gerddoriaeth ynddo.
description.da_DK = En musikpakke uden musik.
@ -21,13 +21,15 @@ description.el_GR = Ένα πάκετο μουσικής χωρίς πραγμα
description.en_AU = A music pack without actual music.
description.en_US = A music pack without actual music.
description.es_ES = Un conjunto de música vacío.
description.es_MX = Paquete de música vacío
description.et_EE = Muusikakogu ilma muusikata.
description.fi_FI = Musiikkipaketti, jossa ei ole musiikkia.
description.fr_FR = Un pack de musiques sans musiques.
description.ga_IE = Pacáiste ceoil gan aon cheol iarbhír ann.
description.gd_GB = Pacaid ciùil anns nach eil fonn sam bith.
description.gl_ES = Un conxunto de músicas sen ningunha música.
description.hr_HR = Muzički paket bez ikakve muzike.
description.he_IL = אוסף מנגינות ללא מנגינות.
description.hr_HR = Glazbeni paket bez ikakve glazbe.
description.hu_HU = Zenei alapcsomag zene nélkül.
description.id_ID = Paket musik tanpa musik sungguhan.
description.is_IS = Tónlistarpakki sem er í raun án tónlistar.

@ -12,7 +12,7 @@ description.af_ZA = 'n Klank stel sonder enige klanke.
description.ar_EG = مجموعة صوت بدوت اصوات مضافة
description.be_BY = "Пусты" набор гукавога афармленьня, які не зьмяшчае ніякіх гукаў.
description.bg_BG = Празен звуков пакет.
description.ca_ES = Un joc de sons sense cap so.
description.ca_ES = Una llista de sons buida.
description.cs_CZ = Prázdná sada zvuků.
description.cy_GB = Pecyn sain heb unrhyw effeithiau sain ynddo.
description.da_DK = En lydpakke uden lyde.
@ -21,6 +21,7 @@ description.el_GR = Ένα πάκετο ήχων χώρις ήχους.
description.en_AU = A sound pack without any sounds.
description.en_US = A sound pack without any sounds.
description.es_ES = Un conjunto de sonidos vacío.
description.es_MX = Paquete de sonidos vacío
description.et_EE = Helikogu ilma helideta.
description.eu_ES = Soinurik gabeko soinu pakete bat
description.fi_FI = Äänipaketti, jossa ei ole ääniä.
@ -28,6 +29,7 @@ description.fr_FR = Un pack de sons sans sons.
description.ga_IE = Pacáiste fuaimeanna gan aon fhuaimeanna ann.
description.gd_GB = Pacaid fhuaimean anns nach eil fuaim sam bith.
description.gl_ES = Un conxunto de sons sen ningún son
description.he_IL = אוסף צלילים ללא צלילים.
description.hr_HR = Zvučni paket bez ikakvih zvukova.
description.hu_HU = Hang alapcsomag hangok nélkül.
description.id_ID = Paket efek suara tanpa suara apapun.
@ -38,6 +40,7 @@ description.ko_KR = 아무런 효과음도 없는 효과음 팩입니다.
description.la_VA = Sarcina sonorum sine ullis sonis.
description.lb_LU = E Soundpack ouni iergendee Sound.
description.lt_LT = Garsų pakas be jokių garsų.
description.lv_LV = Skaņu kopa bez skaņas.
description.nb_NO = En lydpakke uten noen lyder.
description.nl_NL = Een geluidset zonder geluid.
description.nn_NO = Ei lydpakke utan nokon lydar.

@ -13,7 +13,7 @@ description.af_ZA = Oorspronklike Transport Tycoon Deluxe DOS uitgawe grafieke.
description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الرسومية نسخة الدوس
description.be_BY = Арыґінальная ґрафіка з Transport Tycoon Deluxe для DOS.
description.bg_BG = Оригинални графики на Transport Tycoon Deluxe за DOS.
description.ca_ES = Gràfics originals de Transport Tycoon Deluxe per a DOS.
description.ca_ES = Gràfics originals del Transport Tycoon Deluxe pel DOS.
description.cs_CZ = Původní sada grafik Transport Tycoon Deluxe (verze pro DOS).
description.cy_GB = Graffeg gwreiddiol fersiwn DOS o Transport Tycoon Deluxe.
description.da_DK = Originalgrafik fra Transport Tycoon Deluxe DOS-version.
@ -22,12 +22,14 @@ description.el_GR = Αρχικά γραφικά από το Transport Tycoon Del
description.en_AU = Original Transport Tycoon Deluxe DOS edition graphics.
description.en_US = Original Transport Tycoon Deluxe DOS edition graphics.
description.es_ES = Gráficos originales de Transport Tycoon Deluxe versión DOS.
description.es_MX = Gráficos originales de Transport Tycoon Deluxe para DOS.
description.et_EE = Algse Transport Tycoon Deluxe DOSi versiooni graafika.
description.fi_FI = Alkuperäiset Transport Tycoon Deluxen DOS-version grafiikat.
description.fr_FR = Graphiques originaux de Transport Tycoon Deluxe (version DOS).
description.ga_IE = Grafaicí bunaidhTransport Tycoon Deluxe, eagrán DOS.
description.gd_GB = Grafaigeachd aig an deasachadh DOS tùsail aig Transport Tycoon Deluxe.
description.gl_ES = Graficos da edición orixinal de Transport Tycoon Deluxe para DOS.
description.he_IL = גרפיקות Transport Tycoon Deluxe המקורי בגרסת DOS.
description.hr_HR = Originalna grafika za Transport Tycoon Deluxe DOS izdanje.
description.hu_HU = Az eredeti Transport Tycoon Deluxe DOS verziójának grafikája.
description.id_ID = Grafik orisinil Transport Tycoon Deluxe versi DOS.
@ -38,6 +40,8 @@ description.ko_KR = 오리지널 트랜스포트 타이쿤 디럭스 도스 에
description.la_VA = Graphica ex editione originale Transport Tycoon Deluxe DOS.
description.lb_LU = Original Transport Tycoon Deluxe DOS Editioun Grafik.
description.lt_LT = Originali Transport Tycoon Deluxe DOS leidimo grafika.
description.lv_LV = Oriģinālā Transport Tycoon Deluxe DOS izdevuma grafika.
description.ms_MY = Grafik asal Transport Tycoon Deluxe DOS edition.
description.nb_NO = Original grafikk fra Transport Tycoon Deluxe for DOS.
description.nl_NL = Originele graphics van de Transport Tycoon Deluxe DOS-versie.
description.nn_NO = Original grafikk frå Transport Tycoon Deluxe for DOS.

@ -12,7 +12,7 @@ description.af_ZA = Oorspronklike Transport Tycoon Deluxe DOS uitgawe klanke.
description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الصوتية نسخة الدوس
description.be_BY = Арыґінальны набор гукавога афармленьня з гульні Transport Tycoon Deluxe для DOS.
description.bg_BG = Оригинални звуци на Transport Tycoon Deluxe за DOS.
description.ca_ES = Sons originals de Transport Tycoon Deluxe per a DOS.
description.ca_ES = Sons originals del Transport Tycoon Deluxe pel DOS.
description.cs_CZ = Původní sada zvuků Transport Tycoon Deluxe (verze pro DOS).
description.cy_GB = Effeithiau sain gwreiddiol fersiwn DOS o Transport Tycoon Deluxe.
description.da_DK = Originallyd fra Transport Tycoon Deluxe DOS-version.
@ -21,12 +21,14 @@ description.el_GR = Αρχικοί ήχοι από το Transport Tycoon Deluxe
description.en_AU = Original Transport Tycoon Deluxe DOS edition sounds.
description.en_US = Original Transport Tycoon Deluxe DOS edition sounds.
description.es_ES = Sonidos originales de Transport Tycoon Deluxe versión DOS.
description.es_MX = Sonidos originales de Transport Tycoon Deluxe para DOS.
description.et_EE = Algse Transport Tycoon Deluxe DOSi versiooni helid.
description.fi_FI = Alkuperäiset Transport Tycoon Deluxen DOS-version äänet.
description.fr_FR = Sons originaux de Transport Tycoon Deluxe (version DOS).
description.ga_IE = Fuaimeanna bunaidh Transport Tycoon Deluxe, eagrán DOS.
description.gd_GB = Fuaimean aig an deasachadh DOS tùsail aig Transport Tycoon Deluxe.
description.gl_ES = Sons da edición orixinal de Transport Tycoon Deluxe para DOS.
description.he_IL = צלילי Transport Tycoon Deluxe המקורי בגרסת DOS.
description.hr_HR = Originalni zvukovi za Transport Tycoon Deluxe DOS izdanje.
description.hu_HU = Az eredeti Transport Tycoon Deluxe DOS verziójának hangjai.
description.id_ID = Efek suara orisinil Transport Tycoon Deluxe versi DOS.

@ -13,7 +13,7 @@ description.af_ZA = Oorspronklike Transport Tycoon Deluxe DOS (German) uitgawe g
description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الالمانية نسخة الدوس
description.be_BY = Арыґінальная ґрафіка зь нямецкай версіі Transport Tycoon Deluxe для DOS.
description.bg_BG = Оригинални графики на Transport Tycoon Deluxe за DOS (немски) .
description.ca_ES = Gràfics originals de Transport Tycoon Deluxe per a DOS (Alemany).
description.ca_ES = Gràfics originals del Transport Tycoon Deluxe (alemany) pel DOS.
description.cs_CZ = Původní sada grafik Transport Tycoon Deluxe (německá verze pro DOS).
description.cy_GB = Graffeg gwreiddiol fersiwn DOS (Almaenig) o Transport Tycoon Deluxe.
description.da_DK = Originalgrafik fra Transport Tycoon Deluxe DOS (Tysk) version.
@ -22,12 +22,14 @@ description.el_GR = Αρχικά γραφικά από το Transport Tycoon Del
description.en_AU = Original Transport Tycoon Deluxe DOS (German) edition graphics.
description.en_US = Original Transport Tycoon Deluxe DOS (German) edition graphics.
description.es_ES = Gráficos originales de Transport Tycoon Deluxe versión DOS (Alemán).
description.es_MX = Gráficos originales de Transport Tycoon Deluxe para DOS (en alemán).
description.et_EE = Algse Transport Tycoon Deluxe DOSi (Saksa) versiooni graafika.
description.fi_FI = Alkuperäiset Saksassa julkaistun Transport Tycoon Deluxen DOS-version grafiikat.
description.fr_FR = Graphiques originaux de Transport Tycoon Deluxe (version DOS allemande).
description.ga_IE = Grafaicí bunaidhTransport Tycoon Deluxe, eagrán DOS (Gearmánach).
description.gd_GB = Grafaigeachd aig an deasachadh DOS (Gearmailteach) tùsail aig Transport Tycoon Deluxe.
description.gl_ES = Graficos da edición orixinal (alemá) de Transport Tycoon Deluxe para DOS.
description.he_IL = גרפיקות Transport Tycoon Deluxe המקורי בגרסת DOS (גרמנית).
description.hr_HR = Originalna grafika za Transport Tycoon Deluxe DOS (Njemački) izdanje.
description.hu_HU = Az eredeti Transport Tycoon Deluxe DOS (német) verziójának grafikája.
description.id_ID = Grafik orisinil Transport Tycoon Deluxe versi DOS (Jerman).
@ -38,6 +40,7 @@ description.ko_KR = 오리지널 트랜스포트 타이쿤 디럭스 도스 에
description.la_VA = Graphica ex editione originale Transport Tycoon Deluxe DOS (Germanica).
description.lb_LU = Original Transport Tycoon Deluxe DOS (Däitsch) Editioun Grafik.
description.lt_LT = Originali Transport Tycoon Deluxe DOS (Vokiečių) leidimo grafika.
description.lv_LV = Oriģinālā Transport Tycoon Deluxe DOS (vācu) izdevuma grafika.
description.nb_NO = Original grafikk fra Transport Tycoon Deluxe for DOS (tysk).
description.nl_NL = Originele graphics van de Duitse Transport Tycoon Deluxe DOS-versie.
description.nn_NO = Original grafikk frå Transport Tycoon Deluxe for DOS (tysk).

@ -13,7 +13,7 @@ description.af_ZA = Oorspronklike Transport Tycoon Deluxe Windows uitgawe grafie
description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الرسومية نسخة وندوز
description.be_BY = Арыґінальная ґрафіка з Transport Tycoon Deluxe для Windows.
description.bg_BG = Оригинални графики на Transport Tycoon Deluxe за Windows.
description.ca_ES = Gràfics originals de Transport Tycoon Deluxe per a Windows.
description.ca_ES = Gràfics originals del Transport Tycoon Deluxe pel Windows.
description.cs_CZ = Původní sada grafik Transport Tycoon Deluxe (verze pro Windows).
description.cy_GB = Graffeg gwreiddiol fersiwn Windows o Transport Tycoon Deluxe.
description.da_DK = Originalgrafik fra Transport Tycoon Deluxe Windows-version.
@ -22,12 +22,14 @@ description.el_GR = Αρχικά γραφικά από το Transport Tycoon Del
description.en_AU = Original Transport Tycoon Deluxe Windows edition graphics.
description.en_US = Original Transport Tycoon Deluxe Windows edition graphics.
description.es_ES = Gráficos originales de Transport Tycoon Deluxe versión Windows.
description.es_MX = Gráficos originales de Transport Tycoon Deluxe para Windows.
description.et_EE = Algse Transport Tycoon Deluxe Windowsi versiooni graafika.
description.fi_FI = Alkuperäiset Transport Tycoon Deluxen Windows-version grafiikat.
description.fr_FR = Graphiques originaux de Transport Tycoon Deluxe (version Windows).
description.ga_IE = Grafaicí bunaidhTransport Tycoon Deluxe, eagrán Windows.
description.gd_GB = Grafaigeachd aig an deasachadh Windows tùsail aig Transport Tycoon Deluxe.
description.gl_ES = Graficos da edición orixinal de Transport Tycoon Deluxe para Windows.
description.he_IL = גרפיקות Transport Tycoon Deluxe המקורי בגרסת Windows.
description.hr_HR = Originalna grafika za Transport Tycoon Deluxe Windows izdanje.
description.hu_HU = Az eredeti Transport Tycoon Deluxe Windows verziójának grafikája.
description.id_ID = Grafik orisinil Transport Tycoon Deluxe versi Windows.
@ -38,6 +40,8 @@ description.ko_KR = 오리지널 트랜스포트 타이쿤 디럭스 윈도 에
description.la_VA = Graphica ex editione originale Transport Tycoon Deluxe Windows.
description.lb_LU = Original Transport Tycoon Deluxe Windows Editioun Grafik.
description.lt_LT = Originali Transport Tycoon Deluxe Windows leidimo grafika.
description.lv_LV = Oriģinālā Transport Tycoon Deluxe Windows izdevuma grafika.
description.ms_MY = Grafik asal Transport Tycoon Deluxe edisi Windows.
description.nb_NO = Original grafikk fra Transport Tycoon Deluxe for Windows.
description.nl_NL = Originele graphics van de Transport Tycoon Deluxe Windows-versie.
description.nn_NO = Original grafikk frå Transport Tycoon Deluxe for Windows.

@ -12,7 +12,7 @@ description.af_ZA = Oorspronklike Transport Tycoon Deluxe Windows uitgawe musiek
description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الموسيقية نسخة وندوز
description.be_BY = Арыґінальны набор музычнага афармленьня з гульні Transport Tycoon Deluxe для Windows.
description.bg_BG = Оригинална музика на Transport Tycoon Deluxe за Windows.
description.ca_ES = Música Original de Transport Tycoon Deluxe per a Windows.
description.ca_ES = Música original del Transport Tycoon Deluxe pel Windows.
description.cs_CZ = Původní hudba Transport Tycoon Deluxe (verze pro Windows).
description.cy_GB = Cerddoriaeth gwreiddiol fersion Windows o Transport Tycoon Deluxe.
description.da_DK = Originalmusik fra Transport Tycoon Deluxe Windows-version.
@ -21,13 +21,15 @@ description.el_GR = Αρχική μουσική από το Transport Tycoon Del
description.en_AU = Original Transport Tycoon Deluxe Windows edition music.
description.en_US = Original Transport Tycoon Deluxe Windows edition music.
description.es_ES = Música original de Transport Tycoon Deluxe versión Windows.
description.es_MX = Música original de Transport Tycoon Deluxe para Windows.
description.et_EE = Algse Transport Tycoon Deluxe Windowsi versiooni muusika.
description.fi_FI = Alkuperäinen Transport Tycoon Deluxen Windows-version musiikki.
description.fr_FR = Musiques originales de Transport Tycoon Deluxe (version Windows).
description.ga_IE = Ceol bunaidh Transport Tycoon Deluxe, eagrán Windows.
description.gd_GB = Ceòl aig an deasachadh Windows tùsail aig Transport Tycoon Deluxe.
description.gl_ES = Música da edición orixinal de Transport Tycoon Deluxe para Windows.
description.hr_HR = Originalna muzika za Transport Tycoon Deluxe Windows izdanje.
description.he_IL = מנגינות Transport Tycoon Deluxe המקורי בגרסת Windows.
description.hr_HR = Originalna glazba za Transport Tycoon Deluxe Windows izdanje.
description.hu_HU = Az eredeti Transport Tycoon Deluxe Windows verziójának zenéje.
description.id_ID = Musik pengiring orisinil Transport Tycoon Deluxe versi Windows.
description.is_IS = Upprunalega tónlistin úr Transport Tycoon Deluxe Windows útgáfunni.

@ -12,7 +12,7 @@ description.af_ZA = Oorspronklike Transport Tycoon Deluxe Windows uitgawe klanke
description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الصوتية نسخة وندوز
description.be_BY = Арыґінальны набор гукавога афармленьня з гульні Transport Tycoon Deluxe для Windows.
description.bg_BG = Оригинални звуци на Transport Tycoon Deluxe за Windows.
description.ca_ES = Sons originals de Transport Tycoon Deluxe per a Windows.
description.ca_ES = Sons originals del Transport Tycoon Deluxe pel Windows.
description.cs_CZ = Původní sada zvuků Transport Tycoon Deluxe (verze pro Windows).
description.cy_GB = Effeithiau sain gwreiddiol fersiwn Windows o Transport Tycoon Deluxe.
description.da_DK = Originallyd fra Transport Tycoon Deluxe Windows-version.
@ -21,12 +21,14 @@ description.el_GR = Αρχικοί ήχοι από το Transport Tycoon Deluxe
description.en_AU = Original Transport Tycoon Deluxe Windows edition sounds.
description.en_US = Original Transport Tycoon Deluxe Windows edition sounds.
description.es_ES = Sonidos originales de Transport Tycoon Deluxe versión Windows.
description.es_MX = Sonidos originales de Transport Tycoon Deluxe para Windows.
description.et_EE = Algse Transport Tycoon Deluxe Windowsi versiooni helid.
description.fi_FI = Alkuperäiset Transport Tycoon Deluxen Windows-version äänet.
description.fr_FR = Sons originaux de Transport Tycoon Deluxe (version Windows).
description.ga_IE = Fuaimeanna bunaidh Transport Tycoon Deluxe, eagrán Windows.
description.gd_GB = Fuaimean aig an deasachadh Windows tùsail aig Transport Tycoon Deluxe.
description.gl_ES = Sons da edición orixinal de Transport Tycoon Deluxe para Windows.
description.he_IL = צלילי Transport Tycoon Deluxe המקורי בגרסת Windows.
description.hr_HR = Originalni zvukovi za Transport Tycoon Deluxe Windows izdanje.
description.hu_HU = Az eredeti Transport Tycoon Deluxe Windows verziójának hangjai.
description.id_ID = Efek suara orisinil Transport Tycoon Deluxe versi Windows.

@ -6,3 +6,5 @@
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
*/
GSLog.Info("1.6 API compatibility in effect.");

@ -0,0 +1,8 @@
/* $Id$ */
/*
* This file is part of OpenTTD.
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
*/

@ -1,30 +1,120 @@
1.5.3 (2015-12-01)
------------------------------------------------------------------------
(None)
1.5.3-RC1 (2015-11-01)
------------------------------------------------------------------------
- Fix: When selecting a refit cargo for orders, do not check whether the vehicle is in a depot or station, and do not ask whether the vehicle currently allows station-refitting. Also hide the refit cost for orders, it is not predictable (r27428)
- Fix: Use the NewGRF railtype sorting order in the infrastructure window (r27427)
- Fix: Crash when switching to or taking over companies, when an order window of a vehicle of the new company was opened. Now close those windows [FS#5842] (r27425)
- Fix: Towns did not connect roads to existing roads, unless they had only a single roadbit. Otoh, towns also tried to connect to single roadbit tiles such as tunnels and depots, even though they were not connectable in the direction of interest [FS#6374] (r27424)
- Fix: When towns expanded single-bit roadtiles using a grid-layout, they used the layout position of the neighbouring tile (r27423)
- Fix: Aircraft picked the wrong airport entry point, if airports were rotated by 180 degree [FS#6341] (r27422)
- Fix: Consider text and icon sizes when drawing the client list [FS#6265] (r27421)
- Fix: GrowTownAtRoad sometimes returned false, even when a house was built [FS#6362] (r27420)
- Fix: CmdSellRailWagon did not revert all actions properly when no orderlist could be allocated [FS#6369] (r27419)
- Fix: Desync due to incorrect storage of segments with different railtype in the YAPF cache [FS#6329] [FS#6379] (r27418)
- Fix: When a dedicated server was paused with no clients, the master server advertisement interval was slowed, causing deadvertisement of the server [FS#6368] (r27400)
- Fix: [Makefile] Game script directory and compat*.nut were never installed on *nix (r27399)
- Fix: There are two different availability conditions for fdatasync in the manpage. Use them both, since at least on some MinGW versions one is not enough (r27389)
- Fix: win32 sound driver failed to report errors (r27383)
- Fix: Clickareas in settings tree were misaligned when the filter warning was displayed, if the setting height was defined by the icons instead of the font [FS#6358] (r27366)
- Fix: Center settings filter warning also vertically, and also in case of multiple lines (r27365)
1.5.2 (2015-09-01)
------------------------------------------------------------------------
(None)
1.5.2-RC1 (2015-08-01)
------------------------------------------------------------------------
- Change: Auto-complete partial roads when building level-crossings [FS#6283] (r27309)
- Fix: Do not rerandomise the town name when only cost-estimating the founding [FS#6332] (r27341)
- Fix: Make variety distribution not assume that sea level is at height 0.2 / 3 * TGPGetMaxHeight() [FS#6335] (r27331, r27330, r27329, r27328)
- Fix: Remove corner-case optimisation for line drawing, which failed for dashed lines (r27324)
- Fix: Clipping of inclined lines did not account for the 'horizontal width' being bigger than the 'real width' (r27323, r27322)
- Fix: Incorrect owner assignment when adding/removing road/tram to/from bridges [FS#6317] (r27313, r27312)
- Fix: Mark infrastructure window dirty in more cases (r27311)
- Fix: Prevent breaking of tram-reversal points by adding more road pieces [FS#6283] (r27308)
- Fix: Error message window with manager face failed with GUI zoom [FS#6259] (r27307)
- Fix: Account for road-bridges and drive-through-stops in CanFollowRoad [FS#6320] (r27306, r27305)
- Fix: Password window layout with GUI zoom [FS#6321] (r27304, r27303)
- Fix: Speed-only timetables got assigned times in stations [FS#6313] (r27302, r27301)
- Fix: Enforce the company's default service intervals when purchasing another company [FS#6254] (r27282, r27281)
- Fix: Cloning/autoreplace/autorenew did not copy custom service intervals (r27280)
1.5.1 (2015-06-01)
------------------------------------------------------------------------
(None)
1.5.1-RC1 (2015-05-08)
------------------------------------------------------------------------
- Fix: Do not consider road junctions with trivial dead ends as branch points during town growth [FS#6245] (r27260, r27259, r27244)
- Fix: ScriptList::RemoveList failed to remove a list from itself [FS#6287] (r27258)
- Fix: Combined button+dropdown widgets in order and autoreplace GUI had incorrect hitbox when using GUI zoom [FS#6270] (r27255)
- Fix: When building a lock on DC_AUTO-removable water-based objects, the water class was always set to canal [FS#6264] (r27254)
- Fix: When crossing tram tracks with railroads, cost of extra roads was not being counted [FS#6282] (r27253)
- Fix: Invalid infrastructure counting when crossing tram tracks with railroads [FS#6281] (r27252)
- Fix: Broken error message in configure [FS#6286] (r27250)
- Fix: In some cases town growth failure was considered as success [FS#6240] (r27249, r27247)
- Fix: Town labels on smallmap and zoomed-out viewports were not centered [FS#6257] (r27248)
- Fix: Removing a rail waypoint used the remove-rail-station cost [FS#6251] (r27245)
- Fix: Duplicate frees due to pool item classes not having copy constructors [FS#6285] (r27243)
- Fix: Crash when no AIs were installed due to improper handling of non-ASCII characters by the string pointer lexer [FS#6272] (r27233)
- Fix: Compilation on DragonflyBSD [FS#6274] (r27224, r27223)
- Fix: Use the current maximum speed as limited by bridges, orders etc. for all vehicle types alike when considering increased smoke emissions of vehicles [FS#6278] (r27222)
- Fix: Multi-value keys in the desktop entry shall end with a trailing separator (r27221)
- Fix: Draw path reservation on the whole bridge, not only on the bridge heads (r27209)
- Fix: Draw correct overlay sprites for path reservations on bridges and tunnels (r27208)
1.5.0 (2015-04-01)
------------------------------------------------------------------------
- Fix: [NewGRF] Add Misc. GRF Feature Flag 6 to enable the second rocky tile set [FS#6260] (r27200)
1.5.0-RC1 (2015-03-18)
------------------------------------------------------------------------
- Feature: [NewGRF] Display relative offset changes in the sprite aligner [FS#6236] (r27174)
- Fix: Original road vehicle acceleration crashed for vehicles taking over [FS#6255] (r27190)
- Fix: GCC 5 compilation (r27185, r27183)
- Fix: Data race due to lazy initialisation of objects [FS#5969] (r27178)
- Fix: Compilation with MinGW64 (r27176)
- Fix: Use the regular clipping functions in the sprite aligner instead of some magic [FS#6237] (r27173)
- Fix: Windows randomly drops SetCursorPos calls, breaking the RMB-scrolling [FS#6238] (r27172)
1.5.0-beta2 (2015-02-24)
------------------------------------------------------------------------
- Feature: [NoGo] Game scripts can point to a location, station, industry, or town when publishing news. (r27164)
- Feature: Allow changing max heightlevel in scenario editor. (r27151)
- Feature: Make use of both rocky tile sets from the base graphics. (r27117)
- Change: Scale (non-custom) default window sizes according to GUI zoom. (r27147)
- Change: Make statusbar and chat-entry window use the same width as the toolbar. (r27146)
- Change: The chatbox-width setting now uses percent of screen width instead of pixels. (r27144)
- Change: [NewGRF] Interpret negative positions in industry layouts depending on GRF version. (r27138)
- Fix: [SDL, Windows] Right-mouse-button scrolling scrolled/jumped too far, when OpenTTD lagged during mouse event processing. (r27167)
- Fix: Toolbars were not invalidated when changing max-vehicles settings. [FS#6204] (r27163)
- Fix: Tile selection was drawn outside of map in some cases. [FS#6208] (r27162)
- Fix: Reimplement the viewport drawing algorithm. [FS#6156] [FS#6206] (r27161)
- Fix: Issues with smallmap and viewport coordinates and transformations. (r27160, r27159, r27158)
- Fix: Mark bridge middle tiles dirty when building/removing/changing bridges. (r27157)
- Fix: Rounding and unit-conversion inconsistencies in calls to MarkAllViewportsDirty. (r27148)
- Fix: Oilrig empty-tile checks were incorrect due to wrong TileIndexDiff->TileIndexDiffC conversion. (r27137)
- Fix: Misalignment in generate world window in case of small fonts. (r27135)
- Fix: Dragging of free wagons in depot failed with GUI zoom. (r27133)
- Fix: Reduce memory footprint of map array by shuffling its members. [FS#6218] (r27132, r27126)
- Fix: Dropdown- and tooltip-windows should not steal the focus. (r27131)
- Fix: [NewGRF] Action 7/9 condition 0A failed for present, but disabled, NewGRF. (r27119)
- Fix: Road vehicles could not reverse to be sent to depots when the following tile has the right type to run on, but could not be entered. [FS#6183] (r27107)
- Fix: Use the actual max speed of the vehicle in front when determining if a RV can overtake. [FS#6176] (r27106)
- Fix: grow_counter was not properly bounded by growth_rate, but by some other value used to calculate growth_rate. [FS#6195] (r27105)
- Fix: [Script] Support 64 bits integers in ScriptLists. [FS#6194] (r27104)
- Fix: [Script] Money values would end up wrong in strings when outside the bounds of a 32 bits integer. [FS#6194] (r27102)
- Feature: [NoGo] Game scripts can point to a location, station, industry, or town when publishing news (r27164)
- Feature: Allow changing max heightlevel in scenario editor (r27151)
- Feature: Make use of both rocky tile sets from the base graphics (r27117)
- Change: Scale (non-custom) default window sizes according to GUI zoom (r27147)
- Change: Make statusbar and chat-entry window use the same width as the toolbar (r27146)
- Change: The chatbox-width setting now uses percent of screen width instead of pixels (r27144)
- Change: [NewGRF] Interpret negative positions in industry layouts depending on GRF version (r27138)
- Fix: [SDL, Windows] Right-mouse-button scrolling scrolled/jumped too far, when OpenTTD lagged during mouse event processing (r27167)
- Fix: Toolbars were not invalidated when changing max-vehicles settings [FS#6204] (r27163)
- Fix: Tile selection was drawn outside of map in some cases [FS#6208] (r27162)
- Fix: Reimplement the viewport drawing algorithm [FS#6156] [FS#6206] (r27161)
- Fix: Issues with smallmap and viewport coordinates and transformations (r27160, r27159, r27158)
- Fix: Mark bridge middle tiles dirty when building/removing/changing bridges (r27157)
- Fix: Rounding and unit-conversion inconsistencies in calls to MarkAllViewportsDirty (r27148)
- Fix: Oilrig empty-tile checks were incorrect due to wrong TileIndexDiff->TileIndexDiffC conversion (r27137)
- Fix: Misalignment in generate world window in case of small fonts (r27135)
- Fix: Dragging of free wagons in depot failed with GUI zoom (r27133)
- Fix: Reduce memory footprint of map array by shuffling its members [FS#6218] (r27132, r27126)
- Fix: Dropdown- and tooltip-windows should not steal the focus (r27131)
- Fix: [NewGRF] Action 7/9 condition 0A failed for present, but disabled, NewGRF (r27119)
- Fix: Road vehicles could not reverse to be sent to depots when the following tile has the right type to run on, but could not be entered [FS#6183] (r27107)
- Fix: Use the actual max speed of the vehicle in front when determining if a RV can overtake [FS#6176] (r27106)
- Fix: grow_counter was not properly bounded by growth_rate, but by some other value used to calculate growth_rate [FS#6195] (r27105)
- Fix: [Script] Support 64 bits integers in ScriptLists [FS#6194] (r27104)
- Fix: [Script] Money values would end up wrong in strings when outside the bounds of a 32 bits integer [FS#6194] (r27102)
1.5.0-beta1 (2014-12-24)

@ -1265,7 +1265,12 @@ make_compiler_cflags() {
# remark #2259: non-pointer conversion from ... to ... may lose significant bits
flags="$flags -wd2259"
# Use c++0x mode so static_assert() is available
cxxflags="$cxxflags -std=c++0x"
cxxflags="$cxxflags -std=c++11"
fi
if [ $cc_version -lt 140 ]; then
log 1 "configure: error: ICC version is too old: `$1 -dumpversion`, minumum: 14.0"
exit 1
fi
if [ "$enable_lto" != "0" ]; then
@ -1285,7 +1290,7 @@ make_compiler_cflags() {
# -W alone doesn't enable all warnings enabled by -Wall; on the other hand,
# -Weverything enables too many useless warnings that can't be disabled (as of 3.0)
flags="$flags -Wall -W"
flags="$flags -Wall -W -Wextra"
# warning: unused parameter '...'
flags="$flags -Wno-unused-parameter"
@ -1326,13 +1331,23 @@ make_compiler_cflags() {
flags="$flags -Wno-unused-variable"
fi
if [ "$cc_version" -ge "33" ]; then
# clang completed C++11 support in version 3.3
flags="$flags -std=c++11"
else
log 1 "configure: error: clang version is too old: `$1 -v 2>&1 | head -n 1`, minumum: 3.3"
exit 1
fi
# rdynamic is used to get useful stack traces from crash reports.
ldflags="$ldflags -rdynamic"
else
# Enable some things only for certain GCC versions
cc_version=`$1 -dumpversion | cut -c 1,3`
# cc_version = major_version * 100 + minor_version
# For example: "3.3" -> 303, "4.9.2" -> 409, "6" -> 600, "23.5" -> 2305
cc_version=`$1 -dumpversion | $awk -F . '{printf "%d%02d", $1, $2}'`
if [ $cc_version -lt 33 ]; then
if [ $cc_version -lt 303 ]; then
log 1 "configure: error: gcc older than 3.3 can't compile OpenTTD because of its poor template support"
exit 1
fi
@ -1345,20 +1360,20 @@ make_compiler_cflags() {
if [ $enable_assert -eq 0 ]; then
# Do not warn about unused variables when building without asserts
flags="$flags -Wno-unused-variable"
if [ $cc_version -ge 46 ]; then
if [ $cc_version -ge 406 ]; then
# GCC 4.6 gives more warnings, disable them too
flags="$flags -Wno-unused-but-set-variable"
flags="$flags -Wno-unused-but-set-parameter"
fi
fi
if [ $cc_version -ge 34 ]; then
if [ $cc_version -ge 304 ]; then
# Warn when a variable is used to initialise itself:
# int a = a;
flags="$flags -Winit-self"
fi
if [ $cc_version -ge 40 ]; then
if [ $cc_version -ge 400 ]; then
# GCC 4.0+ complains about that we break strict-aliasing.
# On most places we don't see how to fix it, and it doesn't
# break anything. So disable strict-aliasing to make the
@ -1369,7 +1384,7 @@ make_compiler_cflags() {
flags="$flags -Wcast-qual"
fi
if [ $cc_version -ge 42 ]; then
if [ $cc_version -ge 402 ]; then
# GCC 4.2+ automatically assumes that signed overflows do
# not occur in signed arithmetics, whereas we are not
# sure that they will not happen. It furthermore complains
@ -1380,25 +1395,37 @@ make_compiler_cflags() {
flags="$flags -Wnon-virtual-dtor"
fi
if [ $cc_version -ge 43 ]; then
if [ $cc_version -ge 403 ] && [ $cc_version -lt 600 ]; then
# Use gnu++0x mode so static_assert() is available.
# Don't use c++0x, it breaks mingw (with gcc 4.4.0).
cxxflags="$cxxflags -std=gnu++0x"
cxxflags="$cxxflags -std=gnu++11"
fi
if [ $cc_version -eq 45 ]; then
if [ $cc_version -eq 405 ]; then
# Prevent optimisation supposing enums are in a range specified by the standard
# For details, see http://gcc.gnu.org/PR43680
flags="$flags -fno-tree-vrp"
fi
if [ $cc_version -ge 47 ]; then
if [ $cc_version -eq 407 ]; then
# Disable -Wnarrowing which gives many warnings, such as:
# warning: narrowing conversion of '...' from 'unsigned int' to 'int' inside { } [-Wnarrowing]
# They are valid according to the C++ standard, but useless.
cxxflags="$cxxflags -Wno-narrowing"
fi
if [ $cc_version -ge 407 ]; then
# Disable bogus 'attempt to free a non-heap object' warning
flags="$flags -Wno-free-nonheap-object"
else
log 1 "configure: error: GCC version is too old: `$1 -dumpversion`, minumum: 4.7"
exit 1
fi
if [ $cc_version -ge 600 ]; then
# -flifetime-dse=2 (default since GCC 6) doesn't play
# well with our custom pool item allocator
cxxflags="$cxxflags -flifetime-dse=1 -std=gnu++14"
fi
if [ "$enable_lto" != "0" ]; then
@ -1406,7 +1433,7 @@ make_compiler_cflags() {
has_lto=`$1 -dumpspecs | grep '\%{flto'`
if [ -n "$has_lto" ]; then
# Use LTO only if we see LTO exists and is requested
if [ $cc_version -lt 46 ]; then
if [ $cc_version -lt 406 ]; then
flags="$flags -flto"
else
flags="$flags -flto=jobserver"
@ -1490,7 +1517,7 @@ make_cflags_and_ldflags() {
fi
if [ $enable_debug -le 2 ]; then
cc_host_is_gcc=`basename "$cc_host" | grep "gcc" &>/dev/null`
cc_host_is_gcc=`basename "$cc_host" | grep "gcc" 2>/dev/null`
if [ -n "$cc_host_is_gcc" ]; then
# Define only when compiling with GCC. Some GLIBC versions use GNU
# extensions in a way that breaks build with at least ICC.
@ -1498,14 +1525,17 @@ make_cflags_and_ldflags() {
CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=2"
fi
cc_build_is_gcc=`basename "$cc_build" | grep "gcc" &>/dev/null`
cc_build_is_gcc=`basename "$cc_build" | grep "gcc" 2>/dev/null`
if [ -n "$cc_build_is_gcc" ]; then
# Just add -O1 to the tools needed for building.
# Add -O1 and fortify source to the tools needed for building, on gcc
CFLAGS_BUILD="$CFLAGS_BUILD -D_FORTIFY_SOURCE=2 -O1"
elif [ -n "`basename "$cc_build" | grep "clang" 2>/dev/null`" ]; then
# Add -O1 to the tools needed for building, on clang
CFLAGS_BUILD="$CFLAGS_BUILD -O1"
fi
fi
if [ "$os" = "OSX" ] && [ $cc_version -eq 40 ]; then
if [ "$os" = "OSX" ] && [ $cc_version -eq 400 ]; then
# Apple's GCC 4.0 has a compiler bug for x86_64 with (higher) optimization,
# wrongly optimizing ^= in loops. This disables the failing optimisation.
CFLAGS="$CFLAGS -fno-expensive-optimizations"
@ -1529,7 +1559,7 @@ make_cflags_and_ldflags() {
LDFLAGS="$LDFLAGS -mwin32"
fi
if [ "$os" = "MINGW" ] || [ "$os" = "CYGWIN" ]; then
if [ $cc_version -lt 46 ]; then
if [ $cc_version -lt 406 ]; then
flags="$flags -mno-cygwin"
LDFLAGS="$LDFLAGS -mno-cygwin"
fi
@ -1542,10 +1572,10 @@ make_cflags_and_ldflags() {
LIBS="$LIBS -lws2_32 -lwinmm -lgdi32 -ldxguid -lole32 -limm32"
if [ $cc_version -ge 44 ]; then
if [ $cc_version -ge 404 ]; then
LDFLAGS_BUILD="$LDFLAGS_BUILD -static-libgcc -static-libstdc++"
fi
if [ $cc_version -ge 47 ]; then
if [ $cc_version -ge 407 ]; then
CFLAGS="$CFLAGS -mno-ms-bitfields"
fi
fi
@ -1596,7 +1626,7 @@ make_cflags_and_ldflags() {
LDFLAGS="$OSX_LD_SYSROOT $LDFLAGS"
fi
if [ "$enable_universal" = "0" ] && [ $cc_version -gt 40 ]; then
if [ "$enable_universal" = "0" ] && [ $cc_version -gt 400 ]; then
# Only set the min version when not doing an universal build.
# Universal builds set the version elsewhere.
if [ "$cpu_type" = "64" ]; then
@ -1774,7 +1804,7 @@ make_cflags_and_ldflags() {
# GCC 4.0+ doesn't like the DirectX includes (gives tons of
# warnings on it we won't be able to fix). For now just
# suppress those warnings.
if [ $cc_version -ge 40 ]; then
if [ $cc_version -ge 400 ]; then
CFLAGS="$CFLAGS -Wno-non-virtual-dtor"
fi
fi
@ -2610,10 +2640,13 @@ detect_library() {
fi
fi
if [ -z "$res" ] && [ "$os" = "HAIKU" ]; then
eval "$2=`ls -1 /boot/common/include/$4*.h 2>/dev/null | egrep \"\/$5\$\"`"
if [ -z "$includeDir" ]; then
includeDir=`finddir B_SYSTEM_HEADERS_DIRECTORY`
fi
eval "$2=`ls -1 $includeDir/$4*.h 2>/dev/null | egrep \"\/$5\$\"`"
eval "res=\$$2"
if [ -z "$res" ]; then
log 2 " trying /boot/common/include/$4$5... no"
log 2 " trying $includeDir/$4$5... no"
fi
fi

2
configure vendored

@ -149,7 +149,7 @@ AWKCOMMAND='
# Read the source.list and process it
# Please escape ALL " within ` because e.g. "" terminates the string in some sh implementations
SRCS="`< $ROOT_DIR/source.list tr '\r' '\n' | $awk \"$AWKCOMMAND\" | $PIPE_SORT`"
SRCS="`< $ROOT_DIR/source.list tr '\r' '\n' | $awk \"$AWKCOMMAND\" | LC_ALL=C $PIPE_SORT`"
OBJS_C="` echo \"$SRCS\" | $awk ' { ORS = \" \" } /\.c$/ { gsub(\".c$\", \".o\", $0); print $0; }'`"
OBJS_CPP="`echo \"$SRCS\" | $awk ' { ORS = \" \" } /\.cpp$/ { gsub(\".cpp$\", \".o\", $0); print $0; }'`"

@ -99,7 +99,7 @@ elif [ -d "$ROOT_DIR/.git" ]; then
# No rev? Maybe it is a custom git-svn clone
REV_NR=`LC_ALL=C git log --pretty=format:%b --grep="git-svn-id:.*@[0-9]*" -1 | sed "s@.*\@\([0-9]*\).*@\1@"`
fi
TAG="`git name-rev --name-only --tags --no-undefined HEAD 2>/dev/null | sed 's@\^0$@@'`"
TAG="`git describe --tags 2>/dev/null`"
if [ -n "$TAG" ]; then
BRANCH=""
REV="$TAG"

@ -1,3 +1,51 @@
openttd (1.5.3-0) unstable; urgency=low
* New upstream release 1.5.3
-- OpenTTD <info@openttd.org> Tue, 01 Dec 2015 21:00:00 +0100
openttd (1.5.3~RC1-0) unstable; urgency=low
* New upstream release 1.5.3-RC1
-- OpenTTD <info@openttd.org> Sun, 01 Nov 2015 14:00:00 +0100
openttd (1.5.2-0) unstable; urgency=low
* New upstream release 1.5.2
-- OpenTTD <info@openttd.org> Tue, 01 Sep 2015 21:00:00 +0200
openttd (1.5.2~RC1-0) unstable; urgency=low
* New upstream release 1.5.2-RC1
-- OpenTTD <info@openttd.org> Sat, 01 Aug 2015 13:00:00 +0200
openttd (1.5.1-0) unstable; urgency=low
* New upstream release 1.5.1
-- OpenTTD <info@openttd.org> Mon, 01 Jun 2015 21:00:00 +0200
openttd (1.5.1~RC1-0) unstable; urgency=low
* New upstream release 1.5.1-RC1
-- OpenTTD <info@openttd.org> Fri, 08 May 2015 21:00:00 +0200
openttd (1.5.0-0) unstable; urgency=low
* New upstream release 1.5.0
-- OpenTTD <info@openttd.org> Wed, 01 Apr 2015 21:00:00 +0200
openttd (1.5.0~RC1-0) unstable; urgency=low
* New upstream release 1.5.0-RC1
-- OpenTTD <info@openttd.org> Wed, 18 Mar 2015 21:00:00 +0100
openttd (1.5.0~beta2-0) unstable; urgency=low
* New upstream release 1.5.0-beta2

@ -1,6 +1,6 @@
@echo off
set OPENTTD_VERSION=1.6.0
set OPENTTD_VERSION=1.7.0
set OPENSFX_VERSION=0.8.0
set NOSOUND_VERSION=0.8.0
set OPENGFX_VERSION=1.2.0

@ -17,9 +17,9 @@
#
Name: openttd
Version: 1.6.beta1
Version: 1.7.beta1
Release: 0
%define srcver 1.6.0-beta1
%define srcver 1.7.0-beta1
Summary: An open source reimplementation of Chris Sawyer's Transport Tycoon Deluxe
License: GPL-2.0
Group: Amusements/Games/Strategy/Other

@ -1,6 +1,6 @@
# Version numbers to update
!define APPV_MAJOR 1
!define APPV_MINOR 6
!define APPV_MINOR 7
!define APPV_MAINT 0
!define APPV_BUILD 0
!define APPV_EXTRA "-beta1"

@ -317,6 +317,12 @@
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\slovenian.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\spanish_MX.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating spanish_MX language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\spanish_MX.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\spanish.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating spanish language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>

@ -142,6 +142,9 @@
<CustomBuild Include="..\src\lang\slovenian.txt">
<Filter>Translations</Filter>
</CustomBuild>
<CustomBuild Include="..\src\lang\spanish_MX.txt">
<Filter>Translations</Filter>
</CustomBuild>
<CustomBuild Include="..\src\lang\spanish.txt">
<Filter>Translations</Filter>
</CustomBuild>

@ -317,6 +317,12 @@
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\slovenian.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\spanish_MX.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating spanish_MX language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs)</AdditionalInputs>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\bin\lang\spanish_MX.lng;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\src\lang\spanish.txt">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating spanish language file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)"</Command>

@ -142,6 +142,9 @@
<CustomBuild Include="..\src\lang\slovenian.txt">
<Filter>Translations</Filter>
</CustomBuild>
<CustomBuild Include="..\src\lang\spanish_MX.txt">
<Filter>Translations</Filter>
</CustomBuild>
<CustomBuild Include="..\src\lang\spanish.txt">
<Filter>Translations</Filter>
</CustomBuild>

@ -738,6 +738,21 @@
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\spanish_MX.txt"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating spanish_MX language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0&#x0D;&#x0A;"
AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\spanish_MX.lng"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\spanish.txt"
>

@ -739,6 +739,21 @@
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\spanish_MX.txt"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating spanish_MX language file"
CommandLine="..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang &quot;$(InputPath)&quot;&#x0D;&#x0A;exit 0&#x0D;&#x0A;"
AdditionalDependencies="..\src\lang\english.txt;..\objs\strgen\strgen.exe"
Outputs="..\bin\lang\spanish_MX.lng"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\lang\spanish.txt"
>

@ -102,7 +102,7 @@
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";WITH_ASSERT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";WITH_ASSERT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<ExceptionHandling>Sync</ExceptionHandling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
@ -156,7 +156,7 @@
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>
@ -204,7 +204,7 @@
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;WITH_ASSERT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;WITH_ASSERT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<ExceptionHandling>Sync</ExceptionHandling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
@ -256,7 +256,7 @@
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>
@ -571,6 +571,7 @@
<ClInclude Include="..\src\roadstop_base.h" />
<ClInclude Include="..\src\roadveh.h" />
<ClInclude Include="..\src\safeguards.h" />
<ClInclude Include="..\src\scope.h" />
<ClInclude Include="..\src\screenshot.h" />
<ClInclude Include="..\src\sdl.h" />
<ClInclude Include="..\src\sound\sdl_s.h" />

@ -942,6 +942,9 @@
<ClInclude Include="..\src\safeguards.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\scope.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\screenshot.h">
<Filter>Header Files</Filter>
</ClInclude>

@ -102,7 +102,7 @@
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";WITH_ASSERT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";WITH_ASSERT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<ExceptionHandling>Sync</ExceptionHandling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
@ -156,7 +156,7 @@
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>
@ -204,7 +204,7 @@
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;WITH_ASSERT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;WITH_ASSERT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<ExceptionHandling>Sync</ExceptionHandling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
@ -256,7 +256,7 @@
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>

@ -105,7 +105,7 @@
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";WITH_ASSERT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";WITH_ASSERT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<ExceptionHandling>Sync</ExceptionHandling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
@ -163,7 +163,7 @@
<Optimization>Disabled</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<AdditionalIncludeDirectories>..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>
@ -214,7 +214,7 @@
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;WITH_ASSERT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;WITH_ASSERT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<ExceptionHandling>Sync</ExceptionHandling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
@ -270,7 +270,7 @@
<Optimization>Disabled</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<AdditionalIncludeDirectories>..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>
@ -588,6 +588,7 @@
<ClInclude Include="..\src\roadstop_base.h" />
<ClInclude Include="..\src\roadveh.h" />
<ClInclude Include="..\src\safeguards.h" />
<ClInclude Include="..\src\scope.h" />
<ClInclude Include="..\src\screenshot.h" />
<ClInclude Include="..\src\sdl.h" />
<ClInclude Include="..\src\sound\sdl_s.h" />
@ -886,6 +887,8 @@
<ClCompile Include="..\src\saveload\town_sl.cpp" />
<ClCompile Include="..\src\saveload\vehicle_sl.cpp" />
<ClCompile Include="..\src\saveload\waypoint_sl.cpp" />
<ClInclude Include="..\src\saveload\extended_ver_sl.h" />
<ClCompile Include="..\src\saveload\extended_ver_sl.cpp" />
<ClInclude Include="..\src\table\airport_defaults.h" />
<ClInclude Include="..\src\table\airport_movement.h" />
<ClInclude Include="..\src\table\airporttile_ids.h" />

@ -942,6 +942,9 @@
<ClInclude Include="..\src\safeguards.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\scope.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\screenshot.h">
<Filter>Header Files</Filter>
</ClInclude>
@ -1836,6 +1839,12 @@
<ClCompile Include="..\src\saveload\waypoint_sl.cpp">
<Filter>Save/Load handlers</Filter>
</ClCompile>
<ClInclude Include="..\src\saveload\extended_ver_sl.h">
<Filter>Save/Load handlers</Filter>
</ClInclude>
<ClCompile Include="..\src\saveload\extended_ver_sl.cpp">
<Filter>Save/Load handlers</Filter>
</ClCompile>
<ClInclude Include="..\src\table\airport_defaults.h">
<Filter>Tables</Filter>
</ClInclude>

@ -105,7 +105,7 @@
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";WITH_ASSERT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";WITH_ASSERT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<ExceptionHandling>Sync</ExceptionHandling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
@ -163,7 +163,7 @@
<Optimization>Disabled</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<AdditionalIncludeDirectories>..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>
@ -214,7 +214,7 @@
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;WITH_ASSERT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;WITH_ASSERT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<ExceptionHandling>Sync</ExceptionHandling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
@ -270,7 +270,7 @@
<Optimization>Disabled</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<AdditionalIncludeDirectories>..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>

@ -52,7 +52,7 @@
FavorSizeOrSpeed="2"
OmitFramePointers="true"
AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;WITH_ASSERT"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;WITH_ASSERT"
StringPooling="true"
ExceptionHandling="1"
RuntimeLibrary="0"
@ -156,7 +156,7 @@
AdditionalOptions="/MP"
Optimization="0"
AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
@ -257,7 +257,7 @@
FavorSizeOrSpeed="2"
OmitFramePointers="true"
AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;_SQ64;WITH_ASSERT"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;_SQ64;WITH_ASSERT"
StringPooling="true"
ExceptionHandling="1"
RuntimeLibrary="0"
@ -362,7 +362,7 @@
AdditionalOptions="/MP"
Optimization="0"
AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;_SQ64"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;_SQ64"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
@ -1558,6 +1558,10 @@
RelativePath=".\..\src\safeguards.h"
>
</File>
<File
RelativePath=".\..\src\scope.h"
>
</File>
<File
RelativePath=".\..\src\screenshot.h"
>

@ -52,7 +52,7 @@
FavorSizeOrSpeed="2"
OmitFramePointers="true"
AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;WITH_ASSERT"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;WITH_ASSERT"
StringPooling="true"
ExceptionHandling="1"
RuntimeLibrary="0"
@ -156,7 +156,7 @@
AdditionalOptions="/MP"
Optimization="0"
AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
@ -257,7 +257,7 @@
FavorSizeOrSpeed="2"
OmitFramePointers="true"
AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;_SQ64;WITH_ASSERT"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;_SQ64;WITH_ASSERT"
StringPooling="true"
ExceptionHandling="1"
RuntimeLibrary="0"
@ -362,7 +362,7 @@
AdditionalOptions="/MP"
Optimization="0"
AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;_SQ64"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;_SQ64"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"

@ -53,7 +53,7 @@
FavorSizeOrSpeed="2"
OmitFramePointers="true"
AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;WITH_ASSERT"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;WITH_ASSERT"
StringPooling="true"
ExceptionHandling="1"
RuntimeLibrary="0"
@ -155,7 +155,7 @@
AdditionalOptions="/MP"
Optimization="0"
AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
@ -255,7 +255,7 @@
FavorSizeOrSpeed="2"
OmitFramePointers="true"
AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;_SQ64;WITH_ASSERT"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;_SQ64;WITH_ASSERT"
StringPooling="true"
ExceptionHandling="1"
RuntimeLibrary="0"
@ -359,7 +359,7 @@
AdditionalOptions="/MP"
Optimization="0"
AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;_SQ64"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;_SQ64"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
@ -1555,6 +1555,10 @@
RelativePath=".\..\src\safeguards.h"
>
</File>
<File
RelativePath=".\..\src\scope.h"
>
</File>
<File
RelativePath=".\..\src\screenshot.h"
>

@ -53,7 +53,7 @@
FavorSizeOrSpeed="2"
OmitFramePointers="true"
AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;WITH_ASSERT"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;WITH_ASSERT"
StringPooling="true"
ExceptionHandling="1"
RuntimeLibrary="0"
@ -155,7 +155,7 @@
AdditionalOptions="/MP"
Optimization="0"
AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
@ -255,7 +255,7 @@
FavorSizeOrSpeed="2"
OmitFramePointers="true"
AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;_SQ64;WITH_ASSERT"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;_SQ64;WITH_ASSERT"
StringPooling="true"
ExceptionHandling="1"
RuntimeLibrary="0"
@ -359,7 +359,7 @@
AdditionalOptions="/MP"
Optimization="0"
AdditionalIncludeDirectories="..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;_SQ64"
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;LZMA_API_STATIC;WITH_PNG;WITH_FREETYPE;WITH_ICU_SORT;WITH_ICU_LAYOUT;U_STATIC_IMPLEMENTATION;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR=\&quot;OpenTTD\&quot;;_SQ64"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"

@ -310,6 +310,7 @@ road_type.h
roadstop_base.h
roadveh.h
safeguards.h
scope.h
screenshot.h
sdl.h
sound/sdl_s.h
@ -422,6 +423,7 @@ core/alloc_type.hpp
core/backup_type.hpp
core/bitmath_func.cpp
core/bitmath_func.hpp
core/container_func.hpp
core/endian_func.hpp
core/endian_type.hpp
core/enum_type.hpp

@ -119,10 +119,10 @@ static SQInteger _sqstd_aux_printerror(HSQUIRRELVM v)
const SQChar *sErr = 0;
if(sq_gettop(v)>=1) {
if(SQ_SUCCEEDED(sq_getstring(v,2,&sErr))) {
pf(v,"\nAN ERROR HAS OCCURED [%s]\n",sErr);
pf(v,"\nAN ERROR HAS OCCURRED [%s]\n",sErr);
}
else{
pf(v,"\nAN ERROR HAS OCCURED [unknown]\n");
pf(v,"\nAN ERROR HAS OCCURRED [unknown]\n");
}
sqstd_printcallstack(v);
}

@ -798,7 +798,8 @@ SQRESULT sq_setdelegate(HSQUIRRELVM v,SQInteger idx)
switch(type) {
case OT_TABLE:
if(type(mt) == OT_TABLE) {
if(!_table(self)->SetDelegate(_table(mt))) return sq_throwerror(v, "delagate cycle"); v->Pop();}
if(!_table(self)->SetDelegate(_table(mt))) return sq_throwerror(v, "delagate cycle");
v->Pop();}
else if(type(mt)==OT_NULL) {
_table(self)->SetDelegate(NULL); v->Pop(); }
else return sq_aux_invalidtype(v,type);

@ -105,7 +105,7 @@ void SQVM::Raise_IdxError(const SQObject &o)
void SQVM::Raise_CompareError(const SQObject &o1, const SQObject &o2)
{
SQObjectPtr oval1 = PrintObjVal(o1), oval2 = PrintObjVal(o2);
Raise_Error("comparsion between '%.50s' and '%.50s'", _stringval(oval1), _stringval(oval2));
Raise_Error("comparison between '%.50s' and '%.50s'", _stringval(oval1), _stringval(oval2));
}

@ -28,6 +28,7 @@
#include "../widgets/dropdown_type.h"
#include "../widgets/dropdown_func.h"
#include "../hotkeys.h"
#include "../core/geometry_func.hpp"
#include "ai.hpp"
#include "ai_gui.hpp"
@ -766,6 +767,22 @@ struct AIConfigWindow : public Window {
this->line_height = FONT_HEIGHT_NORMAL + WD_MATRIX_TOP + WD_MATRIX_BOTTOM;
size->height = 8 * this->line_height;
break;
case WID_AIC_CHANGE: {
SetDParam(0, STR_AI_CONFIG_CHANGE_GAMESCRIPT);
Dimension dim = GetStringBoundingBox(STR_AI_CONFIG_CHANGE);
SetDParam(0, STR_AI_CONFIG_CHANGE_NONE);
dim = maxdim(dim, GetStringBoundingBox(STR_AI_CONFIG_CHANGE));
SetDParam(0, STR_AI_CONFIG_CHANGE_AI);
dim = maxdim(dim, GetStringBoundingBox(STR_AI_CONFIG_CHANGE));
dim.width += padding.width;
dim.height += padding.height;
*size = maxdim(*size, dim);
break;
}
}
}
@ -901,8 +918,7 @@ struct AIConfigWindow : public Window {
ShowErrorMessage(STR_NETWORK_ERROR_NOTAVAILABLE, INVALID_STRING_ID, WL_ERROR);
} else {
#if defined(ENABLE_NETWORK)
ShowNetworkContentListWindow(NULL, CONTENT_TYPE_AI);
_network_content_client.RequestContentList(CONTENT_TYPE_GAME);
ShowNetworkContentListWindow(NULL, CONTENT_TYPE_AI, CONTENT_TYPE_GAME);
#endif
}
break;

@ -28,7 +28,7 @@ static bool CheckAPIVersion(const char *api_version)
{
return strcmp(api_version, "0.7") == 0 || strcmp(api_version, "1.0") == 0 || strcmp(api_version, "1.1") == 0 ||
strcmp(api_version, "1.2") == 0 || strcmp(api_version, "1.3") == 0 || strcmp(api_version, "1.4") == 0 ||
strcmp(api_version, "1.5") == 0 || strcmp(api_version, "1.6") == 0;
strcmp(api_version, "1.5") == 0 || strcmp(api_version, "1.6") == 0 || strcmp(api_version, "1.7") == 0;
}
#if defined(WIN32)

@ -94,7 +94,7 @@ struct Aircraft FINAL : public SpecializedVehicle<Aircraft, VEH_AIRCRAFT> {
void UpdateDeltaXY(Direction direction);
ExpensesType GetExpenseType(bool income) const { return income ? EXPENSES_AIRCRAFT_INC : EXPENSES_AIRCRAFT_RUN; }
bool IsPrimaryVehicle() const { return this->IsNormalAircraft(); }
SpriteID GetImage(Direction direction, EngineImageType image_type) const;
void GetImage(Direction direction, EngineImageType image_type, VehicleSpriteSeq *result) const;
int GetDisplaySpeed() const { return this->cur_speed; }
int GetDisplayMaxSpeed() const { return this->vcache.cached_max_speed; }
int GetSpeedOldUnits() const { return this->vcache.cached_max_speed * 10 / 128; }
@ -142,7 +142,7 @@ struct Aircraft FINAL : public SpecializedVehicle<Aircraft, VEH_AIRCRAFT> {
*/
#define FOR_ALL_AIRCRAFT(var) FOR_ALL_VEHICLES_OF_TYPE(Aircraft, var)
SpriteID GetRotorImage(const Aircraft *v, EngineImageType image_type);
void GetRotorImage(const Aircraft *v, EngineImageType image_type, VehicleSpriteSeq *result);
Station *GetTargetAirportIfValid(const Aircraft *v);

@ -157,64 +157,69 @@ static StationID FindNearestHangar(const Aircraft *v)
return index;
}
SpriteID Aircraft::GetImage(Direction direction, EngineImageType image_type) const
void Aircraft::GetImage(Direction direction, EngineImageType image_type, VehicleSpriteSeq *result) const
{
uint8 spritenum = this->spritenum;
if (is_custom_sprite(spritenum)) {
SpriteID sprite = GetCustomVehicleSprite(this, direction, image_type);
if (sprite != 0) return sprite;
GetCustomVehicleSprite(this, direction, image_type, result);
if (result->IsValid()) return;
spritenum = this->GetEngine()->original_image_index;
}
assert(IsValidImageIndex<VEH_AIRCRAFT>(spritenum));
return direction + _aircraft_sprite[spritenum];
result->Set(direction + _aircraft_sprite[spritenum]);
}
SpriteID GetRotorImage(const Aircraft *v, EngineImageType image_type)
void GetRotorImage(const Aircraft *v, EngineImageType image_type, VehicleSpriteSeq *result)
{
assert(v->subtype == AIR_HELICOPTER);
const Aircraft *w = v->Next()->Next();
if (is_custom_sprite(v->spritenum)) {
SpriteID sprite = GetCustomRotorSprite(v, false, image_type);
if (sprite != 0) return sprite;
GetCustomRotorSprite(v, false, image_type, result);
if (result->IsValid()) return;
}
/* Return standard rotor sprites if there are no custom sprites for this helicopter */
return SPR_ROTOR_STOPPED + w->state;
result->Set(SPR_ROTOR_STOPPED + w->state);
}
static SpriteID GetAircraftIcon(EngineID engine, EngineImageType image_type)
static void GetAircraftIcon(EngineID engine, EngineImageType image_type, VehicleSpriteSeq *result)
{
const Engine *e = Engine::Get(engine);
uint8 spritenum = e->u.air.image_index;
if (is_custom_sprite(spritenum)) {
SpriteID sprite = GetCustomVehicleIcon(engine, DIR_W, image_type);
if (sprite != 0) return sprite;
GetCustomVehicleIcon(engine, DIR_W, image_type, result);
if (result->IsValid()) return;
spritenum = e->original_image_index;
}
assert(IsValidImageIndex<VEH_AIRCRAFT>(spritenum));
return DIR_W + _aircraft_sprite[spritenum];
result->Set(DIR_W + _aircraft_sprite[spritenum]);
}
void DrawAircraftEngine(int left, int right, int preferred_x, int y, EngineID engine, PaletteID pal, EngineImageType image_type)
{
SpriteID sprite = GetAircraftIcon(engine, image_type);
const Sprite *real_sprite = GetSprite(sprite, ST_NORMAL);
VehicleSpriteSeq seq;
GetAircraftIcon(engine, image_type, &seq);
Rect rect;
seq.GetBounds(&rect);
preferred_x = Clamp(preferred_x,
left - UnScaleGUI(real_sprite->x_offs),
right - UnScaleGUI(real_sprite->width) - UnScaleGUI(real_sprite->x_offs));
DrawSprite(sprite, pal, preferred_x, y);
left - UnScaleGUI(rect.left),
right - UnScaleGUI(rect.right));
seq.Draw(preferred_x, y, pal, pal == PALETTE_CRASH);
if (!(AircraftVehInfo(engine)->subtype & AIR_CTOL)) {
SpriteID rotor_sprite = GetCustomRotorIcon(engine, image_type);
if (rotor_sprite == 0) rotor_sprite = SPR_ROTOR_STOPPED;
DrawSprite(rotor_sprite, PAL_NONE, preferred_x, y - ScaleGUITrad(5));
VehicleSpriteSeq rotor_seq;
GetCustomRotorIcon(engine, image_type, &rotor_seq);
if (!rotor_seq.IsValid()) rotor_seq.Set(SPR_ROTOR_STOPPED);
rotor_seq.Draw(preferred_x, y - ScaleGUITrad(5), PAL_NONE, false);
}
}
@ -229,12 +234,16 @@ void DrawAircraftEngine(int left, int right, int preferred_x, int y, EngineID en
*/
void GetAircraftSpriteSize(EngineID engine, uint &width, uint &height, int &xoffs, int &yoffs, EngineImageType image_type)
{
const Sprite *spr = GetSprite(GetAircraftIcon(engine, image_type), ST_NORMAL);
VehicleSpriteSeq seq;
GetAircraftIcon(engine, image_type, &seq);
Rect rect;
seq.GetBounds(&rect);
width = UnScaleGUI(spr->width);
height = UnScaleGUI(spr->height);
xoffs = UnScaleGUI(spr->x_offs);
yoffs = UnScaleGUI(spr->y_offs);
width = UnScaleGUI(rect.right - rect.left + 1);
height = UnScaleGUI(rect.bottom - rect.top + 1);
xoffs = UnScaleGUI(rect.left);
yoffs = UnScaleGUI(rect.top);
}
/**
@ -325,7 +334,8 @@ CommandCost CmdBuildAircraft(TileIndex tile, DoCommandFlag flags, const Engine *
v->date_of_last_service = _date;
v->build_year = u->build_year = _cur_year;
v->cur_image = u->cur_image = SPR_IMG_QUERY;
v->sprite_seq.Set(SPR_IMG_QUERY);
u->sprite_seq.Set(SPR_IMG_QUERY);
v->random_bits = VehicleRandomBits();
u->random_bits = VehicleRandomBits();
@ -357,7 +367,7 @@ CommandCost CmdBuildAircraft(TileIndex tile, DoCommandFlag flags, const Engine *
w->vehstatus = VS_HIDDEN | VS_UNCLICKABLE;
w->spritenum = 0xFF;
w->subtype = AIR_ROTOR;
w->cur_image = SPR_ROTOR_STOPPED;
w->sprite_seq.Set(SPR_ROTOR_STOPPED);
w->random_bits = VehicleRandomBits();
/* Use rotor's air.state to store the rotor animation frame */
w->state = HRS_ROTOR_STOPPED;
@ -476,21 +486,21 @@ static void HelicopterTickHandler(Aircraft *v)
int tick = ++u->tick_counter;
int spd = u->cur_speed >> 4;
SpriteID img;
VehicleSpriteSeq seq;
if (spd == 0) {
u->state = HRS_ROTOR_STOPPED;
img = GetRotorImage(v, EIT_ON_MAP);
if (u->cur_image == img) return;
GetRotorImage(v, EIT_ON_MAP, &seq);
if (u->sprite_seq == seq) return;
} else if (tick >= spd) {
u->tick_counter = 0;
u->state++;
if (u->state > HRS_ROTOR_MOVING_3) u->state = HRS_ROTOR_MOVING_1;
img = GetRotorImage(v, EIT_ON_MAP);
GetRotorImage(v, EIT_ON_MAP, &seq);
} else {
return;
}
u->cur_image = img;
u->sprite_seq = seq;
u->UpdatePositionAndViewport();
}
@ -510,7 +520,9 @@ void SetAircraftPosition(Aircraft *v, int x, int y, int z)
v->UpdatePosition();
v->UpdateViewport(true, false);
if (v->subtype == AIR_HELICOPTER) v->Next()->Next()->cur_image = GetRotorImage(v, EIT_ON_MAP);
if (v->subtype == AIR_HELICOPTER) {
GetRotorImage(v, EIT_ON_MAP, &v->Next()->Next()->sprite_seq);
}
Aircraft *u = v->Next();
@ -521,7 +533,7 @@ void SetAircraftPosition(Aircraft *v, int x, int y, int z)
safe_y = Clamp(u->y_pos, 0, MapMaxY() * TILE_SIZE);
u->z_pos = GetSlopePixelZ(safe_x, safe_y);
u->cur_image = v->cur_image;
u->sprite_seq.CopyWithoutPalette(v->sprite_seq); // the shadow is never coloured
u->UpdatePositionAndViewport();
@ -817,7 +829,7 @@ static byte AircraftGetEntryPoint(const Aircraft *v, const AirportFTAClass *apc,
/* We are northwest or southeast of the airport */
dir = delta_y < 0 ? DIAGDIR_NW : DIAGDIR_SE;
}
dir = ChangeDiagDir(dir, (DiagDirDiff)ReverseDiagDir(DirToDiagDir(rotation)));
dir = ChangeDiagDir(dir, DiagDirDifference(DIAGDIR_NE, DirToDiagDir(rotation)));
return apc->entry_points[dir];
}
@ -1291,7 +1303,9 @@ void Aircraft::MarkDirty()
{
this->colourmap = PAL_NONE;
this->UpdateViewport(true, false);
if (this->subtype == AIR_HELICOPTER) this->Next()->Next()->cur_image = GetRotorImage(this, EIT_ON_MAP);
if (this->subtype == AIR_HELICOPTER) {
GetRotorImage(this, EIT_ON_MAP, &this->Next()->Next()->sprite_seq);
}
}

@ -83,11 +83,14 @@ void DrawAircraftImage(const Vehicle *v, int left, int right, int y, VehicleID s
{
bool rtl = _current_text_dir == TD_RTL;
SpriteID sprite = v->GetImage(rtl ? DIR_E : DIR_W, image_type);
const Sprite *real_sprite = GetSprite(sprite, ST_NORMAL);
VehicleSpriteSeq seq;
v->GetImage(rtl ? DIR_E : DIR_W, image_type, &seq);
int width = UnScaleGUI(real_sprite->width);
int x_offs = UnScaleGUI(real_sprite->x_offs);
Rect rect;
seq.GetBounds(&rect);
int width = UnScaleGUI(rect.right - rect.left + 1);
int x_offs = UnScaleGUI(rect.left);
int x = rtl ? right - width - x_offs : left - x_offs;
bool helicopter = v->subtype == AIR_HELICOPTER;
@ -95,17 +98,18 @@ void DrawAircraftImage(const Vehicle *v, int left, int right, int y, VehicleID s
int heli_offs = 0;
PaletteID pal = (v->vehstatus & VS_CRASHED) ? PALETTE_CRASH : GetVehiclePalette(v);
DrawSprite(sprite, pal, x, y + y_offs);
seq.Draw(x, y + y_offs, pal, (v->vehstatus & VS_CRASHED) != 0);
if (helicopter) {
const Aircraft *a = Aircraft::From(v);
SpriteID rotor_sprite = GetCustomRotorSprite(a, true, image_type);
if (rotor_sprite == 0) rotor_sprite = SPR_ROTOR_STOPPED;
VehicleSpriteSeq rotor_seq;
GetCustomRotorSprite(a, true, image_type, &rotor_seq);
if (!rotor_seq.IsValid()) rotor_seq.Set(SPR_ROTOR_STOPPED);
heli_offs = ScaleGUITrad(5);
DrawSprite(rotor_sprite, PAL_NONE, x, y + y_offs - heli_offs);
rotor_seq.Draw(x, y + y_offs - heli_offs, PAL_NONE, false);
}
if (v->index == selection) {
x += x_offs;
y += UnScaleGUI(real_sprite->y_offs) + y_offs - heli_offs;
DrawFrameRect(x - 1, y - 1, x + width + 1, y + UnScaleGUI(real_sprite->height) + heli_offs + 1, COLOUR_WHITE, FR_BORDERONLY);
y += UnScaleGUI(rect.top) + y_offs - heli_offs;
DrawFrameRect(x - 1, y - 1, x + width + 1, y + UnScaleGUI(rect.bottom - rect.top + 1) + heli_offs + 1, COLOUR_WHITE, FR_BORDERONLY);
}
}

@ -433,6 +433,7 @@ void AddArticulatedParts(Vehicle *first)
v->x_pos = first->x_pos;
v->y_pos = first->y_pos;
v->z_pos = first->z_pos;
v->date_of_last_service = first->date_of_last_service;
v->build_year = first->build_year;
v->vehstatus = first->vehstatus & ~VS_STOPPED;
@ -440,7 +441,7 @@ void AddArticulatedParts(Vehicle *first)
v->max_age = 0;
v->engine_type = engine_type;
v->value = 0;
v->cur_image = SPR_IMG_QUERY;
v->sprite_seq.Set(SPR_IMG_QUERY);
v->random_bits = VehicleRandomBits();
if (flip_image) v->spritenum++;

@ -87,7 +87,7 @@ class ReplaceVehicleWindow : public Window {
byte sort_criteria; ///< Criteria of sorting vehicles.
bool descending_sort_order; ///< Order of sorting vehicles.
bool show_hidden_engines; ///< Whether to show the hidden engines.
RailType sel_railtype; ///< Type of rail tracks selected.
RailType sel_railtype; ///< Type of rail tracks selected. #INVALID_RAILTYPE to show all.
Scrollbar *vscroll[2];
/**
@ -104,7 +104,7 @@ class ReplaceVehicleWindow : public Window {
/* Ensure that the wagon/engine selection fits the engine. */
if ((rvi->railveh_type == RAILVEH_WAGON) == show_engines) return false;
if (draw_left && show_engines) {
if (draw_left && this->sel_railtype != INVALID_RAILTYPE) {
/* Ensure that the railtype is specific to the selected one */
if (rvi->railtype != this->sel_railtype) return false;
}
@ -211,24 +211,7 @@ class ReplaceVehicleWindow : public Window {
public:
ReplaceVehicleWindow(WindowDesc *desc, VehicleType vehicletype, GroupID id_g) : Window(desc)
{
if (vehicletype == VEH_TRAIN) {
/* For rail vehicles find the most used vehicle type, which is usually
* better than 'just' the first/previous vehicle type. */
uint type_count[RAILTYPE_END];
memset(type_count, 0, sizeof(type_count));
const Engine *e;
FOR_ALL_ENGINES_OF_TYPE(e, VEH_TRAIN) {
if (e->u.rail.railveh_type == RAILVEH_WAGON) continue;
type_count[e->u.rail.railtype] += GetGroupNumEngines(_local_company, id_g, e->index);
}
this->sel_railtype = RAILTYPE_BEGIN;
for (RailType rt = RAILTYPE_BEGIN; rt < RAILTYPE_END; rt++) {
if (type_count[this->sel_railtype] < type_count[rt]) this->sel_railtype = rt;
}
}
this->sel_railtype = INVALID_RAILTYPE;
this->replace_engines = true; // start with locomotives (all other vehicles will not read this bool)
this->engines[0].ForceRebuild();
this->engines[1].ForceRebuild();
@ -288,12 +271,9 @@ public:
break;
}
case WID_RV_TRAIN_ENGINEWAGON_TOGGLE: {
StringID str = this->GetWidget<NWidgetCore>(widget)->widget_data;
SetDParam(0, STR_REPLACE_ENGINES);
Dimension d = GetStringBoundingBox(str);
SetDParam(0, STR_REPLACE_WAGONS);
d = maxdim(d, GetStringBoundingBox(str));
case WID_RV_TRAIN_ENGINEWAGON_DROPDOWN: {
Dimension d = GetStringBoundingBox(STR_REPLACE_ENGINES);
d = maxdim(d, GetStringBoundingBox(STR_REPLACE_WAGONS));
d.width += padding.width;
d.height += padding.height;
*size = maxdim(*size, d);
@ -367,7 +347,7 @@ public:
break;
}
case WID_RV_TRAIN_ENGINEWAGON_TOGGLE:
case WID_RV_TRAIN_ENGINEWAGON_DROPDOWN:
SetDParam(0, this->replace_engines ? STR_REPLACE_ENGINES : STR_REPLACE_WAGONS);
break;
}
@ -432,12 +412,8 @@ public:
this->SetWidgetDisabledState(WID_RV_STOP_REPLACE, this->sel_engine[0] == INVALID_ENGINE || !EngineHasReplacementForCompany(c, this->sel_engine[0], this->sel_group));
if (this->window_number == VEH_TRAIN) {
/* sets the colour of that art thing */
this->GetWidget<NWidgetCore>(WID_RV_TRAIN_FLUFF_LEFT)->colour = _company_colours[_local_company];
this->GetWidget<NWidgetCore>(WID_RV_TRAIN_FLUFF_RIGHT)->colour = _company_colours[_local_company];
/* Show the selected railtype in the pulldown menu */
this->GetWidget<NWidgetCore>(WID_RV_TRAIN_RAILTYPE_DROPDOWN)->widget_data = GetRailTypeInfo(sel_railtype)->strings.replace_text;
this->GetWidget<NWidgetCore>(WID_RV_TRAIN_RAILTYPE_DROPDOWN)->widget_data = sel_railtype == INVALID_RAILTYPE ? STR_REPLACE_ALL_RAILTYPE : GetRailTypeInfo(sel_railtype)->strings.replace_text;
}
this->DrawWidgets();
@ -483,15 +459,16 @@ public:
DisplayVehicleSortDropDown(this, static_cast<VehicleType>(this->window_number), this->sort_criteria, WID_RV_SORT_DROPDOWN);
break;
case WID_RV_TRAIN_ENGINEWAGON_TOGGLE:
this->replace_engines = !(this->replace_engines);
this->engines[0].ForceRebuild();
this->reset_sel_engine = true;
this->SetDirty();
case WID_RV_TRAIN_ENGINEWAGON_DROPDOWN: {
DropDownList *list = new DropDownList();
*list->Append() = new DropDownListStringItem(STR_REPLACE_ENGINES, 1, false);
*list->Append() = new DropDownListStringItem(STR_REPLACE_WAGONS, 0, false);
ShowDropDownList(this, list, this->replace_engines ? 1 : 0, WID_RV_TRAIN_ENGINEWAGON_DROPDOWN);
break;
}
case WID_RV_TRAIN_RAILTYPE_DROPDOWN: // Railtype selection dropdown menu
ShowDropDownList(this, GetRailTypeDropDownList(true), sel_railtype, WID_RV_TRAIN_RAILTYPE_DROPDOWN);
ShowDropDownList(this, GetRailTypeDropDownList(true, true), sel_railtype, WID_RV_TRAIN_RAILTYPE_DROPDOWN);
break;
case WID_RV_TRAIN_WAGONREMOVE_TOGGLE: // toggle renew_keep_length
@ -566,6 +543,14 @@ public:
break;
}
case WID_RV_TRAIN_ENGINEWAGON_DROPDOWN: {
this->replace_engines = index != 0;
this->engines[0].ForceRebuild();
this->reset_sel_engine = true;
this->SetDirty();
break;
}
case WID_RV_START_REPLACE:
this->ReplaceClick_StartReplace(index != 0);
break;
@ -611,7 +596,13 @@ static const NWidgetPart _nested_replace_rail_vehicle_widgets[] = {
EndContainer(),
EndContainer(),
NWidget(NWID_HORIZONTAL, NC_EQUALSIZE),
NWidget(WWT_PANEL, COLOUR_GREY), SetResize(1, 0), EndContainer(),
NWidget(NWID_VERTICAL),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_RV_TRAIN_RAILTYPE_DROPDOWN), SetMinimalSize(136, 12), SetDataTip(0x0, STR_REPLACE_HELP_RAILTYPE), SetFill(1, 0), SetResize(1, 0),
NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_RV_TRAIN_ENGINEWAGON_DROPDOWN), SetDataTip(STR_BLACK_STRING, STR_REPLACE_ENGINE_WAGON_SELECT_HELP),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY), SetResize(1, 0), EndContainer(),
EndContainer(),
NWidget(NWID_VERTICAL),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_RV_SORT_ASCENDING_DESCENDING), SetDataTip(STR_BUTTON_SORT_BY, STR_TOOLTIP_SORT_ORDER), SetFill(1, 1),
@ -631,20 +622,16 @@ static const NWidgetPart _nested_replace_rail_vehicle_widgets[] = {
EndContainer(),
NWidget(NWID_HORIZONTAL, NC_EQUALSIZE),
NWidget(WWT_PANEL, COLOUR_GREY, WID_RV_LEFT_DETAILS), SetMinimalSize(240, 122), SetResize(1, 0), EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, WID_RV_RIGHT_DETAILS), SetMinimalSize(240, 122), SetResize(1, 0), EndContainer(),
NWidget(NWID_VERTICAL),
NWidget(WWT_PANEL, COLOUR_GREY, WID_RV_RIGHT_DETAILS), SetMinimalSize(240, 122), SetResize(1, 0), EndContainer(),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_RV_TRAIN_WAGONREMOVE_TOGGLE), SetMinimalSize(138, 12), SetDataTip(STR_REPLACE_REMOVE_WAGON, STR_REPLACE_REMOVE_WAGON_HELP), SetFill(1, 0), SetResize(1, 0),
EndContainer(),
EndContainer(),
NWidget(NWID_HORIZONTAL),
NWidget(NWID_PUSHBUTTON_DROPDOWN, COLOUR_GREY, WID_RV_START_REPLACE), SetMinimalSize(139, 12), SetDataTip(STR_REPLACE_VEHICLES_START, STR_REPLACE_HELP_START_BUTTON),
NWidget(WWT_PANEL, COLOUR_GREY, WID_RV_INFO_TAB), SetMinimalSize(167, 12), SetDataTip(0x0, STR_REPLACE_HELP_REPLACE_INFO_TAB), SetResize(1, 0),
EndContainer(),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_RV_STOP_REPLACE), SetMinimalSize(150, 12), SetDataTip(STR_REPLACE_VEHICLES_STOP, STR_REPLACE_HELP_STOP_BUTTON),
EndContainer(),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_RV_TRAIN_ENGINEWAGON_TOGGLE), SetMinimalSize(139, 12), SetDataTip(STR_REPLACE_ENGINE_WAGON_SELECT, STR_REPLACE_ENGINE_WAGON_SELECT_HELP),
NWidget(WWT_PANEL, COLOUR_GREY, WID_RV_TRAIN_FLUFF_LEFT), SetMinimalSize(15, 12), EndContainer(),
NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_RV_TRAIN_RAILTYPE_DROPDOWN), SetMinimalSize(136, 12), SetDataTip(0x0, STR_REPLACE_HELP_RAILTYPE), SetResize(1, 0),
NWidget(WWT_PANEL, COLOUR_GREY, WID_RV_TRAIN_FLUFF_RIGHT), SetMinimalSize(16, 12), EndContainer(),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_RV_TRAIN_WAGONREMOVE_TOGGLE), SetMinimalSize(138, 12), SetDataTip(STR_REPLACE_REMOVE_WAGON, STR_REPLACE_REMOVE_WAGON_HELP),
NWidget(WWT_RESIZEBOX, COLOUR_GREY),
EndContainer(),
};

@ -20,6 +20,11 @@
/** Instantiation of the 32bpp with animation blitter factory. */
static FBlitter_32bppAnim iFBlitter_32bppAnim;
Blitter_32bppAnim::~Blitter_32bppAnim()
{
free(this->anim_buf);
}
template <BlitterMode mode>
inline void Blitter_32bppAnim::Draw(const Blitter::BlitterParams *bp, ZoomLevel zoom)
{

@ -29,6 +29,8 @@ public:
anim_buf_height(0)
{}
~Blitter_32bppAnim();
/* virtual */ void Draw(Blitter::BlitterParams *bp, BlitterMode mode, ZoomLevel zoom);
/* virtual */ void DrawColourMappingRect(void *dst, int width, int height, PaletteID pal);
/* virtual */ void SetPixel(void *video, int x, int y, uint8 colour);

@ -56,7 +56,7 @@ void DrawHillyLandTile(const TileInfo *ti)
if (ti->tileh != SLOPE_FLAT) {
DrawGroundSprite(SPR_FLAT_ROUGH_LAND + SlopeToSpriteOffset(ti->tileh), PAL_NONE);
} else {
DrawGroundSprite(_landscape_clear_sprites_rough[GB(ti->x ^ ti->y, 4, 3)], PAL_NONE);
DrawGroundSprite(_landscape_clear_sprites_rough[GB(TileHash(ti->x, ti->y), 0, 3)], PAL_NONE);
}
}

@ -81,7 +81,7 @@ CommandCallback CcBuildBridge;
/* dock_gui.cpp */
CommandCallback CcBuildDocks;
CommandCallback CcBuildCanal;
CommandCallback CcPlaySound_SPLAT_WATER;
/* depot_gui.cpp */
CommandCallback CcCloneVehicle;
@ -97,19 +97,19 @@ CommandCallback CcAddVehicleNewGroup;
CommandCallback CcBuildIndustry;
/* main_gui.cpp */
CommandCallback CcPlaySound10;
CommandCallback CcPlaySound_EXPLOSION;
CommandCallback CcPlaceSign;
CommandCallback CcTerraform;
CommandCallback CcGiveMoney;
/* rail_gui.cpp */
CommandCallback CcPlaySound1E;
CommandCallback CcPlaySound_SPLAT_RAIL;
CommandCallback CcRailDepot;
CommandCallback CcStation;
CommandCallback CcBuildRailTunnel;
/* road_gui.cpp */
CommandCallback CcPlaySound1D;
CommandCallback CcPlaySound_SPLAT_OTHER;
CommandCallback CcBuildRoadTunnel;
CommandCallback CcRoadDepot;
CommandCallback CcRoadStop;

@ -1764,7 +1764,8 @@ struct CompanyInfrastructureWindow : Window
if (this->railtypes != RAILTYPES_NONE) {
/* Draw name of each valid railtype. */
for (RailType rt = RAILTYPE_BEGIN; rt != RAILTYPE_END; rt++) {
RailType rt;
FOR_ALL_SORTED_RAILTYPES(rt) {
if (HasBit(this->railtypes, rt)) {
SetDParam(0, GetRailTypeInfo(rt)->strings.name);
DrawString(r.left + offs_left, r.right - offs_right, y += FONT_HEIGHT_NORMAL, STR_WHITE_STRING);
@ -1781,7 +1782,8 @@ struct CompanyInfrastructureWindow : Window
case WID_CI_RAIL_COUNT: {
/* Draw infrastructure count for each valid railtype. */
uint32 rail_total = c->infrastructure.GetRailTotal();
for (RailType rt = RAILTYPE_BEGIN; rt != RAILTYPE_END; rt++) {
RailType rt;
FOR_ALL_SORTED_RAILTYPES(rt) {
if (HasBit(this->railtypes, rt)) {
this->DrawCountLine(r, y, c->infrastructure.rail[rt], RailMaintenanceCost(rt, c->infrastructure.rail[rt], rail_total));
}

@ -45,6 +45,38 @@
/* scriptfile handling */
static bool _script_running; ///< Script is running (used to abort execution when #ConReturn is encountered).
/** File list storage for the console, for caching the last 'ls' command. */
class ConsoleFileList : public FileList {
public:
ConsoleFileList() : FileList()
{
this->file_list_valid = false;
}
/** Declare the file storage cache as being invalid, also clears all stored files. */
void InvalidateFileList()
{
this->Clear();
this->file_list_valid = false;
}
/**
* (Re-)validate the file storage cache. Only makes a change if the storage was invalid, or if \a force_reload.
* @param Always reload the file storage cache.
*/
void ValidateFileList(bool force_reload = false)
{
if (force_reload || !this->file_list_valid) {
this->BuildFileList(FT_SAVEGAME, SLO_LOAD);
this->file_list_valid = true;
}
}
bool file_list_valid; ///< If set, the file list is valid.
};
static ConsoleFileList _console_file_list; ///< File storage cache for the console.
/* console command defines */
#define DEF_CONSOLE_CMD(function) static bool function(byte argc, char *argv[])
#define DEF_CONSOLE_HOOK(function) static ConsoleHookResult function(bool echo)
@ -286,7 +318,7 @@ DEF_CONSOLE_CMD(ConSave)
char *filename = str_fmt("%s.sav", argv[1]);
IConsolePrint(CC_DEFAULT, "Saving map...");
if (SaveOrLoad(filename, SL_SAVE, SAVE_DIR) != SL_OK) {
if (SaveOrLoad(filename, SLO_SAVE, DFT_GAME_FILE, SAVE_DIR) != SL_OK) {
IConsolePrint(CC_ERROR, "Saving map failed");
} else {
IConsolePrintF(CC_DEFAULT, "Map successfully saved to %s", filename);
@ -315,42 +347,6 @@ DEF_CONSOLE_CMD(ConSaveConfig)
return true;
}
/**
* Get savegame file informations.
* @param file The savegame filename to return information about. Can be the actual name
* or a numbered entry into the filename list.
* @return FiosItem The information on the file.
*/
static const FiosItem *GetFiosItem(const char *file)
{
_saveload_mode = SLD_LOAD_GAME;
BuildFileList();
for (const FiosItem *item = _fios_items.Begin(); item != _fios_items.End(); item++) {
if (strcmp(file, item->name) == 0) return item;
if (strcmp(file, item->title) == 0) return item;
}
/* If no name matches, try to parse it as number */
char *endptr;
int i = strtol(file, &endptr, 10);
if (file == endptr || *endptr != '\0') i = -1;
if (IsInsideMM(i, 0, _fios_items.Length())) return _fios_items.Get(i);
/* As a last effort assume it is an OpenTTD savegame and
* that the ".sav" part was not given. */
char long_file[MAX_PATH];
seprintf(long_file, lastof(long_file), "%s.sav", file);
for (const FiosItem *item = _fios_items.Begin(); item != _fios_items.End(); item++) {
if (strcmp(long_file, item->name) == 0) return item;
if (strcmp(long_file, item->title) == 0) return item;
}
return NULL;
}
DEF_CONSOLE_CMD(ConLoad)
{
if (argc == 0) {
@ -361,24 +357,21 @@ DEF_CONSOLE_CMD(ConLoad)
if (argc != 2) return false;
const char *file = argv[1];
const FiosItem *item = GetFiosItem(file);
_console_file_list.ValidateFileList();
const FiosItem *item = _console_file_list.FindItem(file);
if (item != NULL) {
switch (item->type) {
case FIOS_TYPE_FILE: case FIOS_TYPE_OLDFILE: {
_switch_mode = SM_LOAD_GAME;
SetFiosType(item->type);
strecpy(_file_to_saveload.name, FiosBrowseTo(item), lastof(_file_to_saveload.name));
strecpy(_file_to_saveload.title, item->title, lastof(_file_to_saveload.title));
break;
}
default: IConsolePrintF(CC_ERROR, "%s: Not a savegame.", file);
if (GetAbstractFileType(item->type) == FT_SAVEGAME) {
_switch_mode = SM_LOAD_GAME;
_file_to_saveload.SetMode(item->type);
_file_to_saveload.SetName(FiosBrowseTo(item));
_file_to_saveload.SetTitle(item->title);
} else {
IConsolePrintF(CC_ERROR, "%s: Not a savegame.", file);
}
} else {
IConsolePrintF(CC_ERROR, "%s: No such file or directory.", file);
}
FiosFreeSavegameList();
return true;
}
@ -393,7 +386,8 @@ DEF_CONSOLE_CMD(ConRemove)
if (argc != 2) return false;
const char *file = argv[1];
const FiosItem *item = GetFiosItem(file);
_console_file_list.ValidateFileList();
const FiosItem *item = _console_file_list.FindItem(file);
if (item != NULL) {
if (!FiosDelete(item->name)) {
IConsolePrintF(CC_ERROR, "%s: Failed to delete file", file);
@ -402,7 +396,7 @@ DEF_CONSOLE_CMD(ConRemove)
IConsolePrintF(CC_ERROR, "%s: No such file or directory.", file);
}
FiosFreeSavegameList();
_console_file_list.InvalidateFileList();
return true;
}
@ -415,13 +409,11 @@ DEF_CONSOLE_CMD(ConListFiles)
return true;
}
BuildFileList();
for (uint i = 0; i < _fios_items.Length(); i++) {
IConsolePrintF(CC_DEFAULT, "%d) %s", i, _fios_items[i].title);
_console_file_list.ValidateFileList(true);
for (uint i = 0; i < _console_file_list.Length(); i++) {
IConsolePrintF(CC_DEFAULT, "%d) %s", i, _console_file_list[i].title);
}
FiosFreeSavegameList();
return true;
}
@ -436,7 +428,8 @@ DEF_CONSOLE_CMD(ConChangeDirectory)
if (argc != 2) return false;
const char *file = argv[1];
const FiosItem *item = GetFiosItem(file);
_console_file_list.ValidateFileList(true);
const FiosItem *item = _console_file_list.FindItem(file);
if (item != NULL) {
switch (item->type) {
case FIOS_TYPE_DIR: case FIOS_TYPE_DRIVE: case FIOS_TYPE_PARENT:
@ -448,7 +441,7 @@ DEF_CONSOLE_CMD(ConChangeDirectory)
IConsolePrintF(CC_ERROR, "%s: No such file or directory.", file);
}
FiosFreeSavegameList();
_console_file_list.InvalidateFileList();
return true;
}
@ -462,8 +455,8 @@ DEF_CONSOLE_CMD(ConPrintWorkingDirectory)
}
/* XXX - Workaround for broken file handling */
FiosGetSavegameList(SLD_LOAD_GAME);
FiosFreeSavegameList();
_console_file_list.ValidateFileList(true);
_console_file_list.InvalidateFileList();
FiosGetDescText(&path, NULL);
IConsolePrint(CC_DEFAULT, path);

@ -0,0 +1,35 @@
/* $Id$ */
/*
* This file is part of OpenTTD.
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
*/
/** @file container_func.hpp Functions related to use of containers. */
template <typename C, typename UP> unsigned int container_unordered_remove_if (C &container, UP predicate) {
unsigned int removecount = 0;
for (auto it = container.begin(); it != container.end();) {
if (predicate(*it)) {
removecount++;
if (std::next(it) != container.end()) {
*it = std::move(container.back());
container.pop_back();
} else {
container.pop_back();
break;
}
} else {
++it;
}
}
return removecount;
}
template <typename C, typename V> unsigned int container_unordered_remove(C &container, const V &value) {
return container_unordered_remove_if (container, [&](const typename C::value_type &v) {
return v == value;
});
}

@ -15,7 +15,7 @@
#include <map>
#include <list>
template<typename Tkey, typename Tvalue, typename Tcompare>
template<typename Tkey, typename Tvalue, typename Tcontainer, typename Tcompare>
class MultiMap;
/**
@ -23,14 +23,15 @@ class MultiMap;
* @tparam Tmap_iter Iterator type for the map in the MultiMap.
* @tparam Tlist_iter Iterator type for the lists in the MultiMap.
* @tparam Tkey Key type of the MultiMap.
* @tparam Tvalue Value type of the MultMap.
* @tparam Tvalue Value type of the MultiMap.
* @tparam Tcontainer Container type for the values of the MultiMap.
* @tparam Tcompare Comparator type for keys of the MultiMap.
*/
template<class Tmap_iter, class Tlist_iter, class Tkey, class Tvalue, class Tcompare>
template<class Tmap_iter, class Tlist_iter, class Tkey, class Tvalue, class Tcontainer, class Tcompare>
class MultiMapIterator {
protected:
friend class MultiMap<Tkey, Tvalue, Tcompare>;
typedef MultiMapIterator<Tmap_iter, Tlist_iter, Tkey, Tvalue, Tcompare> Self;
friend class MultiMap<Tkey, Tvalue, Tcontainer, Tcompare>;
typedef MultiMapIterator<Tmap_iter, Tlist_iter, Tkey, Tvalue, Tcontainer, Tcompare> Self;
Tlist_iter list_iter; ///< Iterator pointing to current position in the current list of items with equal keys.
Tmap_iter map_iter; ///< Iterator pointing to the position of the current list of items with equal keys in the map.
@ -201,8 +202,8 @@ public:
* @param iter2 Second iterator to compare.
* @return If iter1 and iter2 are equal.
*/
template<class Tmap_iter1, class Tlist_iter1, class Tmap_iter2, class Tlist_iter2, class Tkey, class Tvalue1, class Tvalue2, class Tcompare>
bool operator==(const MultiMapIterator<Tmap_iter1, Tlist_iter1, Tkey, Tvalue1, Tcompare> &iter1, const MultiMapIterator<Tmap_iter2, Tlist_iter2, Tkey, Tvalue2, Tcompare> &iter2)
template<class Tmap_iter1, class Tlist_iter1, class Tmap_iter2, class Tlist_iter2, class Tkey, class Tvalue1, class Tvalue2, class Tcontainer1, class Tcontainer2, class Tcompare>
bool operator==(const MultiMapIterator<Tmap_iter1, Tlist_iter1, Tkey, Tvalue1, Tcontainer1, Tcompare> &iter1, const MultiMapIterator<Tmap_iter2, Tlist_iter2, Tkey, Tvalue2, Tcontainer2, Tcompare> &iter2)
{
if (iter1.GetMapIter() != iter2.GetMapIter()) return false;
if (!iter1.ListValid()) return !iter2.ListValid();
@ -218,8 +219,8 @@ bool operator==(const MultiMapIterator<Tmap_iter1, Tlist_iter1, Tkey, Tvalue1, T
* @param iter2 Second iterator to compare.
* @return If iter1 and iter2 are not equal.
*/
template<class Tmap_iter1, class Tlist_iter1, class Tmap_iter2, class Tlist_iter2, class Tkey, class Tvalue1, class Tvalue2, class Tcompare>
bool operator!=(const MultiMapIterator<Tmap_iter1, Tlist_iter1, Tkey, Tvalue1, Tcompare> &iter1, const MultiMapIterator<Tmap_iter2, Tlist_iter2, Tkey, Tvalue2, Tcompare> &iter2)
template<class Tmap_iter1, class Tlist_iter1, class Tmap_iter2, class Tlist_iter2, class Tkey, class Tvalue1, class Tvalue2, class Tcontainer1, class Tcontainer2, class Tcompare>
bool operator!=(const MultiMapIterator<Tmap_iter1, Tlist_iter1, Tkey, Tvalue1, Tcontainer1, Tcompare> &iter1, const MultiMapIterator<Tmap_iter2, Tlist_iter2, Tkey, Tvalue2, Tcontainer2, Tcompare> &iter2)
{
return !(iter1 == iter2);
}
@ -232,8 +233,8 @@ bool operator!=(const MultiMapIterator<Tmap_iter1, Tlist_iter1, Tkey, Tvalue1, T
* @param iter2 Map iterator.
* @return If iter1 points to the begin of the list pointed to by iter2.
*/
template<class Tmap_iter1, class Tlist_iter1, class Tmap_iter2, class Tkey, class Tvalue, class Tcompare >
bool operator==(const MultiMapIterator<Tmap_iter1, Tlist_iter1, Tkey, Tvalue, Tcompare> &iter1, const Tmap_iter2 &iter2)
template<class Tmap_iter1, class Tlist_iter1, class Tmap_iter2, class Tkey, class Tvalue, class Tcontainer, class Tcompare >
bool operator==(const MultiMapIterator<Tmap_iter1, Tlist_iter1, Tkey, Tvalue, Tcontainer, Tcompare> &iter1, const Tmap_iter2 &iter2)
{
return !iter1.ListValid() && iter1.GetMapIter() == iter2;
}
@ -244,8 +245,8 @@ bool operator==(const MultiMapIterator<Tmap_iter1, Tlist_iter1, Tkey, Tvalue, Tc
* @param iter2 Map iterator.
* @return If iter1 doesn't point to the begin of the list pointed to by iter2.
*/
template<class Tmap_iter1, class Tlist_iter1, class Tmap_iter2, class Tkey, class Tvalue, class Tcompare >
bool operator!=(const MultiMapIterator<Tmap_iter1, Tlist_iter1, Tkey, Tvalue, Tcompare> &iter1, const Tmap_iter2 &iter2)
template<class Tmap_iter1, class Tlist_iter1, class Tmap_iter2, class Tkey, class Tvalue, class Tcontainer, class Tcompare >
bool operator!=(const MultiMapIterator<Tmap_iter1, Tlist_iter1, Tkey, Tvalue, Tcontainer, Tcompare> &iter1, const Tmap_iter2 &iter2)
{
return iter1.ListValid() || iter1.GetMapIter() != iter2;
}
@ -256,8 +257,8 @@ bool operator!=(const MultiMapIterator<Tmap_iter1, Tlist_iter1, Tkey, Tvalue, Tc
* @param iter1 MultiMap iterator.
* @return If iter1 points to the begin of the list pointed to by iter2.
*/
template<class Tmap_iter1, class Tlist_iter1, class Tmap_iter2, class Tkey, class Tvalue, class Tcompare >
bool operator==(const Tmap_iter2 &iter2, const MultiMapIterator<Tmap_iter1, Tlist_iter1, Tkey, Tvalue, Tcompare> &iter1)
template<class Tmap_iter1, class Tlist_iter1, class Tmap_iter2, class Tkey, class Tvalue, class Tcontainer, class Tcompare >
bool operator==(const Tmap_iter2 &iter2, const MultiMapIterator<Tmap_iter1, Tlist_iter1, Tkey, Tvalue, Tcontainer, Tcompare> &iter1)
{
return !iter1.ListValid() && iter1.GetMapIter() == iter2;
}
@ -268,8 +269,8 @@ bool operator==(const Tmap_iter2 &iter2, const MultiMapIterator<Tmap_iter1, Tlis
* @param iter1 MultiMap iterator.
* @return If iter1 doesn't point to the begin of the list pointed to by iter2.
*/
template<class Tmap_iter1, class Tlist_iter1, class Tmap_iter2, class Tkey, class Tvalue, class Tcompare >
bool operator!=(const Tmap_iter2 &iter2, const MultiMapIterator<Tmap_iter1, Tlist_iter1, Tkey, Tvalue, Tcompare> &iter1)
template<class Tmap_iter1, class Tlist_iter1, class Tmap_iter2, class Tkey, class Tvalue, class Tcontainer, class Tcompare >
bool operator!=(const Tmap_iter2 &iter2, const MultiMapIterator<Tmap_iter1, Tlist_iter1, Tkey, Tvalue, Tcontainer, Tcompare> &iter1)
{
return iter1.ListValid() || iter1.GetMapIter() != iter2;
}
@ -282,10 +283,10 @@ bool operator!=(const Tmap_iter2 &iter2, const MultiMapIterator<Tmap_iter1, Tlis
* STL-compatible members are named in STL style, all others are named in OpenTTD
* style.
*/
template<typename Tkey, typename Tvalue, typename Tcompare = std::less<Tkey> >
class MultiMap : public std::map<Tkey, std::list<Tvalue>, Tcompare > {
template<typename Tkey, typename Tvalue, typename Tcontainer = std::list<Tvalue>, typename Tcompare = std::less<Tkey> >
class MultiMap : public std::map<Tkey, Tcontainer, Tcompare > {
public:
typedef typename std::list<Tvalue> List;
typedef Tcontainer List;
typedef typename List::iterator ListIterator;
typedef typename List::const_iterator ConstListIterator;
@ -293,8 +294,8 @@ public:
typedef typename Map::iterator MapIterator;
typedef typename Map::const_iterator ConstMapIterator;
typedef MultiMapIterator<MapIterator, ListIterator, Tkey, Tvalue, Tcompare> iterator;
typedef MultiMapIterator<ConstMapIterator, ConstListIterator, Tkey, const Tvalue, Tcompare> const_iterator;
typedef MultiMapIterator<MapIterator, ListIterator, Tkey, Tvalue, Tcontainer, Tcompare> iterator;
typedef MultiMapIterator<ConstMapIterator, ConstListIterator, Tkey, const Tvalue, Tcontainer, Tcompare> const_iterator;
/**
* Erase the value pointed to by an iterator. The iterator may be invalid afterwards.

@ -256,6 +256,8 @@ public:
/**
* Get the number of items in the list.
*
* @return The number of items in the list.
*/
inline uint Length() const
{

@ -36,6 +36,38 @@
#include <time.h>
#ifdef WITH_ALLEGRO
# include <allegro.h>
#endif /* WITH_ALLEGRO */
#ifdef WITH_FONTCONFIG
# include <fontconfig/fontconfig.h>
#endif /* WITH_FONTCONFIG */
#ifdef WITH_PNG
/* pngconf.h, included by png.h doesn't like something in the
* freetype headers. As such it's not alphabetically sorted. */
# include <png.h>
#endif /* WITH_PNG */
#ifdef WITH_FREETYPE
# include <ft2build.h>
# include FT_FREETYPE_H
#endif /* WITH_FREETYPE */
#if defined(WITH_ICU_LAYOUT) || defined(WITH_ICU_SORT)
# include <unicode/uversion.h>
#endif /* WITH_ICU_SORT || WITH_ICU_LAYOUT */
#ifdef WITH_LZMA
# include <lzma.h>
#endif
#ifdef WITH_LZO
#include <lzo/lzo1x.h>
#endif
#ifdef WITH_SDL
# include "sdl.h"
# include <SDL.h>
#endif /* WITH_SDL */
#ifdef WITH_ZLIB
# include <zlib.h>
#endif
#include "safeguards.h"
/* static */ const char *CrashLog::message = NULL;
@ -180,39 +212,6 @@ char *CrashLog::LogConfiguration(char *buffer, const char *last) const
return buffer;
}
/* Include these here so it's close to where it's actually used. */
#ifdef WITH_ALLEGRO
# include <allegro.h>
#endif /* WITH_ALLEGRO */
#ifdef WITH_FONTCONFIG
# include <fontconfig/fontconfig.h>
#endif /* WITH_FONTCONFIG */
#ifdef WITH_PNG
/* pngconf.h, included by png.h doesn't like something in the
* freetype headers. As such it's not alphabetically sorted. */
# include <png.h>
#endif /* WITH_PNG */
#ifdef WITH_FREETYPE
# include <ft2build.h>
# include FT_FREETYPE_H
#endif /* WITH_FREETYPE */
#if defined(WITH_ICU_LAYOUT) || defined(WITH_ICU_SORT)
# include <unicode/uversion.h>
#endif /* WITH_ICU_SORT || WITH_ICU_LAYOUT */
#ifdef WITH_LZMA
# include <lzma.h>
#endif
#ifdef WITH_LZO
#include <lzo/lzo1x.h>
#endif
#ifdef WITH_SDL
# include "sdl.h"
# include <SDL.h>
#endif /* WITH_SDL */
#ifdef WITH_ZLIB
# include <zlib.h>
#endif
/**
* Writes information (versions) of the used libraries.
* @param buffer The begin where to write at.
@ -389,7 +388,7 @@ bool CrashLog::WriteSavegame(char *filename, const char *filename_last) const
seprintf(filename, filename_last, "%scrash.sav", _personal_dir);
/* Don't do a threaded saveload. */
return SaveOrLoad(filename, SL_SAVE, NO_DIRECTORY, false) == SL_OK;
return SaveOrLoad(filename, SLO_SAVE, DFT_GAME_FILE, NO_DIRECTORY, false) == SL_OK;
} catch (...) {
return false;
}

@ -229,6 +229,7 @@ struct DepotWindow : Window {
VehicleID vehicle_over; ///< Rail vehicle over which another one is dragged, \c INVALID_VEHICLE if none.
VehicleType type;
bool generate_list;
int hovered_widget; ///< Index of the widget being hovered during drag/drop. -1 if no drag is in progress.
VehicleList vehicle_list;
VehicleList wagon_list;
uint unitnumber_digits;
@ -243,6 +244,7 @@ struct DepotWindow : Window {
this->sel = INVALID_VEHICLE;
this->vehicle_over = INVALID_VEHICLE;
this->generate_list = true;
this->hovered_widget = -1;
this->type = type;
this->num_columns = 1; // for non-trains this gets set in FinishInitNested()
this->unitnumber_digits = 2;
@ -503,15 +505,12 @@ struct DepotWindow : Window {
this->sel = INVALID_VEHICLE;
TrainDepotMoveVehicle(v, sel, gdvp.head);
} else if (v != NULL) {
bool rtl = _current_text_dir == TD_RTL;
int image = v->GetImage(rtl ? DIR_E : DIR_W, EIT_IN_DEPOT);
SetObjectToPlaceWnd(image, GetVehiclePalette(v), HT_DRAG, this);
SetObjectToPlaceWnd(SPR_CURSOR_MOUSE, PAL_NONE, HT_DRAG, this);
SetMouseCursorVehicle(v, EIT_IN_DEPOT);
_cursor.vehchain = _ctrl_pressed;
this->sel = v->index;
this->SetDirty();
_cursor.short_vehicle_offset = v->IsGroundVehicle() ? (16 - v->GetGroundVehicleCache()->cached_veh_length * 2) * (rtl ? -1 : 1) : 0;
_cursor.vehchain = _ctrl_pressed;
}
break;
}
@ -661,7 +660,8 @@ struct DepotWindow : Window {
DepotSortList(&this->vehicle_list);
uint new_unitnumber_digits = GetUnitNumberDigits(this->vehicle_list);
if (this->unitnumber_digits != new_unitnumber_digits) {
/* Only increase the size; do not decrease to prevent constant changes */
if (this->unitnumber_digits < new_unitnumber_digits) {
this->unitnumber_digits = new_unitnumber_digits;
this->ReInit();
}
@ -867,11 +867,29 @@ struct DepotWindow : Window {
this->sel = INVALID_VEHICLE;
this->vehicle_over = INVALID_VEHICLE;
this->SetWidgetDirty(WID_D_MATRIX);
if (this->hovered_widget != -1) {
this->SetWidgetLoweredState(this->hovered_widget, false);
this->SetWidgetDirty(this->hovered_widget);
this->hovered_widget = -1;
}
}
virtual void OnMouseDrag(Point pt, int widget)
{
if (this->type != VEH_TRAIN || this->sel == INVALID_VEHICLE) return;
if (this->sel == INVALID_VEHICLE) return;
if (widget != this->hovered_widget) {
if (this->hovered_widget == WID_D_SELL || this->hovered_widget == WID_D_SELL_CHAIN) {
this->SetWidgetLoweredState(this->hovered_widget, false);
this->SetWidgetDirty(this->hovered_widget);
}
this->hovered_widget = widget;
if (this->hovered_widget == WID_D_SELL || this->hovered_widget == WID_D_SELL_CHAIN) {
this->SetWidgetLoweredState(this->hovered_widget, true);
this->SetWidgetDirty(this->hovered_widget);
}
}
if (this->type != VEH_TRAIN) return;
/* A rail vehicle is dragged.. */
if (widget != WID_D_MATRIX) { // ..outside of the depot matrix.
@ -958,7 +976,9 @@ struct DepotWindow : Window {
default:
this->sel = INVALID_VEHICLE;
this->SetDirty();
break;
}
this->hovered_widget = -1;
_cursor.vehchain = false;
}

@ -61,11 +61,11 @@ static inline Direction ReverseDir(Direction d)
/**
* Calculate the difference between to directions
* Calculate the difference between two directions
*
* @param d0 The first direction as the base
* @param d1 The second direction as the offset from the base
* @return The difference how the second directions drifts of the first one.
* @return The difference how the second direction drifts of the first one.
*/
static inline DirDiff DirDifference(Direction d0, Direction d1)
{
@ -79,7 +79,7 @@ static inline DirDiff DirDifference(Direction d0, Direction d1)
/**
* Applies two differences together
*
* This function adds two differences together and return the resulting
* This function adds two differences together and returns the resulting
* difference. So adding two DIRDIFF_REVERSE together results in the
* DIRDIFF_SAME difference.
*
@ -123,6 +123,20 @@ static inline DiagDirection ReverseDiagDir(DiagDirection d)
return (DiagDirection)(2 ^ d);
}
/**
* Calculate the difference between two DiagDirection values
*
* @param d0 The first direction as the base
* @param d1 The second direction as the offset from the base
* @return The difference how the second direction drifts of the first one.
*/
static inline DiagDirDiff DiagDirDifference(DiagDirection d0, DiagDirection d1)
{
assert(IsValidDiagDirection(d0));
assert(IsValidDiagDirection(d1));
/* Cast to uint so compiler can use bitmask. Result can never be negative. */
return (DiagDirDiff)((uint)(d0 - d1) % 4);
}
/**
* Applies a difference on a DiagDirection

@ -112,7 +112,7 @@ void DisasterVehicle::UpdateImage()
{
SpriteID img = this->image_override;
if (img == 0) img = _disaster_images[this->subtype][this->direction];
this->cur_image = img;
this->sprite_seq.Set(img);
}
/**
@ -500,7 +500,8 @@ static bool DisasterTick_Helicopter_Rotors(DisasterVehicle *v)
v->tick_counter++;
if (HasBit(v->tick_counter, 0)) return true;
if (++v->cur_image > SPR_ROTOR_MOVING_3) v->cur_image = SPR_ROTOR_MOVING_1;
SpriteID &cur_image = v->sprite_seq.seq[0].sprite;
if (++cur_image > SPR_ROTOR_MOVING_3) cur_image = SPR_ROTOR_MOVING_1;
v->UpdatePositionAndViewport();

@ -48,7 +48,7 @@ void CcBuildDocks(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p
if (!_settings_client.gui.persistent_buildingtools) ResetObjectToPlace();
}
void CcBuildCanal(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2)
void CcPlaySound_SPLAT_WATER(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2)
{
if (result.Succeeded() && _settings_client.sound.confirm) SndPlayTileFx(SND_02_SPLAT_WATER, tile);
}
@ -235,10 +235,10 @@ struct BuildDocksToolbarWindow : Window {
GUIPlaceProcDragXY(select_proc, start_tile, end_tile);
break;
case DDSP_CREATE_WATER:
DoCommandP(end_tile, start_tile, (_game_mode == GM_EDITOR && _ctrl_pressed) ? WATER_CLASS_SEA : WATER_CLASS_CANAL, CMD_BUILD_CANAL | CMD_MSG(STR_ERROR_CAN_T_BUILD_CANALS), CcBuildCanal);
DoCommandP(end_tile, start_tile, (_game_mode == GM_EDITOR && _ctrl_pressed) ? WATER_CLASS_SEA : WATER_CLASS_CANAL, CMD_BUILD_CANAL | CMD_MSG(STR_ERROR_CAN_T_BUILD_CANALS), CcPlaySound_SPLAT_WATER);
break;
case DDSP_CREATE_RIVER:
DoCommandP(end_tile, start_tile, WATER_CLASS_RIVER, CMD_BUILD_CANAL | CMD_MSG(STR_ERROR_CAN_T_PLACE_RIVERS), CcBuildCanal);
DoCommandP(end_tile, start_tile, WATER_CLASS_RIVER, CMD_BUILD_CANAL | CMD_MSG(STR_ERROR_CAN_T_PLACE_RIVERS), CcPlaySound_SPLAT_WATER);
break;
default: break;
@ -433,7 +433,7 @@ public:
* Never make the window smaller to avoid oscillating if the size change affects the acceptance.
* (This is the case, if making the window bigger moves the mouse into the window.) */
if (top > bottom) {
ResizeWindow(this, 0, top - bottom);
ResizeWindow(this, 0, top - bottom, false);
}
}

@ -1317,7 +1317,8 @@ static uint GetLoadAmount(Vehicle *v)
/* Scale load amount the same as capacity */
if (HasBit(e->info.misc_flags, EF_NO_DEFAULT_CARGO_MULTIPLIER) && !air_mail) load_amount = CeilDiv(load_amount * CargoSpec::Get(v->cargo_type)->multiplier, 0x100);
return load_amount;
/* Zero load amount breaks a lot of things. */
return max(1u, load_amount);
}
/**
@ -1651,6 +1652,7 @@ static void LoadUnloadVehicle(Vehicle *front)
uint amount_unloaded = _settings_game.order.gradual_loading ? min(cargo_count, load_amount) : cargo_count;
bool remaining = false; // Are there cargo entities in this vehicle that can still be unloaded here?
assert(payment != NULL);
payment->SetCargo(v->cargo_type);
if (!HasBit(ge->status, GoodsEntry::GES_ACCEPTANCE) && v->cargo.ActionCount(VehicleCargoList::MTA_DELIVER) > 0) {

@ -22,10 +22,26 @@
#include "safeguards.h"
/**
* Increment the sprite unless it has reached the end of the animation.
* @param v Vehicle to increment sprite of.
* @param last Last sprite of animation.
* @return true if the sprite was incremented, false if the end was reached.
*/
static bool IncrementSprite(EffectVehicle *v, SpriteID last)
{
if (v->sprite_seq.seq[0].sprite != last) {
v->sprite_seq.seq[0].sprite++;
return true;
} else {
return false;
}
}
static void ChimneySmokeInit(EffectVehicle *v)
{
uint32 r = Random();
v->cur_image = SPR_CHIMNEY_SMOKE_0 + GB(r, 0, 3);
v->sprite_seq.Set(SPR_CHIMNEY_SMOKE_0 + GB(r, 0, 3));
v->progress = GB(r, 16, 3);
}
@ -40,10 +56,8 @@ static bool ChimneySmokeTick(EffectVehicle *v)
return false;
}
if (v->cur_image != SPR_CHIMNEY_SMOKE_7) {
v->cur_image++;
} else {
v->cur_image = SPR_CHIMNEY_SMOKE_0;
if (!IncrementSprite(v, SPR_CHIMNEY_SMOKE_7)) {
v->sprite_seq.Set(SPR_CHIMNEY_SMOKE_0);
}
v->progress = 7;
v->UpdatePositionAndViewport();
@ -54,7 +68,7 @@ static bool ChimneySmokeTick(EffectVehicle *v)
static void SteamSmokeInit(EffectVehicle *v)
{
v->cur_image = SPR_STEAM_SMOKE_0;
v->sprite_seq.Set(SPR_STEAM_SMOKE_0);
v->progress = 12;
}
@ -70,9 +84,7 @@ static bool SteamSmokeTick(EffectVehicle *v)
}
if ((v->progress & 0xF) == 4) {
if (v->cur_image != SPR_STEAM_SMOKE_4) {
v->cur_image++;
} else {
if (!IncrementSprite(v, SPR_STEAM_SMOKE_4)) {
delete v;
return false;
}
@ -86,7 +98,7 @@ static bool SteamSmokeTick(EffectVehicle *v)
static void DieselSmokeInit(EffectVehicle *v)
{
v->cur_image = SPR_DIESEL_SMOKE_0;
v->sprite_seq.Set(SPR_DIESEL_SMOKE_0);
v->progress = 0;
}
@ -98,13 +110,11 @@ static bool DieselSmokeTick(EffectVehicle *v)
v->z_pos++;
v->UpdatePositionAndViewport();
} else if ((v->progress & 7) == 1) {
if (v->cur_image != SPR_DIESEL_SMOKE_5) {
v->cur_image++;
v->UpdatePositionAndViewport();
} else {
if (!IncrementSprite(v, SPR_DIESEL_SMOKE_5)) {
delete v;
return false;
}
v->UpdatePositionAndViewport();
}
return true;
@ -112,7 +122,7 @@ static bool DieselSmokeTick(EffectVehicle *v)
static void ElectricSparkInit(EffectVehicle *v)
{
v->cur_image = SPR_ELECTRIC_SPARK_0;
v->sprite_seq.Set(SPR_ELECTRIC_SPARK_0);
v->progress = 1;
}
@ -122,13 +132,12 @@ static bool ElectricSparkTick(EffectVehicle *v)
v->progress++;
} else {
v->progress = 0;
if (v->cur_image != SPR_ELECTRIC_SPARK_5) {
v->cur_image++;
v->UpdatePositionAndViewport();
} else {
if (!IncrementSprite(v, SPR_ELECTRIC_SPARK_5)) {
delete v;
return false;
}
v->UpdatePositionAndViewport();
}
return true;
@ -136,7 +145,7 @@ static bool ElectricSparkTick(EffectVehicle *v)
static void SmokeInit(EffectVehicle *v)
{
v->cur_image = SPR_SMOKE_0;
v->sprite_seq.Set(SPR_SMOKE_0);
v->progress = 12;
}
@ -152,9 +161,7 @@ static bool SmokeTick(EffectVehicle *v)
}
if ((v->progress & 0xF) == 4) {
if (v->cur_image != SPR_SMOKE_4) {
v->cur_image++;
} else {
if (!IncrementSprite(v, SPR_SMOKE_4)) {
delete v;
return false;
}
@ -168,7 +175,7 @@ static bool SmokeTick(EffectVehicle *v)
static void ExplosionLargeInit(EffectVehicle *v)
{
v->cur_image = SPR_EXPLOSION_LARGE_0;
v->sprite_seq.Set(SPR_EXPLOSION_LARGE_0);
v->progress = 0;
}
@ -176,13 +183,11 @@ static bool ExplosionLargeTick(EffectVehicle *v)
{
v->progress++;
if ((v->progress & 3) == 0) {
if (v->cur_image != SPR_EXPLOSION_LARGE_F) {
v->cur_image++;
v->UpdatePositionAndViewport();
} else {
if (!IncrementSprite(v, SPR_EXPLOSION_LARGE_F)) {
delete v;
return false;
}
v->UpdatePositionAndViewport();
}
return true;
@ -190,7 +195,7 @@ static bool ExplosionLargeTick(EffectVehicle *v)
static void BreakdownSmokeInit(EffectVehicle *v)
{
v->cur_image = SPR_BREAKDOWN_SMOKE_0;
v->sprite_seq.Set(SPR_BREAKDOWN_SMOKE_0);
v->progress = 0;
}
@ -198,10 +203,8 @@ static bool BreakdownSmokeTick(EffectVehicle *v)
{
v->progress++;
if ((v->progress & 7) == 0) {
if (v->cur_image != SPR_BREAKDOWN_SMOKE_3) {
v->cur_image++;
} else {
v->cur_image = SPR_BREAKDOWN_SMOKE_0;
if (!IncrementSprite(v, SPR_BREAKDOWN_SMOKE_3)) {
v->sprite_seq.Set(SPR_BREAKDOWN_SMOKE_0);
}
v->UpdatePositionAndViewport();
}
@ -217,7 +220,7 @@ static bool BreakdownSmokeTick(EffectVehicle *v)
static void ExplosionSmallInit(EffectVehicle *v)
{
v->cur_image = SPR_EXPLOSION_SMALL_0;
v->sprite_seq.Set(SPR_EXPLOSION_SMALL_0);
v->progress = 0;
}
@ -225,13 +228,11 @@ static bool ExplosionSmallTick(EffectVehicle *v)
{
v->progress++;
if ((v->progress & 3) == 0) {
if (v->cur_image != SPR_EXPLOSION_SMALL_B) {
v->cur_image++;
v->UpdatePositionAndViewport();
} else {
if (!IncrementSprite(v, SPR_EXPLOSION_SMALL_B)) {
delete v;
return false;
}
v->UpdatePositionAndViewport();
}
return true;
@ -239,7 +240,7 @@ static bool ExplosionSmallTick(EffectVehicle *v)
static void BulldozerInit(EffectVehicle *v)
{
v->cur_image = SPR_BULLDOZER_NE;
v->sprite_seq.Set(SPR_BULLDOZER_NE);
v->progress = 0;
v->animation_state = 0;
v->animation_substate = 0;
@ -290,7 +291,7 @@ static bool BulldozerTick(EffectVehicle *v)
if ((v->progress & 7) == 0) {
const BulldozerMovement *b = &_bulldozer_movement[v->animation_state];
v->cur_image = SPR_BULLDOZER_NE + b->image;
v->sprite_seq.Set(SPR_BULLDOZER_NE + b->image);
v->x_pos += _inc_by_dir[b->direction].x;
v->y_pos += _inc_by_dir[b->direction].y;
@ -312,7 +313,7 @@ static bool BulldozerTick(EffectVehicle *v)
static void BubbleInit(EffectVehicle *v)
{
v->cur_image = SPR_BUBBLE_GENERATE_0;
v->sprite_seq.Set(SPR_BUBBLE_GENERATE_0);
v->spritenum = 0;
v->progress = 0;
}
@ -475,8 +476,8 @@ static bool BubbleTick(EffectVehicle *v)
if ((v->progress & 3) != 0) return true;
if (v->spritenum == 0) {
v->cur_image++;
if (v->cur_image < SPR_BUBBLE_GENERATE_3) {
v->sprite_seq.seq[0].sprite++;
if (v->sprite_seq.seq[0].sprite < SPR_BUBBLE_GENERATE_3) {
v->UpdatePositionAndViewport();
return true;
}
@ -521,7 +522,7 @@ static bool BubbleTick(EffectVehicle *v)
v->x_pos += b->x;
v->y_pos += b->y;
v->z_pos += b->z;
v->cur_image = SPR_BUBBLE_0 + b->image;
v->sprite_seq.Set(SPR_BUBBLE_0 + b->image);
v->UpdatePositionAndViewport();

@ -89,7 +89,7 @@ static TrackBits GetRailTrackBitsUniversal(TileIndex t, byte *override)
{
switch (GetTileType(t)) {
case MP_RAILWAY:
if (!HasCatenary(GetRailType(t))) return TRACK_BIT_NONE;
if (!HasRailCatenary(GetRailType(t))) return TRACK_BIT_NONE;
switch (GetRailTileType(t)) {
case RAIL_TILE_NORMAL: case RAIL_TILE_SIGNALS:
return GetTrackBits(t);
@ -99,7 +99,7 @@ static TrackBits GetRailTrackBitsUniversal(TileIndex t, byte *override)
break;
case MP_TUNNELBRIDGE:
if (!HasCatenary(GetRailType(t))) return TRACK_BIT_NONE;
if (!HasRailCatenary(GetRailType(t))) return TRACK_BIT_NONE;
if (override != NULL && (IsTunnel(t) || GetTunnelBridgeLength(t, GetOtherBridgeEnd(t)) > 0)) {
*override = 1 << GetTunnelBridgeDirection(t);
}
@ -107,12 +107,12 @@ static TrackBits GetRailTrackBitsUniversal(TileIndex t, byte *override)
case MP_ROAD:
if (!IsLevelCrossing(t)) return TRACK_BIT_NONE;
if (!HasCatenary(GetRailType(t))) return TRACK_BIT_NONE;
if (!HasRailCatenary(GetRailType(t))) return TRACK_BIT_NONE;
return GetCrossingRailBits(t);
case MP_STATION:
if (!HasStationRail(t)) return TRACK_BIT_NONE;
if (!HasCatenary(GetRailType(t))) return TRACK_BIT_NONE;
if (!HasRailCatenary(GetRailType(t))) return TRACK_BIT_NONE;
return TrackToTrackBits(GetRailStationTrack(t));
default:
@ -135,7 +135,7 @@ static TrackBits MaskWireBits(TileIndex t, TrackBits tracks)
* axis that still display wires to preserve visual continuity. */
TileIndex next_tile = TileAddByDiagDir(t, d);
RailType rt = GetTileRailType(next_tile);
if (rt == INVALID_RAILTYPE || !HasCatenary(rt) ||
if (rt == INVALID_RAILTYPE || !HasRailCatenary(rt) ||
((TrackStatusToTrackBits(GetTileTrackStatus(next_tile, TRANSPORT_RAIL, 0)) & DiagdirReachesTracks(d)) == TRACK_BIT_NONE &&
(!HasStationTileRail(next_tile) || GetRailStationAxis(next_tile) != DiagDirToAxis(d) || !CanStationTileHaveWires(next_tile)))) {
neighbour_tdb |= DiagdirReachesTrackdirs(ReverseDiagDir(d));
@ -241,7 +241,7 @@ static int GetPCPElevation(TileIndex tile, DiagDirection PCPpos)
*
* @param ti The Tileinfo to draw the tile for
*/
void DrawCatenaryOnTunnel(const TileInfo *ti)
void DrawRailCatenaryOnTunnel(const TileInfo *ti)
{
/* xmin, ymin, xmax + 1, ymax + 1 of BB */
static const int _tunnel_wire_BB[4][4] = {
@ -255,7 +255,7 @@ void DrawCatenaryOnTunnel(const TileInfo *ti)
SpriteID wire_base = GetWireBase(ti->tile);
const SortableSpriteStruct *sss = &CatenarySpriteData_Tunnel[dir];
const SortableSpriteStruct *sss = &RailCatenarySpriteData_Tunnel[dir];
const int *BB_data = _tunnel_wire_BB[dir];
AddSortableSpriteToDraw(
wire_base + sss->image_offset, PAL_NONE, ti->x + sss->x_offset, ti->y + sss->y_offset,
@ -270,7 +270,7 @@ void DrawCatenaryOnTunnel(const TileInfo *ti)
* Draws wires and, if required, pylons on a given tile
* @param ti The Tileinfo to draw the tile for
*/
static void DrawCatenaryRailway(const TileInfo *ti)
static void DrawRailCatenaryRailway(const TileInfo *ti)
{
/* Pylons are placed on a tile edge, so we need to take into account
* the track configuration of 2 adjacent tiles. trackconfig[0] stores the
@ -379,7 +379,7 @@ static void DrawCatenaryRailway(const TileInfo *ti)
if (IsTileType(neighbour, MP_STATION) || IsTileType(neighbour, MP_ROAD)) tileh[TS_NEIGHBOUR] = SLOPE_FLAT;
/* Read the foundations if they are present, and adjust the tileh */
if (trackconfig[TS_NEIGHBOUR] != TRACK_BIT_NONE && IsTileType(neighbour, MP_RAILWAY) && HasCatenary(GetRailType(neighbour))) foundation = GetRailFoundation(tileh[TS_NEIGHBOUR], trackconfig[TS_NEIGHBOUR]);
if (trackconfig[TS_NEIGHBOUR] != TRACK_BIT_NONE && IsTileType(neighbour, MP_RAILWAY) && HasRailCatenary(GetRailType(neighbour))) foundation = GetRailFoundation(tileh[TS_NEIGHBOUR], trackconfig[TS_NEIGHBOUR]);
if (IsBridgeTile(neighbour)) {
foundation = GetBridgeFoundation(tileh[TS_NEIGHBOUR], DiagDirToAxis(GetTunnelBridgeDirection(neighbour)));
}
@ -442,7 +442,7 @@ static void DrawCatenaryRailway(const TileInfo *ti)
}
}
/* The wire above the tunnel is drawn together with the tunnel-roof (see DrawCatenaryOnTunnel()) */
/* The wire above the tunnel is drawn together with the tunnel-roof (see DrawRailCatenaryOnTunnel()) */
if (IsTunnelTile(ti->tile)) return;
/* Don't draw a wire under a low bridge */
@ -478,7 +478,7 @@ static void DrawCatenaryRailway(const TileInfo *ti)
assert(PCPconfig != 0); // We have a pylon on neither end of the wire, that doesn't work (since we have no sprites for that)
assert(!IsSteepSlope(tileh[TS_HOME]));
sss = &CatenarySpriteData[Wires[tileh_selector][t][PCPconfig]];
sss = &RailCatenarySpriteData[Wires[tileh_selector][t][PCPconfig]];
/*
* The "wire"-sprite position is inside the tile, i.e. 0 <= sss->?_offset < TILE_SIZE.
@ -498,7 +498,7 @@ static void DrawCatenaryRailway(const TileInfo *ti)
*
* @param ti The Tileinfo to draw the tile for
*/
void DrawCatenaryOnBridge(const TileInfo *ti)
void DrawRailCatenaryOnBridge(const TileInfo *ti)
{
TileIndex end = GetSouthernBridgeEnd(ti->tile);
TileIndex start = GetOtherBridgeEnd(end);
@ -511,15 +511,15 @@ void DrawCatenaryOnBridge(const TileInfo *ti)
Axis axis = GetBridgeAxis(ti->tile);
TLG tlg = GetTLG(ti->tile);
CatenarySprite offset = (CatenarySprite)(axis == AXIS_X ? 0 : WIRE_Y_FLAT_BOTH - WIRE_X_FLAT_BOTH);
RailCatenarySprite offset = (RailCatenarySprite)(axis == AXIS_X ? 0 : WIRE_Y_FLAT_BOTH - WIRE_X_FLAT_BOTH);
if ((length % 2) && num == length) {
/* Draw the "short" wire on the southern end of the bridge
* only needed if the length of the bridge is odd */
sss = &CatenarySpriteData[WIRE_X_FLAT_BOTH + offset];
sss = &RailCatenarySpriteData[WIRE_X_FLAT_BOTH + offset];
} else {
/* Draw "long" wires on all other tiles of the bridge (one pylon every two tiles) */
sss = &CatenarySpriteData[WIRE_X_FLAT_SW + (num % 2) + offset];
sss = &RailCatenarySpriteData[WIRE_X_FLAT_SW + (num % 2) + offset];
}
height = GetBridgePixelHeight(end);
@ -558,14 +558,14 @@ void DrawCatenaryOnBridge(const TileInfo *ti)
/**
* Draws overhead wires and pylons for electric railways.
* @param ti The TileInfo struct of the tile being drawn
* @see DrawCatenaryRailway
* @see DrawRailCatenaryRailway
*/
void DrawCatenary(const TileInfo *ti)
void DrawRailCatenary(const TileInfo *ti)
{
switch (GetTileType(ti->tile)) {
case MP_RAILWAY:
if (IsRailDepot(ti->tile)) {
const SortableSpriteStruct *sss = &CatenarySpriteData_Depot[GetRailDepotDirection(ti->tile)];
const SortableSpriteStruct *sss = &RailCatenarySpriteData_Depot[GetRailDepotDirection(ti->tile)];
SpriteID wire_base = GetWireBase(ti->tile);
@ -587,7 +587,7 @@ void DrawCatenary(const TileInfo *ti)
default: return;
}
DrawCatenaryRailway(ti);
DrawRailCatenaryRailway(ti);
}
bool SettingsDisableElrail(int32 p1)

@ -20,7 +20,7 @@
* Test if a rail type has catenary
* @param rt Rail type to test
*/
static inline bool HasCatenary(RailType rt)
static inline bool HasRailCatenary(RailType rt)
{
return HasBit(GetRailTypeInfo(rt)->flags, RTF_CATENARY);
}
@ -29,14 +29,14 @@ static inline bool HasCatenary(RailType rt)
* Test if we should draw rail catenary
* @param rt Rail type to test
*/
static inline bool HasCatenaryDrawn(RailType rt)
static inline bool HasRailCatenaryDrawn(RailType rt)
{
return HasCatenary(rt) && !IsInvisibilitySet(TO_CATENARY) && !_settings_game.vehicle.disable_elrails;
return HasRailCatenary(rt) && !IsInvisibilitySet(TO_CATENARY) && !_settings_game.vehicle.disable_elrails;
}
void DrawCatenary(const TileInfo *ti);
void DrawCatenaryOnTunnel(const TileInfo *ti);
void DrawCatenaryOnBridge(const TileInfo *ti);
void DrawRailCatenary(const TileInfo *ti);
void DrawRailCatenaryOnTunnel(const TileInfo *ti);
void DrawRailCatenaryOnBridge(const TileInfo *ti);
bool SettingsDisableElrail(int32 p1); ///< _settings_game.disable_elrail callback

@ -48,11 +48,6 @@ EngineOverrideManager _engine_mngr;
*/
static Year _year_engine_aging_stops;
/**
* The railtypes that have been or never will be introduced, or
* an inverse bitmap of rail types that have to be introduced. */
static uint16 _introduced_railtypes;
/** Number of engines of each vehicle type in original engine data */
const uint8 _engine_counts[4] = {
lengthof(_orig_rail_vehicle_info),
@ -85,6 +80,7 @@ Engine::Engine(VehicleType type, EngineID base)
this->type = type;
this->grf_prop.local_id = base;
this->list_position = base;
this->preview_company = INVALID_COMPANY;
/* Check if this base engine is within the original engine data range */
if (base >= _engine_counts[type]) {
@ -542,29 +538,6 @@ void SetupEngines()
const Engine *e = new Engine(eid->type, eid->internal_id);
assert(e->index == index);
}
_introduced_railtypes = 0;
}
/**
* Check whether the railtypes should be introduced.
*/
static void CheckRailIntroduction()
{
/* All railtypes have been introduced. */
if (_introduced_railtypes == UINT16_MAX || Company::GetPoolSize() == 0) return;
/* We need to find the railtypes that are known to all companies. */
RailTypes rts = (RailTypes)UINT16_MAX;
/* We are at, or past the introduction date of the rail. */
Company *c;
FOR_ALL_COMPANIES(c) {
c->avail_railtypes = AddDateIntroducedRailTypes(c->avail_railtypes, _date);
rts &= c->avail_railtypes;
}
_introduced_railtypes |= rts;
}
void ShowEnginePreviewWindow(EngineID engine);
@ -710,19 +683,6 @@ void StartupEngines()
c->avail_roadtypes = GetCompanyRoadtypes(c->index);
}
/* Rail types that are invalid or never introduced are marked as
* being introduced upon start. That way we can easily check whether
* there is any date related introduction that is still going to
* happen somewhere in the future. */
for (RailType rt = RAILTYPE_BEGIN; rt != RAILTYPE_END; rt++) {
const RailtypeInfo *rti = GetRailTypeInfo(rt);
if (rti->label != 0 && IsInsideMM(rti->introduction_date, 0, MAX_DAY)) continue;
SetBit(_introduced_railtypes, rt);
}
CheckRailIntroduction();
/* Invalidate any open purchase lists */
InvalidateWindowClassesData(WC_BUILD_VEHICLE);
}
@ -819,7 +779,10 @@ static bool IsVehicleTypeDisabled(VehicleType type, bool ai)
/** Daily check to offer an exclusive engine preview to the companies. */
void EnginesDailyLoop()
{
CheckRailIntroduction();
Company *c;
FOR_ALL_COMPANIES(c) {
c->avail_railtypes = AddDateIntroducedRailTypes(c->avail_railtypes, _date);
}
if (_cur_year >= _year_engine_aging_stops) return;
@ -879,7 +842,7 @@ CommandCost CmdSetVehicleVisibility(TileIndex tile, DoCommandFlag flags, uint32
{
Engine *e = Engine::GetIfValid(GB(p2, 0, 31));
if (e == NULL || _current_company >= MAX_COMPANIES) return CMD_ERROR;
if ((e->flags & ENGINE_AVAILABLE) == 0 || !HasBit(e->company_avail, _current_company)) return CMD_ERROR;
if (!IsEngineBuildable(e->index, e->type, _current_company)) return CMD_ERROR;
if ((flags & DC_EXEC) != 0) {
SB(e->company_hidden, _current_company, 1, GB(p2, 31, 1));
@ -902,7 +865,7 @@ CommandCost CmdSetVehicleVisibility(TileIndex tile, DoCommandFlag flags, uint32
CommandCost CmdWantEnginePreview(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
{
Engine *e = Engine::GetIfValid(p1);
if (e == NULL || e->preview_company != _current_company) return CMD_ERROR;
if (e == NULL || !(e->flags & ENGINE_EXCLUSIVE_PREVIEW) || e->preview_company != _current_company) return CMD_ERROR;
if (flags & DC_EXEC) AcceptEnginePreview(p1, _current_company);

@ -158,6 +158,7 @@ enum EngineMiscFlags {
EF_AUTO_REFIT = 4, ///< Automatic refitting is allowed
EF_NO_DEFAULT_CARGO_MULTIPLIER = 5, ///< Use the new capacity algorithm. The default cargotype of the vehicle does not affect capacity multipliers. CB 15 is also called in purchase list.
EF_NO_BREAKDOWN_SMOKE = 6, ///< Do not show black smoke during a breakdown.
EF_SPRITE_STACK = 7, ///< Draw vehicle by stacking multiple sprites.
};
/**

@ -14,6 +14,96 @@
#include "core/enum_type.hpp"
/** The different abstract types of files that the system knows about. */
enum AbstractFileType {
FT_NONE, ///< nothing to do
FT_SAVEGAME, ///< old or new savegame
FT_SCENARIO, ///< old or new scenario
FT_HEIGHTMAP, ///< heightmap file
FT_INVALID = 7, ///< Invalid or unknown file type.
FT_NUMBITS = 3, ///< Number of bits required for storing a #AbstractFileType value.
FT_MASK = (1 << FT_NUMBITS) - 1, ///< Bitmask for extracting an abstract file type.
};
/** Kinds of files in each #AbstractFileType. */
enum DetailedFileType {
/* Save game and scenario files. */
DFT_OLD_GAME_FILE, ///< Old save game or scenario file.
DFT_GAME_FILE, ///< Save game or scenario file.
/* Heightmap files. */
DFT_HEIGHTMAP_BMP, ///< BMP file.
DFT_HEIGHTMAP_PNG, ///< PNG file.
/* fios 'files' */
DFT_FIOS_DRIVE, ///< A drive (letter) entry.
DFT_FIOS_PARENT, ///< A parent directory entry.
DFT_FIOS_DIR, ///< A directory entry.
DFT_FIOS_DIRECT, ///< Direct filename.
DFT_INVALID = 255, ///< Unknown or invalid file.
};
/** Operation performed on the file. */
enum SaveLoadOperation {
SLO_CHECK, ///< Load file for checking and/or preview.
SLO_LOAD, ///< File is being loaded.
SLO_SAVE, ///< File is being saved.
SLO_INVALID, ///< Unknown file operation.
};
/**
* Construct an enum value for #FiosType as a combination of an abstract and a detailed file type.
* @param abstract Abstract file type (one of #AbstractFileType).
* @param detailed Detailed file type (one of #DetailedFileType).
*/
#define MAKE_FIOS_TYPE(abstract, detailed) ((abstract) | ((detailed) << FT_NUMBITS))
/**
* Elements of a file system that are recognized.
* Values are a combination of #AbstractFileType and #DetailedFileType.
* @see GetAbstractFileType GetDetailedFileType
*/
enum FiosType {
FIOS_TYPE_DRIVE = MAKE_FIOS_TYPE(FT_NONE, DFT_FIOS_DRIVE),
FIOS_TYPE_PARENT = MAKE_FIOS_TYPE(FT_NONE, DFT_FIOS_PARENT),
FIOS_TYPE_DIR = MAKE_FIOS_TYPE(FT_NONE, DFT_FIOS_DIR),
FIOS_TYPE_DIRECT = MAKE_FIOS_TYPE(FT_NONE, DFT_FIOS_DIRECT),
FIOS_TYPE_FILE = MAKE_FIOS_TYPE(FT_SAVEGAME, DFT_GAME_FILE),
FIOS_TYPE_OLDFILE = MAKE_FIOS_TYPE(FT_SAVEGAME, DFT_OLD_GAME_FILE),
FIOS_TYPE_SCENARIO = MAKE_FIOS_TYPE(FT_SCENARIO, DFT_GAME_FILE),
FIOS_TYPE_OLD_SCENARIO = MAKE_FIOS_TYPE(FT_SCENARIO, DFT_OLD_GAME_FILE),
FIOS_TYPE_PNG = MAKE_FIOS_TYPE(FT_HEIGHTMAP, DFT_HEIGHTMAP_PNG),
FIOS_TYPE_BMP = MAKE_FIOS_TYPE(FT_HEIGHTMAP, DFT_HEIGHTMAP_BMP),
FIOS_TYPE_INVALID = MAKE_FIOS_TYPE(FT_INVALID, DFT_INVALID),
};
#undef MAKE_FIOS_TYPE
/**
* Extract the abstract file type from a #FiosType.
* @param fios_type Type to query.
* @return The Abstract file type of the \a fios_type.
*/
inline AbstractFileType GetAbstractFileType(FiosType fios_type)
{
return static_cast<AbstractFileType>(fios_type & FT_MASK);
}
/**
* Extract the detailed file type from a #FiosType.
* @param fios_type Type to query.
* @return The Detailed file type of the \a fios_type.
*/
inline DetailedFileType GetDetailedFileType(FiosType fios_type)
{
return static_cast<DetailedFileType>(fios_type >> FT_NUMBITS);
}
/**
* The different kinds of subdirectories OpenTTD uses
*/

@ -29,17 +29,15 @@
#include "safeguards.h"
/* Variables to display file lists */
SmallVector<FiosItem, 32> _fios_items;
static char *_fios_path;
static const char *_fios_path_last;
SmallFiosItem _file_to_saveload;
SortingBits _savegame_sort_order = SORT_BY_DATE | SORT_DESCENDING;
/* OS-specific functions are taken from their respective files (win32/unix/os2 .c) */
extern bool FiosIsRoot(const char *path);
extern bool FiosIsValidFile(const char *path, const struct dirent *ent, struct stat *sb);
extern bool FiosIsHiddenFile(const struct dirent *ent);
extern void FiosGetDrives();
extern void FiosGetDrives(FileList &file_list);
extern bool FiosGetDiskFreeSpace(const char *path, uint64 *tot);
/* get the name of an oldstyle savegame */
@ -65,11 +63,72 @@ int CDECL CompareFiosItems(const FiosItem *da, const FiosItem *db)
return r;
}
/** Free the list of savegames. */
void FiosFreeSavegameList()
FileList::~FileList()
{
_fios_items.Clear();
_fios_items.Compact();
this->Clear();
}
/**
* Construct a file list with the given kind of files, for the stated purpose.
* @param abstract_filetype Kind of files to collect.
* @param fop Purpose of the collection, either #SLO_LOAD or #SLO_SAVE.
*/
void FileList::BuildFileList(AbstractFileType abstract_filetype, SaveLoadOperation fop)
{
this->Clear();
assert(fop == SLO_LOAD || SLO_SAVE);
switch (abstract_filetype) {
case FT_NONE:
break;
case FT_SAVEGAME:
FiosGetSavegameList(fop, *this);
break;
case FT_SCENARIO:
FiosGetScenarioList(fop, *this);
break;
case FT_HEIGHTMAP:
FiosGetHeightmapList(fop, *this);
break;
default:
NOT_REACHED();
}
}
/**
* Find file information of a file by its name from the file list.
* @param file The filename to return information about. Can be the actual name
* or a numbered entry into the filename list.
* @return The information on the file, or \c NULL if the file is not available.
*/
const FiosItem *FileList::FindItem(const char *file)
{
for (const FiosItem *item = this->Begin(); item != this->End(); item++) {
if (strcmp(file, item->name) == 0) return item;
if (strcmp(file, item->title) == 0) return item;
}
/* If no name matches, try to parse it as number */
char *endptr;
int i = strtol(file, &endptr, 10);
if (file == endptr || *endptr != '\0') i = -1;
if (IsInsideMM(i, 0, this->Length())) return this->Get(i);
/* As a last effort assume it is an OpenTTD savegame and
* that the ".sav" part was not given. */
char long_file[MAX_PATH];
seprintf(long_file, lastof(long_file), "%s.sav", file);
for (const FiosItem *item = this->Begin(); item != this->End(); item++) {
if (strcmp(long_file, item->name) == 0) return item;
if (strcmp(long_file, item->title) == 0) return item;
}
return NULL;
}
/**
@ -215,23 +274,24 @@ bool FiosDelete(const char *name)
return unlink(filename) == 0;
}
typedef FiosType fios_getlist_callback_proc(SaveLoadDialogMode mode, const char *filename, const char *ext, char *title, const char *last);
typedef FiosType fios_getlist_callback_proc(SaveLoadOperation fop, const char *filename, const char *ext, char *title, const char *last);
/**
* Scanner to scan for a particular type of FIOS file.
*/
class FiosFileScanner : public FileScanner {
SaveLoadDialogMode mode; ///< The mode we want to search for
SaveLoadOperation fop; ///< The kind of file we are looking for.
fios_getlist_callback_proc *callback_proc; ///< Callback to check whether the file may be added
FileList &file_list; ///< Destination of the found files.
public:
/**
* Create the scanner
* @param mode The mode we are in. Some modes don't allow 'parent'.
* @param callback_proc The function that is called where you need to do the filtering.
* @param fop Purpose of collecting the list.
* @param callback_proc The function that is called where you need to do the filtering.
* @param file_list Destination of the found files.
*/
FiosFileScanner(SaveLoadDialogMode mode, fios_getlist_callback_proc *callback_proc) :
mode(mode),
callback_proc(callback_proc)
FiosFileScanner(SaveLoadOperation fop, fios_getlist_callback_proc *callback_proc, FileList &file_list) :
fop(fop), callback_proc(callback_proc), file_list(file_list)
{}
/* virtual */ bool AddFile(const char *filename, size_t basepath_length, const char *tar_filename);
@ -251,14 +311,14 @@ bool FiosFileScanner::AddFile(const char *filename, size_t basepath_length, cons
char fios_title[64];
fios_title[0] = '\0'; // reset the title;
FiosType type = this->callback_proc(this->mode, filename, ext, fios_title, lastof(fios_title));
FiosType type = this->callback_proc(this->fop, filename, ext, fios_title, lastof(fios_title));
if (type == FIOS_TYPE_INVALID) return false;
for (const FiosItem *fios = _fios_items.Begin(); fios != _fios_items.End(); fios++) {
for (const FiosItem *fios = file_list.Begin(); fios != file_list.End(); fios++) {
if (strcmp(fios->name, filename) == 0) return false;
}
FiosItem *fios = _fios_items.Append();
FiosItem *fios = file_list.Append();
#ifdef WIN32
struct _stat sb;
if (_tstat(OTTD2FS(filename), &sb) == 0) {
@ -289,11 +349,12 @@ bool FiosFileScanner::AddFile(const char *filename, size_t basepath_length, cons
/**
* Fill the list of the files in a directory, according to some arbitrary rule.
* @param mode The mode we are in. Some modes don't allow 'parent'.
* @param callback_proc The function that is called where you need to do the filtering.
* @param subdir The directory from where to start (global) searching.
* @param fop Purpose of collecting the list.
* @param callback_proc The function that is called where you need to do the filtering.
* @param subdir The directory from where to start (global) searching.
* @param file_list Destination of the found files.
*/
static void FiosGetFileList(SaveLoadDialogMode mode, fios_getlist_callback_proc *callback_proc, Subdirectory subdir)
static void FiosGetFileList(SaveLoadOperation fop, fios_getlist_callback_proc *callback_proc, Subdirectory subdir, FileList &file_list)
{
struct stat sb;
struct dirent *dirent;
@ -302,11 +363,11 @@ static void FiosGetFileList(SaveLoadDialogMode mode, fios_getlist_callback_proc
int sort_start;
char d_name[sizeof(fios->name)];
_fios_items.Clear();
file_list.Clear();
/* A parent directory link exists if we are not in the root directory */
if (!FiosIsRoot(_fios_path)) {
fios = _fios_items.Append();
fios = file_list.Append();
fios->type = FIOS_TYPE_PARENT;
fios->mtime = 0;
strecpy(fios->name, "..", lastof(fios->name));
@ -322,7 +383,7 @@ static void FiosGetFileList(SaveLoadDialogMode mode, fios_getlist_callback_proc
if (FiosIsValidFile(_fios_path, dirent, &sb) && S_ISDIR(sb.st_mode) &&
(!FiosIsHiddenFile(dirent) || strncasecmp(d_name, PERSONAL_DIR, strlen(d_name)) == 0) &&
strcmp(d_name, ".") != 0 && strcmp(d_name, "..") != 0) {
fios = _fios_items.Append();
fios = file_list.Append();
fios->type = FIOS_TYPE_DIR;
fios->mtime = 0;
strecpy(fios->name, d_name, lastof(fios->name));
@ -337,27 +398,27 @@ static void FiosGetFileList(SaveLoadDialogMode mode, fios_getlist_callback_proc
{
SortingBits order = _savegame_sort_order;
_savegame_sort_order = SORT_BY_NAME | SORT_ASCENDING;
QSortT(_fios_items.Begin(), _fios_items.Length(), CompareFiosItems);
QSortT(file_list.files.Begin(), file_list.files.Length(), CompareFiosItems);
_savegame_sort_order = order;
}
/* This is where to start sorting for the filenames */
sort_start = _fios_items.Length();
sort_start = file_list.Length();
/* Show files */
FiosFileScanner scanner(mode, callback_proc);
FiosFileScanner scanner(fop, callback_proc, file_list);
if (subdir == NO_DIRECTORY) {
scanner.Scan(NULL, _fios_path, false);
} else {
scanner.Scan(NULL, subdir, true, true);
}
QSortT(_fios_items.Get(sort_start), _fios_items.Length() - sort_start, CompareFiosItems);
QSortT(file_list.Get(sort_start), file_list.Length() - sort_start, CompareFiosItems);
/* Show drives */
FiosGetDrives();
FiosGetDrives(file_list);
_fios_items.Compact();
file_list.Compact();
}
/**
@ -386,7 +447,7 @@ static void GetFileTitle(const char *file, char *title, const char *last, Subdir
/**
* Callback for FiosGetFileList. It tells if a file is a savegame or not.
* @param mode Save/load mode.
* @param fop Purpose of collecting the list.
* @param file Name of the file to check.
* @param ext A pointer to the extension identifier inside file
* @param title Buffer if a callback wants to lookup the title of the file; NULL to skip the lookup
@ -395,7 +456,7 @@ static void GetFileTitle(const char *file, char *title, const char *last, Subdir
* @see FiosGetFileList
* @see FiosGetSavegameList
*/
FiosType FiosGetSavegameListCallback(SaveLoadDialogMode mode, const char *file, const char *ext, char *title, const char *last)
FiosType FiosGetSavegameListCallback(SaveLoadOperation fop, const char *file, const char *ext, char *title, const char *last)
{
/* Show savegame files
* .SAV OpenTTD saved game
@ -411,7 +472,7 @@ FiosType FiosGetSavegameListCallback(SaveLoadDialogMode mode, const char *file,
return FIOS_TYPE_FILE;
}
if (mode == SLD_LOAD_GAME || mode == SLD_LOAD_SCENARIO) {
if (fop == SLO_LOAD) {
if (strcasecmp(ext, ".ss1") == 0 || strcasecmp(ext, ".sv1") == 0 ||
strcasecmp(ext, ".sv2") == 0) {
if (title != NULL) GetOldSaveGameName(file, title, last);
@ -424,10 +485,11 @@ FiosType FiosGetSavegameListCallback(SaveLoadDialogMode mode, const char *file,
/**
* Get a list of savegames.
* @param mode Save/load mode.
* @param fop Purpose of collecting the list.
* @param file_list Destination of the found files.
* @see FiosGetFileList
*/
void FiosGetSavegameList(SaveLoadDialogMode mode)
void FiosGetSavegameList(SaveLoadOperation fop, FileList &file_list)
{
static char *fios_save_path = NULL;
static char *fios_save_path_last = NULL;
@ -441,12 +503,12 @@ void FiosGetSavegameList(SaveLoadDialogMode mode)
_fios_path = fios_save_path;
_fios_path_last = fios_save_path_last;
FiosGetFileList(mode, &FiosGetSavegameListCallback, NO_DIRECTORY);
FiosGetFileList(fop, &FiosGetSavegameListCallback, NO_DIRECTORY, file_list);
}
/**
* Callback for FiosGetFileList. It tells if a file is a scenario or not.
* @param mode Save/load mode.
* @param fop Purpose of collecting the list.
* @param file Name of the file to check.
* @param ext A pointer to the extension identifier inside file
* @param title Buffer if a callback wants to lookup the title of the file
@ -455,7 +517,7 @@ void FiosGetSavegameList(SaveLoadDialogMode mode)
* @see FiosGetFileList
* @see FiosGetScenarioList
*/
static FiosType FiosGetScenarioListCallback(SaveLoadDialogMode mode, const char *file, const char *ext, char *title, const char *last)
static FiosType FiosGetScenarioListCallback(SaveLoadOperation fop, const char *file, const char *ext, char *title, const char *last)
{
/* Show scenario files
* .SCN OpenTTD style scenario file
@ -466,7 +528,7 @@ static FiosType FiosGetScenarioListCallback(SaveLoadDialogMode mode, const char
return FIOS_TYPE_SCENARIO;
}
if (mode == SLD_LOAD_GAME || mode == SLD_LOAD_SCENARIO) {
if (fop == SLO_LOAD) {
if (strcasecmp(ext, ".sv0") == 0 || strcasecmp(ext, ".ss0") == 0 ) {
GetOldSaveGameName(file, title, last);
return FIOS_TYPE_OLD_SCENARIO;
@ -478,10 +540,11 @@ static FiosType FiosGetScenarioListCallback(SaveLoadDialogMode mode, const char
/**
* Get a list of scenarios.
* @param mode Save/load mode.
* @param fop Purpose of collecting the list.
* @param file_list Destination of the found files.
* @see FiosGetFileList
*/
void FiosGetScenarioList(SaveLoadDialogMode mode)
void FiosGetScenarioList(SaveLoadOperation fop, FileList &file_list)
{
static char *fios_scn_path = NULL;
static char *fios_scn_path_last = NULL;
@ -499,10 +562,11 @@ void FiosGetScenarioList(SaveLoadDialogMode mode)
char base_path[MAX_PATH];
FioGetDirectory(base_path, lastof(base_path), SCENARIO_DIR);
FiosGetFileList(mode, &FiosGetScenarioListCallback, (mode == SLD_LOAD_SCENARIO && strcmp(base_path, _fios_path) == 0) ? SCENARIO_DIR : NO_DIRECTORY);
Subdirectory subdir = (fop == SLO_LOAD && strcmp(base_path, _fios_path) == 0) ? SCENARIO_DIR : NO_DIRECTORY;
FiosGetFileList(fop, &FiosGetScenarioListCallback, subdir, file_list);
}
static FiosType FiosGetHeightmapListCallback(SaveLoadDialogMode mode, const char *file, const char *ext, char *title, const char *last)
static FiosType FiosGetHeightmapListCallback(SaveLoadOperation fop, const char *file, const char *ext, char *title, const char *last)
{
/* Show heightmap files
* .PNG PNG Based heightmap files
@ -548,9 +612,10 @@ static FiosType FiosGetHeightmapListCallback(SaveLoadDialogMode mode, const char
/**
* Get a list of heightmaps.
* @param mode Save/load mode.
* @param fop Purpose of collecting the list.
* @param file_list Destination of the found files.
*/
void FiosGetHeightmapList(SaveLoadDialogMode mode)
void FiosGetHeightmapList(SaveLoadOperation fop, FileList &file_list)
{
static char *fios_hmap_path = NULL;
static char *fios_hmap_path_last = NULL;
@ -567,7 +632,8 @@ void FiosGetHeightmapList(SaveLoadDialogMode mode)
char base_path[MAX_PATH];
FioGetDirectory(base_path, lastof(base_path), HEIGHTMAP_DIR);
FiosGetFileList(mode, &FiosGetHeightmapListCallback, strcmp(base_path, _fios_path) == 0 ? HEIGHTMAP_DIR : NO_DIRECTORY);
Subdirectory subdir = strcmp(base_path, _fios_path) == 0 ? HEIGHTMAP_DIR : NO_DIRECTORY;
FiosGetFileList(fop, &FiosGetHeightmapListCallback, subdir, file_list);
}
/**

@ -97,38 +97,6 @@ enum FileSlots {
MAX_FILE_SLOTS = 64
};
/** Mode of the file dialogue window. */
enum SaveLoadDialogMode {
SLD_LOAD_GAME, ///< Load a game.
SLD_LOAD_SCENARIO, ///< Load a scenario.
SLD_SAVE_GAME, ///< Save a game.
SLD_SAVE_SCENARIO, ///< Save a scenario.
SLD_LOAD_HEIGHTMAP, ///< Load a heightmap.
SLD_SAVE_HEIGHTMAP, ///< Save a heightmap.
};
/** The different types of files that the system knows about. */
enum FileType {
FT_NONE, ///< nothing to do
FT_SAVEGAME, ///< old or new savegame
FT_SCENARIO, ///< old or new scenario
FT_HEIGHTMAP, ///< heightmap file
};
enum FiosType {
FIOS_TYPE_DRIVE,
FIOS_TYPE_PARENT,
FIOS_TYPE_DIR,
FIOS_TYPE_FILE,
FIOS_TYPE_OLDFILE,
FIOS_TYPE_SCENARIO,
FIOS_TYPE_OLD_SCENARIO,
FIOS_TYPE_DIRECT,
FIOS_TYPE_PNG,
FIOS_TYPE_BMP,
FIOS_TYPE_INVALID = 255,
};
/** Deals with finding savegames */
struct FiosItem {
FiosType type;
@ -137,12 +105,95 @@ struct FiosItem {
char name[MAX_PATH];
};
/** Deals with the type of the savegame, independent of extension */
struct SmallFiosItem {
int mode; ///< savegame/scenario type (old, new)
FileType filetype; ///< what type of file are we dealing with
char name[MAX_PATH]; ///< name
char title[255]; ///< internal name of the game
/** List of file information. */
class FileList {
public:
~FileList();
/**
* Construct a new entry in the file list.
* @return Pointer to the new items to be initialized.
*/
inline FiosItem *Append()
{
return this->files.Append();
}
/**
* Get the number of files in the list.
* @return The number of files stored in the list.
*/
inline uint Length() const
{
return this->files.Length();
}
/**
* Get a pointer to the first file information.
* @return Address of the first file information.
*/
inline const FiosItem *Begin() const
{
return this->files.Begin();
}
/**
* Get a pointer behind the last file information.
* @return Address behind the last file information.
*/
inline const FiosItem *End() const
{
return this->files.End();
}
/**
* Get a pointer to the indicated file information. File information must exist.
* @return Address of the indicated existing file information.
*/
inline const FiosItem *Get(uint index) const
{
return this->files.Get(index);
}
/**
* Get a pointer to the indicated file information. File information must exist.
* @return Address of the indicated existing file information.
*/
inline FiosItem *Get(uint index)
{
return this->files.Get(index);
}
inline const FiosItem &operator[](uint index) const
{
return this->files[index];
}
/**
* Get a reference to the indicated file information. File information must exist.
* @return The requested file information.
*/
inline FiosItem &operator[](uint index)
{
return this->files[index];
}
/** Remove all items from the list. */
inline void Clear()
{
this->files.Clear();
}
/** Compact the list down to the smallest block size boundary. */
inline void Compact()
{
this->files.Compact();
}
void BuildFileList(AbstractFileType abstract_filetype, SaveLoadOperation fop);
const FiosItem *FindItem(const char *file);
SmallVector<FiosItem, 32> files; ///< The list of files.
};
enum SortingBits {
@ -154,18 +205,14 @@ enum SortingBits {
DECLARE_ENUM_AS_BIT_SET(SortingBits)
/* Variables to display file lists */
extern SmallVector<FiosItem, 32> _fios_items;
extern SmallFiosItem _file_to_saveload;
extern SaveLoadDialogMode _saveload_mode;
extern SortingBits _savegame_sort_order;
void ShowSaveLoadDialog(SaveLoadDialogMode mode);
void ShowSaveLoadDialog(AbstractFileType abstract_filetype, SaveLoadOperation fop);
void FiosGetSavegameList(SaveLoadDialogMode mode);
void FiosGetScenarioList(SaveLoadDialogMode mode);
void FiosGetHeightmapList(SaveLoadDialogMode mode);
void FiosGetSavegameList(SaveLoadOperation fop, FileList &file_list);
void FiosGetScenarioList(SaveLoadOperation fop, FileList &file_list);
void FiosGetHeightmapList(SaveLoadOperation fop, FileList &file_list);
void FiosFreeSavegameList();
const char *FiosBrowseTo(const FiosItem *item);
StringID FiosGetDescText(const char **path, uint64 *total_free);
@ -173,13 +220,8 @@ bool FiosDelete(const char *name);
void FiosMakeHeightmapName(char *buf, const char *name, const char *last);
void FiosMakeSavegameName(char *buf, const char *name, const char *last);
FiosType FiosGetSavegameListCallback(SaveLoadDialogMode mode, const char *file, const char *ext, char *title, const char *last);
FiosType FiosGetSavegameListCallback(SaveLoadOperation fop, const char *file, const char *ext, char *title, const char *last);
int CDECL CompareFiosItems(const FiosItem *a, const FiosItem *b);
extern const TextColour _fios_colours[];
void BuildFileList();
void SetFiosType(const byte fiostype);
#endif /* FIOS_H */

@ -36,7 +36,6 @@
#include "safeguards.h"
SaveLoadDialogMode _saveload_mode;
LoadCheckData _load_check_data; ///< Data loaded from save during SL_LOAD_CHECK.
static bool _fios_path_changed;
@ -187,33 +186,24 @@ static const NWidgetPart _nested_save_dialog_widgets[] = {
EndContainer(),
};
/** Colours for fios types, indexed by #FiosType. */
const TextColour _fios_colours[] = {
TC_LIGHT_BLUE, TC_DARK_GREEN, TC_DARK_GREEN, TC_ORANGE, TC_LIGHT_BROWN,
TC_ORANGE, TC_LIGHT_BROWN, TC_ORANGE, TC_ORANGE, TC_YELLOW
/** Text colours of #DetailedFileType fios entries in the window. */
static const TextColour _fios_colours[] = {
TC_LIGHT_BROWN, // DFT_OLD_GAME_FILE
TC_ORANGE, // DFT_GAME_FILE
TC_YELLOW, // DFT_HEIGHTMAP_BMP
TC_ORANGE, // DFT_HEIGHTMAP_PNG
TC_LIGHT_BLUE, // DFT_FIOS_DRIVE
TC_DARK_GREEN, // DFT_FIOS_PARENT
TC_DARK_GREEN, // DFT_FIOS_DIR
TC_ORANGE, // DFT_FIOS_DIRECT
};
void BuildFileList()
{
_fios_path_changed = true;
FiosFreeSavegameList();
switch (_saveload_mode) {
case SLD_LOAD_SCENARIO:
case SLD_SAVE_SCENARIO:
FiosGetScenarioList(_saveload_mode); break;
case SLD_SAVE_HEIGHTMAP:
case SLD_LOAD_HEIGHTMAP:
FiosGetHeightmapList(_saveload_mode); break;
default: FiosGetSavegameList(_saveload_mode); break;
}
/* Invalidate saveload window */
InvalidateWindowData(WC_SAVELOAD, 0, 2, true);
}
static void MakeSortedSaveGameList()
/**
* Sort the collected list save games prior to displaying it in the save/load gui.
* @param [inout] file_list List of save game files found in the directory.
*/
static void SortSaveGameList(FileList &file_list)
{
uint sort_start = 0;
uint sort_end = 0;
@ -222,7 +212,7 @@ static void MakeSortedSaveGameList()
* Drives (A:\ (windows only) are always under the files (FIOS_TYPE_DRIVE)
* Only sort savegames/scenarios, not directories
*/
for (const FiosItem *item = _fios_items.Begin(); item != _fios_items.End(); item++) {
for (const FiosItem *item = file_list.Begin(); item != file_list.End(); item++) {
switch (item->type) {
case FIOS_TYPE_DIR: sort_start++; break;
case FIOS_TYPE_PARENT: sort_start++; break;
@ -231,15 +221,18 @@ static void MakeSortedSaveGameList()
}
}
uint s_amount = _fios_items.Length() - sort_start - sort_end;
QSortT(_fios_items.Get(sort_start), s_amount, CompareFiosItems);
uint s_amount = file_list.Length() - sort_start - sort_end;
QSortT(file_list.Get(sort_start), s_amount, CompareFiosItems);
}
struct SaveLoadWindow : public Window {
private:
QueryString filename_editbox; ///< Filename editbox.
AbstractFileType abstract_filetype; /// Type of file to select.
SaveLoadOperation fop; ///< File operation to perform.
FileList fios_items; ///< Save game list.
FiosItem o_dir;
const FiosItem *selected;
const FiosItem *selected; ///< Selected game in #fios_items, or \c NULL.
Scrollbar *vscroll;
public:
@ -250,35 +243,56 @@ public:
this->filename_editbox.text.UpdateSize();
}
SaveLoadWindow(WindowDesc *desc, SaveLoadDialogMode mode) : Window(desc), filename_editbox(64)
SaveLoadWindow(WindowDesc *desc, AbstractFileType abstract_filetype, SaveLoadOperation fop)
: Window(desc), filename_editbox(64), abstract_filetype(abstract_filetype), fop(fop)
{
static const StringID saveload_captions[] = {
STR_SAVELOAD_LOAD_CAPTION,
STR_SAVELOAD_LOAD_SCENARIO,
STR_SAVELOAD_SAVE_CAPTION,
STR_SAVELOAD_SAVE_SCENARIO,
STR_SAVELOAD_LOAD_HEIGHTMAP,
STR_SAVELOAD_SAVE_HEIGHTMAP,
};
assert((uint)mode < lengthof(saveload_captions));
/* Use an array to define what will be the current file type being handled
* by current file mode */
switch (mode) {
case SLD_SAVE_GAME: this->GenerateFileName(); break;
case SLD_SAVE_HEIGHTMAP:
case SLD_SAVE_SCENARIO: this->filename_editbox.text.Assign("UNNAMED"); break;
default: break;
assert(this->fop == SLO_SAVE || this->fop == SLO_LOAD);
/* For saving, construct an initial file name. */
if (this->fop == SLO_SAVE) {
switch (this->abstract_filetype) {
case FT_SAVEGAME:
this->GenerateFileName();
break;
case FT_SCENARIO:
case FT_HEIGHTMAP:
this->filename_editbox.text.Assign("UNNAMED");
break;
default:
NOT_REACHED();
}
}
this->querystrings[WID_SL_SAVE_OSK_TITLE] = &this->filename_editbox;
this->filename_editbox.ok_button = WID_SL_SAVE_GAME;
this->CreateNestedTree(true);
if (mode == SLD_LOAD_GAME) this->GetWidget<NWidgetStacked>(WID_SL_CONTENT_DOWNLOAD_SEL)->SetDisplayedPlane(SZSP_HORIZONTAL);
this->GetWidget<NWidgetCore>(WID_SL_CAPTION)->widget_data = saveload_captions[mode];
this->vscroll = this->GetScrollbar(WID_SL_SCROLLBAR);
if (this->fop == SLO_LOAD && this->abstract_filetype == FT_SAVEGAME) {
this->GetWidget<NWidgetStacked>(WID_SL_CONTENT_DOWNLOAD_SEL)->SetDisplayedPlane(SZSP_HORIZONTAL);
}
/* Select caption string of the window. */
StringID caption_string;
switch (this->abstract_filetype) {
case FT_SAVEGAME:
caption_string = (this->fop == SLO_SAVE) ? STR_SAVELOAD_SAVE_CAPTION : STR_SAVELOAD_LOAD_CAPTION;
break;
case FT_SCENARIO:
caption_string = (this->fop == SLO_SAVE) ? STR_SAVELOAD_SAVE_SCENARIO : STR_SAVELOAD_LOAD_SCENARIO;
break;
case FT_HEIGHTMAP:
caption_string = (this->fop == SLO_SAVE) ? STR_SAVELOAD_SAVE_HEIGHTMAP : STR_SAVELOAD_LOAD_HEIGHTMAP;
break;
default:
NOT_REACHED();
}
this->GetWidget<NWidgetCore>(WID_SL_CAPTION)->widget_data = caption_string;
this->vscroll = this->GetScrollbar(WID_SL_SCROLLBAR);
this->FinishInitNested(0);
this->LowerWidget(WID_SL_DRIVES_DIRECTORIES_LIST);
@ -294,20 +308,18 @@ public:
ResetObjectToPlace();
/* Select the initial directory. */
o_dir.type = FIOS_TYPE_DIRECT;
switch (_saveload_mode) {
case SLD_SAVE_GAME:
case SLD_LOAD_GAME:
switch (this->abstract_filetype) {
case FT_SAVEGAME:
FioGetDirectory(o_dir.name, lastof(o_dir.name), SAVE_DIR);
break;
case SLD_SAVE_SCENARIO:
case SLD_LOAD_SCENARIO:
case FT_SCENARIO:
FioGetDirectory(o_dir.name, lastof(o_dir.name), SCENARIO_DIR);
break;
case SLD_SAVE_HEIGHTMAP:
case SLD_LOAD_HEIGHTMAP:
case FT_HEIGHTMAP:
FioGetDirectory(o_dir.name, lastof(o_dir.name), HEIGHTMAP_DIR);
break;
@ -316,9 +328,7 @@ public:
}
/* Focus the edit box by default in the save windows */
if (_saveload_mode == SLD_SAVE_GAME || _saveload_mode == SLD_SAVE_SCENARIO || _saveload_mode == SLD_SAVE_HEIGHTMAP) {
this->SetFocusedWidget(WID_SL_SAVE_OSK_TITLE);
}
if (this->fop == SLO_SAVE) this->SetFocusedWidget(WID_SL_SAVE_OSK_TITLE);
}
virtual ~SaveLoadWindow()
@ -327,7 +337,6 @@ public:
if (!_networking && _game_mode != GM_EDITOR && _game_mode != GM_MENU) {
DoCommandP(0, PM_PAUSED_SAVELOAD, 0, CMD_PAUSE);
}
FiosFreeSavegameList();
}
virtual void DrawWidget(const Rect &r, int widget) const
@ -360,13 +369,13 @@ public:
GfxFillRect(r.left + 1, r.top + 1, r.right, r.bottom, PC_BLACK);
uint y = r.top + WD_FRAMERECT_TOP;
for (uint pos = this->vscroll->GetPosition(); pos < _fios_items.Length(); pos++) {
const FiosItem *item = _fios_items.Get(pos);
for (uint pos = this->vscroll->GetPosition(); pos < this->fios_items.Length(); pos++) {
const FiosItem *item = this->fios_items.Get(pos);
if (item == this->selected) {
GfxFillRect(r.left + 1, y, r.right, y + this->resize.step_height, PC_DARK_BLUE);
}
DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, item->title, _fios_colours[item->type]);
DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, item->title, _fios_colours[GetDetailedFileType(item->type)]);
y += this->resize.step_height;
if (y >= this->vscroll->GetCapacity() * this->resize.step_height + r.top + WD_FRAMERECT_TOP) break;
}
@ -421,7 +430,7 @@ public:
if (y > y_max) break;
/* Hide current date for scenarios */
if (_saveload_mode != SLD_LOAD_SCENARIO && _saveload_mode != SLD_SAVE_SCENARIO) {
if (this->abstract_filetype != FT_SCENARIO) {
/* Current date */
SetDParam(0, _load_check_data.current_date);
DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_NETWORK_SERVER_LIST_CURRENT_DATE);
@ -429,7 +438,7 @@ public:
}
/* Hide the NewGRF stuff when saving. We also hide the button. */
if (_saveload_mode == SLD_LOAD_GAME || _saveload_mode == SLD_LOAD_SCENARIO) {
if (this->fop == SLO_LOAD && (this->abstract_filetype == FT_SAVEGAME || this->abstract_filetype == FT_SCENARIO)) {
y += WD_PAR_VSEP_NORMAL;
if (y > y_max) break;
@ -442,7 +451,7 @@ public:
if (y > y_max) break;
/* Hide the company stuff for scenarios */
if (_saveload_mode != SLD_LOAD_SCENARIO && _saveload_mode != SLD_SAVE_SCENARIO) {
if (this->abstract_filetype != FT_SCENARIO) {
y += FONT_HEIGHT_NORMAL;
if (y > y_max) break;
@ -495,10 +504,10 @@ public:
{
if (_savegame_sort_dirty) {
_savegame_sort_dirty = false;
MakeSortedSaveGameList();
SortSaveGameList(this->fios_items);
}
this->vscroll->SetCount(_fios_items.Length());
this->vscroll->SetCount(this->fios_items.Length());
this->DrawWidgets();
}
@ -527,14 +536,14 @@ public:
case WID_SL_LOAD_BUTTON:
if (this->selected != NULL && !_load_check_data.HasErrors()) {
const char *name = FiosBrowseTo(this->selected);
SetFiosType(this->selected->type);
_file_to_saveload.SetMode(this->selected->type);
_file_to_saveload.SetName(name);
_file_to_saveload.SetTitle(this->selected->title);
strecpy(_file_to_saveload.name, name, lastof(_file_to_saveload.name));
strecpy(_file_to_saveload.title, this->selected->title, lastof(_file_to_saveload.title));
if (_saveload_mode == SLD_LOAD_HEIGHTMAP) {
if (this->abstract_filetype == FT_HEIGHTMAP) {
delete this;
ShowHeightmapLoad();
} else if (!_load_check_data.HasNewGrfs() || _load_check_data.grf_compatibility != GLC_NOT_FOUND || _settings_client.gui.UserIsAllowedToChangeNewGRFs()) {
_switch_mode = (_game_mode == GM_EDITOR) ? SM_LOAD_SCENARIO : SM_LOAD_GAME;
ClearErrorMessages();
@ -563,7 +572,7 @@ public:
int y = this->vscroll->GetScrolledRowFromWidget(pt.y, this, WID_SL_DRIVES_DIRECTORIES_LIST, WD_FRAMERECT_TOP);
if (y == INT_MAX) return;
const FiosItem *file = _fios_items.Get(y);
const FiosItem *file = this->fios_items.Get(y);
const char *name = FiosBrowseTo(file);
if (name != NULL) {
@ -572,28 +581,32 @@ public:
this->selected = file;
_load_check_data.Clear();
if (file->type == FIOS_TYPE_FILE || file->type == FIOS_TYPE_SCENARIO) {
SaveOrLoad(name, SL_LOAD_CHECK, NO_DIRECTORY, false);
if (GetDetailedFileType(file->type) == DFT_GAME_FILE) {
/* Other detailed file types cannot be checked before. */
SaveOrLoad(name, SLO_CHECK, DFT_GAME_FILE, NO_DIRECTORY, false);
}
this->InvalidateData(1);
}
if (_saveload_mode == SLD_SAVE_GAME || _saveload_mode == SLD_SAVE_SCENARIO || _saveload_mode == SLD_SAVE_HEIGHTMAP) {
if (this->fop == SLO_SAVE) {
/* Copy clicked name to editbox */
this->filename_editbox.text.Assign(file->title);
this->SetWidgetDirty(WID_SL_SAVE_OSK_TITLE);
}
} else if (!_load_check_data.HasErrors()) {
this->selected = file;
if (_saveload_mode == SLD_LOAD_GAME || _saveload_mode == SLD_LOAD_SCENARIO) {
this->OnClick(pt, WID_SL_LOAD_BUTTON, 1);
} else if (_saveload_mode == SLD_LOAD_HEIGHTMAP) {
SetFiosType(file->type);
strecpy(_file_to_saveload.name, name, lastof(_file_to_saveload.name));
strecpy(_file_to_saveload.title, file->title, lastof(_file_to_saveload.title));
delete this;
ShowHeightmapLoad();
if (this->fop == SLO_LOAD) {
if (this->abstract_filetype == FT_SAVEGAME || this->abstract_filetype == FT_SCENARIO) {
this->OnClick(pt, WID_SL_LOAD_BUTTON, 1);
} else {
assert(this->abstract_filetype == FT_HEIGHTMAP);
_file_to_saveload.SetMode(file->type);
_file_to_saveload.SetName(name);
_file_to_saveload.SetTitle(file->title);
delete this;
ShowHeightmapLoad();
}
}
}
} else {
@ -608,10 +621,11 @@ public:
ShowErrorMessage(STR_NETWORK_ERROR_NOTAVAILABLE, INVALID_STRING_ID, WL_ERROR);
} else {
#if defined(ENABLE_NETWORK)
switch (_saveload_mode) {
assert(this->fop == SLO_LOAD);
switch (this->abstract_filetype) {
default: NOT_REACHED();
case SLD_LOAD_SCENARIO: ShowNetworkContentListWindow(NULL, CONTENT_TYPE_SCENARIO); break;
case SLD_LOAD_HEIGHTMAP: ShowNetworkContentListWindow(NULL, CONTENT_TYPE_HEIGHTMAP); break;
case FT_SCENARIO: ShowNetworkContentListWindow(NULL, CONTENT_TYPE_SCENARIO); break;
case FT_HEIGHTMAP: ShowNetworkContentListWindow(NULL, CONTENT_TYPE_HEIGHTMAP); break;
}
#endif
}
@ -639,9 +653,8 @@ public:
virtual void OnTimeout()
{
/* This test protects against using widgets 11 and 12 which are only available
* in those saveload modes. */
if (!(_saveload_mode == SLD_SAVE_GAME || _saveload_mode == SLD_SAVE_SCENARIO || _saveload_mode == SLD_SAVE_HEIGHTMAP)) return;
/* Widgets WID_SL_DELETE_SELECTION and WID_SL_SAVE_GAME only exist when saving to a file. */
if (this->fop != SLO_SAVE) return;
if (this->IsWidgetLowered(WID_SL_DELETE_SELECTION)) { // Delete button clicked
if (!FiosDelete(this->filename_editbox.text.buf)) {
@ -649,10 +662,10 @@ public:
} else {
this->InvalidateData();
/* Reset file name to current date on successful delete */
if (_saveload_mode == SLD_SAVE_GAME) GenerateFileName();
if (this->abstract_filetype == FT_SAVEGAME) GenerateFileName();
}
} else if (this->IsWidgetLowered(WID_SL_SAVE_GAME)) { // Save button clicked
if (_saveload_mode == SLD_SAVE_GAME || _saveload_mode == SLD_SAVE_SCENARIO) {
if (this->abstract_filetype == FT_SAVEGAME || this->abstract_filetype == FT_SCENARIO) {
_switch_mode = SM_SAVE_GAME;
FiosMakeSavegameName(_file_to_saveload.name, this->filename_editbox.text.buf, lastof(_file_to_saveload.name));
} else {
@ -683,29 +696,41 @@ public:
this->selected = NULL;
_load_check_data.Clear();
if (!gui_scope) break;
BuildFileList();
_fios_path_changed = true;
this->fios_items.BuildFileList(this->abstract_filetype, this->fop);
this->vscroll->SetCount(this->fios_items.Length());
this->selected = NULL;
_load_check_data.Clear();
/* FALL THROUGH */
case 1:
/* Selection changes */
if (!gui_scope) break;
if (_saveload_mode == SLD_LOAD_HEIGHTMAP) {
this->SetWidgetDisabledState(WID_SL_LOAD_BUTTON, this->selected == NULL || _load_check_data.HasErrors());
}
if (_saveload_mode == SLD_LOAD_GAME || _saveload_mode == SLD_LOAD_SCENARIO) {
this->SetWidgetDisabledState(WID_SL_LOAD_BUTTON,
this->selected == NULL || _load_check_data.HasErrors() || !(!_load_check_data.HasNewGrfs() || _load_check_data.grf_compatibility != GLC_NOT_FOUND || _settings_client.gui.UserIsAllowedToChangeNewGRFs()));
this->SetWidgetDisabledState(WID_SL_NEWGRF_INFO,
!_load_check_data.HasNewGrfs());
this->SetWidgetDisabledState(WID_SL_MISSING_NEWGRFS,
!_load_check_data.HasNewGrfs() || _load_check_data.grf_compatibility == GLC_ALL_GOOD);
if (this->fop != SLO_LOAD) break;
switch (this->abstract_filetype) {
case FT_HEIGHTMAP:
this->SetWidgetDisabledState(WID_SL_LOAD_BUTTON, this->selected == NULL || _load_check_data.HasErrors());
break;
case FT_SAVEGAME:
case FT_SCENARIO: {
bool disabled = this->selected == NULL || _load_check_data.HasErrors();
if (!_settings_client.gui.UserIsAllowedToChangeNewGRFs()) {
disabled |= _load_check_data.HasNewGrfs() && _load_check_data.grf_compatibility == GLC_NOT_FOUND;
}
this->SetWidgetDisabledState(WID_SL_LOAD_BUTTON, disabled);
this->SetWidgetDisabledState(WID_SL_NEWGRF_INFO, !_load_check_data.HasNewGrfs());
this->SetWidgetDisabledState(WID_SL_MISSING_NEWGRFS,
!_load_check_data.HasNewGrfs() || _load_check_data.grf_compatibility == GLC_ALL_GOOD);
break;
}
default:
NOT_REACHED();
}
break;
case 2:
/* _fios_items changed */
this->vscroll->SetCount(_fios_items.Length());
this->selected = NULL;
_load_check_data.Clear();
break;
}
}
};
@ -734,70 +759,24 @@ static WindowDesc _save_dialog_desc(
_nested_save_dialog_widgets, lengthof(_nested_save_dialog_widgets)
);
/**
* These values are used to convert the file/operations mode into a corresponding file type.
* So each entry, as expressed by the related comment, is based on the enum
*/
static const FileType _file_modetotype[] = {
FT_SAVEGAME, // used for SLD_LOAD_GAME
FT_SCENARIO, // used for SLD_LOAD_SCENARIO
FT_SAVEGAME, // used for SLD_SAVE_GAME
FT_SCENARIO, // used for SLD_SAVE_SCENARIO
FT_HEIGHTMAP, // used for SLD_LOAD_HEIGHTMAP
FT_HEIGHTMAP, // used for SLD_SAVE_HEIGHTMAP
};
/**
* Launch save/load dialog in the given mode.
* @param mode Save/load mode.
* @param abstract_filetype Kind of file to handle.
* @param fop File operation to perform (load or save).
*/
void ShowSaveLoadDialog(SaveLoadDialogMode mode)
void ShowSaveLoadDialog(AbstractFileType abstract_filetype, SaveLoadOperation fop)
{
DeleteWindowById(WC_SAVELOAD, 0);
WindowDesc *sld;
switch (mode) {
case SLD_SAVE_GAME:
case SLD_SAVE_SCENARIO:
case SLD_SAVE_HEIGHTMAP:
sld = &_save_dialog_desc; break;
case SLD_LOAD_HEIGHTMAP:
sld = &_load_heightmap_dialog_desc; break;
default:
sld = &_load_dialog_desc; break;
if (fop == SLO_SAVE) {
sld = &_save_dialog_desc;
} else {
/* Dialogue for loading a file. */
sld = (abstract_filetype == FT_HEIGHTMAP) ? &_load_heightmap_dialog_desc : &_load_dialog_desc;
}
_saveload_mode = mode;
_file_to_saveload.filetype = _file_modetotype[mode];
new SaveLoadWindow(sld, mode);
}
_file_to_saveload.abstract_ftype = abstract_filetype;
void SetFiosType(const byte fiostype)
{
switch (fiostype) {
case FIOS_TYPE_FILE:
case FIOS_TYPE_SCENARIO:
_file_to_saveload.mode = SL_LOAD;
break;
case FIOS_TYPE_OLDFILE:
case FIOS_TYPE_OLD_SCENARIO:
_file_to_saveload.mode = SL_OLD_LOAD;
break;
#ifdef WITH_PNG
case FIOS_TYPE_PNG:
_file_to_saveload.mode = SL_PNG;
break;
#endif /* WITH_PNG */
case FIOS_TYPE_BMP:
_file_to_saveload.mode = SL_BMP;
break;
default:
_file_to_saveload.mode = SL_INVALID;
break;
}
new SaveLoadWindow(sld, abstract_filetype, fop);
}

@ -25,7 +25,7 @@
static bool CheckAPIVersion(const char *api_version)
{
return strcmp(api_version, "1.2") == 0 || strcmp(api_version, "1.3") == 0 || strcmp(api_version, "1.4") == 0 ||
strcmp(api_version, "1.5") == 0 || strcmp(api_version, "1.6") == 0;
strcmp(api_version, "1.5") == 0 || strcmp(api_version, "1.6") == 0 || strcmp(api_version, "1.7") == 0;
}
#if defined(WIN32)

@ -77,7 +77,7 @@ static void CleanupGeneration()
{
_generating_world = false;
if (_cursor.sprite == SPR_CURSOR_ZZZ) SetMouseCursor(SPR_CURSOR_MOUSE, PAL_NONE);
SetMouseCursorBusy(false);
/* Show all vital windows again, because we have hidden them */
if (_gw.threaded && _game_mode != GM_MENU) ShowVitalWindows();
SetModalProgress(false);
@ -204,7 +204,7 @@ static void _GenerateWorld(void *)
if (_debug_desync_level > 0) {
char name[MAX_PATH];
seprintf(name, lastof(name), "dmp_cmds_%08x_%08x.sav", _settings_game.game_creation.generation_seed, _date);
SaveOrLoad(name, SL_SAVE, AUTOSAVE_DIR, false);
SaveOrLoad(name, SLO_SAVE, DFT_GAME_FILE, AUTOSAVE_DIR, false);
}
} catch (...) {
BasePersistentStorageArray::SwitchMode(PSM_LEAVE_GAMELOOP, true);
@ -331,7 +331,7 @@ void GenerateWorld(GenWorldMode mode, uint size_x, uint size_y, bool reset_setti
_gw.thread = NULL;
}
if (!VideoDriver::GetInstance()->HasGUI() || !ThreadObject::New(&_GenerateWorld, NULL, &_gw.thread)) {
if (!VideoDriver::GetInstance()->HasGUI() || !ThreadObject::New(&_GenerateWorld, NULL, &_gw.thread, "ottd:genworld")) {
DEBUG(misc, 1, "Cannot create genworld thread, reverting to single-threaded mode");
_gw.threaded = false;
_modal_progress_work_mutex->EndCritical();

@ -26,6 +26,7 @@
#include "town.h"
#include "core/geometry_func.hpp"
#include "core/random_func.hpp"
#include "saveload/saveload.h"
#include "progress.h"
#include "error.h"
@ -832,7 +833,7 @@ static void _ShowGenerateLandscape(GenerateLandscapeWindowMode mode)
if (mode == GLWM_HEIGHTMAP) {
/* If the function returns negative, it means there was a problem loading the heightmap */
if (!GetHeightmapDimensions(_file_to_saveload.name, &x, &y)) return;
if (!GetHeightmapDimensions(_file_to_saveload.detail_ftype, _file_to_saveload.name, &x, &y)) return;
}
WindowDesc *desc = (mode == GLWM_HEIGHTMAP) ? &_heightmap_load_desc : &_generate_landscape_desc;
@ -1190,7 +1191,7 @@ struct GenerateProgressWindow : public Window {
{
switch (widget) {
case WID_GP_ABORT:
if (_cursor.sprite == SPR_CURSOR_ZZZ) SetMouseCursor(SPR_CURSOR_MOUSE, PAL_NONE);
SetMouseCursorBusy(false);
ShowQuery(
STR_GENERATION_ABORT_CAPTION,
STR_GENERATION_ABORT_MESSAGE,

@ -1223,10 +1223,6 @@ void DrawMouseCursor()
if (_screen.dst_ptr == NULL) return;
Blitter *blitter = BlitterFactory::GetCurrentBlitter();
int x;
int y;
int w;
int h;
/* Redraw mouse cursor but only when it's inside the window */
if (!_cursor.in_window) return;
@ -1237,36 +1233,44 @@ void DrawMouseCursor()
UndrawMouseCursor();
}
w = _cursor.size.x;
x = _cursor.pos.x + _cursor.offs.x + _cursor.short_vehicle_offset;
if (x < 0) {
w += x;
x = 0;
/* Determine visible area */
int left = _cursor.pos.x + _cursor.total_offs.x;
int width = _cursor.total_size.x;
if (left < 0) {
width += left;
left = 0;
}
if (left + width > _screen.width) {
width = _screen.width - left;
}
if (w > _screen.width - x) w = _screen.width - x;
if (w <= 0) return;
_cursor.draw_pos.x = x;
_cursor.draw_size.x = w;
if (width <= 0) return;
h = _cursor.size.y;
y = _cursor.pos.y + _cursor.offs.y;
if (y < 0) {
h += y;
y = 0;
int top = _cursor.pos.y + _cursor.total_offs.y;
int height = _cursor.total_size.y;
if (top < 0) {
height += top;
top = 0;
}
if (h > _screen.height - y) h = _screen.height - y;
if (h <= 0) return;
_cursor.draw_pos.y = y;
_cursor.draw_size.y = h;
if (top + height > _screen.height) {
height = _screen.height - top;
}
if (height <= 0) return;
_cursor.draw_pos.x = left;
_cursor.draw_pos.y = top;
_cursor.draw_size.x = width;
_cursor.draw_size.y = height;
uint8 *buffer = _cursor_backup.Allocate(blitter->BufferSize(w, h));
uint8 *buffer = _cursor_backup.Allocate(blitter->BufferSize(_cursor.draw_size.x, _cursor.draw_size.y));
/* Make backup of stuff below cursor */
blitter->CopyToBuffer(blitter->MoveTo(_screen.dst_ptr, _cursor.draw_pos.x, _cursor.draw_pos.y), buffer, _cursor.draw_size.x, _cursor.draw_size.y);
/* Draw cursor on screen */
_cur_dpi = &_screen;
DrawSprite(_cursor.sprite, _cursor.pal, _cursor.pos.x + _cursor.short_vehicle_offset, _cursor.pos.y);
for (uint i = 0; i < _cursor.sprite_count; ++i) {
DrawSprite(_cursor.sprite_seq[i].sprite, _cursor.sprite_seq[i].pal, _cursor.pos.x + _cursor.sprite_pos[i].x, _cursor.pos.y + _cursor.sprite_pos[i].y);
}
VideoDriver::GetInstance()->MakeDirty(_cursor.draw_pos.x, _cursor.draw_pos.y, _cursor.draw_size.x, _cursor.draw_size.y);
@ -1525,15 +1529,33 @@ bool FillDrawPixelInfo(DrawPixelInfo *n, int left, int top, int width, int heigh
*/
void UpdateCursorSize()
{
CursorVars *cv = &_cursor;
const Sprite *p = GetSprite(GB(cv->sprite, 0, SPRITE_WIDTH), ST_NORMAL);
cv->size.y = UnScaleGUI(p->height);
cv->size.x = UnScaleGUI(p->width);
cv->offs.x = UnScaleGUI(p->x_offs);
cv->offs.y = UnScaleGUI(p->y_offs);
/* Ignore setting any cursor before the sprites are loaded. */
if (GetMaxSpriteID() == 0) return;
assert_compile(lengthof(_cursor.sprite_seq) == lengthof(_cursor.sprite_pos));
assert(_cursor.sprite_count <= lengthof(_cursor.sprite_seq));
for (uint i = 0; i < _cursor.sprite_count; ++i) {
const Sprite *p = GetSprite(GB(_cursor.sprite_seq[i].sprite, 0, SPRITE_WIDTH), ST_NORMAL);
Point offs, size;
offs.x = UnScaleGUI(p->x_offs) + _cursor.sprite_pos[i].x;
offs.y = UnScaleGUI(p->y_offs) + _cursor.sprite_pos[i].y;
size.x = UnScaleGUI(p->width);
size.y = UnScaleGUI(p->height);
if (i == 0) {
_cursor.total_offs = offs;
_cursor.total_size = size;
} else {
int right = max(_cursor.total_offs.x + _cursor.total_size.x, offs.x + size.x);
int bottom = max(_cursor.total_offs.y + _cursor.total_size.y, offs.y + size.y);
if (offs.x < _cursor.total_offs.x) _cursor.total_offs.x = offs.x;
if (offs.y < _cursor.total_offs.y) _cursor.total_offs.y = offs.y;
_cursor.total_size.x = right - _cursor.total_offs.x;
_cursor.total_size.y = bottom - _cursor.total_offs.y;
}
}
cv->dirty = true;
_cursor.dirty = true;
}
/**
@ -1543,14 +1565,15 @@ void UpdateCursorSize()
*/
static void SetCursorSprite(CursorID cursor, PaletteID pal)
{
CursorVars *cv = &_cursor;
if (cv->sprite == cursor) return;
if (_cursor.sprite_count == 1 && _cursor.sprite_seq[0].sprite == cursor && _cursor.sprite_seq[0].pal == pal) return;
cv->sprite = cursor;
cv->pal = pal;
UpdateCursorSize();
_cursor.sprite_count = 1;
_cursor.sprite_seq[0].sprite = cursor;
_cursor.sprite_seq[0].pal = pal;
_cursor.sprite_pos[0].x = 0;
_cursor.sprite_pos[0].y = 0;
cv->short_vehicle_offset = 0;
UpdateCursorSize();
}
static void SwitchAnimatedCursor()
@ -1559,7 +1582,7 @@ static void SwitchAnimatedCursor()
if (cur == NULL || cur->sprite == AnimCursor::LAST) cur = _cursor.animate_list;
SetCursorSprite(cur->sprite, _cursor.pal);
SetCursorSprite(cur->sprite, _cursor.sprite_seq[0].pal);
_cursor.animate_timeout = cur->display_time;
_cursor.animate_cur = cur + 1;
@ -1572,6 +1595,19 @@ void CursorTick()
}
}
/**
* Set or unset the ZZZ cursor.
* @param busy Whether to show the ZZZ cursor.
*/
void SetMouseCursorBusy(bool busy)
{
if (busy) {
if (_cursor.sprite_seq[0].sprite == SPR_CURSOR_MOUSE) SetMouseCursor(SPR_CURSOR_ZZZ, PAL_NONE);
} else {
if (_cursor.sprite_seq[0].sprite == SPR_CURSOR_ZZZ) SetMouseCursor(SPR_CURSOR_MOUSE, PAL_NONE);
}
}
/**
* Assign a single non-animated sprite to the cursor.
* @param sprite Sprite to draw for the cursor.
@ -1595,7 +1631,7 @@ void SetAnimatedMouseCursor(const AnimCursor *table)
{
_cursor.animate_list = table;
_cursor.animate_cur = NULL;
_cursor.pal = PAL_NONE;
_cursor.sprite_seq[0].pal = PAL_NONE;
SwitchAnimatedCursor();
}

@ -145,6 +145,7 @@ bool FillDrawPixelInfo(DrawPixelInfo *n, int left, int top, int width, int heigh
/* window.cpp */
void DrawOverlappedWindowForAll(int left, int top, int right, int bottom);
void SetMouseCursorBusy(bool busy);
void SetMouseCursor(CursorID cursor, PaletteID pal);
void SetAnimatedMouseCursor(const AnimCursor *table);
void CursorTick();
@ -160,16 +161,16 @@ void GetBroadestDigit(uint *front, uint *next, FontSize size = FS_NORMAL);
int GetCharacterHeight(FontSize size);
/** Height of characters in the small (#FS_SMALL) font. */
/** Height of characters in the small (#FS_SMALL) font. @note Some characters may be oversized. */
#define FONT_HEIGHT_SMALL (GetCharacterHeight(FS_SMALL))
/** Height of characters in the normal (#FS_NORMAL) font. */
/** Height of characters in the normal (#FS_NORMAL) font. @note Some characters may be oversized. */
#define FONT_HEIGHT_NORMAL (GetCharacterHeight(FS_NORMAL))
/** Height of characters in the large (#FS_LARGE) font. */
/** Height of characters in the large (#FS_LARGE) font. @note Some characters may be oversized. */
#define FONT_HEIGHT_LARGE (GetCharacterHeight(FS_LARGE))
/** Height of characters in the large (#FS_MONO) font. */
/** Height of characters in the large (#FS_MONO) font. @note Some characters may be oversized. */
#define FONT_HEIGHT_MONO (GetCharacterHeight(FS_MONO))
extern DrawPixelInfo *_cur_dpi;

@ -115,29 +115,35 @@ struct AnimCursor {
/** Collection of variables for cursor-display and -animation */
struct CursorVars {
Point pos, size, offs, delta; ///< position, size, offset from top-left, and movement
Point draw_pos, draw_size; ///< position and size bounding-box for drawing
int short_vehicle_offset; ///< offset of the X for short vehicles
CursorID sprite; ///< current image of cursor
PaletteID pal;
int wheel; ///< mouse wheel movement
/* Logical mouse position */
Point pos; ///< logical mouse position
Point delta; ///< relative mouse movement in this tick
int wheel; ///< mouse wheel movement
bool fix_at; ///< mouse is moving, but cursor is not (used for scrolling)
/* We need two different vars to keep track of how far the scrollwheel moved.
* OSX uses this for scrolling around the map. */
int v_wheel;
int h_wheel;
/* Mouse appearance */
PalSpriteID sprite_seq[16]; ///< current image of cursor
Point sprite_pos[16]; ///< relative position of individual sprites
uint sprite_count; ///< number of sprites to draw
Point total_offs, total_size; ///< union of sprite properties
Point draw_pos, draw_size; ///< position and size bounding-box for drawing
const AnimCursor *animate_list; ///< in case of animated cursor, list of frames
const AnimCursor *animate_cur; ///< in case of animated cursor, current frame
uint animate_timeout; ///< in case of animated cursor, number of ticks to show the current cursor
bool visible; ///< cursor is visible
bool dirty; ///< the rect occupied by the mouse is dirty (redraw)
bool fix_at; ///< mouse is moving, but cursor is not (used for scrolling)
bool in_window; ///< mouse inside this window, determines drawing logic
bool visible; ///< cursor is visible
bool dirty; ///< the rect occupied by the mouse is dirty (redraw)
bool in_window; ///< mouse inside this window, determines drawing logic
bool vehchain; ///< vehicle chain is dragged
/* Drag data */
bool vehchain; ///< vehicle chain is dragged
bool UpdateCursorPosition(int x, int y, bool queued_warp);

@ -627,8 +627,8 @@ public:
this->vehicle_sel = v->index;
int image = v->GetImage(_current_text_dir == TD_RTL ? DIR_E : DIR_W, EIT_IN_LIST);
SetObjectToPlaceWnd(image, GetVehiclePalette(v), HT_DRAG, this);
SetObjectToPlaceWnd(SPR_CURSOR_MOUSE, PAL_NONE, HT_DRAG, this);
SetMouseCursorVehicle(v, EIT_IN_LIST);
_cursor.vehchain = true;
this->SetDirty();

@ -102,7 +102,7 @@ static void ReadHeightmapPNGImageData(byte *map, png_structp png_ptr, png_infop
* If map == NULL only the size of the PNG is read, otherwise a map
* with grayscale pixels is allocated and assigned to *map.
*/
static bool ReadHeightmapPNG(char *filename, uint *x, uint *y, byte **map)
static bool ReadHeightmapPNG(const char *filename, uint *x, uint *y, byte **map)
{
FILE *fp;
png_structp png_ptr = NULL;
@ -232,7 +232,7 @@ static void ReadHeightmapBMPImageData(byte *map, BmpInfo *info, BmpData *data)
* If map == NULL only the size of the BMP is read, otherwise a map
* with grayscale pixels is allocated and assigned to *map.
*/
static bool ReadHeightmapBMP(char *filename, uint *x, uint *y, byte **map)
static bool ReadHeightmapBMP(const char *filename, uint *x, uint *y, byte **map)
{
FILE *f;
BmpInfo info;
@ -444,45 +444,56 @@ void FixSlopes()
}
/**
* Reads the heightmap with the correct file reader
* Reads the heightmap with the correct file reader.
* @param dft Type of image file.
* @param filename Name of the file to load.
* @param [out] x Length of the image.
* @param [out] y Height of the image.
* @param [inout] map If not \c NULL, destination to store the loaded block of image data.
* @return Whether loading was successful.
*/
static bool ReadHeightMap(char *filename, uint *x, uint *y, byte **map)
static bool ReadHeightMap(DetailedFileType dft, const char *filename, uint *x, uint *y, byte **map)
{
switch (_file_to_saveload.mode) {
default: NOT_REACHED();
switch (dft) {
default:
NOT_REACHED();
#ifdef WITH_PNG
case SL_PNG:
case DFT_HEIGHTMAP_PNG:
return ReadHeightmapPNG(filename, x, y, map);
#endif /* WITH_PNG */
case SL_BMP:
case DFT_HEIGHTMAP_BMP:
return ReadHeightmapBMP(filename, x, y, map);
}
}
/**
* Get the dimensions of a heightmap.
* @param dft Type of image file.
* @param filename to query
* @param x dimension x
* @param y dimension y
* @return Returns false if loading of the image failed.
*/
bool GetHeightmapDimensions(char *filename, uint *x, uint *y)
bool GetHeightmapDimensions(DetailedFileType dft, const char *filename, uint *x, uint *y)
{
return ReadHeightMap(filename, x, y, NULL);
return ReadHeightMap(dft, filename, x, y, NULL);
}
/**
* Load a heightmap from file and change the map in his current dimensions
* to a landscape representing the heightmap.
* It converts pixels to height. The brighter, the higher.
* @param dft Type of image file.
* @param filename of the heightmap file to be imported
*/
void LoadHeightmap(char *filename)
void LoadHeightmap(DetailedFileType dft, const char *filename)
{
uint x, y;
byte *map = NULL;
if (!ReadHeightMap(filename, &x, &y, &map)) {
if (!ReadHeightMap(dft, filename, &x, &y, &map)) {
free(map);
return;
}

@ -12,6 +12,8 @@
#ifndef HEIGHTMAP_H
#define HEIGHTMAP_H
#include "fileio_type.h"
/**
* Order of these enums has to be the same as in lang/english.txt
* Otherwise you will get inconsistent behaviour.
@ -21,8 +23,8 @@ enum HeightmapRotation {
HM_CLOCKWISE, ///< Rotate the map clockwise 45 degrees
};
bool GetHeightmapDimensions(char *filename, uint *x, uint *y);
void LoadHeightmap(char *filename);
bool GetHeightmapDimensions(DetailedFileType dft, const char *filename, uint *x, uint *y);
void LoadHeightmap(DetailedFileType dft, const char *filename);
void FlatEmptyWorld(byte tile_height);
void FixSlopes();

@ -16,7 +16,6 @@
#include "fileio_func.h"
#if (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 199309L) || (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE >= 500)
# define WITH_FDATASYNC
# include <unistd.h>
#endif
@ -80,7 +79,7 @@ bool IniFile::SaveToDisk(const char *filename)
* APIs to do so. We only need to flush the data as the metadata itself
* (modification date etc.) is not important to us; only the real data is.
*/
#ifdef WITH_FDATASYNC
#if defined(_POSIX_SYNCHRONIZED_IO) && _POSIX_SYNCHRONIZED_IO > 0
int ret = fdatasync(fileno(f));
fclose(f);
if (ret != 0) return false;

@ -111,9 +111,9 @@ struct SelectGameWindow : public Window {
}
break;
case WID_SGI_LOAD_GAME: ShowSaveLoadDialog(SLD_LOAD_GAME); break;
case WID_SGI_PLAY_SCENARIO: ShowSaveLoadDialog(SLD_LOAD_SCENARIO); break;
case WID_SGI_PLAY_HEIGHTMAP: ShowSaveLoadDialog(SLD_LOAD_HEIGHTMAP); break;
case WID_SGI_LOAD_GAME: ShowSaveLoadDialog(FT_SAVEGAME, SLO_LOAD); break;
case WID_SGI_PLAY_SCENARIO: ShowSaveLoadDialog(FT_SCENARIO, SLO_LOAD); break;
case WID_SGI_PLAY_HEIGHTMAP: ShowSaveLoadDialog(FT_HEIGHTMAP,SLO_LOAD); break;
case WID_SGI_EDIT_SCENARIO: StartScenarioEditor(); break;
case WID_SGI_PLAY_NETWORK:

@ -31,6 +31,7 @@
#include "object_base.h"
#include "company_func.h"
#include "pathfinder/npf/aystar.h"
#include "saveload/saveload.h"
#include <list>
#include <set>
@ -1221,7 +1222,7 @@ void GenerateLandscape(byte mode)
if (mode == GWM_HEIGHTMAP) {
SetGeneratingWorldProgress(GWP_LANDSCAPE, steps + GLS_HEIGHTMAP);
LoadHeightmap(_file_to_saveload.name);
LoadHeightmap(_file_to_saveload.detail_ftype, _file_to_saveload.name);
IncreaseGeneratingWorldProgress(GWP_LANDSCAPE);
} else if (_settings_game.game_creation.land_generator == LG_TERRAGENESIS) {
SetGeneratingWorldProgress(GWP_LANDSCAPE, steps + GLS_TERRAGENESIS);

@ -2602,29 +2602,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Velde
STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Sneeu-bedekte land
STR_LAI_CLEAR_DESCRIPTION_DESERT :Woestyn
STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} spoor
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} spoor met blok seine
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} spoor met voor-seine
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} spoor met uitgang-seine
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} spoor met kombinasie-seine
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} spoor met roete seine
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} spoor met een-rigting pad seine
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} spoor met blok en voor-seine
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} spoor met blok en uitgang-seine
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} spoor met blok en kombinasie-seine
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} spoor met blok en pad seine
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} spoor met blok en een-rigting pad seine
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} spoor met voor en uitgang seine
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} spoor met voor en kombinasie-seine
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} spoor met voor en pad-seine
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} spoor met voor en een-rigting pad seine
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} spoor met uitgang en kombinasie-seine
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} spoor met uitgang en pad-seine
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} spoor met uitgang en een-rigting pad seine
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} spoor met kombinasie en pad seine
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} spoor met kombinasie en eenrigting-pad seine
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} spoor met pad en een-rigting pad seine
STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} trein diensstasie
STR_LAI_RAIL_DESCRIPTION_TRACK :Spoorweg spoor
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Spoorweg spoor met blok seine
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Spoorweg spoor met voor-seine
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Spoorweg spoor met uitgang-seine
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Spoorweg spoor met kombinasie-seine
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Spoorweg spoor met roete seine
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Spoorweg spoor met een-rigting pad seine
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Spoorweg spoor met blok en voor-seine
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Spoorweg spoor met blok en uitgang-seine
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Spoorweg spoor met blok en kombinasie-seine
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Spoorweg spoor met blok en pad seine
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Spoorweg spoor met blok en een-rigting pad seine
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Spoorweg spoor met voor en uitgang seine
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Spoorweg spoor met voor en kombinasie-seine
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Spoorweg spoor met voor en pad-seine
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Spoorweg spoor met voor en een-rigting pad seine
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Spoorweg spoor met uitgang en kombinasie-seine
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Spoorweg spoor met uitgang en pad-seine
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Spoorweg spoor met uitgang en een-rigting pad seine
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Spoorweg spoor met kombinasie en pad seine
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Spoorweg spoor met kombinasie en eenrigting-pad seine
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Spoorweg spoor met pad en een-rigting pad seine
STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Spoorweg trein diensstasie
STR_LAI_ROAD_DESCRIPTION_ROAD :Pad
STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Pad met straatligte
@ -2688,7 +2688,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Maatskappy-besi
STR_ABOUT_OPENTTD :{WHITE}Oor OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Oorspronklike kopiereg {COPYRIGHT} 1995 Chris Sawyer, Alle regte voorbehou
STR_ABOUT_VERSION :{BLACK}OpenTTD uitgawe {REV}
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 Die OpenTTD span
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 Die OpenTTD span
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Spaar Spel
@ -2875,7 +2875,7 @@ STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK}Gaan na
STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Vorige sprite
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Gaan na vorige normale sprite, en ignoreer enige pseudo/her-kleur/font sprite en spring terug na die einde
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Voorstelling van geselekteerde sprite. Die belyning word geignoreer waneer sprite geteken word
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Beweeg die sprite rond, verander die X en Y afwyking
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Beweeg die sprite rond, verander die X en Y afwyking. Ctrl-klik om die sprite agt lengtes rond te beweeg op 'n slag
STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Relatiewe herstel
STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Herstel die huidige relatiewe verplasing
STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}X verplasing: {NUM}, Y verplasing: {NUM} (Werklik)
@ -2890,7 +2890,7 @@ STR_NEWGRF_ERROR_MSG_INFO :{SILVER}{STRING
STR_NEWGRF_ERROR_MSG_WARNING :{RED}Waarskuwing: {SILVER}{STRING}
STR_NEWGRF_ERROR_MSG_ERROR :{RED}Fout: {SILVER}{STRING}
STR_NEWGRF_ERROR_MSG_FATAL :{RED}Fataal: {SILVER}{STRING}
STR_NEWGRF_ERROR_FATAL_POPUP :{WHITE}'n Fataale NewGRF fout het gebeur: {}{STRING}
STR_NEWGRF_ERROR_FATAL_POPUP :{WHITE}'n Fataale NewGRF fout het gebeur:{}{STRING}
STR_NEWGRF_ERROR_VERSION_NUMBER :{1:STRING} sal nie met die TTDPatch uitgawe rapporteer deur OpenTTD werk nie.
STR_NEWGRF_ERROR_DOS_OR_WINDOWS :{1:STRING} is vir die {STRING} uitgawe van TTD.
STR_NEWGRF_ERROR_UNSET_SWITCH :{1:STRING} is onderwerp om saam met {STRING} gebruik te word
@ -2924,7 +2924,7 @@ STR_NEWGRF_TOO_MANY_NEWGRFS :{WHITE}Kan nie
STR_NEWGRF_COMPATIBLE_LOAD_WARNING :{WHITE}Versoenbare GRF(s) gelaai vir vermiste lêers
STR_NEWGRF_DISABLED_WARNING :{WHITE}Vermiste GRF lêers is gedeaktiveer
STR_NEWGRF_UNPAUSE_WARNING_TITLE :{YELLOW}GRF leêr(s) ontbreek
STR_NEWGRF_UNPAUSE_WARNING :{WHITE}Hervatting kan veroorsaak dat OpenTTD bots. Moet nie daaropeenvolgende botsings verslae rapporteer nie. {}Will jy rêrig unpause?
STR_NEWGRF_UNPAUSE_WARNING :{WHITE}Hervatting kan veroorsaak dat OpenTTD bots. Moet nie daaropeenvolgende botsings verslae rapporteer nie.{}Will jy rêrig unpause?
# NewGRF status
STR_NEWGRF_LIST_NONE :Geen
@ -3558,7 +3558,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} waneer
STR_REPLACE_VEHICLES_STOP :{BLACK}Staak vervanging
STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Druk om die vervanging van die linker gekose enjin tipe te stop
STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Vervang: {ORANGE}{STRING}
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Skakel tussen enjin en wa vervang vensters
STR_REPLACE_ENGINES :Enjin
STR_REPLACE_WAGONS :Waens
@ -4064,7 +4063,7 @@ STR_MESSAGE_ESTIMATED_COST :{WHITE}Beraamde
STR_MESSAGE_ESTIMATED_INCOME :{WHITE}Beraamde Inkomste: {CURRENCY_LONG}
# Saveload messages
STR_ERROR_SAVE_STILL_IN_PROGRESS :{WHITE}Stoor van speletjie is nog besig, {}wag asb tot dit klaar is!
STR_ERROR_SAVE_STILL_IN_PROGRESS :{WHITE}Stoor van speletjie is nog besig,{}wag asb tot dit klaar is!
STR_ERROR_AUTOSAVE_FAILED :{WHITE}Outostoor het misluk
STR_ERROR_UNABLE_TO_READ_DRIVE :{BLACK}Kan nie skyf lees nie
STR_ERROR_GAME_SAVE_FAILED :{WHITE}Speletjie Spaar Misluk{}{STRING}
@ -4173,7 +4172,7 @@ STR_ERROR_TOO_MANY_TOWNS :{WHITE}... te v
STR_ERROR_NO_SPACE_FOR_TOWN :{WHITE}... daar is nie meer spasie oor op die kaart nie
STR_ERROR_TOWN_EXPAND_WARN_NO_ROADS :{WHITE} Die dorp sal nie paaie bou nie. Jy kan dit verander deur die bou van paaie via Stellings-> Omgewings-> Dorpe te aktiveer
STR_ERROR_ROAD_WORKS_IN_PROGRESS :{WHITE}Pad werke in verloop
STR_ERROR_TOWN_CAN_T_DELETE :{WHITE}Kan nie die dorp verwyder nie... {}'n Stasie of depot verwys na die dorp of die blok wat deur die dorp besit word kan nie verwyder word nie.
STR_ERROR_TOWN_CAN_T_DELETE :{WHITE}Kan nie die dorp verwyder nie...{}'n Stasie of depot verwys na die dorp of die blok wat deur die dorp besit word kan nie verwyder word nie.
STR_ERROR_STATUE_NO_SUITABLE_PLACE :{WHITE}... daar is geen plek vir 'n standbeeld in die middel van die dorp
# Industry related errors

@ -41,7 +41,7 @@ STR_CARGO_PLURAL_VALUABLES :مقتنيات
STR_CARGO_PLURAL_COPPER_ORE :منجم نحاس
STR_CARGO_PLURAL_MAIZE :ذرة
STR_CARGO_PLURAL_FRUIT :فواكة
STR_CARGO_PLURAL_DIAMONDS :جواهر
STR_CARGO_PLURAL_DIAMONDS :ألماس
STR_CARGO_PLURAL_FOOD :طعام
STR_CARGO_PLURAL_PAPER :ورق
STR_CARGO_PLURAL_GOLD :ذهب
@ -97,10 +97,10 @@ STR_CARGO_SINGULAR_FIZZY_DRINK :مشروب غا
STR_QUANTITY_NOTHING :
STR_QUANTITY_PASSENGERS :{COMMA} راكب
STR_QUANTITY_COAL :{WEIGHT_LONG} من الفحم
STR_QUANTITY_MAIL :{COMMA} صندوق من البريد
STR_QUANTITY_MAIL :{COMMA}{NBSP} كيس بريد
STR_QUANTITY_OIL :{VOLUME_LONG} من النفط
STR_QUANTITY_LIVESTOCK :{COMMA}راس من الماشية
STR_QUANTITY_GOODS :{COMMA} قفص من البضائع
STR_QUANTITY_LIVESTOCK :{COMMA}{NBSP}رأس ماشية
STR_QUANTITY_GOODS :{COMMA}{NBSP} صندوق بضائع
STR_QUANTITY_GRAIN :{WEIGHT_LONG} من الحبوب
STR_QUANTITY_WOOD :{WEIGHT_LONG} من الخشب
STR_QUANTITY_IRON_ORE :{WEIGHT_LONG} من خام الحديد
@ -109,16 +109,16 @@ STR_QUANTITY_VALUABLES :{COMMA}صندو
STR_QUANTITY_COPPER_ORE :{WEIGHT_LONG} من خام النحاس
STR_QUANTITY_MAIZE :{WEIGHT_LONG} من الذرة
STR_QUANTITY_FRUIT :{WEIGHT_LONG} من الفواكة
STR_QUANTITY_DIAMONDS :{COMMA}كيس من الجواهر
STR_QUANTITY_DIAMONDS :{COMMA}{NBSP}كيس ألماس
STR_QUANTITY_FOOD :{WEIGHT_LONG} من الطعام
STR_QUANTITY_PAPER :{WEIGHT_LONG} من الورق
STR_QUANTITY_GOLD :{COMMA}كيس من الذهب
STR_QUANTITY_GOLD :{COMMA}{NBSP} كيس ذهب
STR_QUANTITY_WATER :{VOLUME_LONG} من المياة
STR_QUANTITY_WHEAT :{WEIGHT_LONG} من القمح
STR_QUANTITY_RUBBER :{VOLUME_LONG} من المطاط
STR_QUANTITY_SUGAR :{WEIGHT_LONG} من السكر
STR_QUANTITY_TOYS :{COMMA}الالعاب
STR_QUANTITY_SWEETS :{COMMA} كيس من الحلويات
STR_QUANTITY_TOYS :{COMMA}{NBSP} لعبة
STR_QUANTITY_SWEETS :{COMMA}{NBSP} كيس حلويات
STR_QUANTITY_COLA :{VOLUME_LONG} من الكولا
STR_QUANTITY_CANDYFLOSS :{WEIGHT_LONG} من الحلاوة القطنية
STR_QUANTITY_BUBBLES :{COMMA}فقاعات
@ -165,12 +165,12 @@ STR_ABBREV_NONE :{TINY_FONT}لا
STR_ABBREV_ALL :{TINY_FONT}الكل
# 'Mode' of transport for cargoes
STR_PASSENGERS :{COMMA} ركاب
STR_BAGS :{COMMA} صناديق
STR_TONS :{COMMA} اطنان/طن
STR_LITERS :{COMMA} لتر
STR_PASSENGERS :{COMMA}{NBSP} راكب
STR_BAGS :{COMMA}{NBSP} كيس
STR_TONS :{COMMA}{NBSP} طن
STR_LITERS :{COMMA}{NBSP} لتر
STR_ITEMS :{COMMA} وحدة
STR_CRATES :{COMMA} صناديق
STR_CRATES :{COMMA}{NBSP} صندوق
# Colours, do not shuffle
STR_COLOUR_DARK_BLUE :ازرق غامق
@ -191,32 +191,32 @@ STR_COLOUR_GREY :رمادي
STR_COLOUR_WHITE :ابيض
# Units used in OpenTTD
STR_UNITS_VELOCITY_IMPERIAL :{COMMA}ميل/س
STR_UNITS_VELOCITY_METRIC :{COMMA}كم/س
STR_UNITS_VELOCITY_SI :{COMMA}م/ث
STR_UNITS_VELOCITY_IMPERIAL :{COMMA}{NBSP}ميل/س
STR_UNITS_VELOCITY_METRIC :{COMMA}{NBSP}كم/س
STR_UNITS_VELOCITY_SI :{COMMA}{NBSP}م/ث
STR_UNITS_POWER_IMPERIAL :{COMMA}حصان
STR_UNITS_POWER_METRIC :{COMMA}حصان
STR_UNITS_POWER_SI :{COMMA}ك واط
STR_UNITS_POWER_IMPERIAL :{COMMA}{NBSP}حصان
STR_UNITS_POWER_METRIC :{COMMA}{NBSP}حصان
STR_UNITS_POWER_SI :{COMMA}{NBSP}ك واط
STR_UNITS_WEIGHT_SHORT_IMPERIAL :{COMMA}ت
STR_UNITS_WEIGHT_SHORT_METRIC :{COMMA}طن
STR_UNITS_WEIGHT_SHORT_SI :{COMMA}كجم
STR_UNITS_WEIGHT_SHORT_IMPERIAL :{COMMA}{NBSP} طن
STR_UNITS_WEIGHT_SHORT_METRIC :{COMMA}{NBSP}طن
STR_UNITS_WEIGHT_SHORT_SI :{COMMA}{NBSP}كجم
STR_UNITS_WEIGHT_LONG_METRIC :{COMMA} طن
STR_UNITS_WEIGHT_LONG_SI :{COMMA}كجم
STR_UNITS_WEIGHT_LONG_METRIC :{COMMA}{NBSP} طن
STR_UNITS_WEIGHT_LONG_SI :{COMMA}{NBSP}كجم
STR_UNITS_VOLUME_SHORT_IMPERIAL :{COMMA}غال
STR_UNITS_VOLUME_SHORT_METRIC :{COMMA}ل
STR_UNITS_VOLUME_SHORT_SI :{COMMA}م3
STR_UNITS_VOLUME_SHORT_IMPERIAL :{COMMA}{NBSP}غال
STR_UNITS_VOLUME_SHORT_METRIC :{COMMA}{NBSP}ل
STR_UNITS_VOLUME_SHORT_SI :{COMMA}{NBSP}م3
STR_UNITS_VOLUME_LONG_METRIC :{COMMA} لتر
STR_UNITS_VOLUME_LONG_SI :{COMMA}م3
STR_UNITS_VOLUME_LONG_METRIC :{COMMA}{NBSP} لتر
STR_UNITS_VOLUME_LONG_SI :{COMMA}{NBSP}م3
STR_UNITS_FORCE_SI :{COMMA} كيلو نيوتن
STR_UNITS_FORCE_SI :{COMMA}{NBSP} كيلو نيوتن
STR_UNITS_HEIGHT_IMPERIAL :{COMMA} قدم
STR_UNITS_HEIGHT_SI :{COMMA} متر
STR_UNITS_HEIGHT_IMPERIAL :{COMMA}{NBSP} قدم
STR_UNITS_HEIGHT_SI :{COMMA}{NBSP} متر
# Common window strings
STR_LIST_FILTER_OSKTITLE :{BLACK} ادخل فلتر
@ -286,7 +286,7 @@ STR_SORT_BY_ENGINE_ID :نوع المح
STR_SORT_BY_COST :التكلفة
STR_SORT_BY_POWER :الطاقة
STR_SORT_BY_TRACTIVE_EFFORT :قوة الجذب
STR_SORT_BY_INTRO_DATE :بداية التشغيل
STR_SORT_BY_INTRO_DATE :بداية الإنتاج
STR_SORT_BY_RUNNING_COST :تكلفة التشغيل
STR_SORT_BY_POWER_VS_RUNNING_COST :القوة/تكلفة التشغيل
STR_SORT_BY_CARGO_CAPACITY :سعة الشحن
@ -351,6 +351,7 @@ STR_SCENEDIT_FILE_MENU_QUIT :انهاء
############ range for settings menu starts
STR_SETTINGS_MENU_GAME_OPTIONS :إعدادات اللعبه
STR_SETTINGS_MENU_CONFIG_SETTINGS_TREE :الإعدادات
STR_SETTINGS_MENU_SCRIPT_SETTINGS :الذكاء الصناعي/ اعدادات اللعبة
STR_SETTINGS_MENU_NEWGRF_SETTINGS :إعدادات اﻹضافات
STR_SETTINGS_MENU_TRANSPARENCY_OPTIONS :خيارات الشفافية
@ -749,17 +750,17 @@ STR_NEWS_CUSTOM_ITEM :{BIG_FONT}{BLAC
STR_NEWS_FIRST_TRAIN_ARRIVAL :{BIG_FONT}{BLACK} ... المواطنون يحتفلون{} اول قطار وصل في {STATION}!
STR_NEWS_FIRST_BUS_ARRIVAL :{BIG_FONT}{BLACK}يحتفل الأهالي ...{}بوصول اول باص للمحطة ...{STATION}!
STR_NEWS_FIRST_TRUCK_ARRIVAL :{BIG_FONT}{BLACK}الأهالي يحتفلون ... {}بوصول اول عربة الى .. {STATION}!
STR_NEWS_FIRST_TRUCK_ARRIVAL :{BIG_FONT}{BLACK}الأهالي يحتفلون ...{}بوصول اول عربة الى .. {STATION}!
STR_NEWS_FIRST_PASSENGER_TRAM_ARRIVAL :{BIG_FONT}{BLACK}المواطنون يحتفلون . . .{}بوصول اول عربة ركاب ترام الى {STATION}!
STR_NEWS_FIRST_CARGO_TRAM_ARRIVAL :{BIG_FONT}{BLACK}المواطنون يحتفلون . . . {}بوصول اول عربة ترام لمحطة {STATION}!
STR_NEWS_FIRST_SHIP_ARRIVAL :{BIG_FONT}{BLACK}المواطنون يحتفلون ... {}بوصول اول سفينة الى {STATION}!
STR_NEWS_FIRST_AIRCRAFT_ARRIVAL :{BIG_FONT}{BLACK}الأهالي يحتفلون . . . {}بوصول أول طائرة الى {STATION}!
STR_NEWS_FIRST_CARGO_TRAM_ARRIVAL :{BIG_FONT}{BLACK}المواطنون يحتفلون . . .{}بوصول اول عربة ترام لمحطة {STATION}!
STR_NEWS_FIRST_SHIP_ARRIVAL :{BIG_FONT}{BLACK}المواطنون يحتفلون ...{}بوصول اول سفينة الى {STATION}!
STR_NEWS_FIRST_AIRCRAFT_ARRIVAL :{BIG_FONT}{BLACK}الأهالي يحتفلون . . .{}بوصول أول طائرة الى {STATION}!
STR_NEWS_TRAIN_CRASH :{BIG_FONT}{BLACK}تحطم قطاراً!{}{COMMA} مات فى الحريق بعد الحادث
STR_NEWS_ROAD_VEHICLE_CRASH_DRIVER :{BIG_FONT}{BLACK}العربة تحطمت !{}السائق توفي في شعلة الحريق بعد الاصطدام بقطار
STR_NEWS_ROAD_VEHICLE_CRASH :{BIG_FONT}{BLACK}العربة تحطمت !{}{COMMA} توفي في شعلة الحريق بعد الاصطدام بقطار
STR_NEWS_AIRCRAFT_CRASH :{BIG_FONT}{BLACK}تحطم طائرة !{}{COMMA}ماتوا في الحريق بمطار {STATION}
STR_NEWS_PLANE_CRASH_OUT_OF_FUEL :{BIG_FONT}{BLACK}تحطم طائرة ! {}انتهى الوقود من الطائرة, {COMMA}توفي اثر الحادث !
STR_NEWS_PLANE_CRASH_OUT_OF_FUEL :{BIG_FONT}{BLACK}تحطم طائرة !{}انتهى الوقود من الطائرة, {COMMA}توفي اثر الحادث !
STR_NEWS_DISASTER_ZEPPELIN :{BIG_FONT}{BLACK}حادثة منطاد في {STATION}!
STR_NEWS_DISASTER_SMALL_UFO :{BIG_FONT}{BLACK}تحطم عربة في حادث تصادم بجسم غامض !
@ -789,7 +790,7 @@ STR_NEWS_INDUSTRY_CLOSURE_GENERAL :{BIG_FONT}{BLAC
STR_NEWS_INDUSTRY_CLOSURE_SUPPLY_PROBLEMS :{BIG_FONT}{BLACK}تسبب نقص في الامدادات الى الاغلاق الفوري ل {STRING}
STR_NEWS_INDUSTRY_CLOSURE_LACK_OF_TREES :{BIG_FONT}{BLACK} النقص في الشجر بالجوار ادى الى الاغلاق الفوري ل {STRING}.
STR_NEWS_EURO_INTRODUCTION :{BIG_FONT}{BLACK}العملة الموحدة للدول الأوربية! {}{}تم اعتماد العملة الأوربية الموحدة - اليورو - للمعاملات اليومية في دولتك!
STR_NEWS_EURO_INTRODUCTION :{BIG_FONT}{BLACK}العملة الموحدة للدول الأوربية!{}{}تم اعتماد العملة الأوربية الموحدة - اليورو - للمعاملات اليومية في دولتك!
STR_NEWS_BEGIN_OF_RECESSION :{BIG_FONT}{BLACK}ركود اقتصادي!{}{}خبراء الأقتصاد خائفون من ركود اقتصادي وشيك
STR_NEWS_END_OF_RECESSION :{BIG_FONT}{BLACK}الركود انتهى!{}{}العودة للصعود في الاقتصاد اعطى الثقة في قوة الاقتصاد
@ -834,9 +835,9 @@ STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION
STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} الآن تقبل {STRING}
STR_NEWS_STATION_NOW_ACCEPTS_CARGO_AND_CARGO :{WHITE}{STATION}الآن تقبل {STRING} و {STRING}
STR_NEWS_OFFER_OF_SUBSIDY_EXPIRED :{BIG_FONT}{BLACK} اعلان عن انتهاء عرض {}{} نقل {STRING} من {STRING} الى {STRING} لن يعطي ارباح اضافية بعد الآن .
STR_NEWS_SUBSIDY_WITHDRAWN_SERVICE :{BIG_FONT}{BLACK} تم سحب العرض {}{} نقل {STRING} من {STRING} الى {STRING} لم يعد معروض
STR_NEWS_SERVICE_SUBSIDY_OFFERED :{BIG_FONT}{BLACK}اعلان عن عرض {}{} نقل اول {STRING} من {STRING} الى {STRING} سوف يعطي زيادة ارباح في السنة القادمة.
STR_NEWS_OFFER_OF_SUBSIDY_EXPIRED :{BIG_FONT}{BLACK} اعلان عن انتهاء عرض{}{} نقل {STRING} من {STRING} الى {STRING} لن يعطي ارباح اضافية بعد الآن .
STR_NEWS_SUBSIDY_WITHDRAWN_SERVICE :{BIG_FONT}{BLACK} تم سحب العرض{}{} نقل {STRING} من {STRING} الى {STRING} لم يعد معروض
STR_NEWS_SERVICE_SUBSIDY_OFFERED :{BIG_FONT}{BLACK}اعلان عن عرض{}{} نقل اول {STRING} من {STRING} الى {STRING} سوف يعطي زيادة ارباح في السنة القادمة.
STR_NEWS_SERVICE_SUBSIDY_AWARDED_HALF :{BIG_FONT}{BLACK} العرض قد اعطي لـ {STRING}!{}{} نقل {STRING} من {STRING} الى {STRING} سوف يعطي زيادة 50% ارباح للسنة القادمة
STR_NEWS_SERVICE_SUBSIDY_AWARDED_DOUBLE :{BIG_FONT}{BLACK}العرض قد اعطي لـ {STRING}!{}{} نقل {STRING}من {STRING}الى {STRING} سوف يعطي ضعف الدخل للسنة القادمة
STR_NEWS_SERVICE_SUBSIDY_AWARDED_TRIPLE :{BIG_FONT}{BLACK}شركة {STRING} فازت بالعرض{}{} نقل {STRING} من {STRING} الى {STRING} سوف يعطي 3 اضعاف الدخل للسنة القادمة
@ -941,7 +942,12 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}دقة
STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}اختر دقة الشاشة
STR_GAME_OPTIONS_RESOLUTION_OTHER :اخرى
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :حجم اللوحة
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :حدد العنصر المطلوب
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :تقريب عادي
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :تقريب ×2
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :تقريب ×4
STR_GAME_OPTIONS_BASE_GRF :{BLACK} الواجهة الرسومية الاساسية
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK} اختر مجموعة الواجهة الرسومية
@ -1036,6 +1042,7 @@ STR_TERRAIN_TYPE_VERY_FLAT :مسطح تما
STR_TERRAIN_TYPE_FLAT :مسطح
STR_TERRAIN_TYPE_HILLY :مرتفعات - هضاب
STR_TERRAIN_TYPE_MOUNTAINOUS :جبال
STR_TERRAIN_TYPE_ALPINIST :شاهق
STR_CITY_APPROVAL_PERMISSIVE :متساهل
STR_CITY_APPROVAL_TOLERANT :متقبل
@ -1044,6 +1051,7 @@ STR_CITY_APPROVAL_HOSTILE :معاد
STR_WARNING_NO_SUITABLE_AI :{WHITE}لايوجد ذكاء اصطناعي متاح ...{}تستطيع تجميل العديد من الذكاء الاصطناعي عن طريق اللانترنت
# Settings tree window
STR_CONFIG_SETTING_TREE_CAPTION :الإعدادات
STR_CONFIG_SETTING_EXPAND_ALL :مدد الكل
STR_CONFIG_SETTING_COLLAPSE_ALL :إسحب الكل
@ -1053,12 +1061,12 @@ STR_CONFIG_SETTING_RESTRICT_BASIC :اﻹعدادا
STR_CONFIG_SETTING_TYPE_DROPDOWN_HELPTEXT :{BLACK}احصر القائمة على انواع اعدادات محددة
STR_CONFIG_SETTING_TYPE_DROPDOWN_ALL :كل الاعدادات
STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT :اعدادات العميل (غير مخزن في المحفوظات, يؤثر على كل الالعاب)
STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :اعدادات اللعبة (مخزن في المحفوظات, يؤثر على الالعاب الجديدة فقط)
STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :اعدادات اللعبة (مخزن في المحفوظات, يؤثر على اللعبة الحالية فقط)
STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :اعدادات الشركة (مخزن في المحفوظات, يؤثر على الالعاب الجديدة فقط)
STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :اعدادات الشركة (مخزن في المحفوظات: يؤثر على الشركة الحالية فقط)
STR_CONFIG_SETTING_CATEGORY_AND_TYPE_HIDES :{BLACK}عرض جميع النتائج بالنسبة للإعداد {}{SILVER} الفئة {BLACK} إلى {WHITE}{STRING} {BLACK}و{SILVER}نوع {BLACK} إلى{WHITE} جميع انواع الإعدادات
STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT :اعدادات العميل (لا يخزن في الحفظ ؛ يطبق على كل الالعاب)
STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :اعدادات اللعبة (يخزن في الحفظ ؛ يطبق على الالعاب الجديدة فقط)
STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :اعدادات اللعبة (يخزن في الحفظ ؛ يطبق على اللعبة الحالية فقط)
STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :اعدادات الشركة (يخزن في الحفظ ؛ يطبق على الالعاب الجديدة فقط)
STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :اعدادات الشركة (يخزن في الحفظ ؛ يطبق على الشركة الحالية فقط)
STR_CONFIG_SETTING_CATEGORY_AND_TYPE_HIDES :{BLACK}عرض جميع النتائج بالنسبة للإعداد{}{SILVER} الفئة {BLACK} إلى {WHITE}{STRING} {BLACK}و{SILVER}نوع {BLACK} إلى{WHITE} جميع انواع الإعدادات
STR_CONFIG_SETTINGS_NONE :{WHITE} - بدون -
STR_CONFIG_SETTING_OFF :قفل
@ -1078,7 +1086,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :متوسط
STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :يمين
STR_CONFIG_SETTING_AUTOSLOPE :السماح باعادة بناء التلال تحت المباني, الطرق, الخ .-الانحدار الذاتي- {STRING}
STR_CONFIG_SETTING_AUTOSLOPE :السماح بتحريك الأرض تحت المباني, الطرق, الخ : {STRING}
STR_CONFIG_SETTING_CATCHMENT :السماح بحدود اكثر واقعية للمحطات بحسب الحجم: {STRING}
STR_CONFIG_SETTING_EXTRADYNAMITE :السماح بحذف اكثر من الطرق المملوكة للمدينة و الجسور و غيرها: {STRING}
STR_CONFIG_SETTING_SMOKE_AMOUNT :كمية دخان/شرار القطارات:{STRING}
@ -1204,7 +1212,7 @@ STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :لا تصرف
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :الكل ما عدا عمليات البناء
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_LANDSCAPING :الكل ما عدا خيارات تعديل الخريطة
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :كل تصرف
STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :استخدام قائمة العربات المطورة: {STRING}
STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :استخدام المجموعات في قائمة العربات : {STRING}
STR_CONFIG_SETTING_LOADING_INDICATORS :تفعيل مؤشر التحميل: {STRING}
STR_CONFIG_SETTING_TIMETABLE_IN_TICKS :عرض جدولة الأعمال بالمهام بدلا من الأيام: {STRING}
STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE :عرض الوصول و المغادرة في جدولة الاعمال: {STRING}
@ -1400,6 +1408,7 @@ STR_INTRO_MULTIPLAYER :{BLACK}لعب
STR_INTRO_GAME_OPTIONS :{BLACK}إعدادات اللعبه
STR_INTRO_HIGHSCORE :{BLACK}قائمه المتفوقين
STR_INTRO_CONFIG_SETTINGS_TREE :الاعدادات
STR_INTRO_NEWGRF_SETTINGS :{BLACK} اعدادات NewGRF
STR_INTRO_ONLINE_CONTENT :{BLACK} إبحث عن المحتوى عبر الشبكه العنكبوتيه
STR_INTRO_SCRIPT_SETTINGS :{BLACK}إعدادات الذكاء الصناعى
@ -1418,6 +1427,7 @@ STR_INTRO_TOOLTIP_SUB_TROPICAL_LANDSCAPE :{BLACK}اختي
STR_INTRO_TOOLTIP_TOYLAND_LANDSCAPE :{BLACK}اختيار نمط الألعاب
STR_INTRO_TOOLTIP_GAME_OPTIONS :{BLACK}عرض خيارات اللعبة
STR_INTRO_TOOLTIP_CONFIG_SETTINGS_TREE :إعدادات العرض
STR_INTRO_TOOLTIP_NEWGRF_SETTINGS :{BLACK}عرض إعدادات اﻹضافات
STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK} ابحث عن محتوى جديد او تحديث
STR_INTRO_TOOLTIP_QUIT :{BLACK}اغلاق'OpenTTD'
@ -1831,7 +1841,7 @@ STR_NETWORK_MESSAGE_NAME_CHANGE :*** {STRING} ق
STR_NETWORK_MESSAGE_GIVE_MONEY :*** {STRING} اعطى شركتك : {2:CURRENCY_LONG}
STR_NETWORK_MESSAGE_GAVE_MONEY_AWAY :*** انت اعطيت {1:STRING} {2:CURRENCY_LONG}
STR_NETWORK_MESSAGE_SERVER_SHUTDOWN :{WHITE}اقفل الخادم الجلسة
STR_NETWORK_MESSAGE_SERVER_REBOOT :{WHITE}يتم بدأ الخادم من جديد ... {} الرجاء الأنتظار
STR_NETWORK_MESSAGE_SERVER_REBOOT :{WHITE}يتم بدأ الخادم من جديد ...{} الرجاء الأنتظار
# Content downloading window
STR_CONTENT_TITLE :{WHITE}تنزيل المحتوى
@ -1839,7 +1849,7 @@ STR_CONTENT_TYPE_CAPTION :{BLACK} نوع
STR_CONTENT_TYPE_CAPTION_TOOLTIP :{BLACK} نوع المحتوى
STR_CONTENT_NAME_CAPTION :{BLACK} الاسم
STR_CONTENT_NAME_CAPTION_TOOLTIP :{BLACK} اسم المحتوى
STR_CONTENT_MATRIX_TOOLTIP :{BLACK} اضغط على الخط لرؤية التفاصيل. {} اضغط على مربع الاختيار لتحميل.
STR_CONTENT_MATRIX_TOOLTIP :{BLACK} اضغط على الخط لرؤية التفاصيل.{} اضغط على مربع الاختيار لتحميل.
STR_CONTENT_SELECT_ALL_CAPTION :{BLACK} اختيار الكل
STR_CONTENT_SELECT_ALL_CAPTION_TOOLTIP :{BLACK} تحميل كامل المحتوى
STR_CONTENT_SELECT_UPDATES_CAPTION :{BLACK} اختر التحديث
@ -1982,17 +1992,17 @@ STR_STATION_CLASS_WAYP :نقطة عبو
STR_BUILD_SIGNAL_CAPTION :{WHITE}اختيار الإشارات
STR_BUILD_SIGNAL_SEMAPHORE_NORM_TOOLTIP :{BLACK}اشارة اقفال (بالاعلام){}هذة الاشارة الأساسية. تسمح بتواجد قطار واحد في القسم و الوقت الواحد
STR_BUILD_SIGNAL_SEMAPHORE_ENTRY_TOOLTIP :{BLACK}اشارة دخول (بالاعلام){} تكون خضراء عندما توجد اشارة خضراء في اشارات الخروج التالية لها. والا تكون حمراء.
STR_BUILD_SIGNAL_SEMAPHORE_EXIT_TOOLTIP :{BLACK}اشارة خروج (بالاعلام) {}تعمل مثل اشارة الاقفال, لكن يجب تنشيط الوضع الصحيح في الدخول و الاشارة المزدوجة.
STR_BUILD_SIGNAL_SEMAPHORE_COMBO_TOOLTIP :{BLACK}اشارة مزدوجة (بالاعلام) {} الاشارة المزدوجة تعمل للدخول و الخروج. فهي تسمح لك بعمل شجرة كبيرة من الاشارات
STR_BUILD_SIGNAL_SEMAPHORE_EXIT_TOOLTIP :{BLACK}اشارة خروج (بالاعلام){}تعمل مثل اشارة الاقفال, لكن يجب تنشيط الوضع الصحيح في الدخول و الاشارة المزدوجة.
STR_BUILD_SIGNAL_SEMAPHORE_COMBO_TOOLTIP :{BLACK}اشارة مزدوجة (بالاعلام){} الاشارة المزدوجة تعمل للدخول و الخروج. فهي تسمح لك بعمل شجرة كبيرة من الاشارات
STR_BUILD_SIGNAL_SEMAPHORE_PBS_TOOLTIP :{BLACK}اشارة طريق (بالاعلام){}تسمح بمرور اكثر من قطارفي القسم التالي اذا كان القطار يستطيع الوصول الى نقطة آمنة. يمكن تخطي الاشارة بالاتجاهين.
STR_BUILD_SIGNAL_SEMAPHORE_PBS_OWAY_TOOLTIP :{BLACK}اشارة الاتجاة الواحد (بالاعلام){}اشارة طريق تسمح باكثر من قطار يدخل في القسم التالي في نفس الوقت, اذا كان القطار يستطيع الوصول الى نقطة آمنة. لا يمكن تخطي اشارة الاتجاة الواحد من الخلف.
STR_BUILD_SIGNAL_ELECTRIC_NORM_TOOLTIP :{BLACK}اشارة اقفال (كهربائية){}هذة الاشارة الأساسية. تسمح بتواجد قطار واحد في القسم و الوقت الواحد
STR_BUILD_SIGNAL_ELECTRIC_ENTRY_TOOLTIP :{BLACK}اشارة دخول (كهربائية){} تكون خضراء عندما توجد اشارة خضراء في اشارات الخروج التالية لها. والا تكون حمراء.
STR_BUILD_SIGNAL_ELECTRIC_EXIT_TOOLTIP :{BLACK}اشارة خروج (كهربائية) {}تعمل مثل اشارة الاقفال, لكن يجب تنشيط الوضع الصحيح في الدخول و الاشارة المزدوجة.
STR_BUILD_SIGNAL_ELECTRIC_COMBO_TOOLTIP :{BLACK}اشارة مزدوجة (كهربائية) {} الاشارة المزدوجة تعمل للدخول و الخروج. فهي تسمح لك بعمل شجرة كبيرة من الاشارات.
STR_BUILD_SIGNAL_ELECTRIC_EXIT_TOOLTIP :{BLACK}اشارة خروج (كهربائية){}تعمل مثل اشارة الاقفال, لكن يجب تنشيط الوضع الصحيح في الدخول و الاشارة المزدوجة.
STR_BUILD_SIGNAL_ELECTRIC_COMBO_TOOLTIP :{BLACK}اشارة مزدوجة (كهربائية){} الاشارة المزدوجة تعمل للدخول و الخروج. فهي تسمح لك بعمل شجرة كبيرة من الاشارات.
STR_BUILD_SIGNAL_ELECTRIC_PBS_TOOLTIP :{BLACK}اشارة طريق(كهربائية){}تسمح بمروراكثرمن قطارفي القسم التالي اذا كان القطار يستطيع الوصول الى نقطة آمنة. يمكن تخطي الاشارة بالاتجاهين.
STR_BUILD_SIGNAL_ELECTRIC_PBS_OWAY_TOOLTIP :{BLACK}اشارة الاتجاة الواحد (كهربائية){}اشارة طريق تسمح باكثر من قطار يدخل في القسم التالي في نفس الوقت, اذا كان القطار يستطيع الوصول الى نقطة آمنة. لا يمكن تخطي اشارة الاتجاة الواحد من الخلف.
STR_BUILD_SIGNAL_CONVERT_TOOLTIP :{BLACK} تغيير الاشارات {} عند الاختيار, سوف يتم تغيير الاشارة الى النوع المختار. الضغط على مفتاح كنترول سوف يبدل بين انواع الاشارات.
STR_BUILD_SIGNAL_CONVERT_TOOLTIP :{BLACK} تغيير الاشارات{} عند الاختيار, سوف يتم تغيير الاشارة الى النوع المختار. الضغط على مفتاح كنترول سوف يبدل بين انواع الاشارات.
STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_TOOLTIP :{BLACK}سرعة السحب
STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_DECREASE_TOOLTIP :{BLACK}تقليل سرعة السحب
STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_INCREASE_TOOLTIP :{BLACK}زيادة سرعة السحب
@ -2124,7 +2134,7 @@ STR_TREES_RANDOM_TREES_TOOLTIP :{BLACK}زراع
# Land generation window (SE)
STR_TERRAFORM_TOOLBAR_LAND_GENERATION_CAPTION :{WHITE}بناء المسطحات الأرضية
STR_TERRAFORM_TOOLTIP_PLACE_ROCKY_AREAS_ON_LANDSCAPE :{BLACK}اضافة مناطق صخرية على المنظر
STR_TERRAFORM_TOOLTIP_DEFINE_DESERT_AREA :{BLACK}عرف منطقة صحراوية. {}اضغط بشكل متواصل مفتاح كنترول لأزالتها
STR_TERRAFORM_TOOLTIP_DEFINE_DESERT_AREA :{BLACK}عرف منطقة صحراوية.{}اضغط بشكل متواصل مفتاح كنترول لأزالتها
STR_TERRAFORM_TOOLTIP_INCREASE_SIZE_OF_LAND_AREA :{BLACK}زيادة ارتفاع و انخفاض المسطحات الأرضية
STR_TERRAFORM_TOOLTIP_DECREASE_SIZE_OF_LAND_AREA :{BLACK}انقاص ارتفاع و انخفاض المسطحات الأرضية
STR_TERRAFORM_TOOLTIP_GENERATE_RANDOM_LAND :{BLACK}انشاء مسطحات عشوائية
@ -2157,7 +2167,7 @@ STR_FOUND_TOWN_INITIAL_SIZE_LARGE_BUTTON :{BLACK}كبير
STR_FOUND_TOWN_SIZE_RANDOM :{BLACK} عشوائي
STR_FOUND_TOWN_INITIAL_SIZE_TOOLTIP :{BLACK}حدد حجم المدينه
STR_FOUND_TOWN_CITY :{BLACK}مدينة
STR_FOUND_TOWN_CITY_TOOLTIP :{BLACK} المدن الكبيرة تنمو اسرع من المدن العادية. {} كلما كانت اكبر عند انشائها, بالاعتماد على الاعدادات.
STR_FOUND_TOWN_CITY_TOOLTIP :{BLACK} المدن الكبيرة تنمو اسرع من المدن العادية.{} كلما كانت اكبر عند انشائها, بالاعتماد على الاعدادات.
STR_FOUND_TOWN_ROAD_LAYOUT :{YELLOW} تصميم طرق المدينة
STR_FOUND_TOWN_SELECT_TOWN_ROAD_LAYOUT :{BLACK} اختر تصميم الطرق لهذه المدينة
@ -2224,29 +2234,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :حقول
STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :ارض ثلجية
STR_LAI_CLEAR_DESCRIPTION_DESERT :صحراء
STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} مسار
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} مسار مع اشارة اغلاق
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} مسار مع اشارة مبتدئة
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} سكة حديد مع اشارة خروج
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} سكة حديد مع اشارة مزدوجة
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} سكة حديد مع اشارة طريق
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} سكة حديد مع اشارة اتجاة واحد
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} سكة حديد مع اشارة توقف و اشارة مبتدئة
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} سكة حديد مع اشارة توقف و خروج
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} سكة حديد مع اشارة توقف و مزدوجة
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} سكة حديد مع اشارة اغلاق و طريق
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} سكة حديد مع اشارة اغلاق و طريق باتجاة واحد
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} سكة حديد مع اشارة مبدئية و اشارة خروج
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} سكة حديد مع اشارة مبدئية و اشارة مزدوجة
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} سكة حديد مع اشارة مبدئية و طريق
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} سكة حديد مع اشارة مبدئية و اتجاة و احد
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} سكة حديد مع اشارة خروج و مزدوجة
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} سكة حديد مع اشارة خروج و طريق
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} سكة حديد مع اشارة خروج و اتجاة واحد
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} سكة حديد مع اشارة مزدوجة و طريق
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} سكة حديد مع اشارة مزدوجة و طريق باتجاه واحد
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} سكة حديد مع اشارة طريق و اتجاة و احد
STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} مستودع صيانة قطارات
STR_LAI_RAIL_DESCRIPTION_TRACK :سكة حديد مسار
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :سكة حديد مسار مع اشارة اغلاق
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :سكة حديد مسار مع اشارة مبتدئة
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :سكة حديد سكة حديد مع اشارة خروج
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :سكة حديد سكة حديد مع اشارة مزدوجة
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :سكة حديد سكة حديد مع اشارة طريق
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :سكة حديد سكة حديد مع اشارة اتجاة واحد
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :سكة حديد سكة حديد مع اشارة توقف و اشارة مبتدئة
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :سكة حديد سكة حديد مع اشارة توقف و خروج
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :سكة حديد سكة حديد مع اشارة توقف و مزدوجة
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :سكة حديد سكة حديد مع اشارة اغلاق و طريق
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :سكة حديد سكة حديد مع اشارة اغلاق و طريق باتجاة واحد
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :سكة حديد سكة حديد مع اشارة مبدئية و اشارة خروج
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :سكة حديد سكة حديد مع اشارة مبدئية و اشارة مزدوجة
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :سكة حديد سكة حديد مع اشارة مبدئية و طريق
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :سكة حديد سكة حديد مع اشارة مبدئية و اتجاة و احد
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :سكة حديد سكة حديد مع اشارة خروج و مزدوجة
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :سكة حديد سكة حديد مع اشارة خروج و طريق
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :سكة حديد سكة حديد مع اشارة خروج و اتجاة واحد
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :سكة حديد سكة حديد مع اشارة مزدوجة و طريق
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :سكة حديد سكة حديد مع اشارة مزدوجة و طريق باتجاه واحد
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :سكة حديد سكة حديد مع اشارة طريق و اتجاة و احد
STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :سكة حديد مستودع صيانة قطارات
STR_LAI_ROAD_DESCRIPTION_ROAD :طريق
STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :طريق مضاء
@ -2310,7 +2320,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :ارض مملو
STR_ABOUT_OPENTTD :{WHITE}حول النسخة المفتوحة
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}الحقوق الاصلية {COPYRIGHT} كريس سوير 1995 , جميع الحقوق محفوظة
STR_ABOUT_VERSION :{BLACK}النسخة المفتوحة رقم {REV}
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}النسخة المفتوحة {COPYRIGHT}2002-2015 فريق النسخة المفتوحة
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}النسخة المفتوحة {COPYRIGHT}2002-2016 فريق النسخة المفتوحة
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}حفظ اللعبة
@ -2373,6 +2383,7 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}اسم
STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}الحجم:
STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} * {NUM}
STR_MAPGEN_MAX_HEIGHTLEVEL_QUERY_CAPT :تغيير أعلى ارتفاع للخريطة
STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}غير مستوى خط الثلج
STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}غير سنة البداية
@ -2501,7 +2512,7 @@ STR_NEWGRF_ERROR_MSG_INFO :{SILVER}{STRING
STR_NEWGRF_ERROR_MSG_WARNING :{RED} تحذير: {SILVER}{STRING}
STR_NEWGRF_ERROR_MSG_ERROR :{RED} خطأ: {SILVER}{STRING}
STR_NEWGRF_ERROR_MSG_FATAL :{RED} خطأ قاتل: {SILVER}{STRING}
STR_NEWGRF_ERROR_FATAL_POPUP :{WHITE}حدث خظأ في NewGRF لا يمكن اصلاحة: {}{STRING}
STR_NEWGRF_ERROR_FATAL_POPUP :{WHITE}حدث خظأ في NewGRF لا يمكن اصلاحة:{}{STRING}
STR_NEWGRF_ERROR_VERSION_NUMBER :{1:STRING} لن يعمل مع اصدار الباتش المسجل في النسخة المفتوحة
STR_NEWGRF_ERROR_DOS_OR_WINDOWS :{1:STRING} يعمل مع {STRING} اصدار من TTD.
STR_NEWGRF_ERROR_UNSET_SWITCH :{1:STRING} مصمم ليستخدم مع {STRING}
@ -2526,7 +2537,7 @@ STR_NEWGRF_COMPATIBLE_LOADED :{ORANGE}الم
STR_NEWGRF_COMPATIBLE_LOAD_WARNING :{WHITE}تم تحميل ملف GFR مطابق بدلا من المفقود
STR_NEWGRF_DISABLED_WARNING :{WHITE}تم تعطيل ملف GRF المفقود
STR_NEWGRF_UNPAUSE_WARNING_TITLE :{YELLOW}ملف NewGRF مفقود
STR_NEWGRF_UNPAUSE_WARNING :{WHITE}عدم الايقاف قد يتسبب في تعطل النسخة المفتوحة. لا تنشأ ملف اخطاء لاالخطاء التالية. {} هل تود بالفعل اكمال اللعب؟
STR_NEWGRF_UNPAUSE_WARNING :{WHITE}عدم الايقاف قد يتسبب في تعطل النسخة المفتوحة. لا تنشأ ملف اخطاء لاالخطاء التالية.{} هل تود بالفعل اكمال اللعب؟
# NewGRF status
STR_NEWGRF_LIST_NONE :لا يوجد
@ -2592,8 +2603,8 @@ STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_WINTER :{ORANGE}{STRING
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_DELIVERED_GENERAL :{ORANGE}{STRING}{GREEN} تم توصيلة
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED :{ORANGE}{CARGO_TINY} / {CARGO_LONG}{RED} (مازال مطلوب)
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_DELIVERED :{ORANGE}{CARGO_TINY} / {CARGO_LONG}{GREEN} (تم توصيلة)
STR_TOWN_VIEW_TOWN_GROWS_EVERY :{BLACK}المدينة تنمو كل {ORANGE}{COMMA}{BLACK} يوم
STR_TOWN_VIEW_TOWN_GROWS_EVERY_FUNDED :{BLACK}المدينة تنمو كل {ORANGE}{COMMA}{BLACK} يوم{} (مول)
STR_TOWN_VIEW_TOWN_GROWS_EVERY :{BLACK}المدينة تنمو كل {ORANGE}{COMMA}{BLACK}{NBSP} يوم
STR_TOWN_VIEW_TOWN_GROWS_EVERY_FUNDED :{BLACK}المدينة تنمو كل {ORANGE}{COMMA}{BLACK}{NBSP} يوم (ممول)
STR_TOWN_VIEW_TOWN_GROW_STOPPED :{BLACK}المدينة {RED}لا{BLACK} تنمو
STR_TOWN_VIEW_NOISE_IN_TOWN :{BLACK}حدود الضوضاء داخل المدن: {ORANGE}{COMMA}{BLACK} القصوى: {ORANGE}{COMMA}
STR_TOWN_VIEW_CENTER_TOOLTIP :{BLACK}وسط الشاشة الاساسية على موقع المدينة
@ -2626,14 +2637,14 @@ STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :مول انشا
STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :اشتري حقوق النقل الحصرية للمدينة
STR_LOCAL_AUTHORITY_ACTION_BRIBE :ارشي السلطات المحلية
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}البدء في حملة دعائية صغيرة للشركة, لكي تجلب ركاب و بضائع اكثر لمحطاتك. {} التكلفة: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW} البدء في حملة دعائية متوسطة للشركة, لكي تجلب ركاب و بضائع اكثر لمحطاتك. {} التكلفة: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}البدء في حملة دعائية كبيرة للشركة, لكي تجلب ركاب و بضائع اكثر لمحطاتك. {} التكلفة: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW} مول اعمال الصيانة للطرق و الشوارع بالمدينة. يتسبب في تعطيل حركة النقل داخل المدينة لمدة قد تصل ستة اشهر. {} التكلفة {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW} بناء مجسم تقديرا للشركة في اعمال النقل. {} التكلفة {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW} مول بناء مباني تجارية جديدة في المدينة. {}التكلفة {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW} اشتري حقوق النقل لسنة كاملة في هذة المدينة و المصانع التابعة لها. البلدية سوف تسمح للركاب و البضائع باستخدام محطاتك فقط. {}التكلفة: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW} ارشي السلطات المحلية لزيادة كفائة الشركة. هناك عقاب شديد اذا ما اكتشفت الرشوة. {} التكلفة: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}البدء في حملة دعائية صغيرة للشركة, لكي تجلب ركاب و بضائع اكثر لمحطاتك.{} التكلفة: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW} البدء في حملة دعائية متوسطة للشركة, لكي تجلب ركاب و بضائع اكثر لمحطاتك.{} التكلفة: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}البدء في حملة دعائية كبيرة للشركة, لكي تجلب ركاب و بضائع اكثر لمحطاتك.{} التكلفة: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW} مول اعمال الصيانة للطرق و الشوارع بالمدينة. يتسبب في تعطيل حركة النقل داخل المدينة لمدة قد تصل ستة اشهر.{} التكلفة {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW} بناء مجسم تقديرا للشركة في اعمال النقل.{} التكلفة {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW} مول بناء مباني تجارية جديدة في المدينة.{}التكلفة {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW} اشتري حقوق النقل لسنة كاملة في هذة المدينة و المصانع التابعة لها. البلدية سوف تسمح للركاب و البضائع باستخدام محطاتك فقط.{}التكلفة: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW} ارشي السلطات المحلية لزيادة كفائة الشركة. هناك عقاب شديد اذا ما اكتشفت الرشوة.{} التكلفة: {CURRENCY_LONG}
# Goal window
STR_GOALS_TEXT :{ORANGE}{STRING}
@ -2783,7 +2794,7 @@ STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}بيع 2
STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :اسم الشركة
STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :اسم صاحب الشركة
STR_BUY_COMPANY_MESSAGE :{WHITE}نحن نبحث عن شركة لتشتري شركتنا. {}{} عل ترغب في شراء {COMPANY} بـ {CURRENCY_LONG}؟
STR_BUY_COMPANY_MESSAGE :{WHITE}نحن نبحث عن شركة لتشتري شركتنا.{}{} عل ترغب في شراء {COMPANY} بـ {CURRENCY_LONG}؟
# Company infrastructure window
@ -2816,7 +2827,7 @@ STR_INDUSTRY_VIEW_PRODUCES_CARGO_CARGO :{BLACK}ينتج
############ range for produces ends
STR_CONFIG_GAME_PRODUCTION :{WHITE}تغيير الانتاج مضاعف من 8 الى 2040
STR_CONFIG_GAME_PRODUCTION_LEVEL :{WHITE}غير مستوى الانتاج {}نسبة مئوية حتى 800%.
STR_CONFIG_GAME_PRODUCTION_LEVEL :{WHITE}غير مستوى الانتاج{}نسبة مئوية حتى 800%.
# Vehicle lists
STR_VEHICLE_LIST_TRAIN_CAPTION :{WHITE}{STRING} - {COMMA}قطار
@ -2863,7 +2874,7 @@ STR_GROUP_DEFAULT_ROAD_VEHICLES :لاتنتمي
STR_GROUP_DEFAULT_SHIPS :مركبة لاتنتمي لأي مجموعة
STR_GROUP_DEFAULT_AIRCRAFTS :طائرة لاتنتمي لأي مجموعة
STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}المجموعات: اضغط على اي مجموعة لعرض المركبات التابعة لها
STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}المجموعات: اضغط على اي مجموعة لعرض مركباتها . اسحب للترتيب .
STR_GROUP_CREATE_TOOLTIP :{BLACK}أضغط لإنشاء مجموعة
STR_GROUP_DELETE_TOOLTIP :{BLACK}أحذف المجموعة المختارة
STR_GROUP_RENAME_TOOLTIP :{BLACK}أعد تسمية المجموعة المختارة
@ -3026,7 +3037,7 @@ STR_ENGINE_PREVIEW_SHIP :سفينة
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :قاطرة سكة قطار احادية
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :قاطرة سكة قطار ممغنطة
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK} التكلفة: {CURRENCY_LONG} الوزن: {WEIGHT_SHORT} {} السرعة: {VELOCITY} الطاقة: {POWER}{} كلفة التشغيل: {CURRENCY_LONG} / سنة {} السعة: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK} التكلفة: {CURRENCY_LONG} الوزن: {WEIGHT_SHORT}{} السرعة: {VELOCITY} الطاقة: {POWER}{} كلفة التشغيل: {CURRENCY_LONG} / سنة{} السعة: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}التكلفة {CURRENCY_LONG} الوزن {WEIGHT_SHORT}{}السرعة {VELOCITY} Power: {POWER}قوة السحب {6:FORCE}{}التكلفة التشغيلية {4:CURRENCY_LONG}/سنة{}السعة: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK} التكلفة {CURRENCY_LONG} السرعة القصوى {VELOCITY}{}Capacity السعة {CARGO_LONG} {CARGO_LONG}{} كلفة التشغيل {CURRENCY_LONG} / سنة
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK} التكلفة {CURRENCY_LONG} السرعة القصوى {VELOCITY}{} السعة {CARGO_LONG}{} كلفة التشغيل {CURRENCY_LONG} / سنة
@ -3049,7 +3060,6 @@ STR_REPLACE_NOT_REPLACING_VEHICLE_SELECTED :{BLACK}لم ي
STR_REPLACE_VEHICLES_STOP :{BLACK} اوقف تبديل العربات
STR_REPLACE_HELP_STOP_BUTTON :{BLACK} اضغط لايقاف تبديل المحركات المختارة في اليسار
STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK} تبديل: {ORANGE}{STRING}
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK} بدل بين نافذة استبدال المحركات و العربات
STR_REPLACE_ENGINES :محركات
STR_REPLACE_WAGONS :عربات
@ -3158,7 +3168,7 @@ STR_VEHICLE_INFO_CAPACITY_CAPACITY :{BLACK} الس
STR_VEHICLE_INFO_FEEDER_CARGO_VALUE :{BLACK}مقدار التحويل: {LTBLUE}{CURRENCY_LONG}
STR_VEHICLE_DETAILS_SERVICING_INTERVAL_DAYS :{BLACK}فترات الصيانة: {LTBLUE}{COMMA} يوم {BLACK} اخر صيانة: {LTBLUE}{DATE_LONG}
STR_VEHICLE_DETAILS_SERVICING_INTERVAL_DAYS :{BLACK}فترات الصيانة: {LTBLUE}{COMMA}{NBSP} يوم {BLACK} اخر صيانة: {LTBLUE}{DATE_LONG}
STR_VEHICLE_DETAILS_SERVICING_INTERVAL_PERCENT :{BLACK}فترات الصيانة: {LTBLUE}{COMMA}% {BLACK} الصيانة الأخيرة: {LTBLUE}{DATE_LONG}
STR_VEHICLE_DETAILS_INCREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK}زيادة فترات الصيانة بقدر 10. ومع مفتاح كنترول بمقدار 5.
STR_VEHICLE_DETAILS_DECREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK} انقاص فترات الصيانة بمعدل 10. Ctrl+ الضغط الانقاص بمعدل 5.
@ -3250,8 +3260,8 @@ STR_ORDER_TOOLTIP_UNLOAD :{BLACK}غير
STR_ORDER_REFIT :{BLACK}اعادة تهيئة
STR_ORDER_REFIT_TOOLTIP :{BLACK}اختر نوع البضائع المنقولة لتهيئة العربات في هذا الامر. اضغط كنترول لازالة تعليمات التهيئة.
STR_ORDER_REFIT_AUTO :{BLACK}ملائمة ذاتية
STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}اختر اي نوع من الحملة تريد ملائمتها ذاتيا.
STR_ORDER_REFIT_AUTO :{BLACK}ملائمة في محطة
STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}اختر اي نوع من الحمولة تريد ملائمتها . اضغط مع ctrl لإزالة الملائمة . الملائمة في المحطات لن تكون ما لم تقبل العربة ذلك .
STR_ORDER_DROP_REFIT_AUTO :شحنة ثابتة
STR_ORDER_DROP_REFIT_AUTO_ANY :البضائع المتاحة
@ -3342,13 +3352,13 @@ STR_ORDER_NO_UNLOAD_FULL_LOAD :(عدم انز
STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :-عدم انزال الشحنة و الانتظار للحمولة القصوى لاي شحنة-
STR_ORDER_NO_UNLOAD_NO_LOAD :(لا تفريغ و لا تحميل)
STR_ORDER_AUTO_REFIT :(ملائمة ذاتية ل {STRING})
STR_ORDER_FULL_LOAD_REFIT :(تحميل كلي مع الملائمة الذاتية لـ {STRING})
STR_ORDER_FULL_LOAD_ANY_REFIT :(تحميل كلي لاي بضاعة مع الملائمة الذاتية لـ {STRING})
STR_ORDER_UNLOAD_REFIT :(تفريغ الحمولة و شحن البضائع مع الملائمة الذاتية لـ {STRING})
STR_ORDER_AUTO_REFIT :(ملائمة لـ {STRING})
STR_ORDER_FULL_LOAD_REFIT :(تحميل كلي مع الملائمة لـ {STRING})
STR_ORDER_FULL_LOAD_ANY_REFIT :(تحميل كلي لأي بضاعة مع الملائمة لـ {STRING})
STR_ORDER_UNLOAD_REFIT :(تفريغ الحمولة و شحن البضائع مع الملائمة لـ {STRING})
STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(تفرغ الحمولة و الانتظار للتحميل الكلي مع الملائمة لـ {STRING})
STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(التفريغ و الانتظار للتحميل الكلي لاي بضاعة مع الملائمة الذاتية لـ {STRING})
STR_ORDER_TRANSFER_REFIT :(تحويل البضاعة و اخذ البضاعة مع الملائمة الذاتية لـ {STRING})
STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(التفريغ و الانتظار للتحميل الكلي لأي بضاعة مع الملائمة لـ {STRING})
STR_ORDER_TRANSFER_REFIT :(تحويل البضاعة و أخذ البضاعة مع الملائمة لـ {STRING})
STR_ORDER_TRANSFER_FULL_LOAD_REFIT :(تحويل البضاعة و الانتظار للحمولة القصوى مع الملائمة الذاتية لـ {STRING})
STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :(تحويل البضاعة و الانتظار لاي حمولة كاملة مع الملائمة الذاتية لـ {STRING})
STR_ORDER_NO_UNLOAD_REFIT :(عدم التفريغ و تحميل البضائع مع الملائمة الذاتية لـ {STRING})
@ -3452,7 +3462,7 @@ STR_AI_DEBUG_CONTINUE :{BLACK}استم
STR_AI_DEBUG_CONTINUE_TOOLTIP :{BLACK}عدم توقيف ومواصلة الذكاء الصناعي
STR_AI_DEBUG_SELECT_AI_TOOLTIP :{BLACK}عرض صائد الاخطاء لهذه الاضافة
STR_ERROR_AI_NO_AI_FOUND :لا يوجد اضافات مناسبة للتحميل {} هذه اضافة غبية ولن تفعل شيئا لك {} تستطيع تحميل اضافات من الشبكة عن طريق نظام التحميل
STR_ERROR_AI_NO_AI_FOUND :لا يوجد اضافات مناسبة للتحميل{} هذه اضافة غبية ولن تفعل شيئا لك{} تستطيع تحميل اضافات من الشبكة عن طريق نظام التحميل
STR_ERROR_AI_PLEASE_REPORT_CRASH :{WHITE}واحد من الذكاء الصناعي فشل. الرجاء ابلاغ المبرمج عنه مصحوبا بصورة من شاشة مصحح الاخطاء.
STR_ERROR_AI_DEBUG_SERVER_ONLY :{YELLOW} شاشة اخطاء الذكاء الصناعي متوفرة فقط للخادم
@ -3522,7 +3532,7 @@ STR_ERROR_AUTOSAVE_FAILED :{WHITE}فشل
STR_ERROR_UNABLE_TO_READ_DRIVE :{BLACK}لا يمكن قرائة القرص
STR_ERROR_GAME_SAVE_FAILED :{WHITE}فشل حفظ اللعبة{}{STRING}
STR_ERROR_UNABLE_TO_DELETE_FILE :{WHITE}لا يمكن حذف الملف
STR_ERROR_GAME_LOAD_FAILED :{WHITE}فشل فتح اللعبة {}{STRING}
STR_ERROR_GAME_LOAD_FAILED :{WHITE}فشل فتح اللعبة{}{STRING}
STR_GAME_SAVELOAD_ERROR_BROKEN_INTERNAL_ERROR :خطأ داخلي: {STRING}
STR_GAME_SAVELOAD_ERROR_BROKEN_SAVEGAME :لعبه محفوظه غير صالحه - {STRING}
STR_GAME_SAVELOAD_ERROR_TOO_NEW_SAVEGAME :اللعبة حفظت بنسخة أحدث
@ -3533,7 +3543,7 @@ STR_GAME_SAVELOAD_NOT_AVAILABLE :<غير متا
STR_WARNING_LOADGAME_REMOVED_TRAMS :{WHITE}اللعبة حفظت بنسخة لا تدعم الترام. كل ما يتعلق بالترام حذف.
# Map generation messages
STR_ERROR_COULD_NOT_CREATE_TOWN :{WHITE}مولد الخريطة توقف ... {} ... لا يوجد مواقع مناسبة للمدن
STR_ERROR_COULD_NOT_CREATE_TOWN :{WHITE}مولد الخريطة توقف ...{} ... لا يوجد مواقع مناسبة للمدن
STR_ERROR_NO_TOWN_IN_SCENARIO :{WHITE}... لا يوجد مدن في هذه الخريطة
STR_ERROR_PNGMAP :{WHITE}لا يمكن تحميل الخريطة من PNG ...
@ -3620,9 +3630,9 @@ STR_ERROR_TOO_CLOSE_TO_EDGE_OF_MAP_SUB :{WHITE}... قر
STR_ERROR_TOO_CLOSE_TO_ANOTHER_TOWN :{WHITE}... قريبة جدا من مدينة أخرى
STR_ERROR_TOO_MANY_TOWNS :{WHITE}... المدن كثيرة جدا
STR_ERROR_NO_SPACE_FOR_TOWN :{WHITE}... لا يوجد فراغ في الخريطة
STR_ERROR_TOWN_EXPAND_WARN_NO_ROADS :{WHITE}لن تبني البلدية طرق جديدة. بامكانك تمكين البلدية من بناء الطرق الجديدة عن طريق الاعدادات المتقدمة --> الاقتصاد --> المدن
STR_ERROR_TOWN_EXPAND_WARN_NO_ROADS :{WHITE}لن تبني البلدية طرق جديدة. بإمكانك تمكين بناء الطرق الجديدة عن طريق الاعدادات --> البيئة--> المدن
STR_ERROR_ROAD_WORKS_IN_PROGRESS :{WHITE}اعمال الطرق قيد التنفيذ
STR_ERROR_TOWN_CAN_T_DELETE :{WHITE}لا يمكن ازالة هذه المدينة {}محطة او ورشة مرتبطة بالمدينة او هناك مربع مملوك للمدينة لا يمكن لزالته
STR_ERROR_TOWN_CAN_T_DELETE :{WHITE}لا يمكن ازالة هذه المدينة{}محطة او ورشة مرتبطة بالمدينة او هناك مربع مملوك للمدينة لا يمكن لزالته
STR_ERROR_STATUE_NO_SUITABLE_PLACE :{WHITE}... لا يوجد مكان مناسب للمجسم بداخل هذة المدينة/البلدة
# Industry related errors

@ -215,6 +215,8 @@ STR_UNITS_VOLUME_LONG_IMPERIAL :{COMMA}{NBSP}ga
STR_UNITS_VOLUME_LONG_METRIC :{COMMA}{NBSP}litro{P "" ak}
STR_UNITS_VOLUME_LONG_SI :{COMMA}{NBSP}m³
STR_UNITS_FORCE_IMPERIAL :{COMMA}{NBSP}lbf
STR_UNITS_FORCE_METRIC :{COMMA}{NBSP}kgf
STR_UNITS_FORCE_SI :{COMMA}{NBSP}kN
STR_UNITS_HEIGHT_IMPERIAL :{COMMA}{NBSP}ft
@ -238,7 +240,7 @@ STR_TOOLTIP_CLOSE_WINDOW :{BLACK}Lehioa i
STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS :{BLACK}Leiho izena - Arrastatu hau leihoa mugitzeko
STR_TOOLTIP_SHADE :{BLACK}Itzal leihoa - titulu barra bakarrik ikusten da
STR_TOOLTIP_DEBUG :{BLACK}NewGRF garbiketa informazioa ikusi
STR_TOOLTIP_STICKY :{BLACK}Markatu leiho hau itxiezina bezala 'Zarratu Leiho Guztiak' gakoarekin
STR_TOOLTIP_STICKY :{BLACK}Markatu leiho hau itxiezina bezala 'Itxi Leiho Guztiak' gakoarekin. Ctrl+Klik hau beti gertatzeko
STR_TOOLTIP_RESIZE :{BLACK}Klik eta arrastatu leiho honi tamaina aldatzeko
STR_TOOLTIP_TOGGLE_LARGE_SMALL_WINDOW :{BLACK}Aldatu handia/txikia leihoaren tamaina
STR_TOOLTIP_VSCROLL_BAR_SCROLLS_LIST :{BLACK}Barra mugitu - zerrendan gora/behera mugitzeko
@ -246,7 +248,12 @@ STR_TOOLTIP_HSCROLL_BAR_SCROLLS_LIST :{BLACK}Barra mu
STR_TOOLTIP_DEMOLISH_BUILDINGS_ETC :{BLACK}Eraikinak etab. edo lur karratu bat eraistea. Ctrl area diagonalki aukeratzen du. Mayus eraikinaren kostu estimatua erakusten du.
# Show engines button
STR_SHOW_HIDDEN_ENGINES_VEHICLE_TRAIN :{BLACK}Ezkutuak erakutsi
STR_SHOW_HIDDEN_ENGINES_VEHICLE_ROAD_VEHICLE :{BLACK}Ezkutuak erakutsi
STR_SHOW_HIDDEN_ENGINES_VEHICLE_SHIP :{BLACK}Ezkutuak erakutsi
STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT :{BLACK}Ezkutuak erakutsi
STR_SHOW_HIDDEN_ENGINES_VEHICLE_TRAIN_TOOLTIP :{BLACK}Botoi hau gaituz, ezkutuak dauden trenak erakusten dira
# Query window
STR_BUTTON_DEFAULT :{BLACK}Lehenetsia
@ -285,6 +292,8 @@ STR_SORT_BY_LENGTH :Luzera
STR_SORT_BY_LIFE_TIME :Geratzen zaion bizitza denbora
STR_SORT_BY_TIMETABLE_DELAY :Ordutegiko atzerapena
STR_SORT_BY_FACILITY :Geltoki mota
STR_SORT_BY_WAITING_TOTAL :Itxaroten dagoen zama totala
STR_SORT_BY_WAITING_AVAILABLE :Itxaroten dagoen zama eskuragarria
STR_SORT_BY_RATING_MAX :Zama balorazio handiena
STR_SORT_BY_RATING_MIN :Zama balorazio txikiena
STR_SORT_BY_ENGINE_ID :MotoreID (ordenatze klasikoa)
@ -357,6 +366,7 @@ STR_SCENEDIT_FILE_MENU_QUIT :Irten
############ range for settings menu starts
STR_SETTINGS_MENU_GAME_OPTIONS :Jokoaren aukerak
STR_SETTINGS_MENU_CONFIG_SETTINGS_TREE :Ezarpenak
STR_SETTINGS_MENU_SCRIPT_SETTINGS :IA/Jokoaren scriptaren ezaugarriak
STR_SETTINGS_MENU_NEWGRF_SETTINGS :NewGRF ezarpenak
STR_SETTINGS_MENU_TRANSPARENCY_OPTIONS :Transparentzia ezarpenak
@ -902,6 +912,8 @@ STR_GAME_OPTIONS_CURRENCY_LTL :Lituaniako Lita
STR_GAME_OPTIONS_CURRENCY_KRW :Hego koreako Won-a (KRW)
STR_GAME_OPTIONS_CURRENCY_ZAR :Hego Afrikako Rand-a (ZAR)
STR_GAME_OPTIONS_CURRENCY_CUSTOM :Pertsonalizatua...
STR_GAME_OPTIONS_CURRENCY_GEL :Lari Georgiarra (GEL)
STR_GAME_OPTIONS_CURRENCY_IRR :Rial Iraniarra (IRR)
############ end of currency region
STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Errepideko garraioak
@ -958,6 +970,9 @@ STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Pantaila
STR_GAME_OPTIONS_RESOLUTION_OTHER :besteak
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :Normala
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :Tamaina doblea
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Tamaina laukoitza
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Grafiko basea markatu
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Aukeratu erabili beharreko grafiko paketea
@ -1051,6 +1066,7 @@ STR_TERRAIN_TYPE_VERY_FLAT :Oso laua
STR_TERRAIN_TYPE_FLAT :Laua
STR_TERRAIN_TYPE_HILLY :Mendixkekin
STR_TERRAIN_TYPE_MOUNTAINOUS :Menditsua
STR_TERRAIN_TYPE_ALPINIST :Alpinista
STR_CITY_APPROVAL_PERMISSIVE :Jasankorra
STR_CITY_APPROVAL_TOLERANT :Jasanbera
@ -1059,6 +1075,7 @@ STR_CITY_APPROVAL_HOSTILE :Kontrakoa
STR_WARNING_NO_SUITABLE_AI :{WHITE}Ez dago IA egokirik aukeratzeko..{}IA asko jaitsi ditzakezu 'Online edukiera' sistemaren bidez
# Settings tree window
STR_CONFIG_SETTING_TREE_CAPTION :{WHITE}Ezarpenak
STR_CONFIG_SETTING_FILTER_TITLE :{BLACK}Lokarri iragazkia:
STR_CONFIG_SETTING_EXPAND_ALL :{BLACK}Guztia haunditu
STR_CONFIG_SETTING_COLLAPSE_ALL :{BLACK}Guztia kolapsatu
@ -1115,13 +1132,13 @@ STR_CONFIG_SETTING_CONSTRUCTION_COSTS_HELPTEXT :Erosketa eta er
STR_CONFIG_SETTING_RECESSIONS :Atzerapen ekonomikoak: {STRING}
STR_CONFIG_SETTING_RECESSIONS_HELPTEXT :Gaitua dagoenean, atzeratze ekonomikoa urte gutxika gertatuko da. Atzeratze ekonomikoan, ekoizpen orokorra dexente gutxituko da (Aurreko balioetara bueltatuko da atzerapena amaitzerakoan)
STR_CONFIG_SETTING_TRAIN_REVERSING :Trenak geltokietan buelta eman ahal izatea: {STRING}
STR_CONFIG_SETTING_TRAIN_REVERSING_HELPTEXT :Gaitua dagoenean, trenak ezingo dute geltokietan (trebidea bertan bukatzen ez denean) buelta eman, nahiz eta biderik motzena izan helmugara iristeko
STR_CONFIG_SETTING_TRAIN_REVERSING_HELPTEXT :Gaitua dagoenean, trenak ezingo dute geltoki ez-finaletan buelta eman, nahiz eta biderik motzena izan helmugara iristeko
STR_CONFIG_SETTING_DISASTERS :Hondamendiak: {STRING}
STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Azpiegiturak eta ibilgailuak suntsitu edo blokeatu ditzaketen hondamendiak txandakatu
STR_CONFIG_SETTING_CITY_APPROVAL :Udaletxearen jarrera bere lurrak berregituratzeko: {STRING}
STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Aukeratu zenbateraino eragingo dion konpainia bati herri batean zarata sortzea eta ingurumena kaltetzea, herrian duen balorazioa txartuz eta eraikin berriak egiteko baimena mugatuz
STR_CONFIG_SETTING_AUTOSLOPE :Eraikinen, trenbideen etabarren azpian paisaia aldatzea baimendu. (autoaldapak): {STRING}
STR_CONFIG_SETTING_AUTOSLOPE :Eraikinen, trenbideen etabarren azpian paisaia aldatzea baimendu.: {STRING}
STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Eraikin eta bideen azpian paisaia aldatzea baimendu hauek kendu gabe
STR_CONFIG_SETTING_CATCHMENT :Geltokien irismen eremu hedapena errealagoa egitea baimendu: {STRING}
STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Tamaina ezberdinetako jasotze eremuak izan mota ezberdinetako geltoki eta aireportuentzat
@ -1235,7 +1252,7 @@ STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Lehio gorrian a
STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} segundu
STR_CONFIG_SETTING_HOVER_DELAY :Erakutsi argibideak: {STRING}
STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Sagua, interfazeko elementu batzuen gainean jartzerakoan, argibideak bistaratu aurretik pasa beharko den denbora. Elementu batzuetan saguko eskuineko botoia sakatu beharko da
STR_CONFIG_SETTING_HOVER_DELAY_VALUE :Sagua gainean mantendu {COMMA} segunduz
STR_CONFIG_SETTING_HOVER_DELAY_VALUE :Sagua gainean mantendu milisegundu {COMMA}
STR_CONFIG_SETTING_HOVER_DELAY_DISABLED :Klikatu eskuineko botoiarekin
STR_CONFIG_SETTING_POPULATION_IN_LABEL :Herriaren bistanleria herriaren izen kartelan ikusgai izan: {STRING}
STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Herriaren bistanleria herriaren izen kartelan ikusgai izan
@ -1245,6 +1262,7 @@ STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Grafikoen marre
STR_CONFIG_SETTING_LAND_GENERATOR :Lur sortzailea: {STRING}
STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Jatorrizkoa
STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis
STR_CONFIG_SETTING_INDUSTRY_DENSITY :Industria dentsitatea: {STRING}
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Petroleo findegietatik maparen ertzera dagoen gehienezko distantzia: {STRING}
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Petroleo findegiak bakarrik maparen ertzatik hurbil eraiki daitezke, kostan irla mapetan
STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Elur garaiera: {STRING}
@ -1253,10 +1271,13 @@ STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Oso Leuna
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_SMOOTH :Leuna
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_ROUGH :Zakarra
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_ROUGH :Oso Zakarra
STR_CONFIG_SETTING_VARIETY :Barietateen distribuzioa: {STRING}
STR_CONFIG_SETTING_RIVER_AMOUNT :Ibai kantitatea: {STRING}
STR_CONFIG_SETTING_TREE_PLACER :Zuhaitz kokatzeko algoritmoa: {STRING}
STR_CONFIG_SETTING_TREE_PLACER_NONE :Ezer ez
STR_CONFIG_SETTING_TREE_PLACER_ORIGINAL :Jatorrizkoa
STR_CONFIG_SETTING_TREE_PLACER_IMPROVED :Hobetua
STR_CONFIG_SETTING_ROAD_SIDE :Errepideko garraioak: {STRING}
STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Garaiera maparen norabidea: {STRING}
STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Erlojuko orratzen kontrara
STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Erlojuko orratzen erara
@ -1311,6 +1332,7 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Itzalita
STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Saguaren ezkerreko botoiarekin mapan zehar mugitzea: {STRING}
STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Gaitu mapatik zehar mugitzea saguaren ezkerreko botoia mapan arrastratzerakoan. Oso erabilgarria da ukipen pantailak erabiltzerakoan
STR_CONFIG_SETTING_AUTOSAVE :Auto-gordea: {STRING}
STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES :Gordetako jokoen izenetan {STRING} data fomatua erabili
STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_HELPTEXT :Gordetako fitxeroen dataren formatoa
@ -1326,7 +1348,7 @@ STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :Ekintzarik ez
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :Eraikitzeko ez diren ekintza guztiak
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_LANDSCAPING :Guztia paisaia eraldatzeko ekintzak ezik
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :Ekintza guztiak
STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Hobetutako ibilgailu zerrendak erabili: {STRING}
STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Taldeak erabili ibilgailu zerrendan: {STRING}
STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Gaitu ibilgailu zerrenda aurreratuak erabiltzea ibilgailu taldeentzako
STR_CONFIG_SETTING_LOADING_INDICATORS :Zama adierazleak erabili: {STRING}
STR_CONFIG_SETTING_LOADING_INDICATORS_HELPTEXT :Aukeratu ibilgailuen zama lanen adierazlea ikusgai dagoen ibilgailuen gainean
@ -1348,6 +1370,11 @@ STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS_HELPTEXT :Mantendu zubi,
STR_CONFIG_SETTING_EXPENSES_LAYOUT :Talde gastuak konpainiaren finantza leihoan: {STRING}
STR_CONFIG_SETTING_EXPENSES_LAYOUT_HELPTEXT :Konpainiako gastuen lehioaren diseinua
STR_CONFIG_SETTING_SOUND_NEWS :Periodikoa: {STRING}
STR_CONFIG_SETTING_SOUND_NEW_YEAR :Amaiera urtea: {STRING}
STR_CONFIG_SETTING_SOUND_CONFIRM :Eraikuntza: {STRING}
STR_CONFIG_SETTING_SOUND_DISASTER :Desastreak/istripuak: {STRING}
STR_CONFIG_SETTING_SOUND_VEHICLE :Garraioak: {STRING}
STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING :Azpiturak eraikitzea debekatu ibilgailu egokiak ez daudenean eskuragarri: {STRING}
STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING_HELPTEXT :Gaitua dagoenean, ezingo da azpiegiturarik eraiki azpiegitura horren ibilgailuak ez badaude eskuragarri, denbora eta dirua aurreztuz
@ -1512,6 +1539,8 @@ STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Joko hasieran h
STR_CONFIG_SETTING_DISTRIBUTION_MANUAL :eskuz egin
STR_CONFIG_SETTING_DISTRIBUTION_ASYMMETRIC :asimetrikoa
STR_CONFIG_SETTING_DISTRIBUTION_SYMMETRIC :simetrikoa
STR_CONFIG_SETTING_DISTRIBUTION_PAX :Bidaiariek banaketa modua: {STRING}
STR_CONFIG_SETTING_DISTRIBUTION_MAIL :Korreoaren banaketa modua: {STRING}
STR_CONFIG_SETTING_LINKGRAPH_ACCURACY :Banaketen zehaztasuna: {STRING}
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Abiadura unitateak: {STRING}
@ -1525,6 +1554,7 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_METRIC :Metrikoa (zp)
STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_SI :SI (kW)
STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT :Pisu unitateak: {STRING}
STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_IMPERIAL :Imperial (ton/tona)
STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_METRIC :Metrikoa (t/tona)
STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_SI :SI (kg)
@ -1533,6 +1563,7 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_IMPERIAL :Inperiala (galo
STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_METRIC :Metrikoa (l)
STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_SI :SI (m³)
STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_IMPERIAL :Imperiala (libra)
STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_METRIC :Metrikoa (kgf)
STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_SI :SI (kN)
@ -1546,6 +1577,7 @@ STR_CONFIG_SETTING_GRAPHICS :{ORANGE}Grafiko
STR_CONFIG_SETTING_SOUND :{ORANGE}Soinua
STR_CONFIG_SETTING_INTERFACE :{ORANGE}Interfazea
STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}Orokorra
STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}Leihoak
STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Eraikuntza
STR_CONFIG_SETTING_COMPANY :{ORANGE}Konpainia
STR_CONFIG_SETTING_VEHICLES :{ORANGE}Ibilgailuak
@ -1608,6 +1640,7 @@ STR_INTRO_MULTIPLAYER :{BLACK}Multijok
STR_INTRO_GAME_OPTIONS :{BLACK}Jokoaren Aukerak
STR_INTRO_HIGHSCORE :{BLACK}Puntuazio taula
STR_INTRO_CONFIG_SETTINGS_TREE :{BLACK}Ezarpenak
STR_INTRO_NEWGRF_SETTINGS :{BLACK}NewGRF-ren Ezarpenak
STR_INTRO_ONLINE_CONTENT :{BLACK}Edukiak Online Kontsultatu
STR_INTRO_SCRIPT_SETTINGS :{BLACK}IA/Joko Scripten Ezarpenak
@ -1627,6 +1660,7 @@ STR_INTRO_TOOLTIP_TOYLAND_LANDSCAPE :{BLACK}Aukeratu
STR_INTRO_TOOLTIP_GAME_OPTIONS :{BLACK}Jokoaren aukerak erakutsi
STR_INTRO_TOOLTIP_HIGHSCORE :{BLACK}Puntuazioen taula erakutsi
STR_INTRO_TOOLTIP_CONFIG_SETTINGS_TREE :{BLACK}Ezarpenak erakutsi
STR_INTRO_TOOLTIP_NEWGRF_SETTINGS :{BLACK}NewGRF ezarpenak erakutsi
STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Bilatu eduki berria eta eguneratua deskargatzeko
STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}IA/Joko Scripten Ezarpenak
@ -1786,7 +1820,7 @@ STR_NETWORK_SERVER_LIST_MAP_SIZE_CAPTION_TOOLTIP :{BLACK}Jokoaren
STR_NETWORK_SERVER_LIST_DATE_CAPTION :{BLACK}Data
STR_NETWORK_SERVER_LIST_DATE_CAPTION_TOOLTIP :{BLACK}Egungo data
STR_NETWORK_SERVER_LIST_YEARS_CAPTION :{BLACK}Urteak
STR_NETWORK_SERVER_LIST_YEARS_CAPTION_TOOLTIP :{BLACK}Jokoa martxan dagoenetik pasa diren urteak {}
STR_NETWORK_SERVER_LIST_YEARS_CAPTION_TOOLTIP :{BLACK}Jokoa martxan dagoenetik pasa diren urteak{}
STR_NETWORK_SERVER_LIST_INFO_ICONS_TOOLTIP :{BLACK}Hizkuntza, zerbitzariaren bertsioa, etab.
STR_NETWORK_SERVER_LIST_CLICK_GAME_TO_SELECT :{BLACK}Joko bat aukeratzeko Klikatu
@ -2067,7 +2101,7 @@ STR_CONTENT_NAME_CAPTION_TOOLTIP :{BLACK}Edukien
STR_CONTENT_MATRIX_TOOLTIP :{BLACK}Lerroan sakatu ezaugarriak ikusteko{}Laukitxoan sakatu aukeratzeko
STR_CONTENT_SELECT_ALL_CAPTION :{BLACK}Guztia aukeratu
STR_CONTENT_SELECT_ALL_CAPTION_TOOLTIP :{BLACK}Markatu deskargatuak izango diren edukiak
STR_CONTENT_SELECT_UPDATES_CAPTION :{BLACK}Bertsio berriak haukeratu
STR_CONTENT_SELECT_UPDATES_CAPTION :{BLACK}Eguneraketak Aukeratu
STR_CONTENT_SELECT_UPDATES_CAPTION_TOOLTIP :{BLACK}Haukeratu dituzun edukiak berrituko dituzten edukiak deskargatuak izateko
STR_CONTENT_UNSELECT_ALL_CAPTION :{BLACK}Guztia desmarkatu
STR_CONTENT_UNSELECT_ALL_CAPTION_TOOLTIP :{BLACK}Dekargatuak izango ez diren eduki guztiak markatu
@ -2462,29 +2496,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Eremuak
STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Elurrez estalitako paisaia
STR_LAI_CLEAR_DESCRIPTION_DESERT :Desertua
STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} Trenbidea
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} Trenbidea blokeo seinalearekin
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} trenbidea aurre-seinalekin
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} trenbidea irteera seinaleekin
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} trenbidea konbo seinaleekin
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} trenbidea bide seinaleekin
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} trenbidea norabide bakarreko bide seinaleekin
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} trenbidea blokeo seinale eta aurre-seinaleekin
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} trenbidea blokeo seinale eta irteera seinaleekin
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} trenbidea blokeo seinalea eta konbo seinaleekin
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} trenbidea blokeo seinaleekin eta bide seinaleekin
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} Trenbidea blokeo eta norabide bakarreko bide seinaleekin
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} trenbidea aurre-seinale eta irteera seinaleekin
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} trenbidea aurre-seinale eta konbo seinaleekin
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} trenbidea aurre-seinale eta bide seinaleekin
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} trenbidea aurre-seinale eta norabide bakarreko bide seinaleekin
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} trenbidea irteera seinale eta konbo seinaleekin
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} trenbidea irteera seinale eta bide seinaleekin
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} trenbidea irteera seinale eta norabide bakarreko bide seinaleekin
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} trenbidea konbo seinale eta bide seinaleekin
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} trenbide konbo seinale eta norabide bakarreko bide seinaleekin
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} trenbidea bide seinale eta norabide bakarreko seinaleekina
STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} tren gordailua
STR_LAI_RAIL_DESCRIPTION_TRACK :Trenbidea Trenbidea
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Trenbidea Trenbidea blokeo seinalearekin
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Trenbidea trenbidea aurre-seinalekin
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Trenbidea trenbidea irteera seinaleekin
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Trenbidea trenbidea konbo seinaleekin
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Trenbidea trenbidea bide seinaleekin
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Trenbidea trenbidea norabide bakarreko bide seinaleekin
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Trenbidea trenbidea blokeo seinale eta aurre-seinaleekin
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Trenbidea trenbidea blokeo seinale eta irteera seinaleekin
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Trenbidea trenbidea blokeo seinalea eta konbo seinaleekin
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Trenbidea trenbidea blokeo seinaleekin eta bide seinaleekin
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Trenbidea Trenbidea blokeo eta norabide bakarreko bide seinaleekin
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Trenbidea trenbidea aurre-seinale eta irteera seinaleekin
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Trenbidea trenbidea aurre-seinale eta konbo seinaleekin
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Trenbidea trenbidea aurre-seinale eta bide seinaleekin
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Trenbidea trenbidea aurre-seinale eta norabide bakarreko bide seinaleekin
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Trenbidea trenbidea irteera seinale eta konbo seinaleekin
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Trenbidea trenbidea irteera seinale eta bide seinaleekin
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Trenbidea trenbidea irteera seinale eta norabide bakarreko bide seinaleekin
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Trenbidea trenbidea konbo seinale eta bide seinaleekin
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Trenbidea trenbide konbo seinale eta norabide bakarreko bide seinaleekin
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Trenbidea trenbidea bide seinale eta norabide bakarreko seinaleekina
STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Trenbidea tren gordailua
STR_LAI_ROAD_DESCRIPTION_ROAD :errepidea
STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Errepidea farolekin
@ -2548,7 +2582,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Konpainia jabe
STR_ABOUT_OPENTTD :{WHITE}OpenTTD-ri buruz
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Original copyright {COPYRIGHT} 1995 Chris Sawyer, All rights reserved
STR_ABOUT_VERSION :{BLACK}OpenTTD bertsioa {REV}
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 The OpenTTD team
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 The OpenTTD team
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Gordetako jokoa
@ -2720,7 +2754,11 @@ STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK}Emandako
STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Aldez aurreko "sprit"-a
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Aurreko grafiko arruntera joan, pseudo/birkoloretu/grafiko tipoak desgaituz
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Orain aukeratutako grafikoaren aurkezpena. Alineazioa ez da kontua hartzen grafiko hau egiterakoan
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}"Sprit"-a mugitu inguruan, X eta Y-ren desplazamenduak aldatuz
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Sprite-a mugitu ingurunean, X eta Y-ren desplazamenduak aldatuz. Ctrl+Klik sprite-a zortzi unitatero mugitzeko
STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Erlatiboa berezarri
STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Momentuan dauden desplazamendu erlatiboak erreseteatu
STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}X desplazamendua: {NUM}, Y desplazamendua: {NUM} (Absolutua)
STR_SPRITE_ALIGNER_OFFSETS_REL :{BLACK}X desplazamendua: {NUM}, Y desplazamendua: {NUM} (Erlatiboa)
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}"Sprit"-a aukeratu
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Pantaillako edozein lekutatik aukeratu "sprite" bat
@ -2731,7 +2769,7 @@ STR_NEWGRF_ERROR_MSG_INFO :{SILVER}{STRING
STR_NEWGRF_ERROR_MSG_WARNING :{RED}Kontuz: {SILVER}{STRING}
STR_NEWGRF_ERROR_MSG_ERROR :{RED}Akatsa {SILVER}{STRING}
STR_NEWGRF_ERROR_MSG_FATAL :{RED}Larria: {SILVER}{STRING}
STR_NEWGRF_ERROR_FATAL_POPUP :{WHITE}NewGRF-an akats larria gertatu da: {}{STRING}
STR_NEWGRF_ERROR_FATAL_POPUP :{WHITE}NewGRF-an akats larria gertatu da:{}{STRING}
STR_NEWGRF_ERROR_VERSION_NUMBER :{1:STRING} ez du funtzionatuko OpenTTD-k esandakoTTDPatch bertsioarekin
STR_NEWGRF_ERROR_DOS_OR_WINDOWS :{1:STRING} {STRING} TTD bertsioarentzat da
STR_NEWGRF_ERROR_UNSET_SWITCH :{1:STRING} {STRING}arekin erabiltzeko diseinatua izan da
@ -2749,6 +2787,7 @@ STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING
STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Action 8 sarrera asko ditu (sprite {3:NUM})
STR_NEWGRF_ERROR_READ_BOUNDS :Pseudo spritea baino hurrunago irakurri (sprite {3:NUM})
STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}Aukeratuta daukazun oinarrizko grafiko paketean "sprite" batzuk falta dira.{}Mesedez eguneratu oinarrizko grafiko paketea
STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}Erabiltzen ari den grafiko baseari sprite batzuk falta zaizkio.{}Mesedez zure grafiko basea eguneratu ezazu.{}OpenTTD-ren {YELLOW}garapen bertsio bat erabiltzen ari zarenez{WHITE}, grafiko basearen {YELLOW}garapen bertsio bat behar izango duzu{WHITE}
STR_NEWGRF_ERROR_GRM_FAILED :Eskatutako GRFa ez dago eskuragarri (sprite {3:NUM})
STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} desgaitua izan da {STRING}(en)gatik
STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Grafiko deseinu formatu ezezaguna/baliogabea (sprite {3:NUM})
@ -2759,6 +2798,7 @@ STR_NEWGRF_CONFIRMATION_TEXT :{YELLOW}Abiaraz
STR_NEWGRF_DUPLICATE_GRFID :{WHITE}Ezin artxiboa gehitu: GRF ID bikoiztua
STR_NEWGRF_COMPATIBLE_LOADED :{ORANGE}Bat datorren artxiboa ez da aurkitu (GRF bateragarria kargatua)
STR_NEWGRF_TOO_MANY_NEWGRFS :{WHITE}Ezin da artxiboa gehitu: NewGRF-ren artxibo limitera iritsia
STR_NEWGRF_COMPATIBLE_LOAD_WARNING :{WHITE}Falta diren artxiboentzako GRF bateragarria deskargatua
STR_NEWGRF_DISABLED_WARNING :{WHITE}Falta de GRF artxiboa desgaitua izan da
@ -2878,6 +2918,7 @@ STR_GOALS_SPECTATOR_CAPTION :{WHITE}Helburu
STR_GOALS_GLOBAL_TITLE :{BLACK}Helburu orokorrak:
STR_GOALS_TEXT :{ORANGE}{STRING}
STR_GOALS_NONE :{ORANGE}- Ezer ez -
STR_GOALS_SPECTATOR_NONE :{ORANGE}- Ez aplikagarria -
STR_GOALS_PROGRESS :{ORANGE}{STRING}
STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING}
STR_GOALS_COMPANY_TITLE :{BLACK}Konpainiaren helburuak:
@ -2920,6 +2961,8 @@ STR_SUBSIDIES_SUBSIDISED_FROM_TO :{ORANGE}{STRING
STR_SUBSIDIES_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Klikatu garraio zerbitzuan ikuspegi nagusia industria/herrian zentratzeko. Ktrl+Klik ikuspegi lehio berria irekiko du indutri/herriaren kokapenean
# Story book window
STR_STORY_BOOK_CAPTION :{WHITE}{COMPANY} Istorio Liburua
STR_STORY_BOOK_SPECTATOR_CAPTION :{WHITE}Istorio Liburu Globala
STR_STORY_BOOK_TITLE :{YELLOW}{STRING}
STR_STORY_BOOK_GENERIC_PAGE_ITEM :Orrialdea {NUM}
STR_STORY_BOOK_PREV_PAGE :{BLACK}Aurrekoa
@ -2955,6 +2998,7 @@ STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Zama bal
STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Geltokiaren zama balorazioak erakutsi
STR_STATION_VIEW_CARGO_SUPPLY_RATING :{WHITE}{STRING}: {YELLOW}{COMMA} / {STRING} ({COMMA}%)
STR_STATION_VIEW_GROUP :{BLACK}Taldekatu
STR_STATION_VIEW_WAITING_STATION :Geltokia: Itxaroten
STR_STATION_VIEW_WAITING_AMOUNT :Kopurua: Itxoiten
STR_STATION_VIEW_FROM :{YELLOW}{CARGO_SHORT} {STATION}-tik
@ -3185,6 +3229,7 @@ STR_GROUP_DELETE_TOOLTIP :{BLACK}Aukeratu
STR_GROUP_RENAME_TOOLTIP :{BLACK}Aukeratutako taldea berrizendatu
STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Klikatu taldean ordezkatze orokorretik babesteko
STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Taldea Ezabatu
STR_GROUP_ADD_SHARED_VEHICLE :Geheitu konpartituako ibilgailuak
STR_GROUP_REMOVE_ALL_VEHICLES :Ibilgailu guztiak ezabatu
@ -3248,7 +3293,15 @@ STR_BUY_VEHICLE_ROAD_VEHICLE_RENAME_TOOLTIP :{BLACK}Errepide
STR_BUY_VEHICLE_SHIP_RENAME_TOOLTIP :{BLACK}Itsasontzia berrizendatu
STR_BUY_VEHICLE_AIRCRAFT_RENAME_TOOLTIP :{BLACK}Hegazkina berrizendatu
STR_BUY_VEHICLE_TRAIN_HIDE_TOGGLE_BUTTON :{BLACK}Ezkutatu
STR_BUY_VEHICLE_ROAD_VEHICLE_HIDE_TOGGLE_BUTTON :{BLACK}Ezkutatu
STR_BUY_VEHICLE_SHIP_HIDE_TOGGLE_BUTTON :{BLACK}Ezkutatu
STR_BUY_VEHICLE_AIRCRAFT_HIDE_TOGGLE_BUTTON :{BLACK}Ezkutatu
STR_BUY_VEHICLE_TRAIN_SHOW_TOGGLE_BUTTON :{BLACK}Erakutsi
STR_BUY_VEHICLE_ROAD_VEHICLE_SHOW_TOGGLE_BUTTON :{BLACK}Erakutsi
STR_BUY_VEHICLE_SHIP_SHOW_TOGGLE_BUTTON :{BLACK}Erakutsi
STR_BUY_VEHICLE_AIRCRAFT_SHOW_TOGGLE_BUTTON :{BLACK}Erakutsi
STR_QUERY_RENAME_TRAIN_TYPE_CAPTION :{WHITE}Tren ibilgailua berrizendatu
@ -3355,6 +3408,8 @@ STR_REPLACE_VEHICLE_ROAD_VEHICLE :Errepide ibilga
STR_REPLACE_VEHICLE_SHIP :Itsasontzia
STR_REPLACE_VEHICLE_AIRCRAFT :Hegazkina
STR_REPLACE_VEHICLE_VEHICLES_IN_USE :{YELLOW}Erabilitako garraioak
STR_REPLACE_VEHICLE_AVAILABLE_VEHICLES :{YELLOW}Garraio eskuragarriak
STR_REPLACE_HELP_LEFT_ARRAY :{BLACK}Aukeratu aldatu beharreko motore mota
STR_REPLACE_HELP_RIGHT_ARRAY :{BLACK} Aukeratu motore mota zaharra ordezkatuko duen motore berria
@ -3369,7 +3424,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} zaharr
STR_REPLACE_VEHICLES_STOP :{BLACK}Ibilgailuak ordezkatzen gelditu
STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Klikatu ezkerrean aukeratutako motore motaren ordezkapena gelditzeko
STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Ordezkatzen: {ORANGE}{STRING}
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Aldatu motore pantaila eta bagoi paintailaren artean
STR_REPLACE_ENGINES :Motoreak
STR_REPLACE_WAGONS :Bagoiak
@ -4690,6 +4744,7 @@ STR_COMPANY_NAME :{COMPANY}
STR_COMPANY_NAME_COMPANY_NUM :{COMPANY} {COMPANY_NUM}
STR_DEPOT_NAME :{DEPOT}
STR_ENGINE_NAME :{ENGINE}
STR_HIDDEN_ENGINE_NAME :{ENGINE} (ezkutua)
STR_GROUP_NAME :{GROUP}
STR_INDUSTRY_NAME :{INDUSTRY}
STR_PRESIDENT_NAME :{PRESIDENT_NAME}

@ -2225,7 +2225,7 @@ STR_NETWORK_SERVER_LIST_GAME_NAME :{BLACK}Назв
STR_NETWORK_SERVER_LIST_GAME_NAME_TOOLTIP :{BLACK}Назва гэтай гульні
STR_NETWORK_SERVER_LIST_GENERAL_ONLINE :{BLACK}{COMMA}/{COMMA} — {COMMA}/{COMMA}
STR_NETWORK_SERVER_LIST_CLIENTS_CAPTION :{BLACK}Кліенты
STR_NETWORK_SERVER_LIST_CLIENTS_CAPTION_TOOLTIP :{BLACK}Клиентаў анлайн/макс. {}Кампаніяў анлайн/макс.
STR_NETWORK_SERVER_LIST_CLIENTS_CAPTION_TOOLTIP :{BLACK}Клиентаў анлайн/макс.{}Кампаніяў анлайн/макс.
STR_NETWORK_SERVER_LIST_MAP_SIZE_SHORT :{BLACK}{COMMA}x{COMMA}
STR_NETWORK_SERVER_LIST_MAP_SIZE_CAPTION :{BLACK}Памер мапы
STR_NETWORK_SERVER_LIST_MAP_SIZE_CAPTION_TOOLTIP :{BLACK}Памер мапы гульні{}Клікніце для сартаваньня па плошчы
@ -2934,29 +2934,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Палi
STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Засьнежаная зямля
STR_LAI_CLEAR_DESCRIPTION_DESERT :Пустэльня
STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} рэйкi
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} рэйкi са звычайнымі сыґналамi
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} рэйкi з уваходнымі прэсыґналамi
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} рэйкi з выхаднымi сыґналамi (прэсыґналамі)
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} рэйкi з камбаванымi сыґналамi (прэсыґналамі)
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} рэйкi з маршрутнымi (PMS) сыґналамi
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} рэйкi з аднабаковымi маршрутнымi (PMS) сыґналамi
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} рэйкi са звычайнымi й уваходнымі прэсыґналамi
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} рэйкi са звычайнымi й выхаднымi сыґналамi
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} рэйкi са звычайнымi й камбаванымi сыґналамi
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} рэйкi са звычайнымi й маршрутнымi (PMS) сыґналамi
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} рэйкi са звычайнымi й аднабаковымi маршрутнымi (PMS) сыґналамi
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} рэйкi з уваходнымi (прэcыгналамi) ды выхаднымi сыґналамi
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} рэйкi з уваходнымi (прэсыґналамi) ды камбаванымi сыґналамi
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} рэйкi з уваходнымi (прэсыґналамi) ды маршрутнымi (PMS) сыґналамi
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} рэйкi з уваходнымi (прэсыґналамi) ды аднабаковымi маршрутнымi (PMS) сыґналамi
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} рэйкi з выхаднымi й камбінаванымі прэсыґналамі
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} рэйкі з выхаднымі (прэсыґналамі) ды маршрутнымі (PMS) сыґналамі
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} рэйкі з выхаднымі (прэсыґналамі) ды аднабаковымі маршрутнымі (PMS) сыґналамі
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} рэйкі з камбінаванымі (прэсыґналамі) ды маршрутнымі (PMS) сыґналамі
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} рэйкі з камбінаванымі (прэсыґналамі) ды аднабаковымі маршрутнымі (PMS) сыґналамі
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} рэйкі з маршрутнымі (PMS) ды аднабаковымі маршрутнымі сыґналамі
STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} чыгуначнае дэпо
STR_LAI_RAIL_DESCRIPTION_TRACK :Чыгунка рэйкi
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Чыгунка рэйкi са звычайнымі сыґналамi
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Чыгунка рэйкi з уваходнымі прэсыґналамi
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Чыгунка рэйкi з выхаднымi сыґналамi (прэсыґналамі)
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Чыгунка рэйкi з камбаванымi сыґналамi (прэсыґналамі)
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Чыгунка рэйкi з маршрутнымi (PMS) сыґналамi
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Чыгунка рэйкi з аднабаковымi маршрутнымi (PMS) сыґналамi
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Чыгунка рэйкi са звычайнымi й уваходнымі прэсыґналамi
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Чыгунка рэйкi са звычайнымi й выхаднымi сыґналамi
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Чыгунка рэйкi са звычайнымi й камбаванымi сыґналамi
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Чыгунка рэйкi са звычайнымi й маршрутнымi (PMS) сыґналамi
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Чыгунка рэйкi са звычайнымi й аднабаковымi маршрутнымi (PMS) сыґналамi
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Чыгунка рэйкi з уваходнымi (прэcыгналамi) ды выхаднымi сыґналамi
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Чыгунка рэйкi з уваходнымi (прэсыґналамi) ды камбаванымi сыґналамi
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Чыгунка рэйкi з уваходнымi (прэсыґналамi) ды маршрутнымi (PMS) сыґналамi
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Чыгунка рэйкi з уваходнымi (прэсыґналамi) ды аднабаковымi маршрутнымi (PMS) сыґналамi
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Чыгунка рэйкi з выхаднымi й камбінаванымі прэсыґналамі
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Чыгунка рэйкі з выхаднымі (прэсыґналамі) ды маршрутнымі (PMS) сыґналамі
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Чыгунка рэйкі з выхаднымі (прэсыґналамі) ды аднабаковымі маршрутнымі (PMS) сыґналамі
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Чыгунка рэйкі з камбінаванымі (прэсыґналамі) ды маршрутнымі (PMS) сыґналамі
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Чыгунка рэйкі з камбінаванымі (прэсыґналамі) ды аднабаковымі маршрутнымі (PMS) сыґналамі
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Чыгунка рэйкі з маршрутнымі (PMS) ды аднабаковымі маршрутнымі сыґналамі
STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Чыгунка чыгуначнае дэпо
STR_LAI_ROAD_DESCRIPTION_ROAD :Дарога
STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Дарога з вулічным асьвятленьнем
@ -3020,7 +3020,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Зямля на
STR_ABOUT_OPENTTD :{WHITE}Аб OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Арыґінальныя аўтарскія правы {COPYRIGHT} 1995 Chris Sawyer. Усе правы абароненыя.
STR_ABOUT_VERSION :{BLACK}OpenTTD вэрсія {REV}
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 20022015 Каманда распрацоўнікаў OpenTTD
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 20022016 Каманда распрацоўнікаў OpenTTD
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Захаваць гульню
@ -3207,7 +3207,7 @@ STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK}Пера
STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Папярэдні спрайт
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Перайсьці да папярэдняга звычайнага спрайта, прапускаючы змяняючыя колер, шрыфтавыя, псэўдаспрайты. Пераход з пачатку сьпісу да апошняга спрайта.
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Прадстаўленьне выбранага спрайта. Выраўноўваньне не ўлічваецца пры прарысоўцы гэтага спрайта.
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Рухайце спрайт, зьмяняючы зрушэньне па X і па Y
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Рухайце спрайт, зьмяняючы зрушэньне па X і па Y. Ctrl+пстрычка, каб зрушыць спрайт на восем адзінак за раз
STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Скід зрушэння
STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Скінуць значэнні адноснага зрушэння
STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}Зрушэнне X: {NUM}; зрушэнне Y: {NUM} (абсалютнае)
@ -3222,7 +3222,7 @@ STR_NEWGRF_ERROR_MSG_INFO :{SILVER}{STRING
STR_NEWGRF_ERROR_MSG_WARNING :{RED}Увага: {SILVER}{STRING}
STR_NEWGRF_ERROR_MSG_ERROR :{RED}Памылка: {SILVER}{STRING}
STR_NEWGRF_ERROR_MSG_FATAL :{RED}Крытычная памылка: {SILVER}{STRING}
STR_NEWGRF_ERROR_FATAL_POPUP :{WHITE}Памылка пры рабоце з NewGRF: {}{STRING}
STR_NEWGRF_ERROR_FATAL_POPUP :{WHITE}Памылка пры рабоце з NewGRF:{}{STRING}
STR_NEWGRF_ERROR_VERSION_NUMBER :{1:STRING} ня будзе працаваць з вэрсіяй TTDPatch, паведламленай OpenTTD.
STR_NEWGRF_ERROR_DOS_OR_WINDOWS :Файл {1:STRING} патрабуе {STRING}-вэрсію TTD.
STR_NEWGRF_ERROR_UNSET_SWITCH :{1:STRING} зроблены для выкарыстаньня сумесна з {STRING}
@ -3910,7 +3910,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} кал
STR_REPLACE_VEHICLES_STOP :{BLACK}Спыніць замену
STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Спыніць замену транспарту
STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Замяняем: {ORANGE}{STRING}
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Пераключэньне паміж вокнамі замены лякаматываў і ваґонаў
STR_REPLACE_ENGINES :Лякаматывы
STR_REPLACE_WAGONS :Ваґоны

@ -1090,7 +1090,7 @@ STR_CITY_APPROVAL_HOSTILE :Hostil
STR_WARNING_NO_SUITABLE_AI :{WHITE}Não há IA compatíveis disponíveis...{}Você pode baixar várias IA's pelo sistema de 'Conteúdo Online'
# Settings tree window
STR_CONFIG_SETTING_TREE_CAPTION :[WHITE}Configurações
STR_CONFIG_SETTING_TREE_CAPTION :{WHITE}Configurações
STR_CONFIG_SETTING_FILTER_TITLE :{BLACK}Filtro:
STR_CONFIG_SETTING_EXPAND_ALL :{BLACK}Maximizar tudo
STR_CONFIG_SETTING_COLLAPSE_ALL :{BLACK}Minimizar tudo
@ -2602,29 +2602,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Campos
STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Neve
STR_LAI_CLEAR_DESCRIPTION_DESERT :Deserto
STR_LAI_RAIL_DESCRIPTION_TRACK :Trilho de {STRING}
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Trilho de {STRING} com sinais normais
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Trilho de {STRING} com pré-sinais
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Trilho de {STRING} com sinais de saída
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Trilho de {STRING} com sinais-combo
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Trilho de {STRING} com sinais avançados
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Trilhos de {STRING} com sinais avançados de mão única
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Trilho de {STRING} com sinais normais e pré-sinais
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Trilho de {STRING} com sinais normais e pré-sinais
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Trilho de {STRING} com sinais normais e sinais-combo
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Trilho de {STRING} com sinais normais e avançados
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Trilho de {STRING} com sinais normais e avançados de mão única
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Trilho de {STRING} com pré-sinais e de saída
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Trilho de {STRING} com pré-sinais e sinais-combo
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Trilho de {STRING} com pré-sinais e sinais avançados
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Trilho de {STRING} com pré-sinais e avançados de mão única
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Trilho de {STRING} com sinais de saída e sinais-combo
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Trilho de {STRING} com sinais de saída e avançados
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Trilho de {STRING} com sinais de saída e avançados de mão única
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Trilho de {STRING} com sinais-combo e avançados
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Trilho de {STRING} com sinais-combo e avançados de mão única
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Trilho de {STRING} com sinais avançados e avançados de mão única
STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Depósito de {STRING}
STR_LAI_RAIL_DESCRIPTION_TRACK :Trilho de Ferrovia
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Trilho de Ferrovia com sinais normais
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Trilho de Ferrovia com pré-sinais
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Trilho de Ferrovia com sinais de saída
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Trilho de Ferrovia com sinais-combo
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Trilho de Ferrovia com sinais avançados
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Trilhos de Ferrovia com sinais avançados de mão única
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Trilho de Ferrovia com sinais normais e pré-sinais
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Trilho de Ferrovia com sinais normais e pré-sinais
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Trilho de Ferrovia com sinais normais e sinais-combo
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Trilho de Ferrovia com sinais normais e avançados
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Trilho de Ferrovia com sinais normais e avançados de mão única
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Trilho de Ferrovia com pré-sinais e de saída
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Trilho de Ferrovia com pré-sinais e sinais-combo
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Trilho de Ferrovia com pré-sinais e sinais avançados
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Trilho de Ferrovia com pré-sinais e avançados de mão única
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Trilho de Ferrovia com sinais de saída e sinais-combo
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Trilho de Ferrovia com sinais de saída e avançados
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Trilho de Ferrovia com sinais de saída e avançados de mão única
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Trilho de Ferrovia com sinais-combo e avançados
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Trilho de Ferrovia com sinais-combo e avançados de mão única
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Trilho de Ferrovia com sinais avançados e avançados de mão única
STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Depósito de Ferrovia
STR_LAI_ROAD_DESCRIPTION_ROAD :Rodovia
STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Rodovia iluminada
@ -2688,7 +2688,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :O terreno é pr
STR_ABOUT_OPENTTD :{WHITE}Sobre o OpenTTD...
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright original {COPYRIGHT} 1995 Chris Sawyer, Todos os direitos reservados
STR_ABOUT_VERSION :{BLACK}OpenTTD versão {REV}
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 A equipe do OpenTTD
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 A equipe do OpenTTD
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Salvar Jogo
@ -2875,7 +2875,7 @@ STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK}Vai para
STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}"Sprite" anterior
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Retorna ao "sprite" normal anterior, pulando quaisquer "sprites" falsos, recoloridos ou de fontes, e junta tudo do primeiro ao último
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Representação do "sprite" atualmente selecionado. O alinhamento é ignorado ao desenhar esse "sprite"
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Move o "sprite", alterando os offsets X e Y
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Move o "sprite", alterando os offsets X e Y. Ctrl+Clique para mover o sprite 8 unidades por vez
STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Resetar relativo
STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Reseta os offsets relativos atuais
STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}X offset: {NUM}, Y offset: {NUM} (Absoluto)
@ -2890,7 +2890,7 @@ STR_NEWGRF_ERROR_MSG_INFO :{SILVER}{STRING
STR_NEWGRF_ERROR_MSG_WARNING :{RED}Atenção: {SILVER}{STRING}
STR_NEWGRF_ERROR_MSG_ERROR :{RED}Erro: {SILVER}{STRING}
STR_NEWGRF_ERROR_MSG_FATAL :{RED}Erro Fatal: {SILVER}{STRING}
STR_NEWGRF_ERROR_FATAL_POPUP :{WHITE}Um erro de NewGRF fatal ocorreu: {}{STRING}
STR_NEWGRF_ERROR_FATAL_POPUP :{WHITE}Um erro de NewGRF fatal ocorreu:{}{STRING}
STR_NEWGRF_ERROR_VERSION_NUMBER :{1:STRING} não irá funcionar com a versão do TTDPatch encontrada pelo OpenTTD
STR_NEWGRF_ERROR_DOS_OR_WINDOWS :{1:STRING} funciona na versão {STRING} de TTD
STR_NEWGRF_ERROR_UNSET_SWITCH :{1:STRING} é projetado para ser usado com {STRING}
@ -3558,7 +3558,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} quando
STR_REPLACE_VEHICLES_STOP :{BLACK}Parar Substituição
STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Pressione para parar a subsituição do tipo de motor que selecionou à esquerda
STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Substituindo: {ORANGE}{STRING}
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Troca entre substituir máquinas e substituir vagões
STR_REPLACE_ENGINES :Motores
STR_REPLACE_WAGONS :Vagões
@ -3975,7 +3974,7 @@ STR_AI_DEBUG_SELECT_AI_TOOLTIP :{BLACK}Ver a de
STR_AI_GAME_SCRIPT :{BLACK}Game Script
STR_AI_GAME_SCRIPT_TOOLTIP :{BLACK}Checando o log do Game Script
STR_ERROR_AI_NO_AI_FOUND :Nenhuma IA adequada encontrada para carregar. {} Esta IA é falsa e não irá fazer nada. {} Você pode pode baixar várias IA através do sistema de 'Conteúdo Online'
STR_ERROR_AI_NO_AI_FOUND :Nenhuma IA adequada encontrada para carregar.{} Esta IA é falsa e não irá fazer nada.{} Você pode pode baixar várias IA através do sistema de 'Conteúdo Online'
STR_ERROR_AI_PLEASE_REPORT_CRASH :{WHITE}Um dos scripts em execução travou. Favor relatar isto ao autor do script com uma captura de tela da Janela de Depuração da I.A./Script do jogo
STR_ERROR_AI_DEBUG_SERVER_ONLY :{YELLOW}Depuração de I.A./Script do jogo só é acessível pelo servidor
@ -4080,7 +4079,7 @@ STR_GAME_SAVELOAD_NOT_AVAILABLE :<não disponív
STR_WARNING_LOADGAME_REMOVED_TRAMS :{WHITE}Jogo foi salvo numa versão sem suporte a bondes. Todos os bondes foram removidos
# Map generation messages
STR_ERROR_COULD_NOT_CREATE_TOWN :{WHITE}Geração do mapa abortada... {}... não há locais para criação de cidades
STR_ERROR_COULD_NOT_CREATE_TOWN :{WHITE}Geração do mapa abortada...{}... não há locais para criação de cidades
STR_ERROR_NO_TOWN_IN_SCENARIO :{WHITE}... não existe cidade neste cenário
STR_ERROR_PNGMAP :{WHITE}Impossível carregar terreno a partir de PNG...
@ -4173,7 +4172,7 @@ STR_ERROR_TOO_MANY_TOWNS :{WHITE}... cida
STR_ERROR_NO_SPACE_FOR_TOWN :{WHITE}... não há mais espaço no mapa
STR_ERROR_TOWN_EXPAND_WARN_NO_ROADS :{WHITE}A cidade não irá construir estradas. Você pode ativar a construção através de Configurações->Ambiente->Cidades
STR_ERROR_ROAD_WORKS_IN_PROGRESS :{WHITE}Recapeamento rodoviário em progresso
STR_ERROR_TOWN_CAN_T_DELETE :{WHITE}Impossível remover cidade... {}Uma estação ou depósito referente à essa cidade não pode ser removido
STR_ERROR_TOWN_CAN_T_DELETE :{WHITE}Impossível remover cidade...{}Uma estação ou depósito referente à essa cidade não pode ser removido
STR_ERROR_STATUE_NO_SUITABLE_PLACE :{WHITE}... não há local para uma estátua no centro dessa cidade
# Industry related errors

@ -2540,29 +2540,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Поля
STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Заснежена земя
STR_LAI_CLEAR_DESCRIPTION_DESERT :Пустиня
STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} линия
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} линия с блокиращи сигнали
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} линия с пре-сигнали
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} линия с изходни сигнали
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} линия с комбо сигнали
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} линия с насочващи сигнали
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} линия с еднопосочни сигнали
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} линия с блокиращи и пре-сигнали
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} линия с блокиращи и изходни сигнали
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} линия с блокиращи и комбо сигнали
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} линия с блокиращи и насочващи сигнали
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} линия с блокиращи и еднопосочни сигнали
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} линия с пред и изходни сигнали
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} линя с пред и комбо сигнали
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} линия с пред и насочващи сигнали
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} линия с пред и еднопосочни сигнали
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} линия с изходни и комбо сигнали
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} линия с изходни и насочващи сигнали
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} линия с изходни и еднопосочни сигнали
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} линия с комбо и насочващи сигнали
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} линия с комбо и еднопосочни сигнали
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} линия с насочващи и еднопосочни сигнали
STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} влаково депо
STR_LAI_RAIL_DESCRIPTION_TRACK :ЖП път линия
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :ЖП път линия с блокиращи сигнали
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :ЖП път линия с пре-сигнали
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :ЖП път линия с изходни сигнали
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :ЖП път линия с комбо сигнали
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :ЖП път линия с насочващи сигнали
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :ЖП път линия с еднопосочни сигнали
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :ЖП път линия с блокиращи и пре-сигнали
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :ЖП път линия с блокиращи и изходни сигнали
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :ЖП път линия с блокиращи и комбо сигнали
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :ЖП път линия с блокиращи и насочващи сигнали
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :ЖП път линия с блокиращи и еднопосочни сигнали
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :ЖП път линия с пред и изходни сигнали
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :ЖП път линя с пред и комбо сигнали
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :ЖП път линия с пред и насочващи сигнали
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :ЖП път линия с пред и еднопосочни сигнали
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :ЖП път линия с изходни и комбо сигнали
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :ЖП път линия с изходни и насочващи сигнали
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :ЖП път линия с изходни и еднопосочни сигнали
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :ЖП път линия с комбо и насочващи сигнали
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :ЖП път линия с комбо и еднопосочни сигнали
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :ЖП път линия с насочващи и еднопосочни сигнали
STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :ЖП път влаково депо
STR_LAI_ROAD_DESCRIPTION_ROAD :път
STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Асфалтов път с улично осветление
@ -2626,7 +2626,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Земя, пр
STR_ABOUT_OPENTTD :{WHITE}Относно OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Авторски права {COPYRIGHT} 1995 Крис Сойер (Chris Sawyer), Всички права са запазени
STR_ABOUT_VERSION :{BLACK}OpenTTD версия {REV}
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2015 The OpenTTD team
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2016 The OpenTTD team
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Запази играта
@ -2821,7 +2821,7 @@ STR_NEWGRF_ERROR_MSG_INFO :{SILVER}{STRING
STR_NEWGRF_ERROR_MSG_WARNING :{RED}Внимание: {SILVER}{STRING}
STR_NEWGRF_ERROR_MSG_ERROR :{RED}Грешка: {SILVER}{STRING}
STR_NEWGRF_ERROR_MSG_FATAL :{RED}Критично: {SILVER}{STRING}
STR_NEWGRF_ERROR_FATAL_POPUP :{WHITE}Настъпи фатална грешка в NewGRF: {}{STRING}
STR_NEWGRF_ERROR_FATAL_POPUP :{WHITE}Настъпи фатална грешка в NewGRF:{}{STRING}
STR_NEWGRF_ERROR_VERSION_NUMBER :{1:STRING} няма да работи с версията на TTDPatch указана от OpenTTD.
STR_NEWGRF_ERROR_DOS_OR_WINDOWS :{1:STRING} е за {STRING} версията на TTD.
STR_NEWGRF_ERROR_UNSET_SWITCH :{1:STRING} е проектиран да работи с {STRING}
@ -3477,7 +3477,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} ког
STR_REPLACE_VEHICLES_STOP :{BLACK}Спиране на замяната
STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Натиснете за спиране подновяването на избрания в ляво двигател
STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Замяна: {ORANGE}{STRING}
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Превключване между замяна на локомотиви и вагони
STR_REPLACE_ENGINES :Двигатели
STR_REPLACE_WAGONS :Вагони

File diff suppressed because it is too large Load Diff

@ -200,7 +200,7 @@ STR_QUANTITY_GRAIN :{WEIGHT_LONG}
STR_QUANTITY_WOOD :{WEIGHT_LONG} drveta
STR_QUANTITY_IRON_ORE :{WEIGHT_LONG} željezne rude
STR_QUANTITY_STEEL :{WEIGHT_LONG} čelika
STR_QUANTITY_VALUABLES :{COMMA}{NBSP}vreć{P a e a} s vrijednosnicama
STR_QUANTITY_VALUABLES :{COMMA}{NBSP}vreć{P a e a} s dragocjenostima
STR_QUANTITY_COPPER_ORE :{WEIGHT_LONG} bakrene rude
STR_QUANTITY_MAIZE :{WEIGHT_LONG} kukuruza
STR_QUANTITY_FRUIT :{WEIGHT_LONG} voća
@ -229,7 +229,7 @@ STR_ABBREV_PASSENGERS :{TINY_FONT}PU
STR_ABBREV_COAL :{TINY_FONT}UG
STR_ABBREV_MAIL :{TINY_FONT}PT
STR_ABBREV_OIL :{TINY_FONT}NF
STR_ABBREV_LIVESTOCK :{TINY_FONT}
STR_ABBREV_LIVESTOCK :{TINY_FONT}ST
STR_ABBREV_GOODS :{TINY_FONT}RB
STR_ABBREV_GRAIN :{TINY_FONT}ŽT
STR_ABBREV_WOOD :{TINY_FONT}DV
@ -242,7 +242,7 @@ STR_ABBREV_FRUIT :{TINY_FONT}VĆ
STR_ABBREV_DIAMONDS :{TINY_FONT}DM
STR_ABBREV_FOOD :{TINY_FONT}HN
STR_ABBREV_PAPER :{TINY_FONT}PR
STR_ABBREV_GOLD :{TINY_FONT}AU
STR_ABBREV_GOLD :{TINY_FONT}ZL
STR_ABBREV_WATER :{TINY_FONT}VO
STR_ABBREV_WHEAT :{TINY_FONT}PŠ
STR_ABBREV_RUBBER :{TINY_FONT}GM
@ -325,8 +325,8 @@ STR_LIST_FILTER_OSKTITLE :{BLACK}Unesi zn
STR_LIST_FILTER_TOOLTIP :{BLACK}Unesite ključnu riječ kako bi filtrirali popis
STR_TOOLTIP_GROUP_ORDER :{BLACK}Odaberi naredbu za grupiranje
STR_TOOLTIP_SORT_ORDER :{BLACK}Izaberi način sortiranja (silazno/uzlazno)
STR_TOOLTIP_SORT_CRITERIA :{BLACK}Izaberi kriterij za sortiranje
STR_TOOLTIP_SORT_ORDER :{BLACK}Odaberi način sortiranja (silazno/uzlazno)
STR_TOOLTIP_SORT_CRITERIA :{BLACK}Odaberi kriterij za sortiranje
STR_TOOLTIP_FILTER_CRITERIA :{BLACK}Odaberi kriterij filtriranja
STR_BUTTON_SORT_BY :{BLACK}Sortiraj prema
STR_BUTTON_LOCATION :{BLACK}Lokacija
@ -385,7 +385,7 @@ STR_SORT_BY_PROFIT_THIS_YEAR :Dobit ove godin
STR_SORT_BY_AGE :Godine
STR_SORT_BY_RELIABILITY :Pouzdanost
STR_SORT_BY_TOTAL_CAPACITY_PER_CARGOTYPE :Ukupna nosivost prema vrsti tereta
STR_SORT_BY_MAX_SPEED :Maksimalna brzina
STR_SORT_BY_MAX_SPEED :Najveća brzina
STR_SORT_BY_MODEL :Model
STR_SORT_BY_VALUE :Vrijednost
STR_SORT_BY_LENGTH :Dužina
@ -437,7 +437,7 @@ STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS :{BLACK}Izgradi
STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}Otvori alatnu traku za krajolik kako bi spustio/izdignuo zemlju, posadio drveće, itd.
STR_TOOLBAR_TOOLTIP_SHOW_SOUND_MUSIC_WINDOW :{BLACK}Pokaži prozor za zvuk/glazbu
STR_TOOLBAR_TOOLTIP_SHOW_LAST_MESSAGE_NEWS :{BLACK}Pokaži zadnju poruku/vijest, pokaži postavke poruka
STR_TOOLBAR_TOOLTIP_LAND_BLOCK_INFORMATION :{BLACK}Podaci o zemlji, konzola, debug skripte, snimke ekrana, o OpenTTD-u
STR_TOOLBAR_TOOLTIP_LAND_BLOCK_INFORMATION :{BLACK}Podaci o terenu, konzola, debugiranje skripte, snimke zaslona, o OpenTTD-u
STR_TOOLBAR_TOOLTIP_SWITCH_TOOLBAR :{BLACK}Promijeni alatne trake
# Extra tooltips for the scenario editor toolbar
@ -570,7 +570,7 @@ STR_ABOUT_MENU_AI_DEBUG :Debugiranje UI-
STR_ABOUT_MENU_SCREENSHOT :Slika zaslona
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Zumirano do kraja na slici zaslona
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Standardno zumiranje slike zaslona
STR_ABOUT_MENU_GIANT_SCREENSHOT :Slika zaslona cijele mape
STR_ABOUT_MENU_GIANT_SCREENSHOT :Slika zaslona cijele karte
STR_ABOUT_MENU_ABOUT_OPENTTD :O 'OpenTTD'
STR_ABOUT_MENU_SPRITE_ALIGNER :Poravnjanje sprite-a
STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Odaberi granične okvire
@ -712,7 +712,7 @@ STR_PERFORMANCE_DETAIL_VEHICLES :{BLACK}Vozila:
STR_PERFORMANCE_DETAIL_STATIONS :{BLACK}Postaje:
STR_PERFORMANCE_DETAIL_MIN_PROFIT :{BLACK}Min. dobit:
STR_PERFORMANCE_DETAIL_MIN_INCOME :{BLACK}Min. prihod:
STR_PERFORMANCE_DETAIL_MAX_INCOME :{BLACK}Maks. prihod:
STR_PERFORMANCE_DETAIL_MAX_INCOME :{BLACK}Najveći prihod:
STR_PERFORMANCE_DETAIL_DELIVERED :{BLACK}Dostavljeno:
STR_PERFORMANCE_DETAIL_CARGO :{BLACK}Teret:
STR_PERFORMANCE_DETAIL_MONEY :{BLACK}Novac:
@ -857,8 +857,8 @@ STR_SMALLMAP_TOOLTIP_ENABLE_ALL_INDUSTRIES :{BLACK}Prikaži
STR_SMALLMAP_TOOLTIP_SHOW_HEIGHT :{BLACK}Aktiviraj prikaz visinske karte
STR_SMALLMAP_TOOLTIP_DISABLE_ALL_COMPANIES :{BLACK}Prikaži sve što nije vlasništvo tvrtke na karti
STR_SMALLMAP_TOOLTIP_ENABLE_ALL_COMPANIES :{BLACK}Prikaži sve vlasništvo tvrtke na karti
STR_SMALLMAP_TOOLTIP_DISABLE_ALL_CARGOS :{BLACK}Prikaži bez tereta na mapi
STR_SMALLMAP_TOOLTIP_ENABLE_ALL_CARGOS :{BLACK}Prikaži sve terete na mapi
STR_SMALLMAP_TOOLTIP_DISABLE_ALL_CARGOS :{BLACK}Nemoj pokazivati terete na karti
STR_SMALLMAP_TOOLTIP_ENABLE_ALL_CARGOS :{BLACK}Prikaži sve terete na karti
# Status bar messages
STR_STATUSBAR_TOOLTIP_SHOW_LAST_NEWS :{BLACK}Pokaži zadnju poruku ili vijest
@ -1014,7 +1014,7 @@ STR_GAME_OPTIONS_CURRENCY_SEK :Švedska kruna
STR_GAME_OPTIONS_CURRENCY_TRY :Turska lira (TRY)
STR_GAME_OPTIONS_CURRENCY_SKK :Slovačka kruna (SKK)
STR_GAME_OPTIONS_CURRENCY_BRL :Brazilski real (BRL)
STR_GAME_OPTIONS_CURRENCY_EEK :estonska kruna (EEK)
STR_GAME_OPTIONS_CURRENCY_EEK :Estonska kruna (EEK)
STR_GAME_OPTIONS_CURRENCY_LTL :Litvanski Litas (LTL)
STR_GAME_OPTIONS_CURRENCY_KRW :Južnokorejski Won (KRW)
STR_GAME_OPTIONS_CURRENCY_ZAR :Južnoafrički Rand (ZAR)
@ -1067,13 +1067,13 @@ STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_12_MONTHS :Svakih 12 mjese
############ end of autosave dropdown
STR_GAME_OPTIONS_LANGUAGE :{BLACK}Jezik
STR_GAME_OPTIONS_LANGUAGE_TOOLTIP :{BLACK}Izaberi jezično sučelje
STR_GAME_OPTIONS_LANGUAGE_TOOLTIP :{BLACK}Odaberi jezik sučelja
STR_GAME_OPTIONS_FULLSCREEN :{BLACK}Cijeli ekran
STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}Označi ovu kućicu kako bi igrao OpenTTD preko cijelog ekrana
STR_GAME_OPTIONS_FULLSCREEN :{BLACK}Cijeli zaslon
STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}Označi ovu kućicu kako bi igrao OpenTTD preko cijelog zaslona
STR_GAME_OPTIONS_RESOLUTION :{BLACK}Razlučivost ekrana
STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Izaberi razlučivost ekrana
STR_GAME_OPTIONS_RESOLUTION :{BLACK}Razlučivost zaslona
STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Odaberi razlučivost zaslona
STR_GAME_OPTIONS_RESOLUTION_OTHER :ostalo
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Veličina sučelja
@ -1098,7 +1098,7 @@ STR_GAME_OPTIONS_BASE_MUSIC_STATUS :{RED}{NUM} neis
STR_GAME_OPTIONS_BASE_MUSIC_DESCRIPTION_TOOLTIP :{BLACK}Dodatne informacije o setu osnovne glazbe
STR_ERROR_RESOLUTION_LIST_FAILED :{WHITE}Povlačenje liste podržanih rezolucija nije uspjelo
STR_ERROR_FULLSCREEN_FAILED :{WHITE}Neuspješan prelazak na prikaz na cijelom ekranu
STR_ERROR_FULLSCREEN_FAILED :{WHITE}Prikaz na cijelom zaslonu nije uspio
# Custom currency window
@ -1126,11 +1126,11 @@ STR_CURRENCY_PREVIEW :{LTBLUE}Prikaz:
STR_CURRENCY_CUSTOM_CURRENCY_PREVIEW_TOOLTIP :{BLACK}10000 funti (£) u vašoj valuti
STR_CURRENCY_CHANGE_PARAMETER :{BLACK}Promijeni parametre proizvoljne valute
STR_DIFFICULTY_LEVEL_SETTING_MAXIMUM_NO_COMPETITORS :{LTBLUE}Maksimalan broj natjecatelja: {ORANGE}{COMMA}
STR_DIFFICULTY_LEVEL_SETTING_MAXIMUM_NO_COMPETITORS :{LTBLUE}Najveći broj natjecatelja: {ORANGE}{COMMA}
STR_NONE :Ništa
STR_FUNDING_ONLY :Samo financiranje
STR_MINIMAL :Minimalno
STR_MINIMAL :Najmanje
STR_NUM_VERY_LOW :Vrlo nisko
STR_NUM_LOW :Nisko
STR_NUM_NORMAL :Normalno
@ -1258,11 +1258,11 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Uključivanje n
STR_CONFIG_SETTING_CITY_APPROVAL :Stav gradske uprave prema restrukturiranju područja: {STRING}
STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Odaberi koliko buka i ekološka šteta utječu na gradsku ocjenu pojedine tvrtke i na daljnja građevinska djelovanja u njihovim područjima
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :Maksimalna visina mape: {STRING}
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :Postavi maksimalnu dozvoljenu visinu planina na mapi
STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}Ne možete postavini maksimalnu visinu mape na ovu vijednost. Barem jedna planina na mapi je viša.
STR_CONFIG_SETTING_AUTOSLOPE :Dopusti modeliranje zemlje ispod građevina, tračnica, itd.: {STRING}
STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Dopusti uređivanje terena ispod građevina i pruga bez njihovog uklanjanja
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :Najveća visina karte: {STRING}
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :Postavi najveću dopuštenu visinu planina na karti
STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}Nije moguće postaviti najveću visinu karte na ovu vrijednost. Barem jedna planina na karti je viša.
STR_CONFIG_SETTING_AUTOSLOPE :Dopusti uređivanje krajolika ispod građevina, tračnica, itd.: {STRING}
STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Dopusti uređivanje krajolika ispod građevina i pruga bez njihovog uklanjanja
STR_CONFIG_SETTING_CATCHMENT :Dopusti realističnije veličine područja zahvaćanja: {STRING}
STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Različiti dohvati za različite vrste stanica i zračnih luka
STR_CONFIG_SETTING_EXTRADYNAMITE :Dopusti rušenje više cesta, mostova i tunela u vlasništvu grada: {STRING}
@ -1284,17 +1284,17 @@ STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS_HELPTEXT :Kosina nagiba p
STR_CONFIG_SETTING_FORBID_90_DEG :Zabrani vlakovima i brodovima skretanja pod 90 stupnjeva: {STRING}
STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :Okreti za 90 stupnjeva se događaju kada vodoravni dio pruge odmah nastavlja okomiti dio pruge na sljedećem polju, dakle čineći zaokret vlaka od 90 stupnjeva prelaskom ruba polja umjesto uobičajenih 45 stupnjeva kod drugih kombinacija pruge. Ovo se primjenjuje i na radijus okretanja brodova
STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Dopusti spajanje postaja koje nisu izravno jedna do druge {STRING}
STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Dozvoli dodavanje dijelova stanice bez direktog dodira s postojećim dijelovima. Potrebno pritisnuti Ctrl+Klik dok se dodaju novi dijelovi
STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Dopusti dodavanje dijelova stanice bez izravnog dodira s postojećim dijelovima. Potrebno pritisnuti Ctrl+klik dok se dodaju novi dijelovi
STR_CONFIG_SETTING_INFLATION :Inflacija: {STRING}
STR_CONFIG_SETTING_INFLATION_HELPTEXT :Uključi inflaciju u ekonomiji, gdje troškovi rastu malo brže od plaćanja
STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Najveća dužina mostova: {STRING}
STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Najveća dužina za izgradnju mostova
STR_CONFIG_SETTING_MAX_BRIDGE_HEIGHT :Maksimalna visina mostova: {STRING}
STR_CONFIG_SETTING_MAX_BRIDGE_HEIGHT_HELPTEXT :Maksimalna visina za gradnju mostova
STR_CONFIG_SETTING_MAX_BRIDGE_HEIGHT :Najveća visina mostova: {STRING}
STR_CONFIG_SETTING_MAX_BRIDGE_HEIGHT_HELPTEXT :Najveća visina za gradnju mostova
STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Najveća dužina tunela: {STRING}
STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH_HELPTEXT :Najveća dužina za izgradnju tunela
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD :Ručna metoda izgradnje primarne industrije: {STRING}
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_HELPTEXT :Metoda financiranja primarnih industrija. "Ništa" znači da nije moguće financirati nijednu, "istraživanje" znači da je financiranje moguće ali da će se izgraditi na slučajno odabranom mjestu na mapi i da ne mora i uspjeti, "kao i druge industrije" znači da se primarne industrije mogu graditi kao i procesne industrije na bilo kojem mjestu
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_HELPTEXT :Metoda financiranja primarnih industrija. "Ništa" znači da nije moguće financirati nijednu, "istraživanje" znači da je financiranje moguće ali da će se izgraditi na slučajno odabranom mjestu na karti i da ne mora i uspjeti, "kao i druge industrije" znači da se primarne industrije mogu graditi kao i procesne industrije na bilo kojem mjestu
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE :Nijedna
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :Kao i druge industrije
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :Istraživanje
@ -1319,7 +1319,7 @@ STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :kraja
STR_CONFIG_SETTING_AUTOSCROLL :Pomakni prozor kada je miš na rubu: {STRING}
STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Kada je uključeno, prikazna polja će se početi pomicati kada se miš nalazi blizu ruba prozora
STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Isključeno
STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT_FULLSCREEN :Glavno prikazno polje, samo prikaz na punom ekranu
STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT_FULLSCREEN :Glavno prikazno polje, samo prikaz na cijelom zaslonu
STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT :Glavno prikazno polje
STR_CONFIG_SETTING_AUTOSCROLL_EVERY_VIEWPORT :Svako prikazno polje
STR_CONFIG_SETTING_BRIBE :Dopusti potkupljivanje lokalne samouprave: {STRING}
@ -1371,7 +1371,7 @@ STR_CONFIG_SETTING_AUTORENEW_MONTHS_HELPTEXT :Relativna staro
STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_BEFORE :{COMMA} mjeseci prije
STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_AFTER :{COMMA} mjeseci nakon
STR_CONFIG_SETTING_AUTORENEW_MONEY :Minimum novca potrebnih za automatsko obnavljanje: {STRING}
STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Minimalni iznos novca koji mora ostati u banci prije razmatranja automatske obnove vozila
STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Najmanji iznos novca koji mora ostati u banci prije razmatranja automatske obnove vozila
STR_CONFIG_SETTING_ERRMSG_DURATION :Trajanje poruke s greškom: {STRING}
STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Trajanje prikaza poruke s greškom u crvenom prozoru. Uzmite u obzir da se neke (kritične) poruke s greškom ne zatvaraju automatski nakon isteka ovog vremena, nego ih je potrebno zatvoriti ručno
STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} sekundi
@ -1379,12 +1379,12 @@ STR_CONFIG_SETTING_HOVER_DELAY :Prikaži pojaš
STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Odgoda prije prikaza objašnjenja alata kada se miš postavi iznad nekog elementa sučelja. Alternativno, objašnjena alata se mogu vezati uz desnu tipku na mišu kada je ova vrijednost postavljena na 0.
STR_CONFIG_SETTING_HOVER_DELAY_VALUE :Lebdi na {COMMA} milisekund{P 0 u i i}
STR_CONFIG_SETTING_HOVER_DELAY_DISABLED :Desni klik
STR_CONFIG_SETTING_POPULATION_IN_LABEL :Pokaži broj stanovnika u oznaci imena grada: {STRING}
STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Prikaži populaciju gradova u njihovim oznakama na mapi
STR_CONFIG_SETTING_POPULATION_IN_LABEL :Prikaži broj stanovnika uz naziv grada: {STRING}
STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Prikaži broj stanovnika uz nazive gradova na karti
STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Debljina linija u grafikonima: {STRING}
STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Debljina linije u grafikonima. Tanja linija je preciznija za čitanje, deblja linija je lakša za vidjeti i boje su lakše za razabrati
STR_CONFIG_SETTING_LANDSCAPE :Teren: {STRING}
STR_CONFIG_SETTING_LANDSCAPE :Krajolik: {STRING}
STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :Tereni definiraju osnovne scenarije za igru sa različitim teretima i preduvjetima za rast gradova. NewGRF-ovi i Skripte Igre dozvoljavaju detaljnije kontrole i postavke.
STR_CONFIG_SETTING_LAND_GENERATOR :Generator zemlje: {STRING}
STR_CONFIG_SETTING_LAND_GENERATOR_HELPTEXT :Originalni generator ovisi o baznom grafičkom setu i stvara fiksne oblike u terenu. TerraGenesis je generator baziran na Perlinu sa detaljnijim kontrolama i postavkama.
@ -1394,10 +1394,10 @@ STR_CONFIG_SETTING_TERRAIN_TYPE :Vrsta terena: {
STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT :(Samo TerraGenesis) Brdovitost terena
STR_CONFIG_SETTING_INDUSTRY_DENSITY :Gustoća industrija: {STRING}
STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Odredite koliko će industrija biti stvoreno i kolika će količina biti održavana tijekom igre.
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Najveća udaljenost rafinerija nafte od rubova mape: {STRING}
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Rafinerije nafte se grade samo uz rubove mape odnosno na obali za otočne mape
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Najveća udaljenost rafinerija nafte od rubova karte: {STRING}
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Rafinerije nafte grade se samo uz rubove karte odnosno na obali za otočne karte
STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Visina linije snijega: {STRING}
STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Upravljajte na kojoj visini počinje snijeg u subarktičkoj klimi. Snijeg također utječe na stvaranje industrija i preduvjeta za rast gradova.
STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Odredi na kojoj visini počinje snijeg u subarktičkoj klimi. Snijeg također utječe na stvaranje industrija i preduvjeta za rast gradova.
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Grubost terena: {STRING}
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(Samo TerraGenesis) Odaberite učestalost brda: Blaži tereni imaju rjeđa ali raširenija brda. Teži tereni imaju više brda koja bi mogla izgledati kao da se ponavljaju.
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Vrlo glatko
@ -1405,11 +1405,11 @@ STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_SMOOTH :Glatko
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_ROUGH :Grubo
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_ROUGH :Vrlo grubo
STR_CONFIG_SETTING_VARIETY :Raspodjela raznolikosti: {STRING}
STR_CONFIG_SETTING_VARIETY_HELPTEXT :(Samo TerraGenesis) Upravljajte da li će mapa sadržati i planinska i ravna područja. Pošto ovo samo radi mapu ravnijom, druge postavke bi trebali biti podešene na planinske.
STR_CONFIG_SETTING_VARIETY_HELPTEXT :(Samo TerraGenesis) Odredite hoće li karta sadržavati i planinska i ravna područja. Kako ovo čini kartu još ravnijom, ostale bi postavke trebale biti postavljene na planinske.
STR_CONFIG_SETTING_RIVER_AMOUNT :Količina rijeka: {STRING}
STR_CONFIG_SETTING_RIVER_AMOUNT_HELPTEXT :Odaberite koliko rijeka želite stvoriti
STR_CONFIG_SETTING_TREE_PLACER :Algoritam za sađenje drveća: {STRING}
STR_CONFIG_SETTING_TREE_PLACER_HELPTEXT :Odaberite raspored drveća na mapi: 'Original' sadi drveće ravnomjerno raspoređeno, 'Napredno' ih sadi u skupinama.
STR_CONFIG_SETTING_TREE_PLACER_HELPTEXT :Odaberite raspored drveća na karti: 'Original' sadi drveće ravnomjerno raspoređeno, 'Napredno' ih sadi u skupinama.
STR_CONFIG_SETTING_TREE_PLACER_NONE :Nijedan
STR_CONFIG_SETTING_TREE_PLACER_ORIGINAL :Izvorni
STR_CONFIG_SETTING_TREE_PLACER_IMPROVED :Unaprijeđen
@ -1418,7 +1418,7 @@ STR_CONFIG_SETTING_ROAD_SIDE_HELPTEXT :Odaberite stran
STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Rotacija visinske karte: {STRING}
STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Obrnuto od smjera kazaljke na satu
STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :U smjeru kazaljke na satu
STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Visinski nivo koji ravna mapa u scenariju dobiva: {STRING}
STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Razina visine za scenarije s ravnim terenom: {STRING}
STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Jedno ili više polja na sjevernom rubu nisu prazne
STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Jedno ili više polja na jednom od rubova nije voda
@ -1429,14 +1429,14 @@ STR_CONFIG_SETTING_SERVICEATHELIPAD_HELPTEXT :Servisiraj heli
STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR :Poveži alatnu traku za krajolik s alatnim trakama za željeznicu/ceste/vodu/zračne luke: {STRING}
STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR_HELPTEXT :Kada se otvara alatna traka za građenje neke vrste transporta, istodobno se otvara i alatna traka za uređivanje terena
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR :Boja polja korištena na maloj karti: {STRING}
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_HELPTEXT :Boja terena na maloj mapi
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_HELPTEXT :Boja terena na maloj karti
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_GREEN :{G=female}Zelena
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_DARK_GREEN :{G=female}Tamno zelena
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :{G=female}Ljubičasta
STR_CONFIG_SETTING_REVERSE_SCROLLING :Promijeni smjer klizanja: {STRING}
STR_CONFIG_SETTING_REVERSE_SCROLLING_HELPTEXT :Ponašanje kod pomicanja mape sa desnom tipkom na mišu. Kada je isključeno, miš pomiče kameru. Kada je uključeno, miš pomiče mapu
STR_CONFIG_SETTING_REVERSE_SCROLLING_HELPTEXT :Ponašanje kod pomicanja karte desnim gumbom miša. Kada je isključeno, miš pomiče kameru. Kada je uključeno, miš pomiče kartu
STR_CONFIG_SETTING_SMOOTH_SCROLLING :Glatko klizanje kroz mini pogled: {STRING}
STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Kontroliraj kako se glavni prikaz pomiče na neku lokaciju kada se klikne na malu mapu ili kada se izda naredba za pomicanje na određeni objekt na mapi. Ako je uključeno, prikaz se pomiče glatko, ako je isključeno, prikaz odmah preskoči na ciljnu lokaciju
STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Odredi kako se glavni prikaz pomiče na određeno mjesto kada se klikne na malu kartu ili kada se izda naredba za pomicanje na određeni objekt na karti. Ako je uključeno, prikaz se pomiče glatko, ako je isključeno, prikaz izravno skače na ciljnu lokaciju
STR_CONFIG_SETTING_MEASURE_TOOLTIP :Pokaži mjerni naputak prilikom korištenja raznih alata za izgradnju: {STRING}
STR_CONFIG_SETTING_MEASURE_TOOLTIP_HELPTEXT :Prikaži udaljenost u poljima i visinsku razliku kod povlačenja prilikom gradnje
STR_CONFIG_SETTING_LIVERIES :Pokaži specifične livreje prema tipu vozila: {STRING}
@ -1453,8 +1453,8 @@ STR_CONFIG_SETTING_SCROLLWHEEL_SCROLL :Kliži kartom
STR_CONFIG_SETTING_SCROLLWHEEL_OFF :Isključeno
STR_CONFIG_SETTING_SCROLLWHEEL_MULTIPLIER :Brzina kotačića za klizanje: {STRING}
STR_CONFIG_SETTING_SCROLLWHEEL_MULTIPLIER_HELPTEXT :Kontroliraj osjetljivost pomicanja kotačićima miša
STR_CONFIG_SETTING_OSK_ACTIVATION :Tipkovnica na ekranu: {STRING}
STR_CONFIG_SETTING_OSK_ACTIVATION_HELPTEXT :Odaberi metodu otvaranja tipkovnice na ekranu za unošenje teksta u polja korištenjem samo pokazujući uređaj. Ovo je namijenjeno malim uređajima bez prave tipkovnice
STR_CONFIG_SETTING_OSK_ACTIVATION :Tipkovnica na zaslonu: {STRING}
STR_CONFIG_SETTING_OSK_ACTIVATION_HELPTEXT :Odaberi način uporabe tipkovnice na zaslonu za unos teksta u polja korištenjem samo pokazivača. Ovo je namijenjeno malim uređajima bez fizičke tipkovnice.
STR_CONFIG_SETTING_OSK_ACTIVATION_DISABLED :Isključeno
STR_CONFIG_SETTING_OSK_ACTIVATION_DOUBLE_CLICK :Dvostruki klik
STR_CONFIG_SETTING_OSK_ACTIVATION_SINGLE_CLICK_FOCUS :Jedan klik (kada je usredotočen)
@ -1467,7 +1467,7 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_CONTROL :Control+klik
STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Isključeno
STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Skrolanje lijevim klikom: {STRING}
STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Uključi pomicanje mape povlačenjem sa lijevom tipkom miša. Ovo je posebno korisno kada se koristi ekran na dodir za pomicanje
STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Uključi pomicanje karte povlačenjem pomoću lijevog gumba miša. Ovo je posebno korisno kada se koristi zaslon osjetljiv na dodir
STR_CONFIG_SETTING_AUTOSAVE :Automatsko snimanje: {STRING}
STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Odaberite interval između automatskog snimanja igre
@ -1488,8 +1488,8 @@ STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_LANDSCAPING :Sve osim akcija
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :Sve akcije
STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Koristi grupe u listi vozila: {STRING}
STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Uključi korištenje naprednih lista vozila za grupiranje vozila
STR_CONFIG_SETTING_LOADING_INDICATORS :Koristi pokazatelje utovara: {STRING}
STR_CONFIG_SETTING_LOADING_INDICATORS_HELPTEXT :Odaberi da li će prikazivači utovara biti prikazani iznad vozila koja se utovaruju ili iznad vozila koja se istovaruju
STR_CONFIG_SETTING_LOADING_INDICATORS :Koristi pokazatelje ukrcaja: {STRING}
STR_CONFIG_SETTING_LOADING_INDICATORS_HELPTEXT :Odaberi hoće li oznake za ukrcaj biti prikazane iznad vozila koja se ukrcavaju ili iskrcavaju
STR_CONFIG_SETTING_TIMETABLE_IN_TICKS :Pokaži vozni red u otkucajima rađe nego u danima: {STRING}
STR_CONFIG_SETTING_TIMETABLE_IN_TICKS_HELPTEXT :Prikaži trajanje putovanja u voznim redovima u otkucajima igre umjesto u danima
STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE :Pokaži dolaske i odlaske u voznim redovima: {STRING}
@ -1527,13 +1527,13 @@ STR_CONFIG_SETTING_SOUND_AMBIENT_HELPTEXT :Sviraj zvučne
STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING :Isključi gradnju infrastrukture kada odgovarajuća vozila nisu dostupna: {STRING}
STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING_HELPTEXT :Kada je uključeno, infrastruktura je dostupna samo ako su dostupna i vozila za nju, sprečavajući trošenje vremena i novca na neupotrebljivu infrastrukturu
STR_CONFIG_SETTING_MAX_TRAINS :Maksimalni broj vlakova po tvrtki: {STRING}
STR_CONFIG_SETTING_MAX_TRAINS :Najveći broj vlakova po tvrtki: {STRING}
STR_CONFIG_SETTING_MAX_TRAINS_HELPTEXT :Najveći broj vlakova koje tvrtka može imati
STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :Maksimalni broj cestovnih vozila po tvrtki: {STRING}
STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :Najveći broj cestovnih vozila po tvrtki: {STRING}
STR_CONFIG_SETTING_MAX_ROAD_VEHICLES_HELPTEXT :Najveći broj cestovnih vozila koje tvrtka može imati
STR_CONFIG_SETTING_MAX_AIRCRAFT :Maksimalni broj zrakoplova po tvrtki: {STRING}
STR_CONFIG_SETTING_MAX_AIRCRAFT :Najveći broj zrakoplova po tvrtki: {STRING}
STR_CONFIG_SETTING_MAX_AIRCRAFT_HELPTEXT :Najveći broj zrakoplova koje tvrtka može imati
STR_CONFIG_SETTING_MAX_SHIPS :Maksimalni broj brodova po tvrtki: {STRING}
STR_CONFIG_SETTING_MAX_SHIPS :Najveći broj brodova po tvrtki: {STRING}
STR_CONFIG_SETTING_MAX_SHIPS_HELPTEXT :Najveći broj brodova koje tvrtka može imati
STR_CONFIG_SETTING_AI_BUILDS_TRAINS :Isključi vlakove za računalo: {STRING}
@ -1553,11 +1553,11 @@ STR_CONFIG_SETTING_AI_PROFILE_HARD :Teško
STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :Dopusti UI u mrežnoj igri: {STRING}
STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT :Dopusti UI računalnim-igračima da sudjeluju u igrama za više igrača
STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :#op-kodova prije suspendiranja skripti: {STRING}
STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :#op-kodova prije prekida skripte: {STRING}
STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES_HELPTEXT :Najveći broj računalnih koraka koje skripta može poduzeti u jednom krugu
STR_CONFIG_SETTING_SERVINT_ISPERCENT :Servisni su intervali u postotcima: {STRING}
STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Odaberi da li će se servisiranje vozila pokrenuti nakon isteka vremena od zadnjeg servisa ili padom pouzdanosti za određenu vrijednost od najveće pouzdanosti
STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Odaberi hoće li servis vozila potaknuti količina vremana koja je prošla od zadnjeg servisa ili postotni pad u odnosu na najveću pouzdanost
STR_CONFIG_SETTING_SERVINT_TRAINS :Zadani interval servisiranja za vlakove: {STRING}
STR_CONFIG_SETTING_SERVINT_TRAINS_HELPTEXT :Postavi osnovni interval servisa za nova pružna vozila, ako nije postavljen drugi specifični interval za određeno vozilo
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}dan{P 0 "" a a}/%
@ -1617,7 +1617,7 @@ STR_CONFIG_SETTING_SMOOTH_ECONOMY :Uključi tečnu
STR_CONFIG_SETTING_SMOOTH_ECONOMY_HELPTEXT :Kada je uključeno, promjene u industrijskoj proizvodnji su češće ali u manjim rasponima. Ova postavka obično nema efekta ukoliko su industrije postavljene iz nekog NewGRF-a
STR_CONFIG_SETTING_ALLOW_SHARES :Dopusti kupovanje udjela u drugim tvrtkama: {STRING}
STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Kada je uključeno, dopušta se kupnja i prodaja dionica tvrtki. Dionice će postati dostupne samo za tvrtke određene starosti
STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Postotak profita za dionicu koji se plaća kod sistema feeder-a: {STRING}
STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Postotak dobiti za dionicu koji se plaća kod sustava feedera: {STRING}
STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Postotak prihoda koji će biti predan srednjim dionicama prijevoza feeder sustavima, daje više kontrole nad prihodima
STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :Kod povlačenja, postavi signale svakih: {STRING}
STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY_HELPTEXT :Postavi razmak između signala koji će se graditi do sljedeće prepreke (signal, raskrižje), ukoliko se signali povlače
@ -1647,7 +1647,7 @@ STR_CONFIG_SETTING_TOWN_LAYOUT_2X2_GRID :2x2 mreža
STR_CONFIG_SETTING_TOWN_LAYOUT_3X3_GRID :3x3 mreža
STR_CONFIG_SETTING_TOWN_LAYOUT_RANDOM :Nasumično
STR_CONFIG_SETTING_ALLOW_TOWN_ROADS :Gradovi mogu graditi ceste: {STRING}
STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT :Dozvoli gradovima građenje cesta za rast i širenje. Isključi za sprečavanje da gradske vlasti same grade ceste
STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT :Dopusti gradovima građenje cesta u svrhu rasta. Isključi za sprečavanje gradskih vlasti u samostalnoj gradnji cesta
STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS :Gradovi smiju graditi pružne prijelaze: {STRING}
STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS_HELPTEXT :Uključivanje ove postavke dozvoljava se gradovima da grade cestovno-pružne prijelaze
STR_CONFIG_SETTING_NOISE_LEVEL :Omogući određivanje razine buke za zračne luke od strane gradova: {STRING}
@ -1665,9 +1665,9 @@ STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_RAINFOREST :Samo u kišnim
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_ALL :Posvuda
STR_CONFIG_SETTING_TOOLBAR_POS :Položaj glavne alatne trake: {STRING}
STR_CONFIG_SETTING_TOOLBAR_POS_HELPTEXT :Vodoravna pozicija glavne alatne trake na vrhu ekrana
STR_CONFIG_SETTING_TOOLBAR_POS_HELPTEXT :Vodoravna pozicija glavne alatne trake na vrhu zaslona
STR_CONFIG_SETTING_STATUSBAR_POS :Pozicija status trake: {STRING}
STR_CONFIG_SETTING_STATUSBAR_POS_HELPTEXT :Vodoravna pozicija statusne trake na dnu ekrana
STR_CONFIG_SETTING_STATUSBAR_POS_HELPTEXT :Vodoravna pozicija statusne trake na dnu zaslona
STR_CONFIG_SETTING_SNAP_RADIUS :Radius zahvata prozora: {STRING}
STR_CONFIG_SETTING_SNAP_RADIUS_HELPTEXT :Razmak između prozora prije nego se pomicani prozor automatski poravna sa drugima prozorima u blizini
STR_CONFIG_SETTING_SNAP_RADIUS_VALUE :{COMMA} piksela
@ -1709,10 +1709,10 @@ STR_CONFIG_SETTING_DISTRIBUTION_ASYMMETRIC :asimetrično
STR_CONFIG_SETTING_DISTRIBUTION_SYMMETRIC :simetrično
STR_CONFIG_SETTING_DISTRIBUTION_PAX :Način distribucije za putnike: {STRING}
STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT :"Simetrično" znači da će se otprilike isti broj putnika slati od stanice A prema stanici B ako od B prema A. "Asimetrično" znači da će se proizvoljni brojevi putnika slati u oba smjera. "Ručno" znači da se distribucija za putnike neće vršiti automatski.
STR_CONFIG_SETTING_DISTRIBUTION_MAIL :Način distribucije poštu: {STRING}
STR_CONFIG_SETTING_DISTRIBUTION_MAIL :Način distribucije pošte: {STRING}
STR_CONFIG_SETTING_DISTRIBUTION_MAIL_HELPTEXT :"Simetrično" znači da će se otprilike ista količina pošte slati od stanice A prema stanici B ako od B prema A. "Asimetrično" znači da će se proizvoljne količine pošte slati u oba smjera. "Ručno" znači da se distribucija neće vršiti automatski.
STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED :Način distribucije za OKLOPLJENU klasu tereta: {STRING}
STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED_HELPTEXT :OKLOPLJENA klasa tereta sadrži vrijednosnice u umjerenoj klimi, dijamante u subtropskoj klimi ili zlato u subarktičkoj klimi. NewGFR-ovi bi mogli ovo izmijeniti. "Simetrično" znači da će se otprilike ista količina tereta slati od stanice A prema stanici B kao od B prema A. "Asimetrično" znači da će se proizvoljne količine tereta slati u oba smjera. "Ručno" znači da se distribucija tih tereta neće vršiti automatski. Preporučljivo je namjestiti ovu postavku na "asimetrično" ili "ručno" kod subarktičke klime jer banke neće slati zlato natrag prema rudnicima zlata. Za umjerenu i subtropsku klimu možete namjestiti i "simetrično" jer će banke slati neke vrijednosnice natrag prema izvorišnoj banci.
STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED_HELPTEXT :OKLOPLJENA klasa tereta sadrži dragocjenosti u umjerenoj klimi, dijamante u subtropskoj klimi ili zlato u subarktičkoj klimi. NewGFR-ovi bi mogli ovo izmijeniti. "Simetrično" znači da će se otprilike ista količina tereta slati od stanice A prema stanici B kao od B prema A. "Asimetrično" znači da će se proizvoljne količine tereta slati u oba smjera. "Ručno" znači da se distribucija tih tereta neće vršiti automatski. Preporučljivo je namjestiti ovu postavku na "asimetrično" ili "ručno" kod subarktičke klime jer banke neće slati zlato natrag prema rudnicima zlata. Za umjerenu i subtropsku klimu možete namjestiti i "simetrično" jer će banke slati neke dragocjenosti natrag prema izvorišnoj banci.
STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT :Način distribucije za ostale klase tereta: {STRING}
STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT :"Asimetrično" znači da će se proizvoljna količina tereta slati u bilo kojem smjeru. "Ručno" znači da neće biti nikakve automatske distribucije za te terete.
STR_CONFIG_SETTING_LINKGRAPH_ACCURACY :Točnost distribucije: {STRING}
@ -1775,7 +1775,7 @@ STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}Fizika
STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Rutanje
STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}Ograničenja
STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Katastrofe / nesreće
STR_CONFIG_SETTING_GENWORLD :{ORANGE}Generacija svijeta
STR_CONFIG_SETTING_GENWORLD :{ORANGE}Stvaranje svijeta
STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Okoliš
STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Vlasti
STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Gradovi
@ -1809,13 +1809,13 @@ STR_CONFIG_ERROR_INVALID_GRF :{WHITE}... igno
STR_CONFIG_ERROR_INVALID_GRF_NOT_FOUND :nije pronađeno
STR_CONFIG_ERROR_INVALID_GRF_UNSAFE :nesigurno za statičku uporabu
STR_CONFIG_ERROR_INVALID_GRF_SYSTEM :sistemski NewGRF
STR_CONFIG_ERROR_INVALID_GRF_INCOMPATIBLE :nekompatibilno sa ovom verzijom OpenTTD-a
STR_CONFIG_ERROR_INVALID_GRF_INCOMPATIBLE :neusklađeno s ovom verzijom OpenTTD-a
STR_CONFIG_ERROR_INVALID_GRF_UNKNOWN :nepoznat
STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_LEVEL :{WHITE}... nivo sažimanja '{STRING}' nije važeći
STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_ALGORITHM :{WHITE}... format snimljene igre '{STRING}' nije dostupan. Vraćam u '{STRING}'
STR_CONFIG_ERROR_INVALID_BASE_GRAPHICS_NOT_FOUND :{WHITE}... zaobilazim Osnovni Grafički set '{STRING}': nije pronađen
STR_CONFIG_ERROR_INVALID_BASE_SOUNDS_NOT_FOUND :{WHITE}... zaobilazim Osnovni Zvukovni set '{STRING}': nije pronađen
STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... zaobilazim Osnovni Muzički set '{STRING}': nije pronađen
STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... zaobilazim Osnovni glazbeni set '{STRING}': nije pronađen
STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Nedostaje memorije
STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Dodjeljivanje {BYTES} predmemorije spriteova nije uspjelo. Predmemorija spriteova je smanjena na {BYTES}. Ovo će smanjiti performanse OpenTTD-a. Za smanjivanje potreba memorije you možete pokušati isključiti 32bpp grafiku i/ili razine zumiranja.
@ -1842,7 +1842,7 @@ STR_INTRO_TOOLTIP_LOAD_GAME :{BLACK}Učitaj
STR_INTRO_TOOLTIP_PLAY_HEIGHTMAP :{BLACK}Pokreni novu igru, koristeći visinsku kartu kao krajolik
STR_INTRO_TOOLTIP_PLAY_SCENARIO :{BLACK}Započni novu igru koristeći proizvoljni scenarij
STR_INTRO_TOOLTIP_SCENARIO_EDITOR :{BLACK}Izradi proizvoljni igrački svijet/scenarij
STR_INTRO_TOOLTIP_MULTIPLAYER :{BLACK}Pokreni igru sa više igrača
STR_INTRO_TOOLTIP_MULTIPLAYER :{BLACK}Pokreni igru s više igrača
STR_INTRO_TOOLTIP_TEMPERATE :{BLACK}Odaberi 'blagi' stil krajolika
STR_INTRO_TOOLTIP_SUB_ARCTIC_LANDSCAPE :{BLACK}Odaberi 'subarktički' stil krajolika
@ -1891,8 +1891,8 @@ STR_CHEAT_CHANGE_COMPANY :{LTBLUE}Igraj k
STR_CHEAT_EXTRA_DYNAMITE :{LTBLUE}Magični buldožer (uklanja industrije, nepokretne objekte): {ORANGE}{STRING}
STR_CHEAT_CROSSINGTUNNELS :{LTBLUE}Tuneli se mogu ukrštavati međusobno: {ORANGE}{STRING}
STR_CHEAT_NO_JETCRASH :{LTBLUE}Veliki avioni se ne će rušiti (često) na malim zračnim lukama: {ORANGE} {STRING}
STR_CHEAT_EDIT_MAX_HL :{LTBLUE}Uredi maksimalnu visinu mape: {ORANGE}{NUM}
STR_CHEAT_EDIT_MAX_HL_QUERY_CAPT :{WHITE}Uredi maksimalnu visinu planina na mapi
STR_CHEAT_EDIT_MAX_HL :{LTBLUE}Uredi najveću visinu karte: {ORANGE}{NUM}
STR_CHEAT_EDIT_MAX_HL_QUERY_CAPT :{WHITE}Uredi najveću visinu planina na karti
STR_CHEAT_SWITCH_CLIMATE_TEMPERATE_LANDSCAPE :Blagi krajolik
STR_CHEAT_SWITCH_CLIMATE_SUB_ARCTIC_LANDSCAPE :Subarktički krajolik
STR_CHEAT_SWITCH_CLIMATE_SUB_TROPICAL_LANDSCAPE :Suptropski krajolik
@ -1909,9 +1909,9 @@ STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Pokaži
STR_LIVERY_ROAD_VEHICLE_TOOLTIP :{BLACK}Pokaži sheme boja za cestovno vozilo
STR_LIVERY_SHIP_TOOLTIP :{BLACK}Pokaži sheme boja za brod
STR_LIVERY_AIRCRAFT_TOOLTIP :{BLACK}Pokaži sheme boja za zrakoplov
STR_LIVERY_PRIMARY_TOOLTIP :{BLACK}Izaberi primarnu boju za odabranu shemu. Ctrl+Klik odabire tu boju za sve sheme.
STR_LIVERY_PRIMARY_TOOLTIP :{BLACK}Odaberi primarnu boju za odabranu shemu. Ctrl+klik odabire tu boju za sve sheme.
STR_LIVERY_SECONDARY_TOOLTIP :{BLACK}Odaberi sekundardnu boju za odabranu shemu. Ctrl+Klik odabire tu boju za sve sheme.
STR_LIVERY_PANEL_TOOLTIP :{BLACK}Izaberi shemu boja za promjenu, ili višestruke sheme pomoću Ctrl+klik. Klikni na kućicu kako bi odredio uporabu sheme
STR_LIVERY_PANEL_TOOLTIP :{BLACK}Odaberi shemu boja za promjenu, ili višestruke sheme pomoću Ctrl+klik. Klikni na kućicu kako bi odredio uporabu sheme
STR_LIVERY_DEFAULT :Standardna boja
STR_LIVERY_STEAM :Parna lokomotiva
@ -1962,12 +1962,12 @@ STR_FACE_FACECODE_CAPTION :{WHITE}Pogledaj
STR_FACE_FACECODE_SET :{WHITE}Novi kod za broj igračevog lica je postavljen
STR_FACE_FACECODE_ERR :{WHITE}Nemoguće namjestiti broj predsjednikovog lica - mora biti broj između 0 and 4,294,967,295!
STR_FACE_SAVE :{BLACK}Spremi
STR_FACE_SAVE_TOOLTIP :{BLACK}Izaberi omiljeno lice
STR_FACE_SAVE_TOOLTIP :{BLACK}Spremi omiljeno lice
STR_FACE_SAVE_DONE :{WHITE}Ovo lice bit će spremljeno kao tvoje omiljeno u OpenTTD konfiguracijsku datoteku.
STR_FACE_EUROPEAN :{BLACK}Europljanin
STR_FACE_SELECT_EUROPEAN :{BLACK}Izaberi europska lica
STR_FACE_SELECT_EUROPEAN :{BLACK}Odaberi europska lica
STR_FACE_AFRICAN :{BLACK}Afrikanac
STR_FACE_SELECT_AFRICAN :{BLACK}Izaberi afrička lica
STR_FACE_SELECT_AFRICAN :{BLACK}Odaberi afrička lica
STR_FACE_YES :Da
STR_FACE_NO :Ne
STR_FACE_MOUSTACHE_EARRING_TOOLTIP :{BLACK}Uključi brkove ili naušnicu
@ -2020,7 +2020,7 @@ STR_NETWORK_SERVER_LIST_INFO_ICONS_TOOLTIP :{BLACK}Jezik, v
STR_NETWORK_SERVER_LIST_CLICK_GAME_TO_SELECT :{BLACK}Klikni na igru s popisa kako bi ju odabrao
STR_NETWORK_SERVER_LIST_LAST_JOINED_SERVER :{BLACK}Poslužitelj kojemu si zadnji put pristupio:
STR_NETWORK_SERVER_LIST_CLICK_TO_SELECT_LAST :{BLACK}Klikni kako bi izabrao poslužitelj koji si igrao zadnji put
STR_NETWORK_SERVER_LIST_CLICK_TO_SELECT_LAST :{BLACK}Klikni kako bi odabrao poslužitelj koji si igrao zadnji put
STR_NETWORK_SERVER_LIST_GAME_INFO :{SILVER}INFO O IGRI
STR_NETWORK_SERVER_LIST_CLIENTS :{SILVER}Klijenti: {WHITE}{COMMA} / {COMMA} - {COMMA} / {COMMA}
@ -2062,13 +2062,13 @@ STR_NETWORK_START_SERVER_PASSWORD_TOOLTIP :{BLACK}Zaštiti
STR_NETWORK_START_SERVER_UNADVERTISED :Ne
STR_NETWORK_START_SERVER_ADVERTISED :Da
STR_NETWORK_START_SERVER_CLIENTS_SELECT :{BLACK}{NUM} klijen{P t ta ata}
STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}Maksimalni broj klijenata:
STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS_TOOLTIP :{BLACK}Izaberi maksimalan broj klijenata. Ne moraju sva mjesta biti popunjena.
STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}Najveći broj klijenata:
STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS_TOOLTIP :{BLACK}Odaberi najveći broj klijenata. Ne moraju sva mjesta biti popunjena.
STR_NETWORK_START_SERVER_COMPANIES_SELECT :{BLACK}{NUM} tvrtk{P a e i}
STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}Maksimalni broj tvrtki:
STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}Najveći broj tvrtki:
STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES_TOOLTIP :{BLACK}Ograniči poslužitelj na određeni broj tvrtki
STR_NETWORK_START_SERVER_SPECTATORS_SELECT :{BLACK}{NUM} gledatelj{P "" a a}
STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS :{BLACK}Maksimalni broj promatrača:
STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS :{BLACK}Najveći broj promatrača:
STR_NETWORK_START_SERVER_NUMBER_OF_SPECTATORS_TOOLTIP :{BLACK}Ograniči poslužitelj na određeni broj gledatelja
STR_NETWORK_START_SERVER_LANGUAGE_SPOKEN :{BLACK}Jezik kojim se govori:
STR_NETWORK_START_SERVER_LANGUAGE_TOOLTIP :{BLACK}Drugi igrači znat će kojim se jezikom govori na poslužitelju
@ -2294,16 +2294,16 @@ STR_CONTENT_TYPE_CAPTION_TOOLTIP :{BLACK}Vrsta sa
STR_CONTENT_NAME_CAPTION :{BLACK}Ime
STR_CONTENT_NAME_CAPTION_TOOLTIP :{BLACK}Ime sadržaja
STR_CONTENT_MATRIX_TOOLTIP :{BLACK}Kliknite na liniju kako bi vidjeli detalje{}Kliknite na kućicu kako bi ju označili za preuzimanje
STR_CONTENT_SELECT_ALL_CAPTION :{BLACK}Izaberi sve
STR_CONTENT_SELECT_ALL_CAPTION :{BLACK}Odaberi sve
STR_CONTENT_SELECT_ALL_CAPTION_TOOLTIP :{BLACK}Označi sav sadržaj za preuzimanje
STR_CONTENT_SELECT_UPDATES_CAPTION :{BLACK}Izaberi nadogradnje
STR_CONTENT_SELECT_UPDATES_CAPTION :{BLACK}Odaberi nadogradnje
STR_CONTENT_SELECT_UPDATES_CAPTION_TOOLTIP :{BLACK}Označi sav sadržaj koji je nadogradnja postojećem sadržaju kako bi ga preuzeo
STR_CONTENT_UNSELECT_ALL_CAPTION :{BLACK}Odznači sve
STR_CONTENT_UNSELECT_ALL_CAPTION_TOOLTIP :{BLACK}Označi sav sadržaj koji se ne preuzima
STR_CONTENT_SEARCH_EXTERNAL :{BLACK}Pretraži vanjske web stranice
STR_CONTENT_SEARCH_EXTERNAL_TOOLTIP :{BLACK}Traženje sadržaja nije dostupno u OpenTTD-ovom servisu za sadržaje za web stranice koje nisu pridružene OpenTTD-u
STR_CONTENT_SEARCH_EXTERNAL_DISCLAIMER_CAPTION :{WHITE}Napuštate OpenTTD!
STR_CONTENT_SEARCH_EXTERNAL_DISCLAIMER :{WHITE}Pravila i uvjeti za preuzimanje sadržaja sa vanjskih web stranica variraju.{}Morate pogledati vanjske stranice za upute kako instalirati sadržaj u OpenTTD.{}Da li želite nastaviti?
STR_CONTENT_SEARCH_EXTERNAL_DISCLAIMER :{WHITE}Pravila i uvjeti preuzimanja sadržaja s vanjskih internetskih stranica variraju.{}Morate pogledati vanjske stranice za upute kako instalirati sadržaj u OpenTTD.{}Želite li nastaviti?
STR_CONTENT_FILTER_TITLE :{BLACK}Ime/Tag filter:
STR_CONTENT_OPEN_URL :{BLACK}Posjetite web-stranicu
STR_CONTENT_OPEN_URL_TOOLTIP :{BLACK}Posjetite web-stranicu za ovaj sadržaj
@ -2335,7 +2335,7 @@ STR_CONTENT_TYPE_NEWGRF :NewGRF
STR_CONTENT_TYPE_AI :UI
STR_CONTENT_TYPE_AI_LIBRARY :Zbirka UI
STR_CONTENT_TYPE_SCENARIO :Scenarij
STR_CONTENT_TYPE_HEIGHTMAP :Visinska mapa
STR_CONTENT_TYPE_HEIGHTMAP :Visinska karta
STR_CONTENT_TYPE_BASE_SOUNDS :Osnovni zvukovi
STR_CONTENT_TYPE_BASE_MUSIC :Osnovna glazba
STR_CONTENT_TYPE_GAME_SCRIPT :Skripta igre
@ -2343,7 +2343,7 @@ STR_CONTENT_TYPE_GS_LIBRARY :GS knjižnica
# Content downloading progress window
STR_CONTENT_DOWNLOAD_TITLE :{WHITE}Preuzimanje sadržaja
STR_CONTENT_DOWNLOAD_INITIALISE :{WHITE}Zahtjevanje datoteka
STR_CONTENT_DOWNLOAD_INITIALISE :{WHITE}Dohvaćanje datoteka...
STR_CONTENT_DOWNLOAD_FILE :{WHITE}Trenutno preuzimam {STRING} ({NUM} of {NUM})
STR_CONTENT_DOWNLOAD_COMPLETE :{WHITE}Preuzimanje završeno
STR_CONTENT_DOWNLOAD_PROGRESS_SIZE :{WHITE}{BYTES} od {BYTES} preuzeto ({NUM} %)
@ -2356,7 +2356,7 @@ STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD_FILE_NOT_WRITABLE :{WHITE}... dato
STR_CONTENT_ERROR_COULD_NOT_EXTRACT :{WHITE}Nije moguća dekompresija preuzete datoteke
STR_MISSING_GRAPHICS_SET_CAPTION :{WHITE}Nedostaje grafika
STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD treba grafiku za funkcioniranje ali nijedna nije pronađena. Da li dozvoljavate da OpenTTD preuzme i instalira potrebne grafike?
STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD zahtijeva grafičke datoteke za rad, ali ništa nije pronađeno. Dopuštate li preuzimanje i instalaciju potrebne grafike?
STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Da, preuzmi grafike
STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Ne, izađi iz OpenTTD-a
@ -2493,7 +2493,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_VEHICLE_DEPOT :{BLACK}Izgradi
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAM_VEHICLE_DEPOT :{BLACK}Izgradi spremište tramvajskih vozila (za kupnju i servisiranje vozila). Shift mijenja prikaz građenje/procjena troškova.
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_BUS_STATION :{BLACK}Izgradi autobusnu postaju. Ctrl omogućava spajanje postaja. Shift mijenja prikaz građenje/procjena troškova.
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_PASSENGER_TRAM_STATION :{BLACK}Izgradi putničku tramvajsku postaju. Ctrl omogućava spajanje postaja. Shift mijenja prikaz građenje/procjena troškova.
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRUCK_LOADING_BAY :{BLACK}Izgradi pretovarni kamionski terminal. Ctrl omogućava spajanje postaja. Shift mijenja prikaz građenje/procjena troškova.
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRUCK_LOADING_BAY :{BLACK}Izgradi prekrcajni kamionski terminal. Ctrl omogućava spajanje postaja. Shift mijenja prikaz građenje/procjena troškova.
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_CARGO_TRAM_STATION :{BLACK}Izgradi teretnu tramvajsku postaju. Ctrl omogućava spajanje postaja. Shift mijenja prikaz građenje/procjena troškova.
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_ONE_WAY_ROAD :{BLACK}Aktiviraj/deaktiviraj jednosmjerne ceste
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_BRIDGE :{BLACK}Izgradi cestovni most. Shift mijenja prikaz građenje/procjena troškova.
@ -2638,7 +2638,7 @@ STR_FOUND_TOWN_SELECT_LAYOUT_RANDOM :{BLACK}Nasumič
# Fund new industry window
STR_FUND_INDUSTRY_CAPTION :{WHITE}Financiraj novu industriju
STR_FUND_INDUSTRY_SELECTION_TOOLTIP :{BLACK}Izaberi prikladnu industriju s ovog popisa
STR_FUND_INDUSTRY_SELECTION_TOOLTIP :{BLACK}Odaberi prikladnu industriju s ovog popisa
STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES :Brojne nasumične industrije
STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES_TOOLTIP :{BLACK}Popuni kartu nasumce smještenim industrijama
STR_FUND_INDUSTRY_INDUSTRY_BUILD_COST :{BLACK}Cijena: {YELLOW}{CURRENCY_LONG}
@ -2657,7 +2657,7 @@ STR_INDUSTRY_CARGOES_CARGO_TOOLTIP :{BLACK}{STRING}
STR_INDUSTRY_DISPLAY_CHAIN :{BLACK}Prikaži slijed
STR_INDUSTRY_DISPLAY_CHAIN_TOOLTIP :{BLACK}Prikaži industrije koje dobavljaju i primaju teret
STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP :{BLACK}Poveznica na malu mapu
STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP_TOOLTIP :{BLACK}Odaberi prikazane industrije također i na maloj mapi
STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP_TOOLTIP :{BLACK}Odaberi prikazane industrije i na maloj karti
STR_INDUSTRY_CARGOES_SELECT_CARGO :{BLACK}Odaberi teret
STR_INDUSTRY_CARGOES_SELECT_CARGO_TOOLTIP :{BLACK}Odaberi teret koji želiš prikazati
STR_INDUSTRY_CARGOES_SELECT_INDUSTRY :{BLACK}Odaberi industriju
@ -2685,6 +2685,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Naziv po
STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Prihvaćeni teret: {LTBLUE}
STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Vrsta željeznice: {LTBLUE}{STRING}
STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Najveća brzina željeznice: {LTBLUE}{VELOCITY}
STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Ograničenje brzine na cesti: {LTBLUE}{VELOCITY}
@ -2697,29 +2698,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Polja
STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Zemlja pokrivena snijegom
STR_LAI_CLEAR_DESCRIPTION_DESERT :Pustinja
STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} pruga
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} pruga sa blok-signalima
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} pruga sa pred-signalima
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} pruga sa izlaznim signalima
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} pruga sa kombiniranim signalima
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} pruga sa putnim signalima
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} pruga sa jednosmjernim putnim signalima
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} pruga sa blok-signalima i pred-signalima
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} pruga sa blok-signalima i izlaznim signalima
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} pruga sa blok-signalima i kombiniranim signalima
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} pruga sa blok-signalima i putnim signalima
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} pruga sa blok-signalima i jednosmjernim putnim signalima
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} pruga sa pred-signalima i izlaznim signalima
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} pruga sa pred-signalima i kombiniranim signalima
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} pruga sa pred-signalima i putnim signalima
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} pruga sa pred-signalima i jednosmjernim putnim signalima
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} pruga sa izlaznim i kombiniranim signalima
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} pruga sa izlaznim i putnim signalima
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} pruga sa izlaznim i jednosmjernim putnim signalima
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} pruga sa kombiniranim i putnim signalima
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} pruga sa kombiniranim i jednosmjernim putnim signalima
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} pruga sa putnim i jednosmjernim putnim signalima
STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} spremište vlaka
STR_LAI_RAIL_DESCRIPTION_TRACK :Pruga
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Pruga sa blok-signalima
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Pruga sa pred-signalima
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Pruga sa izlaznim signalima
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Pruga sa kombiniranim signalima
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Pruga sa putnim signalima
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Pruga sa jednosmjernim putnim signalima
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Pruga sa blok-signalima i pred-signalima
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Pruga sa blok-signalima i izlaznim signalima
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Pruga sa blok-signalima i kombiniranim signalima
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Pruga sa blok-signalima i putnim signalima
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Pruga sa blok-signalima i jednosmjernim putnim signalima
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Pruga sa pred-signalima i izlaznim signalima
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Pruga sa pred-signalima i kombiniranim signalima
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Pruga sa pred-signalima i putnim signalima
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Pruga sa pred-signalima i jednosmjernim putnim signalima
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Pruga sa izlaznim i kombiniranim signalima
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Pruga sa izlaznim i putnim signalima
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Pruga sa izlaznim i jednosmjernim putnim signalima
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Pruga sa kombiniranim i putnim signalima
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Pruga sa kombiniranim i jednosmjernim putnim signalima
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Pruga sa putnim i jednosmjernim putnim signalima
STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Spremište vlakova
STR_LAI_ROAD_DESCRIPTION_ROAD :Cesta
STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Cesta s javnom rasvjetom
@ -2783,7 +2784,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Zemlja u posjed
STR_ABOUT_OPENTTD :{WHITE}O OpenTTD-u
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Izvorno autorsko pravo {COPYRIGHT} 1995 Chris Sawyer, sva prava pridržana
STR_ABOUT_VERSION :{BLACK}OpenTTD verzija {REV}
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 OpenTTD tim
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD tim
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Spremi igru
@ -2818,9 +2819,9 @@ STR_MAPGEN_BY :{BLACK}*
STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}Broj gradova:
STR_MAPGEN_DATE :{BLACK}Datum:
STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Broj industrija:
STR_MAPGEN_MAX_HEIGHTLEVEL :{BLACK}Maksimalna visina mape:
STR_MAPGEN_MAX_HEIGHTLEVEL_UP :{BLACK}Povećaj maksimalnu visinu planina na mapi za jedan
STR_MAPGEN_MAX_HEIGHTLEVEL_DOWN :{BLACK}Smanji maksimalnu visinu planina na mapi za jedan
STR_MAPGEN_MAX_HEIGHTLEVEL :{BLACK}Najveća visina karte:
STR_MAPGEN_MAX_HEIGHTLEVEL_UP :{BLACK}Povećaj za jedan najveću visinu planina na karti
STR_MAPGEN_MAX_HEIGHTLEVEL_DOWN :{BLACK}Smanji za jedan najveću visinu planina na karti
STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Visina linije snijega
STR_MAPGEN_SNOW_LINE_UP :{BLACK}Pomakni visinu linije snijega za jedan gore
STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Pomakni visinu linije snijega za jedan dolje
@ -2850,7 +2851,7 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Ime visi
STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Veličina:
STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM}
STR_MAPGEN_MAX_HEIGHTLEVEL_QUERY_CAPT :{WHITE}Promijeni maksimalnu visinu mape
STR_MAPGEN_MAX_HEIGHTLEVEL_QUERY_CAPT :{WHITE}Promijeni najveću visinu karte
STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Promijeni visinu linije snijega
STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Promijeni početnu godinu
@ -2894,7 +2895,7 @@ STR_NEWGRF_SETTINGS_PRESET_SAVE :{BLACK}Spremi z
STR_NEWGRF_SETTINGS_PRESET_SAVE_TOOLTIP :{BLACK}Spremi trenutni popis kao zadano postavljanje
STR_NEWGRF_SETTINGS_PRESET_SAVE_QUERY :{BLACK}Upiši ime zadanog postavljanja
STR_NEWGRF_SETTINGS_PRESET_DELETE :{BLACK}Obriši zadano postavljanje
STR_NEWGRF_SETTINGS_PRESET_DELETE_TOOLTIP :{BLACK}Obriši trenutno izabrano zadano postavljanje
STR_NEWGRF_SETTINGS_PRESET_DELETE_TOOLTIP :{BLACK}Obriši trenutno odabrano zadano postavljanje
STR_NEWGRF_SETTINGS_ADD :{BLACK}Dodaj
STR_NEWGRF_SETTINGS_ADD_FILE_TOOLTIP :{BLACK}Dodaj odabrane NewGRF datoteke u svoju konfiguraciju
STR_NEWGRF_SETTINGS_RESCAN_FILES :{BLACK}Ponovno skeniraj datoteke
@ -2912,7 +2913,7 @@ STR_NEWGRF_SETTINGS_FILE_TOOLTIP :{BLACK}Popis in
STR_NEWGRF_SETTINGS_SET_PARAMETERS :{BLACK}Postavi parametre
STR_NEWGRF_SETTINGS_SHOW_PARAMETERS :{BLACK}Prikaži parametre
STR_NEWGRF_SETTINGS_TOGGLE_PALETTE :{BLACK}Aktiviraj paletu
STR_NEWGRF_SETTINGS_TOGGLE_PALETTE_TOOLTIP :{BLACK}Prilagodi paletu izabranog NewGRF-a.{}Učini ovo kada grafike iz ovog NewGRF-a izgledaju ljubičasto tijekom igre.
STR_NEWGRF_SETTINGS_TOGGLE_PALETTE_TOOLTIP :{BLACK}Prilagodi paletu odabranog NewGRF-a.{}Učini ovo kada grafike iz ovog NewGRF-a izgledaju ljubičasto tijekom igre.
STR_NEWGRF_SETTINGS_APPLY_CHANGES :{BLACK}Potvrdi promjene
STR_NEWGRF_SETTINGS_FIND_MISSING_CONTENT_BUTTON :{BLACK}Pronađi nedostajeći sadržaj online
@ -2970,13 +2971,13 @@ STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK}Otiđi n
STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Prethodni sprite
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Otiđi na prethodni normalni sprite, preskačući svaki pseudo/prebojani/font sprite i {BLACK}Otiđi na sljedeći normalni sprite, preskačući svaki pseudo/prebojani/font sprite i nakon dolaska na prvi prebaci na zadnjeg
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Prikaz trenutno odabranog spritea. Poravnjanje se ignorira kod crtanja ovog spritea.
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Pomakni sprite mijenjajući X i Y pomake
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Pomakni sprite mijenjajući X i Y pomake. Ctrl+Click za micanje po 8 jedinica odjednom.
STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Poništi relativne
STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Poništi trenutne relativne pomake
STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}X pomak: {NUM}, Y pomak: {NUM} (Apsolutni)
STR_SPRITE_ALIGNER_OFFSETS_REL :{BLACK}X pomak: {NUM}, Y pomak: {NUM} (Relativni)
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Odaberi sprite
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Odaberi sprite od bilo gdje na ekranu
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Odaberi bilo koji sprite na zaslonu
STR_SPRITE_ALIGNER_GOTO_CAPTION :{WHITE}Otiđi na sprite
@ -2985,7 +2986,7 @@ STR_NEWGRF_ERROR_MSG_INFO :{SILVER}{STRING
STR_NEWGRF_ERROR_MSG_WARNING :{RED}Upozorenje: {SILVER}{STRING}
STR_NEWGRF_ERROR_MSG_ERROR :{RED}Greška: {SILVER}{STRING}
STR_NEWGRF_ERROR_MSG_FATAL :{RED}Kobno: {SILVER}{STRING}
STR_NEWGRF_ERROR_FATAL_POPUP :{WHITE}Dogodila se kobna pogreška u NewGRF-u: {}{STRING}
STR_NEWGRF_ERROR_FATAL_POPUP :{WHITE}Dogodila se kobna pogreška u NewGRF-u:{}{STRING}
STR_NEWGRF_ERROR_VERSION_NUMBER :{1:STRING} neće raditi sa TTDPatch verzijom prijavljenom u OpenTTD
STR_NEWGRF_ERROR_DOS_OR_WINDOWS :{1:STRING} je za {STRING} verziju TTD-a.
STR_NEWGRF_ERROR_UNSET_SWITCH :{1:STRING} je napravljen da se koristi sa {STRING}
@ -3023,9 +3024,9 @@ STR_NEWGRF_UNPAUSE_WARNING :{WHITE}Odpauzir
# NewGRF status
STR_NEWGRF_LIST_NONE :Nijedan
STR_NEWGRF_LIST_ALL_FOUND :Svi fajlovi prisutni
STR_NEWGRF_LIST_COMPATIBLE :{YELLOW}Pronađeni kompatibilni fajlovi
STR_NEWGRF_LIST_MISSING :{RED}Nedostaju fajlovi
STR_NEWGRF_LIST_ALL_FOUND :Sve datoteke prisutne
STR_NEWGRF_LIST_COMPATIBLE :{YELLOW}Pronađene kompatibilne datoteke
STR_NEWGRF_LIST_MISSING :{RED}Nedostaju datoteke
# NewGRF 'it's broken' warnings
STR_NEWGRF_BROKEN :{WHITE}Ponašanje NewGRF '{0:STRING}' će vjerojatno uzrokovati deharmonizaciju i/ili rušenje igre
@ -3078,8 +3079,8 @@ STR_TOWN_POPULATION :{BLACK}Svjetsko
STR_TOWN_VIEW_TOWN_CAPTION :{WHITE}{TOWN}
STR_TOWN_VIEW_CITY_CAPTION :{WHITE}{TOWN} (Metropola)
STR_TOWN_VIEW_POPULATION_HOUSES :{BLACK}Stanovništvo: {ORANGE}{COMMA}{BLACK} Kuće: {ORANGE}{COMMA}
STR_TOWN_VIEW_PASSENGERS_LAST_MONTH_MAX :{BLACK}Putnika prošli mjesec: {ORANGE}{COMMA}{BLACK} maks: {ORANGE}{COMMA}
STR_TOWN_VIEW_MAIL_LAST_MONTH_MAX :{BLACK}Pošte prošli mjesec: {ORANGE}{COMMA}{BLACK} maks: {ORANGE}{COMMA}
STR_TOWN_VIEW_PASSENGERS_LAST_MONTH_MAX :{BLACK}Putnika prošli mjesec: {ORANGE}{COMMA}{BLACK} najviše: {ORANGE}{COMMA}
STR_TOWN_VIEW_MAIL_LAST_MONTH_MAX :{BLACK}Pošte prošli mjesec: {ORANGE}{COMMA}{BLACK} najviše: {ORANGE}{COMMA}
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH :{BLACK}Potrebno tereta za rast grada:
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_GENERAL :{ORANGE}{STRING}{RED} potrebno
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_WINTER :{ORANGE}{STRING}{BLACK} potrebno zimi
@ -3089,7 +3090,7 @@ STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_DELIVERED :{ORANGE}{CARGO_
STR_TOWN_VIEW_TOWN_GROWS_EVERY :{BLACK}Grad raste svaki {ORANGE}{COMMA}{BLACK}{NBSP}dan
STR_TOWN_VIEW_TOWN_GROWS_EVERY_FUNDED :{BLACK}Grad raste svaki {ORANGE}{COMMA}{BLACK}{NBSP}dan (financirano)
STR_TOWN_VIEW_TOWN_GROW_STOPPED :{BLACK}Grad {RED}ne{BLACK} raste
STR_TOWN_VIEW_NOISE_IN_TOWN :{BLACK}Ograničenje buke u gradu: {ORANGE}{COMMA}{BLACK} maks: {ORANGE}{COMMA}
STR_TOWN_VIEW_NOISE_IN_TOWN :{BLACK}Ograničenje buke u gradu: {ORANGE}{COMMA}{BLACK} najviše: {ORANGE}{COMMA}
STR_TOWN_VIEW_CENTER_TOOLTIP :{BLACK}Centriraj glavni pogled na lokaciju grada. Ctrl+klik otvara novi prozor sa lokacijom grada
STR_TOWN_VIEW_LOCAL_AUTHORITY_BUTTON :{BLACK}Lokalna samouprava
STR_TOWN_VIEW_LOCAL_AUTHORITY_TOOLTIP :{BLACK}Pokaži informacije o lokalnoj samoupravi
@ -3296,7 +3297,7 @@ STR_FINANCES_POSITIVE_INCOME :{BLACK}+{CURREN
STR_FINANCES_TOTAL_CAPTION :{WHITE}Ukupno:
STR_FINANCES_BANK_BALANCE_TITLE :{WHITE}Bankovna bilanca
STR_FINANCES_LOAN_TITLE :{WHITE}Zajam
STR_FINANCES_MAX_LOAN :{WHITE}Maksimalni kredit: {BLACK}{CURRENCY_LONG}
STR_FINANCES_MAX_LOAN :{WHITE}Najveći zajam: {BLACK}{CURRENCY_LONG}
STR_FINANCES_TOTAL_CURRENCY :{BLACK}{CURRENCY_LONG}
STR_FINANCES_BORROW_BUTTON :{BLACK}Pozajmi {CURRENCY_LONG}
STR_FINANCES_BORROW_TOOLTIP :{BLACK}Povećaj iznos zajma. Ctrl+klik posuđuje najveći mogući iznos
@ -3452,7 +3453,7 @@ STR_GROUP_RENAME_TOOLTIP :{BLACK}Preimenu
STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Klikni kako bi zaštitio ovu grupu od globalne automatske zamjene
STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Izbriši grupu
STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Da li ste sigurni da želite izbrisati ovu grupu i sve njene podgrupe?
STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Jeste li sigurni da želite izbrisati ovu grupu i sve njene podgrupe?
STR_GROUP_ADD_SHARED_VEHICLE :Dodaj dijeljena vozila
STR_GROUP_REMOVE_ALL_VEHICLES :Ukloni sva vozila
@ -3479,7 +3480,7 @@ STR_PURCHASE_INFO_RUNNINGCOST :{BLACK}Trošak
STR_PURCHASE_INFO_CAPACITY :{BLACK}Nosivost: {GOLD}{CARGO_LONG}{STRING}
STR_PURCHASE_INFO_REFITTABLE :(prenamjenjiv)
STR_PURCHASE_INFO_DESIGNED_LIFE :{BLACK}Dizajnirano: {GOLD}{NUM}{BLACK} Životni vijek: {GOLD}{COMMA} godina
STR_PURCHASE_INFO_RELIABILITY :{BLACK}Maks. pouzdanost: {GOLD}{COMMA}%
STR_PURCHASE_INFO_RELIABILITY :{BLACK}Najveća pouzdanost: {GOLD}{COMMA}%
STR_PURCHASE_INFO_COST :{BLACK}Cijena: {GOLD}{CURRENCY_LONG}
STR_PURCHASE_INFO_WEIGHT_CWEIGHT :{BLACK}Težina: {GOLD}{WEIGHT_SHORT} ({WEIGHT_SHORT})
STR_PURCHASE_INFO_COST_SPEED :{BLACK}Trošak: {GOLD}{CURRENCY_LONG}{BLACK} Brzina: {GOLD}{VELOCITY}
@ -3488,7 +3489,7 @@ STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK} Pokretn
STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Prenamjenjivo u: {GOLD}{STRING}
STR_PURCHASE_INFO_ALL_TYPES :Sve vrste tereta
STR_PURCHASE_INFO_ALL_BUT :Sve osim {CARGO_LIST}
STR_PURCHASE_INFO_MAX_TE :{BLACK} Maks. vučni napor: {GOLD}{FORCE}
STR_PURCHASE_INFO_MAX_TE :{BLACK} Najveća vučna sila: {GOLD}{FORCE}
STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Domet: {GOLD}{COMMA} polja
STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Popis vlakova za odabir. Klikni na vozilo za informacije. Ctrl+klik za uključivanje ili isključivanje prikaza vrste vozila
@ -3640,7 +3641,7 @@ STR_REPLACE_VEHICLE_VEHICLES_IN_USE_TOOLTIP :{BLACK}Stupac s
STR_REPLACE_VEHICLE_AVAILABLE_VEHICLES :{YELLOW}Dostupna vozila
STR_REPLACE_VEHICLE_AVAILABLE_VEHICLES_TOOLTIP :{BLACK}Stupac sa vozilima dostupnim za zamjenjivanje
STR_REPLACE_HELP_LEFT_ARRAY :{BLACK}Izaberi vrstu motora koju želiš zamijeniti
STR_REPLACE_HELP_LEFT_ARRAY :{BLACK}Odaberi vrstu motora koju želiš zamijeniti
STR_REPLACE_HELP_RIGHT_ARRAY :{BLACK}Odaberite novu vrstu lokomotive koji želite koristiti umjesto lijevo odabrane vrste lokomotive
STR_REPLACE_VEHICLES_START :{BLACK}Počni zamijenjivati vozila
@ -3653,10 +3654,10 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} kada j
STR_REPLACE_VEHICLES_STOP :{BLACK}Prestani zamijenjivati vozila
STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Klikni za zaustavljanje zamjene lijevo odabrane vrste lokomotive
STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Zamjenjujem:{ORANGE}{STRING}
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Prebaci između prozora za izmjenu lokomotiva i vagona
STR_REPLACE_ENGINES :Lokomotive
STR_REPLACE_WAGONS :Vagoni
STR_REPLACE_ALL_RAILTYPE :Sva pružna vozila
STR_REPLACE_HELP_RAILTYPE :{BLACK}Odaberite vrstu željeznice za koju želite zamijeniti lokomotive
STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Prikazuje sa kojom se lokomotivom zamjenjuje lijevo odabrana lokomotiva, ako postoji koji
@ -3712,7 +3713,7 @@ STR_VEHICLE_VIEW_SHIP_STATE_START_STOP_TOOLTIP :{BLACK}Trenutna
STR_VEHICLE_VIEW_AIRCRAFT_STATE_START_STOP_TOOLTIP :{BLACK}Trenutna radnja zrakoplova - pritisni za zaustavljanje/pokretanje zrakoplova. Ctrl+klik za odlazak do odredišta.
# Messages in the start stop button in the vehicle view
STR_VEHICLE_STATUS_LOADING_UNLOADING :{LTBLUE}Utovar / Istovar
STR_VEHICLE_STATUS_LOADING_UNLOADING :{LTBLUE}Ukrcaj / Iskrcaj
STR_VEHICLE_STATUS_LEAVING :{LTBLUE}Odlazeći
STR_VEHICLE_STATUS_CRASHED :{RED}Slupan!
STR_VEHICLE_STATUS_BROKEN_DOWN :{RED}Pokvareno
@ -3748,10 +3749,10 @@ STR_VEHICLE_INFO_AGE_RUNNING_COST_YR :{BLACK}Godine:
STR_VEHICLE_INFO_AGE :{COMMA} godin{P a e a} ({COMMA})
STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} godin{P a e a} ({COMMA})
STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Maks. brzina: {LTBLUE}{VELOCITY}
STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Maks. brzina: {LTBLUE}{VELOCITY} {BLACK}Domet: {LTBLUE}{COMMA} polja
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Težina: {LTBLUE}{WEIGHT_SHORT} {BLACK}Snaga: {LTBLUE}{POWER}{BLACK} Maks. brzina: {LTBLUE}{VELOCITY}
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Težina: {LTBLUE}{WEIGHT_SHORT} {BLACK}Snaga: {LTBLUE}{POWER}{BLACK} Maks. brzina: {LTBLUE}{VELOCITY} {BLACK}Maks. T.E.: {LTBLUE}{FORCE}
STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Najveća brzina: {LTBLUE}{VELOCITY}
STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Najveća brzina: {LTBLUE}{VELOCITY} {BLACK}Domet: {LTBLUE}{COMMA} polj{P e a a}
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Težina: {LTBLUE}{WEIGHT_SHORT} {BLACK}Snaga: {LTBLUE}{POWER}{BLACK} Najveća brzina: {LTBLUE}{VELOCITY}
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Težina: {LTBLUE}{WEIGHT_SHORT} {BLACK}Snaga: {LTBLUE}{POWER}{BLACK} Najveća brzina: {LTBLUE}{VELOCITY} {BLACK}Najveća vučna sila: {LTBLUE}{FORCE}
STR_VEHICLE_INFO_PROFIT_THIS_YEAR_LAST_YEAR :{BLACK}Dobit ove godine: {LTBLUE}{CURRENCY_LONG} (prošle godine: {CURRENCY_LONG})
STR_VEHICLE_INFO_RELIABILITY_BREAKDOWNS :{BLACK}Pouzdanost: {LTBLUE}{COMMA}% {BLACK}Broj kvarova od posljednjeg servisa: {LTBLUE}{COMMA}
@ -3863,7 +3864,7 @@ STR_ORDER_TOOLTIP_UNLOAD :{BLACK}Promijen
STR_ORDER_REFIT :{BLACK}Prenamijeni
STR_ORDER_REFIT_TOOLTIP :{BLACK}Odaberi vrstu tereta za prenamijenu u ovoj naredbi. Ctrl+klik kako bi uklonio naputak za prenamjenu
STR_ORDER_REFIT_AUTO :{BLACK}Auto-remont na postaji
STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}Odaberi za koji tip tereta odraditi auto-remont. Ctrl+Click za micanje remontnih uputa. Auto-remont će se odraditi samo ako ga vozilo dopušta.
STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}Odaberi za koji tip tereta odraditi auto-remont. Ctrl+klik za micanje remontnih uputa. Auto-remont će se odraditi samo ako ga vozilo dopušta.
STR_ORDER_DROP_REFIT_AUTO :Popravljen teret
STR_ORDER_DROP_REFIT_AUTO_ANY :Dostupni teret
@ -3878,7 +3879,7 @@ STR_ORDER_CONDITIONAL_VARIABLE_TOOLTIP :{BLACK}Podaci v
# Conditional order variables, must follow order of OrderConditionVariable enum
STR_ORDER_CONDITIONAL_LOAD_PERCENTAGE :Postotak ukrcaja
STR_ORDER_CONDITIONAL_RELIABILITY :Pouzdanost
STR_ORDER_CONDITIONAL_MAX_SPEED :Maksimalna brzina
STR_ORDER_CONDITIONAL_MAX_SPEED :Najveća brzina
STR_ORDER_CONDITIONAL_AGE :Starost vozila (godine)
STR_ORDER_CONDITIONAL_REQUIRES_SERVICE :Treba servis
STR_ORDER_CONDITIONAL_UNCONDITIONALLY :Uvijek
@ -4022,10 +4023,10 @@ STR_TIMETABLE_CLEAR_TIME :{BLACK}Obriši
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Obriši vrijeme potrebno za označenu naredbu
STR_TIMETABLE_CHANGE_SPEED :{BLACK}Izmijeni limit brzine
STR_TIMETABLE_CHANGE_SPEED_TOOLTIP :{BLACK}Izmijeni maksimalnu putnu brzinu za označenu naredbu
STR_TIMETABLE_CHANGE_SPEED_TOOLTIP :{BLACK}Promijeni najveću putnu brzinu označene naredbe
STR_TIMETABLE_CLEAR_SPEED :{BLACK}Izbriši limit brzine
STR_TIMETABLE_CLEAR_SPEED_TOOLTIP :{BLACK}Izbriši maksimalnu putnu brzinu za označenu naredbu
STR_TIMETABLE_CLEAR_SPEED_TOOLTIP :{BLACK}Obriši najveću putnu brzinu za označenu naredbu
STR_TIMETABLE_RESET_LATENESS :{BLACK}Poništi brojač kašnjenja
STR_TIMETABLE_RESET_LATENESS_TOOLTIP :{BLACK}Resetiraj brojač kašnjenja, kako bi vozilo stiglo na vrijeme
@ -4096,7 +4097,7 @@ STR_AI_CONFIG_CHANGE_AI :UI
STR_AI_CONFIG_CHANGE_GAMESCRIPT :Skripta Igre
STR_AI_CONFIG_CHANGE_TOOLTIP :{BLACK}Učitaj drugu skriptu
STR_AI_CONFIG_CONFIGURE :{BLACK}Konfiguriraj
STR_AI_CONFIG_CONFIGURE_TOOLTIP :{BLACK}Konfiguriraj parametre izabrane skripte
STR_AI_CONFIG_CONFIGURE_TOOLTIP :{BLACK}Prilagodi parametre odabrane skripte
# Available AIs window
STR_AI_LIST_CAPTION :{WHITE}Dostupno {STRING}
@ -4109,7 +4110,7 @@ STR_AI_LIST_VERSION :{LTBLUE}Verzija
STR_AI_LIST_URL :{LTBLUE}URL: {ORANGE}{STRING}
STR_AI_LIST_ACCEPT :{BLACK}Prihvati
STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Odaberi posvijetljenu skriptu
STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Odaberi označenu skriptu
STR_AI_LIST_CANCEL :{BLACK}Odustani
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Nemoj mijenjati skriptu
@ -4175,7 +4176,7 @@ STR_GAME_SAVELOAD_NOT_AVAILABLE :<not available>
STR_WARNING_LOADGAME_REMOVED_TRAMS :{WHITE}Igra je bila spremljena u verziji bez podrške za tramvaje. Svi tramvaji su uklonjeni.
# Map generation messages
STR_ERROR_COULD_NOT_CREATE_TOWN :{WHITE}Generiranje mape prekinuto...{}... ne postoje pogodne lokacije za gradove
STR_ERROR_COULD_NOT_CREATE_TOWN :{WHITE}Generiranje karte prekinuto...{}... ne postoje pogodne lokacije za gradove
STR_ERROR_NO_TOWN_IN_SCENARIO :{WHITE}... u ovom scenariju nema gradova
STR_ERROR_PNGMAP :{WHITE}Nije moguće učitati krajolik iz PNG-a...
@ -4189,14 +4190,14 @@ STR_ERROR_BMPMAP_IMAGE_TYPE :{WHITE}... ne m
STR_ERROR_HEIGHTMAP_TOO_LARGE :{WHITE}... slika je prevelika
STR_WARNING_HEIGHTMAP_SCALE_CAPTION :{WHITE}Upozorenje o veličini
STR_WARNING_HEIGHTMAP_SCALE_MESSAGE :{YELLOW}Prekomjerna promjena veličine karte nije preporučena. Nastaviti sa kreiranjem?
STR_WARNING_HEIGHTMAP_SCALE_MESSAGE :{YELLOW}Pretjerana promjena veličine karte nije preporučena. Nastaviti sa stvaranjem?
# Soundset messages
STR_WARNING_FALLBACK_SOUNDSET :{WHITE}Pronađen je samo sigurnosni zvučni sustav. Ako želite zvukove, instalirajte set zvukova kroz sustav za preuzimanje sadržaja.
# Screenshot related messages
STR_WARNING_SCREENSHOT_SIZE_CAPTION :{WHITE}Velika slika
STR_WARNING_SCREENSHOT_SIZE_MESSAGE :{YELLOW}Slika će imati rezoluciju od {COMMA} x {COMMA} piksela. Slikanje može potrajati. Da li želite nastaviti?
STR_WARNING_SCREENSHOT_SIZE_MESSAGE :{YELLOW}Slika će imati rezoluciju od {COMMA} x {COMMA} piksela. Slikanje može potrajati. Želite li nastaviti?
STR_MESSAGE_SCREENSHOT_SUCCESSFULLY :{WHITE}Slika zaslona uspješno spremljena kao '{STRING}'
STR_ERROR_SCREENSHOT_FAILED :{WHITE}Slika zaslona nije uspjela!
@ -4291,7 +4292,7 @@ STR_ERROR_CAN_ONLY_BE_BUILT_ABOVE_SNOW_LINE :{WHITE}... mogu
STR_ERROR_CAN_ONLY_BE_BUILT_BELOW_SNOW_LINE :{WHITE}... moguće graditi samo ispod razine snijega
STR_ERROR_NO_SUITABLE_PLACES_FOR_INDUSTRIES :{WHITE}Nije bilo odgovarajućih mjesta za '{STRING}' industrije
STR_ERROR_NO_SUITABLE_PLACES_FOR_INDUSTRIES_EXPLANATION :{WHITE}Izmijenite parametre za generaciju mape kako bi dobili bolju mapu
STR_ERROR_NO_SUITABLE_PLACES_FOR_INDUSTRIES_EXPLANATION :{WHITE}Promijeni parametre stvaranja karte kako biste dobili bolju kartu
# Station construction related errors
STR_ERROR_CAN_T_BUILD_RAILROAD_STATION :{WHITE}Ovdje nije moguće izgraditi željezničku postaju...
@ -4385,7 +4386,7 @@ STR_ERROR_MUST_REMOVE_SIGNALS_FIRST :{WHITE}Najprije
STR_ERROR_NO_SUITABLE_RAILROAD_TRACK :{WHITE}Nije prikladno za želježnicku prugu
STR_ERROR_MUST_REMOVE_RAILROAD_TRACK :{WHITE}Najprije je potrebno ukloniti željezničku prugu
STR_ERROR_CROSSING_ON_ONEWAY_ROAD :{WHITE}Cesta je jednosmjerna ili je blokirana
STR_ERROR_CROSSING_DISALLOWED :{WHITE}Pružni prijelazi nisu dozvoljeni za ovu vrstu pruge
STR_ERROR_CROSSING_DISALLOWED :{WHITE}Pružni prijelazi nisu dopušteni za ovu vrstu pruge
STR_ERROR_CAN_T_BUILD_SIGNALS_HERE :{WHITE}Ovdje nije moguće postaviti signale...
STR_ERROR_CAN_T_BUILD_RAILROAD_TRACK :{WHITE}Ovdje nije moguće izgraditi željezničke tračnice...
STR_ERROR_CAN_T_REMOVE_RAILROAD_TRACK :{WHITE}Nije moguće ukloniti željezničku prugu odavde...
@ -4433,7 +4434,7 @@ STR_ERROR_BRIDGE_TOO_HIGH_FOR_TERRAIN :{WHITE}Most je
STR_ERROR_START_AND_END_MUST_BE_IN :{WHITE}Početak i kraj moraju biti u ravnini
STR_ERROR_ENDS_OF_BRIDGE_MUST_BOTH :{WHITE}... oba kraja mosta moraju biti na zemlji
STR_ERROR_BRIDGE_TOO_LONG :{WHITE}... predugačak most
STR_ERROR_BRIDGE_THROUGH_MAP_BORDER :{WHITE}Most bi završio izvan mape
STR_ERROR_BRIDGE_THROUGH_MAP_BORDER :{WHITE}Most bi završio izvan karte
# Tunnel related errors
STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}Ovdje nije moguće izgraditi tunel...
@ -4566,8 +4567,8 @@ STR_BASEGRAPHICS_WIN_DESCRIPTION :Originalna graf
STR_BASESOUNDS_DOS_DESCRIPTION :Originalni zvukovi za Transport Tycoon Deluxe DOS izdanje.
STR_BASESOUNDS_WIN_DESCRIPTION :Originalni zvukovi za Transport Tycoon Deluxe Windows izdanje.
STR_BASESOUNDS_NONE_DESCRIPTION :Zvučni paket bez ikakvih zvukova.
STR_BASEMUSIC_WIN_DESCRIPTION :Originalna muzika za Transport Tycoon Deluxe Windows izdanje.
STR_BASEMUSIC_NONE_DESCRIPTION :Muzički paket bez ikakve muzike.
STR_BASEMUSIC_WIN_DESCRIPTION :Originalna glazba za Transport Tycoon Deluxe Windows izdanje.
STR_BASEMUSIC_NONE_DESCRIPTION :Glazbeni paket bez ikakve glazbe.
##id 0x2000
# Town building names

@ -35,14 +35,14 @@ STR_CARGO_PLURAL_PASSENGERS.big :Cestující
STR_CARGO_PLURAL_COAL :Uhlí
STR_CARGO_PLURAL_COAL.big :Uhlí
STR_CARGO_PLURAL_MAIL :{G=f}Pošta
STR_CARGO_PLURAL_MAIL.nom :{G=f}pošta
STR_CARGO_PLURAL_MAIL.gen :{G=f}pošty
STR_CARGO_PLURAL_MAIL.dat :{G=f}poštu
STR_CARGO_PLURAL_MAIL.acc :{G=f}poštu
STR_CARGO_PLURAL_MAIL.loc :{G=f}poště
STR_CARGO_PLURAL_MAIL.ins :{G=f}poštou
STR_CARGO_PLURAL_MAIL.nom :pošta
STR_CARGO_PLURAL_MAIL.gen :pošty
STR_CARGO_PLURAL_MAIL.dat :poštu
STR_CARGO_PLURAL_MAIL.acc :poštu
STR_CARGO_PLURAL_MAIL.loc :poště
STR_CARGO_PLURAL_MAIL.ins :poštou
STR_CARGO_PLURAL_MAIL.big :Pošta
STR_CARGO_PLURAL_MAIL.small :{G=f}pošta
STR_CARGO_PLURAL_MAIL.small :pošta
STR_CARGO_PLURAL_OIL :Ropa
STR_CARGO_PLURAL_OIL.gen :Ropy
STR_CARGO_PLURAL_OIL.acc :Ropu
@ -1205,9 +1205,9 @@ STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Nastavení hry
STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Nastavení hry (uchováno v uložené hře; ovlivní pouze stávající hru)
STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Nastavení společnosti (uchováno v uložených hrách; ovlivní pouze nové hry)
STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Nastavení společnosti (uchováno v uložené hře; ovlivní pouze stávající společnost)
STR_CONFIG_SETTING_CATEGORY_HIDES :{BLACK}Všechny výsledky vyhledávání zobrazíš nastavením {}{SILVER}kategorie {BLACK}na {WHITE}{STRING}
STR_CONFIG_SETTING_TYPE_HIDES :{BLACK}Všechny výsledky vyhledávání zobrazíš nastavením {}{SILVER}typu {BLACK}na {WHITE}Všechny typy nastavení
STR_CONFIG_SETTING_CATEGORY_AND_TYPE_HIDES :{BLACK}Všechny výsledky vyhledávání zobrazíš nastavením {}{SILVER}kategorie {BLACK}na {WHITE}{STRING} {BLACK}a {SILVER}typu {BLACK}na {WHITE}Všechny typy nastavení
STR_CONFIG_SETTING_CATEGORY_HIDES :{BLACK}Všechny výsledky vyhledávání zobrazíš nastavením{}{SILVER}kategorie {BLACK}na {WHITE}{STRING}
STR_CONFIG_SETTING_TYPE_HIDES :{BLACK}Všechny výsledky vyhledávání zobrazíš nastavením{}{SILVER}typu {BLACK}na {WHITE}Všechny typy nastavení
STR_CONFIG_SETTING_CATEGORY_AND_TYPE_HIDES :{BLACK}Všechny výsledky vyhledávání zobrazíš nastavením{}{SILVER}kategorie {BLACK}na {WHITE}{STRING} {BLACK}a {SILVER}typu {BLACK}na {WHITE}Všechny typy nastavení
STR_CONFIG_SETTINGS_NONE :{WHITE}- Nic -
STR_CONFIG_SETTING_OFF :Vypnuto
@ -2694,29 +2694,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Pole
STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Zasněžená země
STR_LAI_CLEAR_DESCRIPTION_DESERT :Poušť
STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} trať
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} trať s obyčejným návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} trať s vjezdovým návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} trať s výjezdovým návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} trať s kombinovaným návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} trať s dokonalejším (PBS) návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} trať s dokonalejším (PBS) jednosměrným návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} trať s obyčejným a vjezdovým návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} trať s obyčejným a odjezdovým návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} trať s obyčejným a kombinovaným návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} trať s obyčejným a cestovým návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} trať s obyčejným a jednosměrným cestovým návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} trať s vjezdovým a odjezdovým návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} trať s vjezdovým a kombinovaným návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} trať s vjezdovým a cestovým návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} trať s vjezdovým a jednosměrným cestovým návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} trať s výjezdovým a kombinovaným návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} trať s výjezdovým a cestovým návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} trať s výjezdovým a jednosměrným cestovým návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} trať s kombinovaným a cestovým návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} trať s kombinovaným a jednosměrným cestovým návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} trať s cestovým a jednosměrným cestovým návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} železniční depo
STR_LAI_RAIL_DESCRIPTION_TRACK :Železnice trať
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Železnice trať s obyčejným návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Železnice trať s vjezdovým návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Železnice trať s výjezdovým návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Železnice trať s kombinovaným návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Železnice trať s dokonalejším (PBS) návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Železnice trať s dokonalejším (PBS) jednosměrným návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Železnice trať s obyčejným a vjezdovým návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Železnice trať s obyčejným a odjezdovým návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Železnice trať s obyčejným a kombinovaným návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Železnice trať s obyčejným a cestovým návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Železnice trať s obyčejným a jednosměrným cestovým návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Železnice trať s vjezdovým a odjezdovým návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Železnice trať s vjezdovým a kombinovaným návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Železnice trať s vjezdovým a cestovým návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Železnice trať s vjezdovým a jednosměrným cestovým návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Železnice trať s výjezdovým a kombinovaným návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Železnice trať s výjezdovým a cestovým návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Železnice trať s výjezdovým a jednosměrným cestovým návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Železnice trať s kombinovaným a cestovým návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Železnice trať s kombinovaným a jednosměrným cestovým návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Železnice trať s cestovým a jednosměrným cestovým návěstidlem
STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Železnice železniční depo
STR_LAI_ROAD_DESCRIPTION_ROAD :Silnice
STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Silnice s pouličním osvětlením
@ -2780,7 +2780,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Půda vlastněn
STR_ABOUT_OPENTTD :{WHITE}O OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Původní copyright: {COPYRIGHT} 1995 Chris Sawyer, všechna práva vyhrazena
STR_ABOUT_VERSION :{BLACK}OpenTTD verze {REV}
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 Tým OpenTTD
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 Tým OpenTTD
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Uložit hru
@ -2967,7 +2967,7 @@ STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK}Jít na
STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Předchozí sprite
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Jít na předchozí normální sprite (s grafikou), přičemž se přeskakují pseudo-/barvící/znakové sprity a při dosažení začátku se jde na konec
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Zobrazení vybraného spritu. Posun se při jeho vykreslení neuvažoval
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Posouvání spritu změnou souřadnic X a Y
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Posouvání spritu změnou souřadnic X a Y. Ctrl+kliknutí posouvá o osm jednotek najednou.
STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Resetovat
STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Resetovat aktuání relativní posunutí
STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}Posunutí v ose X: {NUM}, Posunutí v ose Y: {NUM} (Absolutní)
@ -2982,7 +2982,7 @@ STR_NEWGRF_ERROR_MSG_INFO :{SILVER}{STRING
STR_NEWGRF_ERROR_MSG_WARNING :{RED}Varování: {SILVER}{STRING}
STR_NEWGRF_ERROR_MSG_ERROR :{RED}Chyba: {SILVER}{STRING}
STR_NEWGRF_ERROR_MSG_FATAL :{RED}Závažná chyba: {SILVER}{STRING}
STR_NEWGRF_ERROR_FATAL_POPUP :{WHITE}Vyskytla se kritická chyba v NewGRF: {}{STRING}
STR_NEWGRF_ERROR_FATAL_POPUP :{WHITE}Vyskytla se kritická chyba v NewGRF:{}{STRING}
STR_NEWGRF_ERROR_VERSION_NUMBER :{1:STRING} nebude fungovat s verzí TTDPatche, kterou OpenTTD hlásí
STR_NEWGRF_ERROR_DOS_OR_WINDOWS :{1:STRING} je pro TTD verzi {STRING}
STR_NEWGRF_ERROR_UNSET_SWITCH :{1:STRING} je navržen pro práci s {STRING}
@ -3612,17 +3612,14 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Chceš
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Zpráva od výrobce dopravních prostředků
STR_ENGINE_PREVIEW_MESSAGE :{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_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :{G=f}lokomotiva
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE.dat :
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE.acc :{G=f}lokomotivu
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE.acc :lokomotivu
STR_ENGINE_PREVIEW_ROAD_VEHICLE :{G=n}silniční vozidlo
STR_ENGINE_PREVIEW_AIRCRAFT :{G=n}letadlo
STR_ENGINE_PREVIEW_SHIP :{G=f}loď
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :{G=f}lokomotiva pro monorail
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE.dat :
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE.acc :{G=f}lokomotivu pro monorail
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE.acc :lokomotivu pro monorail
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}lokomotiva Maglev
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.dat :
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.acc :{G=f}lokomotivu Maglev
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE.acc :lokomotivu Maglev
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cena: {CURRENCY_LONG} Hmotnost: {WEIGHT_SHORT}{}Rychlost: {VELOCITY} Výkon: {POWER}{}Cena provozu: {CURRENCY_LONG} ročně{}Kapacita: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cena: {CURRENCY_LONG} Váha: {WEIGHT_SHORT}{}Rychlost: {VELOCITY} Síla: {POWER} Maximální tažná síla: {6:FORCE}{}Provozní náklady: {4:CURRENCY_LONG}/rok{}Kapacita: {5:CARGO_LONG}
@ -3656,7 +3653,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} když
STR_REPLACE_VEHICLES_STOP :{BLACK}Vypnout vyměňování
STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Zmáčkni toto tlačítko, když nechceš vyměňovat typ lokomotivy vybraný v levém seznamu
STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Vyměňování: {ORANGE}{STRING}
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Přepne mezi okny na výměnu lokomotiv a vagonů
STR_REPLACE_ENGINES :lokomotivy
STR_REPLACE_WAGONS :vagony
@ -4618,153 +4614,153 @@ STR_TOWN_BUILDING_NAME_PIGGY_BANK_1 :Banka prasátko
##id 0x4800
# industry names
STR_INDUSTRY_NAME_COAL_MINE :{G=m}Uhelný důl
STR_INDUSTRY_NAME_COAL_MINE.gen :{G=m}uhelného dolu
STR_INDUSTRY_NAME_COAL_MINE.loc :{G=m}v uhelném dole
STR_INDUSTRY_NAME_COAL_MINE.small :{G=m}uhelný důl
STR_INDUSTRY_NAME_COAL_MINE.gen :uhelného dolu
STR_INDUSTRY_NAME_COAL_MINE.loc :v uhelném dole
STR_INDUSTRY_NAME_COAL_MINE.small :uhelný důl
STR_INDUSTRY_NAME_POWER_STATION :{G=f}Elektrárna
STR_INDUSTRY_NAME_POWER_STATION.gen :{G=f}elektrárny
STR_INDUSTRY_NAME_POWER_STATION.loc :{G=f}v elektrárně
STR_INDUSTRY_NAME_POWER_STATION.small :{G=f}elektrárna
STR_INDUSTRY_NAME_POWER_STATION.gen :elektrárny
STR_INDUSTRY_NAME_POWER_STATION.loc :v elektrárně
STR_INDUSTRY_NAME_POWER_STATION.small :elektrárna
STR_INDUSTRY_NAME_SAWMILL :{G=f}Pila
STR_INDUSTRY_NAME_SAWMILL.gen :{G=f}pily
STR_INDUSTRY_NAME_SAWMILL.loc :{G=f}na pile
STR_INDUSTRY_NAME_SAWMILL.small :{G=f}pila
STR_INDUSTRY_NAME_SAWMILL.gen :pily
STR_INDUSTRY_NAME_SAWMILL.loc :na pile
STR_INDUSTRY_NAME_SAWMILL.small :pila
STR_INDUSTRY_NAME_FOREST :{G=m}Les
STR_INDUSTRY_NAME_FOREST.gen :{G=m}lesa
STR_INDUSTRY_NAME_FOREST.loc :{G=m}v lese
STR_INDUSTRY_NAME_FOREST.small :{G=m}les
STR_INDUSTRY_NAME_FOREST.gen :lesa
STR_INDUSTRY_NAME_FOREST.loc :v lese
STR_INDUSTRY_NAME_FOREST.small :les
STR_INDUSTRY_NAME_OIL_REFINERY :{G=f}Rafinerie
STR_INDUSTRY_NAME_OIL_REFINERY.gen :{G=f}rafinerie
STR_INDUSTRY_NAME_OIL_REFINERY.loc :{G=f}v rafinerii
STR_INDUSTRY_NAME_OIL_REFINERY.small :{G=f}rafinerie
STR_INDUSTRY_NAME_OIL_REFINERY.gen :rafinerie
STR_INDUSTRY_NAME_OIL_REFINERY.loc :v rafinerii
STR_INDUSTRY_NAME_OIL_REFINERY.small :rafinerie
STR_INDUSTRY_NAME_OIL_RIG :{G=f}Ropná plošina
STR_INDUSTRY_NAME_OIL_RIG.gen :{G=f}ropné plošiny
STR_INDUSTRY_NAME_OIL_RIG.loc :{G=f}na ropné plošině
STR_INDUSTRY_NAME_OIL_RIG.small :{G=f}ropná plošina
STR_INDUSTRY_NAME_OIL_RIG.gen :ropné plošiny
STR_INDUSTRY_NAME_OIL_RIG.loc :na ropné plošině
STR_INDUSTRY_NAME_OIL_RIG.small :ropná plošina
STR_INDUSTRY_NAME_FACTORY :{G=f}Továrna
STR_INDUSTRY_NAME_FACTORY.gen :{G=f}továrny
STR_INDUSTRY_NAME_FACTORY.loc :{G=f}v továrně
STR_INDUSTRY_NAME_FACTORY.small :{G=f}továrna
STR_INDUSTRY_NAME_FACTORY.gen :továrny
STR_INDUSTRY_NAME_FACTORY.loc :v továrně
STR_INDUSTRY_NAME_FACTORY.small :továrna
STR_INDUSTRY_NAME_PRINTING_WORKS :{G=f}Tiskárna
STR_INDUSTRY_NAME_PRINTING_WORKS.gen :{G=f}tiskárny
STR_INDUSTRY_NAME_PRINTING_WORKS.loc :{G=f}v tiskárně
STR_INDUSTRY_NAME_PRINTING_WORKS.small :{G=f}tiskárna
STR_INDUSTRY_NAME_PRINTING_WORKS.gen :tiskárny
STR_INDUSTRY_NAME_PRINTING_WORKS.loc :v tiskárně
STR_INDUSTRY_NAME_PRINTING_WORKS.small :tiskárna
STR_INDUSTRY_NAME_STEEL_MILL :{G=f}Ocelárna
STR_INDUSTRY_NAME_STEEL_MILL.gen :{G=f}ocelárny
STR_INDUSTRY_NAME_STEEL_MILL.loc :{G=f}v ocelárně
STR_INDUSTRY_NAME_STEEL_MILL.small :{G=f}ocelárna
STR_INDUSTRY_NAME_STEEL_MILL.gen :ocelárny
STR_INDUSTRY_NAME_STEEL_MILL.loc :v ocelárně
STR_INDUSTRY_NAME_STEEL_MILL.small :ocelárna
STR_INDUSTRY_NAME_FARM :{G=f}Farma
STR_INDUSTRY_NAME_FARM.gen :{G=f}farmy
STR_INDUSTRY_NAME_FARM.loc :{G=f}na farmě
STR_INDUSTRY_NAME_FARM.small :{G=f}farma
STR_INDUSTRY_NAME_FARM.gen :farmy
STR_INDUSTRY_NAME_FARM.loc :na farmě
STR_INDUSTRY_NAME_FARM.small :farma
STR_INDUSTRY_NAME_COPPER_ORE_MINE :{G=m}Důl na měděnou rudu
STR_INDUSTRY_NAME_COPPER_ORE_MINE.gen :{G=m}dolu na měděnou rudu
STR_INDUSTRY_NAME_COPPER_ORE_MINE.loc :{G=m}v dole na měděnou rudu
STR_INDUSTRY_NAME_COPPER_ORE_MINE.small :{G=m}důl na měděnou rudu
STR_INDUSTRY_NAME_COPPER_ORE_MINE.gen :dolu na měděnou rudu
STR_INDUSTRY_NAME_COPPER_ORE_MINE.loc :v dole na měděnou rudu
STR_INDUSTRY_NAME_COPPER_ORE_MINE.small :důl na měděnou rudu
STR_INDUSTRY_NAME_OIL_WELLS :{G=m}Ropný vrt
STR_INDUSTRY_NAME_OIL_WELLS.gen :{G=m}ropného vrtu
STR_INDUSTRY_NAME_OIL_WELLS.loc :{G=m}v ropném vrtu
STR_INDUSTRY_NAME_OIL_WELLS.small :{G=m}ropný vrt
STR_INDUSTRY_NAME_OIL_WELLS.gen :ropného vrtu
STR_INDUSTRY_NAME_OIL_WELLS.loc :v ropném vrtu
STR_INDUSTRY_NAME_OIL_WELLS.small :ropný vrt
STR_INDUSTRY_NAME_BANK :{G=f}Banka
STR_INDUSTRY_NAME_BANK.gen :{G=f}banky
STR_INDUSTRY_NAME_BANK.loc :{G=f}v bance
STR_INDUSTRY_NAME_BANK.small :{G=f}banka
STR_INDUSTRY_NAME_BANK.gen :banky
STR_INDUSTRY_NAME_BANK.loc :v bance
STR_INDUSTRY_NAME_BANK.small :banka
STR_INDUSTRY_NAME_FOOD_PROCESSING_PLANT :{G=m}Potravinářský závod
STR_INDUSTRY_NAME_FOOD_PROCESSING_PLANT.gen :{G=m}potravinářského závodu
STR_INDUSTRY_NAME_FOOD_PROCESSING_PLANT.loc :{G=m}v potravinářském závodu
STR_INDUSTRY_NAME_FOOD_PROCESSING_PLANT.small :{G=m}potravinářský závod
STR_INDUSTRY_NAME_FOOD_PROCESSING_PLANT.gen :potravinářského závodu
STR_INDUSTRY_NAME_FOOD_PROCESSING_PLANT.loc :v potravinářském závodu
STR_INDUSTRY_NAME_FOOD_PROCESSING_PLANT.small :potravinářský závod
STR_INDUSTRY_NAME_PAPER_MILL :{G=f}Papírna
STR_INDUSTRY_NAME_PAPER_MILL.gen :{G=f}papírny
STR_INDUSTRY_NAME_PAPER_MILL.loc :{G=f}v papírně
STR_INDUSTRY_NAME_PAPER_MILL.small :{G=f}papírna
STR_INDUSTRY_NAME_PAPER_MILL.gen :papírny
STR_INDUSTRY_NAME_PAPER_MILL.loc :v papírně
STR_INDUSTRY_NAME_PAPER_MILL.small :papírna
STR_INDUSTRY_NAME_GOLD_MINE :{G=m}Zlatý důl
STR_INDUSTRY_NAME_GOLD_MINE.gen :{G=m}zlatého dolu
STR_INDUSTRY_NAME_GOLD_MINE.loc :{G=m}ve zlatém dole
STR_INDUSTRY_NAME_GOLD_MINE.small :{G=m}zlatý důl
STR_INDUSTRY_NAME_GOLD_MINE.gen :zlatého dolu
STR_INDUSTRY_NAME_GOLD_MINE.loc :ve zlatém dole
STR_INDUSTRY_NAME_GOLD_MINE.small :zlatý důl
STR_INDUSTRY_NAME_BANK_TROPIC_ARCTIC :{G=f}Banka
STR_INDUSTRY_NAME_BANK_TROPIC_ARCTIC.gen :{G=f}banky
STR_INDUSTRY_NAME_BANK_TROPIC_ARCTIC.loc :{G=f}v bance
STR_INDUSTRY_NAME_BANK_TROPIC_ARCTIC.small :{G=f}banka
STR_INDUSTRY_NAME_BANK_TROPIC_ARCTIC.gen :banky
STR_INDUSTRY_NAME_BANK_TROPIC_ARCTIC.loc :v bance
STR_INDUSTRY_NAME_BANK_TROPIC_ARCTIC.small :banka
STR_INDUSTRY_NAME_DIAMOND_MINE :{G=m}Diamantový důl
STR_INDUSTRY_NAME_DIAMOND_MINE.gen :{G=m}diamantového dolu
STR_INDUSTRY_NAME_DIAMOND_MINE.loc :{G=m}v diamantovém dole
STR_INDUSTRY_NAME_DIAMOND_MINE.small :{G=m}diamantový důl
STR_INDUSTRY_NAME_DIAMOND_MINE.gen :diamantového dolu
STR_INDUSTRY_NAME_DIAMOND_MINE.loc :v diamantovém dole
STR_INDUSTRY_NAME_DIAMOND_MINE.small :diamantový důl
STR_INDUSTRY_NAME_IRON_ORE_MINE :{G=m}Důl na železnou rudu
STR_INDUSTRY_NAME_IRON_ORE_MINE.gen :{G=m}dolu na železnou rudu
STR_INDUSTRY_NAME_IRON_ORE_MINE.loc :{G=m}v dole na železnou rudu
STR_INDUSTRY_NAME_IRON_ORE_MINE.small :{G=m}důl na železnou rudu
STR_INDUSTRY_NAME_IRON_ORE_MINE.gen :dolu na železnou rudu
STR_INDUSTRY_NAME_IRON_ORE_MINE.loc :v dole na železnou rudu
STR_INDUSTRY_NAME_IRON_ORE_MINE.small :důl na železnou rudu
STR_INDUSTRY_NAME_FRUIT_PLANTATION :{G=m}Ovocný sad
STR_INDUSTRY_NAME_FRUIT_PLANTATION.gen :{G=m}ovocného sadu
STR_INDUSTRY_NAME_FRUIT_PLANTATION.loc :{G=m}v ovocném sadu
STR_INDUSTRY_NAME_FRUIT_PLANTATION.small :{G=m}ovocný sad
STR_INDUSTRY_NAME_FRUIT_PLANTATION.gen :ovocného sadu
STR_INDUSTRY_NAME_FRUIT_PLANTATION.loc :v ovocném sadu
STR_INDUSTRY_NAME_FRUIT_PLANTATION.small :ovocný sad
STR_INDUSTRY_NAME_RUBBER_PLANTATION :{G=f}Kaučuková plantáž
STR_INDUSTRY_NAME_RUBBER_PLANTATION.gen :{G=f}kaučukové plantáže
STR_INDUSTRY_NAME_RUBBER_PLANTATION.loc :{G=f}na kaučukové plantáži
STR_INDUSTRY_NAME_RUBBER_PLANTATION.small :{G=f}kaučuková plantáž
STR_INDUSTRY_NAME_RUBBER_PLANTATION.gen :kaučukové plantáže
STR_INDUSTRY_NAME_RUBBER_PLANTATION.loc :na kaučukové plantáži
STR_INDUSTRY_NAME_RUBBER_PLANTATION.small :kaučuková plantáž
STR_INDUSTRY_NAME_WATER_SUPPLY :{G=m}Zdroj vody
STR_INDUSTRY_NAME_WATER_SUPPLY.gen :{G=m}zdroje vody
STR_INDUSTRY_NAME_WATER_SUPPLY.loc :{G=m}ve zdroji vody
STR_INDUSTRY_NAME_WATER_SUPPLY.small :{G=m}zdroj vody
STR_INDUSTRY_NAME_WATER_SUPPLY.gen :zdroje vody
STR_INDUSTRY_NAME_WATER_SUPPLY.loc :ve zdroji vody
STR_INDUSTRY_NAME_WATER_SUPPLY.small :zdroj vody
STR_INDUSTRY_NAME_WATER_TOWER :{G=m}Vodojem
STR_INDUSTRY_NAME_WATER_TOWER.gen :{G=m}vodojemu
STR_INDUSTRY_NAME_WATER_TOWER.loc :{G=m}ve vodojemu
STR_INDUSTRY_NAME_WATER_TOWER.small :{G=m}vodojem
STR_INDUSTRY_NAME_WATER_TOWER.gen :vodojemu
STR_INDUSTRY_NAME_WATER_TOWER.loc :ve vodojemu
STR_INDUSTRY_NAME_WATER_TOWER.small :vodojem
STR_INDUSTRY_NAME_FACTORY_2 :{G=f}Továrna
STR_INDUSTRY_NAME_FACTORY_2.gen :{G=f}továrny
STR_INDUSTRY_NAME_FACTORY_2.loc :{G=f}v továrně
STR_INDUSTRY_NAME_FACTORY_2.small :{G=f}továrna
STR_INDUSTRY_NAME_FACTORY_2.gen :továrny
STR_INDUSTRY_NAME_FACTORY_2.loc :v továrně
STR_INDUSTRY_NAME_FACTORY_2.small :továrna
STR_INDUSTRY_NAME_FARM_2 :{G=f}Farma
STR_INDUSTRY_NAME_FARM_2.gen :{G=f}farmy
STR_INDUSTRY_NAME_FARM_2.loc :{G=f}na farmě
STR_INDUSTRY_NAME_FARM_2.small :{G=f}farma
STR_INDUSTRY_NAME_FARM_2.gen :farmy
STR_INDUSTRY_NAME_FARM_2.loc :na farmě
STR_INDUSTRY_NAME_FARM_2.small :farma
STR_INDUSTRY_NAME_LUMBER_MILL :{G=f}Pila
STR_INDUSTRY_NAME_LUMBER_MILL.gen :{G=f}pily
STR_INDUSTRY_NAME_LUMBER_MILL.loc :{G=f}na pile
STR_INDUSTRY_NAME_LUMBER_MILL.small :{G=f}pila
STR_INDUSTRY_NAME_LUMBER_MILL.gen :pily
STR_INDUSTRY_NAME_LUMBER_MILL.loc :na pile
STR_INDUSTRY_NAME_LUMBER_MILL.small :pila
STR_INDUSTRY_NAME_COTTON_CANDY_FOREST :{G=m}Les cukrové vaty
STR_INDUSTRY_NAME_COTTON_CANDY_FOREST.gen :{G=m}lesa cukrové vaty
STR_INDUSTRY_NAME_COTTON_CANDY_FOREST.loc :{G=m}v lese cukrové vaty
STR_INDUSTRY_NAME_COTTON_CANDY_FOREST.small :{G=m}les cukrové vaty
STR_INDUSTRY_NAME_COTTON_CANDY_FOREST.gen :lesa cukrové vaty
STR_INDUSTRY_NAME_COTTON_CANDY_FOREST.loc :v lese cukrové vaty
STR_INDUSTRY_NAME_COTTON_CANDY_FOREST.small :les cukrové vaty
STR_INDUSTRY_NAME_CANDY_FACTORY :{G=f}Továrna na sladkosti
STR_INDUSTRY_NAME_CANDY_FACTORY.gen :{G=f}továrny na sladkosti
STR_INDUSTRY_NAME_CANDY_FACTORY.loc :{G=f}továrně na sladkosti
STR_INDUSTRY_NAME_CANDY_FACTORY.small :{G=f}továrna na sladkosti
STR_INDUSTRY_NAME_CANDY_FACTORY.gen :továrny na sladkosti
STR_INDUSTRY_NAME_CANDY_FACTORY.loc :továrně na sladkosti
STR_INDUSTRY_NAME_CANDY_FACTORY.small :továrna na sladkosti
STR_INDUSTRY_NAME_BATTERY_FARM :{G=f}Farma na baterie
STR_INDUSTRY_NAME_BATTERY_FARM.gen :{G=f}farmy na baterie
STR_INDUSTRY_NAME_BATTERY_FARM.loc :{G=f}na farmě na baterie
STR_INDUSTRY_NAME_BATTERY_FARM.small :{G=f}farma na baterie
STR_INDUSTRY_NAME_BATTERY_FARM.gen :farmy na baterie
STR_INDUSTRY_NAME_BATTERY_FARM.loc :na farmě na baterie
STR_INDUSTRY_NAME_BATTERY_FARM.small :farma na baterie
STR_INDUSTRY_NAME_COLA_WELLS :{G=fp}Kolové studny
STR_INDUSTRY_NAME_COLA_WELLS.gen :{G=fp}kolových studen
STR_INDUSTRY_NAME_COLA_WELLS.loc :{G=fp}v kolových studnách
STR_INDUSTRY_NAME_COLA_WELLS.small :{G=fp}kolové studny
STR_INDUSTRY_NAME_COLA_WELLS.gen :kolových studen
STR_INDUSTRY_NAME_COLA_WELLS.loc :v kolových studnách
STR_INDUSTRY_NAME_COLA_WELLS.small :kolové studny
STR_INDUSTRY_NAME_TOY_SHOP :{G=n}Hračkářství
STR_INDUSTRY_NAME_TOY_SHOP.gen :{G=n}hračkářství
STR_INDUSTRY_NAME_TOY_SHOP.loc :{G=n}v hračkářství
STR_INDUSTRY_NAME_TOY_SHOP.small :{G=n}hračkářství
STR_INDUSTRY_NAME_TOY_SHOP.gen :hračkářství
STR_INDUSTRY_NAME_TOY_SHOP.loc :v hračkářství
STR_INDUSTRY_NAME_TOY_SHOP.small :hračkářství
STR_INDUSTRY_NAME_TOY_FACTORY :{G=f}Továrna na hračky
STR_INDUSTRY_NAME_TOY_FACTORY.gen :{G=f}továrny na hračky
STR_INDUSTRY_NAME_TOY_FACTORY.loc :{G=f}v továrně na hračky
STR_INDUSTRY_NAME_TOY_FACTORY.small :{G=f}továrna na hračky
STR_INDUSTRY_NAME_TOY_FACTORY.gen :továrny na hračky
STR_INDUSTRY_NAME_TOY_FACTORY.loc :v továrně na hračky
STR_INDUSTRY_NAME_TOY_FACTORY.small :továrna na hračky
STR_INDUSTRY_NAME_PLASTIC_FOUNTAINS :{G=fp}Plastové fontány
STR_INDUSTRY_NAME_PLASTIC_FOUNTAINS.gen :{G=fp}plastových fontán
STR_INDUSTRY_NAME_PLASTIC_FOUNTAINS.loc :{G=fp}v plastových fontánách
STR_INDUSTRY_NAME_PLASTIC_FOUNTAINS.small :{G=fp}plastové fontány
STR_INDUSTRY_NAME_PLASTIC_FOUNTAINS.gen :plastových fontán
STR_INDUSTRY_NAME_PLASTIC_FOUNTAINS.loc :v plastových fontánách
STR_INDUSTRY_NAME_PLASTIC_FOUNTAINS.small :plastové fontány
STR_INDUSTRY_NAME_FIZZY_DRINK_FACTORY :{G=f}Sodovkárna
STR_INDUSTRY_NAME_FIZZY_DRINK_FACTORY.gen :{G=f}sodovkárny
STR_INDUSTRY_NAME_FIZZY_DRINK_FACTORY.loc :{G=f}v sodovkárně
STR_INDUSTRY_NAME_FIZZY_DRINK_FACTORY.small :{G=f}sodovkárna
STR_INDUSTRY_NAME_FIZZY_DRINK_FACTORY.gen :sodovkárny
STR_INDUSTRY_NAME_FIZZY_DRINK_FACTORY.loc :v sodovkárně
STR_INDUSTRY_NAME_FIZZY_DRINK_FACTORY.small :sodovkárna
STR_INDUSTRY_NAME_BUBBLE_GENERATOR :{G=m}Generátor bublin
STR_INDUSTRY_NAME_BUBBLE_GENERATOR.gen :{G=m}generátoru bublin
STR_INDUSTRY_NAME_BUBBLE_GENERATOR.loc :{G=m}v generátoru bublin
STR_INDUSTRY_NAME_BUBBLE_GENERATOR.small :{G=m}generátor bublin
STR_INDUSTRY_NAME_BUBBLE_GENERATOR.gen :generátoru bublin
STR_INDUSTRY_NAME_BUBBLE_GENERATOR.loc :v generátoru bublin
STR_INDUSTRY_NAME_BUBBLE_GENERATOR.small :generátor bublin
STR_INDUSTRY_NAME_TOFFEE_QUARRY :{G=m}Karamelolom
STR_INDUSTRY_NAME_TOFFEE_QUARRY.gen :{G=m}karamelolomu
STR_INDUSTRY_NAME_TOFFEE_QUARRY.loc :{G=m}v karamelolomu
STR_INDUSTRY_NAME_TOFFEE_QUARRY.small :{G=m}karamelolom
STR_INDUSTRY_NAME_TOFFEE_QUARRY.gen :karamelolomu
STR_INDUSTRY_NAME_TOFFEE_QUARRY.loc :v karamelolomu
STR_INDUSTRY_NAME_TOFFEE_QUARRY.small :karamelolom
STR_INDUSTRY_NAME_SUGAR_MINE :{G=m}Cukerný důl
STR_INDUSTRY_NAME_SUGAR_MINE.gen :{G=m}cukerného dolu
STR_INDUSTRY_NAME_SUGAR_MINE.loc :{G=m}v cukerném dole
STR_INDUSTRY_NAME_SUGAR_MINE.small :{G=m}cukerný důl
STR_INDUSTRY_NAME_SUGAR_MINE.gen :cukerného dolu
STR_INDUSTRY_NAME_SUGAR_MINE.loc :v cukerném dole
STR_INDUSTRY_NAME_SUGAR_MINE.small :cukerný důl
############ WARNING, using range 0x6000 for strings that are stored in the savegame
############ These strings may never get a new id, or savegames will break!

@ -1120,7 +1120,7 @@ STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Firma indstilli
STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Firma indstilling (lagret i gemt spil; påvirker kun aktuelt selskab)
STR_CONFIG_SETTING_CATEGORY_HIDES :{BLACK}Vis alle søgeresultater ved at sætte{}{SILVER}Kategori {BLACK}to {WHITE}{STRING}
STR_CONFIG_SETTING_TYPE_HIDES :{BLACK}Vis alle søgeresultater ved at sætte{}{SILVER}Indtast {BLACK}til {WHITE}Alle Indstillingstyper
STR_CONFIG_SETTING_CATEGORY_AND_TYPE_HIDES :{BLACK}Vis alle søgeresultater ved at sætte {} {SILVER}Kategori {BLACK}til {WHITE} {STRING} {BLACK}og {SILVER} Indtast {BLACK}til {WHITE}Alle Indstillingstyper
STR_CONFIG_SETTING_CATEGORY_AND_TYPE_HIDES :{BLACK}Vis alle søgeresultater ved at sætte{} {SILVER}Kategori {BLACK}til {WHITE} {STRING} {BLACK}og {SILVER} Indtast {BLACK}til {WHITE}Alle Indstillingstyper
STR_CONFIG_SETTINGS_NONE :{WHITE}- Ingen -
STR_CONFIG_SETTING_OFF :Fra
@ -2601,29 +2601,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Marker
STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Snedækket land
STR_LAI_CLEAR_DESCRIPTION_DESERT :Ørken
STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} spor
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} spor med bloksignaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} spor med with pre-signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} spor med udgangssignaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} spor med kombinerede signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} spor med rute-signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} spor med en-vejs-signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} spor med blok- og pre-signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} spor med blok- og udgangs-signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} spor med blok og kombinerede signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} spor med blok- og rute-signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} spor med blok og en-vejs rute-signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} spor med pre- og udgangs-signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} spor med pre- og kombinerede signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} spor med pre- og rute-signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} spor med pre- og en-vejs rute-signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} spor med udgangs- og kombinerede signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} spor med udgangs- og rute-signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} spor med udgangs- og en-vejs rute-signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} spor med kombinerede og rute-signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} spor med kombinerede og en-vejs rute-signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} spor med rute- og en-vejs rute-signaler
STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} togdepot
STR_LAI_RAIL_DESCRIPTION_TRACK :Jernbane spor
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Jernbane spor med bloksignaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Jernbane spor med with pre-signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Jernbane spor med udgangssignaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Jernbane spor med kombinerede signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Jernbane spor med rute-signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Jernbane spor med en-vejs-signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Jernbane spor med blok- og pre-signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Jernbane spor med blok- og udgangs-signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Jernbane spor med blok og kombinerede signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Jernbane spor med blok- og rute-signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Jernbane spor med blok og en-vejs rute-signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Jernbane spor med pre- og udgangs-signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Jernbane spor med pre- og kombinerede signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Jernbane spor med pre- og rute-signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Jernbane spor med pre- og en-vejs rute-signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Jernbane spor med udgangs- og kombinerede signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Jernbane spor med udgangs- og rute-signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Jernbane spor med udgangs- og en-vejs rute-signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Jernbane spor med kombinerede og rute-signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Jernbane spor med kombinerede og en-vejs rute-signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Jernbane spor med rute- og en-vejs rute-signaler
STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Jernbane togdepot
STR_LAI_ROAD_DESCRIPTION_ROAD :Vej
STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Vej med gadelygter
@ -2687,7 +2687,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Land ejet af se
STR_ABOUT_OPENTTD :{WHITE}Om OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Original copyright {COPYRIGHT} 1995 Chris Sawyer, Alle rettigheder reserveret
STR_ABOUT_VERSION :{BLACK}OpenTTD version {REV}
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 OpenTTD teamet
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 OpenTTD teamet
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Gem spil
@ -2874,7 +2874,7 @@ STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK}Gå til
STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Tidligere grafikelement
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Fortsæt til den forrige normal sprite, springe over nogen pseudo / recolour / FONT sprites og indpakning rundt fra den første sprite til det sidste
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Repræsentation af den markerede sprite. Justeringen ignoreres når denne sprite tegnes.
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Flyt spriten rundt for at ændre X- og Y-forskydningen
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Flyt spriten rundt for at ændre X- og Y-forskydningen. Ctrl+Klik for at flytte spriten otte enheder af gangen
STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Nulstil relativ
STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Nulstil den nuværende relative forskydning
STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}X-forskydning: {NUM}, Y-forskydning: {NUM} (Absolut)
@ -2889,7 +2889,7 @@ STR_NEWGRF_ERROR_MSG_INFO :{SILVER}{STRING
STR_NEWGRF_ERROR_MSG_WARNING :{RED}Advarsel: {SILVER}{STRING}
STR_NEWGRF_ERROR_MSG_ERROR :{RED}Fejl: {SILVER}{STRING}
STR_NEWGRF_ERROR_MSG_FATAL :{RED}Fatalt: {SILVER}{STRING}
STR_NEWGRF_ERROR_FATAL_POPUP :{WHITE}En fatal NewGRF-fejl er opstået: {}{STRING}
STR_NEWGRF_ERROR_FATAL_POPUP :{WHITE}En fatal NewGRF-fejl er opstået:{}{STRING}
STR_NEWGRF_ERROR_VERSION_NUMBER :{1:STRING} virker ikke med TTDPatch-versionen rapporteret af OpenTTD.
STR_NEWGRF_ERROR_DOS_OR_WINDOWS :{1:STRING} er beregnet til {STRING}-versionen af TTD.
STR_NEWGRF_ERROR_UNSET_SWITCH :{1:STRING} er designet til brug sammen med {STRING}
@ -3557,7 +3557,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} når d
STR_REPLACE_VEHICLES_STOP :{BLACK}Stop udskiftning
STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Tryk for at stoppe udskiftningen at den køretøjstype, som du har valgt til venstre
STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Udskifter: {ORANGE}{STRING}
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Skift imellem lokomotiv- og vognudskiftningsvindue
STR_REPLACE_ENGINES :Lokomotiver
STR_REPLACE_WAGONS :Vogne

@ -30,7 +30,7 @@ STR_CARGO_PLURAL_NOTHING :
STR_CARGO_PLURAL_PASSENGERS :Passagiers
STR_CARGO_PLURAL_COAL :Kolen
STR_CARGO_PLURAL_MAIL :Post
STR_CARGO_PLURAL_OIL :Olie
STR_CARGO_PLURAL_OIL :Aardolie
STR_CARGO_PLURAL_LIVESTOCK :Vee
STR_CARGO_PLURAL_GOODS :Goederen
STR_CARGO_PLURAL_GRAIN :Graan
@ -64,7 +64,7 @@ STR_CARGO_SINGULAR_NOTHING :
STR_CARGO_SINGULAR_PASSENGER :Passagier
STR_CARGO_SINGULAR_COAL :Kolen
STR_CARGO_SINGULAR_MAIL :Post
STR_CARGO_SINGULAR_OIL :Olie
STR_CARGO_SINGULAR_OIL :Aardolie
STR_CARGO_SINGULAR_LIVESTOCK :Vee
STR_CARGO_SINGULAR_GOODS :Goederen
STR_CARGO_SINGULAR_GRAIN :Graan
@ -98,7 +98,7 @@ STR_QUANTITY_NOTHING :
STR_QUANTITY_PASSENGERS :{COMMA}{NBSP}passagier{P "" s}
STR_QUANTITY_COAL :{WEIGHT_LONG} kolen
STR_QUANTITY_MAIL :{COMMA}{NBSP}zak{P "" ken} post
STR_QUANTITY_OIL :{VOLUME_LONG} olie
STR_QUANTITY_OIL :{VOLUME_LONG} Vaten Olie
STR_QUANTITY_LIVESTOCK :{COMMA}{NBSP}stuk{P "" s} vee
STR_QUANTITY_GOODS :{COMMA}{NBSP}krat{P "" ten} goederen
STR_QUANTITY_GRAIN :{WEIGHT_LONG} graan
@ -168,7 +168,7 @@ STR_ABBREV_ALL :{TINY_FONT}ALLE
STR_PASSENGERS :{COMMA}{NBSP}passagier{P "" s}
STR_BAGS :{COMMA}{NBSP}zak{P "" ken}
STR_TONS :{COMMA}{NBSP}ton
STR_LITERS :{COMMA}{NBSP}liter
STR_LITERS :{COMMA}{NBSP}liter{P "" s}
STR_ITEMS :{COMMA}{NBSP}stuk{P "" s}
STR_CRATES :{COMMA}{NBSP}krat{P "" ten}
@ -2601,29 +2601,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Akkers
STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Sneeuw
STR_LAI_CLEAR_DESCRIPTION_DESERT :Woestijn
STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} spoor
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} spoor met blokseinen
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} spoor met voorseinen
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} spoor met exitseinen
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} spoor met combo-seinen
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} spoor met routeseinen
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} spoor met eenrichtingsseinen
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} spoor met blok en voorseinen
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} spoor met blok en exitseinen
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} spoor met blok en combo-seinen
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} spoor met blok en routeseinen
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} spoor met blok en eenrichtingsseinen
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} spoor met voor- en exitseinen
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} spoor met voor- en combo-seinen
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} spoor met voor- en routeseinen
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} spoor met voor- en eenrichtingsseinen
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} spoor met exit- en combo-seinen
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} spoor em exit- en routeseinen
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} spoor met exit- en eenrichtingsseinen
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} spoor met combo- en routeseinen
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} Spoor met combo- en eenrichtingssein
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} spoor met route en eenrichtingssein
STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} trein depot
STR_LAI_RAIL_DESCRIPTION_TRACK :Spoorweg spoor
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Spoorweg spoor met blokseinen
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Spoorweg spoor met voorseinen
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Spoorweg spoor met exitseinen
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Spoorweg spoor met combo-seinen
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Spoorweg spoor met routeseinen
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Spoorweg spoor met eenrichtingsseinen
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Spoorweg spoor met blok en voorseinen
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Spoorweg spoor met blok en exitseinen
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Spoorweg spoor met blok en combo-seinen
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Spoorweg spoor met blok en routeseinen
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Spoorweg spoor met blok en eenrichtingsseinen
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Spoorweg spoor met voor- en exitseinen
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Spoorweg spoor met voor- en combo-seinen
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Spoorweg spoor met voor- en routeseinen
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Spoorweg spoor met voor- en eenrichtingsseinen
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Spoorweg spoor met exit- en combo-seinen
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Spoorweg spoor em exit- en routeseinen
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Spoorweg spoor met exit- en eenrichtingsseinen
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Spoorweg spoor met combo- en routeseinen
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Spoorweg Spoor met combo- en eenrichtingssein
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Spoorweg spoor met route en eenrichtingssein
STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Spoorweg trein depot
STR_LAI_ROAD_DESCRIPTION_ROAD :Weg
STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Weg met straatlantaarns
@ -2687,7 +2687,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terrein in bedr
STR_ABOUT_OPENTTD :{WHITE}Over OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Originele copyright {COPYRIGHT} 1995 Chris Sawyer, alle rechten voorbehouden
STR_ABOUT_VERSION :{BLACK}OpenTTD versie {REV}
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 Het OpenTTD team
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 Het OpenTTD team
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Spel Opslaan
@ -2874,7 +2874,7 @@ STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK}Ga naar
STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Vorige afbeelding
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Ga naar vorige normale afbeelding, sla alle pseudo/herkleur/lettertype afbeeldingen over en ga naar het einde bij het begin
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Voorbeeld van de huidige afbeelding. De uitlijning wordt genegeerd bij het weergeven van de afbeelding
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Afbeelding verplaatsen, dit verandert X en Y offsets
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Afbeelding verplaatsen, dit verandert X en Y offsets. Ctr+klik om de afbeelding 8 eenheden per keer te verplaatsen.
STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Herstel relatief
STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Herstel de huidige relative offsets
STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}X offset: {NUM}, Y offset: {NUM} (Absoluut)
@ -2889,7 +2889,7 @@ STR_NEWGRF_ERROR_MSG_INFO :{SILVER}{STRING
STR_NEWGRF_ERROR_MSG_WARNING :{RED}Waarschuwing: {SILVER}{STRING}
STR_NEWGRF_ERROR_MSG_ERROR :{RED}Fout: {SILVER}{STRING}
STR_NEWGRF_ERROR_MSG_FATAL :{RED}Fatale fout: {SILVER}{STRING}
STR_NEWGRF_ERROR_FATAL_POPUP :{WHITE}Een fatale NewGRF-fout is ontstaan: {}{STRING}
STR_NEWGRF_ERROR_FATAL_POPUP :{WHITE}Een fatale NewGRF-fout is ontstaan:{}{STRING}
STR_NEWGRF_ERROR_VERSION_NUMBER :{1:STRING} werkt niet met de TTDPatch-versie die is opgegeven door OpenTTD
STR_NEWGRF_ERROR_DOS_OR_WINDOWS :{1:STRING} is voor de {STRING} versie van TTD
STR_NEWGRF_ERROR_UNSET_SWITCH :{1:STRING} is ontwikkeld voor {STRING}
@ -2907,7 +2907,7 @@ STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING
STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Bevat meerdere acties 8 (sprite {3:NUM})
STR_NEWGRF_ERROR_READ_BOUNDS :Voorbij het einde van pseudo-sprite gelezen (sprite {3:NUM})
STR_NEWGRF_ERROR_MISSING_SPRITES :{WHITE}De huidige basis graphics-set mist een aantal sprites..{}Werk de graphics-set bij aub
STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}De momenteel gebruikte basis graphics set mist een aantal sprites. {} Werk de ingestelde basis graphics bij. {} Aangezien u een {YELLOW} ontwikkeling momentopname van OpenTTD{WHITE} speelt, heeft u ook een {YELLOW} ontwikkeling snapshot van de basis graphics set{WHITE} nodig
STR_NEWGRF_ERROR_MISSING_SPRITES_UNSTABLE :{WHITE}De momenteel gebruikte basis graphics set mist een aantal sprites.{} Werk de ingestelde basis graphics bij.{} Aangezien u een {YELLOW} ontwikkeling momentopname van OpenTTD{WHITE} speelt, heeft u ook een {YELLOW} ontwikkeling snapshot van de basis graphics set{WHITE} nodig
STR_NEWGRF_ERROR_GRM_FAILED :Gevraagde GRF middelen niet beschikbaar (sprite {3:NUM})
STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} is uitgeschakeld door {STRING}
STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Ongeldig/onbekend sprite lay-out-formaat (sprite {3:NUM})
@ -3557,7 +3557,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} als ou
STR_REPLACE_VEHICLES_STOP :{BLACK}Stop het vervangen
STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Klik op deze knop als je de aan de linkerkant geselecteerde locomotief niet wilt vervangen
STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Aan het vervangen: {ORANGE}{STRING}
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Wissel tussen locomotief- en wagonvervangvensters
STR_REPLACE_ENGINES :Motoren
STR_REPLACE_WAGONS :Wagons
@ -3974,7 +3973,7 @@ STR_AI_DEBUG_SELECT_AI_TOOLTIP :{BLACK}Toon deb
STR_AI_GAME_SCRIPT :{BLACK}Game Script
STR_AI_GAME_SCRIPT_TOOLTIP :{BLACK}Controleer het Game Script log
STR_ERROR_AI_NO_AI_FOUND :Geen geschikte AI gevonden. {} Deze AI is een 'dummy' en voert niets uit.{}Verschillende AI's kunnen worden gedownload via het 'Online Content' systeem
STR_ERROR_AI_NO_AI_FOUND :Geen geschikte AI gevonden.{} Deze AI is een 'dummy' en voert niets uit.{}Verschillende AI's kunnen worden gedownload via het 'Online Content' systeem
STR_ERROR_AI_PLEASE_REPORT_CRASH :{WHITE}Eén van de actieve scripts is vastgelopen. Meld dit a.u.b. bij de auteur van dit script met een schermprint van het AI/Spel script Debugscherm
STR_ERROR_AI_DEBUG_SERVER_ONLY :{YELLOW}AI/Spel script debugvenster is alleen beschikbaar voor de server
@ -4357,7 +4356,7 @@ STR_ERROR_CAN_T_PURCHASE_THIS_LAND :{WHITE}Kan dit
STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... het is al van jou!
# Group related errors
STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Kan groep niet maken...
STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Kan groep niet creëren...
STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}Kan deze groep niet verwijderen...
STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}Kan deze groep niet hernoemen...
STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}Kan huidige groep niet instellen...

@ -2590,6 +2590,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Airport
STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{RAW_STRING}
STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Cargo accepted: {LTBLUE}
STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Rail type: {LTBLUE}{STRING}
STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Rail speed limit: {LTBLUE}{VELOCITY}
STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Road speed limit: {LTBLUE}{VELOCITY}
@ -2602,29 +2603,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Fields
STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Snow-covered land
STR_LAI_CLEAR_DESCRIPTION_DESERT :Desert
STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} track
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} track with block signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} track with pre-signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} track with exit-signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} track with combo-signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} track with path signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} track with one-way path signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} track with block and pre-signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} track with block and exit-signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} track with block and combo-signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} track with block and path signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} track with block and one-way path signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} track with pre- and exit-signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} track with pre- and combo-signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} track with pre- and path signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} track with pre- and one-way path signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} track with exit- and combo-signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} track with exit- and path signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} track with exit- and one-way path signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} track with combo- and path signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} track with combo- and one-way path signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} track with path and one-way path signals
STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} train depot
STR_LAI_RAIL_DESCRIPTION_TRACK :Railway track
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Railway track with block signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Railway track with pre-signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Railway track with exit-signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Railway track with combo-signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Railway track with path signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Railway track with one-way path signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Railway track with block and pre-signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Railway track with block and exit-signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Railway track with block and combo-signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Railway track with block and path signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Railway track with block and one-way path signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Railway track with pre- and exit-signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Railway track with pre- and combo-signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Railway track with pre- and path signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Railway track with pre- and one-way path signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Railway track with exit- and combo-signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Railway track with exit- and path signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Railway track with exit- and one-way path signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Railway track with combo- and path signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Railway track with combo- and one-way path signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Railway track with path and one-way path signals
STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Railway train depot
STR_LAI_ROAD_DESCRIPTION_ROAD :Road
STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Road with street lights
@ -2688,7 +2689,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Company-owned l
STR_ABOUT_OPENTTD :{WHITE}About OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Original copyright {COPYRIGHT} 1995 Chris Sawyer, All rights reserved
STR_ABOUT_VERSION :{BLACK}OpenTTD version {REV}
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 The OpenTTD team
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 The OpenTTD team
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Save Game
@ -2875,7 +2876,7 @@ STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK}Go to th
STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Previous sprite
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Proceed to the previous normal sprite, skipping any pseudo/recolour/font sprites and wrapping around from the first sprite to the last
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Representation of the currently selected sprite. The alignment is ignored when drawing this sprite
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Move the sprite around, changing the X and Y offsets
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Move the sprite around, changing the X and Y offsets. Ctrl+Click to move the sprite eight units at a time
STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Reset relative
STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Reset the current relative offsets
STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}X offset: {NUM}, Y offset: {NUM} (Absolute)
@ -3558,10 +3559,10 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} when o
STR_REPLACE_VEHICLES_STOP :{BLACK}Stop Replacing Vehicles
STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Press to stop the replacement of the engine type selected on the left
STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Replacing: {ORANGE}{STRING}
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Switch between engine and wagon replacement windows
STR_REPLACE_ENGINES :Engines
STR_REPLACE_WAGONS :Wagons
STR_REPLACE_ALL_RAILTYPE :All rail vehicles
STR_REPLACE_HELP_RAILTYPE :{BLACK}Choose the rail type you want to replace engines for
STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Displays which engine the left selected engine is being replaced with, if any

@ -7,7 +7,7 @@
##digitsepcur ,
##decimalsep .
##winlangid 0x0c09
##grflangid 0x3D
##grflangid 0x3d
# $Id$
@ -2576,29 +2576,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Fields
STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Snow-covered land
STR_LAI_CLEAR_DESCRIPTION_DESERT :Desert
STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} track
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :{STRING} track with block signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :{STRING} track with pre-signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :{STRING} track with exit-signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :{STRING} track with combo-signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :{STRING} track with path signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :{STRING} track with one-way path signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :{STRING} track with block and pre-signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :{STRING} track with block and exit-signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :{STRING} track with block and combo-signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :{STRING} track with block and path signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :{STRING} track with block and one-way path signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :{STRING} track with pre- and exit-signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :{STRING} track with pre- and combo-signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :{STRING} track with pre- and path signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :{STRING} track with pre- and one-way path signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :{STRING} track with exit- and combo-signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :{STRING} track with exit- and path signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :{STRING} track with exit- and one-way path signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :{STRING} track with combo- and path signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :{STRING} track with combo- and one-way path signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :{STRING} track with path and one-way path signals
STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} train depot
STR_LAI_RAIL_DESCRIPTION_TRACK :Railway track
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Railway track with block signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Railway track with pre-signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Railway track with exit-signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Railway track with combo-signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Railway track with path signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Railway track with one-way path signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Railway track with block and pre-signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Railway track with block and exit-signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Railway track with block and combo-signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Railway track with block and path signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Railway track with block and one-way path signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Railway track with pre- and exit-signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Railway track with pre- and combo-signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Railway track with pre- and path signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Railway track with pre- and one-way path signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Railway track with exit- and combo-signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Railway track with exit- and path signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Railway track with exit- and one-way path signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Railway track with combo- and path signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Railway track with combo- and one-way path signals
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Railway track with path and one-way path signals
STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Railway train depot
STR_LAI_ROAD_DESCRIPTION_ROAD :Road
STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Road with street lights
@ -2662,7 +2662,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Company-owned l
STR_ABOUT_OPENTTD :{WHITE}About OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Original copyright {COPYRIGHT} 1995 Chris Sawyer, All rights reserved
STR_ABOUT_VERSION :{BLACK}OpenTTD version {REV}
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2015 The OpenTTD team
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2016 The OpenTTD team
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Save Game
@ -2856,7 +2856,7 @@ STR_NEWGRF_ERROR_MSG_INFO :{SILVER}{STRING
STR_NEWGRF_ERROR_MSG_WARNING :{RED}Warning: {SILVER}{STRING}
STR_NEWGRF_ERROR_MSG_ERROR :{RED}Error: {SILVER}{STRING}
STR_NEWGRF_ERROR_MSG_FATAL :{RED}Fatal: {SILVER}{STRING}
STR_NEWGRF_ERROR_FATAL_POPUP :{WHITE}A fatal NewGRF error has occurred: {}{STRING}
STR_NEWGRF_ERROR_FATAL_POPUP :{WHITE}A fatal NewGRF error has occurred:{}{STRING}
STR_NEWGRF_ERROR_VERSION_NUMBER :{1:STRING} will not work with the TTDPatch version reported by OpenTTD
STR_NEWGRF_ERROR_DOS_OR_WINDOWS :{1:STRING} is for the {STRING} version of TTD
STR_NEWGRF_ERROR_UNSET_SWITCH :{1:STRING} is designed to be used with {STRING}
@ -3508,7 +3508,6 @@ STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} when o
STR_REPLACE_VEHICLES_STOP :{BLACK}Stop Replacing Vehicles
STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Press to stop the replacement of the engine type selected on the left
STR_REPLACE_ENGINE_WAGON_SELECT :{BLACK}Replacing: {ORANGE}{STRING}
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Switch between engine and wagon replacement windows
STR_REPLACE_ENGINES :Engines
STR_REPLACE_WAGONS :Wagons

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save