Compare commits

..

250 Commits

Author SHA1 Message Date
Charles Pigott
672f285218 Update: Changelog for 1.11.2 release 2021-05-03 19:33:42 +01:00
Charles Pigott
f11b06ff6a Update: Backport language changes 2021-05-03 19:33:42 +01:00
rubidium42
f9595543ca Fix #9117, 04ce1f07: [Fluidsynth] Infinite wait when stopping song (#9181)
In FluidSynth 2.2.0 an extra state was added to denote stopping. To transition
from this state to a stopped state the rendering needs to be running. Since
04ce1f07 locking was added that skipped the rendering when something else held
a lock, so the state would never get to stopped and join would never return.
2021-05-03 19:33:42 +01:00
PeterN
9aa335aca3 Fix: Query windows may be partially drawn initially. (#9184)
Query window was not marked dirty after being moved on init. It was then marked dirty once the white border flash completed.
2021-05-03 19:33:42 +01:00
PeterN
05aed133c7 Fix #9174: Don't update text effect if it has been reset. (#9183) 2021-05-03 19:33:42 +01:00
Jonathan G Rennison
b9ea4f07e4 Fix #9113: Assertion failure when removing airport with order backup (#9182) 2021-05-03 19:33:42 +01:00
Milek7
8b5bd34a65 Codechange: Acquire video buffer before taking game state lock to prevent erratic fast forward behaviour (#9140) 2021-05-03 19:33:42 +01:00
Michael Lutz
72090f39ce Fix #9147: Delay making screenshots until the next draw tick as we may not access the video buffer from the game thread. 2021-05-03 19:33:42 +01:00
Michael Lutz
de61dadaa9 Codechange: Generalise the delayed blitter change to a generic video driver command queue. 2021-05-03 19:33:42 +01:00
PeterN
d52a66642d Fix: Update text effect size when font zoom is changed. (#9174) 2021-05-03 19:33:42 +01:00
frosch
d92d807e1d Fix: [NewGRF] industry variable 66 and object variable 46 clamped the squared-euclidian distance to 16 bit, when they should not. 2021-05-03 19:33:42 +01:00
frosch
60f85dbc37 Fix: [NewGRF] industry variables 65 and 66 ignored the parameter, and always used the north tile. 2021-05-03 19:33:42 +01:00
rubidium42
dbba489fcf Fix: [Network] Reading beyond the length of the server's ID when hashing password
Under normal circumstances the server's ID is 32 characters excluding '\0', however this can be changed at the server. This ID is sent to the server for company name hashing. The client reads it into a statically allocated buffer of 33 bytes, but fills only the bytes it received from the server. However, the hash assumes all 33 bytes are set, thus potentially reading uninitialized data, or a part of the server ID of a previous game in the hashing routine.
It is still reading from memory assigned to the server ID, so nothing bad happens, except that company passwords might not work correctly.
2021-05-03 19:33:42 +01:00
PeterN
dd70d0ad85 Fix: Crash when extra viewport height is zero with sign in view. (#9175)
If a viewport sign straddles the top of a viewport, a crash will occur if the viewport height is zero. This is resolved by simply not attempting to draw the viewport in this situation, consistent with other widgets.
2021-05-03 19:33:42 +01:00
rubidium42
a8c5f8a10b Codechange: move some OS abstraction method implementations out of the header 2021-05-03 19:33:42 +01:00
rubidium42
ef258b1686 Codechange: encapsulate network error handling 2021-05-03 19:33:42 +01:00
rubidium42
3265e56294 Codechange: rename NetworkError to ShowNetworkError 2021-05-03 19:33:42 +01:00
Loïc Guilloux
5e7f9cc22c Fix: Don't consider regression AIs when starting a random AI (#9164) 2021-05-03 19:33:42 +01:00
Loïc Guilloux
f3b8ff0e17 Change: [Actions] Add a 2 minutes timeout for regression test (#9166) 2021-05-03 19:33:42 +01:00
rubidium42
c3d134793f Fix #6598: Prevent invalid memory accesses when abandoning a join from within a network game
One could join a network game from within an already running network game. This would call a NetworkDisconnect, but keeps the UI alive. If, during that process the join is aborted, e.g. by cancelling on a password dialog, you would still be in your network game but also get shown the server list.
Solve all the underlying problems by falling back to the main UI when (re)connecting to a(nother) server.
2021-05-03 19:33:42 +01:00
rubidium42
59c356ad39 Fix #6598: Do not disconnect before company number validation
NetworkClientConnectGame already does a NetworkDisconnect, so no reason to do it here
2021-05-03 19:33:42 +01:00
Patric Stout
2514cf3c5c Fix b3003dd1: swap SERVER_GAME_INFO with CLIENT_GAME_INFO (#9129)
The idea is that if you query an older server that does not support
this packet yet, the client receives an error. The assumption was
that on every "illegal packet" the connection would be closed. This
turns out to be false.

Now CLIENT_GAME_INFO aligns with the old PACKET_CLIENT_NEWGRFS_CHECKED,
which does a pre-check (which fails), and an error is sent back
and the connection is closed.

This is not a nice solution, but it is the best we got.
2021-05-03 19:33:42 +01:00
Patric Stout
1eb20db8db Add: ability to retrieve game info from server over TCP 2021-05-03 19:33:42 +01:00
Patric Stout
32ead3aba6 Codechange: be explicit in pointer comparisons 2021-05-03 19:33:42 +01:00
Patric Stout
cae0b46e38 Codechange: move all NetworkGameInfo related functions to a single file
It currently was a bit scattered over the place. Part of
NetworkGameInfo is also the GRF Identifiers that goes with it.
2021-05-03 19:33:42 +01:00
Patric Stout
4f8a2c2999 Doc: indicate the most common options for CMake 2021-05-03 19:33:42 +01:00
Patric Stout
9932f4ea50 Doc: split up which libraries are used for which situation 2021-05-03 19:33:42 +01:00
Patric Stout
0a5a06c431 Doc: fix OpenGFX / OpenSFX / OpenMSX links in README 2021-05-03 19:33:42 +01:00
Patric Stout
d570120e17 Doc: update the supported platforms to match current master 2021-05-03 19:33:42 +01:00
rubidium42
abbbeb752a Change: [Network] Safeguard from using errno/strerror for handling network errors
They are likely not working as expected on Windows, so prevent their usage.
Winsock does not set errno and strerror does not return anything useful for Winsock error numbers.
2021-05-03 19:33:42 +01:00
rubidium42
9afe3d77e6 Codechange: [Network] Do not leak os_abstraction.h via base_media_func.h 2021-05-03 19:33:42 +01:00
rubidium42
6362e29ad7 Codechange: [Network] Do not leak os_abstraction.h via fios.h 2021-05-03 19:33:42 +01:00
rubidium42
bc0501e96f Codechange: [Network] Do not leak os_abstraction.h via network_func 2021-05-03 19:33:42 +01:00
rubidium42
7e6f00c85a Change: [Network] Use string error messages instead of numeric error numbers that need to be looked up 2021-05-03 19:33:42 +01:00
rubidium42
bf07420916 Fix: [Network] errno and strerror do not handle network errors on Windows 2021-05-03 19:33:42 +01:00
rubidium42
21b196d5c4 Fix #9152, Fix #9153: screenshot command showed error messages when successful 2021-05-03 19:33:42 +01:00
Patric Stout
26b7500f3b Remove: performance measurements in YAPF
YAPF was constantly measuring its performance, but only at
certain debug-levels this information was shown.

Now after years, I sincerely wonder if anyone still knows about this
feature and who still use it. Especially with the new framerate window,
this detailed performance is not as meaningful anymore as it once
was.
2021-05-03 19:33:42 +01:00
Patric Stout
9a203b2b2c Cleanup: remove weird left-over comment in yapf.hpp 2021-05-03 19:33:42 +01:00
PeterN
c3eae71778 Fix: Incorrect vertical alignment of icon and text in DropDownListIconItem. (#9133)
This happens if the bounding dimensions are changed so that each item is the same size, as happens on the railtype/roadtype dropdown lists, as the vertical offset was calculated before this dimension is changed.
2021-05-03 19:33:42 +01:00
Milek7
b1d3b9544e Codechange: Use __attribute__ access none to silence GCC 11 -Wmaybe-uninitialized warnings (#9124) 2021-05-03 19:33:42 +01:00
PeterN
45c866cbd1 Fix: Count engine details text in lines rather than pixels. (#9107)
This allows the details panel to scale correctly for different zoom levels.
2021-05-03 19:33:42 +01:00
rubidium42
f8f57ab46f Fix: [Network] Prevent stalling save game transfer when compression is slow 2021-05-03 19:33:42 +01:00
PeterN
ef48195ffa Fix: Use width of tiny arrow string instead of scaled pixels in ship/aircraft list. (#9102) 2021-05-03 19:33:42 +01:00
Michael Lutz
967c2ed56c Fix: [OpenGL] Main loop expects to start with the video buffer unmapped. (#9100) 2021-05-03 19:33:42 +01:00
PeterN
037bd14ed8 Fix #9097: Upper 16 bits of cargo base payment rate were discarded. (#9098)
NewGRF spec says that base payment rate is 32 bits, but it was loaded into a 16 bit variable. This value is loaded into Money variable after inflation is applied.
2021-05-03 19:33:42 +01:00
rubidium42
8eb53fa1a0 Fix: String validation could leave invalid Utf8 encoded strings (#9096)
In case a character was encoded in multiple bytes, but required fewer bytes to be encoded, the first byte would be copied to the output leaving an invalid Utf8 encoded string. Later uses of the validated string would use the same decode logic, which would yield a question mark and just read a single byte, so nothing dangerous happened.
Furthermore, because the next byte would not be a first byte of an encoded Utf8 character, the last few valid characters could be removed by the validation as well.
2021-05-03 19:33:42 +01:00
glx22
4b14a84510 Fix: [CMake] Check nforenum and grfcodec return value 2021-05-03 19:33:42 +01:00
glx22
4e1b0eda94 Fix: [CMake] Incorrect dependency checks for GRF 2021-05-03 19:33:42 +01:00
Michael Lutz
bf727cb26a Codechange: [Win32] Try getting an OpenGL 4.5 context first before aiming at 3.2. 2021-05-03 19:33:42 +01:00
Michael Lutz
e609c936a4 Change: [Win32] Limit the OpenGL video driver to OpenGL 3.2 or newer on Windows. 2021-05-03 19:33:42 +01:00
Michael Lutz
59ce9b4d2f Fix: [OpenGL] Check maximum supported texture size against screen resolution. 2021-05-03 19:33:42 +01:00
PeterN
ceee558fe5 Codechange: Scale rating minigraphs on station window list. (#9075)
Minigraphs did not adjust size to accomodate large text, either by font size or font zoom, leading to cropped labels.
Minigraphs and spacing are now scaled by font zoom, as this seems to behave better than gui zoom in this instance.
2021-05-03 19:33:42 +01:00
Loïc Guilloux
2bc7e5a8e2 Fix 799eb31: [CMake] Don't include regression AIs in bundles (#9068) 2021-05-03 19:33:42 +01:00
Loïc Guilloux
8d1d271cda Fix d4f0b6f4: [CMake] CMAKE_PROJECT_VERSION_XXX are not in CMake 3.9 (#9154) 2021-05-03 19:33:42 +01:00
glx22
c454cc09b3 Fix: Auto-fill version details in rev.cpp and ottres.rc 2021-05-03 19:33:42 +01:00
Charles Pigott
0be22efffc Add: Changelog entries for 1.11.1 release 2021-04-18 21:31:21 +01:00
Charles Pigott
4f8b2aa003 Update: Backport language changes 2021-04-18 21:31:21 +01:00
stormcone
57f01188c2 Add: Hotkey to focus the build object class name filter editbox. 2021-04-18 21:31:21 +01:00
stormcone
bcb6174bf3 Add: Hotkey to focus the rail station class name filter editbox. 2021-04-18 21:31:21 +01:00
Peter Nelson
7b56a630aa Fix #9042: Make multiplayer server list height auto-fill window.
#9042 did not fix all combinations of scaling options. This additional
change makes the server list automatically fill available height.
2021-04-18 21:31:21 +01:00
Rubidium
4e5be077ff Fix #6322: [Script] Try to let the script die when no memory can be allocated instead of crashing the whole game 2021-04-18 21:31:21 +01:00
Rubidium
7aaaa2c5f5 Change: [Script] Let Script_FatalError use std::string instead of const char * 2021-04-18 21:31:21 +01:00
dP
c9c208f78e Fix: Do not unlock railtypes when enabling wagons with GameScript 2021-04-18 21:31:21 +01:00
Milek7
522069d146 Fix: Corrupted savegame could cause heap corruption by writing outside link graph edge matrix. (#9046) 2021-04-18 21:31:21 +01:00
Milek7
e379c818b3 Fix: Corrupted savegame could crash the game by providing invalid gamelog enums. (#9045) 2021-04-18 21:31:21 +01:00
PeterN
eb5ae95c90 Fix: Inconsistent button sizing on AI/GS setting window depending on scale settings. (#9044) 2021-04-18 21:31:21 +01:00
Peter Nelson
e8965d32d9 Fix: Sizing of Multiplayer server list incorrect when GUI zoom doesn't match Font zoom.
The server information panel was scaled by GUI scale, which could result in a panel that is longer than the server list. This height difference is then maintained when the window is resized to fill the screen.
Instead, specify the minimum size by number of text lines and (summed total) padding.
2021-04-18 21:31:21 +01:00
PeterN
790b4f3076 Change: Improve layout and spacing of vehicle group widgets. (#9041)
Existing layout included a blank widget above the group list to align with the vehicle list, however since then an additional sort-by row was added.
Group list size tweaks to match normal row size (at least with normal gui and text size.)
Removed reduction of 2 rows in the group list <- main culprit of odd sizing.
Removed fill attribute on buttons which gave strange sizes, and put it on the group info widget instead.
Tweaked various soft-padding values to line up (centreing text with a 1px offset does not make centred text.)
2021-04-18 21:31:21 +01:00
Rubidium
4f0f113887 Fix #7513: recursive array/class/table release caused stack overflow 2021-04-18 21:31:21 +01:00
Rubidium
53ce868185 Fix #7513: recursive garbage collection caused stack overflow 2021-04-18 21:31:21 +01:00
Milek7
144ed59aef Fix: Add virtual destructor to link graph Path.
Classes derived from Path were freed through base class pointer, but no virtual destructor was present.
2021-04-18 21:31:21 +01:00
Michael Lutz
40f7d085f4 Fix #9028: [OpenGL] Clear cursor cache on destroying the OpenGL backend. 2021-04-18 21:31:21 +01:00
Rubidium
1f34264017 Fix: [win32] buffer_locked state not initialised, causing _screen.dst_ptr to be potentially not set 2021-04-18 21:31:21 +01:00
Rubidium
fa57e33dfe Fix: [Video] fast forward boolean states not initialised, potentially causing unstoppable fast forward 2021-04-18 21:31:21 +01:00
Rubidium
dee9d6dfd4 Fix: [SDL] buffer_locked state not initialised, causing _screen.dst_ptr to be potentially not set 2021-04-18 21:31:21 +01:00
rubidium42
961cda50bc Fix #8874: show a warning when a NewGRF scan is requested multiple times from the console (#9022) 2021-04-18 21:31:21 +01:00
Wim Leflere
fe43c2d18f Fix: clang-cl build (#9018)
Remove macro redefinitions
Add final and fallthrough attributes for clang-cl
2021-04-18 21:31:21 +01:00
PeterN
59406363bb Fix #9015: Don't set free space value if not requested. (#9016) 2021-04-18 21:31:21 +01:00
rubidium42
cbc1d0c893 Fix #9008: Validate starting year given on the command line. (#9014)
An invalid starting year causes all sorts of weird behaviour and crashes in map generation.

Now just set the appropriate setting via IConsoleSetSetting so the validation
and, if needed, clamping is performed on the starting year value.
2021-04-18 21:31:21 +01:00
Rubidium
3d0c109d82 Change: add some hints about the getaddrinfo warning to the troubleshooting part of the documentation 2021-04-18 21:31:21 +01:00
Rubidium
e0594d6cac Change: warn the user about the resolving of an address being extra very slow 2021-04-18 21:31:21 +01:00
Rubidium
51cb9e71e5 Fix: split the UDP blocking of sockets to only the socket involved, and when another thread is busy do not attempt to process the packets of that socket 2021-04-18 21:31:21 +01:00
Rubidium
27630d255c Change: move some things only relevant to UDP from network.cpp to network_udp.cpp 2021-04-18 21:31:21 +01:00
Michael Lutz
d04423251b Fix: Check for a validly mapped OpenGL screen buffer during driver init. (#9007) 2021-04-18 21:31:21 +01:00
Patric Stout
9e5ab59eab Change: reworked how the Game Option display options are drawn
"Hardware acceleration" was not aligned with its checkbox. So instead
of drawing the labels left and the options right, now draw settings
one by one with a spacer between label and option to get the right
spacing.

Also, use SetPIP instead of repeating a SetPadding for all but
last element.
2021-04-18 21:31:21 +01:00
Patric Stout
898c61d457 Feature: allow a toggle to enable/disable vsync
Vsync should be off by default, as for most players it will be
better to play without vsync. Exception exist, mainly people who
play in fullscreen mode.
2021-04-18 21:31:21 +01:00
Peter Nelson
ec8abd072d Fix: Adjust scrolling interval of credits to account for text line height 2021-04-18 21:31:21 +01:00
Jonathan G Rennison
0f962aaf03 Fix: Data races on cursor state in OpenGL backends 2021-04-18 21:31:21 +01:00
Jonathan G Rennison
eeb6e9d417 Fix: Thread unsafe use of sprite cache in OpenGLBackend::DrawMouseCursor
See also: #8870
See also: #8977
2021-04-18 21:31:21 +01:00
Charles Pigott
0434cc017b Fix #8956: Industry disaster news messages showed the wrong location (#8992) 2021-04-18 21:31:21 +01:00
Niels Martin Hansen
5905fdb26e Fix: [Win32] Font glyphs of certain widths broke
Font glyphs between 33 and 39 pixels wide, in the Win32 font system, used wrong alignment and caused glyphs to appear broken.
When in the 33 to 39 pixel range, glyphs without AA were rounded down to 32 pixel pitch, instead of up to 64 pixel pitch.
2021-04-18 21:31:21 +01:00
Patric Stout
4ffe7131cb Fix 70bc55cfd6: snow line height was set while calculating desert line (#8989)
Seems I liked copy/pasting just a tiny bit too much.
2021-04-18 21:31:21 +01:00
Michael Lutz
aadc7beccc Fix #8930: [Win32] Don't handle printable keys on keydown if an edit box is in focus.
Handle printable input only when the matching WM_CHAR message is incoming.
Without an edit box, do the handling in keydown as usual to support hotkeys.
2021-04-18 21:31:21 +01:00
Wim Leflere
9d233bb7d4 Change: [win32] Use user UI language for initial language selection (#8973) (#8974) 2021-04-18 21:31:21 +01:00
Loïc Guilloux
5c6b43832c Fix: [CMake] Use the right run-time library depending on vcpkg triplet (#8964) 2021-04-18 21:31:21 +01:00
Jonathan G Rennison
5cbbb0d17b Fix: [Network] State conditions for sending client info/quit packets (#8959)
Use status >= STATUS_AUTHORIZED as the state criteria for all cases
where updates about other clients are sent.
This avoids the case where a client is informed that another client
has joined but not informed when it later quits, resulting in
stale entries in the client list window.
2021-04-18 21:31:21 +01:00
Loïc Guilloux
19b3f777c4 Change: [CMake] Improve 'In-source build' error message (#8955) 2021-04-18 21:31:21 +01:00
Ghislain Antony Vaillant
24ddedad38 Fix: Use FluidSynth default soundfont 2021-04-18 21:31:21 +01:00
Jonathan G Rennison
30313bb396 Fix: Viewport drag tooltips not being removed when dragging over other windows 2021-04-18 21:31:21 +01:00
Jonathan G Rennison
35aff633bd Fix: Viewport drag tooltip flickering when dragging outside window 2021-04-18 21:31:21 +01:00
Peter Nelson
c6312a8ebf Fix: Allow full sample range for 16-bit audio.
Clamping each sample value to half the available range could cause
unnecessary premature clipping with lots of sounds playing. This change
does not affect the actual volume level.
2021-04-18 21:31:21 +01:00
Peter Nelson
3976f2deed Change: Apply power-of-3 scaling to master effect volume to improve perceived loudness change. 2021-04-18 21:31:21 +01:00
Ghislain Antony Vaillant
a7cb2d8d00 Fix: Honor default soundfont for FluidSynth
Debian now provides a default soundfont for FluidSynth via its alternatives system.

In short, FluidSynth is configured to look for `/usr/share/sounds/sf3/default-GM.sf3` as its default soundfont, and each soundfront package (FluidR3, OPL-3, MuseScore...) may provide or override this symlink. By default, FluidSynth is installed on Debian with the `TimGM6mb` soundfont by default due to its limited size.

See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=929185 for further details.
2021-04-18 21:31:21 +01:00
PeterN
7021468ee3 Fix: Apply master effect volume during mixing instead of sound start. (#8945)
This makes the volume control work as most players would expect, affecting
existing playing sounds as well as new sounds.
2021-04-18 21:31:21 +01:00
Michael Lutz
d6a4b67df7 Fix #8935: [OSX] Crash when clicking 'Save' due to wrongly-threaded OS call. (#8944) 2021-04-18 21:31:21 +01:00
Niels Martin Hansen
0b51290a1e Feature: Volume sliders in Game Options window 2021-04-18 21:31:21 +01:00
Niels Martin Hansen
3a6b811559 Codechange: Move volume control slider logic to separate functions 2021-04-18 21:31:21 +01:00
Niels Martin Hansen
d02aae7a9c Add: NWidgetBase::GetCurrentRect function 2021-04-18 21:31:21 +01:00
Niels Martin Hansen
78285207ce Change: Default music and sound effects volume to be lower 2021-04-18 21:31:21 +01:00
Milek7
300391465a Codechange: Use COINIT_MULTITHREADED in CoInitializeEx (#8938) 2021-04-18 21:31:21 +01:00
Charles Pigott
306d80be49 Remove: Invalid translations from Romanian 2021-04-18 21:31:21 +01:00
frosch
5af537026f Fix d4c3d01d: add plural form 14 to strgen. (#8999) 2021-04-18 21:31:21 +01:00
Nicolae Crefelean
a8a838c24c Add: new plural form for Romanian translation (#8936) 2021-04-18 21:31:21 +01:00
Didac Perez Parera
4cfcbcfbaa Fix: adjust object and rail station selection window padding to be consistent (#8929)
consistent
2021-04-18 21:31:21 +01:00
Jonathan G Rennison
34606b7cbd Fix: Memory leak of airport tile layout in AirportChangeInfo (prop 0A) (#8928) 2021-04-18 21:31:21 +01:00
Bernard Teo
f0f87ee0dc Fix #8922: Show vehicle window for single vehicle in shared order grouping (#8926) 2021-04-18 21:31:21 +01:00
Charles Pigott
9acb8f7d2c Fix #8919: Release builds with asserts enabled (#8925) 2021-04-18 21:31:21 +01:00
Patric Stout
fb23ee6add Fix: building on Raspberry Pi failed because of const vs constexpr (#8924) 2021-04-18 21:31:21 +01:00
Charles Pigott
1d039c86cb Add: [Actions] Debian Bullseye release build (#8921) 2021-04-18 21:31:21 +01:00
Loïc Guilloux
7c7f747ad8 Change: [CMake] Copy AI/GS compatibility files to build dir (#8906) 2021-04-18 21:31:21 +01:00
Patric Stout
bd80ec7cff Fix: [CMake] if the regex for STABLETAG is empty, it means it is stable
This feels a bit inside out, but it makes sense: if there are no
"beta1" or "RC1" mentions, it means it is a stable release.
2021-04-01 13:34:39 +02:00
Patric Stout
935debbf6f Fix: [Actions] "is-tag" variable is the 5th element, not 6th
The 6th is "is-stable-tag", but it is currently broken in meaning.
Betas and RCs are considered "stable", but final releases are not.
This is the reason it was working for RC1, but not for the final
release.
2021-04-01 13:34:39 +02:00
Patric Stout
4eac2163f5 Doc: Prepare for 1.11.0 release 2021-04-01 12:39:58 +02:00
Patric Stout
150341ba29 Codechange: Disable asserts for release 2021-04-01 12:39:58 +02:00
Patric Stout
183df5c981 Codechange: Suppress warnings when asserts are disabled (#8917) 2021-04-01 11:50:37 +02:00
translators
7fb12afc4f Update: Translations from eints
catalan: 2 changes by J0anJosep
2021-04-01 10:28:08 +02:00
Charles Pigott
92f966821e Codechange: Suppress warnings when asserts are disabled (#8916) 2021-04-01 10:28:08 +02:00
translators
903bd3d750 Update: Translations from eints
luxembourgish: 1 change by phreeze83
serbian: 59 changes by nkrs
2021-04-01 10:28:08 +02:00
Charles Pigott
edbae9ad6c Fix #8803: Only auto-remove signals when rail can be built (#8904) 2021-04-01 10:28:08 +02:00
translators
a931a18d05 Update: Translations from eints
english (us): 23 changes by 2TallTyler
luxembourgish: 63 changes by phreeze83
ukrainian: 72 changes by StepanIvasyn
catalan: 5 changes by J0anJosep
turkish: 5 changes by nullaf
2021-04-01 10:28:08 +02:00
Mike
b36b1a8cf9 Fix #8565: Stopped road vehicle displays a speed different than 0 (#8901) 2021-04-01 10:28:08 +02:00
translators
b8af503ff5 Update: Translations from eints
english (us): 7 changes by HAJDog247
czech: 18 changes by PatrikSamuelTauchim
luxembourgish: 99 changes by phreeze83
serbian: 4 changes by nkrs
catalan: 20 changes by J0anJosep
french: 1 change by arikover
portuguese: 30 changes by azulcosta
2021-04-01 10:28:08 +02:00
translators
766b9895bf Update: Translations from eints
swedish: 30 changes by kustridaren
spanish (mexican): 1 change by absay
japanese: 13 changes by Azusa257
vietnamese: 1 change by KhoiCanDev
estonian: 12 changes by siimsoni
czech: 6 changes by PatrikSamuelTauchim, 2 changes by tomas-vl
chinese (simplified): 88 changes by clzls
arabic (egypt): 16 changes by AviationGamerX
luxembourgish: 4 changes by phreeze83
korean: 34 changes by telk5093
italian: 16 changes by AlphaJack
german: 1 change by danidoedel, 1 change by Wuzzy2
slovak: 30 changes by FuryPapaya
catalan: 35 changes by J0anJosep
tamil: 16 changes by Aswn
dutch: 32 changes by Afoklala
portuguese (brazilian): 14 changes by Greavez, 5 changes by jpsl00
2021-04-01 10:28:08 +02:00
Charles Pigott
2b78c22349 Fix #8886: Don't try to resolve folders within tars named '.' 2021-04-01 10:28:08 +02:00
translators
4bcc3a4f3f Update: Translations from eints
norwegian (bokmal): 28 changes by Anolitt
spanish (mexican): 29 changes by absay
galician: 1 change by JohnBoyFan
vietnamese: 30 changes by KhoiCanDev
estonian: 31 changes by siimsoni
czech: 6 changes by tomas-vl
arabic (egypt): 73 changes by AviationGamerX
hungarian: 37 changes by pnpBrumi
german: 24 changes by danidoedel, 4 changes by matthiasradde, 2 changes by SecretIdetity
russian: 2 changes by SecretIdetity
finnish: 40 changes by lanurmi
catalan: 47 changes by J0anJosep
lithuanian: 30 changes by devbotas
spanish: 29 changes by JohnBoyFan
french: 30 changes by MalaGaM
portuguese (brazilian): 7 changes by jpsl00, 5 changes by Greavez
polish: 31 changes by Milek7
2021-04-01 10:28:08 +02:00
translators
d5b8829fb4 Update: Translations from eints 2021-04-01 10:28:08 +02:00
Patric Stout
872d1f1396 Change: scale heightmaps we export to highest peak and inform the user of this value
Before this commit, it scaled to map-height-limit. Recently this
could also be set to "auto", meaning players don't really know
or care about this value.

This also means that if a player exported a heightmap and wanted
to import it again, looking like the exact same map, he did not
know what value for "highest peak" to use.
2021-04-01 10:28:08 +02:00
Patric Stout
1e905dea20 Fix: store the recent new game_creation settings in savegames
This allows us to later on see what someone did, and makes sure
that "restart" command still knows how the game was created.
2021-04-01 10:28:08 +02:00
Patric Stout
cedc5c4de8 Feature: allow setting a custom terrain type to define highest peak
At least, TGP will try to reach it. It heavily depends on the map
if it is reachable at all. But for sure it will do its atmost to
get there!
2021-04-01 10:28:08 +02:00
Patric Stout
13b1e585da Add: allow setting the highest mountain for heightmaps
It will add some slack to the map height limit if that was set
to auto.
2021-04-01 10:28:08 +02:00
Patric Stout
6dcc7f93c3 Feature: auto-detect map height limit based on generated map
This opens up the true power of the TGP terrain generator, as it
is no longer constrainted by an arbitrary low map height limit,
especially for extreme terrain types.

In other words: on a 1kx1k map with "Alpinist" terrain type, the
map is now really hilly with default settings.

People can still manually limit the map height if they so wish,
and after the terrain generation the limit is stored in the
savegame as if the user set it.

Cheats still allow you to change this value.
2021-04-01 10:28:08 +02:00
Patric Stout
9496990f53 Change: rename setting "max_heightlevel" to "map_height_limit"
This better reflects what it is, and hopefully removes a bit of
the confusion people are having what this setting actually does.

Additionally, update the text on the setting to better inform
users what it is doing exactly, so they can make an educated
decision on how to change it.

Next commit will introduce an "auto" value, which should be the
new default. The rename has as added benefit that everyone will
start out on the "auto" value.
2021-04-01 10:28:08 +02:00
Patric Stout
d700db0e7d Change: remove "maximum map height" from the New Game GUI
This setting influence the max heightlevel, and not as the name
suggests: the height of the generated map.

How ever you slice it, it is a very weird place to add this
setting, and it is better off being only in the settings menu.

Commits following this commit also make it more useful, so users
no longer have to care about it.
2021-04-01 10:28:08 +02:00
Patric Stout
ae0b641768 Feature: setting to indicate desert coverage for tropic climate
This is an indication value; the game tries to get as close as it
can, but due to the complex tropic rules, that is unlikely to be
exact.

In the end, it picks a height-level to base the desert/tropic
line on. This is strictly seen not needed, as we can convert any
tile to either. But it is the simplest way to get started with
this without redoing all related functions.
2021-04-01 10:28:08 +02:00
Patric Stout
eff2376871 Feature: setting to indicate snow coverage for arctic climate (replaces snow line height)
Setting the snow coverage (in % of the map) makes a lot more sense
to the human, while still allowing the niche player to set (by
finding the correct %) a snow line height they like. This makes for
easier defaults, as it decoupled terrain height from amount of snow.

Maps can never be 100% snow, as we do not have sprites for coastal
tiles.

Internally, this calculates the best snow line height to approach
this coverage as close as possible.
2021-04-01 10:28:08 +02:00
Milek7
3fae244f54 Change: Do not disallow persistent buffer mapping on AMD GPUs, as it is actually faster. 2021-04-01 10:28:08 +02:00
translators
d77d0c9a5f Update: Translations from eints
chinese (traditional): 25 changes by SiderealArt
japanese: 81 changes by taku315
2021-04-01 10:28:08 +02:00
Koen Bussemaker
0b6e84f4cf Fix #8875: Filter string in station window breaks flow in user interface 2021-04-01 10:28:08 +02:00
Patric Stout
14692bf2e4 Fix: placing random trees in SE crashes the game (#8892)
This used to work by accident: originally the code checked if
GenerateWorld was threaded. If not, it would abort the function.
This worked for placing trees, because it was also returning false
when it was not active.

With the recent changes, that check got removed, and this crash
started to happen. So now check if we have a modal window, which
is a very solid indication we are generating the world.
2021-04-01 10:28:08 +02:00
translators
1f8bd4a8d7 Update: Translations from eints
slovak: 6 changes by FuryPapaya
2021-04-01 10:28:08 +02:00
translators
10d5fc46f9 Update: Translations from eints
arabic (egypt): 22 changes by AviationGamerX
2021-04-01 10:28:08 +02:00
translators
28aeedc4e7 Update: Translations from eints
slovak: 10 changes by FuryPapaya
2021-04-01 10:28:08 +02:00
translators
5802f61e42 Update: Translations from eints
chinese (simplified): 2 changes by clzls
korean: 2 changes by telk5093
slovak: 9 changes by FuryPapaya
catalan: 4 changes by J0anJosep
polish: 4 changes by pAter-exe
2021-04-01 10:28:08 +02:00
Michael Lutz
4e51cd1a03 Fix f0f96e31: [OpenGL] Broken window resizing due to invalid buffer pitch on texture creation. 2021-04-01 10:28:08 +02:00
translators
70117d3b82 Update: Translations from eints
vietnamese: 118 changes by KhoiCanDev
slovak: 13 changes by FuryPapaya
2021-04-01 10:28:08 +02:00
frosch
4d3b14af6f Fix f0f96e31: [OpenGL] warning: comparison of integer expressions of different signedness. (#8881) 2021-04-01 10:28:08 +02:00
Michael Lutz
da55c7c69f Fix #8871: [OpenGL] Initialize all buffers after resize and clear back buffer. (#8877) 2021-04-01 10:28:08 +02:00
translators
2c93c3b9cb Update: Translations from eints
ukrainian: 1 change by StepanIvasyn
2021-04-01 10:28:08 +02:00
dP
ea484bc9a6 Fix: Recompute road/railtype availability after disabling the engine 2021-04-01 10:28:08 +02:00
Peter Nelson
8e6522acef Fix: OSK layout not scaled for 2x or 4x GUI scale. 2021-04-01 10:28:08 +02:00
translators
3a3fb37dfe Update: Translations from eints
spanish (mexican): 8 changes by absay
ukrainian: 13 changes by StepanIvasyn
dutch: 3 changes by Afoklala
lithuanian: 1 change by devbotas
2021-04-01 10:28:08 +02:00
translators
2272de80e2 Update: Translations from eints
ukrainian: 10 changes by StepanIvasyn
portuguese: 78 changes by azulcosta
2021-04-01 10:28:08 +02:00
translators
38b506ecd6 Update: Translations from eints
swedish: 1 change by kustridaren
estonian: 1 change by siimsoni
russian: 5 changes by Ln-Wolf, 3 changes by SecretIdetity
ukrainian: 7 changes by StepanIvasyn
lithuanian: 31 changes by devbotas
portuguese: 54 changes by azulcosta
2021-04-01 10:28:08 +02:00
translators
df96bcf75c Update: Translations from eints
estonian: 2 changes by siimsoni
2021-04-01 10:28:08 +02:00
translators
63f6ae30e2 Update: Translations from eints
swedish: 10 changes by kustridaren
norwegian (bokmal): 3 changes by buzzCraft
czech: 39 changes by PatrikSamuelTauchim
ukrainian: 4 changes by StepanIvasyn
2021-04-01 10:28:08 +02:00
translators
87def2fd9e Update: Translations from eints
english (us): 8 changes by 2TallTyler
estonian: 16 changes by siimsoni
korean: 5 changes by telk5093
italian: 32 changes by AlphaJack
german: 5 changes by Wuzzy2
danish: 15 changes by achton
lithuanian: 89 changes by devbotas
spanish: 3 changes by MontyMontana
french: 8 changes by arikover
portuguese (brazilian): 3 changes by Greavez
polish: 17 changes by yazalo, 2 changes by pAter-exe
2021-04-01 10:28:08 +02:00
Tyler Trahan
6c93f02ff9 Add: Title game for 1.11 branch by Chrnan6710 (#8910) 2021-03-30 19:36:30 +02:00
Patric Stout
ad256b5c1d Doc: Prepare for 1.11.0-RC1 release (#8859) 2021-03-14 21:52:09 +01:00
Patric Stout
74c98db1b6 Fix 217071aa: spanish translation contains an invalid character (#8863) 2021-03-14 20:26:48 +01:00
translators
217071aa1d Update: Translations from eints
norwegian (bokmal): 5 changes by Anolitt
estonian: 13 changes by siimsoni
korean: 5 changes by telk5093
italian: 1 change by AlphaJack
german: 5 changes by danidoedel
ukrainian: 15 changes by StepanIvasyn
catalan: 5 changes by J0anJosep
dutch: 5 changes by Afoklala
lithuanian: 82 changes by devbotas
spanish: 255 changes by MontyMontana
portuguese (brazilian): 5 changes by Greavez
2021-03-14 19:01:42 +00:00
Tyler Trahan
41baf8778b Doc: Clarify comment that SND_05_TRAIN_THROUGH_TUNNEL is only for steam engines (#8858) 2021-03-14 11:16:14 +01:00
Patric Stout
c25847787e Codechange: we are not booing straps .. we are bootstrapping 2021-03-14 11:04:14 +01:00
Patric Stout
4fe222d853 Fix: errors during bootstrap could still show up after bootstrap
For example, if you have a config that defines OpenGFX as baseset
but for some reason you have no basesets anymore. In that case
bootstrap downloads OpenGFX for you, but it will still show the
error that "OpenGFX was not found" after the bootstrap. This was
an error generated before the bootstrapped kicked in.

Simply muting all errors during bootstrap solves this; as we cannot
show them anyway, this is fine. Any errors that remain after
bootstrap will be generated again anyway.
2021-03-14 11:04:14 +01:00
Patric Stout
22a9d921ef Fix: if bootstrap failed, it could end with an empty screen instead of error
There are various of ways bootstrap can fail:
- Failing network connection
- Incomplete download
- No write permissions
- Disk full
- (others I forgot)

They all result in a screen with no windows. To ensure we at least
always show something when anything bad happens, if the bootstrap
is not successful, show a screen what the next step for the human
should be.
2021-03-14 11:04:14 +01:00
Michael Lutz
13011e00c6 Fix #8860: [Win32] Crashlog window wasn't reliably shown for crashes not on the main thread. 2021-03-13 22:09:05 +01:00
translators
062eeb9810 Update: Translations from eints
english (us): 7 changes by 2TallTyler
estonian: 17 changes by siimsoni
hungarian: 100 changes by pnpBrumi
ukrainian: 8 changes by StepanIvasyn
dutch: 24 changes by Afoklala
spanish: 338 changes by MontyMontana
french: 29 changes by MalaGaM
portuguese (brazilian): 1 change by Greavez
2021-03-13 19:03:00 +00:00
Patric Stout
5056e963ba Fix #8851: don't allow infinite "exec" depth in script, but limit to 10 deep
This means if you execute a script from a script from a script, ..
for more than 10 times, it bails out now. This should be sufficient
for even the most complex scripts.
2021-03-13 10:01:05 +01:00
Patric Stout
8230cd009d Fix: calling "exec" from script never returned
Example:

exec other.script
echo hello

The "echo" was never executed.
2021-03-13 10:01:05 +01:00
Matt Kimber
bcb3313e13 Feature: allow setting maximum zoom level at which sprites are drawn (#8604) 2021-03-13 10:00:53 +01:00
Didac Perez Parera
e708fb38da Feature: allow filtering on name in rail station window (#8706) 2021-03-13 10:00:36 +01:00
stormcone
9c5a7d3a57 Fix #8733: Can't buy train engine when the "Engines only" filter is active 2021-03-11 21:35:10 +00:00
translators
3cb2dd4889 Update: Translations from eints
swedish: 22 changes by kustridaren
ukrainian: 4 changes by StepanIvasyn
lithuanian: 7 changes by devbotas
spanish: 312 changes by MontyMontana
2021-03-11 18:08:46 +00:00
Tyler Trahan
de891238d6 Change: Recolour graph windows to brown (#8700) 2021-03-11 15:30:29 +01:00
frosch
f580ab4ba4 Fix #8647: draw tram catenary using 4 bounding boxes.
The back sprite is now supposed to contain west, north and east pillars.
The front sprite is supposed to contain the south pillar and the wires.
2021-03-11 00:21:09 +01:00
frosch
28589db664 Fix: front/back sprites of action5 tram catenary were swapped. 2021-03-11 00:21:09 +01:00
Jonathan G Rennison
c0b722ec46 Codechange: Add fast path to catenary drawing in MaskWireBits
MaskWireBits always returns its input unchanged if the input
has only 0 or 1 track bits set.
Having only 0 or 1 track bits sets (i.e. non junction tiles)
is by far the most common case.
Examining the state of neighbouring tiles and the subsequent
masking logic is relatively expensive and can be omitted in this case.
2021-03-10 23:28:10 +01:00
translators
1fb1e75038 Update: Translations from eints
norwegian (bokmal): 26 changes by Anolitt
spanish (mexican): 25 changes by absay
japanese: 11 changes by Azusa257
korean: 7 changes by telk5093
german: 7 changes by danidoedel
russian: 63 changes by Ln-Wolf
finnish: 7 changes by hpiirai
ukrainian: 5 changes by StepanIvasyn
catalan: 7 changes by J0anJosep
spanish: 7 changes by MontyMontana
portuguese (brazilian): 12 changes by Greavez
2021-03-10 18:08:46 +00:00
Patric Stout
4866e43862 Codechange: rework codeflow introduced in 098d5b22 (#8837)
It didn't sit well to me, how I wrote the commit initially. First
casting a variable into another, only to write it back into the
originally feels wrong.

This flow makes a bit more sense to me.
2021-03-10 13:57:52 +01:00
Patric Stout
14b61bfa6f Fix #8833: don't reload NewGRFs when we are shutting down
Otherwise that might cause calls to the video-driver, which are
already shut down by now. This causes, depending on the video-driver
crashes or weird effects.
2021-03-10 13:41:18 +01:00
Patric Stout
afadae6d50 Fix: abort world generation on exiting the game as soon as possible
This prevents the window from "freezing" when you close it during
world generation, as it first would continue the action.
2021-03-10 13:41:18 +01:00
Patric Stout
5426cb3baf Fix: abort GRFFileScanner on exiting the game as soon as possible
This prevents the window from "freezing" when you close it during
the scanning of NewGRFs, as it first would continue the action.
2021-03-10 13:41:18 +01:00
Patric Stout
b349ef6e71 Fix: don't update framerates when a modal window is open
Otherwise the numbers are all over the place when a modal window
just closed.
2021-03-10 13:41:18 +01:00
Patric Stout
970fedd78c Add: make modal windows update more smooth
Basically, modal windows had their own thread-locking for what
drawing was possible. This is a bit nonsense now we have a
game-thread. And it makes much more sense to do things like
NewGRFScan and GenerateWorld in the game-thread, and not in a
thread next to the game-thread.

This commit changes that: it removes the threads for NewGRFScan
and GenerateWorld, and just runs the code in the game-thread.
On regular intervals it allows the draw-thread to do a tick,
which gives a much smoother look and feel.

It does slow down NewGRFScan and GenerateWorld ever so slightly
as it spends more time on drawing. But the slowdown is not
measureable on my machines (with 700+ NewGRFs / 4kx4k map and
a Debug build).

Running without a game-thread means NewGRFScan and GenerateWorld
are now blocking.
2021-03-10 13:41:18 +01:00
Patric Stout
098d5b2239 Fix #8711: having gui_zoom lower than zoom_min causes crashes (#8835)
gui_zoom was never clamp'd between zoom_min/zoom_max.

zoom_min controls how zoomed-in we load sprites. For a value of 1,
no quad-sizes sprites are loaded. If gui_zoom would be 0, meaning
it wants quad-sized sprites to display, it was printing random
stuff to the screen, which could or could not result in crashes.
2021-03-10 13:39:03 +01:00
sean
160a5f2fdd Codechange: Misleading function name for selecting refresh rate (#8836)
Co-authored-by: pnda <43609023+ThePNDA@users.noreply.github.com>
2021-03-10 12:37:35 +00:00
glx22
35a228f78f Add: [CMake] Install menu and media files 2021-03-09 22:42:25 +01:00
glx22
b5770acd50 Codechange: [CMake] Add checks for baseset script parameters 2021-03-09 22:42:25 +01:00
Patric Stout
47e11fa3f2 Codechange: only run InteractiveRandom() from the draw-thread (#8831)
Otherwise both the draw-thread and game-thread can do it both
at the same time, which gives rather unwanted side-effects.

Calling it from the draw-thread alone is sufficient, as we just
want to create some unpredictable randomness for the player. The
draw-thread is a lot more active (normally) than the game-thread,
so it is the best place of the two to do this.
Additionally, InteractiveRandom() mostly has to do with visuals
that are client-side-only, so more related to drawing than to
game.
2021-03-09 20:30:37 +01:00
Patric Stout
68e92d215a Fix #8810: "aircraft out of fuel" news was looking in the wrong place (#8832)
v->tile for aircrafts is always zero when in the air. Only when
it starts its landing (or take-off) patterns it becomes a sane
value.
So instead, base the news on the last x/y coordinates of the plane.
2021-03-09 20:29:22 +01:00
translators
65f558d6df Update: Translations from eints
english (us): 18 changes by 2TallTyler
korean: 17 changes by telk5093
german: 13 changes by danidoedel, 4 changes by Wuzzy2
finnish: 17 changes by hpiirai
catalan: 17 changes by J0anJosep
lithuanian: 33 changes by devbotas
spanish: 17 changes by MontyMontana
portuguese (brazilian): 20 changes by Greavez
polish: 9 changes by yazalo
2021-03-09 18:22:28 +00:00
Patric Stout
b21ba566ae Codechange: remove special strings for language and resolutions (#8824)
As OpenTTD grew, we found other ways to do this, and we are no
longer in need for a hack like this.
2021-03-09 10:58:33 +01:00
PeterN
9fdc881005 Fix: Scale PIP-padding the same as regular padding. (#8829) 2021-03-09 10:43:04 +01:00
sean
0464a50ab8 Add: Display refresh rate game option (#8813) 2021-03-09 10:22:52 +01:00
Patric Stout
64a8c38d2f Fix: [Actions] update environment variable for AWS region (#8827) 2021-03-08 23:31:45 +01:00
Michael Lutz
436cdf1fc8 Fix #8825: [OpenGL] Don't clear cursor cache from the game loop thread. 2021-03-08 21:35:35 +01:00
translators
ee69a0dc29 Update: Translations from eints
lithuanian: 5 changes by devbotas
portuguese (brazilian): 8 changes by Greavez
2021-03-08 19:03:59 +00:00
Patric Stout
8946b41d20 Fix: ensure switching blitter happens in the main thread
This because video-drivers might need to make changes to their
context, which for most video-drivers has to be done in the same
thread as the window was created; main thread in our case.
2021-03-08 19:18:55 +01:00
Patric Stout
e56d2c63c3 Add: [Video] move GameLoop into its own thread
This allows drawing to happen while the GameLoop is doing an
iteration too.

Sadly, not much drawing currently can be done while the GameLoop
is running, as for example PollEvent() or UpdateWindows() can
influence the game-state. As such, they first need to acquire a
lock on the game-state before they can be called.

Currently, the main advantage is the time spend in Paint(), which
for non-OpenGL drivers can be a few milliseconds. For OpenGL this
is more like 0.05 milliseconds; in these instances this change
doesn't add any benefits for now.

This is an alternative to the former "draw-thread", which moved
the drawing in a thread for some OSes. It has similar performance
gain as this does, although this implementation allows for more
finer control over what suffers when the GameLoop takes too
long: drawing or the next GameLoop. For now they both suffer
equally.
2021-03-08 19:18:55 +01:00
Michael Lutz
3a4a15cc93 Codechange: don't set the window position when changing blitter
There really is no need to make an extra call to the OS in
these cases.
2021-03-08 19:18:55 +01:00
Patric Stout
b9eac7c6dc Codechange: remove the unused lock around Blitter 2021-03-08 19:18:55 +01:00
Patric Stout
4610aa7ae3 Remove: [Video] no longer draw in a thread
Drawing in a thread is a bit odd, and often leads to surprising
issues. For example, OpenGL would only allow it if you move the
full context to the thread. Which is not always easily done on
all OSes.
In general, the advise is to handle system events and drawing
from the main thread, and do everything else in other threads.
So, let's be more like other games.

Additionally, putting the drawing routine in a thread was only
done for a few targets.

Upcoming commit will move the GameLoop in a thread, which will
work for all targets.
2021-03-08 19:18:55 +01:00
dP
56911a86ea Add: Buttons to open global goals from company goals and vice versa 2021-03-08 18:18:47 +00:00
dP
818bee3961 Change: Don't show global goals in company goal windows 2021-03-08 18:18:47 +00:00
Didac Perez Parera
3878c4781e Fix #8817: keep NewGRF order for object class sorting (#8818) 2021-03-08 17:00:43 +01:00
Patric Stout
04db99749b Fix #8784: using alt+enter didn't update the fullscreen toggle visibly (#8820)
Basically, the window was not invalidated, so it was never redrawn.
This made it look like it wasn't working, but it really was.
2021-03-08 16:57:59 +01:00
Eddi-z
d3179709b1 Change: Clarify what effect town interactions have (#8744) 2021-03-08 15:44:33 +01:00
Michael Lutz
25656a10cb Fix #8808: [OSX, OpenGL] Crash on switching blitters due to double-mapping the video buffer. 2021-03-08 15:43:22 +01:00
Michael Lutz
ae1f7bd695 Fix 937d60f2: Broken company colours for 40bpp-blitter. (#8821) 2021-03-08 15:43:08 +01:00
Patric Stout
b93d7dd3cb Add: Option to (dis-)allow accelerated video drivers. (#8819)
The video drivers using the OpenGL backend are currently our only
accelerated drivers. The options defaults to off for macOS builds and
to on everywhere else.

Co-authored-by: Michael Lutz <michi@icosahedron.de>
2021-03-08 15:42:39 +01:00
Didac Perez Parera
6e2a96c133 Add: filter for "engines only" in build train window (#8733) 2021-03-08 12:03:11 +01:00
translators
f70aa8fabe Update: Translations from eints
estonian: 6 changes by siimsoni
catalan: 3 changes by J0anJosep
latvian: 37 changes by lexuslatvia
portuguese (brazilian): 8 changes by Greavez
polish: 1 change by azabost
2021-03-07 19:02:12 +00:00
Jonathan G Rennison
25909b06d2 Fix #8809: Crash when removing airport when hangar window open 2021-03-07 17:59:38 +00:00
translators
2860de7bf4 Update: Translations from eints
chinese (traditional): 5 changes by benny30111
estonian: 1 change by siimsoni
italian: 1 change by AlphaJack
ukrainian: 4 changes by StepanIvasyn
tamil: 37 changes by Aswn
portuguese (brazilian): 19 changes by Greavez
2021-03-06 19:01:58 +00:00
translators
f536fd55d8 Update: Translations from eints
swedish: 1 change by kustridaren
spanish (mexican): 4 changes by absay
estonian: 80 changes by siimsoni
arabic (egypt): 13 changes by AviationGamerX
ukrainian: 1 change by StepanIvasyn
dutch: 1 change by Afoklala
portuguese (brazilian): 15 changes by Greavez
2021-03-05 19:02:54 +00:00
Patric Stout
06a3c0cb26 Fix dddf885f: use IConsoleError to produce console errors 2021-03-04 22:23:05 +01:00
Patric Stout
8c6b5e52fd Add: allow making heightmap screenshot via console 2021-03-04 22:23:05 +01:00
Patric Stout
ac5e77ea3b Feature: allow custom width/height of screenshot via console
Reworked how the screenshot command works while keeping it backwards
compatible. It can now more freely understand arguments, and has
the ability to make SC_DEFAULTZOOM screenshots.
2021-03-04 22:23:05 +01:00
translators
879eb9c348 Update: Translations from eints
estonian: 22 changes by siimsoni
korean: 1 change by telk5093
serbian: 41 changes by nkrs
german: 1 change by Wuzzy2
romanian: 14 changes by ALEX11BR
russian: 5 changes by Ln-Wolf
finnish: 5 changes by hpiirai
ukrainian: 2 changes by StepanIvasyn
lithuanian: 105 changes by devbotas
spanish: 3 changes by MontyMontana
french: 5 changes by MalaGaM
portuguese (brazilian): 13 changes by Greavez
2021-03-04 19:00:02 +00:00
glx22
349dc568ea Fix: [CMake] Remove timestamps from regression output 2021-03-04 16:22:58 +01:00
glx22
1d79f55a46 Fix: [CMake] Skip detection for unused libs for dedicated builds 2021-03-04 16:22:58 +01:00
glx22
db0993f500 Change: [Actions] Also check dedicated build 2021-03-04 16:22:58 +01:00
Patric Stout
0243ae4654 Fix #8799: NGameAllowedSorter() is not imposing strict weak ordering relation (#8801)
In other words, it should only (!) return true if A comes for B.
This promise was broken for the situation where two values are
identical. It would return true in these cases too. This is of
course not possible: if two values are identical, neither come
before the other. As such, the sorter was not imposing strict
weak ordering relations.

libstdc++ handled this scenario just fine, but libc++ crashes
badly on this, as it allowed comparing of [begin, end] instead
of [begin, end).
libc++ considered this not a bug (and by specs, they are correct;
just this way of crashing is of course a bit harsh):
https://bugs.llvm.org/show_bug.cgi?id=47903
2021-03-03 12:12:29 +00:00
Michael Lutz
937d60f239 Fix #8774: Black screenshots when using 40bpp-blitter. (#8791)
This affected all screenshot types that render to an off-screen
buffer and don't copy the actual screen contents.
2021-03-02 20:55:39 +01:00
translators
95462493ef Update: Translations from eints
english (us): 4 changes by 2TallTyler
italian: 4 changes by troccoli
serbian: 251 changes by nkrs
german: 6 changes by ebla71, 2 changes by Wuzzy2
romanian: 3 changes by ALEX11BR
russian: 11 changes by Ln-Wolf
ukrainian: 2 changes by StepanIvasyn
lithuanian: 15 changes by devbotas
spanish: 2 changes by perezdidac
2021-03-02 18:56:54 +00:00
Michael Lutz
c656633bea Fix #8775: [Win32] Don't create the main window when alt-tabbing back into fullscreen. 2021-03-01 23:41:39 +01:00
Michael Lutz
b7a44983b4 Fix: [Win32] Original window size was lost when tabbing in and out of fullscreen. 2021-03-01 23:41:39 +01:00
Patric Stout
74aa934441 Codechange: validate that "max" value of settings fit in their storage
This is an easy mistake to make, so protect us against making such
mistakes, by validating it doesn't happen.
2021-03-01 23:17:47 +01:00
Patric Stout
d7a70c67ba Fix: old snow_line_height had a higher maximum value than could be stored
So any old game made with this setting was overflowing anyway;
not really a lot we can do about that now.
2021-03-01 23:17:47 +01:00
Patric Stout
a0c298a539 Fix: three max-values for settings could exceed their storage size 2021-03-01 23:17:47 +01:00
Patric Stout
abac4b1758 Fix c4df0f95: bootstrap was only showing a black screen (#8788)
The bootstrap has the _switch_mode to SM_MENU, and never leaves
this mode. Neither is it considered a modal window (while in some
sense it really is). So .. we need to add another "draw anyway"
exception, to make sure bootstrap is being drawn.
2021-03-01 23:17:30 +01:00
Limyx826
47e899cf75 Add: Malaysia Ringgit as Currency
Cause why not

*Update the formating
2021-03-01 21:56:26 +00:00
Charles Pigott
64686b53ff Change: Zero out the gameloop timers when the game is paused 2021-03-01 21:55:51 +00:00
Charles Pigott
ef5cea0e06 Change: De-limit framerate window's framerate 2021-03-01 21:55:51 +00:00
glx22
cd4c8ecbf3 Add: [Actions] Allow partial cache invalidation on dependencies change 2021-03-01 22:41:48 +01:00
Owen Rudge
838fd61f29 Fix: [OSX] Hide dock when entering fullscreen 2021-03-01 21:03:18 +00:00
translators
02e7bc7e0a Update: Translations from eints
swedish: 4 changes by kustridaren
norwegian (bokmal): 3 changes by buzzCraft
spanish (mexican): 12 changes by absay
korean: 4 changes by telk5093
greek: 85 changes by sntovas
german: 4 changes by MagnumSociety
catalan: 5 changes by J0anJosep
tamil: 16 changes by Ramesh78dev
dutch: 4 changes by rcpaul
polish: 5 changes by pAter-exe
2021-03-01 19:01:41 +00:00
Patric Stout
40505e645a Fix: terraform limit acted random when maxing out per_64k_frames setting
uint32 + uint32 can overflow, so cast it to uint64 first.
2021-03-01 16:35:16 +01:00
Patric Stout
25e5a92286 Fix 9b800a96: (a << 16) is unsigned, so don't remove the cast 2021-03-01 16:35:16 +01:00
Patric Stout
8bc0089fc4 Fix c3dc27e3: put the max-value of fast-forward-speed-limit to within the storage size (#8769) 2021-02-28 21:53:14 +01:00
translators
2545b24118 Update: Translations from eints
czech: 1 change by LubosKolouch
2021-02-28 19:00:53 +00:00
309 changed files with 10421 additions and 5415 deletions

View File

@@ -75,6 +75,9 @@ jobs:
- compiler: gcc
cxxcompiler: g++
libsdl: libsdl1.2-dev
- compiler: gcc
cxxcompiler: g++
extra-cmake-parameters: -DOPTION_DEDICATED=ON
runs-on: ubuntu-20.04
env:
@@ -129,7 +132,7 @@ jobs:
cd build
echo "::group::CMake"
cmake ..
cmake .. ${{ matrix.extra-cmake-parameters }}
echo "::endgroup::"
echo "::group::Build"
@@ -140,7 +143,7 @@ jobs:
- name: Test
run: |
cd build
ctest -j $(nproc)
ctest -j $(nproc) --timeout 120
macos:
name: Mac OS
@@ -169,7 +172,9 @@ jobs:
uses: actions/cache@v2
with:
path: /usr/local/share/vcpkg/installed
key: ${{ steps.key.outputs.image }}-vcpkg-${{ matrix.arch }}
key: ${{ steps.key.outputs.image }}-vcpkg-${{ matrix.arch }}-0 # Increase the number whenever dependencies are modified
restore-keys: |
${{ steps.key.outputs.image }}-vcpkg-${{ matrix.arch }}
- name: Prepare vcpkg
run: |
@@ -219,7 +224,7 @@ jobs:
- name: Test
run: |
cd build
ctest -j $(sysctl -n hw.logicalcpu)
ctest -j $(sysctl -n hw.logicalcpu) --timeout 120
windows:
name: Windows
@@ -249,7 +254,9 @@ jobs:
uses: actions/cache@v2
with:
path: vcpkg/installed
key: ${{ steps.key.outputs.image }}-vcpkg-${{ matrix.arch }}
key: ${{ steps.key.outputs.image }}-vcpkg-${{ matrix.arch }}-0 # Increase the number whenever dependencies are modified
restore-keys: |
${{ steps.key.outputs.image }}-vcpkg-${{ matrix.arch }}
- name: Prepare vcpkg
shell: bash
@@ -307,4 +314,4 @@ jobs:
shell: bash
run: |
cd ${GITHUB_WORKSPACE}/build
ctest
ctest --timeout 120

View File

@@ -96,7 +96,7 @@ jobs:
TZ='UTC' date +"%Y-%m-%d %H:%M UTC" > .release_date
cat .ottdrev | cut -f 1 -d$'\t' > .version
if [ $(cat .ottdrev | cut -f 6 -d$'\t') = '1' ]; then
if [ $(cat .ottdrev | cut -f 5 -d$'\t') = '1' ]; then
# Assume that all tags are always releases. Why else make a tag?
IS_TAG="true"
@@ -379,6 +379,8 @@ jobs:
bundle_name: "groovy"
- container_image: "debian:buster"
bundle_name: "buster"
- container_image: "debian:bullseye"
bundle_name: "bullseye"
runs-on: ubuntu-20.04
container:
@@ -496,7 +498,10 @@ jobs:
uses: actions/cache@v2
with:
path: /usr/local/share/vcpkg/installed
key: ${{ steps.key.outputs.image }}-vcpkg-release
key: ${{ steps.key.outputs.image }}-vcpkg-release-0 # Increase the number whenever dependencies are modified
restore-keys: |
${{ steps.key.outputs.image }}-vcpkg-release
${{ steps.key.outputs.image }}-vcpkg-x64
- name: Prepare vcpkg
run: |
@@ -696,7 +701,9 @@ jobs:
uses: actions/cache@v2
with:
path: vcpkg/installed
key: ${{ steps.key.outputs.image }}-vcpkg-${{ matrix.arch }}
key: ${{ steps.key.outputs.image }}-vcpkg-${{ matrix.arch }}-0 # Increase the number whenever dependencies are modified
restore-keys: |
${{ steps.key.outputs.image }}-vcpkg-${{ matrix.arch }}
- name: Prepare vcpkg
shell: bash
@@ -859,7 +866,7 @@ jobs:
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_REGION: ${{ secrets.AWS_REGION }}
AWS_DEFAULT_REGION: ${{ secrets.AWS_REGION }}
- name: Trigger 'New OpenTTD release'
uses: peter-evans/repository-dispatch@v1

View File

@@ -4,10 +4,12 @@ if(NOT BINARY_NAME)
set(BINARY_NAME openttd)
endif()
project(${BINARY_NAME})
project(${BINARY_NAME}
VERSION 1.11.2
)
if(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
message(FATAL_ERROR "In-source builds not allowed. Please run \"cmake ..\" from the bin directory")
message(FATAL_ERROR "In-source builds not allowed. Please run \"cmake ..\" from the build directory. You may need to delete \"${CMAKE_SOURCE_DIR}/CMakeCache.txt\" first.")
endif()
# Debug mode by default.
@@ -72,6 +74,9 @@ add_custom_target(find_version
${CMAKE_COMMAND}
-DFIND_VERSION_BINARY_DIR=${CMAKE_BINARY_DIR}/generated
-DCPACK_BINARY_DIR=${CMAKE_BINARY_DIR}
-DREV_MAJOR=${PROJECT_VERSION_MAJOR}
-DREV_MINOR=${PROJECT_VERSION_MINOR}
-DREV_BUILD=${PROJECT_VERSION_PATCH}
-P "${CMAKE_SOURCE_DIR}/cmake/scripts/FindVersion.cmake"
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
BYPRODUCTS ${GENERATED_SOURCE_FILES}
@@ -119,28 +124,31 @@ find_package(LibLZMA)
find_package(LZO)
find_package(PNG)
if(NOT WIN32)
find_package(Allegro)
if(NOT APPLE)
find_package(Freetype)
find_package(SDL2)
if(NOT SDL2_FOUND)
find_package(SDL)
if(NOT OPTION_DEDICATED)
if(NOT WIN32)
find_package(Allegro)
if(NOT APPLE)
find_package(Freetype)
find_package(SDL2)
if(NOT SDL2_FOUND)
find_package(SDL)
endif()
find_package(Fluidsynth)
find_package(Fontconfig)
find_package(ICU OPTIONAL_COMPONENTS i18n lx)
endif()
find_package(Fluidsynth)
find_package(Fontconfig)
find_package(ICU OPTIONAL_COMPONENTS i18n lx)
else()
find_package(Iconv)
find_library(AUDIOTOOLBOX_LIBRARY AudioToolbox)
find_library(AUDIOUNIT_LIBRARY AudioUnit)
find_library(COCOA_LIBRARY Cocoa)
find_library(QUARTZCORE_LIBRARY QuartzCore)
endif()
endif()
if(APPLE)
find_package(Iconv)
if(NOT EMSCRIPTEN)
find_library(AUDIOTOOLBOX_LIBRARY AudioToolbox)
find_library(AUDIOUNIT_LIBRARY AudioUnit)
find_library(COCOA_LIBRARY Cocoa)
find_library(QUARTZCORE_LIBRARY QuartzCore)
endif()
if(NOT EMSCRIPTEN AND NOT OPTION_DEDICATED)
find_package(OpenGL COMPONENTS OpenGL)
endif()
@@ -217,8 +225,9 @@ if(MSVC)
target_sources(openttd PRIVATE "${CMAKE_SOURCE_DIR}/os/windows/openttd.manifest")
endif()
add_subdirectory(${CMAKE_SOURCE_DIR}/bin)
add_subdirectory(${CMAKE_SOURCE_DIR}/src)
add_subdirectory(${CMAKE_SOURCE_DIR}/media/baseset)
add_subdirectory(${CMAKE_SOURCE_DIR}/media)
add_dependencies(openttd
find_version)
@@ -226,6 +235,7 @@ add_dependencies(openttd
target_link_libraries(openttd
openttd::languages
openttd::settings
openttd::media
openttd::basesets
openttd::script_api
Threads::Threads
@@ -236,7 +246,7 @@ if(IPO_FOUND)
set_target_properties(openttd PROPERTIES INTERPROCEDURAL_OPTIMIZATION_MINSIZEREL True)
set_target_properties(openttd PROPERTIES INTERPROCEDURAL_OPTIMIZATION_RELWITHDEBINFO True)
endif()
set_target_properties(openttd PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/bin")
set_target_properties(openttd PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_BINARY_DIR}")
process_compile_flags()
include(LinkPackage)

View File

@@ -2,26 +2,27 @@
## Required/optional libraries
The following libraries are used by OpenTTD for:
OpenTTD makes use of the following external libraries:
- zlib: (de)compressing of old (0.3.0-1.0.5) savegames, content downloads,
- (encouraged) zlib: (de)compressing of old (0.3.0-1.0.5) savegames, content downloads,
heightmaps
- liblzo2: (de)compressing of old (pre 0.3.0) savegames
- liblzma: (de)compressing of savegames (1.1.0 and later)
- libpng: making screenshots and loading heightmaps
- (encouraged) liblzma: (de)compressing of savegames (1.1.0 and later)
- (encouraged) libpng: making screenshots and loading heightmaps
- (optional) liblzo2: (de)compressing of old (pre 0.3.0) savegames
For Linux, the following additional libraries are used (for non-dedicated only):
- libSDL2: hardware access (video, sound, mouse)
- libfreetype: loading generic fonts and rendering them
- libfontconfig: searching for fonts, resolving font names to actual fonts
- libicu: handling of right-to-left scripts (e.g. Arabic and Persian) and
natural sorting of strings (Linux only)
- libSDL2: hardware access (video, sound, mouse) (not required for Windows or macOS)
natural sorting of strings
OpenTTD does not require any of the libraries to be present, but without
liblzma you cannot open most recent savegames and without zlib you cannot
open most older savegames or use the content downloading system.
Without libSDL/liballegro on non-Windows and non-macOS machines you have
no graphical user interface; you would be building a dedicated server.
## Windows:
## Windows
You need Microsoft Visual Studio 2017 or more recent.
@@ -77,6 +78,8 @@ files himself via the `ZERO_CHECK` project.
## All other platforms
Minimum required version of CMake is 3.9.
By default this produces a Debug build with assertations enabled.
This is a far slower build than release builds.
```bash
mkdir build
@@ -88,6 +91,25 @@ make
For more information on how to use CMake (including how to make Release builds),
we urge you to read [their excellent manual](https://cmake.org/cmake/help/latest/guide/user-interaction/index.html).
## CMake Options
Via CMake, several options can be influenced to get different types of
builds.
- `-DCMAKE_BUILD_TYPE=RelWithDebInfo`: build a release build. This is
significant faster than a debug build, but has far less useful information
in case of a crash.
- `-DOPTION_DEDICATED=ON`: build OpenTTD without a GUI. Useful if you are
running a headless server, as it requires less libraries to operate.
- `-DOPTION_USE_ASSERTS=OFF`: disable asserts. Use with care, as assert
statements capture early signs of trouble. Release builds have them
disabled by default.
- `-DOPTION_USE_THREADS=OFF`: disable the use of threads. This will block
the interface in many places, and in general gives a worse experience of
the game. Use with care.
- `-DOPTION_TOOLS_ONLY=ON`: only build tools like `strgen`. Does not build
the game itself. Useful for cross-compiling.
## Supported compilers
Every compiler that is supported by CMake and supports C++17, should be

View File

@@ -46,15 +46,13 @@ OpenTTD has a [community-maintained wiki](https://wiki.openttd.org/), including
OpenTTD has been ported to several platforms and operating systems.
The currently working platforms are:
The currently supported platforms are:
- FreeBSD (SDL)
- Haiku (SDL)
- Linux (SDL)
- macOS (universal) (Cocoa video and sound drivers)
- OpenBSD (SDL)
- OS/2 (SDL)
- Windows (Win32 GDI (faster) or SDL)
- Linux (SDL (OpenGL and non-OpenGL))
- macOS (universal) (Cocoa)
- Windows (Win32 GDI / OpenGL)
Other platforms may also work (in particular various BSD systems), but we don't actively test or maintain these.
### 1.3.1) Legacy support
Platforms, languages and compilers change.
@@ -79,9 +77,9 @@ For some platforms, you will need to refer to [the installation guide](https://w
The free data files, split into OpenGFX for graphics, OpenSFX for sounds and
OpenMSX for music can be found at:
- https://www.openttd.org/download-opengfx for OpenGFX
- https://www.openttd.org/download-opensfx for OpenSFX
- https://www.openttd.org/download-openmsx for OpenMSX
- https://www.openttd.org/downloads/opengfx-releases/ for OpenGFX
- https://www.openttd.org/downloads/opensfx-releases/ for OpenSFX
- https://www.openttd.org/downloads/openmsx-releases/ for OpenMSX
Please follow the readme of these packages about the installation procedure.
The Windows installer can optionally download and install these packages.

2
bin/CMakeLists.txt Normal file
View File

@@ -0,0 +1,2 @@
add_subdirectory(ai)
add_subdirectory(game)

39
bin/ai/CMakeLists.txt Normal file
View File

@@ -0,0 +1,39 @@
set(AI_COMPAT_SOURCE_FILES
${CMAKE_CURRENT_SOURCE_DIR}/compat_0.7.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.0.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.1.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.2.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.3.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.4.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.5.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.6.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.7.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.8.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.9.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.10.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.11.nut
)
foreach(AI_COMPAT_SOURCE_FILE IN LISTS AI_COMPAT_SOURCE_FILES)
string(REPLACE "${CMAKE_SOURCE_DIR}/bin/" "" AI_COMPAT_SOURCE_FILE_NAME "${AI_COMPAT_SOURCE_FILE}")
string(CONCAT AI_COMPAT_BINARY_FILE "${CMAKE_BINARY_DIR}/" "${AI_COMPAT_SOURCE_FILE_NAME}")
add_custom_command(OUTPUT ${AI_COMPAT_BINARY_FILE}
COMMAND ${CMAKE_COMMAND} -E copy
${AI_COMPAT_SOURCE_FILE}
${AI_COMPAT_BINARY_FILE}
MAIN_DEPENDENCY ${AI_COMPAT_SOURCE_FILE}
COMMENT "Copying ${AI_COMPAT_SOURCE_FILE_NAME}"
)
list(APPEND AI_COMPAT_BINARY_FILES ${AI_COMPAT_BINARY_FILE})
endforeach()
# Create a new target which copies all compat files
add_custom_target(ai_compat_files
DEPENDS ${AI_COMPAT_BINARY_FILES}
)
add_dependencies(openttd
ai_compat_files
)

36
bin/game/CMakeLists.txt Normal file
View File

@@ -0,0 +1,36 @@
set(GS_COMPAT_SOURCE_FILES
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.2.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.3.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.4.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.5.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.6.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.7.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.8.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.9.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.10.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.11.nut
)
foreach(GS_COMPAT_SOURCE_FILE IN LISTS GS_COMPAT_SOURCE_FILES)
string(REPLACE "${CMAKE_SOURCE_DIR}/bin/" "" GS_COMPAT_SOURCE_FILE_NAME "${GS_COMPAT_SOURCE_FILE}")
string(CONCAT GS_COMPAT_BINARY_FILE "${CMAKE_BINARY_DIR}/" "${GS_COMPAT_SOURCE_FILE_NAME}")
add_custom_command(OUTPUT ${GS_COMPAT_BINARY_FILE}
COMMAND ${CMAKE_COMMAND} -E copy
${GS_COMPAT_SOURCE_FILE}
${GS_COMPAT_BINARY_FILE}
MAIN_DEPENDENCY ${GS_COMPAT_SOURCE_FILE}
COMMENT "Copying ${GS_COMPAT_SOURCE_FILE_NAME}"
)
list(APPEND GS_COMPAT_BINARY_FILES ${GS_COMPAT_BINARY_FILE})
endforeach()
# Create a new target which copies all compat files
add_custom_target(gs_compat_files
DEPENDS ${GS_COMPAT_BINARY_FILES}
)
add_dependencies(openttd
gs_compat_files
)

View File

@@ -1,3 +1,111 @@
1.11.2 (2021-05-03)
------------------------------------------------------------------------
Change: [Win32] Limit hardware accelerated video driver to OpenGL 3.2 or higher (#9077)
Change: More improvements to the GUI at different scales (#9075, #9102, #9107, #9133, #9174, #9183)
Fix: Query windows could be partially drawn (#9184)
Fix #9113: Crash when removing an airport that exists in an aircraft's orders (#9182)
Fix #9117: [Fluidsynth] Hang when changing song (#9181)
Fix: String validation could leave invalid UTF-8 encoded strings (#9096)
Fix: [Network] Out-of-bounds memory access with modified servers sending too short password salts (#9176)
Fix: Crash when extra viewport with zero height has sign in view (#9175)
Fix #9147: Crash when taking screenshots (#9169)
Fix #6598: [Network] Prevent crashes when (re)joining network game by falling back to main menu first (#9163)
Fix #9152: Screenshot success popup window was treated as an error (#9159)
Fix: Fast-forward stuttering when vsync is enabled (#9140)
Fix: [Network, Win32] Network errors were handled badly (#9116)
Fix: [Network] Savegame transfer could stall in rare cases (#9106)
Fix #9097: [NewGRF] Cargo initial payment variable was being truncated (#9098)
Fix: [NewGRF] Industry variable 66 and object variable 46 erroneously truncated the distance (#9088)
Fix: [NewGRF] Industry variables 65 and 66 ignored the parameter, and always used the north tile (#9088)
Fix: Do not include regression test AI in bundle (#9068, #9164)
Fix #9062: [Win32] Version in executable was not set to current release version (#9066, #9154)
1.11.1 (2021-04-18)
------------------------------------------------------------------------
Feature: Toggle to enable/disable vsync (#8997)
Feature: Volume controls in the Game Options window, and better defaults (#8943)
Add: Hotkey to focus object and rail filters (#8908)
Add: Better plural support for Romanian (#8936)
Change: Improve layout and spacing of several windows at different GUI scales (#9041, #9042, #9044, #9050)
Change: [Win32] Use user UI language setting for initial language selection (#8974)
Change: Make effect volume scale more intuitively (#8945, #8950)
Change: Improve padding of Object & Rail station windows (#8929)
Fix #6322: [Script] Crash when script allocates too much memory, now kills script instead (#9047)
Fix #7513: [Script] Crash on garbage collection with misbehaving script (#9040)
Fix #9028: [OpenGL] Crash when changing max sprite zoom level (#9032)
Fix #8874: show a warning when a NewGRF scan is requested multiple times (#9022)
Fix: Desync when GS unlocks railtype with wagon unlock (#9021)
Fix #9015: [Win32] Crash on running "pwd" command in the console (#9016)
Fix #9008: Validate starting year given on the command line (-t) (#9014)
Fix #8878: [Network] Slow DNS queries could block the server and disconnect clients (#9013)
Fix: Improve validation of OpenGL video driver to avoid crashes (#9007)
Fix: Credits scrolled too slowly with larger font sizes (#8994)
Fix #8977: Crash when altering max sprite resolution (#8993)
Fix #8956: Industry disaster news messages showed the wrong location (#8992)
Fix: [Win32] Font glyphs of certain widths had broken rendering (#8990)
Fix #8930: [Win32] Duplicate text input issue for systems using IME (#8976)
Fix: [Network] Potential stale client entries in client list (#8959)
Fix: Graphical issues when dragging measurement tooltips (#8951)
Fix: [Fluidsynth] Use provided default soundfont if available (#8948, #8953)
Fix #8935: [macOS] Crash on save (#8944)
Fix #8922: Crash when selling shared vehicles with shared vehicle window open (#8926)
Fix: Compiling on armhf (Raspberry Pi) (#8924)
1.11.0 (2021-04-01)
------------------------------------------------------------------------
Feature: Allow setting a custom terrain type to define highest peak (#8891)
Feature: Auto-detect map height limit based on generated map (#8891)
Feature: Setting to indicate desert coverage for tropic climate and snow coverage for arctic climate (replaces snow line height) (#8891)
Add: Allow setting the highest mountain for heightmaps (#8891)
Change: Scale exported heightmaps to highest peak and inform the user of this value (#8891)
Change: Remove "maximum map height" from the New Game GUI (#8891)
Fix #8803: Only auto-remove signals when rail can be built (#8904)
Fix #8565: Stopped road vehicle displays a speed different than 0 (#8901)
Fix #8886: Don't try to resolve folders within tars named '.' (#8893)
Fix: Placing random trees in SE crashes the game (#8892)
Fix #8875: Filter string in station window breaks flow in user interface (#8885)
Fix #8871: [OpenGL] Initialize all buffers after resize and clear back buffer (#8877)
Fix: OpenGL performance with some AMD GPUs (#8876)
Fix: Recompute road/railtype availability after disabling the engine (#8872)
Fix: OSK layout not scaled for 2x or 4x GUI scale (#8868)
1.11.0-RC1 (2021-03-14)
------------------------------------------------------------------------
Feature: Option to (dis-)allow hardware accelerated video drivers (#8819)
Feature: Option to set display refresh rate (#8813)
Feature: Allow custom width/height of screenshot and making heightmap screenshots via console (#8804)
Feature: Allow filtering on name in rail station window (#8706)
Feature: Setting for highest resolution of sprites to use (#8604)
Add: Make NewGRF Scanner / World Generation update smoother and make aborting it react faster (#8830)
Add: Malaysia Ringgit as Currency (#8783)
Add: "Engines only" filter in build train window (#8733)
Change: De-limit framerate window's framerate (#8772)
Change: Clarify what effect town interactions have (#8744)
Change: Don't show global goals in company goal windows (#8709)
Change: Recolour graph windows to brown (#8700)
Fix #8855: Bootstrap could result in an empty screen when bootstrap fails (#8856)
Fix #8851: Don't allow infinite "exec" depth in script, but limit to 10 deep (#8852)
Fix #8647: Incorrect drawing order of tram catenary sprites (#8843)
Fix #8711: Having gui_zoom lower than zoom_min causes a crash (#8835)
Fix #8810: "aircraft out of fuel" news shows the wrong place (#8832)
Fix #8833: Don't reload NewGRFs when we are shutting down (#8830)
Fix: Scale padding between elements the same as other padding (#8829)
Fix #8808: [OSX, OpenGL] Crash on switching blitters due to double-mapping the video buffer (#8822)
Fix #8784: Using Alt+Enter doesn't update the fullscreen toggle visibly (#8820)
Fix #8817: Keep NewGRF order for object class sorting (#8818)
Fix #8809: Crash when removing airport when hangar window open (#8815)
Fix #8799: Crash when Search Internet in Multiplayer (#8801)
Fix #8775: [Win32] Don't create the main window when Alt-Tabbing back into fullscreen (#8792)
Fix #8774: Black screenshots when using 40bpp-blitter (#8791)
Fix: [OSX] Hide dock when entering fullscreen (#8789)
Fix: Bootstrap fails to start on clean install (#8788)
Fix: Terraform limit acts random when maxing out per_64k_frames setting (#8782)
Fix: Max-value of fast-forward-speed-limit can be outside its storage size (#8769)
1.11.0-beta2 (2021-02-28)
------------------------------------------------------------------------
Feature: Add setting to limit fast-forward speed (#8766)

View File

@@ -4,20 +4,22 @@
#
macro(compile_flags)
if(MSVC)
# Switch to MT (static) instead of MD (dynamic) binary
if(VCPKG_TARGET_TRIPLET MATCHES "-static" AND NOT VCPKG_TARGET_TRIPLET MATCHES "-md")
# Switch to MT (static) instead of MD (dynamic) binary
# For MSVC two generators are available
# - a command line generator (Ninja) using CMAKE_BUILD_TYPE to specify the
# configuration of the build tree
# - an IDE generator (Visual Studio) using CMAKE_CONFIGURATION_TYPES to
# specify all configurations that will be available in the generated solution
list(APPEND MSVC_CONFIGS "${CMAKE_BUILD_TYPE}" "${CMAKE_CONFIGURATION_TYPES}")
# For MSVC two generators are available
# - a command line generator (Ninja) using CMAKE_BUILD_TYPE to specify the
# configuration of the build tree
# - an IDE generator (Visual Studio) using CMAKE_CONFIGURATION_TYPES to
# specify all configurations that will be available in the generated solution
list(APPEND MSVC_CONFIGS "${CMAKE_BUILD_TYPE}" "${CMAKE_CONFIGURATION_TYPES}")
# Set usage of static runtime for all configurations
foreach(MSVC_CONFIG ${MSVC_CONFIGS})
string(TOUPPER "CMAKE_CXX_FLAGS_${MSVC_CONFIG}" MSVC_FLAGS)
string(REPLACE "/MD" "/MT" ${MSVC_FLAGS} "${${MSVC_FLAGS}}")
endforeach()
# Set usage of static runtime for all configurations
foreach(MSVC_CONFIG ${MSVC_CONFIGS})
string(TOUPPER "CMAKE_CXX_FLAGS_${MSVC_CONFIG}" MSVC_FLAGS)
string(REPLACE "/MD" "/MT" ${MSVC_FLAGS} "${${MSVC_FLAGS}}")
endforeach()
endif()
# "If /Zc:rvalueCast is specified, the compiler follows section 5.4 of the
# C++11 standard". We need C++11 for the way we use threads.

View File

@@ -35,9 +35,9 @@ function(create_grf_command)
-DNFORENUM_EXECUTABLE=${NFORENUM_EXECUTABLE}
-DGRFCODEC_EXECUTABLE=${GRFCODEC_EXECUTABLE}
-P ${CMAKE_SOURCE_DIR}/cmake/scripts/CreateGRF.cmake
MAIN_DEPENDENCY ${GRF_NFO_SOURCE_FILES}
MAIN_DEPENDENCY ${CMAKE_SOURCE_DIR}/cmake/scripts/CreateGRF.cmake
DEPENDS ${GRF_PNG_BINARY_FILES}
${CMAKE_SOURCE_DIR}/cmake/scripts/CreateGRF.cmake
${GRF_NFO_SOURCE_FILES}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Generating ${GRF_SOURCE_FOLDER_NAME}.grf"
)

View File

@@ -26,11 +26,13 @@ install(TARGETS openttd
install(DIRECTORY
${CMAKE_BINARY_DIR}/lang
${CMAKE_BINARY_DIR}/baseset
${CMAKE_SOURCE_DIR}/bin/ai
${CMAKE_SOURCE_DIR}/bin/game
${CMAKE_BINARY_DIR}/ai
${CMAKE_BINARY_DIR}/game
${CMAKE_SOURCE_DIR}/bin/scripts
DESTINATION ${DATA_DESTINATION_DIR}
COMPONENT language_files)
COMPONENT language_files
REGEX "ai/[^\.]+$" EXCLUDE # Ignore subdirs in ai dir
)
install(FILES
${CMAKE_SOURCE_DIR}/COPYING.md
@@ -58,8 +60,18 @@ if(OPTION_INSTALL_FHS)
COMPONENT manual)
endif()
# TODO -- Media files
# TODO -- Menu files
if(UNIX AND NOT APPLE)
install(DIRECTORY
${CMAKE_BINARY_DIR}/media/icons
${CMAKE_BINARY_DIR}/media/pixmaps
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}
COMPONENT media)
install(FILES
${CMAKE_BINARY_DIR}/media/${BINARY_NAME}.desktop
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications
COMPONENT menu)
endif()
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
set(ARCHITECTURE "amd64")

View File

@@ -56,7 +56,7 @@ function(set_options)
option(OPTION_DEDICATED "Build dedicated server only (no GUI)" OFF)
option(OPTION_INSTALL_FHS "Install with Filesystem Hierarchy Standard folders" ${DEFAULT_OPTION_INSTALL_FHS})
option(OPTION_USE_ASSERTS "Use assertions; leave enabled for nightlies, betas, and RCs" ON)
option(OPTION_USE_ASSERTS "Use assertions; leave enabled for nightlies, betas, and RCs" OFF)
if(EMSCRIPTEN)
# Although pthreads is supported, it is not in a way yet that is
# useful for us.

View File

@@ -4,6 +4,16 @@ cmake_minimum_required(VERSION 3.5)
# Create a single baseset meta file with the correct translations.
#
if(NOT BASESET_SOURCE_FILE)
message(FATAL_ERROR "Script needs BASESET_SOURCE_FILE defined")
endif()
if(NOT BASESET_BINARY_FILE)
message(FATAL_ERROR "Script needs BASESET_BINARY_FILE defined")
endif()
if(NOT BASESET_EXTRAGRF_FILE)
message(FATAL_ERROR "Script needs BASESET_EXTRAGRF_FILE defined")
endif()
set(ARGC 1)
set(ARG_READ NO)

View File

@@ -39,6 +39,20 @@ foreach(NFO_LINE IN LISTS NFO_LINES)
endif()
endforeach()
execute_process(COMMAND ${NFORENUM_EXECUTABLE} -s sprites/${GRF_SOURCE_FOLDER_NAME}.nfo)
execute_process(COMMAND ${GRFCODEC_EXECUTABLE} -n -s -e -p1 ${GRF_SOURCE_FOLDER_NAME}.grf)
execute_process(COMMAND ${NFORENUM_EXECUTABLE} -s sprites/${GRF_SOURCE_FOLDER_NAME}.nfo RESULT_VARIABLE RESULT)
if(RESULT)
if(NOT RESULT MATCHES "^[0-9]*$")
message(FATAL_ERROR "Failed to run NFORenum (${RESULT}), please check NFORENUM_EXECUTABLE variable")
endif()
message(FATAL_ERROR "NFORenum failed")
endif()
execute_process(COMMAND ${GRFCODEC_EXECUTABLE} -n -s -e -p1 ${GRF_SOURCE_FOLDER_NAME}.grf RESULT_VARIABLE RESULT)
if(RESULT)
if(NOT RESULT MATCHES "^[0-9]*$")
message(FATAL_ERROR "Failed to run GRFCodec (${RESULT}), please check GRFCODEC_EXECUTABLE variable")
endif()
message(FATAL_ERROR "GRFCodec failed")
endif()
execute_process(COMMAND ${CMAKE_COMMAND} -E copy ${GRF_SOURCE_FOLDER_NAME}.grf ${GRF_BINARY_FILE})

View File

@@ -0,0 +1,60 @@
cmake_minimum_required(VERSION 3.5)
#
# Create a desktop file with the correct translations.
#
if(NOT DESKTOP_SOURCE_FILE)
message(FATAL_ERROR "Script needs DESKTOP_SOURCE_FILE defined")
endif()
if(NOT DESKTOP_BINARY_FILE)
message(FATAL_ERROR "Script needs DESKTOP_BINARY_FILE defined")
endif()
if(NOT BINARY_NAME)
message(FATAL_ERROR "Script needs BINARY_NAME defined")
endif()
set(ARGC 1)
set(ARG_READ NO)
# Read all the arguments given to CMake; we are looking for -- and everything
# that follows. Those are our language files.
while(ARGC LESS CMAKE_ARGC)
set(ARG ${CMAKE_ARGV${ARGC}})
if(ARG_READ)
list(APPEND LANG_SOURCE_FILES "${ARG}")
endif()
if(ARG STREQUAL "--")
set(ARG_READ YES)
endif()
math(EXPR ARGC "${ARGC} + 1")
endwhile()
# Place holder format is @<ini_key>_<str_id>@
file(STRINGS "${DESKTOP_SOURCE_FILE}" PLACE_HOLDER REGEX "^@")
string(REGEX REPLACE "@([^_]+).*@" "\\1" INI_KEY "${PLACE_HOLDER}")
string(REGEX REPLACE "@[^_]+_(.*)@" "\\1" STR_ID "${PLACE_HOLDER}")
string(REGEX REPLACE "@(.*)@" "\\1" PLACE_HOLDER "${PLACE_HOLDER}")
# Get the translations
foreach(LANGFILE IN LISTS LANG_SOURCE_FILES)
file(STRINGS "${LANGFILE}" LANGLINES REGEX "^(##isocode|${STR_ID})" ENCODING UTF-8)
string(FIND "${LANGLINES}" "${STR_ID}" HAS_STR_ID)
if(HAS_STR_ID LESS 0)
continue()
endif()
string(REGEX REPLACE "##isocode ([^;]+).*" "\\1" ISOCODE "${LANGLINES}")
if("${ISOCODE}" STREQUAL "en_GB")
string(REGEX REPLACE "[^:]*:(.*)" "${INI_KEY}=\\1" LANGLINES "${LANGLINES}")
else()
string(REGEX REPLACE "[^:]*:(.*)" "${INI_KEY}[${ISOCODE}]=\\1" LANGLINES "${LANGLINES}")
endif()
list(APPEND ${PLACE_HOLDER} ${LANGLINES})
endforeach()
list(SORT ${PLACE_HOLDER})
string(REPLACE ";" "\n" ${PLACE_HOLDER} "${${PLACE_HOLDER}}")
configure_file(${DESKTOP_SOURCE_FILE} ${DESKTOP_BINARY_FILE})

View File

@@ -1,5 +1,15 @@
cmake_minimum_required(VERSION 3.5)
if(NOT REV_MAJOR)
set(REV_MAJOR 0)
endif()
if(NOT REV_MINOR)
set(REV_MINOR 0)
endif()
if(NOT REV_BUILD)
set(REV_BUILD 0)
endif()
#
# Finds the current version of the current folder.
#
@@ -83,7 +93,7 @@ if(GIT_FOUND AND EXISTS "${CMAKE_SOURCE_DIR}/.git")
set(REV_ISTAG 1)
string(REGEX REPLACE "^[0-9.]+$" "" STABLETAG "${TAG}")
if(NOT STABLETAG STREQUAL "")
if(STABLETAG STREQUAL "")
set(REV_ISSTABLETAG 1)
else()
set(REV_ISSTABLETAG 0)

View File

@@ -53,6 +53,9 @@ string(REPLACE "0x(nil)" "0x00000000" REGRESSION_RESULT "${REGRESSION_RESULT}")
string(REPLACE "0x0000000000000000" "0x00000000" REGRESSION_RESULT "${REGRESSION_RESULT}")
string(REPLACE "0x0x0" "0x00000000" REGRESSION_RESULT "${REGRESSION_RESULT}")
# Remove timestamps if any
string(REGEX REPLACE "\[[0-9-]+ [0-9:]+\] " "" REGRESSION_RESULT "${REGRESSION_RESULT}")
# Convert the output to a format that is expected (and more readable) by result.txt
string(REPLACE "\ndbg: [script]" "\n" REGRESSION_RESULT "${REGRESSION_RESULT}")
string(REPLACE "\n " "\nERROR: " REGRESSION_RESULT "${REGRESSION_RESULT}")

View File

@@ -211,3 +211,10 @@ Last updated: 2011-02-16
communication from an admin tool reach the programme. See section 1
'Starting a server' further up for the ports and protocols used by OpenTTD.
The ports can be configured in the config file.
- My advertising server warns a lot about getaddrinfo taking N seconds
This could be a transient issue with your (local) DNS server, but if the
problem persists there is likely a configuration issue in DNS resolving
on your computer. This seems to be a common configuration issue for
Docker instances, where the DNS resolving waits for a time out of usually
5 seconds.

View File

@@ -1,6 +1,6 @@
OpenTTD's known bugs
Last updated: 2021-02-28
Release version: 1.11.0-beta2
Last updated: 2021-04-01
Release version: 1.11.0
------------------------------------------------------------------------

98
media/CMakeLists.txt Normal file
View File

@@ -0,0 +1,98 @@
add_subdirectory(baseset)
add_library(media
INTERFACE
)
add_library(openttd::media ALIAS media)
if(NOT UNIX OR APPLE)
return()
endif()
set(MEDIA_PNG_SOURCE_FILES
${CMAKE_CURRENT_SOURCE_DIR}/openttd.16.png
${CMAKE_CURRENT_SOURCE_DIR}/openttd.32.png
${CMAKE_CURRENT_SOURCE_DIR}/openttd.48.png
${CMAKE_CURRENT_SOURCE_DIR}/openttd.64.png
${CMAKE_CURRENT_SOURCE_DIR}/openttd.128.png
${CMAKE_CURRENT_SOURCE_DIR}/openttd.256.png
)
# Walk over all the png files, and generate a command to copy them
foreach(MEDIA_PNG_SOURCE_FILE IN LISTS MEDIA_PNG_SOURCE_FILES)
get_filename_component(MEDIA_PNG_FILE_NAME "${MEDIA_PNG_SOURCE_FILE}" NAME)
string(REGEX REPLACE "[^.]+.([0-9]*).*" "${CMAKE_CURRENT_BINARY_DIR}/icons/hicolor/\\1x\\1/apps/${BINARY_NAME}.png" MEDIA_PNG_BINARY_FILE "${MEDIA_PNG_FILE_NAME}")
add_custom_command(OUTPUT ${MEDIA_PNG_BINARY_FILE}
COMMAND ${CMAKE_COMMAND} -E copy
${MEDIA_PNG_SOURCE_FILE}
${MEDIA_PNG_BINARY_FILE}
MAIN_DEPENDENCY ${MEDIA_PNG_SOURCE_FILE}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Copying ${MEDIA_PNG_FILE_NAME} file"
)
list(APPEND MEDIA_BINARY_FILES ${MEDIA_PNG_BINARY_FILE})
endforeach()
set(MEDIA_XPM_SOURCE_FILES
${CMAKE_CURRENT_SOURCE_DIR}/openttd.32.xpm
${CMAKE_CURRENT_SOURCE_DIR}/openttd.64.xpm
)
# Walk over all the xpm files, and generate a command to copy them
foreach(MEDIA_XPM_SOURCE_FILE IN LISTS MEDIA_XPM_SOURCE_FILES)
get_filename_component(MEDIA_XPM_FILE_NAME "${MEDIA_XPM_SOURCE_FILE}" NAME)
get_filename_component(MEDIA_XPM_FILE_EXT "${MEDIA_XPM_FILE_NAME}" EXT)
set(MEDIA_XPM_BINARY_FILE "${CMAKE_CURRENT_BINARY_DIR}/pixmaps/${BINARY_NAME}${MEDIA_XPM_FILE_EXT}")
add_custom_command(OUTPUT ${MEDIA_XPM_BINARY_FILE}
COMMAND ${CMAKE_COMMAND} -E copy
${MEDIA_XPM_SOURCE_FILE}
${MEDIA_XPM_BINARY_FILE}
MAIN_DEPENDENCY ${MEDIA_XPM_SOURCE_FILE}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Copying ${MEDIA_XPM_FILE_NAME} file"
)
list(APPEND MEDIA_BINARY_FILES ${MEDIA_XPM_BINARY_FILE})
endforeach()
# Create a new target which copies media files
add_custom_target(media_files
DEPENDS
${MEDIA_BINARY_FILES}
)
add_dependencies(media
media_files
)
get_target_property(LANG_SOURCE_FILES language_files LANG_SOURCE_FILES)
set(DESKTOP_BINARY_NAME ${BINARY_NAME}.desktop)
add_custom_command_timestamp(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${DESKTOP_BINARY_NAME}
COMMAND ${CMAKE_COMMAND}
-DDESKTOP_SOURCE_FILE=${CMAKE_CURRENT_SOURCE_DIR}/openttd.desktop
-DDESKTOP_BINARY_FILE=${CMAKE_CURRENT_BINARY_DIR}/${DESKTOP_BINARY_NAME}
-DBINARY_NAME=${BINARY_NAME}
-P ${CMAKE_SOURCE_DIR}/cmake/scripts/Desktop.cmake
--
${LANG_SOURCE_FILES}
MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/openttd.desktop
DEPENDS ${LANG_SOURCE_FILES}
${CMAKE_SOURCE_DIR}/cmake/scripts/Desktop.cmake
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Generating desktop file"
)
# Create a new target which generates desktop file
add_custom_target_timestamp(desktop_file
DEPENDS
${CMAKE_CURRENT_BINARY_DIR}/${DESKTOP_BINARY_NAME}
)
add_dependencies(media
desktop_file
)

Binary file not shown.

View File

@@ -2,10 +2,10 @@
[Desktop Entry]
Type=Application
Version=1.0
Name=!!MENU_NAME!!
Icon=!!TTD!!
Exec=!!TTD!!
Name=OpenTTD
Icon=${BINARY_NAME}
Exec=${BINARY_NAME}
Terminal=false
Categories=!!MENU_GROUP!!
Comment=A clone of Transport Tycoon Deluxe
Categories=Game;
Keywords=game;simulation;transport;tycoon;deluxe;economics;multiplayer;money;train;ship;bus;truck;aircraft;cargo;
@Comment_STR_DESKTOP_SHORTCUT_COMMENT@

View File

@@ -1,11 +0,0 @@
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
# OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
#
# Awk script to automatically remove duplicate Comment[i]= lines
#
BEGIN { FS = "="; last = "" }
{ if (last != $1) { print $0 }; last = $1 }

View File

@@ -1,13 +0,0 @@
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
# OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
#
# Awk script to automatically generate a comment lines for
# a translated desktop shortcut. If it does not exist there
# is no output.
#
/##isocode/ { lang = $2; next }
/STR_DESKTOP_SHORTCUT_COMMENT/ { sub("^[^:]*:", "", $0); print "Comment[" lang "]=" $0; sub("_.*", "", lang); print "Comment[" lang "]=" $0; next}

View File

@@ -7,6 +7,7 @@ class Regression extends AIInfo {
function GetAPIVersion() { return "1.11"; }
function GetDate() { return "2007-03-18"; }
function CreateInstance() { return "Regression"; }
function UseAsRandomAI() { return false; }
}
RegisterAI(Regression());

View File

@@ -7,6 +7,7 @@ class StationList extends AIInfo {
function GetAPIVersion() { return "1.11"; }
function GetDate() { return "2007-03-18"; }
function CreateInstance() { return "StationList"; }
function UseAsRandomAI() { return false; }
}
RegisterAI(StationList());

View File

@@ -17,9 +17,9 @@ public:
return newarray;
}
#ifndef NO_GARBAGE_COLLECTOR
void Mark(SQCollectable **chain);
void EnqueueMarkObjectForChildren(SQGCMarkerQueue &queue) override;
#endif
void Finalize(){
void Finalize() override {
_values.resize(0);
}
bool Get(const SQInteger nidx,SQObjectPtr &val)
@@ -78,9 +78,13 @@ public:
ShrinkIfNeeded();
return true;
}
void Release()
void Release() override
{
sq_delete(this,SQArray);
this->_sharedstate->DelayFinalFree(this);
}
void FinalFree() override
{
sq_delete(this, SQArray);
}
SQObjectPtrVec _values;
};

View File

@@ -59,7 +59,7 @@ public:
}
void Finalize();
#ifndef NO_GARBAGE_COLLECTOR
void Mark(SQCollectable ** );
void EnqueueMarkObjectForChildren(SQGCMarkerQueue &queue);
#endif
SQInteger Next(const SQObjectPtr &refpos, SQObjectPtr &outkey, SQObjectPtr &outval);
SQInstance *CreateInstance();
@@ -126,31 +126,33 @@ public:
}
return false;
}
void Release() {
void Release() override {
_uiRef++;
try {
if (_hook) { _hook(_userpointer,0);}
} catch (...) {
_uiRef--;
if (_uiRef == 0) {
SQInteger size = _memsize;
this->~SQInstance();
SQ_FREE(this, size);
this->_sharedstate->DelayFinalFree(this);
}
throw;
}
_uiRef--;
if(_uiRef > 0) return;
this->_sharedstate->DelayFinalFree(this);
}
void FinalFree() override
{
SQInteger size = _memsize;
this->~SQInstance();
SQ_FREE(this, size);
}
void Finalize();
void Finalize() override;
#ifndef NO_GARBAGE_COLLECTOR
void Mark(SQCollectable ** );
void EnqueueMarkObjectForChildren(SQGCMarkerQueue &queue) override;
#endif
bool InstanceOf(SQClass *trg);
bool GetMetaMethod(SQVM *v,SQMetaMethod mm,SQObjectPtr &res);
bool GetMetaMethod(SQVM *v,SQMetaMethod mm,SQObjectPtr &res) override;
SQClass *_class;
SQUserPointer _userpointer;

View File

@@ -32,7 +32,7 @@ public:
bool Save(SQVM *v,SQUserPointer up,SQWRITEFUNC write);
static bool Load(SQVM *v,SQUserPointer up,SQREADFUNC read,SQObjectPtr &ret);
#ifndef NO_GARBAGE_COLLECTOR
void Mark(SQCollectable **chain);
void EnqueueMarkObjectForChildren(SQGCMarkerQueue &queue);
void Finalize(){_outervalues.resize(0); }
#endif
SQObjectPtr _env;
@@ -66,7 +66,7 @@ public:
bool Yield(SQVM *v);
bool Resume(SQVM *v,SQInteger target);
#ifndef NO_GARBAGE_COLLECTOR
void Mark(SQCollectable **chain);
void EnqueueMarkObjectForChildren(SQGCMarkerQueue &queue);
void Finalize(){_stack.resize(0);_closure=_null_;}
#endif
SQObjectPtr _closure;
@@ -106,7 +106,7 @@ public:
sq_delete(this,SQNativeClosure);
}
#ifndef NO_GARBAGE_COLLECTOR
void Mark(SQCollectable **chain);
void EnqueueMarkObjectForChildren(SQGCMarkerQueue &queue);
void Finalize(){_outervalues.resize(0);}
#endif
SQInteger _nparamscheck;

View File

@@ -836,6 +836,7 @@ public:
SQInteger val = _fs->PopTarget();
SQInteger key = _fs->PopTarget();
SQInteger attrs = hasattrs ? _fs->PopTarget():-1;
(void)attrs; // assert only
assert((hasattrs && attrs == key-1) || !hasattrs);
unsigned char flags = (hasattrs?NEW_SLOT_ATTRIBUTES_FLAG:0)|(isstatic?NEW_SLOT_STATIC_FLAG:0);
SQInteger table = _fs->TopTarget(); //<<BECAUSE OF THIS NO COMMON EMIT FUNC IS POSSIBLE

View File

@@ -486,104 +486,81 @@ bool SQFunctionProto::Load(SQVM *v,SQUserPointer up,SQREADFUNC read,SQObjectPtr
#ifndef NO_GARBAGE_COLLECTOR
#define START_MARK() if(!(_uiRef&MARK_FLAG)){ \
_uiRef|=MARK_FLAG;
#define END_MARK() RemoveFromChain(&_sharedstate->_gc_chain, this); \
AddToChain(chain, this); }
void SQVM::Mark(SQCollectable **chain)
void SQVM::EnqueueMarkObjectForChildren(SQGCMarkerQueue &queue)
{
START_MARK()
SQSharedState::MarkObject(_lasterror,chain);
SQSharedState::MarkObject(_errorhandler,chain);
SQSharedState::MarkObject(_debughook,chain);
SQSharedState::MarkObject(_roottable, chain);
SQSharedState::MarkObject(temp_reg, chain);
for(SQUnsignedInteger i = 0; i < _stack.size(); i++) SQSharedState::MarkObject(_stack[i], chain);
for(SQUnsignedInteger j = 0; j < _vargsstack.size(); j++) SQSharedState::MarkObject(_vargsstack[j], chain);
for(SQInteger k = 0; k < _callsstacksize; k++) SQSharedState::MarkObject(_callsstack[k]._closure, chain);
END_MARK()
SQSharedState::EnqueueMarkObject(_lasterror,queue);
SQSharedState::EnqueueMarkObject(_errorhandler,queue);
SQSharedState::EnqueueMarkObject(_debughook,queue);
SQSharedState::EnqueueMarkObject(_roottable, queue);
SQSharedState::EnqueueMarkObject(temp_reg, queue);
for(SQUnsignedInteger i = 0; i < _stack.size(); i++) SQSharedState::EnqueueMarkObject(_stack[i], queue);
for(SQUnsignedInteger j = 0; j < _vargsstack.size(); j++) SQSharedState::EnqueueMarkObject(_vargsstack[j], queue);
for(SQInteger k = 0; k < _callsstacksize; k++) SQSharedState::EnqueueMarkObject(_callsstack[k]._closure, queue);
}
void SQArray::Mark(SQCollectable **chain)
void SQArray::EnqueueMarkObjectForChildren(SQGCMarkerQueue &queue)
{
START_MARK()
SQInteger len = _values.size();
for(SQInteger i = 0;i < len; i++) SQSharedState::MarkObject(_values[i], chain);
END_MARK()
}
void SQTable::Mark(SQCollectable **chain)
{
START_MARK()
if(_delegate) _delegate->Mark(chain);
SQInteger len = _numofnodes;
for(SQInteger i = 0; i < len; i++){
SQSharedState::MarkObject(_nodes[i].key, chain);
SQSharedState::MarkObject(_nodes[i].val, chain);
}
END_MARK()
SQInteger len = _values.size();
for(SQInteger i = 0;i < len; i++) SQSharedState::EnqueueMarkObject(_values[i], queue);
}
void SQClass::Mark(SQCollectable **chain)
void SQTable::EnqueueMarkObjectForChildren(SQGCMarkerQueue &queue)
{
START_MARK()
_members->Mark(chain);
if(_base) _base->Mark(chain);
SQSharedState::MarkObject(_attributes, chain);
for(SQUnsignedInteger i =0; i< _defaultvalues.size(); i++) {
SQSharedState::MarkObject(_defaultvalues[i].val, chain);
SQSharedState::MarkObject(_defaultvalues[i].attrs, chain);
}
for(SQUnsignedInteger j =0; j< _methods.size(); j++) {
SQSharedState::MarkObject(_methods[j].val, chain);
SQSharedState::MarkObject(_methods[j].attrs, chain);
}
for(SQUnsignedInteger k =0; k< _metamethods.size(); k++) {
SQSharedState::MarkObject(_metamethods[k], chain);
}
END_MARK()
if(_delegate) queue.Enqueue(_delegate);
SQInteger len = _numofnodes;
for(SQInteger i = 0; i < len; i++){
SQSharedState::EnqueueMarkObject(_nodes[i].key, queue);
SQSharedState::EnqueueMarkObject(_nodes[i].val, queue);
}
}
void SQInstance::Mark(SQCollectable **chain)
void SQClass::EnqueueMarkObjectForChildren(SQGCMarkerQueue &queue)
{
START_MARK()
_class->Mark(chain);
SQUnsignedInteger nvalues = _class->_defaultvalues.size();
for(SQUnsignedInteger i =0; i< nvalues; i++) {
SQSharedState::MarkObject(_values[i], chain);
}
END_MARK()
queue.Enqueue(_members);
if(_base) queue.Enqueue(_base);
SQSharedState::EnqueueMarkObject(_attributes, queue);
for(SQUnsignedInteger i =0; i< _defaultvalues.size(); i++) {
SQSharedState::EnqueueMarkObject(_defaultvalues[i].val, queue);
SQSharedState::EnqueueMarkObject(_defaultvalues[i].attrs, queue);
}
for(SQUnsignedInteger j =0; j< _methods.size(); j++) {
SQSharedState::EnqueueMarkObject(_methods[j].val, queue);
SQSharedState::EnqueueMarkObject(_methods[j].attrs, queue);
}
for(SQUnsignedInteger k =0; k< _metamethods.size(); k++) {
SQSharedState::EnqueueMarkObject(_metamethods[k], queue);
}
}
void SQGenerator::Mark(SQCollectable **chain)
void SQInstance::EnqueueMarkObjectForChildren(SQGCMarkerQueue &queue)
{
START_MARK()
for(SQUnsignedInteger i = 0; i < _stack.size(); i++) SQSharedState::MarkObject(_stack[i], chain);
for(SQUnsignedInteger j = 0; j < _vargsstack.size(); j++) SQSharedState::MarkObject(_vargsstack[j], chain);
SQSharedState::MarkObject(_closure, chain);
END_MARK()
queue.Enqueue(_class);
SQUnsignedInteger nvalues = _class->_defaultvalues.size();
for(SQUnsignedInteger i =0; i< nvalues; i++) {
SQSharedState::EnqueueMarkObject(_values[i], queue);
}
}
void SQClosure::Mark(SQCollectable **chain)
void SQGenerator::EnqueueMarkObjectForChildren(SQGCMarkerQueue &queue)
{
START_MARK()
for(SQUnsignedInteger i = 0; i < _outervalues.size(); i++) SQSharedState::MarkObject(_outervalues[i], chain);
for(SQUnsignedInteger i = 0; i < _defaultparams.size(); i++) SQSharedState::MarkObject(_defaultparams[i], chain);
END_MARK()
for(SQUnsignedInteger i = 0; i < _stack.size(); i++) SQSharedState::EnqueueMarkObject(_stack[i], queue);
for(SQUnsignedInteger j = 0; j < _vargsstack.size(); j++) SQSharedState::EnqueueMarkObject(_vargsstack[j], queue);
SQSharedState::EnqueueMarkObject(_closure, queue);
}
void SQNativeClosure::Mark(SQCollectable **chain)
void SQClosure::EnqueueMarkObjectForChildren(SQGCMarkerQueue &queue)
{
START_MARK()
for(SQUnsignedInteger i = 0; i < _outervalues.size(); i++) SQSharedState::MarkObject(_outervalues[i], chain);
END_MARK()
for(SQUnsignedInteger i = 0; i < _outervalues.size(); i++) SQSharedState::EnqueueMarkObject(_outervalues[i], queue);
for(SQUnsignedInteger i = 0; i < _defaultparams.size(); i++) SQSharedState::EnqueueMarkObject(_defaultparams[i], queue);
}
void SQUserData::Mark(SQCollectable **chain){
START_MARK()
if(_delegate) _delegate->Mark(chain);
END_MARK()
void SQNativeClosure::EnqueueMarkObjectForChildren(SQGCMarkerQueue &queue)
{
for(SQUnsignedInteger i = 0; i < _outervalues.size(); i++) SQSharedState::EnqueueMarkObject(_outervalues[i], queue);
}
void SQUserData::EnqueueMarkObjectForChildren(SQGCMarkerQueue &queue){
if(_delegate) queue.Enqueue(_delegate);
}
void SQCollectable::UnMark() { _uiRef&=~MARK_FLAG; }

View File

@@ -2,6 +2,7 @@
#ifndef _SQOBJECT_H_
#define _SQOBJECT_H_
#include <vector>
#include "squtils.h"
#define SQ_CLOSURESTREAM_HEAD (('S'<<24)|('Q'<<16)|('I'<<8)|('R'))
@@ -344,11 +345,54 @@ struct SQCollectable : public SQRefCounted {
SQCollectable *_prev;
SQSharedState *_sharedstate;
virtual void Release()=0;
virtual void Mark(SQCollectable **chain)=0;
virtual void EnqueueMarkObjectForChildren(class SQGCMarkerQueue &queue)=0;
void UnMark();
virtual void Finalize()=0;
static void AddToChain(SQCollectable **chain,SQCollectable *c);
static void RemoveFromChain(SQCollectable **chain,SQCollectable *c);
/**
* Helper to perform the final memory freeing of this instance. Since the destructor might
* release more objects, this can cause a very deep recursion. As such, the calls to this
* are to be done via _sharedstate->DelayFinalFree which ensures the calls to this method
* are done in an iterative instead of recursive approach.
*/
virtual void FinalFree() {}
};
/**
* Helper container for state to change the garbage collection from a recursive to an iterative approach.
* The iterative approach provides effectively a depth first search approach.
*/
class SQGCMarkerQueue {
std::vector<SQCollectable*> stack; ///< The elements to still process, with the most recent elements at the back.
public:
/** Whether there are any elements left to process. */
bool IsEmpty() { return this->stack.empty(); }
/**
* Remove the most recently added element from the queue.
* Removal when the queue is empty results in undefined behaviour.
*/
SQCollectable *Pop()
{
SQCollectable *collectable = this->stack.back();
this->stack.pop_back();
return collectable;
}
/**
* Add a collectable to the queue, but only when it has not been marked yet.
* When adding it to the queue, the collectable will be marked, so subsequent calls
* will not add it again.
*/
void Enqueue(SQCollectable *collectable)
{
if ((collectable->_uiRef & MARK_FLAG) == 0) {
collectable->_uiRef |= MARK_FLAG;
this->stack.push_back(collectable);
}
}
};

View File

@@ -99,6 +99,7 @@ SQSharedState::SQSharedState()
_notifyallexceptions = false;
_scratchpad=NULL;
_scratchpadsize=0;
_collectable_free_processing = false;
#ifndef NO_GARBAGE_COLLECTOR
_gc_chain=NULL;
#endif
@@ -226,20 +227,48 @@ SQInteger SQSharedState::GetMetaMethodIdxByName(const SQObjectPtr &name)
return -1;
}
/**
* Helper function that is to be used instead of calling FinalFree directly on the instance,
* so the frees can happen iteratively. This as in the FinalFree the references to any other
* objects are released, which can cause those object to be freed yielding a potentially
* very deep stack in case of for example a link list.
*
* This is done internally by a vector onto which the to be freed instances are pushed. When
* this is called when not already processing, this method will actually call the FinalFree
* function which might cause more elements to end up in the queue which this method then
* picks up continueing until it has processed all instances in that queue.
* @param collectable The collectable to (eventually) free.
*/
void SQSharedState::DelayFinalFree(SQCollectable *collectable)
{
this->_collectable_free_queue.push_back(collectable);
if (!this->_collectable_free_processing) {
this->_collectable_free_processing = true;
while (!this->_collectable_free_queue.empty()) {
SQCollectable *collectable = this->_collectable_free_queue.back();
this->_collectable_free_queue.pop_back();
collectable->FinalFree();
}
this->_collectable_free_processing = false;
}
}
#ifndef NO_GARBAGE_COLLECTOR
void SQSharedState::MarkObject(SQObjectPtr &o,SQCollectable **chain)
void SQSharedState::EnqueueMarkObject(SQObjectPtr &o,SQGCMarkerQueue &queue)
{
switch(type(o)){
case OT_TABLE:_table(o)->Mark(chain);break;
case OT_ARRAY:_array(o)->Mark(chain);break;
case OT_USERDATA:_userdata(o)->Mark(chain);break;
case OT_CLOSURE:_closure(o)->Mark(chain);break;
case OT_NATIVECLOSURE:_nativeclosure(o)->Mark(chain);break;
case OT_GENERATOR:_generator(o)->Mark(chain);break;
case OT_THREAD:_thread(o)->Mark(chain);break;
case OT_CLASS:_class(o)->Mark(chain);break;
case OT_INSTANCE:_instance(o)->Mark(chain);break;
case OT_TABLE:queue.Enqueue(_table(o));break;
case OT_ARRAY:queue.Enqueue(_array(o));break;
case OT_USERDATA:queue.Enqueue(_userdata(o));break;
case OT_CLOSURE:queue.Enqueue(_closure(o));break;
case OT_NATIVECLOSURE:queue.Enqueue(_nativeclosure(o));break;
case OT_GENERATOR:queue.Enqueue(_generator(o));break;
case OT_THREAD:queue.Enqueue(_thread(o));break;
case OT_CLASS:queue.Enqueue(_class(o));break;
case OT_INSTANCE:queue.Enqueue(_instance(o));break;
default: break; //shutup compiler
}
}
@@ -248,25 +277,36 @@ void SQSharedState::MarkObject(SQObjectPtr &o,SQCollectable **chain)
SQInteger SQSharedState::CollectGarbage(SQVM *vm)
{
SQInteger n=0;
SQCollectable *tchain=NULL;
SQVM *vms = _thread(_root_vm);
vms->Mark(&tchain);
SQGCMarkerQueue queue;
queue.Enqueue(vms);
#ifdef WITH_ASSERT
SQInteger x = _table(_thread(_root_vm)->_roottable)->CountUsed();
_refs_table.Mark(&tchain);
MarkObject(_registry,&tchain);
MarkObject(_consts,&tchain);
MarkObject(_metamethodsmap,&tchain);
MarkObject(_table_default_delegate,&tchain);
MarkObject(_array_default_delegate,&tchain);
MarkObject(_string_default_delegate,&tchain);
MarkObject(_number_default_delegate,&tchain);
MarkObject(_generator_default_delegate,&tchain);
MarkObject(_thread_default_delegate,&tchain);
MarkObject(_closure_default_delegate,&tchain);
MarkObject(_class_default_delegate,&tchain);
MarkObject(_instance_default_delegate,&tchain);
MarkObject(_weakref_default_delegate,&tchain);
#endif
_refs_table.EnqueueMarkObject(queue);
EnqueueMarkObject(_registry,queue);
EnqueueMarkObject(_consts,queue);
EnqueueMarkObject(_metamethodsmap,queue);
EnqueueMarkObject(_table_default_delegate,queue);
EnqueueMarkObject(_array_default_delegate,queue);
EnqueueMarkObject(_string_default_delegate,queue);
EnqueueMarkObject(_number_default_delegate,queue);
EnqueueMarkObject(_generator_default_delegate,queue);
EnqueueMarkObject(_thread_default_delegate,queue);
EnqueueMarkObject(_closure_default_delegate,queue);
EnqueueMarkObject(_class_default_delegate,queue);
EnqueueMarkObject(_instance_default_delegate,queue);
EnqueueMarkObject(_weakref_default_delegate,queue);
SQCollectable *tchain=NULL;
while (!queue.IsEmpty()) {
SQCollectable *q = queue.Pop();
q->EnqueueMarkObjectForChildren(queue);
SQCollectable::RemoveFromChain(&_gc_chain, q);
SQCollectable::AddToChain(&tchain, q);
}
SQCollectable *t = _gc_chain;
SQCollectable *nx = NULL;
@@ -289,8 +329,10 @@ SQInteger SQSharedState::CollectGarbage(SQVM *vm)
t = t->_next;
}
_gc_chain = tchain;
#ifdef WITH_ASSERT
SQInteger z = _table(_thread(_root_vm)->_roottable)->CountUsed();
assert(z == x);
#endif
return n;
}
#endif
@@ -353,12 +395,12 @@ RefTable::~RefTable()
}
#ifndef NO_GARBAGE_COLLECTOR
void RefTable::Mark(SQCollectable **chain)
void RefTable::EnqueueMarkObject(SQGCMarkerQueue &queue)
{
RefNode *nodes = (RefNode *)_nodes;
for(SQUnsignedInteger n = 0; n < _numofslots; n++) {
if(type(nodes->obj) != OT_NULL) {
SQSharedState::MarkObject(nodes->obj,chain);
SQSharedState::EnqueueMarkObject(nodes->obj,queue);
}
nodes++;
}

View File

@@ -34,7 +34,7 @@ struct RefTable {
void AddRef(SQObject &obj);
SQBool Release(SQObject &obj);
#ifndef NO_GARBAGE_COLLECTOR
void Mark(SQCollectable **chain);
void EnqueueMarkObject(SQGCMarkerQueue &queue);
#endif
void Finalize();
private:
@@ -61,9 +61,10 @@ struct SQSharedState
public:
SQChar* GetScratchPad(SQInteger size);
SQInteger GetMetaMethodIdxByName(const SQObjectPtr &name);
void DelayFinalFree(SQCollectable *collectable);
#ifndef NO_GARBAGE_COLLECTOR
SQInteger CollectGarbage(SQVM *vm);
static void MarkObject(SQObjectPtr &o,SQCollectable **chain);
static void EnqueueMarkObject(SQObjectPtr &o,SQGCMarkerQueue &queue);
#endif
SQObjectPtrVec *_metamethods;
SQObjectPtr _metamethodsmap;
@@ -74,6 +75,10 @@ public:
SQObjectPtr _registry;
SQObjectPtr _consts;
SQObjectPtr _constructoridx;
/** Queue to make freeing of collectables iterative. */
std::vector<SQCollectable *> _collectable_free_queue;
/** Whether someone is already processing the _collectable_free_queue. */
bool _collectable_free_processing;
#ifndef NO_GARBAGE_COLLECTOR
SQCollectable *_gc_chain;
#endif

View File

@@ -50,7 +50,7 @@ public:
newtable->_delegate = NULL;
return newtable;
}
void Finalize();
void Finalize() override;
SQTable *Clone();
~SQTable()
{
@@ -60,7 +60,7 @@ public:
SQ_FREE(_nodes, _numofnodes * sizeof(_HashNode));
}
#ifndef NO_GARBAGE_COLLECTOR
void Mark(SQCollectable **chain);
void EnqueueMarkObjectForChildren(SQGCMarkerQueue &queue) override;
#endif
inline _HashNode *_Get(const SQObjectPtr &key,SQHash hash)
{
@@ -81,7 +81,11 @@ public:
SQInteger CountUsed(){ return _usednodes;}
void Clear();
void Release()
void Release() override
{
this->_sharedstate->DelayFinalFree(this);
}
void FinalFree() override
{
sq_delete(this, SQTable);
}

View File

@@ -18,7 +18,7 @@ struct SQUserData : SQDelegable
return ud;
}
#ifndef NO_GARBAGE_COLLECTOR
void Mark(SQCollectable **chain);
void EnqueueMarkObjectForChildren(SQGCMarkerQueue &queue);
void Finalize(){SetDelegate(NULL);}
#endif
void Release() {

View File

@@ -1460,7 +1460,7 @@ bool SQVM::DeleteSlot(const SQObjectPtr &self,const SQObjectPtr &key,SQObjectPtr
}
}
res = t;
}
}
break;
default:
Raise_Error("attempt to delete a slot from a %s",GetTypeName(self));
@@ -1471,8 +1471,8 @@ bool SQVM::DeleteSlot(const SQObjectPtr &self,const SQObjectPtr &key,SQObjectPtr
bool SQVM::Call(SQObjectPtr &closure,SQInteger nparams,SQInteger stackbase,SQObjectPtr &outres,SQBool raiseerror,SQBool can_suspend)
{
#ifdef _DEBUG
SQInteger prevstackbase = _stackbase;
#ifdef WITH_ASSERT
SQInteger prevstackbase = _stackbase;
#endif
switch(type(closure)) {
case OT_CLOSURE: {
@@ -1482,13 +1482,13 @@ SQInteger prevstackbase = _stackbase;
bool ret = Execute(closure, _top - nparams, nparams, stackbase,outres,raiseerror);
this->_can_suspend = backup_suspend;
return ret;
}
}
break;
case OT_NATIVECLOSURE:{
case OT_NATIVECLOSURE: {
bool suspend;
return CallNative(_nativeclosure(closure), nparams, stackbase, outres,suspend);
}
}
break;
case OT_CLASS: {
SQObjectPtr constr;
@@ -1499,12 +1499,12 @@ SQInteger prevstackbase = _stackbase;
return Call(constr,nparams,stackbase,temp,raiseerror,false);
}
return true;
}
}
break;
default:
return false;
}
#ifdef _DEBUG
#ifdef WITH_ASSERT
if(!_suspended) {
assert(_stackbase == prevstackbase);
}

View File

@@ -113,7 +113,7 @@ public:
#endif
#ifndef NO_GARBAGE_COLLECTOR
void Mark(SQCollectable **chain);
void EnqueueMarkObjectForChildren(SQGCMarkerQueue &queue);
#endif
void Finalize();
void GrowCallStack() {

View File

@@ -704,16 +704,16 @@ static const NWidgetPart _nested_ai_config_widgets[] = {
NWidget(WWT_MATRIX, COLOUR_MAUVE, WID_AIC_GAMELIST), SetMinimalSize(288, 14), SetFill(1, 0), SetMatrixDataTip(1, 1, STR_AI_CONFIG_GAMELIST_TOOLTIP),
EndContainer(),
NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPIP(7, 0, 7),
NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, WID_AIC_CHANGE), SetFill(1, 0), SetMinimalSize(93, 12), SetDataTip(STR_AI_CONFIG_CHANGE, STR_AI_CONFIG_CHANGE_TOOLTIP),
NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, WID_AIC_CONFIGURE), SetFill(1, 0), SetMinimalSize(93, 12), SetDataTip(STR_AI_CONFIG_CONFIGURE, STR_AI_CONFIG_CONFIGURE_TOOLTIP),
NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, WID_AIC_CLOSE), SetFill(1, 0), SetMinimalSize(93, 12), SetDataTip(STR_AI_SETTINGS_CLOSE, STR_NULL),
EndContainer(),
NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, WID_AIC_CHANGE), SetFill(1, 0), SetMinimalSize(93, 0), SetDataTip(STR_AI_CONFIG_CHANGE, STR_AI_CONFIG_CHANGE_TOOLTIP),
NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, WID_AIC_CONFIGURE), SetFill(1, 0), SetMinimalSize(93, 0), SetDataTip(STR_AI_CONFIG_CONFIGURE, STR_AI_CONFIG_CONFIGURE_TOOLTIP),
NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, WID_AIC_CLOSE), SetFill(1, 0), SetMinimalSize(93, 0), SetDataTip(STR_AI_SETTINGS_CLOSE, STR_NULL),
EndContainer(),
NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPIP(7, 0, 7),
NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, WID_AIC_TEXTFILE + TFT_README), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_TEXTFILE_VIEW_README, STR_NULL),
NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, WID_AIC_TEXTFILE + TFT_CHANGELOG), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_TEXTFILE_VIEW_CHANGELOG, STR_NULL),
NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, WID_AIC_TEXTFILE + TFT_LICENSE), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_TEXTFILE_VIEW_LICENCE, STR_NULL),
EndContainer(),
NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, WID_AIC_CONTENT_DOWNLOAD), SetFill(1, 0), SetMinimalSize(279, 12), SetPadding(0, 7, 9, 7), SetDataTip(STR_INTRO_ONLINE_CONTENT, STR_INTRO_TOOLTIP_ONLINE_CONTENT),
NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, WID_AIC_CONTENT_DOWNLOAD), SetFill(1, 0), SetMinimalSize(279, 0), SetPadding(0, 7, 9, 7), SetDataTip(STR_INTRO_ONLINE_CONTENT, STR_INTRO_TOOLTIP_ONLINE_CONTENT),
EndContainer(),
};
@@ -1431,7 +1431,7 @@ StringFilter AIDebugWindow::break_string_filter(&AIDebugWindow::case_sensitive_b
/** Make a number of rows with buttons for each company for the AI debug window. */
NWidgetBase *MakeCompanyButtonRowsAIDebug(int *biggest_index)
{
return MakeCompanyButtonRows(biggest_index, WID_AID_COMPANY_BUTTON_START, WID_AID_COMPANY_BUTTON_END, 8, STR_AI_DEBUG_SELECT_AI_TOOLTIP);
return MakeCompanyButtonRows(biggest_index, WID_AID_COMPANY_BUTTON_START, WID_AID_COMPANY_BUTTON_END, COLOUR_GREY, 8, STR_AI_DEBUG_SELECT_AI_TOOLTIP);
}
/**

View File

@@ -1328,19 +1328,22 @@ static void CrashAirplane(Aircraft *v)
v->Next()->cargo.Truncate();
const Station *st = GetTargetAirportIfValid(v);
StringID newsitem;
TileIndex vt;
if (st == nullptr) {
newsitem = STR_NEWS_PLANE_CRASH_OUT_OF_FUEL;
vt = TileVirtXY(v->x_pos, v->y_pos);
} else {
SetDParam(1, st->index);
newsitem = STR_NEWS_AIRCRAFT_CRASH;
vt = v->tile;
}
AI::NewEvent(v->owner, new ScriptEventVehicleCrashed(v->index, v->tile, st == nullptr ? ScriptEventVehicleCrashed::CRASH_AIRCRAFT_NO_AIRPORT : ScriptEventVehicleCrashed::CRASH_PLANE_LANDING));
Game::NewEvent(new ScriptEventVehicleCrashed(v->index, v->tile, st == nullptr ? ScriptEventVehicleCrashed::CRASH_AIRCRAFT_NO_AIRPORT : ScriptEventVehicleCrashed::CRASH_PLANE_LANDING));
AI::NewEvent(v->owner, new ScriptEventVehicleCrashed(v->index, vt, st == nullptr ? ScriptEventVehicleCrashed::CRASH_AIRCRAFT_NO_AIRPORT : ScriptEventVehicleCrashed::CRASH_PLANE_LANDING));
Game::NewEvent(new ScriptEventVehicleCrashed(v->index, vt, st == nullptr ? ScriptEventVehicleCrashed::CRASH_AIRCRAFT_NO_AIRPORT : ScriptEventVehicleCrashed::CRASH_PLANE_LANDING));
AddTileNewsItem(newsitem, NT_ACCIDENT, v->tile, nullptr, st != nullptr ? st->index : INVALID_STATION);
AddTileNewsItem(newsitem, NT_ACCIDENT, vt, nullptr, st != nullptr ? st->index : INVALID_STATION);
ModifyStationRatingAround(v->tile, v->owner, -160, 30);
ModifyStationRatingAround(vt, v->owner, -160, 30);
if (_settings_client.sound.disaster) SndPlayVehicleFx(SND_12_EXPLOSION, v);
}

View File

@@ -597,6 +597,7 @@ static CommandCost ReplaceChain(Vehicle **chain, DoCommandFlag flags, bool wagon
/* Sell wagon */
CommandCost ret = DoCommand(0, wagon->index, 0, DC_EXEC, GetCmdSellVeh(wagon));
(void)ret; // assert only
assert(ret.Succeeded());
new_vehs[i] = nullptr;
@@ -652,6 +653,7 @@ static CommandCost ReplaceChain(Vehicle **chain, DoCommandFlag flags, bool wagon
for (int i = num_units - 1; i > 0; i--) {
CommandCost ret = CmdMoveVehicle(old_vehs[i], old_head, DC_EXEC | DC_AUTOREPLACE, false);
(void)ret; // assert only
assert(ret.Succeeded());
}
}

View File

@@ -81,7 +81,7 @@ class ReplaceVehicleWindow : public Window {
bool replace_engines; ///< If \c true, engines are replaced, if \c false, wagons are replaced (only for trains).
bool reset_sel_engine; ///< Also reset #sel_engine while updating left and/or right and no valid engine selected.
GroupID sel_group; ///< Group selected to replace.
int details_height; ///< Minimal needed height of the details panels (found so far).
int details_height; ///< Minimal needed height of the details panels, in text lines (found so far).
byte sort_criteria; ///< Criteria of sorting vehicles.
bool descending_sort_order; ///< Order of sorting vehicles.
bool show_hidden_engines; ///< Whether to show the hidden engines.
@@ -229,7 +229,7 @@ public:
this->engines[0].ForceRebuild();
this->engines[1].ForceRebuild();
this->reset_sel_engine = true;
this->details_height = ((vehicletype == VEH_TRAIN) ? 10 : 9) * FONT_HEIGHT_NORMAL + WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM;
this->details_height = ((vehicletype == VEH_TRAIN) ? 10 : 9);
this->sel_engine[0] = INVALID_ENGINE;
this->sel_engine[1] = INVALID_ENGINE;
this->show_hidden_engines = _engine_sort_show_hidden_engines[vehicletype];
@@ -274,7 +274,7 @@ public:
case WID_RV_LEFT_DETAILS:
case WID_RV_RIGHT_DETAILS:
size->height = this->details_height;
size->height = FONT_HEIGHT_NORMAL * this->details_height + padding.height;
break;
case WID_RV_TRAIN_WAGONREMOVE_TOGGLE: {
@@ -475,7 +475,7 @@ public:
NWidgetBase *nwi = this->GetWidget<NWidgetBase>(side == 0 ? WID_RV_LEFT_DETAILS : WID_RV_RIGHT_DETAILS);
int text_end = DrawVehiclePurchaseInfo(nwi->pos_x + WD_FRAMETEXT_LEFT, nwi->pos_x + nwi->current_x - WD_FRAMETEXT_RIGHT,
nwi->pos_y + WD_FRAMERECT_TOP, this->sel_engine[side], ted);
needed_height = std::max(needed_height, text_end - (int)nwi->pos_y + WD_FRAMERECT_BOTTOM);
needed_height = std::max(needed_height, (text_end - (int)nwi->pos_y - WD_FRAMERECT_TOP) / FONT_HEIGHT_NORMAL);
}
}
if (needed_height != this->details_height) { // Details window are not high enough, enlarge them.

View File

@@ -274,7 +274,7 @@ template <class Tbase_set>
return p;
}
#include "network/network_content.h"
#include "network/core/tcp_content_type.h"
template <class Tbase_set> const char *TryGetBaseSetFile(const ContentInfo *ci, bool md5sum, const Tbase_set *s)
{

View File

@@ -24,7 +24,7 @@ static FBlitter_32bppOptimized iFBlitter_32bppOptimized;
* @param bp further blitting parameters
* @param zoom zoom level at which we are drawing
*/
template <BlitterMode mode>
template <BlitterMode mode, bool Tpal_to_rgb>
inline void Blitter_32bppOptimized::Draw(const Blitter::BlitterParams *bp, ZoomLevel zoom)
{
const SpriteData *src = (const SpriteData *)bp->sprite;
@@ -209,18 +209,29 @@ inline void Blitter_32bppOptimized::Draw(const Blitter::BlitterParams *bp, ZoomL
default:
if (src_px->a == 255) {
/* faster than memcpy(), n is usually low */
src_n += n;
do {
*dst = src_px->data;
if (Tpal_to_rgb && *src_n != 0) {
/* Convert the mapping channel to a RGB value */
*dst = this->AdjustBrightness(this->LookupColourInPalette(GB(*src_n, 0, 8)), GB(*src_n, 8, 8)).data;
} else {
*dst = src_px->data;
}
dst++;
src_px++;
src_n++;
} while (--n != 0);
} else {
src_n += n;
do {
*dst = ComposeColourRGBANoCheck(src_px->r, src_px->g, src_px->b, src_px->a, *dst);
if (Tpal_to_rgb && *src_n != 0) {
/* Convert the mapping channel to a RGB value */
Colour colour = this->AdjustBrightness(this->LookupColourInPalette(GB(*src_n, 0, 8)), GB(*src_n, 8, 8));
*dst = ComposeColourRGBANoCheck(colour.r, colour.g, colour.b, src_px->a, *dst);
} else {
*dst = ComposeColourRGBANoCheck(src_px->r, src_px->g, src_px->b, src_px->a, *dst);
}
dst++;
src_px++;
src_n++;
} while (--n != 0);
}
break;
@@ -233,6 +244,22 @@ inline void Blitter_32bppOptimized::Draw(const Blitter::BlitterParams *bp, ZoomL
}
}
template <bool Tpal_to_rgb>
void Blitter_32bppOptimized::Draw(Blitter::BlitterParams *bp, BlitterMode mode, ZoomLevel zoom)
{
switch (mode) {
default: NOT_REACHED();
case BM_NORMAL: Draw<BM_NORMAL, Tpal_to_rgb>(bp, zoom); return;
case BM_COLOUR_REMAP: Draw<BM_COLOUR_REMAP, Tpal_to_rgb>(bp, zoom); return;
case BM_TRANSPARENT: Draw<BM_TRANSPARENT, Tpal_to_rgb>(bp, zoom); return;
case BM_CRASH_REMAP: Draw<BM_CRASH_REMAP, Tpal_to_rgb>(bp, zoom); return;
case BM_BLACK_REMAP: Draw<BM_BLACK_REMAP, Tpal_to_rgb>(bp, zoom); return;
}
}
template void Blitter_32bppOptimized::Draw<true>(Blitter::BlitterParams *bp, BlitterMode mode, ZoomLevel zoom);
template void Blitter_32bppOptimized::Draw<false>(Blitter::BlitterParams *bp, BlitterMode mode, ZoomLevel zoom);
/**
* Draws a sprite to a (screen) buffer. Calls adequate templated function.
*
@@ -242,14 +269,7 @@ inline void Blitter_32bppOptimized::Draw(const Blitter::BlitterParams *bp, ZoomL
*/
void Blitter_32bppOptimized::Draw(Blitter::BlitterParams *bp, BlitterMode mode, ZoomLevel zoom)
{
switch (mode) {
default: NOT_REACHED();
case BM_NORMAL: Draw<BM_NORMAL> (bp, zoom); return;
case BM_COLOUR_REMAP: Draw<BM_COLOUR_REMAP>(bp, zoom); return;
case BM_TRANSPARENT: Draw<BM_TRANSPARENT> (bp, zoom); return;
case BM_CRASH_REMAP: Draw<BM_CRASH_REMAP> (bp, zoom); return;
case BM_BLACK_REMAP: Draw<BM_BLACK_REMAP> (bp, zoom); return;
}
this->Draw<false>(bp, mode, zoom);
}
template <bool Tpal_to_rgb> Sprite *Blitter_32bppOptimized::EncodeInternal(const SpriteLoader::Sprite *sprite, AllocatorProc *allocator)
@@ -322,19 +342,25 @@ template <bool Tpal_to_rgb> Sprite *Blitter_32bppOptimized::EncodeInternal(const
if (a != 0) {
dst_px->a = a;
*dst_n = src->m;
if (Tpal_to_rgb && src->m != 0) {
if (src->m != 0) {
/* Get brightest value */
uint8 rgb_max = std::max({src->r, src->g, src->b});
uint8 rgb_max = std::max({ src->r, src->g, src->b });
/* Black pixel (8bpp or old 32bpp image), so use default value */
if (rgb_max == 0) rgb_max = DEFAULT_BRIGHTNESS;
*dst_n |= rgb_max << 8;
/* Pre-convert the mapping channel to a RGB value */
Colour colour = this->AdjustBrightness(this->LookupColourInPalette(src->m), rgb_max);
dst_px->r = colour.r;
dst_px->g = colour.g;
dst_px->b = colour.b;
if (Tpal_to_rgb) {
/* Pre-convert the mapping channel to a RGB value */
Colour colour = this->AdjustBrightness(this->LookupColourInPalette(src->m), rgb_max);
dst_px->r = colour.r;
dst_px->g = colour.g;
dst_px->b = colour.b;
} else {
dst_px->r = src->r;
dst_px->g = src->g;
dst_px->b = src->b;
}
} else {
dst_px->r = src->r;
dst_px->g = src->g;

View File

@@ -26,9 +26,10 @@ public:
const char *GetName() override { return "32bpp-optimized"; }
template <BlitterMode mode> void Draw(const Blitter::BlitterParams *bp, ZoomLevel zoom);
template <BlitterMode mode, bool Tpal_to_rgb = false> void Draw(const Blitter::BlitterParams *bp, ZoomLevel zoom);
protected:
template <bool Tpal_to_rgb> void Draw(Blitter::BlitterParams *bp, BlitterMode mode, ZoomLevel zoom);
template <bool Tpal_to_rgb> Sprite *EncodeInternal(const SpriteLoader::Sprite *sprite, AllocatorProc *allocator);
};

View File

@@ -315,7 +315,7 @@ void Blitter_40bppAnim::Draw(Blitter::BlitterParams *bp, BlitterMode mode, ZoomL
if (_screen_disable_anim || VideoDriver::GetInstance()->GetAnimBuffer() == nullptr) {
/* This means our output is not to the screen, so we can't be doing any animation stuff, so use our parent Draw() */
Blitter_32bppOptimized::Draw(bp, mode, zoom);
Blitter_32bppOptimized::Draw<true>(bp, mode, zoom);
return;
}

View File

@@ -61,13 +61,14 @@ protected:
name(name), description(description)
{
if (usable) {
Blitters &blitters = GetBlitters();
assert(blitters.find(this->name) == blitters.end());
/*
* Only add when the blitter is usable. Do not bail out or
* do more special things since the blitters are always
* instantiated upon start anyhow and freed upon shutdown.
*/
std::pair<Blitters::iterator, bool> P = GetBlitters().insert(Blitters::value_type(this->name, this));
assert(P.second);
blitters.insert(Blitters::value_type(this->name, this));
} else {
DEBUG(driver, 1, "Not registering blitter %s as it is not usable", name);
}

View File

@@ -14,6 +14,7 @@
#if defined(WITH_FREETYPE) || defined(WITH_UNISCRIBE) || defined(WITH_COCOA)
#include "core/geometry_func.hpp"
#include "error.h"
#include "fontcache.h"
#include "gfx_func.h"
#include "network/network.h"
@@ -61,8 +62,65 @@ public:
}
};
/** Nested widgets for the error window. */
static const NWidgetPart _nested_bootstrap_errmsg_widgets[] = {
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CAPTION, COLOUR_GREY, WID_BEM_CAPTION), SetDataTip(STR_MISSING_GRAPHICS_ERROR_TITLE, STR_NULL),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY),
NWidget(WWT_PANEL, COLOUR_GREY, WID_BEM_MESSAGE), EndContainer(),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_BEM_QUIT), SetDataTip(STR_MISSING_GRAPHICS_ERROR_QUIT, STR_NULL), SetFill(1, 0),
EndContainer(),
EndContainer(),
};
/** Window description for the error window. */
static WindowDesc _bootstrap_errmsg_desc(
WDP_CENTER, nullptr, 0, 0,
WC_BOOTSTRAP, WC_NONE,
WDF_MODAL,
_nested_bootstrap_errmsg_widgets, lengthof(_nested_bootstrap_errmsg_widgets)
);
/** The window for a failed bootstrap. */
class BootstrapErrorWindow : public Window {
public:
BootstrapErrorWindow() : Window(&_bootstrap_errmsg_desc)
{
this->InitNested(1);
}
~BootstrapErrorWindow()
{
_exit_game = true;
}
void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) override
{
if (widget == WID_BEM_MESSAGE) {
*size = GetStringBoundingBox(STR_MISSING_GRAPHICS_ERROR);
size->height = GetStringHeight(STR_MISSING_GRAPHICS_ERROR, size->width - WD_FRAMETEXT_LEFT - WD_FRAMETEXT_RIGHT) + WD_FRAMETEXT_BOTTOM + WD_FRAMETEXT_TOP;
}
}
void DrawWidget(const Rect &r, int widget) const override
{
if (widget == WID_BEM_MESSAGE) {
DrawStringMultiLine(r.left + WD_FRAMETEXT_LEFT, r.right - WD_FRAMETEXT_RIGHT, r.top + WD_FRAMETEXT_TOP, r.bottom - WD_FRAMETEXT_BOTTOM, STR_MISSING_GRAPHICS_ERROR, TC_FROMSTRING, SA_CENTER);
}
}
void OnClick(Point pt, int widget, int click_count) override
{
if (widget == WID_BEM_QUIT) {
_exit_game = true;
}
}
};
/** Nested widgets for the download window. */
static const NWidgetPart _nested_boostrap_download_status_window_widgets[] = {
static const NWidgetPart _nested_bootstrap_download_status_window_widgets[] = {
NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_CONTENT_DOWNLOAD_TITLE, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_PANEL, COLOUR_GREY, WID_NCDS_BACKGROUND),
NWidget(NWID_SPACER), SetMinimalSize(350, 0), SetMinimalTextLines(3, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM + 30),
@@ -74,7 +132,7 @@ static WindowDesc _bootstrap_download_status_window_desc(
WDP_CENTER, nullptr, 0, 0,
WC_NETWORK_STATUS_WINDOW, WC_NONE,
WDF_MODAL,
_nested_boostrap_download_status_window_widgets, lengthof(_nested_boostrap_download_status_window_widgets)
_nested_bootstrap_download_status_window_widgets, lengthof(_nested_bootstrap_download_status_window_widgets)
);
@@ -86,6 +144,14 @@ public:
{
}
~BootstrapContentDownloadStatusWindow()
{
/* If we are not set to exit the game, it means the bootstrap failed. */
if (!_exit_game) {
new BootstrapErrorWindow();
}
}
void OnDownloadComplete(ContentID cid) override
{
/* We have completed downloading. We can trigger finding the right set now. */

View File

@@ -86,8 +86,9 @@ static const NWidgetPart _nested_build_vehicle_widgets[] = {
};
/** Special cargo filter criteria */
static const CargoID CF_ANY = CT_NO_REFIT; ///< Show all vehicles independent of carried cargo (i.e. no filtering)
static const CargoID CF_NONE = CT_INVALID; ///< Show only vehicles which do not carry cargo (e.g. train engines)
static const CargoID CF_ANY = CT_NO_REFIT; ///< Show all vehicles independent of carried cargo (i.e. no filtering)
static const CargoID CF_NONE = CT_INVALID; ///< Show only vehicles which do not carry cargo (e.g. train engines)
static const CargoID CF_ENGINES = CT_AUTO_REFIT; ///< Show only engines (for rail vehicles only)
bool _engine_sort_direction; ///< \c false = descending, \c true = ascending.
byte _engine_sort_last_criteria[] = {0, 0, 0, 0}; ///< Last set sort criteria, for each vehicle type.
@@ -531,16 +532,21 @@ const StringID _engine_sort_listing[][12] = {{
INVALID_STRING_ID
}};
/** Cargo filter functions */
static bool CDECL CargoFilter(const EngineID *eid, const CargoID cid)
/** Filters vehicles by cargo and engine (in case of rail vehicle). */
static bool CDECL CargoAndEngineFilter(const EngineID *eid, const CargoID cid)
{
if (cid == CF_ANY) return true;
CargoTypes refit_mask = GetUnionOfArticulatedRefitMasks(*eid, true) & _standard_cargo_mask;
return (cid == CF_NONE ? refit_mask == 0 : HasBit(refit_mask, cid));
if (cid == CF_ANY) {
return true;
} else if (cid == CF_ENGINES) {
return Engine::Get(*eid)->GetPower() != 0;
} else {
CargoTypes refit_mask = GetUnionOfArticulatedRefitMasks(*eid, true) & _standard_cargo_mask;
return (cid == CF_NONE ? refit_mask == 0 : HasBit(refit_mask, cid));
}
}
static GUIEngineList::FilterFunction * const _filter_funcs[] = {
&CargoFilter,
&CargoAndEngineFilter,
};
static int DrawCargoCapacityInfo(int left, int right, int y, EngineID engine, TestedEngineDetails &te)
@@ -1046,10 +1052,10 @@ struct BuildVehicleWindow : Window {
EngineID sel_engine; ///< Currently selected engine, or #INVALID_ENGINE
EngineID rename_engine; ///< Engine being renamed.
GUIEngineList eng_list;
CargoID cargo_filter[NUM_CARGO + 2]; ///< Available cargo filters; CargoID or CF_ANY or CF_NONE
StringID cargo_filter_texts[NUM_CARGO + 3]; ///< Texts for filter_cargo, terminated by INVALID_STRING_ID
CargoID cargo_filter[NUM_CARGO + 3]; ///< Available cargo filters; CargoID or CF_ANY or CF_NONE or CF_ENGINES
StringID cargo_filter_texts[NUM_CARGO + 4]; ///< Texts for filter_cargo, terminated by INVALID_STRING_ID
byte cargo_filter_criteria; ///< Selected cargo filter
int details_height; ///< Minimal needed height of the details panels (found so far).
int details_height; ///< Minimal needed height of the details panels, in text lines (found so far).
Scrollbar *vscroll;
TestedEngineDetails te; ///< Tested cost and capacity after refit.
@@ -1109,7 +1115,7 @@ struct BuildVehicleWindow : Window {
widget->tool_tip = STR_SHOW_HIDDEN_ENGINES_VEHICLE_TRAIN_TOOLTIP + type;
widget->SetLowered(this->show_hidden_engines);
this->details_height = ((this->vehicle_type == VEH_TRAIN) ? 10 : 9) * FONT_HEIGHT_NORMAL + WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM;
this->details_height = ((this->vehicle_type == VEH_TRAIN) ? 10 : 9);
this->FinishInitNested(tile == INVALID_TILE ? (int)type : tile);
@@ -1165,9 +1171,15 @@ struct BuildVehicleWindow : Window {
this->cargo_filter_texts[filter_items] = STR_PURCHASE_INFO_ALL_TYPES;
filter_items++;
/* Add item for vehicles not carrying anything, e.g. train engines.
* This could also be useful for eyecandy vehicles of other types, but is likely too confusing for joe, */
/* Specific filters for trains. */
if (this->vehicle_type == VEH_TRAIN) {
/* Add item for locomotives only in case of trains. */
this->cargo_filter[filter_items] = CF_ENGINES;
this->cargo_filter_texts[filter_items] = STR_PURCHASE_INFO_ENGINES_ONLY;
filter_items++;
/* Add item for vehicles not carrying anything, e.g. train engines.
* This could also be useful for eyecandy vehicles of other types, but is likely too confusing for joe, */
this->cargo_filter[filter_items] = CF_NONE;
this->cargo_filter_texts[filter_items] = STR_PURCHASE_INFO_NONE;
filter_items++;
@@ -1254,7 +1266,7 @@ struct BuildVehicleWindow : Window {
bool FilterSingleEngine(EngineID eid)
{
CargoID filter_type = this->cargo_filter[this->cargo_filter_criteria];
return (filter_type == CF_ANY || CargoFilter(&eid, filter_type));
return CargoAndEngineFilter(&eid, filter_type);
}
/* Figure out what train EngineIDs to put in the list */
@@ -1460,7 +1472,7 @@ struct BuildVehicleWindow : Window {
if (sel_eng != INVALID_ENGINE) {
CommandCallback *callback = (this->vehicle_type == VEH_TRAIN && RailVehInfo(sel_eng)->railveh_type == RAILVEH_WAGON) ? CcBuildWagon : CcBuildPrimaryVehicle;
CargoID cargo = this->cargo_filter[this->cargo_filter_criteria];
if (cargo == CF_ANY) cargo = CF_NONE;
if (cargo == CF_ANY || cargo == CF_ENGINES) cargo = CF_NONE;
DoCommandP(this->window_number, sel_eng | (cargo << 24), 0, GetCmdBuildVeh(this->vehicle_type), callback);
}
break;
@@ -1541,7 +1553,7 @@ struct BuildVehicleWindow : Window {
break;
case WID_BV_PANEL:
size->height = this->details_height;
size->height = FONT_HEIGHT_NORMAL * this->details_height + padding.height;
break;
case WID_BV_SORT_ASCENDING_DESCENDING: {
@@ -1608,12 +1620,12 @@ struct BuildVehicleWindow : Window {
NWidgetBase *nwi = this->GetWidget<NWidgetBase>(WID_BV_PANEL);
int text_end = DrawVehiclePurchaseInfo(nwi->pos_x + WD_FRAMETEXT_LEFT, nwi->pos_x + nwi->current_x - WD_FRAMETEXT_RIGHT,
nwi->pos_y + WD_FRAMERECT_TOP, this->sel_engine, this->te);
needed_height = std::max(needed_height, text_end - (int)nwi->pos_y + WD_FRAMERECT_BOTTOM);
needed_height = std::max(needed_height, (text_end - (int)nwi->pos_y - WD_FRAMERECT_TOP) / FONT_HEIGHT_NORMAL);
}
if (needed_height != this->details_height) { // Details window are not high enough, enlarge them.
int resize = needed_height - this->details_height;
this->details_height = needed_height;
this->ReInit(0, resize);
this->ReInit(0, resize * FONT_HEIGHT_NORMAL);
return;
}
}

View File

@@ -59,7 +59,7 @@ struct CargoSpec {
uint8 rating_colour;
uint8 weight; ///< Weight of a single unit of this cargo type in 1/16 ton (62.5 kg).
uint16 multiplier; ///< Capacity multiplier for vehicles. (8 fractional bits)
uint16 initial_payment;
uint32 initial_payment; ///< Initial payment rate before inflation is applied.
uint8 transit_days[2];
bool is_freight; ///< Cargo type is considered to be freight (affects train freight multiplier).

View File

@@ -125,7 +125,7 @@ static int32 ClickChangeDateCheat(int32 p1, int32 p2)
*/
static int32 ClickChangeMaxHlCheat(int32 p1, int32 p2)
{
p1 = Clamp(p1, MIN_MAX_HEIGHTLEVEL, MAX_MAX_HEIGHTLEVEL);
p1 = Clamp(p1, MIN_MAP_HEIGHT_LIMIT, MAX_MAP_HEIGHT_LIMIT);
/* Check if at least one mountain on the map is higher than the new value.
* If yes, disallow the change. */
@@ -133,18 +133,18 @@ static int32 ClickChangeMaxHlCheat(int32 p1, int32 p2)
if ((int32)TileHeight(t) > p1) {
ShowErrorMessage(STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN, INVALID_STRING_ID, WL_ERROR);
/* Return old, unchanged value */
return _settings_game.construction.max_heightlevel;
return _settings_game.construction.map_height_limit;
}
}
/* Execute the change and reload GRF Data */
_settings_game.construction.max_heightlevel = p1;
_settings_game.construction.map_height_limit = p1;
ReloadNewGRFData();
/* The smallmap uses an index from heightlevels to colours. Trigger rebuilding it. */
InvalidateWindowClassesData(WC_SMALLMAP, 2);
return _settings_game.construction.max_heightlevel;
return _settings_game.construction.map_height_limit;
}
/** Available cheats. */
@@ -182,14 +182,14 @@ struct CheatEntry {
* Order matches with the values of #CheatNumbers
*/
static const CheatEntry _cheats_ui[] = {
{SLE_INT32, STR_CHEAT_MONEY, &_money_cheat_amount, &_cheats.money.been_used, &ClickMoneyCheat },
{SLE_UINT8, STR_CHEAT_CHANGE_COMPANY, &_local_company, &_cheats.switch_company.been_used, &ClickChangeCompanyCheat },
{SLE_BOOL, STR_CHEAT_EXTRA_DYNAMITE, &_cheats.magic_bulldozer.value, &_cheats.magic_bulldozer.been_used, nullptr },
{SLE_BOOL, STR_CHEAT_CROSSINGTUNNELS, &_cheats.crossing_tunnels.value, &_cheats.crossing_tunnels.been_used, nullptr },
{SLE_BOOL, STR_CHEAT_NO_JETCRASH, &_cheats.no_jetcrash.value, &_cheats.no_jetcrash.been_used, nullptr },
{SLE_BOOL, STR_CHEAT_SETUP_PROD, &_cheats.setup_prod.value, &_cheats.setup_prod.been_used, &ClickSetProdCheat },
{SLE_UINT8, STR_CHEAT_EDIT_MAX_HL, &_settings_game.construction.max_heightlevel, &_cheats.edit_max_hl.been_used, &ClickChangeMaxHlCheat },
{SLE_INT32, STR_CHEAT_CHANGE_DATE, &_cur_year, &_cheats.change_date.been_used, &ClickChangeDateCheat },
{SLE_INT32, STR_CHEAT_MONEY, &_money_cheat_amount, &_cheats.money.been_used, &ClickMoneyCheat },
{SLE_UINT8, STR_CHEAT_CHANGE_COMPANY, &_local_company, &_cheats.switch_company.been_used, &ClickChangeCompanyCheat },
{SLE_BOOL, STR_CHEAT_EXTRA_DYNAMITE, &_cheats.magic_bulldozer.value, &_cheats.magic_bulldozer.been_used, nullptr },
{SLE_BOOL, STR_CHEAT_CROSSINGTUNNELS, &_cheats.crossing_tunnels.value, &_cheats.crossing_tunnels.been_used, nullptr },
{SLE_BOOL, STR_CHEAT_NO_JETCRASH, &_cheats.no_jetcrash.value, &_cheats.no_jetcrash.been_used, nullptr },
{SLE_BOOL, STR_CHEAT_SETUP_PROD, &_cheats.setup_prod.value, &_cheats.setup_prod.been_used, &ClickSetProdCheat },
{SLE_UINT8, STR_CHEAT_EDIT_MAX_HL, &_settings_game.construction.map_height_limit, &_cheats.edit_max_hl.been_used, &ClickChangeMaxHlCheat },
{SLE_INT32, STR_CHEAT_CHANGE_DATE, &_cur_year, &_cheats.change_date.been_used, &ClickChangeDateCheat },
};
static_assert(CHT_NUM_CHEATS == lengthof(_cheats_ui));

View File

@@ -338,6 +338,7 @@ void GenerateClearTile()
TileIndex tile_new;
SetClearGroundDensity(tile, CLEAR_ROCKS, 3);
MarkTileDirtyByTile(tile);
do {
if (--j == 0) goto get_out;
tile_new = tile + TileOffsByDiagDir((DiagDirection)GB(Random(), 0, 2));

View File

@@ -63,9 +63,9 @@ Company::Company(uint16 name_1, bool is_ai)
this->name_1 = name_1;
this->location_of_HQ = INVALID_TILE;
this->is_ai = is_ai;
this->terraform_limit = _settings_game.construction.terraform_frame_burst << 16;
this->clear_limit = _settings_game.construction.clear_frame_burst << 16;
this->tree_limit = _settings_game.construction.tree_frame_burst << 16;
this->terraform_limit = (uint32)_settings_game.construction.terraform_frame_burst << 16;
this->clear_limit = (uint32)_settings_game.construction.clear_frame_burst << 16;
this->tree_limit = (uint32)_settings_game.construction.tree_frame_burst << 16;
for (uint j = 0; j < 4; j++) this->share_owners[j] = COMPANY_SPECTATOR;
InvalidateWindowData(WC_PERFORMANCE_DETAIL, 0, INVALID_COMPANY);
@@ -120,6 +120,7 @@ void SetLocalCompany(CompanyID new_company)
/* ... and redraw the whole screen. */
MarkWholeScreenDirty();
InvalidateWindowClassesData(WC_SIGN_LIST, -1);
InvalidateWindowClassesData(WC_GOALS_LIST);
}
/**
@@ -266,9 +267,9 @@ void SubtractMoneyFromCompanyFract(CompanyID company, const CommandCost &cst)
void UpdateLandscapingLimits()
{
for (Company *c : Company::Iterate()) {
c->terraform_limit = std::min<uint32>(c->terraform_limit + _settings_game.construction.terraform_per_64k_frames, _settings_game.construction.terraform_frame_burst << 16);
c->clear_limit = std::min<uint32>(c->clear_limit + _settings_game.construction.clear_per_64k_frames, _settings_game.construction.clear_frame_burst << 16);
c->tree_limit = std::min<uint32>(c->tree_limit + _settings_game.construction.tree_per_64k_frames, _settings_game.construction.tree_frame_burst << 16);
c->terraform_limit = std::min<uint64>((uint64)c->terraform_limit + _settings_game.construction.terraform_per_64k_frames, (uint64)_settings_game.construction.terraform_frame_burst << 16);
c->clear_limit = std::min<uint64>((uint64)c->clear_limit + _settings_game.construction.clear_per_64k_frames, (uint64)_settings_game.construction.clear_frame_burst << 16);
c->tree_limit = std::min<uint64>((uint64)c->tree_limit + _settings_game.construction.tree_per_64k_frames, (uint64)_settings_game.construction.tree_frame_burst << 16);
}
}

View File

@@ -13,6 +13,7 @@
#include "engine_func.h"
#include "landscape.h"
#include "saveload/saveload.h"
#include "network/core/game_info.h"
#include "network/network.h"
#include "network/network_func.h"
#include "network/network_base.h"
@@ -45,7 +46,7 @@
#include "safeguards.h"
/* scriptfile handling */
static bool _script_running; ///< Script is running (used to abort execution when #ConReturn is encountered).
static uint _script_current_depth; ///< Depth of scripts running (used to abort execution when #ConReturn is encountered).
/** File list storage for the console, for caching the last 'ls' command. */
class ConsoleFileList : public FileList {
@@ -893,7 +894,7 @@ DEF_CONSOLE_CMD(ConNetworkReconnect)
/* Don't resolve the address first, just print it directly as it comes from the config file. */
IConsolePrintF(CC_DEFAULT, "Reconnecting to %s:%d...", _settings_client.network.last_host, _settings_client.network.last_port);
NetworkClientConnectGame(NetworkAddress(_settings_client.network.last_host, _settings_client.network.last_port), playas);
NetworkClientConnectGame(_settings_client.network.last_host, _settings_client.network.last_port, playas);
return true;
}
@@ -907,7 +908,6 @@ DEF_CONSOLE_CMD(ConNetworkConnect)
}
if (argc < 2) return false;
if (_networking) NetworkDisconnect(); // we are in network-mode, first close it!
const char *port = nullptr;
const char *company = nullptr;
@@ -935,7 +935,7 @@ DEF_CONSOLE_CMD(ConNetworkConnect)
IConsolePrintF(CC_DEFAULT, " port: %s", port);
}
NetworkClientConnectGame(NetworkAddress(ip, rport), join_as);
NetworkClientConnectGame(ip, rport, join_as);
return true;
}
@@ -960,10 +960,16 @@ DEF_CONSOLE_CMD(ConExec)
return true;
}
_script_running = true;
if (_script_current_depth == 11) {
IConsoleError("Maximum 'exec' depth reached; script A is calling script B is calling script C ... more than 10 times.");
return true;
}
_script_current_depth++;
uint script_depth = _script_current_depth;
char cmdline[ICON_CMDLN_SIZE];
while (_script_running && fgets(cmdline, sizeof(cmdline), script_file) != nullptr) {
while (fgets(cmdline, sizeof(cmdline), script_file) != nullptr) {
/* Remove newline characters from the executing script */
for (char *cmdptr = cmdline; *cmdptr != '\0'; cmdptr++) {
if (*cmdptr == '\n' || *cmdptr == '\r') {
@@ -972,13 +978,18 @@ DEF_CONSOLE_CMD(ConExec)
}
}
IConsoleCmdExec(cmdline);
/* Ensure that we are still on the same depth or that we returned via 'return'. */
assert(_script_current_depth == script_depth || _script_current_depth == script_depth - 1);
/* The 'return' command was executed. */
if (_script_current_depth == script_depth - 1) break;
}
if (ferror(script_file)) {
IConsoleError("Encountered error while trying to read from script file");
}
_script_running = false;
if (_script_current_depth == script_depth) _script_current_depth--;
FioFCloseFile(script_file);
return true;
}
@@ -990,7 +1001,7 @@ DEF_CONSOLE_CMD(ConReturn)
return true;
}
_script_running = false;
_script_current_depth--;
return true;
}
@@ -1340,7 +1351,9 @@ DEF_CONSOLE_CMD(ConRescanNewGRF)
return true;
}
ScanNewGRFFiles(nullptr);
if (!RequestNewGRFScan()) {
IConsoleWarning("NewGRF scanning is already running. Please wait until completed to run again.");
}
return true;
}
@@ -1409,46 +1422,80 @@ DEF_CONSOLE_CMD(ConAlias)
DEF_CONSOLE_CMD(ConScreenShot)
{
if (argc == 0) {
IConsoleHelp("Create a screenshot of the game. Usage: 'screenshot [big | giant | no_con | minimap] [file name]'");
IConsoleHelp("'big' makes a zoomed-in screenshot of the visible area, 'giant' makes a screenshot of the "
"whole map, 'no_con' hides the console to create the screenshot. 'big' or 'giant' "
"screenshots are always drawn without console. "
"'minimap' makes a top-viewed minimap screenshot of whole world which represents one tile by one pixel.");
IConsoleHelp("Create a screenshot of the game. Usage: 'screenshot [viewport | normal | big | giant | heightmap | minimap] [no_con] [size <width> <height>] [<filename>]'");
IConsoleHelp("'viewport' (default) makes a screenshot of the current viewport (including menus, windows, ..), "
"'normal' makes a screenshot of the visible area, "
"'big' makes a zoomed-in screenshot of the visible area, "
"'giant' makes a screenshot of the whole map, "
"'heightmap' makes a heightmap screenshot of the map that can be loaded in as heightmap, "
"'minimap' makes a top-viewed minimap screenshot of the whole world which represents one tile by one pixel. "
"'no_con' hides the console to create the screenshot (only useful in combination with 'viewport'). "
"'size' sets the width and height of the viewport to make a screenshot of (only useful in combination with 'normal' or 'big').");
return true;
}
if (argc > 3) return false;
if (argc > 7) return false;
ScreenshotType type = SC_VIEWPORT;
const char *name = nullptr;
uint32 width = 0;
uint32 height = 0;
std::string name{};
uint32 arg_index = 1;
if (argc > 1) {
if (strcmp(argv[1], "big") == 0) {
/* screenshot big [filename] */
if (argc > arg_index) {
if (strcmp(argv[arg_index], "viewport") == 0) {
type = SC_VIEWPORT;
arg_index += 1;
} else if (strcmp(argv[arg_index], "normal") == 0) {
type = SC_DEFAULTZOOM;
arg_index += 1;
} else if (strcmp(argv[arg_index], "big") == 0) {
type = SC_ZOOMEDIN;
if (argc > 2) name = argv[2];
} else if (strcmp(argv[1], "giant") == 0) {
/* screenshot giant [filename] */
arg_index += 1;
} else if (strcmp(argv[arg_index], "giant") == 0) {
type = SC_WORLD;
if (argc > 2) name = argv[2];
} else if (strcmp(argv[1], "minimap") == 0) {
/* screenshot minimap [filename] */
arg_index += 1;
} else if (strcmp(argv[arg_index], "heightmap") == 0) {
type = SC_HEIGHTMAP;
arg_index += 1;
} else if (strcmp(argv[arg_index], "minimap") == 0) {
type = SC_MINIMAP;
if (argc > 2) name = argv[2];
} else if (strcmp(argv[1], "no_con") == 0) {
/* screenshot no_con [filename] */
IConsoleClose();
if (argc > 2) name = argv[2];
} else if (argc == 2) {
/* screenshot filename */
name = argv[1];
} else {
/* screenshot argv[1] argv[2] - invalid */
return false;
arg_index += 1;
}
}
MakeScreenshot(type, name);
if (argc > arg_index && strcmp(argv[arg_index], "no_con") == 0) {
if (type != SC_VIEWPORT) {
IConsoleError("'no_con' can only be used in combination with 'viewport'");
return true;
}
IConsoleClose();
arg_index += 1;
}
if (argc > arg_index + 2 && strcmp(argv[arg_index], "size") == 0) {
/* size <width> <height> */
if (type != SC_DEFAULTZOOM && type != SC_ZOOMEDIN) {
IConsoleError("'size' can only be used in combination with 'normal' or 'big'");
return true;
}
GetArgumentInteger(&width, argv[arg_index + 1]);
GetArgumentInteger(&height, argv[arg_index + 2]);
arg_index += 3;
}
if (argc > arg_index) {
/* Last parameter that was not one of the keywords must be the filename. */
name = argv[arg_index];
arg_index += 1;
}
if (argc > arg_index) {
/* We have parameters we did not process; means we misunderstood any of the above. */
return false;
}
MakeScreenshot(type, name, width, height);
return true;
}
@@ -1834,7 +1881,7 @@ DEF_CONSOLE_CMD(ConContent)
* to download every available package on BaNaNaS. This is not in
* the spirit of this service. Additionally, these few people were
* good for 70% of the consumed bandwidth of BaNaNaS. */
IConsolePrintF(CC_ERROR, "'select all' is no longer supported since 1.11");
IConsoleError("'select all' is no longer supported since 1.11");
} else {
_network_content_client.Select((ContentID)atoi(argv[2]));
}

View File

@@ -82,7 +82,7 @@ struct Pool : PoolBase {
/* Ensure Tmax_size is within the bounds of Tindex. */
static_assert((uint64)(Tmax_size - 1) >> 8 * sizeof(Tindex) == 0);
static const size_t MAX_SIZE = Tmax_size; ///< Make template parameter accessible from outside
static constexpr size_t MAX_SIZE = Tmax_size; ///< Make template parameter accessible from outside
const char * const name; ///< Name of this pool

View File

@@ -114,6 +114,12 @@ public:
*/
static void InitialiseCrashLog();
/**
* Prepare crash log handler for a newly started thread.
* @note must be implemented by all implementers of CrashLog.
*/
static void InitThread();
static void SetErrorMessage(const char *message);
static void AfterCrashLogCleanup();
};

View File

@@ -67,6 +67,7 @@ static const CurrencySpec origin_currency_specs[CURRENCY_END] = {
{ 10, "", CF_NOEURO, "HKD" NBSP, "", 0, STR_GAME_OPTIONS_CURRENCY_HKD }, ///< hong kong dollar
{ 90, "", CF_NOEURO, u8"\u20b9", "", 0, STR_GAME_OPTIONS_CURRENCY_INR }, ///< Indian Rupee
{ 19, "", CF_NOEURO, "Rp", "", 0, STR_GAME_OPTIONS_CURRENCY_IDR }, ///< Indonesian Rupiah
{ 5, "", CF_NOEURO, "RM", "", 0, STR_GAME_OPTIONS_CURRENCY_MYR }, ///< Malaysian Ringgit
};
/** Array of currencies used by the system */

View File

@@ -64,6 +64,7 @@ enum Currencies {
CURRENCY_HKD, ///< Hong Kong Dollar
CURRENCY_INR, ///< Indian Rupee
CURRENCY_IDR, ///< Indonesian Rupiah
CURRENCY_MYR, ///< Malaysian Ringgit
CURRENCY_END, ///< always the last item
};

View File

@@ -456,7 +456,7 @@ static bool DisasterTick_Aircraft(DisasterVehicle *v, uint16 image_override, boo
DestructIndustry(i);
SetDParam(0, i->town->index);
AddTileNewsItem(news_message, NT_ACCIDENT, v->dest_tile);
AddIndustryNewsItem(news_message, NT_ACCIDENT, i->index);
if (_settings_client.sound.disaster) SndPlayTileFx(SND_12_EXPLOSION, i->location.tile);
}
} else if (v->current_order.GetDestination() == 0) {

View File

@@ -9,10 +9,12 @@
#include "stdafx.h"
#include "debug.h"
#include "error.h"
#include "sound/sound_driver.hpp"
#include "music/music_driver.hpp"
#include "video/video_driver.hpp"
#include "string_func.h"
#include "table/strings.h"
#include <string>
#include <sstream>
@@ -111,6 +113,8 @@ bool DriverFactoryBase::SelectDriverImpl(const std::string &name, Driver::Type t
if (d->type != type) continue;
if (d->priority != priority) continue;
if (type == Driver::DT_VIDEO && !_video_hw_accel && d->UsesHardwareAcceleration()) continue;
Driver *oldd = *GetActiveDriver(type);
Driver *newd = d->CreateInstance();
*GetActiveDriver(type) = newd;
@@ -125,6 +129,12 @@ bool DriverFactoryBase::SelectDriverImpl(const std::string &name, Driver::Type t
*GetActiveDriver(type) = oldd;
DEBUG(driver, 1, "Probing %s driver '%s' failed with error: %s", GetDriverTypeName(type), d->name, err);
delete newd;
if (type == Driver::DT_VIDEO && _video_hw_accel && d->UsesHardwareAcceleration()) {
_video_hw_accel = false;
ErrorMessageData msg(STR_VIDEO_DRIVER_ERROR, STR_VIDEO_DRIVER_ERROR_NO_HARDWARE_ACCELERATION);
ScheduleErrorMessage(msg);
}
}
}
usererror("Couldn't find any suitable %s driver", GetDriverTypeName(type));
@@ -211,8 +221,9 @@ DriverFactoryBase::DriverFactoryBase(Driver::Type type, int priority, const char
strecpy(buf, GetDriverTypeName(type), lastof(buf));
strecpy(buf + 5, name, lastof(buf));
std::pair<Drivers::iterator, bool> P = GetDrivers().insert(Drivers::value_type(buf, this));
assert(P.second);
Drivers &drivers = GetDrivers();
assert(drivers.find(buf) == drivers.end());
drivers.insert(Drivers::value_type(buf, this));
}
/**

View File

@@ -107,6 +107,15 @@ protected:
virtual ~DriverFactoryBase();
/**
* Does the driver use hardware acceleration (video-drivers only).
* @return True if the driver uses hardware acceleration.
*/
virtual bool UsesHardwareAcceleration() const
{
return false;
}
public:
/**
* Shuts down all active drivers

View File

@@ -124,6 +124,9 @@ static TrackBits GetRailTrackBitsUniversal(TileIndex t, byte *override)
*/
static TrackBits MaskWireBits(TileIndex t, TrackBits tracks)
{
/* Single track bits are never masked out. */
if (likely(HasAtMostOneBit(tracks))) return tracks;
if (!IsPlainRailTile(t)) return tracks;
TrackdirBits neighbour_tdb = TRACKDIR_BIT_NONE;

View File

@@ -549,6 +549,7 @@ void SetupEngines()
* in any case, and we just cleaned the pool. */
assert(Engine::CanAllocateItem());
const Engine *e = new Engine(eid.type, eid.internal_id);
(void)e; // assert only
assert(e->index == index);
index++;
}
@@ -721,11 +722,9 @@ static void EnableEngineForCompany(EngineID eid, CompanyID company)
SetBit(e->company_avail, company);
if (e->type == VEH_TRAIN) {
assert(e->u.rail.railtype < RAILTYPE_END);
c->avail_railtypes = AddDateIntroducedRailTypes(c->avail_railtypes | GetRailTypeInfo(e->u.rail.railtype)->introduces_railtypes, _date);
c->avail_railtypes = GetCompanyRailtypes(c->index);
} else if (e->type == VEH_ROAD) {
assert(e->u.road.roadtype < ROADTYPE_END);
c->avail_roadtypes = AddDateIntroducedRoadTypes(c->avail_roadtypes | GetRoadTypeInfo(e->u.road.roadtype)->introduces_roadtypes, _date);
c->avail_roadtypes = GetCompanyRoadTypes(c->index);
}
if (company == _local_company) {
@@ -747,8 +746,14 @@ static void EnableEngineForCompany(EngineID eid, CompanyID company)
static void DisableEngineForCompany(EngineID eid, CompanyID company)
{
Engine *e = Engine::Get(eid);
Company *c = Company::Get(company);
ClrBit(e->company_avail, company);
if (e->type == VEH_TRAIN) {
c->avail_railtypes = GetCompanyRailtypes(c->index);
} else if (e->type == VEH_ROAD) {
c->avail_roadtypes = GetCompanyRoadTypes(c->index);
}
if (company == _local_company) {
AddRemoveEngineFromAutoreplaceAndBuildWindows(e->type);
@@ -997,8 +1002,7 @@ static void NewVehicleAvailable(Engine *e)
if (e->type == VEH_TRAIN) {
/* maybe make another rail type available */
RailType railtype = e->u.rail.railtype;
assert(railtype < RAILTYPE_END);
assert(e->u.rail.railtype < RAILTYPE_END);
for (Company *c : Company::Iterate()) c->avail_railtypes = AddDateIntroducedRailTypes(c->avail_railtypes | GetRailTypeInfo(e->u.rail.railtype)->introduces_railtypes, _date);
} else if (e->type == VEH_ROAD) {
/* maybe make another road type available */

View File

@@ -396,6 +396,7 @@ void ShowErrorMessage(StringID summary_msg, StringID detailed_msg, WarningLevel
bool no_timeout = wl == WL_CRITICAL;
if (_game_mode == GM_BOOTSTRAP) return;
if (_settings_client.gui.errmsg_duration == 0 && !no_timeout) return;
ErrorMessageData data(summary_msg, detailed_msg, no_timeout ? 0 : _settings_client.gui.errmsg_duration, x, y, textref_stack_grffile, textref_stack_size, textref_stack);

View File

@@ -429,6 +429,9 @@ FILE *FioFOpenFile(const std::string &filename, const char *mode, Subdirectory s
if (token == "..") {
if (tokens.size() < 2) return nullptr;
tokens.pop_back();
} else if (token == ".") {
/* Do nothing. "." means current folder, but you can create tar files with "." in the path.
* This confuses our file resolver. So, act like this folder doesn't exist. */
} else {
tokens.push_back(token);
}

View File

@@ -13,7 +13,7 @@
#include "gfx_type.h"
#include "company_base.h"
#include "newgrf_config.h"
#include "network/core/tcp_content.h"
#include "network/core/tcp_content_type.h"
/** Special values for save-load window for the data parameter of #InvalidateWindowData. */

View File

@@ -274,6 +274,7 @@ void PerformanceMeasurer::SetExpectedRate(double rate)
*/
/* static */ void PerformanceMeasurer::Paused(PerformanceElement elem)
{
PerformanceMeasurer::SetInactive(elem);
_pf_data[elem].AddPause(GetPerformanceTimer());
}
@@ -399,7 +400,6 @@ struct FramerateWindow : Window {
{
const double threshold_good = target * 0.95;
const double threshold_bad = target * 2 / 3;
value = std::min(9999.99, value);
this->value = (uint32)(value * 100);
this->strid = (value > threshold_good) ? STR_FRAMERATE_FPS_GOOD : (value < threshold_bad) ? STR_FRAMERATE_FPS_BAD : STR_FRAMERATE_FPS_WARN;
}
@@ -408,7 +408,6 @@ struct FramerateWindow : Window {
{
const double threshold_good = target / 3;
const double threshold_bad = target;
value = std::min(9999.99, value);
this->value = (uint32)(value * 100);
this->strid = (value < threshold_good) ? STR_FRAMERATE_MS_GOOD : (value > threshold_bad) ? STR_FRAMERATE_MS_BAD : STR_FRAMERATE_MS_WARN;
}

View File

@@ -33,6 +33,7 @@
#include "game/game_instance.hpp"
#include "string_func.h"
#include "thread.h"
#include "tgp.h"
#include "safeguards.h"
@@ -59,18 +60,10 @@ GenWorldInfo _gw;
/** Whether we are generating the map or not. */
bool _generating_world;
/**
* Tells if the world generation is done in a thread or not.
* @return the 'threaded' status
*/
bool IsGenerateWorldThreaded()
{
return _gw.threaded && !_gw.quit_thread;
}
class AbortGenerateWorldSignal { };
/**
* Clean up the 'mess' of generation. That is, show windows again, reset
* thread variables, and delete the progress window.
* Generation is done; show windows again and delete the progress window.
*/
static void CleanupGeneration()
{
@@ -78,11 +71,10 @@ static void CleanupGeneration()
SetMouseCursorBusy(false);
/* Show all vital windows again, because we have hidden them */
if (_gw.threaded && _game_mode != GM_MENU) ShowVitalWindows();
if (_game_mode != GM_MENU) ShowVitalWindows();
SetModalProgress(false);
_gw.proc = nullptr;
_gw.abortp = nullptr;
_gw.threaded = false;
DeleteWindowByClass(WC_MODAL_PROGRESS);
ShowFirstError();
@@ -97,10 +89,8 @@ static void _GenerateWorld()
/* Make sure everything is done via OWNER_NONE. */
Backup<CompanyID> _cur_company(_current_company, OWNER_NONE, FILE_LINE);
std::unique_lock<std::mutex> lock(_modal_progress_work_mutex, std::defer_lock);
try {
_generating_world = true;
lock.lock();
if (_network_dedicated) DEBUG(net, 1, "Generating map, please wait...");
/* Set the Random() seed to generation_seed so we produce the same map with the same seed */
if (_settings_game.game_creation.generation_seed == GENERATE_NEW_SEED) _settings_game.game_creation.generation_seed = _settings_newgame.game_creation.generation_seed = InteractiveRandom();
@@ -129,6 +119,8 @@ static void _GenerateWorld()
ConvertGroundTilesIntoWaterTiles();
IncreaseGeneratingWorldProgress(GWP_OBJECT);
_settings_game.game_creation.snow_line_height = DEF_SNOWLINE_HEIGHT;
} else {
GenerateLandscape(_gw.mode);
GenerateClearTile();
@@ -136,14 +128,7 @@ static void _GenerateWorld()
/* Only generate towns, tree and industries in newgame mode. */
if (_game_mode != GM_EDITOR) {
if (!GenerateTowns(_settings_game.economy.town_layout)) {
_cur_company.Restore();
HandleGeneratingWorldAbortion();
BasePersistentStorageArray::SwitchMode(PSM_LEAVE_GAMELOOP);
if (_network_dedicated) {
/* Exit the game to prevent a return to main menu. */
DEBUG(net, 0, "Generating map failed, aborting");
_exit_game = true;
}
return;
}
GenerateIndustries();
@@ -200,7 +185,6 @@ static void _GenerateWorld()
IncreaseGeneratingWorldProgress(GWP_GAME_START);
CleanupGeneration();
lock.unlock();
ShowNewGRFError();
@@ -212,11 +196,19 @@ static void _GenerateWorld()
seprintf(name, lastof(name), "dmp_cmds_%08x_%08x.sav", _settings_game.game_creation.generation_seed, _date);
SaveOrLoad(name, SLO_SAVE, DFT_GAME_FILE, AUTOSAVE_DIR, false);
}
} catch (...) {
} catch (AbortGenerateWorldSignal&) {
CleanupGeneration();
BasePersistentStorageArray::SwitchMode(PSM_LEAVE_GAMELOOP, true);
if (_cur_company.IsValid()) _cur_company.Restore();
_generating_world = false;
throw;
if (_network_dedicated) {
/* Exit the game to prevent a return to main menu. */
DEBUG(net, 0, "Generating map failed, aborting");
_exit_game = true;
} else {
SwitchToMode(_switch_mode);
}
}
}
@@ -240,23 +232,6 @@ void GenerateWorldSetAbortCallback(GWAbortProc *proc)
_gw.abortp = proc;
}
/**
* This will wait for the thread to finish up his work. It will not continue
* till the work is done.
*/
void WaitTillGeneratedWorld()
{
if (!_gw.thread.joinable()) return;
_modal_progress_work_mutex.unlock();
_modal_progress_paint_mutex.unlock();
_gw.quit_thread = true;
_gw.thread.join();
_gw.threaded = false;
_modal_progress_work_mutex.lock();
_modal_progress_paint_mutex.lock();
}
/**
* Initializes the abortion process
*/
@@ -271,7 +246,7 @@ void AbortGeneratingWorld()
*/
bool IsGeneratingWorldAborted()
{
return _gw.abort;
return _gw.abort || _exit_game;
}
/**
@@ -284,11 +259,7 @@ void HandleGeneratingWorldAbortion()
if (_gw.abortp != nullptr) _gw.abortp();
CleanupGeneration();
if (_gw.thread.joinable() && _gw.thread.get_id() == std::this_thread::get_id()) throw OTTDThreadExitSignal();
SwitchToMode(_switch_mode);
throw AbortGenerateWorldSignal();
}
/**
@@ -308,8 +279,6 @@ void GenerateWorld(GenWorldMode mode, uint size_x, uint size_y, bool reset_setti
_gw.abort = false;
_gw.abortp = nullptr;
_gw.lc = _local_company;
_gw.quit_thread = false;
_gw.threaded = true;
/* This disables some commands and stuff */
SetLocalCompany(COMPANY_SPECTATOR);
@@ -317,6 +286,22 @@ void GenerateWorld(GenWorldMode mode, uint size_x, uint size_y, bool reset_setti
InitializeGame(_gw.size_x, _gw.size_y, true, reset_settings);
PrepareGenerateWorldProgress();
if (_settings_game.construction.map_height_limit == 0) {
uint estimated_height = 0;
if (_gw.mode == GWM_EMPTY && _game_mode != GM_MENU) {
estimated_height = _settings_game.game_creation.se_flat_world_height;
} else if (_gw.mode == GWM_HEIGHTMAP) {
estimated_height = _settings_game.game_creation.heightmap_height;
} else if (_settings_game.game_creation.land_generator == LG_TERRAGENESIS) {
estimated_height = GetEstimationTGPMapHeight();
} else {
estimated_height = 0;
}
_settings_game.construction.map_height_limit = std::max(MAP_HEIGHT_LIMIT_AUTO_MINIMUM, std::min(MAX_MAP_HEIGHT_LIMIT, estimated_height + MAP_HEIGHT_LIMIT_AUTO_CEILING_ROOM));
}
/* Load the right landscape stuff, and the NewGRFs! */
GfxLoadSprites();
LoadStringWidthTable();
@@ -328,28 +313,16 @@ void GenerateWorld(GenWorldMode mode, uint size_x, uint size_y, bool reset_setti
SetupColoursAndInitialWindow();
SetObjectToPlace(SPR_CURSOR_ZZZ, PAL_NONE, HT_NONE, WC_MAIN_WINDOW, 0);
if (_gw.thread.joinable()) _gw.thread.join();
if (!UseThreadedModelProgress() || !VideoDriver::GetInstance()->HasGUI() || !StartNewThread(&_gw.thread, "ottd:genworld", &_GenerateWorld)) {
DEBUG(misc, 1, "Cannot create genworld thread, reverting to single-threaded mode");
_gw.threaded = false;
_modal_progress_work_mutex.unlock();
_GenerateWorld();
_modal_progress_work_mutex.lock();
return;
}
UnshowCriticalError();
/* Remove any open window */
DeleteAllNonVitalWindows();
/* Hide vital windows, because we don't allow to use them */
HideVitalWindows();
/* Don't show the dialog if we don't have a thread */
ShowGenerateWorldProgress();
/* Centre the view on the map */
if (FindWindowById(WC_MAIN_WINDOW, 0) != nullptr) {
ScrollMainWindowToTile(TileXY(MapSizeX() / 2, MapSizeY() / 2), true);
}
_GenerateWorld();
}

View File

@@ -42,25 +42,27 @@ enum TgenSmoothness {
TGEN_SMOOTHNESS_END, ///< Used to iterate.
};
static const uint CUSTOM_TERRAIN_TYPE_NUMBER_DIFFICULTY = 5; ///< Value for custom terrain type in difficulty settings.
static const uint CUSTOM_SEA_LEVEL_NUMBER_DIFFICULTY = 4; ///< Value for custom sea level in difficulty settings.
static const uint CUSTOM_SEA_LEVEL_MIN_PERCENTAGE = 1; ///< Minimum percentage a user can specify for custom sea level.
static const uint CUSTOM_SEA_LEVEL_MAX_PERCENTAGE = 90; ///< Maximum percentage a user can specify for custom sea level.
static const uint MAP_HEIGHT_LIMIT_AUTO_MINIMUM = 30; ///< When map height limit is auto, make this the lowest possible map height limit.
static const uint MAP_HEIGHT_LIMIT_AUTO_CEILING_ROOM = 15; ///< When map height limit is auto, the map height limit will be the higest peak plus this value.
typedef void GWDoneProc(); ///< Procedure called when the genworld process finishes
typedef void GWAbortProc(); ///< Called when genworld is aborted
/** Properties of current genworld process */
struct GenWorldInfo {
bool abort; ///< Whether to abort the thread ASAP
bool quit_thread; ///< Do we want to quit the active thread
bool threaded; ///< Whether we run _GenerateWorld threaded
GenWorldMode mode; ///< What mode are we making a world in
CompanyID lc; ///< The local_company before generating
uint size_x; ///< X-size of the map
uint size_y; ///< Y-size of the map
GWDoneProc *proc; ///< Proc that is called when done (can be nullptr)
GWAbortProc *abortp; ///< Proc that is called when aborting (can be nullptr)
std::thread thread; ///< The thread we are in (joinable if a thread was created)
};
/** Current stage of world generation process */
@@ -81,10 +83,8 @@ enum GenWorldProgress {
};
/* genworld.cpp */
bool IsGenerateWorldThreaded();
void GenerateWorldSetCallback(GWDoneProc *proc);
void GenerateWorldSetAbortCallback(GWAbortProc *proc);
void WaitTillGeneratedWorld();
void GenerateWorld(GenWorldMode mode, uint size_x, uint size_y, bool reset_settings = true);
void AbortGeneratingWorld();
bool IsGeneratingWorldAborted();

View File

@@ -29,6 +29,7 @@
#include "error.h"
#include "newgrf_townname.h"
#include "townname_type.h"
#include "video/video_driver.hpp"
#include "widgets/genworld_widget.h"
@@ -44,6 +45,15 @@ enum GenerateLandscapeWindowMode {
GLWM_SCENARIO, ///< Generate flat land.
};
/**
* Get the map height limit, or if set to "auto", the absolute limit.
*/
static uint GetMapHeightLimit()
{
if (_settings_newgame.construction.map_height_limit == 0) return MAX_MAP_HEIGHT_LIMIT;
return _settings_newgame.construction.map_height_limit;
}
/**
* Changes landscape type and sets genworld window dirty
* @param landscape new landscape type
@@ -109,25 +119,29 @@ static const NWidgetPart _nested_generate_landscape_widgets[] = {
NWidget(NWID_VERTICAL), SetPIP(0, 4, 0),
NWidget(NWID_HORIZONTAL), SetPIP(0, 3, 0),
NWidget(NWID_VERTICAL, NC_EQUALSIZE), SetPIP(0, 4, 0),
NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_MAX_HEIGHTLEVEL, STR_NULL), SetFill(1, 1),
NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_SNOW_LINE_HEIGHT, STR_NULL), SetFill(1, 1),
NWidget(NWID_SELECTION, INVALID_COLOUR, WID_GL_CLIMATE_SEL_LABEL),
NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_SNOW_COVERAGE, STR_NULL), SetFill(1, 1),
NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_DESERT_COVERAGE, STR_NULL), SetFill(1, 1),
EndContainer(),
NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_DATE, STR_NULL), SetFill(1, 1),
NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_SMOOTHNESS, STR_NULL), SetFill(1, 1),
NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_QUANTITY_OF_RIVERS, STR_NULL), SetFill(1, 1),
NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_GAME_OPTIONS_TOWN_NAMES_FRAME, STR_NULL), SetFill(1, 1),
EndContainer(),
NWidget(NWID_VERTICAL, NC_EQUALSIZE), SetPIP(0, 4, 0),
/* Max. heightlevel. */
NWidget(NWID_HORIZONTAL),
NWidget(WWT_IMGBTN, COLOUR_ORANGE, WID_GL_MAX_HEIGHTLEVEL_DOWN), SetDataTip(SPR_ARROW_DOWN, STR_MAPGEN_MAX_HEIGHTLEVEL_DOWN), SetFill(0, 1),
NWidget(WWT_TEXTBTN, COLOUR_ORANGE, WID_GL_MAX_HEIGHTLEVEL_TEXT), SetDataTip(STR_BLACK_INT, STR_NULL), SetFill(1, 0),
NWidget(WWT_IMGBTN, COLOUR_ORANGE, WID_GL_MAX_HEIGHTLEVEL_UP), SetDataTip(SPR_ARROW_UP, STR_MAPGEN_MAX_HEIGHTLEVEL_UP), SetFill(0, 1),
EndContainer(),
/* Snow line. */
NWidget(NWID_HORIZONTAL),
NWidget(WWT_IMGBTN, COLOUR_ORANGE, WID_GL_SNOW_LEVEL_DOWN), SetDataTip(SPR_ARROW_DOWN, STR_MAPGEN_SNOW_LINE_DOWN), SetFill(0, 1),
NWidget(WWT_TEXTBTN, COLOUR_ORANGE, WID_GL_SNOW_LEVEL_TEXT), SetDataTip(STR_BLACK_INT, STR_NULL), SetFill(1, 0),
NWidget(WWT_IMGBTN, COLOUR_ORANGE, WID_GL_SNOW_LEVEL_UP), SetDataTip(SPR_ARROW_UP, STR_MAPGEN_SNOW_LINE_UP), SetFill(0, 1),
NWidget(NWID_SELECTION, INVALID_COLOUR, WID_GL_CLIMATE_SEL_SELECTOR),
/* Snow coverage. */
NWidget(NWID_HORIZONTAL),
NWidget(WWT_IMGBTN, COLOUR_ORANGE, WID_GL_SNOW_COVERAGE_DOWN), SetDataTip(SPR_ARROW_DOWN, STR_MAPGEN_SNOW_COVERAGE_DOWN), SetFill(0, 1),
NWidget(WWT_TEXTBTN, COLOUR_ORANGE, WID_GL_SNOW_COVERAGE_TEXT), SetDataTip(STR_MAPGEN_SNOW_COVERAGE_TEXT, STR_NULL), SetFill(1, 0),
NWidget(WWT_IMGBTN, COLOUR_ORANGE, WID_GL_SNOW_COVERAGE_UP), SetDataTip(SPR_ARROW_UP, STR_MAPGEN_SNOW_COVERAGE_UP), SetFill(0, 1),
EndContainer(),
/* Desert coverage. */
NWidget(NWID_HORIZONTAL),
NWidget(WWT_IMGBTN, COLOUR_ORANGE, WID_GL_DESERT_COVERAGE_DOWN), SetDataTip(SPR_ARROW_DOWN, STR_MAPGEN_DESERT_COVERAGE_DOWN), SetFill(0, 1),
NWidget(WWT_TEXTBTN, COLOUR_ORANGE, WID_GL_DESERT_COVERAGE_TEXT), SetDataTip(STR_MAPGEN_DESERT_COVERAGE_TEXT, STR_NULL), SetFill(1, 0),
NWidget(WWT_IMGBTN, COLOUR_ORANGE, WID_GL_DESERT_COVERAGE_UP), SetDataTip(SPR_ARROW_UP, STR_MAPGEN_DESERT_COVERAGE_UP), SetFill(0, 1),
EndContainer(),
EndContainer(),
/* Starting date. */
NWidget(NWID_HORIZONTAL),
@@ -226,21 +240,31 @@ static const NWidgetPart _nested_heightmap_load_widgets[] = {
NWidget(NWID_VERTICAL), SetPIP(0, 4, 0),
NWidget(NWID_HORIZONTAL), SetPIP(0, 3, 0),
NWidget(NWID_VERTICAL, NC_EQUALSIZE), SetPIP(0, 4, 0),
NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_MAX_HEIGHTLEVEL, STR_NULL), SetFill(1, 1),
NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_SNOW_LINE_HEIGHT, STR_NULL), SetFill(1, 1),
NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_HEIGHTMAP_HEIGHT, STR_NULL), SetFill(1, 1),
NWidget(NWID_SELECTION, INVALID_COLOUR, WID_GL_CLIMATE_SEL_LABEL),
NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_SNOW_COVERAGE, STR_NULL), SetFill(1, 1),
NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_DESERT_COVERAGE, STR_NULL), SetFill(1, 1),
EndContainer(),
NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_DATE, STR_NULL), SetFill(1, 1),
NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_GAME_OPTIONS_TOWN_NAMES_FRAME, STR_NULL), SetFill(1, 1),
EndContainer(),
NWidget(NWID_VERTICAL, NC_EQUALSIZE), SetPIP(0, 4, 0),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_IMGBTN, COLOUR_ORANGE, WID_GL_MAX_HEIGHTLEVEL_DOWN), SetDataTip(SPR_ARROW_DOWN, STR_MAPGEN_MAX_HEIGHTLEVEL_DOWN), SetFill(0, 1),
NWidget(WWT_TEXTBTN, COLOUR_ORANGE, WID_GL_MAX_HEIGHTLEVEL_TEXT), SetDataTip(STR_BLACK_INT, STR_NULL), SetFill(1, 0),
NWidget(WWT_IMGBTN, COLOUR_ORANGE, WID_GL_MAX_HEIGHTLEVEL_UP), SetDataTip(SPR_ARROW_UP, STR_MAPGEN_MAX_HEIGHTLEVEL_UP), SetFill(0, 1),
NWidget(WWT_IMGBTN, COLOUR_ORANGE, WID_GL_HEIGHTMAP_HEIGHT_DOWN), SetDataTip(SPR_ARROW_DOWN, STR_MAPGEN_HEIGHTMAP_HEIGHT_DOWN), SetFill(0, 1),
NWidget(WWT_TEXTBTN, COLOUR_ORANGE, WID_GL_HEIGHTMAP_HEIGHT_TEXT), SetDataTip(STR_BLACK_INT, STR_NULL), SetFill(1, 0),
NWidget(WWT_IMGBTN, COLOUR_ORANGE, WID_GL_HEIGHTMAP_HEIGHT_UP), SetDataTip(SPR_ARROW_UP, STR_MAPGEN_HEIGHTMAP_HEIGHT_UP), SetFill(0, 1),
EndContainer(),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_IMGBTN, COLOUR_ORANGE, WID_GL_SNOW_LEVEL_DOWN), SetDataTip(SPR_ARROW_DOWN, STR_MAPGEN_SNOW_LINE_DOWN), SetFill(0, 1),
NWidget(WWT_TEXTBTN, COLOUR_ORANGE, WID_GL_SNOW_LEVEL_TEXT), SetDataTip(STR_BLACK_INT, STR_NULL), SetFill(1, 0),
NWidget(WWT_IMGBTN, COLOUR_ORANGE, WID_GL_SNOW_LEVEL_UP), SetDataTip(SPR_ARROW_UP, STR_MAPGEN_SNOW_LINE_UP), SetFill(0, 1),
NWidget(NWID_SELECTION, INVALID_COLOUR, WID_GL_CLIMATE_SEL_SELECTOR),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_IMGBTN, COLOUR_ORANGE, WID_GL_SNOW_COVERAGE_DOWN), SetDataTip(SPR_ARROW_DOWN, STR_MAPGEN_SNOW_COVERAGE_DOWN), SetFill(0, 1),
NWidget(WWT_TEXTBTN, COLOUR_ORANGE, WID_GL_SNOW_COVERAGE_TEXT), SetDataTip(STR_MAPGEN_SNOW_COVERAGE_TEXT, STR_NULL), SetFill(1, 0),
NWidget(WWT_IMGBTN, COLOUR_ORANGE, WID_GL_SNOW_COVERAGE_UP), SetDataTip(SPR_ARROW_UP, STR_MAPGEN_SNOW_COVERAGE_UP), SetFill(0, 1),
EndContainer(),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_IMGBTN, COLOUR_ORANGE, WID_GL_DESERT_COVERAGE_DOWN), SetDataTip(SPR_ARROW_DOWN, STR_MAPGEN_DESERT_COVERAGE_DOWN), SetFill(0, 1),
NWidget(WWT_TEXTBTN, COLOUR_ORANGE, WID_GL_DESERT_COVERAGE_TEXT), SetDataTip(STR_MAPGEN_DESERT_COVERAGE_TEXT, STR_NULL), SetFill(1, 0),
NWidget(WWT_IMGBTN, COLOUR_ORANGE, WID_GL_DESERT_COVERAGE_UP), SetDataTip(SPR_ARROW_UP, STR_MAPGEN_DESERT_COVERAGE_UP), SetFill(0, 1),
EndContainer(),
EndContainer(),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_IMGBTN, COLOUR_ORANGE, WID_GL_START_DATE_DOWN), SetDataTip(SPR_ARROW_DOWN, STR_SCENEDIT_TOOLBAR_TOOLTIP_MOVE_THE_STARTING_DATE_BACKWARD), SetFill(0, 1),
@@ -323,7 +347,7 @@ static DropDownList BuildTownNameDropDown()
}
static const StringID _elevations[] = {STR_TERRAIN_TYPE_VERY_FLAT, STR_TERRAIN_TYPE_FLAT, STR_TERRAIN_TYPE_HILLY, STR_TERRAIN_TYPE_MOUNTAINOUS, STR_TERRAIN_TYPE_ALPINIST, INVALID_STRING_ID};
static const StringID _elevations[] = {STR_TERRAIN_TYPE_VERY_FLAT, STR_TERRAIN_TYPE_FLAT, STR_TERRAIN_TYPE_HILLY, STR_TERRAIN_TYPE_MOUNTAINOUS, STR_TERRAIN_TYPE_ALPINIST, STR_TERRAIN_TYPE_CUSTOM, INVALID_STRING_ID};
static const StringID _sea_lakes[] = {STR_SEA_LEVEL_VERY_LOW, STR_SEA_LEVEL_LOW, STR_SEA_LEVEL_MEDIUM, STR_SEA_LEVEL_HIGH, STR_SEA_LEVEL_CUSTOM, INVALID_STRING_ID};
static const StringID _rivers[] = {STR_RIVERS_NONE, STR_RIVERS_FEW, STR_RIVERS_MODERATE, STR_RIVERS_LOT, INVALID_STRING_ID};
static const StringID _smoothness[] = {STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH, STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_SMOOTH, STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_ROUGH, STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_ROUGH, INVALID_STRING_ID};
@@ -354,6 +378,10 @@ struct GenerateLandscapeWindow : public Window {
this->SetWidgetDisabledState(WID_GL_TOWN_PULLDOWN, _game_mode == GM_EDITOR);
this->SetWidgetDisabledState(WID_GL_INDUSTRY_PULLDOWN, _game_mode == GM_EDITOR);
/* In case the map_height_limit is changed, clamp heightmap_height and custom_terrain_type. */
_settings_newgame.game_creation.heightmap_height = Clamp(_settings_newgame.game_creation.heightmap_height, MIN_HEIGHTMAP_HEIGHT, GetMapHeightLimit());
_settings_newgame.game_creation.custom_terrain_type = Clamp(_settings_newgame.game_creation.custom_terrain_type, MIN_CUSTOM_TERRAIN_TYPE, GetMapHeightLimit());
this->OnInvalidateData();
}
@@ -364,8 +392,9 @@ struct GenerateLandscapeWindow : public Window {
case WID_GL_START_DATE_TEXT: SetDParam(0, ConvertYMDToDate(_settings_newgame.game_creation.starting_year, 0, 1)); break;
case WID_GL_MAPSIZE_X_PULLDOWN: SetDParam(0, 1LL << _settings_newgame.game_creation.map_x); break;
case WID_GL_MAPSIZE_Y_PULLDOWN: SetDParam(0, 1LL << _settings_newgame.game_creation.map_y); break;
case WID_GL_MAX_HEIGHTLEVEL_TEXT: SetDParam(0, _settings_newgame.construction.max_heightlevel); break;
case WID_GL_SNOW_LEVEL_TEXT: SetDParam(0, _settings_newgame.game_creation.snow_line_height); break;
case WID_GL_HEIGHTMAP_HEIGHT_TEXT: SetDParam(0, _settings_newgame.game_creation.heightmap_height); break;
case WID_GL_SNOW_COVERAGE_TEXT: SetDParam(0, _settings_newgame.game_creation.snow_coverage); break;
case WID_GL_DESERT_COVERAGE_TEXT: SetDParam(0, _settings_newgame.game_creation.desert_coverage); break;
case WID_GL_TOWN_PULLDOWN:
if (_game_mode == GM_EDITOR) {
@@ -389,7 +418,14 @@ struct GenerateLandscapeWindow : public Window {
case WID_GL_INDUSTRY_PULLDOWN: SetDParam(0, _game_mode == GM_EDITOR ? STR_CONFIG_SETTING_OFF : _num_inds[_settings_newgame.difficulty.industry_density]); break;
case WID_GL_LANDSCAPE_PULLDOWN: SetDParam(0, _landscape[_settings_newgame.game_creation.land_generator]); break;
case WID_GL_TERRAIN_PULLDOWN: SetDParam(0, _elevations[_settings_newgame.difficulty.terrain_type]); break;
case WID_GL_TERRAIN_PULLDOWN:
if (_settings_newgame.difficulty.terrain_type == CUSTOM_TERRAIN_TYPE_NUMBER_DIFFICULTY) {
SetDParam(0, STR_TERRAIN_TYPE_CUSTOM_VALUE);
SetDParam(1, _settings_newgame.game_creation.custom_terrain_type);
} else {
SetDParam(0, _elevations[_settings_newgame.difficulty.terrain_type]); break;
}
break;
case WID_GL_WATER_PULLDOWN:
if (_settings_newgame.difficulty.quantity_sea_lakes == CUSTOM_SEA_LEVEL_NUMBER_DIFFICULTY) {
@@ -456,20 +492,41 @@ struct GenerateLandscapeWindow : public Window {
}
/* Disable snowline if not arctic */
this->SetWidgetDisabledState(WID_GL_SNOW_LEVEL_TEXT, _settings_newgame.game_creation.landscape != LT_ARCTIC);
this->SetWidgetDisabledState(WID_GL_SNOW_COVERAGE_TEXT, _settings_newgame.game_creation.landscape != LT_ARCTIC);
/* Disable desert if not tropic */
this->SetWidgetDisabledState(WID_GL_DESERT_COVERAGE_TEXT, _settings_newgame.game_creation.landscape != LT_TROPIC);
/* Set snow/rainforest selections */
int climate_plane = 0;
switch (_settings_newgame.game_creation.landscape) {
case LT_TEMPERATE: climate_plane = SZSP_VERTICAL; break;
case LT_ARCTIC: climate_plane = 0; break;
case LT_TROPIC: climate_plane = 1; break;
case LT_TOYLAND: climate_plane = SZSP_VERTICAL; break;
}
this->GetWidget<NWidgetStacked>(WID_GL_CLIMATE_SEL_LABEL)->SetDisplayedPlane(climate_plane);
this->GetWidget<NWidgetStacked>(WID_GL_CLIMATE_SEL_SELECTOR)->SetDisplayedPlane(climate_plane);
/* Update availability of decreasing / increasing start date and snow level */
this->SetWidgetDisabledState(WID_GL_MAX_HEIGHTLEVEL_DOWN, _settings_newgame.construction.max_heightlevel <= MIN_MAX_HEIGHTLEVEL);
this->SetWidgetDisabledState(WID_GL_MAX_HEIGHTLEVEL_UP, _settings_newgame.construction.max_heightlevel >= MAX_MAX_HEIGHTLEVEL);
if (mode == GLWM_HEIGHTMAP) {
this->SetWidgetDisabledState(WID_GL_HEIGHTMAP_HEIGHT_DOWN, _settings_newgame.game_creation.heightmap_height <= MIN_HEIGHTMAP_HEIGHT);
this->SetWidgetDisabledState(WID_GL_HEIGHTMAP_HEIGHT_UP, _settings_newgame.game_creation.heightmap_height >= GetMapHeightLimit());
}
this->SetWidgetDisabledState(WID_GL_START_DATE_DOWN, _settings_newgame.game_creation.starting_year <= MIN_YEAR);
this->SetWidgetDisabledState(WID_GL_START_DATE_UP, _settings_newgame.game_creation.starting_year >= MAX_YEAR);
this->SetWidgetDisabledState(WID_GL_SNOW_LEVEL_DOWN, _settings_newgame.game_creation.snow_line_height <= MIN_SNOWLINE_HEIGHT || _settings_newgame.game_creation.landscape != LT_ARCTIC);
this->SetWidgetDisabledState(WID_GL_SNOW_LEVEL_UP, _settings_newgame.game_creation.snow_line_height >= MAX_SNOWLINE_HEIGHT || _settings_newgame.game_creation.landscape != LT_ARCTIC);
this->SetWidgetDisabledState(WID_GL_SNOW_COVERAGE_DOWN, _settings_newgame.game_creation.snow_coverage <= 0 || _settings_newgame.game_creation.landscape != LT_ARCTIC);
this->SetWidgetDisabledState(WID_GL_SNOW_COVERAGE_UP, _settings_newgame.game_creation.snow_coverage >= 100 || _settings_newgame.game_creation.landscape != LT_ARCTIC);
this->SetWidgetDisabledState(WID_GL_DESERT_COVERAGE_DOWN, _settings_newgame.game_creation.desert_coverage <= 0 || _settings_newgame.game_creation.landscape != LT_TROPIC);
this->SetWidgetDisabledState(WID_GL_DESERT_COVERAGE_UP, _settings_newgame.game_creation.desert_coverage >= 100 || _settings_newgame.game_creation.landscape != LT_TROPIC);
/* Do not allow a custom sea level with the original land generator. */
if (_settings_newgame.game_creation.land_generator == LG_ORIGINAL &&
_settings_newgame.difficulty.quantity_sea_lakes == CUSTOM_SEA_LEVEL_NUMBER_DIFFICULTY) {
_settings_newgame.difficulty.quantity_sea_lakes = CUSTOM_SEA_LEVEL_MIN_PERCENTAGE;
/* Do not allow a custom sea level or terrain type with the original land generator. */
if (_settings_newgame.game_creation.land_generator == LG_ORIGINAL) {
if (_settings_newgame.difficulty.quantity_sea_lakes == CUSTOM_SEA_LEVEL_NUMBER_DIFFICULTY) {
_settings_newgame.difficulty.quantity_sea_lakes = 1;
}
if (_settings_newgame.difficulty.terrain_type == CUSTOM_TERRAIN_TYPE_NUMBER_DIFFICULTY) {
_settings_newgame.difficulty.terrain_type = 1;
}
}
}
@@ -478,7 +535,7 @@ struct GenerateLandscapeWindow : public Window {
{
const StringID *strs = nullptr;
switch (widget) {
case WID_GL_MAX_HEIGHTLEVEL_TEXT:
case WID_GL_HEIGHTMAP_HEIGHT_TEXT:
SetDParam(0, MAX_TILE_HEIGHT);
*size = GetStringBoundingBox(STR_JUST_INT);
break;
@@ -494,9 +551,14 @@ struct GenerateLandscapeWindow : public Window {
*size = maxdim(*size, GetStringBoundingBox(STR_JUST_INT));
break;
case WID_GL_SNOW_LEVEL_TEXT:
case WID_GL_SNOW_COVERAGE_TEXT:
SetDParamMaxValue(0, MAX_TILE_HEIGHT);
*size = maxdim(*size, GetStringBoundingBox(STR_JUST_INT));
*size = maxdim(*size, GetStringBoundingBox(STR_MAPGEN_SNOW_COVERAGE_TEXT));
break;
case WID_GL_DESERT_COVERAGE_TEXT:
SetDParamMaxValue(0, MAX_TILE_HEIGHT);
*size = maxdim(*size, GetStringBoundingBox(STR_MAPGEN_DESERT_COVERAGE_TEXT));
break;
case WID_GL_HEIGHTMAP_SIZE_TEXT:
@@ -513,7 +575,13 @@ struct GenerateLandscapeWindow : public Window {
case WID_GL_INDUSTRY_PULLDOWN: strs = _num_inds; break;
case WID_GL_LANDSCAPE_PULLDOWN: strs = _landscape; break;
case WID_GL_TERRAIN_PULLDOWN: strs = _elevations; break;
case WID_GL_TERRAIN_PULLDOWN:
strs = _elevations;
SetDParamMaxValue(0, MAX_MAP_HEIGHT_LIMIT);
*size = maxdim(*size, GetStringBoundingBox(STR_TERRAIN_TYPE_CUSTOM_VALUE));
break;
case WID_GL_WATER_PULLDOWN:
strs = _sea_lakes;
SetDParamMaxValue(0, CUSTOM_SEA_LEVEL_MAX_PERCENTAGE);
@@ -618,22 +686,22 @@ struct GenerateLandscapeWindow : public Window {
break;
}
case WID_GL_MAX_HEIGHTLEVEL_DOWN:
case WID_GL_MAX_HEIGHTLEVEL_UP: // Height level buttons
case WID_GL_HEIGHTMAP_HEIGHT_DOWN:
case WID_GL_HEIGHTMAP_HEIGHT_UP: // Height level buttons
/* Don't allow too fast scrolling */
if (!(this->flags & WF_TIMEOUT) || this->timeout_timer <= 1) {
this->HandleButtonClick(widget);
_settings_newgame.construction.max_heightlevel = Clamp(_settings_newgame.construction.max_heightlevel + widget - WID_GL_MAX_HEIGHTLEVEL_TEXT, MIN_MAX_HEIGHTLEVEL, MAX_MAX_HEIGHTLEVEL);
_settings_newgame.game_creation.heightmap_height = Clamp(_settings_newgame.game_creation.heightmap_height + widget - WID_GL_HEIGHTMAP_HEIGHT_TEXT, MIN_HEIGHTMAP_HEIGHT, GetMapHeightLimit());
this->InvalidateData();
}
_left_button_clicked = false;
break;
case WID_GL_MAX_HEIGHTLEVEL_TEXT: // Height level text
this->widget_id = WID_GL_MAX_HEIGHTLEVEL_TEXT;
SetDParam(0, _settings_newgame.construction.max_heightlevel);
ShowQueryString(STR_JUST_INT, STR_MAPGEN_MAX_HEIGHTLEVEL_QUERY_CAPT, 4, this, CS_NUMERAL, QSF_ENABLE_DEFAULT);
case WID_GL_HEIGHTMAP_HEIGHT_TEXT: // Height level text
this->widget_id = WID_GL_HEIGHTMAP_HEIGHT_TEXT;
SetDParam(0, _settings_newgame.game_creation.heightmap_height);
ShowQueryString(STR_JUST_INT, STR_MAPGEN_HEIGHTMAP_HEIGHT_QUERY_CAPT, 4, this, CS_NUMERAL, QSF_ENABLE_DEFAULT);
break;
@@ -655,22 +723,40 @@ struct GenerateLandscapeWindow : public Window {
ShowQueryString(STR_JUST_INT, STR_MAPGEN_START_DATE_QUERY_CAPT, 8, this, CS_NUMERAL, QSF_ENABLE_DEFAULT);
break;
case WID_GL_SNOW_LEVEL_DOWN:
case WID_GL_SNOW_LEVEL_UP: // Snow line buttons
case WID_GL_SNOW_COVERAGE_DOWN:
case WID_GL_SNOW_COVERAGE_UP: // Snow coverage buttons
/* Don't allow too fast scrolling */
if (!(this->flags & WF_TIMEOUT) || this->timeout_timer <= 1) {
this->HandleButtonClick(widget);
_settings_newgame.game_creation.snow_line_height = Clamp(_settings_newgame.game_creation.snow_line_height + widget - WID_GL_SNOW_LEVEL_TEXT, MIN_SNOWLINE_HEIGHT, MAX_SNOWLINE_HEIGHT);
_settings_newgame.game_creation.snow_coverage = Clamp(_settings_newgame.game_creation.snow_coverage + (widget - WID_GL_SNOW_COVERAGE_TEXT) * 10, 0, 100);
this->InvalidateData();
}
_left_button_clicked = false;
break;
case WID_GL_SNOW_LEVEL_TEXT: // Snow line text
this->widget_id = WID_GL_SNOW_LEVEL_TEXT;
SetDParam(0, _settings_newgame.game_creation.snow_line_height);
ShowQueryString(STR_JUST_INT, STR_MAPGEN_SNOW_LINE_QUERY_CAPT, 4, this, CS_NUMERAL, QSF_ENABLE_DEFAULT);
case WID_GL_SNOW_COVERAGE_TEXT: // Snow coverage text
this->widget_id = WID_GL_SNOW_COVERAGE_TEXT;
SetDParam(0, _settings_newgame.game_creation.snow_coverage);
ShowQueryString(STR_JUST_INT, STR_MAPGEN_SNOW_COVERAGE_QUERY_CAPT, 4, this, CS_NUMERAL, QSF_ENABLE_DEFAULT);
break;
case WID_GL_DESERT_COVERAGE_DOWN:
case WID_GL_DESERT_COVERAGE_UP: // Desert coverage buttons
/* Don't allow too fast scrolling */
if (!(this->flags & WF_TIMEOUT) || this->timeout_timer <= 1) {
this->HandleButtonClick(widget);
_settings_newgame.game_creation.desert_coverage = Clamp(_settings_newgame.game_creation.desert_coverage + (widget - WID_GL_DESERT_COVERAGE_TEXT) * 10, 0, 100);
this->InvalidateData();
}
_left_button_clicked = false;
break;
case WID_GL_DESERT_COVERAGE_TEXT: // Desert line text
this->widget_id = WID_GL_DESERT_COVERAGE_TEXT;
SetDParam(0, _settings_newgame.game_creation.desert_coverage);
ShowQueryString(STR_JUST_INT, STR_MAPGEN_DESERT_COVERAGE_QUERY_CAPT, 4, this, CS_NUMERAL, QSF_ENABLE_DEFAULT);
break;
case WID_GL_LANDSCAPE_PULLDOWN: // Landscape generator
@@ -738,8 +824,12 @@ struct GenerateLandscapeWindow : public Window {
void OnTimeout() override
{
static const int raise_widgets[] = {WID_GL_MAX_HEIGHTLEVEL_DOWN, WID_GL_MAX_HEIGHTLEVEL_UP, WID_GL_START_DATE_DOWN, WID_GL_START_DATE_UP, WID_GL_SNOW_LEVEL_UP, WID_GL_SNOW_LEVEL_DOWN, WIDGET_LIST_END};
for (const int *widget = raise_widgets; *widget != WIDGET_LIST_END; widget++) {
static const int newgame_raise_widgets[] = {WID_GL_START_DATE_DOWN, WID_GL_START_DATE_UP, WID_GL_SNOW_COVERAGE_UP, WID_GL_SNOW_COVERAGE_DOWN, WID_GL_DESERT_COVERAGE_UP, WID_GL_DESERT_COVERAGE_DOWN, WIDGET_LIST_END};
static const int heightmap_raise_widgets[] = {WID_GL_HEIGHTMAP_HEIGHT_DOWN, WID_GL_HEIGHTMAP_HEIGHT_UP, WID_GL_START_DATE_DOWN, WID_GL_START_DATE_UP, WID_GL_SNOW_COVERAGE_UP, WID_GL_SNOW_COVERAGE_DOWN, WID_GL_DESERT_COVERAGE_UP, WID_GL_DESERT_COVERAGE_DOWN, WIDGET_LIST_END};
const int *widget = (mode == GLWM_HEIGHTMAP) ? heightmap_raise_widgets : newgame_raise_widgets;
for (; *widget != WIDGET_LIST_END; widget++) {
if (this->IsWidgetLowered(*widget)) {
this->RaiseWidget(*widget);
this->SetWidgetDirty(*widget);
@@ -782,7 +872,15 @@ struct GenerateLandscapeWindow : public Window {
break;
case WID_GL_INDUSTRY_PULLDOWN: _settings_newgame.difficulty.industry_density = index; break;
case WID_GL_TERRAIN_PULLDOWN: _settings_newgame.difficulty.terrain_type = index; break;
case WID_GL_TERRAIN_PULLDOWN: {
if ((uint)index == CUSTOM_TERRAIN_TYPE_NUMBER_DIFFICULTY) {
this->widget_id = widget;
SetDParam(0, _settings_newgame.game_creation.custom_terrain_type);
ShowQueryString(STR_JUST_INT, STR_MAPGEN_TERRAIN_TYPE_QUERY_CAPT, 4, this, CS_NUMERAL, QSF_NONE);
}
_settings_newgame.difficulty.terrain_type = index;
break;
}
case WID_GL_WATER_PULLDOWN: {
if ((uint)index == CUSTOM_SEA_LEVEL_NUMBER_DIFFICULTY) {
@@ -808,19 +906,21 @@ struct GenerateLandscapeWindow : public Window {
} else {
/* An empty string means revert to the default */
switch (this->widget_id) {
case WID_GL_MAX_HEIGHTLEVEL_TEXT: value = DEF_MAX_HEIGHTLEVEL; break;
case WID_GL_HEIGHTMAP_HEIGHT_TEXT: value = MAP_HEIGHT_LIMIT_AUTO_MINIMUM; break;
case WID_GL_START_DATE_TEXT: value = DEF_START_YEAR; break;
case WID_GL_SNOW_LEVEL_TEXT: value = DEF_SNOWLINE_HEIGHT; break;
case WID_GL_TOWN_PULLDOWN: value = 1; break;
case WID_GL_WATER_PULLDOWN: value = CUSTOM_SEA_LEVEL_MIN_PERCENTAGE; break;
case WID_GL_SNOW_COVERAGE_TEXT: value = DEF_SNOW_COVERAGE; break;
case WID_GL_DESERT_COVERAGE_TEXT: value = DEF_DESERT_COVERAGE; break;
case WID_GL_TOWN_PULLDOWN: value = 1; break;
case WID_GL_TERRAIN_PULLDOWN: value = MIN_MAP_HEIGHT_LIMIT; break;
case WID_GL_WATER_PULLDOWN: value = CUSTOM_SEA_LEVEL_MIN_PERCENTAGE; break;
default: NOT_REACHED();
}
}
switch (this->widget_id) {
case WID_GL_MAX_HEIGHTLEVEL_TEXT:
this->SetWidgetDirty(WID_GL_MAX_HEIGHTLEVEL_TEXT);
_settings_newgame.construction.max_heightlevel = Clamp(value, MIN_MAX_HEIGHTLEVEL, MAX_MAX_HEIGHTLEVEL);
case WID_GL_HEIGHTMAP_HEIGHT_TEXT:
this->SetWidgetDirty(WID_GL_HEIGHTMAP_HEIGHT_TEXT);
_settings_newgame.game_creation.heightmap_height = Clamp(value, MIN_HEIGHTMAP_HEIGHT, GetMapHeightLimit());
break;
case WID_GL_START_DATE_TEXT:
@@ -828,15 +928,24 @@ struct GenerateLandscapeWindow : public Window {
_settings_newgame.game_creation.starting_year = Clamp(value, MIN_YEAR, MAX_YEAR);
break;
case WID_GL_SNOW_LEVEL_TEXT:
this->SetWidgetDirty(WID_GL_SNOW_LEVEL_TEXT);
_settings_newgame.game_creation.snow_line_height = Clamp(value, MIN_SNOWLINE_HEIGHT, MAX_SNOWLINE_HEIGHT);
case WID_GL_SNOW_COVERAGE_TEXT:
this->SetWidgetDirty(WID_GL_SNOW_COVERAGE_TEXT);
_settings_newgame.game_creation.snow_coverage = Clamp(value, 0, 100);
break;
case WID_GL_DESERT_COVERAGE_TEXT:
this->SetWidgetDirty(WID_GL_DESERT_COVERAGE_TEXT);
_settings_newgame.game_creation.desert_coverage = Clamp(value, 0, 100);
break;
case WID_GL_TOWN_PULLDOWN:
_settings_newgame.game_creation.custom_town_number = Clamp(value, 1, CUSTOM_TOWN_MAX_NUMBER);
break;
case WID_GL_TERRAIN_PULLDOWN:
_settings_newgame.game_creation.custom_terrain_type = Clamp(value, MIN_CUSTOM_TERRAIN_TYPE, GetMapHeightLimit());
break;
case WID_GL_WATER_PULLDOWN:
_settings_newgame.game_creation.custom_sea_level = Clamp(value, CUSTOM_SEA_LEVEL_MIN_PERCENTAGE, CUSTOM_SEA_LEVEL_MAX_PERCENTAGE);
break;
@@ -953,7 +1062,7 @@ struct CreateScenarioWindow : public Window
this->SetWidgetDisabledState(WID_CS_START_DATE_DOWN, _settings_newgame.game_creation.starting_year <= MIN_YEAR);
this->SetWidgetDisabledState(WID_CS_START_DATE_UP, _settings_newgame.game_creation.starting_year >= MAX_YEAR);
this->SetWidgetDisabledState(WID_CS_FLAT_LAND_HEIGHT_DOWN, _settings_newgame.game_creation.se_flat_world_height <= 0);
this->SetWidgetDisabledState(WID_CS_FLAT_LAND_HEIGHT_UP, _settings_newgame.game_creation.se_flat_world_height >= MAX_TILE_HEIGHT);
this->SetWidgetDisabledState(WID_CS_FLAT_LAND_HEIGHT_UP, _settings_newgame.game_creation.se_flat_world_height >= GetMapHeightLimit());
this->SetWidgetLoweredState(WID_CS_TEMPERATE, _settings_newgame.game_creation.landscape == LT_TEMPERATE);
this->SetWidgetLoweredState(WID_CS_ARCTIC, _settings_newgame.game_creation.landscape == LT_ARCTIC);
@@ -1041,7 +1150,7 @@ struct CreateScenarioWindow : public Window
this->HandleButtonClick(widget);
this->SetDirty();
_settings_newgame.game_creation.se_flat_world_height = Clamp(_settings_newgame.game_creation.se_flat_world_height + widget - WID_CS_FLAT_LAND_HEIGHT_TEXT, 0, _settings_game.construction.max_heightlevel);
_settings_newgame.game_creation.se_flat_world_height = Clamp(_settings_newgame.game_creation.se_flat_world_height + widget - WID_CS_FLAT_LAND_HEIGHT_TEXT, 0, GetMapHeightLimit());
}
_left_button_clicked = false;
break;
@@ -1087,7 +1196,7 @@ struct CreateScenarioWindow : public Window
case WID_CS_FLAT_LAND_HEIGHT_TEXT:
this->SetWidgetDirty(WID_CS_FLAT_LAND_HEIGHT_TEXT);
_settings_newgame.game_creation.se_flat_world_height = Clamp(value, 0, _settings_game.construction.max_heightlevel);
_settings_newgame.game_creation.se_flat_world_height = Clamp(value, 0, GetMapHeightLimit());
break;
}
@@ -1312,10 +1421,16 @@ static void _SetGeneratingWorldProgress(GenWorldProgress cls, uint progress, uin
static_assert(lengthof(percent_table) == GWP_CLASS_COUNT + 1);
assert(cls < GWP_CLASS_COUNT);
/* Do not run this function if we aren't in a thread */
if (!IsGenerateWorldThreaded() && !_network_dedicated) return;
/* Check if we really are generating the world.
* For example, placing trees via the SE also calls this function, but
* shouldn't try to update the progress.
*/
if (!HasModalProgress()) return;
if (IsGeneratingWorldAborted()) HandleGeneratingWorldAbortion();
if (IsGeneratingWorldAborted()) {
HandleGeneratingWorldAbortion();
return;
}
if (total == 0) {
assert(_gws.cls == _generation_class_table[cls]);
@@ -1328,10 +1443,6 @@ static void _SetGeneratingWorldProgress(GenWorldProgress cls, uint progress, uin
_gws.percent = percent_table[cls];
}
/* Don't update the screen too often. So update it once in every once in a while... */
if (!_network_dedicated && std::chrono::steady_clock::now() < _gws.next_update) return;
_gws.next_update = std::chrono::steady_clock::now() + std::chrono::milliseconds(MODAL_PROGRESS_REDRAW_TIMEOUT);
/* Percentage is about the number of completed tasks, so 'current - 1' */
_gws.percent = percent_table[cls] + (percent_table[cls + 1] - percent_table[cls]) * (_gws.current == 0 ? 0 : _gws.current - 1) / _gws.total;
@@ -1350,21 +1461,12 @@ static void _SetGeneratingWorldProgress(GenWorldProgress cls, uint progress, uin
DEBUG(net, 1, "Map generation percentage complete: %d", _gws.percent);
last_percent = _gws.percent;
/* Don't continue as dedicated never has a thread running */
return;
}
SetWindowDirty(WC_MODAL_PROGRESS, 0);
MarkWholeScreenDirty();
/* Release the rights to the map generator, and acquire the rights to the
* paint thread. The 'other' thread already has the paint thread rights so
* this ensures us that we are waiting until the paint thread is done
* before we reacquire the mapgen rights */
_modal_progress_work_mutex.unlock();
_modal_progress_paint_mutex.lock();
_modal_progress_work_mutex.lock();
_modal_progress_paint_mutex.unlock();
VideoDriver::GetInstance()->GameLoopPause();
}
/**

View File

@@ -1470,28 +1470,6 @@ void DrawDirtyBlocks()
int x;
int y;
if (HasModalProgress()) {
/* We are generating the world, so release our rights to the map and
* painting while we are waiting a bit. */
_modal_progress_paint_mutex.unlock();
_modal_progress_work_mutex.unlock();
/* Wait a while and hope the modal gives us a bit of time to draw the GUI. */
if (!IsFirstModalProgressLoop()) CSleep(MODAL_PROGRESS_REDRAW_TIMEOUT);
/* Modal progress thread may need blitter access while we are waiting for it. */
VideoDriver::GetInstance()->ReleaseBlitterLock();
_modal_progress_paint_mutex.lock();
VideoDriver::GetInstance()->AcquireBlitterLock();
_modal_progress_work_mutex.lock();
/* When we ended with the modal progress, do not draw the blocks.
* Simply let the next run do so, otherwise we would be loading
* the new state (and possibly change the blitter) when we hold
* the drawing lock, which we must not do. */
if (_switch_mode != SM_NONE && !HasModalProgress()) return;
}
y = 0;
do {
x = 0;
@@ -1895,6 +1873,10 @@ void UpdateGUIZoom()
if (_gui_zoom_cfg == ZOOM_LVL_CFG_AUTO) {
_gui_zoom = static_cast<ZoomLevel>(Clamp(VideoDriver::GetInstance()->GetSuggestedUIZoom(), _settings_client.gui.zoom_min, _settings_client.gui.zoom_max));
} else {
/* Ensure the gui_zoom is clamped between min/max. Change the
* _gui_zoom_cfg if it isn't, as this is used to visually show the
* selection in the Game Options. */
_gui_zoom_cfg = Clamp(_gui_zoom_cfg, _settings_client.gui.zoom_min, _settings_client.gui.zoom_max);
_gui_zoom = static_cast<ZoomLevel>(_gui_zoom_cfg);
}

View File

@@ -244,6 +244,28 @@ static void LoadSpriteTables()
}
static void RealChangeBlitter(const char *repl_blitter)
{
const char *cur_blitter = BlitterFactory::GetCurrentBlitter()->GetName();
if (strcmp(cur_blitter, repl_blitter) == 0) return;
DEBUG(driver, 1, "Switching blitter from '%s' to '%s'... ", cur_blitter, repl_blitter);
Blitter *new_blitter = BlitterFactory::SelectBlitter(repl_blitter);
if (new_blitter == nullptr) NOT_REACHED();
DEBUG(driver, 1, "Successfully switched to %s.", repl_blitter);
if (!VideoDriver::GetInstance()->AfterBlitterChange()) {
/* Failed to switch blitter, let's hope we can return to the old one. */
if (BlitterFactory::SelectBlitter(cur_blitter) == nullptr || !VideoDriver::GetInstance()->AfterBlitterChange()) usererror("Failed to reinitialize video driver. Specify a fixed blitter in the config");
}
/* Clear caches that might have sprites for another blitter. */
VideoDriver::GetInstance()->ClearSystemSprites();
ClearFontCache();
GfxClearSpriteCache();
ReInitAllWindows();
}
/**
* Check blitter needed by NewGRF config and switch if needed.
* @return False when nothing changed, true otherwise.
@@ -295,8 +317,6 @@ static bool SwitchNewGRFBlitter()
const bool animation_wanted = HasBit(_display_opt, DO_FULL_ANIMATION);
const char *cur_blitter = BlitterFactory::GetCurrentBlitter()->GetName();
VideoDriver::GetInstance()->AcquireBlitterLock();
for (uint i = 0; i < lengthof(replacement_blitters); i++) {
if (animation_wanted && (replacement_blitters[i].animation == 0)) continue;
if (!animation_wanted && (replacement_blitters[i].animation == 1)) continue;
@@ -306,25 +326,15 @@ static bool SwitchNewGRFBlitter()
const char *repl_blitter = replacement_blitters[i].name;
if (strcmp(repl_blitter, cur_blitter) == 0) {
VideoDriver::GetInstance()->ReleaseBlitterLock();
return false;
}
if (BlitterFactory::GetBlitterFactory(repl_blitter) == nullptr) continue;
DEBUG(misc, 1, "Switching blitter from '%s' to '%s'... ", cur_blitter, repl_blitter);
Blitter *new_blitter = BlitterFactory::SelectBlitter(repl_blitter);
if (new_blitter == nullptr) NOT_REACHED();
DEBUG(misc, 1, "Successfully switched to %s.", repl_blitter);
/* Inform the video driver we want to switch blitter as soon as possible. */
VideoDriver::GetInstance()->QueueOnMainThread(std::bind(&RealChangeBlitter, repl_blitter));
break;
}
if (!VideoDriver::GetInstance()->AfterBlitterChange()) {
/* Failed to switch blitter, let's hope we can return to the old one. */
if (BlitterFactory::SelectBlitter(cur_blitter) == nullptr || !VideoDriver::GetInstance()->AfterBlitterChange()) usererror("Failed to reinitialize video driver. Specify a fixed blitter in the config");
}
VideoDriver::GetInstance()->ReleaseBlitterLock();
return true;
}

View File

@@ -46,6 +46,8 @@ struct GoalListWindow : public Window {
this->vscroll = this->GetScrollbar(WID_GOAL_SCROLLBAR);
this->FinishInitNested(window_number);
this->owner = (Owner)this->window_number;
NWidgetStacked *wi = this->GetWidget<NWidgetStacked>(WID_GOAL_SELECT_BUTTONS);
wi->SetDisplayedPlane(window_number == INVALID_COMPANY ? 1 : 0);
this->OnInvalidateData(0);
}
@@ -63,37 +65,31 @@ struct GoalListWindow : public Window {
void OnClick(Point pt, int widget, int click_count) override
{
if (widget != WID_GOAL_LIST) return;
switch (widget) {
case WID_GOAL_GLOBAL_BUTTON:
ShowGoalsList(INVALID_COMPANY);
break;
int y = this->vscroll->GetScrolledRowFromWidget(pt.y, this, WID_GOAL_LIST, WD_FRAMERECT_TOP);
int num = 0;
for (const Goal *s : Goal::Iterate()) {
if (s->company == INVALID_COMPANY) {
y--;
if (y == 0) {
this->HandleClick(s);
return;
case WID_GOAL_COMPANY_BUTTON:
ShowGoalsList(_local_company);
break;
case WID_GOAL_LIST: {
int y = this->vscroll->GetScrolledRowFromWidget(pt.y, this, WID_GOAL_LIST, WD_FRAMERECT_TOP);
for (const Goal *s : Goal::Iterate()) {
if (s->company == this->window_number) {
if (y == 0) {
this->HandleClick(s);
return;
}
y--;
}
}
num++;
break;
}
}
if (num == 0) {
y--; // "None" line.
if (y < 0) return;
}
y -= 2; // "Company specific goals:" line.
if (y < 0) return;
for (const Goal *s : Goal::Iterate()) {
if (s->company == this->window_number && s->company != INVALID_COMPANY) {
y--;
if (y == 0) {
this->HandleClick(s);
return;
}
}
default:
break;
}
}
@@ -161,28 +157,21 @@ struct GoalListWindow : public Window {
uint CountLines()
{
/* Count number of (non) awarded goals. */
uint num_global = 0;
uint num_company = 0;
uint num = 0;
for (const Goal *s : Goal::Iterate()) {
if (s->company == INVALID_COMPANY) {
num_global++;
} else if (s->company == this->window_number) {
num_company++;
}
if (s->company == this->window_number) num++;
}
/* Count the 'none' lines. */
if (num_global == 0) num_global = 1;
if (num_company == 0) num_company = 1;
if (num == 0) num = 1;
/* Global, company and an empty line before the accepted ones. */
return 3 + num_global + num_company;
return num;
}
void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) override
{
if (widget != WID_GOAL_LIST) return;
Dimension d = maxdim(GetStringBoundingBox(STR_GOALS_GLOBAL_TITLE), GetStringBoundingBox(STR_GOALS_COMPANY_TITLE));
Dimension d = GetStringBoundingBox(STR_GOALS_NONE);
resize->height = d.height;
@@ -193,26 +182,26 @@ struct GoalListWindow : public Window {
}
/**
* Draws either the global goals or the company goal section.
* This is a helper method for #DrawWidget.
* @param[in,out] pos Vertical line number to draw.
* @param cap Number of lines to draw in the window.
* @param x Left edge of the text line to draw.
* @param y Vertical position of the top edge of the window.
* @param right Right edge of the text line to draw.
* @param global_section Whether the global goals are printed.
* Draws a given column of the goal list.
* @param column Which column to draw.
* @param wid Pointer to the goal list widget.
* @param progress_col_width Width of the progress column.
* @return max width of drawn text
*/
void DrawPartialGoalList(int &pos, const int cap, int x, int y, int right, uint progress_col_width, bool global_section, GoalColumn column) const
void DrawListColumn(GoalColumn column, NWidgetBase *wid, uint progress_col_width) const
{
if (column == GC_GOAL && IsInsideMM(pos, 0, cap)) DrawString(x, right, y + pos * FONT_HEIGHT_NORMAL, global_section ? STR_GOALS_GLOBAL_TITLE : STR_GOALS_COMPANY_TITLE);
pos++;
/* Get column draw area. */
int y = wid->pos_y + WD_FRAMERECT_TOP;
int x = wid->pos_x + WD_FRAMERECT_LEFT;
int right = x + wid->current_x - WD_FRAMERECT_RIGHT;
bool rtl = _current_text_dir == TD_RTL;
int pos = -this->vscroll->GetPosition();
const int cap = this->vscroll->GetCapacity();
uint num = 0;
for (const Goal *s : Goal::Iterate()) {
if (global_section ? s->company == INVALID_COMPANY : (s->company == this->window_number && s->company != INVALID_COMPANY)) {
if (s->company == this->window_number) {
if (IsInsideMM(pos, 0, cap)) {
switch (column) {
case GC_GOAL: {
@@ -241,38 +230,12 @@ struct GoalListWindow : public Window {
if (num == 0) {
if (column == GC_GOAL && IsInsideMM(pos, 0, cap)) {
StringID str = !global_section && this->window_number == INVALID_COMPANY ? STR_GOALS_SPECTATOR_NONE : STR_GOALS_NONE;
DrawString(x, right, y + pos * FONT_HEIGHT_NORMAL, str);
DrawString(x, right, y + pos * FONT_HEIGHT_NORMAL, STR_GOALS_NONE);
}
pos++;
}
}
/**
* Draws a given column of the goal list.
* @param column Which column to draw.
* @param wid Pointer to the goal list widget.
* @param progress_col_width Width of the progress column.
* @return max width of drawn text
*/
void DrawListColumn(GoalColumn column, NWidgetBase *wid, uint progress_col_width) const
{
/* Get column draw area. */
int y = wid->pos_y + WD_FRAMERECT_TOP;
int x = wid->pos_x + WD_FRAMERECT_LEFT;
int right = x + wid->current_x - WD_FRAMERECT_RIGHT;
int pos = -this->vscroll->GetPosition();
const int cap = this->vscroll->GetCapacity();
/* Draw partial list with global goals. */
DrawPartialGoalList(pos, cap, x, y, right, progress_col_width, true, column);
/* Draw partial list with company goals. */
pos++;
DrawPartialGoalList(pos, cap, x, y, right, progress_col_width, false, column);
}
void OnPaint() override
{
this->DrawWidgets();
@@ -313,6 +276,8 @@ struct GoalListWindow : public Window {
{
if (!gui_scope) return;
this->vscroll->SetCount(this->CountLines());
this->SetWidgetDisabledState(WID_GOAL_COMPANY_BUTTON, _local_company == COMPANY_SPECTATOR);
this->SetWidgetDirty(WID_GOAL_COMPANY_BUTTON);
this->SetWidgetDirty(WID_GOAL_LIST);
}
};
@@ -322,6 +287,10 @@ static const NWidgetPart _nested_goals_list_widgets[] = {
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_BROWN),
NWidget(WWT_CAPTION, COLOUR_BROWN, WID_GOAL_CAPTION), SetDataTip(STR_JUST_STRING, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(NWID_SELECTION, INVALID_COLOUR, WID_GOAL_SELECT_BUTTONS),
NWidget(WWT_PUSHTXTBTN, COLOUR_BROWN, WID_GOAL_GLOBAL_BUTTON), SetMinimalSize(50, 0), SetMinimalTextLines(1, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM + 2), SetDataTip(STR_GOALS_GLOBAL_BUTTON, STR_GOALS_GLOBAL_BUTTON_HELPTEXT),
NWidget(WWT_PUSHTXTBTN, COLOUR_BROWN, WID_GOAL_COMPANY_BUTTON), SetMinimalSize(50, 0), SetMinimalTextLines(1, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM + 2), SetDataTip(STR_GOALS_COMPANY_BUTTON, STR_GOALS_COMPANY_BUTTON_HELPTEXT),
EndContainer(),
NWidget(WWT_SHADEBOX, COLOUR_BROWN),
NWidget(WWT_DEFSIZEBOX, COLOUR_BROWN),
NWidget(WWT_STICKYBOX, COLOUR_BROWN),

View File

@@ -113,7 +113,7 @@ static NWidgetBase *MakeNWidgetCompanyLines(int *biggest_index)
uint line_height = std::max<uint>(GetSpriteSize(SPR_COMPANY_ICON).height, FONT_HEIGHT_NORMAL) + WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM;
for (int widnum = WID_GL_FIRST_COMPANY; widnum <= WID_GL_LAST_COMPANY; widnum++) {
NWidgetBackground *panel = new NWidgetBackground(WWT_PANEL, COLOUR_GREY, widnum);
NWidgetBackground *panel = new NWidgetBackground(WWT_PANEL, COLOUR_BROWN, widnum);
panel->SetMinimalSize(246, line_height);
panel->SetFill(1, 0);
panel->SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP);
@@ -125,12 +125,12 @@ static NWidgetBase *MakeNWidgetCompanyLines(int *biggest_index)
static const NWidgetPart _nested_graph_legend_widgets[] = {
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_GREY),
NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_GRAPH_KEY_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_SHADEBOX, COLOUR_GREY),
NWidget(WWT_STICKYBOX, COLOUR_GREY),
NWidget(WWT_CLOSEBOX, COLOUR_BROWN),
NWidget(WWT_CAPTION, COLOUR_BROWN), SetDataTip(STR_GRAPH_KEY_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_SHADEBOX, COLOUR_BROWN),
NWidget(WWT_STICKYBOX, COLOUR_BROWN),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, WID_GL_BACKGROUND),
NWidget(WWT_PANEL, COLOUR_BROWN, WID_GL_BACKGROUND),
NWidget(NWID_SPACER), SetMinimalSize(0, 2),
NWidget(NWID_HORIZONTAL),
NWidget(NWID_SPACER), SetMinimalSize(2, 0),
@@ -634,19 +634,19 @@ struct OperatingProfitGraphWindow : BaseGraphWindow {
static const NWidgetPart _nested_operating_profit_widgets[] = {
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_GREY),
NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_GRAPH_OPERATING_PROFIT_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_CV_KEY_BUTTON), SetMinimalSize(50, 0), SetMinimalTextLines(1, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM + 2), SetDataTip(STR_GRAPH_KEY_BUTTON, STR_GRAPH_KEY_TOOLTIP),
NWidget(WWT_SHADEBOX, COLOUR_GREY),
NWidget(WWT_DEFSIZEBOX, COLOUR_GREY),
NWidget(WWT_STICKYBOX, COLOUR_GREY),
NWidget(WWT_CLOSEBOX, COLOUR_BROWN),
NWidget(WWT_CAPTION, COLOUR_BROWN), SetDataTip(STR_GRAPH_OPERATING_PROFIT_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_PUSHTXTBTN, COLOUR_BROWN, WID_CV_KEY_BUTTON), SetMinimalSize(50, 0), SetMinimalTextLines(1, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM + 2), SetDataTip(STR_GRAPH_KEY_BUTTON, STR_GRAPH_KEY_TOOLTIP),
NWidget(WWT_SHADEBOX, COLOUR_BROWN),
NWidget(WWT_DEFSIZEBOX, COLOUR_BROWN),
NWidget(WWT_STICKYBOX, COLOUR_BROWN),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, WID_CV_BACKGROUND),
NWidget(WWT_PANEL, COLOUR_BROWN, WID_CV_BACKGROUND),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_EMPTY, COLOUR_GREY, WID_CV_GRAPH), SetMinimalSize(576, 160), SetFill(1, 1), SetResize(1, 1),
NWidget(WWT_EMPTY, COLOUR_BROWN, WID_CV_GRAPH), SetMinimalSize(576, 160), SetFill(1, 1), SetResize(1, 1),
NWidget(NWID_VERTICAL),
NWidget(NWID_SPACER), SetFill(0, 1), SetResize(0, 1),
NWidget(WWT_RESIZEBOX, COLOUR_GREY, WID_CV_RESIZE),
NWidget(WWT_RESIZEBOX, COLOUR_BROWN, WID_CV_RESIZE),
EndContainer(),
EndContainer(),
EndContainer(),
@@ -685,19 +685,19 @@ struct IncomeGraphWindow : BaseGraphWindow {
static const NWidgetPart _nested_income_graph_widgets[] = {
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_GREY),
NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_GRAPH_INCOME_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_CV_KEY_BUTTON), SetMinimalSize(50, 0), SetMinimalTextLines(1, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM + 2), SetDataTip(STR_GRAPH_KEY_BUTTON, STR_GRAPH_KEY_TOOLTIP),
NWidget(WWT_SHADEBOX, COLOUR_GREY),
NWidget(WWT_DEFSIZEBOX, COLOUR_GREY),
NWidget(WWT_STICKYBOX, COLOUR_GREY),
NWidget(WWT_CLOSEBOX, COLOUR_BROWN),
NWidget(WWT_CAPTION, COLOUR_BROWN), SetDataTip(STR_GRAPH_INCOME_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_PUSHTXTBTN, COLOUR_BROWN, WID_CV_KEY_BUTTON), SetMinimalSize(50, 0), SetMinimalTextLines(1, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM + 2), SetDataTip(STR_GRAPH_KEY_BUTTON, STR_GRAPH_KEY_TOOLTIP),
NWidget(WWT_SHADEBOX, COLOUR_BROWN),
NWidget(WWT_DEFSIZEBOX, COLOUR_BROWN),
NWidget(WWT_STICKYBOX, COLOUR_BROWN),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, WID_CV_BACKGROUND),
NWidget(WWT_PANEL, COLOUR_BROWN, WID_CV_BACKGROUND),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_EMPTY, COLOUR_GREY, WID_CV_GRAPH), SetMinimalSize(576, 128), SetFill(1, 1), SetResize(1, 1),
NWidget(WWT_EMPTY, COLOUR_BROWN, WID_CV_GRAPH), SetMinimalSize(576, 128), SetFill(1, 1), SetResize(1, 1),
NWidget(NWID_VERTICAL),
NWidget(NWID_SPACER), SetFill(0, 1), SetResize(0, 1),
NWidget(WWT_RESIZEBOX, COLOUR_GREY, WID_CV_RESIZE),
NWidget(WWT_RESIZEBOX, COLOUR_BROWN, WID_CV_RESIZE),
EndContainer(),
EndContainer(),
EndContainer(),
@@ -734,19 +734,19 @@ struct DeliveredCargoGraphWindow : BaseGraphWindow {
static const NWidgetPart _nested_delivered_cargo_graph_widgets[] = {
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_GREY),
NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_GRAPH_CARGO_DELIVERED_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_CV_KEY_BUTTON), SetMinimalSize(50, 0), SetMinimalTextLines(1, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM + 2), SetDataTip(STR_GRAPH_KEY_BUTTON, STR_GRAPH_KEY_TOOLTIP),
NWidget(WWT_SHADEBOX, COLOUR_GREY),
NWidget(WWT_DEFSIZEBOX, COLOUR_GREY),
NWidget(WWT_STICKYBOX, COLOUR_GREY),
NWidget(WWT_CLOSEBOX, COLOUR_BROWN),
NWidget(WWT_CAPTION, COLOUR_BROWN), SetDataTip(STR_GRAPH_CARGO_DELIVERED_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_PUSHTXTBTN, COLOUR_BROWN, WID_CV_KEY_BUTTON), SetMinimalSize(50, 0), SetMinimalTextLines(1, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM + 2), SetDataTip(STR_GRAPH_KEY_BUTTON, STR_GRAPH_KEY_TOOLTIP),
NWidget(WWT_SHADEBOX, COLOUR_BROWN),
NWidget(WWT_DEFSIZEBOX, COLOUR_BROWN),
NWidget(WWT_STICKYBOX, COLOUR_BROWN),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, WID_CV_BACKGROUND),
NWidget(WWT_PANEL, COLOUR_BROWN, WID_CV_BACKGROUND),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_EMPTY, COLOUR_GREY, WID_CV_GRAPH), SetMinimalSize(576, 128), SetFill(1, 1), SetResize(1, 1),
NWidget(WWT_EMPTY, COLOUR_BROWN, WID_CV_GRAPH), SetMinimalSize(576, 128), SetFill(1, 1), SetResize(1, 1),
NWidget(NWID_VERTICAL),
NWidget(NWID_SPACER), SetFill(0, 1), SetResize(0, 1),
NWidget(WWT_RESIZEBOX, COLOUR_GREY, WID_CV_RESIZE),
NWidget(WWT_RESIZEBOX, COLOUR_BROWN, WID_CV_RESIZE),
EndContainer(),
EndContainer(),
EndContainer(),
@@ -789,20 +789,20 @@ struct PerformanceHistoryGraphWindow : BaseGraphWindow {
static const NWidgetPart _nested_performance_history_widgets[] = {
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_GREY),
NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_GRAPH_COMPANY_PERFORMANCE_RATINGS_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_PHG_DETAILED_PERFORMANCE), SetMinimalSize(50, 0), SetMinimalTextLines(1, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM + 2), SetDataTip(STR_PERFORMANCE_DETAIL_KEY, STR_GRAPH_PERFORMANCE_DETAIL_TOOLTIP),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_PHG_KEY), SetMinimalSize(50, 0), SetMinimalTextLines(1, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM + 2), SetDataTip(STR_GRAPH_KEY_BUTTON, STR_GRAPH_KEY_TOOLTIP),
NWidget(WWT_SHADEBOX, COLOUR_GREY),
NWidget(WWT_DEFSIZEBOX, COLOUR_GREY),
NWidget(WWT_STICKYBOX, COLOUR_GREY),
NWidget(WWT_CLOSEBOX, COLOUR_BROWN),
NWidget(WWT_CAPTION, COLOUR_BROWN), SetDataTip(STR_GRAPH_COMPANY_PERFORMANCE_RATINGS_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_PUSHTXTBTN, COLOUR_BROWN, WID_PHG_DETAILED_PERFORMANCE), SetMinimalSize(50, 0), SetMinimalTextLines(1, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM + 2), SetDataTip(STR_PERFORMANCE_DETAIL_KEY, STR_GRAPH_PERFORMANCE_DETAIL_TOOLTIP),
NWidget(WWT_PUSHTXTBTN, COLOUR_BROWN, WID_PHG_KEY), SetMinimalSize(50, 0), SetMinimalTextLines(1, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM + 2), SetDataTip(STR_GRAPH_KEY_BUTTON, STR_GRAPH_KEY_TOOLTIP),
NWidget(WWT_SHADEBOX, COLOUR_BROWN),
NWidget(WWT_DEFSIZEBOX, COLOUR_BROWN),
NWidget(WWT_STICKYBOX, COLOUR_BROWN),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, WID_PHG_BACKGROUND),
NWidget(WWT_PANEL, COLOUR_BROWN, WID_PHG_BACKGROUND),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_EMPTY, COLOUR_GREY, WID_PHG_GRAPH), SetMinimalSize(576, 224), SetFill(1, 1), SetResize(1, 1),
NWidget(WWT_EMPTY, COLOUR_BROWN, WID_PHG_GRAPH), SetMinimalSize(576, 224), SetFill(1, 1), SetResize(1, 1),
NWidget(NWID_VERTICAL),
NWidget(NWID_SPACER), SetFill(0, 1), SetResize(0, 1),
NWidget(WWT_RESIZEBOX, COLOUR_GREY, WID_PHG_RESIZE),
NWidget(WWT_RESIZEBOX, COLOUR_BROWN, WID_PHG_RESIZE),
EndContainer(),
EndContainer(),
EndContainer(),
@@ -839,19 +839,19 @@ struct CompanyValueGraphWindow : BaseGraphWindow {
static const NWidgetPart _nested_company_value_graph_widgets[] = {
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_GREY),
NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_GRAPH_COMPANY_VALUES_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_CV_KEY_BUTTON), SetMinimalSize(50, 0), SetMinimalTextLines(1, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM + 2), SetDataTip(STR_GRAPH_KEY_BUTTON, STR_GRAPH_KEY_TOOLTIP),
NWidget(WWT_SHADEBOX, COLOUR_GREY),
NWidget(WWT_DEFSIZEBOX, COLOUR_GREY),
NWidget(WWT_STICKYBOX, COLOUR_GREY),
NWidget(WWT_CLOSEBOX, COLOUR_BROWN),
NWidget(WWT_CAPTION, COLOUR_BROWN), SetDataTip(STR_GRAPH_COMPANY_VALUES_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_PUSHTXTBTN, COLOUR_BROWN, WID_CV_KEY_BUTTON), SetMinimalSize(50, 0), SetMinimalTextLines(1, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM + 2), SetDataTip(STR_GRAPH_KEY_BUTTON, STR_GRAPH_KEY_TOOLTIP),
NWidget(WWT_SHADEBOX, COLOUR_BROWN),
NWidget(WWT_DEFSIZEBOX, COLOUR_BROWN),
NWidget(WWT_STICKYBOX, COLOUR_BROWN),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, WID_CV_BACKGROUND),
NWidget(WWT_PANEL, COLOUR_BROWN, WID_CV_BACKGROUND),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_EMPTY, COLOUR_GREY, WID_CV_GRAPH), SetMinimalSize(576, 224), SetFill(1, 1), SetResize(1, 1),
NWidget(WWT_EMPTY, COLOUR_BROWN, WID_CV_GRAPH), SetMinimalSize(576, 224), SetFill(1, 1), SetResize(1, 1),
NWidget(NWID_VERTICAL),
NWidget(NWID_SPACER), SetFill(0, 1), SetResize(0, 1),
NWidget(WWT_RESIZEBOX, COLOUR_GREY, WID_CV_RESIZE),
NWidget(WWT_RESIZEBOX, COLOUR_BROWN, WID_CV_RESIZE),
EndContainer(),
EndContainer(),
EndContainer(),
@@ -954,7 +954,7 @@ struct PaymentRatesGraphWindow : BaseGraphWindow {
bool lowered = !HasBit(_legend_excluded_cargo, cs->Index());
/* Redraw box if lowered */
if (lowered) DrawFrameRect(r.left, y, r.right, y + this->line_height - 1, COLOUR_ORANGE, lowered ? FR_LOWERED : FR_NONE);
if (lowered) DrawFrameRect(r.left, y, r.right, y + this->line_height - 1, COLOUR_BROWN, lowered ? FR_LOWERED : FR_NONE);
byte clk_dif = lowered ? 1 : 0;
int rect_x = clk_dif + (rtl ? r.right - 12 : r.left + WD_FRAMERECT_LEFT);
@@ -1049,28 +1049,28 @@ struct PaymentRatesGraphWindow : BaseGraphWindow {
static const NWidgetPart _nested_cargo_payment_rates_widgets[] = {
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_GREY),
NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_GRAPH_CARGO_PAYMENT_RATES_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_SHADEBOX, COLOUR_GREY),
NWidget(WWT_DEFSIZEBOX, COLOUR_GREY),
NWidget(WWT_STICKYBOX, COLOUR_GREY),
NWidget(WWT_CLOSEBOX, COLOUR_BROWN),
NWidget(WWT_CAPTION, COLOUR_BROWN), SetDataTip(STR_GRAPH_CARGO_PAYMENT_RATES_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_SHADEBOX, COLOUR_BROWN),
NWidget(WWT_DEFSIZEBOX, COLOUR_BROWN),
NWidget(WWT_STICKYBOX, COLOUR_BROWN),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, WID_CPR_BACKGROUND), SetMinimalSize(568, 128),
NWidget(WWT_PANEL, COLOUR_BROWN, WID_CPR_BACKGROUND), SetMinimalSize(568, 128),
NWidget(NWID_HORIZONTAL),
NWidget(NWID_SPACER), SetFill(1, 0), SetResize(1, 0),
NWidget(WWT_TEXT, COLOUR_GREY, WID_CPR_HEADER), SetMinimalSize(0, 6), SetPadding(2, 0, 2, 0), SetDataTip(STR_GRAPH_CARGO_PAYMENT_RATES_TITLE, STR_NULL),
NWidget(WWT_TEXT, COLOUR_BROWN, WID_CPR_HEADER), SetMinimalSize(0, 6), SetPadding(2, 0, 2, 0), SetDataTip(STR_GRAPH_CARGO_PAYMENT_RATES_TITLE, STR_NULL),
NWidget(NWID_SPACER), SetFill(1, 0), SetResize(1, 0),
EndContainer(),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_EMPTY, COLOUR_GREY, WID_CPR_GRAPH), SetMinimalSize(495, 0), SetFill(1, 1), SetResize(1, 1),
NWidget(WWT_EMPTY, COLOUR_BROWN, WID_CPR_GRAPH), SetMinimalSize(495, 0), SetFill(1, 1), SetResize(1, 1),
NWidget(NWID_VERTICAL),
NWidget(NWID_SPACER), SetMinimalSize(0, 24), SetFill(0, 1),
NWidget(WWT_PUSHTXTBTN, COLOUR_ORANGE, WID_CPR_ENABLE_CARGOES), SetDataTip(STR_GRAPH_CARGO_ENABLE_ALL, STR_GRAPH_CARGO_TOOLTIP_ENABLE_ALL), SetFill(1, 0),
NWidget(WWT_PUSHTXTBTN, COLOUR_ORANGE, WID_CPR_DISABLE_CARGOES), SetDataTip(STR_GRAPH_CARGO_DISABLE_ALL, STR_GRAPH_CARGO_TOOLTIP_DISABLE_ALL), SetFill(1, 0),
NWidget(WWT_PUSHTXTBTN, COLOUR_BROWN, WID_CPR_ENABLE_CARGOES), SetDataTip(STR_GRAPH_CARGO_ENABLE_ALL, STR_GRAPH_CARGO_TOOLTIP_ENABLE_ALL), SetFill(1, 0),
NWidget(WWT_PUSHTXTBTN, COLOUR_BROWN, WID_CPR_DISABLE_CARGOES), SetDataTip(STR_GRAPH_CARGO_DISABLE_ALL, STR_GRAPH_CARGO_TOOLTIP_DISABLE_ALL), SetFill(1, 0),
NWidget(NWID_SPACER), SetMinimalSize(0, 4),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_MATRIX, COLOUR_ORANGE, WID_CPR_MATRIX), SetResize(0, 2), SetMatrixDataTip(1, 0, STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO), SetScrollbar(WID_CPR_MATRIX_SCROLLBAR),
NWidget(NWID_VSCROLLBAR, COLOUR_ORANGE, WID_CPR_MATRIX_SCROLLBAR),
NWidget(WWT_MATRIX, COLOUR_BROWN, WID_CPR_MATRIX), SetResize(0, 2), SetMatrixDataTip(1, 0, STR_GRAPH_CARGO_PAYMENT_TOGGLE_CARGO), SetScrollbar(WID_CPR_MATRIX_SCROLLBAR),
NWidget(NWID_VSCROLLBAR, COLOUR_BROWN, WID_CPR_MATRIX_SCROLLBAR),
EndContainer(),
NWidget(NWID_SPACER), SetMinimalSize(0, 24), SetFill(0, 1),
EndContainer(),
@@ -1078,9 +1078,9 @@ static const NWidgetPart _nested_cargo_payment_rates_widgets[] = {
EndContainer(),
NWidget(NWID_HORIZONTAL),
NWidget(NWID_SPACER), SetMinimalSize(WD_RESIZEBOX_WIDTH, 0), SetFill(1, 0), SetResize(1, 0),
NWidget(WWT_TEXT, COLOUR_GREY, WID_CPR_FOOTER), SetMinimalSize(0, 6), SetPadding(2, 0, 2, 0), SetDataTip(STR_GRAPH_CARGO_PAYMENT_RATES_X_LABEL, STR_NULL),
NWidget(WWT_TEXT, COLOUR_BROWN, WID_CPR_FOOTER), SetMinimalSize(0, 6), SetPadding(2, 0, 2, 0), SetDataTip(STR_GRAPH_CARGO_PAYMENT_RATES_X_LABEL, STR_NULL),
NWidget(NWID_SPACER), SetFill(1, 0), SetResize(1, 0),
NWidget(WWT_RESIZEBOX, COLOUR_GREY, WID_CPR_RESIZE),
NWidget(WWT_RESIZEBOX, COLOUR_BROWN, WID_CPR_RESIZE),
EndContainer(),
EndContainer(),
};
@@ -1264,12 +1264,12 @@ public:
static const NWidgetPart _nested_company_league_widgets[] = {
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_GREY),
NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_COMPANY_LEAGUE_TABLE_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_SHADEBOX, COLOUR_GREY),
NWidget(WWT_STICKYBOX, COLOUR_GREY),
NWidget(WWT_CLOSEBOX, COLOUR_BROWN),
NWidget(WWT_CAPTION, COLOUR_BROWN), SetDataTip(STR_COMPANY_LEAGUE_TABLE_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_SHADEBOX, COLOUR_BROWN),
NWidget(WWT_STICKYBOX, COLOUR_BROWN),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, WID_CL_BACKGROUND), SetMinimalSize(400, 0), SetMinimalTextLines(15, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM),
NWidget(WWT_PANEL, COLOUR_BROWN, WID_CL_BACKGROUND), SetMinimalSize(400, 0), SetMinimalTextLines(15, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM),
};
static WindowDesc _company_league_desc(
@@ -1539,7 +1539,7 @@ static NWidgetBase *MakePerformanceDetailPanels(int *biggest_index)
NWidgetVertical *vert = new NWidgetVertical(NC_EQUALSIZE);
for (int widnum = WID_PRD_SCORE_FIRST; widnum <= WID_PRD_SCORE_LAST; widnum++) {
NWidgetBackground *panel = new NWidgetBackground(WWT_PANEL, COLOUR_GREY, widnum);
NWidgetBackground *panel = new NWidgetBackground(WWT_PANEL, COLOUR_BROWN, widnum);
panel->SetFill(1, 1);
panel->SetDataTip(0x0, performance_tips[widnum - WID_PRD_SCORE_FIRST]);
vert->Add(panel);
@@ -1551,17 +1551,17 @@ static NWidgetBase *MakePerformanceDetailPanels(int *biggest_index)
/** Make a number of rows with buttons for each company for the performance rating detail window. */
NWidgetBase *MakeCompanyButtonRowsGraphGUI(int *biggest_index)
{
return MakeCompanyButtonRows(biggest_index, WID_PRD_COMPANY_FIRST, WID_PRD_COMPANY_LAST, 8, STR_PERFORMANCE_DETAIL_SELECT_COMPANY_TOOLTIP);
return MakeCompanyButtonRows(biggest_index, WID_PRD_COMPANY_FIRST, WID_PRD_COMPANY_LAST, COLOUR_BROWN, 8, STR_PERFORMANCE_DETAIL_SELECT_COMPANY_TOOLTIP);
}
static const NWidgetPart _nested_performance_rating_detail_widgets[] = {
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_GREY),
NWidget(WWT_CAPTION, COLOUR_GREY), SetDataTip(STR_PERFORMANCE_DETAIL, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_SHADEBOX, COLOUR_GREY),
NWidget(WWT_STICKYBOX, COLOUR_GREY),
NWidget(WWT_CLOSEBOX, COLOUR_BROWN),
NWidget(WWT_CAPTION, COLOUR_BROWN), SetDataTip(STR_PERFORMANCE_DETAIL, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_SHADEBOX, COLOUR_BROWN),
NWidget(WWT_STICKYBOX, COLOUR_BROWN),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY),
NWidget(WWT_PANEL, COLOUR_BROWN),
NWidgetFunction(MakeCompanyButtonRowsGraphGUI), SetPadding(0, 1, 1, 2),
EndContainer(),
NWidgetFunction(MakePerformanceDetailPanels),

View File

@@ -46,7 +46,6 @@ static const NWidgetPart _nested_group_widgets[] = {
NWidget(NWID_HORIZONTAL),
/* left part */
NWidget(NWID_VERTICAL),
NWidget(WWT_PANEL, COLOUR_GREY), SetMinimalTextLines(1, WD_DROPDOWNTEXT_TOP + WD_DROPDOWNTEXT_BOTTOM), SetFill(1, 0), EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, WID_GL_ALL_VEHICLES), SetFill(1, 0), EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, WID_GL_DEFAULT_VEHICLES), SetFill(1, 0), EndContainer(),
NWidget(NWID_HORIZONTAL),
@@ -54,18 +53,18 @@ static const NWidgetPart _nested_group_widgets[] = {
SetFill(1, 0), SetResize(0, 1), SetScrollbar(WID_GL_LIST_GROUP_SCROLLBAR),
NWidget(NWID_VSCROLLBAR, COLOUR_GREY, WID_GL_LIST_GROUP_SCROLLBAR),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, WID_GL_INFO), SetFill(1, 0), EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, WID_GL_INFO), SetFill(1, 1), SetMinimalTextLines(3, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM), EndContainer(),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_GL_CREATE_GROUP), SetFill(0, 1),
NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_GL_CREATE_GROUP),
SetDataTip(SPR_GROUP_CREATE_TRAIN, STR_GROUP_CREATE_TOOLTIP),
NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_GL_DELETE_GROUP), SetFill(0, 1),
NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_GL_DELETE_GROUP),
SetDataTip(SPR_GROUP_DELETE_TRAIN, STR_GROUP_DELETE_TOOLTIP),
NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_GL_RENAME_GROUP), SetFill(0, 1),
NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_GL_RENAME_GROUP),
SetDataTip(SPR_GROUP_RENAME_TRAIN, STR_GROUP_RENAME_TOOLTIP),
NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_GL_LIVERY_GROUP), SetFill(0, 1),
NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_GL_LIVERY_GROUP),
SetDataTip(SPR_GROUP_LIVERY_TRAIN, STR_GROUP_LIVERY_TOOLTIP),
NWidget(WWT_PANEL, COLOUR_GREY), SetFill(1, 1), EndContainer(),
NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_GL_REPLACE_PROTECTION), SetFill(0, 1),
NWidget(WWT_PANEL, COLOUR_GREY), SetFill(1, 0), EndContainer(),
NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_GL_REPLACE_PROTECTION),
SetDataTip(SPR_GROUP_REPLACE_OFF_TRAIN, STR_GROUP_REPLACE_PROTECTION_TOOLTIP),
EndContainer(),
EndContainer(),
@@ -87,14 +86,14 @@ static const NWidgetPart _nested_group_widgets[] = {
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY), SetMinimalSize(1, 0), SetFill(1, 1), SetResize(1, 0), EndContainer(),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_GL_AVAILABLE_VEHICLES), SetMinimalSize(106, 12), SetFill(0, 1),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_GL_AVAILABLE_VEHICLES), SetMinimalSize(106, 12),
SetDataTip(STR_BLACK_STRING, STR_VEHICLE_LIST_AVAILABLE_ENGINES_TOOLTIP),
NWidget(WWT_PANEL, COLOUR_GREY), SetMinimalSize(0, 12), SetFill(1, 1), SetResize(1, 0), EndContainer(),
NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GL_MANAGE_VEHICLES_DROPDOWN), SetMinimalSize(118, 12), SetFill(0, 1),
NWidget(WWT_PANEL, COLOUR_GREY), SetMinimalSize(0, 12), SetFill(1, 0), SetResize(1, 0), EndContainer(),
NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GL_MANAGE_VEHICLES_DROPDOWN), SetMinimalSize(118, 12),
SetDataTip(STR_VEHICLE_LIST_MANAGE_LIST, STR_VEHICLE_LIST_MANAGE_LIST_TOOLTIP),
NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_GL_STOP_ALL), SetMinimalSize(12, 12), SetFill(0, 1),
NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_GL_STOP_ALL), SetMinimalSize(12, 12),
SetDataTip(SPR_FLAG_VEH_STOPPED, STR_VEHICLE_LIST_MASS_STOP_LIST_TOOLTIP),
NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_GL_START_ALL), SetMinimalSize(12, 12), SetFill(0, 1),
NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_GL_START_ALL), SetMinimalSize(12, 12),
SetDataTip(SPR_FLAG_VEH_RUNNING, STR_VEHICLE_LIST_MASS_START_LIST_TOOLTIP),
NWidget(WWT_RESIZEBOX, COLOUR_GREY),
EndContainer(),
@@ -229,7 +228,7 @@ private:
this->column_size[VGC_NUMBER] = GetStringBoundingBox(STR_GROUP_COUNT_WITH_SUBGROUP);
this->tiny_step_height = std::max(this->tiny_step_height, this->column_size[VGC_NUMBER].height);
this->tiny_step_height += WD_MATRIX_TOP;
this->tiny_step_height += WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM;
return WD_FRAMERECT_LEFT + 8 +
this->column_size[VGC_FOLD].width + 2 +
@@ -255,7 +254,7 @@ private:
{
/* Highlight the group if a vehicle is dragged over it */
if (g_id == this->group_over) {
GfxFillRect(left + WD_FRAMERECT_LEFT, y + WD_FRAMERECT_TOP, right - WD_FRAMERECT_RIGHT, y + this->tiny_step_height - WD_FRAMERECT_BOTTOM - WD_MATRIX_TOP, _colour_gradient[COLOUR_GREY][7]);
GfxFillRect(left + WD_FRAMERECT_LEFT, y + WD_FRAMERECT_TOP + 1, right - WD_FRAMERECT_RIGHT, y + this->tiny_step_height - WD_FRAMERECT_BOTTOM - 1, _colour_gradient[COLOUR_GREY][7]);
}
if (g_id == NEW_GROUP) return;
@@ -386,7 +385,7 @@ public:
resize->height = this->tiny_step_height;
/* Minimum height is the height of the list widget minus all and default vehicles... */
size->height = 4 * GetVehicleListHeight(this->vli.vtype, this->tiny_step_height) - 2 * this->tiny_step_height;
size->height = 4 * GetVehicleListHeight(this->vli.vtype, this->tiny_step_height);
/* ... minus the buttons at the bottom ... */
uint max_icon_height = GetSpriteSize(this->GetWidget<NWidgetCore>(WID_GL_CREATE_GROUP)->widget_data).height;
@@ -429,11 +428,6 @@ public:
*size = maxdim(*size, d);
break;
}
case WID_GL_INFO: {
size->height = (FONT_HEIGHT_NORMAL * 3) + WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM;
break;
}
}
}
@@ -555,11 +549,11 @@ public:
{
switch (widget) {
case WID_GL_ALL_VEHICLES:
DrawGroupInfo(r.top + WD_FRAMERECT_TOP, r.left, r.right, ALL_GROUP);
DrawGroupInfo(r.top, r.left, r.right, ALL_GROUP);
break;
case WID_GL_DEFAULT_VEHICLES:
DrawGroupInfo(r.top + WD_FRAMERECT_TOP, r.left, r.right, DEFAULT_GROUP);
DrawGroupInfo(r.top, r.left, r.right, DEFAULT_GROUP);
break;
case WID_GL_INFO: {
@@ -600,7 +594,7 @@ public:
}
case WID_GL_LIST_GROUP: {
int y1 = r.top + WD_FRAMERECT_TOP;
int y1 = r.top;
int max = std::min<size_t>(this->group_sb->GetPosition() + this->group_sb->GetCapacity(), this->groups.size());
for (int i = this->group_sb->GetPosition(); i < max; ++i) {
const Group *g = this->groups[i];
@@ -892,7 +886,11 @@ public:
/* We do not support VehicleClicked() here since the contextual action may only make sense for individual vehicles */
if (vindex == v->index) {
ShowVehicleListWindow(v);
if (vehgroup.NumVehicles() == 1) {
ShowVehicleViewWindow(v);
} else {
ShowVehicleListWindow(v);
}
}
break;
}

View File

@@ -368,7 +368,7 @@ static void GrayscaleToMapHeights(uint img_width, uint img_height, byte *map)
/* 0 is sea level.
* Other grey scales are scaled evenly to the available height levels > 0.
* (The coastline is independent from the number of height levels) */
heightmap_height = 1 + (heightmap_height - 1) * _settings_game.construction.max_heightlevel / 255;
heightmap_height = 1 + (heightmap_height - 1) * _settings_game.game_creation.heightmap_height / 255;
}
SetTileHeight(tile, heightmap_height);

View File

@@ -2140,6 +2140,7 @@ static Industry *CreateNewIndustry(TileIndex tile, IndustryType type, IndustryAv
Industry *i = nullptr;
size_t layout_index = RandomRange((uint32)indspec->layouts.size());
CommandCost ret = CreateNewIndustryHelper(tile, type, DC_EXEC, indspec, layout_index, seed, GB(seed2, 0, 16), OWNER_NONE, creation_type, &i);
(void)ret; // assert only
assert(i != nullptr || ret.Failed());
return i;
}

View File

@@ -31,6 +31,7 @@
#include "pathfinder/npf/aystar.h"
#include "saveload/saveload.h"
#include "framerate_type.h"
#include <array>
#include <list>
#include <set>
@@ -116,7 +117,7 @@ Point InverseRemapCoords2(int x, int y, bool clamp_to_map, bool *clamped)
/* Bring the coordinates near to a valid range. At the top we allow a number
* of extra tiles. This is mostly due to the tiles on the north side of
* the map possibly being drawn higher due to the extra height levels. */
int extra_tiles = CeilDiv(_settings_game.construction.max_heightlevel * TILE_HEIGHT, TILE_PIXELS);
int extra_tiles = CeilDiv(_settings_game.construction.map_height_limit * TILE_HEIGHT, TILE_PIXELS);
Point old_pt = pt;
pt.x = Clamp(pt.x, -extra_tiles * TILE_SIZE, max_x);
pt.y = Clamp(pt.y, -extra_tiles * TILE_SIZE, max_y);
@@ -967,11 +968,10 @@ static void GenerateTerrain(int type, uint flag)
#include "table/genland.h"
static void CreateDesertOrRainForest()
static void CreateDesertOrRainForest(uint desert_tropic_line)
{
TileIndex update_freq = MapSize() / 4;
const TileIndexDiffC *data;
uint max_desert_height = CeilDiv(_settings_game.construction.max_heightlevel, 4);
for (TileIndex tile = 0; tile != MapSize(); ++tile) {
if ((tile % update_freq) == 0) IncreaseGeneratingWorldProgress(GWP_LANDSCAPE);
@@ -981,7 +981,7 @@ static void CreateDesertOrRainForest()
for (data = _make_desert_or_rainforest_data;
data != endof(_make_desert_or_rainforest_data); ++data) {
TileIndex t = AddTileIndexDiffCWrap(tile, *data);
if (t != INVALID_TILE && (TileHeight(t) >= max_desert_height || IsTileType(t, MP_WATER))) break;
if (t != INVALID_TILE && (TileHeight(t) >= desert_tropic_line || IsTileType(t, MP_WATER))) break;
}
if (data == endof(_make_desert_or_rainforest_data)) {
SetTropicZone(tile, TROPICZONE_DESERT);
@@ -1062,6 +1062,7 @@ static bool MakeLake(TileIndex tile, void *user_data)
TileIndex t2 = tile + TileOffsByDiagDir(d);
if (IsWaterTile(t2)) {
MakeRiver(tile, Random());
MarkTileDirtyByTile(tile);
/* Remove desert directly around the river tile. */
TileIndex t = tile;
CircularTileSearch(&t, RIVER_OFFSET_DESERT_DISTANCE, RiverModifyDesertZone, nullptr);
@@ -1135,6 +1136,7 @@ static void River_FoundEndNode(AyStar *aystar, OpenListNode *current)
TileIndex tile = path->node.tile;
if (!IsWaterTile(tile)) {
MakeRiver(tile, Random());
MarkTileDirtyByTile(tile);
/* Remove desert directly around the river tile. */
CircularTileSearch(&tile, RIVER_OFFSET_DESERT_DISTANCE, RiverModifyDesertZone, nullptr);
}
@@ -1247,6 +1249,7 @@ static bool FlowRiver(TileIndex spring, TileIndex begin)
DistanceManhattan(spring, lakeCenter) > _settings_game.game_creation.min_river_length) {
end = lakeCenter;
MakeRiver(lakeCenter, Random());
MarkTileDirtyByTile(lakeCenter);
/* Remove desert directly around the river tile. */
CircularTileSearch(&lakeCenter, RIVER_OFFSET_DESERT_DISTANCE, RiverModifyDesertZone, nullptr);
lakeCenter = end;
@@ -1291,6 +1294,115 @@ static void CreateRivers()
}
}
/**
* Calculate what height would be needed to cover N% of the landmass.
*
* The function allows both snow and desert/tropic line to be calculated. It
* tries to find the closests height which covers N% of the landmass; it can
* be below or above it.
*
* Tropic has a mechanism where water and tropic tiles in mountains grow
* inside the desert. To better approximate the requested coverage, this is
* taken into account via an edge histogram, which tells how many neighbouring
* tiles are lower than the tiles of that height. The multiplier indicates how
* severe this has to be taken into account.
*
* @param coverage A value between 0 and 100 indicating a percentage of landmass that should be covered.
* @param edge_multiplier How much effect neighbouring tiles that are of a lower height level have on the score.
* @return The estimated best height to use to cover N% of the landmass.
*/
static uint CalculateCoverageLine(uint coverage, uint edge_multiplier)
{
const DiagDirection neighbour_dir[] = {
DIAGDIR_NE,
DIAGDIR_SE,
DIAGDIR_SW,
DIAGDIR_NW,
};
/* Histogram of how many tiles per height level exist. */
std::array<int, MAX_TILE_HEIGHT + 1> histogram = {};
/* Histogram of how many neighbour tiles are lower than the tiles of the height level. */
std::array<int, MAX_TILE_HEIGHT + 1> edge_histogram = {};
/* Build a histogram of the map height. */
for (TileIndex tile = 0; tile < MapSize(); tile++) {
uint h = TileHeight(tile);
histogram[h]++;
if (edge_multiplier != 0) {
/* Check if any of our neighbours is below us. */
for (auto dir : neighbour_dir) {
TileIndex neighbour_tile = AddTileIndexDiffCWrap(tile, TileIndexDiffCByDiagDir(dir));
if (IsValidTile(neighbour_tile) && TileHeight(neighbour_tile) < h) {
edge_histogram[h]++;
}
}
}
}
/* The amount of land we have is the map size minus the first (sea) layer. */
uint land_tiles = MapSizeX() * MapSizeY() - histogram[0];
int best_score = land_tiles;
/* Our goal is the coverage amount of the land-mass. */
int goal_tiles = land_tiles * coverage / 100;
/* We scan from top to bottom. */
uint h = MAX_TILE_HEIGHT;
uint best_h = h;
int current_tiles = 0;
for (; h > 0; h--) {
current_tiles += histogram[h];
int current_score = goal_tiles - current_tiles;
/* Tropic grows from water and mountains into the desert. This is a
* great visual, but it also means we* need to take into account how
* much less desert tiles are being created if we are on this
* height-level. We estimate this based on how many neighbouring
* tiles are below us for a given length, assuming that is where
* tropic is growing from.
*/
if (edge_multiplier != 0 && h > 1) {
/* From water tropic tiles grow for a few tiles land inward. */
current_score -= edge_histogram[1] * edge_multiplier;
/* Tropic tiles grow into the desert for a few tiles. */
current_score -= edge_histogram[h] * edge_multiplier;
}
if (std::abs(current_score) < std::abs(best_score)) {
best_score = current_score;
best_h = h;
}
/* Always scan all height-levels, as h == 1 might give a better
* score than any before. This is true for example with 0% desert
* coverage. */
}
return best_h;
}
/**
* Calculate the line from which snow begins.
*/
static void CalculateSnowLine()
{
/* We do not have snow sprites on coastal tiles, so never allow "1" as height. */
_settings_game.game_creation.snow_line_height = std::max(CalculateCoverageLine(_settings_game.game_creation.snow_coverage, 0), 2u);
}
/**
* Calculate the line (in height) between desert and tropic.
* @return The height of the line between desert and tropic.
*/
static uint8 CalculateDesertLine()
{
/* CalculateCoverageLine() runs from top to bottom, so we need to invert the coverage. */
return CalculateCoverageLine(100 - _settings_game.game_creation.desert_coverage, 4);
}
void GenerateLandscape(byte mode)
{
/** Number of steps of landscape generation */
@@ -1368,11 +1480,27 @@ void GenerateLandscape(byte mode)
/* Do not call IncreaseGeneratingWorldProgress() before FixSlopes(),
* it allows screen redraw. Drawing of broken slopes crashes the game */
FixSlopes();
IncreaseGeneratingWorldProgress(GWP_LANDSCAPE);
ConvertGroundTilesIntoWaterTiles();
MarkWholeScreenDirty();
IncreaseGeneratingWorldProgress(GWP_LANDSCAPE);
if (_settings_game.game_creation.landscape == LT_TROPIC) CreateDesertOrRainForest();
ConvertGroundTilesIntoWaterTiles();
MarkWholeScreenDirty();
IncreaseGeneratingWorldProgress(GWP_LANDSCAPE);
switch (_settings_game.game_creation.landscape) {
case LT_ARCTIC:
CalculateSnowLine();
break;
case LT_TROPIC: {
uint desert_tropic_line = CalculateDesertLine();
CreateDesertOrRainForest(desert_tropic_line);
break;
}
default:
break;
}
CreateRivers();
}

View File

@@ -989,6 +989,8 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Skerm re
STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Kies die skerm resolusie om te gebruik
STR_GAME_OPTIONS_RESOLUTION_OTHER :ander
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK} Koppelvlak groote
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK} Kies die koppelvlak element groote om te gebruik
@@ -1002,6 +1004,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normaal
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Dubbele grootte
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Quad grootte
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Basis-grafikastel
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Kies die basis-grafikastel stel om te gebruik
STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} verlore / korrupte ler{P "" s}
@@ -1177,8 +1181,6 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Skakel rampe aa
STR_CONFIG_SETTING_CITY_APPROVAL :Stadsraad se gesindheid teenoor omgewings-konstruksie: {STRING}
STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Kies hoeveel invloed klank en skade aan die omgewing deur maatskappye aan die stadswaardering het en verderde bouwerk in die stad.
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :Maksimum kaarthoogte: {STRING}
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :Stel die maksimum toegelate berghoogte
STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}Kan nie die berghoogte verander nie - daar is hoër berge as hierdie op die kaart
STR_CONFIG_SETTING_AUTOSLOPE :Laat landargitektuur toe onder geboue, spore, ens.: {STRING}
STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Laat Landargitektuur onder geboue en spore sonder om dit te verwyder
@@ -1749,6 +1751,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... igno
STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Program is uit geheue uit
STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Allokering van {BYTES} kasgeheue vir grafika het gefaal. Die kasgeheue is verminder na {BYTES}. Dit sal OpenTDD stadiger maak. Om geheue-aanvraag te verminder, kan u 32bpp grafika en/of zoom-vlakke afskakel.
# Video initalization errors
# Intro window
STR_INTRO_CAPTION :{WHITE}OpenTTD {REV}
@@ -2269,6 +2273,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD
STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Ja, laai die grafika af
STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Nee, verlaat OpenTTD
# Transparency settings window
STR_TRANSPARENCY_CAPTION :{WHITE}Deursigtigheid Opsies
STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Wissel deursigtigheid vir stasietekens. Ctrl+klik om te sluit
@@ -2784,12 +2789,6 @@ STR_MAPGEN_BY :{BLACK}*
STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}Hoev. dorpe:
STR_MAPGEN_DATE :{BLACK}Datum:
STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Hoev. nywerhede:
STR_MAPGEN_MAX_HEIGHTLEVEL :{BLACK}Maksimum kaarthoogte
STR_MAPGEN_MAX_HEIGHTLEVEL_UP :{BLACK}Verhoog berge met een teël
STR_MAPGEN_MAX_HEIGHTLEVEL_DOWN :{BLACK}Verminder berghoogte met een teël
STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Sneeu lyn hoogte:
STR_MAPGEN_SNOW_LINE_UP :{BLACK}Beweeg die sneeu lyn een op
STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Beweeg die sneeu lyn een af
STR_MAPGEN_LAND_GENERATOR :{BLACK}Land genereerder:
STR_MAPGEN_TERRAIN_TYPE :{BLACK}Terrein tipe:
STR_MAPGEN_QUANTITY_OF_SEA_LAKES :{BLACK}Seevlak:
@@ -2815,8 +2814,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Reliëfk
STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Grootte:
STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM}
STR_MAPGEN_MAX_HEIGHTLEVEL_QUERY_CAPT :{WHITE}Verander maksimum kaarthoogte
STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Verander sneeu lyn hoogte
STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Verander begin jaar
# SE Map generation
@@ -3101,13 +3098,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Koop di
STR_GOALS_CAPTION :{WHITE}{COMPANY} Doelwitte
STR_GOALS_SPECTATOR_CAPTION :{WHITE}Globale Doelwitte
STR_GOALS_SPECTATOR :Globale doelwitte
STR_GOALS_GLOBAL_TITLE :{BLACK}Globale doelwitte:
STR_GOALS_TEXT :{ORANGE}{STRING}
STR_GOALS_NONE :{ORANGE}- Geen -
STR_GOALS_SPECTATOR_NONE :{ORANGE}- Nie van toepassing -
STR_GOALS_PROGRESS :{ORANGE}{STRING}
STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING}
STR_GOALS_COMPANY_TITLE :{BLACK}Maatskappy doelwitte:
STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Klik op doel om skerm oor die industrie/stad/teël te sentreer. Ctrl+klik maak 'n nuwe venster vir die industrie/stad/teël oop
# Goal question window

View File

@@ -187,6 +187,7 @@ STR_COLOUR_ORANGE :برتقالي
STR_COLOUR_BROWN :بني
STR_COLOUR_GREY :رمادي
STR_COLOUR_WHITE :ابيض
STR_COLOUR_DEFAULT :الإفتراضي
# Units used in OpenTTD
STR_UNITS_VELOCITY_IMPERIAL :{COMMA}{NBSP}ميل/س
@@ -218,19 +219,23 @@ STR_UNITS_HEIGHT_IMPERIAL :{COMMA}{NBSP}
STR_UNITS_HEIGHT_SI :{COMMA}{NBSP} متر
# Common window strings
STR_LIST_FILTER_TITLE :{BLACK}تصفية القائمة
STR_LIST_FILTER_OSKTITLE :{BLACK} ادخل فلتر
STR_LIST_FILTER_TOOLTIP :{BLACK} اختر كلمة اساسية لفلترة القائمة
STR_TOOLTIP_GROUP_ORDER :{BLACK}حدد ترتيب التجميع
STR_TOOLTIP_SORT_ORDER :{BLACK} اختر طريقة الترتيب - تنازلي / تصاعدي
STR_TOOLTIP_SORT_CRITERIA :{BLACK} اختر نوع الترتيب
STR_TOOLTIP_FILTER_CRITERIA :{BLACK}حدد معايير المُرَشِح
STR_BUTTON_SORT_BY :{BLACK} رتب بـ
STR_BUTTON_CATCHMENT :{BLACK}مدى التغطية
STR_TOOLTIP_CATCHMENT :{BLACK}عرض منطقة التغطية
STR_TOOLTIP_CLOSE_WINDOW :{BLACK}اغلاق الاطار
STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS :{BLACK}عنوان الاطار- اسحب لتحريك الاطار
STR_TOOLTIP_SHADE :{BLACK}نافذة الظل - تعرض العنوان فقط
STR_TOOLTIP_DEBUG :{BLACK}اظهر معلومات صائد اخطاء الاضافات الجديدة.
STR_TOOLTIP_DEFSIZE :{BLACK}تغيير حجم النافذة إلى الحجم الافتراضي. Ctrl + Click لتخزين الحجم الحالي كإعداد افتراضي
STR_TOOLTIP_STICKY :{BLACK}علم هذه النافذة كغير قابلة للإقفال باستخدام زر إغلاق كل النوافذ, اضغط مع Ctrl لجعل الأمر إفتراضيا
STR_TOOLTIP_RESIZE :{BLACK}اضغط واسحب لتعديل حجم الاطار
STR_TOOLTIP_TOGGLE_LARGE_SMALL_WINDOW :{BLACK}تبديل حجم الاطار كبير / صغير
@@ -239,7 +244,15 @@ STR_TOOLTIP_HSCROLL_BAR_SCROLLS_LIST :{BLACK}عمود
STR_TOOLTIP_DEMOLISH_BUILDINGS_ETC :{BLACK}هدم المباني و غيرها في مربع من الأرض.
# Show engines button
STR_SHOW_HIDDEN_ENGINES_VEHICLE_TRAIN :{BLACK}عرض المخفي
STR_SHOW_HIDDEN_ENGINES_VEHICLE_ROAD_VEHICLE :{BLACK}عرض المخفي
STR_SHOW_HIDDEN_ENGINES_VEHICLE_SHIP :{BLACK}عرض المخفي
STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT :{BLACK}عرض المخفي
STR_SHOW_HIDDEN_ENGINES_VEHICLE_TRAIN_TOOLTIP :{BLACK}من خلال تمكين هذا الزر ، يتم أيضًا عرض عربات القطار المخفية
STR_SHOW_HIDDEN_ENGINES_VEHICLE_ROAD_VEHICLE_TOOLTIP :{BLACK}من خلال تمكين هذا الزر ، يتم أيضًا عرض مركبات الطرق المخفية
STR_SHOW_HIDDEN_ENGINES_VEHICLE_SHIP_TOOLTIP :{BLACK}من خلال تمكين هذا الزر ، يتم أيضًا عرض السفن المخفية
STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT_TOOLTIP :{BLACK}من خلال تمكين هذا الزر ، يتم أيضًا عرض الطائرات المخفية
# Query window
STR_BUTTON_DEFAULT :{BLACK}افتراضي
@@ -292,6 +305,8 @@ STR_SORT_BY_RANGE :مدى
STR_SORT_BY_POPULATION :عدد السكان
# Group by options for vehicle list
STR_GROUP_BY_NONE :لا شيء
STR_GROUP_BY_SHARED_ORDERS :لأوامر المشتركة
# Tooltips for the main toolbar
STR_TOOLBAR_TOOLTIP_PAUSE_GAME :{BLACK}ايقاف اللعبة
@@ -304,6 +319,8 @@ STR_TOOLBAR_TOOLTIP_DISPLAY_SUBSIDIES :{BLACK}اظها
STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_STATIONS :{BLACK}عرض قائمة محطات الشركة.
STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_FINANCES :{BLACK}عرض السجل المالي للشركة
STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_GENERAL :{BLACK}عرض معلومات الشركة
STR_TOOLBAR_TOOLTIP_DISPLAY_STORY_BOOK :{BLACK}عرض كتاب القصص
STR_TOOLBAR_TOOLTIP_DISPLAY_GOALS_LIST :{BLACK}عرض قائمة الأهداف
STR_TOOLBAR_TOOLTIP_DISPLAY_GRAPHS :{BLACK}عرض المخططات
STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_LEAGUE :{BLACK}عرض جدول ترتيب الشركات
STR_TOOLBAR_TOOLTIP_FUND_CONSTRUCTION_OF_NEW :{BLACK}موّل انشاء مصنع / عرض كل المصانع
@@ -315,6 +332,7 @@ STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_IN :{BLACK}تكبي
STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_OUT :{BLACK}تصغير الصورة
STR_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}ادوات بناء سكة حديد
STR_TOOLBAR_TOOLTIP_BUILD_ROADS :{BLACK}ادوات بناء الطرق
STR_TOOLBAR_TOOLTIP_BUILD_TRAMWAYS :{BLACK}بناء خطوط الترام
STR_TOOLBAR_TOOLTIP_BUILD_SHIP_DOCKS :{BLACK}ادوات السفن
STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS :{BLACK}بناء مطارات
STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}افتح مدير تحرير التضاريس لرفع / خفض الارض, زراعة الاشجار, الخ.
@@ -377,6 +395,7 @@ STR_FILE_MENU_EXIT :خروج
# map menu
STR_MAP_MENU_MAP_OF_WORLD :خريطة العالم
STR_MAP_MENU_EXTRA_VIEWPORT :شاشة عرض اضافية
STR_MAP_MENU_LINGRAPH_LEGEND :مفتاح تدفق البضائع
STR_MAP_MENU_SIGN_LIST :قائمة العلامات
############ range for town menu starts
@@ -400,10 +419,12 @@ STR_GRAPH_MENU_CARGO_PAYMENT_RATES :معدل تكل
############ range for company league menu starts
STR_GRAPH_MENU_COMPANY_LEAGUE_TABLE :ترتيب الشركات
STR_GRAPH_MENU_DETAILED_PERFORMANCE_RATING :تقييم أداء مفصل
STR_GRAPH_MENU_HIGHSCORE :قائمه المتفوقين
############ range ends here
############ range for industry menu starts
STR_INDUSTRY_MENU_INDUSTRY_DIRECTORY :دليل المصانع
STR_INDUSTRY_MENU_INDUSTRY_CHAIN :سلاسل الصناعة
STR_INDUSTRY_MENU_FUND_NEW_INDUSTRY :مول بناء مصنع
############ range ends here
@@ -440,6 +461,7 @@ STR_TOOLBAR_SOUND_MUSIC :الموسيق
############ range for message menu starts
STR_NEWS_MENU_LAST_MESSAGE_NEWS_REPORT :الرسالة الأخيرة/التقرير الجديد
STR_NEWS_MENU_MESSAGE_HISTORY_MENU :الرسائل السابقة
STR_NEWS_MENU_DELETE_ALL_MESSAGES :احذف كل الرسائل
############ range ends here
############ range for about menu starts
@@ -883,6 +905,9 @@ STR_GAME_OPTIONS_CURRENCY_EEK :كرونا اس
STR_GAME_OPTIONS_CURRENCY_KRW :وون كوريا الجنوبية (KRW)
STR_GAME_OPTIONS_CURRENCY_ZAR :راند جنوب أفريقيا (ZAR)
STR_GAME_OPTIONS_CURRENCY_CUSTOM :مخصص ...
STR_GAME_OPTIONS_CURRENCY_GEL :(GEL) لاري جورجي
STR_GAME_OPTIONS_CURRENCY_CNY :(CNY) الرنمينبي الصيني
STR_GAME_OPTIONS_CURRENCY_HKD :(HKD) دولار هونج كونج
############ end of currency region
STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_LEFT :القيادة على اليسار
@@ -936,6 +961,11 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}دقة
STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}اختر دقة الشاشة
STR_GAME_OPTIONS_RESOLUTION_OTHER :اخرى
STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}تسريع الأجهزة
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}حدد هذا المربع للسماح لـ OpenTTD بمحاولة استخدام تسريع الأجهزة. سيتم تطبيق الإعداد الذي تم تغييره فقط عند إعادة تشغيل اللعبة
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}لن يعمل الإعداد إلا بعد إعادة تشغيل اللعبة
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}حجم اللوحة
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}حدد العنصر المطلوب
@@ -943,7 +973,21 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :تقريب عا
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :تقريب ×2
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :تقريب ×4
STR_GAME_OPTIONS_FONT_ZOOM :{BLACK}حجم الخط
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_TOOLTIP :{BLACK}حدد حجم خط الواجهة المراد استخدامه
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_AUTO :(كشف أوتوماتيكي)
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :عادي
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :حجم مزدوج
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :حجم رباعي
STR_GAME_OPTIONS_GRAPHICS :{BLACK}الرسومات
STR_GAME_OPTIONS_REFRESH_RATE :{BLACK}معدل تحديث الشاشة
STR_GAME_OPTIONS_REFRESH_RATE_TOOLTIP :{BLACK}حدد معدل تحديث الشاشة
STR_GAME_OPTIONS_REFRESH_RATE_OTHER :أخرى
STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}هرتز
STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE}قد تؤثر معدلات التحديث الأعلى من 60 هرتز على الأداء.
STR_GAME_OPTIONS_BASE_GRF :{BLACK} الواجهة الرسومية الاساسية
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK} اختر مجموعة الواجهة الرسومية
@@ -956,7 +1000,7 @@ STR_GAME_OPTIONS_BASE_SFX_DESCRIPTION_TOOLTIP :{BLACK}معلو
STR_GAME_OPTIONS_BASE_MUSIC :{BLACK}قاعده الموسيقى الاساسيه
STR_GAME_OPTIONS_BASE_MUSIC_TOOLTIP :{BLACK}اختر الموسيقى الاساسية التي تود استخدامها
STR_GAME_OPTIONS_BASE_MUSIC_STATUS :{RED}{NUM} ملف غير صالح{P ""}
STR_GAME_OPTIONS_BASE_MUSIC_STATUS :{RED}{NUM} ملف غير صالح
STR_GAME_OPTIONS_BASE_MUSIC_DESCRIPTION_TOOLTIP :{BLACK}معلومات اضافية عن الموسيقى الاساسية
STR_ERROR_RESOLUTION_LIST_FAILED :{WHITE}فشل في استرداد قائمة الدقة المدعومة
@@ -1050,6 +1094,7 @@ STR_WARNING_NO_SUITABLE_AI :{WHITE}لايو
STR_CONFIG_SETTING_TREE_CAPTION :{WHITE}الإعدادات
STR_CONFIG_SETTING_EXPAND_ALL :{BLACK}مدد الكل
STR_CONFIG_SETTING_COLLAPSE_ALL :{BLACK}إسحب الكل
STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT :(لا يوجد تفسير متوفر)
STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK} فئة:
STR_CONFIG_SETTING_RESTRICT_TYPE :{BLACK}نوع:
@@ -1084,6 +1129,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :يمين
STR_CONFIG_SETTING_CONSTRUCTION_SPEED ::سرعة البناء {STRING}
STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS ::تعطلات العربة {STRING}
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT :حد ارتفاع الخريطة:{STRING}
STR_CONFIG_SETTING_AUTOSLOPE :السماح بتحريك الأرض تحت المباني, الطرق, الخ : {STRING}
STR_CONFIG_SETTING_CATCHMENT :السماح بحدود اكثر واقعية للمحطات بحسب الحجم: {STRING}
STR_CONFIG_SETTING_EXTRADYNAMITE :السماح بحذف اكثر من الطرق المملوكة للمدينة و الجسور و غيرها: {STRING}
@@ -1296,6 +1342,7 @@ STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :الاخبار
STR_CONFIG_SETTING_STARTING_YEAR :سنة البدايه: {STRING}
STR_CONFIG_SETTING_ENDING_YEAR_ZERO :لا تنتهي
STR_CONFIG_SETTING_ALLOW_SHARES :السماح بشراء حصص من الشركات الاخرى: {STRING}
STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :عند السحب ، ضع الإشارات كل: {STRING}
STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE :اتاحة استخدام الأشارات بالأعلام قبل :{STRING}
STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI :السماح باستخدام اشارات واجهة المستخدم الرسومية: {STRING}
STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE :نوع الاشارة الذي يبنى قياسيا: {STRING}
@@ -1342,6 +1389,7 @@ STR_CONFIG_SETTING_TOWN_GROWTH_FAST :سريع
STR_CONFIG_SETTING_TOWN_GROWTH_VERY_FAST :سريع جدا
STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :مضاعف المدن المبدئي: {STRING}
STR_CONFIG_SETTING_LINKGRAPH_INTERVAL_HELPTEXT :الوقت بين عمليات إعادة الحساب المتتابعة للرسم البياني الرابط. تحسب كل عملية إعادة حساب الخطط لمكون واحد من الرسم البياني. هذا يعني أن القيمة X لهذا الإعداد لا تعني أنه سيتم تحديث الرسم البياني كل X أيام. إلا بعض المكونات. كلما قمت بتعيينه أقل، كلما زاد وقت الCPU لحسابها. كلما قمت بضبطها لفترة أطول ، كلما اسغرق الوقت حتى يتم بدأ توزيع البضائع على طرق جديدة.
STR_CONFIG_SETTING_DEMAND_SIZE_HELPTEXT :ضبط هذا إلى أقل من 100٪ يؤدي إلى جعل التوزيع المتماثل يتصرف مثل التوزيع غير المتماثل. سيتم إعادة شحنات أقل غصبا إذا تم إرسال مبلغ معين إلى المحطة. إذا قمت بتعيينه على 0٪ ، فإن التوزيع المتماثل يتصرف تمامًا مثل التوزيع غير المتماثل
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :(متري (كم / ساعة
@@ -1352,6 +1400,7 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_METRIC :(متري (طن
STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE ::وحدات جهد الجر {STRING}
STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :إمبراطوري (قدم)
STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :م) متري)
STR_CONFIG_SETTING_GRAPHICS :رسوميات {ORANGE}
@@ -1401,6 +1450,8 @@ STR_CONFIG_ERROR_INVALID_GRF_INCOMPATIBLE :غير متطا
STR_CONFIG_ERROR_INVALID_GRF_UNKNOWN :مجهول
STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_LEVEL :{WHITE}... نسبة الضغط '{STRING}' غير صحيحة
# Video initalization errors
# Intro window
STR_INTRO_CAPTION :{WHITE}OpenTTD {REV}
@@ -1426,12 +1477,13 @@ STR_INTRO_TOOLTIP_PLAY_SCENARIO :{BLACK}بدأ
STR_INTRO_TOOLTIP_SCENARIO_EDITOR :{BLACK}انشاء خريطة عالم خاصة
STR_INTRO_TOOLTIP_MULTIPLAYER :{BLACK} ابدأ لعبة جماعية
STR_INTRO_TOOLTIP_TEMPERATE :{BLACK}اختيار المناطق الثلجية
STR_INTRO_TOOLTIP_SUB_ARCTIC_LANDSCAPE :{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}اختيار نمط الألعاب
STR_INTRO_TOOLTIP_TOYLAND_LANDSCAPE :{BLACK} اختيار مناطق عالم الألعب
STR_INTRO_TOOLTIP_GAME_OPTIONS :{BLACK}عرض خيارات اللعبة
STR_INTRO_TOOLTIP_HIGHSCORE :{BLACK}عرض قائمه المتفوقين
STR_INTRO_TOOLTIP_CONFIG_SETTINGS_TREE :{BLACK}إعدادات العرض
STR_INTRO_TOOLTIP_NEWGRF_SETTINGS :{BLACK}عرض إعدادات اﻹضافات
STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK} ابحث عن محتوى جديد او تحديث
@@ -1441,6 +1493,7 @@ STR_INTRO_TRANSLATION :{BLACK}هذة
# Quit window
STR_QUIT_CAPTION :{WHITE}انهاء
STR_QUIT_ARE_YOU_SURE_YOU_WANT_TO_EXIT_OPENTTD :{YELLOW}هل أنت متأكد أنك تريد إغلاق OpenTTD؟
STR_QUIT_YES :{BLACK}نعم
STR_QUIT_NO :{BLACK}لا
@@ -1841,6 +1894,8 @@ STR_CONTENT_UNSELECT_ALL_CAPTION :{BLACK} مسح
STR_CONTENT_UNSELECT_ALL_CAPTION_TOOLTIP :{BLACK} ضع علامة على المحتوى التي لن يتم تحميلها
STR_CONTENT_SEARCH_EXTERNAL :{BLACK}بحث المواقع الخارجية
STR_CONTENT_FILTER_TITLE :{BLACK}مُرَشِح:
STR_CONTENT_OPEN_URL :{BLACK} زيارة الموقع
STR_CONTENT_OPEN_URL_TOOLTIP :{BLACK}قم بزيارة الموقع لهذا المحتوى
STR_CONTENT_DOWNLOAD_CAPTION :{BLACK} تحميل
STR_CONTENT_DOWNLOAD_CAPTION_TOOLTIP :{BLACK} ابدأ تحميل المحتويات المختارة
STR_CONTENT_TOTAL_DOWNLOAD_SIZE :{SILVER} حجم البيانات التي سيتم تحميلها: {WHITE}{BYTES}
@@ -1892,6 +1947,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}تحتا
STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}نعم, حمل الرسومات
STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}لا, اغلق اللعبة
# Transparency settings window
STR_TRANSPARENCY_CAPTION :{WHITE}خيارات الشفافية
STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}بدل شفافية اسماء المحطات. مفتاح كنترول للاغلاق.
@@ -1906,8 +1962,16 @@ STR_TRANSPARENT_LOADING_TOOLTIP :{BLACK}غير
STR_TRANSPARENT_INVISIBLE_TOOLTIP :{BLACK}اخفاء الاجرام تماما بدلا من الشفافية
# Linkgraph legend window
STR_LINKGRAPH_LEGEND_CAPTION :{BLACK}مفتاح تدفق البضائع
STR_LINKGRAPH_LEGEND_ALL :{BLACK}الكل
STR_LINKGRAPH_LEGEND_NONE :{BLACK}لا شيء
STR_LINKGRAPH_LEGEND_SELECT_COMPANIES :{BLACK}حدد الشركات المراد عرضها
STR_LINKGRAPH_LEGEND_COMPANY_TOOLTIP :{BLACK}{STRING}{}{COMPANY}
# Linkgraph legend window and linkgraph legend in smallmap
STR_LINKGRAPH_LEGEND_UNUSED :{TINY_FONT}{BLACK}غير مستخدم
STR_LINKGRAPH_LEGEND_SATURATED :{TINY_FONT}{BLACK}عادي الاستخدام
STR_LINKGRAPH_LEGEND_OVERLOADED :{TINY_FONT}{BLACK}زائد الاستخدام
# Base for station construction window(s)
STR_STATION_BUILD_COVERAGE_AREA_TITLE :{BLACK}وضح منطقة التغطية
@@ -2029,7 +2093,10 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_TUNNEL :{BLACK}بناء
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_TOOLBAR_TOOLTIP_CONVERT_ROAD :{BLACK}تحويل / ترقية نوع الطريق. Shift يبدل بين البناء / إظهار تقدير التكلفة
STR_ROAD_TOOLBAR_TOOLTIP_CONVERT_TRAM :{BLACK}تحويل / ترقية نوع الطريق. Shift يبدل بين البناء / إظهار تقدير التكلفة
STR_ROAD_NAME_TRAM :خط الترام
# Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}اتجاه ورشة الصيانة
@@ -2187,10 +2254,13 @@ STR_INDUSTRY_DISPLAY_CHAIN_TOOLTIP :{BLACK}اعرض
STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP :{BLACK}اربط بالخريطة المصغرة
STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP_TOOLTIP :{BLACK}اعرض المصانع المختارة في الخرائط المصغرة ايضا.
STR_INDUSTRY_CARGOES_SELECT_CARGO :{BLACK}اختر البضائع
STR_INDUSTRY_CARGOES_SELECT_CARGO_TOOLTIP :{BLACK}حدد البضائع التي تريد عرضها
STR_INDUSTRY_CARGOES_SELECT_INDUSTRY :{BLACK}اختر الصناعة
STR_INDUSTRY_CARGOES_SELECT_INDUSTRY_TOOLTIP :{BLACK}حدد الصناعة التي تريد عرضها
# Land area window
STR_LAND_AREA_INFORMATION_CAPTION :{WHITE}معلومات ارض
STR_LAND_AREA_INFORMATION_LOCATION_TOOLTIP :{BLACK}قم بتوسيط الشاشة على موقع المربع. يؤدي الضغط على Ctrl + النقر بالماوس إلى فتح منفذ عرض جديد على موقع المربع
STR_LAND_AREA_INFORMATION_COST_TO_CLEAR_N_A :{BLACK} تكلفة الازالة : {LTBLUE} غير متاح
STR_LAND_AREA_INFORMATION_COST_TO_CLEAR :{BLACK}تكلفة الازالة : {RED}{CURRENCY_LONG}
STR_LAND_AREA_INFORMATION_REVENUE_WHEN_CLEARED :{BLACK} الدخل عند للتجديد: {LTBLUE}{CURRENCY_LONG}
@@ -2352,13 +2422,11 @@ STR_SAVELOAD_OSKTITLE :{BLACK}ادخل
# World generation
STR_MAPGEN_WORLD_GENERATION_CAPTION :{WHITE}مولد الخريطة
STR_MAPGEN_MAPSIZE :{BLACK}حجم الخريطة
STR_MAPGEN_MAPSIZE_TOOLTIP :{BLACK} حدد حجم الخريطة بالمربعات. سيكون عدد المربعات المتاحة أصغر قليلاً
STR_MAPGEN_BY :{BLACK}*
STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}عدد المدن:
STR_MAPGEN_DATE :{BLACK}التاريخ:
STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}عدد المصانع:
STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK} ارتفاع خط الثلج
STR_MAPGEN_SNOW_LINE_UP :{BLACK}ارفع خط الثلج مستوى واحد
STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}خفض خط الثلج مستوى واحد
STR_MAPGEN_LAND_GENERATOR :{BLACK}مولد الخريطة:
STR_MAPGEN_TERRAIN_TYPE :{BLACK} نوع التضاريس
STR_MAPGEN_QUANTITY_OF_SEA_LAKES :{BLACK}مستوى البحر
@@ -2384,8 +2452,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}اسم
STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}الحجم:
STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} * {NUM}
STR_MAPGEN_MAX_HEIGHTLEVEL_QUERY_CAPT :{WHITE}تغيير أعلى ارتفاع للخريطة
STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}غير مستوى خط الثلج
STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}غير سنة البداية
# SE Map generation
@@ -2596,6 +2662,7 @@ STR_TOWN_POPULATION :{BLACK}سكان
STR_TOWN_VIEW_TOWN_CAPTION :{WHITE}{TOWN}
STR_TOWN_VIEW_CITY_CAPTION :{WHITE}{TOWN} - مدينة -
STR_TOWN_VIEW_POPULATION_HOUSES :{BLACK}السكان: {ORANGE}{COMMA}{BLACK} المنازل: {ORANGE}{COMMA}
STR_TOWN_VIEW_CARGO_LAST_MONTH_MAX :{BLACK}{CARGO_LIST} الشهر الماضي: {ORANGE}{COMMA}{BLACK} الأقصى: {ORANGE}{COMMA}
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH :{BLACK} نمو المدينة يتطلب بضائع
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_GENERAL :{ORANGE}{STRING}{RED} مطلوب
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_WINTER :{ORANGE}{STRING}{BLACK}مطلوب في الشتاء
@@ -2620,6 +2687,8 @@ STR_TOWN_VIEW_RENAME_TOWN_BUTTON :اعادة تس
# Town local authority window
STR_LOCAL_AUTHORITY_CAPTION :{WHITE}بلدية {TOWN}
STR_LOCAL_AUTHORITY_ZONE :{BLACK}المنطقة
STR_LOCAL_AUTHORITY_ZONE_TOOLTIP :{BLACK}عرض منطقة حدود السلطة المحلية
STR_LOCAL_AUTHORITY_COMPANY_RATINGS :{BLACK}تقييم اداء الشركات
STR_LOCAL_AUTHORITY_COMPANY_RATING :{YELLOW}{COMPANY} {COMPANY_NUM}: {ORANGE}{STRING}
STR_LOCAL_AUTHORITY_ACTIONS_TITLE :{BLACK}الخيارات المتاحة
@@ -2646,6 +2715,7 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW} اشت
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW} ارشي السلطات المحلية لزيادة كفائة الشركة. هناك عقاب شديد اذا ما اكتشفت الرشوة.{} التكلفة: {CURRENCY_LONG}
# Goal window
STR_GOALS_SPECTATOR :الأهداف العالمية
STR_GOALS_TEXT :{ORANGE}{STRING}
# Goal question window
@@ -2655,7 +2725,9 @@ STR_GOAL_QUESTION_CAPTION_WARNING :تحذير
STR_GOAL_QUESTION_CAPTION_ERROR :خطا
############ Start of Goal Question button list
STR_GOAL_QUESTION_BUTTON_YES :نعم
STR_GOAL_QUESTION_BUTTON_RETRY :إعادة المحاولة
STR_GOAL_QUESTION_BUTTON_RESTART :إعادة تشغيل
############ End of Goal Question button list
# Subsidies window
@@ -2668,7 +2740,7 @@ STR_SUBSIDIES_SUBSIDISED_FROM_TO :{ORANGE}{STRING
STR_SUBSIDIES_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}اضغط على الخدمة لتوسيط الخريطة على المصنع/المدينة. اضغط + كنترول لفتح شاشة عرض جديدة للمدينة.
# Story book window
STR_STORY_BOOK_CAPTION :{WHITE}{COMPANY}كتاب القصة
STR_STORY_BOOK_CAPTION :{WHITE}{COMPANY}كتاب القصص
# Station list window
STR_STATION_LIST_TOOLTIP :{BLACK}اسم المحطة - اضغط على اسم المحطة لتوسيطها في الشاشة. اضغط + كنترول لفتح شاشة عرض جديدة بمنطقة المحطة.
@@ -2690,11 +2762,15 @@ STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}يستق
STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}عرض لائحة بالبضائع المقبولة
STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}يقبل: {WHITE}{CARGO_LIST}
STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} اشترى حقوق النقل الحصرية في هذه المدينة.
STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}معدل النقل
STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}اظهار معدل النقل للمحطة
STR_STATION_VIEW_GROUP :{BLACK}جمع بواسطة
STR_STATION_VIEW_WAITING_AMOUNT :الكمية: في الانتظار
STR_STATION_VIEW_FROM :{YELLOW}{CARGO_SHORT} من {STATION}
STR_STATION_VIEW_TO :{YELLOW}{CARGO_SHORT} إلى {STATION}
############ range for rating starts
@@ -2723,7 +2799,7 @@ STR_STATION_VIEW_RENAME_STATION_CAPTION :اعادة تس
STR_WAYPOINT_VIEW_CAPTION :{WHITE}{WAYPOINT}
STR_WAYPOINT_VIEW_CENTER_TOOLTIP :{BLACK} ركز شاشة العرض على نقطة العبور
STR_WAYPOINT_VIEW_CHANGE_WAYPOINT_NAME :{BLACK}غير اسم نقطة العبور
STR_BUOY_VIEW_CENTER_TOOLTIP :{BLACK} ضع العوامة في مركز شاشة العرض
STR_BUOY_VIEW_CENTER_TOOLTIP :{BLACK} ضع العوامة في مركز الشاشة
STR_BUOY_VIEW_CHANGE_BUOY_NAME :{BLACK} غير اسم العومة
STR_EDIT_WAYPOINT_NAME :{WHITE}عدل اسم نقطة العبور
@@ -2756,6 +2832,7 @@ STR_FINANCES_BORROW_BUTTON :{BLACK}اقتر
STR_FINANCES_BORROW_TOOLTIP :{BLACK}زيادة حجم القرض المسموح به
STR_FINANCES_REPAY_BUTTON :{BLACK}تسديد{CURRENCY_LONG}
STR_FINANCES_REPAY_TOOLTIP :{BLACK}اعادة جزء من القرض
STR_FINANCES_INFRASTRUCTURE_BUTTON :{BLACK}البنية التحتية
# Company view
STR_COMPANY_VIEW_CAPTION :{WHITE}{COMPANY} {BLACK}{COMPANY_NUM}
@@ -2771,6 +2848,13 @@ STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA}
STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}بدون
STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}قيمة الشركة: {WHITE}{CURRENCY_LONG}
STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}( {COMMA}% مملوكة بواسطة {COMPANY})
STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}البنية تحتية:
STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}{COMMA} قطعة السكك الحديدية
STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}{COMMA} قطعة الطريق
STR_COMPANY_VIEW_INFRASTRUCTURE_WATER :{WHITE}{COMMA} مربعات الماء
STR_COMPANY_VIEW_INFRASTRUCTURE_STATION :{WHITE}{COMMA} مربع من المحطة
STR_COMPANY_VIEW_INFRASTRUCTURE_AIRPORT :{WHITE}{COMMA} مطار
STR_COMPANY_VIEW_INFRASTRUCTURE_NONE :{WHITE}لا شيء
STR_COMPANY_VIEW_BUILD_HQ_BUTTON :{BLACK}بناء مقر الشركة الرئيسي
STR_COMPANY_VIEW_BUILD_HQ_TOOLTIP :{BLACK}ابني مقر الشركة
@@ -2778,6 +2862,10 @@ STR_COMPANY_VIEW_VIEW_HQ_BUTTON :{BLACK}عرض
STR_COMPANY_VIEW_VIEW_HQ_TOOLTIP :{BLACK}اعرض مقر الشركة
STR_COMPANY_VIEW_RELOCATE_HQ :{BLACK}اعادة بناء مقر الشركة
STR_COMPANY_VIEW_RELOCATE_COMPANY_HEADQUARTERS :{BLACK}اعادة بناء مقر الشركة بمكان آخر و بتكلفة 1% من قيمة الشركة.
STR_COMPANY_VIEW_INFRASTRUCTURE_BUTTON :{BLACK}التفاصيل
STR_COMPANY_VIEW_INFRASTRUCTURE_TOOLTIP :{BLACK}عرض تفاصيل حسابات البنية التحتية
STR_COMPANY_VIEW_GIVE_MONEY_BUTTON :{BLACK}أعطاء المال
STR_COMPANY_VIEW_GIVE_MONEY_TOOLTIP :{BLACK}إعطاء المال لهذه الشركة
STR_COMPANY_VIEW_NEW_FACE_BUTTON :{BLACK}وجة جديد
STR_COMPANY_VIEW_NEW_FACE_TOOLTIP :{BLACK}اختر وجة جديد للمدير
@@ -2795,10 +2883,21 @@ STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}بيع 2
STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :اسم الشركة
STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :اسم صاحب الشركة
STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :أدخل مبلغ المال الذي تريد تقديمه
STR_BUY_COMPANY_MESSAGE :{WHITE}نحن نبحث عن شركة لتشتري شركتنا.{}{} عل ترغب في شراء {COMPANY} بـ {CURRENCY_LONG}؟
# Company infrastructure window
STR_COMPANY_INFRASTRUCTURE_VIEW_CAPTION :{WHITE}البنية التحتية لـ {COMPANY}
STR_COMPANY_INFRASTRUCTURE_VIEW_RAIL_SECT :{GOLD}قطع السكك الحديدية:
STR_COMPANY_INFRASTRUCTURE_VIEW_SIGNALS :{WHITE}إشارات
STR_COMPANY_INFRASTRUCTURE_VIEW_ROAD_SECT :{GOLD}قطع الطريق:
STR_COMPANY_INFRASTRUCTURE_VIEW_TRAM_SECT :{GOLD}قطع الترام:
STR_COMPANY_INFRASTRUCTURE_VIEW_WATER_SECT :{GOLD}مربعات من الماء:
STR_COMPANY_INFRASTRUCTURE_VIEW_CANALS :{WHITE}القنوات
STR_COMPANY_INFRASTRUCTURE_VIEW_STATION_SECT :{GOLD}المحطات:
STR_COMPANY_INFRASTRUCTURE_VIEW_STATIONS :{WHITE}مربعات من المحطة
STR_COMPANY_INFRASTRUCTURE_VIEW_AIRPORTS :{WHITE}المطارات
# Industry directory
STR_INDUSTRY_DIRECTORY_CAPTION :{WHITE}صناعات
@@ -2881,6 +2980,9 @@ STR_GROUP_REMOVE_ALL_VEHICLES :أزل جميع
STR_GROUP_RENAME_CAPTION :{BLACK}إعادة تسمية مجموعة
STR_GROUP_PROFIT_THIS_YEAR :دخل هذه السنة:
STR_GROUP_PROFIT_LAST_YEAR :دخل السنة الماضية:
STR_GROUP_OCCUPANCY :الاستخدام الحالي:
# Build vehicle window
STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :عربات قطار جديدة
@@ -2916,6 +3018,7 @@ STR_PURCHASE_INFO_ALL_TYPES :كل انواع
STR_PURCHASE_INFO_NONE :بدون
STR_PURCHASE_INFO_ALL_BUT :الكل الا {CARGO_LIST}
STR_PURCHASE_INFO_MAX_TE :{BLACK}تأثير الجذب القصى: {GOLD}{FORCE}
STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}نوع الطائرة:{GOLD}{STRING}
STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}قائمة اختيار القطارات - اضغط على العربة لعرض معلوماتها
STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}قائمة اختيار العربات - اضغط على العربة لاظهار معلوماتها
@@ -2945,7 +3048,14 @@ STR_BUY_VEHICLE_ROAD_VEHICLE_RENAME_TOOLTIP :{BLACK} اعا
STR_BUY_VEHICLE_SHIP_RENAME_TOOLTIP :{BLACK}اعادة تسمية نوع السفينة
STR_BUY_VEHICLE_AIRCRAFT_RENAME_TOOLTIP :{BLACK}اعادة تسمية نوع الطائرة
STR_BUY_VEHICLE_TRAIN_HIDE_TOGGLE_BUTTON :{BLACK}إخفاء
STR_BUY_VEHICLE_ROAD_VEHICLE_HIDE_TOGGLE_BUTTON :{BLACK}إخفاء
STR_BUY_VEHICLE_SHIP_HIDE_TOGGLE_BUTTON :{BLACK}إخفاء
STR_BUY_VEHICLE_AIRCRAFT_HIDE_TOGGLE_BUTTON :{BLACK}إخفاء
STR_BUY_VEHICLE_TRAIN_SHOW_TOGGLE_BUTTON :{BLACK}عرض
STR_BUY_VEHICLE_ROAD_VEHICLE_SHOW_TOGGLE_BUTTON :{BLACK}عرض
STR_BUY_VEHICLE_SHIP_SHOW_TOGGLE_BUTTON :{BLACK}عرض
STR_BUY_VEHICLE_AIRCRAFT_SHOW_TOGGLE_BUTTON :{BLACK}عرض
STR_BUY_VEHICLE_AIRCRAFT_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK} تبيدل بين إخفاء / عرض نوع الطائرة
@@ -3084,6 +3194,7 @@ STR_REPLACE_REMOVE_WAGON_HELP :{BLACK} الم
# Vehicle view
STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE}
STR_VEHICLE_VIEW_ROAD_VEHICLE_CENTER_TOOLTIP :{BLACK}وسط الشاشة على موقع السيارة.النقر بالماوس مرتين لمتابعة السيارة. يفتح Ctrl + النقر بالماوس منفذ عرض جديد على موقع السيارة
STR_VEHICLE_VIEW_TRAIN_SEND_TO_DEPOT_TOOLTIP :{BLACK} ارسل القطار للورشة - مفتاح التحكم (كنترول) + الضغط سيرسله لصيانة فقط
STR_VEHICLE_VIEW_ROAD_VEHICLE_SEND_TO_DEPOT_TOOLTIP :{BLACK}ارسل العربة الى الورشة. مفتاح التحكم (كنترول) + الضغط ترسل للصيانة فقط
@@ -3173,6 +3284,7 @@ STR_VEHICLE_DETAILS_SERVICING_INTERVAL_PERCENT :{BLACK}فترا
STR_VEHICLE_DETAILS_INCREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK}زيادة فترات الصيانة بقدر 10. ومع مفتاح كنترول بمقدار 5.
STR_VEHICLE_DETAILS_DECREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK} انقاص فترات الصيانة بمعدل 10. Ctrl+ الضغط الانقاص بمعدل 5.
STR_VEHICLE_DETAILS_DAYS :الأيام
STR_QUERY_RENAME_TRAIN_CAPTION :{WHITE}اسم القطار
STR_QUERY_RENAME_ROAD_VEHICLE_CAPTION :{WHITE}تسمية العربة
@@ -3409,6 +3521,7 @@ STR_TIMETABLE_STATUS_NOT_STARTED :{BLACK}جدول
STR_TIMETABLE_STATUS_START_AT :{BLACK}جدولة الاعمال ستبدأ فى {STRING}
STR_TIMETABLE_STARTING_DATE :{BLACK}تاريخ البدأ
STR_TIMETABLE_STARTING_DATE_TOOLTIP :{BLACK}حدد تاريخًا كنقطة بداية لهذا الجدول الزمني. يحدد Ctrl + Click نقطة البداية لهذا الجدول الزمني ويوزع جميع المركبات التي تشارك هذا الطلب بالتساوي بناءً على ترتيبها النسبي ، إذا كان الطلب محددًا بجدول زمني كامل
STR_TIMETABLE_CHANGE_TIME :{BLACK}غير الوقت
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}غير مقدار الزمن الذي يستغرقه هذا الامر
@@ -3471,6 +3584,7 @@ STR_ERROR_AI_DEBUG_SERVER_ONLY :{YELLOW} شاش
STR_AI_CONFIG_CAPTION :{WHITE}إعدادات الذكاء الصناعي
STR_AI_CONFIG_HUMAN_PLAYER :لاعب انساني
STR_AI_CONFIG_RANDOM_AI :ذكاء صناعي عشوائي
STR_AI_CONFIG_NONE :(لا شيء)
STR_AI_CONFIG_MOVE_UP :{BLACK}انقل للاعلى
STR_AI_CONFIG_MOVE_UP_TOOLTIP :{BLACK}انقل الذكاء الاصطناعي المختار للاعلى
@@ -3495,6 +3609,7 @@ STR_AI_LIST_CANCEL :{BLACK} الغ
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK} لا تغير الذكاء الصناعي
STR_SCREENSHOT_ZOOMIN_SCREENSHOT :{BLACK}التقط لقطة شاشة كاملة
STR_SCREENSHOT_WORLD_SCREENSHOT :{BLACK}صور الخاريطة الكاملة
# AI Parameters
STR_AI_SETTINGS_CLOSE :{BLACK} اغلاق
@@ -3506,6 +3621,7 @@ STR_AI_SETTINGS_SETTING :{STRING}: {ORAN
STR_TEXTFILE_README_CAPTION :{WHITE}{STRING}اقراني {STRING}
STR_TEXTFILE_CHANGELOG_CAPTION :{WHITE}{STRING} سجل التغيير ل{STRING}
STR_TEXTFILE_LICENCE_CAPTION :{WHITE}{STRING}رخصة {STRING}
STR_TEXTFILE_WRAP_TEXT :{WHITE}التفاف النص
STR_TEXTFILE_VIEW_README :{BLACK}اعرض ملف التعليمات ريدمي
STR_TEXTFILE_VIEW_CHANGELOG :{BLACK}اعرض سجل التغييرات
STR_TEXTFILE_VIEW_LICENCE :{BLACK}الرخصة

View File

@@ -960,6 +960,8 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Pantaila
STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Pantailaren resulozioa aukeratu
STR_GAME_OPTIONS_RESOLUTION_OTHER :besteak
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Interfaze tamaina
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :Normala
@@ -968,6 +970,8 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Tamaina laukoit
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Grafiko basea markatu
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Aukeratu erabili beharreko grafiko paketea
STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} galdutako/hautsitako artxiboa{P "" k}
@@ -1625,6 +1629,8 @@ STR_CONFIG_ERROR_INVALID_BASE_SOUNDS_NOT_FOUND :{WHITE}... jara
STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... jaramonik ez egiten musika paketeari'{STRING}': ez da aurkitu
STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Memoriaz kanpo
# Video initalization errors
# Intro window
STR_INTRO_CAPTION :{WHITE}OpenTTD {REV}
@@ -2135,6 +2141,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD-
STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Bai, grafikoak jaitsi
STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Ez, OpenTTD itxi
# Transparency settings window
STR_TRANSPARENCY_CAPTION :{WHITE}Gardentasun aukerak
STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Seinaleen gardentasuna aldatu. Ktrl+Klik blokeatzeko
@@ -2606,9 +2613,6 @@ STR_MAPGEN_BY :{BLACK}*
STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}Herri kopurua:
STR_MAPGEN_DATE :{BLACK}Data:
STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Industria kopurua:
STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Elur garaiera:
STR_MAPGEN_SNOW_LINE_UP :{BLACK}Igo puntu batean elur garaiera
STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Jeitsi puntu batean elur garaiera
STR_MAPGEN_LAND_GENERATOR :{BLACK}Paisaia sortzailea:
STR_MAPGEN_TERRAIN_TYPE :{BLACK}Lur mota:
STR_MAPGEN_QUANTITY_OF_SEA_LAKES :{BLACK}Itsaso kopurua:
@@ -2634,8 +2638,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Garaiera
STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Tamaina:
STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM}
STR_MAPGEN_MAX_HEIGHTLEVEL_QUERY_CAPT :{WHITE}Aldatu maparen garaiera maximoa
STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Elur garaiera aldatu
STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Hasierako urtea aldatu
# SE Map generation
@@ -2903,13 +2905,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Udaletx
# Goal window
STR_GOALS_CAPTION :{WHITE}{COMPANY} Helburuak
STR_GOALS_SPECTATOR_CAPTION :{WHITE}Helburu orokorrak
STR_GOALS_GLOBAL_TITLE :{BLACK}Helburu orokorrak:
STR_GOALS_TEXT :{ORANGE}{STRING}
STR_GOALS_NONE :{ORANGE}- Ezer ez -
STR_GOALS_SPECTATOR_NONE :{ORANGE}- Ez aplikagarria -
STR_GOALS_PROGRESS :{ORANGE}{STRING}
STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING}
STR_GOALS_COMPANY_TITLE :{BLACK}Konpainiaren helburuak:
STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Klikatu helburuan ikupegi nagusia industrian/herrian/laukian zentratzeko. Ktrl+Klik ikuspegi lehio berria irekiko du industri/herri/laukiaren kokapenean
# Goal question window

View File

@@ -1298,6 +1298,8 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Выра
STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Выбар вырашэньня экрана
STR_GAME_OPTIONS_RESOLUTION_OTHER :Iншае
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Памер элементаў інтэрфейсу
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Выберыце памер элементаў інтэрфейсу
@@ -1310,6 +1312,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Абяр
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Звычайны
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Набор базавай ґрафікі
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Выбар базавага набору ґрафічных аб'ектаў
STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} адсутнічаюч{P ы ых ых}/пашкоджан{P ы ых ых} файл{P "" ы аў}
@@ -1485,8 +1489,6 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Пераклю
STR_CONFIG_SETTING_CITY_APPROVAL :Стаўленьне гарадзкой рады да рэструктурызацыі навакольляў: {STRING}
STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Выберыце ўзровень шуму й забруджваньня навакольнага асяроддзя кампаніямі, які ўплывае на іх рэйтынґ у гарадах і магчымасьць далейшага будаўніцтва каля гарадоў
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :Максімальная вышыня: {STRING}
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :Усталёўка максімальна дапушчальнай вышыні гор на мапе
STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}Немагчыма зьмяніць максімальную вышыню. На мапе ёсць горы вышэй гэтага значэньня.
STR_CONFIG_SETTING_AUTOSLOPE :Дазволіць зьмену ляндшафту пад будынкамі, дарогамі й г. д. (аўтаспускі): {STRING}
STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Дазволіць зьмену ляндшафту пад будынкамі й рэйкамi, не выдаляючы іx
@@ -2058,6 +2060,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... на
STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Недахоп апэратыўнай памяці
STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Не атрымалася вылучыць {BYTES} для кэша спрайтаў. Памер кэша зніжаны да {BYTES}. Гэта адмоўна адаб'ецца на прадукцыйнасьці OpenTTD. Каб зьменшыць выдаткі памяці, адключыце 32-бітную ґрафіку й зьменшыце максімальны ўзровень набліжэньня.
# Video initalization errors
# Intro window
STR_INTRO_CAPTION :{WHITE}OpenTTD {REV}
@@ -2594,6 +2598,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD
STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Так, спампаваць ґрафiку
STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Не, выйсьцi з OpenTTD
# Transparency settings window
STR_TRANSPARENCY_CAPTION :{WHITE}Наладкі празрыстасьці
STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Пераключэньне празрыстасьці надпісаў. Ctrl+пстрычка — заблякаваць.
@@ -3105,12 +3110,6 @@ STR_MAPGEN_BY :{BLACK}*
STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}Колькасьць гарадоў:
STR_MAPGEN_DATE :{BLACK}Дата:
STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Колькасьць прадпрыемстваў:
STR_MAPGEN_MAX_HEIGHTLEVEL :{BLACK}Макс. вышыня мапы:
STR_MAPGEN_MAX_HEIGHTLEVEL_UP :{BLACK}Павялічыць максімальную вышыню мапы на 1
STR_MAPGEN_MAX_HEIGHTLEVEL_DOWN :{BLACK}Паменшыць максімальную вышыню мапы на 1
STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Вышыня сьнегавой лініі:
STR_MAPGEN_SNOW_LINE_UP :{BLACK}Падняць сьнегавую лінію
STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Апусьціць сьнегавую лінію
STR_MAPGEN_LAND_GENERATOR :{BLACK}Ґенэратар ляндшафту:
STR_MAPGEN_TERRAIN_TYPE :{BLACK}Тып ляндшафту:
STR_MAPGEN_QUANTITY_OF_SEA_LAKES :{BLACK}Колькасьць азёраў/мораў:
@@ -3136,8 +3135,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Назв
STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Памер:
STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} * {NUM}
STR_MAPGEN_MAX_HEIGHTLEVEL_QUERY_CAPT :{WHITE}Максімальная вышыня мапы
STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Зьмяніць вышыню сьнегавой лініі
STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Зьмяніць год пачатку гульні
# SE Map generation
@@ -3423,13 +3420,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Дац
STR_GOALS_CAPTION :{WHITE}Задачы кампаніі «{COMPANY}»
STR_GOALS_SPECTATOR_CAPTION :{WHITE}Глабальныя задачы
STR_GOALS_SPECTATOR :Агульныя задачы
STR_GOALS_GLOBAL_TITLE :{BLACK}Агульныя задачы:
STR_GOALS_TEXT :{ORANGE}{STRING}
STR_GOALS_NONE :{ORANGE}- Няма -
STR_GOALS_SPECTATOR_NONE :{ORANGE}- Непрыстасоўна -
STR_GOALS_PROGRESS :{ORANGE}{STRING}
STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING}
STR_GOALS_COMPANY_TITLE :{BLACK}Задачы кампаніі:
STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Пстрыкніце па задачы, каб паказаць прадпрыемства/горад/клетку. Ctrl+пстрычка паказвае ў новым вакне.
# Goal question window

View File

@@ -195,6 +195,7 @@ STR_COLOUR_DEFAULT :Padrão
STR_UNITS_VELOCITY_IMPERIAL :{COMMA}{NBSP}mph
STR_UNITS_VELOCITY_METRIC :{COMMA}{NBSP}km/h
STR_UNITS_VELOCITY_SI :{COMMA}{NBSP}m/s
STR_UNITS_VELOCITY_GAMEUNITS :{DECIMAL}{NBSP}quadrados/dia
STR_UNITS_POWER_IMPERIAL :{COMMA}{NBSP}hp
STR_UNITS_POWER_METRIC :{COMMA}{NBSP}cv
@@ -313,8 +314,15 @@ STR_SORT_BY_CARGO_CAPACITY :Capacidade de C
STR_SORT_BY_RANGE :Alcance
STR_SORT_BY_POPULATION :População
STR_SORT_BY_RATING :Classificação
STR_SORT_BY_NUM_VEHICLES :Número de veículos
STR_SORT_BY_TOTAL_PROFIT_LAST_YEAR :Lucro total do ano passado
STR_SORT_BY_TOTAL_PROFIT_THIS_YEAR :Lucro total deste ano
STR_SORT_BY_AVERAGE_PROFIT_LAST_YEAR :Lucro médio do ano passado
STR_SORT_BY_AVERAGE_PROFIT_THIS_YEAR :Lucro médio deste ano
# Group by options for vehicle list
STR_GROUP_BY_NONE :Nenhum
STR_GROUP_BY_SHARED_ORDERS :Ordens compartilhadas
# Tooltips for the main toolbar
STR_TOOLBAR_TOOLTIP_PAUSE_GAME :{BLACK}Pausar jogo
@@ -370,7 +378,7 @@ STR_SCENEDIT_TOOLBAR_PLACE_OBJECT :{BLACK}Colocar
STR_SCENEDIT_FILE_MENU_SAVE_SCENARIO :Salvar cenário
STR_SCENEDIT_FILE_MENU_LOAD_SCENARIO :Carregar cenário
STR_SCENEDIT_FILE_MENU_SAVE_HEIGHTMAP :Salvar mapa topográfico
STR_SCENEDIT_FILE_MENU_LOAD_HEIGHTMAP :Carregar mapa de elevação
STR_SCENEDIT_FILE_MENU_LOAD_HEIGHTMAP :Carregar mapa topográfico
STR_SCENEDIT_FILE_MENU_QUIT_EDITOR :Sair do editor de cenários
STR_SCENEDIT_FILE_MENU_SEPARATOR :
STR_SCENEDIT_FILE_MENU_QUIT :Sair
@@ -772,6 +780,7 @@ STR_SMALLMAP_TOOLTIP_ENABLE_ALL_CARGOS :{BLACK}Exibe to
STR_STATUSBAR_TOOLTIP_SHOW_LAST_NEWS :{BLACK}Exibir a última mensagem ou notícia
STR_STATUSBAR_COMPANY_NAME :{SILVER}- - {COMPANY} - -
STR_STATUSBAR_PAUSED :{YELLOW}* * PAUSADO * *
STR_STATUSBAR_PAUSED_LINK_GRAPH :{ORANGE}* * PAUSADO (aguardando atualização do gráfico de links) * *
STR_STATUSBAR_AUTOSAVE :{RED}Salvo Automaticamente
STR_STATUSBAR_SAVING_GAME :{RED}* * SALVANDO JOGO * *
@@ -930,14 +939,16 @@ STR_GAME_OPTIONS_CURRENCY_LTL :Litas Lituano (
STR_GAME_OPTIONS_CURRENCY_KRW :Won Sul-Coreano (KRW)
STR_GAME_OPTIONS_CURRENCY_ZAR :Rand Sul-Africano (ZAR)
STR_GAME_OPTIONS_CURRENCY_CUSTOM :Personalizado...
STR_GAME_OPTIONS_CURRENCY_GEL :Lari da Georgia
STR_GAME_OPTIONS_CURRENCY_IRR :Rial Iraniano
STR_GAME_OPTIONS_CURRENCY_GEL :Lari da Georgia (GEL)
STR_GAME_OPTIONS_CURRENCY_IRR :Rial Iraniano (IRR)
STR_GAME_OPTIONS_CURRENCY_RUB :Novo Rublo Russo (RUB)
STR_GAME_OPTIONS_CURRENCY_MXN :Peso Mexicano (MXN)
STR_GAME_OPTIONS_CURRENCY_NTD :Novo dólar de Taiwan (NTD)
STR_GAME_OPTIONS_CURRENCY_CNY :Renminbi chinês (CNY)
STR_GAME_OPTIONS_CURRENCY_HKD :Dólar de Hong Kong (HKD)
STR_GAME_OPTIONS_CURRENCY_INR :Rúpia Indiana (INR)
STR_GAME_OPTIONS_CURRENCY_IDR :Rupia Indonésia (IDR)
STR_GAME_OPTIONS_CURRENCY_MYR :Ringgit Malaio (MYR)
############ end of currency region
STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_LEFT :Dirigem na esquerda
@@ -990,10 +1001,19 @@ STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}Marcar e
STR_GAME_OPTIONS_RESOLUTION :{BLACK}Resolução da tela
STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Selecionar a resolução da tela para usar
STR_GAME_OPTIONS_RESOLUTION_OTHER :outra
STR_GAME_OPTIONS_RESOLUTION_ITEM :{NUM}x{NUM}
STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Aceleração de hardware
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Marque esta caixa para permitir que o OpenTTD tente usar a aceleração de hardware. Qualquer mudança nesta configuração só será aplicada após reiniciar o jogo.
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}A configuração só terá efeito após reiniciar o jogo
STR_GAME_OPTIONS_VIDEO_VSYNC :{BLACK}VSync
STR_GAME_OPTIONS_VIDEO_VSYNC_TOOLTIP :{BLACK}Marque esta caixa para habilitar o v-sync na tela. Qualquer mudança nesta configuração só será aplicada após reiniciar o jogo. Só funciona com a aceleração de hardware habilitada
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Tamanho da interface
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Selecione o tamanho de elemento de interface a ser usado
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_AUTO :(detecção automática)
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :Normal
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :Dobro
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Quádruplo
@@ -1001,10 +1021,19 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Quádruplo
STR_GAME_OPTIONS_FONT_ZOOM :{BLACK}Tamanho da fonte
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Selecione o tamanho da fonte da interface a ser usado
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_AUTO :(detecção automática)
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Tamanho duplo
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Tamanho quádruplo
STR_GAME_OPTIONS_GRAPHICS :{BLACK}Gráficos
STR_GAME_OPTIONS_REFRESH_RATE :{BLACK}Taxa de atualização da tela
STR_GAME_OPTIONS_REFRESH_RATE_TOOLTIP :{BLACK}Selecione a taxa de atualização da tela a ser usada
STR_GAME_OPTIONS_REFRESH_RATE_OTHER :outra
STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}Hz
STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE}Taxas de atualização superiores a 60Hz podem afetar o desempenho.
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Conjunto de gráficos base
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Selecionar o conjunto de gráficos base para usar
STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} arquivo{P "" s} faltando/corrompido{P "" s}
@@ -1099,6 +1128,8 @@ STR_TERRAIN_TYPE_FLAT :Plano
STR_TERRAIN_TYPE_HILLY :Acidentado
STR_TERRAIN_TYPE_MOUNTAINOUS :Montanhoso
STR_TERRAIN_TYPE_ALPINIST :Alpinista
STR_TERRAIN_TYPE_CUSTOM :Altura personalizada
STR_TERRAIN_TYPE_CUSTOM_VALUE :Altura personalizada ({NUM})
STR_CITY_APPROVAL_PERMISSIVE :Permissivo
STR_CITY_APPROVAL_TOLERANT :Tolerante
@@ -1180,9 +1211,11 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Alterna desastr
STR_CONFIG_SETTING_CITY_APPROVAL :Atitude da prefeitura em relação à restruturação local: {STRING}
STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Escolhe como a poluição sonoroa e ambiental afeta a classificação na cidade e as ações futuras naquela área
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :Altura máx. do mapa: {STRING}
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :Define a altitude máxima para montanhas no mapa
STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}Impossível definir a altitude máx. do mapa para esse valor. Há ao menos uma montanha mais alta que isso
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT :Limite de altura do mapa: {STRING}
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_HELPTEXT :Define a altura máxima do terreno do mapa. Com "(automático)", um bom valor será escolhido após a geração do terreno
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_VALUE :{NUM}
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_AUTO :(automático)
STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}Impossível definir o limite de altura do mapa para este valor. Há ao menos uma montanha mais alta que isso
STR_CONFIG_SETTING_AUTOSLOPE :Permitir paisagismo sob edifícios, trilhos, etc.: {STRING}
STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Permite paisagismo sob edifícios e vias sem precisar removê-las
STR_CONFIG_SETTING_CATCHMENT :Dimensionamento mais realista das áreas de abrangência: {STRING}
@@ -1326,7 +1359,13 @@ STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Define quantas
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Dist máx da borda para Refinarias de Óleo: {STRING}
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Refinarias são construídas apenas nas bordas, ou no litoral, para ilhas
STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Altura da linha de neve: {STRING}
STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Controla a que altitude a neve começa nos climas sub-árticos. Neve também afeta geração de indústrias e necessidades para o crescimento das cidades
STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Controla a que altitude a neve começa nos climas sub-árticos. Neve também afeta geração de indústrias e necessidades para o crescimento das cidades. Só pode ser modificado por meio do Editor de cenário ou é de outra forma calculado por meio de "cobertura de neve"
STR_CONFIG_SETTING_SNOW_COVERAGE :Cobertura de neve: {STRING}
STR_CONFIG_SETTING_SNOW_COVERAGE_HELPTEXT :Controla a quantidade aproximada de neve no terreno subártico. A neve também afeta os requisitos de geração de indústria e crescimento de cidades. Usado apenas durante a geração de mapas. Terreno logo acima do nível do mar é sempre sem neve
STR_CONFIG_SETTING_SNOW_COVERAGE_VALUE :{NUM}%
STR_CONFIG_SETTING_DESERT_COVERAGE :Cobertura do deserto: {STRING}
STR_CONFIG_SETTING_DESERT_COVERAGE_HELPTEXT :Controla a quantidade aproximada de deserto no terreno tropical. O deserto também afeta a geração de indústrias. Usado apenas durante a geração do mapa
STR_CONFIG_SETTING_DESERT_COVERAGE_VALUE :{NUM}%
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Irregularidade do terreno: {STRING}
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(TerraGenesis apenas) Escolhe a frequência de colinas: Terrenos planos têm menos colinas, mais espalhadas. Montanhosos tem mais colinas, que pode se tornar repetitivo
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Muito Regular
@@ -1440,7 +1479,12 @@ STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS :Manter a barra
STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS_HELPTEXT :Mantém as ferramentas de construção para pontes, túneis, etc abertas após o uso
STR_CONFIG_SETTING_EXPENSES_LAYOUT :Agrupar despesas na janela de financas da companhia: {STRING}
STR_CONFIG_SETTING_EXPENSES_LAYOUT_HELPTEXT :Define o layout para os gastos da companhia
STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS :Automaticamente remove sinais durante a construção de ferrovias: {STRING}
STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS_HELPTEXT :Automaticamente remove sinais durante a construção de ferrovias se os sinais estiverem no caminho. Note que isso pode levar a acidentes ferroviários.
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT :Limite de velocidade de avanço rápido: {STRING}
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_HELPTEXT :Limita o quão rápido o jogo vai quando o avanço rápido está ativado. 0 = sem limite (o máximo que o seu computador suporta). Valores abaixo de 100% tornam o jogo mais lento. O limite máximo depende das especificações do seu computador e pode variar dependendo do jogo.
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_VAL :{NUM}% a velocidade normal do jogo
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_ZERO :Sem limite (o máximo que o seu computador suporta)
STR_CONFIG_SETTING_SOUND_TICKER :Notícias: {STRING}
STR_CONFIG_SETTING_SOUND_TICKER_HELPTEXT :Toca um som para mensagens resumidas
@@ -1554,6 +1598,11 @@ STR_CONFIG_SETTING_ENDING_YEAR :Pontuação no
STR_CONFIG_SETTING_ENDING_YEAR_HELPTEXT :Ano em que o jogo termina para fins de pontuação. No final deste ano, a pontuação da empresa é registrada e a tela de pontuação máxima é exibida, mas os jogadores podem continuar jogando depois disso.{} Se isso for antes do ano inicial, a tela de pontuação máxima nunca será exibida.
STR_CONFIG_SETTING_ENDING_YEAR_VALUE :{NUM}
STR_CONFIG_SETTING_ENDING_YEAR_ZERO :Nunca
STR_CONFIG_SETTING_ECONOMY_TYPE :Tipo de economia: {STRING}
STR_CONFIG_SETTING_ECONOMY_TYPE_HELPTEXT :Economia suave faz mudanças de produção com mais frequência, e em etapas menores. Economia congelada impede mudanças de produção e fechamentos de indústrias. Esta configuração pode não ter efeito se os tipos de indústria forem fornecidos por um NewGRF.
STR_CONFIG_SETTING_ECONOMY_TYPE_ORIGINAL :Original
STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Suave
STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :Congelada
STR_CONFIG_SETTING_ALLOW_SHARES :Permite comprar ações de outras empresas: {STRING}
STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Se ativado, permite a compra e venda de ações de companhias. Ações de outras empresas poderão serem compradas após um período de tempo após a fundação da empresa
STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Idade mínima da companhia para trocar ações: {STRING}
@@ -1606,6 +1655,8 @@ STR_CONFIG_SETTING_TOWN_CARGOGENMODE_BITCOUNT :Linear
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT :Posicionamento de árvores: {STRING}
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_HELPTEXT :Controla o nascimento aleatório de árvores durante o jogo. Isso pode afetar indústrias que dependem do crescimento de árvores, como serrarias
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_NO_SPREAD :Crescer sem espalhar {RED}(afeta serrarias)
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_SPREAD_RAINFOREST :Crescer, mas apenas espalhar em florestas tropicais
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_SPREAD_ALL :Crescer e espalhar em todos os lugares
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_NO_GROWTH_NO_SPREAD :Não crescer, não espalhar {RED}(afeta serrarias)
STR_CONFIG_SETTING_TOOLBAR_POS :Posição da barra de ferramentas principal: {STRING}
@@ -1624,12 +1675,17 @@ STR_CONFIG_SETTING_ZOOM_MIN :Nível máximo
STR_CONFIG_SETTING_ZOOM_MIN_HELPTEXT :Zoom adentro máximo para janelas de visualização. Note que ativar zoom maiores aumenta o uso de memória
STR_CONFIG_SETTING_ZOOM_MAX :Nível máximo de zoom afora: {STRING}
STR_CONFIG_SETTING_ZOOM_MAX_HELPTEXT :Zoom afora máximo para janelas de visualização. Note que ativar zoom maiores causa lag durante o jogo
STR_CONFIG_SETTING_SPRITE_ZOOM_MIN :Resolução máxima de sprites a serem usados: {STRING}
STR_CONFIG_SETTING_SPRITE_ZOOM_MIN_HELPTEXT :Limita a resolução máxima a ser usada para sprites. Limitar a resolução de sprites evitará o uso de gráficos de alta resolução, mesmo quando estiverem disponíveis. Isso pode ajudar a manter a aparência do jogo uniforme quando estiver usando uma mistura de arquivos GRF com e sem gráficos de alta resolução.
STR_CONFIG_SETTING_ZOOM_LVL_MIN :4x
STR_CONFIG_SETTING_ZOOM_LVL_IN_2X :2x
STR_CONFIG_SETTING_ZOOM_LVL_NORMAL :Normal
STR_CONFIG_SETTING_ZOOM_LVL_OUT_2X :2x
STR_CONFIG_SETTING_ZOOM_LVL_OUT_4X :4x
STR_CONFIG_SETTING_ZOOM_LVL_OUT_8X :8x
STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_MIN :4x
STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_IN_2X :2x
STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_NORMAL :1x
STR_CONFIG_SETTING_TOWN_GROWTH :Velocidade de crescimento de cidade: {STRING}
STR_CONFIG_SETTING_TOWN_GROWTH_HELPTEXT :Velocidade com a qual as cidades expandem
STR_CONFIG_SETTING_TOWN_GROWTH_NONE :Nenhum
@@ -1763,6 +1819,10 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... igno
STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Sem memória
STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}A alocação {BYTES} de spritecache falhou. O spritecache foi reduzido a {BYTES}. A performance do jogo será reduzida. Para reduzir a necessidade de memória tente disabilitar 32bpp gráficos e/ou reduzir o zoom.
# Video initalization errors
STR_VIDEO_DRIVER_ERROR :{WHITE}Erro nas configurações de vídeo...
STR_VIDEO_DRIVER_ERROR_NO_HARDWARE_ACCELERATION :{WHITE}... nenhuma GPU compatível encontrada. Aceleração de hardware desativada
# Intro window
STR_INTRO_CAPTION :{WHITE}OpenTTD {REV}
@@ -1818,6 +1878,7 @@ STR_ABANDON_SCENARIO_QUERY :{YELLOW}Você t
# Cheat window
STR_CHEATS :{WHITE}Trapaças
STR_CHEATS_TOOLTIP :{BLACK}As caixas de verificação indicam se você usou esta trapaça antes
STR_CHEATS_NOTE :{BLACK}Nota: qualquer uso dessas configurações será gravado pelo jogo salvo
STR_CHEAT_MONEY :{LTBLUE}Aumentar dinheiro em {CURRENCY_LONG}
STR_CHEAT_CHANGE_COMPANY :{LTBLUE}Jogando pela Co.: {ORANGE}{COMMA}
STR_CHEAT_EXTRA_DYNAMITE :{LTBLUE}Escavadeira mágica (destrói indústrias, objetos estáticos): {ORANGE}{STRING}
@@ -1970,7 +2031,9 @@ STR_NETWORK_SERVER_LIST_REFRESH :{BLACK}Atualiza
STR_NETWORK_SERVER_LIST_REFRESH_TOOLTIP :{BLACK}Atualiza as informações sobre o servidor
STR_NETWORK_SERVER_LIST_SEARCH_SERVER_INTERNET :{BLACK}Procurar na internet
STR_NETWORK_SERVER_LIST_SEARCH_SERVER_INTERNET_TOOLTIP :{BLACK}Procura servidores públicos na internet
STR_NETWORK_SERVER_LIST_SEARCH_SERVER_LAN :{BLACK}Buscar na LAN
STR_NETWORK_SERVER_LIST_SEARCH_SERVER_LAN_TOOLTIP :{BLACK}Procura servidores na rede local
STR_NETWORK_SERVER_LIST_ADD_SERVER :{BLACK}Adicionar servidor
STR_NETWORK_SERVER_LIST_ADD_SERVER_TOOLTIP :{BLACK}Adiciona um servidor à lista que será sempre verificada se existem jogos ocorrendo
STR_NETWORK_SERVER_LIST_START_SERVER :{BLACK}Iniciar servidor
@@ -2196,6 +2259,7 @@ STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_1 :Jogo ainda paus
STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_2 :Jogo ainda pausado ({STRING}, {STRING})
STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_3 :Jogo ainda pausado ({STRING}, {STRING}, {STRING})
STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_4 :Jogo ainda pausado ({STRING}, {STRING}, {STRING}, {STRING})
STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_5 :Jogo ainda pausado ({STRING}, {STRING}, {STRING}, {STRING}, {STRING})
STR_NETWORK_SERVER_MESSAGE_GAME_UNPAUSED :Jogo despausado ({STRING})
STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS :número de jogadores
STR_NETWORK_SERVER_MESSAGE_GAME_REASON_CONNECTING_CLIENTS :clientes conectando-se
@@ -2211,6 +2275,7 @@ STR_NETWORK_MESSAGE_CLIENT_COMPANY_SPECTATE :*** {STRING} es
STR_NETWORK_MESSAGE_CLIENT_COMPANY_NEW :*** {STRING} abriu uma nova companhia (#{2:NUM})
STR_NETWORK_MESSAGE_CLIENT_LEFT :*** {STRING} saiu do jogo ({2:STRING})
STR_NETWORK_MESSAGE_NAME_CHANGE :*** {STRING} mudou seu nome para {STRING}
STR_NETWORK_MESSAGE_GIVE_MONEY :*** {STRING} deu {2:CURRENCY_LONG} a {1:STRING}
STR_NETWORK_MESSAGE_SERVER_SHUTDOWN :{WHITE}O servidor fechou a sessão
STR_NETWORK_MESSAGE_SERVER_REBOOT :{WHITE}O servidor está reiniciando...{}Aguarde...
STR_NETWORK_MESSAGE_KICKED :*** {STRING} foi kickado. Motivo: ({STRING})
@@ -2249,7 +2314,7 @@ STR_CONTENT_DETAIL_NAME :{SILVER}Nome: {
STR_CONTENT_DETAIL_VERSION :{SILVER}Versão: {WHITE}{STRING}
STR_CONTENT_DETAIL_DESCRIPTION :{SILVER}Descrição: {WHITE}{STRING}
STR_CONTENT_DETAIL_URL :{SILVER}URL: {WHITE}{STRING}
STR_CONTENT_DETAIL_TYPE :{SILVER}Tipp: {WHITE}{STRING}
STR_CONTENT_DETAIL_TYPE :{SILVER}Tipo: {WHITE}{STRING}
STR_CONTENT_DETAIL_FILESIZE :{SILVER}Tamanho: {WHITE}{BYTES}
STR_CONTENT_DETAIL_SELECTED_BECAUSE_OF :{SILVER}Selecionado pois: {WHITE}{STRING}
STR_CONTENT_DETAIL_DEPENDENCIES :{SILVER}Dependentes: {WHITE}{STRING}
@@ -2288,6 +2353,10 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD
STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Sim, baixar os gráficos
STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Não, sair do OpenTTD
STR_MISSING_GRAPHICS_ERROR_TITLE :{WHITE}O download falhou
STR_MISSING_GRAPHICS_ERROR :{BLACK}O download de gráficos falhou.{}Por favor, baixe os gráficos manualmente.
STR_MISSING_GRAPHICS_ERROR_QUIT :{BLACK}Sair do OpenTTD
# Transparency settings window
STR_TRANSPARENCY_CAPTION :{WHITE}Opções de Transparência
STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Alternar transparência para sinais de estação. Ctrl+Clique para travar
@@ -2527,6 +2596,7 @@ STR_TREES_RANDOM_TYPE_TOOLTIP :{BLACK}Plantar
STR_TREES_RANDOM_TREES_BUTTON :{BLACK}Plantar Aleatoriamente
STR_TREES_RANDOM_TREES_TOOLTIP :{BLACK}Planta árvores aleatoriamente pelo terreno
STR_TREES_MODE_NORMAL_BUTTON :{BLACK}Normal
STR_TREES_MODE_NORMAL_TOOLTIP :{BLACK}Planta árvores isoladas ao arrastar pelo terreno.
STR_TREES_MODE_FOREST_SM_BUTTON :{BLACK}Bosque
STR_TREES_MODE_FOREST_SM_TOOLTIP :{BLACK}Planta pequenas florestas ao arrastar pelo terreno.
STR_TREES_MODE_FOREST_LG_BUTTON :{BLACK}Floresta
@@ -2581,7 +2651,7 @@ STR_FOUND_TOWN_SELECT_LAYOUT_RANDOM :{BLACK}Randômi
# Fund new industry window
STR_FUND_INDUSTRY_CAPTION :{WHITE}Financiar nova indústria
STR_FUND_INDUSTRY_SELECTION_TOOLTIP :{BLACK}Escolha a indústria apropriada
STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES :rias indústrias aleatórias
STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES :{BLACK}Criar indústrias aleatórias
STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES_TOOLTIP :{BLACK}Cobrir o mapa com indústrias colocadas aleatoriamente
STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES_CAPTION :{WHITE}Criar indústrias aleatórias
STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES_QUERY :{YELLOW}Você tem certeza que quer criar várias indústrias aleatoriamente?
@@ -2590,7 +2660,9 @@ STR_FUND_INDUSTRY_PROSPECT_NEW_INDUSTRY :{BLACK}Prosperi
STR_FUND_INDUSTRY_BUILD_NEW_INDUSTRY :{BLACK}Construir
STR_FUND_INDUSTRY_FUND_NEW_INDUSTRY :{BLACK}Fundar
STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES :{BLACK}Remover todas as indústrias
STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_TOOLTIP :{BLACK}Remove todas as indústrias atualmente presentes no mapa
STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_CAPTION :{WHITE}Remover todas as indústrias
STR_FUND_INDUSTRY_REMOVE_ALL_INDUSTRIES_QUERY :{YELLOW}Você tem certeza que quer remover todas as indústrias?
# Industry cargoes window
STR_INDUSTRY_CARGOES_INDUSTRY_CAPTION :{WHITE}Cadeia de indústrias para a indústria: {STRING}
@@ -2611,6 +2683,7 @@ STR_INDUSTRY_CARGOES_SELECT_INDUSTRY_TOOLTIP :{BLACK}Selecion
# Land area window
STR_LAND_AREA_INFORMATION_CAPTION :{WHITE}Informações do Terreno
STR_LAND_AREA_INFORMATION_LOCATION_TOOLTIP :{BLACK}Centraliza a janela no local da área de terreno. Ctrl+Clique abre uma nova janela no local da área de terreno
STR_LAND_AREA_INFORMATION_COST_TO_CLEAR_N_A :{BLACK}Preço para limpar: {LTBLUE}N/D
STR_LAND_AREA_INFORMATION_COST_TO_CLEAR :{BLACK}Preço para limpar: {RED}{CURRENCY_LONG}
STR_LAND_AREA_INFORMATION_REVENUE_WHEN_CLEARED :{BLACK}Ganhos pela limpeza: {LTBLUE}{CURRENCY_LONG}
@@ -2820,6 +2893,8 @@ STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}NewGRF:
STR_SAVELOAD_FILTER_TITLE :{BLACK}Filtro:
STR_SAVELOAD_OVERWRITE_TITLE :{WHITE}Substituir ficheiro
STR_SAVELOAD_OVERWRITE_WARNING :{YELLOW}Tem certeza de que deseja substituir o arquivo existente?
STR_SAVELOAD_DIRECTORY :{STRING} (Diretório)
STR_SAVELOAD_PARENT_DIRECTORY :{STRING} (Diretório raiz)
STR_SAVELOAD_OSKTITLE :{BLACK}Coloque o nome para o jogo salvo
@@ -2831,12 +2906,17 @@ STR_MAPGEN_BY :{BLACK}*
STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}No. de cidades:
STR_MAPGEN_DATE :{BLACK}Data:
STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}No. de indústrias:
STR_MAPGEN_MAX_HEIGHTLEVEL :{BLACK}Altitude máx. do mapa:
STR_MAPGEN_MAX_HEIGHTLEVEL_UP :{BLACK}Aumenta a altitude máxima das montanhas no mapa em uma unidade
STR_MAPGEN_MAX_HEIGHTLEVEL_DOWN :{BLACK}Diminui a altitude máxima das montanhas no mapa em uma unidade
STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Linha da neve
STR_MAPGEN_SNOW_LINE_UP :{BLACK}Aumentar a linha da neve em um ponto
STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Diminuir a linha da neve em um ponto
STR_MAPGEN_HEIGHTMAP_HEIGHT :{BLACK}Pico mais alto:
STR_MAPGEN_HEIGHTMAP_HEIGHT_UP :{BLACK}Aumentar a altura máxima do pico mais alto no mapa por um
STR_MAPGEN_HEIGHTMAP_HEIGHT_DOWN :{BLACK}Diminuir a altura máxima do pico mais alto no mapa por um
STR_MAPGEN_SNOW_COVERAGE :{BLACK}Cobertura de neve:
STR_MAPGEN_SNOW_COVERAGE_UP :{BLACK}Aumentar em dez porcento a cobertura de neve
STR_MAPGEN_SNOW_COVERAGE_DOWN :{BLACK}Reduzir em dez porcento a cobertura de neve
STR_MAPGEN_SNOW_COVERAGE_TEXT :{BLACK}{NUM}%
STR_MAPGEN_DESERT_COVERAGE :{BLACK}Cobertura do deserto:
STR_MAPGEN_DESERT_COVERAGE_UP :{BLACK}Aumentar a cobertura do deserto em dez por cento
STR_MAPGEN_DESERT_COVERAGE_DOWN :{BLACK}Diminuir a cobertura do deserto em dez por cento
STR_MAPGEN_DESERT_COVERAGE_TEXT :{BLACK}{NUM}%
STR_MAPGEN_LAND_GENERATOR :{BLACK}Gerador de terra
STR_MAPGEN_TERRAIN_TYPE :{BLACK}Tipo de terreno
STR_MAPGEN_QUANTITY_OF_SEA_LAKES :{BLACK}Nível do mar:
@@ -2862,8 +2942,10 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Nome do
STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Tamanho:
STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM}
STR_MAPGEN_MAX_HEIGHTLEVEL_QUERY_CAPT :{WHITE}Alterar a altitude máxima do mapa
STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Mudar linha da neve
STR_MAPGEN_TERRAIN_TYPE_QUERY_CAPT :{WHITE}Altura alvo do pico
STR_MAPGEN_HEIGHTMAP_HEIGHT_QUERY_CAPT :{WHITE}Pico mais alto
STR_MAPGEN_SNOW_COVERAGE_QUERY_CAPT :{WHITE}Cobertura de neve (%)
STR_MAPGEN_DESERT_COVERAGE_QUERY_CAPT :{WHITE}Cobertura do deserto (%)
STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Mudar data de início
# SE Map generation
@@ -3141,33 +3223,34 @@ STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Financiar novos
STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Comprar exclusividade da rede de transportes
STR_LOCAL_AUTHORITY_ACTION_BRIBE :Subornar a prefeitura
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Iniciar uma pequena campanha publicitária local, para atrair mais passageiros e cargas para seus serviços de transporte.{}Preço: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Iniciar uma campanha publicitária média, para atrair mais passageiros e carga para seus serviços de transporte.{}Preço: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Iniciar uma grande campanha publicitária, para atrair mais passageiros e cargas para seus serviços de transporte.{}Preço: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW} Financiar a reconstrução da malha rodoviária urbana. Causa engarrafamentos consideráveis ao tráfego por até 6 meses.{}Preço: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW} Construir uma estátua em honra para sua empresa.{} Preço: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW} Financiar a construção de edifícios comerciais novos na cidade.{}Preço: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW} Comprar a exclusividade dos serviços durante 1 ano na cidade. A prefeitura da cidade permitirá que os passageiros e cargas usem somente estações de sua empresa.{} Preço: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Iniciar uma pequena campanha publicitária local, para atrair mais passageiros e cargas para seus serviços de transporte.{}Fornece um aumento temporário na avaliação da estação em um pequeno raio ao redor do centro da cidade.{}Preço: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Iniciar uma campanha publicitária média, para atrair mais passageiros e cargas para seus serviços de transporte.{}Fornece um aumento temporário na avaliação da estação em um raio médio ao redor do centro da cidade.{}Preço: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Iniciar uma grande campanha publicitária, para atrair mais passageiros e cargas para seus serviços de transporte.{}Fornece um aumento temporário na avaliação da estação em um grande raio ao redor do centro da cidade.{}Preço: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Financiar a reconstrução da malha rodoviária urbana.{}Causa engarrafamentos consideráveis ao tráfego por até 6 meses.{}Preço: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Construir uma estátua em homenagem à sua empresa.{}Fornece um aumento permanente na avaliação da estação nesta cidade.{}Preço: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Financiar a construção de edifícios comerciais novos na cidade.{}Fornece um aumento temporário do crescimento da cidade nesta cidade.{}Preço: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Comprar a exclusividade dos serviços durante 1 ano na cidade.{}A prefeitura da cidade não permitirá que passageiros e cargas usem as estações de seus concorrentes.{}Preço: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Subornar a prefeitura para aumentar a sua avaliação, correndo o risco de uma penalidade severa se apanhado.{}Preço: {CURRENCY_LONG}
# Goal window
STR_GOALS_CAPTION :{WHITE}{COMPANY} Objetivos
STR_GOALS_SPECTATOR_CAPTION :{WHITE}Objetivos globais
STR_GOALS_SPECTATOR :Objetivos Globais
STR_GOALS_GLOBAL_TITLE :{G=m}{BLACK}Objetivos globais:
STR_GOALS_GLOBAL_BUTTON :{BLACK}Globais
STR_GOALS_GLOBAL_BUTTON_HELPTEXT :{BLACK}Mostra objetivos globais
STR_GOALS_COMPANY_BUTTON :{BLACK}Empresa
STR_GOALS_COMPANY_BUTTON_HELPTEXT :{BLACK}Mostra objetivos da empresa
STR_GOALS_TEXT :{ORANGE}{STRING}
STR_GOALS_NONE :{G=m}{ORANGE}- Nenhum -
STR_GOALS_SPECTATOR_NONE :{ORANGE}- Não aplicável -
STR_GOALS_PROGRESS :{ORANGE}{STRING}
STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING}
STR_GOALS_COMPANY_TITLE :{G=m}{BLACK}Objetivos da empresa:
STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Clique num objetivo para centralizar a visualização principal numa indústria/cidade.Ctrl+Clique abre uma nova janela na localização da indústria/cidade
# Goal question window
STR_GOAL_QUESTION_CAPTION_QUESTION :Pergunta
STR_GOAL_QUESTION_CAPTION_INFORMATION :Informação
STR_GOAL_QUESTION_CAPTION_WARNING :Alerta
STR_GOAL_QUESTION_CAPTION_ERROR :Erro
STR_GOAL_QUESTION_CAPTION_QUESTION :{BLACK}Pergunta
STR_GOAL_QUESTION_CAPTION_INFORMATION :{BLACK}Informação
STR_GOAL_QUESTION_CAPTION_WARNING :{BLACK}Alerta
STR_GOAL_QUESTION_CAPTION_ERROR :{YELLOW}Erro
############ Start of Goal Question button list
STR_GOAL_QUESTION_BUTTON_CANCEL :Cancelar
@@ -3357,6 +3440,7 @@ STR_COMPANY_VIEW_RELOCATE_HQ :{BLACK}Mover se
STR_COMPANY_VIEW_RELOCATE_COMPANY_HEADQUARTERS :{BLACK}Reconstruir sede da empresa em outro local por 1% do valor da empresa. Shift+Clique mostra o preço estimado sem reconstruir a sede
STR_COMPANY_VIEW_INFRASTRUCTURE_BUTTON :{BLACK}Detalhes
STR_COMPANY_VIEW_INFRASTRUCTURE_TOOLTIP :{BLACK}Ver informações detalhadas de infraestrutura
STR_COMPANY_VIEW_GIVE_MONEY_BUTTON :{BLACK}Dar dinheiro
STR_COMPANY_VIEW_GIVE_MONEY_TOOLTIP :{BLACK}Dá dinheiro a essa empresa
STR_COMPANY_VIEW_NEW_FACE_BUTTON :{BLACK}Novo Rosto
@@ -3375,6 +3459,7 @@ STR_COMPANY_VIEW_SELL_SHARE_TOOLTIP :{BLACK}Vender 2
STR_COMPANY_VIEW_COMPANY_NAME_QUERY_CAPTION :Nome da Empresa
STR_COMPANY_VIEW_PRESIDENT_S_NAME_QUERY_CAPTION :Nome do Presidente
STR_COMPANY_VIEW_GIVE_MONEY_QUERY_CAPTION :Inserir a quantidade de dinheiro que você quer dar
STR_BUY_COMPANY_MESSAGE :{WHITE}Estamos à procura de uma empresa de transportes para comprar a nossa empresa{}{}Deseja comprar {COMPANY} por {CURRENCY_LONG}?
@@ -3529,6 +3614,7 @@ STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Vagões
STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Adaptável para: {GOLD}{STRING}
STR_PURCHASE_INFO_ALL_TYPES :Todos as cargas
STR_PURCHASE_INFO_NONE :Nenhum
STR_PURCHASE_INFO_ENGINES_ONLY :Apenas motores
STR_PURCHASE_INFO_ALL_BUT :Todas menos {CARGO_LIST}
STR_PURCHASE_INFO_MAX_TE :{BLACK}Tração máx : {GOLD}{FORCE}
STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Alcance: {GOLD}{COMMA} quadrados
@@ -3735,6 +3821,7 @@ STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Faz auto
# Vehicle view
STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE}
STR_VEHICLE_VIEW_TRAIN_CENTER_TOOLTIP :{BLACK}Centraliza a janela na localização do trem. Clique duplo para seguir o trem. Ctrl+Clique abre uma nova janela na localização do trem
STR_VEHICLE_VIEW_ROAD_VEHICLE_CENTER_TOOLTIP :{BLACK}Centraliza a janela na localização do veículo. Clique duplo para seguir o veículo. Ctrl+Clique abre uma nova janela na localização do veículo.
STR_VEHICLE_VIEW_SHIP_CENTER_TOOLTIP :{BLACK}Centraliza a janela na localização do navio. Clique duplo para seguir o navio. Ctrl+Clique para abrir uma nova janela na localização do navio.
STR_VEHICLE_VIEW_AIRCRAFT_CENTER_TOOLTIP :{BLACK}Centraliza a janela na localização da aeronave. Clique duplo para seguir a aeronave. Ctrl+Clique abre uma nova janela na localização da aeronave.
@@ -3762,14 +3849,19 @@ STR_VEHICLE_VIEW_ROAD_VEHICLE_REVERSE_TOOLTIP :{BLACK}Forçar
STR_VEHICLE_VIEW_TRAIN_ORDERS_TOOLTIP :{BLACK}Exibe ordens do trem. Ctrl+Clique para exibir o plano de horário
STR_VEHICLE_VIEW_ROAD_VEHICLE_ORDERS_TOOLTIP :{BLACK}Exibe ordens do veículo. Ctrl+Clique para exibir o plano de horário
STR_VEHICLE_VIEW_SHIP_ORDERS_TOOLTIP :{BLACK}Exibe ordens da embarcação. Ctrl+Clique para exibir o plano de horário
STR_VEHICLE_VIEW_AIRCRAFT_ORDERS_TOOLTIP :{BLACK}Exibir ordens da aeronave. Ctrl+Clique para exibir o plano de horário
STR_VEHICLE_VIEW_AIRCRAFT_ORDERS_TOOLTIP :{BLACK}Exibe ordens da aeronave. Ctrl+Clique para exibir o plano de horário
STR_VEHICLE_VIEW_TRAIN_SHOW_DETAILS_TOOLTIP :{BLACK}Exibir detalhes do trem
STR_VEHICLE_VIEW_ROAD_VEHICLE_SHOW_DETAILS_TOOLTIP :{BLACK}Exibir detalhes do automóvel
STR_VEHICLE_VIEW_SHIP_SHOW_DETAILS_TOOLTIP :{BLACK}Exibir detalhes da embarcação
STR_VEHICLE_VIEW_AIRCRAFT_SHOW_DETAILS_TOOLTIP :{BLACK}Exibir detalhes da aeronave
STR_VEHICLE_VIEW_TRAIN_SHOW_DETAILS_TOOLTIP :{BLACK}Exibe detalhes do trem
STR_VEHICLE_VIEW_ROAD_VEHICLE_SHOW_DETAILS_TOOLTIP :{BLACK}Exibe detalhes do veículo
STR_VEHICLE_VIEW_SHIP_SHOW_DETAILS_TOOLTIP :{BLACK}Exibe detalhes da embarcação
STR_VEHICLE_VIEW_AIRCRAFT_SHOW_DETAILS_TOOLTIP :{BLACK}Exibe detalhes da aeronave
STR_VEHICLE_VIEW_TRAIN_STATUS_START_STOP_TOOLTIP :{BLACK}Ação atual do trem - clique para iniciar/parar o trem
STR_VEHICLE_VIEW_ROAD_VEHICLE_STATUS_START_STOP_TOOLTIP :{BLACK}Ação atual do veículo - clique para iniciar/parar o veículo
STR_VEHICLE_VIEW_SHIP_STATE_STATUS_STOP_TOOLTIP :{BLACK}Ação atual do navio - clique para iniciar/parar o navio
STR_VEHICLE_VIEW_AIRCRAFT_STATUS_START_STOP_TOOLTIP :{BLACK}Ação atual da aeronave - clique para iniciar/parar a aeronave
STR_VEHICLE_VIEW_ORDER_LOCATION_TOOLTIP :{BLACK}Centraliza janela no destino da ordem. Ctrl+Clique abre uma nova janela no local de destino da ordem
# Messages in the start stop button in the vehicle view
STR_VEHICLE_STATUS_LOADING_UNLOADING :{LTBLUE}Carregando / descarregando
@@ -3997,6 +4089,7 @@ STR_ORDER_REFIT_STOP_ORDER :(Adaptar a {STR
STR_ORDER_STOP_ORDER :(Parar)
STR_ORDER_GO_TO_STATION :{STRING} {STATION} {STRING}
STR_ORDER_GO_TO_STATION_CAN_T_USE_STATION :{PUSH_COLOUR}{RED}(Não pode usar a estação){POP_COLOUR} {STRING} {STATION} {STRING}
STR_ORDER_IMPLICIT :(Implícito)
@@ -4241,6 +4334,7 @@ STR_GAME_SAVELOAD_ERROR_TOO_NEW_SAVEGAME :Jogo salvo é f
STR_GAME_SAVELOAD_ERROR_FILE_NOT_READABLE :Arquivo não legível
STR_GAME_SAVELOAD_ERROR_FILE_NOT_WRITEABLE :Arquivo não gravável
STR_GAME_SAVELOAD_ERROR_DATA_INTEGRITY_CHECK_FAILED :Verificação de integridade de dados falhou
STR_GAME_SAVELOAD_ERROR_PATCHPACK :Jogo salvo é feito com uma versão modificada
STR_GAME_SAVELOAD_NOT_AVAILABLE :<não disponível>
STR_WARNING_LOADGAME_REMOVED_TRAMS :{WHITE}Jogo foi salvo numa versão sem suporte a bondes. Todos os bondes foram removidos
@@ -4268,6 +4362,7 @@ STR_WARNING_FALLBACK_SOUNDSET :{WHITE}Apenas u
STR_WARNING_SCREENSHOT_SIZE_CAPTION :{WHITE}Captura de tela gigante
STR_WARNING_SCREENSHOT_SIZE_MESSAGE :{YELLOW}A captura de tela terá uma resolução de {COMMA}x{COMMA} pixels. Pode levar algum tempo. Deseja continuar?
STR_MESSAGE_HEIGHTMAP_SUCCESSFULLY :{WHITE}Mapa topográfico salvo com sucesso como '{STRING}'. O pico mais alto é {NUM}
STR_MESSAGE_SCREENSHOT_SUCCESSFULLY :{WHITE}Foto salvado com sucesso como '{STRING}'
STR_ERROR_SCREENSHOT_FAILED :{WHITE}Falha ao tirar foto!
@@ -4321,6 +4416,7 @@ STR_ERROR_LOAN_ALREADY_REPAYED :{WHITE}... não
STR_ERROR_CURRENCY_REQUIRED :{WHITE}... precisa de {CURRENCY_LONG}
STR_ERROR_CAN_T_REPAY_LOAN :{WHITE}Impossível pagar empréstimo...
STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}Impossível dar o dinheiro emprestado do banco
STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}Impossível dar dinheiro a esta empresa
STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}Impossível comprar empresa...
STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}Impossível construir sede da empresa...
STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}Impossível comprar 25% das ações desta empresa...
@@ -4447,6 +4543,7 @@ STR_ERROR_DEPOT_WRONG_DEPOT_TYPE :Tipo de depósi
STR_ERROR_TRAIN_TOO_LONG_AFTER_REPLACEMENT :{WHITE}{VEHICLE} fica grande demais para ser substituído
STR_ERROR_AUTOREPLACE_NOTHING_TO_DO :{WHITE}Regras de autosubstituição/renovação não estão ativadas
STR_ERROR_AUTOREPLACE_MONEY_LIMIT :(limite de dinheiro)
STR_ERROR_AUTOREPLACE_INCOMPATIBLE_CARGO :{WHITE}Novo veículo não pode transportar {STRING}
STR_ERROR_AUTOREPLACE_INCOMPATIBLE_REFIT :{WHITE}Novo veículo não pode ser reequipado na ordem {NUM}
# Rail construction errors
@@ -4729,10 +4826,10 @@ STR_INDUSTRY_NAME_SUGAR_MINE :{G=f}Mina de A
##id 0x6000
STR_SV_EMPTY :
STR_SV_UNNAMED :Sem nome
STR_SV_TRAIN_NAME :Trem {COMMA}
STR_SV_ROAD_VEHICLE_NAME :Automóvel {COMMA}
STR_SV_SHIP_NAME :Embarcação {COMMA}
STR_SV_AIRCRAFT_NAME :Aeronave {COMMA}
STR_SV_TRAIN_NAME :Trem #{COMMA}
STR_SV_ROAD_VEHICLE_NAME :Veículo #{COMMA}
STR_SV_SHIP_NAME :Navio #{COMMA}
STR_SV_AIRCRAFT_NAME :Aeronave #{COMMA}
STR_SV_STNAME :{STRING}
STR_SV_STNAME_NORTH :Norte de {STRING}
@@ -4999,13 +5096,13 @@ STR_VEHICLE_NAME_AIRCRAFT_DARWIN_400 :Darwin 400
STR_VEHICLE_NAME_AIRCRAFT_DARWIN_500 :Darwin 500
STR_VEHICLE_NAME_AIRCRAFT_DARWIN_600 :Darwin 600
STR_VEHICLE_NAME_AIRCRAFT_GURU_GALAXY :Guru Galaxy
STR_VEHICLE_NAME_AIRCRAFT_AIRTAXI_A21 :Táxi Aéreo A21
STR_VEHICLE_NAME_AIRCRAFT_AIRTAXI_A31 :Táxi Aéreo A31
STR_VEHICLE_NAME_AIRCRAFT_AIRTAXI_A32 :Táxi Aéreo A32
STR_VEHICLE_NAME_AIRCRAFT_AIRTAXI_A33 :Táxi Aéreo A33
STR_VEHICLE_NAME_AIRCRAFT_AIRTAXI_A21 :Airtaxi A21
STR_VEHICLE_NAME_AIRCRAFT_AIRTAXI_A31 :Airtaxi A31
STR_VEHICLE_NAME_AIRCRAFT_AIRTAXI_A32 :Airtaxi A32
STR_VEHICLE_NAME_AIRCRAFT_AIRTAXI_A33 :Airtaxi A33
STR_VEHICLE_NAME_AIRCRAFT_YATE_AEROSPACE_YAE46 :Yate Aerospace YAe46
STR_VEHICLE_NAME_AIRCRAFT_DINGER_100 :Dinger 100
STR_VEHICLE_NAME_AIRCRAFT_AIRTAXI_A34_1000 :Táxi Aéreo A34-1000
STR_VEHICLE_NAME_AIRCRAFT_AIRTAXI_A34_1000 :AirTaxi A34-1000
STR_VEHICLE_NAME_AIRCRAFT_YATE_Z_SHUTTLE :Yate Z-Shuttle
STR_VEHICLE_NAME_AIRCRAFT_KELLING_K1 :Kelling K1
STR_VEHICLE_NAME_AIRCRAFT_KELLING_K6 :Kelling K6
@@ -5034,6 +5131,7 @@ STR_FORMAT_BUOY_NAME :{TOWN} Bóia
STR_FORMAT_BUOY_NAME_SERIAL :{TOWN} Bóia #{COMMA}
STR_FORMAT_COMPANY_NUM :(Companhia {COMMA})
STR_FORMAT_GROUP_NAME :Agrupar {COMMA}
STR_FORMAT_GROUP_VEHICLE_NAME :{GROUP} #{COMMA}
STR_FORMAT_INDUSTRY_NAME :{1:STRING} de {0:TOWN}
STR_FORMAT_WAYPOINT_NAME :Ponto de controle {TOWN}
STR_FORMAT_WAYPOINT_NAME_SERIAL :Ponto de controle {TOWN} #{COMMA}

View File

@@ -968,6 +968,8 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Разм
STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Избор размера на екран
STR_GAME_OPTIONS_RESOLUTION_OTHER :друго
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Интерфейс размер
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Изберете размера на интерфейс елемент за използване
@@ -977,6 +979,8 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Четирик
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Базов графичен набор
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Изберете базов графичен набор
STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} липсващи/повредени файлове
@@ -1156,8 +1160,6 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Включва
STR_CONFIG_SETTING_CITY_APPROVAL :Отношението на градския съвет към реструктурирането на района: {STRING}
STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Изберете какво количество шум и поражения по околната среда причинени от компаниите афектират техния рейтинг в града и бъдещи конструкции в района.
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :Максимална височина на картата: {STRING}
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :Определете максималната допустима височина за планини на картата
STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}Не можете да зададете максималната височина на картата на тази стойност. Поне една планина на карта е по-висока
STR_CONFIG_SETTING_AUTOSLOPE :Тераформиране под постройки (autoslope): {STRING}
STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Разреши промяна на наклона на терена под постройки и пътища без необходимост от премахване
@@ -1671,6 +1673,8 @@ STR_CONFIG_ERROR_INVALID_BASE_SOUNDS_NOT_FOUND :{WHITE}... пр
STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... пропруска набора от основни песни '{STRING}': не е открит
STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Отвъд паметта
# Video initalization errors
# Intro window
STR_INTRO_CAPTION :{WHITE}OpenTTD {REV}
@@ -2186,6 +2190,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD
STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Да, изтегли графиките
STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Не, изход от OpenTTD
# Transparency settings window
STR_TRANSPARENCY_CAPTION :{WHITE}Настройки на прозрачност
STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Превключва прозрачност за знаци. Ctrl за заключване
@@ -2665,12 +2670,6 @@ STR_MAPGEN_BY :{BLACK}*
STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}Брой градове:
STR_MAPGEN_DATE :{BLACK}Дата:
STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Брой индустрии:
STR_MAPGEN_MAX_HEIGHTLEVEL :{BLACK}Максимална височина на картата:
STR_MAPGEN_MAX_HEIGHTLEVEL_UP :{BLACK}Увеличаване на максималната височина на планините на карта с едно
STR_MAPGEN_MAX_HEIGHTLEVEL_DOWN :{BLACK}Намаляне максималната височина на планините на карта с едно
STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Снежна линия:
STR_MAPGEN_SNOW_LINE_UP :{BLACK}Преместване снежната линия нагоре
STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Преместване снежната линия надолу
STR_MAPGEN_LAND_GENERATOR :{BLACK}Земегенератор:
STR_MAPGEN_TERRAIN_TYPE :{BLACK}Тип на терен:
STR_MAPGEN_QUANTITY_OF_SEA_LAKES :{BLACK}Морско ниво:
@@ -2696,8 +2695,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Име
STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Размер:
STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM}
STR_MAPGEN_MAX_HEIGHTLEVEL_QUERY_CAPT :{WHITE}Промяна на максималната височина на картата
STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Височина на снежната линия
STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Промяна началната година
# SE Map generation
@@ -2970,12 +2967,9 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW} Под
# Goal window
STR_GOALS_CAPTION :{WHITE}{COMPANY} Цели
STR_GOALS_SPECTATOR_CAPTION :{WHITE}Глобални цели
STR_GOALS_GLOBAL_TITLE :{BLACK}Основни цели:
STR_GOALS_TEXT :{ORANGE}{STRING}
STR_GOALS_NONE :{ORANGE}- Никакви -
STR_GOALS_SPECTATOR_NONE :{ORANGE}- Неприложимо-
STR_GOALS_PROGRESS :{ORANGE}напредък{STRING}
STR_GOALS_COMPANY_TITLE :{BLACK}Цели на компанията:
STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Кликни на задачата за да центрирате камерата на фабрика/град/плочка. Ctrl+Click отваря нов прозорец центриран на фабрика/град/плочка
# Goal question window

View File

@@ -387,7 +387,7 @@ STR_SCENEDIT_FILE_MENU_QUIT :Surt
############ range for settings menu starts
STR_SETTINGS_MENU_GAME_OPTIONS :Opcions de la partida
STR_SETTINGS_MENU_CONFIG_SETTINGS_TREE :Configuració
STR_SETTINGS_MENU_SCRIPT_SETTINGS :Paràmetres de les IA i de l'script de la partida
STR_SETTINGS_MENU_SCRIPT_SETTINGS :Paràmetres dels scripts d'IA/partida
STR_SETTINGS_MENU_NEWGRF_SETTINGS :Extensions NewGRF
STR_SETTINGS_MENU_TRANSPARENCY_OPTIONS :Opcions de transparència
STR_SETTINGS_MENU_TOWN_NAMES_DISPLAYED :Mostra els noms de les poblacions
@@ -948,6 +948,7 @@ STR_GAME_OPTIONS_CURRENCY_CNY :Renminbi xinès
STR_GAME_OPTIONS_CURRENCY_HKD :Dòlar de Hong Kong (HKD)
STR_GAME_OPTIONS_CURRENCY_INR :Rúpia índia (INR)
STR_GAME_OPTIONS_CURRENCY_IDR :Rupia indonèsia (IDR)
STR_GAME_OPTIONS_CURRENCY_MYR :Ringgit (MYR)
############ end of currency region
STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_LEFT :Conducció per l'esquerra
@@ -1000,6 +1001,14 @@ STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}Marqueu
STR_GAME_OPTIONS_RESOLUTION :{BLACK}Resolució de pantalla
STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Selecciona la resolució de pantalla
STR_GAME_OPTIONS_RESOLUTION_OTHER :altres
STR_GAME_OPTIONS_RESOLUTION_ITEM :{NUM}x{NUM}
STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Acceleració per maquinari
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Seleccioneu aquesta opció per permetre que l'OpenTTD provi d'usar acceleració per maquinari. Si es canvia l'opció, s'aplicarà quan es reiniciï el programa.
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}La configuració tindrà efecte quan es reiniciï el programa.
STR_GAME_OPTIONS_VIDEO_VSYNC :{BLACK}VSync
STR_GAME_OPTIONS_VIDEO_VSYNC_TOOLTIP :{BLACK}Selecciona aquesta casella per activar la sincronització vertical de la pantalla. Els canvis s'aplicaran quan es reiniciï el programa. Només funciona si s'activa l'acceleració per maquinari.
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Mida de la interfície
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Escull la mida dels elements de la interfície
@@ -1017,6 +1026,14 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Doble
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Quàdruple
STR_GAME_OPTIONS_GRAPHICS :{BLACK}Gràfics
STR_GAME_OPTIONS_REFRESH_RATE :{BLACK}Rati de refresc de la pantalla
STR_GAME_OPTIONS_REFRESH_RATE_TOOLTIP :{BLACK}Seleccioneu el rati de refresc de la pantalla que voleu usar.
STR_GAME_OPTIONS_REFRESH_RATE_OTHER :altres
STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}{NBSP}Hz
STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE}Ratis de refresc major a 60{NBSP}Hz poden causar problemes de rendiment.
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Conjunt de gràfics base
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Selecciona el conjunt de gràfics base a utilitzar
STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} arxiu{P "" s} absent{P "" s} o corromput{P "" s}.
@@ -1111,6 +1128,8 @@ STR_TERRAIN_TYPE_FLAT :Pla
STR_TERRAIN_TYPE_HILLY :Accidentat
STR_TERRAIN_TYPE_MOUNTAINOUS :Muntanyós
STR_TERRAIN_TYPE_ALPINIST :Escarpat
STR_TERRAIN_TYPE_CUSTOM :Alçada personalitzada
STR_TERRAIN_TYPE_CUSTOM_VALUE :Alçada personalitzada ({NUM})
STR_CITY_APPROVAL_PERMISSIVE :Permissiva
STR_CITY_APPROVAL_TOLERANT :Tolerant
@@ -1192,9 +1211,11 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Permet o no que
STR_CONFIG_SETTING_CITY_APPROVAL :Actitud de l'alcaldia de la població enfront les reestructuracions a la zona: {STRING}
STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Establiu com afecta al prestigi de les companyies el soroll i els danys ambientals que provoquen. Aquest prestigi influirà en la futura acceptació o denegació d'accions de construcció a la zona.
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :Alçada màxima del mapa: {STRING}
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :Estableix l'alçada màxima permesa del terreny en el mapa
STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}No es pot escollir aquesta alçada màxima del mapa: hi ha alguna zona del mapa actual que és més alta.
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT :Alçada màxima del mapa: {STRING}
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_HELPTEXT :Estableix l'alçada màxima del terreny del mapa. Amb «Automàtica», s'escollirà un valor adequat després que es generi el terreny.
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_VALUE :{NUM}
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_AUTO :Automàtica
STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}No es pot escollir aquest límit d'alçada del mapa. Hi ha almenys una muntanya al mapa que és més alta.
STR_CONFIG_SETTING_AUTOSLOPE :Permet la modificació del terreny sota edificis, rails, etc.: {STRING}
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}
@@ -1326,7 +1347,7 @@ STR_CONFIG_SETTING_SHOW_NEWGRF_NAME :Mostra el nom d
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
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 partida poden modificar-ne l'aparença i el comportament.
STR_CONFIG_SETTING_LAND_GENERATOR :Generador de terrenys: {STRING}
STR_CONFIG_SETTING_LAND_GENERATOR_HELPTEXT :L'algorisme generador original depèn del tipus de gràfics base i crea formes de terreny predefinides. TerraGenesis és un generador basat en el soroll Perlin que permet una configuració més precisa
STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Original
@@ -1338,7 +1359,13 @@ STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Fixa el nombre
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Distància màxima des de la vora a les indústries de petroli: {STRING}
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Limita a quina distància del mapa es poden construir refineries de petroli i plataformes petrolíferes. En mapes amb illes, serveix per assegurar que estan prop de la costa. En mapes de més de 256 caselles, aquest valor s'escala automàticament.
STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Alçada dels estatges amb neu: {STRING}
STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Controla a quina alçada la neu comença en el paisatge subàrtic. La neu també afecta la generació d'indústries i els requisits per al creixement de les poblacions
STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Controla a quina alçada la neu comença en el paisatge subàrtic. La neu també afecta la generació d'indústries i els requisits per al creixement de les poblacions. Només es pot modificar a l'editor d'escenaris; altrament, es calcula fent servir la proporció de terreny nevat.
STR_CONFIG_SETTING_SNOW_COVERAGE :Terreny nevat: {STRING}
STR_CONFIG_SETTING_SNOW_COVERAGE_HELPTEXT :Controla la quantitat aproximada de terreny nevat que hi ha en els paisatges subàrtics. La neu afecta a la generació d'indústries i el creixement de les poblacions. Només s'usa durant la generació de mapes. El terreny d'alçada propera al nivell del mar mai està nevat.
STR_CONFIG_SETTING_SNOW_COVERAGE_VALUE :{NUM}{NBSP}%
STR_CONFIG_SETTING_DESERT_COVERAGE :Terreny desèrtic: {STRING}
STR_CONFIG_SETTING_DESERT_COVERAGE_HELPTEXT :Controla la quantitat aproximada de terreny desèrtic que hi ha en els paisatges tropicals. Els deserts afecten a la generació d'indústries. Només s'usa durant la generació de mapes.
STR_CONFIG_SETTING_DESERT_COVERAGE_VALUE :{NUM}{NBSP}%
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Geografia del terreny: {STRING}
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(Només TerraGenesis) Escollir la suavitat del paisatge: els terrenys suaus tenen menys turons i són regulars; els terrenys més rugosos són irregulars i tenen molts turons
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Molt suau
@@ -1423,7 +1450,7 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :llarga (31 Des
STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_SHORT :curta (31-12-2008)
STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31)
STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Posa en pausa automàticament quan comenci una nova partida: {STRING}
STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Posa en pausa automàticament quan comenci una partida nova: {STRING}
STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Quan està activat, el joc es posa en pausa automàticament quan es comenci una partida nova, permetent a l'usuari estudiar el mapa més detalladament
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Accions permeses mentre s'està fent una pausa a la partida: {STRING}
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_HELPTEXT :Seleccioneu quines accions es poden realitzar mentre s'està fent una pausa a la partida.
@@ -1441,7 +1468,7 @@ STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE :Mostra l'arriba
STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE_HELPTEXT :Mostra als horaris l'arribada anticipadament i les hores de sortida
STR_CONFIG_SETTING_QUICKGOTO :Creació ràpida d'ordres per a vehicles: {STRING}
STR_CONFIG_SETTING_QUICKGOTO_HELPTEXT :Preselecciona el botó 'Vés a' quan s'obri la finestra d'ordres
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE :Tipus predeterminat de via (en nova partida/càrrega de partida): {STRING}
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE :Tipus predeterminat de via (després de carregar una partida o crear-ne una nova): {STRING}
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_HELPTEXT :Tipus de via a seleccionar després de començar o carregar una partida. 'El més antic disponible' selecciona el tipus de vies més antic disponible, 'El més modern disponible' selecciona el tipus de vies més modern, i 'El més utilitzat disponible' selecciona el tipus de vies que s'utilitzi més actualment
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :El més antic disponible
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_LAST :El més modern disponible
@@ -1454,6 +1481,10 @@ STR_CONFIG_SETTING_EXPENSES_LAYOUT :Agrupa les desp
STR_CONFIG_SETTING_EXPENSES_LAYOUT_HELPTEXT :Defineix la disposició de la companyia a la finestra de despeses
STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS :Treu automàticament els senyals durant la construcció ferroviària: {STRING}
STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS_HELPTEXT :Treu automàticament els senyals ferroviaris que hi hagi pel mig durant la construcció de rail. Aneu amb compte ja que pot provocar col·lisions de trens.
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT :Límit de velocitat de la partida: {STRING}
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_HELPTEXT :Estableix el límit de velocitat de la partida quan s'activa l'avanç ràpid del temps. 0 = sense límit (tan ràpid com pugui el vostre ordinador). Els valors per sota de 100{NBSP}% alenteixen la partida. El límit de velocitat depèn de les característiques del vostre ordinador i de la partida que esteu jugant (mida del mapa, nombre de vehicles, longitud de les rutes...).
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_VAL :{NUM}{NBSP}% de la velocitat normal
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_ZERO :Sense límit (tan ràpid com pugui el vostre ordinador)
STR_CONFIG_SETTING_SOUND_TICKER :Barra de notícies: {STRING}
STR_CONFIG_SETTING_SOUND_TICKER_HELPTEXT :Reprodueix un so quan apareixen les notícies resumides a la barra inferior
@@ -1493,7 +1524,7 @@ STR_CONFIG_SETTING_AI_BUILDS_SHIPS :Desactiva els v
STR_CONFIG_SETTING_AI_BUILDS_SHIPS_HELPTEXT :Activant aquesta opció fa que sigui impossible construir vaixells als jugadors IA.
STR_CONFIG_SETTING_AI_PROFILE :Perfil de paràmetres predeterminat: {STRING}
STR_CONFIG_SETTING_AI_PROFILE_HELPTEXT :Escolliu quin perfil de paràmetres utilitzar per les IA aleatòries o com a valors inicials quan s'afegeix una nova IA o script de la partida.
STR_CONFIG_SETTING_AI_PROFILE_HELPTEXT :Escolliu el perfil de paràmetres de les IA aleatòries o els valors inicials quan s'afegeix una nova IA o script de partida.
STR_CONFIG_SETTING_AI_PROFILE_EASY :Fàcil
STR_CONFIG_SETTING_AI_PROFILE_MEDIUM :Mitjà
STR_CONFIG_SETTING_AI_PROFILE_HARD :Difícil
@@ -1513,11 +1544,11 @@ STR_CONFIG_SETTING_SERVINT_TRAINS_HELPTEXT :Estableix l'int
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}di{P 0 a es}/%
STR_CONFIG_SETTING_SERVINT_DISABLED :Desactivat
STR_CONFIG_SETTING_SERVINT_ROAD_VEHICLES :Interval per defecte de servei per als vehicles: {STRING}
STR_CONFIG_SETTING_SERVINT_ROAD_VEHICLES_HELPTEXT :Estableix l'interval de revisió predeterminat pels nous vehicles de caretera, si no hi ha un interval de revisió explícit pel vehicle
STR_CONFIG_SETTING_SERVINT_ROAD_VEHICLES_HELPTEXT :Estableix l'interval de revisió predeterminat pels vehicles de carretera que es comprin, si no hi ha un interval de revisió explícit pel vehicle.
STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Interval per defecte de servei per a les aeronaus: {STRING}
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Estableix l'interval de revisió predeterminat pels nous avions, si no hi ha un interval de revisió explícit pel vehicle
STR_CONFIG_SETTING_SERVINT_SHIPS :Interval per defecte de servei per als vaixells: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Estableix l'interval de revisió predeterminat pels nous vaixells, si no hi ha un interval de revisió explícit pel vehicle
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Estableix l'interval de revisió predeterminat pels vaixells que es comprin, si no hi ha un interval de revisió explícit pel vehicle.
STR_CONFIG_SETTING_NOSERVICE :Desactiva les revisions quan les avaries s'estableixen a cap: {STRING}
STR_CONFIG_SETTING_NOSERVICE_HELPTEXT :Quan està activat, els vehicles no són revisats si no es poden espatllar
STR_CONFIG_SETTING_WAGONSPEEDLIMITS :Activa límits de velocitat per als vagons: {STRING}
@@ -1547,7 +1578,7 @@ STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_UNSERVED :Altres canvis d
STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_UNSERVED_HELPTEXT :Mostra les notícies de canvis als nivells de producció de les indústries que no estan proveïdes ni per la companyia ni pels competidors
STR_CONFIG_SETTING_NEWS_ADVICE :Alertes / informació sobre els vehicles de la companyia: {STRING}
STR_CONFIG_SETTING_NEWS_ADVICE_HELPTEXT :Mostra missatges sobre vehicles que necessitin atenció
STR_CONFIG_SETTING_NEWS_NEW_VEHICLES :Nous vehicles: {STRING}
STR_CONFIG_SETTING_NEWS_NEW_VEHICLES :Vehicles nous: {STRING}
STR_CONFIG_SETTING_NEWS_NEW_VEHICLES_HELPTEXT :Mostra les notícies d'aparicions de nous tipus de vehicles
STR_CONFIG_SETTING_NEWS_CHANGES_ACCEPTANCE :Canvis en l'admissió de càrrega: {STRING}
STR_CONFIG_SETTING_NEWS_CHANGES_ACCEPTANCE_HELPTEXT :Mostra missatges sobre les estacions que canviïn l'acceptació d'alguna càrrega
@@ -1600,10 +1631,10 @@ STR_CONFIG_SETTING_CYCLE_SIGNAL_ALL :Totes
STR_CONFIG_SETTING_TOWN_LAYOUT :Disposició de carreteres per les noves poblacions: {STRING}
STR_CONFIG_SETTING_TOWN_LAYOUT_HELPTEXT :Disposició per la xarxa de carreteres de les poblacions
STR_CONFIG_SETTING_TOWN_LAYOUT_DEFAULT :Original
STR_CONFIG_SETTING_TOWN_LAYOUT_BETTER_ROADS :Millors carreteres
STR_CONFIG_SETTING_TOWN_LAYOUT_2X2_GRID :graella 2x2
STR_CONFIG_SETTING_TOWN_LAYOUT_3X3_GRID :graella 3x3
STR_CONFIG_SETTING_TOWN_LAYOUT_DEFAULT :Distribució millorada
STR_CONFIG_SETTING_TOWN_LAYOUT_BETTER_ROADS :Distribució millorada
STR_CONFIG_SETTING_TOWN_LAYOUT_2X2_GRID :Graella 2x2
STR_CONFIG_SETTING_TOWN_LAYOUT_3X3_GRID :Graella 3x3
STR_CONFIG_SETTING_TOWN_LAYOUT_RANDOM :Aleatori
STR_CONFIG_SETTING_ALLOW_TOWN_ROADS :Les poblacions poden construir carreteres: {STRING}
STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT :Permet a les poblacions construir carreteres per créixer. Desactiveu aquesta opció per evitar que les poblacions construeixin carreteres.
@@ -1644,12 +1675,17 @@ STR_CONFIG_SETTING_ZOOM_MIN :Zoom màxim d'a
STR_CONFIG_SETTING_ZOOM_MIN_HELPTEXT :Nivell de zoom d'apropament màxim a les vistes. Un major nivell de zoom d'apropament incrementa les necessitats de memòria
STR_CONFIG_SETTING_ZOOM_MAX :Zoom màxim d'allunyament: {STRING}
STR_CONFIG_SETTING_ZOOM_MAX_HELPTEXT :Nivell de zoom d'allunyament màxim a les vistes. Un nivell elevat de zoom d'allunyament pot causar alentiments
STR_CONFIG_SETTING_SPRITE_ZOOM_MIN :Resolució de sprites màxima que es pot usar: {STRING}
STR_CONFIG_SETTING_SPRITE_ZOOM_MIN_HELPTEXT :Limita la resolució màxima dels sprites que s'empraran. Aquest límit pot evitar que s'usin els sprites amb resolució elevada quan estiguin disponibles. Això pot ajudar a millorar l'aparença general quan s'empren diferents fitxers GRF amb gràfics de diferents resolucions màximes.
STR_CONFIG_SETTING_ZOOM_LVL_MIN :4x
STR_CONFIG_SETTING_ZOOM_LVL_IN_2X :2x
STR_CONFIG_SETTING_ZOOM_LVL_NORMAL :Normal
STR_CONFIG_SETTING_ZOOM_LVL_OUT_2X :2x
STR_CONFIG_SETTING_ZOOM_LVL_OUT_4X :4x
STR_CONFIG_SETTING_ZOOM_LVL_OUT_8X :8x
STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_MIN :x4
STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_IN_2X :x2
STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_NORMAL :x1
STR_CONFIG_SETTING_TOWN_GROWTH :Velocitat de creixement de les poblacions: {STRING}
STR_CONFIG_SETTING_TOWN_GROWTH_HELPTEXT :Velocitat de creixement de les poblacions
STR_CONFIG_SETTING_TOWN_GROWTH_NONE :Cap
@@ -1783,10 +1819,14 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}...s'ign
STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Memòria exhaurida
STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}L'assignació de {BYTES} de memòria cau de sprites ha fallat. S'ha reduït aquest tipus de memòria a {BYTES}. Això reduirà el rendiment de l'OpenTTD. Per reduir els requeriments de memòria, proveu de desactivar els gràfics de 32bpp i/o els nivells extra de zoom.
# Video initalization errors
STR_VIDEO_DRIVER_ERROR :{WHITE}S'ha produït un error en la configuració de vídeo...
STR_VIDEO_DRIVER_ERROR_NO_HARDWARE_ACCELERATION :{WHITE}... no s'ha trobat cap GPU compatible. Es desactiva l'acceleració per programari.
# Intro window
STR_INTRO_CAPTION :{WHITE}OpenTTD {REV}
STR_INTRO_NEW_GAME :{BLACK}Nova partida
STR_INTRO_NEW_GAME :{BLACK}Partida nova
STR_INTRO_LOAD_GAME :{BLACK}Carrega una partida
STR_INTRO_PLAY_SCENARIO :{BLACK}Juga un escenari
STR_INTRO_PLAY_HEIGHTMAP :{BLACK}Juga un mapa d'alçades
@@ -1798,7 +1838,7 @@ STR_INTRO_HIGHSCORE :{BLACK}Taula de
STR_INTRO_CONFIG_SETTINGS_TREE :{BLACK}Configuració
STR_INTRO_NEWGRF_SETTINGS :{BLACK}Extensions NewGRF
STR_INTRO_ONLINE_CONTENT :{BLACK}Contingut en línia
STR_INTRO_SCRIPT_SETTINGS :{BLACK}Paràmetres de les IA/script de la partida
STR_INTRO_SCRIPT_SETTINGS :{BLACK}Paràmetres dels scripts d'IA/partida
STR_INTRO_QUIT :{BLACK}Surt
STR_INTRO_TOOLTIP_NEW_GAME :{BLACK}Comença una partida nova. Ctrl+Clic salta la configuració del mapa
@@ -1818,10 +1858,10 @@ STR_INTRO_TOOLTIP_HIGHSCORE :{BLACK}Mostra l
STR_INTRO_TOOLTIP_CONFIG_SETTINGS_TREE :{BLACK}Mostra la finestra de configuració
STR_INTRO_TOOLTIP_NEWGRF_SETTINGS :{BLACK}Mostra la configuració de les extensions NewGRF
STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Comprova si hi ha continguts nous i actualitzats per a descarregar
STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Mostra els paràmetres de les IA/Script de la partida
STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Mostra els paràmetres dels scripts d'IA/partida
STR_INTRO_TOOLTIP_QUIT :{BLACK}Surt de l'OpenTTD.
STR_INTRO_BASESET :{WHITE}Al joc de gràfics base seleccionat li falten {NUM} sprite{P "" s}.{}Si us plau, comproveu-ne si hi ha actualitzacions disponibles.
STR_INTRO_BASESET :{WHITE}Al joc de gràfics base seleccionat li falten {NUM} sprite{P "" s}.{}Si us plau, comproveu si hi ha actualitzacions disponibles.
STR_INTRO_TRANSLATION :{BLACK}A aquesta traducció li falten {NUM} caden{P a es}. Si us plau, ajudeu a fer millor l'OpenTTD unint-vos com a traductor. Vegeu el fitxer readme.txt per més detalls.
# Quit window
@@ -2224,7 +2264,7 @@ STR_NETWORK_SERVER_MESSAGE_GAME_UNPAUSED :Partida represa
STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS :nombre de jugadors
STR_NETWORK_SERVER_MESSAGE_GAME_REASON_CONNECTING_CLIENTS :connectant clients
STR_NETWORK_SERVER_MESSAGE_GAME_REASON_MANUAL :manual
STR_NETWORK_SERVER_MESSAGE_GAME_REASON_GAME_SCRIPT :script de la partida
STR_NETWORK_SERVER_MESSAGE_GAME_REASON_GAME_SCRIPT :script de partida
STR_NETWORK_SERVER_MESSAGE_GAME_REASON_LINK_GRAPH :s'està esperant que s'actualitzi el graf de distribució
############ End of leave-in-this-order
STR_NETWORK_MESSAGE_CLIENT_LEAVING :deixant
@@ -2291,7 +2331,7 @@ STR_CONTENT_TYPE_SCENARIO :Escenari
STR_CONTENT_TYPE_HEIGHTMAP :Mapa d'alçades
STR_CONTENT_TYPE_BASE_SOUNDS :Sons base
STR_CONTENT_TYPE_BASE_MUSIC :Música base
STR_CONTENT_TYPE_GAME_SCRIPT :Script de la partida
STR_CONTENT_TYPE_GAME_SCRIPT :Script de partida
STR_CONTENT_TYPE_GS_LIBRARY :Llibreria GS
# Content downloading progress window
@@ -2303,7 +2343,7 @@ STR_CONTENT_DOWNLOAD_PROGRESS_SIZE :{WHITE}{BYTES}{
# Content downloading error messages
STR_CONTENT_ERROR_COULD_NOT_CONNECT :{WHITE}No s'ha pogut connectar amb el servidor de continguts...
STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD :{WHITE}Descàrrega fallida...
STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD :{WHITE}La descàrrega ha fallat...
STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD_CONNECTION_LOST :{WHITE}... connexió perduda
STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD_FILE_NOT_WRITABLE :{WHITE}... no es pot escriure al fitxer
STR_CONTENT_ERROR_COULD_NOT_EXTRACT :{WHITE}No s'han pogut descomprimir els arxius descarregats
@@ -2313,6 +2353,10 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}L'OpenTT
STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Sí, descarregar els gràfics
STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}No, surt de l'OpenTTD.
STR_MISSING_GRAPHICS_ERROR_TITLE :{WHITE}Ha fallat la descàrrega.
STR_MISSING_GRAPHICS_ERROR :{BLACK}La descàrrega de gràfics ha fallat.{}Si us plau, baixeu els gràfics manualment.
STR_MISSING_GRAPHICS_ERROR_QUIT :{BLACK}Surt de l'OpenTTD
# Transparency settings window
STR_TRANSPARENCY_CAPTION :{WHITE}Opcions de transparència
STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Commuta la transparència dels senyals. Ctrl+Clic per bloquejar
@@ -2395,7 +2439,7 @@ STR_STATION_BUILD_NUMBER_OF_TRACKS :{BLACK}Nombre d
STR_STATION_BUILD_NUMBER_OF_TRACKS_TOOLTIP :{BLACK}Selecciona el nombre d'andanes de l'estació de tren
STR_STATION_BUILD_PLATFORM_LENGTH :{BLACK}Mida de les andanes
STR_STATION_BUILD_PLATFORM_LENGTH_TOOLTIP :{BLACK}Selecciona la mida de les andanes de l'estació de tren
STR_STATION_BUILD_DRAG_DROP :{BLACK}Arrossega i Deixa
STR_STATION_BUILD_DRAG_DROP :{BLACK}Arrossega i deixa
STR_STATION_BUILD_DRAG_DROP_TOOLTIP :{BLACK}Construeix una estació arrossegant i deixant
STR_STATION_BUILD_STATION_CLASS_TOOLTIP :{BLACK}Selecciona un tipus de estació a mostrar
@@ -2549,60 +2593,60 @@ STR_PLANT_TREE_CAPTION :{WHITE}Arbres
STR_PLANT_TREE_TOOLTIP :{BLACK}Selecciona el tipus d'arbre a plantar. Si la casella ja conté un arbre, s'afegiran més arbres d'altres espècies independentment de quin estigui seleccionat
STR_TREES_RANDOM_TYPE :{BLACK}Arbres de tipus aleatori
STR_TREES_RANDOM_TYPE_TOOLTIP :{BLACK}Situar arbres de tipus aleatori. Shift commuta construeix/mostra el cost estimat
STR_TREES_RANDOM_TREES_BUTTON :{BLACK}Arbres Aleatoris
STR_TREES_RANDOM_TREES_BUTTON :{BLACK}Planta arbres
STR_TREES_RANDOM_TREES_TOOLTIP :{BLACK}Planta arbres aleatòriament al paisatge
STR_TREES_MODE_NORMAL_BUTTON :{BLACK}Normal
STR_TREES_MODE_NORMAL_TOOLTIP :{BLACK}Planta un arbre a cada casella arrossegant el ratolí pel paisatge.
STR_TREES_MODE_FOREST_SM_BUTTON :Arbreda
STR_TREES_MODE_FOREST_SM_BUTTON :{BLACK}Arbreda
STR_TREES_MODE_FOREST_SM_TOOLTIP :{BLACK}Planta petits boscos arrossegant el ratolí pel paisatge.
STR_TREES_MODE_FOREST_LG_BUTTON :{BLACK}Bosc
STR_TREES_MODE_FOREST_LG_TOOLTIP :{BLACK}Planta grans boscos arrossegant el ratolí pel paisatge.
# Land generation window (SE)
STR_TERRAFORM_TOOLBAR_LAND_GENERATION_CAPTION :{WHITE}Generador de Terreny
STR_TERRAFORM_TOOLBAR_LAND_GENERATION_CAPTION :{WHITE}Generador de terreny
STR_TERRAFORM_TOOLTIP_PLACE_ROCKY_AREAS_ON_LANDSCAPE :{BLACK}Situa àrees de roques al paisatge
STR_TERRAFORM_TOOLTIP_DEFINE_DESERT_AREA :{BLACK}Defineix àrea de desert.{}Mantingues apretat Ctrl per treure'l
STR_TERRAFORM_TOOLTIP_INCREASE_SIZE_OF_LAND_AREA :{BLACK}Augmenta la mida de l'àrea de terreny a rebaixar/elevar
STR_TERRAFORM_TOOLTIP_DECREASE_SIZE_OF_LAND_AREA :{BLACK}Disminueix la mida de l'àrea de terreny a rebaixar/elevar
STR_TERRAFORM_TOOLTIP_GENERATE_RANDOM_LAND :{BLACK}Genera un terreny aleatori
STR_TERRAFORM_SE_NEW_WORLD :{BLACK}Crear nou escenari
STR_TERRAFORM_RESET_LANDSCAPE :{BLACK}Restableix paisatge
STR_TERRAFORM_RESET_LANDSCAPE_TOOLTIP :{BLACK}Treure totes les propietats pertanyents a companyies del mapa
STR_TERRAFORM_SE_NEW_WORLD :{BLACK}Crea un escenari nou
STR_TERRAFORM_RESET_LANDSCAPE :{BLACK}Restableix el paisatge
STR_TERRAFORM_RESET_LANDSCAPE_TOOLTIP :{BLACK}Treu del mapa totes les propietats de les companyies.
STR_QUERY_RESET_LANDSCAPE_CAPTION :{WHITE}Restableix Paisatge
STR_RESET_LANDSCAPE_CONFIRMATION_TEXT :{WHITE}Estàs segur que vols treure totes les propietats pertanyents a companyies?
# Town generation window (SE)
STR_FOUND_TOWN_CAPTION :{WHITE}Generació de Poblacions
STR_FOUND_TOWN_NEW_TOWN_BUTTON :{BLACK}Nova Població
STR_FOUND_TOWN_NEW_TOWN_TOOLTIP :{BLACK}Funda una nova població. Shift+Clic mostra el cost estimat
STR_FOUND_TOWN_RANDOM_TOWN_BUTTON :{BLACK}Localitat Aleatòria
STR_FOUND_TOWN_CAPTION :{WHITE}Generació de poblacions
STR_FOUND_TOWN_NEW_TOWN_BUTTON :{BLACK}Població nova
STR_FOUND_TOWN_NEW_TOWN_TOOLTIP :{BLACK}Funda una població. Shift+Clic en mostra el cost estimat.
STR_FOUND_TOWN_RANDOM_TOWN_BUTTON :{BLACK}Crea una població aleatòria
STR_FOUND_TOWN_RANDOM_TOWN_TOOLTIP :{BLACK}Funda una població en un lloc aleatori
STR_FOUND_TOWN_MANY_RANDOM_TOWNS :{BLACK}Moltes poblacions aleatòries
STR_FOUND_TOWN_MANY_RANDOM_TOWNS :{BLACK}Crea moltes poblacions aleatòries
STR_FOUND_TOWN_RANDOM_TOWNS_TOOLTIP :{BLACK}Omple el mapa amb poblacions situades aleatòriament
STR_FOUND_TOWN_NAME_TITLE :{YELLOW}Nom de la població:
STR_FOUND_TOWN_NAME_TITLE :{YELLOW}Nom de la població nova:
STR_FOUND_TOWN_NAME_EDITOR_TITLE :{BLACK}Introdueix el nom de la població
STR_FOUND_TOWN_NAME_EDITOR_HELP :{BLACK}Clica per introduir el nom de la població
STR_FOUND_TOWN_NAME_RANDOM_BUTTON :{BLACK}Nom aleatori
STR_FOUND_TOWN_NAME_RANDOM_TOOLTIP :{BLACK}Genera un nom aleatori nou
STR_FOUND_TOWN_INITIAL_SIZE_TITLE :{YELLOW}Mida de població:
STR_FOUND_TOWN_INITIAL_SIZE_SMALL_BUTTON :{BLACK}Petit
STR_FOUND_TOWN_INITIAL_SIZE_MEDIUM_BUTTON :{BLACK}Mitjà
STR_FOUND_TOWN_INITIAL_SIZE_SMALL_BUTTON :{BLACK}Petita
STR_FOUND_TOWN_INITIAL_SIZE_MEDIUM_BUTTON :{BLACK}Mitjana
STR_FOUND_TOWN_INITIAL_SIZE_LARGE_BUTTON :{BLACK}Gran
STR_FOUND_TOWN_SIZE_RANDOM :{BLACK}Aleatori
STR_FOUND_TOWN_SIZE_RANDOM :{BLACK}Aleatòria
STR_FOUND_TOWN_INITIAL_SIZE_TOOLTIP :{BLACK}Selecciona la mida de la població
STR_FOUND_TOWN_CITY :{BLACK}Ciutat
STR_FOUND_TOWN_CITY_TOOLTIP :{BLACK}Les ciutats creixen més ràpid que els pobles{}Depenent de la configuració, són més grans quan es funden
STR_FOUND_TOWN_ROAD_LAYOUT :{YELLOW}Disposició de les carreteres de la població:
STR_FOUND_TOWN_SELECT_TOWN_ROAD_LAYOUT :{BLACK}Selecciona la disposició de les carreteres utilitzades per a aquesta població
STR_FOUND_TOWN_SELECT_LAYOUT_ORIGINAL :{BLACK}Original
STR_FOUND_TOWN_SELECT_LAYOUT_BETTER_ROADS :{BLACK}Millors carreteres
STR_FOUND_TOWN_SELECT_LAYOUT_2X2_GRID :{BLACK}graella 2x2
STR_FOUND_TOWN_SELECT_LAYOUT_3X3_GRID :{BLACK}graella 3x3
STR_FOUND_TOWN_SELECT_LAYOUT_RANDOM :{BLACK}Aleatori
STR_FOUND_TOWN_SELECT_LAYOUT_ORIGINAL :{BLACK}Distribució original
STR_FOUND_TOWN_SELECT_LAYOUT_BETTER_ROADS :{BLACK}Distribució millorada
STR_FOUND_TOWN_SELECT_LAYOUT_2X2_GRID :{BLACK}Graella 2x2
STR_FOUND_TOWN_SELECT_LAYOUT_3X3_GRID :{BLACK}Graella 3x3
STR_FOUND_TOWN_SELECT_LAYOUT_RANDOM :{BLACK}Aleatòria
# Fund new industry window
STR_FUND_INDUSTRY_CAPTION :{WHITE}Finança una nova indústria
@@ -2648,7 +2692,7 @@ STR_LAND_AREA_INFORMATION_OWNER :{BLACK}Propieta
STR_LAND_AREA_INFORMATION_ROAD_OWNER :{BLACK}Propietari de la carretera: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Propietari del rail del tramvia: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_RAIL_OWNER :{BLACK}Propietari del rail: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_LOCAL_AUTHORITY :{BLACK}Autoritat Local: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_LOCAL_AUTHORITY :{BLACK}Autoritat local: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_LOCAL_AUTHORITY_NONE :Cap
STR_LAND_AREA_INFORMATION_LANDINFO_COORDS :{BLACK}Coordenades: {LTBLUE}{NUM} x {NUM} x {NUM} ({STRING})
STR_LAND_AREA_INFORMATION_BUILD_DATE :{BLACK}Construït: {LTBLUE}{DATE_LONG}
@@ -2862,12 +2906,17 @@ STR_MAPGEN_BY :{BLACK}*
STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}Nombre de poblacions:
STR_MAPGEN_DATE :{BLACK}Data:
STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Nombre d'indústries:
STR_MAPGEN_MAX_HEIGHTLEVEL :{BLACK}Alçada màxima del mapa:
STR_MAPGEN_MAX_HEIGHTLEVEL_UP :{BLACK}Augmenta l'alçada màxima del terreny en el mapa en una unitat
STR_MAPGEN_MAX_HEIGHTLEVEL_DOWN :{BLACK}Disminueix l'alçada màxima del mapa en una unitat
STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Alçada dels estatges amb neu:
STR_MAPGEN_SNOW_LINE_UP :{BLACK}Mou els estatges amb neu un pas amunt
STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Mou els estatges amb neu un pas avall
STR_MAPGEN_HEIGHTMAP_HEIGHT :{BLACK}Alçada del cim més alt:
STR_MAPGEN_HEIGHTMAP_HEIGHT_UP :{BLACK}Augmenta l'alçada màxima o l'alçada màxima dels cims en una unitat
STR_MAPGEN_HEIGHTMAP_HEIGHT_DOWN :{BLACK}Redueix l'alçada màxima o l'alçada màxima dels cims en una unitat
STR_MAPGEN_SNOW_COVERAGE :{BLACK}Proporció de terreny nevat:
STR_MAPGEN_SNOW_COVERAGE_UP :{BLACK}Augmenta un 10 % la proporció de terreny nevat
STR_MAPGEN_SNOW_COVERAGE_DOWN :{BLACK}Redueix un 10 % la proporció de terreny nevat
STR_MAPGEN_SNOW_COVERAGE_TEXT :{BLACK}{NUM}{NBSP}%
STR_MAPGEN_DESERT_COVERAGE :{BLACK}Proporció de terreny desèrtic:
STR_MAPGEN_DESERT_COVERAGE_UP :{BLACK}Augmenta un 10 % la proporció de terreny desèrtic
STR_MAPGEN_DESERT_COVERAGE_DOWN :{BLACK}Redueix un 10 % la proporció de terreny desèrtic
STR_MAPGEN_DESERT_COVERAGE_TEXT :{BLACK}{NUM}{NBSP}%
STR_MAPGEN_LAND_GENERATOR :{BLACK}Generació de terrenys:
STR_MAPGEN_TERRAIN_TYPE :{BLACK}Tipus de terreny:
STR_MAPGEN_QUANTITY_OF_SEA_LAKES :{BLACK}Nivell de mar:
@@ -2893,8 +2942,10 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Nom del
STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Mida:
STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM}
STR_MAPGEN_MAX_HEIGHTLEVEL_QUERY_CAPT :{WHITE}Canvia l'alçada màxima del mapa
STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Canvia l'alçada d'inici d'estatges amb neu
STR_MAPGEN_TERRAIN_TYPE_QUERY_CAPT :{WHITE}Alçada desitjada dels cims
STR_MAPGEN_HEIGHTMAP_HEIGHT_QUERY_CAPT :{WHITE}Alçada màxima dels cims
STR_MAPGEN_SNOW_COVERAGE_QUERY_CAPT :{WHITE}Percentatge de terreny amb neu
STR_MAPGEN_DESERT_COVERAGE_QUERY_CAPT :{WHITE}Percentatge de terreny desèrtic
STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Canviar l'any inicial
# SE Map generation
@@ -3172,26 +3223,27 @@ STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Finança nous e
STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Compra els drets de transport en exclusiva
STR_LOCAL_AUTHORITY_ACTION_BRIBE :Suborna les autoritats locals
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Inicia una petita campanya de publicitat, per atraure més passatgers i càrregues als teus serveis de transport.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Inicia una mitjana campanya de publicitat, per atraure més passatgers i càrregues als teus serveis de transport.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Inicia una gran campanya de publicitat, per atraure més passatgers i càrregues als teus serveis de transport.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Finança la reconstrucció de la xarxa local de carrers. Dificulta notablement el trànsit durant 6 mesos.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Construeix una estàtua en honor a la teva companyia.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Finança la construcció de nous edificis comercials a la població.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Compra per 1 any els drets exclusius de transport en la població. L'autoritat local només permetrà utilitzar les instal·lacions de la teva companyia de transports als passatgers i les mercaderies.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Inicia una petita campanya de publicitat, per atraure més passatgers i càrregues als teus serveis de transport.{}Proporciona una millora temporal dels ratis de les estacions dins d'un radi petit al voltant del centre de la població.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Inicia una mitjana campanya de publicitat, per atraure més passatgers i càrregues als teus serveis de transport.{}Proporciona una millora temporal dels ratis de les estacions dins un radi mitjà al voltant del centre de la població.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Inicia una gran campanya de publicitat, per atraure més passatgers i càrregues als teus serveis de transport.{}Proporciona una millora temporal dels ratis de les estacions dins d'un radi gran al voltant del centre de la població.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Finança la reconstrucció de la xarxa local de carrers. Dificulta notablement el trànsit durant 6 mesos.{}Causa molèsties considerables al trànsit de vehicles de carretera durant 6 mesos.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Construeix una estàtua en honor a la teva companyia.{}Proporciona una millora permanent dels ratis d'estació de la població.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Finança la construcció de nous edificis comercials a la població.{}Proporciona una millora temporal del creixement d'aquesta població.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Compra per 1 any els drets exclusius de transport en la població. L'autoritat local només permetrà utilitzar les instal·lacions de la teva companyia de transports als passatgers i les mercaderies.{}L'autoritat local no permetrà que els passatgers i càrregues locals usin les estacions dels oponents.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Suborna les autoritats locals per incrementar el teu rati, a risc de greus penalitzacions si et pesquen.{}Cost: {CURRENCY_LONG}
# Goal window
STR_GOALS_CAPTION :{WHITE}{COMPANY} Objectius
STR_GOALS_SPECTATOR_CAPTION :{WHITE}Objectius globals
STR_GOALS_SPECTATOR :Objectius globals
STR_GOALS_GLOBAL_TITLE :{BLACK}Objectius globals:
STR_GOALS_GLOBAL_BUTTON :{BLACK}Global
STR_GOALS_GLOBAL_BUTTON_HELPTEXT :{BLACK}Mostra els objectius globals
STR_GOALS_COMPANY_BUTTON :{BLACK}Companyia
STR_GOALS_COMPANY_BUTTON_HELPTEXT :{BLACK}Mostra els objectius de la companyia
STR_GOALS_TEXT :{ORANGE}{STRING}
STR_GOALS_NONE :{ORANGE}- Cap -
STR_GOALS_SPECTATOR_NONE :{ORANGE}- No aplicable -
STR_GOALS_PROGRESS :{ORANGE}{STRING}
STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING}
STR_GOALS_COMPANY_TITLE :{BLACK}Objectius de la companyia:
STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Clica sobre l'objectiu per centrar la vista principal sobre la indústria/població/cel·la. Ctrl+clic per obrir una nova vista sobre la indústria/població/cel·la
# Goal question window
@@ -3333,24 +3385,24 @@ STR_FINANCES_CAPTION :{WHITE}Finances
STR_FINANCES_EXPENDITURE_INCOME_TITLE :{WHITE}Despeses/Ingressos
STR_FINANCES_YEAR :{WHITE}{NUM}
STR_FINANCES_SECTION_CONSTRUCTION :{GOLD}Construcció
STR_FINANCES_SECTION_NEW_VEHICLES :{GOLD}Nous Vehicles
STR_FINANCES_SECTION_TRAIN_RUNNING_COSTS :{GOLD}Desp. de Circ. de Trens
STR_FINANCES_SECTION_ROAD_VEHICLE_RUNNING_COSTS :{GOLD}Desp. de Circ. de Vehicles
STR_FINANCES_SECTION_AIRCRAFT_RUNNING_COSTS :{GOLD}Desp. de Circ. d'Avions
STR_FINANCES_SECTION_SHIP_RUNNING_COSTS :{GOLD}Desp. de Circ. de Vaixells
STR_FINANCES_SECTION_PROPERTY_MAINTENANCE :{GOLD}Manteniment de Propietats
STR_FINANCES_SECTION_TRAIN_INCOME :{GOLD}Ingressos de Trens
STR_FINANCES_SECTION_ROAD_VEHICLE_INCOME :{GOLD}Ingressos de Vehicles
STR_FINANCES_SECTION_AIRCRAFT_INCOME :{GOLD}Ingressos d'Avions
STR_FINANCES_SECTION_SHIP_INCOME :{GOLD}Ingressos de Vaixells
STR_FINANCES_SECTION_LOAN_INTEREST :{GOLD}Interessos del Préstec
STR_FINANCES_SECTION_NEW_VEHICLES :{GOLD}Compra de vehicles
STR_FINANCES_SECTION_TRAIN_RUNNING_COSTS :{GOLD}Desp. de circ. de trens
STR_FINANCES_SECTION_ROAD_VEHICLE_RUNNING_COSTS :{GOLD}Desp. de circ. de vehicles
STR_FINANCES_SECTION_AIRCRAFT_RUNNING_COSTS :{GOLD}Desp. de circ. d'aeronaus
STR_FINANCES_SECTION_SHIP_RUNNING_COSTS :{GOLD}Desp. de circ. de vaixells
STR_FINANCES_SECTION_PROPERTY_MAINTENANCE :{GOLD}Manteniment de propietats
STR_FINANCES_SECTION_TRAIN_INCOME :{GOLD}Ingressos de trens
STR_FINANCES_SECTION_ROAD_VEHICLE_INCOME :{GOLD}Ingressos de vehicles
STR_FINANCES_SECTION_AIRCRAFT_INCOME :{GOLD}Ingressos d'avions
STR_FINANCES_SECTION_SHIP_INCOME :{GOLD}Ingressos de vaixells
STR_FINANCES_SECTION_LOAN_INTEREST :{GOLD}Interessos del préstec
STR_FINANCES_SECTION_OTHER :{GOLD}Altres
STR_FINANCES_NEGATIVE_INCOME :{BLACK}-{CURRENCY_LONG}
STR_FINANCES_POSITIVE_INCOME :{BLACK}+{CURRENCY_LONG}
STR_FINANCES_TOTAL_CAPTION :{WHITE}Total:
STR_FINANCES_BANK_BALANCE_TITLE :{WHITE}Balanç del Banc
STR_FINANCES_BANK_BALANCE_TITLE :{WHITE}Balanç bancari
STR_FINANCES_LOAN_TITLE :{WHITE}Préstec
STR_FINANCES_MAX_LOAN :{WHITE}Préstec Màxim: {BLACK}{CURRENCY_LONG}
STR_FINANCES_MAX_LOAN :{WHITE}Préstec màxim: {BLACK}{CURRENCY_LONG}
STR_FINANCES_TOTAL_CURRENCY :{BLACK}{CURRENCY_LONG}
STR_FINANCES_BORROW_BUTTON :{BLACK}Demana {CURRENCY_LONG}
STR_FINANCES_BORROW_TOOLTIP :{BLACK}Augmenta l'import del préstec Ctrl+Clic per demanar tants diners com sigui possible
@@ -3505,7 +3557,7 @@ STR_GROUP_DEFAULT_AIRCRAFTS :Avions desagrup
STR_GROUP_COUNT_WITH_SUBGROUP :{TINY_FONT}{COMMA} (+{COMMA})
STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Grups - Clica en un grup per llistar tots els vehicles d'aquest grup. Arrossega i solta per a canviar-ne la jerarquia.
STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Grups - Clica en un grup per llistar tots els vehicles d'aquest grup. Arrossega i deixa per a canviar-ne la jerarquia.
STR_GROUP_CREATE_TOOLTIP :{BLACK}Clica per crear un grup
STR_GROUP_DELETE_TOOLTIP :{BLACK}Elimina el grup seleccionat
STR_GROUP_RENAME_TOOLTIP :{BLACK}Canvia el nom del grup seleccionat
@@ -3526,19 +3578,19 @@ STR_GROUP_OCCUPANCY :Ocupació actua
STR_GROUP_OCCUPANCY_VALUE :{NUM}%
# Build vehicle window
STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Compra de nous vehicles ferroviaris
STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Compra de nous vehicles ferroviaris per vies electrificades
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Compra de nous vehicles monorail
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Compra de nous vehicles Maglev
STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Compra de vehicles ferroviaris
STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Compra de vehicles ferroviaris per vies electrificades
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Compra de vehicles monorail
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Compra de vehicles Maglev
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Compra de nous vehicles de carretera
STR_BUY_VEHICLE_TRAM_VEHICLE_CAPTION :Nous vehicles de tramvia
STR_BUY_VEHICLE_TRAM_VEHICLE_CAPTION :Compra de vehicles de tramvia
############ 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
STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Compra de vehicles sobre vies
STR_BUY_VEHICLE_ROAD_VEHICLE_ALL_CAPTION :Compra automòbils
STR_BUY_VEHICLE_SHIP_CAPTION :Compra de vaixells
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Compra d'aeronaus
############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Cost: {GOLD}{CURRENCY_LONG}{BLACK} Pes: {GOLD}{WEIGHT_SHORT}
@@ -3562,6 +3614,7 @@ STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Vagons A
STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Remodelable a: {GOLD}{STRING}
STR_PURCHASE_INFO_ALL_TYPES :Totes les càrregues
STR_PURCHASE_INFO_NONE :Cap
STR_PURCHASE_INFO_ENGINES_ONLY :Només locomotores
STR_PURCHASE_INFO_ALL_BUT :Qualsevol excepte {CARGO_LIST}
STR_PURCHASE_INFO_MAX_TE :{BLACK}Esforç de tracció màxim: {GOLD}{FORCE}
STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Abast: {GOLD}{COMMA} cel·les
@@ -3655,20 +3708,20 @@ STR_DEPOT_AUTOREPLACE_ROAD_VEHICLE_TOOLTIP :{BLACK}Autosubs
STR_DEPOT_AUTOREPLACE_SHIP_TOOLTIP :{BLACK}Autosubstitueix tots els vaixells de la drassana
STR_DEPOT_AUTOREPLACE_AIRCRAFT_TOOLTIP :{BLACK}Autosubstitueix tots els avions de l'hangar
STR_DEPOT_TRAIN_NEW_VEHICLES_BUTTON :{BLACK}Nous Vehicles
STR_DEPOT_ROAD_VEHICLE_NEW_VEHICLES_BUTTON :{BLACK}Nous Vehicles
STR_DEPOT_SHIP_NEW_VEHICLES_BUTTON :{BLACK}Nous Vaixells
STR_DEPOT_AIRCRAFT_NEW_VEHICLES_BUTTON :{BLACK}Nou Avió
STR_DEPOT_TRAIN_NEW_VEHICLES_BUTTON :{BLACK}Compra vehicles
STR_DEPOT_ROAD_VEHICLE_NEW_VEHICLES_BUTTON :{BLACK}Compra vehicles
STR_DEPOT_SHIP_NEW_VEHICLES_BUTTON :{BLACK}Compra vaixells
STR_DEPOT_AIRCRAFT_NEW_VEHICLES_BUTTON :{BLACK}Compra avions
STR_DEPOT_TRAIN_NEW_VEHICLES_TOOLTIP :{BLACK}Compra un nou vehicle ferroviari
STR_DEPOT_ROAD_VEHICLE_NEW_VEHICLES_TOOLTIP :{BLACK}Compra un nou automòbil
STR_DEPOT_SHIP_NEW_VEHICLES_TOOLTIP :{BLACK}Compra un nou vaixell
STR_DEPOT_AIRCRAFT_NEW_VEHICLES_TOOLTIP :{BLACK}Compra un nou avió
STR_DEPOT_TRAIN_NEW_VEHICLES_TOOLTIP :{BLACK}Compra vehicles ferroviaris.
STR_DEPOT_ROAD_VEHICLE_NEW_VEHICLES_TOOLTIP :{BLACK}Compra automòbils nous.
STR_DEPOT_SHIP_NEW_VEHICLES_TOOLTIP :{BLACK}Compra vaixells nous.
STR_DEPOT_AIRCRAFT_NEW_VEHICLES_TOOLTIP :{BLACK}Compra avions nous.
STR_DEPOT_CLONE_TRAIN :{BLACK}Clona Tren
STR_DEPOT_CLONE_ROAD_VEHICLE :{BLACK}Clona Vehicle
STR_DEPOT_CLONE_SHIP :{BLACK}Clona Vaixell
STR_DEPOT_CLONE_AIRCRAFT :{BLACK}Clona Avió
STR_DEPOT_CLONE_TRAIN :{BLACK}Clona un tren
STR_DEPOT_CLONE_ROAD_VEHICLE :{BLACK}Clona un vehicle
STR_DEPOT_CLONE_SHIP :{BLACK}Clona un vaixell
STR_DEPOT_CLONE_AIRCRAFT :{BLACK}Clona aeronau
STR_DEPOT_CLONE_TRAIN_DEPOT_INFO :{BLACK}Això comprarà una còpia del tren inclosos tots els vagons. Clica aquest botó i després en un tren dins o fora de les cotxeres. Control+Clic compartirà les ordres. Shift+Clic mostra el cost estimat sense comprar-lo
STR_DEPOT_CLONE_ROAD_VEHICLE_DEPOT_INFO :{BLACK}Això comprarà una còpia del vehicle. Clica aquest botó i després en un vehicle dins o fora de les cotxeres. Control+Clic compartirà les ordres. Shift+Clic mostra el cost estimat sense comprar-lo
@@ -3830,8 +3883,8 @@ STR_VEHICLE_STATUS_HEADING_FOR_DEPOT_SERVICE_VEL :{LTBLUE}Revisi
# Vehicle stopped/started animations
STR_VEHICLE_COMMAND_STOPPED_SMALL :{TINY_FONT}{RED}Parat
STR_VEHICLE_COMMAND_STOPPED :{RED}Parat
STR_VEHICLE_COMMAND_STARTED_SMALL :{TINY_FONT}{GREEN}Començat
STR_VEHICLE_COMMAND_STARTED :{GREEN}Començat
STR_VEHICLE_COMMAND_STARTED_SMALL :{TINY_FONT}{GREEN}Engegat
STR_VEHICLE_COMMAND_STARTED :{GREEN}Engegat
# Vehicle details
STR_VEHICLE_DETAILS_CAPTION :{WHITE}{VEHICLE} (Detalls)
@@ -4173,11 +4226,11 @@ STR_AI_GAME_SCRIPT :{BLACK}Script d
STR_AI_GAME_SCRIPT_TOOLTIP :{BLACK}Mostra el registre de l'script de partida.
STR_ERROR_AI_NO_AI_FOUND :No s'ha trobat una IA adequada per carregar.{}Aquesta IA és una IA falsa i no farà res.{}Pots descarregar diverses IA via el sistema de "Contingut en línia"
STR_ERROR_AI_PLEASE_REPORT_CRASH :{WHITE}Un dels scripts executant-se s'ha penjat. Si us plau, informeu-ne a l'autor de l'script amb una captura de pantalla de la finestra de depuració IA/script de la partida.
STR_ERROR_AI_DEBUG_SERVER_ONLY :{YELLOW}La finestra de depuració de les IA i l'script de la partida només està disponible al servidor.
STR_ERROR_AI_PLEASE_REPORT_CRASH :{WHITE}Un dels scripts que s'estava executant ha fallat. Si us plau, informeu l'autor de l'script amb una captura de pantalla de la finestra de depuració de l'script d'IA/partida.
STR_ERROR_AI_DEBUG_SERVER_ONLY :{YELLOW}La finestra de depuració de les IA i l'script de partida només està disponible al servidor.
# AI configuration window
STR_AI_CONFIG_CAPTION :{WHITE}Configuració de la IA/script de partida
STR_AI_CONFIG_CAPTION :{WHITE}Configuració dels scripts de les IA/partida
STR_AI_CONFIG_GAMELIST_TOOLTIP :{BLACK}Aquest és l'script que s'usarà a la propera partida.
STR_AI_CONFIG_AILIST_TOOLTIP :{BLACK}Aquesta llista conté les IA que es carregaran a la propera partida.
STR_AI_CONFIG_HUMAN_PLAYER :Jugador humà
@@ -4309,6 +4362,7 @@ STR_WARNING_FALLBACK_SOUNDSET :{WHITE}Només s
STR_WARNING_SCREENSHOT_SIZE_CAPTION :{WHITE}Captura de pantalla enorme
STR_WARNING_SCREENSHOT_SIZE_MESSAGE :{YELLOW}La captura de pantalla tindrà una resolució de {COMMA} x {COMMA} píxels. Es tardarà una estona a fer la captura. Vols continuar?
STR_MESSAGE_HEIGHTMAP_SUCCESSFULLY :{WHITE}Mapa d'alçades desat correctament amb el nom «{STRING}». El cim més alt té alçada {NUM}.
STR_MESSAGE_SCREENSHOT_SUCCESSFULLY :{WHITE}Captura de pantalla desada correctament com a '{STRING}'
STR_ERROR_SCREENSHOT_FAILED :{WHITE}Error en la captura de pantalla!
@@ -4635,7 +4689,7 @@ STR_ERROR_VEHICLE_IS_DESTROYED :{WHITE}... vehi
STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL :{WHITE}No hi haurà cap vehicle disponible
STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Canvia la teva configuració dels NewGRF
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Encara no hi ha vehicles disponibles
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Iniciar una nova partida després de {DATE_SHORT} o usar un NewGRF que proporcioni vehicles primerencs
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Inicieu una partida nova després de {DATE_SHORT} o useu un NewGRF que proporcioni vehicles primerencs.
# Specific vehicle errors
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}No pots fer que un tren passi d'una senyal amb perill...

View File

@@ -1085,6 +1085,8 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Razluči
STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Odaberi razlučivost zaslona
STR_GAME_OPTIONS_RESOLUTION_OTHER :ostalo
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Veličina sučelja
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Odaberite koju ćete veličinu elementa sučelja koristiti
@@ -1099,6 +1101,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normalno
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Dvostruka veličina
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Četvorostruka veličina
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Osnovni set grafike
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Odaberi osnovni grafički set za igru
STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} datotek{P a e a} nedostaj{P e u e}/korumpiran{P a e o}
@@ -1274,8 +1278,6 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Uključivanje n
STR_CONFIG_SETTING_CITY_APPROVAL :Stav gradske uprave prema restrukturiranju područja: {STRING}
STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Odaberi koliko buka i ekološka šteta utječu na gradsku ocjenu pojedine tvrtke i na daljnja građevinska djelovanja u njihovim područjima
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :Najveća visina karte: {STRING}
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :Postavi najveću dopuštenu visinu planina na karti
STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}Nije moguće postaviti najveću visinu karte na ovu vrijednost. Barem jedna planina na karti je viša.
STR_CONFIG_SETTING_AUTOSLOPE :Dopusti uređivanje krajolika ispod građevina, tračnica, itd.: {STRING}
STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Dopusti uređivanje krajolika ispod građevina i pruga bez njihovog uklanjanja
@@ -1853,6 +1855,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... zaob
STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Nedostaje memorije
STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Dodjeljivanje {BYTES} predmemorije spriteova nije uspjelo. Predmemorija spriteova je smanjena na {BYTES}. Ovo će smanjiti performanse OpenTTD-a. Za smanjivanje potreba memorije you možete pokušati isključiti 32bpp grafiku i/ili razine zumiranja.
# Video initalization errors
# Intro window
STR_INTRO_CAPTION :{WHITE}OpenTTD {REV}
@@ -2374,6 +2378,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD
STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Da, preuzmi grafike
STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Ne, izađi iz OpenTTD-a
# Transparency settings window
STR_TRANSPARENCY_CAPTION :{WHITE}Postavke prozirnosti
STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Namjesti prozirnost za znakove. Ctrl+klik za zaključavanje
@@ -2907,12 +2912,6 @@ STR_MAPGEN_BY :{BLACK}*
STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}Broj gradova:
STR_MAPGEN_DATE :{BLACK}Datum:
STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Broj industrija:
STR_MAPGEN_MAX_HEIGHTLEVEL :{BLACK}Najveća visina karte:
STR_MAPGEN_MAX_HEIGHTLEVEL_UP :{BLACK}Povećaj za jedan najveću visinu planina na karti
STR_MAPGEN_MAX_HEIGHTLEVEL_DOWN :{BLACK}Smanji za jedan najveću visinu planina na karti
STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Visina linije snijega
STR_MAPGEN_SNOW_LINE_UP :{BLACK}Pomakni visinu linije snijega za jedan gore
STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Pomakni visinu linije snijega za jedan dolje
STR_MAPGEN_LAND_GENERATOR :{BLACK}Izrađivač zemljišta:
STR_MAPGEN_TERRAIN_TYPE :{BLACK}Vrsta terena:
STR_MAPGEN_QUANTITY_OF_SEA_LAKES :{BLACK}Razina mora:
@@ -2938,8 +2937,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Ime visi
STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Veličina:
STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM}
STR_MAPGEN_MAX_HEIGHTLEVEL_QUERY_CAPT :{WHITE}Promijeni najveću visinu karte
STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Promijeni visinu linije snijega
STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Promijeni početnu godinu
# SE Map generation
@@ -3229,13 +3226,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Podmiti
STR_GOALS_CAPTION :{WHITE}{COMPANY} Ciljevi
STR_GOALS_SPECTATOR_CAPTION :{WHITE}Globalni ciljevi
STR_GOALS_SPECTATOR :Globalni ciljevi
STR_GOALS_GLOBAL_TITLE :{BLACK}Globalni ciljevi:
STR_GOALS_TEXT :{ORANGE}{STRING}
STR_GOALS_NONE :{ORANGE}- Nijedan -
STR_GOALS_SPECTATOR_NONE :{ORANGE}- Nije primjenjivo -
STR_GOALS_PROGRESS :{ORANGE}{STRING}
STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING}
STR_GOALS_COMPANY_TITLE :{BLACK}Ciljevi tvrtke:
STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Klikni na cilj za centriranje središnjeg pogleda na industriju/grad/polje. Ctrl+Klik otvara novi prozor s pogledom na lokaciju industrije/grada/polja
# Goal question window

View File

@@ -1034,6 +1034,7 @@ STR_GAME_OPTIONS_CURRENCY_CNY :Čínský renmi
STR_GAME_OPTIONS_CURRENCY_HKD :Hongkongský dolar (HKD)
STR_GAME_OPTIONS_CURRENCY_INR :Indická rupie (INR)
STR_GAME_OPTIONS_CURRENCY_IDR :Indonéská rupie (IDR)
STR_GAME_OPTIONS_CURRENCY_MYR :Malajsijský Ringgit (MYR)
############ end of currency region
STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_LEFT :Vlevo
@@ -1086,6 +1087,12 @@ STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}Zaškrtn
STR_GAME_OPTIONS_RESOLUTION :{BLACK}Rozlišení obrazovky
STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Zvolit rozlišení obrazovky
STR_GAME_OPTIONS_RESOLUTION_OTHER :jiné
STR_GAME_OPTIONS_RESOLUTION_ITEM :{NUM}x{NUM}
STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Hardwarová akcelerace
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Zaškrtni, pokud chceš OpenTTD povolit použití hardwarové akcelerace. Změněné nastavení bude aplikováno po restartu hry
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}Nastavení vstoupí v platnost pouze po restartu hry
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Velikost rozhraní
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Zvolit velikost prvků uživatelského rozhraní
@@ -1103,6 +1110,14 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Běžné
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Dvojnásobná velikost
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Čtyřnásobná velikost
STR_GAME_OPTIONS_GRAPHICS :{BLACK}Grafiky
STR_GAME_OPTIONS_REFRESH_RATE :{BLACK}Obnovovací frekvence obrazovky
STR_GAME_OPTIONS_REFRESH_RATE_TOOLTIP :{BLACK}Zvolit obnovovací frekvenci obrazovky
STR_GAME_OPTIONS_REFRESH_RATE_OTHER :ostatní
STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}Hz
STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE}Obnovovací frekvence vyšší než 60Hz může mít dopad výkon.
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Základní sada grafiky
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Zvol základní sadu grafiky
STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} chybějící{P "" "" ch}/poškozen{P ý é ých} soubor{P "" y ů}
@@ -1197,6 +1212,8 @@ STR_TERRAIN_TYPE_FLAT :plochá
STR_TERRAIN_TYPE_HILLY :kopcovitá
STR_TERRAIN_TYPE_MOUNTAINOUS :hornatá
STR_TERRAIN_TYPE_ALPINIST :Alpské
STR_TERRAIN_TYPE_CUSTOM :Vlastní výška
STR_TERRAIN_TYPE_CUSTOM_VALUE :Vlastní výška ({NUM})
STR_CITY_APPROVAL_PERMISSIVE :nezaujatý
STR_CITY_APPROVAL_TOLERANT :tolerantní
@@ -1278,9 +1295,11 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Katastrofy, kte
STR_CONFIG_SETTING_CITY_APPROVAL :Postoj městské rady k úpravám v oblasti: {STRING}
STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Vyber jak moc hluku a změn prostředí poškozuje hodnocení společnosti u města a tak dále komplikuje budoucí stavbu na jeho území
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :Maximální výška mapy: {STRING}
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :Nastavit maximální povolenou výšku hor na mapě
STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}Nemůžete změnit maximální výšku mapy na tuto hodnotu. Alespoň jedna hora na mapě je vyšší.
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT :Maximální výška mapy: {STRING}
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_HELPTEXT :Nastav maximální výšku terénu. S volbou "(automaticky)" bude po vygenerování terénu vybrána dobrá hodnota.
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_VALUE :{NUM}
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_AUTO :(automaticky)
STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}Nelze změnit maximální výšku mapy na tuto hodnotu. Alespoň jedna hora na mapě je vyšší.
STR_CONFIG_SETTING_AUTOSLOPE :Povolit srovnání terénu pod budovami, kolejemi atd. (autoslope): {STRING}
STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Povoluje změnu terénu pod budovami a tratěmi bez jejich odstranění
STR_CONFIG_SETTING_CATCHMENT :Povolit u oblasti pokrytí realističtější velikost: {STRING}
@@ -1424,7 +1443,13 @@ STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Nastavuje množ
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Maximální vzdálenost ropného průmyslu od okraje mapy: {STRING}
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Omezení, jak daleko od okrajů mapy mohou být postaveny rafinerie a ropné vrty. Je-li při okraji mapy voda, toto omezení zajišťuje, že se rafinerie a ropné vrty vyskytují poblíž pobřeží. Na mapách větších než 256 polí je toto omezení úměrně přizpůsobeno.
STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Výška sněhové čáry: {STRING}
STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Určuje o jaké výšky se vyskytuje sníh u subarktického klimatu. Sníh rovněž ovlivňuje vytváření průmyslu a požadavky na růst měst
STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Určuje od jaké výšky se sníh vyskytuje v subarktickém klimatu. Sníh ovlivňuje vytváření průmyslu a požadavky na růst měst. Sněžná čára může být upravena jen v editoru scénáře. V ostatních případech bývá počítána pomocí "pokrytí sněhem"
STR_CONFIG_SETTING_SNOW_COVERAGE :Pokrytí sněhem: {STRING}
STR_CONFIG_SETTING_SNOW_COVERAGE_HELPTEXT :Určuje přibližné množství sněhu v subarktické krajině. Sníh rovněž ovlivňuje generování průmyslu a požadavky na růst měst. Použito pouze při generování mapy. Terén těsně nad úrovní výšky moře zůstane bez sněhu.
STR_CONFIG_SETTING_SNOW_COVERAGE_VALUE :{NUM}%
STR_CONFIG_SETTING_DESERT_COVERAGE :Pokrytí pouštěmi: {STRING}
STR_CONFIG_SETTING_DESERT_COVERAGE_HELPTEXT :Určuje přibližné množství pouště v tropické krajině. Pouště rovněž ovlivňují generování průmyslu. Použito pouze při generování mapy.
STR_CONFIG_SETTING_DESERT_COVERAGE_VALUE :{NUM}%
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Členitost krajiny: {STRING}
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(Pouze TerraGenesis) Zvol množství hor: Rovinatý terén má méně hor, které jsou však rozlehlejší. Členitý terén má mnoho hor, u kterých se může zdát, že se opakují
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :velmi rovná
@@ -1540,6 +1565,10 @@ STR_CONFIG_SETTING_EXPENSES_LAYOUT :Zobrazovat odd
STR_CONFIG_SETTING_EXPENSES_LAYOUT_HELPTEXT :Určuje rozložení okna s firemními výdaji
STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS :Automaticky odstraňovat návěstidla během výstavby železnice: {STRING}
STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS_HELPTEXT :Automaticky odstraňovat návěstidla, pokud překáží během výstavby železnice. Poznámka: Může způsobit kolize vlaků.
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT :Rychlostní omezení zrychleného běhu hry: {STRING}
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_HELPTEXT :Omez jak rychle hra beží při zrychleném běhu. 0 = neomezeno (tak rychle, jak tvůj počítač dovolí). Hodnoty pod 100% zpomalí hru. Horní limit záleží na specifikacích tvého počítače a může se v každé hře lišit.
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_VAL :{NUM}% normální rychlosti hry
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_ZERO :Bez omezení (tak rychle, jak jen tvůj počítač dovolí)
STR_CONFIG_SETTING_SOUND_TICKER :Noviny - shrnutí: {STRING}
STR_CONFIG_SETTING_SOUND_TICKER_HELPTEXT :Přehrávat zvuk při zobrazení shrnutí zprávy
@@ -1730,12 +1759,17 @@ STR_CONFIG_SETTING_ZOOM_MIN :Maximální úr
STR_CONFIG_SETTING_ZOOM_MIN_HELPTEXT :Maximální přiblížení pohledu. Nastavení většího přiblížení má větší nároky na paměť počítače
STR_CONFIG_SETTING_ZOOM_MAX :Maximální úroveň oddálení: {STRING}
STR_CONFIG_SETTING_ZOOM_MAX_HELPTEXT :Maximální oddálení pohledu. Příliš velké nastavení může způsobovat velké odezvy
STR_CONFIG_SETTING_SPRITE_ZOOM_MIN :Nejvyšší dovolené rozlišení spritů: {STRING}
STR_CONFIG_SETTING_SPRITE_ZOOM_MIN_HELPTEXT :Omezit maximální dovolené rozlišení spritů. Omezení rozlišení spritů zabrání použití grafik ve vysokém rozlišení, jsou-li dostupné. Tímto lze docílit jednotného vzhledu hry, pokud je použit mix GRF souborů s grafikami ve vysokém rozlišení, i bez nich.
STR_CONFIG_SETTING_ZOOM_LVL_MIN :4x
STR_CONFIG_SETTING_ZOOM_LVL_IN_2X :2x
STR_CONFIG_SETTING_ZOOM_LVL_NORMAL :Normální
STR_CONFIG_SETTING_ZOOM_LVL_OUT_2X :2x
STR_CONFIG_SETTING_ZOOM_LVL_OUT_4X :4x
STR_CONFIG_SETTING_ZOOM_LVL_OUT_8X :8x
STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_MIN :4x
STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_IN_2X :2x
STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_NORMAL :1x
STR_CONFIG_SETTING_TOWN_GROWTH :Rychlost růstu měst: {STRING}
STR_CONFIG_SETTING_TOWN_GROWTH_HELPTEXT :Rychlost růstu měst
STR_CONFIG_SETTING_TOWN_GROWTH_NONE :nulová
@@ -1869,6 +1903,10 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... igno
STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Nedostatek paměti
STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Alokování {BYTES} grafické mezipaměti selhalo. Grafická mezipaměť byla zredukována na {BYTES}. To sníží výkon OpenTTD. Pro snížení paměťových nároků můžeš zkusit vypnout 32bpp grafiku a/nebo úrovně přiblížení
# Video initalization errors
STR_VIDEO_DRIVER_ERROR :{WHITE}Chyba v nastavení zobrazení...
STR_VIDEO_DRIVER_ERROR_NO_HARDWARE_ACCELERATION :{WHITE}... nebyla nalezené kompatibilní grafická karta. Hardwarová akcelerace zakázana
# Intro window
STR_INTRO_CAPTION :{WHITE}OpenTTD {REV}
@@ -2395,10 +2433,14 @@ STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD_FILE_NOT_WRITABLE :{WHITE}... do s
STR_CONTENT_ERROR_COULD_NOT_EXTRACT :{WHITE}Nešlo rozbalit stažený soubor
STR_MISSING_GRAPHICS_SET_CAPTION :{WHITE}Chybějící grafika
STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD vyžaduje grafiky, které nebyly nalezeny. Povolíte OpenTTD stáhnout a nainstalovat tyto grafiky?
STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD vyžaduje grafiky, které nebyly nalezeny. Povolíš OpenTTD stáhnout a nainstalovat tyto grafiky?
STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Ano, stáhnout grafiky
STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Ne, ukončit OpenTTD
STR_MISSING_GRAPHICS_ERROR_TITLE :{WHITE}Stahování selhalo
STR_MISSING_GRAPHICS_ERROR :{BLACK}Stahování grafik selhalo.{}Stáhněte, prosím, grafiky ručně.
STR_MISSING_GRAPHICS_ERROR_QUIT :{BLACK}Opustit OpenTTD
# Transparency settings window
STR_TRANSPARENCY_CAPTION :{WHITE}Nastavení průhlednosti
STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Změna průhlednosti popisků. Nastavení se zamkne Ctrl+kliknutím
@@ -2954,12 +2996,17 @@ STR_MAPGEN_BY :{BLACK}*
STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}Množství měst:
STR_MAPGEN_DATE :{BLACK}Datum:
STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Množství průmyslu:
STR_MAPGEN_MAX_HEIGHTLEVEL :{BLACK}Maximální výška mapy:
STR_MAPGEN_MAX_HEIGHTLEVEL_UP :{BLACK}Zvýšit maximální výšku hor na mapě o jeden stup
STR_MAPGEN_MAX_HEIGHTLEVEL_DOWN :{BLACK}Snížit maximální výšku hor na mapě o jeden stup
STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Výška sněžné čáry:
STR_MAPGEN_SNOW_LINE_UP :{BLACK}Zvýšit sněžnou čáru o jednu úroveň
STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Snížit sněžnou čáru o jednu úroveň
STR_MAPGEN_HEIGHTMAP_HEIGHT :{BLACK}Nejvyšší vrchol:
STR_MAPGEN_HEIGHTMAP_HEIGHT_UP :{BLACK}Zvýšit maximální možnou výšku nejvyššího vrcholu na mapě o jednu úrov
STR_MAPGEN_HEIGHTMAP_HEIGHT_DOWN :{BLACK}Snížit maximální možnou výšku nejvyššího vrcholu na mapě o jednu úrov
STR_MAPGEN_SNOW_COVERAGE :{BLACK}Pokrytí sněhem:
STR_MAPGEN_SNOW_COVERAGE_UP :{BLACK}Zvýšit pokrytí sněhem o deset procent
STR_MAPGEN_SNOW_COVERAGE_DOWN :{BLACK}Snížit pokrytí sněhem o deset procent
STR_MAPGEN_SNOW_COVERAGE_TEXT :{BLACK}{NUM}%
STR_MAPGEN_DESERT_COVERAGE :{BLACK}Pokrytí pouštěmi:
STR_MAPGEN_DESERT_COVERAGE_UP :{BLACK}Zvětšit pokrytí pouštěmi o deset procent
STR_MAPGEN_DESERT_COVERAGE_DOWN :{BLACK}Zmenšit pokrytí pouštěmi o deset procent
STR_MAPGEN_DESERT_COVERAGE_TEXT :{BLACK}{NUM}%
STR_MAPGEN_LAND_GENERATOR :{BLACK}Generátor krajiny:
STR_MAPGEN_TERRAIN_TYPE :{BLACK}Typ krajiny:
STR_MAPGEN_QUANTITY_OF_SEA_LAKES :{BLACK}Četnost jezer:
@@ -2985,8 +3032,10 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Jméno v
STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Velikost:
STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM}
STR_MAPGEN_MAX_HEIGHTLEVEL_QUERY_CAPT :{WHITE}Změnit maximální výšku mapy
STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Změnit výšku sněžne čáry
STR_MAPGEN_TERRAIN_TYPE_QUERY_CAPT :{WHITE}Cílová výška vrcholu
STR_MAPGEN_HEIGHTMAP_HEIGHT_QUERY_CAPT :{WHITE}Nejvyšší vrchol
STR_MAPGEN_SNOW_COVERAGE_QUERY_CAPT :{WHITE}Pokrytí sněhem (v %)
STR_MAPGEN_DESERT_COVERAGE_QUERY_CAPT :{WHITE}Pokrytí pouštěmi (v %)
STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Změnit počáteční rok
# SE Map generation
@@ -3146,6 +3195,7 @@ STR_NEWGRF_ERROR_GRM_FAILED :Požadované zd
STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} byla vypnuta {STRING}
STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Neplatný/neznámý sprite layout formát (sprite {3:NUM})
STR_NEWGRF_ERROR_LIST_PROPERTY_TOO_LONG :Příliš mnoho prvků v seznamu hodnot vlastností (sprite {3:NUM}, vlastnost {4:HEX})
STR_NEWGRF_ERROR_INDPROD_CALLBACK :Neplatné zpětné volání průmyslové produkce (sprite {3:NUM}, "{2:STRING}")
# NewGRF related 'general' warnings
STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Varování!
@@ -3177,6 +3227,7 @@ STR_NEWGRF_BUGGY :{WHITE}Grafika
STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}Informace o nákladu/možnosti přestavby pro '{1:ENGINE}' se po nákupu změnily. To může způsobit problémy při automatické výměně vozidel
STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK :{WHITE}Grafika '{1:STRING}' způsobila nekonečnou smyčku v callbacku produkce průmyslu
STR_NEWGRF_BUGGY_UNKNOWN_CALLBACK_RESULT :{WHITE}Funkce {1:HEX} vrátila neznámý / neplatný výsledek {2:HEX}
STR_NEWGRF_BUGGY_INVALID_CARGO_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' vrátil neplatný typ nákladu ve zpětném volání produkce na {2:HEX}
# 'User removed essential NewGRFs'-placeholders for stuff without specs
STR_NEWGRF_INVALID_CARGO :<neplatný náklad>
@@ -3262,26 +3313,27 @@ STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Dotovat nové b
STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Koupit výhradní právo k přepravě
STR_LOCAL_AUTHORITY_ACTION_BRIBE :Podplatit místní správu
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Zahájit malou reklamní kampaň, která přiláká více cestujících a nákladu.{}Cena: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Zahájit středně velkou reklamní kampaň, která přiláká více cestujících a nákladu.{}Cena: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Zahájit velkou reklamní kampaň, která přiláká více cestujících a nákladu.{}Cena: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Dotovat rekonstrukci místní silniční sítě. Způsobí problémy v dopravě po dobu 6 měsíců.{}Cena: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Postavit sochu vlastníka jako poctu tvé společnosti.{}Cena: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Dotovat stavbu nových obchodních budov ve městě.{}Cena: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Koupit roční výhradní práva k přepravě zboží z tohoto města po dobu jednoho roku. Místní správa dovolí cestujícím a nákladu používat pouze stanice tvé společnosti.{}Cena: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Zahájit malou reklamní kampaň, která přiláká více cestujících a nákladu.{}Poskytuje dočasné zvýšení hodnocení přepravy v blízkém okolí městského centra.{}Cena: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Zahájit středně velkou reklamní kampaň, která přiláká více cestujících a nákladu.{}Poskytuje dočasné zvýšení hodnocení přepravy ve středně širokém okolí městského centra.{}Cena: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Zahájit velkou reklamní kampaň, která přiláká více cestujících a nákladu.{}Poskytuje dočasné zvýšení hodnocení přepravy v širokém okolí městského centra.{}Cena: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Dotovat rekonstrukci sítě místních ulic.{}Způsobí problémy v dopravě po dobu až 6ti měsíců.{}Cena: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Postavit sochu jako poctu tvé společnosti.{}Poskytuje trvalý bonus k hodnocení stanic v tomto městě.{}Cena: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Dotovat stavbu nových obchodních budov ve městě.{}Poskytuje dočasné zvýšení rychlosti růstu města.{}Cena: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Koupit 1 roční výhradní přepravní práva z tohoto města. Místní správa nedovolí dovolí cestujícím ani nákladu používat stanice tvých konkurentů.{}Cena: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Podplatit místní správu pro zvýšení hodnocení společnosti. Riziko trestu v případě přistižení.{}Cena: {CURRENCY_LONG}
# Goal window
STR_GOALS_CAPTION :{WHITE}{COMPANY} Cíle
STR_GOALS_SPECTATOR_CAPTION :{WHITE}Globální cíle
STR_GOALS_SPECTATOR :Globální cíle
STR_GOALS_GLOBAL_TITLE :{BLACK}Globální cíle:
STR_GOALS_GLOBAL_BUTTON :{BLACK}Globální
STR_GOALS_GLOBAL_BUTTON_HELPTEXT :{BLACK}Zobrazit globání cíle
STR_GOALS_COMPANY_BUTTON :{BLACK}Společnost
STR_GOALS_COMPANY_BUTTON_HELPTEXT :{BLACK}Zobrazit cíle společnosti
STR_GOALS_TEXT :{ORANGE}{STRING}
STR_GOALS_NONE :{ORANGE}- Žádné -
STR_GOALS_SPECTATOR_NONE :{ORANGE}- Nelze -
STR_GOALS_PROGRESS :{ORANGE}{STRING}
STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING}
STR_GOALS_COMPANY_TITLE :{BLACK}Cíle společnosti:
STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Klikni na cíl pro zaměření pohledu na průmysl/město/pole. Ctrl+Klik otevře nové okno s pohledem na průmyslu/městu/poli.
# Goal question window
@@ -3652,6 +3704,7 @@ STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Poháně
STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Refitovatelné na: {GOLD}{STRING}
STR_PURCHASE_INFO_ALL_TYPES :Všechny druhy nákladu
STR_PURCHASE_INFO_NONE :Žádné
STR_PURCHASE_INFO_ENGINES_ONLY :Pouze lokomotivy
STR_PURCHASE_INFO_ALL_BUT :Všechny kromě {CARGO_LIST}
STR_PURCHASE_INFO_MAX_TE :{BLACK}Max. tažná síla: {GOLD}{FORCE}
STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Dosah: {GOLD}{COMMA} polí
@@ -4402,6 +4455,7 @@ STR_WARNING_FALLBACK_SOUNDSET :{WHITE}Byl nale
STR_WARNING_SCREENSHOT_SIZE_CAPTION :{WHITE}Velký screenshot
STR_WARNING_SCREENSHOT_SIZE_MESSAGE :{YELLOW}Snímek obrazovky bude mít rozlišení {COMMA} x {COMMA} pixelů. Toto může nějakou chvíli trvat. Chcete pokračovat?
STR_MESSAGE_HEIGHTMAP_SUCCESSFULLY :{WHITE}Výšková mapa úspěšně uložena jako '{STRING}'. Nejvyšší vrchol je {NUM}
STR_MESSAGE_SCREENSHOT_SUCCESSFULLY :{WHITE}Screenshot úspěšně uložen jako '{STRING}'
STR_ERROR_SCREENSHOT_FAILED :{WHITE}Screenshot neuložen!

View File

@@ -989,6 +989,9 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Skærmop
STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Vælg ønsket skærmopløsning
STR_GAME_OPTIONS_RESOLUTION_OTHER :andet
STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Hardware-acceleration
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}grænseflade størrelse
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Vælg den grænseflade størrelse du ønsker at benytte
@@ -1003,6 +1006,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Dobbelt størrelse
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Quad (4x) størrelse
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Basis-grafiksæt
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Vælg det basis-grafiksæt der skal bruges
STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} forsvund{P en ne}/ødelagt{P "" e} fil{P "" er}
@@ -1178,8 +1183,6 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Slå katastrofe
STR_CONFIG_SETTING_CITY_APPROVAL :Byrådets holdning til omstrukturering: {STRING}
STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Vælg hvor meget selskaber støj og miljømæssige skader påvirker byvurdering og fremtidige byggeretigheder i området
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :Maksimal map højde: {STRING}
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :Indstil den maksimale tilladte højde for bjerge på kortet
STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}Du kan ikke sætte den maksimale kortet højde for denne værdi. Mindst et bjerg på kortet er højere
STR_CONFIG_SETTING_AUTOSLOPE :Tillad landskabsformning under bygninger, spor, etc. (autoslope): {STRING}
STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Tillad landskabsformning under bygninger og spor uden at fjerne dem
@@ -1438,6 +1441,7 @@ STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS :Hold byggeværk
STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS_HELPTEXT :Hold bygnings-værktøjer til broer, tunneler, mv. åben efter brug
STR_CONFIG_SETTING_EXPENSES_LAYOUT :Grupper udgifter i firmaets finansvindue: {STRING}
STR_CONFIG_SETTING_EXPENSES_LAYOUT_HELPTEXT :Definer layout for firmaets udgifter-vindue
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_VAL :{NUM}% normal simulationshastighed
STR_CONFIG_SETTING_SOUND_TICKER :Nyhedssymbol: {STRING}
STR_CONFIG_SETTING_SOUND_TICKER_HELPTEXT :Afspil lyd for opsummerede nyheds beskeder
@@ -1551,6 +1555,7 @@ STR_CONFIG_SETTING_ENDING_YEAR :Slutår for poi
STR_CONFIG_SETTING_ENDING_YEAR_HELPTEXT :Årstal hvor spillet slutter pointoptælling. Ved slutningen af dette år bliver selskabets point optaget, og topresultater-skærmen bliver vist. Spillerne kan fortsætte med at spille efter dette.{}Hvis dette er før spillets start år, bliver topresultater-skærmen aldrig vist.
STR_CONFIG_SETTING_ENDING_YEAR_VALUE :{NUM}
STR_CONFIG_SETTING_ENDING_YEAR_ZERO :Aldrig
STR_CONFIG_SETTING_ECONOMY_TYPE_SMOOTH :Smooth
STR_CONFIG_SETTING_ALLOW_SHARES :Tillad at købe aktier i andre selskaber: {STRING}
STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Hvis aktiveret, tillades køb og salg af selskabsaktier. Aktier vil kun være tilgængelige for selskaber der er nået en hvis alder
STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Mindste selskabsalder for aktiehandel: {STRING}
@@ -1602,6 +1607,7 @@ STR_CONFIG_SETTING_TOWN_CARGOGENMODE_BITCOUNT :Lineær
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT :Placering af træer i spillet: {STRING}
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_HELPTEXT :Kontroller den tilfældige fremkomst af træer i løbet af spillet. Dette vil påvirke industrier der afhænger træers vækst, f.eks. savværker
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_SPREAD_ALL :Voks og spred ud overalt
STR_CONFIG_SETTING_TOOLBAR_POS :Placering af værktøjslinje: {STRING}
STR_CONFIG_SETTING_TOOLBAR_POS_HELPTEXT :Horisontal placering af hovedværktøjlinjen i toppen af skærmen
@@ -1757,6 +1763,9 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... igno
STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Utilstrækkelig hukommelse
STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Allokering af {BYTES} spritecache fejlede. Spritecachen blev indskrænket til {BYTES}. Dette vil sænke OpenTTDs ydelse. Du kan forsøge at slå 32bpp grafik og/eller zoom-ind niveauer for at reducere hukommelseskravet
# Video initalization errors
STR_VIDEO_DRIVER_ERROR_NO_HARDWARE_ACCELERATION :{WHITE}... ingen kompatibel GPU fundet. Hardware-acceleration deaktiveret
# Intro window
STR_INTRO_CAPTION :{WHITE}OpenTTD {REV}
@@ -2278,6 +2287,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}Grafikfi
STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Ja, download grafikfilerne
STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Nej, afslut OpenTTD
# Transparency settings window
STR_TRANSPARENCY_CAPTION :{WHITE}Gennemsigtighedsvalg
STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Skift gennemsigtighed for skilte. CTRL+Klik for at låse værdi.
@@ -2811,12 +2821,6 @@ STR_MAPGEN_BY :{BLACK}*
STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}Antal byer:
STR_MAPGEN_DATE :{BLACK}Dato:
STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Antal industrier:
STR_MAPGEN_MAX_HEIGHTLEVEL :{BLACK}Maksimal map højde:
STR_MAPGEN_MAX_HEIGHTLEVEL_UP :{BLACK}Øge den maksimale højde af bjerge på kortet med en
STR_MAPGEN_MAX_HEIGHTLEVEL_DOWN :{BLACK}Formindsk den maksimale højde af bjerge på kortet med en
STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Snegrænse
STR_MAPGEN_SNOW_LINE_UP :{BLACK}Flyt snegrænsen een op
STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Flyt snegrænsen een ned
STR_MAPGEN_LAND_GENERATOR :{BLACK}Terrængenerator:
STR_MAPGEN_TERRAIN_TYPE :{BLACK}Terræntype:
STR_MAPGEN_QUANTITY_OF_SEA_LAKES :{BLACK}Havniveau
@@ -2842,8 +2846,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Højdeko
STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Størrelse:
STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM}
STR_MAPGEN_MAX_HEIGHTLEVEL_QUERY_CAPT :{WHITE}Skift maksimal kort højde
STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Ændre snegrænsen
STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Ændre startår
# SE Map generation
@@ -3060,6 +3062,7 @@ STR_SIGN_LIST_MATCH_CASE_TOOLTIP :{BLACK}Vis matc
# Sign window
STR_EDIT_SIGN_CAPTION :{WHITE}Ændre skiltets tekst
STR_EDIT_SIGN_LOCATION_TOOLTIP :{BLACK}Centrér skærmen ved skiltets placering. Ctrl+klik åbner et nyt vindue ved skiltets placering
STR_EDIT_SIGN_NEXT_SIGN_TOOLTIP :{BLACK}Gå til næste skilt
STR_EDIT_SIGN_PREVIOUS_SIGN_TOOLTIP :{BLACK}Gå til forrige skilt
@@ -3133,13 +3136,11 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Bestik
STR_GOALS_CAPTION :{WHITE}{COMPANY} Mål
STR_GOALS_SPECTATOR_CAPTION :{WHITE}Globale Mål
STR_GOALS_SPECTATOR :Globale Mål
STR_GOALS_GLOBAL_TITLE :{BLACK}Globale mål:
STR_GOALS_GLOBAL_BUTTON :{BLACK}Global
STR_GOALS_TEXT :{ORANGE}{STRING}
STR_GOALS_NONE :{ORANGE}- Ingen -
STR_GOALS_SPECTATOR_NONE :{ORANGE}- Ikke anvendelig -
STR_GOALS_PROGRESS :{ORANGE}{STRING}
STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING}
STR_GOALS_COMPANY_TITLE :{BLACK}Selskabsmål:
STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Klik på mål for at centrere hovedvinduet over industri/by/felt Ctrl+klik åbner et nyt vindue over industri/by/felt lokation
# Goal question window
@@ -3271,7 +3272,7 @@ STR_STATION_VIEW_CLOSE_AIRPORT_TOOLTIP :{BLACK}Forhindr
STR_WAYPOINT_VIEW_CAPTION :{WHITE}{WAYPOINT}
STR_WAYPOINT_VIEW_CENTER_TOOLTIP :{BLACK}Centrer skærmen over vejpunktets lokalitet. Ctrl+Klik åbner et nyt vindue ved waypointets lokalitet.
STR_WAYPOINT_VIEW_CHANGE_WAYPOINT_NAME :{BLACK}Omdøb waypoint
STR_BUOY_VIEW_CENTER_TOOLTIP :{BLACK}Centrer skræmen over bøjens lokalitet. Ctrl+Klik åbner et nyt vindue ved bøjens lokalitet.
STR_BUOY_VIEW_CENTER_TOOLTIP :{BLACK}Centrér skærmen ved bøjens placering. Ctrl+klik åbner et nyt vindue ved bøjens placering
STR_BUOY_VIEW_CHANGE_BUOY_NAME :{BLACK}Ændre navnet på bøjen
STR_EDIT_WAYPOINT_NAME :{WHITE}Omdøb waypoint
@@ -3336,6 +3337,7 @@ STR_COMPANY_VIEW_RELOCATE_HQ :{BLACK}Flyt hov
STR_COMPANY_VIEW_RELOCATE_COMPANY_HEADQUARTERS :{BLACK}Flyt selskabets hovedkvarter for 1% af selskabsværdien. Shift skifter mellem at flytte og vise prisoverslag.
STR_COMPANY_VIEW_INFRASTRUCTURE_BUTTON :{BLACK}Detaljer
STR_COMPANY_VIEW_INFRASTRUCTURE_TOOLTIP :{BLACK}Se detaljerede infrastruktur-tal
STR_COMPANY_VIEW_GIVE_MONEY_BUTTON :{BLACK}Giv penge
STR_COMPANY_VIEW_NEW_FACE_BUTTON :{BLACK}Nyt ansigt
STR_COMPANY_VIEW_NEW_FACE_TOOLTIP :{BLACK}Vælg nyt ansigt til direktøren
@@ -3620,10 +3622,10 @@ STR_DEPOT_CLONE_ROAD_VEHICLE_DEPOT_INFO :{BLACK}Dette vi
STR_DEPOT_CLONE_SHIP_DEPOT_INFO :{BLACK}Dette vil købe en kopi af skibet. Klik på denne knap og så på et skib indeni eller udenfor dokken. Ctrl-klik vil dele ordrer. Shift-klik vil vise prisoverslag.
STR_DEPOT_CLONE_AIRCRAFT_INFO_HANGAR_WINDOW :{BLACK}Dette vil købe en kopi af et fly. Klik på denne knap og så på et fly indeni eller udenfor hangaren. Ctrl-klik vil dele ordrer. Shift-klik viser estimerede omkostninger uden at indkøbe
STR_DEPOT_TRAIN_LOCATION_TOOLTIP :{BLACK}Centrer skærmen over remisens lokalitet. Ctrl+Klik åbner et nyt vindue ved remisens lokalitet.
STR_DEPOT_ROAD_VEHICLE_LOCATION_TOOLTIP :{BLACK}Centrer skærmen over værkstedets lokalitet. Ctrl+Klik åbner et nyt vindue ved køretøjsværkstedets lokalitet.
STR_DEPOT_SHIP_LOCATION_TOOLTIP :{BLACK}Centrer skærmen over skibsdokkens lokalitet. Ctrl+Klik åbner et nyt vindue ved skibsdokkens lokalitet.
STR_DEPOT_AIRCRAFT_LOCATION_TOOLTIP :{BLACK}Centrér skærmen over hangarens lokalitet. Ctrl+Klik åbner et nyt vindue ved hangarens lokalitet.
STR_DEPOT_TRAIN_LOCATION_TOOLTIP :{BLACK}Centrér skærmen over remisens placering. Ctrl+klik åbner et nyt vindue ved remisens placering
STR_DEPOT_ROAD_VEHICLE_LOCATION_TOOLTIP :{BLACK}Centrér skærmen ved værkstedets placering. Ctrl+klik åbner et nyt vindue ved køretøjsværkstedets placering
STR_DEPOT_SHIP_LOCATION_TOOLTIP :{BLACK}Centrér skærmen ved skibsdokkens placering. Ctrl+klik åbner et nyt vindue ved skibsdokkens placering
STR_DEPOT_AIRCRAFT_LOCATION_TOOLTIP :{BLACK}Centrér skærmen ved hangarens placering. Ctrl+klik åbner et nyt vindue ved hangarens placering
STR_DEPOT_VEHICLE_ORDER_LIST_TRAIN_TOOLTIP :{BLACK}Vis en liste over alle tog med denne remise i ordrelisten
STR_DEPOT_VEHICLE_ORDER_LIST_ROAD_VEHICLE_TOOLTIP :{BLACK}Vis liste over alle køretøjer med dette værksted i ordrelisten
@@ -3972,6 +3974,7 @@ STR_ORDER_REFIT_STOP_ORDER :(Tilpas til {ST
STR_ORDER_STOP_ORDER :(Stop)
STR_ORDER_GO_TO_STATION :{STRING} {STATION} {STRING}
STR_ORDER_GO_TO_STATION_CAN_T_USE_STATION :{PUSH_COLOUR}{RED}(Kan ikke bruge station){POP_COLOUR} {STRING} {STATION} {STRING}
STR_ORDER_IMPLICIT :(Automatisk)
@@ -4422,6 +4425,7 @@ STR_ERROR_DEPOT_WRONG_DEPOT_TYPE :Forkert depotty
STR_ERROR_TRAIN_TOO_LONG_AFTER_REPLACEMENT :{WHITE}{VEHICLE} er blevet for langt efter udskiftning
STR_ERROR_AUTOREPLACE_NOTHING_TO_DO :{WHITE}Ingen autoudskiftning/-fornyelse foretaget.
STR_ERROR_AUTOREPLACE_MONEY_LIMIT :(ikke penge nok)
STR_ERROR_AUTOREPLACE_INCOMPATIBLE_REFIT :{WHITE}Nyt køretøj kan ikke auto-tilpasses i ordren{NUM}
# Rail construction errors
STR_ERROR_IMPOSSIBLE_TRACK_COMBINATION :{WHITE}Umulig sporkombination

View File

@@ -357,9 +357,9 @@ STR_TOOLBAR_TOOLTIP_LAND_BLOCK_INFORMATION :{BLACK}Landinfo
STR_TOOLBAR_TOOLTIP_SWITCH_TOOLBAR :{BLACK}Knoppenbalken wisselen
# Extra tooltips for the scenario editor toolbar
STR_SCENEDIT_TOOLBAR_TOOLTIP_SAVE_SCENARIO_LOAD_SCENARIO :{BLACK}Scenario opslaan of laden, scenario-editor verlaten, afsluiten
STR_SCENEDIT_TOOLBAR_TOOLTIP_SAVE_SCENARIO_LOAD_SCENARIO :{BLACK}Scenario opslaan of laden, scenariobewerker verlaten, afsluiten
STR_SCENEDIT_TOOLBAR_OPENTTD :{YELLOW}OpenTTD
STR_SCENEDIT_TOOLBAR_SCENARIO_EDITOR :{YELLOW}Scenario-editor
STR_SCENEDIT_TOOLBAR_SCENARIO_EDITOR :{YELLOW}Scenariobewerker
STR_SCENEDIT_TOOLBAR_TOOLTIP_MOVE_THE_STARTING_DATE_BACKWARD :{BLACK}Startdatum 1 jaar terugzetten
STR_SCENEDIT_TOOLBAR_TOOLTIP_MOVE_THE_STARTING_DATE_FORWARD :{BLACK}Startdatum 1 jaar vooruitzetten
STR_SCENEDIT_TOOLBAR_TOOLTIP_SET_DATE :{BLACK}Klik om het startjaar op te geven
@@ -378,7 +378,7 @@ STR_SCENEDIT_FILE_MENU_SAVE_SCENARIO :Scenario opslaa
STR_SCENEDIT_FILE_MENU_LOAD_SCENARIO :Scenario laden
STR_SCENEDIT_FILE_MENU_SAVE_HEIGHTMAP :Hoogtekaart opslaan
STR_SCENEDIT_FILE_MENU_LOAD_HEIGHTMAP :Hoogtekaart laden
STR_SCENEDIT_FILE_MENU_QUIT_EDITOR :Scenario-editor sluiten
STR_SCENEDIT_FILE_MENU_QUIT_EDITOR :Scenariobewerker sluiten
STR_SCENEDIT_FILE_MENU_SEPARATOR :
STR_SCENEDIT_FILE_MENU_QUIT :Afsluiten
############ range for SE file menu starts
@@ -947,6 +947,7 @@ STR_GAME_OPTIONS_CURRENCY_CNY :Chinese Renminb
STR_GAME_OPTIONS_CURRENCY_HKD :Hong Kong Dollar (HKD)
STR_GAME_OPTIONS_CURRENCY_INR :Indiase rupee (INR)
STR_GAME_OPTIONS_CURRENCY_IDR :Indonesische roepia (IDR)
STR_GAME_OPTIONS_CURRENCY_MYR :Maleisische Ringgit (MYR)
############ end of currency region
STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_LEFT :Links rijden
@@ -999,6 +1000,14 @@ STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}Vink dit
STR_GAME_OPTIONS_RESOLUTION :{BLACK}Schermresolutie
STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Selecteer de schermresolutie
STR_GAME_OPTIONS_RESOLUTION_OTHER :Anders
STR_GAME_OPTIONS_RESOLUTION_ITEM :{NUM}x{NUM}
STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Hardwareversnelling
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Selecteer dit vakje om OpenTTD hardwareversnelling te laten gebruiken. De gewijzigde instelling wordt pas van kracht nadat het spel opnieuw is gestart.
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}De instelling wordt pas van kracht als het spel opnieuw is gestart
STR_GAME_OPTIONS_VIDEO_VSYNC :{BLACK}VSync
STR_GAME_OPTIONS_VIDEO_VSYNC_TOOLTIP :{BLACK}Selecteer dit vakje om het scherm verticaal te synchroniseren. De wijziging gaat pas in nadat je het spel opnieuw hebt opgestart. Werkt alleen als hardwareversnelling is ingeschakeld
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Menupuntgrootte
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Kiest de grootte van bedieningselementen
@@ -1016,6 +1025,14 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normaal
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Dubbele grootte
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Viervoudige grootte
STR_GAME_OPTIONS_GRAPHICS :{BLACK}Grafische elementen
STR_GAME_OPTIONS_REFRESH_RATE :{BLACK}Verversingssnelheid weergeven
STR_GAME_OPTIONS_REFRESH_RATE_TOOLTIP :{BLACK}Selecteer de gewenste schermverversingssnelheid
STR_GAME_OPTIONS_REFRESH_RATE_OTHER :overige
STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}Hz
STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE}Verversingssnelheden boven 60 Hz kunnen de prestaties beïnvloeden.
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Basisset voor graphics
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Kiest de te gebruiken basisset voor grafische elementen
STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} ontbrekend{P "" e}/beschadigd{P "" e} bestand{P "" en}
@@ -1110,6 +1127,8 @@ STR_TERRAIN_TYPE_FLAT :Vlak
STR_TERRAIN_TYPE_HILLY :Heuvelachtig
STR_TERRAIN_TYPE_MOUNTAINOUS :Bergachtig
STR_TERRAIN_TYPE_ALPINIST :Berglandschap
STR_TERRAIN_TYPE_CUSTOM :Aangepaste hoogte
STR_TERRAIN_TYPE_CUSTOM_VALUE :Aangepaste hoogte ({NUM})
STR_CITY_APPROVAL_PERMISSIVE :Toegeeflijk
STR_CITY_APPROVAL_TOLERANT :Neutraal
@@ -1191,8 +1210,10 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Rampen in-uitsc
STR_CONFIG_SETTING_CITY_APPROVAL :Houding van gemeentebestuur ten opzichte van herstructurering omgeving: {STRING}
STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Bepaalt in hoeverre lawaai en schade aan het milieu door bedrijven de stadswaardering en verdere bouwacties beïnvloeden in hun omgeving
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :Maximale kaarthoogte: {STRING}
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :Maximaal toegestane hoogte voor bergen op de kaart instellen
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT :Limiet voor kaarthoogte: {STRING}
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_HELPTEXT :Stelt de maximale hoogte voor het terrein op de kaart in. Met '(auto)' wordt een goede waarde genomen nadat het terrein is gegenereerd
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_VALUE :{NUM}
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_AUTO :(auto)
STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}Je kunt de maximale kaarthoogte niet in deze waarde wijzigen. Minstens één berg op de kaart is hoger.
STR_CONFIG_SETTING_AUTOSLOPE :Omgeving aanpassen onder gebouwen, spoorwegen enz. toestaan: {STRING}
STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Staat het aanpassen van funderingen onder gebouwen en sporen toe zonder deze te verwijderen
@@ -1337,7 +1358,13 @@ STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Stelt in hoevee
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Maximumafstand van de rand voor olieraffinaderijen: {STRING}
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Olieraffinaderijen worden alleen gebouwd nabij de kaartgrens, dat is aan de kust van eilandkaarten
STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Sneeuwhoogte: {STRING}
STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Stelt in op welke hoogte de sneeuw begint in subarctisch landschap. Sneeuw heeft ook invloed op het ontstaan van industrieën en op de vereisten voor stadsgroei.
STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Stelt in op welke hoogte de sneeuw begint in subarctisch landschap. Sneeuw heeft ook invloed op het ontstaan van industrieën en op de vereisten voor stadsgroei. Kan alleen worden aangepast in de scenariobewerker of wordt berekend met behulp van 'sneeuwoppervlak'
STR_CONFIG_SETTING_SNOW_COVERAGE :Sneeuwoppervlak: {STRING}
STR_CONFIG_SETTING_SNOW_COVERAGE_HELPTEXT :Bepaalt de hoeveelheid sneeuw in het subarctische landschap. Sneeuw is ook van invloed op de industrieën en de groei van steden. Wordt alleen gebruikt tijdens het maken van de kaart. Land net boven zeeniveau krijgt nooit sneeuw
STR_CONFIG_SETTING_SNOW_COVERAGE_VALUE :{NUM}%
STR_CONFIG_SETTING_DESERT_COVERAGE :Woestijnoppervlak: {STRING}
STR_CONFIG_SETTING_DESERT_COVERAGE_HELPTEXT :Bepaalt de hoeveelheid woestijn in het tropische landschap. Woestijn is ook van invloed op industrieën. Wordt alleen gebruikt tijdens het maken van de kaart
STR_CONFIG_SETTING_DESERT_COVERAGE_VALUE :{NUM}%
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Ruwheid van het terrein: {STRING}
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(Alleen TerraGenesis) Kiest de frequentie van heuvels: gladde landschappen hebben minder, meer wijdverspreide heuvels. Ruwe landschappen hebben veel heuvels, die repetitief kunnen lijken.
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Erg glad
@@ -1453,6 +1480,10 @@ STR_CONFIG_SETTING_EXPENSES_LAYOUT :Uitgaven in bed
STR_CONFIG_SETTING_EXPENSES_LAYOUT_HELPTEXT :Definieer de lay-out voor het bedrijfsuitgavenvenster
STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS :Automatisch seinen verwijderen tijdens spooraanleg: {STRING}
STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS_HELPTEXT :Seinen automatisch verwijderen tijdens spooraanleg als deze in de weg staan. Dit kan botsingen veroorzaken.
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT :Limiet verhoogde spelsnelheid: {STRING}
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_HELPTEXT :Beperkt de snelheid van het spel wanneer de spelsnelheid is verhoogt. 0 = geen limiet (alleen beperkt door de computer zelf). Waarden onder 100% vertragen het spel. De hoogste waarde hangt af van de specifcaties van de computer en kan afhankelijk van het spel variëren.
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_VAL :{NUM}% normale spelsnelheid
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_ZERO :Geen limiet (alleen beperkt door de computer zelf)
STR_CONFIG_SETTING_SOUND_TICKER :Nieuwsticker: {STRING}
STR_CONFIG_SETTING_SOUND_TICKER_HELPTEXT :Speel geluidseffecten af bij korte nieuwsberichten
@@ -1643,12 +1674,17 @@ STR_CONFIG_SETTING_ZOOM_MIN :Maximaal inzoom
STR_CONFIG_SETTING_ZOOM_MIN_HELPTEXT :Het maximale inzoomniveau voor kijkvensters. Merk op dat hogere inzoomniveaus hogere eisen stellen aan het geheugen.
STR_CONFIG_SETTING_ZOOM_MAX :Maximaal uitzoomniveau: {STRING}
STR_CONFIG_SETTING_ZOOM_MAX_HELPTEXT :De maximale zoom-uit niveau voor kijkvensters. Hogere zoom-uit niveaus kunnen leiden tot vertraging bij gebruik
STR_CONFIG_SETTING_SPRITE_ZOOM_MIN :Hoogste resolutie die sprites mogen gebruiken: {STRING}
STR_CONFIG_SETTING_SPRITE_ZOOM_MIN_HELPTEXT :Beperk de maximale resolutie die voor sprites wordt gebruikt. Door deze beperking worden geen grafische elementen in hoge resolutie gebruikt, ook niet als ze beschikbaar zijn. Zo kan de weergave van het spel consistent blijven wanneer je verschillende GRF-bestanden gebruikt met en zonder grafische elementen in hoge resolutie.
STR_CONFIG_SETTING_ZOOM_LVL_MIN :4x
STR_CONFIG_SETTING_ZOOM_LVL_IN_2X :2x
STR_CONFIG_SETTING_ZOOM_LVL_NORMAL :Normaal
STR_CONFIG_SETTING_ZOOM_LVL_OUT_2X :2x
STR_CONFIG_SETTING_ZOOM_LVL_OUT_4X :4x
STR_CONFIG_SETTING_ZOOM_LVL_OUT_8X :8x
STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_MIN :4x
STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_IN_2X :2x
STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_NORMAL :1x
STR_CONFIG_SETTING_TOWN_GROWTH :Groeisnelheid steden: {STRING}
STR_CONFIG_SETTING_TOWN_GROWTH_HELPTEXT :Groeisnelheid van steden.
STR_CONFIG_SETTING_TOWN_GROWTH_NONE :Niet
@@ -1782,6 +1818,10 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... nege
STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Geen geheugen meer
STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Toewijzen van {BYTES} van spritecache mislukt. De spritecache werd teruggebracht tot {BYTES}. Dit verlaagt de prestaties van OpenTTD. Om het benodigde geheugen te verminderen, kun je proberen om 32bpp-beeldelementen en/of inzoomniveaus uit te schakelen
# Video initalization errors
STR_VIDEO_DRIVER_ERROR :{WHITE}Fout met video-instellingen...
STR_VIDEO_DRIVER_ERROR_NO_HARDWARE_ACCELERATION :{WHITE}... geen compatibele GPU gevonden. Hardwareversnelling is uitgeschakeld
# Intro window
STR_INTRO_CAPTION :{WHITE}OpenTTD {REV}
@@ -2002,10 +2042,10 @@ STR_NETWORK_SERVER_LIST_PLAYER_NAME_OSKTITLE :{BLACK}Vul je n
STR_NETWORK_SERVER_LIST_ENTER_IP :{BLACK}Voer het IP-adres van de server in
# Start new multiplayer server
STR_NETWORK_START_SERVER_CAPTION :{WHITE}Start nieuw multiplayerspel
STR_NETWORK_START_SERVER_CAPTION :{WHITE}Nieuw spel met meerdere spelers starten
STR_NETWORK_START_SERVER_NEW_GAME_NAME :{BLACK}Spelnaam:
STR_NETWORK_START_SERVER_NEW_GAME_NAME_TOOLTIP :{BLACK}De spelnaam wordt weergegeven aan andere spelers in het multiplayerspelselectiemenu
STR_NETWORK_START_SERVER_NEW_GAME_NAME_TOOLTIP :{BLACK}De spelnaam wordt weergegeven aan andere spelers in het spelselectiemenu voor meerdere spelers
STR_NETWORK_START_SERVER_SET_PASSWORD :{BLACK}Wachtwoord instellen
STR_NETWORK_START_SERVER_PASSWORD_TOOLTIP :{BLACK}Beveilig je spel met een wachtwoord als je niet wilt dat dit algemeen toegankelijk is
@@ -2312,6 +2352,10 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD
STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Ja, grafische elementen downloaden
STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Nee, OpenTTD afsluiten
STR_MISSING_GRAPHICS_ERROR_TITLE :{WHITE}Downloaden mislukt
STR_MISSING_GRAPHICS_ERROR :{BLACK}Grafische elementen downloaden mislukt.{}Download de grafische elementen handmatig.
STR_MISSING_GRAPHICS_ERROR_QUIT :{BLACK}OpenTTD afsluiten
# Transparency settings window
STR_TRANSPARENCY_CAPTION :{WHITE}Doorzichtigheidsopties
STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Transparantie voor stationsnamen aan-uit. Ctrl+klik om vast te zetten.
@@ -2861,12 +2905,17 @@ STR_MAPGEN_BY :{BLACK}*
STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}Aantal steden:
STR_MAPGEN_DATE :{BLACK}Datum:
STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Aantal industrieën:
STR_MAPGEN_MAX_HEIGHTLEVEL :{BLACK}Maximale kaarthoogte
STR_MAPGEN_MAX_HEIGHTLEVEL_UP :{BLACK}Verhoog de maximale hoogte van bergen op de kaart met één
STR_MAPGEN_MAX_HEIGHTLEVEL_DOWN :{BLACK}Verklein de maximale hoogte van bergen op de kaart met één
STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Hoogte van sneeuwgrens:
STR_MAPGEN_SNOW_LINE_UP :{BLACK}Verhoog de sneeuwgrens met één
STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Verlaag de sneeuwgrens met één
STR_MAPGEN_HEIGHTMAP_HEIGHT :{BLACK}Hoogste berg:
STR_MAPGEN_HEIGHTMAP_HEIGHT_UP :{BLACK}Verhoogt de maximale hoogte van de hoogste berg op de kaart met één
STR_MAPGEN_HEIGHTMAP_HEIGHT_DOWN :{BLACK}Verlaagt de maximale hoogte van de hoogste berg op de kaart met één
STR_MAPGEN_SNOW_COVERAGE :{BLACK}Sneeuwoppervlak:
STR_MAPGEN_SNOW_COVERAGE_UP :{BLACK}Vergroot het sneeuwoppervlak met tien procent
STR_MAPGEN_SNOW_COVERAGE_DOWN :{BLACK}Verkleint het sneeuwoppervlak met tien procent
STR_MAPGEN_SNOW_COVERAGE_TEXT :{BLACK}{NUM}%
STR_MAPGEN_DESERT_COVERAGE :{BLACK}Woestijnoppervlak:
STR_MAPGEN_DESERT_COVERAGE_UP :{BLACK}Vergroot het woestijnoppervlak met tien procent
STR_MAPGEN_DESERT_COVERAGE_DOWN :{BLACK}Verkleint het woestijnoppervlak met tien procent
STR_MAPGEN_DESERT_COVERAGE_TEXT :{BLACK}{NUM}%
STR_MAPGEN_LAND_GENERATOR :{BLACK}Landgenerator:
STR_MAPGEN_TERRAIN_TYPE :{BLACK}Terreintype:
STR_MAPGEN_QUANTITY_OF_SEA_LAKES :{BLACK}Zeeniveau:
@@ -2892,8 +2941,10 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Naam van
STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Grootte:
STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM}
STR_MAPGEN_MAX_HEIGHTLEVEL_QUERY_CAPT :{WHITE}Maximale kaarthoogte wijzigen
STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Hoogte van sneeuwgrens wijzigen
STR_MAPGEN_TERRAIN_TYPE_QUERY_CAPT :{WHITE}Gewenste hoogte van bergen
STR_MAPGEN_HEIGHTMAP_HEIGHT_QUERY_CAPT :{WHITE}Hoogste berg
STR_MAPGEN_SNOW_COVERAGE_QUERY_CAPT :{WHITE}Sneeuwoppervlak (in %)
STR_MAPGEN_DESERT_COVERAGE_QUERY_CAPT :{WHITE}Woestijnoppervlak (in %)
STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Verander startjaar
# SE Map generation
@@ -3171,26 +3222,27 @@ STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Nieuwe gebouwen
STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Exclusieve transportrechten kopen
STR_LOCAL_AUTHORITY_ACTION_BRIBE :Gemeentebestuur omkopen
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Begin een kleine reclamecampagne om meer passagiers en vracht naar jouw transportdiensten te trekken.{}Kosten: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Begin een middelgrote reclamecampagne om meer passagiers en vracht naar jouw transportdiensten te trekken.{}Kosten: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Begin een grote reclamecampagne om meer passagiers en vracht naar jouw transportdiensten te trekken.{}Kosten: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Financier een reconstructie van het wegennetwerk. Veroorzaakt tot 6 maanden lang een aanzienlijke verstoring van het wegverkeer.{}Kosten: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Een standbeeld bouwen ter ere van jouw bedrijf.{}Kosten: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}De bouw van nieuwe commerciële gebouwen in de stad financieren.{}Kosten: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}1 jaar exclusieve transportrechten kopen in deze plaats. Het gemeentebestuur staat alleen passagiers en vracht toe bij jouw stations.{}Kosten: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Begin een kleine reclamecampagne om meer passagiers en vracht naar jouw transportdiensten te trekken.{}Zorgt voor een tijdelijk hogere stationswaardering in een klein gebied rondom het centrum.{}Kosten: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Begin een middelgrote reclamecampagne om meer passagiers en vracht naar jouw transportdiensten te trekken.{}Zorgt voor een tijdelijk hogere stationswaardering in een middelgroot gebied rondom het centrum.{}Kosten: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Begin een grote reclamecampagne om meer passagiers en vracht naar jouw transportdiensten te trekken.{}Zorgt voor een tijdelijk hogere stationswaardering in een groot gebied rondom het centrum.{}Kosten: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Financier een reconstructie van het wegennetwerk.{}Veroorzaakt tot 6 maanden lang een aanzienlijke verstoring van het wegverkeer.{}Kosten: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Een standbeeld bouwen ter ere van jouw bedrijf.{}Zorgt voor een blijvend hogere stationswaardering in deze stad.{}Kosten: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}De bouw van nieuwe gebouwen in de stad financieren.{}Zorgt voor een tijdelijk hogere groei van deze stad.{}Kosten: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}1 jaar exclusieve transportrechten kopen in deze plaats.{}Het gemeentebestuur staat alleen passagiers en vracht toe bij jouw stations.{}Kosten: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Koop het plaatselijk gezag om om je reputatie te verhogen met het risico op een strenge sanctie wanneer je gepakt wordt.{}Kosten: {CURRENCY_LONG}
# Goal window
STR_GOALS_CAPTION :{WHITE}{COMPANY} Doelen
STR_GOALS_SPECTATOR_CAPTION :{WHITE}Algemene doelen
STR_GOALS_SPECTATOR :Algemene doelen
STR_GOALS_GLOBAL_TITLE :{BLACK}Algemene doelen:
STR_GOALS_GLOBAL_BUTTON :{BLACK}Algemeen
STR_GOALS_GLOBAL_BUTTON_HELPTEXT :{BLACK}Algemene doelen weergeven
STR_GOALS_COMPANY_BUTTON :{BLACK}Bedrijf
STR_GOALS_COMPANY_BUTTON_HELPTEXT :{BLACK}Bedrijfsdoelen weergeven
STR_GOALS_TEXT :{ORANGE}{STRING}
STR_GOALS_NONE :{ORANGE}- Geen -
STR_GOALS_SPECTATOR_NONE :{ORANGE}- Niet van toepassing -
STR_GOALS_PROGRESS :{ORANGE}{STRING}
STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING}
STR_GOALS_COMPANY_TITLE :{BLACK}Bedrijfsdoelen:
STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Klik op doel centreert venster op industrie/stad/tegel. Ctrl+Klik opent een nieuw venster op de locatie van de industrie/stad/tegel.
# Goal question window
@@ -3561,6 +3613,7 @@ STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Aangedre
STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Om te bouwen naar: {GOLD}{STRING}
STR_PURCHASE_INFO_ALL_TYPES :Alle vrachttypen
STR_PURCHASE_INFO_NONE :Geen
STR_PURCHASE_INFO_ENGINES_ONLY :Alleen voertuigen
STR_PURCHASE_INFO_ALL_BUT :Alles behalve {CARGO_LIST}
STR_PURCHASE_INFO_MAX_TE :{BLACK}Max. trekkracht: {GOLD}{FORCE}
STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Bereik: {GOLD}{COMMA} tegels
@@ -4308,6 +4361,7 @@ STR_WARNING_FALLBACK_SOUNDSET :{WHITE}Alleen b
STR_WARNING_SCREENSHOT_SIZE_CAPTION :{WHITE}Grote schermfoto
STR_WARNING_SCREENSHOT_SIZE_MESSAGE :{YELLOW}De schermfoto heeft een resolutie van {COMMA} x {COMMA} pixels. Het maken van de schermfoto kan even duren. Verder gaan?
STR_MESSAGE_HEIGHTMAP_SUCCESSFULLY :{WHITE}Hoogtekaart opgeslagen als '{STRING}'. Hoogste berg is {NUM}
STR_MESSAGE_SCREENSHOT_SUCCESSFULLY :{WHITE}Schermafbeelding opgeslagen als '{STRING}'
STR_ERROR_SCREENSHOT_FAILED :{WHITE}Schermfoto mislukt!

View File

@@ -947,6 +947,7 @@ STR_GAME_OPTIONS_CURRENCY_CNY :Chinese Renminb
STR_GAME_OPTIONS_CURRENCY_HKD :Hong Kong Dollar (HKD)
STR_GAME_OPTIONS_CURRENCY_INR :Indian Rupee (INR)
STR_GAME_OPTIONS_CURRENCY_IDR :Indonesian Rupiah (IDR)
STR_GAME_OPTIONS_CURRENCY_MYR :Malaysian Ringgit (MYR)
############ end of currency region
STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_LEFT :Drive on left
@@ -999,6 +1000,14 @@ STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}Check th
STR_GAME_OPTIONS_RESOLUTION :{BLACK}Screen resolution
STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Select the screen resolution to use
STR_GAME_OPTIONS_RESOLUTION_OTHER :other
STR_GAME_OPTIONS_RESOLUTION_ITEM :{NUM}x{NUM}
STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Hardware acceleration
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Check this box to allow OpenTTD to try to use hardware acceleration. A changed setting will only be applied upon game restart
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}The setting will only take effect after a game restart
STR_GAME_OPTIONS_VIDEO_VSYNC :{BLACK}VSync
STR_GAME_OPTIONS_VIDEO_VSYNC_TOOLTIP :{BLACK}Check this box to v-sync the screen. A changed setting will only be applied upon game restart. Only works with hardware acceleration enabled
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Interface size
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Select the interface element size to use
@@ -1016,6 +1025,14 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Double size
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Quad size
STR_GAME_OPTIONS_GRAPHICS :{BLACK}Graphics
STR_GAME_OPTIONS_REFRESH_RATE :{BLACK}Display refresh rate
STR_GAME_OPTIONS_REFRESH_RATE_TOOLTIP :{BLACK}Select the screen refresh rate to use
STR_GAME_OPTIONS_REFRESH_RATE_OTHER :other
STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}Hz
STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE}Refresh rates higher than 60Hz might impact performance.
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Base graphics set
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Select the base graphics set to use
STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} missing/corrupted file{P "" s}
@@ -1110,6 +1127,8 @@ STR_TERRAIN_TYPE_FLAT :Flat
STR_TERRAIN_TYPE_HILLY :Hilly
STR_TERRAIN_TYPE_MOUNTAINOUS :Mountainous
STR_TERRAIN_TYPE_ALPINIST :Alpinist
STR_TERRAIN_TYPE_CUSTOM :Custom height
STR_TERRAIN_TYPE_CUSTOM_VALUE :Custom height ({NUM})
STR_CITY_APPROVAL_PERMISSIVE :Permissive
STR_CITY_APPROVAL_TOLERANT :Tolerant
@@ -1191,9 +1210,11 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Toggle disaster
STR_CONFIG_SETTING_CITY_APPROVAL :Town council's attitude towards area restructuring: {STRING2}
STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Choose how much noise and environmental damage by companies affect their town rating and further construction actions in their area
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :Maximum map height: {STRING2}
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :Set the maximum allowed height for mountains on the map
STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}You can't set the maximum map height to this value. At least one mountain on the map is higher
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT :Map height limit: {STRING2}
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_HELPTEXT :Set the maximum height of the map terrain. With "(auto)" a good value will be picked after terrain generation
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_VALUE :{NUM}
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_AUTO :(auto)
STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}You can't set the map height limit to this value. At least one mountain on the map is higher
STR_CONFIG_SETTING_AUTOSLOPE :Allow landscaping under buildings, tracks, etc.: {STRING2}
STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Allow landscaping under buildings and tracks without removing them
STR_CONFIG_SETTING_CATCHMENT :Allow more realistically sized catchment areas: {STRING2}
@@ -1337,7 +1358,13 @@ STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Set how many in
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Maximum distance from edge for Oil industries: {STRING2}
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Limit for how far from the map border oil refineries and oil rigs can be constructed. On island maps this ensures they are near the coast. On maps larger than 256 tiles, this value is scaled up.
STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Snow line height: {STRING2}
STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Control at what height snow starts in sub-arctic landscape. Snow also affects industry generation and town growth requirements
STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Controls at what height snow starts in sub-arctic landscape. Snow also affects industry generation and town growth requirements. Can only be modified via Scenario Editor or is otherwise calculated via "snow coverage"
STR_CONFIG_SETTING_SNOW_COVERAGE :Snow coverage: {STRING2}
STR_CONFIG_SETTING_SNOW_COVERAGE_HELPTEXT :Controls the approximate amount of snow on the sub-arctic landscape. Snow also affects industry generation and town growth requirements. Only used during map generation. Land just above sea level is always without snow
STR_CONFIG_SETTING_SNOW_COVERAGE_VALUE :{NUM}%
STR_CONFIG_SETTING_DESERT_COVERAGE :Desert coverage: {STRING2}
STR_CONFIG_SETTING_DESERT_COVERAGE_HELPTEXT :Control the approximate amount of desert on the tropical landscape. Desert also affects industry generation. Only used during map generation
STR_CONFIG_SETTING_DESERT_COVERAGE_VALUE :{NUM}%
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Roughness of terrain: {STRING2}
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(TerraGenesis only) Choose the frequency of hills: Smooth landscapes have fewer, more wide-spread hills. Rough landscapes have many hills, which may look repetitive
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Very Smooth
@@ -1647,12 +1674,17 @@ STR_CONFIG_SETTING_ZOOM_MIN :Maximum zoom in
STR_CONFIG_SETTING_ZOOM_MIN_HELPTEXT :The maximum zoom-in level for viewports. Note that enabling higher zoom-in levels increases memory requirements
STR_CONFIG_SETTING_ZOOM_MAX :Maximum zoom out level: {STRING2}
STR_CONFIG_SETTING_ZOOM_MAX_HELPTEXT :The maximum zoom-out level for viewports. Higher zoom-out levels might cause lag when used
STR_CONFIG_SETTING_SPRITE_ZOOM_MIN :Highest resolution sprites to use: {STRING2}
STR_CONFIG_SETTING_SPRITE_ZOOM_MIN_HELPTEXT :Limit the maximum resolution to use for sprites. Limiting sprite resolution will avoid using high resolution graphics even when available. This can help keep the game appearance unified when using a mix of GRF files with and without high resolution graphics.
STR_CONFIG_SETTING_ZOOM_LVL_MIN :4x
STR_CONFIG_SETTING_ZOOM_LVL_IN_2X :2x
STR_CONFIG_SETTING_ZOOM_LVL_NORMAL :Normal
STR_CONFIG_SETTING_ZOOM_LVL_OUT_2X :2x
STR_CONFIG_SETTING_ZOOM_LVL_OUT_4X :4x
STR_CONFIG_SETTING_ZOOM_LVL_OUT_8X :8x
STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_MIN :4x
STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_IN_2X :2x
STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_NORMAL :1x
STR_CONFIG_SETTING_TOWN_GROWTH :Town growth speed: {STRING2}
STR_CONFIG_SETTING_TOWN_GROWTH_HELPTEXT :Speed of town growth
STR_CONFIG_SETTING_TOWN_GROWTH_NONE :None
@@ -1786,6 +1818,10 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... igno
STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Out of memory
STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Allocating {BYTES} of spritecache failed. The spritecache was reduced to {BYTES}. This will reduce the performance of OpenTTD. To reduce memory requirements you can try to disable 32bpp graphics and/or zoom-in levels
# Video initalization errors
STR_VIDEO_DRIVER_ERROR :{WHITE}Error with video settings...
STR_VIDEO_DRIVER_ERROR_NO_HARDWARE_ACCELERATION :{WHITE}... no compatible GPU found. Hardware acceleration disabled
# Intro window
STR_INTRO_CAPTION :{WHITE}OpenTTD {REV}
@@ -2316,6 +2352,10 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD
STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Yes, download the graphics
STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}No, exit OpenTTD
STR_MISSING_GRAPHICS_ERROR_TITLE :{WHITE}Downloading failed
STR_MISSING_GRAPHICS_ERROR :{BLACK}Downloading graphics failed.{}Please download graphics manually.
STR_MISSING_GRAPHICS_ERROR_QUIT :{BLACK}Exit OpenTTD
# Transparency settings window
STR_TRANSPARENCY_CAPTION :{WHITE}Transparency Options
STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Toggle transparency for signs. Ctrl+Click to lock
@@ -2865,12 +2905,17 @@ STR_MAPGEN_BY :{BLACK}*
STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}No. of towns:
STR_MAPGEN_DATE :{BLACK}Date:
STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}No. of industries:
STR_MAPGEN_MAX_HEIGHTLEVEL :{BLACK}Maximum map height:
STR_MAPGEN_MAX_HEIGHTLEVEL_UP :{BLACK}Increase the maximum height of mountains on the map by one
STR_MAPGEN_MAX_HEIGHTLEVEL_DOWN :{BLACK}Decrease the maximum height of mountains on the map by one
STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Snow line height:
STR_MAPGEN_SNOW_LINE_UP :{BLACK}Move the snow line height one up
STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Move the snow line height one down
STR_MAPGEN_HEIGHTMAP_HEIGHT :{BLACK}Highest peak:
STR_MAPGEN_HEIGHTMAP_HEIGHT_UP :{BLACK}Increase the maximum height of highest peak on the map by one
STR_MAPGEN_HEIGHTMAP_HEIGHT_DOWN :{BLACK}Decrease the maximum height of highest peak on the map by one
STR_MAPGEN_SNOW_COVERAGE :{BLACK}Snow coverage:
STR_MAPGEN_SNOW_COVERAGE_UP :{BLACK}Increase snow coverage by ten percent
STR_MAPGEN_SNOW_COVERAGE_DOWN :{BLACK}Decrease snow coverage by ten percent
STR_MAPGEN_SNOW_COVERAGE_TEXT :{BLACK}{NUM}%
STR_MAPGEN_DESERT_COVERAGE :{BLACK}Desert coverage:
STR_MAPGEN_DESERT_COVERAGE_UP :{BLACK}Increase desert coverage by ten percent
STR_MAPGEN_DESERT_COVERAGE_DOWN :{BLACK}Decrease desert coverage by ten percent
STR_MAPGEN_DESERT_COVERAGE_TEXT :{BLACK}{NUM}%
STR_MAPGEN_LAND_GENERATOR :{BLACK}Land generator:
STR_MAPGEN_TERRAIN_TYPE :{BLACK}Terrain type:
STR_MAPGEN_QUANTITY_OF_SEA_LAKES :{BLACK}Sea level:
@@ -2896,8 +2941,10 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Heightma
STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Size:
STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM}
STR_MAPGEN_MAX_HEIGHTLEVEL_QUERY_CAPT :{WHITE}Change maximum map height
STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Change snow line height
STR_MAPGEN_TERRAIN_TYPE_QUERY_CAPT :{WHITE}Target peak height
STR_MAPGEN_HEIGHTMAP_HEIGHT_QUERY_CAPT :{WHITE}Highest peak
STR_MAPGEN_SNOW_COVERAGE_QUERY_CAPT :{WHITE}Snow coverage (in %)
STR_MAPGEN_DESERT_COVERAGE_QUERY_CAPT :{WHITE}Desert coverage (in %)
STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Change starting year
# SE Map generation
@@ -3175,26 +3222,27 @@ STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Fund new buildi
STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Buy exclusive transport rights
STR_LOCAL_AUTHORITY_ACTION_BRIBE :Bribe the local authority
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Initiate a small local advertising campaign, to attract more passengers and cargo to your transport services.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Initiate a medium local advertising campaign, to attract more passengers and cargo to your transport services.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Initiate a large local advertising campaign, to attract more passengers and cargo to your transport services.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Fund the reconstruction of the urban road network. Causes considerable disruption to road traffic for up to 6 months.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Build a statue in honour of your company.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Fund the construction of new commercial buildings in the town.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Buy 1 year's exclusive transport rights in town. Town authority will only allow passengers and cargo to use your company's stations.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Initiate a small local advertising campaign, to attract more passengers and cargo to your transport services.{}Provides a temporary boost to station rating in a small radius around the town centre.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Initiate a medium local advertising campaign, to attract more passengers and cargo to your transport services.{}Provides a temporary boost to station rating in a medium radius around the town centre.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Initiate a large local advertising campaign, to attract more passengers and cargo to your transport services.{}Provides a temporary boost to station rating in a large radius around the town centre.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Fund the reconstruction of the urban road network.{}Causes considerable disruption to road traffic for up to 6 months.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Build a statue in honour of your company.{}Provides a permanent boost to station rating in this town.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Fund the construction of new buildings in the town.{}Provides a temporary boost to town growth in this town.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Buy 1 year's exclusive transport rights in town.{}Town authority will not allow passengers and cargo to use your competitors' stations.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Bribe the local authority to increase your rating, at the risk of a severe penalty if caught.{}Cost: {CURRENCY_LONG}
# Goal window
STR_GOALS_CAPTION :{WHITE}{COMPANY} Goals
STR_GOALS_SPECTATOR_CAPTION :{WHITE}Global Goals
STR_GOALS_SPECTATOR :Global Goals
STR_GOALS_GLOBAL_TITLE :{BLACK}Global goals:
STR_GOALS_GLOBAL_BUTTON :{BLACK}Global
STR_GOALS_GLOBAL_BUTTON_HELPTEXT :{BLACK}Show global goals
STR_GOALS_COMPANY_BUTTON :{BLACK}Company
STR_GOALS_COMPANY_BUTTON_HELPTEXT :{BLACK}Show company goals
STR_GOALS_TEXT :{ORANGE}{RAW_STRING}
STR_GOALS_NONE :{ORANGE}- None -
STR_GOALS_SPECTATOR_NONE :{ORANGE}- Not applicable -
STR_GOALS_PROGRESS :{ORANGE}{RAW_STRING}
STR_GOALS_PROGRESS_COMPLETE :{GREEN}{RAW_STRING}
STR_GOALS_COMPANY_TITLE :{BLACK}Company goals:
STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Click on goal to centre main view on industry/town/tile. Ctrl+Click opens a new viewport on industry/town/tile location
# Goal question window
@@ -3565,6 +3613,7 @@ STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Powered
STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Refittable to: {GOLD}{STRING2}
STR_PURCHASE_INFO_ALL_TYPES :All cargo types
STR_PURCHASE_INFO_NONE :None
STR_PURCHASE_INFO_ENGINES_ONLY :Engines only
STR_PURCHASE_INFO_ALL_BUT :All but {CARGO_LIST}
STR_PURCHASE_INFO_MAX_TE :{BLACK}Max. Tractive Effort: {GOLD}{FORCE}
STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Range: {GOLD}{COMMA} tiles
@@ -4312,6 +4361,7 @@ STR_WARNING_FALLBACK_SOUNDSET :{WHITE}Only a f
STR_WARNING_SCREENSHOT_SIZE_CAPTION :{WHITE}Huge screenshot
STR_WARNING_SCREENSHOT_SIZE_MESSAGE :{YELLOW}The screenshot will have a resolution of {COMMA} x {COMMA} pixels. Taking the screenshot may take a while. Do you want to continue?
STR_MESSAGE_HEIGHTMAP_SUCCESSFULLY :{WHITE}Heightmap successfully saved as '{RAW_STRING}'. Highest peak is {NUM}
STR_MESSAGE_SCREENSHOT_SUCCESSFULLY :{WHITE}Screenshot successfully saved as '{RAW_STRING}'
STR_ERROR_SCREENSHOT_FAILED :{WHITE}Screenshot failed!

View File

@@ -963,6 +963,10 @@ STR_GAME_OPTIONS_RESOLUTION_OTHER :other
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Base graphics set
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Select the base graphics set to use
STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} missing/corrupted file{P "" s}
@@ -1683,6 +1687,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... igno
STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Out of memory
STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Allocating {BYTES} of spritecache failed. The spritecache was reduced to {BYTES}. This will reduce the performance of OpenTTD. To reduce memory requirements you can try to disable 32bpp graphics and/or zoom-in levels
# Video initalization errors
# Intro window
STR_INTRO_CAPTION :{WHITE}OpenTTD {REV}
@@ -2195,6 +2201,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD
STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Yes, download the graphics
STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}No, exit OpenTTD
# Transparency settings window
STR_TRANSPARENCY_CAPTION :{WHITE}Transparency Options
STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Toggle transparency for signs. Ctrl+Click to lock
@@ -2663,9 +2670,6 @@ STR_MAPGEN_BY :{BLACK}*
STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}No. of towns:
STR_MAPGEN_DATE :{BLACK}Date:
STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}No. of industries:
STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Snow line height:
STR_MAPGEN_SNOW_LINE_UP :{BLACK}Move the snow line height one up
STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Move the snow line height one down
STR_MAPGEN_LAND_GENERATOR :{BLACK}Land generator:
STR_MAPGEN_TERRAIN_TYPE :{BLACK}Terrain type:
STR_MAPGEN_QUANTITY_OF_SEA_LAKES :{BLACK}Sea level:
@@ -2691,7 +2695,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Heightma
STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Size:
STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM}
STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Change snow line height
STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Change starting year
# SE Map generation
@@ -2964,13 +2967,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Bribe t
# Goal window
STR_GOALS_CAPTION :{WHITE}{COMPANY} Goals
STR_GOALS_SPECTATOR_CAPTION :{WHITE}Global Goals
STR_GOALS_GLOBAL_TITLE :{BLACK}Global goals:
STR_GOALS_TEXT :{ORANGE}{STRING}
STR_GOALS_NONE :{ORANGE}- None -
STR_GOALS_SPECTATOR_NONE :{ORANGE}- Not applicable -
STR_GOALS_PROGRESS :{ORANGE}{STRING}
STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING}
STR_GOALS_COMPANY_TITLE :{BLACK}Company goals:
STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Click on goal to centre main view on industry/town/tile. Ctrl+Click opens a new viewport on industry/town/tile location
# Goal question window

View File

@@ -947,6 +947,7 @@ STR_GAME_OPTIONS_CURRENCY_CNY :Chinese Renminb
STR_GAME_OPTIONS_CURRENCY_HKD :Hong Kong Dollar (HKD)
STR_GAME_OPTIONS_CURRENCY_INR :Indian Rupee (INR)
STR_GAME_OPTIONS_CURRENCY_IDR :Indonesian Rupiah (IDR)
STR_GAME_OPTIONS_CURRENCY_MYR :Malaysian Ringgit (MYR)
############ end of currency region
STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_LEFT :Drive on left
@@ -999,6 +1000,14 @@ STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}Check th
STR_GAME_OPTIONS_RESOLUTION :{BLACK}Screen resolution
STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Select the screen resolution to use
STR_GAME_OPTIONS_RESOLUTION_OTHER :other
STR_GAME_OPTIONS_RESOLUTION_ITEM :{NUM}x{NUM}
STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Hardware acceleration
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Check this box to allow OpenTTD to try to use hardware acceleration. A changed setting will only be applied upon game restart
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}The setting will only take effect after a game restart
STR_GAME_OPTIONS_VIDEO_VSYNC :{BLACK}VSync
STR_GAME_OPTIONS_VIDEO_VSYNC_TOOLTIP :{BLACK}Check this box to v-sync the screen. A changed setting will only be applied upon game restart. Only works with hardware acceleration enabled
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Interface size
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Select the interface element size to use
@@ -1016,6 +1025,14 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Double size
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Quad size
STR_GAME_OPTIONS_GRAPHICS :{BLACK}Graphics
STR_GAME_OPTIONS_REFRESH_RATE :{BLACK}Display refresh rate
STR_GAME_OPTIONS_REFRESH_RATE_TOOLTIP :{BLACK}Select the screen refresh rate to use
STR_GAME_OPTIONS_REFRESH_RATE_OTHER :other
STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}Hz
STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE}Refresh rates higher than 60Hz might impact performance.
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Base graphics set
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Select the base graphics set to use
STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} missing/corrupted file{P "" s}
@@ -1110,6 +1127,8 @@ STR_TERRAIN_TYPE_FLAT :Flat
STR_TERRAIN_TYPE_HILLY :Hilly
STR_TERRAIN_TYPE_MOUNTAINOUS :Mountainous
STR_TERRAIN_TYPE_ALPINIST :Alpinist
STR_TERRAIN_TYPE_CUSTOM :Custom height
STR_TERRAIN_TYPE_CUSTOM_VALUE :Custom height ({NUM})
STR_CITY_APPROVAL_PERMISSIVE :Permissive
STR_CITY_APPROVAL_TOLERANT :Tolerant
@@ -1191,9 +1210,11 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Toggle disaster
STR_CONFIG_SETTING_CITY_APPROVAL :Town council's attitude towards area restructuring: {STRING}
STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Choose how much noise and environmental damage by companies affect their town rating and further construction actions in their area
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :Maximum map height: {STRING}
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :Set the maximum allowed height for mountains on the map
STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}You can't set the maximum map height to this value. At least one mountain on the map is higher
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT :Map height limit: {STRING}
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_HELPTEXT :Set the maximum height of the map terrain. With "(auto)" a good value will be picked after terrain generation
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_VALUE :{NUM}
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_AUTO :(auto)
STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}You can't set the map height limit to this value. At least one mountain on the map is higher
STR_CONFIG_SETTING_AUTOSLOPE :Allow terraforming under buildings, tracks, etc.: {STRING}
STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Allow terraforming under buildings and tracks without removing them
STR_CONFIG_SETTING_CATCHMENT :Allow more realistically sized catchment areas: {STRING}
@@ -1337,7 +1358,13 @@ STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Set how many in
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Maximum distance from edge for Oil industries: {STRING}
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Limit for how far from the map border oil refineries and oil rigs can be constructed. On island maps this ensures they are near the coast. On maps larger than 256 tiles, this value is scaled up.
STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Snow line height: {STRING}
STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Control at what height snow starts in sub-arctic landscape. Snow also affects industry generation and town growth requirements
STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Controls at what height snow starts in sub-arctic landscape. Snow also affects industry generation and town growth requirements. Can only be modified via Scenario Editor or is otherwise calculated via "snow coverage"
STR_CONFIG_SETTING_SNOW_COVERAGE :Snow coverage: {STRING}
STR_CONFIG_SETTING_SNOW_COVERAGE_HELPTEXT :Controls the approximate amount of snow on the sub-arctic landscape. Snow also affects industry generation and town growth requirements. Only used during map generation. Land just above sea level is always without snow
STR_CONFIG_SETTING_SNOW_COVERAGE_VALUE :{NUM}%
STR_CONFIG_SETTING_DESERT_COVERAGE :Desert coverage: {STRING}
STR_CONFIG_SETTING_DESERT_COVERAGE_HELPTEXT :Control the approximate amount of desert on the tropical landscape. Desert also affects industry generation. Only used during map generation
STR_CONFIG_SETTING_DESERT_COVERAGE_VALUE :{NUM}%
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Roughness of terrain: {STRING}
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(TerraGenesis only) Choose the frequency of hills: Smooth landscapes have fewer, more wide-spread hills. Rough landscapes have many hills, which may look repetitive
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Very Smooth
@@ -1453,6 +1480,10 @@ STR_CONFIG_SETTING_EXPENSES_LAYOUT :Group expenses
STR_CONFIG_SETTING_EXPENSES_LAYOUT_HELPTEXT :Define the layout for the company expenses window
STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS :Automatically remove signals during track construction: {STRING}
STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS_HELPTEXT :Automatically remove signals during track construction if the signals are in the way. Note that this can potentially lead to train crashes.
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT :Fast forward speed limit: {STRING}
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_HELPTEXT :Limit on how fast the game goes when fast forward is enabled. 0 = no limit (as fast as your computer allows). Values below 100% slow the game down. The upper-limit depends on the specification of your computer and can vary depending on the game.
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_VAL :{NUM}% normal game speed
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_ZERO :No limit (as fast as your computer allows)
STR_CONFIG_SETTING_SOUND_TICKER :News ticker: {STRING}
STR_CONFIG_SETTING_SOUND_TICKER_HELPTEXT :Play sound for summarized news messages
@@ -1643,12 +1674,17 @@ STR_CONFIG_SETTING_ZOOM_MIN :Maximum zoom in
STR_CONFIG_SETTING_ZOOM_MIN_HELPTEXT :The maximum zoom-in level for viewports. Note that enabling higher zoom-in levels increases memory requirements
STR_CONFIG_SETTING_ZOOM_MAX :Maximum zoom out level: {STRING}
STR_CONFIG_SETTING_ZOOM_MAX_HELPTEXT :The maximum zoom-out level for viewports. Higher zoom-out levels might cause lag when used
STR_CONFIG_SETTING_SPRITE_ZOOM_MIN :Highest resolution sprites to use: {STRING}
STR_CONFIG_SETTING_SPRITE_ZOOM_MIN_HELPTEXT :Limit the maximum resolution to use for sprites. Limiting sprite resolution will avoid using high resolution graphics even when available. This can help keep the game appearance unified when using a mix of GRF files with and without high resolution graphics.
STR_CONFIG_SETTING_ZOOM_LVL_MIN :4x
STR_CONFIG_SETTING_ZOOM_LVL_IN_2X :2x
STR_CONFIG_SETTING_ZOOM_LVL_NORMAL :Normal
STR_CONFIG_SETTING_ZOOM_LVL_OUT_2X :2x
STR_CONFIG_SETTING_ZOOM_LVL_OUT_4X :4x
STR_CONFIG_SETTING_ZOOM_LVL_OUT_8X :8x
STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_MIN :4x
STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_IN_2X :2x
STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_NORMAL :1x
STR_CONFIG_SETTING_TOWN_GROWTH :Town growth speed: {STRING}
STR_CONFIG_SETTING_TOWN_GROWTH_HELPTEXT :Speed of town growth
STR_CONFIG_SETTING_TOWN_GROWTH_NONE :None
@@ -1782,6 +1818,10 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... igno
STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Out of memory
STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Allocating {BYTES} of spritecache failed. The spritecache was reduced to {BYTES}. This will reduce the performance of OpenTTD. To reduce memory requirements you can try to disable 32bpp graphics and/or zoom-in levels
# Video initalization errors
STR_VIDEO_DRIVER_ERROR :{WHITE}Error with video settings...
STR_VIDEO_DRIVER_ERROR_NO_HARDWARE_ACCELERATION :{WHITE}... no compatible GPU found. Hardware acceleration disabled
# Intro window
STR_INTRO_CAPTION :{WHITE}OpenTTD {REV}
@@ -2312,6 +2352,10 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD
STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Yes, download the graphics
STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}No, quit OpenTTD
STR_MISSING_GRAPHICS_ERROR_TITLE :{WHITE}Downloading failed
STR_MISSING_GRAPHICS_ERROR :{BLACK}Downloading graphics failed.{}Please download graphics manually.
STR_MISSING_GRAPHICS_ERROR_QUIT :{BLACK}Exit OpenTTD
# Transparency settings window
STR_TRANSPARENCY_CAPTION :{WHITE}Transparency Options
STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Toggle transparency for signs. Ctrl+Click to lock
@@ -2861,12 +2905,17 @@ STR_MAPGEN_BY :{BLACK}*
STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}No. of towns:
STR_MAPGEN_DATE :{BLACK}Date:
STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}No. of industries:
STR_MAPGEN_MAX_HEIGHTLEVEL :{BLACK}Maximum map height:
STR_MAPGEN_MAX_HEIGHTLEVEL_UP :{BLACK}Increase the maximum height of mountains on the map by one
STR_MAPGEN_MAX_HEIGHTLEVEL_DOWN :{BLACK}Decrease the maximum height of mountains on the map by one
STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Snow line height:
STR_MAPGEN_SNOW_LINE_UP :{BLACK}Move the snow line height up one
STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Move the snow line height down one
STR_MAPGEN_HEIGHTMAP_HEIGHT :{BLACK}Highest peak:
STR_MAPGEN_HEIGHTMAP_HEIGHT_UP :{BLACK}Increase the maximum height of highest peak on the map by one
STR_MAPGEN_HEIGHTMAP_HEIGHT_DOWN :{BLACK}Decrease the maximum height of highest peak on the map by one
STR_MAPGEN_SNOW_COVERAGE :{BLACK}Snow coverage:
STR_MAPGEN_SNOW_COVERAGE_UP :{BLACK}Increase snow coverage by ten percent
STR_MAPGEN_SNOW_COVERAGE_DOWN :{BLACK}Decrease snow coverage by ten percent
STR_MAPGEN_SNOW_COVERAGE_TEXT :{BLACK}{NUM}%
STR_MAPGEN_DESERT_COVERAGE :{BLACK}Desert coverage:
STR_MAPGEN_DESERT_COVERAGE_UP :{BLACK}Increase desert coverage by ten percent
STR_MAPGEN_DESERT_COVERAGE_DOWN :{BLACK}Decrease desert coverage by ten percent
STR_MAPGEN_DESERT_COVERAGE_TEXT :{BLACK}{NUM}%
STR_MAPGEN_LAND_GENERATOR :{BLACK}Land generator:
STR_MAPGEN_TERRAIN_TYPE :{BLACK}Terrain type:
STR_MAPGEN_QUANTITY_OF_SEA_LAKES :{BLACK}Sea level:
@@ -2892,8 +2941,10 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Heightma
STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Size:
STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM}
STR_MAPGEN_MAX_HEIGHTLEVEL_QUERY_CAPT :{WHITE}Change maximum map height
STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Change snow line height
STR_MAPGEN_TERRAIN_TYPE_QUERY_CAPT :{WHITE}Target peak height
STR_MAPGEN_HEIGHTMAP_HEIGHT_QUERY_CAPT :{WHITE}Highest peak
STR_MAPGEN_SNOW_COVERAGE_QUERY_CAPT :{WHITE}Snow coverage (in %)
STR_MAPGEN_DESERT_COVERAGE_QUERY_CAPT :{WHITE}Desert coverage (in %)
STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Change starting year
# SE Map generation
@@ -3171,26 +3222,27 @@ STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Fund new buildi
STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Buy exclusive transport rights
STR_LOCAL_AUTHORITY_ACTION_BRIBE :Bribe the local authority
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Initiate a small local advertising campaign, to attract more passengers and cargo to your transport services.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Initiate a medium local advertising campaign, to attract more passengers and cargo to your transport services.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Initiate a large local advertising campaign, to attract more passengers and cargo to your transport services.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Fund the reconstruction of the urban road network. Causes considerable disruption to road traffic for up to 6 months.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Build a statue in honor of your company.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Fund the construction of new commercial buildings in the town.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Buy 1 year's exclusive transport rights in town. Town authority will only allow passengers and cargo to use your company's stations.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Initiate a small local advertising campaign, to attract more passengers and cargo to your transport services.{}Provides a temporary boost to station rating in a small radius around the town center.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Initiate a medium local advertising campaign, to attract more passengers and cargo to your transport services.{}Provides a temporary boost to station rating in a medium radius around the town center.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Initiate a large local advertising campaign, to attract more passengers and cargo to your transport services.{}Provides a temporary boost to station rating in a large radius around the town center.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Fund the reconstruction of the urban road network.{}Causes considerable disruption to road traffic for up to 6 months.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Build a statue in honor of your company.{}Provides a permanent boost to station rating in this town.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Fund the construction of new buildings in the town.{}Provides a temporary boost to town growth in this town.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Buy 1 year's exclusive transport rights in town.{}Town authority will not allow passengers and cargo to use your competitors' stations.{}Cost: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Bribe the local authority to increase your rating, at the risk of a severe penalty if caught.{}Cost: {CURRENCY_LONG}
# Goal window
STR_GOALS_CAPTION :{WHITE}{COMPANY} Goals
STR_GOALS_SPECTATOR_CAPTION :{WHITE}Global Goals
STR_GOALS_SPECTATOR :Global Goals
STR_GOALS_GLOBAL_TITLE :{BLACK}Global goals:
STR_GOALS_GLOBAL_BUTTON :{BLACK}Global
STR_GOALS_GLOBAL_BUTTON_HELPTEXT :{BLACK}Show global goals
STR_GOALS_COMPANY_BUTTON :{BLACK}Company
STR_GOALS_COMPANY_BUTTON_HELPTEXT :{BLACK}Show company goals
STR_GOALS_TEXT :{ORANGE}{STRING}
STR_GOALS_NONE :{ORANGE}- None -
STR_GOALS_SPECTATOR_NONE :{ORANGE}- Not applicable -
STR_GOALS_PROGRESS :{ORANGE}{STRING}
STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING}
STR_GOALS_COMPANY_TITLE :{BLACK}Company goals:
STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Click on goal to center main view on industry/town/tile. Ctrl+Click opens a new viewport on industry/town/tile location
# Goal question window
@@ -3561,6 +3613,7 @@ STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Powered
STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Refittable to: {GOLD}{STRING}
STR_PURCHASE_INFO_ALL_TYPES :All cargo types
STR_PURCHASE_INFO_NONE :None
STR_PURCHASE_INFO_ENGINES_ONLY :Engines only
STR_PURCHASE_INFO_ALL_BUT :All but {CARGO_LIST}
STR_PURCHASE_INFO_MAX_TE :{BLACK}Max. Tractive Effort: {GOLD}{FORCE}
STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Range: {GOLD}{COMMA} tiles
@@ -4308,6 +4361,7 @@ STR_WARNING_FALLBACK_SOUNDSET :{WHITE}Only a f
STR_WARNING_SCREENSHOT_SIZE_CAPTION :{WHITE}Huge screenshot
STR_WARNING_SCREENSHOT_SIZE_MESSAGE :{YELLOW}The screenshot will have a resolution of {COMMA} x {COMMA} pixels. Taking the screenshot may take a while. Do you want to continue?
STR_MESSAGE_HEIGHTMAP_SUCCESSFULLY :{WHITE}Heightmap successfully saved as '{STRING}'. Highest peak is {NUM}
STR_MESSAGE_SCREENSHOT_SUCCESSFULLY :{WHITE}Screenshot successfully saved as '{STRING}'
STR_ERROR_SCREENSHOT_FAILED :{WHITE}Screenshot failed!

View File

@@ -952,6 +952,8 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Ekrana m
STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Elektu uzotan ekranan montrograndon
STR_GAME_OPTIONS_RESOLUTION_OTHER :alia
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Interfacgrandeco
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :Normala
@@ -960,6 +962,8 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Kvaroble grande
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Baza grafikaro
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Selektu la uzendan bazgrafikaron
STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} mankanta{P "" j}/koruptita{P "" j} dosiero{P "" j}
@@ -1367,6 +1371,8 @@ STR_CONFIG_SETTING_QUERY_CAPTION :{WHITE}Ŝanĝu
# Config errors
# Video initalization errors
# Intro window
STR_INTRO_CAPTION :{WHITE}OpenTTD {REV}
@@ -1856,6 +1862,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD
STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Jes, elŝuti la grafikojn
STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Ne, fermi OpenTTD
# Transparency settings window
STR_TRANSPARENCY_CAPTION :{WHITE}Ebloj por travidebleco
STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Baskuligi travideblecon de signoj. Ctrl+Klak por ŝlosi
@@ -2271,9 +2278,6 @@ STR_MAPGEN_BY :{BLACK}*
STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}Kiom da urboj:
STR_MAPGEN_DATE :{BLACK}Dato:
STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Kiom da industrioj:
STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Neĝlinia alteco:
STR_MAPGEN_SNOW_LINE_UP :{BLACK}Altigu la neĝlinion per unu
STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Malaltigu la neĝlinion per unu
STR_MAPGEN_LAND_GENERATOR :{BLACK}Landgenerilo:
STR_MAPGEN_TERRAIN_TYPE :{BLACK}Terentipo:
STR_MAPGEN_QUANTITY_OF_SEA_LAKES :{BLACK}Marnivelo:
@@ -2299,7 +2303,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Mapa nom
STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Grandeco:
STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM}
STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Ŝanĝu altecon de la neĝlinio
STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Ŝanĝu komencjaron
# SE Map generation

View File

@@ -173,7 +173,7 @@ STR_QUANTITY_WHEAT :{WEIGHT_LONG} n
STR_QUANTITY_RUBBER :{VOLUME_LONG} kummi
STR_QUANTITY_SUGAR :{WEIGHT_LONG} suhkrut
STR_QUANTITY_TOYS :{COMMA} mänguas{P i ja}
STR_QUANTITY_SWEETS :{COMMA} kontitäi{P s t} maiustusi
STR_QUANTITY_SWEETS :{COMMA}{NBSP}kotitäi{P s t} maiustusi
STR_QUANTITY_COLA :{VOLUME_LONG} koolat
STR_QUANTITY_CANDYFLOSS :{WEIGHT_LONG} suhkruvatti
STR_QUANTITY_BUBBLES :{COMMA} mull{P "" i}
@@ -315,7 +315,7 @@ STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT :{BLACK}Näita p
STR_SHOW_HIDDEN_ENGINES_VEHICLE_TRAIN_TOOLTIP :{BLACK}Selle nupu lubamisega kuvatakse ka peidetud rongid
STR_SHOW_HIDDEN_ENGINES_VEHICLE_ROAD_VEHICLE_TOOLTIP :{BLACK}Selle nupu lubamisega kuvatakse ka peidetud sõidukid
STR_SHOW_HIDDEN_ENGINES_VEHICLE_SHIP_TOOLTIP :{BLACK}Selle nupu lubamisega kuvatakse ka peidetud laevad
STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT_TOOLTIP :{BLACK}Selle nupu lubamisega kuvatakse ka peidetud lennukid
STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT_TOOLTIP :{BLACK}Selle nupu lubamisega kuvatakse ka peidetud õhusõidukeid
# Query window
STR_BUTTON_DEFAULT :{BLACK}Esialgne
@@ -485,7 +485,7 @@ STR_GRAPH_MENU_OPERATING_PROFIT_GRAPH :Opereerimiskasu
STR_GRAPH_MENU_INCOME_GRAPH :Tulugraafik
STR_GRAPH_MENU_DELIVERED_CARGO_GRAPH :Äraveetud kauba graafik
STR_GRAPH_MENU_PERFORMANCE_HISTORY_GRAPH :Tegevustulemuste graafik
STR_GRAPH_MENU_COMPANY_VALUE_GRAPH :Firmaväärtuse graafik
STR_GRAPH_MENU_COMPANY_VALUE_GRAPH :Firmaväärtuste graafik
STR_GRAPH_MENU_CARGO_PAYMENT_RATES :Veotasude määrad
############ range ends here
@@ -542,7 +542,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 :AI/GameScripti debugimine
STR_ABOUT_MENU_SCREENSHOT :Kuvapaugutus
STR_ABOUT_MENU_SCREENSHOT :Ekraanipilt
STR_ABOUT_MENU_SHOW_FRAMERATE :Näita kaadrisagedust
STR_ABOUT_MENU_ABOUT_OPENTTD :'OpenTTD' kohta
STR_ABOUT_MENU_SPRITE_ALIGNER :Sprite aligner
@@ -616,18 +616,18 @@ STR_MONTH_ABBREV_OCT :okt
STR_MONTH_ABBREV_NOV :nov
STR_MONTH_ABBREV_DEC :dets
STR_MONTH_JAN :Jaanuar
STR_MONTH_FEB :Veebruar
STR_MONTH_MAR :Märts
STR_MONTH_APR :Aprill
STR_MONTH_MAY :Mai
STR_MONTH_JUN :Juuni
STR_MONTH_JUL :Juuli
STR_MONTH_AUG :August
STR_MONTH_SEP :September
STR_MONTH_OCT :Oktoober
STR_MONTH_NOV :November
STR_MONTH_DEC :Detsember
STR_MONTH_JAN :jaanuar
STR_MONTH_FEB :veebruar
STR_MONTH_MAR :märts
STR_MONTH_APR :aprill
STR_MONTH_MAY :mai
STR_MONTH_JUN :juuni
STR_MONTH_JUL :juuli
STR_MONTH_AUG :august
STR_MONTH_SEP :september
STR_MONTH_OCT :oktoober
STR_MONTH_NOV :november
STR_MONTH_DEC :detsember
############ range for months ends
# Graph window
@@ -642,7 +642,7 @@ STR_GRAPH_OPERATING_PROFIT_CAPTION :{WHITE}Opereeri
STR_GRAPH_INCOME_CAPTION :{WHITE}Tulugraafik
STR_GRAPH_CARGO_DELIVERED_CAPTION :{WHITE}Äraveetud kaubaühikute arv
STR_GRAPH_COMPANY_PERFORMANCE_RATINGS_CAPTION :{WHITE}Ettevõtte tegevushinnang (suurim hinnang saab olla 1000)
STR_GRAPH_COMPANY_VALUES_CAPTION :{WHITE}Firmaväärtus
STR_GRAPH_COMPANY_VALUES_CAPTION :{WHITE}Firmaväärtused
STR_GRAPH_CARGO_PAYMENT_RATES_CAPTION :{WHITE}Veotariifid
STR_GRAPH_CARGO_PAYMENT_RATES_X_LABEL :{TINY_FONT}{BLACK}Teelolekuaeg päevades
@@ -860,7 +860,7 @@ STR_NEWS_TRAIN_CRASH :{BIG_FONT}{BLAC
STR_NEWS_ROAD_VEHICLE_CRASH_DRIVER :{BIG_FONT}{BLACK}Rongikokkupõrge!{}Juht hukkus kokkupõrgest põhjustatud tulekeras
STR_NEWS_ROAD_VEHICLE_CRASH :{BIG_FONT}{BLACK}Mootorsõiduki kokkupõrge rongiga!{}{COMMA} inimest suri õnnetuses
STR_NEWS_AIRCRAFT_CRASH :{BIG_FONT}{BLACK}Lennuõnnetus!{}{COMMA} hukkus tules. {STATION} suletud.
STR_NEWS_PLANE_CRASH_OUT_OF_FUEL :{BIG_FONT}{BLACK}Lennuõnnetus!{}Lennukil lõppes kütus, {COMMA} surid tules!
STR_NEWS_PLANE_CRASH_OUT_OF_FUEL :{BIG_FONT}{BLACK}Lennuõnnetus!{}Õhusõidukil lõppes kütus, {COMMA} tulekeras hukkunut
STR_NEWS_DISASTER_ZEPPELIN :{BIG_FONT}{BLACK}Tsepeliini õnnetus {STATION}s!
STR_NEWS_DISASTER_SMALL_UFO :{BIG_FONT}{BLACK}Mootorsõiduk plahvatas kokkupõrkes 'UFO-ga'!
@@ -871,7 +871,7 @@ STR_NEWS_DISASTER_COAL_MINE_SUBSIDENCE :{BIG_FONT}{BLAC
STR_NEWS_DISASTER_FLOOD_VEHICLE :{BIG_FONT}{BLACK}Üleujutused!{}Vähemalt {COMMA} kadunut arvatakse surnuks peale olulist üleujutust!
STR_NEWS_COMPANY_IN_TROUBLE_TITLE :{BIG_FONT}{BLACK}Ettevõttel on probleeme!
STR_NEWS_COMPANY_IN_TROUBLE_DESCRIPTION :{BIG_FONT}{BLACK}Ettevõte {STRING} müüakse maha ja kuulutatakse pankrot, kui tulemused peatselt ei parane!
STR_NEWS_COMPANY_IN_TROUBLE_DESCRIPTION :{BIG_FONT}{BLACK}Ettevõte {STRING} müüakse maha või kuulutatakse pankrotistunuks, kui tulemused peatselt ei parane!
STR_NEWS_COMPANY_MERGER_TITLE :{BIG_FONT}{BLACK}Ettevõtete ühinemine!
STR_NEWS_COMPANY_MERGER_DESCRIPTION :{BIG_FONT}{BLACK}{STRING} müüdi ettevõttele {STRING} {CURRENCY_LONG} eest!
STR_NEWS_COMPANY_BANKRUPT_TITLE :{BIG_FONT}{BLACK}Pankrot!
@@ -907,7 +907,7 @@ STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_SMOOTH :{BIG_FONT}{BLAC
STR_NEWS_TRAIN_IS_WAITING :{WHITE}{VEHICLE} ootab depoos
STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE} ootab depoos
STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} ootab depoos
STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} ootab lennukiangaaris
STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} ootab õhusõidukiangaaris
# Order review system / warnings
STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE}: graafikus pole piisavalt korraldusi
@@ -1004,6 +1004,7 @@ STR_GAME_OPTIONS_CURRENCY_CNY :Hiina renminbi
STR_GAME_OPTIONS_CURRENCY_HKD :Hong Kongi dollar (HKD)
STR_GAME_OPTIONS_CURRENCY_INR :India ruupia (INR)
STR_GAME_OPTIONS_CURRENCY_IDR :Indoneesia ruupia (IDR)
STR_GAME_OPTIONS_CURRENCY_MYR :Malaisia ringit (MYR)
############ end of currency region
STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_LEFT :Vasakpoolne liiklus
@@ -1013,10 +1014,10 @@ STR_GAME_OPTIONS_TOWN_NAMES_FRAME :{BLACK}Asulate
STR_GAME_OPTIONS_TOWN_NAMES_DROPDOWN_TOOLTIP :{BLACK}Vali asulanimede stiil
############ start of townname region
STR_GAME_OPTIONS_TOWN_NAME_ORIGINAL_ENGLISH :Inglise (originaalne)
STR_GAME_OPTIONS_TOWN_NAME_ORIGINAL_ENGLISH :Inglise (algne)
STR_GAME_OPTIONS_TOWN_NAME_FRENCH :Prantsusmaa
STR_GAME_OPTIONS_TOWN_NAME_GERMAN :Saksamaa
STR_GAME_OPTIONS_TOWN_NAME_ADDITIONAL_ENGLISH :Inglise (Lisa)
STR_GAME_OPTIONS_TOWN_NAME_ADDITIONAL_ENGLISH :Inglise (täiendatud)
STR_GAME_OPTIONS_TOWN_NAME_LATIN_AMERICAN :Ladina-Ameerika
STR_GAME_OPTIONS_TOWN_NAME_SILLY :Tobedad
STR_GAME_OPTIONS_TOWN_NAME_SWEDISH :Rootsi
@@ -1056,6 +1057,12 @@ STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}Märgi s
STR_GAME_OPTIONS_RESOLUTION :{BLACK}Ekraanilahutus
STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Ekraanilahutuse valimine
STR_GAME_OPTIONS_RESOLUTION_OTHER :muu
STR_GAME_OPTIONS_RESOLUTION_ITEM :{NUM}x{NUM}
STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Riistvarakiirendus
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Märkides selle ruudu, lubad OpenTTD-l üritada kasutada riistvarakiirendust. Muudetud seade omab mõju pärast mängu taaskäivitust
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}Seade omab mõju alles pärast mängu taaskäivitust
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Liidese suurus
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Vali kasutatav liideseelementide suurus
@@ -1073,6 +1080,14 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Tavaline
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Topeltsuurus
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Neljakordne suurus
STR_GAME_OPTIONS_GRAPHICS :{BLACK}Graafika
STR_GAME_OPTIONS_REFRESH_RATE :{BLACK}Ekraani värskendussagedus
STR_GAME_OPTIONS_REFRESH_RATE_TOOLTIP :{BLACK}Vali, mis värskendussagedust kasutada
STR_GAME_OPTIONS_REFRESH_RATE_OTHER :muu
STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}Hz
STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE}Värskendussagedused üle 60Hz võivad jõudlusele löögi anda.
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Lähtegraafikakogu
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Valib kasutatava lähtegraafikakogu
STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} puuduv{P "" ad}/viga{P ne sed} fail{P "" id}
@@ -1167,6 +1182,8 @@ STR_TERRAIN_TYPE_FLAT :Tasane
STR_TERRAIN_TYPE_HILLY :Künklik
STR_TERRAIN_TYPE_MOUNTAINOUS :Mägine
STR_TERRAIN_TYPE_ALPINIST :Alpinist
STR_TERRAIN_TYPE_CUSTOM :Määratud kõrgus
STR_TERRAIN_TYPE_CUSTOM_VALUE :Määratud kõrgus ({NUM})
STR_CITY_APPROVAL_PERMISSIVE :Soodustav
STR_CITY_APPROVAL_TOLERANT :Salliv
@@ -1181,14 +1198,14 @@ STR_CONFIG_SETTING_EXPAND_ALL :{BLACK}Ava kõi
STR_CONFIG_SETTING_COLLAPSE_ALL :{BLACK}Sulge kõik
STR_CONFIG_SETTING_NO_EXPLANATION_AVAILABLE_HELPTEXT :(seletus puudub)
STR_CONFIG_SETTING_DEFAULT_VALUE :{LTBLUE}Vaikeväärtus: {ORANGE}{STRING}
STR_CONFIG_SETTING_TYPE :{LTBLUE}Seade rühm: {ORANGE}{STRING}
STR_CONFIG_SETTING_TYPE_CLIENT :Kliendi seade (ei salvestu koos mänguga; mõjutab kõiki mänge)
STR_CONFIG_SETTING_TYPE :{LTBLUE}Seade liik: {ORANGE}{STRING}
STR_CONFIG_SETTING_TYPE_CLIENT :Kliendiseade (ei salvestu koos mänguga; mõjutab kõiki mänge)
STR_CONFIG_SETTING_TYPE_GAME_MENU :Mängu seade (salvestub koos mänguga; mõjutab ainult uusi mänge)
STR_CONFIG_SETTING_TYPE_GAME_INGAME :Mängu seaded (hoitakse salvestuses; mõjutab ainult praegust mängu)
STR_CONFIG_SETTING_TYPE_COMPANY_MENU :Ettevõtte seaded (hoitakse salvestuses; mõjutab ainult uusi mänge)
STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :Ettevõtte seaded (hoitakse salvestuses; mõjutab ainult praegust ettevõtet)
STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}Rühm:
STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}Jagu:
STR_CONFIG_SETTING_RESTRICT_TYPE :{BLACK}Liik:
STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Piirab varem tehtud filtridega alljärgnevat loendit
STR_CONFIG_SETTING_RESTRICT_BASIC :Põhilised (kuva vaid tähtsad seaded)
@@ -1199,7 +1216,7 @@ STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_NEW :Uue mängu sead
STR_CONFIG_SETTING_TYPE_DROPDOWN_HELPTEXT :{BLACK}Piirab allolevat nimekirja valitud sätte tüübi järgi
STR_CONFIG_SETTING_TYPE_DROPDOWN_ALL :Kõik seadistused
STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT :Kliendi seade (ei salvestu koos mänguga; mõjutab kõiki mänge)
STR_CONFIG_SETTING_TYPE_DROPDOWN_CLIENT :Kliendiseade (ei salvestu koos mänguga; mõjutab kõiki mänge)
STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_MENU :Mängu seaded (hoitakse salvestuses; mõjutab ainult uusi mänge)
STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Mängu seaded (hoitakse salvestuses; mõjutab ainult praegust mängu)
STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Firma seaded (hoitakse salvestuses; mõjutab ainult uusi mänge)
@@ -1225,7 +1242,7 @@ STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Vasakul
STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Keskel
STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Paremal
STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Stardilaenu ülempiir: {STRING}
STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Stardilaenu ülempiirang: {STRING}
STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Suurim summa, mida ettevõte saab laenata (arvestamata inflatsiooni)
STR_CONFIG_SETTING_INTEREST_RATE :Intressimäär: {STRING}
STR_CONFIG_SETTING_INTEREST_RATE_HELPTEXT :Laenu intressimäär; ühtlasi juhib inflatsiooni, kui inflatsioon on aktiveeritud
@@ -1248,9 +1265,11 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Lülita sisse/v
STR_CONFIG_SETTING_CITY_APPROVAL :Astuse omavalitsuse suhtumine pinnase restruktureerimisse: {STRING}
STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Vali kui suurt mõju tekitavad müra ning keskkonna muudatused ettevõtte mainele ja edasistele ehitustoimingutele antud piirkonnas
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :Kaardi ülemkõrgus: {STRING}
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :Sea kaardil paiknevatele mägedele ülemine kõrguspiir
STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}Kaardi maksimaalset kõrgust pole sellisele kõrgusele võimalik sätestada. Vähemalt üks mägi on antud kõrgusest suurem.
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT :Kaardi kõrguspiir: {STRING}
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_HELPTEXT :Määra ülempiir kaardil oleva maastiku kõrgusele. "(Auto)" leiab sobiva väärtuse pärast, kui maastik on tekitatud
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_VALUE :{NUM}
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_AUTO :(auto)
STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}Sellist väärtust ei saa kaardi kõrguspiirile anda. Vähemalt üks mägi kaardil on kõrgem
STR_CONFIG_SETTING_AUTOSLOPE :Maastikukujundus majade, rööbaste jms. all (autoslope): {STRING}
STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Lase maja- ja rööpaalust maad kujundada ilma neid eemaldamata
STR_CONFIG_SETTING_CATCHMENT :Reaalsemad veekogud: {STRING}
@@ -1259,8 +1278,8 @@ STR_CONFIG_SETTING_SERVE_NEUTRAL_INDUSTRIES :Ettevõtte jaam
STR_CONFIG_SETTING_SERVE_NEUTRAL_INDUSTRIES_HELPTEXT :Kui lubatud, saavad liidetud jaamaga tööstuseid (nagu naftaplatvormid) teenindada ka lähedalolevad ettevõttele kuuluvad jaamad. Muidu võivad neid tööstuseid teenindada vaid nendega liidetud jaamad. Lähedale ehitatud ettevõtte jaamad neid teenindada ei saa, ning liidetud jaamad ei teeninda teisi tööstuseid
STR_CONFIG_SETTING_EXTRADYNAMITE :Asulateede, -sildade, -tunnelite jne lammutamine: {STRING}
STR_CONFIG_SETTING_EXTRADYNAMITE_HELPTEXT :Lihtsusta asulatele kuuluva taristu ja hoonete eemaldamist
STR_CONFIG_SETTING_TRAIN_LENGTH :Rongi pikkuse ülempiir: {STRING}
STR_CONFIG_SETTING_TRAIN_LENGTH_HELPTEXT :Määrab rongide pikkuse ülempiiri
STR_CONFIG_SETTING_TRAIN_LENGTH :Rongipikkuse ülempiirang: {STRING}
STR_CONFIG_SETTING_TRAIN_LENGTH_HELPTEXT :Määrab rongide pikkusele ülempiirangu
STR_CONFIG_SETTING_TILE_LENGTH :{COMMA} ruut{P 0 "" u}
STR_CONFIG_SETTING_SMOKE_AMOUNT :Vedurisuitsu ja -sädemete hulk: {STRING}
STR_CONFIG_SETTING_SMOKE_AMOUNT_HELPTEXT :Määra kui palju suitsu või sädemeid eraldub sõidukist
@@ -1326,7 +1345,7 @@ STR_CONFIG_SETTING_ALLOW_GIVE_MONEY :Raha saatmine t
STR_CONFIG_SETTING_ALLOW_GIVE_MONEY_HELPTEXT :Luba mitmikmängus kanda raha erinevate ettevõtete vahel
STR_CONFIG_SETTING_FREIGHT_TRAINS :Raskete rongide simuleerimiseks kasutatav raskustegur: {STRING}
STR_CONFIG_SETTING_FREIGHT_TRAINS_HELPTEXT :Seadke kaupa vedavate rongide mõju. Suurem väärtus muudab kauba vedamise rongide jaoks raskemaks, eriti mägedes
STR_CONFIG_SETTING_PLANE_SPEED :Kiiruse tegur lennukitele: {STRING}
STR_CONFIG_SETTING_PLANE_SPEED :Lennukite kiiruskordaja: {STRING}
STR_CONFIG_SETTING_PLANE_SPEED_HELPTEXT :Määra suhteline kiirus lennukitele võrreldes teiste sõiduki tüüpidega, et vähendada lennukite sissetulekut
STR_CONFIG_SETTING_PLANE_SPEED_VALUE :1 / {COMMA}
STR_CONFIG_SETTING_PLANE_CRASHES :Lennuõnnetusi: {STRING}
@@ -1395,6 +1414,12 @@ STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Maksimaalne kau
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Naftatöötlemistehased ehitatakse ainult kaardi piirile, see on rannikul saartega mängitaval kaardil.
STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Lumepiiri kõrgus: {STRING}
STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Määra, millisel kõrgusel algab sub-arktiline maastik. Lumi mõjutab ka tööstuste loomist ja asulate kasvamise nõudeid
STR_CONFIG_SETTING_SNOW_COVERAGE :Lumekatvus: {STRING}
STR_CONFIG_SETTING_SNOW_COVERAGE_HELPTEXT :Mõjutab umbkaudset lume osakaalu lähisartikilisel maastikul. Lumi mõjutab ka tööstuste tekitamist ja asulate kasvuvajadusi. Kasutatakse vaid kaardi tekitamisel. Vahetult merepiiri kohal on maa alati lumevaba
STR_CONFIG_SETTING_SNOW_COVERAGE_VALUE :{NUM}%
STR_CONFIG_SETTING_DESERT_COVERAGE :Kõrbekatvus: {STRING}
STR_CONFIG_SETTING_DESERT_COVERAGE_HELPTEXT :Mõjuta umbkaudset kõrbe osakaalu troopilisel maastikul. Kõrb mõjutab ka tööstuste tekitamist. Kasutatakse vaid kaardi tekitamisel
STR_CONFIG_SETTING_DESERT_COVERAGE_VALUE :{NUM}%
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Maastiku järskus (ainult TerraGenesis) : {STRING}
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(TerraGenesis only) Vali mägede tihedus: Laugetel maastikel on vähem, laiema ulatusega mägesid. Mägistel maastikel on palju mägesid, mis võivad näha välja samasugused
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Väga lauge
@@ -1412,15 +1437,15 @@ STR_CONFIG_SETTING_TREE_PLACER_ORIGINAL :Algupärane
STR_CONFIG_SETTING_TREE_PLACER_IMPROVED :Täiustatud
STR_CONFIG_SETTING_ROAD_SIDE :Sõidukid: {STRING}
STR_CONFIG_SETTING_ROAD_SIDE_HELPTEXT :Vali liikluse suund
STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Kõrgustekaardi pööramine: {STRING}
STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Vastu-päevapidi
STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Päevapidi
STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Kõrguskaardi pööre: {STRING}
STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Vastupäeva
STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_CLOCKWISE :Päripäeva
STR_CONFIG_SETTING_SE_FLAT_WORLD_HEIGHT :Kõrguse level kui kõrgele lapik kaart läheb: {STRING}
STR_CONFIG_SETTING_EDGES_NOT_EMPTY :{WHITE}Üks või enam ruutu põhjaäärel pole tühjad
STR_CONFIG_SETTING_EDGES_NOT_WATER :{WHITE}Üks või enam ääreruutu pole vesi
STR_CONFIG_SETTING_STATION_SPREAD :Jaama küljepikkuse ülempiir: {STRING}
STR_CONFIG_SETTING_STATION_SPREAD_HELPTEXT :Jaama ühe külje pikkuse ülempiir. Suur väärtus teeb mängu aeglaseks
STR_CONFIG_SETTING_STATION_SPREAD :Jaama küljepikkuse ülempiirang: {STRING}
STR_CONFIG_SETTING_STATION_SPREAD_HELPTEXT :Jaama ühe külje pikkuse ülempiirang. Suur väärtus teeb mängu aeglaseks
STR_CONFIG_SETTING_SERVICEATHELIPAD :Automaatne helikopterihooldus maandumisplatsidel: {STRING}
STR_CONFIG_SETTING_SERVICEATHELIPAD_HELPTEXT :Hoolda helikoptereid peale igat maandumist, isegi kui lennujaamas pole depood
STR_CONFIG_SETTING_LINK_TERRAFORM_TOOLBAR :Maastikuriba sidumine rööbas-, maa-, vee- ja lennuväljaribadega: {STRING}
@@ -1510,6 +1535,10 @@ STR_CONFIG_SETTING_EXPENSES_LAYOUT :Kulutuste jaota
STR_CONFIG_SETTING_EXPENSES_LAYOUT_HELPTEXT :Määrab rahavoogude aruande ülesehituse
STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS :Rööbastee ehitamisel on signaalid isekõrvalduvad: {STRING}
STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS_HELPTEXT :Rööbastee ehitamisel kõrvaldatakse ette jäävad signaalid automaatselt. Silmas pidada, et see võib põhjustada rongide kokkupõrkeid.
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT :Kiirendatud mängu kiiruspiirang: {STRING}
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_HELPTEXT :Piira mängukiirust, kui mäng on kiirendatud. 0 = piiramatu (nii kiire, kui arvuti võimaldab). Väärtused alla 100% aeglustavad mängu. Kõrgeim kiirus sõltub arvutiomadustest, ning võib mänguti erineda.
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_VAL :{NUM}% harilikust mängukiirusest
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_ZERO :Piiramatu (nii kiire, kui arvuti võimaldab)
STR_CONFIG_SETTING_SOUND_TICKER :Lühiteadetes: {STRING}
STR_CONFIG_SETTING_SOUND_TICKER_HELPTEXT :Lühiteate ilmumisel kostub helisignaal
@@ -1530,21 +1559,21 @@ STR_CONFIG_SETTING_SOUND_AMBIENT_HELPTEXT :Maastikult, tö
STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING :Sobivate sõidukite puudumisel on taristu ehitamine keelatud: {STRING}
STR_CONFIG_SETTING_DISABLE_UNSUITABLE_BUILDING_HELPTEXT :Sisse lülitamisel on taristu ehitamine võimalik ainult juhul, kui sellega seonduvad sõidukid on juba saadaval. Väldib mõttetut raha ja aja kulu, kui ehitatakse taristu, mida ei saa kasutada
STR_CONFIG_SETTING_MAX_TRAINS :Ettevõtte rongide ülempiir: {STRING}
STR_CONFIG_SETTING_MAX_TRAINS_HELPTEXT :Ettevõttele kuuluvate rongide arvu ülempiir
STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :Ettevõtte mootorsõidukite ülempiir: {STRING}
STR_CONFIG_SETTING_MAX_ROAD_VEHICLES_HELPTEXT :Ettevõttele kuuluvate mootorsõidukite arvu ülempiir
STR_CONFIG_SETTING_MAX_AIRCRAFT :Ettevõtte õhusõidukite ülempiir: {STRING}
STR_CONFIG_SETTING_MAX_AIRCRAFT_HELPTEXT :Ettevõttele kuuluvate lennukite arvu ülempiir
STR_CONFIG_SETTING_MAX_SHIPS :Ettevõtte laevade ülempiir: {STRING}
STR_CONFIG_SETTING_MAX_SHIPS_HELPTEXT :Ettevõttele kuuluvate laevade arvu ülempiir
STR_CONFIG_SETTING_MAX_TRAINS :Ettevõtte rongide ülempiirang: {STRING}
STR_CONFIG_SETTING_MAX_TRAINS_HELPTEXT :Ettevõttele kuuluvate rongide arvu ülempiirang
STR_CONFIG_SETTING_MAX_ROAD_VEHICLES :Ettevõtte mootorsõidukite ülempiirang: {STRING}
STR_CONFIG_SETTING_MAX_ROAD_VEHICLES_HELPTEXT :Ettevõttele kuuluvate mootorsõidukite arvu ülempiirang
STR_CONFIG_SETTING_MAX_AIRCRAFT :Ettevõtte õhusõidukite ülempiirang: {STRING}
STR_CONFIG_SETTING_MAX_AIRCRAFT_HELPTEXT :Ettevõttele kuuluvate lennukite arvu ülempiirang
STR_CONFIG_SETTING_MAX_SHIPS :Ettevõtte laevade ülempiirang: {STRING}
STR_CONFIG_SETTING_MAX_SHIPS_HELPTEXT :Ettevõttele kuuluvate laevade arvu ülempiirang
STR_CONFIG_SETTING_AI_BUILDS_TRAINS :Rongikeeld arvutile: {STRING}
STR_CONFIG_SETTING_AI_BUILDS_TRAINS_HELPTEXT :Selle seade sisse lülitamise korral ei ole arvuti juhitud mängijal lubatud rongide ehitamine
STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES :Sõidukikeeld arvutile: {STRING}
STR_CONFIG_SETTING_AI_BUILDS_ROAD_VEHICLES_HELPTEXT :Selle seade sisse lülitamise korral ei ole arvuti juhitud mängijal lubatud veokite ehitamine
STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT :Õhusõidukikeeld arvutile: {STRING}
STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT_HELPTEXT :Selle seade sisse lülitamise korral ei ole arvuti juhitud mängijal lubatud lennukite ehitamine
STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT_HELPTEXT :Selle seade sisse lülitamise korral ei ole arvuti juhitud mängijal lubatud õhusõidukite ehitamine
STR_CONFIG_SETTING_AI_BUILDS_SHIPS :Laevakeeld arvutile: {STRING}
STR_CONFIG_SETTING_AI_BUILDS_SHIPS_HELPTEXT :Selle seade sisse lülitamise korral ei ole arvuti juhitud mängijal lubatud laevade ehitamine
@@ -1570,7 +1599,7 @@ STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA} päev{P
STR_CONFIG_SETTING_SERVINT_DISABLED :Väljas
STR_CONFIG_SETTING_SERVINT_ROAD_VEHICLES :Mootorsõiduki hooldusvälba vaikeväärtus: {STRING}
STR_CONFIG_SETTING_SERVINT_ROAD_VEHICLES_HELPTEXT :Määrab uute mootorsõidukite hooldusvälba, kui sõidukile eraldi hooldusvälpa ei määrata
STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Lennuki hooldusvälba vaikeväärtus: {STRING}
STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Õhusõidukite hooldusvälba vaikeväärtus: {STRING}
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Määrab uute õhusõidukite hooldusvälba, kui sõidukile eraldi hooldusvälpa ei määrata
STR_CONFIG_SETTING_SERVINT_SHIPS :Laevade hooldusvälba vaikeväärtus: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Määrab uute laevade hooldusvälba, kui sõidukile eraldi hooldusvälpa ei määrata
@@ -1692,20 +1721,25 @@ STR_CONFIG_SETTING_SNAP_RADIUS :Akende haardumi
STR_CONFIG_SETTING_SNAP_RADIUS_HELPTEXT :Akendevaheline kaugus, enne, kui liigutatav aken joondatakse kõrvalakendega
STR_CONFIG_SETTING_SNAP_RADIUS_VALUE :{COMMA} piks{P 0 el lit}
STR_CONFIG_SETTING_SNAP_RADIUS_DISABLED :Väljas
STR_CONFIG_SETTING_SOFT_LIMIT :Suletavate akende arvu ülempiir: {STRING}
STR_CONFIG_SETTING_SOFT_LIMIT :Suletavate akende arvu ülempiirang: {STRING}
STR_CONFIG_SETTING_SOFT_LIMIT_HELPTEXT :Suletavate akende arv, enne, kui vanad aknad suletakse, et uutele akendele ruumi teha
STR_CONFIG_SETTING_SOFT_LIMIT_VALUE :{COMMA}
STR_CONFIG_SETTING_SOFT_LIMIT_DISABLED :väljas
STR_CONFIG_SETTING_ZOOM_MIN :Suurim suurendusaste: {STRING}
STR_CONFIG_SETTING_ZOOM_MIN_HELPTEXT :Vaateakna suurendusastme ülempiir. Kõrgete suurendusastmete lubamisega kaasneb suurem vahemälu kasutamine
STR_CONFIG_SETTING_ZOOM_MIN_HELPTEXT :Vaateakna suurendusastme ülempiirang. Kõrgete suurendusastmete lubamisega kaasneb suurem vahemälu kasutamine
STR_CONFIG_SETTING_ZOOM_MAX :Väikseim suurendusaste: {STRING}
STR_CONFIG_SETTING_ZOOM_MAX_HELPTEXT :Vaateakna suurendusastme alampiir. Madalate suurendusastmete kasutamine võib põhjustata viivitusi
STR_CONFIG_SETTING_SPRITE_ZOOM_MIN :Sprite'ide ekraanilahutus kuni: {STRING}
STR_CONFIG_SETTING_SPRITE_ZOOM_MIN_HELPTEXT :Piirab ekraanilahutust, mida sprite'ide jaoks kasutatakse. Sprite'ide ekraanilahutust piirates ei kasutata kõrge ekraanilahutusega graafikat ka siis, kui see on saadaval. Võib aidata ühtsustada mängu väljanägemist, kui osad GRF failid on kõrge ekraanilahutusega ja teised mitte.
STR_CONFIG_SETTING_ZOOM_LVL_MIN :4x
STR_CONFIG_SETTING_ZOOM_LVL_IN_2X :2x
STR_CONFIG_SETTING_ZOOM_LVL_NORMAL :Tavaline
STR_CONFIG_SETTING_ZOOM_LVL_OUT_2X :2x
STR_CONFIG_SETTING_ZOOM_LVL_OUT_4X :4x
STR_CONFIG_SETTING_ZOOM_LVL_OUT_8X :8x
STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_MIN :4x
STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_IN_2X :2x
STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_NORMAL :1x
STR_CONFIG_SETTING_TOWN_GROWTH :Asulate kasvutempo: {STRING}
STR_CONFIG_SETTING_TOWN_GROWTH_HELPTEXT :Asulate kasvutempo
STR_CONFIG_SETTING_TOWN_GROWTH_NONE :Pole
@@ -1837,7 +1871,11 @@ STR_CONFIG_ERROR_INVALID_BASE_GRAPHICS_NOT_FOUND :{WHITE}... eira
STR_CONFIG_ERROR_INVALID_BASE_SOUNDS_NOT_FOUND :{WHITE}... eiratakse lähtehelikogu «{STRING}»: ei leitud
STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... eiratakse lähtemuusikakogu «{STRING}»: ei leitud
STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Vahemälu on täis
STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Pildipuhvri (ingl k «spritecache») suurendamine {BYTES} võrra ebaõnnestus. Pildipuhvri uus suurus on {BYTES}. Seetõttu on OpenTTD nüüd aeglasem. 32 bpp graafika keelamine ja suurendusastme ülempiiri vähendamine piirab vahemälu tarbimist
STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Pildipuhvri (ingl k «spritecache») suurendamine {BYTES} võrra ebaõnnestus. Pildipuhvri uus suurus on {BYTES}. Seetõttu on OpenTTD nüüd aeglasem. 32 bpp graafika keelamine ja suurendusastme ülempiirangu vähendamine piirab vahemälu tarbimist
# Video initalization errors
STR_VIDEO_DRIVER_ERROR :{WHITE}Videoseadete viga...
STR_VIDEO_DRIVER_ERROR_NO_HARDWARE_ACCELERATION :{WHITE}... ei leitud ühilduvat GPU-d. Riistvarakiirendus väljalülitatud
# Intro window
STR_INTRO_CAPTION :{WHITE}OpenTTD {REV}
@@ -1865,7 +1903,7 @@ STR_INTRO_TOOLTIP_SCENARIO_EDITOR :{BLACK}Loo oma
STR_INTRO_TOOLTIP_MULTIPLAYER :{BLACK}Alusta mitmikmängu
STR_INTRO_TOOLTIP_TEMPERATE :{BLACK}Vali 'parasvöötme' maastik
STR_INTRO_TOOLTIP_SUB_ARCTIC_LANDSCAPE :{BLACK}Vali 'lähispolaarne' maastik
STR_INTRO_TOOLTIP_SUB_ARCTIC_LANDSCAPE :{BLACK}Vali 'lähisarktiline' maastik
STR_INTRO_TOOLTIP_SUB_TROPICAL_LANDSCAPE :{BLACK}Vali 'lähistroopiline' maastik
STR_INTRO_TOOLTIP_TOYLAND_LANDSCAPE :{BLACK}Vali 'mänguasjamaa' maastik
@@ -1903,7 +1941,7 @@ STR_CHEAT_NO_JETCRASH :{LTBLUE}Reaktii
STR_CHEAT_EDIT_MAX_HL :{LTBLUE}Muuda kaardi ülemkõrgust {ORANGE}{NUM}
STR_CHEAT_EDIT_MAX_HL_QUERY_CAPT :{WHITE}Muuda kaardil olevate mägede ülemkõrgust
STR_CHEAT_SWITCH_CLIMATE_TEMPERATE_LANDSCAPE :Parasvöötme maastik
STR_CHEAT_SWITCH_CLIMATE_SUB_ARCTIC_LANDSCAPE :Arktiline maastik
STR_CHEAT_SWITCH_CLIMATE_SUB_ARCTIC_LANDSCAPE :Lähisarktiline maastik
STR_CHEAT_SWITCH_CLIMATE_SUB_TROPICAL_LANDSCAPE :Troopiline maastik
STR_CHEAT_SWITCH_CLIMATE_TOYLAND_LANDSCAPE :Mänguasjamaa
STR_CHEAT_CHANGE_DATE :{LTBLUE}Muuda kuupäeva: {ORANGE} {DATE_SHORT}
@@ -1917,7 +1955,7 @@ STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Näita
STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Näita rongide värvistikke
STR_LIVERY_ROAD_VEHICLE_TOOLTIP :{BLACK}Näita mootorsõidukite värvistikke
STR_LIVERY_SHIP_TOOLTIP :{BLACK}Näita laevavärvistikke
STR_LIVERY_AIRCRAFT_TOOLTIP :{BLACK}Näita lennukivärvistikke
STR_LIVERY_AIRCRAFT_TOOLTIP :{BLACK}Näita õhusõidukite värvistikke
STR_LIVERY_PRIMARY_TOOLTIP :{BLACK}Vali põhivärv värvistikule. Ctrl+Klikk valib selle värvi tervele värvistikule
STR_LIVERY_SECONDARY_TOOLTIP :{BLACK}Vali teine värv valitud värvistikule. Ctrl+Klõps valib selle värvi tervele värvistikule
STR_LIVERY_PANEL_TOOLTIP :{BLACK}Vali muudetav värvivalik - või mitu Ctrl+klõps abil. Klõpsa kastil, et muuta värvivaliku kasutust
@@ -2073,7 +2111,7 @@ STR_NETWORK_START_SERVER_ADVERTISED :Jah
STR_NETWORK_START_SERVER_CLIENTS_SELECT :{BLACK}{NUM} klient{P "" i}
STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS :{BLACK}Kliente kuni:
STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS.in :sees
STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS_TOOLTIP :{BLACK}Määrab klientide arvule ülempiiri. Kõiki vabu kohti ei pea täitma
STR_NETWORK_START_SERVER_NUMBER_OF_CLIENTS_TOOLTIP :{BLACK}Määrab klientide arvule ülempiirangu. Kõiki vabu kohti ei pea täitma
STR_NETWORK_START_SERVER_COMPANIES_SELECT :{BLACK}{NUM} ettevõte{P "" t}
STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES :{BLACK}Ettevõtteid kuni:
STR_NETWORK_START_SERVER_NUMBER_OF_COMPANIES_TOOLTIP :{BLACK}Piirab serveris olevate ettevõtete arvu
@@ -2314,7 +2352,7 @@ STR_CONTENT_SEARCH_EXTERNAL :{BLACK}Otsi vä
STR_CONTENT_SEARCH_EXTERNAL_TOOLTIP :{BLACK}Otsi OpenTTD-st sõltumatutest lehtedest aineseid, mida OpenTTD aineste keskserverist ei saa
STR_CONTENT_SEARCH_EXTERNAL_DISCLAIMER_CAPTION :{WHITE}Sa oled lahkumas OpenTTD-st!
STR_CONTENT_SEARCH_EXTERNAL_DISCLAIMER :{WHITE}Välistest veebilehtedest aineste allalaadimisel võivad kasutustingimused vahelduda.{}Paigaldusjuhiseid otsida samadest välistest veebilehtedest.{}Kas jätkata?
STR_CONTENT_FILTER_TITLE :{BLACK}Siltide/nimede märksõna:
STR_CONTENT_FILTER_TITLE :{BLACK}Tähiste/nimede märksõna:
STR_CONTENT_OPEN_URL :{BLACK}Külasta lehekülge
STR_CONTENT_OPEN_URL_TOOLTIP :{BLACK}Külasta lehekülge selle sisu jaoks.
STR_CONTENT_DOWNLOAD_CAPTION :{BLACK}Laadi alla
@@ -2335,7 +2373,7 @@ STR_CONTENT_DETAIL_TYPE :{SILVER}Liik: {
STR_CONTENT_DETAIL_FILESIZE :{SILVER}Allalaadimise suurus: {WHITE}{BYTES}
STR_CONTENT_DETAIL_SELECTED_BECAUSE_OF :{SILVER}Valitud kuna: {WHITE}{STRING}
STR_CONTENT_DETAIL_DEPENDENCIES :{SILVER}Sõltuvused: {WHITE}{STRING}
STR_CONTENT_DETAIL_TAGS :{SILVER}Sildid: {WHITE}{STRING}
STR_CONTENT_DETAIL_TAGS :{SILVER}Tähised: {WHITE}{STRING}
STR_CONTENT_NO_ZLIB :{WHITE}OpenTTD on kompileeritud ilma «zlib» toeta...
STR_CONTENT_NO_ZLIB_SUB :{WHITE}... aineste allalaadimine pole võimalik!
@@ -2370,6 +2408,10 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD
STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Jah, laadi graafika alla
STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Ei, välju OpenTTD-st
STR_MISSING_GRAPHICS_ERROR_TITLE :{WHITE}Allalaadimine ebaõnnestus
STR_MISSING_GRAPHICS_ERROR :{BLACK}Graafika allalaadimine ebaõnnestus.{}Palun laadida graafika alla käsitsi.
STR_MISSING_GRAPHICS_ERROR_QUIT :{BLACK}Välju OpenTTD-st
# Transparency settings window
STR_TRANSPARENCY_CAPTION :{WHITE}Läbipaistvuse seadistus
STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Muuda jaamamärkide läbipaistvust. Ctrl+klõps lukustab
@@ -2446,7 +2488,7 @@ STR_WAYPOINT_GRAPHICS_TOOLTIP :{BLACK}Vali mel
# Rail station construction window
STR_STATION_BUILD_RAIL_CAPTION :{WHITE}Raudteejaama valik
STR_STATION_BUILD_ORIENTATION :{BLACK}Orientatsioon
STR_STATION_BUILD_ORIENTATION :{BLACK}Suund
STR_STATION_BUILD_RAILROAD_ORIENTATION_TOOLTIP :{BLACK}Raudteejaamale suuna valimine
STR_STATION_BUILD_NUMBER_OF_TRACKS :{BLACK}Radade arv
STR_STATION_BUILD_NUMBER_OF_TRACKS_TOOLTIP :{BLACK}Vali raudteejaama perroonide arv
@@ -2455,8 +2497,8 @@ STR_STATION_BUILD_PLATFORM_LENGTH_TOOLTIP :{BLACK}Vali rau
STR_STATION_BUILD_DRAG_DROP :{BLACK}Lohistamine
STR_STATION_BUILD_DRAG_DROP_TOOLTIP :{BLACK}Ehita jaam kasutades hiirega lohistamist
STR_STATION_BUILD_STATION_CLASS_TOOLTIP :{BLACK}Vali jaama klass mida tahad näidata
STR_STATION_BUILD_STATION_TYPE_TOOLTIP :{BLACK}Vali ehitatava jaama tüüp
STR_STATION_BUILD_STATION_CLASS_TOOLTIP :{BLACK}Vali idatav jaamarühm
STR_STATION_BUILD_STATION_TYPE_TOOLTIP :{BLACK}Vali näidatav jaamaliik
STR_STATION_CLASS_DFLT :Esialgne jaam
STR_STATION_CLASS_WAYP :Meldepunktid
@@ -2533,7 +2575,7 @@ STR_STATION_BUILD_BUS_ORIENTATION :{WHITE}Bussijaa
STR_STATION_BUILD_BUS_ORIENTATION_TOOLTIP :{BLACK}Vali bussijaamale suund
STR_STATION_BUILD_TRUCK_ORIENTATION :{WHITE}Laadimisplatsi suund
STR_STATION_BUILD_TRUCK_ORIENTATION_TOOLTIP :{BLACK}Vali laadimisplatsile suund
STR_STATION_BUILD_PASSENGER_TRAM_ORIENTATION :{WHITE}Reisitrammi Jaama Suund
STR_STATION_BUILD_PASSENGER_TRAM_ORIENTATION :{WHITE}Reisitrammijaama suund
STR_STATION_BUILD_PASSENGER_TRAM_ORIENTATION_TOOLTIP :{BLACK}Vali reisitrammijaama suund
STR_STATION_BUILD_CARGO_TRAM_ORIENTATION :{WHITE}Kaubatrammi Jaama Suund
STR_STATION_BUILD_CARGO_TRAM_ORIENTATION_TOOLTIP :{BLACK}Vali kaubatrammijaama suund
@@ -2545,8 +2587,8 @@ STR_WATERWAYS_TOOLBAR_BUILD_CANALS_TOOLTIP :{BLACK}Ehita ka
STR_WATERWAYS_TOOLBAR_BUILD_LOCKS_TOOLTIP :{BLACK}Lüüsi ehitamine. Shift valib ehitamise/hinna kuvamise režiimi
STR_WATERWAYS_TOOLBAR_BUILD_DEPOT_TOOLTIP :{BLACK}Ehita laevaremonditehas (laevade ehitamiseks ja hoolduseks). Shift valib ehitamise/hinna kuvamise režiimi
STR_WATERWAYS_TOOLBAR_BUILD_DOCK_TOOLTIP :{BLACK}Ehita laevadokk. Ctrl võimaldab jaamu ühendada. Shift valib ehitamise/hinna kuvamise režiimi
STR_WATERWAYS_TOOLBAR_BUOY_TOOLTIP :{BLACK}Paigalda poi mis on kasutatav teemärgisena. Shift valib ehitamise/hinna kuvamise režiimi
STR_WATERWAYS_TOOLBAR_BUILD_AQUEDUCT_TOOLTIP :{BLACK}Ehita veejuhe. Shift valib ehitamise/hinna kuvamise režiimi
STR_WATERWAYS_TOOLBAR_BUOY_TOOLTIP :{BLACK}Paigalda poi, mis on kasutatav teemärgisena. Shift valib ehitamise/hinna kuvamise režiimi
STR_WATERWAYS_TOOLBAR_BUILD_AQUEDUCT_TOOLTIP :{BLACK}Ehita veesild. Shift valib ehitamise/hinna kuvamise režiimi
STR_WATERWAYS_TOOLBAR_CREATE_LAKE_TOOLTIP :{BLACK}Määratle veealad.{}Ehita kanal. Veekõrgusel Ctrl-klahvi all hoidmine ujutab ümbruskonna üle
STR_WATERWAYS_TOOLBAR_CREATE_RIVER_TOOLTIP :{BLACK}Jõgede paigutamine
@@ -2564,23 +2606,23 @@ STR_TOOLBAR_AIRCRAFT_BUILD_AIRPORT_TOOLTIP :{BLACK}Ehita le
# Airport construction window
STR_STATION_BUILD_AIRPORT_CAPTION :{WHITE}Lennuvälja valik
STR_STATION_BUILD_AIRPORT_TOOLTIP :{BLACK}Vali lennuvälja suurus ja tüüp
STR_STATION_BUILD_AIRPORT_CLASS_LABEL :{BLACK}Lennujaama tüüp
STR_STATION_BUILD_AIRPORT_CLASS_LABEL :{BLACK}Lennuvälja järk
STR_STATION_BUILD_AIRPORT_LAYOUT_NAME :{BLACK}Paigutus {NUM}
STR_AIRPORT_SMALL :Väike
STR_AIRPORT_CITY :Linn
STR_AIRPORT_METRO :Metropoli lennujaam
STR_AIRPORT_INTERNATIONAL :Rahvusvaheline lennujaam
STR_AIRPORT_COMMUTER :Turisti
STR_AIRPORT_INTERCONTINENTAL :Ülemaailmne lennuväli
STR_AIRPORT_HELIPORT :Kopteriväljak
STR_AIRPORT_HELIDEPOT :Helikopteridepoo
STR_AIRPORT_HELISTATION :Helijaam
STR_AIRPORT_CITY :Linna
STR_AIRPORT_METRO :Suurlinna
STR_AIRPORT_INTERNATIONAL :Rahvusvaheline
STR_AIRPORT_COMMUTER :Pendelrände
STR_AIRPORT_INTERCONTINENTAL :Kontinentidevaheline
STR_AIRPORT_HELIPORT :Kopteriterminal
STR_AIRPORT_HELIDEPOT :Kopteriväljak
STR_AIRPORT_HELISTATION :Kopterijaam
STR_AIRPORT_CLASS_SMALL :Väikesed lennuväljad
STR_AIRPORT_CLASS_LARGE :Suured lennuväljad
STR_AIRPORT_CLASS_HUB :Suured lennuväljad
STR_AIRPORT_CLASS_HELIPORTS :Helikopteri lennuväljad
STR_AIRPORT_CLASS_SMALL :Väikelennujaamad
STR_AIRPORT_CLASS_LARGE :Suurlennujaamad
STR_AIRPORT_CLASS_HUB :Sõlmlennujaamad
STR_AIRPORT_CLASS_HELIPORTS :Kopterilennuväljad
STR_STATION_BUILD_NOISE :{BLACK}Tekitatud müra: {GOLD}{COMMA}
@@ -2594,7 +2636,7 @@ STR_LANDSCAPING_TOOLTIP_PURCHASE_LAND :{BLACK}Maa ostm
# Object construction window
STR_OBJECT_BUILD_CAPTION :{WHITE}Objekti valik
STR_OBJECT_BUILD_TOOLTIP :{BLACK}Vali ehitatav objekt. Shift valib ehitamise/hinna kuvamise režiimi
STR_OBJECT_BUILD_CLASS_TOOLTIP :{BLACK}Vali ehitatava objekti klass
STR_OBJECT_BUILD_CLASS_TOOLTIP :{BLACK}Vali ehitatava objekti järk
STR_OBJECT_BUILD_PREVIEW_TOOLTIP :{BLACK}Objekti eelvaade
STR_OBJECT_BUILD_SIZE :{BLACK}Suurus: {GOLD}{NUM} x {NUM} ruutu
@@ -2709,9 +2751,9 @@ STR_LAND_AREA_INFORMATION_LOCAL_AUTHORITY :{BLACK}Kohalik
STR_LAND_AREA_INFORMATION_LOCAL_AUTHORITY_NONE :puudub
STR_LAND_AREA_INFORMATION_LANDINFO_COORDS :{BLACK}Koordinaadid: {LTBLUE}{NUM} x {NUM} x {NUM} ({STRING})
STR_LAND_AREA_INFORMATION_BUILD_DATE :{BLACK}Ehitatud: {LTBLUE}{DATE_LONG}
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Jaama liik: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Jaama järk: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Jaama liik: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_AIRPORT_CLASS :{BLACK}Lennujaama liik: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_AIRPORT_CLASS :{BLACK}Lennuvälja liik: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_AIRPORT_NAME :{BLACK}Lennujaama nimi: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Lennujaama osa nimi: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
@@ -2808,7 +2850,7 @@ STR_LAI_BRIDGE_DESCRIPTION_ROAD_WOODEN :Puidust autotee
STR_LAI_BRIDGE_DESCRIPTION_ROAD_CONCRETE :Betoonist autoteesild
STR_LAI_BRIDGE_DESCRIPTION_ROAD_TUBULAR_STEEL :Torujas autoteesild
STR_LAI_BRIDGE_DESCRIPTION_AQUEDUCT :Akvedukt
STR_LAI_BRIDGE_DESCRIPTION_AQUEDUCT :Veesild
STR_LAI_OBJECT_DESCRIPTION_TRANSMITTER :Retranslaator
STR_LAI_OBJECT_DESCRIPTION_LIGHTHOUSE :Tuletorn
@@ -2914,17 +2956,22 @@ STR_SAVELOAD_OSKTITLE :{BLACK}Sisesta
# World generation
STR_MAPGEN_WORLD_GENERATION_CAPTION :{WHITE}Maailma tekitamine
STR_MAPGEN_MAPSIZE :{BLACK}Kaardi mõõtmed:
STR_MAPGEN_MAPSIZE_TOOLTIP :{BLACK}Määrab maakaardi mõõtmed ruutudes. Ruute, mida saab kasutada, on pisut vähem
STR_MAPGEN_MAPSIZE_TOOLTIP :{BLACK}Määrab kaardi mõõtmed ruutudes. Ruute, mida saab kasutada, on pisut vähem
STR_MAPGEN_BY :{BLACK}*
STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}Asustusi:
STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}Asustuste arv:
STR_MAPGEN_DATE :{BLACK}Algus:
STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Tööstuste sagedus:
STR_MAPGEN_MAX_HEIGHTLEVEL :{BLACK}Kaardi ülemkõrgus:
STR_MAPGEN_MAX_HEIGHTLEVEL_UP :{BLACK}Tõsta maksimaalset kaardi mägede kõrgust ühe võrra
STR_MAPGEN_MAX_HEIGHTLEVEL_DOWN :{BLACK}Langeta maksimaalset kaardi mägede kõrgust ühe võrra
STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Lumepiiri kõrgus:
STR_MAPGEN_SNOW_LINE_UP :{BLACK}Lumepiiri liigutamine ühe võrra üles
STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Lumepiiri liigutamine ühe võrra alla
STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Tööstustihedus:
STR_MAPGEN_HEIGHTMAP_HEIGHT :{BLACK}Kõrgpunkt:
STR_MAPGEN_HEIGHTMAP_HEIGHT_UP :{BLACK}Suurenda kaardi kõrgpunkti ühe võrra
STR_MAPGEN_HEIGHTMAP_HEIGHT_DOWN :{BLACK}Vähenda kaardi kõrgpunkti ühe võrra
STR_MAPGEN_SNOW_COVERAGE :{BLACK}Lumekatvus:
STR_MAPGEN_SNOW_COVERAGE_UP :{BLACK}Suurenda lumekatvust kümne protsendi võrra
STR_MAPGEN_SNOW_COVERAGE_DOWN :{BLACK}Vähenda lumekatvust kümne protsendi võrra
STR_MAPGEN_SNOW_COVERAGE_TEXT :{BLACK}{NUM}%
STR_MAPGEN_DESERT_COVERAGE :{BLACK}Kõrbekatvus:
STR_MAPGEN_DESERT_COVERAGE_UP :{BLACK}Suurenda kõrbekatvust kümne protsendi võrra
STR_MAPGEN_DESERT_COVERAGE_DOWN :{BLACK}Vähenda kõrbekatvust kümne protsendi võrra
STR_MAPGEN_DESERT_COVERAGE_TEXT :{BLACK}{NUM}%
STR_MAPGEN_LAND_GENERATOR :{BLACK}Maatekituse meetod:
STR_MAPGEN_TERRAIN_TYPE :{BLACK}Maapinna tüüp:
STR_MAPGEN_QUANTITY_OF_SEA_LAKES :{BLACK}Merepinna tase:
@@ -2945,13 +2992,15 @@ STR_MAPGEN_BORDER_RANDOM :{BLACK}Suvaline
STR_MAPGEN_BORDER_RANDOMIZE :{BLACK}Suvaline
STR_MAPGEN_BORDER_MANUAL :{BLACK}Määratud
STR_MAPGEN_HEIGHTMAP_ROTATION :{BLACK}Kõrgustekaardi pööre:
STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Kõrgusekaardi nimi:
STR_MAPGEN_HEIGHTMAP_ROTATION :{BLACK}Kõrguskaardi pööre:
STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Kõrguskaardi nimi:
STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Suurus:
STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM}
STR_MAPGEN_MAX_HEIGHTLEVEL_QUERY_CAPT :{WHITE}Muuda maksimaalset kaardi kõrgust
STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Muuda lumepiiri kõrgust
STR_MAPGEN_TERRAIN_TYPE_QUERY_CAPT :{WHITE}Soovitud kõrgpunkt
STR_MAPGEN_HEIGHTMAP_HEIGHT_QUERY_CAPT :{WHITE}Kõrgpunkt
STR_MAPGEN_SNOW_COVERAGE_QUERY_CAPT :{WHITE}Lumekatvus (%)
STR_MAPGEN_DESERT_COVERAGE_QUERY_CAPT :{WHITE}Kõrbekatvus (%)
STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Muuda algusaastat
# SE Map generation
@@ -3180,7 +3229,7 @@ STR_TOWN_DIRECTORY_NONE :{ORANGE}- Puudu
STR_TOWN_DIRECTORY_TOWN :{ORANGE}{TOWN}{BLACK} ({COMMA})
STR_TOWN_DIRECTORY_CITY :{ORANGE}{TOWN}{YELLOW} (Linn){BLACK} ({COMMA})
STR_TOWN_DIRECTORY_LIST_TOOLTIP :{BLACK}Astuste nimed - vajuta nimele, et viia vaade asustusele. Ctrl+klõps avab uue vaate linna asukohas
STR_TOWN_POPULATION :{BLACK}Maailma rahvastik: {COMMA}
STR_TOWN_POPULATION :{BLACK}Maailma rahvaarv: {COMMA}
# Town view window
STR_TOWN_VIEW_TOWN_CAPTION :{WHITE}{TOWN}
@@ -3193,8 +3242,8 @@ STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_WINTER :{ORANGE}{STRING
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_DELIVERED_GENERAL :{ORANGE}{STRING}{GREEN} äraveetud
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED :{ORANGE}{CARGO_TINY} / {CARGO_LONG}{RED} (ikka veel vaja)
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_DELIVERED :{ORANGE}{CARGO_TINY} / {CARGO_LONG}{GREEN} (äraveetud)
STR_TOWN_VIEW_TOWN_GROWS_EVERY :{BLACK}Asustus kasvab iga {ORANGE}{COMMA}{NBSP}päev{P "" a}
STR_TOWN_VIEW_TOWN_GROWS_EVERY_FUNDED :{BLACK}Asustus kasvab iga {ORANGE}{COMMA}{BLACK}{NBSP}päev{P "" a} (rahastatud)
STR_TOWN_VIEW_TOWN_GROWS_EVERY :{BLACK}Asustus kasvab igal {ORANGE}{COMMA}{BLACK}.{NBSP}päeval
STR_TOWN_VIEW_TOWN_GROWS_EVERY_FUNDED :{BLACK}Asustus kasvab igal {ORANGE}{COMMA}{BLACK}.{NBSP}päeval (rahastatud)
STR_TOWN_VIEW_TOWN_GROW_STOPPED :{BLACK}Asustus {RED}ei{BLACK} kasva
STR_TOWN_VIEW_NOISE_IN_TOWN :{BLACK}Mürapiirang asustuses: {ORANGE}{COMMA}{BLACK} suurim: {ORANGE}{COMMA}
STR_TOWN_VIEW_CENTER_TOOLTIP :{BLACK}Keskenda vaade asustusele. Ctrl+klõps avab asustuse kohal uue vaate
@@ -3242,13 +3291,14 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW} Kohali
STR_GOALS_CAPTION :{WHITE}{COMPANY} eesmärgid
STR_GOALS_SPECTATOR_CAPTION :{WHITE}Üldeesmärgid
STR_GOALS_SPECTATOR :Üleilmsed eesmärgid
STR_GOALS_GLOBAL_TITLE :{BLACK}Üldised eesmärgid:
STR_GOALS_GLOBAL_BUTTON :{BLACK}Üleilmne
STR_GOALS_GLOBAL_BUTTON_HELPTEXT :{BLACK}Näita üleilmseid eesmärke
STR_GOALS_COMPANY_BUTTON :{BLACK}Ettevõte
STR_GOALS_COMPANY_BUTTON_HELPTEXT :{BLACK}Näita ettevõtte eesmärke
STR_GOALS_TEXT :{ORANGE}{STRING}
STR_GOALS_NONE :{ORANGE}- Mitte ühtegi -
STR_GOALS_SPECTATOR_NONE :{ORANGE}- Kehtetu -
STR_GOALS_PROGRESS :{ORANGE}{STRING}
STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING}
STR_GOALS_COMPANY_TITLE :{BLACK}Ettevõtte eesmärgid:
STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Klõpsa eesmärgil, et liigutada vaateaken tööstuse/asula/ruudu asukohale. Ctrl+klõps avab uue vaateakna tööstuse/asula/ruudu asukohas
# Goal question window
@@ -3331,7 +3381,7 @@ STR_STATION_VIEW_CARGO_SUPPLY_RATING :{WHITE}{STRING}
STR_STATION_VIEW_GROUP :{BLACK}Jaotusalus
STR_STATION_VIEW_WAITING_STATION :Jaam: ootel
STR_STATION_VIEW_WAITING_AMOUNT :Summa: ootel
STR_STATION_VIEW_WAITING_AMOUNT :Kogus: ootel
STR_STATION_VIEW_PLANNED_STATION :Jaam: eeldatav
STR_STATION_VIEW_PLANNED_AMOUNT :Summa: eeldatav
STR_STATION_VIEW_FROM :{YELLOW}{CARGO_SHORT} jaamast {STATION}
@@ -3368,13 +3418,13 @@ STR_STATION_VIEW_RENAME_TOOLTIP :{BLACK}Muuda ja
STR_STATION_VIEW_SCHEDULED_TRAINS_TOOLTIP :{BLACK}Näita kõiki ronge, mille sõidugraafik sisaldab seda rongijaama
STR_STATION_VIEW_SCHEDULED_ROAD_VEHICLES_TOOLTIP :{BLACK}Näita kõiki mootorsõidukeid, mille sõidugraafik sisaldab seda jaama
STR_STATION_VIEW_SCHEDULED_AIRCRAFT_TOOLTIP :{BLACK}Näita kõiki lennukeid, mille sõidugraafik sisaldab seda lennujaama
STR_STATION_VIEW_SCHEDULED_AIRCRAFT_TOOLTIP :{BLACK}Näita kõiki õhusõidukeid, mille graafik sisaldab seda jaama
STR_STATION_VIEW_SCHEDULED_SHIPS_TOOLTIP :{BLACK}Näita kõiki laevu, mille sõidugraafik sisaldab seda sadamat
STR_STATION_VIEW_RENAME_STATION_CAPTION :Ümbernimeta jaam/laadimisala
STR_STATION_VIEW_CLOSE_AIRPORT :{BLACK}Sulge lennujaam
STR_STATION_VIEW_CLOSE_AIRPORT_TOOLTIP :{BLACK}Keela lennukite maandumine selles lennujaamas
STR_STATION_VIEW_CLOSE_AIRPORT_TOOLTIP :{BLACK}Keela õhusõidukite maandumine selles lennujaamas
# Waypoint/buoy view window
STR_WAYPOINT_VIEW_CAPTION :{WHITE}{WAYPOINT}
@@ -3400,7 +3450,7 @@ STR_FINANCES_SECTION_TRAIN_INCOME :{GOLD}Rongide t
STR_FINANCES_SECTION_ROAD_VEHICLE_INCOME :{GOLD}Mootorsõidukite tulud
STR_FINANCES_SECTION_AIRCRAFT_INCOME :{GOLD}Õhusõidukite tulud
STR_FINANCES_SECTION_SHIP_INCOME :{GOLD}Laevade tulud
STR_FINANCES_SECTION_LOAN_INTEREST :{GOLD}Laenuintress
STR_FINANCES_SECTION_LOAN_INTEREST :{GOLD}Laenuintressid
STR_FINANCES_SECTION_OTHER :{GOLD}Muud
STR_FINANCES_NEGATIVE_INCOME :{BLACK}-{CURRENCY_LONG}
STR_FINANCES_POSITIVE_INCOME :{BLACK}+{CURRENCY_LONG}
@@ -3424,7 +3474,7 @@ STR_COMPANY_VIEW_COLOUR_SCHEME_TITLE :{GOLD}Värvival
STR_COMPANY_VIEW_VEHICLES_TITLE :{GOLD}Sõidukeid:
STR_COMPANY_VIEW_TRAINS :{WHITE}{COMMA} rong{P "" i}
STR_COMPANY_VIEW_ROAD_VEHICLES :{WHITE}{COMMA} veok {P "" it}
STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} lennuk
STR_COMPANY_VIEW_AIRCRAFT :{WHITE}{COMMA} õhusõiduk
STR_COMPANY_VIEW_SHIPS :{WHITE}{COMMA} laev{P "" a}
STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}Mitte ühtegi
STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}Firmaväärtus: {WHITE}{CURRENCY_LONG}
@@ -3519,12 +3569,12 @@ STR_CONFIG_GAME_PRODUCTION_LEVEL :{WHITE}Muuda to
STR_VEHICLE_LIST_TRAIN_CAPTION :{WHITE}{STRING} - {COMMA} rong{P "" i}
STR_VEHICLE_LIST_ROAD_VEHICLE_CAPTION :{WHITE}{STRING} - {COMMA} mootorsõiduk{P "" it}
STR_VEHICLE_LIST_SHIP_CAPTION :{WHITE}{STRING} - {COMMA} laev{P "" a}
STR_VEHICLE_LIST_AIRCRAFT_CAPTION :{WHITE}{STRING} - {COMMA} lennuk{P "" it}
STR_VEHICLE_LIST_AIRCRAFT_CAPTION :{WHITE}{STRING} - {COMMA} õhusõiduk{P "" it}
STR_VEHICLE_LIST_TRAIN_LIST_TOOLTIP :{BLACK}Rongid - vajuta rongile info jaoks
STR_VEHICLE_LIST_ROAD_VEHICLE_TOOLTIP :{BLACK}Veokid - info saamiseks vajuta veokile
STR_VEHICLE_LIST_SHIP_TOOLTIP :{BLACK}Laevad - info saamiseks klõpsa laevale
STR_VEHICLE_LIST_AIRCRAFT_TOOLTIP :{BLACK}Lennuk - info saamiseks vajuta lennukile
STR_VEHICLE_LIST_AIRCRAFT_TOOLTIP :{BLACK}Õhusõiduk - info saamiseks vajuta õhusõidukile
STR_VEHICLE_LIST_PROFIT_THIS_YEAR_LAST_YEAR :{TINY_FONT}{BLACK}Selle aasta kasum: {CURRENCY_LONG} (eelneval: {CURRENCY_LONG})
@@ -3553,7 +3603,7 @@ STR_VEHICLE_LIST_SHARED_ORDERS_LIST_CAPTION :{WHITE}{COMMA}
STR_GROUP_ALL_TRAINS :Kõik raudteeveerem
STR_GROUP_ALL_ROAD_VEHICLES :Kõik mootorsõidukid
STR_GROUP_ALL_SHIPS :Kõik laevad
STR_GROUP_ALL_AIRCRAFTS :Kõik lennukid
STR_GROUP_ALL_AIRCRAFTS :Kõik õhusõidukid
STR_GROUP_DEFAULT_TRAINS :Jaotamata rongid
STR_GROUP_DEFAULT_ROAD_VEHICLES :Jaotamata maanteesõidukid
@@ -3569,7 +3619,7 @@ STR_GROUP_RENAME_TOOLTIP :{BLACK}Ümberni
STR_GROUP_LIVERY_TOOLTIP :{BLACK}Muuda valitud jao värvistikku
STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Klõpsa, et kaitsta seda jagu globaalse automaatasenduse eest
STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Kustuta Grupp
STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Kõrvalda jagu
STR_GROUP_DELETE_QUERY_TEXT :{WHITE}Kas oled kindel, et tahad kustutada selle grupi ja kõik järglased?
STR_GROUP_ADD_SHARED_VEHICLE :Kõik jagatud sõidukid
@@ -3595,7 +3645,7 @@ STR_BUY_VEHICLE_TRAM_VEHICLE_CAPTION :Uued trammid
STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Rööbassõidukid
STR_BUY_VEHICLE_ROAD_VEHICLE_ALL_CAPTION :Uued maanteesõidukid
STR_BUY_VEHICLE_SHIP_CAPTION :Uued laevad
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Uus lennuk
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Uus õhusõiduk
############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Hind: {GOLD}{CURRENCY_LONG}{BLACK} Tühimass: {GOLD}{WEIGHT_SHORT}
@@ -3611,7 +3661,7 @@ STR_PURCHASE_INFO_DESIGNED_LIFE :{BLACK}Kujundat
STR_PURCHASE_INFO_RELIABILITY :{BLACK}Parim tehnoseisund: {GOLD}{COMMA}%
STR_PURCHASE_INFO_COST :{BLACK}Hind: {GOLD}{CURRENCY_LONG}
STR_PURCHASE_INFO_COST_REFIT :{BLACK}Maksumus: {GOLD}{CURRENCY_LONG}{BLACK} (Ümberseadistamise maksumus: {GOLD}{CURRENCY_LONG}{BLACK})
STR_PURCHASE_INFO_WEIGHT_CWEIGHT :{BLACK}Mass: {GOLD}{WEIGHT_SHORT} {WEIGHT_SHORT})
STR_PURCHASE_INFO_WEIGHT_CWEIGHT :{BLACK}Mass: {GOLD}{WEIGHT_SHORT} ({WEIGHT_SHORT})
STR_PURCHASE_INFO_COST_SPEED :{BLACK}Hind: {GOLD}{CURRENCY_LONG}{BLACK} Tippkiirus: {GOLD}{VELOCITY}
STR_PURCHASE_INFO_COST_REFIT_SPEED :{BLACK}Hind: {GOLD}{CURRENCY_LONG}{BLACK} (Ümberseadistamise maksumus: {GOLD}{CURRENCY_LONG}{BLACK}) Kiirus: {GOLD}{VELOCITY}
STR_PURCHASE_INFO_AIRCRAFT_CAPACITY :{BLACK}Kandevõime: {GOLD}{CARGO_LONG}, {CARGO_LONG}
@@ -3619,6 +3669,7 @@ STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Kiirenda
STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Ümberseadistatav: {GOLD}{STRING}
STR_PURCHASE_INFO_ALL_TYPES :Kõik kaubatüübid
STR_PURCHASE_INFO_NONE :Puudub
STR_PURCHASE_INFO_ENGINES_ONLY :Vaid vedurid
STR_PURCHASE_INFO_ALL_BUT :Kõik, välja arvatud {CARGO_LIST}
STR_PURCHASE_INFO_MAX_TE :{BLACK}Suurim veojõud: {GOLD}{FORCE}
STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Tegevusradius: {GOLD}{COMMA} ruutu
@@ -3627,12 +3678,12 @@ STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Õhusõi
STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Nimekiri raudteesõidukitest - andmete saamiseks klõpsa raudteesõidukile
STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Mootorsõidukite nimekiri - andmete saamiseks klõpsa sõidukile
STR_BUY_VEHICLE_SHIP_LIST_TOOLTIP :{BLACK}Laevade nimekiri - info saamiseks klõps laevale
STR_BUY_VEHICLE_AIRCRAFT_LIST_TOOLTIP :{BLACK}Lennukite nimekiri - info saamiseks vajuta lennukile
STR_BUY_VEHICLE_AIRCRAFT_LIST_TOOLTIP :{BLACK}Õhusõidukite loend - info saamiseks vajuta õhusõidukile. Ctrl + klõps vaheldab õhusõiduki liigi peitmist
STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_BUTTON :{BLACK}Ehita sõiduk
STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_BUTTON :{BLACK}Ehita veovahend
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_VEHICLE_BUTTON :{BLACK}Ehita õhusõiduk
STR_BUY_VEHICLE_TRAIN_BUY_REFIT_VEHICLE_BUTTON :{BLACK}Osta ja ümberseadista sõiduk
STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_REFIT_VEHICLE_BUTTON :{BLACK}Osta ja ümberseadista sõiduk
@@ -3647,7 +3698,7 @@ STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_TOOLTIP :{BLACK}Osta val
STR_BUY_VEHICLE_TRAIN_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}Osta ja ümberseadista valitud rööbassõiduk. Shift+klõps näitab eeldatava maksumuse ilma ostu sooritamata
STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}Osta ja ümberseadista valitud maanteesõiduk. Shift+klõps näitab eeldatava maksumuse ilma ostu sooritamata
STR_BUY_VEHICLE_SHIP_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}Osta ja ümberseadista valitud laev. Shift+klõps näitab eeldatava maksumuse ilma ostu sooritamata
STR_BUY_VEHICLE_AIRCRAFT_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}Osta ja ümberseadista valitud lennuk. Shift+klõps näitab eeldatava maksumuse ilma ostu sooritamata
STR_BUY_VEHICLE_AIRCRAFT_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}Osta ja ümberseadista valitud õhusõiduk. Shift+klõps näitab eeldatava maksumuse ilma ostu sooritamata
STR_BUY_VEHICLE_TRAIN_RENAME_BUTTON :{BLACK}Ümbernimeta
STR_BUY_VEHICLE_ROAD_VEHICLE_RENAME_BUTTON :{BLACK}Ümbernimeta
@@ -3672,7 +3723,7 @@ STR_BUY_VEHICLE_AIRCRAFT_SHOW_TOGGLE_BUTTON :{BLACK}Näita
STR_BUY_VEHICLE_TRAIN_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Sätesta rongitüübi peitmine/kuvamine
STR_BUY_VEHICLE_ROAD_VEHICLE_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Sätesta sõidukitüübi peitmine/kuvamine
STR_BUY_VEHICLE_SHIP_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Sätesta laevatüübi peitmine/kuvamine
STR_BUY_VEHICLE_AIRCRAFT_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Sätesta lennukitüübi peitmine/kuvamine
STR_BUY_VEHICLE_AIRCRAFT_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Vahelda õhusõiduki liigi peitmist/näitamist
STR_QUERY_RENAME_TRAIN_TYPE_CAPTION :{WHITE}Ümbernimeta rööbassõiduki liik
STR_QUERY_RENAME_ROAD_VEHICLE_TYPE_CAPTION :{WHITE}Ümbernimeta maanteesõiduki liik
@@ -3698,14 +3749,14 @@ STR_DEPOT_AIRCRAFT_LIST_TOOLTIP :{BLACK}Õhusõi
STR_DEPOT_TRAIN_SELL_TOOLTIP :{BLACK}Tiri rongi veok siia et müüa
STR_DEPOT_ROAD_VEHICLE_SELL_TOOLTIP :{BLACK}Et müüa, tiri sõiduk siia
STR_DEPOT_SHIP_SELL_TOOLTIP :{BLACK}Müügiks tiri laev siia
STR_DEPOT_AIRCRAFT_SELL_TOOLTIP :{BLACK}Müümiseks tiri lennuk siia
STR_DEPOT_AIRCRAFT_SELL_TOOLTIP :{BLACK}Müümiseks tiri õhusõiduk siia
STR_DEPOT_DRAG_WHOLE_TRAIN_TO_SELL_TOOLTIP :{BLACK}Tõsta rongi vedur siia, et müüa rong täies koosseisus
STR_DEPOT_SELL_ALL_BUTTON_TRAIN_TOOLTIP :{BLACK}Müü kõik rongid jaamast
STR_DEPOT_SELL_ALL_BUTTON_ROAD_VEHICLE_TOOLTIP :{BLACK}Müü kõik autod garaažist
STR_DEPOT_SELL_ALL_BUTTON_SHIP_TOOLTIP :{BLACK}Müü kõik laevad sadamast
STR_DEPOT_SELL_ALL_BUTTON_AIRCRAFT_TOOLTIP :{BLACK}Müü kõik lennukid angaarist
STR_DEPOT_SELL_ALL_BUTTON_AIRCRAFT_TOOLTIP :{BLACK}Müü kõik õhusõidukid angaarist
STR_DEPOT_AUTOREPLACE_TRAIN_TOOLTIP :{BLACK}Asenda kõik rongid jaamas ise
STR_DEPOT_AUTOREPLACE_ROAD_VEHICLE_TOOLTIP :{BLACK}Asenda kõik depoos olevad mootorsõidukid ise
@@ -3715,17 +3766,17 @@ STR_DEPOT_AUTOREPLACE_AIRCRAFT_TOOLTIP :{BLACK}Asenda k
STR_DEPOT_TRAIN_NEW_VEHICLES_BUTTON :{BLACK}Uus rong
STR_DEPOT_ROAD_VEHICLE_NEW_VEHICLES_BUTTON :{BLACK}Ostmine
STR_DEPOT_SHIP_NEW_VEHICLES_BUTTON :{BLACK}Uus laev
STR_DEPOT_AIRCRAFT_NEW_VEHICLES_BUTTON :{BLACK}Uus lennuk
STR_DEPOT_AIRCRAFT_NEW_VEHICLES_BUTTON :{BLACK}Uus õhusõiduk
STR_DEPOT_TRAIN_NEW_VEHICLES_TOOLTIP :{BLACK}Osta uus rongi veok
STR_DEPOT_ROAD_VEHICLE_NEW_VEHICLES_TOOLTIP :{BLACK}Ehita uus mootorsõiduk
STR_DEPOT_SHIP_NEW_VEHICLES_TOOLTIP :{BLACK}Osta uus laev
STR_DEPOT_AIRCRAFT_NEW_VEHICLES_TOOLTIP :{BLACK}Ehita uus lennuk
STR_DEPOT_AIRCRAFT_NEW_VEHICLES_TOOLTIP :{BLACK}Ehita uus õhusõiduk
STR_DEPOT_CLONE_TRAIN :{BLACK}Klooni rong
STR_DEPOT_CLONE_ROAD_VEHICLE :{BLACK}Kloonimine
STR_DEPOT_CLONE_SHIP :{BLACK}Klooni laev
STR_DEPOT_CLONE_AIRCRAFT :{BLACK}Klooni lennuk
STR_DEPOT_CLONE_AIRCRAFT :{BLACK}Klooni õhusõiduk
STR_DEPOT_CLONE_TRAIN_DEPOT_INFO :{BLACK}Ostetakse samasugune rong koos kõikide vagunitega. Vajuta sellele nupule, ning seejärel rongile depoo sees või väljas. «Ctrl»+klõps jagab korraldusi. «Shift»+klõps näitab eeldatavat ostuhinda
STR_DEPOT_CLONE_ROAD_VEHICLE_DEPOT_INFO :{BLACK}Ostetakse samasugune mootorsõiduk. Vajuta sellele nupule, ning seejärel mootorsõidukil depoos või sellest väljas. «Ctrl»+klõps jagab korraldusi. «Shift»+klõps näitab eeldatavat ostuhinda
@@ -3745,12 +3796,12 @@ STR_DEPOT_VEHICLE_ORDER_LIST_AIRCRAFT_TOOLTIP :{BLACK}Koosta n
STR_DEPOT_MASS_STOP_DEPOT_TRAIN_TOOLTIP :{BLACK}Vajuta, kui tahad seisata kõiki ronge jaamas
STR_DEPOT_MASS_STOP_DEPOT_ROAD_VEHICLE_TOOLTIP :{BLACK}Vajuta, kui tahad seisata kõiki masinaid garaažis
STR_DEPOT_MASS_STOP_DEPOT_SHIP_TOOLTIP :{BLACK}Klõpsa, et peatada kõik sadamas olevad laevad.
STR_DEPOT_MASS_STOP_HANGAR_TOOLTIP :{BLACK}Vajuta, kui tahad seisata kõiki lennukeid angaaris
STR_DEPOT_MASS_STOP_HANGAR_TOOLTIP :{BLACK}Vajuta, kui tahad seisata kõiki õhusõidukeid angaaris
STR_DEPOT_MASS_START_DEPOT_TRAIN_TOOLTIP :{BLACK}Klõpsa kõikide depoos asuvate rongide käivitamiseks
STR_DEPOT_MASS_START_DEPOT_ROAD_VEHICLE_TOOLTIP :{BLACK}Klõpsa, et käivitada kõik depoos olevad mootorsõidukid
STR_DEPOT_MASS_START_DEPOT_SHIP_TOOLTIP :{BLACK}Klõpsa kõikide angaaris asuvate laevade käivitamiseks
STR_DEPOT_MASS_START_HANGAR_TOOLTIP :{BLACK}Klõpsa kõikide angaaris asuvate lennukite käivitamiseks
STR_DEPOT_MASS_START_HANGAR_TOOLTIP :{BLACK}Klõpsa kõikide angaaris asuvate õhusõidukite käivitamiseks
STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Sa oled müümas kõiki depoos asuvaid masinaid. Kas sa oled kindel?
@@ -3773,9 +3824,9 @@ STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Hind: {C
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Hind: {CURRENCY_LONG} Tühimass: {WEIGHT_SHORT}{}Kiirus: {VELOCITY} Võimsus: {POWER} Veojõud: {6:FORCE}{}Käituskulud: {4:CURRENCY_LONG}/aasta{}Mahutavus: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Hind: {CURRENCY_LONG} Tippkiirus: {VELOCITY}{}Kandevõime: {CARGO_LONG}{}Käituskulud: {CURRENCY_LONG}/a
STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Maksumus: {CURRENCY_LONG} Tippkiirus: {VELOCITY}{}Õhusõiduki liik: {STRING}{}Mahutavus: {CARGO_LONG}, {CARGO_LONG}{}Käituskulud: {CURRENCY_LONG}/aasta
STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Hind: {CURRENCY_LONG} Tippkiirus: {VELOCITY}{}Lennuki tüüp: {STRING}{}kandevõime: {CARGO_LONG}{}Käitluskulud: {CURRENCY_LONG}/a
STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Hind: {CURRENCY_LONG} Tippkiirus: {VELOCITY}{}Lennuki tüüp: {STRING} Lennukaugus: {COMMA} ruutu{}Kandevõime: {CARGO_LONG}, {CARGO_LONG}{}Käituskulud: {CURRENCY_LONG}/a
STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Hind: {CURRENCY_LONG} Tippkiirus: {VELOCITY}{}Lennuki tüüp: {STRING} Lennukaugus: {COMMA} ruutu{}Kandevõime: {CARGO_LONG}{}Käituskulud: {CURRENCY_LONG}/a
STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Hind: {CURRENCY_LONG} Tippkiirus: {VELOCITY}{}Õhusõiduki liik: {STRING}{}kandevõime: {CARGO_LONG}{}Käitluskulud: {CURRENCY_LONG}/a
STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Hind: {CURRENCY_LONG} Tippkiirus: {VELOCITY}{}Õhusõiduki liik: {STRING} Lennuulatus: {COMMA} ruutu{}Kandevõime: {CARGO_LONG}, {CARGO_LONG}{}Käituskulud: {CURRENCY_LONG}/a
STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Hind: {CURRENCY_LONG} Tippkiirus: {VELOCITY}{}Õhusõiduki liik: {STRING} Lennuulatus: {COMMA} ruutu{}Kandevõime: {CARGO_LONG}{}Käituskulud: {CURRENCY_LONG}/a
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Asenda {STRING} - {STRING}
@@ -3833,7 +3884,7 @@ STR_VEHICLE_VIEW_AIRCRAFT_CENTER_TOOLTIP :{BLACK}Keskenda
STR_VEHICLE_VIEW_TRAIN_SEND_TO_DEPOT_TOOLTIP :{BLACK}Saada rong depoosse
STR_VEHICLE_VIEW_ROAD_VEHICLE_SEND_TO_DEPOT_TOOLTIP :{BLACK}Saada sõiduk garaaži. Ctrl+klõps, et ainult teenindada
STR_VEHICLE_VIEW_SHIP_SEND_TO_DEPOT_TOOLTIP :{BLACK}Saada laev angaari. Ctrl+klõps ainult teenindab
STR_VEHICLE_VIEW_AIRCRAFT_SEND_TO_DEPOT_TOOLTIP :{BLACK}Saada lennuk angaari
STR_VEHICLE_VIEW_AIRCRAFT_SEND_TO_DEPOT_TOOLTIP :{BLACK}Saada õhusõiduk angaari. Ctrl + klõps ainult hooldab
STR_VEHICLE_VIEW_CLONE_TRAIN_INFO :{BLACK}Ostab samasuguse rongi koos kõikide vagunitega. «Ctrl»+klõps jagab korraldusi. «Shift»+klõps näitab eeldatavat ostuhinda
STR_VEHICLE_VIEW_CLONE_ROAD_VEHICLE_INFO :{BLACK}Ostab samasuguse maanteesõiduki. «Ctrl»+klõps jagab korraldusi. «Shift»+klõps näitab eeldatavat ostuhinda
@@ -3858,12 +3909,12 @@ STR_VEHICLE_VIEW_AIRCRAFT_ORDERS_TOOLTIP :{BLACK}Näita l
STR_VEHICLE_VIEW_TRAIN_SHOW_DETAILS_TOOLTIP :{BLACK}Näita rongi täpsustusi
STR_VEHICLE_VIEW_ROAD_VEHICLE_SHOW_DETAILS_TOOLTIP :{BLACK}Näita mootorsõiduki täpsustusi
STR_VEHICLE_VIEW_SHIP_SHOW_DETAILS_TOOLTIP :{BLACK}Näita laeva täpsustusi
STR_VEHICLE_VIEW_AIRCRAFT_SHOW_DETAILS_TOOLTIP :{BLACK}Näita lennuki täpsustusi
STR_VEHICLE_VIEW_AIRCRAFT_SHOW_DETAILS_TOOLTIP :{BLACK}Näita õhusõiduki täpsustusi
STR_VEHICLE_VIEW_TRAIN_STATUS_START_STOP_TOOLTIP :{BLACK}Valitud rongi tegevus - klõpsa rongi käivitamiseks/peatamiseks
STR_VEHICLE_VIEW_ROAD_VEHICLE_STATUS_START_STOP_TOOLTIP :{BLACK}Valitud sõiduki tegevus - klõpsa sõiduki käivatamiseks/peatamiseks
STR_VEHICLE_VIEW_SHIP_STATE_STATUS_STOP_TOOLTIP :{BLACK}Valitud laeva tegevus - klõpsa laeva käivitamiseks/peatamiseks
STR_VEHICLE_VIEW_AIRCRAFT_STATUS_START_STOP_TOOLTIP :{BLACK}Valitud lennuki tegevus - klõpsa lennuki käivitamiseks/peatamiseks
STR_VEHICLE_VIEW_AIRCRAFT_STATUS_START_STOP_TOOLTIP :{BLACK}Valitud õhusõiduki tegevus - klõpsa õhusõiduki käivitamiseks/peatamiseks
STR_VEHICLE_VIEW_ORDER_LOCATION_TOOLTIP :{BLACK}Keskenda põhivaade korralduse sihtpunktile. Ctrl+klõps avab korralduse sihtpunktis uue vaate
@@ -3905,7 +3956,7 @@ STR_VEHICLE_INFO_AGE :{COMMA} aasta{P
STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} aasta{P "" t} ({COMMA})
STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Tippkiirus: {LTBLUE}{VELOCITY}
STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Tippkiirus: {LTBLUE}{VELOCITY} {BLACK}Lennuki tüüp: {LTBLUE}{STRING}
STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Tippkiirus: {LTBLUE}{VELOCITY} {BLACK}Õhusõiduki liik: {LTBLUE}{STRING}
STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Tippkiirus: {LTBLUE}{VELOCITY} {BLACK}Õhusõiduki liik: {LTBLUE}{STRING} {BLACK}Lennuulatus: {LTBLUE}{COMMA} ruutu
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Tühimass: {LTBLUE}{WEIGHT_SHORT} {BLACK}Võimsus: {LTBLUE}{POWER}{BLACK} Tippkiirus: {LTBLUE}{VELOCITY}
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Tühimass: {LTBLUE}{WEIGHT_SHORT} {BLACK}Võimsus: {LTBLUE}{POWER}{BLACK} Tippkiirus: {LTBLUE}{VELOCITY} {BLACK}Veojõud: {LTBLUE}{FORCE}
@@ -3992,8 +4043,8 @@ STR_ORDERS_LIST_TOOLTIP :{BLACK}Korraldu
STR_ORDER_INDEX :{COMMA}:{NBSP}
STR_ORDER_TEXT :{STRING} {STRING} {STRING}
STR_ORDERS_END_OF_ORDERS :- - Korraldused läbi - -
STR_ORDERS_END_OF_SHARED_ORDERS :- - Jagatud korraldused läbi - -
STR_ORDERS_END_OF_ORDERS :- - Korralduste lõpp - -
STR_ORDERS_END_OF_SHARED_ORDERS :- - Jagatud korralduste lõpp - -
# Order bottom buttons
STR_ORDER_NON_STOP :{BLACK}Vahepeatusteta
@@ -4273,13 +4324,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
STR_SCREENSHOT_CAPTION :{WHITE}Tee ekraanipilt
STR_SCREENSHOT_SCREENSHOT :{BLACK}Tavaline ekraanipilt
STR_SCREENSHOT_ZOOMIN_SCREENSHOT :{BLACK}Täissuurendusega ekraanipilt
STR_SCREENSHOT_DEFAULTZOOM_SCREENSHOT :{BLACK}Ekraanipildi vaikimisi suurendus
STR_SCREENSHOT_WORLD_SCREENSHOT :{BLACK}Terve kaardi ekraanipilt
STR_SCREENSHOT_HEIGHTMAP_SCREENSHOT :{BLACK}Kõrguskaardi ekraanipilt
STR_SCREENSHOT_MINIMAP_SCREENSHOT :{BLACK}Pisikaardi ekraanipilt
# AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} parameetrid
@@ -4367,8 +4418,9 @@ STR_WARNING_FALLBACK_SOUNDSET :{WHITE}Mäng ei
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}Kuvapaugutus on edukalt salvestatud nimega '{STRING}'
STR_ERROR_SCREENSHOT_FAILED :{WHITE}Kuvapaugutuse tegemine nurjus!
STR_MESSAGE_HEIGHTMAP_SUCCESSFULLY :{WHITE}Kõrguskaart edukalt salvestatud, kui '{STRING}'. Kõrgpunkt on {NUM}
STR_MESSAGE_SCREENSHOT_SUCCESSFULLY :{WHITE}Ekraanipilt on edukalt salvestatud nimega '{STRING}'
STR_ERROR_SCREENSHOT_FAILED :{WHITE}Ekraanipildi tegemine nurjus!
# Error message titles
STR_ERROR_MESSAGE_CAPTION :{YELLOW}Sõnum
@@ -4593,7 +4645,7 @@ STR_ERROR_CAN_T_BUILD_ON_SEA :{WHITE}... ei s
STR_ERROR_CAN_T_BUILD_ON_CANAL :{WHITE}... ei saa ehitada kanali peale
STR_ERROR_CAN_T_BUILD_ON_RIVER :{WHITE}... ei saa ehitada jõe peale
STR_ERROR_MUST_DEMOLISH_CANAL_FIRST :{WHITE}Kanal tuleb enne lammutada
STR_ERROR_CAN_T_BUILD_AQUEDUCT_HERE :{WHITE}Siia ei saa veejuhet ehitada...
STR_ERROR_CAN_T_BUILD_AQUEDUCT_HERE :{WHITE}Siia ei saa veesilda ehitada...
# Tree related errors
STR_ERROR_TREE_ALREADY_HERE :{WHITE}... siin on juba puu olemas
@@ -4643,7 +4695,7 @@ STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}Jagatud
STR_ERROR_TRAIN_IN_THE_WAY :{WHITE}Rong on ees
STR_ERROR_ROAD_VEHICLE_IN_THE_WAY :{WHITE}Mootorsõiduk takistab teed
STR_ERROR_SHIP_IN_THE_WAY :{WHITE}Laev on ees
STR_ERROR_AIRCRAFT_IN_THE_WAY :{WHITE}Lennuk on teel
STR_ERROR_AIRCRAFT_IN_THE_WAY :{WHITE}Õhusõiduk on teel
STR_ERROR_CAN_T_REFIT_TRAIN :{WHITE}Ei saa rongi ümberseadistada...
STR_ERROR_CAN_T_REFIT_ROAD_VEHICLE :{WHITE}Ei saa maanteesõidukit ümberseadistada...
@@ -4658,17 +4710,17 @@ STR_ERROR_CAN_T_RENAME_AIRCRAFT :{WHITE}Ei saa
STR_ERROR_CAN_T_STOP_START_TRAIN :{WHITE}Ei saa peatada/startida rongi...
STR_ERROR_CAN_T_STOP_START_ROAD_VEHICLE :{WHITE}Ei saa veokit peatada, ega startida...
STR_ERROR_CAN_T_STOP_START_SHIP :{WHITE}Ei saa peatada/käivitada laeva...
STR_ERROR_CAN_T_STOP_START_AIRCRAFT :{WHITE}Ei saa lennukit peatada/käivitada...
STR_ERROR_CAN_T_STOP_START_AIRCRAFT :{WHITE}Ei saa õhusõidukit peatada/käivitada...
STR_ERROR_CAN_T_SEND_TRAIN_TO_DEPOT :{WHITE}Rongi ei saa depoosse saata...
STR_ERROR_CAN_T_SEND_ROAD_VEHICLE_TO_DEPOT :{WHITE}Ei saa veokit garaaži saata
STR_ERROR_CAN_T_SEND_SHIP_TO_DEPOT :{WHITE}Ei saa laeva angaari saata...
STR_ERROR_CAN_T_SEND_AIRCRAFT_TO_HANGAR :{WHITE}Ei saa lennukit angaari saata...
STR_ERROR_CAN_T_SEND_AIRCRAFT_TO_HANGAR :{WHITE}Ei saa õhusõidukit angaari saata...
STR_ERROR_CAN_T_BUY_TRAIN :{WHITE}Rööbassõidukit ei saa osta...
STR_ERROR_CAN_T_BUY_ROAD_VEHICLE :{WHITE}Mootorsõidukit ei saa osta...
STR_ERROR_CAN_T_BUY_SHIP :{WHITE}Laeva ei saa osta...
STR_ERROR_CAN_T_BUY_AIRCRAFT :{WHITE}Lennukit ei saa osta...
STR_ERROR_CAN_T_BUY_AIRCRAFT :{WHITE}Õhusõidukit ei saa osta...
STR_ERROR_CAN_T_RENAME_TRAIN_TYPE :{WHITE}Ei saa rööbassõiduki liiki ümbernimetada...
STR_ERROR_CAN_T_RENAME_ROAD_VEHICLE_TYPE :{WHITE}Ei saa maanteesõiduki liiki ümbernimetada...
@@ -4678,12 +4730,12 @@ STR_ERROR_CAN_T_RENAME_AIRCRAFT_TYPE :{WHITE}Ei saa
STR_ERROR_CAN_T_SELL_TRAIN :{WHITE}Rööbassõidukit ei saa müüa...
STR_ERROR_CAN_T_SELL_ROAD_VEHICLE :{WHITE}Ei saa veokit müüa...
STR_ERROR_CAN_T_SELL_SHIP :{WHITE}Ei saa laeva müüa
STR_ERROR_CAN_T_SELL_AIRCRAFT :{WHITE}Ei saa lennukit müüa...
STR_ERROR_CAN_T_SELL_AIRCRAFT :{WHITE}Ei saa õhusõidukit müüa...
STR_ERROR_RAIL_VEHICLE_NOT_AVAILABLE :{WHITE}Sõiduk pole saadaval
STR_ERROR_ROAD_VEHICLE_NOT_AVAILABLE :{WHITE}Sõiduk pole saadaval
STR_ERROR_SHIP_NOT_AVAILABLE :{WHITE}Laev pole saadaval
STR_ERROR_AIRCRAFT_NOT_AVAILABLE :{WHITE}Lennuk pole saadaval
STR_ERROR_AIRCRAFT_NOT_AVAILABLE :{WHITE}Õhusõiduk pole saadaval
STR_ERROR_TOO_MANY_VEHICLES_IN_GAME :{WHITE}Mängus on liiga palju veovahendeid
STR_ERROR_CAN_T_CHANGE_SERVICING :{WHITE}Hooldusvahemikku ei saa muuta...
@@ -4702,7 +4754,7 @@ STR_ERROR_TRAIN_START_NO_POWER :Rongil puudub j
STR_ERROR_CAN_T_MAKE_ROAD_VEHICLE_TURN :{WHITE}Maanteesõiduk ei saa ümber pöörata...
STR_ERROR_AIRCRAFT_IS_IN_FLIGHT :{WHITE}Lennuk on õhus
STR_ERROR_AIRCRAFT_IS_IN_FLIGHT :{WHITE}Õhusõiduk lendab
# Order related errors
STR_ERROR_NO_MORE_SPACE_FOR_ORDERS :{WHITE}Korraldustele pole rohkem ruumi
@@ -4721,7 +4773,7 @@ STR_ERROR_CAN_T_SHARE_ORDER_LIST :{WHITE}Sihtpunk
STR_ERROR_CAN_T_STOP_SHARING_ORDER_LIST :{WHITE}Korralduste jagamist ei saa peatada...
STR_ERROR_CAN_T_COPY_ORDER_LIST :{WHITE}Sihtpunktide nimekirja ei saa kopeerida...
STR_ERROR_TOO_FAR_FROM_PREVIOUS_DESTINATION :{WHITE}... liiga kaugel eelmisest sihtpunktist
STR_ERROR_AIRCRAFT_NOT_ENOUGH_RANGE :{WHITE}... lennukil pole piisavalt pikka tegevusraadiust
STR_ERROR_AIRCRAFT_NOT_ENOUGH_RANGE :{WHITE}... ebapiisav õhusõiduki lennuulatus
# Timetable related errors
STR_ERROR_CAN_T_TIMETABLE_VEHICLE :{WHITE}Sõidukile ei saa graafikut määrata...
@@ -5127,7 +5179,7 @@ STR_VEHICLE_NAME_AIRCRAFT_POWERNAUT_HELICOPTER :Powernaut helik
##id 0x8800
# Formatting of some strings
STR_FORMAT_DATE_TINY :{STRING}-{STRING}-{NUM}
STR_FORMAT_DATE_SHORT :{STRING} {NUM}
STR_FORMAT_DATE_SHORT :{1:NUM}. {0:STRING}
STR_FORMAT_DATE_LONG :{STRING} {STRING} {NUM}
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
@@ -5142,7 +5194,7 @@ STR_FORMAT_WAYPOINT_NAME_SERIAL :Meldepunkt {TOW
STR_FORMAT_DEPOT_NAME_TRAIN :{TOWN} Rongi depoo
STR_FORMAT_DEPOT_NAME_TRAIN_SERIAL :{TOWN} Rongi depoo nr {COMMA}
STR_FORMAT_DEPOT_NAME_ROAD_VEHICLE :{TOWN} Teesõidukite depoo
STR_FORMAT_DEPOT_NAME_ROAD_VEHICLE :{TOWN} Maanteesõidukite depoo
STR_FORMAT_DEPOT_NAME_ROAD_VEHICLE_SERIAL :{TOWN} Teesõidukite depoo nr {COMMA}
STR_FORMAT_DEPOT_NAME_SHIP :{TOWN} Laeva depoo
STR_FORMAT_DEPOT_NAME_SHIP_SERIAL :{TOWN} Laeva depoo nr {COMMA}

View File

@@ -944,6 +944,10 @@ STR_GAME_OPTIONS_RESOLUTION_OTHER :annað
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Base grafikk sett
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Vel ta base grafikk setti tú vil brúka
STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} vantandi/oyðiløgd fíl{P a ir}
@@ -1533,6 +1537,8 @@ STR_CONFIG_ERROR_INVALID_GRF_UNKNOWN :ókendur
STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Einki minni eftir
STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Leitan eftir {BYTES} av spritecache eydnaðist ikki. Spritecache var skerd til {BYTES}. Hetta vil skerja framførsluna av OpenTTD. Fyri at minka um minnis krøvini kann tú royna at sløkkja fyri 32bpp grafikki og/ella suma-in stig
# Video initalization errors
# Intro window
STR_INTRO_CAPTION :{WHITE}OpenTTD {REV}
@@ -2043,6 +2049,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD
STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Ja, heinta niður grafikkin
STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Nei, gevst at spæla OpenTTD
# Transparency settings window
STR_TRANSPARENCY_CAPTION :{WHITE}Gjøgnumskygnis møguleikar
STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Sløkk/tendra gjøgnumskygni fyri skelti. Ctrl+trýst fyri at læsa
@@ -2432,9 +2439,6 @@ STR_MAPGEN_BY :{BLACK}*
STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}Nr. av bygdum:
STR_MAPGEN_DATE :{BLACK}Dato:
STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Nr. av ídnaðum:
STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Hædd á kava linju:
STR_MAPGEN_SNOW_LINE_UP :{BLACK}Flyt kava linjuna eitt upp
STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Flyt kava linjuna eitt niður
STR_MAPGEN_LAND_GENERATOR :{BLACK}Lendis framleiðari:
STR_MAPGEN_TERRAIN_TYPE :{BLACK}Slag av lendi:
STR_MAPGEN_QUANTITY_OF_SEA_LAKES :{BLACK}Sjóvarmáli:
@@ -2460,7 +2464,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Navn á
STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Stødd:
STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} * {NUM}
STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Broyt hædd á kava linju
STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Broyt byrjunar ár
# SE Map generation
@@ -2670,10 +2673,8 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Keyp 1
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Mutra mynduleikan á staðnum fyri at økju um tína meting, við vanda fyri hvassari revsing um tað verður avdúka.{}Kostnaður: {CURRENCY_LONG}
# Goal window
STR_GOALS_GLOBAL_TITLE :{BLACK}Heimsfevnandi mál:
STR_GOALS_TEXT :{ORANGE}{STRING}
STR_GOALS_NONE :{ORANGE}- Einki -
STR_GOALS_COMPANY_TITLE :{BLACK}Fyritøku mál:
STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Trýst á mál fyri at savna høvuðs sýni á ídnað/bygd/punt. Ctrl+trýst letur upp nýggjan sýnisglugga á ídnað/bygd/punt
# Goal question window

View File

@@ -755,7 +755,7 @@ STR_SMALLMAP_LEGENDA_WATER :{TINY_FONT}{BLA
STR_SMALLMAP_LEGENDA_NO_OWNER :{TINY_FONT}{BLACK}Ei omistajaa
STR_SMALLMAP_LEGENDA_TOWNS :{TINY_FONT}{BLACK}Taajamia
STR_SMALLMAP_LEGENDA_INDUSTRIES :{TINY_FONT}{BLACK}Teollisuutta
STR_SMALLMAP_LEGENDA_DESERT :{TINY_FONT}{BLACK}Autiomaata
STR_SMALLMAP_LEGENDA_DESERT :{TINY_FONT}{BLACK}Aavikko
STR_SMALLMAP_LEGENDA_SNOW :{TINY_FONT}{BLACK}Lunta
STR_SMALLMAP_TOOLTIP_TOGGLE_TOWN_NAMES_ON_OFF :{BLACK}Näytä kuntien nimet kartalla
@@ -947,6 +947,7 @@ STR_GAME_OPTIONS_CURRENCY_CNY :Kiinan renminbi
STR_GAME_OPTIONS_CURRENCY_HKD :Hongkongin dollari (HKD)
STR_GAME_OPTIONS_CURRENCY_INR :Intian rupia (INR)
STR_GAME_OPTIONS_CURRENCY_IDR :Indonesian rupia (IDR)
STR_GAME_OPTIONS_CURRENCY_MYR :Malesian ringgit (MYR)
############ end of currency region
STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_LEFT :Vasemmanpuolinen liikenne
@@ -999,6 +1000,14 @@ STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}Valitse
STR_GAME_OPTIONS_RESOLUTION :{BLACK}Näytön tarkkuus
STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Valitse käytettävä näytön tarkkuus
STR_GAME_OPTIONS_RESOLUTION_OTHER :muu
STR_GAME_OPTIONS_RESOLUTION_ITEM :{NUM}×{NUM}
STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Laitteistokiihdytys
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Valitse tämä, jos haluat, että OpenTTD yrittää käyttää laitteistokiihdytystä. Muutettu asetus tulee voimaan vasta pelin uudelleenkäynnistyksen jälkeen.
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}Asetus tulee voimaan vasta pelin uudelleenkäynnistyksen jälkeen
STR_GAME_OPTIONS_VIDEO_VSYNC :{BLACK}Pystytahdistus
STR_GAME_OPTIONS_VIDEO_VSYNC_TOOLTIP :{BLACK}Valitse tämä ottaaksesi käyttöön näytön pystytahdistuksen. Muutettu asetus tulee voimaan vasta pelin uudelleenkäynnistyksen jälkeen. Edellyttää, että laitteistokiihdytys on käytössä.
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Käyttöliittymän koko
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Valitse käyttöliittymäelementtien koko
@@ -1016,6 +1025,14 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normaali
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Kaksinkertainen koko
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Nelinkertainen koko
STR_GAME_OPTIONS_GRAPHICS :{BLACK}Grafiikka
STR_GAME_OPTIONS_REFRESH_RATE :{BLACK}Näytön virkistystaajuus
STR_GAME_OPTIONS_REFRESH_RATE_TOOLTIP :{BLACK}Valitse käytettävä näytönvirkistystaajuus
STR_GAME_OPTIONS_REFRESH_RATE_OTHER :muu
STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM} Hz
STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE}Yli 60 Hz:n virkistystaajuudet saattavat vaikuttaa suorituskykyyn.
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Perusgrafiikat
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Valitse käytettävät perusgrafiikat
STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} puuttuva{P "" a}/korruptoitunut{P "" ta} tiedosto{P "" a}
@@ -1110,6 +1127,8 @@ STR_TERRAIN_TYPE_FLAT :Tasainen
STR_TERRAIN_TYPE_HILLY :Kukkulainen
STR_TERRAIN_TYPE_MOUNTAINOUS :Vuoristoinen
STR_TERRAIN_TYPE_ALPINIST :Vuorikiipeilijä
STR_TERRAIN_TYPE_CUSTOM :Oma korkeus
STR_TERRAIN_TYPE_CUSTOM_VALUE :Oma korkeus ({NUM})
STR_CITY_APPROVAL_PERMISSIVE :Salliva
STR_CITY_APPROVAL_TOLERANT :Suvaitseva
@@ -1191,9 +1210,11 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Ottaa käyttö
STR_CONFIG_SETTING_CITY_APPROVAL :Valtuuston asenne alueiden uudelleenjärjestelyyn: {STRING}
STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Valitse, kuinka paljon yhtiöiden aiheuttama melu ja ympäristövahingot vaikuttavat niiden arvioihin sekä tuleviin rakennustoimiin alueella
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :Kartan suurin sallittu korkeus: {STRING}
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :Määritä suurin sallittu korkeus vuorille
STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}Tämä arvo ei kelpaa kartan suurimmaksi sallituksi korkeudeksi, sillä kartalla on ainakin yksi sitä korkeampi vuori
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT :Kartan korkeusraja: {STRING}
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_HELPTEXT :Aseta kartan maaston maksimikorkeus. Kun valittuna on ”(auto)”, sopiva arvo valitaan maaston luomisen jälkeen
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_VALUE :{NUM}
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_AUTO :(auto)
STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}Tämä arvo ei kelpaa kartan korkeusrajaksi, sillä kartalla on ainakin yksi sitä korkeampi vuori
STR_CONFIG_SETTING_AUTOSLOPE :Salli maaston muokkaaminen rakennusten, raiteiden jne. juurella: {STRING}
STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Sallii maaston muokkaamisen rakennusten ja ratojen alta tuhoamatta niitä
STR_CONFIG_SETTING_CATCHMENT :Realistisemman kokoiset vaikutusalueet: {STRING}
@@ -1337,7 +1358,13 @@ STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Määritä, kui
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Suurin sallittu etäisyys kartan reunoilta öljyteollisuudelle: {STRING}
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Öljynjalostamojen ja öljylauttojen suurin etäisyys kartan reunasta. Saarikartoilla tämä takaa sen, että ne ovat lähellä rannikkoa. Yli 256 ruudun kartoilla tätä arvoa suurennetaan suhteessa kartan kokoon.
STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Lumirajan korkeus: {STRING}
STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Määritä, millä korkeudella lumiraja on pohjoisessa maastotyypissä. Lumi vaikuttaa teollisuuslaitosten luontiin sekä kuntien kasvuedellytyksiin
STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Määritä, millä korkeudella lumiraja on pohjoisessa maastotyypissä. Lumi vaikuttaa teollisuuslaitosten luontiin sekä kuntien kasvuedellytyksiin. Voidaan muuttaa vain Skenaariomuokkaimessa, muuten lasketaan ”lumen peiton” perusteella
STR_CONFIG_SETTING_SNOW_COVERAGE :Lumen peitto: {STRING}
STR_CONFIG_SETTING_SNOW_COVERAGE_HELPTEXT :Säätele lumen määrän suuruusluokkaa pohjoisessa maastossa. Lumi vaikuttaa myös teollisuuden luontiin ja kuntien kasvuedellytyksiin. Käytetään vain karttaa luodessa. Juuri merenpinnan yläpuolella oleva maa on aina lumetonta
STR_CONFIG_SETTING_SNOW_COVERAGE_VALUE :{NUM}{NBSP}%
STR_CONFIG_SETTING_DESERT_COVERAGE :Aavikon peitto: {STRING}
STR_CONFIG_SETTING_DESERT_COVERAGE_HELPTEXT :Säätele aavikon määrän suuruusluokkaa subtrooppisessa maastossa. Aavikko vaikuttaa myös teollisuuden luontiin. Käytetään vain karttaa luodessa
STR_CONFIG_SETTING_DESERT_COVERAGE_VALUE :{NUM}{NBSP}%
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Maaston epätasaisuus: {STRING}
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(Vain TerraGenesis) Määritä mäkien tiheys: Tasaisessa maastossa mäet ovat laajempia ja niitä on vähemmän. Epätasaisessa maastossa on enemmän mäkiä, mikä voi saada maaston näyttämään itseään toistavalta
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Erittäin tasainen
@@ -1453,6 +1480,10 @@ STR_CONFIG_SETTING_EXPENSES_LAYOUT :Ryhmitä kulut
STR_CONFIG_SETTING_EXPENSES_LAYOUT_HELPTEXT :Määritä asettelu yhtiön rahoitusikkunalle
STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS :Poista automaattisesti opastimia rautateitä rakennettaessa: {STRING}
STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS_HELPTEXT :Poista automaattisesti opastimia, jos ne ovat rautatien rakentamisen tiellä. Huomaa, että tämä saattaa johtaa junien yhteentörmäyksiin.
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT :Nopeutetun pelin enimmäisnopeus: {STRING}
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_HELPTEXT :Yläraja pelin nopeudelle, kun pelin nopeutus on käytössä. 0 = ei rajoitusta (niin nopeasti kuin tietokoneesi sallii). Alle 100 %:n arvot hidastavat peliä. Yläraja riippuu tietokoneesi ominaisuuksista ja voi vaihdella pelistä riippuen.
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_VAL :{NUM} % pelin normaalinopeudesta
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_ZERO :Ei rajoitusta (niin nopeasti kuin koneesi sallii)
STR_CONFIG_SETTING_SOUND_TICKER :Uutiset: {STRING}
STR_CONFIG_SETTING_SOUND_TICKER_HELPTEXT :Toista ääni tiivistetyille uutisviesteille
@@ -1643,12 +1674,17 @@ STR_CONFIG_SETTING_ZOOM_MIN :Suurin sallittu
STR_CONFIG_SETTING_ZOOM_MIN_HELPTEXT :Suurin mahdollinen lähennystaso näkymille. Huomioi, että suuret lähennystasot vaativat enemmän muistia
STR_CONFIG_SETTING_ZOOM_MAX :Suurin sallittu pienennystaso: {STRING}
STR_CONFIG_SETTING_ZOOM_MAX_HELPTEXT :Pienin mahdollinen lähennystaso näkymille. Pienet lähennystasot voivat aiheuttaa suorituskykyongelmia
STR_CONFIG_SETTING_SPRITE_ZOOM_MIN :Korkein käytettävä sprite-resoluutio: {STRING}
STR_CONFIG_SETTING_SPRITE_ZOOM_MIN_HELPTEXT :Rajoita suurinta spriteille käytettävää resoluutiota. Resoluution rajoittaminen estää korkean tarkkuuden grafiikoiden käyttämisen vaikka niitä olisi saatavilla. Tämä voi auttaa pitämään pelin ulkoasun yhtenäisenä käytettäessä sekaisin GRF-tiedostoja, joista osalla on ja osalla ei ole korkean tarkkuuden grafiikoita.
STR_CONFIG_SETTING_ZOOM_LVL_MIN :4x
STR_CONFIG_SETTING_ZOOM_LVL_IN_2X :2x
STR_CONFIG_SETTING_ZOOM_LVL_NORMAL :Tavallinen
STR_CONFIG_SETTING_ZOOM_LVL_OUT_2X :2x
STR_CONFIG_SETTING_ZOOM_LVL_OUT_4X :4x
STR_CONFIG_SETTING_ZOOM_LVL_OUT_8X :8x
STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_MIN :4x
STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_IN_2X :2x
STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_NORMAL :1x
STR_CONFIG_SETTING_TOWN_GROWTH :Kuntien kasvunopeus: {STRING}
STR_CONFIG_SETTING_TOWN_GROWTH_HELPTEXT :Kunnan kasvunopeus
STR_CONFIG_SETTING_TOWN_GROWTH_NONE :Ei kasvua
@@ -1782,6 +1818,10 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... ohit
STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Muisti lopussa
STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}{BYTES} sprite-välimuistin varaaminen epäonnistui. Sprite-välimuistin kooksi valittiin {BYTES}. Tämä heikentää OpenTTD:n suorituskykyä. Vähentääksesi muistivaatimuksia voit kokeilla poistaa käytöstä 32bpp-grafiikat ja/tai lähennystasoja
# Video initalization errors
STR_VIDEO_DRIVER_ERROR :{WHITE}Virhe näyttöasetuksissa…
STR_VIDEO_DRIVER_ERROR_NO_HARDWARE_ACCELERATION :{WHITE}… yhteensopivaa grafiikkasuoritinta ei löytynyt. Laitteistokiihdytystä ei käytetä.
# Intro window
STR_INTRO_CAPTION :{WHITE}OpenTTD {REV}
@@ -2310,7 +2350,11 @@ STR_CONTENT_ERROR_COULD_NOT_EXTRACT :{WHITE}Ei voitu
STR_MISSING_GRAPHICS_SET_CAPTION :{WHITE}Puuttuvat grafiikat
STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD vaatii toimiakseen grafiikat, mutta niitä ei löydetty. Sallitaanko grafiikoiden lataus ja asennus?
STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Kyllä, lataa grafiiikat
STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Ei, sulje OpenTTD
STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Ei, lopeta OpenTTD
STR_MISSING_GRAPHICS_ERROR_TITLE :{WHITE}Lataus epäonnistui
STR_MISSING_GRAPHICS_ERROR :{BLACK}Grafiikoiden lataus epäonnistui.{}Lataa grafiikat manuaalisesti.
STR_MISSING_GRAPHICS_ERROR_QUIT :{BLACK}Lopeta OpenTTD
# Transparency settings window
STR_TRANSPARENCY_CAPTION :{WHITE}Läpinäkyvyysasetukset
@@ -2861,12 +2905,17 @@ STR_MAPGEN_BY :{BLACK}×
STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}Kuntien määrä:
STR_MAPGEN_DATE :{BLACK}Päivämäärä:
STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Teollisuuden määrä:
STR_MAPGEN_MAX_HEIGHTLEVEL :{BLACK}Suurin sallittu kartan korkeus:
STR_MAPGEN_MAX_HEIGHTLEVEL_UP :{BLACK}Kasvata suurinta sallittua vuorten korkeutta yhdellä
STR_MAPGEN_MAX_HEIGHTLEVEL_DOWN :{BLACK}Vähennä suurinta sallittua vuorten korkeutta yhdellä
STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Lumirajan korkeus:
STR_MAPGEN_SNOW_LINE_UP :{BLACK}Siirrä lumirajaa yksi taso ylöspäin
STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Siirrä lumirajaa yksi taso alaspäin
STR_MAPGEN_HEIGHTMAP_HEIGHT :{BLACK}Korkein huippu:
STR_MAPGEN_HEIGHTMAP_HEIGHT_UP :{BLACK}Korota kartan korkeimman huipun maksimikorkeutta yhdellä
STR_MAPGEN_HEIGHTMAP_HEIGHT_DOWN :{BLACK}Madalla kartan korkeimman huipun maksimikorkeutta yhdellä
STR_MAPGEN_SNOW_COVERAGE :{BLACK}Lumen peitto:
STR_MAPGEN_SNOW_COVERAGE_UP :{BLACK}Kasvata lumen peittoa 10 prosentilla
STR_MAPGEN_SNOW_COVERAGE_DOWN :{BLACK}Vähennä lumen peittoa 10 prosentilla
STR_MAPGEN_SNOW_COVERAGE_TEXT :{BLACK}{NUM}{NBSP}%
STR_MAPGEN_DESERT_COVERAGE :{BLACK}Aavikon peitto:
STR_MAPGEN_DESERT_COVERAGE_UP :{BLACK}Kasvata aavikon peittoa 10 prosentilla
STR_MAPGEN_DESERT_COVERAGE_DOWN :{BLACK}Vähennä aavikon peittoa 10 prosentilla
STR_MAPGEN_DESERT_COVERAGE_TEXT :{BLACK}{NUM}{NBSP}%
STR_MAPGEN_LAND_GENERATOR :{BLACK}Maastogeneraattori:
STR_MAPGEN_TERRAIN_TYPE :{BLACK}Maaston tyyppi:
STR_MAPGEN_QUANTITY_OF_SEA_LAKES :{BLACK}Merenpinta:
@@ -2892,8 +2941,10 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Korkeusk
STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Koko:
STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM}×{NUM}
STR_MAPGEN_MAX_HEIGHTLEVEL_QUERY_CAPT :{WHITE}Muuta suurinta sallittua kartan korkeutta
STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Vaihda lumirajan korkeutta
STR_MAPGEN_TERRAIN_TYPE_QUERY_CAPT :{WHITE}Huipun tavoitekorkeus
STR_MAPGEN_HEIGHTMAP_HEIGHT_QUERY_CAPT :{WHITE}Korkein huippu
STR_MAPGEN_SNOW_COVERAGE_QUERY_CAPT :{WHITE}Lumen peitto (%)
STR_MAPGEN_DESERT_COVERAGE_QUERY_CAPT :{WHITE}Aavikon peitto (%)
STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Vaihda aloitusvuosi
# SE Map generation
@@ -3171,26 +3222,27 @@ STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Rahoita uusia r
STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Osta yksinoikeudet kuljetuksiin
STR_LOCAL_AUTHORITY_ACTION_BRIBE :Lahjo viranomaisia
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Käynnistä pieni mainoskampanja hoikutellaksesi lisää matkustajia ja rahtia kuljetuspalveluihisi.{}Kustannus: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Käynnistä keskikokoinen mainoskampanja houkutellaksesi lisää matkustajia ja rahtia kuljetuspalveluihisi.{}Kustannus: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Käynnistä suuri mainoskampanja hoikutellaksesi lisää matkustajia ja rahtia kuljetuspalveluihisi.{}Kustannus: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Rahoita tieverkon uudelleenrakentamista. Aiheuttaa huomattavaa häiriötä tieliikenteessä jopa kuuden kuukauden ajan.{}Kustannus: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Rakenna patsas yhtiösi kunniaksi.{}Kustannus: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Rahoita uusien liikerakennusten rakentamista kunnassa.{}Kustannus: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Osta vuoden yksinoikeudet kunnan liikennöintiin. Paikallisviranomaiset eivät salli muiden yhtiöiden kuljettaa matkustajia ja rahtia.{}Kustannus: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Käynnistä pieni mainoskampanja hoikutellaksesi lisää matkustajia ja rahtia kuljetuspalveluihisi.{}Tämä kasvattaa tilapäisesti asemien arvioita pienellä säteellä kunnan keskustan ympärillä.{}Kustannus: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Käynnistä keskikokoinen mainoskampanja houkutellaksesi lisää matkustajia ja rahtia kuljetuspalveluihisi.{}Tämä kasvattaa tilapäisesti asemien arvioita keskikokoisella säteellä kunnan keskustan ympärillä.{}Kustannus: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Käynnistä suuri mainoskampanja hoikutellaksesi lisää matkustajia ja rahtia kuljetuspalveluihisi.{}Tämä kasvattaa tilapäisesti asemien arvioita suurella säteellä kunnan keskustan ympärillä.{}Kustannus: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Rahoita tieverkon uudelleenrakentamista.{}Aiheuttaa huomattavaa häiriötä tieliikenteessä jopa kuuden kuukauden ajan.{}Kustannus: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Rakenna patsas yhtiösi kunniaksi.{}Parantaa asemien arvioita pysyvästi tässä kunnassa.{}Kustannus: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Rahoita uusien liikerakennusten rakentamista kunnassa.{}Tämä kiihdyttää tämän kunnan kasvua tilapäisesti.{}Kustannus: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Osta vuoden yksinoikeudet kunnan liikennöintiin.{}Tällöin paikallisviranomaiset eivät salli matkustajien ja rahdin käyttää kilpailijoittesi asemia.{}Kustannus: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Lahjo viranomaisia lisätäksesi arviotasi; rangaistus voi olla kuitenkin suuri, jos jäät kiinni.{}Kustannus: {CURRENCY_LONG}
# Goal window
STR_GOALS_CAPTION :{WHITE}{COMPANY} Tavoitteet
STR_GOALS_SPECTATOR_CAPTION :{WHITE}Maailmanlaajuiset tavoitteet
STR_GOALS_SPECTATOR :Maailmanlaajuiset tavoitteet
STR_GOALS_GLOBAL_TITLE :{BLACK}Maailmanlaajuiset tavoitteet:
STR_GOALS_GLOBAL_BUTTON :{BLACK}Maailmanlaajuiset
STR_GOALS_GLOBAL_BUTTON_HELPTEXT :{BLACK}Näytä maailmanlaajuiset tavoitteet
STR_GOALS_COMPANY_BUTTON :{BLACK}Yhtiö
STR_GOALS_COMPANY_BUTTON_HELPTEXT :{BLACK}Näytä yhtiön tavoitteet
STR_GOALS_TEXT :{ORANGE}{STRING}
STR_GOALS_NONE :{ORANGE}- Ei mitään -
STR_GOALS_SPECTATOR_NONE :{ORANGE}- Ei saatavilla -
STR_GOALS_PROGRESS :{ORANGE}{STRING}
STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING}
STR_GOALS_COMPANY_TITLE :{BLACK}Yhtiön tavoitteet:
STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Keskitä päänäkymä laitokseen/kuntaan/ruutuun napsauttamalla tavoitetta. Ctrl+napsautus avaa uuden näkymäikkunan laitoksen/kunnan/ruudun sijaintiin.
# Goal question window
@@ -3561,6 +3613,7 @@ STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Moottoro
STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Sovitettavissa: {GOLD}{STRING}
STR_PURCHASE_INFO_ALL_TYPES :Kaikki rahtityypit
STR_PURCHASE_INFO_NONE :Ei mitään
STR_PURCHASE_INFO_ENGINES_ONLY :Vain veturit
STR_PURCHASE_INFO_ALL_BUT :Kaikki paitsi {CARGO_LIST}
STR_PURCHASE_INFO_MAX_TE :{BLACK}Suurin vetovoima: {GOLD}{FORCE}
STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Toimintasäde: {GOLD}{COMMA} ruutua
@@ -4308,6 +4361,7 @@ STR_WARNING_FALLBACK_SOUNDSET :{WHITE}Vain til
STR_WARNING_SCREENSHOT_SIZE_CAPTION :{WHITE}Suuri kuvankaappaus
STR_WARNING_SCREENSHOT_SIZE_MESSAGE :{YELLOW}Kuvankaappauksen tarkkuus tulee olemaan {COMMA} x {COMMA} pikseliä. Kuvankaappauksen ottaminen voi kestää jonkin aikaa. Haluatko jatkaa?
STR_MESSAGE_HEIGHTMAP_SUCCESSFULLY :{WHITE}Korkeuskartta tallennettu nimellä ”{STRING}”. Korkein huippu on {NUM}
STR_MESSAGE_SCREENSHOT_SUCCESSFULLY :{WHITE}Kuvakaappaus tallennettu nimellä ”{STRING}”.
STR_ERROR_SCREENSHOT_FAILED :{WHITE}Kuvakaappaus epäonnistui!
@@ -4413,7 +4467,7 @@ STR_ERROR_CAN_T_BUILD_CARGO_TRAM_STATION :{WHITE}Ei voi r
STR_ERROR_CAN_T_BUILD_DOCK_HERE :{WHITE}Satamaa ei voi rakentaa tähän...
STR_ERROR_CAN_T_BUILD_AIRPORT_HERE :{WHITE}Lentokenttää ei voi rakentaa...
STR_ERROR_ADJOINS_MORE_THAN_ONE_EXISTING :{WHITE}Liitä yhteen useampi asema/lastausalue.
STR_ERROR_ADJOINS_MORE_THAN_ONE_EXISTING :{WHITE}Vieressä on useampi kuin yksi olemassaoleva asema tai kuormausalue.
STR_ERROR_STATION_TOO_SPREAD_OUT :{WHITE}... asema liian levittäytynyt
STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Liian monta asemaa ja lastausaluetta.
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Rautatieasema on jakautunut liian moneen osaan
@@ -4446,7 +4500,7 @@ STR_ERROR_MUST_DEMOLISH_DOCK_FIRST :{WHITE}Satama p
STR_ERROR_MUST_DEMOLISH_AIRPORT_FIRST :{WHITE}Lentokenttä pitää tuhota ensin.
# Waypoint related errors
STR_ERROR_WAYPOINT_ADJOINS_MORE_THAN_ONE_EXISTING :{WHITE}Liittää useamman kuin yhden reittipisteen
STR_ERROR_WAYPOINT_ADJOINS_MORE_THAN_ONE_EXISTING :{WHITE}Vieressä on useampi kuin yksi olemassaoleva reittipiste.
STR_ERROR_TOO_CLOSE_TO_ANOTHER_WAYPOINT :{WHITE}Liian lähellä toista reittipistettä
STR_ERROR_CAN_T_BUILD_TRAIN_WAYPOINT :{WHITE}Junien reittipistettä ei voi rakentaa tähän...

View File

@@ -161,7 +161,7 @@ STR_ABBREV_BATTERIES :{TINY_FONT}BA
STR_ABBREV_PLASTIC :{TINY_FONT}PL
STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}GZ
STR_ABBREV_NONE :{TINY_FONT}NO
STR_ABBREV_ALL :{TINY_FONT}ALL
STR_ABBREV_ALL :{TINY_FONT}TOUT
# 'Mode' of transport for cargoes
STR_PASSENGERS :{COMMA}{NBSP}passager{P "" s}
@@ -902,7 +902,7 @@ STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW :{BLACK}Modifier
STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW_TT :{BLACK}Copier l'emplacement de cette vue vers la vue principale
# Game options window
STR_GAME_OPTIONS_CAPTION :{WHITE}Options
STR_GAME_OPTIONS_CAPTION :{WHITE}Options du jeu
STR_GAME_OPTIONS_CURRENCY_UNITS_FRAME :{BLACK}Devise
STR_GAME_OPTIONS_CURRENCY_UNITS_DROPDOWN_TOOLTIP :{BLACK}Sélectionner l'unité monétaire
@@ -948,6 +948,7 @@ STR_GAME_OPTIONS_CURRENCY_CNY :Renminbi Chinoi
STR_GAME_OPTIONS_CURRENCY_HKD :Dollar de Hong Kong (HKD)
STR_GAME_OPTIONS_CURRENCY_INR :Roupie indienne (INR)
STR_GAME_OPTIONS_CURRENCY_IDR :Roupie indonésienne (IDR)
STR_GAME_OPTIONS_CURRENCY_MYR :Malaysian Ringgit (MYR)
############ end of currency region
STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_LEFT :Conduite à gauche
@@ -1000,6 +1001,14 @@ STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}Cocher c
STR_GAME_OPTIONS_RESOLUTION :{BLACK}Résolution
STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Sélectionner la résolution d'écran à utiliser
STR_GAME_OPTIONS_RESOLUTION_OTHER :autre
STR_GAME_OPTIONS_RESOLUTION_ITEM :{NUM}x{NUM}
STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK} Accélération matérielle
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Cochez cette case permet à OpenTTD d'utiliser l'accélération matérielle, si possible. Un paramètre modifié ne sera pris en compte qu'au redémarrage du jeu
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}Les paramètres ne prendront effet qu'après le redémarrage du jeu
STR_GAME_OPTIONS_VIDEO_VSYNC :{BLACK}VSync
STR_GAME_OPTIONS_VIDEO_VSYNC_TOOLTIP :{BLACK}Cochez cette case pour activer la synchronisation verticale de l'écran. La modification de ce paramètres ne sera effective qu'après le redémarrage du jeu. Fonctionne uniquement si laccélération matérielle est active
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Taille d'interface
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Choisir la taille d'élément d'interface à utiliser
@@ -1017,6 +1026,14 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Taille double
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Taille quadruple
STR_GAME_OPTIONS_GRAPHICS :{BLACK} Graphiques
STR_GAME_OPTIONS_REFRESH_RATE :{BLACK} Taux de rafraîchissement de l'affichage
STR_GAME_OPTIONS_REFRESH_RATE_TOOLTIP :{BLACK} Sélectionnez la fréquence de rafraîchissement à utiliser
STR_GAME_OPTIONS_REFRESH_RATE_OTHER :autres
STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}Hz
STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE} Les taux de rafraîchissement supérieurs à 60Hz peuvent avoir un impact sur les performances.
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Graphiques de base
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Sélectionner les graphiques de base à utiliser
STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} fichier{P "" s} manquant{P "" s}/corrompu{P "" s}
@@ -1111,6 +1128,8 @@ STR_TERRAIN_TYPE_FLAT :Plat
STR_TERRAIN_TYPE_HILLY :Collinaire
STR_TERRAIN_TYPE_MOUNTAINOUS :Montagneux
STR_TERRAIN_TYPE_ALPINIST :Alpin
STR_TERRAIN_TYPE_CUSTOM :Hauteur personnalisée
STR_TERRAIN_TYPE_CUSTOM_VALUE :Hauteur personnalisée ({NUM})
STR_CITY_APPROVAL_PERMISSIVE :Laxiste
STR_CITY_APPROVAL_TOLERANT :Tolérante
@@ -1192,9 +1211,11 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Activer/Désact
STR_CONFIG_SETTING_CITY_APPROVAL :Attitude du conseil municipal envers la restructuration de la zone{NBSP}: {STRING}
STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Définit comment le bruit et les dommages environnementaux des compagnies affectent leur réputation et leurs prochaines actions de constructions dans la zone
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :Altitude maximum de la carte{NBSP}: {STRING}
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :Définir l'altitude maximum autorisée pour les montagnes sur la carte
STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}Vous ne pouvez pas régler l'altitude maximum de la carte sur cette valeur. Au moins une montagne sur la carte est plus haute
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT :Hauteur limite de la carte: {STRING}
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_HELPTEXT :Définissez la hauteur maximale du terrain de la carte. Avec "(auto)", une bonne valeur sera choisie après la création du terrain
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_VALUE :{NUM}
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_AUTO :(auto)
STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}Vous ne pouvez pas définir la hauteur limite de la carte sur cette valeur. Il y a uu moins une montagne sur la carte qui est plus haute
STR_CONFIG_SETTING_AUTOSLOPE :Terrassement sous les bâtiments, voies, etc.{NBSP}: {STRING}
STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Autoriser le terrassement sous les bâtiments et les voies sans les retirer
STR_CONFIG_SETTING_CATCHMENT :Autoriser des zones de desserte plus réalistes{NBSP}: {STRING}
@@ -1338,7 +1359,13 @@ STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Définit combie
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Distance maximum depuis les bords pour les industries pétrolières{NBSP}: {STRING}
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Limite de distance par rapport au bord de la carte où les raffineries et les plateformes pétrolières peuvent être construites. Sur les cartes d'îles cela assure qu'elles sont près de la côte. Sur les cartes plus large que 256 tuiles, cette valeur est mise à l'échelle.
STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Altitude d'enneigement{NBSP}: {STRING}
STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Contrôle à quelle altitude la neige commence dans le climat sub-arctique.La neige affecte aussi la génération des industries et les exigences pour la croissance des villes
STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Contrôle à quelle altitude la neige commence dans le climat sub-arctique. La neige affecte aussi la génération des industries et les exigences pour la croissance des villes. Ne peut être modifié que via l'éditeur de scénario autrement il est calculé via "couverture de neige"
STR_CONFIG_SETTING_SNOW_COVERAGE :Couverture de neige: {STRING}
STR_CONFIG_SETTING_SNOW_COVERAGE_HELPTEXT :Contrôle la quantité approximative de neige sur le paysage sub-arctique. La neige affecte également la production des industrielles et les besoins de croissance des villes. Seulement utilisé lors de la création de la carte. La terre juste au-dessus du niveau de la mer est toujours sans neige
STR_CONFIG_SETTING_SNOW_COVERAGE_VALUE :{NUM}%
STR_CONFIG_SETTING_DESERT_COVERAGE :Couverture du désert: {STRING}
STR_CONFIG_SETTING_DESERT_COVERAGE_HELPTEXT :Contrôlez la quantité approximative de zone du désert sur le paysage tropical. Le désert affecte également la création du nombre d'industries. Uniquement utilisé lors de la création de la carte
STR_CONFIG_SETTING_DESERT_COVERAGE_VALUE :{NUM}%
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Rugosité du terrain{NBSP}: {STRING}
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(TerraGenesis only) Choisir la fréquence des collines{NBSP}: Les paysages doux ont des collines moins nombreuses et plus éloignées. Les paysages rudes ont beaucoup de collines, ce qui peut sembler répétitif
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Très lisse
@@ -1454,6 +1481,10 @@ STR_CONFIG_SETTING_EXPENSES_LAYOUT :Regrouper les d
STR_CONFIG_SETTING_EXPENSES_LAYOUT_HELPTEXT :Définit la mise en forme de la fenêtre des dépenses de la compagnie
STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS :Retire automatiquement les signaux durant la construction de la voie ferrée: {STRING}
STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS_HELPTEXT :Retire automatiquement les signaux durant la construction de la voie ferrée si les signaux sont sur le chemin. A noter que ça peut potentiellement mener à des accidents de trains.
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT :Seuil de vitesse d'avancement rapide: {STRING}
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_HELPTEXT :Limite de la vitesse du jeu lorsque l'avance rapide est activée. 0 = pas de limite (aussi rapidement que votre ordinateur le permet). Les valeurs inférieures à 100% ralentissent le jeu. Le limites supérieure dépend des spécifications de votre ordinateur et peut varier en fonction du jeu
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_VAL :{NUM}% de la vitesse normal
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_ZERO :Aucune limite (aussi rapidement que votre ordinateur le permet)
STR_CONFIG_SETTING_SOUND_TICKER :Bulletin{NBSP}: {STRING}
STR_CONFIG_SETTING_SOUND_TICKER_HELPTEXT :Jouer un son pour les bulletins
@@ -1644,12 +1675,17 @@ STR_CONFIG_SETTING_ZOOM_MIN :Zoom avant maxi
STR_CONFIG_SETTING_ZOOM_MIN_HELPTEXT :Le zoom avant maximum pour les vues. Noter qu'activer un plus grand zoom avant augment les besoins en mémoire
STR_CONFIG_SETTING_ZOOM_MAX :Zoom arrière maximum{NBSP}: {STRING}
STR_CONFIG_SETTING_ZOOM_MAX_HELPTEXT :Le zoom arrière maximum pour les vues. Noter que l'usage d'un plus grand zoom arrière peut causer un retard
STR_CONFIG_SETTING_SPRITE_ZOOM_MIN :Résolution maximale des sprites{NBSP}: {STRING}
STR_CONFIG_SETTING_SPRITE_ZOOM_MIN_HELPTEXT :Limite la résolution des graphismes. Même si des sprites de plus haute résolution sont disponibles, ils ne seront pas utilisés. Cela peut aider à garder un aspect cohérent quand plusieurs fichiers GRF avec des résolutions différentes sont utilisés.
STR_CONFIG_SETTING_ZOOM_LVL_MIN :4x
STR_CONFIG_SETTING_ZOOM_LVL_IN_2X :2x
STR_CONFIG_SETTING_ZOOM_LVL_NORMAL :Normal
STR_CONFIG_SETTING_ZOOM_LVL_OUT_2X :2x
STR_CONFIG_SETTING_ZOOM_LVL_OUT_4X :4x
STR_CONFIG_SETTING_ZOOM_LVL_OUT_8X :8x
STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_MIN :4x
STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_IN_2X :2x
STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_NORMAL :1x
STR_CONFIG_SETTING_TOWN_GROWTH :Vitesse de croissance des villes{NBSP}: {STRING}
STR_CONFIG_SETTING_TOWN_GROWTH_HELPTEXT :Vitesse de croissance des villes
STR_CONFIG_SETTING_TOWN_GROWTH_NONE :Aucune
@@ -1783,6 +1819,10 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... musi
STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Plus de mémoire
STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}L'allocation de {BYTES} pour le cache des sprites a échoué. Le cache des sprites a été réduit à {BYTES}. Cela va réduire les performances d'OpenTTD. Pour diminuer les besoins en mémoire vous pouvez essayer de désactiver les graphismes 32bpp et/ou les niveaux de zoom avant
# Video initalization errors
STR_VIDEO_DRIVER_ERROR :{WHITE} Erreur avec les paramètres vidéo...
STR_VIDEO_DRIVER_ERROR_NO_HARDWARE_ACCELERATION :{WHITE} ... aucun GPU compatible trouvé. l'accélération matérielle est désactivée
# Intro window
STR_INTRO_CAPTION :{WHITE}OpenTTD {REV}
@@ -1798,7 +1838,7 @@ STR_INTRO_HIGHSCORE :{BLACK}Meilleur
STR_INTRO_CONFIG_SETTINGS_TREE :{BLACK}Paramètres
STR_INTRO_NEWGRF_SETTINGS :{BLACK}Paramètres NewGRF
STR_INTRO_ONLINE_CONTENT :{BLACK}Vérifier le contenu en ligne
STR_INTRO_SCRIPT_SETTINGS :{BLACK}Configuration des scripts
STR_INTRO_SCRIPT_SETTINGS :{BLACK}Paramètres des IA/script jeu
STR_INTRO_QUIT :{BLACK}Quitter
STR_INTRO_TOOLTIP_NEW_GAME :{BLACK}Démarrer une nouvelle partie. Ctrl-clic pour passer outre la configuration du terrain.
@@ -1996,7 +2036,7 @@ STR_NETWORK_SERVER_LIST_SEARCH_SERVER_LAN :{BLACK}Recherch
STR_NETWORK_SERVER_LIST_SEARCH_SERVER_LAN_TOOLTIP :{BLACK}Rechercher des serveurs sur le réseau local
STR_NETWORK_SERVER_LIST_ADD_SERVER :{BLACK}Ajouter un serveur
STR_NETWORK_SERVER_LIST_ADD_SERVER_TOOLTIP :{BLACK}Ajouter un serveur à la liste de ceux parmi lesquels des parties en cours seront toujours cherchées
STR_NETWORK_SERVER_LIST_START_SERVER :{BLACK}Démarrer le serveur
STR_NETWORK_SERVER_LIST_START_SERVER :{BLACK}Héberger/créer un serveur de jeu
STR_NETWORK_SERVER_LIST_START_SERVER_TOOLTIP :{BLACK}Démarrer son propre serveur, sur cet ordinateur-ci
STR_NETWORK_SERVER_LIST_PLAYER_NAME_OSKTITLE :{BLACK}Entrer votre nom
@@ -2088,7 +2128,7 @@ STR_NETWORK_GAME_LOBBY_PLAYERS :{SILVER}Joueurs
STR_NETWORK_GAME_LOBBY_NEW_COMPANY :{BLACK}Nouvelle compagnie
STR_NETWORK_GAME_LOBBY_NEW_COMPANY_TOOLTIP :{BLACK}Créer une nouvelle compagnie
STR_NETWORK_GAME_LOBBY_SPECTATE_GAME :{BLACK}Observer une partie
STR_NETWORK_GAME_LOBBY_SPECTATE_GAME :{BLACK}Observer la partie
STR_NETWORK_GAME_LOBBY_SPECTATE_GAME_TOOLTIP :{BLACK}Observer une partie en tant que spectateur
STR_NETWORK_GAME_LOBBY_JOIN_COMPANY :{BLACK}Rejoindre la compagnie
STR_NETWORK_GAME_LOBBY_JOIN_COMPANY_TOOLTIP :{BLACK}Aider à gérer cette compagnie
@@ -2313,6 +2353,10 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD
STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Oui, télécharger les graphiques
STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Non, quitter OpenTTD
STR_MISSING_GRAPHICS_ERROR_TITLE :{WHITE}Téléchargement échoué
STR_MISSING_GRAPHICS_ERROR :{BLACK}Le téléchargement des graphismes a échoué.{}Il faudrait les télécharger manuellement.
STR_MISSING_GRAPHICS_ERROR_QUIT :{BLACK}Quitter OpenTTD
# Transparency settings window
STR_TRANSPARENCY_CAPTION :{WHITE}Options de transparence
STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Transparence des panneaux.{}Ctrl-clic pour verrouiller.
@@ -2862,12 +2906,17 @@ STR_MAPGEN_BY :{BLACK}{NBSP}×
STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}Nb. de villes{NBSP}:
STR_MAPGEN_DATE :{BLACK}Date{NBSP}:
STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Nb. d'industries{NBSP}:
STR_MAPGEN_MAX_HEIGHTLEVEL :{BLACK}Altitude maximum de la carte
STR_MAPGEN_MAX_HEIGHTLEVEL_UP :{BLACK}Augmenter l'altitude maximum des montagnes sur la carte de 1
STR_MAPGEN_MAX_HEIGHTLEVEL_DOWN :{BLACK}Réduire l'altitude maximum des montagne sur la carte de 1
STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Alt. d'enneigement{NBSP}:
STR_MAPGEN_SNOW_LINE_UP :{BLACK}Augmenter l'altitude d'enneigement
STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Baisser l'altitude d'enneigement
STR_MAPGEN_HEIGHTMAP_HEIGHT :{BLACK}Sommet le plus élevé:
STR_MAPGEN_HEIGHTMAP_HEIGHT_UP :{BLACK}Augmenter la hauteur maximale du plus haut sommet de la carte de un
STR_MAPGEN_HEIGHTMAP_HEIGHT_DOWN :{BLACK}Diminuer la hauteur maximale du plus haut sommet de la carte de un
STR_MAPGEN_SNOW_COVERAGE :{BLACK}Couverture de la neige:
STR_MAPGEN_SNOW_COVERAGE_UP :{BLACK}Augmenter la couverture de neige de dix pour cent
STR_MAPGEN_SNOW_COVERAGE_DOWN :{BLACK}Diminuer la couverture de neige de dix pour cent
STR_MAPGEN_SNOW_COVERAGE_TEXT :{BLACK}{NUM}%
STR_MAPGEN_DESERT_COVERAGE :{BLACK}Couverture du désert:
STR_MAPGEN_DESERT_COVERAGE_UP :{BLACK}Augmenter la couverture du désert de dix pour cent
STR_MAPGEN_DESERT_COVERAGE_DOWN :{BLACK}Diminuer la couverture du désert de dix pour cent
STR_MAPGEN_DESERT_COVERAGE_TEXT :{BLACK}{NUM}%
STR_MAPGEN_LAND_GENERATOR :{BLACK}Générateur{NBSP}:
STR_MAPGEN_TERRAIN_TYPE :{BLACK}Type de terrain{NBSP}:
STR_MAPGEN_QUANTITY_OF_SEA_LAKES :{BLACK}Niveau de la mer{NBSP}:
@@ -2893,8 +2942,10 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Nom de l
STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Taille{NBSP}:
STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM}{NBSP}×{NBSP}{NUM}
STR_MAPGEN_MAX_HEIGHTLEVEL_QUERY_CAPT :{WHITE}Modifier l'altitude maximum de la carte
STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Modifier l'altitude d'enneigement
STR_MAPGEN_TERRAIN_TYPE_QUERY_CAPT :{WHITE}Hauteur du pic
STR_MAPGEN_HEIGHTMAP_HEIGHT_QUERY_CAPT :{WHITE}Le point le plus haut
STR_MAPGEN_SNOW_COVERAGE_QUERY_CAPT :{WHITE}Couverture de neige (en %)
STR_MAPGEN_DESERT_COVERAGE_QUERY_CAPT :{WHITE}Couverture du désert (en %)
STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Modifier l'année de départ
# SE Map generation
@@ -3172,26 +3223,27 @@ STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Financer de nou
STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Acheter les droits de transports exclusifs
STR_LOCAL_AUTHORITY_ACTION_BRIBE :Corrompre la municipalité
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Lancer une petite campagne de publicité, pour attirer plus de voyageurs et de marchandises sur vos lignes.{}Coût{NBSP}: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Lancer une campagne de publicité moyenne, pour attirer plus de voyageurs et de marchandises sur vos lignes.{}Coût{NBSP}: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Lancer une grande campagne de publicité, pour attirer plus de voyageurs et de marchandises sur vos lignes.{}Coût{NBSP}: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Financer la reconstruction du réseau routier local. Provoque de nombreux problèmes de trafic routier pendant 6 mois.{}Coût{NBSP}: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Construire une statue en l'honneur de votre compagnie.{}Coût{NBSP}: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Financer la construction de nouveaux immeubles commerciaux.{}Coût{NBSP}: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Acheter les droits de transport exclusifs dans cette ville pour 1 an. Seules vos lignes seront autorisées dans la ville.{}Coût{NBSP}: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Lancez une petite campagne de publicité locale pour attirer plus de passagers et de marchandises vers vos services de transport.{} Augmente temporairement le classement des gares dans un petit rayon autour du centre-ville.{}Coût: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Lancer une campagne de publicité moyenne, pour attirer plus de voyageurs et de marchandises sur vos lignes.{}Augmente temporairement le classement de vos gares dans un rayon moyen autour du centre-ville.{}Coût:{CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Lancer une grande campagne de publicité, pour attirer plus de voyageurs et de marchandises sur vos lignes.{}Augmente temporairement le classement des gares dans un rayon important autour du centre-ville.{}Coût: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Financer la reconstruction du réseau routier local. Provoque de nombreux problèmes de trafic routier pendant 6 mois.{}Coût: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Construire une statue en l'honneur de votre compagnie.{}Augmente en permanence le classement de vos stations dans cette ville.{}Coût:{CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Financer la construction de nouveaux immeubles commerciaux.{}Stimule temporairement la croissance dans cette ville.{}Coût:{CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Achetez les droits de transport exclusifs d'un an pour la ville.{} La municipalité n'autorisera pas les passagers et les marchandises à utiliser les gares de vos concurrents.{} Coût: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Corrompre la municipalité pour améliorer votre réputation. Risque de pénalisation si le pot-de-vin est dévoilé.{}Coût{NBSP}: {CURRENCY_LONG}
# Goal window
STR_GOALS_CAPTION :{WHITE}Objectifs de {COMPANY}
STR_GOALS_SPECTATOR_CAPTION :{WHITE}Objectifs globaux
STR_GOALS_SPECTATOR :Objectifs globaux
STR_GOALS_GLOBAL_TITLE :{BLACK}Objectifs globaux{NBSP}:
STR_GOALS_GLOBAL_BUTTON :{BLACK} Globaux
STR_GOALS_GLOBAL_BUTTON_HELPTEXT :{BLACK} Afficher les objectifs généraux
STR_GOALS_COMPANY_BUTTON :{BLACK} compagnie
STR_GOALS_COMPANY_BUTTON_HELPTEXT :{BLACK} Afficher les objectifs de votre compagnie
STR_GOALS_TEXT :{ORANGE}{STRING}
STR_GOALS_NONE :{ORANGE} Aucun
STR_GOALS_SPECTATOR_NONE :{ORANGE}- Pas applicable -
STR_GOALS_PROGRESS :{ORANGE}{STRING}
STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING}
STR_GOALS_COMPANY_TITLE :{BLACK}Objectifs de la compagnie{NBSP}:
STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Cliquer sur l'objectif pour centrer la vue principale sur l'industrie, la ville ou la case. Ctrl-clic pour ouvrir une nouvelle vue sur l'industrie, la ville ou la case.
# Goal question window
@@ -3388,7 +3440,7 @@ STR_COMPANY_VIEW_RELOCATE_HQ :{BLACK}Déména
STR_COMPANY_VIEW_RELOCATE_COMPANY_HEADQUARTERS :{BLACK}Reconstruire ailleurs le siège de la compagnie pour le prix de 1{NBSP}% de sa valeur.{}Shift-clic pour afficher seulement le coût estimé.
STR_COMPANY_VIEW_INFRASTRUCTURE_BUTTON :{BLACK}Détails
STR_COMPANY_VIEW_INFRASTRUCTURE_TOOLTIP :{BLACK}Afficher le détail des calculs d'infrastructure
STR_COMPANY_VIEW_GIVE_MONEY_BUTTON :Donner de largent
STR_COMPANY_VIEW_GIVE_MONEY_BUTTON :{BLACK}Donner de largent
STR_COMPANY_VIEW_GIVE_MONEY_TOOLTIP :{BLACK}Donner de largent à cette compagnie
STR_COMPANY_VIEW_NEW_FACE_BUTTON :{BLACK}Nouveau visage
@@ -3562,6 +3614,7 @@ STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Wagons m
STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Réaménageable pour{NBSP}: {GOLD}{STRING}
STR_PURCHASE_INFO_ALL_TYPES :Tous les types de cargaison
STR_PURCHASE_INFO_NONE :Aucune cargaison
STR_PURCHASE_INFO_ENGINES_ONLY :Moteurs uniquement
STR_PURCHASE_INFO_ALL_BUT :Tous sauf {CARGO_LIST}
STR_PURCHASE_INFO_MAX_TE :{BLACK}Effort de traction max.{NBSP}: {GOLD}{FORCE}
STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Rayon d'action{NBSP}: {GOLD}{COMMA}{NBSP}cases
@@ -4309,6 +4362,7 @@ STR_WARNING_FALLBACK_SOUNDSET :{WHITE}Seuls le
STR_WARNING_SCREENSHOT_SIZE_CAPTION :{WHITE}Très grande capture d'écran
STR_WARNING_SCREENSHOT_SIZE_MESSAGE :{YELLOW}La capture d'écran aura une résolution de {COMMA} x {COMMA} pixels. Faire cette capture peut prendre un moment . Êtes-vous sûr de vouloir continuer{NBSP}?
STR_MESSAGE_HEIGHTMAP_SUCCESSFULLY :{WHITE}La carte de hauteur a bien été enregistrée sous '{STRING}'. Le pic le plus élevé est {NUM}
STR_MESSAGE_SCREENSHOT_SUCCESSFULLY :{WHITE}Copie d'écran enregistrée avec succès sous "{STRING}"
STR_ERROR_SCREENSHOT_FAILED :{WHITE}Échec de la copie d'écran{NBSP}!

View File

@@ -1173,6 +1173,8 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Dùmhlac
STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Tagh dùmhlachd-bhreacaidh na sgrìn a chleachdas tu
STR_GAME_OPTIONS_RESOLUTION_OTHER :Gnàthaichte
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Meud na h-eadar-aghaidh
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Tagh am meud airson rud san eadar-aghaidh
@@ -1182,6 +1184,8 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Ceithir uiread
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Seata grafaigeachd bunasach
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Tagh an seata grafaigeachd bunasach a chleachdas tu
STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} {P fhaidhle fhaidhle faidhlichean faidhle} a dhìth/coirbte
@@ -1357,8 +1361,6 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Toglaich dunaid
STR_CONFIG_SETTING_CITY_APPROVAL :Beachdan comhairle a' bhaile air leasachadh raointean: {STRING}
STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Tagh am meud dhe dh'fhuaim is milleadh na h-àrainneachd le companaidhean a tha a dhìth mus bi buaidh air luachadh a' bhaile is barrachd togail san sgìre
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :Àirde as motha a mhapa: {STRING}
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :Suidhich an àirde as motha aig beanntan a bhios ceadaichte air a mhapa
STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}Chan urrainn dhut àirde as motha a mhapa a shuidheachadh air an luach seo. Tha beinn air a mhapa a tha nas àirde.
STR_CONFIG_SETTING_AUTOSLOPE :Ceadaich atharrachadh crutha-tìre fo thogalaichean, slighean agus msaa.: {STRING}
STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Ceadaich atharrachadh crutha-tìre fo thogalaichean is slighean gun a bhith gan toirt air falbh
@@ -1914,6 +1916,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... a' l
STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Chan eil cuimhne gu leòr agad
STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Dh'fhàillig le sònrachadh aig {BYTES} dhe thasgadan nam sprites. Chaidh tasgadan nam sprites a lùghdachadh gu {BYTES}. Le sin, bidh an dèanadas aig OpenTTD nas lugha. Gus nach bidh feum ann airson a leithid dhe chuimhne, feuch an cuir thu grafaigeachd 32bpp is/no leibheilean sùmaidh à comas
# Video initalization errors
# Intro window
STR_INTRO_CAPTION :{WHITE}OpenTTD {REV}
@@ -2432,6 +2436,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}Tha graf
STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Bheir, luchdaich a' ghrafaigeachd a-nuas
STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Cha toir, fàg OpenTTD
# Transparency settings window
STR_TRANSPARENCY_CAPTION :{WHITE}Roghainnean trìd-shoilleireachd
STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Toglaich trìd-shoilleireachd nan sanasan. Ctrl+Briogadh airson glasadh
@@ -2961,12 +2966,6 @@ STR_MAPGEN_BY :{BLACK}*
STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}Bailtean:
STR_MAPGEN_DATE :{BLACK}Ceann-latha:
STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Gnìomhachasan:
STR_MAPGEN_MAX_HEIGHTLEVEL :{BLACK}Àirde as motha a mhapa
STR_MAPGEN_MAX_HEIGHTLEVEL_UP :{BLACK}Meudaich an àirde as motha dhe bheanntan air a mhapa le a h-aon
STR_MAPGEN_MAX_HEIGHTLEVEL_DOWN :{BLACK}Lùghdaich an àirde as motha dhe bheanntan air a mhapa le a h-aon
STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Àirde na loidhne-shneachda:
STR_MAPGEN_SNOW_LINE_UP :{BLACK}Gluais an loidhne-shneachda suas aon cheum
STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Gluais an loidhne-shneachda sìos aon cheum
STR_MAPGEN_LAND_GENERATOR :{BLACK}Gineadair crutha-thìre:
STR_MAPGEN_TERRAIN_TYPE :{BLACK}Seòrsa a' chrutha-thìre:
STR_MAPGEN_QUANTITY_OF_SEA_LAKES :{BLACK}Àirde na mara:
@@ -2992,8 +2991,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Ainm a'
STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Meud:
STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM}
STR_MAPGEN_MAX_HEIGHTLEVEL_QUERY_CAPT :{WHITE}Atharraich an àirde as motha air mapa
STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Atharraich àirde na loidhne-shneachda
STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Atharraich am bliadhna-tòiseachaidh
# SE Map generation
@@ -3276,13 +3273,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Ceannai
STR_GOALS_CAPTION :{WHITE}Amasan aig {COMPANY}
STR_GOALS_SPECTATOR_CAPTION :{WHITE}Amasan coitcheann
STR_GOALS_SPECTATOR :Amasan coitcheann
STR_GOALS_GLOBAL_TITLE :{BLACK}Amasan coitcheann:
STR_GOALS_TEXT :{ORANGE}{STRING}
STR_GOALS_NONE :{ORANGE}- Chan eil gin -
STR_GOALS_SPECTATOR_NONE :{ORANGE}- Chan eil seo iomchaidh -
STR_GOALS_PROGRESS :{ORANGE}{STRING}
STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING}
STR_GOALS_COMPANY_TITLE :{BLACK}Amasan na companaidh:
STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Briog air an amas gus am prìomh-shealladh a mheadhanachadh air gnìomhachas/baile/leac. Fosglaidh Ctrl+briogadh port-seallaidh ùr air ionad a' ghnìomhachais/a' bhaile/na lice
# Goal question window

View File

@@ -988,6 +988,8 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Resoluci
STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Selecciona a resolución de pantalla a empregar
STR_GAME_OPTIONS_RESOLUTION_OTHER :outra
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Tamaño da interface
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Seleciona o tamaño de elementos da interface a usar
@@ -1002,6 +1004,8 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Tamaño doble
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Tamaño do cadro
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Conxunto básico de gráficos
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Selecciona o conxunto de gráficos básico a empregar
STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} arquivo{P "" s} inexistente{P "" s}/erróneo{P "" s}
@@ -1177,8 +1181,6 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Activa os desas
STR_CONFIG_SETTING_CITY_APPROVAL :Actitude das autoridades locáis cara a restruturacións de áreas: {STRING}
STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Escolle ata que punto o ruido e danos medioambientais producidos polas compañias afectan á súa valoración municipal e ás próximas actividades construtivas na súa área
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :Altura máxima do mapa: {STRING}
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :Establecer a altura máxima permitida para os montes do mapa
STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}Non podes establecer a altura máxima do mapa a este valor. Canda menos un monte do mapa é maior
STR_CONFIG_SETTING_AUTOSLOPE :Permitir modificacións do terreo baixo edificios, vías, etc. (autopendente): {STRING}
STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Permite modificar o terreo baixo edificacións e vías sen retiralos
@@ -1750,6 +1752,8 @@ STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}...ignor
STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Memoria esgotada
STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE} Fallo ao reservar {BYTES} de caché de sprites. A caché de sprites reduciuse a {BYTES}. Isto reducirá o rendemento de OpenTTD. Para reducir os requisitos de memoria podes tentar deshabilitar os gráficos 32bpp e/ou niveles de zoom
# Video initalization errors
# Intro window
STR_INTRO_CAPTION :{WHITE}OpenTTD {REV}
@@ -2193,6 +2197,7 @@ STR_NETWORK_MESSAGE_CLIENT_COMPANY_SPECTATE :*** {STRING} un
STR_NETWORK_MESSAGE_CLIENT_COMPANY_NEW :*** {STRING} comezou unha nova compañía (#{2:NUM})
STR_NETWORK_MESSAGE_CLIENT_LEFT :*** {STRING} saiu da partida ({2:STRING})
STR_NETWORK_MESSAGE_NAME_CHANGE :*** {STRING} cambiou o seu nome a {STRING}
STR_NETWORK_MESSAGE_GIVE_MONEY :*** {STRING} deu {2:CURRENCY_LONG} a {1:STRING}
STR_NETWORK_MESSAGE_SERVER_SHUTDOWN :{WHITE}O servidor pechou a sesión
STR_NETWORK_MESSAGE_SERVER_REBOOT :{WHITE}O servidor estase a reiniciar...{}Agarda por favor...
@@ -2269,6 +2274,7 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD
STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Si, descarga os gráficos
STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Non, abandona OpenTTD
# Transparency settings window
STR_TRANSPARENCY_CAPTION :{WHITE}Opcións de Transparencia
STR_TRANSPARENT_SIGNS_TOOLTIP :{BLACK}Habilitar transparencia para os rótulos. CTRL+Click para bloquear
@@ -2802,12 +2808,6 @@ STR_MAPGEN_BY :{BLACK}*
STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}Nº de cidades:
STR_MAPGEN_DATE :{BLACK}Data:
STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Nº de industrias:
STR_MAPGEN_MAX_HEIGHTLEVEL :{BLACK}Altura máxima do mapa:
STR_MAPGEN_MAX_HEIGHTLEVEL_UP :{BLACK}Aumenta a altura máxima dos montes do mapa en un
STR_MAPGEN_MAX_HEIGHTLEVEL_DOWN :{BLACK}Diminiuir a altura máxima dos montes do mapa en un
STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Cota de neve:
STR_MAPGEN_SNOW_LINE_UP :{BLACK}Subir a cota de neve unha altura
STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Baixar a cota de neve unha altura
STR_MAPGEN_LAND_GENERATOR :{BLACK}Xerador de terreo:
STR_MAPGEN_TERRAIN_TYPE :{BLACK}Tipo de terreo:
STR_MAPGEN_QUANTITY_OF_SEA_LAKES :{BLACK}Nivel do mar:
@@ -2833,8 +2833,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Nome do
STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Tamaño:
STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM}
STR_MAPGEN_MAX_HEIGHTLEVEL_QUERY_CAPT :{WHITE}Cambiar altura máxima do mapa
STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Cambiar a altura da cota de neve
STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Cambia-lo ano de inicio
# SE Map generation
@@ -3124,13 +3122,10 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Suborna
STR_GOALS_CAPTION :{WHITE}{COMPANY} Obxectivos
STR_GOALS_SPECTATOR_CAPTION :{WHITE}Obxectivos globais
STR_GOALS_SPECTATOR :Obxectivos globais
STR_GOALS_GLOBAL_TITLE :{BLACK}Obxectivos globais:
STR_GOALS_TEXT :{ORANGE}{STRING}
STR_GOALS_NONE :{ORANGE}- Ningún -
STR_GOALS_SPECTATOR_NONE :{ORANGE}- Non aplicábel -
STR_GOALS_PROGRESS :{ORANGE}{STRING}
STR_GOALS_PROGRESS_COMPLETE :{GREEN}{STRING}
STR_GOALS_COMPANY_TITLE :{BLACK}Obxectivos da compañía:
STR_GOALS_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Pincha nun obxectivo para centra-la vista principal na industria/cidade/cadro. Ctrl+Click abre unha nova ventá na localización da industria/cidade/cadro
# Goal question window

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