Merge branch 'master' into jgrpp
# Conflicts: # projects/openttd_vs100.vcxproj # projects/openttd_vs100.vcxproj.filters # projects/openttd_vs80.vcproj # projects/openttd_vs90.vcproj # src/viewport.cpp
This commit is contained in:
@@ -650,6 +650,7 @@ STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLA
|
||||
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
|
||||
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
|
||||
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------
|
||||
STR_MUSIC_TITLE_NOMUSIC :{TINY_FONT}{DKGREEN}Tidak ada musik yang tersedia
|
||||
STR_MUSIC_TITLE_NAME :{TINY_FONT}{DKGREEN}"{STRING}"
|
||||
STR_MUSIC_TRACK :{TINY_FONT}{BLACK}Track
|
||||
STR_MUSIC_XTITLE :{TINY_FONT}{BLACK}Titel
|
||||
@@ -670,10 +671,12 @@ STR_MUSIC_TOOLTIP_TOGGLE_PROGRAM_SHUFFLE :{BLACK}Acak/Uru
|
||||
STR_MUSIC_TOOLTIP_SHOW_MUSIC_TRACK_SELECTION :{BLACK}Tampilkan jendela pemilihan judul musik
|
||||
|
||||
# Playlist window
|
||||
STR_PLAYLIST_MUSIC_SELECTION_SETNAME :{WHITE}Program Musik - '{STRING}'
|
||||
STR_PLAYLIST_TRACK_NAME :{TINY_FONT}{LTBLUE}{ZEROFILL_NUM} "{STRING}"
|
||||
STR_PLAYLIST_TRACK_INDEX :{TINY_FONT}{BLACK}Daftar rel
|
||||
STR_PLAYLIST_PROGRAM :{TINY_FONT}{BLACK}Program - '{STRING}'
|
||||
STR_PLAYLIST_CLEAR :{TINY_FONT}{BLACK}Kosong
|
||||
STR_PLAYLIST_CHANGE_SET :{BLACK}Gantikan set
|
||||
STR_PLAYLIST_TOOLTIP_CLEAR_CURRENT_PROGRAM_CUSTOM1 :{BLACK}Hapus program saat ini (hanya Bebas 1 atau Bebas 2)
|
||||
STR_PLAYLIST_TOOLTIP_CLICK_TO_ADD_TRACK :{BLACK}Klik pada musik track untuk menambah pada program sekarang (hanya Bebas 1 atau Bebas 2)
|
||||
STR_PLAYLIST_TOOLTIP_CLICK_TO_REMOVE_TRACK :{BLACK}Klik pada track musik untuk menghapusnya dari program saat ini. (Bebas 1 atau Bebas 2 saja)
|
||||
@@ -810,6 +813,7 @@ STR_NEWS_MERGER_TAKEOVER_TITLE :{BIG_FONT}{BLAC
|
||||
STR_PRESIDENT_NAME_MANAGER :{BLACK}{PRESIDENT_NAME}{}(Pimpinan)
|
||||
|
||||
STR_NEWS_NEW_TOWN :{BLACK}{BIG_FONT}{STRING} menjadi sponsor pembangunan kota baru {TOWN}!
|
||||
STR_NEWS_NEW_TOWN_UNSPONSORED :{BLACK}{BIG_FONT}Kota baru yang bernama {TOWN} baru dibuatkan!
|
||||
|
||||
STR_NEWS_INDUSTRY_CONSTRUCTION :{BIG_FONT}{BLACK}Ada pembangunan {STRING} baru di dekat {TOWN}!
|
||||
STR_NEWS_INDUSTRY_PLANTED :{BIG_FONT}{BLACK}{STRING} baru sedang ditanam di dekat {TOWN}!
|
||||
@@ -895,7 +899,7 @@ STR_GAME_OPTIONS_CURRENCY_JPY :Yen Jepang (JPY
|
||||
STR_GAME_OPTIONS_CURRENCY_ATS :Shilling Austria (ATS)
|
||||
STR_GAME_OPTIONS_CURRENCY_BEF :Franc Belgia (BEF)
|
||||
STR_GAME_OPTIONS_CURRENCY_CHF :Franc Swiss (CHF)
|
||||
STR_GAME_OPTIONS_CURRENCY_CZK :Koruna Czech (CZK)
|
||||
STR_GAME_OPTIONS_CURRENCY_CZK :Koruna Ceko (CZK)
|
||||
STR_GAME_OPTIONS_CURRENCY_DEM :Deutschmark (DEM)
|
||||
STR_GAME_OPTIONS_CURRENCY_DKK :Krone Denmark (DKK)
|
||||
STR_GAME_OPTIONS_CURRENCY_ESP :Peseta Spanyol (ESP)
|
||||
@@ -909,7 +913,7 @@ STR_GAME_OPTIONS_CURRENCY_NLG :Dutch Guilder (
|
||||
STR_GAME_OPTIONS_CURRENCY_NOK :Krone Norwegia (NOK)
|
||||
STR_GAME_OPTIONS_CURRENCY_PLN :Zloty Polandia (PLN)
|
||||
STR_GAME_OPTIONS_CURRENCY_RON :Leu Romania (RON)
|
||||
STR_GAME_OPTIONS_CURRENCY_RUR :Rubles Rusia (RUR)
|
||||
STR_GAME_OPTIONS_CURRENCY_RUR :Rubel Rusia (RUR)
|
||||
STR_GAME_OPTIONS_CURRENCY_SIT :Tolar Slovenia (SIT)
|
||||
STR_GAME_OPTIONS_CURRENCY_SEK :Krona Swedia (SEK)
|
||||
STR_GAME_OPTIONS_CURRENCY_TRY :Lira Turki (TRY)
|
||||
@@ -922,6 +926,7 @@ STR_GAME_OPTIONS_CURRENCY_ZAR :Rand Afrika Sel
|
||||
STR_GAME_OPTIONS_CURRENCY_CUSTOM :Atur sendiri...
|
||||
STR_GAME_OPTIONS_CURRENCY_GEL :Lari Georgia (GEL)
|
||||
STR_GAME_OPTIONS_CURRENCY_IRR :Rial Iran (IRR)
|
||||
STR_GAME_OPTIONS_CURRENCY_RUB :Rubel Rusia Baru (RUB)
|
||||
############ end of currency region
|
||||
|
||||
STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Kendaraan jalan raya
|
||||
@@ -938,7 +943,7 @@ STR_GAME_OPTIONS_TOWN_NAME_FRENCH :Perancis
|
||||
STR_GAME_OPTIONS_TOWN_NAME_GERMAN :Jerman
|
||||
STR_GAME_OPTIONS_TOWN_NAME_ADDITIONAL_ENGLISH :Inggris (Tambahan)
|
||||
STR_GAME_OPTIONS_TOWN_NAME_LATIN_AMERICAN :Amerika-Latin
|
||||
STR_GAME_OPTIONS_TOWN_NAME_SILLY :Silly
|
||||
STR_GAME_OPTIONS_TOWN_NAME_SILLY :Lucu
|
||||
STR_GAME_OPTIONS_TOWN_NAME_SWEDISH :Swedia
|
||||
STR_GAME_OPTIONS_TOWN_NAME_DUTCH :Belanda
|
||||
STR_GAME_OPTIONS_TOWN_NAME_FINNISH :Finlandia
|
||||
@@ -948,7 +953,7 @@ STR_GAME_OPTIONS_TOWN_NAME_NORWEGIAN :Norwegia
|
||||
STR_GAME_OPTIONS_TOWN_NAME_HUNGARIAN :Hungaria
|
||||
STR_GAME_OPTIONS_TOWN_NAME_AUSTRIAN :Austria
|
||||
STR_GAME_OPTIONS_TOWN_NAME_ROMANIAN :Romania
|
||||
STR_GAME_OPTIONS_TOWN_NAME_CZECH :Czechnya
|
||||
STR_GAME_OPTIONS_TOWN_NAME_CZECH :Ceko
|
||||
STR_GAME_OPTIONS_TOWN_NAME_SWISS :Swiss
|
||||
STR_GAME_OPTIONS_TOWN_NAME_DANISH :Denmark
|
||||
STR_GAME_OPTIONS_TOWN_NAME_TURKISH :Turki
|
||||
@@ -1334,6 +1339,10 @@ STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_HELPTEXT :Warna daratan d
|
||||
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_GREEN :Hijau
|
||||
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_DARK_GREEN :Hijau Gelap
|
||||
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :Violet
|
||||
STR_CONFIG_SETTING_SCROLLMODE_HELPTEXT :Kelakuan waktu menggerakkan peta
|
||||
STR_CONFIG_SETTING_SCROLLMODE_DEFAULT :Gerakan viewport memakai tombol kanan tetikus, posisi tetikus terkunci
|
||||
STR_CONFIG_SETTING_SCROLLMODE_RMB_LOCKED :Gerakan peta memakai tombol kanan tetikus, posisi tetikus terkunci
|
||||
STR_CONFIG_SETTING_SCROLLMODE_RMB :Gerakan peta memakai tombol kanan tetikus
|
||||
STR_CONFIG_SETTING_SMOOTH_SCROLLING :Pergeseran pandangan viewport secara halus: {STRING}
|
||||
STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Menyetel bagaimana tampilan utama menggeser posisi di peta kecil. Jika dinyalakan, peta akan bergeser secara halus. Jika dimatikan, peta langsung menuju tempat yang di klik
|
||||
STR_CONFIG_SETTING_MEASURE_TOOLTIP :Tampilkan ukuran ketika menggunakan alat pembangun: {STRING}
|
||||
@@ -1982,7 +1991,7 @@ STR_NETWORK_LANG_FRENCH :Perancis
|
||||
STR_NETWORK_LANG_BRAZILIAN :Brazil
|
||||
STR_NETWORK_LANG_BULGARIAN :Bulgaria
|
||||
STR_NETWORK_LANG_CHINESE :China
|
||||
STR_NETWORK_LANG_CZECH :Czech
|
||||
STR_NETWORK_LANG_CZECH :Ceko
|
||||
STR_NETWORK_LANG_DANISH :Denmark
|
||||
STR_NETWORK_LANG_DUTCH :Belanda
|
||||
STR_NETWORK_LANG_ESPERANTO :Esperanto
|
||||
@@ -1997,7 +2006,7 @@ STR_NETWORK_LANG_NORWEGIAN :Norwegia
|
||||
STR_NETWORK_LANG_POLISH :Polandia
|
||||
STR_NETWORK_LANG_PORTUGUESE :Portugis
|
||||
STR_NETWORK_LANG_ROMANIAN :Rumania
|
||||
STR_NETWORK_LANG_RUSSIAN :Russia
|
||||
STR_NETWORK_LANG_RUSSIAN :Rusia
|
||||
STR_NETWORK_LANG_SLOVAK :Slovakia
|
||||
STR_NETWORK_LANG_SLOVENIAN :Slovenia
|
||||
STR_NETWORK_LANG_SPANISH :Spanyol
|
||||
@@ -2274,6 +2283,7 @@ STR_LINKGRAPH_LEGEND_CAPTION :{BLACK}Legenda
|
||||
STR_LINKGRAPH_LEGEND_ALL :{BLACK}Semua
|
||||
STR_LINKGRAPH_LEGEND_NONE :{BLACK}Tidak ada
|
||||
STR_LINKGRAPH_LEGEND_SELECT_COMPANIES :{BLACK}Pilih perusahaan yang akan ditampilkan
|
||||
STR_LINKGRAPH_LEGEND_COMPANY_TOOLTIP :{BLACK}{STRING}{}{COMPANY}
|
||||
|
||||
# Linkgraph legend window and linkgraph legend in smallmap
|
||||
STR_LINKGRAPH_LEGEND_UNUSED :{TINY_FONT}{BLACK}tak terpakai
|
||||
@@ -2683,9 +2693,34 @@ STR_ABOUT_VERSION :{BLACK}OpenTTD
|
||||
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 Tim OpenTTD
|
||||
|
||||
# Framerate display window
|
||||
STR_FRAMERATE_CAPTION_SMALL :{STRING}{WHITE} ({DECIMAL}x)
|
||||
STR_FRAMERATE_RATE_GAMELOOP :{WHITE}Rata simulasi: {STRING}
|
||||
STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK}Beberapa cepat permainan lagi berjalan, dibanding dengan kecepatan diharapkan memakai rata simulasi biasa.
|
||||
STR_FRAMERATE_CURRENT :{WHITE}Sekarang
|
||||
STR_FRAMERATE_DATA_POINTS :{WHITE}Data tergantung oleh ukuran {COMMA}
|
||||
STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL}{WHITE} ms
|
||||
STR_FRAMERATE_MS_WARN :{YELLOW}{DECIMAL}{WHITE} ms
|
||||
STR_FRAMERATE_MS_BAD :{RED}{DECIMAL}{WHITE} ms
|
||||
STR_FRAMERATE_GRAPH_MILLISECONDS :{TINY_FONT}{COMMA} ms
|
||||
STR_FRAMERATE_GRAPH_SECONDS :{TINY_FONT}{COMMA} s
|
||||
############ Leave those lines in this order!!
|
||||
STR_FRAMERATE_GL_ECONOMY :{WHITE} Penanganan kargo:
|
||||
STR_FRAMERATE_GL_TRAINS :{WHITE} Titik kereta:
|
||||
STR_FRAMERATE_GL_ROADVEHS :{WHITE} Titik kendaraan:
|
||||
STR_FRAMERATE_GL_SHIPS :{WHITE} Titik kapal:
|
||||
STR_FRAMERATE_GL_AIRCRAFT :{WHITE} Titik pesawat:
|
||||
STR_FRAMERATE_GL_LANDSCAPE :{WHITE} Titik dunia:
|
||||
STR_FRAMERATE_DRAWING_VIEWPORTS :{WHITE} Viewport dunia:
|
||||
STR_FRAMERATE_SOUND :{WHITE}Mixing suara:
|
||||
############ End of leave-in-this-order
|
||||
############ Leave those lines in this order!!
|
||||
STR_FRAMETIME_CAPTION_GL_ECONOMY :Penanganan kargo
|
||||
STR_FRAMETIME_CAPTION_GL_TRAINS :Titik kereta
|
||||
STR_FRAMETIME_CAPTION_GL_ROADVEHS :Titik kendaraan
|
||||
STR_FRAMETIME_CAPTION_GL_SHIPS :Titik kapal
|
||||
STR_FRAMETIME_CAPTION_GL_AIRCRAFT :Titik pesawat
|
||||
STR_FRAMETIME_CAPTION_GL_LANDSCAPE :Titik dunia
|
||||
STR_FRAMETIME_CAPTION_SOUND :Mixing suara
|
||||
############ End of leave-in-this-order
|
||||
|
||||
|
||||
@@ -2976,6 +3011,7 @@ STR_TOWN_POPULATION :{BLACK}Populasi
|
||||
STR_TOWN_VIEW_TOWN_CAPTION :{WHITE}{TOWN}
|
||||
STR_TOWN_VIEW_CITY_CAPTION :{WHITE}{TOWN} (City)
|
||||
STR_TOWN_VIEW_POPULATION_HOUSES :{BLACK}Populasi: {ORANGE}{COMMA}{BLACK} Rumah: {ORANGE}{COMMA}
|
||||
STR_TOWN_VIEW_CARGO_LAST_MONTH_MAX :{BLACK}{CARGO_LIST} bulan lalu: {ORANGE}{COMMA}{BLACK} max: {ORANGE}{COMMA}
|
||||
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH :{BLACK}Kargo untuk pertumbuhan kota:
|
||||
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_GENERAL :{RED} Butuh {ORANGE}{STRING}
|
||||
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_WINTER :{ORANGE}{STRING}{BLACK} dibutuhkan saat musim dingin
|
||||
@@ -3288,6 +3324,8 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Membutuh
|
||||
STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Membutuhkan: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING}
|
||||
############ range for requires ends
|
||||
|
||||
STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Membutuhkan:
|
||||
STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{STRING}{BLACK}: {CARGO_SHORT} menunggu{STRING}
|
||||
|
||||
############ range for produces starts
|
||||
STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Menghasilkan: {YELLOW}{STRING}{STRING}
|
||||
@@ -3357,6 +3395,9 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Jual semua
|
||||
STR_GROUP_RENAME_CAPTION :{BLACK}Ubah nama kelompok
|
||||
|
||||
STR_GROUP_PROFIT_THIS_YEAR :Keuntungan tahun ini:
|
||||
STR_GROUP_PROFIT_LAST_YEAR :Keuntungan tahun lalu:
|
||||
STR_GROUP_OCCUPANCY :Penggunaan sekarang:
|
||||
STR_GROUP_OCCUPANCY_VALUE :{NUM}%
|
||||
|
||||
# Build vehicle window
|
||||
STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Kereta Baru
|
||||
@@ -3364,7 +3405,7 @@ STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Kereta listrik
|
||||
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Monorel Baru
|
||||
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Maglev Baru
|
||||
|
||||
STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Semua Kereta
|
||||
STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Kereta Baru
|
||||
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Kendaraan Baru
|
||||
STR_BUY_VEHICLE_SHIP_CAPTION :Kapal Baru
|
||||
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Buat Pesawat
|
||||
@@ -3389,6 +3430,7 @@ STR_PURCHASE_INFO_ALL_TYPES :Semua jenis kar
|
||||
STR_PURCHASE_INFO_ALL_BUT :Semua tapi tidak untuk {CARGO_LIST}
|
||||
STR_PURCHASE_INFO_MAX_TE :{BLACK}Traksi Maks.: {GOLD}{FORCE}
|
||||
STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Jangkauan: {GOLD}{COMMA} kotak
|
||||
STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Jenis pesawat: {GOLD}{STRING}
|
||||
|
||||
STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Daftar pilihan kereta - klik pada kereta untuk menampilkan informasi
|
||||
STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Daftar pilihan kendaraan - klik pada kendaraan untuk menampilkan informasi
|
||||
@@ -3523,6 +3565,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :lokomotif magle
|
||||
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Biaya: {CURRENCY_LONG} Berat: {WEIGHT_SHORT}{}Kecepatan: {VELOCITY} Daya: {POWER}{}Biaya ops.: {CURRENCY_LONG}/thn{}Kapasitas: {CARGO_LONG}
|
||||
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Biaya: {CURRENCY_LONG} Berat: {WEIGHT_SHORT}{}Kecepatan: {VELOCITY} Power: {POWER} Max. T.E.: {6:FORCE}{}Biaya Operasional: {4:CURRENCY_LONG}/yr{}Kapasitas: {5:CARGO_LONG}
|
||||
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Biaya: {CURRENCY_LONG} Kec. Max: {VELOCITY}{}Kapasitas: {CARGO_LONG}{}Bea Berjalan: {CURRENCY_LONG}/thn
|
||||
STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Biaya: {CURRENCY_LONG} Kec. Max.: {VELOCITY}{}Jenis pesawat: {STRING}{}Kapasitas: {CARGO_LONG}, {CARGO_LONG}{}Biaya operasi: {CURRENCY_LONG}/thn
|
||||
STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Biaya: {CURRENCY_LONG} Kec. Max.: {VELOCITY}{}Jenis pesawat: {STRING}{}Kapasitas: {CARGO_LONG}{}Biaya operasi: {CURRENCY_LONG}/thn
|
||||
STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Biaya: {CURRENCY_LONG} Kec. Max.: {VELOCITY}{}Jenis pesawat: {STRING} Jangkauan: {COMMA} ubin{}Kapasitas: {CARGO_LONG}, {CARGO_LONG}{}Biaya Operasi: {CURRENCY_LONG}/thn
|
||||
STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Biaya: {CURRENCY_LONG} Kec. Max.: {VELOCITY}{}Jenis pesawat: {STRING} Jangkauan: {COMMA} ubin{}Kapasitas: {CARGO_LONG}{}Biaya operasi: {CURRENCY_LONG}/thn
|
||||
|
||||
# Autoreplace window
|
||||
STR_REPLACE_VEHICLES_WHITE :{WHITE}Ganti {STRING} - {STRING}
|
||||
@@ -3552,6 +3598,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Tekan un
|
||||
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Pindah tampilan penggantian lokomitif atau gerbong
|
||||
STR_REPLACE_ENGINES :Lokomotif
|
||||
STR_REPLACE_WAGONS :Gerbong
|
||||
STR_REPLACE_ALL_RAILTYPE :Semua kereta
|
||||
|
||||
STR_REPLACE_HELP_RAILTYPE :{BLACK}Pilih jenis kereta yang anda inginkan untuk diganti
|
||||
STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Menampilkan kendaraan terpilih di sisi kiri yang akan diganti, jika ada
|
||||
@@ -3645,6 +3692,7 @@ STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} ta
|
||||
|
||||
STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Kec. Max: {LTBLUE}{VELOCITY}
|
||||
STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Kecepatan Maks.: {LTBLUE}{VELOCITY} {BLACK}Jenis pesawat: {LTBLUE}{STRING}
|
||||
STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Kec. max.: {LTBLUE}{VELOCITY} {BLACK}Jenis pesawat: {LTBLUE}{STRING} {BLACK}Jangkauan: {LTBLUE}{COMMA} ubin
|
||||
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Berat: {LTBLUE}{WEIGHT_SHORT} {BLACK}Tenaga: {LTBLUE}{POWER}{BLACK} Kec. Max: {LTBLUE}{VELOCITY}
|
||||
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Berat: {LTBLUE}{WEIGHT_SHORT} {BLACK}Tenaga: {LTBLUE}{POWER}{BLACK} Kec. Max: {LTBLUE}{VELOCITY} {BLACK}Max. T.E.: {LTBLUE}{FORCE}
|
||||
|
||||
@@ -4210,6 +4258,7 @@ STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... jala
|
||||
STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... menghadap pada arah yang salah
|
||||
STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... terminal lintas-lalu tak bisa memiliki sudut
|
||||
STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... terminal lintas-lalu tak bisa memiliki simpangan
|
||||
STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}... jalannya satu arah atau terhalang
|
||||
|
||||
# Station destruction related errors
|
||||
STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Tidak dapat menghapus bagian dari stasiun...
|
||||
@@ -4278,7 +4327,7 @@ STR_ERROR_IMPOSSIBLE_TRACK_COMBINATION :{WHITE}Kombinas
|
||||
STR_ERROR_MUST_REMOVE_SIGNALS_FIRST :{WHITE}Sinyal harus dihancurkan dulu
|
||||
STR_ERROR_NO_SUITABLE_RAILROAD_TRACK :{WHITE}Tidak tersedia rel yang sesuai
|
||||
STR_ERROR_MUST_REMOVE_RAILROAD_TRACK :{WHITE}Harus membongkar rel terlebih dahulu
|
||||
STR_ERROR_CROSSING_ON_ONEWAY_ROAD :{WHITE}Jalan satu arah atau ada yang menghalangi
|
||||
STR_ERROR_CROSSING_ON_ONEWAY_ROAD :{WHITE}Jalannya satu arah atau terhalang
|
||||
STR_ERROR_CROSSING_DISALLOWED :{WHITE}Perlintasan tingkat tidak diperbolehkan pada tipe rel ini
|
||||
STR_ERROR_CAN_T_BUILD_SIGNALS_HERE :{WHITE}Tidak dapat membangun sinyal disini
|
||||
STR_ERROR_CAN_T_BUILD_RAILROAD_TRACK :{WHITE}Tidak dapat membangun jalur rel disini
|
||||
@@ -4461,6 +4510,8 @@ STR_BASESOUNDS_DOS_DESCRIPTION :Efek suara oris
|
||||
STR_BASESOUNDS_WIN_DESCRIPTION :Efek suara orisinil Transport Tycoon Deluxe versi Windows.
|
||||
STR_BASESOUNDS_NONE_DESCRIPTION :Paket efek suara tanpa suara apapun.
|
||||
STR_BASEMUSIC_WIN_DESCRIPTION :Musik pengiring orisinil Transport Tycoon Deluxe versi Windows.
|
||||
STR_BASEMUSIC_DOS_DESCRIPTION :Musik orisinil Transport Tycoon Deluxe versi DOS.
|
||||
STR_BASEMUSIC_TTO_DESCRIPTION :Musik orisinil Transport Tycoon (Orisinil/Editor Dunia) versi DOS.
|
||||
STR_BASEMUSIC_NONE_DESCRIPTION :Paket musik tanpa musik sungguhan.
|
||||
|
||||
##id 0x2000
|
||||
|
@@ -574,7 +574,7 @@ STR_GRAPH_OPERATING_PROFIT_CAPTION :{WHITE}Gráfico
|
||||
STR_GRAPH_INCOME_CAPTION :{WHITE}Gráfico de Ingresos
|
||||
STR_GRAPH_CARGO_DELIVERED_CAPTION :{WHITE}Unidades de carga entregadas
|
||||
STR_GRAPH_COMPANY_PERFORMANCE_RATINGS_CAPTION :{WHITE}Calificaciones de actuación de empresas (tasa máxima=1000)
|
||||
STR_GRAPH_COMPANY_VALUES_CAPTION :{WHITE}Valores de las empresas
|
||||
STR_GRAPH_COMPANY_VALUES_CAPTION :{WHITE}Valor de la empresa
|
||||
|
||||
STR_GRAPH_CARGO_PAYMENT_RATES_CAPTION :{WHITE}Tasas de pago por carga
|
||||
STR_GRAPH_CARGO_PAYMENT_RATES_X_LABEL :{TINY_FONT}{BLACK}Días en tránsito
|
||||
@@ -878,10 +878,10 @@ STR_NEWS_EXCLUSIVE_RIGHTS_DESCRIPTION :{BIG_FONT}{BLAC
|
||||
|
||||
# Extra view window
|
||||
STR_EXTRA_VIEW_PORT_TITLE :{WHITE}Vista {COMMA}
|
||||
STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN :{BLACK}Copiar punto de vista
|
||||
STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN :{BLACK}Cambiar punto de vista
|
||||
STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN_TT :{BLACK}Copia la localización de la vista principal a este punto de vista
|
||||
STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW :{BLACK}Pegar punto de vista
|
||||
STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW_TT :{BLACK}Pega la localización de este punto de vista a la principal
|
||||
STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW :{BLACK}Cambiar vista principal
|
||||
STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW_TT :{BLACK}Copia la localización de este punto de vista en la vista principal
|
||||
|
||||
# Game options window
|
||||
STR_GAME_OPTIONS_CAPTION :{WHITE}Opciones del juego
|
||||
@@ -2686,6 +2686,9 @@ STR_ABOUT_VERSION :{BLACK}OpenTTD
|
||||
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 El equipo OpenTTD
|
||||
|
||||
# Framerate display window
|
||||
STR_FRAMERATE_CAPTION :{WHITE}Fotogramas por segundo - FPS
|
||||
STR_FRAMERATE_CURRENT :{WHITE}Actual
|
||||
STR_FRAMERATE_AVERAGE :{WHITE}Medio
|
||||
############ Leave those lines in this order!!
|
||||
############ End of leave-in-this-order
|
||||
############ Leave those lines in this order!!
|
||||
@@ -2780,7 +2783,7 @@ STR_GENERATION_ABORT_MESSAGE :{YELLOW}¿Desea
|
||||
STR_GENERATION_PROGRESS :{WHITE}{NUM}% completado
|
||||
STR_GENERATION_PROGRESS_NUM :{BLACK}{NUM} / {NUM}
|
||||
STR_GENERATION_WORLD_GENERATION :{BLACK}Generación de mundo
|
||||
STR_GENERATION_RIVER_GENERATION :{BLACK}Generación de Ríos
|
||||
STR_GENERATION_RIVER_GENERATION :{BLACK}Generación de ríos
|
||||
STR_GENERATION_TREE_GENERATION :{BLACK}Generación de árboles
|
||||
STR_GENERATION_OBJECT_GENERATION :{BLACK}Generación de inamovibles
|
||||
STR_GENERATION_CLEARING_TILES :{BLACK}Generación de áreas ásperas o rocosas
|
||||
@@ -2976,6 +2979,7 @@ STR_EDIT_SIGN_SIGN_OSKTITLE :{BLACK}Introduc
|
||||
STR_TOWN_DIRECTORY_CAPTION :{WHITE}Municipios
|
||||
STR_TOWN_DIRECTORY_NONE :{ORANGE}- Ninguna -
|
||||
STR_TOWN_DIRECTORY_TOWN :{ORANGE}{TOWN}{BLACK} ({COMMA})
|
||||
STR_TOWN_DIRECTORY_CITY :{ORANGE}{TOWN}{YELLOW} (Ciudad){BLACK} ({COMMA})
|
||||
STR_TOWN_DIRECTORY_LIST_TOOLTIP :{BLACK}Nombres de los municipios - click sobre un nombre para centrar la vista principal en él. Ctrl+Click abre una ventana de visualización en dicha posición
|
||||
STR_TOWN_POPULATION :{BLACK}Población mundial: {COMMA}
|
||||
|
||||
@@ -2983,6 +2987,7 @@ STR_TOWN_POPULATION :{BLACK}Poblaci
|
||||
STR_TOWN_VIEW_TOWN_CAPTION :{WHITE}{TOWN}
|
||||
STR_TOWN_VIEW_CITY_CAPTION :{WHITE}{TOWN} (Ciudad)
|
||||
STR_TOWN_VIEW_POPULATION_HOUSES :{BLACK}Habitantes: {ORANGE}{COMMA}{BLACK} Casas: {ORANGE}{COMMA}
|
||||
STR_TOWN_VIEW_CARGO_LAST_MONTH_MAX :{BLACK}{CARGO_LIST} último mes: {ORANGE}{COMMA}{BLACK} máx: {ORANGE}{COMMA}
|
||||
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH :{BLACK}Carga necesaria para crecimiento del municipio:
|
||||
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_GENERAL :{ORANGE}{STRING}{RED} requeridos
|
||||
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_WINTER :{ORANGE}{STRING}{BLACK} requerido en invierno
|
||||
|
@@ -411,6 +411,7 @@ static const char * const _credits[] = {
|
||||
" Christoph Elsenhans (frosch) - General coding (since 0.6)",
|
||||
" Lo\xC3\xAF""c Guilloux (glx) - General / Windows Expert (since 0.4.5)",
|
||||
" Michael Lutz (michi_cc) - Path based signals (since 0.7)",
|
||||
" Niels Martin Hansen (nielsm) - Music system, general coding (since 1.9)",
|
||||
" Owen Rudge (orudge) - Forum host, OS/2 port (since 0.1)",
|
||||
" Peter Nelson (peter1138) - Spiritual descendant from NewGRF gods (since 0.4.5)",
|
||||
" Ingo von Borstel (planetmaker) - General, Support (since 1.1)",
|
||||
|
@@ -432,13 +432,8 @@ static SQInteger _io_file_read(SQUserPointer file, SQUserPointer buf, SQInteger
|
||||
|
||||
SQRESULT Squirrel::LoadFile(HSQUIRRELVM vm, const char *filename, SQBool printerror)
|
||||
{
|
||||
size_t size;
|
||||
FILE *file;
|
||||
SQInteger ret;
|
||||
unsigned short us;
|
||||
unsigned char uc;
|
||||
SQLEXREADFUNC func;
|
||||
|
||||
size_t size;
|
||||
if (strncmp(this->GetAPIName(), "AI", 2) == 0) {
|
||||
file = FioFOpenFile(filename, "rb", AI_DIR, &size);
|
||||
if (file == NULL) file = FioFOpenFile(filename, "rb", AI_LIBRARY_DIR, &size);
|
||||
@@ -449,61 +444,75 @@ SQRESULT Squirrel::LoadFile(HSQUIRRELVM vm, const char *filename, SQBool printer
|
||||
NOT_REACHED();
|
||||
}
|
||||
|
||||
if (file != NULL) {
|
||||
SQFile f(file, size);
|
||||
ret = fread(&us, 1, sizeof(us), file);
|
||||
/* Most likely an empty file */
|
||||
if (ret != 2) us = 0;
|
||||
|
||||
switch (us) {
|
||||
case SQ_BYTECODE_STREAM_TAG: { // BYTECODE
|
||||
if (fseek(file, -2, SEEK_CUR) < 0) {
|
||||
FioFCloseFile(file);
|
||||
return sq_throwerror(vm, "cannot seek the file");
|
||||
}
|
||||
if (SQ_SUCCEEDED(sq_readclosure(vm, _io_file_read, &f))) {
|
||||
FioFCloseFile(file);
|
||||
return SQ_OK;
|
||||
}
|
||||
FioFCloseFile(file);
|
||||
return sq_throwerror(vm, "Couldn't read bytecode");
|
||||
}
|
||||
case 0xFFFE:
|
||||
/* Either this file is encoded as big-endian and we're on a little-endian
|
||||
* machine, or this file is encoded as little-endian and we're on a big-endian
|
||||
* machine. Either way, swap the bytes of every word we read. */
|
||||
func = _io_file_lexfeed_UCS2_swap;
|
||||
break;
|
||||
case 0xFEFF: func = _io_file_lexfeed_UCS2_no_swap; break;
|
||||
case 0xBBEF: // UTF-8
|
||||
case 0xEFBB: // UTF-8 on big-endian machine
|
||||
if (fread(&uc, 1, sizeof(uc), file) == 0) {
|
||||
FioFCloseFile(file);
|
||||
return sq_throwerror(vm, "I/O error");
|
||||
}
|
||||
if (uc != 0xBF) {
|
||||
FioFCloseFile(file);
|
||||
return sq_throwerror(vm, "Unrecognized encoding");
|
||||
}
|
||||
func = _io_file_lexfeed_UTF8;
|
||||
break;
|
||||
default: // ASCII
|
||||
func = _io_file_lexfeed_ASCII;
|
||||
if (fseek(file, -2, SEEK_CUR) < 0) {
|
||||
FioFCloseFile(file);
|
||||
return sq_throwerror(vm, "cannot seek the file");
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (SQ_SUCCEEDED(sq_compile(vm, func, &f, filename, printerror))) {
|
||||
FioFCloseFile(file);
|
||||
return SQ_OK;
|
||||
}
|
||||
FioFCloseFile(file);
|
||||
return SQ_ERROR;
|
||||
if (file == NULL) {
|
||||
return sq_throwerror(vm, "cannot open the file");
|
||||
}
|
||||
return sq_throwerror(vm, "cannot open the file");
|
||||
unsigned short bom = 0;
|
||||
if (size >= 2) {
|
||||
fread(&bom, 1, sizeof(bom), file); // Inside tar, no point checking return value of fread
|
||||
}
|
||||
|
||||
SQLEXREADFUNC func;
|
||||
switch (bom) {
|
||||
case SQ_BYTECODE_STREAM_TAG: { // BYTECODE
|
||||
if (fseek(file, -2, SEEK_CUR) < 0) {
|
||||
FioFCloseFile(file);
|
||||
return sq_throwerror(vm, "cannot seek the file");
|
||||
}
|
||||
|
||||
SQFile f(file, size);
|
||||
if (SQ_SUCCEEDED(sq_readclosure(vm, _io_file_read, &f))) {
|
||||
FioFCloseFile(file);
|
||||
return SQ_OK;
|
||||
}
|
||||
FioFCloseFile(file);
|
||||
return sq_throwerror(vm, "Couldn't read bytecode");
|
||||
}
|
||||
case 0xFFFE:
|
||||
/* Either this file is encoded as big-endian and we're on a little-endian
|
||||
* machine, or this file is encoded as little-endian and we're on a big-endian
|
||||
* machine. Either way, swap the bytes of every word we read. */
|
||||
func = _io_file_lexfeed_UCS2_swap;
|
||||
size -= 2; // Skip BOM
|
||||
break;
|
||||
case 0xFEFF:
|
||||
func = _io_file_lexfeed_UCS2_no_swap;
|
||||
size -= 2; // Skip BOM
|
||||
break;
|
||||
case 0xBBEF: // UTF-8
|
||||
case 0xEFBB: { // UTF-8 on big-endian machine
|
||||
/* Similarly, check the file is actually big enough to finish checking BOM */
|
||||
if (size < 3) {
|
||||
FioFCloseFile(file);
|
||||
return sq_throwerror(vm, "I/O error");
|
||||
}
|
||||
unsigned char uc;
|
||||
fread(&uc, 1, sizeof(uc), file);
|
||||
if (uc != 0xBF) {
|
||||
FioFCloseFile(file);
|
||||
return sq_throwerror(vm, "Unrecognized encoding");
|
||||
}
|
||||
func = _io_file_lexfeed_UTF8;
|
||||
size -= 3; // Skip BOM
|
||||
break;
|
||||
}
|
||||
default: // ASCII
|
||||
func = _io_file_lexfeed_ASCII;
|
||||
/* Account for when we might not have fread'd earlier */
|
||||
if (size >= 2 && fseek(file, -2, SEEK_CUR) < 0) {
|
||||
FioFCloseFile(file);
|
||||
return sq_throwerror(vm, "cannot seek the file");
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
SQFile f(file, size);
|
||||
if (SQ_SUCCEEDED(sq_compile(vm, func, &f, filename, printerror))) {
|
||||
FioFCloseFile(file);
|
||||
return SQ_OK;
|
||||
}
|
||||
FioFCloseFile(file);
|
||||
return SQ_ERROR;
|
||||
}
|
||||
|
||||
bool Squirrel::LoadScript(HSQUIRRELVM vm, const char *script, bool in_root)
|
||||
|
@@ -105,7 +105,6 @@
|
||||
#include "gui.h"
|
||||
#include "core/container_func.hpp"
|
||||
#include "tunnelbridge_map.h"
|
||||
#include "core/sort_func.hpp"
|
||||
|
||||
#include <map>
|
||||
#include <vector>
|
||||
@@ -1526,22 +1525,11 @@ static bool ViewportSortParentSpritesChecker()
|
||||
return true;
|
||||
}
|
||||
|
||||
static int CDECL CompareParentSprites(ParentSpriteToDraw * const *psd, ParentSpriteToDraw * const *psd2)
|
||||
{
|
||||
const ParentSpriteToDraw *ps = *psd;
|
||||
const ParentSpriteToDraw *ps2 = *psd2;
|
||||
return ps->xmin - ps2->xmin;
|
||||
}
|
||||
|
||||
/** Sort parent sprites pointer array */
|
||||
static void ViewportSortParentSprites(ParentSpriteToSortVector *psdv)
|
||||
{
|
||||
ParentSpriteToDraw **psdvend = psdv->End();
|
||||
ParentSpriteToDraw **psd = psdv->Begin();
|
||||
|
||||
/* pre-sort by xmin in ascending order */
|
||||
QSortT(psd, psdvend - psd, CompareParentSprites);
|
||||
|
||||
while (psd != psdvend) {
|
||||
ParentSpriteToDraw *ps = *psd;
|
||||
|
||||
@@ -1578,11 +1566,9 @@ static void ViewportSortParentSprites(ParentSpriteToSortVector *psdv)
|
||||
* I.e. every single order of X, Y, Z says ps2 is behind ps or they overlap.
|
||||
* That is: If one partial order says ps behind ps2, do not change the order.
|
||||
*/
|
||||
if (ps->xmax < ps2->xmin) {
|
||||
/* all following sprites have xmin >= ps2->xmin */
|
||||
break;
|
||||
}
|
||||
if (ps->ymax < ps2->ymin || ps->zmax < ps2->zmin) {
|
||||
if (ps->xmax < ps2->xmin ||
|
||||
ps->ymax < ps2->ymin ||
|
||||
ps->zmax < ps2->zmin) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
@@ -15,7 +15,6 @@
|
||||
#include "cpu.h"
|
||||
#include "smmintrin.h"
|
||||
#include "viewport_sprite_sorter.h"
|
||||
#include "core/sort_func.hpp"
|
||||
|
||||
#include "safeguards.h"
|
||||
|
||||
@@ -26,24 +25,12 @@
|
||||
#define LOAD_128 _mm_loadu_si128
|
||||
#endif
|
||||
|
||||
static int CDECL CompareParentSprites(ParentSpriteToDraw * const *psd, ParentSpriteToDraw * const *psd2)
|
||||
{
|
||||
const ParentSpriteToDraw *ps = *psd;
|
||||
const ParentSpriteToDraw *ps2 = *psd2;
|
||||
return ps->xmin - ps2->xmin;
|
||||
}
|
||||
|
||||
/** Sort parent sprites pointer array using SSE4.1 optimizations. */
|
||||
void ViewportSortParentSpritesSSE41(ParentSpriteToSortVector *psdv)
|
||||
{
|
||||
const __m128i mask_ptest = _mm_setr_epi8(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0);
|
||||
const __m128i mask_ptest2 = _mm_setr_epi8(-1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
||||
const __m128i mask_ptest = _mm_setr_epi8(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0);
|
||||
ParentSpriteToDraw ** const psdvend = psdv->End();
|
||||
ParentSpriteToDraw **psd = psdv->Begin();
|
||||
|
||||
/* pre-sort by xmin in ascending order */
|
||||
QSortT(psd, psdvend - psd, CompareParentSprites);
|
||||
|
||||
while (psd != psdvend) {
|
||||
ParentSpriteToDraw * const ps = *psd;
|
||||
|
||||
@@ -77,14 +64,8 @@ void ViewportSortParentSpritesSSE41(ParentSpriteToSortVector *psdv)
|
||||
__m128i ps1_max = LOAD_128((__m128i*) &ps->xmax);
|
||||
__m128i ps2_min = LOAD_128((__m128i*) &ps2->xmin);
|
||||
__m128i rslt1 = _mm_cmplt_epi32(ps1_max, ps2_min);
|
||||
if (!_mm_testz_si128(mask_ptest, rslt1)) {
|
||||
if (!_mm_testz_si128(mask_ptest2, rslt1) /* ps->xmax < ps2->xmin */) {
|
||||
/* all following sprites have xmin >= ps2->xmin */
|
||||
break;
|
||||
} else {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if (!_mm_testz_si128(mask_ptest, rslt1))
|
||||
continue;
|
||||
|
||||
__m128i ps1_min = LOAD_128((__m128i*) &ps->xmin);
|
||||
__m128i ps2_max = LOAD_128((__m128i*) &ps2->xmax);
|
||||
|
Reference in New Issue
Block a user