Compare commits
64 Commits
1.9.0-beta
...
1.9.0-RC2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9ae1726eed | ||
|
|
3f0268b4b3 | ||
|
|
cf7a1fc8c6 | ||
|
|
7a9782e6f4 | ||
|
|
6a1f217d30 | ||
|
|
174b0da90f | ||
|
|
a2c4f9314d | ||
|
|
652289972e | ||
|
|
0a5b3b955c | ||
|
|
79d2acff24 | ||
|
|
e3a082ce7c | ||
|
|
213c490e73 | ||
|
|
4e17e2bc6e | ||
|
|
56a69f1de7 | ||
|
|
64726d5213 | ||
|
|
712936745a | ||
|
|
2fb4575f5f | ||
|
|
5e9d39e8bc | ||
|
|
490d6ad51f | ||
|
|
38e93182c5 | ||
|
|
3a97b541af | ||
|
|
80dd397ce4 | ||
|
|
47596d3eda | ||
|
|
f7f1efc84f | ||
|
|
383e2d1082 | ||
|
|
aefe44e67e | ||
|
|
1de8e1b801 | ||
|
|
54c5bac8f7 | ||
|
|
948de16255 | ||
|
|
88c5122b39 | ||
|
|
eb46a89855 | ||
|
|
39cda89e85 | ||
|
|
8016b8b3e9 | ||
|
|
4ac81b3ebb | ||
|
|
d9b4ada7e9 | ||
|
|
1a663d9efc | ||
|
|
93a6fd42d1 | ||
|
|
c61acc7fc1 | ||
|
|
c91e0058c2 | ||
|
|
5a5944867d | ||
|
|
5d3ccae6c5 | ||
|
|
e0c2ad1b65 | ||
|
|
3c047b124e | ||
|
|
b62452903a | ||
|
|
8139b14e9c | ||
|
|
5e40338543 | ||
|
|
90a4737bf6 | ||
|
|
b242a04c7d | ||
|
|
780593ae60 | ||
|
|
cbaf52fbe1 | ||
|
|
c3bc7d657e | ||
|
|
63fe6c6598 | ||
|
|
7ecfae8f7f | ||
|
|
1447661d20 | ||
|
|
9ad5112628 | ||
|
|
76f983a8e7 | ||
|
|
50a0cf1915 | ||
|
|
03264059e4 | ||
|
|
adb50cebcc | ||
|
|
9b99b95955 | ||
|
|
7ac17f5ae4 | ||
|
|
c2e4a8c9bf | ||
|
|
93c6398810 | ||
|
|
6ff02f0615 |
@@ -92,6 +92,7 @@ VERSION := $(shell echo "$(VERSIONS)" | cut -f 1 -d' ')
|
||||
ISODATE := $(shell echo "$(VERSIONS)" | cut -f 2 -d' ')
|
||||
GITHASH := $(shell echo "$(VERSIONS)" | cut -f 4 -d' ')
|
||||
ISTAG := $(shell echo "$(VERSIONS)" | cut -f 5 -d' ')
|
||||
ISSTABLETAG := $(shell echo "$(VERSIONS)" | cut -f 6 -d' ')
|
||||
|
||||
# Make sure we have something in VERSION and ISODATE
|
||||
ifeq ($(VERSION),)
|
||||
@@ -277,10 +278,10 @@ endif
|
||||
# Revision files
|
||||
|
||||
$(SRC_DIR)/rev.cpp: $(CONFIG_CACHE_VERSION) $(SRC_DIR)/rev.cpp.in
|
||||
$(Q)cat $(SRC_DIR)/rev.cpp.in | sed "s@\!\!ISODATE\!\!@$(ISODATE)@g;s@!!VERSION!!@$(VERSION)@g;s@!!MODIFIED!!@$(MODIFIED)@g;s@!!DATE!!@`date +%d.%m.%y`@g;s@!!GITHASH!!@$(GITHASH)@g;s@!!ISTAG!!@$(ISTAG)@g" > $(SRC_DIR)/rev.cpp
|
||||
$(Q)cat $(SRC_DIR)/rev.cpp.in | sed "s@\!\!ISODATE\!\!@$(ISODATE)@g;s@!!VERSION!!@$(VERSION)@g;s@!!MODIFIED!!@$(MODIFIED)@g;s@!!DATE!!@`date +%d.%m.%y`@g;s@!!GITHASH!!@$(GITHASH)@g;s@!!ISTAG!!@$(ISTAG)@g;s@!!ISSTABLETAG!!@$(ISSTABLETAG)@g" > $(SRC_DIR)/rev.cpp
|
||||
|
||||
$(SRC_DIR)/os/windows/ottdres.rc: $(CONFIG_CACHE_VERSION) $(SRC_DIR)/os/windows/ottdres.rc.in
|
||||
$(Q)cat $(SRC_DIR)/os/windows/ottdres.rc.in | sed "s@\!\!ISODATE\!\!@$(ISODATE)@g;s@!!VERSION!!@$(VERSION)@g;s@!!DATE!!@`date +%d.%m.%y`@g;s@!!GITHASH!!@$(GITHASH)@g;s@!!ISTAG!!@$(ISTAG)@g" > $(SRC_DIR)/os/windows/ottdres.rc
|
||||
$(Q)cat $(SRC_DIR)/os/windows/ottdres.rc.in | sed "s@\!\!ISODATE\!\!@$(ISODATE)@g;s@!!VERSION!!@$(VERSION)@g;s@!!DATE!!@`date +%d.%m.%y`@g;s@!!GITHASH!!@$(GITHASH)@g;s@!!ISTAG!!@$(ISTAG)@g;s@!!ISSTABLETAG!!@$(ISSTABLETAG)@g" > $(SRC_DIR)/os/windows/ottdres.rc
|
||||
|
||||
FORCE:
|
||||
|
||||
|
||||
32
README.md
32
README.md
@@ -310,22 +310,22 @@ your operating system:
|
||||
Different types of data or extensions go into different subdirectories of the
|
||||
chosen main OpenTTD directory:
|
||||
|
||||
| data type | directory | additional info |
|
||||
| --- | --- | --- |
|
||||
| Config File | (no subdirectory) | |
|
||||
| Screenshots | screenshot | |
|
||||
| Base Graphics | baseset | (or a subdirectory thereof) |
|
||||
| Sound Sets | baseset | (or a subdirectory thereof) |
|
||||
| NewGRFs | newgrf | (or a subdirectory thereof) |
|
||||
| 32bpp Sets | newgrf | (or a subdirectory thereof) |
|
||||
| Music Sets | baseset | (or a subdirectory thereof) |
|
||||
| AIs | ai | (or a subdirectory thereof) |
|
||||
| AI Libraries | ai/library | (or a subdirectory thereof) |
|
||||
| Game Scripts (GS) | game | (or a subdirectory thereof) |
|
||||
| GS Libraries | game/library | (or a subdirectory thereof) |
|
||||
| Savegames | save | |
|
||||
| Automatic Savegames | save/autosave | |
|
||||
| Scenarios | scenario | |
|
||||
| data type | directory | additional info |
|
||||
| ------------------- | ----------------- | --------------------------- |
|
||||
| Config File | (no subdirectory) | |
|
||||
| Screenshots | screenshot | |
|
||||
| Base Graphics | baseset | (or a subdirectory thereof) |
|
||||
| Sound Sets | baseset | (or a subdirectory thereof) |
|
||||
| NewGRFs | newgrf | (or a subdirectory thereof) |
|
||||
| 32bpp Sets | newgrf | (or a subdirectory thereof) |
|
||||
| Music Sets | baseset | (or a subdirectory thereof) |
|
||||
| AIs | ai | (or a subdirectory thereof) |
|
||||
| AI Libraries | ai/library | (or a subdirectory thereof) |
|
||||
| Game Scripts (GS) | game | (or a subdirectory thereof) |
|
||||
| GS Libraries | game/library | (or a subdirectory thereof) |
|
||||
| Savegames | save | |
|
||||
| Automatic Savegames | save/autosave | |
|
||||
| Scenarios | scenario | |
|
||||
|
||||
The (automatically created) directory content_download is for OpenTTD's internal
|
||||
use and no files should be added to it or its subdirectories manually.
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
trigger:
|
||||
- master
|
||||
- release/*
|
||||
pr:
|
||||
- master
|
||||
- release/*
|
||||
|
||||
jobs:
|
||||
- job: windows
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
steps:
|
||||
# Rebase to origin/master for every PR. This means users don't have to
|
||||
# rebase every time master changes. As long as the PR applies cleanly, we
|
||||
# Rebase to target branch for every PR. This means users don't have to
|
||||
# rebase every time target branch changes. As long as the PR applies cleanly, we
|
||||
# will validate it.
|
||||
- script: |
|
||||
- bash: |
|
||||
git config user.email 'info@openttd.org'
|
||||
git config user.name 'OpenTTD CI'
|
||||
git rebase origin/master
|
||||
displayName: 'Rebase to master'
|
||||
git rebase origin/${SYSTEM_PULLREQUEST_TARGETBRANCH}
|
||||
displayName: 'Rebase to target branch'
|
||||
condition: and(succeeded(), eq(variables['Build.Reason'], 'PullRequest'))
|
||||
|
||||
@@ -4,11 +4,27 @@ parameters:
|
||||
ContainerCommand: ''
|
||||
|
||||
steps:
|
||||
# 'envVars' in the 'Docker@1' task is a bit funky. When you want to use a
|
||||
# variable, you have to quote it. But the quote is also sent directly to
|
||||
# Docker and ends up in the variable, which you don't want. To work around
|
||||
# this, we set the correct variable first (which becomes an env-variable), and
|
||||
# pass that env-variable through to Docker. We cannot use the normal
|
||||
# 'variables' entry, as we are a template. So that results in this bit of
|
||||
# Bash code. Not because it is pretty, but it is the only way we found that
|
||||
# works.
|
||||
- bash: |
|
||||
echo "##vso[task.setvariable variable=TARGET_BRANCH]${SYSTEM_PULLREQUEST_TARGETBRANCH}"
|
||||
echo "Target branch is ${SYSTEM_PULLREQUEST_TARGETBRANCH}"
|
||||
displayName: "Set target branch"
|
||||
condition: and(succeeded(), eq(variables['Build.Reason'], 'PullRequest'))
|
||||
|
||||
- task: Docker@1
|
||||
${{ if eq(parameters.Image, 'compile-farm') }}:
|
||||
displayName: 'Build'
|
||||
${{ if eq(parameters.Image, 'compile-farm-ci') }}:
|
||||
displayName: 'Build and test'
|
||||
# Run the commit-checker only if it is a Pull Request
|
||||
condition: and(succeeded(), or(ne(variables['Agent.JobName'], 'commit-checker'), eq(variables['Build.Reason'], 'PullRequest')))
|
||||
inputs:
|
||||
command: 'Run an image'
|
||||
imageName: openttd/${{ parameters.Image }}:${{ parameters.Tag }}
|
||||
@@ -16,3 +32,5 @@ steps:
|
||||
workingDirectory: '$(Build.SourcesDirectory)'
|
||||
containerCommand: ${{ parameters.ContainerCommand }}
|
||||
runInBackground: false
|
||||
envVars: |
|
||||
TARGET_BRANCH
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
steps:
|
||||
- script: |
|
||||
set -ex
|
||||
HOMEBREW_NO_AUTO_UPDATE=1 brew install pkg-config lzo xz libpng
|
||||
HOMEBREW_NO_AUTO_UPDATE=1 brew install pkg-config lzo xz libpng freetype
|
||||
# Remove the dynamic libraries of these libraries, to ensure we use
|
||||
# the static versions. That is important, as it is unlikely any
|
||||
# end-user has these brew libraries installed.
|
||||
rm /usr/local/Cellar/lzo/*/lib/*.dylib
|
||||
rm /usr/local/Cellar/xz/*/lib/*.dylib
|
||||
rm /usr/local/Cellar/libpng/*/lib/*.dylib
|
||||
rm /usr/local/Cellar/freetype/*/lib/*.dylib
|
||||
displayName: 'Install dependencies'
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
steps:
|
||||
- bash: |
|
||||
set -ex
|
||||
|
||||
curl -L https://github.com/OpenTTD/CompileFarm/releases/download/latest/windows-dependencies.zip > windows-dependencies.zip
|
||||
unzip windows-dependencies.zip
|
||||
rm -f windows-dependencies.zip
|
||||
displayName: 'Download dependencies'
|
||||
workingDirectory: $(Build.ArtifactStagingDirectory)
|
||||
- script: $(Build.ArtifactStagingDirectory)\windows-dependencies\vcpkg.exe integrate install
|
||||
|
||||
mv windows-dependencies/installed /c/vcpkg/
|
||||
rm -rf windows-dependencies
|
||||
displayName: 'Install dependencies'
|
||||
workingDirectory: $(Build.ArtifactStagingDirectory)
|
||||
- script: c:\vcpkg\vcpkg.exe integrate install
|
||||
displayName: 'Integrate vcpkg'
|
||||
|
||||
@@ -374,3 +374,10 @@ AIBridge.GetName <- function(bridge_id)
|
||||
{
|
||||
return AIBridge._GetName(bridge_id, AIVehicle.VT_RAIL);
|
||||
}
|
||||
|
||||
/* 1.9 adds parent_group_id to CreateGroup function */
|
||||
AIGroup._CreateGroup <- AIGroup.CreateGroup;
|
||||
AIGroup.CreateGroup <- function(vehicle_type)
|
||||
{
|
||||
return AIGroup._CreateGroup(vehicle_type, AIGroup.GROUP_INVALID);
|
||||
}
|
||||
|
||||
@@ -126,3 +126,10 @@ AIBridge.GetName <- function(bridge_id)
|
||||
{
|
||||
return AIBridge._GetName(bridge_id, AIVehicle.VT_RAIL);
|
||||
}
|
||||
|
||||
/* 1.9 adds parent_group_id to CreateGroup function */
|
||||
AIGroup._CreateGroup <- AIGroup.CreateGroup;
|
||||
AIGroup.CreateGroup <- function(vehicle_type)
|
||||
{
|
||||
return AIGroup._CreateGroup(vehicle_type, AIGroup.GROUP_INVALID);
|
||||
}
|
||||
|
||||
@@ -63,3 +63,10 @@ AIBridge.GetName <- function(bridge_id)
|
||||
{
|
||||
return AIBridge._GetName(bridge_id, AIVehicle.VT_RAIL);
|
||||
}
|
||||
|
||||
/* 1.9 adds parent_group_id to CreateGroup function */
|
||||
AIGroup._CreateGroup <- AIGroup.CreateGroup;
|
||||
AIGroup.CreateGroup <- function(vehicle_type)
|
||||
{
|
||||
return AIGroup._CreateGroup(vehicle_type, AIGroup.GROUP_INVALID);
|
||||
}
|
||||
|
||||
@@ -15,3 +15,10 @@ AIBridge.GetName <- function(bridge_id)
|
||||
{
|
||||
return AIBridge._GetName(bridge_id, AIVehicle.VT_RAIL);
|
||||
}
|
||||
|
||||
/* 1.9 adds parent_group_id to CreateGroup function */
|
||||
AIGroup._CreateGroup <- AIGroup.CreateGroup;
|
||||
AIGroup.CreateGroup <- function(vehicle_type)
|
||||
{
|
||||
return AIGroup._CreateGroup(vehicle_type, AIGroup.GROUP_INVALID);
|
||||
}
|
||||
|
||||
@@ -15,3 +15,10 @@ AIBridge.GetName <- function(bridge_id)
|
||||
{
|
||||
return AIBridge._GetName(bridge_id, AIVehicle.VT_RAIL);
|
||||
}
|
||||
|
||||
/* 1.9 adds parent_group_id to CreateGroup function */
|
||||
AIGroup._CreateGroup <- AIGroup.CreateGroup;
|
||||
AIGroup.CreateGroup <- function(vehicle_type)
|
||||
{
|
||||
return AIGroup._CreateGroup(vehicle_type, AIGroup.GROUP_INVALID);
|
||||
}
|
||||
|
||||
@@ -15,3 +15,10 @@ AIBridge.GetName <- function(bridge_id)
|
||||
{
|
||||
return AIBridge._GetName(bridge_id, AIVehicle.VT_RAIL);
|
||||
}
|
||||
|
||||
/* 1.9 adds parent_group_id to CreateGroup function */
|
||||
AIGroup._CreateGroup <- AIGroup.CreateGroup;
|
||||
AIGroup.CreateGroup <- function(vehicle_type)
|
||||
{
|
||||
return AIGroup._CreateGroup(vehicle_type, AIGroup.GROUP_INVALID);
|
||||
}
|
||||
|
||||
@@ -15,3 +15,10 @@ AIBridge.GetName <- function(bridge_id)
|
||||
{
|
||||
return AIBridge._GetName(bridge_id, AIVehicle.VT_RAIL);
|
||||
}
|
||||
|
||||
/* 1.9 adds parent_group_id to CreateGroup function */
|
||||
AIGroup._CreateGroup <- AIGroup.CreateGroup;
|
||||
AIGroup.CreateGroup <- function(vehicle_type)
|
||||
{
|
||||
return AIGroup._CreateGroup(vehicle_type, AIGroup.GROUP_INVALID);
|
||||
}
|
||||
|
||||
@@ -15,3 +15,10 @@ AIBridge.GetName <- function(bridge_id)
|
||||
{
|
||||
return AIBridge._GetName(bridge_id, AIVehicle.VT_RAIL);
|
||||
}
|
||||
|
||||
/* 1.9 adds parent_group_id to CreateGroup function */
|
||||
AIGroup._CreateGroup <- AIGroup.CreateGroup;
|
||||
AIGroup.CreateGroup <- function(vehicle_type)
|
||||
{
|
||||
return AIGroup._CreateGroup(vehicle_type, AIGroup.GROUP_INVALID);
|
||||
}
|
||||
|
||||
@@ -15,3 +15,10 @@ AIBridge.GetName <- function(bridge_id)
|
||||
{
|
||||
return AIBridge._GetName(bridge_id, AIVehicle.VT_RAIL);
|
||||
}
|
||||
|
||||
/* 1.9 adds parent_group_id to CreateGroup function */
|
||||
AIGroup._CreateGroup <- AIGroup.CreateGroup;
|
||||
AIGroup.CreateGroup <- function(vehicle_type)
|
||||
{
|
||||
return AIGroup._CreateGroup(vehicle_type, AIGroup.GROUP_INVALID);
|
||||
}
|
||||
|
||||
@@ -15,3 +15,10 @@ AIBridge.GetName <- function(bridge_id)
|
||||
{
|
||||
return AIBridge._GetName(bridge_id, AIVehicle.VT_RAIL);
|
||||
}
|
||||
|
||||
/* 1.9 adds parent_group_id to CreateGroup function */
|
||||
AIGroup._CreateGroup <- AIGroup.CreateGroup;
|
||||
AIGroup.CreateGroup <- function(vehicle_type)
|
||||
{
|
||||
return AIGroup._CreateGroup(vehicle_type, AIGroup.GROUP_INVALID);
|
||||
}
|
||||
|
||||
@@ -574,7 +574,7 @@ function Regression::Group()
|
||||
local vehicle = AIVehicle.BuildVehicle(10000, 116);
|
||||
print(" AIVehicle.BuildVehicle(): " + vehicle);
|
||||
print(" GetNumEngines(): " + AIGroup.GetNumEngines(AIGroup.GROUP_ALL, 116));
|
||||
local group = AIGroup.CreateGroup(AIVehicle.VT_ROAD);
|
||||
local group = AIGroup.CreateGroup(AIVehicle.VT_ROAD, AIGroup.GROUP_INVALID);
|
||||
print(" CreateGroup(): " + group);
|
||||
print(" MoveVehicle(): " + AIGroup.MoveVehicle(group, vehicle));
|
||||
print(" GetNumEngines(): " + AIGroup.GetNumEngines(group, 116));
|
||||
|
||||
@@ -1,3 +1,28 @@
|
||||
1.9.0-RC2 (2019-03-24)
|
||||
------------------------------------------------------------------------
|
||||
- Fix #7400: WaterClass for tree tiles was not converted for old saves preventing industry creation (#7405)
|
||||
- Fix: Filtered file list did not scroll properly (#7402)
|
||||
- Fix #7391: Don't invalidate go to depot orders of non-aircraft when invalidating hangar orders that happen to share IDs (#7392)
|
||||
- Fix #7386: Measurement tooltip for tunnels, aqueducts & docks did not display or flickered (#7389)
|
||||
- Fix: Wrong company performance rating when money exceeds INT_MAX (#7382)
|
||||
- Fix: Permit loading of industry production callback with invalid cargo type (#7364)
|
||||
- Fix: Spelling for a few real town names (#7338)
|
||||
- Fix: Runway too short for large aircraft message should not depend on plane crashes setting (#7325)
|
||||
- Fix #7334: Ship lost after crossing bridge due to path cache not being consumed while on final bridge end (#7335)
|
||||
|
||||
|
||||
1.9.0-RC1 (2019-03-03)
|
||||
------------------------------------------------------------------------
|
||||
- Add: Various AI/GS functions for vehicle groups (#7225)
|
||||
- Change: Synchronise introduction date and reliability randomness across vehicles with the same base introduction date (#7147)
|
||||
- Change: Allow towns to build bridges over rails and one-way roads (#7291)
|
||||
- Fix: Detection of coast tiles with trees on them (#7309)
|
||||
- Fix: Emergency netsave saved the title game instead of the broken game in question (#7298)
|
||||
- Fix: Company livery window showed incorrect groups when opened in multiplayer (#7288)
|
||||
- Fix: Unable to select last group in open livery window (#7283)
|
||||
- Fix: Goto hangar orders were not invalidated when rebuilding airports (#7100)
|
||||
|
||||
|
||||
1.9.0-beta3 (2019-02-24)
|
||||
------------------------------------------------------------------------
|
||||
- Feature: Option to adjust font size separately from GUI size (#7003)
|
||||
@@ -24,10 +49,12 @@
|
||||
- Fix #7197: Invalidate depot buttons when necessary (#7212)
|
||||
- Doc: [AI] UnshareOrders empties the orders list of the vehicle
|
||||
|
||||
|
||||
1.9.0-beta2 (2019-02-09)
|
||||
------------------------------------------------------------------------
|
||||
- Fix: Non-Windows builds did not get correct git hash
|
||||
|
||||
|
||||
1.9.0-beta1 (2019-02-09)
|
||||
------------------------------------------------------------------------
|
||||
Note: OpenTTD was migrated to GitHub for 1.9, so SVN revision and FlySpray numbers have been replaced with Pull Requests and Issue numbers
|
||||
|
||||
12
config.lib
12
config.lib
@@ -820,7 +820,7 @@ check_params() {
|
||||
pre_detect_with_zlib=$with_zlib
|
||||
detect_zlib
|
||||
|
||||
if [ "$with_zlib" = "0" ] || [ -z "$zlib-config" ]; then
|
||||
if [ "$with_zlib" = "0" ] || [ -z "$zlib_config" ]; then
|
||||
log 1 "WARNING: zlib was not detected or disabled"
|
||||
log 1 "WARNING: OpenTTD doesn't require zlib, but it does mean that many features"
|
||||
log 1 "WARNING: (like loading most old savegames/scenarios, loading heightmaps,"
|
||||
@@ -1681,12 +1681,10 @@ make_cflags_and_ldflags() {
|
||||
CFLAGS="$CFLAGS -DWITH_SDL"
|
||||
# SDL must not add _GNU_SOURCE as it breaks many platforms
|
||||
CFLAGS="$CFLAGS `$sdl_config --cflags | sed 's@-D_GNU_SOURCE[^ ]*@@'`"
|
||||
if [ "$os" != "MINGW" ] && [ "$os" != "CYGWIN" ]; then
|
||||
if [ "$enable_static" != "0" ]; then
|
||||
LIBS="$LIBS `$sdl_config --static-libs`"
|
||||
else
|
||||
LIBS="$LIBS `$sdl_config --libs`"
|
||||
fi
|
||||
if [ "$enable_static" != "0" ]; then
|
||||
LIBS="$LIBS `$sdl_config --static --libs`"
|
||||
else
|
||||
LIBS="$LIBS `$sdl_config --libs`"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
@@ -759,6 +759,7 @@
|
||||
<td valign=top nowrap> </td>
|
||||
<td>
|
||||
<ul>
|
||||
<li>m1 bits 6..5: water class (sea or land)</li>
|
||||
<li>m1 bits 4..0: <a href="#OwnershipInfo">owner</a> (normally <tt>10</tt>)</li>
|
||||
<li>m2 bits 8..6: ground
|
||||
<table>
|
||||
|
||||
@@ -194,7 +194,7 @@ the array so you can quickly see what is used and what is not.
|
||||
<td class="caption">trees</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits">XXXX XXXX</td>
|
||||
<td class="bits"><span class="free">OOO</span><span class="option">~ ~~~~</span></td>
|
||||
<td class="bits"><span class="free">O</span>XX<span class="option">~ ~~~~</span></td>
|
||||
<td class="bits"><span class="free">OOOO OOO</span>X XXXX XXXX</td>
|
||||
<td class="bits"><span class="option">~~</span>XX XXXX</td>
|
||||
<td class="bits"><span class="free">OOOO OOOO</span></td>
|
||||
|
||||
@@ -83,9 +83,15 @@ if [ -d "$ROOT_DIR/.git" ]; then
|
||||
if [ -n "$TAG" ]; then
|
||||
VERSION="${TAG}"
|
||||
ISTAG="1"
|
||||
if [ -n "`echo \"${TAG}\" | grep \"^[0-9.]*$\"`" ]; then
|
||||
ISSTABLETAG="1"
|
||||
else
|
||||
ISSTABLETAG="0"
|
||||
fi
|
||||
else
|
||||
VERSION="${ISODATE}-${BRANCH}${hashprefix}${SHORTHASH}"
|
||||
ISTAG="0"
|
||||
ISSTABLETAG="0"
|
||||
fi
|
||||
|
||||
elif [ -f "$ROOT_DIR/.ottdrev" ]; then
|
||||
@@ -102,6 +108,7 @@ else
|
||||
TAG=""
|
||||
VERSION=""
|
||||
ISTAG="0"
|
||||
ISSTABLETAG="0"
|
||||
fi
|
||||
|
||||
echo "$VERSION $ISODATE $MODIFIED $HASH $ISTAG"
|
||||
echo "$VERSION $ISODATE $MODIFIED $HASH $ISTAG $ISSTABLETAG"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
OpenTTD's known bugs
|
||||
Last updated: 2019-02-24
|
||||
Release version: 1.9.0-beta3
|
||||
Last updated: 2019-03-24
|
||||
Release version: 1.9.0-RC2
|
||||
------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
@@ -1,3 +1,15 @@
|
||||
openttd (1.9.0~RC2-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.9.0-RC2
|
||||
|
||||
-- OpenTTD <info@openttd.org> Sun, 24 Mar 2019 23:00:00 +0000
|
||||
|
||||
openttd (1.9.0~RC1-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.9.0-RC1
|
||||
|
||||
-- OpenTTD <info@openttd.org> Sun, 3 Mar 2019 23:00:00 +0000
|
||||
|
||||
openttd (1.9.0~beta3-0) unstable; urgency=low
|
||||
|
||||
* New upstream release 1.9.0-beta3
|
||||
|
||||
@@ -17,9 +17,9 @@
|
||||
#
|
||||
|
||||
Name: openttd
|
||||
Version: 1.9.beta3
|
||||
Version: 1.9.RC2
|
||||
Release: 0
|
||||
%define srcver 1.9.0-beta3
|
||||
%define srcver 1.9.0-RC2
|
||||
Summary: An open source reimplementation of Chris Sawyer's Transport Tycoon Deluxe
|
||||
License: GPL-2.0
|
||||
Group: Amusements/Games/Strategy/Other
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
!define APPV_MAJOR 1
|
||||
!define APPV_MINOR 9
|
||||
!define APPV_MAINT 0
|
||||
!define APPV_BUILD 2
|
||||
!define APPV_EXTRA "-beta3"
|
||||
!define APPV_BUILD 4
|
||||
!define APPV_EXTRA "-RC2"
|
||||
|
||||
!define APPNAME "OpenTTD" ; Define application name
|
||||
!define APPVERSION "${APPV_MAJOR}.${APPV_MINOR}.${APPV_MAINT}${APPV_EXTRA}" ; Define application version
|
||||
@@ -24,6 +24,7 @@
|
||||
!define MUI_HEADERIMAGE
|
||||
!define MUI_HEADERIMAGE_BITMAP "top.bmp"
|
||||
|
||||
ManifestDPIAware true
|
||||
BrandingText "OpenTTD Installer"
|
||||
SetCompressor LZMA
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ Sub FindReplaceInFile(filename, to_find, replacement)
|
||||
file.Close
|
||||
End Sub
|
||||
|
||||
Sub UpdateFile(modified, isodate, version, cur_date, githash, istag, filename)
|
||||
Sub UpdateFile(modified, isodate, version, cur_date, githash, istag, isstabletag, filename)
|
||||
FSO.CopyFile filename & ".in", filename
|
||||
FindReplaceInFile filename, "!!MODIFIED!!", modified
|
||||
FindReplaceInFile filename, "!!ISODATE!!", isodate
|
||||
@@ -29,10 +29,11 @@ Sub UpdateFile(modified, isodate, version, cur_date, githash, istag, filename)
|
||||
FindReplaceInFile filename, "!!DATE!!", cur_date
|
||||
FindReplaceInFile filename, "!!GITHASH!!", githash
|
||||
FindReplaceInFile filename, "!!ISTAG!!", istag
|
||||
FindReplaceInFile filename, "!!ISSTABLETAG!!", isstabletag
|
||||
End Sub
|
||||
|
||||
Sub UpdateFiles(version)
|
||||
Dim modified, isodate, cur_date, githash, istag
|
||||
Dim modified, isodate, cur_date, githash, istag, isstabletag
|
||||
cur_date = DatePart("D", Date) & "." & DatePart("M", Date) & "." & DatePart("YYYY", Date)
|
||||
|
||||
If InStr(version, Chr(9)) Then
|
||||
@@ -41,20 +42,23 @@ Sub UpdateFiles(version)
|
||||
modified = Mid(isodate, InStr(isodate, Chr(9)) + 1)
|
||||
githash = Mid(modified, InStr(modified, Chr(9)) + 1)
|
||||
istag = Mid(githash, InStr(githash, Chr(9)) + 1)
|
||||
isstabletag = Mid(istag, InStr(istag, Chr(9)) + 1)
|
||||
' Remove tails from fields
|
||||
version = Mid(version, 1, InStr(version, Chr(9)) - 1)
|
||||
isodate = Mid(isodate, 1, InStr(isodate, Chr(9)) - 1)
|
||||
modified = Mid(modified, 1, InStr(modified, Chr(9)) - 1)
|
||||
githash = Mid(githash, 1, InStr(githash, Chr(9)) - 1)
|
||||
istag = Mid(istag, 1, InStr(istag, Chr(9)) - 1)
|
||||
Else
|
||||
isodate = 0
|
||||
modified = 1
|
||||
githash = ""
|
||||
istag = 0
|
||||
isstabletag = 0
|
||||
End If
|
||||
|
||||
UpdateFile modified, isodate, version, cur_date, githash, istag, "../src/rev.cpp"
|
||||
UpdateFile modified, isodate, version, cur_date, githash, istag, "../src/os/windows/ottdres.rc"
|
||||
UpdateFile modified, isodate, version, cur_date, githash, istag, isstabletag, "../src/rev.cpp"
|
||||
UpdateFile modified, isodate, version, cur_date, githash, istag, isstabletag, "../src/os/windows/ottdres.rc"
|
||||
End Sub
|
||||
|
||||
Function DetermineVersion()
|
||||
@@ -143,7 +147,7 @@ Function DetermineVersion()
|
||||
DetermineVersion = "norev000"
|
||||
modified = 1
|
||||
Else
|
||||
Dim version, hashprefix, istag
|
||||
Dim version, hashprefix, istag, isstabletag
|
||||
If modified = 0 Then
|
||||
hashprefix = "-g"
|
||||
ElseIf modified = 2 Then
|
||||
@@ -155,12 +159,21 @@ Function DetermineVersion()
|
||||
If tag <> "" Then
|
||||
version = tag
|
||||
istag = 1
|
||||
|
||||
Set stable_regexp = New RegExp
|
||||
stable_regexp.Pattern = "^[0-9.]*$"
|
||||
If stable_regexp.Test(tag) Then
|
||||
isstabletag = 1
|
||||
Else
|
||||
isstabletag = 0
|
||||
End If
|
||||
Else
|
||||
version = isodate & "-" & branch & hashprefix & shorthash
|
||||
istag = 0
|
||||
isstabletag = 0
|
||||
End If
|
||||
|
||||
DetermineVersion = version & Chr(9) & isodate & Chr(9) & modified & Chr(9) & hash & Chr(9) & istag
|
||||
DetermineVersion = version & Chr(9) & isodate & Chr(9) & modified & Chr(9) & hash & Chr(9) & istag & Chr(9) & isstabletag
|
||||
End If
|
||||
End Function
|
||||
|
||||
|
||||
@@ -410,7 +410,6 @@
|
||||
<ClCompile Include="..\src\road.cpp" />
|
||||
<ClCompile Include="..\src\roadstop.cpp" />
|
||||
<ClCompile Include="..\src\screenshot.cpp" />
|
||||
<ClCompile Include="..\src\sdl.cpp" />
|
||||
<ClCompile Include="..\src\settings.cpp" />
|
||||
<ClCompile Include="..\src\signal.cpp" />
|
||||
<ClCompile Include="..\src\signs.cpp" />
|
||||
@@ -623,7 +622,6 @@
|
||||
<ClInclude Include="..\src\roadveh.h" />
|
||||
<ClInclude Include="..\src\safeguards.h" />
|
||||
<ClInclude Include="..\src\screenshot.h" />
|
||||
<ClInclude Include="..\src\sdl.h" />
|
||||
<ClInclude Include="..\src\sound\sdl_s.h" />
|
||||
<ClInclude Include="..\src\video\sdl_v.h" />
|
||||
<ClInclude Include="..\src\settings_func.h" />
|
||||
|
||||
@@ -318,9 +318,6 @@
|
||||
<ClCompile Include="..\src\screenshot.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\sdl.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\settings.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
@@ -957,9 +954,6 @@
|
||||
<ClInclude Include="..\src\screenshot.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\sdl.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\sound\sdl_s.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
|
||||
@@ -410,7 +410,6 @@
|
||||
<ClCompile Include="..\src\road.cpp" />
|
||||
<ClCompile Include="..\src\roadstop.cpp" />
|
||||
<ClCompile Include="..\src\screenshot.cpp" />
|
||||
<ClCompile Include="..\src\sdl.cpp" />
|
||||
<ClCompile Include="..\src\settings.cpp" />
|
||||
<ClCompile Include="..\src\signal.cpp" />
|
||||
<ClCompile Include="..\src\signs.cpp" />
|
||||
@@ -623,7 +622,6 @@
|
||||
<ClInclude Include="..\src\roadveh.h" />
|
||||
<ClInclude Include="..\src\safeguards.h" />
|
||||
<ClInclude Include="..\src\screenshot.h" />
|
||||
<ClInclude Include="..\src\sdl.h" />
|
||||
<ClInclude Include="..\src\sound\sdl_s.h" />
|
||||
<ClInclude Include="..\src\video\sdl_v.h" />
|
||||
<ClInclude Include="..\src\settings_func.h" />
|
||||
|
||||
@@ -318,9 +318,6 @@
|
||||
<ClCompile Include="..\src\screenshot.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\sdl.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\settings.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
@@ -957,9 +954,6 @@
|
||||
<ClInclude Include="..\src\screenshot.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\sdl.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\sound\sdl_s.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
|
||||
@@ -410,7 +410,6 @@
|
||||
<ClCompile Include="..\src\road.cpp" />
|
||||
<ClCompile Include="..\src\roadstop.cpp" />
|
||||
<ClCompile Include="..\src\screenshot.cpp" />
|
||||
<ClCompile Include="..\src\sdl.cpp" />
|
||||
<ClCompile Include="..\src\settings.cpp" />
|
||||
<ClCompile Include="..\src\signal.cpp" />
|
||||
<ClCompile Include="..\src\signs.cpp" />
|
||||
@@ -623,7 +622,6 @@
|
||||
<ClInclude Include="..\src\roadveh.h" />
|
||||
<ClInclude Include="..\src\safeguards.h" />
|
||||
<ClInclude Include="..\src\screenshot.h" />
|
||||
<ClInclude Include="..\src\sdl.h" />
|
||||
<ClInclude Include="..\src\sound\sdl_s.h" />
|
||||
<ClInclude Include="..\src\video\sdl_v.h" />
|
||||
<ClInclude Include="..\src\settings_func.h" />
|
||||
|
||||
@@ -318,9 +318,6 @@
|
||||
<ClCompile Include="..\src\screenshot.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\sdl.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\settings.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
@@ -957,9 +954,6 @@
|
||||
<ClInclude Include="..\src\screenshot.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\sdl.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\sound\sdl_s.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
|
||||
@@ -71,9 +71,6 @@ rev.cpp
|
||||
road.cpp
|
||||
roadstop.cpp
|
||||
screenshot.cpp
|
||||
#if SDL
|
||||
sdl.cpp
|
||||
#end
|
||||
settings.cpp
|
||||
signal.cpp
|
||||
signs.cpp
|
||||
@@ -312,7 +309,6 @@ roadstop_base.h
|
||||
roadveh.h
|
||||
safeguards.h
|
||||
screenshot.h
|
||||
sdl.h
|
||||
sound/sdl_s.h
|
||||
video/sdl_v.h
|
||||
settings_func.h
|
||||
|
||||
@@ -32,7 +32,7 @@ public:
|
||||
START_NEXT_EASY = DAYS_IN_YEAR * 2,
|
||||
START_NEXT_MEDIUM = DAYS_IN_YEAR,
|
||||
START_NEXT_HARD = DAYS_IN_YEAR / 2,
|
||||
START_NEXT_MIN = 0,
|
||||
START_NEXT_MIN = 1,
|
||||
START_NEXT_MAX = 3600,
|
||||
START_NEXT_DEVIATION = 60,
|
||||
};
|
||||
|
||||
@@ -127,14 +127,3 @@ void AIConfig::SetSetting(const char *name, int value)
|
||||
|
||||
ScriptConfig::SetSetting(name, value);
|
||||
}
|
||||
|
||||
void AIConfig::AddRandomDeviation()
|
||||
{
|
||||
int start_date = this->GetSetting("start_date");
|
||||
|
||||
ScriptConfig::AddRandomDeviation();
|
||||
|
||||
/* start_date = 0 is a special case, where random deviation does not occur.
|
||||
* If start_date was not already 0, then a minimum value of 1 must apply. */
|
||||
this->SetSetting("start_date", start_date != 0 ? max(1, this->GetSetting("start_date")) : 0);
|
||||
}
|
||||
|
||||
@@ -32,7 +32,6 @@ public:
|
||||
|
||||
/* virtual */ int GetSetting(const char *name) const;
|
||||
/* virtual */ void SetSetting(const char *name, int value);
|
||||
/* virtual */ void AddRandomDeviation();
|
||||
|
||||
/**
|
||||
* When ever the AI Scanner is reloaded, all infos become invalid. This
|
||||
|
||||
@@ -783,6 +783,7 @@ int GetAircraftFlightLevel(T *v, bool takeoff)
|
||||
}
|
||||
|
||||
template int GetAircraftFlightLevel(DisasterVehicle *v, bool takeoff);
|
||||
template int GetAircraftFlightLevel(Aircraft *v, bool takeoff);
|
||||
|
||||
/**
|
||||
* Find the entry point to an airport depending on direction which
|
||||
@@ -2103,7 +2104,19 @@ void UpdateAirplanesOnNewStation(const Station *st)
|
||||
FOR_ALL_AIRCRAFT(v) {
|
||||
if (!v->IsNormalAircraft() || v->targetairport != st->index) continue;
|
||||
assert(v->state == FLYING);
|
||||
|
||||
Order *o = &v->current_order;
|
||||
/* The aircraft is heading to a hangar, but the new station doesn't have one,
|
||||
* or the aircraft can't land on the new station. Cancel current order. */
|
||||
if (o->IsType(OT_GOTO_DEPOT) && !(o->GetDepotOrderType() & ODTFB_PART_OF_ORDERS) && o->GetDestination() == st->index &&
|
||||
(!st->airport.HasHangar() || !CanVehicleUseStation(v, st))) {
|
||||
o->MakeDummy();
|
||||
SetWindowWidgetDirty(WC_VEHICLE_VIEW, v->index, WID_VV_START_STOP);
|
||||
}
|
||||
v->pos = v->previous_pos = AircraftGetEntryPoint(v, ap, rotation);
|
||||
UpdateAircraftCache(v);
|
||||
}
|
||||
|
||||
/* Heliports don't have a hangar. Invalidate all go to hangar orders from all aircraft. */
|
||||
if (!st->airport.HasHangar()) RemoveOrderFromAllVehicles(OT_GOTO_DEPOT, st->index, true);
|
||||
}
|
||||
|
||||
@@ -117,8 +117,9 @@ int32 GetPickupAmount(CargoMonitorID monitor, bool keep_monitoring)
|
||||
* @param src_type type of \a src.
|
||||
* @param src index of source.
|
||||
* @param st station where the cargo is delivered to.
|
||||
* @param dest industry index where the cargo is delivered to.
|
||||
*/
|
||||
void AddCargoDelivery(CargoID cargo_type, CompanyID company, uint32 amount, SourceType src_type, SourceID src, const Station *st)
|
||||
void AddCargoDelivery(CargoID cargo_type, CompanyID company, uint32 amount, SourceType src_type, SourceID src, const Station *st, IndustryID dest)
|
||||
{
|
||||
if (amount == 0) return;
|
||||
|
||||
@@ -151,6 +152,7 @@ void AddCargoDelivery(CargoID cargo_type, CompanyID company, uint32 amount, Sour
|
||||
|
||||
/* Industry delivery. */
|
||||
for (const Industry * const *ip = st->industries_near.Begin(); ip != st->industries_near.End(); ip++) {
|
||||
if ((*ip)->index != dest) continue;
|
||||
CargoMonitorID num = EncodeCargoIndustryMonitor(company, cargo_type, (*ip)->index);
|
||||
CargoMonitorMap::iterator iter = _cargo_deliveries.find(num);
|
||||
if (iter != _cargo_deliveries.end()) iter->second += amount;
|
||||
|
||||
@@ -149,6 +149,6 @@ void ClearCargoPickupMonitoring(CompanyID company = INVALID_OWNER);
|
||||
void ClearCargoDeliveryMonitoring(CompanyID company = INVALID_OWNER);
|
||||
int32 GetDeliveryAmount(CargoMonitorID monitor, bool keep_monitoring);
|
||||
int32 GetPickupAmount(CargoMonitorID monitor, bool keep_monitoring);
|
||||
void AddCargoDelivery(CargoID cargo_type, CompanyID company, uint32 amount, SourceType src_type, SourceID src, const Station *st);
|
||||
void AddCargoDelivery(CargoID cargo_type, CompanyID company, uint32 amount, SourceType src_type, SourceID src, const Station *st, IndustryID dest = INVALID_INDUSTRY);
|
||||
|
||||
#endif /* CARGOMONITOR_H */
|
||||
|
||||
@@ -283,7 +283,7 @@ static const Command _command_proc_table[] = {
|
||||
|
||||
DEF_CMD(CmdTurnRoadVeh, 0, CMDT_VEHICLE_MANAGEMENT ), // CMD_TURN_ROADVEH
|
||||
|
||||
DEF_CMD(CmdPause, CMD_SERVER | CMD_NO_EST, CMDT_SERVER_SETTING ), // CMD_PAUSE
|
||||
DEF_CMD(CmdPause, CMD_SERVER, CMDT_SERVER_SETTING ), // CMD_PAUSE
|
||||
|
||||
DEF_CMD(CmdBuyShareInCompany, 0, CMDT_MONEY_MANAGEMENT ), // CMD_BUY_SHARE_IN_COMPANY
|
||||
DEF_CMD(CmdSellShareInCompany, 0, CMDT_MONEY_MANAGEMENT ), // CMD_SELL_SHARE_IN_COMPANY
|
||||
@@ -307,7 +307,7 @@ static const Command _command_proc_table[] = {
|
||||
DEF_CMD(CmdChangeBankBalance, CMD_DEITY, CMDT_MONEY_MANAGEMENT ), // CMD_CHANGE_BANK_BALANCE
|
||||
DEF_CMD(CmdBuildCanal, CMD_AUTO, CMDT_LANDSCAPE_CONSTRUCTION), // CMD_BUILD_CANAL
|
||||
DEF_CMD(CmdCreateSubsidy, CMD_DEITY, CMDT_OTHER_MANAGEMENT ), // CMD_CREATE_SUBSIDY
|
||||
DEF_CMD(CmdCompanyCtrl, CMD_SPECTATOR | CMD_CLIENT_ID | CMD_NO_EST, CMDT_SERVER_SETTING ), // CMD_COMPANY_CTRL
|
||||
DEF_CMD(CmdCompanyCtrl, CMD_SPECTATOR | CMD_CLIENT_ID, CMDT_SERVER_SETTING ), // CMD_COMPANY_CTRL
|
||||
DEF_CMD(CmdCustomNewsItem, CMD_STR_CTRL | CMD_DEITY, CMDT_OTHER_MANAGEMENT ), // CMD_CUSTOM_NEWS_ITEM
|
||||
DEF_CMD(CmdCreateGoal, CMD_STR_CTRL | CMD_DEITY, CMDT_OTHER_MANAGEMENT ), // CMD_CREATE_GOAL
|
||||
DEF_CMD(CmdRemoveGoal, CMD_DEITY, CMDT_OTHER_MANAGEMENT ), // CMD_REMOVE_GOAL
|
||||
@@ -558,7 +558,7 @@ bool DoCommandP(TileIndex tile, uint32 p1, uint32 p2, uint32 cmd, CommandCallbac
|
||||
bool estimate_only = _shift_pressed && IsLocalCompany() &&
|
||||
!_generating_world &&
|
||||
!(cmd & CMD_NETWORK_COMMAND) &&
|
||||
!(GetCommandFlags(cmd) & CMD_NO_EST);
|
||||
(cmd & CMD_ID_MASK) != CMD_PAUSE;
|
||||
|
||||
/* We're only sending the command, so don't do
|
||||
* fancy things for 'success'. */
|
||||
|
||||
@@ -395,7 +395,6 @@ enum CommandFlags {
|
||||
CMD_CLIENT_ID = 0x080, ///< set p2 with the ClientID of the sending client.
|
||||
CMD_DEITY = 0x100, ///< the command may be executed by COMPANY_DEITY
|
||||
CMD_STR_CTRL = 0x200, ///< the command's string may contain control strings
|
||||
CMD_NO_EST = 0x400, ///< the command is never estimated.
|
||||
};
|
||||
DECLARE_ENUM_AS_BIT_SET(CommandFlags)
|
||||
|
||||
|
||||
@@ -595,10 +595,10 @@ void StartupCompanies()
|
||||
}
|
||||
|
||||
/** Start a new competitor company if possible. */
|
||||
static bool MaybeStartNewCompany()
|
||||
static void MaybeStartNewCompany()
|
||||
{
|
||||
#ifdef ENABLE_NETWORK
|
||||
if (_networking && Company::GetNumItems() >= _settings_client.network.max_companies) return false;
|
||||
if (_networking && Company::GetNumItems() >= _settings_client.network.max_companies) return;
|
||||
#endif /* ENABLE_NETWORK */
|
||||
|
||||
Company *c;
|
||||
@@ -612,10 +612,8 @@ static bool MaybeStartNewCompany()
|
||||
if (n < (uint)_settings_game.difficulty.max_no_competitors) {
|
||||
/* Send a command to all clients to start up a new AI.
|
||||
* Works fine for Multiplayer and Singleplayer */
|
||||
return DoCommandP(0, CCA_NEW_AI | INVALID_COMPANY << 16, 0, CMD_COMPANY_CTRL);
|
||||
DoCommandP(0, CCA_NEW_AI | INVALID_COMPANY << 16, 0, CMD_COMPANY_CTRL);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/** Initialize the pool of companies. */
|
||||
@@ -716,19 +714,11 @@ void OnTick_Companies()
|
||||
}
|
||||
|
||||
if (_next_competitor_start == 0) {
|
||||
/* AI::GetStartNextTime() can return 0. */
|
||||
_next_competitor_start = max(1, AI::GetStartNextTime() * DAY_TICKS);
|
||||
_next_competitor_start = AI::GetStartNextTime() * DAY_TICKS;
|
||||
}
|
||||
|
||||
if (_game_mode != GM_MENU && AI::CanStartNew() && --_next_competitor_start == 0) {
|
||||
/* Allow multiple AIs to possibly start in the same tick. */
|
||||
do {
|
||||
if (!MaybeStartNewCompany()) break;
|
||||
|
||||
/* In networking mode, we can only send a command to start but it
|
||||
* didn't execute yet, so we cannot loop. */
|
||||
if (_networking) break;
|
||||
} while (AI::GetStartNextTime() == 0);
|
||||
if (AI::CanStartNew() && _game_mode != GM_MENU && --_next_competitor_start == 0) {
|
||||
MaybeStartNewCompany();
|
||||
}
|
||||
|
||||
_cur_company_tick_index = (_cur_company_tick_index + 1) % MAX_COMPANIES;
|
||||
|
||||
@@ -707,7 +707,7 @@ public:
|
||||
this->BuildGroupList(company);
|
||||
this->SetRows();
|
||||
} else {
|
||||
this->SetSelectedGroup(group);
|
||||
this->SetSelectedGroup(company, group);
|
||||
}
|
||||
|
||||
this->FinishInitNested(company);
|
||||
@@ -715,7 +715,7 @@ public:
|
||||
this->InvalidateData(1);
|
||||
}
|
||||
|
||||
void SetSelectedGroup(GroupID group)
|
||||
void SetSelectedGroup(CompanyID company, GroupID group)
|
||||
{
|
||||
this->RaiseWidget(this->livery_class + WID_SCL_CLASS_GENERAL);
|
||||
const Group *g = Group::Get(group);
|
||||
@@ -730,7 +730,7 @@ public:
|
||||
this->LowerWidget(this->livery_class + WID_SCL_CLASS_GENERAL);
|
||||
|
||||
this->groups.ForceRebuild();
|
||||
this->BuildGroupList((CompanyID)this->window_number);
|
||||
this->BuildGroupList(company);
|
||||
this->SetRows();
|
||||
|
||||
/* Position scrollbar to selected group */
|
||||
@@ -1025,9 +1025,15 @@ public:
|
||||
if (data != -1) {
|
||||
/* data contains a VehicleType, rebuild list if it displayed */
|
||||
if (this->livery_class == data + LC_GROUP_RAIL) {
|
||||
if (!Group::IsValidID(this->sel)) this->sel = INVALID_GROUP;
|
||||
this->groups.ForceRebuild();
|
||||
this->BuildGroupList((CompanyID)this->window_number);
|
||||
this->SetRows();
|
||||
|
||||
if (!Group::IsValidID(this->sel)) {
|
||||
this->sel = INVALID_GROUP;
|
||||
if (this->groups.Length() > 0) this->sel = this->groups[0]->index;
|
||||
}
|
||||
|
||||
this->SetDirty();
|
||||
}
|
||||
return;
|
||||
@@ -1099,7 +1105,7 @@ void ShowCompanyLiveryWindow(CompanyID company, GroupID group)
|
||||
if (w == NULL) {
|
||||
new SelectCompanyLiveryWindow(&_select_company_livery_desc, company, group);
|
||||
} else if (group != INVALID_GROUP) {
|
||||
w->SetSelectedGroup(group);
|
||||
w->SetSelectedGroup(company, group);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -62,7 +62,6 @@
|
||||
#include <lzo/lzo1x.h>
|
||||
#endif
|
||||
#ifdef WITH_SDL
|
||||
# include "sdl.h"
|
||||
# include <SDL.h>
|
||||
#endif /* WITH_SDL */
|
||||
#ifdef WITH_ZLIB
|
||||
@@ -195,7 +194,7 @@ char *CrashLog::LogConfiguration(char *buffer, const char *last) const
|
||||
FontCache::Get(FS_MONO)->GetFontName()
|
||||
);
|
||||
|
||||
buffer += seprintf(buffer, last, "AI Configuration (local: %i):\n", (int)_local_company);
|
||||
buffer += seprintf(buffer, last, "AI Configuration (local: %i) (current: %i):\n", (int)_local_company, (int)_current_company);
|
||||
const Company *c;
|
||||
FOR_ALL_COMPANIES(c) {
|
||||
if (c->ai_info == NULL) {
|
||||
@@ -268,14 +267,8 @@ char *CrashLog::LogLibraries(char *buffer, const char *last) const
|
||||
#endif /* WITH_PNG */
|
||||
|
||||
#ifdef WITH_SDL
|
||||
#ifdef DYNAMICALLY_LOADED_SDL
|
||||
if (SDL_CALL SDL_Linked_Version != NULL) {
|
||||
#else
|
||||
{
|
||||
#endif
|
||||
const SDL_version *v = SDL_CALL SDL_Linked_Version();
|
||||
buffer += seprintf(buffer, last, " SDL: %d.%d.%d\n", v->major, v->minor, v->patch);
|
||||
}
|
||||
const SDL_version *v = SDL_Linked_Version();
|
||||
buffer += seprintf(buffer, last, " SDL: %d.%d.%d\n", v->major, v->minor, v->patch);
|
||||
#endif /* WITH_SDL */
|
||||
|
||||
#ifdef WITH_ZLIB
|
||||
|
||||
@@ -260,7 +260,7 @@ int UpdateCompanyRatingAndValue(Company *c, bool update)
|
||||
/* Skip the total */
|
||||
if (i == SCORE_TOTAL) continue;
|
||||
/* Check the score */
|
||||
s = Clamp(_score_part[owner][i], 0, _score_info[i].needed) * _score_info[i].score / _score_info[i].needed;
|
||||
s = Clamp<int64>(_score_part[owner][i], 0, _score_info[i].needed) * _score_info[i].score / _score_info[i].needed;
|
||||
score += s;
|
||||
total_score += _score_info[i].score;
|
||||
}
|
||||
@@ -1030,9 +1030,10 @@ static SmallIndustryList _cargo_delivery_destinations;
|
||||
* @param cargo_type Type of cargo delivered
|
||||
* @param num_pieces Amount of cargo delivered
|
||||
* @param source The source of the cargo
|
||||
* @param company The company delivering the cargo
|
||||
* @return actually accepted pieces of cargo
|
||||
*/
|
||||
static uint DeliverGoodsToIndustry(const Station *st, CargoID cargo_type, uint num_pieces, IndustryID source)
|
||||
static uint DeliverGoodsToIndustry(const Station *st, CargoID cargo_type, uint num_pieces, IndustryID source, CompanyID company)
|
||||
{
|
||||
/* Find the nearest industrytile to the station sign inside the catchment area, whose industry accepts the cargo.
|
||||
* This fails in three cases:
|
||||
@@ -1065,6 +1066,9 @@ static uint DeliverGoodsToIndustry(const Station *st, CargoID cargo_type, uint n
|
||||
ind->last_cargo_accepted_at[cargo_index] = _date;
|
||||
num_pieces -= amount;
|
||||
accepted += amount;
|
||||
|
||||
/* Update the cargo monitor. */
|
||||
AddCargoDelivery(cargo_type, company, amount, ST_INDUSTRY, source, st, ind->index);
|
||||
}
|
||||
|
||||
return accepted;
|
||||
@@ -1090,30 +1094,30 @@ static Money DeliverGoods(int num_pieces, CargoID cargo_type, StationID dest, Ti
|
||||
Station *st = Station::Get(dest);
|
||||
|
||||
/* Give the goods to the industry. */
|
||||
uint accepted = DeliverGoodsToIndustry(st, cargo_type, num_pieces, src_type == ST_INDUSTRY ? src : INVALID_INDUSTRY);
|
||||
uint accepted_ind = DeliverGoodsToIndustry(st, cargo_type, num_pieces, src_type == ST_INDUSTRY ? src : INVALID_INDUSTRY, company->index);
|
||||
|
||||
/* If this cargo type is always accepted, accept all */
|
||||
if (HasBit(st->always_accepted, cargo_type)) accepted = num_pieces;
|
||||
uint accepted_total = HasBit(st->always_accepted, cargo_type) ? num_pieces : accepted_ind;
|
||||
|
||||
/* Update station statistics */
|
||||
if (accepted > 0) {
|
||||
if (accepted_total > 0) {
|
||||
SetBit(st->goods[cargo_type].status, GoodsEntry::GES_EVER_ACCEPTED);
|
||||
SetBit(st->goods[cargo_type].status, GoodsEntry::GES_CURRENT_MONTH);
|
||||
SetBit(st->goods[cargo_type].status, GoodsEntry::GES_ACCEPTED_BIGTICK);
|
||||
}
|
||||
|
||||
/* Update company statistics */
|
||||
company->cur_economy.delivered_cargo[cargo_type] += accepted;
|
||||
company->cur_economy.delivered_cargo[cargo_type] += accepted_total;
|
||||
|
||||
/* Increase town's counter for town effects */
|
||||
const CargoSpec *cs = CargoSpec::Get(cargo_type);
|
||||
st->town->received[cs->town_effect].new_act += accepted;
|
||||
st->town->received[cs->town_effect].new_act += accepted_total;
|
||||
|
||||
/* Determine profit */
|
||||
Money profit = GetTransportedGoodsIncome(accepted, DistanceManhattan(source_tile, st->xy), days_in_transit, cargo_type);
|
||||
Money profit = GetTransportedGoodsIncome(accepted_total, DistanceManhattan(source_tile, st->xy), days_in_transit, cargo_type);
|
||||
|
||||
/* Update the cargo monitor. */
|
||||
AddCargoDelivery(cargo_type, company->index, accepted, src_type, src, st);
|
||||
AddCargoDelivery(cargo_type, company->index, accepted_total - accepted_ind, src_type, src, st);
|
||||
|
||||
/* Modify profit if a subsidy is in effect */
|
||||
if (CheckSubsidised(cargo_type, company->index, src_type, src, st)) {
|
||||
|
||||
@@ -652,7 +652,14 @@ void StartupOneEngine(Engine *e, Date aging_date)
|
||||
/* Don't randomise the start-date in the first two years after gamestart to ensure availability
|
||||
* of engines in early starting games.
|
||||
* Note: TTDP uses fixed 1922 */
|
||||
SavedRandomSeeds saved_seeds;
|
||||
SaveRandomSeeds(&saved_seeds);
|
||||
SetRandomSeed(_settings_game.game_creation.generation_seed ^
|
||||
ei->base_intro ^
|
||||
e->type ^
|
||||
e->GetGRFID());
|
||||
uint32 r = Random();
|
||||
|
||||
e->intro_date = ei->base_intro <= ConvertYMDToDate(_settings_game.game_creation.starting_year + 2, 0, 1) ? ei->base_intro : (Date)GB(r, 0, 9) + ei->base_intro;
|
||||
if (e->intro_date <= _date) {
|
||||
e->age = (aging_date - e->intro_date) >> 5;
|
||||
@@ -672,6 +679,7 @@ void StartupOneEngine(Engine *e, Date aging_date)
|
||||
|
||||
e->reliability_spd_dec = ei->decay_speed << 2;
|
||||
|
||||
RestoreRandomSeeds(saved_seeds);
|
||||
CalcEngineReliability(e);
|
||||
|
||||
/* prevent certain engines from ever appearing. */
|
||||
|
||||
@@ -437,12 +437,15 @@ public:
|
||||
GfxFillRect(r.left + 1, r.top + 1, r.right, r.bottom, PC_BLACK);
|
||||
|
||||
uint y = r.top + WD_FRAMERECT_TOP;
|
||||
for (uint pos = this->vscroll->GetPosition(); pos < this->fios_items.Length(); pos++) {
|
||||
if (!this->fios_items_shown[pos]) {
|
||||
uint scroll_pos = this->vscroll->GetPosition();
|
||||
for (uint row = 0; row < this->fios_items.Length(); row++) {
|
||||
if (!this->fios_items_shown[row]) {
|
||||
/* The current item is filtered out : we do not show it */
|
||||
scroll_pos++;
|
||||
continue;
|
||||
}
|
||||
const FiosItem *item = this->fios_items.Get(pos);
|
||||
if (row < scroll_pos) continue;
|
||||
const FiosItem *item = this->fios_items.Get(row);
|
||||
|
||||
if (item == this->selected) {
|
||||
GfxFillRect(r.left + 1, y, r.right, y + this->resize.step_height, PC_DARK_BLUE);
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#include <map>
|
||||
#include <string>
|
||||
#include <stack>
|
||||
#include <vector>
|
||||
|
||||
#ifdef WITH_ICU_LAYOUT
|
||||
#include "layout/ParagraphLayout.h"
|
||||
@@ -35,7 +36,7 @@ struct FontState {
|
||||
FontSize fontsize; ///< Current font size.
|
||||
TextColour cur_colour; ///< Current text colour.
|
||||
|
||||
std::stack<TextColour> colour_stack; ///< Stack of colours to assist with colour switching.
|
||||
std::stack<TextColour, std::vector<TextColour>> colour_stack; ///< Stack of colours to assist with colour switching.
|
||||
|
||||
FontState() : fontsize(FS_END), cur_colour(TC_INVALID) {}
|
||||
FontState(TextColour colour, FontSize fontsize) : fontsize(fontsize), cur_colour(colour) {}
|
||||
|
||||
@@ -408,17 +408,6 @@ CommandCost CmdDeleteGroup(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3
|
||||
return CommandCost();
|
||||
}
|
||||
|
||||
static bool IsUniqueGroupNameForVehicleType(const char *name, VehicleType type)
|
||||
{
|
||||
const Group *g;
|
||||
|
||||
FOR_ALL_GROUPS(g) {
|
||||
if (g->name != NULL && g->vehicle_type == type && strcmp(g->name, name) == 0) return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Alter a group
|
||||
* @param tile unused
|
||||
@@ -442,7 +431,6 @@ CommandCost CmdAlterGroup(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32
|
||||
|
||||
if (!reset) {
|
||||
if (Utf8StringLength(text) >= MAX_LENGTH_GROUP_NAME_CHARS) return CMD_ERROR;
|
||||
if (!IsUniqueGroupNameForVehicleType(text, g->vehicle_type)) return_cmd_error(STR_ERROR_NAME_MUST_BE_UNIQUE);
|
||||
}
|
||||
|
||||
if (flags & DC_EXEC) {
|
||||
|
||||
@@ -2753,12 +2753,12 @@ struct IndustryCargoesWindow : public Window {
|
||||
}
|
||||
}
|
||||
|
||||
virtual void OnHover(Point pt, int widget)
|
||||
bool OnTooltip(Point pt, int widget, TooltipCloseCondition close_cond)
|
||||
{
|
||||
if (widget != WID_IC_PANEL) return;
|
||||
if (widget != WID_IC_PANEL) return false;
|
||||
|
||||
Point fieldxy, xy;
|
||||
if (!CalculatePositionInWidget(pt, &fieldxy, &xy)) return;
|
||||
if (!CalculatePositionInWidget(pt, &fieldxy, &xy)) return false;
|
||||
|
||||
const CargoesField *fld = this->fields[fieldxy.y].columns + fieldxy.x;
|
||||
CargoID cid = INVALID_CARGO;
|
||||
@@ -2777,9 +2777,9 @@ struct IndustryCargoesWindow : public Window {
|
||||
|
||||
case CFT_INDUSTRY:
|
||||
if (fld->u.industry.ind_type < NUM_INDUSTRYTYPES && (this->ind_cargo >= NUM_INDUSTRYTYPES || fieldxy.x != 2)) {
|
||||
GuiShowTooltips(this, STR_INDUSTRY_CARGOES_INDUSTRY_TOOLTIP, 0, NULL, TCC_HOVER);
|
||||
GuiShowTooltips(this, STR_INDUSTRY_CARGOES_INDUSTRY_TOOLTIP, 0, NULL, close_cond);
|
||||
}
|
||||
return;
|
||||
return true;
|
||||
|
||||
default:
|
||||
break;
|
||||
@@ -2788,8 +2788,11 @@ struct IndustryCargoesWindow : public Window {
|
||||
const CargoSpec *csp = CargoSpec::Get(cid);
|
||||
uint64 params[5];
|
||||
params[0] = csp->name;
|
||||
GuiShowTooltips(this, STR_INDUSTRY_CARGOES_CARGO_TOOLTIP, 1, params, TCC_HOVER);
|
||||
GuiShowTooltips(this, STR_INDUSTRY_CARGOES_CARGO_TOOLTIP, 1, params, close_cond);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
virtual void OnResize()
|
||||
|
||||
@@ -190,6 +190,8 @@ STR_COLOUR_ORANGE :{G=Masculin}Tar
|
||||
STR_COLOUR_BROWN :{G=Masculin}Marró
|
||||
STR_COLOUR_GREY :{G=Masculin}Gris
|
||||
STR_COLOUR_WHITE :{G=Masculin}Blanc
|
||||
STR_COLOUR_RANDOM :Aleatori
|
||||
STR_COLOUR_DEFAULT :Per defecte
|
||||
|
||||
# Units used in OpenTTD
|
||||
STR_UNITS_VELOCITY_IMPERIAL :{COMMA}{NBSP}mph
|
||||
@@ -465,6 +467,7 @@ STR_TOOLBAR_SOUND_MUSIC :So/música
|
||||
############ range for message menu starts
|
||||
STR_NEWS_MENU_LAST_MESSAGE_NEWS_REPORT :Darrer missatge/notícia
|
||||
STR_NEWS_MENU_MESSAGE_HISTORY_MENU :Historial de missatges
|
||||
STR_NEWS_MENU_DELETE_ALL_MESSAGES :Esborra tots els missatges
|
||||
############ range ends here
|
||||
|
||||
############ range for about menu starts
|
||||
@@ -816,6 +819,7 @@ STR_NEWS_MERGER_TAKEOVER_TITLE :{BIG_FONT}{BLAC
|
||||
STR_PRESIDENT_NAME_MANAGER :{BLACK}{PRESIDENT_NAME}{}(President)
|
||||
|
||||
STR_NEWS_NEW_TOWN :{BLACK}{BIG_FONT}{STRING} ha patrocinat la construcció d'una nova població, anomenada {TOWN}
|
||||
STR_NEWS_NEW_TOWN_UNSPONSORED :{BLACK}{BIG_FONT}S'ha fundat una nova població que es diu {TOWN}!
|
||||
|
||||
STR_NEWS_INDUSTRY_CONSTRUCTION :{BIG_FONT}{BLACK}No{G u va} {STRING} en construcció prop de {TOWN}
|
||||
STR_NEWS_INDUSTRY_PLANTED :{BIG_FONT}{BLACK}S'està plantant {G un una} {G nou nova} {STRING} prop de {TOWN}
|
||||
@@ -928,6 +932,8 @@ STR_GAME_OPTIONS_CURRENCY_ZAR :Rand sud-afric
|
||||
STR_GAME_OPTIONS_CURRENCY_CUSTOM :Personalitzada
|
||||
STR_GAME_OPTIONS_CURRENCY_GEL :Lari georgià (GEL)
|
||||
STR_GAME_OPTIONS_CURRENCY_IRR :Rial iranià (IRR)
|
||||
STR_GAME_OPTIONS_CURRENCY_RUB :Ruble rus modern (RUB)
|
||||
STR_GAME_OPTIONS_CURRENCY_MXN :Peso mexicà (MXN)
|
||||
############ end of currency region
|
||||
|
||||
STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Vehicles de carretera
|
||||
@@ -990,7 +996,12 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :Normal
|
||||
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :Doble
|
||||
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Quàdruple
|
||||
|
||||
STR_GAME_OPTIONS_FONT_ZOOM :{BLACK}Mida de la lletra
|
||||
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Seleccioneu la mida de les fonts de la interfície.
|
||||
|
||||
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal
|
||||
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Doble
|
||||
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Quàdruple
|
||||
|
||||
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Conjunt de gràfics base
|
||||
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Selecciona el conjunt de gràfics base a utilitzar
|
||||
@@ -1259,6 +1270,8 @@ STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}No es po
|
||||
STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Manteniment de la infraestructura: {STRING}
|
||||
STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Quan està activat, la infraestructura provoca costos de manteniment. El cost creix proporcionalment al tamany de la xarxa de transport, afectant en conseqüència més a les companyies grosses que a les petites
|
||||
|
||||
STR_CONFIG_SETTING_COMPANY_STARTING_COLOUR :Color inicial de la companyia: {STRING}
|
||||
STR_CONFIG_SETTING_COMPANY_STARTING_COLOUR_HELPTEXT :Escolliu el color inicial de la vostra companyia.
|
||||
|
||||
STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS :Els aeroports mai caduquen: {STRING}
|
||||
STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS_HELPTEXT :Activant aquesta opció fa que cada tipus d'aeroport estigui disponible per sempre després de la seva introducció
|
||||
@@ -1817,6 +1830,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Canvia l
|
||||
STR_CHEAT_SETUP_PROD :{LTBLUE}Activa la modificació dels valors de producció: {ORANGE}{STRING}
|
||||
|
||||
# Livery window
|
||||
STR_LIVERY_CAPTION :{WHITE}{COMPANY} - Esquema de colors nou
|
||||
|
||||
STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Mostra esquemes de colors generals
|
||||
STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Mostra els esquemes de colors dels trens
|
||||
@@ -2076,6 +2090,7 @@ STR_NETWORK_CONNECTION_DISCONNECT :{BLACK}Desconne
|
||||
|
||||
STR_NETWORK_NEED_GAME_PASSWORD_CAPTION :{WHITE}Servidor protegit: escriviu-ne la contrasenya
|
||||
STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION :{WHITE}Companyia protegida: escriviu-ne la contrasenya
|
||||
STR_NETWORK_COMPANY_LIST_CLIENT_LIST_CAPTION :{WHITE}Llista de clients
|
||||
|
||||
# Network company list added strings
|
||||
STR_NETWORK_COMPANY_LIST_CLIENT_LIST :Llista de clients
|
||||
@@ -2376,7 +2391,7 @@ STR_BUILD_SIGNAL_ELECTRIC_COMBO_TOOLTIP :{BLACK}Senyal p
|
||||
STR_BUILD_SIGNAL_ELECTRIC_PBS_TOOLTIP :{BLACK}Senyal de ruta (elèctric){}Un senyal de ruta permet entrar més d'un tren dins de la mateixa secció de vies. Cal, però, que sigui capaç de reservar una ruta fins un punt de parada segur sense creuar-se amb cap altre tren. Es pot travessar en el sentit contrari al senyal.
|
||||
STR_BUILD_SIGNAL_ELECTRIC_PBS_OWAY_TOOLTIP :{BLACK}Senyal de ruta d'un sentit (elèctric){}Un senyal de ruta permet entrar més d'un tren dins de la mateixa secció de vies. Cal, però, que sigui capaç de reservar una ruta fins un punt de parada segur sense creuar-se amb cap altre tren. No es pot travessar en el sentit contrari al senyal.
|
||||
STR_BUILD_SIGNAL_CONVERT_TOOLTIP :{BLACK}Conversió de senyals{}Quan aquest botó està premut, si es clica un senyal existent el converteix al tipus de senyal seleccionat. Ctrl+Clic commuta la variant existent. Maj+Clic mostra el cost estimat de conversió.
|
||||
STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_TOOLTIP :{BLACK}Espaiat entre senyals
|
||||
STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_TOOLTIP :{BLACK}Distància entre senyals
|
||||
STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_DECREASE_TOOLTIP :{BLACK}Disminueix l'espai entre senyals consecutives situades automàticament quan s'arrossega el ratolí o es manté premuda la tecla Ctrl.
|
||||
STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_INCREASE_TOOLTIP :{BLACK}Augmenta l'espai entre senyals consecutives situades automàticament quan s'arrossega el ratolí o es manté premuda la tecla Ctrl.
|
||||
|
||||
@@ -2703,36 +2718,39 @@ STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD
|
||||
# Framerate display window
|
||||
STR_FRAMERATE_CAPTION :{WHITE}Fotogrames per segon
|
||||
STR_FRAMERATE_CAPTION_SMALL :{STRING}{WHITE} (x{DECIMAL})
|
||||
STR_FRAMERATE_RATE_GAMELOOP :{WHITE}Velocitat de simulació: {STRING}
|
||||
STR_FRAMERATE_RATE_GAMELOOP :{BLACK}Velocitat de simulació: {STRING}
|
||||
STR_FRAMERATE_RATE_GAMELOOP_TOOLTIP :{BLACK}Nombre de tics del joc per segon.
|
||||
STR_FRAMERATE_RATE_BLITTER :{WHITE}Fotogrames per segon: {STRING}
|
||||
STR_FRAMERATE_RATE_BLITTER :{BLACK}Fotogrames per segon: {STRING}
|
||||
STR_FRAMERATE_RATE_BLITTER_TOOLTIP :{BLACK}Nombre de fotogrames renderitzats per segon.
|
||||
STR_FRAMERATE_SPEED_FACTOR :{WHITE}Factor de velocitat actual: x{DECIMAL}
|
||||
STR_FRAMERATE_SPEED_FACTOR :{BLACK}Factor de velocitat actual: x{DECIMAL}
|
||||
STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK}Quant ràpid va la partida actual, comparant-ho amb l'estimació de la velocitat normal.
|
||||
STR_FRAMERATE_CURRENT :{WHITE}Actual
|
||||
STR_FRAMERATE_AVERAGE :{WHITE}Mitjana
|
||||
STR_FRAMERATE_DATA_POINTS :{WHITE}Dades basades en {COMMA} mesures.
|
||||
STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL}{WHITE}{NBSP}ms
|
||||
STR_FRAMERATE_MS_WARN :{YELLOW}{DECIMAL}{WHITE}{NBSP}ms
|
||||
STR_FRAMERATE_MS_BAD :{RED}{DECIMAL}{WHITE}{NBSP}ms
|
||||
STR_FRAMERATE_FPS_GOOD :{LTBLUE}{DECIMAL}{WHITE}{NBSP}fps
|
||||
STR_FRAMERATE_FPS_WARN :{YELLOW}{DECIMAL}{WHITE}{NBSP}fps
|
||||
STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL}{WHITE}{NBSP}fps
|
||||
STR_FRAMERATE_DATA_POINTS :{BLACK}Dades basades en {COMMA} mesures.
|
||||
STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL}{NBSP}ms
|
||||
STR_FRAMERATE_MS_WARN :{YELLOW}{DECIMAL}{NBSP}ms
|
||||
STR_FRAMERATE_MS_BAD :{RED}{DECIMAL}{NBSP}ms
|
||||
STR_FRAMERATE_FPS_GOOD :{LTBLUE}{DECIMAL}{NBSP}fps
|
||||
STR_FRAMERATE_FPS_WARN :{YELLOW}{DECIMAL}{NBSP}fps
|
||||
STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL}{NBSP}fps
|
||||
STR_FRAMERATE_GRAPH_MILLISECONDS :{TINY_FONT}{COMMA}{NBSP}ms
|
||||
STR_FRAMERATE_GRAPH_SECONDS :{TINY_FONT}{COMMA}{NBSP}s
|
||||
############ Leave those lines in this order!!
|
||||
STR_FRAMERATE_GAMELOOP :{WHITE}Total del bucle:
|
||||
STR_FRAMERATE_GL_ECONOMY :{WHITE} Tractament de la càrrega:
|
||||
STR_FRAMERATE_GL_TRAINS :{WHITE} Tics de tren:
|
||||
STR_FRAMERATE_GL_ROADVEHS :{WHITE} Tics de vehicles de carretera:
|
||||
STR_FRAMERATE_GL_SHIPS :{WHITE} Tics de vaixell:
|
||||
STR_FRAMERATE_GL_AIRCRAFT :{WHITE} Tics d'aeronau:
|
||||
STR_FRAMERATE_GL_LANDSCAPE :{WHITE} Tics del mapa:
|
||||
STR_FRAMERATE_GL_LINKGRAPH :{WHITE} Retard del graf de distribució:
|
||||
STR_FRAMERATE_DRAWING :{WHITE}Renderitzat de gràfics:
|
||||
STR_FRAMERATE_DRAWING_VIEWPORTS :{WHITE} Vistes del mapa:
|
||||
STR_FRAMERATE_VIDEO :{WHITE}Sortida de vídeo:
|
||||
STR_FRAMERATE_SOUND :{WHITE}Mescla de so:
|
||||
STR_FRAMERATE_GAMELOOP :{BLACK}Total del bucle:
|
||||
STR_FRAMERATE_GL_ECONOMY :{BLACK} Tractament de càrrega:
|
||||
STR_FRAMERATE_GL_TRAINS :{BLACK} Tics de trens:
|
||||
STR_FRAMERATE_GL_ROADVEHS :{BLACK} Tics de vehicles de carretera:
|
||||
STR_FRAMERATE_GL_SHIPS :{BLACK} Tics de vaixells:
|
||||
STR_FRAMERATE_GL_AIRCRAFT :{BLACK} Tics d'aeronaus:
|
||||
STR_FRAMERATE_GL_LANDSCAPE :{BLACK} Tics del mapa:
|
||||
STR_FRAMERATE_GL_LINKGRAPH :{BLACK} Retard del graf de distribució:
|
||||
STR_FRAMERATE_DRAWING :{BLACK}Renderitzat de gràfics:
|
||||
STR_FRAMERATE_DRAWING_VIEWPORTS :{BLACK} Vistes del mapa:
|
||||
STR_FRAMERATE_VIDEO :{BLACK}Sortida de vídeo:
|
||||
STR_FRAMERATE_SOUND :{BLACK}Mescla de so:
|
||||
STR_FRAMERATE_ALLSCRIPTS :{BLACK} Total GS/IA:
|
||||
STR_FRAMERATE_GAMESCRIPT :{BLACK} Script de partida:
|
||||
STR_FRAMERATE_AI :{BLACK} IA {NUM} {STRING}
|
||||
############ End of leave-in-this-order
|
||||
############ Leave those lines in this order!!
|
||||
STR_FRAMETIME_CAPTION_GAMELOOP :Bucle
|
||||
@@ -2747,6 +2765,9 @@ STR_FRAMETIME_CAPTION_DRAWING :Renderitzat de
|
||||
STR_FRAMETIME_CAPTION_DRAWING_VIEWPORTS :Renderitzat de la vista del mapa
|
||||
STR_FRAMETIME_CAPTION_VIDEO :Sortida de vídeo
|
||||
STR_FRAMETIME_CAPTION_SOUND :Mescla de so
|
||||
STR_FRAMETIME_CAPTION_ALLSCRIPTS :Total de scripts d'IA/GS
|
||||
STR_FRAMETIME_CAPTION_GAMESCRIPT :Script de partida
|
||||
STR_FRAMETIME_CAPTION_AI :AI {NUM}: {STRING}
|
||||
############ End of leave-in-this-order
|
||||
|
||||
|
||||
@@ -2772,6 +2793,9 @@ STR_SAVELOAD_DETAIL_CAPTION :{BLACK}Detalls
|
||||
STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}No hi ha informació disponible
|
||||
STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING}
|
||||
STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}NewGRF: {WHITE}{STRING}
|
||||
STR_SAVELOAD_FILTER_TITLE :{BLACK}Cadena de filtre:
|
||||
STR_SAVELOAD_OVERWRITE_TITLE :{WHITE}Sobreescriu fitxer
|
||||
STR_SAVELOAD_OVERWRITE_WARNING :{YELLOW}Esteu segur que voleu sobreescriure el fitxer?
|
||||
|
||||
STR_SAVELOAD_OSKTITLE :{BLACK}Posa el nom amb què desar la partida actual
|
||||
|
||||
@@ -2889,7 +2913,12 @@ STR_NEWGRF_SETTINGS_VERSION :{BLACK}Versió:
|
||||
STR_NEWGRF_SETTINGS_MIN_VERSION :{BLACK}Mín. versió compatible: {SILVER}{NUM}
|
||||
STR_NEWGRF_SETTINGS_MD5SUM :{BLACK}MD5sum: {SILVER}{STRING}
|
||||
STR_NEWGRF_SETTINGS_PALETTE :{BLACK}Paleta: {SILVER}{STRING}
|
||||
STR_NEWGRF_SETTINGS_PALETTE_DEFAULT :Per defecte (D)
|
||||
STR_NEWGRF_SETTINGS_PALETTE_DEFAULT_32BPP :Per defecte (D) / 32 bpp
|
||||
STR_NEWGRF_SETTINGS_PALETTE_LEGACY :Antic (W)
|
||||
STR_NEWGRF_SETTINGS_PALETTE_LEGACY_32BPP :Antic (W) / 32 bpp
|
||||
STR_NEWGRF_SETTINGS_PARAMETER :{BLACK}Paràmetres: {SILVER}{STRING}
|
||||
STR_NEWGRF_SETTINGS_PARAMETER_NONE :Cap
|
||||
|
||||
STR_NEWGRF_SETTINGS_NO_INFO :{BLACK}No hi ha informació disponible
|
||||
STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}No s'ha trobat cap arxiu coincident
|
||||
@@ -2970,6 +2999,8 @@ STR_NEWGRF_ERROR_READ_BOUNDS :S'ha llegit des
|
||||
STR_NEWGRF_ERROR_GRM_FAILED :Els recursos GRF demanats no estan disponibles (sprite {3:NUM})
|
||||
STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} ha estat desactivat per {STRING}
|
||||
STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Format de disposició de sprite no vàlid o desconegut (sprite {3:NUM}).
|
||||
STR_NEWGRF_ERROR_LIST_PROPERTY_TOO_LONG :Hi ha massa elements a la llista de valors de propietats (sprite {3:NUM}, propietat {4:HEX})
|
||||
STR_NEWGRF_ERROR_INDPROD_CALLBACK :«Callback» de producció d'indústria no vàlid (sprite {3:NUM}, «{2:STRING}»).
|
||||
|
||||
# NewGRF related 'general' warnings
|
||||
STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Alerta!
|
||||
@@ -3095,6 +3126,7 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Suborna
|
||||
# Goal window
|
||||
STR_GOALS_CAPTION :{WHITE}{COMPANY} Objectius
|
||||
STR_GOALS_SPECTATOR_CAPTION :{WHITE}Objectius globals
|
||||
STR_GOALS_SPECTATOR :Objectius globals
|
||||
STR_GOALS_GLOBAL_TITLE :{BLACK}Objectius globals:
|
||||
STR_GOALS_TEXT :{ORANGE}{STRING}
|
||||
STR_GOALS_NONE :{ORANGE}- Cap -
|
||||
@@ -3143,6 +3175,7 @@ STR_SUBSIDIES_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Clica al
|
||||
# Story book window
|
||||
STR_STORY_BOOK_CAPTION :{WHITE}Llibre de Partida de {COMPANY}
|
||||
STR_STORY_BOOK_SPECTATOR_CAPTION :{WHITE}Llibre Global de Partida
|
||||
STR_STORY_BOOK_SPECTATOR :Llibre de partida global
|
||||
STR_STORY_BOOK_TITLE :{YELLOW}{STRING}
|
||||
STR_STORY_BOOK_GENERIC_PAGE_ITEM :Pàgina {NUM}
|
||||
STR_STORY_BOOK_SEL_PAGE_TOOLTIP :{BLACK}Salteu a una pàgina seleccionant-la en aquesta llista desplegable.
|
||||
@@ -3347,6 +3380,9 @@ STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Centra l
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Nivell de producció: {YELLOW}{COMMA}%
|
||||
STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}La indústria ha anunciat la seva clausura imminent!
|
||||
|
||||
STR_INDUSTRY_VIEW_REQUIRES_N_CARGO :{BLACK}Requereix: {YELLOW}{STRING}{STRING}
|
||||
STR_INDUSTRY_VIEW_PRODUCES_N_CARGO :{BLACK}Produeix: {YELLOW}{STRING}{STRING}
|
||||
STR_INDUSTRY_VIEW_CARGO_LIST_EXTENSION :, {STRING}{STRING}
|
||||
|
||||
STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Necessita:
|
||||
STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING}
|
||||
@@ -3404,6 +3440,7 @@ STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Grups -
|
||||
STR_GROUP_CREATE_TOOLTIP :{BLACK}Clica per crear un grup
|
||||
STR_GROUP_DELETE_TOOLTIP :{BLACK}Elimina el grup seleccionat
|
||||
STR_GROUP_RENAME_TOOLTIP :{BLACK}Canvia el nom del grup seleccionat
|
||||
STR_GROUP_LIVERY_TOOLTIP :{BLACK}Canvia l'aspecte dels vehicles del grup seleccionat.
|
||||
STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Clica per protegir aquest grup de l'autosubstitueix global
|
||||
|
||||
STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Esborrar grup
|
||||
@@ -3447,6 +3484,7 @@ STR_PURCHASE_INFO_AIRCRAFT_CAPACITY :{BLACK}Capacita
|
||||
STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Vagons Automotrius: {GOLD}+{POWER}{BLACK} Pes: {GOLD}+{WEIGHT_SHORT}
|
||||
STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Remodelable a: {GOLD}{STRING}
|
||||
STR_PURCHASE_INFO_ALL_TYPES :Totes les càrregues
|
||||
STR_PURCHASE_INFO_NONE :Cap
|
||||
STR_PURCHASE_INFO_ALL_BUT :Qualsevol excepte {CARGO_LIST}
|
||||
STR_PURCHASE_INFO_MAX_TE :{BLACK}Esforç de tracció màxim: {GOLD}{FORCE}
|
||||
STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Abast: {GOLD}{COMMA} cel·les
|
||||
@@ -3846,6 +3884,7 @@ STR_ORDER_CONDITIONAL_AGE :Antiguitat (any
|
||||
STR_ORDER_CONDITIONAL_REQUIRES_SERVICE :Necessita revisió
|
||||
STR_ORDER_CONDITIONAL_UNCONDITIONALLY :Sempre
|
||||
STR_ORDER_CONDITIONAL_REMAINING_LIFETIME :Temps de vida restant (anys)
|
||||
STR_ORDER_CONDITIONAL_MAX_RELIABILITY :Fiabilitat màxima
|
||||
|
||||
STR_ORDER_CONDITIONAL_COMPARATOR_TOOLTIP :{BLACK}Com comparar les dades del vehicle al valor donat
|
||||
STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS :és igual a
|
||||
|
||||
@@ -2843,6 +2843,9 @@ STR_FRAMERATE_DRAWING :{BLACK}Prikaz g
|
||||
STR_FRAMERATE_DRAWING_VIEWPORTS :{BLACK} Prikazi svijeta:
|
||||
STR_FRAMERATE_VIDEO :{BLACK}Video izlaz:
|
||||
STR_FRAMERATE_SOUND :{BLACK}Miksanje zvukova:
|
||||
STR_FRAMERATE_ALLSCRIPTS :{BLACK} Ukupni broj GS/AI:
|
||||
STR_FRAMERATE_GAMESCRIPT :{BLACK} Skripta Igre:
|
||||
STR_FRAMERATE_AI :{BLACK} AI {NUM} {STRING}
|
||||
############ End of leave-in-this-order
|
||||
############ Leave those lines in this order!!
|
||||
STR_FRAMETIME_CAPTION_GAMELOOP :Petlja igre
|
||||
@@ -2857,6 +2860,9 @@ STR_FRAMETIME_CAPTION_DRAWING :Prikaz grafike
|
||||
STR_FRAMETIME_CAPTION_DRAWING_VIEWPORTS :Prikazi svijeta
|
||||
STR_FRAMETIME_CAPTION_VIDEO :Video izlaz
|
||||
STR_FRAMETIME_CAPTION_SOUND :Miksanje zvukova
|
||||
STR_FRAMETIME_CAPTION_ALLSCRIPTS :GS/AI broj skripti
|
||||
STR_FRAMETIME_CAPTION_GAMESCRIPT :Skripta Igre
|
||||
STR_FRAMETIME_CAPTION_AI :AI {NUM} {STRING}
|
||||
############ End of leave-in-this-order
|
||||
|
||||
|
||||
@@ -3089,7 +3095,7 @@ STR_NEWGRF_ERROR_GRM_FAILED :Zatraženi GRF
|
||||
STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} je isključen od strane {STRING}
|
||||
STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Pogrešan/nepoznat format raspored sprite-a (sprite {3:NUM})
|
||||
STR_NEWGRF_ERROR_LIST_PROPERTY_TOO_LONG :Previše elemenata na listi postavki varijabli (sprite {3:NUM}, postavka {4:HEX})
|
||||
STR_NEWGRF_ERROR_INDPROD_CALLBACK :Pogrešna callback funkcija za industrijsku proizvodnju (sprite {3:NUM}, "{1:STRING}")
|
||||
STR_NEWGRF_ERROR_INDPROD_CALLBACK :Pogrešna callback funkcija za industrijsku proizvodnju (sprite {3:NUM}, "{2:STRING}")
|
||||
|
||||
# NewGRF related 'general' warnings
|
||||
STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Oprez!
|
||||
@@ -3121,6 +3127,7 @@ STR_NEWGRF_BUGGY :{WHITE}NewGRF '
|
||||
STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}Informacija o teretu/remontu za '{1:ENGINE}' je različita od kupovne liste nakon izgradnje. Zbog toga bi automatsko obnavljanje/zamjena mogla biti neuspješna
|
||||
STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK :{G=male}{WHITE}'{1:STRING}' je uzrokovao beskonačnu petlju u pozivu za povrat produkcije
|
||||
STR_NEWGRF_BUGGY_UNKNOWN_CALLBACK_RESULT :{WHITE}Povratnica {1:HEX} je vratio nepoznat/nemoguć rezultat {2:HEX}
|
||||
STR_NEWGRF_BUGGY_INVALID_CARGO_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' callback funkcija za proizvodnju je vratila nevažeći teret na {2:HEX}
|
||||
|
||||
# 'User removed essential NewGRFs'-placeholders for stuff without specs
|
||||
STR_NEWGRF_INVALID_CARGO :<pogrešan teret>
|
||||
@@ -3635,7 +3642,7 @@ STR_DEPOT_VEHICLE_TOOLTIP :{BLACK}{ENGINE}
|
||||
STR_DEPOT_VEHICLE_TOOLTIP_CHAIN :{BLACK}{NUM} vozil{P o a a}{STRING}
|
||||
STR_DEPOT_VEHICLE_TOOLTIP_CARGO :{}{CARGO_LONG} ({CARGO_SHORT})
|
||||
|
||||
STR_DEPOT_TRAIN_LIST_TOOLTIP :{BLACK}Vlakovi - drži lijevi klik i vuci vozilo za dodavanje/skidanjed iz vlaka, desni klik za informacije. Drži tipku Ctrl da obje funkcije rade na slijedu
|
||||
STR_DEPOT_TRAIN_LIST_TOOLTIP :{BLACK}Vlakovi - drži lijevi klik i vuci vozilo za dodavanje/skidanje iz vlaka, desni klik za informacije. Drži tipku Ctrl da obje funkcije rade na slijedu
|
||||
STR_DEPOT_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Vozila - desni klik na vozilo za informacije
|
||||
STR_DEPOT_SHIP_LIST_TOOLTIP :{BLACK}Brodovi - desni klik na brod za informacije
|
||||
STR_DEPOT_AIRCRAFT_LIST_TOOLTIP :{BLACK}Zrakoplov - desni klik na zrakoplov za informacije
|
||||
|
||||
@@ -373,7 +373,7 @@ STR_SCENEDIT_FILE_MENU_QUIT :Afslut
|
||||
############ range for SE file menu starts
|
||||
|
||||
############ range for settings menu starts
|
||||
STR_SETTINGS_MENU_GAME_OPTIONS :Spilvalg
|
||||
STR_SETTINGS_MENU_GAME_OPTIONS :Opsætning
|
||||
STR_SETTINGS_MENU_CONFIG_SETTINGS_TREE :Indstillinger
|
||||
STR_SETTINGS_MENU_SCRIPT_SETTINGS :AI/spilscript-indstillinger
|
||||
STR_SETTINGS_MENU_NEWGRF_SETTINGS :NewGRF indstillinger
|
||||
@@ -391,7 +391,7 @@ STR_SETTINGS_MENU_TRANSPARENT_SIGNS :Gennemsigtige s
|
||||
|
||||
############ range for file menu starts
|
||||
STR_FILE_MENU_SAVE_GAME :Gem spil
|
||||
STR_FILE_MENU_LOAD_GAME :Hent spil
|
||||
STR_FILE_MENU_LOAD_GAME :Fortsæt spil
|
||||
STR_FILE_MENU_QUIT_GAME :Forlad spillet
|
||||
STR_FILE_MENU_SEPARATOR :
|
||||
STR_FILE_MENU_EXIT :Afslut
|
||||
@@ -840,7 +840,7 @@ STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_GENERAL :{BIG_FONT}{BLAC
|
||||
STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_FARM :{BIG_FONT}{BLACK}Insekter foresager kaos ved {INDUSTRY}!{}Produktionen er faldet med 50%
|
||||
STR_NEWS_INDUSTRY_PRODUCTION_DECREASE_SMOOTH :{BIG_FONT}{BLACK}{STRING}produktionen på {INDUSTRY} sænkes med {COMMA}%!
|
||||
|
||||
STR_NEWS_TRAIN_IS_WAITING :{WHITE}{VEHICLE} venter i remisen
|
||||
STR_NEWS_TRAIN_IS_WAITING :{WHITE}{VEHICLE} afventer i remisen
|
||||
STR_NEWS_ROAD_VEHICLE_IS_WAITING :{WHITE}{VEHICLE} venter på værkstedet
|
||||
STR_NEWS_SHIP_IS_WAITING :{WHITE}{VEHICLE} venter i skibsdokken
|
||||
STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE} venter i hangaren
|
||||
@@ -892,7 +892,7 @@ STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW :{BLACK}Flyt hov
|
||||
STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW_TT :{BLACK}Bevæg hovedvisningen til samme sted som dette vindue
|
||||
|
||||
# Game options window
|
||||
STR_GAME_OPTIONS_CAPTION :{WHITE}Spilvalg
|
||||
STR_GAME_OPTIONS_CAPTION :{WHITE}Opsætning
|
||||
STR_GAME_OPTIONS_CURRENCY_UNITS_FRAME :{BLACK}Valutaenhed
|
||||
STR_GAME_OPTIONS_CURRENCY_UNITS_DROPDOWN_TOOLTIP :{BLACK}Valg af valutaenhed
|
||||
|
||||
@@ -1422,8 +1422,8 @@ STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE :Vis ankomst og
|
||||
STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE_HELPTEXT :Vis forventede ankomst-og afgangstider i tidsplaner
|
||||
STR_CONFIG_SETTING_QUICKGOTO :Hurtig oprettelse af køretøjsordrer: {STRING}
|
||||
STR_CONFIG_SETTING_QUICKGOTO_HELPTEXT :Forvælg 'gå-til' når du åbner ordrer vinduet
|
||||
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE :Standard skinnetype (efter nyt spil/hentet spil): {STRING}
|
||||
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_HELPTEXT :Hvilken sportype der skal vælges efter start eller hentning af et spil. 'første tilgængelige' vælger den ældste type spor, 'sidste tilgængelige' vælger den nyeste form for spor, og 'mest anvendte' vælger den type, der i øjeblikket er mest i brug
|
||||
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE :Standard sportype (efter nyt spil/indlæst spil): {STRING}
|
||||
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_HELPTEXT :Hvilken sportype der skal vælges efter start eller indlæsning af et spil. 'Første tilgængelige' vælger den ældste type spor, 'sidste tilgængelige' vælger den nyeste form for spor, og 'mest anvendte' vælger den type, der i øjeblikket er mest i brug
|
||||
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :Første tilgængelige
|
||||
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_LAST :Sidste tilgængelige
|
||||
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MOST_USED :Mest anvendte
|
||||
@@ -1749,13 +1749,13 @@ STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Allokeri
|
||||
STR_INTRO_CAPTION :{WHITE}OpenTTD {REV}
|
||||
|
||||
STR_INTRO_NEW_GAME :{BLACK}Nyt spil
|
||||
STR_INTRO_LOAD_GAME :{BLACK}Hent spil
|
||||
STR_INTRO_LOAD_GAME :{BLACK}Fortsæt spil
|
||||
STR_INTRO_PLAY_SCENARIO :{BLACK}Spil et scenarie
|
||||
STR_INTRO_PLAY_HEIGHTMAP :{BLACK}Spil højdekort
|
||||
STR_INTRO_SCENARIO_EDITOR :{BLACK}Scenarieeditor
|
||||
STR_INTRO_MULTIPLAYER :{BLACK}Netværksspil
|
||||
|
||||
STR_INTRO_GAME_OPTIONS :{BLACK}Spilvalg
|
||||
STR_INTRO_GAME_OPTIONS :{BLACK}Opsætning
|
||||
STR_INTRO_HIGHSCORE :{BLACK} Topresultater
|
||||
STR_INTRO_CONFIG_SETTINGS_TREE :{BLACK}Indstillinger
|
||||
STR_INTRO_NEWGRF_SETTINGS :{BLACK}NewGRF indstillinger
|
||||
@@ -1764,7 +1764,7 @@ STR_INTRO_SCRIPT_SETTINGS :{BLACK}AI/Spils
|
||||
STR_INTRO_QUIT :{BLACK}Afslut
|
||||
|
||||
STR_INTRO_TOOLTIP_NEW_GAME :{BLACK}Start et nyt spil. Ctrl+Klik springer kortindstillingerne over.
|
||||
STR_INTRO_TOOLTIP_LOAD_GAME :{BLACK}Hent et gemt spil
|
||||
STR_INTRO_TOOLTIP_LOAD_GAME :{BLACK}Fortsæt et gemt spil
|
||||
STR_INTRO_TOOLTIP_PLAY_HEIGHTMAP :{BLACK}Start et nyt spil med et højdekort som landskab
|
||||
STR_INTRO_TOOLTIP_PLAY_SCENARIO :{BLACK}Start et nyt spil med et brugerdefineret scenarie
|
||||
STR_INTRO_TOOLTIP_SCENARIO_EDITOR :{BLACK}Lav en brugerdefineret verden/scenarie
|
||||
@@ -1775,7 +1775,7 @@ STR_INTRO_TOOLTIP_SUB_ARCTIC_LANDSCAPE :{BLACK}Vælg 's
|
||||
STR_INTRO_TOOLTIP_SUB_TROPICAL_LANDSCAPE :{BLACK}Vælg 'subtropisk' landskab
|
||||
STR_INTRO_TOOLTIP_TOYLAND_LANDSCAPE :{BLACK}Vælg 'legetøjsland' landskab
|
||||
|
||||
STR_INTRO_TOOLTIP_GAME_OPTIONS :{BLACK}Vis spilvalg
|
||||
STR_INTRO_TOOLTIP_GAME_OPTIONS :{BLACK}Sæt spillet op
|
||||
STR_INTRO_TOOLTIP_HIGHSCORE :{BLACK}Hvis topscoreliste
|
||||
STR_INTRO_TOOLTIP_CONFIG_SETTINGS_TREE :{BLACK}Skærm indstillinger
|
||||
STR_INTRO_TOOLTIP_NEWGRF_SETTINGS :{BLACK}Vis NewGRF-indstillinger
|
||||
@@ -1882,7 +1882,7 @@ STR_FACE_SIMPLE :{BLACK}Simpel
|
||||
STR_FACE_SIMPLE_TOOLTIP :{BLACK}Simpelt valg af ansigt.
|
||||
STR_FACE_LOAD :{BLACK}Hent
|
||||
STR_FACE_LOAD_TOOLTIP :{BLACK}Hent favoritansigt
|
||||
STR_FACE_LOAD_DONE :{WHITE}Dit favoritansigt er hentet fra OpenTTD-konfigurationsfilen.
|
||||
STR_FACE_LOAD_DONE :{WHITE}Dit favoritansigt er indlæst fra OpenTTD konfigurationsfilen.
|
||||
STR_FACE_FACECODE :{BLACK}Spiller ansigtsnr.
|
||||
STR_FACE_FACECODE_TOOLTIP :{BLACK}Vis og/eller indstil spillers ansigtsnummer
|
||||
STR_FACE_FACECODE_CAPTION :{WHITE}Vis og/eller indstil spillers ansigtsnummer
|
||||
@@ -2062,8 +2062,8 @@ STR_NETWORK_GAME_LOBBY_PLAYERS :{SILVER}Spiller
|
||||
|
||||
STR_NETWORK_GAME_LOBBY_NEW_COMPANY :{BLACK}Nyt selskab
|
||||
STR_NETWORK_GAME_LOBBY_NEW_COMPANY_TOOLTIP :{BLACK}Opret et nyt selskab
|
||||
STR_NETWORK_GAME_LOBBY_SPECTATE_GAME :{BLACK}Tilskuer spil
|
||||
STR_NETWORK_GAME_LOBBY_SPECTATE_GAME_TOOLTIP :{BLACK}Se et spil som tilskuer
|
||||
STR_NETWORK_GAME_LOBBY_SPECTATE_GAME :{BLACK}Tilskuer
|
||||
STR_NETWORK_GAME_LOBBY_SPECTATE_GAME_TOOLTIP :{BLACK}Tilslut spillet som tilskuer
|
||||
STR_NETWORK_GAME_LOBBY_JOIN_COMPANY :{BLACK}Tilslut dig selskab
|
||||
STR_NETWORK_GAME_LOBBY_JOIN_COMPANY_TOOLTIP :{BLACK}Hjælp med at bestyrre dette selskab
|
||||
|
||||
@@ -2152,7 +2152,7 @@ STR_NETWORK_ERROR_SERVER_ERROR :{WHITE}Der opst
|
||||
STR_NETWORK_ERROR_WRONG_REVISION :{WHITE}Revisionen af denne klient passer ikke sammen med serverens revision
|
||||
STR_NETWORK_ERROR_WRONG_PASSWORD :{WHITE}Forkert kodeord
|
||||
STR_NETWORK_ERROR_SERVER_FULL :{WHITE}Serveren er fuld
|
||||
STR_NETWORK_ERROR_SERVER_BANNED :{WHITE}Du har forbud mod at bruge denne server
|
||||
STR_NETWORK_ERROR_SERVER_BANNED :{WHITE}Du er bandlyst fra denne server
|
||||
STR_NETWORK_ERROR_KICKED :{WHITE}Du blev smidt ud af spillet
|
||||
STR_NETWORK_ERROR_CHEATER :{WHITE}Snyderi er ikke tilladt på denne server
|
||||
STR_NETWORK_ERROR_TOO_MANY_COMMANDS :{WHITE}Du sendte for mange kommandoer til serveren
|
||||
@@ -2348,7 +2348,7 @@ STR_RAIL_TOOLBAR_TOOLTIP_CONVERT_RAIL :{BLACK}Ombyg/op
|
||||
STR_RAIL_NAME_RAILROAD :Jernbane
|
||||
STR_RAIL_NAME_ELRAIL :Elektrisk jernbane
|
||||
STR_RAIL_NAME_MONORAIL :Monorail
|
||||
STR_RAIL_NAME_MAGLEV :Magnetskinne
|
||||
STR_RAIL_NAME_MAGLEV :Magnetsvævebane
|
||||
|
||||
# Rail depot construction window
|
||||
STR_BUILD_DEPOT_TRAIN_ORIENTATION_CAPTION :{WHITE}Retning af remise
|
||||
@@ -2772,12 +2772,12 @@ STR_FRAMETIME_CAPTION_AI :AI {NUM} {STRIN
|
||||
|
||||
# Save/load game/scenario
|
||||
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Gem spil
|
||||
STR_SAVELOAD_LOAD_CAPTION :{WHITE}Hent spil
|
||||
STR_SAVELOAD_LOAD_CAPTION :{WHITE}Fortsæt spil
|
||||
STR_SAVELOAD_SAVE_SCENARIO :{WHITE}Gem scenarie
|
||||
STR_SAVELOAD_LOAD_SCENARIO :{WHITE}Hent scenarie
|
||||
STR_SAVELOAD_LOAD_HEIGHTMAP :{WHITE}Hent højdekort
|
||||
STR_SAVELOAD_SAVE_HEIGHTMAP :{WHITE}Gem højdekort
|
||||
STR_SAVELOAD_HOME_BUTTON :{BLACK}Klik her for at gå til det nuværende standard gemme/hente bibliotek
|
||||
STR_SAVELOAD_HOME_BUTTON :{BLACK}Klik her for at gå til den nuværende standard gem/indlæs mappe
|
||||
STR_SAVELOAD_BYTES_FREE :{BLACK}{BYTES} fri
|
||||
STR_SAVELOAD_LIST_TOOLTIP :{BLACK}Liste over drev, biblioteker og gemte spilfiler
|
||||
STR_SAVELOAD_EDITBOX_TOOLTIP :{BLACK}Nuværende gemte spils navn
|
||||
@@ -2999,7 +2999,7 @@ STR_NEWGRF_ERROR_GRM_FAILED :De ønskede GRF
|
||||
STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} blev deaktiveret af {2:STRING}
|
||||
STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Ugyldigt/ukendt sprite layoutformat (sprite {3:NUM})
|
||||
STR_NEWGRF_ERROR_LIST_PROPERTY_TOO_LONG :For mange elementer i værdiliste for egenskab (sprite {3:NUM}, egenskab {4:HEX})
|
||||
STR_NEWGRF_ERROR_INDPROD_CALLBACK :Ugyldig produktion-callback for industri (sprite {3:NUM}, "{1:STRING}")
|
||||
STR_NEWGRF_ERROR_INDPROD_CALLBACK :Ugyldig produktion-callback for industri (sprite {3:NUM}, "{2:STRING}")
|
||||
|
||||
# NewGRF related 'general' warnings
|
||||
STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Advarsel!
|
||||
@@ -3031,6 +3031,7 @@ STR_NEWGRF_BUGGY :{WHITE}NewGRF '
|
||||
STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}Fragt-/ombygningsinformation for '{1:ENGINE}' afviger fra indkøbslisten efter konstruktion. Dette kan medføre, at autofornyelse ikke fungerer korrekt.
|
||||
STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' forårsagede en uendelig løkke i produktions-callback'en.
|
||||
STR_NEWGRF_BUGGY_UNKNOWN_CALLBACK_RESULT :{WHITE}Callback {1:HEX} returnerede ukendt/ugyldigt resultat {2:HEX}
|
||||
STR_NEWGRF_BUGGY_INVALID_CARGO_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' returnerede ugyldig godstype i produktion-callback ved {2:HEX}
|
||||
|
||||
# 'User removed essential NewGRFs'-placeholders for stuff without specs
|
||||
STR_NEWGRF_INVALID_CARGO :<ikke gyldigt gods>
|
||||
@@ -3258,7 +3259,7 @@ STR_STATION_VIEW_SCHEDULED_SHIPS_TOOLTIP :{BLACK}Vis alle
|
||||
STR_STATION_VIEW_RENAME_STATION_CAPTION :Omdøb stationen/fragtcentralen
|
||||
|
||||
STR_STATION_VIEW_CLOSE_AIRPORT :{BLACK}Luk lufthavn
|
||||
STR_STATION_VIEW_CLOSE_AIRPORT_TOOLTIP :{BLACK}Undgå at fly lander i denne lufthavn
|
||||
STR_STATION_VIEW_CLOSE_AIRPORT_TOOLTIP :{BLACK}Forhindre at fly lander i denne lufthavn
|
||||
|
||||
# Waypoint/buoy view window
|
||||
STR_WAYPOINT_VIEW_CAPTION :{WHITE}{WAYPOINT}
|
||||
@@ -3457,7 +3458,7 @@ STR_GROUP_OCCUPANCY_VALUE :{NUM}%
|
||||
|
||||
# Build vehicle window
|
||||
STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nye jernbanekøretøjer
|
||||
STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nyt elektrisk lokomotiv
|
||||
STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :Nye elektriske jernbanekøretøjer
|
||||
STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Nye monorailkøretøjer
|
||||
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Nye magnetskinnekøretøjer
|
||||
|
||||
@@ -3585,7 +3586,7 @@ STR_DEPOT_CLONE_AIRCRAFT :{BLACK}Klon fly
|
||||
STR_DEPOT_CLONE_TRAIN_DEPOT_INFO :{BLACK}Dette vil købe en kopi af toget inklusiv alle vogne. Klik på denne knap og så på et tog indeni eller udenfor remisen. Ctrl-klik vil kopiere ordrer. Shift-klik vil vise prisoverslag.
|
||||
STR_DEPOT_CLONE_ROAD_VEHICLE_DEPOT_INFO :{BLACK}Dette vil købe en kopi af køretøjet. Klik på denne knap og så på et køretøj indeni eller udenfor værkstedet. Ctrl-klik vil dele ordrer. Shift-klik viser anslået pris uden køb
|
||||
STR_DEPOT_CLONE_SHIP_DEPOT_INFO :{BLACK}Dette vil købe en kopi af skibet. Klik på denne knap og så på et skib indeni eller udenfor dokken. Ctrl-klik vil dele ordrer. Shift-klik vil vise prisoverslag.
|
||||
STR_DEPOT_CLONE_AIRCRAFT_INFO_HANGAR_WINDOW :{BLACK}Dette vil købe en kopi af et fly. Klik på denne knap og så på et fly indeni eller udenfor hangaren. Ctrl-klik vil dele ordrer. Shift-klik vil vise prisoverslag.
|
||||
STR_DEPOT_CLONE_AIRCRAFT_INFO_HANGAR_WINDOW :{BLACK}Dette vil købe en kopi af et fly. Klik på denne knap og så på et fly indeni eller udenfor hangaren. Ctrl-klik vil dele ordrer. Shift-klik viser estimerede omkostninger uden at indkøbe
|
||||
|
||||
STR_DEPOT_TRAIN_LOCATION_TOOLTIP :{BLACK}Centrer skærmen over remisens lokalitet. Ctrl+Klik åbner et nyt vindue ved remisens lokalitet.
|
||||
STR_DEPOT_ROAD_VEHICLE_LOCATION_TOOLTIP :{BLACK}Centrer skærmen over værkstedets lokalitet. Ctrl+Klik åbner et nyt vindue ved køretøjsværkstedets lokalitet.
|
||||
@@ -3595,7 +3596,7 @@ STR_DEPOT_AIRCRAFT_LOCATION_TOOLTIP :{BLACK}Centrér
|
||||
STR_DEPOT_VEHICLE_ORDER_LIST_TRAIN_TOOLTIP :{BLACK}Vis en liste over alle tog med denne remise i ordrelisten
|
||||
STR_DEPOT_VEHICLE_ORDER_LIST_ROAD_VEHICLE_TOOLTIP :{BLACK}Vis liste over alle køretøjer med dette værksted i ordrelisten
|
||||
STR_DEPOT_VEHICLE_ORDER_LIST_SHIP_TOOLTIP :{BLACK}Vis liste over alle skibe med denne skibsdok i ordrelisten
|
||||
STR_DEPOT_VEHICLE_ORDER_LIST_AIRCRAFT_TOOLTIP :{BLACK}Vis liste over alle fly med en hangar ved denne lufthavn i ordrelisten
|
||||
STR_DEPOT_VEHICLE_ORDER_LIST_AIRCRAFT_TOOLTIP :{BLACK}Hent en liste over alle fly der har hvilken som helst hangar ved denne lufthavn i deres ordrer
|
||||
|
||||
STR_DEPOT_MASS_STOP_DEPOT_TRAIN_TOOLTIP :{BLACK}Klik for at stoppe alle toge i remisen
|
||||
STR_DEPOT_MASS_STOP_DEPOT_ROAD_VEHICLE_TOOLTIP :{BLACK}Klik for at stoppe alle køretøjer i værkstedet
|
||||
@@ -3617,7 +3618,7 @@ STR_ENGINE_PREVIEW_ROAD_VEHICLE :vejkøretøj
|
||||
STR_ENGINE_PREVIEW_AIRCRAFT :fly
|
||||
STR_ENGINE_PREVIEW_SHIP :skib
|
||||
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :monoraillokomotiv
|
||||
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :magnetskinnelokomotiv
|
||||
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :magnettog
|
||||
|
||||
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Pris: {CURRENCY_LONG} Vægt: {WEIGHT_SHORT}{}Hastighed: {VELOCITY} Styrke: {POWER}{}Driftsomkostninger: {CURRENCY_LONG}/år{}Kapacitet: {CARGO_LONG}
|
||||
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Pris: {CURRENCY_LONG} Vægt: {WEIGHT_SHORT}{}Hastighed: {VELOCITY} Hestekræfter: {POWER} Maks. Trækkraft: {6:FORCE}{}Driftsomkostning: {4:CURRENCY_LONG}/år{}Kapacitet: {5:CARGO_LONG}
|
||||
@@ -4052,7 +4053,7 @@ STR_DATE_YEAR_TOOLTIP :{BLACK}Vælg å
|
||||
|
||||
|
||||
# AI debug window
|
||||
STR_AI_DEBUG :{WHITE}Computerspiller/Spilscript-debug
|
||||
STR_AI_DEBUG :{WHITE}KI/Spilscript-debug
|
||||
STR_AI_DEBUG_NAME_AND_VERSION :{BLACK}{STRING} (v{NUM})
|
||||
STR_AI_DEBUG_NAME_TOOLTIP :{BLACK}Navn på scriptet
|
||||
STR_AI_DEBUG_SETTINGS :{BLACK}Indstillinger
|
||||
@@ -4089,7 +4090,7 @@ STR_AI_CONFIG_MOVE_DOWN :{BLACK}Flyt ned
|
||||
STR_AI_CONFIG_MOVE_DOWN_TOOLTIP :{BLACK}Flyt valgte computerspiller ned i listen
|
||||
|
||||
STR_AI_CONFIG_GAMESCRIPT :{SILVER}Spilscript
|
||||
STR_AI_CONFIG_AI :{SILVER}AIer
|
||||
STR_AI_CONFIG_AI :{SILVER}KI'er
|
||||
|
||||
STR_AI_CONFIG_CHANGE :{BLACK}Vælg {STRING}
|
||||
STR_AI_CONFIG_CHANGE_NONE :Ingen ændringer
|
||||
@@ -4165,7 +4166,7 @@ STR_ERROR_AUTOSAVE_FAILED :{WHITE}Fejl und
|
||||
STR_ERROR_UNABLE_TO_READ_DRIVE :{BLACK}Kan ikke læse drevet
|
||||
STR_ERROR_GAME_SAVE_FAILED :{WHITE}Fejl under gemning af spil{}{STRING}
|
||||
STR_ERROR_UNABLE_TO_DELETE_FILE :{WHITE}Kan ikke slette fil
|
||||
STR_ERROR_GAME_LOAD_FAILED :{WHITE}Fejl under hentning af spil{}{STRING}
|
||||
STR_ERROR_GAME_LOAD_FAILED :{WHITE}Fejl under indlæsning af spil{}{STRING}
|
||||
STR_GAME_SAVELOAD_ERROR_BROKEN_INTERNAL_ERROR :Intern fejl: {STRING}
|
||||
STR_GAME_SAVELOAD_ERROR_BROKEN_SAVEGAME :Ødelagt gemt spil - {STRING}
|
||||
STR_GAME_SAVELOAD_ERROR_TOO_NEW_SAVEGAME :Spillet er gemt med en nyere version
|
||||
@@ -4179,12 +4180,12 @@ STR_WARNING_LOADGAME_REMOVED_TRAMS :{WHITE}Spillet
|
||||
STR_ERROR_COULD_NOT_CREATE_TOWN :{WHITE}Kortgenerering afbrudt...{}... ingen brugbare lokaliteter til byer
|
||||
STR_ERROR_NO_TOWN_IN_SCENARIO :{WHITE}... der er ingen byer i dette scenarie
|
||||
|
||||
STR_ERROR_PNGMAP :{WHITE}Kan ikke hente landskab fra PNG...
|
||||
STR_ERROR_PNGMAP :{WHITE}Kan ikke indlæse landskab fra PNG...
|
||||
STR_ERROR_PNGMAP_FILE_NOT_FOUND :{WHITE}... filen blev ikke fundet.
|
||||
STR_ERROR_PNGMAP_IMAGE_TYPE :{WHITE}... kan ikke konvertere billedtype. Der skal bruges 8 eller 24-bit PNG.
|
||||
STR_ERROR_PNGMAP_MISC :{WHITE}... noget gik galt. Undskyld (Måske en ødelagt fil)
|
||||
|
||||
STR_ERROR_BMPMAP :{WHITE}Kan ikke hente landskab fra BMP...
|
||||
STR_ERROR_BMPMAP :{WHITE}Kan ikke indlæse landskab fra BMP...
|
||||
STR_ERROR_BMPMAP_IMAGE_TYPE :{WHITE}... kunne ikke konvertere billedtypen.
|
||||
|
||||
STR_ERROR_HEIGHTMAP_TOO_LARGE :{WHITE}... billede er for stort
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -2999,7 +2999,7 @@ STR_NEWGRF_ERROR_GRM_FAILED :Requested GRF r
|
||||
STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:RAW_STRING} was disabled by {2:RAW_STRING}
|
||||
STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Invalid/unknown sprite layout format (sprite {3:NUM})
|
||||
STR_NEWGRF_ERROR_LIST_PROPERTY_TOO_LONG :Too many elements in property value list (sprite {3:NUM}, property {4:HEX})
|
||||
STR_NEWGRF_ERROR_INDPROD_CALLBACK :Invalid industry production callback (sprite {3:NUM}, "{1:RAW_STRING}")
|
||||
STR_NEWGRF_ERROR_INDPROD_CALLBACK :Invalid industry production callback (sprite {3:NUM}, "{2:RAW_STRING}")
|
||||
|
||||
# NewGRF related 'general' warnings
|
||||
STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Caution!
|
||||
@@ -3031,6 +3031,7 @@ STR_NEWGRF_BUGGY :{WHITE}NewGRF '
|
||||
STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}Cargo/refit information for '{1:ENGINE}' differs from purchase list after construction. This might cause autorenew/-replace to fail refitting correctly
|
||||
STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' caused an endless loop in the production callback
|
||||
STR_NEWGRF_BUGGY_UNKNOWN_CALLBACK_RESULT :{WHITE}Callback {1:HEX} returned unknown/invalid result {2:HEX}
|
||||
STR_NEWGRF_BUGGY_INVALID_CARGO_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' returned invalid cargo type in the production callback at {2:HEX}
|
||||
|
||||
# 'User removed essential NewGRFs'-placeholders for stuff without specs
|
||||
STR_NEWGRF_INVALID_CARGO :<invalid cargo>
|
||||
|
||||
@@ -995,7 +995,12 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :Normal
|
||||
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :Double size
|
||||
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Quad size
|
||||
|
||||
STR_GAME_OPTIONS_FONT_ZOOM :{BLACK}Font size
|
||||
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Select the interface font size to use
|
||||
|
||||
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal
|
||||
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Double size
|
||||
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Quad size
|
||||
|
||||
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Base graphics set
|
||||
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Select the base graphics set to use
|
||||
@@ -2742,6 +2747,9 @@ STR_FRAMERATE_DRAWING :{BLACK}Graphics
|
||||
STR_FRAMERATE_DRAWING_VIEWPORTS :{BLACK} World viewports:
|
||||
STR_FRAMERATE_VIDEO :{BLACK}Video output:
|
||||
STR_FRAMERATE_SOUND :{BLACK}Sound mixing:
|
||||
STR_FRAMERATE_ALLSCRIPTS :{BLACK} GS/AI total:
|
||||
STR_FRAMERATE_GAMESCRIPT :{BLACK} Game script:
|
||||
STR_FRAMERATE_AI :{BLACK} AI {NUM} {STRING}
|
||||
############ End of leave-in-this-order
|
||||
############ Leave those lines in this order!!
|
||||
STR_FRAMETIME_CAPTION_GAMELOOP :Game loop
|
||||
@@ -2756,6 +2764,9 @@ STR_FRAMETIME_CAPTION_DRAWING :Graphics render
|
||||
STR_FRAMETIME_CAPTION_DRAWING_VIEWPORTS :World viewport rendering
|
||||
STR_FRAMETIME_CAPTION_VIDEO :Video output
|
||||
STR_FRAMETIME_CAPTION_SOUND :Sound mixing
|
||||
STR_FRAMETIME_CAPTION_ALLSCRIPTS :GS/AI scripts total
|
||||
STR_FRAMETIME_CAPTION_GAMESCRIPT :Game script
|
||||
STR_FRAMETIME_CAPTION_AI :AI {NUM} {STRING}
|
||||
############ End of leave-in-this-order
|
||||
|
||||
|
||||
@@ -2988,7 +2999,7 @@ STR_NEWGRF_ERROR_GRM_FAILED :Requested GRF r
|
||||
STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} was disabled by {2:STRING}
|
||||
STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Invalid/unknown sprite layout format (sprite {3:NUM})
|
||||
STR_NEWGRF_ERROR_LIST_PROPERTY_TOO_LONG :Too many elements in property value list (sprite {3:NUM}, property {4:HEX})
|
||||
STR_NEWGRF_ERROR_INDPROD_CALLBACK :Invalid industry production callback (sprite {3:NUM}, "{1:STRING}")
|
||||
STR_NEWGRF_ERROR_INDPROD_CALLBACK :Invalid industry production callback (sprite {3:NUM}, "{2:STRING}")
|
||||
|
||||
# NewGRF related 'general' warnings
|
||||
STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Caution!
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -996,7 +996,12 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :Normal
|
||||
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :Taille double
|
||||
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Taille quadruple
|
||||
|
||||
STR_GAME_OPTIONS_FONT_ZOOM :{BLACK}Taille de police
|
||||
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Choisir la taille de police d'interface à utiliser
|
||||
|
||||
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal
|
||||
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Taille double
|
||||
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Taille quadruple
|
||||
|
||||
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Graphiques de base
|
||||
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Sélectionner les graphiques de base à utiliser
|
||||
@@ -2743,6 +2748,9 @@ STR_FRAMERATE_DRAWING :{BLACK}Rendu de
|
||||
STR_FRAMERATE_DRAWING_VIEWPORTS :{BLACK} Vues{NBSP}:
|
||||
STR_FRAMERATE_VIDEO :{BLACK}Sortie vidéo{NBSP}:
|
||||
STR_FRAMERATE_SOUND :{BLACK}Mixage sonore{NBSP}:
|
||||
STR_FRAMERATE_ALLSCRIPTS :{BLACK} Total GS/IA{NBSP}:
|
||||
STR_FRAMERATE_GAMESCRIPT :{BLACK} Script de jeu{NBSP}:
|
||||
STR_FRAMERATE_AI :{BLACK} IA {NUM} {STRING}
|
||||
############ End of leave-in-this-order
|
||||
############ Leave those lines in this order!!
|
||||
STR_FRAMETIME_CAPTION_GAMELOOP :Boucle de jeu
|
||||
@@ -2757,6 +2765,9 @@ STR_FRAMETIME_CAPTION_DRAWING :Rendu des graph
|
||||
STR_FRAMETIME_CAPTION_DRAWING_VIEWPORTS :Rendu des vues
|
||||
STR_FRAMETIME_CAPTION_VIDEO :Sortie vidéo
|
||||
STR_FRAMETIME_CAPTION_SOUND :Mixage sonore
|
||||
STR_FRAMETIME_CAPTION_ALLSCRIPTS :Total des scripts GS/IA
|
||||
STR_FRAMETIME_CAPTION_GAMESCRIPT :Script de jeu
|
||||
STR_FRAMETIME_CAPTION_AI :IA {NUM} {STRING}
|
||||
############ End of leave-in-this-order
|
||||
|
||||
|
||||
@@ -2989,7 +3000,7 @@ STR_NEWGRF_ERROR_GRM_FAILED :Indisponibilit
|
||||
STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} a été désactivé par {STRING}
|
||||
STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Format de sprite invalide ou inconnu (sprite {3:NUM})
|
||||
STR_NEWGRF_ERROR_LIST_PROPERTY_TOO_LONG :Trop d'éléments dans la liste des valeurs de la propriété (sprite {3:NUM}, propriété {4:HEX})
|
||||
STR_NEWGRF_ERROR_INDPROD_CALLBACK :Fonction de rappel de production d'industrie invalide (sprite {3:NUM}, "{1:STRING}")
|
||||
STR_NEWGRF_ERROR_INDPROD_CALLBACK :Fonction de rappel de production d'industrie invalide (sprite {3:NUM}, "{2:STRING}")
|
||||
|
||||
# NewGRF related 'general' warnings
|
||||
STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Attention{NBSP}!
|
||||
|
||||
@@ -2987,7 +2987,7 @@ STR_NEWGRF_ERROR_GRM_FAILED :Die angefordert
|
||||
STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} wurde von {STRING} deaktiviert
|
||||
STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Ungültiges oder unbekanntes Format für Spritelayout (Sprite {3:NUM})
|
||||
STR_NEWGRF_ERROR_LIST_PROPERTY_TOO_LONG :Zu viele Elemente in Eigenschaftswert-Liste (Sprite {3:NUM}, Eigenschaft {4:HEX})
|
||||
STR_NEWGRF_ERROR_INDPROD_CALLBACK :Ungültige Produktions-Rückruffunktion (Sprite {3:NUM}, "{1:STRING}")
|
||||
STR_NEWGRF_ERROR_INDPROD_CALLBACK :Ungültige Produktions-Rückruffunktion (Sprite {3:NUM}, "{2:STRING}")
|
||||
|
||||
# NewGRF related 'general' warnings
|
||||
STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Achtung!
|
||||
|
||||
@@ -2793,9 +2793,9 @@ STR_FRAMERATE_DATA_POINTS :{BLACK}Adatok {
|
||||
STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL} ms
|
||||
STR_FRAMERATE_MS_WARN :{YELLOW}{DECIMAL} ms
|
||||
STR_FRAMERATE_MS_BAD :{RED}{DECIMAL} ms
|
||||
STR_FRAMERATE_FPS_GOOD :{LTBLUE}{DECIMAL} képkocka/másodperc
|
||||
STR_FRAMERATE_FPS_WARN :{YELLOW}{DECIMAL} képkocka/másodperc
|
||||
STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL} képkocka/másodperc
|
||||
STR_FRAMERATE_FPS_GOOD :{LTBLUE}{DECIMAL} frame/s
|
||||
STR_FRAMERATE_FPS_WARN :{YELLOW}{DECIMAL} frame/s
|
||||
STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL} frame/s
|
||||
STR_FRAMERATE_GRAPH_MILLISECONDS :{TINY_FONT}{COMMA} ms
|
||||
STR_FRAMERATE_GRAPH_SECONDS :{TINY_FONT}{COMMA} s
|
||||
############ Leave those lines in this order!!
|
||||
@@ -3063,7 +3063,7 @@ STR_NEWGRF_ERROR_GRM_FAILED :Kért GRF forr
|
||||
STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} kikapcsolva {STRING} által
|
||||
STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Érvénytelen/ismeretlen sprite szerkezet formátum (sprite {3:NUM})
|
||||
STR_NEWGRF_ERROR_LIST_PROPERTY_TOO_LONG :Túl sok érték a tulajdonságlistában (sprite {3:NUM}, property {4:HEX})
|
||||
STR_NEWGRF_ERROR_INDPROD_CALLBACK :Érvénytelen termelési callback gazdasági épületben (sprite {3:NUM}, "{1:STRING}")
|
||||
STR_NEWGRF_ERROR_INDPROD_CALLBACK :Érvénytelen termelési callback gazdasági épületben (sprite {3:NUM}, "{2:STRING}")
|
||||
|
||||
# NewGRF related 'general' warnings
|
||||
STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Figyelem!
|
||||
|
||||
@@ -3029,7 +3029,7 @@ STR_NEWGRF_ERROR_GRM_FAILED :Risorsa GRF ric
|
||||
STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} è stato disabilitato da {STRING}
|
||||
STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Formato di layout dello sprite sconosciuto o non valido (sprite {3:NUM})
|
||||
STR_NEWGRF_ERROR_LIST_PROPERTY_TOO_LONG :Troppi elementi nella lista valori di una proprietà (sprite {3:NUM}, proprietà {4:HEX})
|
||||
STR_NEWGRF_ERROR_INDPROD_CALLBACK :Callback di produzione industria non valido (sprite {3:NUM}, "{1:STRING}")
|
||||
STR_NEWGRF_ERROR_INDPROD_CALLBACK :Callback di produzione industria non valido (sprite {3:NUM}, "{2:STRING}")
|
||||
|
||||
# NewGRF related 'general' warnings
|
||||
STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Attenzione!
|
||||
|
||||
@@ -467,6 +467,7 @@ STR_TOOLBAR_SOUND_MUSIC :효과음/배
|
||||
############ range for message menu starts
|
||||
STR_NEWS_MENU_LAST_MESSAGE_NEWS_REPORT :최근 메시지/뉴스 기록
|
||||
STR_NEWS_MENU_MESSAGE_HISTORY_MENU :과거 메시지 목록
|
||||
STR_NEWS_MENU_DELETE_ALL_MESSAGES :모든 뉴스 메시지 삭제
|
||||
############ range ends here
|
||||
|
||||
############ range for about menu starts
|
||||
@@ -989,13 +990,18 @@ STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}사용
|
||||
STR_GAME_OPTIONS_RESOLUTION_OTHER :기타
|
||||
|
||||
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}인터페이스 크기
|
||||
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}인터페이스의 크기를 선택하십시오.
|
||||
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}인터페이스의 크기를 선택합니다.
|
||||
|
||||
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :보통
|
||||
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :기본 크기
|
||||
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :2배 크기
|
||||
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :4배 크기
|
||||
|
||||
STR_GAME_OPTIONS_FONT_ZOOM :{BLACK}글씨 크기
|
||||
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_TOOLTIP :{BLACK}인터페이스에서 사용할 글씨 크기를 선택합니다.
|
||||
|
||||
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :기본 크기
|
||||
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :2배 크기
|
||||
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :4배 크기
|
||||
|
||||
STR_GAME_OPTIONS_BASE_GRF :{BLACK}기본 그래픽 세트
|
||||
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}사용하실 기본 그래픽을 선택하세요.
|
||||
@@ -2084,6 +2090,7 @@ STR_NETWORK_CONNECTION_DISCONNECT :{BLACK}접속
|
||||
|
||||
STR_NETWORK_NEED_GAME_PASSWORD_CAPTION :{WHITE}서버 암호가 걸려있습니다. 암호를 입력하세요.
|
||||
STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION :{WHITE}회사 암호가 걸려있습니다. 암호를 입력하세요.
|
||||
STR_NETWORK_COMPANY_LIST_CLIENT_LIST_CAPTION :{WHITE}접속자 목록
|
||||
|
||||
# Network company list added strings
|
||||
STR_NETWORK_COMPANY_LIST_CLIENT_LIST :접속자 목록
|
||||
@@ -2741,6 +2748,9 @@ STR_FRAMERATE_DRAWING :{BLACK}그래
|
||||
STR_FRAMERATE_DRAWING_VIEWPORTS :{BLACK} 세계 화면:
|
||||
STR_FRAMERATE_VIDEO :{BLACK}비디오 출력:
|
||||
STR_FRAMERATE_SOUND :{BLACK}사운드 합성:
|
||||
STR_FRAMERATE_ALLSCRIPTS :{BLACK} 총 게임 스크립트/AI:
|
||||
STR_FRAMERATE_GAMESCRIPT :{BLACK} 게임 스크립트:
|
||||
STR_FRAMERATE_AI :{BLACK} 인공지능 {NUM} {STRING}
|
||||
############ End of leave-in-this-order
|
||||
############ Leave those lines in this order!!
|
||||
STR_FRAMETIME_CAPTION_GAMELOOP :게임 루프
|
||||
@@ -2755,6 +2765,9 @@ STR_FRAMETIME_CAPTION_DRAWING :그래픽 렌
|
||||
STR_FRAMETIME_CAPTION_DRAWING_VIEWPORTS :세계 화면 렌더링
|
||||
STR_FRAMETIME_CAPTION_VIDEO :비디오 출력
|
||||
STR_FRAMETIME_CAPTION_SOUND :사운드 합성
|
||||
STR_FRAMETIME_CAPTION_ALLSCRIPTS :게임 스크립트/인공지능의 전체 스크립트 양입니다.
|
||||
STR_FRAMETIME_CAPTION_GAMESCRIPT :게임 스크립트
|
||||
STR_FRAMETIME_CAPTION_AI :인공지능 {NUM} {STRING}
|
||||
############ End of leave-in-this-order
|
||||
|
||||
|
||||
@@ -2987,7 +3000,7 @@ STR_NEWGRF_ERROR_GRM_FAILED :요청한 GRF
|
||||
STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING}(은)는 {STRING} 때문에 사용할 수 없습니다
|
||||
STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :유효하지 않은/알 수 없는 스프라이트 구조 유형 (스프라이트 {3:NUM})
|
||||
STR_NEWGRF_ERROR_LIST_PROPERTY_TOO_LONG :속성값 목록에 너무 많은 요소가 있음 (스프라이트 {3:NUM}, 속성 {4:HEX})
|
||||
STR_NEWGRF_ERROR_INDPROD_CALLBACK :유효하지 않은 산업 생산 콜백 (스프라이트 {3:NUM}, "{1:STRING}")
|
||||
STR_NEWGRF_ERROR_INDPROD_CALLBACK :유효하지 않은 산업 생산 콜백 (스프라이트 {3:NUM}, "{2:STRING}")
|
||||
|
||||
# NewGRF related 'general' warnings
|
||||
STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}경고!
|
||||
@@ -3019,6 +3032,7 @@ STR_NEWGRF_BUGGY :{WHITE}NewGRF '
|
||||
STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}{1:ENGINE}(을)를 만들기 이전과 이후의 화물/개조 정보가 현재의 구매 목록과 다릅니다. 이 경우 자동 교체시 열차 개조에 실패할 수도 있습니다.
|
||||
STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' 때문에 결과물 콜백 과정에서 무한 루프가 발생하고 있습니다.
|
||||
STR_NEWGRF_BUGGY_UNKNOWN_CALLBACK_RESULT :{WHITE}콜백 함수({1:HEX})가 알 수 없거나 잘못된 결과 값({2:HEX})을 반환했습니다.
|
||||
STR_NEWGRF_BUGGY_INVALID_CARGO_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' - 생산 콜백 함수의 {2:HEX}에서 잘못된 화물 종류를 반환했습니다.
|
||||
|
||||
# 'User removed essential NewGRFs'-placeholders for stuff without specs
|
||||
STR_NEWGRF_INVALID_CARGO :<알 수 없는 화물>
|
||||
@@ -3113,6 +3127,7 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}성취
|
||||
# Goal window
|
||||
STR_GOALS_CAPTION :{WHITE}{COMPANY} 목표
|
||||
STR_GOALS_SPECTATOR_CAPTION :{WHITE}전체 목표
|
||||
STR_GOALS_SPECTATOR :전체 목표
|
||||
STR_GOALS_GLOBAL_TITLE :{BLACK}전체 목표:
|
||||
STR_GOALS_TEXT :{ORANGE}{STRING}
|
||||
STR_GOALS_NONE :{ORANGE}- 없음 -
|
||||
@@ -3161,6 +3176,7 @@ STR_SUBSIDIES_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}산업
|
||||
# Story book window
|
||||
STR_STORY_BOOK_CAPTION :{WHITE}{COMPANY}의 스토리 북
|
||||
STR_STORY_BOOK_SPECTATOR_CAPTION :{WHITE}전체 스토리 북
|
||||
STR_STORY_BOOK_SPECTATOR :전체 스토리 북
|
||||
STR_STORY_BOOK_TITLE :{YELLOW}{STRING}
|
||||
STR_STORY_BOOK_GENERIC_PAGE_ITEM :{NUM}쪽
|
||||
STR_STORY_BOOK_SEL_PAGE_TOOLTIP :{BLACK}드롭 다운 목록에서 이동하고자 하는 쪽수를 선택하세요.
|
||||
|
||||
@@ -189,6 +189,7 @@ STR_COLOUR_ORANGE :Orange
|
||||
STR_COLOUR_BROWN :Brong
|
||||
STR_COLOUR_GREY :Gro
|
||||
STR_COLOUR_WHITE :Wäiss
|
||||
STR_COLOUR_RANDOM :Zoufälleg
|
||||
|
||||
# Units used in OpenTTD
|
||||
STR_UNITS_VELOCITY_IMPERIAL :{COMMA}{NBSP}mph
|
||||
@@ -475,6 +476,7 @@ STR_ABOUT_MENU_SCREENSHOT :Screenshot (Ctr
|
||||
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Voll eragezoomte Screenshot
|
||||
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Standard Zoom Screenshot
|
||||
STR_ABOUT_MENU_GIANT_SCREENSHOT :Screenshot vun der ganzer Kaart
|
||||
STR_ABOUT_MENU_SHOW_FRAMERATE :Biller pro Sekonn uweisen
|
||||
STR_ABOUT_MENU_ABOUT_OPENTTD :Iwwert 'OpenTTD'
|
||||
STR_ABOUT_MENU_SPRITE_ALIGNER :Sprite Alignéirer
|
||||
STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Zeechen-Boxen un/aus
|
||||
@@ -650,6 +652,7 @@ STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLA
|
||||
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
|
||||
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
|
||||
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------
|
||||
STR_MUSIC_TITLE_NOMUSIC :{TINY_FONT}{DKGREEN}Keng Musik verfügbar
|
||||
STR_MUSIC_TITLE_NAME :{TINY_FONT}{DKGREEN}"{STRING}"
|
||||
STR_MUSIC_TRACK :{TINY_FONT}{BLACK}Nummer
|
||||
STR_MUSIC_XTITLE :{TINY_FONT}{BLACK}Titel
|
||||
@@ -674,7 +677,9 @@ STR_PLAYLIST_TRACK_NAME :{TINY_FONT}{LTB
|
||||
STR_PLAYLIST_TRACK_INDEX :{TINY_FONT}{BLACK}Lidder Index
|
||||
STR_PLAYLIST_PROGRAM :{TINY_FONT}{BLACK}Programm - '{STRING}'
|
||||
STR_PLAYLIST_CLEAR :{TINY_FONT}{BLACK}Läschen
|
||||
STR_PLAYLIST_CHANGE_SET :{BLACK}Set wiesselen
|
||||
STR_PLAYLIST_TOOLTIP_CLEAR_CURRENT_PROGRAM_CUSTOM1 :{BLACK}De gewielte Program reseten (nëmmen Benotzerdéf.1 oder Benotzerdéf.2)
|
||||
STR_PLAYLIST_TOOLTIP_CHANGE_SET :{BLACK}Wiessel d'Musikselektioun op en anert installéiert Set
|
||||
STR_PLAYLIST_TOOLTIP_CLICK_TO_ADD_TRACK :{BLACK}Klick op d'Lidd fir et zum aktuellen Program dobäi zesetzen (nëmme Benotzerdéf.1 oder Benotzerdéf.2)
|
||||
STR_PLAYLIST_TOOLTIP_CLICK_TO_REMOVE_TRACK :{BLACK}Klick op d'Lidd fir et vum aktuellen Programm ze läschen (Benotzerdefinéiert 1 an 2 nëmmen)
|
||||
|
||||
@@ -810,6 +815,7 @@ STR_NEWS_MERGER_TAKEOVER_TITLE :{BIG_FONT}{BLAC
|
||||
STR_PRESIDENT_NAME_MANAGER :{BLACK}{PRESIDENT_NAME}{}(Manager)
|
||||
|
||||
STR_NEWS_NEW_TOWN :{BLACK}{BIG_FONT}{STRING} huet Kontruktioun vun der Stad {TOWN} gesponsort!
|
||||
STR_NEWS_NEW_TOWN_UNSPONSORED :{BLACK}{BIG_FONT}En neit Duerf mam Numm {TOWN} gouf gegrënnt!
|
||||
|
||||
STR_NEWS_INDUSTRY_CONSTRUCTION :{BIG_FONT}{BLACK}{STRING} gëtt bei {TOWN} gebaut!
|
||||
STR_NEWS_INDUSTRY_PLANTED :{BIG_FONT}{BLACK}{STRING} gëtt bei {TOWN} geplanzt!
|
||||
@@ -985,6 +991,8 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :Duebel
|
||||
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Véierfach
|
||||
|
||||
|
||||
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal
|
||||
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Véierfach
|
||||
|
||||
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Basis Grafikset
|
||||
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Wielt de Basis Grafikset dee soll benotzt ginn
|
||||
@@ -1337,6 +1345,7 @@ STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_HELPTEXT :Faarf vum Terra
|
||||
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_GREEN :Gréng
|
||||
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_DARK_GREEN :Donkelgréng
|
||||
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :Mof
|
||||
STR_CONFIG_SETTING_SCROLLMODE_LMB :Kaart mat der lénker Maustast bewegen
|
||||
STR_CONFIG_SETTING_SMOOTH_SCROLLING :Feine Scrolling: {STRING}
|
||||
STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Kontrolléiert wéi d'Haptusiicht op eng bestëmmten Positioun scrollt, wann een op déi kléng Kaart klickt oder en Befehl fir ob en spezifescht Objet ze scrollen gëtt. Wann ugeschalt, gëtt bis dohin gescrollt, wann ausgeschalt, spréngt d'Vue op den Zielobjet
|
||||
STR_CONFIG_SETTING_MEASURE_TOOLTIP :Weis en Mooss-Tooltip wann verschidde Bau-Tools benotzt ginn: {STRING}
|
||||
@@ -1579,7 +1588,7 @@ STR_CONFIG_SETTING_SOFT_LIMIT_HELPTEXT :Unzuel un net-g
|
||||
STR_CONFIG_SETTING_SOFT_LIMIT_VALUE :{COMMA}
|
||||
STR_CONFIG_SETTING_SOFT_LIMIT_DISABLED :ausgeschalt
|
||||
STR_CONFIG_SETTING_ZOOM_MIN :Maximalen Ranzoom Level: {STRING}
|
||||
STR_CONFIG_SETTING_ZOOM_MIN_HELPTEXT :Maximal Ranzoomstuf fir Usiichtsfënsteren. Et gëtt méi Späicher gebraucht wann d'Stufen ze grouss ginn
|
||||
STR_CONFIG_SETTING_ZOOM_MIN_HELPTEXT :Maximal Razoomstuf fir Usiichtsfënsteren. Et gëtt méi Späicher gebraucht wann d'Stufen ze grouss ginn
|
||||
STR_CONFIG_SETTING_ZOOM_MAX :Maximalen Rauszoom Level: {STRING}
|
||||
STR_CONFIG_SETTING_ZOOM_MAX_HELPTEXT :Maximal Rauszoom-Stuf fir Usiichtsfënsteren. Méi grouss Rauszoom-Stufen kënnen Ruckeler verursaachen
|
||||
STR_CONFIG_SETTING_ZOOM_LVL_MIN :4x
|
||||
@@ -1805,6 +1814,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Wiessel
|
||||
STR_CHEAT_SETUP_PROD :{LTBLUE}Erlaabt d'ännere vun de Produktiounswäerter: {ORANGE}{STRING}
|
||||
|
||||
# Livery window
|
||||
STR_LIVERY_CAPTION :{WHITE}{COMPANY} - Neie Faarfschema
|
||||
|
||||
STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Weis generell Faarfschemen
|
||||
STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Weis Zuch Faarfschemen
|
||||
@@ -2688,9 +2698,21 @@ STR_ABOUT_VERSION :{BLACK}OpenTTD
|
||||
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2019 D'OpenTTD team
|
||||
|
||||
# Framerate display window
|
||||
STR_FRAMERATE_AVERAGE :{WHITE}Mëttel
|
||||
STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL} ms
|
||||
STR_FRAMERATE_MS_WARN :{YELLOW}{DECIMAL} ms
|
||||
STR_FRAMERATE_FPS_GOOD :{LTBLUE}{DECIMAL} Biller/s
|
||||
STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL} Biller/s
|
||||
STR_FRAMERATE_GRAPH_SECONDS :{TINY_FONT}{COMMA} s
|
||||
############ Leave those lines in this order!!
|
||||
STR_FRAMERATE_GL_ROADVEHS :{BLACK} Stroossegefierer Ticken:
|
||||
STR_FRAMERATE_DRAWING :{BLACK}Graphikrendering:
|
||||
STR_FRAMERATE_VIDEO :{BLACK}Video-output:
|
||||
############ End of leave-in-this-order
|
||||
############ Leave those lines in this order!!
|
||||
STR_FRAMETIME_CAPTION_GL_ROADVEHS :Stroossegefierer Ticken
|
||||
STR_FRAMETIME_CAPTION_GL_SHIPS :Schëffticker
|
||||
STR_FRAMETIME_CAPTION_SOUND :Soundmixing
|
||||
############ End of leave-in-this-order
|
||||
|
||||
|
||||
@@ -2833,6 +2855,7 @@ STR_NEWGRF_SETTINGS_VERSION :{BLACK}Versioun
|
||||
STR_NEWGRF_SETTINGS_MIN_VERSION :{BLACK}Min. kompatibel Versioun: {SILVER}{NUM}
|
||||
STR_NEWGRF_SETTINGS_MD5SUM :{BLACK}MD5sum: {SILVER}{STRING}
|
||||
STR_NEWGRF_SETTINGS_PALETTE :{BLACK}Palette: {SILVER}{STRING}
|
||||
STR_NEWGRF_SETTINGS_PALETTE_LEGACY :Legacy (W)
|
||||
STR_NEWGRF_SETTINGS_PARAMETER :{BLACK}Parameter: {SILVER}{STRING}
|
||||
|
||||
STR_NEWGRF_SETTINGS_NO_INFO :{BLACK}Keng Info verfügbar
|
||||
@@ -2914,6 +2937,7 @@ STR_NEWGRF_ERROR_READ_BOUNDS :Lanscht d'Enn v
|
||||
STR_NEWGRF_ERROR_GRM_FAILED :Ugefroten GRF Ressource net verfügbar (sprite {3:NUM})
|
||||
STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} gouf ausgeschalt vun {STRING}
|
||||
STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Invalid/onbekannten Sprite Layout Format (Sprite {3:NUM})
|
||||
STR_NEWGRF_ERROR_LIST_PROPERTY_TOO_LONG :Zevill Elementer an der Eegeschaftewert-Lëscht (Sprite {3:NUM}, Eegeschaft {4:HEX})
|
||||
|
||||
# NewGRF related 'general' warnings
|
||||
STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Opgepasst!
|
||||
@@ -3346,6 +3370,7 @@ STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Gruppen
|
||||
STR_GROUP_CREATE_TOOLTIP :{BLACK}Klick fir eng Grupp ze maachen
|
||||
STR_GROUP_DELETE_TOOLTIP :{BLACK}Déi ungewielte Grupp läschen
|
||||
STR_GROUP_RENAME_TOOLTIP :{BLACK}Déi ungewielte Grupp ëmbenennen
|
||||
STR_GROUP_LIVERY_TOOLTIP :{BLACK}Wiessel d'Faarwschema vun dem ausgewielte Grupp
|
||||
STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Klick fir déi Grupp vum globalen "Autoersetzen" auszeschléissen
|
||||
|
||||
STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Grupp läschen
|
||||
@@ -4220,6 +4245,7 @@ STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... d'St
|
||||
STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... Strooss geet an dei falsch Richtung
|
||||
STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... Duerchfahrtstops kënnen keng Kéiren hunn
|
||||
STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... Duerchfahrtstops kënnen keng Kräizungen hunn
|
||||
STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}... Einbahnstrooss oder blockéiert
|
||||
|
||||
# Station destruction related errors
|
||||
STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Kann den Deel vun der Gare net ofrappen...
|
||||
@@ -4471,6 +4497,7 @@ STR_BASESOUNDS_DOS_DESCRIPTION :Original Transp
|
||||
STR_BASESOUNDS_WIN_DESCRIPTION :Original Transport Tycoon Deluxe Windows Editioun Sound.
|
||||
STR_BASESOUNDS_NONE_DESCRIPTION :E Soundpack ouni iergendee Sound.
|
||||
STR_BASEMUSIC_WIN_DESCRIPTION :Original Transport Tycoon Deluxe Windows Editioun Musik.
|
||||
STR_BASEMUSIC_TTO_DESCRIPTION :Original Transport Tycoon (Original/World Editor) DOS Editioun-Musik.
|
||||
STR_BASEMUSIC_NONE_DESCRIPTION :E Musikpack ouni aktuell Musik.
|
||||
|
||||
##id 0x2000
|
||||
|
||||
@@ -997,7 +997,12 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :Normal
|
||||
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :2 ganger størrelse
|
||||
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :4 ganger størrelse
|
||||
|
||||
STR_GAME_OPTIONS_FONT_ZOOM :{BLACK}Skriftstørrelse
|
||||
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Velg skriftstørrelse for grensesnitt
|
||||
|
||||
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal
|
||||
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Dobbel størrelse
|
||||
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Firedobbel størrelse
|
||||
|
||||
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Grafikksett
|
||||
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Velg grafikksett som skal brukes
|
||||
@@ -2746,6 +2751,9 @@ STR_FRAMERATE_DRAWING :{BLACK}Grafikkt
|
||||
STR_FRAMERATE_DRAWING_VIEWPORTS :{BLACK} Synsfelt for spillverden:
|
||||
STR_FRAMERATE_VIDEO :{BLACK}Video output:
|
||||
STR_FRAMERATE_SOUND :{BLACK}Lydmiksing:
|
||||
STR_FRAMERATE_ALLSCRIPTS :{BLACK} GS/AI total:
|
||||
STR_FRAMERATE_GAMESCRIPT :{BLACK} Game script:
|
||||
STR_FRAMERATE_AI :{BLACK} AI {NUM} {STRING}
|
||||
############ End of leave-in-this-order
|
||||
############ Leave those lines in this order!!
|
||||
STR_FRAMETIME_CAPTION_GAMELOOP :Spill-løkke
|
||||
@@ -2760,6 +2768,9 @@ STR_FRAMETIME_CAPTION_DRAWING :Grafikktegning
|
||||
STR_FRAMETIME_CAPTION_DRAWING_VIEWPORTS :Tegning av synsfelt for spillverden
|
||||
STR_FRAMETIME_CAPTION_VIDEO :Video output
|
||||
STR_FRAMETIME_CAPTION_SOUND :Lydmiksing
|
||||
STR_FRAMETIME_CAPTION_ALLSCRIPTS :GS/AI scripts total
|
||||
STR_FRAMETIME_CAPTION_GAMESCRIPT :Game script
|
||||
STR_FRAMETIME_CAPTION_AI :AI {NUM} {STRING}
|
||||
############ End of leave-in-this-order
|
||||
|
||||
|
||||
@@ -2992,7 +3003,7 @@ STR_NEWGRF_ERROR_GRM_FAILED :Etterspurte GRF
|
||||
STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} ble deaktivert av {STRING}
|
||||
STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Ugyldig/ukjent sprite layout-format (figur {3:NUM})
|
||||
STR_NEWGRF_ERROR_LIST_PROPERTY_TOO_LONG :For mange elementer i fortegnelse over eiendomsverdier (sprite {3:NUM}, property {4:HEX})
|
||||
STR_NEWGRF_ERROR_INDPROD_CALLBACK :Ugyldig industriprodukjson callback (sprite {3:NUM}, "{1:STRING}")
|
||||
STR_NEWGRF_ERROR_INDPROD_CALLBACK :Ugyldig industriprodukjson callback (sprite {3:NUM}, "{2:STRING}")
|
||||
|
||||
# NewGRF related 'general' warnings
|
||||
STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Advarsel!
|
||||
@@ -3024,6 +3035,7 @@ STR_NEWGRF_BUGGY :{WHITE}NewGRF '
|
||||
STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}Vare-/ombyggingsinformasjon for '{1:ENGINE}' er forskjellig fra kjøpelisten etter konstruksjonen. Dette kan resultere i at autofornying ikke fungerer på riktig måte.
|
||||
STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' forårsaket en uendelig løkke i produksjonstilbakekallet.
|
||||
STR_NEWGRF_BUGGY_UNKNOWN_CALLBACK_RESULT :{WHITE}Tilbakekall {1:HEX} rapporterte ukjent/ugyldig resultat {2:HEX}
|
||||
STR_NEWGRF_BUGGY_INVALID_CARGO_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' ugyldig varetype i produksjonscallback at {2:HEX}
|
||||
|
||||
# 'User removed essential NewGRFs'-placeholders for stuff without specs
|
||||
STR_NEWGRF_INVALID_CARGO :<invalid cargo>
|
||||
|
||||
@@ -1374,6 +1374,7 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :Podwójny
|
||||
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Poczwórny
|
||||
|
||||
|
||||
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Poczwórny
|
||||
|
||||
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Podstawowy zestaw grafik
|
||||
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Wybierz podstawowy zestaw grafik do użycia
|
||||
@@ -2762,7 +2763,7 @@ STR_BUILD_SIGNAL_ELECTRIC_PBS_OWAY_TOOLTIP :{BLACK}Jednokie
|
||||
STR_BUILD_SIGNAL_CONVERT_TOOLTIP :{BLACK}Zamiana sygnałów{}Jeżeli włączone, kliknięcie na istniejący sygnał spowoduje zamianę go na wybrany typ i wariant. CTRL+klik przełącza istniejący wariant. Shift+klik pokazuje szacowany koszt zamiany
|
||||
STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_TOOLTIP :{BLACK}Gęstość sygnałów przy przeciąganiu
|
||||
STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_DECREASE_TOOLTIP :{BLACK}Zmniejsz odległość między sygnałami przy przeciąganiu
|
||||
STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_INCREASE_TOOLTIP :{BLACK}Zwiększ gęstość sygnałów przy przeciąganiu
|
||||
STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_INCREASE_TOOLTIP :{BLACK}Zwiększ odległość między sygnałami przy przeciąganiu
|
||||
|
||||
# Bridge selection window
|
||||
STR_SELECT_RAIL_BRIDGE_CAPTION :{WHITE}Wybierz rodzaj mostu kolejowego
|
||||
@@ -3086,6 +3087,7 @@ STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD
|
||||
|
||||
# Framerate display window
|
||||
STR_FRAMERATE_CAPTION :{WHITE}Ilość klatek na sekundę
|
||||
STR_FRAMERATE_CAPTION_SMALL :{STRING}{WHITE} ({DECIMAL}x)
|
||||
STR_FRAMERATE_RATE_GAMELOOP_TOOLTIP :{BLACK}Liczba ticków gry symulowanych na sekundę.
|
||||
STR_FRAMERATE_RATE_BLITTER_TOOLTIP :{BLACK}Liczba renderowanych klatek wideo na sekundę.
|
||||
STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK}Jak szybko gra obecnie działa, w porównaniu do oczekiwanej prędkości przy normalnym tempie symulacji.
|
||||
@@ -3110,6 +3112,7 @@ STR_FRAMERATE_SOUND :{WHITE}Miksowan
|
||||
############ End of leave-in-this-order
|
||||
############ Leave those lines in this order!!
|
||||
STR_FRAMETIME_CAPTION_GAMELOOP :Pętla gry
|
||||
STR_FRAMETIME_CAPTION_GL_ECONOMY :Obsługa ładunku
|
||||
STR_FRAMETIME_CAPTION_GL_LINKGRAPH :Opóźnienie wykresu połączeń
|
||||
STR_FRAMETIME_CAPTION_DRAWING :Renderowanie grafiki
|
||||
STR_FRAMETIME_CAPTION_DRAWING_VIEWPORTS :Renderowanie okna podgląu świata
|
||||
@@ -3469,6 +3472,7 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Daj ła
|
||||
# Goal window
|
||||
STR_GOALS_CAPTION :{WHITE}Cele firmy {COMPANY}
|
||||
STR_GOALS_SPECTATOR_CAPTION :{WHITE}Cele globalne
|
||||
STR_GOALS_SPECTATOR :Cele globalne
|
||||
STR_GOALS_GLOBAL_TITLE :{BLACK}Cele globalne:
|
||||
STR_GOALS_TEXT :{ORANGE}{STRING}
|
||||
STR_GOALS_NONE :{ORANGE}- Brak -
|
||||
@@ -3517,6 +3521,7 @@ STR_SUBSIDIES_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Klik na
|
||||
# Story book window
|
||||
STR_STORY_BOOK_CAPTION :{WHITE}Dziennik Historii Firmy {COMPANY}
|
||||
STR_STORY_BOOK_SPECTATOR_CAPTION :{WHITE}Ogólny przewodnik
|
||||
STR_STORY_BOOK_SPECTATOR :Ogólny przewodnik
|
||||
STR_STORY_BOOK_TITLE :{YELLOW}{STRING}
|
||||
STR_STORY_BOOK_GENERIC_PAGE_ITEM :Strona {NUM}
|
||||
STR_STORY_BOOK_SEL_PAGE_TOOLTIP :{BLACK}Skocz na właściwą stronę wybierając ją z listy.
|
||||
|
||||
@@ -996,7 +996,12 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :Normal
|
||||
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :Dobro do tamanho
|
||||
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Quádruplo do tamanho
|
||||
|
||||
STR_GAME_OPTIONS_FONT_ZOOM :{BLACK}Tamanho da fonte
|
||||
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Seleccionar tamanho da fonte de interface a usar
|
||||
|
||||
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal
|
||||
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Dobro do tamanho
|
||||
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Quádruplo do tamanho
|
||||
|
||||
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Conjunto de gráficos base
|
||||
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Seleccione o conjunto de gráficos base a usar
|
||||
@@ -2743,6 +2748,9 @@ STR_FRAMERATE_DRAWING :{BLACK}Renderiz
|
||||
STR_FRAMERATE_DRAWING_VIEWPORTS :{BLACK} Janelas de exibição do mundo:
|
||||
STR_FRAMERATE_VIDEO :{BLACK}Saída de video:
|
||||
STR_FRAMERATE_SOUND :{BLACK}Mistura de Som:
|
||||
STR_FRAMERATE_ALLSCRIPTS :{BLACK} GS/AI total:
|
||||
STR_FRAMERATE_GAMESCRIPT :{BLACK} Script de jogo:
|
||||
STR_FRAMERATE_AI :{BLACK} AI {NUM} {STRING}
|
||||
############ End of leave-in-this-order
|
||||
############ Leave those lines in this order!!
|
||||
STR_FRAMETIME_CAPTION_GAMELOOP :Loop de jogo
|
||||
@@ -2757,6 +2765,9 @@ STR_FRAMETIME_CAPTION_DRAWING :Renderização
|
||||
STR_FRAMETIME_CAPTION_DRAWING_VIEWPORTS :Renderização de janela de exibição do mundo
|
||||
STR_FRAMETIME_CAPTION_VIDEO :Saída de video
|
||||
STR_FRAMETIME_CAPTION_SOUND :Mistura de Som
|
||||
STR_FRAMETIME_CAPTION_ALLSCRIPTS :total scripts GS/AI
|
||||
STR_FRAMETIME_CAPTION_GAMESCRIPT :Script de jogo
|
||||
STR_FRAMETIME_CAPTION_AI :AI {NUM} {STRING}
|
||||
############ End of leave-in-this-order
|
||||
|
||||
|
||||
@@ -2989,7 +3000,7 @@ STR_NEWGRF_ERROR_GRM_FAILED :Recursos GRF pe
|
||||
STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} foi desactivado por {STRING}
|
||||
STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Formato de Gráfico Inválido ou desconhecido (sprite {3:NUM})
|
||||
STR_NEWGRF_ERROR_LIST_PROPERTY_TOO_LONG :Demasiados elementos na lista de valores de propriedade (sprite {3:NUM}, propriedade {4:HEX})
|
||||
STR_NEWGRF_ERROR_INDPROD_CALLBACK :Revogação da produção industrial inválida (sprite {3:NUM}, "{1:STRING}")
|
||||
STR_NEWGRF_ERROR_INDPROD_CALLBACK :Revogação da produção industrial inválida (sprite {3:NUM}, "{2:STRING}")
|
||||
|
||||
# NewGRF related 'general' warnings
|
||||
STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Alerta!
|
||||
|
||||
@@ -475,6 +475,7 @@ STR_ABOUT_MENU_SCREENSHOT :Capturează ecr
|
||||
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Captură mărită
|
||||
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Mărimea implicită a capturii
|
||||
STR_ABOUT_MENU_GIANT_SCREENSHOT :Capturează toată harta
|
||||
STR_ABOUT_MENU_SHOW_FRAMERATE :Arată FPS
|
||||
STR_ABOUT_MENU_ABOUT_OPENTTD :Despre 'OpenTTD'
|
||||
STR_ABOUT_MENU_SPRITE_ALIGNER :Aliniere imagini
|
||||
STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Afişează/ascunde casetele de încadrare
|
||||
@@ -923,6 +924,7 @@ STR_GAME_OPTIONS_CURRENCY_ZAR :Rand sud-africa
|
||||
STR_GAME_OPTIONS_CURRENCY_CUSTOM :Personalizată...
|
||||
STR_GAME_OPTIONS_CURRENCY_GEL :Lari Georgian (GEL)
|
||||
STR_GAME_OPTIONS_CURRENCY_IRR :Rial Iranian (IRR)
|
||||
STR_GAME_OPTIONS_CURRENCY_RUB :Ruble rusești (RUB)
|
||||
############ end of currency region
|
||||
|
||||
STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Autovehiculele circulă...
|
||||
@@ -1103,6 +1105,7 @@ STR_CONFIG_SETTING_TYPE_COMPANY_MENU :Setări compani
|
||||
STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :Setări companie (stocate în fişierul de salvare; afectează doar compania curentă)
|
||||
|
||||
STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}Categorie:
|
||||
STR_CONFIG_SETTING_RESTRICT_TYPE :{BLACK}Tip:
|
||||
STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}Arată în lista de mai jos doar setările modificate
|
||||
STR_CONFIG_SETTING_RESTRICT_BASIC :Setări de bază (afişează numai setări importante)
|
||||
STR_CONFIG_SETTING_RESTRICT_ADVANCED :Setări avansate (afişează majoritatea setărilor)
|
||||
@@ -1118,6 +1121,7 @@ STR_CONFIG_SETTING_TYPE_DROPDOWN_GAME_INGAME :Setări joc (st
|
||||
STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_MENU :Setări companie (stocate în salvări; afectează doar jocurile noi)
|
||||
STR_CONFIG_SETTING_TYPE_DROPDOWN_COMPANY_INGAME :Setări compenia (stocate în salvări; afectează doar compania curentă)
|
||||
STR_CONFIG_SETTING_CATEGORY_HIDES :{BLACK}Arată toate rezultatele de căutare setând{}{SILVER}Categoria {BLACK}în {WHITE}{STRING}
|
||||
STR_CONFIG_SETTING_TYPE_HIDES :{BLACK}Arată toate rezultatele de căutare setând{}{SILVER}Tipul {BLACK}în {WHITE}Toate tipurile de setări
|
||||
STR_CONFIG_SETTINGS_NONE :{WHITE}- Nespecificat -
|
||||
|
||||
STR_CONFIG_SETTING_OFF :Inactiv
|
||||
@@ -1309,6 +1313,7 @@ STR_CONFIG_SETTING_TREE_PLACER_HELPTEXT :Alegeți distri
|
||||
STR_CONFIG_SETTING_TREE_PLACER_NONE :Niciunul
|
||||
STR_CONFIG_SETTING_TREE_PLACER_ORIGINAL :Original
|
||||
STR_CONFIG_SETTING_TREE_PLACER_IMPROVED :Îmbunătăţit
|
||||
STR_CONFIG_SETTING_ROAD_SIDE :Autovehicule: {STRING}
|
||||
STR_CONFIG_SETTING_ROAD_SIDE_HELPTEXT :Alege banda pentru condus
|
||||
STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Rotaţie hartă înălţimi: {STRING}
|
||||
STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Spre stânga
|
||||
@@ -1328,6 +1333,7 @@ STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_HELPTEXT :Culoarea terenu
|
||||
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_GREEN :Verde
|
||||
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_DARK_GREEN :Verde închis
|
||||
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :Mov
|
||||
STR_CONFIG_SETTING_SCROLLMODE_RMB_LOCKED :Mută harta ținând apăsat click dreapta, poziția cursorului rămânând fixă
|
||||
STR_CONFIG_SETTING_SMOOTH_SCROLLING :Derulare uşoară ecran: {STRING}
|
||||
STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Controlează modul de deplasare a imaginii din ecranul principal când se face click pe harta mică sau când se execută o comandă de deplasare către un obiect anume de pe hartă. Dacă este activată, imaginea se deplasează în mod fluid, altfel imaginea sare direct la zona dorită
|
||||
STR_CONFIG_SETTING_MEASURE_TOOLTIP :Arată o indicaţie de distanţă la folosirea uneltelor de construcţie: {STRING}
|
||||
@@ -1360,6 +1366,7 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_CONTROL :Control+Click
|
||||
STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Oprit
|
||||
|
||||
|
||||
STR_CONFIG_SETTING_AUTOSAVE :Autosalvare: {STRING}
|
||||
|
||||
STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES :Foloseşte formatul datei {STRING} pentru numele salvărilor
|
||||
STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_HELPTEXT :Formatul datei in numele salvărilor
|
||||
@@ -1598,6 +1605,7 @@ STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED :Modalitatea de
|
||||
STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT :Modalitatea de distribuire pentru alte clase de cargo: {STRING}
|
||||
STR_CONFIG_SETTING_LINKGRAPH_ACCURACY :Acurateţea distribuţiei: {STRING}
|
||||
STR_CONFIG_SETTING_DEMAND_DISTANCE :Efectul distanţei asupra cererii: {STRING}
|
||||
STR_CONFIG_SETTING_DEMAND_DISTANCE_HELPTEXT :Dacă setezi această valoare peste 0, distanța dintre stația origine A al mărfii și o posibilă stație B va afecta cantitatea de marfă trimisă din punctul A în B. Cu cât e mai departe B de A cu atât va fi mai mică cantitatea de marfă transportată. Cu cât mărești această valoare, cu atât mai puțină marfă se livrează spre destinațiile îndepărtate si cu atât mai multă la cele mai apropiate.
|
||||
STR_CONFIG_SETTING_DEMAND_SIZE :Cantitatea de cargo la întoarcere pentru modul simetric: {STRING}
|
||||
STR_CONFIG_SETTING_SHORT_PATH_SATURATION :Saturaţia căilor de capacitate mică înainte de a utiliza căi de capacitate mare: {STRING}
|
||||
|
||||
@@ -1638,6 +1646,7 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Metric (m)
|
||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m)
|
||||
|
||||
STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Localizare
|
||||
STR_CONFIG_SETTING_GRAPHICS :{ORANGE}Grafică
|
||||
STR_CONFIG_SETTING_SOUND :{ORANGE}Efecte sonore
|
||||
STR_CONFIG_SETTING_INTERFACE :{ORANGE}Interfaţă
|
||||
STR_CONFIG_SETTING_INTERFACE_GENERAL :{ORANGE}General
|
||||
@@ -2660,6 +2669,7 @@ STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD
|
||||
STR_FRAMERATE_RATE_GAMELOOP_TOOLTIP :{BLACK}Număr de evenimente de joc simulate per secundă.
|
||||
STR_FRAMERATE_AVERAGE :{WHITE}Medie
|
||||
STR_FRAMERATE_DATA_POINTS :{BLACK}Date bazate pe măsurători {COMMA}
|
||||
STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL} ms
|
||||
STR_FRAMERATE_GRAPH_MILLISECONDS :{TINY_FONT}{COMMA} ms
|
||||
############ Leave those lines in this order!!
|
||||
STR_FRAMERATE_VIDEO :{BLACK}Ieșire video:
|
||||
@@ -2690,6 +2700,7 @@ STR_SAVELOAD_DETAIL_CAPTION :{BLACK}Detalii
|
||||
STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}Nicio informaţie disponibilă
|
||||
STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING}
|
||||
STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}NewGRF: {WHITE}{STRING}
|
||||
STR_SAVELOAD_FILTER_TITLE :{BLACK}Filtrare după:
|
||||
|
||||
STR_SAVELOAD_OSKTITLE :{BLACK}Introduceţi un nume pentru salvare
|
||||
|
||||
@@ -2815,6 +2826,7 @@ STR_NEWGRF_SETTINGS_DISABLED :{RED}Dezactivat
|
||||
STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}Incompatibil cu această versiune de OpenTTD
|
||||
|
||||
# NewGRF save preset window
|
||||
STR_SAVE_PRESET_TITLE :{BLACK}Adaugă denumire presetare
|
||||
STR_SAVE_PRESET_CANCEL :{BLACK}Anulează
|
||||
STR_SAVE_PRESET_CANCEL_TOOLTIP :{BLACK}Nu schimba setarea implicită
|
||||
STR_SAVE_PRESET_SAVE_TOOLTIP :{BLACK}Salvează setarea pe numele selectat
|
||||
@@ -3323,6 +3335,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Elimină toate
|
||||
STR_GROUP_RENAME_CAPTION :{BLACK}Redenumeşte un grup
|
||||
|
||||
STR_GROUP_OCCUPANCY :Utilizare curentă:
|
||||
STR_GROUP_OCCUPANCY_VALUE :{NUM}%
|
||||
|
||||
# Build vehicle window
|
||||
STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Noi vehicule feroviare
|
||||
@@ -3489,6 +3502,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :locomotivă per
|
||||
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cost: {CURRENCY_LONG} Greutate: {WEIGHT_SHORT}{}Vitezã: {VELOCITY} Putere: {POWER}{}Cost de rulare: {CURRENCY_LONG}/an{}Capacitate: {CARGO_LONG}
|
||||
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cost: {CURRENCY_LONG} Greutate: {WEIGHT_SHORT}{}Viteză: {VELOCITY} Putere: {POWER} Ef. T. Max.: {6:FORCE}{}Cost rulaj: {4:CURRENCY_LONG}/an{}Capacitate: {5:CARGO_LONG}
|
||||
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Viteză max.: {VELOCITY}{}Capacitate: {CARGO_LONG}{}Mentenanţă: {CURRENCY_LONG}/an
|
||||
STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Cost: {CURRENCY_LONG} Viteza maximă: {VELOCITY}{}Tip avion: {STRING} Rază: {COMMA} pătrățele{}Capacitate: {CARGO_LONG}, {CARGO_LONG}{}Cost întreținere: {CURRENCY_LONG}/an
|
||||
|
||||
# Autoreplace window
|
||||
STR_REPLACE_VEHICLES_WHITE :{WHITE}Înlocuieşte {STRING} - {STRING}
|
||||
@@ -4423,6 +4437,7 @@ STR_BASESOUNDS_DOS_DESCRIPTION :Setul de sunete
|
||||
STR_BASESOUNDS_WIN_DESCRIPTION :Setul de sunete original al Transport Tycoon Deluxe pentru Windows.
|
||||
STR_BASESOUNDS_NONE_DESCRIPTION :Un set de sunete fără nici un sunet inclus.
|
||||
STR_BASEMUSIC_WIN_DESCRIPTION :Setul de muzică original al Transport Tycoon Deluxe pentru Windows.
|
||||
STR_BASEMUSIC_DOS_DESCRIPTION :Setul de muzică original al Transport Tycoon Deluxe pentru DOS.
|
||||
STR_BASEMUSIC_NONE_DESCRIPTION :Un set de muzică fără muzică inclusă.
|
||||
|
||||
##id 0x2000
|
||||
|
||||
@@ -3179,7 +3179,7 @@ STR_NEWGRF_ERROR_GRM_FAILED :Запроше
|
||||
STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} был отключён из-за {2:STRING}
|
||||
STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Недопустимый/неизвестный формат расположения спрайтов (спрайт {3:NUM})
|
||||
STR_NEWGRF_ERROR_LIST_PROPERTY_TOO_LONG :Слишком много элементов в списке значений (спрайт {3:NUM}, свойство {4:HEX})
|
||||
STR_NEWGRF_ERROR_INDPROD_CALLBACK :Неверная обработка продукции предприятия (спрайт {3:NUM}, "{1:STRING}")
|
||||
STR_NEWGRF_ERROR_INDPROD_CALLBACK :Неверная обработка продукции предприятия (спрайт {3:NUM}, "{2:STRING}")
|
||||
|
||||
# NewGRF related 'general' warnings
|
||||
STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Осторожно!
|
||||
@@ -3211,6 +3211,7 @@ STR_NEWGRF_BUGGY :{WHITE}NewGRF
|
||||
STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}Информация о вместимости/переоборудовании для локомотива «{1:ENGINE}» после постройки отличается от сведений в списке покупки, что может помешать функции автообновления/автозамены корректно произвести переоборудование.
|
||||
STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK :{WHITE}Модуль «{1:STRING}» вызвал бесконечный цикл
|
||||
STR_NEWGRF_BUGGY_UNKNOWN_CALLBACK_RESULT :{WHITE}Функция обратного вызова {1:HEX} вернула непонятный/неверный результат {2:HEX}
|
||||
STR_NEWGRF_BUGGY_INVALID_CARGO_PRODUCTION_CALLBACK :{WHITE}«{1:STRING}» вернул неверный тип груза по адресу {2:HEX}
|
||||
|
||||
# 'User removed essential NewGRFs'-placeholders for stuff without specs
|
||||
STR_NEWGRF_INVALID_CARGO :<неизвестный груз>
|
||||
|
||||
@@ -3000,7 +3000,7 @@ STR_NEWGRF_ERROR_GRM_FAILED :Recursos GRF so
|
||||
STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} fue desactivado por {STRING}
|
||||
STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Formato de colocación de sprites no válido o desconocido (sprite {3:NUM})
|
||||
STR_NEWGRF_ERROR_LIST_PROPERTY_TOO_LONG :Demasiados elementos en la lista de valores de propiedad (sprite {3:NUM}, property {4:HEX})
|
||||
STR_NEWGRF_ERROR_INDPROD_CALLBACK :Llamada de producción de industria no válida (sprite {3:NUM}, "{1:STRING}")
|
||||
STR_NEWGRF_ERROR_INDPROD_CALLBACK :Llamada de producción de industria no válida (sprite {3:NUM}, "{2:STRING}")
|
||||
|
||||
# NewGRF related 'general' warnings
|
||||
STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}¡Precaución!
|
||||
|
||||
@@ -2986,7 +2986,7 @@ STR_NEWGRF_ERROR_GRM_FAILED :Efterfrågade G
|
||||
STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} har inaktiverats av {2:STRING}
|
||||
STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Felaktigt/okänt layout-format av spriteobjekt (spriteobjekt {3:NUM})
|
||||
STR_NEWGRF_ERROR_LIST_PROPERTY_TOO_LONG :För många poster i listan med egenskapsvärden (spriteobjekt {3:NUM}, egenskap {4:HEX})
|
||||
STR_NEWGRF_ERROR_INDPROD_CALLBACK :Ogiltig industriproduktions-callback (spriteobjekt {3:NUM}, "{1:STRING}")
|
||||
STR_NEWGRF_ERROR_INDPROD_CALLBACK :Ogiltig industriproduktions-callback (spriteobjekt {3:NUM}, "{2:STRING}")
|
||||
|
||||
# NewGRF related 'general' warnings
|
||||
STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Varning!
|
||||
|
||||
@@ -996,7 +996,10 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :Normal
|
||||
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :İki kat büyük
|
||||
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Dört kat büyük
|
||||
|
||||
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_TOOLTIP :Arayüz boyutunu seç
|
||||
|
||||
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal
|
||||
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Yazı iki kat büyük
|
||||
|
||||
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Temel grafik kümesi
|
||||
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Kullanılacak temel grafik kümesini seçin
|
||||
@@ -2743,6 +2746,7 @@ STR_FRAMERATE_DRAWING :{BLACK}Grafik i
|
||||
STR_FRAMERATE_DRAWING_VIEWPORTS :{BLACK} Dünya görüş alanları:
|
||||
STR_FRAMERATE_VIDEO :{BLACK}Video çıkışı:
|
||||
STR_FRAMERATE_SOUND :{BLACK}Ses karıştırma:
|
||||
STR_FRAMERATE_GAMESCRIPT :Oyun scripti
|
||||
############ End of leave-in-this-order
|
||||
############ Leave those lines in this order!!
|
||||
STR_FRAMETIME_CAPTION_GAMELOOP :Oyun döngüsü
|
||||
@@ -2989,7 +2993,7 @@ STR_NEWGRF_ERROR_GRM_FAILED :İstenen GRF ka
|
||||
STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} {STRING} tarafından deaktive edildi
|
||||
STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Geçersiz/bilinmeyen nesne yerleşim biçimi (nesne {3:NUM})
|
||||
STR_NEWGRF_ERROR_LIST_PROPERTY_TOO_LONG :Özellik değeri listesinde çok fazla öğe (sprite {3:NUM}, özellik {4:HEX})
|
||||
STR_NEWGRF_ERROR_INDPROD_CALLBACK :Geçersiz endüstri üretim geri çağrımı (sprite {3:NUM}, "{1:STRING}")
|
||||
STR_NEWGRF_ERROR_INDPROD_CALLBACK :Geçersiz endüstri üretim geri çağrımı (sprite {3:NUM}, "{2:STRING}")
|
||||
|
||||
# NewGRF related 'general' warnings
|
||||
STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Uyarı!
|
||||
|
||||
@@ -314,6 +314,8 @@ STR_COLOUR_ORANGE :Помаран
|
||||
STR_COLOUR_BROWN :Коричневий
|
||||
STR_COLOUR_GREY :Сірий
|
||||
STR_COLOUR_WHITE :Білий
|
||||
STR_COLOUR_RANDOM :Випадково
|
||||
STR_COLOUR_DEFAULT :Звичайний
|
||||
|
||||
# Units used in OpenTTD
|
||||
STR_UNITS_VELOCITY_IMPERIAL :{COMMA}{NBSP}миль/год
|
||||
@@ -589,6 +591,7 @@ STR_TOOLBAR_SOUND_MUSIC :Звук/Муз
|
||||
############ range for message menu starts
|
||||
STR_NEWS_MENU_LAST_MESSAGE_NEWS_REPORT :Останнє повідомлення
|
||||
STR_NEWS_MENU_MESSAGE_HISTORY_MENU :Історія повідомлень
|
||||
STR_NEWS_MENU_DELETE_ALL_MESSAGES :Видалити всі повідомлення
|
||||
############ range ends here
|
||||
|
||||
############ range for about menu starts
|
||||
@@ -600,6 +603,7 @@ STR_ABOUT_MENU_SCREENSHOT :Знімок е
|
||||
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Знімок екрану з максимальним збільшенням
|
||||
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Знімок екрану зі стандартним збільшенням
|
||||
STR_ABOUT_MENU_GIANT_SCREENSHOT :Знімок всієї карти
|
||||
STR_ABOUT_MENU_SHOW_FRAMERATE :Швидкість генерації гри
|
||||
STR_ABOUT_MENU_ABOUT_OPENTTD :Про гру 'OpenTTD'
|
||||
STR_ABOUT_MENU_SPRITE_ALIGNER :Вирівнювання спрайтів
|
||||
STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Вкл./відкл. обмежуючі рамки
|
||||
@@ -778,6 +782,7 @@ STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLA
|
||||
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
|
||||
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
|
||||
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------
|
||||
STR_MUSIC_TITLE_NOMUSIC :{TINY_FONT}{DKGREEN}Немає доступної музики
|
||||
STR_MUSIC_TITLE_NAME :{TINY_FONT}{DKGREEN}"{STRING}"
|
||||
STR_MUSIC_TRACK :{TINY_FONT}{BLACK}Доріжка
|
||||
STR_MUSIC_XTITLE :{TINY_FONT}{BLACK}Заголовок
|
||||
@@ -798,11 +803,14 @@ STR_MUSIC_TOOLTIP_TOGGLE_PROGRAM_SHUFFLE :{BLACK}Вкл./
|
||||
STR_MUSIC_TOOLTIP_SHOW_MUSIC_TRACK_SELECTION :{BLACK}Показує вікно вибору музичної програми
|
||||
|
||||
# Playlist window
|
||||
STR_PLAYLIST_MUSIC_SELECTION_SETNAME :{WHITE}Музична програма - '{STRING}'
|
||||
STR_PLAYLIST_TRACK_NAME :{TINY_FONT}{LTBLUE}{ZEROFILL_NUM} "{STRING}"
|
||||
STR_PLAYLIST_TRACK_INDEX :{TINY_FONT}{BLACK}Назва доріжки
|
||||
STR_PLAYLIST_PROGRAM :{TINY_FONT}{BLACK}Програма - '{STRING}'
|
||||
STR_PLAYLIST_CLEAR :{TINY_FONT}{BLACK}Очистити
|
||||
STR_PLAYLIST_CHANGE_SET :{BLACK}Змінити набір
|
||||
STR_PLAYLIST_TOOLTIP_CLEAR_CURRENT_PROGRAM_CUSTOM1 :{BLACK}Очистити програму (тільки для Набору 1 або Набору 2)
|
||||
STR_PLAYLIST_TOOLTIP_CHANGE_SET :{BLACK}Виберіть інший набір музичного оформлення
|
||||
STR_PLAYLIST_TOOLTIP_CLICK_TO_ADD_TRACK :{BLACK}Виберіть доріжку, щоб додати до програми (тільки для Набору 1 або Набору 2)
|
||||
STR_PLAYLIST_TOOLTIP_CLICK_TO_REMOVE_TRACK :{BLACK}Клацніть мишою на мелодії для її видалення зі списку (лише Набір1 та Набір2)
|
||||
|
||||
@@ -938,6 +946,7 @@ STR_NEWS_MERGER_TAKEOVER_TITLE :{BIG_FONT}{BLAC
|
||||
STR_PRESIDENT_NAME_MANAGER :{BLACK}{PRESIDENT_NAME}{}(Керівник)
|
||||
|
||||
STR_NEWS_NEW_TOWN :{BLACK}{BIG_FONT}{STRING} субсидував спорудження нового міста {TOWN}!
|
||||
STR_NEWS_NEW_TOWN_UNSPONSORED :{BLACK}{BIG_FONT}Нове місто {TOWN} побудовано!
|
||||
|
||||
STR_NEWS_INDUSTRY_CONSTRUCTION :{BIG_FONT}{BLACK}Будується {STRING} біля {TOWN}!
|
||||
STR_NEWS_INDUSTRY_PLANTED :{BIG_FONT}{BLACK}Насаджено {STRING} біля {TOWN}!
|
||||
@@ -1005,9 +1014,9 @@ STR_NEWS_EXCLUSIVE_RIGHTS_DESCRIPTION :{BIG_FONT}{BLAC
|
||||
|
||||
# Extra view window
|
||||
STR_EXTRA_VIEW_PORT_TITLE :{WHITE}Вікно {COMMA}
|
||||
STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN :{BLACK}Копіювати до вікна
|
||||
STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN :{BLACK}Змінити вікно
|
||||
STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN_TT :{BLACK}Копіювати місцеположення з основного екрану до цього вікна
|
||||
STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW :{BLACK}Вставити з вікна
|
||||
STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW :{BLACK}Вставити в головне вікно
|
||||
STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW_TT :{BLACK}Перейти на основному екрані до цього місця
|
||||
|
||||
# Game options window
|
||||
@@ -1051,6 +1060,7 @@ STR_GAME_OPTIONS_CURRENCY_CUSTOM :Власна...
|
||||
STR_GAME_OPTIONS_CURRENCY_GEL :Грузинські ларі (GEL)
|
||||
STR_GAME_OPTIONS_CURRENCY_IRR :Іранський ріал (IRR)
|
||||
STR_GAME_OPTIONS_CURRENCY_RUB :Російський новий рубель (RUB)
|
||||
STR_GAME_OPTIONS_CURRENCY_MXN :Мексиканське песо (MXN)
|
||||
############ end of currency region
|
||||
|
||||
STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Сторона руху транспорту
|
||||
@@ -1113,7 +1123,12 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :Нормаль
|
||||
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :Подвійний розмір
|
||||
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Почетверний розмір
|
||||
|
||||
STR_GAME_OPTIONS_FONT_ZOOM :{BLACK}Розмір шрифту
|
||||
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Виберть розмір шрифту інтерфейсу
|
||||
|
||||
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Нормальний
|
||||
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Подвійний розмір
|
||||
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Почетверний розмір
|
||||
|
||||
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Базовий набір графіки
|
||||
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Оберіть, яку основну графіку використовувати
|
||||
@@ -1382,6 +1397,8 @@ STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Цю н
|
||||
STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Витрати на утримання інфраструктури: {STRING}
|
||||
STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :При включенні інфраструктура потребує коштів для утримання. Витрати збільшуються не пропорційно з ростом розміру мережі, більше впливаючи на великі компанії ніж на малі
|
||||
|
||||
STR_CONFIG_SETTING_COMPANY_STARTING_COLOUR :Колір компанії: {STRING}
|
||||
STR_CONFIG_SETTING_COMPANY_STARTING_COLOUR_HELPTEXT :Виберіть початковий колір для компанії
|
||||
|
||||
STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS :Аеропорти не застарівають: {STRING}
|
||||
STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS_HELPTEXT :При включенні кожен аеропорт буде доступним для будівництва безстроково після його впровадження.
|
||||
@@ -1466,6 +1483,12 @@ STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_HELPTEXT :Колір по
|
||||
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_GREEN :зелений
|
||||
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_DARK_GREEN :темнозелений
|
||||
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :фіолетовий
|
||||
STR_CONFIG_SETTING_SCROLLMODE :Переміщення вікна обзору: {STRING}
|
||||
STR_CONFIG_SETTING_SCROLLMODE_HELPTEXT :Спосіб пересування ігрового поля
|
||||
STR_CONFIG_SETTING_SCROLLMODE_DEFAULT :Переміщувати ПКМ, зафіксувавши курсор
|
||||
STR_CONFIG_SETTING_SCROLLMODE_RMB_LOCKED :Переміщувати карту ПКМ, зафіксувавши курсор
|
||||
STR_CONFIG_SETTING_SCROLLMODE_RMB :Переміщувати карту ПКМ
|
||||
STR_CONFIG_SETTING_SCROLLMODE_LMB :Переміщувати ЛКМ
|
||||
STR_CONFIG_SETTING_SMOOTH_SCROLLING :Плавна прокрутка у вікні: {STRING}
|
||||
STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Налаштування способу прокрутки основного екрану при клацанні мишою по зменшенній карті, або інших діях, що призводять до переміщення по карті (кнопки "Оглянути", тощо). При включенні опції переміщення карти відбувається плавно. При виключенні - відбувається моментальне переміщення в необхідну точку
|
||||
STR_CONFIG_SETTING_MEASURE_TOOLTIP :Показувати підказки про розміри під час будівництва: {STRING}
|
||||
@@ -1497,6 +1520,8 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_COMMAND :Команда+
|
||||
STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_CONTROL :Ctrl+клац мишою
|
||||
STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :не емулювати
|
||||
|
||||
STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Закрити вікно правою кнопкою миші: {STRING}
|
||||
STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Закривати вікно кліком правої кнопки миші по ньому. При цьому віключається поява підказок за правою кнопкою.
|
||||
|
||||
STR_CONFIG_SETTING_AUTOSAVE :Автозбереження: {STRING}
|
||||
STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Оберіть проміжок між автоматичними збереженнями гри
|
||||
@@ -1886,6 +1911,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Пере
|
||||
STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Показати налаштування AI / Ігрового Скрипта
|
||||
STR_INTRO_TOOLTIP_QUIT :{BLACK}Вийти з OpenTTD
|
||||
|
||||
STR_INTRO_BASESET :{BLACK}В обраному наборі базової графіки немає {NUM} спрайт{P а ів ів}. Будь ласка, оновіть набір графіки.
|
||||
STR_INTRO_TRANSLATION :{BLACK}Переклад має {NUM} неперекладених рядків. Зареєструйтесь як перекладач вашої мови та покращіть OpenTTD. Детальніше читайте в readme.txt.
|
||||
|
||||
# Quit window
|
||||
@@ -1931,6 +1957,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Змін
|
||||
STR_CHEAT_SETUP_PROD :{LTBLUE}Дозволити зміну рівня виробництва: {ORANGE}{STRING}
|
||||
|
||||
# Livery window
|
||||
STR_LIVERY_CAPTION :{WHITE}Кольори компанії «{COMPANY}»
|
||||
|
||||
STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Показати загальне фарбування
|
||||
STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Показати фарбування поїздів
|
||||
@@ -2190,6 +2217,7 @@ STR_NETWORK_CONNECTION_DISCONNECT :{BLACK}Роз'
|
||||
|
||||
STR_NETWORK_NEED_GAME_PASSWORD_CAPTION :{WHITE}Сервер захищено паролем. Введіть пароль
|
||||
STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION :{WHITE}Компанія захищена паролем. Введіть пароль
|
||||
STR_NETWORK_COMPANY_LIST_CLIENT_LIST_CAPTION :{WHITE}Список клієнтів
|
||||
|
||||
# Network company list added strings
|
||||
STR_NETWORK_COMPANY_LIST_CLIENT_LIST :Список клієнтів
|
||||
@@ -2405,6 +2433,7 @@ STR_LINKGRAPH_LEGEND_CAPTION :{BLACK}Леге
|
||||
STR_LINKGRAPH_LEGEND_ALL :{BLACK}Усе
|
||||
STR_LINKGRAPH_LEGEND_NONE :{BLACK}Немає
|
||||
STR_LINKGRAPH_LEGEND_SELECT_COMPANIES :{BLACK}Виберіть компанії для відображення
|
||||
STR_LINKGRAPH_LEGEND_COMPANY_TOOLTIP :{BLACK}{STRING}{}{COMPANY}
|
||||
|
||||
# Linkgraph legend window and linkgraph legend in smallmap
|
||||
STR_LINKGRAPH_LEGEND_UNUSED :{TINY_FONT}{BLACK}не використовується
|
||||
@@ -2492,9 +2521,9 @@ STR_BUILD_SIGNAL_ELECTRIC_COMBO_TOOLTIP :{BLACK}Комб
|
||||
STR_BUILD_SIGNAL_ELECTRIC_PBS_TOOLTIP :{BLACK}Розширений сигнал (електричний){}Розширений сигнал дозволяє більше ніж одному поїзду одночасно заходити до блоку сигналів, якщо поїзд може зарезервувати шлях до безпечної точки зупинки. Розширені сигнали дозволяють проїжджати їх з обох сторін
|
||||
STR_BUILD_SIGNAL_ELECTRIC_PBS_OWAY_TOOLTIP :{BLACK}Односторонній розширений сигнал (електричний){}Розширений сигнал дозволяє більше ніж одному поїзду одночасно заходити до блоку сигналів, якщо поїзд може зарезервувати шлях до безпечної точки зупинки. Односторонні розширені сигнали не дозволяють вїжджати з іншої сторони
|
||||
STR_BUILD_SIGNAL_CONVERT_TOOLTIP :{BLACK}Заміна сигналів{}Коли обрано, натискання на існуючому сигналі замінить його на обраний тип і варіант сигналу, CTRL+натискання замінить існуючий варіант. Утримуйте Shift для показу витрат на заміну
|
||||
STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_TOOLTIP :{BLACK}Частота сигналів при перетаскуванні
|
||||
STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_DECREASE_TOOLTIP :{BLACK}Зменшити частоту сигналів
|
||||
STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_INCREASE_TOOLTIP :{BLACK}Збільшити частоту сигналів
|
||||
STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_TOOLTIP :{BLACK}Відстань між сигналами при перетаскуванні
|
||||
STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_DECREASE_TOOLTIP :{BLACK}Зменшити відстань між сигналами
|
||||
STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_INCREASE_TOOLTIP :{BLACK}Збільшити відстань між сигналами
|
||||
|
||||
# Bridge selection window
|
||||
STR_SELECT_RAIL_BRIDGE_CAPTION :{WHITE}Виберіть міст
|
||||
@@ -2715,6 +2744,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Назв
|
||||
STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
|
||||
STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Приймає: {LTBLUE}
|
||||
STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
|
||||
STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Тип зал.колії: {LTBLUE}{STRING}
|
||||
STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Ліміт швидкості залізниці: {LTBLUE}{VELOCITY}
|
||||
STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Ліміт швидкості авто: {LTBLUE}{VELOCITY}
|
||||
|
||||
@@ -2727,29 +2757,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Поле
|
||||
STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Засніжена земля
|
||||
STR_LAI_CLEAR_DESCRIPTION_DESERT :Пустеля
|
||||
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK :Звичайна колія
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Звичайна колія з блок-сигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Звичайна колія з пресигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Звичайна колія з вихідними сигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Звичайна колія з комбосигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Звичайна колія з маршрутними сигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Звичайна колія з односторонніми маршрутними сигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Звичайна колія з блок-сигналами і пресигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Звичайна колія з блок-сигналами і вихідними сигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Звичайна колія з блок-сигналами і комбосигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Звичайна колія з блок-сигналами та маршрутними сигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Звичайна колія з блок-сигналами та одност. маршрутними сигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Звичайна колія з пресигналами і вихідними сигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Звичайна колія з пресигналами і комбосигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Звичайна колія з пресигналами і маршрутними сигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Звичайна колія з пресигналами і одност. маршрутними сигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Звичайна колія з вихідними сигналами та комбосигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Звичайна колія з вихідними та маршрутними сигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Звичайна колія з вихідними та одност. маршрутними сигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Звичайна колія з комбосигналами і маршрутними сигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Звичайна колія з комбосигналами та одност. маршрутними сигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Звичайна колія з маршрутними та одност. маршрутними сигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Звичайна колія залізничне депо
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK :Залізнична колія
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Залізнична колія з блок-сигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Залізнична колія з пресигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Залізнична колія з вихідними сигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Залізнична колія з комбосигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Залізнична колія з маршрутними сигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Залізнична колія з односторонніми маршрутними сигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Залізнична колія з блок-сигналами і пресигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Залізнична колія з блок-сигналами і вихідними сигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Залізнична колія з блок-сигналами і комбосигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Залізнична колія з блок-сигналами та маршрутними сигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Залізнична колія з блок-сигналами та одност. маршрутними сигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Залізнична колія з пресигналами і вихідними сигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Залізнична колія з пресигналами і комбосигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Залізнична колія з пресигналами і маршрутними сигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Залізнична колія з пресигналами і одност. маршрутними сигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Залізнична колія з вихідними сигналами та комбосигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Залізнична колія з вихідними та маршрутними сигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Залізнична колія з вихідними та одност. маршрутними сигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Залізнична колія з комбосигналами і маршрутними сигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Залізнична колія з комбосигналами та одност. маршрутними сигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Залізнична колія з маршрутними та одност. маршрутними сигналами
|
||||
STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Залізничне депо
|
||||
|
||||
STR_LAI_ROAD_DESCRIPTION_ROAD :Дорога
|
||||
STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Дорога з вуличними ліхтарями
|
||||
@@ -2816,13 +2846,58 @@ STR_ABOUT_VERSION :{BLACK}OpenTTD
|
||||
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2019 команда OpenTTD
|
||||
|
||||
# Framerate display window
|
||||
STR_FRAMERATE_CAPTION :{WHITE}Швидкість гри
|
||||
STR_FRAMERATE_CAPTION_SMALL :{STRING}{WHITE} ({DECIMAL}x)
|
||||
STR_FRAMERATE_RATE_GAMELOOP :{BLACK}Швидкість прорахунку гри: {STRING}
|
||||
STR_FRAMERATE_RATE_GAMELOOP_TOOLTIP :{BLACK}Кількість ігрових циклів в секунду.
|
||||
STR_FRAMERATE_RATE_BLITTER :{BLACK}Виведення на екран: {STRING}
|
||||
STR_FRAMERATE_RATE_BLITTER_TOOLTIP :{BLACK}Кількість кадрів побудованих за секунду
|
||||
STR_FRAMERATE_SPEED_FACTOR :{BLACK}Наявна швидкість гри: {DECIMAL}x
|
||||
STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK} Як швидко гра біжить в даний час, в порівнянні з очікуваною швидкістю при звичайній швидкості моделювання.
|
||||
STR_FRAMERATE_CURRENT :{WHITE}Зараз
|
||||
STR_FRAMERATE_AVERAGE :{WHITE}Середнє
|
||||
STR_FRAMERATE_DATA_POINTS :{BLACK}Дані отримано з {COMMA} вимірюван {P "ня" "нь" "нь" }
|
||||
STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL} ms
|
||||
STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL} мс
|
||||
STR_FRAMERATE_MS_WARN :{YELLOW}{DECIMAL} ms
|
||||
STR_FRAMERATE_MS_BAD :{RED}{DECIMAL} мс
|
||||
STR_FRAMERATE_FPS_GOOD :{LTBLUE}{DECIMAL} кадрів/сек
|
||||
STR_FRAMERATE_FPS_WARN :{YELLOW}{DECIMAL} кадр{P "" "и" "ів"}/сек
|
||||
STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL} кадрів/сек
|
||||
STR_FRAMERATE_GRAPH_MILLISECONDS :{TINY_FONT}{COMMA} мс
|
||||
STR_FRAMERATE_GRAPH_SECONDS :{TINY_FONT}{COMMA} с
|
||||
############ Leave those lines in this order!!
|
||||
STR_FRAMERATE_GAMELOOP :{BLACK}Швидкість прорахунку гри:
|
||||
STR_FRAMERATE_GL_ECONOMY :{BLACK} Розрахунок вантажів:
|
||||
STR_FRAMERATE_GL_TRAINS :{BLACK} Рух поїздів:
|
||||
STR_FRAMERATE_GL_ROADVEHS :{BLACK} Рух автомобілів:
|
||||
STR_FRAMERATE_GL_SHIPS :{BLACK} Рух кораблів:
|
||||
STR_FRAMERATE_GL_AIRCRAFT :{BLACK} Рух літаків:
|
||||
STR_FRAMERATE_GL_LANDSCAPE :{BLACK} Зміни на карті:
|
||||
STR_FRAMERATE_GL_LINKGRAPH :{BLACK} Затримка графу розподілу:
|
||||
STR_FRAMERATE_DRAWING :{BLACK}Побудова зображень:
|
||||
STR_FRAMERATE_DRAWING_VIEWPORTS :{BLACK} Додаткові вікна:
|
||||
STR_FRAMERATE_VIDEO :{BLACK}Виведення на екран:
|
||||
STR_FRAMERATE_SOUND :{BLACK}Обробка звуків:
|
||||
STR_FRAMERATE_ALLSCRIPTS :{BLACK} Виконання скриптів:
|
||||
STR_FRAMERATE_GAMESCRIPT :{BLACK} Ігровий Скрипт:
|
||||
STR_FRAMERATE_AI :{BLACK} ШІ {NUM} {STRING}
|
||||
############ End of leave-in-this-order
|
||||
############ Leave those lines in this order!!
|
||||
STR_FRAMETIME_CAPTION_GAMELOOP :Прорахунок ігрового циклу
|
||||
STR_FRAMETIME_CAPTION_GL_ECONOMY :Розрахунок обсягу вантажів
|
||||
STR_FRAMETIME_CAPTION_GL_TRAINS :Прорахунок поїздів
|
||||
STR_FRAMETIME_CAPTION_GL_ROADVEHS :Рух автомобілів
|
||||
STR_FRAMETIME_CAPTION_GL_SHIPS :Рух кораблів
|
||||
STR_FRAMETIME_CAPTION_GL_AIRCRAFT :Прорахунок літаків
|
||||
STR_FRAMETIME_CAPTION_GL_LANDSCAPE :Розрахунок змін на карті
|
||||
STR_FRAMETIME_CAPTION_GL_LINKGRAPH :Затримка графу розподілу
|
||||
STR_FRAMETIME_CAPTION_DRAWING :Відображення графіки
|
||||
STR_FRAMETIME_CAPTION_DRAWING_VIEWPORTS :Додаткові вікна перегляду
|
||||
STR_FRAMETIME_CAPTION_VIDEO :Виведення на екран
|
||||
STR_FRAMETIME_CAPTION_SOUND :Обробка звуку
|
||||
STR_FRAMETIME_CAPTION_ALLSCRIPTS :Час виконання скриптів
|
||||
STR_FRAMETIME_CAPTION_GAMESCRIPT :Час виконання ігрового скрипту
|
||||
STR_FRAMETIME_CAPTION_AI :ШІ {NUM} {STRING}
|
||||
############ End of leave-in-this-order
|
||||
|
||||
|
||||
@@ -2848,6 +2923,9 @@ STR_SAVELOAD_DETAIL_CAPTION :{BLACK}Дета
|
||||
STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}Інформація відсутня
|
||||
STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING}
|
||||
STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}NewGRF: {WHITE}{STRING}
|
||||
STR_SAVELOAD_FILTER_TITLE :{BLACK}Фільтр:
|
||||
STR_SAVELOAD_OVERWRITE_TITLE :{WHITE}Перезаписати файл
|
||||
STR_SAVELOAD_OVERWRITE_WARNING :{YELLOW} Ви справді хочете перезаписати існуючий файл?
|
||||
|
||||
STR_SAVELOAD_OSKTITLE :{BLACK}Введіть назву файла збереженої гри
|
||||
|
||||
@@ -2965,7 +3043,12 @@ STR_NEWGRF_SETTINGS_VERSION :{BLACK}Верс
|
||||
STR_NEWGRF_SETTINGS_MIN_VERSION :{BLACK}Мінімальна підтримувана версія: {SILVER}{NUM}
|
||||
STR_NEWGRF_SETTINGS_MD5SUM :{BLACK}MD5сума: {SILVER}{STRING}
|
||||
STR_NEWGRF_SETTINGS_PALETTE :{BLACK}Палітра: {SILVER}{STRING}
|
||||
STR_NEWGRF_SETTINGS_PALETTE_DEFAULT :Звичайна (D)
|
||||
STR_NEWGRF_SETTINGS_PALETTE_DEFAULT_32BPP :Стандартна (D) / 32 bpp
|
||||
STR_NEWGRF_SETTINGS_PALETTE_LEGACY :Застаріла
|
||||
STR_NEWGRF_SETTINGS_PALETTE_LEGACY_32BPP :Застаріла (W) / 32 bpp
|
||||
STR_NEWGRF_SETTINGS_PARAMETER :{BLACK}Параметри: {SILVER}{STRING}
|
||||
STR_NEWGRF_SETTINGS_PARAMETER_NONE :нема
|
||||
|
||||
STR_NEWGRF_SETTINGS_NO_INFO :{BLACK}Немає доступної інформації
|
||||
STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}Таких файлів не знайдено
|
||||
@@ -3046,6 +3129,7 @@ STR_NEWGRF_ERROR_READ_BOUNDS :Вихід за
|
||||
STR_NEWGRF_ERROR_GRM_FAILED :Недоступні необхідні ресурси GRF (спрайт {3:NUM})
|
||||
STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} був вимкнений {STRING}
|
||||
STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Некоректний або невідомий формат розміщення спрайтів (спрайт {3:NUM})
|
||||
STR_NEWGRF_ERROR_LIST_PROPERTY_TOO_LONG :Дуже багато елементів у списку значень (спрайт {3:NUM}, властивість {4:HEX})
|
||||
|
||||
# NewGRF related 'general' warnings
|
||||
STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Обережно!
|
||||
@@ -3110,6 +3194,7 @@ STR_EDIT_SIGN_SIGN_OSKTITLE :{BLACK}Введ
|
||||
STR_TOWN_DIRECTORY_CAPTION :{WHITE}Міста
|
||||
STR_TOWN_DIRECTORY_NONE :{ORANGE}- немає -
|
||||
STR_TOWN_DIRECTORY_TOWN :{ORANGE}{TOWN}{BLACK} ({COMMA})
|
||||
STR_TOWN_DIRECTORY_CITY :{ORANGE}{TOWN}{YELLOW} (Мегаполіс){BLACK} ({COMMA})
|
||||
STR_TOWN_DIRECTORY_LIST_TOOLTIP :{BLACK}Назви міст - натисніть на назву, щоб показати місто у центрі екрану. Ctrl+клац мишою відкриває нове вікно з видом на місто
|
||||
STR_TOWN_POPULATION :{BLACK}Населення світу: {COMMA}
|
||||
|
||||
@@ -3117,6 +3202,7 @@ STR_TOWN_POPULATION :{BLACK}Насе
|
||||
STR_TOWN_VIEW_TOWN_CAPTION :{WHITE}{TOWN}
|
||||
STR_TOWN_VIEW_CITY_CAPTION :{WHITE}{TOWN} (місто)
|
||||
STR_TOWN_VIEW_POPULATION_HOUSES :{BLACK}Населення: {ORANGE}{COMMA}{BLACK} Будинки: {ORANGE}{COMMA}
|
||||
STR_TOWN_VIEW_CARGO_LAST_MONTH_MAX :{BLACK}{CARGO_LIST} минулого місяця: {ORANGE}{COMMA}{BLACK} макс: {ORANGE}{COMMA}
|
||||
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH :{BLACK}Вантаж, потрібний для зростання міста:
|
||||
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_GENERAL :{ORANGE}{STRING}{RED} потрібно
|
||||
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_WINTER :{ORANGE}{STRING}{BLACK} потрібно взимку
|
||||
@@ -3169,6 +3255,7 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Під
|
||||
# Goal window
|
||||
STR_GOALS_CAPTION :{WHITE}Цілі {COMPANY}
|
||||
STR_GOALS_SPECTATOR_CAPTION :{WHITE}Глобальні цілі:
|
||||
STR_GOALS_SPECTATOR :Загальні задачі
|
||||
STR_GOALS_GLOBAL_TITLE :{BLACK}Глобальні цілі:
|
||||
STR_GOALS_TEXT :{ORANGE}{STRING}
|
||||
STR_GOALS_NONE :{ORANGE}- нема -
|
||||
@@ -3217,6 +3304,7 @@ STR_SUBSIDIES_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Нати
|
||||
# Story book window
|
||||
STR_STORY_BOOK_CAPTION :{WHITE}Історія {COMPANY}
|
||||
STR_STORY_BOOK_SPECTATOR_CAPTION :{WHITE}Світова історія
|
||||
STR_STORY_BOOK_SPECTATOR :Всесвітня історія
|
||||
STR_STORY_BOOK_TITLE :{YELLOW}{STRING}
|
||||
STR_STORY_BOOK_GENERIC_PAGE_ITEM :Стор. {NUM}
|
||||
STR_STORY_BOOK_SEL_PAGE_TOOLTIP :{BLACK}Перейти до сторінки, вибраної в цьому списку.
|
||||
@@ -3421,7 +3509,13 @@ STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Пока
|
||||
STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Обсяг виробництва: {YELLOW}{COMMA}%
|
||||
STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}Підприємство оголосило про близьке закриття!
|
||||
|
||||
STR_INDUSTRY_VIEW_REQUIRES_N_CARGO :{BLACK}Потребує: {YELLOW}{STRING}{STRING}
|
||||
STR_INDUSTRY_VIEW_PRODUCES_N_CARGO :{BLACK}Виробляє: {YELLOW}{STRING}{STRING}
|
||||
STR_INDUSTRY_VIEW_CARGO_LIST_EXTENSION :, {STRING}{STRING}
|
||||
|
||||
STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Потребує:
|
||||
STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING}
|
||||
STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{STRING}{BLACK}: {CARGO_SHORT} очікує{STRING}
|
||||
|
||||
STR_CONFIG_GAME_PRODUCTION :{WHITE}Змінити виробництво (кратне 8, до 2040)
|
||||
STR_CONFIG_GAME_PRODUCTION_LEVEL :{WHITE}Змінити обсяг виробництва (до 800%)
|
||||
@@ -3475,6 +3569,7 @@ STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Груп
|
||||
STR_GROUP_CREATE_TOOLTIP :{BLACK}Клацніть мишою, щоб створити групу
|
||||
STR_GROUP_DELETE_TOOLTIP :{BLACK}Стерти вибрану групу
|
||||
STR_GROUP_RENAME_TOOLTIP :{BLACK}Перейменувати вибрану групу
|
||||
STR_GROUP_LIVERY_TOOLTIP :{BLACK}Змінити колір вибраної групи
|
||||
STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Клацніть мишою, щоб захистити групу від глобальної автозаміни
|
||||
|
||||
STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Видалити групу
|
||||
@@ -3485,6 +3580,10 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Позбути
|
||||
|
||||
STR_GROUP_RENAME_CAPTION :{BLACK}Перейменувати групу
|
||||
|
||||
STR_GROUP_PROFIT_THIS_YEAR :Прибуток цього року:
|
||||
STR_GROUP_PROFIT_LAST_YEAR :Прибуток минулого року:
|
||||
STR_GROUP_OCCUPANCY :Використання:
|
||||
STR_GROUP_OCCUPANCY_VALUE :{NUM}%
|
||||
|
||||
# Build vehicle window
|
||||
STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Новий неелектрифікований поїзд
|
||||
@@ -3514,9 +3613,11 @@ STR_PURCHASE_INFO_AIRCRAFT_CAPACITY :{BLACK}Міст
|
||||
STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Потужність: {GOLD}+{POWER}{BLACK} Вага: {GOLD}+{WEIGHT_SHORT}
|
||||
STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Може бути переобладненим на: {GOLD}{STRING}
|
||||
STR_PURCHASE_INFO_ALL_TYPES :Всі типи вантажів
|
||||
STR_PURCHASE_INFO_NONE :Нема
|
||||
STR_PURCHASE_INFO_ALL_BUT :Всі, крім {CARGO_LIST}
|
||||
STR_PURCHASE_INFO_MAX_TE :{BLACK}Максимальна тягова сила: {GOLD}{FORCE}
|
||||
STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Дальність: {GOLD}{COMMA} клітинок
|
||||
STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Тип літака: {GOLD}{STRING}
|
||||
|
||||
STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Список поїздів. Клацніть на поїзд для інформації. Ctrl+клац мишою вимикає показ типу транспорту
|
||||
STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Список автомобілів. Клацніть на авто для отримання інформації. Ctrl+клац мишою вимикає показ типу транспорту
|
||||
@@ -3651,6 +3752,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :магнітн
|
||||
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Ціна: {CURRENCY_LONG} Вага: {WEIGHT_SHORT}{}Швидкість: {VELOCITY}{}Потужність: {POWER}{}Вартість експлуатації: {CURRENCY_LONG}/рік{}Місткість: {CARGO_LONG}
|
||||
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Вартість: {CURRENCY_LONG} Вага: {WEIGHT_SHORT}{}Швидкість: {VELOCITY} Потужність: {POWER} Макс. тяга: {6:FORCE}{}Вартість експлуатації: {4:CURRENCY_LONG}/рік{}Місткість: {5:CARGO_LONG}
|
||||
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Вартість: {CURRENCY_LONG} Макс. швидкість: {VELOCITY}{}Місткість: {CARGO_LONG}{}Вартість експлуатації: {CURRENCY_LONG}/рік
|
||||
STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Вартість: {CURRENCY_LONG} Макс. швидкість: {VELOCITY}{}Тип: {STRING}{}Місткість: {CARGO_LONG}, {CARGO_LONG}{}Вартість експлуатації: {CURRENCY_LONG}/рік
|
||||
STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Вартість: {CURRENCY_LONG} Макс. швидкість: {VELOCITY}{}Тип: {STRING}{}Місткість: {CARGO_LONG}{}Експлуатація: {CURRENCY_LONG}/рік
|
||||
STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Вартість: {CURRENCY_LONG} Макс. швидкість: {VELOCITY}{}Тип: {STRING} Дальність: {COMMA} клітин{P ка ки ок}Місткість: {CARGO_LONG}, {CARGO_LONG}{}Експлуатація: {CURRENCY_LONG}/рік
|
||||
STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Вартість: {CURRENCY_LONG} Макс. швидкість: {VELOCITY}{}Тип: {STRING} Дальність: {COMMA} клітин{P ка ки ок}Місткість: {CARGO_LONG}{}Експлуатація: {CURRENCY_LONG}/рік
|
||||
|
||||
# Autoreplace window
|
||||
STR_REPLACE_VEHICLES_WHITE :{WHITE}Оновити {STRING} - {STRING}
|
||||
@@ -3680,6 +3785,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Нати
|
||||
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Переключення між вікнами заміни потягів та вагонів.
|
||||
STR_REPLACE_ENGINES :Локомотиви
|
||||
STR_REPLACE_WAGONS :Вагони
|
||||
STR_REPLACE_ALL_RAILTYPE :Весь з/д транспорт
|
||||
|
||||
STR_REPLACE_HELP_RAILTYPE :{BLACK}Виберіть тип колії, для якого ви збираєтесь оновити потяги
|
||||
STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Показує, яким потягом буде замінено потяг, вибраний ліворуч
|
||||
@@ -3772,6 +3878,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} р{P і
|
||||
STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} р{P ік оки оків} ({COMMA})
|
||||
|
||||
STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Макс. швидкість: {LTBLUE}{VELOCITY}
|
||||
STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Макс. швидкість: {LTBLUE}{VELOCITY} {BLACK}Тип: {LTBLUE}{STRING}
|
||||
STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Макс. швидкість: {LTBLUE}{VELOCITY} {BLACK}Тип: {LTBLUE}{STRING} {BLACK}Дальність: {LTBLUE}{COMMA} клітин{P ка ки ок }
|
||||
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Вага: {LTBLUE}{WEIGHT_SHORT} {BLACK}Потужність: {LTBLUE}{POWER}{BLACK} Макс. швидкість: {LTBLUE}{VELOCITY}
|
||||
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Вага: {LTBLUE}{WEIGHT_SHORT} {BLACK}Потужність: {LTBLUE}{POWER}{BLACK} Макс. швидкість: {LTBLUE}{VELOCITY} {BLACK}Макс. тяга: {LTBLUE}{FORCE}
|
||||
|
||||
@@ -3905,6 +4013,7 @@ STR_ORDER_CONDITIONAL_AGE :Вік (рок
|
||||
STR_ORDER_CONDITIONAL_REQUIRES_SERVICE :Потребує техогляду
|
||||
STR_ORDER_CONDITIONAL_UNCONDITIONALLY :Завжди
|
||||
STR_ORDER_CONDITIONAL_REMAINING_LIFETIME :Залишок строку служби (років)
|
||||
STR_ORDER_CONDITIONAL_MAX_RELIABILITY :Максимальна надійність
|
||||
|
||||
STR_ORDER_CONDITIONAL_COMPARATOR_TOOLTIP :{BLACK}Як порівнювати дані транспорту з заданим значенням
|
||||
STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS :дорівнює
|
||||
@@ -4337,6 +4446,7 @@ STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... ця
|
||||
STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... дорога не в тому напрямку
|
||||
STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... проїзні зупинки не можуть мати поворотів
|
||||
STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... проїзні зупинки не можуть мати перехресть
|
||||
STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}... дорога одностороння або заблокована
|
||||
|
||||
# Station destruction related errors
|
||||
STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Не можна зруйнувати частину станції...
|
||||
@@ -4589,6 +4699,7 @@ STR_BASESOUNDS_WIN_DESCRIPTION :Оригіна
|
||||
STR_BASESOUNDS_NONE_DESCRIPTION :Порожній набір звуків.
|
||||
STR_BASEMUSIC_WIN_DESCRIPTION :Оригінальна музика з Transport Tycoon Deluxe Windows edition.
|
||||
STR_BASEMUSIC_DOS_DESCRIPTION :Оригінальна музика Transport Tycoon Deluxe(DOS)
|
||||
STR_BASEMUSIC_TTO_DESCRIPTION :Оригінальна музика Transport Tycoon Deluxe(DOS)
|
||||
STR_BASEMUSIC_NONE_DESCRIPTION :Порожній набір музики.
|
||||
|
||||
##id 0x2000
|
||||
|
||||
@@ -559,7 +559,7 @@ void LinkGraphLegendWindow::DrawWidget(const Rect &r, int widget) const
|
||||
}
|
||||
}
|
||||
|
||||
bool LinkGraphLegendWindow::OnHoverCommon(Point pt, int widget, TooltipCloseCondition close_cond)
|
||||
bool LinkGraphLegendWindow::OnTooltip(Point pt, int widget, TooltipCloseCondition close_cond)
|
||||
{
|
||||
if (IsInsideMM(widget, WID_LGL_COMPANY_FIRST, WID_LGL_COMPANY_LAST + 1)) {
|
||||
if (this->IsWidgetDisabled(widget)) {
|
||||
@@ -584,19 +584,6 @@ bool LinkGraphLegendWindow::OnHoverCommon(Point pt, int widget, TooltipCloseCond
|
||||
return false;
|
||||
}
|
||||
|
||||
void LinkGraphLegendWindow::OnHover(Point pt, int widget)
|
||||
{
|
||||
this->OnHoverCommon(pt, widget, TCC_HOVER);
|
||||
}
|
||||
|
||||
bool LinkGraphLegendWindow::OnRightClick(Point pt, int widget)
|
||||
{
|
||||
if (_settings_client.gui.hover_delay_ms == 0) {
|
||||
return this->OnHoverCommon(pt, widget, TCC_RIGHT_CLICK);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the overlay with the new company selection.
|
||||
*/
|
||||
|
||||
@@ -106,8 +106,7 @@ public:
|
||||
|
||||
virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize);
|
||||
virtual void DrawWidget(const Rect &r, int widget) const;
|
||||
virtual void OnHover(Point pt, int widget);
|
||||
virtual bool OnRightClick(Point pt, int widget);
|
||||
virtual bool OnTooltip(Point pt, int widget, TooltipCloseCondition close_cond);
|
||||
virtual void OnClick(Point pt, int widget, int click_count);
|
||||
virtual void OnInvalidateData(int data = 0, bool gui_scope = true);
|
||||
|
||||
@@ -116,7 +115,6 @@ private:
|
||||
|
||||
void UpdateOverlayCompanies();
|
||||
void UpdateOverlayCargoes();
|
||||
bool OnHoverCommon(Point pt, int widget, TooltipCloseCondition close_cond);
|
||||
};
|
||||
|
||||
#endif /* LINKGRAPH_GUI_H */
|
||||
|
||||
@@ -724,8 +724,8 @@ struct TooltipsWindow : public Window
|
||||
* we are dragging the tool. Normal tooltips work with hover or rmb. */
|
||||
switch (this->close_cond) {
|
||||
case TCC_RIGHT_CLICK: if (!_right_button_down) delete this; break;
|
||||
case TCC_LEFT_CLICK: if (!_left_button_down) delete this; break;
|
||||
case TCC_HOVER: if (!_mouse_hovering) delete this; break;
|
||||
case TCC_NONE: break;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -125,6 +125,7 @@ struct PacketReader : LoadFilter {
|
||||
void ClientNetworkEmergencySave()
|
||||
{
|
||||
if (!_settings_client.gui.autosave_on_network_disconnect) return;
|
||||
if (!_networking) return;
|
||||
|
||||
const char *filename = "netsave.sav";
|
||||
DEBUG(net, 0, "Client: Performing emergency save (%s)", filename);
|
||||
@@ -212,6 +213,8 @@ void ClientNetworkGameSocketHandler::ClientError(NetworkRecvStatus res)
|
||||
SendError(errorno);
|
||||
}
|
||||
|
||||
ClientNetworkEmergencySave();
|
||||
|
||||
_switch_mode = SM_MENU;
|
||||
this->CloseConnection(res);
|
||||
_networking = false;
|
||||
@@ -1172,8 +1175,6 @@ void ClientNetworkGameSocketHandler::CheckConnection()
|
||||
* the server will forcefully disconnect you. */
|
||||
if (lag > 20) {
|
||||
this->NetworkGameSocketHandler::CloseConnection();
|
||||
ShowErrorMessage(STR_NETWORK_ERROR_LOSTCONNECTION, INVALID_STRING_ID, WL_CRITICAL);
|
||||
ClientNetworkEmergencySave();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -2103,7 +2103,7 @@ static ChangeInfoResult CanalChangeInfo(uint id, int numinfo, int prop, ByteRead
|
||||
ChangeInfoResult ret = CIR_SUCCESS;
|
||||
|
||||
if (id + numinfo > CF_END) {
|
||||
grfmsg(1, "CanalChangeInfo: Canal feature %u is invalid, max %u, ignoring", id + numinfo, CF_END);
|
||||
grfmsg(1, "CanalChangeInfo: Canal feature 0x%02X is invalid, max %u, ignoring", id + numinfo, CF_END);
|
||||
return CIR_INVALID_ID;
|
||||
}
|
||||
|
||||
@@ -4530,11 +4530,16 @@ static void FeatureChangeInfo(ByteReader *buf)
|
||||
uint numinfo = buf->ReadByte();
|
||||
uint engine = buf->ReadExtendedByte();
|
||||
|
||||
grfmsg(6, "FeatureChangeInfo: feature %d, %d properties, to apply to %d+%d",
|
||||
if (feature >= GSF_END) {
|
||||
grfmsg(1, "FeatureChangeInfo: Unsupported feature 0x%02X, skipping", feature);
|
||||
return;
|
||||
}
|
||||
|
||||
grfmsg(6, "FeatureChangeInfo: Feature 0x%02X, %d properties, to apply to %d+%d",
|
||||
feature, numprops, engine, numinfo);
|
||||
|
||||
if (feature >= lengthof(handler) || handler[feature] == NULL) {
|
||||
if (feature != GSF_CARGOES) grfmsg(1, "FeatureChangeInfo: Unsupported feature %d, skipping", feature);
|
||||
if (feature != GSF_CARGOES) grfmsg(1, "FeatureChangeInfo: Unsupported feature 0x%02X, skipping", feature);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -4649,9 +4654,15 @@ static void NewSpriteSet(ByteReader *buf)
|
||||
}
|
||||
uint16 num_ents = buf->ReadExtendedByte();
|
||||
|
||||
if (feature >= GSF_END) {
|
||||
_cur.skip_sprites = num_sets * num_ents;
|
||||
grfmsg(1, "NewSpriteSet: Unsupported feature 0x%02X, skipping %d sprites", feature, _cur.skip_sprites);
|
||||
return;
|
||||
}
|
||||
|
||||
_cur.AddSpriteSets(feature, _cur.spriteid, first_set, num_sets, num_ents);
|
||||
|
||||
grfmsg(7, "New sprite set at %d of type %d, consisting of %d sets with %d views each (total %d)",
|
||||
grfmsg(7, "New sprite set at %d of feature 0x%02X, consisting of %d sets with %d views each (total %d)",
|
||||
_cur.spriteid, feature, num_sets, num_ents, num_sets * num_ents
|
||||
);
|
||||
|
||||
@@ -4743,6 +4754,11 @@ static void NewSpriteGroup(ByteReader *buf)
|
||||
SpriteGroup *act_group = NULL;
|
||||
|
||||
uint8 feature = buf->ReadByte();
|
||||
if (feature >= GSF_END) {
|
||||
grfmsg(1, "NewSpriteGroup: Unsupported feature 0x%02X, skipping", feature);
|
||||
return;
|
||||
}
|
||||
|
||||
uint8 setid = buf->ReadByte();
|
||||
uint8 type = buf->ReadByte();
|
||||
|
||||
@@ -5005,7 +5021,12 @@ static void NewSpriteGroup(ByteReader *buf)
|
||||
for (uint i = 0; i < group->num_input; i++) {
|
||||
byte rawcargo = buf->ReadByte();
|
||||
CargoID cargo = GetCargoTranslation(rawcargo, _cur.grffile);
|
||||
if (std::find(group->cargo_input, group->cargo_input + i, cargo) != group->cargo_input + i) {
|
||||
if (cargo == CT_INVALID) {
|
||||
/* The mapped cargo is invalid. This is permitted at this point,
|
||||
* as long as the result is not used. Mark it invalid so this
|
||||
* can be tested later. */
|
||||
group->version = 0xFF;
|
||||
} else if (std::find(group->cargo_input, group->cargo_input + i, cargo) != group->cargo_input + i) {
|
||||
GRFError *error = DisableGrf(STR_NEWGRF_ERROR_INDPROD_CALLBACK);
|
||||
error->data = stredup("duplicate input cargo");
|
||||
return;
|
||||
@@ -5022,7 +5043,10 @@ static void NewSpriteGroup(ByteReader *buf)
|
||||
for (uint i = 0; i < group->num_output; i++) {
|
||||
byte rawcargo = buf->ReadByte();
|
||||
CargoID cargo = GetCargoTranslation(rawcargo, _cur.grffile);
|
||||
if (std::find(group->cargo_output, group->cargo_output + i, cargo) != group->cargo_output + i) {
|
||||
if (cargo == CT_INVALID) {
|
||||
/* Mark this result as invalid to use */
|
||||
group->version = 0xFF;
|
||||
} else if (std::find(group->cargo_output, group->cargo_output + i, cargo) != group->cargo_output + i) {
|
||||
GRFError *error = DisableGrf(STR_NEWGRF_ERROR_INDPROD_CALLBACK);
|
||||
error->data = stredup("duplicate output cargo");
|
||||
return;
|
||||
@@ -5038,7 +5062,7 @@ static void NewSpriteGroup(ByteReader *buf)
|
||||
}
|
||||
|
||||
/* Loading of Tile Layout and Production Callback groups would happen here */
|
||||
default: grfmsg(1, "NewSpriteGroup: Unsupported feature %d, skipping", feature);
|
||||
default: grfmsg(1, "NewSpriteGroup: Unsupported feature 0x%02X, skipping", feature);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5565,6 +5589,11 @@ static void FeatureMapSpriteGroup(ByteReader *buf)
|
||||
uint8 feature = buf->ReadByte();
|
||||
uint8 idcount = buf->ReadByte();
|
||||
|
||||
if (feature >= GSF_END) {
|
||||
grfmsg(1, "FeatureMapSpriteGroup: Unsupported feature 0x%02X, skipping", feature);
|
||||
return;
|
||||
}
|
||||
|
||||
/* If idcount is zero, this is a feature callback */
|
||||
if (idcount == 0) {
|
||||
/* Skip number of cargo ids? */
|
||||
@@ -5572,7 +5601,7 @@ static void FeatureMapSpriteGroup(ByteReader *buf)
|
||||
uint16 groupid = buf->ReadWord();
|
||||
if (!IsValidGroupID(groupid, "FeatureMapSpriteGroup")) return;
|
||||
|
||||
grfmsg(6, "FeatureMapSpriteGroup: Adding generic feature callback for feature %d", feature);
|
||||
grfmsg(6, "FeatureMapSpriteGroup: Adding generic feature callback for feature 0x%02X", feature);
|
||||
|
||||
AddGenericCallback(feature, _cur.grffile, _cur.spritegroups[groupid]);
|
||||
return;
|
||||
@@ -5581,7 +5610,7 @@ static void FeatureMapSpriteGroup(ByteReader *buf)
|
||||
/* Mark the feature as used by the grf (generic callbacks do not count) */
|
||||
SetBit(_cur.grffile->grf_features, feature);
|
||||
|
||||
grfmsg(6, "FeatureMapSpriteGroup: Feature %d, %d ids", feature, idcount);
|
||||
grfmsg(6, "FeatureMapSpriteGroup: Feature 0x%02X, %d ids", feature, idcount);
|
||||
|
||||
switch (feature) {
|
||||
case GSF_TRAINS:
|
||||
@@ -5632,7 +5661,7 @@ static void FeatureMapSpriteGroup(ByteReader *buf)
|
||||
return;
|
||||
|
||||
default:
|
||||
grfmsg(1, "FeatureMapSpriteGroup: Unsupported feature %d, skipping", feature);
|
||||
grfmsg(1, "FeatureMapSpriteGroup: Unsupported feature 0x%02X, skipping", feature);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -5659,6 +5688,11 @@ static void FeatureNewName(ByteReader *buf)
|
||||
bool new_scheme = _cur.grffile->grf_version >= 7;
|
||||
|
||||
uint8 feature = buf->ReadByte();
|
||||
if (feature >= GSF_END) {
|
||||
grfmsg(1, "FeatureNewName: Unsupported feature 0x%02X, skipping", feature);
|
||||
return;
|
||||
}
|
||||
|
||||
uint8 lang = buf->ReadByte();
|
||||
uint8 num = buf->ReadByte();
|
||||
bool generic = HasBit(lang, 7);
|
||||
@@ -5675,7 +5709,7 @@ static void FeatureNewName(ByteReader *buf)
|
||||
|
||||
uint16 endid = id + num;
|
||||
|
||||
grfmsg(6, "FeatureNewName: About to rename engines %d..%d (feature %d) in language 0x%02X",
|
||||
grfmsg(6, "FeatureNewName: About to rename engines %d..%d (feature 0x%02X) in language 0x%02X",
|
||||
id, endid, feature, lang);
|
||||
|
||||
for (; id < endid && buf->HasData(); id++) {
|
||||
@@ -5828,7 +5862,6 @@ static void GraphicsNew(ByteReader *buf)
|
||||
* B graphics-type What set of graphics the sprites define.
|
||||
* E num-sprites How many sprites are in this set?
|
||||
* V other data Graphics type specific data. Currently unused. */
|
||||
/* TODO */
|
||||
|
||||
uint8 type = buf->ReadByte();
|
||||
uint16 num = buf->ReadExtendedByte();
|
||||
@@ -6216,7 +6249,6 @@ static void SkipIf(ByteReader *buf)
|
||||
* B condition-type
|
||||
* V value
|
||||
* B num-sprites */
|
||||
/* TODO: More params. More condition types. */
|
||||
uint32 cond_val = 0;
|
||||
uint32 mask = 0;
|
||||
bool result;
|
||||
@@ -6902,12 +6934,6 @@ static void ParamSet(ByteReader *buf)
|
||||
src2 = (src2 == 0xFF) ? data : GetParamVal(src2, NULL);
|
||||
}
|
||||
|
||||
/* TODO: You can access the parameters of another GRF file by using
|
||||
* source2=FE, source1=the other GRF's parameter number and data=GRF
|
||||
* ID. This is only valid with operation 00 (set). If the GRF ID
|
||||
* cannot be found, a value of 0 is used for the parameter value
|
||||
* instead. */
|
||||
|
||||
uint32 res;
|
||||
switch (oper) {
|
||||
case 0x00:
|
||||
@@ -7008,13 +7034,13 @@ static void ParamSet(ByteReader *buf)
|
||||
break;
|
||||
}
|
||||
|
||||
/* @todo implement */
|
||||
case 0x93: // Tile refresh offset to left
|
||||
/* not implemented */
|
||||
case 0x93: // Tile refresh offset to left -- Intended to allow support for larger sprites, not necessary for OTTD
|
||||
case 0x94: // Tile refresh offset to right
|
||||
case 0x95: // Tile refresh offset upwards
|
||||
case 0x96: // Tile refresh offset downwards
|
||||
case 0x97: // Snow line height
|
||||
case 0x99: // Global ID offset
|
||||
case 0x97: // Snow line height -- Better supported by feature 8 property 10h (snow line table) TODO: implement by filling the entire snow line table with the given value
|
||||
case 0x99: // Global ID offset -- Not necessary since IDs are remapped automatically
|
||||
grfmsg(7, "ParamSet: Skipping unimplemented target 0x%02X", target);
|
||||
break;
|
||||
|
||||
@@ -8237,7 +8263,6 @@ static void ResetNewGRFErrors()
|
||||
|
||||
/**
|
||||
* Reset all NewGRF loaded data
|
||||
* TODO
|
||||
*/
|
||||
void ResetNewGRFData()
|
||||
{
|
||||
|
||||
@@ -605,6 +605,17 @@ void IndustryProductionCallback(Industry *ind, int reason)
|
||||
if (tgroup == NULL || tgroup->type != SGT_INDUSTRY_PRODUCTION) break;
|
||||
const IndustryProductionSpriteGroup *group = (const IndustryProductionSpriteGroup *)tgroup;
|
||||
|
||||
if (group->version == 0xFF) {
|
||||
/* Result was marked invalid on load, display error message */
|
||||
SetDParamStr(0, spec->grf_prop.grffile->filename);
|
||||
SetDParam(1, spec->name);
|
||||
SetDParam(2, ind->location.tile);
|
||||
ShowErrorMessage(STR_NEWGRF_BUGGY, STR_NEWGRF_BUGGY_INVALID_CARGO_PRODUCTION_CALLBACK, WL_WARNING);
|
||||
|
||||
/* abort the function early, this error isn't critical and will allow the game to continue to run */
|
||||
break;
|
||||
}
|
||||
|
||||
bool deref = (group->version >= 1);
|
||||
|
||||
if (group->version < 2) {
|
||||
|
||||
@@ -277,7 +277,7 @@ struct TileLayoutSpriteGroup : SpriteGroup {
|
||||
struct IndustryProductionSpriteGroup : SpriteGroup {
|
||||
IndustryProductionSpriteGroup() : SpriteGroup(SGT_INDUSTRY_PRODUCTION) {}
|
||||
|
||||
uint8 version;
|
||||
uint8 version; ///< Production callback version used, or 0xFF if marked invalid
|
||||
uint8 num_input; ///< How many subtract_input values are valid
|
||||
int16 subtract_input[INDUSTRY_NUM_INPUTS]; ///< Take this much of the input cargo (can be negative, is indirect in cb version 1+)
|
||||
CargoID cargo_input[INDUSTRY_NUM_INPUTS]; ///< Which input cargoes to take from (only cb version 2)
|
||||
|
||||
@@ -256,15 +256,19 @@ CommandCost CmdClearOrderBackup(TileIndex tile, DoCommandFlag flags, uint32 p1,
|
||||
* Removes an order from all vehicles. Triggers when, say, a station is removed.
|
||||
* @param type The type of the order (OT_GOTO_[STATION|DEPOT|WAYPOINT]).
|
||||
* @param destination The destination. Can be a StationID, DepotID or WaypointID.
|
||||
* @param hangar Only used for airports in the destination.
|
||||
* When false, remove airport and hangar orders.
|
||||
* When true, remove either airport or hangar order.
|
||||
*/
|
||||
/* static */ void OrderBackup::RemoveOrder(OrderType type, DestinationID destination)
|
||||
/* static */ void OrderBackup::RemoveOrder(OrderType type, DestinationID destination, bool hangar)
|
||||
{
|
||||
OrderBackup *ob;
|
||||
FOR_ALL_ORDER_BACKUPS(ob) {
|
||||
for (Order *order = ob->orders; order != NULL; order = order->next) {
|
||||
OrderType ot = order->GetType();
|
||||
if (ot == OT_GOTO_DEPOT && (order->GetDepotActionType() & ODATFB_NEAREST_DEPOT) != 0) continue;
|
||||
if (ot == OT_IMPLICIT || (IsHangarTile(ob->tile) && ot == OT_GOTO_DEPOT)) ot = OT_GOTO_STATION;
|
||||
if (ot == OT_GOTO_DEPOT && hangar && !IsHangarTile(ob->tile)) continue; // Not an aircraft? Can't have a hangar order.
|
||||
if (ot == OT_IMPLICIT || (IsHangarTile(ob->tile) && ot == OT_GOTO_DEPOT && !hangar)) ot = OT_GOTO_STATION;
|
||||
if (ot == type && order->GetDestination() == destination) {
|
||||
/* Remove the order backup! If a station/depot gets removed, we can't/shouldn't restore those broken orders. */
|
||||
delete ob;
|
||||
|
||||
@@ -63,7 +63,7 @@ public:
|
||||
|
||||
static void ClearGroup(GroupID group);
|
||||
static void ClearVehicle(const Vehicle *v);
|
||||
static void RemoveOrder(OrderType type, DestinationID destination);
|
||||
static void RemoveOrder(OrderType type, DestinationID destination, bool hangar);
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -1798,7 +1798,6 @@ void CheckOrders(const Vehicle *v)
|
||||
} else if (v->type == VEH_AIRCRAFT &&
|
||||
(AircraftVehInfo(v->engine_type)->subtype & AIR_FAST) &&
|
||||
(st->airport.GetFTA()->flags & AirportFTAClass::SHORT_STRIP) &&
|
||||
_settings_game.vehicle.plane_crashes != 0 &&
|
||||
!_cheats.no_jetcrash.value &&
|
||||
message == INVALID_STRING_ID) {
|
||||
message = STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY;
|
||||
@@ -1834,8 +1833,11 @@ void CheckOrders(const Vehicle *v)
|
||||
* Removes an order from all vehicles. Triggers when, say, a station is removed.
|
||||
* @param type The type of the order (OT_GOTO_[STATION|DEPOT|WAYPOINT]).
|
||||
* @param destination The destination. Can be a StationID, DepotID or WaypointID.
|
||||
* @param hangar Only used for airports in the destination.
|
||||
* When false, remove airport and hangar orders.
|
||||
* When true, remove either airport or hangar order.
|
||||
*/
|
||||
void RemoveOrderFromAllVehicles(OrderType type, DestinationID destination)
|
||||
void RemoveOrderFromAllVehicles(OrderType type, DestinationID destination, bool hangar)
|
||||
{
|
||||
Vehicle *v;
|
||||
|
||||
@@ -1848,8 +1850,8 @@ void RemoveOrderFromAllVehicles(OrderType type, DestinationID destination)
|
||||
Order *order;
|
||||
|
||||
order = &v->current_order;
|
||||
if ((v->type == VEH_AIRCRAFT && order->IsType(OT_GOTO_DEPOT) ? OT_GOTO_STATION : order->GetType()) == type &&
|
||||
v->current_order.GetDestination() == destination) {
|
||||
if ((v->type == VEH_AIRCRAFT && order->IsType(OT_GOTO_DEPOT) && !hangar ? OT_GOTO_STATION : order->GetType()) == type &&
|
||||
(!hangar || v->type == VEH_AIRCRAFT) && v->current_order.GetDestination() == destination) {
|
||||
order->MakeDummy();
|
||||
SetWindowDirty(WC_VEHICLE_VIEW, v->index);
|
||||
}
|
||||
@@ -1862,7 +1864,8 @@ restart:
|
||||
|
||||
OrderType ot = order->GetType();
|
||||
if (ot == OT_GOTO_DEPOT && (order->GetDepotActionType() & ODATFB_NEAREST_DEPOT) != 0) continue;
|
||||
if (ot == OT_IMPLICIT || (v->type == VEH_AIRCRAFT && ot == OT_GOTO_DEPOT)) ot = OT_GOTO_STATION;
|
||||
if (ot == OT_GOTO_DEPOT && hangar && v->type != VEH_AIRCRAFT) continue; // Not an aircraft? Can't have a hangar order.
|
||||
if (ot == OT_IMPLICIT || (v->type == VEH_AIRCRAFT && ot == OT_GOTO_DEPOT && !hangar)) ot = OT_GOTO_STATION;
|
||||
if (ot == type && order->GetDestination() == destination) {
|
||||
/* We want to clear implicit orders, but we don't want to make them
|
||||
* dummy orders. They should just vanish. Also check the actual order
|
||||
@@ -1896,7 +1899,7 @@ restart:
|
||||
}
|
||||
}
|
||||
|
||||
OrderBackup::RemoveOrder(type, destination);
|
||||
OrderBackup::RemoveOrder(type, destination, hangar);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
#include "company_type.h"
|
||||
|
||||
/* Functions */
|
||||
void RemoveOrderFromAllVehicles(OrderType type, DestinationID destination);
|
||||
void RemoveOrderFromAllVehicles(OrderType type, DestinationID destination, bool hangar = false);
|
||||
void InvalidateVehicleOrder(const Vehicle *v, int data);
|
||||
void CheckOrders(const Vehicle*);
|
||||
void DeleteVehicleOrders(Vehicle *v, bool keep_orderlist = false, bool reset_order_indices = true);
|
||||
|
||||
@@ -82,7 +82,7 @@ const byte _openttd_revision_tagged = !!ISTAG!!;
|
||||
* final release will always have a lower version number than the released
|
||||
* version, thus making comparisons on specific revisions easy.
|
||||
*/
|
||||
const uint32 _openttd_newgrf_version = 1 << 28 | 9 << 24 | 0 << 20 | 0 << 19 | 28004;
|
||||
const uint32 _openttd_newgrf_version = 1 << 28 | 9 << 24 | 0 << 20 | !!ISSTABLETAG!! << 19 | 28004;
|
||||
|
||||
#ifdef __MORPHOS__
|
||||
/**
|
||||
|
||||
@@ -3080,6 +3080,13 @@ bool AfterLoadGame()
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
/* Update water class for trees for all current savegame versions. */
|
||||
for (TileIndex t = 0; t < map_size; t++) {
|
||||
if (IsTileType(t, MP_TREES)) SetWaterClass(t, GetTreeGround(t) == TREE_GROUND_SHORE ? WATER_CLASS_SEA : WATER_CLASS_INVALID);
|
||||
}
|
||||
}
|
||||
|
||||
/* Station acceptance is some kind of cache */
|
||||
if (IsSavegameVersionBefore(SLV_127)) {
|
||||
Station *st;
|
||||
|
||||
@@ -21,16 +21,57 @@ void SQAICompany_Register(Squirrel *engine)
|
||||
SQAICompany.PreRegister(engine);
|
||||
SQAICompany.AddConstructor<void (ScriptCompany::*)(), 1>(engine, "x");
|
||||
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::CURRENT_QUARTER, "CURRENT_QUARTER");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::EARLIEST_QUARTER, "EARLIEST_QUARTER");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COMPANY_FIRST, "COMPANY_FIRST");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COMPANY_LAST, "COMPANY_LAST");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COMPANY_INVALID, "COMPANY_INVALID");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COMPANY_SELF, "COMPANY_SELF");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COMPANY_SPECTATOR, "COMPANY_SPECTATOR");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::GENDER_MALE, "GENDER_MALE");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::GENDER_FEMALE, "GENDER_FEMALE");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::GENDER_INVALID, "GENDER_INVALID");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::CURRENT_QUARTER, "CURRENT_QUARTER");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::EARLIEST_QUARTER, "EARLIEST_QUARTER");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COMPANY_FIRST, "COMPANY_FIRST");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COMPANY_LAST, "COMPANY_LAST");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COMPANY_INVALID, "COMPANY_INVALID");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COMPANY_SELF, "COMPANY_SELF");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COMPANY_SPECTATOR, "COMPANY_SPECTATOR");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::GENDER_MALE, "GENDER_MALE");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::GENDER_FEMALE, "GENDER_FEMALE");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::GENDER_INVALID, "GENDER_INVALID");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_DEFAULT, "LS_DEFAULT");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_STEAM, "LS_STEAM");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_DIESEL, "LS_DIESEL");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_ELECTRIC, "LS_ELECTRIC");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_MONORAIL, "LS_MONORAIL");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_MAGLEV, "LS_MAGLEV");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_DMU, "LS_DMU");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_EMU, "LS_EMU");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_PASSENGER_WAGON_STEAM, "LS_PASSENGER_WAGON_STEAM");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_PASSENGER_WAGON_DIESEL, "LS_PASSENGER_WAGON_DIESEL");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_PASSENGER_WAGON_ELECTRIC, "LS_PASSENGER_WAGON_ELECTRIC");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_PASSENGER_WAGON_MONORAIL, "LS_PASSENGER_WAGON_MONORAIL");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_PASSENGER_WAGON_MAGLEV, "LS_PASSENGER_WAGON_MAGLEV");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_FREIGHT_WAGON, "LS_FREIGHT_WAGON");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_BUS, "LS_BUS");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_TRUCK, "LS_TRUCK");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_PASSENGER_SHIP, "LS_PASSENGER_SHIP");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_FREIGHT_SHIP, "LS_FREIGHT_SHIP");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_HELICOPTER, "LS_HELICOPTER");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_SMALL_PLANE, "LS_SMALL_PLANE");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_LARGE_PLANE, "LS_LARGE_PLANE");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_PASSENGER_TRAM, "LS_PASSENGER_TRAM");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_FREIGHT_TRAM, "LS_FREIGHT_TRAM");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::LS_INVALID, "LS_INVALID");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_DARK_BLUE, "COLOUR_DARK_BLUE");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_PALE_GREEN, "COLOUR_PALE_GREEN");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_PINK, "COLOUR_PINK");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_YELLOW, "COLOUR_YELLOW");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_RED, "COLOUR_RED");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_LIGHT_BLUE, "COLOUR_LIGHT_BLUE");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_GREEN, "COLOUR_GREEN");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_DARK_GREEN, "COLOUR_DARK_GREEN");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_BLUE, "COLOUR_BLUE");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_CREAM, "COLOUR_CREAM");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_MAUVE, "COLOUR_MAUVE");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_PURPLE, "COLOUR_PURPLE");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_ORANGE, "COLOUR_ORANGE");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_BROWN, "COLOUR_BROWN");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_GREY, "COLOUR_GREY");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_WHITE, "COLOUR_WHITE");
|
||||
SQAICompany.DefSQConst(engine, ScriptCompany::COLOUR_INVALID, "COLOUR_INVALID");
|
||||
|
||||
SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::ResolveCompanyID, "ResolveCompanyID", 2, ".i");
|
||||
SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::IsMine, "IsMine", 2, ".i");
|
||||
@@ -59,6 +100,10 @@ void SQAICompany_Register(Squirrel *engine)
|
||||
SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::GetAutoRenewMonths, "GetAutoRenewMonths", 2, ".i");
|
||||
SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::SetAutoRenewMoney, "SetAutoRenewMoney", 2, ".i");
|
||||
SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::GetAutoRenewMoney, "GetAutoRenewMoney", 2, ".i");
|
||||
SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::SetPrimaryLiveryColour, "SetPrimaryLiveryColour", 3, ".ii");
|
||||
SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::SetSecondaryLiveryColour, "SetSecondaryLiveryColour", 3, ".ii");
|
||||
SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::GetPrimaryLiveryColour, "GetPrimaryLiveryColour", 2, ".i");
|
||||
SQAICompany.DefSQStaticMethod(engine, &ScriptCompany::GetSecondaryLiveryColour, "GetSecondaryLiveryColour", 2, ".i");
|
||||
|
||||
SQAICompany.PostRegister(engine);
|
||||
}
|
||||
|
||||
@@ -26,11 +26,13 @@ void SQAIGroup_Register(Squirrel *engine)
|
||||
SQAIGroup.DefSQConst(engine, ScriptGroup::GROUP_INVALID, "GROUP_INVALID");
|
||||
|
||||
SQAIGroup.DefSQStaticMethod(engine, &ScriptGroup::IsValidGroup, "IsValidGroup", 2, ".i");
|
||||
SQAIGroup.DefSQStaticMethod(engine, &ScriptGroup::CreateGroup, "CreateGroup", 2, ".i");
|
||||
SQAIGroup.DefSQStaticMethod(engine, &ScriptGroup::CreateGroup, "CreateGroup", 3, ".ii");
|
||||
SQAIGroup.DefSQStaticMethod(engine, &ScriptGroup::DeleteGroup, "DeleteGroup", 2, ".i");
|
||||
SQAIGroup.DefSQStaticMethod(engine, &ScriptGroup::GetVehicleType, "GetVehicleType", 2, ".i");
|
||||
SQAIGroup.DefSQStaticMethod(engine, &ScriptGroup::SetName, "SetName", 3, ".i.");
|
||||
SQAIGroup.DefSQStaticMethod(engine, &ScriptGroup::GetName, "GetName", 2, ".i");
|
||||
SQAIGroup.DefSQStaticMethod(engine, &ScriptGroup::SetParent, "SetParent", 3, ".ii");
|
||||
SQAIGroup.DefSQStaticMethod(engine, &ScriptGroup::GetParent, "GetParent", 2, ".i");
|
||||
SQAIGroup.DefSQStaticMethod(engine, &ScriptGroup::EnableAutoReplaceProtection, "EnableAutoReplaceProtection", 3, ".ib");
|
||||
SQAIGroup.DefSQStaticMethod(engine, &ScriptGroup::GetAutoReplaceProtection, "GetAutoReplaceProtection", 2, ".i");
|
||||
SQAIGroup.DefSQStaticMethod(engine, &ScriptGroup::GetNumEngines, "GetNumEngines", 3, ".ii");
|
||||
@@ -40,6 +42,9 @@ void SQAIGroup_Register(Squirrel *engine)
|
||||
SQAIGroup.DefSQStaticMethod(engine, &ScriptGroup::SetAutoReplace, "SetAutoReplace", 4, ".iii");
|
||||
SQAIGroup.DefSQStaticMethod(engine, &ScriptGroup::GetEngineReplacement, "GetEngineReplacement", 3, ".ii");
|
||||
SQAIGroup.DefSQStaticMethod(engine, &ScriptGroup::StopAutoReplace, "StopAutoReplace", 3, ".ii");
|
||||
SQAIGroup.DefSQStaticMethod(engine, &ScriptGroup::GetProfitThisYear, "GetProfitThisYear", 2, ".i");
|
||||
SQAIGroup.DefSQStaticMethod(engine, &ScriptGroup::GetProfitLastYear, "GetProfitLastYear", 2, ".i");
|
||||
SQAIGroup.DefSQStaticMethod(engine, &ScriptGroup::GetCurrentUsage, "GetCurrentUsage", 2, ".i");
|
||||
|
||||
SQAIGroup.PostRegister(engine);
|
||||
}
|
||||
|
||||
@@ -20,9 +20,16 @@
|
||||
* 1.9.0 is not yet released. The following changes are not set in stone yet.
|
||||
* API additions:
|
||||
* \li AIAirport::GetMonthlyMaintenanceCost
|
||||
* \li AIGroup::SetParent
|
||||
* \li AIGroup::GetParent
|
||||
* \li AICompany::SetPrimaryLiveryColour
|
||||
* \li AICompany::SetSecondaryLiveryColour
|
||||
* \li AICompany::GetPrimaryLiveryColour
|
||||
* \li AICompany::GetSecondaryLiveryColour
|
||||
*
|
||||
* Other changes:
|
||||
* \li AIBridge::GetName takes one extra parameter to refer the vehicle type
|
||||
* \li AIGroup::CreateGroup gains parent_group_id parameter
|
||||
*
|
||||
* \b 1.8.0
|
||||
*
|
||||
|
||||
@@ -21,30 +21,71 @@ void SQGSCompany_Register(Squirrel *engine)
|
||||
SQGSCompany.PreRegister(engine);
|
||||
SQGSCompany.AddConstructor<void (ScriptCompany::*)(), 1>(engine, "x");
|
||||
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::CURRENT_QUARTER, "CURRENT_QUARTER");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::EARLIEST_QUARTER, "EARLIEST_QUARTER");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::COMPANY_FIRST, "COMPANY_FIRST");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::COMPANY_LAST, "COMPANY_LAST");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::COMPANY_INVALID, "COMPANY_INVALID");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::COMPANY_SELF, "COMPANY_SELF");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::COMPANY_SPECTATOR, "COMPANY_SPECTATOR");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::GENDER_MALE, "GENDER_MALE");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::GENDER_FEMALE, "GENDER_FEMALE");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::GENDER_INVALID, "GENDER_INVALID");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::EXPENSES_CONSTRUCTION, "EXPENSES_CONSTRUCTION");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::EXPENSES_NEW_VEHICLES, "EXPENSES_NEW_VEHICLES");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::EXPENSES_TRAIN_RUN, "EXPENSES_TRAIN_RUN");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::EXPENSES_ROADVEH_RUN, "EXPENSES_ROADVEH_RUN");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::EXPENSES_AIRCRAFT_RUN, "EXPENSES_AIRCRAFT_RUN");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::EXPENSES_SHIP_RUN, "EXPENSES_SHIP_RUN");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::EXPENSES_PROPERTY, "EXPENSES_PROPERTY");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::EXPENSES_TRAIN_INC, "EXPENSES_TRAIN_INC");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::EXPENSES_ROADVEH_INC, "EXPENSES_ROADVEH_INC");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::EXPENSES_AIRCRAFT_INC, "EXPENSES_AIRCRAFT_INC");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::EXPENSES_SHIP_INC, "EXPENSES_SHIP_INC");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::EXPENSES_LOAN_INT, "EXPENSES_LOAN_INT");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::EXPENSES_OTHER, "EXPENSES_OTHER");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::EXPENSES_INVALID, "EXPENSES_INVALID");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::CURRENT_QUARTER, "CURRENT_QUARTER");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::EARLIEST_QUARTER, "EARLIEST_QUARTER");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::COMPANY_FIRST, "COMPANY_FIRST");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::COMPANY_LAST, "COMPANY_LAST");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::COMPANY_INVALID, "COMPANY_INVALID");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::COMPANY_SELF, "COMPANY_SELF");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::COMPANY_SPECTATOR, "COMPANY_SPECTATOR");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::GENDER_MALE, "GENDER_MALE");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::GENDER_FEMALE, "GENDER_FEMALE");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::GENDER_INVALID, "GENDER_INVALID");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::LS_DEFAULT, "LS_DEFAULT");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::LS_STEAM, "LS_STEAM");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::LS_DIESEL, "LS_DIESEL");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::LS_ELECTRIC, "LS_ELECTRIC");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::LS_MONORAIL, "LS_MONORAIL");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::LS_MAGLEV, "LS_MAGLEV");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::LS_DMU, "LS_DMU");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::LS_EMU, "LS_EMU");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::LS_PASSENGER_WAGON_STEAM, "LS_PASSENGER_WAGON_STEAM");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::LS_PASSENGER_WAGON_DIESEL, "LS_PASSENGER_WAGON_DIESEL");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::LS_PASSENGER_WAGON_ELECTRIC, "LS_PASSENGER_WAGON_ELECTRIC");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::LS_PASSENGER_WAGON_MONORAIL, "LS_PASSENGER_WAGON_MONORAIL");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::LS_PASSENGER_WAGON_MAGLEV, "LS_PASSENGER_WAGON_MAGLEV");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::LS_FREIGHT_WAGON, "LS_FREIGHT_WAGON");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::LS_BUS, "LS_BUS");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::LS_TRUCK, "LS_TRUCK");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::LS_PASSENGER_SHIP, "LS_PASSENGER_SHIP");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::LS_FREIGHT_SHIP, "LS_FREIGHT_SHIP");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::LS_HELICOPTER, "LS_HELICOPTER");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::LS_SMALL_PLANE, "LS_SMALL_PLANE");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::LS_LARGE_PLANE, "LS_LARGE_PLANE");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::LS_PASSENGER_TRAM, "LS_PASSENGER_TRAM");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::LS_FREIGHT_TRAM, "LS_FREIGHT_TRAM");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::LS_INVALID, "LS_INVALID");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::COLOUR_DARK_BLUE, "COLOUR_DARK_BLUE");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::COLOUR_PALE_GREEN, "COLOUR_PALE_GREEN");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::COLOUR_PINK, "COLOUR_PINK");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::COLOUR_YELLOW, "COLOUR_YELLOW");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::COLOUR_RED, "COLOUR_RED");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::COLOUR_LIGHT_BLUE, "COLOUR_LIGHT_BLUE");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::COLOUR_GREEN, "COLOUR_GREEN");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::COLOUR_DARK_GREEN, "COLOUR_DARK_GREEN");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::COLOUR_BLUE, "COLOUR_BLUE");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::COLOUR_CREAM, "COLOUR_CREAM");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::COLOUR_MAUVE, "COLOUR_MAUVE");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::COLOUR_PURPLE, "COLOUR_PURPLE");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::COLOUR_ORANGE, "COLOUR_ORANGE");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::COLOUR_BROWN, "COLOUR_BROWN");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::COLOUR_GREY, "COLOUR_GREY");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::COLOUR_WHITE, "COLOUR_WHITE");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::COLOUR_INVALID, "COLOUR_INVALID");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::EXPENSES_CONSTRUCTION, "EXPENSES_CONSTRUCTION");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::EXPENSES_NEW_VEHICLES, "EXPENSES_NEW_VEHICLES");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::EXPENSES_TRAIN_RUN, "EXPENSES_TRAIN_RUN");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::EXPENSES_ROADVEH_RUN, "EXPENSES_ROADVEH_RUN");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::EXPENSES_AIRCRAFT_RUN, "EXPENSES_AIRCRAFT_RUN");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::EXPENSES_SHIP_RUN, "EXPENSES_SHIP_RUN");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::EXPENSES_PROPERTY, "EXPENSES_PROPERTY");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::EXPENSES_TRAIN_INC, "EXPENSES_TRAIN_INC");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::EXPENSES_ROADVEH_INC, "EXPENSES_ROADVEH_INC");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::EXPENSES_AIRCRAFT_INC, "EXPENSES_AIRCRAFT_INC");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::EXPENSES_SHIP_INC, "EXPENSES_SHIP_INC");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::EXPENSES_LOAN_INT, "EXPENSES_LOAN_INT");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::EXPENSES_OTHER, "EXPENSES_OTHER");
|
||||
SQGSCompany.DefSQConst(engine, ScriptCompany::EXPENSES_INVALID, "EXPENSES_INVALID");
|
||||
|
||||
SQGSCompany.DefSQStaticMethod(engine, &ScriptCompany::ResolveCompanyID, "ResolveCompanyID", 2, ".i");
|
||||
SQGSCompany.DefSQStaticMethod(engine, &ScriptCompany::SetName, "SetName", 2, "..");
|
||||
@@ -69,6 +110,10 @@ void SQGSCompany_Register(Squirrel *engine)
|
||||
SQGSCompany.DefSQStaticMethod(engine, &ScriptCompany::GetAutoRenewStatus, "GetAutoRenewStatus", 2, ".i");
|
||||
SQGSCompany.DefSQStaticMethod(engine, &ScriptCompany::GetAutoRenewMonths, "GetAutoRenewMonths", 2, ".i");
|
||||
SQGSCompany.DefSQStaticMethod(engine, &ScriptCompany::GetAutoRenewMoney, "GetAutoRenewMoney", 2, ".i");
|
||||
SQGSCompany.DefSQStaticMethod(engine, &ScriptCompany::SetPrimaryLiveryColour, "SetPrimaryLiveryColour", 3, ".ii");
|
||||
SQGSCompany.DefSQStaticMethod(engine, &ScriptCompany::SetSecondaryLiveryColour, "SetSecondaryLiveryColour", 3, ".ii");
|
||||
SQGSCompany.DefSQStaticMethod(engine, &ScriptCompany::GetPrimaryLiveryColour, "GetPrimaryLiveryColour", 2, ".i");
|
||||
SQGSCompany.DefSQStaticMethod(engine, &ScriptCompany::GetSecondaryLiveryColour, "GetSecondaryLiveryColour", 2, ".i");
|
||||
|
||||
SQGSCompany.PostRegister(engine);
|
||||
}
|
||||
|
||||
@@ -466,6 +466,7 @@ void SQGSWindow_Register(Squirrel *engine)
|
||||
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_FRW_TIMES_NAMES, "WID_FRW_TIMES_NAMES");
|
||||
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_FRW_TIMES_CURRENT, "WID_FRW_TIMES_CURRENT");
|
||||
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_FRW_TIMES_AVERAGE, "WID_FRW_TIMES_AVERAGE");
|
||||
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_FRW_SCROLLBAR, "WID_FRW_SCROLLBAR");
|
||||
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_FGW_CAPTION, "WID_FGW_CAPTION");
|
||||
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_FGW_GRAPH, "WID_FGW_GRAPH");
|
||||
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GL_TEMPERATE, "WID_GL_TEMPERATE");
|
||||
@@ -1030,7 +1031,6 @@ void SQGSWindow_Register(Squirrel *engine)
|
||||
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GO_RESOLUTION_DROPDOWN, "WID_GO_RESOLUTION_DROPDOWN");
|
||||
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GO_FULLSCREEN_BUTTON, "WID_GO_FULLSCREEN_BUTTON");
|
||||
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GO_GUI_ZOOM_DROPDOWN, "WID_GO_GUI_ZOOM_DROPDOWN");
|
||||
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GO_FONT_ZOOM_DROPDOWN, "WID_GO_FONT_ZOOM_DROPDOWN");
|
||||
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GO_BASE_GRF_DROPDOWN, "WID_GO_BASE_GRF_DROPDOWN");
|
||||
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GO_BASE_GRF_STATUS, "WID_GO_BASE_GRF_STATUS");
|
||||
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GO_BASE_GRF_TEXTFILE, "WID_GO_BASE_GRF_TEXTFILE");
|
||||
@@ -1042,6 +1042,7 @@ void SQGSWindow_Register(Squirrel *engine)
|
||||
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GO_BASE_MUSIC_STATUS, "WID_GO_BASE_MUSIC_STATUS");
|
||||
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GO_BASE_MUSIC_TEXTFILE, "WID_GO_BASE_MUSIC_TEXTFILE");
|
||||
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GO_BASE_MUSIC_DESCRIPTION, "WID_GO_BASE_MUSIC_DESCRIPTION");
|
||||
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GO_FONT_ZOOM_DROPDOWN, "WID_GO_FONT_ZOOM_DROPDOWN");
|
||||
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GS_FILTER, "WID_GS_FILTER");
|
||||
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GS_OPTIONSPANEL, "WID_GS_OPTIONSPANEL");
|
||||
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_GS_SCROLLBAR, "WID_GS_SCROLLBAR");
|
||||
|
||||
@@ -296,3 +296,33 @@
|
||||
|
||||
return ::Company::Get((CompanyID)company)->settings.engine_renew_money;
|
||||
}
|
||||
|
||||
/* static */ bool ScriptCompany::SetPrimaryLiveryColour(LiveryScheme scheme, Colours colour)
|
||||
{
|
||||
return ScriptObject::DoCommand(0, scheme, colour, CMD_SET_COMPANY_COLOUR);
|
||||
}
|
||||
|
||||
/* static */ bool ScriptCompany::SetSecondaryLiveryColour(LiveryScheme scheme, Colours colour)
|
||||
{
|
||||
return ScriptObject::DoCommand(0, scheme | 1 << 8, colour, CMD_SET_COMPANY_COLOUR);
|
||||
}
|
||||
|
||||
/* static */ ScriptCompany::Colours ScriptCompany::GetPrimaryLiveryColour(ScriptCompany::LiveryScheme scheme)
|
||||
{
|
||||
if ((::LiveryScheme)scheme < LS_BEGIN || (::LiveryScheme)scheme >= LS_END) return COLOUR_INVALID;
|
||||
|
||||
const Company *c = ::Company::GetIfValid(_current_company);
|
||||
if (c == NULL) return COLOUR_INVALID;
|
||||
|
||||
return (ScriptCompany::Colours)c->livery[scheme].colour1;
|
||||
}
|
||||
|
||||
/* static */ ScriptCompany::Colours ScriptCompany::GetSecondaryLiveryColour(ScriptCompany::LiveryScheme scheme)
|
||||
{
|
||||
if ((::LiveryScheme)scheme < LS_BEGIN || (::LiveryScheme)scheme >= LS_END) return COLOUR_INVALID;
|
||||
|
||||
const Company *c = ::Company::GetIfValid(_current_company);
|
||||
if (c == NULL) return COLOUR_INVALID;
|
||||
|
||||
return (ScriptCompany::Colours)c->livery[scheme].colour2;
|
||||
}
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
|
||||
#include "script_text.hpp"
|
||||
#include "../../economy_type.h"
|
||||
#include "../../livery.h"
|
||||
#include "../../gfx_type.h"
|
||||
|
||||
/**
|
||||
* Class that handles all company related functions.
|
||||
@@ -46,6 +48,55 @@ public:
|
||||
GENDER_INVALID = -1, ///< An invalid gender.
|
||||
};
|
||||
|
||||
/** List of different livery schemes. */
|
||||
enum LiveryScheme {
|
||||
LS_DEFAULT, ///< Default scheme.
|
||||
LS_STEAM, ///< Steam engines.
|
||||
LS_DIESEL, ///< Diesel engines.
|
||||
LS_ELECTRIC, ///< Electric engines.
|
||||
LS_MONORAIL, ///< Monorail engines.
|
||||
LS_MAGLEV, ///< Maglev engines.
|
||||
LS_DMU, ///< DMUs and their passenger wagons.
|
||||
LS_EMU, ///< EMUs and their passenger wagons.
|
||||
LS_PASSENGER_WAGON_STEAM, ///< Passenger wagons attached to steam engines.
|
||||
LS_PASSENGER_WAGON_DIESEL, ///< Passenger wagons attached to diesel engines.
|
||||
LS_PASSENGER_WAGON_ELECTRIC, ///< Passenger wagons attached to electric engines.
|
||||
LS_PASSENGER_WAGON_MONORAIL, ///< Passenger wagons attached to monorail engines.
|
||||
LS_PASSENGER_WAGON_MAGLEV, ///< Passenger wagons attached to maglev engines.
|
||||
LS_FREIGHT_WAGON, ///< Freight wagons.
|
||||
LS_BUS, ///< Buses.
|
||||
LS_TRUCK, ///< Trucks.
|
||||
LS_PASSENGER_SHIP, ///< Passenger ships.
|
||||
LS_FREIGHT_SHIP, ///< Freight ships.
|
||||
LS_HELICOPTER, ///< Helicopters.
|
||||
LS_SMALL_PLANE, ///< Small aeroplanes.
|
||||
LS_LARGE_PLANE, ///< Large aeroplanes.
|
||||
LS_PASSENGER_TRAM, ///< Passenger trams.
|
||||
LS_FREIGHT_TRAM, ///< Freight trams.
|
||||
LS_INVALID = -1,
|
||||
};
|
||||
|
||||
/** List of colours. */
|
||||
enum Colours {
|
||||
COLOUR_DARK_BLUE,
|
||||
COLOUR_PALE_GREEN,
|
||||
COLOUR_PINK,
|
||||
COLOUR_YELLOW,
|
||||
COLOUR_RED,
|
||||
COLOUR_LIGHT_BLUE,
|
||||
COLOUR_GREEN,
|
||||
COLOUR_DARK_GREEN,
|
||||
COLOUR_BLUE,
|
||||
COLOUR_CREAM,
|
||||
COLOUR_MAUVE,
|
||||
COLOUR_PURPLE,
|
||||
COLOUR_ORANGE,
|
||||
COLOUR_BROWN,
|
||||
COLOUR_GREY,
|
||||
COLOUR_WHITE,
|
||||
COLOUR_INVALID = ::INVALID_COLOUR
|
||||
};
|
||||
|
||||
/**
|
||||
* Types of expenses.
|
||||
* @api -ai
|
||||
@@ -331,6 +382,36 @@ public:
|
||||
* @return The minimum required money for autorenew to work.
|
||||
*/
|
||||
static Money GetAutoRenewMoney(CompanyID company);
|
||||
|
||||
/**
|
||||
* Set primary colour for your company.
|
||||
* @param scheme Livery scheme to set.
|
||||
* @param colour Colour to set.
|
||||
* @return False if unable to set primary colour of the livery scheme (e.g. colour in use).
|
||||
*/
|
||||
static bool SetPrimaryLiveryColour(LiveryScheme scheme, Colours colour);
|
||||
|
||||
/**
|
||||
* Set secondary colour for your company.
|
||||
* @param scheme Livery scheme to set.
|
||||
* @param colour Colour to set.
|
||||
* @return False if unable to set secondary colour of the livery scheme.
|
||||
*/
|
||||
static bool SetSecondaryLiveryColour(LiveryScheme scheme, Colours colour);
|
||||
|
||||
/**
|
||||
* Get primary colour of a livery for your company.
|
||||
* @param scheme Livery scheme to get.
|
||||
* @return Primary colour of livery.
|
||||
*/
|
||||
static ScriptCompany::Colours GetPrimaryLiveryColour(LiveryScheme scheme);
|
||||
|
||||
/**
|
||||
* Get secondary colour of a livery for your company.
|
||||
* @param scheme Livery scheme to get.
|
||||
* @return Secondary colour of livery.
|
||||
*/
|
||||
static ScriptCompany::Colours GetSecondaryLiveryColour(LiveryScheme scheme);
|
||||
};
|
||||
|
||||
DECLARE_POSTFIX_INCREMENT(ScriptCompany::CompanyID)
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
#include "../../strings_func.h"
|
||||
#include "../../autoreplace_func.h"
|
||||
#include "../../settings_func.h"
|
||||
#include "../../vehicle_base.h"
|
||||
#include "table/strings.h"
|
||||
|
||||
#include "../../safeguards.h"
|
||||
@@ -27,9 +28,9 @@
|
||||
return g != NULL && g->owner == ScriptObject::GetCompany();
|
||||
}
|
||||
|
||||
/* static */ ScriptGroup::GroupID ScriptGroup::CreateGroup(ScriptVehicle::VehicleType vehicle_type)
|
||||
/* static */ ScriptGroup::GroupID ScriptGroup::CreateGroup(ScriptVehicle::VehicleType vehicle_type, GroupID parent_group_id)
|
||||
{
|
||||
if (!ScriptObject::DoCommand(0, (::VehicleType)vehicle_type, INVALID_GROUP, CMD_CREATE_GROUP, NULL, &ScriptInstance::DoCommandReturnGroupID)) return GROUP_INVALID;
|
||||
if (!ScriptObject::DoCommand(0, (::VehicleType)vehicle_type, parent_group_id, CMD_CREATE_GROUP, NULL, &ScriptInstance::DoCommandReturnGroupID)) return GROUP_INVALID;
|
||||
|
||||
/* In case of test-mode, we return GroupID 0 */
|
||||
return (ScriptGroup::GroupID)0;
|
||||
@@ -70,6 +71,22 @@
|
||||
return GetString(STR_GROUP_NAME);
|
||||
}
|
||||
|
||||
/* static */ bool ScriptGroup::SetParent(GroupID group_id, GroupID parent_group_id)
|
||||
{
|
||||
EnforcePrecondition(false, IsValidGroup(group_id));
|
||||
EnforcePrecondition(false, IsValidGroup(parent_group_id));
|
||||
|
||||
return ScriptObject::DoCommand(0, group_id | 1 << 16, parent_group_id, CMD_ALTER_GROUP);
|
||||
}
|
||||
|
||||
/* static */ ScriptGroup::GroupID ScriptGroup::GetParent(GroupID group_id)
|
||||
{
|
||||
EnforcePrecondition((ScriptGroup::GroupID)INVALID_GROUP, IsValidGroup(group_id));
|
||||
|
||||
const Group *g = ::Group::GetIfValid(group_id);
|
||||
return (ScriptGroup::GroupID)g->parent;
|
||||
}
|
||||
|
||||
/* static */ bool ScriptGroup::EnableAutoReplaceProtection(GroupID group_id, bool enable)
|
||||
{
|
||||
EnforcePrecondition(false, IsValidGroup(group_id));
|
||||
@@ -132,3 +149,48 @@
|
||||
|
||||
return ScriptObject::DoCommand(0, group_id << 16, (::INVALID_ENGINE << 16) | engine_id, CMD_SET_AUTOREPLACE);
|
||||
}
|
||||
|
||||
/* static */ Money ScriptGroup::GetProfitThisYear(GroupID group_id)
|
||||
{
|
||||
if (!IsValidGroup(group_id)) return -1;
|
||||
|
||||
Money profit = 0;
|
||||
|
||||
const Vehicle *v;
|
||||
FOR_ALL_VEHICLES(v) {
|
||||
if (v->group_id != group_id) continue;
|
||||
if (!v->IsPrimaryVehicle()) continue;
|
||||
|
||||
profit += v->GetDisplayProfitThisYear();
|
||||
}
|
||||
|
||||
return profit;
|
||||
}
|
||||
|
||||
/* static */ Money ScriptGroup::GetProfitLastYear(GroupID group_id)
|
||||
{
|
||||
if (!IsValidGroup(group_id)) return -1;
|
||||
|
||||
return ::Group::Get(group_id)->statistics.profit_last_year;
|
||||
}
|
||||
|
||||
/* static */ uint32 ScriptGroup::GetCurrentUsage(GroupID group_id)
|
||||
{
|
||||
if (!IsValidGroup(group_id)) return -1;
|
||||
|
||||
uint32 occupancy = 0;
|
||||
uint32 vehicle_count = 0;
|
||||
|
||||
const Vehicle *v;
|
||||
FOR_ALL_VEHICLES(v) {
|
||||
if (v->group_id != group_id) continue;
|
||||
if (!v->IsPrimaryVehicle()) continue;
|
||||
|
||||
occupancy += v->trip_occupancy;
|
||||
vehicle_count++;
|
||||
}
|
||||
|
||||
if (vehicle_count == 0) return -1;
|
||||
|
||||
return occupancy / vehicle_count;
|
||||
}
|
||||
|
||||
@@ -42,11 +42,12 @@ public:
|
||||
/**
|
||||
* Create a new group.
|
||||
* @param vehicle_type The type of vehicle to create a group for.
|
||||
* @param parent_group_id The parent group id to create this group under, INVALID_GROUP for top-level.
|
||||
* @return The GroupID of the new group, or an invalid GroupID when
|
||||
* it failed. Check the return value using IsValidGroup(). In test-mode
|
||||
* 0 is returned if it was successful; any other value indicates failure.
|
||||
*/
|
||||
static GroupID CreateGroup(ScriptVehicle::VehicleType vehicle_type);
|
||||
static GroupID CreateGroup(ScriptVehicle::VehicleType vehicle_type, GroupID parent_group_id);
|
||||
|
||||
/**
|
||||
* Delete the given group. When the deletion succeeds all vehicles in the
|
||||
@@ -84,6 +85,24 @@ public:
|
||||
*/
|
||||
static char *GetName(GroupID group_id);
|
||||
|
||||
/**
|
||||
* Set parent group of a group.
|
||||
* @param group_id The group to set the parent for.
|
||||
* @param parent_group_id The parent group to set.
|
||||
* @pre IsValidGroup(group_id).
|
||||
* @pre IsValidGroup(parent_group_id).
|
||||
* @return True if and only if the parent group was changed.
|
||||
*/
|
||||
static bool SetParent(GroupID group_id, GroupID parent_group_id);
|
||||
|
||||
/**
|
||||
* Get parent group of a group.
|
||||
* @param group_id The group to get the parent of.
|
||||
* @pre IsValidGroup(group_id).
|
||||
* @return The group id of the parent group.
|
||||
*/
|
||||
static GroupID GetParent(GroupID group_id);
|
||||
|
||||
/**
|
||||
* Enable or disable autoreplace protected. If the protection is
|
||||
* enabled, global autoreplace won't affect vehicles in this group.
|
||||
@@ -171,6 +190,30 @@ public:
|
||||
* @return True if and if the replacing was successfully stopped.
|
||||
*/
|
||||
static bool StopAutoReplace(GroupID group_id, EngineID engine_id);
|
||||
|
||||
/**
|
||||
* Get the current profit of a group.
|
||||
* @param group_id The group to get the profit of.
|
||||
* @pre IsValidGroup(group_id).
|
||||
* @return The current profit the group has.
|
||||
*/
|
||||
static Money GetProfitThisYear(GroupID group_id);
|
||||
|
||||
/**
|
||||
* Get the profit of last year of a group.
|
||||
* @param group_id The group to get the profit of.
|
||||
* @pre IsValidGroup(group_id).
|
||||
* @return The current profit the group had last year.
|
||||
*/
|
||||
static Money GetProfitLastYear(GroupID group_id);
|
||||
|
||||
/**
|
||||
* Get the current vehicle usage of a group.
|
||||
* @param group_id The group to get the current usage of.
|
||||
* @pre IsValidGroup(group_id).
|
||||
* @return The current usage of the group.
|
||||
*/
|
||||
static uint32 GetCurrentUsage(GroupID group_id);
|
||||
};
|
||||
|
||||
#endif /* SCRIPT_GROUP_HPP */
|
||||
|
||||
@@ -19,6 +19,10 @@ namespace SQConvert {
|
||||
template <> inline int Return<ScriptCompany::CompanyID>(HSQUIRRELVM vm, ScriptCompany::CompanyID res) { sq_pushinteger(vm, (int32)res); return 1; }
|
||||
template <> inline ScriptCompany::Gender GetParam(ForceType<ScriptCompany::Gender>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptCompany::Gender)tmp; }
|
||||
template <> inline int Return<ScriptCompany::Gender>(HSQUIRRELVM vm, ScriptCompany::Gender res) { sq_pushinteger(vm, (int32)res); return 1; }
|
||||
template <> inline ScriptCompany::LiveryScheme GetParam(ForceType<ScriptCompany::LiveryScheme>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptCompany::LiveryScheme)tmp; }
|
||||
template <> inline int Return<ScriptCompany::LiveryScheme>(HSQUIRRELVM vm, ScriptCompany::LiveryScheme res) { sq_pushinteger(vm, (int32)res); return 1; }
|
||||
template <> inline ScriptCompany::Colours GetParam(ForceType<ScriptCompany::Colours>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptCompany::Colours)tmp; }
|
||||
template <> inline int Return<ScriptCompany::Colours>(HSQUIRRELVM vm, ScriptCompany::Colours res) { sq_pushinteger(vm, (int32)res); return 1; }
|
||||
template <> inline ScriptCompany::ExpensesType GetParam(ForceType<ScriptCompany::ExpensesType>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptCompany::ExpensesType)tmp; }
|
||||
template <> inline int Return<ScriptCompany::ExpensesType>(HSQUIRRELVM vm, ScriptCompany::ExpensesType res) { sq_pushinteger(vm, (int32)res); return 1; }
|
||||
|
||||
|
||||
@@ -139,7 +139,7 @@ public:
|
||||
/**
|
||||
* Randomize all settings the Script requested to be randomized.
|
||||
*/
|
||||
virtual void AddRandomDeviation();
|
||||
void AddRandomDeviation();
|
||||
|
||||
/**
|
||||
* Is this config attached to an Script? In other words, is there a Script
|
||||
|
||||
119
src/sdl.cpp
119
src/sdl.cpp
@@ -1,119 +0,0 @@
|
||||
/* $Id$ */
|
||||
|
||||
/*
|
||||
* This file is part of OpenTTD.
|
||||
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/** @file sdl.cpp Implementation of SDL support. */
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
#ifdef WITH_SDL
|
||||
|
||||
#include "sdl.h"
|
||||
#include <SDL.h>
|
||||
|
||||
/** Number of users of the SDL library. */
|
||||
static int _sdl_usage;
|
||||
|
||||
#ifdef DYNAMICALLY_LOADED_SDL
|
||||
|
||||
#include "os/windows/win32.h"
|
||||
|
||||
#define M(x) x "\0"
|
||||
static const char sdl_files[] =
|
||||
M("sdl.dll")
|
||||
M("SDL_Init")
|
||||
M("SDL_InitSubSystem")
|
||||
M("SDL_GetError")
|
||||
M("SDL_QuitSubSystem")
|
||||
M("SDL_UpdateRect")
|
||||
M("SDL_UpdateRects")
|
||||
M("SDL_SetColors")
|
||||
M("SDL_WM_SetCaption")
|
||||
M("SDL_ShowCursor")
|
||||
M("SDL_FreeSurface")
|
||||
M("SDL_PollEvent")
|
||||
M("SDL_WarpMouse")
|
||||
M("SDL_GetTicks")
|
||||
M("SDL_OpenAudio")
|
||||
M("SDL_PauseAudio")
|
||||
M("SDL_CloseAudio")
|
||||
M("SDL_LockSurface")
|
||||
M("SDL_UnlockSurface")
|
||||
M("SDL_GetModState")
|
||||
M("SDL_Delay")
|
||||
M("SDL_Quit")
|
||||
M("SDL_SetVideoMode")
|
||||
M("SDL_EnableKeyRepeat")
|
||||
M("SDL_EnableUNICODE")
|
||||
M("SDL_VideoDriverName")
|
||||
M("SDL_ListModes")
|
||||
M("SDL_GetKeyState")
|
||||
M("SDL_LoadBMP_RW")
|
||||
M("SDL_RWFromFile")
|
||||
M("SDL_SetColorKey")
|
||||
M("SDL_WM_SetIcon")
|
||||
M("SDL_MapRGB")
|
||||
M("SDL_VideoModeOK")
|
||||
M("SDL_Linked_Version")
|
||||
M("")
|
||||
;
|
||||
#undef M
|
||||
|
||||
SDLProcs sdl_proc;
|
||||
|
||||
static const char *LoadSdlDLL()
|
||||
{
|
||||
if (sdl_proc.SDL_Init != NULL) {
|
||||
return NULL;
|
||||
}
|
||||
if (!LoadLibraryList((Function *)(void *)&sdl_proc, sdl_files)) {
|
||||
return "Unable to load sdl.dll";
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#endif /* DYNAMICALLY_LOADED_SDL */
|
||||
|
||||
#include "safeguards.h"
|
||||
|
||||
/**
|
||||
* Open the SDL library.
|
||||
* @param x The subsystem to load.
|
||||
*/
|
||||
const char *SdlOpen(uint32 x)
|
||||
{
|
||||
#ifdef DYNAMICALLY_LOADED_SDL
|
||||
{
|
||||
const char *s = LoadSdlDLL();
|
||||
if (s != NULL) return s;
|
||||
}
|
||||
#endif
|
||||
if (_sdl_usage++ == 0) {
|
||||
if (SDL_CALL SDL_Init(x | SDL_INIT_NOPARACHUTE) == -1) return SDL_CALL SDL_GetError();
|
||||
} else if (x != 0) {
|
||||
if (SDL_CALL SDL_InitSubSystem(x) == -1) return SDL_CALL SDL_GetError();
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Close the SDL library.
|
||||
* @param x The subsystem to close.
|
||||
*/
|
||||
void SdlClose(uint32 x)
|
||||
{
|
||||
if (x != 0) {
|
||||
SDL_CALL SDL_QuitSubSystem(x);
|
||||
}
|
||||
if (--_sdl_usage == 0) {
|
||||
SDL_CALL SDL_Quit();
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
71
src/sdl.h
71
src/sdl.h
@@ -1,71 +0,0 @@
|
||||
/* $Id$ */
|
||||
|
||||
/*
|
||||
* This file is part of OpenTTD.
|
||||
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
||||
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/** @file sdl.h SDL support. */
|
||||
|
||||
#ifndef SDL_H
|
||||
#define SDL_H
|
||||
|
||||
const char *SdlOpen(uint32 x);
|
||||
void SdlClose(uint32 x);
|
||||
|
||||
#ifdef _WIN32
|
||||
#define DYNAMICALLY_LOADED_SDL
|
||||
#endif
|
||||
|
||||
#ifdef DYNAMICALLY_LOADED_SDL
|
||||
#include <SDL.h>
|
||||
|
||||
struct SDLProcs {
|
||||
int (SDLCALL *SDL_Init)(Uint32);
|
||||
int (SDLCALL *SDL_InitSubSystem)(Uint32);
|
||||
char *(SDLCALL *SDL_GetError)();
|
||||
void (SDLCALL *SDL_QuitSubSystem)(Uint32);
|
||||
void (SDLCALL *SDL_UpdateRect)(SDL_Surface *, Sint32, Sint32, Uint32, Uint32);
|
||||
void (SDLCALL *SDL_UpdateRects)(SDL_Surface *, int, SDL_Rect *);
|
||||
int (SDLCALL *SDL_SetColors)(SDL_Surface *, SDL_Color *, int, int);
|
||||
void (SDLCALL *SDL_WM_SetCaption)(const char *, const char *);
|
||||
int (SDLCALL *SDL_ShowCursor)(int);
|
||||
void (SDLCALL *SDL_FreeSurface)(SDL_Surface *);
|
||||
int (SDLCALL *SDL_PollEvent)(SDL_Event *);
|
||||
void (SDLCALL *SDL_WarpMouse)(Uint16, Uint16);
|
||||
uint32 (SDLCALL *SDL_GetTicks)();
|
||||
int (SDLCALL *SDL_OpenAudio)(SDL_AudioSpec *, SDL_AudioSpec*);
|
||||
void (SDLCALL *SDL_PauseAudio)(int);
|
||||
void (SDLCALL *SDL_CloseAudio)();
|
||||
int (SDLCALL *SDL_LockSurface)(SDL_Surface*);
|
||||
void (SDLCALL *SDL_UnlockSurface)(SDL_Surface*);
|
||||
SDLMod (SDLCALL *SDL_GetModState)();
|
||||
void (SDLCALL *SDL_Delay)(Uint32);
|
||||
void (SDLCALL *SDL_Quit)();
|
||||
SDL_Surface *(SDLCALL *SDL_SetVideoMode)(int, int, int, Uint32);
|
||||
int (SDLCALL *SDL_EnableKeyRepeat)(int, int);
|
||||
void (SDLCALL *SDL_EnableUNICODE)(int);
|
||||
void (SDLCALL *SDL_VideoDriverName)(char *, int);
|
||||
SDL_Rect **(SDLCALL *SDL_ListModes)(void *, int);
|
||||
Uint8 *(SDLCALL *SDL_GetKeyState)(int *);
|
||||
SDL_Surface *(SDLCALL *SDL_LoadBMP_RW)(SDL_RWops *, int);
|
||||
SDL_RWops *(SDLCALL *SDL_RWFromFile)(const char *, const char *);
|
||||
int (SDLCALL *SDL_SetColorKey)(SDL_Surface *, Uint32, Uint32);
|
||||
void (SDLCALL *SDL_WM_SetIcon)(SDL_Surface *, Uint8 *);
|
||||
Uint32 (SDLCALL *SDL_MapRGB)(SDL_PixelFormat *, Uint8, Uint8, Uint8);
|
||||
int (SDLCALL *SDL_VideoModeOK)(int, int, int, Uint32);
|
||||
SDL_version *(SDLCALL *SDL_Linked_Version)();
|
||||
int (SDLCALL *SDL_BlitSurface)(SDL_Surface *, SDL_Rect *, SDL_Surface *, SDL_Rect *);
|
||||
SDL_Surface *(SDLCALL *SDL_CreateRGBSurface)(Uint32, int, int, int, Uint32, Uint32, Uint32, Uint32);
|
||||
};
|
||||
|
||||
extern SDLProcs sdl_proc;
|
||||
|
||||
#define SDL_CALL sdl_proc.
|
||||
#else
|
||||
#define SDL_CALL
|
||||
#endif
|
||||
|
||||
#endif /* SDL_H */
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user