Compare commits
267 Commits
feat/font_
...
1.11
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ea4d7f9737 | ||
|
|
bd866de601 | ||
|
|
4d49fa47fa | ||
|
|
70c1b39337 | ||
|
|
bc4e4890c6 | ||
|
|
589b6bc92a | ||
|
|
ad3f0ff143 | ||
|
|
8ffb519ec6 | ||
|
|
4eed59213e | ||
|
|
f6c674683c | ||
|
|
8459f5dd43 | ||
|
|
0427eab5c6 | ||
|
|
9d119889d1 | ||
|
|
44c7cc19b8 | ||
|
|
dbb9fa9b6f | ||
|
|
7b1902a8b0 | ||
|
|
b880e93416 | ||
|
|
6832b8ff31 | ||
|
|
315bcaab30 | ||
|
|
1b6eb4829c | ||
|
|
9cb1ebf0c1 | ||
|
|
d51517d548 | ||
|
|
fde3be923c | ||
|
|
bed585d1ea | ||
|
|
ba6a3cd4a4 | ||
|
|
4d369cbeb2 | ||
|
|
8cccaceda8 | ||
|
|
db5aac4d51 | ||
|
|
9910e38534 | ||
|
|
2ca3174436 | ||
|
|
241bd7277d | ||
|
|
dee909d23f | ||
|
|
1acfc90c98 | ||
|
|
948c30ee63 | ||
|
|
3949f87465 | ||
|
|
26f6a01580 | ||
|
|
1efdce0358 | ||
|
|
e80df6ae8e | ||
|
|
607d73f872 | ||
|
|
a737180146 | ||
|
|
f048c692f1 | ||
|
|
3980253155 | ||
|
|
40ad95c98c | ||
|
|
ab36c6b189 | ||
|
|
e375bf460b | ||
|
|
fb803563b7 | ||
|
|
693ae0cf84 | ||
|
|
754ec97141 | ||
|
|
de3a9955d0 | ||
|
|
58bb93fd59 | ||
|
|
47b4e2d339 | ||
|
|
47798e7364 | ||
|
|
a37ae35b29 | ||
|
|
a4ab459e5a | ||
|
|
a2539bc50d | ||
|
|
cdb07d9960 | ||
|
|
866d9c71bc | ||
|
|
a7cc30e2c7 | ||
|
|
7a952eddbe | ||
|
|
befad1d00f | ||
|
|
836b8b9406 | ||
|
|
7d90871a36 | ||
|
|
55ef341194 | ||
|
|
90320ddaed | ||
|
|
347a543d9e | ||
|
|
6daf1a3dd5 | ||
|
|
a1cdf3be27 | ||
|
|
6d3cb7b41e | ||
|
|
b4d123d916 | ||
|
|
672f285218 | ||
|
|
f11b06ff6a | ||
|
|
f9595543ca | ||
|
|
9aa335aca3 | ||
|
|
05aed133c7 | ||
|
|
b9ea4f07e4 | ||
|
|
8b5bd34a65 | ||
|
|
72090f39ce | ||
|
|
de61dadaa9 | ||
|
|
d52a66642d | ||
|
|
d92d807e1d | ||
|
|
60f85dbc37 | ||
|
|
dbba489fcf | ||
|
|
dd70d0ad85 | ||
|
|
a8c5f8a10b | ||
|
|
ef258b1686 | ||
|
|
3265e56294 | ||
|
|
5e7f9cc22c | ||
|
|
f3b8ff0e17 | ||
|
|
c3d134793f | ||
|
|
59c356ad39 | ||
|
|
2514cf3c5c | ||
|
|
1eb20db8db | ||
|
|
32ead3aba6 | ||
|
|
cae0b46e38 | ||
|
|
4f8a2c2999 | ||
|
|
9932f4ea50 | ||
|
|
0a5a06c431 | ||
|
|
d570120e17 | ||
|
|
abbbeb752a | ||
|
|
9afe3d77e6 | ||
|
|
6362e29ad7 | ||
|
|
bc0501e96f | ||
|
|
7e6f00c85a | ||
|
|
bf07420916 | ||
|
|
21b196d5c4 | ||
|
|
26b7500f3b | ||
|
|
9a203b2b2c | ||
|
|
c3eae71778 | ||
|
|
b1d3b9544e | ||
|
|
45c866cbd1 | ||
|
|
f8f57ab46f | ||
|
|
ef48195ffa | ||
|
|
967c2ed56c | ||
|
|
037bd14ed8 | ||
|
|
8eb53fa1a0 | ||
|
|
4b14a84510 | ||
|
|
4e1b0eda94 | ||
|
|
bf727cb26a | ||
|
|
e609c936a4 | ||
|
|
59ce9b4d2f | ||
|
|
ceee558fe5 | ||
|
|
2bc7e5a8e2 | ||
|
|
8d1d271cda | ||
|
|
c454cc09b3 | ||
|
|
4a9dbfbe65 | ||
|
|
da31bb7e66 | ||
|
|
9623c6bfd2 | ||
|
|
f138d2645c | ||
|
|
747d429fb3 | ||
|
|
910d87d5c5 | ||
|
|
6d59c9e9d5 | ||
|
|
cc638cb825 | ||
|
|
0f45d014a0 | ||
|
|
5108cf6c58 | ||
|
|
503e6c9876 | ||
|
|
abbe0a4a0a | ||
|
|
e85e585f3e | ||
|
|
b98ad2036a | ||
|
|
de194454b6 | ||
|
|
73c4b2673b | ||
|
|
7c185bc75e | ||
|
|
6c658cb0f5 | ||
|
|
fd84cfa196 | ||
|
|
066a20c696 | ||
|
|
5b2f316cda | ||
|
|
1c0c2b7345 | ||
|
|
561ce3ee7f | ||
|
|
0be22efffc | ||
|
|
4f8b2aa003 | ||
|
|
57f01188c2 | ||
|
|
bcb6174bf3 | ||
|
|
7b56a630aa | ||
|
|
4e5be077ff | ||
|
|
7aaaa2c5f5 | ||
|
|
c9c208f78e | ||
|
|
522069d146 | ||
|
|
e379c818b3 | ||
|
|
eb5ae95c90 | ||
|
|
e8965d32d9 | ||
|
|
790b4f3076 | ||
|
|
4f0f113887 | ||
|
|
53ce868185 | ||
|
|
144ed59aef | ||
|
|
40f7d085f4 | ||
|
|
1f34264017 | ||
|
|
fa57e33dfe | ||
|
|
dee9d6dfd4 | ||
|
|
961cda50bc | ||
|
|
fe43c2d18f | ||
|
|
59406363bb | ||
|
|
cbc1d0c893 | ||
|
|
3d0c109d82 | ||
|
|
e0594d6cac | ||
|
|
51cb9e71e5 | ||
|
|
27630d255c | ||
|
|
d04423251b | ||
|
|
9e5ab59eab | ||
|
|
898c61d457 | ||
|
|
ec8abd072d | ||
|
|
0f962aaf03 | ||
|
|
eeb6e9d417 | ||
|
|
0434cc017b | ||
|
|
5905fdb26e | ||
|
|
4ffe7131cb | ||
|
|
aadc7beccc | ||
|
|
9d233bb7d4 | ||
|
|
5c6b43832c | ||
|
|
5cbbb0d17b | ||
|
|
19b3f777c4 | ||
|
|
24ddedad38 | ||
|
|
30313bb396 | ||
|
|
35aff633bd | ||
|
|
c6312a8ebf | ||
|
|
3976f2deed | ||
|
|
a7cb2d8d00 | ||
|
|
7021468ee3 | ||
|
|
d6a4b67df7 | ||
|
|
0b51290a1e | ||
|
|
3a6b811559 | ||
|
|
d02aae7a9c | ||
|
|
78285207ce | ||
|
|
300391465a | ||
|
|
306d80be49 | ||
|
|
5af537026f | ||
|
|
a8a838c24c | ||
|
|
4cfcbcfbaa | ||
|
|
34606b7cbd | ||
|
|
f0f87ee0dc | ||
|
|
9acb8f7d2c | ||
|
|
fb23ee6add | ||
|
|
1d039c86cb | ||
|
|
7c7f747ad8 | ||
|
|
6ad10ffb54 | ||
|
|
5210515f24 | ||
|
|
403ff8badd | ||
|
|
bd80ec7cff | ||
|
|
935debbf6f | ||
|
|
4eac2163f5 | ||
|
|
150341ba29 | ||
|
|
183df5c981 | ||
|
|
7fb12afc4f | ||
|
|
92f966821e | ||
|
|
903bd3d750 | ||
|
|
edbae9ad6c | ||
|
|
a931a18d05 | ||
|
|
b36b1a8cf9 | ||
|
|
b8af503ff5 | ||
|
|
766b9895bf | ||
|
|
2b78c22349 | ||
|
|
4bcc3a4f3f | ||
|
|
d5b8829fb4 | ||
|
|
872d1f1396 | ||
|
|
1e905dea20 | ||
|
|
cedc5c4de8 | ||
|
|
13b1e585da | ||
|
|
6dcc7f93c3 | ||
|
|
9496990f53 | ||
|
|
d700db0e7d | ||
|
|
ae0b641768 | ||
|
|
eff2376871 | ||
|
|
3fae244f54 | ||
|
|
d77d0c9a5f | ||
|
|
0b6e84f4cf | ||
|
|
14692bf2e4 | ||
|
|
1f8bd4a8d7 | ||
|
|
10d5fc46f9 | ||
|
|
28aeedc4e7 | ||
|
|
5802f61e42 | ||
|
|
4e51cd1a03 | ||
|
|
70117d3b82 | ||
|
|
4d3b14af6f | ||
|
|
da55c7c69f | ||
|
|
2c93c3b9cb | ||
|
|
ea484bc9a6 | ||
|
|
8e6522acef | ||
|
|
3a3fb37dfe | ||
|
|
2272de80e2 | ||
|
|
38b506ecd6 | ||
|
|
df96bcf75c | ||
|
|
63f6ae30e2 | ||
|
|
87def2fd9e | ||
|
|
6c93f02ff9 | ||
|
|
78c60cc896 | ||
|
|
463537d0ec | ||
|
|
f2ed31a2de | ||
|
|
952f9e9793 | ||
|
|
1c0338dc36 |
4
.github/workflows/ci-build.yml
vendored
4
.github/workflows/ci-build.yml
vendored
@@ -94,7 +94,7 @@ jobs:
|
||||
- name: Test
|
||||
run: |
|
||||
cd build
|
||||
ctest -j $(nproc)
|
||||
ctest -j $(nproc) --timeout 120
|
||||
|
||||
macos:
|
||||
name: Mac OS
|
||||
@@ -175,5 +175,5 @@ jobs:
|
||||
- name: Test
|
||||
run: |
|
||||
cd build
|
||||
ctest -j $(sysctl -n hw.logicalcpu)
|
||||
ctest -j $(sysctl -n hw.logicalcpu) --timeout 120
|
||||
|
||||
|
||||
4
.github/workflows/release.yml
vendored
4
.github/workflows/release.yml
vendored
@@ -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:
|
||||
|
||||
2
.ottdrev
2
.ottdrev
@@ -1 +1 @@
|
||||
1.11.0-beta2 20210228 0 f30f4b68921544099e7278c0a9c57b9658a45a50 1 1 2021
|
||||
1.11.2 20210503 0 672f285218c6817784d86f737987b75db4bc78fc 1 1 2021
|
||||
|
||||
@@ -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}
|
||||
$<$<BOOL:ANDROID>:-DANDROID=TRUE>
|
||||
-P "${CMAKE_SOURCE_DIR}/cmake/scripts/FindVersion.cmake"
|
||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
@@ -233,6 +238,7 @@ 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)
|
||||
|
||||
@@ -253,7 +259,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)
|
||||
@@ -291,6 +297,11 @@ if(ANDROID)
|
||||
# A bug in Android NDK r22: https://github.com/android/ndk/issues/1418
|
||||
if(ANDROID_ABI STREQUAL "armeabi-v7a" OR ANDROID_ABI STREQUAL "x86")
|
||||
set_source_files_properties(${CMAKE_SOURCE_DIR}/src/settings.cpp PROPERTIES COMPILE_FLAGS "-O0")
|
||||
else()
|
||||
if(NOT CMAKE_BUILD_TYPE STREQUAL Debug)
|
||||
target_compile_options(openttd PRIVATE -flto=thin)
|
||||
target_link_libraries(openttd -flto=thin)
|
||||
endif()
|
||||
endif()
|
||||
endif(ANDROID)
|
||||
|
||||
@@ -319,7 +330,7 @@ if(EMSCRIPTEN)
|
||||
add_definitions(-s DISABLE_EXCEPTION_CATCHING=0)
|
||||
|
||||
# Export functions to Javascript.
|
||||
target_link_libraries(WASM::WASM INTERFACE "-s EXPORTED_FUNCTIONS='[\"_main\", \"_em_openttd_add_server\"]' -s EXTRA_EXPORTED_RUNTIME_METHODS='[\"cwrap\"]'")
|
||||
target_link_libraries(WASM::WASM INTERFACE "-s EXPORTED_FUNCTIONS='[\"_main\"]' -s EXPORTED_RUNTIME_METHODS='[\"cwrap\"]'")
|
||||
|
||||
# Preload all the files we generate during build.
|
||||
# As we do not compile with FreeType / FontConfig, we also have no way to
|
||||
@@ -328,13 +339,20 @@ if(EMSCRIPTEN)
|
||||
# the more languages you add the slower downloading becomes, we decided to
|
||||
# only ship the English language.
|
||||
target_link_libraries(WASM::WASM INTERFACE "--preload-file ${CMAKE_BINARY_DIR}/baseset@/baseset")
|
||||
target_link_libraries(WASM::WASM INTERFACE "--preload-file ${CMAKE_BINARY_DIR}/lang/english.lng@/lang/english.lng")
|
||||
target_link_libraries(WASM::WASM INTERFACE "--preload-file ${CMAKE_BINARY_DIR}/lang@/lang")
|
||||
target_link_libraries(WASM::WASM INTERFACE "--preload-file ${CMAKE_SOURCE_DIR}/bin/ai@/ai")
|
||||
target_link_libraries(WASM::WASM INTERFACE "--preload-file ${CMAKE_SOURCE_DIR}/bin/game@/game")
|
||||
target_link_libraries(WASM::WASM INTERFACE "--preload-file ${CMAKE_SOURCE_DIR}/bin/scripts@/scripts")
|
||||
target_link_libraries(WASM::WASM INTERFACE "--preload-file ${CMAKE_BINARY_DIR}/fonts@/fonts")
|
||||
target_link_libraries(WASM::WASM INTERFACE "--preload-file ${CMAKE_BINARY_DIR}/icudt68l.dat@/usr/share/icu/68.2/icudt68l.dat")
|
||||
#target_link_libraries(WASM::WASM INTERFACE "--preload-file ${CMAKE_BINARY_DIR}/timidity@/timidity")
|
||||
|
||||
# We use IDBFS for persistent storage.
|
||||
target_link_libraries(WASM::WASM INTERFACE "-lidbfs.js")
|
||||
|
||||
# Socket proxy
|
||||
target_link_libraries(WASM::WASM INTERFACE "-lwebsocket.js")
|
||||
|
||||
# Use custom pre-js and shell.html.
|
||||
target_link_libraries(WASM::WASM INTERFACE "--pre-js ${CMAKE_SOURCE_DIR}/os/emscripten/pre.js")
|
||||
target_link_libraries(WASM::WASM INTERFACE "--shell-file ${CMAKE_SOURCE_DIR}/os/emscripten/shell.html")
|
||||
|
||||
42
COMPILING.md
42
COMPILING.md
@@ -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
|
||||
|
||||
20
README.md
20
README.md
@@ -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
2
bin/CMakeLists.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
add_subdirectory(ai)
|
||||
add_subdirectory(game)
|
||||
39
bin/ai/CMakeLists.txt
Normal file
39
bin/ai/CMakeLists.txt
Normal 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
36
bin/game/CMakeLists.txt
Normal 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
|
||||
)
|
||||
@@ -1,3 +1,77 @@
|
||||
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)
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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"
|
||||
)
|
||||
|
||||
@@ -27,11 +27,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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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})
|
||||
|
||||
@@ -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" AND NOT ANDROID)
|
||||
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)
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
OpenTTD's known bugs
|
||||
Last updated: 2021-03-14
|
||||
Release version: 1.11.0-RC1
|
||||
Last updated: 2021-04-01
|
||||
Release version: 1.11.0
|
||||
------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
Binary file not shown.
13
os/emscripten/deploy-webapp.sh
Executable file
13
os/emscripten/deploy-webapp.sh
Executable file
@@ -0,0 +1,13 @@
|
||||
#!/bin/sh
|
||||
|
||||
INSTALL_PATH=`pwd`/../../../openttd-touch-webapp
|
||||
MESSAGE="`git log --format=%B -n 1 HEAD`"
|
||||
[ -n "$1" ] && MESSAGE="$1"
|
||||
|
||||
export NO_CLEAN=1
|
||||
|
||||
./emscripten-build.sh release $INSTALL_PATH || exit 1
|
||||
|
||||
cd $INSTALL_PATH || exit 1
|
||||
|
||||
git commit -a -m "$MESSAGE" && git push
|
||||
3
os/emscripten/emscripten-build-debug.sh
Executable file
3
os/emscripten/emscripten-build-debug.sh
Executable file
@@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
./emscripten-build.sh debug
|
||||
281
os/emscripten/emscripten-build.sh
Executable file
281
os/emscripten/emscripten-build.sh
Executable file
@@ -0,0 +1,281 @@
|
||||
#!/bin/bash
|
||||
|
||||
BUILD_TYPE=Release
|
||||
[ "$1" = "debug" ] && BUILD_TYPE=Debug
|
||||
[ "$1" = "release" ] && BUILD_TYPE=Release
|
||||
|
||||
OPT="-O3 -flto=thin"
|
||||
[ "$BUILD_TYPE" = "Debug" ] && OPT="-g -O1"
|
||||
|
||||
INSTALL_PATH=/var/www/html/
|
||||
[ -n "$2" ] && INSTALL_PATH="$2"
|
||||
|
||||
cd ../..
|
||||
|
||||
[ -z "`which emsdk`" ] && export PATH=`pwd`/../emsdk:$PATH
|
||||
|
||||
[ -z "`which emsdk`" ] && { echo "Put emsdk into your PATH"; exit 1 ; }
|
||||
|
||||
[ -z "$PATH_EMSDK" ] && PATH_EMSDK="`which emsdk | xargs dirname`"
|
||||
|
||||
source "$PATH_EMSDK/emsdk_env.sh"
|
||||
|
||||
mkdir -p build-wasm-$BUILD_TYPE
|
||||
cd build-wasm-$BUILD_TYPE
|
||||
|
||||
# ===== Build dependency libraries =====
|
||||
|
||||
embuilder build liblzma ogg vorbis zlib sdl2 freetype icu harfbuzz
|
||||
embuilder build --lto liblzma ogg vorbis zlib sdl2 freetype icu harfbuzz
|
||||
|
||||
autoreconf -V || exit 1 # No autotools installed
|
||||
|
||||
[ -e icu-le-hb-1.0.3/build-wasm/lib/libicu-le-hb.a ] || {
|
||||
wget -nc https://github.com/harfbuzz/icu-le-hb/archive/refs/tags/1.0.3.tar.gz || exit 1
|
||||
tar xvf 1.0.3.tar.gz || exit 1
|
||||
cd icu-le-hb-1.0.3
|
||||
autoreconf -fi
|
||||
emconfigure ./configure --prefix=`pwd`/build-wasm \
|
||||
--disable-shared --enable-static \
|
||||
HARFBUZZ_CFLAGS="-I`em-config EMSCRIPTEN_ROOT`/cache/sysroot/include/harfbuzz" \
|
||||
HARFBUZZ_LIBS="-lharfbuzz" \
|
||||
ICU_CFLAGS="-I`em-config EMSCRIPTEN_ROOT`/cache/sysroot/include -DU_DEFINE_FALSE_AND_TRUE=1" \
|
||||
ICU_LIBS="-licuuc" \
|
||||
CFLAGS="$OPT" \
|
||||
LDFLAGS="$OPT" \
|
||||
|| exit 1
|
||||
make -j8 V=1 || exit 1
|
||||
make install || exit 1
|
||||
cd ..
|
||||
}
|
||||
|
||||
# ===== Compile libicu twice, because libiculx requires icu-le-hb, which requires libicuuc =====
|
||||
# Same libicu version as in emscripten ports and with the same compilation flags taken from $PATH_EMSDK/upstream/emscripten/tools/ports/icu.py
|
||||
# We cannot use zip archive from emscripten ports, because it has Windows line endings in configure script and it won't run
|
||||
# CFLAGS="-DU_USING_ICU_NAMESPACE=0 \
|
||||
# -DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1 \
|
||||
# -DUNISTR_FROM_CHAR_EXPLICIT=explicit \
|
||||
# -DUNISTR_FROM_STRING_EXPLICIT=explicit \
|
||||
# -DU_STATIC_IMPLEMENTATION"
|
||||
[ -e icu/build-wasm/lib/libiculx.a ] || {
|
||||
wget -nc https://github.com/unicode-org/icu/releases/download/release-68-2/icu4c-68_2-src.tgz || exit 1
|
||||
tar xvf icu4c-68_2-src.tgz || exit 1
|
||||
cd icu/source || exit 1
|
||||
|
||||
autoreconf -fi
|
||||
|
||||
# Cross-compile host tools
|
||||
[ -d cross ] || {
|
||||
mkdir -p cross
|
||||
cd cross
|
||||
../configure || exit 1
|
||||
make -j8 || exit 1
|
||||
cd ..
|
||||
}
|
||||
|
||||
emconfigure ./configure --prefix=`pwd`/../build-wasm \
|
||||
--disable-shared --enable-static \
|
||||
--enable-layoutex --disable-extras \
|
||||
--disable-tools --disable-tests --disable-samples \
|
||||
--with-cross-build=`pwd`/cross \
|
||||
--with-data-packaging=archive \
|
||||
--datadir=/usr/share \
|
||||
ICULEHB_CFLAGS="-I`pwd`/../../icu-le-hb-1.0.3/build-wasm/include/icu-le-hb" \
|
||||
ICULEHB_LIBS="-L`pwd`/../../icu-le-hb-1.0.3/build-wasm/lib -licu-le-hb" \
|
||||
CFLAGS="$OPT" \
|
||||
LDFLAGS="$OPT" \
|
||||
|| exit 1
|
||||
|
||||
make -j8 || exit 1
|
||||
|
||||
sed -i "s@^datadir *= *.*@datadir = `pwd`/../build-wasm/share@" icudefs.mk || exit 1
|
||||
|
||||
make install || exit 1
|
||||
cd ../..
|
||||
}
|
||||
|
||||
[ -e libtimidity-0.2.7/build-wasm/lib/libtimidity.a ] || {
|
||||
wget -nc https://sourceforge.net/projects/libtimidity/files/libtimidity/0.2.7/libtimidity-0.2.7.tar.gz || exit 1
|
||||
tar xvf libtimidity-0.2.7.tar.gz || exit 1
|
||||
cd libtimidity-0.2.7 || exit 1
|
||||
autoreconf -fi
|
||||
emconfigure ./configure --prefix=`pwd`/build-wasm \
|
||||
--disable-shared --enable-static \
|
||||
--disable-ao --disable-aotest \
|
||||
CFLAGS="$OPT" \
|
||||
LDFLAGS="$OPT" \
|
||||
--with-timidity-cfg="/timidity/timidity.cfg" || exit 1
|
||||
make -j8 || exit 1
|
||||
make install || exit 1
|
||||
cd ..
|
||||
}
|
||||
|
||||
[ -e expat-2.3.0/build-wasm/lib/libexpat.a ] || {
|
||||
wget -nc https://github.com/libexpat/libexpat/releases/download/R_2_3_0/expat-2.3.0.tar.gz || exit 1
|
||||
tar xvf expat-2.3.0.tar.gz || exit 1
|
||||
cd expat-2.3.0
|
||||
autoreconf -fi
|
||||
emconfigure ./configure --prefix=`pwd`/build-wasm \
|
||||
--disable-shared --enable-static \
|
||||
--without-xmlwf --without-docbook --without-examples --without-tests \
|
||||
CFLAGS="$OPT" \
|
||||
LDFLAGS="$OPT" \
|
||||
|| exit 1
|
||||
make -j8 || exit 1
|
||||
make install || exit 1
|
||||
cd ..
|
||||
}
|
||||
|
||||
[ -e libuuid-1.0.3/build-wasm/lib/libuuid.a ] || {
|
||||
wget -nc https://sourceforge.net/projects/libuuid/files/libuuid-1.0.3.tar.gz || exit 1
|
||||
tar xvf libuuid-1.0.3.tar.gz || exit 1
|
||||
cd libuuid-1.0.3
|
||||
autoreconf -fi
|
||||
emconfigure ./configure --prefix=`pwd`/build-wasm \
|
||||
--disable-shared --enable-static \
|
||||
CFLAGS="$OPT" \
|
||||
LDFLAGS="$OPT" \
|
||||
|| exit 1
|
||||
make -j8 || exit 1
|
||||
make install || exit 1
|
||||
cd ..
|
||||
}
|
||||
|
||||
# ===== Fontconfig is convoluted shit =====
|
||||
|
||||
[ -e fontconfig-2.13.1/build-wasm/lib/libfontconfig.a ] || {
|
||||
wget -nc https://www.freedesktop.org/software/fontconfig/release/fontconfig-2.13.1.tar.gz || exit 1
|
||||
tar xvf fontconfig-2.13.1.tar.gz || exit 1
|
||||
cd fontconfig-2.13.1
|
||||
# Tests do not compile, disable them
|
||||
#sed -i 's/po-conf test/po-conf/' Makefile.am
|
||||
patch -p1 < ../../os/emscripten/fontconfig-2.13.1.patch || exit 1
|
||||
autoreconf -fi
|
||||
emconfigure ./configure --prefix=`pwd`/build-wasm \
|
||||
--disable-shared --enable-static \
|
||||
--disable-docs cross_compiling=yes \
|
||||
ac_cv_func_fstatfs=no ac_cv_func_fstatvfs=no \
|
||||
FREETYPE_CFLAGS="-I`em-config EMSCRIPTEN_ROOT`/cache/sysroot/include/freetype2 \
|
||||
-I`em-config EMSCRIPTEN_ROOT`/cache/sysroot/include/freetype2/freetype" \
|
||||
FREETYPE_LIBS="-lfreetype" \
|
||||
EXPAT_CFLAGS="-I`pwd`/../expat-2.3.0/build-wasm/include" \
|
||||
EXPAT_LIBS="-L`pwd`/../expat-2.3.0/build-wasm/lib -lexpat" \
|
||||
UUID_CFLAGS="-I`pwd`/../libuuid-1.0.3/build-wasm/include" \
|
||||
UUID_LIBS="-L`pwd`/../libuuid-1.0.3/build-wasm/lib -luuid" \
|
||||
CFLAGS="$OPT" \
|
||||
LDFLAGS="$OPT" \
|
||||
|| exit 1
|
||||
make -j8 V=1 || exit 1
|
||||
make install || exit 1
|
||||
cd ..
|
||||
}
|
||||
|
||||
# -s EXPORTED_FUNCTIONS=['_main','_memchr']
|
||||
[ -e lzo-2.10/build-wasm/lib/liblzo2.a ] || {
|
||||
wget -nc https://www.oberhumer.com/opensource/lzo/download/lzo-2.10.tar.gz || exit 1
|
||||
tar xvf lzo-2.10.tar.gz || exit 1
|
||||
cd lzo-2.10
|
||||
autoreconf -fi
|
||||
emconfigure ./configure --prefix=`pwd`/build-wasm \
|
||||
--disable-shared --enable-static \
|
||||
--disable-asm \
|
||||
CFLAGS="$OPT" \
|
||||
LDFLAGS="$OPT -s EXPORTED_FUNCTIONS=['_main','_memchr']" \
|
||||
|| exit 1
|
||||
make -j8 || exit 1
|
||||
make install || exit 1
|
||||
cd ..
|
||||
}
|
||||
|
||||
# ===== Download data files =====
|
||||
|
||||
mkdir -p baseset
|
||||
|
||||
[ -e baseset/opengfx-0.6.1.tar ] || {
|
||||
wget -nc https://cdn.openttd.org/opengfx-releases/0.6.1/opengfx-0.6.1-all.zip || exit 1
|
||||
unzip opengfx-0.6.1-all.zip || exit 1
|
||||
rm opengfx-0.6.1-all.zip
|
||||
mv opengfx-0.6.1.tar baseset/ || exit 1
|
||||
}
|
||||
|
||||
[ -e baseset/opensfx-1.0.1.tar ] || {
|
||||
wget -nc https://cdn.openttd.org/opensfx-releases/1.0.1/opensfx-1.0.1-all.zip || exit 1
|
||||
unzip opensfx-1.0.1-all.zip || exit 1
|
||||
rm opensfx-1.0.1-all.zip
|
||||
mv opensfx-1.0.1.tar baseset/ || exit 1
|
||||
}
|
||||
|
||||
[ -e baseset/openmsx-0.4.0 ] || {
|
||||
wget -nc https://cdn.openttd.org/openmsx-releases/0.4.0/openmsx-0.4.0-all.zip || exit 1
|
||||
unzip openmsx-0.4.0-all.zip || exit 1
|
||||
rm openmsx-0.4.0-all.zip
|
||||
cd baseset || exit 1
|
||||
tar xvf ../openmsx-0.4.0.tar || exit 1
|
||||
cd ..
|
||||
rm openmsx-0.4.0.tar
|
||||
}
|
||||
|
||||
[ -e icudt68l.dat ] || {
|
||||
cp -f "icu/source/data/in/icudt68l.dat" ./ || exit 1
|
||||
}
|
||||
|
||||
[ -e fonts/fonts.conf ] || {
|
||||
wget -nc https://sourceforge.net/projects/libsdl-android/files/openttd-fonts.zip || exit 1
|
||||
unzip openttd-fonts.zip || exit 1
|
||||
rm openttd-fonts.zip
|
||||
sed 's@/usr/share/fonts@/fonts@g' fontconfig-2.13.1/build-wasm/etc/fonts/fonts.conf > fonts/fonts.conf || exit 1
|
||||
}
|
||||
|
||||
#[ -e TimGM6mb.sf2 ] || {
|
||||
# wget -nc 'https://sourceforge.net/p/mscore/code/HEAD/tree/trunk/mscore/share/sound/TimGM6mb.sf2?format=raw' -O TimGM6mb.sf2 || exit 1
|
||||
#}
|
||||
|
||||
#[ -e timidity/timidity.cfg ] || {
|
||||
# wget -nc https://sourceforge.net/projects/libsdl-android/files/timidity.zip || exit 1
|
||||
# unzip timidity.zip
|
||||
#}
|
||||
|
||||
# ===== Build OpenTTD code generation tools =====
|
||||
|
||||
[ -e build-host ] || {
|
||||
rm -rf build-host
|
||||
mkdir -p build-host
|
||||
cd build-host
|
||||
cmake ../.. -DOPTION_TOOLS_ONLY=ON || exit 1
|
||||
make -j8 tools || exit 1
|
||||
cd ..
|
||||
}
|
||||
|
||||
# ===== Build OpenTTD itself =====
|
||||
|
||||
[ -e Makefile ] || emcmake cmake .. \
|
||||
-DHOST_BINARY_DIR=$(pwd)/build-host -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DOPTION_USE_ASSERTS=OFF \
|
||||
-DFREETYPE_INCLUDE_DIRS=`em-config EMSCRIPTEN_ROOT`/cache/sysroot/include/freetype2 \
|
||||
-DFREETYPE_LIBRARY=-lfreetype \
|
||||
-DFontconfig_INCLUDE_DIR=`pwd`/fontconfig-2.13.1/build-wasm/include \
|
||||
-DFontconfig_LIBRARY=`pwd`/fontconfig-2.13.1/build-wasm/lib/libfontconfig.a \
|
||||
-DLZO_INCLUDE_DIR=`pwd`/lzo-2.10/build-wasm/include \
|
||||
-DLZO_LIBRARY=`pwd`/lzo-2.10/build-wasm/lib/liblzo2.a \
|
||||
-DPC_ICU_i18n_FOUND=YES \
|
||||
-DPC_ICU_i18n_INCLUDE_DIRS=`pwd`/icu/build-wasm/include \
|
||||
-DICU_i18n_LIBRARY=`pwd`/icu/build-wasm/lib/libicui18n.a \
|
||||
-DPC_ICU_lx_FOUND=YES \
|
||||
-DPC_ICU_lx_INCLUDE_DIRS=`pwd`/icu-le-hb-1.0.3/build-wasm/include/icu-le-hb \
|
||||
-DICU_lx_LIBRARY=`pwd`/icu/build-wasm/lib/libiculx.a \
|
||||
-DLZO_LIBRARY=`pwd`/lzo-2.10/build-wasm/lib/liblzo2.a \
|
||||
-DCMAKE_CXX_FLAGS="-sUSE_FREETYPE=1" \
|
||||
-DCMAKE_EXE_LINKER_FLAGS="-sUSE_FREETYPE=1 \
|
||||
-L`pwd`/icu-le-hb-1.0.3/build-wasm/lib -licu-le-hb -lharfbuzz \
|
||||
-L`pwd`/icu/build-wasm/lib -licudata -licuuc \
|
||||
-L`pwd`/expat-2.3.0/build-wasm/lib -lexpat \
|
||||
-L`pwd`/libuuid-1.0.3/build-wasm/lib -luuid" \
|
||||
|| exit 1
|
||||
|
||||
# -I`em-config EMSCRIPTEN_ROOT`/cache/sysroot/include/freetype2/freetype
|
||||
# -DTimidity_LIBRARY=`pwd`/libtimidity-0.2.7/build-wasm/lib/libtimidity.a \
|
||||
# -DTimidity_INCLUDE_DIR=`pwd`/libtimidity-0.2.7/build-wasm/include \
|
||||
|
||||
[ -z "$NO_CLEAN" ] && rm -f openttd.html
|
||||
emmake make -j8 VERBOSE=1 || exit 1
|
||||
|
||||
cp -f *.html *.js *.data *.wasm ../media/openttd.256.png ../os/emscripten/openttd.webapp "$INSTALL_PATH"
|
||||
@@ -14,7 +14,7 @@ diff --git a/embuilder.py b/embuilder.py
|
||||
index 818262190ed..ab7d5adb7b2 100755
|
||||
--- a/embuilder.py
|
||||
+++ b/embuilder.py
|
||||
@@ -60,6 +60,7 @@
|
||||
@@ -69,6 +69,7 @@
|
||||
'harfbuzz',
|
||||
'icu',
|
||||
'libjpeg',
|
||||
@@ -22,14 +22,14 @@ index 818262190ed..ab7d5adb7b2 100755
|
||||
'libpng',
|
||||
'ogg',
|
||||
'regal',
|
||||
@@ -197,6 +198,8 @@ def main():
|
||||
build_port('ogg', libname('libogg'))
|
||||
@@ -203,6 +204,8 @@
|
||||
build_port('giflib')
|
||||
elif what == 'libjpeg':
|
||||
build_port('libjpeg', libname('libjpeg'))
|
||||
build_port('libjpeg')
|
||||
+ elif what == 'liblzma':
|
||||
+ build_port('liblzma', libname('liblzma'))
|
||||
+ build_port('liblzma')
|
||||
elif what == 'libpng':
|
||||
build_port('libpng', libname('libpng'))
|
||||
build_port('libpng')
|
||||
elif what == 'sdl2':
|
||||
diff --git a/src/settings.js b/src/settings.js
|
||||
index 61cd98939ba..be6fcb678c6 100644
|
||||
@@ -50,7 +50,7 @@ new file mode 100644
|
||||
index 00000000000..e9567ef36ff
|
||||
--- /dev/null
|
||||
+++ b/tools/ports/liblzma.py
|
||||
@@ -0,0 +1,160 @@
|
||||
@@ -0,0 +1,159 @@
|
||||
+# Copyright 2020 The Emscripten Authors. All rights reserved.
|
||||
+# Emscripten is available under two separate licenses, the MIT license and the
|
||||
+# University of Illinois/NCSA Open Source License. Both these licenses can be
|
||||
@@ -68,10 +68,10 @@ index 00000000000..e9567ef36ff
|
||||
+
|
||||
+
|
||||
+def get(ports, settings, shared):
|
||||
+ libname = ports.get_lib_name('liblzma')
|
||||
+ libname = 'liblzma.a'
|
||||
+ ports.fetch_project('liblzma', 'https://tukaani.org/xz/xz-' + VERSION + '.tar.gz', 'xz-' + VERSION, sha512hash=HASH)
|
||||
+
|
||||
+ def create():
|
||||
+ def create(final):
|
||||
+ ports.clear_project_build('liblzma')
|
||||
+
|
||||
+ source_path = os.path.join(ports.get_dir(), 'liblzma', 'xz-' + VERSION)
|
||||
@@ -90,7 +90,6 @@ index 00000000000..e9567ef36ff
|
||||
+
|
||||
+ open(os.path.join(dest_path, 'src', 'config.h'), 'w').write(config_h)
|
||||
+
|
||||
+ final = os.path.join(dest_path, libname)
|
||||
+ include_dirs = [os.path.join(dest_path, 'src', 'liblzma', p) for p in include_dirs_rel]
|
||||
+ ports.build_port(os.path.join(dest_path, 'src'), final, flags=build_flags, exclude_dirs=exclude_dirs, exclude_files=exclude_files, includes=include_dirs)
|
||||
+
|
||||
@@ -99,11 +98,11 @@ index 00000000000..e9567ef36ff
|
||||
+
|
||||
+ return final
|
||||
+
|
||||
+ return [shared.Cache.get(libname, create, what='port')]
|
||||
+ return [shared.Cache.get_lib(libname, create, what='port')]
|
||||
+
|
||||
+
|
||||
+def clear(ports, settings, shared):
|
||||
+ shared.Cache.erase_file(ports.get_lib_name('liblzma'))
|
||||
+ shared.Cache.erase_file('liblzma.a')
|
||||
+
|
||||
+
|
||||
+def process_args(ports):
|
||||
|
||||
13
os/emscripten/fontconfig-2.13.1.patch
Normal file
13
os/emscripten/fontconfig-2.13.1.patch
Normal file
@@ -0,0 +1,13 @@
|
||||
Only in fontconfig-2.13.1-new: Makefile
|
||||
diff -u -r fontconfig-2.13.1/Makefile.am fontconfig-2.13.1-new/Makefile.am
|
||||
--- fontconfig-2.13.1/Makefile.am 2018-06-05 13:36:38.000000000 +0300
|
||||
+++ fontconfig-2.13.1-new/Makefile.am 2021-05-05 22:32:49.230804234 +0300
|
||||
@@ -24,7 +24,7 @@
|
||||
SUBDIRS=fontconfig fc-case fc-lang src \
|
||||
fc-cache fc-cat fc-conflist fc-list fc-match \
|
||||
fc-pattern fc-query fc-scan fc-validate conf.d \
|
||||
- its po po-conf test
|
||||
+ its po po-conf
|
||||
if ENABLE_DOCS
|
||||
SUBDIRS += doc
|
||||
endif
|
||||
16
os/emscripten/openttd.webapp
Normal file
16
os/emscripten/openttd.webapp
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"name": "OpenTTD",
|
||||
"short_name": "OpenTTD",
|
||||
"description": "Open-source transport business simulation game",
|
||||
"display": "fullscreen",
|
||||
"orientation": "landscape",
|
||||
"icons": [
|
||||
{
|
||||
"src": "openttd.256.png",
|
||||
"sizes": "256x256",
|
||||
"type": "image/png"
|
||||
}
|
||||
],
|
||||
"start_url": "openttd.html",
|
||||
"background_color": "green"
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
Module.arguments.push('-mnull', '-snull', '-vsdl:relative_mode');
|
||||
Module.arguments.push('-d1');
|
||||
Module['websocket'] = { url: function(host, port, proto) {
|
||||
/* openttd.org hosts a WebSocket proxy for the content service. */
|
||||
if (host == "content.openttd.org" && port == 3978 && proto == "tcp") {
|
||||
@@ -13,16 +13,20 @@ Module['websocket'] = { url: function(host, port, proto) {
|
||||
} };
|
||||
|
||||
Module.preRun.push(function() {
|
||||
personal_dir = '/home/web_user/.openttd';
|
||||
content_download_dir = personal_dir + '/content_download'
|
||||
const personal_dir = '/home/web_user/.local/share/openttd';
|
||||
const content_download_dir = personal_dir + '/content_download'
|
||||
|
||||
/* Because of the "-c" above, all user-data is stored in /user_data. */
|
||||
FS.mkdir(personal_dir);
|
||||
FS.mount(IDBFS, {}, personal_dir);
|
||||
FS.mount(IDBFS, {}, '/home/web_user');
|
||||
|
||||
Module.addRunDependency('syncfs');
|
||||
FS.syncfs(true, function (err) {
|
||||
/* FS.mkdir() tends to fail if parent folders do not exist. */
|
||||
if (!FS.analyzePath(personal_dir).exists) {
|
||||
FS.mkdir('/home/web_user/.local');
|
||||
FS.mkdir('/home/web_user/.local/share');
|
||||
FS.mkdir(personal_dir);
|
||||
}
|
||||
if (!FS.analyzePath(content_download_dir).exists) {
|
||||
FS.mkdir(content_download_dir);
|
||||
}
|
||||
@@ -31,7 +35,7 @@ Module.preRun.push(function() {
|
||||
}
|
||||
|
||||
/* Check if the OpenGFX baseset is already downloaded. */
|
||||
if (!FS.analyzePath(content_download_dir + '/baseset/opengfx-0.6.0.tar').exists) {
|
||||
if (false && !FS.analyzePath(content_download_dir + '/baseset/opengfx-0.6.0.tar').exists) {
|
||||
window.openttd_downloaded_opengfx = true;
|
||||
FS.createPreloadedFile(content_download_dir + '/baseset', 'opengfx-0.6.0.tar', 'https://installer.cdn.openttd.org/emscripten/opengfx-0.6.0.tar', true, true);
|
||||
} else {
|
||||
@@ -64,13 +68,6 @@ Module.preRun.push(function() {
|
||||
Module.onAbort();
|
||||
}
|
||||
|
||||
window.openttd_server_list = function() {
|
||||
add_server = Module.cwrap("em_openttd_add_server", null, ["string", "number"]);
|
||||
|
||||
/* Add servers that support WebSocket here. Example:
|
||||
* add_server("localhost", 3979); */
|
||||
}
|
||||
|
||||
var leftButtonDown = false;
|
||||
document.addEventListener("mousedown", e => {
|
||||
if (e.button == 0) {
|
||||
|
||||
@@ -3,7 +3,10 @@
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
<title>OpenTTD</title>
|
||||
<link rel="manifest" href="openttd.webapp">
|
||||
<link rel="icon" href="openttd.256.png">
|
||||
<style>
|
||||
body {
|
||||
font-family: Tahoma, Arial, Helvetica, sans-serif;
|
||||
@@ -79,6 +82,22 @@
|
||||
padding: 4px 4px;
|
||||
}
|
||||
|
||||
div.textinput {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
z-index: 4;
|
||||
display: "none";
|
||||
}
|
||||
|
||||
#textinputbox {
|
||||
width: 100%;
|
||||
font-size: xx-large;
|
||||
}
|
||||
|
||||
#textinputbutton {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
canvas.emscripten {
|
||||
border: 0px none;
|
||||
height: 100%;
|
||||
@@ -90,6 +109,9 @@
|
||||
</head>
|
||||
<body>
|
||||
<div class="background">
|
||||
<a href="https://hits.seeyoufarm.com">
|
||||
<img src="https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fpelya.github.io%2Fopenttd-touch-webapp&count_bg=%2379C83D&title_bg=%23555555&icon=&icon_color=%23E7E7E7&title=hits&edge_flat=false"/>
|
||||
</a>
|
||||
<div id="box">
|
||||
<div id="title">
|
||||
Loading ...
|
||||
@@ -103,6 +125,11 @@
|
||||
Warning: savegames are stored in the Indexed DB of your browser.<br/>Your browser can delete savegames without notice!
|
||||
</div>
|
||||
</div>
|
||||
<div class="textinput" id="textinput">
|
||||
<input type="textinput" id="textinputbox" value="" onfocusout="Module.finishTextInput();" tabindex=1></input>
|
||||
<br/>
|
||||
<input type="submit" id="textinputbutton" value="OK" onclick="Module.finishTextInput();" ></input>
|
||||
</div>
|
||||
<div>
|
||||
<canvas class="emscripten" id="canvas" oncontextmenu="event.preventDefault()" tabindex=-1></canvas>
|
||||
</div>
|
||||
@@ -174,6 +201,8 @@
|
||||
|
||||
document.getElementById("title").innerHTML = "Thank you for playing!";
|
||||
document.getElementById("message").innerHTML = "We hope you enjoyed OpenTTD!<br/><br/>Reload your browser to restart the game.";
|
||||
|
||||
FS.syncfs(false, function (err) { window.close('','_parent',''); });
|
||||
},
|
||||
|
||||
onAbort: function() {
|
||||
@@ -193,9 +222,53 @@
|
||||
document.getElementById("filesystem").style.display = "none";
|
||||
}, 300);
|
||||
}, 10000);
|
||||
}
|
||||
},
|
||||
|
||||
textInputValue: null,
|
||||
|
||||
startTextInput: function(text) {
|
||||
if (document.getElementById("textinput").style.display != "none") {
|
||||
//Module.print("Text input already started");
|
||||
return;
|
||||
}
|
||||
//Module.print("Start text input!");
|
||||
Module.textInputValue = null;
|
||||
document.getElementById("textinput").style.display = "block";
|
||||
document.getElementById("textinputbox").value = text;
|
||||
document.getElementById("textinputbox").focus();
|
||||
document.getElementById("textinputbox").onkeyup = function(evt) {
|
||||
if (evt.key === "Enter") {
|
||||
Module.finishTextInput();
|
||||
}
|
||||
};
|
||||
},
|
||||
|
||||
getTextInput: function() {
|
||||
if (Module.textInputValue !== null) {
|
||||
var value = Module.textInputValue;
|
||||
Module.textInputValue = null;
|
||||
return value;
|
||||
}
|
||||
return null;
|
||||
},
|
||||
|
||||
finishTextInput: function() {
|
||||
if (document.getElementById("textinput").style.display == "none") {
|
||||
//Module.print("Text input not started");
|
||||
return;
|
||||
}
|
||||
//Module.print("Text input finished!");
|
||||
Module.textInputValue = document.getElementById("textinputbox").value;
|
||||
Module.print(Module.textInputValue);
|
||||
document.getElementById("textinput").style.display = "none";
|
||||
document.getElementById("canvas").focus();
|
||||
},
|
||||
|
||||
};
|
||||
|
||||
document.getElementById("textinput").style.display = "none"; // It's not hiding with CSS
|
||||
document.getElementById("canvas").focus();
|
||||
|
||||
window.onerror = function() {
|
||||
Module.onAbort();
|
||||
};
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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());
|
||||
|
||||
12
src/3rdparty/squirrel/squirrel/sqarray.h
vendored
12
src/3rdparty/squirrel/squirrel/sqarray.h
vendored
@@ -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;
|
||||
};
|
||||
|
||||
18
src/3rdparty/squirrel/squirrel/sqclass.h
vendored
18
src/3rdparty/squirrel/squirrel/sqclass.h
vendored
@@ -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;
|
||||
|
||||
6
src/3rdparty/squirrel/squirrel/sqclosure.h
vendored
6
src/3rdparty/squirrel/squirrel/sqclosure.h
vendored
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
131
src/3rdparty/squirrel/squirrel/sqobject.cpp
vendored
131
src/3rdparty/squirrel/squirrel/sqobject.cpp
vendored
@@ -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; }
|
||||
|
||||
47
src/3rdparty/squirrel/squirrel/sqobject.h
vendored
47
src/3rdparty/squirrel/squirrel/sqobject.h
vendored
@@ -2,7 +2,7 @@
|
||||
#ifndef _SQOBJECT_H_
|
||||
#define _SQOBJECT_H_
|
||||
|
||||
#include <limits>
|
||||
#include <vector>
|
||||
#include "squtils.h"
|
||||
|
||||
#define SQ_CLOSURESTREAM_HEAD (('S'<<24)|('Q'<<16)|('I'<<8)|('R'))
|
||||
@@ -345,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);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
98
src/3rdparty/squirrel/squirrel/sqstate.cpp
vendored
98
src/3rdparty/squirrel/squirrel/sqstate.cpp
vendored
@@ -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++;
|
||||
}
|
||||
|
||||
9
src/3rdparty/squirrel/squirrel/sqstate.h
vendored
9
src/3rdparty/squirrel/squirrel/sqstate.h
vendored
@@ -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
|
||||
|
||||
10
src/3rdparty/squirrel/squirrel/sqtable.h
vendored
10
src/3rdparty/squirrel/squirrel/sqtable.h
vendored
@@ -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);
|
||||
}
|
||||
|
||||
2
src/3rdparty/squirrel/squirrel/squserdata.h
vendored
2
src/3rdparty/squirrel/squirrel/squserdata.h
vendored
@@ -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() {
|
||||
|
||||
16
src/3rdparty/squirrel/squirrel/sqvm.cpp
vendored
16
src/3rdparty/squirrel/squirrel/sqvm.cpp
vendored
@@ -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);
|
||||
}
|
||||
|
||||
2
src/3rdparty/squirrel/squirrel/sqvm.h
vendored
2
src/3rdparty/squirrel/squirrel/sqvm.h
vendored
@@ -113,7 +113,7 @@ public:
|
||||
#endif
|
||||
|
||||
#ifndef NO_GARBAGE_COLLECTOR
|
||||
void Mark(SQCollectable **chain);
|
||||
void EnqueueMarkObjectForChildren(SQGCMarkerQueue &queue);
|
||||
#endif
|
||||
void Finalize();
|
||||
void GrowCallStack() {
|
||||
|
||||
@@ -111,7 +111,7 @@ struct AIListWindow : public Window {
|
||||
{
|
||||
if (widget == WID_AIL_LIST) {
|
||||
this->line_height = FONT_HEIGHT_NORMAL + WD_MATRIX_TOP + WD_MATRIX_BOTTOM;
|
||||
this->line_height = GetMinSizing(NWST_STEP, this->line_height);
|
||||
this->line_height = GetMinButtonSize(this->line_height);
|
||||
|
||||
resize->width = 1;
|
||||
resize->height = this->line_height;
|
||||
@@ -352,7 +352,7 @@ struct AISettingsWindow : public Window {
|
||||
{
|
||||
if (widget == WID_AIS_BACKGROUND) {
|
||||
this->line_height = std::max(SETTING_BUTTON_HEIGHT, FONT_HEIGHT_NORMAL) + WD_MATRIX_TOP + WD_MATRIX_BOTTOM;
|
||||
this->line_height = GetMinSizing(NWST_STEP, this->line_height);
|
||||
this->line_height = GetMinButtonSize(this->line_height);
|
||||
|
||||
resize->width = 1;
|
||||
resize->height = this->line_height;
|
||||
@@ -703,19 +703,19 @@ static const NWidgetPart _nested_ai_config_widgets[] = {
|
||||
EndContainer(),
|
||||
NWidget(NWID_SPACER), SetMinimalSize(0, 9),
|
||||
NWidget(WWT_FRAME, COLOUR_MAUVE), SetDataTip(STR_AI_CONFIG_GAMESCRIPT, STR_NULL), SetPadding(0, 5, 4, 5),
|
||||
NWidget(WWT_MATRIX, COLOUR_MAUVE, WID_AIC_GAMELIST), SetSizingType(NWST_STEP), SetMinimalSize(288, 14), SetFill(1, 0), SetMatrixDataTip(1, 1, STR_AI_CONFIG_GAMELIST_TOOLTIP),
|
||||
NWidget(WWT_MATRIX, COLOUR_MAUVE, WID_AIC_GAMELIST), SetSizingType(NWST_BUTTON), 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),
|
||||
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(),
|
||||
EndContainer(),
|
||||
EndContainer(),
|
||||
@@ -782,12 +782,12 @@ struct AIConfigWindow : public Window {
|
||||
{
|
||||
switch (widget) {
|
||||
case WID_AIC_GAMELIST:
|
||||
this->line_height = GetMinSizing(NWST_STEP, FONT_HEIGHT_NORMAL + WD_MATRIX_TOP + WD_MATRIX_BOTTOM);
|
||||
this->line_height = GetMinButtonSize(FONT_HEIGHT_NORMAL + WD_MATRIX_TOP + WD_MATRIX_BOTTOM);
|
||||
size->height = this->line_height;
|
||||
break;
|
||||
|
||||
case WID_AIC_LIST:
|
||||
this->line_height = GetMinSizing(NWST_STEP, FONT_HEIGHT_NORMAL + WD_MATRIX_TOP + WD_MATRIX_BOTTOM);
|
||||
this->line_height = GetMinButtonSize(FONT_HEIGHT_NORMAL + WD_MATRIX_TOP + WD_MATRIX_BOTTOM);
|
||||
size->height = 8 * this->line_height;
|
||||
break;
|
||||
|
||||
@@ -1109,7 +1109,7 @@ struct AIDebugWindow : public Window {
|
||||
void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) override
|
||||
{
|
||||
if (widget == WID_AID_LOG_PANEL) {
|
||||
resize->height = GetMinSizing(NWST_STEP, FONT_HEIGHT_NORMAL + WD_PAR_VSEP_NORMAL);
|
||||
resize->height = GetMinButtonSize(FONT_HEIGHT_NORMAL + WD_PAR_VSEP_NORMAL);
|
||||
size->height = 14 * resize->height + this->top_offset + this->bottom_offset;
|
||||
}
|
||||
}
|
||||
@@ -1126,7 +1126,7 @@ struct AIDebugWindow : public Window {
|
||||
bool dirty = false;
|
||||
|
||||
Dimension d = GetSpriteSize(SPR_COMPANY_ICON);
|
||||
uint offset_y = Center(0, GetMinSizing(NWST_STEP, d.height + WD_MATRIX_TOP + WD_MATRIX_BOTTOM + 1), d.height);
|
||||
uint offset_y = Center(0, GetMinButtonSize(d.height + WD_MATRIX_TOP + WD_MATRIX_BOTTOM + 1), d.height);
|
||||
/* Paint the company icons */
|
||||
for (CompanyID i = COMPANY_FIRST; i < MAX_COMPANIES; i++) {
|
||||
NWidgetCore *button = this->GetWidget<NWidgetCore>(i + WID_AID_COMPANY_BUTTON_START);
|
||||
|
||||
@@ -335,7 +335,7 @@ public:
|
||||
d.width += padding.width;
|
||||
d.height += padding.height;
|
||||
*size = maxdim(*size, d);
|
||||
size->height = GetMinSizing(NWST_STEP, size->height);
|
||||
size->height = GetMinButtonSize(size->height);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -347,7 +347,7 @@ public:
|
||||
size->width = std::max(size->width, GetStringBoundingBox(as->name).width);
|
||||
}
|
||||
|
||||
this->line_height = GetMinSizing(NWST_STEP, FONT_HEIGHT_NORMAL + WD_MATRIX_TOP + WD_MATRIX_BOTTOM);
|
||||
this->line_height = GetMinButtonSize(FONT_HEIGHT_NORMAL + WD_MATRIX_TOP + WD_MATRIX_BOTTOM);
|
||||
size->height = 5 * this->line_height;
|
||||
break;
|
||||
}
|
||||
@@ -591,7 +591,7 @@ static const NWidgetPart _nested_build_airport_widgets[] = {
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
/* Airport dropdown selector and picture. */
|
||||
NWidget(WWT_PANEL, COLOUR_DARK_GREEN), SetFill(1, 0), SetPIP(2, 0, 2),
|
||||
NWidget(WWT_LABEL, COLOUR_DARK_GREEN), SetSizingType(NWST_STEP), SetDataTip(STR_STATION_BUILD_AIRPORT_CLASS_LABEL, STR_NULL), SetFill(1, 0),
|
||||
NWidget(WWT_LABEL, COLOUR_DARK_GREEN), SetSizingType(NWST_BUTTON), SetDataTip(STR_STATION_BUILD_AIRPORT_CLASS_LABEL, STR_NULL), SetFill(1, 0),
|
||||
NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_AP_CLASS_DROPDOWN), SetFill(1, 0), SetDataTip(STR_BLACK_STRING, STR_STATION_BUILD_AIRPORT_TOOLTIP),
|
||||
NWidget(WWT_EMPTY, COLOUR_DARK_GREEN, WID_AP_AIRPORT_SPRITE), SetFill(1, 0),
|
||||
EndContainer(),
|
||||
@@ -602,9 +602,9 @@ static const NWidgetPart _nested_build_airport_widgets[] = {
|
||||
NWidget(NWID_VSCROLLBAR, COLOUR_GREY, WID_AP_SCROLLBAR),
|
||||
EndContainer(),
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_AP_LAYOUT_DECREASE), SetSizingType(NWST_STEP), SetMinimalSize(12, 0), SetDataTip(AWV_DECREASE, STR_NULL),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_AP_LAYOUT_DECREASE), SetSizingType(NWST_BUTTON), SetMinimalSize(12, 0), SetDataTip(AWV_DECREASE, STR_NULL),
|
||||
NWidget(WWT_LABEL, COLOUR_GREY, WID_AP_LAYOUT_NUM), SetResize(1, 0), SetFill(1, 0), SetDataTip(STR_BLACK_STRING, STR_NULL),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_AP_LAYOUT_INCREASE), SetSizingType(NWST_STEP), SetMinimalSize(12, 0), SetDataTip(AWV_INCREASE, STR_NULL),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_AP_LAYOUT_INCREASE), SetSizingType(NWST_BUTTON), SetMinimalSize(12, 0), SetDataTip(AWV_INCREASE, STR_NULL),
|
||||
EndContainer(),
|
||||
NWidget(WWT_EMPTY, COLOUR_DARK_GREEN, WID_AP_EXTRA_TEXT), SetFill(1, 0), SetMinimalSize(150, 0),
|
||||
EndContainer(),
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -82,7 +82,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.
|
||||
@@ -230,7 +230,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];
|
||||
@@ -275,7 +275,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: {
|
||||
@@ -478,7 +478,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.
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -199,7 +199,7 @@ public:
|
||||
sprite_dim.height++; // Sprite is rendered one pixel down in the matrix field.
|
||||
text_dim.height++; // Allowing the bottom row pixels to be rendered on the edge of the matrix field.
|
||||
resize->height = std::max(sprite_dim.height, text_dim.height) + 2; // Max of both sizes + account for matrix edges.
|
||||
resize->height = GetMinSizing(NWST_STEP, resize->height);
|
||||
resize->height = GetMinButtonSize(resize->height);
|
||||
|
||||
this->bridgetext_offset = WD_MATRIX_LEFT + sprite_dim.width + 1; // Left edge of text, 1 pixel distance from the sprite.
|
||||
size->width = this->bridgetext_offset + text_dim.width + WD_MATRIX_RIGHT;
|
||||
|
||||
@@ -83,16 +83,15 @@ struct BuildInfoWindow : public Window
|
||||
|
||||
/* Increase slightly to have some space around the box. */
|
||||
size->width += 2 + WD_FRAMERECT_LEFT + WD_FRAMERECT_RIGHT;
|
||||
size->height += 2 + WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM;
|
||||
size->height += 6 + WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM;
|
||||
}
|
||||
|
||||
void DrawWidget(const Rect &r, int widget) const override
|
||||
{
|
||||
/* There is only one widget. */
|
||||
GfxFillRect(r.left, r.top, r.right, r.bottom, PC_BLACK);
|
||||
GfxFillRect(r.left + 1, r.top + 1, r.right - 1, r.bottom - 1, PC_LIGHT_YELLOW);
|
||||
DrawFrameRect(r.left, r.top, r.right, r.bottom, COLOUR_GREY, FR_NONE);
|
||||
|
||||
int top = r.top + WD_FRAMERECT_TOP;
|
||||
int top = r.top + WD_FRAMERECT_TOP + 4;
|
||||
Money cost = BuildInfoWindow::cost;
|
||||
StringID msg = STR_MESSAGE_ESTIMATED_COST;
|
||||
SetDParam(0, cost);
|
||||
@@ -189,8 +188,8 @@ struct BuildConfirmationWindow : Window {
|
||||
{
|
||||
switch (widget) {
|
||||
case WID_BC_OK:
|
||||
size->width = GetMinSizing(NWST_BUTTON) * 2;
|
||||
size->height = GetMinSizing(NWST_BUTTON) * 3;
|
||||
size->width = GetMinButtonSize() * 2;
|
||||
size->height = GetMinButtonSize() * 3;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
uint GetEngineListHeight(VehicleType type)
|
||||
{
|
||||
uint size = std::max<uint>(FONT_HEIGHT_NORMAL + WD_MATRIX_TOP + WD_MATRIX_BOTTOM, GetVehicleImageCellSize(type, EIT_PURCHASE).height);
|
||||
return GetMinSizing(NWST_STEP, size);
|
||||
return GetMinButtonSize(size);
|
||||
}
|
||||
|
||||
static const NWidgetPart _nested_build_vehicle_widgets[] = {
|
||||
@@ -61,12 +61,12 @@ static const NWidgetPart _nested_build_vehicle_widgets[] = {
|
||||
NWidget(WWT_PANEL, COLOUR_GREY),
|
||||
NWidget(NWID_VERTICAL),
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_BV_SORT_ASCENDING_DESCENDING), SetDataTip(STR_BUTTON_SORT_BY, STR_TOOLTIP_SORT_ORDER), SetSizingType(NWST_STEP),
|
||||
NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_BV_SORT_DROPDOWN), SetResize(1, 0), SetFill(1, 0), SetDataTip(STR_JUST_STRING, STR_TOOLTIP_SORT_CRITERIA), SetSizingType(NWST_STEP),
|
||||
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_BV_SORT_ASCENDING_DESCENDING), SetDataTip(STR_BUTTON_SORT_BY, STR_TOOLTIP_SORT_ORDER), SetSizingType(NWST_BUTTON),
|
||||
NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_BV_SORT_DROPDOWN), SetResize(1, 0), SetFill(1, 0), SetDataTip(STR_JUST_STRING, STR_TOOLTIP_SORT_CRITERIA), SetSizingType(NWST_BUTTON),
|
||||
EndContainer(),
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_BV_SHOW_HIDDEN_ENGINES), SetSizingType(NWST_STEP),
|
||||
NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_BV_CARGO_FILTER_DROPDOWN), SetResize(1, 0), SetFill(1, 0), SetDataTip(STR_JUST_STRING, STR_TOOLTIP_FILTER_CRITERIA), SetSizingType(NWST_STEP),
|
||||
NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_BV_SHOW_HIDDEN_ENGINES), SetSizingType(NWST_BUTTON),
|
||||
NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_BV_CARGO_FILTER_DROPDOWN), SetResize(1, 0), SetFill(1, 0), SetDataTip(STR_JUST_STRING, STR_TOOLTIP_FILTER_CRITERIA), SetSizingType(NWST_BUTTON),
|
||||
EndContainer(),
|
||||
NWidget(NWID_SPACER), SetFill(1, 1),
|
||||
EndContainer(),
|
||||
@@ -1061,7 +1061,7 @@ struct BuildVehicleWindow : Window {
|
||||
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.
|
||||
|
||||
@@ -1121,7 +1121,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);
|
||||
|
||||
@@ -1559,14 +1559,14 @@ 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: {
|
||||
Dimension d = GetStringBoundingBox(this->GetWidget<NWidgetCore>(widget)->widget_data);
|
||||
d.width += padding.width + Window::SortButtonWidth() * 2; // Doubled since the string is centred and it also looks better.
|
||||
d.height += padding.height;
|
||||
d.height = GetMinSizing(NWST_STEP, d.height);
|
||||
d.height = GetMinButtonSize(d.height);
|
||||
*size = maxdim(*size, d);
|
||||
break;
|
||||
}
|
||||
@@ -1627,12 +1627,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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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).
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -527,7 +527,7 @@ public:
|
||||
|
||||
uint Height(uint width) const override
|
||||
{
|
||||
return GetMinSizing(NWST_STEP, std::max(FONT_HEIGHT_NORMAL, ScaleGUITrad(12) + 2));
|
||||
return GetMinButtonSize(std::max(FONT_HEIGHT_NORMAL, ScaleGUITrad(12) + 2));
|
||||
}
|
||||
|
||||
bool Selectable() const override
|
||||
@@ -1216,65 +1216,65 @@ static const NWidgetPart _nested_select_company_manager_face_widgets[] = {
|
||||
NWidget(NWID_SPACER), SetMinimalSize(0, 2), SetFill(1, 0),
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
NWidget(WWT_EMPTY, INVALID_COLOUR, WID_SCMF_HAIR_TEXT), SetFill(1, 0),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_HAIR_L), SetSizingType(NWST_STEP), SetDataTip(AWV_DECREASE, STR_FACE_HAIR_TOOLTIP),
|
||||
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_SCMF_HAIR), SetSizingType(NWST_STEP), SetDataTip(STR_EMPTY, STR_FACE_HAIR_TOOLTIP),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_HAIR_R), SetSizingType(NWST_STEP), SetDataTip(AWV_INCREASE, STR_FACE_HAIR_TOOLTIP),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_HAIR_L), SetSizingType(NWST_BUTTON), SetDataTip(AWV_DECREASE, STR_FACE_HAIR_TOOLTIP),
|
||||
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_SCMF_HAIR), SetSizingType(NWST_BUTTON), SetDataTip(STR_EMPTY, STR_FACE_HAIR_TOOLTIP),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_HAIR_R), SetSizingType(NWST_BUTTON), SetDataTip(AWV_INCREASE, STR_FACE_HAIR_TOOLTIP),
|
||||
EndContainer(),
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
NWidget(WWT_EMPTY, INVALID_COLOUR, WID_SCMF_EYEBROWS_TEXT), SetFill(1, 0),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_EYEBROWS_L), SetSizingType(NWST_STEP), SetDataTip(AWV_DECREASE, STR_FACE_EYEBROWS_TOOLTIP),
|
||||
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_SCMF_EYEBROWS), SetSizingType(NWST_STEP), SetDataTip(STR_EMPTY, STR_FACE_EYEBROWS_TOOLTIP),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_EYEBROWS_R), SetSizingType(NWST_STEP), SetDataTip(AWV_INCREASE, STR_FACE_EYEBROWS_TOOLTIP),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_EYEBROWS_L), SetSizingType(NWST_BUTTON), SetDataTip(AWV_DECREASE, STR_FACE_EYEBROWS_TOOLTIP),
|
||||
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_SCMF_EYEBROWS), SetSizingType(NWST_BUTTON), SetDataTip(STR_EMPTY, STR_FACE_EYEBROWS_TOOLTIP),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_EYEBROWS_R), SetSizingType(NWST_BUTTON), SetDataTip(AWV_INCREASE, STR_FACE_EYEBROWS_TOOLTIP),
|
||||
EndContainer(),
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
NWidget(WWT_EMPTY, INVALID_COLOUR, WID_SCMF_EYECOLOUR_TEXT), SetFill(1, 0),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_EYECOLOUR_L), SetSizingType(NWST_STEP), SetDataTip(AWV_DECREASE, STR_FACE_EYECOLOUR_TOOLTIP),
|
||||
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_SCMF_EYECOLOUR), SetSizingType(NWST_STEP), SetDataTip(STR_EMPTY, STR_FACE_EYECOLOUR_TOOLTIP),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_EYECOLOUR_R), SetSizingType(NWST_STEP), SetDataTip(AWV_INCREASE, STR_FACE_EYECOLOUR_TOOLTIP),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_EYECOLOUR_L), SetSizingType(NWST_BUTTON), SetDataTip(AWV_DECREASE, STR_FACE_EYECOLOUR_TOOLTIP),
|
||||
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_SCMF_EYECOLOUR), SetSizingType(NWST_BUTTON), SetDataTip(STR_EMPTY, STR_FACE_EYECOLOUR_TOOLTIP),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_EYECOLOUR_R), SetSizingType(NWST_BUTTON), SetDataTip(AWV_INCREASE, STR_FACE_EYECOLOUR_TOOLTIP),
|
||||
EndContainer(),
|
||||
EndContainer(),
|
||||
NWidget(NWID_VERTICAL),
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
NWidget(WWT_EMPTY, INVALID_COLOUR, WID_SCMF_GLASSES_TEXT), SetFill(1, 0),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_GLASSES_L), SetSizingType(NWST_STEP), SetDataTip(AWV_DECREASE, STR_FACE_GLASSES_TOOLTIP_2),
|
||||
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_SCMF_GLASSES), SetSizingType(NWST_STEP), SetDataTip(STR_EMPTY, STR_FACE_GLASSES_TOOLTIP_2),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_GLASSES_R), SetSizingType(NWST_STEP), SetDataTip(AWV_INCREASE, STR_FACE_GLASSES_TOOLTIP_2),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_GLASSES_L), SetSizingType(NWST_BUTTON), SetDataTip(AWV_DECREASE, STR_FACE_GLASSES_TOOLTIP_2),
|
||||
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_SCMF_GLASSES), SetSizingType(NWST_BUTTON), SetDataTip(STR_EMPTY, STR_FACE_GLASSES_TOOLTIP_2),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_GLASSES_R), SetSizingType(NWST_BUTTON), SetDataTip(AWV_INCREASE, STR_FACE_GLASSES_TOOLTIP_2),
|
||||
EndContainer(),
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
NWidget(WWT_EMPTY, INVALID_COLOUR, WID_SCMF_NOSE_TEXT), SetFill(1, 0),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_NOSE_L), SetSizingType(NWST_STEP), SetDataTip(AWV_DECREASE, STR_FACE_NOSE_TOOLTIP),
|
||||
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_SCMF_NOSE), SetSizingType(NWST_STEP), SetDataTip(STR_EMPTY, STR_FACE_NOSE_TOOLTIP),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_NOSE_R), SetSizingType(NWST_STEP), SetDataTip(AWV_INCREASE, STR_FACE_NOSE_TOOLTIP),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_NOSE_L), SetSizingType(NWST_BUTTON), SetDataTip(AWV_DECREASE, STR_FACE_NOSE_TOOLTIP),
|
||||
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_SCMF_NOSE), SetSizingType(NWST_BUTTON), SetDataTip(STR_EMPTY, STR_FACE_NOSE_TOOLTIP),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_NOSE_R), SetSizingType(NWST_BUTTON), SetDataTip(AWV_INCREASE, STR_FACE_NOSE_TOOLTIP),
|
||||
EndContainer(),
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
NWidget(WWT_EMPTY, INVALID_COLOUR, WID_SCMF_LIPS_MOUSTACHE_TEXT), SetFill(1, 0),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_LIPS_MOUSTACHE_L), SetSizingType(NWST_STEP), SetDataTip(AWV_DECREASE, STR_FACE_LIPS_MOUSTACHE_TOOLTIP),
|
||||
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_SCMF_LIPS_MOUSTACHE), SetSizingType(NWST_STEP), SetDataTip(STR_EMPTY, STR_FACE_LIPS_MOUSTACHE_TOOLTIP),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_LIPS_MOUSTACHE_R), SetSizingType(NWST_STEP), SetDataTip(AWV_INCREASE, STR_FACE_LIPS_MOUSTACHE_TOOLTIP),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_LIPS_MOUSTACHE_L), SetSizingType(NWST_BUTTON), SetDataTip(AWV_DECREASE, STR_FACE_LIPS_MOUSTACHE_TOOLTIP),
|
||||
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_SCMF_LIPS_MOUSTACHE), SetSizingType(NWST_BUTTON), SetDataTip(STR_EMPTY, STR_FACE_LIPS_MOUSTACHE_TOOLTIP),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_LIPS_MOUSTACHE_R), SetSizingType(NWST_BUTTON), SetDataTip(AWV_INCREASE, STR_FACE_LIPS_MOUSTACHE_TOOLTIP),
|
||||
EndContainer(),
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
NWidget(WWT_EMPTY, INVALID_COLOUR, WID_SCMF_CHIN_TEXT), SetFill(1, 0),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_CHIN_L), SetSizingType(NWST_STEP), SetDataTip(AWV_DECREASE, STR_FACE_CHIN_TOOLTIP),
|
||||
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_SCMF_CHIN), SetSizingType(NWST_STEP), SetDataTip(STR_EMPTY, STR_FACE_CHIN_TOOLTIP),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_CHIN_R), SetSizingType(NWST_STEP), SetDataTip(AWV_INCREASE, STR_FACE_CHIN_TOOLTIP),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_CHIN_L), SetSizingType(NWST_BUTTON), SetDataTip(AWV_DECREASE, STR_FACE_CHIN_TOOLTIP),
|
||||
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_SCMF_CHIN), SetSizingType(NWST_BUTTON), SetDataTip(STR_EMPTY, STR_FACE_CHIN_TOOLTIP),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_CHIN_R), SetSizingType(NWST_BUTTON), SetDataTip(AWV_INCREASE, STR_FACE_CHIN_TOOLTIP),
|
||||
EndContainer(),
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
NWidget(WWT_EMPTY, INVALID_COLOUR, WID_SCMF_JACKET_TEXT), SetFill(1, 0),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_JACKET_L), SetSizingType(NWST_STEP), SetDataTip(AWV_DECREASE, STR_FACE_JACKET_TOOLTIP),
|
||||
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_SCMF_JACKET), SetSizingType(NWST_STEP), SetDataTip(STR_EMPTY, STR_FACE_JACKET_TOOLTIP),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_JACKET_R), SetSizingType(NWST_STEP), SetDataTip(AWV_INCREASE, STR_FACE_JACKET_TOOLTIP),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_JACKET_L), SetSizingType(NWST_BUTTON), SetDataTip(AWV_DECREASE, STR_FACE_JACKET_TOOLTIP),
|
||||
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_SCMF_JACKET), SetSizingType(NWST_BUTTON), SetDataTip(STR_EMPTY, STR_FACE_JACKET_TOOLTIP),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_JACKET_R), SetSizingType(NWST_BUTTON), SetDataTip(AWV_INCREASE, STR_FACE_JACKET_TOOLTIP),
|
||||
EndContainer(),
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
NWidget(WWT_EMPTY, INVALID_COLOUR, WID_SCMF_COLLAR_TEXT), SetFill(1, 0),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_COLLAR_L), SetSizingType(NWST_STEP), SetDataTip(AWV_DECREASE, STR_FACE_COLLAR_TOOLTIP),
|
||||
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_SCMF_COLLAR), SetSizingType(NWST_STEP), SetDataTip(STR_EMPTY, STR_FACE_COLLAR_TOOLTIP),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_COLLAR_R), SetSizingType(NWST_STEP), SetDataTip(AWV_INCREASE, STR_FACE_COLLAR_TOOLTIP),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_COLLAR_L), SetSizingType(NWST_BUTTON), SetDataTip(AWV_DECREASE, STR_FACE_COLLAR_TOOLTIP),
|
||||
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_SCMF_COLLAR), SetSizingType(NWST_BUTTON), SetDataTip(STR_EMPTY, STR_FACE_COLLAR_TOOLTIP),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_COLLAR_R), SetSizingType(NWST_BUTTON), SetDataTip(AWV_INCREASE, STR_FACE_COLLAR_TOOLTIP),
|
||||
EndContainer(),
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
NWidget(WWT_EMPTY, INVALID_COLOUR, WID_SCMF_TIE_EARRING_TEXT), SetFill(1, 0),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_TIE_EARRING_L), SetSizingType(NWST_STEP), SetDataTip(AWV_DECREASE, STR_FACE_TIE_EARRING_TOOLTIP),
|
||||
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_SCMF_TIE_EARRING), SetSizingType(NWST_STEP), SetDataTip(STR_EMPTY, STR_FACE_TIE_EARRING_TOOLTIP),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_TIE_EARRING_R), SetSizingType(NWST_STEP), SetDataTip(AWV_INCREASE, STR_FACE_TIE_EARRING_TOOLTIP),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_TIE_EARRING_L), SetSizingType(NWST_BUTTON), SetDataTip(AWV_DECREASE, STR_FACE_TIE_EARRING_TOOLTIP),
|
||||
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_SCMF_TIE_EARRING), SetSizingType(NWST_BUTTON), SetDataTip(STR_EMPTY, STR_FACE_TIE_EARRING_TOOLTIP),
|
||||
NWidget(WWT_PUSHARROWBTN, COLOUR_GREY, WID_SCMF_TIE_EARRING_R), SetSizingType(NWST_BUTTON), SetDataTip(AWV_INCREASE, STR_FACE_TIE_EARRING_TOOLTIP),
|
||||
EndContainer(),
|
||||
EndContainer(),
|
||||
EndContainer(),
|
||||
@@ -1382,8 +1382,8 @@ public:
|
||||
yesno_dim.width += WD_FRAMERECT_LEFT + WD_FRAMERECT_RIGHT;
|
||||
yesno_dim.height += WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM;
|
||||
|
||||
yesno_dim.width = GetMinSizing(NWST_STEP, yesno_dim.width);
|
||||
yesno_dim.height = GetMinSizing(NWST_STEP, yesno_dim.height);
|
||||
yesno_dim.width = GetMinButtonSize(yesno_dim.width);
|
||||
yesno_dim.height = GetMinButtonSize(yesno_dim.height);
|
||||
|
||||
/* Size of the number button + arrows. */
|
||||
Dimension number_dim = {0, 0};
|
||||
|
||||
@@ -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"
|
||||
@@ -907,7 +908,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;
|
||||
}
|
||||
|
||||
@@ -921,7 +922,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;
|
||||
@@ -949,7 +949,7 @@ DEF_CONSOLE_CMD(ConNetworkConnect)
|
||||
IConsolePrintF(CC_DEFAULT, " port: %s", port);
|
||||
}
|
||||
|
||||
NetworkClientConnectGame(NetworkAddress(ip, rport), join_as);
|
||||
NetworkClientConnectGame(ip, rport, join_as);
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -1365,7 +1365,9 @@ DEF_CONSOLE_CMD(ConRescanNewGRF)
|
||||
return true;
|
||||
}
|
||||
|
||||
RequestNewGRFScan();
|
||||
if (!RequestNewGRFScan()) {
|
||||
IConsoleWarning("NewGRF scanning is already running. Please wait until completed to run again.");
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -1451,7 +1453,7 @@ DEF_CONSOLE_CMD(ConScreenShot)
|
||||
ScreenshotType type = SC_VIEWPORT;
|
||||
uint32 width = 0;
|
||||
uint32 height = 0;
|
||||
const char *name = nullptr;
|
||||
std::string name{};
|
||||
uint32 arg_index = 1;
|
||||
|
||||
if (argc > arg_index) {
|
||||
|
||||
@@ -32,6 +32,9 @@
|
||||
#ifdef __ANDROID__
|
||||
#include <SDL_screenkeyboard.h>
|
||||
#endif
|
||||
#ifdef __EMSCRIPTEN__
|
||||
#include <emscripten.h>
|
||||
#endif
|
||||
|
||||
static const uint ICON_HISTORY_SIZE = 20;
|
||||
static const uint ICON_LINE_SPACING = 2;
|
||||
@@ -187,7 +190,15 @@ struct IConsoleWindow : Window
|
||||
|
||||
this->InitNested(0);
|
||||
this->truncate_timer.SetInterval(3000);
|
||||
ResizeWindow(this, _screen.width, _screen.height / 3);
|
||||
ResizeWindow(this, _screen.width - GetMinButtonSize() * 2, _screen.height / 3);
|
||||
this->left = GetMinButtonSize();
|
||||
|
||||
#ifdef __EMSCRIPTEN__
|
||||
// TODO: move this code to SDL2 Emscripten backend
|
||||
EM_ASM({
|
||||
Module.startTextInput(UTF8ToString($0));
|
||||
}, "");
|
||||
#endif // __EMSCRIPTEN__
|
||||
}
|
||||
|
||||
~IConsoleWindow()
|
||||
@@ -233,6 +244,23 @@ struct IConsoleWindow : Window
|
||||
if (_focused_window == this && _iconsole_cmdline.caret) {
|
||||
DrawString(this->line_offset + delta + _iconsole_cmdline.caretxoffs, right, this->height - this->line_height, "_", TC_WHITE, SA_LEFT | SA_FORCE);
|
||||
}
|
||||
|
||||
#ifdef __EMSCRIPTEN__
|
||||
// TODO: move this code to SDL2 Emscripten backend
|
||||
char buf[512] = "";
|
||||
int status = EM_ASM_INT({
|
||||
var value = Module.getTextInput();
|
||||
if (value == null) {
|
||||
return 0;
|
||||
}
|
||||
var lengthBytes = Math.min(512, lengthBytesUTF8(value) + 1);
|
||||
stringToUTF8(value, $0, lengthBytes);
|
||||
return 1;
|
||||
}, buf);
|
||||
if (status) {
|
||||
this->OnQueryTextFinished(buf);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void OnQueryTextFinished(char *str) override
|
||||
@@ -261,6 +289,16 @@ struct IConsoleWindow : Window
|
||||
if (_iconsole_cmdline.HandleCaret()) this->SetDirty();
|
||||
}
|
||||
|
||||
void OnClick(Point pt, int widget, int click_count) override
|
||||
{
|
||||
#ifdef __EMSCRIPTEN__
|
||||
// TODO: move this code to SDL2 Emscripten backend
|
||||
EM_ASM({
|
||||
Module.startTextInput(UTF8ToString($0));
|
||||
}, "");
|
||||
#endif // __EMSCRIPTEN__
|
||||
}
|
||||
|
||||
EventState OnKeyPress(WChar key, uint16 keycode) override
|
||||
{
|
||||
if (_focused_window != this) return ES_NOT_HANDLED;
|
||||
@@ -436,11 +474,11 @@ void IConsoleResize(Window *w)
|
||||
switch (_iconsole_mode) {
|
||||
case ICONSOLE_OPENED:
|
||||
w->height = _screen.height / 3;
|
||||
w->width = _screen.width;
|
||||
w->width = _screen.width - GetMinButtonSize() * 2;
|
||||
break;
|
||||
case ICONSOLE_FULL:
|
||||
w->height = _screen.height - ICON_BOTTOM_BORDERWIDTH;
|
||||
w->width = _screen.width;
|
||||
w->width = _screen.width - GetMinButtonSize() * 2;
|
||||
break;
|
||||
default: return;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -678,7 +678,7 @@ struct DepotWindow : Window {
|
||||
int base_width = this->count_width + this->header_width;
|
||||
|
||||
resize->height = std::max<uint>(GetVehicleImageCellSize(this->type, EIT_IN_DEPOT).height, min_height);
|
||||
resize->height = GetMinSizing(NWST_STEP, resize->height);
|
||||
resize->height = GetMinButtonSize(resize->height);
|
||||
if (this->type == VEH_TRAIN) {
|
||||
resize->width = 1;
|
||||
size->width = base_width + 2 * ScaleGUITrad(29); // about 2 parts
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -221,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));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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. */
|
||||
|
||||
@@ -42,7 +42,6 @@ LoadCheckData _load_check_data; ///< Data loaded from save during SL_LOAD_CHE
|
||||
|
||||
static bool _fios_path_changed;
|
||||
static bool _savegame_sort_dirty;
|
||||
static const char *NETWORK_SAVE_FILENAME = "network-save.sav";
|
||||
|
||||
|
||||
/**
|
||||
@@ -569,7 +568,7 @@ public:
|
||||
break;
|
||||
|
||||
case WID_SL_DRIVES_DIRECTORIES_LIST:
|
||||
resize->height = GetMinSizing(NWST_STEP, FONT_HEIGHT_NORMAL);
|
||||
resize->height = GetMinButtonSize(FONT_HEIGHT_NORMAL);
|
||||
size->height = resize->height * 5 + WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM;
|
||||
break;
|
||||
case WID_SL_SORT_BYNAME:
|
||||
@@ -731,19 +730,10 @@ public:
|
||||
this->SetDirty();
|
||||
break;
|
||||
|
||||
case WID_SL_LOAD_NETWORK_BUTTON: {
|
||||
std::string savePath = FiosMakeSavegameName(NETWORK_SAVE_FILENAME);
|
||||
#ifdef __ANDROID__
|
||||
if (!SDL_ANDROID_CloudLoad(savePath.c_str(), NULL, "OpenTTD")) {
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
_file_to_saveload.SetMode(FIOS_TYPE_FILE);
|
||||
_file_to_saveload.SetName(savePath.c_str());
|
||||
_file_to_saveload.SetTitle("Network Save");
|
||||
_switch_mode = SM_LOAD_GAME;
|
||||
break;
|
||||
}
|
||||
case WID_SL_LOAD_NETWORK_BUTTON:
|
||||
_file_to_saveload.cloud_load = true;
|
||||
delete this;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
#include "game/game_instance.hpp"
|
||||
#include "string_func.h"
|
||||
#include "thread.h"
|
||||
#include "tgp.h"
|
||||
|
||||
#include "safeguards.h"
|
||||
|
||||
@@ -118,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();
|
||||
@@ -283,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();
|
||||
|
||||
@@ -42,10 +42,15 @@ 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
|
||||
|
||||
|
||||
@@ -46,6 +46,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
|
||||
@@ -107,8 +116,10 @@ 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),
|
||||
@@ -116,17 +127,19 @@ static const NWidgetPart _nested_generate_landscape_widgets[] = {
|
||||
NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_NUMBER_OF_TOWNS, 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),
|
||||
@@ -208,21 +221,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),
|
||||
@@ -305,7 +328,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};
|
||||
@@ -336,6 +359,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();
|
||||
}
|
||||
|
||||
@@ -346,8 +373,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) {
|
||||
@@ -371,7 +399,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) {
|
||||
@@ -438,20 +473,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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -460,7 +516,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;
|
||||
@@ -474,12 +530,17 @@ struct GenerateLandscapeWindow : public Window {
|
||||
case WID_GL_MAPSIZE_Y_PULLDOWN:
|
||||
SetDParamMaxValue(0, MAX_MAP_SIZE);
|
||||
*size = maxdim(*size, GetStringBoundingBox(STR_JUST_INT));
|
||||
size->width = size->width + GetMinSizing(NWST_BUTTON);
|
||||
size->width = size->width + GetMinButtonSize();
|
||||
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:
|
||||
@@ -497,7 +558,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);
|
||||
@@ -603,22 +670,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;
|
||||
|
||||
|
||||
@@ -640,22 +707,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
|
||||
@@ -723,8 +808,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);
|
||||
@@ -767,7 +856,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) {
|
||||
@@ -793,19 +890,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:
|
||||
@@ -813,15 +912,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;
|
||||
@@ -938,7 +1046,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);
|
||||
@@ -971,9 +1079,9 @@ struct CreateScenarioWindow : public Window
|
||||
}
|
||||
*size = maxdim(*size, GetStringBoundingBox(str));
|
||||
size->width += padding.width;
|
||||
size->width = GetMinSizing(NWST_BUTTON, size->width);
|
||||
size->width = GetMinButtonSize(size->width);
|
||||
size->height += padding.height;
|
||||
size->height = GetMinSizing(NWST_BUTTON, size->height);
|
||||
size->height = GetMinButtonSize(size->height);
|
||||
}
|
||||
|
||||
void OnClick(Point pt, int widget, int click_count) override
|
||||
@@ -1028,7 +1136,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;
|
||||
@@ -1074,7 +1182,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;
|
||||
}
|
||||
|
||||
@@ -1304,6 +1412,12 @@ static void _SetGeneratingWorldProgress(GenWorldProgress cls, uint progress, uin
|
||||
static_assert(lengthof(percent_table) == GWP_CLASS_COUNT + 1);
|
||||
assert(cls < GWP_CLASS_COUNT);
|
||||
|
||||
/* 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();
|
||||
return;
|
||||
|
||||
@@ -1399,7 +1399,7 @@ void ScreenSizeChanged()
|
||||
void UndrawMouseCursor()
|
||||
{
|
||||
/* Don't undraw mouse cursor if it is handled by the video driver. */
|
||||
if (VideoDriver::GetInstance()->UseSystemCursor()) return;
|
||||
if (VideoDriver::GetInstance()->UseSystemCursor() || !_settings_client.gui.draw_mouse_cursor) return;
|
||||
|
||||
/* Don't undraw the mouse cursor if the screen is not ready */
|
||||
if (_screen.dst_ptr == nullptr) return;
|
||||
@@ -1415,7 +1415,7 @@ void UndrawMouseCursor()
|
||||
void DrawMouseCursor()
|
||||
{
|
||||
/* Don't draw mouse cursor if it is handled by the video driver. */
|
||||
if (VideoDriver::GetInstance()->UseSystemCursor()) return;
|
||||
if (VideoDriver::GetInstance()->UseSystemCursor() || !_settings_client.gui.draw_mouse_cursor) return;
|
||||
|
||||
/* Don't draw the mouse cursor if the screen is not ready */
|
||||
if (_screen.dst_ptr == nullptr) return;
|
||||
|
||||
@@ -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.
|
||||
@@ -309,7 +331,7 @@ static bool SwitchNewGRFBlitter()
|
||||
if (BlitterFactory::GetBlitterFactory(repl_blitter) == nullptr) continue;
|
||||
|
||||
/* Inform the video driver we want to switch blitter as soon as possible. */
|
||||
VideoDriver::GetInstance()->ChangeBlitter(repl_blitter);
|
||||
VideoDriver::GetInstance()->QueueOnMainThread(std::bind(&RealChangeBlitter, repl_blitter));
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -114,7 +114,7 @@ static NWidgetBase *MakeNWidgetCompanyLines(int *biggest_index)
|
||||
|
||||
for (int widnum = WID_GL_FIRST_COMPANY; widnum <= WID_GL_LAST_COMPANY; widnum++) {
|
||||
NWidgetBackground *panel = new NWidgetBackground(WWT_PANEL, COLOUR_BROWN, widnum);
|
||||
panel->sizing_type = NWST_STEP;
|
||||
panel->sizing_type = NWST_BUTTON;
|
||||
panel->SetMinimalSize(246, line_height);
|
||||
panel->SetFill(1, 0);
|
||||
panel->SetDataTip(0x0, STR_GRAPH_KEY_COMPANY_SELECTION_TOOLTIP);
|
||||
@@ -647,7 +647,7 @@ static const NWidgetPart _nested_operating_profit_widgets[] = {
|
||||
NWidget(NWID_VERTICAL),
|
||||
NWidget(NWID_SPACER), SetFill(0, 1), SetResize(0, 1),
|
||||
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),
|
||||
SetSizingType(NWST_STEP),
|
||||
SetSizingType(NWST_BUTTON),
|
||||
NWidget(WWT_RESIZEBOX, COLOUR_BROWN, WID_CV_RESIZE),
|
||||
EndContainer(),
|
||||
EndContainer(),
|
||||
@@ -699,7 +699,7 @@ static const NWidgetPart _nested_income_graph_widgets[] = {
|
||||
NWidget(NWID_VERTICAL),
|
||||
NWidget(NWID_SPACER), SetFill(0, 1), SetResize(0, 1),
|
||||
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),
|
||||
SetSizingType(NWST_STEP),
|
||||
SetSizingType(NWST_BUTTON),
|
||||
NWidget(WWT_RESIZEBOX, COLOUR_BROWN, WID_CV_RESIZE),
|
||||
EndContainer(),
|
||||
EndContainer(),
|
||||
@@ -749,7 +749,7 @@ static const NWidgetPart _nested_delivered_cargo_graph_widgets[] = {
|
||||
NWidget(NWID_VERTICAL),
|
||||
NWidget(NWID_SPACER), SetFill(0, 1), SetResize(0, 1),
|
||||
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),
|
||||
SetSizingType(NWST_STEP),
|
||||
SetSizingType(NWST_BUTTON),
|
||||
NWidget(WWT_RESIZEBOX, COLOUR_BROWN, WID_CV_RESIZE),
|
||||
EndContainer(),
|
||||
EndContainer(),
|
||||
@@ -805,9 +805,9 @@ static const NWidgetPart _nested_performance_history_widgets[] = {
|
||||
NWidget(NWID_VERTICAL),
|
||||
NWidget(NWID_SPACER), SetFill(0, 1), SetResize(0, 1),
|
||||
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),
|
||||
SetSizingType(NWST_STEP),
|
||||
SetSizingType(NWST_BUTTON),
|
||||
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),
|
||||
SetSizingType(NWST_STEP),
|
||||
SetSizingType(NWST_BUTTON),
|
||||
NWidget(WWT_RESIZEBOX, COLOUR_BROWN, WID_PHG_RESIZE),
|
||||
EndContainer(),
|
||||
EndContainer(),
|
||||
@@ -857,7 +857,7 @@ static const NWidgetPart _nested_company_value_graph_widgets[] = {
|
||||
NWidget(NWID_VERTICAL),
|
||||
NWidget(NWID_SPACER), SetFill(0, 1), SetResize(0, 1),
|
||||
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),
|
||||
SetSizingType(NWST_STEP),
|
||||
SetSizingType(NWST_BUTTON),
|
||||
NWidget(WWT_RESIZEBOX, COLOUR_BROWN, WID_CV_RESIZE),
|
||||
EndContainer(),
|
||||
EndContainer(),
|
||||
|
||||
@@ -46,37 +46,37 @@ static const NWidgetPart _nested_group_widgets[] = {
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
/* left part */
|
||||
NWidget(NWID_VERTICAL),
|
||||
NWidget(WWT_PANEL, COLOUR_GREY, WID_GL_ALL_VEHICLES), SetFill(1, 0), SetMinimalTextLines(1, WD_DROPDOWNTEXT_TOP + WD_DROPDOWNTEXT_BOTTOM), 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),
|
||||
NWidget(WWT_MATRIX, COLOUR_GREY, WID_GL_LIST_GROUP), SetMatrixDataTip(1, 0, STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP),
|
||||
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(),
|
||||
/* right part */
|
||||
NWidget(NWID_VERTICAL),
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_GL_GROUP_BY_ORDER), SetSizingType(NWST_STEP), SetMinimalSize(81, 12), SetDataTip(STR_STATION_VIEW_GROUP, STR_TOOLTIP_GROUP_ORDER),
|
||||
NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GL_GROUP_BY_DROPDOWN), SetSizingType(NWST_STEP), SetMinimalSize(167, 12), SetDataTip(0x0, STR_TOOLTIP_GROUP_ORDER),
|
||||
NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_GL_GROUP_BY_ORDER), SetSizingType(NWST_BUTTON), SetMinimalSize(81, 12), SetDataTip(STR_STATION_VIEW_GROUP, STR_TOOLTIP_GROUP_ORDER),
|
||||
NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GL_GROUP_BY_DROPDOWN), SetSizingType(NWST_BUTTON), SetMinimalSize(167, 12), SetDataTip(0x0, STR_TOOLTIP_GROUP_ORDER),
|
||||
NWidget(WWT_PANEL, COLOUR_GREY), SetMinimalSize(12, 12), SetResize(1, 0), EndContainer(),
|
||||
EndContainer(),
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_GL_SORT_BY_ORDER), SetSizingType(NWST_STEP), SetMinimalSize(81, 12), SetDataTip(STR_BUTTON_SORT_BY, STR_TOOLTIP_SORT_ORDER),
|
||||
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_GL_SORT_BY_ORDER), SetSizingType(NWST_BUTTON), SetMinimalSize(81, 12), SetDataTip(STR_BUTTON_SORT_BY, STR_TOOLTIP_SORT_ORDER),
|
||||
NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GL_SORT_BY_DROPDOWN), SetMinimalSize(167, 12), SetDataTip(0x0, STR_TOOLTIP_SORT_CRITERIA),
|
||||
NWidget(WWT_PANEL, COLOUR_GREY), SetMinimalSize(12, 12), SetResize(1, 0), EndContainer(),
|
||||
EndContainer(),
|
||||
@@ -86,14 +86,14 @@ static const NWidgetPart _nested_group_widgets[] = {
|
||||
EndContainer(),
|
||||
NWidget(WWT_PANEL, COLOUR_GREY), 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,8 +229,8 @@ 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 = GetMinSizing(NWST_STEP, this->tiny_step_height);
|
||||
this->tiny_step_height += WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM;
|
||||
this->tiny_step_height = GetMinButtonSize(this->tiny_step_height);
|
||||
|
||||
return WD_FRAMERECT_LEFT + 8 +
|
||||
this->column_size[VGC_FOLD].width + 2 +
|
||||
@@ -256,7 +256,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 + WD_MATRIX_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;
|
||||
@@ -387,7 +387,7 @@ public:
|
||||
resize->height = this->tiny_step_height;
|
||||
|
||||
/* Minimum height is the height of the list widget minus all and default vehicles... */
|
||||
size->height = (this->vli.vtype >= VEH_SHIP ? 3.5 : 7) * GetVehicleListHeight(this->vli.vtype, this->tiny_step_height) - 2 * this->tiny_step_height;
|
||||
size->height = (this->vli.vtype >= VEH_SHIP ? 3.5 : 7) * 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;
|
||||
@@ -430,11 +430,6 @@ public:
|
||||
*size = maxdim(*size, d);
|
||||
break;
|
||||
}
|
||||
|
||||
case WID_GL_INFO: {
|
||||
size->height = (FONT_HEIGHT_NORMAL * 3) + WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -556,11 +551,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: {
|
||||
@@ -601,7 +596,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];
|
||||
@@ -893,7 +888,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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -421,7 +421,7 @@ public:
|
||||
if (this->index[i] == INVALID_INDUSTRYTYPE) continue;
|
||||
d = maxdim(d, GetStringBoundingBox(GetIndustrySpec(this->index[i])->name));
|
||||
}
|
||||
resize->height = GetMinSizing(NWST_STEP, FONT_HEIGHT_NORMAL + WD_MATRIX_TOP + WD_MATRIX_BOTTOM);
|
||||
resize->height = GetMinButtonSize(FONT_HEIGHT_NORMAL + WD_MATRIX_TOP + WD_MATRIX_BOTTOM);
|
||||
d.width += FONT_HEIGHT_NORMAL * 5 / 4 + padding.width;
|
||||
d.height = 5 * resize->height;
|
||||
*size = maxdim(*size, d);
|
||||
@@ -927,7 +927,7 @@ public:
|
||||
if (first) {
|
||||
if (has_accept) y += WD_PAR_VSEP_WIDE;
|
||||
DrawString(left + WD_FRAMERECT_LEFT, right - WD_FRAMERECT_RIGHT, y, STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE);
|
||||
y += this->editable == EA_RATE ? GetMinSizing(NWST_STEP, FONT_HEIGHT_NORMAL) : FONT_HEIGHT_NORMAL;
|
||||
y += this->editable == EA_RATE ? GetMinButtonSize(FONT_HEIGHT_NORMAL) : FONT_HEIGHT_NORMAL;
|
||||
if (this->editable == EA_RATE) this->production_offset_y = y;
|
||||
first = false;
|
||||
}
|
||||
@@ -942,7 +942,7 @@ public:
|
||||
if (this->editable == EA_RATE) {
|
||||
DrawArrowButtons(left + WD_FRAMETEXT_LEFT, y, COLOUR_YELLOW, (this->clicked_line == IL_RATE1 + j) ? this->clicked_button : 0,
|
||||
i->production_rate[j] > 0, i->production_rate[j] < 255);
|
||||
y += GetMinSizing(NWST_STEP, FONT_HEIGHT_NORMAL);
|
||||
y += GetMinButtonSize(FONT_HEIGHT_NORMAL);
|
||||
} else {
|
||||
y += FONT_HEIGHT_NORMAL;
|
||||
}
|
||||
@@ -957,7 +957,7 @@ public:
|
||||
DrawString(x, right - WD_FRAMERECT_RIGHT, y, STR_INDUSTRY_VIEW_PRODUCTION_LEVEL);
|
||||
DrawArrowButtons(left + WD_FRAMETEXT_LEFT, y, COLOUR_YELLOW, (this->clicked_line == IL_MULTIPLIER) ? this->clicked_button : 0,
|
||||
i->prod_level > PRODLEVEL_MINIMUM, i->prod_level < PRODLEVEL_MAXIMUM);
|
||||
y += GetMinSizing(NWST_STEP, FONT_HEIGHT_NORMAL);
|
||||
y += GetMinButtonSize(FONT_HEIGHT_NORMAL);
|
||||
}
|
||||
|
||||
/* Get the extra message for the GUI */
|
||||
@@ -1017,9 +1017,9 @@ public:
|
||||
|
||||
case EA_RATE:
|
||||
if (pt.y >= this->production_offset_y) {
|
||||
if ((pt.y - this->production_offset_y) % GetMinSizing(NWST_STEP, FONT_HEIGHT_NORMAL) > (uint)SETTING_BUTTON_HEIGHT) break;;
|
||||
if ((pt.y - this->production_offset_y) % GetMinButtonSize(FONT_HEIGHT_NORMAL) > (uint)SETTING_BUTTON_HEIGHT) break;;
|
||||
|
||||
int row = (pt.y - this->production_offset_y) / GetMinSizing(NWST_STEP, FONT_HEIGHT_NORMAL);
|
||||
int row = (pt.y - this->production_offset_y) / GetMinButtonSize(FONT_HEIGHT_NORMAL);
|
||||
for (uint j = 0; j < lengthof(i->produced_cargo); j++) {
|
||||
if (i->produced_cargo[j] == CT_INVALID) continue;
|
||||
row--;
|
||||
@@ -1235,7 +1235,7 @@ static const NWidgetPart _nested_industry_directory_widgets[] = {
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
NWidget(NWID_VERTICAL),
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
NWidget(WWT_TEXTBTN, COLOUR_BROWN, WID_ID_DROPDOWN_ORDER), SetSizingType(NWST_STEP), SetDataTip(STR_BUTTON_SORT_BY, STR_TOOLTIP_SORT_ORDER),
|
||||
NWidget(WWT_TEXTBTN, COLOUR_BROWN, WID_ID_DROPDOWN_ORDER), SetSizingType(NWST_BUTTON), SetDataTip(STR_BUTTON_SORT_BY, STR_TOOLTIP_SORT_ORDER),
|
||||
NWidget(WWT_DROPDOWN, COLOUR_BROWN, WID_ID_DROPDOWN_CRITERIA), SetDataTip(STR_JUST_STRING, STR_TOOLTIP_SORT_CRITERIA),
|
||||
NWidget(WWT_DROPDOWN, COLOUR_BROWN, WID_ID_FILTER_BY_ACC_CARGO), SetMinimalSize(225, 12), SetFill(0, 1), SetDataTip(STR_INDUSTRY_DIRECTORY_ACCEPTED_CARGO_FILTER, STR_TOOLTIP_FILTER_CRITERIA),
|
||||
NWidget(WWT_DROPDOWN, COLOUR_BROWN, WID_ID_FILTER_BY_PROD_CARGO), SetMinimalSize(225, 12), SetFill(0, 1), SetDataTip(STR_INDUSTRY_DIRECTORY_PRODUCED_CARGO_FILTER, STR_TOOLTIP_FILTER_CRITERIA),
|
||||
@@ -1669,7 +1669,7 @@ public:
|
||||
for (uint i = 0; i < this->industries.size(); i++) {
|
||||
d = maxdim(d, GetStringBoundingBox(this->GetIndustryString(this->industries[i])));
|
||||
}
|
||||
resize->height = d.height = GetMinSizing(NWST_STEP, d.height);
|
||||
resize->height = d.height = GetMinButtonSize(d.height);
|
||||
d.height *= 5;
|
||||
d.width += padding.width + WD_FRAMERECT_LEFT + WD_FRAMERECT_RIGHT;
|
||||
d.height += padding.height + WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM;
|
||||
|
||||
@@ -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);
|
||||
@@ -1294,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 */
|
||||
@@ -1378,7 +1487,20 @@ void GenerateLandscape(byte mode)
|
||||
MarkWholeScreenDirty();
|
||||
IncreaseGeneratingWorldProgress(GWP_LANDSCAPE);
|
||||
|
||||
if (_settings_game.game_creation.landscape == LT_TROPIC) CreateDesertOrRainForest();
|
||||
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();
|
||||
}
|
||||
|
||||
@@ -990,6 +990,7 @@ STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Kies die
|
||||
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
|
||||
|
||||
@@ -1180,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
|
||||
@@ -2790,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:
|
||||
@@ -2821,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
|
||||
|
||||
@@ -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
|
||||
@@ -939,6 +961,10 @@ 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}حدد العنصر المطلوب
|
||||
@@ -947,9 +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} اختر مجموعة الواجهة الرسومية
|
||||
@@ -962,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}فشل في استرداد قائمة الدقة المدعومة
|
||||
@@ -1056,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}نوع:
|
||||
@@ -1090,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}
|
||||
@@ -1302,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}
|
||||
@@ -1348,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 :(متري (كم / ساعة
|
||||
@@ -1358,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}
|
||||
@@ -1440,6 +1483,7 @@ STR_INTRO_TOOLTIP_SUB_TROPICAL_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} ابحث عن محتوى جديد او تحديث
|
||||
@@ -1449,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}لا
|
||||
|
||||
@@ -1850,6 +1895,7 @@ 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}
|
||||
@@ -1916,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}وضح منطقة التغطية
|
||||
@@ -2039,6 +2093,8 @@ 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 :خط الترام
|
||||
|
||||
@@ -2198,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}
|
||||
@@ -2368,12 +2427,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}مستوى البحر
|
||||
@@ -2399,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
|
||||
@@ -2611,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}مطلوب في الشتاء
|
||||
@@ -2635,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}الخيارات المتاحة
|
||||
@@ -2661,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
|
||||
@@ -2670,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
|
||||
@@ -2683,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}اسم المحطة - اضغط على اسم المحطة لتوسيطها في الشاشة. اضغط + كنترول لفتح شاشة عرض جديدة بمنطقة المحطة.
|
||||
@@ -2705,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
|
||||
@@ -2738,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}عدل اسم نقطة العبور
|
||||
@@ -2771,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}
|
||||
@@ -2786,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}ابني مقر الشركة
|
||||
@@ -2793,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}اختر وجة جديد للمدير
|
||||
@@ -2810,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}صناعات
|
||||
@@ -2896,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 :عربات قطار جديدة
|
||||
@@ -2931,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}قائمة اختيار العربات - اضغط على العربة لاظهار معلوماتها
|
||||
@@ -2960,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} تبيدل بين إخفاء / عرض نوع الطائرة
|
||||
@@ -3099,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}ارسل العربة الى الورشة. مفتاح التحكم (كنترول) + الضغط ترسل للصيانة فقط
|
||||
@@ -3188,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}تسمية العربة
|
||||
@@ -3424,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}غير مقدار الزمن الذي يستغرقه هذا الامر
|
||||
@@ -3486,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}انقل الذكاء الاصطناعي المختار للاعلى
|
||||
@@ -3510,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} اغلاق
|
||||
|
||||
@@ -961,6 +961,7 @@ STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Pantaila
|
||||
STR_GAME_OPTIONS_RESOLUTION_OTHER :besteak
|
||||
|
||||
|
||||
|
||||
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Interfaze tamaina
|
||||
|
||||
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :Normala
|
||||
@@ -2612,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:
|
||||
@@ -2640,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
|
||||
|
||||
@@ -1299,6 +1299,7 @@ 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}Выберыце памер элементаў інтэрфейсу
|
||||
|
||||
@@ -1488,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
|
||||
@@ -3111,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}Колькасьць азёраў/мораў:
|
||||
@@ -3142,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
|
||||
|
||||
@@ -378,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
|
||||
@@ -1007,6 +1007,9 @@ STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Acelera
|
||||
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
|
||||
|
||||
@@ -1125,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
|
||||
@@ -1206,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}
|
||||
@@ -1352,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
|
||||
@@ -2340,6 +2353,9 @@ 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
|
||||
@@ -2890,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:
|
||||
@@ -2921,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
|
||||
@@ -4339,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!
|
||||
|
||||
|
||||
@@ -969,6 +969,7 @@ 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}Изберете размера на интерфейс елемент за използване
|
||||
|
||||
@@ -1159,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 :Разреши промяна на наклона на терена под постройки и пътища без необходимост от премахване
|
||||
@@ -2671,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}Морско ниво:
|
||||
@@ -2702,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
|
||||
|
||||
@@ -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
|
||||
@@ -1007,6 +1007,9 @@ STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Accelera
|
||||
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
|
||||
|
||||
@@ -1125,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
|
||||
@@ -1206,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}
|
||||
@@ -1340,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
|
||||
@@ -1352,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
|
||||
@@ -1437,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.
|
||||
@@ -1455,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
|
||||
@@ -1511,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
|
||||
@@ -1531,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}
|
||||
@@ -1565,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
|
||||
@@ -1618,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.
|
||||
@@ -1813,7 +1826,7 @@ STR_VIDEO_DRIVER_ERROR_NO_HARDWARE_ACCELERATION :{WHITE}... no s
|
||||
# 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
|
||||
@@ -1825,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
|
||||
@@ -1845,7 +1858,7 @@ 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 si hi ha actualitzacions disponibles.
|
||||
@@ -2251,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
|
||||
@@ -2318,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
|
||||
@@ -2330,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
|
||||
@@ -2340,6 +2353,9 @@ 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
|
||||
@@ -2423,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
|
||||
@@ -2577,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
|
||||
@@ -2676,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}
|
||||
@@ -2890,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:
|
||||
@@ -2921,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
|
||||
@@ -3362,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
|
||||
@@ -3534,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
|
||||
@@ -3555,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}
|
||||
@@ -3685,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
|
||||
@@ -4203,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à
|
||||
@@ -4339,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!
|
||||
|
||||
@@ -4665,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...
|
||||
|
||||
@@ -1086,6 +1086,7 @@ STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Odaberi
|
||||
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
|
||||
|
||||
@@ -1277,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
|
||||
@@ -2913,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:
|
||||
@@ -2944,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
|
||||
|
||||
@@ -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,11 @@ 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í
|
||||
@@ -1104,7 +1110,13 @@ 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
|
||||
@@ -1200,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í
|
||||
@@ -1281,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}
|
||||
@@ -1427,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á
|
||||
@@ -1543,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
|
||||
@@ -1733,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á
|
||||
@@ -1873,6 +1904,8 @@ STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Nedostat
|
||||
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}
|
||||
@@ -2400,10 +2433,13 @@ 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
|
||||
@@ -2960,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 stupeň
|
||||
STR_MAPGEN_MAX_HEIGHTLEVEL_DOWN :{BLACK}Snížit maximální výšku hor na mapě o jeden stupeň
|
||||
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 úroveň
|
||||
STR_MAPGEN_HEIGHTMAP_HEIGHT_DOWN :{BLACK}Snížit maximální možnou výšku nejvyššího vrcholu na mapě o jednu úroveň
|
||||
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:
|
||||
@@ -2991,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
|
||||
@@ -3184,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>
|
||||
@@ -3269,19 +3313,23 @@ 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_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_PROGRESS :{ORANGE}{STRING}
|
||||
@@ -3656,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í
|
||||
@@ -4406,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!
|
||||
|
||||
|
||||
@@ -989,6 +989,8 @@ 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
|
||||
@@ -1181,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
|
||||
@@ -1441,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
|
||||
@@ -1554,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}
|
||||
@@ -1605,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
|
||||
@@ -1761,6 +1764,7 @@ STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Utilstr
|
||||
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}
|
||||
@@ -2817,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
|
||||
@@ -2848,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
|
||||
@@ -3066,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
|
||||
|
||||
@@ -3139,6 +3136,7 @@ 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_BUTTON :{BLACK}Global
|
||||
STR_GOALS_TEXT :{ORANGE}{STRING}
|
||||
STR_GOALS_NONE :{ORANGE}- Ingen -
|
||||
STR_GOALS_PROGRESS :{ORANGE}{STRING}
|
||||
@@ -3274,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
|
||||
@@ -3339,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
|
||||
@@ -3623,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
|
||||
@@ -3975,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)
|
||||
|
||||
@@ -4425,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
|
||||
|
||||
@@ -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
|
||||
@@ -1006,6 +1006,9 @@ STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Hardware
|
||||
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
|
||||
|
||||
@@ -1124,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
|
||||
@@ -1205,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
|
||||
@@ -1351,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
|
||||
@@ -2029,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
|
||||
|
||||
@@ -2339,6 +2352,9 @@ 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
|
||||
@@ -2889,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:
|
||||
@@ -2920,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
|
||||
@@ -4338,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!
|
||||
|
||||
|
||||
@@ -1002,6 +1002,9 @@ STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Hardware
|
||||
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
|
||||
|
||||
@@ -1120,6 +1123,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
|
||||
@@ -1201,9 +1206,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}
|
||||
@@ -1272,6 +1279,8 @@ STR_CONFIG_SETTING_VIDEO_16BPP :{BLACK}16 bit
|
||||
STR_CONFIG_SETTING_VIDEO_16BPP_HELPTEXT :{BLACK}Set video color depth to 16 bits per pixel, this requires restart, this video mode does not support water animation
|
||||
STR_CONFIG_SETTING_VIDEO_24BPP :{BLACK}24 bit
|
||||
STR_CONFIG_SETTING_VIDEO_24BPP_HELPTEXT :{BLACK}Set video color depth to 24 bits per pixel, this video mode supports water animation
|
||||
STR_CONFIG_SETTING_MOUSE_CURSOR :{BLACK}Mouse cursor
|
||||
STR_CONFIG_SETTING_MOUSE_CURSOR_HELPTEXT :{BLACK}Show mouse cursor
|
||||
STR_CONFIG_SETTING_SHOWFINANCES :Show finances window at the end of the year: {STRING2}
|
||||
STR_CONFIG_SETTING_SHOWFINANCES_HELPTEXT :If enabled, the finances window pops up at the end of each year to allow easy inspection of the financial status of the company
|
||||
STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT :New orders are 'non-stop' by default: {STRING2}
|
||||
@@ -1367,7 +1376,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
|
||||
@@ -2927,12 +2942,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:
|
||||
@@ -2958,8 +2978,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
|
||||
@@ -4376,6 +4398,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!
|
||||
|
||||
|
||||
@@ -966,6 +966,7 @@ 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}
|
||||
@@ -2669,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:
|
||||
@@ -2697,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
|
||||
|
||||
@@ -1006,6 +1006,9 @@ STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Hardware
|
||||
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
|
||||
|
||||
@@ -1124,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
|
||||
@@ -1205,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}
|
||||
@@ -1351,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
|
||||
@@ -1661,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
|
||||
@@ -2334,6 +2352,9 @@ 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
|
||||
@@ -2884,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:
|
||||
@@ -2915,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
|
||||
@@ -4333,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!
|
||||
|
||||
|
||||
@@ -953,6 +953,7 @@ STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Elektu u
|
||||
STR_GAME_OPTIONS_RESOLUTION_OTHER :alia
|
||||
|
||||
|
||||
|
||||
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Interfacgrandeco
|
||||
|
||||
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :Normala
|
||||
@@ -2277,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:
|
||||
@@ -2305,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
|
||||
|
||||
@@ -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}
|
||||
@@ -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!
|
||||
@@ -1014,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
|
||||
@@ -1060,9 +1060,10 @@ 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ärgides selle ruudu, lubad OpenTTD-l üritada kasutada riistvarakiirendust. Muudetud seade omab mõju pärast mängu taaskäivitust
|
||||
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
|
||||
|
||||
@@ -1181,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
|
||||
@@ -1195,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 :{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)
|
||||
@@ -1262,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}
|
||||
@@ -1409,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
|
||||
@@ -1426,9 +1437,9 @@ 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
|
||||
@@ -1892,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
|
||||
|
||||
@@ -1930,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}
|
||||
@@ -2397,6 +2408,9 @@ 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
|
||||
@@ -2474,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
|
||||
@@ -2483,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 nä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
|
||||
@@ -2561,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
|
||||
@@ -2592,7 +2606,7 @@ 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 liik
|
||||
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
|
||||
@@ -2622,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
|
||||
|
||||
@@ -2737,7 +2751,7 @@ 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}Lennuvälja liik: {LTBLUE}{STRING}
|
||||
STR_LAND_AREA_INFORMATION_AIRPORT_NAME :{BLACK}Lennujaama nimi: {LTBLUE}{STRING}
|
||||
@@ -2942,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ööstustihedus:
|
||||
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_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:
|
||||
@@ -2973,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
|
||||
@@ -3360,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}
|
||||
@@ -3598,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
|
||||
@@ -4022,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
|
||||
@@ -4397,6 +4418,7 @@ 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_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!
|
||||
|
||||
|
||||
@@ -947,6 +947,7 @@ 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}
|
||||
@@ -2438,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:
|
||||
@@ -2466,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
|
||||
|
||||
@@ -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
|
||||
@@ -1006,6 +1006,9 @@ STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Laitteis
|
||||
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
|
||||
|
||||
@@ -1124,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
|
||||
@@ -1205,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}
|
||||
@@ -1351,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
|
||||
@@ -1661,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
|
||||
@@ -2332,8 +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
|
||||
@@ -2884,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:
|
||||
@@ -2915,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
|
||||
@@ -4333,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!
|
||||
|
||||
@@ -4438,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
|
||||
@@ -4471,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...
|
||||
|
||||
@@ -1007,6 +1007,9 @@ STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK} Accél
|
||||
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 l’accé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
|
||||
|
||||
@@ -1023,7 +1026,7 @@ 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 :Graphiques {BLACK}
|
||||
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
|
||||
@@ -1125,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
|
||||
@@ -1206,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}
|
||||
@@ -1352,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
|
||||
@@ -1662,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
|
||||
@@ -2335,6 +2353,9 @@ 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
|
||||
@@ -2885,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}:
|
||||
@@ -2916,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
|
||||
@@ -3412,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 l’argent
|
||||
STR_COMPANY_VIEW_GIVE_MONEY_BUTTON :{BLACK}Donner de l’argent
|
||||
STR_COMPANY_VIEW_GIVE_MONEY_TOOLTIP :{BLACK}Donner de l’argent à cette compagnie
|
||||
|
||||
STR_COMPANY_VIEW_NEW_FACE_BUTTON :{BLACK}Nouveau visage
|
||||
@@ -4334,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}!
|
||||
|
||||
|
||||
@@ -1174,6 +1174,7 @@ STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Tagh dù
|
||||
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
|
||||
|
||||
@@ -1360,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
|
||||
@@ -2967,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:
|
||||
@@ -2998,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
|
||||
|
||||
@@ -989,6 +989,7 @@ STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Seleccio
|
||||
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
|
||||
|
||||
@@ -1180,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
|
||||
@@ -2198,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...
|
||||
|
||||
@@ -2808,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:
|
||||
@@ -2839,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
|
||||
|
||||
@@ -1007,6 +1007,9 @@ STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Hardware
|
||||
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Dieses Kästchen ankreuzen, um OpenTTD zu erlauben, die Hardwarebeschleunigung zu verwenden. Eine geänderte Einstellung wird nur beim Spielneustart wirksam
|
||||
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}Die Einstellung tritt nur nach einem Neustart des Spiels in Kraft
|
||||
|
||||
STR_GAME_OPTIONS_VIDEO_VSYNC :{BLACK}VSync
|
||||
STR_GAME_OPTIONS_VIDEO_VSYNC_TOOLTIP :{BLACK}Dieses Kästchen ankreuzen, um VSync zu aktivieren. Eine geänderte Einstellung wird nur beim Spielneustart wirksam. Funktioniert nur mit aktivierter Hardwarebeschleunigung
|
||||
|
||||
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Größe der Bedienelemente
|
||||
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Wähle die Größe der Bedienelemente
|
||||
|
||||
@@ -1125,6 +1128,8 @@ STR_TERRAIN_TYPE_FLAT :Flach
|
||||
STR_TERRAIN_TYPE_HILLY :Hügelig
|
||||
STR_TERRAIN_TYPE_MOUNTAINOUS :Bergig
|
||||
STR_TERRAIN_TYPE_ALPINIST :Alpin
|
||||
STR_TERRAIN_TYPE_CUSTOM :Benutzerdefinierte Höhe
|
||||
STR_TERRAIN_TYPE_CUSTOM_VALUE :Benutzerdefinierte Höhe ({NUM})
|
||||
|
||||
STR_CITY_APPROVAL_PERMISSIVE :Hoch
|
||||
STR_CITY_APPROVAL_TOLERANT :Mäßig
|
||||
@@ -1206,9 +1211,11 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Ein- oder Aussc
|
||||
STR_CONFIG_SETTING_CITY_APPROVAL :Toleranz der Stadtverwaltung gegenüber Landschaftsumgestaltungen: {STRING}
|
||||
STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Auswählen, wie stark Lärm und Umweltschäden die Stadtbewertung einer Firma sinken lassen. Bei einer zu schlechten Bewertung werden dann in dieser Stadt keine Bauvorhaben mehr genehmigt
|
||||
|
||||
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :Maximale Höhe auf der Karte: {STRING}
|
||||
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :Setze die maximal erlaubte Höhe für Berge auf der Karte
|
||||
STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}Die maximale Höhe der Karte kann nicht auf diesen Wert gesetzt werden. Mindestens ein Berg auf der Karte ist höher.
|
||||
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT :Höhenlimit der Karte: {STRING}
|
||||
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_HELPTEXT :Bestimme die maximale Höhe der Karte. Mit "(auto)" wird ein passender Wert nach der Weltgenerierung bestimmt.
|
||||
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_VALUE :{NUM}
|
||||
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_AUTO :(auto)
|
||||
STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}Das Höhenlimit der Karte kann nicht auf diesen Wert gesetzt werden. Mindestens ein Berg auf der Karte ist höher.
|
||||
STR_CONFIG_SETTING_AUTOSLOPE :Landschaftsbau unter Gebäuden, Gleisen, usw. erlauben: {STRING}
|
||||
STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Erlaube Erdbauarbeiten unter Gebäuden oder Infrastruktur, ohne sie zu entfernen
|
||||
STR_CONFIG_SETTING_CATCHMENT :Verschiedene Stationstypen haben unterschiedlich große Einzugsgebiete: {STRING}
|
||||
@@ -1352,7 +1359,13 @@ STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Wähle wieviele
|
||||
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Maximalabstand vom Kartenrand für Ölraffinerien: {STRING}
|
||||
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Ölraffinerien werden nur in der Nähe des Kartenrands gebaut, bei inselreichen Karten nahe der Küste
|
||||
STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Schneegrenze auf: {STRING}
|
||||
STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Wähle die Höhe der Schneefallgrenze im subarktischen Klima. Schnee beeinflusst auch die Platzierung von Industrien und Voraussetzungen für Städtewachstum
|
||||
STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Wähle die Höhe der Schneefallgrenze im subarktischen Klima. Schnee beeinflusst auch die Platzierung von Industrien und Voraussetzungen für Städtewachstum. Dies kann nur im Scenario-Editor geändert werden oder wird ansonsten anhand der Einstellung "Schneebedeckung" berechnet.
|
||||
STR_CONFIG_SETTING_SNOW_COVERAGE :Schneebedeckung: {STRING}
|
||||
STR_CONFIG_SETTING_SNOW_COVERAGE_HELPTEXT :Steuert die ungefähre Menge von Schneeflächen im subarktischen Klima. Schnee beeinflusst die Platzierung von Industrien und Vorausstzungen für Städtewachstum. Dies kann nur während der Kartenerzeugung benutzt werden. Land knapp über dem Meeresspiegel ist stets schneefrei.
|
||||
STR_CONFIG_SETTING_SNOW_COVERAGE_VALUE :{NUM}%
|
||||
STR_CONFIG_SETTING_DESERT_COVERAGE :Wüstenbedeckung: {STRING}
|
||||
STR_CONFIG_SETTING_DESERT_COVERAGE_HELPTEXT :Steuert die ungefähre Menge von Wüsten im tropischen Klima. Wüsten beeinflussen das Erzeugen von Industriebtrieben. Dies kann nur während der Kartenerzeugung benutzt werden.
|
||||
STR_CONFIG_SETTING_DESERT_COVERAGE_VALUE :{NUM}%
|
||||
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Rauheit des Geländes: {STRING}
|
||||
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(nur TerraGenesis) Wähle die Häufigkeit von Hügeln: Rollende Landschaften haben wenige, weit verteilte Hügel. Zerklüftete Landschaften haben viele Hügel, was wiederum sich wiederholend aussehen kann
|
||||
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Sehr eben
|
||||
@@ -1802,7 +1815,7 @@ STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_LEVEL :{WHITE}... Komp
|
||||
STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_ALGORITHM :{WHITE}... „{STRING}“ nicht als Format für Spielstände verfügbar. Nutze stattdessen „{STRING}“
|
||||
STR_CONFIG_ERROR_INVALID_BASE_GRAPHICS_NOT_FOUND :{WHITE}... ignoriere Basisgrafiken „{STRING}“: nicht gefunden
|
||||
STR_CONFIG_ERROR_INVALID_BASE_SOUNDS_NOT_FOUND :{WHITE}... ignoriere Basissounds „{STRING}“: nicht gefunden
|
||||
STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... ignoriere Musikset „{STRING}“: nicht gefunden
|
||||
STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... ignoriere Basismusikset „{STRING}“: nicht gefunden
|
||||
STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Zu wenig Arbeitsspeicher
|
||||
STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Reservieren von {BYTES} des Spritecaches fehlgeschlagen. Der Spritecache wurde auf {BYTES} verkleinert. Dies wird die Performance von OpenTTD verschlechtern. Um den Speicherbedarf zu verringern, kann man versuchen, 32bpp-Grafiken auszuschalten und/oder den Zoom-Level zu begrenzen
|
||||
|
||||
@@ -2316,7 +2329,7 @@ STR_CONTENT_TYPE_AI :{G=w}KI
|
||||
STR_CONTENT_TYPE_AI_LIBRARY :{G=w}KI-Bibliothek
|
||||
STR_CONTENT_TYPE_SCENARIO :{G=n}Szenario
|
||||
STR_CONTENT_TYPE_HEIGHTMAP :{G=w}Reliefkarte
|
||||
STR_CONTENT_TYPE_BASE_SOUNDS :Basissound
|
||||
STR_CONTENT_TYPE_BASE_SOUNDS :Basissounds
|
||||
STR_CONTENT_TYPE_BASE_MUSIC :Basismusik
|
||||
STR_CONTENT_TYPE_GAME_SCRIPT :Skript
|
||||
STR_CONTENT_TYPE_GS_LIBRARY :Skript-Bibliothek
|
||||
@@ -2340,6 +2353,9 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD
|
||||
STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Ja, Grafiken herunterladen
|
||||
STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Nein, OpenTTD beenden
|
||||
|
||||
STR_MISSING_GRAPHICS_ERROR_TITLE :{WHITE}Download fehlgeschlagen
|
||||
STR_MISSING_GRAPHICS_ERROR :{BLACK}Download der Grafiken fehlgeschlagen.{}Bitte Grafiken manuell herunterladen.
|
||||
STR_MISSING_GRAPHICS_ERROR_QUIT :{BLACK}OpenTTD verlassen
|
||||
|
||||
# Transparency settings window
|
||||
STR_TRANSPARENCY_CAPTION :{WHITE}Transparenzeinstellungen
|
||||
@@ -2890,12 +2906,17 @@ STR_MAPGEN_BY :{BLACK}*
|
||||
STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}Städteanzahl:
|
||||
STR_MAPGEN_DATE :{BLACK}Datum:
|
||||
STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Industriedichte:
|
||||
STR_MAPGEN_MAX_HEIGHTLEVEL :{BLACK}Maximalhöhe der Karte:
|
||||
STR_MAPGEN_MAX_HEIGHTLEVEL_UP :{BLACK}Die Maximalhöhe von Bergen auf der Karte um eins erhöhen
|
||||
STR_MAPGEN_MAX_HEIGHTLEVEL_DOWN :{BLACK}Die Maximalhöhe von Bergen auf der Karte um eins verringern
|
||||
STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Schneegrenze:
|
||||
STR_MAPGEN_SNOW_LINE_UP :{BLACK}Schneegrenze um eine Stufe erhöhen
|
||||
STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Schneegrenze um eine Stufe senken
|
||||
STR_MAPGEN_HEIGHTMAP_HEIGHT :{BLACK}Höchster Gipfel:
|
||||
STR_MAPGEN_HEIGHTMAP_HEIGHT_UP :{BLACK}Die maximale Höhe des höchsten Gipfels auf der Karte um eins erhöhen
|
||||
STR_MAPGEN_HEIGHTMAP_HEIGHT_DOWN :{BLACK}Die maximale Höhe des höchsten Gipfels auf der Karte um eins verringern
|
||||
STR_MAPGEN_SNOW_COVERAGE :{BLACK}Schneebedeckung:
|
||||
STR_MAPGEN_SNOW_COVERAGE_UP :{BLACK}Schneebedeckung um zehn Prozent erhöhen
|
||||
STR_MAPGEN_SNOW_COVERAGE_DOWN :{BLACK}Schneebedeckung um zehn Prozent verringern
|
||||
STR_MAPGEN_SNOW_COVERAGE_TEXT :{BLACK}{NUM}%
|
||||
STR_MAPGEN_DESERT_COVERAGE :{BLACK}Wüstenbedeckung:
|
||||
STR_MAPGEN_DESERT_COVERAGE_UP :{BLACK}Wüstenabdeckung um zehn Prozent erhöhen
|
||||
STR_MAPGEN_DESERT_COVERAGE_DOWN :{BLACK}Wüstenbedeckung um zehn Prozent verringern
|
||||
STR_MAPGEN_DESERT_COVERAGE_TEXT :{BLACK}{NUM}%
|
||||
STR_MAPGEN_LAND_GENERATOR :{BLACK}Landgenerator:
|
||||
STR_MAPGEN_TERRAIN_TYPE :{BLACK}Landschaftstyp:
|
||||
STR_MAPGEN_QUANTITY_OF_SEA_LAKES :{BLACK}Gewässermenge:
|
||||
@@ -2921,8 +2942,10 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Reliefka
|
||||
STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Größe:
|
||||
STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} × {NUM}
|
||||
|
||||
STR_MAPGEN_MAX_HEIGHTLEVEL_QUERY_CAPT :{WHITE}Maximalhöhe der Karte ändern
|
||||
STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Höhe der Schneegrenze ändern
|
||||
STR_MAPGEN_TERRAIN_TYPE_QUERY_CAPT :{WHITE}Angestrebte Gipfelhöhe
|
||||
STR_MAPGEN_HEIGHTMAP_HEIGHT_QUERY_CAPT :{WHITE}Höchster Gipfel
|
||||
STR_MAPGEN_SNOW_COVERAGE_QUERY_CAPT :{WHITE}Schneebedeckung (in %)
|
||||
STR_MAPGEN_DESERT_COVERAGE_QUERY_CAPT :{WHITE}Wüstenbedeckung (in %)
|
||||
STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Startjahr ändern
|
||||
|
||||
# SE Map generation
|
||||
@@ -4339,6 +4362,7 @@ STR_WARNING_FALLBACK_SOUNDSET :{WHITE}Nur ein
|
||||
STR_WARNING_SCREENSHOT_SIZE_CAPTION :{WHITE}Riesiger Screenshot
|
||||
STR_WARNING_SCREENSHOT_SIZE_MESSAGE :{YELLOW}Der Screenshot wird die Auflösung von {COMMA} × {COMMA} Pixeln haben. Das kann einige Zeit dauern. Soll fortgefahren werden?
|
||||
|
||||
STR_MESSAGE_HEIGHTMAP_SUCCESSFULLY :{WHITE}Reliefkarte erfolgreich als „{STRING}“ gespeichert. Der höchste Gipfel ist {NUM}
|
||||
STR_MESSAGE_SCREENSHOT_SUCCESSFULLY :{WHITE}Screenshot gespeichert als „{STRING}“
|
||||
STR_ERROR_SCREENSHOT_FAILED :{WHITE}Screenshot fehlgeschlagen
|
||||
|
||||
|
||||
@@ -1101,6 +1101,7 @@ 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}Επιλέξτε το μέγεθος στοιχείου διεπαφής
|
||||
|
||||
@@ -1293,8 +1294,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 :Επιτρέπεται η διαμόρφωση του εδάφους κάτω από κτίρια και σιδηροτροχιές χωρίς αυτά να αφαιρούνται
|
||||
@@ -2935,12 +2934,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}Επίπεδο θάλασσας:
|
||||
@@ -2966,8 +2959,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
|
||||
|
||||
@@ -988,6 +988,7 @@ 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}בחר את ממשק גודל העצם לשימוש
|
||||
|
||||
@@ -1174,8 +1175,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 :אפשר שינוי פני השטח מתחת לבניינים ולמסילות ללא הסרתם
|
||||
@@ -2751,12 +2750,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} :כמות ימים/אגמים
|
||||
@@ -2782,8 +2775,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
|
||||
|
||||
@@ -1070,6 +1070,9 @@ STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Hardvere
|
||||
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Bekapcsolásával az OpenTTD hardveres gyorsítást próbál alkalmazni. A beállítás csak a játék újraindítása után lép érvénybe.
|
||||
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}Ez a beállítás csak a játék újraindítása után lép érvénybe
|
||||
|
||||
STR_GAME_OPTIONS_VIDEO_VSYNC :{BLACK}VSync (Vertikális Szinkronizáció)
|
||||
STR_GAME_OPTIONS_VIDEO_VSYNC_TOOLTIP :{BLACK}Jelöld be ezt a négyzetet hogy engedélyezd a v-sync-et. A változtatás csak a játék újraindítása után fog érvényesülni. Kizárólag hardware gyorsítással működik!
|
||||
|
||||
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Felület mérete
|
||||
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Használni kívánt felületméret kiválasztása
|
||||
|
||||
@@ -1188,6 +1191,8 @@ STR_TERRAIN_TYPE_FLAT :Sík
|
||||
STR_TERRAIN_TYPE_HILLY :Dombos
|
||||
STR_TERRAIN_TYPE_MOUNTAINOUS :Hegyvidéki
|
||||
STR_TERRAIN_TYPE_ALPINIST :Alpesi
|
||||
STR_TERRAIN_TYPE_CUSTOM :Egyéni magasság
|
||||
STR_TERRAIN_TYPE_CUSTOM_VALUE :Egyéni magasság ({NUM})
|
||||
|
||||
STR_CITY_APPROVAL_PERMISSIVE :Engedékeny
|
||||
STR_CITY_APPROVAL_TOLERANT :Toleráns
|
||||
@@ -1269,8 +1274,10 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Ha engedélyezv
|
||||
STR_CONFIG_SETTING_CITY_APPROVAL :Városi tanács hozzáállása a területének az átépítéséhez: {STRING}
|
||||
STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Válaszd ki, hogy mennyi zaj és környezeti kár okozása befolyásolja a cég megítélését egy városban, mely hatással van a cég további építési lehetőségeire a város területén belül
|
||||
|
||||
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :Maximális térképmagasság: {STRING}
|
||||
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :A térképen található hegyek maximális magasságának beállítása
|
||||
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT :Térkép magasságkorlátja: {STRING}
|
||||
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_HELPTEXT :Beállíthatod a térkép legmagasabb pontjának tengerszint feletti magasságát. "(automatikus)" esetén az értéket a térképgenerátor határozza meg.
|
||||
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_VALUE :{NUM}
|
||||
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_AUTO :(automatikus)
|
||||
STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}Nem állíthatod erre az értékre a maximális térképmagasságot. Legalább egy hegy magasabb ennél
|
||||
STR_CONFIG_SETTING_AUTOSLOPE :Épületek, vágányok stb. alatti tereprendezés engedélyezése: {STRING}
|
||||
STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Tájrendezés engedélyezése épületek és utak alatt azok eltávolítása nélkül
|
||||
@@ -1415,7 +1422,13 @@ STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Mennyi gazdasá
|
||||
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Olajfinomítók és olajfúró tornyok maximális távolsága a térkép szélétől: {STRING}
|
||||
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Megadhatod, hogy a térkép szélétől milyen messze épülhetnek olajfinomítók és olajfúró tornyok. Sziget jellegű térképek esetén így a part közelében fognak épülni. 256 mezőnél szélesebb, ill. hosszabb térképek esetén ez az érték felszorzódik.
|
||||
STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Hóhatár magassága: {STRING}
|
||||
STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Ezzel a beállítással szabályozhatod a szub-arktikus táj hóhatárát. A hó befolyással lehet a gazdasági épületek generálására és a települések növekedésére.
|
||||
STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Ezzel a beállítással szabályozhatod a szub-arktikus táj hóhatárát. A hó befolyással lehet a gazdasági épületek generálására és a települések növekedésére. Csak a pályaszerkesztőben lehet állítani, más esetben a havas terület százalékos kiterjedéséből kerül kiszámításra.
|
||||
STR_CONFIG_SETTING_SNOW_COVERAGE :Havas terület kiterjedése: {STRING}
|
||||
STR_CONFIG_SETTING_SNOW_COVERAGE_HELPTEXT :Beállíthatod, hogy a szub-arktikus tájon a térkép mekkora részét fedje hó. A hó befolyással van a gazdasági épületek elhelyezésére és a települések növekedésére. A beállítás csak a térképgenerátort érinti. A tengerszint feletti legelső szintet sosem fedheti hó.
|
||||
STR_CONFIG_SETTING_SNOW_COVERAGE_VALUE :{NUM}%
|
||||
STR_CONFIG_SETTING_DESERT_COVERAGE :Sivatag kiterjedése: {STRING}
|
||||
STR_CONFIG_SETTING_DESERT_COVERAGE_HELPTEXT :Beállíthatod, hogy a szubtrópusi tájon a térkép mekkora részét fedje sivatag. A sivatag hatással van a gazdasági épületek elhelyezésére és a települések növekedésére. A beállítás csak a térképgenerátort érinti.
|
||||
STR_CONFIG_SETTING_DESERT_COVERAGE_VALUE :{NUM}%
|
||||
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :A terep durvasága: {STRING}
|
||||
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(csak TerraGenesis esetén) Kiválaszthatod a hegyek mennyiségét: a sima térképeken kevesebb, de kiterjedtebb hegy van, míg a durva térképeken sok hegy van, amik kissé ismétlődőnek tűnhetnek.
|
||||
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Nagyon sima
|
||||
@@ -1725,12 +1738,17 @@ STR_CONFIG_SETTING_ZOOM_MIN :A nagyítás ma
|
||||
STR_CONFIG_SETTING_ZOOM_MIN_HELPTEXT :Maximális nagyítás mértéke. A nagyobb nagyítási mérték több memóriát igényel
|
||||
STR_CONFIG_SETTING_ZOOM_MAX :A kicsinyítés maximális mértéke: {STRING}
|
||||
STR_CONFIG_SETTING_ZOOM_MAX_HELPTEXT :Maximális kicsinyítés mértéke. A nagyobb kicsinyítési mérték szaggatást okozhat
|
||||
STR_CONFIG_SETTING_SPRITE_ZOOM_MIN :Sprite-ok maximális felbontása: {STRING}
|
||||
STR_CONFIG_SETTING_SPRITE_ZOOM_MIN_HELPTEXT :Meghatározhatod a sprite-ok maximális felbontását. Ha korlátozod a maximális felbontást, akkor abban az esetben is kisebb felbontású sprite-ok fognak megjelenni, ha egyébként lenne nagyobb felbontású is. Ez akkor lehet hasznos, ha olyan NewGRF-ek keverékét használod, amelyek különböző felbontással rendelkeznek, konzisztensebb megjelenést biztosítva a játéknak.
|
||||
STR_CONFIG_SETTING_ZOOM_LVL_MIN :4x
|
||||
STR_CONFIG_SETTING_ZOOM_LVL_IN_2X :2x
|
||||
STR_CONFIG_SETTING_ZOOM_LVL_NORMAL :Normál
|
||||
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 :Települések növekedési sebessége: {STRING}
|
||||
STR_CONFIG_SETTING_TOWN_GROWTH_HELPTEXT :A települések növekedési sebessége
|
||||
STR_CONFIG_SETTING_TOWN_GROWTH_NONE :Nincs
|
||||
@@ -2398,6 +2416,9 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}Az OpenT
|
||||
STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Igen, a grafikai alapcsomag letöltése
|
||||
STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Nem, kilépés az OpenTTD-ből
|
||||
|
||||
STR_MISSING_GRAPHICS_ERROR_TITLE :{WHITE}Letöltés sikertelen
|
||||
STR_MISSING_GRAPHICS_ERROR :{BLACK}A grafikus alapcsomag letöltése sikertelen.{}Tölts le manuálisan egy grafikus alapcsomagot!
|
||||
STR_MISSING_GRAPHICS_ERROR_QUIT :{BLACK}Kilépés az OpenTTD-ből
|
||||
|
||||
# Transparency settings window
|
||||
STR_TRANSPARENCY_CAPTION :{WHITE}Átlátszósági beállítások
|
||||
@@ -2948,12 +2969,17 @@ STR_MAPGEN_BY :{BLACK}*
|
||||
STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}Várossűrűség:
|
||||
STR_MAPGEN_DATE :{BLACK}Dátum:
|
||||
STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Gazd. épületek száma:
|
||||
STR_MAPGEN_MAX_HEIGHTLEVEL :{BLACK}Maximum térképmagasság:
|
||||
STR_MAPGEN_MAX_HEIGHTLEVEL_UP :{BLACK}A hegyek maximális magasságának növelése a térképen eggyel
|
||||
STR_MAPGEN_MAX_HEIGHTLEVEL_DOWN :{BLACK}A hegyek maximális magasságának csökkentése a térképen eggyel
|
||||
STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Hóhatár:
|
||||
STR_MAPGEN_SNOW_LINE_UP :{BLACK}A hóhatár megnövelése eggyel
|
||||
STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}A hóhatár csökkentése eggyel
|
||||
STR_MAPGEN_HEIGHTMAP_HEIGHT :{BLACK}Legmagasabb pont:
|
||||
STR_MAPGEN_HEIGHTMAP_HEIGHT_UP :{BLACK}A térkép legmagasabb pontjának tengerszint feletti magasságának növelése eggyel
|
||||
STR_MAPGEN_HEIGHTMAP_HEIGHT_DOWN :{BLACK}A térkép legmagasabb pontjának tengerszint feletti magasságának csökkentése eggyel
|
||||
STR_MAPGEN_SNOW_COVERAGE :{BLACK}Havas terület kiterjedése:
|
||||
STR_MAPGEN_SNOW_COVERAGE_UP :{BLACK}A havas terület kiterjedésének növelése 10%-kal
|
||||
STR_MAPGEN_SNOW_COVERAGE_DOWN :{BLACK}A havas terület kiterjedésének csökkentése 10%-kal
|
||||
STR_MAPGEN_SNOW_COVERAGE_TEXT :{BLACK}{NUM}%
|
||||
STR_MAPGEN_DESERT_COVERAGE :{BLACK}Sivatag kiterjedése:
|
||||
STR_MAPGEN_DESERT_COVERAGE_UP :{BLACK}A sivatag kiterjedésének növelése 10%-kal
|
||||
STR_MAPGEN_DESERT_COVERAGE_DOWN :{BLACK}A sivatag kiterjedésének csökkentése 10%-kal
|
||||
STR_MAPGEN_DESERT_COVERAGE_TEXT :{BLACK}{NUM}%
|
||||
STR_MAPGEN_LAND_GENERATOR :{BLACK}Térkép generátor:
|
||||
STR_MAPGEN_TERRAIN_TYPE :{BLACK}Tereptípus:
|
||||
STR_MAPGEN_QUANTITY_OF_SEA_LAKES :{BLACK}Tengerszint:
|
||||
@@ -2979,8 +3005,10 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Magassá
|
||||
STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Méret:
|
||||
STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM}
|
||||
|
||||
STR_MAPGEN_MAX_HEIGHTLEVEL_QUERY_CAPT :{WHITE}Térkép maximális magasságának megváltozatása
|
||||
STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Hóhatár megváltoztatása
|
||||
STR_MAPGEN_TERRAIN_TYPE_QUERY_CAPT :{WHITE}A legmagasabb pont tengerszint feletti magassága
|
||||
STR_MAPGEN_HEIGHTMAP_HEIGHT_QUERY_CAPT :{WHITE}Legmagasabb pont
|
||||
STR_MAPGEN_SNOW_COVERAGE_QUERY_CAPT :{WHITE}A havas terület kiterjedése (százalékban)
|
||||
STR_MAPGEN_DESERT_COVERAGE_QUERY_CAPT :{WHITE}A sivatag kiterjedése (százalékban)
|
||||
STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Kezdő év megváltoztatása
|
||||
|
||||
# SE Map generation
|
||||
@@ -4397,6 +4425,7 @@ STR_WARNING_FALLBACK_SOUNDSET :{WHITE}Csak egy
|
||||
STR_WARNING_SCREENSHOT_SIZE_CAPTION :{WHITE}Hatalmas képernyőkép
|
||||
STR_WARNING_SCREENSHOT_SIZE_MESSAGE :{YELLOW}A képernyőkép felbontása {COMMA} x {COMMA} pixel lesz. A méret miatt ez eltarthat egy ideig. Szeretnéd folytatni?
|
||||
|
||||
STR_MESSAGE_HEIGHTMAP_SUCCESSFULLY :{WHITE}Magasságtérkép sikeresen elmentve '{STRING}' néven. A térkép legmagasabb pontja: {NUM}
|
||||
STR_MESSAGE_SCREENSHOT_SUCCESSFULLY :{WHITE}A képernyő elmentve '{STRING}' néven
|
||||
STR_ERROR_SCREENSHOT_FAILED :{WHITE}A képmentés nem sikerült!
|
||||
|
||||
|
||||
@@ -946,6 +946,7 @@ STR_GAME_OPTIONS_RESOLUTION_OTHER :annað
|
||||
|
||||
|
||||
|
||||
|
||||
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Grunngrafík
|
||||
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Nota grunngrafíkina
|
||||
STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} týnd{P "" ar} eða ónýt{P "" ar} skrá{P "" r}
|
||||
@@ -2544,9 +2545,6 @@ STR_MAPGEN_BY :{BLACK}*
|
||||
STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}Fjöldi bæja:
|
||||
STR_MAPGEN_DATE :{BLACK}Dags.:
|
||||
STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Fjöldi iðnaða:
|
||||
STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Hæð snjólínu:
|
||||
STR_MAPGEN_SNOW_LINE_UP :{BLACK}Hækka snjólínu upp um eitt þrep
|
||||
STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Lækka snjólínu niður um eitt þrep
|
||||
STR_MAPGEN_LAND_GENERATOR :{BLACK}Landmyndun:
|
||||
STR_MAPGEN_TERRAIN_TYPE :{BLACK}Gerð lands:
|
||||
STR_MAPGEN_QUANTITY_OF_SEA_LAKES :{BLACK}Magn sjávar:
|
||||
@@ -2572,7 +2570,6 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Nafn hæ
|
||||
STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Stærð:
|
||||
STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} * {NUM}
|
||||
|
||||
STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Breyta hæð snjólínu
|
||||
STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Breyta upphafsári
|
||||
|
||||
# SE Map generation
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user