diff --git a/.gitignore b/.gitignore
index 4bf58b05c1..a6be172bab 100644
--- a/.gitignore
+++ b/.gitignore
@@ -29,6 +29,7 @@ docs/source/*
media/openttd.desktop
media/openttd.desktop.install
objs/*
+projects/.vs
projects/Debug
projects/Release
projects/*.ncb
diff --git a/.hgignore b/.hgignore
index 17b2557f80..3cf61bde69 100644
--- a/.hgignore
+++ b/.hgignore
@@ -22,6 +22,7 @@ Makefile.bundle
media/openttd.desktop
media/openttd.desktop.install
objs/*
+projects/.vs
projects/*.ncb
projects/*.suo
projects/*.sdf
diff --git a/bin/baseset/openttd.grf b/bin/baseset/openttd.grf
index 85d3fc8adc..5d124f3f8f 100644
Binary files a/bin/baseset/openttd.grf and b/bin/baseset/openttd.grf differ
diff --git a/bin/baseset/orig_dos.obg b/bin/baseset/orig_dos.obg
index 2ed8a5a59c..9d0db3e2af 100644
--- a/bin/baseset/orig_dos.obg
+++ b/bin/baseset/orig_dos.obg
@@ -77,7 +77,7 @@ TRGI.GRF = da6a6c9dcc451eec88d79211437b76a8
TRGC.GRF = ed446637e034104c5559b32c18afe78d
TRGH.GRF = ee6616fb0e6ef6b24892c58c93d86fc9
TRGT.GRF = e30e8a398ae86c03dc534a8ac7dfb3b6
-ORIG_EXTRA.GRF = 0b10a95c0adee710ecca9c3d676be4f3
+ORIG_EXTRA.GRF = 67bcfac5911667309d86b7749ea8d08c
[origin]
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
diff --git a/bin/baseset/orig_dos_de.obg b/bin/baseset/orig_dos_de.obg
index 598d8ed89d..754ab5a2d4 100644
--- a/bin/baseset/orig_dos_de.obg
+++ b/bin/baseset/orig_dos_de.obg
@@ -75,7 +75,7 @@ TRGI.GRF = da6a6c9dcc451eec88d79211437b76a8
TRGC.GRF = ed446637e034104c5559b32c18afe78d
TRGH.GRF = ee6616fb0e6ef6b24892c58c93d86fc9
TRGT.GRF = fcde1d7e8a74197d72a62695884b909e
-ORIG_EXTRA.GRF = 0b10a95c0adee710ecca9c3d676be4f3
+ORIG_EXTRA.GRF = 67bcfac5911667309d86b7749ea8d08c
[origin]
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
diff --git a/bin/baseset/orig_extra.grf b/bin/baseset/orig_extra.grf
index 46faff3916..728a8b2555 100644
Binary files a/bin/baseset/orig_extra.grf and b/bin/baseset/orig_extra.grf differ
diff --git a/bin/baseset/orig_win.obg b/bin/baseset/orig_win.obg
index 2b7d43478d..ec00781488 100644
--- a/bin/baseset/orig_win.obg
+++ b/bin/baseset/orig_win.obg
@@ -76,7 +76,7 @@ TRGIR.GRF = 0c2484ff6be49fc63a83be6ab5c38f32
TRGCR.GRF = 3668f410c761a050b5e7095a2b14879b
TRGHR.GRF = 06bf2b7a31766f048baac2ebe43457b1
TRGTR.GRF = de53650517fe661ceaa3138c6edb0eb8
-ORIG_EXTRA.GRF = 0b10a95c0adee710ecca9c3d676be4f3
+ORIG_EXTRA.GRF = 67bcfac5911667309d86b7749ea8d08c
[origin]
default = You can find it on your Transport Tycoon Deluxe CD-ROM.
diff --git a/changelog.txt b/changelog.txt
index 89b3babf84..8edba15fb4 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -1,3 +1,94 @@
+1.7.2 (2017-12-24)
+------------------------------------------------------------------------
+(None)
+
+
+1.7.2-RC1 (2017-12-11)
+------------------------------------------------------------------------
+- Change: When train depots have a horizontal scrollbar, allow scrolling 1 tile beyond the longest train, so you can actually attach a wagon at the end (r27937)
+- Fix: When moving wagons in the depot, the drag highlight did not exactly match the length of the dragged wagon chain (r27936)
+- Fix: [Win32] Right mouse scrolling didn't work properly with the Windows 10 Fall Creators Update [FS#6629] (r27935)
+- Fix: Forest, candyfloss forest and battery farm skipped the first animation frame [FS#6639] (r27932)
+- Fix: Glyphs in range U+0020 to U+00FF may only be defined in orig_extra.grf, not in openttd.grf [FS#6620] (r27915)
+- Fix: 'unban' console command was not handling IPv6 adresses properly (r27914, r27913)
+- Fix: Keep the 'link' between industry chain and smallmap windows whenever possible [FS#6585] (r27905)
+- Fix: When the last vehicle is removed from a shared orders group, hide the 'Stop sharing' button in the vehicle orders window [FS#6593] (r27904)
+- Fix: Tooltip of 'increase service interval' said 'decrease' [FS#6606] (r27895)
+- Fix: Console command parser passed invalid strings to the debug output, if command lines had many parameters [FS#6576] (r27884, r27883)
+
+
+1.7.1 (2017-06-13)
+------------------------------------------------------------------------
+(None)
+
+
+1.7.1-RC1 (2017-05-04)
+------------------------------------------------------------------------
+- Fix: Add missing game script event for ships arriving at a station [FS#6560] (r27859, r27858)
+- Fix: StringID truncation to 16 bits broke string remapping test [FS#6555] (r27851)
+- Fix: Infinite loop in pathfinder when checking safe waiting position from a waypoint [FS#5926] (r27846)
+- Fix: [YAPF] Consider depot as destination before reversing path and applying penalty (r27843)
+- Fix: Don't consider locks or ship depots as clear water when placing industries (r27841)
+- Fix: Small news window's fake caption was not sized to fit its text (r27838)
+- Fix: Black remap did nothing in 8bpp-simple blitter (r27837)
+- Fix: Misaligned resize icon due to widget bounds being inclusive (r27831)
+- Fix: Update viewport sign dimensions when changing GUI zoom level (r27827, r27819)
+- Fix: Vehicle viewport is not user scrollable so flag window as such (r27823)
+- Fix: Allow dropdown to be drawn above origin widget even with scrollbar (r27820)
+- Fix: 32bpp-anim blitters assumed that pitch and width of the screen were equal [FS#6545] (r27796)
+- Fix: Chat text background overflowed due to missing padding [FS#6526] (r27794)
+- Fix: Failed to load lzo compressed savegames sometimes [FS#6450] (r27793)
+- Fix: [Win32] Mark OpenTTD as DPI-aware to avoid OS window scaling that breaks mouse input [FS#6366] (r27791, r27790)
+- Fix: [NewGRF] Get vehicle load amount after executing new cargo trigger [FS#6536] (r27788)
+- Fix: AI configuration changed incorrect parameter when some parameters are hidden [FS#6479] (r27787, r27786)
+- Fix: Buoys not always drawn after being placed depending on zoom level [FS#6508] (r27785)
+- Fix: Allow rail conversion even if ship is on tile [FS#6505] (r27784)
+
+
+1.7.0 (2017-04-01)
+------------------------------------------------------------------------
+(None)
+
+
+1.7.0-RC1 (2017-03-11)
+------------------------------------------------------------------------
+- Feature: [NewGRF] Extend the DCxx range to D800-DFFF (r27769)
+- Feature: [NewGRF, script] Increase the maximum number of GameScript texts to 64k, and NewGRF texts to 512k (r27758)
+- Feature: [NewGRF] CB 37 results 0x0401 and 0x0800-0BFF for improved control of display of input cargos in the industry GUI (r27751)
+- Feature: Sprites missing in outdated basesets are now provided by openttd.grf (r27732, r27731, r27730)
+- Feature: [NewGRF] String command 9A 1E to print the name of a cargo type (r27707, r27706)
+- Feature: [Debug] Assign descriptive names to threads [FS#6471] (r27674, r27673, r27670)
+- Feature: [NewGRF] Allow composing vehicles from multiple sprites (r27668)
+- Change: Enable realistic train and road vehicle acceleration by default (r27760)
+- Change: Hide the drive-in stops from the tram station picker (r27734)
+- Change: Do not count static NewGRF when checking for the maximum number of NewGRFs in a game (r27729)
+- Change: Limit waypoint area by maximum station spread during dragging (r27710)
+- Change: [Build] Re-enable Wnarrowing for gcc 4.9+ [FS#6532] (r27709, r27703)
+- Change: List railtype of rail tiles explicitly in the tile info window (r27686)
+- Change: Re-arrange the autoreplace GUI for trains, and do not filter it by railtype by default (r27683)
+- Change: Various performance improvements to CargoDist and LinkGraphs (r27682, r27681, r27614, r27613, r27612, r27611)
+- Change: Improve randomisation of rough land appearance (r27657)
+- Change: [Build] Enable C++11 for clang 3.3 (r27654)
+- Fix: Insufficient thread synchronisation when switching blitters lead to crashes [FS#6510] (r27775)
+- Fix: Enabling palette animation for 32bpp blitters while paused skipped initialisation of the palette and resulted in black windows [FS#5889] (r27774)
+- Fix: Intro games other than the traditional nightly one would cause townname NewGRFs to not get activated in the game options [FS#5819] (r27772)
+- Fix: Some variables were not reset between loading old savegames, which made loading them fail [FS#6540] (r27770)
+- Fix: Removing secondary roadtypes from bridges was factor 2 too cheap [FS#6538] (r27746)
+- Fix: Extra viewports did not center on the selected tile [FS#6537] (r27743)
+- Fix: [Build] Building on newer OSX versions with newer SDKs [FS#6295, FS#6502] (r27727, r27675)
+- Fix: Improve error message when trying to build rail track over a depot (r27726)
+- Fix: Rescanning NewGRF in-game could break the loaded NewGRF, if very many NewGRF were in use (r27721)
+- Fix: Text could overflow various GUI elements [FS#6527] (r27713)
+- Fix: Memory leak when reloading NewGRF (r27690, r27688, r27687)
+- Fix: When removing objects of bankrupt companies the tiles may revert to canal. In that case also check the ownership of the canal [FS#6511] (r27656)
+- Fix: Make the console file commands operate independent of the save/load GUI (r27645)
+- Fix: When dragging vehicles in group or depot GUI, draw the complete articulated vehicle (r27632)
+- Fix: When dragging multiple vehicles in the depot, make the destination gap as long as the chain instead of just considering the first vehicle (r27629)
+- Fix: [Build] Change the GCC version detection so that it works with two-digit and truncated versions [FS#6487] (r27623, r27616)
+- Fix: Do not hide filtered and highlighted industries by overlapping tiles in the zoomed-out smallmap (r27622, r27621, r27620)
+- Fix: [Script] Kill scripts, when a non-suspendable valuator call takes way too long [FS#6473] (r27594)
+
+
1.6.1 (2016-07-01)
------------------------------------------------------------------------
- Fix: Compilation and optimisation issues with GCC6 (r27606, r27605, r27595)
diff --git a/media/extra_grf/airports.nfo b/media/extra_grf/airports.nfo
index 8feb813baf..45cd25de04 100644
--- a/media/extra_grf/airports.nfo
+++ b/media/extra_grf/airports.nfo
@@ -23,3 +23,16 @@
-1 sprites/airports.png 8bpp 82 88 64 31 -31 0 normal
-1 sprites/airports.png 8bpp 162 88 64 31 -31 0 normal
-1 sprites/airports.png 8bpp 242 88 64 31 -31 0 normal
+ -1 * 0 0C "Climate specific sprites by PaulC"
+ -1 * 0 07 83 01 \7! 01 03
+ -1 * 0 05 90 02 0D
+ -1 sprites/airports.png 8bpp 320 88 64 31 -31 0 normal
+ -1 sprites/airports.png 8bpp 400 88 64 31 -31 0 normal
+ -1 * 0 07 83 01 \7! 02 03
+ -1 * 0 05 90 02 0D
+ -1 sprites/airports.png 8bpp 480 88 64 31 -31 0 normal
+ -1 sprites/airports.png 8bpp 560 88 64 31 -31 0 normal
+ -1 * 0 07 83 01 \7! 03 03
+ -1 * 0 05 90 02 0D
+ -1 sprites/airports.png 8bpp 640 88 64 31 -31 0 normal
+ -1 sprites/airports.png 8bpp 720 88 64 31 -31 0 normal
diff --git a/media/extra_grf/airports.png b/media/extra_grf/airports.png
index fd63355b1f..5fb9618bc5 100644
Binary files a/media/extra_grf/airports.png and b/media/extra_grf/airports.png differ
diff --git a/media/extra_grf/airports_orig_extra.nfo b/media/extra_grf/airports_orig_extra.nfo
new file mode 100644
index 0000000000..f2a8dc8327
--- /dev/null
+++ b/media/extra_grf/airports_orig_extra.nfo
@@ -0,0 +1,12 @@
+//
+// $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 .
+//
+ -1 * 0 0C "Climate specific airport sprite by PaulC"
+ -1 * 0 07 83 01 \7! 03 02
+ -1 * 0 0A 01 01 2F 08
+ -1 sprites/airports.png 8bpp 20 170 42 39 -19 -21 normal
diff --git a/media/extra_grf/openttdgui.png b/media/extra_grf/openttdgui.png
index 28ad2fbafe..94871968d3 100644
Binary files a/media/extra_grf/openttdgui.png and b/media/extra_grf/openttdgui.png differ
diff --git a/media/extra_grf/orig_extra.nfo b/media/extra_grf/orig_extra.nfo
index 534badab03..a1173a58c1 100644
--- a/media/extra_grf/orig_extra.nfo
+++ b/media/extra_grf/orig_extra.nfo
@@ -78,6 +78,7 @@
#include "chars_orig_extra.nfo"
#include "shore.nfo"
#include "fix_graphics.nfo"
+#include "airports_orig_extra.nfo"
#include "canals_extra.nfo"
#include "rivers/rapids.nfo"
#include "rivers/temperate.nfo"
diff --git a/os/debian/changelog b/os/debian/changelog
index c8cf30794b..ce2582128c 100644
--- a/os/debian/changelog
+++ b/os/debian/changelog
@@ -1,3 +1,39 @@
+openttd (1.7.2-0) unstable; urgency=low
+
+ * New upstream release 1.7.2
+
+ -- OpenTTD Sun, 24 Dec 2017 14:00:00 +0100
+
+openttd (1.7.2~RC1-0) unstable; urgency=low
+
+ * New upstream release 1.7.2-RC1
+
+ -- OpenTTD Mon, 11 Dec 2017 21:30:00 +0100
+
+openttd (1.7.1-0) unstable; urgency=low
+
+ * New upstream release 1.7.1
+
+ -- OpenTTD Tue, 13 Jun 2017 21:00:00 +0200
+
+openttd (1.7.1~RC1-0) unstable; urgency=low
+
+ * New upstream release 1.7.1-RC1
+
+ -- OpenTTD Thu, 04 Mai 2017 21:00:00 +0200
+
+openttd (1.7.0-0) unstable; urgency=low
+
+ * New upstream release 1.7.0
+
+ -- OpenTTD Sat, 01 Apr 2017 19:00:00 +0200
+
+openttd (1.7.0~RC1-0) unstable; urgency=low
+
+ * New upstream release 1.7.0-RC1
+
+ -- OpenTTD Sat, 11 Mar 2017 22:30:00 +0100
+
openttd (1.6.1-0) unstable; urgency=low
* New upstream release 1.6.1
diff --git a/os/debian/copyright b/os/debian/copyright
index ab62f66a42..05cbfc4328 100644
--- a/os/debian/copyright
+++ b/os/debian/copyright
@@ -5,7 +5,7 @@ Source: http://www.openttd.org
Files: *
-Copyright: © 2004-2017 Ludvig Strigeous and others.
+Copyright: © 2004-2018 Ludvig Strigeous and others.
License: GPL-2.0
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License version 2.0 as
diff --git a/os/rpm/openttd.spec b/os/rpm/openttd.spec
index 9685624462..27acc1b7df 100644
--- a/os/rpm/openttd.spec
+++ b/os/rpm/openttd.spec
@@ -2,7 +2,7 @@
# spec file for package openttd
#
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
-# Copyright (c) 2007-2017 The OpenTTD developers
+# Copyright (c) 2007-2018 The OpenTTD developers
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
diff --git a/readme.txt b/readme.txt
index e378bd5d22..5f6598b9a2 100644
--- a/readme.txt
+++ b/readme.txt
@@ -680,6 +680,7 @@ http://homer.rice.edu/~sandmann/cwsdpmi/csdpmi5s.zip
X.X) Credits
---- -------
The OpenTTD team (in alphabetical order):
+ Grzegorz Duczyński (adf88) - General coding (since 1.7.2)
Albert Hofkamp (Alberth) - GUI expert (since 0.7)
Matthijs Kooijman (blathijs) - Pathfinder-guru, Debian port (since 0.3)
Ulf Hermann (fonsinchen) - Cargo Distribution (since 1.3)
diff --git a/src/company_manager_face.h b/src/company_manager_face.h
index 993e539cc7..511f85b7d5 100644
--- a/src/company_manager_face.h
+++ b/src/company_manager_face.h
@@ -78,7 +78,7 @@ static const CompanyManagerFaceBitsInfo _cmf_info[] = {
/* CMFV_MOUSTACHE */ { 13, 2, { 3, 0, 3, 0 }, { 0x367, 0, 0x397, 0 } }, ///< Depends on CMFV_HAS_MOUSTACHE
/* CMFV_LIPS */ { 13, 4, { 12, 10, 9, 9 }, { 0x35B, 0x351, 0x3A5, 0x3C8 } }, ///< Depends on !CMFV_HAS_MOUSTACHE
/* CMFV_NOSE */ { 17, 3, { 8, 4, 4, 5 }, { 0x349, 0x34C, 0x393, 0x3B3 } }, ///< Depends on !CMFV_HAS_MOUSTACHE
- /* CMFV_HAIR */ { 20, 4, { 9, 5, 5, 4 }, { 0x382, 0x38B, 0x3D4, 0x3D9 } },
+ /* CMFV_HAIR */ { 20, 4, { 9, 5, 5, 5 }, { 0x382, 0x38B, 0x3D4, 0x3D9 } },
/* CMFV_JACKET */ { 24, 2, { 3, 3, 3, 3 }, { 0x36B, 0x378, 0x36B, 0x378 } },
/* CMFV_COLLAR */ { 26, 2, { 4, 4, 4, 4 }, { 0x36E, 0x37B, 0x36E, 0x37B } },
/* CMFV_TIE_EARRING */ { 28, 3, { 6, 3, 6, 3 }, { 0x372, 0x37F, 0x372, 0x3D1 } }, ///< Depends on CMFV_HAS_TIE_EARRING
diff --git a/src/depot_gui.cpp b/src/depot_gui.cpp
index 15291f6b63..14461d8817 100644
--- a/src/depot_gui.cpp
+++ b/src/depot_gui.cpp
@@ -383,12 +383,13 @@ struct DepotWindow : Window {
int col = _colour_gradient[wid->colour][4];
int image_left = rtl ? r.left + this->count_width : r.left + this->header_width;
int image_right = rtl ? r.right - this->header_width : r.right - this->count_width;
+ int first_line = w + (-this->hscroll->GetPosition()) % w;
if (rtl) {
- for (int x = image_right - w; x > image_left; x -= w) {
+ for (int x = image_right - first_line; x >= image_left; x -= w) {
GfxDrawLine(x, r.top, x, r.bottom, col, 1, 3);
}
} else {
- for (int x = image_left + w; x < image_right; x += w) {
+ for (int x = image_left + first_line; x <= image_right; x += w) {
GfxDrawLine(x, r.top, x, r.bottom, col, 1, 3);
}
}
@@ -734,7 +735,8 @@ struct DepotWindow : Window {
}
/* Always have 1 empty row, so people can change the setting of the train */
this->vscroll->SetCount(this->vehicle_list.Length() + this->wagon_list.Length() + 1);
- this->hscroll->SetCount(max_width);
+ /* Always make it longer than the longest train, so you can attach vehicles at the end, and also see the next vertical tile separator line */
+ this->hscroll->SetCount(max_width + ScaleGUITrad(2 * VEHICLEINFO_FULL_VEHICLE_WIDTH + 1));
} else {
this->vscroll->SetCount(CeilDiv(this->vehicle_list.Length(), this->num_columns));
}
diff --git a/src/economy.cpp b/src/economy.cpp
index 0106e87e14..e97f61d6e9 100644
--- a/src/economy.cpp
+++ b/src/economy.cpp
@@ -654,12 +654,16 @@ static void CompanyCheckBankrupt(Company *c)
*/
static void CompaniesGenStatistics()
{
- Station *st;
+ /* Check for bankruptcy each month */
+ Company *c;
+ FOR_ALL_COMPANIES(c) {
+ CompanyCheckBankrupt(c);
+ }
Backup cur_company(_current_company, FILE_LINE);
- Company *c;
if (!_settings_game.economy.infrastructure_maintenance) {
+ Station *st;
FOR_ALL_STATIONS(st) {
cur_company.Change(st->owner);
CommandCost cost(EXPENSES_PROPERTY, _price[PR_STATION_VALUE] >> 1);
@@ -688,11 +692,6 @@ static void CompaniesGenStatistics()
}
cur_company.Restore();
- /* Check for bankruptcy each month */
- FOR_ALL_COMPANIES(c) {
- CompanyCheckBankrupt(c);
- }
-
/* Only run the economic statics and update company stats every 3rd month (1st of quarter). */
if (!HasBit(1 << 0 | 1 << 3 | 1 << 6 | 1 << 9, _cur_month)) return;
diff --git a/src/fileio.cpp b/src/fileio.cpp
index 526f5b184f..0590efd3a7 100644
--- a/src/fileio.cpp
+++ b/src/fileio.cpp
@@ -584,32 +584,6 @@ bool AppendPathSeparator(char *buf, const char *last)
return true;
}
-/**
- * Allocates and files a variable with the full path
- * based on the given directory.
- * @param dir the directory to base the path on
- * @return the malloced full path
- */
-char *BuildWithFullPath(const char *dir)
-{
- char *dest = MallocT(MAX_PATH);
- char *last = dest + MAX_PATH - 1;
- strecpy(dest, dir, last);
-
- /* Check if absolute or relative path */
- const char *s = strchr(dest, PATHSEPCHAR);
-
- /* Add absolute path */
- if (s == NULL || dest != s) {
- if (getcwd(dest, MAX_PATH) == NULL) *dest = '\0';
- AppendPathSeparator(dest, last);
- strecat(dest, dir, last);
- }
- AppendPathSeparator(dest, last);
-
- return dest;
-}
-
/**
* Find the first directory in a tar archive.
* @param tarname the name of the tar archive to look in.
diff --git a/src/industry.h b/src/industry.h
index 5e5d046880..9b185efc4b 100644
--- a/src/industry.h
+++ b/src/industry.h
@@ -66,7 +66,6 @@ struct Industry : IndustryPool::PoolItem<&_industry_pool> {
Date last_cargo_accepted_at; ///< Last day cargo was accepted by this industry
byte selected_layout; ///< Which tile layout was used when creating the industry
- byte random_triggers; ///< Triggers for the random
uint16 random; ///< Random value used for randomisation of all kinds of things
PersistentStorage *psa; ///< Persistent storage for NewGRF industries.
diff --git a/src/industry_cmd.cpp b/src/industry_cmd.cpp
index 8fea6953ae..9c98b120c6 100644
--- a/src/industry_cmd.cpp
+++ b/src/industry_cmd.cpp
@@ -491,7 +491,12 @@ static CommandCost ClearTile_Industry(TileIndex tile, DoCommandFlag flags)
return CommandCost(EXPENSES_CONSTRUCTION, indspec->GetRemovalCost());
}
-static void TransportIndustryGoods(TileIndex tile)
+/**
+ * Move produced cargo from industry to nearby stations.
+ * @param tile Industry tile
+ * @return true if any cargo was moved.
+ */
+static bool TransportIndustryGoods(TileIndex tile)
{
Industry *i = Industry::GetByTile(tile);
const IndustrySpec *indspec = GetIndustrySpec(i->type);
@@ -516,16 +521,7 @@ static void TransportIndustryGoods(TileIndex tile)
}
}
- if (moved_cargo && !StartStopIndustryTileAnimation(i, IAT_INDUSTRY_DISTRIBUTES_CARGO)) {
- uint newgfx = GetIndustryTileSpec(GetIndustryGfx(tile))->anim_production;
-
- if (newgfx != INDUSTRYTILE_NOANIM) {
- ResetIndustryConstructionStage(tile);
- SetIndustryCompleted(tile);
- SetIndustryGfx(tile, newgfx);
- MarkTileDirtyByTile(tile);
- }
- }
+ return moved_cargo;
}
@@ -810,7 +806,17 @@ static void TileLoop_Industry(TileIndex tile)
if (_game_mode == GM_EDITOR) return;
- TransportIndustryGoods(tile);
+ if (TransportIndustryGoods(tile) && !StartStopIndustryTileAnimation(Industry::GetByTile(tile), IAT_INDUSTRY_DISTRIBUTES_CARGO)) {
+ uint newgfx = GetIndustryTileSpec(GetIndustryGfx(tile))->anim_production;
+
+ if (newgfx != INDUSTRYTILE_NOANIM) {
+ ResetIndustryConstructionStage(tile);
+ SetIndustryCompleted(tile);
+ SetIndustryGfx(tile, newgfx);
+ MarkTileDirtyByTile(tile);
+ return;
+ }
+ }
if (StartStopIndustryTileAnimation(tile, IAT_TILELOOP)) return;
diff --git a/src/industry_gui.cpp b/src/industry_gui.cpp
index 41b3c573ff..2e06983af0 100644
--- a/src/industry_gui.cpp
+++ b/src/industry_gui.cpp
@@ -777,37 +777,30 @@ public:
y += FONT_HEIGHT_NORMAL;
first = false;
}
+ SetDParam(0, CargoSpec::Get(i->accepts_cargo[j])->name);
+ SetDParam(1, i->accepts_cargo[j]);
+ SetDParam(2, i->incoming_cargo_waiting[j]);
+ SetDParamStr(3, "");
+ StringID str = STR_NULL;
switch (cargo_suffix[j].display) {
- case CSD_CARGO_AMOUNT:
- if (stockpiling) {
- SetDParam(0, i->accepts_cargo[j]);
- SetDParam(1, i->incoming_cargo_waiting[j]);
- DrawString(left_side, right - WD_FRAMERECT_RIGHT, y, STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT);
- break;
- }
+ case CSD_CARGO_AMOUNT_TEXT:
+ SetDParamStr(3, cargo_suffix[j].text);
FALLTHROUGH;
-
- case CSD_CARGO:
- SetDParam(0, CargoSpec::Get(i->accepts_cargo[j])->name);
- DrawString(left_side, right - WD_FRAMERECT_RIGHT, y, STR_INDUSTRY_VIEW_ACCEPT_CARGO);
+ case CSD_CARGO_AMOUNT:
+ str = stockpiling ? STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT : STR_INDUSTRY_VIEW_ACCEPT_CARGO;
break;
case CSD_CARGO_TEXT:
- SetDParam(0, CargoSpec::Get(i->accepts_cargo[j])->name);
- SetDParamStr(1, cargo_suffix[j].text);
- DrawString(left_side, right - WD_FRAMERECT_RIGHT, y, STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT);
- break;
-
- case CSD_CARGO_AMOUNT_TEXT:
- SetDParam(0, i->accepts_cargo[j]);
- SetDParam(1, i->incoming_cargo_waiting[j]);
- SetDParamStr(2, cargo_suffix[j].text);
- DrawString(left_side, right - WD_FRAMERECT_RIGHT, y, STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT);
+ SetDParamStr(3, cargo_suffix[j].text);
+ FALLTHROUGH;
+ case CSD_CARGO:
+ str = STR_INDUSTRY_VIEW_ACCEPT_CARGO;
break;
default:
NOT_REACHED();
}
+ DrawString(left_side, right - WD_FRAMERECT_RIGHT, y, str);
y += FONT_HEIGHT_NORMAL;
}
diff --git a/src/lang/afrikaans.txt b/src/lang/afrikaans.txt
index 02c5e92135..b7fee9ae8b 100644
--- a/src/lang/afrikaans.txt
+++ b/src/lang/afrikaans.txt
@@ -2688,7 +2688,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Maatskappy-besi
STR_ABOUT_OPENTTD :{WHITE}Oor OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Oorspronklike kopiereg {COPYRIGHT} 1995 Chris Sawyer, Alle regte voorbehou
STR_ABOUT_VERSION :{BLACK}OpenTTD uitgawe {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 Die OpenTTD span
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 Die OpenTTD span
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Spaar Spel
diff --git a/src/lang/arabic_egypt.txt b/src/lang/arabic_egypt.txt
index 70e4734099..b026705865 100644
--- a/src/lang/arabic_egypt.txt
+++ b/src/lang/arabic_egypt.txt
@@ -2320,7 +2320,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :ارض مملو
STR_ABOUT_OPENTTD :{WHITE}حول النسخة المفتوحة
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}الحقوق الاصلية {COPYRIGHT} كريس سوير 1995 , جميع الحقوق محفوظة
STR_ABOUT_VERSION :{BLACK}النسخة المفتوحة رقم {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}النسخة المفتوحة {COPYRIGHT}2002-2017 فريق النسخة المفتوحة
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}النسخة المفتوحة {COPYRIGHT}2002-2018 فريق النسخة المفتوحة
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}حفظ اللعبة
diff --git a/src/lang/basque.txt b/src/lang/basque.txt
index f761d45931..6d80461b68 100644
--- a/src/lang/basque.txt
+++ b/src/lang/basque.txt
@@ -2592,7 +2592,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Konpainia jabe
STR_ABOUT_OPENTTD :{WHITE}OpenTTD-ri buruz
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Original copyright {COPYRIGHT} 1995 Chris Sawyer, All rights reserved
STR_ABOUT_VERSION :{BLACK}OpenTTD bertsioa {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 The OpenTTD team
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 The OpenTTD team
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Gordetako jokoa
diff --git a/src/lang/belarusian.txt b/src/lang/belarusian.txt
index fc469fe53e..a9824eec67 100644
--- a/src/lang/belarusian.txt
+++ b/src/lang/belarusian.txt
@@ -3020,7 +3020,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Зямля на
STR_ABOUT_OPENTTD :{WHITE}Аб OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Арыґінальныя аўтарскія правы {COPYRIGHT} 1995 Chris Sawyer. Усе правы абароненыя.
STR_ABOUT_VERSION :{BLACK}OpenTTD вэрсія {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002–2017 Каманда распрацоўнікаў OpenTTD
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002–2018 Каманда распрацоўнікаў OpenTTD
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Захаваць гульню
diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt
index f5ab33faf5..859a6c1afa 100644
--- a/src/lang/brazilian_portuguese.txt
+++ b/src/lang/brazilian_portuguese.txt
@@ -1286,8 +1286,8 @@ STR_CONFIG_SETTING_HOVER_DELAY_VALUE :Aguardar {COMMA
STR_CONFIG_SETTING_HOVER_DELAY_DISABLED :Botão direito
STR_CONFIG_SETTING_POPULATION_IN_LABEL :Exibir população da cidade na janela da cidade: {STRING}
STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Exibe a população das cidades nos nomes, no mapa
-STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Grossura das linhas nos gráficos: {STRING}
-STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Grossura da linha nos gráficos. Linhas finas são mais precisas, enquanto linhas grossas são mais fáceis de distinguir.
+STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Espessura das linhas nos gráficos: {STRING}
+STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Espessura da linha nos gráficos. Linhas finas são mais precisas, enquanto linhas grossas são mais fáceis de distinguir.
STR_CONFIG_SETTING_LANDSCAPE :Terreno: {STRING}
STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :O terreno define a jogabilidade básica com diferentes cargas e requerimentos para o crescimento das cidades. NewGRF's e Scripts de Jogo permitem um controle mais fino
@@ -1373,6 +1373,8 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Desligado
STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Mover a tela com o botão esquerdo: {STRING}
STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Ativa rolamento do mapa por clique e arraste com o botão esquerdo. Especialmente útil ao usar um touchscreen para o rolamento
+STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Fechar janela com botão direito do mouse: {STRING}
+STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Fecha uma janela ao clicar com o botão direito do mouse nela. Desativa o tooltip com o botão direito!
STR_CONFIG_SETTING_AUTOSAVE :Auto-salvar: {STRING}
STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Selecione intervalo entre jogos salvos automaticamente
@@ -1536,12 +1538,12 @@ STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI_HELPTEXT :Exibe uma janel
STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE :Tipo de sinal a ser construído: {STRING}
STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE_HELPTEXT :Tipo padrão de sinal a se utilizar
STR_CONFIG_SETTING_DEFAULT_SIGNAL_NORMAL :Normal
-STR_CONFIG_SETTING_DEFAULT_SIGNAL_PBS :Avançado
-STR_CONFIG_SETTING_DEFAULT_SIGNAL_PBSOWAY :Avançado de mão única
+STR_CONFIG_SETTING_DEFAULT_SIGNAL_PBS :De trajeto
+STR_CONFIG_SETTING_DEFAULT_SIGNAL_PBSOWAY :De trajeto de mão única
STR_CONFIG_SETTING_CYCLE_SIGNAL_TYPES :Tipo de sinal a ser exibido: {STRING}
STR_CONFIG_SETTING_CYCLE_SIGNAL_TYPES_HELPTEXT :Seleciona quais tipos de sinal a exibir, quando Ctrl+Clicar em Construir Sinais com a ferramenta Sinal
STR_CONFIG_SETTING_CYCLE_SIGNAL_NORMAL :Normal apenas
-STR_CONFIG_SETTING_CYCLE_SIGNAL_PBS :Avançados apenas
+STR_CONFIG_SETTING_CYCLE_SIGNAL_PBS :De trajeto apenas
STR_CONFIG_SETTING_CYCLE_SIGNAL_ALL :Todos
STR_CONFIG_SETTING_TOWN_LAYOUT :Disposição de ruas para novas cidades: {STRING}
@@ -1762,6 +1764,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Checar p
STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Exibe configurações de IA e script do jogo
STR_INTRO_TOOLTIP_QUIT :{BLACK}Sair do 'OpenTTD'
+STR_INTRO_BASESET :{BLACK}Faltam {NUM} "sprite{P "" s}" no conjunto de gráficos base selecionado. Por favor verifique se há atualizações para ele.
STR_INTRO_TRANSLATION :{BLACK}Faltam {NUM} string{P "" s} nessa tradução. Por favor faça o OpenTTD melhor se inscrevendo como tradutor. Leia Readme.txt para mais detalhes.
# Quit window
@@ -2358,14 +2361,14 @@ STR_BUILD_SIGNAL_SEMAPHORE_NORM_TOOLTIP :{BLACK}Sinais p
STR_BUILD_SIGNAL_SEMAPHORE_ENTRY_TOOLTIP :{BLACK}Sinal de Entrada (semáforo){}Verde enquanto haja um ou mais sinais de saída verdes na atual seção dos trilhos. Do contrário, mostra vermelho
STR_BUILD_SIGNAL_SEMAPHORE_EXIT_TOOLTIP :{BLACK}Sinal de saída (semáforo){}Funciona como um sinal normal, porém é necessário para o funcionamento correto do sistema de pré-sinais combo ou de entrada
STR_BUILD_SIGNAL_SEMAPHORE_COMBO_TOOLTIP :{BLACK}Sinal combo (semáforo){}O sinal combo funciona tanto como um sinal de entrada quanto de saída. Permite construir várias ramificações
-STR_BUILD_SIGNAL_SEMAPHORE_PBS_TOOLTIP :{BLACK}Sinal avançado(Semáforo){}Um sinal avançado permite mais de um trem em um bloco de ferrovia, Se o trem no bloco puder reservar um local seguro para parar, o sinal avançado já permite a passada do próximo
-STR_BUILD_SIGNAL_SEMAPHORE_PBS_OWAY_TOOLTIP :{BLACK}Sinal avançado de mão única(Semáforo){}Um sinal avançado permite mais de um trem em um bloco de ferrovia, Se o trem no bloco puder reservar um local seguro para parar, o sinal avançado já permite a passada do próximo, porém não permite a passagem na via contrária
+STR_BUILD_SIGNAL_SEMAPHORE_PBS_TOOLTIP :{BLACK}Sinal de trajeto(Semáforo){}Um sinal de trajeto permite mais de um trem em um bloco de ferrovia, Se o trem no bloco puder reservar um local seguro para parar, o sinal de trajeto já permite a passada do próximo
+STR_BUILD_SIGNAL_SEMAPHORE_PBS_OWAY_TOOLTIP :{BLACK}Sinal de trajeto de mão única(Semáforo){}Um sinal de trajeto permite mais de um trem em um bloco de ferrovia, Se o trem no bloco puder reservar um local seguro para parar, o sinal de trajeto já permite a passada do próximo, porém não permite a passagem na via contrária
STR_BUILD_SIGNAL_ELECTRIC_NORM_TOOLTIP :{BLACK}Sinal Padrão (elétrico){}Sinais são necessários para impedir que trens batam em redes de ferrovias com mais de uma máquina
STR_BUILD_SIGNAL_ELECTRIC_ENTRY_TOOLTIP :{BLACK}Sinal de Entrada (elétrico){}Verde enquanto haja um ou mais sinais de saída verdes na atual seção dos trilhos. Do contrário, mostra vermelho
STR_BUILD_SIGNAL_ELECTRIC_EXIT_TOOLTIP :{BLACK}Sinal de saída(elétrico){}Funciona como um sinal normal, porém é necessário para o funcionamento correto do sistema de pré-sinais combo ou de entrada
STR_BUILD_SIGNAL_ELECTRIC_COMBO_TOOLTIP :{BLACK}Sinal Combo (elétrico){}O sinal combo funciona tanto como um sinal de entrada quanto de saída. Permite construir várias ramificações de pré-sinais
-STR_BUILD_SIGNAL_ELECTRIC_PBS_TOOLTIP :{BLACK}Sinal de trajeto(Elétrico){}Um sinal de trajeto permite mais de um trem entrar em um bloco de sinal ao mesmo tempo, se o trem puder reservar um trajeto para um ponto seguro de parada. Sinais de trajeto padrões podem ser passados pelo lado de trás
-STR_BUILD_SIGNAL_ELECTRIC_PBS_OWAY_TOOLTIP :{BLACK}Sinal avançado de mão única(Elétrico){}Um sinal avançado permite mais de um trem em um bloco de ferrovia, Se o trem no bloco puder reservar um local seguro para parar, o sinal avançado já permite a passada do próximo, porém não permite a passagem na via contrária
+STR_BUILD_SIGNAL_ELECTRIC_PBS_TOOLTIP :{BLACK}Sinal de trajeto (Elétrico){}Um sinal de trajeto permite mais de um trem entrar em um bloco de sinal ao mesmo tempo, se o trem puder reservar um trajeto para um ponto seguro de parada. Sinais de trajeto padrões podem ser passados pelo lado de trás
+STR_BUILD_SIGNAL_ELECTRIC_PBS_OWAY_TOOLTIP :{BLACK}Sinal avançado de mão única(Elétrico){}Um sinal de trajeto permite mais de um trem em um bloco de ferrovia, Se o trem no bloco puder reservar um local seguro para parar, o sinal de trajeto já permite a passada do próximo, porém não permite a passagem na via contrária
STR_BUILD_SIGNAL_CONVERT_TOOLTIP :{BLACK}Converter sinal{}Quando selecionado, clicar num sinal existente converte-o para o tipo selecionado e suas variantes. Ctrl+Clique muda a variante atual. Shift+Clique mostra o preço estimado da conversão
STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_TOOLTIP :{BLACK}Densidade dos sinais ao clicar e arrastar
STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_DECREASE_TOOLTIP :{BLACK}Diminuir a densidade dos sinais
@@ -2590,6 +2593,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Nome da
STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Carga aceita: {LTBLUE}
STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
+STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Tipo de ferrovia: {LTBLUE}{STRING}
STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Velocidade limite do trilho: {LTBLUE}{VELOCITY}
STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Limite de velocidade da rua: {LTBLUE}{VELOCITY}
@@ -2602,29 +2606,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Campos
STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Neve
STR_LAI_CLEAR_DESCRIPTION_DESERT :Deserto
-STR_LAI_RAIL_DESCRIPTION_TRACK :Trilho de Ferrovia
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Trilho de Ferrovia com sinais normais
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Trilho de Ferrovia com pré-sinais
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Trilho de Ferrovia com sinais de saída
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Trilho de Ferrovia com sinais-combo
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Trilho de Ferrovia com sinais avançados
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Trilhos de Ferrovia com sinais avançados de mão única
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Trilho de Ferrovia com sinais normais e pré-sinais
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Trilho de Ferrovia com sinais normais e pré-sinais
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Trilho de Ferrovia com sinais normais e sinais-combo
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Trilho de Ferrovia com sinais normais e avançados
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Trilho de Ferrovia com sinais normais e avançados de mão única
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Trilho de Ferrovia com pré-sinais e de saída
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Trilho de Ferrovia com pré-sinais e sinais-combo
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Trilho de Ferrovia com pré-sinais e sinais avançados
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Trilho de Ferrovia com pré-sinais e avançados de mão única
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Trilho de Ferrovia com sinais de saída e sinais-combo
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Trilho de Ferrovia com sinais de saída e avançados
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Trilho de Ferrovia com sinais de saída e avançados de mão única
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Trilho de Ferrovia com sinais-combo e avançados
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Trilho de Ferrovia com sinais-combo e avançados de mão única
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Trilho de Ferrovia com sinais avançados e avançados de mão única
-STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Depósito de Ferrovia
+STR_LAI_RAIL_DESCRIPTION_TRACK :Trilho de ferrovia
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Trilho de ferrovia com sinais normais
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Trilho de ferrovia com pré-sinais
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Trilho de ferrovia com sinais de saída
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Trilho de ferrovia com sinais-combo
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Trilho de ferrovia com sinais de trajeto
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Trilhos de Ferrovia com sinais de trajeto de mão única
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Trilho de ferrovia com sinais normais e pré-sinais
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Trilho de ferrovia com sinais normais e pré-sinais
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Trilho de ferrovia com sinais normais e sinais-combo
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Trilho de ferrovia com sinais normais e de trajeto
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Trilho de ferrovia com sinais normais e de trajeto de mão única
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Trilho de ferrovia com pré-sinais e de saída
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Trilho de ferrovia com pré-sinais e sinais-combo
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Trilho de ferrovia com pré-sinais e sinais de trajeto
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Trilho de ferrovia com pré-sinais de trajeto e de mão única
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Trilho de ferrovia com sinais de saída e sinais-combo
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Trilho de ferrovia com sinais de saída e de trajeto
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Trilho de ferrovia com sinais de saída de trajeto e de mão única
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Trilho de ferrovia com sinais-combo e de trajeto
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Trilho de ferrovia com sinais-combo de trajeto e de mão única
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Trilho de ferrovia com sinais de trajeto normais e de mão única
+STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Depósito de ferrovia
STR_LAI_ROAD_DESCRIPTION_ROAD :Rodovia
STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Rodovia iluminada
@@ -2688,7 +2692,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :O terreno é pr
STR_ABOUT_OPENTTD :{WHITE}Sobre o OpenTTD...
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright original {COPYRIGHT} 1995 Chris Sawyer, Todos os direitos reservados
STR_ABOUT_VERSION :{BLACK}OpenTTD versão {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 A equipe do OpenTTD
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 A equipe do OpenTTD
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Salvar Jogo
@@ -3293,6 +3297,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Requer:
STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Requer: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING}
############ range for requires ends
+STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Necessita:
+STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING}
+STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{STRING}{BLACK}: {CARGO_SHORT} aguardando{STRING}
############ range for produces starts
STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produz: {YELLOW}{STRING}{STRING}
@@ -3361,6 +3368,10 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Remover todos o
STR_GROUP_RENAME_CAPTION :{BLACK}Renomear um grupo
+STR_GROUP_PROFIT_THIS_YEAR :Lucros deste ano:
+STR_GROUP_PROFIT_LAST_YEAR :Lucros do ano passado:
+STR_GROUP_OCCUPANCY :Uso atual:
+STR_GROUP_OCCUPANCY_VALUE :{NUM}%
# Build vehicle window
STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Novos Veículos Ferroviários
@@ -3393,6 +3404,7 @@ STR_PURCHASE_INFO_ALL_TYPES :Todos as cargas
STR_PURCHASE_INFO_ALL_BUT :Todas menos {CARGO_LIST}
STR_PURCHASE_INFO_MAX_TE :{BLACK}Tração máx : {GOLD}{FORCE}
STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Alcance: {GOLD}{COMMA} quadrados
+STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Tipo de aeronave: {GOLD}{STRING}
STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Lista de trens - clique num trem para informações. Cltr+Clique para alterar a visibilidade do tipo de trem
STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Lista de automóveis - clique num automóvel para informações. Cltr+Clique para alterar a visibilidade do tipo de automóvel
@@ -3527,6 +3539,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :locomotiva magl
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Preço: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidade: {VELOCITY} Potência: {POWER}{}Custo de manutenção: {CURRENCY_LONG}/ano{}Capacidade: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Preço: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Vel.: {VELOCITY} Potência: {POWER} Tração Máx: {6:FORCE}{}Custo de manutenção: {4:CURRENCY_LONG}/yr{}Capacidade: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Preço: {CURRENCY_LONG} Vel. Max.: {VELOCITY}{}Capacidade: {CARGO_LONG}{}Custo de manuteção: {CURRENCY_LONG}/ano
+STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Vel Máx.: {VELOCITY}{}Tipo de aeronave: {STRING}{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Custo de oper.: {CURRENCY_LONG}/ano
+STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Vel Máx.: {VELOCITY}{}Tipo de aeronave: {STRING}{}Capacidade: {CARGO_LONG}{}Custo de oper.: {CURRENCY_LONG}/ano
+STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Vel. Máx.: {VELOCITY}{}Tipo de aeronave: {STRING} Alcance: {COMMA} quadrados{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Custo de oper.: {CURRENCY_LONG}/ano
+STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Vel. Máx.: {VELOCITY}{}Tipo de aeronave: {STRING} Alcance: {COMMA} quadrados{}Capacidade: {CARGO_LONG}{}Custo de oper.: {CURRENCY_LONG}/ano
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Substituir {STRING} - {STRING}
@@ -3556,6 +3572,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Pression
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Troca entre substituir máquinas e substituir vagões
STR_REPLACE_ENGINES :Motores
STR_REPLACE_WAGONS :Vagões
+STR_REPLACE_ALL_RAILTYPE :Todos os veículos ferroviários
STR_REPLACE_HELP_RAILTYPE :{BLACK}Escolha o tipo de ferrovia para o qual deseja efetuar a substituição dos motores
STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Exibe o tipo de motor que substituirá o que está selecionado à esquerda, se algum
@@ -3648,6 +3665,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} ano{P "
STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} ano{P "" s} ({COMMA})
STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Velocidade Max: {LTBLUE}{VELOCITY}
+STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Vel. Máx.: {LTBLUE}{VELOCITY} {BLACK}Tipo de aeronave: {LTBLUE}{STRING}
+STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Vel. Máx.: {LTBLUE}{VELOCITY} {BLACK}Tipo de aeronave: {LTBLUE}{STRING} {BLACK}Alcance: {LTBLUE}{COMMA} quadrados
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Força: {LTBLUE}{POWER}{BLACK} Velocidade Max: {LTBLUE}{VELOCITY}
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Força: {LTBLUE}{POWER}{BLACK} Velocidade Max: {LTBLUE}{VELOCITY} {BLACK}Max. T.E.: {LTBLUE}{FORCE}
@@ -3778,7 +3797,7 @@ STR_ORDER_CONDITIONAL_LOAD_PERCENTAGE :Percentual carr
STR_ORDER_CONDITIONAL_RELIABILITY :Confiabilidade
STR_ORDER_CONDITIONAL_MAX_SPEED :Velocidade máxima
STR_ORDER_CONDITIONAL_AGE :Idade (anos)
-STR_ORDER_CONDITIONAL_REQUIRES_SERVICE :Necessia de manutenção
+STR_ORDER_CONDITIONAL_REQUIRES_SERVICE :Necessita de manutenção
STR_ORDER_CONDITIONAL_UNCONDITIONALLY :Sempre
STR_ORDER_CONDITIONAL_REMAINING_LIFETIME :Tempo de vida restante (anos)
diff --git a/src/lang/bulgarian.txt b/src/lang/bulgarian.txt
index 81ae04a8ac..f366f29344 100644
--- a/src/lang/bulgarian.txt
+++ b/src/lang/bulgarian.txt
@@ -2626,7 +2626,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Земя, пр
STR_ABOUT_OPENTTD :{WHITE}Относно OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Авторски права {COPYRIGHT} 1995 Крис Сойер (Chris Sawyer), Всички права са запазени
STR_ABOUT_VERSION :{BLACK}OpenTTD версия {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 The OpenTTD team
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2018 The OpenTTD team
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Запази играта
diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt
index 3cbde7515f..28814005c8 100644
--- a/src/lang/catalan.txt
+++ b/src/lang/catalan.txt
@@ -2692,7 +2692,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :terreny propiet
STR_ABOUT_OPENTTD :{WHITE}Quant a l'OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright original {COPYRIGHT} 1995 Chris Sawyer. Tots els drets reservats.
STR_ABOUT_VERSION :{BLACK}Versió {REV} de l'OpenTTD
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 L'equip de l'OpenTTD
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 L'equip de l'OpenTTD
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Desa la Partida
@@ -3297,11 +3297,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Necessit
STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Necessita: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING}
############ range for requires ends
-STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Necessita
-STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}esperant
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING}
+STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Necessita:
+STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING}
+STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{STRING}{BLACK}: {CARGO_SHORT} esperant{STRING}
############ range for produces starts
STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produeix: {YELLOW}{STRING}{STRING}
diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt
index 13e90746c5..e7694f1bde 100644
--- a/src/lang/croatian.txt
+++ b/src/lang/croatian.txt
@@ -572,7 +572,7 @@ STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Zumirano do kra
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Standardno zumiranje slike zaslona
STR_ABOUT_MENU_GIANT_SCREENSHOT :Slika zaslona cijele karte
STR_ABOUT_MENU_ABOUT_OPENTTD :O 'OpenTTD'
-STR_ABOUT_MENU_SPRITE_ALIGNER :Poravnjanje sprite-a
+STR_ABOUT_MENU_SPRITE_ALIGNER :Poravnanje spritea
STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Odaberi granične okvire
STR_ABOUT_MENU_TOGGLE_DIRTY_BLOCKS :Mijenjaj boju blatnih blokova
############ range ends here
@@ -778,7 +778,7 @@ STR_PLAYLIST_TOOLTIP_CLICK_TO_ADD_TRACK :{BLACK}Klikni n
STR_PLAYLIST_TOOLTIP_CLICK_TO_REMOVE_TRACK :{BLACK}Klikni na glazbenu traku kako bi ju uklonio iz trenutnog programa (samo Proizvoljno 1 ili Proizvoljno 2)
# Highscore window
-STR_HIGHSCORE_TOP_COMPANIES_WHO_REACHED :{BIG_FONT}{BLACK}Najbolje tvrtke koje su dosigle razinu {NUM}
+STR_HIGHSCORE_TOP_COMPANIES_WHO_REACHED :{BIG_FONT}{BLACK}Najbolje tvrtke do {NUM}. godine
STR_HIGHSCORE_TOP_COMPANIES_NETWORK_GAME :{BIG_FONT}{BLACK}Tablica tvrtki u {NUM}
STR_HIGHSCORE_POSITION :{BIG_FONT}{BLACK}{COMMA}.
STR_HIGHSCORE_PERFORMANCE_TITLE_BUSINESSMAN :Privrednik
@@ -962,13 +962,13 @@ STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION
STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} od sada prihvaća {STRING.aku}
STR_NEWS_STATION_NOW_ACCEPTS_CARGO_AND_CARGO :{WHITE}{STATION} od sada prihvaća {STRING.aku} i {STRING.aku}
-STR_NEWS_OFFER_OF_SUBSIDY_EXPIRED :{BIG_FONT}{BLACK}Istekla je ponuda subvencije:{}{}prijevoz {STRING.gen} od {STRING} do {STRING} više neće biti subvencioniran
+STR_NEWS_OFFER_OF_SUBSIDY_EXPIRED :{BIG_FONT}{BLACK}Istekla je ponuda za poticaje:{}{}prijevoz {STRING.gen} od {STRING} do {STRING} više neće biti potican
STR_NEWS_SUBSIDY_WITHDRAWN_SERVICE :{BIG_FONT}{BLACK}Subvencija je povučena:{}{}prijevoz {STRING.gen} od {STRING} do {STRING} više nije subvencioniran
-STR_NEWS_SERVICE_SUBSIDY_OFFERED :{BIG_FONT}{BLACK}Ponuđena je subvencija:{}{}Prvi koji preveze {STRING.aku} od {STRING} do {STRING} primat će jednogodišnju subvenciju od lokalne samouprave!
+STR_NEWS_SERVICE_SUBSIDY_OFFERED :{BIG_FONT}{BLACK}Ponuđen je poticaj:{}{}Prvi koji preveze {STRING.aku} od {STRING} do {STRING} primat će jednogodišnji poticaj lokalne samouprave!
STR_NEWS_SERVICE_SUBSIDY_AWARDED_HALF :{BIG_FONT}{BLACK}Subvencija je dodijeljena tvrtki {STRING}!{}{}Prijevoz {STRING.gen} od postaje {STRING} do postaje {STRING} plaćat će se 50% više sljedećih godinu dana!
STR_NEWS_SERVICE_SUBSIDY_AWARDED_DOUBLE :{BIG_FONT}{BLACK}Subvencija je dodijeljena tvrtki {STRING}!{}{}Prijevoz {STRING.gen} od postaje {STRING} do postaje {STRING} plaćat će se dvostruko sljedećih godinu dana!
-STR_NEWS_SERVICE_SUBSIDY_AWARDED_TRIPLE :{BIG_FONT}{BLACK}Subvencija je dodijeljena tvrtki {STRING}!{}{}Prijevoz {STRING.gen} od postaje {STRING} do postaje {STRING} plaćat će se trostruko sljedećih godinu dana!
-STR_NEWS_SERVICE_SUBSIDY_AWARDED_QUADRUPLE :{BIG_FONT}{BLACK}Subvencija je dodijeljena tvrtki {STRING}!{}{}Prijevoz {STRING.gen} od postaje {STRING} do postaje {STRING} plaćat će se četverostruko sljedećih godinu dana!
+STR_NEWS_SERVICE_SUBSIDY_AWARDED_TRIPLE :{BIG_FONT}{BLACK}Poticaj je dodijeljen tvrtki {STRING}!{}{}Prijevoz {STRING.gen} od postaje {STRING} do postaje {STRING} plaćat će se trostruko sljedećih godinu dana!
+STR_NEWS_SERVICE_SUBSIDY_AWARDED_QUADRUPLE :{BIG_FONT}{BLACK}Poticaj je dodijeljen tvrtki {STRING}!{}{}Prijevoz {STRING.gen} od postaje {STRING} do postaje {STRING} plaćat će se četverostruko sljedećih godinu dana!
STR_NEWS_ROAD_REBUILDING :{BIG_FONT}{BLACK}Grad {TOWN} zahvatio je prometni kaos!{}{}Program rekonstrukcije cesta koji financira tvrtka {STRING} sljedećih će 6 mjeseci zadavati glavobolje motoriziranima!
STR_NEWS_EXCLUSIVE_RIGHTS_TITLE :{BIG_FONT}{BLACK}Monopol transporta!
@@ -1245,7 +1245,7 @@ STR_CONFIG_SETTING_CONSTRUCTION_SPEED :Brzina gradnje:
STR_CONFIG_SETTING_CONSTRUCTION_SPEED_HELPTEXT :Limitiraj količinu građevinskih akcija za UI-je
STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS :Kvarovi vozila: {STRING}
STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS_HELPTEXT :Kontroliraj kako često se mogu pokvariti loše servisirana vozila
-STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER :Množitelj za subvencije: {STRING}
+STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER :Množitelj za poticaje: {STRING}
STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER_HELPTEXT :Postavi koliko se plaća za subvencionirane veze
STR_CONFIG_SETTING_CONSTRUCTION_COSTS :Građevinski troškovi: {STRING}
STR_CONFIG_SETTING_CONSTRUCTION_COSTS_HELPTEXT :Postavi razinu građevinskih troškova i troškova kupnje
@@ -1385,9 +1385,9 @@ STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Debljina linija
STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Debljina linije u grafikonima. Tanja linija je preciznija za čitanje, deblja linija je lakša za vidjeti i boje su lakše za razabrati
STR_CONFIG_SETTING_LANDSCAPE :Krajolik: {STRING}
-STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :Tereni definiraju osnovne scenarije za igru sa različitim teretima i preduvjetima za rast gradova. NewGRF-ovi i Skripte Igre dozvoljavaju detaljnije kontrole i postavke.
+STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :Tereni određuju osnovne scenarije za igru s različitim teretima i preduvjetima za rast gradova. NewGRF-ovi i Skripte Igre omogućavaju detaljnije kontrole i postavke.
STR_CONFIG_SETTING_LAND_GENERATOR :Generator zemlje: {STRING}
-STR_CONFIG_SETTING_LAND_GENERATOR_HELPTEXT :Originalni generator ovisi o baznom grafičkom setu i stvara fiksne oblike u terenu. TerraGenesis je generator baziran na Perlinu sa detaljnijim kontrolama i postavkama.
+STR_CONFIG_SETTING_LAND_GENERATOR_HELPTEXT :Izvorni generator ovisi o osnovnom grafičkom setu i stvara fiksne oblike terena. TerraGenesis je generator temeljen na Perlinovom šumu s detaljnijim kontrolama i postavkama.
STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Izvorni
STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis
STR_CONFIG_SETTING_TERRAIN_TYPE :Vrsta terena: {STRING}
@@ -1580,17 +1580,17 @@ STR_CONFIG_SETTING_DISABLE_ELRAILS_HELPTEXT :Uključivanjem
STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OWN :Dolazak prvog vozila na postaju igrača: {STRING}
STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OWN_HELPTEXT :Prikaži novine kada prvo vozilo dođe na stanicu novog igrača
STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OTHER :Dolazak prvog vozila na postaju suparnika: {STRING}
-STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OTHER_HELPTEXT :Prikaži novine kada prvo vozilo dođe na suparnikovu stanicu
+STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OTHER_HELPTEXT :Prikaži novosti kada prvo vozilo dođe na protivničku postaju
STR_CONFIG_SETTING_NEWS_ACCIDENTS_DISASTERS :Nesreće / katastrofe: {STRING}
STR_CONFIG_SETTING_NEWS_ACCIDENTS_DISASTERS_HELPTEXT :Prikaži novine kod nesreća ili katastrofa
STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION :Podaci vezani za tvrtku: {STRING}
-STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION_HELPTEXT :Prikaži novine kada se pojavi nova tvrtka ili kada tvrtke riskiraju bankrot
+STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION_HELPTEXT :Prikaži novosti kada se pojavi nova tvrtka ili kada tvrtke riskiraju bankrot
STR_CONFIG_SETTING_NEWS_INDUSTRY_OPEN :Otvaranje industrije: {STRING}
STR_CONFIG_SETTING_NEWS_INDUSTRY_OPEN_HELPTEXT :Prikaži novine kada se nove industrije otvaraju
STR_CONFIG_SETTING_NEWS_INDUSTRY_CLOSE :Zatvaranje industrije: {STRING}
-STR_CONFIG_SETTING_NEWS_INDUSTRY_CLOSE_HELPTEXT :Prikaži novine kada se industrije zatvaraju
-STR_CONFIG_SETTING_NEWS_ECONOMY_CHANGES :Promjene u gospodarstvu: {STRING}
-STR_CONFIG_SETTING_NEWS_ECONOMY_CHANGES_HELPTEXT :Prikaži novine vezano za globalne promjene u ekonomiji
+STR_CONFIG_SETTING_NEWS_INDUSTRY_CLOSE_HELPTEXT :Prikaži novosti kada se industrije zatvaraju
+STR_CONFIG_SETTING_NEWS_ECONOMY_CHANGES :Gospodarske promjene: {STRING}
+STR_CONFIG_SETTING_NEWS_ECONOMY_CHANGES_HELPTEXT :Prikaži novosti vezane za globalne gospodarske promjene
STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_COMPANY :Promjene u proizvodnji industrija koje opslužuje tvrtka: {STRING}
STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_COMPANY_HELPTEXT :Prikaži novine kod promjene proizvodnih razina industrija koje tvrtka opslužuje
STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_OTHER :Promjene u proizvodnji industrija koje opslužuju suparnici: {STRING}
@@ -1602,11 +1602,11 @@ STR_CONFIG_SETTING_NEWS_ADVICE_HELPTEXT :Prikaži poruke
STR_CONFIG_SETTING_NEWS_NEW_VEHICLES :Nova vozila: {STRING}
STR_CONFIG_SETTING_NEWS_NEW_VEHICLES_HELPTEXT :Prikaži novine kada neki novi tip vozila postane dostupan
STR_CONFIG_SETTING_NEWS_CHANGES_ACCEPTANCE :Promjene u prihvaćanju tereta: {STRING}
-STR_CONFIG_SETTING_NEWS_CHANGES_ACCEPTANCE_HELPTEXT :Prikaži poruke o stanicama koje mijenjaju prihvaćanje nekih tereta
+STR_CONFIG_SETTING_NEWS_CHANGES_ACCEPTANCE_HELPTEXT :Prikaži poruke o postajama koje mijenjaju prihvaćanje nekih tereta
STR_CONFIG_SETTING_NEWS_SUBSIDIES :Subvencije: {STRING}
-STR_CONFIG_SETTING_NEWS_SUBSIDIES_HELPTEXT :Prikaži novine vezano za događaje o subvencijama
+STR_CONFIG_SETTING_NEWS_SUBSIDIES_HELPTEXT :Prikaži novosti vezane za poticaje
STR_CONFIG_SETTING_NEWS_GENERAL_INFORMATION :Opće informacije: {STRING}
-STR_CONFIG_SETTING_NEWS_GENERAL_INFORMATION_HELPTEXT :Prikaži novine vezano za opće događaje kao za kupnju ekskluzivnih prava ili financiranje rekonstrukcije cesta
+STR_CONFIG_SETTING_NEWS_GENERAL_INFORMATION_HELPTEXT :Prikaži novosti vezane za opće događaje kao što su kupnja ekskluzivnih prava ili financiranje rekonstrukcije cesta
STR_CONFIG_SETTING_NEWS_MESSAGES_OFF :Isključeno
STR_CONFIG_SETTING_NEWS_MESSAGES_SUMMARY :Sažetak
@@ -1615,7 +1615,7 @@ STR_CONFIG_SETTING_NEWS_MESSAGES_FULL :Sve
STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :Vijesti u boji pojavljuju se: {STRING}
STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :Godina u kojoj će se novine početi izdavati u boji. Prije ove godine, koriste se crno/bijele novine
STR_CONFIG_SETTING_STARTING_YEAR :Početna godina: {STRING}
-STR_CONFIG_SETTING_SMOOTH_ECONOMY :Uključi tečnu ekonomiju (više manjih izazova): {STRING}
+STR_CONFIG_SETTING_SMOOTH_ECONOMY :Uključi stabilno gospodarstvo (više manjih izazova): {STRING}
STR_CONFIG_SETTING_SMOOTH_ECONOMY_HELPTEXT :Kada je uključeno, promjene u industrijskoj proizvodnji su češće ali u manjim rasponima. Ova postavka obično nema efekta ukoliko su industrije postavljene iz nekog NewGRF-a
STR_CONFIG_SETTING_ALLOW_SHARES :Dopusti kupovanje udjela u drugim tvrtkama: {STRING}
STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Kada je uključeno, dopušta se kupnja i prodaja dionica tvrtki. Dionice će postati dostupne samo za tvrtke određene starosti
@@ -1651,11 +1651,11 @@ STR_CONFIG_SETTING_TOWN_LAYOUT_RANDOM :Nasumično
STR_CONFIG_SETTING_ALLOW_TOWN_ROADS :Gradovi mogu graditi ceste: {STRING}
STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT :Dopusti gradovima građenje cesta u svrhu rasta. Isključi za sprečavanje gradskih vlasti u samostalnoj gradnji cesta
STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS :Gradovi smiju graditi pružne prijelaze: {STRING}
-STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS_HELPTEXT :Uključivanje ove postavke dozvoljava se gradovima da grade cestovno-pružne prijelaze
+STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS_HELPTEXT :Uključivanje ove postavke dopušta gradovima izgradnju cestovno-pružnih prijelaza
STR_CONFIG_SETTING_NOISE_LEVEL :Omogući određivanje razine buke za zračne luke od strane gradova: {STRING}
STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :Kada je ova postavka isključena, mogu postojati dvije zračne luke u svakom gradu. Kada je ova postavka uključena, broj zračnih luka u nekom gradu je ograničen količinom dopuštene buke u gradu, koja ovisi o broju stanovnika i udaljenosti i veličini zračne luke
STR_CONFIG_SETTING_TOWN_FOUNDING :Osnivanje gradova tijekom igre: {STRING}
-STR_CONFIG_SETTING_TOWN_FOUNDING_HELPTEXT :Uklučivanje ove postavke dozvoljava igračima osnivanje novih gradova tijekom igre
+STR_CONFIG_SETTING_TOWN_FOUNDING_HELPTEXT :Uklučivanje ove postavke dopušta igračima osnivanje novih gradova tijekom igre
STR_CONFIG_SETTING_TOWN_FOUNDING_FORBIDDEN :Zabranjeno
STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED :Dopušteno
STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED_CUSTOM_LAYOUT :Dopušteno, proizvoljan raspored grada
@@ -1882,8 +1882,8 @@ STR_OSNAME_SUNOS :SunOS
# Abandon game
STR_ABANDON_GAME_CAPTION :{WHITE}Napusti igru
-STR_ABANDON_GAME_QUERY :{YELLOW}Jesi li siguran da želiš napustiti ovu igru?
-STR_ABANDON_SCENARIO_QUERY :{YELLOW}Jesi li siguran da želiš napustiti ovaj scenarij?
+STR_ABANDON_GAME_QUERY :{YELLOW}Doista želiš napustiti ovu igru?
+STR_ABANDON_SCENARIO_QUERY :{YELLOW}Doista želiš napustiti ovaj scenarij?
# Cheat window
STR_CHEATS :{WHITE}Varanje
@@ -2377,7 +2377,7 @@ STR_TRANSPARENT_LOADING_TOOLTIP :{BLACK}Namjesti
STR_TRANSPARENT_INVISIBLE_TOOLTIP :{BLACK}Učini objekte nevidljivima umjesto prozirnima
# Linkgraph legend window
-STR_LINKGRAPH_LEGEND_CAPTION :{BLACK}Legenda protoka tereta
+STR_LINKGRAPH_LEGEND_CAPTION :{BLACK}Kazalo protoka tereta
STR_LINKGRAPH_LEGEND_ALL :{BLACK}Sve
STR_LINKGRAPH_LEGEND_NONE :{BLACK}Ništa
STR_LINKGRAPH_LEGEND_SELECT_COMPANIES :{BLACK}Odaberi tvrtke koje će se prikazati
@@ -2452,13 +2452,13 @@ STR_STATION_CLASS_WAYP :Čvorišta
# Signal window
STR_BUILD_SIGNAL_CAPTION :{WHITE}Izbornik signala
-STR_BUILD_SIGNAL_SEMAPHORE_NORM_TOOLTIP :{BLACK}Standardni signal (semafor){}Ovo je najosnovnija vrsta signala, dozvoljava istovremeno samo jedan vlak u bloku
+STR_BUILD_SIGNAL_SEMAPHORE_NORM_TOOLTIP :{BLACK}Standardni signal (semafor){}Ovo je najosnovnija vrsta signala, dopušta istovremeno samo jedan vlak u bloku
STR_BUILD_SIGNAL_SEMAPHORE_ENTRY_TOOLTIP :{BLACK}Ulazni signal (semafor){}Zeleno sve dok je jedan ili više zelenih izlaznih signala na sljedećem dijelu pruge. U protivnom pokazuje crveno
STR_BUILD_SIGNAL_SEMAPHORE_EXIT_TOOLTIP :{BLACK}Izlazni signal (semafor){}Ponaša se na isti način kao i normalni signali, ali je nužno pogoditi točnu boju na ulaznim i kombo pred-signalima
STR_BUILD_SIGNAL_SEMAPHORE_COMBO_TOOLTIP :{BLACK}Kombo signal (semafor){}Kombo signal jednostavno radi kao ulazni i izlazni signal. Ovo omogućava izgradnju velike "mreže" pred-signala.
STR_BUILD_SIGNAL_SEMAPHORE_PBS_TOOLTIP :{BLACK}Putni signal (semafor){}Putni signal omogućava da više od jednog vlaka uđe istovremeno u signalni blok, ako vlak može rezervirati putanju do sigurnog zaustavnog mjesta. Standardne putne signale moguće je proći iz suprotnog smjera.
STR_BUILD_SIGNAL_SEMAPHORE_PBS_OWAY_TOOLTIP :{BLACK}Jednosmjerni putni signal (semafor){}Putni signal omogućava da više od jednog vlaka uđe istovremeno u signalni blok, ako vlak može rezervirati putanju do sigurnog zaustavnog mjesta. Jednosmjerne putne signale nije moguće proći iz suprotnog smjera
-STR_BUILD_SIGNAL_ELECTRIC_NORM_TOOLTIP :{BLACK}Standardni signal (električni){}Ovo je najosnovnija vrsta signala, dozvoljava istovremeno samo jedan vlak u bloku
+STR_BUILD_SIGNAL_ELECTRIC_NORM_TOOLTIP :{BLACK}Standardni signal (električni){}Ovo je najosnovnija vrsta signala, istovremeno dopušta samo jedan vlak u bloku
STR_BUILD_SIGNAL_ELECTRIC_ENTRY_TOOLTIP :{BLACK}Ulazni signal (električni){}Zeleno sve dok je jedan ili više zelenih izlaznih signala na sljedećem dijelu pruge. U protivnom pokazuje crveno
STR_BUILD_SIGNAL_ELECTRIC_EXIT_TOOLTIP :{BLACK}Izlazni signal (električni){}Ponaša se na isti način kao i normalni signali, ali je nužno pogoditi točnu boju na ulaznim i kombo pred-signalima.
STR_BUILD_SIGNAL_ELECTRIC_COMBO_TOOLTIP :{BLACK}Kombo signal (električni){}Kombo signal jednostavno radi kao ulazni i izlazni signal. Ovo omogućava izgradnju velike "mreže" pred-signala.
@@ -2572,7 +2572,7 @@ STR_STATION_BUILD_NOISE :{BLACK}Proizved
STR_LANDSCAPING_TOOLBAR :{WHITE}Uređivanje krajolika
STR_LANDSCAPING_TOOLTIP_LOWER_A_CORNER_OF_LAND :{BLACK}Snizi jedan kut zemlje. Povlačenje snižava prvi odabrani kut i poravnava selektirano područje na novu visinu prvog kuta. Ctrl selektira područje dijagonalno. Shift mijenja prikaz građenje/procjena troškova.
STR_LANDSCAPING_TOOLTIP_RAISE_A_CORNER_OF_LAND :{BLACK}Podigni jedan kut zemlje. Povlačenje podiže prvi odabrani kut i poravnava selektirano područje na novu visinu prvog kuta. Ctrl selektira područje dijagonalno. Shift mijenja prikaz građenje/procjena troškova.
-STR_LANDSCAPING_LEVEL_LAND_TOOLTIP :{BLACK}Poravnaj područje zemlje na visinu prvog odabranog kuta. Ctrl selektira područje dijagonalno. Shift mijenja prikaz građenje/procjena troškova.
+STR_LANDSCAPING_LEVEL_LAND_TOOLTIP :{BLACK}Izravnaj zemlju na visinu prvog odabranog kuta. Ctrl odabire područje dijagonalno. Shift mijenja prikaz građenje/procjena troškova.
STR_LANDSCAPING_TOOLTIP_PURCHASE_LAND :{BLACK}Kupi zemlju za buduću uporabu. Shift mijenja prikaz građenje/procjena troškova.
# Object construction window
@@ -2787,7 +2787,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Zemlja u posjed
STR_ABOUT_OPENTTD :{WHITE}O OpenTTD-u
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Izvorno autorsko pravo {COPYRIGHT} 1995 Chris Sawyer, sva prava pridržana
STR_ABOUT_VERSION :{BLACK}OpenTTD verzija {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD tim
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 OpenTTD tim
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Spremi igru
@@ -3392,11 +3392,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Treba: {
STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Treba: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING}
############ range for requires ends
-STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Treba
-STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}čeka
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING}
+STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Treba:
+STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING}
+STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{STRING}{BLACK}: {CARGO_SHORT} čeka{STRING}
############ range for produces starts
STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Proizvodi: {YELLOW}{STRING}{STRING}
diff --git a/src/lang/czech.txt b/src/lang/czech.txt
index c914cfdc4d..cab72a7c92 100644
--- a/src/lang/czech.txt
+++ b/src/lang/czech.txt
@@ -2784,7 +2784,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Půda vlastněn
STR_ABOUT_OPENTTD :{WHITE}O OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Původní copyright: {COPYRIGHT} 1995 Chris Sawyer, všechna práva vyhrazena
STR_ABOUT_VERSION :{BLACK}OpenTTD verze {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 Tým OpenTTD
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 Tým OpenTTD
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Uložit hru
@@ -3389,11 +3389,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Vyžaduj
STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Vyžaduje: {YELLOW}{STRING.acc}{STRING}, {STRING.acc}{STRING}, {STRING.acc}{STRING}
############ range for requires ends
-STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Vyžaduje
-STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}ček{P á ají á}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING}
+STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Vyžaduje:
+STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING}
+STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{STRING}{BLACK}: {CARGO_SHORT} ček{P á ají á}{STRING}
############ range for produces starts
STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produkuje: {YELLOW}{STRING}{STRING}
diff --git a/src/lang/danish.txt b/src/lang/danish.txt
index 18abcb7846..3119390f3e 100644
--- a/src/lang/danish.txt
+++ b/src/lang/danish.txt
@@ -1372,6 +1372,8 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Fra
STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Venstreklik-scrolling: {STRING}
STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Aktiver rulle kortet ved at trække den med venstre museknap. Dette er især nyttigt, når du bruger en touch-screen til at rulle
+STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Luk vindue ved højre-klik: {STRING}
+STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Lukker vinduet ved at højreklikke inde i det. Deaktiverer værktøjstip ved at højreklikke!
STR_CONFIG_SETTING_AUTOSAVE :Auto gem: {STRING}
STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Vælg interval mellem automatisk gemte spil
@@ -1761,6 +1763,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Tjek for
STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Vis computerspiller/spilscript indstillinger
STR_INTRO_TOOLTIP_QUIT :{BLACK}Afslut 'OpenTTD'
+STR_INTRO_BASESET :{BLACK} Det aktuelt valgte base grafiksæt mangler {NUM} sprite {P "" s}. Se venligst efter opdateringer til basesættet.
STR_INTRO_TRANSLATION :{BLACK}Denne oversættelse mangler {NUM} streng{P "" e}. Hjælp venligst med at gøre OpenTTD bedre ved at tilmelde dig som oversætter. Se readme.txt for detaljer.
# Quit window
@@ -2589,6 +2592,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Lufthavn
STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Accepteret last: {LTBLUE}
STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
+STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Tog type: {LTBLUE}{STRING}
STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Togspors hastighedsgrænse: {LTBLUE}{VELOCITY}
STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Vej hastighedsbegrænsning: {LTBLUE}{VELOCITY}
@@ -2604,13 +2608,13 @@ STR_LAI_CLEAR_DESCRIPTION_DESERT :Ørken
STR_LAI_RAIL_DESCRIPTION_TRACK :Jernbane spor
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Jernbane spor med bloksignaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Jernbane spor med with pre-signaler
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Jernbane spor med udgangssignaler
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Jernbane spor med udgangs-signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Jernbane spor med kombinerede signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Jernbane spor med rute-signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Jernbane spor med en-vejs-signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Jernbane spor med blok- og pre-signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Jernbane spor med blok- og udgangs-signaler
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Jernbane spor med blok og kombinerede signaler
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Jernbane spor med blok- og kombinerede signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Jernbane spor med blok- og rute-signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Jernbane spor med blok og en-vejs rute-signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Jernbane spor med pre- og udgangs-signaler
@@ -2621,7 +2625,7 @@ STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Jernbane spor m
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Jernbane spor med udgangs- og rute-signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Jernbane spor med udgangs- og en-vejs rute-signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Jernbane spor med kombinerede og rute-signaler
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Jernbane spor med kombinerede og en-vejs rute-signaler
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Jernbane spor med kombinationede- og en-vejs rute-signaler
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Jernbane spor med rute- og en-vejs rute-signaler
STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Jernbane togdepot
@@ -2687,7 +2691,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Land ejet af se
STR_ABOUT_OPENTTD :{WHITE}Om OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Original copyright {COPYRIGHT} 1995 Chris Sawyer, Alle rettigheder reserveret
STR_ABOUT_VERSION :{BLACK}OpenTTD version {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD teamet
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 OpenTTD teamet
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Gem spil
@@ -3292,6 +3296,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Kræver:
STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Kræver: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING}
############ range for requires ends
+STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Kræver:
+STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING}
+STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{STRING}{BLACK}: {CARGO_SHORT} venter{STRING}
############ range for produces starts
STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Producerer: {YELLOW}{STRING}{STRING}
@@ -3360,6 +3367,10 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Fjern alle kør
STR_GROUP_RENAME_CAPTION :{BLACK}Omdøb en gruppe
+STR_GROUP_PROFIT_THIS_YEAR :Afkast i år:
+STR_GROUP_PROFIT_LAST_YEAR :Afkast sidste år:
+STR_GROUP_OCCUPANCY :Nuværende brug:
+STR_GROUP_OCCUPANCY_VALUE :{NUM}%
# Build vehicle window
STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nye jernbanekøretøjer
@@ -3392,6 +3403,7 @@ STR_PURCHASE_INFO_ALL_TYPES :Alle lasttyper
STR_PURCHASE_INFO_ALL_BUT :Alle undtagen {CARGO_LIST}
STR_PURCHASE_INFO_MAX_TE :{BLACK}Maks. trækkraft: {GOLD}{FORCE}
STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Rækkevidde: {GOLD}{COMMA} felter
+STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Fly type: {GOLD}{STRING}
STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Togvalgsliste - klik på et køretøj for mere information
STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Liste over køretøjstyper - klik på køretøj for information
@@ -3526,6 +3538,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :magnetskinnelok
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}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Maks. hast.: {VELOCITY}{}Kapacitet: {CARGO_LONG}{}Driftsomkostninger: {CURRENCY_LONG}/år
+STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Max. Hastighed: {VELOCITY}{}Aircraft type: {STRING}{}Kapacitet: {CARGO_LONG}, {CARGO_LONG}{}Omkostninger: {CURRENCY_LONG}/år
+STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Max. Hastighed: {VELOCITY}{}Fly type: {STRING}{}Kapacitet: {CARGO_LONG}{}Omkostninger: {CURRENCY_LONG}/år
+STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Max. Hastighed: {VELOCITY}{}Fly type: {STRING} Rækkevidde: {COMMA} felter{}Kapacitet: {CARGO_LONG}, {CARGO_LONG}{}Omkostninger: {CURRENCY_LONG}/år
+STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Pris: {CURRENCY_LONG} Max. Hastighed{VELOCITY}{}Fly type: {STRING} Rækkevidde: {COMMA} felter{}Kapacitet: {CARGO_LONG}{}Omkostninger: {CURRENCY_LONG}/år
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Udskift {STRING} - {STRING}
@@ -3555,6 +3571,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Tryk for
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Skift imellem lokomotiv- og vognudskiftningsvindue
STR_REPLACE_ENGINES :Lokomotiver
STR_REPLACE_WAGONS :Vogne
+STR_REPLACE_ALL_RAILTYPE :Alle jernbanevogne
STR_REPLACE_HELP_RAILTYPE :{BLACK}Vælg den skinne type, du ønsker at udskifte lokomotiver til
STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Viser hvilket køretøj det valgte køretøj til venstre bliver udskiftet med, hvis det udskiftes
@@ -3647,6 +3664,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} år ({C
STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} år ({COMMA})
STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Maks. hast.: {LTBLUE}{VELOCITY}
+STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Max. hastighed: {LTBLUE}{VELOCITY} {BLACK}Fly type: {LTBLUE}{STRING}
+STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Max. hastighed: {LTBLUE}{VELOCITY} {BLACK}Fly type: {LTBLUE}{STRING} {BLACK}Rækkevidde: {LTBLUE}{COMMA} felter
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Vægt: {LTBLUE}{WEIGHT_SHORT} {BLACK}Effekt: {LTBLUE}{POWER}{BLACK} Maks. hast.: {LTBLUE}{VELOCITY}
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Vægt: {LTBLUE}{WEIGHT_SHORT} {BLACK}Effekt: {LTBLUE}{POWER}{BLACK} Maks. hast.: {LTBLUE}{VELOCITY} {BLACK}Maks. trækkraft: {LTBLUE}{FORCE}
diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt
index ca1ce4be2c..383706f727 100644
--- a/src/lang/dutch.txt
+++ b/src/lang/dutch.txt
@@ -2691,7 +2691,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terrein in bedr
STR_ABOUT_OPENTTD :{WHITE}Over OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Originele copyright {COPYRIGHT} 1995 Chris Sawyer, alle rechten voorbehouden
STR_ABOUT_VERSION :{BLACK}OpenTTD versie {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 Het OpenTTD-team
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 Het OpenTTD-team
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Spel Opslaan
@@ -3296,11 +3296,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Vereist:
STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Vereist: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING}
############ range for requires ends
-STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Vereist
-STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}wachtend
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING}
+STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Vereist:
+STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING}
+STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{STRING}{BLACK}: {CARGO_SHORT} wachtend{STRING}
############ range for produces starts
STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produceert: {YELLOW}{STRING}{STRING}
diff --git a/src/lang/english.txt b/src/lang/english.txt
index 0228f9c307..258c02c6d6 100644
--- a/src/lang/english.txt
+++ b/src/lang/english.txt
@@ -2691,7 +2691,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Company-owned l
STR_ABOUT_OPENTTD :{WHITE}About OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Original copyright {COPYRIGHT} 1995 Chris Sawyer, All rights reserved
STR_ABOUT_VERSION :{BLACK}OpenTTD version {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 The OpenTTD team
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 The OpenTTD team
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Save Game
@@ -3296,11 +3296,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Requires
STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Requires: {YELLOW}{STRING}{RAW_STRING}, {STRING}{RAW_STRING}, {STRING}{RAW_STRING}
############ range for requires ends
-STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Requires
-STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}waiting
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{RAW_STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{RAW_STRING}
+STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Requires:
+STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:RAW_STRING}
+STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{STRING}{BLACK}: {CARGO_SHORT} waiting{RAW_STRING}
############ range for produces starts
STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produces: {YELLOW}{STRING}{RAW_STRING}
diff --git a/src/lang/english_AU.txt b/src/lang/english_AU.txt
index a37f78d61c..8d51d06660 100644
--- a/src/lang/english_AU.txt
+++ b/src/lang/english_AU.txt
@@ -2662,7 +2662,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Company-owned l
STR_ABOUT_OPENTTD :{WHITE}About OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Original copyright {COPYRIGHT} 1995 Chris Sawyer, All rights reserved
STR_ABOUT_VERSION :{BLACK}OpenTTD version {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 The OpenTTD team
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 The OpenTTD team
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Save Game
diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt
index 63314c4159..86519ddc61 100644
--- a/src/lang/english_US.txt
+++ b/src/lang/english_US.txt
@@ -2691,7 +2691,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Company-owned l
STR_ABOUT_OPENTTD :{WHITE}About OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Original copyright {COPYRIGHT} 1995 Chris Sawyer, All rights reserved
STR_ABOUT_VERSION :{BLACK}OpenTTD version {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 The OpenTTD team
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 The OpenTTD team
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Save Game
@@ -3296,11 +3296,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Requires
STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Requires: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING}
############ range for requires ends
-STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Requires
-STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}waiting
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING}
+STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Requires:
+STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING}
+STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{STRING}{BLACK}: {CARGO_SHORT} waiting{STRING}
############ range for produces starts
STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produces: {YELLOW}{STRING}{STRING}
diff --git a/src/lang/esperanto.txt b/src/lang/esperanto.txt
index 8cb30a79d2..949fdb0d2c 100644
--- a/src/lang/esperanto.txt
+++ b/src/lang/esperanto.txt
@@ -2265,7 +2265,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Kompanie poseda
STR_ABOUT_OPENTTD :{WHITE}Pri OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Origina kopirajto {COPYRIGHT} 1995 Chris Sawyer, Ĉiuj rajtoj rezervitaj
STR_ABOUT_VERSION :{BLACK}OpenTTD-versio {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 La teamo de OpenTTD
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2018 La teamo de OpenTTD
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Konservu Ludon
diff --git a/src/lang/estonian.txt b/src/lang/estonian.txt
index a69b0da58a..344f099741 100644
--- a/src/lang/estonian.txt
+++ b/src/lang/estonian.txt
@@ -2745,7 +2745,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Ettevõtte maa
STR_ABOUT_OPENTTD :{WHITE}OpenTTD lisainfo
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Algne autorikaitse {COPYRIGHT} 1995 Chris Sawyer, kõik õigused kaitstud
STR_ABOUT_VERSION :{BLACK}OpenTTD osa {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 OpenTTD meeskond
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2018 OpenTTD meeskond
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Mängu salvestamine
diff --git a/src/lang/faroese.txt b/src/lang/faroese.txt
index 3fcea7a53e..4d90facad2 100644
--- a/src/lang/faroese.txt
+++ b/src/lang/faroese.txt
@@ -2427,7 +2427,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Ogn hjá fyrit
STR_ABOUT_OPENTTD :{WHITE}Um OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Upprunalig upphavsrættindi {COPYRIGHT} 1995 Chris Sawyer, Øll rættindi umbiðin
STR_ABOUT_VERSION :{BLACK}OpenTTD útgáva {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD toymi
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 OpenTTD toymi
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Goym spæl
diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt
index 98fd58031d..b53a762c9b 100644
--- a/src/lang/finnish.txt
+++ b/src/lang/finnish.txt
@@ -2691,7 +2691,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Yhtiön omistam
STR_ABOUT_OPENTTD :{WHITE}Tietoja OpenTTD:stä
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Alkuperäiset oikeudet {COPYRIGHT} 1995 Chris Sawyer, kaikki oikeudet pidätetään
STR_ABOUT_VERSION :{BLACK}OpenTTD-versio {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 The OpenTTD team
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 The OpenTTD team
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Tallenna peli
@@ -3296,9 +3296,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Tarvitse
STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Tarvitsee: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING}
############ range for requires ends
-STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Tarvitsee
-STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}odottamassa
+STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Tarvitsee:
+STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING}
+STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{STRING}{BLACK}: {CARGO_SHORT} odottamassa{STRING}
############ range for produces starts
STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Tuottaa: {YELLOW}{STRING}{STRING}
diff --git a/src/lang/french.txt b/src/lang/french.txt
index 3b74d392b4..2c57358046 100644
--- a/src/lang/french.txt
+++ b/src/lang/french.txt
@@ -1373,6 +1373,8 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Désactivé
STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Défilement par clic gauche{NBSP}: {STRING}
STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Active le défilement de la carte en la glissant avec le bouton gauche de la souris. C'est surtout utile pour les écrans tactiles
+STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Fermer une fenêtre en cliquant droit{NBSP}: {STRING}
+STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Fermer une fenêtre en cliquant droit à l’intérieur de celle-ci. Désactive l'infobulle sur clic droit{NBSP}!
STR_CONFIG_SETTING_AUTOSAVE :Sauvegarde automatique{NBSP}: {STRING}
STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Sélectionner l'intervalle de temps entre les sauvegardes automatiques
@@ -2690,7 +2692,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terrain apparte
STR_ABOUT_OPENTTD :{WHITE}À propos de OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright original {COPYRIGHT} 1995 Chris Sawyer, Tous droits réservés
STR_ABOUT_VERSION :{BLACK}OpenTTD version {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 L'équipe OpenTTD
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 L'équipe OpenTTD
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Sauvegarder la partie
@@ -3295,11 +3297,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Nécessi
STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Nécessite{NBSP}: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING}
############ range for requires ends
-STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Nécessite
-STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}en attente
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING}
+STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Nécessite{NBSP}:
+STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING}
+STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{STRING}{BLACK}{NBSP}: {CARGO_SHORT} en attente{STRING}
############ range for produces starts
STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produit{NBSP}: {YELLOW}{STRING}{STRING}
@@ -3368,6 +3368,10 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Retirer tous le
STR_GROUP_RENAME_CAPTION :{BLACK}Renommer un groupe
+STR_GROUP_PROFIT_THIS_YEAR :Profit cette année{NBSP}:
+STR_GROUP_PROFIT_LAST_YEAR :Profit l'année précédente{NBSP}:
+STR_GROUP_OCCUPANCY :Utilisation actuelle{NBSP}:
+STR_GROUP_OCCUPANCY_VALUE :{NUM}%
# Build vehicle window
STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Nouveaux véhicules ferroviaires
diff --git a/src/lang/gaelic.txt b/src/lang/gaelic.txt
index fa202dc6d4..c06b81ecf7 100644
--- a/src/lang/gaelic.txt
+++ b/src/lang/gaelic.txt
@@ -2932,7 +2932,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Tìr a' chompan
STR_ABOUT_OPENTTD :{WHITE}Mu dheidhinn OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Còir-lethbhreac tùsail {COPYRIGHT} 1995 Chris Sawyer, a h-uile còir glèidhte
STR_ABOUT_VERSION :{BLACK}OpenTTD tionndadh {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 An sgioba OpenTTD
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 An sgioba OpenTTD
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Sàbhail an geama
@@ -3537,11 +3537,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Feum air
STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Feum air: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING}
############ range for requires ends
-STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Feum air
-STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}a' feitheamh
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING}
+STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Feum air:
+STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING}
+STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{STRING}{BLACK}: {CARGO_SHORT} a' feitheamh{STRING}
############ range for produces starts
STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Toradh: {YELLOW}{STRING}{STRING}
diff --git a/src/lang/galician.txt b/src/lang/galician.txt
index 98119197b7..d87aa14abe 100644
--- a/src/lang/galician.txt
+++ b/src/lang/galician.txt
@@ -2692,7 +2692,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terreo propieda
STR_ABOUT_OPENTTD :{WHITE}Acerca de OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright orixinal {COPYRIGHT} 1995 Chris Sawyer, Tódolos dereitos reservados
STR_ABOUT_VERSION :{BLACK}OpenTTD versión {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 O equipo de OpenTTD
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2018 O equipo de OpenTTD
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Gravar partida
@@ -3297,11 +3297,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Require:
STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Require: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING}
############ range for requires ends
-STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Require
-STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}agardando
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING}
+STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Require:
+STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING}
+STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{STRING}{BLACK}: {CARGO_SHORT} agardando{STRING}
############ range for produces starts
STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING}
diff --git a/src/lang/german.txt b/src/lang/german.txt
index 499eb6ee6b..128c516c62 100644
--- a/src/lang/german.txt
+++ b/src/lang/german.txt
@@ -2692,7 +2692,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Firmeneigenes G
STR_ABOUT_OPENTTD :{WHITE}OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Transport Tycoon-Urheberrecht {COPYRIGHT} 1995 Chris Sawyer, alle Rechte vorbehalten
STR_ABOUT_VERSION :{BLACK}OpenTTD-Version {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD-Team
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 OpenTTD-Team
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Spiel speichern
@@ -3297,11 +3297,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Benötig
STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Benötigt: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING}
############ range for requires ends
-STR_INDUSTRY_VIEW_REQUIRES :{BLACK}benötigt
-STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}wartend
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING}
+STR_INDUSTRY_VIEW_REQUIRES :{BLACK}benötigt:
+STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING}
+STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{STRING}{BLACK}: {CARGO_SHORT} wartend{STRING}
############ range for produces starts
STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produziert: {YELLOW}{STRING}{STRING}
diff --git a/src/lang/greek.txt b/src/lang/greek.txt
index 28493787fe..11d5755d78 100644
--- a/src/lang/greek.txt
+++ b/src/lang/greek.txt
@@ -1479,6 +1479,7 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Απενεργ
STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Μετάβαση με αριστερό κλικ: {STRING}
STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Ενεργοποίηση της κύλισης του χάρτη σύροντας τον με το αριστερό κουμπί του ποντικιού. Αυτό είναι ιδιαίτερα χρήσιμο για την κύλιση όταν χρησιμοποιείται οθόνη αφής
+STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Κλείσιμο παραθύρου με δεξί-κλικ: {STRING}
STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Κλείνει το παράθυρο με δεξί πάτημα μέσα του. Απενεργοποιεί την ανάδυση επεξηγήσεων με το δεξί κουμπί!
STR_CONFIG_SETTING_AUTOSAVE :Αυτόματο σώσιμο: {STRING}
@@ -2797,7 +2798,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Ιδιοκτη
STR_ABOUT_OPENTTD :{WHITE}Σχετικά με το OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Αρχικά Πνευματικά Δικαιώματα {COPYRIGHT} 1995 Chris Sawyer, Όλα τα δικαιώματα διατηρούνται
STR_ABOUT_VERSION :{BLACK}Έκδοση OpenTTD{REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 Η ομάδα του OpenTTD
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 Η ομάδα του OpenTTD
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Αποθήκευση Παιχνιδιού
@@ -3402,9 +3403,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Απαι
STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Απαιτεί: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING}
############ range for requires ends
-STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Απαιτεί
-STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}σε αναμονή
+STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Απαιτεί:
+STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING}
+STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{STRING}{BLACK}: {CARGO_SHORT} σε αναμονή{STRING}
############ range for produces starts
STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Παράγει: {YELLOW}{STRING}{STRING}
diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt
index aa596d784f..90ed5ccc55 100644
--- a/src/lang/hebrew.txt
+++ b/src/lang/hebrew.txt
@@ -1755,7 +1755,7 @@ STR_INTRO_CONFIG_SETTINGS_TREE :{BLACK}הגדר
STR_INTRO_NEWGRF_SETTINGS :{BLACK}(NewGRF)הגדרות שדרוג גראפי
STR_INTRO_ONLINE_CONTENT :{BLACK} בדוק תוכן מקוון
STR_INTRO_SCRIPT_SETTINGS :{BLACK}הגדרות סקריפטים של משחק/שחקני מחשב
-STR_INTRO_QUIT :{BLACK}צא
+STR_INTRO_QUIT :{BLACK}יציאה
STR_INTRO_TOOLTIP_NEW_GAME :{BLACK}התחל משחק חדש. Ctrl+לחיצה מדלג על תצורת מפה
STR_INTRO_TOOLTIP_LOAD_GAME :{BLACK}טען משחק שמור
@@ -1777,6 +1777,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK} חפש
STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK} הצג הגדרות סקריפטים של משחק/שחקני מחשב
STR_INTRO_TOOLTIP_QUIT :{BLACK}צא מ-'OpenTTD'
+STR_INTRO_BASESET :{BLACK}חסרים {NUM} ספרייט עבור גרפיקות הבסיס שנבחרו. אנא בדוק עדכונים לערכה זו.
STR_INTRO_TRANSLATION :{BLACK}בתרגום זה חסרים {P 0 "מחרוזת " ""}{NUM}{P "" " מחרוזות"}. אנא עזור לשפר את OpenTTD ע"י הצטרפות כמתרגם. קרא בקובץ readme.txt לפרטים.
# Quit window
@@ -2618,29 +2619,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :שדות
STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :אדמה מכוסה בשלג
STR_LAI_CLEAR_DESCRIPTION_DESERT :מדבר
-STR_LAI_RAIL_DESCRIPTION_TRACK :מסילת ברזל מסילה
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :מסילת ברזל מסילה עם רמזורים חוסמים
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :מסילת ברזל מסילה עם רמזורים מקדימים
+STR_LAI_RAIL_DESCRIPTION_TRACK :מסילת ברזל
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :מסילת ברזל עם רמזורים חוסמים
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :מסילת ברזל עם רמזורים מקדימים
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :מסילת ברזל מסילה עם רמזורי יציאה
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :מסילת ברזל מסילה עם רמזורים משולבים
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :מסילת ברזל מסילה עם רמזורי נתיב
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :מסילת ברזל מסילה עם רמזורי נתיב חד-סטריים
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :מסילת ברזל עם רמזורים משולבים
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :מסילת ברזל עם רמזורי נתיב
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :מסילת ברזל עם רמזורי נתיב חד-סטריים
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :מסילת ברזל מסילה עם רמזורים חוסמים ומקדימים
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :מסילת ברזל מסילה עם רמזורים חוסמים ורמזורי יציאה
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :מסילת ברזל מסילה עם רמזורים חוסמים ורמזורים משולבים
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :מסילת ברזל מסילה עם רמזורים חוסמים ורמזורי נתיב
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :מסילת ברזל מסילה עם רמזורים חוסמים ורמזורי נתיב חד-סטריים
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :מסילת ברזל מסילה עם רמזורים מקדימים ורמזורי יציאה
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :מסילת ברזל מסילה עם רמזורים מקדימים ורמזורים משולבים
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :מסילת ברזל עם רמזורים חוסמים ורמזורי יציאה
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :מסילת ברזל עם רמזורים חוסמים ורמזורים משולבים
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :מסילת ברזל עם רמזורים חוסמים ורמזורי נתיב
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :מסילת ברזל עם רמזורים חוסמים ורמזורי נתיב חד-סטריים
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :מסילת ברזל עם רמזורים מקדימים ורמזורי יציאה
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :מסילת ברזל עם רמזורים מקדימים ורמזורים משולבים
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :מסילת ברזל מסילה עם רמזורים מקדימים ורמזורי נתיב
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :מסילת ברזל מסילה עם רמזורים מקדימים ורמזורי נתיב חד-סטריים
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :מסילת ברזל מסילה עם רמזורי יציאה ורמזורים משולבים
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :מסילת ברזל מסילה עם רמזורי יציאה ורמזורי נתיב
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :מסילת ברזל מסילה עם רמזורי יציאה ורמזורי נתיב חד-סטריים
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :מסילת ברזל מסילה עם רמזורים משולבים ורמזורי נתיב
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :מסילת ברזל מסילה עם רמזורים משולבים ורמזורי נתיב חד-סטריים
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :מסילת ברזל מסילה עם רמזורי נתיב ורמזורי נתיב חד-סטריים
-STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :מסילת ברזל מוסך רכבות
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :מסילת ברזל עם רמזורים מקדימים ורמזורי נתיב חד-סטריים
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :מסילת ברזל עם רמזורי יציאה ורמזורים משולבים
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :מסילת ברזל עם רמזורי יציאה ורמזורי נתיב
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :מסילת ברזל עם רמזורי יציאה ורמזורי נתיב חד-סטריים
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :מסילת ברזל עם רמזורים משולבים ורמזורי נתיב
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :מסילת ברזל עם רמזורים משולבים ורמזורי נתיב חד-סטריים
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :מסילת ברזל עם רמזורי נתיב ורמזורי נתיב חד-סטריים
+STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :מוסך רכבות
STR_LAI_ROAD_DESCRIPTION_ROAD :כביש
STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :כביש עם תאורת רחוב
@@ -2702,9 +2703,9 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :שטח בבעל
# About OpenTTD window
STR_ABOUT_OPENTTD :{WHITE}OpenTTD אודות
-STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}כל הזכויות שמורות , {COPYRIGHT}1995 כריס סויר - {NBSP}זכויות יוצרים מקוריות
+STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}כל הזכויות שמורות , {COPYRIGHT}1995 כריס סויר - זכויות יוצרים מקוריות
STR_ABOUT_VERSION :{BLACK}{REV} גירסה , OpenTTD
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 The OpenTTD team
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2018 The OpenTTD team
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}שמור משחק
@@ -3309,9 +3310,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{YELLOW}{3:STRI
STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{YELLOW}{5:STRING}{4:STRING},{3:STRING}{2:STRING},{1:STRING}{0:STRING}{BLACK} :דורש
############ range for requires ends
-STR_INDUSTRY_VIEW_REQUIRES :{BLACK}דורש
-STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}ממתין
+STR_INDUSTRY_VIEW_REQUIRES :{BLACK}דורש:
+STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING}
+STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{STRING}{BLACK}: {CARGO_SHORT} ממתין{STRING}
############ range for produces starts
STR_INDUSTRY_VIEW_PRODUCES_CARGO :{YELLOW}{1:STRING}{0:STRING}{BLACK} :מייצר
@@ -3380,8 +3381,10 @@ STR_GROUP_REMOVE_ALL_VEHICLES :הסר את כ
STR_GROUP_RENAME_CAPTION :{BLACK}שנה שם קבוצה
+STR_GROUP_PROFIT_THIS_YEAR :רווח בשנה זו:
STR_GROUP_PROFIT_LAST_YEAR :רווח שנה שעברה:
STR_GROUP_OCCUPANCY :שימוש נוכחי:
+STR_GROUP_OCCUPANCY_VALUE :{NUM}%
# Build vehicle window
STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :רכבות חדשות
@@ -3549,6 +3552,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :קטר פס מ
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}{1:WEIGHT_SHORT} :משקל {NBSP}{0:CURRENCY_LONG} :מחיר{} {NBSP}{3:POWER} :עצמת מנוע {NBSP}{2:VELOCITY} :מהירות {NBSP}{}{5:CARGO_LONG} : קיבולת {NBSP} לשנה {NBSP}{4:CURRENCY_LONG} :עלות תפעולית
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}עלות: {CURRENCY_LONG} משקל: {WEIGHT_SHORT}{}מהירות: {VELOCITY} הספק: {POWER} מקסימלי T.E.: {6:FORCE}{}עלות תפעולית: {4:CURRENCY_LONG}/לשנה{}קיבולת: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}עלות: {CURRENCY_LONG} מהירות מקסימלית: {VELOCITY}{}קיבולת: {CARGO_LONG}{}הוצאה שוטפת: {CURRENCY_LONG}/לשנה
+STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}עלות: {CURRENCY_LONG} מהירות מקסימלית: {VELOCITY}{}סוג כלי טיס: {STRING}{}קיבולת: {CARGO_LONG}, {CARGO_LONG}{}עלות תפעולית: {CURRENCY_LONG}/שנה
+STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}עלות: {CURRENCY_LONG} מהירות מקסימלית: {VELOCITY}{}סוג כלי טיס: {STRING}{}קיבולת: {CARGO_LONG}{}עלות תפעולית: {CURRENCY_LONG}/שנה
+STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}עלות: {CURRENCY_LONG} מהירות מקסימלית: {VELOCITY}{}סוג כלי טיס: {STRING} טווח: {COMMA} משבצות{}קיבולת: {CARGO_LONG}, {CARGO_LONG}{}עלות תפעולית: {CURRENCY_LONG}/שנה
+STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}עלות: {CURRENCY_LONG} מהירות מקסימלית: {VELOCITY}{}סוג כלי טיס: {STRING} טווח: {COMMA} משבצות{}קיבולת: {CARGO_LONG}{}עלות תפעולית: {CURRENCY_LONG}/שנה
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}החלף {STRING} - {STRING}
@@ -3578,6 +3585,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}לחץ
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}החלף בין חלונות החלפת קרון וקטר
STR_REPLACE_ENGINES :מנועים/קטרים
STR_REPLACE_WAGONS :קרונות
+STR_REPLACE_ALL_RAILTYPE :כלל הרכבות
STR_REPLACE_HELP_RAILTYPE :{BLACK}בחר את סוג המסילה עבורה ברצונך להחליף קטרים
STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK} מציג אילו קטרים מוחלפים זה בזה
@@ -3670,6 +3678,8 @@ STR_VEHICLE_INFO_AGE :({1:COMMA}) ש
STR_VEHICLE_INFO_AGE_RED :{RED}({1:COMMA}) שנים {NBSP}{0:COMMA}
STR_VEHICLE_INFO_MAX_SPEED :{BLACK}מהירות מקסימלית: {LTBLUE}{VELOCITY}
+STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}מהירות מקס.: {LTBLUE}{VELOCITY} {BLACK}סוג כלי טיס: {LTBLUE}{STRING}
+STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}מהירות מקסימלית: {LTBLUE}{VELOCITY} {BLACK}סוג כלי טיס: {LTBLUE}{STRING} {BLACK}טווח: {LTBLUE}{COMMA} משבצות
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}משקל: {LTBLUE}{WEIGHT_SHORT} {BLACK}הספק: {LTBLUE}{POWER}{BLACK} מהירות מקסימלית: {LTBLUE}{VELOCITY}
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}משקל: {LTBLUE}{WEIGHT_SHORT} {BLACK}הספק: {LTBLUE}{POWER}{BLACK} מהירות מקסימלית: {LTBLUE}{VELOCITY} {BLACK}T.E. מקסימלי: {LTBLUE}{FORCE}
diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt
index a993dc305d..99dbfb82c8 100644
--- a/src/lang/hungarian.txt
+++ b/src/lang/hungarian.txt
@@ -2755,7 +2755,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Vállalat álta
STR_ABOUT_OPENTTD :{WHITE}Az OpenTTD-ről
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Eredeti copyright {COPYRIGHT} 1995 Chris Sawyer, Minden jog fenntartva
STR_ABOUT_VERSION :{BLACK}OpenTTD {REV} verzió
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 Az OpenTTD csapat
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2018 Az OpenTTD csapat
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Játék mentése
@@ -3361,10 +3361,8 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Felhaszn
############ range for requires ends
STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Elfogad:
-STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}várakozik
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING}
+STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING}
+STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{STRING}{BLACK}: {CARGO_SHORT} várakozik{STRING}
############ range for produces starts
STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Gyárt: {YELLOW}{STRING}{STRING}
diff --git a/src/lang/icelandic.txt b/src/lang/icelandic.txt
index 3202b99e62..77e9c09660 100644
--- a/src/lang/icelandic.txt
+++ b/src/lang/icelandic.txt
@@ -2536,7 +2536,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Land í eigu fy
STR_ABOUT_OPENTTD :{WHITE}Um OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Upphaflegur höfundarréttur {COPYRIGHT} 1995 Chris Sawyer, Öll réttindi áskilin
STR_ABOUT_VERSION :{BLACK}OpenTTD útgáfa {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 OpenTTD hópurinn
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2018 OpenTTD hópurinn
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Vista leik
diff --git a/src/lang/indonesian.txt b/src/lang/indonesian.txt
index b9194ea0a7..9a371a83d5 100644
--- a/src/lang/indonesian.txt
+++ b/src/lang/indonesian.txt
@@ -2687,7 +2687,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Tanah milik Per
STR_ABOUT_OPENTTD :{WHITE}Tentang OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Hak Cipta asli {COPYRIGHT} 1995 Chris Sawyer, Hak Cipta dilindungi
STR_ABOUT_VERSION :{BLACK}OpenTTD versi {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 Tim OpenTTD
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 Tim OpenTTD
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Simpan Permainan
diff --git a/src/lang/irish.txt b/src/lang/irish.txt
index 229580074d..6c2cb21375 100644
--- a/src/lang/irish.txt
+++ b/src/lang/irish.txt
@@ -2687,7 +2687,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Talamh faoi úi
STR_ABOUT_OPENTTD :{WHITE}Maidir le OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Cóipcheart bunaidh {COPYRIGHT} 1995 Chris Sawyer, Gach ceart ar cosaint
STR_ABOUT_VERSION :{BLACK}OpenTTD leagan {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 An fhoireann OpenTTD
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 An fhoireann OpenTTD
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Sábháil an Cluiche
diff --git a/src/lang/italian.txt b/src/lang/italian.txt
index 309f4e9f01..e2d5ffa49a 100644
--- a/src/lang/italian.txt
+++ b/src/lang/italian.txt
@@ -2721,7 +2721,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terreno possedu
STR_ABOUT_OPENTTD :{WHITE}Informazioni su OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright originale {COPYRIGHT} 1995 Chris Sawyer, Tutti i diritti riservati
STR_ABOUT_VERSION :{BLACK}OpenTTD versione {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 Il team OpenTTD
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 Il team OpenTTD
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Salva partita
@@ -3326,11 +3326,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Richiede
STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Richiede: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING}
############ range for requires ends
-STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Richiede
-STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}in attesa
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING}
+STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Richiede:
+STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING}
+STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{STRING}{BLACK}: {CARGO_SHORT} in attesa{STRING}
############ range for produces starts
STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING}
diff --git a/src/lang/japanese.txt b/src/lang/japanese.txt
index ed7584bfc1..8e7f0c486d 100644
--- a/src/lang/japanese.txt
+++ b/src/lang/japanese.txt
@@ -2688,7 +2688,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :社有地
STR_ABOUT_OPENTTD :{WHITE}OpenTTDについて
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}オリジナル版権{COPYRIGHT} 1995 Chris Sawyer All rights reserved
STR_ABOUT_VERSION :{BLACK}OpenTTD バージョン {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 The OpenTTD team
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 The OpenTTD team
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}ゲームを保存
@@ -3293,8 +3293,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}必要
STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}必要資源: {YELLOW}{STRING}{STRING}、{STRING}{STRING}、{STRING}{STRING}
############ range for requires ends
-STR_INDUSTRY_VIEW_REQUIRES : {BLACK}必要物資
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT : {YELLOW}{CARGO_LONG}{STRING}
+STR_INDUSTRY_VIEW_REQUIRES : {BLACK}必要物資:
############ range for produces starts
STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}生産品: {YELLOW}{STRING}{STRING}
diff --git a/src/lang/korean.txt b/src/lang/korean.txt
index 9c6d98c05b..b6dc29a099 100644
--- a/src/lang/korean.txt
+++ b/src/lang/korean.txt
@@ -2385,7 +2385,7 @@ STR_BRIDGE_NAME_GIRDER_STEEL :강철 거더
STR_BRIDGE_NAME_CANTILEVER_STEEL :강철 캔틸레버교
STR_BRIDGE_NAME_SUSPENSION_CONCRETE :콘크리트 현수교
STR_BRIDGE_NAME_WOODEN :나무 다리
-STR_BRIDGE_NAME_CONCRETE :콘트리트교
+STR_BRIDGE_NAME_CONCRETE :콘크리트교
STR_BRIDGE_NAME_TUBULAR_STEEL :강철 원통형 다리
STR_BRIDGE_TUBULAR_SILICON :실리콘 원통형 다리
@@ -2692,7 +2692,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :회사 소유
STR_ABOUT_OPENTTD :{WHITE}OpenTTD에 대해서
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Original copyright {COPYRIGHT} 1995 Chris Sawyer, All rights reserved
STR_ABOUT_VERSION :{BLACK}OpenTTD 버전 {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD 개발팀
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 OpenTTD 개발팀
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}게임 저장
@@ -3297,11 +3297,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}필요
STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}필요함: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING}
############ range for requires ends
-STR_INDUSTRY_VIEW_REQUIRES :{BLACK}받는 화물
-STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}대기중
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING}
+STR_INDUSTRY_VIEW_REQUIRES :{BLACK}받는 화물:
+STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING}
+STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{STRING}{BLACK}: {CARGO_SHORT} 대기중{STRING}
############ range for produces starts
STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}생산: {YELLOW}{STRING}{STRING}
diff --git a/src/lang/latin.txt b/src/lang/latin.txt
index bd47867beb..42047a47d6 100644
--- a/src/lang/latin.txt
+++ b/src/lang/latin.txt
@@ -3498,11 +3498,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Postulat
STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Postulat: {YELLOW}{STRING.acc}{STRING}, {STRING.acc}{STRING}, {STRING.acc}{STRING}
############ range for requires ends
-STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Postulat
-STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING.acc}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}manet
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING.acc}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING}
+STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Postulat:
+STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING.acc}{BLACK}{3:STRING}
+STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{STRING}{BLACK}: {CARGO_SHORT} manet{STRING}
############ range for produces starts
STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Efficit: {YELLOW}{STRING.acc}{STRING}
diff --git a/src/lang/latvian.txt b/src/lang/latvian.txt
index 30f43b807a..dab5900f75 100644
--- a/src/lang/latvian.txt
+++ b/src/lang/latvian.txt
@@ -2628,7 +2628,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Uzņēmumam pie
STR_ABOUT_OPENTTD :{WHITE}Par OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Oriģināla autortiesības {COPYRIGHT} 1995 Kriss Sojers. Visas tiesības paturētas
STR_ABOUT_VERSION :{BLACK}OpenTTD versija {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD darba grupa
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 OpenTTD darba grupa
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Saglabāt spēli
diff --git a/src/lang/lithuanian.txt b/src/lang/lithuanian.txt
index 6d6d1428b8..4d44522671 100644
--- a/src/lang/lithuanian.txt
+++ b/src/lang/lithuanian.txt
@@ -2906,7 +2906,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Kompanijos žem
STR_ABOUT_OPENTTD :{WHITE}Apie OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Pradinės versijos teisės priklauso {COPYRIGHT} 1995 Chris Sawyer, Visos teisės saugomos
STR_ABOUT_VERSION :{BLACK}OpenTTD versija {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 OpenTTD komanda
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2018 OpenTTD komanda
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Išsaugoti žaidimą
diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt
index 41150fc85a..38dba61000 100644
--- a/src/lang/luxembourgish.txt
+++ b/src/lang/luxembourgish.txt
@@ -2691,7 +2691,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Land am Firmenb
STR_ABOUT_OPENTTD :{WHITE}Iwwert OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Original Copyright {COPYRIGHT} 1995 Chris Sawyer, All Rechter virbehalen
STR_ABOUT_VERSION :{BLACK}OpenTTD Versioun {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 D'OpenTTD team
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 D'OpenTTD team
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Spill späicheren
@@ -3296,11 +3296,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Brauch:
STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Brauch: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING}
############ range for requires ends
-STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Brauch
-STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}um waarden
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING}
+STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Brauch:
+STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING}
+STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{STRING}{BLACK}: {CARGO_SHORT} um waarden{STRING}
############ range for produces starts
STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produzéiert: {YELLOW}{STRING}{STRING}
diff --git a/src/lang/malay.txt b/src/lang/malay.txt
index 427788ddee..4ba83efdaa 100644
--- a/src/lang/malay.txt
+++ b/src/lang/malay.txt
@@ -202,6 +202,7 @@ STR_UNITS_POWER_SI :{COMMA}kW
STR_UNITS_WEIGHT_SHORT_METRIC :{COMMA}t
STR_UNITS_WEIGHT_SHORT_SI :{COMMA}kg
+STR_UNITS_WEIGHT_LONG_IMPERIAL :{COMMA}{NBSP}tan{P "" s}
STR_UNITS_WEIGHT_LONG_METRIC :{COMMA} tan
STR_UNITS_WEIGHT_LONG_SI :{COMMA} kg
@@ -1218,6 +1219,7 @@ STR_CONFIG_SETTING_WARN_INCOME_LESS :Beri amaran jik
STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES :Kenderaan tidak akan tamat tempohnya: {STRING}
STR_CONFIG_SETTING_AUTORENEW_VEHICLE :Gunakan pembaharuan automatik apabila kenderaan usang : {STRING}
STR_CONFIG_SETTING_AUTORENEW_MONEY :Wang minimum yang diperlukan untuk pembaharuan automatik: {STRING}
+STR_CONFIG_SETTING_ERRMSG_DURATION :Jangkamasa mesej ralat: {STRING}
STR_CONFIG_SETTING_POPULATION_IN_LABEL :Tunjukkan jumlah penduduk dalam label nama bandar: {STRING}
STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Ketebalan garisan di dalam graf: {STRING}
@@ -1325,6 +1327,7 @@ STR_CONFIG_SETTING_AI_PROFILE_MEDIUM :Sederhana
STR_CONFIG_SETTING_AI_PROFILE_HARD :Sukar
STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :Benarkan Kepintaran Tiruan dalam permainan pemain berbilang: {STRING}
+STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT :Benarkan AI komputer menyertai permainan berbilang pemain
STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :#opcodes sebelum skrip adalah digantung: {STRING}
STR_CONFIG_SETTING_SERVINT_ISPERCENT :Tempoh waktu servis dalam peratusan: {STRING}
@@ -2003,6 +2006,7 @@ STR_TRANSPARENT_INVISIBLE_TOOLTIP :{BLACK}Ghaibkan
# Linkgraph legend window
# Linkgraph legend window and linkgraph legend in smallmap
+STR_LINKGRAPH_LEGEND_SATURATED :{TINY_FONT}{BLACK}tepu
# Base for station construction window(s)
STR_STATION_BUILD_COVERAGE_AREA_TITLE :{BLACK}Serlahan kawasan liputan
@@ -2402,7 +2406,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Tanah dimiliki
STR_ABOUT_OPENTTD :{WHITE}Tentang OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Hakcipta Asal {COPYRIGHT} 1995 Chris Sawyer, Hakcipta terpelihara
STR_ABOUT_VERSION :{BLACK}OpenTTD versi {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 The OpenTTD team
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2018 The OpenTTD team
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Simpankan Permainan
@@ -2802,6 +2806,7 @@ STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Menerima
STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Penarafan
STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Tunjukkan penarafan stesen
+STR_STATION_VIEW_SUPPLY_RATINGS_TITLE :{BLACK}Bekalan bulanan dan penarafan tempatan:
@@ -2952,7 +2957,7 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Memerluk
STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Memerlukan: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING}
############ range for requires ends
-STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Diperlukan
+STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Diperlukan:
############ range for produces starts
STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Mengeluarkan: {YELLOW}{STRING}{STRING}
diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt
index 535e83e6ce..dccf73075f 100644
--- a/src/lang/norwegian_bokmal.txt
+++ b/src/lang/norwegian_bokmal.txt
@@ -2695,7 +2695,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Firma-eid lando
STR_ABOUT_OPENTTD :{WHITE}Om OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Opprinnelig opphavsbeskyttet {COPYRIGHT} 1995 Chris Sawyer, Alle rettigheter reservert
STR_ABOUT_VERSION :{BLACK}OpenTTD versjon {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD-teamet
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 OpenTTD-teamet
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Lagre spill
@@ -3281,8 +3281,8 @@ STR_COMPANY_INFRASTRUCTURE_VIEW_TOTAL :{WHITE}{CURRENC
# Industry directory
STR_INDUSTRY_DIRECTORY_CAPTION :{WHITE}Industrier
STR_INDUSTRY_DIRECTORY_NONE :{ORANGE}- Ingen -
-STR_INDUSTRY_DIRECTORY_ITEM :{ORANGE}{INDUSTRY}{BLACK} ({CARGO_LONG}{STRING}){YELLOW} ({COMMA}{NBSP}% transportert)
-STR_INDUSTRY_DIRECTORY_ITEM_TWO :{ORANGE}{INDUSTRY}{BLACK} ({CARGO_LONG}{STRING}/{CARGO_LONG}{STRING}){YELLOW} ({COMMA}{NBSP}%/{COMMA}{NBSP}% transportert)
+STR_INDUSTRY_DIRECTORY_ITEM :{ORANGE}{INDUSTRY}{BLACK} ({CARGO_LONG}{STRING}){YELLOW} ({COMMA}% transportert)
+STR_INDUSTRY_DIRECTORY_ITEM_TWO :{ORANGE}{INDUSTRY}{BLACK} ({CARGO_LONG}{STRING}/{CARGO_LONG}{STRING}){YELLOW} ({COMMA}%/{COMMA}% transportert)
STR_INDUSTRY_DIRECTORY_ITEM_NOPROD :{ORANGE}{INDUSTRY}
STR_INDUSTRY_DIRECTORY_LIST_CAPTION :{BLACK}Industrinavn - klikk på navn for å gå til industri. Ctrl+klikk åpner et nytt tilleggsvindu over industrien
@@ -3300,11 +3300,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Trenger:
STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Trenger: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING}
############ range for requires ends
-STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Krever
-STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}venter
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING}
+STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Krever:
+STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING}
+STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{STRING}{BLACK}: {CARGO_SHORT} venter{STRING}
############ range for produces starts
STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produserer: {YELLOW}{STRING}{STRING}
diff --git a/src/lang/norwegian_nynorsk.txt b/src/lang/norwegian_nynorsk.txt
index 516933dd7a..5e545ce290 100644
--- a/src/lang/norwegian_nynorsk.txt
+++ b/src/lang/norwegian_nynorsk.txt
@@ -2608,7 +2608,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Feltet eigast a
STR_ABOUT_OPENTTD :{WHITE}Om OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Opphaveleg opphavsbeskytta av {COPYRIGHT} 1995 Chris Sawyer, Alle rettigheiter reservert
STR_ABOUT_VERSION :{BLACK}OpenTTD versjon {REV}. Oversett til nynorsk av Thor Morten Skogrand med fleire.
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD-teamet
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 OpenTTD-teamet
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Lagre spel
diff --git a/src/lang/polish.txt b/src/lang/polish.txt
index 28049b85d7..cc3f06cffe 100644
--- a/src/lang/polish.txt
+++ b/src/lang/polish.txt
@@ -702,7 +702,7 @@ STR_TOOLBAR_TOOLTIP_DISPLAY_SUBSIDIES :{BLACK}Wyświet
STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_STATIONS :{BLACK}Wyświetl listę stacji firmy
STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_FINANCES :{BLACK}Wyświetl informacje finansowe firmy
STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_GENERAL :{BLACK}Wyświetl informacje ogólne firmy
-STR_TOOLBAR_TOOLTIP_DISPLAY_STORY_BOOK :{BLACK}Pokaż okno opowieści
+STR_TOOLBAR_TOOLTIP_DISPLAY_STORY_BOOK :{BLACK}Pokaż dziennik
STR_TOOLBAR_TOOLTIP_DISPLAY_GOALS_LIST :{BLACK}Pokaż listę celów
STR_TOOLBAR_TOOLTIP_DISPLAY_GRAPHS :{BLACK}Wyświetl wykresy
STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_LEAGUE :{BLACK}Wyświetl ranking firm
@@ -3071,7 +3071,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Teren w posiada
STR_ABOUT_OPENTTD :{WHITE}OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Prawa Autorskie {COPYRIGHT} 1995 Chris Sawyer, Wszelkie prawa zastrzeżone
STR_ABOUT_VERSION :{BLACK}OpenTTD wersja {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 Zespół OpenTTD
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2018 Zespół OpenTTD
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Zapisz grę
@@ -3416,7 +3416,7 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Kup roc
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Daj łapówkę lokalnym władzom, powiększ swoją ocenę, ryzykując poważne kary w razie złapania.{}Koszt: {CURRENCY_LONG}
# Goal window
-STR_GOALS_CAPTION :{WHITE}{COMPANY} Cele
+STR_GOALS_CAPTION :{WHITE}Cele firmy {COMPANY}
STR_GOALS_SPECTATOR_CAPTION :{WHITE}Cele globalne
STR_GOALS_GLOBAL_TITLE :{BLACK}Cele globalne:
STR_GOALS_TEXT :{ORANGE}{STRING}
@@ -3464,8 +3464,8 @@ STR_SUBSIDIES_SUBSIDISED_FROM_TO :{ORANGE}{STRING
STR_SUBSIDIES_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Klik na usłudze żeby wyśrodkować widok na fabrykę/miasto. Ctrl+klik otwiera nowy podgląd na pozycji fabryki/miasta
# Story book window
-STR_STORY_BOOK_CAPTION :{WHITE}Album Historii Firmy {COMPANY}
-STR_STORY_BOOK_SPECTATOR_CAPTION :{WHITE}Globalne okno opowieści
+STR_STORY_BOOK_CAPTION :{WHITE}Dziennik Historii Firmy {COMPANY}
+STR_STORY_BOOK_SPECTATOR_CAPTION :{WHITE}Ogólny przewodnik
STR_STORY_BOOK_TITLE :{YELLOW}{STRING}
STR_STORY_BOOK_GENERIC_PAGE_ITEM :Strona {NUM}
STR_STORY_BOOK_SEL_PAGE_TOOLTIP :{BLACK}Skocz na właściwą stronę wybierając ją z listy.
@@ -3676,11 +3676,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Wymaga:
STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Wymaga: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING}
############ range for requires ends
-STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Potrzebuje
-STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}oczekuje
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING}
+STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Potrzebuje:
+STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING}
+STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{STRING}{BLACK}: {CARGO_SHORT} oczekuje{STRING}
############ range for produces starts
STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produkuje: {YELLOW}{STRING}{STRING}
@@ -4196,7 +4194,7 @@ STR_ORDER_CONDITIONAL_COMPARATOR_LESS_EQUALS :mniejszy lub r
STR_ORDER_CONDITIONAL_COMPARATOR_MORE_THAN :większy niż
STR_ORDER_CONDITIONAL_COMPARATOR_MORE_EQUALS :większy lub równy
STR_ORDER_CONDITIONAL_COMPARATOR_IS_TRUE :prawda
-STR_ORDER_CONDITIONAL_COMPARATOR_IS_FALSE :fałsz
+STR_ORDER_CONDITIONAL_COMPARATOR_IS_FALSE :nie prawda
STR_ORDER_CONDITIONAL_VALUE_TOOLTIP :{BLACK}Wartość do porównania z danymi pojazdu
STR_ORDER_CONDITIONAL_VALUE_CAPT :{WHITE}Podaj wartość do porównania
@@ -4226,10 +4224,10 @@ STR_ORDER_GO_NON_STOP_TO_WAYPOINT :Idź bezpośred
STR_ORDER_SERVICE_AT :Serwisuj w
STR_ORDER_SERVICE_NON_STOP_AT :Serwisuj non-stop w
-STR_ORDER_NEAREST_DEPOT :najbliższych
-STR_ORDER_NEAREST_HANGAR :najbliższy hangar
-STR_ORDER_TRAIN_DEPOT :Warsztatów
-STR_ORDER_ROAD_VEHICLE_DEPOT :Zajezdni samochodowej
+STR_ORDER_NEAREST_DEPOT :najbliższego
+STR_ORDER_NEAREST_HANGAR :najbliższego hangaru
+STR_ORDER_TRAIN_DEPOT :serwisu w warsztatach
+STR_ORDER_ROAD_VEHICLE_DEPOT :serwisu w zajezdni
STR_ORDER_SHIP_DEPOT :Doku
STR_ORDER_GO_TO_NEAREST_DEPOT_FORMAT :{STRING} {STRING} {STRING}
STR_ORDER_GO_TO_DEPOT_FORMAT :{STRING} {DEPOT}
@@ -4281,7 +4279,7 @@ STR_ORDER_OUT_OF_RANGE :{RED} (Kolejny
STR_ORDER_CONDITIONAL_UNCONDITIONAL :Skocz do rozkazu {COMMA}
STR_ORDER_CONDITIONAL_NUM :Skocz do rozkazu {COMMA} kiedy {STRING} {STRING} {COMMA}
-STR_ORDER_CONDITIONAL_TRUE_FALSE :Skocz do rozkazu {COMMA} kiedy {STRING} {STRING}
+STR_ORDER_CONDITIONAL_TRUE_FALSE :Skocz do rozkazu {0:COMMA} kiedy {2:STRING} że {1:STRING}
STR_INVALID_ORDER :{RED} (Błędne polecenie)
@@ -5302,8 +5300,8 @@ STR_FORMAT_WAYPOINT_NAME_SERIAL :Post. {TOWN} #{
STR_FORMAT_DEPOT_NAME_TRAIN :Warsztaty {TOWN}
STR_FORMAT_DEPOT_NAME_TRAIN_SERIAL :Warsztaty {TOWN} #{COMMA}
-STR_FORMAT_DEPOT_NAME_ROAD_VEHICLE :Zajezdnia samochodowa {TOWN}
-STR_FORMAT_DEPOT_NAME_ROAD_VEHICLE_SERIAL :Zajezdnia samochodowa {TOWN} #{COMMA}
+STR_FORMAT_DEPOT_NAME_ROAD_VEHICLE :Zajezdnia {TOWN}
+STR_FORMAT_DEPOT_NAME_ROAD_VEHICLE_SERIAL :Zajezdnia {TOWN} #{COMMA}
STR_FORMAT_DEPOT_NAME_SHIP :Stocznia {TOWN}
STR_FORMAT_DEPOT_NAME_SHIP_SERIAL :Stocznia {TOWN} #{COMMA}
STR_FORMAT_DEPOT_NAME_AIRCRAFT :Hangar {STATION}
diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt
index 8fc61c35ef..65ad9c6661 100644
--- a/src/lang/portuguese.txt
+++ b/src/lang/portuguese.txt
@@ -1199,9 +1199,9 @@ STR_CONFIG_SETTING_MAX_BRIDGE_HEIGHT_HELPTEXT :Altura máxima
STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Tamanho máximo de túneis: {STRING}
STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH_HELPTEXT :Tamanho máximo para construção de túneis
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD :Método de financiamento de indústrias primárias: {STRING}
-STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_HELPTEXT :Método de financiar uma indústria pirmária. 'nenhum' significa que não é possível financiar nenhuma, 'prospecção' significa que é possível financiar, mas a construção é feita num local arbitrário no mapa e até pode falhar, 'como outras indústrias' significa que as indústrias de matérias primas podem ser construídas por companhias como indústrias de processamento em qualquer sítio que elas escolham
+STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_HELPTEXT :Método de financiar uma indústria primária. 'nenhum' significa que não é possível financiar nenhuma, 'prospecção' significa que é possível financiar, mas a construção é feita num local arbitrário no mapa e até pode falhar, 'como as outras' significa que as indústrias de matérias primas podem ser construídas em qualquer sítio pelas empresas, como se fossem indústrias de processamento
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE :Nenhum
-STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :Mesmo método
+STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :Como as outras
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :Prospecção
STR_CONFIG_SETTING_INDUSTRY_PLATFORM :Área plana à volta das industrias: {STRING}
STR_CONFIG_SETTING_INDUSTRY_PLATFORM_HELPTEXT :Quantidade de terreno plano á volta de uma industria. Isto garante que terreno vazio esteja disponível para construir linhas, etc
@@ -1373,6 +1373,8 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Desligado
STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Deslocar com botão esquerdo: {STRING}
STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Activar deslocamento do mapa através de arrastamento com o botão esquerdo do rato. Esta opção é particularmente útil quando é usado um ecran de toque para deslocamento
+STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Fechar janelas ao fazer clique direito: {STRING}
+STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_HELPTEXT :Fecha uma janela ao fazer clique direito dentro dela. Desactiva os textos de ajuda ao fazer clique direito!
STR_CONFIG_SETTING_AUTOSAVE :Guardar automaticamente: {STRING}
STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Seleccione o intervalo entre gravações automáticas
@@ -1402,7 +1404,7 @@ STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE_HELPTEXT :Mostrar horári
STR_CONFIG_SETTING_QUICKGOTO :Criação rápida de ordens de veículos: {STRING}
STR_CONFIG_SETTING_QUICKGOTO_HELPTEXT :Pré-seleccionar o 'cursor Ir Para' ao abrir a janela de ordens
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE :Tipo padrão de ferrovia (ao criar ou abrir jogo): {STRING}
-STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_HELPTEXT :Tipo de carrir seleccionado após o início ou carregamento de um jogo. 'primeiro disponível' selecciona o tipo mais antigo de carril, 'último disponível' selecciona o tipo mais recente de carril e 'mais utilizado' selecciona o tipo mais utilizado actualmente
+STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_HELPTEXT :Tipo de carril seleccionado após o início ou carregamento de um jogo. 'primeiro disponível' selecciona o tipo mais antigo de carril, 'último disponível' selecciona o tipo mais recente de carril e 'mais utilizado' selecciona o tipo mais utilizado actualmente
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :Primeiro disponível
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_LAST :Último disponível
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_MOST_USED :Mais utilizado
@@ -1762,6 +1764,7 @@ STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Verifica
STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Mostrar definições de IA e de script de jogo
STR_INTRO_TOOLTIP_QUIT :{BLACK}Sair de 'OpenTTD'
+STR_INTRO_BASESET :{BLACK}O conjunto de gráficos base seleccionado tem {NUM} sprite{P "" s} em falta. Por favor verifique se existem atualizações para o conjunto.
STR_INTRO_TRANSLATION :{BLACK}Faltam {NUM} string{P "" s} nesta tradução. Ajude o OpenTTD em inscrever-se como tradutor. Leia readme.txt para mais detalhes.
# Quit window
@@ -2590,6 +2593,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Nome do
STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Carga aceite: {LTBLUE}
STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
+STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Tipo de carril: {LTBLUE}{STRING}
STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Limite de velocidade da linha: {LTBLUE}{VELOCITY}
STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Limite de velocidade da estrada: {LTBLUE}{VELOCITY}
@@ -2602,29 +2606,29 @@ STR_LAI_CLEAR_DESCRIPTION_FIELDS :Campos
STR_LAI_CLEAR_DESCRIPTION_SNOW_COVERED_LAND :Neve
STR_LAI_CLEAR_DESCRIPTION_DESERT :Deserto
-STR_LAI_RAIL_DESCRIPTION_TRACK :Caminhos-de-ferro linha
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Caminhos-de-ferro linha com sinais de bloqueio
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Caminhos-de-ferro linha com pre-sinais
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Caminhos-de-ferro linha com sinais de saída
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Caminhos-de-ferro linha com sinais combinados
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Caminhos-de-ferro linha com sinais de caminho
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Caminhos-de-ferro linha com sinais de sentido único
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Caminhos-de-ferro linha com bloqueio e pré-sinais
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Caminhos-de-ferro linha com bloqueio e sinais de saida
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Caminhos-de-ferro linha com bloqueio e sinais combinados
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Caminhos-de-ferro linha com bloqueio e sinais de rota
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Caminhos-de-ferro linha com bloqueio e sinais de sentido único
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Caminhos-de-ferro linha com pré-sinais e sinais de saida
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Caminhos-de-ferro linha com pré-sinais e sinais combinados
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Caminhos-de-ferro linha com pré-sinais e sinais de rota
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Caminhos-de-ferro linha com pré-sinais e sinais de sentido único
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Caminhos-de-ferro linha com sinais de saida e sinais combinados
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Caminhos-de-ferro linha com sinais de saida e sinais de rota
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Caminhos-de-ferro linha com sinais de saida e de sentido único
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Caminhos-de-ferro linha com sinais combinados e sinais de rota
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Caminhos-de-ferro linha com sinais combinados e sentido unico
-STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Caminhos-de-ferro linha com sinais de rota e de sentido unico
-STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Caminhos-de-ferro depósito de comboios
+STR_LAI_RAIL_DESCRIPTION_TRACK :Linha de caminhos-de-ferro
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :Linha de caminhos-de-ferro com sinais de bloqueio
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :Linha de caminhos-de-ferro com pre-sinais
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :Linha de caminhos-de-ferro com sinais de saída
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :Linha de caminhos-de-ferro com sinais combinados
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :Linha de caminhos-de-ferro com sinais de rota
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :Linha de caminhos-de-ferro com sinais de sentido único
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :Linha de caminhos-de-ferro com sinais de bloqueio e pré-sinais
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :Linha de caminhos-de-ferro com sinais de bloqueio e de saida
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :Linha de caminhos-de-ferro com sinais de bloqueio e combinados
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :Linha de caminhos-de-ferro com sinais de bloqueio e de rota
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :Linha de caminhos-de-ferro com sinais de bloqueio e de sentido único
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :Linha de caminhos-de-ferro com pré-sinais e sinais de saida
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :Linha de caminhos-de-ferro com pré-sinais e sinais combinados
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :Linha de caminhos-de-ferro com pré-sinais e sinais de rota
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :Linha de caminhos-de-ferro com pré-sinais e sinais de sentido único
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :Linha de caminhos-de-ferro com sinais de saida e combinados
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :Linha de caminhos-de-ferro com sinais de saida e de rota
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :Linha de caminhos-de-ferro com sinais de saida e de sentido único
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :Linha de caminhos-de-ferro com sinais combinados e de rota
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :Linha de caminhos-de-ferro com sinais combinados e de sentido único
+STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :Linha de caminhos-de-ferro com sinais de rota e de sentido único
+STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :Depósito de comboios de caminhos-de-ferro
STR_LAI_ROAD_DESCRIPTION_ROAD :Estrada
STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Estrada com iluminação
@@ -2688,7 +2692,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terreno proprie
STR_ABOUT_OPENTTD :{WHITE}Sobre o OpenTTD...
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Direitos de autor originais {COPYRIGHT} 1995 Chris Sawyer, Todos os direitos reservados
STR_ABOUT_VERSION :{BLACK}OpenTTD versão {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 A equipa do OpenTTD
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 A equipa do OpenTTD
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Guardar Jogo
@@ -3293,6 +3297,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Necessá
STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Necessário: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING}
############ range for requires ends
+STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Requer:
+STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING}
+STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{STRING}{BLACK}: {CARGO_SHORT} a aguardar{STRING}
############ range for produces starts
STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produz: {YELLOW}{STRING}{STRING}
@@ -3361,6 +3368,10 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Remover todos o
STR_GROUP_RENAME_CAPTION :{BLACK}Renomear um grupo
+STR_GROUP_PROFIT_THIS_YEAR :Lucro deste ano:
+STR_GROUP_PROFIT_LAST_YEAR :Lucro no último ano:
+STR_GROUP_OCCUPANCY :Utilização actual:
+STR_GROUP_OCCUPANCY_VALUE :{NUM}%
# Build vehicle window
STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :Novos Veículos Ferroviários
@@ -3393,6 +3404,7 @@ STR_PURCHASE_INFO_ALL_TYPES :Todos os tipos
STR_PURCHASE_INFO_ALL_BUT :Todas menos {CARGO_LIST}
STR_PURCHASE_INFO_MAX_TE :{BLACK}Máx. Força de Tracção: {GOLD}{FORCE}
STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Alcance: {GOLD}{COMMA} quadrados
+STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Tipo de aeronave: {GOLD}{STRING}
STR_BUY_VEHICLE_TRAIN_LIST_TOOLTIP :{BLACK}Lista de veículos ferroviários - clique num veículo para informações
STR_BUY_VEHICLE_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Lista de veículos rodoviários - clique num veículo para informações
@@ -3524,9 +3536,13 @@ STR_ENGINE_PREVIEW_SHIP :barco
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :locomotiva monocarril
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :locomotiva maglev
-STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Custo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidade: {VELOCITY} Potência: {POWER}{}Custo de circulação: {CURRENCY_LONG}/ano{}Capacidade: {CARGO_LONG}
-STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Custo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidade: {VELOCITY} Potência: {POWER} Máx. F.T.: {6:FORCE}{}Custo de circulação: {4:CURRENCY_LONG}/ano{}Capacidade: {5:CARGO_LONG}
-STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Máx. Velocidade: {VELOCITY}{}Capacidade: {CARGO_LONG}{}Custo de circulação: {CURRENCY_LONG}/ano
+STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Custo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidade Máx.: {VELOCITY} Potência: {POWER}{}Custo de Circulação: {CURRENCY_LONG}/ano{}Capacidade: {CARGO_LONG}
+STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Custo: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidade Máx.: {VELOCITY} Potência: {POWER} F.T. Máx.: {6:FORCE}{}Custo de Circulação: {4:CURRENCY_LONG}/ano{}Capacidade: {5:CARGO_LONG}
+STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Velocidade Máx.: {VELOCITY}{}Capacidade: {CARGO_LONG}{}Custo de Circulação: {CURRENCY_LONG}/ano
+STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Velocidade Máx.: {VELOCITY}{}Tipo de Aeronave: {STRING}{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Custo de Circulação: {CURRENCY_LONG}/ano
+STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Velocidade Máx.: {VELOCITY}{}Tipo de Aeronave: {STRING}{}Capacidade: {CARGO_LONG}{}Custo de Circulação: {CURRENCY_LONG}/ano
+STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Velocidade Máx.: {VELOCITY}{}Tipo de Aeronave: {STRING} Alcance: {COMMA} quadrados{}Capacidade: {CARGO_LONG}, {CARGO_LONG}{}Custo de Circulação: {CURRENCY_LONG}/ano
+STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST :{BLACK}Custo: {CURRENCY_LONG} Velocidade Máx.: {VELOCITY}{}Tipo de Aeronave: {STRING} Alcance: {COMMA} quadrados{}Capacidade: {CARGO_LONG}{}Custo de Circulação: {CURRENCY_LONG}/ano
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Substituir {STRING} - {STRING}
@@ -3556,6 +3572,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Pression
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Alternar entre a janela de substituição de locomotivas e a janela de substituição de vagões
STR_REPLACE_ENGINES :Locomotivas
STR_REPLACE_WAGONS :Vagões
+STR_REPLACE_ALL_RAILTYPE :Todos os veículos ferroviários
STR_REPLACE_HELP_RAILTYPE :{BLACK}Seleccione o tipo de carril para o qual deseja efectuar a substituição dos motores
STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Exibe o tipo de motor que substituirá o que está seleccionado à esquerda, se algum
@@ -3648,6 +3665,8 @@ STR_VEHICLE_INFO_AGE :{COMMA} ano{P "
STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} ano{P "" s} ({COMMA})
STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Máx. velocidade: {LTBLUE}{VELOCITY}
+STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Vel. máxima: {LTBLUE}{VELOCITY} {BLACK}Tipo de Aeronave: {LTBLUE}{STRING}
+STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Velocidade Máx.: {LTBLUE}{VELOCITY} {BLACK}Tipo de Aeronave: {LTBLUE}{STRING} {BLACK}Alcance: {LTBLUE}{COMMA} quadrados
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potência: {LTBLUE}{POWER}{BLACK} Max. velocidade: {LTBLUE}{VELOCITY}
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potência: {LTBLUE}{POWER}{BLACK} Máx. velocidade: {LTBLUE}{VELOCITY} {BLACK}Máx. E.T.: {LTBLUE}{FORCE}
@@ -4018,7 +4037,7 @@ STR_AI_SETTINGS_CAPTION_GAMESCRIPT :Script de Jogo
STR_AI_SETTINGS_CLOSE :{BLACK}Fechar
STR_AI_SETTINGS_RESET :{BLACK}Repor
STR_AI_SETTINGS_SETTING :{STRING}: {ORANGE}{STRING}
-STR_AI_SETTINGS_START_DELAY :Número de dias para iniciar esta IA depois da anterior (tomar ou lorgar): {ORANGE}{STRING}
+STR_AI_SETTINGS_START_DELAY :Número de dias para iniciar esta IA depois da anterior (aproximadamente): {ORANGE}{STRING}
# Textfile window
diff --git a/src/lang/romanian.txt b/src/lang/romanian.txt
index 69b3c11a18..a2aa17927e 100644
--- a/src/lang/romanian.txt
+++ b/src/lang/romanian.txt
@@ -2652,7 +2652,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Teren în propr
STR_ABOUT_OPENTTD :{WHITE}Despre OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright original {COPYRIGHT} 1995 Chris Sawyer, Toate drepturile rezervate
STR_ABOUT_VERSION :{BLACK}OpenTTD versiunea {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 Echipa OpenTTD
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 Echipa OpenTTD
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Salvează joc
diff --git a/src/lang/russian.txt b/src/lang/russian.txt
index bdc0a8dd7f..45b3be2c6d 100644
--- a/src/lang/russian.txt
+++ b/src/lang/russian.txt
@@ -2871,7 +2871,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Земля в
STR_ABOUT_OPENTTD :{WHITE}Об OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Оригинальные авторские права {COPYRIGHT} 1995 Chris Sawyer. Все права защищены.
STR_ABOUT_VERSION :{BLACK}OpenTTD версия {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 Команда разработчиков OpenTTD
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 Команда разработчиков OpenTTD
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Сохранить игру
@@ -3477,10 +3477,8 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Треб
############ range for requires ends
STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Требуется:
-STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}ожидает
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING}
+STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING}
+STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{STRING}{BLACK}: {CARGO_SHORT} ожидает{STRING}
############ range for produces starts
STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Производит: {YELLOW}{STRING}{STRING}
diff --git a/src/lang/serbian.txt b/src/lang/serbian.txt
index 5a81456990..155772ce5d 100644
--- a/src/lang/serbian.txt
+++ b/src/lang/serbian.txt
@@ -2882,7 +2882,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Zemljište u po
STR_ABOUT_OPENTTD :{WHITE}O OpenTTD-u
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Originalni kopirajt {COPYRIGHT} 1995 Chris Sawyer, Sva prava zadržana
STR_ABOUT_VERSION :{BLACK}OpenTTD verzija {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD tim
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 OpenTTD tim
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Sačuvaj poziciju
diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt
index b00dfef89e..d8e9f0c8c6 100644
--- a/src/lang/simplified_chinese.txt
+++ b/src/lang/simplified_chinese.txt
@@ -2688,7 +2688,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :公司属地
STR_ABOUT_OPENTTD :{WHITE}关于 OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}原始版权由 {COPYRIGHT} 1995 Chris Sawyer 所有,保留一切权力。
STR_ABOUT_VERSION :{BLACK}OpenTTD 版本 {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD 团队
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 OpenTTD 团队
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}保存游戏
@@ -3293,8 +3293,8 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}需要
STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}需要:{YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING}
############ range for requires ends
-STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}等待中
+STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING}
+STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{STRING}{BLACK}: {CARGO_SHORT} 等待中{STRING}
############ range for produces starts
STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}产出: {YELLOW}{STRING}{STRING}
@@ -3363,6 +3363,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :移除所有车
STR_GROUP_RENAME_CAPTION :{BLACK}重命名分组
+STR_GROUP_PROFIT_THIS_YEAR :今年利润:
STR_GROUP_PROFIT_LAST_YEAR :去年利润
STR_GROUP_OCCUPANCY_VALUE :{NUM}%
@@ -3562,6 +3563,7 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}点击
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}可以切换 机车/挂车 替换项目
STR_REPLACE_ENGINES :机车
STR_REPLACE_WAGONS :挂车
+STR_REPLACE_ALL_RAILTYPE :所有铁路车辆
STR_REPLACE_HELP_RAILTYPE :{BLACK}选择要更新的车辆对应的铁路类型
STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}显示用来替换左侧被选定车辆的新车辆
diff --git a/src/lang/slovak.txt b/src/lang/slovak.txt
index eaf1b59285..4e28c45c02 100644
--- a/src/lang/slovak.txt
+++ b/src/lang/slovak.txt
@@ -2755,7 +2755,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Spoločnosťou
STR_ABOUT_OPENTTD :{WHITE}OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Pôvodný copyright: {COPYRIGHT} 1995 Chris Sawyer, všetky práva vyhradené
STR_ABOUT_VERSION :{BLACK}OpenTTD verzia {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 team OpenTTD
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 team OpenTTD
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Uložiť hru
diff --git a/src/lang/slovenian.txt b/src/lang/slovenian.txt
index 5f1598beb6..5fd44b4d36 100644
--- a/src/lang/slovenian.txt
+++ b/src/lang/slovenian.txt
@@ -1525,6 +1525,7 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_BTN_EMU_OFF :Izklop
STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING :Premik slike z levim klikom: {STRING}
STR_CONFIG_SETTING_LEFT_MOUSE_BTN_SCROLLING_HELPTEXT :Omogoči pomik pogleda z levim klikom miške in vlečenjem. Primerno za dotične zaslone.
+STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE :Zapri okno z desnim klikom: {STRING}
STR_CONFIG_SETTING_AUTOSAVE :Samodejno shrani: {STRING}
STR_CONFIG_SETTING_AUTOSAVE_HELPTEXT :Izberi časovni interval samodejnega shranjevanja igre
@@ -2840,7 +2841,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Ozemlje v lasti
STR_ABOUT_OPENTTD :{WHITE}O OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Prvotne avtorske pravice {COPYRIGHT} 1995 Chris Sawyer, vse pravice pridržane
STR_ABOUT_VERSION :{BLACK}OpenTTD različica {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 ekipa OpenTTD
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2018 ekipa OpenTTD
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Shrani igro
@@ -3679,6 +3680,7 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :magnetna lokomo
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Cena: {CURRENCY_LONG} Teža: {WEIGHT_SHORT}{}Hitrost: {VELOCITY} Moč: {POWER}{}Cena delovanja: {CURRENCY_LONG}/leto{}Zmogljivost: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Cena: {CURRENCY_LONG} Teža: {WEIGHT_SHORT}{}Hitrost: {VELOCITY} Moč: {POWER} Max. T.E.: {6:FORCE}{}Stroški: {4:CURRENCY_LONG}/yr{}Zmogljivost: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. hitrost: {VELOCITY}{}Zmogljivost: {CARGO_LONG}{}Cena delovanja: {CURRENCY_LONG}/leto
+STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST :{BLACK}Cena: {CURRENCY_LONG} Max. hitrost: {VELOCITY}{}Vrsta letala: {STRING}{}Zmogljivost: {CARGO_LONG}{}Stroški obratovanja: {CURRENCY_LONG}/leto
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Zamenjaj {STRING} - {STRING}
diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt
index 5e27b22c4d..6993b7b04b 100644
--- a/src/lang/spanish.txt
+++ b/src/lang/spanish.txt
@@ -2692,7 +2692,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terreno propied
STR_ABOUT_OPENTTD :{WHITE}Acerca de OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright Original {COPYRIGHT} 1995 Chris Sawyer, Todos los derechos reservados
STR_ABOUT_VERSION :{BLACK}OpenTTD versión {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 El equipo OpenTTD
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 El equipo OpenTTD
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Guardar Juego
@@ -3297,11 +3297,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Necesita
STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Requiere: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING}
############ range for requires ends
-STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Necesita
-STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}esperando
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING}
+STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Necesita:
+STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING}
+STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{STRING}{BLACK}: {CARGO_SHORT} esperando{STRING}
############ range for produces starts
STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING}
diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt
index 11e2c22f12..739cfa37a3 100644
--- a/src/lang/spanish_MX.txt
+++ b/src/lang/spanish_MX.txt
@@ -55,7 +55,7 @@ STR_CARGO_PLURAL_CANDY :{G=m}Dulces
STR_CARGO_PLURAL_COLA :{G=f}Bebida de cola
STR_CARGO_PLURAL_COTTON_CANDY :{G=m}Algodón de azúcar
STR_CARGO_PLURAL_BUBBLES :{G=f}Burbujas
-STR_CARGO_PLURAL_TOFFEE :{G=m}Jamoncillos
+STR_CARGO_PLURAL_TOFFEE :{G=m}Caramelos suaves
STR_CARGO_PLURAL_BATTERIES :{G=f}Pilas
STR_CARGO_PLURAL_PLASTIC :{G=m}Plástico
STR_CARGO_PLURAL_FIZZY_DRINKS :{G=m}Refrescos
@@ -89,7 +89,7 @@ STR_CARGO_SINGULAR_CANDY :{G=m}Dulce
STR_CARGO_SINGULAR_COLA :{G=f}Bebida de cola
STR_CARGO_SINGULAR_COTTON_CANDY :{G=m}Algodón de azúcar
STR_CARGO_SINGULAR_BUBBLE :{G=f}Burbuja
-STR_CARGO_SINGULAR_TOFFEE :{G=m}Jamoncillo
+STR_CARGO_SINGULAR_TOFFEE :{G=m}Caramelo suave
STR_CARGO_SINGULAR_BATTERY :{G=f}Pila
STR_CARGO_SINGULAR_PLASTIC :{G=m}Plástico
STR_CARGO_SINGULAR_FIZZY_DRINK :{G=m}Refresco
@@ -123,7 +123,7 @@ STR_QUANTITY_SWEETS :{COMMA}{NBSP}bo
STR_QUANTITY_COLA :{VOLUME_LONG} de cola
STR_QUANTITY_CANDYFLOSS :{WEIGHT_LONG} de algo{P dón dones} de azúcar
STR_QUANTITY_BUBBLES :{COMMA} burbuja{P "" s}
-STR_QUANTITY_TOFFEE :{WEIGHT_LONG} de jamoncillo{P "" s}
+STR_QUANTITY_TOFFEE :{WEIGHT_LONG} de caramelo suave
STR_QUANTITY_BATTERIES :{COMMA} pila{P "" s}
STR_QUANTITY_PLASTIC :{VOLUME_LONG} de plásticos
STR_QUANTITY_FIZZY_DRINKS :{COMMA} refresco{P "" s}
@@ -131,39 +131,39 @@ STR_QUANTITY_N_A :N/A
# Two letter abbreviation of cargo name
STR_ABBREV_NOTHING :
-STR_ABBREV_PASSENGERS :{TINY_FONT}PJ
-STR_ABBREV_COAL :{TINY_FONT}CB
-STR_ABBREV_MAIL :{TINY_FONT}CR
-STR_ABBREV_OIL :{TINY_FONT}PT
-STR_ABBREV_LIVESTOCK :{TINY_FONT}GN
-STR_ABBREV_GOODS :{TINY_FONT}MC
+STR_ABBREV_PASSENGERS :{TINY_FONT}PS
+STR_ABBREV_COAL :{TINY_FONT}CA
+STR_ABBREV_MAIL :{TINY_FONT}CO
+STR_ABBREV_OIL :{TINY_FONT}PE
+STR_ABBREV_LIVESTOCK :{TINY_FONT}GA
+STR_ABBREV_GOODS :{TINY_FONT}ME
STR_ABBREV_GRAIN :{TINY_FONT}GR
-STR_ABBREV_WOOD :{TINY_FONT}MD
-STR_ABBREV_IRON_ORE :{TINY_FONT}MH
+STR_ABBREV_WOOD :{TINY_FONT}MA
+STR_ABBREV_IRON_ORE :{TINY_FONT}HI
STR_ABBREV_STEEL :{TINY_FONT}AC
-STR_ABBREV_VALUABLES :{TINY_FONT}VA
-STR_ABBREV_COPPER_ORE :{TINY_FONT}MC
+STR_ABBREV_VALUABLES :{TINY_FONT}OV
+STR_ABBREV_COPPER_ORE :{TINY_FONT}CB
STR_ABBREV_MAIZE :{TINY_FONT}MZ
-STR_ABBREV_FRUIT :{TINY_FONT}FT
-STR_ABBREV_DIAMONDS :{TINY_FONT}DM
+STR_ABBREV_FRUIT :{TINY_FONT}FR
+STR_ABBREV_DIAMONDS :{TINY_FONT}DI
STR_ABBREV_FOOD :{TINY_FONT}AL
-STR_ABBREV_PAPER :{TINY_FONT}PP
+STR_ABBREV_PAPER :{TINY_FONT}PA
STR_ABBREV_GOLD :{TINY_FONT}OR
STR_ABBREV_WATER :{TINY_FONT}AG
-STR_ABBREV_WHEAT :{TINY_FONT}TG
-STR_ABBREV_RUBBER :{TINY_FONT}GA
+STR_ABBREV_WHEAT :{TINY_FONT}TR
+STR_ABBREV_RUBBER :{TINY_FONT}CH
STR_ABBREV_SUGAR :{TINY_FONT}AZ
-STR_ABBREV_TOYS :{TINY_FONT}JG
-STR_ABBREV_SWEETS :{TINY_FONT}DC
+STR_ABBREV_TOYS :{TINY_FONT}JU
+STR_ABBREV_SWEETS :{TINY_FONT}DU
STR_ABBREV_COLA :{TINY_FONT}CL
STR_ABBREV_CANDYFLOSS :{TINY_FONT}AA
STR_ABBREV_BUBBLES :{TINY_FONT}BU
-STR_ABBREV_TOFFEE :{TINY_FONT}JM
+STR_ABBREV_TOFFEE :{TINY_FONT}CS
STR_ABBREV_BATTERIES :{TINY_FONT}PI
STR_ABBREV_PLASTIC :{TINY_FONT}PL
-STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}RF
-STR_ABBREV_NONE :{TINY_FONT}NO
-STR_ABBREV_ALL :{TINY_FONT}TOD
+STR_ABBREV_FIZZY_DRINKS :{TINY_FONT}RE
+STR_ABBREV_NONE :{TINY_FONT}NADA
+STR_ABBREV_ALL :{TINY_FONT}TODO
# 'Mode' of transport for cargoes
STR_PASSENGERS :{COMMA}{NBSP}pasajero{P "" s}
@@ -212,7 +212,7 @@ STR_UNITS_VOLUME_SHORT_IMPERIAL :{COMMA}{NBSP}ga
STR_UNITS_VOLUME_SHORT_METRIC :{COMMA}{NBSP}l
STR_UNITS_VOLUME_SHORT_SI :{COMMA}{NBSP}m³
-STR_UNITS_VOLUME_LONG_IMPERIAL :{COMMA} gal{P ón ones}
+STR_UNITS_VOLUME_LONG_IMPERIAL :{COMMA}{NBSP} gal{P ón ones}
STR_UNITS_VOLUME_LONG_METRIC :{COMMA}{NBSP}litro{P "" s}
STR_UNITS_VOLUME_LONG_SI :{COMMA}{NBSP}m³
@@ -247,7 +247,7 @@ STR_TOOLTIP_RESIZE :{BLACK}Arrastra
STR_TOOLTIP_TOGGLE_LARGE_SMALL_WINDOW :{BLACK}Cambiar entre tamaño de ventana grande o pequeño
STR_TOOLTIP_VSCROLL_BAR_SCROLLS_LIST :{BLACK}Barra de desplazamiento (mueve la lista arriba o abajo)
STR_TOOLTIP_HSCROLL_BAR_SCROLLS_LIST :{BLACK}Barra de desplazamiento (mueve la lista izquierda o derecha)
-STR_TOOLTIP_DEMOLISH_BUILDINGS_ETC :{BLACK}Demoler edificios, etc. en un área de terreno. Ctrl permite trazar una diagonal para seleccionar un área cuadrada. Mayús muestra una estimación del precio
+STR_TOOLTIP_DEMOLISH_BUILDINGS_ETC :{BLACK}Demoler edificios, etc. en un área de terreno. Ctrl para seleccionar un área en diagonal. Mayús muestra una estimación del precio
# Show engines button
STR_SHOW_HIDDEN_ENGINES_VEHICLE_TRAIN :{BLACK}Mostrar ocultos
@@ -271,7 +271,7 @@ STR_OSK_KEYBOARD_LAYOUT_CAPS :°!"#$%&/()=?¡
# Measurement tooltip
STR_MEASURE_LENGTH :{BLACK}Longitud: {NUM}
-STR_MEASURE_AREA :{BLACK}Área: {NUM} x {NUM}
+STR_MEASURE_AREA :{BLACK}Área: {NUM} × {NUM}
STR_MEASURE_LENGTH_HEIGHTDIFF :{BLACK}Longitud: {NUM}{}Diferencia altura: {HEIGHT}
STR_MEASURE_AREA_HEIGHTDIFF :{BLACK}Área: {NUM}×{NUM}{}Diferencia altura: {HEIGHT}
@@ -598,8 +598,8 @@ STR_COMPANY_LEAGUE_COMPANY_NAME :{ORANGE}{COMPAN
STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_ENGINEER :Ingeniero
STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_TRAFFIC_MANAGER :Director de Tráfico
STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_TRANSPORT_COORDINATOR :Coordinador de Transporte
-STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_ROUTE_SUPERVISOR :Supervisor de Ruta
-STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_DIRECTOR :Directivo
+STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_ROUTE_SUPERVISOR :Supervisor de Rutas
+STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_DIRECTOR :Jefe
STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_CHIEF_EXECUTIVE :Subdirector
STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_CHAIRMAN :Director
STR_COMPANY_LEAGUE_PERFORMANCE_TITLE_PRESIDENT :Presidente
@@ -804,7 +804,7 @@ STR_NEWS_DISASTER_FLOOD_VEHICLE :{BIG_FONT}{BLAC
STR_NEWS_COMPANY_IN_TROUBLE_TITLE :{BIG_FONT}{BLACK}¡Empresa de transporte en problemas!
STR_NEWS_COMPANY_IN_TROUBLE_DESCRIPTION :{BIG_FONT}{BLACK}¡{STRING} será vendida o declarada en bancarrota de no incrementar su desempeño pronto!
-STR_NEWS_COMPANY_MERGER_TITLE :{BIG_FONT}{BLACK}¡Fusión de empresa de transportes!
+STR_NEWS_COMPANY_MERGER_TITLE :{BIG_FONT}{BLACK}¡Fusión de empresas de transportes!
STR_NEWS_COMPANY_MERGER_DESCRIPTION :{BIG_FONT}{BLACK}¡{STRING} fue vendida a {STRING} por {CURRENCY_LONG}!
STR_NEWS_COMPANY_BANKRUPT_TITLE :{BIG_FONT}{BLACK}¡En bancarrota!
STR_NEWS_COMPANY_BANKRUPT_DESCRIPTION :{BIG_FONT}{BLACK}¡{STRING} fue cerrada por sus acreedores y todos sus activos fueron vendidos!
@@ -844,32 +844,32 @@ STR_NEWS_AIRCRAFT_IS_WAITING :{WHITE}{VEHICLE
STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE} tiene muy pocas órdenes en la lista
STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} tiene una orden vacía
STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} tiene órdenes duplicadas
-STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} tiene en la lista una estación no válida
-STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE} tiene en la lista un aeropuerto con una pista muy corta
+STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} tiene una estación no válida en la lista
+STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE} tiene un aeropuerto con una pista muy corta en la lista
STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} se está haciendo viejo
STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} se está haciendo muy viejo
STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD_AND :{WHITE}{VEHICLE} se está haciendo muy viejo y requiere renovación urgente
STR_NEWS_TRAIN_IS_STUCK :{WHITE}{VEHICLE} no encuentra una ruta para continuar
STR_NEWS_VEHICLE_IS_LOST :{WHITE}{VEHICLE} se perdió
-STR_NEWS_VEHICLE_IS_UNPROFITABLE :{WHITE}La utilidad del año pasado del {VEHICLE} fue de {CURRENCY_LONG}
+STR_NEWS_VEHICLE_IS_UNPROFITABLE :{WHITE}La utilidad de {VEHICLE} el año pasado fue de {CURRENCY_LONG}
STR_NEWS_AIRCRAFT_DEST_TOO_FAR :{WHITE}{VEHICLE} no puede llegar al siguiente destino porque no está a su alcance
-STR_NEWS_ORDER_REFIT_FAILED :{WHITE}{VEHICLE} no avanza porque no pudo reequipar su carga
+STR_NEWS_ORDER_REFIT_FAILED :{WHITE}{VEHICLE} no avanza porque no pudo reformarse
STR_NEWS_VEHICLE_AUTORENEW_FAILED :{WHITE}Renovación automática fallida para {VEHICLE}{}{STRING}
STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE :{BIG_FONT}{BLACK}¡Nuev{G o a} {STRING} ahora disponible!
STR_NEWS_NEW_VEHICLE_TYPE :{BIG_FONT}{BLACK}{ENGINE}
STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}¡Nuev{G o a} {STRING} ahora disponible! - {ENGINE}
-STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} ya no recibe {STRING}
-STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} ya no recibe {STRING} ni {STRING}
-STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} recibe ahora {STRING}
-STR_NEWS_STATION_NOW_ACCEPTS_CARGO_AND_CARGO :{WHITE}{STATION} recibe ahora {STRING} y {STRING}
+STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} ya no acepta {STRING}
+STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} ya no acepta {STRING} ni {STRING}
+STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} acepta ahora {STRING}
+STR_NEWS_STATION_NOW_ACCEPTS_CARGO_AND_CARGO :{WHITE}{STATION} acepta ahora {STRING} y {STRING}
STR_NEWS_OFFER_OF_SUBSIDY_EXPIRED :{BIG_FONT}{BLACK}Oferta de subsidio vencida:{}{}{STRING} de {STRING} a {STRING} ya no está subsidiado
STR_NEWS_SUBSIDY_WITHDRAWN_SERVICE :{BIG_FONT}{BLACK}Subsidio retirado:{}{}El servicio de {STRING} desde {STRING} a {STRING} ya no está subsidiado
-STR_NEWS_SERVICE_SUBSIDY_OFFERED :{BIG_FONT}{BLACK}Se ofrece subsidio.{}{}¡El primer servicio de {STRING} desde {STRING} a {STRING} tendrá subsidio durante un año parte del ayuntamiento local!
+STR_NEWS_SERVICE_SUBSIDY_OFFERED :{BIG_FONT}{BLACK}Se ofrece subsidio.{}{}¡El primer servicio de {STRING} desde {STRING} a {STRING} tendrá subsidio durante un año por parte del ayuntamiento local!
STR_NEWS_SERVICE_SUBSIDY_AWARDED_HALF :{BIG_FONT}{BLACK}¡Subsidio otorgado a {STRING}!{}{}¡El servicio de {STRING} desde {STRING} a {STRING} generará un 50% extra por un año!
STR_NEWS_SERVICE_SUBSIDY_AWARDED_DOUBLE :{BIG_FONT}{BLACK}¡Subsidio otorgado a {STRING}!{}{}¡El servicio de {STRING} desde {STRING} a {STRING} generará tasa doble durante un año!
STR_NEWS_SERVICE_SUBSIDY_AWARDED_TRIPLE :{BIG_FONT}{BLACK}¡Subsidio otorgado a {STRING}!{}{}¡El servicio de {STRING} desde {STRING} a {STRING} generará tasa triple durante un año!
@@ -1134,14 +1134,14 @@ STR_CONFIG_SETTING_COMPANIES_ALL :Todas las empre
STR_CONFIG_SETTING_NONE :Ninguno
STR_CONFIG_SETTING_ORIGINAL :Original
-STR_CONFIG_SETTING_REALISTIC :Simulado
+STR_CONFIG_SETTING_REALISTIC :Realista
STR_CONFIG_SETTING_HORIZONTAL_POS_LEFT :Izquierda
STR_CONFIG_SETTING_HORIZONTAL_POS_CENTER :Centro
STR_CONFIG_SETTING_HORIZONTAL_POS_RIGHT :Derecha
STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN :Máximo préstamo inicial: {STRING}
-STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Máxima cantidad que una empresa puede recibir como préstamo (sin tener en cuenta la inflación)
+STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_HELPTEXT :Máxima cantidad que una empresa puede pedir prestada (sin tener en cuenta la inflación)
STR_CONFIG_SETTING_INTEREST_RATE :Porcentaje de interés: {STRING}
STR_CONFIG_SETTING_INTEREST_RATE_HELPTEXT :Porcentaje de interés de los préstamos; controla también la inflación, en caso de estar activada
STR_CONFIG_SETTING_RUNNING_COSTS :Costos de operación: {STRING}
@@ -1792,9 +1792,9 @@ STR_ABANDON_SCENARIO_QUERY :{YELLOW}¿Está
# Cheat window
STR_CHEATS :{WHITE}Trucos
-STR_CHEATS_TOOLTIP :{BLACK}Las casillas verificadas indican que ya se usó este truco
+STR_CHEATS_TOOLTIP :{BLACK}Las casillas marcadas indican que ya se usó este truco
STR_CHEATS_WARNING :{BLACK}¡Atención! Estás a punto de traicionar a tus competidores. Recuerda que siempre se recordará tal deshonra
-STR_CHEAT_MONEY :{LTBLUE}Recibir {CURRENCY_LONG} de dinero
+STR_CHEAT_MONEY :{LTBLUE}Añadir {CURRENCY_LONG} en efectivo
STR_CHEAT_CHANGE_COMPANY :{LTBLUE}Jugar como la empresa: {ORANGE}{COMMA}
STR_CHEAT_EXTRA_DYNAMITE :{LTBLUE}Excavadora mágica (elimina industrias y objetos inamovibles): {ORANGE}{STRING}
STR_CHEAT_CROSSINGTUNNELS :{LTBLUE}Los túneles se pueden cruzar: {ORANGE}{STRING}
@@ -1810,18 +1810,18 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Cambiar
STR_CHEAT_SETUP_PROD :{LTBLUE}Permitir cambiar los valores de producción: {ORANGE}{STRING}
# Livery window
-STR_LIVERY_CAPTION :{WHITE}Diseño de colores corporativos
+STR_LIVERY_CAPTION :{WHITE}Nueva cromática
-STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Mostrar diseño general de colores
-STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Mostrar diseño general de colores para trenes
-STR_LIVERY_ROAD_VEHICLE_TOOLTIP :{BLACK}Mostrar diseño general de colores para vehículos de carretera
-STR_LIVERY_SHIP_TOOLTIP :{BLACK}Mostrar diseño general de colores de colores para barcos
-STR_LIVERY_AIRCRAFT_TOOLTIP :{BLACK}Mostrar diseño general de colores de colores para aeronaves
-STR_LIVERY_PRIMARY_TOOLTIP :{BLACK}Elegir el color principal para el diseño seleccionado. Ctrl+Clic para establecerlo como diseño general
-STR_LIVERY_SECONDARY_TOOLTIP :{BLACK}Elegir el color secundario para el diseño seleccionado. Ctrl+Clic para establecerlo como diseño general
-STR_LIVERY_PANEL_TOOLTIP :{BLACK}Elegir un solo diseño de colores, o Ctrl+Clic para elegir varios. Verificar cada una casilla para establecer diferentes combinaciones según el tipo de vehículo
+STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Mostrar cromática general
+STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Mostrar cromáticas para trenes
+STR_LIVERY_ROAD_VEHICLE_TOOLTIP :{BLACK}Mostrar cromáticas para vehículos de carretera
+STR_LIVERY_SHIP_TOOLTIP :{BLACK}Mostrar cromáticas para barcos
+STR_LIVERY_AIRCRAFT_TOOLTIP :{BLACK}Mostrar cromáticas para aeronaves
+STR_LIVERY_PRIMARY_TOOLTIP :{BLACK}Elegir el color principal para la cromática elegida. Ctrl+Clic para establecerlo como cromática general
+STR_LIVERY_SECONDARY_TOOLTIP :{BLACK}Elegir el color secundario para el diseño seleccionado. Ctrl+Clic para establecerlo como cromática general
+STR_LIVERY_PANEL_TOOLTIP :{BLACK}Elegir un solo tipo de cromática, o Ctrl+Clic para elegir varios. Marcar las casillas para establecer diferentes combinaciones según el tipo de vehículo
-STR_LIVERY_DEFAULT :Diseño de colores estándar
+STR_LIVERY_DEFAULT :Cromática estándar
STR_LIVERY_STEAM :Locomotora a vapor
STR_LIVERY_DIESEL :Locomotora de diésel
STR_LIVERY_ELECTRIC :Locomotora eléctrica
@@ -1857,7 +1857,7 @@ STR_FACE_FEMALE_BUTTON :{BLACK}Mujer
STR_FACE_FEMALE_TOOLTIP :{BLACK}Elegir cara femenina
STR_FACE_NEW_FACE_BUTTON :{BLACK}Nueva cara
STR_FACE_NEW_FACE_TOOLTIP :{BLACK}Generar cara al azar
-STR_FACE_ADVANCED :{BLACK}Avanzada
+STR_FACE_ADVANCED :{BLACK}Avanzado
STR_FACE_ADVANCED_TOOLTIP :{BLACK}Selección avanzada de caras
STR_FACE_SIMPLE :{BLACK}Simple
STR_FACE_SIMPLE_TOOLTIP :{BLACK}Selección simple de caras
@@ -2191,7 +2191,7 @@ STR_NETWORK_MESSAGE_CLIENT_COMPANY_NEW :*** {STRING} cr
STR_NETWORK_MESSAGE_CLIENT_LEFT :*** {STRING} salió de la partida ({2:STRING})
STR_NETWORK_MESSAGE_NAME_CHANGE :*** {STRING} cambió su nombre a {STRING}
STR_NETWORK_MESSAGE_GIVE_MONEY :*** {STRING} le dio a tu empresa {2:CURRENCY_LONG}
-STR_NETWORK_MESSAGE_GAVE_MONEY_AWAY :*** {2:CURRENCY_LONG} entregado a la empresa {1:STRING}
+STR_NETWORK_MESSAGE_GAVE_MONEY_AWAY :*** {2:CURRENCY_LONG} cedidos a la empresa {1:STRING}
STR_NETWORK_MESSAGE_SERVER_SHUTDOWN :{WHITE}El servidor ha cerrado la sesión
STR_NETWORK_MESSAGE_SERVER_REBOOT :{WHITE}Se está reiniciando el servidor...{}Espera por favor...
@@ -2298,7 +2298,7 @@ STR_STATION_BUILD_COVERAGE_OFF :{BLACK}Desactiv
STR_STATION_BUILD_COVERAGE_ON :{BLACK}Activado
STR_STATION_BUILD_COVERAGE_AREA_OFF_TOOLTIP :{BLACK}No mostrar área de recolección en el sitio planeado
STR_STATION_BUILD_COVERAGE_AREA_ON_TOOLTIP :{BLACK}Mostrar área de recolección en el sitio planeado
-STR_STATION_BUILD_ACCEPTS_CARGO :{BLACK}Recibe: {GOLD}{CARGO_LIST}
+STR_STATION_BUILD_ACCEPTS_CARGO :{BLACK}Acepta: {GOLD}{CARGO_LIST}
STR_STATION_BUILD_SUPPLIES_CARGO :{BLACK}Provee: {GOLD}{CARGO_LIST}
# Join station window
@@ -2475,9 +2475,9 @@ STR_STATION_BUILD_NOISE :{BLACK}Ruido ge
# Landscaping toolbar
STR_LANDSCAPING_TOOLBAR :{WHITE}Modificación de terreno
-STR_LANDSCAPING_TOOLTIP_LOWER_A_CORNER_OF_LAND :{BLACK}Disminuir una esquina del terreno. Al arrastrar el ratón se reduce la primera esquina elegida y se nivela el resto del terreno seleccionado a dicha altura. Ctrl permite trazar una diagonal para seleccionar un área cuadrada.
-STR_LANDSCAPING_TOOLTIP_RAISE_A_CORNER_OF_LAND :{BLACK}Elevar una esquina del terreno. Al arrastrar el ratón se eleva la primera esquina elegida y se nivela el resto del terreno seleccionado a dicha altura. Ctrl permite trazar una diagonal para seleccionar un área cuadrada. Mayús muestra una estimación del precio
-STR_LANDSCAPING_LEVEL_LAND_TOOLTIP :{BLACK}Nivela un área de terreno a la altura de la primera esquina seleccionada. Ctrl permite trazar una diagonal para seleccionar un área cuadrada. Mayús muestra una estimación del precio
+STR_LANDSCAPING_TOOLTIP_LOWER_A_CORNER_OF_LAND :{BLACK}Disminuir una esquina del terreno. Al arrastrar el ratón se reduce la primera esquina elegida y se nivela el resto del terreno seleccionado a dicha altura. Ctrl para seleccionar un área en diagonal.
+STR_LANDSCAPING_TOOLTIP_RAISE_A_CORNER_OF_LAND :{BLACK}Elevar una esquina del terreno. Al arrastrar el ratón se eleva la primera esquina elegida y se nivela el resto del terreno seleccionado a dicha altura. Ctrl para seleccionar un área en diagonal. Mayús muestra una estimación del precio
+STR_LANDSCAPING_LEVEL_LAND_TOOLTIP :{BLACK}Nivela un área de terreno a la altura de la primera esquina seleccionada. Ctrl para seleccionar un área en diagonal. Mayús muestra una estimación del precio
STR_LANDSCAPING_TOOLTIP_PURCHASE_LAND :{BLACK}Comprar terreno para usos futuros. Mayús muestra una estimación del precio
# Object construction window
@@ -2692,7 +2692,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Terreno propied
STR_ABOUT_OPENTTD :{WHITE}Acerca de OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Copyright original {COPYRIGHT} 1995 Chris Sawyer, Todos los derechos reservados
STR_ABOUT_VERSION :{BLACK}OpenTTD versión {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017, el equipo de OpenTTD
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018, el equipo de OpenTTD
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Guardar partida
@@ -2938,7 +2938,7 @@ STR_NEWGRF_LIST_MISSING :{RED}Archivos q
STR_NEWGRF_BROKEN :{WHITE}Es posible que el funcionamiento del NewGRF '{0:STRING}' cause desincronizaciones o errores
STR_NEWGRF_BROKEN_POWERED_WAGON :{WHITE}Cambió el estado 'vagón con motor' para '{1:ENGINE}' cuando no estaba dentro de un depósito
STR_NEWGRF_BROKEN_VEHICLE_LENGTH :{WHITE}cambió la longitud del vehículo para '{1:ENGINE}' cuando no estaba dentro de un depósito
-STR_NEWGRF_BROKEN_CAPACITY :{WHITE}Cambió la capacidad del vehículo para '{1:ENGINE}' cuando no estaba dentro de un depósito o mientras no se estaba reequipando
+STR_NEWGRF_BROKEN_CAPACITY :{WHITE}Cambió la capacidad del vehículo para '{1:ENGINE}' cuando no estaba dentro de un depósito o mientras no se estaba reformando
STR_BROKEN_VEHICLE_LENGTH :{WHITE}Tren '{VEHICLE}' perteneciente a '{COMPANY}' tiene una longitud no válida. Puede ser debido a problemas con los NewGRF. El juego puede fallar
STR_NEWGRF_BUGGY :{WHITE}El NewGRF '{0:STRING}' da información incorrecta
@@ -3097,7 +3097,7 @@ STR_STORY_BOOK_NEXT_PAGE_TOOLTIP :{BLACK}Ir a la
STR_STORY_BOOK_INVALID_GOAL_REF :{RED}Referencia a objetivos no válida
# Station list window
-STR_STATION_LIST_TOOLTIP :{BLACK}Nombres de estación: Clic en un nombre para centrar la vista principal en la estación. Ctrl+Clic abre una ventana de vista en dicha ubicación
+STR_STATION_LIST_TOOLTIP :{BLACK}Nombres de estaciones: Clic en un nombre para centrar la vista principal en la estación. Ctrl+Clic abre una ventana de vista en dicha ubicación
STR_STATION_LIST_USE_CTRL_TO_SELECT_MORE :{BLACK}Mantener pulsado Ctrl para seleccionar más de un elemento
STR_STATION_LIST_CAPTION :{WHITE}{COMPANY}: {COMMA} estaci{P ón ones}
STR_STATION_LIST_STATION :{YELLOW}{STATION} {STATION_FEATURES}
@@ -3113,9 +3113,9 @@ STR_STATION_VIEW_WAITING_CARGO :{WHITE}{CARGO_L
STR_STATION_VIEW_EN_ROUTE_FROM :{YELLOW}({CARGO_SHORT} en camino desde {STATION})
STR_STATION_VIEW_RESERVED :{YELLOW}({CARGO_SHORT} reservado para cargar)
-STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Recibe
-STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Mostrar lista de cargamento recibido
-STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Recibe: {WHITE}{CARGO_LIST}
+STR_STATION_VIEW_ACCEPTS_BUTTON :{BLACK}Acepta
+STR_STATION_VIEW_ACCEPTS_TOOLTIP :{BLACK}Lista de cargamento aceptado
+STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Acepta: {WHITE}{CARGO_LIST}
STR_STATION_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Esta estación tiene los derechos exclusivos de transporte en este pueblo.
STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPANY}{BLACK} compró los derechos exclusivos de transporte en este pueblo.
@@ -3131,11 +3131,11 @@ STR_STATION_VIEW_WAITING_AMOUNT :Cantidad: Esper
STR_STATION_VIEW_PLANNED_STATION :Estación: Planeado
STR_STATION_VIEW_PLANNED_AMOUNT :Cantidad: Planeado
STR_STATION_VIEW_FROM :{YELLOW}{CARGO_SHORT} desde {STATION}
-STR_STATION_VIEW_VIA :{YELLOW}{CARGO_SHORT} por {STATION}
+STR_STATION_VIEW_VIA :{YELLOW}{CARGO_SHORT} pasando por {STATION}
STR_STATION_VIEW_TO :{YELLOW}{CARGO_SHORT} a {STATION}
STR_STATION_VIEW_FROM_ANY :{RED}{CARGO_SHORT} desde estación desconocida
STR_STATION_VIEW_TO_ANY :{RED}{CARGO_SHORT} a cualquier estación
-STR_STATION_VIEW_VIA_ANY :{RED}{CARGO_SHORT} por cualquier estación
+STR_STATION_VIEW_VIA_ANY :{RED}{CARGO_SHORT} pasando por cualquier estación
STR_STATION_VIEW_FROM_HERE :{GREEN}{CARGO_SHORT} con salida desde esta estación
STR_STATION_VIEW_VIA_HERE :{GREEN}{CARGO_SHORT} se detendrá en esta estación
STR_STATION_VIEW_TO_HERE :{GREEN}{CARGO_SHORT} a esta estación
@@ -3271,7 +3271,7 @@ STR_COMPANY_INFRASTRUCTURE_VIEW_TRAMWAY :{WHITE}Tranvía
STR_COMPANY_INFRASTRUCTURE_VIEW_WATER_SECT :{GOLD}Casillas de agua:
STR_COMPANY_INFRASTRUCTURE_VIEW_CANALS :{WHITE}Canales
STR_COMPANY_INFRASTRUCTURE_VIEW_STATION_SECT :{GOLD}Estaciones:
-STR_COMPANY_INFRASTRUCTURE_VIEW_STATIONS :{WHITE}Casillas de estación
+STR_COMPANY_INFRASTRUCTURE_VIEW_STATIONS :{WHITE}Casillas de estaciones
STR_COMPANY_INFRASTRUCTURE_VIEW_AIRPORTS :{WHITE}Aeropuertos
STR_COMPANY_INFRASTRUCTURE_VIEW_TOTAL :{WHITE}{CURRENCY_LONG}/año
@@ -3297,11 +3297,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Requiere
STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Requiere: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING}
############ range for requires ends
-STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Requiere
-STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}esperando
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING}
+STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Requiere:
+STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING}
+STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{STRING}{BLACK}: {CARGO_SHORT} esperando{STRING}
############ range for produces starts
STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING}
@@ -3401,7 +3399,7 @@ STR_PURCHASE_INFO_WEIGHT_CWEIGHT :{BLACK}Peso: {G
STR_PURCHASE_INFO_COST_SPEED :{BLACK}Costo: {GOLD}{CURRENCY_LONG}{BLACK} Velocidad: {GOLD}{VELOCITY}
STR_PURCHASE_INFO_AIRCRAFT_CAPACITY :{BLACK}Capacidad: {GOLD}{CARGO_LONG}, {CARGO_LONG}
STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Vagones con motor: {GOLD}+{POWER}{BLACK} Peso: {GOLD}+{WEIGHT_SHORT}
-STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Reequipamiento: {GOLD}{STRING}
+STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Reforma: {GOLD}{STRING}
STR_PURCHASE_INFO_ALL_TYPES :Todo tipo de carga
STR_PURCHASE_INFO_ALL_BUT :Todo excepto {CARGO_LIST}
STR_PURCHASE_INFO_MAX_TE :{BLACK}Máx. fuerza de tracción: {GOLD}{FORCE}
@@ -3606,10 +3604,10 @@ STR_VEHICLE_VIEW_CLONE_AIRCRAFT_INFO :{BLACK}Esto com
STR_VEHICLE_VIEW_TRAIN_IGNORE_SIGNAL_TOOLTIP :{BLACK}Forzar al tren a proceder sin esperar a que la señal le ceda vía libre
-STR_VEHICLE_VIEW_TRAIN_REFIT_TOOLTIP :{BLACK}Reequipar tren para transportar otro tipo de cargamento
-STR_VEHICLE_VIEW_ROAD_VEHICLE_REFIT_TOOLTIP :{BLACK}Reequipar vehículo de carretera para transportar otro tipo de cargamento
-STR_VEHICLE_VIEW_SHIP_REFIT_TOOLTIP :{BLACK}Reequipar barco para que transporte otro tipo de cargamento
-STR_VEHICLE_VIEW_AIRCRAFT_REFIT_TOOLTIP :{BLACK}Reequipar aeronave para llevar otro tipo de cargamento
+STR_VEHICLE_VIEW_TRAIN_REFIT_TOOLTIP :{BLACK}Reformar tren para transportar otro tipo de cargamento
+STR_VEHICLE_VIEW_ROAD_VEHICLE_REFIT_TOOLTIP :{BLACK}Reformar vehículo de carretera para transportar otro tipo de cargamento
+STR_VEHICLE_VIEW_SHIP_REFIT_TOOLTIP :{BLACK}Reformar barco para que transporte otro tipo de cargamento
+STR_VEHICLE_VIEW_AIRCRAFT_REFIT_TOOLTIP :{BLACK}Reformar aeronave para llevar otro tipo de cargamento
STR_VEHICLE_VIEW_TRAIN_REVERSE_TOOLTIP :{BLACK}Cambiar dirección del tren
STR_VEHICLE_VIEW_ROAD_VEHICLE_REVERSE_TOOLTIP :{BLACK}Forzar al vehículo a girar en sentido opuesto
@@ -3722,35 +3720,35 @@ STR_VEHICLE_DETAILS_TRAIN_TOTAL_CARGO_TOOLTIP :{BLACK}Mostrar
STR_VEHICLE_DETAILS_TRAIN_ARTICULATED_RV_CAPACITY :{BLACK}Capacidad: {LTBLUE}
# Vehicle refit
-STR_REFIT_CAPTION :{WHITE}{VEHICLE} (reequipar)
+STR_REFIT_CAPTION :{WHITE}{VEHICLE} (reformar)
STR_REFIT_TITLE :{GOLD}Elegir el nuevo tipo de cargamento:
-STR_REFIT_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nueva capacidad: {GOLD}{CARGO_LONG}{}{BLACK}Costo por reequipar: {RED}{CURRENCY_LONG}
-STR_REFIT_NEW_CAPACITY_INCOME_FROM_REFIT :{BLACK}Nueva capacidad: {GOLD}{CARGO_LONG}{}{BLACK}Ingreso al reequipar: {GREEN}{CURRENCY_LONG}
-STR_REFIT_NEW_CAPACITY_COST_OF_AIRCRAFT_REFIT :{BLACK}Nueva capacidad: {GOLD}{CARGO_LONG}, {GOLD}{CARGO_LONG}{}{BLACK}Costo por reequipar: {RED}{CURRENCY_LONG}
-STR_REFIT_NEW_CAPACITY_INCOME_FROM_AIRCRAFT_REFIT :{BLACK}Nueva capacidad: {GOLD}{CARGO_LONG}, {GOLD}{CARGO_LONG}{}{BLACK}Ingreso al reequipar: {GREEN}{CURRENCY_LONG}
-STR_REFIT_SELECT_VEHICLES_TOOLTIP :{BLACK}Elegir los vehículos de ferrocarril a reequipar. Arrastrar con el ratón para elegir más de un vehículo. Clic en un espacio vacío para elegir el tren completo. Ctrl+Clic para elegir una unidad del tren y los vagones subsecuentes
+STR_REFIT_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nueva capacidad: {GOLD}{CARGO_LONG}{}{BLACK}Costo por reformar: {RED}{CURRENCY_LONG}
+STR_REFIT_NEW_CAPACITY_INCOME_FROM_REFIT :{BLACK}Nueva capacidad: {GOLD}{CARGO_LONG}{}{BLACK}Ingreso al reformar: {GREEN}{CURRENCY_LONG}
+STR_REFIT_NEW_CAPACITY_COST_OF_AIRCRAFT_REFIT :{BLACK}Nueva capacidad: {GOLD}{CARGO_LONG}, {GOLD}{CARGO_LONG}{}{BLACK}Costo por reformar: {RED}{CURRENCY_LONG}
+STR_REFIT_NEW_CAPACITY_INCOME_FROM_AIRCRAFT_REFIT :{BLACK}Nueva capacidad: {GOLD}{CARGO_LONG}, {GOLD}{CARGO_LONG}{}{BLACK}Ingreso al reformar: {GREEN}{CURRENCY_LONG}
+STR_REFIT_SELECT_VEHICLES_TOOLTIP :{BLACK}Elegir los vehículos de ferrocarril a reformar. Arrastrar con el ratón para elegir más de un vehículo. Clic en un espacio vacío para elegir el tren completo. Ctrl+Clic para elegir una unidad del tren y los vagones subsecuentes
STR_REFIT_TRAIN_LIST_TOOLTIP :{BLACK}Elegir el tipo de cargamento para el tren
STR_REFIT_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Elegir el tipo de cargamento para el vehículo de carretera
STR_REFIT_SHIP_LIST_TOOLTIP :{BLACK}Elegir el tipo de cargamento para el barco
STR_REFIT_AIRCRAFT_LIST_TOOLTIP :{BLACK}Elegir el tipo de cargamento para la aeronave
-STR_REFIT_TRAIN_REFIT_BUTTON :{BLACK}Reequipar tren
-STR_REFIT_ROAD_VEHICLE_REFIT_BUTTON :{BLACK}Reequipar vehículo de carretera
-STR_REFIT_SHIP_REFIT_BUTTON :{BLACK}Reequipar barco
-STR_REFIT_AIRCRAFT_REFIT_BUTTON :{BLACK}Reequipar aeronave
+STR_REFIT_TRAIN_REFIT_BUTTON :{BLACK}Reformar tren
+STR_REFIT_ROAD_VEHICLE_REFIT_BUTTON :{BLACK}Reformar vehículo de carretera
+STR_REFIT_SHIP_REFIT_BUTTON :{BLACK}Reformar barco
+STR_REFIT_AIRCRAFT_REFIT_BUTTON :{BLACK}Reformar aeronave
-STR_REFIT_TRAIN_REFIT_TOOLTIP :{BLACK}Reequipar el tren para transportar el cargamento elegido
-STR_REFIT_ROAD_VEHICLE_REFIT_TOOLTIP :{BLACK}Reequipar el vehículo de carretera para transportar el cargamento elegido
-STR_REFIT_SHIP_REFIT_TOOLTIP :{BLACK}Reequipar el barco para transportar el cargamento elegido
-STR_REFIT_AIRCRAFT_REFIT_TOOLTIP :{BLACK}Reequipar la aeronave para transportar el cargamento elegido
+STR_REFIT_TRAIN_REFIT_TOOLTIP :{BLACK}Reformar el tren para transportar el cargamento elegido
+STR_REFIT_ROAD_VEHICLE_REFIT_TOOLTIP :{BLACK}Reformar el vehículo de carretera para transportar el cargamento elegido
+STR_REFIT_SHIP_REFIT_TOOLTIP :{BLACK}Reformar el barco para transportar el cargamento elegido
+STR_REFIT_AIRCRAFT_REFIT_TOOLTIP :{BLACK}Reformar la aeronave para transportar el cargamento elegido
# Order view
STR_ORDERS_CAPTION :{WHITE}{VEHICLE} (Órdenes)
STR_ORDERS_TIMETABLE_VIEW :{BLACK}Itinerario
STR_ORDERS_TIMETABLE_VIEW_TOOLTIP :{BLACK}Cambiar a la ventana de itinerarios
-STR_ORDERS_LIST_TOOLTIP :{BLACK}Lista de órdenes: Clic en una orden para seleccionarla. Ctrl+Clic para desplazarse a la estación indicada en la orden
+STR_ORDERS_LIST_TOOLTIP :{BLACK}Lista de órdenes: Clic en una orden para resaltarla. Ctrl+Clic para desplazarse a la estación indicada en la orden
STR_ORDER_INDEX :{COMMA}:{NBSP}
STR_ORDER_TEXT :{STRING} {STRING} {STRING}
@@ -3761,28 +3759,28 @@ STR_ORDERS_END_OF_SHARED_ORDERS :- - Fin de órd
STR_ORDER_NON_STOP :{BLACK}Sin paradas
STR_ORDER_GO_TO :Ir a
STR_ORDER_GO_NON_STOP_TO :Ir sin paradas a
-STR_ORDER_GO_VIA :Ir por
+STR_ORDER_GO_VIA :Pasar por
STR_ORDER_GO_NON_STOP_VIA :Ir sin paradas por
-STR_ORDER_TOOLTIP_NON_STOP :{BLACK}Cambiar el comportamiento de parada en la orden elegida
+STR_ORDER_TOOLTIP_NON_STOP :{BLACK}Cambiar la forma de parada en la orden resaltada
-STR_ORDER_TOGGLE_FULL_LOAD :{BLACK}Llenar cualquier carga
+STR_ORDER_TOGGLE_FULL_LOAD :{BLACK}Llenar cualquiera
STR_ORDER_DROP_LOAD_IF_POSSIBLE :Cargar si hay disponible
-STR_ORDER_DROP_FULL_LOAD_ALL :Llenar todas las cargas
-STR_ORDER_DROP_FULL_LOAD_ANY :Llenar cualquier carga
+STR_ORDER_DROP_FULL_LOAD_ALL :Llenar todo
+STR_ORDER_DROP_FULL_LOAD_ANY :Llenar cualquiera
STR_ORDER_DROP_NO_LOADING :No cargar
-STR_ORDER_TOOLTIP_FULL_LOAD :{BLACK}Cambiar el comportamiento de carga en la orden elegida
+STR_ORDER_TOOLTIP_FULL_LOAD :{BLACK}Cambiar la forma de carga en la orden resaltada
STR_ORDER_TOGGLE_UNLOAD :{BLACK}Descargar todo
-STR_ORDER_DROP_UNLOAD_IF_ACCEPTED :Descargar si es recibido
+STR_ORDER_DROP_UNLOAD_IF_ACCEPTED :Descargar si es aceptado
STR_ORDER_DROP_UNLOAD :Descargar todo
STR_ORDER_DROP_TRANSFER :Transferir
STR_ORDER_DROP_NO_UNLOADING :No descargar
-STR_ORDER_TOOLTIP_UNLOAD :{BLACK}Cambiar el comportamiento de descarga en la orden elegida
+STR_ORDER_TOOLTIP_UNLOAD :{BLACK}Cambiar la forma de descarga en la orden resaltada
-STR_ORDER_REFIT :{BLACK}Reequipar
-STR_ORDER_REFIT_TOOLTIP :{BLACK}Elegir el tipo de cargamento a reequipar en esta orden. Ctrl+Clic para eliminar la orden
-STR_ORDER_REFIT_AUTO :{BLACK}Reequipar en estación
-STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}Elegir el tipo de cargamento a reequipar en esta orden. Ctrl+Clic para eliminar la orden. Reequipar solo es posible si el vehículo lo permite
+STR_ORDER_REFIT :{BLACK}Reformar
+STR_ORDER_REFIT_TOOLTIP :{BLACK}Elegir el tipo de cargamento a reformar en esta orden. Ctrl+Clic para eliminar la orden
+STR_ORDER_REFIT_AUTO :{BLACK}Reformar en estación
+STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}Elegir el tipo de cargamento a reformar en esta orden. Ctrl+Clic para eliminar la orden. Reformar solo es posible si el vehículo lo permite
STR_ORDER_DROP_REFIT_AUTO :Cargamento fijo
STR_ORDER_DROP_REFIT_AUTO_ANY :Cargamento disponible
@@ -3806,21 +3804,21 @@ STR_ORDER_CONDITIONAL_REMAINING_LIFETIME :Tiempo de vida
STR_ORDER_CONDITIONAL_COMPARATOR_TOOLTIP :{BLACK}Comparación de los datos del vehículo respecto al valor dado
STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS :es igual a
STR_ORDER_CONDITIONAL_COMPARATOR_NOT_EQUALS :no es igual a
-STR_ORDER_CONDITIONAL_COMPARATOR_LESS_THAN :es menos de
-STR_ORDER_CONDITIONAL_COMPARATOR_LESS_EQUALS :es menor o igual a
-STR_ORDER_CONDITIONAL_COMPARATOR_MORE_THAN :es más de
-STR_ORDER_CONDITIONAL_COMPARATOR_MORE_EQUALS :es más o igual a
+STR_ORDER_CONDITIONAL_COMPARATOR_LESS_THAN :es menor que
+STR_ORDER_CONDITIONAL_COMPARATOR_LESS_EQUALS :es menor o igual que
+STR_ORDER_CONDITIONAL_COMPARATOR_MORE_THAN :es mayor que
+STR_ORDER_CONDITIONAL_COMPARATOR_MORE_EQUALS :es mayor o igual a
STR_ORDER_CONDITIONAL_COMPARATOR_IS_TRUE :es verdadero
STR_ORDER_CONDITIONAL_COMPARATOR_IS_FALSE :es falso
STR_ORDER_CONDITIONAL_VALUE_TOOLTIP :{BLACK}El valor contra el cual comparar de los datos del vehículo
-STR_ORDER_CONDITIONAL_VALUE_CAPT :{WHITE}Indicar el valor contra el cual comparar
+STR_ORDER_CONDITIONAL_VALUE_CAPT :{WHITE}Indicar el valor a comparar
-STR_ORDERS_SKIP_BUTTON :{BLACK}Saltar
-STR_ORDERS_SKIP_TOOLTIP :{BLACK}Ignorar la orden actual y saltar a la siguiente. Ctrl+Clic salta a la orden elegida
+STR_ORDERS_SKIP_BUTTON :{BLACK}Ignorar
+STR_ORDERS_SKIP_TOOLTIP :{BLACK}Ignorar la orden actual y proceder con la siguiente. Ctrl+Clic para iniciar la orden resaltada
STR_ORDERS_DELETE_BUTTON :{BLACK}Eliminar
-STR_ORDERS_DELETE_TOOLTIP :{BLACK}Eliminar orden marcada
+STR_ORDERS_DELETE_TOOLTIP :{BLACK}Eliminar orden resaltada
STR_ORDERS_DELETE_ALL_TOOLTIP :{BLACK}Eliminar todas las órdenes
STR_ORDERS_STOP_SHARING_BUTTON :{BLACK}Dejar de compartir
STR_ORDERS_STOP_SHARING_TOOLTIP :{BLACK}Dejar de compartir la lista de órdenes. Ctrl+Clic elimina también todas las órdenes de este vehículo
@@ -3835,11 +3833,11 @@ STR_ORDERS_GO_TO_TOOLTIP :{BLACK}Añadir
STR_ORDERS_VEH_WITH_SHARED_ORDERS_LIST_TOOLTIP :{BLACK}Ver todos los vehículos que comparten el mismo itinerario
# String parts to build the order string
-STR_ORDER_GO_TO_WAYPOINT :Ir por {WAYPOINT}
-STR_ORDER_GO_NON_STOP_TO_WAYPOINT :Ir sin paradas por {WAYPOINT}
+STR_ORDER_GO_TO_WAYPOINT :Ir pasando por {WAYPOINT}
+STR_ORDER_GO_NON_STOP_TO_WAYPOINT :Ir sin paradas pasando por {WAYPOINT}
STR_ORDER_SERVICE_AT :Mantenimiento en
-STR_ORDER_SERVICE_NON_STOP_AT :Mantenimiento sin paradas en
+STR_ORDER_SERVICE_NON_STOP_AT :Ir a sin paradas a mantenimiento en
STR_ORDER_NEAREST_DEPOT :el más cercano
STR_ORDER_NEAREST_HANGAR :el hangar más cercano
@@ -3849,8 +3847,8 @@ STR_ORDER_SHIP_DEPOT :astillero de ba
STR_ORDER_GO_TO_NEAREST_DEPOT_FORMAT :{STRING} {STRING} {STRING}
STR_ORDER_GO_TO_DEPOT_FORMAT :{STRING} {DEPOT}
-STR_ORDER_REFIT_ORDER :(Reequipar a {STRING})
-STR_ORDER_REFIT_STOP_ORDER :(Reequipar a {STRING} y detenerse)
+STR_ORDER_REFIT_ORDER :(Reformar a {STRING})
+STR_ORDER_REFIT_STOP_ORDER :(Reformar a {STRING} y detenerse)
STR_ORDER_STOP_ORDER :(Detenerse)
STR_ORDER_GO_TO_STATION :{STRING} {STATION} {STRING}
@@ -3861,7 +3859,7 @@ STR_ORDER_FULL_LOAD :(Llenar todo)
STR_ORDER_FULL_LOAD_ANY :(Llenar cualquiera)
STR_ORDER_NO_LOAD :(No cargar)
STR_ORDER_UNLOAD :(Descargar y cargar)
-STR_ORDER_UNLOAD_FULL_LOAD :(Descargar y llenar)
+STR_ORDER_UNLOAD_FULL_LOAD :(Descargar y llenar todo)
STR_ORDER_UNLOAD_FULL_LOAD_ANY :(Descargar y llenar cualquiera)
STR_ORDER_UNLOAD_NO_LOAD :(Descargar y dejar vacío)
STR_ORDER_TRANSFER :(Transferir y cargar)
@@ -3869,22 +3867,22 @@ STR_ORDER_TRANSFER_FULL_LOAD :(Transferir y l
STR_ORDER_TRANSFER_FULL_LOAD_ANY :(Transferir y llenar cualquiera)
STR_ORDER_TRANSFER_NO_LOAD :(Transferir y dejar vacío)
STR_ORDER_NO_UNLOAD :(No descargar y cargar)
-STR_ORDER_NO_UNLOAD_FULL_LOAD :(No descargar y llenar)
+STR_ORDER_NO_UNLOAD_FULL_LOAD :(No descargar y llenar todo)
STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(No descargar y llenar cualquiera)
STR_ORDER_NO_UNLOAD_NO_LOAD :(No descargar ni cargar)
-STR_ORDER_AUTO_REFIT :(Reequipar a {STRING})
-STR_ORDER_FULL_LOAD_REFIT :(Reequipar a {STRING} y llenar)
-STR_ORDER_FULL_LOAD_ANY_REFIT :(Reequipar a {STRING} y llenar cualquiera)
-STR_ORDER_UNLOAD_REFIT :(Descargar y cargar con reequipamiento a {STRING})
-STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(Descargar y llenar con reequipamiento a {STRING})
-STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(Descargar y llenar cualquiera con reequipamiento a {STRING})
-STR_ORDER_TRANSFER_REFIT :(Transferir y cargar con reequipamiento a {STRING})
-STR_ORDER_TRANSFER_FULL_LOAD_REFIT :(Transferir y llenar con reequipamiento a {STRING})
-STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :(Transferir y llenar cualquiera con reequipamiento a {STRING})
-STR_ORDER_NO_UNLOAD_REFIT :(No descargar y cargar con reequipamiento a {STRING})
-STR_ORDER_NO_UNLOAD_FULL_LOAD_REFIT :(No descargar y llenar con reequipamiento a {STRING})
-STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY_REFIT :(No descargar y llenar cualquiera con reequipamiento a {STRING})
+STR_ORDER_AUTO_REFIT :(Reformar a {STRING})
+STR_ORDER_FULL_LOAD_REFIT :(Llenar todo y reformar a{STRING})
+STR_ORDER_FULL_LOAD_ANY_REFIT :(Llenar cualquiera y reformar a {STRING})
+STR_ORDER_UNLOAD_REFIT :(Descargar y cargar con reforma a {STRING})
+STR_ORDER_UNLOAD_FULL_LOAD_REFIT :(Descargar y llenar todo con reforma a {STRING})
+STR_ORDER_UNLOAD_FULL_LOAD_ANY_REFIT :(Descargar y llenar cualquiera con reforma a {STRING})
+STR_ORDER_TRANSFER_REFIT :(Transferir y cargar con reforma a {STRING})
+STR_ORDER_TRANSFER_FULL_LOAD_REFIT :(Transferir y llenar con reforma a {STRING})
+STR_ORDER_TRANSFER_FULL_LOAD_ANY_REFIT :(Transferir y llenar cualquiera con reforma a {STRING})
+STR_ORDER_NO_UNLOAD_REFIT :(No descargar y cargar con reforma a {STRING})
+STR_ORDER_NO_UNLOAD_FULL_LOAD_REFIT :(No descargar y llenar todo con reforma a {STRING})
+STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY_REFIT :(No descargar y llenar cualquiera con reforma a {STRING})
STR_ORDER_AUTO_REFIT_ANY :cargamento disponible
@@ -3892,7 +3890,7 @@ STR_ORDER_STOP_LOCATION_NEAR_END :[principio]
STR_ORDER_STOP_LOCATION_MIDDLE :[centro]
STR_ORDER_STOP_LOCATION_FAR_END :[fondo]
-STR_ORDER_OUT_OF_RANGE :{RED} (El sig. destino está legos del alcance)
+STR_ORDER_OUT_OF_RANGE :{RED} (El siguiente destino está muy lejos)
STR_ORDER_CONDITIONAL_UNCONDITIONAL :Saltar a orden {COMMA}
STR_ORDER_CONDITIONAL_NUM :Saltar a orden {COMMA} cuando {STRING} {STRING} {COMMA}
@@ -3916,9 +3914,9 @@ STR_TIMETABLE_TRAVEL_FOR_SPEED :Viajar durante
STR_TIMETABLE_TRAVEL_FOR_ESTIMATED :Viajar (durante {STRING}, no programado)
STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED :Viajar (durante {STRING}, no programado) a {VELOCITY} como máximo
STR_TIMETABLE_STAY_FOR_ESTIMATED :(esperar {STRING}, no programado)
-STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(viajar por {STRING}, no programado)
+STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(viajar {STRING}, no programado)
STR_TIMETABLE_STAY_FOR :y esperar {STRING}
-STR_TIMETABLE_AND_TRAVEL_FOR :y viajar por {STRING}
+STR_TIMETABLE_AND_TRAVEL_FOR :y viajar {STRING}
STR_TIMETABLE_DAYS :{COMMA}{NBSP}día{P "" s}
STR_TIMETABLE_TICKS :{COMMA}{NBSP}tick{P "" s}
@@ -3949,8 +3947,8 @@ STR_TIMETABLE_CLEAR_SPEED_TOOLTIP :{BLACK}Borrar e
STR_TIMETABLE_RESET_LATENESS :{BLACK}Reiniciar retrasos
STR_TIMETABLE_RESET_LATENESS_TOOLTIP :{BLACK}Reiniciar el contador del retraso para que el vehículo vaya a tiempo
-STR_TIMETABLE_AUTOFILL :{BLACK}Rellenar automáticamente
-STR_TIMETABLE_AUTOFILL_TOOLTIP :{BLACK}Rellenar la tabla de itinerarios automáticamente con los valores del siguiente recorrido (Ctrl+Clic para intentar mantener los tiempos de espera)
+STR_TIMETABLE_AUTOFILL :{BLACK}Llenar automáticamente
+STR_TIMETABLE_AUTOFILL_TOOLTIP :{BLACK}Llenar la tabla de itinerarios automáticamente con los valores del siguiente recorrido (Ctrl+Clic para intentar mantener los tiempos de espera)
STR_TIMETABLE_EXPECTED :{BLACK}Esperado
STR_TIMETABLE_SCHEDULED :{BLACK}Programado
@@ -4100,7 +4098,7 @@ STR_ERROR_NO_TOWN_IN_SCENARIO :{WHITE}... no h
STR_ERROR_PNGMAP :{WHITE}No se puede cargar mapa desde PNG...
STR_ERROR_PNGMAP_FILE_NOT_FOUND :{WHITE}... archivo no encontrado
STR_ERROR_PNGMAP_IMAGE_TYPE :{WHITE}... no se pudo convertir el tipo de imagen. Se requieren imágenes PNG de 8 o 24 bits
-STR_ERROR_PNGMAP_MISC :{WHITE}... algo salió mal (quizá el archivo esté tenga errores)
+STR_ERROR_PNGMAP_MISC :{WHITE}... algo salió mal (quizá el archivo está dañado)
STR_ERROR_BMPMAP :{WHITE}No se pudo cargar mapa desde BMP...
STR_ERROR_BMPMAP_IMAGE_TYPE :{WHITE}... no se pudo convertir el tipo de imagen
@@ -4127,13 +4125,13 @@ STR_ERROR_MESSAGE_CAPTION_OTHER_COMPANY :{YELLOW}Mensaje
# Generic construction errors
STR_ERROR_OFF_EDGE_OF_MAP :{WHITE}Fuera del borde del mapa
STR_ERROR_TOO_CLOSE_TO_EDGE_OF_MAP :{WHITE}Demasiado cerca del borde del mapa
-STR_ERROR_NOT_ENOUGH_CASH_REQUIRES_CURRENCY :{WHITE}No hay suficiente dinero: se requieren {CURRENCY_LONG}
+STR_ERROR_NOT_ENOUGH_CASH_REQUIRES_CURRENCY :{WHITE}No alcanza el dinero: se necesitan {CURRENCY_LONG}
STR_ERROR_FLAT_LAND_REQUIRED :{WHITE}Se requiere terreno plano
STR_ERROR_LAND_SLOPED_IN_WRONG_DIRECTION :{WHITE}Tierra inclinada en dirección errónea
STR_ERROR_CAN_T_DO_THIS :{WHITE}No se puede hacer eso...
STR_ERROR_BUILDING_MUST_BE_DEMOLISHED :{WHITE}Primero se debe demoler el edificio
STR_ERROR_CAN_T_CLEAR_THIS_AREA :{WHITE}No se puede despejar esta zona...
-STR_ERROR_SITE_UNSUITABLE :{WHITE}... lugar no apropiado
+STR_ERROR_SITE_UNSUITABLE :{WHITE}... lugar no apto
STR_ERROR_ALREADY_BUILT :{WHITE}... ya construido
STR_ERROR_OWNED_BY :{WHITE}... propiedad de {STRING}
STR_ERROR_AREA_IS_OWNED_BY_ANOTHER :{WHITE}... otra empresa es dueña de esta área
@@ -4174,7 +4172,7 @@ STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}No se pu
STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}No se puede construir la sede de la empresa...
STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}No se puede comprar el 25% de acciones...
STR_ERROR_CAN_T_SELL_25_SHARE_IN :{WHITE}No se puede vender el 25% de acciones...
-STR_ERROR_PROTECTED :{WHITE}Esta empresa es aún muy reciente para comerciar con acciones...
+STR_ERROR_PROTECTED :{WHITE}Esta empresa es muy reciente para comerciar con acciones...
# Town related errors
STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}No se puede crear ningún pueblo
@@ -4185,10 +4183,10 @@ STR_ERROR_TOO_CLOSE_TO_EDGE_OF_MAP_SUB :{WHITE}... dema
STR_ERROR_TOO_CLOSE_TO_ANOTHER_TOWN :{WHITE}... demasiado cerca de otro pueblo
STR_ERROR_TOO_MANY_TOWNS :{WHITE}... demasiados pueblos
STR_ERROR_NO_SPACE_FOR_TOWN :{WHITE}... ya no hay espacio en el mapa
-STR_ERROR_TOWN_EXPAND_WARN_NO_ROADS :{WHITE}El pueblo no construirá carreteras. La función de construcción de carreteras puede activarse Configuración->Ambiente->Pueblos
+STR_ERROR_TOWN_EXPAND_WARN_NO_ROADS :{WHITE}El pueblo no construirá carreteras. La función de construcción de carreteras puede activarse en Configuración->Ambiente->Pueblos
STR_ERROR_ROAD_WORKS_IN_PROGRESS :{WHITE}Obras de carretera en progreso
STR_ERROR_TOWN_CAN_T_DELETE :{WHITE}No se puede eliminar este pueblo...{}Quedan estaciones o depósitos relacionados con él, o una propiedad suya no puede ser retirada
-STR_ERROR_STATUE_NO_SUITABLE_PLACE :{WHITE}... no hay lugar apropiado para una estatua en el centro de esta pueblo
+STR_ERROR_STATUE_NO_SUITABLE_PLACE :{WHITE}... no hay ningún lugar apto para una estatua en el centro de este pueblo
# Industry related errors
STR_ERROR_TOO_MANY_INDUSTRIES :{WHITE}... demasiadas industrias
@@ -4209,8 +4207,8 @@ STR_ERROR_FOREST_CAN_ONLY_BE_PLANTED :{WHITE}... los
STR_ERROR_CAN_ONLY_BE_BUILT_ABOVE_SNOW_LINE :{WHITE}... solo se puede construir por encima del nivel de nieve
STR_ERROR_CAN_ONLY_BE_BUILT_BELOW_SNOW_LINE :{WHITE}... solo se puede construir por debajo del nivel de nieve
-STR_ERROR_NO_SUITABLE_PLACES_FOR_INDUSTRIES :{WHITE}No hubo sitios apropiados para industrias '{STRING}'
-STR_ERROR_NO_SUITABLE_PLACES_FOR_INDUSTRIES_EXPLANATION :{WHITE}Cambia los parámetros de generación para obtener un mejor mapa
+STR_ERROR_NO_SUITABLE_PLACES_FOR_INDUSTRIES :{WHITE}No hubo espacio para industrias de tipo "{STRING}"
+STR_ERROR_NO_SUITABLE_PLACES_FOR_INDUSTRIES_EXPLANATION :{WHITE}Cambia las opciones de generación para crear un mejor mapa
# Station construction related errors
STR_ERROR_CAN_T_BUILD_RAILROAD_STATION :{WHITE}No se puede construir la estación de tren aquí...
@@ -4227,7 +4225,7 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Demasiad
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Demasiadas partes de estación de tren
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Demasiadas paradas de autobuses
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Demasiadas estaciones de camiones
-STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Demasiado cerca de otra estación de pasajeros o carga
+STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Demasiado cerca de otra estación o zona de carga
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Demasiado cerca de otro muelle
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Demasiado cerca de otro aeropuerto
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}No se puede cambiar nombre de la estación...
@@ -4280,14 +4278,14 @@ STR_ERROR_ROAD_VEHICLE_MUST_BE_STOPPED_INSIDE_DEPOT :{WHITE}... pued
STR_ERROR_SHIP_MUST_BE_STOPPED_INSIDE_DEPOT :{WHITE}... puede que esté detenido dentro de un astillero
STR_ERROR_AIRCRAFT_MUST_BE_STOPPED_INSIDE_HANGAR :{WHITE}... puede que esté detenido dentro de un hangar
-STR_ERROR_TRAINS_CAN_ONLY_BE_ALTERED_INSIDE_A_DEPOT :{WHITE}Los trenes únicamente pueden modificarse si están detenidos dentro de un depósito
+STR_ERROR_TRAINS_CAN_ONLY_BE_ALTERED_INSIDE_A_DEPOT :{WHITE}Los trenes pueden modificarse solo si están detenidos dentro de un depósito
STR_ERROR_TRAIN_TOO_LONG :{WHITE}Tren demasiado largo
STR_ERROR_CAN_T_REVERSE_DIRECTION_RAIL_VEHICLE :{WHITE}No se puede cambiar dirección del vehículo...
STR_ERROR_CAN_T_REVERSE_DIRECTION_RAIL_VEHICLE_MULTIPLE_UNITS :{WHITE}... vehículo compuesto por múltiples unidades
STR_ERROR_INCOMPATIBLE_RAIL_TYPES :Los tipos de vías férreas no son compatibles
STR_ERROR_CAN_T_MOVE_VEHICLE :{WHITE}No se puede mover vehículo...
-STR_ERROR_REAR_ENGINE_FOLLOW_FRONT :{WHITE}El motor posterior debe seguir siempre al delantero
+STR_ERROR_REAR_ENGINE_FOLLOW_FRONT :{WHITE}La locomotora trasera debe conectarse a la delantera
STR_ERROR_UNABLE_TO_FIND_ROUTE_TO :{WHITE}No se puede encontrar ruta al depósito
STR_ERROR_UNABLE_TO_FIND_LOCAL_DEPOT :{WHITE}No se puede encontrar depósito
@@ -4359,14 +4357,14 @@ STR_ERROR_CAN_T_BUILD_TUNNEL_HERE :{WHITE}No se pu
STR_ERROR_SITE_UNSUITABLE_FOR_TUNNEL :{WHITE}Lugar no apto para entrada de túnel
STR_ERROR_MUST_DEMOLISH_TUNNEL_FIRST :{WHITE}Primero se debe demoler el túnel
STR_ERROR_ANOTHER_TUNNEL_IN_THE_WAY :{WHITE}Otro túnel obstaculiza
-STR_ERROR_TUNNEL_THROUGH_MAP_BORDER :{WHITE}El túnel terminaría fuera del mapa
+STR_ERROR_TUNNEL_THROUGH_MAP_BORDER :{WHITE}El túnel se extendería más allá del mapa
STR_ERROR_UNABLE_TO_EXCAVATE_LAND :{WHITE}No se puede excavar la tierra al otro lado del túnel
STR_ERROR_TUNNEL_TOO_LONG :{WHITE}... túnel demasiado largo
# Object related errors
STR_ERROR_TOO_MANY_OBJECTS :{WHITE}... demasiados objetos
STR_ERROR_CAN_T_BUILD_OBJECT :{WHITE}No se puede colocar objeto...
-STR_ERROR_OBJECT_IN_THE_WAY :{WHITE}Otro objeto obstaculiza
+STR_ERROR_OBJECT_IN_THE_WAY :{WHITE}Otro objeto estorba
STR_ERROR_COMPANY_HEADQUARTERS_IN :{WHITE}... la sede de la empresa obstaculiza
STR_ERROR_CAN_T_PURCHASE_THIS_LAND :{WHITE}No es posible adquirir este terreno...
STR_ERROR_YOU_ALREADY_OWN_IT :{WHITE}... ¡ya fue adquirido por el jugador!
@@ -4381,15 +4379,15 @@ STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}No se pu
STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}No se pueden añadir vehículos compartidos al grupo...
# Generic vehicle errors
-STR_ERROR_TRAIN_IN_THE_WAY :{WHITE}Tren obstaculiza
-STR_ERROR_ROAD_VEHICLE_IN_THE_WAY :{WHITE}Vehículo de carretera obstaculiza
-STR_ERROR_SHIP_IN_THE_WAY :{WHITE}Barco obstaculiza
+STR_ERROR_TRAIN_IN_THE_WAY :{WHITE}Tren estorba
+STR_ERROR_ROAD_VEHICLE_IN_THE_WAY :{WHITE}Vehículo de carretera estorba
+STR_ERROR_SHIP_IN_THE_WAY :{WHITE}Barco estorba
STR_ERROR_AIRCRAFT_IN_THE_WAY :{WHITE}Aeronave obstaculiza
-STR_ERROR_CAN_T_REFIT_TRAIN :{WHITE}No se puede reequipar tren...
-STR_ERROR_CAN_T_REFIT_ROAD_VEHICLE :{WHITE}No se puede reequipar vehículo de carretera...
-STR_ERROR_CAN_T_REFIT_SHIP :{WHITE}No se puede reequipar barco...
-STR_ERROR_CAN_T_REFIT_AIRCRAFT :{WHITE}No se puede reequipar aeronave...
+STR_ERROR_CAN_T_REFIT_TRAIN :{WHITE}No se puede reformar tren...
+STR_ERROR_CAN_T_REFIT_ROAD_VEHICLE :{WHITE}No se puede reformar vehículo de carretera...
+STR_ERROR_CAN_T_REFIT_SHIP :{WHITE}No se puede reformar barco...
+STR_ERROR_CAN_T_REFIT_AIRCRAFT :{WHITE}No se puede reformar aeronave...
STR_ERROR_CAN_T_RENAME_TRAIN :{WHITE}No se puede cambiar nombre del tren...
STR_ERROR_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}No se puede cambiar nombre del vehículo...
@@ -4467,7 +4465,7 @@ STR_ERROR_AIRCRAFT_NOT_ENOUGH_RANGE :{WHITE}... la a
# Timetable related errors
STR_ERROR_CAN_T_TIMETABLE_VEHICLE :{WHITE}No se pueden asignar itinerarios al vehículo...
STR_ERROR_TIMETABLE_ONLY_WAIT_AT_STATIONS :{WHITE}Los vehículos solo pueden esperar en estaciones
-STR_ERROR_TIMETABLE_NOT_STOPPING_HERE :{WHITE}Este vehículo se detendrá en esta estación
+STR_ERROR_TIMETABLE_NOT_STOPPING_HERE :{WHITE}Este vehículo no se detendrá en esta estación
# Sign related errors
STR_ERROR_TOO_MANY_SIGNS :{WHITE}... demasiados carteles
@@ -4495,7 +4493,7 @@ STR_TOWN_BUILDING_NAME_OFFICE_BLOCK_1 :Edificio de ofi
STR_TOWN_BUILDING_NAME_SMALL_BLOCK_OF_FLATS_1 :Conjunto habitacional pequeño
STR_TOWN_BUILDING_NAME_CHURCH_1 :Iglesia
STR_TOWN_BUILDING_NAME_LARGE_OFFICE_BLOCK_1 :Complejo de oficinas
-STR_TOWN_BUILDING_NAME_TOWN_HOUSES_1 :Casas de pueblo
+STR_TOWN_BUILDING_NAME_TOWN_HOUSES_1 :Casas adosadas
STR_TOWN_BUILDING_NAME_HOTEL_1 :Hotel
STR_TOWN_BUILDING_NAME_STATUE_1 :Estatua
STR_TOWN_BUILDING_NAME_FOUNTAIN_1 :Fuente
@@ -4584,7 +4582,7 @@ STR_SV_STNAME_TRANSFER :Transferencia {
STR_SV_STNAME_HALT :Parada {STRING}
STR_SV_STNAME_VALLEY :Valle de {STRING}
STR_SV_STNAME_HEIGHTS :Altos de {STRING}
-STR_SV_STNAME_WOODS :Alameda de {STRING}
+STR_SV_STNAME_WOODS :Bosques de {STRING}
STR_SV_STNAME_LAKESIDE :Lago de {STRING}
STR_SV_STNAME_EXCHANGE :Intercambio {STRING}
STR_SV_STNAME_AIRPORT :Aeropuerto de {STRING}
diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt
index e884079d44..255967c9d7 100644
--- a/src/lang/swedish.txt
+++ b/src/lang/swedish.txt
@@ -2691,7 +2691,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Mark som ägs a
STR_ABOUT_OPENTTD :{WHITE}Om OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Ursprunglig upphovsrätt {COPYRIGHT} 1995 Chris Sawyer, Alla rättigheter hävdas
STR_ABOUT_VERSION :{BLACK}OpenTTD-version {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD-teamet
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 OpenTTD-teamet
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Spara spel
@@ -3296,11 +3296,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Kräver:
STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Kräver: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING}
############ range for requires ends
-STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Kräver
-STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}väntar
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING}
+STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Kräver:
+STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING}
+STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{STRING}{BLACK}: {CARGO_SHORT} väntar{STRING}
############ range for produces starts
STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Producerar: {YELLOW}{STRING}{STRING}
diff --git a/src/lang/tamil.txt b/src/lang/tamil.txt
index c0df044d1f..ec3ef56fff 100644
--- a/src/lang/tamil.txt
+++ b/src/lang/tamil.txt
@@ -2378,7 +2378,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :நிறுவ
STR_ABOUT_OPENTTD :{WHITE}OpenTTD-ஐ பற்றி
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}அசல் உரிமைகள் {COPYRIGHT} 1995 கிறிஸ் சாயர், எல்லா உரிமைகளும் பதிவுசெய்யப்பட்டது
STR_ABOUT_VERSION :{BLACK}OpenTTD பதிப்பு {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD குழுமம்
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 OpenTTD குழுமம்
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}ஆட்டத்தை பதிவு செய்
diff --git a/src/lang/thai.txt b/src/lang/thai.txt
index 1d2ff09156..d939eeeeac 100644
--- a/src/lang/thai.txt
+++ b/src/lang/thai.txt
@@ -2635,7 +2635,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :บริษั
STR_ABOUT_OPENTTD :{WHITE}เกี่ยวกับ OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}ลิขสิทธิ์เดิม {COPYRIGHT} ค.ศ.1995 ของ Chris Sawyer, สงวนลิขสิทธิ์
STR_ABOUT_VERSION :{BLACK}OpenTTD รุ่นที่ {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}ลิขสิทธิ์ OpenTTD {COPYRIGHT}2002-2017 ของ The OpenTTD team
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}ลิขสิทธิ์ OpenTTD {COPYRIGHT}2002-2018 ของ The OpenTTD team
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}บันทึกเกม
diff --git a/src/lang/traditional_chinese.txt b/src/lang/traditional_chinese.txt
index 7346889e4a..7ce922edc1 100644
--- a/src/lang/traditional_chinese.txt
+++ b/src/lang/traditional_chinese.txt
@@ -2687,7 +2687,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :公司所有土
STR_ABOUT_OPENTTD :{WHITE}關於 OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}原著作權為 {COPYRIGHT} 1995 Chris Sawyer,保留所有權利
STR_ABOUT_VERSION :{BLACK}OpenTTD 版本 {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD 開發小組
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 OpenTTD 開發小組
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}儲存遊戲
diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt
index f34035c22c..763fb2a65a 100644
--- a/src/lang/turkish.txt
+++ b/src/lang/turkish.txt
@@ -2692,7 +2692,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Satın alınmı
STR_ABOUT_OPENTTD :{WHITE}OpenTTD Hakkında
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Telif hakkı {COPYRIGHT} 1995 Chris Sawyer, Her hakkı saklıdır
STR_ABOUT_VERSION :{BLACK}OpenTTD sürüm {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 OpenTTD ekibi
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 OpenTTD ekibi
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Oyunu Kaydet
@@ -3297,11 +3297,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}İstenen
STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}İstenenler: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING}
############ range for requires ends
-STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Gereken
-STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}bekliyor
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING}
+STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Gereken:
+STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING}
+STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{STRING}{BLACK}: {CARGO_SHORT} bekliyor{STRING}
############ range for produces starts
STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Üretir: {YELLOW}{STRING}{STRING}
diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt
index 1b3e3a42bb..dbb815d2dc 100644
--- a/src/lang/ukrainian.txt
+++ b/src/lang/ukrainian.txt
@@ -2818,7 +2818,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Ця ділян
STR_ABOUT_OPENTTD :{WHITE}Про OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Авторське право {COPYRIGHT} 1995 Кріс Сойєр, Всі права захищені
STR_ABOUT_VERSION :{BLACK}OpenTTD версія {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 команда OpenTTD
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 команда OpenTTD
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Зберегти гру
diff --git a/src/lang/unfinished/frisian.txt b/src/lang/unfinished/frisian.txt
index 2b0b989323..051b62c843 100644
--- a/src/lang/unfinished/frisian.txt
+++ b/src/lang/unfinished/frisian.txt
@@ -2475,7 +2475,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Lân fan bedriu
STR_ABOUT_OPENTTD :{WHITE}Oer OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Orizjineel copyright {COPYRIGHT} 1995 Chris Sawyer, All rights reserved
STR_ABOUT_VERSION :{BLACK}OpenTTD-ferzje {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 It OpenTTD team
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2018 It OpenTTD team
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Spul Opslaan
diff --git a/src/lang/unfinished/ido.txt b/src/lang/unfinished/ido.txt
index ff0ad37f4e..4f4d4846ff 100644
--- a/src/lang/unfinished/ido.txt
+++ b/src/lang/unfinished/ido.txt
@@ -776,7 +776,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_HEADQUARTERS :Stabeyo di komp
# About OpenTTD window
STR_ABOUT_VERSION :{BLACK}OpenTTD versiono {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 La kruo OpenTTD
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2018 La kruo OpenTTD
# Save/load game/scenario
STR_SAVELOAD_DETAIL_CAPTION :{BLACK}Ludo Detali
diff --git a/src/lang/unfinished/macedonian.txt b/src/lang/unfinished/macedonian.txt
index f3b4cbaaec..6a0157c5a8 100644
--- a/src/lang/unfinished/macedonian.txt
+++ b/src/lang/unfinished/macedonian.txt
@@ -1202,7 +1202,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Компани
STR_ABOUT_OPENTTD :{WHITE}За OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Оригинален copyright {COPYRIGHT} 1995 Chris Sawyer, Сите права се задржани
STR_ABOUT_VERSION :{BLACK}OpenTTD верзија {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 OpenTTD тимот
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2018 OpenTTD тимот
# Save/load game/scenario
STR_SAVELOAD_LOAD_BUTTON :{BLACK}Оптоварување
diff --git a/src/lang/unfinished/persian.txt b/src/lang/unfinished/persian.txt
index 14a70bab4e..9701899630 100644
--- a/src/lang/unfinished/persian.txt
+++ b/src/lang/unfinished/persian.txt
@@ -2389,7 +2389,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :زمین خری
STR_ABOUT_OPENTTD :{WHITE}OpenTTD در باره ی
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Original copyright {COPYRIGHT} 1995 Chris Sawyer, All rights reserved
STR_ABOUT_VERSION :{BLACK}OpenTTD ویرایش {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 The OpenTTD team
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2018 The OpenTTD team
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}ذخیره ی بازی
diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt
index c9ef33616e..19fbce1cfd 100644
--- a/src/lang/vietnamese.txt
+++ b/src/lang/vietnamese.txt
@@ -2691,7 +2691,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Đất công ty
STR_ABOUT_OPENTTD :{WHITE}Về OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Nguyên tác bản quyền {COPYRIGHT} 1995 Chris Sawyer, All rights reserved
STR_ABOUT_VERSION :{BLACK}OpenTTD phiên bản {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2017 Nhóm OpenTTD
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 Nhóm OpenTTD
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Lưu Ván Chơi
@@ -3296,11 +3296,9 @@ STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO :{BLACK}Yêu c
STR_INDUSTRY_VIEW_REQUIRES_CARGO_CARGO_CARGO :{BLACK}Yêu cầu: {YELLOW}{STRING}{STRING}, {STRING}{STRING}, {STRING}{STRING}
############ range for requires ends
-STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Cần cung cấp
-STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{CARGO_LONG} {BLACK}đang chờ
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_TEXT :{YELLOW}{STRING}{STRING}
-STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT_TEXT :{YELLOW}{CARGO_LONG}{STRING}
+STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Cần cung cấp:
+STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING}
+STR_INDUSTRY_VIEW_ACCEPT_CARGO_AMOUNT :{YELLOW}{STRING}{BLACK}: {CARGO_SHORT} đang chờ{STRING}
############ range for produces starts
STR_INDUSTRY_VIEW_PRODUCES_CARGO :{BLACK}Sản xuất: {YELLOW}{STRING}{STRING}
diff --git a/src/lang/welsh.txt b/src/lang/welsh.txt
index 4519d0e919..35027d48fc 100644
--- a/src/lang/welsh.txt
+++ b/src/lang/welsh.txt
@@ -2688,7 +2688,7 @@ STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND :Tir cwmni
STR_ABOUT_OPENTTD :{WHITE}Gwybodaeth am OpenTTD
STR_ABOUT_ORIGINAL_COPYRIGHT :{BLACK}Hawlfraint Wreiddiol {COPYRIGHT} 1995 Chris Sawyer, Holl cedwir pob hawl
STR_ABOUT_VERSION :{BLACK}fersiwn OpenTTD {REV}
-STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2017 Y tîm OpenTTD
+STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2018 Y tîm OpenTTD
# Save/load game/scenario
STR_SAVELOAD_SAVE_CAPTION :{WHITE}Cadw Gêm
diff --git a/src/misc_gui.cpp b/src/misc_gui.cpp
index 03500c2a26..01e8d2c45d 100644
--- a/src/misc_gui.cpp
+++ b/src/misc_gui.cpp
@@ -397,6 +397,7 @@ static const char * const _credits[] = {
"Original graphics by Simon Foster",
"",
"The OpenTTD team (in alphabetical order):",
+ " Grzegorz Duczy\xC5\x84ski (adf88) - General coding (since 1.7.2)",
" Albert Hofkamp (Alberth) - GUI expert (since 0.7)",
" Matthijs Kooijman (blathijs) - Pathfinder-guru, Debian port (since 0.3)",
" Ulf Hermann (fonsinchen) - Cargo Distribution (since 1.3)",
diff --git a/src/newgrf.cpp b/src/newgrf.cpp
index 4759c8a19c..d06d1c40a5 100644
--- a/src/newgrf.cpp
+++ b/src/newgrf.cpp
@@ -12,6 +12,7 @@
#include "stdafx.h"
#include
+#include
#include "debug.h"
#include "fileio_func.h"
@@ -3672,6 +3673,9 @@ static void DuplicateTileTable(AirportSpec *as)
HangarTileTable *depot_table = MallocT(as->nof_depots);
MemCpyT(depot_table, as->depot_table, as->nof_depots);
as->depot_table = depot_table;
+ Direction *rotation = MallocT(as->num_table);
+ MemCpyT(rotation, as->rotation, as->num_table);
+ as->rotation = rotation;
}
/**
@@ -3741,6 +3745,7 @@ static ChangeInfoResult AirportChangeInfo(uint airport, int numinfo, int prop, B
}
case 0x0A: { // Set airport layout
+ free(as->rotation);
as->num_table = buf->ReadByte(); // Number of layaouts
as->rotation = MallocT(as->num_table);
uint32 defsize = buf->ReadDWord(); // Total size of the definition
@@ -4683,16 +4688,63 @@ static void NewSpriteGroup(ByteReader *buf)
group->adjusts = MallocT(group->num_adjusts);
MemCpyT(group->adjusts, adjusts.Begin(), group->num_adjusts);
- group->num_ranges = buf->ReadByte();
- if (group->num_ranges > 0) group->ranges = CallocT(group->num_ranges);
-
- for (uint i = 0; i < group->num_ranges; i++) {
- group->ranges[i].group = GetGroupFromGroupID(setid, type, buf->ReadWord());
- group->ranges[i].low = buf->ReadVarSize(varsize);
- group->ranges[i].high = buf->ReadVarSize(varsize);
+ std::vector ranges;
+ ranges.resize(buf->ReadByte());
+ for (uint i = 0; i < ranges.size(); i++) {
+ ranges[i].group = GetGroupFromGroupID(setid, type, buf->ReadWord());
+ ranges[i].low = buf->ReadVarSize(varsize);
+ ranges[i].high = buf->ReadVarSize(varsize);
}
group->default_group = GetGroupFromGroupID(setid, type, buf->ReadWord());
+ group->error_group = ranges.size() > 0 ? ranges[0].group : group->default_group;
+ /* nvar == 0 is a special case -- we turn our value into a callback result */
+ group->calculated_result = ranges.size() == 0;
+
+ /* Sort ranges ascending. When ranges overlap, this may required clamping or splitting them */
+ std::vector bounds;
+ for (uint i = 0; i < ranges.size(); i++) {
+ bounds.push_back(ranges[i].low);
+ if (ranges[i].high != UINT32_MAX) bounds.push_back(ranges[i].high + 1);
+ }
+ std::sort(bounds.begin(), bounds.end());
+ bounds.erase(std::unique(bounds.begin(), bounds.end()), bounds.end());
+
+ std::vector target;
+ for (uint j = 0; j < bounds.size(); ++j) {
+ uint32 v = bounds[j];
+ const SpriteGroup *t = group->default_group;
+ for (uint i = 0; i < ranges.size(); i++) {
+ if (ranges[i].low <= v && v <= ranges[i].high) {
+ t = ranges[i].group;
+ break;
+ }
+ }
+ target.push_back(t);
+ }
+ assert(target.size() == bounds.size());
+
+ std::vector optimised;
+ for (uint j = 0; j < bounds.size(); ) {
+ if (target[j] != group->default_group) {
+ DeterministicSpriteGroupRange r;
+ r.group = target[j];
+ r.low = bounds[j];
+ while (j < bounds.size() && target[j] == r.group) {
+ j++;
+ }
+ r.high = j < bounds.size() ? bounds[j] - 1 : UINT32_MAX;
+ optimised.push_back(r);
+ } else {
+ j++;
+ }
+ }
+
+ group->num_ranges = optimised.size();
+ if (group->num_ranges > 0) {
+ group->ranges = MallocT(group->num_ranges);
+ MemCpyT(group->ranges, &optimised.front(), group->num_ranges);
+ }
break;
}
diff --git a/src/newgrf_airport.cpp b/src/newgrf_airport.cpp
index 6db12f7373..0863d09861 100644
--- a/src/newgrf_airport.cpp
+++ b/src/newgrf_airport.cpp
@@ -26,7 +26,18 @@ struct AirportScopeResolver : public ScopeResolver {
byte layout; ///< Layout of the airport to build.
TileIndex tile; ///< Tile for the callback, only valid for airporttile callbacks.
- AirportScopeResolver(ResolverObject &ro, TileIndex tile, Station *st, byte airport_id, byte layout);
+ /**
+ * Constructor of the scope resolver for an airport.
+ * @param ro Surrounding resolver.
+ * @param tile %Tile for the callback, only valid for airporttile callbacks.
+ * @param st %Station of the airport for which the callback is run, or \c NULL for build gui.
+ * @param airport_id Type of airport for which the callback is run.
+ * @param layout Layout of the airport to build.
+ */
+ AirportScopeResolver(ResolverObject &ro, TileIndex tile, Station *st, byte airport_id, byte layout)
+ : ScopeResolver(ro), st(st), airport_id(airport_id), layout(layout), tile(tile)
+ {
+ }
/* virtual */ uint32 GetRandomBits() const;
/* virtual */ uint32 GetVariable(byte variable, uint32 parameter, bool *available) const;
@@ -242,22 +253,6 @@ AirportResolverObject::AirportResolverObject(TileIndex tile, Station *st, byte a
this->root_spritegroup = AirportSpec::Get(airport_id)->grf_prop.spritegroup[0];
}
-/**
- * Constructor of the scope resolver for an airport.
- * @param ro Surrounding resolver.
- * @param tile %Tile for the callback, only valid for airporttile callbacks.
- * @param st %Station of the airport for which the callback is run, or \c NULL for build gui.
- * @param airport_id Type of airport for which the callback is run.
- * @param layout Layout of the airport to build.
- */
-AirportScopeResolver::AirportScopeResolver(ResolverObject &ro, TileIndex tile, Station *st, byte airport_id, byte layout) : ScopeResolver(ro)
-{
- this->st = st;
- this->airport_id = airport_id;
- this->layout = layout;
- this->tile = tile;
-}
-
SpriteID GetCustomAirportSprite(const AirportSpec *as, byte layout)
{
AirportResolverObject object(INVALID_TILE, NULL, as->GetIndex(), layout);
diff --git a/src/newgrf_airporttiles.cpp b/src/newgrf_airporttiles.cpp
index 5eb24f670f..2d3a5129c9 100644
--- a/src/newgrf_airporttiles.cpp
+++ b/src/newgrf_airporttiles.cpp
@@ -222,21 +222,6 @@ AirportTileResolverObject::AirportTileResolverObject(const AirportTileSpec *ats,
this->root_spritegroup = ats->grf_prop.spritegroup[0];
}
-/**
- * Constructor of the scope resolver specific for airport tiles.
- * @param ats Specification of the airport tiles.
- * @param tile %Tile for the callback, only valid for airporttile callbacks.
- * @param st Station of the airport for which the callback is run, or \c NULL for build gui.
- */
-AirportTileScopeResolver::AirportTileScopeResolver(ResolverObject &ro, const AirportTileSpec *ats, TileIndex tile, Station *st) : ScopeResolver(ro)
-{
- assert(st != NULL);
-
- this->st = st;
- this->airport_id = st->airport.type;
- this->tile = tile;
-}
-
uint16 GetAirportTileCallback(CallbackID callback, uint32 param1, uint32 param2, const AirportTileSpec *ats, Station *st, TileIndex tile, int extra_data = 0)
{
AirportTileResolverObject object(ats, tile, st, callback, param1, param2);
diff --git a/src/newgrf_airporttiles.h b/src/newgrf_airporttiles.h
index 4d25aa9240..dc04642037 100644
--- a/src/newgrf_airporttiles.h
+++ b/src/newgrf_airporttiles.h
@@ -17,6 +17,7 @@
#include "newgrf_animation_type.h"
#include "newgrf_commons.h"
#include "newgrf_spritegroup.h"
+#include "station_base.h"
/** Scope resolver for handling the tiles of an airport. */
struct AirportTileScopeResolver : public ScopeResolver {
@@ -24,7 +25,18 @@ struct AirportTileScopeResolver : public ScopeResolver {
byte airport_id; ///< Type of airport for which the callback is run.
TileIndex tile; ///< Tile for the callback, only valid for airporttile callbacks.
- AirportTileScopeResolver(ResolverObject &ro, const AirportTileSpec *ats, TileIndex tile, Station *st);
+ /**
+ * Constructor of the scope resolver specific for airport tiles.
+ * @param ats Specification of the airport tiles.
+ * @param tile %Tile for the callback, only valid for airporttile callbacks.
+ * @param st Station of the airport for which the callback is run, or \c NULL for build gui.
+ */
+ AirportTileScopeResolver(ResolverObject &ro, const AirportTileSpec *ats, TileIndex tile, Station *st)
+ : ScopeResolver(ro), st(st), tile(tile)
+ {
+ assert(st != NULL);
+ this->airport_id = st->airport.type;
+ }
/* virtual */ uint32 GetRandomBits() const;
/* virtual */ uint32 GetVariable(byte variable, uint32 parameter, bool *available) const;
diff --git a/src/newgrf_canal.cpp b/src/newgrf_canal.cpp
index cba19cbdba..3438bb9850 100644
--- a/src/newgrf_canal.cpp
+++ b/src/newgrf_canal.cpp
@@ -25,7 +25,10 @@ WaterFeature _water_feature[CF_END];
struct CanalScopeResolver : public ScopeResolver {
TileIndex tile; ///< Tile containing the canal.
- CanalScopeResolver(ResolverObject &ro, TileIndex tile);
+ CanalScopeResolver(ResolverObject &ro, TileIndex tile)
+ : ScopeResolver(ro), tile(tile)
+ {
+ }
/* virtual */ uint32 GetRandomBits() const;
/* virtual */ uint32 GetVariable(byte variable, uint32 parameter, bool *available) const;
@@ -110,11 +113,6 @@ struct CanalResolverObject : public ResolverObject {
return group->loaded[0];
}
-CanalScopeResolver::CanalScopeResolver(ResolverObject &ro, TileIndex tile) : ScopeResolver(ro)
-{
- this->tile = tile;
-}
-
/**
* Canal resolver constructor.
* @param feature Which canal feature we want.
diff --git a/src/newgrf_engine.cpp b/src/newgrf_engine.cpp
index 8dd8d545a2..660b7e476b 100644
--- a/src/newgrf_engine.cpp
+++ b/src/newgrf_engine.cpp
@@ -347,21 +347,6 @@ static byte MapAircraftMovementAction(const Aircraft *v)
return this->v == NULL ? 0 : this->v->waiting_triggers;
}
-/* virtual */ void VehicleScopeResolver::SetTriggers(int triggers) const
-{
- /* Evil cast to get around const-ness. This used to be achieved by an
- * innocent looking function pointer cast... Currently I cannot see a
- * way of avoiding this without removing consts deep within gui code.
- */
- Vehicle *v = const_cast(this->v);
-
- /* This function must only be called when processing triggers -- any
- * other time is an error. */
- assert(this->ro.trigger != 0);
-
- if (v != NULL) v->waiting_triggers = triggers;
-}
-
/* virtual */ ScopeResolver *VehicleResolverObject::GetScope(VarSpriteGroupScope scope, byte relative)
{
@@ -952,21 +937,6 @@ static uint32 VehicleGetVariable(Vehicle *v, const VehicleScopeResolver *object,
return in_motion ? group->loaded[set] : group->loading[set];
}
-/**
- * Scope resolver of a single vehicle.
- * @param ro Surrounding resolver.
- * @param engine_type Engine type
- * @param v %Vehicle being resolved.
- * @param info_view Indicates if the item is being drawn in an info window.
- */
-VehicleScopeResolver::VehicleScopeResolver(ResolverObject &ro, EngineID engine_type, const Vehicle *v, bool info_view)
- : ScopeResolver(ro)
-{
- this->v = v;
- this->self_type = engine_type;
- this->info_view = info_view;
-}
-
/**
* Get the grf file associated with an engine type.
* @param engine_type Engine to query.
@@ -1140,13 +1110,18 @@ static void DoTriggerVehicle(Vehicle *v, VehicleTrigger trigger, byte base_rando
assert(v != NULL);
VehicleResolverObject object(v->engine_type, v, VehicleResolverObject::WO_CACHED, false, CBID_RANDOM_TRIGGER);
- object.trigger = trigger;
+ object.waiting_triggers = v->waiting_triggers | trigger;
+ v->waiting_triggers = object.waiting_triggers; // store now for var 5F
const SpriteGroup *group = object.Resolve();
if (group == NULL) return;
+ /* Store remaining triggers. */
+ v->waiting_triggers = object.GetRemainingTriggers();
+
+ /* Rerandomise bits. Scopes other than SELF are invalid for rerandomisation. For bug-to-bug-compatibility with TTDP we ignore the scope. */
byte new_random_bits = Random();
- uint32 reseed = object.GetReseedSum(); // The scope only affects triggers, not the reseeding
+ uint32 reseed = object.GetReseedSum();
v->random_bits &= ~reseed;
v->random_bits |= (first ? new_random_bits : base_random_bits) & reseed;
diff --git a/src/newgrf_engine.h b/src/newgrf_engine.h
index 3c8108737c..51adb0b7fb 100644
--- a/src/newgrf_engine.h
+++ b/src/newgrf_engine.h
@@ -26,14 +26,23 @@ struct VehicleScopeResolver : public ScopeResolver {
EngineID self_type; ///< Type of the vehicle.
bool info_view; ///< Indicates if the item is being drawn in an info window.
- VehicleScopeResolver(ResolverObject &ro, EngineID engine_type, const Vehicle *v, bool info_view);
+ /**
+ * Scope resolver of a single vehicle.
+ * @param ro Surrounding resolver.
+ * @param engine_type Engine type
+ * @param v %Vehicle being resolved.
+ * @param info_view Indicates if the item is being drawn in an info window.
+ */
+ VehicleScopeResolver(ResolverObject &ro, EngineID engine_type, const Vehicle *v, bool info_view)
+ : ScopeResolver(ro), v(v), self_type(engine_type), info_view(info_view)
+ {
+ }
void SetVehicle(const Vehicle *v) { this->v = v; }
/* virtual */ uint32 GetRandomBits() const;
/* virtual */ uint32 GetVariable(byte variable, uint32 parameter, bool *available) const;
/* virtual */ uint32 GetTriggers() const;
- /* virtual */ void SetTriggers(int triggers) const;
};
/** Resolver for a vehicle (chain) */
diff --git a/src/newgrf_generic.cpp b/src/newgrf_generic.cpp
index 9bd77239aa..6606422154 100644
--- a/src/newgrf_generic.cpp
+++ b/src/newgrf_generic.cpp
@@ -31,7 +31,16 @@ struct GenericScopeResolver : public ScopeResolver {
uint8 count;
uint8 station_size;
- GenericScopeResolver(ResolverObject &ro, bool ai_callback);
+ /**
+ * Generic scope resolver.
+ * @param ro Surrounding resolver.
+ * @param ai_callback Callback comes from the AI.
+ */
+ GenericScopeResolver(ResolverObject &ro, bool ai_callback)
+ : ScopeResolver(ro), cargo_type(0), default_selection(0), src_industry(0), dst_industry(0), distance(0),
+ event(), count(0), station_size(0), ai_callback(ai_callback)
+ {
+ }
/* virtual */ uint32 GetVariable(byte variable, uint32 parameter, bool *available) const;
@@ -145,24 +154,6 @@ GenericResolverObject::GenericResolverObject(bool ai_callback, CallbackID callba
{
}
-/**
- * Generic scope resolver.
- * @param ro Surrounding resolver.
- * @param ai_callback Callback comes from the AI.
- */
-GenericScopeResolver::GenericScopeResolver(ResolverObject &ro, bool ai_callback) : ScopeResolver(ro)
-{
- this->cargo_type = 0;
- this->default_selection = 0;
- this->src_industry = 0;
- this->dst_industry = 0;
- this->distance = 0;
- this->event = (AIConstructionEvent)0;
- this->count = 0;
- this->station_size = 0;
- this->ai_callback = ai_callback;
-}
-
/**
* Follow a generic feature callback list and return the first successful
diff --git a/src/newgrf_house.cpp b/src/newgrf_house.cpp
index 2bc85f9acb..ebdd858a4d 100644
--- a/src/newgrf_house.cpp
+++ b/src/newgrf_house.cpp
@@ -31,28 +31,6 @@ static HouseClassMapping _class_mapping[HOUSE_CLASS_MAX];
HouseOverrideManager _house_mngr(NEW_HOUSE_OFFSET, NUM_HOUSES, INVALID_HOUSE_ID);
-/**
- * Constructor of a house scope resolver.
- * @param ro Surrounding resolver.
- * @param house_id House type being queried.
- * @param tile %Tile containing the house.
- * @param town %Town containing the house.
- * @param not_yet_constructed House is still under construction.
- * @param initial_random_bits Random bits during construction checks.
- * @param watched_cargo_triggers Cargo types that triggered the watched cargo callback.
- */
-HouseScopeResolver::HouseScopeResolver(ResolverObject &ro, HouseID house_id, TileIndex tile, Town *town,
- bool not_yet_constructed, uint8 initial_random_bits, uint32 watched_cargo_triggers)
- : ScopeResolver(ro)
-{
- this->house_id = house_id;
- this->tile = tile;
- this->town = town;
- this->not_yet_constructed = not_yet_constructed;
- this->initial_random_bits = initial_random_bits;
- this->watched_cargo_triggers = watched_cargo_triggers;
-}
-
/**
* Retrieve the grf file associated with a house.
* @param house_id House to query.
@@ -169,12 +147,6 @@ void DecreaseBuildingCount(Town *t, HouseID house_id)
return this->not_yet_constructed ? 0 : GetHouseTriggers(this->tile);
}
-/* virtual */ void HouseScopeResolver::SetTriggers(int triggers) const
-{
- assert(!this->not_yet_constructed && IsValidTile(this->tile) && IsTileType(this->tile, MP_HOUSE));
- SetHouseTriggers(this->tile, triggers);
-}
-
static uint32 GetNumHouses(HouseID house_id, const Town *town)
{
uint8 map_id_count, town_id_count, map_class_count, town_class_count;
@@ -613,14 +585,19 @@ static void DoTriggerHouse(TileIndex tile, HouseTrigger trigger, byte base_rando
if (hs->grf_prop.spritegroup[0] == NULL) return;
HouseResolverObject object(hid, tile, Town::GetByTile(tile), CBID_RANDOM_TRIGGER);
- object.trigger = trigger;
+ object.waiting_triggers = GetHouseTriggers(tile) | trigger;
+ SetHouseTriggers(tile, object.waiting_triggers); // store now for var 5F
const SpriteGroup *group = object.Resolve();
if (group == NULL) return;
+ /* Store remaining triggers. */
+ SetHouseTriggers(tile, object.GetRemainingTriggers());
+
+ /* Rerandomise bits. Scopes other than SELF are invalid for houses. For bug-to-bug-compatibility with TTDP we ignore the scope. */
byte new_random_bits = Random();
byte random_bits = GetHouseRandomBits(tile);
- uint32 reseed = object.GetReseedSum(); // The scope only affects triggers, not the reseeding
+ uint32 reseed = object.GetReseedSum();
random_bits &= ~reseed;
random_bits |= (first ? new_random_bits : base_random) & reseed;
SetHouseRandomBits(tile, random_bits);
diff --git a/src/newgrf_house.h b/src/newgrf_house.h
index 37c1679470..0ac868d1e7 100644
--- a/src/newgrf_house.h
+++ b/src/newgrf_house.h
@@ -27,13 +27,26 @@ struct HouseScopeResolver : public ScopeResolver {
uint16 initial_random_bits; ///< Random bits during construction checks.
uint32 watched_cargo_triggers; ///< Cargo types that triggered the watched cargo callback.
+ /**
+ * Constructor of a house scope resolver.
+ * @param ro Surrounding resolver.
+ * @param house_id House type being queried.
+ * @param tile %Tile containing the house.
+ * @param town %Town containing the house.
+ * @param not_yet_constructed House is still under construction.
+ * @param initial_random_bits Random bits during construction checks.
+ * @param watched_cargo_triggers Cargo types that triggered the watched cargo callback.
+ */
HouseScopeResolver(ResolverObject &ro, HouseID house_id, TileIndex tile, Town *town,
- bool not_yet_constructed, uint8 initial_random_bits, uint32 watched_cargo_triggers);
+ bool not_yet_constructed, uint8 initial_random_bits, uint32 watched_cargo_triggers)
+ : ScopeResolver(ro), house_id(house_id), tile(tile), town(town), not_yet_constructed(not_yet_constructed),
+ initial_random_bits(initial_random_bits), watched_cargo_triggers(watched_cargo_triggers)
+ {
+ }
/* virtual */ uint32 GetRandomBits() const;
/* virtual */ uint32 GetVariable(byte variable, uint32 parameter, bool *available) const;
/* virtual */ uint32 GetTriggers() const;
- /* virtual */ void SetTriggers(int triggers) const;
};
/** Resolver object to be used for houses (feature 07 spritegroups). */
diff --git a/src/newgrf_industries.cpp b/src/newgrf_industries.cpp
index e8486e7604..7815ba36af 100644
--- a/src/newgrf_industries.cpp
+++ b/src/newgrf_industries.cpp
@@ -380,13 +380,7 @@ static uint32 GetCountAndDistanceOfClosestInstance(byte param_setID, byte layout
/* virtual */ uint32 IndustriesScopeResolver::GetTriggers() const
{
- return this->industry != NULL ? this->industry->random_triggers : 0;
-}
-
-/* virtual */ void IndustriesScopeResolver::SetTriggers(int triggers) const
-{
- assert(this->industry != NULL && this->industry->index != INVALID_INDUSTRY);
- this->industry->random_triggers = triggers;
+ return 0;
}
/* virtual */ void IndustriesScopeResolver::StorePSA(uint pos, int32 value)
@@ -463,23 +457,6 @@ TownScopeResolver *IndustriesResolverObject::GetTown()
return this->town_scope;
}
-/**
- * Scope resolver for industries.
- * @param ro Surrounding resolver.
- * @param tile %Tile owned by the industry.
- * @param industry %Industry being resolved.
- * @param type Type of the industry.
- * @param random_bits Random bits of the new industry.
- */
-IndustriesScopeResolver::IndustriesScopeResolver(ResolverObject &ro, TileIndex tile, Industry *industry, IndustryType type, uint32 random_bits)
- : ScopeResolver(ro)
-{
- this->tile = tile;
- this->industry = industry;
- this->type = type;
- this->random_bits = random_bits;
-}
-
/**
* Perform an industry callback.
* @param callback The callback to perform.
diff --git a/src/newgrf_industries.h b/src/newgrf_industries.h
index 94a5021662..fa809fcd73 100644
--- a/src/newgrf_industries.h
+++ b/src/newgrf_industries.h
@@ -21,12 +21,22 @@ struct IndustriesScopeResolver : public ScopeResolver {
IndustryType type; ///< Type of the industry.
uint32 random_bits; ///< Random bits of the new industry.
- IndustriesScopeResolver(ResolverObject &ro, TileIndex tile, Industry *industry, IndustryType type, uint32 random_bits = 0);
+ /**
+ * Scope resolver for industries.
+ * @param ro Surrounding resolver.
+ * @param tile %Tile owned by the industry.
+ * @param industry %Industry being resolved.
+ * @param type Type of the industry.
+ * @param random_bits Random bits of the new industry.
+ */
+ IndustriesScopeResolver(ResolverObject &ro, TileIndex tile, Industry *industry, IndustryType type, uint32 random_bits = 0)
+ : ScopeResolver(ro), tile(tile), industry(industry), type(type), random_bits(random_bits)
+ {
+ }
/* virtual */ uint32 GetRandomBits() const;
/* virtual */ uint32 GetVariable(byte variable, uint32 parameter, bool *available) const;
/* virtual */ uint32 GetTriggers() const;
- /* virtual */ void SetTriggers(int triggers) const;
/* virtual */ void StorePSA(uint pos, int32 value);
};
diff --git a/src/newgrf_industrytiles.cpp b/src/newgrf_industrytiles.cpp
index 90a17550d0..69c4b1d07d 100644
--- a/src/newgrf_industrytiles.cpp
+++ b/src/newgrf_industrytiles.cpp
@@ -117,12 +117,6 @@ uint32 GetRelativePosition(TileIndex tile, TileIndex ind_tile)
return GetIndustryTriggers(this->tile);
}
-/* virtual */ void IndustryTileScopeResolver::SetTriggers(int triggers) const
-{
- assert(this->industry != NULL && this->industry->index != INVALID_INDUSTRY && IsValidTile(this->tile) && IsTileType(this->tile, MP_INDUSTRY));
- SetIndustryTriggers(this->tile, triggers);
-}
-
/**
* Get the associated NewGRF file from the industry graphics.
* @param gfx Graphics to query.
@@ -152,18 +146,6 @@ IndustryTileResolverObject::IndustryTileResolverObject(IndustryGfx gfx, TileInde
this->root_spritegroup = GetIndustryTileSpec(gfx)->grf_prop.spritegroup[0];
}
-/**
- * Constructor of the scope resolver for the industry tile.
- * @param ro Surrounding resolver.
- * @param industry %Industry owning the tile.
- * @param tile %Tile of the industry.
- */
-IndustryTileScopeResolver::IndustryTileScopeResolver(ResolverObject &ro, Industry *industry, TileIndex tile) : ScopeResolver(ro)
-{
- this->industry = industry;
- this->tile = tile;
-}
-
static void IndustryDrawTileLayout(const TileInfo *ti, const TileLayoutSpriteGroup *group, byte rnd_colour, byte stage, IndustryGfx gfx)
{
const DrawTileSprites *dts = group->ProcessRegisters(&stage);
@@ -326,11 +308,16 @@ static void DoTriggerIndustryTile(TileIndex tile, IndustryTileTrigger trigger, I
if (itspec->grf_prop.spritegroup[0] == NULL) return;
IndustryTileResolverObject object(gfx, tile, ind, CBID_RANDOM_TRIGGER);
- object.trigger = trigger;
+ object.waiting_triggers = GetIndustryTriggers(tile) | trigger;
+ SetIndustryTriggers(tile, object.waiting_triggers); // store now for var 5F
const SpriteGroup *group = object.Resolve();
if (group == NULL) return;
+ /* Store remaining triggers. */
+ SetIndustryTriggers(tile, object.GetRemainingTriggers());
+
+ /* Rerandomise tile bits */
byte new_random_bits = Random();
byte random_bits = GetIndustryRandomBits(tile);
random_bits &= ~object.reseed[VSG_SCOPE_SELF];
diff --git a/src/newgrf_industrytiles.h b/src/newgrf_industrytiles.h
index 394f75e1c6..6051c1062b 100644
--- a/src/newgrf_industrytiles.h
+++ b/src/newgrf_industrytiles.h
@@ -21,12 +21,20 @@ struct IndustryTileScopeResolver : public ScopeResolver {
Industry *industry; ///< Industry owning the tiles.
TileIndex tile; ///< %Tile being resolved.
- IndustryTileScopeResolver(ResolverObject &ro, Industry *industry, TileIndex tile);
+ /**
+ * Constructor of the scope resolver for the industry tile.
+ * @param ro Surrounding resolver.
+ * @param industry %Industry owning the tile.
+ * @param tile %Tile of the industry.
+ */
+ IndustryTileScopeResolver(ResolverObject &ro, Industry *industry, TileIndex tile)
+ : ScopeResolver(ro), industry(industry), tile(tile)
+ {
+ }
/* virtual */ uint32 GetRandomBits() const;
/* virtual */ uint32 GetVariable(byte variable, uint32 parameter, bool *available) const;
/* virtual */ uint32 GetTriggers() const;
- /* virtual */ void SetTriggers(int triggers) const;
};
/** Resolver for industry tiles. */
diff --git a/src/newgrf_object.cpp b/src/newgrf_object.cpp
index 058d5e0c00..78bbc52443 100644
--- a/src/newgrf_object.cpp
+++ b/src/newgrf_object.cpp
@@ -128,21 +128,6 @@ bool NewGRFClass::IsUIAvailable(uint index) const
INSTANTIATE_NEWGRF_CLASS_METHODS(ObjectClass, ObjectSpec, ObjectClassID, OBJECT_CLASS_MAX)
-/**
- * Constructor of an object scope resolver.
- * @param ro Surrounding resolver.
- * @param obj Object being resolved.
- * @param tile %Tile of the object.
- * @param view View of the object.
- */
-ObjectScopeResolver::ObjectScopeResolver(ResolverObject &ro, Object *obj, TileIndex tile, uint8 view)
- : ScopeResolver(ro)
-{
- this->obj = obj;
- this->tile = tile;
- this->view = view;
-}
-
/* virtual */ uint32 ObjectScopeResolver::GetRandomBits() const
{
return IsValidTile(this->tile) && IsTileType(this->tile, MP_OBJECT) ? GetObjectRandomBits(this->tile) : 0;
diff --git a/src/newgrf_object.h b/src/newgrf_object.h
index cbd06b6f6d..69e1a3299c 100644
--- a/src/newgrf_object.h
+++ b/src/newgrf_object.h
@@ -104,7 +104,17 @@ struct ObjectScopeResolver : public ScopeResolver {
TileIndex tile; ///< The tile related to the object.
uint8 view; ///< The view of the object.
- ObjectScopeResolver(ResolverObject &ro, Object *obj, TileIndex tile, uint8 view = 0);
+ /**
+ * Constructor of an object scope resolver.
+ * @param ro Surrounding resolver.
+ * @param obj Object being resolved.
+ * @param tile %Tile of the object.
+ * @param view View of the object.
+ */
+ ObjectScopeResolver(ResolverObject &ro, Object *obj, TileIndex tile, uint8 view = 0)
+ : ScopeResolver(ro), obj(obj), tile(tile), view(view)
+ {
+ }
/* virtual */ uint32 GetRandomBits() const;
/* virtual */ uint32 GetVariable(byte variable, uint32 parameter, bool *available) const;
diff --git a/src/newgrf_railtype.cpp b/src/newgrf_railtype.cpp
index 8a074db974..624b0eca84 100644
--- a/src/newgrf_railtype.cpp
+++ b/src/newgrf_railtype.cpp
@@ -67,18 +67,6 @@
return NULL;
}
-/**
- * Constructor of the railtype scope resolvers.
- * @param ro Surrounding resolver.
- * @param tile %Tile containing the track. For track on a bridge this is the southern bridgehead.
- * @param context Are we resolving sprites for the upper halftile, or on a bridge?
- */
-RailTypeScopeResolver::RailTypeScopeResolver(ResolverObject &ro, TileIndex tile, TileContext context) : ScopeResolver(ro)
-{
- this->tile = tile;
- this->context = context;
-}
-
/**
* Resolver object for rail types.
* @param rti Railtype. NULL in NewGRF Inspect window.
diff --git a/src/newgrf_railtype.h b/src/newgrf_railtype.h
index 4c68e7d1db..5fadcd2ab5 100644
--- a/src/newgrf_railtype.h
+++ b/src/newgrf_railtype.h
@@ -21,7 +21,16 @@ struct RailTypeScopeResolver : public ScopeResolver {
TileIndex tile; ///< Tracktile. For track on a bridge this is the southern bridgehead.
TileContext context; ///< Are we resolving sprites for the upper halftile, or on a bridge?
- RailTypeScopeResolver(ResolverObject &ro, TileIndex tile, TileContext context);
+ /**
+ * Constructor of the railtype scope resolvers.
+ * @param ro Surrounding resolver.
+ * @param tile %Tile containing the track. For track on a bridge this is the southern bridgehead.
+ * @param context Are we resolving sprites for the upper halftile, or on a bridge?
+ */
+ RailTypeScopeResolver(ResolverObject &ro, TileIndex tile, TileContext context)
+ : ScopeResolver(ro), tile(tile), context(context)
+ {
+ }
/* virtual */ uint32 GetRandomBits() const;
/* virtual */ uint32 GetVariable(byte variable, uint32 parameter, bool *available) const;
diff --git a/src/newgrf_spritegroup.cpp b/src/newgrf_spritegroup.cpp
index c6fcd0a9e5..a5d689bbf9 100644
--- a/src/newgrf_spritegroup.cpp
+++ b/src/newgrf_spritegroup.cpp
@@ -10,6 +10,7 @@
/** @file newgrf_spritegroup.cpp Handling of primarily NewGRF action 2. */
#include "stdafx.h"
+#include
#include "debug.h"
#include "newgrf_spritegroup.h"
#include "core/pool_func.hpp"
@@ -60,11 +61,7 @@ RandomizedSpriteGroup::~RandomizedSpriteGroup()
static inline uint32 GetVariable(const ResolverObject &object, ScopeResolver *scope, byte variable, uint32 parameter, bool *available)
{
- /* First handle variables common with Action7/9/D */
uint32 value;
- if (GetGlobalVariable(variable, &value, object.grffile)) return value;
-
- /* Non-common variable */
switch (variable) {
case 0x0C: return object.callback;
case 0x10: return object.callback_param1;
@@ -79,18 +76,14 @@ static inline uint32 GetVariable(const ResolverObject &object, ScopeResolver *sc
if (object.grffile == NULL) return 0;
return object.grffile->GetParam(parameter);
- /* Not a common variable, so evaluate the feature specific variables */
- default: return scope->GetVariable(variable, parameter, available);
+ default:
+ /* First handle variables common with Action7/9/D */
+ if (variable < 0x40 && GetGlobalVariable(variable, &value, object.grffile)) return value;
+ /* Not a common variable, so evaluate the feature specific variables */
+ return scope->GetVariable(variable, parameter, available);
}
}
-ScopeResolver::ScopeResolver(ResolverObject &ro)
- : ro(ro)
-{
-}
-
-ScopeResolver::~ScopeResolver() {}
-
/**
* Get a few random bits. Default implementation has no random bits.
* @return Random bits.
@@ -109,12 +102,6 @@ ScopeResolver::~ScopeResolver() {}
return 0;
}
-/**
- * Set the triggers. Base class implementation does nothing.
- * @param triggers Triggers to set.
- */
-/* virtual */ void ScopeResolver::SetTriggers(int triggers) const {}
-
/**
* Get a variable value. Default implementation has no available variables.
* @param variable Variable to read
@@ -136,27 +123,6 @@ ScopeResolver::~ScopeResolver() {}
*/
/* virtual */ void ScopeResolver::StorePSA(uint reg, int32 value) {}
-/**
- * Resolver constructor.
- * @param grffile NewGRF file associated with the object (or \c NULL if none).
- * @param callback Callback code being resolved (default value is #CBID_NO_CALLBACK).
- * @param callback_param1 First parameter (var 10) of the callback (only used when \a callback is also set).
- * @param callback_param2 Second parameter (var 18) of the callback (only used when \a callback is also set).
- */
-ResolverObject::ResolverObject(const GRFFile *grffile, CallbackID callback, uint32 callback_param1, uint32 callback_param2)
- : default_scope(*this)
-{
- this->callback = callback;
- this->callback_param1 = callback_param1;
- this->callback_param2 = callback_param2;
- this->ResetState();
-
- this->grffile = grffile;
- this->root_spritegroup = NULL;
-}
-
-ResolverObject::~ResolverObject() {}
-
/**
* Get the real sprites of the grf.
* @param group Group to get.
@@ -201,11 +167,9 @@ static U EvalAdjustT(const DeterministicSpriteGroupAdjust *adjust, ScopeResolver
value >>= adjust->shift_num;
value &= adjust->and_mask;
- if (adjust->type != DSGA_TYPE_NONE) value += (S)adjust->add_val;
-
switch (adjust->type) {
- case DSGA_TYPE_DIV: value = (S)value / (S)adjust->divmod_val; break;
- case DSGA_TYPE_MOD: value = (S)value % (S)adjust->divmod_val; break;
+ case DSGA_TYPE_DIV: value = ((S)value + (S)adjust->add_val) / (S)adjust->divmod_val; break;
+ case DSGA_TYPE_MOD: value = ((S)value + (S)adjust->add_val) % (S)adjust->divmod_val; break;
case DSGA_TYPE_NONE: break;
}
@@ -238,6 +202,11 @@ static U EvalAdjustT(const DeterministicSpriteGroupAdjust *adjust, ScopeResolver
}
+static bool RangeHighComparator(const DeterministicSpriteGroupRange& range, uint32 value)
+{
+ return range.high < value;
+}
+
const SpriteGroup *DeterministicSpriteGroup::Resolve(ResolverObject &object) const
{
uint32 last_value = 0;
@@ -269,7 +238,7 @@ const SpriteGroup *DeterministicSpriteGroup::Resolve(ResolverObject &object) con
if (!available) {
/* Unsupported variable: skip further processing and return either
* the group from the first range or the default group. */
- return SpriteGroup::Resolve(this->num_ranges > 0 ? this->ranges[0].group : this->default_group, object, false);
+ return SpriteGroup::Resolve(this->error_group, object, false);
}
switch (this->size) {
@@ -283,7 +252,7 @@ const SpriteGroup *DeterministicSpriteGroup::Resolve(ResolverObject &object) con
object.last_value = last_value;
- if (this->num_ranges == 0) {
+ if (this->calculated_result) {
/* nvar == 0 is a special case -- we turn our value into a callback result */
if (value != CALLBACK_FAILED) value = GB(value, 0, 15);
static CallbackResultSpriteGroup nvarzero(0, true);
@@ -291,9 +260,17 @@ const SpriteGroup *DeterministicSpriteGroup::Resolve(ResolverObject &object) con
return &nvarzero;
}
- for (i = 0; i < this->num_ranges; i++) {
- if (this->ranges[i].low <= value && value <= this->ranges[i].high) {
- return SpriteGroup::Resolve(this->ranges[i].group, object, false);
+ if (this->num_ranges > 4) {
+ DeterministicSpriteGroupRange *lower = std::lower_bound(this->ranges + 0, this->ranges + this->num_ranges, value, RangeHighComparator);
+ if (lower != this->ranges + this->num_ranges && lower->low <= value) {
+ assert(lower->low <= value && value <= lower->high);
+ return SpriteGroup::Resolve(lower->group, object, false);
+ }
+ } else {
+ for (i = 0; i < this->num_ranges; i++) {
+ if (this->ranges[i].low <= value && value <= this->ranges[i].high) {
+ return SpriteGroup::Resolve(this->ranges[i].group, object, false);
+ }
}
}
@@ -304,21 +281,15 @@ const SpriteGroup *DeterministicSpriteGroup::Resolve(ResolverObject &object) con
const SpriteGroup *RandomizedSpriteGroup::Resolve(ResolverObject &object) const
{
ScopeResolver *scope = object.GetScope(this->var_scope, this->count);
- if (object.trigger != 0) {
+ if (object.callback == CBID_RANDOM_TRIGGER) {
/* Handle triggers */
- /* Magic code that may or may not do the right things... */
- byte waiting_triggers = scope->GetTriggers();
- byte match = this->triggers & (waiting_triggers | object.trigger);
+ byte match = this->triggers & object.waiting_triggers;
bool res = (this->cmp_mode == RSG_CMP_ANY) ? (match != 0) : (match == this->triggers);
if (res) {
- waiting_triggers &= ~match;
+ object.used_triggers |= match;
object.reseed[this->var_scope] |= (this->num_groups - 1) << this->lowest_randbit;
- } else {
- waiting_triggers |= object.trigger;
}
-
- scope->SetTriggers(waiting_triggers);
}
uint32 mask = (this->num_groups - 1) << this->lowest_randbit;
diff --git a/src/newgrf_spritegroup.h b/src/newgrf_spritegroup.h
index 0a7705d667..6adf7c2ac8 100644
--- a/src/newgrf_spritegroup.h
+++ b/src/newgrf_spritegroup.h
@@ -174,13 +174,16 @@ struct DeterministicSpriteGroup : SpriteGroup {
VarSpriteGroupScope var_scope;
DeterministicSpriteGroupSize size;
uint num_adjusts;
- byte num_ranges;
+ uint num_ranges;
+ bool calculated_result;
DeterministicSpriteGroupAdjust *adjusts;
DeterministicSpriteGroupRange *ranges; // Dynamically allocated
/* Dynamically allocated, this is the sole owner */
const SpriteGroup *default_group;
+ const SpriteGroup *error_group; // was first range, before sorting ranges
+
protected:
const SpriteGroup *Resolve(ResolverObject &object) const;
};
@@ -288,12 +291,11 @@ struct IndustryProductionSpriteGroup : SpriteGroup {
struct ScopeResolver {
ResolverObject &ro; ///< Surrounding resolver object.
- ScopeResolver(ResolverObject &ro);
- virtual ~ScopeResolver();
+ ScopeResolver(ResolverObject &ro) : ro(ro) {}
+ virtual ~ScopeResolver() {}
virtual uint32 GetRandomBits() const;
virtual uint32 GetTriggers() const;
- virtual void SetTriggers(int triggers) const;
virtual uint32 GetVariable(byte variable, uint32 parameter, bool *available) const;
virtual void StorePSA(uint reg, int32 value);
@@ -306,8 +308,20 @@ struct ScopeResolver {
* to get the results of callbacks, rerandomisations or normal sprite lookups.
*/
struct ResolverObject {
- ResolverObject(const GRFFile *grffile, CallbackID callback = CBID_NO_CALLBACK, uint32 callback_param1 = 0, uint32 callback_param2 = 0);
- virtual ~ResolverObject();
+ /**
+ * Resolver constructor.
+ * @param grffile NewGRF file associated with the object (or \c NULL if none).
+ * @param callback Callback code being resolved (default value is #CBID_NO_CALLBACK).
+ * @param callback_param1 First parameter (var 10) of the callback (only used when \a callback is also set).
+ * @param callback_param2 Second parameter (var 18) of the callback (only used when \a callback is also set).
+ */
+ ResolverObject(const GRFFile *grffile, CallbackID callback = CBID_NO_CALLBACK, uint32 callback_param1 = 0, uint32 callback_param2 = 0)
+ : default_scope(*this), callback(callback), callback_param1(callback_param1), callback_param2(callback_param2), grffile(grffile), root_spritegroup(NULL)
+ {
+ this->ResetState();
+ }
+
+ virtual ~ResolverObject() {}
ScopeResolver default_scope; ///< Default implementation of the grf scope.
@@ -315,9 +329,10 @@ struct ResolverObject {
uint32 callback_param1; ///< First parameter (var 10) of the callback.
uint32 callback_param2; ///< Second parameter (var 18) of the callback.
- byte trigger;
-
uint32 last_value; ///< Result of most recent DeterministicSpriteGroup (including procedure calls)
+
+ uint32 waiting_triggers; ///< Waiting triggers to be used by any rerandomisation. (scope independent)
+ uint32 used_triggers; ///< Subset of cur_triggers, which actually triggered some rerandomisation. (scope independent)
uint32 reseed[VSG_END]; ///< Collects bits to rerandomise while triggering triggers.
const GRFFile *grffile; ///< GRFFile the resolved SpriteGroup belongs to
@@ -346,6 +361,14 @@ struct ResolverObject {
virtual ScopeResolver *GetScope(VarSpriteGroupScope scope = VSG_SCOPE_SELF, byte relative = 0);
+ /**
+ * Returns the waiting triggers that did not trigger any rerandomisation.
+ */
+ uint32 GetRemainingTriggers() const
+ {
+ return this->waiting_triggers & ~this->used_triggers;
+ }
+
/**
* Returns the OR-sum of all bits that need reseeding
* independent of the scope they were accessed with.
@@ -367,7 +390,8 @@ struct ResolverObject {
void ResetState()
{
this->last_value = 0;
- this->trigger = 0;
+ this->waiting_triggers = 0;
+ this->used_triggers = 0;
memset(this->reseed, 0, sizeof(this->reseed));
}
};
diff --git a/src/newgrf_station.cpp b/src/newgrf_station.cpp
index cd5dad7b47..41ef7af75c 100644
--- a/src/newgrf_station.cpp
+++ b/src/newgrf_station.cpp
@@ -235,13 +235,6 @@ static uint32 GetRailContinuationInfo(TileIndex tile)
}
-/* virtual */ void StationScopeResolver::SetTriggers(int triggers) const
-{
- BaseStation *st = const_cast(this->st);
- assert(st != NULL);
- st->waiting_triggers = triggers;
-}
-
/**
* Station variable cache
* This caches 'expensive' station variable lookups which iterate over
@@ -585,23 +578,6 @@ StationResolverObject::~StationResolverObject()
delete this->town_scope;
}
-/**
- * Constructor for station scopes.
- * @param ro Surrounding resolver.
- * @param statspec Station (type) specification.
- * @param st Instance of the station.
- * @param tile %Tile of the station.
- */
-StationScopeResolver::StationScopeResolver(ResolverObject &ro, const StationSpec *statspec, BaseStation *st, TileIndex tile)
- : ScopeResolver(ro)
-{
- this->tile = tile;
- this->st = st;
- this->statspec = statspec;
- this->cargo_type = CT_INVALID;
- this->axis = INVALID_AXIS;
-}
-
/**
* Resolve sprites for drawing a station tile.
* @param statspec Station spec
@@ -997,8 +973,9 @@ void TriggerStationRandomisation(Station *st, TileIndex tile, StationRandomTrigg
}
}
- /* Convert trigger to bit */
- uint8 trigger_bit = 1 << trigger;
+ /* Store triggers now for var 5F */
+ SetBit(st->waiting_triggers, trigger);
+ uint32 used_triggers = 0;
/* Check all tiles over the station to check if the specindex is still in use */
TILE_AREA_LOOP(tile, area) {
@@ -1014,11 +991,13 @@ void TriggerStationRandomisation(Station *st, TileIndex tile, StationRandomTrigg
if (cargo_type == CT_INVALID || HasBit(ss->cargo_triggers, cargo_type)) {
StationResolverObject object(ss, st, tile, CBID_RANDOM_TRIGGER, 0);
- object.trigger = trigger_bit;
+ object.waiting_triggers = st->waiting_triggers;
const SpriteGroup *group = object.Resolve();
if (group == NULL) continue;
+ used_triggers |= object.used_triggers;
+
uint32 reseed = object.GetReseedSum();
if (reseed != 0) {
whole_reseed |= reseed;
@@ -1037,6 +1016,7 @@ void TriggerStationRandomisation(Station *st, TileIndex tile, StationRandomTrigg
}
/* Update whole station random bits */
+ st->waiting_triggers &= ~used_triggers;
if ((whole_reseed & 0xFFFF) != 0) {
st->random_bits &= ~whole_reseed;
st->random_bits |= Random() & whole_reseed;
diff --git a/src/newgrf_station.h b/src/newgrf_station.h
index b9333c1053..5413a4c08f 100644
--- a/src/newgrf_station.h
+++ b/src/newgrf_station.h
@@ -30,11 +30,20 @@ struct StationScopeResolver : public ScopeResolver {
CargoID cargo_type; ///< Type of cargo of the station.
Axis axis; ///< Station axis, used only for the slope check callback.
- StationScopeResolver(ResolverObject &ro, const StationSpec *statspec, BaseStation *st, TileIndex tile);
+ /**
+ * Constructor for station scopes.
+ * @param ro Surrounding resolver.
+ * @param statspec Station (type) specification.
+ * @param st Instance of the station.
+ * @param tile %Tile of the station.
+ */
+ StationScopeResolver(ResolverObject &ro, const StationSpec *statspec, BaseStation *st, TileIndex tile)
+ : ScopeResolver(ro), tile(tile), st(st), statspec(statspec), cargo_type(CT_INVALID), axis(INVALID_AXIS)
+ {
+ }
/* virtual */ uint32 GetRandomBits() const;
/* virtual */ uint32 GetTriggers() const;
- /* virtual */ void SetTriggers(int triggers) const;
/* virtual */ uint32 GetVariable(byte variable, uint32 parameter, bool *available) const;
};
diff --git a/src/newgrf_town.cpp b/src/newgrf_town.cpp
index 2f48eb757d..820e2be689 100644
--- a/src/newgrf_town.cpp
+++ b/src/newgrf_town.cpp
@@ -16,18 +16,6 @@
#include "safeguards.h"
-/**
- * Resolver of a town scope.
- * @param ro Surrounding resolver.
- * @param t %Town of the scope.
- * @param readonly Scope may change persistent storage of the town.
- */
-TownScopeResolver::TownScopeResolver(ResolverObject &ro, Town *t, bool readonly) : ScopeResolver(ro)
-{
- this->t = t;
- this->readonly = readonly;
-}
-
/* virtual */ uint32 TownScopeResolver::GetVariable(byte variable, uint32 parameter, bool *available) const
{
switch (variable) {
diff --git a/src/newgrf_town.h b/src/newgrf_town.h
index 145571e8ae..7c4fb5395c 100644
--- a/src/newgrf_town.h
+++ b/src/newgrf_town.h
@@ -25,7 +25,16 @@ struct TownScopeResolver : public ScopeResolver {
Town *t; ///< %Town of the scope.
bool readonly; ///< When set, persistent storage of the town is read-only,
- TownScopeResolver(ResolverObject &ro, Town *t, bool readonly);
+ /**
+ * Resolver of a town scope.
+ * @param ro Surrounding resolver.
+ * @param t %Town of the scope.
+ * @param readonly Scope may change persistent storage of the town.
+ */
+ TownScopeResolver(ResolverObject &ro, Town *t, bool readonly)
+ : ScopeResolver(ro), t(t), readonly(readonly)
+ {
+ }
virtual uint32 GetVariable(byte variable, uint32 parameter, bool *available) const;
virtual void StorePSA(uint reg, int32 value);
diff --git a/src/os/windows/ottdres.rc.in b/src/os/windows/ottdres.rc.in
index fca129c6a6..b96b0faa9f 100644
--- a/src/os/windows/ottdres.rc.in
+++ b/src/os/windows/ottdres.rc.in
@@ -100,7 +100,7 @@ BEGIN
VALUE "FileDescription", "OpenTTD\0"
VALUE "FileVersion", "!!VERSION!!\0"
VALUE "InternalName", "openttd\0"
- VALUE "LegalCopyright", "Copyright \xA9 OpenTTD Developers 2002-2017. All Rights Reserved.\0"
+ VALUE "LegalCopyright", "Copyright \xA9 OpenTTD Developers 2002-2018. All Rights Reserved.\0"
VALUE "LegalTrademarks", "\0"
VALUE "OriginalFilename", "openttd.exe\0"
VALUE "PrivateBuild", "\0"
diff --git a/src/saveload/industry_sl.cpp b/src/saveload/industry_sl.cpp
index c5ddadfdd0..b28730e3c3 100644
--- a/src/saveload/industry_sl.cpp
+++ b/src/saveload/industry_sl.cpp
@@ -57,7 +57,7 @@ static const SaveLoad _industry_desc[] = {
SLEG_CONDARR(_old_ind_persistent_storage.storage, SLE_UINT32, 16, 76, 160),
SLE_CONDREF(Industry, psa, REF_STORAGE, 161, SL_MAX_VERSION),
- SLE_CONDVAR(Industry, random_triggers, SLE_UINT8, 82, SL_MAX_VERSION),
+ SLE_CONDNULL(1, 82, 196), // random_triggers
SLE_CONDVAR(Industry, random, SLE_UINT16, 82, SL_MAX_VERSION),
SLE_CONDNULL(32, 2, 143), // old reserved space
diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp
index a6472f4fc3..a02f77ec6e 100644
--- a/src/saveload/saveload.cpp
+++ b/src/saveload/saveload.cpp
@@ -269,8 +269,9 @@
* 194 26881 1.5.x, 1.6.0
* 195 27572 1.6.x
* 196 27778 1.7.x
+ * 197 27978
*/
-extern const uint16 SAVEGAME_VERSION = 196; ///< Current savegame version of OpenTTD.
+extern const uint16 SAVEGAME_VERSION = 197; ///< Current savegame version of OpenTTD.
const uint16 SAVEGAME_VERSION_EXT = 0x8000; ///< Savegame extension indicator mask
SavegameType _savegame_type; ///< type of savegame we are loading
diff --git a/src/script/api/ai_changelog.hpp b/src/script/api/ai_changelog.hpp
index db1c6eb2a2..3a1765b132 100644
--- a/src/script/api/ai_changelog.hpp
+++ b/src/script/api/ai_changelog.hpp
@@ -19,7 +19,7 @@
*
* 1.8.0 is not yet released. The following changes are not set in stone yet.
*
- * \b 1.7.0
+ * \b 1.7.0 - 1.7.2
*
* No changes
*
diff --git a/src/script/api/game_changelog.hpp b/src/script/api/game_changelog.hpp
index 00b9539590..11f0ee6ec2 100644
--- a/src/script/api/game_changelog.hpp
+++ b/src/script/api/game_changelog.hpp
@@ -19,7 +19,7 @@
*
* 1.8.0 is not yet released. The following changes are not set in stone yet.
*
- * \b 1.7.0
+ * \b 1.7.0 - 1.7.2
*
* No changes
*
diff --git a/src/table/elrail_data.h b/src/table/elrail_data.h
index 102ad42644..6915360035 100644
--- a/src/table/elrail_data.h
+++ b/src/table/elrail_data.h
@@ -310,10 +310,10 @@ enum WireSpriteOffset {
WSO_X_NE_UP,
WSO_Y_NW_DOWN,
- WSO_ENTRANCE_NE,
- WSO_ENTRANCE_SE,
WSO_ENTRANCE_SW,
WSO_ENTRANCE_NW,
+ WSO_ENTRANCE_NE,
+ WSO_ENTRANCE_SE,
};
struct SortableSpriteStruct {
@@ -400,10 +400,10 @@ static const SortableSpriteStruct RailCatenarySpriteData_Depot[] = {
};
static const SortableSpriteStruct RailCatenarySpriteData_Tunnel[] = {
- { WSO_ENTRANCE_NE, 0, 7, 15, 1, 1, ELRAIL_ELEVATION }, //! Wire for NE tunnel exit
- { WSO_ENTRANCE_SE, 7, 0, 1, 15, 1, ELRAIL_ELEVATION }, //! Wire for SE tunnel exit
- { WSO_ENTRANCE_SW, 0, 7, 15, 1, 1, ELRAIL_ELEVATION }, //! Wire for SW tunnel exit
- { WSO_ENTRANCE_NW, 7, 0, 1, 15, 1, ELRAIL_ELEVATION } //! Wire for NW tunnel exit
+ { WSO_ENTRANCE_SW, 0, 7, 15, 1, 1, ELRAIL_ELEVATION }, //! Wire for NE tunnel (SW facing exit)
+ { WSO_ENTRANCE_NW, 7, 0, 1, 15, 1, ELRAIL_ELEVATION }, //! Wire for SE tunnel (NW facing exit)
+ { WSO_ENTRANCE_NE, 0, 7, 15, 1, 1, ELRAIL_ELEVATION }, //! Wire for SW tunnel (NE facing exit)
+ { WSO_ENTRANCE_SE, 7, 0, 1, 15, 1, ELRAIL_ELEVATION } //! Wire for NW tunnel (SE facing exit)
};
diff --git a/src/table/settings.ini b/src/table/settings.ini
index 459ae21888..31683a6fcf 100644
--- a/src/table/settings.ini
+++ b/src/table/settings.ini
@@ -2198,7 +2198,7 @@ cat = SC_BASIC
base = GameSettings
var = game_creation.variety
type = SLE_UINT8
-flags = SLF_NOT_IN_SAVE | SLF_NO_NETWORK_SYNC
+from = 197
guiflags = SGF_MULTISTRING | SGF_NEWGAME_ONLY
def = 0
min = 0
diff --git a/src/tile_type.h b/src/tile_type.h
index 0d720925da..c02ba4fc45 100644
--- a/src/tile_type.h
+++ b/src/tile_type.h
@@ -18,6 +18,8 @@ static const uint TILE_PIXELS = 32; ///< Pixel distan
static const uint TILE_HEIGHT = 8; ///< Height of a height level in world coordinate AND in pixels in #ZOOM_LVL_BASE.
static const uint MAX_BUILDING_PIXELS = 200; ///< Maximum height of a building in pixels in #ZOOM_LVL_BASE. (Also applies to "bridge buildings" on the bridge floor.)
+static const int MAX_VEHICLE_PIXEL_X = 192; ///< Maximum width of a vehicle in pixels in #ZOOM_LVL_BASE.
+static const int MAX_VEHICLE_PIXEL_Y = 96; ///< Maximum height of a vehicle in pixels in #ZOOM_LVL_BASE.
static const uint MAX_TILE_HEIGHT = 255; ///< Maximum allowed tile height
diff --git a/src/train_gui.cpp b/src/train_gui.cpp
index 4724fb98ab..51e772b520 100644
--- a/src/train_gui.cpp
+++ b/src/train_gui.cpp
@@ -64,14 +64,14 @@ static int HighlightDragPosition(int px, int max_width, VehicleID selection, boo
bool rtl = _current_text_dir == TD_RTL;
assert(selection != INVALID_VEHICLE);
- int dragged_width = WD_FRAMERECT_LEFT + WD_FRAMERECT_RIGHT;
+ int dragged_width = 0;
for (Train *t = Train::Get(selection); t != NULL; t = chain ? t->Next() : (t->HasArticulatedPart() ? t->GetNextArticulatedPart() : NULL)) {
dragged_width += t->GetDisplayImageWidth(NULL);
}
- int drag_hlight_left = rtl ? max(px -dragged_width, 0) : px;
- int drag_hlight_right = rtl ? px : min(px + dragged_width, max_width);
- int drag_hlight_width = max(drag_hlight_right - drag_hlight_left, 0);
+ int drag_hlight_left = rtl ? max(px - dragged_width + 1, 0) : px;
+ int drag_hlight_right = rtl ? px : min(px + dragged_width, max_width) - 1;
+ int drag_hlight_width = max(drag_hlight_right - drag_hlight_left + 1, 0);
if (drag_hlight_width > 0) {
GfxFillRect(drag_hlight_left + WD_FRAMERECT_LEFT, WD_FRAMERECT_TOP + 1,
diff --git a/src/vehicle.cpp b/src/vehicle.cpp
index e4a8c7bf1f..be11e05be3 100644
--- a/src/vehicle.cpp
+++ b/src/vehicle.cpp
@@ -57,7 +57,30 @@
#include "safeguards.h"
-#define GEN_HASH(x, y) ((GB((y), 6 + ZOOM_LVL_SHIFT, 6) << 6) + GB((x), 7 + ZOOM_LVL_SHIFT, 6))
+/* Number of bits in the hash to use from each vehicle coord */
+static const uint GEN_HASHX_BITS = 6;
+static const uint GEN_HASHY_BITS = 6;
+
+/* Size of each hash bucket */
+static const uint GEN_HASHX_BUCKET_BITS = 7;
+static const uint GEN_HASHY_BUCKET_BITS = 6;
+
+/* Compute hash for vehicle coord */
+#define GEN_HASHX(x) GB((x), GEN_HASHX_BUCKET_BITS + ZOOM_LVL_SHIFT, GEN_HASHX_BITS)
+#define GEN_HASHY(y) (GB((y), GEN_HASHY_BUCKET_BITS + ZOOM_LVL_SHIFT, GEN_HASHY_BITS) << GEN_HASHX_BITS)
+#define GEN_HASH(x, y) (GEN_HASHY(y) + GEN_HASHX(x))
+
+/* Maximum size until hash repeats */
+static const int GEN_HASHX_SIZE = 1 << (GEN_HASHX_BUCKET_BITS + GEN_HASHX_BITS + ZOOM_LVL_SHIFT);
+static const int GEN_HASHY_SIZE = 1 << (GEN_HASHY_BUCKET_BITS + GEN_HASHY_BITS + ZOOM_LVL_SHIFT);
+
+/* Increments to reach next bucket in hash table */
+static const int GEN_HASHX_INC = 1;
+static const int GEN_HASHY_INC = 1 << GEN_HASHX_BITS;
+
+/* Mask to wrap-around buckets */
+static const uint GEN_HASHX_MASK = (1 << GEN_HASHX_BITS) - 1;
+static const uint GEN_HASHY_MASK = ((1 << GEN_HASHY_BITS) - 1) << GEN_HASHX_BITS;
VehicleID _new_vehicle_id;
uint16 _returned_refit_capacity; ///< Stores the capacity after a refit operation.
@@ -618,7 +641,7 @@ static void UpdateVehicleTileHash(Vehicle *v, bool remove)
v->hash_tile_current = new_hash;
}
-static Vehicle *_vehicle_viewport_hash[0x1000];
+static Vehicle *_vehicle_viewport_hash[1 << (GEN_HASHX_BITS + GEN_HASHY_BITS)];
static void UpdateVehicleViewportHash(Vehicle *v, int x, int y)
{
@@ -1088,26 +1111,26 @@ void ViewportAddVehicles(DrawPixelInfo *dpi)
/* The hash area to scan */
int xl, xu, yl, yu;
- if (dpi->width + (70 * ZOOM_LVL_BASE) < (1 << (7 + 6 + ZOOM_LVL_SHIFT))) {
- xl = GB(l - (70 * ZOOM_LVL_BASE), 7 + ZOOM_LVL_SHIFT, 6);
- xu = GB(r, 7 + ZOOM_LVL_SHIFT, 6);
+ if (dpi->width + (MAX_VEHICLE_PIXEL_X * ZOOM_LVL_BASE) < GEN_HASHX_SIZE) {
+ xl = GEN_HASHX(l - MAX_VEHICLE_PIXEL_X * ZOOM_LVL_BASE);
+ xu = GEN_HASHX(r);
} else {
/* scan whole hash row */
xl = 0;
- xu = 0x3F;
+ xu = GEN_HASHX_MASK;
}
- if (dpi->height + (70 * ZOOM_LVL_BASE) < (1 << (6 + 6 + ZOOM_LVL_SHIFT))) {
- yl = GB(t - (70 * ZOOM_LVL_BASE), 6 + ZOOM_LVL_SHIFT, 6) << 6;
- yu = GB(b, 6 + ZOOM_LVL_SHIFT, 6) << 6;
+ if (dpi->height + (MAX_VEHICLE_PIXEL_Y * ZOOM_LVL_BASE) < GEN_HASHY_SIZE) {
+ yl = GEN_HASHY(t - MAX_VEHICLE_PIXEL_Y * ZOOM_LVL_BASE);
+ yu = GEN_HASHY(b);
} else {
/* scan whole column */
yl = 0;
- yu = 0x3F << 6;
+ yu = GEN_HASHY_MASK;
}
- for (int y = yl;; y = (y + (1 << 6)) & (0x3F << 6)) {
- for (int x = xl;; x = (x + 1) & 0x3F) {
+ for (int y = yl;; y = (y + GEN_HASHY_INC) & GEN_HASHY_MASK) {
+ for (int x = xl;; x = (x + GEN_HASHX_INC) & GEN_HASHX_MASK) {
const Vehicle *v = _vehicle_viewport_hash[x + y]; // already masked & 0xFFF
while (v != NULL) {
diff --git a/src/video/win32_v.cpp b/src/video/win32_v.cpp
index 4a9861b643..23794cb321 100644
--- a/src/video/win32_v.cpp
+++ b/src/video/win32_v.cpp
@@ -34,6 +34,10 @@
#define MAPVK_VK_TO_CHAR (2)
#endif
+#ifndef PM_QS_INPUT
+#define PM_QS_INPUT 0x20000
+#endif
+
static struct {
HWND main_wnd;
HBITMAP dib_sect;
@@ -737,7 +741,6 @@ static LRESULT CALLBACK WndProcGdi(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lP
case WM_MOUSEMOVE: {
int x = (int16)LOWORD(lParam);
int y = (int16)HIWORD(lParam);
- POINT pt;
/* If the mouse was not in the window and it has moved it means it has
* come into the window, so start drawing the mouse. Also start
@@ -747,7 +750,18 @@ static LRESULT CALLBACK WndProcGdi(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lP
SetTimer(hwnd, TID_POLLMOUSE, MOUSE_POLL_DELAY, (TIMERPROC)TrackMouseTimerProc);
}
- if (_cursor.UpdateCursorPosition(x, y, true)) {
+ if (_cursor.fix_at) {
+ /* Get all queued mouse events now in case we have to warp the cursor. In the
+ * end, we only care about the current mouse position and not bygone events. */
+ MSG m;
+ while (PeekMessage(&m, hwnd, WM_MOUSEMOVE, WM_MOUSEMOVE, PM_REMOVE | PM_NOYIELD | PM_QS_INPUT)) {
+ x = (int16)LOWORD(m.lParam);
+ y = (int16)HIWORD(m.lParam);
+ }
+ }
+
+ if (_cursor.UpdateCursorPosition(x, y, false)) {
+ POINT pt;
pt.x = _cursor.pos.x;
pt.y = _cursor.pos.y;
ClientToScreen(hwnd, &pt);
diff --git a/src/water_cmd.cpp b/src/water_cmd.cpp
index edce4cda58..6b11e7e64b 100644
--- a/src/water_cmd.cpp
+++ b/src/water_cmd.cpp
@@ -73,7 +73,7 @@ static const uint8 _flood_from_dirs[] = {
*/
static inline void MarkTileDirtyIfCanalOrRiver(TileIndex tile)
{
- if (IsTileType(tile, MP_WATER) && (IsCanal(tile) || IsRiver(tile))) MarkTileDirtyByTile(tile);
+ if (IsValidTile(tile) && IsTileType(tile, MP_WATER) && (IsCanal(tile) || IsRiver(tile))) MarkTileDirtyByTile(tile);
}
/**
diff --git a/src/window.cpp b/src/window.cpp
index 2ce1124ed9..f4b7a1ca18 100644
--- a/src/window.cpp
+++ b/src/window.cpp
@@ -1682,7 +1682,7 @@ static Point GetAutoPlacePosition(int width, int height)
* of the closebox
*/
int left = rtl ? _screen.width - width : 0, top = toolbar_y;
- int offset_x = rtl ? -NWidgetLeaf::closebox_dimension.width : NWidgetLeaf::closebox_dimension.width;
+ int offset_x = rtl ? -(int)NWidgetLeaf::closebox_dimension.width : (int)NWidgetLeaf::closebox_dimension.width;
int offset_y = max(NWidgetLeaf::closebox_dimension.height, FONT_HEIGHT_NORMAL + WD_CAPTIONTEXT_TOP + WD_CAPTIONTEXT_BOTTOM);
restart: