diff --git a/Makefile.src.in b/Makefile.src.in index ef2d2bb503..6b0fb94020 100644 --- a/Makefile.src.in +++ b/Makefile.src.in @@ -91,6 +91,7 @@ ISODATE := $(shell echo "$(VERSIONS)" | cut -f 2 -d' ') GITHASH := $(shell echo "$(VERSIONS)" | cut -f 4 -d' ') ISTAG := $(shell echo "$(VERSIONS)" | cut -f 5 -d' ') ISSTABLETAG := $(shell echo "$(VERSIONS)" | cut -f 6 -d' ') +YEAR := $(shell echo "$(VERSIONS)" | cut -f 7 -d' ') # Make sure we have something in VERSION and ISODATE ifeq ($(VERSION),) @@ -272,10 +273,10 @@ endif # Revision files $(SRC_DIR)/rev.cpp: $(CONFIG_CACHE_VERSION) $(SRC_DIR)/rev.cpp.in - $(Q)cat $(SRC_DIR)/rev.cpp.in | sed "s@\!\!ISODATE\!\!@$(ISODATE)@g;s@!!VERSION!!@$(VERSION)@g;s@!!MODIFIED!!@$(MODIFIED)@g;s@!!DATE!!@`date +%d.%m.%y`@g;s@!!GITHASH!!@$(GITHASH)@g;s@!!ISTAG!!@$(ISTAG)@g;s@!!ISSTABLETAG!!@$(ISSTABLETAG)@g" > $(SRC_DIR)/rev.cpp + $(Q)cat $(SRC_DIR)/rev.cpp.in | sed "s@\!\!ISODATE\!\!@$(ISODATE)@g;s@!!VERSION!!@$(VERSION)@g;s@!!MODIFIED!!@$(MODIFIED)@g;s@!!DATE!!@`date +%d.%m.%y`@g;s@!!GITHASH!!@$(GITHASH)@g;s@!!ISTAG!!@$(ISTAG)@g;s@!!ISSTABLETAG!!@$(ISSTABLETAG)@g;s@!!YEAR!!@$(YEAR)@g" > $(SRC_DIR)/rev.cpp $(SRC_DIR)/os/windows/ottdres.rc: $(CONFIG_CACHE_VERSION) $(SRC_DIR)/os/windows/ottdres.rc.in - $(Q)cat $(SRC_DIR)/os/windows/ottdres.rc.in | sed "s@\!\!ISODATE\!\!@$(ISODATE)@g;s@!!VERSION!!@$(VERSION)@g;s@!!DATE!!@`date +%d.%m.%y`@g;s@!!GITHASH!!@$(GITHASH)@g;s@!!ISTAG!!@$(ISTAG)@g;s@!!ISSTABLETAG!!@$(ISSTABLETAG)@g" > $(SRC_DIR)/os/windows/ottdres.rc + $(Q)cat $(SRC_DIR)/os/windows/ottdres.rc.in | sed "s@\!\!ISODATE\!\!@$(ISODATE)@g;s@!!VERSION!!@$(VERSION)@g;s@!!DATE!!@`date +%d.%m.%y`@g;s@!!GITHASH!!@$(GITHASH)@g;s@!!ISTAG!!@$(ISTAG)@g;s@!!ISSTABLETAG!!@$(ISSTABLETAG)@g;s@!!YEAR!!@$(YEAR)@g" > $(SRC_DIR)/os/windows/ottdres.rc FORCE: diff --git a/azure-pipelines/manifest.sh b/azure-pipelines/manifest.sh index 730a09283f..2703b37e56 100755 --- a/azure-pipelines/manifest.sh +++ b/azure-pipelines/manifest.sh @@ -65,6 +65,7 @@ output_files() { if [ ! -e ${FOLDER}/${filename}.md5sum ] || [ ! -e ${FOLDER}/${filename}.sha1sum ] || [ ! -e ${FOLDER}/${filename}.sha256sum ]; then echo "ERROR: missing checksum file for ${filename}" 1>&2 error="y" + shift continue fi diff --git a/azure-pipelines/templates/ci-opengfx.yml b/azure-pipelines/templates/ci-opengfx.yml index 098f0d2a69..cdee9feca8 100644 --- a/azure-pipelines/templates/ci-opengfx.yml +++ b/azure-pipelines/templates/ci-opengfx.yml @@ -2,7 +2,7 @@ steps: - bash: | set -ex cd bin/baseset - curl -L https://binaries.openttd.org/extra/opengfx/0.5.2/opengfx-0.5.2-all.zip > opengfx-0.5.2-all.zip - unzip opengfx-0.5.2-all.zip - rm -f opengfx-0.5.2-all.zip + curl -L https://cdn.openttd.org/opengfx-releases/0.6.0/opengfx-0.6.0-all.zip > opengfx-all.zip + unzip opengfx-all.zip + rm -f opengfx-all.zip displayName: 'Install OpenGFX' diff --git a/azure-pipelines/templates/release.yml b/azure-pipelines/templates/release.yml index b0852c1c20..b9a5597269 100644 --- a/azure-pipelines/templates/release.yml +++ b/azure-pipelines/templates/release.yml @@ -119,6 +119,8 @@ jobs: Tag: 'linux-ubuntu-bionic-i386-gcc' linux-ubuntu-bionic-amd64-gcc: Tag: 'linux-ubuntu-bionic-amd64-gcc' + linux-ubuntu-focal-amd64-gcc: + Tag: 'linux-ubuntu-focal-amd64-gcc' linux-debian-stretch-i386-gcc: Tag: 'linux-debian-stretch-i386-gcc' linux-debian-stretch-amd64-gcc: diff --git a/changelog.txt b/changelog.txt index 0e31ee3fe5..5f60c06174 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,26 @@ +1.10.2 (2020-06-01) +------------------------------------------------------------------------ +Add: Ubuntu 20.04 packages (#8127) +Fix: [OSX] Possible crash on failure to set colourspace (#8181) +Fix #8166: Prevent crash from a NewGRF with an invalid RoadType (#8180) +Fix #8024: Make Online Content GUI more responsive while loading (#8179) +Fix #7970: Disable event loop when generating crash dump (#8176) +Fix: [Build] Compatibility with modern Visual Studio (#8170) +Fix: Trees would disappear completely after a few years if tree spread was disabled (#8160) +Fix #8155: Roadtype speed limit in scenario editor toolbar dropdown was doubled (#8156) +Fix: Desync after house replacement (#8151) +Fix #8137: New clients can't join (desync) after funding an industry (#8140) +Fix #8132: Corrupted savegame with station with multiple owners caused a crash (#8134, #8142) +Fix: Stop gamelog when recovering from a savegame load error (#8133) +Fix: Exceptionally unlikely issue when reading MIDI files (#8125) +Fix #8119: Docking areas were not properly updated when clearing, causing desyncs (#8124, #8130) +Fix #8117: Memory leak for incoming admin port packets (#8122) +Fix: Non-roadbridges potentially had roadtype information set (#8111) +Fix #8108: Possible crash on loading TTD savegames with phantom oil rigs (#8109, #8110) +Fix #8093: Build & refit test run changed game state and could cause desyncs (#8103) +Fix: [Script] AreWaterTilesConnected did not handle aqueducts properly (#8074) + + 1.10.1 (2020-04-13) ------------------------------------------------------------------------ Fix #8081: Crash when placing a ship depot next to a dock (#8082) diff --git a/config.lib b/config.lib index b11cb284ae..605a03519e 100644 --- a/config.lib +++ b/config.lib @@ -2467,7 +2467,7 @@ detect_sdl() { detect_pkg_config "2" "sdl2" "sdl2_config" "2.0" else sdl2_config="" - if [ -x `which sdl2-config` ]; then + if [ -x "`which sdl2-config`" ]; then detect_pkg_config "$with_sdl" "sdl2" "sdl2_config" "2.0" fi if [ -z "$sdl2_config" ]; then diff --git a/findversion.sh b/findversion.sh index cd61040088..e282643a7f 100755 --- a/findversion.sh +++ b/findversion.sh @@ -71,6 +71,7 @@ elif [ -d "$ROOT_DIR/.git" ] || [ -f "$ROOT_DIR/.git" ]; then HASH=`LC_ALL=C git rev-parse --verify HEAD 2>/dev/null` SHORTHASH=`echo ${HASH} | cut -c1-10` ISODATE=`LC_ALL=C git show -s --pretty='format:%ci' HEAD | "$AWK" '{ gsub("-", "", $1); print $1 }'` + YEAR=`echo ${ISODATE} | cut -c1-4` BRANCH="`git symbolic-ref -q HEAD 2>/dev/null | sed 's@.*/@@'`" TAG="`git name-rev --name-only --tags --no-undefined HEAD 2>/dev/null | sed 's@\^0$@@'`" @@ -102,10 +103,11 @@ else SHORTHASH="" BRANCH="" ISODATE="" + YEAR="" TAG="" VERSION="" ISTAG="0" ISSTABLETAG="0" fi -echo "$VERSION $ISODATE $MODIFIED $HASH $ISTAG $ISSTABLETAG" +echo "$VERSION $ISODATE $MODIFIED $HASH $ISTAG $ISSTABLETAG $YEAR" diff --git a/known-bugs.txt b/known-bugs.txt index 7b0277aa07..a27411e6b1 100644 --- a/known-bugs.txt +++ b/known-bugs.txt @@ -1,6 +1,6 @@ OpenTTD's known bugs -Last updated: 2020-04-13 -Release version: 1.10.1 +Last updated: 2020-06-01 +Release version: 1.10.2 ------------------------------------------------------------------------ diff --git a/media/baseset/translations.vbs b/media/baseset/translations.vbs index fffb577482..c167886930 100644 --- a/media/baseset/translations.vbs +++ b/media/baseset/translations.vbs @@ -63,10 +63,14 @@ Sub Lookup(ini_key, str_id, outfile) For Each file In folder.Files If UCase(FSO.GetExtensionName(file.Name)) = "TXT" Then Dim f - Set f = FSO.OpenTextFile(file.Path) + Set f = CreateObject("ADODB.Stream") + f.Charset = "utf-8" + f.LineSeparator = 10 ' Assume lines end with \n even for \r\n files + f.Open + f.LoadFromFile(file.Path) - Do Until f.atEndOfStream - line = f.ReadLine() + Do Until f.EOS + line = Replace(f.ReadText(-2), Chr(13), "") ' Read a line and remove any \r If InStr(1, line, "##isocode ") = 1 Then p = Split(line) @@ -80,8 +84,9 @@ Sub Lookup(ini_key, str_id, outfile) End If i = i + 1 End If - Loop + + f.Close End If Next @@ -89,7 +94,7 @@ Sub Lookup(ini_key, str_id, outfile) ISort output For Each line In output - outfile.Write line & vbCrLf + outfile.WriteText line, 1 Next End Sub @@ -100,7 +105,9 @@ Dim infile Set infile = FSO.OpenTextFile(inputfile) Dim outfile -Set outfile = FSO.CreateTextFile(outputfile, True) +Set outfile = CreateObject("ADODB.Stream") +outfile.Charset = "utf-8" +outfile.Open Do Until infile.atEndOfStream @@ -109,15 +116,30 @@ Do Until infile.atEndOfStream If InStr(1, line, "ORIG_EXTRA.GRF ") = 1 Then p = Split(line, "=") If Trim(p(1)) = "" Then - outfile.Write("ORIG_EXTRA.GRF = " & GetExtraGrfHash() & vbCrLf) + outfile.WriteText "ORIG_EXTRA.GRF = " & GetExtraGrfHash(), 1 Else - outfile.Write(line & vbCrLf) + outfile.WriteText line, 1 End If ElseIf InStr(1, line, "!! ") = 1 Then p = Split(line) Lookup p(1), p(2), outfile Else - outfile.Write(line & vbCrLf) + outfile.WriteText line, 1 End If Loop + +' UTF-8 Text ADO Stream includes BOM, so we need to remove it +Dim outfile_noBOM +Set outfile_noBOM = CreateObject("ADODB.Stream") +outfile_noBOM.Type = 1 +outfile_noBOM.Open + +' Copy Text stream to Binary stream, skiping the BOM +outfile.Position = 3 +outfile.CopyTo outfile_noBOM +outfile.Close + +' Write the Binary stream +outfile_noBOM.SaveToFile outputfile, 2 +outfile_noBOM.Close diff --git a/os/debian/changelog b/os/debian/changelog index c9efabe8c4..6a7c6197ba 100644 --- a/os/debian/changelog +++ b/os/debian/changelog @@ -1,3 +1,9 @@ +openttd (1.10.2-0) unstable; urgency=low + + * New upstream release 1.10.2 + + -- OpenTTD Mon, 01 Jun 2020 22:00:00 +0100 + openttd (1.10.1-0) unstable; urgency=low * New upstream release 1.10.1 diff --git a/os/os2/installer/make_installer.cmd b/os/os2/installer/make_installer.cmd index 3addeca1ae..97357c69b6 100644 --- a/os/os2/installer/make_installer.cmd +++ b/os/os2/installer/make_installer.cmd @@ -1,6 +1,6 @@ @echo off -set OPENTTD_VERSION=1.10.0 +set OPENTTD_VERSION=1.10.2 set OPENSFX_VERSION=0.8.0 set NOSOUND_VERSION=0.8.0 set OPENGFX_VERSION=1.2.0 diff --git a/os/rpm/openttd.spec b/os/rpm/openttd.spec index ad2e19ab59..1cb1b16f68 100644 --- a/os/rpm/openttd.spec +++ b/os/rpm/openttd.spec @@ -17,9 +17,9 @@ # Name: openttd -Version: 1.10.1 +Version: 1.10.2 Release: 0 -%define srcver 1.10.1 +%define srcver 1.10.2 Summary: An open source reimplementation of Chris Sawyer's Transport Tycoon Deluxe License: GPL-2.0 Group: Amusements/Games/Strategy/Other diff --git a/os/windows/installer/install.nsi b/os/windows/installer/install.nsi index 97a9558244..5846ee046e 100644 --- a/os/windows/installer/install.nsi +++ b/os/windows/installer/install.nsi @@ -1,8 +1,8 @@ # Version numbers to update !define APPV_MAJOR 1 !define APPV_MINOR 10 -!define APPV_MAINT 1 -!define APPV_BUILD 4 +!define APPV_MAINT 2 +!define APPV_BUILD 0 !define APPV_EXTRA "" !define APPNAME "OpenTTD" ; Define application name @@ -599,12 +599,12 @@ Function CheckWindowsVersion StrCmp $R0 "win9x" 0 WinNT ClearErrors StrCmp ${APPARCH} "win9x" Done 0 - MessageBox MB_YESNO|MB_ICONSTOP "You are trying to install the Windows XP SP3, Vista and 7 version on Windows 95, 98, ME, 2000 and XP without SP3. This is will not work. Please download the correct version. Do you really want to continue?" IDYES Done IDNO Abort + MessageBox MB_YESNO|MB_ICONSTOP "You are trying to install the Windows XP SP3 and newer version on Windows 95, 98, ME, 2000, or XP without SP3. This will not work - please download the correct version. Do you really want to continue?" IDYES Done IDNO Abort GoTo Done WinNT: ClearErrors StrCmp ${APPARCH} "win9x" 0 Done - MessageBox MB_YESNO|MB_ICONEXCLAMATION "You are trying to install the Windows 95, 98, 2000 and XP without SP3 version on Windows XP SP3, Vista or 7. This is not advised, but will work with reduced capabilities. We suggest that you download the correct version. Do you really want to continue?" IDYES Done IDNO Abort + MessageBox MB_YESNO|MB_ICONEXCLAMATION "You are trying to install the Windows 95, 98, 2000 and XP without SP3 version on Windows XP SP3 or newer. This is not advised, but will work with reduced capabilities. We suggest that you download the correct version. Do you really want to continue?" IDYES Done IDNO Abort Abort: Quit Done: diff --git a/os/windows/installer/version_win32.txt b/os/windows/installer/version_win32.txt index a0aeef5ee4..0ac06d0d19 100644 --- a/os/windows/installer/version_win32.txt +++ b/os/windows/installer/version_win32.txt @@ -1,5 +1,5 @@ !define APPBITS 32 ; Define number of bits for the architecture -!define EXTRA_VERSION "XP SP3, Vista and 7" +!define EXTRA_VERSION "XP SP3 and newer" !define APPARCH "win32" ; Define the application architecture !define BINARY_DIR "${PATH_ROOT}objs\win32\Release" InstallDir "$PROGRAMFILES32\OpenTTD\" diff --git a/os/windows/installer/version_win64.txt b/os/windows/installer/version_win64.txt index 492a75894f..15ef51096b 100644 --- a/os/windows/installer/version_win64.txt +++ b/os/windows/installer/version_win64.txt @@ -1,5 +1,5 @@ !define APPBITS 64 ; Define number of bits for the architecture -!define EXTRA_VERSION "XP, Vista and 7" +!define EXTRA_VERSION "XP and newer" !define APPARCH "win64" ; Define the application architecture !define BINARY_DIR "${PATH_ROOT}objs\x64\Release" InstallDir "$PROGRAMFILES64\OpenTTD\" diff --git a/os/windows/installer/version_win9x.txt b/os/windows/installer/version_win9x.txt index 21dbf6200a..603778d73c 100644 --- a/os/windows/installer/version_win9x.txt +++ b/os/windows/installer/version_win9x.txt @@ -1,5 +1,5 @@ !define APPBITS 32 ; Define number of bits for the architecture -!define EXTRA_VERSION "95, 98, ME, 2000 and XP without SP3" +!define EXTRA_VERSION "95, 98, ME, 2000 and XP SP2 or older" !define APPARCH "win9x" ; Define the application architecture !define BINARY_DIR "${PATH_ROOT}objs\release" InstallDir "$PROGRAMFILES32\OpenTTD\" diff --git a/projects/determineversion.vbs b/projects/determineversion.vbs index a85a085f29..b70bcdf67c 100755 --- a/projects/determineversion.vbs +++ b/projects/determineversion.vbs @@ -19,7 +19,7 @@ Sub FindReplaceInFile(filename, to_find, replacement) file.Close End Sub -Sub UpdateFile(modified, isodate, version, cur_date, githash, istag, isstabletag, filename) +Sub UpdateFile(modified, isodate, version, cur_date, githash, istag, isstabletag, year, filename) FSO.CopyFile filename & ".in", filename FindReplaceInFile filename, "!!MODIFIED!!", modified FindReplaceInFile filename, "!!ISODATE!!", isodate @@ -28,10 +28,11 @@ Sub UpdateFile(modified, isodate, version, cur_date, githash, istag, isstabletag FindReplaceInFile filename, "!!GITHASH!!", githash FindReplaceInFile filename, "!!ISTAG!!", istag FindReplaceInFile filename, "!!ISSTABLETAG!!", isstabletag + FindReplaceInFile filename, "!!YEAR!!", year End Sub Sub UpdateFiles(version) - Dim modified, isodate, cur_date, githash, istag, isstabletag + Dim modified, isodate, cur_date, githash, istag, isstabletag, year cur_date = DatePart("D", Date) & "." & DatePart("M", Date) & "." & DatePart("YYYY", Date) If InStr(version, Chr(9)) Then @@ -41,26 +42,29 @@ Sub UpdateFiles(version) githash = Mid(modified, InStr(modified, Chr(9)) + 1) istag = Mid(githash, InStr(githash, Chr(9)) + 1) isstabletag = Mid(istag, InStr(istag, Chr(9)) + 1) + year = Mid(isstabletag, InStr(isstabletag, Chr(9)) + 1) ' Remove tails from fields version = Mid(version, 1, InStr(version, Chr(9)) - 1) isodate = Mid(isodate, 1, InStr(isodate, Chr(9)) - 1) modified = Mid(modified, 1, InStr(modified, Chr(9)) - 1) githash = Mid(githash, 1, InStr(githash, Chr(9)) - 1) istag = Mid(istag, 1, InStr(istag, Chr(9)) - 1) + isstabletag = Mid(isstabletag, 1, InStr(isstabletag, Chr(9)) - 1) Else isodate = 0 modified = 1 githash = "" istag = 0 isstabletag = 0 + year = "" End If - UpdateFile modified, isodate, version, cur_date, githash, istag, isstabletag, "../src/rev.cpp" - UpdateFile modified, isodate, version, cur_date, githash, istag, isstabletag, "../src/os/windows/ottdres.rc" + UpdateFile modified, isodate, version, cur_date, githash, istag, isstabletag, year, "../src/rev.cpp" + UpdateFile modified, isodate, version, cur_date, githash, istag, isstabletag, year, "../src/os/windows/ottdres.rc" End Sub Function DetermineVersion() - Dim WshShell, branch, tag, modified, isodate, oExec, line, hash, shorthash + Dim WshShell, branch, tag, modified, isodate, oExec, line, hash, shorthash, year Set WshShell = CreateObject("WScript.Shell") On Error Resume Next @@ -70,6 +74,7 @@ Function DetermineVersion() branch = "" isodate = "" tag = "" + year = "" ' Set the environment to english WshShell.Environment("PROCESS")("LANG") = "en" @@ -108,6 +113,7 @@ Function DetermineVersion() if Err.Number = 0 Then isodate = Mid(oExec.StdOut.ReadLine(), 1, 10) isodate = Replace(isodate, "-", "") + year = Mid(isodate, 1, 4) End If ' Err.Number = 0 ' Check branch @@ -171,7 +177,7 @@ Function DetermineVersion() isstabletag = 0 End If - DetermineVersion = version & Chr(9) & isodate & Chr(9) & modified & Chr(9) & hash & Chr(9) & istag & Chr(9) & isstabletag + DetermineVersion = version & Chr(9) & isodate & Chr(9) & modified & Chr(9) & hash & Chr(9) & istag & Chr(9) & isstabletag & Chr(9) & year End If End Function diff --git a/projects/generate b/projects/generate index 2078809c88..7d3c599654 100755 --- a/projects/generate +++ b/projects/generate @@ -69,6 +69,7 @@ fi # First, collect the list of Windows files allegro_config="" sdl_config="1" +sdl2_config="1" png_config="1" os="MSVC" enable_dedicated="0" @@ -123,6 +124,7 @@ load_main_data() { if ($0 == "ALLEGRO" && "'$allegro_config'" == "") { next; } if ($0 == "SDL" && "'$sdl_config'" == "") { next; } + if ($0 == "SDL2" && "'$sdl2_config'" == "") { next; } if ($0 == "PNG" && "'$png_config'" == "") { next; } if ($0 == "OSX" && "'$os'" != "OSX") { next; } if ($0 == "OS2" && "'$os'" != "OS2") { next; } @@ -263,19 +265,22 @@ generate() { echo "Generating $2..." # Everything above the !!FILTERS!! marker cat "$ROOT_DIR/projects/$2".in | ${AWK} -v BINMODE=1 -v FILTERS="$3" -v FILES="$1" ' - { CR = (match($0, "\\r$") > 0 ? "\r" : "") } /^$/ { next } /!!FILTERS!!/ { split(FILTERS, filters, "\n"); for (i = 1; filters[i] != ""; i++) { - print filters[i] CR; + line = $0 + gsub(/!!FILTERS!!/, filters[i], line); + print line; } next; } /!!FILES!!/ { split(FILES, files, "\n"); for (i = 1; files[i] != ""; i++) { - print files[i] CR; + line = $0 + gsub(/!!FILES!!/, files[i], line); + print line; } next; } diff --git a/projects/generate.vbs b/projects/generate.vbs index 169f8b6890..577dce9558 100644 --- a/projects/generate.vbs +++ b/projects/generate.vbs @@ -172,6 +172,7 @@ Sub load_main_data(filename, ByRef vcxproj, ByRef filters, ByRef files) line = Replace(line, "#if ", "") If deep = skip And ( _ line = "SDL" Or _ + line = "SDL2" Or _ line = "PNG" Or _ line = "WIN32" Or _ line = "MSVC" Or _ @@ -321,21 +322,26 @@ Sub load_baseset_data(dir, langdir, ByRef vcxproj, ByRef files, ByRef langs) End Sub Sub generate(data, dest, data2) - Dim srcfile, destfile, line + Dim srcfile, destfile, line, regexp WScript.Echo "Generating " & FSO.GetFileName(dest) & "..." Set srcfile = FSO.OpenTextFile(dest & ".in", 1, 0, 0) Set destfile = FSO.CreateTextFile(dest, -1, 0) If Not IsNull(data2) Then ' Everything above the !!FILTERS!! marker + Set regexp = New RegExp + regexp.Pattern = "!!FILTERS!!" + regexp.Global = True + line = srcfile.ReadLine() - While line <> "!!FILTERS!!" + While Not regexp.Test(line) If len(line) > 0 Then destfile.WriteLine(line) line = srcfile.ReadLine() Wend ' Our generated content - destfile.WriteLine(data2) + line = regexp.Replace(line, data2) + destfile.WriteLine(line) End If ' Everything above the !!FILES!! marker diff --git a/projects/settings_vs140.vcxproj b/projects/settings_vs140.vcxproj index 9952df47bb..b5f5151821 100644 --- a/projects/settings_vs140.vcxproj +++ b/projects/settings_vs140.vcxproj @@ -23,9 +23,7 @@ - -..\objs\settings\settings_gen.exe -o ..\objs\settings\table\settings.h -b ..\src\table\settings.h.preamble -a ..\src\table\settings.h.postamble ..\src\table\company_settings.ini ..\src\table\currency_settings.ini ..\src\table\gameopt_settings.ini ..\src\table\misc_settings.ini ..\src\table\settings.ini ..\src\table\win32_settings.ini ..\src\table\window_settings.ini - + ..\objs\settings\settings_gen.exe -o ..\objs\settings\table\settings.h -b ..\src\table\settings.h.preamble -a ..\src\table\settings.h.postamble ..\src\table\company_settings.ini ..\src\table\currency_settings.ini ..\src\table\gameopt_settings.ini ..\src\table\misc_settings.ini ..\src\table\settings.ini ..\src\table\win32_settings.ini ..\src\table\window_settings.ini ..\objs\settings\table\ diff --git a/projects/settings_vs140.vcxproj.in b/projects/settings_vs140.vcxproj.in index 9bb0cc7f0b..dcbbfbd352 100644 --- a/projects/settings_vs140.vcxproj.in +++ b/projects/settings_vs140.vcxproj.in @@ -23,9 +23,7 @@ - -!!FILTERS!! - + !!FILTERS!! ..\objs\settings\table\ diff --git a/projects/settings_vs141.vcxproj b/projects/settings_vs141.vcxproj index 9c20f1407e..b3f6871945 100644 --- a/projects/settings_vs141.vcxproj +++ b/projects/settings_vs141.vcxproj @@ -23,9 +23,7 @@ - -..\objs\settings\settings_gen.exe -o ..\objs\settings\table\settings.h -b ..\src\table\settings.h.preamble -a ..\src\table\settings.h.postamble ..\src\table\company_settings.ini ..\src\table\currency_settings.ini ..\src\table\gameopt_settings.ini ..\src\table\misc_settings.ini ..\src\table\settings.ini ..\src\table\win32_settings.ini ..\src\table\window_settings.ini - + ..\objs\settings\settings_gen.exe -o ..\objs\settings\table\settings.h -b ..\src\table\settings.h.preamble -a ..\src\table\settings.h.postamble ..\src\table\company_settings.ini ..\src\table\currency_settings.ini ..\src\table\gameopt_settings.ini ..\src\table\misc_settings.ini ..\src\table\settings.ini ..\src\table\win32_settings.ini ..\src\table\window_settings.ini ..\objs\settings\table\ diff --git a/projects/settings_vs141.vcxproj.in b/projects/settings_vs141.vcxproj.in index 23e044cc17..1701c99f5f 100644 --- a/projects/settings_vs141.vcxproj.in +++ b/projects/settings_vs141.vcxproj.in @@ -23,9 +23,7 @@ - -!!FILTERS!! - + !!FILTERS!! ..\objs\settings\table\ diff --git a/projects/settings_vs142.vcxproj b/projects/settings_vs142.vcxproj index a2dda134b5..e0ed933091 100644 --- a/projects/settings_vs142.vcxproj +++ b/projects/settings_vs142.vcxproj @@ -23,9 +23,7 @@ - -..\objs\settings\settings_gen.exe -o ..\objs\settings\table\settings.h -b ..\src\table\settings.h.preamble -a ..\src\table\settings.h.postamble ..\src\table\company_settings.ini ..\src\table\currency_settings.ini ..\src\table\gameopt_settings.ini ..\src\table\misc_settings.ini ..\src\table\settings.ini ..\src\table\win32_settings.ini ..\src\table\window_settings.ini - + ..\objs\settings\settings_gen.exe -o ..\objs\settings\table\settings.h -b ..\src\table\settings.h.preamble -a ..\src\table\settings.h.postamble ..\src\table\company_settings.ini ..\src\table\currency_settings.ini ..\src\table\gameopt_settings.ini ..\src\table\misc_settings.ini ..\src\table\settings.ini ..\src\table\win32_settings.ini ..\src\table\window_settings.ini ..\objs\settings\table\ diff --git a/projects/settings_vs142.vcxproj.in b/projects/settings_vs142.vcxproj.in index 3e49b7ca02..4463c573d7 100644 --- a/projects/settings_vs142.vcxproj.in +++ b/projects/settings_vs142.vcxproj.in @@ -23,9 +23,7 @@ - -!!FILTERS!! - + !!FILTERS!! ..\objs\settings\table\ diff --git a/src/gamelog.cpp b/src/gamelog.cpp index b325dc7fd3..156dfe6287 100644 --- a/src/gamelog.cpp +++ b/src/gamelog.cpp @@ -87,6 +87,11 @@ void GamelogStopAction() if (print) GamelogPrintDebug(5); } +void GamelogStopAnyAction() +{ + if (_gamelog_action_type != GLAT_NONE) GamelogStopAction(); +} + /** * Frees the memory allocated by a gamelog */ diff --git a/src/gamelog.h b/src/gamelog.h index 0f21fe0f1b..e7951c50c7 100644 --- a/src/gamelog.h +++ b/src/gamelog.h @@ -27,6 +27,7 @@ enum GamelogActionType { void GamelogStartAction(GamelogActionType at); void GamelogStopAction(); +void GamelogStopAnyAction(); void GamelogFree(struct LoggedAction *gamelog_action, uint gamelog_actions); void GamelogReset(); diff --git a/src/industry_cmd.cpp b/src/industry_cmd.cpp index dfc43500f9..35def46098 100644 --- a/src/industry_cmd.cpp +++ b/src/industry_cmd.cpp @@ -1697,20 +1697,12 @@ static void PopulateStationsNearby(Industry *ind) return; } - /* Get our list of nearby stations. */ - FindStationsAroundTiles(ind->location, &ind->stations_near, false); - - /* Test if industry can accept cargo */ - uint cargo_index; - for (cargo_index = 0; cargo_index < lengthof(ind->accepts_cargo); cargo_index++) { - if (ind->accepts_cargo[cargo_index] != CT_INVALID) break; - } - if (cargo_index >= lengthof(ind->accepts_cargo)) return; - - /* Cargo is accepted, add industry to nearby stations nearby industry list. */ - for (Station *st : ind->stations_near) { - st->industries_near.insert(ind); - } + ForAllStationsAroundTiles(ind->location, [ind](Station *st, TileIndex tile) { + if (!IsTileType(tile, MP_INDUSTRY) || GetIndustryIndex(tile) != ind->index) return false; + ind->stations_near.insert(st); + st->AddIndustryToDeliver(ind); + return true; + }); } /** diff --git a/src/lang/afrikaans.txt b/src/lang/afrikaans.txt index 1a238f5ce7..0543208e1a 100644 --- a/src/lang/afrikaans.txt +++ b/src/lang/afrikaans.txt @@ -2728,7 +2728,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-2019 Die OpenTTD span +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} Die OpenTTD span # Framerate display window STR_FRAMERATE_CAPTION :{WHITE}Raamkoers diff --git a/src/lang/arabic_egypt.txt b/src/lang/arabic_egypt.txt index 0ac4914a75..233fd0543d 100644 --- a/src/lang/arabic_egypt.txt +++ b/src/lang/arabic_egypt.txt @@ -2306,7 +2306,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-2019 فريق النسخة المفتوحة +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}النسخة المفتوحة {COPYRIGHT}2002-{STRING} فريق النسخة المفتوحة # Framerate display window ############ Leave those lines in this order!! diff --git a/src/lang/basque.txt b/src/lang/basque.txt index 9f950f2b23..c45c82b812 100644 --- a/src/lang/basque.txt +++ b/src/lang/basque.txt @@ -2583,7 +2583,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-2019 The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} The OpenTTD team # Framerate display window STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL} koadroak/s diff --git a/src/lang/belarusian.txt b/src/lang/belarusian.txt index ac54c6ebb1..cbfdbc4c12 100644 --- a/src/lang/belarusian.txt +++ b/src/lang/belarusian.txt @@ -3018,7 +3018,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–2019 Каманда распрацоўнікаў OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002–{STRING} Каманда распрацоўнікаў OpenTTD # Framerate display window ############ Leave those lines in this order!! diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt index 0eb77a531d..fb6eeda55d 100644 --- a/src/lang/brazilian_portuguese.txt +++ b/src/lang/brazilian_portuguese.txt @@ -2689,7 +2689,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-2019 A equipe do OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} A equipe do OpenTTD # Framerate display window STR_FRAMERATE_CAPTION :{WHITE}Taxa de quadros diff --git a/src/lang/bulgarian.txt b/src/lang/bulgarian.txt index 0907f9b212..c942ed17a3 100644 --- a/src/lang/bulgarian.txt +++ b/src/lang/bulgarian.txt @@ -2636,7 +2636,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-2019 The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-{STRING} The OpenTTD team # Framerate display window STR_FRAMERATE_CAPTION :{WHITE}Скорост на кадрите diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index b38c6a107b..5ec7b6b2e7 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -236,6 +236,7 @@ STR_TOOLTIP_FILTER_CRITERIA :{BLACK}Filtra p STR_BUTTON_SORT_BY :{BLACK}Ordena per: STR_BUTTON_LOCATION :{G=Masculin}{BLACK}Lloc STR_BUTTON_RENAME :{BLACK}Canvia el nom +STR_TOOLTIP_CATCHMENT :{BLACK}Mostra/Amaga l'àrea de cobertura STR_TOOLTIP_CLOSE_WINDOW :{BLACK}Tanca la finestra STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS :{BLACK}Títol de la finestra: arrossegueu el títol per desplaçar la finestra. @@ -264,6 +265,7 @@ STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT_TOOLTIP :{BLACK}Activant STR_BUTTON_DEFAULT :{BLACK}Predeterminat STR_BUTTON_CANCEL :{BLACK}Cancel·la STR_BUTTON_OK :{BLACK}D'acord +STR_WARNING_PASSWORD_SECURITY :{YELLOW}Avís: Els administradors del servidor potser poden llegir el que escriviu aquí. # On screen keyboard window STR_OSK_KEYBOARD_LAYOUT :`1234567890-=\qwertyuiop[]asdfghjkl;' zxcvbnm,./ . @@ -927,6 +929,7 @@ STR_GAME_OPTIONS_CURRENCY_GEL :Lari georgià ( STR_GAME_OPTIONS_CURRENCY_IRR :Rial iranià (IRR) STR_GAME_OPTIONS_CURRENCY_RUB :Ruble rus modern (RUB) STR_GAME_OPTIONS_CURRENCY_MXN :Peso mexicà (MXN) +STR_GAME_OPTIONS_CURRENCY_CNY :Renminbi xinès (CNY) ############ end of currency region STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Vehicles de carretera @@ -1178,6 +1181,7 @@ STR_CONFIG_SETTING_AUTOSLOPE :Permet la modif STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Permet modelar el terreny sota les vies, els edificis i altres elements sense eliminar-los. STR_CONFIG_SETTING_CATCHMENT :Estableix una mida més real de l'àrea d'influència: {STRING} STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Permet tenir diferents mides de zones de captació de càrrega per diferents tipus d'estacions (aeroports, estacions de tren, etc.). +STR_CONFIG_SETTING_SERVE_NEUTRAL_INDUSTRIES :Les estacions de la companyia poden donar servei a industries amb estacions neutrals: {STRING} STR_CONFIG_SETTING_EXTRADYNAMITE :Permet l'esborrat de carreteres, ponts i túnels propietat de les poblacions: {STRING} STR_CONFIG_SETTING_EXTRADYNAMITE_HELPTEXT :Aquesta opció permet fer més fàcil l'esborrat d'infraestructures i construccions propietat de la població STR_CONFIG_SETTING_TRAIN_LENGTH :Longitud màxima dels trens: {STRING} @@ -1299,6 +1303,8 @@ STR_CONFIG_SETTING_POPULATION_IN_LABEL :Mostra els habi STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Mostra els habitants a les etiquetes dels noms de les poblacions al mapa STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Gruix de les línies dels gràfics: {STRING} STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Gruix de la línia als gràfics. Una línia més fina és més llegible, una línia més gruixuda és més fàcil de veure i els colors són més fàcils de distingir +STR_CONFIG_SETTING_SHOW_NEWGRF_NAME :Mostra el nom del NewGRF a la finestra de construcció de vehicles: {STRING} +STR_CONFIG_SETTING_SHOW_NEWGRF_NAME_HELPTEXT :Afegeix una línia a la finestra de construcció de vehicles que mostri de quin NewGRF és el vehicle seleccionat. STR_CONFIG_SETTING_LANDSCAPE :Paisatge: {STRING} STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :El tipus de paisatge defineix escenaris amb diferents tipus de càrrega i requisits per al creixement de les poblacions. Els NewGRF i l'script de la partida poden modificar-ne l'aparença i el comportament @@ -1475,6 +1481,7 @@ STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :Permet IA en mu STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT :Permet a les IA participar en partides multijugador. STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :#opcodes abans de suspendre els scripts: {STRING} STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES_HELPTEXT :Màxim nombre de passos de càlcul que un script pot fer en un torn +STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY :Ús de memòria màxim per script: {STRING} STR_CONFIG_SETTING_SERVINT_ISPERCENT :Els intervals de revisions es mostren en percentatges: {STRING} STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Escull si les revisions dels vehicles depenen del temps passat des de la darrera revisió o de la caiguda d'un cert percentatge de la fiabilitat màxima @@ -1533,10 +1540,12 @@ STR_CONFIG_SETTING_NEWS_MESSAGES_FULL :Complet STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :Les notícies en color apareixen el: {STRING} STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :Any en què els diaris comencen a fer anuncis en color. Abans d'aquest any, imprimiran en blanc i negre. STR_CONFIG_SETTING_STARTING_YEAR :Any d'inici: {STRING} +STR_CONFIG_SETTING_ENDING_YEAR_ZERO :Mai STR_CONFIG_SETTING_SMOOTH_ECONOMY :Activa economia suau (més canvis però més petits): {STRING} STR_CONFIG_SETTING_SMOOTH_ECONOMY_HELPTEXT :Quan està activat, els canvis de producció de la indústria són més habituals, i en passos més petits. Aquest paràmetre usualment no té efecte, si el tipus d'indústria estan proveïts per un NewGRF STR_CONFIG_SETTING_ALLOW_SHARES :Permet comprar participacions d'altres companyies: {STRING} STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Permet comprar i vendre accions de les companyies. Les accions només estan disponibles per companyies d'una certa edat. +STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Edat mínima de la companyia per negociar participacions: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Percentatge del benefici total a pagar en transferències: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Percentatge del benefici donat a branques intermediàries dins els sistemes, donant més control sobre els beneficis STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :En arrossegar, col·locar senyals cada: {STRING} @@ -2423,7 +2432,10 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_TUNNEL :{BLACK}Construe STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Construeix un túnel per a tramvies. Shift commuta construeix/mostra el cost estimat STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Intercanvia funció construeix/treu per la construcció de carreteres STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Canvia construeix/treu de la construcció de vies de tramvia +STR_ROAD_TOOLBAR_TOOLTIP_CONVERT_ROAD :{BLACK}Converteix/Millora el tipus de carretera. Shift commuta entre construir o mostrar-ne el cost estimat. +STR_ROAD_TOOLBAR_TOOLTIP_CONVERT_TRAM :{BLACK}Converteix/Millora el tipus de tramvia. Shift commuta construeix/mostra el cost estimat. +STR_ROAD_NAME_ROAD :Carretera # Road depot construction window STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Orientació de la cotxera @@ -2706,7 +2718,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :terreny propiet STR_ABOUT_OPENTTD :{WHITE}Quant a l'OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright original {COPYRIGHT} 1995 Chris Sawyer. Tots els drets reservats. STR_ABOUT_VERSION :{BLACK}Versió {REV} de l'OpenTTD -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2019 L'equip de l'OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} L'equip de l'OpenTTD # Framerate display window STR_FRAMERATE_CAPTION :{WHITE}Fotogrames per segon @@ -2726,6 +2738,7 @@ STR_FRAMERATE_MS_BAD :{RED}{DECIMAL}{ STR_FRAMERATE_FPS_GOOD :{LTBLUE}{DECIMAL}{NBSP}fps STR_FRAMERATE_FPS_WARN :{YELLOW}{DECIMAL}{NBSP}fps STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL}{NBSP}fps +STR_FRAMERATE_BYTES_WARN :{YELLOW}{BYTES} STR_FRAMERATE_GRAPH_MILLISECONDS :{TINY_FONT}{COMMA}{NBSP}ms STR_FRAMERATE_GRAPH_SECONDS :{TINY_FONT}{COMMA}{NBSP}s ############ Leave those lines in this order!! @@ -3091,6 +3104,7 @@ STR_TOWN_VIEW_RENAME_TOWN_BUTTON :Canvia el nom d # Town local authority window STR_LOCAL_AUTHORITY_CAPTION :{WHITE}{TOWN} autoritat local +STR_LOCAL_AUTHORITY_ZONE :{BLACK}Zona STR_LOCAL_AUTHORITY_COMPANY_RATINGS :{BLACK}Ratis de la companyia de transports: STR_LOCAL_AUTHORITY_COMPANY_RATING :{YELLOW}{COMPANY} {COMPANY_NUM}: {ORANGE}{STRING} STR_LOCAL_AUTHORITY_ACTIONS_TITLE :{BLACK}Accions disponibles: @@ -3348,6 +3362,7 @@ STR_COMPANY_INFRASTRUCTURE_VIEW_CAPTION :{WHITE}Infraest STR_COMPANY_INFRASTRUCTURE_VIEW_RAIL_SECT :{GOLD}Trossos de vies: STR_COMPANY_INFRASTRUCTURE_VIEW_SIGNALS :{WHITE}Senyals STR_COMPANY_INFRASTRUCTURE_VIEW_ROAD_SECT :{GOLD}Trossos de carretera: +STR_COMPANY_INFRASTRUCTURE_VIEW_TRAM_SECT :{GOLD}Trossos de tramvia: STR_COMPANY_INFRASTRUCTURE_VIEW_WATER_SECT :{GOLD}Cel·les d'aigua: STR_COMPANY_INFRASTRUCTURE_VIEW_CANALS :{WHITE}Canals STR_COMPANY_INFRASTRUCTURE_VIEW_STATION_SECT :{GOLD}Estacions: @@ -3358,8 +3373,10 @@ STR_COMPANY_INFRASTRUCTURE_VIEW_TOTAL :{WHITE}{CURRENC # Industry directory STR_INDUSTRY_DIRECTORY_CAPTION :{WHITE}Indústries STR_INDUSTRY_DIRECTORY_NONE :{ORANGE}- Cap - +STR_INDUSTRY_DIRECTORY_ITEM_INFO :{BLACK}{CARGO_LONG}{STRING}{YELLOW} (transportat: {COMMA}{NBSP}%){BLACK} STR_INDUSTRY_DIRECTORY_ITEM_NOPROD :{ORANGE}{INDUSTRY} STR_INDUSTRY_DIRECTORY_LIST_CAPTION :{BLACK}Nom de les indústries - clica al nom per centrar la vista en la indústria. Ctrl+Clic obre una nova vista al lloc de la indústria +STR_INDUSTRY_DIRECTORY_FILTER_ALL_TYPES :Tots els tipus de càrrega # Industry view STR_INDUSTRY_VIEW_CAPTION :{WHITE}{INDUSTRY} @@ -3456,6 +3473,7 @@ STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Compra de nous ############ range for vehicle availability starts STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Compra de nous vehicles sobre vies +STR_BUY_VEHICLE_ROAD_VEHICLE_ALL_CAPTION :Automòbils nous STR_BUY_VEHICLE_SHIP_CAPTION :Compra de nous vaixells STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Compra de noves aeronaus ############ range for vehicle availability ends @@ -3471,6 +3489,7 @@ STR_PURCHASE_INFO_REFITTABLE :(remodelable) STR_PURCHASE_INFO_DESIGNED_LIFE :{BLACK}Dissenyat: {GOLD}{NUM}{BLACK} Vida: {GOLD}{COMMA} any{P "" s} STR_PURCHASE_INFO_RELIABILITY :{BLACK}Fiabilitat màxima: {GOLD}{COMMA}% STR_PURCHASE_INFO_COST :{BLACK}Cost: {GOLD}{CURRENCY_LONG} +STR_PURCHASE_INFO_COST_REFIT :{BLACK}Cost: {GOLD}{CURRENCY_LONG}{BLACK} (Cost del remodelat: {GOLD}{CURRENCY_LONG}{BLACK}) STR_PURCHASE_INFO_WEIGHT_CWEIGHT :{BLACK}Pes: {GOLD}{WEIGHT_SHORT} ({WEIGHT_SHORT}) STR_PURCHASE_INFO_COST_SPEED :{BLACK}Cost: {GOLD}{CURRENCY_LONG}{BLACK} Velocitat: {GOLD}{VELOCITY} STR_PURCHASE_INFO_AIRCRAFT_CAPACITY :{BLACK}Capacitat: {GOLD}{CARGO_LONG}, {CARGO_LONG} @@ -3493,6 +3512,7 @@ STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_BUTTON :{BLACK}Compra e STR_BUY_VEHICLE_SHIP_BUY_VEHICLE_BUTTON :{BLACK}Compra el vaixell STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_BUTTON :{BLACK}Compra l'aeronau +STR_BUY_VEHICLE_TRAIN_BUY_REFIT_VEHICLE_BUTTON :{BLACK}Compra i remodela vehicles STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_TOOLTIP :{BLACK}Compra el tren/vagó seleccionat. Amb Maj+Clic, mostra el cost estimat sense comprar-lo. STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_TOOLTIP :{BLACK}Compra el vehicle marcat. Amb Maj+Clic, mostra el cost estimat sense comprar-lo. @@ -3614,6 +3634,7 @@ STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :{G=Femenin}loco STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=Femenin}locomotora de maglev STR_ENGINE_PREVIEW_ROAD_VEHICLE :{G=Masculin}automòbil +STR_ENGINE_PREVIEW_TRAM_VEHICLE :tramvia STR_ENGINE_PREVIEW_AIRCRAFT :{G=Masculin}avió STR_ENGINE_PREVIEW_SHIP :{G=Masculin}vaixell @@ -3663,6 +3684,8 @@ STR_REPLACE_ELRAIL_VEHICLES :Trens Elèctric STR_REPLACE_MONORAIL_VEHICLES :Trens monorail STR_REPLACE_MAGLEV_VEHICLES :Trens maglev +STR_REPLACE_ROAD_VEHICLES :Automòbils +STR_REPLACE_TRAM_VEHICLES :Tramvies STR_REPLACE_REMOVE_WAGON :{BLACK}Treure vagons: {ORANGE}{STRING} STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Fer que la substitució automàtica mantingui la llargada del tren eliminant vagons (començant pel front), si substituint la màquina el tren es fa més llarg @@ -4114,6 +4137,10 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Seleccio STR_AI_LIST_CANCEL :{BLACK}Cancel·la STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}No canviïs l'script. +STR_SCREENSHOT_SCREENSHOT :{BLACK}Captura de pantalla normal +STR_SCREENSHOT_DEFAULTZOOM_SCREENSHOT :{BLACK}Zoom de la captura de pantalla per defecte +STR_SCREENSHOT_HEIGHTMAP_SCREENSHOT :{BLACK}Captura de pantalla del mapa d'alçades +STR_SCREENSHOT_MINIMAP_SCREENSHOT :{BLACK}Captura de pantalla del minimapa # AI Parameters STR_AI_SETTINGS_CAPTION :{WHITE}Paràmetres {STRING} @@ -4387,6 +4414,7 @@ STR_ERROR_NO_SUITABLE_RAILROAD_TRACK :{WHITE}Via de t STR_ERROR_MUST_REMOVE_RAILROAD_TRACK :{WHITE}...abans s'ha de treure la via. STR_ERROR_CROSSING_ON_ONEWAY_ROAD :{WHITE}La carretera és un d'un sol sentit o està bloquejada STR_ERROR_CROSSING_DISALLOWED_RAIL :{WHITE}Els passos a nivell no estan permesos en aquest tipus de via +STR_ERROR_CROSSING_DISALLOWED_ROAD :{WHITE}No s'admeten passos a nivell en aquest tipus de carretera. STR_ERROR_CAN_T_BUILD_SIGNALS_HERE :{WHITE}Aquí no es poden construir senyals... STR_ERROR_CAN_T_BUILD_RAILROAD_TRACK :{WHITE}Aquí no es pot construir la via de tren... STR_ERROR_CAN_T_REMOVE_RAILROAD_TRACK :{WHITE}Aquí no es pot treure la via de tren... @@ -4406,6 +4434,8 @@ STR_ERROR_CAN_T_REMOVE_ROAD_FROM :{WHITE}Aquí no STR_ERROR_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}No puc treure la via de tramvia d'aquí... STR_ERROR_THERE_IS_NO_ROAD :{WHITE}... no hi ha carretera STR_ERROR_THERE_IS_NO_TRAMWAY :{WHITE}... no hi ha via de tramvia +STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... la carretera és incompatible. +STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... El tipus de tramvia és incompatible. # Waterway construction errors STR_ERROR_CAN_T_BUILD_CANALS :{WHITE}Aquí no es poden construir canals... diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index e2dd4b6fc1..4bb6040a59 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -2832,7 +2832,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-2019 OpenTTD tim +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} OpenTTD tim # Framerate display window STR_FRAMERATE_CAPTION :{WHITE}Broj sličica diff --git a/src/lang/czech.txt b/src/lang/czech.txt index e99fa39588..127eb7b623 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -2826,7 +2826,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-2019 Tým OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} Tým OpenTTD # Framerate display window STR_FRAMERATE_CAPTION :{WHITE}Počet snímků za sekundu diff --git a/src/lang/danish.txt b/src/lang/danish.txt index 759da1c774..27ffcbcf60 100644 --- a/src/lang/danish.txt +++ b/src/lang/danish.txt @@ -2736,7 +2736,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-2019 OpenTTD teamet +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} OpenTTD teamet # Framerate display window STR_FRAMERATE_CAPTION :{WHITE}Spilhastighed diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index 3f6ac00d32..6729a937b3 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -2736,7 +2736,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terrein in bedr STR_ABOUT_OPENTTD :{WHITE}Over OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Originele auteursrecht {COPYRIGHT} 1995 Chris Sawyer, alle rechten voorbehouden STR_ABOUT_VERSION :{BLACK}OpenTTD-versie {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2019 Het OpenTTD-team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} Het OpenTTD-team # Framerate display window STR_FRAMERATE_CAPTION :{WHITE}Framesnelheid diff --git a/src/lang/english.txt b/src/lang/english.txt index 577d1527b0..1a1ac318d0 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -2759,7 +2759,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-2019 The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{RAW_STRING} The OpenTTD team # Framerate display window STR_FRAMERATE_CAPTION :{WHITE}Frame rate diff --git a/src/lang/english_AU.txt b/src/lang/english_AU.txt index 5f6678e01a..3476cf476d 100644 --- a/src/lang/english_AU.txt +++ b/src/lang/english_AU.txt @@ -2645,7 +2645,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-2019 The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} The OpenTTD team # Framerate display window ############ Leave those lines in this order!! diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index 5a0a1817b5..76e6aed44e 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -2733,7 +2733,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-2019 The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} The OpenTTD team # Framerate display window STR_FRAMERATE_CAPTION :{WHITE}Frame rate diff --git a/src/lang/esperanto.txt b/src/lang/esperanto.txt index e6efa88273..32acf1ffd3 100644 --- a/src/lang/esperanto.txt +++ b/src/lang/esperanto.txt @@ -2251,7 +2251,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Kompanie poseda STR_ABOUT_OPENTTD :{WHITE}Pri OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Origina kopirajto {COPYRIGHT} 1995 Chris Sawyer, Ĉiuj rajtoj rezervitaj STR_ABOUT_VERSION :{BLACK}OpenTTD-versio {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2019 La teamo de OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-{STRING} La teamo de OpenTTD # Framerate display window ############ Leave those lines in this order!! diff --git a/src/lang/estonian.txt b/src/lang/estonian.txt index e6e2023a54..4adab3f203 100644 --- a/src/lang/estonian.txt +++ b/src/lang/estonian.txt @@ -318,6 +318,7 @@ STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT_TOOLTIP :{BLACK}Selle nu STR_BUTTON_DEFAULT :{BLACK}Esialgne STR_BUTTON_CANCEL :{BLACK}Tühista STR_BUTTON_OK :{BLACK}OK +STR_WARNING_PASSWORD_SECURITY :{YELLOW}Hoiatus: Serveriadministraatorid võivad olla võimelised lugema siinset teksti. # On screen keyboard window STR_OSK_KEYBOARD_LAYOUT :`1234567890-=\qwertyuiop[]asdfghjkl;' zxcvbnm,./ . @@ -411,6 +412,7 @@ STR_SCENEDIT_TOOLBAR_LANDSCAPE_GENERATION :{BLACK}Maastiku STR_SCENEDIT_TOOLBAR_TOWN_GENERATION :{BLACK}Linnade tekitamine STR_SCENEDIT_TOOLBAR_INDUSTRY_GENERATION :{BLACK}Tööstuste tekitamine STR_SCENEDIT_TOOLBAR_ROAD_CONSTRUCTION :{BLACK}Maanteede ehitamine +STR_SCENEDIT_TOOLBAR_TRAM_CONSTRUCTION :{BLACK}Trammiteede ehitamine STR_SCENEDIT_TOOLBAR_PLANT_TREES :{BLACK}Istuta puid. Shift valib ehitamise/hinna kuvamise režiimi STR_SCENEDIT_TOOLBAR_PLACE_SIGN :{BLACK}Paigalda silt STR_SCENEDIT_TOOLBAR_PLACE_OBJECT :{BLACK}Paigalda objekt. Shift valib ehitamise/hinna kuvamise režiimi @@ -526,7 +528,7 @@ STR_ABOUT_MENU_LAND_BLOCK_INFO :Maa-ala andmed STR_ABOUT_MENU_SEPARATOR : STR_ABOUT_MENU_TOGGLE_CONSOLE :Lülita konsool sisse/välja STR_ABOUT_MENU_AI_DEBUG :Arvutivea otsing -STR_ABOUT_MENU_SCREENSHOT :Ekraanitõmmis +STR_ABOUT_MENU_SCREENSHOT :Kuvapaugutus STR_ABOUT_MENU_SHOW_FRAMERATE :Näita kaadrisagedust STR_ABOUT_MENU_ABOUT_OPENTTD :'OpenTTD' kohta STR_ABOUT_MENU_SPRITE_ALIGNER :Sprite aligner @@ -930,7 +932,7 @@ STR_NEWS_EXCLUSIVE_RIGHTS_DESCRIPTION :{BIG_FONT}{BLAC STR_EXTRA_VIEW_PORT_TITLE :{WHITE}Vaateaken {COMMA} STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN :{BLACK}Kopeeri vaateaknasse STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN_TT :{BLACK}Kopeeri praegune vaade vaateaknasse -STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW :{BLACK}Kleebi vaateaknast +STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW :{BLACK}Muuda peamist vaadet STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW_TT :{BLACK}Vaateala koha võtmine peamiseks vaateks # Game options window @@ -1513,6 +1515,7 @@ STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :Tehismõistus m STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT :Võimaldab arvutil osaleda mitmikmängudes STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :#opcode-d ennem skripte on peatatud: {STRING} STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES_HELPTEXT :Maksimaalne arv arvutamise käike mida skript võib teha ühel sammul +STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_VALUE :{COMMA} MiB STR_CONFIG_SETTING_SERVINT_ISPERCENT :Hooldusvälp protsentides: {STRING} STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Vali kas sõiduki hooldus käivitub vastavalt ajale mis on möödunud viimasest hooldusest või kui sõiduki usaldusväärsus langeb allapoole lubatud piiri sõiduki maksimaalsest usaldusväärsuse protsendist @@ -2116,6 +2119,7 @@ STR_NETWORK_CONNECTION_DISCONNECT :{BLACK}Katkesta STR_NETWORK_NEED_GAME_PASSWORD_CAPTION :{WHITE}Server on kaitstud. Sisesta salasõna STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION :{WHITE}Ettevõte on kaitstud. Sisesta salasõna +STR_NETWORK_COMPANY_LIST_CLIENT_LIST_CAPTION :{WHITE}Klientide nimekiri # Network company list added strings STR_NETWORK_COMPANY_LIST_CLIENT_LIST :Klientide nimekiri @@ -2180,6 +2184,7 @@ STR_NETWORK_ERROR_WRONG_PASSWORD :{WHITE}Vale sal STR_NETWORK_ERROR_SERVER_FULL :{WHITE}Server on täis STR_NETWORK_ERROR_SERVER_BANNED :{WHITE}Sinu sisenemine siia serverisse on keelatud STR_NETWORK_ERROR_KICKED :{WHITE}Sind visati mängust välja +STR_NETWORK_ERROR_KICK_MESSAGE :{WHITE}Põhjus: {STRING} STR_NETWORK_ERROR_CHEATER :{WHITE}Selles serveris on petmine keelatud STR_NETWORK_ERROR_TOO_MANY_COMMANDS :{WHITE}Sa saatsid serverile liiga palju käsklusi korraga STR_NETWORK_ERROR_TIMEOUT_PASSWORD :{WHITE}Sisestasid salasõna liiga kaua @@ -2415,7 +2420,7 @@ STR_BUILD_SIGNAL_ELECTRIC_COMBO_TOOLTIP :{BLACK}Kombinee STR_BUILD_SIGNAL_ELECTRIC_PBS_TOOLTIP :{BLACK}Täiustatud signaal (elektriline){}Kui rongide tee kahe signaali vahel kordagi ei ristu, siis täiustatud signaalidega saab signaalivahedesse siseneda korraga mitu rongi. Täiustatud signaalidest saab tagant mööduda STR_BUILD_SIGNAL_ELECTRIC_PBS_OWAY_TOOLTIP :{BLACK}Ühesuunaline täiustatud signaal (elektriline){}Kui rongide tee kahe signaali vahel kordagi ei ristu, siis täiustatud signaalidega saab signaalivahedesse siseneda korraga mitu rongi. Ühesuunalistest täiustatud signaalidest ei saa tagant mööduda STR_BUILD_SIGNAL_CONVERT_TOOLTIP :{BLACK}Signaalide teisendamine{}Kui see on valitud, siis olemasoleval signaalil klõpsates teisendatakse see määratud signaalitüübiks ja -variandiks. Samal ajal Ctrl klahvi all hoides lülitutakse olemasoleva variandi vahel. Shift+klõps näitab teisendamise eeldatavat maksumust -STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_TOOLTIP :{BLACK}Signaalide paigaldustihedus +STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_TOOLTIP :{BLACK}Signaalide paigalduskaugus STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_DECREASE_TOOLTIP :{BLACK}Kahanda signaalide paigaldustihedust STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_INCREASE_TOOLTIP :{BLACK}Suurenda signaalide paigaldustihedust @@ -2456,6 +2461,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Ehita tr STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Lülitu maanteede ehitamise ja lammutamise vahel STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Lülitu trammitee ehitamise ja lammutamise vahel +STR_ROAD_NAME_ROAD :Sõidutee # Road depot construction window STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Depoo suund @@ -2652,7 +2658,7 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Põllud STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Lumine maa STR_LAI_CLEAR_DESCRIPTION_DESERT :Kõrb -STR_LAI_RAIL_DESCRIPTION_TRACK :Raudtee rööbas +STR_LAI_RAIL_DESCRIPTION_TRACK :Raudteerööbas STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Raudtee rööpad koos blokksignaalidega STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Raudtee rööpad koos eelsignaalidega STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Raudtee rööpad väljasõidusignaalidega @@ -2674,7 +2680,7 @@ STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Raudtee rööpa STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Raudtee rööpad koos komineeriutd ja täiustatud signaalidega STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Raudtee rööpad koos komineeritud ja ühesuunaliste täiustatud signaalidega STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Raudtee rööpad koos täisutatud ja ühesuunaliste täiustatud signaalidega -STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Raudtee Rongidepoo +STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Raudteedepoo STR_LAI_ROAD_DESCRIPTION_ROAD :Sõidutee STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Valgustatud sõidutee @@ -2738,7 +2744,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Ettevõtte maa STR_ABOUT_OPENTTD :{WHITE}OpenTTD lisainfo STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Algne autorikaitse {COPYRIGHT} 1995 Chris Sawyer, kõik õigused kaitstud STR_ABOUT_VERSION :{BLACK}OpenTTD osa {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2019 OpenTTD meeskond +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-{STRING} OpenTTD meeskond # Framerate display window STR_FRAMERATE_CAPTION :{WHITE}Kaadrisagedus @@ -2756,9 +2762,11 @@ STR_FRAMERATE_GAMELOOP :{BLACK}Mänguts STR_FRAMERATE_GL_AIRCRAFT :{BLACK} Õhusõiduki sammud: STR_FRAMERATE_GL_LINKGRAPH :{BLACK} Ahelgraafiku viide: STR_FRAMERATE_DRAWING :{BLACK}Graafika renderdamine: +STR_FRAMERATE_VIDEO :{BLACK}Videoväljund: ############ End of leave-in-this-order ############ Leave those lines in this order!! STR_FRAMETIME_CAPTION_GL_AIRCRAFT :Õhusõiduki sammud +STR_FRAMETIME_CAPTION_DRAWING :Graafika renderdamine ############ End of leave-in-this-order @@ -2901,6 +2909,7 @@ STR_NEWGRF_SETTINGS_VERSION :{BLACK}Versioon STR_NEWGRF_SETTINGS_MIN_VERSION :{BLACK}Min. ühilduv versioon: {SILVER}{NUM} STR_NEWGRF_SETTINGS_MD5SUM :{BLACK}MD5sum: {SILVER}{STRING} STR_NEWGRF_SETTINGS_PALETTE :{BLACK}Palett: {SILVER}{STRING} +STR_NEWGRF_SETTINGS_PALETTE_DEFAULT :Vaikimisi (D) STR_NEWGRF_SETTINGS_PARAMETER :{BLACK}Parameetrid: {SILVER}{STRING} STR_NEWGRF_SETTINGS_NO_INFO :{BLACK}Andmed puuduvad @@ -2947,7 +2956,7 @@ STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK}Mine ett STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Eelmine spait STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Proceed to the previous normal sprite, skipping any pseudo/recolour/font sprites and wrapping around at the begin 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}Liiguta spraiti , muutes X ja Y tasakaalu +STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Liiguta spraiti, muutes X ja Y tasakaalu. Ctrl+klõps, et liigutada kaheksa ühiku võrra korraga STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Lähtesta suhteline STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Lähtesta praegused suhtelised kõrvalekalded STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}X kõrvalekalle: {NUM}, Y kõrvalekalle: {NUM} (Absoluutne) @@ -3079,6 +3088,7 @@ STR_TOWN_VIEW_RENAME_TOWN_BUTTON :Linna nime vahe # Town local authority window STR_LOCAL_AUTHORITY_CAPTION :{WHITE}{TOWN} kohalik omavalitsus +STR_LOCAL_AUTHORITY_ZONE_TOOLTIP :{BLACK}Näita kohaliku omavalitsuse haldusala STR_LOCAL_AUTHORITY_COMPANY_RATINGS :{BLACK}Ettevõtete hinnangud: STR_LOCAL_AUTHORITY_COMPANY_RATING :{YELLOW}{COMPANY} {COMPANY_NUM}: {ORANGE}{STRING} STR_LOCAL_AUTHORITY_ACTIONS_TITLE :{BLACK}Pakutavad toimingud: @@ -3355,6 +3365,8 @@ STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Vaate ke STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Tootlikkuse tase: {YELLOW}{COMMA}% STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}Tööstus teatab kohesest sulgemisest! +STR_INDUSTRY_VIEW_REQUIRES_N_CARGO :{BLACK}Vajab: {YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_CARGO_LIST_EXTENSION :, {STRING}{STRING} STR_CONFIG_GAME_PRODUCTION :{WHITE}Tootlikuse muutmine (kaheksaga jaguv, kuni 2040) @@ -3469,6 +3481,7 @@ STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_BUTTON :{BLACK}Ehita ve STR_BUY_VEHICLE_SHIP_BUY_VEHICLE_BUTTON :{BLACK}Ehita laev STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_BUTTON :{BLACK}Ehita lennuk +STR_BUY_VEHICLE_AIRCRAFT_BUY_REFIT_VEHICLE_BUTTON :{BLACK}Osta ja seadista lennuk ümber STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_TOOLTIP :{BLACK}Osta valitud raudteesõiduk. Shift+klõpsuga kuvatakse eeldatav ostuhind STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_TOOLTIP :{BLACK}Osta valitud mootorsõiduk. Shift+klõpsuga kuvatakse eeldatav ostuhind @@ -4045,7 +4058,7 @@ STR_AI_GAME_SCRIPT :{BLACK}Mängu S STR_AI_GAME_SCRIPT_TOOLTIP :{BLACK}Vaata Mängu Skripti logi STR_ERROR_AI_NO_AI_FOUND :Laadimiseks sobivat tehismõistust ei leitud.{}See on asendustehismõistus, ning ei tee midagi.{}Tehismõistuseid saab laadida kasutades 'Internetisisu' süsteemi. -STR_ERROR_AI_PLEASE_REPORT_CRASH :{WHITE}Tõrge ühe töötava tehismõistusega. Palun teavitage sellest tehismõistuse autorit koos ekraanitõmmisega tehismõistuse tõrkeotsingu aknast. +STR_ERROR_AI_PLEASE_REPORT_CRASH :{WHITE}Tõrge ühe töötava tehismõistusega. Palun teavitage sellest tehismõistuse autorit koos kuvapaugutusega tehismõistuse tõrkeotsingu aknast. STR_ERROR_AI_DEBUG_SERVER_ONLY :{YELLOW}Tehismõistuse / GameScript-i silumise akent saab vaadata ainult server # AI configuration window @@ -4087,6 +4100,13 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Vali esi STR_AI_LIST_CANCEL :{BLACK}Loobu STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Ära skripti muuda +STR_SCREENSHOT_CAPTION :{WHITE}Tee kuvapaugutus +STR_SCREENSHOT_SCREENSHOT :{BLACK}Tavaline kuvapaugutus +STR_SCREENSHOT_ZOOMIN_SCREENSHOT :{BLACK}Täiesti sisse suumitud kuvapaugutus +STR_SCREENSHOT_DEFAULTZOOM_SCREENSHOT :{BLACK}Vaikimisi kuvapaugutuse suum +STR_SCREENSHOT_WORLD_SCREENSHOT :{BLACK}Terve kaardi kuvapaugutus +STR_SCREENSHOT_HEIGHTMAP_SCREENSHOT :{BLACK}Kõrguskaardi kuvapaugutus +STR_SCREENSHOT_MINIMAP_SCREENSHOT :{BLACK}Väikese kaardi kuvapaugutus # AI Parameters STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parameetrid @@ -4135,7 +4155,7 @@ STR_MESSAGE_ESTIMATED_INCOME :{WHITE}Eeldatav # Saveload messages STR_ERROR_SAVE_STILL_IN_PROGRESS :{WHITE}Ikka salvestamisel,{}palun oota salvestuse lõpuni! -STR_ERROR_AUTOSAVE_FAILED :{WHITE}Isesalvestamine ebaõnnestus +STR_ERROR_AUTOSAVE_FAILED :{WHITE}Automaatsalvestus ebaõnnestus STR_ERROR_UNABLE_TO_READ_DRIVE :{BLACK}Ei suuda kettalt lugeda STR_ERROR_GAME_SAVE_FAILED :{WHITE}Mängu salvestamine nurjus{}{STRING} STR_ERROR_UNABLE_TO_DELETE_FILE :{WHITE}Faili ei saa kustutada @@ -4170,11 +4190,11 @@ STR_WARNING_HEIGHTMAP_SCALE_MESSAGE :{YELLOW}Kaardi STR_WARNING_FALLBACK_SOUNDSET :{WHITE}Mäng ei leidnud helisid. Helid saad paigaldada Internetisisu laadimise aknast # Screenshot related messages -STR_WARNING_SCREENSHOT_SIZE_CAPTION :{WHITE}Hiiglaslik pilt -STR_WARNING_SCREENSHOT_SIZE_MESSAGE :{YELLOW}Ekraanitõmmise mõõtmed saavad olema {COMMA} x {COMMA} pikslit. Ekraanitõmmise tegemine võib võtta mõne aja. Kas sa oled kindel, et sa soovid jätkata +STR_WARNING_SCREENSHOT_SIZE_CAPTION :{WHITE}Hiiglaslik kuvapaugutus +STR_WARNING_SCREENSHOT_SIZE_MESSAGE :{YELLOW}Kuvapaugutuse mõõtmed saavad olema {COMMA} x {COMMA} pikslit. Kuvapaugutuse tegemine võib võtta tükk aega. Kas sa oled kindel, et sa soovid jätkata? -STR_MESSAGE_SCREENSHOT_SUCCESSFULLY :{WHITE}Ekraanitõmmis edukalt salvestatud nimega '{STRING}' -STR_ERROR_SCREENSHOT_FAILED :{WHITE}Ekraanitõmmise võtmine nurjus! +STR_MESSAGE_SCREENSHOT_SUCCESSFULLY :{WHITE}Kuvapaugutus on edukalt salvestatud nimega '{STRING}' +STR_ERROR_SCREENSHOT_FAILED :{WHITE}Kuvapaugutuse tegemine nurjus! # Error message titles STR_ERROR_MESSAGE_CAPTION :{YELLOW}Sõnum diff --git a/src/lang/faroese.txt b/src/lang/faroese.txt index 889cb350e2..98680849a3 100644 --- a/src/lang/faroese.txt +++ b/src/lang/faroese.txt @@ -2412,7 +2412,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Ogn hjá fyrit STR_ABOUT_OPENTTD :{WHITE}Um OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Upprunalig upphavsrættindi {COPYRIGHT} 1995 Chris Sawyer, Øll rættindi umbiðin STR_ABOUT_VERSION :{BLACK}OpenTTD útgáva {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2019 OpenTTD toymi +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} OpenTTD toymi # Framerate display window ############ Leave those lines in this order!! diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt index dd08b6ecc4..61d084fe94 100644 --- a/src/lang/finnish.txt +++ b/src/lang/finnish.txt @@ -2734,7 +2734,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Yhtiön omistam STR_ABOUT_OPENTTD :{WHITE}Tietoja OpenTTD:stä STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Alkuperäiset oikeudet {COPYRIGHT} 1995 Chris Sawyer, kaikki oikeudet pidätetään STR_ABOUT_VERSION :{BLACK}OpenTTD-versio {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2019 The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} The OpenTTD team # Framerate display window STR_FRAMERATE_CAPTION :{WHITE}Kuvataajuus diff --git a/src/lang/french.txt b/src/lang/french.txt index f5d9d43e9a..2beef1c209 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -2737,7 +2737,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terrain apparte STR_ABOUT_OPENTTD :{WHITE}À propos de OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright original {COPYRIGHT} 1995 Chris Sawyer, Tous droits réservés STR_ABOUT_VERSION :{BLACK}OpenTTD version {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2019 L'équipe OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} L'équipe OpenTTD # Framerate display window STR_FRAMERATE_CAPTION :{WHITE}Fréquence d'images diff --git a/src/lang/gaelic.txt b/src/lang/gaelic.txt index ea82d30108..9e156e817c 100644 --- a/src/lang/gaelic.txt +++ b/src/lang/gaelic.txt @@ -2922,7 +2922,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Tìr a' chompan STR_ABOUT_OPENTTD :{WHITE}Mu dheidhinn OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Còir-lethbhreac tùsail {COPYRIGHT} 1995 Chris Sawyer, a h-uile còir glèidhte STR_ABOUT_VERSION :{BLACK}OpenTTD tionndadh {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2019 An sgioba OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} An sgioba OpenTTD # Framerate display window STR_FRAMERATE_CAPTION :{WHITE}Reat fhrèamaichean diff --git a/src/lang/galician.txt b/src/lang/galician.txt index 5405fa2f06..9e242bc352 100644 --- a/src/lang/galician.txt +++ b/src/lang/galician.txt @@ -2728,7 +2728,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terreo propieda STR_ABOUT_OPENTTD :{WHITE}Acerca de OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright orixinal {COPYRIGHT} 1995 Chris Sawyer, Tódolos dereitos reservados STR_ABOUT_VERSION :{BLACK}OpenTTD versión {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2019 O equipo de OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-{STRING} O equipo de OpenTTD # Framerate display window STR_FRAMERATE_CAPTION :{WHITE}Frame rate diff --git a/src/lang/german.txt b/src/lang/german.txt index fadffbecb3..15703a0c8f 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -2705,7 +2705,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Firmeneigenes G STR_ABOUT_OPENTTD :{WHITE}OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Transport Tycoon-Urheberrecht {COPYRIGHT} 1995 Chris Sawyer, alle Rechte vorbehalten STR_ABOUT_VERSION :{BLACK}OpenTTD-Version {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2019 OpenTTD-Team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} OpenTTD-Team # Framerate display window STR_FRAMERATE_CAPTION :{WHITE}Bildwiederholrate diff --git a/src/lang/greek.txt b/src/lang/greek.txt index 88fd54254a..cd82c670d3 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -2814,7 +2814,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-2019 Η ομάδα του OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} Η ομάδα του OpenTTD # Framerate display window STR_FRAMERATE_CAPTION :{WHITE}Ρυθμός καρέ γραφικών diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt index 17f0964d5a..f7014a1e82 100644 --- a/src/lang/hebrew.txt +++ b/src/lang/hebrew.txt @@ -2697,7 +2697,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :שטח בבעל STR_ABOUT_OPENTTD :{WHITE}OpenTTD אודות STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}כל הזכויות שמורות , {COPYRIGHT}1995 כריס סויר - זכויות יוצרים מקוריות STR_ABOUT_VERSION :{BLACK}{REV} גירסה , OpenTTD -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2019 The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-{STRING} The OpenTTD team # Framerate display window STR_FRAMERATE_CAPTION :{WHITE}קצב ריענון diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index 1f0f818b1e..bc3fdebb3e 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -2800,7 +2800,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Vállalat álta STR_ABOUT_OPENTTD :{WHITE}Az OpenTTD-ről STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Eredeti copyright {COPYRIGHT} 1995 Chris Sawyer, Minden jog fenntartva STR_ABOUT_VERSION :{BLACK}OpenTTD {REV} verzió -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2019 Az OpenTTD csapat +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-{STRING} Az OpenTTD csapat # Framerate display window STR_FRAMERATE_CAPTION :{WHITE}FPS ablak diff --git a/src/lang/icelandic.txt b/src/lang/icelandic.txt index 957213cb14..c54470b7d0 100644 --- a/src/lang/icelandic.txt +++ b/src/lang/icelandic.txt @@ -2519,7 +2519,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Land í eigu fy STR_ABOUT_OPENTTD :{WHITE}Um OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Upphaflegur höfundarréttur {COPYRIGHT} 1995 Chris Sawyer, Öll réttindi áskilin STR_ABOUT_VERSION :{BLACK}OpenTTD útgáfa {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2019 OpenTTD hópurinn +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-{STRING} OpenTTD hópurinn # Framerate display window ############ Leave those lines in this order!! diff --git a/src/lang/indonesian.txt b/src/lang/indonesian.txt index 7bd0f802b3..e9afa83075 100644 --- a/src/lang/indonesian.txt +++ b/src/lang/indonesian.txt @@ -2692,7 +2692,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Tanah milik Per STR_ABOUT_OPENTTD :{WHITE}Tentang OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Hak Cipta asli {COPYRIGHT} 1995 Chris Sawyer, Hak Cipta dilindungi STR_ABOUT_VERSION :{BLACK}OpenTTD versi {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2019 Tim OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} Tim OpenTTD # Framerate display window STR_FRAMERATE_CAPTION_SMALL :{STRING}{WHITE} ({DECIMAL}x) diff --git a/src/lang/irish.txt b/src/lang/irish.txt index 2ebe18da5b..c831385c78 100644 --- a/src/lang/irish.txt +++ b/src/lang/irish.txt @@ -2670,7 +2670,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Talamh faoi úi STR_ABOUT_OPENTTD :{WHITE}Maidir le OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Cóipcheart bunaidh {COPYRIGHT} 1995 Chris Sawyer, Gach ceart ar cosaint STR_ABOUT_VERSION :{BLACK}OpenTTD leagan {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2019 An fhoireann OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} An fhoireann OpenTTD # Framerate display window ############ Leave those lines in this order!! diff --git a/src/lang/italian.txt b/src/lang/italian.txt index 28f48feb66..8d65cb545f 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -2766,7 +2766,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terreno possedu STR_ABOUT_OPENTTD :{WHITE}Informazioni su OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright originale {COPYRIGHT} 1995 Chris Sawyer, Tutti i diritti riservati STR_ABOUT_VERSION :{BLACK}OpenTTD versione {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2019 Il team OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} Il team OpenTTD # Framerate display window STR_FRAMERATE_CAPTION :{WHITE}Frame rate diff --git a/src/lang/japanese.txt b/src/lang/japanese.txt index b640be2a88..2a17415975 100644 --- a/src/lang/japanese.txt +++ b/src/lang/japanese.txt @@ -2671,7 +2671,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :社有地 STR_ABOUT_OPENTTD :{WHITE}OpenTTDについて STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}オリジナル版権{COPYRIGHT} 1995 Chris Sawyer All rights reserved STR_ABOUT_VERSION :{BLACK}OpenTTD バージョン {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2019 The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} The OpenTTD team # Framerate display window ############ Leave those lines in this order!! diff --git a/src/lang/korean.txt b/src/lang/korean.txt index 3121312882..d8eb7a07cf 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -1412,7 +1412,7 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :짧은 (2012.01 STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :국제표준규격 (2012-01-01) STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :게임 시작 시 자동으로 일시 정지: {STRING} -STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :이 설정을 켜면, 새로운 게임을 시작할 때 지도를 더욱 자세히 살펴볼 수 있도록 게임을 자동으로 일시정지합니다. +STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :이 설정을 켜면, 새로운 게임을 시작할 때 지도를 더욱 자세히 살펴볼 수 있도록 게임을 자동으로 일시 정지합니다. STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :일시 정지 상태에서 가능한 행동: {STRING} STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_HELPTEXT :게임이 일시 정지된 동안에 할 수 있는 행동을 선택합니다. STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :아무 것도 못 함 @@ -2737,7 +2737,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :회사 소유 STR_ABOUT_OPENTTD :{WHITE}OpenTTD에 대해서 STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Original copyright {COPYRIGHT} 1995 Chris Sawyer, All rights reserved STR_ABOUT_VERSION :{BLACK}OpenTTD 버전 {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2019 OpenTTD 개발팀 +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} OpenTTD 개발팀 # Framerate display window STR_FRAMERATE_CAPTION :{WHITE}프레임레이트 diff --git a/src/lang/latin.txt b/src/lang/latin.txt index 89da7bafcd..0f85647390 100644 --- a/src/lang/latin.txt +++ b/src/lang/latin.txt @@ -2906,7 +2906,6 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terra societati STR_ABOUT_OPENTTD :{WHITE}De OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Privilegium impressorium originale {COPYRIGHT} MCMXCV Chris Sawyer, Omnia proprietatis iura reservantur STR_ABOUT_VERSION :{BLACK}OpenTTD editio {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} MMII-MMXIX Manus OpenTTD # Framerate display window STR_FRAMERATE_CAPTION_SMALL :{STRING}{WHITE} ({DECIMAL}x) diff --git a/src/lang/latvian.txt b/src/lang/latvian.txt index 65c5fc7f0f..7942f5c561 100644 --- a/src/lang/latvian.txt +++ b/src/lang/latvian.txt @@ -189,6 +189,8 @@ STR_COLOUR_ORANGE :Oranža STR_COLOUR_BROWN :Brūna STR_COLOUR_GREY :Pelēka STR_COLOUR_WHITE :Balta +STR_COLOUR_RANDOM :Nejaušs +STR_COLOUR_DEFAULT :Noklusējuma # Units used in OpenTTD STR_UNITS_VELOCITY_IMPERIAL :{COMMA}{NBSP}jūdzes stundā @@ -335,6 +337,7 @@ STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_IN :{BLACK}Pietuvin STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_OUT :{BLACK}Attālināt skatu STR_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}Būvēt sliežu ceļu STR_TOOLBAR_TOOLTIP_BUILD_ROADS :{BLACK}Būvēt ceļus +STR_TOOLBAR_TOOLTIP_BUILD_TRAMWAYS :{BLACK}Būvēt tramvajus STR_TOOLBAR_TOOLTIP_BUILD_SHIP_DOCKS :{BLACK}Būvēt kuģu piestātnes STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS :{BLACK}Būvēt lidostas STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}Atvērt ainavas rīkjoslu, lai paceltu/nolaistu zemes līmeni, stādītu kokus utt. @@ -397,6 +400,7 @@ STR_FILE_MENU_EXIT :Iziet # map menu STR_MAP_MENU_MAP_OF_WORLD :Pasaules karte STR_MAP_MENU_EXTRA_VIEW_PORT :Papildu skatvieta +STR_MAP_MENU_LINGRAPH_LEGEND :Kravu plūsmas apzīmējumi STR_MAP_MENU_SIGN_LIST :Zīmju saraksts ############ range for town menu starts @@ -914,6 +918,7 @@ STR_GAME_OPTIONS_CURRENCY_ZAR :Dienvidāfrikas STR_GAME_OPTIONS_CURRENCY_CUSTOM :Cita... STR_GAME_OPTIONS_CURRENCY_GEL :Gruzijas lari (GEL) STR_GAME_OPTIONS_CURRENCY_IRR :Irānas riāli (IRR) +STR_GAME_OPTIONS_CURRENCY_MXN :Meksikas peso (MXN) ############ end of currency region STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Autotransporta līdzekļi @@ -977,6 +982,8 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :Divkāršs STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Četrkāršs +STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normāls +STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Divkāršs izmērs STR_GAME_OPTIONS_BASE_GRF :{BLACK}Pamata grafikas kopa STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Atlasīt lietošanai pamata grafikas kopu @@ -1108,6 +1115,7 @@ STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Spēles iestat STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Spēles iestatījumi (tiek iekļauti saglabājumā, ietekmē tikai pašreizējo spēli) STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Uzņēmuma iestatījumi (tiek iekļauti saglabājumos, ietekmē tikai jaunās spēles) STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Uzņēmuma iestatījumi (tiek iekļauti saglabājumā, ietekmē tikai pašreizējo uzņēmumu) +STR_CONFIG_SETTING_CATEGORY_AND_TYPE_HIDES :{BLACK}Rādīt visus meklēšanas rezultātus, iestatot{}{SILVER}Kategorija {BLACK}uz {WHITE}{STRING} {BLACK}un {SILVER}Tips {BLACK}uz {WHITE}Visi iestatījumu veidi STR_CONFIG_SETTINGS_NONE :{WHITE}-Nav- STR_CONFIG_SETTING_OFF :izslēgts @@ -1137,6 +1145,7 @@ STR_CONFIG_SETTING_CONSTRUCTION_COSTS :Būvēšanas iz STR_CONFIG_SETTING_CONSTRUCTION_COSTS_HELPTEXT :Iestatīt būvēšanas un pirkumu izmaksas STR_CONFIG_SETTING_RECESSIONS :Lejupslīde: {STRING} STR_CONFIG_SETTING_TRAIN_REVERSING :Neatļaut vilcienu apgriešanos stacijās: {STRING} +STR_CONFIG_SETTING_TRAIN_REVERSING_HELPTEXT :Ja ieslēgts, stacijās vilcieni negriezīsies pretējā virzienā, pat ja braucot tādā veidā tie atrastu īsāku ceļu un nākamo pieturu; izņēmums ir gala stacijas STR_CONFIG_SETTING_DISASTERS :Katastrofas: {STRING} STR_CONFIG_SETTING_CITY_APPROVAL :Pilsētu domju attieksme pret platības pārstrukturēšanu: {STRING} @@ -1274,6 +1283,7 @@ STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT :(Tikai TerraGen STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Maksimālais attālums no kartes malas naftas pārstrādes rūpnīcām: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Naftas pārstrādes rūpnīcas ir būvējamas tikai kartes malu tuvumā, salu kartēm tas ir pie krasta STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Sniega līnijas augstums: {STRING} +STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Noteikt, kādā augstumā sākas subarktiskā ainava. Sniegs arī ietekmē industriju rašanos un apdzīvoto vietu pieaugšanas prasības STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Apvidus nelīdzenums: {STRING} STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Ļoti gluda STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_SMOOTH :Gluda @@ -1302,6 +1312,8 @@ STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_HELPTEXT :Apvidus krāsa STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_GREEN :zaļa STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_DARK_GREEN :{G=f}tumši zaļa STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :{G=f}violeta +STR_CONFIG_SETTING_SCROLLMODE :Skatvietas ritināšanas uzvedība: {STRING} +STR_CONFIG_SETTING_SCROLLMODE_LMB :Pārvietot karti ar kreiso peles pogu STR_CONFIG_SETTING_SMOOTH_SCROLLING :Plūdena skatvietas ritināšana: {STRING} STR_CONFIG_SETTING_MEASURE_TOOLTIP :Rādīt mērījumu rīkjoslu, izmantojot dažādus būvniecības rīkus: {STRING} STR_CONFIG_SETTING_MEASURE_TOOLTIP_HELPTEXT :Rāda lauciņu attālumus un augstuma starpības, ar vilkšanu veicot būvniecības darbības @@ -1320,6 +1332,7 @@ STR_CONFIG_SETTING_SCROLLWHEEL_OFF :izslēgts STR_CONFIG_SETTING_SCROLLWHEEL_MULTIPLIER :Peles ritenīša ātrums: {STRING} STR_CONFIG_SETTING_SCROLLWHEEL_MULTIPLIER_HELPTEXT :Vadīt peles ritenīša ritināšanas jutīgumu STR_CONFIG_SETTING_OSK_ACTIVATION :Ekrāntastatūra: {STRING} +STR_CONFIG_SETTING_OSK_ACTIVATION_HELPTEXT :Izvēlieties metodi, kas atvērs ekrnāna tastatūru, lai teksta lauciņos varētu ievadīt tekstu, izmantojot rādītājierīces. Tas ir domāts ierīcēm, kurām nav tastatūras. STR_CONFIG_SETTING_OSK_ACTIVATION_DISABLED :atspējota STR_CONFIG_SETTING_OSK_ACTIVATION_DOUBLE_CLICK :dubultklikšķis STR_CONFIG_SETTING_OSK_ACTIVATION_SINGLE_CLICK_FOCUS :viens klikšķis (kad fokusēta) @@ -1408,6 +1421,7 @@ STR_CONFIG_SETTING_AI_BUILDS_SHIPS :Atspējot dator STR_CONFIG_SETTING_AI_BUILDS_SHIPS_HELPTEXT :Šā iestatījuma ieslēgšana padara neiespējamu kuģu būvēšanu datoram STR_CONFIG_SETTING_AI_PROFILE :Noklusējuma iestatījumu profils: {STRING} +STR_CONFIG_SETTING_AI_PROFILE_HELPTEXT :Izvēlieties, kuru iestatījumu profilu izmantot nejaušam MI, vai sākotnējās vērtības, kad pievieno jaunu MI vai spēles skriptu STR_CONFIG_SETTING_AI_PROFILE_EASY :viegls STR_CONFIG_SETTING_AI_PROFILE_MEDIUM :vidējs STR_CONFIG_SETTING_AI_PROFILE_HARD :smags @@ -1472,6 +1486,7 @@ STR_CONFIG_SETTING_NEWS_MESSAGES_FULL :pilns STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :Krāsaini avīžu raksti parādās: {STRING} gadā STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :Gads kad sāk drukāt krāsainas avīzes. Pirms šā gada tās ir melnbaltas STR_CONFIG_SETTING_STARTING_YEAR :Sākuma gads: {STRING} +STR_CONFIG_SETTING_ENDING_YEAR_ZERO :Nekad STR_CONFIG_SETTING_SMOOTH_ECONOMY :Atļaut vienmērīgas izmaiņas ekonomikā: {STRING} STR_CONFIG_SETTING_SMOOTH_ECONOMY_HELPTEXT :Ja ieslēgts, ražošanas izmaiņas notiek biežāk un ar mazākiem soļiem. Šim iestatījumam parasti nav ietekmes, ja ražotņu veidi ir ieviesti ar NewGRF STR_CONFIG_SETTING_ALLOW_SHARES :Atļaut akciju pirkšanu no citiem uzņēmumiem: {STRING} @@ -1556,11 +1571,14 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :neviena STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Lielpilsētu sākuma lieluma reizinātājs: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Lielpilsētu vidējais lielums attiecībā pret parastām pilsētām spēles sākumā +STR_CONFIG_SETTING_LINKGRAPH_INTERVAL :Atjaunināt sadales grafu ik pa {STRING}{NBSP}dien{P 0:2 ai ām ām} STR_CONFIG_SETTING_DISTRIBUTION_MANUAL :manuāli STR_CONFIG_SETTING_DISTRIBUTION_ASYMMETRIC :asimetriska STR_CONFIG_SETTING_DISTRIBUTION_SYMMETRIC :simetriska +STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT :Izplatīšanas modelis citām kravu klasēm: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT :"nesimetriski" nozīmē, ka patvaļīgu kravas daudzumu var nosūtīt abos virzienos."manuāli" nozīmē, ka šīm kravām netiks veikta automātiska izplatīšana. STR_CONFIG_SETTING_LINKGRAPH_ACCURACY :Sadales precizitāte: {STRING} +STR_CONFIG_SETTING_DEMAND_DISTANCE :Attāluma ietekme uz pieprasījumu: {STRING} STR_CONFIG_SETTING_DEMAND_SIZE_HELPTEXT :Uzstādod šo mazāk par 100% liks simetriskajai sadalei izturēties vairāk kā asimetriskajai. Mazāk kravas ar varu tiks sūtīts atpakaļ ja noteikts daudzums tiks sūtīts uz piestātni. Ja jūs uzstādīsiet to uz 0% simetriskā sadale izturēsies tā pat kā asimetriskā. STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Ātruma mērvienības: {STRING} @@ -1737,6 +1755,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Mainīt STR_CHEAT_SETUP_PROD :{LTBLUE}Ieslēgt ražojumu vērtības maiņu: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}{COMPANY} - krāsu shēma STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Rādīt vispārējo identitates krāsu shēmas STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Rādīt vilcienu identitātes krāsu shēmas @@ -2294,7 +2313,7 @@ STR_BUILD_SIGNAL_ELECTRIC_PBS_TOOLTIP :{BLACK}Ceļa si STR_BUILD_SIGNAL_ELECTRIC_PBS_OWAY_TOOLTIP :{BLACK}Vienvirziena ceļa signālierīce (elektriska){}Ceļa signāls ļauj iebraukt signāla blokā vairāk kā vienam vilcienam vienlaicīgi, ja vien vilciens var rezervēt drošu apstāšanās punktu. Vienvirziena ceļa signālierīcēm nevar pabraukt garām no aizmugures STR_BUILD_SIGNAL_CONVERT_TOOLTIP :{BLACK}Signālierīču pārveidotājs{}Kad ieslēgts, klikšķis uz jau esošas signālierīces pārveidos to uz norādīto signāla tipu un variantu. Ctrl+klikšķis pārslēgs pašreizējo variantu. Shift+klikšķis rāda pārveidošanas tāmes vērtību STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_TOOLTIP :{BLACK}Vilkt signālu biežumu -STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_DECREASE_TOOLTIP :{BLACK}Samazināt signālierīču biežumu +STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_DECREASE_TOOLTIP :{BLACK}Samazināt signālierīču attālumu STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_INCREASE_TOOLTIP :{BLACK}Palielināt signālierīču biežumu # Bridge selection window @@ -2616,14 +2635,22 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Uzņēmumam pie STR_ABOUT_OPENTTD :{WHITE}Par OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Oriģināla autortiesības {COPYRIGHT} 1995 Kriss Sojers. Visas tiesības paturētas STR_ABOUT_VERSION :{BLACK}OpenTTD versija {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2019 OpenTTD darba grupa +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} OpenTTD darba grupa # Framerate display window +STR_FRAMERATE_CAPTION :{WHITE}Kadru biežums +STR_FRAMERATE_RATE_GAMELOOP_TOOLTIP :{BLACK}Spēles tikšķu skaits, ko simulēt vienā sekundē. STR_FRAMERATE_SPEED_FACTOR :{WHITE}pašreizējās spēles ātruma pakāpe: {DECIMAL}x STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK}Cik ātri spēle šobrīd iet salīdzinot ar standarta ātrumu. +STR_FRAMERATE_FPS_GOOD :{LTBLUE}{DECIMAL} kadrs/i +STR_FRAMERATE_FPS_WARN :{YELLOW}{DECIMAL} kadri/s ############ Leave those lines in this order!! +STR_FRAMERATE_GAMESCRIPT :{BLACK} Spēles skripts: ############ End of leave-in-this-order ############ Leave those lines in this order!! +STR_FRAMETIME_CAPTION_GL_LANDSCAPE :Pasaules tikšķi +STR_FRAMETIME_CAPTION_DRAWING :Grafiku attēlošana +STR_FRAMETIME_CAPTION_DRAWING_VIEWPORTS :Pasaules skatvietas attēlošanu STR_FRAMETIME_CAPTION_VIDEO :{WHITE}video izeja ############ End of leave-in-this-order @@ -2656,6 +2683,7 @@ STR_SAVELOAD_OSKTITLE :{BLACK}Ievadīt # World generation STR_MAPGEN_WORLD_GENERATION_CAPTION :{WHITE}Pasaules radīšana STR_MAPGEN_MAPSIZE :{BLACK}Kartes izmēri: +STR_MAPGEN_MAPSIZE_TOOLTIP :{BLACK}Izvēlieties kartes izmēru, izteikts lauciņos. Pieejamo lauciņu skaits var būt nedaudz mazāks STR_MAPGEN_BY :{BLACK}* STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}Pilsētu daudzums: STR_MAPGEN_DATE :{BLACK}Datums: @@ -2849,6 +2877,7 @@ STR_NEWGRF_CONFIRMATION_TEXT :{YELLOW}Jūs gr STR_NEWGRF_DUPLICATE_GRFID :{WHITE}Nevar pievienot failu: vienādi GRF ID STR_NEWGRF_COMPATIBLE_LOADED :{ORANGE}Atbilstošs fails nav atrasts (ielādēts saderīgs GRF) +STR_NEWGRF_TOO_MANY_NEWGRFS :{WHITE}Nevar pievienot datni: sasniegts NewGRF datņu limits STR_NEWGRF_COMPATIBLE_LOAD_WARNING :{WHITE}Saderīgs GRF(s) ielādēts pazudušajiem failiem STR_NEWGRF_DISABLED_WARNING :{WHITE}Trūkstošie GRF faili tikuši atspējoti @@ -2865,6 +2894,7 @@ STR_NEWGRF_LIST_MISSING :{RED}Trūkst fa STR_NEWGRF_BROKEN :{WHITE}NewGRF uzvedība '{0:STRING}' visticamāk izraisīs desinhronizācijas vai avārijas STR_NEWGRF_BROKEN_POWERED_WAGON :{WHITE}Tas mainīja '{1:ENGINE}' vilcējvagona stāvokli ārpus depo STR_NEWGRF_BROKEN_VEHICLE_LENGTH :{WHITE}Tas mainīja transportlīdzekļa '{1:ENGINE}' garumu, kad tas neatradās depo +STR_NEWGRF_BROKEN_CAPACITY :{WHITE}Tas mainīja transportlīdzekļa ietilpību '{1:ENGINE}', kad neatrodas depo vai netiek pielāgots STR_BROKEN_VEHICLE_LENGTH :{WHITE}Vilciens '{VEHICLE}', kas pieder '{COMPANY}' ir ar nepareizu garumu. Iespējams, vainīga problēma ar NewGRF. Spēle var desinhronizēties vai avarēt STR_NEWGRF_BUGGY :{WHITE}NewGRF '{0:STRING}' sniedz nepareizu informāciju @@ -3038,6 +3068,7 @@ STR_STATION_LIST_NO_WAITING_CARGO :{BLACK}Neviena STR_STATION_VIEW_CAPTION :{WHITE}{STATION} {STATION_FEATURES} STR_STATION_VIEW_WAITING_CARGO :{WHITE}{CARGO_LONG} STR_STATION_VIEW_EN_ROUTE_FROM :{YELLOW}({CARGO_SHORT} no {STATION}) +STR_STATION_VIEW_RESERVED :{YELLOW}({CARGO_SHORT} rezervēts iekraušanai) STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Pieņem STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Rādīt pieņemamo kravu sarakstu @@ -3214,7 +3245,10 @@ STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Centrēt STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Ražošanas līmenis: {YELLOW}{COMMA}% STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}Nozare ir paziņojusi par nenovēršamu slēgšanu! +STR_INDUSTRY_VIEW_REQUIRES_N_CARGO :{BLACK}Pieprasa: {YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_PRODUCES_N_CARGO :{BLACK}Ražo: {YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{STRING}{BLACK}: {CARGO_SHORT} gaida{STRING} STR_CONFIG_GAME_PRODUCTION :{WHITE}Mainīt ražošanu (dalāmais ar 8, līdz pat 2040) STR_CONFIG_GAME_PRODUCTION_LEVEL :{WHITE}Mainīt ražošanas līmeni (procentos, līdz 800%) @@ -3238,7 +3272,7 @@ STR_VEHICLE_LIST_AVAILABLE_SHIPS :Pieejamie kuģi STR_VEHICLE_LIST_AVAILABLE_AIRCRAFT :Pieejamie lidaparāti STR_VEHICLE_LIST_AVAILABLE_ENGINES_TOOLTIP :{BLACK}Apskatīties visus dzinējus projektējumus, kas pieejami šim transportlīdzekļu veidam. -STR_VEHICLE_LIST_MANAGE_LIST :{BLACK}Labot sarakstu +STR_VEHICLE_LIST_MANAGE_LIST :{BLACK}Pārvaldīt sarakstu STR_VEHICLE_LIST_MANAGE_LIST_TOOLTIP :{BLACK}Sūtīt norādījumus visiem transportlīdzekļiem, kas ir šajā sarakstā STR_VEHICLE_LIST_REPLACE_VEHICLES :Nomainīt transportlīdzekļus STR_VEHICLE_LIST_SEND_FOR_SERVICING :Sūtīt uz apkopi @@ -3272,6 +3306,7 @@ STR_GROUP_RENAME_TOOLTIP :{BLACK}Pārdēv STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Klikšķināt, lai pasargātu šo grupu no vispārējās automātiskās aizstāšanas STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Grupas dzēšana +STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Vai tiešām vēlaties dzēst šo grupu un tās atvases (ja ir)? STR_GROUP_ADD_SHARED_VEHICLE :Pievienot kopīgos transportlīdzekļus STR_GROUP_REMOVE_ALL_VEHICLES :Novākt visus transportlīdzekļus @@ -3279,6 +3314,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Novākt visus t STR_GROUP_RENAME_CAPTION :{BLACK}Pārdēvēt grupu STR_GROUP_PROFIT_THIS_YEAR :Ienākumi šajā gadā: +STR_GROUP_PROFIT_LAST_YEAR :Peļņa pērn: # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Jauni dzelzceļa transportlīdzekļi @@ -3311,6 +3347,7 @@ STR_PURCHASE_INFO_AIRCRAFT_CAPACITY :{BLACK}Ietilpī STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Motorvagoni: {GOLD}+{POWER}zs{BLACK} Svars: {GOLD}+{WEIGHT_SHORT} STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Pielāgojams uz: {GOLD}{STRING} STR_PURCHASE_INFO_ALL_TYPES :Visi kravu veidi +STR_PURCHASE_INFO_NONE :Nav STR_PURCHASE_INFO_ALL_BUT :visu, izņemot {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Maksimālais vilces spēks: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Apgabas: {GOLD}{COMMA} lauciņi @@ -3325,6 +3362,7 @@ STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_BUTTON :{BLACK}Pirkt au STR_BUY_VEHICLE_SHIP_BUY_VEHICLE_BUTTON :{BLACK}Pirkt kuģi STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_BUTTON :{BLACK}Pirkt lidaparātu +STR_BUY_VEHICLE_TRAIN_BUY_REFIT_VEHICLE_BUTTON :{BLACK} Pirkt un pielāgot transporta līdzekli STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_TOOLTIP :{BLACK}Pirkt atzīmēto vilciena vagonu. Shift+klikšķis rāda izmaksu novērtējumu, neveicot pirkumu STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_TOOLTIP :{BLACK}Pirkt atzīmēto transportlīdzekli. Shift+klikšķis rāda izmaksu novērtējumu, neveicot pirkumu @@ -3442,6 +3480,7 @@ STR_ENGINE_PREVIEW_CAPTION :{WHITE}Ziņojum STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Mēs tikko esam izstrādājuši jaunu transportlīdzekli - {STRING}. Vai esat ieinteresēts iegūt izņēmuma tiesības izmantot šo transportlīdzekli uz vienu gadu, lai mēs redzētu tā iespējas pirms padaram pieejamu visiem? STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :dzelzceļa lokomotīve +STR_ENGINE_PREVIEW_ELRAIL_LOCOMOTIVE :elektrificēta dzelzceļa lokomotīve STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :viensliedes lokomotīve STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :magleva lokomotīve @@ -3488,6 +3527,7 @@ STR_REPLACE_ELRAIL_VEHICLES :Elektrificētā STR_REPLACE_MONORAIL_VEHICLES :Viensliedes transportlīdzekļi STR_REPLACE_MAGLEV_VEHICLES :Magleva transportlīdzekļi +STR_REPLACE_ROAD_VEHICLES :Autotransporta līdzekļi STR_REPLACE_REMOVE_WAGON :{BLACK}Vagona noņemšana: {ORANGE}{STRING} STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Automātiskā aizvietošana saglabās esošo vilciena garumu noņemot vagonus (sākot no priekšgala), ja mainot lokomotīvi tas kļūtu garāks @@ -3817,6 +3857,7 @@ STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Braukšana (nav STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Braukt ar ne vairāk kā {2:VELOCITY} (nav sarakstā) STR_TIMETABLE_TRAVEL_FOR :Braukt līdz {STRING} STR_TIMETABLE_TRAVEL_FOR_SPEED :Braukt uz {STRING} ar ne vairāk kā {VELOCITY} +STR_TIMETABLE_STAY_FOR_ESTIMATED :(stāvēt {STRING}, nav sarakstā) STR_TIMETABLE_STAY_FOR :un palikt līdz {STRING} STR_TIMETABLE_AND_TRAVEL_FOR :un braukt līdz {STRING} STR_TIMETABLE_DAYS :{COMMA}{NBSP}dien{P a as u} @@ -3931,6 +3972,8 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Izvēlē STR_AI_LIST_CANCEL :{BLACK}Atcelt STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Nemainīt skriptu +STR_SCREENSHOT_ZOOMIN_SCREENSHOT :{BLACK}Pilnībā pietuvināts ekrānuzņēmums +STR_SCREENSHOT_WORLD_SCREENSHOT :{BLACK}Visas kartes ekrānuzņēmums # AI Parameters STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} parametri @@ -4105,6 +4148,7 @@ STR_ERROR_FOREST_CAN_ONLY_BE_PLANTED :{WHITE}... mež STR_ERROR_CAN_ONLY_BE_BUILT_ABOVE_SNOW_LINE :{WHITE}... var būvēt tikai sniegotajos apgabalos STR_ERROR_CAN_ONLY_BE_BUILT_BELOW_SNOW_LINE :{WHITE}... var būvēt tikai bezsniega apgabalos +STR_ERROR_NO_SUITABLE_PLACES_FOR_INDUSTRIES_EXPLANATION :{WHITE}Mainīt kartes ģenerēšanas parametrus, lai iegūtu labāku karti # Station construction related errors STR_ERROR_CAN_T_BUILD_RAILROAD_STATION :{WHITE}Šeit nevar būvēt dzelzceļa staciju... diff --git a/src/lang/lithuanian.txt b/src/lang/lithuanian.txt index 077a34487b..06bd12d048 100644 --- a/src/lang/lithuanian.txt +++ b/src/lang/lithuanian.txt @@ -2889,7 +2889,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Kompanijos žem STR_ABOUT_OPENTTD :{WHITE}Apie OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Pradinės versijos teisės priklauso {COPYRIGHT} 1995 Chris Sawyer, Visos teisės saugomos STR_ABOUT_VERSION :{BLACK}OpenTTD versija {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2019 OpenTTD komanda +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-{STRING} OpenTTD komanda # Framerate display window ############ Leave those lines in this order!! diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index 6630690d5c..fba42f4420 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -1309,6 +1309,8 @@ STR_CONFIG_SETTING_POPULATION_IN_LABEL :Weis d'Awunnerz STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Weis d'Awunnerzuel vu Stied an deenen hirem Label un op der Kaart STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Déckt vun de Linnen vun de Grafiken: {STRING} STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Breed vun de Linnen an de Grafiken. Eng dënn Linn kann méi präzis gelies ginn, eng méi déck kann besser gesinn ginn an d'Faarwen sinn besser ze ënnerscheeden +STR_CONFIG_SETTING_SHOW_NEWGRF_NAME :Den NewGRF Numm an der Gefier-kafen Fënster uweisen: {STRING} +STR_CONFIG_SETTING_SHOW_NEWGRF_NAME_HELPTEXT :Weist eng Zeil an der Fënster un wou Gefier kaf ginn, aus wéi engem NewGRF dat Gefier geluede gouf. STR_CONFIG_SETTING_LANDSCAPE :Landschaft: {STRING} STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :Landschaften definéiren basis Spillszenarien mat verschiddenen Wueren an Stiedwuesstumviraussetzungen. NewGRF an Gamescripter erlaben méi fein Astellungen. @@ -2166,6 +2168,7 @@ STR_NETWORK_ERROR_WRONG_PASSWORD :{WHITE}Falscht STR_NETWORK_ERROR_SERVER_FULL :{WHITE}De Server ass voll STR_NETWORK_ERROR_SERVER_BANNED :{WHITE}Du bass vun dësem Server gebannt STR_NETWORK_ERROR_KICKED :{WHITE}Du goufs aus dem Spill geheit +STR_NETWORK_ERROR_KICK_MESSAGE :{WHITE}Grond: {STRING} STR_NETWORK_ERROR_CHEATER :{WHITE}Cheaten ass op dësem Server net erlaabt STR_NETWORK_ERROR_TOO_MANY_COMMANDS :{WHITE}Du hues zevill Befehler un de Server geschéckt STR_NETWORK_ERROR_TIMEOUT_PASSWORD :{WHITE}Du hues ze laang gebraucht fir e Passwuert anzeginn @@ -2225,6 +2228,7 @@ STR_NETWORK_MESSAGE_GIVE_MONEY :*** {STRING} hu STR_NETWORK_MESSAGE_GAVE_MONEY_AWAY :*** Du hues dem {1:STRING} {2:CURRENCY_LONG} ginn STR_NETWORK_MESSAGE_SERVER_SHUTDOWN :{WHITE}De Server huet d'Sessioun zougemaach STR_NETWORK_MESSAGE_SERVER_REBOOT :{WHITE}De Server gëtt nei gestart...{}W.e.g. waarden... +STR_NETWORK_MESSAGE_KICKED :*** {STRING} gouf gekickt. Grond: ({STRING}) # Content downloading window STR_CONTENT_TITLE :{WHITE}Lueden Inhalt erof @@ -2732,7 +2736,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Land am Firmenb STR_ABOUT_OPENTTD :{WHITE}Iwwert OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Original Copyright {COPYRIGHT} 1995 Chris Sawyer, All Rechter virbehalen STR_ABOUT_VERSION :{BLACK}OpenTTD Versioun {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2019 D'OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} D'OpenTTD team # Framerate display window STR_FRAMERATE_CAPTION :{WHITE}Biller pro Sekonn @@ -3399,6 +3403,10 @@ STR_INDUSTRY_DIRECTORY_ITEM_PROD2 :{ORANGE}{INDUST STR_INDUSTRY_DIRECTORY_ITEM_PROD3 :{ORANGE}{INDUSTRY} {STRING}, {STRING}, {STRING} STR_INDUSTRY_DIRECTORY_ITEM_PRODMORE :{ORANGE}{INDUSTRY} {STRING}, {STRING}, {STRING} an nach {NUM} méi... STR_INDUSTRY_DIRECTORY_LIST_CAPTION :{BLACK}Industrienimm - klick op en Numm fir d'Usiicht do drop ze zentréieren. Ctrl+Klick erstellt eng nei Usiicht op d'Industrie +STR_INDUSTRY_DIRECTORY_ACCEPTED_CARGO_FILTER :{BLACK}Akzeptéiert Wuer: {SILVER}{STRING} +STR_INDUSTRY_DIRECTORY_PRODUCED_CARGO_FILTER :{BLACK}Produzéiert Wuer: {SILVER}{STRING} +STR_INDUSTRY_DIRECTORY_FILTER_ALL_TYPES :All Wuerentypen +STR_INDUSTRY_DIRECTORY_FILTER_NONE :Keng # Industry view STR_INDUSTRY_VIEW_CAPTION :{WHITE}{INDUSTRY} @@ -4179,6 +4187,7 @@ STR_SCREENSHOT_ZOOMIN_SCREENSHOT :{BLACK}Voll gez STR_SCREENSHOT_DEFAULTZOOM_SCREENSHOT :{BLACK}Standard Zoom-Screenshot STR_SCREENSHOT_WORLD_SCREENSHOT :{BLACK}Screenshot vun der ganzer Kaart STR_SCREENSHOT_HEIGHTMAP_SCREENSHOT :{BLACK}Héichtekaartscreenshot +STR_SCREENSHOT_MINIMAP_SCREENSHOT :{BLACK}Minimap-Screenshot # AI Parameters STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parameter diff --git a/src/lang/malay.txt b/src/lang/malay.txt index 099ed57504..dee5d3da33 100644 --- a/src/lang/malay.txt +++ b/src/lang/malay.txt @@ -2417,7 +2417,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Tanah dimiliki STR_ABOUT_OPENTTD :{WHITE}Tentang OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Hakcipta Asal {COPYRIGHT} 1995 Chris Sawyer, Hakcipta terpelihara STR_ABOUT_VERSION :{BLACK}OpenTTD versi {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2019 The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-{STRING} The OpenTTD team # Framerate display window ############ Leave those lines in this order!! diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index 880a777bce..e46c5a5abc 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -2729,7 +2729,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Firma-eid lando STR_ABOUT_OPENTTD :{WHITE}Om OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Opprinnelig opphavsbeskyttet {COPYRIGHT} 1995 Chris Sawyer, Alle rettigheter reservert STR_ABOUT_VERSION :{BLACK}OpenTTD versjon {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2019 OpenTTD-teamet +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} OpenTTD-teamet # Framerate display window STR_FRAMERATE_CAPTION :{WHITE}Bildehastighet diff --git a/src/lang/norwegian_nynorsk.txt b/src/lang/norwegian_nynorsk.txt index e52486b21f..c5ba1ebf96 100644 --- a/src/lang/norwegian_nynorsk.txt +++ b/src/lang/norwegian_nynorsk.txt @@ -2593,7 +2593,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Feltet eigast a STR_ABOUT_OPENTTD :{WHITE}Om OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Opphaveleg opphavsbeskytta av {COPYRIGHT} 1995 Chris Sawyer, Alle rettigheiter reservert STR_ABOUT_VERSION :{BLACK}OpenTTD versjon {REV}. Oversett til nynorsk av Thor Morten Skogrand med fleire. -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2019 OpenTTD-teamet +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} OpenTTD-teamet # Framerate display window ############ Leave those lines in this order!! diff --git a/src/lang/polish.txt b/src/lang/polish.txt index a8b26ffea2..d5422c0e73 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -3116,7 +3116,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Teren w posiada STR_ABOUT_OPENTTD :{WHITE}OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Prawa Autorskie {COPYRIGHT} 1995 Chris Sawyer, Wszelkie prawa zastrzeżone STR_ABOUT_VERSION :{BLACK}OpenTTD wersja {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2019 Zespół OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-{STRING} Zespół OpenTTD # Framerate display window STR_FRAMERATE_CAPTION :{WHITE}Ilość klatek na sekundę diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt index 8dccef0b7d..2748363710 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -2723,7 +2723,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terreno proprie STR_ABOUT_OPENTTD :{WHITE}Sobre o OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Direitos de autor originais {COPYRIGHT} 1995 Chris Sawyer, Todos os direitos reservados STR_ABOUT_VERSION :{BLACK}OpenTTD versão {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2019 A equipa do OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} A equipa do OpenTTD # Framerate display window STR_FRAMERATE_CAPTION :{WHITE}Taxa de fotograma diff --git a/src/lang/romanian.txt b/src/lang/romanian.txt index 478b273082..3ac4676c41 100644 --- a/src/lang/romanian.txt +++ b/src/lang/romanian.txt @@ -2652,7 +2652,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Teren în propr STR_ABOUT_OPENTTD :{WHITE}Despre OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright original {COPYRIGHT} 1995 Chris Sawyer, Toate drepturile rezervate STR_ABOUT_VERSION :{BLACK}OpenTTD versiunea {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2019 Echipa OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} Echipa OpenTTD # Framerate display window STR_FRAMERATE_RATE_GAMELOOP_TOOLTIP :{BLACK}Număr de evenimente de joc simulate per secundă. diff --git a/src/lang/russian.txt b/src/lang/russian.txt index fdc010f792..4f61d08cf6 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -2916,7 +2916,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-2019 Команда разработчиков OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} Команда разработчиков OpenTTD # Framerate display window STR_FRAMERATE_CAPTION :{WHITE}Скорость игры diff --git a/src/lang/serbian.txt b/src/lang/serbian.txt index c63fc7d089..07d7f41b9e 100644 --- a/src/lang/serbian.txt +++ b/src/lang/serbian.txt @@ -2879,7 +2879,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Zemljište u po STR_ABOUT_OPENTTD :{WHITE}O OpenTTD-u STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Originalni kopirajt {COPYRIGHT} 1995 Chris Sawyer, Sva prava zadržana STR_ABOUT_VERSION :{BLACK}OpenTTD verzija {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2019 OpenTTD tim +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} OpenTTD tim # Framerate display window ############ Leave those lines in this order!! diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt index 7bc51d2c44..581a57e3da 100644 --- a/src/lang/simplified_chinese.txt +++ b/src/lang/simplified_chinese.txt @@ -2736,7 +2736,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-2019 OpenTTD 团队 +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} OpenTTD 团队 # Framerate display window STR_FRAMERATE_CAPTION :{WHITE}帧率 diff --git a/src/lang/slovak.txt b/src/lang/slovak.txt index 53765f31fd..66c82cac19 100644 --- a/src/lang/slovak.txt +++ b/src/lang/slovak.txt @@ -2738,7 +2738,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Spoločnosťou STR_ABOUT_OPENTTD :{WHITE}OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Pôvodný copyright: {COPYRIGHT} 1995 Chris Sawyer, všetky práva vyhradené STR_ABOUT_VERSION :{BLACK}OpenTTD verzia {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2019 team OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} team OpenTTD # Framerate display window ############ Leave those lines in this order!! diff --git a/src/lang/slovenian.txt b/src/lang/slovenian.txt index bf86b47715..2ff5a3b4c7 100644 --- a/src/lang/slovenian.txt +++ b/src/lang/slovenian.txt @@ -2826,7 +2826,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Ozemlje v lasti STR_ABOUT_OPENTTD :{WHITE}O OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Prvotne avtorske pravice {COPYRIGHT} 1995 Chris Sawyer, vse pravice pridržane STR_ABOUT_VERSION :{BLACK}OpenTTD različica {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2019 ekipa OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-{STRING} ekipa OpenTTD # Framerate display window ############ Leave those lines in this order!! diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 517dfe5b1e..6f76f0fc49 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -2726,7 +2726,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terreno propied STR_ABOUT_OPENTTD :{WHITE}Acerca de OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright Original {COPYRIGHT} 1995 Chris Sawyer, Todos los derechos reservados STR_ABOUT_VERSION :{BLACK}OpenTTD versión {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2019 El equipo OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} El equipo OpenTTD # Framerate display window STR_FRAMERATE_CAPTION :{WHITE}Fotogramas por segundo - FPS diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index 8802262c02..40367ee652 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -2737,7 +2737,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terreno propied STR_ABOUT_OPENTTD :{WHITE}Acerca de OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright original {COPYRIGHT} 1995 Chris Sawyer, Todos los derechos reservados STR_ABOUT_VERSION :{BLACK}OpenTTD versión {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2019, el equipo de OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING}, el equipo de OpenTTD # Framerate display window STR_FRAMERATE_CAPTION :{WHITE}FPS @@ -3980,7 +3980,7 @@ STR_ORDER_GO_TO_NEAREST_DEPOT :Ir al depósito STR_ORDER_GO_TO_NEAREST_HANGAR :Ir al hangar más cercano STR_ORDER_CONDITIONAL :Salto de orden condicional STR_ORDER_SHARE :Compartir órdenes -STR_ORDERS_GO_TO_TOOLTIP :{BLACK}Añadir nueva orden antes de la orden marcada o añadirla al final de la lista. Ctrl+Clic sobre una estación para establecer la orden a 'Cargar máx. cualquier carga', sobre un punto guía para 'Sin paradas' y sobre un depósito para 'Mantenimiento' (esta última desactivará el mantenimiento automático). Ctrl+Clic sobre otro vehículo para hacer que ambos compartan siempre las mismas órdenes. Clic sobre un vehículo para copiar sus órdenes (sin compartirlas). +STR_ORDERS_GO_TO_TOOLTIP :{BLACK}Añadir nueva orden antes de la orden marcada o añadirla al final de la lista. Ctrl+Clic en una estación para establecer la orden a 'Cargar máx. cualquier carga', en un punto de ruta para 'Sin paradas' y en un depósito para 'Mantenimiento' (desactiva el mantenimiento automático). Ctrl+Clic en otro vehículo para que ambos compartan las mismas órdenes. Clic en un vehículo para copiar sus órdenes (sin compartirlas). STR_ORDERS_VEH_WITH_SHARED_ORDERS_LIST_TOOLTIP :{BLACK}Ver todos los vehículos que comparten el mismo itinerario diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index 7dfef19c34..5eaa0e3c17 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -2725,7 +2725,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Mark som ägs a STR_ABOUT_OPENTTD :{WHITE}Om OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Ursprunglig upphovsrätt {COPYRIGHT} 1995 Chris Sawyer, Alla rättigheter hävdas STR_ABOUT_VERSION :{BLACK}OpenTTD-version {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2019 OpenTTD-teamet +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} OpenTTD-teamet # Framerate display window STR_FRAMERATE_CAPTION :{WHITE}Bildfrekvens diff --git a/src/lang/tamil.txt b/src/lang/tamil.txt index c996e397e2..2c96b2f954 100644 --- a/src/lang/tamil.txt +++ b/src/lang/tamil.txt @@ -235,6 +235,7 @@ STR_TOOLTIP_FILTER_CRITERIA :{BLACK}Select f STR_BUTTON_SORT_BY :{BLACK}Sort by STR_BUTTON_LOCATION :{BLACK}Location STR_BUTTON_RENAME :{BLACK}Rename +STR_TOOLTIP_CATCHMENT :{BLACK}தழுவு பகுதி காட்சியை நிலைமாற்று STR_TOOLTIP_CLOSE_WINDOW :{BLACK}சாளரத்தை மூடு STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS :{BLACK}சாளர தலைப்பு - சாளரத்தை நகர்த்த இழுக்கவும் @@ -817,6 +818,7 @@ STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} பிழையான கட்டளையைக் கொண்டுள்ளது STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} இரட்டடிப்பு கட்டளைகளைக் கொண்டுள்ளது STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} பிழையான நிலையத்தினை கட்டளைகளில் கொண்டுள்ளது +STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE} அதன் ஆர்டர்களில் ஓடுபாதை மிகக் குறுகியதாக இருக்கும் விமான நிலையத்தைக் கொண்டுள்ளது STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} பழையதாகிறது STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} பழையதாகிறது @@ -1359,6 +1361,7 @@ STR_CONFIG_SETTING_NEWS_CHANGES_ACCEPTANCE :சரக்க STR_CONFIG_SETTING_NEWS_SUBSIDIES :மானியங்கள்: {STRING} STR_CONFIG_SETTING_NEWS_SUBSIDIES_HELPTEXT :மானியம் தொடர்பான நிகழ்வுகள் பற்றி செய்தித்தாளினைக் காட்டவும் STR_CONFIG_SETTING_NEWS_GENERAL_INFORMATION :பொதுவான விவரம்: {STRING} +STR_CONFIG_SETTING_NEWS_GENERAL_INFORMATION_HELPTEXT :பிரத்தியேக உரிமைகள் வாங்குதல் அல்லது சாலை புனரமைப்புக்கு நிதியளித்தல் போன்ற பொதுவான நிகழ்வுகளைப் பற்றி செய்தித்தாளைக் காண்பி STR_CONFIG_SETTING_NEWS_MESSAGES_OFF :நிறுத்து STR_CONFIG_SETTING_NEWS_MESSAGES_SUMMARY :தொகுப்பு @@ -1394,6 +1397,7 @@ STR_CONFIG_SETTING_ALLOW_TOWN_ROADS :நகரங் STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS :நகரங்கள் சாலைச் சந்திப்புகளை கட்ட அனுமதி: {STRING} STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS_HELPTEXT :இந்த அமைப்பு நகராட்சிகள் இருப்புப்பாதை சந்திக் கடவுகளைக் கட்ட அனுமதிக்கும் STR_CONFIG_SETTING_NOISE_LEVEL :விமான நிலையங்களுக்கு நகராட்சியால் நிர்ணயிக்கப்பட்ட இரைச்சல் அளவினை அனுமதிக்கவும்: {STRING} +STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :இந்த அமைப்பு முடக்கப்பட்டுள்ளதால், ஒவ்வொரு ஊரிலும் இரண்டு விமான நிலையங்கள் இருக்கலாம். இந்த அமைப்பு இயக்கப்பட்டவுடன், ஒரு நகரத்தின் விமான நிலையங்களின் எண்ணிக்கை நகரத்தின் சத்தத்தை ஏற்றுக்கொள்வதன் மூலம் வரையறுக்கப்படுகிறது, இது மக்கள் தொகை மற்றும் விமான நிலைய அளவு மற்றும் தூரத்தைப் பொறுத்தது STR_CONFIG_SETTING_TOWN_FOUNDING :ஆட்டத்தில் நகரங்களை நிறுவ அனுமதி: {STRING} STR_CONFIG_SETTING_TOWN_FOUNDING_HELPTEXT :இந்த அமைப்பு விளியாடுபவர்கள் ஆட்டத்தில் புதிய நகரங்களை நிறுவ அனுமதிக்கும் STR_CONFIG_SETTING_TOWN_FOUNDING_FORBIDDEN :இயலாது @@ -1541,6 +1545,7 @@ STR_INTRO_TOOLTIP_LOAD_GAME :{BLACK}பத STR_INTRO_TOOLTIP_PLAY_HEIGHTMAP :{BLACK}புதிய ஆட்டத்தினைத் தொடங்கு, உயர்படத்தினை நிலப்பரப்பிற்கு பயன்படுத்தி STR_INTRO_TOOLTIP_MULTIPLAYER :{BLACK}புதிய பல்வீரர் ஆட்டத்தினைத் தொடங்கவும் +STR_INTRO_TOOLTIP_TEMPERATE :{BLACK}'வெப்பமண்டல' நிலப்பரப்புப் பாணியைத் தேர்ந்தெடுக்கவும் STR_INTRO_TOOLTIP_SUB_ARCTIC_LANDSCAPE :{BLACK}'உபதுருவ' நிலப்பரப்புப் பாணியைத் தேர்ந்தெடுக்கவும் STR_INTRO_TOOLTIP_SUB_TROPICAL_LANDSCAPE :{BLACK}'மிதவெப்பமண்டல' நிலப்பரப்புப் பாணியைத் தேர்ந்தெடுக்கவும் STR_INTRO_TOOLTIP_TOYLAND_LANDSCAPE :{BLACK}'பொம்மைநில' நிலப்பரப்புப் பாணியைத் தேர்ந்தெடுக்கவும் @@ -2019,11 +2024,13 @@ STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD_FILE_NOT_WRITABLE :{WHITE}... க STR_CONTENT_ERROR_COULD_NOT_EXTRACT :{WHITE}பதிவிறக்கம் செய்யப்பட்ட கோப்பினை விரிவாக்க முடியவில்லை STR_MISSING_GRAPHICS_SET_CAPTION :{WHITE}அசைவூட்டங்கள் இல்லை +STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD க்கு கிராபிக்ஸ் செயல்பட வேண்டும், ஆனால் எதுவும் கண்டுபிடிக்கப்படவில்லை. இந்த கிராபிக்ஸ் பதிவிறக்கம் செய்து நிறுவ OpenTTD ஐ அனுமதிக்கிறீர்களா? STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}ஆம், அசையூட்டங்களை பதிவிறக்கம் செய் STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}இல்லை, OpenTTD-ஐ விட்டு வெளியேறு # Transparency settings window STR_TRANSPARENCY_CAPTION :{WHITE}ஒளி அமைப்புகள் +STR_TRANSPARENT_HOUSES_TOOLTIP :{BLACK}வீடுகளுக்கான வெளிப்படைத்தன்மையை நிலைமாற்று. Ctrl + கிளிக் பூட்ட செய்க # Linkgraph legend window STR_LINKGRAPH_LEGEND_ALL :{BLACK}அனைத்தும் @@ -2132,6 +2139,7 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}ட் STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}சாலை கட்டுமானம் செய்யவும்/நீக்கவும் STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}ட்ராம்வே கட்டுமானம் செய்யவும்/நீக்கவும் +STR_ROAD_NAME_ROAD :சாலை # Road depot construction window STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}சாலை வாகன பணிமனை திசையமைப்பு @@ -2403,7 +2411,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :நிறுவ STR_ABOUT_OPENTTD :{WHITE}OpenTTD-ஐ பற்றி STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}அசல் உரிமைகள் {COPYRIGHT} 1995 கிறிஸ் சாயர், எல்லா உரிமைகளும் பதிவுசெய்யப்பட்டது STR_ABOUT_VERSION :{BLACK}OpenTTD பதிப்பு {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2019 OpenTTD குழுமம் +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} OpenTTD குழுமம் # Framerate display window STR_FRAMERATE_CAPTION :{WHITE}பிரேம் வீதம் @@ -2619,6 +2627,7 @@ STR_NEWGRF_ERROR_OTTD_VERSION_NUMBER :{1:STRING} இ STR_NEWGRF_ERROR_AFTER_TRANSLATED_FILE :GRF கோப்பு மொழிபெயர்க்க வடிமைக்கப்பட்டது STR_NEWGRF_ERROR_TOO_MANY_NEWGRFS_LOADED :அளவிற்கு அதிகமான NewGRF கள் ஏற்றப்பட்டுள்ளன STR_NEWGRF_ERROR_UNEXPECTED_SPRITE :எதிர்பார்க்கப்படாத ஸ்பிரைட்டு(ஸ்பிரைட்டு {3:NUM}) +STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :பல அதிரடி 8 உள்ளீடுகளைக் கொண்டுள்ளது (ஸ்பிரிட் {3:NUM}) STR_NEWGRF_ERROR_GRM_FAILED :கேட்கப்பட்ட GRF கள் கிடைக்கவில்லை (ஸ்பிரைட்டு {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING}, {STRING}ஆல் செயலிழக்க செய்யப்பட்டது @@ -2830,6 +2839,8 @@ STR_STATION_VIEW_TO_HERE :{GREEN}{CARGO_S STR_STATION_VIEW_NONSTOP :{YELLOW}{CARGO_SHORT} எங்கும் நிற்காமல் STR_STATION_VIEW_GROUP_S_V_D :மூலம்-வழியாக-சேருமிடம் +STR_STATION_VIEW_GROUP_S_D_V :மூல-சேருமிடம்-வழியாக +STR_STATION_VIEW_GROUP_D_V_S :மூல-வழியாக-இலக்கு ############ range for rating starts STR_CARGO_RATING_APPALLING :மட்டம் @@ -2842,6 +2853,7 @@ STR_CARGO_RATING_EXCELLENT :சிறப் STR_CARGO_RATING_OUTSTANDING :மிகச்சிறப்பு ############ range for rating ends +STR_STATION_VIEW_CENTER_TOOLTIP :{BLACK}நிலைய இருப்பிடத்தின் மையக் காட்சி. Ctrl + Click நிலைய இருப்பிடத்தில் புதிய காட்சிப்பலகையைத் திறக்கிறது STR_STATION_VIEW_RENAME_TOOLTIP :{BLACK}நிலையத்தின் பெயரை மாற்று STR_STATION_VIEW_SCHEDULED_TRAINS_TOOLTIP :{BLACK}இந்த நிலையத்தினை அட்டவணையில் வைத்துள்ள அனைத்து இரயில்களையும் காட்டு @@ -3093,6 +3105,7 @@ STR_BUY_VEHICLE_AIRCRAFT_RENAME_TOOLTIP :{BLACK}வி STR_BUY_VEHICLE_AIRCRAFT_HIDE_TOGGLE_BUTTON :{BLACK}மறை STR_BUY_VEHICLE_ROAD_VEHICLE_SHOW_TOGGLE_BUTTON :{BLACK}காட்சி +STR_BUY_VEHICLE_SHIP_SHOW_TOGGLE_BUTTON :{BLACK}காட்சி STR_BUY_VEHICLE_SHIP_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}கப்பல் வகையினை காட்டு/மறை @@ -3208,6 +3221,7 @@ STR_REPLACE_VEHICLES_STOP :{BLACK}வா STR_REPLACE_ENGINES :பொறிகள் STR_REPLACE_WAGONS :வாகனங்கள் +STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}இடது தேர்ந்தெடுக்கப்பட்ட இயந்திரம் ஏதேனும் இருந்தால் மாற்றப்படும் எந்த இயந்திரத்தைக் காட்டுகிறது STR_REPLACE_RAIL_VEHICLES :இரயில் வாகனங்கள் STR_REPLACE_ELRAIL_VEHICLES :மின்சார இரயில் வாகனங்கள் STR_REPLACE_MONORAIL_VEHICLES :மோனோ இரயில் வாகனங்கள் @@ -3587,6 +3601,7 @@ STR_AI_DEBUG_SETTINGS :{BLACK}அம STR_AI_DEBUG_SETTINGS_TOOLTIP :{BLACK}வரிவடிவத்தின் அமைப்புகளை மாற்று STR_AI_DEBUG_RELOAD :{BLACK}AI-ஐ மறுபடியும் ஏற்று STR_AI_DEBUG_RELOAD_TOOLTIP :{BLACK}AI இனை நிறுத்தவும், வரிவடிவத்தினை திருப்பி ஏற்றவும், மேலும் AI இனை மீண்டும் தொடங்கவும் +STR_AI_DEBUG_BREAK_STR_ON_OFF_TOOLTIP :{BLACK}AI பதிவு செய்தி இடைவெளி சரத்துடன் பொருந்தும்போது உடைப்பதை இயக்கவும் / முடக்கவும் STR_AI_DEBUG_BREAK_ON_LABEL :{BLACK}உடைத்து ஆம்: STR_AI_DEBUG_BREAK_STR_OSKTITLE :{BLACK}உடைத்து ஆம் STR_AI_DEBUG_MATCH_CASE :{BLACK}case இனை சரிபடுத்தவும் @@ -3637,6 +3652,7 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}கு STR_AI_LIST_CANCEL :{BLACK}இரத்து செய் STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}வரிவடிவத்தினை மாற்றாதே +STR_SCREENSHOT_SCREENSHOT :{BLACK}சாதாரண திரைப்பிடிப்பு # AI Parameters STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} குணாதிசயங்கள் diff --git a/src/lang/thai.txt b/src/lang/thai.txt index 3034a26495..d77655f4e4 100644 --- a/src/lang/thai.txt +++ b/src/lang/thai.txt @@ -2618,7 +2618,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-2019 ของ The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}ลิขสิทธิ์ OpenTTD {COPYRIGHT}2002-{STRING} ของ The OpenTTD team # Framerate display window ############ Leave those lines in this order!! diff --git a/src/lang/traditional_chinese.txt b/src/lang/traditional_chinese.txt index da97f13f51..ba244f2f5f 100644 --- a/src/lang/traditional_chinese.txt +++ b/src/lang/traditional_chinese.txt @@ -2671,7 +2671,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-2019 OpenTTD 開發小組 +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} OpenTTD 開發小組 # Framerate display window STR_FRAMERATE_DATA_POINTS :{BLACK}數據基於 {COMMA} 個採樣 diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index dc5eeaf8f0..6d2adab56c 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -2700,7 +2700,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Satın alınmı STR_ABOUT_OPENTTD :{WHITE}OpenTTD Hakkında STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Telif hakkı {COPYRIGHT} 1995 Chris Sawyer, Her hakkı saklıdır STR_ABOUT_VERSION :{BLACK}OpenTTD sürüm {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2019 OpenTTD ekibi +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} OpenTTD ekibi # Framerate display window STR_FRAMERATE_CAPTION :{WHITE}Kare oranı diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt index d5a6547c1f..200e4e97c1 100644 --- a/src/lang/ukrainian.txt +++ b/src/lang/ukrainian.txt @@ -2858,7 +2858,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Ця ділян STR_ABOUT_OPENTTD :{WHITE}Про OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Авторське право {COPYRIGHT} 1995 Кріс Сойєр, Всі права захищені STR_ABOUT_VERSION :{BLACK}OpenTTD версія {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2019 команда OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} команда OpenTTD # Framerate display window STR_FRAMERATE_CAPTION :{WHITE}Швидкість гри diff --git a/src/lang/unfinished/frisian.txt b/src/lang/unfinished/frisian.txt index 3af7f6a751..c0f836cd6e 100644 --- a/src/lang/unfinished/frisian.txt +++ b/src/lang/unfinished/frisian.txt @@ -2458,7 +2458,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Lân fan bedriu STR_ABOUT_OPENTTD :{WHITE}Oer OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Orizjineel copyright {COPYRIGHT} 1995 Chris Sawyer, All rights reserved STR_ABOUT_VERSION :{BLACK}OpenTTD-ferzje {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2019 It OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-{STRING} It OpenTTD team # Framerate display window ############ Leave those lines in this order!! diff --git a/src/lang/unfinished/ido.txt b/src/lang/unfinished/ido.txt index e709ba47c9..b48ddf424b 100644 --- a/src/lang/unfinished/ido.txt +++ b/src/lang/unfinished/ido.txt @@ -777,7 +777,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_HEADQUARTERS :Stabeyo di komp # About OpenTTD window STR_ABOUT_VERSION :{BLACK}OpenTTD versiono {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2019 La kruo OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-{STRING} La kruo OpenTTD # Framerate display window ############ Leave those lines in this order!! diff --git a/src/lang/unfinished/macedonian.txt b/src/lang/unfinished/macedonian.txt index 4a623223f4..50decfc5dc 100644 --- a/src/lang/unfinished/macedonian.txt +++ b/src/lang/unfinished/macedonian.txt @@ -1194,7 +1194,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Компани STR_ABOUT_OPENTTD :{WHITE}За OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Оригинален copyright {COPYRIGHT} 1995 Chris Sawyer, Сите права се задржани STR_ABOUT_VERSION :{BLACK}OpenTTD верзија {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2019 OpenTTD тимот +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-{STRING} OpenTTD тимот # Framerate display window ############ Leave those lines in this order!! diff --git a/src/lang/unfinished/persian.txt b/src/lang/unfinished/persian.txt index 907bd0935c..b27230b3b2 100644 --- a/src/lang/unfinished/persian.txt +++ b/src/lang/unfinished/persian.txt @@ -2374,7 +2374,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :زمین خری STR_ABOUT_OPENTTD :{WHITE}OpenTTD در باره ی STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Original copyright {COPYRIGHT} 1995 Chris Sawyer, All rights reserved STR_ABOUT_VERSION :{BLACK}OpenTTD ویرایش {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2019 The OpenTTD team +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-{STRING} The OpenTTD team # Framerate display window ############ Leave those lines in this order!! diff --git a/src/lang/unfinished/urdu.txt b/src/lang/unfinished/urdu.txt index 30d80d58a1..618b643ebf 100644 --- a/src/lang/unfinished/urdu.txt +++ b/src/lang/unfinished/urdu.txt @@ -2115,7 +2115,6 @@ STR_FOUND_TOWN_SELECT_LAYOUT_RANDOM :{G=f}{BLACK}ک # About OpenTTD window STR_ABOUT_OPENTTD :{WHITE}اوپن ٹی ٹی ڈی کے متعلق -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} ٢٠٠٢ - ٢٠١٦ OpenTTD ٹیم # Framerate display window ############ Leave those lines in this order!! diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt index 85d8776620..78d31e0f98 100644 --- a/src/lang/vietnamese.txt +++ b/src/lang/vietnamese.txt @@ -2727,7 +2727,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Đất công ty STR_ABOUT_OPENTTD :{WHITE}Về OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Nguyên tác bản quyền {COPYRIGHT} 1995 Chris Sawyer, All rights reserved STR_ABOUT_VERSION :{BLACK}OpenTTD phiên bản {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2019 Nhóm OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-{STRING} Nhóm OpenTTD # Framerate display window STR_FRAMERATE_CAPTION :{WHITE}Tốc độ khung hình diff --git a/src/lang/welsh.txt b/src/lang/welsh.txt index bde64703d5..b2446176ba 100644 --- a/src/lang/welsh.txt +++ b/src/lang/welsh.txt @@ -1333,6 +1333,7 @@ STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_HELPTEXT :Lliw y tirwedd STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_GREEN :Gwyrdd STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_DARK_GREEN :Gwyrdd tywyll STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :Fioled +STR_CONFIG_SETTING_SCROLLMODE_HELPTEXT :Ymddygiad tra'n sgrolio'r map STR_CONFIG_SETTING_SMOOTH_SCROLLING :Sgrolio prif ffenestr llyfn: {STRING} STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Rheoli syt y mae'r prif olygfa'n sgrolio at leoliad penodol pan yn clicio ar y map bychan neu yn rhoi gorchymyn i sgrolio at wrthrych penodol STR_CONFIG_SETTING_MEASURE_TOOLTIP :Dangos cymorth mesur wrth ddefnyddio'r offer adeiladu amrywiol: {STRING} @@ -2678,17 +2679,20 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Tir cwmni STR_ABOUT_OPENTTD :{WHITE}Gwybodaeth am OpenTTD STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Hawlfraint Wreiddiol {COPYRIGHT} 1995 Chris Sawyer, Holl cedwir pob hawl STR_ABOUT_VERSION :{BLACK}fersiwn OpenTTD {REV} -STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2019 Y tîm OpenTTD +STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-{STRING} Y tîm OpenTTD # Framerate display window +STR_FRAMERATE_RATE_GAMELOOP_TOOLTIP :{BLACK}Nifer y ticiau gêm a efelychir bob eiliad. STR_FRAMERATE_RATE_BLITTER_TOOLTIP :{BLACK}Nifer o fframiau fideo a lunir bob eiliad. STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK}Pa mor gyflym mae'r gêm yn rhedeg, o gymharu a'r cyflymder i'w ddisgwyl ar gyfradd efelychu arferol. +STR_FRAMERATE_AVERAGE :{WHITE}Cymedr STR_FRAMERATE_FPS_GOOD :{LTBLUE}{DECIMAL} frâm yr eiliad ############ Leave those lines in this order!! STR_FRAMERATE_GL_ECONOMY :{BLACK} Trin cargo: ############ End of leave-in-this-order ############ Leave those lines in this order!! STR_FRAMETIME_CAPTION_VIDEO :Allbwn fideo +STR_FRAMETIME_CAPTION_SOUND :Cymysgu sain ############ End of leave-in-this-order diff --git a/src/misc_gui.cpp b/src/misc_gui.cpp index cfef929230..c56c8b0341 100644 --- a/src/misc_gui.cpp +++ b/src/misc_gui.cpp @@ -26,6 +26,7 @@ #include "zoom_func.h" #include "guitimer_func.h" #include "build_confirmation_func.h" +#include "rev.h" #include "widgets/misc_widget.h" @@ -406,7 +407,7 @@ static const NWidgetPart _nested_about_widgets[] = { NWidget(WWT_EMPTY, INVALID_COLOUR, WID_A_SCROLLING_TEXT), EndContainer(), NWidget(WWT_LABEL, COLOUR_GREY, WID_A_WEBSITE), SetDataTip(STR_BLACK_RAW_STRING, STR_NULL), - NWidget(WWT_LABEL, COLOUR_GREY), SetDataTip(STR_ABOUT_COPYRIGHT_OPENTTD, STR_NULL), + NWidget(WWT_LABEL, COLOUR_GREY, WID_A_COPYRIGHT), SetDataTip(STR_ABOUT_COPYRIGHT_OPENTTD, STR_NULL), EndContainer(), }; @@ -502,6 +503,7 @@ struct AboutWindow : public Window { void SetStringParameters(int widget) const override { if (widget == WID_A_WEBSITE) SetDParamStr(0, "Website: http://www.openttd.org"); + if (widget == WID_A_COPYRIGHT) SetDParamStr(0, _openttd_revision_year); } void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) override diff --git a/src/music/midifile.cpp b/src/music/midifile.cpp index 197be14a14..67cc7b192c 100644 --- a/src/music/midifile.cpp +++ b/src/music/midifile.cpp @@ -886,21 +886,21 @@ void MidiFile::MoveFrom(MidiFile &other) static void WriteVariableLen(FILE *f, uint32 value) { - if (value < 0x7F) { + if (value <= 0x7F) { byte tb = value; fwrite(&tb, 1, 1, f); - } else if (value < 0x3FFF) { + } else if (value <= 0x3FFF) { byte tb[2]; tb[1] = value & 0x7F; value >>= 7; tb[0] = (value & 0x7F) | 0x80; value >>= 7; fwrite(tb, 1, sizeof(tb), f); - } else if (value < 0x1FFFFF) { + } else if (value <= 0x1FFFFF) { byte tb[3]; tb[2] = value & 0x7F; value >>= 7; tb[1] = (value & 0x7F) | 0x80; value >>= 7; tb[0] = (value & 0x7F) | 0x80; value >>= 7; fwrite(tb, 1, sizeof(tb), f); - } else if (value < 0x0FFFFFFF) { + } else if (value <= 0x0FFFFFFF) { byte tb[4]; tb[3] = value & 0x7F; value >>= 7; tb[2] = (value & 0x7F) | 0x80; value >>= 7; @@ -1013,7 +1013,7 @@ bool MidiFile::WriteSMF(const char *filename) ptrdiff_t sysexlen = sysexend - dp; WriteVariableLen(f, sysexlen); fwrite(dp, 1, sysexend - dp, f); - dp = sysexend; + dp = sysexend + 1; continue; } diff --git a/src/network/core/tcp_admin.cpp b/src/network/core/tcp_admin.cpp index fdeb3d829b..98227e0199 100644 --- a/src/network/core/tcp_admin.cpp +++ b/src/network/core/tcp_admin.cpp @@ -115,6 +115,7 @@ NetworkRecvStatus NetworkAdminSocketHandler::ReceivePackets() Packet *p; while ((p = this->ReceivePacket()) != nullptr) { NetworkRecvStatus res = this->HandlePacket(p); + delete p; if (res != NETWORK_RECV_STATUS_OKAY) return res; } diff --git a/src/network/network_content_gui.cpp b/src/network/network_content_gui.cpp index 3ebfe03d78..f61b76e372 100644 --- a/src/network/network_content_gui.cpp +++ b/src/network/network_content_gui.cpp @@ -953,7 +953,7 @@ public: { if (this->auto_select && !rci->IsSelected()) _network_content_client.ToggleSelectedState(rci); this->content.ForceRebuild(); - this->InvalidateData(); + this->InvalidateData(0, false); } void OnDownloadComplete(ContentID cid) override diff --git a/src/newgrf.cpp b/src/newgrf.cpp index e622fad071..9331d00dc8 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -8719,18 +8719,18 @@ GRFFile::GRFFile(const GRFConfig *config) } /* Initialise rail type map with default rail types */ - memset(this->railtype_map, INVALID_RAILTYPE, sizeof(this->railtype_map)); + std::fill(std::begin(this->railtype_map), std::end(this->railtype_map), INVALID_RAILTYPE); this->railtype_map[0] = RAILTYPE_RAIL; this->railtype_map[1] = RAILTYPE_ELECTRIC; this->railtype_map[2] = RAILTYPE_MONO; this->railtype_map[3] = RAILTYPE_MAGLEV; /* Initialise road type map with default road types */ - memset(this->roadtype_map, INVALID_ROADTYPE, sizeof(this->roadtype_map)); + std::fill(std::begin(this->roadtype_map), std::end(this->roadtype_map), INVALID_ROADTYPE); this->roadtype_map[0] = ROADTYPE_ROAD; /* Initialise tram type map with default tram types */ - memset(this->tramtype_map, INVALID_ROADTYPE, sizeof(this->tramtype_map)); + std::fill(std::begin(this->tramtype_map), std::end(this->tramtype_map), INVALID_ROADTYPE); this->tramtype_map[0] = ROADTYPE_TRAM; /* Copy the initial parameter list diff --git a/src/newgrf.h b/src/newgrf.h index 00394c681c..65df3698e4 100644 --- a/src/newgrf.h +++ b/src/newgrf.h @@ -132,7 +132,7 @@ struct GRFFile : ZeroedMemoryAllocator { std::vector roadtype_list; ///< Roadtype translation table (road) RoadType roadtype_map[ROADTYPE_END]; - std::vector tramtype_list; ///, Roadtype translation table (tram) + std::vector tramtype_list; ///< Roadtype translation table (tram) RoadType tramtype_map[ROADTYPE_END]; CanalProperties canal_local_properties[CF_END]; ///< Canal properties as set by this NewGRF diff --git a/src/openttd.cpp b/src/openttd.cpp index 01d6f8ff6a..4d35189850 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -64,6 +64,7 @@ #include "viewport_func.h" #include "viewport_sprite_sorter.h" #include "framerate_type.h" +#include "industry.h" #include "linkgraph/linkgraphschedule.h" @@ -1362,6 +1363,13 @@ static void CheckCaches() assert(memcmp(&v->cargo, buff, sizeof(VehicleCargoList)) == 0); } + /* Backup stations_near */ + std::vector old_town_stations_near; + for (Town *t : Town::Iterate()) old_town_stations_near.push_back(t->stations_near); + + std::vector old_industry_stations_near; + for (Industry *ind : Industry::Iterate()) old_industry_stations_near.push_back(ind->stations_near); + for (Station *st : Station::Iterate()) { for (CargoID c = 0; c < NUM_CARGO; c++) { byte buff[sizeof(StationCargoList)]; @@ -1369,6 +1377,46 @@ static void CheckCaches() st->goods[c].cargo.InvalidateCache(); assert(memcmp(&st->goods[c].cargo, buff, sizeof(StationCargoList)) == 0); } + + /* Check docking tiles */ + TileArea ta; + std::map docking_tiles; + TILE_AREA_LOOP(tile, st->docking_station) { + ta.Add(tile); + docking_tiles[tile] = IsDockingTile(tile); + } + UpdateStationDockingTiles(st); + if (ta.tile != st->docking_station.tile || ta.w != st->docking_station.w || ta.h != st->docking_station.h) { + DEBUG(desync, 2, "station docking mismatch: station %i, company %i", st->index, (int)st->owner); + } + TILE_AREA_LOOP(tile, ta) { + if (docking_tiles[tile] != IsDockingTile(tile)) { + DEBUG(desync, 2, "docking tile mismatch: tile %i", (int)tile); + } + } + + /* Check industries_near */ + IndustryList industries_near = st->industries_near; + st->RecomputeCatchment(); + if (st->industries_near != industries_near) { + DEBUG(desync, 2, "station industries near mismatch: station %i", st->index); + } + } + + /* Check stations_near */ + i = 0; + for (Town *t : Town::Iterate()) { + if (t->stations_near != old_town_stations_near[i]) { + DEBUG(desync, 2, "town stations near mismatch: town %i", t->index); + } + i++; + } + i = 0; + for (Industry *ind : Industry::Iterate()) { + if (ind->stations_near != old_industry_stations_near[i]) { + DEBUG(desync, 2, "industry stations near mismatch: industry %i", ind->index); + } + i++; } } diff --git a/src/os/windows/crashlog_win.cpp b/src/os/windows/crashlog_win.cpp index 9585bdf20f..7a1a524aa5 100644 --- a/src/os/windows/crashlog_win.cpp +++ b/src/os/windows/crashlog_win.cpp @@ -540,6 +540,9 @@ void *_safe_esp = nullptr; static LONG WINAPI ExceptionHandler(EXCEPTION_POINTERS *ep) { + /* Disable our event loop. */ + SetWindowLongPtr(GetActiveWindow(), GWLP_WNDPROC, (LONG_PTR)&DefWindowProc); + if (CrashLogWindows::current != nullptr) { CrashLog::AfterCrashLogCleanup(); ExitProcess(2); diff --git a/src/os/windows/ottdres.rc.in b/src/os/windows/ottdres.rc.in index 5b375790a3..721f791443 100644 --- a/src/os/windows/ottdres.rc.in +++ b/src/os/windows/ottdres.rc.in @@ -44,17 +44,17 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_DEFAULT // Dialog // -100 DIALOG DISCARDABLE 0, 0, 305, 99 +100 DIALOG DISCARDABLE 0, 0, 305, 101 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Fatal Application Failure" FONT 8, "MS Sans Serif" BEGIN - PUSHBUTTON "&Close",12,7,80,50,14 - PUSHBUTTON "&Emergency save",13,155,80,68,14 - PUSHBUTTON "",15,243,80,55,14 - EDITTEXT 11,7,101,291,118,ES_MULTILINE | ES_READONLY | WS_VSCROLL | + PUSHBUTTON "&Close",12,7,82,60,14 + PUSHBUTTON "&Emergency save",13,158,82,60,14 + PUSHBUTTON "",15,238,82,60,14 + EDITTEXT 11,7,103,291,118,ES_MULTILINE | ES_READONLY | WS_VSCROLL | WS_HSCROLL | NOT WS_TABSTOP - LTEXT "",10,36,7,262,65 + LTEXT "",10,36,5,262,72 ICON 100,IDC_STATIC,9,9,20,20 END @@ -98,7 +98,7 @@ BEGIN VALUE "FileDescription", "OpenTTD\0" VALUE "FileVersion", "!!VERSION!!\0" VALUE "InternalName", "openttd\0" - VALUE "LegalCopyright", "Copyright \xA9 OpenTTD Developers 2002-2019. All Rights Reserved.\0" + VALUE "LegalCopyright", "Copyright \xA9 OpenTTD Developers 2002-!!YEAR!!. All Rights Reserved.\0" VALUE "LegalTrademarks", "\0" VALUE "OriginalFilename", "openttd.exe\0" VALUE "PrivateBuild", "\0" diff --git a/src/rail_cmd.cpp b/src/rail_cmd.cpp index 7de00327eb..162fe97799 100644 --- a/src/rail_cmd.cpp +++ b/src/rail_cmd.cpp @@ -568,7 +568,6 @@ CommandCost CmdBuildSingleRail(TileIndex tile, DoCommandFlag flags, uint32 p1, u default: { /* Will there be flat water on the lower halftile? */ bool water_ground = IsTileType(tile, MP_WATER) && IsSlopeWithOneCornerRaised(tileh); - bool docking = IsPossibleDockingTile(tile) && IsDockingTile(tile); CommandCost ret = CheckRailSlope(tileh, trackbit, TRACK_BIT_NONE, tile); if (ret.Failed()) return ret; @@ -587,7 +586,7 @@ CommandCost CmdBuildSingleRail(TileIndex tile, DoCommandFlag flags, uint32 p1, u MakeRailNormal(tile, _current_company, trackbit, railtype); if (water_ground) { SetRailGroundType(tile, RAIL_GROUND_WATER); - SetDockingTile(tile, docking); + if (IsPossibleDockingTile(tile)) CheckForDockingTile(tile); } Company::Get(_current_company)->infrastructure.rail[railtype]++; DirtyCompanyInfrastructureWindows(_current_company); @@ -1851,7 +1850,11 @@ static CommandCost ClearTile_Track(TileIndex tile, DoCommandFlag flags) if (ret.Failed()) return ret; /* The track was removed, and left a coast tile. Now also clear the water. */ - if (flags & DC_EXEC) DoClearSquare(tile); + if (flags & DC_EXEC) { + bool remove = IsDockingTile(tile); + DoClearSquare(tile); + if (remove) RemoveDockingTile(tile); + } cost.AddCost(_price[PR_CLEAR_WATER]); } diff --git a/src/rev.cpp.in b/src/rev.cpp.in index 003fb5556e..824f2e9de9 100644 --- a/src/rev.cpp.in +++ b/src/rev.cpp.in @@ -50,6 +50,11 @@ const char _openttd_build_date[] = __DATE__ " " __TIME__; */ const char _openttd_revision_hash[] = "!!GITHASH!!"; +/** + * The year of this version. + */ +const char _openttd_revision_year[] = "!!YEAR!!"; + /** * Let us know if current build was modified. This detection * works even in the case when revision string is overridden by diff --git a/src/rev.h b/src/rev.h index f1e669aa56..7689383710 100644 --- a/src/rev.h +++ b/src/rev.h @@ -13,6 +13,7 @@ extern const char _openttd_revision[]; extern const char _openttd_build_date[]; extern const char _openttd_revision_hash[]; +extern const char _openttd_revision_year[]; extern const byte _openttd_revision_modified; extern const byte _openttd_revision_tagged; extern const uint32 _openttd_newgrf_version; diff --git a/src/road_gui.cpp b/src/road_gui.cpp index 1dccfa9e1d..1dce233606 100644 --- a/src/road_gui.cpp +++ b/src/road_gui.cpp @@ -1395,7 +1395,7 @@ DropDownList GetScenRoadTypeDropDownList(RoadTramTypes rtts) DropDownListIconItem *item = new DropDownListIconItem(rti->gui_sprites.build_x_road, PAL_NONE, str, rt, !HasBit(avail_roadtypes, rt)); item->SetDimension(d); item->SetParam(0, rti->strings.menu_text); - item->SetParam(1, rti->max_speed); + item->SetParam(1, rti->max_speed / 2); list.emplace_back(item); } diff --git a/src/saveload/afterload.cpp b/src/saveload/afterload.cpp index 63e4b37e64..8919499756 100644 --- a/src/saveload/afterload.cpp +++ b/src/saveload/afterload.cpp @@ -898,6 +898,9 @@ bool AfterLoadGame() case MP_STATION: { BaseStation *bst = BaseStation::GetByTile(t); + /* Sanity check */ + if (!IsBuoy(t) && bst->owner != GetTileOwner(t)) SlErrorCorrupt("Wrong owner for station tile"); + /* Set up station spread */ bst->rect.BeforeAddTile(t, StationRect::ADD_FORCE); @@ -1253,6 +1256,7 @@ bool AfterLoadGame() } } else if (v->z_pos > GetSlopePixelZ(v->x_pos, v->y_pos)) { v->tile = GetNorthernBridgeEnd(v->tile); + v->UpdatePosition(); } else { continue; } @@ -2203,7 +2207,7 @@ bool AfterLoadGame() } if (remove) { - DeleteAnimatedTile(*tile); + tile = _animated_tiles.erase(tile); } else { tile++; } @@ -3118,8 +3122,21 @@ bool AfterLoadGame() } } - /* Update station docking tiles. */ - AfterLoadScanDockingTiles(); + if (IsSavegameVersionUntil(SLV_ENDING_YEAR)) { + /* Update station docking tiles. Was only needed for pre-SLV_MULTITLE_DOCKS + * savegames, but a bug in docking tiles touched all savegames between + * SLV_MULTITILE_DOCKS and SLV_ENDING_YEAR. */ + for (Station *st : Station::Iterate()) { + if (st->ship_station.tile != INVALID_TILE) UpdateStationDockingTiles(st); + } + + /* Reset roadtype/streetcartype info for non-road bridges. */ + for (TileIndex t = 0; t < map_size; t++) { + if (IsTileType(t, MP_TUNNELBRIDGE) && GetTunnelBridgeTransportType(t) != TRANSPORT_ROAD) { + SetRoadTypes(t, INVALID_ROADTYPE, INVALID_ROADTYPE); + } + } + } /* Compute station catchment areas. This is needed here in case UpdateStationAcceptance is called below. */ Station::RecomputeCatchmentForAll(); diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp index aeaa7a5edd..f9eebed46a 100644 --- a/src/saveload/saveload.cpp +++ b/src/saveload/saveload.cpp @@ -341,6 +341,10 @@ void NORETURN SlError(StringID string, const char *extra_msg) * when we access them during cleaning the pool dereferences of * those indices will be made with segmentation faults as result. */ if (_sl.action == SLA_LOAD || _sl.action == SLA_PTRS) SlNullPointers(); + + /* Logging could be active. */ + GamelogStopAnyAction(); + throw std::exception(); } diff --git a/src/saveload/saveload.h b/src/saveload/saveload.h index 14c8c32315..9ae0956549 100644 --- a/src/saveload/saveload.h +++ b/src/saveload/saveload.h @@ -769,6 +769,19 @@ static inline bool IsSavegameVersionBefore(SaveLoadVersion major, byte minor = 0 return _sl_version < major || (minor > 0 && _sl_version == major && _sl_minor_version < minor); } +/** + * Checks whether the savegame is below or at \a major. This should be used to repair data from existing + * savegames which is no longer corrupted in new savegames, but for which otherwise no savegame + * bump is required. + * @param major Major number of the version to check against. + * @return Savegame version is at most the specified version. + */ +static inline bool IsSavegameVersionUntil(SaveLoadVersion major) +{ + extern SaveLoadVersion _sl_version; + return _sl_version <= major; +} + /** * Checks if some version from/to combination falls within the range of the * active savegame version. diff --git a/src/saveload/saveload_internal.h b/src/saveload/saveload_internal.h index 69dfb5dbf9..8a3f433c22 100644 --- a/src/saveload/saveload_internal.h +++ b/src/saveload/saveload_internal.h @@ -29,7 +29,6 @@ void AfterLoadVehicles(bool part_of_load); void FixupTrainLengths(); void AfterLoadStations(); void AfterLoadRoadStops(); -void AfterLoadScanDockingTiles(); void ResetLabelMaps(); void AfterLoadLabelMaps(); void AfterLoadStoryBook(); diff --git a/src/saveload/station_sl.cpp b/src/saveload/station_sl.cpp index b0e91b4e75..1d3612ae31 100644 --- a/src/saveload/station_sl.cpp +++ b/src/saveload/station_sl.cpp @@ -141,17 +141,6 @@ void AfterLoadRoadStops() } } -/** - * (Re)scan for station docking tiles after loading a savegame. - */ -void AfterLoadScanDockingTiles() -{ - /* Scan for docking tiles */ - for (Station *st : Station::Iterate()) { - if (st->ship_station.tile != INVALID_TILE) UpdateStationDockingTiles(st); - } -} - static const SaveLoad _roadstop_desc[] = { SLE_VAR(RoadStop, xy, SLE_UINT32), SLE_CONDNULL(1, SL_MIN_VERSION, SLV_45), diff --git a/src/script/api/game/game_window.hpp.sq b/src/script/api/game/game_window.hpp.sq index 32ada0d896..49588d6fc8 100644 --- a/src/script/api/game/game_window.hpp.sq +++ b/src/script/api/game/game_window.hpp.sq @@ -639,6 +639,7 @@ void SQGSWindow_Register(Squirrel *engine) SQGSWindow.DefSQConst(engine, ScriptWindow::WID_TT_BACKGROUND, "WID_TT_BACKGROUND"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_A_SCROLLING_TEXT, "WID_A_SCROLLING_TEXT"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_A_WEBSITE, "WID_A_WEBSITE"); + SQGSWindow.DefSQConst(engine, ScriptWindow::WID_A_COPYRIGHT, "WID_A_COPYRIGHT"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_QS_CAPTION, "WID_QS_CAPTION"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_QS_TEXT, "WID_QS_TEXT"); SQGSWindow.DefSQConst(engine, ScriptWindow::WID_QS_WARNING, "WID_QS_WARNING"); diff --git a/src/script/api/script_marine.cpp b/src/script/api/script_marine.cpp index c175adf066..c63add8faa 100644 --- a/src/script/api/script_marine.cpp +++ b/src/script/api/script_marine.cpp @@ -62,11 +62,11 @@ DiagDirection to_other_tile = ::DiagdirBetweenTiles(t2, t1); /* Determine the reachable tracks from the shared edge */ - TrackBits gtts1 = ::TrackStatusToTrackBits(::GetTileTrackStatus(t1, TRANSPORT_WATER, 0, to_other_tile)) & ::DiagdirReachesTracks(to_other_tile); + TrackBits gtts1 = ::TrackStatusToTrackBits(::GetTileTrackStatus(t1, TRANSPORT_WATER, 0, ReverseDiagDir(to_other_tile))) & ::DiagdirReachesTracks(to_other_tile); if (gtts1 == TRACK_BIT_NONE) return false; to_other_tile = ReverseDiagDir(to_other_tile); - TrackBits gtts2 = ::TrackStatusToTrackBits(::GetTileTrackStatus(t2, TRANSPORT_WATER, 0, to_other_tile)) & ::DiagdirReachesTracks(to_other_tile); + TrackBits gtts2 = ::TrackStatusToTrackBits(::GetTileTrackStatus(t2, TRANSPORT_WATER, 0, ReverseDiagDir(to_other_tile))) & ::DiagdirReachesTracks(to_other_tile); return gtts2 != TRACK_BIT_NONE; } diff --git a/src/script/api/script_window.hpp b/src/script/api/script_window.hpp index 5b1d623df2..0e5231720a 100644 --- a/src/script/api/script_window.hpp +++ b/src/script/api/script_window.hpp @@ -1612,6 +1612,7 @@ public: enum AboutWidgets { WID_A_SCROLLING_TEXT = ::WID_A_SCROLLING_TEXT, ///< The actually scrolling text. WID_A_WEBSITE = ::WID_A_WEBSITE, ///< URL of OpenTTD website. + WID_A_COPYRIGHT = ::WID_A_COPYRIGHT, ///< Copyright string }; /** Widgets of the #QueryStringWindow class. */ diff --git a/src/station.cpp b/src/station.cpp index 61c53bc562..ec332e0bb2 100644 --- a/src/station.cpp +++ b/src/station.cpp @@ -359,12 +359,11 @@ Rect Station::GetCatchmentRect() const /** * Add nearby industry to station's industries_near list if it accepts cargo. * @param ind Industry - * @param st Station */ -static void AddIndustryToDeliver(Industry *ind, Station *st) +void Station::AddIndustryToDeliver(Industry *ind) { /* Don't check further if this industry is already in the list */ - if (st->industries_near.find(ind) != st->industries_near.end()) return; + if (this->industries_near.find(ind) != this->industries_near.end()) return; /* Include only industries that can accept cargo */ uint cargo_index; @@ -373,7 +372,7 @@ static void AddIndustryToDeliver(Industry *ind, Station *st) } if (cargo_index >= lengthof(ind->accepts_cargo)) return; - st->industries_near.insert(ind); + this->industries_near.insert(ind); } /** @@ -464,7 +463,7 @@ void Station::RecomputeCatchment() i->stations_near.insert(this); /* Add if we can deliver to this industry as well */ - AddIndustryToDeliver(i, this); + this->AddIndustryToDeliver(i); } } } diff --git a/src/station_base.h b/src/station_base.h index 0c33a58edb..75b1c1112f 100644 --- a/src/station_base.h +++ b/src/station_base.h @@ -503,6 +503,7 @@ public: uint GetCatchmentRadius() const; Rect GetCatchmentRect() const; bool CatchmentCoversTown(TownID t) const; + void AddIndustryToDeliver(Industry *ind); void RemoveFromAllNearbyLists(); inline bool TileIsInCatchment(TileIndex tile) const @@ -557,4 +558,41 @@ public: void RebuildStationKdtree(); +/** + * Call a function on all stations that have any part of the requested area within their catchment. + * @tparam Func The type of funcion to call + * @param area The TileArea to check + * @param func The function to call, must take two parameters: Station* and TileIndex and return true + * if coverage of that tile is acceptable for a given station or false if search should continue + */ +template +void ForAllStationsAroundTiles(const TileArea &ta, Func func) +{ + /* Not using, or don't have a nearby stations list, so we need to scan. */ + std::set seen_stations; + + /* Scan an area around the building covering the maximum possible station + * to find the possible nearby stations. */ + uint max_c = _settings_game.station.modified_catchment ? MAX_CATCHMENT : CA_UNMODIFIED; + TileArea ta_ext = TileArea(ta).Expand(max_c); + TILE_AREA_LOOP(tile, ta_ext) { + if (IsTileType(tile, MP_STATION)) seen_stations.insert(GetStationIndex(tile)); + } + + for (StationID stationid : seen_stations) { + Station *st = Station::GetIfValid(stationid); + if (st == nullptr) continue; /* Waypoint */ + + /* Check if station is attached to an industry */ + if (!_settings_game.station.serve_neutral_industries && st->industry != nullptr) continue; + + /* Test if the tile is within the station's catchment */ + TILE_AREA_LOOP(tile, ta) { + if (st->TileIsInCatchment(tile)) { + if (func(st, tile)) break; + } + } + } +} + #endif /* STATION_BASE_H */ diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp index b883838841..6cfd94bb2f 100644 --- a/src/station_cmd.cpp +++ b/src/station_cmd.cpp @@ -36,6 +36,7 @@ #include "animated_tile_func.h" #include "elrail_func.h" #include "station_base.h" +#include "station_func.h" #include "station_kdtree.h" #include "roadstop_base.h" #include "newgrf_railtype.h" @@ -3965,57 +3966,6 @@ static void AddNearbyStationsByCatchment(TileIndex tile, StationList *stations, } } -/** - * Find all stations around a rectangular producer (industry, house, headquarter, ...) - * - * @param location The location/area of the producer - * @param[out] stations The list to store the stations in - * @param use_nearby Use nearby station list of industry/town associated with location.tile - */ -void FindStationsAroundTiles(const TileArea &location, StationList * const stations, bool use_nearby) -{ - if (use_nearby) { - /* Industries and towns maintain a list of nearby stations */ - if (IsTileType(location.tile, MP_INDUSTRY)) { - /* Industry nearby stations are already filtered by catchment. */ - *stations = Industry::GetByTile(location.tile)->stations_near; - return; - } else if (IsTileType(location.tile, MP_HOUSE)) { - /* Town nearby stations need to be filtered per tile. */ - assert(location.w == 1 && location.h == 1); - AddNearbyStationsByCatchment(location.tile, stations, Town::GetByTile(location.tile)->stations_near); - return; - } - } - - /* Not using, or don't have a nearby stations list, so we need to scan. */ - std::set seen_stations; - - /* Scan an area around the building covering the maximum possible station - * to find the possible nearby stations. */ - uint max_c = _settings_game.station.modified_catchment ? MAX_CATCHMENT : CA_UNMODIFIED; - TileArea ta = TileArea(location).Expand(max_c); - TILE_AREA_LOOP(tile, ta) { - if (IsTileType(tile, MP_STATION)) seen_stations.insert(GetStationIndex(tile)); - } - - for (StationID stationid : seen_stations) { - Station *st = Station::GetIfValid(stationid); - if (st == nullptr) continue; /* Waypoint */ - - /* Check if station is attached to an industry */ - if (!_settings_game.station.serve_neutral_industries && st->industry != nullptr) continue; - - /* Test if the tile is within the station's catchment */ - TILE_AREA_LOOP(tile, location) { - if (st->TileIsInCatchment(tile)) { - stations->insert(st); - break; - } - } - } -} - /** * Run a tile loop to find stations around a tile, on demand. Cache the result for further requests * @return pointer to a StationList containing all stations found @@ -4023,12 +3973,22 @@ void FindStationsAroundTiles(const TileArea &location, StationList * const stati const StationList *StationFinder::GetStations() { if (this->tile != INVALID_TILE) { - FindStationsAroundTiles(*this, &this->stations); + if (IsTileType(this->tile, MP_HOUSE)) { + /* Town nearby stations need to be filtered per tile. */ + assert(this->w == 1 && this->h == 1); + AddNearbyStationsByCatchment(this->tile, &this->stations, Town::GetByTile(this->tile)->stations_near); + } else { + ForAllStationsAroundTiles(*this, [this](Station *st, TileIndex tile) { + this->stations.insert(st); + return true; + }); + } this->tile = INVALID_TILE; } return &this->stations; } + static bool CanMoveGoodsToStation(const Station *st, CargoID type) { /* Is the station reserved exclusively for somebody else? */ diff --git a/src/station_func.h b/src/station_func.h index f9959089ee..dc89428410 100644 --- a/src/station_func.h +++ b/src/station_func.h @@ -22,8 +22,6 @@ void ModifyStationRatingAround(TileIndex tile, Owner owner, int amount, uint radius); -void FindStationsAroundTiles(const TileArea &location, StationList *stations, bool use_nearby = true); - void ShowStationViewWindow(StationID station); void UpdateAllStationVirtCoords(); void ClearAllStationCachedNames(); diff --git a/src/station_gui.cpp b/src/station_gui.cpp index d9485fa4f4..02b9a054fa 100644 --- a/src/station_gui.cpp +++ b/src/station_gui.cpp @@ -102,7 +102,7 @@ static void FindStationsAroundSelection() Station *adjacent = nullptr; - /* Direct loop instead of FindStationsAroundTiles as we are not interested in catchment area */ + /* Direct loop instead of ForAllStationsAroundTiles as we are not interested in catchment area */ TILE_AREA_LOOP(tile, ta) { if (IsTileType(tile, MP_STATION) && GetTileOwner(tile) == _local_company) { Station *st = Station::GetByTile(tile); diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp index 0a582eee7f..1d550fb028 100644 --- a/src/town_cmd.cpp +++ b/src/town_cmd.cpp @@ -454,13 +454,22 @@ uint32 GetWorldPopulation() /** * Remove stations from nearby station list if a town is no longer in the catchment area of each. + * To improve performance only checks stations that cover the provided house area (doesn't need to contain an actual house). * @param t Town to work on + * @param tile Location of house area (north part) + * @param flags BuildingFlags containing the size of house area */ -static void RemoveNearbyStations(Town *t) +static void RemoveNearbyStations(Town *t, TileIndex tile, BuildingFlags flags) { for (StationList::iterator it = t->stations_near.begin(); it != t->stations_near.end(); /* incremented inside loop */) { const Station *st = *it; - if (!st->CatchmentCoversTown(t->index)) { + + bool covers_area = st->TileIsInCatchment(tile); + if (flags & BUILDING_2_TILES_Y) covers_area |= st->TileIsInCatchment(tile + TileDiffXY(0, 1)); + if (flags & BUILDING_2_TILES_X) covers_area |= st->TileIsInCatchment(tile + TileDiffXY(1, 0)); + if (flags & BUILDING_HAS_4_TILES) covers_area |= st->TileIsInCatchment(tile + TileDiffXY(1, 1)); + + if (covers_area && !st->CatchmentCoversTown(t->index)) { it = t->stations_near.erase(it); } else { ++it; @@ -621,11 +630,7 @@ static void TileLoop_Town(TileIndex tile) ClearTownHouse(t, tile); /* Rebuild with another house? */ - if (GB(r, 24, 8) < 12 || !BuildTownHouse(t, tile)) - { - /* House wasn't replaced, so remove it */ - if (!_generating_world) RemoveNearbyStations(t); - } + if (GB(r, 24, 8) >= 12) BuildTownHouse(t, tile); } cur_company.Restore(); @@ -654,7 +659,6 @@ static CommandCost ClearTile_Town(TileIndex tile, DoCommandFlag flags) ChangeTownRating(t, -rating, RATING_HOUSE_MINIMUM, flags); if (flags & DC_EXEC) { ClearTownHouse(t, tile); - RemoveNearbyStations(t); } return cost; @@ -2249,7 +2253,12 @@ static void MakeTownHouse(TileIndex t, Town *town, byte counter, byte stage, Hou if (size & BUILDING_2_TILES_X) ClearMakeHouseTile(t + TileDiffXY(1, 0), town, counter, stage, ++type, random_bits); if (size & BUILDING_HAS_4_TILES) ClearMakeHouseTile(t + TileDiffXY(1, 1), town, counter, stage, ++type, random_bits); - if (!_generating_world) FindStationsAroundTiles(TileArea(t, (size & BUILDING_2_TILES_X) ? 2 : 1, (size & BUILDING_2_TILES_Y) ? 2 : 1), &town->stations_near, false); + if (!_generating_world) { + ForAllStationsAroundTiles(TileArea(t, (size & BUILDING_2_TILES_X) ? 2 : 1, (size & BUILDING_2_TILES_Y) ? 2 : 1), [town](Station *st, TileIndex tile) { + town->stations_near.insert(st); + return true; + }); + } } @@ -2661,11 +2670,12 @@ void ClearTownHouse(Town *t, TileIndex tile) } /* Do the actual clearing of tiles */ - uint eflags = hs->building_flags; DoClearTownHouseHelper(tile, t, house); - if (eflags & BUILDING_2_TILES_Y) DoClearTownHouseHelper(tile + TileDiffXY(0, 1), t, ++house); - if (eflags & BUILDING_2_TILES_X) DoClearTownHouseHelper(tile + TileDiffXY(1, 0), t, ++house); - if (eflags & BUILDING_HAS_4_TILES) DoClearTownHouseHelper(tile + TileDiffXY(1, 1), t, ++house); + if (hs->building_flags & BUILDING_2_TILES_Y) DoClearTownHouseHelper(tile + TileDiffXY(0, 1), t, ++house); + if (hs->building_flags & BUILDING_2_TILES_X) DoClearTownHouseHelper(tile + TileDiffXY(1, 0), t, ++house); + if (hs->building_flags & BUILDING_HAS_4_TILES) DoClearTownHouseHelper(tile + TileDiffXY(1, 1), t, ++house); + + RemoveNearbyStations(t, tile, hs->building_flags); UpdateTownRadius(t); diff --git a/src/tree_cmd.cpp b/src/tree_cmd.cpp index 012904fdce..cdc9869207 100644 --- a/src/tree_cmd.cpp +++ b/src/tree_cmd.cpp @@ -632,6 +632,13 @@ static void TileLoopTreesAlps(TileIndex tile) MarkTileDirtyByTile(tile); } +static bool CanPlantExtraTrees(TileIndex tile) +{ + return ((_settings_game.game_creation.landscape == LT_TROPIC && GetTropicZone(tile) == TROPICZONE_RAINFOREST) ? + _settings_game.construction.extra_tree_placement != ETP_NONE : + _settings_game.construction.extra_tree_placement == ETP_ALL); +} + static void TileLoop_Trees(TileIndex tile) { if (GetTreeGround(tile) == TREE_GROUND_SHORE) { @@ -682,12 +689,7 @@ static void TileLoop_Trees(TileIndex tile) FALLTHROUGH; case 2: { // add a neighbouring tree - /* Don't plant extra trees if that's not allowed. */ - if ((_settings_game.game_creation.landscape == LT_TROPIC && GetTropicZone(tile) == TROPICZONE_RAINFOREST) ? - _settings_game.construction.extra_tree_placement == ETP_NONE : - _settings_game.construction.extra_tree_placement != ETP_ALL) { - break; - } + if (!CanPlantExtraTrees(tile)) break; TreeType treetype = GetTreeType(tile); @@ -715,6 +717,9 @@ static void TileLoop_Trees(TileIndex tile) /* more than one tree, delete it */ AddTreeCount(tile, -1); SetTreeGrowth(tile, 3); + } else if (!CanPlantExtraTrees(tile)) { + /* if trees can't spread just plant a new one to prevent deforestation */ + SetTreeGrowth(tile, 0); } else { /* just one tree, change type into MP_CLEAR */ switch (GetTreeGround(tile)) { diff --git a/src/vehicle_cmd.cpp b/src/vehicle_cmd.cpp index 5ba31945fc..2f0a49ca27 100644 --- a/src/vehicle_cmd.cpp +++ b/src/vehicle_cmd.cpp @@ -128,7 +128,7 @@ CommandCost CmdBuildVehicle(TileIndex tile, DoCommandFlag flags, uint32 p1, uint /* If we are refitting we need to temporarily purchase the vehicle to be able to * test it. */ DoCommandFlag subflags = flags; - if (refitting) subflags |= DC_EXEC; + if (refitting && !(flags & DC_EXEC)) subflags |= DC_EXEC | DC_AUTOREPLACE; /* Vehicle construction needs random bits, so we have to save the random * seeds to prevent desyncs. */ @@ -145,13 +145,14 @@ CommandCost CmdBuildVehicle(TileIndex tile, DoCommandFlag flags, uint32 p1, uint } if (value.Succeeded()) { - if (refitting || (flags & DC_EXEC)) { + if (subflags & DC_EXEC) { v->unitnumber = unit_num; v->value = value.GetCost(); } if (refitting) { - value.AddCost(CmdRefitVehicle(tile, flags, v->index, cargo, nullptr)); + /* Refit only one vehicle. If we purchased an engine, it may have gained free wagons. */ + value.AddCost(CmdRefitVehicle(tile, flags, v->index, cargo | (1 << 16), nullptr)); } else { /* Fill in non-refitted capacities */ _returned_refit_capacity = e->GetDisplayDefaultCapacity(&_returned_mail_refit_capacity); @@ -166,19 +167,19 @@ CommandCost CmdBuildVehicle(TileIndex tile, DoCommandFlag flags, uint32 p1, uint } } - if (refitting || (flags & DC_EXEC)) { + if (subflags & DC_EXEC) { GroupStatistics::CountEngine(v, 1); GroupStatistics::UpdateAutoreplace(_current_company); if (v->IsPrimaryVehicle()) { GroupStatistics::CountVehicle(v, 1); - OrderBackup::Restore(v, p2); + if (!(subflags & DC_AUTOREPLACE)) OrderBackup::Restore(v, p2); } } /* If we are not in DC_EXEC undo everything */ - if (refitting && (flags & DC_EXEC) == 0) { + if (flags != subflags) { DoCommand(0, v->index, 0, DC_EXEC, GetCmdSellVeh(v)); } } diff --git a/src/video/cocoa/wnd_quartz.mm b/src/video/cocoa/wnd_quartz.mm index c73dd32e7d..3bcbea126d 100644 --- a/src/video/cocoa/wnd_quartz.mm +++ b/src/video/cocoa/wnd_quartz.mm @@ -348,6 +348,8 @@ bool WindowQuartzSubdriver::SetVideoMode(int width, int height, int bpp) [this->window setColorSpace:[NSColorSpace sRGBColorSpace]]; this->color_space = CGColorSpaceCreateWithName(kCGColorSpaceSRGB); + if (this->color_space == nullptr) this->color_space = CGColorSpaceCreateDeviceRGB(); + if (this->color_space == nullptr) error("Could not get a valid colour space for drawing."); bool ret = WindowResized(); this->UpdatePalette(0, 256); diff --git a/src/widgets/misc_widget.h b/src/widgets/misc_widget.h index bc0c07030b..0fdfc8c605 100644 --- a/src/widgets/misc_widget.h +++ b/src/widgets/misc_widget.h @@ -24,6 +24,7 @@ enum ToolTipsWidgets { enum AboutWidgets { WID_A_SCROLLING_TEXT, ///< The actually scrolling text. WID_A_WEBSITE, ///< URL of OpenTTD website. + WID_A_COPYRIGHT, ///< Copyright string }; /** Widgets of the #QueryStringWindow class. */