Merge branch 'master' into jgrpp
# Conflicts: # src/aircraft_cmd.cpp # src/autoreplace_cmd.cpp # src/pathfinder/follow_track.hpp # src/pathfinder/yapf/yapf_rail.cpp # src/saveload/afterload.cpp # src/saveload/saveload.cpp # src/script/api/ai/ai_station.hpp.sq # src/script/api/game/game_station.hpp.sq # src/script/api/script_station.hpp # src/track_func.h # src/vehicle_base.h
This commit is contained in:
173
Doxyfile
173
Doxyfile
@@ -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,31 +129,38 @@ 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
|
||||||
IMAGE_PATH =./docs/
|
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
|
|
||||||
|
16
config.lib
16
config.lib
@@ -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"
|
||||||
@@ -163,6 +164,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
|
||||||
@@ -378,6 +380,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";;
|
||||||
@@ -914,6 +919,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
|
||||||
@@ -2141,6 +2147,11 @@ EOL
|
|||||||
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
|
||||||
@@ -3095,6 +3106,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')
|
||||||
@@ -3882,6 +3897,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
1
configure
vendored
@@ -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; }
|
||||||
|
|
||||||
|
@@ -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; }
|
||||||
|
|
||||||
|
@@ -441,6 +441,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
|
||||||
@@ -1182,6 +1183,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
|
||||||
|
@@ -252,7 +252,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)
|
||||||
@@ -649,6 +649,13 @@ 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->breakdown_ctr == 1 && v->breakdown_type == BREAKDOWN_AIRCRAFT_SPEED) {
|
||||||
|
const uint broken_speed = v->breakdown_severity << 3;
|
||||||
|
if (broken_speed < speed_limit) hard_limit = false;
|
||||||
|
speed_limit = min(speed_limit, broken_speed);
|
||||||
|
}
|
||||||
|
|
||||||
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;
|
||||||
@@ -668,9 +675,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->breakdown_ctr == 1 && v->breakdown_type == BREAKDOWN_AIRCRAFT_SPEED) spd = min(v->breakdown_severity << 3, spd);
|
|
||||||
|
|
||||||
/* 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;
|
||||||
@@ -709,8 +713,8 @@ int GetTileHeightBelowAircraft(const Vehicle *v)
|
|||||||
* When the minimum is reached the vehicle should consider ascending.
|
* When the minimum is reached the vehicle should consider ascending.
|
||||||
*
|
*
|
||||||
* @param v The vehicle to get the flight levels for.
|
* @param v The vehicle to get the flight levels for.
|
||||||
* @param [out] min_level The minimum bounds for flight level.
|
* @param[out] min_level The minimum bounds for flight level.
|
||||||
* @param [out] max_level The maximum bounds for flight level.
|
* @param[out] max_level The maximum bounds for flight level.
|
||||||
*/
|
*/
|
||||||
void GetAircraftFlightLevelBounds(const Vehicle *v, int *min_level, int *max_level)
|
void GetAircraftFlightLevelBounds(const Vehicle *v, int *min_level, int *max_level)
|
||||||
{
|
{
|
||||||
@@ -742,7 +746,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.
|
||||||
@@ -1964,7 +1968,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)
|
||||||
|
@@ -33,7 +33,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)
|
||||||
@@ -239,7 +238,7 @@ static CargoID GetNewCargoTypeForReplace(Vehicle *v, EngineID engine_type, bool
|
|||||||
* @param c The vehicle's owner (it's faster to forward the pointer than refinding it)
|
* @param c The vehicle's owner (it's faster to forward the pointer than refinding it)
|
||||||
* @param always_replace Always replace, even if not old.
|
* @param always_replace Always replace, even if not old.
|
||||||
* @param same_type_only Only replace with same engine type.
|
* @param same_type_only Only replace with same engine type.
|
||||||
* @param [out] e the EngineID of the replacement. INVALID_ENGINE if no replacement is found
|
* @param[out] e the EngineID of the replacement. INVALID_ENGINE if no replacement is found
|
||||||
* @return Error if the engine to build is not available
|
* @return Error if the engine to build is not available
|
||||||
*/
|
*/
|
||||||
static CommandCost GetNewEngineType(const Vehicle *v, const Company *c, bool always_replace, bool same_type_only, EngineID &e)
|
static CommandCost GetNewEngineType(const Vehicle *v, const Company *c, bool always_replace, bool same_type_only, EngineID &e)
|
||||||
|
@@ -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.
|
||||||
|
@@ -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
|
||||||
|
|
||||||
|
@@ -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
|
||||||
|
@@ -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 */
|
||||||
|
@@ -58,7 +58,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)
|
||||||
{
|
{
|
||||||
@@ -68,7 +68,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)
|
||||||
|
@@ -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;
|
||||||
|
@@ -779,7 +779,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)
|
||||||
@@ -846,7 +846,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)
|
||||||
{
|
{
|
||||||
@@ -1037,7 +1037,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)
|
||||||
{
|
{
|
||||||
|
@@ -820,7 +820,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; }
|
||||||
|
|
||||||
|
@@ -93,7 +93,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.
|
||||||
|
@@ -190,7 +190,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)
|
||||||
|
@@ -273,10 +273,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 {
|
||||||
Money max_money; ///< The approximate maximum amount of money a company has had over the lifetime of this window
|
Money max_money; ///< The approximate maximum amount of money a company has had over the lifetime of this window
|
||||||
bool small; ///< Window is toggled to 'small'.
|
bool small; ///< Window is toggled to 'small'.
|
||||||
@@ -1513,9 +1510,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)
|
||||||
{
|
{
|
||||||
|
@@ -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)
|
||||||
{
|
{
|
||||||
|
@@ -66,7 +66,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)
|
||||||
{
|
{
|
||||||
@@ -259,8 +259,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.
|
||||||
@@ -307,7 +307,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)
|
||||||
|
@@ -330,6 +330,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));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -345,6 +346,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));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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)
|
||||||
|
@@ -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.
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -910,9 +910,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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -57,7 +57,7 @@ void CcPlaySound_SPLAT_WATER(const CommandCost &result, TileIndex tile, uint32 p
|
|||||||
/**
|
/**
|
||||||
* Gets the other end of the aqueduct, if possible.
|
* Gets the other end of the aqueduct, if possible.
|
||||||
* @param tile_from The begin tile for the aqueduct.
|
* @param tile_from The begin tile for the aqueduct.
|
||||||
* @param [out] tile_to The tile till where to show a selection for the aqueduct.
|
* @param[out] tile_to The tile till where to show a selection for the aqueduct.
|
||||||
* @return The other end of the aqueduct, or otherwise a tile in line with the aqueduct to cause the right error message.
|
* @return The other end of the aqueduct, or otherwise a tile in line with the aqueduct to cause the right error message.
|
||||||
*/
|
*/
|
||||||
static TileIndex GetOtherAqueductEnd(TileIndex tile_from, TileIndex *tile_to = NULL)
|
static TileIndex GetOtherAqueductEnd(TileIndex tile_from, TileIndex *tile_to = NULL)
|
||||||
|
@@ -1094,6 +1094,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;
|
||||||
}
|
}
|
||||||
@@ -1170,7 +1171,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)) {
|
||||||
@@ -1179,14 +1179,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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1308,7 +1309,6 @@ static OrderUnloadFlags GetUnloadType(const Vehicle *v)
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 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)
|
||||||
|
@@ -583,7 +583,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)
|
||||||
|
@@ -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)
|
||||||
{
|
{
|
||||||
|
@@ -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.
|
||||||
|
@@ -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)
|
||||||
{
|
{
|
||||||
|
@@ -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?
|
||||||
*/
|
*/
|
||||||
|
@@ -771,9 +771,9 @@ void GamelogGRFUpdate(const GRFConfig *oldc, const GRFConfig *newc)
|
|||||||
* Get some basic information from the given gamelog.
|
* Get some basic information from the given gamelog.
|
||||||
* @param gamelog_action Pointer to the gamelog to extract information from.
|
* @param gamelog_action Pointer to the gamelog to extract information from.
|
||||||
* @param gamelog_actions Number of actions in the given gamelog.
|
* @param gamelog_actions Number of actions in the given gamelog.
|
||||||
* @param [out] last_ottd_rev OpenTTD NewGRF version from the binary that saved the savegame last.
|
* @param[out] last_ottd_rev OpenTTD NewGRF version from the binary that saved the savegame last.
|
||||||
* @param [out] ever_modified Max value of 'modified' from all binaries that ever saved this savegame.
|
* @param[out] ever_modified Max value of 'modified' from all binaries that ever saved this savegame.
|
||||||
* @param [out] removed_newgrfs Set to true if any NewGRFs have been removed.
|
* @param[out] removed_newgrfs Set to true if any NewGRFs have been removed.
|
||||||
*/
|
*/
|
||||||
void GamelogInfo(LoggedAction *gamelog_action, uint gamelog_actions, uint32 *last_ottd_rev, byte *ever_modified, bool *removed_newgrfs)
|
void GamelogInfo(LoggedAction *gamelog_action, uint gamelog_actions, uint32 *last_ottd_rev, byte *ever_modified, bool *removed_newgrfs)
|
||||||
{
|
{
|
||||||
|
12
src/gfx.cpp
12
src/gfx.cpp
@@ -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.
|
||||||
*/
|
*/
|
||||||
@@ -761,7 +761,7 @@ void DrawCharCentered(WChar c, int x, int y, TextColour colour)
|
|||||||
/**
|
/**
|
||||||
* Get the size of a sprite.
|
* Get the size of a sprite.
|
||||||
* @param sprid Sprite to examine.
|
* @param sprid Sprite to examine.
|
||||||
* @param [out] offset Optionally returns the sprite position offset.
|
* @param[out] offset Optionally returns the sprite position offset.
|
||||||
* @return Sprite size in pixels.
|
* @return Sprite size in pixels.
|
||||||
* @note The size assumes (0, 0) as top-left coordinate and ignores any part of the sprite drawn at the left or above that position.
|
* @note The size assumes (0, 0) as top-left coordinate and ignores any part of the sprite drawn at the left or above that position.
|
||||||
*/
|
*/
|
||||||
@@ -1170,8 +1170,8 @@ byte GetDigitWidth(FontSize size)
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Determine the broadest digits for guessing the maximum width of a n-digit number.
|
* Determine the broadest digits for guessing the maximum width of a n-digit number.
|
||||||
* @param [out] front Broadest digit, which is not 0. (Use this digit as first digit for numbers with more than one digit.)
|
* @param[out] front Broadest digit, which is not 0. (Use this digit as first digit for numbers with more than one digit.)
|
||||||
* @param [out] next Broadest digit, including 0. (Use this digit for all digits, except the first one; or for numbers with only one digit.)
|
* @param[out] next Broadest digit, including 0. (Use this digit for all digits, except the first one; or for numbers with only one digit.)
|
||||||
* @param size Font of the digit
|
* @param size Font of the digit
|
||||||
*/
|
*/
|
||||||
void GetBroadestDigit(uint *front, uint *next, FontSize size)
|
void GetBroadestDigit(uint *front, uint *next, FontSize size)
|
||||||
@@ -1638,7 +1638,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.
|
||||||
*/
|
*/
|
||||||
|
@@ -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;
|
||||||
|
@@ -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)
|
||||||
{
|
{
|
||||||
|
@@ -91,7 +91,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.
|
||||||
*/
|
*/
|
||||||
|
@@ -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
|
||||||
|
@@ -100,7 +100,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()
|
||||||
{
|
{
|
||||||
|
@@ -1116,11 +1116,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)
|
||||||
@@ -1134,7 +1134,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.
|
||||||
|
@@ -447,9 +447,9 @@ void FixSlopes()
|
|||||||
* Reads the heightmap with the correct file reader.
|
* Reads the heightmap with the correct file reader.
|
||||||
* @param dft Type of image file.
|
* @param dft Type of image file.
|
||||||
* @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)
|
||||||
|
@@ -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
|
||||||
|
@@ -395,35 +395,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];
|
||||||
@@ -1119,8 +1133,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;
|
||||||
@@ -1324,7 +1339,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
|
||||||
@@ -1373,7 +1388,7 @@ bool IsSlopeRefused(Slope current, Slope refused)
|
|||||||
* @param initial_random_bits The random bits the industry is going to have after construction.
|
* @param initial_random_bits The random bits the industry is going to have after construction.
|
||||||
* @param founder Industry founder
|
* @param founder Industry founder
|
||||||
* @param creation_type The circumstances the industry is created under.
|
* @param creation_type The circumstances the industry is created under.
|
||||||
* @param [out] custom_shape_check Perform custom check for the site.
|
* @param[out] custom_shape_check Perform custom check for the site.
|
||||||
* @return Failed or succeeded command.
|
* @return Failed or succeeded command.
|
||||||
*/
|
*/
|
||||||
static CommandCost CheckIfIndustryTilesAreFree(TileIndex tile, const IndustryTileTable *it, uint itspec_index, int type, uint16 initial_random_bits, Owner founder, IndustryAvailabilityCallType creation_type, bool *custom_shape_check = NULL)
|
static CommandCost CheckIfIndustryTilesAreFree(TileIndex tile, const IndustryTileTable *it, uint itspec_index, int type, uint16 initial_random_bits, Owner founder, IndustryAvailabilityCallType creation_type, bool *custom_shape_check = NULL)
|
||||||
@@ -1656,18 +1671,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;
|
||||||
@@ -1677,19 +1697,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;
|
||||||
@@ -1720,10 +1727,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)) {
|
||||||
@@ -1735,28 +1741,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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1801,11 +1835,11 @@ 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.
|
||||||
* @return Succeeded or failed command.
|
* @return Succeeded or failed command.
|
||||||
*
|
*
|
||||||
* @post \c *ip contains the newly created industry if all checks are successful and the \a flags request actual creation, else it contains \c NULL afterwards.
|
* @post \c *ip contains the newly created industry if all checks are successful and the \a flags request actual creation, else it contains \c NULL afterwards.
|
||||||
@@ -1969,7 +2003,7 @@ static Industry *CreateNewIndustry(TileIndex tile, IndustryType type, IndustryAv
|
|||||||
/**
|
/**
|
||||||
* Compute the appearance probability for an industry during map creation.
|
* Compute the appearance probability for an industry during map creation.
|
||||||
* @param it Industry type to compute.
|
* @param it Industry type to compute.
|
||||||
* @param [out] force_at_least_one Returns whether at least one instance should be forced on map creation.
|
* @param[out] force_at_least_one Returns whether at least one instance should be forced on map creation.
|
||||||
* @return Relative probability for the industry to appear.
|
* @return Relative probability for the industry to appear.
|
||||||
*/
|
*/
|
||||||
static uint32 GetScaledIndustryGenerationProbability(IndustryType it, bool *force_at_least_one)
|
static uint32 GetScaledIndustryGenerationProbability(IndustryType it, bool *force_at_least_one)
|
||||||
@@ -1994,7 +2028,7 @@ static uint32 GetScaledIndustryGenerationProbability(IndustryType it, bool *forc
|
|||||||
/**
|
/**
|
||||||
* Compute the probability for constructing a new industry during game play.
|
* Compute the probability for constructing a new industry during game play.
|
||||||
* @param it Industry type to compute.
|
* @param it Industry type to compute.
|
||||||
* @param [out] min_number Minimal number of industries that should exist at the map.
|
* @param[out] min_number Minimal number of industries that should exist at the map.
|
||||||
* @return Relative probability for the industry to appear.
|
* @return Relative probability for the industry to appear.
|
||||||
*/
|
*/
|
||||||
static uint16 GetIndustryGamePlayProbability(IndustryType it, byte *min_number)
|
static uint16 GetIndustryGamePlayProbability(IndustryType it, byte *min_number)
|
||||||
@@ -2202,8 +2236,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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -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:
|
||||||
@@ -2527,7 +2566,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);
|
||||||
@@ -2546,7 +2585,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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2578,11 +2617,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;
|
||||||
}
|
}
|
||||||
@@ -2595,7 +2634,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;
|
||||||
|
@@ -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 */
|
||||||
|
@@ -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)
|
||||||
|
|
||||||
@@ -99,22 +101,22 @@ struct IndustryTileTable {
|
|||||||
* Defines the data structure for constructing industry.
|
* Defines the data structure for constructing industry.
|
||||||
*/
|
*/
|
||||||
struct IndustrySpec {
|
struct IndustrySpec {
|
||||||
const IndustryTileTable * const *table;///< List of the tiles composing the industry
|
const IndustryTileTable * const *table; ///< List of the tiles composing the industry
|
||||||
byte num_table; ///< Number of elements in the table
|
byte num_table; ///< Number of elements in the table
|
||||||
uint8 cost_multiplier; ///< Base construction cost multiplier.
|
uint8 cost_multiplier; ///< Base construction cost multiplier.
|
||||||
uint32 removal_cost_multiplier; ///< Base removal cost multiplier.
|
uint32 removal_cost_multiplier; ///< Base removal cost multiplier.
|
||||||
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
|
||||||
|
@@ -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;
|
||||||
|
@@ -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...
|
||||||
|
@@ -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}تعذر إعاده تسميه المحطه...
|
||||||
|
@@ -4076,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...
|
||||||
|
@@ -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}Немагчыма перайменаваць станцыю...
|
||||||
|
@@ -4278,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...
|
||||||
|
@@ -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}Станцията не може да бъде преименувана...
|
||||||
|
@@ -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ó...
|
||||||
|
@@ -4377,7 +4377,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...
|
||||||
|
@@ -4341,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...
|
||||||
|
@@ -4229,7 +4229,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...
|
||||||
|
@@ -4280,7 +4280,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Te veel
|
|||||||
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Te veel treinstationsdelen
|
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Te veel treinstationsdelen
|
||||||
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Te veel bushaltes
|
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Te veel bushaltes
|
||||||
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Te veel vrachtwagenlaadstations
|
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Te veel vrachtwagenlaadstations
|
||||||
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Te dicht bij een ander (laad)station
|
|
||||||
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Te dicht bij een andere haven
|
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Te dicht bij een andere haven
|
||||||
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Te dicht bij een ander vliegveld
|
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Te dicht bij een ander vliegveld
|
||||||
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Kan stationsnaam niet veranderen...
|
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Kan stationsnaam niet veranderen...
|
||||||
|
@@ -3477,6 +3477,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!
|
||||||
@@ -5127,7 +5129,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_MANY_DOCKS :{WHITE}Too many docks
|
STR_ERROR_TOO_MANY_DOCKS :{WHITE}Too many docks
|
||||||
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
|
||||||
|
@@ -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...
|
||||||
|
@@ -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...
|
||||||
|
@@ -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...
|
||||||
|
@@ -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...
|
||||||
|
@@ -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øð...
|
||||||
|
@@ -4244,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.
|
||||||
|
@@ -4281,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...
|
||||||
|
@@ -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...
|
||||||
|
@@ -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...
|
||||||
|
@@ -4938,7 +4938,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...
|
||||||
|
@@ -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}Δεν μπορεί να μετονομαστεί ο σταθμός...
|
||||||
|
@@ -4256,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}לא ניתן לשנות שם תחנה...
|
||||||
|
@@ -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...
|
||||||
|
@@ -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öð...
|
||||||
|
@@ -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...
|
||||||
|
@@ -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ú...
|
||||||
|
@@ -2998,6 +2998,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!
|
||||||
@@ -4311,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...
|
||||||
|
@@ -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}駅名を変更できません
|
||||||
|
@@ -5055,7 +5055,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_MANY_DOCKS :{WHITE}항구가 너무 많습니다!
|
STR_ERROR_TOO_MANY_DOCKS :{WHITE}항구가 너무 많습니다!
|
||||||
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}다른 공항과 너무 가깝습니다!
|
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}다른 공항과 너무 가깝습니다!
|
||||||
|
@@ -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...
|
||||||
|
@@ -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}
|
||||||
@@ -2627,6 +2628,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...
|
||||||
|
@@ -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...
|
||||||
|
@@ -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...
|
||||||
|
@@ -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...
|
||||||
|
@@ -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...
|
||||||
|
@@ -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...
|
||||||
|
@@ -4621,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...
|
||||||
|
@@ -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...
|
||||||
|
@@ -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...
|
||||||
|
@@ -4454,7 +4454,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}Невозможно переименовать станцию...
|
||||||
|
@@ -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...
|
||||||
|
@@ -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}不能重命名车站
|
||||||
|
@@ -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ť...
|
||||||
|
@@ -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
|
||||||
|
@@ -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...
|
||||||
|
@@ -4282,7 +4282,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 autobuses
|
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Demasiadas paradas de autobuses
|
||||||
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Demasiadas estaciones de camiones
|
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Demasiadas estaciones de camiones
|
||||||
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Demasiado cerca de otra estación o zona de carga
|
|
||||||
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Demasiado cerca de otro muelle
|
STR_ERROR_TOO_CLOSE_TO_ANOTHER_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 cambiar nombre de la estación...
|
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}No se puede cambiar nombre de la estación...
|
||||||
|
@@ -4222,7 +4222,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}För må
|
|||||||
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}För många delar på järnvägsstationen
|
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}För många delar på järnvägsstationen
|
||||||
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}För många busshållplatser
|
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}För många busshållplatser
|
||||||
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}För många lastbryggor
|
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}För många lastbryggor
|
||||||
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}För nära en annan station/hållplats
|
|
||||||
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}För nära en annan hamn
|
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}För nära en annan hamn
|
||||||
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}För nära en annan flygplats
|
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}För nära en annan flygplats
|
||||||
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Kan inte byta namn på station...
|
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Kan inte byta namn på station...
|
||||||
|
@@ -3757,7 +3757,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}நிறுத்தத்தின் பெயரை மாற்ற இயலாது...
|
||||||
|
@@ -4116,7 +4116,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}ไม่สามารถเปลี่ยนชื่อได้...
|
||||||
|
@@ -4203,7 +4203,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}無法修改車站名稱...
|
||||||
|
@@ -4223,7 +4223,6 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Haritada
|
|||||||
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Çok fazla demiryolu istasyon parçası var
|
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Çok fazla demiryolu istasyon parçası var
|
||||||
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Çok fazla durak var
|
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Çok fazla durak var
|
||||||
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Çok fazla kamyon yükleme yeri var
|
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Çok fazla kamyon yükleme yeri var
|
||||||
STR_ERROR_TOO_CLOSE_TO_ANOTHER_STATION :{WHITE}Başka bir istasyona çok yakın
|
|
||||||
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Başka bir limana çok yakın
|
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Başka bir limana çok yakın
|
||||||
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Başka bir havalimanına çok yakın
|
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Başka bir havalimanına çok yakın
|
||||||
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}İsim değiştirilemiyor...
|
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}İsim değiştirilemiyor...
|
||||||
|
@@ -4334,7 +4334,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}Неможливо перейменувати станцію...
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user