Compare commits
109 Commits
e2961fc3bf
...
cyka
Author | SHA1 | Date | |
---|---|---|---|
![]() |
e26ce19a75 | ||
![]() |
0d1e24b8fd | ||
![]() |
0113bb1f64 | ||
![]() |
aba319e2a9 | ||
![]() |
29946e95b2 | ||
![]() |
e6bb811ca9 | ||
![]() |
78bf7c43e5 | ||
![]() |
422bcc3e26 | ||
![]() |
d67a2ea167 | ||
![]() |
5aa1c2ee04 | ||
![]() |
3c53e9a920 | ||
![]() |
c2e7c67204 | ||
![]() |
34177c70aa | ||
![]() |
a24a39a6af | ||
![]() |
fa69a975f3 | ||
![]() |
9099caa059 | ||
![]() |
7bf1cf0865 | ||
![]() |
c7a4c6ba0e | ||
![]() |
38781fb16e | ||
![]() |
0bde627c74 | ||
![]() |
e0352b8161 | ||
![]() |
11eebdc5dd | ||
![]() |
99c6cc5bdb | ||
![]() |
74047028dd | ||
![]() |
7ddcf901f5 | ||
![]() |
159e68c4dc | ||
![]() |
f739710ad3 | ||
![]() |
acfe8909b4 | ||
![]() |
e57a7ad273 | ||
![]() |
e9bf53d0b1 | ||
![]() |
10c136f039 | ||
![]() |
07afb0e00b | ||
![]() |
cac020b7e6 | ||
![]() |
14afaf8108 | ||
![]() |
651610cd2a | ||
![]() |
2de0dd17c2 | ||
![]() |
a71f8b6703 | ||
![]() |
93ecef7de2 | ||
![]() |
9ae96d2fdb | ||
![]() |
7152f534e8 | ||
![]() |
a07b02ebe4 | ||
![]() |
94e5555419 | ||
![]() |
c2a4ddea7e | ||
![]() |
2bf05321bb | ||
![]() |
3035b91b5c | ||
![]() |
3202fc2ce3 | ||
![]() |
8d9c988767 | ||
![]() |
cf573d4bf8 | ||
![]() |
724c6800c9 | ||
![]() |
d6b3ba6045 | ||
![]() |
61f920138f | ||
![]() |
0dc4be2aa0 | ||
![]() |
95245d5a57 | ||
![]() |
15f4e62936 | ||
![]() |
21793af8dd | ||
![]() |
61b39296e1 | ||
![]() |
18ef0741e7 | ||
![]() |
3fd71b2821 | ||
![]() |
2d6c9c2f90 | ||
![]() |
b3e20ec9b6 | ||
![]() |
ae516b4a86 | ||
![]() |
dcd4295d4e | ||
![]() |
5dc0bb61ea | ||
![]() |
7c569b2c83 | ||
![]() |
06718b632d | ||
![]() |
28c115fc33 | ||
![]() |
5f34407ce1 | ||
![]() |
ffaa36c8d2 | ||
![]() |
27a847633c | ||
![]() |
3a1f1e12bc | ||
![]() |
ace441d5ea | ||
![]() |
92b6e06ba2 | ||
![]() |
a99e6b5082 | ||
![]() |
f5b0874c1c | ||
![]() |
78fdb09e2b | ||
![]() |
bea66c4beb | ||
![]() |
f8b008cd28 | ||
![]() |
f1504dcc34 | ||
![]() |
9a342e489d | ||
![]() |
41dbd2ade2 | ||
![]() |
f21618a987 | ||
![]() |
72bd896625 | ||
![]() |
14e0468504 | ||
![]() |
45886e50b2 | ||
![]() |
04a3bf76e8 | ||
![]() |
08d05bf4c0 | ||
![]() |
4170c9923a | ||
![]() |
78b83190cc | ||
![]() |
715f8c0218 | ||
![]() |
c355e98c58 | ||
![]() |
63ce81570c | ||
![]() |
42523379d9 | ||
![]() |
d7c547d0db | ||
![]() |
5a523cf212 | ||
![]() |
6458980413 | ||
![]() |
83d99ec11d | ||
![]() |
f7bd080015 | ||
![]() |
07b162ffc4 | ||
![]() |
a0636d8200 | ||
![]() |
a09749f6a6 | ||
![]() |
1005c86c62 | ||
![]() |
a02da5476e | ||
![]() |
5878d09ef2 | ||
![]() |
824687d1f0 | ||
![]() |
0b9029b69c | ||
![]() |
ef8eb66a2b | ||
![]() |
b477a8458c | ||
![]() |
018326321c | ||
![]() |
257d312a58 |
9
.github/workflows/ci-emscripten.yml
vendored
9
.github/workflows/ci-emscripten.yml
vendored
@@ -13,7 +13,7 @@ jobs:
|
||||
runs-on: ubuntu-20.04
|
||||
container:
|
||||
# If you change this version, change the number in the cache step too.
|
||||
image: emscripten/emsdk:3.1.42
|
||||
image: emscripten/emsdk:3.1.57
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
@@ -30,12 +30,11 @@ jobs:
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: /emsdk/upstream/emscripten/cache
|
||||
key: 3.1.42-${{ runner.os }}
|
||||
key: 3.1.57-${{ runner.os }}
|
||||
|
||||
- name: Patch Emscripten to support LZMA
|
||||
- name: Add liblzma support
|
||||
run: |
|
||||
cd /emsdk/upstream/emscripten
|
||||
patch -p1 < ${GITHUB_WORKSPACE}/os/emscripten/emsdk-liblzma.patch
|
||||
cp ${GITHUB_WORKSPACE}/os/emscripten/ports/liblzma.py /emsdk/upstream/emscripten/tools/ports/contrib/
|
||||
|
||||
- name: Build (host tools)
|
||||
run: |
|
||||
|
9
.github/workflows/preview-build.yml
vendored
9
.github/workflows/preview-build.yml
vendored
@@ -21,7 +21,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
# If you change this version, change the number in the cache step too.
|
||||
image: emscripten/emsdk:3.1.42
|
||||
image: emscripten/emsdk:3.1.57
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
@@ -38,12 +38,11 @@ jobs:
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: /emsdk/upstream/emscripten/cache
|
||||
key: 3.1.42-${{ runner.os }}
|
||||
key: 3.1.57-${{ runner.os }}
|
||||
|
||||
- name: Patch Emscripten to support LZMA
|
||||
- name: Add liblzma support
|
||||
run: |
|
||||
cd /emsdk/upstream/emscripten
|
||||
patch -p1 < ${GITHUB_WORKSPACE}/os/emscripten/emsdk-liblzma.patch
|
||||
cp ${GITHUB_WORKSPACE}/os/emscripten/ports/liblzma.py /emsdk/upstream/emscripten/tools/ports/contrib/
|
||||
|
||||
- name: Build (host tools)
|
||||
run: |
|
||||
|
14
.github/workflows/release-linux.yml
vendored
14
.github/workflows/release-linux.yml
vendored
@@ -35,13 +35,13 @@ jobs:
|
||||
- name: Enable Rust cache
|
||||
uses: Swatinem/rust-cache@v2
|
||||
|
||||
- name: Setup vcpkg caching
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
|
||||
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
|
||||
core.exportVariable('VCPKG_BINARY_SOURCES', 'clear;x-gha,readwrite')
|
||||
# - name: Setup vcpkg caching
|
||||
# uses: actions/github-script@v7
|
||||
# with:
|
||||
# script: |
|
||||
# core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
|
||||
# core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
|
||||
# core.exportVariable('VCPKG_BINARY_SOURCES', 'clear;x-gha,readwrite')
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
|
@@ -1,2 +1,2 @@
|
||||
jgrpp-0.59.1 20240519 0 5e971bfc026aa9a58773d89c583e78765156b9e4 1 0 2024
|
||||
f0d82005ae0e64dc0f833d5cbd6776afb06c9a513cc83119ce8fd0a2e5be097b -
|
||||
jgrpp-0.60.2 20240711 0 a71f8b67036e26b76586ba1c15c722bb5fdfbf32 1 0 2024
|
||||
deb34987433654358259ff990c1ce8622ba3204615c3082be2a0c6d528ebc9e4 -
|
||||
|
@@ -1,4 +1,4 @@
|
||||
## JGR's Patchpack version 0.59.1
|
||||
## JGR's Patchpack version 0.60.2
|
||||
|
||||
This is a collection of features and other modifications applied to [OpenTTD](http://www.openttd.org/).
|
||||
It's a separate version of the game which can be installed and played alongside the standard game, not a loadable mod (NewGRF, script, or so on).
|
||||
|
@@ -195,10 +195,11 @@ Last updated: 2014-02-23
|
||||
'src/network/network_func.h'.
|
||||
(DEBUG_FAILED_DUMP_COMMANDS is explained later)
|
||||
- Put the 'commands-out.log' into the root save folder, and rename
|
||||
it to 'commands.log'.
|
||||
- Run 'openttd -D -d desync=3 -g startsavegame.sav'.
|
||||
This replays the server log and creates new 'commands-out.log'
|
||||
and 'dmp_cmds_*.sav' in your autosave folder.
|
||||
it to 'commands.log'. Strip everything and including the "newgame"
|
||||
entry from the log.
|
||||
- Run 'openttd -D -d desync=0 -g startsavegame.sav'.
|
||||
This replays the server log. Use "-d desync=3" to also create a
|
||||
new 'commands-out.log' and 'dmp_cmds_*.sav' in your autosave folder.
|
||||
|
||||
## 3.2) Evaluation of the replay
|
||||
|
||||
@@ -226,7 +227,7 @@ Last updated: 2014-02-23
|
||||
savegames with your own ones from the replay. You can also comment/disable
|
||||
the 'NOT_REACHED' mentioned above, to get another 'dmp_cmds_*.sav' from
|
||||
the replay after the mismatch has already been detected.
|
||||
See Section 3.2 on how to compare savegames.
|
||||
See Section 3.3 on how to compare savegames.
|
||||
If the saves differ you have located the Desync between the last dmp_cmds
|
||||
that match and the first one that does not. The difference of the saves
|
||||
may point you in the direction of what causes it.
|
||||
@@ -252,16 +253,14 @@ Last updated: 2014-02-23
|
||||
are replayed. Their internal state will thus not change in the
|
||||
replay and will differ.
|
||||
|
||||
To compare savegame more semantically, there exist some ugly hackish
|
||||
tools at:
|
||||
http://devs.openttd.org/~frosch/texts/zpipe.c
|
||||
http://devs.openttd.org/~frosch/texts/printhunk.c
|
||||
To compare savegame more semantically, easiest is to first export them
|
||||
to a JSON format with for example:
|
||||
|
||||
The first one decompresses OpenTTD savegames. The second one creates
|
||||
a textual representation of an uncompressed savegame, by parsing hunks
|
||||
and arrays and such. With both tools you need to be a bit careful
|
||||
since they work on stdin and stdout, which may not deal well with
|
||||
binary data.
|
||||
https://github.com/TrueBrain/OpenTTD-savegame-reader
|
||||
|
||||
If you have the textual representation of the savegames, you can
|
||||
compare them with regular diff tools.
|
||||
By running:
|
||||
|
||||
python -m savegame_reader --export-json dmp_cmds_NNN.sav | jq . > NNN.json
|
||||
|
||||
Now you can use any (JSON) diff tool to compare the two savegames in a
|
||||
somewhat human readable way.
|
||||
|
@@ -29,20 +29,25 @@ This guide is for OpenTTD developers/maintainers, to release a new version of Op
|
||||
|
||||
1. Go to https://github.com/OpenTTD/website/new/main/_posts and write a new announcement post. See a [previous example](https://github.com/OpenTTD/website/pull/238) for a template.
|
||||
2. Create a new branch for this post and open a PR for it.
|
||||
3. Write announcement text for socials like Forum/Discord/Twitter/Reddit and include it in the PR.
|
||||
3. Write announcement text for the store pages and socials like TT-Forums / Discord / Twitter / Reddit / Fosstodon / etc., and include it in the PR.
|
||||
4. Create a Steam news image for that post and include it in the PR.
|
||||
5. Check the website post (preview link via checks page) and make corrections. We usually just use the GitHub web interface for this and squash the result later.
|
||||
5. Check the website post ("View Deployment" link) and make corrections. We usually just use the GitHub web interface for this and squash the result later.
|
||||
6. Get this PR approved, but do not merge yet.
|
||||
|
||||
## Step 3: Make the actual OpenTTD release
|
||||
|
||||
1. Go to https://github.com/OpenTTD/OpenTTD/releases/new and create a new tag matching the release number. For the body of the release, see any older release. "Set as a pre-release" for a beta or RC, set as latest for a real release.
|
||||
2. Merge website PR.
|
||||
3. Wait for the OpenTTD release checks to be complete.
|
||||
4. Check that website links to the new release are working and correct, using the [staging website](https://www-staging.openttd.org/).
|
||||
5. If this is a full release, ask orudge to update the Microsoft Store and TrueBrain to move the release from the "testing" to "default" branch on Steam.
|
||||
1. Go to https://github.com/OpenTTD/OpenTTD/releases/new and create a new tag matching the release number. For the body of the release, copy in the changelog. "Set as a pre-release" for a beta or RC.
|
||||
2. Wait for the OpenTTD release workflow to be complete.
|
||||
3. Merge the website PR. This will publish the release post.
|
||||
4. If this is a full release:
|
||||
* for `Steam`: under Steamworks -> SteamPipe -> Builds, set the "testing" branch live on the "default" branch. This will request 2FA validation.
|
||||
* for `GOG`: under Builds, "Publish" the freshly uploaded builds to `Master`, `GOG-use only` and `Testing`.
|
||||
* for `Microsoft Store`: ask orudge to publish the new release.
|
||||
|
||||
Access to `Steam`, `GOG` and/or `Microsoft Store` requires a developer account on that platform.
|
||||
You will need access to the shared keystore in order to create such an account.
|
||||
For help and/or access to either or both, please contact TrueBrain.
|
||||
|
||||
## Step 4: Tell the world
|
||||
|
||||
1. Tag and create a website release to trigger the actions that update the website.
|
||||
2. After the website is live, make announcements on social media. You may need to coordinate with other developers who can make posts on Twitter, Reddit, Steam, and GOG.
|
||||
1. Make announcements on social media and store pages. You may need to coordinate with other developers who can make posts on TT-Forums, Twitter, Reddit, Fosstodon, Discord, Steam, GOG, Microsoft Store, etc.
|
||||
|
@@ -2,6 +2,54 @@
|
||||
|
||||
* * *
|
||||
|
||||
### v0.60.2 (2024-07-11)
|
||||
* Fix crash opening landscape window when there are no available objects.
|
||||
* Fix crash which can occur when NewGRFs overwrite a recolour sprite with a normal sprite.
|
||||
* Fix one-way signalled bridges with parrallel diagonal tracks on the exit tile applying one-way behaviour to the bypassing track.
|
||||
* Fix the acceleration/braking scaling setting not immediately updating running trains when the setting is changed, this could cause multiplayer desyncs.
|
||||
* Fix the pathfinder not considering a signalled tunnel/bridge entrance or exit tile as a valid place to end a reservation in some cases.
|
||||
* Bump trunk base from commit b2218e75d4dea4261c6638579d3e501080b85bdc to commit 45886e50b21fd1dee461e910267781e264574790.
|
||||
|
||||
### v0.60.1 (2024-07-03)
|
||||
* Fix network clients being disconnected when attempting to join a multiplayer game.
|
||||
* Fix false-positive warning messages about inconsistencies which could cause multiplayer desyncs.
|
||||
* Fix -Z (version info) command line option.
|
||||
* Fix command line help text being truncated.
|
||||
|
||||
### v0.60.0 (2024-07-02)
|
||||
* Fix incorrect water infrastructure total when changing owner of object on water, and when removing objects on water using a multiple-tile clear.
|
||||
* Fix vehicle route overlay focus handling in orders window for some drop downs.
|
||||
* Fix template replacements failing when old trains parts were to be stored in the depot, and this would result in a free wagon chain longer than the maximum train length.
|
||||
* Fix the link graph refresher creating unnecessary links in some cases when using autorefit with cargo-type load orders.
|
||||
* Fix crash which could occur when loading old savegames in some cases.
|
||||
* Fix signal blocks containing no-entry signals not being promoted to PBS.
|
||||
* Fix handling of reservations when reserving up to a one way tunnel-bridge exit.
|
||||
* Fix vehicle window showing wrong text for profit last period in wallclock timekeeping mode.
|
||||
* Fix wrong behaviour of drop downs in the routing restriction window in some special cases.
|
||||
* Allow sorting by average order occupancy in shared order group mode.
|
||||
* Allow road vehicle overtaking in road waypoint tiles.
|
||||
* Allow changing the maximum tunnel length and maximum bridge height settings in network games.
|
||||
* Clicking on a tunnel to show the vehicles inside is now also implemented for road/tram tunnels.
|
||||
* Add setting for auto-fill drag signal removal to stop at signals with an attached routing restriction (default on).
|
||||
* Add button to toggle train purchase window dual pane mode.
|
||||
* Add console command to merge two companies.
|
||||
* Orders:
|
||||
* Fix duplicate order duplicating dispatch schedule assignment.
|
||||
* Fix not being able to move depot unbunch orders to another depot.
|
||||
* Preserve wait time/timetabled state when duplicating or moving the target of orders.
|
||||
* Realistic braking:
|
||||
* Allow removing reservation boundary signal.
|
||||
* Add setting to allow track editing to ignore realistic braking restrictions.
|
||||
* Add setting to uniformly scale the acceleration and braking of trains (when using realistic braking).
|
||||
* Scheduled dispatch:
|
||||
* Show scheduled dispatch label in order window.
|
||||
* Allow naming departure slot tags.
|
||||
* NewGRF signals:
|
||||
* Fix display of signal styles which show signals on both sides.
|
||||
* Fix signal GRFs which check whether the signal is on a tunnel portal.
|
||||
* Fix crashes which could occur on 32 bit Windows builds, when using an SSE blitter.
|
||||
* Bump trunk base from commit 88cf99017a26f887230d2c14d057a97bbf077f7c to commit b2218e75d4dea4261c6638579d3e501080b85bdc.
|
||||
|
||||
### v0.59.1 (2024-05-20)
|
||||
* Fix crash when sorting by capacity in autoreplace window.
|
||||
* Fix non-percentage servicing interval when using wallclock mode.
|
||||
|
@@ -1,4 +1,3 @@
|
||||
FROM emscripten/emsdk:3.1.42
|
||||
FROM emscripten/emsdk:3.1.57
|
||||
|
||||
COPY emsdk-liblzma.patch /
|
||||
RUN cd /emsdk/upstream/emscripten && patch -p1 < /emsdk-liblzma.patch
|
||||
COPY ports/liblzma.py /emsdk/upstream/emscripten/tools/ports/contrib/liblzma.py
|
||||
|
@@ -2,8 +2,8 @@
|
||||
|
||||
Please use docker with the supplied `Dockerfile` to build for emscripten.
|
||||
It takes care of a few things:
|
||||
- Use a version of emscripten we know works
|
||||
- Patch in LibLZMA support (as this is not supported by upstream)
|
||||
- Use a version of emscripten we know works.
|
||||
- Add LibLZMA library under contrib ports.
|
||||
|
||||
First, build the docker image by navigating in the folder this `README.md` is in, and executing:
|
||||
```
|
||||
|
@@ -1,7 +1,7 @@
|
||||
# LibLZMA is a custom addition to the emscripten SDK, so it is possible
|
||||
# someone patched their SDK. Test out if the SDK supports LibLZMA.
|
||||
include(CheckCXXSourceCompiles)
|
||||
set(CMAKE_REQUIRED_FLAGS "-sUSE_LIBLZMA=1")
|
||||
set(CMAKE_REQUIRED_FLAGS "--use-port=contrib.liblzma")
|
||||
|
||||
check_cxx_source_compiles("
|
||||
#include <lzma.h>
|
||||
@@ -12,9 +12,9 @@ check_cxx_source_compiles("
|
||||
if (LIBLZMA_FOUND)
|
||||
add_library(LibLZMA::LibLZMA INTERFACE IMPORTED)
|
||||
set_target_properties(LibLZMA::LibLZMA PROPERTIES
|
||||
INTERFACE_COMPILE_OPTIONS "-sUSE_LIBLZMA=1"
|
||||
INTERFACE_LINK_LIBRARIES "-sUSE_LIBLZMA=1"
|
||||
INTERFACE_COMPILE_OPTIONS "--use-port=contrib.liblzma"
|
||||
INTERFACE_LINK_LIBRARIES "--use-port=contrib.liblzma"
|
||||
)
|
||||
else()
|
||||
message(WARNING "You are using an emscripten SDK without LibLZMA support. Many savegames won't be able to load in OpenTTD. Please apply 'emsdk-liblzma.patch' to your local emsdk installation.")
|
||||
message(WARNING "You are using an emscripten SDK without LibLZMA support. Many savegames won't be able to load in OpenTTD. Please copy liblzma.py to your ports/contrib folder in your local emsdk installation.")
|
||||
endif()
|
||||
|
@@ -1,198 +0,0 @@
|
||||
From 84d0e9112d5c87a714abd21ec8547921f46f37b5 Mon Sep 17 00:00:00 2001
|
||||
From: milek7 <me@milek7.pl>
|
||||
Date: Tue, 8 Dec 2020 01:03:31 +0100
|
||||
Subject: [PATCH] Add liblzma port
|
||||
|
||||
---
|
||||
src/settings.js | 4 ++
|
||||
tools/ports/liblzma.py | 151 +++++++++++++++++++++++++++++++++++++++++
|
||||
tools/settings.py | 1 +
|
||||
3 files changed, 156 insertions(+)
|
||||
create mode 100644 tools/ports/liblzma.py
|
||||
|
||||
diff --git a/src/settings.js b/src/settings.js
|
||||
index f93140d..7b6bec9 100644
|
||||
--- a/src/settings.js
|
||||
+++ b/src/settings.js
|
||||
@@ -1451,6 +1451,10 @@ var USE_GIFLIB = false;
|
||||
// [compile+link]
|
||||
var USE_LIBJPEG = false;
|
||||
|
||||
+// 1 = use liblzma from emscripten-ports
|
||||
+// [compile+link]
|
||||
+var USE_LIBLZMA = false;
|
||||
+
|
||||
// 1 = use libpng from emscripten-ports
|
||||
// [compile+link]
|
||||
var USE_LIBPNG = false;
|
||||
diff --git a/tools/ports/liblzma.py b/tools/ports/liblzma.py
|
||||
new file mode 100644
|
||||
index 0000000..6872a8b
|
||||
--- /dev/null
|
||||
+++ b/tools/ports/liblzma.py
|
||||
@@ -0,0 +1,151 @@
|
||||
+# 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
|
||||
+# found in the LICENSE file.
|
||||
+
|
||||
+import os
|
||||
+import shutil
|
||||
+import logging
|
||||
+from pathlib import Path
|
||||
+
|
||||
+VERSION = '5.4.2'
|
||||
+HASH = '149f980338bea3d66de1ff5994b2b236ae1773135eda68b62b009df0c9dcdf5467f8cb2c06da95a71b6556d60bd3d21f475feced34d5dfdb80ee95416a2f9737'
|
||||
+
|
||||
+
|
||||
+def needed(settings):
|
||||
+ return settings.USE_LIBLZMA
|
||||
+
|
||||
+
|
||||
+def get(ports, settings, shared):
|
||||
+ ports.fetch_project('liblzma', f'https://tukaani.org/xz/xz-{VERSION}.tar.gz', sha512hash=HASH)
|
||||
+
|
||||
+ def create(final):
|
||||
+ logging.info('building port: liblzma')
|
||||
+
|
||||
+ ports.clear_project_build('liblzma')
|
||||
+
|
||||
+ source_path = os.path.join(ports.get_dir(), 'liblzma', f'xz-{VERSION}', 'src', 'liblzma')
|
||||
+ ports.write_file(os.path.join(source_path, 'config.h'), config_h)
|
||||
+ ports.install_headers(os.path.join(source_path, 'api'), pattern='lzma.h')
|
||||
+ ports.install_headers(os.path.join(source_path, 'api', 'lzma'), pattern='*.h', target='lzma')
|
||||
+
|
||||
+ build_flags = ['-DHAVE_CONFIG_H', '-DTUKLIB_SYMBOL_PREFIX=lzma_', '-fvisibility=hidden']
|
||||
+ exclude_files = ['crc32_small.c', 'crc64_small.c', 'crc32_tablegen.c', 'crc64_tablegen.c', 'price_tablegen.c', 'fastpos_tablegen.c',
|
||||
+ 'tuklib_exit.c', 'tuklib_mbstr_fw.c', 'tuklib_mbstr_width.c', 'tuklib_open_stdxxx.c', 'tuklib_progname.c']
|
||||
+ include_dirs_rel = ['../common', 'api', 'check', 'common', 'delta', 'lz', 'lzma', 'rangecoder', 'simple']
|
||||
+
|
||||
+ include_dirs = [os.path.join(source_path, p) for p in include_dirs_rel]
|
||||
+ ports.build_port(source_path, final, 'liblzma', flags=build_flags, exclude_files=exclude_files, includes=include_dirs)
|
||||
+
|
||||
+ return [shared.cache.get_lib('liblzma.a', create, what='port')]
|
||||
+
|
||||
+
|
||||
+def clear(ports, settings, shared):
|
||||
+ shared.cache.erase_lib('liblzma.a')
|
||||
+
|
||||
+
|
||||
+def process_args(ports):
|
||||
+ return []
|
||||
+
|
||||
+
|
||||
+def show():
|
||||
+ return 'liblzma (USE_LIBLZMA=1; public domain)'
|
||||
+
|
||||
+
|
||||
+config_h = '''
|
||||
+#define ASSUME_RAM 128
|
||||
+#define ENABLE_NLS 1
|
||||
+#define HAVE_CHECK_CRC32 1
|
||||
+#define HAVE_CHECK_CRC64 1
|
||||
+#define HAVE_CHECK_SHA256 1
|
||||
+#define HAVE_CLOCK_GETTIME 1
|
||||
+#define HAVE_DCGETTEXT 1
|
||||
+#define HAVE_DECL_CLOCK_MONOTONIC 1
|
||||
+#define HAVE_DECL_PROGRAM_INVOCATION_NAME 1
|
||||
+#define HAVE_DECODERS 1
|
||||
+#define HAVE_DECODER_ARM 1
|
||||
+#define HAVE_DECODER_ARMTHUMB 1
|
||||
+#define HAVE_DECODER_DELTA 1
|
||||
+#define HAVE_DECODER_IA64 1
|
||||
+#define HAVE_DECODER_LZMA1 1
|
||||
+#define HAVE_DECODER_LZMA2 1
|
||||
+#define HAVE_DECODER_POWERPC 1
|
||||
+#define HAVE_DECODER_SPARC 1
|
||||
+#define HAVE_DECODER_X86 1
|
||||
+#define HAVE_DLFCN_H 1
|
||||
+#define HAVE_ENCODERS 1
|
||||
+#define HAVE_ENCODER_ARM 1
|
||||
+#define HAVE_ENCODER_ARMTHUMB 1
|
||||
+#define HAVE_ENCODER_DELTA 1
|
||||
+#define HAVE_ENCODER_IA64 1
|
||||
+#define HAVE_ENCODER_LZMA1 1
|
||||
+#define HAVE_ENCODER_LZMA2 1
|
||||
+#define HAVE_ENCODER_POWERPC 1
|
||||
+#define HAVE_ENCODER_SPARC 1
|
||||
+#define HAVE_ENCODER_X86 1
|
||||
+#define HAVE_FCNTL_H 1
|
||||
+#define HAVE_FUTIMENS 1
|
||||
+#define HAVE_GETOPT_H 1
|
||||
+#define HAVE_GETOPT_LONG 1
|
||||
+#define HAVE_GETTEXT 1
|
||||
+#define HAVE_IMMINTRIN_H 1
|
||||
+#define HAVE_INTTYPES_H 1
|
||||
+#define HAVE_LIMITS_H 1
|
||||
+#define HAVE_MBRTOWC 1
|
||||
+#define HAVE_MEMORY_H 1
|
||||
+#define HAVE_MF_BT2 1
|
||||
+#define HAVE_MF_BT3 1
|
||||
+#define HAVE_MF_BT4 1
|
||||
+#define HAVE_MF_HC3 1
|
||||
+#define HAVE_MF_HC4 1
|
||||
+#define HAVE_OPTRESET 1
|
||||
+#define HAVE_POSIX_FADVISE 1
|
||||
+#define HAVE_PTHREAD_CONDATTR_SETCLOCK 1
|
||||
+#define HAVE_PTHREAD_PRIO_INHERIT 1
|
||||
+#define HAVE_STDBOOL_H 1
|
||||
+#define HAVE_STDINT_H 1
|
||||
+#define HAVE_STDLIB_H 1
|
||||
+#define HAVE_STRINGS_H 1
|
||||
+#define HAVE_STRING_H 1
|
||||
+#define HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC 1
|
||||
+#define HAVE_SYS_PARAM_H 1
|
||||
+#define HAVE_SYS_STAT_H 1
|
||||
+#define HAVE_SYS_TIME_H 1
|
||||
+#define HAVE_SYS_TYPES_H 1
|
||||
+#define HAVE_UINTPTR_T 1
|
||||
+#define HAVE_UNISTD_H 1
|
||||
+#define HAVE_VISIBILITY 1
|
||||
+#define HAVE_WCWIDTH 1
|
||||
+#define HAVE__BOOL 1
|
||||
+#define HAVE___BUILTIN_ASSUME_ALIGNED 1
|
||||
+#define HAVE___BUILTIN_BSWAPXX 1
|
||||
+#define MYTHREAD_POSIX 1
|
||||
+#define NDEBUG 1
|
||||
+#define PACKAGE "xz"
|
||||
+#define PACKAGE_BUGREPORT "lasse.collin@tukaani.org"
|
||||
+#define PACKAGE_NAME "XZ Utils"
|
||||
+#define PACKAGE_STRING "XZ Utils 5.4.0"
|
||||
+#define PACKAGE_TARNAME "xz"
|
||||
+#define PACKAGE_VERSION "5.4.0"
|
||||
+#define SIZEOF_SIZE_T 4
|
||||
+#define STDC_HEADERS 1
|
||||
+#define TUKLIB_CPUCORES_SYSCONF 1
|
||||
+#define TUKLIB_FAST_UNALIGNED_ACCESS 1
|
||||
+#define TUKLIB_PHYSMEM_SYSCONF 1
|
||||
+#ifndef _ALL_SOURCE
|
||||
+# define _ALL_SOURCE 1
|
||||
+#endif
|
||||
+#ifndef _GNU_SOURCE
|
||||
+# define _GNU_SOURCE 1
|
||||
+#endif
|
||||
+#ifndef _POSIX_PTHREAD_SEMANTICS
|
||||
+# define _POSIX_PTHREAD_SEMANTICS 1
|
||||
+#endif
|
||||
+#ifndef _TANDEM_SOURCE
|
||||
+# define _TANDEM_SOURCE 1
|
||||
+#endif
|
||||
+#ifndef __EXTENSIONS__
|
||||
+# define __EXTENSIONS__ 1
|
||||
+#endif
|
||||
+#define VERSION "5.4.0"
|
||||
+'''
|
||||
diff --git a/tools/settings.py b/tools/settings.py
|
||||
index 10d6ca0..827e4a9 100644
|
||||
--- a/tools/settings.py
|
||||
+++ b/tools/settings.py
|
||||
@@ -40,6 +40,7 @@ PORTS_SETTINGS = {
|
||||
'USE_SDL_NET',
|
||||
'USE_SDL_GFX',
|
||||
'USE_LIBJPEG',
|
||||
+ 'USE_LIBLZMA',
|
||||
'USE_OGG',
|
||||
'USE_REGAL',
|
||||
'USE_BOOST_HEADERS',
|
||||
--
|
||||
2.34.1
|
139
os/emscripten/ports/liblzma.py
Normal file
139
os/emscripten/ports/liblzma.py
Normal file
@@ -0,0 +1,139 @@
|
||||
import os
|
||||
import logging
|
||||
|
||||
VERSION = '5.4.6'
|
||||
HASH = '495cc890d25c075c927c907b77e60d86dd8a4c377cea5b1172c8e916984149a7bb5fb32db25091f7219346b83155b47e4bc0404cc8529d992014cd7ed0c278b7'
|
||||
|
||||
URL = 'https://github.com/tukaani-project/xz'
|
||||
DESCRIPTION = 'liblzma provides a general-purpose data-compression library.'
|
||||
LICENSE = 'LGPL-2.1'
|
||||
|
||||
def get(ports, settings, shared):
|
||||
ports.fetch_project('contrib.liblzma', f'https://github.com/tukaani-project/xz/releases/download/v{VERSION}/xz-{VERSION}.tar.xz', sha512hash=HASH)
|
||||
|
||||
def create(final):
|
||||
logging.info('building port: contrib.liblzma')
|
||||
|
||||
ports.clear_project_build('contrib.liblzma')
|
||||
|
||||
source_path = os.path.join(ports.get_dir(), 'contrib.liblzma', f'xz-{VERSION}', 'src', 'liblzma')
|
||||
ports.write_file(os.path.join(source_path, 'config.h'), config_h)
|
||||
ports.install_headers(os.path.join(source_path, 'api'), pattern='lzma.h')
|
||||
ports.install_headers(os.path.join(source_path, 'api', 'lzma'), pattern='*.h', target='lzma')
|
||||
|
||||
build_flags = ['-DHAVE_CONFIG_H', '-DTUKLIB_SYMBOL_PREFIX=lzma_', '-fvisibility=hidden']
|
||||
exclude_files = ['crc32_small.c', 'crc64_small.c', 'crc32_tablegen.c', 'crc64_tablegen.c', 'price_tablegen.c', 'fastpos_tablegen.c',
|
||||
'tuklib_exit.c', 'tuklib_mbstr_fw.c', 'tuklib_mbstr_width.c', 'tuklib_open_stdxxx.c', 'tuklib_progname.c']
|
||||
include_dirs_rel = ['../common', 'api', 'check', 'common', 'delta', 'lz', 'lzma', 'rangecoder', 'simple']
|
||||
|
||||
include_dirs = [os.path.join(source_path, p) for p in include_dirs_rel]
|
||||
ports.build_port(source_path, final, 'contrib.liblzma', flags=build_flags, exclude_files=exclude_files, includes=include_dirs)
|
||||
|
||||
return [shared.cache.get_lib('liblzma.a', create, what='port')]
|
||||
|
||||
|
||||
def clear(ports, settings, shared):
|
||||
shared.cache.erase_lib('liblzma.a')
|
||||
|
||||
|
||||
def process_args(ports):
|
||||
return []
|
||||
|
||||
|
||||
config_h = '''
|
||||
#define ASSUME_RAM 128
|
||||
#define ENABLE_NLS 1
|
||||
#define HAVE_CHECK_CRC32 1
|
||||
#define HAVE_CHECK_CRC64 1
|
||||
#define HAVE_CHECK_SHA256 1
|
||||
#define HAVE_CLOCK_GETTIME 1
|
||||
#define HAVE_DCGETTEXT 1
|
||||
#define HAVE_DECL_CLOCK_MONOTONIC 1
|
||||
#define HAVE_DECL_PROGRAM_INVOCATION_NAME 1
|
||||
#define HAVE_DECODERS 1
|
||||
#define HAVE_DECODER_ARM 1
|
||||
#define HAVE_DECODER_ARMTHUMB 1
|
||||
#define HAVE_DECODER_DELTA 1
|
||||
#define HAVE_DECODER_IA64 1
|
||||
#define HAVE_DECODER_LZMA1 1
|
||||
#define HAVE_DECODER_LZMA2 1
|
||||
#define HAVE_DECODER_POWERPC 1
|
||||
#define HAVE_DECODER_SPARC 1
|
||||
#define HAVE_DECODER_X86 1
|
||||
#define HAVE_DLFCN_H 1
|
||||
#define HAVE_ENCODERS 1
|
||||
#define HAVE_ENCODER_ARM 1
|
||||
#define HAVE_ENCODER_ARMTHUMB 1
|
||||
#define HAVE_ENCODER_DELTA 1
|
||||
#define HAVE_ENCODER_IA64 1
|
||||
#define HAVE_ENCODER_LZMA1 1
|
||||
#define HAVE_ENCODER_LZMA2 1
|
||||
#define HAVE_ENCODER_POWERPC 1
|
||||
#define HAVE_ENCODER_SPARC 1
|
||||
#define HAVE_ENCODER_X86 1
|
||||
#define HAVE_FCNTL_H 1
|
||||
#define HAVE_FUTIMENS 1
|
||||
#define HAVE_GETOPT_H 1
|
||||
#define HAVE_GETOPT_LONG 1
|
||||
#define HAVE_GETTEXT 1
|
||||
#define HAVE_IMMINTRIN_H 1
|
||||
#define HAVE_INTTYPES_H 1
|
||||
#define HAVE_LIMITS_H 1
|
||||
#define HAVE_MBRTOWC 1
|
||||
#define HAVE_MEMORY_H 1
|
||||
#define HAVE_MF_BT2 1
|
||||
#define HAVE_MF_BT3 1
|
||||
#define HAVE_MF_BT4 1
|
||||
#define HAVE_MF_HC3 1
|
||||
#define HAVE_MF_HC4 1
|
||||
#define HAVE_OPTRESET 1
|
||||
#define HAVE_POSIX_FADVISE 1
|
||||
#define HAVE_PTHREAD_CONDATTR_SETCLOCK 1
|
||||
#define HAVE_PTHREAD_PRIO_INHERIT 1
|
||||
#define HAVE_STDBOOL_H 1
|
||||
#define HAVE_STDINT_H 1
|
||||
#define HAVE_STDLIB_H 1
|
||||
#define HAVE_STRINGS_H 1
|
||||
#define HAVE_STRING_H 1
|
||||
#define HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC 1
|
||||
#define HAVE_SYS_PARAM_H 1
|
||||
#define HAVE_SYS_STAT_H 1
|
||||
#define HAVE_SYS_TIME_H 1
|
||||
#define HAVE_SYS_TYPES_H 1
|
||||
#define HAVE_UINTPTR_T 1
|
||||
#define HAVE_UNISTD_H 1
|
||||
#define HAVE_VISIBILITY 1
|
||||
#define HAVE_WCWIDTH 1
|
||||
#define HAVE__BOOL 1
|
||||
#define HAVE___BUILTIN_ASSUME_ALIGNED 1
|
||||
#define HAVE___BUILTIN_BSWAPXX 1
|
||||
#define MYTHREAD_POSIX 1
|
||||
#define NDEBUG 1
|
||||
#define PACKAGE "xz"
|
||||
#define PACKAGE_BUGREPORT "lasse.collin@tukaani.org"
|
||||
#define PACKAGE_NAME "XZ Utils"
|
||||
#define PACKAGE_STRING "XZ Utils 5.4.0"
|
||||
#define PACKAGE_TARNAME "xz"
|
||||
#define PACKAGE_VERSION "5.4.0"
|
||||
#define SIZEOF_SIZE_T 4
|
||||
#define STDC_HEADERS 1
|
||||
#define TUKLIB_CPUCORES_SYSCONF 1
|
||||
#define TUKLIB_FAST_UNALIGNED_ACCESS 1
|
||||
#define TUKLIB_PHYSMEM_SYSCONF 1
|
||||
#ifndef _ALL_SOURCE
|
||||
# define _ALL_SOURCE 1
|
||||
#endif
|
||||
#ifndef _GNU_SOURCE
|
||||
# define _GNU_SOURCE 1
|
||||
#endif
|
||||
#ifndef _POSIX_PTHREAD_SEMANTICS
|
||||
# define _POSIX_PTHREAD_SEMANTICS 1
|
||||
#endif
|
||||
#ifndef _TANDEM_SOURCE
|
||||
# define _TANDEM_SOURCE 1
|
||||
#endif
|
||||
#ifndef __EXTENSIONS__
|
||||
# define __EXTENSIONS__ 1
|
||||
#endif
|
||||
#define VERSION "5.4.0"
|
||||
'''
|
@@ -22,7 +22,7 @@
|
||||
* A std::vector is used to mark which tiles are contained.
|
||||
*/
|
||||
class BitmapTileArea : public TileArea {
|
||||
friend struct BitmapTileIterator;
|
||||
friend class BitmapTileIterator;
|
||||
|
||||
protected:
|
||||
using BlockT = uint32_t;
|
||||
|
@@ -636,7 +636,7 @@ bool VehicleCargoList::Stage(bool accepted, StationID current_station, StationID
|
||||
CargoPacketList transfer_deliver;
|
||||
std::vector<CargoPacket *> keep;
|
||||
|
||||
const FlowStatMap &flows = ge->CreateData().flows;
|
||||
const FlowStatMap &flows = ge->ConstFlows();
|
||||
|
||||
bool force_keep = (order_flags & OUFB_NO_UNLOAD) != 0;
|
||||
bool force_unload = (order_flags & OUFB_UNLOAD) != 0;
|
||||
|
@@ -35,7 +35,7 @@ struct GoodsEntry; // forward-declare for Stage() and RerouteStalePackets()
|
||||
|
||||
template <class Tinst, class Tcont> class CargoList;
|
||||
class StationCargoList; // forward-declare, so we can use it in VehicleCargoList.
|
||||
extern SaveLoadTable GetCargoPacketDesc();
|
||||
extern NamedSaveLoadTable GetCargoPacketDesc();
|
||||
|
||||
namespace upstream_sl {
|
||||
extern upstream_sl::SaveLoadTable GetCargoPacketDesc();
|
||||
@@ -79,7 +79,7 @@ private:
|
||||
friend class VehicleCargoList;
|
||||
friend class StationCargoList;
|
||||
/** We want this to be saved, right? */
|
||||
friend SaveLoadTable GetCargoPacketDesc();
|
||||
friend NamedSaveLoadTable GetCargoPacketDesc();
|
||||
friend upstream_sl::SaveLoadTable upstream_sl::GetCargoPacketDesc();
|
||||
friend void Load_CPDP();
|
||||
public:
|
||||
|
@@ -18,13 +18,13 @@
|
||||
/** All the cheats. */
|
||||
Cheats _cheats;
|
||||
|
||||
std::map<std::string, Cheat> _unknown_cheats;
|
||||
std::map<std::string, bool> _unknown_cheat_fields;
|
||||
|
||||
/** Reinitialise all the cheats. */
|
||||
void InitializeCheats()
|
||||
{
|
||||
memset(&_cheats, 0, sizeof(Cheats));
|
||||
_unknown_cheats.clear();
|
||||
_unknown_cheat_fields.clear();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -31,12 +31,12 @@ struct CompanyEconomyEntry {
|
||||
};
|
||||
|
||||
struct CompanyInfrastructure {
|
||||
uint32_t road[ROADTYPE_END]; ///< Count of company owned track bits for each road type.
|
||||
uint32_t signal; ///< Count of company owned signals.
|
||||
uint32_t rail[RAILTYPE_END]; ///< Count of company owned track bits for each rail type.
|
||||
uint32_t water; ///< Count of company owned track bits for canals.
|
||||
uint32_t station; ///< Count of company owned station tiles.
|
||||
uint32_t airport; ///< Count of company owned airports.
|
||||
std::array<uint32_t, ROADTYPE_END> road{}; ///< Count of company owned track bits for each road type.
|
||||
uint32_t signal{}; ///< Count of company owned signals.
|
||||
std::array<uint32_t, RAILTYPE_END> rail{}; ///< Count of company owned track bits for each rail type.
|
||||
uint32_t water{}; ///< Count of company owned track bits for canals.
|
||||
uint32_t station{}; ///< Count of company owned station tiles.
|
||||
uint32_t airport{}; ///< Count of company owned airports.
|
||||
|
||||
/** Get total sum of all owned track bits. */
|
||||
uint32_t GetRailTotal() const
|
||||
|
@@ -2456,7 +2456,7 @@ struct CompanyWindow : Window
|
||||
int y = r.top;
|
||||
|
||||
uint rail_pieces = c->infrastructure.signal;
|
||||
for (uint i = 0; i < lengthof(c->infrastructure.rail); i++) rail_pieces += c->infrastructure.rail[i];
|
||||
for (uint32_t pieces : c->infrastructure.rail) rail_pieces += pieces;
|
||||
if (rail_pieces != 0) {
|
||||
SetDParam(0, rail_pieces);
|
||||
DrawString(r.left, r.right, y, STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL);
|
||||
@@ -2464,7 +2464,7 @@ struct CompanyWindow : Window
|
||||
}
|
||||
|
||||
uint road_pieces = 0;
|
||||
for (uint i = 0; i < lengthof(c->infrastructure.road); i++) road_pieces += c->infrastructure.road[i];
|
||||
for (uint32_t pieces : c->infrastructure.road) road_pieces += pieces;
|
||||
if (road_pieces != 0) {
|
||||
SetDParam(0, road_pieces);
|
||||
DrawString(r.left, r.right, y, STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD);
|
||||
|
@@ -163,7 +163,7 @@ struct IConsoleWindow : Window
|
||||
const int right = this->width - WidgetDimensions::scaled.frametext.right;
|
||||
|
||||
GfxFillRect(0, 0, this->width - 1, this->height - 1, PC_BLACK);
|
||||
int ypos = this->height - this->line_height;
|
||||
int ypos = this->height - this->line_height - WidgetDimensions::scaled.hsep_normal;
|
||||
for (size_t line_index = IConsoleWindow::scroll; line_index < _iconsole_buffer.size(); line_index++) {
|
||||
const IConsoleLine &print = _iconsole_buffer[line_index];
|
||||
SetDParamStr(0, print.buffer);
|
||||
|
@@ -116,7 +116,7 @@ void RandomBytesWithFallback(std::span<uint8_t> buf)
|
||||
#if defined(_WIN32)
|
||||
auto res = BCryptGenRandom(nullptr, static_cast<PUCHAR>(buf.data()), static_cast<ULONG>(buf.size()), BCRYPT_USE_SYSTEM_PREFERRED_RNG);
|
||||
if (res >= 0) return;
|
||||
#elif defined(__APPLE__) || defined(__NetBSD__) || defined(__FreeBSD__)
|
||||
#elif defined(__APPLE__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__)
|
||||
arc4random_buf(buf.data(), buf.size());
|
||||
return;
|
||||
#elif defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 25)))
|
||||
|
@@ -1658,6 +1658,22 @@ struct IsEmptyAction
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Action to check if a vehicle is unloading cargo.
|
||||
*/
|
||||
struct IsUnloadingAction
|
||||
{
|
||||
/**
|
||||
* Checks if the vehicle is unloading cargo.
|
||||
* @param v Vehicle to be checked.
|
||||
* @return true if v is unloading, false otherwise.
|
||||
*/
|
||||
bool operator()(const Vehicle *v)
|
||||
{
|
||||
return HasBit(v->vehicle_flags, VF_CARGO_UNLOADING);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Action to check whether a vehicle is wholly in the platform.
|
||||
*/
|
||||
@@ -1774,14 +1790,14 @@ struct FinalizeRefitAction
|
||||
/**
|
||||
* Refit a vehicle in a station.
|
||||
* @param v Vehicle to be refitted.
|
||||
* @param v_start v->GetFirstEnginePart().
|
||||
* @param consist_capleft Added cargo capacities in the consist.
|
||||
* @param st Station the vehicle is loading at.
|
||||
* @param next_station Possible next stations the vehicle can travel to.
|
||||
* @param new_cid Target cargo for refit.
|
||||
*/
|
||||
static void HandleStationRefit(Vehicle *v, CargoArray &consist_capleft, Station *st, CargoStationIDStackSet next_station, CargoID new_cid)
|
||||
static void HandleStationRefit(Vehicle *v, Vehicle *v_start, CargoArray &consist_capleft, Station *st, CargoStationIDStackSet next_station, CargoID new_cid)
|
||||
{
|
||||
Vehicle *v_start = v->GetFirstEnginePart();
|
||||
if (!IterateVehicleParts(v_start, IsEmptyAction())) return;
|
||||
if (v->type == VEH_TRAIN && !IterateVehicleParts(v_start, ThroughLoadTrainInPlatformAction())) return;
|
||||
|
||||
@@ -2039,6 +2055,7 @@ static void LoadUnloadVehicle(Vehicle *front)
|
||||
CargoPayment *payment = front->cargo_payment;
|
||||
|
||||
uint artic_part = 0; // Articulated part we are currently trying to load. (not counting parts without capacity)
|
||||
bool suppress_artic_load = false;
|
||||
for (Vehicle *v = front; v != nullptr; v = v->Next()) {
|
||||
if (pull_through_mode && HasBit(Train::From(v)->flags, VRF_BEYOND_PLATFORM_END)) {
|
||||
if (v->cargo_cap != 0) {
|
||||
@@ -2076,7 +2093,10 @@ static void LoadUnloadVehicle(Vehicle *front)
|
||||
}
|
||||
platform_length_left -= length;
|
||||
}
|
||||
if (v == front || !v->Previous()->HasArticulatedPart()) artic_part = 0;
|
||||
if (v == front || !v->IsArticulatedPart()) {
|
||||
artic_part = 0;
|
||||
suppress_artic_load = false;
|
||||
}
|
||||
if (v->cargo_cap == 0) continue;
|
||||
artic_part++;
|
||||
|
||||
@@ -2151,7 +2171,9 @@ static void LoadUnloadVehicle(Vehicle *front)
|
||||
/* We have finished unloading (cargo count == 0) */
|
||||
ClrBit(v->vehicle_flags, VF_CARGO_UNLOADING);
|
||||
}
|
||||
|
||||
if (front->current_order.IsRefit() && front->current_order.GetRefitCargo() != v->cargo_type) {
|
||||
suppress_artic_load = true;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -2161,11 +2183,18 @@ static void LoadUnloadVehicle(Vehicle *front)
|
||||
|
||||
/* This order has a refit, if this is the first vehicle part carrying cargo and the whole vehicle is empty, try refitting. */
|
||||
if (front->current_order.IsRefit() && artic_part == 1) {
|
||||
HandleStationRefit(v, consist_capleft, st, next_station, front->current_order.GetRefitCargo());
|
||||
Vehicle *v_start = v->GetFirstEnginePart();
|
||||
if (front->current_order.GetRefitCargo() != v->cargo_type && IterateVehicleParts(v_start, IsUnloadingAction())) {
|
||||
suppress_artic_load = true;
|
||||
continue;
|
||||
}
|
||||
HandleStationRefit(v, v_start, consist_capleft, st, next_station, front->current_order.GetRefitCargo());
|
||||
ge = &st->goods[v->cargo_type];
|
||||
ged = &ge->CreateData();
|
||||
}
|
||||
|
||||
if (suppress_artic_load) continue;
|
||||
|
||||
/* Do not pick up goods when we have no-load set. */
|
||||
if (GetLoadType(v) & OLFB_NO_LOAD) continue;
|
||||
|
||||
|
@@ -703,7 +703,11 @@ void DrawRailCatenary(const TileInfo *ti)
|
||||
void SettingsDisableElrail(int32_t new_value)
|
||||
{
|
||||
bool disable = (new_value != 0);
|
||||
UpdateDisableElrailSettingState(disable, true);
|
||||
}
|
||||
|
||||
void UpdateDisableElrailSettingState(bool disable, bool update_vehicles)
|
||||
{
|
||||
/* pick appropriate railtype for elrail engines depending on setting */
|
||||
const RailType new_railtype = disable ? RAILTYPE_RAIL : RAILTYPE_ELECTRIC;
|
||||
|
||||
@@ -731,10 +735,12 @@ void SettingsDisableElrail(int32_t new_value)
|
||||
}
|
||||
|
||||
/* Fix the total power and acceleration for trains */
|
||||
for (Train *t : Train::IterateFrontOnly()) {
|
||||
/* power and acceleration is cached only for front engines */
|
||||
if (t->IsFrontEngine()) {
|
||||
t->ConsistChanged(CCF_TRACK);
|
||||
if (update_vehicles) {
|
||||
for (Train *t : Train::IterateFrontOnly()) {
|
||||
/* power and acceleration is cached only for front engines */
|
||||
if (t->IsFrontEngine()) {
|
||||
t->ConsistChanged(CCF_TRACK);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -37,5 +37,6 @@ void DrawRailCatenaryOnTunnel(const TileInfo *ti);
|
||||
void DrawRailCatenaryOnBridge(const TileInfo *ti);
|
||||
|
||||
void SettingsDisableElrail(int32_t new_value); ///< _settings_game.disable_elrail callback
|
||||
void UpdateDisableElrailSettingState(bool disable, bool update_vehicles);
|
||||
|
||||
#endif /* ELRAIL_FUNC_H */
|
||||
|
@@ -125,7 +125,7 @@ static constexpr NWidgetPart _nested_group_widgets[] = {
|
||||
* @param parent Current tree parent (set by self with recursion).
|
||||
* @param indent Current tree indentation level (set by self with recursion).
|
||||
*/
|
||||
static void GuiGroupListAddChildren(GUIGroupList &dst, const GUIGroupList &src, bool fold, GroupID parent, int indent)
|
||||
static void GuiGroupListAddChildren(GUIGroupList &dst, const GUIGroupList &src, bool fold, GroupID parent = INVALID_GROUP, uint8_t indent = 0)
|
||||
{
|
||||
for (const auto &item : src) {
|
||||
if (item.group->parent != parent) continue;
|
||||
@@ -141,6 +141,16 @@ static void GuiGroupListAddChildren(GUIGroupList &dst, const GUIGroupList &src,
|
||||
GuiGroupListAddChildren(dst, src, fold, item.group->index, indent + 1);
|
||||
}
|
||||
}
|
||||
|
||||
if (indent > 0 || dst.empty()) return;
|
||||
|
||||
/* Hierarchy is complete, traverse in reverse to find where indentation levels continue. */
|
||||
uint16_t level_mask = 0;
|
||||
for (auto it = std::rbegin(dst); std::next(it) != std::rend(dst); ++it) {
|
||||
auto next_it = std::next(it);
|
||||
SB(level_mask, it->indent, 1, it->indent <= next_it->indent);
|
||||
next_it->level_mask = level_mask;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -325,7 +335,7 @@ private:
|
||||
* @param protection Whether autoreplace protection is set.
|
||||
* @param has_children Whether the group has children and should have a fold / unfold button.
|
||||
*/
|
||||
void DrawGroupInfo(int y, int left, int right, GroupID g_id, int indent = 0, bool protection = false, bool has_children = false) const
|
||||
void DrawGroupInfo(int y, int left, int right, GroupID g_id, uint16_t level_mask = 0, uint8_t indent = 0, bool protection = false, bool has_children = false) const
|
||||
{
|
||||
/* Highlight the group if a vehicle is dragged over it */
|
||||
if (g_id == this->group_over) {
|
||||
@@ -339,10 +349,27 @@ private:
|
||||
const GroupStatistics &stats = GroupStatistics::Get(this->vli.company, g_id, this->vli.vtype);
|
||||
bool rtl = _current_text_dir == TD_RTL;
|
||||
|
||||
const int offset = (rtl ? -(int)this->column_size[VGC_FOLD].width : (int)this->column_size[VGC_FOLD].width) / 2;
|
||||
const int level_width = rtl ? -WidgetDimensions::scaled.hsep_indent : WidgetDimensions::scaled.hsep_indent;
|
||||
const int linecolour = GetColourGradient(COLOUR_ORANGE, SHADE_NORMAL);
|
||||
|
||||
if (indent > 0) {
|
||||
/* Draw tree continuation lines. */
|
||||
int tx = (rtl ? right - WidgetDimensions::scaled.framerect.right : left + WidgetDimensions::scaled.framerect.left) + offset;
|
||||
for (uint lvl = 1; lvl <= indent; ++lvl) {
|
||||
if (HasBit(level_mask, lvl)) GfxDrawLine(tx, y, tx, y + this->tiny_step_height - 1, linecolour, WidgetDimensions::scaled.fullbevel.top);
|
||||
if (lvl < indent) tx += level_width;
|
||||
}
|
||||
/* Draw our node in the tree. */
|
||||
int ycentre = y + this->tiny_step_height / 2 - 1;
|
||||
if (!HasBit(level_mask, indent)) GfxDrawLine(tx, y, tx, ycentre, linecolour, WidgetDimensions::scaled.fullbevel.top);
|
||||
GfxDrawLine(tx, ycentre, tx + offset - (rtl ? -1 : 1), ycentre, linecolour, WidgetDimensions::scaled.fullbevel.top);
|
||||
}
|
||||
|
||||
/* draw fold / unfold button */
|
||||
int x = rtl ? right - WidgetDimensions::scaled.framerect.right - this->column_size[VGC_FOLD].width + 1 : left + WidgetDimensions::scaled.framerect.left;
|
||||
if (has_children) {
|
||||
DrawSprite(Group::Get(g_id)->folded ? SPR_CIRCLE_FOLDED : SPR_CIRCLE_UNFOLDED, PAL_NONE, rtl ? x - indent : x + indent, y + (this->tiny_step_height - this->column_size[VGC_FOLD].height) / 2);
|
||||
DrawSprite(Group::Get(g_id)->folded ? SPR_CIRCLE_FOLDED : SPR_CIRCLE_UNFOLDED, PAL_NONE, x + indent * level_width, y + (this->tiny_step_height - this->column_size[VGC_FOLD].height) / 2);
|
||||
}
|
||||
|
||||
/* draw group name */
|
||||
@@ -356,7 +383,7 @@ private:
|
||||
str = STR_GROUP_NAME;
|
||||
}
|
||||
x = rtl ? x - WidgetDimensions::scaled.hsep_normal - this->column_size[VGC_NAME].width : x + WidgetDimensions::scaled.hsep_normal + this->column_size[VGC_FOLD].width;
|
||||
DrawString(x + (rtl ? 0 : indent), x + this->column_size[VGC_NAME].width - 1 - (rtl ? indent : 0), y + (this->tiny_step_height - this->column_size[VGC_NAME].height) / 2, str, colour);
|
||||
DrawString(x + (rtl ? 0 : indent * WidgetDimensions::scaled.hsep_indent), x + this->column_size[VGC_NAME].width - 1 - (rtl ? indent * WidgetDimensions::scaled.hsep_indent : 0), y + (this->tiny_step_height - this->column_size[VGC_NAME].height) / 2, str, colour);
|
||||
|
||||
/* draw autoreplace protection */
|
||||
x = rtl ? x - WidgetDimensions::scaled.hsep_wide - this->column_size[VGC_PROTECT].width : x + WidgetDimensions::scaled.hsep_wide + this->column_size[VGC_NAME].width;
|
||||
@@ -706,7 +733,7 @@ public:
|
||||
|
||||
assert(g->owner == this->owner);
|
||||
|
||||
DrawGroupInfo(y1, r.left, r.right, g->index, it->indent * WidgetDimensions::scaled.hsep_indent, HasBit(g->flags, GroupFlags::GF_REPLACE_PROTECTION), g->folded || (std::next(it) != std::end(this->groups) && std::next(it)->indent > it->indent));
|
||||
DrawGroupInfo(y1, r.left, r.right, g->index, it->level_mask, it->indent, HasBit(g->flags, GroupFlags::GF_REPLACE_PROTECTION), g->folded || (std::next(it) != std::end(this->groups) && std::next(it)->indent > it->indent));
|
||||
|
||||
y1 += this->tiny_step_height;
|
||||
}
|
||||
|
@@ -21,9 +21,10 @@ void DeleteGroupHighlightOfVehicle(const Vehicle *v);
|
||||
|
||||
struct GUIGroupListItem {
|
||||
const Group *group;
|
||||
int8_t indent; ///< Display indentation level.
|
||||
uint8_t indent; ///< Display indentation level.
|
||||
uint16_t level_mask; ///< Bitmask of indentation continuation.
|
||||
|
||||
constexpr GUIGroupListItem(const Group *group, int8_t indent) : group(group), indent(indent) {}
|
||||
constexpr GUIGroupListItem(const Group *group, int8_t indent) : group(group), indent(indent), level_mask(0) {}
|
||||
};
|
||||
|
||||
using GUIGroupList = GUIList<GUIGroupListItem>;
|
||||
|
@@ -4624,6 +4624,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Verander
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Geen voertuie is op die oomblik beskikbaar nie
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Begin na {DATE_SHORT} of gebruik 'n NewGRF wat voertuie vroeër beskikbaar stel
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Kan nie trein forseer om sein te vermy op gevaar...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Kan nie rigting van trein verander nie...
|
||||
|
@@ -4418,6 +4418,7 @@ STR_ERROR_CAN_T_CLONE_VEHICLE_LIST :{WHITE}... لي
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL :{WHITE}لن تتوافر اى وسائل نقل على اﻹطلاق
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}لا تتوافر اى آليه نقل بعد
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}لا يمكن السماح للقطار بالعبور من الاشارة في وضع الخطر
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}لا يمكن عكس اتجاة القطار...
|
||||
|
@@ -4369,6 +4369,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL :{WHITE}Ez da ib
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Aldatu zure NewGRF konfigurazioa
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Ez dago ibilgailu erabilgarririk oraindik
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Ezin da trena seinalea pasatzera behartu, istripu arriskua...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Ezin da trenaren norabidea aldatu...
|
||||
|
@@ -5631,6 +5631,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Зьмя
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Няма даступных транспартных сродкаў
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Пачніце гульню пасьля {DATE_SHORT} або падключыце NewGRF з транспартам адпаведных часоў.
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Немагчыма іґнараваць сыґнал. Небясьпечна...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Не атрымалася завярнуць цягнік...
|
||||
|
@@ -5282,11 +5282,16 @@ STR_ERROR_VEHICLE_IS_DESTROYED :{WHITE}... veí
|
||||
|
||||
STR_ERROR_CAN_T_CLONE_VEHICLE_LIST :{WHITE}... nem todos os veículos são idênticos
|
||||
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL :{WHITE}Não haverá veículos disponíveis
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL :{WHITE}Nenhum veículo estará disponível
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Modifique a sua configuração de NewGRF
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Não existem veículos disponíveis ainda
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Inicie um novo jogo depois de {DATE_SHORT} ou utilize um NewGRF que forneça veículos iniciais
|
||||
|
||||
STR_ERROR_NO_TOWN_ROADTYPES_AVAILABLE_AT_ALL :{WHITE}Nenhum tipo de estrada urbana está disponível
|
||||
STR_ERROR_NO_TOWN_ROADTYPES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Modifique a sua configuração de NewGRF
|
||||
STR_ERROR_NO_TOWN_ROADTYPES_AVAILABLE_YET :{WHITE}Não existem tipos de estrada urbana disponíveis ainda
|
||||
STR_ERROR_NO_TOWN_ROADTYPES_AVAILABLE_YET_EXPLANATION :{WHITE}Inicie um novo jogo depois de {DATE_SHORT} ou utilize um NewGRF que forneça estradas urbanas iniciais
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Não é possível fazer o trem passar o sinal em perigo...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Não é possível inverter a direção do trem...
|
||||
|
@@ -4654,6 +4654,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Пром
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Няма налични превозни средства все още
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Започни нова игра след {DATE_SHORT} или използвай NewGRF , който показва ранни превозни средства
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Влака не може да пропусне сигнала при опасност...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Не може да обърне посоката на влак...
|
||||
|
@@ -5287,6 +5287,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Canvia l
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Encara no hi ha vehicles disponibles
|
||||
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...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}No es pot invertir la direcció del tren...
|
||||
|
@@ -1709,6 +1709,7 @@ STR_ERROR_OBJECT_IN_THE_WAY :{WHITE}Ҫул
|
||||
|
||||
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
|
||||
|
||||
|
@@ -4812,6 +4812,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Promijen
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Još nema dostupnih vozila
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Pokreni novu igru nakon {DATE_SHORT} ili upotrijebi NewGRF koji daje vrlo rana vozila
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Nije moguće natjerati vlak da ignorira signale dok traje opasnost...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Nije moguće promijeniti smjer vlaka...
|
||||
|
@@ -5376,6 +5376,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Zmeň na
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Zatím nejsou dostupná žádná vozidla
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Začít hru po {DATE_SHORT} nebo použít NewGRF, která zajistí dřívější vozidla
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Nelze nechat vlak projet semafory v nebezpečí...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Nelze obrátit vlak...
|
||||
|
@@ -5286,6 +5286,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Skift di
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Ingen køretøjer er tilgængelige endnu
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Start et nyt spil efter {DATE_SHORT} eller brug en NewGRF der giver tidlige køretøjer
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Kan ikke få toget til at passere signalet...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Kan ikke vende retningen af toget...
|
||||
|
@@ -5286,6 +5286,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Pas je N
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Nog geen voertuigen beschikbaar
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE} Start een nieuw spel na {DATE_SHORT} of gebruik een NewGRF dat in vroege voertuigen voorziet
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Kan trein niet het sein laten passeren bij gevaar...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Kan de richting van de trein niet omdraaien...
|
||||
|
@@ -5286,6 +5286,11 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Change y
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}No vehicles are available yet
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Start a new game after {DATE_SHORT} or use a NewGRF which provides early vehicles
|
||||
|
||||
STR_ERROR_NO_TOWN_ROADTYPES_AVAILABLE_AT_ALL :{WHITE}No town-buildable road types are available
|
||||
STR_ERROR_NO_TOWN_ROADTYPES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Change your NewGRF configuration
|
||||
STR_ERROR_NO_TOWN_ROADTYPES_AVAILABLE_YET :{WHITE}No town-buildable road types are available yet
|
||||
STR_ERROR_NO_TOWN_ROADTYPES_AVAILABLE_YET_EXPLANATION :{WHITE}Start a new game after {DATE_SHORT} or use a NewGRF that provides early town-buildable road types
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Can't make train pass signal at danger...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Can't reverse direction of train...
|
||||
|
@@ -3488,6 +3488,9 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_ROAD_TYPE :Road type
|
||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF variable 60+x parameter (hexadecimal)
|
||||
|
||||
# Sprite aligner window
|
||||
STR_SPRITE_ALIGNER_CAPTION_NO_ACTION :{WHITE}Aligning sprite: ({STRING}:{NUM})
|
||||
STR_SPRITE_ALIGNER_CAPTION_ACTIONA :{WHITE}Aligning sprite: Action 0xA, {COMMA} ({STRING}:{NUM})
|
||||
STR_SPRITE_ALIGNER_CAPTION_ACTION5 :{WHITE}Aligning sprite: Action 0x5, type {HEX}, {COMMA} ({STRING}:{NUM})
|
||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Next sprite
|
||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Proceed to the next normal sprite, skipping any pseudo/recolor/font sprites and wrapping around from the last sprite to the first
|
||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Go to sprite
|
||||
@@ -3496,6 +3499,7 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Previous
|
||||
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Proceed to the previous normal sprite, skipping any pseudo/recolor/font sprites and wrapping around from the first sprite to the last
|
||||
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Representation of the currently selected sprite. The alignment is ignored when drawing this sprite
|
||||
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Move the sprite around, changing the X and Y offsets. Ctrl+Click to move the sprite eight units at a time
|
||||
STR_SPRITE_ALIGNER_SPRITE :{STRING}:{NUM}
|
||||
|
||||
###length 2
|
||||
STR_SPRITE_ALIGNER_CENTRE_OFFSET :{BLACK}Offset centered
|
||||
@@ -5282,6 +5286,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Change y
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}No vehicles are available yet
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Start a new game after {DATE_SHORT} or use a NewGRF that provides early vehicles
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Can't make train pass signal at danger...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Can't reverse direction of train...
|
||||
@@ -5832,6 +5837,7 @@ STR_JUST_DATE_ISO :{DATE_ISO}
|
||||
STR_JUST_STRING :{STRING}
|
||||
STR_JUST_STRING1 :{STRING}
|
||||
STR_JUST_STRING2 :{STRING}
|
||||
STR_JUST_STRING4 :{STRING}
|
||||
STR_JUST_STRING_STRING :{STRING}{STRING}
|
||||
STR_JUST_RAW_STRING :{STRING}
|
||||
STR_JUST_BIG_RAW_STRING :{BIG_FONT}{STRING}
|
||||
|
@@ -5144,6 +5144,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Ŝanĝu
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Neniuj veturiloj dume haveblas
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Komencu novan ludon post {DATE_SHORT} aŭ uzu NewGRF-on kiu havebligas frutempajn veturilojn
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Ne povas igi vagonaron transiri signalon je danĝero...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Ne povas inversigi direkton de vagonaro...
|
||||
|
@@ -5334,6 +5334,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Muuda Ne
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Sõidukeid ei ole veel saadaval
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Alusta mängu pärast {DATE_SHORT} või kasuta NewGRF-i, milles on varasemaid sõidukeid
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Rongi ei saa ohu korral sundida signaale eirama...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Ei saa rongi ümber pöörata.
|
||||
|
@@ -184,7 +184,7 @@ STR_CONFIG_SETTING_STATION_RATING_SIZE_CARGO_AMOUNT :Station cargo c
|
||||
STR_CONFIG_SETTING_STATION_RATING_SIZE_CARGO_AMOUNT_HELPTEXT :When enabled, the cargo capacity of stations before waiting cargo is truncated and the effect of the waiting cargo amount on the station rating for that cargo depend on the size of the station. Larger stations can store more cargo and are more tolerant of large amounts of waiting cargo.
|
||||
|
||||
STR_CONFIG_SETTING_CARGO_DELIVERY_MODE :Cargo delivery distribution mode: {STRING2}
|
||||
STR_CONFIG_SETTING_CARGO_DELIVERY_MODE_HELPTEXT :The method used to deliver cargo to industries surrounding a station.
|
||||
STR_CONFIG_SETTING_CARGO_DELIVERY_MODE_HELPTEXT :The method used to distribute cargo delivered to a station to industries in the station's catchment area.{}The "original" mode distributes all cargo to the closest industry (measured from the station sign tile).{}The "balanced" mode distributes cargo equally to all accepting industries in the station's catchment area.
|
||||
|
||||
STR_CONFIG_SETTING_TRAIN_BRAKING_MODEL :Train braking model: {STRING2}
|
||||
STR_CONFIG_SETTING_TRAIN_BRAKING_MODEL_HELPTEXT :Select the physics model for train braking. The "original" model allows trains to stop instantly. In the "realistic" model, trains have a stopping distance and will reserve ahead accordingly, trains cannot stop instantly.{}{}The "realistic" model has many implications for signalling and track layout design, and is therefore an advanced feature which may not be suitable for beginners. In particular pre-signals and two-way signals are not permitted, and PBS is used for all signalling.
|
||||
@@ -816,6 +816,9 @@ STR_CONFIG_SETTING_SCENARIO_HOUSE_IGNORE_ZONES_ANYWHERE :Anywhere
|
||||
STR_CONFIG_SETTING_DRAG_SIGNALS_SKIP_STATIONS :When auto-fill dragging, continue past stations/waypoints: {STRING2}
|
||||
STR_CONFIG_SETTING_DRAG_SIGNALS_SKIP_STATIONS_HELPTEXT :Select the behaviour of signal placement when Ctrl+dragging signals. If disabled, signal placement stops when reaching a station/waypoint tile. If enabled, signal placement continues on the far side of rail stations/waypoints
|
||||
|
||||
STR_CONFIG_SETTING_DRAG_SIGNALS_STOP_RESTRICTED_SIGNAL :When removing signals using auto-fill drag, stop at restricted signals: {STRING2}
|
||||
STR_CONFIG_SETTING_DRAG_SIGNALS_STOP_RESTRICTED_SIGNAL_HELPTEXT :Select the behaviour of signal placement when removing signal using Ctrl+dragging. If enabled, removal of signals stops when reaching a signal with an attached routing restriction program
|
||||
|
||||
STR_CONFIG_SETTING_NETWORK_CHANGE_NOT_ALLOWED :{WHITE}Can't change setting...
|
||||
STR_CONFIG_SETTING_NETWORK_CHANGE_NOT_ALLOWED_NEWGRF :{WHITE}...setting is observed by a NewGRF
|
||||
|
||||
@@ -1959,6 +1962,7 @@ STR_ERROR_CAN_T_BUILD_ROAD_WAYPOINT :{WHITE}Can't bu
|
||||
STR_ERROR_CAN_T_REMOVE_ROAD_WAYPOINT :{WHITE}Can't remove road waypoint here...
|
||||
STR_ERROR_MUST_REMOVE_ROADWAYPOINT_FIRST :{WHITE}Must remove road waypoint first
|
||||
STR_ERROR_UNSUITABLE_SIGNAL_TYPE :{WHITE}... unsuitable signal type
|
||||
STR_ERROR_RESTRICTED_SIGNAL :{WHITE}... signal has attached routing restriction program
|
||||
STR_ERROR_SIGNAL_CHANGES :{WHITE}Number of programmable pre-signal evaluations exceeded limit
|
||||
|
||||
STR_ERROR_BRIDGE_TOO_LOW_FOR_STATION :{WHITE}Bridge is too low for station
|
||||
|
@@ -155,6 +155,13 @@ STR_CONFIG_SETTING_REALISTIC_BRAKING_ASPECT_LIMITED_HELPTEXT :No modelo de fr
|
||||
STR_CONFIG_SETTING_LIMIT_TRAIN_ACCELERATION :Limitar a aceleración dos trens: {STRING}
|
||||
STR_CONFIG_SETTING_LIMIT_TRAIN_ACCELERATION_HELPTEXT :Ao usar o modelo realista de frenado de trens, tamén limitar a aceleración máxima dos trens. Isto é para evitar que os pasaxeiros derramen as súas bebidas debido a que algúns tipos de trens aceleran excesivamente rápido..
|
||||
|
||||
STR_CONFIG_SETTING_TRAIN_ACC_BRAKING_PERCENT :Factor da escala de aceleración/freado do tren: {STRING}
|
||||
STR_CONFIG_SETTING_TRAIN_ACC_BRAKING_PERCENT_HELPTEXT :A porcentaxe pola que se axusta a aceleración e o frenado do tren.{}{}Esta configuración pode usarse para alterar a aceleración e o frenado dos trens, sen cambiar a velocidade máxima dos trens.
|
||||
STR_CONFIG_SETTING_TRAIN_ACC_BRAKING_PERCENT_VALUE :{COMMA}%
|
||||
|
||||
STR_CONFIG_SETTING_TRACK_EDIT_IGNORE_REALISTIC_BRAKING :A edición de vías ignora o frenado realista: {STRING}
|
||||
STR_CONFIG_SETTING_TRACK_EDIT_IGNORE_REALISTIC_BRAKING_HELPTEXT :Permitir que a edición de vías ignore o modelo de frenado realista dos trens. Cando está habilitado, non se aplican restricións á edición/eliminación da reserva dos trens en movemento. Isto pode resultar nun comportamento de frenado do tren non realista.
|
||||
|
||||
STR_CONFIG_SETTING_THROUGH_LOAD_SPEED_LIMIT :Velocidade máxima de carga en movemento do tren: {STRING}
|
||||
STR_CONFIG_SETTING_THROUGH_LOAD_SPEED_LIMIT_HELPTEXT :A velocidade máxima permitida os trens cando están cargando en movemento
|
||||
|
||||
@@ -1517,6 +1524,7 @@ STR_BUY_VEHICLE_TRAIN_RENAME_LOCOMOTIVE_BUTTON :{BLACK}Renomear
|
||||
STR_BUY_VEHICLE_TRAIN_RENAME_WAGON_BUTTON :{BLACK}Renomear vagón
|
||||
STR_BUY_VEHICLE_TRAIN_RENAME_LOCOMOTIVE_TOOLTIP :{BLACK}Renomear locomotora ou coche motriz
|
||||
STR_BUY_VEHICLE_TRAIN_RENAME_WAGON_TOOLTIP :{BLACK}Renomear vagón
|
||||
STR_BUY_VEHICLE_TRAIN_TOGGLE_DUAL_PANE_TOOLTIP :{BLACK}Alternar entre locomotoras e vagóns separados
|
||||
|
||||
STR_QUERY_RENAME_TRAIN_TYPE_LOCOMOTIVE_CAPTION :{WHITE}Renomear tipo de locomotora
|
||||
STR_QUERY_RENAME_TRAIN_TYPE_WAGON_CAPTION :{WHITE}Renomear tipo de vagón
|
||||
@@ -1665,8 +1673,12 @@ STR_ORDER_CONDITIONAL_COMPARATOR_DISPATCH_SLOT_IS_FIRST :é o primeiro s
|
||||
STR_ORDER_CONDITIONAL_COMPARATOR_DISPATCH_SLOT_IS_NOT_FIRST :non é o primeiro slot
|
||||
STR_ORDER_CONDITIONAL_COMPARATOR_DISPATCH_SLOT_IS_LAST :é o último slot
|
||||
STR_ORDER_CONDITIONAL_COMPARATOR_DISPATCH_SLOT_IS_NOT_LAST :non é o último slot
|
||||
|
||||
STR_ORDER_CONDITIONAL_COMPARATOR_DISPATCH_SLOT_HAS_TAG :ten a etiqueta {NUM}
|
||||
STR_ORDER_CONDITIONAL_COMPARATOR_DISPATCH_SLOT_HAS_TAG_NAMED :ten a etiqueta {NUM} ({STRING})
|
||||
|
||||
STR_ORDER_CONDITIONAL_COMPARATOR_DISPATCH_SLOT_DOESNT_HAVE_TAG :non ten a etiqueta {NUM}
|
||||
STR_ORDER_CONDITIONAL_COMPARATOR_DISPATCH_SLOT_DOESNT_HAVE_TAG_NAMED :non ten a etiqueta {NUM} ({STRING})
|
||||
|
||||
STR_ORDERS_MANAGE_LIST :{BLACK}Xestionar lista
|
||||
STR_ORDERS_MANAGE_LIST_TOOLTIP :{BLACK}Xestiona esta lista de ordes
|
||||
@@ -2133,10 +2145,16 @@ STR_SCHDISPATCH_APPEND_VEHICLE_SCHEDULES :{BLACK}Engadir
|
||||
STR_SCHDISPATCH_APPEND_VEHICLE_SCHEDULES_TOOLTIP :{BLACK}Engadir as programacións dende outro vehículo.
|
||||
STR_SCHDISPATCH_REUSE_DEPARTURE_SLOTS :Reutilizar franxas de saída
|
||||
STR_SCHDISPATCH_REUSE_DEPARTURE_SLOTS_TOOLTIP :{BLACK}Establecer se as franxas de saída poden ser usadas máis dunha vez.
|
||||
STR_SCHDISPATCH_RENAME_DEPARTURE_TAG :Renomear etiqueta {NUM}
|
||||
STR_SCHDISPATCH_RENAME_DEPARTURE_TAG_NAMED :Renomear etiqueta {NUM}: {STRING}
|
||||
STR_SCHDISPATCH_RENAME_DEPARTURE_TAG_TOOLTIP :{BLACK}Renomear etiquetas de slot de saída (para usar con ordes condicionais)
|
||||
STR_SCHDISPATCH_RENAME_DEPARTURE_TAG_CAPTION :{BLACK}Nomear a etiqueta do slot de saída
|
||||
STR_ERROR_CAN_T_RENAME_DEPARTURE_TAG :{WHITE}Non se pode nomear a etiqueta de saída...
|
||||
STR_SCHDISPATCH_MANAGE_SLOT :{BLACK}Xestionar Slot
|
||||
STR_SCHDISPATCH_REUSE_THIS_DEPARTURE_SLOT :Reutilizar este slot de saída
|
||||
STR_SCHDISPATCH_REUSE_THIS_DEPARTURE_SLOT_TOOLTIP :{BLACK}Establecer se a franxa de saída seleccionada pode ser utilizada máis dunha vez.
|
||||
STR_SCHDISPATCH_TAG_DEPARTURE :Etiqueta {NUM}
|
||||
STR_SCHDISPATCH_TAG_DEPARTURE_NAMED :Etiqueta {NUM}: {STRING}
|
||||
STR_SCHDISPATCH_TAG_DEPARTURE_TOOLTIP :{BLACK}Etiquetar a franxa de saída seleccionada (para usar con ordes condicionais).
|
||||
STR_SCHDISPATCH_NO_SCHEDULES :{BLACK}Sen programas
|
||||
STR_SCHDISPATCH_SCHEDULE_ID :{BLACK}Programa {NUM} de {NUM}
|
||||
@@ -2153,6 +2171,7 @@ STR_SCHDISPATCH_SLOT_TOOLTIP_NEXT :{}Seguinte slot
|
||||
STR_SCHDISPATCH_SLOT_TOOLTIP_REUSE :{}O slot de saída pódese usar máis dunha vez
|
||||
STR_SCHDISPATCH_SLOT_TOOLTIP_TIME_SUFFIX : ({TT_TIME})
|
||||
STR_SCHDISPATCH_SLOT_TOOLTIP_TAG :{}Etiqueta {NUM}
|
||||
STR_SCHDISPATCH_SLOT_TOOLTIP_TAG_NAMED :{}Etiqueta {NUM}: {STRING}
|
||||
|
||||
STR_SCHDISPATCH_SUMMARY_NO_LAST_DEPARTURE :{BLACK}Sen saídas previas.
|
||||
STR_SCHDISPATCH_SUMMARY_LAST_DEPARTURE_PAST :{BLACK}Última saída ás {TT_TIME}.
|
||||
|
@@ -155,6 +155,13 @@ STR_CONFIG_SETTING_REALISTIC_BRAKING_ASPECT_LIMITED_HELPTEXT :현실적 감
|
||||
STR_CONFIG_SETTING_LIMIT_TRAIN_ACCELERATION :열차 가속 제한: {STRING}
|
||||
STR_CONFIG_SETTING_LIMIT_TRAIN_ACCELERATION_HELPTEXT :현실적 열차 감속 모델을 사용할 경우, 열차의 최대 가속 또한 제한합니다. 이 설정은 일부 열차에서 지나치게 빠른 가속으로 인해 승객들이 음료수를 흘리는 것을 방지하기 위함입니다.
|
||||
|
||||
STR_CONFIG_SETTING_TRAIN_ACC_BRAKING_PERCENT :열차 감/가속 배수: {STRING}
|
||||
STR_CONFIG_SETTING_TRAIN_ACC_BRAKING_PERCENT_HELPTEXT :열차의 가속과 감속을 얼마나 조정할지에 대한 백분율 값입니다.{}{}이 설정은 열차의 최대 속력을 변경하지 않고 열차의 가속과 감속을 조절하는데 사용할 수 있습니다.
|
||||
STR_CONFIG_SETTING_TRAIN_ACC_BRAKING_PERCENT_VALUE :{COMMA}%
|
||||
|
||||
STR_CONFIG_SETTING_TRACK_EDIT_IGNORE_REALISTIC_BRAKING :선로 편집시 현실적 감속 무시: {STRING}
|
||||
STR_CONFIG_SETTING_TRACK_EDIT_IGNORE_REALISTIC_BRAKING_HELPTEXT :현실적 열차 감속 모델을 무시하고 선로를 편집하는 것을 허용합니다. 이 설정을 켜면, 움직이는 열차가 예약산 선로를 수정/제거하는 제한이 사라집니다. 이 경우 비현실적 감속이 발생할 수 있습니다.
|
||||
|
||||
STR_CONFIG_SETTING_THROUGH_LOAD_SPEED_LIMIT :차례로 나눠 실을 때 열차 속력: {STRING}
|
||||
STR_CONFIG_SETTING_THROUGH_LOAD_SPEED_LIMIT_HELPTEXT :역에서 열차가 화물을 차례로 나눠 실으며 움직일 때 열차의 최대 허용 속력입니다.
|
||||
|
||||
@@ -761,6 +768,9 @@ STR_CONFIG_SETTING_SCENARIO_HOUSE_IGNORE_ZONES_ANYWHERE :어디에나
|
||||
STR_CONFIG_SETTING_DRAG_SIGNALS_SKIP_STATIONS :드래그로 신호기 자동 설치시 역/경유지 무시: {STRING}
|
||||
STR_CONFIG_SETTING_DRAG_SIGNALS_SKIP_STATIONS_HELPTEXT :신호기를 CTRL + 드래그하여 놓을 때의 행동을 선택합니다. 이 설정을 끄면, 신호기는 역/경유지 칸까지만 설치됩니다. 이 설정을 켜면, 역/경유지의 너머까지 신호기가 계속 설치됩니다.
|
||||
|
||||
STR_CONFIG_SETTING_DRAG_SIGNALS_STOP_RESTRICTED_SIGNAL :드래그로 신호기를 자동 제거할 때, 경로 제한 신호기 앞에서 제거를 멈추기: {STRING}
|
||||
STR_CONFIG_SETTING_DRAG_SIGNALS_STOP_RESTRICTED_SIGNAL_HELPTEXT :CTRL+드래그를 이용하여 신호기를 제거할 때의 신호기 설치/제거 행동 방식을 선택합니다. 이 설정을 켜면, 신호기를 제거할 때 경로 제한 프로그램이 있는 신호기 앞에 있는 신호기까지만 제거될 것입니다.
|
||||
|
||||
STR_CONFIG_SETTING_NETWORK_CHANGE_NOT_ALLOWED :{WHITE}설정을 변경할 수 없습니다...
|
||||
STR_CONFIG_SETTING_NETWORK_CHANGE_NOT_ALLOWED_NEWGRF :{WHITE}...NewGRF가 사용 중인 설정입니다
|
||||
|
||||
@@ -1517,6 +1527,7 @@ STR_BUY_VEHICLE_TRAIN_RENAME_LOCOMOTIVE_BUTTON :{BLACK}기관
|
||||
STR_BUY_VEHICLE_TRAIN_RENAME_WAGON_BUTTON :{BLACK}객화차 이름 지정
|
||||
STR_BUY_VEHICLE_TRAIN_RENAME_LOCOMOTIVE_TOOLTIP :{BLACK}기관차나 동력차의 모델명을 변경합니다
|
||||
STR_BUY_VEHICLE_TRAIN_RENAME_WAGON_TOOLTIP :{BLACK}객화차의 모델명을 변경합니다
|
||||
STR_BUY_VEHICLE_TRAIN_TOGGLE_DUAL_PANE_TOOLTIP :{BLACK}기관차와 객화차 따로보기
|
||||
|
||||
STR_QUERY_RENAME_TRAIN_TYPE_LOCOMOTIVE_CAPTION :{WHITE}기관차의 모델명을 변경합니다
|
||||
STR_QUERY_RENAME_TRAIN_TYPE_WAGON_CAPTION :{WHITE}객화차의 모델명을 변경합니다
|
||||
@@ -1665,8 +1676,12 @@ STR_ORDER_CONDITIONAL_COMPARATOR_DISPATCH_SLOT_IS_FIRST :첫 번째 슬
|
||||
STR_ORDER_CONDITIONAL_COMPARATOR_DISPATCH_SLOT_IS_NOT_FIRST :첫 번째 슬롯이 아닐 때
|
||||
STR_ORDER_CONDITIONAL_COMPARATOR_DISPATCH_SLOT_IS_LAST :마지막 슬롯일 때
|
||||
STR_ORDER_CONDITIONAL_COMPARATOR_DISPATCH_SLOT_IS_NOT_LAST :마지막 슬롯이 아닐 때
|
||||
|
||||
STR_ORDER_CONDITIONAL_COMPARATOR_DISPATCH_SLOT_HAS_TAG :태그 {0:NUM}{P 0 "이" "가"} 있을 때
|
||||
STR_ORDER_CONDITIONAL_COMPARATOR_DISPATCH_SLOT_HAS_TAG_NAMED :태그 {0:NUM}({1:STRING}){P 0 "이" "가"} 있을 때
|
||||
|
||||
STR_ORDER_CONDITIONAL_COMPARATOR_DISPATCH_SLOT_DOESNT_HAVE_TAG :태그 {0:NUM}{P 0 "이" "가"} 없을 때
|
||||
STR_ORDER_CONDITIONAL_COMPARATOR_DISPATCH_SLOT_DOESNT_HAVE_TAG_NAMED :태그 {0:NUM}({1:STRING}){P 0 "이" "가"} 없을 때
|
||||
|
||||
STR_ORDERS_MANAGE_LIST :{BLACK}목록 관리
|
||||
STR_ORDERS_MANAGE_LIST_TOOLTIP :{BLACK}이 경로 목록 관리
|
||||
@@ -1893,6 +1908,7 @@ STR_ERROR_CAN_T_BUILD_ROAD_WAYPOINT :{WHITE}여기
|
||||
STR_ERROR_CAN_T_REMOVE_ROAD_WAYPOINT :{WHITE}이 도로 경유지를 제거할 수 없습니다...
|
||||
STR_ERROR_MUST_REMOVE_ROADWAYPOINT_FIRST :{WHITE}도로 경유지를 먼저 제거하십시오
|
||||
STR_ERROR_UNSUITABLE_SIGNAL_TYPE :{WHITE}... 적절하지 않은 신호기 종류입니다
|
||||
STR_ERROR_RESTRICTED_SIGNAL :{WHITE}... 신호기에 경로 제한 프로그램이 있습니다
|
||||
STR_ERROR_SIGNAL_CHANGES :{WHITE}프로그램 신호기가 한 번에 바꿀 수 있는 제한 횟수를 넘어섰습니다.
|
||||
|
||||
STR_ERROR_BRIDGE_TOO_LOW_FOR_STATION :{WHITE}여기에 역을 짓기에는 다리가 너무 낮습니다.
|
||||
@@ -2135,10 +2151,16 @@ STR_SCHDISPATCH_APPEND_VEHICLE_SCHEDULES :{BLACK}다른
|
||||
STR_SCHDISPATCH_APPEND_VEHICLE_SCHEDULES_TOOLTIP :{BLACK}다른 차량의 배차 일정을 덧붙입니다.
|
||||
STR_SCHDISPATCH_REUSE_DEPARTURE_SLOTS :출발 슬롯 재사용
|
||||
STR_SCHDISPATCH_REUSE_DEPARTURE_SLOTS_TOOLTIP :{BLACK}출발 슬롯을 1번 이상 재사용해도 되는지 여부를 설정합니다.
|
||||
STR_SCHDISPATCH_RENAME_DEPARTURE_TAG :태그 {NUM} 이름 바꾸기
|
||||
STR_SCHDISPATCH_RENAME_DEPARTURE_TAG_NAMED :태그 {NUM} 이름 바꾸기: {STRING}
|
||||
STR_SCHDISPATCH_RENAME_DEPARTURE_TAG_TOOLTIP :{BLACK}출발 슬롯 태그 이름 바꾸기 (조건부 경로에 사용)
|
||||
STR_SCHDISPATCH_RENAME_DEPARTURE_TAG_CAPTION :{BLACK}출발 슬롯 태그 이름 바꾸기
|
||||
STR_ERROR_CAN_T_RENAME_DEPARTURE_TAG :{WHITE}출발 슬롯 태그의 이름을 바꿀 수 없습니다...
|
||||
STR_SCHDISPATCH_MANAGE_SLOT :{BLACK}슬롯 관리
|
||||
STR_SCHDISPATCH_REUSE_THIS_DEPARTURE_SLOT :출발 슬롯 재사용
|
||||
STR_SCHDISPATCH_REUSE_THIS_DEPARTURE_SLOT_TOOLTIP :{BLACK}선택한 출발 슬롯을 1번 이상 재사용해도 되는지 여부를 설정합니다.
|
||||
STR_SCHDISPATCH_TAG_DEPARTURE :태그 {NUM}
|
||||
STR_SCHDISPATCH_TAG_DEPARTURE_NAMED :태그 {NUM}: {STRING}
|
||||
STR_SCHDISPATCH_TAG_DEPARTURE_TOOLTIP :{BLACK}(조건부 경로에 사용하기 위해) 선택한 출발 슬롯에 태그를 붙입니다.
|
||||
STR_SCHDISPATCH_NO_SCHEDULES :{BLACK}일정 없음
|
||||
STR_SCHDISPATCH_SCHEDULE_ID :{BLACK}일정 {NUM}/{NUM}
|
||||
@@ -2155,6 +2177,7 @@ STR_SCHDISPATCH_SLOT_TOOLTIP_NEXT :{}다음 이용
|
||||
STR_SCHDISPATCH_SLOT_TOOLTIP_REUSE :{}출발 슬롯을 1번 이상 재사용 가능함
|
||||
STR_SCHDISPATCH_SLOT_TOOLTIP_TIME_SUFFIX : ({TT_TIME})
|
||||
STR_SCHDISPATCH_SLOT_TOOLTIP_TAG :{}태그 {NUM}
|
||||
STR_SCHDISPATCH_SLOT_TOOLTIP_TAG_NAMED :{}태그 {NUM}: {STRING}
|
||||
|
||||
STR_SCHDISPATCH_SUMMARY_NO_LAST_DEPARTURE :{BLACK}이전 출발이 없습니다.
|
||||
STR_SCHDISPATCH_SUMMARY_LAST_DEPARTURE_PAST :{BLACK}최근 출발: {TT_TIME}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
STR_CONFIG_SETTING_TREE_PLACER_PERFECT :Превосходный
|
||||
|
||||
STR_CONFIG_SETTING_TREE_PLACER_HELPTEXT_EXTRA :{STRING}, 'Превосходный' улучшает распределение и группировку
|
||||
STR_CONFIG_SETTING_TREE_PLACER_HELPTEXT_EXTRA :{STRING} «Превосходный» улучшает распределение и группировку
|
||||
|
||||
STR_FINANCES_SECTION_INFRASTRUCTURE_COSTS :{GOLD}Совместное использование инфраструктуры
|
||||
STR_FINANCES_SECTION_INFRASTRUCTURE_INCOME :{GOLD}Совместное использование инфраструктуры
|
||||
@@ -15,14 +15,14 @@ STR_CONFIG_SETTING_ZOOM_LVL_OUT_128X :128x
|
||||
|
||||
STR_CONFIG_SETTING_DEFAULT_ROAD_TYPE_DEFAULT :По умолчанию
|
||||
|
||||
STR_ORDER_CONDITIONAL_CARGO_WAITING :Ждущий груз
|
||||
STR_ORDER_CONDITIONAL_CARGO_WAITING :Доступный груз
|
||||
STR_ORDER_CONDITIONAL_ACCEPTANCE_DROPDOWN :Принятый груз
|
||||
STR_ORDER_CONDITIONAL_FREE_PLATFORMS :Свободные платформы
|
||||
STR_ORDER_CONDITIONAL_PERCENT :Процент случаев
|
||||
STR_ORDER_CONDITIONAL_SLOT_OCCUPANCY :Заполненность слотов
|
||||
STR_ORDER_CONDITIONAL_TRAIN_IN_SLOT :Поезд в слоте
|
||||
STR_ORDER_CONDITIONAL_CARGO_LOAD_PERCENTAGE :Процент загрузки груза
|
||||
STR_ORDER_CONDITIONAL_CARGO_WAITING_AMOUNT :Количество ожидающих грузов
|
||||
STR_ORDER_CONDITIONAL_CARGO_WAITING_AMOUNT :Количество доступного груза
|
||||
STR_ORDER_CONDITIONAL_COUNTER_VALUE :Значение счётчика
|
||||
STR_ORDER_CONDITIONAL_TIME_DATE_VALUE :Текущее время/дата
|
||||
STR_ORDER_CONDITIONAL_TIMETABLE_STATE :Состояние расписания
|
||||
@@ -30,17 +30,17 @@ STR_ORDER_CONDITIONAL_DISPATCH_SLOT :Диспетч
|
||||
|
||||
STR_ORDER_STOP_LOCATION_THROUGH :[через нагрузку]
|
||||
|
||||
STR_CONFIG_SETTING_TOWN_GROWTH_EXTREME_SLOW :Крайне низкая
|
||||
STR_CONFIG_SETTING_TOWN_GROWTH_VERY_SLOW :Очень низкая
|
||||
STR_CONFIG_SETTING_TOWN_GROWTH_EXTREME_SLOW :крайне низкая
|
||||
STR_CONFIG_SETTING_TOWN_GROWTH_VERY_SLOW :очень низкая
|
||||
|
||||
STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_MINUTES_CUSTOM :Каждые {COMMA}{NBSP}минут{P 0 а ы ""}
|
||||
|
||||
STR_RIVERS_VERY_MANY :{RED}Очень большое
|
||||
STR_RIVERS_EXTREMELY_MANY :{RED}Крайне большое
|
||||
|
||||
STR_CONFIG_SETTING_BRIBE_HELPTEXT_PERIODS :Разрешите компаниям попробовать подкупить местные городские власти. Если взятка будет замечена инспектором, компания не сможет действовать в городе в течение полугода
|
||||
STR_CONFIG_SETTING_BRIBE_HELPTEXT_PERIODS :Разрешить компаниям подкупать городскую администрацию. Если взятка будет замечена инспектором, компания не сможет действовать в городе в течение полугода.
|
||||
|
||||
STR_CONFIG_SETTING_ALLOW_EXCLUSIVE_HELPTEXT_PERIODS :Если компания покупает эксклюзивные права на перевозку в городе, станции соперников (пассажирские и грузовые) не будут получать грузы в течение одного периода
|
||||
STR_CONFIG_SETTING_ALLOW_EXCLUSIVE_HELPTEXT_PERIODS :Если компания покупает эксклюзивные права на перевозку в городе, станции соперников (пассажирские и грузовые) не будут получать грузы в течение одного периода.
|
||||
|
||||
STR_COMMA_SEPARATOR :,{SP}
|
||||
|
||||
@@ -51,11 +51,11 @@ STR_UNIT_NAME_VELOCITY_GAMEUNITS :клеток/д
|
||||
STR_UNIT_NAME_VELOCITY_GAMEUNITS_WALLCLOCK :клеток/сек
|
||||
|
||||
STR_UNITS_SECONDS_SHORT :{COMMA}{NBSP}с
|
||||
STR_UNITS_PRODUCTION_INTERVALS :{NUM}{NBSP}производственный интервал{P "" а ов}
|
||||
STR_UNITS_PRODUCTION_INTERVALS :{NUM}{NBSP}интервал{P "" а ов} производства
|
||||
|
||||
STR_BUTTON_RENAME :{BLACK}Переименовать
|
||||
|
||||
STR_MEASURE_DIST_HEIGHTDIFF :{BLACK}Расстояние «Манхэттэн»: {NUM}{}Расстояние по прямой: {NUM}{}Расстояние от ближайшего края: {NUM}{}Высота над уровнем моря: {HEIGHT}{}Разница высот: {HEIGHT}
|
||||
STR_MEASURE_DIST_HEIGHTDIFF :{BLACK}Манхэттенское расстояние: {NUM}{}Расстояние по прямой: {NUM}{}Расстояние от ближайшего края: {NUM}{}Высота над уровнем моря: {HEIGHT}{}Разница высот: {HEIGHT}
|
||||
|
||||
STR_SORT_BY_PROFIT_LIFETIME :Пожизненная прибыль
|
||||
STR_SORT_BY_AVG_ORDER_OCCUPANCY :Средняя наполняемость заказа
|
||||
@@ -81,10 +81,10 @@ STR_VEHICLE_TYPE_AIRCRAFT :Авиатра
|
||||
STR_GRAPH_CARGO_PAYMENT_RATES_X_LABEL_SPEED :{TINY_FONT}{BLACK}Средняя скорость доставки ({STRING})
|
||||
STR_GRAPH_CARGO_PAYMENT_RATES_TITLE_AVG_SPEED :{TINY_FONT}{BLACK}Оплата за доставку 1 единицы (или 1000 литров) груза на расстояние 200 квадратов
|
||||
STR_GRAPH_CARGO_PAYMENT_RATES_X_LABEL_MINUTES :{TINY_FONT}{BLACK}Минут в пути
|
||||
STR_GRAPH_STATION_CARGO_CAPTION :{WHITE}{STATION} - История ожидающих грузов
|
||||
STR_GRAPH_STATION_CARGO_CAPTION :{WHITE}{STATION} - История доступного груза
|
||||
STR_GRAPH_STATION_CARGO_X_LABEL_DAYS :{TINY_FONT}{BLACK}Развитие за последние {NUM} дней
|
||||
STR_GRAPH_STATION_CARGO_X_LABEL_SECONDS :{TINY_FONT}{BLACK}Развитие за последние {NUM} секунд
|
||||
STR_GRAPH_STATION_CARGO_TITLE :{TINY_FONT}{BLACK}Единицы груза, ожидающие на станции
|
||||
STR_GRAPH_STATION_CARGO_TITLE :{TINY_FONT}{BLACK}Единицы груза, доступные на станции
|
||||
|
||||
STR_GRAPH_CARGO_SPEED_MODE :{TINY_FONT}{BLACK}Средняя скорость
|
||||
STR_GRAPH_CARGO_TOOLTIP_TIME_MODE :{BLACK}Отображение времени в пути на оси X графика
|
||||
@@ -102,20 +102,20 @@ STR_SMALLMAP_SCREENSHOT :{BLACK}Скри
|
||||
STR_NEWS_VEHICLE_NO_DEPOT_ORDER :{WHITE}{VEHICLE} не имеет заказа на депо в своем расписании
|
||||
STR_NEWS_TRAIN_OVERSHOT_STATION :{WHITE}{VEHICLE} не смог остановиться в {STRING} из-за чрезмерной скорости
|
||||
|
||||
STR_NEWS_ROAD_REBUILDING_PERIODS :{BIG_FONT}{BLACK}Дорожный хаос в {TOWN}!{}{}Программа реконструкции дорог, профинансированая {STRING} принесёт автомобилистам полгода страданий!
|
||||
STR_NEWS_EXCLUSIVE_RIGHTS_DESCRIPTION_PERIOD :{BIG_FONT}{BLACK}Администрация города {TOWN} подписала контракт с {STRING} на 1 период эксклюзивных транспортных прав!
|
||||
STR_NEWS_ROAD_REBUILDING_PERIODS :{BIG_FONT}{BLACK}Дорожный хаос в городе {TOWN}!{}{}Программа реконструкции дорог, профинансированая компанией {STRING} принесёт автомобилистам полгода страданий!
|
||||
STR_NEWS_EXCLUSIVE_RIGHTS_DESCRIPTION_PERIOD :{BIG_FONT}{BLACK}Администрация города {TOWN} подписала контракт с компанией {STRING} на 1 период эксклюзивных транспортных прав!
|
||||
|
||||
STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_MINUTES_CUSTOM_LABEL :Пользовательский интервал (минуты реального времени)
|
||||
STR_GAME_OPTIONS_AUTOSAVE_MINUTES_QUERY_CAPT :{WHITE}Интервал автосохранения в минутах реального времени
|
||||
|
||||
STR_CONFIG_SETTING_ADVISED_LEAVE_DEFAULT :Рекомендуется оставить это значение по умолчанию.
|
||||
|
||||
STR_CONFIG_SETTING_TRAIN_BRAKING_REALISTIC :Реалистичная {PUSH_COLOUR}{RED}(Эксперт){POP_COLOUR}
|
||||
STR_CONFIG_SETTING_TRAIN_BRAKING_REALISTIC :реалистичное {PUSH_COLOUR}{RED}(эксперт){POP_COLOUR}
|
||||
STR_CONFIG_SETTING_TRAIN_BRAKING_ASPECT_LIMITED_ON :На {PUSH_COLOUR}{RED}(Эксперт, Сложно){POP_COLOUR}
|
||||
|
||||
STR_CONFIG_SETTING_REALISTIC_BRAKING_SIGNALS_NOT_ALLOWED :{WHITE}Реалистичное торможение не может быть включено. Присутствует хотя бы один предварительный или двусторонний сигнал.
|
||||
|
||||
STR_CONFIG_SETTING_DELIVERY_BALANCED :Сбалансированная
|
||||
STR_CONFIG_SETTING_DELIVERY_BALANCED :сбалансированное
|
||||
|
||||
STR_CONFIG_SETTING_RUNNING_COSTS_IN_DEPOT :Эксплуатационные расходы на транспортные средства в депо: {STRING}
|
||||
STR_CONFIG_SETTING_RUNNING_COSTS_IN_DEPOT_HELPTEXT :Установить уровень затрат на техническое обслуживание и эксплуатацию транспортных средств в ожидании в депо (без остановок)
|
||||
@@ -134,8 +134,8 @@ STR_CONFIG_SETTING_RENAME_TOWNS_MULTIPLAYER_HELPTEXT :Если эта
|
||||
STR_CONFIG_SETTING_OVERRIDE_TOWN_SETTINGS_MULTIPLAYER :Позволить многопользовательским клиентам изменять настройки города: {STRING}
|
||||
STR_CONFIG_SETTING_OVERRIDE_TOWN_SETTINGS_MULTIPLAYER_HELPTEXT :Если эта функция включена, то многопользовательские клиенты, не являющиеся администраторами и зрителями, смогут изменять настройки каждого конкретного города. Это всегда доступно в одиночной игре, а также администратору многопользовательского сервера.
|
||||
|
||||
STR_CONFIG_SETTING_CATCHMENT_INCREASE :Увеличение зоны покрытия станции: {STRING}
|
||||
STR_CONFIG_SETTING_CATCHMENT_INCREASE_HELPTEXT :Увеличить зону покрытия станции на указанное количество клеток
|
||||
STR_CONFIG_SETTING_CATCHMENT_INCREASE :Увеличить охват станции на: {STRING}
|
||||
STR_CONFIG_SETTING_CATCHMENT_INCREASE_HELPTEXT :Увеличение области, обслуживаемой станцией, на указанное количество клеток.
|
||||
|
||||
STR_CONFIG_SETTING_STATION_RATING_CARGO_CLASS_WAIT_TIME :Отношение станций к времени ожидания зависит от класса груза: {STRING}
|
||||
STR_CONFIG_SETTING_STATION_RATING_CARGO_CLASS_WAIT_TIME_HELPTEXT:Если включено, то время ожидания с момента последнего получения груза влияет на рейтинг станции для этого груза в зависимости от класса груза. Пассажиры, почта, ценности, рефрижераторные грузы и экспресс-грузы в разной степени менее терпимы к ожиданию. Наливные и жидкие грузы более терпимы.
|
||||
@@ -143,11 +143,11 @@ STR_CONFIG_SETTING_STATION_RATING_CARGO_CLASS_WAIT_TIME_HELPTEXT:Если вкл
|
||||
STR_CONFIG_SETTING_STATION_RATING_SIZE_CARGO_AMOUNT :Вместимость станции и допустимый рейтинг зависят от её размера: {STRING}
|
||||
STR_CONFIG_SETTING_STATION_RATING_SIZE_CARGO_AMOUNT_HELPTEXT :Если включено, то вместимость станций перед ожиданием груза усекается, и влияние количества ожидающего груза на рейтинг станции для этого груза зависит от размера станции. Более крупные станции могут хранить больше грузов и более терпимы к большому количеству ожидающих грузов.
|
||||
|
||||
STR_CONFIG_SETTING_CARGO_DELIVERY_MODE :Режим распределения доставки грузов: {STRING}
|
||||
STR_CONFIG_SETTING_CARGO_DELIVERY_MODE_HELPTEXT :Метод, используемый для доставки грузов на предприятия, расположенные вокруг станции.
|
||||
STR_CONFIG_SETTING_CARGO_DELIVERY_MODE :Распределение доставленных грузов: {STRING}
|
||||
STR_CONFIG_SETTING_CARGO_DELIVERY_MODE_HELPTEXT :Каким должно быть распределение прибывших на станцию грузов по предприятиям, расположенным в её зоне охвата. {}«Оригинальное» - распределяет все грузы по ближайшим предприятиям (измеряется от клетки со знаком станции).{}«Сбалансированное» - распределяет грузы поровну между всеми принимающими предприятиями в зоне охвата станции.
|
||||
|
||||
STR_CONFIG_SETTING_TRAIN_BRAKING_MODEL :Модель торможения поезда: {STRING}
|
||||
STR_CONFIG_SETTING_TRAIN_BRAKING_MODEL_HELPTEXT :Выберите физическую модель торможения поезда. "Оригинальное" позволяет поездам останавливаться мгновенно. При "реалистичной" модели у поездов появится тормозной путь, они будут соответствующе резервировать его и не смогут останавливаться мгновенно.{}{}"Реалистичная" Модель имеет множество ограничений для сигнализации и проектирования путей, поэтому является продвинутой функцией, которая может не подойти новичкам. В частности, не допускаются предварительные и двусторонние сигналы, и везде используюся маршрутные семафоры.
|
||||
STR_CONFIG_SETTING_TRAIN_BRAKING_MODEL :Модель торможения поездов: {STRING}
|
||||
STR_CONFIG_SETTING_TRAIN_BRAKING_MODEL_HELPTEXT :Настройка физической модели торможения поездов. «Оригинальная» позволяет поездам останавливаться мгновенно. При «реалистичной» модели у поездов появится тормозной путь, они будут соответствующе резервировать его и не смогут останавливаться мгновенно.{}{}«Реалистичная» модель имеет множество ограничений для сигнализации и проектирования путей, поэтому является продвинутой функцией, которая может не подойти новичкам. В частности, не допускаются предварительные и двусторонние сигналы, и везде используюся маршрутные семафоры.
|
||||
|
||||
STR_CONFIG_SETTING_REALISTIC_BRAKING_ASPECT_LIMITED :Реалистичное торможение поезда ограничено аспектами: {STRING}
|
||||
STR_CONFIG_SETTING_REALISTIC_BRAKING_ASPECT_LIMITED_HELPTEXT :При реалистичной модели торможения поезда ограничить опережающее движение поездов аспектом сигналов (то есть запретить резервировать и опережать неограниченное количество сигналов).{}Для этого необходимы NewGRF, которые обеспечивают многоаспектные сигналы.{}{}Это экспертная настройка, которая, вероятно, повысит сложность игры и потребует дополнительных размышлений о типах и размещении сигналов.
|
||||
@@ -155,6 +155,13 @@ STR_CONFIG_SETTING_REALISTIC_BRAKING_ASPECT_LIMITED_HELPTEXT :При реал
|
||||
STR_CONFIG_SETTING_LIMIT_TRAIN_ACCELERATION :Ограничение ускорения поезда: {STRING}
|
||||
STR_CONFIG_SETTING_LIMIT_TRAIN_ACCELERATION_HELPTEXT :При использовании реалистичной модели торможения поездов также ограничьте максимальное ускорение поездов. Это необходимо для того, чтобы пассажиры не пролили свои напитки из-за чрезмерно быстрого ускорения некоторых типов поездов.
|
||||
|
||||
STR_CONFIG_SETTING_TRAIN_ACC_BRAKING_PERCENT :Коэффициент масштабирования ускорения/торможения поезда: {STRING}
|
||||
STR_CONFIG_SETTING_TRAIN_ACC_BRAKING_PERCENT_HELPTEXT :Процент, на который регулируется ускорение и торможение поезда.{}{}Эта настройка может использоваться для изменения ускорения и торможения поездов без изменения их максимальной скорости.
|
||||
STR_CONFIG_SETTING_TRAIN_ACC_BRAKING_PERCENT_VALUE :{COMMA}%
|
||||
|
||||
STR_CONFIG_SETTING_TRACK_EDIT_IGNORE_REALISTIC_BRAKING :Редактирование путей игнорирует реалистичное торможение: {STRING}
|
||||
STR_CONFIG_SETTING_TRACK_EDIT_IGNORE_REALISTIC_BRAKING_HELPTEXT :Разрешить редактировать пути, игнорируя реалистичную модель торможения поезда. Если включено, ограничения на редактирование/снятие резервирования движущихся поездов не применяются. Это может привести к нереалистичному поведению поезда при торможении.
|
||||
|
||||
STR_CONFIG_SETTING_THROUGH_LOAD_SPEED_LIMIT :Максимальная скорость поездов при сквозной погрузе: {STRING}
|
||||
STR_CONFIG_SETTING_THROUGH_LOAD_SPEED_LIMIT_HELPTEXT :Максимальная разрешенная скорость движения поездов при сквозной погрузке на станции
|
||||
|
||||
@@ -176,13 +183,13 @@ STR_CONFIG_SETTING_SHIP_COLLISION_AVOIDANCE :Корабли
|
||||
STR_CONFIG_SETTING_SHIP_COLLISION_AVOIDANCE_HELPTEXT :Если включено, то корабли будут пытаться не проходить через друг друга. Наилучшие результаты достигаются при запрете поворотов на 90°.
|
||||
|
||||
STR_CONFIG_SETTING_CHUNNEL :Разрешить строительство туннелей под водой: {STRING}
|
||||
STR_CONFIG_SETTING_CHUNNEL_HELPTEXT :Если включено, то туннели можно будет прокладывать под водоемами на уровне моря. На каждом конце туннеля зазор между туннелем и береговой клеткой должен составлять {NUM} и {NUM} клеток.
|
||||
STR_CONFIG_SETTING_CHUNNEL_HELPTEXT :Если включено, то туннели можно будет прокладывать под водоёмами на уровне моря. На каждом конце туннеля зазор между туннелем и береговой клеткой должен составлять {NUM} и {NUM} клеток.
|
||||
|
||||
STR_CONFIG_SETTING_NO_TRAIN_CRASH_OTHER_COMPANY :Поезда разных компаний не смогут врезаться друг в друга: {STRING}
|
||||
STR_CONFIG_SETTING_NO_TRAIN_CRASH_OTHER_COMPANY_HELPTEXT :Эта настройка предназначена в первую очередь для того, чтобы игроки намеренно не вызывали крушения поездов других компаний в многопользовательских играх с совместным использованием железнодорожной инфраструктуры.
|
||||
|
||||
STR_CONFIG_SETTING_ROADVEH_ARTICULATED_OVERTAKING :Сочлененные автотранспорты могут совершать обгон: {STRING}
|
||||
STR_CONFIG_SETTING_ROADVEH_ARTICULATED_OVERTAKING_HELPTEXT :Позволить сочлененным дорожным траспортным средствам обгонять другие.
|
||||
STR_CONFIG_SETTING_ROADVEH_ARTICULATED_OVERTAKING :Сочленённые автотранспорты могут совершать обгон: {STRING}
|
||||
STR_CONFIG_SETTING_ROADVEH_ARTICULATED_OVERTAKING_HELPTEXT :Позволить сочленённым дорожным траспортным средствам обгонять другие.
|
||||
|
||||
STR_CONFIG_SETTING_ROADVEH_CANT_QUANTUM_TUNNEL :Автотранспорты не проходят друг через друга при блокировке: {STRING}
|
||||
STR_CONFIG_SETTING_ROADVEH_CANT_QUANTUM_TUNNEL_HELPTEXT :Запретить проезд одних дорожных транспортных средств через другие, если их путь перекрыт в течение длительного периода времени.
|
||||
@@ -195,10 +202,10 @@ STR_CONFIG_SETTING_WARN_RESTRICTION_WAIT_VEHICLE_HELPTEXT :Запуск с
|
||||
|
||||
STR_CONFIG_SETTING_WARN_NO_DEPOT_ORDER :Предупреждать, если у транспортного средства нет заказа на депо: {STRING}
|
||||
STR_CONFIG_SETTING_WARN_NO_DEPOT_ORDER_HELPTEXT :Если эта функция включена, а также если включен просмотр заказов на транспортные средства, отправляется сообщение, когда поезд, автотранспорт или судно не имеет заказа на депо в своем расписании.
|
||||
STR_CONFIG_SETTING_WARN_NO_DEPOT_ORDER_IF_BREAKDOWNS_ON :Если включены поломки транспортных средств
|
||||
STR_CONFIG_SETTING_WARN_NO_DEPOT_ORDER_IF_BREAKDOWNS_ON :если включены поломки транспортных средств
|
||||
|
||||
STR_CONFIG_SETTING_NO_EXPIRE_VEHICLES_AFTER :Срок эксплуатации транспортных средств не истекает после: {STRING}
|
||||
STR_CONFIG_SETTING_NO_EXPIRE_VEHICLES_AFTER_HELPTEXT :Транспортные средства, срок эксплуатации которых закончился бы в этом году, будут доступны всегда.{}Снижение надежности двигателя также прекращается по достижении этого года
|
||||
STR_CONFIG_SETTING_NO_EXPIRE_VEHICLES_AFTER_HELPTEXT :Транспортные средства, срок эксплуатации которых закончился бы в этом году, будут доступны всегда.{}Снижение надёжности двигателя также прекращается по достижении этого года
|
||||
STR_CONFIG_SETTING_NO_EXPIRE_VEHICLES_AFTER_VALUE :{NUM}
|
||||
STR_CONFIG_SETTING_NO_EXPIRE_VEHICLES_AFTER_ZERO :Отключено
|
||||
|
||||
@@ -220,12 +227,12 @@ STR_CONFIG_SETTING_SHOW_TRAIN_WEIGHT_RATIOS_IN_DETAILS :Показыв
|
||||
STR_CONFIG_SETTING_SHOW_TRAIN_WEIGHT_RATIOS_IN_DETAILS_HELPTEXT :Демонстрировать соотношение веса поезда в окне сведений о транспортном средстве
|
||||
|
||||
STR_CONFIG_SETTING_SHOW_RESTRICTED_SIG_RECOLOUR :Отображать сигналы ограничения по умолчанию синими сигнальными столбиками: {STRING}
|
||||
STR_CONFIG_SETTING_SHOW_RESTRICTED_SIG_RECOLOUR_HELPTEXT :При использовании графики сигналов по умолчанию электрические сигналы с программами ограничения маршрутизации отображаются синим сигнальным столбиком. Не влияет на графику сигналов из NewGRF. Это сделано для того, чтобы легче было визуально различать запрещенные сигналы.
|
||||
STR_CONFIG_SETTING_SHOW_RESTRICTED_SIG_RECOLOUR_HELPTEXT :При использовании графики сигналов по умолчанию электрические сигналы с программами ограничения маршрутизации отображаются синим сигнальным столбиком. Не влияет на графику сигналов из NewGRF. Это сделано для того, чтобы легче было визуально различать запрещённые сигналы.
|
||||
|
||||
STR_CONFIG_SETTING_SHOW_ALL_SIG_DEF :Показывать все сигналы, используя графику по умолчанию: {STRING}
|
||||
STR_CONFIG_SETTING_SHOW_ALL_SIG_DEF_HELPTEXT :Показывать все сигналы, используя графику сигналов по умолчанию, вместо любой графики сигналов из NewGRF. Необходимо для того, чтобы было проще определить состояние и тип сигналов, если в NewGRF представлены нечеткие или недоступные сигнальные графики.
|
||||
STR_CONFIG_SETTING_SHOW_ALL_SIG_DEF_HELPTEXT_EXTRA :{STRING}{}Режим "Только для запрещенных сигналов" использует графику сигналов по умолчанию для электрических сигналов с подключенными программами ограничения маршрутизации, когда перекрашивание сигнальных столбиков включено и NewGRF не обрабатывает различные графики для сигналов с ограничением самостоятельно.
|
||||
STR_CONFIG_SETTING_SHOW_ALL_SIG_RESTRICTED_RECOLOUR :Только для запрещенных сигналов
|
||||
STR_CONFIG_SETTING_SHOW_ALL_SIG_DEF_HELPTEXT_EXTRA :{STRING}{}Режим «Только для запрещённых сигналов» использует графику сигналов по умолчанию для электрических сигналов с подключенными программами ограничения маршрутизации, когда перекрашивание сигнальных столбиков включено и NewGRF не обрабатывает различные графики для сигналов с ограничением самостоятельно.
|
||||
STR_CONFIG_SETTING_SHOW_ALL_SIG_RESTRICTED_RECOLOUR :Только для запрещённых сигналов
|
||||
|
||||
STR_CONFIG_SETTING_SHOW_ADV_TRACE_RESTRICT_FEATURES :Показывать расширенные функции ограничения маршрутизации: {STRING}
|
||||
STR_CONFIG_SETTING_SHOW_ADV_TRACE_RESTRICT_FEATURES_HELPTEXT :Показывать расширенные возможности ограничения маршрутизации. Если отключено, то некоторые расширенные возможности не будут отображаться в пользовательском интерфейсе, но останутся доступными всем игрокам.
|
||||
@@ -242,8 +249,8 @@ STR_CONFIG_SETTING_SHOW_ADV_LOADING_MODE_FEATURES_HELPTEXT :Показыв
|
||||
STR_CONFIG_SETTING_DISABLE_TOP_VEH_LIST_MASS_ACTIONS :Отключить кнопки массовых действий для списков транспортных средств верхнего уровня: {STRING}
|
||||
STR_CONFIG_SETTING_DISABLE_TOP_VEH_LIST_MASS_ACTIONS_HELPTEXT :Отключить депо/сервис и кнопки запуска/остановки для всех транспортных средств и всех негруппированных списков транспортных средств. Это сделано для того, чтобы избежать негативных последствий случайного нажатия одной из этих кнопок.
|
||||
|
||||
STR_CONFIG_SETTING_SHOW_DEPOT_SELL_GUI :Отображать функцию "отправить в депо/ангар и продать": {STRING}
|
||||
STR_CONFIG_SETTING_SHOW_DEPOT_SELL_GUI_HELPTEXT :Отображать функцию для отправки транспортного средства в депо/ангар с последующей продажей. Если включено, то Ctrl+щелчок по кнопке "Перейти в депо" в окне транспортного средства позволит изменить режим работы текущего заказ на депо.
|
||||
STR_CONFIG_SETTING_SHOW_DEPOT_SELL_GUI :Отображать функцию «отправить в депо/ангар и продать»: {STRING}
|
||||
STR_CONFIG_SETTING_SHOW_DEPOT_SELL_GUI_HELPTEXT :Отображать функцию для отправки транспортного средства в депо/ангар с последующей продажей. Если включено, то Ctrl+щелчок по кнопке «Перейти в депо» в окне транспортного средства позволит изменить режим работы текущего заказ на депо.
|
||||
|
||||
STR_CONFIG_SETTING_OPEN_VEHICLE_GUI_CLONE_SHARE :Открывать окно нового транспортного средства при клонировании с общими заказами: {STRING}
|
||||
STR_CONFIG_SETTING_OPEN_VEHICLE_GUI_CLONE_SHARE_HELPTEXT :Если включено, то при клонировании транспортного средства с общими заказами из окна депо открывается окно нового клонированного транспортного средства.
|
||||
@@ -269,7 +276,7 @@ STR_CONFIG_SETTING_DUAL_PANE_TRAIN_PURCHASE_WINDOW_HELPTEXT :Если вкл
|
||||
STR_CONFIG_SETTING_DUAL_PANE_TRAIN_PURCHASE_WINDOW_DUAL_BUTTONS :Отображать отдельные наборы кнопок в окне покупки поезда: {STRING}
|
||||
STR_CONFIG_SETTING_DUAL_PANE_TRAIN_PURCHASE_WINDOW_DUAL_BUTTONS_HELPTEXT:Если включено, то списки вагонов и локомотивов в окне покупки поездов будут иметь свой собственный набор кнопок.
|
||||
|
||||
STR_CONFIG_SETTING_ALLOW_HIDE_WAYPOINT_LABEL :Разрешить скрывать метки в окне просмотра путевых точек: {STRING}
|
||||
STR_CONFIG_SETTING_ALLOW_HIDE_WAYPOINT_LABEL :Скрывать метки в окне просмотра путевых точек: {STRING}
|
||||
STR_CONFIG_SETTING_ALLOW_HIDE_WAYPOINT_LABEL_HELPTEXT :Если включено, то ярлыки путевых точек могут быть скрыты по отдельности.{}Полезно, когда незначительные путевые точки не требуют обозначения или путевые точки используются декоративно.
|
||||
|
||||
STR_CONFIG_SETTING_DISABLE_WATER_ANIMATION :Отключить анимацию воды: {STRING}
|
||||
@@ -306,9 +313,9 @@ STR_CONFIG_SHOW_VEHICLE_RUNNING_COSTS_CALENDAR_YEAR :Показыв
|
||||
STR_CONFIG_SHOW_VEHICLE_RUNNING_COSTS_CALENDAR_YEAR_HELPTEXT :При использовании коэффициента продолжительности дня больше единицы, показывать эксплуатационные расходы транспортного средства за календарный год (в режиме календаря) или за период (в режиме реального времени), а не за оригинальный год.
|
||||
|
||||
STR_CONFIG_SETTING_ADV_SIG_BRIDGE_TUN_MODES :Включить сигналы на мостах/туннелях в расширенных режимах: {STRING}
|
||||
STR_CONFIG_SETTING_ADV_SIG_BRIDGE_TUN_MODES_HELPTEXT :Включить использование расширенного режима моделирования сигналов на мостах и в туннелях. Если отключено, то мосты/туннели, которые еще не находятся в расширенном режиме, не смогут быть переведены в него, однако другие игроки могут включить этот параметр и использовать расширенный режим.
|
||||
STR_CONFIG_SETTING_ADV_SIG_BRIDGE_TUN_MODES_HELPTEXT :Включить использование расширенного режима моделирования сигналов на мостах и в туннелях. Если отключено, то мосты/туннели, которые ещё не находятся в расширенном режиме, не смогут быть переведены в него, однако другие игроки могут включить этот параметр и использовать расширенный режим.
|
||||
|
||||
STR_CONFIG_SETTING_SORT_TRACK_TYPES_BY_SPEED :Сортировать типов дорожек по скорости: {STRING}
|
||||
STR_CONFIG_SETTING_SORT_TRACK_TYPES_BY_SPEED :Сортировать типы дорожек по скорости: {STRING}
|
||||
STR_CONFIG_SETTING_SORT_TRACK_TYPES_BY_SPEED_HELPTEXT :Сортировать типы дорожек по совместимости и по скорости вместо сортировки по умолчанию.
|
||||
|
||||
STR_CONFIG_SETTING_MAX_SIGNAL_EVALUATIONS :Максимальное количество программируемых изменений предварительного сигнала, разрешенных одновременно: {STRING}
|
||||
@@ -405,7 +412,7 @@ STR_CONFIG_SETTING_VIEWPORT_MAP_DEFAULT_MODE_HELPTEXT :Режим от
|
||||
STR_CONFIG_SETTING_VIEWPORT_MAP_ACTION_DBLCLICK :Функция двойного клика: {STRING}
|
||||
STR_CONFIG_SETTING_VIEWPORT_MAP_ACTION_DBLCLICK_HELPTEXT :Какое действие следует выполнять при двойном щелчке на окне просмотра при уменьшении масштаба в режиме карты.
|
||||
STR_CONFIG_SETTING_VIEWPORT_MAP_ACTION_DBLCLICK_DO_NOTHING :Ничего не делать
|
||||
STR_CONFIG_SETTING_VIEWPORT_MAP_ACTION_DBLCLICK_ZOOM_MAIN :Увеличьте масштаб прямо на 1x
|
||||
STR_CONFIG_SETTING_VIEWPORT_MAP_ACTION_DBLCLICK_ZOOM_MAIN :Увеличить масштаб прямо на 1x
|
||||
STR_CONFIG_SETTING_VIEWPORT_MAP_ACTION_DBLCLICK_NEW_EXTRA :Открыть дополнительное окно просмотра
|
||||
|
||||
STR_CONFIG_SETTING_VIEWPORT_MAP_SHOW_VEHICLE_ROUTE :Показывать линии наложения маршрутов транспортных средств: {STRING}
|
||||
@@ -456,10 +463,10 @@ STR_CONFIG_SETTING_DATE_WITH_TIME_HELPTEXT :Показыв
|
||||
STR_CONFIG_SETTING_CLOCK_OFFSET :Смещение часов в минутах: {STRING}
|
||||
STR_CONFIG_SETTING_CLOCK_OFFSET_HELPTEXT :Количество минут, на которое смещены игровые часы
|
||||
|
||||
STR_CONFIG_SETTING_DATE_WITH_TIME_NONE :Нет
|
||||
STR_CONFIG_SETTING_DATE_WITH_TIME_Y :Год
|
||||
STR_CONFIG_SETTING_DATE_WITH_TIME_YM :Месяц и год
|
||||
STR_CONFIG_SETTING_DATE_WITH_TIME_YMD :Полная дата
|
||||
STR_CONFIG_SETTING_DATE_WITH_TIME_NONE :нет
|
||||
STR_CONFIG_SETTING_DATE_WITH_TIME_Y :год
|
||||
STR_CONFIG_SETTING_DATE_WITH_TIME_YM :месяц и год
|
||||
STR_CONFIG_SETTING_DATE_WITH_TIME_YMD :полная дата
|
||||
|
||||
STR_CONFIG_SETTING_TIMETABLE_START_TEXT_ENTRY :Введите время начала расписания в виде текста (необходимо указать время в минутах): {STRING}
|
||||
STR_CONFIG_SETTING_TIMETABLE_START_TEXT_ENTRY_HELPTEXT :Выберите, можно ли вводить время начала расписания в виде текста, если время показывается в минутах.
|
||||
@@ -480,7 +487,7 @@ STR_CONFIG_SETTING_SCHEDULED_DISPATCH_DEFAULT_DURATION_VALUE :{COMMA}{NBSP}м
|
||||
STR_CONFIG_SETTING_SCHEDULED_DISPATCH_DEFAULT_DURATION_DEFAULT :По умолчанию
|
||||
|
||||
STR_CONFIG_SETTING_DEFAULT_ROAD_TYPE :Типы дорог/трамвайных путей по умолчанию (после запуска новой игры/загрузки): {STRING}
|
||||
STR_CONFIG_SETTING_DEFAULT_ROAD_TYPE_HELPTEXT :Выбор типа дороги/трамвайных путей после запуска новой игры или загрузки старой. 'первые доступные' выбирает самый старый тип дороги/трамвайного пути, 'последние доступные' выбирает самый новый тип дороги/трамвайного пути, 'наиболее используемые' выбирает тип, который наиболее часто используется в настоящее время, и 'по умолчанию' выбирает тип по умолчанию.
|
||||
STR_CONFIG_SETTING_DEFAULT_ROAD_TYPE_HELPTEXT :Выбор типа дороги/трамвайных путей после запуска новой игры или загрузки старой. «Первые доступные» выбирает самый старый тип дороги/трамвайного пути, «последние доступные» выбирает самый новый тип дороги/трамвайного пути, «наиболее используемые» выбирает тип, который наиболее часто используется в настоящее время, и «по умолчанию» выбирает тип по умолчанию.
|
||||
|
||||
STR_CONFIG_SETTING_ENABLE_BUILD_RIVER :Включить строительство рек: {STRING}
|
||||
STR_CONFIG_SETTING_ENABLE_BUILD_RIVER_HELPTEXT :Разрешить прокладывать реки не только в редакторе сценариев
|
||||
@@ -501,10 +508,10 @@ STR_CONFIG_SETTING_SHARING_PAYMENT_IN_DEBT :Разреши
|
||||
STR_CONFIG_SETTING_SHARING_USED_BY_VEHICLES :Невозможно изменить этот параметр - транспортные средства используют инфраструктуру чужих компаний.
|
||||
STR_CONFIG_SETTING_SHARING_ORDERS_TO_OTHERS :Невозможно изменить этот параметр - у транспортных средств есть задания с пунктами назначения в инфраструктуре чужих компаний.
|
||||
|
||||
STR_CONFIG_SETTING_INFRA_OTHERS_BUY_IN_DEPOT_RAIL :Позволять конкурентам покупать и обновлять поезда в депо: {STRING}
|
||||
STR_CONFIG_SETTING_INFRA_OTHERS_BUY_IN_DEPOT_ROAD :Позволить конкурентам покупать и обновлять автотранспорт в депо: {STRING}
|
||||
STR_CONFIG_SETTING_INFRA_OTHERS_BUY_IN_DEPOT_WATER :Позволить конкурентам покупать и обновлять корабли в депо: {STRING}
|
||||
STR_CONFIG_SETTING_INFRA_OTHERS_BUY_IN_DEPOT_AIR :Позволить конкурентам покупать и обновлять авиатранспорт в ангарах: {STRING}
|
||||
STR_CONFIG_SETTING_INFRA_OTHERS_BUY_IN_DEPOT_RAIL :Конкуренты могут покупать и обновлять поезда в депо: {STRING}
|
||||
STR_CONFIG_SETTING_INFRA_OTHERS_BUY_IN_DEPOT_ROAD :Конкуренты могут покупать и обновлять автотранспорт в депо: {STRING}
|
||||
STR_CONFIG_SETTING_INFRA_OTHERS_BUY_IN_DEPOT_WATER :Конкуренты могут покупать и обновлять корабли в депо: {STRING}
|
||||
STR_CONFIG_SETTING_INFRA_OTHERS_BUY_IN_DEPOT_AIR :Конкуренты могут покупать и обновлять авиатранспорт в ангарах: {STRING}
|
||||
|
||||
STR_CONFIG_SETTING_TRAIN_SPEED_ADAPTATION :Включить адаптацию скорости поезда: {STRING}
|
||||
STR_CONFIG_SETTING_TRAIN_SPEED_ADAPTATION_HELPTEXT :Если включено, более быстрые поезда регулируют свою скорость, чтобы соответствовать более медленным поездам впереди.
|
||||
@@ -516,7 +523,7 @@ STR_CONFIG_SETTING_SIMULATE_SIGNALS :Симуляц
|
||||
STR_CONFIG_SETTING_SIMULATE_SIGNALS_HELPTEXT :Устанавливает целевое расстояние между светофорами для новых мостов и туннелей. Фактическое расстояние может немного отличаться от указанного, чтобы избежать неравномерного расположения. Изменение этого параметра не приводит к переоборудованию существующих мостов и туннелей со светофорами.
|
||||
STR_CONFIG_SETTING_SIMULATE_SIGNALS_VALUE :{COMMA} клет{P ку ки ок}
|
||||
|
||||
STR_CONFIG_SETTING_DAY_LENGTH_FACTOR :Коэффициент продолжительности дня: {STRING}
|
||||
STR_CONFIG_SETTING_DAY_LENGTH_FACTOR :Фактор продолжительности дня: {STRING}
|
||||
STR_CONFIG_SETTING_DAY_LENGTH_FACTOR_HELPTEXT :Темп игры замедляется из-за этого фактора.
|
||||
|
||||
STR_CONFIG_SETTING_TOWN_TUNNELS :Строительство тоннелей городами: {STRING}
|
||||
@@ -534,13 +541,13 @@ STR_CONFIG_SETTING_TOWN_MAX_ROAD_SLOPE_ZERO :Нет
|
||||
STR_CONFIG_SETTING_ALLOW_TOWN_BRIDGES :Города могут строить мосты: {STRING}
|
||||
STR_CONFIG_SETTING_ALLOW_TOWN_BRIDGES_HELPTEXT :Включение этой настройки разрешает городам строить мосты
|
||||
|
||||
STR_CONFIG_SETTING_INDUSTRY_CARGO_SCALE_HELPTEXT_EXTRA :{STRING}{}Сюда не входят предприятия, занимающиеся вырубкой деревьев.{}Не гарантируется полная совместимость со всеми NewGRFs с предприятиями.
|
||||
STR_CONFIG_SETTING_INDUSTRY_CARGO_SCALE_HELPTEXT_EXTRA :{STRING}{}Не действует на предприятия, занимающиеся вырубкой деревьев.{}Не гарантируется полная совместимость со всеми NewGRF предприятиями.
|
||||
|
||||
STR_CONFIG_SETTING_TOWN_CARGO_SCALE_MODE :Временной интервал для масштабирования производства грузов городов: {STRING}
|
||||
STR_CONFIG_SETTING_INDUSTRY_CARGO_SCALE_MODE :Временной интервал для масштабирования производства грузов предприятий: {STRING}
|
||||
STR_CONFIG_SETTING_TOWN_CARGO_SCALE_MODE :Временной интервал для умножения производства грузов городами: {STRING}
|
||||
STR_CONFIG_SETTING_INDUSTRY_CARGO_SCALE_MODE :Временной интервал для умножения производства грузов предприятиями: {STRING}
|
||||
|
||||
STR_CONFIG_SETTING_CARGO_SCALE_MODE_HELPTEXT :Ежемесячно/каждый производственный интервал: Производство груза за месяц или производственный интервал масштабируется.{}{}Игровое время: производство груза за единицу игрового времени масштабируется, (производство груза за месяц или производственный интервал также масштабируется коэффициентом продолжительности дня). Очень высокие коэффициенты масштабирования могут быть недостижимы.
|
||||
STR_CONFIG_SETTING_INDUSTRY_CARGO_SCALE_MODE_HELPTEXT_EXTRA :{STRING}{}Не гарантируется, что режим игрового времени будет полностью совместим со всеми NewGRFs с предприятиями.
|
||||
STR_CONFIG_SETTING_CARGO_SCALE_MODE_HELPTEXT :Ежемесячно/каждый производственный интервал: производство груза за месяц или производственный интервал умножается.{}{}Игровое время: производство груза за единицу игрового времени умножается, (производство груза за месяц или производственный интервал также умножается коэффициентом продолжительности дня). Очень высокие коэффициенты умножения могут быть недостижимы.
|
||||
STR_CONFIG_SETTING_INDUSTRY_CARGO_SCALE_MODE_HELPTEXT_EXTRA :{STRING}{}Не гарантируется, что режим игрового времени будет полностью совместим со всеми NewGRF предприятиями.
|
||||
|
||||
STR_CONFIG_SETTING_CARGO_SCALE_MODE_MONTHLY :Ежемесячно
|
||||
STR_CONFIG_SETTING_CARGO_SCALE_MODE_GAME_TIME :Игровое время
|
||||
@@ -556,10 +563,10 @@ STR_CONFIG_SETTING_TOWN_ABOVE_HEIGHT :Никаких
|
||||
STR_CONFIG_SETTING_TOWN_ABOVE_HEIGHT_HELPTEXT :Во время создания карты не строятся города выше указанного уровня высоты.
|
||||
|
||||
STR_CONFIG_SETTING_MIN_TOWN_LAND_AREA :Минимальная площадь прилегающей территории для городов: {STRING}
|
||||
STR_CONFIG_SETTING_MIN_TOWN_LAND_AREA_HELPTEXT :Города могут быть размещены только на смежных территориях, занимающих как минимум столько клеток.
|
||||
STR_CONFIG_SETTING_MIN_TOWN_LAND_AREA_HELPTEXT :Города могут быть размещены только на примыкающих территориях, занимающих как минимум столько клеток.
|
||||
|
||||
STR_CONFIG_SETTING_MIN_CITY_LAND_AREA :Минимальная площадь прилегающей территории для мегаполисов: {STRING}
|
||||
STR_CONFIG_SETTING_MIN_CITY_LAND_AREA_HELPTEXT :Мегаполисы могут быть размещены только на смежных территориях, занимающих как минимум столько клеток.
|
||||
STR_CONFIG_SETTING_MIN_CITY_LAND_AREA_HELPTEXT :Мегаполисы могут быть размещены только на примыкающих территориях, занимающих как минимум столько клеток.
|
||||
|
||||
STR_CONFIG_SETTING_MIN_LAND_AREA_VALUE :{NUM}
|
||||
STR_CONFIG_SETTING_MIN_LAND_AREA_ZERO :Отсутсвует
|
||||
@@ -567,7 +574,7 @@ STR_CONFIG_SETTING_MIN_LAND_AREA_ZERO :Отсутсв
|
||||
STR_CONFIG_SETTING_FLOOD_FROM_EDGES :Вода заливает края карты: {STRING}
|
||||
STR_CONFIG_SETTING_FLOOD_FROM_EDGES_HELPTEXT :Заливает ли вода крайние плитки на уровне моря от края карты.
|
||||
|
||||
STR_CONFIG_SETTING_MAP_EDGE_MODE :Поведение краёв карты: {STRING}
|
||||
STR_CONFIG_SETTING_MAP_EDGE_MODE :Режим краёв карты: {STRING}
|
||||
STR_CONFIG_SETTING_MAP_EDGE_MODE_HELPTEXT :Разрешается ли поднимать края карты над уровнем моря и как отображается пустота за пределами карты
|
||||
STR_CONFIG_SETTING_MAP_EDGE_MODE_DEFAULT :По умолчанию
|
||||
STR_CONFIG_SETTING_MAP_EDGE_MODE_SEA_LEVEL :Края карты ограничены уровнем моря
|
||||
@@ -581,7 +588,7 @@ STR_CONFIG_SETTING_TREES_AROUND_SNOWLINE_DYNAMIC_RANGE :Сезонна
|
||||
STR_CONFIG_SETTING_TREES_AROUND_SNOWLINE_DYNAMIC_RANGE_HELPTEXT :При использовании сезонно изменяющейся снеговой линии, какой процент от вариации снеговой линии использовать в качестве снеговой линии для размещения арктических деревьев. 0% использует нижнюю (зимнюю) снеговую линию, 100% использует весь диапазон между летней и зимней снеговыми линиями.
|
||||
|
||||
STR_CONFIG_SETTING_BUILD_PUBLIC_ROADS :Построить общественные дороги, соединяющие города: {STRING}
|
||||
STR_CONFIG_SETTING_BUILD_PUBLIC_ROADS_HELPTEXT :Создаёт общественные дороги, соединяющие города. Занимает некоторое время на больших картах. 'Строить без изгибов' генерирует дороги, которые избегают изгибы и создают соединения, очень похожие на сетку.
|
||||
STR_CONFIG_SETTING_BUILD_PUBLIC_ROADS_HELPTEXT :Создаёт общественные дороги, соединяющие города. Занимает некоторое время на больших картах. «Строить без изгибов» генерирует дороги, которые избегают изгибы и создают соединения, очень похожие на сетку.
|
||||
STR_CONFIG_SETTING_BUILD_PUBLIC_ROADS_NONE :Нет (по умолчанию)
|
||||
STR_CONFIG_SETTING_BUILD_PUBLIC_ROADS_WITH_CURVES :Строить с изгибами
|
||||
STR_CONFIG_SETTING_BUILD_PUBLIC_ROADS_AVOID_CURVES :Стройть без изгибов
|
||||
@@ -639,9 +646,9 @@ STR_CONFIG_SETTING_TOWN_MIN_DISTANCE_HELPTEXT :Устанав
|
||||
|
||||
STR_CONFIG_SETTING_DISTRIBUTION_PER_CARGO :Переопределение режима распределения для этого груза: {STRING}
|
||||
STR_CONFIG_SETTING_DISTRIBUTION_PER_CARGO_PARAM :Переопределение режима распределения для {STRING}: {STRING}
|
||||
STR_CONFIG_SETTING_DISTRIBUTION_PER_CARGO_HELPTEXT :"(по умолчанию)" означает, что режим распределения является стандартным для класса этого груза. "симметричный" означает, что со станции А на станцию Б будет отправлено примерно столько же грузов, сколько со станции Б на А. "асимметричный" означает, что произвольное количество груза может быть отправлено в любом направлении. "ручной" означает, что для этого груза не будет проводиться автоматическое распределение.
|
||||
STR_CONFIG_SETTING_DISTRIBUTION_PER_CARGO_HELPTEXT :«(по умолчанию)» означает, что режим распределения является стандартным для класса этого груза. «симметричный» означает, что со станции А на станцию Б будет отправлено примерно столько же грузов, сколько со станции Б на А. «асимметричный» означает, что произвольное количество груза может быть отправлено в любом направлении. «ручной» означает, что для этого груза не будет проводиться автоматическое распределение.
|
||||
STR_CONFIG_SETTING_DISTRIBUTION_PER_CARGO_DEFAULT :(по умолчанию)
|
||||
STR_CONFIG_SETTING_DISTRIBUTION_HELPTEXT_EXTRA :{STRING}{}"асимметричный (равномерное распределение)" означает, что груз будет распределен таким образом, что каждая принимающая станция получит примерно одинаковое количество груза в целом. "асимметричный (ближайший)" означает, что груз будет отправляться на ту станцию, которая находится ближе всего.
|
||||
STR_CONFIG_SETTING_DISTRIBUTION_HELPTEXT_EXTRA :{STRING}{}«Асимметричный (равномерное распределение)» означает, что груз будет распределен таким образом, что каждая принимающая станция получит примерно одинаковое количество груза в целом. «Асимметричный (ближайший)» означает, что груз будет отправляться на ту станцию, которая находится ближе всего.
|
||||
|
||||
STR_CONFIG_SETTING_AIRCRAFT_PATH_COST :Масштаб расстояния путей, на которых используется авиатранспорт: {STRING}
|
||||
STR_CONFIG_SETTING_AIRCRAFT_PATH_COST_HELPTEXT :Увеличивает стоимость (метрику расстояния) путей, использующих авиатранспорт, так что они кажутся более длинными/менее прямыми, чем есть на самом деле. Снижает вероятность того, что прямые маршруты с использованием самолетов окажутся сильно перегруженными.
|
||||
@@ -665,14 +672,14 @@ STR_CONFIG_SETTING_SHARING :{ORANGE}Сов
|
||||
STR_CONFIG_SETTING_SCENARIO_EDITOR :{ORANGE}Редактор сценариев
|
||||
|
||||
STR_CONFIG_SETTING_REROUTE_RV_ON_LAYOUT_CHANGE :Изменять маршрут движения автотранспорта при изменении планировки дороги: {STRING}
|
||||
STR_CONFIG_SETTING_REROUTE_RV_ON_LAYOUT_CHANGE_HELPTEXT :Нужно ли изменять маршрут всех автотранспортных средств на карте при изменении схемы дорог.{}Это может повысить скорость реагирования автотранспорта на изменение планировки дороги за счет снижения производительности.{}Обратите внимание, что если установить значение "Да", то рост города может вызвать изменение маршрута движения транспорта, что может привести к замедлению работы на больших картах.
|
||||
STR_CONFIG_SETTING_REROUTE_RV_ON_LAYOUT_CHANGE_HELPTEXT :Нужно ли изменять маршрут всех автотранспортных средств на карте при изменении схемы дорог.{}Это может повысить скорость реагирования автотранспорта на изменение планировки дороги за счет снижения производительности.{}Обратите внимание, что если установить значение «Да», то рост города может вызвать изменение маршрута движения транспорта, что может привести к замедлению работы на больших картах.
|
||||
STR_CONFIG_SETTING_REROUTE_RV_ON_LAYOUT_CHANGE_NO :Нет
|
||||
STR_CONFIG_SETTING_REROUTE_RV_ON_LAYOUT_CHANGE_REMOVE_ONLY :Только при удалении дорог
|
||||
STR_CONFIG_SETTING_REROUTE_RV_ON_LAYOUT_CHANGE_YES :Да
|
||||
|
||||
STR_CONFIG_SETTING_ENABLE_ROAD_CUSTOM_BRIDGE_HEADS :Включить настриваемые опоры дорожных мостов: {STRING}
|
||||
STR_CONFIG_SETTING_ENABLE_ROAD_CUSTOM_BRIDGE_HEADS :Включить настраиваемые опоры дорожных мостов: {STRING}
|
||||
STR_CONFIG_SETTING_ENABLE_ROAD_CUSTOM_BRIDGE_HEADS_HELPTEXT :Позволяет дорожным мостам иметь пользовательские, непрямые плоские клетки для въезда/выезда
|
||||
STR_CONFIG_SETTING_ENABLE_RAIL_CUSTOM_BRIDGE_HEADS :Включить настриваемые опоры железнодорожных мостов: {STRING}
|
||||
STR_CONFIG_SETTING_ENABLE_RAIL_CUSTOM_BRIDGE_HEADS :Включить настраиваемые опоры железнодорожных мостов: {STRING}
|
||||
STR_CONFIG_SETTING_ENABLE_RAIL_CUSTOM_BRIDGE_HEADS_HELPTEXT :Позволяет железнодорожным мостам иметь нестандартные, непрямые плоские клетки для въезда/выезда
|
||||
|
||||
STR_CONFIG_SETTING_ALLOW_GRF_OBJECTS_UNDER_BRIDGES :Разрешить все объекты NewGRF под мостами: {STRING}
|
||||
@@ -705,7 +712,7 @@ STR_CONFIG_SETTING_IGNORE_OBJECT_INTRO_DATES_HELPTEXT :Установ
|
||||
STR_CONFIG_SETTING_ALLOW_CONVERT_TOWN_ROAD_NO_HOUSES :Разрешить переоборудование городских дорог под дороги, не предназначенные для жилых домов: {STRING}
|
||||
STR_CONFIG_SETTING_ALLOW_CONVERT_TOWN_ROAD_NO_HOUSES_HELPTEXT :Могут ли игроки переводить дороги, принадлежащие городу, в тип дороги, не позволяющий строить дома.{}По умолчанию - отключено, поскольку может помешать городам строить дома, что приведет к уменьшению городов.
|
||||
|
||||
STR_CONFIG_SETTING_PURCHASED_LAND_CLEAR_GROUND :Использовать чисткю клетку грунта для приобретенной земли: {STRING}
|
||||
STR_CONFIG_SETTING_PURCHASED_LAND_CLEAR_GROUND :Использовать чистую клетку грунта для приобретенной земли: {STRING}
|
||||
STR_CONFIG_SETTING_PURCHASED_LAND_CLEAR_GROUND_HELPTEXT :Если эта функция включена, то купленная земля будет отображаться с использованием того же типа грунта, что и клетки чистой земли, то емть голая земля - трава, побережье, снег, пустыня и так далее.
|
||||
|
||||
STR_CONFIG_SETTING_SPAWN_PRIMARY_INDUSTRY_ONLY :Генерировать только сырьевые предприятия: {STRING}
|
||||
@@ -744,7 +751,7 @@ STR_CONFIG_SETTING_COPY_CLONE_ADD_TO_GROUP_HELPTEXT :Установ
|
||||
STR_CONFIG_SETTING_REMAIN_IF_NEXT_ORDER_SAME_STATION :Остаться на станции, если следующее задание касается той же станции: {STRING}
|
||||
STR_CONFIG_SETTING_REMAIN_IF_NEXT_ORDER_SAME_STATION_HELPTEXT :Если следующее задание транспортного средства относится к той же станции, с которой оно собиралось уехать, начать погрузку/разгрузку снова, а не уезжать.
|
||||
|
||||
STR_CONFIG_SETTING_SCENARIO_MULTIPLE_BUILDINGS :Разрешить множественные церкви/стадионы: {STRING}
|
||||
STR_CONFIG_SETTING_SCENARIO_MULTIPLE_BUILDINGS :Разрешить несколько церквей/стадионов: {STRING}
|
||||
STR_CONFIG_SETTING_SCENARIO_MULTIPLE_BUILDINGS_HELPTEXT :Позволяет вручную добавлять церкви и стадионы, если они уже есть в городе.
|
||||
|
||||
STR_CONFIG_SETTING_SCENARIO_HOUSE_IGNORE_DATES :Игнорировать ограничения года постройки дома: {STRING}
|
||||
@@ -761,6 +768,9 @@ STR_CONFIG_SETTING_SCENARIO_HOUSE_IGNORE_ZONES_ANYWHERE :Где угод
|
||||
STR_CONFIG_SETTING_DRAG_SIGNALS_SKIP_STATIONS :При перетаскивании автозаполнения продолжать движение мимо станций/маршрутных точек: {STRING}
|
||||
STR_CONFIG_SETTING_DRAG_SIGNALS_SKIP_STATIONS_HELPTEXT :Выберите поведение размещения светофоров при Ctrl+перетаскивание светофоров. Если отключено, то размещение светофора прекращается при достижении станции/маршрутной точки. Если включено, то размещение светофоров продолжается на дальней стороне железнодорожных станций/маршрутных точек.
|
||||
|
||||
STR_CONFIG_SETTING_DRAG_SIGNALS_STOP_RESTRICTED_SIGNAL :При удалении сигналов с помощью автозаполнения останавливаться на запрещённых сигналах: {STRING}
|
||||
STR_CONFIG_SETTING_DRAG_SIGNALS_STOP_RESTRICTED_SIGNAL_HELPTEXT :Выберите поведение размещения сигнала при удалении сигнала с помощью Ctrl+перетаскивание. Если включено, то удаление сигналов прекращается при достижении сигнала с установленной программой ограничения маршрутизации.
|
||||
|
||||
STR_CONFIG_SETTING_NETWORK_CHANGE_NOT_ALLOWED :{WHITE}Невозможно изменить настройку...
|
||||
STR_CONFIG_SETTING_NETWORK_CHANGE_NOT_ALLOWED_NEWGRF :{WHITE}...ею управляет NewGRF
|
||||
|
||||
@@ -769,15 +779,15 @@ STR_CONFIG_SETTING_TIMETABLE_IN_TICKS_HELPTEXT :Время пу
|
||||
|
||||
STR_CONFIG_SETTING_PATHFINDER_FOR_TRAINS_HELPTEXT_EXTRA :{STRING}{}Различные функции требуют использования алгоритма поиска пути YAPF, в том числе: ограничения маршрута (все действия, связанные с поиском пути и резервированием), разворот на маршрутной точке/светофоре и проезд через железнодорожные депо.
|
||||
|
||||
STR_CONFIG_SETTING_DISABLED_TIMEKEEPING_MODE_CALENDAR :{RED}[Настройка отсключена при системе отчёта времени "Календарь"]
|
||||
STR_CONFIG_SETTING_DISABLED_TIMEKEEPING_MODE_WALLCLOCK :{RED}[Настройка отсключена при системе отчёта времени "Реальное время"]
|
||||
STR_CONFIG_SETTING_DISABLED_TIMEKEEPING_MODE_CALENDAR :{RED}[Настройка отсключена при системе отчёта времени «Календарь»]
|
||||
STR_CONFIG_SETTING_DISABLED_TIMEKEEPING_MODE_WALLCLOCK :{RED}[Настройка отсключена при системе отчёта времени «Реальное время»]
|
||||
|
||||
STR_CHEAT_EDIT_MONEY_QUERY_CAPT :{WHITE}Увеличить или уменьшить количество денег
|
||||
STR_CHEAT_INFLATION_COST :{LTBLUE}Изменение уровня инфляции: {ORANGE}{DECIMAL}
|
||||
STR_CHEAT_INFLATION_COST_QUERY_CAPT :{WHITE}Изменение уровня инфляции
|
||||
STR_CHEAT_INFLATION_INCOME :{LTBLUE}Изменение уровня инфляции доходов: {ORANGE}{DECIMAL}
|
||||
STR_CHEAT_INFLATION_INCOME_QUERY_CAPT :{WHITE}Изменение уровня инфляции доходов
|
||||
STR_CHEAT_TOWN_RATING :{LTBLUE}Рейтинг у городской администрации зафиксирован на "Великолепном" уровне: {ORANGE}{STRING}
|
||||
STR_CHEAT_TOWN_RATING :{LTBLUE}Рейтинг у городской администрации зафиксирован на «Великолепном» уровне: {ORANGE}{STRING}
|
||||
|
||||
STR_NETWORK_MESSAGE_GIVE_MONEY_RECEIVE :*** {STRING} даёт вашей компании {2:CURRENCY_LONG}
|
||||
STR_NETWORK_MESSAGE_GAVE_MONEY_AWAY :*** Вы дали {1:STRING} {2:CURRENCY_LONG}
|
||||
@@ -825,7 +835,7 @@ STR_TRACE_RESTRICT_VARIABLE_TRAIN_LENGTH :длина по
|
||||
STR_TRACE_RESTRICT_VARIABLE_MAX_SPEED :максимальная скорость
|
||||
STR_TRACE_RESTRICT_VARIABLE_CURRENT_ORDER :текущее задание
|
||||
STR_TRACE_RESTRICT_VARIABLE_NEXT_ORDER :следующее задание
|
||||
STR_TRACE_RESTRICT_VARIABLE_LAST_VISITED_STATION :последняя посещенная станция
|
||||
STR_TRACE_RESTRICT_VARIABLE_LAST_VISITED_STATION :последняя посещённая станция
|
||||
STR_TRACE_RESTRICT_VARIABLE_CARGO :груз
|
||||
STR_TRACE_RESTRICT_VARIABLE_LOAD_PERCENT :процент загрузки
|
||||
STR_TRACE_RESTRICT_VARIABLE_ENTRY_DIRECTION :направление входа
|
||||
@@ -1086,8 +1096,8 @@ STR_TRACE_RESTRICT_ERROR_VALUE_TOO_LARGE :{WHITE}Знач
|
||||
STR_TRACE_RESTRICT_ERROR_NO_PROGRAM :Нет программы
|
||||
STR_TRACE_RESTRICT_ERROR_OFFSET_TOO_LARGE :Слишком большое смещение
|
||||
STR_TRACE_RESTRICT_ERROR_CAN_T_CHANGE_CONDITIONALITY :Невозможно изменить условия
|
||||
STR_TRACE_RESTRICT_ERROR_CAN_T_REMOVE_ENDIF :Невозможно удалить 'конец если'
|
||||
STR_TRACE_RESTRICT_ERROR_CAN_T_SHALLOW_REMOVE_IF_ELIF :Нельзя неглубоко удалить блок 'если' с одним или несколькими блоками 'иначе если', 'или если' или 'иначе'.
|
||||
STR_TRACE_RESTRICT_ERROR_CAN_T_REMOVE_ENDIF :Невозможно удалить «конец если»
|
||||
STR_TRACE_RESTRICT_ERROR_CAN_T_SHALLOW_REMOVE_IF_ELIF :Нельзя неглубоко удалить блок «если» с одним или несколькими блоками «иначе если», «или если» или «иначе».
|
||||
STR_TRACE_RESTRICT_ERROR_VALIDATE_END_CONDSTACK :Проверка не удалась: кондстек не пуст при выходе
|
||||
STR_TRACE_RESTRICT_ERROR_VALIDATE_NO_IF :Проверка не удалась: иначе/конец если без открывающего если
|
||||
STR_TRACE_RESTRICT_ERROR_VALIDATE_DUP_ELSE :Проверка не удалась: дублирующийся иначе
|
||||
@@ -1225,10 +1235,10 @@ STR_SELECT_TOWN_LIST_ITEM :{BLACK}{TOWN}
|
||||
STR_TREES_REMOVE_TREES_BUTTON :{BLACK}Удалить все деревья
|
||||
STR_TREES_REMOVE_TREES_TOOLTIP :{BLACK}Удалить все деревья над ландшафтом
|
||||
|
||||
STR_TERRAFORM_PUBLIC_ROADS :{BLACK}Строить общественные дороги
|
||||
STR_TERRAFORM_PUBLIC_ROADS_TOOLTIP :{BLACK}Создайте общественные дороги между городами на карте
|
||||
STR_TERRAFORM_PUBLIC_ROADS :{BLACK}Построить общественные дороги
|
||||
STR_TERRAFORM_PUBLIC_ROADS_TOOLTIP :{BLACK}Создать общественные дороги между городами на карте
|
||||
|
||||
STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP_ALL :Все предпрятия
|
||||
STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP_ALL :Все предприятия
|
||||
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PROGSIGNALS :Железнодорожный путь с программируемыми пресигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRY2SIGNALS :Железнодорожный путь с невходящими сигналами
|
||||
@@ -1303,7 +1313,7 @@ STR_NEWGRF_ERROR_UNIMPLEMETED_MAPPED_PROPERTY :Нереали
|
||||
STR_NEWGRF_ERROR_UNIMPLEMETED_MAPPED_ACTION5_TYPE :Нереализованный тип ремаппинга Action 5: название: {2:STRING}, сопоставленный с: {4:HEX} (спрайт {3:NUM})
|
||||
|
||||
STR_NEWGRF_TOO_MANY_STRINGS :{WHITE}Недостаточно идентификаторов строк для всех NewGRF.
|
||||
STR_NEWGRF_TOO_MANY_STRINGS_DETAIL :{WHITE}Некоторые имена и текстовые поля могут отображаться некорректно. Попробуйте использовать меньше NewGRFs.
|
||||
STR_NEWGRF_TOO_MANY_STRINGS_DETAIL :{WHITE}Некоторые имена и текстовые поля могут отображаться некорректно. Попробуйте использовать меньше модулей NewGRF.
|
||||
|
||||
STR_TOWN_VIEW_NOISE_IN_TOWN_NO_LIMIT :{BLACK}Предельный уровень шума в городе: {ORANGE}{COMMA}
|
||||
|
||||
@@ -1666,8 +1676,12 @@ STR_ORDER_CONDITIONAL_COMPARATOR_DISPATCH_SLOT_IS_FIRST :первый с
|
||||
STR_ORDER_CONDITIONAL_COMPARATOR_DISPATCH_SLOT_IS_NOT_FIRST :не первый слот
|
||||
STR_ORDER_CONDITIONAL_COMPARATOR_DISPATCH_SLOT_IS_LAST :последний слот
|
||||
STR_ORDER_CONDITIONAL_COMPARATOR_DISPATCH_SLOT_IS_NOT_LAST :не последний слот
|
||||
|
||||
STR_ORDER_CONDITIONAL_COMPARATOR_DISPATCH_SLOT_HAS_TAG :имеет метку {NUM}
|
||||
STR_ORDER_CONDITIONAL_COMPARATOR_DISPATCH_SLOT_HAS_TAG_NAMED :имеет метку {NUM} ({STRING})
|
||||
|
||||
STR_ORDER_CONDITIONAL_COMPARATOR_DISPATCH_SLOT_DOESNT_HAVE_TAG :не имеет метку {NUM}
|
||||
STR_ORDER_CONDITIONAL_COMPARATOR_DISPATCH_SLOT_DOESNT_HAVE_TAG_NAMED :не имеет метку {NUM} ({STRING})
|
||||
|
||||
STR_ORDERS_MANAGE_LIST :{BLACK}Управление списком
|
||||
STR_ORDERS_MANAGE_LIST_TOOLTIP :{BLACK}Управление списком заданий
|
||||
@@ -1807,8 +1821,8 @@ STR_TIMETABLE_NON_TIMETABLED_BRANCH :{BLACK}Не в
|
||||
STR_TIMETABLE_WARNING_NO_SCHEDULED_DISPATCH_ORDER_ASSIGNED :{BLACK}Расписание отправки не назначено для задания
|
||||
STR_TIMETABLE_WARNING_SCHEDULED_DISPATCH_ORDER_NO_WAIT_TIME :{BLACK}Запланированное задание на отправку должено иметь установленное время ожидания
|
||||
STR_TIMETABLE_WARNING_SCHEDULE_ID :{BLACK}Расписание {NUM}: {STRING}
|
||||
STR_TIMETABLE_FILL_TIMETABLE_SUGGESTION :{BLACK}Включить 'Автоматически' для автоматического заполнения и обновления времени ожидания и поездок.
|
||||
STR_TIMETABLE_FILL_TIMETABLE_SUGGESTION_2 :{BLACK}(Альтернативно, включить 'Автозаполнение' или вручную заполнить все поля расписания).
|
||||
STR_TIMETABLE_FILL_TIMETABLE_SUGGESTION :{BLACK}Включить «Автоматически» для автоматического заполнения и обновления времени ожидания и поездок.
|
||||
STR_TIMETABLE_FILL_TIMETABLE_SUGGESTION_2 :{BLACK}(Альтернативно, включить «Автозаполнение» или вручную заполнить все поля расписания).
|
||||
|
||||
STR_TIMETABLE_WARNINGS_OMITTED :{BLACK}{NUM} дальнейшие предупреждения опущены...
|
||||
|
||||
@@ -1869,8 +1883,8 @@ STR_PLANS_QUERY_RENAME_PLAN :{WHITE}Пере
|
||||
STR_WARNING_LOADGAME_REMOVED_UNCORRECTABLE_VEHICLES :{WHITE}Удалено {NUM} транспорт{P "" а ов}, которые были признаны некорректными во время загрузки
|
||||
|
||||
STR_GAME_SAVELOAD_FROM_VERSION : из версии {PUSH_COLOUR}{ORANGE}{STRING}{POP_COLOUR}{}
|
||||
STR_GAME_SAVELOAD_ERROR_TOO_NEW_FEATURE_VERSION :Сохранение{0:STRING} имеет версию {PUSH_COLOUR}{ORANGE}{2:NUM}{POP_COLOUR} особенности '{PUSH_COLOUR}{ORANGE}{1:STRING}{POP_COLOUR}', но максимальная поддерживаемая версия - {PUSH_COLOUR}{ORANGE}{3:NUM}{POP_COLOUR}
|
||||
STR_GAME_SAVELOAD_ERROR_UNKNOWN_FEATURE :Сохранение{0:STRING} имеет неизвестную особенность '{PUSH_COLOUR}{ORANGE}{1:STRING}{POP_COLOUR}' (версия: {PUSH_COLOUR}{ORANGE}{2:NUM}{POP_COLOUR}), которая не поддерживается
|
||||
STR_GAME_SAVELOAD_ERROR_TOO_NEW_FEATURE_VERSION :Сохранение{0:STRING} имеет версию {PUSH_COLOUR}{ORANGE}{2:NUM}{POP_COLOUR} особенности «{PUSH_COLOUR}{ORANGE}{1:STRING}{POP_COLOUR}», но максимальная поддерживаемая версия - {PUSH_COLOUR}{ORANGE}{3:NUM}{POP_COLOUR}
|
||||
STR_GAME_SAVELOAD_ERROR_UNKNOWN_FEATURE :Сохранение{0:STRING} имеет неизвестную особенность «{PUSH_COLOUR}{ORANGE}{1:STRING}{POP_COLOUR}» (версия: {PUSH_COLOUR}{ORANGE}{2:NUM}{POP_COLOUR}), которая не поддерживается
|
||||
|
||||
STR_GAME_SAVELOAD_ERROR_HUGE_AIRPORTS_PRESENT :В сохранении используются огромные аэропорты
|
||||
STR_GAME_SAVELOAD_ERROR_HELI_OILRIG_BUG :В сохранении вертолёт приближается к багованой нефтяной вышке
|
||||
@@ -1889,12 +1903,13 @@ STR_ERROR_BUILDING_IS_TOO_OLD :{WHITE}... зд
|
||||
STR_ERROR_BUILDING_IS_TOO_MODERN :{WHITE}... здание слишком современное.
|
||||
STR_ERROR_ONLY_ONE_BUILDING_ALLOWED_PER_TOWN :{WHITE}... в городе разрешено только одно здание такого типа.
|
||||
STR_ERROR_NO_MORE_BUILDINGS_ALLOWED_PER_TOWN :{WHITE}... слишком много зданий такого типа в городе.
|
||||
STR_ERROR_BUILDING_NOT_ALLOWED :{WHITE}... здание не разрешается.
|
||||
STR_ERROR_BUILDING_NOT_ALLOWED :{WHITE}... здание не разрешено.
|
||||
STR_ERROR_TOO_MANY_DOCKS :{WHITE}Слишком много доков
|
||||
STR_ERROR_CAN_T_BUILD_ROAD_WAYPOINT :{WHITE}Невозможно построить здесь дорожную маршрутную точку...
|
||||
STR_ERROR_CAN_T_REMOVE_ROAD_WAYPOINT :{WHITE}Невозможно удалить дорожную маршрутную точку здесь...
|
||||
STR_ERROR_MUST_REMOVE_ROADWAYPOINT_FIRST :{WHITE}Сначала необходимо удалить дорожную маршрутную точку
|
||||
STR_ERROR_UNSUITABLE_SIGNAL_TYPE :{WHITE}... неподходящий тип сигнала
|
||||
STR_ERROR_RESTRICTED_SIGNAL :{WHITE}... сигнал прикреплён программу ограничения маршрутизации
|
||||
STR_ERROR_SIGNAL_CHANGES :{WHITE}Превышен предел количество программируемых пресигналов
|
||||
|
||||
STR_ERROR_BRIDGE_TOO_LOW_FOR_STATION :{WHITE}Мост слишком низкий для станции
|
||||
@@ -1956,7 +1971,7 @@ STR_ZONING_NO_ZONING :Ничего
|
||||
STR_ZONING_AUTHORITY :Администрация
|
||||
STR_ZONING_CAN_BUILD :Где я не могу строить
|
||||
STR_ZONING_STA_CATCH :Охват станции
|
||||
STR_ZONING_STA_CATCH_OPEN :Охват станции станции (window open)
|
||||
STR_ZONING_STA_CATCH_OPEN :Охват станции станции (окно открыто)
|
||||
STR_ZONING_BUL_UNSER :Необслуживаемые здания
|
||||
STR_ZONING_IND_UNSER :Необслуживаемые предприятия
|
||||
STR_ZONING_TRACERESTRICT :Запрещённые сигналы
|
||||
@@ -2023,7 +2038,7 @@ STR_TMPL_RPL_STOP :{BLACK}Прек
|
||||
STR_TMPL_RPL_STOP_TOOLTIP :{BLACK}Нажмите, чтобы остановить замену поездов в выбранной группе
|
||||
STR_TMPL_TEMPLATE_OVR_VALUE :{BLACK}Стоимость приобретения: {GOLD}{CURRENCY_LONG}
|
||||
STR_TMPL_TEMPLATE_OVR_VALUE_LTBLUE :{BLACK}Стоимость приобретения: {LTBLUE}{CURRENCY_LONG}
|
||||
STR_TMPL_TEMPLATE_OVR_RUNNING_COST :{BLACK}Расчетные эксплуатационные расходы: {LTBLUE}{CURRENCY_LONG}
|
||||
STR_TMPL_TEMPLATE_OVR_RUNNING_COST :{BLACK}Предполагаемые расходы на эксплуатацию: {LTBLUE}{CURRENCY_LONG}
|
||||
STR_TMPL_TEMPLATE_OVR_MULTIPLE :{BLACK}{STRING}{BLACK} {STRING}
|
||||
STR_TMPL_WARNING_FREE_WAGON :{RED}Свободная цепь: не запускается!
|
||||
STR_TMPL_WARNING_VEH_UNAVAILABLE :{RED}Поезд нельзя строить: транспортное средство недоступно!
|
||||
@@ -2080,7 +2095,7 @@ STR_TMPL_RPLALLGUI_INSET_BOTTOM :{BLACK}Теку
|
||||
STR_TMPL_RPLALLGUI_BUTTON_RPLALL :{BLACK}Заменить всё
|
||||
STR_TMPL_RPLALLGUI_BUTTON_APPLY :{BLACK}Применить
|
||||
STR_TMPL_RPLALLGUI_BUTTON_CANCEL :{BLACK}Отмена
|
||||
STR_TMPL_RPLALLGUI_USE_TIP :{BLACK}Выберите тип транспортного средства из каждого списка и нажмите 'Заменить всё'. Если вас устраивает результат, отображаемый в списке шаблонов, нажмите 'Применить' чтобы реально применить эти изменения.
|
||||
STR_TMPL_RPLALLGUI_USE_TIP :{BLACK}Выберите тип транспортного средства из каждого списка и нажмите «Заменить всё». Если вас устраивает результат, отображаемый в списке шаблонов, нажмите «Применить» чтобы реально применить эти изменения.
|
||||
|
||||
STR_TMPL_CANT_CREATE :{WHITE}Невозможно создать шаблон или виртуальное транспортное средство...
|
||||
STR_TMPL_CANT_RENAME :{WHITE}Невозможно переименовать шаблон...
|
||||
@@ -2137,10 +2152,16 @@ STR_SCHDISPATCH_APPEND_VEHICLE_SCHEDULES :{BLACK}Доба
|
||||
STR_SCHDISPATCH_APPEND_VEHICLE_SCHEDULES_TOOLTIP :{BLACK}Добавить расписания отправлений с другого транспорта.
|
||||
STR_SCHDISPATCH_REUSE_DEPARTURE_SLOTS :Повторное использование слотов отправления
|
||||
STR_SCHDISPATCH_REUSE_DEPARTURE_SLOTS_TOOLTIP :{BLACK}Установить, можно ли использовать слоты отправления более одного раза.
|
||||
STR_SCHDISPATCH_RENAME_DEPARTURE_TAG :Переименовать метку {NUM}
|
||||
STR_SCHDISPATCH_RENAME_DEPARTURE_TAG_NAMED :Переименовать метку {NUM}: {STRING}
|
||||
STR_SCHDISPATCH_RENAME_DEPARTURE_TAG_TOOLTIP :{BLACK}Переименовать метки слота отправления (для использования с условными заданиями)
|
||||
STR_SCHDISPATCH_RENAME_DEPARTURE_TAG_CAPTION :{BLACK}Назвать метку слота отправления
|
||||
STR_ERROR_CAN_T_RENAME_DEPARTURE_TAG :{WHITE}Невозможно назвать метку отправления...
|
||||
STR_SCHDISPATCH_MANAGE_SLOT :{BLACK}Управление слотом
|
||||
STR_SCHDISPATCH_REUSE_THIS_DEPARTURE_SLOT :Повторное использование слота отправления
|
||||
STR_SCHDISPATCH_REUSE_THIS_DEPARTURE_SLOT_TOOLTIP :{BLACK}Установить, может ли выбранный слот отправления использоваться более одного раза.
|
||||
STR_SCHDISPATCH_TAG_DEPARTURE :Метка {NUM}
|
||||
STR_SCHDISPATCH_TAG_DEPARTURE_NAMED :Метка {NUM}: {STRING}
|
||||
STR_SCHDISPATCH_TAG_DEPARTURE_TOOLTIP :{BLACK}Отметить выбранный слот отправления (для использования с условными заказами).
|
||||
STR_SCHDISPATCH_NO_SCHEDULES :{BLACK}Нет расписаний
|
||||
STR_SCHDISPATCH_SCHEDULE_ID :{BLACK}Расписание {NUM} для {NUM}
|
||||
@@ -2157,6 +2178,7 @@ STR_SCHDISPATCH_SLOT_TOOLTIP_NEXT :{}Следую
|
||||
STR_SCHDISPATCH_SLOT_TOOLTIP_REUSE :{}Слот отправления может быть использован более одного раза
|
||||
STR_SCHDISPATCH_SLOT_TOOLTIP_TIME_SUFFIX : ({TT_TIME})
|
||||
STR_SCHDISPATCH_SLOT_TOOLTIP_TAG :{}Метка {NUM}
|
||||
STR_SCHDISPATCH_SLOT_TOOLTIP_TAG_NAMED :{}Метка {NUM}: {STRING}
|
||||
|
||||
STR_SCHDISPATCH_SUMMARY_NO_LAST_DEPARTURE :{BLACK}Предыдущих отправлений нет.
|
||||
STR_SCHDISPATCH_SUMMARY_LAST_DEPARTURE_PAST :{BLACK}Последнее отправление в {TT_TIME}.
|
||||
@@ -2213,9 +2235,9 @@ STR_REFIT_SHIP_PART_DROPDOWN_TOOLTIP :{BLACK}Выбе
|
||||
STR_REFIT_WHOLE_SHIP :Весь корабль
|
||||
STR_REFIT_SHIP_PART :Часть {NUM}
|
||||
|
||||
STR_VERY_REDUCED :Очень сниженная
|
||||
STR_VERY_REDUCED :очень сниженная
|
||||
|
||||
STR_STATION_VIEW_RENAME_TOOLTIP_EXTRA :{BLACK}{STRING}{}(Ctrl+клик "{STRING}" чтобы сгенерировать новое имя по умолчанию).{}{}Ctrl+клик - обменяться названиями с другой станцией.
|
||||
STR_STATION_VIEW_RENAME_TOOLTIP_EXTRA :{BLACK}{STRING}{}(Ctrl+клик «{STRING}» чтобы сгенерировать новое имя по умолчанию).{}{}Ctrl+клик - обменяться названиями с другой станцией.
|
||||
STR_ERROR_CAN_T_EXCHANGE_STATION_NAMES :{WHITE}Невозможно обменяться названиями станций...
|
||||
STR_ERROR_STATIONS_NOT_IN_SAME_TOWN :{WHITE}... станции находятся в разных городах
|
||||
STR_ERROR_STATION_ATTACHED_TO_INDUSTRY :{WHITE}... станция прикреплена к предприятию
|
||||
|
@@ -4024,6 +4024,7 @@ STR_ERROR_VEHICLE_IS_DESTROYED :{WHITE}... akfa
|
||||
|
||||
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Kann ikki fáa tok at fara framvið jarnbreytatekin tá vandi er...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Kann ikki venda toki vi...
|
||||
|
@@ -1311,7 +1311,7 @@ STR_CONFIG_SETTING_RECESSIONS :Lamat: {STRING}
|
||||
STR_CONFIG_SETTING_RECESSIONS_HELPTEXT :Mikäli käytössä, taloudellinen lama voi ilmaantua ajoittain. Laman aikana kaikki tuotanto on huomattavasti alhaisempaa (palautuu normaalille tasolle laman päätyttyä)
|
||||
|
||||
STR_CONFIG_SETTING_TRAIN_REVERSING :Estä junien kääntyminen asemilla: {STRING}
|
||||
STR_CONFIG_SETTING_TRAIN_REVERSING_HELPTEXT :Mikäli käytössä, junat eivät käänny läpiajettavilla asemilla vaikka kääntymisen jälkeen saatavilla olisi lyhempi reitti
|
||||
STR_CONFIG_SETTING_TRAIN_REVERSING_HELPTEXT :Mikäli käytössä, junat eivät käänny läpiajettavilla asemilla vaikka kääntymisen jälkeen tarjolla olisi lyhempi reitti
|
||||
|
||||
STR_CONFIG_SETTING_DISASTERS :Onnettomuudet: {STRING}
|
||||
STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Ottaa käyttöön onnettomuudet jotka saattavat ajoittain estää tai tuhota liikennettä tai infrastruktuuria
|
||||
@@ -5281,10 +5281,15 @@ STR_ERROR_VEHICLE_IS_DESTROYED :{WHITE}... kulk
|
||||
|
||||
STR_ERROR_CAN_T_CLONE_VEHICLE_LIST :{WHITE}… kaikki kulkuneuvot eivät ole identtisiä
|
||||
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL :{WHITE}Yhtään kulkuneuvoa ei ole saatavilla
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL :{WHITE}Yhtään kulkuneuvoa ei ole käytettävissä
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Muuta NewGRF-asetuksiasi
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Kulkuneuvoja ei ole vielä saatavilla
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Aloita peli {DATE_SHORT} jälkeen tai käytä NewGRF:ää joka tarjoaa aikaisempia kulkuneuvoja
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Aloita uusi peli {DATE_SHORT} jälkeen tai käytä NewGRF:ää, joka tarjoaa varhaisia kulkuneuvoja
|
||||
|
||||
STR_ERROR_NO_TOWN_ROADTYPES_AVAILABLE_AT_ALL :{WHITE}Yhtään kunnan rakennettavissa olevaa tietyyppiä ei ole käytettävissä
|
||||
STR_ERROR_NO_TOWN_ROADTYPES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Muuta NewGRF-asetuksia
|
||||
STR_ERROR_NO_TOWN_ROADTYPES_AVAILABLE_YET :{WHITE}Kunnan rakennettavissa olevia tietyyppejä ei ole vielä saatavilla
|
||||
STR_ERROR_NO_TOWN_ROADTYPES_AVAILABLE_YET_EXPLANATION :{WHITE}Aloita uusi peli {DATE_SHORT} jälkeen tai käytä NewGRF:ää, joka tarjoaa varhaisia kunnan rakennettavissa olevia tietyyppejä
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Junaa ei voi pakottaa jatkamaan punaisen opastimen ohi...
|
||||
|
@@ -5287,6 +5287,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Modifier
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Il n'y a pas encore de véhicules disponibles
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Commencer un nouvelle partie après {DATE_SHORT} ou utiliser un NewGRF qui propose des véhicules plus tôt
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Impossible de forcer le train à avancer sous le danger...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Impossible de faire faire demi-tour...
|
||||
|
@@ -4205,6 +4205,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Feroarje
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Der binne noch gjin fiertugen beskikber
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Begjin in nij spul nei {DATE_SHORT} of brûk in NewGRF dy't earder fiertugen beskikber stelt
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Kin trein gjin sein foarby ride litte at dizze gefaar oanjout...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Kin rydrjochting fan de trein net oanpasse
|
||||
|
@@ -4761,6 +4761,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Atharrai
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Chan eil carbad ri fhaighinn fhathast
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Tòisich geama ùr às dèidh {DATE_SHORT} no chleachd NewGRF a bheir carbadan tràtha dhut
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Chan urrainn dhut toirt air trèanaichean dol seachad air comharra fo chunnart...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Chan urrainn dhan trèana tilleadh...
|
||||
|
@@ -5279,6 +5279,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Cambia a
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Aínda non hai vehículos dispoñíbeis
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Comezar unha partida nova a partires de {DATE_SHORT} ou empregar un NewGRF que proporcione vehículos antigos
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Non se pode facer que o tren rebase un sinal en perigo...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}No se pode cambia-lo sentido do tren...
|
||||
|
@@ -5281,6 +5281,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Bitte di
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Noch keine Fahrzeuge verfügbar
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Ein neues Spiel nach {DATE_SHORT} beginnen oder ein NewGRF-Fahrzeugset mit früher verfügbaren Fahrzeugen verwenden
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Der Zug kann das Signal nicht gefahrlos passieren ...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Die Zugbewegung kann nicht umgekehrt werden ...
|
||||
|
@@ -5386,6 +5386,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Αλλά
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Κανένα όχημα δεν είναι διαθέσιμο ακόμη
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Ξεκινήστε ένα νέο παιχνίδι αργότερα από {DATE_SHORT} η χρησιμοποιήστε ένα NewGRF το οποίο προσφέρει νωρίτερα οχήματα
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Δεν μπορεί το τρένο να περάσει σήμα με κίνδυνο...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Δεν αντιστρέφεται η κατεύθυνση του τρένου...
|
||||
|
@@ -4687,6 +4687,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}שנה
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}כלי תחבורה עדיין לא זמינים
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}התחל משחק חדש אחרי {DATE_SHORT} או השתמש ב-NewGRF המכיל כלי תחבורה קדומים
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}לא ניתן להכריח את הרכבת לעבור ברמזור בעת סכנה...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}לא ניתן להפוך את כיוון הנסיעה של הרכבת...
|
||||
|
@@ -1574,6 +1574,7 @@ STR_ERROR_CAN_T_SELL_TRAIN :{WHITE}रे
|
||||
|
||||
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}ट्रेन की दिशा उलट नहीं सकते...
|
||||
|
||||
|
@@ -5341,6 +5341,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Változt
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Még nincsenek elérhető járművek
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Indíts új játékot {DATE_SHORT} után, vagy használj olyan NewGRF-et, ami tartalmaz megfelelően korai járműveket!
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Nem haladhatja meg a vonat a megállj jelzést...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Nem fordíthatod meg a vonatot...
|
||||
|
@@ -4255,6 +4255,7 @@ STR_ERROR_VEHICLE_IS_DESTROYED :{WHITE}... öku
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL :{WHITE}Engin farartæki verða í boði
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Breyta NewGRF stillingunum þínum
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Get ekki látið lest fara framhjá hættumerki...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Get ekki snúið lest við...
|
||||
|
@@ -1600,6 +1600,7 @@ STR_ERROR_TOO_MANY_VEHICLES_IN_GAME :{WHITE}Tro mult
|
||||
|
||||
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
|
||||
|
||||
|
@@ -5161,6 +5161,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Tukarkan
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Belum ada kendaraan yang tersedia saat ini
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Mulai permainan baru setelah {DATE_SHORT} atau gunakan NewGRF yang menyediakan kendaraan awal
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Tidak dapat memaksa kereta melanggar sinyal pada saat bahaya...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Tidak dapat memutar balik arah kereta...
|
||||
|
@@ -4865,6 +4865,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Athraigh
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Níl aon fheithicil ar fáil fós
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Tosaigh cluiche nua ó {DATE_SHORT} ar aghaidh nó úsáid NewGRF lena gcuirtear feithiclí luath ar fáil
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Ní féidir iallach a chur ar thraein dul thar comhartha agus contúirt ann...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Ní féidir treo na traenach a aisiompú...
|
||||
|
@@ -5319,6 +5319,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Cambiare
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Non sono ancora disponibili veicoli
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Iniziare una nuova partita dopo il {DATE_SHORT} o utilizzare un NewGRF che fornisca veicoli a partire da date antecedenti
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Impossibile far passare al treno un segnale di pericolo...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Impossibile invertire la direzione del treno...
|
||||
|
@@ -4988,6 +4988,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}NewGRF
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}利用可能な輸送機器がありません
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}{DATE_SHORT}年以降に開始するか、これより早い時期に輸送機器が開発されるNewGRFを利用して下さい
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}赤信号を無視させることができません
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}列車を反転できません
|
||||
|
@@ -5283,6 +5283,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}NewGRF
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}사용할 수 있는 차량이 하나도 없습니다
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}{DATE_SHORT}년 이후에 새로운 게임을 시작하거나 차량이 더 빨리 개발되는 NewGRF을 사용하십시오.
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}너무 위험해서 신호를 무시할 수 없습니다...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}열차를 회차시킬 수 없습니다...
|
||||
|
@@ -4752,6 +4752,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Muta con
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Nulla vehicula adhuc parabilia sunt
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Incipe ludum post {DATE_SHORT} sive eligere idoneum NewGRF quod vehicula antiqua parat
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Non licet tramen impellere post signale...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Non licet tramini cursum reflectere...
|
||||
|
@@ -2578,6 +2578,7 @@ STR_NETWORK_ERROR_BAD_PLAYER_NAME :{WHITE} Jūsu s
|
||||
STR_NETWORK_ERROR_BAD_SERVER_NAME :{WHITE} Jūsu servera nosaukums nav iestatīts. Nosaukumu var iestatīt vairākspēlētāju loga augšdaļā
|
||||
STR_NETWORK_ERROR_WRONG_REVISION :{WHITE}Klienta pārskats neatbilst servera pārskatam
|
||||
STR_NETWORK_ERROR_WRONG_PASSWORD :{WHITE}Nepareiza parole
|
||||
STR_NETWORK_ERROR_NOT_ON_ALLOW_LIST :{WHITE}Jūs neesat atļauto klientu sarakstā
|
||||
STR_NETWORK_ERROR_SERVER_FULL :{WHITE}Serveris ir pilns
|
||||
STR_NETWORK_ERROR_SERVER_BANNED :{WHITE}Šajā serverī jums ir aizliegums
|
||||
STR_NETWORK_ERROR_KICKED :{WHITE}Jūs esat izmests no šīs spēles
|
||||
@@ -5295,6 +5296,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Mainiet
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Transportlīdzekļi vēl nav pieejami
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Sākt jaunu spēli pēc {DATE_SHORT} vai izmantot NewGRF, kas nodrošina agrīnus transporta līdzekļus
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Vilciens nevar šķērsot signālu briesmās...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Vilcienu nevar apgriezt...
|
||||
|
@@ -5207,6 +5207,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Pakeiski
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Kol kas negalima įsigyti jokių transporto priemonių
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Pradėkite žaidimą vėliau, nei {DATE_SHORT}, arba įdiekite plėtinių, kurie leistų įsigyti transporto priemonių šiame ankstyvame laikotarpyje
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Neįmanoma priversti traukinio važiuoti nesaugiai...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Traukinio vaziavimo krypties pakeisti negalima...
|
||||
|
@@ -5277,6 +5277,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Änner d
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Nach keng Gefierer verfügbar
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}En neit Spill no {DATE_SHORT} ufenken oder benotz en NewGRF den al Gefierer erlaabt
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Kann den Zuch net bei Gefor durch d'Signal schécken...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Kann d'Richtung vum Zuch net änneren...
|
||||
|
@@ -2117,6 +2117,7 @@ STR_ERROR_VEHICLE_IS_DESTROYED :{WHITE}... во
|
||||
|
||||
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
|
||||
|
||||
|
@@ -4161,6 +4161,7 @@ STR_ERROR_VEHICLE_IS_DESTROYED :{WHITE}... kend
|
||||
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Mulakan permainan baru selepas {DATE_SHORT} atau gunakan NewGRF yang digunakan kenderaan terdahulu
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Keretapi tidak boleh melanggar isyarat kerana terdapat kemungkinan bahaya...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Keretapi tidak boleh ditukar arah...
|
||||
|
@@ -1468,6 +1468,7 @@ STR_ERROR_TOO_MANY_VEHICLES_IN_GAME :{WHITE}Hemm wis
|
||||
|
||||
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Ma tistax tbiddel id-direzzjoni tal-ferrovija...
|
||||
|
||||
|
@@ -1867,6 +1867,7 @@ STR_ERROR_BRIDGE_THROUGH_MAP_BORDER :{WHITE}पू
|
||||
|
||||
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
|
||||
|
||||
|
@@ -5288,6 +5288,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Endre di
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Ingen kjøretøyer er tilgjengelig ennå
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Starte et nytt spill etter {DATE_SHORT}, eller bruke en NewGRF som inneholder tidlige kjøretøy
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Kan ikke tvinge tog til å passere signal ved fare...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Kan ikke reversere toget...
|
||||
|
@@ -4396,6 +4396,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Byt NewG
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Det finst ikkje nokon køyretøy enno
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Start spelet etter {DATE_SHORT} eller bruk ein GRF som har køyretøy frå tidlegare tider
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Kan ikkje tvinge tog til å passere signal ved fare...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Kan ikkje snu toget...
|
||||
|
@@ -3748,6 +3748,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL :{WHITE}بطور
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}تنظیمات مربوط به NewGRF را تغییر دهید
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}هنوز خودرویی در دسترس نیست
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}در هنگام خطر نمی توان علامت عبور قطار را داد
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}جهت قطار را نمی شود تغییر داد...
|
||||
|
@@ -5672,6 +5672,11 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Zmień k
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Obecnie żaden pojazd nie jest dostępny
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Zacznij grę po {DATE_SHORT} albo użyj zestawu NewGRF, który zawiera wczesne pojazdy
|
||||
|
||||
STR_ERROR_NO_TOWN_ROADTYPES_AVAILABLE_AT_ALL :{WHITE}Brak dostępnych typów dróg miejskich
|
||||
STR_ERROR_NO_TOWN_ROADTYPES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Zmień konfigurację NewGRF
|
||||
STR_ERROR_NO_TOWN_ROADTYPES_AVAILABLE_YET :{WHITE}Brak jeszcze dostępnych typów dróg miejskich
|
||||
STR_ERROR_NO_TOWN_ROADTYPES_AVAILABLE_YET_EXPLANATION :{WHITE}Rozpocznij nową grę po {DATE_SHORT} roku lub użyj NewGRF, który umożliwia wczesne budowanie dróg miejskich
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Nie można przepuścić pociągu za sygnał, niebezpieczeństwo...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Nie można odwrócić kierunku jazdy pociągu...
|
||||
|
@@ -5287,6 +5287,11 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Mudar a
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Nenhum veículo ainda disponível
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Começar um novo jogo depois de {DATE_SHORT} ou utilizar um NewGRF que forneça veículos iniciais
|
||||
|
||||
STR_ERROR_NO_TOWN_ROADTYPES_AVAILABLE_AT_ALL :{WHITE}Não está disponível nenhum tipo de estrada edificável para localidades
|
||||
STR_ERROR_NO_TOWN_ROADTYPES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Mudar a sua configuração NewGRF
|
||||
STR_ERROR_NO_TOWN_ROADTYPES_AVAILABLE_YET :{WHITE}Ainda não estão disponíveis tipos de estradas edificáveis para localidades
|
||||
STR_ERROR_NO_TOWN_ROADTYPES_AVAILABLE_YET_EXPLANATION :{WHITE}Começar um novo jogo depois de {DATE_SHORT} ou usar um NewGRF que forneça antecipadamente tipos de estradas edificáveis em localidades
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Não é possível fazer o comboio passar o sinal com perigo...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Não é possível inverter a direcção do comboio...
|
||||
|
@@ -5273,6 +5273,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Schimbă
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Niciun vehicul nu este disponibil încă
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Începe un joc nou după {DATE_SHORT} sau utilizează un NewGRF care oferă vehicule în avans
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Nu se poate permite trenului să treacă în caz de pericol...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Nu se poate schimba sensul de mers al trenului...
|
||||
|
@@ -5473,6 +5473,11 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Изме
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Нет доступных транспортных средств
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Начните игру не ранее {DATE_SHORT} либо подключите NewGRF, добавляющий транспортные средства, использовавшиеся в это время.
|
||||
|
||||
STR_ERROR_NO_TOWN_ROADTYPES_AVAILABLE_AT_ALL :{WHITE}Отсутствуют типы дорог, которые могла бы прокладывать городская администрация
|
||||
STR_ERROR_NO_TOWN_ROADTYPES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Измените конфигурацию установленных модулей NewGRF
|
||||
STR_ERROR_NO_TOWN_ROADTYPES_AVAILABLE_YET :{WHITE}Пока что отсутствуют типы дорог, которые могла бы прокладывать городская администрация
|
||||
STR_ERROR_NO_TOWN_ROADTYPES_AVAILABLE_YET_EXPLANATION :{WHITE}Установите дату начала игры не ранее {DATE_SHORT} или установите модуль NewGRF, добавляющий типы дорог, которые будут доступны администрациям городов на выбранную вами дату
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Невозможно игнорировать светофор. Опасно...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Невозможно развернуть поезд...
|
||||
|
@@ -5380,6 +5380,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Promeni
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Nijedno vozilo još uvek nije dostupno
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Pokreni novu igru koja počinje posle {DATE_SHORT} ili koristi NewGRF koji omogućava ranija vozila
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Nemoguć je prolaz voza na signal opasnosti...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}... vozilo je uništeno
|
||||
|
@@ -5283,6 +5283,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}请改
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}暂时沒有可用的载具
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}在{DATE_SHORT}后开始新游戏,或使用一款能提供早期载具的NewGRF
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}不能让列车冒险通过信号...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}不能命令列车调头...
|
||||
|
@@ -5348,6 +5348,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Zmena va
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Zatiaľ nie sú dostupné žiadne vozidlá
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Začnite novú hru po {DATE_SHORT} alebo použite NewGRF, ktoré zabezpečí vozidlá v skoršom čase
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Nemožno nechať vlak prejsť návestidlo ak hrozí nebezpečenstvo...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Nemožno otočiť vlak naopak...
|
||||
|
@@ -4645,6 +4645,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Zamenjaj
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Ni še vozil na razpolago.
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Začni novo igro po {DATE_SHORT} ali uporabi NewGRF, ki vsebuje zgodnja vozila
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Ni mogoče, da vlak v nevarnosti pelje mimo signalov...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Ni mogoče spremeniti smeri vlaka...
|
||||
|
@@ -5287,6 +5287,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Es neces
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}En esta fecha no hay vehículos disponibles
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Comienza una nueva partida después de {DATE_SHORT} o usa un NewGRF que provea vehículos más antiguos
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}No se puede pasar la señal en peligro al tren...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}No se puede cambiar la dirección...
|
||||
|
@@ -5157,6 +5157,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Se debe
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Todavía no hay vehículos disponibles
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Se debe empezar una nueva partida después de {DATE_SHORT} o usar un NewGRF que proporcione vehículos más antiguos
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}El tren no puede rebasar la señal si está en peligro...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}No se puede cambiar la dirección del tren...
|
||||
|
@@ -5286,6 +5286,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Ändra d
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Inga fordon är tillgängliga än
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Starta ett nytt spel efter {DATE_SHORT} eller använd en NewGRF som erbjuder tidiga fordon
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Kan inte tillåta tåg att passera signal under fara...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Kan inte byta tågets riktning...
|
||||
|
@@ -4871,6 +4871,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}தங
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}தற்போது எந்த வாகனங்களும் கிடையாது
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}{DATE_SHORT} இற்கு பிறகு புதிய ஆட்டம் ஒன்றினைத் தொடங்கு அல்லது NewGRF ஒன்றினைப் பயன்படுத்தி பிற்கால வாகனங்களைப் பயன்படுத்து
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}இரயில் சிக்னலைத் தாண்டிச் செல்ல முடியாது...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}இரயில் செல்லும் திசையினை திருப்ப முடியாது...
|
||||
|
@@ -4601,6 +4601,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}เป
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}ยังไม่มียานพาหานะให้เลือก
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}เริ่มเกมหลังจาก {DATE_SHORT} หรือเลือกใช้งาน NewGRF ของยานพาหนะที่จัดเตรียมไว้ก่อนหน้านี้
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}ไม่สามารถสั่งให้รถไฟวิ่งผ่านเสาอาณัติสัญญาณที่แสดงท่า "ห้าม"...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}ไม่สามารถกลับทิศขบวนรถไฟได้...
|
||||
|
@@ -5102,6 +5102,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}請修
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}未有可用的車輛
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}在{DATE_SHORT}後開始新遊戲,或使用提供早期車輛的NewGRF
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}無法讓列車通過險阻號誌...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}無法倒轉列車方向...
|
||||
|
@@ -5279,6 +5279,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Yeni New
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Henüz hiçbir araç kullanılabilir değil
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}{DATE_SHORT} sonra yeni bir oyun başlat veya erken araç sağlayan NewGRF kullan
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Tehlikedeki tren sinyali geçemez...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Tren çevrilemez...
|
||||
|
@@ -5424,6 +5424,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Змін
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Жоден вид транспорту ще не став доступним
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Починайте нову гру після {DATE_SHORT} або використовуйте NewGRF, в якому транспорт з’являється раніше
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Неможливо проїхати сигнал - небезпечно...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Неможливо розвернути поїзд...
|
||||
|
@@ -2880,6 +2880,7 @@ STR_ERROR_CAN_T_CHANGE_SERVICING :{WHITE}مرمت
|
||||
|
||||
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
|
||||
|
||||
|
@@ -5280,6 +5280,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Thay đ
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Chưa có phương tiện nào có sẵn
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Bắt đầu một màn chơi mới sau {DATE_SHORT} hoặc sử dụng một NewGRF cung cấp sớm phương tiện
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Không thể để tàu hoả qua tín hiệu đèn khi nguy hiểm...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Không thể đổi hướng đoàn tàu...
|
||||
|
@@ -5280,6 +5280,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Newid ei
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Dim cerbydau ar gael eto
|
||||
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Dechreuwch gêm newydd wedi {DATE_SHORT} neu defnyddiwch NewGRF sy'n darparu cerbydau cynnar
|
||||
|
||||
|
||||
# Specific vehicle errors
|
||||
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Does dim modd gwneud i drên basio signal pan fo perygl...
|
||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}Methu gwrthdroi'r trên...
|
||||
|
@@ -182,6 +182,7 @@ void LinkGraphJob::FinaliseJob()
|
||||
geflows.insert(std::move(*it));
|
||||
}
|
||||
geflows.SortStorage();
|
||||
ge.RemoveDataIfUnused();
|
||||
InvalidateWindowData(WC_STATION_VIEW, st->index, this->Cargo());
|
||||
}
|
||||
}
|
||||
|
@@ -387,7 +387,9 @@ void LinkRefresher::RefreshLinks(const Order *cur, const Order *next, TimetableT
|
||||
SetBit(flags, IN_AUTOREFIT);
|
||||
LinkRefresher backup(*this);
|
||||
for (CargoID c = 0; c != NUM_CARGO; ++c) {
|
||||
if (CargoSpec::Get(c)->IsValid() && this->HandleRefit(c)) {
|
||||
if (!CargoSpec::Get(c)->IsValid()) continue;
|
||||
if (next->GetCargoLoadType(c) == OLFB_NO_LOAD) continue;
|
||||
if (this->HandleRefit(c)) {
|
||||
this->RefreshLinks(cur, next, travel, flags, num_hops);
|
||||
*this = backup;
|
||||
}
|
||||
|
@@ -54,12 +54,16 @@ Packet::Packet(NetworkSocketHandler *cs, PacketType type, size_t limit) : pos(0)
|
||||
void Packet::ResetState(PacketType type)
|
||||
{
|
||||
this->buffer.clear();
|
||||
this->tx_packet_type = type;
|
||||
|
||||
/* Allocate space for the the size so we can write that in just before sending the packet. */
|
||||
size_t size = EncodedLengthOfPacketSize();
|
||||
if (cs != nullptr && cs->send_encryption_handler != nullptr) {
|
||||
/* Allocate some space for the message authentication code of the encryption. */
|
||||
size += cs->send_encryption_handler->MACSize();
|
||||
this->encyption_pending = true;
|
||||
} else {
|
||||
this->encyption_pending = false;
|
||||
}
|
||||
assert(this->CanWriteToPacket(size));
|
||||
this->buffer.resize(size, 0);
|
||||
@@ -70,7 +74,7 @@ void Packet::ResetState(PacketType type)
|
||||
/**
|
||||
* Writes the packet size from the raw packet from packet->size
|
||||
*/
|
||||
void Packet::PrepareToSend()
|
||||
void Packet::PrepareForSendQueue()
|
||||
{
|
||||
/* Prevent this to be called twice and for packets that have been received. */
|
||||
assert(this->buffer[0] == 0 && this->buffer[1] == 0);
|
||||
@@ -78,17 +82,19 @@ void Packet::PrepareToSend()
|
||||
this->buffer[0] = GB(this->Size(), 0, 8);
|
||||
this->buffer[1] = GB(this->Size(), 8, 8);
|
||||
|
||||
if (cs != nullptr && cs->send_encryption_handler != nullptr) {
|
||||
size_t offset = EncodedLengthOfPacketSize();
|
||||
size_t mac_size = cs->send_encryption_handler->MACSize();
|
||||
size_t message_offset = offset + mac_size;
|
||||
cs->send_encryption_handler->Encrypt(std::span(&this->buffer[offset], mac_size), std::span(&this->buffer[message_offset], this->buffer.size() - message_offset));
|
||||
}
|
||||
|
||||
this->pos = 0; // We start reading from here
|
||||
this->pos = 0; // We start reading from here
|
||||
this->buffer.shrink_to_fit();
|
||||
}
|
||||
|
||||
void Packet::PreSendEncryption()
|
||||
{
|
||||
this->encyption_pending = false;
|
||||
size_t offset = EncodedLengthOfPacketSize();
|
||||
size_t mac_size = cs->send_encryption_handler->MACSize();
|
||||
size_t message_offset = offset + mac_size;
|
||||
cs->send_encryption_handler->Encrypt(std::span(&this->buffer[offset], mac_size), std::span(&this->buffer[message_offset], this->buffer.size() - message_offset));
|
||||
}
|
||||
|
||||
/**
|
||||
* Is it safe to write to the packet, i.e. didn't we run over the buffer?
|
||||
* @param bytes_to_write The amount of bytes we want to try to write.
|
||||
|
@@ -51,6 +51,10 @@ struct Packet : public BufferSerialisationHelper<Packet>, public BufferDeseriali
|
||||
private:
|
||||
/** The current read/write position in the packet */
|
||||
PacketSize pos;
|
||||
/** Whether encryption is required for this packet */
|
||||
bool encyption_pending = false;
|
||||
/** Packet type, for transmitted packets */
|
||||
PacketType tx_packet_type;
|
||||
/** The buffer of this packet. */
|
||||
std::vector<uint8_t> buffer;
|
||||
/** The limit for the packet size. */
|
||||
@@ -59,6 +63,8 @@ private:
|
||||
/** Socket we're associated with. */
|
||||
NetworkSocketHandler *cs;
|
||||
|
||||
void PreSendEncryption();
|
||||
|
||||
public:
|
||||
struct ReadTag{};
|
||||
Packet(ReadTag tag, NetworkSocketHandler *cs, size_t limit, size_t initial_read_size = EncodedLengthOfPacketSize());
|
||||
@@ -66,8 +72,21 @@ public:
|
||||
|
||||
void ResetState(PacketType type);
|
||||
|
||||
void PrepareForSendQueue();
|
||||
|
||||
inline void CheckPendingPreSendEncryption()
|
||||
{
|
||||
if (this->encyption_pending) {
|
||||
this->PreSendEncryption();
|
||||
}
|
||||
}
|
||||
|
||||
/* Sending/writing of packets */
|
||||
void PrepareToSend();
|
||||
inline void PrepareToSend()
|
||||
{
|
||||
this->PrepareForSendQueue();
|
||||
this->CheckPendingPreSendEncryption();
|
||||
}
|
||||
|
||||
std::vector<uint8_t> &GetSerialisationBuffer() { return this->buffer; }
|
||||
size_t GetSerialisationLimit() const { return this->limit; }
|
||||
@@ -88,6 +107,7 @@ public:
|
||||
size_t Size() const;
|
||||
[[nodiscard]] bool PrepareToRead();
|
||||
PacketType GetPacketType() const;
|
||||
PacketType GetTransmitPacketType() const { return this->tx_packet_type; }
|
||||
|
||||
bool CanReadFromPacket(size_t bytes_to_read, bool close_connection = false);
|
||||
|
||||
|
@@ -69,7 +69,7 @@ void NetworkTCPSocketHandler::SendPacket(std::unique_ptr<Packet> packet)
|
||||
{
|
||||
assert(packet != nullptr);
|
||||
|
||||
packet->PrepareToSend();
|
||||
packet->PrepareForSendQueue();
|
||||
|
||||
this->packet_queue.push_back(std::move(packet));
|
||||
}
|
||||
@@ -84,11 +84,11 @@ void NetworkTCPSocketHandler::SendPrependPacket(std::unique_ptr<Packet> packet,
|
||||
{
|
||||
assert(packet != nullptr);
|
||||
|
||||
packet->PrepareToSend();
|
||||
packet->PrepareForSendQueue();
|
||||
|
||||
if (queue_after_packet_type >= 0) {
|
||||
for (auto iter = this->packet_queue.begin(); iter != this->packet_queue.end(); ++iter) {
|
||||
if ((*iter)->GetPacketType() == queue_after_packet_type) {
|
||||
if ((*iter)->GetTransmitPacketType() == queue_after_packet_type) {
|
||||
++iter;
|
||||
this->packet_queue.insert(iter, std::move(packet));
|
||||
return;
|
||||
@@ -131,6 +131,7 @@ SendPacketsState NetworkTCPSocketHandler::SendPackets(bool closing_down)
|
||||
|
||||
while (!this->packet_queue.empty()) {
|
||||
Packet &p = *this->packet_queue.front();
|
||||
p.CheckPendingPreSendEncryption();
|
||||
ssize_t res = p.TransferOut<int>(send, this->sock, 0);
|
||||
if (res == -1) {
|
||||
NetworkError err = NetworkError::GetLast();
|
||||
|
@@ -28,14 +28,16 @@ static const char* _packet_game_type_names[] {
|
||||
"SERVER_BANNED",
|
||||
"CLIENT_JOIN",
|
||||
"SERVER_ERROR",
|
||||
"CLIENT_COMPANY_INFO",
|
||||
"SERVER_COMPANY_INFO",
|
||||
"CLIENT_UNUSED",
|
||||
"SERVER_UNUSED",
|
||||
"SERVER_GAME_INFO",
|
||||
"CLIENT_GAME_INFO",
|
||||
"SERVER_NEWGAME",
|
||||
"SERVER_SHUTDOWN",
|
||||
"SERVER_GAME_INFO_EXTENDED",
|
||||
"SERVER_AUTH_REQUEST",
|
||||
"CLIENT_AUTH_RESPONSE",
|
||||
"SERVER_AUTH_COMPLETED",
|
||||
"SERVER_ENABLE_ENCRYPTION",
|
||||
"CLIENT_IDENTIFY",
|
||||
"SERVER_CHECK_NEWGRFS",
|
||||
"CLIENT_NEWGRFS_CHECKED",
|
||||
@@ -69,8 +71,6 @@ static const char* _packet_game_type_names[] {
|
||||
"CLIENT_SET_NAME",
|
||||
"SERVER_COMPANY_UPDATE",
|
||||
"SERVER_CONFIG_UPDATE",
|
||||
"SERVER_NEWGAME",
|
||||
"SERVER_SHUTDOWN",
|
||||
"CLIENT_QUIT",
|
||||
"SERVER_QUIT",
|
||||
"CLIENT_ERROR",
|
||||
@@ -295,7 +295,7 @@ std::string NetworkGameSocketHandler::GetDebugInfo() const { return ""; }
|
||||
|
||||
void NetworkGameSocketHandler::LogSentPacket(const Packet &pkt)
|
||||
{
|
||||
PacketGameType type = (PacketGameType)pkt.GetPacketType();
|
||||
PacketGameType type = (PacketGameType)pkt.GetTransmitPacketType();
|
||||
DEBUG(net, 5, "[tcp/game] sent packet type %d (%s) to client %d, %s", type, GetPacketGameTypeName(type), this->client_id, this->GetDebugInfo().c_str());
|
||||
}
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user