Merge branch 'master' into newgrf-feature-detection

This commit is contained in:
Jonathan G Rennison
2018-11-10 12:24:53 +00:00
225 changed files with 2123 additions and 978 deletions

171
Doxyfile
View File

@@ -8,9 +8,14 @@
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# Project related configuration options # Project related configuration options
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = OpenTTD PROJECT_NAME = OpenTTD
PROJECT_NUMBER =
PROJECT_BRIEF =
PROJECT_LOGO =
OUTPUT_DIRECTORY = docs/source/ OUTPUT_DIRECTORY = docs/source/
CREATE_SUBDIRS = NO CREATE_SUBDIRS = YES
ALLOW_UNICODE_NAMES = NO
OUTPUT_LANGUAGE = English OUTPUT_LANGUAGE = English
BRIEF_MEMBER_DESC = YES BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES REPEAT_BRIEF = YES
@@ -32,22 +37,42 @@ STRIP_FROM_PATH = ./
STRIP_FROM_INC_PATH = STRIP_FROM_INC_PATH =
SHORT_NAMES = NO SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = YES JAVADOC_AUTOBRIEF = YES
QT_AUTOBRIEF = NO
MULTILINE_CPP_IS_BRIEF = NO MULTILINE_CPP_IS_BRIEF = NO
INHERIT_DOCS = YES INHERIT_DOCS = YES
DISTRIBUTE_GROUP_DOC = NO SEPARATE_MEMBER_PAGES = NO
TAB_SIZE = 2 TAB_SIZE = 2
ALIASES = ALIASES =
TCL_SUBST =
OPTIMIZE_OUTPUT_FOR_C = YES OPTIMIZE_OUTPUT_FOR_C = YES
OPTIMIZE_OUTPUT_JAVA = NO OPTIMIZE_OUTPUT_JAVA = NO
OPTIMIZE_FOR_FORTRAN = NO
OPTIMIZE_OUTPUT_VHDL = NO
EXTENSION_MAPPING =
MARKDOWN_SUPPORT = YES
TOC_INCLUDE_HEADINGS = 0
AUTOLINK_SUPPORT = YES
BUILTIN_STL_SUPPORT = NO
CPP_CLI_SUPPORT = NO
SIP_SUPPORT = NO
IDL_PROPERTY_SUPPORT = YES
DISTRIBUTE_GROUP_DOC = NO
GROUP_NESTED_COMPOUNDS = NO
SUBGROUPING = YES SUBGROUPING = YES
INLINE_GROUPED_CLASSES = NO
INLINE_SIMPLE_STRUCTS = NO
TYPEDEF_HIDES_STRUCT = NO
LOOKUP_CACHE_SIZE = 0
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# Build related configuration options # Build related configuration options
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
EXTRACT_ALL = NO EXTRACT_ALL = NO
EXTRACT_PRIVATE = YES EXTRACT_PRIVATE = YES
EXTRACT_PACKAGE = NO
EXTRACT_STATIC = YES EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES EXTRACT_LOCAL_CLASSES = YES
EXTRACT_LOCAL_METHODS = YES EXTRACT_LOCAL_METHODS = YES
EXTRACT_ANON_NSPACES = YES
HIDE_UNDOC_MEMBERS = NO HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO HIDE_UNDOC_CLASSES = NO
HIDE_FRIEND_COMPOUNDS = NO HIDE_FRIEND_COMPOUNDS = NO
@@ -55,11 +80,17 @@ HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = NO INTERNAL_DOCS = NO
CASE_SENSE_NAMES = YES CASE_SENSE_NAMES = YES
HIDE_SCOPE_NAMES = NO HIDE_SCOPE_NAMES = NO
HIDE_COMPOUND_REFERENCE= NO
SHOW_INCLUDE_FILES = YES SHOW_INCLUDE_FILES = YES
SHOW_GROUPED_MEMB_INC = NO
FORCE_LOCAL_INCLUDES = NO
INLINE_INFO = YES INLINE_INFO = YES
SORT_MEMBER_DOCS = YES SORT_MEMBER_DOCS = YES
SORT_BRIEF_DOCS = NO SORT_BRIEF_DOCS = NO
SORT_MEMBERS_CTORS_1ST = NO
SORT_GROUP_NAMES = NO
SORT_BY_SCOPE_NAME = NO SORT_BY_SCOPE_NAME = NO
STRICT_PROTO_MATCHING = NO
GENERATE_TODOLIST = YES GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES GENERATE_BUGLIST = YES
@@ -67,22 +98,27 @@ GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS = ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 30 MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = YES SHOW_USED_FILES = YES
SHOW_DIRECTORIES = YES SHOW_FILES = YES
SHOW_NAMESPACES = YES
FILE_VERSION_FILTER = FILE_VERSION_FILTER =
LAYOUT_FILE =
CITE_BIB_FILES =
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to warning and progress messages # Configuration options related to warning and progress messages
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
QUIET = NO QUIET = NO
WARNINGS = YES WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES WARN_IF_UNDOCUMENTED = YES
WARN_IF_DOC_ERROR = YES WARN_IF_DOC_ERROR = YES
WARN_NO_PARAMDOC = NO WARN_NO_PARAMDOC = NO
WARN_AS_ERROR = NO
WARN_FORMAT = "$file:$line: $text" WARN_FORMAT = "$file:$line: $text"
WARN_LOGFILE = WARN_LOGFILE =
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to the input files # Configuration options related to the input files
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
INPUT = ./src/ INPUT = ./src/
INPUT_ENCODING = UTF-8
FILE_PATTERNS = *.c \ FILE_PATTERNS = *.c \
*.cc \ *.cc \
*.cxx \ *.cxx \
@@ -93,7 +129,9 @@ FILE_PATTERNS = *.c \
RECURSIVE = YES RECURSIVE = YES
EXCLUDE = EXCLUDE =
EXCLUDE_SYMLINKS = NO EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS = */3rdparty */.svn */script/api EXCLUDE_PATTERNS = */3rdparty \
*/script/api
EXCLUDE_SYMBOLS =
EXAMPLE_PATH = EXAMPLE_PATH =
EXAMPLE_PATTERNS = * EXAMPLE_PATTERNS = *
EXAMPLE_RECURSIVE = NO EXAMPLE_RECURSIVE = NO
@@ -101,23 +139,28 @@ IMAGE_PATH =./docs/
INPUT_FILTER = INPUT_FILTER =
FILTER_PATTERNS = FILTER_PATTERNS =
FILTER_SOURCE_FILES = NO FILTER_SOURCE_FILES = NO
FILTER_SOURCE_PATTERNS =
USE_MDFILE_AS_MAINPAGE =
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to source browsing # Configuration options related to source browsing
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
SOURCE_BROWSER = YES SOURCE_BROWSER = YES
INLINE_SOURCES = NO INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = YES REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES REFERENCES_RELATION = YES
REFERENCES_LINK_SOURCE = YES
SOURCE_TOOLTIPS = YES
USE_HTAGS = NO
VERBATIM_HEADERS = YES VERBATIM_HEADERS = YES
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to the alphabetical class index # Configuration options related to the alphabetical class index
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
ALPHABETICAL_INDEX = NO ALPHABETICAL_INDEX = NO
COLS_IN_ALPHA_INDEX = 5 COLS_IN_ALPHA_INDEX = 5
IGNORE_PREFIX = IGNORE_PREFIX =
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to the HTML output # Configuration options related to the HTML output
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
GENERATE_HTML = YES GENERATE_HTML = YES
HTML_OUTPUT = html HTML_OUTPUT = html
@@ -125,19 +168,58 @@ HTML_FILE_EXTENSION = .html
HTML_HEADER = HTML_HEADER =
HTML_FOOTER = HTML_FOOTER =
HTML_STYLESHEET = HTML_STYLESHEET =
HTML_ALIGN_MEMBERS = YES HTML_EXTRA_STYLESHEET =
GENERATE_HTMLHELP = YES HTML_EXTRA_FILES =
HTML_COLORSTYLE_HUE = 220
HTML_COLORSTYLE_SAT = 100
HTML_COLORSTYLE_GAMMA = 80
HTML_TIMESTAMP = NO
HTML_DYNAMIC_MENUS = YES
HTML_DYNAMIC_SECTIONS = NO
HTML_INDEX_NUM_ENTRIES = 100
GENERATE_DOCSET = NO
DOCSET_FEEDNAME = "Doxygen generated docs"
DOCSET_BUNDLE_ID = org.doxygen.Project
DOCSET_PUBLISHER_ID = org.doxygen.Publisher
DOCSET_PUBLISHER_NAME = Publisher
GENERATE_HTMLHELP = NO
CHM_FILE = CHM_FILE =
HHC_LOCATION = HHC_LOCATION =
GENERATE_CHI = NO GENERATE_CHI = NO
CHM_INDEX_ENCODING =
BINARY_TOC = NO BINARY_TOC = NO
TOC_EXPAND = YES TOC_EXPAND = YES
GENERATE_QHP = NO
QCH_FILE =
QHP_NAMESPACE = org.doxygen.Project
QHP_VIRTUAL_FOLDER = doc
QHP_CUST_FILTER_NAME =
QHP_CUST_FILTER_ATTRS =
QHP_SECT_FILTER_ATTRS =
QHG_LOCATION =
GENERATE_ECLIPSEHELP = NO
ECLIPSE_DOC_ID = org.doxygen.Project
DISABLE_INDEX = NO DISABLE_INDEX = NO
ENUM_VALUES_PER_LINE = 4
GENERATE_TREEVIEW = YES GENERATE_TREEVIEW = YES
ENUM_VALUES_PER_LINE = 4
TREEVIEW_WIDTH = 250 TREEVIEW_WIDTH = 250
EXT_LINKS_IN_WINDOW = NO
FORMULA_FONTSIZE = 10
FORMULA_TRANSPARENT = YES
USE_MATHJAX = NO
MATHJAX_FORMAT = HTML-CSS
MATHJAX_RELPATH = https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/
MATHJAX_EXTENSIONS =
MATHJAX_CODEFILE =
SEARCHENGINE = NO
SERVER_BASED_SEARCH = NO
EXTERNAL_SEARCH = NO
SEARCHENGINE_URL =
SEARCHDATA_FILE = searchdata.xml
EXTERNAL_SEARCH_ID =
EXTRA_SEARCH_MAPPINGS =
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to the LaTeX output # Configuration options related to the LaTeX output
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
GENERATE_LATEX = NO GENERATE_LATEX = NO
LATEX_OUTPUT = latex LATEX_OUTPUT = latex
@@ -147,12 +229,18 @@ COMPACT_LATEX = NO
PAPER_TYPE = a4wide PAPER_TYPE = a4wide
EXTRA_PACKAGES = EXTRA_PACKAGES =
LATEX_HEADER = LATEX_HEADER =
LATEX_FOOTER =
LATEX_EXTRA_STYLESHEET =
LATEX_EXTRA_FILES =
PDF_HYPERLINKS = NO PDF_HYPERLINKS = NO
USE_PDFLATEX = NO USE_PDFLATEX = NO
LATEX_BATCHMODE = NO LATEX_BATCHMODE = NO
LATEX_HIDE_INDICES = NO LATEX_HIDE_INDICES = NO
LATEX_SOURCE_CODE = NO
LATEX_BIB_STYLE = plain
LATEX_TIMESTAMP = NO
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to the RTF output # Configuration options related to the RTF output
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
GENERATE_RTF = NO GENERATE_RTF = NO
RTF_OUTPUT = rtf RTF_OUTPUT = rtf
@@ -160,27 +248,33 @@ COMPACT_RTF = NO
RTF_HYPERLINKS = NO RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE = RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE = RTF_EXTENSIONS_FILE =
RTF_SOURCE_CODE = NO
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to the man page output # Configuration options related to the man page output
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
GENERATE_MAN = NO GENERATE_MAN = NO
MAN_OUTPUT = man MAN_OUTPUT = man
MAN_EXTENSION = .3 MAN_EXTENSION = .3
MAN_SUBDIR =
MAN_LINKS = NO MAN_LINKS = NO
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to the XML output # Configuration options related to the XML output
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
GENERATE_XML = NO GENERATE_XML = NO
XML_OUTPUT = xml XML_OUTPUT = xml
XML_SCHEMA =
XML_DTD =
XML_PROGRAMLISTING = YES XML_PROGRAMLISTING = YES
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output # Configuration options related to the DOCBOOK output
#---------------------------------------------------------------------------
GENERATE_DOCBOOK = NO
DOCBOOK_OUTPUT = docbook
DOCBOOK_PROGRAMLISTING = NO
#---------------------------------------------------------------------------
# Configuration options for the AutoGen Definitions output
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
GENERATE_AUTOGEN_DEF = NO GENERATE_AUTOGEN_DEF = NO
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# configuration options related to the Perl module output # Configuration options related to the Perl module output
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
GENERATE_PERLMOD = NO GENERATE_PERLMOD = NO
PERLMOD_LATEX = NO PERLMOD_LATEX = NO
@@ -195,42 +289,67 @@ EXPAND_ONLY_PREDEF = YES
SEARCH_INCLUDES = YES SEARCH_INCLUDES = YES
INCLUDE_PATH = INCLUDE_PATH =
INCLUDE_FILE_PATTERNS = INCLUDE_FILE_PATTERNS =
PREDEFINED = ENABLE_NETWORK WITH_ZLIB WITH_LZO WITH_LZMA WITH_SDL WITH_PNG WITH_FONTCONFIG WITH_FREETYPE WITH_ICU_SORT WITH_ICU_LAYOUT UNICODE _UNICODE _GNU_SOURCE FINAL= PREDEFINED = ENABLE_NETWORK \
WITH_ZLIB \
WITH_LZO \
WITH_LZMA \
WITH_SDL \
WITH_PNG \
WITH_FONTCONFIG \
WITH_FREETYPE \
WITH_ICU_SORT \
WITH_ICU_LAYOUT \
UNICODE \
_UNICODE \
_GNU_SOURCE \
FINAL=
EXPAND_AS_DEFINED = EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES SKIP_FUNCTION_MACROS = YES
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# Configuration::additions related to external references # Configuration options related to external references
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
TAGFILES = TAGFILES =
GENERATE_TAGFILE = objs/openttd.tag GENERATE_TAGFILE = objs/openttd.tag
ALLEXTERNALS = NO ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES EXTERNAL_GROUPS = YES
EXTERNAL_PAGES = YES
PERL_PATH = /usr/bin/perl PERL_PATH = /usr/bin/perl
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
# Configuration options related to the dot tool # Configuration options related to the dot tool
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
CLASS_DIAGRAMS = YES CLASS_DIAGRAMS = YES
MSCGEN_PATH =
DIA_PATH =
HIDE_UNDOC_RELATIONS = YES HIDE_UNDOC_RELATIONS = YES
HAVE_DOT = NO HAVE_DOT = NO
DOT_NUM_THREADS = 0
DOT_FONTNAME = Helvetica
DOT_FONTSIZE = 10
DOT_FONTPATH =
CLASS_GRAPH = YES CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES COLLABORATION_GRAPH = YES
GROUP_GRAPHS = YES GROUP_GRAPHS = YES
UML_LOOK = NO UML_LOOK = NO
UML_LIMIT_NUM_FIELDS = 10
TEMPLATE_RELATIONS = NO TEMPLATE_RELATIONS = NO
INCLUDE_GRAPH = YES INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = YES INCLUDED_BY_GRAPH = YES
CALL_GRAPH = NO CALL_GRAPH = NO
CALLER_GRAPH = NO
GRAPHICAL_HIERARCHY = YES GRAPHICAL_HIERARCHY = YES
DIRECTORY_GRAPH = YES DIRECTORY_GRAPH = YES
DOT_IMAGE_FORMAT = png DOT_IMAGE_FORMAT = png
INTERACTIVE_SVG = NO
DOT_PATH = DOT_PATH =
DOTFILE_DIRS = DOTFILE_DIRS =
MSCFILE_DIRS =
DIAFILE_DIRS =
PLANTUML_JAR_PATH =
PLANTUML_CFG_FILE =
PLANTUML_INCLUDE_PATH =
DOT_GRAPH_MAX_NODES = 50
MAX_DOT_GRAPH_DEPTH = 1000 MAX_DOT_GRAPH_DEPTH = 1000
DOT_TRANSPARENT = NO DOT_TRANSPARENT = NO
DOT_MULTI_TARGETS = NO DOT_MULTI_TARGETS = NO
GENERATE_LEGEND = YES GENERATE_LEGEND = YES
DOT_CLEANUP = YES DOT_CLEANUP = YES
#---------------------------------------------------------------------------
# Configuration::additions related to the search engine
#---------------------------------------------------------------------------
SEARCHENGINE = NO

View File

@@ -1018,7 +1018,36 @@ function Regression::Rail()
print(" BuildRail(): " + AIRail.BuildRail(10002, 10003, 10006)); print(" BuildRail(): " + AIRail.BuildRail(10002, 10003, 10006));
print(" HasTransportType(): " + AITile.HasTransportType(10005, AITile.TRANSPORT_RAIL)); print(" HasTransportType(): " + AITile.HasTransportType(10005, AITile.TRANSPORT_RAIL));
print(" HasTransportType(): " + AITile.HasTransportType(10006, AITile.TRANSPORT_RAIL)); print(" HasTransportType(): " + AITile.HasTransportType(10006, AITile.TRANSPORT_RAIL));
print(" RemoveRail(): " + AIRail.RemoveRail(10005, 10004, 10001)); print(" RemoveRail(): " + AIRail.RemoveRail(10006, 10005, 10002));
print(" HasTransportType(): " + AITile.HasTransportType(10004, AITile.TRANSPORT_RAIL));
print(" HasTransportType(): " + AITile.HasTransportType(10005, AITile.TRANSPORT_RAIL));
print(" BuildRailTrack(): " + AIRail.BuildRailTrack(6200, AIRail.RAILTRACK_NE_SW));
print(" RemoveRailTrack(): " + AIRail.RemoveRailTrack(6200, AIRail.RAILTRACK_NW_NE));
print(" RemoveRailTrack(): " + AIRail.RemoveRailTrack(6200, AIRail.RAILTRACK_NE_SW));
print(" BuildRail(): " + AIRail.BuildRail(6200, 6200 + 256, 6200 + (256 * 4)));
print(" HasTransportType(): " + AITile.HasTransportType(6200 + (256 * 3), AITile.TRANSPORT_RAIL));
print(" HasTransportType(): " + AITile.HasTransportType(6200 + (256 * 4), AITile.TRANSPORT_RAIL));
print(" RemoveRail(): " + AIRail.RemoveRail(6200 + (256 * 3), 6200 + (256 * 2), 6200 - 256));
print(" HasTransportType(): " + AITile.HasTransportType(6200 + (256 * 3), AITile.TRANSPORT_RAIL));
print(" HasTransportType(): " + AITile.HasTransportType(6200 + (256 * 4), AITile.TRANSPORT_RAIL));
print(" BuildRailTrack(): " + AIRail.BuildRail(14706, 14705, 12907));
print(" HasTransportType(): " + AITile.HasTransportType(13421, AITile.TRANSPORT_RAIL));
print(" HasTransportType(): " + AITile.HasTransportType(14191, AITile.TRANSPORT_RAIL));
print(" RemoveRail(): " + AIRail.RemoveRail(12907, 13163, 14706));
print(" HasTransportType(): " + AITile.HasTransportType(13421, AITile.TRANSPORT_RAIL));
print(" HasTransportType(): " + AITile.HasTransportType(14191, AITile.TRANSPORT_RAIL));
print(" BuildRailTrack(): " + AIRail.BuildRailTrack(61533, AIRail.RAILTRACK_NW_SW));
print(" BuildRailTrack(): " + AIRail.BuildRailTrack(61533, AIRail.RAILTRACK_NE_SE));
print(" BuildRailTrack(): " + AIRail.BuildRailTrack(61533, AIRail.RAILTRACK_NW_NE));
print(" BuildRailTrack(): " + AIRail.BuildRailTrack(61533, AIRail.RAILTRACK_SW_SE));
print(" BuildRailTrack(): " + AIRail.BuildRailTrack(61533, AIRail.RAILTRACK_NE_SW));
print(" DemolishTile(): " + AITile.DemolishTile(61533));
print(" BuildRailTrack(): " + AIRail.BuildRailTrack(61533, AIRail.RAILTRACK_NE_SW));
print(" BuildRailTrack(): " + AIRail.BuildRailTrack(61533, AIRail.RAILTRACK_NW_SE));
print(" BuildRailTrack(): " + AIRail.BuildRailTrack(61533, AIRail.RAILTRACK_NW_NE));
print(" BuildRailTrack(): " + AIRail.BuildRailTrack(61533, AIRail.RAILTRACK_SW_SE));
print(" DemolishTile(): " + AITile.DemolishTile(61533));
print(" BuildRailTrack(): " + AIRail.BuildRailTrack(61533, AIRail.RAILTRACK_NW_SE));
print(" Depot"); print(" Depot");
print(" IsRailTile(): " + AIRail.IsRailTile(33411)); print(" IsRailTile(): " + AIRail.IsRailTile(33411));
@@ -1053,6 +1082,31 @@ function Regression::Rail()
print(" IsRailStationTile(): " + AIRail.IsRailStationTile(7957)); print(" IsRailStationTile(): " + AIRail.IsRailStationTile(7957));
print(" IsRailStationTile(): " + AIRail.IsRailStationTile(7958)); print(" IsRailStationTile(): " + AIRail.IsRailStationTile(7958));
print(" IsRailStationTile(): " + AIRail.IsRailStationTile(7959)); print(" IsRailStationTile(): " + AIRail.IsRailStationTile(7959));
print(" Waypoint");
print(" BuildRailTrack(): " + AIRail.BuildRailTrack(12646, AIRail.RAILTRACK_NW_SE));
print(" BuildRailTrack(): " + AIRail.BuildRailTrack(12648, AIRail.RAILTRACK_NE_SW));
print(" BuildRailTrack(): " + AIRail.BuildRailTrack(12650, AIRail.RAILTRACK_NW_NE));
print(" BuildRailWaypoint(): " + AIRail.BuildRailWaypoint(12644));
print(" BuildRailWaypoint(): " + AIRail.BuildRailWaypoint(12646));
print(" BuildRailWaypoint(): " + AIRail.BuildRailWaypoint(12648));
print(" BuildRailWaypoint(): " + AIRail.BuildRailWaypoint(12650));
print(" IsRailWaypointTile(): " + AIRail.IsRailWaypointTile(12644));
print(" IsRailWaypointTile(): " + AIRail.IsRailWaypointTile(12646));
print(" IsRailWaypointTile(): " + AIRail.IsRailWaypointTile(12648));
print(" IsRailWaypointTile(): " + AIRail.IsRailWaypointTile(12650));
print(" RemoveRailWaypointTileRectangle():" + AIRail.RemoveRailWaypointTileRectangle(12644, 12646, false));
print(" RemoveRailWaypointTileRectangle():" + AIRail.RemoveRailWaypointTileRectangle(12648, 12650, true));
print(" IsRailWaypointTile(): " + AIRail.IsRailWaypointTile(12644));
print(" IsRailWaypointTile(): " + AIRail.IsRailWaypointTile(12646));
print(" IsRailWaypointTile(): " + AIRail.IsRailWaypointTile(12648));
print(" IsRailWaypointTile(): " + AIRail.IsRailWaypointTile(12650));
print(" HasTransportType(): " + AITile.HasTransportType(12644, AITile.TRANSPORT_RAIL));
print(" HasTransportType(): " + AITile.HasTransportType(12646, AITile.TRANSPORT_RAIL));
print(" HasTransportType(): " + AITile.HasTransportType(12648, AITile.TRANSPORT_RAIL));
print(" HasTransportType(): " + AITile.HasTransportType(12650, AITile.TRANSPORT_RAIL));
print(" DemolishTile(): " + AITile.DemolishTile(12648));
print(" DemolishTile(): " + AITile.DemolishTile(12650));
} }
function Regression::Road() function Regression::Road()
@@ -1441,7 +1495,7 @@ function Regression::TileList()
print(" " + i + " => " + list.GetValue(i)); print(" " + i + " => " + list.GetValue(i));
} }
list = AITileList_StationType(4, AIStation.STATION_BUS_STOP); list = AITileList_StationType(6, AIStation.STATION_BUS_STOP);
print(""); print("");
print("--TileList_StationType--"); print("--TileList_StationType--");
print(" Count(): " + list.Count()); print(" Count(): " + list.Count());

View File

@@ -1292,7 +1292,7 @@ ERROR: IsEnd() is invalid as Begin() is never called
GetRunningCost(): 820 GetRunningCost(): 820
GetPower(): 300 GetPower(): 300
GetWeight(): 47 GetWeight(): 47
GetMaxTractiveEffort(): 139 GetMaxTractiveEffort(): 136
GetVehicleType(): 0 GetVehicleType(): 0
GetRailType(): 0 GetRailType(): 0
GetRoadType(): -1 GetRoadType(): -1
@@ -1436,7 +1436,7 @@ ERROR: IsEnd() is invalid as Begin() is never called
GetRunningCost(): 1968 GetRunningCost(): 1968
GetPower(): 1000 GetPower(): 1000
GetWeight(): 131 GetWeight(): 131
GetMaxTractiveEffort(): 388 GetMaxTractiveEffort(): 381
GetVehicleType(): 0 GetVehicleType(): 0
GetRailType(): 0 GetRailType(): 0
GetRoadType(): -1 GetRoadType(): -1
@@ -1454,7 +1454,7 @@ ERROR: IsEnd() is invalid as Begin() is never called
GetRunningCost(): 2296 GetRunningCost(): 2296
GetPower(): 1200 GetPower(): 1200
GetWeight(): 162 GetWeight(): 162
GetMaxTractiveEffort(): 480 GetMaxTractiveEffort(): 471
GetVehicleType(): 0 GetVehicleType(): 0
GetRailType(): 0 GetRailType(): 0
GetRoadType(): -1 GetRoadType(): -1
@@ -7253,7 +7253,7 @@ ERROR: IsEnd() is invalid as Begin() is never called
IsBuoyTile(): false IsBuoyTile(): false
IsLockTile(): false IsLockTile(): false
IsCanalTile(): false IsCanalTile(): false
GetBankBalance(): 479851 GetBankBalance(): 479664
BuildWaterDepot(): true BuildWaterDepot(): true
BuildDock(): true BuildDock(): true
BuildBuoy(): true BuildBuoy(): true
@@ -7266,7 +7266,7 @@ ERROR: IsEnd() is invalid as Begin() is never called
IsBuoyTile(): true IsBuoyTile(): true
IsLockTile(): true IsLockTile(): true
IsCanalTile(): true IsCanalTile(): true
GetBankBalance(): 465257 GetBankBalance(): 465070
--AIWaypointList(BUOY)-- --AIWaypointList(BUOY)--
Count(): 1 Count(): 1
@@ -7285,7 +7285,7 @@ ERROR: IsEnd() is invalid as Begin() is never called
IsBuoyTile(): false IsBuoyTile(): false
IsLockTile(): false IsLockTile(): false
IsCanalTile(): false IsCanalTile(): false
GetBankBalance(): 459862 GetBankBalance(): 459675
BuildWaterDepot(): true BuildWaterDepot(): true
BuildDock(): true BuildDock(): true
@@ -7334,6 +7334,35 @@ ERROR: IsEnd() is invalid as Begin() is never called
HasTransportType(): true HasTransportType(): true
HasTransportType(): false HasTransportType(): false
RemoveRail(): true RemoveRail(): true
HasTransportType(): false
HasTransportType(): false
BuildRailTrack(): true
RemoveRailTrack(): false
RemoveRailTrack(): true
BuildRail(): true
HasTransportType(): true
HasTransportType(): false
RemoveRail(): true
HasTransportType(): true
HasTransportType(): false
BuildRailTrack(): true
HasTransportType(): true
HasTransportType(): true
RemoveRail(): true
HasTransportType(): false
HasTransportType(): false
BuildRailTrack(): false
BuildRailTrack(): false
BuildRailTrack(): true
BuildRailTrack(): true
BuildRailTrack(): false
DemolishTile(): true
BuildRailTrack(): true
BuildRailTrack(): false
BuildRailTrack(): false
BuildRailTrack(): false
DemolishTile(): true
BuildRailTrack(): true
Depot Depot
IsRailTile(): false IsRailTile(): false
BuildRailDepot(): false BuildRailDepot(): false
@@ -7362,6 +7391,30 @@ ERROR: IsEnd() is invalid as Begin() is never called
IsRailStationTile(): false IsRailStationTile(): false
IsRailStationTile(): false IsRailStationTile(): false
IsRailStationTile(): false IsRailStationTile(): false
Waypoint
BuildRailTrack(): true
BuildRailTrack(): true
BuildRailTrack(): true
BuildRailWaypoint(): false
BuildRailWaypoint(): true
BuildRailWaypoint(): true
BuildRailWaypoint(): false
IsRailWaypointTile(): false
IsRailWaypointTile(): true
IsRailWaypointTile(): true
IsRailWaypointTile(): false
RemoveRailWaypointTileRectangle():true
RemoveRailWaypointTileRectangle():true
IsRailWaypointTile(): false
IsRailWaypointTile(): false
IsRailWaypointTile(): false
IsRailWaypointTile(): false
HasTransportType(): false
HasTransportType(): false
HasTransportType(): true
HasTransportType(): true
DemolishTile(): true
DemolishTile(): true
--RailTypeList-- --RailTypeList--
Count(): 1 Count(): 1
@@ -7485,9 +7538,9 @@ ERROR: IsEnd() is invalid as Begin() is never called
GetName(0): Look, a station GetName(0): Look, a station
GetLocation(1): 29253 GetLocation(1): 29253
GetLocation(1000): -1 GetLocation(1000): -1
GetStationID(33411): 4 GetStationID(33411): 6
GetStationID(34411): 65535 GetStationID(34411): 65535
GetStationID(33411): 4 GetStationID(33411): 6
HasRoadType(3, TRAM): false HasRoadType(3, TRAM): false
HasRoadType(3, ROAD): false HasRoadType(3, ROAD): false
HasRoadType(33411, TRAM): false HasRoadType(33411, TRAM): false

View File

@@ -83,6 +83,7 @@ set_default() {
with_midi="" with_midi=""
with_midi_arg="" with_midi_arg=""
with_libtimidity="1" with_libtimidity="1"
with_fluidsynth="1"
with_freetype="1" with_freetype="1"
with_fontconfig="1" with_fontconfig="1"
with_icu_layout="1" with_icu_layout="1"
@@ -160,6 +161,7 @@ set_default() {
with_midi with_midi
with_midi_arg with_midi_arg
with_libtimidity with_libtimidity
with_fluidsynth
with_freetype with_freetype
with_fontconfig with_fontconfig
with_icu_layout with_icu_layout
@@ -372,6 +374,9 @@ detect_params() {
--without-libtimidity) with_libtimidity="0";; --without-libtimidity) with_libtimidity="0";;
--with-libtimidity=*) with_libtimidity="$optarg";; --with-libtimidity=*) with_libtimidity="$optarg";;
--with-fluidsynth) with_fluidsynth="2";;
--without-fluidsynth) with_fluidsynth="0";;
--with-freetype) with_freetype="2";; --with-freetype) with_freetype="2";;
--without-freetype) with_freetype="0";; --without-freetype) with_freetype="0";;
--with-freetype=*) with_freetype="$optarg";; --with-freetype=*) with_freetype="$optarg";;
@@ -890,6 +895,7 @@ check_params() {
detect_icu_layout detect_icu_layout
detect_icu_sort detect_icu_sort
detect_libtimidity detect_libtimidity
detect_fluidsynth
if [ "$with_direct_music" != "0" ]; then if [ "$with_direct_music" != "0" ]; then
if [ "$os" != "MINGW" ] && [ "$os" != "CYGWIN" ]; then if [ "$os" != "MINGW" ] && [ "$os" != "CYGWIN" ]; then
@@ -1839,6 +1845,11 @@ make_cflags_and_ldflags() {
fi fi
fi fi
if [ -n "$fluidsynth" ]; then
LIBS="$LIBS -lfluidsynth"
CFLAGS="$CFLAGS -DFLUIDSYNTH"
fi
if [ "$with_iconv" != "0" ]; then if [ "$with_iconv" != "0" ]; then
CFLAGS="$CFLAGS -DWITH_ICONV" CFLAGS="$CFLAGS -DWITH_ICONV"
if [ "$link_to_iconv" = "yes" ]; then if [ "$link_to_iconv" = "yes" ]; then
@@ -2775,6 +2786,10 @@ detect_libtimidity() {
detect_pkg_config "$with_libtimidity" "libtimidity" "libtimidity_config" "0.1" "1" detect_pkg_config "$with_libtimidity" "libtimidity" "libtimidity_config" "0.1" "1"
} }
detect_fluidsynth() {
detect_library "$with_fluidsynth" "fluidsynth" "" "" "fluidsynth.h"
}
detect_pkg_config() { detect_pkg_config() {
# $1 - config-param ($with_lzma value) # $1 - config-param ($with_lzma value)
# $2 - package name ('liblzma') # $2 - package name ('liblzma')
@@ -3543,6 +3558,7 @@ showhelp() {
echo " midi-player" echo " midi-player"
echo " --with-libtimidity[=\"pkg-config libtimidity\"]" echo " --with-libtimidity[=\"pkg-config libtimidity\"]"
echo " enables libtimidity support" echo " enables libtimidity support"
echo " --with-fluidsynth enables fluidsynth support"
echo " --with-allegro[=\"pkg-config allegro\"]" echo " --with-allegro[=\"pkg-config allegro\"]"
echo " enables Allegro video driver support" echo " enables Allegro video driver support"
echo " --with-cocoa enables COCOA video driver (OSX ONLY)" echo " --with-cocoa enables COCOA video driver (OSX ONLY)"

1
configure vendored
View File

@@ -125,6 +125,7 @@ AWKCOMMAND='
if ($0 == "MSVC" && "'$os'" != "MSVC") { next; } if ($0 == "MSVC" && "'$os'" != "MSVC") { next; }
if ($0 == "DIRECTMUSIC" && "'$with_direct_music'" == "0") { next; } if ($0 == "DIRECTMUSIC" && "'$with_direct_music'" == "0") { next; }
if ($0 == "LIBTIMIDITY" && "'$libtimidity'" == "" ) { next; } if ($0 == "LIBTIMIDITY" && "'$libtimidity'" == "" ) { next; }
if ($0 == "FLUIDSYNTH" && "'$fluidsynth'" == "" ) { next; }
if ($0 == "HAVE_THREAD" && "'$with_threads'" == "0") { next; } if ($0 == "HAVE_THREAD" && "'$with_threads'" == "0") { next; }
if ($0 == "SSE" && "'$with_sse'" != "1") { next; } if ($0 == "SSE" && "'$with_sse'" != "1") { next; }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View File

@@ -1,3 +1,15 @@
openttd (1.8.0-0) unstable; urgency=low
* New upstream release 1.8.0
-- OpenTTD <info@openttd.org> Sun, 01 Apr 2018 14:00:00 +0200
openttd (1.8.0~RC1-0) unstable; urgency=low
* New upstream release 1.8.0-RC1
-- OpenTTD <info@openttd.org> Wed, 21 Mar 2018 21:00:00 +0100
openttd (1.7.2-0) unstable; urgency=low openttd (1.7.2-0) unstable; urgency=low
* New upstream release 1.7.2 * New upstream release 1.7.2
@@ -1002,4 +1014,3 @@ openttd (0.3.5-1) unstable; urgency=low
* Initial Release. * Initial Release.
-- Matthijs Kooijman <m.kooijman@student.utwente.nl> Fri, 24 Dec 2004 02:58:47 +0100 -- Matthijs Kooijman <m.kooijman@student.utwente.nl> Fri, 24 Dec 2004 02:58:47 +0100

View File

@@ -74,6 +74,7 @@ enable_dedicated="0"
enable_ai="1" enable_ai="1"
with_cocoa="0" with_cocoa="0"
enable_directmusic="1" enable_directmusic="1"
enable_fluidsynth="0"
with_threads="1" with_threads="1"
file_prefix="..\\\\src\\\\" file_prefix="..\\\\src\\\\"
@@ -132,6 +133,7 @@ load_main_data() {
"'$os'" != "CYGWIN" && "'$os'" != "MSVC" ) { next; } "'$os'" != "CYGWIN" && "'$os'" != "MSVC" ) { next; }
if ($0 == "MSVC" && "'$os'" != "MSVC") { next; } if ($0 == "MSVC" && "'$os'" != "MSVC") { next; }
if ($0 == "DIRECTMUSIC" && "'$enable_directmusic'" != "1") { next; } if ($0 == "DIRECTMUSIC" && "'$enable_directmusic'" != "1") { next; }
if ($0 == "FLUIDSYNTH" && "'$enable_fluidsynth'" != "1") { next; }
if ($0 == "LIBTIMIDITY" && "'$libtimidity'" == "" ) { next; } if ($0 == "LIBTIMIDITY" && "'$libtimidity'" == "" ) { next; }
if ($0 == "HAVE_THREAD" && "'$with_threads'" == "0") { next; } if ($0 == "HAVE_THREAD" && "'$with_threads'" == "0") { next; }

View File

@@ -407,6 +407,7 @@ music/bemidi.h
music/cocoa_m.h music/cocoa_m.h
music/extmidi.h music/extmidi.h
music/libtimidity.h music/libtimidity.h
music/fluidsynth.h
music/os2_m.h music/os2_m.h
music/qtmidi.h music/qtmidi.h
os/macosx/macos.h os/macosx/macos.h
@@ -1127,6 +1128,9 @@ music/midifile.cpp
#if LIBTIMIDITY #if LIBTIMIDITY
music/libtimidity.cpp music/libtimidity.cpp
#end #end
#if FLUIDSYNTH
music/fluidsynth.cpp
#end
#end #end
# Sound # Sound

View File

@@ -248,7 +248,7 @@ void GetAircraftSpriteSize(EngineID engine, uint &width, uint &height, int &xoff
* @param flags type of operation. * @param flags type of operation.
* @param e the engine to build. * @param e the engine to build.
* @param data unused. * @param data unused.
* @param ret[out] the vehicle that has been built. * @param[out] ret the vehicle that has been built.
* @return the cost of this operation or an error. * @return the cost of this operation or an error.
*/ */
CommandCost CmdBuildAircraft(TileIndex tile, DoCommandFlag flags, const Engine *e, uint16 data, Vehicle **ret) CommandCost CmdBuildAircraft(TileIndex tile, DoCommandFlag flags, const Engine *e, uint16 data, Vehicle **ret)
@@ -635,6 +635,12 @@ static int UpdateAircraftSpeed(Aircraft *v, uint speed_limit = SPEED_LIMIT_NONE,
* and take-off speeds being too low. */ * and take-off speeds being too low. */
speed_limit *= _settings_game.vehicle.plane_speed; speed_limit *= _settings_game.vehicle.plane_speed;
/* adjust speed for broken vehicles */
if (v->vehstatus & VS_AIRCRAFT_BROKEN) {
if (SPEED_LIMIT_BROKEN < speed_limit) hard_limit = false;
speed_limit = min(speed_limit, SPEED_LIMIT_BROKEN);
}
if (v->vcache.cached_max_speed < speed_limit) { if (v->vcache.cached_max_speed < speed_limit) {
if (v->cur_speed < speed_limit) hard_limit = false; if (v->cur_speed < speed_limit) hard_limit = false;
speed_limit = v->vcache.cached_max_speed; speed_limit = v->vcache.cached_max_speed;
@@ -654,9 +660,6 @@ static int UpdateAircraftSpeed(Aircraft *v, uint speed_limit = SPEED_LIMIT_NONE,
spd = min(v->cur_speed + (spd >> 8) + (v->subspeed < t), speed_limit); spd = min(v->cur_speed + (spd >> 8) + (v->subspeed < t), speed_limit);
/* adjust speed for broken vehicles */
if (v->vehstatus & VS_AIRCRAFT_BROKEN) spd = min(spd, SPEED_LIMIT_BROKEN);
/* updates statusbar only if speed have changed to save CPU time */ /* updates statusbar only if speed have changed to save CPU time */
if (spd != v->cur_speed) { if (spd != v->cur_speed) {
v->cur_speed = spd; v->cur_speed = spd;
@@ -728,7 +731,7 @@ void GetAircraftFlightLevelBounds(const Vehicle *v, int *min_level, int *max_lev
/** /**
* Gets the maximum 'flight level' for the holding pattern of the aircraft, * Gets the maximum 'flight level' for the holding pattern of the aircraft,
* in pixels 'z_pos' 0, depending on terrain below.. * in pixels 'z_pos' 0, depending on terrain below.
* *
* @param v The aircraft that may or may not need to decrease its altitude. * @param v The aircraft that may or may not need to decrease its altitude.
* @return Maximal aircraft holding altitude, while in normal flight, in pixels. * @return Maximal aircraft holding altitude, while in normal flight, in pixels.
@@ -1889,7 +1892,7 @@ static bool FreeTerminal(Aircraft *v, byte i, byte last_terminal)
/** /**
* Get the number of terminals at the airport. * Get the number of terminals at the airport.
* @param afc Airport description. * @param apc Airport description.
* @return Number of terminals. * @return Number of terminals.
*/ */
static uint GetNumTerminals(const AirportFTAClass *apc) static uint GetNumTerminals(const AirportFTAClass *apc)

View File

@@ -32,7 +32,6 @@ extern void ChangeVehicleViewWindow(VehicleID from_index, VehicleID to_index);
* Figure out if two engines got at least one type of cargo in common (refitting if needed) * Figure out if two engines got at least one type of cargo in common (refitting if needed)
* @param engine_a one of the EngineIDs * @param engine_a one of the EngineIDs
* @param engine_b the other EngineID * @param engine_b the other EngineID
* @param type the type of the engines
* @return true if they can both carry the same type of cargo (or at least one of them got no capacity at all) * @return true if they can both carry the same type of cargo (or at least one of them got no capacity at all)
*/ */
static bool EnginesHaveCargoInCommon(EngineID engine_a, EngineID engine_b) static bool EnginesHaveCargoInCommon(EngineID engine_a, EngineID engine_b)

View File

@@ -81,7 +81,7 @@ class ReplaceVehicleWindow : public Window {
EngineID sel_engine[2]; ///< Selected engine left and right. EngineID sel_engine[2]; ///< Selected engine left and right.
GUIEngineList engines[2]; ///< Left and right list of engines. GUIEngineList engines[2]; ///< Left and right list of engines.
bool replace_engines; ///< If \c true, engines are replaced, if \c false, wagons are replaced (only for trains). bool replace_engines; ///< If \c true, engines are replaced, if \c false, wagons are replaced (only for trains).
bool reset_sel_engine; ///< Also reset #sel_engine while updating left and/or right (#update_left and/or #update_right) and no valid engine selected. bool reset_sel_engine; ///< Also reset #sel_engine while updating left and/or right and no valid engine selected.
GroupID sel_group; ///< Group selected to replace. GroupID sel_group; ///< Group selected to replace.
int details_height; ///< Minimal needed height of the details panels (found so far). int details_height; ///< Minimal needed height of the details panels (found so far).
byte sort_criteria; ///< Criteria of sorting vehicles. byte sort_criteria; ///< Criteria of sorting vehicles.

View File

@@ -7,7 +7,7 @@
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>. * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
*/ */
/** @file 32bpp_sse4_anim.cpp Implementation of the SSE4 32 bpp blitter with animation support. */ /** @file 32bpp_anim_sse4.cpp Implementation of the SSE4 32 bpp blitter with animation support. */
#ifdef WITH_SSE #ifdef WITH_SSE

View File

@@ -7,7 +7,7 @@
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>. * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
*/ */
/** @file 32bpp_sse4_anim.hpp A SSE4 32 bpp blitter with animation support. */ /** @file 32bpp_anim_sse4.hpp A SSE4 32 bpp blitter with animation support. */
#ifndef BLITTER_32BPP_SSE4_ANIM_HPP #ifndef BLITTER_32BPP_SSE4_ANIM_HPP
#define BLITTER_32BPP_SSE4_ANIM_HPP #define BLITTER_32BPP_SSE4_ANIM_HPP

View File

@@ -7,10 +7,10 @@
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>. * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
*/ */
/** @file 32bpp_sse_type.hpp Types related to SSE 32 bpp blitter. */ /** @file 32bpp_sse_type.h Types related to SSE 32 bpp blitter. */
#ifndef BLITTER_32BPP_SSE_TYPE_HPP #ifndef BLITTER_32BPP_SSE_TYPE_H
#define BLITTER_32BPP_SSE_TYPE_HPP #define BLITTER_32BPP_SSE_TYPE_H
#ifdef WITH_SSE #ifdef WITH_SSE
@@ -55,4 +55,4 @@ typedef union ALIGN(16) um128i {
#define TRANSPARENT_NOM_BASE _mm_setr_epi16(256, 256, 256, 256, 256, 256, 256, 256) #define TRANSPARENT_NOM_BASE _mm_setr_epi16(256, 256, 256, 256, 256, 256, 256, 256)
#endif /* WITH_SSE */ #endif /* WITH_SSE */
#endif /* BLITTER_32BPP_SSE_TYPE_HPP */ #endif /* BLITTER_32BPP_SSE_TYPE_H */

View File

@@ -56,7 +56,7 @@ TileIndex GetSouthernBridgeEnd(TileIndex t)
/** /**
* Starting at one bridge end finds the other bridge end * Starting at one bridge end finds the other bridge end
* @param t the bridge ramp tile to find the other bridge ramp for * @param tile the bridge ramp tile to find the other bridge ramp for
*/ */
TileIndex GetOtherBridgeEnd(TileIndex tile) TileIndex GetOtherBridgeEnd(TileIndex tile)
{ {
@@ -66,7 +66,7 @@ TileIndex GetOtherBridgeEnd(TileIndex tile)
/** /**
* Get the height ('z') of a bridge. * Get the height ('z') of a bridge.
* @param tile the bridge ramp tile to get the bridge height from * @param t the bridge ramp tile to get the bridge height from
* @return the height of the bridge. * @return the height of the bridge.
*/ */
int GetBridgeHeight(TileIndex t) int GetBridgeHeight(TileIndex t)

View File

@@ -70,6 +70,11 @@ enum CargoType {
CT_INVALID = 0xFF, ///< Invalid cargo type. CT_INVALID = 0xFF, ///< Invalid cargo type.
}; };
/** Test whether cargo type is not CT_INVALID */
inline bool IsCargoTypeValid(CargoType t) { return t != CT_INVALID; }
/** Test whether cargo type is not CT_INVALID */
inline bool IsCargoIDValid(CargoID t) { return t != CT_INVALID; }
typedef uint64 CargoTypes; typedef uint64 CargoTypes;
static const CargoTypes ALL_CARGOTYPES = (CargoTypes)UINT64_MAX; static const CargoTypes ALL_CARGOTYPES = (CargoTypes)UINT64_MAX;

View File

@@ -602,7 +602,7 @@ uint VehicleCargoList::Reassign<VehicleCargoList::MTA_DELIVER, VehicleCargoList:
* Returns reserved cargo to the station and removes it from the cache. * Returns reserved cargo to the station and removes it from the cache.
* @param max_move Maximum amount of cargo to move. * @param max_move Maximum amount of cargo to move.
* @param dest Station the cargo is returned to. * @param dest Station the cargo is returned to.
* @param ID of next the station the cargo wants to go next. * @param next ID of the next station the cargo wants to go to.
* @return Amount of cargo actually returned. * @return Amount of cargo actually returned.
*/ */
uint VehicleCargoList::Return(uint max_move, StationCargoList *dest, StationID next) uint VehicleCargoList::Return(uint max_move, StationCargoList *dest, StationID next)
@@ -668,7 +668,7 @@ uint VehicleCargoList::Truncate(uint max_move)
* @param dest List to prepend the cargo to. * @param dest List to prepend the cargo to.
* @param avoid Station to exclude from routing and current next hop of packets to reroute. * @param avoid Station to exclude from routing and current next hop of packets to reroute.
* @param avoid2 Additional station to exclude from routing. * @param avoid2 Additional station to exclude from routing.
* @oaram ge GoodsEntry to get the routing info from. * @param ge GoodsEntry to get the routing info from.
*/ */
uint VehicleCargoList::Reroute(uint max_move, VehicleCargoList *dest, StationID avoid, StationID avoid2, const GoodsEntry *ge) uint VehicleCargoList::Reroute(uint max_move, VehicleCargoList *dest, StationID avoid, StationID avoid2, const GoodsEntry *ge)
{ {
@@ -859,7 +859,7 @@ uint StationCargoList::Load(uint max_move, VehicleCargoList *dest, TileIndex loa
* @param dest List to append the cargo to. * @param dest List to append the cargo to.
* @param avoid Station to exclude from routing and current next hop of packets to reroute. * @param avoid Station to exclude from routing and current next hop of packets to reroute.
* @param avoid2 Additional station to exclude from routing. * @param avoid2 Additional station to exclude from routing.
* @oaram ge GoodsEntry to get the routing info from. * @param ge GoodsEntry to get the routing info from.
*/ */
uint StationCargoList::Reroute(uint max_move, StationCargoList *dest, StationID avoid, StationID avoid2, const GoodsEntry *ge) uint StationCargoList::Reroute(uint max_move, StationCargoList *dest, StationID avoid, StationID avoid2, const GoodsEntry *ge)
{ {

View File

@@ -605,7 +605,6 @@ bool DoCommandP(TileIndex tile, uint32 p1, uint32 p2, uint32 cmd, CommandCallbac
/** /**
* Helper to deduplicate the code for returning. * Helper to deduplicate the code for returning.
* @param cmd the command cost to return. * @param cmd the command cost to return.
* @param clear whether to keep the storage changes or not.
*/ */
#define return_dcpi(cmd) { _docommand_recursive = 0; return cmd; } #define return_dcpi(cmd) { _docommand_recursive = 0; return cmd; }

View File

@@ -91,7 +91,7 @@ struct CompanyProperties {
*/ */
bool is_ai; bool is_ai;
Money yearly_expenses[3][EXPENSES_END]; ///< Expenses of the company for the last three years, in every #Expenses category. Money yearly_expenses[3][EXPENSES_END]; ///< Expenses of the company for the last three years, in every #ExpensesType category.
CompanyEconomyEntry cur_economy; ///< Economic data of the company of this quarter. CompanyEconomyEntry cur_economy; ///< Economic data of the company of this quarter.
CompanyEconomyEntry old_economy[MAX_HISTORY_QUARTERS]; ///< Economic data of the company of the last #MAX_HISTORY_QUARTERS quarters. CompanyEconomyEntry old_economy[MAX_HISTORY_QUARTERS]; ///< Economic data of the company of the last #MAX_HISTORY_QUARTERS quarters.
byte num_valid_stat_ent; ///< Number of valid statistical entries in #old_economy. byte num_valid_stat_ent; ///< Number of valid statistical entries in #old_economy.

View File

@@ -188,7 +188,7 @@ void InvalidateCompanyWindows(const Company *company)
/** /**
* Verify whether the company can pay the bill. * Verify whether the company can pay the bill.
* @param cost [inout] Money to pay, is changed to an error if the company does not have enough money. * @param[in,out] cost Money to pay, is changed to an error if the company does not have enough money.
* @return Function returns \c true if the company has enough money, else it returns \c false. * @return Function returns \c true if the company has enough money, else it returns \c false.
*/ */
bool CheckCompanyHasMoney(CommandCost &cost) bool CheckCompanyHasMoney(CommandCost &cost)

View File

@@ -268,10 +268,7 @@ static const NWidgetPart _nested_company_finances_widgets[] = {
EndContainer(), EndContainer(),
}; };
/** /** Window class displaying the company finances. */
* Window class displaying the company finances.
* @todo #money_width should be calculated dynamically.
*/
struct CompanyFinancesWindow : Window { struct CompanyFinancesWindow : Window {
static Money max_money; ///< The maximum amount of money a company has had this 'run' static Money max_money; ///< The maximum amount of money a company has had this 'run'
bool small; ///< Window is toggled to 'small'. bool small; ///< Window is toggled to 'small'.
@@ -1509,9 +1506,6 @@ static WindowDesc _select_company_manager_face_desc(
* Open the simple/advanced company manager face selection window * Open the simple/advanced company manager face selection window
* *
* @param parent the parent company window * @param parent the parent company window
* @param adv simple or advanced face selection window
* @param top previous top position of the window
* @param left previous left position of the window
*/ */
static void DoSelectCompanyManagerFace(Window *parent) static void DoSelectCompanyManagerFace(Window *parent)
{ {

View File

@@ -235,8 +235,8 @@ void IConsoleAddSorted(T **base, T *item_new)
/** /**
* Remove underscores from a string; the string will be modified! * Remove underscores from a string; the string will be modified!
* @param name The string to remove the underscores from. * @param[in,out] name String to remove the underscores from.
* @return #name. * @return \a name, with its contents modified.
*/ */
char *RemoveUnderscores(char *name) char *RemoveUnderscores(char *name)
{ {

View File

@@ -62,7 +62,7 @@ public:
/** /**
* (Re-)validate the file storage cache. Only makes a change if the storage was invalid, or if \a force_reload. * (Re-)validate the file storage cache. Only makes a change if the storage was invalid, or if \a force_reload.
* @param Always reload the file storage cache. * @param force_reload Always reload the file storage cache.
*/ */
void ValidateFileList(bool force_reload = false) void ValidateFileList(bool force_reload = false)
{ {
@@ -256,8 +256,8 @@ DEF_CONSOLE_CMD(ConResetTile)
/** /**
* Scroll to a tile on the map. * Scroll to a tile on the map.
* @param arg1 tile tile number or tile x coordinate. * param x tile number or tile x coordinate.
* @param arg2 optionally tile y coordinate. * param y optional y coordinate.
* @note When only one argument is given it is intepreted as the tile number. * @note When only one argument is given it is intepreted as the tile number.
* When two arguments are given, they are interpreted as the tile's x * When two arguments are given, they are interpreted as the tile's x
* and y coordinates. * and y coordinates.
@@ -304,7 +304,7 @@ DEF_CONSOLE_CMD(ConScrollToTile)
/** /**
* Save the map to a file. * Save the map to a file.
* @param filename the filename to save the map to. * param filename the filename to save the map to.
* @return True when help was displayed or the file attempted to be saved. * @return True when help was displayed or the file attempted to be saved.
*/ */
DEF_CONSOLE_CMD(ConSave) DEF_CONSOLE_CMD(ConSave)

View File

@@ -302,6 +302,7 @@ static inline bool HasAtMostOneBit(T value)
template <typename T> template <typename T>
static inline T ROL(const T x, const uint8 n) static inline T ROL(const T x, const uint8 n)
{ {
if (n == 0) return x;
return (T)(x << n | x >> (sizeof(x) * 8 - n)); return (T)(x << n | x >> (sizeof(x) * 8 - n));
} }
@@ -317,6 +318,7 @@ static inline T ROL(const T x, const uint8 n)
template <typename T> template <typename T>
static inline T ROR(const T x, const uint8 n) static inline T ROR(const T x, const uint8 n)
{ {
if (n == 0) return x;
return (T)(x >> n | x << (sizeof(x) * 8 - n)); return (T)(x >> n | x << (sizeof(x) * 8 - n));
} }

View File

@@ -159,7 +159,7 @@ public:
/** /**
* Erase a row, replacing it with the last one. * Erase a row, replacing it with the last one.
* @param x Position of the row. * @param y Position of the row.
*/ */
void EraseRow(uint y) void EraseRow(uint y)
{ {
@@ -174,7 +174,7 @@ public:
/** /**
* Remove columns from the matrix while preserving the order of other columns. * Remove columns from the matrix while preserving the order of other columns.
* @param x First column to remove. * @param y First column to remove.
* @param count Number of consecutive columns to remove. * @param count Number of consecutive columns to remove.
*/ */
void EraseRowPreservingOrder(uint y, uint count = 1) void EraseRowPreservingOrder(uint y, uint count = 1)
@@ -210,8 +210,8 @@ public:
/** /**
* Set the size to a specific width and height, preserving item positions * Set the size to a specific width and height, preserving item positions
* as far as possible in the process. * as far as possible in the process.
* @param width Target width. * @param new_width Target width.
* @param height Target height. * @param new_height Target height.
*/ */
inline void Resize(uint new_width, uint new_height) inline void Resize(uint new_width, uint new_height)
{ {
@@ -297,7 +297,7 @@ public:
/** /**
* Get column "number" (const) * Get column "number" (const)
* *
* @param X Position of the column. * @param x Position of the column.
* @return Column at "number". * @return Column at "number".
*/ */
inline const T *operator[](uint x) const inline const T *operator[](uint x) const
@@ -309,7 +309,7 @@ public:
/** /**
* Get column "number" (const) * Get column "number" (const)
* *
* @param X Position of the column. * @param x Position of the column.
* @return Column at "number". * @return Column at "number".
*/ */
inline T *operator[](uint x) inline T *operator[](uint x)

View File

@@ -217,22 +217,22 @@ enum Token {
TOKEN_LOCAL, ///< Read a local include TOKEN_LOCAL, ///< Read a local include
TOKEN_GLOBAL, ///< Read a global include TOKEN_GLOBAL, ///< Read a global include
TOKEN_IDENTIFIER, ///< Identifier within the data. TOKEN_IDENTIFIER, ///< Identifier within the data.
TOKEN_DEFINE, ///< (#)define in code TOKEN_DEFINE, ///< \c \#define in code
TOKEN_IF, ///< (#)if in code TOKEN_IF, ///< \c \#if in code
TOKEN_IFDEF, ///< (#)ifdef in code TOKEN_IFDEF, ///< \c \#ifdef in code
TOKEN_IFNDEF, ///< (#)ifndef in code TOKEN_IFNDEF, ///< \c \#ifndef in code
TOKEN_ELIF, ///< (#)elif in code TOKEN_ELIF, ///< \c \#elif in code
TOKEN_ELSE, ///< (#)else in code TOKEN_ELSE, ///< \c \#else in code
TOKEN_ENDIF, ///< (#)endif in code TOKEN_ENDIF, ///< \c \#endif in code
TOKEN_UNDEF, ///< (#)undef in code TOKEN_UNDEF, ///< \c \#undef in code
TOKEN_OR, ///< '||' within <tt>#if</tt> expression TOKEN_OR, ///< '||' within \c \#if expression
TOKEN_AND, ///< '&&' within <tt>#if</tt> expression TOKEN_AND, ///< '&&' within \c \#if expression
TOKEN_DEFINED, ///< 'defined' within <tt>#if</tt> expression TOKEN_DEFINED, ///< 'defined' within \c \#if expression
TOKEN_OPEN, ///< '(' within <tt>#if</tt> expression TOKEN_OPEN, ///< '(' within \c \#if expression
TOKEN_CLOSE, ///< ')' within <tt>#if</tt> expression TOKEN_CLOSE, ///< ')' within \c \#if expression
TOKEN_NOT, ///< '!' within <tt>#if</tt> expression TOKEN_NOT, ///< '!' within \c \#if expression
TOKEN_ZERO, ///< '0' within <tt>#if</tt> expression TOKEN_ZERO, ///< '0' within \c \#if expression
TOKEN_INCLUDE, ///< (#)include in code TOKEN_INCLUDE, ///< \c \#include in code
}; };
/** Mapping from a C-style keyword representation to a Token. */ /** Mapping from a C-style keyword representation to a Token. */
@@ -681,8 +681,8 @@ bool ExpressionOr(Lexer *lexer, StringSet *defines, bool verbose)
/** Enumerator to tell how long to ignore 'stuff'. */ /** Enumerator to tell how long to ignore 'stuff'. */
enum Ignore { enum Ignore {
NOT_IGNORE, ///< No ignoring. NOT_IGNORE, ///< No ignoring.
IGNORE_UNTIL_ELSE, ///< Ignore till a #else is reached. IGNORE_UNTIL_ELSE, ///< Ignore till a \c \#else is reached.
IGNORE_UNTIL_ENDIF, ///< Ignore till a #endif is reached. IGNORE_UNTIL_ENDIF, ///< Ignore till a \c \#endif is reached.
}; };
/** /**

View File

@@ -908,9 +908,16 @@ struct DepotWindow : Window {
*/ */
virtual bool OnVehicleSelect(const Vehicle *v) virtual bool OnVehicleSelect(const Vehicle *v)
{ {
if (DoCommandP(this->window_number, v->index, _ctrl_pressed ? 1 : 0, CMD_CLONE_VEHICLE | CMD_MSG(STR_ERROR_CAN_T_BUY_TRAIN + v->type), CcCloneVehicle)) { if (_ctrl_pressed) {
/* Share-clone, do not open new viewport, and keep tool active */
DoCommandP(this->window_number, v->index, 1, CMD_CLONE_VEHICLE | CMD_MSG(STR_ERROR_CAN_T_BUY_TRAIN + v->type), NULL);
} else {
/* Copy-clone, open viewport for new vehicle, and deselect the tool (assume player wants to changs things on new vehicle) */
if (DoCommandP(this->window_number, v->index, 0, CMD_CLONE_VEHICLE | CMD_MSG(STR_ERROR_CAN_T_BUY_TRAIN + v->type), CcCloneVehicle)) {
ResetObjectToPlace(); ResetObjectToPlace();
} }
}
return true; return true;
} }

View File

@@ -1062,6 +1062,7 @@ static uint DeliverGoodsToIndustry(const Station *st, CargoID cargo_type, uint n
uint amount = min(num_pieces, 0xFFFFU - ind->incoming_cargo_waiting[cargo_index]); uint amount = min(num_pieces, 0xFFFFU - ind->incoming_cargo_waiting[cargo_index]);
ind->incoming_cargo_waiting[cargo_index] += amount; ind->incoming_cargo_waiting[cargo_index] += amount;
ind->last_cargo_accepted_at[cargo_index] = _date;
num_pieces -= amount; num_pieces -= amount;
accepted += amount; accepted += amount;
} }
@@ -1138,7 +1139,6 @@ static void TriggerIndustryProduction(Industry *i)
uint16 callback = indspec->callback_mask; uint16 callback = indspec->callback_mask;
i->was_cargo_delivered = true; i->was_cargo_delivered = true;
i->last_cargo_accepted_at = _date;
if (HasBit(callback, CBM_IND_PRODUCTION_CARGO_ARRIVAL) || HasBit(callback, CBM_IND_PRODUCTION_256_TICKS)) { if (HasBit(callback, CBM_IND_PRODUCTION_CARGO_ARRIVAL) || HasBit(callback, CBM_IND_PRODUCTION_256_TICKS)) {
if (HasBit(callback, CBM_IND_PRODUCTION_CARGO_ARRIVAL)) { if (HasBit(callback, CBM_IND_PRODUCTION_CARGO_ARRIVAL)) {
@@ -1147,14 +1147,15 @@ static void TriggerIndustryProduction(Industry *i)
SetWindowDirty(WC_INDUSTRY_VIEW, i->index); SetWindowDirty(WC_INDUSTRY_VIEW, i->index);
} }
} else { } else {
for (uint cargo_index = 0; cargo_index < lengthof(i->incoming_cargo_waiting); cargo_index++) { for (uint ci_in = 0; ci_in < lengthof(i->incoming_cargo_waiting); ci_in++) {
uint cargo_waiting = i->incoming_cargo_waiting[cargo_index]; uint cargo_waiting = i->incoming_cargo_waiting[ci_in];
if (cargo_waiting == 0) continue; if (cargo_waiting == 0) continue;
i->produced_cargo_waiting[0] = min(i->produced_cargo_waiting[0] + (cargo_waiting * indspec->input_cargo_multiplier[cargo_index][0] / 256), 0xFFFF); for (uint ci_out = 0; ci_out < lengthof(i->produced_cargo_waiting); ci_out++) {
i->produced_cargo_waiting[1] = min(i->produced_cargo_waiting[1] + (cargo_waiting * indspec->input_cargo_multiplier[cargo_index][1] / 256), 0xFFFF); i->produced_cargo_waiting[ci_out] = min(i->produced_cargo_waiting[ci_out] + (cargo_waiting * indspec->input_cargo_multiplier[ci_in][ci_out] / 256), 0xFFFF);
}
i->incoming_cargo_waiting[cargo_index] = 0; i->incoming_cargo_waiting[ci_in] = 0;
} }
} }
@@ -1242,7 +1243,6 @@ Money CargoPayment::PayTransfer(const CargoPacket *cp, uint count)
/** /**
* Prepare the vehicle to be unloaded. * Prepare the vehicle to be unloaded.
* @param curr_station the station where the consist is at the moment
* @param front_v the vehicle to be unloaded * @param front_v the vehicle to be unloaded
*/ */
void PrepareUnload(Vehicle *front_v) void PrepareUnload(Vehicle *front_v)

View File

@@ -431,9 +431,9 @@ uint Engine::GetDisplayMaxTractiveEffort() const
/* Only trains and road vehicles have 'tractive effort'. */ /* Only trains and road vehicles have 'tractive effort'. */
switch (this->type) { switch (this->type) {
case VEH_TRAIN: case VEH_TRAIN:
return (10 * this->GetDisplayWeight() * GetEngineProperty(this->index, PROP_TRAIN_TRACTIVE_EFFORT, this->u.rail.tractive_effort)) / 256; return (GROUND_ACCELERATION * this->GetDisplayWeight() * GetEngineProperty(this->index, PROP_TRAIN_TRACTIVE_EFFORT, this->u.rail.tractive_effort)) / 256 / 1000;
case VEH_ROAD: case VEH_ROAD:
return (10 * this->GetDisplayWeight() * GetEngineProperty(this->index, PROP_ROADVEH_TRACTIVE_EFFORT, this->u.road.tractive_effort)) / 256; return (GROUND_ACCELERATION * this->GetDisplayWeight() * GetEngineProperty(this->index, PROP_ROADVEH_TRACTIVE_EFFORT, this->u.road.tractive_effort)) / 256 / 1000;
default: NOT_REACHED(); default: NOT_REACHED();
} }
@@ -573,7 +573,7 @@ static bool IsWagon(EngineID index)
} }
/** /**
* Update #reliability of engine \a e, (if needed) update the engine GUIs. * Update #Engine::reliability and (if needed) update the engine GUIs.
* @param e %Engine to update. * @param e %Engine to update.
*/ */
static void CalcEngineReliability(Engine *e) static void CalcEngineReliability(Engine *e)

View File

@@ -425,7 +425,7 @@ void ShowErrorMessage(StringID summary_msg, StringID detailed_msg, WarningLevel
/** /**
* Schedule a list of errors. * Schedule a list of errors.
* Note: This does not try to display the error now. This is useful if the window system is not yet running. * Note: This does not try to display the error now. This is useful if the window system is not yet running.
* @param data Error message datas; cleared afterwards * @param datas Error message datas; cleared afterwards
*/ */
void ScheduleErrorMessage(ErrorList &datas) void ScheduleErrorMessage(ErrorList &datas)
{ {

View File

@@ -347,7 +347,7 @@ char *FioGetFullPath(char *buf, const char *last, Searchpath sp, Subdirectory su
/** /**
* Find a path to the filename in one of the search directories. * Find a path to the filename in one of the search directories.
* @param buf [out] Destination buffer for the path. * @param[out] buf Destination buffer for the path.
* @param last End of the destination buffer. * @param last End of the destination buffer.
* @param subdir Subdirectory to try. * @param subdir Subdirectory to try.
* @param filename Filename to look for. * @param filename Filename to look for.
@@ -438,7 +438,7 @@ static FILE *FioFOpenFileSp(const char *filename, const char *mode, Searchpath s
/** /**
* Opens a file from inside a tar archive. * Opens a file from inside a tar archive.
* @param entry The entry to open. * @param entry The entry to open.
* @param filesize [out] If not \c NULL, size of the opened file. * @param[out] filesize If not \c NULL, size of the opened file.
* @return File handle of the opened file, or \c NULL if the file is not available. * @return File handle of the opened file, or \c NULL if the file is not available.
* @note The file is read from within the tar file, and may not return \c EOF after reading the whole file. * @note The file is read from within the tar file, and may not return \c EOF after reading the whole file.
*/ */
@@ -460,7 +460,6 @@ FILE *FioFOpenFileTar(TarFileListEntry *entry, size_t *filesize)
* Opens a OpenTTD file somewhere in a personal or global directory. * Opens a OpenTTD file somewhere in a personal or global directory.
* @param filename Name of the file to open. * @param filename Name of the file to open.
* @param subdir Subdirectory to open. * @param subdir Subdirectory to open.
* @param filename Name of the file to open.
* @return File handle of the opened file, or \c NULL if the file is not available. * @return File handle of the opened file, or \c NULL if the file is not available.
*/ */
FILE *FioFOpenFile(const char *filename, const char *mode, Subdirectory subdir, size_t *filesize) FILE *FioFOpenFile(const char *filename, const char *mode, Subdirectory subdir, size_t *filesize)
@@ -632,7 +631,7 @@ static void SimplifyFileName(char *name)
/** /**
* Perform the scanning of a particular subdirectory. * Perform the scanning of a particular subdirectory.
* @param subdir The subdirectory to scan. * @param sd The subdirectory to scan.
* @return The number of found tar files. * @return The number of found tar files.
*/ */
uint TarScanner::DoScan(Subdirectory sd) uint TarScanner::DoScan(Subdirectory sd)
@@ -1303,7 +1302,7 @@ void SanitizeFilename(char *filename)
/** /**
* Load a file into memory. * Load a file into memory.
* @param filename Name of the file to load. * @param filename Name of the file to load.
* @param lenp [out] Length of loaded data. * @param[out] lenp Length of loaded data.
* @param maxsize Maximum size to load. * @param maxsize Maximum size to load.
* @return Pointer to new memory containing the loaded data, or \c NULL if loading failed. * @return Pointer to new memory containing the loaded data, or \c NULL if loading failed.
* @note If \a maxsize less than the length of the file, loading fails. * @note If \a maxsize less than the length of the file, loading fails.

View File

@@ -201,7 +201,7 @@ static const TextColour _fios_colours[] = {
/** /**
* Sort the collected list save games prior to displaying it in the save/load gui. * Sort the collected list save games prior to displaying it in the save/load gui.
* @param [inout] file_list List of save game files found in the directory. * @param[in,out] file_list List of save game files found in the directory.
*/ */
static void SortSaveGameList(FileList &file_list) static void SortSaveGameList(FileList &file_list)
{ {

View File

@@ -142,7 +142,7 @@ struct StringListReader : StringReader {
/** /**
* Create the reader. * Create the reader.
* @param data The data to fill during reading. * @param data The data to fill during reading.
* @param file The file we are reading. * @param strings The language strings we are reading.
* @param master Are we reading the master file? * @param master Are we reading the master file?
* @param translation Are we reading a translation? * @param translation Are we reading a translation?
*/ */

View File

@@ -22,7 +22,7 @@ enum LandscapeGenerator {
LG_TERRAGENESIS = 1, ///< TerraGenesis Perlin landscape generator LG_TERRAGENESIS = 1, ///< TerraGenesis Perlin landscape generator
}; };
static const uint GENERATE_NEW_SEED = UINT_MAX; ///< Create a new random seed static const uint32 GENERATE_NEW_SEED = UINT32_MAX; ///< Create a new random seed
/** Modes for GenerateWorld */ /** Modes for GenerateWorld */
enum GenWorldMode { enum GenWorldMode {
@@ -97,7 +97,7 @@ void SetGeneratingWorldProgress(GenWorldProgress cls, uint total);
void IncreaseGeneratingWorldProgress(GenWorldProgress cls); void IncreaseGeneratingWorldProgress(GenWorldProgress cls);
void PrepareGenerateWorldProgress(); void PrepareGenerateWorldProgress();
void ShowGenerateWorldProgress(); void ShowGenerateWorldProgress();
void StartNewGameWithoutGUI(uint seed); void StartNewGameWithoutGUI(uint32 seed);
void ShowCreateScenario(); void ShowCreateScenario();
void StartScenarioEditor(); void StartScenarioEditor();

View File

@@ -870,7 +870,7 @@ void StartScenarioEditor()
* Start a normal game without the GUI. * Start a normal game without the GUI.
* @param seed The seed of the new game. * @param seed The seed of the new game.
*/ */
void StartNewGameWithoutGUI(uint seed) void StartNewGameWithoutGUI(uint32 seed)
{ {
/* GenerateWorld takes care of the possible GENERATE_NEW_SEED value in 'seed' */ /* GenerateWorld takes care of the possible GENERATE_NEW_SEED value in 'seed' */
_settings_newgame.game_creation.generation_seed = seed; _settings_newgame.game_creation.generation_seed = seed;

View File

@@ -703,8 +703,8 @@ Dimension GetStringBoundingBox(const char *str, FontSize start_fontsize)
} }
/** /**
* Get bounding box of a string. Uses parameters set by #DParam if needed. * Get bounding box of a string. Uses parameters set by #SetDParam if needed.
* Has the same restrictions as #GetStringBoundingBox(const char *str). * Has the same restrictions as #GetStringBoundingBox(const char *str, FontSize start_fontsize).
* @param strid String to examine. * @param strid String to examine.
* @return Width and height of the bounding box for the string in pixels. * @return Width and height of the bounding box for the string in pixels.
*/ */
@@ -1635,7 +1635,7 @@ void SetAnimatedMouseCursor(const AnimCursor *table)
* Update cursor position on mouse movement. * Update cursor position on mouse movement.
* @param x New X position. * @param x New X position.
* @param y New Y position. * @param y New Y position.
* @param queued True, if the OS queues mouse warps after pending mouse movement events. * @param queued_warp True, if the OS queues mouse warps after pending mouse movement events.
* False, if the warp applies instantaneous. * False, if the warp applies instantaneous.
* @return true, if the OS cursor position should be warped back to this->pos. * @return true, if the OS cursor position should be warped back to this->pos.
*/ */

View File

@@ -121,14 +121,14 @@ le_bool Font::getGlyphPoint(LEGlyphID glyph, le_int32 pointNumber, LEPoint &poin
* Wrapper for doing layouts with ICU. * Wrapper for doing layouts with ICU.
*/ */
class ICUParagraphLayout : public AutoDeleteSmallVector<ParagraphLayouter::Line *, 4>, public ParagraphLayouter { class ICUParagraphLayout : public AutoDeleteSmallVector<ParagraphLayouter::Line *, 4>, public ParagraphLayouter {
ParagraphLayout *p; ///< The actual ICU paragraph layout. icu::ParagraphLayout *p; ///< The actual ICU paragraph layout.
public: public:
/** Visual run contains data about the bit of text with the same font. */ /** Visual run contains data about the bit of text with the same font. */
class ICUVisualRun : public ParagraphLayouter::VisualRun { class ICUVisualRun : public ParagraphLayouter::VisualRun {
const ParagraphLayout::VisualRun *vr; ///< The actual ICU vr. const icu::ParagraphLayout::VisualRun *vr; ///< The actual ICU vr.
public: public:
ICUVisualRun(const ParagraphLayout::VisualRun *vr) : vr(vr) { } ICUVisualRun(const icu::ParagraphLayout::VisualRun *vr) : vr(vr) { }
const Font *GetFont() const { return (const Font*)vr->getFont(); } const Font *GetFont() const { return (const Font*)vr->getFont(); }
int GetGlyphCount() const { return vr->getGlyphCount(); } int GetGlyphCount() const { return vr->getGlyphCount(); }
@@ -140,10 +140,10 @@ public:
/** A single line worth of VisualRuns. */ /** A single line worth of VisualRuns. */
class ICULine : public AutoDeleteSmallVector<ICUVisualRun *, 4>, public ParagraphLayouter::Line { class ICULine : public AutoDeleteSmallVector<ICUVisualRun *, 4>, public ParagraphLayouter::Line {
ParagraphLayout::Line *l; ///< The actual ICU line. icu::ParagraphLayout::Line *l; ///< The actual ICU line.
public: public:
ICULine(ParagraphLayout::Line *l) : l(l) ICULine(icu::ParagraphLayout::Line *l) : l(l)
{ {
for (int i = 0; i < l->countRuns(); i++) { for (int i = 0; i < l->countRuns(); i++) {
*this->Append() = new ICUVisualRun(l->getVisualRun(i)); *this->Append() = new ICUVisualRun(l->getVisualRun(i));
@@ -163,13 +163,13 @@ public:
} }
}; };
ICUParagraphLayout(ParagraphLayout *p) : p(p) { } ICUParagraphLayout(icu::ParagraphLayout *p) : p(p) { }
~ICUParagraphLayout() { delete p; } ~ICUParagraphLayout() { delete p; }
void Reflow() { p->reflow(); } void Reflow() { p->reflow(); }
ParagraphLayouter::Line *NextLine(int max_width) ParagraphLayouter::Line *NextLine(int max_width)
{ {
ParagraphLayout::Line *l = p->nextLine(max_width); icu::ParagraphLayout::Line *l = p->nextLine(max_width);
return l == NULL ? NULL : new ICULine(l); return l == NULL ? NULL : new ICULine(l);
} }
}; };
@@ -196,7 +196,7 @@ public:
} }
/* Fill ICU's FontRuns with the right data. */ /* Fill ICU's FontRuns with the right data. */
FontRuns runs(fontMapping.Length()); icu::FontRuns runs(fontMapping.Length());
for (FontMap::iterator iter = fontMapping.Begin(); iter != fontMapping.End(); iter++) { for (FontMap::iterator iter = fontMapping.Begin(); iter != fontMapping.End(); iter++) {
runs.add(iter->second, iter->first); runs.add(iter->second, iter->first);
} }
@@ -204,7 +204,7 @@ public:
LEErrorCode status = LE_NO_ERROR; LEErrorCode status = LE_NO_ERROR;
/* ParagraphLayout does not copy "buff", so it must stay valid. /* ParagraphLayout does not copy "buff", so it must stay valid.
* "runs" is copied according to the ICU source, but the documentation does not specify anything, so this might break somewhen. */ * "runs" is copied according to the ICU source, but the documentation does not specify anything, so this might break somewhen. */
ParagraphLayout *p = new ParagraphLayout(buff, length, &runs, NULL, NULL, NULL, _current_text_dir == TD_RTL ? UBIDI_DEFAULT_RTL : UBIDI_DEFAULT_LTR, false, status); icu::ParagraphLayout *p = new icu::ParagraphLayout(buff, length, &runs, NULL, NULL, NULL, _current_text_dir == TD_RTL ? UBIDI_DEFAULT_RTL : UBIDI_DEFAULT_LTR, false, status);
if (status != LE_NO_ERROR) { if (status != LE_NO_ERROR) {
delete p; delete p;
return NULL; return NULL;
@@ -498,11 +498,6 @@ const ParagraphLayouter::Line *FallbackParagraphLayout::NextLine(int max_width)
return l; return l;
} }
const WChar *begin = this->buffer;
const WChar *last_space = NULL;
const WChar *last_char = begin;
int width = 0;
int offset = this->buffer - this->buffer_begin; int offset = this->buffer - this->buffer_begin;
FontMap::iterator iter = this->runs.Begin(); FontMap::iterator iter = this->runs.Begin();
while (iter->first <= offset) { while (iter->first <= offset) {
@@ -513,6 +508,10 @@ const ParagraphLayouter::Line *FallbackParagraphLayout::NextLine(int max_width)
const FontCache *fc = iter->second->fc; const FontCache *fc = iter->second->fc;
const WChar *next_run = this->buffer_begin + iter->first; const WChar *next_run = this->buffer_begin + iter->first;
const WChar *begin = this->buffer;
const WChar *last_space = NULL;
const WChar *last_char;
int width = 0;
for (;;) { for (;;) {
WChar c = *this->buffer; WChar c = *this->buffer;
last_char = this->buffer; last_char = this->buffer;

View File

@@ -22,7 +22,7 @@
#ifdef WITH_ICU_LAYOUT #ifdef WITH_ICU_LAYOUT
#include "layout/ParagraphLayout.h" #include "layout/ParagraphLayout.h"
#define ICU_FONTINSTANCE : public LEFontInstance #define ICU_FONTINSTANCE : public icu::LEFontInstance
#else /* WITH_ICU_LAYOUT */ #else /* WITH_ICU_LAYOUT */
#define ICU_FONTINSTANCE #define ICU_FONTINSTANCE
#endif /* WITH_ICU_LAYOUT */ #endif /* WITH_ICU_LAYOUT */

View File

@@ -189,7 +189,7 @@ union Colour {
/** /**
* Create a new colour. * Create a new colour.
* @param The colour in the correct packed format. * @param data The colour in the correct packed format.
*/ */
Colour(uint data = 0) : data(data) Colour(uint data = 0) : data(data)
{ {

View File

@@ -80,7 +80,7 @@ static uint LoadGrfFile(const char *filename, uint load_index, int file_index)
/** /**
* Load an old fashioned GRF file to replace already loaded sprites. * Load an old fashioned GRF file to replace already loaded sprites.
* @param filename The name of the file to open. * @param filename The name of the file to open.
* @param index_tlb The offsets of each of the sprites. * @param index_tbl The offsets of each of the sprites.
* @param file_index The Fio offset to load the file in. * @param file_index The Fio offset to load the file in.
* @return The number of loaded sprites. * @return The number of loaded sprites.
*/ */

View File

@@ -101,7 +101,7 @@ struct GoalListWindow : public Window {
/** /**
* Handle clicking at a goal. * Handle clicking at a goal.
* @param s @Goal clicked at. * @param s #Goal clicked at.
*/ */
void HandleClick(const Goal *s) void HandleClick(const Goal *s)
{ {
@@ -193,7 +193,7 @@ struct GoalListWindow : public Window {
/** /**
* Draws either the global goals or the company goal section. * Draws either the global goals or the company goal section.
* This is a helper method for #DrawWidget. * This is a helper method for #DrawWidget.
* @param pos [inout] Vertical line number to draw. * @param[in,out] pos Vertical line number to draw.
* @param cap Number of lines to draw in the window. * @param cap Number of lines to draw in the window.
* @param x Left edge of the text line to draw. * @param x Left edge of the text line to draw.
* @param y Vertical position of the top edge of the window. * @param y Vertical position of the top edge of the window.
@@ -250,8 +250,8 @@ struct GoalListWindow : public Window {
/** /**
* Draws a given column of the goal list. * Draws a given column of the goal list.
* @param column Which column to draw. * @param column Which column to draw.
* @wid Pointer to the goal list widget. * @param wid Pointer to the goal list widget.
* @progress_col_width Width of the progress column. * @param progress_col_width Width of the progress column.
* @return max width of drawn text * @return max width of drawn text
*/ */
void DrawListColumn(GoalColumn column, NWidgetBase *wid, uint progress_col_width) const void DrawListColumn(GoalColumn column, NWidgetBase *wid, uint progress_col_width) const

View File

@@ -58,7 +58,7 @@ void GroundVehicle<T, Type>::PowerChanged()
this->gcache.cached_air_drag = air_drag + 3 * air_drag * number_of_parts / 20; this->gcache.cached_air_drag = air_drag + 3 * air_drag * number_of_parts / 20;
max_te *= 9800; // Tractive effort in (tonnes * 1000 * 9.8 =) N. max_te *= GROUND_ACCELERATION; // Tractive effort in (tonnes * 1000 * 9.8 =) N.
max_te /= 256; // Tractive effort is a [0-255] coefficient. max_te /= 256; // Tractive effort is a [0-255] coefficient.
if (this->gcache.cached_power != total_power || this->gcache.cached_max_te != max_te) { if (this->gcache.cached_power != total_power || this->gcache.cached_max_te != max_te) {
/* Stop the vehicle if it has no power. */ /* Stop the vehicle if it has no power. */

View File

@@ -98,7 +98,7 @@ void GroupStatistics::Clear()
} }
/** /**
* Update all caches after loading a game, changing NewGRF etc.. * Update all caches after loading a game, changing NewGRF, etc.
*/ */
/* static */ void GroupStatistics::UpdateAfterLoad() /* static */ void GroupStatistics::UpdateAfterLoad()
{ {

View File

@@ -977,11 +977,11 @@ static inline VehicleGroupWindow *FindVehicleGroupWindow(VehicleType vt, Owner o
} }
/** /**
* Opens a 'Rename group' window for newly created group * Opens a 'Rename group' window for newly created group.
* @param success did command succeed? * @param result Did command succeed?
* @param tile unused * @param tile Unused.
* @param p1 vehicle type * @param p1 Vehicle type.
* @param p2 unused * @param p2 Unused.
* @see CmdCreateGroup * @see CmdCreateGroup
*/ */
void CcCreateGroup(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2) void CcCreateGroup(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2)
@@ -995,7 +995,7 @@ void CcCreateGroup(const CommandCost &result, TileIndex tile, uint32 p1, uint32
/** /**
* Open rename window after adding a vehicle to a new group via drag and drop. * Open rename window after adding a vehicle to a new group via drag and drop.
* @param success Did command succeed? * @param result Did command succeed?
* @param tile Unused. * @param tile Unused.
* @param p1 Unused. * @param p1 Unused.
* @param p2 Bit 0-19: Vehicle ID. * @param p2 Bit 0-19: Vehicle ID.

View File

@@ -449,7 +449,7 @@ void FixSlopes()
* @param filename Name of the file to load. * @param filename Name of the file to load.
* @param[out] x Length of the image. * @param[out] x Length of the image.
* @param[out] y Height of the image. * @param[out] y Height of the image.
* @param [inout] map If not \c NULL, destination to store the loaded block of image data. * @param[in,out] map If not \c NULL, destination to store the loaded block of image data.
* @return Whether loading was successful. * @return Whether loading was successful.
*/ */
static bool ReadHeightMap(DetailedFileType dft, const char *filename, uint *x, uint *y, byte **map) static bool ReadHeightMap(DetailedFileType dft, const char *filename, uint *x, uint *y, byte **map)

View File

@@ -41,6 +41,7 @@ static const KeycodeNames _keycode_to_name[] = {
{"GLOBAL", WKC_GLOBAL_HOTKEY}, {"GLOBAL", WKC_GLOBAL_HOTKEY},
{"ESC", WKC_ESC}, {"ESC", WKC_ESC},
{"DEL", WKC_DELETE}, {"DEL", WKC_DELETE},
{"BACKSPACE", WKC_BACKSPACE},
{"RETURN", WKC_RETURN}, {"RETURN", WKC_RETURN},
{"BACKQUOTE", WKC_BACKQUOTE}, {"BACKQUOTE", WKC_BACKQUOTE},
{"F1", WKC_F1}, {"F1", WKC_F1},

View File

@@ -12,9 +12,11 @@
#ifndef INDUSTRY_H #ifndef INDUSTRY_H
#define INDUSTRY_H #define INDUSTRY_H
#include <algorithm>
#include "newgrf_storage.h" #include "newgrf_storage.h"
#include "subsidy_type.h" #include "subsidy_type.h"
#include "industry_map.h" #include "industry_map.h"
#include "industrytype.h"
#include "tilearea_type.h" #include "tilearea_type.h"
@@ -39,17 +41,17 @@ enum ProductionLevels {
struct Industry : IndustryPool::PoolItem<&_industry_pool> { struct Industry : IndustryPool::PoolItem<&_industry_pool> {
TileArea location; ///< Location of the industry TileArea location; ///< Location of the industry
Town *town; ///< Nearest town Town *town; ///< Nearest town
CargoID produced_cargo[2]; ///< 2 production cargo slots CargoID produced_cargo[INDUSTRY_NUM_OUTPUTS]; ///< 16 production cargo slots
uint16 produced_cargo_waiting[2]; ///< amount of cargo produced per cargo uint16 produced_cargo_waiting[INDUSTRY_NUM_OUTPUTS]; ///< amount of cargo produced per cargo
uint16 incoming_cargo_waiting[3]; ///< incoming cargo waiting to be processed uint16 incoming_cargo_waiting[INDUSTRY_NUM_INPUTS]; ///< incoming cargo waiting to be processed
byte production_rate[2]; ///< production rate for each cargo byte production_rate[INDUSTRY_NUM_OUTPUTS]; ///< production rate for each cargo
byte prod_level; ///< general production level byte prod_level; ///< general production level
CargoID accepts_cargo[3]; ///< 3 input cargo slots CargoID accepts_cargo[INDUSTRY_NUM_INPUTS]; ///< 16 input cargo slots
uint16 this_month_production[2]; ///< stats of this month's production per cargo uint16 this_month_production[INDUSTRY_NUM_OUTPUTS]; ///< stats of this month's production per cargo
uint16 this_month_transported[2]; ///< stats of this month's transport per cargo uint16 this_month_transported[INDUSTRY_NUM_OUTPUTS]; ///< stats of this month's transport per cargo
byte last_month_pct_transported[2]; ///< percentage transported per cargo in the last full month byte last_month_pct_transported[INDUSTRY_NUM_OUTPUTS]; ///< percentage transported per cargo in the last full month
uint16 last_month_production[2]; ///< total units produced per cargo in the last full month uint16 last_month_production[INDUSTRY_NUM_OUTPUTS]; ///< total units produced per cargo in the last full month
uint16 last_month_transported[2]; ///< total units transported per cargo in the last full month uint16 last_month_transported[INDUSTRY_NUM_OUTPUTS]; ///< total units transported per cargo in the last full month
uint16 counter; ///< used for animation and/or production (if available cargo) uint16 counter; ///< used for animation and/or production (if available cargo)
IndustryType type; ///< type of industry. IndustryType type; ///< type of industry.
@@ -63,7 +65,7 @@ struct Industry : IndustryPool::PoolItem<&_industry_pool> {
OwnerByte founder; ///< Founder of the industry OwnerByte founder; ///< Founder of the industry
Date construction_date; ///< Date of the construction of the industry Date construction_date; ///< Date of the construction of the industry
uint8 construction_type; ///< Way the industry was constructed (@see IndustryConstructionType) uint8 construction_type; ///< Way the industry was constructed (@see IndustryConstructionType)
Date last_cargo_accepted_at; ///< Last day cargo was accepted by this industry Date last_cargo_accepted_at[INDUSTRY_NUM_INPUTS]; ///< Last day each cargo type was accepted by this industry
byte selected_layout; ///< Which tile layout was used when creating the industry byte selected_layout; ///< Which tile layout was used when creating the industry
uint16 random; ///< Random value used for randomisation of all kinds of things uint16 random; ///< Random value used for randomisation of all kinds of things
@@ -85,6 +87,22 @@ struct Industry : IndustryPool::PoolItem<&_industry_pool> {
return IsTileType(tile, MP_INDUSTRY) && GetIndustryIndex(tile) == this->index; return IsTileType(tile, MP_INDUSTRY) && GetIndustryIndex(tile) == this->index;
} }
inline int GetCargoProducedIndex(CargoID cargo) const
{
if (cargo == CT_INVALID) return -1;
const CargoID *pos = std::find(this->produced_cargo, endof(this->produced_cargo), cargo);
if (pos == endof(this->produced_cargo)) return -1;
return pos - this->produced_cargo;
}
inline int GetCargoAcceptedIndex(CargoID cargo) const
{
if (cargo == CT_INVALID) return -1;
const CargoID *pos = std::find(this->accepts_cargo, endof(this->accepts_cargo), cargo);
if (pos == endof(this->accepts_cargo)) return -1;
return pos - this->accepts_cargo;
}
/** /**
* Get the industry of the given tile * Get the industry of the given tile
* @param tile the tile to get the industry from * @param tile the tile to get the industry from

View File

@@ -394,35 +394,49 @@ static void AddAcceptedCargo_Industry(TileIndex tile, CargoArray &acceptance, Ca
{ {
IndustryGfx gfx = GetIndustryGfx(tile); IndustryGfx gfx = GetIndustryGfx(tile);
const IndustryTileSpec *itspec = GetIndustryTileSpec(gfx); const IndustryTileSpec *itspec = GetIndustryTileSpec(gfx);
const Industry *ind = Industry::GetByTile(tile);
/* When we have to use a callback, we put our data in the next two variables */ /* Starting point for acceptance */
CargoID raw_accepts_cargo[lengthof(itspec->accepts_cargo)]; CargoID accepts_cargo[lengthof(itspec->accepts_cargo)];
uint8 raw_cargo_acceptance[lengthof(itspec->acceptance)]; int8 cargo_acceptance[lengthof(itspec->acceptance)];
MemCpyT(accepts_cargo, itspec->accepts_cargo, lengthof(accepts_cargo));
MemCpyT(cargo_acceptance, itspec->acceptance, lengthof(cargo_acceptance));
/* And then these will always point to a same sized array with the required data */ if (itspec->special_flags & INDTILE_SPECIAL_ACCEPTS_ALL_CARGO) {
const CargoID *accepts_cargo = itspec->accepts_cargo; /* Copy all accepted cargoes from industry itself */
const uint8 *cargo_acceptance = itspec->acceptance; for (uint i = 0; i < lengthof(ind->accepts_cargo); i++) {
CargoID *pos = std::find(accepts_cargo, endof(accepts_cargo), ind->accepts_cargo[i]);
if (pos == endof(accepts_cargo)) {
/* Not found, insert */
pos = std::find(accepts_cargo, endof(accepts_cargo), CT_INVALID);
if (pos == endof(accepts_cargo)) continue; // nowhere to place, give up on this one
*pos = ind->accepts_cargo[i];
}
cargo_acceptance[pos - accepts_cargo] += 8;
}
}
if (HasBit(itspec->callback_mask, CBM_INDT_ACCEPT_CARGO)) { if (HasBit(itspec->callback_mask, CBM_INDT_ACCEPT_CARGO)) {
/* Try callback for accepts list, if success override all existing accepts */
uint16 res = GetIndustryTileCallback(CBID_INDTILE_ACCEPT_CARGO, 0, 0, gfx, Industry::GetByTile(tile), tile); uint16 res = GetIndustryTileCallback(CBID_INDTILE_ACCEPT_CARGO, 0, 0, gfx, Industry::GetByTile(tile), tile);
if (res != CALLBACK_FAILED) { if (res != CALLBACK_FAILED) {
accepts_cargo = raw_accepts_cargo; MemSetT(accepts_cargo, CT_INVALID, lengthof(accepts_cargo));
for (uint i = 0; i < lengthof(itspec->accepts_cargo); i++) raw_accepts_cargo[i] = GetCargoTranslation(GB(res, i * 5, 5), itspec->grf_prop.grffile); for (uint i = 0; i < 3; i++) accepts_cargo[i] = GetCargoTranslation(GB(res, i * 5, 5), itspec->grf_prop.grffile);
} }
} }
if (HasBit(itspec->callback_mask, CBM_INDT_CARGO_ACCEPTANCE)) { if (HasBit(itspec->callback_mask, CBM_INDT_CARGO_ACCEPTANCE)) {
/* Try callback for acceptance list, if success override all existing acceptance */
uint16 res = GetIndustryTileCallback(CBID_INDTILE_CARGO_ACCEPTANCE, 0, 0, gfx, Industry::GetByTile(tile), tile); uint16 res = GetIndustryTileCallback(CBID_INDTILE_CARGO_ACCEPTANCE, 0, 0, gfx, Industry::GetByTile(tile), tile);
if (res != CALLBACK_FAILED) { if (res != CALLBACK_FAILED) {
cargo_acceptance = raw_cargo_acceptance; MemSetT(cargo_acceptance, 0, lengthof(cargo_acceptance));
for (uint i = 0; i < lengthof(itspec->accepts_cargo); i++) raw_cargo_acceptance[i] = GB(res, i * 4, 4); for (uint i = 0; i < 3; i++) cargo_acceptance[i] = GB(res, i * 4, 4);
} }
} }
const Industry *ind = Industry::GetByTile(tile);
for (byte i = 0; i < lengthof(itspec->accepts_cargo); i++) { for (byte i = 0; i < lengthof(itspec->accepts_cargo); i++) {
CargoID a = accepts_cargo[i]; CargoID a = accepts_cargo[i];
if (a == CT_INVALID || cargo_acceptance[i] == 0) continue; // work only with valid cargoes if (a == CT_INVALID || cargo_acceptance[i] <= 0) continue; // work only with valid cargoes
/* Add accepted cargo */ /* Add accepted cargo */
acceptance[a] += cargo_acceptance[i]; acceptance[a] += cargo_acceptance[i];
@@ -1118,8 +1132,9 @@ static void ProduceIndustryGoods(Industry *i)
if (HasBit(indsp->callback_mask, CBM_IND_PRODUCTION_256_TICKS)) IndustryProductionCallback(i, 1); if (HasBit(indsp->callback_mask, CBM_IND_PRODUCTION_256_TICKS)) IndustryProductionCallback(i, 1);
IndustryBehaviour indbehav = indsp->behaviour; IndustryBehaviour indbehav = indsp->behaviour;
i->produced_cargo_waiting[0] = min(0xffff, i->produced_cargo_waiting[0] + i->production_rate[0]); for (size_t j = 0; j < lengthof(i->produced_cargo_waiting); j++) {
i->produced_cargo_waiting[1] = min(0xffff, i->produced_cargo_waiting[1] + i->production_rate[1]); i->produced_cargo_waiting[j] = min(0xffff, i->produced_cargo_waiting[j] + i->production_rate[j]);
}
if ((indbehav & INDUSTRYBEH_PLANT_FIELDS) != 0) { if ((indbehav & INDUSTRYBEH_PLANT_FIELDS) != 0) {
uint16 cb_res = CALLBACK_FAILED; uint16 cb_res = CALLBACK_FAILED;
@@ -1323,7 +1338,7 @@ static CheckNewIndustryProc * const _check_new_industry_procs[CHECK_END] = {
* Find a town for the industry, while checking for multiple industries in the same town. * Find a town for the industry, while checking for multiple industries in the same town.
* @param tile Position of the industry to build. * @param tile Position of the industry to build.
* @param type Industry type. * @param type Industry type.
* @param [out] town Pointer to return town for the new industry, \c NULL is written if no good town can be found. * @param[out] t Pointer to return town for the new industry, \c NULL is written if no good town can be found.
* @return Succeeded or failed command. * @return Succeeded or failed command.
* *
* @pre \c *t != NULL * @pre \c *t != NULL
@@ -1648,18 +1663,23 @@ static void DoCreateNewIndustry(Industry *i, TileIndex tile, IndustryType type,
i->type = type; i->type = type;
Industry::IncIndustryTypeCount(type); Industry::IncIndustryTypeCount(type);
i->produced_cargo[0] = indspec->produced_cargo[0]; MemCpyT(i->produced_cargo, indspec->produced_cargo, lengthof(i->produced_cargo));
i->produced_cargo[1] = indspec->produced_cargo[1]; MemCpyT(i->production_rate, indspec->production_rate, lengthof(i->production_rate));
i->accepts_cargo[0] = indspec->accepts_cargo[0]; MemCpyT(i->accepts_cargo, indspec->accepts_cargo, lengthof(i->accepts_cargo));
i->accepts_cargo[1] = indspec->accepts_cargo[1];
i->accepts_cargo[2] = indspec->accepts_cargo[2]; MemSetT(i->produced_cargo_waiting, 0, lengthof(i->produced_cargo_waiting));
i->production_rate[0] = indspec->production_rate[0]; MemSetT(i->this_month_production, 0, lengthof(i->this_month_production));
i->production_rate[1] = indspec->production_rate[1]; MemSetT(i->this_month_transported, 0, lengthof(i->this_month_transported));
MemSetT(i->last_month_pct_transported, 0, lengthof(i->last_month_pct_transported));
MemSetT(i->last_month_transported, 0, lengthof(i->last_month_transported));
MemSetT(i->incoming_cargo_waiting, 0, lengthof(i->incoming_cargo_waiting));
MemSetT(i->last_cargo_accepted_at, 0, lengthof(i->last_cargo_accepted_at));
/* don't use smooth economy for industries using production related callbacks */ /* don't use smooth economy for industries using production related callbacks */
if (indspec->UsesSmoothEconomy()) { if (indspec->UsesSmoothEconomy()) {
i->production_rate[0] = min((RandomRange(256) + 128) * i->production_rate[0] >> 8, 255); for (size_t ci = 0; ci < lengthof(i->production_rate); ci++) {
i->production_rate[1] = min((RandomRange(256) + 128) * i->production_rate[1] >> 8, 255); i->production_rate[ci] = min((RandomRange(256) + 128) * i->production_rate[ci] >> 8, 255);
}
} }
i->town = t; i->town = t;
@@ -1669,19 +1689,6 @@ static void DoCreateNewIndustry(Industry *i, TileIndex tile, IndustryType type,
i->random_colour = GB(r, 0, 4); i->random_colour = GB(r, 0, 4);
i->counter = GB(r, 4, 12); i->counter = GB(r, 4, 12);
i->random = initial_random_bits; i->random = initial_random_bits;
i->produced_cargo_waiting[0] = 0;
i->produced_cargo_waiting[1] = 0;
i->incoming_cargo_waiting[0] = 0;
i->incoming_cargo_waiting[1] = 0;
i->incoming_cargo_waiting[2] = 0;
i->this_month_production[0] = 0;
i->this_month_production[1] = 0;
i->this_month_transported[0] = 0;
i->this_month_transported[1] = 0;
i->last_month_pct_transported[0] = 0;
i->last_month_pct_transported[1] = 0;
i->last_month_transported[0] = 0;
i->last_month_transported[1] = 0;
i->was_cargo_delivered = false; i->was_cargo_delivered = false;
i->last_prod_year = _cur_year; i->last_prod_year = _cur_year;
i->founder = founder; i->founder = founder;
@@ -1712,10 +1719,9 @@ static void DoCreateNewIndustry(Industry *i, TileIndex tile, IndustryType type,
} }
if (_generating_world) { if (_generating_world) {
i->last_month_production[0] = i->production_rate[0] * 8; for (size_t ci = 0; ci < lengthof(i->last_month_production); ci++) {
i->last_month_production[1] = i->production_rate[1] * 8; i->last_month_production[ci] = i->production_rate[ci] * 8;
} else { }
i->last_month_production[0] = i->last_month_production[1] = 0;
} }
if (HasBit(indspec->callback_mask, CBM_IND_DECIDE_COLOUR)) { if (HasBit(indspec->callback_mask, CBM_IND_DECIDE_COLOUR)) {
@@ -1727,28 +1733,56 @@ static void DoCreateNewIndustry(Industry *i, TileIndex tile, IndustryType type,
} }
if (HasBit(indspec->callback_mask, CBM_IND_INPUT_CARGO_TYPES)) { if (HasBit(indspec->callback_mask, CBM_IND_INPUT_CARGO_TYPES)) {
/* Clear all input cargo types */
for (uint j = 0; j < lengthof(i->accepts_cargo); j++) i->accepts_cargo[j] = CT_INVALID; for (uint j = 0; j < lengthof(i->accepts_cargo); j++) i->accepts_cargo[j] = CT_INVALID;
for (uint j = 0; j < lengthof(i->accepts_cargo); j++) { /* Query actual types */
uint maxcargoes = (indspec->behaviour & INDUSTRYBEH_CARGOTYPES_UNLIMITED) ? lengthof(i->accepts_cargo) : 3;
for (uint j = 0; j < maxcargoes; j++) {
uint16 res = GetIndustryCallback(CBID_INDUSTRY_INPUT_CARGO_TYPES, j, 0, i, type, INVALID_TILE); uint16 res = GetIndustryCallback(CBID_INDUSTRY_INPUT_CARGO_TYPES, j, 0, i, type, INVALID_TILE);
if (res == CALLBACK_FAILED || GB(res, 0, 8) == CT_INVALID) break; if (res == CALLBACK_FAILED || GB(res, 0, 8) == CT_INVALID) break;
if (indspec->grf_prop.grffile->grf_version >= 8 && res >= 0x100) { if (indspec->grf_prop.grffile->grf_version >= 8 && res >= 0x100) {
ErrorUnknownCallbackResult(indspec->grf_prop.grffile->grfid, CBID_INDUSTRY_INPUT_CARGO_TYPES, res); ErrorUnknownCallbackResult(indspec->grf_prop.grffile->grfid, CBID_INDUSTRY_INPUT_CARGO_TYPES, res);
break; break;
} }
i->accepts_cargo[j] = GetCargoTranslation(GB(res, 0, 8), indspec->grf_prop.grffile); CargoID cargo = GetCargoTranslation(GB(res, 0, 8), indspec->grf_prop.grffile);
if (std::find(indspec->accepts_cargo, endof(indspec->accepts_cargo), cargo) == endof(indspec->accepts_cargo)) {
/* Cargo not in spec, error in NewGRF */
ErrorUnknownCallbackResult(indspec->grf_prop.grffile->grfid, CBID_INDUSTRY_INPUT_CARGO_TYPES, res);
break;
}
if (std::find(i->accepts_cargo, i->accepts_cargo + j, cargo) != i->accepts_cargo + j) {
/* Duplicate cargo */
ErrorUnknownCallbackResult(indspec->grf_prop.grffile->grfid, CBID_INDUSTRY_INPUT_CARGO_TYPES, res);
break;
}
i->accepts_cargo[j] = cargo;
} }
} }
if (HasBit(indspec->callback_mask, CBM_IND_OUTPUT_CARGO_TYPES)) { if (HasBit(indspec->callback_mask, CBM_IND_OUTPUT_CARGO_TYPES)) {
/* Clear all output cargo types */
for (uint j = 0; j < lengthof(i->produced_cargo); j++) i->produced_cargo[j] = CT_INVALID; for (uint j = 0; j < lengthof(i->produced_cargo); j++) i->produced_cargo[j] = CT_INVALID;
for (uint j = 0; j < lengthof(i->produced_cargo); j++) { /* Query actual types */
uint maxcargoes = (indspec->behaviour & INDUSTRYBEH_CARGOTYPES_UNLIMITED) ? lengthof(i->produced_cargo) : 2;
for (uint j = 0; j < maxcargoes; j++) {
uint16 res = GetIndustryCallback(CBID_INDUSTRY_OUTPUT_CARGO_TYPES, j, 0, i, type, INVALID_TILE); uint16 res = GetIndustryCallback(CBID_INDUSTRY_OUTPUT_CARGO_TYPES, j, 0, i, type, INVALID_TILE);
if (res == CALLBACK_FAILED || GB(res, 0, 8) == CT_INVALID) break; if (res == CALLBACK_FAILED || GB(res, 0, 8) == CT_INVALID) break;
if (indspec->grf_prop.grffile->grf_version >= 8 && res >= 0x100) { if (indspec->grf_prop.grffile->grf_version >= 8 && res >= 0x100) {
ErrorUnknownCallbackResult(indspec->grf_prop.grffile->grfid, CBID_INDUSTRY_OUTPUT_CARGO_TYPES, res); ErrorUnknownCallbackResult(indspec->grf_prop.grffile->grfid, CBID_INDUSTRY_OUTPUT_CARGO_TYPES, res);
break; break;
} }
i->produced_cargo[j] = GetCargoTranslation(GB(res, 0, 8), indspec->grf_prop.grffile); CargoID cargo = GetCargoTranslation(GB(res, 0, 8), indspec->grf_prop.grffile);
if (std::find(indspec->produced_cargo, endof(indspec->produced_cargo), cargo) == endof(indspec->produced_cargo)) {
/* Cargo not in spec, error in NewGRF */
ErrorUnknownCallbackResult(indspec->grf_prop.grffile->grfid, CBID_INDUSTRY_OUTPUT_CARGO_TYPES, res);
break;
}
if (std::find(i->produced_cargo, i->produced_cargo + j, cargo) != i->produced_cargo + j) {
/* Duplicate cargo */
ErrorUnknownCallbackResult(indspec->grf_prop.grffile->grfid, CBID_INDUSTRY_OUTPUT_CARGO_TYPES, res);
break;
}
i->produced_cargo[j] = cargo;
} }
} }
@@ -1793,8 +1827,8 @@ static void DoCreateNewIndustry(Industry *i, TileIndex tile, IndustryType type,
* @param flags of operations to conduct * @param flags of operations to conduct
* @param indspec pointer to industry specifications * @param indspec pointer to industry specifications
* @param itspec_index the index of the itsepc to build/fund * @param itspec_index the index of the itsepc to build/fund
* @param seed random seed (possibly) used by industries * @param random_var8f random seed (possibly) used by industries
* @param initial_random_bits The random bits the industry is going to have after construction. * @param random_initial_bits The random bits the industry is going to have after construction.
* @param founder Founder of the industry * @param founder Founder of the industry
* @param creation_type The circumstances the industry is created under. * @param creation_type The circumstances the industry is created under.
* @param[out] ip Pointer to store newly created industry. * @param[out] ip Pointer to store newly created industry.
@@ -2194,8 +2228,9 @@ void Industry::RecomputeProductionMultipliers()
assert(!indspec->UsesSmoothEconomy()); assert(!indspec->UsesSmoothEconomy());
/* Rates are rounded up, so e.g. oilrig always produces some passengers */ /* Rates are rounded up, so e.g. oilrig always produces some passengers */
this->production_rate[0] = min(CeilDiv(indspec->production_rate[0] * this->prod_level, PRODLEVEL_DEFAULT), 0xFF); for (size_t i = 0; i < lengthof(this->production_rate); i++) {
this->production_rate[1] = min(CeilDiv(indspec->production_rate[1] * this->prod_level, PRODLEVEL_DEFAULT), 0xFF); this->production_rate[i] = min(CeilDiv(indspec->production_rate[i] * this->prod_level, PRODLEVEL_DEFAULT), 0xFF);
}
} }

View File

@@ -74,12 +74,7 @@ static void ShowIndustryCargoesWindow(IndustryType id);
/** /**
* Gets the string to display after the cargo name (using callback 37) * Gets the string to display after the cargo name (using callback 37)
* @param cargo the cargo for which the suffix is requested * @param cargo the cargo for which the suffix is requested, meaning depends on presence of flag 18 in prop 1A
* - 00 - first accepted cargo type
* - 01 - second accepted cargo type
* - 02 - third accepted cargo type
* - 03 - first produced cargo type
* - 04 - second produced cargo type
* @param cst the cargo suffix type (for which window is it requested). @see CargoSuffixType * @param cst the cargo suffix type (for which window is it requested). @see CargoSuffixType
* @param ind the industry (NULL if in fund window) * @param ind the industry (NULL if in fund window)
* @param ind_type the industry type * @param ind_type the industry type
@@ -134,9 +129,14 @@ static void GetCargoSuffix(uint cargo, CargoSuffixType cst, const Industry *ind,
} }
} }
enum CargoSuffixInOut {
CARGOSUFFIX_OUT = 0,
CARGOSUFFIX_IN = 1,
};
/** /**
* Gets all strings to display after the cargoes of industries (using callback 37) * Gets all strings to display after the cargoes of industries (using callback 37)
* @param cb_offset The offset for the cargo used in cb37, 0 for accepted cargoes, 3 for produced cargoes * @param use_input get suffixes for output cargoes or input cargoes?
* @param cst the cargo suffix type (for which window is it requested). @see CargoSuffixType * @param cst the cargo suffix type (for which window is it requested). @see CargoSuffixType
* @param ind the industry (NULL if in fund window) * @param ind the industry (NULL if in fund window)
* @param ind_type the industry type * @param ind_type the industry type
@@ -145,14 +145,40 @@ static void GetCargoSuffix(uint cargo, CargoSuffixType cst, const Industry *ind,
* @param suffixes is filled with the suffixes * @param suffixes is filled with the suffixes
*/ */
template <typename TC, typename TS> template <typename TC, typename TS>
static inline void GetAllCargoSuffixes(uint cb_offset, CargoSuffixType cst, const Industry *ind, IndustryType ind_type, const IndustrySpec *indspec, const TC &cargoes, TS &suffixes) static inline void GetAllCargoSuffixes(CargoSuffixInOut use_input, CargoSuffixType cst, const Industry *ind, IndustryType ind_type, const IndustrySpec *indspec, const TC &cargoes, TS &suffixes)
{ {
assert_compile(lengthof(cargoes) <= lengthof(suffixes)); assert_compile(lengthof(cargoes) <= lengthof(suffixes));
for (uint j = 0; j < lengthof(cargoes); j++) {
if (indspec->behaviour & INDUSTRYBEH_CARGOTYPES_UNLIMITED) {
/* Reworked behaviour with new many-in-many-out scheme */
for (uint j = 0; j < lengthof(suffixes); j++) {
if (cargoes[j] != CT_INVALID) { if (cargoes[j] != CT_INVALID) {
GetCargoSuffix(cb_offset + j, cst, ind, ind_type, indspec, suffixes[j]); byte local_id = indspec->grf_prop.grffile->cargo_map[cargoes[j]]; // should we check the value for valid?
uint cargotype = local_id << 16 | use_input;
GetCargoSuffix(cargotype, cst, ind, ind_type, indspec, suffixes[j]);
} else { } else {
suffixes[j].text[0] = '\0'; suffixes[j].text[0] = '\0';
suffixes[j].display = CSD_CARGO;
}
}
} else {
/* Compatible behaviour with old 3-in-2-out scheme */
for (uint j = 0; j < lengthof(suffixes); j++) {
suffixes[j].text[0] = '\0';
suffixes[j].display = CSD_CARGO;
}
switch (use_input) {
case CARGOSUFFIX_OUT:
if (cargoes[0] != CT_INVALID) GetCargoSuffix(3, cst, ind, ind_type, indspec, suffixes[0]);
if (cargoes[1] != CT_INVALID) GetCargoSuffix(4, cst, ind, ind_type, indspec, suffixes[1]);
break;
case CARGOSUFFIX_IN:
if (cargoes[0] != CT_INVALID) GetCargoSuffix(0, cst, ind, ind_type, indspec, suffixes[0]);
if (cargoes[1] != CT_INVALID) GetCargoSuffix(1, cst, ind, ind_type, indspec, suffixes[1]);
if (cargoes[2] != CT_INVALID) GetCargoSuffix(2, cst, ind, ind_type, indspec, suffixes[2]);
break;
default:
NOT_REACHED();
} }
} }
} }
@@ -358,8 +384,8 @@ public:
const IndustrySpec *indsp = GetIndustrySpec(this->index[i]); const IndustrySpec *indsp = GetIndustrySpec(this->index[i]);
CargoSuffix cargo_suffix[3]; CargoSuffix cargo_suffix[lengthof(indsp->accepts_cargo)];
GetAllCargoSuffixes(0, CST_FUND, NULL, this->index[i], indsp, indsp->accepts_cargo, cargo_suffix); GetAllCargoSuffixes(CARGOSUFFIX_IN, CST_FUND, NULL, this->index[i], indsp, indsp->accepts_cargo, cargo_suffix);
StringID str = STR_INDUSTRY_VIEW_REQUIRES_CARGO; StringID str = STR_INDUSTRY_VIEW_REQUIRES_CARGO;
byte p = 0; byte p = 0;
SetDParam(0, STR_JUST_NOTHING); SetDParam(0, STR_JUST_NOTHING);
@@ -373,7 +399,7 @@ public:
d = maxdim(d, GetStringBoundingBox(str)); d = maxdim(d, GetStringBoundingBox(str));
/* Draw the produced cargoes, if any. Otherwise, will print "Nothing". */ /* Draw the produced cargoes, if any. Otherwise, will print "Nothing". */
GetAllCargoSuffixes(3, CST_FUND, NULL, this->index[i], indsp, indsp->produced_cargo, cargo_suffix); GetAllCargoSuffixes(CARGOSUFFIX_OUT, CST_FUND, NULL, this->index[i], indsp, indsp->produced_cargo, cargo_suffix);
str = STR_INDUSTRY_VIEW_PRODUCES_CARGO; str = STR_INDUSTRY_VIEW_PRODUCES_CARGO;
p = 0; p = 0;
SetDParam(0, STR_JUST_NOTHING); SetDParam(0, STR_JUST_NOTHING);
@@ -477,8 +503,8 @@ public:
} }
/* Draw the accepted cargoes, if any. Otherwise, will print "Nothing". */ /* Draw the accepted cargoes, if any. Otherwise, will print "Nothing". */
CargoSuffix cargo_suffix[3]; CargoSuffix cargo_suffix[lengthof(indsp->accepts_cargo)];
GetAllCargoSuffixes(0, CST_FUND, NULL, this->selected_type, indsp, indsp->accepts_cargo, cargo_suffix); GetAllCargoSuffixes(CARGOSUFFIX_IN, CST_FUND, NULL, this->selected_type, indsp, indsp->accepts_cargo, cargo_suffix);
StringID str = STR_INDUSTRY_VIEW_REQUIRES_CARGO; StringID str = STR_INDUSTRY_VIEW_REQUIRES_CARGO;
byte p = 0; byte p = 0;
SetDParam(0, STR_JUST_NOTHING); SetDParam(0, STR_JUST_NOTHING);
@@ -493,7 +519,7 @@ public:
y += FONT_HEIGHT_NORMAL; y += FONT_HEIGHT_NORMAL;
/* Draw the produced cargoes, if any. Otherwise, will print "Nothing". */ /* Draw the produced cargoes, if any. Otherwise, will print "Nothing". */
GetAllCargoSuffixes(3, CST_FUND, NULL, this->selected_type, indsp, indsp->produced_cargo, cargo_suffix); GetAllCargoSuffixes(CARGOSUFFIX_OUT, CST_FUND, NULL, this->selected_type, indsp, indsp->produced_cargo, cargo_suffix);
str = STR_INDUSTRY_VIEW_PRODUCES_CARGO; str = STR_INDUSTRY_VIEW_PRODUCES_CARGO;
p = 0; p = 0;
SetDParam(0, STR_JUST_NOTHING); SetDParam(0, STR_JUST_NOTHING);
@@ -508,7 +534,6 @@ public:
y += FONT_HEIGHT_NORMAL; y += FONT_HEIGHT_NORMAL;
/* Get the additional purchase info text, if it has not already been queried. */ /* Get the additional purchase info text, if it has not already been queried. */
str = STR_NULL;
if (HasBit(indsp->callback_mask, CBM_IND_FUND_MORE_TEXT)) { if (HasBit(indsp->callback_mask, CBM_IND_FUND_MORE_TEXT)) {
uint16 callback_res = GetIndustryCallback(CBID_INDUSTRY_FUND_MORE_TEXT, 0, 0, NULL, this->selected_type, INVALID_TILE); uint16 callback_res = GetIndustryCallback(CBID_INDUSTRY_FUND_MORE_TEXT, 0, 0, NULL, this->selected_type, INVALID_TILE);
if (callback_res != CALLBACK_FAILED && callback_res != 0x400) { if (callback_res != CALLBACK_FAILED && callback_res != 0x400) {
@@ -684,8 +709,15 @@ static void UpdateIndustryProduction(Industry *i);
static inline bool IsProductionAlterable(const Industry *i) static inline bool IsProductionAlterable(const Industry *i)
{ {
const IndustrySpec *is = GetIndustrySpec(i->type); const IndustrySpec *is = GetIndustrySpec(i->type);
bool has_prod = false;
for (size_t j = 0; j < lengthof(is->production_rate); j++) {
if (is->production_rate[j] != 0) {
has_prod = true;
break;
}
}
return ((_game_mode == GM_EDITOR || _cheats.setup_prod.value) && return ((_game_mode == GM_EDITOR || _cheats.setup_prod.value) &&
(is->production_rate[0] != 0 || is->production_rate[1] != 0 || is->IsRawIndustry()) && (has_prod || is->IsRawIndustry()) &&
!_networking); !_networking);
} }
@@ -764,8 +796,8 @@ public:
y += 2 * FONT_HEIGHT_NORMAL; y += 2 * FONT_HEIGHT_NORMAL;
} }
CargoSuffix cargo_suffix[3]; CargoSuffix cargo_suffix[lengthof(i->accepts_cargo)];
GetAllCargoSuffixes(0, CST_VIEW, i, i->type, ind, i->accepts_cargo, cargo_suffix); GetAllCargoSuffixes(CARGOSUFFIX_IN, CST_VIEW, i, i->type, ind, i->accepts_cargo, cargo_suffix);
bool stockpiling = HasBit(ind->callback_mask, CBM_IND_PRODUCTION_CARGO_ARRIVAL) || HasBit(ind->callback_mask, CBM_IND_PRODUCTION_256_TICKS); bool stockpiling = HasBit(ind->callback_mask, CBM_IND_PRODUCTION_CARGO_ARRIVAL) || HasBit(ind->callback_mask, CBM_IND_PRODUCTION_256_TICKS);
uint left_side = left + WD_FRAMERECT_LEFT * 4; // Indent accepted cargoes. uint left_side = left + WD_FRAMERECT_LEFT * 4; // Indent accepted cargoes.
@@ -804,7 +836,7 @@ public:
y += FONT_HEIGHT_NORMAL; y += FONT_HEIGHT_NORMAL;
} }
GetAllCargoSuffixes(3, CST_VIEW, i, i->type, ind, i->produced_cargo, cargo_suffix); GetAllCargoSuffixes(CARGOSUFFIX_OUT, CST_VIEW, i, i->type, ind, i->produced_cargo, cargo_suffix);
first = true; first = true;
for (byte j = 0; j < lengthof(i->produced_cargo); j++) { for (byte j = 0; j < lengthof(i->produced_cargo); j++) {
if (i->produced_cargo[j] == CT_INVALID) continue; if (i->produced_cargo[j] == CT_INVALID) continue;
@@ -1256,7 +1288,7 @@ protected:
SetDParam(p++, i->index); SetDParam(p++, i->index);
static CargoSuffix cargo_suffix[lengthof(i->produced_cargo)]; static CargoSuffix cargo_suffix[lengthof(i->produced_cargo)];
GetAllCargoSuffixes(3, CST_DIR, i, i->type, indsp, i->produced_cargo, cargo_suffix); GetAllCargoSuffixes(CARGOSUFFIX_OUT, CST_DIR, i, i->type, indsp, i->produced_cargo, cargo_suffix);
/* Industry productions */ /* Industry productions */
for (byte j = 0; j < lengthof(i->produced_cargo); j++) { for (byte j = 0; j < lengthof(i->produced_cargo); j++) {
@@ -1515,7 +1547,7 @@ enum CargoesFieldType {
CFT_HEADER, ///< Header text. CFT_HEADER, ///< Header text.
}; };
static const uint MAX_CARGOES = 3; ///< Maximum number of cargoes carried in a #CFT_CARGO field in #CargoesField. static const uint MAX_CARGOES = 16; ///< Maximum number of cargoes carried in a #CFT_CARGO field in #CargoesField.
/** Data about a single field in the #IndustryCargoesWindow panel. */ /** Data about a single field in the #IndustryCargoesWindow panel. */
struct CargoesField { struct CargoesField {
@@ -1523,7 +1555,6 @@ struct CargoesField {
static const int HOR_CARGO_BORDER_SPACE; static const int HOR_CARGO_BORDER_SPACE;
static const int CARGO_STUB_WIDTH; static const int CARGO_STUB_WIDTH;
static const int HOR_CARGO_WIDTH, HOR_CARGO_SPACE; static const int HOR_CARGO_WIDTH, HOR_CARGO_SPACE;
static const int CARGO_FIELD_WIDTH;
static const int VERT_CARGO_SPACE, VERT_CARGO_EDGE; static const int VERT_CARGO_SPACE, VERT_CARGO_EDGE;
static const int BLOB_DISTANCE, BLOB_WIDTH, BLOB_HEIGHT; static const int BLOB_DISTANCE, BLOB_WIDTH, BLOB_HEIGHT;
@@ -1531,7 +1562,9 @@ struct CargoesField {
static const int CARGO_LINE_COLOUR; static const int CARGO_LINE_COLOUR;
static int small_height, normal_height; static int small_height, normal_height;
static int cargo_field_width;
static int industry_width; static int industry_width;
static uint max_cargoes;
CargoesFieldType type; ///< Type of field. CargoesFieldType type; ///< Type of field.
union { union {
@@ -1580,7 +1613,7 @@ struct CargoesField {
/** /**
* Connect a cargo from an industry to the #CFT_CARGO column. * Connect a cargo from an industry to the #CFT_CARGO column.
* @param cargo Cargo to connect. * @param cargo Cargo to connect.
* @param produced Cargo is produced (if \c false, cargo is assumed to be accepted). * @param producer Cargo is produced (if \c false, cargo is assumed to be accepted).
* @return Horizontal connection index, or \c -1 if not accepted at all. * @return Horizontal connection index, or \c -1 if not accepted at all.
*/ */
int ConnectCargo(CargoID cargo, bool producer) int ConnectCargo(CargoID cargo, bool producer)
@@ -1684,20 +1717,19 @@ struct CargoesField {
int GetCargoBase(int xpos) const int GetCargoBase(int xpos) const
{ {
assert(this->type == CFT_CARGO); assert(this->type == CFT_CARGO);
int n = this->u.cargo.num_cargoes;
switch (this->u.cargo.num_cargoes) { if (n % 2 == 0) {
case 0: return xpos + CARGO_FIELD_WIDTH / 2; return xpos + cargo_field_width / 2 - (HOR_CARGO_WIDTH + HOR_CARGO_SPACE / 2) * (n / 2);
case 1: return xpos + CARGO_FIELD_WIDTH / 2 - HOR_CARGO_WIDTH / 2; } else {
case 2: return xpos + CARGO_FIELD_WIDTH / 2 - HOR_CARGO_WIDTH - HOR_CARGO_SPACE / 2; return xpos + cargo_field_width / 2 - HOR_CARGO_WIDTH / 2 - (HOR_CARGO_WIDTH + HOR_CARGO_SPACE) * (n / 2);
case 3: return xpos + CARGO_FIELD_WIDTH / 2 - HOR_CARGO_WIDTH - HOR_CARGO_SPACE - HOR_CARGO_WIDTH / 2;
default: NOT_REACHED();
} }
} }
/** /**
* Draw the field. * Draw the field.
* @param xpos Position of the left edge. * @param xpos Position of the left edge.
* @param vpos Position of the top edge. * @param ypos Position of the top edge.
*/ */
void Draw(int xpos, int ypos) const void Draw(int xpos, int ypos) const
{ {
@@ -1749,7 +1781,7 @@ struct CargoesField {
other_left = this->u.industry.other_accepted; other_left = this->u.industry.other_accepted;
} }
ypos1 += VERT_CARGO_EDGE; ypos1 += VERT_CARGO_EDGE;
for (uint i = 0; i < MAX_CARGOES; i++) { for (uint i = 0; i < CargoesField::max_cargoes; i++) {
if (other_right[i] != INVALID_CARGO) { if (other_right[i] != INVALID_CARGO) {
const CargoSpec *csp = CargoSpec::Get(other_right[i]); const CargoSpec *csp = CargoSpec::Get(other_right[i]);
int xp = xpos + industry_width + CARGO_STUB_WIDTH; int xp = xpos + industry_width + CARGO_STUB_WIDTH;
@@ -1814,7 +1846,7 @@ struct CargoesField {
DrawHorConnection(lf + dx - 1, lf + HOR_CARGO_SPACE - 1, ypos, csp); DrawHorConnection(lf + dx - 1, lf + HOR_CARGO_SPACE - 1, ypos, csp);
dx = 1; dx = 1;
} }
DrawHorConnection(cargo_base + col * HOR_CARGO_SPACE + (col + 1) * HOR_CARGO_WIDTH - 1 + dx, xpos + CARGO_FIELD_WIDTH - 1, ypos, csp); DrawHorConnection(cargo_base + col * HOR_CARGO_SPACE + (col + 1) * HOR_CARGO_WIDTH - 1 + dx, xpos + CargoesField::cargo_field_width - 1, ypos, csp);
} }
ypos += FONT_HEIGHT_NORMAL + VERT_CARGO_SPACE; ypos += FONT_HEIGHT_NORMAL + VERT_CARGO_SPACE;
} }
@@ -1939,6 +1971,8 @@ assert_compile(MAX_CARGOES >= cpp_lengthof(IndustrySpec, accepts_cargo));
int CargoesField::small_height; ///< Height of the header row. int CargoesField::small_height; ///< Height of the header row.
int CargoesField::normal_height; ///< Height of the non-header rows. int CargoesField::normal_height; ///< Height of the non-header rows.
int CargoesField::industry_width; ///< Width of an industry field. int CargoesField::industry_width; ///< Width of an industry field.
int CargoesField::cargo_field_width; ///< Width of a cargo field.
uint CargoesField::max_cargoes; ///< Largest number of cargoes actually on any industry.
const int CargoesField::VERT_INTER_INDUSTRY_SPACE = 6; ///< Amount of space between two industries in a column. const int CargoesField::VERT_INTER_INDUSTRY_SPACE = 6; ///< Amount of space between two industries in a column.
const int CargoesField::HOR_CARGO_BORDER_SPACE = 15; ///< Amount of space between the left/right edge of a #CFT_CARGO field, and the left/right most vertical cargo. const int CargoesField::HOR_CARGO_BORDER_SPACE = 15; ///< Amount of space between the left/right edge of a #CFT_CARGO field, and the left/right most vertical cargo.
@@ -1952,9 +1986,6 @@ const int CargoesField::BLOB_DISTANCE = 5; ///< Distance of the industry legend
const int CargoesField::BLOB_WIDTH = 12; ///< Width of the industry legend colour, including border. const int CargoesField::BLOB_WIDTH = 12; ///< Width of the industry legend colour, including border.
const int CargoesField::BLOB_HEIGHT = 9; ///< Height of the industry legend colour, including border const int CargoesField::BLOB_HEIGHT = 9; ///< Height of the industry legend colour, including border
/** Width of a #CFT_CARGO field. */
const int CargoesField::CARGO_FIELD_WIDTH = HOR_CARGO_BORDER_SPACE * 2 + HOR_CARGO_WIDTH * MAX_CARGOES + HOR_CARGO_SPACE * (MAX_CARGOES - 1);
const int CargoesField::INDUSTRY_LINE_COLOUR = PC_YELLOW; ///< Line colour of the industry type box. const int CargoesField::INDUSTRY_LINE_COLOUR = PC_YELLOW; ///< Line colour of the industry type box.
const int CargoesField::CARGO_LINE_COLOUR = PC_YELLOW; ///< Line colour around the cargo. const int CargoesField::CARGO_LINE_COLOUR = PC_YELLOW; ///< Line colour around the cargo.
@@ -1979,13 +2010,14 @@ struct CargoesRow {
int other_count = 0; int other_count = 0;
const IndustrySpec *indsp = GetIndustrySpec(ind_fld->u.industry.ind_type); const IndustrySpec *indsp = GetIndustrySpec(ind_fld->u.industry.ind_type);
for (uint i = 0; i < lengthof(indsp->produced_cargo); i++) { assert(CargoesField::max_cargoes <= lengthof(indsp->produced_cargo));
for (uint i = 0; i < CargoesField::max_cargoes; i++) {
int col = cargo_fld->ConnectCargo(indsp->produced_cargo[i], true); int col = cargo_fld->ConnectCargo(indsp->produced_cargo[i], true);
if (col < 0) others[other_count++] = indsp->produced_cargo[i]; if (col < 0) others[other_count++] = indsp->produced_cargo[i];
} }
/* Allocate other cargoes in the empty holes of the horizontal cargo connections. */ /* Allocate other cargoes in the empty holes of the horizontal cargo connections. */
for (uint i = 0; i < MAX_CARGOES && other_count > 0; i++) { for (uint i = 0; i < CargoesField::max_cargoes && other_count > 0; i++) {
if (cargo_fld->u.cargo.supp_cargoes[i] == INVALID_CARGO) ind_fld->u.industry.other_produced[i] = others[--other_count]; if (cargo_fld->u.cargo.supp_cargoes[i] == INVALID_CARGO) ind_fld->u.industry.other_produced[i] = others[--other_count];
} }
} else { } else {
@@ -2036,13 +2068,14 @@ struct CargoesRow {
int other_count = 0; int other_count = 0;
const IndustrySpec *indsp = GetIndustrySpec(ind_fld->u.industry.ind_type); const IndustrySpec *indsp = GetIndustrySpec(ind_fld->u.industry.ind_type);
for (uint i = 0; i < lengthof(indsp->accepts_cargo); i++) { assert(CargoesField::max_cargoes <= lengthof(indsp->accepts_cargo));
for (uint i = 0; i < CargoesField::max_cargoes; i++) {
int col = cargo_fld->ConnectCargo(indsp->accepts_cargo[i], false); int col = cargo_fld->ConnectCargo(indsp->accepts_cargo[i], false);
if (col < 0) others[other_count++] = indsp->accepts_cargo[i]; if (col < 0) others[other_count++] = indsp->accepts_cargo[i];
} }
/* Allocate other cargoes in the empty holes of the horizontal cargo connections. */ /* Allocate other cargoes in the empty holes of the horizontal cargo connections. */
for (uint i = 0; i < MAX_CARGOES && other_count > 0; i++) { for (uint i = 0; i < CargoesField::max_cargoes && other_count > 0; i++) {
if (cargo_fld->u.cargo.cust_cargoes[i] == INVALID_CARGO) ind_fld->u.industry.other_accepted[i] = others[--other_count]; if (cargo_fld->u.cargo.cust_cargoes[i] == INVALID_CARGO) ind_fld->u.industry.other_accepted[i] = others[--other_count];
} }
} else { } else {
@@ -2125,10 +2158,13 @@ struct IndustryCargoesWindow : public Window {
/* Decide about the size of the box holding the text of an industry type. */ /* Decide about the size of the box holding the text of an industry type. */
this->ind_textsize.width = 0; this->ind_textsize.width = 0;
this->ind_textsize.height = 0; this->ind_textsize.height = 0;
CargoesField::max_cargoes = 0;
for (IndustryType it = 0; it < NUM_INDUSTRYTYPES; it++) { for (IndustryType it = 0; it < NUM_INDUSTRYTYPES; it++) {
const IndustrySpec *indsp = GetIndustrySpec(it); const IndustrySpec *indsp = GetIndustrySpec(it);
if (!indsp->enabled) continue; if (!indsp->enabled) continue;
this->ind_textsize = maxdim(this->ind_textsize, GetStringBoundingBox(indsp->name)); this->ind_textsize = maxdim(this->ind_textsize, GetStringBoundingBox(indsp->name));
CargoesField::max_cargoes = max<uint>(CargoesField::max_cargoes, std::count_if(indsp->accepts_cargo, endof(indsp->accepts_cargo), IsCargoIDValid));
CargoesField::max_cargoes = max<uint>(CargoesField::max_cargoes, std::count_if(indsp->produced_cargo, endof(indsp->produced_cargo), IsCargoIDValid));
} }
d.width = max(d.width, this->ind_textsize.width); d.width = max(d.width, this->ind_textsize.width);
d.height = this->ind_textsize.height; d.height = this->ind_textsize.height;
@@ -2147,18 +2183,21 @@ struct IndustryCargoesWindow : public Window {
d.width += 2 * HOR_TEXT_PADDING; d.width += 2 * HOR_TEXT_PADDING;
/* Ensure the height is enough for the industry type text, for the horizontal connections, and for the cargo labels. */ /* Ensure the height is enough for the industry type text, for the horizontal connections, and for the cargo labels. */
uint min_ind_height = CargoesField::VERT_CARGO_EDGE * 2 + MAX_CARGOES * FONT_HEIGHT_NORMAL + (MAX_CARGOES - 1) * CargoesField::VERT_CARGO_SPACE; uint min_ind_height = CargoesField::VERT_CARGO_EDGE * 2 + CargoesField::max_cargoes * FONT_HEIGHT_NORMAL + (CargoesField::max_cargoes - 1) * CargoesField::VERT_CARGO_SPACE;
d.height = max(d.height + 2 * VERT_TEXT_PADDING, min_ind_height); d.height = max(d.height + 2 * VERT_TEXT_PADDING, min_ind_height);
CargoesField::industry_width = d.width; CargoesField::industry_width = d.width;
CargoesField::normal_height = d.height + CargoesField::VERT_INTER_INDUSTRY_SPACE; CargoesField::normal_height = d.height + CargoesField::VERT_INTER_INDUSTRY_SPACE;
/* Width of a #CFT_CARGO field. */
CargoesField::cargo_field_width = CargoesField::HOR_CARGO_BORDER_SPACE * 2 + CargoesField::HOR_CARGO_WIDTH * CargoesField::max_cargoes + CargoesField::HOR_CARGO_SPACE * (CargoesField::max_cargoes - 1);
} }
virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize)
{ {
switch (widget) { switch (widget) {
case WID_IC_PANEL: case WID_IC_PANEL:
size->width = WD_FRAMETEXT_LEFT + CargoesField::industry_width * 3 + CargoesField::CARGO_FIELD_WIDTH * 2 + WD_FRAMETEXT_RIGHT; size->width = WD_FRAMETEXT_LEFT + CargoesField::industry_width * 3 + CargoesField::cargo_field_width * 2 + WD_FRAMETEXT_RIGHT;
break; break;
case WID_IC_IND_DROPDOWN: case WID_IC_IND_DROPDOWN:
@@ -2519,7 +2558,7 @@ struct IndustryCargoesWindow : public Window {
_cur_dpi = &tmp_dpi; _cur_dpi = &tmp_dpi;
int left_pos = WD_FRAMERECT_LEFT; int left_pos = WD_FRAMERECT_LEFT;
if (this->ind_cargo >= NUM_INDUSTRYTYPES) left_pos += (CargoesField::industry_width + CargoesField::CARGO_FIELD_WIDTH) / 2; if (this->ind_cargo >= NUM_INDUSTRYTYPES) left_pos += (CargoesField::industry_width + CargoesField::cargo_field_width) / 2;
int last_column = (this->ind_cargo < NUM_INDUSTRYTYPES) ? 4 : 2; int last_column = (this->ind_cargo < NUM_INDUSTRYTYPES) ? 4 : 2;
const NWidgetBase *nwp = this->GetWidget<NWidgetBase>(WID_IC_PANEL); const NWidgetBase *nwp = this->GetWidget<NWidgetBase>(WID_IC_PANEL);
@@ -2538,7 +2577,7 @@ struct IndustryCargoesWindow : public Window {
} }
while (col >= 0 && col <= last_column) { while (col >= 0 && col <= last_column) {
this->fields[i].columns[col].Draw(xpos, vpos); this->fields[i].columns[col].Draw(xpos, vpos);
xpos += (col & 1) ? CargoesField::CARGO_FIELD_WIDTH : CargoesField::industry_width; xpos += (col & 1) ? CargoesField::cargo_field_width : CargoesField::industry_width;
col += dir; col += dir;
} }
} }
@@ -2570,11 +2609,11 @@ struct IndustryCargoesWindow : public Window {
vpos = pt.y - vpos - row * CargoesField::normal_height; // Position in the row + 1 field vpos = pt.y - vpos - row * CargoesField::normal_height; // Position in the row + 1 field
row++; // rebase row to match index of this->fields. row++; // rebase row to match index of this->fields.
int xpos = 2 * WD_FRAMERECT_LEFT + ((this->ind_cargo < NUM_INDUSTRYTYPES) ? 0 : (CargoesField::industry_width + CargoesField::CARGO_FIELD_WIDTH) / 2); int xpos = 2 * WD_FRAMERECT_LEFT + ((this->ind_cargo < NUM_INDUSTRYTYPES) ? 0 : (CargoesField::industry_width + CargoesField::cargo_field_width) / 2);
if (pt.x < xpos) return false; if (pt.x < xpos) return false;
int column; int column;
for (column = 0; column <= 5; column++) { for (column = 0; column <= 5; column++) {
int width = (column & 1) ? CargoesField::CARGO_FIELD_WIDTH : CargoesField::industry_width; int width = (column & 1) ? CargoesField::cargo_field_width : CargoesField::industry_width;
if (pt.x < xpos + width) break; if (pt.x < xpos + width) break;
xpos += width; xpos += width;
} }
@@ -2587,7 +2626,7 @@ struct IndustryCargoesWindow : public Window {
xy->y = vpos; xy->y = vpos;
if (_current_text_dir == TD_RTL) { if (_current_text_dir == TD_RTL) {
fieldxy->x = num_columns - column; fieldxy->x = num_columns - column;
xy->x = ((column & 1) ? CargoesField::CARGO_FIELD_WIDTH : CargoesField::industry_width) - xpos; xy->x = ((column & 1) ? CargoesField::cargo_field_width : CargoesField::industry_width) - xpos;
} else { } else {
fieldxy->x = column; fieldxy->x = column;
xy->x = xpos; xy->x = xpos;

View File

@@ -37,6 +37,10 @@ static const IndustryGfx INVALID_INDUSTRYTILE = NUM_INDUSTRYTILES; ///< one a
static const int INDUSTRY_COMPLETED = 3; ///< final stage of industry construction. static const int INDUSTRY_COMPLETED = 3; ///< final stage of industry construction.
static const int INDUSTRY_NUM_INPUTS = 16; ///< Number of cargo types an industry can accept
static const int INDUSTRY_NUM_OUTPUTS = 16; ///< Number of cargo types an industry can produce
void CheckIndustries(); void CheckIndustries();
#endif /* INDUSTRY_TYPE_H */ #endif /* INDUSTRY_TYPE_H */

View File

@@ -80,6 +80,7 @@ enum IndustryBehaviour {
INDUSTRYBEH_PRODCALLBACK_RANDOM = 1 << 15, ///< Production callback needs random bits in var 10 INDUSTRYBEH_PRODCALLBACK_RANDOM = 1 << 15, ///< Production callback needs random bits in var 10
INDUSTRYBEH_NOBUILT_MAPCREATION = 1 << 16, ///< Do not force one instance of this type to appear on map generation INDUSTRYBEH_NOBUILT_MAPCREATION = 1 << 16, ///< Do not force one instance of this type to appear on map generation
INDUSTRYBEH_CANCLOSE_LASTINSTANCE = 1 << 17, ///< Allow closing down the last instance of this type INDUSTRYBEH_CANCLOSE_LASTINSTANCE = 1 << 17, ///< Allow closing down the last instance of this type
INDUSTRYBEH_CARGOTYPES_UNLIMITED = 1 << 18, ///< Allow produced/accepted cargoes callbacks to supply more than 2 and 3 types
}; };
DECLARE_ENUM_AS_BIT_SET(IndustryBehaviour) DECLARE_ENUM_AS_BIT_SET(IndustryBehaviour)
@@ -87,6 +88,7 @@ DECLARE_ENUM_AS_BIT_SET(IndustryBehaviour)
enum IndustryTileSpecialFlags { enum IndustryTileSpecialFlags {
INDTILE_SPECIAL_NONE = 0, INDTILE_SPECIAL_NONE = 0,
INDTILE_SPECIAL_NEXTFRAME_RANDOMBITS = 1 << 0, ///< Callback 0x26 needs random bits INDTILE_SPECIAL_NEXTFRAME_RANDOMBITS = 1 << 0, ///< Callback 0x26 needs random bits
INDTILE_SPECIAL_ACCEPTS_ALL_CARGO = 1 << 1, ///< Tile always accepts all cargoes the associated industry accepts
}; };
DECLARE_ENUM_AS_BIT_SET(IndustryTileSpecialFlags) DECLARE_ENUM_AS_BIT_SET(IndustryTileSpecialFlags)
@@ -106,15 +108,15 @@ struct IndustrySpec {
uint32 prospecting_chance; ///< Chance prospecting succeeds uint32 prospecting_chance; ///< Chance prospecting succeeds
IndustryType conflicting[3]; ///< Industries this industry cannot be close to IndustryType conflicting[3]; ///< Industries this industry cannot be close to
byte check_proc; ///< Index to a procedure to check for conflicting circumstances byte check_proc; ///< Index to a procedure to check for conflicting circumstances
CargoID produced_cargo[2]; CargoID produced_cargo[INDUSTRY_NUM_OUTPUTS];
byte production_rate[2]; byte production_rate[INDUSTRY_NUM_OUTPUTS];
/** /**
* minimum amount of cargo transported to the stations. * minimum amount of cargo transported to the stations.
* If the waiting cargo is less than this number, no cargo is moved to it. * If the waiting cargo is less than this number, no cargo is moved to it.
*/ */
byte minimal_cargo; byte minimal_cargo;
CargoID accepts_cargo[3]; ///< 3 accepted cargoes. CargoID accepts_cargo[INDUSTRY_NUM_INPUTS]; ///< 16 accepted cargoes.
uint16 input_cargo_multiplier[3][2]; ///< Input cargo multipliers (multiply amount of incoming cargo for the produced cargoes) uint16 input_cargo_multiplier[INDUSTRY_NUM_INPUTS][INDUSTRY_NUM_OUTPUTS]; ///< Input cargo multipliers (multiply amount of incoming cargo for the produced cargoes)
IndustryLifeType life_type; ///< This is also known as Industry production flag, in newgrf specs IndustryLifeType life_type; ///< This is also known as Industry production flag, in newgrf specs
byte climate_availability; ///< Bitmask, giving landscape enums as bit position byte climate_availability; ///< Bitmask, giving landscape enums as bit position
IndustryBehaviour behaviour; ///< How this industry will behave, and how others entities can use it IndustryBehaviour behaviour; ///< How this industry will behave, and how others entities can use it
@@ -144,10 +146,11 @@ struct IndustrySpec {
/** /**
* Defines the data structure of each individual tile of an industry. * Defines the data structure of each individual tile of an industry.
* @note A tile can at most accept 3 types of cargo, even if an industry as a whole can accept more types.
*/ */
struct IndustryTileSpec { struct IndustryTileSpec {
CargoID accepts_cargo[3]; ///< Cargo accepted by this tile CargoID accepts_cargo[INDUSTRY_NUM_INPUTS]; ///< Cargo accepted by this tile
uint8 acceptance[3]; ///< Level of acceptance per cargo type int8 acceptance[INDUSTRY_NUM_INPUTS]; ///< Level of acceptance per cargo type (signed, may be negative!)
Slope slopes_refused; ///< slope pattern on which this tile cannot be built Slope slopes_refused; ///< slope pattern on which this tile cannot be built
byte anim_production; ///< Animation frame to start when goods are produced byte anim_production; ///< Animation frame to start when goods are produced
byte anim_next; ///< Next frame in an animation byte anim_next; ///< Next frame in an animation

View File

@@ -70,7 +70,7 @@ struct IniLoadFile {
* Open the INI file. * Open the INI file.
* @param filename Name of the INI file. * @param filename Name of the INI file.
* @param subdir The subdir to load the file from. * @param subdir The subdir to load the file from.
* @param size [out] Size of the opened file. * @param[out] size Size of the opened file.
* @return File handle of the opened file, or \c NULL. * @return File handle of the opened file, or \c NULL.
*/ */
virtual FILE *OpenFile(const char *filename, Subdirectory subdir, size_t *size) = 0; virtual FILE *OpenFile(const char *filename, Subdirectory subdir, size_t *size) = 0;

View File

@@ -4204,7 +4204,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Te veel
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Te veel treinstasie deele STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Te veel treinstasie deele
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Te veel bushalte STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Te veel bushalte
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Te veel vragmotor stasies STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Te veel vragmotor stasies
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Te naby aan 'n ander stasie/laai area
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Te naby aan 'n ander werf STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Te naby aan 'n ander werf
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Te naby aan 'n ander lughawe STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Te naby aan 'n ander lughawe
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Stasie kan nie hernoem word nie... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Stasie kan nie hernoem word nie...

View File

@@ -3667,7 +3667,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}يوجد
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}يوجد الكثير من قطاعات محطه السكه الحديديه STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}يوجد الكثير من قطاعات محطه السكه الحديديه
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}يوجد الكثير من محطات الحافلات STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}يوجد الكثير من محطات الحافلات
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}يوجد الكثير من محطات الشاحنات STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}يوجد الكثير من محطات الشاحنات
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}قريب للغايه من محطه اخرى
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}قريب للغايه من مَرسَى اخر STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}قريب للغايه من مَرسَى اخر
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}قريب للغايه من مطار اخر STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}قريب للغايه من مطار اخر
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}تعذر إعاده تسميه المحطه... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}تعذر إعاده تسميه المحطه...

View File

@@ -869,7 +869,7 @@ STR_NEWS_EXCLUSIVE_RIGHTS_DESCRIPTION :{BIG_FONT}{BLAC
STR_EXTRA_VIEW_PORT_TITLE :{WHITE}Leihoa {COMMA} STR_EXTRA_VIEW_PORT_TITLE :{WHITE}Leihoa {COMMA}
STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN :{BLACK}Leihora kopiatu STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN :{BLACK}Leihora kopiatu
STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN_TT :{BLACK} Leiho nagusian ikusten dena leiho honetara kopiatu STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN_TT :{BLACK} Leiho nagusian ikusten dena leiho honetara kopiatu
STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW :{BLACK}Leihotik kpiatutakoa itsatsi STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW :{BLACK}Aldatu ikuspen nagusia
STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW_TT :{BLACK}Leiho honetan ikusten dena leiho nagusian itsasi STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW_TT :{BLACK}Leiho honetan ikusten dena leiho nagusian itsasi
# Game options window # Game options window
@@ -2589,6 +2589,8 @@ STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD
# Framerate display window # Framerate display window
############ Leave those lines in this order!! ############ Leave those lines in this order!!
STR_FRAMERATE_GL_TRAINS :{WHITE} Trenen tick-ak:
STR_FRAMERATE_GL_SHIPS :{WHITE} Itsasontzien tick-ak:
############ End of leave-in-this-order ############ End of leave-in-this-order
############ Leave those lines in this order!! ############ Leave those lines in this order!!
############ End of leave-in-this-order ############ End of leave-in-this-order
@@ -3009,6 +3011,7 @@ STR_STATION_VIEW_CARGO_SUPPLY_RATING :{WHITE}{STRING}
STR_STATION_VIEW_GROUP :{BLACK}Taldekatu STR_STATION_VIEW_GROUP :{BLACK}Taldekatu
STR_STATION_VIEW_WAITING_STATION :Geltokia: Itxaroten STR_STATION_VIEW_WAITING_STATION :Geltokia: Itxaroten
STR_STATION_VIEW_WAITING_AMOUNT :Kopurua: Itxoiten STR_STATION_VIEW_WAITING_AMOUNT :Kopurua: Itxoiten
STR_STATION_VIEW_PLANNED_STATION :Geltokia: Antolatua
STR_STATION_VIEW_FROM :{YELLOW}{CARGO_SHORT} {STATION}-tik STR_STATION_VIEW_FROM :{YELLOW}{CARGO_SHORT} {STATION}-tik
STR_STATION_VIEW_VIA :{YELLOW}{CARGO_SHORT}{STATION}-tik STR_STATION_VIEW_VIA :{YELLOW}{CARGO_SHORT}{STATION}-tik
STR_STATION_VIEW_TO :{YELLOW}{CARGO_SHORT}{STATION}-ra STR_STATION_VIEW_TO :{YELLOW}{CARGO_SHORT}{STATION}-ra
@@ -4073,7 +4076,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Geltoki
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Tren geltoki zati gehiegi STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Tren geltoki zati gehiegi
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Autobus geltoki gehiegi STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Autobus geltoki gehiegi
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Kamioi geltoki gehiegi STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Kamioi geltoki gehiegi
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Geltoki batetik hurbilegi
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Kai batetik hurbilegi STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Kai batetik hurbilegi
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Aireportu batetik hurbilegi STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Aireportu batetik hurbilegi
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Ezinda geltokia berrizendatu... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Ezinda geltokia berrizendatu...

View File

@@ -4588,7 +4588,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Зана
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Занадта вялікая чыгуначная станцыя STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Занадта вялікая чыгуначная станцыя
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Занадта шмат аўтобусных прыпынкаў STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Занадта шмат аўтобусных прыпынкаў
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Занадта шмат грузавых тэрмiналаў STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Занадта шмат грузавых тэрмiналаў
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Занадта блізка да іншай станцыі
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Занадта блізка да іншай прыстані STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Занадта блізка да іншай прыстані
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Занадта блізка да іншага аэрапорта STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Занадта блізка да іншага аэрапорта
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Немагчыма перайменаваць станцыю... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Немагчыма перайменаваць станцыю...

View File

@@ -33,7 +33,7 @@ STR_CARGO_PLURAL_COAL :{G=m}Carvão
STR_CARGO_PLURAL_MAIL :{G=f}Correspondências STR_CARGO_PLURAL_MAIL :{G=f}Correspondências
STR_CARGO_PLURAL_OIL :{G=m}Petróleo STR_CARGO_PLURAL_OIL :{G=m}Petróleo
STR_CARGO_PLURAL_LIVESTOCK :{G=m}Gado STR_CARGO_PLURAL_LIVESTOCK :{G=m}Gado
STR_CARGO_PLURAL_GOODS :{G=f}Bens STR_CARGO_PLURAL_GOODS :{G=m}Bens
STR_CARGO_PLURAL_GRAIN :{G=m}Cereais STR_CARGO_PLURAL_GRAIN :{G=m}Cereais
STR_CARGO_PLURAL_WOOD :{G=f}Madeira STR_CARGO_PLURAL_WOOD :{G=f}Madeira
STR_CARGO_PLURAL_IRON_ORE :{G=m}Minério de Ferro STR_CARGO_PLURAL_IRON_ORE :{G=m}Minério de Ferro
@@ -147,7 +147,7 @@ STR_ABBREV_MAIZE :{TINY_FONT}MI
STR_ABBREV_FRUIT :{TINY_FONT}FT STR_ABBREV_FRUIT :{TINY_FONT}FT
STR_ABBREV_DIAMONDS :{TINY_FONT}DM STR_ABBREV_DIAMONDS :{TINY_FONT}DM
STR_ABBREV_FOOD :{TINY_FONT}AL STR_ABBREV_FOOD :{TINY_FONT}AL
STR_ABBREV_PAPER :{TINY_FONT}PL STR_ABBREV_PAPER :{TINY_FONT}PP
STR_ABBREV_GOLD :{TINY_FONT}OU STR_ABBREV_GOLD :{TINY_FONT}OU
STR_ABBREV_WATER :{TINY_FONT}AG STR_ABBREV_WATER :{TINY_FONT}AG
STR_ABBREV_WHEAT :{TINY_FONT}TG STR_ABBREV_WHEAT :{TINY_FONT}TG
@@ -220,7 +220,7 @@ STR_UNITS_FORCE_IMPERIAL :{COMMA}{NBSP}lb
STR_UNITS_FORCE_METRIC :{COMMA}{NBSP}kgf STR_UNITS_FORCE_METRIC :{COMMA}{NBSP}kgf
STR_UNITS_FORCE_SI :{COMMA}{NBSP}kN STR_UNITS_FORCE_SI :{COMMA}{NBSP}kN
STR_UNITS_HEIGHT_IMPERIAL :{COMMA}{NBSP}pés STR_UNITS_HEIGHT_IMPERIAL :{COMMA}{NBSP}pé{P "" s}
STR_UNITS_HEIGHT_METRIC :{COMMA}{NBSP}m STR_UNITS_HEIGHT_METRIC :{COMMA}{NBSP}m
STR_UNITS_HEIGHT_SI :{COMMA}{NBSP}m STR_UNITS_HEIGHT_SI :{COMMA}{NBSP}m
@@ -476,6 +476,7 @@ STR_ABOUT_MENU_SCREENSHOT :Captura de tela
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Ampliado em captura de tela STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Ampliado em captura de tela
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Captura de tela em ampliação padrão STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Captura de tela em ampliação padrão
STR_ABOUT_MENU_GIANT_SCREENSHOT :Captura de tela do mapa inteiro STR_ABOUT_MENU_GIANT_SCREENSHOT :Captura de tela do mapa inteiro
STR_ABOUT_MENU_SHOW_FRAMERATE :Exibir taxa de quadros
STR_ABOUT_MENU_ABOUT_OPENTTD :Sobre 'OpenTTD' STR_ABOUT_MENU_ABOUT_OPENTTD :Sobre 'OpenTTD'
STR_ABOUT_MENU_SPRITE_ALIGNER :Alinhador de "sprites" STR_ABOUT_MENU_SPRITE_ALIGNER :Alinhador de "sprites"
STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Alternar caixas limítrofes STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Alternar caixas limítrofes
@@ -651,6 +652,7 @@ STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLA
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}-- STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM} STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------ STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------
STR_MUSIC_TITLE_NOMUSIC :{TINY_FONT}{DKGREEN}Nenhuma música disponível
STR_MUSIC_TITLE_NAME :{TINY_FONT}{DKGREEN}"{STRING}" STR_MUSIC_TITLE_NAME :{TINY_FONT}{DKGREEN}"{STRING}"
STR_MUSIC_TRACK :{TINY_FONT}{BLACK}Faixa STR_MUSIC_TRACK :{TINY_FONT}{BLACK}Faixa
STR_MUSIC_XTITLE :{TINY_FONT}{BLACK}Título STR_MUSIC_XTITLE :{TINY_FONT}{BLACK}Título
@@ -671,11 +673,14 @@ STR_MUSIC_TOOLTIP_TOGGLE_PROGRAM_SHUFFLE :{BLACK}Alternar
STR_MUSIC_TOOLTIP_SHOW_MUSIC_TRACK_SELECTION :{BLACK}Exibir janela de seleção de faixas de música STR_MUSIC_TOOLTIP_SHOW_MUSIC_TRACK_SELECTION :{BLACK}Exibir janela de seleção de faixas de música
# Playlist window # Playlist window
STR_PLAYLIST_MUSIC_SELECTION_SETNAME :{WHITE}Programação Musical - '{STRING}'
STR_PLAYLIST_TRACK_NAME :{TINY_FONT}{LTBLUE}{ZEROFILL_NUM} '{STRING}' STR_PLAYLIST_TRACK_NAME :{TINY_FONT}{LTBLUE}{ZEROFILL_NUM} '{STRING}'
STR_PLAYLIST_TRACK_INDEX :{TINY_FONT}{BLACK}Índice de faixas STR_PLAYLIST_TRACK_INDEX :{TINY_FONT}{BLACK}Índice de faixas
STR_PLAYLIST_PROGRAM :{TINY_FONT}{BLACK}Programa - '{STRING}' STR_PLAYLIST_PROGRAM :{TINY_FONT}{BLACK}Programa - '{STRING}'
STR_PLAYLIST_CLEAR :{TINY_FONT}{BLACK}Limpar STR_PLAYLIST_CLEAR :{TINY_FONT}{BLACK}Limpar
STR_PLAYLIST_CHANGE_SET :{BLACK}Alterar set
STR_PLAYLIST_TOOLTIP_CLEAR_CURRENT_PROGRAM_CUSTOM1 :{BLACK}Limpar programa atual (apenas Personalizado 1 ou Personalizado 2) STR_PLAYLIST_TOOLTIP_CLEAR_CURRENT_PROGRAM_CUSTOM1 :{BLACK}Limpar programa atual (apenas Personalizado 1 ou Personalizado 2)
STR_PLAYLIST_TOOLTIP_CHANGE_SET :{BLACK}Altera a seleção de músicas para outro set instalado
STR_PLAYLIST_TOOLTIP_CLICK_TO_ADD_TRACK :{BLACK}Clique na faixa de música para a adicionar ao programa atual (apenas Personalizado 1 ou Personalizado 2) STR_PLAYLIST_TOOLTIP_CLICK_TO_ADD_TRACK :{BLACK}Clique na faixa de música para a adicionar ao programa atual (apenas Personalizado 1 ou Personalizado 2)
STR_PLAYLIST_TOOLTIP_CLICK_TO_REMOVE_TRACK :{BLACK}Clique na faixa de música para remover do programa atual (apenas Personalizado 1 ou Personalizado 2) STR_PLAYLIST_TOOLTIP_CLICK_TO_REMOVE_TRACK :{BLACK}Clique na faixa de música para remover do programa atual (apenas Personalizado 1 ou Personalizado 2)
@@ -811,6 +816,7 @@ STR_NEWS_MERGER_TAKEOVER_TITLE :{BIG_FONT}{BLAC
STR_PRESIDENT_NAME_MANAGER :{BLACK}{PRESIDENT_NAME}{}(Gerente) STR_PRESIDENT_NAME_MANAGER :{BLACK}{PRESIDENT_NAME}{}(Gerente)
STR_NEWS_NEW_TOWN :{BLACK}{BIG_FONT}{STRING} patrocinou a construção da nova cidade {TOWN}! STR_NEWS_NEW_TOWN :{BLACK}{BIG_FONT}{STRING} patrocinou a construção da nova cidade {TOWN}!
STR_NEWS_NEW_TOWN_UNSPONSORED :{BLACK}{BIG_FONT}Uma nova cidade, {TOWN}, foi construída!
STR_NEWS_INDUSTRY_CONSTRUCTION :{BIG_FONT}{BLACK}Nov{G o a} {STRING} em construção próximo a {TOWN}! STR_NEWS_INDUSTRY_CONSTRUCTION :{BIG_FONT}{BLACK}Nov{G o a} {STRING} em construção próximo a {TOWN}!
STR_NEWS_INDUSTRY_PLANTED :{BIG_FONT}{BLACK}Nov{G o a} {STRING} sendo plantada próximo a {TOWN}! STR_NEWS_INDUSTRY_PLANTED :{BIG_FONT}{BLACK}Nov{G o a} {STRING} sendo plantada próximo a {TOWN}!
@@ -878,10 +884,10 @@ STR_NEWS_EXCLUSIVE_RIGHTS_DESCRIPTION :{BIG_FONT}{BLAC
# Extra view window # Extra view window
STR_EXTRA_VIEW_PORT_TITLE :{WHITE}Janela {COMMA} STR_EXTRA_VIEW_PORT_TITLE :{WHITE}Janela {COMMA}
STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN :{BLACK}Copiar para janela STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN :{BLACK}Alterar visualização
STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN_TT :{BLACK}Copiar o local da tela principal para esta janela STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN_TT :{BLACK}Copiar o local da tela principal para esta janela
STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW :{BLACK}Colar da janela STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW :{BLACK}Colar da visualização principal
STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW_TT :{BLACK}Colar a localização desta janela para a tela principal STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW_TT :{BLACK}Colar a localização desta janela para a visualização principal
# Game options window # Game options window
STR_GAME_OPTIONS_CAPTION :{WHITE}Opções do Jogo STR_GAME_OPTIONS_CAPTION :{WHITE}Opções do Jogo
@@ -923,6 +929,7 @@ STR_GAME_OPTIONS_CURRENCY_ZAR :Rand Sul-Africa
STR_GAME_OPTIONS_CURRENCY_CUSTOM :Personalizado... STR_GAME_OPTIONS_CURRENCY_CUSTOM :Personalizado...
STR_GAME_OPTIONS_CURRENCY_GEL :Lari da Georgia STR_GAME_OPTIONS_CURRENCY_GEL :Lari da Georgia
STR_GAME_OPTIONS_CURRENCY_IRR :Rial Iraniano STR_GAME_OPTIONS_CURRENCY_IRR :Rial Iraniano
STR_GAME_OPTIONS_CURRENCY_RUB :Novo Rublo Russo (RUB)
############ end of currency region ############ end of currency region
STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Automóveis STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Automóveis
@@ -1335,8 +1342,14 @@ STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_HELPTEXT :Cor do terreno
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_GREEN :Verde STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_GREEN :Verde
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_DARK_GREEN :Verde escuro STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_DARK_GREEN :Verde escuro
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :Violeta STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :Violeta
STR_CONFIG_SETTING_SCROLLMODE :Comportamento de rolamento da janela: {STRING}
STR_CONFIG_SETTING_SCROLLMODE_HELPTEXT :Comportamento ao rolar o mapa
STR_CONFIG_SETTING_SCROLLMODE_DEFAULT :Mover vista com BDM, posição do mouse travada
STR_CONFIG_SETTING_SCROLLMODE_RMB_LOCKED :Mover mapa com BDM, posição do mouse travada
STR_CONFIG_SETTING_SCROLLMODE_RMB :Mover mapa com BDM
STR_CONFIG_SETTING_SCROLLMODE_LMB :Move o mapa com BEM
STR_CONFIG_SETTING_SMOOTH_SCROLLING :Suavizar rolamento da janela: {STRING} STR_CONFIG_SETTING_SMOOTH_SCROLLING :Suavizar rolamento da janela: {STRING}
STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Controla como a janela principal rola para uma posição específica quando clicado no minimapa ou após localizar um objeto. Ativado torna o rolamento suave. Desativado torna o rolamento instanâneo STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Controla como a janela principal rola para uma posição específica quando clicado no minimapa ou após localizar um objeto. Ativado torna o rolamento suave. Desativado torna o rolamento instantâneo
STR_CONFIG_SETTING_MEASURE_TOOLTIP :Exibe distâncias quando usar ferramentas de construção: {STRING} STR_CONFIG_SETTING_MEASURE_TOOLTIP :Exibe distâncias quando usar ferramentas de construção: {STRING}
STR_CONFIG_SETTING_MEASURE_TOOLTIP_HELPTEXT :Exibe distâncias e diferenças de altitude quando clicando e arrastando enquanto constrói STR_CONFIG_SETTING_MEASURE_TOOLTIP_HELPTEXT :Exibe distâncias e diferenças de altitude quando clicando e arrastando enquanto constrói
STR_CONFIG_SETTING_LIVERIES :Exibir cores avançadas: {STRING} STR_CONFIG_SETTING_LIVERIES :Exibir cores avançadas: {STRING}
@@ -2279,6 +2292,7 @@ STR_LINKGRAPH_LEGEND_CAPTION :{BLACK}Legenda
STR_LINKGRAPH_LEGEND_ALL :{BLACK}Todas STR_LINKGRAPH_LEGEND_ALL :{BLACK}Todas
STR_LINKGRAPH_LEGEND_NONE :{BLACK}Nenhuma STR_LINKGRAPH_LEGEND_NONE :{BLACK}Nenhuma
STR_LINKGRAPH_LEGEND_SELECT_COMPANIES :{BLACK}Selecione companhias a serem exibidas STR_LINKGRAPH_LEGEND_SELECT_COMPANIES :{BLACK}Selecione companhias a serem exibidas
STR_LINKGRAPH_LEGEND_COMPANY_TOOLTIP :{BLACK}{STRING}{}{COMPANY}
# Linkgraph legend window and linkgraph legend in smallmap # Linkgraph legend window and linkgraph legend in smallmap
STR_LINKGRAPH_LEGEND_UNUSED :{TINY_FONT}{BLACK}não utilizado STR_LINKGRAPH_LEGEND_UNUSED :{TINY_FONT}{BLACK}não utilizado
@@ -2688,9 +2702,48 @@ STR_ABOUT_VERSION :{BLACK}OpenTTD
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 A equipe do OpenTTD STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 A equipe do OpenTTD
# Framerate display window # Framerate display window
STR_FRAMERATE_CAPTION :{WHITE}Taxa de quadros
STR_FRAMERATE_CAPTION_SMALL :{STRING}{WHITE} ({DECIMAL}x)
STR_FRAMERATE_RATE_GAMELOOP :{WHITE}Taxa de simulação: {STRING}
STR_FRAMERATE_RATE_GAMELOOP_TOOLTIP :{BLACK}Número de tiques simulados por segundo
STR_FRAMERATE_RATE_BLITTER :{WHITE}Taxa de quadros: {STRING}
STR_FRAMERATE_RATE_BLITTER_TOOLTIP :{BLACK}Número de quadros renderizados por segundo.
STR_FRAMERATE_SPEED_FACTOR :{WHITE}Fator de velocidade do jogo atual: {DECIMAL}x
STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK}Quão rápido o jogo está sendo executado, comparado com a velocidade esperada na simulação normal
STR_FRAMERATE_CURRENT :{WHITE}Atual
STR_FRAMERATE_AVERAGE :{WHITE}Médio
STR_FRAMERATE_DATA_POINTS :{WHITE}Dados baseados em {COMMA} medidas
STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL}{WHITE} ms
STR_FRAMERATE_MS_WARN :{YELLOW}{DECIMAL}{WHITE} ms
STR_FRAMERATE_MS_BAD :{RED}{DECIMAL}{WHITE} ms
STR_FRAMERATE_FPS_GOOD :{LTBLUE}{DECIMAL}{WHITE} quadros/s
STR_FRAMERATE_FPS_WARN :{YELLOW}{DECIMAL}{WHITE} quadros/s
STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL}{WHITE} quadros/s
STR_FRAMERATE_GRAPH_MILLISECONDS :{TINY_FONT}{COMMA} ms
STR_FRAMERATE_GRAPH_SECONDS :{TINY_FONT}{COMMA} s
############ Leave those lines in this order!! ############ Leave those lines in this order!!
STR_FRAMERATE_GL_ECONOMY :{WHITE} Manuseio de carga:
STR_FRAMERATE_GL_TRAINS :{WHITE} Tiques de trem:
STR_FRAMERATE_GL_ROADVEHS :{WHITE} Tiques de automóveis:
STR_FRAMERATE_GL_SHIPS :{WHITE} Tiques de embarcação:
STR_FRAMERATE_GL_AIRCRAFT :{WHITE} Tiques de aeronave:
STR_FRAMERATE_GL_LANDSCAPE :{WHITE} Tiques do mundo:
STR_FRAMERATE_DRAWING :{WHITE}Renderizações de gráficos:
STR_FRAMERATE_DRAWING_VIEWPORTS :{WHITE} Visualizações do mundo:
STR_FRAMERATE_VIDEO :{WHITE}Saída de vídeo:
STR_FRAMERATE_SOUND :{WHITE}Mixagem de áudio:
############ End of leave-in-this-order ############ End of leave-in-this-order
############ Leave those lines in this order!! ############ Leave those lines in this order!!
STR_FRAMETIME_CAPTION_GL_ECONOMY :Manuseio de carga
STR_FRAMETIME_CAPTION_GL_TRAINS :Tiques de trem
STR_FRAMETIME_CAPTION_GL_ROADVEHS :Tiques de automóveis
STR_FRAMETIME_CAPTION_GL_SHIPS :Tiques de embarcação
STR_FRAMETIME_CAPTION_GL_AIRCRAFT :Tiques de aeronave:
STR_FRAMETIME_CAPTION_GL_LANDSCAPE :Tiques do mundo
STR_FRAMETIME_CAPTION_DRAWING :Renderizações de gráficos
STR_FRAMETIME_CAPTION_DRAWING_VIEWPORTS :Renderização da janela principal
STR_FRAMETIME_CAPTION_VIDEO :Saída de vídeo
STR_FRAMETIME_CAPTION_SOUND :Mixagem de áudio
############ End of leave-in-this-order ############ End of leave-in-this-order
@@ -2978,6 +3031,7 @@ STR_EDIT_SIGN_SIGN_OSKTITLE :{BLACK}Coloque
STR_TOWN_DIRECTORY_CAPTION :{WHITE}Cidades STR_TOWN_DIRECTORY_CAPTION :{WHITE}Cidades
STR_TOWN_DIRECTORY_NONE :{ORANGE}- Nenhum - STR_TOWN_DIRECTORY_NONE :{ORANGE}- Nenhum -
STR_TOWN_DIRECTORY_TOWN :{ORANGE}{TOWN}{BLACK} ({COMMA}) STR_TOWN_DIRECTORY_TOWN :{ORANGE}{TOWN}{BLACK} ({COMMA})
STR_TOWN_DIRECTORY_CITY :{ORANGE}{TOWN}{YELLOW} (Cidade){BLACK} ({COMMA})
STR_TOWN_DIRECTORY_LIST_TOOLTIP :{BLACK}Nomes das cidades - clique no nome para centralizar a visualização principal na cidade. Ctrl+Clique abre uma nova janela na localização da cidade STR_TOWN_DIRECTORY_LIST_TOOLTIP :{BLACK}Nomes das cidades - clique no nome para centralizar a visualização principal na cidade. Ctrl+Clique abre uma nova janela na localização da cidade
STR_TOWN_POPULATION :{BLACK}População mundial: {COMMA} STR_TOWN_POPULATION :{BLACK}População mundial: {COMMA}
@@ -2985,6 +3039,7 @@ STR_TOWN_POPULATION :{BLACK}Populaç
STR_TOWN_VIEW_TOWN_CAPTION :{WHITE}{TOWN} STR_TOWN_VIEW_TOWN_CAPTION :{WHITE}{TOWN}
STR_TOWN_VIEW_CITY_CAPTION :{WHITE}{TOWN} (Cidade) STR_TOWN_VIEW_CITY_CAPTION :{WHITE}{TOWN} (Cidade)
STR_TOWN_VIEW_POPULATION_HOUSES :{BLACK}População: {ORANGE}{COMMA}{BLACK} Casas: {ORANGE}{COMMA} STR_TOWN_VIEW_POPULATION_HOUSES :{BLACK}População: {ORANGE}{COMMA}{BLACK} Casas: {ORANGE}{COMMA}
STR_TOWN_VIEW_CARGO_LAST_MONTH_MAX :{BLACK}{CARGO_LIST} últ. mês: {ORANGE}{COMMA}{BLACK} max: {ORANGE}{COMMA}
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH :{BLACK}Carga necessária para prover o crescimento: STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH :{BLACK}Carga necessária para prover o crescimento:
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_GENERAL :{ORANGE}{STRING}{RED} necessário(a) STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_GENERAL :{ORANGE}{STRING}{RED} necessário(a)
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_WINTER :{ORANGE}{STRING}{BLACK} necessário no inverno STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_WINTER :{ORANGE}{STRING}{BLACK} necessário no inverno
@@ -4223,7 +4278,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Estaçõ
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}A estação já tem muitas partes STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}A estação já tem muitas partes
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Estações de ônibus demais STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Estações de ônibus demais
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Áreas de carga demais STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Áreas de carga demais
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Muito perto de outra estação/local de carga
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Muito perto de outra doca STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Muito perto de outra doca
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Muito perto de outro aeroporto STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Muito perto de outro aeroporto
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Impossível renomear a estação... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Impossível renomear a estação...
@@ -4231,6 +4285,7 @@ STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... é u
STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... rua na direção errada STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... rua na direção errada
STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... paradas "drive-thru" não podem ter esquinas STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... paradas "drive-thru" não podem ter esquinas
STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... paradas "drive-thru" não podem ter junções STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... paradas "drive-thru" não podem ter junções
STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}... rua é mão única ou está bloqueada
# Station destruction related errors # Station destruction related errors
STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Impossível remover parte da estação... STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Impossível remover parte da estação...
@@ -4299,7 +4354,7 @@ STR_ERROR_IMPOSSIBLE_TRACK_COMBINATION :{WHITE}Impossí
STR_ERROR_MUST_REMOVE_SIGNALS_FIRST :{WHITE}Remova os semáforos antes STR_ERROR_MUST_REMOVE_SIGNALS_FIRST :{WHITE}Remova os semáforos antes
STR_ERROR_NO_SUITABLE_RAILROAD_TRACK :{WHITE}Tipo de linha não apropriado STR_ERROR_NO_SUITABLE_RAILROAD_TRACK :{WHITE}Tipo de linha não apropriado
STR_ERROR_MUST_REMOVE_RAILROAD_TRACK :{WHITE}Remova a ferrovia antes STR_ERROR_MUST_REMOVE_RAILROAD_TRACK :{WHITE}Remova a ferrovia antes
STR_ERROR_CROSSING_ON_ONEWAY_ROAD :{WHITE}Rua é mão única ou está bloqueado STR_ERROR_CROSSING_ON_ONEWAY_ROAD :{WHITE}Rua é mão única ou está bloqueada
STR_ERROR_CROSSING_DISALLOWED :{WHITE}Cruzamentos de nível não são permitidos para esse tipo de trilho STR_ERROR_CROSSING_DISALLOWED :{WHITE}Cruzamentos de nível não são permitidos para esse tipo de trilho
STR_ERROR_CAN_T_BUILD_SIGNALS_HERE :{WHITE}Impossível construir sinais aqui... STR_ERROR_CAN_T_BUILD_SIGNALS_HERE :{WHITE}Impossível construir sinais aqui...
STR_ERROR_CAN_T_BUILD_RAILROAD_TRACK :{WHITE}Impossível construir ferrovia aqui... STR_ERROR_CAN_T_BUILD_RAILROAD_TRACK :{WHITE}Impossível construir ferrovia aqui...
@@ -4482,6 +4537,8 @@ STR_BASESOUNDS_DOS_DESCRIPTION :Sons Originais
STR_BASESOUNDS_WIN_DESCRIPTION :Sons Originais do Transport Tycoon Deluxe, Edição Windows. STR_BASESOUNDS_WIN_DESCRIPTION :Sons Originais do Transport Tycoon Deluxe, Edição Windows.
STR_BASESOUNDS_NONE_DESCRIPTION :Um pacote de sons sem sons. STR_BASESOUNDS_NONE_DESCRIPTION :Um pacote de sons sem sons.
STR_BASEMUSIC_WIN_DESCRIPTION :Música Original do Transport Tycoon Deluxe, Edição Windows STR_BASEMUSIC_WIN_DESCRIPTION :Música Original do Transport Tycoon Deluxe, Edição Windows
STR_BASEMUSIC_DOS_DESCRIPTION :Música Original do Transport Tycoon Deluxe DOS.
STR_BASEMUSIC_TTO_DESCRIPTION :Música Original do Transport Tycoon DOS
STR_BASEMUSIC_NONE_DESCRIPTION :Um pacote de músicas sem músicas. STR_BASEMUSIC_NONE_DESCRIPTION :Um pacote de músicas sem músicas.
##id 0x2000 ##id 0x2000

View File

@@ -4133,7 +4133,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Твър
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Твърде много части на гара STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Твърде много части на гара
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Твърде много автобусни спирки STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Твърде много автобусни спирки
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Твърде много гари за камиони STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Твърде много гари за камиони
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Твърде близо до друга гара/товарна платформа
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Прекалено близо до друг док STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Прекалено близо до друг док
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Прекалено близо до друго летище STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Прекалено близо до друго летище
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Станцията не може да бъде преименувана... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Станцията не може да бъде преименувана...

View File

@@ -4280,7 +4280,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Massa es
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Hi ha massa parts d'estacions de tren STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Hi ha massa parts d'estacions de tren
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Massa parades d'autobús STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Massa parades d'autobús
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Masses estacions de càrrega STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Masses estacions de càrrega
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Massa prop d'una altra estació/àrea de càrrega
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Massa prop d'un altre moll STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Massa prop d'un altre moll
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Massa prop d'un altre aeroport STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Massa prop d'un altre aeroport
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}No es pot canviar el nom de l'estació... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}No es pot canviar el nom de l'estació...

View File

@@ -911,6 +911,7 @@ STR_NEWS_MERGER_TAKEOVER_TITLE :{BIG_FONT}{BLAC
STR_PRESIDENT_NAME_MANAGER :{BLACK}{PRESIDENT_NAME}{}(Direktor) STR_PRESIDENT_NAME_MANAGER :{BLACK}{PRESIDENT_NAME}{}(Direktor)
STR_NEWS_NEW_TOWN :{BLACK}{BIG_FONT}Tvrtka {STRING} sponzorira izgradnju novoga grada {TOWN}! STR_NEWS_NEW_TOWN :{BLACK}{BIG_FONT}Tvrtka {STRING} sponzorira izgradnju novoga grada {TOWN}!
STR_NEWS_NEW_TOWN_UNSPONSORED :{BLACK}{BIG_FONT}Sagrađen je novi grad {TOWN}!
STR_NEWS_INDUSTRY_CONSTRUCTION :{BIG_FONT}{BLACK}Započela je izgradnja nove {STRING.gen} u blizini grada {TOWN}a! STR_NEWS_INDUSTRY_CONSTRUCTION :{BIG_FONT}{BLACK}Započela je izgradnja nove {STRING.gen} u blizini grada {TOWN}a!
STR_NEWS_INDUSTRY_PLANTED :{BIG_FONT}{BLACK}Nova {STRING} trenutno se sadi blizu grada {TOWN}a! STR_NEWS_INDUSTRY_PLANTED :{BIG_FONT}{BLACK}Nova {STRING} trenutno se sadi blizu grada {TOWN}a!
@@ -1023,6 +1024,7 @@ STR_GAME_OPTIONS_CURRENCY_ZAR :Južnoafrički
STR_GAME_OPTIONS_CURRENCY_CUSTOM :Proizvoljno... STR_GAME_OPTIONS_CURRENCY_CUSTOM :Proizvoljno...
STR_GAME_OPTIONS_CURRENCY_GEL :Gruzijski Lari (GEL) STR_GAME_OPTIONS_CURRENCY_GEL :Gruzijski Lari (GEL)
STR_GAME_OPTIONS_CURRENCY_IRR :Iranski Rial (IRR) STR_GAME_OPTIONS_CURRENCY_IRR :Iranski Rial (IRR)
STR_GAME_OPTIONS_CURRENCY_RUB :Nove ruske rublje (RUB)
############ end of currency region ############ end of currency region
STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Cestovna vozila STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Cestovna vozila
@@ -3064,6 +3066,8 @@ STR_NEWGRF_ERROR_READ_BOUNDS :Pročitaj nakon
STR_NEWGRF_ERROR_GRM_FAILED :Zatraženi GRF resursi nisu dostupni (sprite {3:NUM}) STR_NEWGRF_ERROR_GRM_FAILED :Zatraženi GRF resursi nisu dostupni (sprite {3:NUM})
STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} je isključen od strane {STRING} STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} je isključen od strane {STRING}
STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Pogrešan/nepoznat format raspored sprite-a (sprite {3:NUM}) STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Pogrešan/nepoznat format raspored sprite-a (sprite {3:NUM})
STR_NEWGRF_ERROR_LIST_PROPERTY_TOO_LONG :Previše elemenata na listi postavki varijabli (sprite {3:NUM}, postavka {4:HEX})
STR_NEWGRF_ERROR_INDPROD_CALLBACK :Pogrešna callback funkcija za industrijsku proizvodnju (sprite {3:NUM}, "{1:STRING}")
# NewGRF related 'general' warnings # NewGRF related 'general' warnings
STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Oprez! STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Oprez!
@@ -4375,7 +4379,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Previše
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Previše dijelova željezničke postaje STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Previše dijelova željezničke postaje
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Previše autobusnih postaja STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Previše autobusnih postaja
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Previše kamionskih postaja STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Previše kamionskih postaja
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Preblizu drugoj postaji/terminalu
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Preblizu drugom pristaništu STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Preblizu drugom pristaništu
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Preblizu drugoj zračnoj luci STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Preblizu drugoj zračnoj luci
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Nije moguće preimenovati postaju... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Nije moguće preimenovati postaju...

View File

@@ -550,6 +550,7 @@ STR_ABOUT_MENU_SCREENSHOT :Screenshot
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Screenshot v plném přiblížení STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Screenshot v plném přiblížení
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Screenshot ve výchozím přiblížení STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Screenshot ve výchozím přiblížení
STR_ABOUT_MENU_GIANT_SCREENSHOT :Screenshot celé mapy STR_ABOUT_MENU_GIANT_SCREENSHOT :Screenshot celé mapy
STR_ABOUT_MENU_SHOW_FRAMERATE :Zobrazit počet snímků za sekundu
STR_ABOUT_MENU_ABOUT_OPENTTD :O 'OpenTTD' STR_ABOUT_MENU_ABOUT_OPENTTD :O 'OpenTTD'
STR_ABOUT_MENU_SPRITE_ALIGNER :Zarovnávání spritů STR_ABOUT_MENU_SPRITE_ALIGNER :Zarovnávání spritů
STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Přepnout ohraničení STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Přepnout ohraničení
@@ -737,6 +738,7 @@ STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLA
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}-- STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM} STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------ STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------
STR_MUSIC_TITLE_NOMUSIC :{TINY_FONT}{DKGREEN}Hudba nedostupná
STR_MUSIC_TITLE_NAME :{TINY_FONT}{DKGREEN}"{STRING}" STR_MUSIC_TITLE_NAME :{TINY_FONT}{DKGREEN}"{STRING}"
STR_MUSIC_TRACK :{TINY_FONT}{BLACK}Skladba STR_MUSIC_TRACK :{TINY_FONT}{BLACK}Skladba
STR_MUSIC_XTITLE :{TINY_FONT}{BLACK}Název STR_MUSIC_XTITLE :{TINY_FONT}{BLACK}Název
@@ -762,6 +764,7 @@ STR_PLAYLIST_TRACK_INDEX :{TINY_FONT}{BLA
STR_PLAYLIST_PROGRAM :{TINY_FONT}{BLACK}Program - '{STRING}' STR_PLAYLIST_PROGRAM :{TINY_FONT}{BLACK}Program - '{STRING}'
STR_PLAYLIST_CLEAR :{TINY_FONT}{BLACK}Vymazat STR_PLAYLIST_CLEAR :{TINY_FONT}{BLACK}Vymazat
STR_PLAYLIST_TOOLTIP_CLEAR_CURRENT_PROGRAM_CUSTOM1 :{BLACK}Vyprázdnit současný program (jen u Voleb 1 a 2) STR_PLAYLIST_TOOLTIP_CLEAR_CURRENT_PROGRAM_CUSTOM1 :{BLACK}Vyprázdnit současný program (jen u Voleb 1 a 2)
STR_PLAYLIST_TOOLTIP_CHANGE_SET :{BLACK}Změnit výběr hudby na jinou nainstalovanou sadu.
STR_PLAYLIST_TOOLTIP_CLICK_TO_ADD_TRACK :{BLACK}Skladba se přidá do zvoleného programu (Volba 1 nebo 2) klepnutím na její název STR_PLAYLIST_TOOLTIP_CLICK_TO_ADD_TRACK :{BLACK}Skladba se přidá do zvoleného programu (Volba 1 nebo 2) klepnutím na její název
STR_PLAYLIST_TOOLTIP_CLICK_TO_REMOVE_TRACK :{BLACK}Hudební stopu odstraníš ze současného programu (pouze u vlastního) kliknutím na ni STR_PLAYLIST_TOOLTIP_CLICK_TO_REMOVE_TRACK :{BLACK}Hudební stopu odstraníš ze současného programu (pouze u vlastního) kliknutím na ni
@@ -897,6 +900,7 @@ STR_NEWS_MERGER_TAKEOVER_TITLE :{BIG_FONT}{BLAC
STR_PRESIDENT_NAME_MANAGER :{BLACK}{PRESIDENT_NAME}{}(Prezident) STR_PRESIDENT_NAME_MANAGER :{BLACK}{PRESIDENT_NAME}{}(Prezident)
STR_NEWS_NEW_TOWN :{BLACK}{BIG_FONT}Společnost {STRING} zaplatila výstavbu nového města {TOWN}! STR_NEWS_NEW_TOWN :{BLACK}{BIG_FONT}Společnost {STRING} zaplatila výstavbu nového města {TOWN}!
STR_NEWS_NEW_TOWN_UNSPONSORED :{BLACK}{BIG_FONT}Nové město {TOWN} bylo vystavěno!
STR_NEWS_INDUSTRY_CONSTRUCTION :{BIG_FONT}{BLACK}Nov{G ý á é í é é á} {STRING.small} se staví poblíž města {TOWN}! STR_NEWS_INDUSTRY_CONSTRUCTION :{BIG_FONT}{BLACK}Nov{G ý á é í é é á} {STRING.small} se staví poblíž města {TOWN}!
STR_NEWS_INDUSTRY_PLANTED :{BIG_FONT}{BLACK}Nov{G ý á é í é é á} {STRING.small} se vysazuj{G 0 e e e í í í í} poblíž města {TOWN}! STR_NEWS_INDUSTRY_PLANTED :{BIG_FONT}{BLACK}Nov{G ý á é í é é á} {STRING.small} se vysazuj{G 0 e e e í í í í} poblíž města {TOWN}!
@@ -966,7 +970,7 @@ STR_NEWS_EXCLUSIVE_RIGHTS_DESCRIPTION :{BIG_FONT}{BLAC
STR_EXTRA_VIEW_PORT_TITLE :{WHITE}Pohled {COMMA} STR_EXTRA_VIEW_PORT_TITLE :{WHITE}Pohled {COMMA}
STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN :{BLACK}Nastavit jako pohled STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN :{BLACK}Nastavit jako pohled
STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN_TT :{BLACK}Nastavit současné zorné pole jako pohled STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN_TT :{BLACK}Nastavit současné zorné pole jako pohled
STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW :{BLACK}Přejít na pohled STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW :{BLACK}Změnit hlavní pohled
STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW_TT :{BLACK}Nastavit pohled do zorného pole STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW_TT :{BLACK}Nastavit pohled do zorného pole
# Game options window # Game options window
@@ -1009,6 +1013,7 @@ STR_GAME_OPTIONS_CURRENCY_ZAR :Jihoafrický ra
STR_GAME_OPTIONS_CURRENCY_CUSTOM :Vlastní... STR_GAME_OPTIONS_CURRENCY_CUSTOM :Vlastní...
STR_GAME_OPTIONS_CURRENCY_GEL :Georgijské Lari (GEL) STR_GAME_OPTIONS_CURRENCY_GEL :Georgijské Lari (GEL)
STR_GAME_OPTIONS_CURRENCY_IRR :Íránský Riál (IRR) STR_GAME_OPTIONS_CURRENCY_IRR :Íránský Riál (IRR)
STR_GAME_OPTIONS_CURRENCY_RUB :Ruský rubl (RUB)
############ end of currency region ############ end of currency region
STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Silniční vozidla jezdí STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Silniční vozidla jezdí
@@ -2365,6 +2370,7 @@ STR_LINKGRAPH_LEGEND_CAPTION :{BLACK}Legenda
STR_LINKGRAPH_LEGEND_ALL :{BLACK}Všechny STR_LINKGRAPH_LEGEND_ALL :{BLACK}Všechny
STR_LINKGRAPH_LEGEND_NONE :{BLACK}Žádný STR_LINKGRAPH_LEGEND_NONE :{BLACK}Žádný
STR_LINKGRAPH_LEGEND_SELECT_COMPANIES :{BLACK}Vybrat firmy, které mají být zobrazeny STR_LINKGRAPH_LEGEND_SELECT_COMPANIES :{BLACK}Vybrat firmy, které mají být zobrazeny
STR_LINKGRAPH_LEGEND_COMPANY_TOOLTIP :{BLACK}{STRING}{}{COMPANY}
# Linkgraph legend window and linkgraph legend in smallmap # Linkgraph legend window and linkgraph legend in smallmap
STR_LINKGRAPH_LEGEND_UNUSED :{TINY_FONT}{BLACK}nepoužívaný STR_LINKGRAPH_LEGEND_UNUSED :{TINY_FONT}{BLACK}nepoužívaný
@@ -2780,9 +2786,24 @@ STR_ABOUT_VERSION :{BLACK}OpenTTD
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 Tým OpenTTD STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 Tým OpenTTD
# Framerate display window # Framerate display window
STR_FRAMERATE_CAPTION :{WHITE}Počet snímků za sekundu
STR_FRAMERATE_RATE_BLITTER_TOOLTIP :{BLACK}Počet snímků videa vykreslovaných za sekundu.
STR_FRAMERATE_SPEED_FACTOR :{WHITE}Aktuální činitel rychlosti hry: {DECIMAL}x
STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK}Rychlost, kterou hra právě běží, v porovnání s očekávanou rychlostí při běžné rychlosti simulace.
STR_FRAMERATE_AVERAGE :{WHITE}Průměr
STR_FRAMERATE_MS_BAD :{RED}{DECIMAL}{WHITE} ms
STR_FRAMERATE_FPS_WARN :{YELLOW}{DECIMAL}{WHITE} sním{P "ek" "ky" "ků"}/s
STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL}{WHITE} sním{P "ek" "ky" "ků"}/s
STR_FRAMERATE_GRAPH_MILLISECONDS :{TINY_FONT}{COMMA} ms
STR_FRAMERATE_GRAPH_SECONDS :{TINY_FONT}{COMMA} s
############ Leave those lines in this order!! ############ Leave those lines in this order!!
STR_FRAMERATE_GL_ECONOMY :{WHITE} Manipulace s nákladem:
STR_FRAMERATE_DRAWING :{WHITE}Vykreslování grafiky:
############ End of leave-in-this-order ############ End of leave-in-this-order
############ Leave those lines in this order!! ############ Leave those lines in this order!!
STR_FRAMETIME_CAPTION_GL_ECONOMY :Manipulace s nákladem
STR_FRAMETIME_CAPTION_DRAWING :Vykreslování grafiky
STR_FRAMETIME_CAPTION_SOUND :Míchání zvuků
############ End of leave-in-this-order ############ End of leave-in-this-order
@@ -3070,6 +3091,7 @@ STR_EDIT_SIGN_SIGN_OSKTITLE :{BLACK}Zadej n
STR_TOWN_DIRECTORY_CAPTION :{WHITE}Města STR_TOWN_DIRECTORY_CAPTION :{WHITE}Města
STR_TOWN_DIRECTORY_NONE :{ORANGE}- Nic - STR_TOWN_DIRECTORY_NONE :{ORANGE}- Nic -
STR_TOWN_DIRECTORY_TOWN :{ORANGE}{TOWN}{BLACK} ({COMMA}) STR_TOWN_DIRECTORY_TOWN :{ORANGE}{TOWN}{BLACK} ({COMMA})
STR_TOWN_DIRECTORY_CITY :{ORANGE}{TOWN}{YELLOW} (velkoměsto){BLACK} ({COMMA})
STR_TOWN_DIRECTORY_LIST_TOOLTIP :{BLACK}Jména měst - pohled na město zaměříš kliknutím na jeho jméno. Při stisknutém Ctrl otevřeš nový pohled STR_TOWN_DIRECTORY_LIST_TOOLTIP :{BLACK}Jména měst - pohled na město zaměříš kliknutím na jeho jméno. Při stisknutém Ctrl otevřeš nový pohled
STR_TOWN_POPULATION :{BLACK}Populace světa: {COMMA} STR_TOWN_POPULATION :{BLACK}Populace světa: {COMMA}
@@ -3077,6 +3099,7 @@ STR_TOWN_POPULATION :{BLACK}Populace
STR_TOWN_VIEW_TOWN_CAPTION :{WHITE}{TOWN} STR_TOWN_VIEW_TOWN_CAPTION :{WHITE}{TOWN}
STR_TOWN_VIEW_CITY_CAPTION :{WHITE}{TOWN} (velkoměsto) STR_TOWN_VIEW_CITY_CAPTION :{WHITE}{TOWN} (velkoměsto)
STR_TOWN_VIEW_POPULATION_HOUSES :{BLACK}Populace: {ORANGE}{COMMA}{BLACK} Domů: {ORANGE}{COMMA} STR_TOWN_VIEW_POPULATION_HOUSES :{BLACK}Populace: {ORANGE}{COMMA}{BLACK} Domů: {ORANGE}{COMMA}
STR_TOWN_VIEW_CARGO_LAST_MONTH_MAX :{BLACK}{CARGO_LIST} minulý měsíc: {ORANGE}{COMMA}{BLACK} max: {ORANGE}{COMMA}
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH :{BLACK}Množství doručeného nákladu potřebného pro rozvoj města: STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH :{BLACK}Množství doručeného nákladu potřebného pro rozvoj města:
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_GENERAL :{RED}Je potřeba {ORANGE}{STRING} STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_GENERAL :{RED}Je potřeba {ORANGE}{STRING}
STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_WINTER :{ORANGE}{STRING}{BLACK} vyžadováno v zimě STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_WINTER :{ORANGE}{STRING}{BLACK} vyžadováno v zimě
@@ -4318,7 +4341,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Příli
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Příliš mnoho staničních částí STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Příliš mnoho staničních částí
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Příliš mnoho autobusových zastávek STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Příliš mnoho autobusových zastávek
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Příliš mnoho zastávek nákladních automobilů STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Příliš mnoho zastávek nákladních automobilů
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Příliš blízko k jinému nádraží nebo nákladové rampě
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Příliš blízko k jinému doku STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Příliš blízko k jinému doku
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Příliš blízko k jinému letišti STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Příliš blízko k jinému letišti
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Nelze přejmenovat stanici... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Nelze přejmenovat stanici...
@@ -4326,6 +4348,7 @@ STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... tato
STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... silnice je otočena jiným směrem STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... silnice je otočena jiným směrem
STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... průjezdné zastávky nemohou být v zatáčce STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... průjezdné zastávky nemohou být v zatáčce
STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... průjezdné zastávky nemohou být na křižovatce STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... průjezdné zastávky nemohou být na křižovatce
STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}... silnice je jednosměrná nebo uzavřená.
# Station destruction related errors # Station destruction related errors
STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Nelze odstranit část stanice... STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Nelze odstranit část stanice...
@@ -4584,6 +4607,8 @@ STR_BASESOUNDS_DOS_DESCRIPTION :Původní sada
STR_BASESOUNDS_WIN_DESCRIPTION :Původní sada zvuků Transport Tycoon Deluxe (verze pro Windows). STR_BASESOUNDS_WIN_DESCRIPTION :Původní sada zvuků Transport Tycoon Deluxe (verze pro Windows).
STR_BASESOUNDS_NONE_DESCRIPTION :Prázdná sada zvuků. STR_BASESOUNDS_NONE_DESCRIPTION :Prázdná sada zvuků.
STR_BASEMUSIC_WIN_DESCRIPTION :Původní hudba Transport Tycoon Deluxe (verze pro Windows). STR_BASEMUSIC_WIN_DESCRIPTION :Původní hudba Transport Tycoon Deluxe (verze pro Windows).
STR_BASEMUSIC_DOS_DESCRIPTION :Původní hudba Transport Tycoon Deluxe (verze pro DOS).
STR_BASEMUSIC_TTO_DESCRIPTION :Původní hudba Transport Tycoon (verze pro DOS).
STR_BASEMUSIC_NONE_DESCRIPTION :Prázná hudební sada. STR_BASEMUSIC_NONE_DESCRIPTION :Prázná hudební sada.
##id 0x2000 ##id 0x2000

View File

@@ -4228,7 +4228,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}For mang
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Banegården er i for mange dele STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Banegården er i for mange dele
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}For mange busterminaler STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}For mange busterminaler
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}For mange fragtcentraler STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}For mange fragtcentraler
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}For tæt på en anden station/fragtcentral
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}For tæt på en anden havn STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}For tæt på en anden havn
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}For tæt på en anden lufthavn STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}For tæt på en anden lufthavn
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Kan ikke omdøbe stationen... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Kan ikke omdøbe stationen...

File diff suppressed because it is too large Load Diff

View File

@@ -815,6 +815,7 @@ STR_NEWS_MERGER_TAKEOVER_TITLE :{BIG_FONT}{BLAC
STR_PRESIDENT_NAME_MANAGER :{BLACK}{PRESIDENT_NAME}{}(Manager) STR_PRESIDENT_NAME_MANAGER :{BLACK}{PRESIDENT_NAME}{}(Manager)
STR_NEWS_NEW_TOWN :{BLACK}{BIG_FONT}{RAW_STRING} sponsored construction of new town {TOWN}! STR_NEWS_NEW_TOWN :{BLACK}{BIG_FONT}{RAW_STRING} sponsored construction of new town {TOWN}!
STR_NEWS_NEW_TOWN_UNSPONSORED :{BLACK}{BIG_FONT}A new town called {TOWN} has been constructed!
STR_NEWS_INDUSTRY_CONSTRUCTION :{BIG_FONT}{BLACK}New {STRING} under construction near {TOWN}! STR_NEWS_INDUSTRY_CONSTRUCTION :{BIG_FONT}{BLACK}New {STRING} under construction near {TOWN}!
STR_NEWS_INDUSTRY_PLANTED :{BIG_FONT}{BLACK}New {STRING} being planted near {TOWN}! STR_NEWS_INDUSTRY_PLANTED :{BIG_FONT}{BLACK}New {STRING} being planted near {TOWN}!
@@ -2969,6 +2970,8 @@ STR_NEWGRF_ERROR_READ_BOUNDS :Read past end o
STR_NEWGRF_ERROR_GRM_FAILED :Requested GRF resources not available (sprite {3:NUM}) STR_NEWGRF_ERROR_GRM_FAILED :Requested GRF resources not available (sprite {3:NUM})
STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:RAW_STRING} was disabled by {2:RAW_STRING} STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:RAW_STRING} was disabled by {2:RAW_STRING}
STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Invalid/unknown sprite layout format (sprite {3:NUM}) STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Invalid/unknown sprite layout format (sprite {3:NUM})
STR_NEWGRF_ERROR_LIST_PROPERTY_TOO_LONG :Too many elements in property value list (sprite {3:NUM}, property {4:HEX})
STR_NEWGRF_ERROR_INDPROD_CALLBACK :Invalid industry production callback (sprite {3:NUM}, "{1:RAW_STRING}")
# NewGRF related 'general' warnings # NewGRF related 'general' warnings
STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Caution! STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Caution!
@@ -4280,7 +4283,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Too many
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Too many railway station parts STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Too many railway station parts
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Too many bus stops STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Too many bus stops
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Too many lorry stations STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Too many lorry stations
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Too close to another station/loading area
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Too close to another dock STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Too close to another dock
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Too close to another airport STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Too close to another airport
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Can't rename station... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Can't rename station...

View File

@@ -4153,7 +4153,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Too many
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Too many railway station parts STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Too many railway station parts
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Too many bus stops STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Too many bus stops
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Too many Truck stations STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Too many Truck stations
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Too close to another station/loading area
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Too close to another dock STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Too close to another dock
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Too close to another airport STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Too close to another airport
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Can't rename station... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Can't rename station...

View File

@@ -4235,7 +4235,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Too many
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Too many railroad station parts STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Too many railroad station parts
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Too many bus stops STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Too many bus stops
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Too many truck stations STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Too many truck stations
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Too close to another station/loading area
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Too close to another dock STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Too close to another dock
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Too close to another airport STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Too close to another airport
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Can't rename station... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Can't rename station...

View File

@@ -3579,7 +3579,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Tro da s
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Tro da partoj de stacidomo STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Tro da partoj de stacidomo
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Tro da bushaltejoj STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Tro da bushaltejoj
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Tro da ŝarĝaŭtaj stacioj STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Tro da ŝarĝaŭtaj stacioj
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Tro proksime al alia stacioj/ŝarĝejoj
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Tro proksime al alia haveno STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Tro proksime al alia haveno
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Tro proksime al alia flughaveno STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Tro proksime al alia flughaveno
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Ne povas alinomi stacion... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Ne povas alinomi stacion...

View File

@@ -4261,7 +4261,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Liiga pa
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Liiga palju raudteejaama osasid STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Liiga palju raudteejaama osasid
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Liiga palju bussipeatusi STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Liiga palju bussipeatusi
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Liiga palju laadimisplatvorme STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Liiga palju laadimisplatvorme
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Mõnele teisele jaamale liiga lähedal
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Liiga lähedal teisele dokile STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Liiga lähedal teisele dokile
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Liiga lähedal teisele lennuväljale STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Liiga lähedal teisele lennuväljale
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Jaama nime ei saa vahetada... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Jaama nime ei saa vahetada...

View File

@@ -3723,7 +3723,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Ov nógv
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Ov nógvir tok støð deilir STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Ov nógvir tok støð deilir
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Ov nógvir buss steðgir STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Ov nógvir buss steðgir
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Ov nógvar lastbila støðir STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Ov nógvar lastbila støðir
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Ov tætt við eina aðra støð/lessi øki
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Ov tætt við eina aðra havn STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Ov tætt við eina aðra havn
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Ov tætt við eina aðra floghavn STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Ov tætt við eina aðra floghavn
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Kann ikki navngeva støð... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Kann ikki navngeva støð...

View File

@@ -475,6 +475,7 @@ STR_ABOUT_MENU_SCREENSHOT :Kuvakaappaus
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Täysin lähennetty kuvakaappaus STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Täysin lähennetty kuvakaappaus
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Kuvakaappaus oletuslähennystasolla STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Kuvakaappaus oletuslähennystasolla
STR_ABOUT_MENU_GIANT_SCREENSHOT :Koko kartan kuvakaappaus STR_ABOUT_MENU_GIANT_SCREENSHOT :Koko kartan kuvakaappaus
STR_ABOUT_MENU_SHOW_FRAMERATE :Näytä kuvataajuus
STR_ABOUT_MENU_ABOUT_OPENTTD :Tietoja OpenTTD:stä STR_ABOUT_MENU_ABOUT_OPENTTD :Tietoja OpenTTD:stä
STR_ABOUT_MENU_SPRITE_ALIGNER :Sprite-kohdistaja STR_ABOUT_MENU_SPRITE_ALIGNER :Sprite-kohdistaja
STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Reunat päälle/pois STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Reunat päälle/pois
@@ -650,6 +651,7 @@ STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLA
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}-- STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM} STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------ STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------
STR_MUSIC_TITLE_NOMUSIC :{TINY_FONT}{DKGREEN}Musiikkia ei ole saatavilla
STR_MUSIC_TITLE_NAME :{TINY_FONT}{DKGREEN}"{STRING}" STR_MUSIC_TITLE_NAME :{TINY_FONT}{DKGREEN}"{STRING}"
STR_MUSIC_TRACK :{TINY_FONT}{BLACK}Raita STR_MUSIC_TRACK :{TINY_FONT}{BLACK}Raita
STR_MUSIC_XTITLE :{TINY_FONT}{BLACK}Nimi STR_MUSIC_XTITLE :{TINY_FONT}{BLACK}Nimi
@@ -810,6 +812,7 @@ STR_NEWS_MERGER_TAKEOVER_TITLE :{BIG_FONT}{BLAC
STR_PRESIDENT_NAME_MANAGER :{BLACK}{PRESIDENT_NAME}{}(pääjohtaja) STR_PRESIDENT_NAME_MANAGER :{BLACK}{PRESIDENT_NAME}{}(pääjohtaja)
STR_NEWS_NEW_TOWN :{BLACK}{BIG_FONT}{STRING} rahoitti uuden kaupungin, {TOWN}, rakentamista! STR_NEWS_NEW_TOWN :{BLACK}{BIG_FONT}{STRING} rahoitti uuden kaupungin, {TOWN}, rakentamista!
STR_NEWS_NEW_TOWN_UNSPONSORED :{BLACK}{BIG_FONT}Uusi kaupunki {TOWN} rakennettu!
STR_NEWS_INDUSTRY_CONSTRUCTION :{BIG_FONT}{BLACK}Uusi {STRING} rakennetaan kaupungin {TOWN} lähistölle! STR_NEWS_INDUSTRY_CONSTRUCTION :{BIG_FONT}{BLACK}Uusi {STRING} rakennetaan kaupungin {TOWN} lähistölle!
STR_NEWS_INDUSTRY_PLANTED :{BIG_FONT}{BLACK}Uusi {STRING} istutetaan kaupungin {TOWN} lähistölle! STR_NEWS_INDUSTRY_PLANTED :{BIG_FONT}{BLACK}Uusi {STRING} istutetaan kaupungin {TOWN} lähistölle!
@@ -1334,6 +1337,10 @@ STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_HELPTEXT :Maaston väri k
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_GREEN :Vihreä STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_GREEN :Vihreä
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_DARK_GREEN :Tummanvihreä STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_DARK_GREEN :Tummanvihreä
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :Violetti STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :Violetti
STR_CONFIG_SETTING_SCROLLMODE_HELPTEXT :Toiminta karttaa vieritettäessä
STR_CONFIG_SETTING_SCROLLMODE_RMB_LOCKED :Siirrä karttaa hiiren oikealla painikkeella, hiiren sijainti lukiten
STR_CONFIG_SETTING_SCROLLMODE_RMB :Siirrä karttaa hiiren oikealla painikkeella
STR_CONFIG_SETTING_SCROLLMODE_LMB :Siirrä karttaa hiiren vasemmalla painikkeella
STR_CONFIG_SETTING_SMOOTH_SCROLLING :Näkymän tasainen vieritys: {STRING} STR_CONFIG_SETTING_SMOOTH_SCROLLING :Näkymän tasainen vieritys: {STRING}
STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Hallitse miten päänäkymä siirtyy valittuun paikkaan karttaa klikattaessa tai käytettäessä komentoa joka muuttaa näkymän sijaintia. Mikäli käytössä, päänäkymä siirtyy uuteen sijaintiin pehmeäesti, muutoin se hyppää suoraan valittuun sijaintiin STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Hallitse miten päänäkymä siirtyy valittuun paikkaan karttaa klikattaessa tai käytettäessä komentoa joka muuttaa näkymän sijaintia. Mikäli käytössä, päänäkymä siirtyy uuteen sijaintiin pehmeäesti, muutoin se hyppää suoraan valittuun sijaintiin
STR_CONFIG_SETTING_MEASURE_TOOLTIP :Näytä mittauksen työkaluvihje, kun käytetään rakennustyökaluja: {STRING} STR_CONFIG_SETTING_MEASURE_TOOLTIP :Näytä mittauksen työkaluvihje, kun käytetään rakennustyökaluja: {STRING}
@@ -1593,7 +1600,7 @@ STR_CONFIG_SETTING_TOWN_GROWTH_NORMAL :Tavallinen
STR_CONFIG_SETTING_TOWN_GROWTH_FAST :Nopea STR_CONFIG_SETTING_TOWN_GROWTH_FAST :Nopea
STR_CONFIG_SETTING_TOWN_GROWTH_VERY_FAST :Erittäin nopea STR_CONFIG_SETTING_TOWN_GROWTH_VERY_FAST :Erittäin nopea
STR_CONFIG_SETTING_LARGER_TOWNS :Suurkaupunkien osuus: {STRING} STR_CONFIG_SETTING_LARGER_TOWNS :Suurkaupunkien osuus: {STRING}
STR_CONFIG_SETTING_LARGER_TOWNS_HELPTEXT :Suurkaupungiksi muuttuvien kaupunkien määrä, eli kaupungit jotka ovat suurempia ja kasvavat nopeammin STR_CONFIG_SETTING_LARGER_TOWNS_HELPTEXT :Suurkaupungiksi muuttuvien kaupunkien määrä, eli suurempana aloittavat ja nopeammin kasvavat kaupungit
STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 / {COMMA} STR_CONFIG_SETTING_LARGER_TOWNS_VALUE :1 / {COMMA}
STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Ei yhtään STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Ei yhtään
STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Kasvukerroin alussa: {STRING} STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Kasvukerroin alussa: {STRING}
@@ -2278,6 +2285,7 @@ STR_LINKGRAPH_LEGEND_CAPTION :{BLACK}Rahtivir
STR_LINKGRAPH_LEGEND_ALL :{BLACK}Kaikki STR_LINKGRAPH_LEGEND_ALL :{BLACK}Kaikki
STR_LINKGRAPH_LEGEND_NONE :{BLACK}Ei mitään STR_LINKGRAPH_LEGEND_NONE :{BLACK}Ei mitään
STR_LINKGRAPH_LEGEND_SELECT_COMPANIES :{BLACK}Valitse näytettävät yhtiöt STR_LINKGRAPH_LEGEND_SELECT_COMPANIES :{BLACK}Valitse näytettävät yhtiöt
STR_LINKGRAPH_LEGEND_COMPANY_TOOLTIP :{BLACK}{STRING}{}{COMPANY}
# Linkgraph legend window and linkgraph legend in smallmap # Linkgraph legend window and linkgraph legend in smallmap
STR_LINKGRAPH_LEGEND_UNUSED :{TINY_FONT}{BLACK}käyttämätön STR_LINKGRAPH_LEGEND_UNUSED :{TINY_FONT}{BLACK}käyttämätön
@@ -2687,9 +2695,23 @@ STR_ABOUT_VERSION :{BLACK}OpenTTD-
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 The OpenTTD team STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 The OpenTTD team
# Framerate display window # Framerate display window
STR_FRAMERATE_CAPTION :{WHITE}Kuvataajuus
STR_FRAMERATE_RATE_GAMELOOP :{WHITE}Simulaationopeus: {STRING}
STR_FRAMERATE_RATE_BLITTER :{WHITE}Grafiikan kuvataajuus: {STRING}
STR_FRAMERATE_SPEED_FACTOR :{WHITE}Pelin nykyinen nopeuskerroin: {DECIMAL}×
STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL}{WHITE} ms
STR_FRAMERATE_MS_WARN :{YELLOW}{DECIMAL}{WHITE} ms
STR_FRAMERATE_MS_BAD :{RED}{DECIMAL}{WHITE} ms
STR_FRAMERATE_FPS_GOOD :{LTBLUE}{DECIMAL}{WHITE} kuvaa/s
STR_FRAMERATE_FPS_WARN :{YELLOW}{DECIMAL}{WHITE} kuvaa/s
STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL}{WHITE} kuvaa/s
STR_FRAMERATE_GRAPH_MILLISECONDS :{TINY_FONT}{COMMA} ms
STR_FRAMERATE_GRAPH_SECONDS :{TINY_FONT}{COMMA} s
############ Leave those lines in this order!! ############ Leave those lines in this order!!
STR_FRAMERATE_VIDEO :{WHITE}Videolähtö:
############ End of leave-in-this-order ############ End of leave-in-this-order
############ Leave those lines in this order!! ############ Leave those lines in this order!!
STR_FRAMETIME_CAPTION_VIDEO :Videolähtö
############ End of leave-in-this-order ############ End of leave-in-this-order
@@ -2977,6 +2999,7 @@ STR_EDIT_SIGN_SIGN_OSKTITLE :{BLACK}Syötä
STR_TOWN_DIRECTORY_CAPTION :{WHITE}Kaupungit STR_TOWN_DIRECTORY_CAPTION :{WHITE}Kaupungit
STR_TOWN_DIRECTORY_NONE :{ORANGE}- Ei mitään - STR_TOWN_DIRECTORY_NONE :{ORANGE}- Ei mitään -
STR_TOWN_DIRECTORY_TOWN :{ORANGE}{TOWN}{BLACK} ({COMMA}) STR_TOWN_DIRECTORY_TOWN :{ORANGE}{TOWN}{BLACK} ({COMMA})
STR_TOWN_DIRECTORY_CITY :{ORANGE}{TOWN}{YELLOW} (suurkaup.){BLACK} ({COMMA})
STR_TOWN_DIRECTORY_LIST_TOOLTIP :{BLACK}Kaupunkien nimet - nimen klikkaaminen keskittää päänäkymän kaupunkiin. Ctrl+Klik avaa uuden näkymäikkunan kaupungin sijaintiin STR_TOWN_DIRECTORY_LIST_TOOLTIP :{BLACK}Kaupunkien nimet - nimen klikkaaminen keskittää päänäkymän kaupunkiin. Ctrl+Klik avaa uuden näkymäikkunan kaupungin sijaintiin
STR_TOWN_POPULATION :{BLACK}Maailman asukasluku: {COMMA} STR_TOWN_POPULATION :{BLACK}Maailman asukasluku: {COMMA}
@@ -4221,7 +4244,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Liian mo
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Rautatieasema on jakautunut liian moneen osaan STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Rautatieasema on jakautunut liian moneen osaan
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Liian monta linja-autopysäkkiä. STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Liian monta linja-autopysäkkiä.
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Liian monta lastauslaituria. STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Liian monta lastauslaituria.
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Liian lähellä toista asemaa tai lastausaluetta.
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Liian lähellä toista satamaa. STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Liian lähellä toista satamaa.
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Liian lähellä toista lentokenttää. STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Liian lähellä toista lentokenttää.
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Asemaa ei voi nimetä uudelleen. STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Asemaa ei voi nimetä uudelleen.
@@ -4229,6 +4251,7 @@ STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... kaup
STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... tie on väärin päin STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... tie on väärin päin
STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... läpiajettavissa pysäkeissä ei voi olla mutkia STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... läpiajettavissa pysäkeissä ei voi olla mutkia
STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... läpiajettavissa pysäkeissä ei voi olla risteyksiä STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... läpiajettavissa pysäkeissä ei voi olla risteyksiä
STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}... tie on yksisuuntainen tai suljettu
# Station destruction related errors # Station destruction related errors
STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Aseman osaa ei voi poistaa... STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Aseman osaa ei voi poistaa...

View File

@@ -476,6 +476,7 @@ STR_ABOUT_MENU_SCREENSHOT :Copie d'écran
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Copie d'écran au zoom maximum STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Copie d'écran au zoom maximum
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Copie d'écran au zoom par défaut STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Copie d'écran au zoom par défaut
STR_ABOUT_MENU_GIANT_SCREENSHOT :Copie d'écran de la carte entière STR_ABOUT_MENU_GIANT_SCREENSHOT :Copie d'écran de la carte entière
STR_ABOUT_MENU_SHOW_FRAMERATE :Afficher la fréquence d'images
STR_ABOUT_MENU_ABOUT_OPENTTD :À propos d'OpenTTD STR_ABOUT_MENU_ABOUT_OPENTTD :À propos d'OpenTTD
STR_ABOUT_MENU_SPRITE_ALIGNER :Alignement de sprite STR_ABOUT_MENU_SPRITE_ALIGNER :Alignement de sprite
STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Afficher/Cacher les boites de dimensions maximum STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Afficher/Cacher les boites de dimensions maximum
@@ -927,6 +928,7 @@ STR_GAME_OPTIONS_CURRENCY_ZAR :Rand sud-africa
STR_GAME_OPTIONS_CURRENCY_CUSTOM :Personnalisée... STR_GAME_OPTIONS_CURRENCY_CUSTOM :Personnalisée...
STR_GAME_OPTIONS_CURRENCY_GEL :Lari Géorgien (GEL) STR_GAME_OPTIONS_CURRENCY_GEL :Lari Géorgien (GEL)
STR_GAME_OPTIONS_CURRENCY_IRR :Rial Iranien (IRR) STR_GAME_OPTIONS_CURRENCY_IRR :Rial Iranien (IRR)
STR_GAME_OPTIONS_CURRENCY_RUB :Nouveau rouble russe (RUB)
############ end of currency region ############ end of currency region
STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Véhicules routiers STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Véhicules routiers
@@ -2699,9 +2701,52 @@ STR_ABOUT_VERSION :{BLACK}OpenTTD
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 L'équipe OpenTTD STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 L'équipe OpenTTD
# Framerate display window # Framerate display window
STR_FRAMERATE_CAPTION :{WHITE}Fréquence d'images
STR_FRAMERATE_CAPTION_SMALL :{STRING}{WHITE} ({DECIMAL}x)
STR_FRAMERATE_RATE_GAMELOOP :{WHITE}Fréquence de simulation{NBSP}: {STRING}
STR_FRAMERATE_RATE_GAMELOOP_TOOLTIP :{BLACK}Nombre de ticks simulés par seconde.
STR_FRAMERATE_RATE_BLITTER :{WHITE}Fréquence des graphismes{NBSP}: {STRING}
STR_FRAMERATE_RATE_BLITTER_TOOLTIP :{BLACK}Nombre d'images rendues par seconde.
STR_FRAMERATE_SPEED_FACTOR :{WHITE}Facteur de vitesse actuel{NBSP}: {DECIMAL}x
STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK}À quelle vitesse le jeu tourne actuellement, comparé à la vitesse attendue pour la simulation normale.
STR_FRAMERATE_CURRENT :{WHITE}Actuel
STR_FRAMERATE_AVERAGE :{WHITE}Moyen
STR_FRAMERATE_DATA_POINTS :{WHITE}Données basées sur {COMMA} mesures
STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL}{WHITE} ms
STR_FRAMERATE_MS_WARN :{YELLOW}{DECIMAL}{WHITE} ms
STR_FRAMERATE_MS_BAD :{RED}{DECIMAL}{WHITE} ms
STR_FRAMERATE_FPS_GOOD :{LTBLUE}{DECIMAL}{WHITE} images/s
STR_FRAMERATE_FPS_WARN :{YELLOW}{DECIMAL}{WHITE} images/s
STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL}{WHITE} images/s
STR_FRAMERATE_GRAPH_MILLISECONDS :{TINY_FONT}{COMMA} ms
STR_FRAMERATE_GRAPH_SECONDS :{TINY_FONT}{COMMA} s
############ Leave those lines in this order!! ############ Leave those lines in this order!!
STR_FRAMERATE_GAMELOOP :{WHITE}Total de la boucle de jeu{NBSP}:
STR_FRAMERATE_GL_ECONOMY :{WHITE} Traitement des marchandises{NBSP}:
STR_FRAMERATE_GL_TRAINS :{WHITE} Ticks des trains{NBSP}:
STR_FRAMERATE_GL_ROADVEHS :{WHITE} Ticks des véhicules routiers{NBSP}:
STR_FRAMERATE_GL_SHIPS :{WHITE} Ticks des navires{NBSP}:
STR_FRAMERATE_GL_AIRCRAFT :{WHITE} Ticks des aéroplanes{NBSP}:
STR_FRAMERATE_GL_LANDSCAPE :{WHITE} Ticks du monde{NBSP}:
STR_FRAMERATE_GL_LINKGRAPH :{WHITE} Délai du flux des marchandises{NBSP}:
STR_FRAMERATE_DRAWING :{WHITE}Rendu des graphismes{NBSP}:
STR_FRAMERATE_DRAWING_VIEWPORTS :{WHITE} Vues{NBSP}:
STR_FRAMERATE_VIDEO :{WHITE}Sortie vidéo{NBSP}:
STR_FRAMERATE_SOUND :{WHITE}Mixage sonore{NBSP}:
############ End of leave-in-this-order ############ End of leave-in-this-order
############ Leave those lines in this order!! ############ Leave those lines in this order!!
STR_FRAMETIME_CAPTION_GAMELOOP :Boucle de jeu
STR_FRAMETIME_CAPTION_GL_ECONOMY :Traitement des marchandises
STR_FRAMETIME_CAPTION_GL_TRAINS :Ticks des trains
STR_FRAMETIME_CAPTION_GL_ROADVEHS :Ticks des véhicules routiers
STR_FRAMETIME_CAPTION_GL_SHIPS :Ticks des navires
STR_FRAMETIME_CAPTION_GL_AIRCRAFT :Ticks des aéroplanes
STR_FRAMETIME_CAPTION_GL_LANDSCAPE :Ticks du monde
STR_FRAMETIME_CAPTION_GL_LINKGRAPH :Délai du flux des marchandises
STR_FRAMETIME_CAPTION_DRAWING :Rendu des graphismes
STR_FRAMETIME_CAPTION_DRAWING_VIEWPORTS :Rendu des vues
STR_FRAMETIME_CAPTION_VIDEO :Sortie vidéo
STR_FRAMETIME_CAPTION_SOUND :Mixage sonore
############ End of leave-in-this-order ############ End of leave-in-this-order
@@ -4236,7 +4281,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Trop de
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Trop de parties de gare STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Trop de parties de gare
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Trop d'arrêts d'autobus STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Trop d'arrêts d'autobus
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Trop d'aires de chargement STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Trop d'aires de chargement
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Trop près d'une autre gare
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Trop près d'un autre port STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Trop près d'un autre port
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Trop près d'un autre aéroport STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Trop près d'un autre aéroport
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Impossible de renommer la gare... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Impossible de renommer la gare...

View File

@@ -4463,7 +4463,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Cus stè
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Cus pàirtean dhe stèisean-rèile STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Cus pàirtean dhe stèisean-rèile
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Gus stèiseanan bus STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Gus stèiseanan bus
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Tha cus ionadan-luchdaidh nan làraidh ann STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Tha cus ionadan-luchdaidh nan làraidh ann
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Ro fhaisg air stèisean/ionad-luchdaidh eile
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Ro fhaisg air port eile STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Ro fhaisg air port eile
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Ro fhaisg air port-adhair eile STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Ro fhaisg air port-adhair eile
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Cha ghabh ainm an stèisein atharrachadh... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Cha ghabh ainm an stèisein atharrachadh...

View File

@@ -4223,7 +4223,6 @@ 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_STATION_SPECS :{WHITE}Demasiadas partes de estación de tren
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Demasiadas paradas de autobús STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Demasiadas paradas de autobús
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Demasiadas estacións de camións STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Demasiadas estacións de camións
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Demasiado preto doutra estación ou área de carga
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Demasiado preto doutro peirao STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Demasiado preto doutro peirao
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Demasiado preto doutro aeroporto STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Demasiado preto doutro aeroporto
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Non se pode renomear a estación... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Non se pode renomear a estación...

View File

@@ -4223,7 +4223,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Zu viele
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Zu viele Bahnsteigteile STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Zu viele Bahnsteigteile
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Zu viele Bushaltestellen STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Zu viele Bushaltestellen
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Zu viele Lkw-Ladeplätze STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Zu viele Lkw-Ladeplätze
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Stationen liegen zu dicht beisammen
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Zu dicht an einem anderen Hafen STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Zu dicht an einem anderen Hafen
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Zu dicht an einem anderen Flughafen STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Zu dicht an einem anderen Flughafen
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Station kann nicht umbenannt werden... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Station kann nicht umbenannt werden...

View File

@@ -4372,7 +4372,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Πάρα
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Πάρα πολλά κομμάτια σιδηροδρομικού σταθμού STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Πάρα πολλά κομμάτια σιδηροδρομικού σταθμού
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Πάρα πολλές στάσεις λεωφορείου STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Πάρα πολλές στάσεις λεωφορείου
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Πάρα πολλοί σταθμοί φορτηγών STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Πάρα πολλοί σταθμοί φορτηγών
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Πολύ κοντά σε άλλη περιοχή σταθμού/φόρτωσης
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Πολύ κοντά σε άλλη αποβάθρα STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Πολύ κοντά σε άλλη αποβάθρα
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Πολύ κοντά σε άλλο αεροδρόμιο STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Πολύ κοντά σε άλλο αεροδρόμιο
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Δεν μπορεί να μετονομαστεί ο σταθμός... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Δεν μπορεί να μετονομαστεί ο σταθμός...

View File

@@ -489,6 +489,7 @@ STR_ABOUT_MENU_SCREENSHOT :צילום מס
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :צילום מסך בהגדלה מלאה STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :צילום מסך בהגדלה מלאה
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :ברירת מחדל של תקריב צילום מסך STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :ברירת מחדל של תקריב צילום מסך
STR_ABOUT_MENU_GIANT_SCREENSHOT :צילום מסך ענק STR_ABOUT_MENU_GIANT_SCREENSHOT :צילום מסך ענק
STR_ABOUT_MENU_SHOW_FRAMERATE :הצג קצב פריימים
STR_ABOUT_MENU_ABOUT_OPENTTD :'OpenTTD'{NBSP}אודות STR_ABOUT_MENU_ABOUT_OPENTTD :'OpenTTD'{NBSP}אודות
STR_ABOUT_MENU_SPRITE_ALIGNER :מיישר ספרייטים STR_ABOUT_MENU_SPRITE_ALIGNER :מיישר ספרייטים
STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :הדלק/כבה הצגת תיבות גבול של ספרייטים STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :הדלק/כבה הצגת תיבות גבול של ספרייטים
@@ -664,6 +665,7 @@ STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLA
STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}-- STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}--
STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM} STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM}
STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------ STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------
STR_MUSIC_TITLE_NOMUSIC :{TINY_FONT}{DKGREEN}אין מוזיקה זמינה
STR_MUSIC_TITLE_NAME :{TINY_FONT}{DKGREEN}"{STRING}" STR_MUSIC_TITLE_NAME :{TINY_FONT}{DKGREEN}"{STRING}"
STR_MUSIC_TRACK :{TINY_FONT}{BLACK}רצועה STR_MUSIC_TRACK :{TINY_FONT}{BLACK}רצועה
STR_MUSIC_XTITLE :{TINY_FONT}{BLACK}כותרת STR_MUSIC_XTITLE :{TINY_FONT}{BLACK}כותרת
@@ -936,6 +938,7 @@ STR_GAME_OPTIONS_CURRENCY_ZAR :(ZAR) ראנד
STR_GAME_OPTIONS_CURRENCY_CUSTOM :אחר... STR_GAME_OPTIONS_CURRENCY_CUSTOM :אחר...
STR_GAME_OPTIONS_CURRENCY_GEL :לארי גאורגי (GEL) STR_GAME_OPTIONS_CURRENCY_GEL :לארי גאורגי (GEL)
STR_GAME_OPTIONS_CURRENCY_IRR :ריאל איראני (IRR) STR_GAME_OPTIONS_CURRENCY_IRR :ריאל איראני (IRR)
STR_GAME_OPTIONS_CURRENCY_RUB :רובל רוסי (RUB)
############ end of currency region ############ end of currency region
STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}רכבי כביש STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}רכבי כביש
@@ -1348,6 +1351,8 @@ STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_HELPTEXT :צבע פני
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_GREEN :ירוק STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_GREEN :ירוק
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_DARK_GREEN :ירוק כהה STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_DARK_GREEN :ירוק כהה
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :סגול STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :סגול
STR_CONFIG_SETTING_SCROLLMODE_DEFAULT :הזז את התצוגה עם כפתור עכבר ימני, מיקום העכבר נעול
STR_CONFIG_SETTING_SCROLLMODE_LMB :הזז מפה עם כפתור עכבר שמאלי
STR_CONFIG_SETTING_SMOOTH_SCROLLING :{STRING} :גלילה חלקה של התצוגה המשנית STR_CONFIG_SETTING_SMOOTH_SCROLLING :{STRING} :גלילה חלקה של התצוגה המשנית
STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :שלוט כיצד התצוגה הראשית נגללת למיקום מסוים כאשר מקליקים על המפה הקטנה אן כאשר נותנים הוראה לגלול לעצם מסוים על גבי המפה. אם מאופשר, חלון התצוגה נגלל באופן חלק, אם מבוטל הוא מוקפץ ישירות אל נקודת המטרה STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :שלוט כיצד התצוגה הראשית נגללת למיקום מסוים כאשר מקליקים על המפה הקטנה אן כאשר נותנים הוראה לגלול לעצם מסוים על גבי המפה. אם מאופשר, חלון התצוגה נגלל באופן חלק, אם מבוטל הוא מוקפץ ישירות אל נקודת המטרה
STR_CONFIG_SETTING_MEASURE_TOOLTIP :{STRING} :'הצג מידות בעת בניית כבישים/מסילות וכיוב STR_CONFIG_SETTING_MEASURE_TOOLTIP :{STRING} :'הצג מידות בעת בניית כבישים/מסילות וכיוב
@@ -2701,9 +2706,23 @@ STR_ABOUT_VERSION :{BLACK}{REV} ג
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2018 The OpenTTD team STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2018 The OpenTTD team
# Framerate display window # Framerate display window
STR_FRAMERATE_CAPTION_SMALL :{STRING}{WHITE} ({DECIMAL}x)
STR_FRAMERATE_RATE_GAMELOOP :{WHITE}קצב סימולציה: {STRING}
STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK} כמה מהר המשחק כרגע רץ, בהשוואה למהירות הצפוייה בקצב סימולציה רגיל.
STR_FRAMERATE_DATA_POINTS :{WHITE}נתונים מבוססים על {COMMA} מדידות
############ Leave those lines in this order!! ############ Leave those lines in this order!!
STR_FRAMERATE_GL_ROADVEHS :{WHITE} פעימות כלי רכב:
STR_FRAMERATE_GL_SHIPS :{WHITE} פעימות כלי שייט:
STR_FRAMERATE_GL_LANDSCAPE :{WHITE} נקודות עולם:
STR_FRAMERATE_DRAWING :{WHITE}עיבוד גרפיקה:
STR_FRAMERATE_SOUND :{WHITE} ערבוב צליל:
############ End of leave-in-this-order ############ End of leave-in-this-order
############ Leave those lines in this order!! ############ Leave those lines in this order!!
STR_FRAMETIME_CAPTION_GL_TRAINS :פעימות רכבת
STR_FRAMETIME_CAPTION_GL_LINKGRAPH :השהיית גרף קשרים
STR_FRAMETIME_CAPTION_DRAWING :עיבוד גרפיקה
STR_FRAMETIME_CAPTION_DRAWING_VIEWPORTS :עיבוד תצוגת עולם
STR_FRAMETIME_CAPTION_VIDEO :פלט וידאו
############ End of leave-in-this-order ############ End of leave-in-this-order
@@ -2733,7 +2752,7 @@ STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}NewGRF:
STR_SAVELOAD_OSKTITLE :{BLACK}הכנס שם לשמירה STR_SAVELOAD_OSKTITLE :{BLACK}הכנס שם לשמירה
# World generation # World generation
STR_MAPGEN_WORLD_GENERATION_CAPTION :{WHITE}יצור עולם STR_MAPGEN_WORLD_GENERATION_CAPTION :{WHITE}יצירת עולם
STR_MAPGEN_MAPSIZE :{BLACK}:גודל המפה STR_MAPGEN_MAPSIZE :{BLACK}:גודל המפה
STR_MAPGEN_MAPSIZE_TOOLTIP :{BLACK}בחר את גודל המפה במשבצות. מספר המשבצות הזמינות תהיה קצת קטנה יותר. STR_MAPGEN_MAPSIZE_TOOLTIP :{BLACK}בחר את גודל המפה במשבצות. מספר המשבצות הזמינות תהיה קצת קטנה יותר.
STR_MAPGEN_BY :{BLACK}* STR_MAPGEN_BY :{BLACK}*
@@ -2991,6 +3010,7 @@ STR_EDIT_SIGN_SIGN_OSKTITLE :{BLACK}הכנס
STR_TOWN_DIRECTORY_CAPTION :{WHITE}ערים STR_TOWN_DIRECTORY_CAPTION :{WHITE}ערים
STR_TOWN_DIRECTORY_NONE :{ORANGE}- אין - STR_TOWN_DIRECTORY_NONE :{ORANGE}- אין -
STR_TOWN_DIRECTORY_TOWN :{ORANGE}{TOWN}{BLACK} ({COMMA}) STR_TOWN_DIRECTORY_TOWN :{ORANGE}{TOWN}{BLACK} ({COMMA})
STR_TOWN_DIRECTORY_CITY :{ORANGE}{TOWN}{YELLOW} (City){BLACK} ({COMMA})
STR_TOWN_DIRECTORY_LIST_TOOLTIP :{BLACK}שמות ערים - לחץ על שם כדי למקד את התצוגה על העיר. Ctrl+לחיצה פותח חלונית תצוגה חדשה על מיקום העיר STR_TOWN_DIRECTORY_LIST_TOOLTIP :{BLACK}שמות ערים - לחץ על שם כדי למקד את התצוגה על העיר. Ctrl+לחיצה פותח חלונית תצוגה חדשה על מיקום העיר
STR_TOWN_POPULATION :{BLACK}אוכלוסיית העולם: {COMMA} STR_TOWN_POPULATION :{BLACK}אוכלוסיית העולם: {COMMA}
@@ -4236,7 +4256,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}יותר
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}התחנה מורכבת מיותר מידי חלקים STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}התחנה מורכבת מיותר מידי חלקים
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}יותר מידי תחנות אוטובוס STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}יותר מידי תחנות אוטובוס
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}יותר מידי תחנות משאיות STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}יותר מידי תחנות משאיות
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}קרוב מידי לתחנה או איזור טעינה אחרים
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}יותר מידי קרוב למזח אחר STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}יותר מידי קרוב למזח אחר
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}קרוב מידי לשדה תעופה אחר STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}קרוב מידי לשדה תעופה אחר
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}לא ניתן לשנות שם תחנה... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}לא ניתן לשנות שם תחנה...
@@ -4244,6 +4263,7 @@ STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... כב
STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}הכביש פונה לכיוון לא נכון... STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}הכביש פונה לכיוון לא נכון...
STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... לתחנות "על הדרך" לא יכולות להיות פינות STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... לתחנות "על הדרך" לא יכולות להיות פינות
STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... לתחנות "על הדרך" לא יכולות להיות צמתים STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... לתחנות "על הדרך" לא יכולות להיות צמתים
STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}... הדרך חד כיוונית או חסומה
# Station destruction related errors # Station destruction related errors
STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}... לא ניתן לבטל חלק מהתחנה STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}... לא ניתן לבטל חלק מהתחנה
@@ -4495,6 +4515,7 @@ STR_BASESOUNDS_DOS_DESCRIPTION :צלילי Tran
STR_BASESOUNDS_WIN_DESCRIPTION :צלילי Transport Tycoon Deluxe המקורי בגרסת Windows. STR_BASESOUNDS_WIN_DESCRIPTION :צלילי Transport Tycoon Deluxe המקורי בגרסת Windows.
STR_BASESOUNDS_NONE_DESCRIPTION :אוסף צלילים ללא צלילים. STR_BASESOUNDS_NONE_DESCRIPTION :אוסף צלילים ללא צלילים.
STR_BASEMUSIC_WIN_DESCRIPTION :מנגינות Transport Tycoon Deluxe המקורי בגרסת Windows. STR_BASEMUSIC_WIN_DESCRIPTION :מנגינות Transport Tycoon Deluxe המקורי בגרסת Windows.
STR_BASEMUSIC_TTO_DESCRIPTION :מנגינות Transport Tycoon Deluxe (Original/World Editor) המקורי בגרסת DOS.
STR_BASEMUSIC_NONE_DESCRIPTION :אוסף מנגינות ללא מנגינות. STR_BASEMUSIC_NONE_DESCRIPTION :אוסף מנגינות ללא מנגינות.
##id 0x2000 ##id 0x2000

View File

@@ -4286,7 +4286,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Túl sok
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Túl sok vasútállomás-rész STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Túl sok vasútállomás-rész
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Túl sok buszmegálló STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Túl sok buszmegálló
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Túl sok a teherautó-rakodóhely STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Túl sok a teherautó-rakodóhely
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Túl közel van egy másik állomáshoz/rakodóhelyhez
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Túl közel van egy másik kikötőhöz STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Túl közel van egy másik kikötőhöz
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Túl közel van egy másik repülőtérhez STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Túl közel van egy másik repülőtérhez
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Nem nevezheted át az állomást... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Nem nevezheted át az állomást...

View File

@@ -3966,7 +3966,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Of marga
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Of margir hlutar af lestarstöðvum STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Of margir hlutar af lestarstöðvum
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Of margar strætisvagnastöðvar STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Of margar strætisvagnastöðvar
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Of margar vörubílastöðvar STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Of margar vörubílastöðvar
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Of nálægt annarri stöð/lestunarsvæði
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Of nálægt annarri bryggju STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Of nálægt annarri bryggju
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Of nálægt öðrum flugvelli STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Of nálægt öðrum flugvelli
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Get ekki endurnefnt stöð... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Get ekki endurnefnt stöð...

View File

@@ -4203,7 +4203,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Terlalu
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Terlalu banyak bag. stasiun STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Terlalu banyak bag. stasiun
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Terlalu banyak pemberhentian Bus STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Terlalu banyak pemberhentian Bus
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Terlalu banyak terminal truk STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Terlalu banyak terminal truk
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Terlalu dekat dengan stasiun/area bongkar muat lainnya
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Terlalu dekat dengan dok/galangan kapal lainnya STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Terlalu dekat dengan dok/galangan kapal lainnya
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Terlalu dekat dengan bandara lainnya STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Terlalu dekat dengan bandara lainnya
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Tidak dapat mengganti nama stasiun... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Tidak dapat mengganti nama stasiun...

View File

@@ -4203,7 +4203,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}An iomar
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}An iomarca codanna stáisiún iarnróid STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}An iomarca codanna stáisiún iarnróid
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}An iomarca stadanna bus STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}An iomarca stadanna bus
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}An iomarca stáisiúin leoraithe STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}An iomarca stáisiúin leoraithe
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Roghearr do stáisiún/limistéar lódála eile
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Roghearr do dug eile STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Roghearr do dug eile
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Roghearr d'aerfort eile STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Roghearr d'aerfort eile
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Ní féidir an stáisiún a athainmniú... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Ní féidir an stáisiún a athainmniú...

View File

@@ -817,6 +817,7 @@ STR_NEWS_MERGER_TAKEOVER_TITLE :{BIG_FONT}{BLAC
STR_PRESIDENT_NAME_MANAGER :{BLACK}{PRESIDENT_NAME}{}(Presidente) STR_PRESIDENT_NAME_MANAGER :{BLACK}{PRESIDENT_NAME}{}(Presidente)
STR_NEWS_NEW_TOWN :{BLACK}{BIG_FONT}La {STRING} finanzia la costruzione della nuova cittadina di {TOWN}! STR_NEWS_NEW_TOWN :{BLACK}{BIG_FONT}La {STRING} finanzia la costruzione della nuova cittadina di {TOWN}!
STR_NEWS_NEW_TOWN_UNSPONSORED :{BLACK}{BIG_FONT}È stata fondata una nuova città chiamata {TOWN}!
STR_NEWS_INDUSTRY_CONSTRUCTION :{BIG_FONT}{BLACK}Nuov{G o o a} {STRING} in costruzione vicino a {TOWN}! STR_NEWS_INDUSTRY_CONSTRUCTION :{BIG_FONT}{BLACK}Nuov{G o o a} {STRING} in costruzione vicino a {TOWN}!
STR_NEWS_INDUSTRY_PLANTED :{BIG_FONT}{BLACK}Nuov{G 0 o o a} {STRING} piantat{G 0 o o a} vicino a {TOWN}! STR_NEWS_INDUSTRY_PLANTED :{BIG_FONT}{BLACK}Nuov{G 0 o o a} {STRING} piantat{G 0 o o a} vicino a {TOWN}!
@@ -2999,6 +3000,8 @@ STR_NEWGRF_ERROR_READ_BOUNDS :Lettura oltre l
STR_NEWGRF_ERROR_GRM_FAILED :Risorsa GRF richiesta non disponibile (sprite {3:NUM}) STR_NEWGRF_ERROR_GRM_FAILED :Risorsa GRF richiesta non disponibile (sprite {3:NUM})
STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} è stato disabilitato da {STRING} STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} è stato disabilitato da {STRING}
STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Formato di layout dello sprite sconosciuto o non valido (sprite {3:NUM}) STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Formato di layout dello sprite sconosciuto o non valido (sprite {3:NUM})
STR_NEWGRF_ERROR_LIST_PROPERTY_TOO_LONG :Troppi elementi nella lista valori di una proprietà (sprite {3:NUM}, proprietà {4:HEX})
STR_NEWGRF_ERROR_INDPROD_CALLBACK :Callback di produzione industria non valido (sprite {3:NUM}, "{1:STRING}")
# NewGRF related 'general' warnings # NewGRF related 'general' warnings
STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Attenzione! STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Attenzione!
@@ -4310,7 +4313,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Troppe s
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Stazione composta da troppe parti STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Stazione composta da troppe parti
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Troppe stazioni degli autobus STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Troppe stazioni degli autobus
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Troppe aree di carico per camion STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Troppe aree di carico per camion
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Troppo vicino ad un'altra stazione/area di carico
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Troppo vicino ad un altro molo STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Troppo vicino ad un altro molo
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Troppo vicino ad un altro aeroporto STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Troppo vicino ad un altro aeroporto
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Impossibile rinominare la stazione... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Impossibile rinominare la stazione...

View File

@@ -4206,7 +4206,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}停留
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}駅の部分が多すぎます STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}駅の部分が多すぎます
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}バス停が多すぎます STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}バス停が多すぎます
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}荷役所が多すぎます STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}荷役所が多すぎます
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}他の停留施設に近すぎます
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}他の埠頭に近すぎます STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}他の埠頭に近すぎます
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}他の空港に近すぎます STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}他の空港に近すぎます
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}駅名を変更できません STR_ERROR_CAN_T_RENAME_STATION :{WHITE}駅名を変更できません

View File

@@ -816,6 +816,7 @@ STR_NEWS_MERGER_TAKEOVER_TITLE :{BIG_FONT}{BLAC
STR_PRESIDENT_NAME_MANAGER :{BLACK}{PRESIDENT_NAME}{}(사장) STR_PRESIDENT_NAME_MANAGER :{BLACK}{PRESIDENT_NAME}{}(사장)
STR_NEWS_NEW_TOWN :{BLACK}{BIG_FONT}{STRING}은(는) 새로운 도시 {TOWN}을(를) 건설했습니다! STR_NEWS_NEW_TOWN :{BLACK}{BIG_FONT}{STRING}은(는) 새로운 도시 {TOWN}을(를) 건설했습니다!
STR_NEWS_NEW_TOWN_UNSPONSORED :{BLACK}{BIG_FONT}{TOWN} - 새 도시가 생겼습니다!
STR_NEWS_INDUSTRY_CONSTRUCTION :{BIG_FONT}{BLACK}{1:TOWN} 근처에 새로운 {0:STRING}{G 0 "이" "가"} 건설되고 있습니다! STR_NEWS_INDUSTRY_CONSTRUCTION :{BIG_FONT}{BLACK}{1:TOWN} 근처에 새로운 {0:STRING}{G 0 "이" "가"} 건설되고 있습니다!
STR_NEWS_INDUSTRY_PLANTED :{BIG_FONT}{BLACK}새 {STRING}{G 0 "이" "가"} {TOWN} 근처에서 자라나고 있습니다! STR_NEWS_INDUSTRY_PLANTED :{BIG_FONT}{BLACK}새 {STRING}{G 0 "이" "가"} {TOWN} 근처에서 자라나고 있습니다!
@@ -928,6 +929,7 @@ STR_GAME_OPTIONS_CURRENCY_ZAR :남아프리카
STR_GAME_OPTIONS_CURRENCY_CUSTOM :사용자 설정... STR_GAME_OPTIONS_CURRENCY_CUSTOM :사용자 설정...
STR_GAME_OPTIONS_CURRENCY_GEL :그루지야 라리 (GEL) STR_GAME_OPTIONS_CURRENCY_GEL :그루지야 라리 (GEL)
STR_GAME_OPTIONS_CURRENCY_IRR :이란 리알 (IRR) STR_GAME_OPTIONS_CURRENCY_IRR :이란 리알 (IRR)
STR_GAME_OPTIONS_CURRENCY_RUB :신 러시아 루블 (RUB)
############ end of currency region ############ end of currency region
STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}차량 통행 방식 STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}차량 통행 방식
@@ -4280,7 +4282,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}역이
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}철도역 조각이 너무 많습니다 STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}철도역 조각이 너무 많습니다
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}버스 정류장이 너무 많습니다 STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}버스 정류장이 너무 많습니다
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}트럭 적하장이 너무 많습니다 STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}트럭 적하장이 너무 많습니다
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}다른 역과 너무 가깝습니다!
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}다른 항구와 너무 가깝습니다! STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}다른 항구와 너무 가깝습니다!
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}다른 공항과 너무 가깝습니다! STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}다른 공항과 너무 가깝습니다!
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}역 이름을 바꿀 수 없습니다... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}역 이름을 바꿀 수 없습니다...

View File

@@ -4438,7 +4438,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Nimis st
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Nimis partes stationum ferriviariarum adsunt STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Nimis partes stationum ferriviariarum adsunt
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Nimis stationes laophoricae adsunt STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Nimis stationes laophoricae adsunt
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Nimis stationes autoplaustricae adsunt STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Nimis stationes autoplaustricae adsunt
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Nimis prope aliam stationem
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Nimis prope aliud navale STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Nimis prope aliud navale
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Nimis prope alium aeroportum STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Nimis prope alium aeroportum
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Non licet stationem renominare... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Non licet stationem renominare...

View File

@@ -1274,6 +1274,7 @@ STR_CONFIG_SETTING_LANDSCAPE :Ainava: {STRING
STR_CONFIG_SETTING_LAND_GENERATOR :Zemes radītājs: {STRING} STR_CONFIG_SETTING_LAND_GENERATOR :Zemes radītājs: {STRING}
STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Sākotnējais STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Sākotnējais
STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis
STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT :(Tikai TerraGenesis) Ainavas kalnainība
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Maksimālais attālums no kartes malas naftas pārstrādes rūpnīcām: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Maksimālais attālums no kartes malas naftas pārstrādes rūpnīcām: {STRING}
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Naftas pārstrādes rūpnīcas ir būvējamas tikai kartes malu tuvumā, salu kartēm tas ir pie krasta STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Naftas pārstrādes rūpnīcas ir būvējamas tikai kartes malu tuvumā, salu kartēm tas ir pie krasta
STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Sniega līnijas augstums: {STRING} STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Sniega līnijas augstums: {STRING}
@@ -2629,6 +2630,7 @@ STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD
# Framerate display window # Framerate display window
STR_FRAMERATE_SPEED_FACTOR :{WHITE}pašreizējās spēles ātruma pakāpe: {DECIMAL}x STR_FRAMERATE_SPEED_FACTOR :{WHITE}pašreizējās spēles ātruma pakāpe: {DECIMAL}x
STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK}Cik ātri spēle šobrīd iet salīdzinot ar standarta ātrumu.
############ Leave those lines in this order!! ############ Leave those lines in this order!!
############ End of leave-in-this-order ############ End of leave-in-this-order
############ Leave those lines in this order!! ############ Leave those lines in this order!!
@@ -3224,6 +3226,7 @@ STR_INDUSTRY_VIEW_PRODUCTION_LAST_MONTH_TITLE :{BLACK}Iepriek
STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} (aizvests {COMMA}%) STR_INDUSTRY_VIEW_TRANSPORTED :{YELLOW}{CARGO_LONG}{STRING}{BLACK} (aizvests {COMMA}%)
STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Centrēt galveno skatu uz ražotni. Ctrl+klikšķis atvērs skatu uz ražotni jaunā skatlaukā STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Centrēt galveno skatu uz ražotni. Ctrl+klikšķis atvērs skatu uz ražotni jaunā skatlaukā
STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Ražošanas līmenis: {YELLOW}{COMMA}% STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Ražošanas līmenis: {YELLOW}{COMMA}%
STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}Nozare ir paziņojusi par nenovēršamu slēgšanu!
############ range for requires starts ############ range for requires starts
STR_INDUSTRY_VIEW_REQUIRES_CARGO :{BLACK}Nepieciešams: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_REQUIRES_CARGO :{BLACK}Nepieciešams: {YELLOW}{STRING}{STRING}
@@ -4131,7 +4134,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Pārāk
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Pārāk daudz dzelzceļa stacijas daļu STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Pārāk daudz dzelzceļa stacijas daļu
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Pārāk daudz autobusu pieturvietu STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Pārāk daudz autobusu pieturvietu
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Pārāk daudz kravas automobiļu staciju STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Pārāk daudz kravas automobiļu staciju
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Pārāk tuvu citai stacijai/iekraušanas zonai
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Pārāk tuvu citai piestātnei STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Pārāk tuvu citai piestātnei
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Pārāk tuvu citai lidostai STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Pārāk tuvu citai lidostai
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Nevar pārdēvēt staciju... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Nevar pārdēvēt staciju...

View File

@@ -4478,7 +4478,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Per daug
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Perdaug traukinių stoties dalių STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Perdaug traukinių stoties dalių
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Per daug autobusų stotelių STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Per daug autobusų stotelių
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Per daug sunkvežimių pakrovimo aikstelių STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Per daug sunkvežimių pakrovimo aikstelių
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Per arti kitos stotelės
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Per arti kitos prieplaukos STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Per arti kitos prieplaukos
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Per arti kito oro uosto STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Per arti kito oro uosto
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Stotelės pervardinti negalima... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Stotelės pervardinti negalima...

View File

@@ -4222,7 +4222,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Ze vill
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Ze vill Garesdeeler STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Ze vill Garesdeeler
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Ze vill Busarrêten STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Ze vill Busarrêten
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Ze vill Camionsgaren STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Ze vill Camionsgaren
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Ze noo un enger aanerer Gare/Luedstatioun
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Ze noo un engem aanerem Hafen STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Ze noo un engem aanerem Hafen
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Ze noo un engem aaneren Fluchhafen STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Ze noo un engem aaneren Fluchhafen
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Kann d'Statioun net ëmbenennen... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Kann d'Statioun net ëmbenennen...

View File

@@ -3878,7 +3878,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Terlampa
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Terlampau banyak bahagian-bahagian stesen keretapi STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Terlampau banyak bahagian-bahagian stesen keretapi
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Terlampau banyak stesen bas STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Terlampau banyak stesen bas
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Terlampau banyak ruang punggah lori STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Terlampau banyak ruang punggah lori
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Terlalu hampir dengan stesen/kawasan muatan lain
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Terlalu hampir dengan pelabuhan lain STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Terlalu hampir dengan pelabuhan lain
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Terlalu hampir dengan lapangan terbang lain STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Terlalu hampir dengan lapangan terbang lain
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Nama stesen tidak dapat ditukar... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Nama stesen tidak dapat ditukar...

View File

@@ -4227,7 +4227,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}For mang
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}For mange enkeltdeler på jernbanestasjonen STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}For mange enkeltdeler på jernbanestasjonen
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}For mange bussholdeplasser STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}For mange bussholdeplasser
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}For mange lasteterminaler STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}For mange lasteterminaler
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}For nærme en annen stasjon/lasteterminal
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}For nærme enn annen havn STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}For nærme enn annen havn
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}For nærme en annen flyplass STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}For nærme en annen flyplass
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Kan ikke endre stasjonens navn... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Kan ikke endre stasjonens navn...

View File

@@ -4119,7 +4119,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}For mang
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}For mange togstasjon-delar STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}For mange togstasjon-delar
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}For mange busshaldeplassar STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}For mange busshaldeplassar
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}For mange lasteterminalar STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}For mange lasteterminalar
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}For nær ein annan jernbanestasjon/lasteterminal
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}For nær ei anna hamn STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}For nær ei anna hamn
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}For nær ein annan flyplass STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}For nær ein annan flyplass
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Kan ikkje endre namnet på stasjonen... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Kan ikkje endre namnet på stasjonen...

View File

@@ -3072,13 +3072,16 @@ STR_ABOUT_VERSION :{BLACK}OpenTTD
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2018 Zespół OpenTTD STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2018 Zespół OpenTTD
# Framerate display window # Framerate display window
STR_FRAMERATE_RATE_BLITTER_TOOLTIP :{BLACK}Liczba renderowanych klatek wideo na sekundę.
STR_FRAMERATE_CURRENT :{WHITE}Obecny STR_FRAMERATE_CURRENT :{WHITE}Obecny
############ Leave those lines in this order!! ############ Leave those lines in this order!!
STR_FRAMERATE_GL_LINKGRAPH :{WHITE} Opóźnienie wykresu połączeń:
STR_FRAMERATE_VIDEO :{WHITE}Wyjście video: STR_FRAMERATE_VIDEO :{WHITE}Wyjście video:
STR_FRAMERATE_SOUND :{WHITE}Miksowanie dźwięku: STR_FRAMERATE_SOUND :{WHITE}Miksowanie dźwięku:
############ End of leave-in-this-order ############ End of leave-in-this-order
############ Leave those lines in this order!! ############ Leave those lines in this order!!
STR_FRAMETIME_CAPTION_VIDEO :Wyjście wideo STR_FRAMETIME_CAPTION_VIDEO :Wyjście wideo
STR_FRAMETIME_CAPTION_SOUND :Miksowanie dźwięku
############ End of leave-in-this-order ############ End of leave-in-this-order
@@ -4618,7 +4621,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Za duzo
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Za dużo części stacji kolejowej STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Za dużo części stacji kolejowej
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Zbyt wiele przystanków autobusowych STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Zbyt wiele przystanków autobusowych
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Zbyt wiele stacji załadunku ciężarówek STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Zbyt wiele stacji załadunku ciężarówek
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Zbyt blisko innej stacji/strefy załadunku
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Zbyt blisko innego portu STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Zbyt blisko innego portu
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Zbyt blisko innego lotniska STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Zbyt blisko innego lotniska
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Nie można zmienić nazwy stacji... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Nie można zmienić nazwy stacji...

View File

@@ -4223,7 +4223,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Demasiad
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Demasiadas partes na estação ferroviária STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Demasiadas partes na estação ferroviária
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Demasiadas paragens de autocarro STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Demasiadas paragens de autocarro
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Demasiadas estações de carga STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Demasiadas estações de carga
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Muito junto de uma estação/local de carga
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Muito perto de outra doca STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Muito perto de outra doca
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Demasiado perto de outro aeroporto STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Demasiado perto de outro aeroporto
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Não pode alterar o nome da estação... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Não pode alterar o nome da estação...

View File

@@ -4157,7 +4157,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Prea mul
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Staţia are prea multe componente STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Staţia are prea multe componente
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Prea multe staţii de autobuz STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Prea multe staţii de autobuz
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Prea multe staţii de camion STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Prea multe staţii de camion
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Prea aproape de altă staţie
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Prea aproape de alt port STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Prea aproape de alt port
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Prea aproape de un alt aeroport STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Prea aproape de un alt aeroport
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Nu se poate redenumi staţia... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Nu se poate redenumi staţia...

View File

@@ -1071,6 +1071,7 @@ STR_GAME_OPTIONS_CURRENCY_ZAR :Южноафр
STR_GAME_OPTIONS_CURRENCY_CUSTOM :Своя... STR_GAME_OPTIONS_CURRENCY_CUSTOM :Своя...
STR_GAME_OPTIONS_CURRENCY_GEL :Грузинский лари (GEL) STR_GAME_OPTIONS_CURRENCY_GEL :Грузинский лари (GEL)
STR_GAME_OPTIONS_CURRENCY_IRR :Иранский риал (IRR) STR_GAME_OPTIONS_CURRENCY_IRR :Иранский риал (IRR)
STR_GAME_OPTIONS_CURRENCY_RUB :Российский новый рубль (RUR)
############ end of currency region ############ end of currency region
STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Движение автомобилей STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Движение автомобилей
@@ -4434,7 +4435,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Слиш
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Слишком большая ж/д станция STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Слишком большая ж/д станция
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Слишком много автобусных остановок STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Слишком много автобусных остановок
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Слишком много грузовых терминалов STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Слишком много грузовых терминалов
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Слишком близко к другой станции
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Слишком близко к другой пристани STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Слишком близко к другой пристани
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Слишком близко к другому аэропорту STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Слишком близко к другому аэропорту
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Невозможно переименовать станцию... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Невозможно переименовать станцию...

View File

@@ -4445,7 +4445,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Previše
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Previše delova železničke stanice STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Previše delova železničke stanice
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Previše autobuskih stanica STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Previše autobuskih stanica
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Previše tovarnih stanica STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Previše tovarnih stanica
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Previše je blizu druge stanice
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Previše je blizu drugog pristaništa STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Previše je blizu drugog pristaništa
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Previše je blizu drugog aerodroma STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Previše je blizu drugog aerodroma
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Ova stanica ne može biti preimenovana... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Ova stanica ne može biti preimenovana...

View File

@@ -4216,7 +4216,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}车站
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}分体站台太多 STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}分体站台太多
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}公共汽车站过多 STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}公共汽车站过多
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}汽车货场过多 STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}汽车货场过多
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}距离另一车站过近
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}距离另一码头过近 STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}距离另一码头过近
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}距离另一机场过近 STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}距离另一机场过近
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}不能重命名车站 STR_ERROR_CAN_T_RENAME_STATION :{WHITE}不能重命名车站

View File

@@ -4271,7 +4271,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Príliš
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Veľa častí vlakovej stanice STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Veľa častí vlakovej stanice
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Príliš veľa autobusových zastávok STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Príliš veľa autobusových zastávok
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Príliš veľa zastávok nákladných automobilov STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Príliš veľa zastávok nákladných automobilov
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Príliš blízko inej stanice/vykládky
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Príliš blízko iného prístavu STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Príliš blízko iného prístavu
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Príliš blízko iného letiska STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Príliš blízko iného letiska
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Stanica sa nedá premenovať... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Stanica sa nedá premenovať...

View File

@@ -4358,7 +4358,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Preveč
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Preveč delov železniške postaje STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Preveč delov železniške postaje
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Preveč avtobusnih postaj STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Preveč avtobusnih postaj
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Preveč tovornih postaj STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Preveč tovornih postaj
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Preblizu druge postaje
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Preblizu drugemu pristanišču STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Preblizu drugemu pristanišču
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Preblizu sosednjemu letališču STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Preblizu sosednjemu letališču
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Ni mogoče preimenovati postaje STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Ni mogoče preimenovati postaje

View File

@@ -4223,7 +4223,6 @@ 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_STATION_SPECS :{WHITE}Demasiadas partes de estación de tren
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Demasiadas paradas de autobús STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Demasiadas paradas de autobús
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Demasiadas paradas de camión STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Demasiadas paradas de camión
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Demasiado cerca de otra estación/zona de carga
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Demasiado cerca de otro muelle 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_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Demasiado cerca de otro aeropuerto
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}No se puede renombrar estación... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}No se puede renombrar estación...

Some files were not shown because too many files have changed in this diff Show More