1
0
mirror of https://github.com/OpenTTD/OpenTTD.git synced 2025-08-24 06:59:10 +00:00

Compare commits

...

35 Commits

Author SHA1 Message Date
Patric Stout
88c5122b39 Update: Changelog for 1.9.0-RC1 and prepare for release 2019-03-03 20:53:40 +01:00
Patric Stout
eb46a89855 Fix: [AzurePipelines] also trigger CI on release branches 2019-03-03 20:26:58 +01:00
frosch
39cda89e85 Add: Detect stable tags automatically, and set the 'stable' flag in '_openttd_newgrf_version' accordingly. (#7317) 2019-03-03 20:08:28 +01:00
translators
8016b8b3e9 Update: Translations from eints
catalan: 62 changes by juanjo
french: 11 changes by glx
2019-03-03 19:45:43 +01:00
Charles Pigott
4ac81b3ebb Fix #7308: SDL linker flags were not added on MinGW 2019-03-03 18:04:36 +00:00
Charles Pigott
d9b4ada7e9 Fix 95ccddd6: SDL static library flags was not updated to use pkg-config format 2019-03-03 18:04:36 +00:00
Charles Pigott
1a663d9efc Fix: Wrong variable was used in zlib detection 2019-03-03 18:04:36 +00:00
93a6fd42d1 Fix 23960d0f2c: Company livery window shows incorrect groups when opened from group window in multiplayer. 2019-03-03 13:13:35 +01:00
Niels Martin Hansen
c61acc7fc1 Fix #7280: Save in the right location on desync and server timeout 2019-03-03 12:12:32 +01:00
c91e0058c2 Change: Allow vehicle group names to be non-unique.
Group names are visual identifiers, and do not need to be unique.
Group sorting already falls back to group ID if names are the same, so that sorted
list position is stable.
2019-03-03 12:04:29 +01:00
5a5944867d Add: Add parent_group_id parameter to CreateGroup() 2019-03-03 09:15:39 +01:00
5d3ccae6c5 Add: AI function to get current usage of a group. 2019-03-03 09:15:39 +01:00
e0c2ad1b65 Add: AI functions to get/set company colours. 2019-03-03 09:15:39 +01:00
3c047b124e Add: AI functions to get current and last year profit of a group. 2019-03-03 09:15:39 +01:00
b62452903a Add: AI functions to set/get vehicle group parent. 2019-03-03 09:15:39 +01:00
Eddi-z
8139b14e9c Change: Synchronize introduction date and reliability randomness across vehicles with the same base introduction date (#7147) 2019-03-02 21:28:22 +00:00
Johannes E. Krause
5e40338543 Doc: table alignment when viewing README.md as a monospace textfile 2019-03-02 20:53:50 +01:00
translators
90a4737bf6 Update: Translations from eints
croatian: 6 changes by VoyagerOne
2019-03-02 19:45:43 +01:00
Eddi-z
b242a04c7d Fix #7307: Add WaterClass to MP_TREES, set when trees are on coast tiles (#7309)
This allows allows NewGRF object/industry placement rules to treat trees on coast tiles the same as regular bare coast.
2019-03-02 17:33:16 +00:00
Samu
780593ae60 Fix #6633: Cargo monitor industry delivery now accounts for which IndustryID the cargo was delivered to 2019-03-02 18:14:45 +01:00
cbaf52fbe1 Codechange: Sort and filter sign names directly rather than through string system. (#7304)
This provides a notable performance benefit in the Sign List window when there are many signs.
2019-03-02 17:08:45 +00:00
Charles Pigott
c3bc7d657e Codechange: Remove ability for SDL to be dynamically loaded on Windows 2019-03-02 17:13:05 +01:00
63fe6c6598 Codechange: Make std::stack use std::vector container in string formatting/drawing. (#7305)
This is a very minor performance increase which can add up during operations such
as sorting. Performance impact my be platform/compiler dependent.
2019-03-02 08:06:02 +00:00
translators
7ecfae8f7f Update: Translations from eints
turkish: 4 changes by DarkSapling
danish: 10 changes by Deb622
norwegian (bokmal): 11 changes by Leifbk
portuguese: 11 changes by vesgo
2019-03-01 19:45:42 +01:00
Eddi-z
1447661d20 Cleanup: spurious TODOs in newgrf.cpp (#7297) 2019-02-28 23:00:50 +00:00
9ad5112628 Change: [AzurePipelines] Add freetype dependency for OSX. (#7299) 2019-02-28 19:33:31 +00:00
translators
76f983a8e7 Update: Translations from eints
dutch: 80 changes by JanWillem
2019-02-28 19:45:43 +01:00
SamuXarick
50a0cf1915 Change: Allow towns to build bridges over rails and one-way roads. (#7291) 2019-02-28 17:45:17 +00:00
SamuXarick
03264059e4 Change: Decrease minimum permitted value for script_max_opcode_till_suspend setting (#7243) 2019-02-28 17:37:50 +00:00
translators
adb50cebcc Update: Translations from eints
romanian: 7 changes by alexmerlin1985
2019-02-27 19:45:42 +01:00
Samu
9b99b95955 Fix #6574: Remove go to hangar orders when rebuilding airport
When replacing an airport with another, cancel current orders of type 'go to depot' from aircraft still heading to it if the rebuilt airport doesn't have a hangar (helicopter vs heliport), or if the airplane can't land on the rebuilt airport (airplane vs helistation).

Removes 'go to hangar' orders from all aircraft when replacing an airport with hangar with another without hangar (heliport).
2019-02-27 00:06:57 +01:00
7ac17f5ae4 Fix #7281: Unable to select last group in open livery window on group creation. 2019-02-26 11:20:23 +01:00
c2e4a8c9bf Fix 195fd0dc60: Sprite cache must still be cleared when using bitmap fonts. 2019-02-25 19:46:03 +00:00
translators
93c6398810 Update: Translations from eints
dutch: 68 changes by JanWillem
danish: 17 changes by nielsmh
hungarian: 3 changes by Brumi
2019-02-25 19:45:43 +01:00
glx22
6ff02f0615 Fix: [Windows] make the installer DPI aware (#7277) 2019-02-25 01:47:00 +01:00
78 changed files with 979 additions and 641 deletions

View File

@@ -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:

View File

@@ -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.

View File

@@ -1,7 +1,9 @@
trigger:
- master
- release/*
pr:
- master
- release/*
jobs:
- job: windows

View File

@@ -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'

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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));

View File

@@ -1,3 +1,15 @@
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 +36,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

View File

@@ -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

View File

@@ -759,6 +759,7 @@
<td valign=top nowrap>&nbsp;</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>

View File

@@ -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>

View File

@@ -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"

View File

@@ -1,6 +1,6 @@
OpenTTD's known bugs
Last updated: 2019-02-24
Release version: 1.9.0-beta3
Last updated: 2019-03-03
Release version: 1.9.0-RC1
------------------------------------------------------------------------

View File

@@ -1,3 +1,9 @@
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

View File

@@ -17,9 +17,9 @@
#
Name: openttd
Version: 1.9.beta3
Version: 1.9.RC1
Release: 0
%define srcver 1.9.0-beta3
%define srcver 1.9.0-RC1
Summary: An open source reimplementation of Chris Sawyer's Transport Tycoon Deluxe
License: GPL-2.0
Group: Amusements/Games/Strategy/Other

View File

@@ -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 3
!define APPV_EXTRA "-RC1"
!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

View File

@@ -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

View File

@@ -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" />

View File

@@ -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>

View File

@@ -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" />

View File

@@ -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>

View File

@@ -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" />

View File

@@ -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>

View File

@@ -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

View File

@@ -2103,7 +2103,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);
}

View File

@@ -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;

View File

@@ -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 */

View File

@@ -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);
}
}

View File

@@ -62,7 +62,6 @@
#include <lzo/lzo1x.h>
#endif
#ifdef WITH_SDL
# include "sdl.h"
# include <SDL.h>
#endif /* WITH_SDL */
#ifdef WITH_ZLIB
@@ -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

View File

@@ -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)) {

View File

@@ -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. */

View File

@@ -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) {}

View File

@@ -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) {

View File

@@ -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}, «{1: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

View File

@@ -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

View File

@@ -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
@@ -3258,7 +3258,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 +3457,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 +3585,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 +3595,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 +3617,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 +4052,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 +4089,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 +4165,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 +4179,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

View File

@@ -812,7 +812,7 @@ STR_NEWS_COMPANY_MERGER_TITLE :{BIG_FONT}{BLAC
STR_NEWS_COMPANY_MERGER_DESCRIPTION :{BIG_FONT}{BLACK}{STRING} is verkocht aan {STRING} voor {CURRENCY_LONG}!
STR_NEWS_COMPANY_BANKRUPT_TITLE :{BIG_FONT}{BLACK}Failliet!
STR_NEWS_COMPANY_BANKRUPT_DESCRIPTION :{BIG_FONT}{BLACK}{STRING} is gesloten door schuldeisers en alle eigendommen zijn verkocht!
STR_NEWS_COMPANY_LAUNCH_TITLE :{BIG_FONT}{BLACK}Nieuw transportbedrijf opgestart!
STR_NEWS_COMPANY_LAUNCH_TITLE :{BIG_FONT}{BLACK}Nieuw transportbedrijf gestart!
STR_NEWS_COMPANY_LAUNCH_DESCRIPTION :{BIG_FONT}{BLACK}{STRING} begint werkzaamheden bij {TOWN}!
STR_NEWS_MERGER_TAKEOVER_TITLE :{BIG_FONT}{BLACK}{STRING} is overgenomen door {STRING}!
STR_PRESIDENT_NAME_MANAGER :{BLACK}{PRESIDENT_NAME}{}(Directeur)
@@ -827,7 +827,7 @@ STR_NEWS_INDUSTRY_CLOSURE_GENERAL :{BIG_FONT}{BLAC
STR_NEWS_INDUSTRY_CLOSURE_SUPPLY_PROBLEMS :{BIG_FONT}{BLACK}Leveringsproblemen noodzaken {STRING} dreigende sluiting aan te kondigen!
STR_NEWS_INDUSTRY_CLOSURE_LACK_OF_TREES :{BIG_FONT}{BLACK}Gebrek aan nabije bomen noodzaakt {STRING} dreigende sluitng aan te kondigen!
STR_NEWS_EURO_INTRODUCTION :{BIG_FONT}{BLACK}Europese Monetaire Unie!{}{}De Euro is geïntroduceerd als de enige munt voor alledaagse transacties in jouw land!
STR_NEWS_EURO_INTRODUCTION :{BIG_FONT}{BLACK}Europese Monetaire Unie!{}{}De euro wordt in jouw land ingevoerd als de enige munt voor gewone transacties!
STR_NEWS_BEGIN_OF_RECESSION :{BIG_FONT}{BLACK}Wereldwijde recessie!{}{}Financiële experts vrezen het ergste terwijl economie ineenstort!
STR_NEWS_END_OF_RECESSION :{BIG_FONT}{BLACK}Recessie voorbij!{}{}Toenemende handel geeft industrie vertrouwen vanwege sterkere economie!
@@ -857,7 +857,7 @@ STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE
STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD_AND :{WHITE}{VEHICLE} is erg oud aan het worden en moet nodig vervangen worden
STR_NEWS_TRAIN_IS_STUCK :{WHITE}{VEHICLE} kan geen route vinden om verder te gaan
STR_NEWS_VEHICLE_IS_LOST :{WHITE}{VEHICLE} is verdwaald
STR_NEWS_VEHICLE_IS_UNPROFITABLE :{WHITE}Winst van {VEHICLE} was vorig jaar {CURRENCY_LONG}
STR_NEWS_VEHICLE_IS_UNPROFITABLE :{WHITE}Winst van {VEHICLE} was vorig jaar:{}{CURRENCY_LONG}
STR_NEWS_AIRCRAFT_DEST_TOO_FAR :{WHITE}{VEHICLE} kan niet naar de volgende bestemming omdat deze buiten bereik ligt
STR_NEWS_ORDER_REFIT_FAILED :{WHITE}{VEHICLE} is gestopt omdat een ombouworder is mislukt
@@ -880,7 +880,7 @@ STR_NEWS_SERVICE_SUBSIDY_AWARDED_DOUBLE :{BIG_FONT}{BLAC
STR_NEWS_SERVICE_SUBSIDY_AWARDED_TRIPLE :{BIG_FONT}{BLACK}Subsidie toegekend aan {STRING}!{}{}{STRING}route van {STRING} naar {STRING} krijgt volgend jaar driedubbel betaald!
STR_NEWS_SERVICE_SUBSIDY_AWARDED_QUADRUPLE :{BIG_FONT}{BLACK}Subsidie toegekend aan {STRING}!{}{}{STRING}route van {STRING} naar {STRING} krijgt volgend jaar vierdubbel betaald!
STR_NEWS_ROAD_REBUILDING :{BIG_FONT}{BLACK}Verkeerschaos in {TOWN}!{}{}Wegherstelling betaald door {STRING} zorgt voor 6 maanden van miserie bij weggebruikers!
STR_NEWS_ROAD_REBUILDING :{BIG_FONT}{BLACK}Verkeerschaos in {TOWN}!{}{}Wegreconstructie betaald door {STRING} zorgt voor 6 maanden van misère bij weggebruikers!
STR_NEWS_EXCLUSIVE_RIGHTS_TITLE :{BIG_FONT}{BLACK}Transportmonopolie!
STR_NEWS_EXCLUSIVE_RIGHTS_DESCRIPTION :{BIG_FONT}{BLACK}Gemeentebestuur van {TOWN} tekent contract met {STRING} voor een jaar exclusieve transportrechten!
@@ -1004,7 +1004,7 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Viervoudige gro
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Basisset voor graphics
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Kiest de te gebruiken basisset voor grafische elementen
STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} ontbrekend{P "" e}/corrupt{P "" e} bestand{P "" en}
STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} ontbrekend{P "" e}/beschadigd{P "" e} bestand{P "" en}
STR_GAME_OPTIONS_BASE_GRF_DESCRIPTION_TOOLTIP :{BLACK}Aanvullende informatie over de basisset voor graphics
STR_GAME_OPTIONS_BASE_SFX :{BLACK}Basisset voor geluidseffecten
@@ -1013,7 +1013,7 @@ STR_GAME_OPTIONS_BASE_SFX_DESCRIPTION_TOOLTIP :{BLACK}Aanvulle
STR_GAME_OPTIONS_BASE_MUSIC :{BLACK}Basisset voor muziek
STR_GAME_OPTIONS_BASE_MUSIC_TOOLTIP :{BLACK}Kiest de te gebruiken basisset voor muziek
STR_GAME_OPTIONS_BASE_MUSIC_STATUS :{RED}{NUM} corrupt{P "" e} bestand{P "" en}
STR_GAME_OPTIONS_BASE_MUSIC_STATUS :{RED}{NUM} beschadigd{P "" e} bestand{P "" en}
STR_GAME_OPTIONS_BASE_MUSIC_DESCRIPTION_TOOLTIP :{BLACK}Aanvullende informatie over the basisset voor muziek
STR_ERROR_RESOLUTION_LIST_FAILED :{WHITE}Mislukt om een lijst met ondersteunde resoluties op te halen
@@ -1023,27 +1023,27 @@ STR_ERROR_FULLSCREEN_FAILED :{WHITE}Modus vo
STR_CURRENCY_WINDOW :{WHITE}Aangepaste valuta
STR_CURRENCY_EXCHANGE_RATE :{LTBLUE}Wisselkoers: {ORANGE}{CURRENCY_LONG} = £ {COMMA}
STR_CURRENCY_DECREASE_EXCHANGE_RATE_TOOLTIP :{BLACK}Verlaag de wisselkoers van jouw munteenheid ten opzicht van de Pond (£)
STR_CURRENCY_INCREASE_EXCHANGE_RATE_TOOLTIP :{BLACK}Verhoog de wisselkoers van jouw munteenheid ten opzicht van de Pond (£)
STR_CURRENCY_SET_EXCHANGE_RATE_TOOLTIP :{BLACK}Stel de wisselkoers in van jouw munteenheid ten opzichte van de Pond (£)
STR_CURRENCY_DECREASE_EXCHANGE_RATE_TOOLTIP :{BLACK}Verlaag de wisselkoers van jouw munteenheid ten opzichte van het pond (£)
STR_CURRENCY_INCREASE_EXCHANGE_RATE_TOOLTIP :{BLACK}Verhoog de wisselkoers van jouw munteenheid ten opzichte van het pond (£)
STR_CURRENCY_SET_EXCHANGE_RATE_TOOLTIP :{BLACK}Stel de wisselkoers in van jouw munteenheid ten opzichte van het pond (£)
STR_CURRENCY_SEPARATOR :{LTBLUE}Scheidingsteken: {ORANGE}{STRING}
STR_CURRENCY_SET_CUSTOM_CURRENCY_SEPARATOR_TOOLTIP :{BLACK}Stel het scheidingsteken in voor jouw munteenheid
STR_CURRENCY_PREFIX :{LTBLUE}Voorvoegsel: {ORANGE}{STRING}
STR_CURRENCY_SET_CUSTOM_CURRENCY_PREFIX_TOOLTIP :{BLACK}Stel het voorloopteken in voor jouw munteenheid
STR_CURRENCY_SET_CUSTOM_CURRENCY_PREFIX_TOOLTIP :{BLACK}Stel het voorvoegsel in voor jouw munteenheid
STR_CURRENCY_SUFFIX :{LTBLUE}Achtervoegsel: {ORANGE}{STRING}
STR_CURRENCY_SET_CUSTOM_CURRENCY_SUFFIX_TOOLTIP :{BLACK}Stel het eindteken in voor jouw munteenheid
STR_CURRENCY_SET_CUSTOM_CURRENCY_SUFFIX_TOOLTIP :{BLACK}Stel het achtervoegsel in voor jouw munteenheid
STR_CURRENCY_SWITCH_TO_EURO :{LTBLUE}Overgaan op de Euro: {ORANGE}{NUM}
STR_CURRENCY_SWITCH_TO_EURO_NEVER :{LTBLUE}Overgaan op de Euro: {ORANGE}nooit
STR_CURRENCY_SET_CUSTOM_CURRENCY_TO_EURO_TOOLTIP :{BLACK}Stel het jaar in waarin de Euro wordt geïntroduceerd
STR_CURRENCY_DECREASE_CUSTOM_CURRENCY_TO_EURO_TOOLTIP :{BLACK}Eerder naar de Euro
STR_CURRENCY_INCREASE_CUSTOM_CURRENCY_TO_EURO_TOOLTIP :{BLACK}Later naar de Euro
STR_CURRENCY_SWITCH_TO_EURO :{LTBLUE}Overgaan op de euro: {ORANGE}{NUM}
STR_CURRENCY_SWITCH_TO_EURO_NEVER :{LTBLUE}Overgaan op de euro: {ORANGE}nooit
STR_CURRENCY_SET_CUSTOM_CURRENCY_TO_EURO_TOOLTIP :{BLACK}Stel het jaar in waarin de euro wordt geïntroduceerd
STR_CURRENCY_DECREASE_CUSTOM_CURRENCY_TO_EURO_TOOLTIP :{BLACK}Eerder naar de euro
STR_CURRENCY_INCREASE_CUSTOM_CURRENCY_TO_EURO_TOOLTIP :{BLACK}Later naar de euro
STR_CURRENCY_PREVIEW :{LTBLUE}Voorbeeld: {ORANGE}{CURRENCY_LONG}
STR_CURRENCY_CUSTOM_CURRENCY_PREVIEW_TOOLTIP :{BLACK}10000 Pound (£) in jouw munteenheid
STR_CURRENCY_CHANGE_PARAMETER :{BLACK}Verander optie van aangepaste valuta
STR_CURRENCY_CUSTOM_CURRENCY_PREVIEW_TOOLTIP :{BLACK}10.000 pond (£) in jouw munteenheid
STR_CURRENCY_CHANGE_PARAMETER :{BLACK}Aangepaste valutaparameters wijzigen
STR_DIFFICULTY_LEVEL_SETTING_MAXIMUM_NO_COMPETITORS :{LTBLUE}Maximaal aantal tegenstanders: {ORANGE}{COMMA}
@@ -1254,7 +1254,7 @@ STR_CONFIG_SETTING_ALLOW_GIVE_MONEY_HELPTEXT :Geld overmaken
STR_CONFIG_SETTING_FREIGHT_TRAINS :Gewichtsfactor voor vracht om zware treinen te simuleren: {STRING}
STR_CONFIG_SETTING_FREIGHT_TRAINS_HELPTEXT :Stelt in hoe vracht treinen beïnvloedt. Een hogere waarde maakt het vervoer van vracht veeleisender voor treinen, met name in heuvels.
STR_CONFIG_SETTING_PLANE_SPEED :Snelheidsfactor voor vliegtuigen: {STRING}
STR_CONFIG_SETTING_PLANE_SPEED_HELPTEXT :Stel de relatieve snelheid van de vliegtuigen in vergelijking met andere typen voertuigen, om de hoogte van het inkomen van het vervoer door vliegtuigen te verminderen
STR_CONFIG_SETTING_PLANE_SPEED_HELPTEXT :Stel de relatieve snelheid van de vliegtuigen in vergelijking met andere typen voertuigen in om de inkomsten door luchttransport te verminderen
STR_CONFIG_SETTING_PLANE_SPEED_VALUE :1 / {COMMA}
STR_CONFIG_SETTING_PLANE_CRASHES :Aantal neerstortende vliegtuigen: {STRING}
STR_CONFIG_SETTING_PLANE_CRASHES_HELPTEXT :Bepaalt de kans op neerstorten van een vliegtuig
@@ -1380,7 +1380,7 @@ STR_CONFIG_SETTING_SCROLLWHEEL_OFF :Uit
STR_CONFIG_SETTING_SCROLLWHEEL_MULTIPLIER :Muiswielsnelheid: {STRING}
STR_CONFIG_SETTING_SCROLLWHEEL_MULTIPLIER_HELPTEXT :Gevoeligheid van verplaatsen met de instellen
STR_CONFIG_SETTING_OSK_ACTIVATION :Toetsenbord op scherm: {STRING}
STR_CONFIG_SETTING_OSK_ACTIVATION_HELPTEXT :Selecteer de methode om het toetsenbord op het scherm te openen voor tekst invoeren in editboxes alleen met behulp van het aanwijsapparaat. Dit is bedoeld voor kleine apparaten zonder toetsenbord
STR_CONFIG_SETTING_OSK_ACTIVATION_HELPTEXT :Selecteer de methode om het toetsenbord op het scherm te openen voor tekst invoeren in bewerkingsvensters met alleen het aanwijsapparaat. Dit is bedoeld voor kleine apparaten zonder toetsenbord.
STR_CONFIG_SETTING_OSK_ACTIVATION_DISABLED :Uitgeschakeld
STR_CONFIG_SETTING_OSK_ACTIVATION_DOUBLE_CLICK :Dubbelklik
STR_CONFIG_SETTING_OSK_ACTIVATION_SINGLE_CLICK_FOCUS :Enkel klik (met focus)
@@ -1441,7 +1441,7 @@ STR_CONFIG_SETTING_SOUND_NEWS_HELPTEXT :Geluidseffect w
STR_CONFIG_SETTING_SOUND_NEW_YEAR :Einde jaar: {STRING}
STR_CONFIG_SETTING_SOUND_NEW_YEAR_HELPTEXT :Geluidseffect afspelen bij jaaroverzicht van bedrijf t.o.v. vorig jaar
STR_CONFIG_SETTING_SOUND_CONFIRM :Bouw: {STRING}
STR_CONFIG_SETTING_SOUND_CONFIRM_HELPTEXT :Speel geluidseffecten bij succesvolle constructies of andere acties
STR_CONFIG_SETTING_SOUND_CONFIRM_HELPTEXT :Speel geluidseffecten af wanneer constructies of andere acties zijn gelukt
STR_CONFIG_SETTING_SOUND_CLICK :Klikgeluid knoppen: {STRING}
STR_CONFIG_SETTING_SOUND_CLICK_HELPTEXT :Piep bij het klikken op knoppen
STR_CONFIG_SETTING_SOUND_DISASTER :Rampen/ongelukken: {STRING}
@@ -1750,8 +1750,8 @@ STR_INTRO_CAPTION :{WHITE}OpenTTD
STR_INTRO_NEW_GAME :{BLACK}Nieuw spel
STR_INTRO_LOAD_GAME :{BLACK}Spel laden
STR_INTRO_PLAY_SCENARIO :{BLACK}Speel scenario
STR_INTRO_PLAY_HEIGHTMAP :{BLACK}Speel hoogtekaart
STR_INTRO_PLAY_SCENARIO :{BLACK}Scenario spelen
STR_INTRO_PLAY_HEIGHTMAP :{BLACK}Hoogtekaart spelen
STR_INTRO_SCENARIO_EDITOR :{BLACK}Scenario bewerken
STR_INTRO_MULTIPLAYER :{BLACK}Netwerkspel
@@ -1767,8 +1767,8 @@ STR_INTRO_TOOLTIP_NEW_GAME :{BLACK}Start ee
STR_INTRO_TOOLTIP_LOAD_GAME :{BLACK}Een opgeslagen spel laden
STR_INTRO_TOOLTIP_PLAY_HEIGHTMAP :{BLACK}Start een nieuw spel, gebruik een hoogtekaart als landschap
STR_INTRO_TOOLTIP_PLAY_SCENARIO :{BLACK}Start een nieuw spel, gebaseerd op een scenario
STR_INTRO_TOOLTIP_SCENARIO_EDITOR :{BLACK}Maak een eigen spelwereld/scenario
STR_INTRO_TOOLTIP_MULTIPLAYER :{BLACK}Start een multiplayerspel
STR_INTRO_TOOLTIP_SCENARIO_EDITOR :{BLACK}Een eigen spelwereld/scenario maken
STR_INTRO_TOOLTIP_MULTIPLAYER :{BLACK}Een netwerkspel spelen
STR_INTRO_TOOLTIP_TEMPERATE :{BLACK}Gematigd klimaat
STR_INTRO_TOOLTIP_SUB_ARCTIC_LANDSCAPE :{BLACK}Subarctisch klimaat
@@ -1784,7 +1784,7 @@ STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}AI-/spel
STR_INTRO_TOOLTIP_QUIT :{BLACK}'OpenTTD' afsluiten
STR_INTRO_BASESET :{BLACK}De huidige gekozen set grafische elementen mist {NUM} sprite{P "" s}. Controleer of er updates zijn voor deze basisset.
STR_INTRO_TRANSLATION :{BLACK}Deze vertaling mist {NUM} tekst{P "" en}. Help aub om OpenTTD beter te maken door je al vertaler aan te melden. Zie readme.txt voor details.
STR_INTRO_TRANSLATION :{BLACK}Deze vertaling mist {NUM} tekst{P "" en}. Help alsjeblieft mee om OpenTTD beter te maken door je als vertaler aan te melden. Zie readme.txt voor details.
# Quit window
STR_QUIT_CAPTION :{WHITE}Afsluiten
@@ -1859,7 +1859,7 @@ STR_LIVERY_TRUCK :Vrachtwagen
STR_LIVERY_PASSENGER_SHIP :Passagiersschip
STR_LIVERY_FREIGHT_SHIP :Vrachtschip
STR_LIVERY_HELICOPTER :Helikopter
STR_LIVERY_SMALL_PLANE :Klein Vliegtuig
STR_LIVERY_SMALL_PLANE :Klein vliegtuig
STR_LIVERY_LARGE_PLANE :Groot Vliegtuig
STR_LIVERY_PASSENGER_TRAM :Passagierstram
STR_LIVERY_FREIGHT_TRAM :Vrachttram
@@ -1884,15 +1884,15 @@ STR_FACE_LOAD :{BLACK}Laden
STR_FACE_LOAD_TOOLTIP :{BLACK}Favoriet gezicht laden
STR_FACE_LOAD_DONE :{WHITE}Je favoriete gezicht is geladen uit het OpenTTD-configuratiebestand
STR_FACE_FACECODE :{BLACK}Gezichtsnummer
STR_FACE_FACECODE_TOOLTIP :{BLACK}Bekijk en/of bewaar gezichtsnummer van de bedrijfspresident
STR_FACE_FACECODE_CAPTION :{WHITE}Bekijk en/of bewaar huidig gezichtsnummer
STR_FACE_FACECODE_TOOLTIP :{BLACK}Gezichtsnummer van directeur bekijken en/of instellen
STR_FACE_FACECODE_CAPTION :{WHITE}Huidig gezichtsnummer bekijken en/of instellen
STR_FACE_FACECODE_SET :{WHITE}Nieuwe gezichtsnummercode is opgeslagen
STR_FACE_FACECODE_ERR :{WHITE}Kon gezichtsnummer niet bewaren - het moet een getal zijn tussen 0 en 4.294.967.295!
STR_FACE_FACECODE_ERR :{WHITE}Kon gezichtsnummer voor directeur niet instellen - moet een getal zijn tussen 0 en 4.294.967.295!
STR_FACE_SAVE :{BLACK}Opslaan
STR_FACE_SAVE_TOOLTIP :{BLACK}Favoriet gezicht opslaan
STR_FACE_SAVE_DONE :{WHITE}Dit gezicht wordt zal worden opgeslagen als jouw favoriet in het OpenTTD-configuratiebestand
STR_FACE_SAVE_DONE :{WHITE}Dit gezicht wordt in het OpenTTD-configuratiebestand opgeslagen als jouw favoriet
STR_FACE_EUROPEAN :{BLACK}Europeaans
STR_FACE_SELECT_EUROPEAN :{BLACK}Selecteer Europeaanse gezichten
STR_FACE_SELECT_EUROPEAN :{BLACK}Selecteer Europese gezichten
STR_FACE_AFRICAN :{BLACK}Afrikaans
STR_FACE_SELECT_AFRICAN :{BLACK}Selecteer Afrikaanse gezichten
STR_FACE_YES :Ja
@@ -2072,7 +2072,7 @@ STR_NETWORK_CONNECTING_CAPTION :{WHITE}Verbinde
############ Leave those lines in this order!!
STR_NETWORK_CONNECTING_1 :{BLACK}(1/6) Verbinden...
STR_NETWORK_CONNECTING_2 :{BLACK}(2/6) Inloggen...
STR_NETWORK_CONNECTING_2 :{BLACK}(2/6) Verifiëren...
STR_NETWORK_CONNECTING_3 :{BLACK}(3/6) Wachten...
STR_NETWORK_CONNECTING_4 :{BLACK}(4/6) Kaart downloaden...
STR_NETWORK_CONNECTING_5 :{BLACK}(5/6) Gegevens verwerken...
@@ -2085,7 +2085,7 @@ STR_NETWORK_CONNECTING_WAITING :{BLACK}{NUM} sp
STR_NETWORK_CONNECTING_DOWNLOADING_1 :{BLACK}{BYTES} tot dusver gedownload
STR_NETWORK_CONNECTING_DOWNLOADING_2 :{BLACK}{BYTES} / {BYTES} opgehaald
STR_NETWORK_CONNECTION_DISCONNECT :{BLACK}Verbreek verbinding
STR_NETWORK_CONNECTION_DISCONNECT :{BLACK}Verbinding verbreken
STR_NETWORK_NEED_GAME_PASSWORD_CAPTION :{WHITE}Server is beveiligd. Voer wachtwoord in
STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION :{WHITE}Bedrijf is beveiligd. Voer wachtwoord in
@@ -2093,16 +2093,16 @@ STR_NETWORK_COMPANY_LIST_CLIENT_LIST_CAPTION :{WHITE}Spelersl
# Network company list added strings
STR_NETWORK_COMPANY_LIST_CLIENT_LIST :Spelerslijst
STR_NETWORK_COMPANY_LIST_SPECTATE :Kijk toe
STR_NETWORK_COMPANY_LIST_SPECTATE :Toekijken
STR_NETWORK_COMPANY_LIST_NEW_COMPANY :Nieuw bedrijf
# Network client list
STR_NETWORK_CLIENTLIST_KICK :Gooi uit het spel
STR_NETWORK_CLIENTLIST_BAN :Verban uit het spel
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Geef geld
STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL :Praat met iedereen
STR_NETWORK_CLIENTLIST_SPEAK_TO_COMPANY :Praat met het bedrijf
STR_NETWORK_CLIENTLIST_SPEAK_TO_CLIENT :Praat met deze persoon
STR_NETWORK_CLIENTLIST_KICK :Uit het spel schoppen
STR_NETWORK_CLIENTLIST_BAN :Verbannen
STR_NETWORK_CLIENTLIST_GIVE_MONEY :Geld geven
STR_NETWORK_CLIENTLIST_SPEAK_TO_ALL :Met iedereen praten
STR_NETWORK_CLIENTLIST_SPEAK_TO_COMPANY :Met bedrijf praten
STR_NETWORK_CLIENTLIST_SPEAK_TO_CLIENT :Privébericht
STR_NETWORK_SERVER :Server
STR_NETWORK_CLIENT :Speler
@@ -2217,22 +2217,22 @@ STR_NETWORK_MESSAGE_SERVER_REBOOT :{WHITE}De serve
# Content downloading window
STR_CONTENT_TITLE :{WHITE}Download extra inhoud
STR_CONTENT_TYPE_CAPTION :{BLACK}Type
STR_CONTENT_TYPE_CAPTION_TOOLTIP :{BLACK}Type van de content
STR_CONTENT_TYPE_CAPTION_TOOLTIP :{BLACK}Type inhoud
STR_CONTENT_NAME_CAPTION :{BLACK}Naam
STR_CONTENT_NAME_CAPTION_TOOLTIP :{BLACK}Naam van de inhoud
STR_CONTENT_MATRIX_TOOLTIP :{BLACK}Klik op een regel voor details{}Gebruik het selectievakje om het te selecteren voor download
STR_CONTENT_SELECT_ALL_CAPTION :{BLACK}Selecteer alles
STR_CONTENT_SELECT_ALL_CAPTION :{BLACK}Alles selecteren
STR_CONTENT_SELECT_ALL_CAPTION_TOOLTIP :{BLACK}Markeer alle inhoud voor download
STR_CONTENT_SELECT_UPDATES_CAPTION :{BLACK}Selecteer updates
STR_CONTENT_SELECT_UPDATES_CAPTION :{BLACK}Updates selecteren
STR_CONTENT_SELECT_UPDATES_CAPTION_TOOLTIP :{BLACK}Markeer alle updates voor bestaande inhoud voor download
STR_CONTENT_UNSELECT_ALL_CAPTION :{BLACK}Deselecteer alles
STR_CONTENT_UNSELECT_ALL_CAPTION_TOOLTIP :{BLACK}Markeer alle content om niet te downloaden
STR_CONTENT_SEARCH_EXTERNAL :{BLACK}Zoek externe websites
STR_CONTENT_UNSELECT_ALL_CAPTION :{BLACK}Niets selecteren
STR_CONTENT_UNSELECT_ALL_CAPTION_TOOLTIP :{BLACK}Alle markeringen van inhoud voor download ongedaan maken
STR_CONTENT_SEARCH_EXTERNAL :{BLACK}Externe websites zoeken
STR_CONTENT_SEARCH_EXTERNAL_TOOLTIP :{BLACK}Zoek inhoud niet beschikbaar op de server van OpenTTD op websites die niet gekoppeld zijn aan OpenTTD
STR_CONTENT_SEARCH_EXTERNAL_DISCLAIMER_CAPTION :{WHITE}Je verlaat OpenTTD!
STR_CONTENT_SEARCH_EXTERNAL_DISCLAIMER :{WHITE}De voorwaarden voor het downloaden van inhoud van externe websites variëren.{}Ga naar de externe website voor instructies over het installeren van de inhoud in OpenTTD.{}Wil je doorgaan?
STR_CONTENT_FILTER_TITLE :{BLACK}Tag-/naamfilter:
STR_CONTENT_OPEN_URL :{BLACK}Bezoek website
STR_CONTENT_OPEN_URL :{BLACK}Website bezoeken
STR_CONTENT_OPEN_URL_TOOLTIP :{BLACK}Bezoek de website voor deze inhoud
STR_CONTENT_DOWNLOAD_CAPTION :{BLACK}Download
STR_CONTENT_DOWNLOAD_CAPTION_TOOLTIP :{BLACK}Start met het downloaden van de geselecteerde inhoud
@@ -2253,7 +2253,7 @@ STR_CONTENT_DETAIL_FILESIZE :{SILVER}Downloa
STR_CONTENT_DETAIL_SELECTED_BECAUSE_OF :{SILVER}Geselecteerd omdat: {WHITE}{STRING}
STR_CONTENT_DETAIL_DEPENDENCIES :{SILVER}Afhankelijkheden: {WHITE}{STRING}
STR_CONTENT_DETAIL_TAGS :{SILVER}Tags: {WHITE}{STRING}
STR_CONTENT_NO_ZLIB :{WHITE}OpenTTD is gemaakt zonder "zlib"-ondersteuning...
STR_CONTENT_NO_ZLIB :{WHITE}OpenTTD is gemaakt zonder 'zlib'-ondersteuning...
STR_CONTENT_NO_ZLIB_SUB :{WHITE}... niet mogelijk gegevens te downloaden
# Order of these is important!
@@ -2282,9 +2282,9 @@ STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD_CONNECTION_LOST :{WHITE}... verb
STR_CONTENT_ERROR_COULD_NOT_DOWNLOAD_FILE_NOT_WRITABLE :{WHITE}... bestand niet schrijfbaar
STR_CONTENT_ERROR_COULD_NOT_EXTRACT :{WHITE}Kon gedownload bestand niet uitpakken
STR_MISSING_GRAPHICS_SET_CAPTION :{WHITE}Ontbrekende graphics
STR_MISSING_GRAPHICS_SET_CAPTION :{WHITE}Ontbrekende grafische elementen
STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD heeft grafische elementen nodig om te kunnen werken, maar deze zijn niet gevonden. Wil je dat OpenTTD deze downloadt en installeert?
STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Ja, download de graphics
STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Ja, grafische elementen downloaden
STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Nee, OpenTTD afsluiten
# Transparency settings window
@@ -2301,10 +2301,10 @@ STR_TRANSPARENT_LOADING_TOOLTIP :{BLACK}Transpar
STR_TRANSPARENT_INVISIBLE_TOOLTIP :{BLACK}Maak objecten onzichtbaar in plaats van transparant
# Linkgraph legend window
STR_LINKGRAPH_LEGEND_CAPTION :{BLACK}Vrachtstroomlegende
STR_LINKGRAPH_LEGEND_CAPTION :{BLACK}Vrachtstroomlegenda
STR_LINKGRAPH_LEGEND_ALL :{BLACK}Alle
STR_LINKGRAPH_LEGEND_NONE :{BLACK}Geen
STR_LINKGRAPH_LEGEND_SELECT_COMPANIES :{BLACK}Selecteer weer te geven bedrijven
STR_LINKGRAPH_LEGEND_SELECT_COMPANIES :{BLACK}Weer te geven bedrijven selecteren
STR_LINKGRAPH_LEGEND_COMPANY_TOOLTIP :{BLACK}{STRING}{}{COMPANY}
# Linkgraph legend window and linkgraph legend in smallmap
@@ -2479,7 +2479,7 @@ STR_STATION_BUILD_AIRPORT_LAYOUT_NAME :{BLACK}Layout {
STR_AIRPORT_SMALL :Klein
STR_AIRPORT_CITY :Stad
STR_AIRPORT_METRO :Grootstedelijk
STR_AIRPORT_INTERNATIONAL :Internationaal vliegveld
STR_AIRPORT_INTERNATIONAL :Internationaal
STR_AIRPORT_COMMUTER :Forens
STR_AIRPORT_INTERCONTINENTAL :Intercontinentaal
STR_AIRPORT_HELIPORT :Heliplatform
@@ -2525,8 +2525,8 @@ STR_TERRAFORM_TOOLTIP_DEFINE_DESERT_AREA :{BLACK}Definiee
STR_TERRAFORM_TOOLTIP_INCREASE_SIZE_OF_LAND_AREA :{BLACK}Vergroot de landoppervlakte om te verhogen/verlagen
STR_TERRAFORM_TOOLTIP_DECREASE_SIZE_OF_LAND_AREA :{BLACK}Verklein de landoppervlakte om te verhogen/verlagen
STR_TERRAFORM_TOOLTIP_GENERATE_RANDOM_LAND :{BLACK}Genereer willekeurig land
STR_TERRAFORM_SE_NEW_WORLD :{BLACK}Maak nieuw scenario aan
STR_TERRAFORM_RESET_LANDSCAPE :{BLACK}Verwijder landschap
STR_TERRAFORM_SE_NEW_WORLD :{BLACK}Nieuw scenario maken
STR_TERRAFORM_RESET_LANDSCAPE :{BLACK}Landschap verwijderen
STR_TERRAFORM_RESET_LANDSCAPE_TOOLTIP :{BLACK}Verwijder alle eigendommen van een bedrijf van de kaart
STR_QUERY_RESET_LANDSCAPE_CAPTION :{WHITE}Landschap terugstellen
@@ -2537,15 +2537,15 @@ STR_FOUND_TOWN_CAPTION :{WHITE}Stadsont
STR_FOUND_TOWN_NEW_TOWN_BUTTON :{BLACK}Nieuwe stad
STR_FOUND_TOWN_NEW_TOWN_TOOLTIP :{BLACK}Nieuwe stad stichten. Shift+klik geeft alleen de verwachte kosten.
STR_FOUND_TOWN_RANDOM_TOWN_BUTTON :{BLACK}Willekeurige stad
STR_FOUND_TOWN_RANDOM_TOWN_TOOLTIP :{BLACK}Sticht stad op willekeurige locatie
STR_FOUND_TOWN_RANDOM_TOWN_TOOLTIP :{BLACK}Hiermee sticht je een stad op een willekeurige locatie
STR_FOUND_TOWN_MANY_RANDOM_TOWNS :{BLACK}Veel willekeurige steden
STR_FOUND_TOWN_RANDOM_TOWNS_TOOLTIP :{BLACK}Bedek de kaart met willekeurig geplaatste steden
STR_FOUND_TOWN_RANDOM_TOWNS_TOOLTIP :{BLACK}Verspreid willekeurig geplaatste steden over de kaart
STR_FOUND_TOWN_NAME_TITLE :{YELLOW}Plaatsnaam:
STR_FOUND_TOWN_NAME_EDITOR_TITLE :{BLACK}Geef plaatsnaam op
STR_FOUND_TOWN_NAME_EDITOR_HELP :{BLACK}Klik om plaatsnaam in te geven
STR_FOUND_TOWN_NAME_EDITOR_TITLE :{BLACK}Plaatsnaam invoeren
STR_FOUND_TOWN_NAME_EDITOR_HELP :{BLACK}Klik om plaatsnaam in te voeren
STR_FOUND_TOWN_NAME_RANDOM_BUTTON :{BLACK}Willekeurige naam
STR_FOUND_TOWN_NAME_RANDOM_TOOLTIP :{BLACK}Genereer willekeurige nieuwe naam
STR_FOUND_TOWN_NAME_RANDOM_TOOLTIP :{BLACK}Genereer een willekeurige nieuwe naam
STR_FOUND_TOWN_INITIAL_SIZE_TITLE :{YELLOW}Stadsgrootte:
STR_FOUND_TOWN_INITIAL_SIZE_SMALL_BUTTON :{BLACK}Klein
@@ -2662,7 +2662,7 @@ STR_LAI_TOWN_INDUSTRY_DESCRIPTION_UNDER_CONSTRUCTION :{STRING} (in aa
STR_LAI_TREE_NAME_TREES :Bomen
STR_LAI_TREE_NAME_RAINFOREST :Regenwoud
STR_LAI_TREE_NAME_CACTUS_PLANTS :Cactusplanten
STR_LAI_TREE_NAME_CACTUS_PLANTS :Cactussen
STR_LAI_STATION_DESCRIPTION_RAILROAD_STATION :Treinstation
STR_LAI_STATION_DESCRIPTION_AIRCRAFT_HANGAR :Hangar
@@ -2715,7 +2715,7 @@ STR_ABOUT_VERSION :{BLACK}OpenTTD-
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2019 Het OpenTTD-team
# Framerate display window
STR_FRAMERATE_CAPTION :{WHITE}Frame rate
STR_FRAMERATE_CAPTION :{WHITE}Framesnelheid
STR_FRAMERATE_CAPTION_SMALL :{STRING}{WHITE} ({DECIMAL}x)
STR_FRAMERATE_RATE_GAMELOOP :{BLACK}Simulatiesnelheid: {STRING}
STR_FRAMERATE_RATE_GAMELOOP_TOOLTIP :{BLACK}Aantal gesimuleerde speltikken per seconde.
@@ -2724,7 +2724,7 @@ STR_FRAMERATE_RATE_BLITTER_TOOLTIP :{BLACK}Aantal v
STR_FRAMERATE_SPEED_FACTOR :{BLACK}Huidige spelsnelheidsfactor: {DECIMAL}x
STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK}Hoe snel het spel momenteel draait, vergeleken met de verwachte snelheid bij een normale simulatiesnelheid.
STR_FRAMERATE_CURRENT :{WHITE}Huidig
STR_FRAMERATE_AVERAGE :{WHITE}Gemiddelde
STR_FRAMERATE_AVERAGE :{WHITE}Gemiddeld
STR_FRAMERATE_DATA_POINTS :{BLACK}Gegevens gebaseerd op {COMMA} metingen
STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL} ms
STR_FRAMERATE_MS_WARN :{YELLOW}{DECIMAL} ms
@@ -2771,13 +2771,13 @@ STR_FRAMETIME_CAPTION_AI :AI {NUM} {STRIN
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Spel Opslaan
STR_SAVELOAD_LOAD_CAPTION :{WHITE}Spel Laden
STR_SAVELOAD_SAVE_SCENARIO :{WHITE}Scenario Opslaan
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Spel opslaan
STR_SAVELOAD_LOAD_CAPTION :{WHITE}Spel laden
STR_SAVELOAD_SAVE_SCENARIO :{WHITE}Scenario opslaan
STR_SAVELOAD_LOAD_SCENARIO :{WHITE}Scenario laden
STR_SAVELOAD_LOAD_HEIGHTMAP :{WHITE}Hoogtekaart laden
STR_SAVELOAD_SAVE_HEIGHTMAP :{WHITE}Hoogtekaart Opslaan
STR_SAVELOAD_HOME_BUTTON :{BLACK}Klik hier om naar de standaard bewaar-/laadmap te gaan
STR_SAVELOAD_SAVE_HEIGHTMAP :{WHITE}Hoogtekaart opslaan
STR_SAVELOAD_HOME_BUTTON :{BLACK}Klik hier om naar de standaard-opslagmap te gaan
STR_SAVELOAD_BYTES_FREE :{BLACK}{BYTES} vrij
STR_SAVELOAD_LIST_TOOLTIP :{BLACK}Lijst van schijven, mappen en opgeslagen spellen
STR_SAVELOAD_EDITBOX_TOOLTIP :{BLACK}Huidige gekozen naam voor opgeslagen spel
@@ -2785,10 +2785,10 @@ STR_SAVELOAD_DELETE_BUTTON :{BLACK}Verwijde
STR_SAVELOAD_DELETE_TOOLTIP :{BLACK}Verwijder het momenteel geselecteerde opgeslagen spel
STR_SAVELOAD_SAVE_BUTTON :{BLACK}Opslaan
STR_SAVELOAD_SAVE_TOOLTIP :{BLACK}Het huidige spel opslaan onder de gekozen naam
STR_SAVELOAD_LOAD_BUTTON :{BLACK}Laad
STR_SAVELOAD_LOAD_BUTTON :{BLACK}Laden
STR_SAVELOAD_LOAD_TOOLTIP :{BLACK}Laad het geselecteerde spel
STR_SAVELOAD_LOAD_HEIGHTMAP_TOOLTIP :{BLACK}Laad de geselecteerde hoogtekaart
STR_SAVELOAD_DETAIL_CAPTION :{BLACK}Spel details
STR_SAVELOAD_DETAIL_CAPTION :{BLACK}Speldetails
STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}Geen informatie beschikbaar
STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING}
STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}NewGRF: {WHITE}{STRING}
@@ -2827,7 +2827,7 @@ STR_MAPGEN_NORTHWEST :{BLACK}Noordwes
STR_MAPGEN_NORTHEAST :{BLACK}Noordoost
STR_MAPGEN_SOUTHEAST :{BLACK}Zuidoost
STR_MAPGEN_SOUTHWEST :{BLACK}Zuidwest
STR_MAPGEN_BORDER_FREEFORM :{BLACK}Vrij vormen
STR_MAPGEN_BORDER_FREEFORM :{BLACK}Vrije vorm
STR_MAPGEN_BORDER_WATER :{BLACK}Water
STR_MAPGEN_BORDER_RANDOM :{BLACK}Willekeurig
STR_MAPGEN_BORDER_RANDOMIZE :{BLACK}Willekeurig
@@ -2839,7 +2839,7 @@ STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Grootte:
STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM}
STR_MAPGEN_MAX_HEIGHTLEVEL_QUERY_CAPT :{WHITE}Maximale kaarthoogte wijzigen
STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Verander hoogte van sneeuwgrens
STR_MAPGEN_SNOW_LINE_QUERY_CAPT :{WHITE}Hoogte van sneeuwgrens wijzigen
STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Verander startjaar
# SE Map generation
@@ -2903,14 +2903,14 @@ STR_NEWGRF_SETTINGS_TOGGLE_PALETTE :{BLACK}Palet om
STR_NEWGRF_SETTINGS_TOGGLE_PALETTE_TOOLTIP :{BLACK}Verander het palet van het geselecteerde NewGRF-bestand.{}Gebruik deze mogelijkheid als de afbeeldingen van dit NewGRF-bestand er paars uit zien in het spel
STR_NEWGRF_SETTINGS_APPLY_CHANGES :{BLACK}Wijzigingen doorvoeren
STR_NEWGRF_SETTINGS_FIND_MISSING_CONTENT_BUTTON :{BLACK}Zoek ontbrekende content online
STR_NEWGRF_SETTINGS_FIND_MISSING_CONTENT_TOOLTIP :{BLACK}Kijk of de ontbrekende content online te vinden is
STR_NEWGRF_SETTINGS_FIND_MISSING_CONTENT_BUTTON :{BLACK}Online naar ontbrekende inhoud zoeken
STR_NEWGRF_SETTINGS_FIND_MISSING_CONTENT_TOOLTIP :{BLACK}Kijk of de ontbrekende inhoud online te vinden is
STR_NEWGRF_SETTINGS_FILENAME :{BLACK}Bestandsnaam: {SILVER}{STRING}
STR_NEWGRF_SETTINGS_GRF_ID :{BLACK}GRF-ID: {SILVER}{STRING}
STR_NEWGRF_SETTINGS_VERSION :{BLACK}Versie: {SILVER}{NUM}
STR_NEWGRF_SETTINGS_MIN_VERSION :{BLACK}Laagste compatibele versie: {SILVER}{NUM}
STR_NEWGRF_SETTINGS_MD5SUM :{BLACK}MD5sum: {SILVER}{STRING}
STR_NEWGRF_SETTINGS_MD5SUM :{BLACK}MD5-controlesom: {SILVER}{STRING}
STR_NEWGRF_SETTINGS_PALETTE :{BLACK}Palet: {SILVER}{STRING}
STR_NEWGRF_SETTINGS_PALETTE_DEFAULT :Standaard (D)
STR_NEWGRF_SETTINGS_PALETTE_DEFAULT_32BPP :Standaard (D) / 32 bpp
@@ -2928,31 +2928,31 @@ STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}Niet compa
STR_SAVE_PRESET_CAPTION :{WHITE}Voorkeursinstelling opslaan
STR_SAVE_PRESET_LIST_TOOLTIP :{BLACK}Lijst met beschikbare voorkeursinstellingen, Selecteer om deze te kopiëren naar de opslagnaam hieronder.
STR_SAVE_PRESET_TITLE :{BLACK}Voer een naam in voor de voorkeursinstelling
STR_SAVE_PRESET_EDITBOX_TOOLTIP :{BLACK}Huidig gekozen naam voor de preset om op te slaan
STR_SAVE_PRESET_EDITBOX_TOOLTIP :{BLACK}Huidige gekozen naam voor de voorkeursinstelling om op te slaan
STR_SAVE_PRESET_CANCEL :{BLACK}Annuleren
STR_SAVE_PRESET_CANCEL_TOOLTIP :{BLACK}Voorkeursinstelling niet wijzigen
STR_SAVE_PRESET_SAVE :{BLACK}Opslaan
STR_SAVE_PRESET_SAVE_TOOLTIP :{BLACK}Sla de huidige preset op naar de huidig gekozen naam
STR_SAVE_PRESET_SAVE_TOOLTIP :{BLACK}Sla de huidige voorkeursinstelling op onder de huidige gekozen naam
# NewGRF parameters window
STR_NEWGRF_PARAMETERS_CAPTION :{WHITE}NewGRF-parameters wijzigen
STR_NEWGRF_PARAMETERS_CLOSE :{BLACK}Sluiten
STR_NEWGRF_PARAMETERS_RESET :{BLACK}Reset
STR_NEWGRF_PARAMETERS_RESET :{BLACK}Terugstellen
STR_NEWGRF_PARAMETERS_RESET_TOOLTIP :{BLACK}Zet alle parameters naar de standaardwaarde
STR_NEWGRF_PARAMETERS_DEFAULT_NAME :Parameter {NUM}
STR_NEWGRF_PARAMETERS_SETTING :{STRING}: {ORANGE}{STRING}
STR_NEWGRF_PARAMETERS_NUM_PARAM :{LTBLUE}Aantal parameters: {ORANGE}{NUM}
# NewGRF inspect window
STR_NEWGRF_INSPECT_CAPTION :{WHITE}Inspecteer - {STRING}
STR_NEWGRF_INSPECT_CAPTION :{WHITE}Inspecteren - {STRING}
STR_NEWGRF_INSPECT_PARENT_BUTTON :{BLACK}Huidig
STR_NEWGRF_INSPECT_PARENT_TOOLTIP :{BLACK}Inspecteer het object van het huidige hoofd bestand
STR_NEWGRF_INSPECT_PARENT_TOOLTIP :{BLACK}Inspecteer het object van het bovenliggende element
STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT :{STRING} bij {HEX}
STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_OBJECT :Object
STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_RAIL_TYPE :Spoortype
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF variable 60+x parameter (hexadecimaal)
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Parameter 60+x voor NewGRF-variabele (hexadecimaal)
# Sprite aligner window
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Sprite uitlijnen {COMMA} ({STRING})
@@ -2980,7 +2980,7 @@ STR_NEWGRF_ERROR_MSG_ERROR :{RED}Fout: {SIL
STR_NEWGRF_ERROR_MSG_FATAL :{RED}Fatale fout: {SILVER}{STRING}
STR_NEWGRF_ERROR_FATAL_POPUP :{WHITE}Een fatale NewGRF-fout is ontstaan:{}{STRING}
STR_NEWGRF_ERROR_VERSION_NUMBER :{1:STRING} werkt niet met de TTDPatch-versie die is opgegeven door OpenTTD
STR_NEWGRF_ERROR_DOS_OR_WINDOWS :{1:STRING} is voor de {STRING} versie van TTD
STR_NEWGRF_ERROR_DOS_OR_WINDOWS :{1:STRING} is voor versie {STRING} van TTD
STR_NEWGRF_ERROR_UNSET_SWITCH :{1:STRING} is ontwikkeld voor {STRING}
STR_NEWGRF_ERROR_INVALID_PARAMETER :Ongeldige parameter voor {1:STRING}: parameter {STRING} ({NUM})
STR_NEWGRF_ERROR_LOAD_BEFORE :{1:STRING} moet geladen zijn voor {STRING}
@@ -3012,7 +3012,7 @@ STR_NEWGRF_TOO_MANY_NEWGRFS :{WHITE}Kan best
STR_NEWGRF_COMPATIBLE_LOAD_WARNING :{WHITE}Compatibele GRF(s) geladen voor ontbrekende bestanden
STR_NEWGRF_DISABLED_WARNING :{WHITE}Missend(e) GRF-bestand(en) zijn uitgeschakeld
STR_NEWGRF_UNPAUSE_WARNING_TITLE :{YELLOW}Ontbrekend(e) GRF-bestand(en)
STR_NEWGRF_UNPAUSE_WARNING :{WHITE}Het spel vervolgen kan OpenTTD laten vastlopen. Rapporteer geen bugs als het spel vastloopt.{}Weet je zeker dat je het spel wilt vervolgen?
STR_NEWGRF_UNPAUSE_WARNING :{WHITE}Het spel vervolgen kan OpenTTD laten vastlopen. Rapporteer geen fouten als het spel nogmaals vastloopt.{}Weet je zeker dat je het spel wilt vervolgen?
# NewGRF status
STR_NEWGRF_LIST_NONE :Geen
@@ -3044,7 +3044,7 @@ STR_INVALID_VEHICLE :<ongeldig voert
# NewGRF scanning window
STR_NEWGRF_SCAN_CAPTION :{WHITE}Scannen van NewGRFs
STR_NEWGRF_SCAN_MESSAGE :{BLACK}Scannen van NewGRFs. Afhankelijk van het aantal, kan dit even duren...
STR_NEWGRF_SCAN_MESSAGE :{BLACK}NewGRF's worden ingelezen. Afhankelijk van het aantal kan dit even duren...
STR_NEWGRF_SCAN_STATUS :{BLACK}{NUM} NewGRF{P "" s} gescand van een geschatte {NUM} NewGRF{P "" s}
STR_NEWGRF_SCAN_ARCHIVES :Zoeken naar archieven
@@ -3101,21 +3101,21 @@ STR_LOCAL_AUTHORITY_COMPANY_RATINGS :{BLACK}Reputati
STR_LOCAL_AUTHORITY_COMPANY_RATING :{YELLOW}{COMPANY} {COMPANY_NUM}: {ORANGE}{STRING}
STR_LOCAL_AUTHORITY_ACTIONS_TITLE :{BLACK}Beschikbare acties:
STR_LOCAL_AUTHORITY_ACTIONS_TOOLTIP :{BLACK}Lijst met dingen die mogelijk zijn in deze gemeente - klik op een onderdeel voor meer details
STR_LOCAL_AUTHORITY_DO_IT_BUTTON :{BLACK}Doe het
STR_LOCAL_AUTHORITY_DO_IT_BUTTON :{BLACK}Doen
STR_LOCAL_AUTHORITY_DO_IT_TOOLTIP :{BLACK}Voer de actie uit die in de bovenstaande lijst is geselecteerd
STR_LOCAL_AUTHORITY_ACTION_SMALL_ADVERTISING_CAMPAIGN :Kleine reclamecampagne
STR_LOCAL_AUTHORITY_ACTION_MEDIUM_ADVERTISING_CAMPAIGN :Middelgrote reclamecampagne
STR_LOCAL_AUTHORITY_ACTION_LARGE_ADVERTISING_CAMPAIGN :Grote reclamecampagne
STR_LOCAL_AUTHORITY_ACTION_ROAD_RECONSTRUCTION :Betaal wegreparatie
STR_LOCAL_AUTHORITY_ACTION_ROAD_RECONSTRUCTION :Wegreconstructie financieren
STR_LOCAL_AUTHORITY_ACTION_STATUE_OF_COMPANY :Standbeeld van directeur bouwen
STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Financier nieuwe gebouwen
STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Koop exclusieve transportrechten
STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Nieuwe gebouwen financieren
STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Exclusieve transportrechten kopen
STR_LOCAL_AUTHORITY_ACTION_BRIBE :Gemeentebestuur omkopen
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Begin een kleine reclamecampagne, om meer passagiers en vracht naar jouw transportdiensten te trekken.{}Kosten: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Begin een middelgrote advertentiecampagne, om meer passagiers en vracht naar jouw transportdiensten te trekken.{}Kosten: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Begin een grote advertentiecampagne, om meer passagiers en vracht naar jouw transportdiensten te trekken.{}Kosten: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Begin een kleine reclamecampagne om meer passagiers en vracht naar jouw transportdiensten te trekken.{}Kosten: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Begin een middelgrote reclamecampagne om meer passagiers en vracht naar jouw transportdiensten te trekken.{}Kosten: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Begin een grote reclamecampagne om meer passagiers en vracht naar jouw transportdiensten te trekken.{}Kosten: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Financier een herstelling van het wegennetwerk. Veroorzaakt tot 6 maanden lang een aanzienlijke verstoring van het wegverkeer.{}Kosten: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Een standbeeld bouwen ter ere van jouw bedrijf.{}Kosten: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}De bouw van nieuwe commerciële gebouwen in de stad financieren.{}Kosten: {CURRENCY_LONG}
@@ -3284,7 +3284,7 @@ STR_FINANCES_SECTION_TRAIN_INCOME :{GOLD}Treininko
STR_FINANCES_SECTION_ROAD_VEHICLE_INCOME :{GOLD}Wegvoertuiginkomsten
STR_FINANCES_SECTION_AIRCRAFT_INCOME :{GOLD}Vliegtuiginkomsten
STR_FINANCES_SECTION_SHIP_INCOME :{GOLD}Schipinkomsten
STR_FINANCES_SECTION_LOAN_INTEREST :{GOLD} De rente van de lening
STR_FINANCES_SECTION_LOAN_INTEREST :{GOLD} Rente van lening
STR_FINANCES_SECTION_OTHER :{GOLD}Overig
STR_FINANCES_NEGATIVE_INCOME :{BLACK}-{CURRENCY_LONG}
STR_FINANCES_POSITIVE_INCOME :{BLACK}+{CURRENCY_LONG}
@@ -3293,9 +3293,9 @@ STR_FINANCES_BANK_BALANCE_TITLE :{WHITE}Banksald
STR_FINANCES_LOAN_TITLE :{WHITE}Lening
STR_FINANCES_MAX_LOAN :{WHITE}Maximale lening: {BLACK}{CURRENCY_LONG}
STR_FINANCES_TOTAL_CURRENCY :{BLACK}{CURRENCY_LONG}
STR_FINANCES_BORROW_BUTTON :{BLACK}Leen {CURRENCY_LONG}
STR_FINANCES_BORROW_BUTTON :{BLACK}{CURRENCY_LONG} lenen
STR_FINANCES_BORROW_TOOLTIP :{BLACK}Vergroot lening. Ctrl+klik om zoveel als mogelijk te lenen
STR_FINANCES_REPAY_BUTTON :{BLACK}Betaal {CURRENCY_LONG} terug
STR_FINANCES_REPAY_BUTTON :{BLACK}{CURRENCY_LONG} terugbetalen
STR_FINANCES_REPAY_TOOLTIP :{BLACK}Betaal deel van lening terug. Ctrl+klik om zoveel als mogelijk terug te betalen
STR_FINANCES_INFRASTRUCTURE_BUTTON :{BLACK}Infrastructuur
@@ -3467,7 +3467,7 @@ STR_BUY_VEHICLE_SHIP_CAPTION :Nieuwe schepen
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Nieuwe vliegtuigen
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Kosten: {GOLD}{CURRENCY_LONG}{BLACK} Gewicht: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_SPEED_POWER :{BLACK}Snelheid: {GOLD}{VELOCITY}{BLACK} Kracht: {GOLD}{POWER}
STR_PURCHASE_INFO_SPEED_POWER :{BLACK}Snelheid: {GOLD}{VELOCITY}{BLACK} Vermogen: {GOLD}{POWER}
STR_PURCHASE_INFO_SPEED :{BLACK}Snelheid: {GOLD}{VELOCITY}
STR_PURCHASE_INFO_SPEED_OCEAN :{BLACK}Snelheid op oceaan: {GOLD}{VELOCITY}
STR_PURCHASE_INFO_SPEED_CANAL :{BLACK}Snelheid op kanaal/rivier: {GOLD}{VELOCITY}
@@ -3487,7 +3487,7 @@ STR_PURCHASE_INFO_NONE :Geen
STR_PURCHASE_INFO_ALL_BUT :Alles behalve {CARGO_LIST}
STR_PURCHASE_INFO_MAX_TE :{BLACK}Max. trekkracht: {GOLD}{FORCE}
STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Bereik: {GOLD}{COMMA} tegels
STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Vliegtuig type: {GOLD}{STRING}
STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Vliegtuigtype: {GOLD}{STRING}
STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Spoorvoertuigkeuzelijst. Klik op een spoorvoertuig voor informatie. Ctrl+klik voor spoorvoertuigtype weergeven-verbergen.
STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Wegvoertuigkeuzelijst. Klik op wegvoertuig voor informatie. Ctrl+klik voor voertuigtype weergeven-verbergen.
@@ -3551,7 +3551,7 @@ STR_DEPOT_SHIP_LIST_TOOLTIP :{BLACK}Schepen
STR_DEPOT_AIRCRAFT_LIST_TOOLTIP :{BLACK}Vliegtuigen - rechts-klik op een vliegtuig voor informatie
STR_DEPOT_TRAIN_SELL_TOOLTIP :{BLACK}Sleep trein hierheen om te verkopen
STR_DEPOT_ROAD_VEHICLE_SELL_TOOLTIP :{BLACK}Sleep wegvoertuig hier om het te verkopen
STR_DEPOT_ROAD_VEHICLE_SELL_TOOLTIP :{BLACK}Sleep wegvoertuig hierheen om het te verkopen
STR_DEPOT_SHIP_SELL_TOOLTIP :{BLACK}Sleep schip hier om het te verkopen
STR_DEPOT_AIRCRAFT_SELL_TOOLTIP :{BLACK}Sleep vliegtuig hier om het te verkopen
@@ -3574,13 +3574,13 @@ STR_DEPOT_AIRCRAFT_NEW_VEHICLES_BUTTON :{BLACK}Nieuwe v
STR_DEPOT_TRAIN_NEW_VEHICLES_TOOLTIP :{BLACK}Koop nieuwe trein
STR_DEPOT_ROAD_VEHICLE_NEW_VEHICLES_TOOLTIP :{BLACK}Koop nieuw wegvoertuig
STR_DEPOT_SHIP_NEW_VEHICLES_TOOLTIP :{BLACK}Koop nieuw schip
STR_DEPOT_SHIP_NEW_VEHICLES_TOOLTIP :{BLACK}Koop een nieuw schip
STR_DEPOT_AIRCRAFT_NEW_VEHICLES_TOOLTIP :{BLACK}Koop een nieuw vliegtuig
STR_DEPOT_CLONE_TRAIN :{BLACK}Kloon trein
STR_DEPOT_CLONE_ROAD_VEHICLE :{BLACK}Kloon wegvoertuig
STR_DEPOT_CLONE_SHIP :{BLACK}Kloon schip
STR_DEPOT_CLONE_AIRCRAFT :{BLACK}Kloon vliegtuig
STR_DEPOT_CLONE_TRAIN :{BLACK}Trein klonen
STR_DEPOT_CLONE_ROAD_VEHICLE :{BLACK}Wegvoertuig klonen
STR_DEPOT_CLONE_SHIP :{BLACK}Schip klonen
STR_DEPOT_CLONE_AIRCRAFT :{BLACK}Vliegtuig klonen
STR_DEPOT_CLONE_TRAIN_DEPOT_INFO :{BLACK}Hiermee koop je een kopie van een trein, inclusief wagons. Klik op deze knop en dan op een trein binnen of buiten het depot. Ctrl+klik deelt de orders. Shift+klik geeft de verwachte kosten zonder te kopen.
STR_DEPOT_CLONE_ROAD_VEHICLE_DEPOT_INFO :{BLACK}Hiermee koop je een kopie van een wegvoertuig. Klik op deze knop en dan op een wegvoertuig binnen of buiten de garage. Ctrl+klik deelt de orders. Shift+klik geeft de verwachte kosten zonder te kopen.
@@ -3621,11 +3621,11 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :zweeflocomotief
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Kosten: {CURRENCY_LONG} Gewicht: {WEIGHT_SHORT}{}Snelheid: {VELOCITY} Kracht: {POWER}{}Lopende kosten: {CURRENCY_LONG}/jr{}Capaciteit: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Kosten: {CURRENCY_LONG} Gewicht: {WEIGHT_SHORT}{}Snelheid: {VELOCITY} Kracht: {POWER} Max. T.E.: {6:FORCE}{}Lopende kosten: {4:CURRENCY_LONG}/yr{}Capaciteit: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Snelheid: {VELOCITY}{}Capaciteit: {CARGO_LONG}{}Gebruikskosten: {CURRENCY_LONG}/jaar
STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Snelheid: {VELOCITY}{}Vliegtuig type: {STRING}{}Capaciteit: {CARGO_LONG}, {CARGO_LONG}{}Gebruikskosten: {CURRENCY_LONG}/jaar
STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Snelheid: {VELOCITY}{}Vliegtuig type: {STRING}{}Capaciteit: {CARGO_LONG}{}Gebruikskosten: {CURRENCY_LONG}/jaar
STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Snelheid: {VELOCITY}{}Vliegtuig type: {STRING} Bereik: {COMMA} tiles{}Capaciteit: {CARGO_LONG}, {CARGO_LONG}{}Gebruikskosten: {CURRENCY_LONG}/jaar
STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max. Snelheid: {VELOCITY}{}Vliegtuig type: {STRING} Bereik: {COMMA} tiles{}Capaciteit: {CARGO_LONG}{}Gebruikskosten: {CURRENCY_LONG}/jaar
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max.snelheid: {VELOCITY}{}Capaciteit: {CARGO_LONG}{}Gebruikskosten: {CURRENCY_LONG}/jaar
STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max.snelheid: {VELOCITY}{}Vliegtuigtype: {STRING}{}Capaciteit: {CARGO_LONG}, {CARGO_LONG}{}Gebruikskosten: {CURRENCY_LONG}/jaar
STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max.snelheid: {VELOCITY}{}Vliegtuigtype: {STRING}{}Capaciteit: {CARGO_LONG}{}Gebruikskosten: {CURRENCY_LONG}/jaar
STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max.snelheid: {VELOCITY}{}Vliegtuigtype: {STRING} Bereik: {COMMA} tiles{}Capaciteit: {CARGO_LONG}, {CARGO_LONG}{}Gebruikskosten: {CURRENCY_LONG}/jaar
STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Kosten: {CURRENCY_LONG} Max.snelheid: {VELOCITY}{}Vliegtuigtype: {STRING} Bereik: {COMMA} tiles{}Capaciteit: {CARGO_LONG}{}Gebruikskosten: {CURRENCY_LONG}/jaar
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Vervang {STRING} - {STRING}
@@ -3747,11 +3747,11 @@ STR_VEHICLE_INFO_AGE_RUNNING_COST_YR :{BLACK}Leeftijd
STR_VEHICLE_INFO_AGE :{COMMA} ja{P ar ren} ({COMMA})
STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} ja{P ar ren} ({COMMA})
STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Max. snelheid: {LTBLUE}{VELOCITY}
STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Max. snelheid: {LTBLUE}{VELOCITY} {BLACK}Vliegtuigtype: {LTBLUE}{STRING}
STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Max. snelheid: {LTBLUE}{VELOCITY} {BLACK}Vliegtuig type: {LTBLUE}{STRING} {BLACK}Bereik: {LTBLUE}{COMMA} tegels
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Gewicht: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kracht: {LTBLUE}{POWER}{BLACK} Max. snelheid: {LTBLUE}{VELOCITY}
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Gewicht: {LTBLUE}{WEIGHT_SHORT} {BLACK}Kracht: {LTBLUE}{POWER}{BLACK} Max. snelheid: {LTBLUE}{VELOCITY} {BLACK}Max. T.K.: {LTBLUE}{FORCE}
STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Max.snelheid: {LTBLUE}{VELOCITY}
STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Max.snelheid: {LTBLUE}{VELOCITY} {BLACK}Vliegtuigtype: {LTBLUE}{STRING}
STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Max.snelheid: {LTBLUE}{VELOCITY} {BLACK}Vliegtuigtype: {LTBLUE}{STRING} {BLACK}Bereik: {LTBLUE}{COMMA} tegels
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Gewicht: {LTBLUE}{WEIGHT_SHORT} {BLACK}Vermogen: {LTBLUE}{POWER}{BLACK} Max.snelheid: {LTBLUE}{VELOCITY}
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Gewicht: {LTBLUE}{WEIGHT_SHORT} {BLACK}Vermogen: {LTBLUE}{POWER}{BLACK} Max.snelheid: {LTBLUE}{VELOCITY} {BLACK}Max. tr.kr..: {LTBLUE}{FORCE}
STR_VEHICLE_INFO_PROFIT_THIS_YEAR_LAST_YEAR :{BLACK}Winst dit jaar: {LTBLUE}{CURRENCY_LONG} (vorig jaar: {CURRENCY_LONG})
STR_VEHICLE_INFO_RELIABILITY_BREAKDOWNS :{BLACK}Betrouwbaarheid: {LTBLUE}{COMMA}% {BLACK}Aantal keren motorpech sinds laatste onderhoud: {LTBLUE}{COMMA}
@@ -3831,7 +3831,7 @@ STR_ORDERS_CAPTION :{WHITE}{VEHICLE
STR_ORDERS_TIMETABLE_VIEW :{BLACK}Dienstregeling
STR_ORDERS_TIMETABLE_VIEW_TOOLTIP :{BLACK}Naar dienstregeling schakelen
STR_ORDERS_LIST_TOOLTIP :{BLACK}Orderlijst - klik op een order om deze te selecteren. Ctrl+klik scrollt naar het station
STR_ORDERS_LIST_TOOLTIP :{BLACK}Orderlijst - klik op een order om deze te selecteren. Met Ctrl+klik ga je naar de bestemming van de order.
STR_ORDER_INDEX :{COMMA}:{NBSP}
STR_ORDER_TEXT :{STRING} {STRING} {STRING}
@@ -3864,19 +3864,19 @@ STR_ORDER_REFIT :{BLACK}Ombouwen
STR_ORDER_REFIT_TOOLTIP :{BLACK}Kies naar welk type vracht moet worden omgebouwd in deze order. Ctrl+klik om ombouwopdracht te verwijderen
STR_ORDER_REFIT_AUTO :{BLACK}Ombouwen
STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}Kies vrachttype om naar om te bouwen in deze order. Ctrl+Klik om ombouwopdracht te verwijderen. Ombouwen wordt alleen uitgevoerd als het voertuig dit toelaat
STR_ORDER_DROP_REFIT_AUTO :Voorgedefinieerde vracht
STR_ORDER_DROP_REFIT_AUTO :Vaste vracht
STR_ORDER_DROP_REFIT_AUTO_ANY :Beschikbare vracht
STR_ORDER_SERVICE :{BLACK}Onderhoud
STR_ORDER_DROP_GO_ALWAYS_DEPOT :Ga altijd
STR_ORDER_DROP_SERVICE_DEPOT :Onderhoud wanneer nodig
STR_ORDER_DROP_HALT_DEPOT :Stop
STR_ORDER_DROP_GO_ALWAYS_DEPOT :Altijd gaan
STR_ORDER_DROP_SERVICE_DEPOT :Onderhouden wanneer nodig
STR_ORDER_DROP_HALT_DEPOT :Stoppen
STR_ORDER_SERVICE_TOOLTIP :{BLACK}Deze order overslaan, tenzij onderhoud nodig is
STR_ORDER_CONDITIONAL_VARIABLE_TOOLTIP :{BLACK}Voertuiggegevens voor basisspringen wanneer
# Conditional order variables, must follow order of OrderConditionVariable enum
STR_ORDER_CONDITIONAL_LOAD_PERCENTAGE :Laad percentage
STR_ORDER_CONDITIONAL_LOAD_PERCENTAGE :Laadpercentage
STR_ORDER_CONDITIONAL_RELIABILITY :Betrouwbaarheid
STR_ORDER_CONDITIONAL_MAX_SPEED :Maximumsnelheid
STR_ORDER_CONDITIONAL_AGE :Leeftijd (jaren)
@@ -3885,7 +3885,7 @@ STR_ORDER_CONDITIONAL_UNCONDITIONALLY :Altijd
STR_ORDER_CONDITIONAL_REMAINING_LIFETIME :Resterende levensverwachting (jaren)
STR_ORDER_CONDITIONAL_MAX_RELIABILITY :Maximale betrouwbaarheid
STR_ORDER_CONDITIONAL_COMPARATOR_TOOLTIP :{BLACK}Op welke manier vergelijken van de voertuiginfo bij de opgegeven waarde
STR_ORDER_CONDITIONAL_COMPARATOR_TOOLTIP :{BLACK}Bepaalt op welke manier de voertuiggegevens worden vergeleken met de opgegeven waarde
STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS :is gelijk aan
STR_ORDER_CONDITIONAL_COMPARATOR_NOT_EQUALS :is niet gelijk aan
STR_ORDER_CONDITIONAL_COMPARATOR_LESS_THAN :is minder dan
@@ -3895,13 +3895,13 @@ STR_ORDER_CONDITIONAL_COMPARATOR_MORE_EQUALS :is meer of geli
STR_ORDER_CONDITIONAL_COMPARATOR_IS_TRUE :is waar
STR_ORDER_CONDITIONAL_COMPARATOR_IS_FALSE :is niet waar
STR_ORDER_CONDITIONAL_VALUE_TOOLTIP :{BLACK}De waarde waartegen het voertuig wordt vergeleken
STR_ORDER_CONDITIONAL_VALUE_TOOLTIP :{BLACK}De waarde waarmee de voertuiggegevens worden vergeleken
STR_ORDER_CONDITIONAL_VALUE_CAPT :{WHITE}Geef waarde voor de vergelijking
STR_ORDERS_SKIP_BUTTON :{BLACK}Overslaan
STR_ORDERS_SKIP_TOOLTIP :{BLACK}Huidige order overslaan en de volgende uitvoeren. Ctrl+klik begint direct met geselecteerde order.
STR_ORDERS_DELETE_BUTTON :{BLACK}Verwijder
STR_ORDERS_DELETE_BUTTON :{BLACK}Verwijderen
STR_ORDERS_DELETE_TOOLTIP :{BLACK}Verwijder de geselecteerde order
STR_ORDERS_DELETE_ALL_TOOLTIP :{BLACK}Verwijder alle orders
STR_ORDERS_STOP_SHARING_BUTTON :{BLACK}Stop met delen
@@ -3921,7 +3921,7 @@ STR_ORDER_GO_TO_WAYPOINT :Ga via {WAYPOIN
STR_ORDER_GO_NON_STOP_TO_WAYPOINT :Ga non-stop via {WAYPOINT}
STR_ORDER_SERVICE_AT :Onderhoud bij
STR_ORDER_SERVICE_NON_STOP_AT :Onderhoud non-stop bij
STR_ORDER_SERVICE_NON_STOP_AT :Non-stop naar onderhoud bij
STR_ORDER_NEAREST_DEPOT :het dichtstbijzijnde
STR_ORDER_NEAREST_HANGAR :de dichtstbijzijnde hangar
@@ -3990,7 +3990,7 @@ STR_TIMETABLE_ORDER_VIEW_TOOLTIP :{BLACK}Ga naar
STR_TIMETABLE_TOOLTIP :{BLACK}Dienstregeling - klik op een order om te selecteren
STR_TIMETABLE_NO_TRAVEL :Niet rijden
STR_TIMETABLE_NOT_TIMETABLEABLE :Rijd (automatisch; volgens dienstregeling bij volgende handmatige bestemming)
STR_TIMETABLE_NOT_TIMETABLEABLE :Rijden (automatisch; volgens dienstregeling bij volgende handmatige bestemming)
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Reis (geen dienstregeling)
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Reis met maximaal {2:VELOCITY} (geen dienstregeling)
STR_TIMETABLE_TRAVEL_FOR :Reis naar {STRING}
@@ -3999,8 +3999,8 @@ STR_TIMETABLE_TRAVEL_FOR_ESTIMATED :Reis (gedurende
STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED :Reis (gedurende {STRING}, geen dienstregeling) maximaal {VELOCITY}
STR_TIMETABLE_STAY_FOR_ESTIMATED :(wacht gedurende {STRING}, geen dienstregeling)
STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(reis gedurende {STRING}, geen dienstregeling)
STR_TIMETABLE_STAY_FOR :en blijf voor {STRING}
STR_TIMETABLE_AND_TRAVEL_FOR :en rijd naar {STRING}
STR_TIMETABLE_STAY_FOR :en blijf gedurende {STRING}
STR_TIMETABLE_AND_TRAVEL_FOR :en rijd {STRING}
STR_TIMETABLE_DAYS :{COMMA}{NBSP}dag{P "" en}
STR_TIMETABLE_TICKS :{COMMA}{NBSP}tik{P "" ken}
@@ -4011,28 +4011,28 @@ STR_TIMETABLE_STATUS_ON_TIME :{BLACK}Dit voer
STR_TIMETABLE_STATUS_LATE :{BLACK}Dit voertuig heeft {STRING} vertraging
STR_TIMETABLE_STATUS_EARLY :{BLACK}Dit voertuig is {STRING} te vroeg
STR_TIMETABLE_STATUS_NOT_STARTED :{BLACK}Deze dienstregeling is nog niet gestart
STR_TIMETABLE_STATUS_START_AT :{BLACK}Deze dienstregeling begint bij {STRING}
STR_TIMETABLE_STATUS_START_AT :{BLACK}Deze dienstregeling begint op {STRING}
STR_TIMETABLE_STARTING_DATE :{BLACK}Startdatum
STR_TIMETABLE_STARTING_DATE_TOOLTIP :{BLACK}Selecteer een datum als startpunt voor deze dienstregeling. Ctrl + klik geeft het startpunt van deze dienstregeling en verdeelt alle voertuigen die deze orders delen gelijkmatig op basis van hun relatieve volgorde, als de order volledig is ingeroosterd.
STR_TIMETABLE_CHANGE_TIME :{BLACK}Verander de tijd
STR_TIMETABLE_CHANGE_TIME :{BLACK}Tijd wijzigen
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Verander de tijdsduur die de geselecteerde order mag duren
STR_TIMETABLE_CLEAR_TIME :{BLACK}Verwijder tijd
STR_TIMETABLE_CLEAR_TIME :{BLACK}Tijd wissen
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Verwijder de tijdsduur die de geselecteerde order mag duren
STR_TIMETABLE_CHANGE_SPEED :{BLACK}Wijzig Maximumsnelheid
STR_TIMETABLE_CHANGE_SPEED_TOOLTIP :{BLACK}Wijzig de maximumsnelheid voor de gekozen order
STR_TIMETABLE_CLEAR_SPEED :{BLACK}Verwijder Snelheidslimiet
STR_TIMETABLE_CLEAR_SPEED :{BLACK}Snelheidslimiet wissen
STR_TIMETABLE_CLEAR_SPEED_TOOLTIP :{BLACK}Verwijder de maximumsnelheid van de gekozen order
STR_TIMETABLE_RESET_LATENESS :{BLACK}Reset vertragingsteller
STR_TIMETABLE_RESET_LATENESS_TOOLTIP :{BLACK}Reset de vertragingsteller zodat het voertuig op tijd is
STR_TIMETABLE_RESET_LATENESS :{BLACK}Vertragingsteller terugstellen
STR_TIMETABLE_RESET_LATENESS_TOOLTIP :{BLACK}Stel de vertragingsteller terug zodat het voertuig op tijd is
STR_TIMETABLE_AUTOFILL :{BLACK}Automatisch vullen
STR_TIMETABLE_AUTOFILL_TOOLTIP :{BLACK}Vul de dienstregeling automatisch in aan de hand van de volgende reis (Ctrl+klik om proberen wachttijden te bewaren)
STR_TIMETABLE_AUTOFILL_TOOLTIP :{BLACK}Vul de dienstregeling automatisch in aan de hand van de volgende reis (Ctrl+klik om te proberen om wachttijden te bewaren)
STR_TIMETABLE_EXPECTED :{BLACK}Verwacht
STR_TIMETABLE_SCHEDULED :{BLACK}Volgens dienstregeling
@@ -4046,9 +4046,9 @@ STR_TIMETABLE_DEPARTURE_ABBREVIATION :V:
STR_DATE_CAPTION :{WHITE}Datum selecteren
STR_DATE_SET_DATE :{BLACK}Datum selecteren
STR_DATE_SET_DATE_TOOLTIP :{BLACK}Gebruik de geselecteerde datum als startdatum voor de dienstregeling
STR_DATE_DAY_TOOLTIP :{BLACK}Selecteer dag
STR_DATE_MONTH_TOOLTIP :{BLACK}Selecteer maand
STR_DATE_YEAR_TOOLTIP :{BLACK}Selecteer jaar
STR_DATE_DAY_TOOLTIP :{BLACK}Selecteer de dag
STR_DATE_MONTH_TOOLTIP :{BLACK}Selecteer de maand
STR_DATE_YEAR_TOOLTIP :{BLACK}Selecteer het jaar
# AI debug window
@@ -4125,12 +4125,12 @@ STR_AI_SETTINGS_START_DELAY :Aantal dagen da
# Textfile window
STR_TEXTFILE_README_CAPTION :{WHITE}{STRING} leesme van {STRING}
STR_TEXTFILE_README_CAPTION :{WHITE}{STRING} leesmij van {STRING}
STR_TEXTFILE_CHANGELOG_CAPTION :{WHITE}{STRING} wijzigingen van {STRING}
STR_TEXTFILE_LICENCE_CAPTION :{WHITE}{STRING} licentie van {STRING}
STR_TEXTFILE_WRAP_TEXT :{WHITE}Tekst afbreken
STR_TEXTFILE_WRAP_TEXT_TOOLTIP :{BLACK}Tekst aanpassen aan venster zodat je niet hoeft te bladeren
STR_TEXTFILE_VIEW_README :{BLACK}Bekijk leesme
STR_TEXTFILE_VIEW_README :{BLACK}Leesmij-bestand bekijken
STR_TEXTFILE_VIEW_CHANGELOG :{BLACK}Wijzigingen
STR_TEXTFILE_VIEW_LICENCE :{BLACK}Licentie
@@ -4181,8 +4181,8 @@ STR_ERROR_NO_TOWN_IN_SCENARIO :{WHITE}... er i
STR_ERROR_PNGMAP :{WHITE}Kan landschap uit PNG niet laden...
STR_ERROR_PNGMAP_FILE_NOT_FOUND :{WHITE}... bestand niet gevonden
STR_ERROR_PNGMAP_IMAGE_TYPE :{WHITE}... kon afbeelding niet omzetten. 8 óf 24-bit PNG afbeelding nodig
STR_ERROR_PNGMAP_MISC :{WHITE}... er ging iets fout. Sorry (bestand waarschijnlijk corrupt)
STR_ERROR_PNGMAP_IMAGE_TYPE :{WHITE}... kon afbeelding niet omzetten. 8 óf 24 bits-PNG-afbeelding nodig
STR_ERROR_PNGMAP_MISC :{WHITE}... er ging iets fout. Sorry (bestand waarschijnlijk beschadigd)
STR_ERROR_BMPMAP :{WHITE}Kan het landschap uit BMP niet laden...
STR_ERROR_BMPMAP_IMAGE_TYPE :{WHITE}... kan dit type afbeelding niet omzetten
@@ -4199,7 +4199,7 @@ STR_WARNING_FALLBACK_SOUNDSET :{WHITE}Alleen b
STR_WARNING_SCREENSHOT_SIZE_CAPTION :{WHITE}Grote schermfoto
STR_WARNING_SCREENSHOT_SIZE_MESSAGE :{YELLOW}De schermfoto heeft een resolutie van {COMMA} x {COMMA} pixels. Het maken van de schermfoto kan even duren. Verder gaan?
STR_MESSAGE_SCREENSHOT_SUCCESSFULLY :{WHITE}Schermafbeelding succesvol opgeslagen als '{STRING}'
STR_MESSAGE_SCREENSHOT_SUCCESSFULLY :{WHITE}Schermafbeelding opgeslagen als '{STRING}'
STR_ERROR_SCREENSHOT_FAILED :{WHITE}Schermfoto mislukt!
# Error message titles
@@ -4320,7 +4320,7 @@ STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}... weg
# Station destruction related errors
STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Kan deel van station niet verwijderen...
STR_ERROR_MUST_REMOVE_RAILWAY_STATION_FIRST :{WHITE}Treinstation moet eerst verwijderd worden
STR_ERROR_MUST_REMOVE_RAILWAY_STATION_FIRST :{WHITE}Verwijder eerst treinstation
STR_ERROR_CAN_T_REMOVE_BUS_STATION :{WHITE}Kan busstation niet verwijderen...
STR_ERROR_CAN_T_REMOVE_TRUCK_STATION :{WHITE}Kan vrachtwagenlaadstation niet verwijderen...
STR_ERROR_CAN_T_REMOVE_PASSENGER_TRAM_STATION :{WHITE}Kan passagierstramstation niet verwijderen...
@@ -4382,7 +4382,7 @@ STR_ERROR_AUTOREPLACE_MONEY_LIMIT :(onvoldoende ge
# Rail construction errors
STR_ERROR_IMPOSSIBLE_TRACK_COMBINATION :{WHITE}Onmogelijke spoorcombinatie
STR_ERROR_MUST_REMOVE_SIGNALS_FIRST :{WHITE}Sein moet eerst worden verwijderd
STR_ERROR_MUST_REMOVE_SIGNALS_FIRST :{WHITE}Verwijder eerst sein
STR_ERROR_NO_SUITABLE_RAILROAD_TRACK :{WHITE}Geen bruikbaar spoor
STR_ERROR_MUST_REMOVE_RAILROAD_TRACK :{WHITE}Moet spoor eerst verwijderen
STR_ERROR_CROSSING_ON_ONEWAY_ROAD :{WHITE}Weg is eenrichtingsverkeer of geblokkeerd
@@ -4416,7 +4416,7 @@ STR_ERROR_CAN_T_BUILD_ON_WATER :{WHITE}... kan
STR_ERROR_CAN_T_BUILD_ON_SEA :{WHITE}... kan niet op de zee bouwen
STR_ERROR_CAN_T_BUILD_ON_CANAL :{WHITE}... kan niet op kanaal bouwen
STR_ERROR_CAN_T_BUILD_ON_RIVER :{WHITE}... kan niet op rivier bouwen
STR_ERROR_MUST_DEMOLISH_CANAL_FIRST :{WHITE}Het kanaal moet eerst verwijderd worden
STR_ERROR_MUST_DEMOLISH_CANAL_FIRST :{WHITE}Verwijder eerst kanaal
STR_ERROR_CAN_T_BUILD_AQUEDUCT_HERE :{WHITE}Kan hier geen aquaduct bouwen...
# Tree related errors
@@ -4426,7 +4426,7 @@ STR_ERROR_CAN_T_PLANT_TREE_HERE :{WHITE}Kan hier
# Bridge related errors
STR_ERROR_CAN_T_BUILD_BRIDGE_HERE :{WHITE}Kan hier geen brug bouwen...
STR_ERROR_MUST_DEMOLISH_BRIDGE_FIRST :{WHITE}Brug moet eerst afgebroken worden
STR_ERROR_MUST_DEMOLISH_BRIDGE_FIRST :{WHITE}Breek eerst brug af
STR_ERROR_CAN_T_START_AND_END_ON :{WHITE}Kan niet beginnen en eindigen op dezelfde plaats
STR_ERROR_BRIDGEHEADS_NOT_SAME_HEIGHT :{WHITE}Begin van bruggen niet op hetzelfde niveau
STR_ERROR_BRIDGE_TOO_LOW_FOR_TERRAIN :{WHITE}Brug is te laag voor dit terrein
@@ -4439,7 +4439,7 @@ STR_ERROR_BRIDGE_THROUGH_MAP_BORDER :{WHITE}Brug zou
# Tunnel related errors
STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}Kan hier geen tunnel bouwen...
STR_ERROR_SITE_UNSUITABLE_FOR_TUNNEL :{WHITE}Locatie ongeschikt voor ingang tunnel
STR_ERROR_MUST_DEMOLISH_TUNNEL_FIRST :{WHITE}Tunnel moet eerst afgebroken worden
STR_ERROR_MUST_DEMOLISH_TUNNEL_FIRST :{WHITE}Verwijder eerst tunnel
STR_ERROR_ANOTHER_TUNNEL_IN_THE_WAY :{WHITE}Andere tunnel in de weg
STR_ERROR_TUNNEL_THROUGH_MAP_BORDER :{WHITE}Tunnel eindigt buiten de kaart
STR_ERROR_UNABLE_TO_EXCAVATE_LAND :{WHITE}Kan geen land uitgraven voor andere uiteinde tunnel
@@ -4513,8 +4513,8 @@ STR_ERROR_CAN_T_CHANGE_SERVICING :{WHITE}Kan onde
STR_ERROR_VEHICLE_IS_DESTROYED :{WHITE}... voertuig is vernietigd
STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL :{WHITE}Geen enkel voertuig zal beschikbaar zijn
STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Pas je NewGRF configuratie aan
STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL :{WHITE}Er zullen geen voertuigen beschikbaar zijn
STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Pas je NewGRF-configuratie aan
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Nog geen voertuigen beschikbaar
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE} Start een nieuw spel na {DATE_SHORT} of gebruik een NewGRF dat in vroege voertuigen voorziet

View File

@@ -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

View File

@@ -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!!

View File

@@ -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

View File

@@ -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

View File

@@ -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ă...
@@ -1118,6 +1120,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
@@ -1328,6 +1331,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}
@@ -1598,6 +1602,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}
@@ -2690,6 +2695,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
@@ -4423,6 +4429,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

View File

@@ -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ü

View File

@@ -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;
@@ -1173,7 +1176,6 @@ void ClientNetworkGameSocketHandler::CheckConnection()
if (lag > 20) {
this->NetworkGameSocketHandler::CloseConnection();
ShowErrorMessage(STR_NETWORK_ERROR_LOSTCONNECTION, INVALID_STRING_ID, WL_CRITICAL);
ClientNetworkEmergencySave();
return;
}

View File

@@ -5828,7 +5828,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 +6215,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 +6900,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 +7000,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 +8229,6 @@ static void ResetNewGRFErrors()
/**
* Reset all NewGRF loaded data
* TODO
*/
void ResetNewGRFData()
{

View File

@@ -256,15 +256,18 @@ 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_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;

View File

@@ -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);
};
/**

View File

@@ -1834,8 +1834,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,7 +1851,7 @@ 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 &&
if ((v->type == VEH_AIRCRAFT && order->IsType(OT_GOTO_DEPOT) && !hangar ? OT_GOTO_STATION : order->GetType()) == type &&
v->current_order.GetDestination() == destination) {
order->MakeDummy();
SetWindowDirty(WC_VEHICLE_VIEW, v->index);
@@ -1862,7 +1865,7 @@ 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_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);
}
/**

View File

@@ -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);

View File

@@ -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__
/**

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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
*

View File

@@ -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);
}

View File

@@ -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;
}

View File

@@ -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)

View File

@@ -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;
}

View File

@@ -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 */

View File

@@ -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; }

View File

@@ -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

View File

@@ -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 */

View File

@@ -561,6 +561,7 @@ struct GameOptionsWindow : Window {
break;
case WID_GO_FONT_ZOOM_DROPDOWN:
GfxClearSpriteCache();
_font_zoom = (ZoomLevel)(ZOOM_LVL_OUT_4X - index);
ClearFontCache();
LoadStringWidthTable();

View File

@@ -41,11 +41,11 @@ struct SignList {
*/
typedef GUIList<const Sign *, StringFilter &> GUISignList;
static const Sign *last_sign;
GUISignList signs;
StringFilter string_filter; ///< The match string to be used when the GUIList is (re)-sorted.
static bool match_case; ///< Should case sensitive matching be used?
static char default_name[64]; ///< Default sign name, used if Sign::name is NULL.
/**
* Creates a SignList with filtering disabled by default.
@@ -74,19 +74,17 @@ struct SignList {
/** Sort signs by their name */
static int CDECL SignNameSorter(const Sign * const *a, const Sign * const *b)
{
static char buf_cache[64];
char buf[64];
/* Signs are very very rarely using the default text, but there can also be
* a lot of them. Therefore a worthwhile performance gain can be made by
* directly comparing Sign::name instead of going through the string
* system for each comparison. */
const char *a_name = (*a)->name;
const char *b_name = (*b)->name;
SetDParam(0, (*a)->index);
GetString(buf, STR_SIGN_NAME, lastof(buf));
if (a_name == NULL) a_name = SignList::default_name;
if (b_name == NULL) b_name = SignList::default_name;
if (*b != last_sign) {
last_sign = *b;
SetDParam(0, (*b)->index);
GetString(buf_cache, STR_SIGN_NAME, lastof(buf_cache));
}
int r = strnatcmp(buf, buf_cache); // Sort by name (natural sorting).
int r = strnatcmp(a_name, b_name); // Sort by name (natural sorting).
return r != 0 ? r : ((*a)->index - (*b)->index);
}
@@ -94,21 +92,18 @@ struct SignList {
void SortSignsList()
{
if (!this->signs.Sort(&SignNameSorter)) return;
/* Reset the name sorter sort cache */
this->last_sign = NULL;
}
/** Filter sign list by sign name */
static bool CDECL SignNameFilter(const Sign * const *a, StringFilter &filter)
{
/* Get sign string */
char buf1[MAX_LENGTH_SIGN_NAME_CHARS * MAX_CHAR_LENGTH];
SetDParam(0, (*a)->index);
GetString(buf1, STR_SIGN_NAME, lastof(buf1));
/* Same performance benefit as above for sorting. */
const char *a_name = (*a)->name;
if (a_name == NULL) a_name = SignList::default_name;
filter.ResetState();
filter.AddLine(buf1);
filter.AddLine(a_name);
return filter.GetState();
}
@@ -138,8 +133,8 @@ struct SignList {
}
};
const Sign *SignList::last_sign = NULL;
bool SignList::match_case = false;
char SignList::default_name[64];
/** Enum referring to the Hotkeys in the sign list window */
enum SignListHotkeys {
@@ -171,6 +166,15 @@ struct SignListWindow : Window, SignList {
this->BuildSortSignList();
}
virtual void OnInit()
{
/* Default sign name, used if Sign::name is NULL. */
GetString(SignList::default_name, STR_DEFAULT_SIGN_NAME, lastof(SignList::default_name));
this->signs.ForceResort();
this->SortSignsList();
this->SetDirty();
}
/**
* This function sets the filter string of the sign list. The contents of
* the edit widget is not updated by this function. Depending on if the
@@ -188,7 +192,7 @@ struct SignListWindow : Window, SignList {
virtual void OnPaint()
{
if (this->signs.NeedRebuild()) this->BuildSortSignList();
if (!this->IsShaded() && this->signs.NeedRebuild()) this->BuildSortSignList();
this->DrawWidgets();
}

View File

@@ -14,7 +14,6 @@
#include "../stdafx.h"
#include "../mixer.h"
#include "../sdl.h"
#include "sdl_s.h"
#include <SDL.h>
@@ -38,8 +37,14 @@ const char *SoundDriver_SDL::Start(const char * const *parm)
{
SDL_AudioSpec spec;
const char *s = SdlOpen(SDL_INIT_AUDIO);
if (s != NULL) return s;
/* Only initialise SDL if the video driver hasn't done it already */
int ret_code = 0;
if (SDL_WasInit(SDL_INIT_EVERYTHING) == 0) {
ret_code = SDL_Init(SDL_INIT_AUDIO | SDL_INIT_NOPARACHUTE);
} else if (SDL_WasInit(SDL_INIT_AUDIO) == 0) {
ret_code = SDL_InitSubSystem(SDL_INIT_AUDIO);
}
if (ret_code == -1) return SDL_GetError();
spec.freq = GetDriverParamInt(parm, "hz", 44100);
spec.format = AUDIO_S16SYS;
@@ -47,15 +52,18 @@ const char *SoundDriver_SDL::Start(const char * const *parm)
spec.samples = GetDriverParamInt(parm, "samples", 1024);
spec.callback = fill_sound_buffer;
MxInitialize(spec.freq);
SDL_CALL SDL_OpenAudio(&spec, &spec);
SDL_CALL SDL_PauseAudio(0);
SDL_OpenAudio(&spec, &spec);
SDL_PauseAudio(0);
return NULL;
}
void SoundDriver_SDL::Stop()
{
SDL_CALL SDL_CloseAudio();
SdlClose(SDL_INIT_AUDIO);
SDL_CloseAudio();
SDL_QuitSubSystem(SDL_INIT_AUDIO);
if (SDL_WasInit(SDL_INIT_EVERYTHING) == 0) {
SDL_Quit(); // If there's nothing left, quit SDL
}
}
#endif /* WITH_SDL */

View File

@@ -791,7 +791,7 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg
WChar b = '\0';
uint next_substr_case_index = 0;
char *buf_start = buff;
std::stack<const char *> str_stack;
std::stack<const char *, std::vector<const char *>> str_stack;
str_stack.push(str_arg);
for (;;) {

View File

@@ -1524,7 +1524,7 @@ type = SLE_UINT32
from = SLV_107
guiflags = SGF_NEWGAME_ONLY
def = 10000
min = 5000
min = 500
max = 250000
interval = 2500
str = STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES

View File

@@ -1080,14 +1080,14 @@ static bool GrowTownWithBridge(const Town *t, const TileIndex tile, const DiagDi
const int delta = TileOffsByDiagDir(bridge_dir);
if (slope == SLOPE_FLAT) {
/* Bridges starting on flat tiles are only allowed when crossing rivers. */
/* Bridges starting on flat tiles are only allowed when crossing rivers, rails or one-way roads. */
do {
if (bridge_length++ >= 4) {
/* Allow to cross rivers, not big lakes. */
/* Allow to cross rivers, not big lakes, nor large amounts of rails or one-way roads. */
return false;
}
bridge_tile += delta;
} while (IsValidTile(bridge_tile) && IsWaterTile(bridge_tile) && !IsSea(bridge_tile));
} while (IsValidTile(bridge_tile) && ((IsWaterTile(bridge_tile) && !IsSea(bridge_tile)) || IsPlainRailTile(bridge_tile) || (IsNormalRoadTile(bridge_tile) && GetDisallowedRoadDirections(bridge_tile) != DRD_NONE)));
} else {
do {
if (bridge_length++ >= 11) {
@@ -1095,7 +1095,7 @@ static bool GrowTownWithBridge(const Town *t, const TileIndex tile, const DiagDi
return false;
}
bridge_tile += delta;
} while (IsValidTile(bridge_tile) && IsWaterTile(bridge_tile));
} while (IsValidTile(bridge_tile) && (IsWaterTile(bridge_tile) || IsPlainRailTile(bridge_tile) || (IsNormalRoadTile(bridge_tile) && GetDisallowedRoadDirections(bridge_tile) != DRD_NONE)));
}
/* no water tiles in between? */

View File

@@ -13,6 +13,7 @@
#define TREE_MAP_H
#include "tile_map.h"
#include "water_map.h"
/**
* List of tree types along all landscape types.
@@ -133,6 +134,7 @@ static inline void SetTreeGroundDensity(TileIndex t, TreeGround g, uint d)
assert(IsTileType(t, MP_TREES)); // XXX incomplete
SB(_m[t].m2, 4, 2, d);
SB(_m[t].m2, 6, 3, g);
SetWaterClass(t, g == TREE_GROUND_SHORE ? WATER_CLASS_SEA : WATER_CLASS_INVALID);
}
/**

View File

@@ -14,7 +14,6 @@
#include "../stdafx.h"
#include "../openttd.h"
#include "../gfx_func.h"
#include "../sdl.h"
#include "../rev.h"
#include "../blitter/factory.hpp"
#include "../network/network.h"
@@ -73,7 +72,7 @@ static void UpdatePalette(bool init = false)
pal[i].unused = 0;
}
SDL_CALL SDL_SetColors(_sdl_screen, pal, _local_palette.first_dirty, _local_palette.count_dirty);
SDL_SetColors(_sdl_screen, pal, _local_palette.first_dirty, _local_palette.count_dirty);
if (_sdl_screen != _sdl_realscreen && init) {
/* When using a shadow surface, also set our palette on the real screen. This lets SDL
@@ -96,7 +95,7 @@ static void UpdatePalette(bool init = false)
* palette change and the blitting below, so we only set
* the real palette during initialisation.
*/
SDL_CALL SDL_SetColors(_sdl_realscreen, pal, _local_palette.first_dirty, _local_palette.count_dirty);
SDL_SetColors(_sdl_realscreen, pal, _local_palette.first_dirty, _local_palette.count_dirty);
}
if (_sdl_screen != _sdl_realscreen && !init) {
@@ -110,8 +109,8 @@ static void UpdatePalette(bool init = false)
* best mapping of shadow palette colors to real palette
* colors from scratch.
*/
SDL_CALL SDL_BlitSurface(_sdl_screen, NULL, _sdl_realscreen, NULL);
SDL_CALL SDL_UpdateRect(_sdl_realscreen, 0, 0, 0, 0);
SDL_BlitSurface(_sdl_screen, NULL, _sdl_realscreen, NULL);
SDL_UpdateRect(_sdl_realscreen, 0, 0, 0, 0);
}
}
@@ -157,16 +156,16 @@ static void DrawSurfaceToScreen()
_num_dirty_rects = 0;
if (n > MAX_DIRTY_RECTS) {
if (_sdl_screen != _sdl_realscreen) {
SDL_CALL SDL_BlitSurface(_sdl_screen, NULL, _sdl_realscreen, NULL);
SDL_BlitSurface(_sdl_screen, NULL, _sdl_realscreen, NULL);
}
SDL_CALL SDL_UpdateRect(_sdl_realscreen, 0, 0, 0, 0);
SDL_UpdateRect(_sdl_realscreen, 0, 0, 0, 0);
} else {
if (_sdl_screen != _sdl_realscreen) {
for (int i = 0; i < n; i++) {
SDL_CALL SDL_BlitSurface(_sdl_screen, &_dirty_rects[i], _sdl_realscreen, &_dirty_rects[i]);
SDL_BlitSurface(_sdl_screen, &_dirty_rects[i], _sdl_realscreen, &_dirty_rects[i]);
}
}
SDL_CALL SDL_UpdateRects(_sdl_realscreen, n, _dirty_rects);
SDL_UpdateRects(_sdl_realscreen, n, _dirty_rects);
}
}
@@ -206,14 +205,14 @@ static const Dimension _default_resolutions[] = {
static void GetVideoModes()
{
SDL_Rect **modes = SDL_CALL SDL_ListModes(NULL, SDL_SWSURFACE | SDL_FULLSCREEN);
SDL_Rect **modes = SDL_ListModes(NULL, SDL_SWSURFACE | SDL_FULLSCREEN);
if (modes == NULL) usererror("sdl: no modes available");
_all_modes = (SDL_CALL SDL_ListModes(NULL, SDL_SWSURFACE | (_fullscreen ? SDL_FULLSCREEN : 0)) == (void*)-1);
_all_modes = (SDL_ListModes(NULL, SDL_SWSURFACE | (_fullscreen ? SDL_FULLSCREEN : 0)) == (void*)-1);
if (modes == (void*)-1) {
int n = 0;
for (uint i = 0; i < lengthof(_default_resolutions); i++) {
if (SDL_CALL SDL_VideoModeOK(_default_resolutions[i].width, _default_resolutions[i].height, 8, SDL_FULLSCREEN) != 0) {
if (SDL_VideoModeOK(_default_resolutions[i].width, _default_resolutions[i].height, 8, SDL_FULLSCREEN) != 0) {
_resolutions[n] = _default_resolutions[i];
if (++n == lengthof(_resolutions)) break;
}
@@ -264,13 +263,6 @@ static void GetAvailableVideoMode(uint *w, uint *h)
*h = _resolutions[best].height;
}
#ifdef _WIN32
/* Let's redefine the LoadBMP macro with because we are dynamically
* loading SDL and need to 'SDL_CALL' all functions */
#undef SDL_LoadBMP
#define SDL_LoadBMP(file) SDL_LoadBMP_RW(SDL_CALL SDL_RWFromFile(file, "rb"), 1)
#endif
bool VideoDriver_SDL::CreateMainSurface(uint w, uint h)
{
SDL_Surface *newscreen, *icon;
@@ -287,14 +279,14 @@ bool VideoDriver_SDL::CreateMainSurface(uint w, uint h)
char icon_path[MAX_PATH];
if (FioFindFullPath(icon_path, lastof(icon_path), BASESET_DIR, "openttd.32.bmp") != NULL) {
/* Give the application an icon */
icon = SDL_CALL SDL_LoadBMP(icon_path);
icon = SDL_LoadBMP(icon_path);
if (icon != NULL) {
/* Get the colourkey, which will be magenta */
uint32 rgbmap = SDL_CALL SDL_MapRGB(icon->format, 255, 0, 255);
uint32 rgbmap = SDL_MapRGB(icon->format, 255, 0, 255);
SDL_CALL SDL_SetColorKey(icon, SDL_SRCCOLORKEY, rgbmap);
SDL_CALL SDL_WM_SetIcon(icon, NULL);
SDL_CALL SDL_FreeSurface(icon);
SDL_SetColorKey(icon, SDL_SRCCOLORKEY, rgbmap);
SDL_WM_SetIcon(icon, NULL);
SDL_FreeSurface(icon);
}
}
@@ -329,7 +321,7 @@ bool VideoDriver_SDL::CreateMainSurface(uint w, uint h)
if (want_hwpalette) DEBUG(driver, 1, "SDL: requesting hardware palette");
/* Free any previously allocated shadow surface */
if (_sdl_screen != NULL && _sdl_screen != _sdl_realscreen) SDL_CALL SDL_FreeSurface(_sdl_screen);
if (_sdl_screen != NULL && _sdl_screen != _sdl_realscreen) SDL_FreeSurface(_sdl_screen);
if (_sdl_realscreen != NULL) {
if (_requested_hwpalette != want_hwpalette) {
@@ -342,8 +334,8 @@ bool VideoDriver_SDL::CreateMainSurface(uint w, uint h)
* subsystem to force creating a new window.
*/
DEBUG(driver, 0, "SDL: Restarting SDL video subsystem, to force hwpalette change");
SDL_CALL SDL_QuitSubSystem(SDL_INIT_VIDEO);
SDL_CALL SDL_InitSubSystem(SDL_INIT_VIDEO);
SDL_QuitSubSystem(SDL_INIT_VIDEO);
SDL_InitSubSystem(SDL_INIT_VIDEO);
ClaimMousePointer();
SetupKeyboard();
}
@@ -355,7 +347,7 @@ bool VideoDriver_SDL::CreateMainSurface(uint w, uint h)
_requested_hwpalette = want_hwpalette;
/* DO NOT CHANGE TO HWSURFACE, IT DOES NOT WORK */
newscreen = SDL_CALL SDL_SetVideoMode(w, h, bpp, SDL_SWSURFACE | (want_hwpalette ? SDL_HWPALETTE : 0) | (_fullscreen ? SDL_FULLSCREEN : SDL_RESIZABLE));
newscreen = SDL_SetVideoMode(w, h, bpp, SDL_SWSURFACE | (want_hwpalette ? SDL_HWPALETTE : 0) | (_fullscreen ? SDL_FULLSCREEN : SDL_RESIZABLE));
if (newscreen == NULL) {
DEBUG(driver, 0, "SDL: Couldn't allocate a window to draw on");
return false;
@@ -382,7 +374,7 @@ bool VideoDriver_SDL::CreateMainSurface(uint w, uint h)
* we won't create a second shadow surface in this case.
*/
DEBUG(driver, 1, "SDL: using shadow surface");
newscreen = SDL_CALL SDL_CreateRGBSurface(SDL_SWSURFACE, w, h, bpp, 0, 0, 0, 0);
newscreen = SDL_CreateRGBSurface(SDL_SWSURFACE, w, h, bpp, 0, 0, 0, 0);
if (newscreen == NULL) {
DEBUG(driver, 0, "SDL: Couldn't allocate a shadow surface to draw on");
return false;
@@ -409,7 +401,7 @@ bool VideoDriver_SDL::CreateMainSurface(uint w, uint h)
InitPalette();
seprintf(caption, lastof(caption), "OpenTTD %s", _openttd_revision);
SDL_CALL SDL_WM_SetCaption(caption, caption);
SDL_WM_SetCaption(caption, caption);
GameSizeChanged();
@@ -418,7 +410,7 @@ bool VideoDriver_SDL::CreateMainSurface(uint w, uint h)
bool VideoDriver_SDL::ClaimMousePointer()
{
SDL_CALL SDL_ShowCursor(0);
SDL_ShowCursor(0);
return true;
}
@@ -531,18 +523,18 @@ int VideoDriver_SDL::PollEvent()
{
SDL_Event ev;
if (!SDL_CALL SDL_PollEvent(&ev)) return -2;
if (!SDL_PollEvent(&ev)) return -2;
switch (ev.type) {
case SDL_MOUSEMOTION:
if (_cursor.UpdateCursorPosition(ev.motion.x, ev.motion.y, true)) {
SDL_CALL SDL_WarpMouse(_cursor.pos.x, _cursor.pos.y);
SDL_WarpMouse(_cursor.pos.x, _cursor.pos.y);
}
HandleMouseEvents();
break;
case SDL_MOUSEBUTTONDOWN:
if (_rightclick_emulate && SDL_CALL SDL_GetModState() & KMOD_CTRL) {
if (_rightclick_emulate && SDL_GetModState() & KMOD_CTRL) {
ev.button.button = SDL_BUTTON_RIGHT;
}
@@ -626,15 +618,23 @@ const char *VideoDriver_SDL::Start(const char * const *parm)
char buf[30];
_use_hwpalette = GetDriverParamInt(parm, "hw_palette", 2);
const char *s = SdlOpen(SDL_INIT_VIDEO);
if (s != NULL) return s;
/* Just on the offchance the audio subsystem started before the video system,
* check whether any part of SDL has been initialised before getting here.
* Slightly duplicated with sound/sdl_s.cpp */
int ret_code = 0;
if (SDL_WasInit(SDL_INIT_EVERYTHING) == 0) {
ret_code = SDL_Init(SDL_INIT_VIDEO | SDL_INIT_NOPARACHUTE);
} else if (SDL_WasInit(SDL_INIT_VIDEO) == 0) {
ret_code = SDL_InitSubSystem(SDL_INIT_VIDEO);
}
if (ret_code == -1) return SDL_GetError();
GetVideoModes();
if (!CreateMainSurface(_cur_resolution.width, _cur_resolution.height)) {
return SDL_CALL SDL_GetError();
return SDL_GetError();
}
SDL_CALL SDL_VideoDriverName(buf, sizeof buf);
SDL_VideoDriverName(buf, sizeof buf);
DEBUG(driver, 1, "SDL: using driver '%s'", buf);
MarkWholeScreenDirty();
@@ -647,18 +647,21 @@ const char *VideoDriver_SDL::Start(const char * const *parm)
void VideoDriver_SDL::SetupKeyboard()
{
SDL_CALL SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL);
SDL_CALL SDL_EnableUNICODE(1);
SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL);
SDL_EnableUNICODE(1);
}
void VideoDriver_SDL::Stop()
{
SdlClose(SDL_INIT_VIDEO);
SDL_QuitSubSystem(SDL_INIT_VIDEO);
if (SDL_WasInit(SDL_INIT_EVERYTHING) == 0) {
SDL_Quit(); // If there's nothing left, quit SDL
}
}
void VideoDriver_SDL::MainLoop()
{
uint32 cur_ticks = SDL_CALL SDL_GetTicks();
uint32 cur_ticks = SDL_GetTicks();
uint32 last_cur_ticks = cur_ticks;
uint32 next_tick = cur_ticks + MILLISECONDS_PER_TICK;
uint32 mod;
@@ -700,11 +703,11 @@ void VideoDriver_SDL::MainLoop()
while (PollEvent() == -1) {}
if (_exit_game) break;
mod = SDL_CALL SDL_GetModState();
mod = SDL_GetModState();
#if SDL_VERSION_ATLEAST(1, 3, 0)
keys = SDL_CALL SDL_GetKeyboardState(&numkeys);
keys = SDL_GetKeyboardState(&numkeys);
#else
keys = SDL_CALL SDL_GetKeyState(&numkeys);
keys = SDL_GetKeyState(&numkeys);
#endif
#if defined(_DEBUG)
if (_shift_pressed)
@@ -723,7 +726,7 @@ void VideoDriver_SDL::MainLoop()
_fast_forward = 0;
}
cur_ticks = SDL_CALL SDL_GetTicks();
cur_ticks = SDL_GetTicks();
if (cur_ticks >= next_tick || (_fast_forward && !_pause_mode) || cur_ticks < prev_cur_ticks) {
_realtime_tick += cur_ticks - last_cur_ticks;
last_cur_ticks = cur_ticks;

View File

@@ -94,7 +94,7 @@ static inline WaterTileType GetWaterTileType(TileIndex t)
*/
static inline bool HasTileWaterClass(TileIndex t)
{
return IsTileType(t, MP_WATER) || IsTileType(t, MP_STATION) || IsTileType(t, MP_INDUSTRY) || IsTileType(t, MP_OBJECT);
return IsTileType(t, MP_WATER) || IsTileType(t, MP_STATION) || IsTileType(t, MP_INDUSTRY) || IsTileType(t, MP_OBJECT) || IsTileType(t, MP_TREES);
}
/**
@@ -204,7 +204,7 @@ static inline bool IsCoast(TileIndex t)
*/
static inline bool IsCoastTile(TileIndex t)
{
return IsTileType(t, MP_WATER) && IsCoast(t);
return (IsTileType(t, MP_WATER) && IsCoast(t)) || (IsTileType(t, MP_TREES) && GetWaterClass(t) != WATER_CLASS_INVALID);
}
/**