Merge branch 'master' into jgrpp

This commit is contained in:
Jonathan G Rennison
2020-10-14 17:38:23 +01:00
61 changed files with 2031 additions and 1507 deletions

142
.github/workflows/ci-build.yml vendored Normal file
View File

@@ -0,0 +1,142 @@
name: CI
on:
pull_request:
push:
branches:
- master
jobs:
linux:
name: Linux
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
compiler: [clang, gcc]
include:
- compiler: clang
cxxcompiler: clang++
- compiler: gcc
cxxcompiler: g++
env:
CTEST_OUTPUT_ON_FAILURE: 1
CC: ${{ matrix.compiler }}
CXX: ${{ matrix.cxxcompiler }}
steps:
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
libfontconfig-dev \
libicu-dev \
liblzma-dev \
liblzo2-dev \
libsdl1.2-dev \
libsdl2-dev \
libxdg-basedir-dev \
zlib1g-dev \
# EOF
- name: Checkout
uses: actions/checkout@v2
- name: Get OpenGFX
run: |
mkdir -p ~/.local/share/openttd/baseset
cd ~/.local/share/openttd/baseset
curl -L https://cdn.openttd.org/opengfx-releases/0.6.0/opengfx-0.6.0-all.zip -o opengfx-all.zip
unzip opengfx-all.zip
rm -f opengfx-all.zip
- name: CMake
run: mkdir build && cd build && cmake ..
- uses: ammaraskar/gcc-problem-matcher@master
- name: Build
run: cd build && make -j2
- name: Test
run: cd build && make -j2 test
windows:
name: Windows
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
arch: [x86, x64]
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Prepare vcpkg (with cache)
uses: lukka/run-vcpkg@v4
with:
vcpkgDirectory: 'c:/vcpkg'
doNotUpdateVcpkg: true
vcpkgArguments: 'liblzma libpng lzo zlib'
vcpkgTriplet: '${{ matrix.arch }}-windows-static'
- uses: ammaraskar/msvc-problem-matcher@master
- name: 'Build'
uses: lukka/run-cmake@v3
with:
cmakeListsOrSettingsJson: CMakeListsTxtBasic
useVcpkgToolchainFile: true
buildDirectory: '${{ runner.workspace }}/build'
- name: Install OpenGFX
run: |
mkdir -p "C:/Users/Public/Documents/OpenTTD/baseset"
cd "C:/Users/Public/Documents/OpenTTD/baseset"
curl -L https://cdn.openttd.org/opengfx-releases/0.6.0/opengfx-0.6.0-all.zip -o opengfx-all.zip
unzip opengfx-all.zip
rm -f opengfx-all.zip
shell: bash
- name: Test
run: |
cd ${{ runner.workspace }}/build
ctest -C Debug
macos:
name: Mac OS
runs-on: macos-latest
strategy:
fail-fast: false
env:
CTEST_OUTPUT_ON_FAILURE: 1
MACOSX_DEPLOYMENT_TARGET: 10.9
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install dependencies
run: brew install pkg-config lzo xz libpng freetype
env:
HOMEBREW_NO_AUTO_UPDATE: 1
- name: Install OpenGFX
run: |
mkdir -p ~/Documents/OpenTTD/baseset
cd ~/Documents//OpenTTD/baseset
curl -L https://cdn.openttd.org/opengfx-releases/0.6.0/opengfx-0.6.0-all.zip -o opengfx-all.zip
unzip opengfx-all.zip
rm -f opengfx-all.zip
- name: CMake
run: mkdir build && cd build && cmake ..
- uses: ammaraskar/gcc-problem-matcher@master
- name: Build
run: cd build && make -j2
- name: Test
run: cd build && make -j2 test

View File

@@ -1,23 +1,23 @@
cmake_minimum_required(VERSION 3.6) cmake_minimum_required(VERSION 3.6)
if (NOT BINARY_NAME) if(NOT BINARY_NAME)
set(BINARY_NAME openttd) set(BINARY_NAME openttd)
endif (NOT BINARY_NAME) endif()
project(${BINARY_NAME}) project(${BINARY_NAME})
if (CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR) if(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
message(FATAL_ERROR "In-source builds not allowed. Please run \"cmake ..\" from the bin directory") message(FATAL_ERROR "In-source builds not allowed. Please run \"cmake ..\" from the bin directory")
endif (CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR) endif()
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake") set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake")
set(CMAKE_OSX_DEPLOYMENT_TARGET 10.9) set(CMAKE_OSX_DEPLOYMENT_TARGET 10.9)
# Use GNUInstallDirs to allow customisation # Use GNUInstallDirs to allow customisation
# but set our own default data dir # but set our own default data dir
if (NOT CMAKE_INSTALL_DATADIR) if(NOT CMAKE_INSTALL_DATADIR)
set(CMAKE_INSTALL_DATADIR "share/games") set(CMAKE_INSTALL_DATADIR "share/games")
endif (NOT CMAKE_INSTALL_DATADIR) endif()
include(GNUInstallDirs) include(GNUInstallDirs)
include(Options) include(Options)
@@ -37,19 +37,19 @@ find_package(LibLZMA)
find_package(LZO) find_package(LZO)
find_package(PNG) find_package(PNG)
if (NOT WIN32) if(NOT WIN32)
find_package(Allegro) find_package(Allegro)
find_package(Freetype) find_package(Freetype)
if (NOT APPLE) if(NOT APPLE)
find_package(SDL2) find_package(SDL2)
if (NOT SDL2_FOUND) if(NOT SDL2_FOUND)
find_package(SDL) find_package(SDL)
endif( NOT SDL2_FOUND) endif()
find_package(Fluidsynth) find_package(Fluidsynth)
find_package(Fontconfig) find_package(Fontconfig)
find_package(ICU OPTIONAL_COMPONENTS i18n lx) find_package(ICU OPTIONAL_COMPONENTS i18n lx)
find_package(XDG_basedir) find_package(XDG_basedir)
else (NOT APPLE) else()
find_package(Iconv) find_package(Iconv)
find_library(AUDIOTOOLBOX_LIBRARY AudioToolbox) find_library(AUDIOTOOLBOX_LIBRARY AudioToolbox)
@@ -57,14 +57,14 @@ if (NOT WIN32)
find_library(COCOA_LIBRARY Cocoa) find_library(COCOA_LIBRARY Cocoa)
find_package(MacUcontext) find_package(MacUcontext)
endif (NOT APPLE) endif()
endif (NOT WIN32) endif()
if (MSVC) if(MSVC)
find_package(Editbin REQUIRED) find_package(Editbin REQUIRED)
else () else()
find_package(Builtins) find_package(Builtins)
endif (MSVC) endif()
if (UNIX) if (UNIX)
find_package(DL) find_package(DL)
@@ -94,38 +94,38 @@ find_package(Grfcodec)
# IPO is only properly supported from CMake 3.9. Despite the fact we are # IPO is only properly supported from CMake 3.9. Despite the fact we are
# CMake 3.5, still enable IPO if we detect we are 3.9+. # CMake 3.5, still enable IPO if we detect we are 3.9+.
if (POLICY CMP0069) if(POLICY CMP0069)
cmake_policy(SET CMP0069 NEW) cmake_policy(SET CMP0069 NEW)
include(CheckIPOSupported) include(CheckIPOSupported)
check_ipo_supported(RESULT IPO_FOUND) check_ipo_supported(RESULT IPO_FOUND)
endif (POLICY CMP0069) endif()
show_options() show_options()
if (UNIX AND NOT APPLE AND NOT OPTION_DEDICATED) if(UNIX AND NOT APPLE AND NOT OPTION_DEDICATED)
if (NOT SDL_FOUND AND NOT SDL2_FOUND) if(NOT SDL_FOUND AND NOT SDL2_FOUND)
message(FATAL_ERROR "SDL or SDL2 is required for this platform") message(FATAL_ERROR "SDL or SDL2 is required for this platform")
endif (NOT SDL_FOUND AND NOT SDL2_FOUND) endif()
endif (UNIX AND NOT APPLE AND NOT OPTION_DEDICATED) endif()
if (APPLE) if(APPLE)
if (NOT AUDIOTOOLBOX_LIBRARY) if(NOT AUDIOTOOLBOX_LIBRARY)
message(FATAL_ERROR "AudioToolbox is required for this platform") message(FATAL_ERROR "AudioToolbox is required for this platform")
endif (NOT AUDIOTOOLBOX_LIBRARY) endif()
if (NOT AUDIOUNIT_LIBRARY) if(NOT AUDIOUNIT_LIBRARY)
message(FATAL_ERROR "AudioUnit is required for this platform") message(FATAL_ERROR "AudioUnit is required for this platform")
endif (NOT AUDIOUNIT_LIBRARY) endif()
if (NOT COCOA_LIBRARY) if(NOT COCOA_LIBRARY)
message(FATAL_ERROR "Cocoa is required for this platform") message(FATAL_ERROR "Cocoa is required for this platform")
endif (NOT COCOA_LIBRARY) endif()
endif (APPLE) endif()
if (MSVC) if(MSVC)
# C++17 for MSVC # C++17 for MSVC
set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD 17)
else (MSVC) else()
# C++11 for all other targets # C++11 for all other targets
set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD 11)
endif (MSVC) endif()
set(CMAKE_CXX_STANDARD_REQUIRED YES) set(CMAKE_CXX_STANDARD_REQUIRED YES)
set(CMAKE_CXX_EXTENSIONS NO) set(CMAKE_CXX_EXTENSIONS NO)
@@ -133,9 +133,9 @@ set(CMAKE_CXX_EXTENSIONS NO)
set(CMAKE_EXPORT_COMPILE_COMMANDS YES) set(CMAKE_EXPORT_COMPILE_COMMANDS YES)
list(APPEND GENERATED_SOURCE_FILES "${CMAKE_BINARY_DIR}/generated/rev.cpp") list(APPEND GENERATED_SOURCE_FILES "${CMAKE_BINARY_DIR}/generated/rev.cpp")
if (WIN32) if(WIN32)
list(APPEND GENERATED_SOURCE_FILES "${CMAKE_BINARY_DIR}/generated/ottdres.rc") list(APPEND GENERATED_SOURCE_FILES "${CMAKE_BINARY_DIR}/generated/ottdres.rc")
endif (WIN32) endif()
include(SourceList) include(SourceList)
include(Endian) include(Endian)
@@ -210,17 +210,17 @@ target_link_libraries(openttd
Threads::Threads Threads::Threads
) )
if (IPO_FOUND) if(IPO_FOUND)
set_target_properties(openttd PROPERTIES INTERPROCEDURAL_OPTIMIZATION_RELEASE True) set_target_properties(openttd PROPERTIES INTERPROCEDURAL_OPTIMIZATION_RELEASE True)
set_target_properties(openttd PROPERTIES INTERPROCEDURAL_OPTIMIZATION_MINSIZEREL True) set_target_properties(openttd PROPERTIES INTERPROCEDURAL_OPTIMIZATION_MINSIZEREL True)
set_target_properties(openttd PROPERTIES INTERPROCEDURAL_OPTIMIZATION_RELWITHDEBINFO True) set_target_properties(openttd PROPERTIES INTERPROCEDURAL_OPTIMIZATION_RELWITHDEBINFO True)
endif (IPO_FOUND) endif()
set_target_properties(openttd PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/bin") set_target_properties(openttd PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/bin")
process_compile_flags() process_compile_flags()
if (APPLE OR UNIX) if(APPLE OR UNIX)
add_definitions(-DUNIX) add_definitions(-DUNIX)
endif (APPLE OR UNIX) endif()
include(LinkPackage) include(LinkPackage)
link_package(PNG TARGET PNG::PNG ENCOURAGED) link_package(PNG TARGET PNG::PNG ENCOURAGED)
@@ -229,7 +229,7 @@ link_package(LIBLZMA TARGET LibLZMA::LibLZMA ENCOURAGED)
link_package(LZO ENCOURAGED) link_package(LZO ENCOURAGED)
link_package(XDG_basedir) link_package(XDG_basedir)
if (NOT OPTION_DEDICATED) if(NOT OPTION_DEDICATED)
link_package(Fluidsynth) link_package(Fluidsynth)
link_package(SDL) link_package(SDL)
link_package(SDL2 TARGET SDL2::SDL2) link_package(SDL2 TARGET SDL2::SDL2)
@@ -241,9 +241,9 @@ if (NOT OPTION_DEDICATED)
link_package(Fcitx) link_package(Fcitx)
link_package(DBus1) link_package(DBus1)
link_package(X11) link_package(X11)
endif (NOT OPTION_DEDICATED) endif()
if (APPLE) if(APPLE)
link_package(Iconv TARGET Iconv::Iconv) link_package(Iconv TARGET Iconv::Iconv)
target_link_libraries(openttd target_link_libraries(openttd
@@ -256,33 +256,33 @@ if (APPLE)
-DWITH_COCOA -DWITH_COCOA
-DENABLE_COCOA_QUARTZ -DENABLE_COCOA_QUARTZ
) )
endif (APPLE) endif()
if (NOT PERSONAL_DIR STREQUAL "(not set)") if(NOT PERSONAL_DIR STREQUAL "(not set)")
add_definitions( add_definitions(
-DWITH_PERSONAL_DIR -DWITH_PERSONAL_DIR
-DPERSONAL_DIR="${PERSONAL_DIR}" -DPERSONAL_DIR="${PERSONAL_DIR}"
) )
endif (NOT PERSONAL_DIR STREQUAL "(not set)") endif()
if (NOT SHARED_DIR STREQUAL "(not set)") if(NOT SHARED_DIR STREQUAL "(not set)")
add_definitions( add_definitions(
-DWITH_SHARED_DIR -DWITH_SHARED_DIR
-DSHARED_DIR="${SHARED_DIR}" -DSHARED_DIR="${SHARED_DIR}"
) )
endif (NOT SHARED_DIR STREQUAL "(not set)") endif()
if (NOT GLOBAL_DIR STREQUAL "(not set)") if(NOT GLOBAL_DIR STREQUAL "(not set)")
add_definitions( add_definitions(
-DGLOBAL_DATA_DIR="${GLOBAL_DIR}" -DGLOBAL_DATA_DIR="${GLOBAL_DIR}"
) )
endif (NOT GLOBAL_DIR STREQUAL "(not set)") endif()
link_package(SSE) link_package(SSE)
add_definitions_based_on_options() add_definitions_based_on_options()
if (WIN32) if(WIN32)
add_definitions( add_definitions(
-DUNICODE -DUNICODE
-D_UNICODE -D_UNICODE
@@ -295,11 +295,11 @@ if (WIN32)
imm32 imm32
usp10 usp10
) )
endif (WIN32) endif()
if (CMAKE_SIZEOF_VOID_P EQUAL 8) if(CMAKE_SIZEOF_VOID_P EQUAL 8)
add_definitions(-D_SQ64) add_definitions(-D_SQ64)
endif (CMAKE_SIZEOF_VOID_P EQUAL 8) endif()
include(CreateRegression) include(CreateRegression)
create_regression() create_regression()

View File

@@ -1,93 +0,0 @@
trigger:
- master
- release/*
pr:
- master
- release/*
jobs:
- job: windows
displayName: 'Windows'
pool:
vmImage: 'VS2017-Win2016'
strategy:
matrix:
Win32:
BuildArch: 'Win32'
VcpkgTargetTriplet: 'x86-windows-static'
Win64:
BuildArch: 'x64'
VcpkgTargetTriplet: 'x64-windows-static'
steps:
- template: azure-pipelines/templates/ci-git-rebase.yml
- template: azure-pipelines/templates/windows-dependencies.yml
- template: azure-pipelines/templates/ci-opengfx.yml
parameters:
SharedFolder: C:/Users/Public/Documents/OpenTTD
- template: azure-pipelines/templates/windows-build.yml
parameters:
BuildArch: $(BuildArch)
VcpkgTargetTriplet: $(VcpkgTargetTriplet)
BuildConfiguration: 'Debug'
- task: VSBuild@1
displayName: 'Prepare regression files'
inputs:
solution: build/regression_files.vcxproj
configuration: 'Debug'
- task: VSBuild@1
displayName: 'Test'
inputs:
solution: build/RUN_TESTS.vcxproj
configuration: 'Debug'
- job: linux
displayName: 'Linux'
pool:
vmImage: 'ubuntu-16.04'
strategy:
matrix:
linux-amd64-clang-3.9:
Tag: 'linux-amd64-clang-3.9'
linux-amd64-gcc-6:
Tag: 'linux-amd64-gcc-6'
linux-i386-gcc-6:
Tag: 'linux-i386-gcc-6'
steps:
- template: azure-pipelines/templates/ci-git-rebase.yml
# The dockers already have the dependencies installed
- template: azure-pipelines/templates/ci-opengfx.yml
parameters:
SharedFolder: /usr/local/share/games/openttd
PrefixCommand: sudo
- template: azure-pipelines/templates/linux-build.yml
parameters:
Image: compile-farm-ci
Tag: $(Tag)
- job: macos
displayName: 'MacOS'
pool:
vmImage: 'macOS-10.14'
variables:
MACOSX_DEPLOYMENT_TARGET: 10.9
steps:
- template: azure-pipelines/templates/ci-git-rebase.yml
- template: azure-pipelines/templates/osx-dependencies.yml
- template: azure-pipelines/templates/ci-opengfx.yml
parameters:
SharedFolder: /Library/Application Support/OpenTTD
PrefixCommand: sudo
- template: azure-pipelines/templates/osx-build.yml
- script: |
set -ex
cd build
CTEST_OUTPUT_ON_FAILURE=1 make test
displayName: 'Test'

View File

@@ -1,10 +0,0 @@
steps:
# Rebase to target branch for every PR. This means users don't have to
# rebase every time target branch changes. As long as the PR applies cleanly, we
# will validate it.
- bash: |
git config user.email 'info@openttd.org'
git config user.name 'OpenTTD CI'
git rebase origin/${SYSTEM_PULLREQUEST_TARGETBRANCH}
displayName: 'Rebase to target branch'
condition: and(succeeded(), eq(variables['Build.Reason'], 'PullRequest'))

View File

@@ -1,13 +0,0 @@
parameters:
SharedFolder: '/usr/local/share/games/openttd'
PrefixCommand: ''
steps:
- bash: |
set -ex
${{ parameters.PrefixCommand }} mkdir -p "${{ parameters.SharedFolder }}/baseset"
cd "${{ parameters.SharedFolder }}/baseset"
${{ parameters.PrefixCommand }} curl -L https://cdn.openttd.org/opengfx-releases/0.6.0/opengfx-0.6.0-all.zip -o opengfx-all.zip
${{ parameters.PrefixCommand }} unzip opengfx-all.zip
${{ parameters.PrefixCommand }} rm -f opengfx-all.zip
displayName: 'Install OpenGFX'

View File

@@ -9,7 +9,7 @@ macro(_parse_arguments_with_multi_hack ORIGINAL_COMMAND_LINE)
foreach(MULTI IN LISTS MULTIS) foreach(MULTI IN LISTS MULTIS)
string(REPLACE "${MULTI}" "${MULTI};:::" COMMAND_LINE "${COMMAND_LINE}") string(REPLACE "${MULTI}" "${MULTI};:::" COMMAND_LINE "${COMMAND_LINE}")
endforeach(MULTI) endforeach()
cmake_parse_arguments(PARAM "${OPTIONS}" "${SINGLES}" "${MULTIS}" ${COMMAND_LINE}) cmake_parse_arguments(PARAM "${OPTIONS}" "${SINGLES}" "${MULTIS}" ${COMMAND_LINE})
endmacro() endmacro()
@@ -19,25 +19,25 @@ macro(_reassemble_command_line)
set(NEW_COMMAND_LINE ${PARAM_UNPARSED_ARGUMENTS}) set(NEW_COMMAND_LINE ${PARAM_UNPARSED_ARGUMENTS})
foreach(OPTION IN LISTS OPTIONS) foreach(OPTION IN LISTS OPTIONS)
if (PARAM_${OPTION}) if(PARAM_${OPTION})
list(APPEND NEW_COMMAND_LINE "${OPTION}") list(APPEND NEW_COMMAND_LINE "${OPTION}")
endif (PARAM_${OPTION}) endif()
endforeach(OPTION) endforeach()
foreach(SINGLE IN LISTS SINGLES) foreach(SINGLE IN LISTS SINGLES)
if (PARAM_${SINGLE}) if(PARAM_${SINGLE})
list(APPEND NEW_COMMAND_LINE "${SINGLE}" "${PARAM_${SINGLE}}") list(APPEND NEW_COMMAND_LINE "${SINGLE}" "${PARAM_${SINGLE}}")
endif (PARAM_${SINGLE}) endif()
endforeach(SINGLE) endforeach()
foreach(MULTI IN LISTS MULTIS) foreach(MULTI IN LISTS MULTIS)
if (PARAM_${MULTI}) if(PARAM_${MULTI})
# Replace our special marker with the name of the MULTI again. This # Replace our special marker with the name of the MULTI again. This
# restores for example multiple COMMANDs again. # restores for example multiple COMMANDs again.
string(REPLACE ":::" "${MULTI}" PARAM_${MULTI} "${PARAM_${MULTI}}") string(REPLACE ":::" "${MULTI}" PARAM_${MULTI} "${PARAM_${MULTI}}")
list(APPEND NEW_COMMAND_LINE "${PARAM_${MULTI}}") list(APPEND NEW_COMMAND_LINE "${PARAM_${MULTI}}")
endif (PARAM_${MULTI}) endif()
endforeach(MULTI) endforeach()
endmacro() endmacro()
# Generated files can be older than their dependencies, causing useless # Generated files can be older than their dependencies, causing useless
@@ -72,9 +72,9 @@ function(add_custom_command_timestamp)
# Reset the OUTPUT and BYPRODUCTS as an empty list (if needed). # Reset the OUTPUT and BYPRODUCTS as an empty list (if needed).
# Because they are MULTIS, we need to add our special marker here. # Because they are MULTIS, we need to add our special marker here.
set(PARAM_OUTPUT ":::") set(PARAM_OUTPUT ":::")
if (NOT PARAM_BYPRODUCTS) if(NOT PARAM_BYPRODUCTS)
set(PARAM_BYPRODUCTS ":::") set(PARAM_BYPRODUCTS ":::")
endif () endif()
foreach(OUTPUT IN LISTS OUTPUTS) foreach(OUTPUT IN LISTS OUTPUTS)
# For every output, we add a 'cmake -E touch' entry to update the # For every output, we add a 'cmake -E touch' entry to update the
@@ -91,12 +91,12 @@ function(add_custom_command_timestamp)
# add_custom_target_timestamp() to know if we should point to the # add_custom_target_timestamp() to know if we should point to the
# '.timestamp' variant or not. # '.timestamp' variant or not.
set_source_files_properties(${OUTPUT} PROPERTIES BYPRODUCT ${CMAKE_CURRENT_BINARY_DIR}/${OUTPUT_FILENAME}.timestamp) set_source_files_properties(${OUTPUT} PROPERTIES BYPRODUCT ${CMAKE_CURRENT_BINARY_DIR}/${OUTPUT_FILENAME}.timestamp)
endforeach(OUTPUT) endforeach()
# Reassemble and call the wrapped command # Reassemble and call the wrapped command
_reassemble_command_line() _reassemble_command_line()
add_custom_command(${NEW_COMMAND_LINE}) add_custom_command(${NEW_COMMAND_LINE})
endfunction(add_custom_command_timestamp) endfunction()
# Generated files can be older than their dependencies, causing useless # Generated files can be older than their dependencies, causing useless
# regenerations. This function adds a .timestamp file for each file in DEPENDS # regenerations. This function adds a .timestamp file for each file in DEPENDS
@@ -130,16 +130,16 @@ function(add_custom_target_timestamp)
# Check if the output is produced by add_custom_command_timestamp() # Check if the output is produced by add_custom_command_timestamp()
get_source_file_property(BYPRODUCT ${DEPEND} BYPRODUCT) get_source_file_property(BYPRODUCT ${DEPEND} BYPRODUCT)
if (BYPRODUCT STREQUAL "NOTFOUND") if(BYPRODUCT STREQUAL "NOTFOUND")
# If it is not, just keep it as DEPEND # If it is not, just keep it as DEPEND
list(APPEND PARAM_DEPENDS "${DEPEND}") list(APPEND PARAM_DEPENDS "${DEPEND}")
else (BYPRODUCT STREQUAL "NOTFOUND") else()
# If it is, the BYPRODUCT property points to the timestamp we want to depend on # If it is, the BYPRODUCT property points to the timestamp we want to depend on
list(APPEND PARAM_DEPENDS "${BYPRODUCT}") list(APPEND PARAM_DEPENDS "${BYPRODUCT}")
endif (BYPRODUCT STREQUAL "NOTFOUND") endif()
endforeach(DEPEND) endforeach()
# Reassemble and call the wrapped command # Reassemble and call the wrapped command
_reassemble_command_line() _reassemble_command_line()
add_custom_target(${NEW_COMMAND_LINE}) add_custom_target(${NEW_COMMAND_LINE})
endfunction(add_custom_target_timestamp) endfunction()

View File

@@ -3,7 +3,7 @@
# compile_flags() # compile_flags()
# #
macro(compile_flags) macro(compile_flags)
if (MSVC) if(MSVC)
# Switch to MT (static) instead of MD (dynamic) binary # Switch to MT (static) instead of MD (dynamic) binary
# For MSVC two generators are available # For MSVC two generators are available
@@ -23,14 +23,14 @@ macro(compile_flags)
# C++11 standard". We need C++11 for the way we use threads. # C++11 standard". We need C++11 for the way we use threads.
add_compile_options(/Zc:rvalueCast) add_compile_options(/Zc:rvalueCast)
if (NOT CMAKE_CXX_COMPILER_ID STREQUAL "Clang") if(NOT CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
# Enable multi-threaded compilation. # Enable multi-threaded compilation.
add_compile_options(/MP) add_compile_options(/MP)
endif(NOT CMAKE_CXX_COMPILER_ID STREQUAL "Clang") endif()
# Add DPI manifest to project; other WIN32 targets get this via ottdres.rc # Add DPI manifest to project; other WIN32 targets get this via ottdres.rc
list(APPEND GENERATED_SOURCE_FILES "${CMAKE_SOURCE_DIR}/os/windows/openttd.manifest") list(APPEND GENERATED_SOURCE_FILES "${CMAKE_SOURCE_DIR}/os/windows/openttd.manifest")
endif (MSVC) endif()
# Add some -D flags for Debug builds. We cannot use add_definitions(), because # Add some -D flags for Debug builds. We cannot use add_definitions(), because
# it does not appear to support the $<> tags. # it does not appear to support the $<> tags.
@@ -38,19 +38,19 @@ macro(compile_flags)
"$<$<CONFIG:Debug>:-D_DEBUG>" "$<$<CONFIG:Debug>:-D_DEBUG>"
"$<$<NOT:$<CONFIG:Debug>>:-D_FORTIFY_SOURCE=2>" # FORTIFY_SOURCE should only be used in non-debug builds (requires -O1+) "$<$<NOT:$<CONFIG:Debug>>:-D_FORTIFY_SOURCE=2>" # FORTIFY_SOURCE should only be used in non-debug builds (requires -O1+)
) )
if (MINGW) if(MINGW)
add_link_options( add_link_options(
"$<$<NOT:$<CONFIG:Debug>>:-fstack-protector>" # Prevent undefined references when _FORTIFY_SOURCE > 0 "$<$<NOT:$<CONFIG:Debug>>:-fstack-protector>" # Prevent undefined references when _FORTIFY_SOURCE > 0
) )
endif (MINGW) endif()
# Prepare a generator that checks if we are not a debug, and don't have asserts # Prepare a generator that checks if we are not a debug, and don't have asserts
# on. We need this later on to set some compile options for stable releases. # on. We need this later on to set some compile options for stable releases.
#set(IS_STABLE_RELEASE "$<AND:$<NOT:$<CONFIG:Debug>>,$<NOT:$<BOOL:${OPTION_USE_ASSERTS}>>>") #set(IS_STABLE_RELEASE "$<AND:$<NOT:$<CONFIG:Debug>>,$<NOT:$<BOOL:${OPTION_USE_ASSERTS}>>>")
if (MSVC) if(MSVC)
add_compile_options(/W3) add_compile_options(/W3)
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
add_compile_options( add_compile_options(
-W -W
-Wall -Wall
@@ -104,15 +104,15 @@ macro(compile_flags)
# non-coloured output. We can override this to get nicely # non-coloured output. We can override this to get nicely
# coloured output, but since that might yield odd results with # coloured output, but since that might yield odd results with
# IDEs, we extract it to an option. # IDEs, we extract it to an option.
if (OPTION_FORCE_COLORED_OUTPUT) if(OPTION_FORCE_COLORED_OUTPUT)
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
add_compile_options (-fdiagnostics-color=always) add_compile_options (-fdiagnostics-color=always)
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
add_compile_options (-fcolor-diagnostics) add_compile_options (-fcolor-diagnostics)
endif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") endif()
endif (OPTION_FORCE_COLORED_OUTPUT) endif()
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
include(CheckCXXCompilerFlag) include(CheckCXXCompilerFlag)
check_cxx_compiler_flag("-flifetime-dse=1" LIFETIME_DSE_FOUND) check_cxx_compiler_flag("-flifetime-dse=1" LIFETIME_DSE_FOUND)
@@ -131,14 +131,14 @@ macro(compile_flags)
# well with our custom pool item allocator # well with our custom pool item allocator
"$<$<BOOL:${LIFETIME_DSE_FOUND}>:-flifetime-dse=1>" "$<$<BOOL:${LIFETIME_DSE_FOUND}>:-flifetime-dse=1>"
) )
endif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") endif()
if (APPLE) if(APPLE)
add_compile_options( add_compile_options(
-fno-stack-check -fno-stack-check
) )
endif (APPLE) endif()
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Intel") elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
add_compile_options( add_compile_options(
-Wall -Wall
# warning #873: function ... ::operator new ... has no corresponding operator delete ... # warning #873: function ... ::operator new ... has no corresponding operator delete ...
@@ -150,12 +150,12 @@ macro(compile_flags)
# warning #2160: anonymous union qualifier is ignored # warning #2160: anonymous union qualifier is ignored
-wd2160 -wd2160
) )
else () else()
message(FATAL_ERROR "No warning flags are set for this compiler yet; please consider creating a Pull Request to add support for this compiler.") message(FATAL_ERROR "No warning flags are set for this compiler yet; please consider creating a Pull Request to add support for this compiler.")
endif () endif()
if (NOT WIN32) if(NOT WIN32)
# rdynamic is used to get useful stack traces from crash reports. # rdynamic is used to get useful stack traces from crash reports.
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -rdynamic") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -rdynamic")
endif (NOT WIN32) endif()
endmacro() endmacro()

View File

@@ -26,7 +26,7 @@ function(create_grf_command)
) )
list(APPEND GRF_PNG_BINARY_FILES ${GRF_PNG_BINARY_FILE}) list(APPEND GRF_PNG_BINARY_FILES ${GRF_PNG_BINARY_FILE})
endforeach(GRF_PNG_SOURCE_FILE) endforeach()
add_custom_command(OUTPUT ${GRF_BINARY_FILE} add_custom_command(OUTPUT ${GRF_BINARY_FILE}
COMMAND ${CMAKE_COMMAND} COMMAND ${CMAKE_COMMAND}

View File

@@ -13,9 +13,9 @@ macro(create_regression)
string(REGEX REPLACE "^${CMAKE_SOURCE_DIR}/regression/" "${CMAKE_BINARY_DIR}/ai/" REGRESSION_BINARY_FILE "${REGRESSION_SOURCE_FILE}") string(REGEX REPLACE "^${CMAKE_SOURCE_DIR}/regression/" "${CMAKE_BINARY_DIR}/ai/" REGRESSION_BINARY_FILE "${REGRESSION_SOURCE_FILE}")
string(REGEX REPLACE "^${CMAKE_SOURCE_DIR}/regression/" "" REGRESSION_SOURCE_FILE_NAME "${REGRESSION_SOURCE_FILE}") string(REGEX REPLACE "^${CMAKE_SOURCE_DIR}/regression/" "" REGRESSION_SOURCE_FILE_NAME "${REGRESSION_SOURCE_FILE}")
if ("${REGRESSION_SOURCE_FILE_NAME}" STREQUAL "regression.cfg") if("${REGRESSION_SOURCE_FILE_NAME}" STREQUAL "regression.cfg")
continue() continue()
endif ("${REGRESSION_SOURCE_FILE_NAME}" STREQUAL "regression.cfg") endif()
add_custom_command(OUTPUT ${REGRESSION_BINARY_FILE} add_custom_command(OUTPUT ${REGRESSION_BINARY_FILE}
COMMAND ${CMAKE_COMMAND} -E copy COMMAND ${CMAKE_COMMAND} -E copy
@@ -26,7 +26,7 @@ macro(create_regression)
) )
list(APPEND REGRESSION_BINARY_FILES ${REGRESSION_BINARY_FILE}) list(APPEND REGRESSION_BINARY_FILES ${REGRESSION_BINARY_FILE})
endforeach(REGRESSION_SOURCE_FILE) endforeach()
# Copy the regression configuration in a special folder, so all autogenerated # Copy the regression configuration in a special folder, so all autogenerated
# folders end up in the same place after running regression. # folders end up in the same place after running regression.
@@ -53,9 +53,9 @@ macro(create_regression)
foreach(REGRESSION_TEST IN LISTS REGRESSION_TESTS) foreach(REGRESSION_TEST IN LISTS REGRESSION_TESTS)
get_filename_component(REGRESSION_TEST_NAME "${REGRESSION_TEST}" NAME) get_filename_component(REGRESSION_TEST_NAME "${REGRESSION_TEST}" NAME)
if ("${REGRESSION_TEST_NAME}" STREQUAL "regression.cfg") if("${REGRESSION_TEST_NAME}" STREQUAL "regression.cfg")
continue() continue()
endif ("${REGRESSION_TEST_NAME}" STREQUAL "regression.cfg") endif()
add_custom_target(regression_${REGRESSION_TEST_NAME} add_custom_target(regression_${REGRESSION_TEST_NAME}
COMMAND ${CMAKE_COMMAND} COMMAND ${CMAKE_COMMAND}
@@ -78,7 +78,7 @@ macro(create_regression)
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
list(APPEND REGRESSION_TARGETS regression_${REGRESSION_TEST_NAME}) list(APPEND REGRESSION_TARGETS regression_${REGRESSION_TEST_NAME})
endforeach(REGRESSION_TEST) endforeach()
# Create a new target which runs the regression # Create a new target which runs the regression
add_custom_target(regression add_custom_target(regression

View File

@@ -6,9 +6,9 @@ function(add_endian_definition)
include(TestBigEndian) include(TestBigEndian)
TEST_BIG_ENDIAN(IS_BIG_ENDIAN) TEST_BIG_ENDIAN(IS_BIG_ENDIAN)
if (IS_BIG_ENDIAN) if(IS_BIG_ENDIAN)
add_definitions(-DTTD_ENDIAN=TTD_BIG_ENDIAN) add_definitions(-DTTD_ENDIAN=TTD_BIG_ENDIAN)
else (IS_BIG_ENDIAN) else()
add_definitions(-DTTD_ENDIAN=TTD_LITTLE_ENDIAN) add_definitions(-DTTD_ENDIAN=TTD_LITTLE_ENDIAN)
endif (IS_BIG_ENDIAN) endif()
endfunction() endfunction()

View File

@@ -54,10 +54,10 @@ find_package_handle_standard_args(Allegro
VERSION_VAR Allegro_VERSION VERSION_VAR Allegro_VERSION
) )
if (Allegro_FOUND) if(Allegro_FOUND)
set(Allegro_LIBRARIES ${Allegro_LIBRARY}) set(Allegro_LIBRARIES ${Allegro_LIBRARY})
set(Allegro_INCLUDE_DIRS ${Allegro_INCLUDE_DIR}) set(Allegro_INCLUDE_DIRS ${Allegro_INCLUDE_DIR})
endif () endif()
mark_as_advanced( mark_as_advanced(
Allegro_INCLUDE_DIR Allegro_INCLUDE_DIR

View File

@@ -1,15 +1,15 @@
# Autodetect editbin. Only useful for MSVC. # Autodetect editbin. Only useful for MSVC.
if (NOT EDITBIN_DIRECTORY) if(NOT EDITBIN_DIRECTORY)
if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
get_filename_component(MSVC_COMPILE_DIRECTORY ${CMAKE_CXX_COMPILER} DIRECTORY) get_filename_component(MSVC_COMPILE_DIRECTORY ${CMAKE_CXX_COMPILER} DIRECTORY)
set(EDITBIN_DIRECTORY ${MSVC_COMPILE_DIRECTORY}) set(EDITBIN_DIRECTORY ${MSVC_COMPILE_DIRECTORY})
else (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") else()
# For clang-cl build # For clang-cl build
# find editbin.exe from environmental variable VCToolsInstallDir # find editbin.exe from environmental variable VCToolsInstallDir
set(EDITBIN_DIRECTORY "$ENV{VCToolsInstallDir}/bin/Hostx64/x64") set(EDITBIN_DIRECTORY "$ENV{VCToolsInstallDir}/bin/Hostx64/x64")
endif (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") endif()
endif (NOT EDITBIN_DIRECTORY) endif()
message(CHECK_START "Finding editbin.exe") message(CHECK_START "Finding editbin.exe")
find_program( find_program(
@@ -17,11 +17,11 @@ find_program(
HINTS ${EDITBIN_DIRECTORY} HINTS ${EDITBIN_DIRECTORY}
) )
if (EDITBIN_EXECUTABLE) if(EDITBIN_EXECUTABLE)
message(CHECK_PASS "found") message(CHECK_PASS "found")
else (EDITBIN_EXECUTABLE) else()
message(CHECK_FAIL "not found , please manually specify EDITBIN_DIRECTORY") message(CHECK_FAIL "not found , please manually specify EDITBIN_DIRECTORY")
endif (EDITBIN_EXECUTABLE) endif()
include(FindPackageHandleStandardArgs) include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Editbin find_package_handle_standard_args(Editbin

View File

@@ -54,10 +54,10 @@ find_package_handle_standard_args(Fluidsynth
VERSION_VAR Fluidsynth_VERSION VERSION_VAR Fluidsynth_VERSION
) )
if (Fluidsynth_FOUND) if(Fluidsynth_FOUND)
set(Fluidsynth_LIBRARIES ${Fluidsynth_LIBRARY}) set(Fluidsynth_LIBRARIES ${Fluidsynth_LIBRARY})
set(Fluidsynth_INCLUDE_DIRS ${Fluidsynth_INCLUDE_DIR}) set(Fluidsynth_INCLUDE_DIRS ${Fluidsynth_INCLUDE_DIR})
endif () endif()
mark_as_advanced( mark_as_advanced(
Fluidsynth_INCLUDE_DIR Fluidsynth_INCLUDE_DIR

View File

@@ -55,7 +55,7 @@ find_library( Fontconfig_LIBRARY
${PKG_FONTCONFIG_LIBRARY_DIRS} ${PKG_FONTCONFIG_LIBRARY_DIRS}
) )
if (Fontconfig_INCLUDE_DIR AND NOT Fontconfig_VERSION) if(Fontconfig_INCLUDE_DIR AND NOT Fontconfig_VERSION)
file(STRINGS ${Fontconfig_INCLUDE_DIR}/fontconfig/fontconfig.h _contents REGEX "^#define[ \t]+FC_[A-Z]+[ \t]+[0-9]+$") file(STRINGS ${Fontconfig_INCLUDE_DIR}/fontconfig/fontconfig.h _contents REGEX "^#define[ \t]+FC_[A-Z]+[ \t]+[0-9]+$")
unset(Fontconfig_VERSION) unset(Fontconfig_VERSION)
foreach(VPART MAJOR MINOR REVISION) foreach(VPART MAJOR MINOR REVISION)
@@ -70,7 +70,7 @@ if (Fontconfig_INCLUDE_DIR AND NOT Fontconfig_VERSION)
endif() endif()
endforeach() endforeach()
endforeach() endforeach()
endif () endif()
include(FindPackageHandleStandardArgs) include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Fontconfig find_package_handle_standard_args(Fontconfig

View File

@@ -29,7 +29,7 @@ find_package(PkgConfig QUIET)
set(ICU_KNOWN_COMPONENTS "uc" "i18n" "le" "lx" "io") set(ICU_KNOWN_COMPONENTS "uc" "i18n" "le" "lx" "io")
foreach(MOD_NAME IN LISTS ICU_FIND_COMPONENTS) foreach(MOD_NAME IN LISTS ICU_FIND_COMPONENTS)
if (NOT MOD_NAME IN_LIST ICU_KNOWN_COMPONENTS) if(NOT MOD_NAME IN_LIST ICU_KNOWN_COMPONENTS)
message(FATAL_ERROR "Unknown ICU component: ${MOD_NAME}") message(FATAL_ERROR "Unknown ICU component: ${MOD_NAME}")
endif() endif()
pkg_check_modules(PC_ICU_${MOD_NAME} QUIET icu-${MOD_NAME}) pkg_check_modules(PC_ICU_${MOD_NAME} QUIET icu-${MOD_NAME})
@@ -39,14 +39,14 @@ foreach(MOD_NAME IN LISTS ICU_FIND_COMPONENTS)
foreach(LIBRARY IN LISTS PC_ICU_${MOD_NAME}_LIBRARIES) foreach(LIBRARY IN LISTS PC_ICU_${MOD_NAME}_LIBRARIES)
unset(PC_LIBRARY CACHE) unset(PC_LIBRARY CACHE)
find_library(PC_LIBRARY NAMES ${LIBRARY}) find_library(PC_LIBRARY NAMES ${LIBRARY})
if (NOT PC_LIBRARY) if(NOT PC_LIBRARY)
unset(PC_ICU_${MOD_NAME}_FOUND) unset(PC_ICU_${MOD_NAME}_FOUND)
endif() endif()
list(APPEND PC_LIBRARIES ${PC_LIBRARY}) list(APPEND PC_LIBRARIES ${PC_LIBRARY})
endforeach() endforeach()
unset(PC_LIBRARY CACHE) unset(PC_LIBRARY CACHE)
if (${PC_ICU_${MOD_NAME}_FOUND}) if(${PC_ICU_${MOD_NAME}_FOUND})
set(ICU_COMPONENT_FOUND TRUE) set(ICU_COMPONENT_FOUND TRUE)
set(ICU_${MOD_NAME}_FOUND TRUE) set(ICU_${MOD_NAME}_FOUND TRUE)
set(ICU_${MOD_NAME}_LIBRARIES ${PC_LIBRARIES}) set(ICU_${MOD_NAME}_LIBRARIES ${PC_LIBRARIES})

View File

@@ -55,8 +55,8 @@ find_library(LZO_LIBRARY
# name as the optimized file. This is not always the case, but so far # name as the optimized file. This is not always the case, but so far
# experiences has shown that in those case vcpkg CMake files do the right # experiences has shown that in those case vcpkg CMake files do the right
# thing. # thing.
if (VCPKG_TOOLCHAIN AND LZO_LIBRARY) if(VCPKG_TOOLCHAIN AND LZO_LIBRARY)
if (LZO_LIBRARY MATCHES "/debug/") if(LZO_LIBRARY MATCHES "/debug/")
set(LZO_LIBRARY_DEBUG ${LZO_LIBRARY}) set(LZO_LIBRARY_DEBUG ${LZO_LIBRARY})
string(REPLACE "/debug/lib/" "/lib/" LZO_LIBRARY_RELEASE ${LZO_LIBRARY}) string(REPLACE "/debug/lib/" "/lib/" LZO_LIBRARY_RELEASE ${LZO_LIBRARY})
else() else()
@@ -78,10 +78,10 @@ find_package_handle_standard_args(LZO
VERSION_VAR LZO_VERSION VERSION_VAR LZO_VERSION
) )
if (LZO_FOUND) if(LZO_FOUND)
set(LZO_LIBRARIES ${LZO_LIBRARY}) set(LZO_LIBRARIES ${LZO_LIBRARY})
set(LZO_INCLUDE_DIRS ${LZO_INCLUDE_DIR}) set(LZO_INCLUDE_DIRS ${LZO_INCLUDE_DIR})
endif () endif()
mark_as_advanced( mark_as_advanced(
LZO_INCLUDE_DIR LZO_INCLUDE_DIR

View File

@@ -4,9 +4,9 @@
include(CheckCXXSourceCompiles) include(CheckCXXSourceCompiles)
set(CMAKE_REQUIRED_FLAGS "") set(CMAKE_REQUIRED_FLAGS "")
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
set(CMAKE_REQUIRED_FLAGS "-msse4.1") set(CMAKE_REQUIRED_FLAGS "-msse4.1")
endif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") endif()
check_cxx_source_compiles(" check_cxx_source_compiles("
#include <xmmintrin.h> #include <xmmintrin.h>

View File

@@ -54,10 +54,10 @@ find_package_handle_standard_args(XDG_basedir
VERSION_VAR XDG_basedir_VERSION VERSION_VAR XDG_basedir_VERSION
) )
if (XDG_basedir_FOUND) if(XDG_basedir_FOUND)
set(XDG_basedir_LIBRARIES ${XDG_basedir_LIBRARY}) set(XDG_basedir_LIBRARIES ${XDG_basedir_LIBRARY})
set(XDG_basedir_INCLUDE_DIRS ${XDG_basedir_INCLUDE_DIR}) set(XDG_basedir_INCLUDE_DIRS ${XDG_basedir_INCLUDE_DIR})
endif () endif()
mark_as_advanced( mark_as_advanced(
XDG_basedir_INCLUDE_DIR XDG_basedir_INCLUDE_DIR

View File

@@ -1,17 +1,17 @@
include(GNUInstallDirs) include(GNUInstallDirs)
# If requested, use FHS layout; otherwise fall back to a flat layout. # If requested, use FHS layout; otherwise fall back to a flat layout.
if (OPTION_INSTALL_FHS) if(OPTION_INSTALL_FHS)
set(BINARY_DESTINATION_DIR "${CMAKE_INSTALL_BINDIR}") set(BINARY_DESTINATION_DIR "${CMAKE_INSTALL_BINDIR}")
set(DATA_DESTINATION_DIR "${CMAKE_INSTALL_DATADIR}/${BINARY_NAME}") set(DATA_DESTINATION_DIR "${CMAKE_INSTALL_DATADIR}/${BINARY_NAME}")
set(DOCS_DESTINATION_DIR "${CMAKE_INSTALL_DOCDIR}") set(DOCS_DESTINATION_DIR "${CMAKE_INSTALL_DOCDIR}")
set(MAN_DESTINATION_DIR "${CMAKE_INSTALL_MANDIR}") set(MAN_DESTINATION_DIR "${CMAKE_INSTALL_MANDIR}")
else (OPTION_INSTALL_FHS) else()
set(BINARY_DESTINATION_DIR ".") set(BINARY_DESTINATION_DIR ".")
set(DATA_DESTINATION_DIR ".") set(DATA_DESTINATION_DIR ".")
set(DOCS_DESTINATION_DIR ".") set(DOCS_DESTINATION_DIR ".")
set(MAN_DESTINATION_DIR ".") set(MAN_DESTINATION_DIR ".")
endif (OPTION_INSTALL_FHS) endif()
install(TARGETS openttd install(TARGETS openttd
RUNTIME RUNTIME
@@ -40,7 +40,7 @@ install(FILES
# A Linux manual only makes sense when using FHS. Otherwise it is a very odd # A Linux manual only makes sense when using FHS. Otherwise it is a very odd
# file with little context to what it is. # file with little context to what it is.
if (OPTION_INSTALL_FHS) if(OPTION_INSTALL_FHS)
set(MAN_SOURCE_FILE ${CMAKE_SOURCE_DIR}/docs/openttd.6) set(MAN_SOURCE_FILE ${CMAKE_SOURCE_DIR}/docs/openttd.6)
set(MAN_BINARY_FILE ${CMAKE_BINARY_DIR}/docs/${BINARY_NAME}.6) set(MAN_BINARY_FILE ${CMAKE_BINARY_DIR}/docs/${BINARY_NAME}.6)
install(CODE install(CODE
@@ -53,26 +53,26 @@ if (OPTION_INSTALL_FHS)
${MAN_BINARY_FILE}.gz ${MAN_BINARY_FILE}.gz
DESTINATION ${MAN_DESTINATION_DIR}/man6 DESTINATION ${MAN_DESTINATION_DIR}/man6
COMPONENT manual) COMPONENT manual)
endif (OPTION_INSTALL_FHS) endif()
# TODO -- Media files # TODO -- Media files
# TODO -- Menu files # TODO -- Menu files
if (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
set(ARCHITECTURE "amd64") set(ARCHITECTURE "amd64")
else (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") else()
string(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" ARCHITECTURE) string(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" ARCHITECTURE)
endif (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") endif()
# Windows is a bit more annoying to detect; using the size of void pointer # Windows is a bit more annoying to detect; using the size of void pointer
# seems to be the most robust. # seems to be the most robust.
if (WIN32) if(WIN32)
if (CMAKE_SIZEOF_VOID_P EQUAL 8) if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(ARCHITECTURE "win64") set(ARCHITECTURE "win64")
else (CMAKE_SIZEOF_VOID_P EQUAL 8) else()
set(ARCHITECTURE "win32") set(ARCHITECTURE "win32")
endif (CMAKE_SIZEOF_VOID_P EQUAL 8) endif()
endif (WIN32) endif()
set(CPACK_SYSTEM_NAME "${ARCHITECTURE}") set(CPACK_SYSTEM_NAME "${ARCHITECTURE}")
@@ -91,33 +91,33 @@ set(CPACK_PACKAGE_EXECUTABLES "openttd;OpenTTD")
set(CPACK_STRIP_FILES NO) set(CPACK_STRIP_FILES NO)
set(CPACK_OUTPUT_FILE_PREFIX "bundles") set(CPACK_OUTPUT_FILE_PREFIX "bundles")
if (APPLE) if(APPLE)
set(CPACK_GENERATOR "Bundle") set(CPACK_GENERATOR "Bundle")
include(PackageBundle) include(PackageBundle)
set(CPACK_PACKAGE_FILE_NAME "openttd-#CPACK_PACKAGE_VERSION#-macosx") set(CPACK_PACKAGE_FILE_NAME "openttd-#CPACK_PACKAGE_VERSION#-macosx")
elseif (WIN32) elseif(WIN32)
set(CPACK_GENERATOR "ZIP") set(CPACK_GENERATOR "ZIP")
if (OPTION_USE_NSIS) if(OPTION_USE_NSIS)
list(APPEND CPACK_GENERATOR "NSIS") list(APPEND CPACK_GENERATOR "NSIS")
include(PackageNSIS) include(PackageNSIS)
endif (OPTION_USE_NSIS) endif()
set(CPACK_PACKAGE_FILE_NAME "openttd-#CPACK_PACKAGE_VERSION#-windows-${CPACK_SYSTEM_NAME}") set(CPACK_PACKAGE_FILE_NAME "openttd-#CPACK_PACKAGE_VERSION#-windows-${CPACK_SYSTEM_NAME}")
elseif (UNIX) elseif(UNIX)
# With FHS, we can create deb/rpm/... Without it, they would be horribly broken # With FHS, we can create deb/rpm/... Without it, they would be horribly broken
# and not work. The other way around is also true; with FHS they are not # and not work. The other way around is also true; with FHS they are not
# usable, and only flat formats work. # usable, and only flat formats work.
if (OPTION_INSTALL_FHS) if(OPTION_INSTALL_FHS)
set(CPACK_GENERATOR "DEB") set(CPACK_GENERATOR "DEB")
include(PackageDeb) include(PackageDeb)
else (OPTION_INSTALL_FHS) else()
set(CPACK_GENERATOR "TXZ") set(CPACK_GENERATOR "TXZ")
endif (OPTION_INSTALL_FHS) endif()
set(CPACK_PACKAGE_FILE_NAME "openttd-#CPACK_PACKAGE_VERSION#-linux-${CPACK_SYSTEM_NAME}") set(CPACK_PACKAGE_FILE_NAME "openttd-#CPACK_PACKAGE_VERSION#-linux-${CPACK_SYSTEM_NAME}")
else () else()
message(FATAL_ERROR "Unknown OS found for packaging; please consider creating a Pull Request to add support for this OS.") message(FATAL_ERROR "Unknown OS found for packaging; please consider creating a Pull Request to add support for this OS.")
endif () endif()
include(CPack) include(CPack)

View File

@@ -1,18 +1,23 @@
function(link_package NAME) function(link_package NAME)
cmake_parse_arguments(LP "ENCOURAGED" "TARGET" "" ${ARGN}) cmake_parse_arguments(LP "ENCOURAGED" "TARGET" "" ${ARGN})
if (${NAME}_FOUND) if(${NAME}_FOUND)
string(TOUPPER "${NAME}" UCNAME) string(TOUPPER "${NAME}" UCNAME)
add_definitions(-DWITH_${UCNAME}) add_definitions(-DWITH_${UCNAME})
if (LP_TARGET AND TARGET ${LP_TARGET}) # Some libraries' cmake packages (looking at you, SDL2) leave trailing whitespace in the link commands,
# which (later) cmake considers to be an error. Work around this with by stripping the incoming string.
if(LP_TARGET AND TARGET ${LP_TARGET})
string(STRIP "${LP_TARGET}" LP_TARGET)
target_link_libraries(openttd ${LP_TARGET}) target_link_libraries(openttd ${LP_TARGET})
message(STATUS "${NAME} found -- -DWITH_${UCNAME} -- ${LP_TARGET}") message(STATUS "${NAME} found -- -DWITH_${UCNAME} -- ${LP_TARGET}")
else() else()
string(STRIP "${${NAME}_LIBRARY}" ${NAME}_LIBRARY)
string(STRIP "${${NAME}_LIBRARIES}" ${NAME}_LIBRARIES)
include_directories(${${NAME}_INCLUDE_DIRS} ${${NAME}_INCLUDE_DIR}) include_directories(${${NAME}_INCLUDE_DIRS} ${${NAME}_INCLUDE_DIR})
target_link_libraries(openttd ${${NAME}_LIBRARIES} ${${NAME}_LIBRARY}) target_link_libraries(openttd ${${NAME}_LIBRARIES} ${${NAME}_LIBRARY})
message(STATUS "${NAME} found -- -DWITH_${UCNAME} -- ${${NAME}_INCLUDE_DIRS} ${${NAME}_INCLUDE_DIR} -- ${${NAME}_LIBRARIES} ${${NAME}_LIBRARY}") message(STATUS "${NAME} found -- -DWITH_${UCNAME} -- ${${NAME}_INCLUDE_DIRS} ${${NAME}_INCLUDE_DIR} -- ${${NAME}_LIBRARIES} ${${NAME}_LIBRARY}")
endif() endif()
elseif (LP_ENCOURAGED) elseif(LP_ENCOURAGED)
message(WARNING "${NAME} not found; compiling OpenTTD without ${NAME} is strongly disencouraged") message(WARNING "${NAME} not found; compiling OpenTTD without ${NAME} is strongly disencouraged")
endif() endif()
endfunction() endfunction()

View File

@@ -5,36 +5,36 @@ include(GNUInstallDirs)
# set_directory_options() # set_directory_options()
# #
function(set_directory_options) function(set_directory_options)
if (APPLE) if(APPLE)
set(DEFAULT_PERSONAL_DIR "Documents/OpenTTD") set(DEFAULT_PERSONAL_DIR "Documents/OpenTTD")
set(DEFAULT_SHARED_DIR "/Library/Application Support/OpenTTD") set(DEFAULT_SHARED_DIR "/Library/Application Support/OpenTTD")
set(DEFAULT_GLOBAL_DIR "(not set)") set(DEFAULT_GLOBAL_DIR "(not set)")
elseif (WIN32) elseif(WIN32)
set(DEFAULT_PERSONAL_DIR "OpenTTD") set(DEFAULT_PERSONAL_DIR "OpenTTD")
set(DEFAULT_SHARED_DIR "(not set)") set(DEFAULT_SHARED_DIR "(not set)")
set(DEFAULT_GLOBAL_DIR "(not set)") set(DEFAULT_GLOBAL_DIR "(not set)")
elseif (UNIX) elseif(UNIX)
set(DEFAULT_PERSONAL_DIR ".${BINARY_NAME}") set(DEFAULT_PERSONAL_DIR ".${BINARY_NAME}")
set(DEFAULT_SHARED_DIR "(not set)") set(DEFAULT_SHARED_DIR "(not set)")
set(DEFAULT_GLOBAL_DIR "${CMAKE_INSTALL_FULL_DATADIR}/${BINARY_NAME}") set(DEFAULT_GLOBAL_DIR "${CMAKE_INSTALL_FULL_DATADIR}/${BINARY_NAME}")
else () else()
message(FATAL_ERROR "Unknown OS found; please consider creating a Pull Request to add support for this OS.") message(FATAL_ERROR "Unknown OS found; please consider creating a Pull Request to add support for this OS.")
endif () endif()
if (NOT PERSONAL_DIR) if(NOT PERSONAL_DIR)
set(PERSONAL_DIR "${DEFAULT_PERSONAL_DIR}" CACHE STRING "Personal directory") set(PERSONAL_DIR "${DEFAULT_PERSONAL_DIR}" CACHE STRING "Personal directory")
message(STATUS "Detecting Personal Data directory - ${PERSONAL_DIR}") message(STATUS "Detecting Personal Data directory - ${PERSONAL_DIR}")
endif (NOT PERSONAL_DIR) endif()
if (NOT SHARED_DIR) if(NOT SHARED_DIR)
set(SHARED_DIR "${DEFAULT_SHARED_DIR}" CACHE STRING "Shared directory") set(SHARED_DIR "${DEFAULT_SHARED_DIR}" CACHE STRING "Shared directory")
message(STATUS "Detecting Shared Data directory - ${SHARED_DIR}") message(STATUS "Detecting Shared Data directory - ${SHARED_DIR}")
endif (NOT SHARED_DIR) endif()
if (NOT GLOBAL_DIR) if(NOT GLOBAL_DIR)
set(GLOBAL_DIR "${DEFAULT_GLOBAL_DIR}" CACHE STRING "Global directory") set(GLOBAL_DIR "${DEFAULT_GLOBAL_DIR}" CACHE STRING "Global directory")
message(STATUS "Detecting Global Data directory - ${GLOBAL_DIR}") message(STATUS "Detecting Global Data directory - ${GLOBAL_DIR}")
endif (NOT GLOBAL_DIR) endif()
endfunction() endfunction()
# Set some generic options that influence what is being build. # Set some generic options that influence what is being build.
@@ -42,11 +42,11 @@ endfunction()
# set_options() # set_options()
# #
function(set_options) function(set_options)
if (UNIX AND NOT APPLE) if(UNIX AND NOT APPLE)
set(DEFAULT_OPTION_INSTALL_FHS ON) set(DEFAULT_OPTION_INSTALL_FHS ON)
else (UNIX AND NOT APPLE) else()
set(DEFAULT_OPTION_INSTALL_FHS OFF) set(DEFAULT_OPTION_INSTALL_FHS OFF)
endif (UNIX AND NOT APPLE) endif()
option(OPTION_FORCE_COLORED_OUTPUT "Always produce ANSI-colored output (GNU/Clang only)." OFF) option(OPTION_FORCE_COLORED_OUTPUT "Always produce ANSI-colored output (GNU/Clang only)." OFF)
@@ -74,17 +74,17 @@ endfunction()
# add_definitions_based_on_options() # add_definitions_based_on_options()
# #
function(add_definitions_based_on_options) function(add_definitions_based_on_options)
if (OPTION_DEDICATED) if(OPTION_DEDICATED)
add_definitions(-DDEDICATED) add_definitions(-DDEDICATED)
endif (OPTION_DEDICATED) endif()
if (NOT OPTION_USE_THREADS) if(NOT OPTION_USE_THREADS)
add_definitions(-DNO_THREADS) add_definitions(-DNO_THREADS)
endif (NOT OPTION_USE_THREADS) endif()
if (OPTION_USE_ASSERTS) if(OPTION_USE_ASSERTS)
add_definitions(-DWITH_ASSERT) add_definitions(-DWITH_ASSERT)
else (OPTION_USE_ASSERTS) else()
add_definitions(-DNDEBUG) add_definitions(-DNDEBUG)
endif (OPTION_USE_ASSERTS) endif()
endfunction() endfunction()

View File

@@ -10,16 +10,16 @@ function(add_files)
cmake_parse_arguments(PARAM "" "" "CONDITION" ${ARGN}) cmake_parse_arguments(PARAM "" "" "CONDITION" ${ARGN})
set(PARAM_FILES "${PARAM_UNPARSED_ARGUMENTS}") set(PARAM_FILES "${PARAM_UNPARSED_ARGUMENTS}")
if (PARAM_CONDITION) if(PARAM_CONDITION)
if (NOT (${PARAM_CONDITION})) if(NOT (${PARAM_CONDITION}))
return() return()
endif (NOT (${PARAM_CONDITION})) endif()
endif (PARAM_CONDITION) endif()
foreach(FILE IN LISTS PARAM_FILES) foreach(FILE IN LISTS PARAM_FILES)
target_sources(openttd PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/${FILE}) target_sources(openttd PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/${FILE})
endforeach() endforeach()
endfunction(add_files) endfunction()
# This function works around an 'issue' with CMake, where # This function works around an 'issue' with CMake, where
# set_source_files_properties() only works in the scope of the file. We want # set_source_files_properties() only works in the scope of the file. We want
@@ -42,7 +42,7 @@ function(set_compile_flags)
endforeach() endforeach()
set_property(GLOBAL PROPERTY source_properties "${SOURCE_PROPERTIES}") set_property(GLOBAL PROPERTY source_properties "${SOURCE_PROPERTIES}")
endfunction(set_compile_flags) endfunction()
# Call this macro in the same CMakeLists.txt and after add_executable(). # Call this macro in the same CMakeLists.txt and after add_executable().
# This makes sure all the COMPILE_FLAGS of set_compile_flags() are set # This makes sure all the COMPILE_FLAGS of set_compile_flags() are set
@@ -60,4 +60,4 @@ function(process_compile_flags)
set_source_files_properties(${FILE} PROPERTIES COMPILE_FLAGS ${PROPERTIES}) set_source_files_properties(${FILE} PROPERTIES COMPILE_FLAGS ${PROPERTIES})
endforeach() endforeach()
endfunction(process_compile_flags) endfunction()

View File

@@ -3,7 +3,7 @@
# set_static() # set_static()
# #
function(set_static_if_needed) function(set_static_if_needed)
if (MINGW) if(MINGW)
# Let exectutables run outside MinGW environment # Let exectutables run outside MinGW environment
# Force searching static libs # Force searching static libs
set(CMAKE_FIND_LIBRARY_SUFFIXES ".a" PARENT_SCOPE) set(CMAKE_FIND_LIBRARY_SUFFIXES ".a" PARENT_SCOPE)

View File

@@ -12,13 +12,13 @@ set(ARG_READ NO)
while(ARGC LESS CMAKE_ARGC) while(ARGC LESS CMAKE_ARGC)
set(ARG ${CMAKE_ARGV${ARGC}}) set(ARG ${CMAKE_ARGV${ARGC}})
if (ARG_READ) if(ARG_READ)
list(APPEND LANG_SOURCE_FILES "${ARG}") list(APPEND LANG_SOURCE_FILES "${ARG}")
endif (ARG_READ) endif()
if (ARG STREQUAL "--") if(ARG STREQUAL "--")
set(ARG_READ YES) set(ARG_READ YES)
endif (ARG STREQUAL "--") endif()
math(EXPR ARGC "${ARGC} + 1") math(EXPR ARGC "${ARGC} + 1")
endwhile() endwhile()
@@ -33,17 +33,17 @@ string(REGEX REPLACE "@(.*)@" "\\1" PLACE_HOLDER "${PLACE_HOLDER}")
foreach(LANGFILE IN LISTS LANG_SOURCE_FILES) foreach(LANGFILE IN LISTS LANG_SOURCE_FILES)
file(STRINGS "${LANGFILE}" LANGLINES REGEX "^(##isocode|${STR_ID})" ENCODING UTF-8) file(STRINGS "${LANGFILE}" LANGLINES REGEX "^(##isocode|${STR_ID})" ENCODING UTF-8)
string(FIND "${LANGLINES}" "${STR_ID}" HAS_STR_ID) string(FIND "${LANGLINES}" "${STR_ID}" HAS_STR_ID)
if (HAS_STR_ID LESS 0) if(HAS_STR_ID LESS 0)
continue() continue()
endif (HAS_STR_ID LESS 0) endif()
string(REGEX REPLACE "##isocode ([^;]+).*" "\\1" ISOCODE "${LANGLINES}") string(REGEX REPLACE "##isocode ([^;]+).*" "\\1" ISOCODE "${LANGLINES}")
if ("${ISOCODE}" STREQUAL "en_GB") if("${ISOCODE}" STREQUAL "en_GB")
string(REGEX REPLACE "[^:]*:(.*)" "${INI_KEY} = \\1" LANGLINES "${LANGLINES}") string(REGEX REPLACE "[^:]*:(.*)" "${INI_KEY} = \\1" LANGLINES "${LANGLINES}")
else() else()
string(REGEX REPLACE "[^:]*:(.*)" "${INI_KEY}.${ISOCODE} = \\1" LANGLINES "${LANGLINES}") string(REGEX REPLACE "[^:]*:(.*)" "${INI_KEY}.${ISOCODE} = \\1" LANGLINES "${LANGLINES}")
endif() endif()
list(APPEND ${PLACE_HOLDER} ${LANGLINES}) list(APPEND ${PLACE_HOLDER} ${LANGLINES})
endforeach(LANGFILE) endforeach()
list(SORT ${PLACE_HOLDER}) list(SORT ${PLACE_HOLDER})
string(REPLACE ";" "\n" ${PLACE_HOLDER} "${${PLACE_HOLDER}}") string(REPLACE ";" "\n" ${PLACE_HOLDER} "${${PLACE_HOLDER}}")

View File

@@ -5,18 +5,18 @@ cmake_minimum_required(VERSION 3.5)
# files. # files.
# #
if (NOT NFORENUM_EXECUTABLE) if(NOT NFORENUM_EXECUTABLE)
message(FATAL_ERROR "Script needs NFORENUM_EXECUTABLE defined") message(FATAL_ERROR "Script needs NFORENUM_EXECUTABLE defined")
endif (NOT NFORENUM_EXECUTABLE) endif()
if (NOT GRFCODEC_EXECUTABLE) if(NOT GRFCODEC_EXECUTABLE)
message(FATAL_ERROR "Script needs GRFCODEC_EXECUTABLE defined") message(FATAL_ERROR "Script needs GRFCODEC_EXECUTABLE defined")
endif (NOT GRFCODEC_EXECUTABLE) endif()
if (NOT GRF_SOURCE_FOLDER) if(NOT GRF_SOURCE_FOLDER)
message(FATAL_ERROR "Script needs GRF_SOURCE_FOLDER defined") message(FATAL_ERROR "Script needs GRF_SOURCE_FOLDER defined")
endif (NOT GRF_SOURCE_FOLDER) endif()
if (NOT GRF_BINARY_FILE) if(NOT GRF_BINARY_FILE)
message(FATAL_ERROR "Script needs GRF_BINARY_FILE defined") message(FATAL_ERROR "Script needs GRF_BINARY_FILE defined")
endif (NOT GRF_BINARY_FILE) endif()
get_filename_component(GRF_SOURCE_FOLDER_NAME "${GRF_SOURCE_FOLDER}" NAME) get_filename_component(GRF_SOURCE_FOLDER_NAME "${GRF_SOURCE_FOLDER}" NAME)
@@ -30,14 +30,14 @@ foreach(NFO_LINE IN LISTS NFO_LINES)
# Recover the ; that was really in the text (and not a newline) # Recover the ; that was really in the text (and not a newline)
string(REPLACE "\\;" ";" NFO_LINE "${NFO_LINE}") string(REPLACE "\\;" ";" NFO_LINE "${NFO_LINE}")
if (NFO_LINE MATCHES "^#include") if(NFO_LINE MATCHES "^#include")
string(REGEX REPLACE "^#include \"(.*)\"$" "\\1" INCLUDE_FILE ${NFO_LINE}) string(REGEX REPLACE "^#include \"(.*)\"$" "\\1" INCLUDE_FILE ${NFO_LINE})
file(READ ${GRF_SOURCE_FOLDER}/${INCLUDE_FILE} INCLUDE_LINES) file(READ ${GRF_SOURCE_FOLDER}/${INCLUDE_FILE} INCLUDE_LINES)
file(APPEND sprites/${GRF_SOURCE_FOLDER_NAME}.nfo "${INCLUDE_LINES}") file(APPEND sprites/${GRF_SOURCE_FOLDER_NAME}.nfo "${INCLUDE_LINES}")
else (NFO_LINE MATCHES "^#include") else()
file(APPEND sprites/${GRF_SOURCE_FOLDER_NAME}.nfo "${NFO_LINE}\n") file(APPEND sprites/${GRF_SOURCE_FOLDER_NAME}.nfo "${NFO_LINE}\n")
endif (NFO_LINE MATCHES "^#include") endif()
endforeach(NFO_LINE) endforeach()
execute_process(COMMAND ${NFORENUM_EXECUTABLE} -s sprites/${GRF_SOURCE_FOLDER_NAME}.nfo) execute_process(COMMAND ${NFORENUM_EXECUTABLE} -s sprites/${GRF_SOURCE_FOLDER_NAME}.nfo)
execute_process(COMMAND ${GRFCODEC_EXECUTABLE} -n -s -e -p1 ${GRF_SOURCE_FOLDER_NAME}.grf) execute_process(COMMAND ${GRFCODEC_EXECUTABLE} -n -s -e -p1 ${GRF_SOURCE_FOLDER_NAME}.grf)

View File

@@ -6,7 +6,7 @@ cmake_minimum_required(VERSION 3.5)
find_package(Git QUIET) find_package(Git QUIET)
# ${CMAKE_SOURCE_DIR}/.git may be a directory or a regular file # ${CMAKE_SOURCE_DIR}/.git may be a directory or a regular file
if (GIT_FOUND AND EXISTS "${CMAKE_SOURCE_DIR}/.git") if(GIT_FOUND AND EXISTS "${CMAKE_SOURCE_DIR}/.git")
# Make sure LC_ALL is set to something desirable # Make sure LC_ALL is set to something desirable
set(SAVED_LC_ALL "$ENV{LC_ALL}") set(SAVED_LC_ALL "$ENV{LC_ALL}")
set(ENV{LC_ALL} C) set(ENV{LC_ALL} C)
@@ -26,7 +26,7 @@ if (GIT_FOUND AND EXISTS "${CMAKE_SOURCE_DIR}/.git")
OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_STRIP_TRAILING_WHITESPACE
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
) )
if (NOT IS_MODIFIED STREQUAL "") if(NOT IS_MODIFIED STREQUAL "")
set(REV_MODIFIED 2) set(REV_MODIFIED 2)
endif() endif()
@@ -69,34 +69,34 @@ if (GIT_FOUND AND EXISTS "${CMAKE_SOURCE_DIR}/.git")
) )
string(REGEX REPLACE "\^0$" "" TAG "${TAG}") string(REGEX REPLACE "\^0$" "" TAG "${TAG}")
if (REV_MODIFIED EQUAL 0) if(REV_MODIFIED EQUAL 0)
set(HASHPREFIX "-g") set(HASHPREFIX "-g")
elseif (REV_MODIFIED EQUAL 2) elseif(REV_MODIFIED EQUAL 2)
set(HASHPREFIX "-m") set(HASHPREFIX "-m")
else () else()
set(HASHPREFIX "-u") set(HASHPREFIX "-u")
endif() endif()
# Set the version string # Set the version string
if (NOT TAG STREQUAL "") if(NOT TAG STREQUAL "")
set(REV_VERSION "${TAG}") set(REV_VERSION "${TAG}")
set(REV_ISTAG 1) set(REV_ISTAG 1)
string(REGEX REPLACE "^[0-9.]+$" "" STABLETAG "${TAG}") string(REGEX REPLACE "^[0-9.]+$" "" STABLETAG "${TAG}")
if (NOT STABLETAG STREQUAL "") if(NOT STABLETAG STREQUAL "")
set(REV_ISSTABLETAG 1) set(REV_ISSTABLETAG 1)
else () else()
set(REV_ISSTABLETAG 0) set(REV_ISSTABLETAG 0)
endif () endif()
else () else()
set(REV_VERSION "${REV_ISODATE}-${BRANCH}${HASHPREFIX}${SHORTHASH}") set(REV_VERSION "${REV_ISODATE}-${BRANCH}${HASHPREFIX}${SHORTHASH}")
set(REV_ISTAG 0) set(REV_ISTAG 0)
set(REV_ISSTABLETAG 0) set(REV_ISSTABLETAG 0)
endif () endif()
# Restore LC_ALL # Restore LC_ALL
set(ENV{LC_ALL} "${SAVED_LC_ALL}") set(ENV{LC_ALL} "${SAVED_LC_ALL}")
elseif (EXISTS "${CMAKE_SOURCE_DIR}/.ottdrev-vc") elseif(EXISTS "${CMAKE_SOURCE_DIR}/.ottdrev-vc")
file(READ "${CMAKE_SOURCE_DIR}/.ottdrev-vc" OTTDREVVC) file(READ "${CMAKE_SOURCE_DIR}/.ottdrev-vc" OTTDREVVC)
string(REPLACE "\n" ";" OTTDREVVC "${OTTDREVVC}") string(REPLACE "\n" ";" OTTDREVVC "${OTTDREVVC}")
list(GET OTTDREVVC 0 OTTDREV) list(GET OTTDREVVC 0 OTTDREV)
@@ -109,29 +109,29 @@ elseif (EXISTS "${CMAKE_SOURCE_DIR}/.ottdrev-vc")
list(GET OTTDREV 4 REV_ISTAG) list(GET OTTDREV 4 REV_ISTAG)
list(GET OTTDREV 5 REV_ISSTABLETAG) list(GET OTTDREV 5 REV_ISSTABLETAG)
list(GET OTTDREV 6 REV_YEAR) list(GET OTTDREV 6 REV_YEAR)
if (REV_MODIFIED EQUAL 2) if(REV_MODIFIED EQUAL 2)
string(REGEX REPLACE "M$" "" REV_VERSION "${REV_VERSION}") string(REGEX REPLACE "M$" "" REV_VERSION "${REV_VERSION}")
endif () endif()
execute_process(COMMAND ./version_utils.sh -o execute_process(COMMAND ./version_utils.sh -o
RESULT_VARIABLE CAN_CHECK_MODIFIED RESULT_VARIABLE CAN_CHECK_MODIFIED
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
) )
if (CAN_CHECK_MODIFIED EQUAL 0) if(CAN_CHECK_MODIFIED EQUAL 0)
execute_process(COMMAND ./version_utils.sh -s execute_process(COMMAND ./version_utils.sh -s
OUTPUT_VARIABLE CURRENT_HASH OUTPUT_VARIABLE CURRENT_HASH
OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_STRIP_TRAILING_WHITESPACE
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
) )
if (NOT CURRENT_HASH STREQUAL SRCHASH) if(NOT CURRENT_HASH STREQUAL SRCHASH)
set(REV_MODIFIED 2) set(REV_MODIFIED 2)
string(SUBSTRING "${CURRENT_HASH}" 0 8 SHORT_CURRENT_HASH) string(SUBSTRING "${CURRENT_HASH}" 0 8 SHORT_CURRENT_HASH)
set(REV_VERSION "${REV_VERSION}-H${SHORT_CURRENT_HASH}") set(REV_VERSION "${REV_VERSION}-H${SHORT_CURRENT_HASH}")
set(REV_MODIFIED 2) set(REV_MODIFIED 2)
endif () endif()
else () else()
set(REV_MODIFIED 1) set(REV_MODIFIED 1)
endif () endif()
elseif (EXISTS "${CMAKE_SOURCE_DIR}/.ottdrev") elseif(EXISTS "${CMAKE_SOURCE_DIR}/.ottdrev")
file(READ "${CMAKE_SOURCE_DIR}/.ottdrev" OTTDREV) file(READ "${CMAKE_SOURCE_DIR}/.ottdrev" OTTDREV)
string(REPLACE "\n" "" OTTDREV "${OTTDREV}") string(REPLACE "\n" "" OTTDREV "${OTTDREV}")
string(REPLACE "\t" ";" OTTDREV "${OTTDREV}") string(REPLACE "\t" ";" OTTDREV "${OTTDREV}")
@@ -142,7 +142,7 @@ elseif (EXISTS "${CMAKE_SOURCE_DIR}/.ottdrev")
list(GET OTTDREV 4 REV_ISTAG) list(GET OTTDREV 4 REV_ISTAG)
list(GET OTTDREV 5 REV_ISSTABLETAG) list(GET OTTDREV 5 REV_ISSTABLETAG)
list(GET OTTDREV 6 REV_YEAR) list(GET OTTDREV 6 REV_YEAR)
else () else()
message(WARNING "No version detected; this build will NOT be network compatible") message(WARNING "No version detected; this build will NOT be network compatible")
set(REV_VERSION "norev0000") set(REV_VERSION "norev0000")
set(REV_ISODATE "19700101") set(REV_ISODATE "19700101")
@@ -151,25 +151,25 @@ else ()
set(REV_ISTAG 0) set(REV_ISTAG 0)
set(REV_ISSTABLETAG 0) set(REV_ISSTABLETAG 0)
set(REV_YEAR "1970") set(REV_YEAR "1970")
endif () endif()
message(STATUS "Version string: ${REV_VERSION}") message(STATUS "Version string: ${REV_VERSION}")
if (GENERATE_OTTDREV) if(GENERATE_OTTDREV)
message(STATUS "Generating ${GENERATE_OTTDREV}") message(STATUS "Generating ${GENERATE_OTTDREV}")
file(WRITE ${CMAKE_SOURCE_DIR}/${GENERATE_OTTDREV} "${REV_VERSION}\t${REV_ISODATE}\t${REV_MODIFIED}\t${REV_HASH}\t${REV_ISTAG}\t${REV_ISSTABLETAG}\t${REV_YEAR}\n") file(WRITE ${CMAKE_SOURCE_DIR}/${GENERATE_OTTDREV} "${REV_VERSION}\t${REV_ISODATE}\t${REV_MODIFIED}\t${REV_HASH}\t${REV_ISTAG}\t${REV_ISSTABLETAG}\t${REV_YEAR}\n")
else (GENERATE_OTTDREV) else()
message(STATUS "Generating rev.cpp") message(STATUS "Generating rev.cpp")
configure_file("${CMAKE_SOURCE_DIR}/src/rev.cpp.in" configure_file("${CMAKE_SOURCE_DIR}/src/rev.cpp.in"
"${FIND_VERSION_BINARY_DIR}/rev.cpp") "${FIND_VERSION_BINARY_DIR}/rev.cpp")
if (WIN32) if(WIN32)
message(STATUS "Generating ottdres.rc") message(STATUS "Generating ottdres.rc")
configure_file("${CMAKE_SOURCE_DIR}/src/os/windows/ottdres.rc.in" configure_file("${CMAKE_SOURCE_DIR}/src/os/windows/ottdres.rc.in"
"${FIND_VERSION_BINARY_DIR}/ottdres.rc") "${FIND_VERSION_BINARY_DIR}/ottdres.rc")
endif (WIN32) endif()
message(STATUS "Generating CPackProperties.cmake") message(STATUS "Generating CPackProperties.cmake")
configure_file("${CMAKE_SOURCE_DIR}/CPackProperties.cmake.in" configure_file("${CMAKE_SOURCE_DIR}/CPackProperties.cmake.in"
"${CPACK_BINARY_DIR}/CPackProperties.cmake" @ONLY) "${CPACK_BINARY_DIR}/CPackProperties.cmake" @ONLY)
endif (GENERATE_OTTDREV) endif()

View File

@@ -15,12 +15,12 @@ cmake_minimum_required(VERSION 3.5)
# #
# #
if (NOT GENERATE_SOURCE_FILE) if(NOT GENERATE_SOURCE_FILE)
message(FATAL_ERROR "Script needs GENERATE_SOURCE_FILE defined") message(FATAL_ERROR "Script needs GENERATE_SOURCE_FILE defined")
endif (NOT GENERATE_SOURCE_FILE) endif()
if (NOT GENERATE_BINARY_FILE) if(NOT GENERATE_BINARY_FILE)
message(FATAL_ERROR "Script needs GENERATE_BINARY_FILE defined") message(FATAL_ERROR "Script needs GENERATE_BINARY_FILE defined")
endif (NOT GENERATE_BINARY_FILE) endif()
file(STRINGS ${GENERATE_SOURCE_FILE} ENUM_LINES REGEX "@enum") file(STRINGS ${GENERATE_SOURCE_FILE} ENUM_LINES REGEX "@enum")
@@ -46,38 +46,38 @@ foreach(ENUM IN LISTS ENUM_LINES)
string(REPLACE "${RM_INDENT}" "" LINE "${LINE}") string(REPLACE "${RM_INDENT}" "" LINE "${LINE}")
# Remember possible doxygen comment before enum declaration # Remember possible doxygen comment before enum declaration
if ((NOT ACTIVE) AND "${LINE}" MATCHES "/\\*\\*") if((NOT ACTIVE) AND "${LINE}" MATCHES "/\\*\\*")
set(COMMENT "${ADD_INDENT}${LINE}") set(COMMENT "${ADD_INDENT}${LINE}")
set(ACTIVE_COMMENT 1) set(ACTIVE_COMMENT 1)
elseif (ACTIVE_COMMENT EQUAL 1) elseif(ACTIVE_COMMENT EQUAL 1)
string(APPEND COMMENT "\n${ADD_INDENT}${LINE}") string(APPEND COMMENT "\n${ADD_INDENT}${LINE}")
endif() endif()
# Check for enum match # Check for enum match
if ("${LINE}" MATCHES "^ *enum *${ENUM_PATTERN} *\{") if("${LINE}" MATCHES "^ *enum *${ENUM_PATTERN} *\{")
# REGEX REPLACE does a REGEX MATCHALL and fails if an empty string is matched # REGEX REPLACE does a REGEX MATCHALL and fails if an empty string is matched
string(REGEX MATCH "[^ ]*" RESULT "${LINE}") string(REGEX MATCH "[^ ]*" RESULT "${LINE}")
string(REPLACE "${RESULT}" "" RM_INDENT "${LINE}") string(REPLACE "${RESULT}" "" RM_INDENT "${LINE}")
set(ACTIVE 1) set(ACTIVE 1)
if (ACTIVE_COMMENT GREATER 0) if(ACTIVE_COMMENT GREATER 0)
string(APPEND ${PLACE_HOLDER} "\n${COMMENT}") string(APPEND ${PLACE_HOLDER} "\n${COMMENT}")
endif (ACTIVE_COMMENT GREATER 0) endif()
unset(ACTIVE_COMMENT) unset(ACTIVE_COMMENT)
unset(COMMENT) unset(COMMENT)
endif ("${LINE}" MATCHES "^ *enum *${ENUM_PATTERN} *\{") endif()
# Forget doxygen comment, if no enum follows # Forget doxygen comment, if no enum follows
if (ACTIVE_COMMENT EQUAL 2 AND NOT "${LINE}" STREQUAL "") if(ACTIVE_COMMENT EQUAL 2 AND NOT "${LINE}" STREQUAL "")
unset(ACTIVE_COMMENT) unset(ACTIVE_COMMENT)
unset(COMMENT) unset(COMMENT)
endif (ACTIVE_COMMENT EQUAL 2 AND NOT "${LINE}" STREQUAL "") endif()
if (ACTIVE_COMMENT EQUAL 1 AND "${LINE}" MATCHES "\\*/") if(ACTIVE_COMMENT EQUAL 1 AND "${LINE}" MATCHES "\\*/")
set(ACTIVE_COMMENT 2) set(ACTIVE_COMMENT 2)
endif (ACTIVE_COMMENT EQUAL 1 AND "${LINE}" MATCHES "\\*/") endif()
if (ACTIVE) if(ACTIVE)
if ("${LINE}" MATCHES "^ *[A-Za-z0-9_]* *[,=]") if("${LINE}" MATCHES "^ *[A-Za-z0-9_]* *[,=]")
# Transform enum values # Transform enum values
# REGEX REPLACE does a REGEX MATCHALL and replaces too much # REGEX REPLACE does a REGEX MATCHALL and replaces too much
string(REGEX MATCH " *=[^,]*" RESULT "${LINE}") string(REGEX MATCH " *=[^,]*" RESULT "${LINE}")
@@ -92,28 +92,28 @@ foreach(ENUM IN LISTS ENUM_LINES)
unset(SPACES) unset(SPACES)
foreach(i RANGE ${LEN}) foreach(i RANGE ${LEN})
string(APPEND SPACES " ") string(APPEND SPACES " ")
endforeach(i) endforeach()
if (CMAKE_MATCH_3) if(CMAKE_MATCH_3)
string(APPEND ${PLACE_HOLDER} "\n${ADD_INDENT}${CMAKE_MATCH_1}${CMAKE_MATCH_2}${SPACES} = ::${CMAKE_MATCH_2},${SPACES}${CMAKE_MATCH_3}") string(APPEND ${PLACE_HOLDER} "\n${ADD_INDENT}${CMAKE_MATCH_1}${CMAKE_MATCH_2}${SPACES} = ::${CMAKE_MATCH_2},${SPACES}${CMAKE_MATCH_3}")
else (CMAKE_MATCH_3) else()
string(APPEND ${PLACE_HOLDER} "\n${ADD_INDENT}${CMAKE_MATCH_1}${CMAKE_MATCH_2}${SPACES} = ::${CMAKE_MATCH_2},") string(APPEND ${PLACE_HOLDER} "\n${ADD_INDENT}${CMAKE_MATCH_1}${CMAKE_MATCH_2}${SPACES} = ::${CMAKE_MATCH_2},")
endif (CMAKE_MATCH_3) endif()
elseif ("${LINE}" STREQUAL "") elseif("${LINE}" STREQUAL "")
string(APPEND ${PLACE_HOLDER} "\n") string(APPEND ${PLACE_HOLDER} "\n")
else () else()
string(APPEND ${PLACE_HOLDER} "\n${ADD_INDENT}${LINE}") string(APPEND ${PLACE_HOLDER} "\n${ADD_INDENT}${LINE}")
endif () endif()
endif (ACTIVE) endif()
if ("${LINE}" MATCHES "^ *\};") if("${LINE}" MATCHES "^ *\};")
if (ACTIVE) if(ACTIVE)
string(APPEND ${PLACE_HOLDER} "\n") string(APPEND ${PLACE_HOLDER} "\n")
endif (ACTIVE) endif()
unset(ACTIVE) unset(ACTIVE)
endif ("${LINE}" MATCHES "^ *\};") endif()
endforeach(LINE) endforeach()
endforeach(FILE) endforeach()
endforeach(ENUM) endforeach()
configure_file(${GENERATE_SOURCE_FILE} ${GENERATE_BINARY_FILE}) configure_file(${GENERATE_SOURCE_FILE} ${GENERATE_BINARY_FILE})

View File

@@ -4,26 +4,26 @@ cmake_minimum_required(VERSION 3.5)
# Runs a single regressoion test # Runs a single regressoion test
# #
if (NOT REGRESSION_TEST) if(NOT REGRESSION_TEST)
message(FATAL_ERROR "Script needs REGRESSION_TEST defined (tip: use -DREGRESSION_TEST=..)") message(FATAL_ERROR "Script needs REGRESSION_TEST defined (tip: use -DREGRESSION_TEST=..)")
endif (NOT REGRESSION_TEST) endif()
if (NOT OPENTTD_EXECUTABLE) if(NOT OPENTTD_EXECUTABLE)
message(FATAL_ERROR "Script needs OPENTTD_EXECUTABLE defined (tip: use -DOPENTTD_EXECUTABLE=..)") message(FATAL_ERROR "Script needs OPENTTD_EXECUTABLE defined (tip: use -DOPENTTD_EXECUTABLE=..)")
endif (NOT OPENTTD_EXECUTABLE) endif()
if (NOT EXISTS ai/${REGRESSION_TEST}/test.sav) if(NOT EXISTS ai/${REGRESSION_TEST}/test.sav)
message(FATAL_ERROR "Regression test ${REGRESSION_TEST} does not exist (tip: check regression folder for the correct spelling)") message(FATAL_ERROR "Regression test ${REGRESSION_TEST} does not exist (tip: check regression folder for the correct spelling)")
endif () endif()
# If editbin is given, copy the executable to a new folder, and change the # If editbin is given, copy the executable to a new folder, and change the
# subsystem to console. The copy is needed as multiple regressions can run # subsystem to console. The copy is needed as multiple regressions can run
# at the same time. # at the same time.
if (EDITBIN_EXECUTABLE) if(EDITBIN_EXECUTABLE)
execute_process(COMMAND ${CMAKE_COMMAND} -E copy ${OPENTTD_EXECUTABLE} regression/${REGRESSION_TEST}.exe) execute_process(COMMAND ${CMAKE_COMMAND} -E copy ${OPENTTD_EXECUTABLE} regression/${REGRESSION_TEST}.exe)
set(OPENTTD_EXECUTABLE "regression/${REGRESSION_TEST}.exe") set(OPENTTD_EXECUTABLE "regression/${REGRESSION_TEST}.exe")
execute_process(COMMAND ${EDITBIN_EXECUTABLE} /nologo /subsystem:console ${OPENTTD_EXECUTABLE}) execute_process(COMMAND ${EDITBIN_EXECUTABLE} /nologo /subsystem:console ${OPENTTD_EXECUTABLE})
endif (EDITBIN_EXECUTABLE) endif()
# Run the regression test # Run the regression test
execute_process(COMMAND ${OPENTTD_EXECUTABLE} execute_process(COMMAND ${OPENTTD_EXECUTABLE}
@@ -40,13 +40,13 @@ execute_process(COMMAND ${OPENTTD_EXECUTABLE}
OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_STRIP_TRAILING_WHITESPACE
) )
if (REGRESSION_OUTPUT) if(REGRESSION_OUTPUT)
message(FATAL_ERROR "Unexpected output: ${REGRESSION_OUTPUT}") message(FATAL_ERROR "Unexpected output: ${REGRESSION_OUTPUT}")
endif (REGRESSION_OUTPUT) endif()
if (NOT REGRESSION_RESULT) if(NOT REGRESSION_RESULT)
message(FATAL_ERROR "Regression did not output anything; did the compilation fail?") message(FATAL_ERROR "Regression did not output anything; did the compilation fail?")
endif (NOT REGRESSION_RESULT) endif()
# For some reason pointer can be printed as '0x(nil)', '0x0000000000000000', or '0x0x0' # For some reason pointer can be printed as '0x(nil)', '0x0000000000000000', or '0x0x0'
string(REPLACE "0x(nil)" "0x00000000" REGRESSION_RESULT "${REGRESSION_RESULT}") string(REPLACE "0x(nil)" "0x00000000" REGRESSION_RESULT "${REGRESSION_RESULT}")
@@ -76,21 +76,21 @@ list(LENGTH REGRESSION_EXPECTED REGRESSION_EXPECTED_LENGTH)
foreach(RESULT IN LISTS REGRESSION_RESULT) foreach(RESULT IN LISTS REGRESSION_RESULT)
list(GET REGRESSION_EXPECTED ${ARGC} EXPECTED) list(GET REGRESSION_EXPECTED ${ARGC} EXPECTED)
if (NOT RESULT STREQUAL EXPECTED) if(NOT RESULT STREQUAL EXPECTED)
message("${ARGC}: - ${EXPECTED}") message("${ARGC}: - ${EXPECTED}")
message("${ARGC}: + ${RESULT}'") message("${ARGC}: + ${RESULT}'")
set(ERROR YES) set(ERROR YES)
endif (NOT RESULT STREQUAL EXPECTED) endif()
math(EXPR ARGC "${ARGC} + 1") math(EXPR ARGC "${ARGC} + 1")
endforeach(RESULT) endforeach()
if (NOT REGRESSION_EXPECTED_LENGTH EQUAL ARGC) if(NOT REGRESSION_EXPECTED_LENGTH EQUAL ARGC)
math(EXPR MISSING "${REGRESSION_EXPECTED_LENGTH} - ${ARGC}") math(EXPR MISSING "${REGRESSION_EXPECTED_LENGTH} - ${ARGC}")
message("(${MISSING} more lines were expected than found)") message("(${MISSING} more lines were expected than found)")
set(ERROR YES) set(ERROR YES)
endif (NOT REGRESSION_EXPECTED_LENGTH EQUAL ARGC) endif()
if (ERROR) if(ERROR)
message(FATAL_ERROR "Regression failed") message(FATAL_ERROR "Regression failed")
endif (ERROR) endif()

View File

@@ -1,29 +1,29 @@
cmake_minimum_required(VERSION 3.5) cmake_minimum_required(VERSION 3.5)
if (NOT SCRIPT_API_SOURCE_FILE) if(NOT SCRIPT_API_SOURCE_FILE)
message(FATAL_ERROR "Script needs SCRIPT_API_SOURCE_FILE defined") message(FATAL_ERROR "Script needs SCRIPT_API_SOURCE_FILE defined")
endif (NOT SCRIPT_API_SOURCE_FILE) endif()
if (NOT SCRIPT_API_BINARY_FILE) if(NOT SCRIPT_API_BINARY_FILE)
message(FATAL_ERROR "Script needs SCRIPT_API_BINARY_FILE defined") message(FATAL_ERROR "Script needs SCRIPT_API_BINARY_FILE defined")
endif (NOT SCRIPT_API_BINARY_FILE) endif()
if (NOT SCRIPT_API_FILE) if(NOT SCRIPT_API_FILE)
message(FATAL_ERROR "Script needs SCRIPT_API_FILE defined") message(FATAL_ERROR "Script needs SCRIPT_API_FILE defined")
endif (NOT SCRIPT_API_FILE) endif()
if (NOT APIUC) if(NOT APIUC)
message(FATAL_ERROR "Script needs APIUC defined") message(FATAL_ERROR "Script needs APIUC defined")
endif (NOT APIUC) endif()
if (NOT APILC) if(NOT APILC)
message(FATAL_ERROR "Script needs APILC defined") message(FATAL_ERROR "Script needs APILC defined")
endif (NOT APILC) endif()
macro(dump_fileheader) macro(dump_fileheader)
get_filename_component(SCRIPT_API_FILE_NAME "${SCRIPT_API_FILE}" NAME) get_filename_component(SCRIPT_API_FILE_NAME "${SCRIPT_API_FILE}" NAME)
string(APPEND SQUIRREL_EXPORT "\n#include \"../${SCRIPT_API_FILE_NAME}\"") string(APPEND SQUIRREL_EXPORT "\n#include \"../${SCRIPT_API_FILE_NAME}\"")
if (NOT "${APIUC}" STREQUAL "Template") if(NOT "${APIUC}" STREQUAL "Template")
string(REPLACE "script_" "template_" SCRIPT_API_FILE_NAME "${SCRIPT_API_FILE_NAME}") string(REPLACE "script_" "template_" SCRIPT_API_FILE_NAME "${SCRIPT_API_FILE_NAME}")
string(APPEND SQUIRREL_EXPORT "\n#include \"../template/${SCRIPT_API_FILE_NAME}.sq\"") string(APPEND SQUIRREL_EXPORT "\n#include \"../template/${SCRIPT_API_FILE_NAME}.sq\"")
endif (NOT "${APIUC}" STREQUAL "Template") endif()
endmacro(dump_fileheader) endmacro()
macro(dump_class_templates NAME) macro(dump_class_templates NAME)
string(REGEX REPLACE "^Script" "" REALNAME ${NAME}) string(REGEX REPLACE "^Script" "" REALNAME ${NAME})
@@ -32,9 +32,9 @@ macro(dump_class_templates NAME)
string(APPEND SQUIRREL_EXPORT "\n template <> inline ${NAME} &GetParam(ForceType<${NAME} &>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(${NAME} *)instance; }") string(APPEND SQUIRREL_EXPORT "\n template <> inline ${NAME} &GetParam(ForceType<${NAME} &>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(${NAME} *)instance; }")
string(APPEND SQUIRREL_EXPORT "\n template <> inline const ${NAME} *GetParam(ForceType<const ${NAME} *>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (${NAME} *)instance; }") string(APPEND SQUIRREL_EXPORT "\n template <> inline const ${NAME} *GetParam(ForceType<const ${NAME} *>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (${NAME} *)instance; }")
string(APPEND SQUIRREL_EXPORT "\n template <> inline const ${NAME} &GetParam(ForceType<const ${NAME} &>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(${NAME} *)instance; }") string(APPEND SQUIRREL_EXPORT "\n template <> inline const ${NAME} &GetParam(ForceType<const ${NAME} &>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(${NAME} *)instance; }")
if ("${NAME}" STREQUAL "ScriptEvent") if("${NAME}" STREQUAL "ScriptEvent")
string(APPEND SQUIRREL_EXPORT "\n template <> inline int Return<${NAME} *>(HSQUIRRELVM vm, ${NAME} *res) { if (res == nullptr) { sq_pushnull(vm); return 1; } Squirrel::CreateClassInstanceVM(vm, \"${REALNAME}\", res, nullptr, DefSQDestructorCallback<${NAME}>, true); return 1; }") string(APPEND SQUIRREL_EXPORT "\n template <> inline int Return<${NAME} *>(HSQUIRRELVM vm, ${NAME} *res) { if (res == nullptr) { sq_pushnull(vm); return 1; } Squirrel::CreateClassInstanceVM(vm, \"${REALNAME}\", res, nullptr, DefSQDestructorCallback<${NAME}>, true); return 1; }")
elseif ("${NAME}" STREQUAL "ScriptText") elseif("${NAME}" STREQUAL "ScriptText")
string(APPEND SQUIRREL_EXPORT "\n") string(APPEND SQUIRREL_EXPORT "\n")
string(APPEND SQUIRREL_EXPORT "\n template <> inline Text *GetParam(ForceType<Text *>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) {") string(APPEND SQUIRREL_EXPORT "\n template <> inline Text *GetParam(ForceType<Text *>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) {")
string(APPEND SQUIRREL_EXPORT "\n if (sq_gettype(vm, index) == OT_INSTANCE) {") string(APPEND SQUIRREL_EXPORT "\n if (sq_gettype(vm, index) == OT_INSTANCE) {")
@@ -45,10 +45,10 @@ macro(dump_class_templates NAME)
string(APPEND SQUIRREL_EXPORT "\n }") string(APPEND SQUIRREL_EXPORT "\n }")
string(APPEND SQUIRREL_EXPORT "\n return nullptr;") string(APPEND SQUIRREL_EXPORT "\n return nullptr;")
string(APPEND SQUIRREL_EXPORT "\n }") string(APPEND SQUIRREL_EXPORT "\n }")
else () else()
string(APPEND SQUIRREL_EXPORT "\n template <> inline int Return<${NAME} *>(HSQUIRRELVM vm, ${NAME} *res) { if (res == nullptr) { sq_pushnull(vm); return 1; } res->AddRef(); Squirrel::CreateClassInstanceVM(vm, \"${REALNAME}\", res, nullptr, DefSQDestructorCallback<${NAME}>, true); return 1; }") string(APPEND SQUIRREL_EXPORT "\n template <> inline int Return<${NAME} *>(HSQUIRRELVM vm, ${NAME} *res) { if (res == nullptr) { sq_pushnull(vm); return 1; } res->AddRef(); Squirrel::CreateClassInstanceVM(vm, \"${REALNAME}\", res, nullptr, DefSQDestructorCallback<${NAME}>, true); return 1; }")
endif () endif()
endmacro(dump_class_templates) endmacro()
macro(reset_reader) macro(reset_reader)
unset(ENUMS) unset(ENUMS)
@@ -63,7 +63,7 @@ macro(reset_reader)
unset(START_SQUIRREL_DEFINE_ON_NEXT_LINE) unset(START_SQUIRREL_DEFINE_ON_NEXT_LINE)
set(CLS_LEVEL 0) set(CLS_LEVEL 0)
unset(CLS_IN_API) unset(CLS_IN_API)
endmacro(reset_reader) endmacro()
reset_reader() reset_reader()
@@ -71,80 +71,80 @@ file(STRINGS "${SCRIPT_API_FILE}" SOURCE_LINES)
foreach(LINE IN LISTS SOURCE_LINES) foreach(LINE IN LISTS SOURCE_LINES)
# Ignore special doxygen blocks # Ignore special doxygen blocks
if ("${LINE}" MATCHES "^#ifndef DOXYGEN_API") if("${LINE}" MATCHES "^#ifndef DOXYGEN_API")
set(DOXYGEN_SKIP "next") set(DOXYGEN_SKIP "next")
continue() continue()
endif () endif()
if ("${LINE}" MATCHES "^#ifdef DOXYGEN_API") if("${LINE}" MATCHES "^#ifdef DOXYGEN_API")
set(DOXYGEN_SKIP "true") set(DOXYGEN_SKIP "true")
continue() continue()
endif () endif()
if ("${LINE}" MATCHES "^#endif /\\* DOXYGEN_API \\*/") if("${LINE}" MATCHES "^#endif /\\* DOXYGEN_API \\*/")
unset(DOXYGEN_SKIP) unset(DOXYGEN_SKIP)
continue() continue()
endif () endif()
if ("${LINE}" MATCHES "^#else") if("${LINE}" MATCHES "^#else")
if ("${DOXYGEN_SKIP}" STREQUAL "next") if("${DOXYGEN_SKIP}" STREQUAL "next")
set(DOXYGEN_SKIP "true") set(DOXYGEN_SKIP "true")
else() else()
unset(DOXYGEN_SKIP) unset(DOXYGEN_SKIP)
endif() endif()
continue() continue()
endif () endif()
if ("${DOXYGEN_SKIP}" STREQUAL "true") if("${DOXYGEN_SKIP}" STREQUAL "true")
continue() continue()
endif() endif()
if ("${LINE}" MATCHES "^([ ]*)\\* @api (.*)$") if("${LINE}" MATCHES "^([ ]*)\\* @api (.*)$")
set(LINE ${CMAKE_MATCH_2}) set(LINE ${CMAKE_MATCH_2})
# By default, classes are not selected # By default, classes are not selected
if (NOT CLS_LEVEL) if(NOT CLS_LEVEL)
set(API_SELECTED FALSE) set(API_SELECTED FALSE)
endif (NOT CLS_LEVEL) endif()
if ("${APIUC}" STREQUAL "Template") if("${APIUC}" STREQUAL "Template")
set(API_SELECTED TRUE) set(API_SELECTED TRUE)
if ("${LINE}" STREQUAL "none" OR "${LINE}" STREQUAL "-all") if("${LINE}" STREQUAL "none" OR "${LINE}" STREQUAL "-all")
set(API_SELECTED FALSE) set(API_SELECTED FALSE)
endif ("${LINE}" STREQUAL "none" OR "${LINE}" STREQUAL "-all") endif()
continue() continue()
endif("${APIUC}" STREQUAL "Template") endif()
if ("${LINE}" STREQUAL "none" OR "${LINE}" STREQUAL "-all") if("${LINE}" STREQUAL "none" OR "${LINE}" STREQUAL "-all")
set(API_SELECTED FALSE) set(API_SELECTED FALSE)
elseif ("${LINE}" MATCHES "-${APILC}") elseif("${LINE}" MATCHES "-${APILC}")
set(API_SELECTED FALSE) set(API_SELECTED FALSE)
elseif ("${LINE}" MATCHES "${APILC}") elseif("${LINE}" MATCHES "${APILC}")
set(API_SELECTED TRUE) set(API_SELECTED TRUE)
endif () endif()
continue() continue()
endif ("${LINE}" MATCHES "^([ ]*)\\* @api (.*)$") endif()
# Remove the old squirrel stuff # Remove the old squirrel stuff
if ("${LINE}" MATCHES "#ifdef DEFINE_SQUIRREL_CLASS") if("${LINE}" MATCHES "#ifdef DEFINE_SQUIRREL_CLASS")
set(SQUIRREL_STUFF TRUE) set(SQUIRREL_STUFF TRUE)
continue() continue()
endif ("${LINE}" MATCHES "#ifdef DEFINE_SQUIRREL_CLASS") endif()
if ("${LINE}" MATCHES "^#endif /\\* DEFINE_SQUIRREL_CLASS \\*/") if("${LINE}" MATCHES "^#endif /\\* DEFINE_SQUIRREL_CLASS \\*/")
unset(SQUIRREL_STUFF) unset(SQUIRREL_STUFF)
continue() continue()
endif ("${LINE}" MATCHES "^#endif /\\* DEFINE_SQUIRREL_CLASS \\*/") endif()
if (SQUIRREL_STUFF) if(SQUIRREL_STUFF)
continue() continue()
endif (SQUIRREL_STUFF) endif()
# Ignore forward declarations of classes # Ignore forward declarations of classes
if ("${LINE}" MATCHES "^( *)class(.*);") if("${LINE}" MATCHES "^( *)class(.*);")
continue() continue()
endif ("${LINE}" MATCHES "^( *)class(.*);") endif()
# We only want to have public functions exported for now # We only want to have public functions exported for now
if ("${LINE}" MATCHES "^( *)class (.*) (: public|: protected|: private|:) ([^ ]*)") if("${LINE}" MATCHES "^( *)class (.*) (: public|: protected|: private|:) ([^ ]*)")
if (NOT CLS_LEVEL) if(NOT CLS_LEVEL)
if (NOT DEFINED API_SELECTED) if(NOT DEFINED API_SELECTED)
message(WARNING "Class '${CMAKE_MATCH_2}' has no @api. It won't be published to any API.") message(WARNING "Class '${CMAKE_MATCH_2}' has no @api. It won't be published to any API.")
set(API_SELECTED FALSE) set(API_SELECTED FALSE)
endif (NOT DEFINED API_SELECTED) endif()
unset(IS_PUBLIC) unset(IS_PUBLIC)
unset(CLS_PARAM_0) unset(CLS_PARAM_0)
set(CLS_PARAM_1 1) set(CLS_PARAM_1 1)
@@ -153,132 +153,132 @@ foreach(LINE IN LISTS SOURCE_LINES)
unset(API_SELECTED) unset(API_SELECTED)
set(CLS "${CMAKE_MATCH_2}") set(CLS "${CMAKE_MATCH_2}")
set(SUPER_CLS "${CMAKE_MATCH_4}") set(SUPER_CLS "${CMAKE_MATCH_4}")
elseif (CLS_LEVEL EQUAL 1) elseif(CLS_LEVEL EQUAL 1)
if (NOT DEFINED API_SELECTED) if(NOT DEFINED API_SELECTED)
set(API_SELECTED ${CLS_IN_API}) set(API_SELECTED ${CLS_IN_API})
endif (NOT API_SELECTED) endif()
if (API_SELECTED) if(API_SELECTED)
list(APPEND STRUCTS "${CLS}::${CMAKE_MATCH_2}") list(APPEND STRUCTS "${CLS}::${CMAKE_MATCH_2}")
endif (API_SELECTED) endif()
unset(API_SELECTED) unset(API_SELECTED)
endif () endif()
math(EXPR CLS_LEVEL "${CLS_LEVEL} + 1") math(EXPR CLS_LEVEL "${CLS_LEVEL} + 1")
continue() continue()
endif ("${LINE}" MATCHES "^( *)class (.*) (: public|: protected|: private|:) ([^ ]*)") endif()
if ("${LINE}" MATCHES "^( *)public") if("${LINE}" MATCHES "^( *)public")
if (CLS_LEVEL EQUAL 1) if(CLS_LEVEL EQUAL 1)
set(IS_PUBLIC TRUE) set(IS_PUBLIC TRUE)
endif (CLS_LEVEL EQUAL 1) endif()
continue() continue()
endif ("${LINE}" MATCHES "^( *)public") endif()
if ("${LINE}" MATCHES "^( *)protected") if("${LINE}" MATCHES "^( *)protected")
if (CLS_LEVEL EQUAL 1) if(CLS_LEVEL EQUAL 1)
unset(IS_PUBLIC) unset(IS_PUBLIC)
endif (CLS_LEVEL EQUAL 1) endif()
continue() continue()
endif ("${LINE}" MATCHES "^( *)protected") endif()
if ("${LINE}" MATCHES "^( *)private") if("${LINE}" MATCHES "^( *)private")
if (CLS_LEVEL EQUAL 1) if(CLS_LEVEL EQUAL 1)
unset(IS_PUBLIC) unset(IS_PUBLIC)
endif (CLS_LEVEL EQUAL 1) endif()
continue() continue()
endif ("${LINE}" MATCHES "^( *)private") endif()
# Ignore the comments # Ignore the comments
if ("${LINE}" MATCHES "^#") if("${LINE}" MATCHES "^#")
continue() continue()
endif ("${LINE}" MATCHES "^#") endif()
if ("${LINE}" MATCHES "/\\*.*\\*/") if("${LINE}" MATCHES "/\\*.*\\*/")
unset(COMMENT) unset(COMMENT)
continue() continue()
endif ("${LINE}" MATCHES "/\\*.*\\*/") endif()
if ("${LINE}" MATCHES "/\\*") if("${LINE}" MATCHES "/\\*")
set(COMMENT TRUE) set(COMMENT TRUE)
continue() continue()
endif ("${LINE}" MATCHES "/\\*") endif()
if ("${LINE}" MATCHES "\\*/") if("${LINE}" MATCHES "\\*/")
unset(COMMENT) unset(COMMENT)
continue() continue()
endif ("${LINE}" MATCHES "\\*/") endif()
if (COMMENT) if(COMMENT)
continue() continue()
endif (COMMENT) endif()
# We need to make specialized conversions for structs # We need to make specialized conversions for structs
if ("${LINE}" MATCHES "^( *)struct ([^ ]*)") if("${LINE}" MATCHES "^( *)struct ([^ ]*)")
math(EXPR CLS_LEVEL "${CLS_LEVEL} + 1") math(EXPR CLS_LEVEL "${CLS_LEVEL} + 1")
# Check if we want to publish this struct # Check if we want to publish this struct
if (NOT DEFINED API_SELECTED) if(NOT DEFINED API_SELECTED)
set(API_SELECTED ${CLS_IN_API}) set(API_SELECTED ${CLS_IN_API})
endif (NOT DEFINED API_SELECTED) endif()
if (NOT API_SELECTED) if(NOT API_SELECTED)
unset(API_SELECTED) unset(API_SELECTED)
continue() continue()
endif (NOT API_SELECTED) endif()
unset(API_SELECTED) unset(API_SELECTED)
if (NOT IS_PUBLIC OR NOT CLS_LEVEL EQUAL 1) if(NOT IS_PUBLIC OR NOT CLS_LEVEL EQUAL 1)
continue() continue()
endif (NOT IS_PUBLIC OR NOT CLS_LEVEL EQUAL 1) endif()
list(APPEND STRUCTS "${CLS}::${CMAKE_MATCH_2}") list(APPEND STRUCTS "${CLS}::${CMAKE_MATCH_2}")
continue() continue()
endif ("${LINE}" MATCHES "^( *)struct ([^ ]*)") endif()
# We need to make specialized conversions for enums # We need to make specialized conversions for enums
if ("${LINE}" MATCHES "^( *)enum ([^ ]*)") if("${LINE}" MATCHES "^( *)enum ([^ ]*)")
math(EXPR CLS_LEVEL "${CLS_LEVEL} + 1") math(EXPR CLS_LEVEL "${CLS_LEVEL} + 1")
# Check if we want to publish this enum # Check if we want to publish this enum
if (NOT DEFINED API_SELECTED) if(NOT DEFINED API_SELECTED)
set(API_SELECTED ${CLS_IN_API}) set(API_SELECTED ${CLS_IN_API})
endif (NOT DEFINED API_SELECTED) endif()
if (NOT API_SELECTED) if(NOT API_SELECTED)
unset(API_SELECTED) unset(API_SELECTED)
continue() continue()
endif (NOT API_SELECTED) endif()
unset(API_SELECTED) unset(API_SELECTED)
if (NOT IS_PUBLIC) if(NOT IS_PUBLIC)
continue() continue()
endif (NOT IS_PUBLIC) endif()
set(IN_ENUM TRUE) set(IN_ENUM TRUE)
list(APPEND ENUMS "${CLS}::${CMAKE_MATCH_2}") list(APPEND ENUMS "${CLS}::${CMAKE_MATCH_2}")
continue() continue()
endif ("${LINE}" MATCHES "^( *)enum ([^ ]*)") endif()
# Maybe the end of the class, if so we can start with the Squirrel export pretty soon # Maybe the end of the class, if so we can start with the Squirrel export pretty soon
if ("${LINE}" MATCHES "};") if("${LINE}" MATCHES "};")
math(EXPR CLS_LEVEL "${CLS_LEVEL} - 1") math(EXPR CLS_LEVEL "${CLS_LEVEL} - 1")
if (CLS_LEVEL) if(CLS_LEVEL)
unset(IN_ENUM) unset(IN_ENUM)
continue() continue()
endif (CLS_LEVEL) endif()
if (CLS) if(CLS)
set(START_SQUIRREL_DEFINE_ON_NEXT_LINE TRUE) set(START_SQUIRREL_DEFINE_ON_NEXT_LINE TRUE)
endif (CLS) endif()
continue() continue()
endif ("${LINE}" MATCHES "};") endif()
# Empty/white lines. When we may do the Squirrel export, do that export. # Empty/white lines. When we may do the Squirrel export, do that export.
if ("${LINE}" MATCHES "^([ ]*)$") if("${LINE}" MATCHES "^([ ]*)$")
if (NOT START_SQUIRREL_DEFINE_ON_NEXT_LINE) if(NOT START_SQUIRREL_DEFINE_ON_NEXT_LINE)
continue() continue()
endif (NOT START_SQUIRREL_DEFINE_ON_NEXT_LINE) endif()
if (NOT CLS_IN_API) if(NOT CLS_IN_API)
reset_reader() reset_reader()
continue() continue()
endif (NOT CLS_IN_API) endif()
if (NOT HAS_FILEHEADER) if(NOT HAS_FILEHEADER)
dump_fileheader() dump_fileheader()
set(HAS_FILEHEADER TRUE) set(HAS_FILEHEADER TRUE)
endif (NOT HAS_FILEHEADER) endif()
unset(IS_PUBLIC) unset(IS_PUBLIC)
unset(NAMESPACE_OPENED) unset(NAMESPACE_OPENED)
@@ -288,38 +288,38 @@ foreach(LINE IN LISTS SOURCE_LINES)
string(APPEND SQUIRREL_EXPORT "\n") string(APPEND SQUIRREL_EXPORT "\n")
if ("${APIUC}" STREQUAL "Template") if("${APIUC}" STREQUAL "Template")
# First check whether we have enums to print # First check whether we have enums to print
if (DEFINED ENUMS) if(DEFINED ENUMS)
if (NOT NAMESPACE_OPENED) if(NOT NAMESPACE_OPENED)
string(APPEND SQUIRREL_EXPORT "\nnamespace SQConvert {") string(APPEND SQUIRREL_EXPORT "\nnamespace SQConvert {")
set(NAMESPACE_OPENED TRUE) set(NAMESPACE_OPENED TRUE)
endif (NOT NAMESPACE_OPENED) endif()
string(APPEND SQUIRREL_EXPORT "\n /* Allow enums to be used as Squirrel parameters */") string(APPEND SQUIRREL_EXPORT "\n /* Allow enums to be used as Squirrel parameters */")
foreach(ENUM IN LISTS ENUMS) foreach(ENUM IN LISTS ENUMS)
string(APPEND SQUIRREL_EXPORT "\n template <> inline ${ENUM} GetParam(ForceType<${ENUM}>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (${ENUM})tmp; }") string(APPEND SQUIRREL_EXPORT "\n template <> inline ${ENUM} GetParam(ForceType<${ENUM}>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (${ENUM})tmp; }")
string(APPEND SQUIRREL_EXPORT "\n template <> inline int Return<${ENUM}>(HSQUIRRELVM vm, ${ENUM} res) { sq_pushinteger(vm, (int32)res); return 1; }") string(APPEND SQUIRREL_EXPORT "\n template <> inline int Return<${ENUM}>(HSQUIRRELVM vm, ${ENUM} res) { sq_pushinteger(vm, (int32)res); return 1; }")
endforeach(ENUM) endforeach()
endif (DEFINED ENUMS) endif()
# Then check whether we have structs/classes to print # Then check whether we have structs/classes to print
if (DEFINED STRUCTS) if(DEFINED STRUCTS)
if (NOT NAMESPACE_OPENED) if(NOT NAMESPACE_OPENED)
string(APPEND SQUIRREL_EXPORT "\nnamespace SQConvert {") string(APPEND SQUIRREL_EXPORT "\nnamespace SQConvert {")
set(NAMESPACE_OPENED TRUE) set(NAMESPACE_OPENED TRUE)
endif (NOT NAMESPACE_OPENED) endif()
string(APPEND SQUIRREL_EXPORT "\n /* Allow inner classes/structs to be used as Squirrel parameters */") string(APPEND SQUIRREL_EXPORT "\n /* Allow inner classes/structs to be used as Squirrel parameters */")
foreach(STRUCT IN LISTS STRUCTS) foreach(STRUCT IN LISTS STRUCTS)
dump_class_templates(${STRUCT}) dump_class_templates(${STRUCT})
endforeach(STRUCT) endforeach()
endif (DEFINED STRUCTS) endif()
if (NOT NAMESPACE_OPENED) if(NOT NAMESPACE_OPENED)
string(APPEND SQUIRREL_EXPORT "\nnamespace SQConvert {") string(APPEND SQUIRREL_EXPORT "\nnamespace SQConvert {")
set(NAMESPACE_OPENED TRUE) set(NAMESPACE_OPENED TRUE)
else (NOT NAMESPACE_OPENED) else()
string(APPEND SQUIRREL_EXPORT "\n") string(APPEND SQUIRREL_EXPORT "\n")
endif (NOT NAMESPACE_OPENED) endif()
string(APPEND SQUIRREL_EXPORT "\n /* Allow ${CLS} to be used as Squirrel parameter */") string(APPEND SQUIRREL_EXPORT "\n /* Allow ${CLS} to be used as Squirrel parameter */")
dump_class_templates(${CLS}) dump_class_templates(${CLS})
@@ -327,7 +327,7 @@ foreach(LINE IN LISTS SOURCE_LINES)
reset_reader() reset_reader()
continue() continue()
endif ("${APIUC}" STREQUAL "Template") endif()
string(APPEND SQUIRREL_EXPORT "\n") string(APPEND SQUIRREL_EXPORT "\n")
string(APPEND SQUIRREL_EXPORT "\ntemplate <> const char *GetClassName<${CLS}, ST_${APIUC}>() { return \"${API_CLS}\"; }") string(APPEND SQUIRREL_EXPORT "\ntemplate <> const char *GetClassName<${CLS}, ST_${APIUC}>() { return \"${API_CLS}\"; }")
@@ -337,61 +337,61 @@ foreach(LINE IN LISTS SOURCE_LINES)
string(APPEND SQUIRREL_EXPORT "\nvoid SQ${API_CLS}_Register(Squirrel *engine)") string(APPEND SQUIRREL_EXPORT "\nvoid SQ${API_CLS}_Register(Squirrel *engine)")
string(APPEND SQUIRREL_EXPORT "\n{") string(APPEND SQUIRREL_EXPORT "\n{")
string(APPEND SQUIRREL_EXPORT "\n DefSQClass<${CLS}, ST_${APIUC}> SQ${API_CLS}(\"${API_CLS}\");") string(APPEND SQUIRREL_EXPORT "\n DefSQClass<${CLS}, ST_${APIUC}> SQ${API_CLS}(\"${API_CLS}\");")
if ("${SUPER_CLS}" STREQUAL "Text" OR "${SUPER_CLS}" STREQUAL "ScriptObject" OR "${SUPER_CLS}" STREQUAL "AIAbstractiveList::Valuator") if("${SUPER_CLS}" STREQUAL "Text" OR "${SUPER_CLS}" STREQUAL "ScriptObject" OR "${SUPER_CLS}" STREQUAL "AIAbstractiveList::Valuator")
string(APPEND SQUIRREL_EXPORT "\n SQ${API_CLS}.PreRegister(engine);") string(APPEND SQUIRREL_EXPORT "\n SQ${API_CLS}.PreRegister(engine);")
else ("${SUPER_CLS}" STREQUAL "Text" OR "${SUPER_CLS}" STREQUAL "ScriptObject" OR "${SUPER_CLS}" STREQUAL "AIAbstractiveList::Valuator") else()
string(APPEND SQUIRREL_EXPORT "\n SQ${API_CLS}.PreRegister(engine, \"${API_SUPER_CLS}\");") string(APPEND SQUIRREL_EXPORT "\n SQ${API_CLS}.PreRegister(engine, \"${API_SUPER_CLS}\");")
endif ("${SUPER_CLS}" STREQUAL "Text" OR "${SUPER_CLS}" STREQUAL "ScriptObject" OR "${SUPER_CLS}" STREQUAL "AIAbstractiveList::Valuator") endif()
if (NOT "${SUPER_CLS}" STREQUAL "ScriptEvent") if(NOT "${SUPER_CLS}" STREQUAL "ScriptEvent")
if ("${CLS_PARAM_2}" STREQUAL "v") if("${CLS_PARAM_2}" STREQUAL "v")
string(APPEND SQUIRREL_EXPORT "\n SQ${API_CLS}.AddSQAdvancedConstructor(engine);") string(APPEND SQUIRREL_EXPORT "\n SQ${API_CLS}.AddSQAdvancedConstructor(engine);")
else ("${CLS_PARAM_2}" STREQUAL "v") else()
string(APPEND SQUIRREL_EXPORT "\n SQ${API_CLS}.AddConstructor<void (${CLS}::*)(${CLS_PARAM_0}), ${CLS_PARAM_1}>(engine, \"${CLS_PARAM_2}\");") string(APPEND SQUIRREL_EXPORT "\n SQ${API_CLS}.AddConstructor<void (${CLS}::*)(${CLS_PARAM_0}), ${CLS_PARAM_1}>(engine, \"${CLS_PARAM_2}\");")
endif ("${CLS_PARAM_2}" STREQUAL "v") endif()
endif (NOT "${SUPER_CLS}" STREQUAL "ScriptEvent") endif()
string(APPEND SQUIRREL_EXPORT "\n") string(APPEND SQUIRREL_EXPORT "\n")
# Enum values # Enum values
set(MLEN 0) set(MLEN 0)
foreach(ENUM_VALUE IN LISTS ENUM_VALUES) foreach(ENUM_VALUE IN LISTS ENUM_VALUES)
string(LENGTH "${ENUM_VALUE}" LEN) string(LENGTH "${ENUM_VALUE}" LEN)
if (MLEN LESS LEN) if(MLEN LESS LEN)
set(MLEN ${LEN}) set(MLEN ${LEN})
endif (MLEN LESS LEN) endif()
endforeach(ENUM_VALUE) endforeach()
foreach(ENUM_VALUE IN LISTS ENUM_VALUES) foreach(ENUM_VALUE IN LISTS ENUM_VALUES)
string(LENGTH "${ENUM_VALUE}" LEN) string(LENGTH "${ENUM_VALUE}" LEN)
math(EXPR LEN "${MLEN} - ${LEN}") math(EXPR LEN "${MLEN} - ${LEN}")
unset(SPACES) unset(SPACES)
foreach(i RANGE ${LEN}) foreach(i RANGE ${LEN})
string(APPEND SPACES " ") string(APPEND SPACES " ")
endforeach(i) endforeach()
string(APPEND SQUIRREL_EXPORT "\n SQ${API_CLS}.DefSQConst(engine, ${CLS}::${ENUM_VALUE},${SPACES}\"${ENUM_VALUE}\");") string(APPEND SQUIRREL_EXPORT "\n SQ${API_CLS}.DefSQConst(engine, ${CLS}::${ENUM_VALUE},${SPACES}\"${ENUM_VALUE}\");")
endforeach(ENUM_VALUE) endforeach()
if (MLEN) if(MLEN)
string(APPEND SQUIRREL_EXPORT "\n") string(APPEND SQUIRREL_EXPORT "\n")
endif (MLEN) endif()
# Const values # Const values
set(MLEN 0) set(MLEN 0)
foreach(CONST_VALUE IN LISTS CONST_VALUES) foreach(CONST_VALUE IN LISTS CONST_VALUES)
string(LENGTH "${CONST_VALUE}" LEN) string(LENGTH "${CONST_VALUE}" LEN)
if (MLEN LESS LEN) if(MLEN LESS LEN)
set(MLEN ${LEN}) set(MLEN ${LEN})
endif (MLEN LESS LEN) endif()
endforeach(CONST_VALUE) endforeach()
foreach(CONST_VALUE IN LISTS CONST_VALUES) foreach(CONST_VALUE IN LISTS CONST_VALUES)
string(LENGTH "${CONST_VALUE}" LEN) string(LENGTH "${CONST_VALUE}" LEN)
math(EXPR LEN "${MLEN} - ${LEN}") math(EXPR LEN "${MLEN} - ${LEN}")
unset(SPACES) unset(SPACES)
foreach(i RANGE ${LEN}) foreach(i RANGE ${LEN})
string(APPEND SPACES " ") string(APPEND SPACES " ")
endforeach(i) endforeach()
string(APPEND SQUIRREL_EXPORT "\n SQ${API_CLS}.DefSQConst(engine, ${CLS}::${CONST_VALUE},${SPACES}\"${CONST_VALUE}\");") string(APPEND SQUIRREL_EXPORT "\n SQ${API_CLS}.DefSQConst(engine, ${CLS}::${CONST_VALUE},${SPACES}\"${CONST_VALUE}\");")
endforeach(CONST_VALUE) endforeach()
if (MLEN) if(MLEN)
string(APPEND SQUIRREL_EXPORT "\n") string(APPEND SQUIRREL_EXPORT "\n")
endif (MLEN) endif()
# Mapping of OTTD strings to errors # Mapping of OTTD strings to errors
set(MLEN 0) set(MLEN 0)
@@ -399,10 +399,10 @@ foreach(LINE IN LISTS SOURCE_LINES)
string(REPLACE ":" ";" ENUM_STRING_TO_ERROR "${ENUM_STRING_TO_ERROR}") string(REPLACE ":" ";" ENUM_STRING_TO_ERROR "${ENUM_STRING_TO_ERROR}")
list(GET ENUM_STRING_TO_ERROR 0 ENUM_STRING) list(GET ENUM_STRING_TO_ERROR 0 ENUM_STRING)
string(LENGTH "${ENUM_STRING}" LEN) string(LENGTH "${ENUM_STRING}" LEN)
if (MLEN LESS LEN) if(MLEN LESS LEN)
set(MLEN ${LEN}) set(MLEN ${LEN})
endif (MLEN LESS LEN) endif()
endforeach(ENUM_STRING_TO_ERROR) endforeach()
foreach(ENUM_STRING_TO_ERROR IN LISTS ENUM_STRING_TO_ERRORS) foreach(ENUM_STRING_TO_ERROR IN LISTS ENUM_STRING_TO_ERRORS)
string(REPLACE ":" ";" ENUM_STRING_TO_ERROR "${ENUM_STRING_TO_ERROR}") string(REPLACE ":" ";" ENUM_STRING_TO_ERROR "${ENUM_STRING_TO_ERROR}")
list(GET ENUM_STRING_TO_ERROR 0 ENUM_STRING) list(GET ENUM_STRING_TO_ERROR 0 ENUM_STRING)
@@ -412,33 +412,33 @@ foreach(LINE IN LISTS SOURCE_LINES)
unset(SPACES) unset(SPACES)
foreach(i RANGE ${LEN}) foreach(i RANGE ${LEN})
string(APPEND SPACES " ") string(APPEND SPACES " ")
endforeach(i) endforeach()
string(APPEND SQUIRREL_EXPORT "\n ScriptError::RegisterErrorMap(${ENUM_STRING},${SPACES}${CLS}::${ENUM_ERROR});") string(APPEND SQUIRREL_EXPORT "\n ScriptError::RegisterErrorMap(${ENUM_STRING},${SPACES}${CLS}::${ENUM_ERROR});")
endforeach(ENUM_STRING_TO_ERROR) endforeach()
if (MLEN) if(MLEN)
string(APPEND SQUIRREL_EXPORT "\n") string(APPEND SQUIRREL_EXPORT "\n")
endif (MLEN) endif()
# Mapping of errors to human 'readable' strings. # Mapping of errors to human 'readable' strings.
set(MLEN 0) set(MLEN 0)
foreach(ENUM_ERROR_TO_STRING IN LISTS ENUM_ERROR_TO_STRINGS) foreach(ENUM_ERROR_TO_STRING IN LISTS ENUM_ERROR_TO_STRINGS)
string(LENGTH "${ENUM_ERROR_TO_STRING}" LEN) string(LENGTH "${ENUM_ERROR_TO_STRING}" LEN)
if (MLEN LESS LEN) if(MLEN LESS LEN)
set(MLEN ${LEN}) set(MLEN ${LEN})
endif (MLEN LESS LEN) endif()
endforeach(ENUM_ERROR_TO_STRING) endforeach()
foreach(ENUM_ERROR_TO_STRING IN LISTS ENUM_ERROR_TO_STRINGS) foreach(ENUM_ERROR_TO_STRING IN LISTS ENUM_ERROR_TO_STRINGS)
string(LENGTH "${ENUM_ERROR_TO_STRING}" LEN) string(LENGTH "${ENUM_ERROR_TO_STRING}" LEN)
math(EXPR LEN "${MLEN} - ${LEN}") math(EXPR LEN "${MLEN} - ${LEN}")
unset(SPACES) unset(SPACES)
foreach(i RANGE ${LEN}) foreach(i RANGE ${LEN})
string(APPEND SPACES " ") string(APPEND SPACES " ")
endforeach(i) endforeach()
string(APPEND SQUIRREL_EXPORT "\n ScriptError::RegisterErrorMapString(${CLS}::${ENUM_ERROR_TO_STRING},${SPACES}\"${ENUM_ERROR_TO_STRING}\");") string(APPEND SQUIRREL_EXPORT "\n ScriptError::RegisterErrorMapString(${CLS}::${ENUM_ERROR_TO_STRING},${SPACES}\"${ENUM_ERROR_TO_STRING}\");")
endforeach(ENUM_ERROR_TO_STRING) endforeach()
if (MLEN) if(MLEN)
string(APPEND SQUIRREL_EXPORT "\n") string(APPEND SQUIRREL_EXPORT "\n")
endif (MLEN) endif()
# Static methods # Static methods
set(MLEN 0) set(MLEN 0)
@@ -446,10 +446,10 @@ foreach(LINE IN LISTS SOURCE_LINES)
string(REPLACE ":" ";" STATIC_METHOD "${STATIC_METHOD}") string(REPLACE ":" ";" STATIC_METHOD "${STATIC_METHOD}")
list(GET STATIC_METHOD 0 FUNCNAME) list(GET STATIC_METHOD 0 FUNCNAME)
string(LENGTH "${FUNCNAME}" LEN) string(LENGTH "${FUNCNAME}" LEN)
if (MLEN LESS LEN) if(MLEN LESS LEN)
set(MLEN ${LEN}) set(MLEN ${LEN})
endif (MLEN LESS LEN) endif()
endforeach(STATIC_METHOD) endforeach()
foreach(STATIC_METHOD IN LISTS STATIC_METHODS) foreach(STATIC_METHOD IN LISTS STATIC_METHODS)
string(REPLACE ":" ";" STATIC_METHOD "${STATIC_METHOD}") string(REPLACE ":" ";" STATIC_METHOD "${STATIC_METHOD}")
list(GET STATIC_METHOD 0 FUNCNAME) list(GET STATIC_METHOD 0 FUNCNAME)
@@ -457,26 +457,26 @@ foreach(LINE IN LISTS SOURCE_LINES)
list(GET STATIC_METHOD 2 TYPES) list(GET STATIC_METHOD 2 TYPES)
string(LENGTH "${FUNCNAME}" LEN) string(LENGTH "${FUNCNAME}" LEN)
math(EXPR LEN "${MLEN} - ${LEN}") math(EXPR LEN "${MLEN} - ${LEN}")
if ("${TYPES}" STREQUAL "v") if("${TYPES}" STREQUAL "v")
if (LEN GREATER 8) if(LEN GREATER 8)
math(EXPR LEN "${LEN} - 8") math(EXPR LEN "${LEN} - 8")
else (LEN GREATER 8) else()
set(LEN 0) set(LEN 0)
endif (LEN GREATER 8) endif()
endif ("${TYPES}" STREQUAL "v") endif()
unset(SPACES) unset(SPACES)
foreach(i RANGE ${LEN}) foreach(i RANGE ${LEN})
string(APPEND SPACES " ") string(APPEND SPACES " ")
endforeach(i) endforeach()
if ("${TYPES}" STREQUAL "v") if("${TYPES}" STREQUAL "v")
string(APPEND SQUIRREL_EXPORT "\n SQ${API_CLS}.DefSQAdvancedStaticMethod(engine, &${CLS}::${FUNCNAME},${SPACES}\"${FUNCNAME}\");") string(APPEND SQUIRREL_EXPORT "\n SQ${API_CLS}.DefSQAdvancedStaticMethod(engine, &${CLS}::${FUNCNAME},${SPACES}\"${FUNCNAME}\");")
else ("${TYPES}" STREQUAL "v") else()
string(APPEND SQUIRREL_EXPORT "\n SQ${API_CLS}.DefSQStaticMethod(engine, &${CLS}::${FUNCNAME},${SPACES}\"${FUNCNAME}\",${SPACES}${ARGC}, \"${TYPES}\");") string(APPEND SQUIRREL_EXPORT "\n SQ${API_CLS}.DefSQStaticMethod(engine, &${CLS}::${FUNCNAME},${SPACES}\"${FUNCNAME}\",${SPACES}${ARGC}, \"${TYPES}\");")
endif ("${TYPES}" STREQUAL "v") endif()
endforeach(STATIC_METHOD) endforeach()
if (MLEN) if(MLEN)
string(APPEND SQUIRREL_EXPORT "\n") string(APPEND SQUIRREL_EXPORT "\n")
endif (MLEN) endif()
# Non-static methods # Non-static methods
set(MLEN 0) set(MLEN 0)
@@ -484,10 +484,10 @@ foreach(LINE IN LISTS SOURCE_LINES)
string(REPLACE ":" ";" METHOD "${METHOD}") string(REPLACE ":" ";" METHOD "${METHOD}")
list(GET METHOD 0 FUNCNAME) list(GET METHOD 0 FUNCNAME)
string(LENGTH "${FUNCNAME}" LEN) string(LENGTH "${FUNCNAME}" LEN)
if (MLEN LESS LEN) if(MLEN LESS LEN)
set(MLEN ${LEN}) set(MLEN ${LEN})
endif (MLEN LESS LEN) endif()
endforeach(METHOD) endforeach()
foreach(METHOD IN LISTS METHODS) foreach(METHOD IN LISTS METHODS)
string(REPLACE ":" ";" METHOD "${METHOD}") string(REPLACE ":" ";" METHOD "${METHOD}")
list(GET METHOD 0 FUNCNAME) list(GET METHOD 0 FUNCNAME)
@@ -495,26 +495,26 @@ foreach(LINE IN LISTS SOURCE_LINES)
list(GET METHOD 2 TYPES) list(GET METHOD 2 TYPES)
string(LENGTH "${FUNCNAME}" LEN) string(LENGTH "${FUNCNAME}" LEN)
math(EXPR LEN "${MLEN} - ${LEN}") math(EXPR LEN "${MLEN} - ${LEN}")
if ("${TYPES}" STREQUAL "v") if("${TYPES}" STREQUAL "v")
if (LEN GREATER 8) if(LEN GREATER 8)
math(EXPR LEN "${LEN} - 8") math(EXPR LEN "${LEN} - 8")
else (LEN GREATER 8) else()
set(LEN 0) set(LEN 0)
endif (LEN GREATER 8) endif()
endif ("${TYPES}" STREQUAL "v") endif()
unset(SPACES) unset(SPACES)
foreach(i RANGE ${LEN}) foreach(i RANGE ${LEN})
string(APPEND SPACES " ") string(APPEND SPACES " ")
endforeach(i) endforeach()
if ("${TYPES}" STREQUAL "v") if("${TYPES}" STREQUAL "v")
string(APPEND SQUIRREL_EXPORT "\n SQ${API_CLS}.DefSQAdvancedMethod(engine, &${CLS}::${FUNCNAME},${SPACES}\"${FUNCNAME}\");") string(APPEND SQUIRREL_EXPORT "\n SQ${API_CLS}.DefSQAdvancedMethod(engine, &${CLS}::${FUNCNAME},${SPACES}\"${FUNCNAME}\");")
else ("${TYPES}" STREQUAL "v") else()
string(APPEND SQUIRREL_EXPORT "\n SQ${API_CLS}.DefSQMethod(engine, &${CLS}::${FUNCNAME},${SPACES}\"${FUNCNAME}\",${SPACES}${ARGC}, \"${TYPES}\");") string(APPEND SQUIRREL_EXPORT "\n SQ${API_CLS}.DefSQMethod(engine, &${CLS}::${FUNCNAME},${SPACES}\"${FUNCNAME}\",${SPACES}${ARGC}, \"${TYPES}\");")
endif ("${TYPES}" STREQUAL "v") endif()
endforeach(METHOD) endforeach()
if (MLEN) if(MLEN)
string(APPEND SQUIRREL_EXPORT "\n") string(APPEND SQUIRREL_EXPORT "\n")
endif (MLEN) endif()
string(APPEND SQUIRREL_EXPORT "\n SQ${API_CLS}.PostRegister(engine);") string(APPEND SQUIRREL_EXPORT "\n SQ${API_CLS}.PostRegister(engine);")
string(APPEND SQUIRREL_EXPORT "\n}") string(APPEND SQUIRREL_EXPORT "\n}")
@@ -522,64 +522,64 @@ foreach(LINE IN LISTS SOURCE_LINES)
reset_reader() reset_reader()
continue() continue()
endif ("${LINE}" MATCHES "^([ ]*)$") endif()
# Skip non-public functions # Skip non-public functions
if (NOT IS_PUBLIC) if(NOT IS_PUBLIC)
continue() continue()
endif (NOT IS_PUBLIC) endif()
# Add enums # Add enums
if (IN_ENUM) if(IN_ENUM)
string(REGEX MATCH "([^, ]+)" ENUM_VALUE "${LINE}") string(REGEX MATCH "([^, ]+)" ENUM_VALUE "${LINE}")
list(APPEND ENUM_VALUES "${ENUM_VALUE}") list(APPEND ENUM_VALUES "${ENUM_VALUE}")
# Check if this a special error enum # Check if this a special error enum
list(GET ENUMS -1 ENUM) list(GET ENUMS -1 ENUM)
if ("${ENUM}" MATCHES ".*::ErrorMessages") if("${ENUM}" MATCHES ".*::ErrorMessages")
# syntax: # syntax:
# enum ErrorMessages { # enum ErrorMessages {
# ERR_SOME_ERROR, // [STR_ITEM1, STR_ITEM2, ...] # ERR_SOME_ERROR, // [STR_ITEM1, STR_ITEM2, ...]
# } # }
# Set the mappings # Set the mappings
if ("${LINE}" MATCHES "\\[(.*)\\]") if("${LINE}" MATCHES "\\[(.*)\\]")
string(REGEX REPLACE "[ ]" "" MAPPINGS "${CMAKE_MATCH_1}") string(REGEX REPLACE "[ ]" "" MAPPINGS "${CMAKE_MATCH_1}")
string(REPLACE "," ";" MAPPINGS "${MAPPINGS}") string(REPLACE "," ";" MAPPINGS "${MAPPINGS}")
foreach(MAPPING IN LISTS MAPPINGS) foreach(MAPPING IN LISTS MAPPINGS)
list(APPEND ENUM_STRING_TO_ERRORS "${MAPPING}:${ENUM_VALUE}") list(APPEND ENUM_STRING_TO_ERRORS "${MAPPING}:${ENUM_VALUE}")
endforeach(MAPPING) endforeach()
list(APPEND ENUM_ERROR_TO_STRINGS "${ENUM_VALUE}") list(APPEND ENUM_ERROR_TO_STRINGS "${ENUM_VALUE}")
endif ("${LINE}" MATCHES "\\[(.*)\\]") endif()
endif ("${ENUM}" MATCHES ".*::ErrorMessages") endif()
continue() continue()
endif (IN_ENUM) endif()
# Add a const (non-enum) value # Add a const (non-enum) value
if ("${LINE}" MATCHES "^[ ]*static const [^ ]+ ([^ ]+) = -?\\(?[^ ]*\\)?[^ ]+;") if("${LINE}" MATCHES "^[ ]*static const [^ ]+ ([^ ]+) = -?\\(?[^ ]*\\)?[^ ]+;")
list(APPEND CONST_VALUES "${CMAKE_MATCH_1}") list(APPEND CONST_VALUES "${CMAKE_MATCH_1}")
continue() continue()
endif ("${LINE}" MATCHES "^[ ]*static const [^ ]+ ([^ ]+) = -?\\(?[^ ]*\\)?[^ ]+;") endif()
# Add a method to the list # Add a method to the list
if ("${LINE}" MATCHES "^.*\\(.*\\).*$") if("${LINE}" MATCHES "^.*\\(.*\\).*$")
if (NOT CLS_LEVEL EQUAL 1) if(NOT CLS_LEVEL EQUAL 1)
continue() continue()
endif (NOT CLS_LEVEL EQUAL 1) endif()
if ("${LINE}" MATCHES "~") if("${LINE}" MATCHES "~")
if (DEFINED API_SELECTED) if(DEFINED API_SELECTED)
message(WARNING "Destructor for '${CLS}' has @api. Tag ignored.") message(WARNING "Destructor for '${CLS}' has @api. Tag ignored.")
unset(API_SELECTED) unset(API_SELECTED)
endif (DEFINED API_SELECTED) endif()
continue() continue()
endif ("${LINE}" MATCHES "~") endif()
unset(IS_STATIC) unset(IS_STATIC)
if ("${LINE}" MATCHES "static") if("${LINE}" MATCHES "static")
set(IS_STATIC TRUE) set(IS_STATIC TRUE)
endif ("${LINE}" MATCHES "static") endif()
string(REGEX REPLACE "(virtual|static|const)[ ]+" "" LINE "${LINE}") string(REGEX REPLACE "(virtual|static|const)[ ]+" "" LINE "${LINE}")
string(REGEX REPLACE "{.*" "" LINE "${LINE}") string(REGEX REPLACE "{.*" "" LINE "${LINE}")
@@ -593,75 +593,75 @@ foreach(LINE IN LISTS SOURCE_LINES)
string(REGEX MATCH "([^ ]+)( ([^ ]+))?" RESULT "${LINE}") string(REGEX MATCH "([^ ]+)( ([^ ]+))?" RESULT "${LINE}")
set(FUNCTYPE "${CMAKE_MATCH_1}") set(FUNCTYPE "${CMAKE_MATCH_1}")
set(FUNCNAME "${CMAKE_MATCH_3}") set(FUNCNAME "${CMAKE_MATCH_3}")
if ("${FUNCTYPE}" STREQUAL "${CLS}" AND NOT FUNCNAME) if("${FUNCTYPE}" STREQUAL "${CLS}" AND NOT FUNCNAME)
if (DEFINED API_SELECTED) if(DEFINED API_SELECTED)
message(WARNING "Constructor for '${CLS}' has @api. Tag ignored.") message(WARNING "Constructor for '${CLS}' has @api. Tag ignored.")
unset(API_SELECTED) unset(API_SELECTED)
endif (DEFINED API_SELECTED) endif()
set(CLS_PARAM_0 "${PARAM_S}") set(CLS_PARAM_0 "${PARAM_S}")
if (NOT PARAM_S) if(NOT PARAM_S)
continue() continue()
endif (NOT PARAM_S) endif()
elseif (NOT FUNCNAME) elseif(NOT FUNCNAME)
continue() continue()
endif () endif()
string(REPLACE "," ";" PARAMS "${PARAM_S}") string(REPLACE "," ";" PARAMS "${PARAM_S}")
if (IS_STATIC) if(IS_STATIC)
set(TYPES ".") set(TYPES ".")
else (IS_STATIC) else()
set(TYPES "x") set(TYPES "x")
endif (IS_STATIC) endif()
set(LEN 1) set(LEN 1)
foreach(PARAM IN LISTS PARAMS) foreach(PARAM IN LISTS PARAMS)
math(EXPR LEN "${LEN} + 1") math(EXPR LEN "${LEN} + 1")
string(STRIP "${PARAM}" PARAM) string(STRIP "${PARAM}" PARAM)
if ("${PARAM}" MATCHES "\\*|&") if("${PARAM}" MATCHES "\\*|&")
if ("${PARAM}" MATCHES "^char") if("${PARAM}" MATCHES "^char")
# Many types can be converted to string, so use '.', not 's'. (handled by our glue code) # Many types can be converted to string, so use '.', not 's'. (handled by our glue code)
string(APPEND TYPES ".") string(APPEND TYPES ".")
elseif ("${PARAM}" MATCHES "^void") elseif("${PARAM}" MATCHES "^void")
string(APPEND TYPES "p") string(APPEND TYPES "p")
elseif ("${PARAM}" MATCHES "^Array") elseif("${PARAM}" MATCHES "^Array")
string(APPEND TYPES "a") string(APPEND TYPES "a")
elseif ("${PARAM}" MATCHES "^struct Array") elseif("${PARAM}" MATCHES "^struct Array")
string(APPEND TYPES "a") string(APPEND TYPES "a")
elseif ("${PARAM}" MATCHES "^Text") elseif("${PARAM}" MATCHES "^Text")
string(APPEND TYPES ".") string(APPEND TYPES ".")
else () else()
string(APPEND TYPES "x") string(APPEND TYPES "x")
endif () endif()
elseif ("${PARAM}" MATCHES "^bool") elseif("${PARAM}" MATCHES "^bool")
string(APPEND TYPES "b") string(APPEND TYPES "b")
elseif ("${PARAM}" MATCHES "^HSQUIRRELVM") elseif("${PARAM}" MATCHES "^HSQUIRRELVM")
set(TYPES "v") set(TYPES "v")
else () else()
string(APPEND TYPES "i") string(APPEND TYPES "i")
endif () endif()
endforeach(PARAM) endforeach()
# Check if we want to publish this function # Check if we want to publish this function
if (NOT DEFINED API_SELECTED) if(NOT DEFINED API_SELECTED)
set(API_SELECTED ${CLS_IN_API}) set(API_SELECTED ${CLS_IN_API})
endif (NOT DEFINED API_SELECTED) endif()
if (NOT API_SELECTED) if(NOT API_SELECTED)
unset(API_SELECTED) unset(API_SELECTED)
continue() continue()
endif (NOT API_SELECTED) endif()
unset(API_SELECTED) unset(API_SELECTED)
if ("${FUNCTYPE}" STREQUAL "${CLS}" AND NOT FUNCNAME) if("${FUNCTYPE}" STREQUAL "${CLS}" AND NOT FUNCNAME)
set(CLS_PARAM_1 ${LEN}) set(CLS_PARAM_1 ${LEN})
set(CLS_PARAM_2 "${TYPES}") set(CLS_PARAM_2 "${TYPES}")
elseif ("${FUNCNAME}" MATCHES "^_" AND NOT "${TYPES}" STREQUAL "v") elseif("${FUNCNAME}" MATCHES "^_" AND NOT "${TYPES}" STREQUAL "v")
elseif (IS_STATIC) elseif(IS_STATIC)
list(APPEND STATIC_METHODS "${FUNCNAME}:${LEN}:${TYPES}") list(APPEND STATIC_METHODS "${FUNCNAME}:${LEN}:${TYPES}")
else () else()
list(APPEND METHODS "${FUNCNAME}:${LEN}:${TYPES}") list(APPEND METHODS "${FUNCNAME}:${LEN}:${TYPES}")
endif () endif()
continue() continue()
endif ("${LINE}" MATCHES "^.*\\(.*\\).*$") endif()
endforeach(LINE) endforeach()
configure_file(${SCRIPT_API_SOURCE_FILE} ${SCRIPT_API_BINARY_FILE}) configure_file(${SCRIPT_API_SOURCE_FILE} ${SCRIPT_API_BINARY_FILE})

View File

@@ -1,17 +1,17 @@
cmake_minimum_required(VERSION 3.5) cmake_minimum_required(VERSION 3.5)
if (NOT INCLUDES_SOURCE_FILE) if(NOT INCLUDES_SOURCE_FILE)
message(FATAL_ERROR "Script needs INCLUDES_SOURCE_FILE defined") message(FATAL_ERROR "Script needs INCLUDES_SOURCE_FILE defined")
endif (NOT INCLUDES_SOURCE_FILE) endif()
if (NOT INCLUDES_BINARY_FILE) if(NOT INCLUDES_BINARY_FILE)
message(FATAL_ERROR "Script needs INCLUDES_BINARY_FILE defined") message(FATAL_ERROR "Script needs INCLUDES_BINARY_FILE defined")
endif (NOT INCLUDES_BINARY_FILE) endif()
if (NOT APILC) if(NOT APILC)
message(FATAL_ERROR "Script needs APILC defined") message(FATAL_ERROR "Script needs APILC defined")
endif (NOT APILC) endif()
if (NOT APIUC) if(NOT APIUC)
message(FATAL_ERROR "Script needs APIUC defined") message(FATAL_ERROR "Script needs APIUC defined")
endif (NOT APIUC) endif()
set(ARGC 1) set(ARGC 1)
set(ARG_READ NO) set(ARG_READ NO)
@@ -21,32 +21,32 @@ set(ARG_READ NO)
while(ARGC LESS CMAKE_ARGC) while(ARGC LESS CMAKE_ARGC)
set(ARG ${CMAKE_ARGV${ARGC}}) set(ARG ${CMAKE_ARGV${ARGC}})
if (ARG_READ) if(ARG_READ)
list(APPEND SCRIPT_API_BINARY_FILES "${ARG}") list(APPEND SCRIPT_API_BINARY_FILES "${ARG}")
endif (ARG_READ) endif()
if (ARG STREQUAL "--") if(ARG STREQUAL "--")
set(ARG_READ YES) set(ARG_READ YES)
endif (ARG STREQUAL "--") endif()
math(EXPR ARGC "${ARGC} + 1") math(EXPR ARGC "${ARGC} + 1")
endwhile() endwhile()
foreach(FILE IN LISTS SCRIPT_API_BINARY_FILES) foreach(FILE IN LISTS SCRIPT_API_BINARY_FILES)
file(STRINGS "${FILE}" LINES REGEX "^void SQ${APIUC}.*_Register\\(Squirrel \\*engine\\)$") file(STRINGS "${FILE}" LINES REGEX "^void SQ${APIUC}.*_Register\\(Squirrel \\*engine\\)$")
if (LINES) if(LINES)
string(REGEX REPLACE ".*api/${APILC}/(.*)" "#include \"\\1\"" FILE "${FILE}") string(REGEX REPLACE ".*api/${APILC}/(.*)" "#include \"\\1\"" FILE "${FILE}")
list(APPEND SQUIRREL_INCLUDES "${FILE}") list(APPEND SQUIRREL_INCLUDES "${FILE}")
foreach(LINE IN LISTS LINES) foreach(LINE IN LISTS LINES)
if ("${LINE}" MATCHES "SQ${APIUC}(List|Controller)_Register") if("${LINE}" MATCHES "SQ${APIUC}(List|Controller)_Register")
continue() continue()
endif ("${LINE}" MATCHES "SQ${APIUC}(List|Controller)_Register") endif()
string(REGEX REPLACE "^.*void " " " LINE "${LINE}") string(REGEX REPLACE "^.*void " " " LINE "${LINE}")
string(REGEX REPLACE "Squirrel \\*" "" LINE "${LINE}") string(REGEX REPLACE "Squirrel \\*" "" LINE "${LINE}")
list(APPEND SQUIRREL_REGISTER "${LINE}") list(APPEND SQUIRREL_REGISTER "${LINE}")
endforeach(LINE) endforeach()
endif (LINES) endif()
endforeach(FILE) endforeach()
list(SORT SQUIRREL_INCLUDES) list(SORT SQUIRREL_INCLUDES)
string(REPLACE ";" "\n" SQUIRREL_INCLUDES "${SQUIRREL_INCLUDES}") string(REPLACE ";" "\n" SQUIRREL_INCLUDES "${SQUIRREL_INCLUDES}")

View File

@@ -28,13 +28,13 @@ if (UNIX AND NOT APPLE)
endif () endif ()
# Done by the subdirectories, if nforenum / grfcodec is installed # Done by the subdirectories, if nforenum / grfcodec is installed
if (GRFCODEC_FOUND) if(GRFCODEC_FOUND)
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/openttd.grf PROPERTIES GENERATED TRUE) set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/openttd.grf PROPERTIES GENERATED TRUE)
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/orig_extra.grf PROPERTIES GENERATED TRUE) set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/orig_extra.grf PROPERTIES GENERATED TRUE)
list(APPEND BASESET_BINARY_FILES openttd.grf) list(APPEND BASESET_BINARY_FILES openttd.grf)
list(APPEND BASESET_BINARY_FILES orig_extra.grf) list(APPEND BASESET_BINARY_FILES orig_extra.grf)
endif (GRFCODEC_FOUND) endif()
set(BASESET_EXTRAGRF_FILE ${CMAKE_CURRENT_SOURCE_DIR}/orig_extra.grf) set(BASESET_EXTRAGRF_FILE ${CMAKE_CURRENT_SOURCE_DIR}/orig_extra.grf)
@@ -62,7 +62,7 @@ foreach(BASESET_SOURCE_FILE IN LISTS BASESET_SOURCE_FILES)
) )
list(APPEND BASESET_BINARY_FILES ${BASESET_BINARY_FILE}) list(APPEND BASESET_BINARY_FILES ${BASESET_BINARY_FILE})
endforeach(BASESET_SOURCE_FILE) endforeach()
# Walk over all the other baseset files, and generate a command to copy them # Walk over all the other baseset files, and generate a command to copy them
foreach(BASESET_OTHER_SOURCE_FILE IN LISTS BASESET_OTHER_SOURCE_FILES) foreach(BASESET_OTHER_SOURCE_FILE IN LISTS BASESET_OTHER_SOURCE_FILES)
@@ -78,7 +78,7 @@ foreach(BASESET_OTHER_SOURCE_FILE IN LISTS BASESET_OTHER_SOURCE_FILES)
) )
list(APPEND BASESET_BINARY_FILES ${BASESET_OTHER_BINARY_FILE}) list(APPEND BASESET_BINARY_FILES ${BASESET_OTHER_BINARY_FILE})
endforeach(BASESET_OTHER_SOURCE_FILE) endforeach()
# Create a new target which generates all baseset metadata files # Create a new target which generates all baseset metadata files
add_custom_target_timestamp(baseset_files add_custom_target_timestamp(baseset_files

View File

@@ -3,7 +3,7 @@
# This is mainly because not many people have both of these tools installed, # This is mainly because not many people have both of these tools installed,
# so it is cheaper to cache them in git, and only regenerate when you are # so it is cheaper to cache them in git, and only regenerate when you are
# working on it / have the tools installed. # working on it / have the tools installed.
if (GRFCODEC_FOUND) if(GRFCODEC_FOUND)
include(CreateGrfCommand) include(CreateGrfCommand)
create_grf_command() create_grf_command()
endif (GRFCODEC_FOUND) endif()

View File

@@ -3,7 +3,7 @@
# This is mainly because not many people have both of these tools installed, # This is mainly because not many people have both of these tools installed,
# so it is cheaper to cache them in git, and only regenerate when you are # so it is cheaper to cache them in git, and only regenerate when you are
# working on it / have the tools installed. # working on it / have the tools installed.
if (GRFCODEC_FOUND) if(GRFCODEC_FOUND)
include(CreateGrfCommand) include(CreateGrfCommand)
create_grf_command( create_grf_command(
# We share some files with 'openttd' grf # We share some files with 'openttd' grf
@@ -11,4 +11,4 @@ if (GRFCODEC_FOUND)
${CMAKE_CURRENT_SOURCE_DIR}/../openttd/canals.png ${CMAKE_CURRENT_SOURCE_DIR}/../openttd/canals.png
${CMAKE_CURRENT_SOURCE_DIR}/../openttd/chars.png ${CMAKE_CURRENT_SOURCE_DIR}/../openttd/chars.png
) )
endif (GRFCODEC_FOUND) endif()

View File

@@ -24,11 +24,11 @@ add_files(
viewport_sprite_sorter_sse4.cpp viewport_sprite_sorter_sse4.cpp
CONDITION SSE_FOUND CONDITION SSE_FOUND
) )
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
set_compile_flags( set_compile_flags(
viewport_sprite_sorter_sse4.cpp viewport_sprite_sorter_sse4.cpp
COMPILE_FLAGS -msse4.1) COMPILE_FLAGS -msse4.1)
endif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") endif()
add_files( add_files(
aircraft.h aircraft.h

View File

@@ -32,7 +32,7 @@ add_files(
CONDITION NOT OPTION_DEDICATED AND SSE_FOUND CONDITION NOT OPTION_DEDICATED AND SSE_FOUND
) )
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
set_compile_flags( set_compile_flags(
32bpp_anim_sse2.cpp 32bpp_anim_sse2.cpp
32bpp_sse2.cpp 32bpp_sse2.cpp
@@ -44,7 +44,7 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clan
32bpp_anim_sse4.cpp 32bpp_anim_sse4.cpp
32bpp_sse4.cpp 32bpp_sse4.cpp
COMPILE_FLAGS -msse4.1) COMPILE_FLAGS -msse4.1)
endif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") endif()
add_files( add_files(
base.hpp base.hpp

View File

@@ -56,6 +56,7 @@ public:
void ScheduleErrorMessage(const ErrorMessageData &data); void ScheduleErrorMessage(const ErrorMessageData &data);
void ShowErrorMessage(StringID summary_msg, StringID detailed_msg, WarningLevel wl, int x = 0, int y = 0, const GRFFile *textref_stack_grffile = nullptr, uint textref_stack_size = 0, const uint32 *textref_stack = nullptr, StringID extra_msg = INVALID_STRING_ID); void ShowErrorMessage(StringID summary_msg, StringID detailed_msg, WarningLevel wl, int x = 0, int y = 0, const GRFFile *textref_stack_grffile = nullptr, uint textref_stack_size = 0, const uint32 *textref_stack = nullptr, StringID extra_msg = INVALID_STRING_ID);
bool HideActiveErrorMessage();
void ClearErrorMessages(); void ClearErrorMessages();
void ShowFirstError(); void ShowFirstError();
void UnshowCriticalError(); void UnshowCriticalError();

View File

@@ -335,13 +335,6 @@ public:
if (_window_system_initialized) ShowFirstError(); if (_window_system_initialized) ShowFirstError();
} }
EventState OnKeyPress(WChar key, uint16 keycode) override
{
if (keycode != WKC_SPACE) return ES_NOT_HANDLED;
delete this;
return ES_HANDLED;
}
/** /**
* Check whether the currently shown error message was critical or not. * Check whether the currently shown error message was critical or not.
* @return True iff the message was critical. * @return True iff the message was critical.
@@ -449,6 +442,18 @@ void ShowErrorMessage(StringID summary_msg, StringID detailed_msg, WarningLevel
} }
} }
/**
* Close active error message window
* @return true if a window was closed.
*/
bool HideActiveErrorMessage() {
ErrmsgWindow *w = (ErrmsgWindow*)FindWindowById(WC_ERRMSG, 0);
if (w == nullptr) return false;
delete w;
return true;
}
/** /**
* 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.

View File

@@ -1254,14 +1254,14 @@ protected:
CargoID cargo_filter[NUM_CARGO + 2]; ///< Available cargo filters; CargoID or CF_ANY or CF_NONE CargoID cargo_filter[NUM_CARGO + 2]; ///< Available cargo filters; CargoID or CF_ANY or CF_NONE
StringID cargo_filter_texts[NUM_CARGO + 3]; ///< Texts for filter_cargo, terminated by INVALID_STRING_ID StringID cargo_filter_texts[NUM_CARGO + 3]; ///< Texts for filter_cargo, terminated by INVALID_STRING_ID
CargoID produced_cargo_filter_criteria; ///< Selected produced cargo filter byte produced_cargo_filter_criteria; ///< Selected produced cargo filter index
CargoID accepted_cargo_filter_criteria; ///< Selected accepted cargo filter byte accepted_cargo_filter_criteria; ///< Selected accepted cargo filter index
/** /**
* Set cargo filter list item index. * Set cargo filter list item index.
* @param index The index of the cargo to be set * @param index The index of the cargo to be set
*/ */
void SetProducedCargoFilterIndex(int index) void SetProducedCargoFilterIndex(byte index)
{ {
if (this->produced_cargo_filter_criteria != index) { if (this->produced_cargo_filter_criteria != index) {
this->produced_cargo_filter_criteria = index; this->produced_cargo_filter_criteria = index;
@@ -1278,7 +1278,7 @@ protected:
* Set cargo filter list item index. * Set cargo filter list item index.
* @param index The index of the cargo to be set * @param index The index of the cargo to be set
*/ */
void SetAcceptedCargoFilterIndex(int index) void SetAcceptedCargoFilterIndex(byte index)
{ {
if (this->accepted_cargo_filter_criteria != index) { if (this->accepted_cargo_filter_criteria != index) {
this->accepted_cargo_filter_criteria = index; this->accepted_cargo_filter_criteria = index;
@@ -1296,7 +1296,7 @@ protected:
*/ */
void SetCargoFilterArray() void SetCargoFilterArray()
{ {
uint filter_items = 0; byte filter_items = 0;
/* Add item for disabling filtering. */ /* Add item for disabling filtering. */
this->cargo_filter[filter_items] = CF_ANY; this->cargo_filter[filter_items] = CF_ANY;

View File

@@ -79,7 +79,7 @@ foreach(LANG_SOURCE_FILE IN LISTS LANG_SOURCE_FILES)
) )
list(APPEND LANG_BINARY_FILES ${LANG_BINARY_FILE}) list(APPEND LANG_BINARY_FILES ${LANG_BINARY_FILE})
endforeach(LANG_SOURCE_FILE) endforeach()
# Create a new target which compiles all language files # Create a new target which compiles all language files
add_custom_target(language_files add_custom_target(language_files

View File

@@ -188,6 +188,7 @@ STR_COLOUR_ORANGE :Laranja
STR_COLOUR_BROWN :Marrom STR_COLOUR_BROWN :Marrom
STR_COLOUR_GREY :Cinza STR_COLOUR_GREY :Cinza
STR_COLOUR_WHITE :Branco STR_COLOUR_WHITE :Branco
STR_COLOUR_RANDOM :Aleatório
# Units used in OpenTTD # Units used in OpenTTD
STR_UNITS_VELOCITY_IMPERIAL :{COMMA}{NBSP}mph STR_UNITS_VELOCITY_IMPERIAL :{COMMA}{NBSP}mph
@@ -234,6 +235,8 @@ STR_TOOLTIP_FILTER_CRITERIA :{BLACK}Selecion
STR_BUTTON_SORT_BY :{BLACK}Classificar por STR_BUTTON_SORT_BY :{BLACK}Classificar por
STR_BUTTON_LOCATION :{BLACK}Local STR_BUTTON_LOCATION :{BLACK}Local
STR_BUTTON_RENAME :{BLACK}Renomear STR_BUTTON_RENAME :{BLACK}Renomear
STR_BUTTON_CATCHMENT :{BLACK}Cobertura
STR_TOOLTIP_CATCHMENT :{BLACK}Alternar a visão da área de cobertura
STR_TOOLTIP_CLOSE_WINDOW :{BLACK}Fechar janela STR_TOOLTIP_CLOSE_WINDOW :{BLACK}Fechar janela
STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS :{BLACK}Título da janela - arraste isto para mover a janela STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS :{BLACK}Título da janela - arraste isto para mover a janela
@@ -262,6 +265,7 @@ STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT_TOOLTIP :{BLACK}Ao ativa
STR_BUTTON_DEFAULT :{BLACK}Padrão STR_BUTTON_DEFAULT :{BLACK}Padrão
STR_BUTTON_CANCEL :{BLACK}Cancelar STR_BUTTON_CANCEL :{BLACK}Cancelar
STR_BUTTON_OK :{BLACK}OK STR_BUTTON_OK :{BLACK}OK
STR_WARNING_PASSWORD_SECURITY :{YELLOW}Aviso: os administradores do servidor podem ler qualquer texto inserido aqui.
# On screen keyboard window # On screen keyboard window
STR_OSK_KEYBOARD_LAYOUT :`1234567890-=\qwertyuiop[]asdfghjkl;' zxcvbnm,./ . STR_OSK_KEYBOARD_LAYOUT :`1234567890-=\qwertyuiop[]asdfghjkl;' zxcvbnm,./ .
@@ -335,6 +339,7 @@ STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_IN :{BLACK}Ampliar
STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_OUT :{BLACK}Reduzir a visão STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_OUT :{BLACK}Reduzir a visão
STR_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}Construir linha ferroviária STR_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}Construir linha ferroviária
STR_TOOLBAR_TOOLTIP_BUILD_ROADS :{BLACK}Construir rodovias STR_TOOLBAR_TOOLTIP_BUILD_ROADS :{BLACK}Construir rodovias
STR_TOOLBAR_TOOLTIP_BUILD_TRAMWAYS :{BLACK}Construir bondes
STR_TOOLBAR_TOOLTIP_BUILD_SHIP_DOCKS :{BLACK}Construir docas STR_TOOLBAR_TOOLTIP_BUILD_SHIP_DOCKS :{BLACK}Construir docas
STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS :{BLACK}Construir aeroportos STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS :{BLACK}Construir aeroportos
STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}Abrir a barra de paisagismo para elevar ou abaixar terreno, plantar árvores, etc. STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}Abrir a barra de paisagismo para elevar ou abaixar terreno, plantar árvores, etc.
@@ -463,6 +468,7 @@ STR_TOOLBAR_SOUND_MUSIC :Som/música
############ range for message menu starts ############ range for message menu starts
STR_NEWS_MENU_LAST_MESSAGE_NEWS_REPORT :Última mensagem/notícia STR_NEWS_MENU_LAST_MESSAGE_NEWS_REPORT :Última mensagem/notícia
STR_NEWS_MENU_MESSAGE_HISTORY_MENU :Histórico de Mensagens STR_NEWS_MENU_MESSAGE_HISTORY_MENU :Histórico de Mensagens
STR_NEWS_MENU_DELETE_ALL_MESSAGES :Apagar todas as mensagens
############ range ends here ############ range ends here
############ range for about menu starts ############ range for about menu starts
@@ -857,6 +863,7 @@ STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE :{BIG_FONT}{BLAC
STR_NEWS_NEW_VEHICLE_TYPE :{BIG_FONT}{BLACK}{ENGINE} STR_NEWS_NEW_VEHICLE_TYPE :{BIG_FONT}{BLACK}{ENGINE}
STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}Nov{G o a} {STRING} já está disponível! - {ENGINE} STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}Nov{G o a} {STRING} já está disponível! - {ENGINE}
STR_NEWS_SHOW_VEHICLE_GROUP_TOOLTIP :{BLACK}Abrir a janela do grupo focado no grupo do veículo
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} não aceita mais {STRING} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} não aceita mais {STRING}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} não aceita mais {STRING} ou {STRING} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} não aceita mais {STRING} ou {STRING}
@@ -923,6 +930,11 @@ STR_GAME_OPTIONS_CURRENCY_CUSTOM :Personalizado..
STR_GAME_OPTIONS_CURRENCY_GEL :Lari da Georgia STR_GAME_OPTIONS_CURRENCY_GEL :Lari da Georgia
STR_GAME_OPTIONS_CURRENCY_IRR :Rial Iraniano STR_GAME_OPTIONS_CURRENCY_IRR :Rial Iraniano
STR_GAME_OPTIONS_CURRENCY_RUB :Novo Rublo Russo (RUB) STR_GAME_OPTIONS_CURRENCY_RUB :Novo Rublo Russo (RUB)
STR_GAME_OPTIONS_CURRENCY_MXN :Peso Mexicano (MXN)
STR_GAME_OPTIONS_CURRENCY_NTD :Novo dólar de Taiwan (NTD)
STR_GAME_OPTIONS_CURRENCY_CNY :Renminbi chinês (CNY)
STR_GAME_OPTIONS_CURRENCY_HKD :Dólar de Hong Kong (HKD)
STR_GAME_OPTIONS_CURRENCY_INR :Rúpia Indiana (INR)
############ end of currency region ############ end of currency region
STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Automóveis STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Automóveis
@@ -985,7 +997,10 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :Normal
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :Dobro STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :Dobro
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Quádruplo STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Quádruplo
STR_GAME_OPTIONS_FONT_ZOOM :{BLACK}Tamanho da fonte
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Tamanho duplo
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Tamanho quádruplo
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Conjunto de gráficos base STR_GAME_OPTIONS_BASE_GRF :{BLACK}Conjunto de gráficos base
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Selecionar o conjunto de gráficos base para usar STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Selecionar o conjunto de gráficos base para usar
@@ -1169,6 +1184,7 @@ STR_CONFIG_SETTING_AUTOSLOPE :Permitir paisag
STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Permite paisagismo sob edifícios e vias sem precisar removê-las STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Permite paisagismo sob edifícios e vias sem precisar removê-las
STR_CONFIG_SETTING_CATCHMENT :Dimensionamento mais realista das áreas de abrangência: {STRING} STR_CONFIG_SETTING_CATCHMENT :Dimensionamento mais realista das áreas de abrangência: {STRING}
STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Exibe áreas de abrangência de para diferentes tipos de estações e aeroportos STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Exibe áreas de abrangência de para diferentes tipos de estações e aeroportos
STR_CONFIG_SETTING_SERVE_NEUTRAL_INDUSTRIES_HELPTEXT :Quando habilitado, os setores com estações conectadas (como plataformas de petróleo) também podem ser atendidos por estações de propriedade da empresa construídas nas proximidades. Quando desativados, esses setores só podem ser atendidos por suas estações anexas. Qualquer estação próxima da empresa não será capaz de atendê-los, nem a estação anexa servirá qualquer outra coisa que não seja a indústria
STR_CONFIG_SETTING_EXTRADYNAMITE :Permitir a remoção de mais rodovias, pontes, etc. das cidades: {STRING} STR_CONFIG_SETTING_EXTRADYNAMITE :Permitir a remoção de mais rodovias, pontes, etc. das cidades: {STRING}
STR_CONFIG_SETTING_EXTRADYNAMITE_HELPTEXT :Torna mais fácil remover infraestrutura e edifícios de cidades STR_CONFIG_SETTING_EXTRADYNAMITE_HELPTEXT :Torna mais fácil remover infraestrutura e edifícios de cidades
STR_CONFIG_SETTING_TRAIN_LENGTH :Tamanho máximo de trens: {STRING} STR_CONFIG_SETTING_TRAIN_LENGTH :Tamanho máximo de trens: {STRING}
@@ -1254,6 +1270,7 @@ STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Impossí
STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Manutenção de Infraestrutura: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Manutenção de Infraestrutura: {STRING}
STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Quando ativado, infraestrutura gera custos de manutenção. O custo aumenta proporcionalmente à malha de transportes, afetando companhias maiores mais do que as menores STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Quando ativado, infraestrutura gera custos de manutenção. O custo aumenta proporcionalmente à malha de transportes, afetando companhias maiores mais do que as menores
STR_CONFIG_SETTING_COMPANY_STARTING_COLOUR_HELPTEXT :Escolha a cor inicial para a empresa
STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS :Aeroportos nunca saem de linha: {STRING} STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS :Aeroportos nunca saem de linha: {STRING}
STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS_HELPTEXT :Ativando essa config. mantém todos os tipos de aeroportos disponíveis à construção após sua introdução STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS_HELPTEXT :Ativando essa config. mantém todos os tipos de aeroportos disponíveis à construção após sua introdução
@@ -1288,6 +1305,7 @@ STR_CONFIG_SETTING_POPULATION_IN_LABEL :Exibir populaç
STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Exibe a população das cidades nos nomes, no mapa STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Exibe a população das cidades nos nomes, no mapa
STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Espessura das linhas nos gráficos: {STRING} STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Espessura das linhas nos gráficos: {STRING}
STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Espessura da linha nos gráficos. Linhas finas são mais precisas, enquanto linhas grossas são mais fáceis de distinguir. STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Espessura da linha nos gráficos. Linhas finas são mais precisas, enquanto linhas grossas são mais fáceis de distinguir.
STR_CONFIG_SETTING_SHOW_NEWGRF_NAME_HELPTEXT :Adicione uma linha à janela de construção do veículo, mostrando de qual NewGRF o veículo selecionado vem.
STR_CONFIG_SETTING_LANDSCAPE :Terreno: {STRING} STR_CONFIG_SETTING_LANDSCAPE :Terreno: {STRING}
STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :O terreno define a jogabilidade básica com diferentes cargas e requerimentos para o crescimento das cidades. NewGRF's e Scripts de Jogo permitem um controle mais fino STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :O terreno define a jogabilidade básica com diferentes cargas e requerimentos para o crescimento das cidades. NewGRF's e Scripts de Jogo permitem um controle mais fino
@@ -1464,6 +1482,7 @@ STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :Permitir IA em
STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT :Permite jogadores controlados pelo computador participar em jogos multijogador STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT :Permite jogadores controlados pelo computador participar em jogos multijogador
STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :#opcodes antes de scripts serem suspensos: {STRING} STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :#opcodes antes de scripts serem suspensos: {STRING}
STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES_HELPTEXT :Número máximo de passos de computação que um script pode tomar em um turno STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES_HELPTEXT :Número máximo de passos de computação que um script pode tomar em um turno
STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_HELPTEXT :Quanta memória um único script pode consumir antes de ser encerrado à força. Isso pode precisar ser aumentado para mapas grandes.
STR_CONFIG_SETTING_SERVINT_ISPERCENT :Os intervalos de serviço são em percentagem: {STRING} STR_CONFIG_SETTING_SERVINT_ISPERCENT :Os intervalos de serviço são em percentagem: {STRING}
STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Define se a manutenção de veículos é ativada pelo tempo passado desde a última manutenção ou quando a confiabilidade alcança um certo valor STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Define se a manutenção de veículos é ativada pelo tempo passado desde a última manutenção ou quando a confiabilidade alcança um certo valor
@@ -1522,6 +1541,8 @@ STR_CONFIG_SETTING_NEWS_MESSAGES_FULL :Completa
STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :Noticias coloridas aparecem em: {STRING} STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :Noticias coloridas aparecem em: {STRING}
STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :Ano a partir do qual os jornais são impressos em cor. Antes disso, serão em preto-e-branco STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :Ano a partir do qual os jornais são impressos em cor. Antes disso, serão em preto-e-branco
STR_CONFIG_SETTING_STARTING_YEAR :Data de início: {STRING} STR_CONFIG_SETTING_STARTING_YEAR :Data de início: {STRING}
STR_CONFIG_SETTING_ENDING_YEAR_HELPTEXT :Ano em que o jogo termina para fins de pontuação. No final deste ano, a pontuação da empresa é registrada e a tela de pontuação máxima é exibida, mas os jogadores podem continuar jogando depois disso.{} Se isso for antes do ano inicial, a tela de pontuação máxima nunca será exibida.
STR_CONFIG_SETTING_ENDING_YEAR_ZERO :Nunca
STR_CONFIG_SETTING_SMOOTH_ECONOMY :Ativar economia regular (alterações menores): {STRING} STR_CONFIG_SETTING_SMOOTH_ECONOMY :Ativar economia regular (alterações menores): {STRING}
STR_CONFIG_SETTING_SMOOTH_ECONOMY_HELPTEXT :Quando ativado, a produção de indústrias muda com mais frequência, e mais sutilmente STR_CONFIG_SETTING_SMOOTH_ECONOMY_HELPTEXT :Quando ativado, a produção de indústrias muda com mais frequência, e mais sutilmente
STR_CONFIG_SETTING_ALLOW_SHARES :Permite comprar ações de outras empresas: {STRING} STR_CONFIG_SETTING_ALLOW_SHARES :Permite comprar ações de outras empresas: {STRING}
@@ -1566,6 +1587,8 @@ STR_CONFIG_SETTING_TOWN_FOUNDING_HELPTEXT :Se ativado, per
STR_CONFIG_SETTING_TOWN_FOUNDING_FORBIDDEN :Proibido STR_CONFIG_SETTING_TOWN_FOUNDING_FORBIDDEN :Proibido
STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED :Permitido STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED :Permitido
STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED_CUSTOM_LAYOUT :Permitido, layout de cidades customizável STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED_CUSTOM_LAYOUT :Permitido, layout de cidades customizável
STR_CONFIG_SETTING_TOWN_CARGOGENMODE_HELPTEXT :Quanta carga é produzida pelas casas nas cidades, em relação à população geral da cidade.{} Crescimento quadrático: uma cidade com o dobro do tamanho gera quatro vezes mais passageiros.{} Crescimento linear: uma cidade com o dobro do tamanho gera o dobro da quantidade de passageiros.
STR_CONFIG_SETTING_TOWN_CARGOGENMODE_ORIGINAL :Quadrático (original)
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT :Posicionamento de árvores: {STRING} STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT :Posicionamento de árvores: {STRING}
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_HELPTEXT :Controla o nascimento aleatório de árvores durante o jogo. Isso pode afetar indústrias que dependem do crescimento de árvores, como serrarias STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_HELPTEXT :Controla o nascimento aleatório de árvores durante o jogo. Isso pode afetar indústrias que dependem do crescimento de árvores, como serrarias
@@ -1807,6 +1830,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Mudar an
STR_CHEAT_SETUP_PROD :{LTBLUE}Ativar modificação de valores de produção: {ORANGE}{STRING} STR_CHEAT_SETUP_PROD :{LTBLUE}Ativar modificação de valores de produção: {ORANGE}{STRING}
# Livery window # Livery window
STR_LIVERY_CAPTION :{WHITE}{COMPANY} - Esquema de cores
STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Exibir esquemas de cor gerais STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Exibir esquemas de cor gerais
STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Exibe esquemas de cor de trens STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Exibe esquemas de cor de trens
@@ -2066,6 +2090,7 @@ STR_NETWORK_CONNECTION_DISCONNECT :{BLACK}Desconec
STR_NETWORK_NEED_GAME_PASSWORD_CAPTION :{WHITE}Servidor está protegido. Digite a senha STR_NETWORK_NEED_GAME_PASSWORD_CAPTION :{WHITE}Servidor está protegido. Digite a senha
STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION :{WHITE}Empresa está protegida. Digite a senha STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION :{WHITE}Empresa está protegida. Digite a senha
STR_NETWORK_COMPANY_LIST_CLIENT_LIST_CAPTION :{WHITE}Lista de clientes
# Network company list added strings # Network company list added strings
STR_NETWORK_COMPANY_LIST_CLIENT_LIST :Lista de clientes STR_NETWORK_COMPANY_LIST_CLIENT_LIST :Lista de clientes
@@ -2237,7 +2262,7 @@ STR_CONTENT_TYPE_AI_LIBRARY :Biblioteca de I
STR_CONTENT_TYPE_SCENARIO :Cenário STR_CONTENT_TYPE_SCENARIO :Cenário
STR_CONTENT_TYPE_HEIGHTMAP :Mapa topográfico STR_CONTENT_TYPE_HEIGHTMAP :Mapa topográfico
STR_CONTENT_TYPE_BASE_SOUNDS :Sons padrão STR_CONTENT_TYPE_BASE_SOUNDS :Sons padrão
STR_CONTENT_TYPE_BASE_MUSIC :Músicsas padrão STR_CONTENT_TYPE_BASE_MUSIC :Músicas padrão
STR_CONTENT_TYPE_GAME_SCRIPT :Script do jogo STR_CONTENT_TYPE_GAME_SCRIPT :Script do jogo
STR_CONTENT_TYPE_GS_LIBRARY :Biblioteca de GS's STR_CONTENT_TYPE_GS_LIBRARY :Biblioteca de GS's
@@ -2403,7 +2428,10 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_TUNNEL :{BLACK}Construi
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Construir túnel de bonde. Shift altera construção/preço estimado STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Construir túnel de bonde. Shift altera construção/preço estimado
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Alternar construir/remover para contrução rodoviária STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Alternar construir/remover para contrução rodoviária
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Alternar construir/remover linhas de bonde e sinais STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Alternar construir/remover linhas de bonde e sinais
STR_ROAD_TOOLBAR_TOOLTIP_CONVERT_ROAD :{BLACK}Converter/atualizar o tipo de estrada. Shift altera construção/exibição de estimativa de custo
STR_ROAD_TOOLBAR_TOOLTIP_CONVERT_TRAM :{BLACK}Converter/Melhorar o tipo de bonde. Shift troca construção/amostra custo estimado
STR_ROAD_NAME_TRAM :Bonde
# Road depot construction window # Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Orientação da Garagem STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Orientação da Garagem
@@ -2588,6 +2616,7 @@ STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF:
STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Carga aceita: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Carga aceita: {LTBLUE}
STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Tipo de ferrovia: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Tipo de ferrovia: {LTBLUE}{STRING}
STR_LANG_AREA_INFORMATION_ROAD_TYPE :{BLACK}Tipo de estrada: {LTBLUE}{STRING}
STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Velocidade limite do trilho: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Velocidade limite do trilho: {LTBLUE}{VELOCITY}
STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Limite de velocidade da rua: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Limite de velocidade da rua: {LTBLUE}{VELOCITY}
@@ -2699,6 +2728,7 @@ STR_FRAMERATE_SPEED_FACTOR :{WHITE}Fator de
STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK}Quão rápido o jogo está sendo executado, comparado com a velocidade esperada na simulação normal STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK}Quão rápido o jogo está sendo executado, comparado com a velocidade esperada na simulação normal
STR_FRAMERATE_CURRENT :{WHITE}Atual STR_FRAMERATE_CURRENT :{WHITE}Atual
STR_FRAMERATE_AVERAGE :{WHITE}Médio STR_FRAMERATE_AVERAGE :{WHITE}Médio
STR_FRAMERATE_MEMORYUSE :{WHITE}Memória
STR_FRAMERATE_DATA_POINTS :{WHITE}Dados baseados em {COMMA} medidas STR_FRAMERATE_DATA_POINTS :{WHITE}Dados baseados em {COMMA} medidas
STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL}{WHITE} ms STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL}{WHITE} ms
STR_FRAMERATE_MS_WARN :{YELLOW}{DECIMAL}{WHITE} ms STR_FRAMERATE_MS_WARN :{YELLOW}{DECIMAL}{WHITE} ms
@@ -2715,12 +2745,15 @@ STR_FRAMERATE_GL_ROADVEHS :{WHITE} Tiques
STR_FRAMERATE_GL_SHIPS :{WHITE} Tiques de embarcação: STR_FRAMERATE_GL_SHIPS :{WHITE} Tiques de embarcação:
STR_FRAMERATE_GL_AIRCRAFT :{WHITE} Tiques de aeronave: STR_FRAMERATE_GL_AIRCRAFT :{WHITE} Tiques de aeronave:
STR_FRAMERATE_GL_LANDSCAPE :{WHITE} Tiques do mundo: STR_FRAMERATE_GL_LANDSCAPE :{WHITE} Tiques do mundo:
STR_FRAMERATE_GL_LINKGRAPH :{BLACK} Atraso no gráfico de link:
STR_FRAMERATE_DRAWING :{WHITE}Renderizações de gráficos: STR_FRAMERATE_DRAWING :{WHITE}Renderizações de gráficos:
STR_FRAMERATE_DRAWING_VIEWPORTS :{WHITE} Visualizações do mundo: STR_FRAMERATE_DRAWING_VIEWPORTS :{WHITE} Visualizações do mundo:
STR_FRAMERATE_VIDEO :{WHITE}Saída de vídeo: STR_FRAMERATE_VIDEO :{WHITE}Saída de vídeo:
STR_FRAMERATE_SOUND :{WHITE}Mixagem de áudio: STR_FRAMERATE_SOUND :{WHITE}Mixagem de áudio:
STR_FRAMERATE_GAMESCRIPT :{BLACK} Script do jogo:
############ End of leave-in-this-order ############ End of leave-in-this-order
############ Leave those lines in this order!! ############ Leave those lines in this order!!
STR_FRAMETIME_CAPTION_GAMELOOP :Loop de jogo
STR_FRAMETIME_CAPTION_GL_ECONOMY :Manuseio de carga STR_FRAMETIME_CAPTION_GL_ECONOMY :Manuseio de carga
STR_FRAMETIME_CAPTION_GL_TRAINS :Tiques de trem STR_FRAMETIME_CAPTION_GL_TRAINS :Tiques de trem
STR_FRAMETIME_CAPTION_GL_ROADVEHS :Tiques de automóveis STR_FRAMETIME_CAPTION_GL_ROADVEHS :Tiques de automóveis
@@ -2756,6 +2789,8 @@ STR_SAVELOAD_DETAIL_CAPTION :{BLACK}Detalhes
STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}Nenhuma informação disponível STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}Nenhuma informação disponível
STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING} STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING}
STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}NewGRF: {WHITE}{STRING} STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}NewGRF: {WHITE}{STRING}
STR_SAVELOAD_OVERWRITE_TITLE :{WHITE}Substituir ficheiro
STR_SAVELOAD_OVERWRITE_WARNING :{YELLOW}Tem certeza de que deseja substituir o arquivo existente?
STR_SAVELOAD_OSKTITLE :{BLACK}Coloque o nome para o jogo salvo STR_SAVELOAD_OSKTITLE :{BLACK}Coloque o nome para o jogo salvo
@@ -2873,6 +2908,7 @@ STR_NEWGRF_SETTINGS_VERSION :{BLACK}Versão:
STR_NEWGRF_SETTINGS_MIN_VERSION :{BLACK}Mín. versão compatível: {SILVER}{NUM} STR_NEWGRF_SETTINGS_MIN_VERSION :{BLACK}Mín. versão compatível: {SILVER}{NUM}
STR_NEWGRF_SETTINGS_MD5SUM :{BLACK}SomaMD5 (verf. de segurança): {SILVER}{STRING} STR_NEWGRF_SETTINGS_MD5SUM :{BLACK}SomaMD5 (verf. de segurança): {SILVER}{STRING}
STR_NEWGRF_SETTINGS_PALETTE :{BLACK}Paleta: {SILVER}{STRING} STR_NEWGRF_SETTINGS_PALETTE :{BLACK}Paleta: {SILVER}{STRING}
STR_NEWGRF_SETTINGS_PALETTE_DEFAULT :Padrão (D)
STR_NEWGRF_SETTINGS_PARAMETER :{BLACK}Parâmetros: {SILVER}{STRING} STR_NEWGRF_SETTINGS_PARAMETER :{BLACK}Parâmetros: {SILVER}{STRING}
STR_NEWGRF_SETTINGS_NO_INFO :{BLACK}Sem informação disponível STR_NEWGRF_SETTINGS_NO_INFO :{BLACK}Sem informação disponível
@@ -2985,6 +3021,7 @@ STR_NEWGRF_BUGGY :{WHITE}O NewGRF
STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}Informação de carga/readaptação para '{1:ENGINE}' difere da lista de aquisição após a construção. Isso pode causar a autorenovação/-substituição à falhar a readaptação corretamente. STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}Informação de carga/readaptação para '{1:ENGINE}' difere da lista de aquisição após a construção. Isso pode causar a autorenovação/-substituição à falhar a readaptação corretamente.
STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' causou um loop infinito no callback da produção STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' causou um loop infinito no callback da produção
STR_NEWGRF_BUGGY_UNKNOWN_CALLBACK_RESULT :{WHITE}Retorno {1:HEX} retornou um resultado desconhecido/inválido {2:HEX} STR_NEWGRF_BUGGY_UNKNOWN_CALLBACK_RESULT :{WHITE}Retorno {1:HEX} retornou um resultado desconhecido/inválido {2:HEX}
STR_NEWGRF_BUGGY_INVALID_CARGO_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' retornou tipo de carga inválido no retorno de chamada de produção em {2:HEX}
# 'User removed essential NewGRFs'-placeholders for stuff without specs # 'User removed essential NewGRFs'-placeholders for stuff without specs
STR_NEWGRF_INVALID_CARGO :<carga inválida> STR_NEWGRF_INVALID_CARGO :<carga inválida>
@@ -3079,6 +3116,7 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Suborna
# Goal window # Goal window
STR_GOALS_CAPTION :{WHITE}{COMPANY} Objetivos STR_GOALS_CAPTION :{WHITE}{COMPANY} Objetivos
STR_GOALS_SPECTATOR_CAPTION :{WHITE}Objetivos globais STR_GOALS_SPECTATOR_CAPTION :{WHITE}Objetivos globais
STR_GOALS_SPECTATOR :Objetivos Globais
STR_GOALS_GLOBAL_TITLE :{G=m}{BLACK}Objetivos globais: STR_GOALS_GLOBAL_TITLE :{G=m}{BLACK}Objetivos globais:
STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_TEXT :{ORANGE}{STRING}
STR_GOALS_NONE :{G=m}{ORANGE}- Nenhum - STR_GOALS_NONE :{G=m}{ORANGE}- Nenhum -
@@ -3320,6 +3358,9 @@ STR_INDUSTRY_DIRECTORY_CAPTION :{WHITE}Indústr
STR_INDUSTRY_DIRECTORY_NONE :{ORANGE}- Nenhum - STR_INDUSTRY_DIRECTORY_NONE :{ORANGE}- Nenhum -
STR_INDUSTRY_DIRECTORY_ITEM_NOPROD :{ORANGE}{INDUSTRY} STR_INDUSTRY_DIRECTORY_ITEM_NOPROD :{ORANGE}{INDUSTRY}
STR_INDUSTRY_DIRECTORY_LIST_CAPTION :{BLACK}Nomes das indústrias - clique no nome para centralizar a visçao principal na indústria. Ctrl+Clique abre uma nova janela na localização da indústria STR_INDUSTRY_DIRECTORY_LIST_CAPTION :{BLACK}Nomes das indústrias - clique no nome para centralizar a visçao principal na indústria. Ctrl+Clique abre uma nova janela na localização da indústria
STR_INDUSTRY_DIRECTORY_ACCEPTED_CARGO_FILTER :{BLACK}Carga aceita: {SILVER}{STRING}
STR_INDUSTRY_DIRECTORY_FILTER_ALL_TYPES :Todos os tipos de carga
STR_INDUSTRY_DIRECTORY_FILTER_NONE :Nenhum
# Industry view # Industry view
STR_INDUSTRY_VIEW_CAPTION :{WHITE}{INDUSTRY} STR_INDUSTRY_VIEW_CAPTION :{WHITE}{INDUSTRY}
@@ -3387,6 +3428,7 @@ STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Grupos -
STR_GROUP_CREATE_TOOLTIP :{BLACK}Clique para criar um grupo STR_GROUP_CREATE_TOOLTIP :{BLACK}Clique para criar um grupo
STR_GROUP_DELETE_TOOLTIP :{BLACK}Remove o grupo selecionado STR_GROUP_DELETE_TOOLTIP :{BLACK}Remove o grupo selecionado
STR_GROUP_RENAME_TOOLTIP :{BLACK}Renomeia o grupo selecionado STR_GROUP_RENAME_TOOLTIP :{BLACK}Renomeia o grupo selecionado
STR_GROUP_LIVERY_TOOLTIP :{BLACK}Alterar a pintura do grupo selecionado
STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Clique para excluir esse grupo da substituição automática STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Clique para excluir esse grupo da substituição automática
STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Remover grupo STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Remover grupo
@@ -3409,9 +3451,11 @@ STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Nova Locomotiva
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Nova Locomotiva Maglev STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Nova Locomotiva Maglev
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Novos Automóveis STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Novos Automóveis
STR_BUY_VEHICLE_TRAM_VEHICLE_CAPTION :Novo Veículo Elétrico
############ range for vehicle availability starts ############ range for vehicle availability starts
STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Trens STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Trens
STR_BUY_VEHICLE_ROAD_VEHICLE_ALL_CAPTION :Novo Veículo Terrestre
STR_BUY_VEHICLE_SHIP_CAPTION :Novas Embarcações STR_BUY_VEHICLE_SHIP_CAPTION :Novas Embarcações
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Nova Aeronave STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Nova Aeronave
############ range for vehicle availability ends ############ range for vehicle availability ends
@@ -3433,6 +3477,7 @@ STR_PURCHASE_INFO_AIRCRAFT_CAPACITY :{BLACK}Capacida
STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Vagões energizados: {GOLD}+{POWER}{BLACK} Peso: {GOLD}+{WEIGHT_SHORT} STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Vagões energizados: {GOLD}+{POWER}{BLACK} Peso: {GOLD}+{WEIGHT_SHORT}
STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Adaptável para: {GOLD}{STRING} STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Adaptável para: {GOLD}{STRING}
STR_PURCHASE_INFO_ALL_TYPES :Todos as cargas STR_PURCHASE_INFO_ALL_TYPES :Todos as cargas
STR_PURCHASE_INFO_NONE :Nenhum
STR_PURCHASE_INFO_ALL_BUT :Todas menos {CARGO_LIST} STR_PURCHASE_INFO_ALL_BUT :Todas menos {CARGO_LIST}
STR_PURCHASE_INFO_MAX_TE :{BLACK}Tração máx : {GOLD}{FORCE} STR_PURCHASE_INFO_MAX_TE :{BLACK}Tração máx : {GOLD}{FORCE}
STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Alcance: {GOLD}{COMMA} quadrados STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Alcance: {GOLD}{COMMA} quadrados
@@ -3448,12 +3493,18 @@ STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_BUTTON :{BLACK}Comprar
STR_BUY_VEHICLE_SHIP_BUY_VEHICLE_BUTTON :{BLACK}Comprar Embarcação STR_BUY_VEHICLE_SHIP_BUY_VEHICLE_BUTTON :{BLACK}Comprar Embarcação
STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_BUTTON :{BLACK}Comprar Aeronave STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_BUTTON :{BLACK}Comprar Aeronave
STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_REFIT_VEHICLE_BUTTON :{BLACK}Comprar e Trocar Veículos
STR_BUY_VEHICLE_SHIP_BUY_REFIT_VEHICLE_BUTTON :{BLACK}Comprar e Repor Navio
STR_BUY_VEHICLE_AIRCRAFT_BUY_REFIT_VEHICLE_BUTTON :{BLACK}Comprar e reequipar aeronaves
STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_TOOLTIP :{BLACK}Compra o veículo ferroviário selecionado. Shift+Clique mostra preço estimado sem a compra STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_TOOLTIP :{BLACK}Compra o veículo ferroviário selecionado. Shift+Clique mostra preço estimado sem a compra
STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_TOOLTIP :{BLACK}Compra o veículo selecionado. Shift+Clique mostra preço estimado sem a compra STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_TOOLTIP :{BLACK}Compra o veículo selecionado. Shift+Clique mostra preço estimado sem a compra
STR_BUY_VEHICLE_SHIP_BUY_VEHICLE_TOOLTIP :{BLACK}Compra a embarcação selecionada. Shift+Clique mostra preço estimado sem a compra STR_BUY_VEHICLE_SHIP_BUY_VEHICLE_TOOLTIP :{BLACK}Compra a embarcação selecionada. Shift+Clique mostra preço estimado sem a compra
STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_TOOLTIP :{BLACK}Compra a aeronave selecionada. Shift+Clique mostra o preço estimado sem a compra STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_TOOLTIP :{BLACK}Compra a aeronave selecionada. Shift+Clique mostra o preço estimado sem a compra
STR_BUY_VEHICLE_TRAIN_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}Compre e troque o trem destacado. Shift+Click mostra os custos estimados sem comprar
STR_BUY_VEHICLE_SHIP_BUY_REFIT_VEHICLE_TOOLTIP :Compre e reponha o navio em destaque. Shift+Clique mostra o custo estimado sem comprar
STR_BUY_VEHICLE_AIRCRAFT_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}Comprar e repor a aeronave destacada. Shift+Clique mostra o custo estimado sem comprar
STR_BUY_VEHICLE_TRAIN_RENAME_BUTTON :{BLACK}Renomear STR_BUY_VEHICLE_TRAIN_RENAME_BUTTON :{BLACK}Renomear
STR_BUY_VEHICLE_ROAD_VEHICLE_RENAME_BUTTON :{BLACK}Renomear STR_BUY_VEHICLE_ROAD_VEHICLE_RENAME_BUTTON :{BLACK}Renomear
@@ -3565,6 +3616,7 @@ STR_ENGINE_PREVIEW_CAPTION :{WHITE}Mensagem
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Projetamos um novo {STRING} - estaria interessado em um ano de exclusividade do uso deste veículo, de modo a que possamos avaliar a sua performance antes de o disponibilizar para todos ? STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Projetamos um novo {STRING} - estaria interessado em um ano de exclusividade do uso deste veículo, de modo a que possamos avaliar a sua performance antes de o disponibilizar para todos ?
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :locomotiva ferroviária STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :locomotiva ferroviária
STR_ENGINE_PREVIEW_ELRAIL_LOCOMOTIVE :locomotiva ferroviária eletrificada
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :locomotiva monotrilho STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :locomotiva monotrilho
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :locomotiva maglev STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :locomotiva maglev
@@ -3618,6 +3670,7 @@ STR_REPLACE_ELRAIL_VEHICLES :Locomotivas El
STR_REPLACE_MONORAIL_VEHICLES :Monotrilho STR_REPLACE_MONORAIL_VEHICLES :Monotrilho
STR_REPLACE_MAGLEV_VEHICLES :Maglevs STR_REPLACE_MAGLEV_VEHICLES :Maglevs
STR_REPLACE_ROAD_VEHICLES :Veículos terrestres
STR_REPLACE_REMOVE_WAGON :{BLACK}Remoção de vagões: {ORANGE}{STRING} STR_REPLACE_REMOVE_WAGON :{BLACK}Remoção de vagões: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Faz autosubstituição manter o tamanho do trem removendo vagões (começando pela frente), se ao substituir a locomotiva o trem ficar maior STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Faz autosubstituição manter o tamanho do trem removendo vagões (começando pela frente), se ao substituir a locomotiva o trem ficar maior
@@ -3838,6 +3891,7 @@ STR_ORDER_CONDITIONAL_AGE :Idade (anos)
STR_ORDER_CONDITIONAL_REQUIRES_SERVICE :Necessita de manutenção STR_ORDER_CONDITIONAL_REQUIRES_SERVICE :Necessita de manutenção
STR_ORDER_CONDITIONAL_UNCONDITIONALLY :Sempre STR_ORDER_CONDITIONAL_UNCONDITIONALLY :Sempre
STR_ORDER_CONDITIONAL_REMAINING_LIFETIME :Tempo de vida restante (anos) STR_ORDER_CONDITIONAL_REMAINING_LIFETIME :Tempo de vida restante (anos)
STR_ORDER_CONDITIONAL_MAX_RELIABILITY :Confiabilidade máxima
STR_ORDER_CONDITIONAL_COMPARATOR_TOOLTIP :{BLACK}Como comprarar os dados do veículo com o valor fornecido STR_ORDER_CONDITIONAL_COMPARATOR_TOOLTIP :{BLACK}Como comprarar os dados do veículo com o valor fornecido
STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS :é igual a STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS :é igual a
@@ -4068,6 +4122,11 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Selecion
STR_AI_LIST_CANCEL :{BLACK}Cancelar STR_AI_LIST_CANCEL :{BLACK}Cancelar
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Não mudar o script STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Não mudar o script
STR_SCREENSHOT_CAPTION :{WHITE}Tirar uma captura de tela
STR_SCREENSHOT_SCREENSHOT :{BLACK}Captura de tela normal
STR_SCREENSHOT_ZOOMIN_SCREENSHOT :{BLACK}Zoom máximo na captura de tela
STR_SCREENSHOT_WORLD_SCREENSHOT :{BLACK}Captura de tela do mapa todo
STR_SCREENSHOT_MINIMAP_SCREENSHOT :{BLACK}Captura de tela do minimapa
# AI Parameters # AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parâmetros STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parâmetros
@@ -4341,6 +4400,7 @@ STR_ERROR_NO_SUITABLE_RAILROAD_TRACK :{WHITE}Tipo de
STR_ERROR_MUST_REMOVE_RAILROAD_TRACK :{WHITE}Remova a ferrovia antes STR_ERROR_MUST_REMOVE_RAILROAD_TRACK :{WHITE}Remova a ferrovia antes
STR_ERROR_CROSSING_ON_ONEWAY_ROAD :{WHITE}Rua é mão única ou está bloqueada STR_ERROR_CROSSING_ON_ONEWAY_ROAD :{WHITE}Rua é mão única ou está bloqueada
STR_ERROR_CROSSING_DISALLOWED_RAIL :{WHITE}Cruzamentos de nível não são permitidos para esse tipo de trilho STR_ERROR_CROSSING_DISALLOWED_RAIL :{WHITE}Cruzamentos de nível não são permitidos para esse tipo de trilho
STR_ERROR_CROSSING_DISALLOWED_ROAD :{WHITE}Passagens de nível não permitidas para este tipo de estrada
STR_ERROR_CAN_T_BUILD_SIGNALS_HERE :{WHITE}Impossível construir sinais aqui... STR_ERROR_CAN_T_BUILD_SIGNALS_HERE :{WHITE}Impossível construir sinais aqui...
STR_ERROR_CAN_T_BUILD_RAILROAD_TRACK :{WHITE}Impossível construir ferrovia aqui... STR_ERROR_CAN_T_BUILD_RAILROAD_TRACK :{WHITE}Impossível construir ferrovia aqui...
STR_ERROR_CAN_T_REMOVE_RAILROAD_TRACK :{WHITE}Impossível remover a ferrovia daqui... STR_ERROR_CAN_T_REMOVE_RAILROAD_TRACK :{WHITE}Impossível remover a ferrovia daqui...
@@ -4360,6 +4420,10 @@ STR_ERROR_CAN_T_REMOVE_ROAD_FROM :{WHITE}Impossí
STR_ERROR_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}Impossível remover bonde daqui... STR_ERROR_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}Impossível remover bonde daqui...
STR_ERROR_THERE_IS_NO_ROAD :{WHITE}...não há rodovias STR_ERROR_THERE_IS_NO_ROAD :{WHITE}...não há rodovias
STR_ERROR_THERE_IS_NO_TRAMWAY :{WHITE}...não há linha de bonde STR_ERROR_THERE_IS_NO_TRAMWAY :{WHITE}...não há linha de bonde
STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}Não é possível converter o tipo de estrada aqui ...
STR_ERROR_NO_SUITABLE_ROAD :{WHITE}Sem estrada adequada
STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}Nenhum bonde adequado
STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... bonde incompatível
# Waterway construction errors # Waterway construction errors
STR_ERROR_CAN_T_BUILD_CANALS :{WHITE}Impossível construir canais aqui... STR_ERROR_CAN_T_BUILD_CANALS :{WHITE}Impossível construir canais aqui...

View File

@@ -960,7 +960,7 @@ STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE :{BIG_FONT}{BLAC
STR_NEWS_NEW_VEHICLE_TYPE :{BIG_FONT}{BLACK}{ENGINE} STR_NEWS_NEW_VEHICLE_TYPE :{BIG_FONT}{BLACK}{ENGINE}
STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}Nov{G ý á é í é é á} {STRING} k dispozici! - {ENGINE} STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}Nov{G ý á é í é é á} {STRING} k dispozici! - {ENGINE}
STR_NEWS_SHOW_VEHICLE_GROUP_TOOLTIP :{BLACK}Otevřít okno skupiny zaměřené na skupinu vozidla STR_NEWS_SHOW_VEHICLE_GROUP_TOOLTIP :{BLACK}Otevřít okno skupin s předvybranou skupinou daného vozidla
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} už dále nepřijímá {STRING.acc} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} už dále nepřijímá {STRING.acc}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} už dále nepřijímá {STRING.acc} ani {STRING.acc} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} už dále nepřijímá {STRING.acc} ani {STRING.acc}

View File

@@ -1304,7 +1304,7 @@ STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Duur voor het w
STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} seconde{P 0 "" n} STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} seconde{P 0 "" n}
STR_CONFIG_SETTING_HOVER_DELAY :Knopinfo weergeven: {STRING} STR_CONFIG_SETTING_HOVER_DELAY :Knopinfo weergeven: {STRING}
STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Vertraging voordat knopinfo worden weergegeven wanneer je de muis boven een besturingselement houdt. Wanneer de waarde 0 is, wordt knopinfo aan de rechtermuisknop gebonden. STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Vertraging voordat knopinfo worden weergegeven wanneer je de muis boven een besturingselement houdt. Wanneer de waarde 0 is, wordt knopinfo aan de rechtermuisknop gebonden.
STR_CONFIG_SETTING_HOVER_DELAY_VALUE :Muis stilhouden gedurende {COMMA} seconde{P 0 "" n} STR_CONFIG_SETTING_HOVER_DELAY_VALUE :Muis stilhouden gedurende {COMMA} milliseconde{P 0 "" n}
STR_CONFIG_SETTING_HOVER_DELAY_DISABLED :Rechtsklik STR_CONFIG_SETTING_HOVER_DELAY_DISABLED :Rechtsklik
STR_CONFIG_SETTING_POPULATION_IN_LABEL :Inwoneraantal bij stad weergeven: {STRING} STR_CONFIG_SETTING_POPULATION_IN_LABEL :Inwoneraantal bij stad weergeven: {STRING}
STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Aantal inwoners van een stad weergeven bij naam op de kaart STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Aantal inwoners van een stad weergeven bij naam op de kaart

View File

@@ -935,6 +935,7 @@ STR_GAME_OPTIONS_CURRENCY_MXN :Meksikon peso (
STR_GAME_OPTIONS_CURRENCY_NTD :Uusi Taiwanin dollari (TWD) STR_GAME_OPTIONS_CURRENCY_NTD :Uusi Taiwanin dollari (TWD)
STR_GAME_OPTIONS_CURRENCY_CNY :Kiinan renminbi (CNY) STR_GAME_OPTIONS_CURRENCY_CNY :Kiinan renminbi (CNY)
STR_GAME_OPTIONS_CURRENCY_HKD :Hongkongin dollari (HKD) STR_GAME_OPTIONS_CURRENCY_HKD :Hongkongin dollari (HKD)
STR_GAME_OPTIONS_CURRENCY_INR :Intian rupia (INR)
############ end of currency region ############ end of currency region
STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Kulkuneuvot STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Kulkuneuvot
@@ -2165,6 +2166,7 @@ STR_NETWORK_ERROR_WRONG_PASSWORD :{WHITE}Väärä
STR_NETWORK_ERROR_SERVER_FULL :{WHITE}Palvelin on täynnä STR_NETWORK_ERROR_SERVER_FULL :{WHITE}Palvelin on täynnä
STR_NETWORK_ERROR_SERVER_BANNED :{WHITE}Sinut on kielletty palvelimelta STR_NETWORK_ERROR_SERVER_BANNED :{WHITE}Sinut on kielletty palvelimelta
STR_NETWORK_ERROR_KICKED :{WHITE}Sinut potkittiin pihalle palvelimelta STR_NETWORK_ERROR_KICKED :{WHITE}Sinut potkittiin pihalle palvelimelta
STR_NETWORK_ERROR_KICK_MESSAGE :{WHITE}Syy: {STRING}
STR_NETWORK_ERROR_CHEATER :{WHITE}Huijaaminen ei ole sallittua tällä palvelimella STR_NETWORK_ERROR_CHEATER :{WHITE}Huijaaminen ei ole sallittua tällä palvelimella
STR_NETWORK_ERROR_TOO_MANY_COMMANDS :{WHITE}Lähetit liian monta komentoa palvelimelle STR_NETWORK_ERROR_TOO_MANY_COMMANDS :{WHITE}Lähetit liian monta komentoa palvelimelle
STR_NETWORK_ERROR_TIMEOUT_PASSWORD :{WHITE}Käytit liian paljon aikaa salasanan syöttämiseen STR_NETWORK_ERROR_TIMEOUT_PASSWORD :{WHITE}Käytit liian paljon aikaa salasanan syöttämiseen
@@ -2224,6 +2226,7 @@ STR_NETWORK_MESSAGE_GIVE_MONEY :*** {STRING} an
STR_NETWORK_MESSAGE_GAVE_MONEY_AWAY :*** Annoit yhtiölle {1:STRING} {2:CURRENCY_LONG} STR_NETWORK_MESSAGE_GAVE_MONEY_AWAY :*** Annoit yhtiölle {1:STRING} {2:CURRENCY_LONG}
STR_NETWORK_MESSAGE_SERVER_SHUTDOWN :{WHITE}Palvelin sulki istunnon STR_NETWORK_MESSAGE_SERVER_SHUTDOWN :{WHITE}Palvelin sulki istunnon
STR_NETWORK_MESSAGE_SERVER_REBOOT :{WHITE}Palvelin käynnistyy uudelleen...{}Odota, ole hyvä... STR_NETWORK_MESSAGE_SERVER_REBOOT :{WHITE}Palvelin käynnistyy uudelleen...{}Odota, ole hyvä...
STR_NETWORK_MESSAGE_KICKED :{STRING} potkaistiin ulos. Syy: ({STRING})
# Content downloading window # Content downloading window
STR_CONTENT_TITLE :{WHITE}Sisällön lataus STR_CONTENT_TITLE :{WHITE}Sisällön lataus
@@ -3667,10 +3670,10 @@ STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}Olet my
STR_ENGINE_PREVIEW_CAPTION :{WHITE}Viesti kulkuneuvovalmistajalta STR_ENGINE_PREVIEW_CAPTION :{WHITE}Viesti kulkuneuvovalmistajalta
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Olemme juuri suunnitelleet uuden {STRING} oletteko kiinnostunut vuoden yksinoikeutetusta kokeilusta, jotta näemme miten tuote suoriutuu ennen kuin julkistamme sen yleiseen käyttöön? STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Olemme juuri suunnitelleet uuden {STRING} oletteko kiinnostunut vuoden yksinoikeutetusta kokeilusta, jotta näemme miten tuote suoriutuu ennen kuin julkistamme sen yleiseen käyttöön?
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :veturin STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :veturi
STR_ENGINE_PREVIEW_ELRAIL_LOCOMOTIVE :sähköradan veturi STR_ENGINE_PREVIEW_ELRAIL_LOCOMOTIVE :sähköradan veturi
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :yksiraiteisen veturin STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :yksiraiteisen veturi
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev-veturin STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :Maglev-veturi
STR_ENGINE_PREVIEW_ROAD_VEHICLE :ajoneuvon STR_ENGINE_PREVIEW_ROAD_VEHICLE :ajoneuvon
STR_ENGINE_PREVIEW_TRAM_VEHICLE :raitiovaunun STR_ENGINE_PREVIEW_TRAM_VEHICLE :raitiovaunun

View File

@@ -236,6 +236,8 @@ STR_TOOLTIP_FILTER_CRITERIA :{BLACK}Filterkr
STR_BUTTON_SORT_BY :{BLACK}Sortieren nach STR_BUTTON_SORT_BY :{BLACK}Sortieren nach
STR_BUTTON_LOCATION :{BLACK}Standort STR_BUTTON_LOCATION :{BLACK}Standort
STR_BUTTON_RENAME :{BLACK}Umbenennen STR_BUTTON_RENAME :{BLACK}Umbenennen
STR_BUTTON_CATCHMENT :{BLACK}Einzugsgebiet
STR_TOOLTIP_CATCHMENT :{BLACK}Anzeige des Einzugsgebietes umschalten
STR_TOOLTIP_CLOSE_WINDOW :{BLACK}Fenster schließen STR_TOOLTIP_CLOSE_WINDOW :{BLACK}Fenster schließen
STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS :{BLACK}Titelleiste klicken und ziehen, um das Fenster zu verschieben STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS :{BLACK}Titelleiste klicken und ziehen, um das Fenster zu verschieben
@@ -934,6 +936,10 @@ STR_GAME_OPTIONS_CURRENCY_GEL :Georgischer Lar
STR_GAME_OPTIONS_CURRENCY_IRR :Iranischer Rial (IRR) STR_GAME_OPTIONS_CURRENCY_IRR :Iranischer Rial (IRR)
STR_GAME_OPTIONS_CURRENCY_RUB :Russische Rubel (RUB) STR_GAME_OPTIONS_CURRENCY_RUB :Russische Rubel (RUB)
STR_GAME_OPTIONS_CURRENCY_MXN :Mexikanischer Peso (MXN) STR_GAME_OPTIONS_CURRENCY_MXN :Mexikanischer Peso (MXN)
STR_GAME_OPTIONS_CURRENCY_NTD :Neuer Taiwan-Dollar (NTD)
STR_GAME_OPTIONS_CURRENCY_CNY :Chinesischer Yuan (CNY)
STR_GAME_OPTIONS_CURRENCY_HKD :Hongkong-Dollar (HKD)
STR_GAME_OPTIONS_CURRENCY_INR :Indische Rupie (INR)
############ end of currency region ############ end of currency region
STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Fahrzeuge STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Fahrzeuge
@@ -1566,6 +1572,7 @@ STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :Rechenoperation
STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES_HELPTEXT :Maximale Anzahl Rechenschritte, die ein Skript in einer Runde zur Verfügung hat STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES_HELPTEXT :Maximale Anzahl Rechenschritte, die ein Skript in einer Runde zur Verfügung hat
STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY :Maximaler Arbeitsspeicher pro Script: {STRING} STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY :Maximaler Arbeitsspeicher pro Script: {STRING}
STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_HELPTEXT :Wie viel Arbeitsspeicher ein Script maximal benutzen darf bevor es terminiert wird. Diese Wert muss eventuell vergrößert werden für größere Maps. STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_HELPTEXT :Wie viel Arbeitsspeicher ein Script maximal benutzen darf bevor es terminiert wird. Diese Wert muss eventuell vergrößert werden für größere Maps.
STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_VALUE :{COMMA} MiB
STR_CONFIG_SETTING_SHARING_RAIL :Aktiviere Sharing für Eisenbahnnetze: {STRING} STR_CONFIG_SETTING_SHARING_RAIL :Aktiviere Sharing für Eisenbahnnetze: {STRING}
STR_CONFIG_SETTING_SHARING_ROAD :Aktiviere Sharing für Haltestellen, Ladeplätze und Depots: {STRING} STR_CONFIG_SETTING_SHARING_ROAD :Aktiviere Sharing für Haltestellen, Ladeplätze und Depots: {STRING}
@@ -1640,10 +1647,13 @@ STR_CONFIG_SETTING_NEWS_MESSAGES_FULL :Zeitung
STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :Farbige Nachrichten erscheinen ab: {STRING} STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :Farbige Nachrichten erscheinen ab: {STRING}
STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :Jahr in dem die Zeitung in Farbe herausgebracht wird. Vor diesem Jahr erscheint sie in Schwarz-Weiß-Druck STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :Jahr in dem die Zeitung in Farbe herausgebracht wird. Vor diesem Jahr erscheint sie in Schwarz-Weiß-Druck
STR_CONFIG_SETTING_STARTING_YEAR :Startdatum: {STRING} STR_CONFIG_SETTING_STARTING_YEAR :Startdatum: {STRING}
STR_CONFIG_SETTING_ENDING_YEAR_ZERO :Nie
STR_CONFIG_SETTING_SMOOTH_ECONOMY :Feinere Wirtschaft aktivieren (mehrere, kleinere Veränderungen): {STRING} STR_CONFIG_SETTING_SMOOTH_ECONOMY :Feinere Wirtschaft aktivieren (mehrere, kleinere Veränderungen): {STRING}
STR_CONFIG_SETTING_SMOOTH_ECONOMY_HELPTEXT :Wird diese Option ausgewählt, ändert sich die Produktionsmenge der Industrien häufiger, aber dafür in kleineren Schritten. Diese Einstellung hat gewöhnlicherweise KEINEN Effekt, wenn die Industrien von NewGRFs bereitgestellt werden STR_CONFIG_SETTING_SMOOTH_ECONOMY_HELPTEXT :Wird diese Option ausgewählt, ändert sich die Produktionsmenge der Industrien häufiger, aber dafür in kleineren Schritten. Diese Einstellung hat gewöhnlicherweise KEINEN Effekt, wenn die Industrien von NewGRFs bereitgestellt werden
STR_CONFIG_SETTING_ALLOW_SHARES :Handel mit Firmenanteilen erlauben: {STRING} STR_CONFIG_SETTING_ALLOW_SHARES :Handel mit Firmenanteilen erlauben: {STRING}
STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Erlaube das Kaufen und Verkaufen von Firmenanteilen. Firmenanteile sind nur verfügbar für Firmen, die hinreichend lange existieren STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Erlaube das Kaufen und Verkaufen von Firmenanteilen. Firmenanteile sind nur verfügbar für Firmen, die hinreichend lange existieren
STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Minimales Alter einer Firma, um an der Börse gehandelt zu werden: {STRING}
STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Setze das minimale Alter einer Firma, ab dem Andere Firmenanteile dieser Firma kaufen und verkaufen können.
STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Prozentsatz des Profits für Teilstrecken: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Prozentsatz des Profits für Teilstrecken: {STRING}
STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Um das Einkommen der einzelnen Fahrzeuge einer Lieferkette ungefähr abschätzen zu können, wird vom Transporterlös bei Ablieferung einer Fracht der gewählte Prozentsatz den Zulieferfahrzeugen zugeschlagen STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Um das Einkommen der einzelnen Fahrzeuge einer Lieferkette ungefähr abschätzen zu können, wird vom Transporterlös bei Ablieferung einer Fracht der gewählte Prozentsatz den Zulieferfahrzeugen zugeschlagen
STR_CONFIG_SETTING_SIMULATE_SIGNALS :Simuliere Signale in Tunneln und Brücken aller: {STRING} STR_CONFIG_SETTING_SIMULATE_SIGNALS :Simuliere Signale in Tunneln und Brücken aller: {STRING}
@@ -3162,6 +3172,7 @@ STR_FRAMERATE_SPEED_FACTOR :{BLACK}Aktuelle
STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK}Wie schnell das Spiel aktuell läuft, verglichen mit der erwarteten Geschwindigkeit bei normaler Simulationsrate. STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK}Wie schnell das Spiel aktuell läuft, verglichen mit der erwarteten Geschwindigkeit bei normaler Simulationsrate.
STR_FRAMERATE_CURRENT :{WHITE}Momentan STR_FRAMERATE_CURRENT :{WHITE}Momentan
STR_FRAMERATE_AVERAGE :{WHITE}Durchschnitt STR_FRAMERATE_AVERAGE :{WHITE}Durchschnitt
STR_FRAMERATE_MEMORYUSE :{WHITE}Arbeitsspeicher
STR_FRAMERATE_DATA_POINTS :{BLACK}Daten basierend auf {COMMA} Messungen STR_FRAMERATE_DATA_POINTS :{BLACK}Daten basierend auf {COMMA} Messungen
STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL} ms STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL} ms
STR_FRAMERATE_MS_WARN :{YELLOW}{DECIMAL} ms STR_FRAMERATE_MS_WARN :{YELLOW}{DECIMAL} ms
@@ -3169,6 +3180,8 @@ STR_FRAMERATE_MS_BAD :{RED}{DECIMAL}
STR_FRAMERATE_FPS_GOOD :{LTBLUE}{DECIMAL} Bilder/s STR_FRAMERATE_FPS_GOOD :{LTBLUE}{DECIMAL} Bilder/s
STR_FRAMERATE_FPS_WARN :{YELLOW}{DECIMAL} Bilder/s STR_FRAMERATE_FPS_WARN :{YELLOW}{DECIMAL} Bilder/s
STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL} Bilder/s STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL} Bilder/s
STR_FRAMERATE_BYTES_GOOD :{LTBLUE}{BYTES}
STR_FRAMERATE_BYTES_WARN :{YELLOW}{BYTES}
STR_FRAMERATE_BYTES_BAD :{RED}{BYTES} STR_FRAMERATE_BYTES_BAD :{RED}{BYTES}
STR_FRAMERATE_GRAPH_MILLISECONDS :{TINY_FONT}{COMMA} ms STR_FRAMERATE_GRAPH_MILLISECONDS :{TINY_FONT}{COMMA} ms
STR_FRAMERATE_GRAPH_SECONDS :{TINY_FONT}{COMMA} s STR_FRAMERATE_GRAPH_SECONDS :{TINY_FONT}{COMMA} s
@@ -3612,6 +3625,7 @@ STR_SUBSIDIES_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Klick au
# Story book window # Story book window
STR_STORY_BOOK_CAPTION :{WHITE}Chronik für {COMPANY} STR_STORY_BOOK_CAPTION :{WHITE}Chronik für {COMPANY}
STR_STORY_BOOK_SPECTATOR_CAPTION :{WHITE}Allgemeine Chronik STR_STORY_BOOK_SPECTATOR_CAPTION :{WHITE}Allgemeine Chronik
STR_STORY_BOOK_SPECTATOR :Allgemeine Chronik
STR_STORY_BOOK_TITLE :{YELLOW}{STRING} STR_STORY_BOOK_TITLE :{YELLOW}{STRING}
STR_STORY_BOOK_GENERIC_PAGE_ITEM :Seite {NUM} STR_STORY_BOOK_GENERIC_PAGE_ITEM :Seite {NUM}
STR_STORY_BOOK_SEL_PAGE_TOOLTIP :{BLACK}Springt zur gewünschten Seite, wenn diese im Auswahlmenü angeklickt wird STR_STORY_BOOK_SEL_PAGE_TOOLTIP :{BLACK}Springt zur gewünschten Seite, wenn diese im Auswahlmenü angeklickt wird
@@ -4015,6 +4029,7 @@ STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Neue Einschiene
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Neue Magnetbahnfahrzeuge STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Neue Magnetbahnfahrzeuge
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Neue Fahrzeuge STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Neue Fahrzeuge
STR_BUY_VEHICLE_TRAM_VEHICLE_CAPTION :Neue Straßenbahnen
############ range for vehicle availability starts ############ range for vehicle availability starts
STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Neue Schienenfahrzeuge STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Neue Schienenfahrzeuge
@@ -4059,6 +4074,7 @@ STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_BUTTON :{BLACK}Fahrzeug
STR_BUY_VEHICLE_SHIP_BUY_VEHICLE_BUTTON :{BLACK}Schiff kaufen STR_BUY_VEHICLE_SHIP_BUY_VEHICLE_BUTTON :{BLACK}Schiff kaufen
STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_BUTTON :{BLACK}Flugzeug kaufen STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_BUTTON :{BLACK}Flugzeug kaufen
STR_BUY_VEHICLE_SHIP_BUY_REFIT_VEHICLE_BUTTON :{BLACK}Schiff kaufen und umrüsten
STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_TOOLTIP :{BLACK}Angewähltes Fahrzeug kaufen. Shift+Klick zeigt einen Kostenvoranschlag STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_TOOLTIP :{BLACK}Angewähltes Fahrzeug kaufen. Shift+Klick zeigt einen Kostenvoranschlag
STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_TOOLTIP :{BLACK}Ausgewähltes Fahrzeug kaufen. Shift+Klick zeigt einen Kostenvoranschlag STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_TOOLTIP :{BLACK}Ausgewähltes Fahrzeug kaufen. Shift+Klick zeigt einen Kostenvoranschlag
@@ -4222,6 +4238,7 @@ STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Umschalt
STR_REPLACE_ENGINES :Schienenfahrzeuge STR_REPLACE_ENGINES :Schienenfahrzeuge
STR_REPLACE_WAGONS :Waggons STR_REPLACE_WAGONS :Waggons
STR_REPLACE_ALL_RAILTYPE :Alle Schienenfahrzeuge STR_REPLACE_ALL_RAILTYPE :Alle Schienenfahrzeuge
STR_REPLACE_ALL_ROADTYPE :Alle Straßenfahrzeuge
STR_REPLACE_HELP_RAILTYPE :{BLACK}Gleistyp auswählen, für den Loks ersetzt werden sollen STR_REPLACE_HELP_RAILTYPE :{BLACK}Gleistyp auswählen, für den Loks ersetzt werden sollen
STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Hier wird angezeigt, gegen welches Fahrzeug das auf der linken Seite gewählte ersetzt wird STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Hier wird angezeigt, gegen welches Fahrzeug das auf der linken Seite gewählte ersetzt wird
@@ -4791,6 +4808,9 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Ausgewä
STR_AI_LIST_CANCEL :{BLACK}Abbrechen STR_AI_LIST_CANCEL :{BLACK}Abbrechen
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Skript nicht wechseln STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Skript nicht wechseln
STR_SCREENSHOT_CAPTION :{WHITE}Sreenshot erzeugen
STR_SCREENSHOT_SCREENSHOT :{BLACK}Normaler Screenshot
STR_SCREENSHOT_WORLD_SCREENSHOT :{BLACK}Screenshot des ganzen Spielfeldes
# AI Parameters # AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parameter STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parameter
@@ -5092,6 +5112,7 @@ STR_ERROR_NO_SUITABLE_RAILROAD_TRACK :{WHITE}Keine ge
STR_ERROR_MUST_REMOVE_RAILROAD_TRACK :{WHITE}Gleise müssen erst abgerissen werden STR_ERROR_MUST_REMOVE_RAILROAD_TRACK :{WHITE}Gleise müssen erst abgerissen werden
STR_ERROR_CROSSING_ON_ONEWAY_ROAD :{WHITE}Einbahnstraße oder blockierter Weg STR_ERROR_CROSSING_ON_ONEWAY_ROAD :{WHITE}Einbahnstraße oder blockierter Weg
STR_ERROR_CROSSING_DISALLOWED_RAIL :{WHITE}Bahnübergänge sind für diesen Schienentyp nicht erlaubt STR_ERROR_CROSSING_DISALLOWED_RAIL :{WHITE}Bahnübergänge sind für diesen Schienentyp nicht erlaubt
STR_ERROR_CROSSING_DISALLOWED_ROAD :{WHITE}Bahnübergänge sind für diesen Straßentyp nicht erlaubt
STR_ERROR_CAN_T_BUILD_SIGNALS_HERE :{WHITE}Signal kann hier nicht aufgestellt werden... STR_ERROR_CAN_T_BUILD_SIGNALS_HERE :{WHITE}Signal kann hier nicht aufgestellt werden...
STR_ERROR_CAN_T_BUILD_RAILROAD_TRACK :{WHITE}Gleise können hier nicht verlegt werden... STR_ERROR_CAN_T_BUILD_RAILROAD_TRACK :{WHITE}Gleise können hier nicht verlegt werden...
STR_ERROR_CAN_T_REMOVE_RAILROAD_TRACK :{WHITE}Gleise können nicht abgerissen werden... STR_ERROR_CAN_T_REMOVE_RAILROAD_TRACK :{WHITE}Gleise können nicht abgerissen werden...
@@ -5113,7 +5134,10 @@ STR_ERROR_CAN_T_REMOVE_ROAD_FROM :{WHITE}Diese St
STR_ERROR_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}Straßenbahngleise können hier nicht entfernt werden... STR_ERROR_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}Straßenbahngleise können hier nicht entfernt werden...
STR_ERROR_THERE_IS_NO_ROAD :{WHITE}...hier ist keine Straße STR_ERROR_THERE_IS_NO_ROAD :{WHITE}...hier ist keine Straße
STR_ERROR_THERE_IS_NO_TRAMWAY :{WHITE}...hier ist kein Straßenbahngleis STR_ERROR_THERE_IS_NO_TRAMWAY :{WHITE}...hier ist kein Straßenbahngleis
STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}Straßentyp kann hier nicht geändert werden...
STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}Straßenbahngleistyp kann hier nicht geändert werden... STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}Straßenbahngleistyp kann hier nicht geändert werden...
STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}Keine geeigneten Straßenbahnschienen
STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... inkompatible Straßenbahngleise
# Waterway construction errors # Waterway construction errors
STR_ERROR_CAN_T_BUILD_CANALS :{WHITE}Kanal kann hier nicht gebaut werden... STR_ERROR_CAN_T_BUILD_CANALS :{WHITE}Kanal kann hier nicht gebaut werden...

View File

@@ -937,6 +937,7 @@ STR_GAME_OPTIONS_CURRENCY_MXN :Peso messicano
STR_GAME_OPTIONS_CURRENCY_NTD :Nuovo dollaro taiwanese (NTD) STR_GAME_OPTIONS_CURRENCY_NTD :Nuovo dollaro taiwanese (NTD)
STR_GAME_OPTIONS_CURRENCY_CNY :Renminbi cinese (CNY) STR_GAME_OPTIONS_CURRENCY_CNY :Renminbi cinese (CNY)
STR_GAME_OPTIONS_CURRENCY_HKD :Dollaro di Hong Kong (HKD) STR_GAME_OPTIONS_CURRENCY_HKD :Dollaro di Hong Kong (HKD)
STR_GAME_OPTIONS_CURRENCY_INR :Rupia indiana (INR)
############ end of currency region ############ end of currency region
STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Automezzi STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Automezzi

View File

@@ -857,7 +857,7 @@ STR_ABOUT_MENU_SEPARATOR :
STR_ABOUT_MENU_TOGGLE_CONSOLE :Przełącz konsolę STR_ABOUT_MENU_TOGGLE_CONSOLE :Przełącz konsolę
STR_ABOUT_MENU_AI_DEBUG :Debugowanie SI / Game Script STR_ABOUT_MENU_AI_DEBUG :Debugowanie SI / Game Script
STR_ABOUT_MENU_SCREENSHOT :Zrzut ekranu STR_ABOUT_MENU_SCREENSHOT :Zrzut ekranu
STR_ABOUT_MENU_SHOW_FRAMERATE :Pokaż ilość klatek na sekundę STR_ABOUT_MENU_SHOW_FRAMERATE :Pokaż liczbę klatek na sekundę
STR_ABOUT_MENU_ABOUT_OPENTTD :Info o 'OpenTTD' STR_ABOUT_MENU_ABOUT_OPENTTD :Info o 'OpenTTD'
STR_ABOUT_MENU_SPRITE_ALIGNER :Wyrównywanie sprite'ów STR_ABOUT_MENU_SPRITE_ALIGNER :Wyrównywanie sprite'ów
STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Włącz/wyłącz ramki STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Włącz/wyłącz ramki
@@ -1586,11 +1586,11 @@ STR_CONFIG_SETTING_PERCENTAGE :{COMMA}%
STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS :Nachylenie stoków dla pojazdów drogowych: {STRING} STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS :Nachylenie stoków dla pojazdów drogowych: {STRING}
STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS_HELPTEXT :Pochylenie pola stoku dla pojazdów drogowych. Wyższa wartość utrudnia podjazd pod górę STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS_HELPTEXT :Pochylenie pola stoku dla pojazdów drogowych. Wyższa wartość utrudnia podjazd pod górę
STR_CONFIG_SETTING_FORBID_90_DEG :Zabroń pociągom skręcać o 90 stopni: {STRING} STR_CONFIG_SETTING_FORBID_90_DEG :Zabroń pociągom skręcać o 90 stopni: {STRING}
STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :90-stopniowy zakręt występuje wtedy, gdy bezpośrednio po poziomym odcinku toru występuje odcinek pionowy na sąsiadującym polu zmuszając pociąg do skrętu o 90 stopni pokonując krawędź pola zamiast normalnego, 45-stopniowego skrętu w innych kombinacjach torów. STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :90-stopniowy zakręt występuje wtedy, gdy bezpośrednio po poziomym odcinku toru występuje odcinek pionowy (lub na odwrót), zmuszając pociąg do ostrzejszego skrętu (zamiast normalnego, 45-stopniowego skrętu w innych kombinacjach torów)
STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Pozwól na łączenie stacji nie sąsiadujących bezpośrednio: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Pozwól na łączenie stacji nie sąsiadujących bezpośrednio: {STRING}
STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Pozwalaj na dodawanie części stacji nie stykających się ze sobą. Naciśnij Ctrl przed postawieniem nowej części STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Pozwalaj na dodawanie części stacji nie stykających się ze sobą. Naciśnij Ctrl przed postawieniem nowej części
STR_CONFIG_SETTING_INFLATION :Inflacja: {STRING} STR_CONFIG_SETTING_INFLATION :Inflacja: {STRING}
STR_CONFIG_SETTING_INFLATION_HELPTEXT :Włącz inflację w ekonomii, gdzie koszty rosną nieco szybciej niż zapłaty STR_CONFIG_SETTING_INFLATION_HELPTEXT :Włącz lub wyłącz inflację (sytuacja ekonomiczna, w związku z którą koszty rosną nieco szybciej niż zapłaty)
STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Maksymalna długość mostu: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH :Maksymalna długość mostu: {STRING}
STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Maksymalna długość budowanych mostów STR_CONFIG_SETTING_MAX_BRIDGE_LENGTH_HELPTEXT :Maksymalna długość budowanych mostów
STR_CONFIG_SETTING_MAX_BRIDGE_HEIGHT :Maksymalna wysokość mostu: {STRING} STR_CONFIG_SETTING_MAX_BRIDGE_HEIGHT :Maksymalna wysokość mostu: {STRING}
@@ -1598,7 +1598,7 @@ STR_CONFIG_SETTING_MAX_BRIDGE_HEIGHT_HELPTEXT :Maksymalna wyso
STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Maksymalna długość tunelu: {STRING} STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH :Maksymalna długość tunelu: {STRING}
STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH_HELPTEXT :Maksymalna długość budowanych tuneli STR_CONFIG_SETTING_MAX_TUNNEL_LENGTH_HELPTEXT :Maksymalna długość budowanych tuneli
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD :Budowa przedsiębiorstw wydobywczych: {STRING} STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD :Budowa przedsiębiorstw wydobywczych: {STRING}
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_HELPTEXT :Metoda finansowania podstawowego przemysłu. 'żadne' oznacza brak możliwości finansowania czegokolwiek, 'obiecujące' oznacza, że finansowanie jest możliwe, ale konstrukcja pojawi się w losowym miejscu na mapie oraz losowo budowa może zakończyć się porażką, 'jak inne gałęzi przemysłu' oznacza, że przemysł wydobywczy może być budowany tak jak fabryki przetwórcze, w dowolnym miejscu STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_HELPTEXT :Metoda finansowania podstawowych przedsiębiorstw. 'Niedostępna' oznacza brak możliwości finansowania czegokolwiek, 'poszukiwania' oznacza, że finansowanie jest możliwe, ale konstrukcja pojawi się w losowym miejscu na mapie (oraz losowo budowa może zakończyć się porażką), 'jak inne przedsiębiorstwa' oznacza, że przemysł wydobywczy może być budowany tak jak fabryki przetwórcze, w dowolnym miejscu
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE :Niedostępna STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE :Niedostępna
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :Jak inne przedsiębiorstwa STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :Jak inne przedsiębiorstwa
STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :Poszukiwania STR_CONFIG_SETTING_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :Poszukiwania
@@ -1614,7 +1614,7 @@ STR_CONFIG_SETTING_SIGNALSIDE_RIGHT :Po prawej
STR_CONFIG_SETTING_SHOWFINANCES :Pokazuj okno finansów na koniec roku: {STRING} STR_CONFIG_SETTING_SHOWFINANCES :Pokazuj okno finansów na koniec roku: {STRING}
STR_CONFIG_SETTING_SHOWFINANCES_HELPTEXT :Jeśli włączone, to okienko finansowe pokazuje się na zakończenie każdego roku, by ułatwić śledzenie sytuacji finansowej firmy STR_CONFIG_SETTING_SHOWFINANCES_HELPTEXT :Jeśli włączone, to okienko finansowe pokazuje się na zakończenie każdego roku, by ułatwić śledzenie sytuacji finansowej firmy
STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT :Nowe polecenia są domyślnie 'bez zatrzymywania się': {STRING} STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT :Nowe polecenia są domyślnie 'bez zatrzymywania się': {STRING}
STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT_HELPTEXT :Normalnie pojazd zatrzyma się na każdej stacji, przez którą przejeżdża. Włączając tę opcję, pojazd przejedzie do swojego celu bez zatrzymywania się. Zwróć uwagę na to, że to ustawienie ma wpływ tylko na nowe rozkazy. Indywidualne rozkazy mogą być ustalane bez względu na wartość tej opcji STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT_HELPTEXT :Normalnie pojazd zatrzyma się na każdej stacji, przez którą przejeżdża. Po włączeniu tej opcji, pojazd przejedzie do swojego celu bez zatrzymywania się. Zwróć uwagę na to, że to ustawienie ma wpływ tylko na nowe polecenia. Pojedyncze polecenia mogą być ustalane bez względu na wartość tej opcji
STR_CONFIG_SETTING_STOP_LOCATION :Rozkazy nowego pociągu kończą się domyślnie na {STRING} peronu STR_CONFIG_SETTING_STOP_LOCATION :Rozkazy nowego pociągu kończą się domyślnie na {STRING} peronu
STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Miejsce, w którym pociąg domyślnie zatrzyma się na peronie. 'Bliższy koniec' oznacza blisko kierunku przyjazdu, 'środek' oznacza środkową część peronu, a 'daleki koniec' oznacza daleko od kierunku przyjazdu. Zapamiętaj, że to ustawienie określa tylko domyślną wartość dla nowych rozkazów. Wszystkie rozkazy mogą być zmienione, bez względu na wartość ustawienia STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Miejsce, w którym pociąg domyślnie zatrzyma się na peronie. 'Bliższy koniec' oznacza blisko kierunku przyjazdu, 'środek' oznacza środkową część peronu, a 'daleki koniec' oznacza daleko od kierunku przyjazdu. Zapamiętaj, że to ustawienie określa tylko domyślną wartość dla nowych rozkazów. Wszystkie rozkazy mogą być zmienione, bez względu na wartość ustawienia
STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :początku STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :początku
@@ -1647,9 +1647,9 @@ STR_CONFIG_SETTING_PLANE_CRASHES_NONE :Brak*
STR_CONFIG_SETTING_PLANE_CRASHES_REDUCED :Zredukowana STR_CONFIG_SETTING_PLANE_CRASHES_REDUCED :Zredukowana
STR_CONFIG_SETTING_PLANE_CRASHES_NORMAL :Normalna STR_CONFIG_SETTING_PLANE_CRASHES_NORMAL :Normalna
STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Pozwól na budowę przystanków przelotowych na drogach miejskich: {STRING} STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Pozwól na budowę przystanków przelotowych na drogach miejskich: {STRING}
STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Pozwalaj budować przystanki przelotowe na drogach własnościowych miast STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD_HELPTEXT :Pozwalaj budować przystanki przelotowe na drogach będących własnością miast
STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Pozwól na przejazd przez przystanki należące do przeciwników: {STRING} STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD :Pozwól na budowę przystanków przelotowych na drogach innych firm: {STRING}
STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Pozwalaj budować przystanki przelotowe na drogach własnościowych innych graczy STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Pozwalaj budować przystanki przelotowe na drogach będących własnością innych graczy
STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Zmiana tego ustawienia nie jest możliwa, gdy znajdują się tutaj pojazdy STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Zmiana tego ustawienia nie jest możliwa, gdy znajdują się tutaj pojazdy
STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Utrzymywanie infrastruktury: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Utrzymywanie infrastruktury: {STRING}
STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Kiedy włączone, utrzymanie infrastruktury jest naliczane w kosztach. Koszty wzrastają nadproporcjonalnie do rozmiarów sieci połączeń, a więc dotykają bardziej duże niż małe firmy STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Kiedy włączone, utrzymanie infrastruktury jest naliczane w kosztach. Koszty wzrastają nadproporcjonalnie do rozmiarów sieci połączeń, a więc dotykają bardziej duże niż małe firmy
@@ -1690,8 +1690,8 @@ STR_CONFIG_SETTING_POPULATION_IN_LABEL :Pokaż populacj
STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Wyświetlaj populację miast w ich etykietach na mapie STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Wyświetlaj populację miast w ich etykietach na mapie
STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Grubość linii na wykresie: {STRING} STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Grubość linii na wykresie: {STRING}
STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Grubość linii na wykresach. Cienka linia jest dokładniejsza, grubsza linia jest bardziej widoczna a kolory łatwiejsze do odróżnienia STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Grubość linii na wykresach. Cienka linia jest dokładniejsza, grubsza linia jest bardziej widoczna a kolory łatwiejsze do odróżnienia
STR_CONFIG_SETTING_SHOW_NEWGRF_NAME :Pokaż nazwę tego NewGRF'a w oknie pojazdu budowlanego: {STRING} STR_CONFIG_SETTING_SHOW_NEWGRF_NAME :Pokaż nazwę NewGRF'a w oknie budowy pojazdu: {STRING}
STR_CONFIG_SETTING_SHOW_NEWGRF_NAME_HELPTEXT :Dodaj linię do okna pojazdów budowlanych, pokazujących z którego NewGRF wybrany pojazd pochodzi. STR_CONFIG_SETTING_SHOW_NEWGRF_NAME_HELPTEXT :Dodaj linię do okna budowy pojazdów, pokazujących z którego NewGRF'a wybrany pojazd pochodzi.
STR_CONFIG_SETTING_LANDSCAPE :Krajobraz: {STRING} STR_CONFIG_SETTING_LANDSCAPE :Krajobraz: {STRING}
STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :Krajobrazy określają podstawowe scenariusze gry, które różnią się przedsiębiorstwami, towarami i wymogami dla rozwoju miast. Pliki NewGRF i skrypty umożliwiają dokładniejszą kontrolę warunków rozgrywki STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :Krajobrazy określają podstawowe scenariusze gry, które różnią się przedsiębiorstwami, towarami i wymogami dla rozwoju miast. Pliki NewGRF i skrypty umożliwiają dokładniejszą kontrolę warunków rozgrywki
@@ -1752,8 +1752,8 @@ STR_CONFIG_SETTING_SMOOTH_SCROLLING :Wygładź przes
STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Zdecyduj, jak główny widok przesuwa się do konkretnej lokacji, gdy klikasz na mini-mapie lub gdy używasz komendy do przesunięcia do danego obiektu na mapie. Kiedy włączone, widok przesuwa się płynnie, kiedy wyłączone, następuje skok bezpośrednio do wybranego miejsca STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Zdecyduj, jak główny widok przesuwa się do konkretnej lokacji, gdy klikasz na mini-mapie lub gdy używasz komendy do przesunięcia do danego obiektu na mapie. Kiedy włączone, widok przesuwa się płynnie, kiedy wyłączone, następuje skok bezpośrednio do wybranego miejsca
STR_CONFIG_SETTING_MEASURE_TOOLTIP :Pokaż dymek z pomiarem podczas używania różnych narzędzi: {STRING} STR_CONFIG_SETTING_MEASURE_TOOLTIP :Pokaż dymek z pomiarem podczas używania różnych narzędzi: {STRING}
STR_CONFIG_SETTING_MEASURE_TOOLTIP_HELPTEXT :Wyświetlaj długość budowanych odcinków i różnicę wysokości przy przeciąganiu w trakcie operacji budowlanych STR_CONFIG_SETTING_MEASURE_TOOLTIP_HELPTEXT :Wyświetlaj długość budowanych odcinków i różnicę wysokości przy przeciąganiu w trakcie operacji budowlanych
STR_CONFIG_SETTING_LIVERIES :Pokaż barwy firm wg typu pojazdu: {STRING} STR_CONFIG_SETTING_LIVERIES :Pokaż barwy pojazdów wg grup: {STRING}
STR_CONFIG_SETTING_LIVERIES_HELPTEXT :Kontrolka stosowania schematu kolorów pojazdów specyficznych dla typów pojazdów (w przeciwieństwie do specyfiki firmy) STR_CONFIG_SETTING_LIVERIES_HELPTEXT :Wyłączenie tego ustawienia powoduje, że jeśli gracz ustawił, oprócz koloru firmy, różne kolory dla różnych grup pojazdów, kolory te nie są widoczne (pokazywany jest w ich miejscu domyślny kolor firmy)
STR_CONFIG_SETTING_LIVERIES_NONE :brak STR_CONFIG_SETTING_LIVERIES_NONE :brak
STR_CONFIG_SETTING_LIVERIES_OWN :własnej firmy STR_CONFIG_SETTING_LIVERIES_OWN :własnej firmy
STR_CONFIG_SETTING_LIVERIES_ALL :wszystkich firm STR_CONFIG_SETTING_LIVERIES_ALL :wszystkich firm
@@ -1794,7 +1794,7 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31
STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Automatycznie włącz pauzę przy rozpoczęciu nowej gry: {STRING} STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME :Automatycznie włącz pauzę przy rozpoczęciu nowej gry: {STRING}
STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Kiedy włączone, gra zostanie automatycznie zatrzymana na samym początku, pozwalając na lepsze rozpoznanie mapy STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Kiedy włączone, gra zostanie automatycznie zatrzymana na samym początku, pozwalając na lepsze rozpoznanie mapy
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Zezwól w czasie wstrzymania gry na: {STRING} STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Zezwól w czasie wstrzymania gry na: {STRING}
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_HELPTEXT :Wybierz, jakich akcji można dokonywac, gdy gra jest wstrzymana STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_HELPTEXT :Wybierz, jakich akcji można dokonywać, gdy gra jest wstrzymana (włączona jest pauza)
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :Brak działań STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :Brak działań
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :Wszystkie niezwiązane z konstrukcją STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :Wszystkie niezwiązane z konstrukcją
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_LANDSCAPING :Wszystkie oprócz modyfikowania terenu STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_LANDSCAPING :Wszystkie oprócz modyfikowania terenu
@@ -1953,12 +1953,12 @@ STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI_HELPTEXT :Wyświetlaj okn
STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE :Domyślny typ sygnalizatorów: {STRING} STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE :Domyślny typ sygnalizatorów: {STRING}
STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE_HELPTEXT :Domyślny typ semaforów STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE_HELPTEXT :Domyślny typ semaforów
STR_CONFIG_SETTING_DEFAULT_SIGNAL_NORMAL :sygnalizatory blokowe STR_CONFIG_SETTING_DEFAULT_SIGNAL_NORMAL :sygnalizatory blokowe
STR_CONFIG_SETTING_DEFAULT_SIGNAL_PBS :sygnalizatory jazdy STR_CONFIG_SETTING_DEFAULT_SIGNAL_PBS :sygnalizatory trasy
STR_CONFIG_SETTING_DEFAULT_SIGNAL_PBSOWAY :sygnalizatory jazdy - jednokierunkowe STR_CONFIG_SETTING_DEFAULT_SIGNAL_PBSOWAY :sygnalizatory trasy - jednokierunkowe
STR_CONFIG_SETTING_CYCLE_SIGNAL_TYPES :Przełączaj typy sygnalizatorów: {STRING} STR_CONFIG_SETTING_CYCLE_SIGNAL_TYPES :Przełączaj typy sygnalizatorów: {STRING}
STR_CONFIG_SETTING_CYCLE_SIGNAL_TYPES_HELPTEXT :Wybierz, między jakimi typami semaforów przełączać, po naciśnięciu Ctrl+klik przy budowaniu semaforów STR_CONFIG_SETTING_CYCLE_SIGNAL_TYPES_HELPTEXT :Wybierz, między jakimi typami semaforów przełączać, po naciśnięciu Ctrl+klik przy budowaniu semaforów
STR_CONFIG_SETTING_CYCLE_SIGNAL_NORMAL :tylko sygnalizatory blokowe STR_CONFIG_SETTING_CYCLE_SIGNAL_NORMAL :tylko sygnalizatory blokowe
STR_CONFIG_SETTING_CYCLE_SIGNAL_PBS :tylko sygnalizatory jazdy STR_CONFIG_SETTING_CYCLE_SIGNAL_PBS :tylko sygnalizatory trasy
STR_CONFIG_SETTING_CYCLE_SIGNAL_ALL :wszystkie STR_CONFIG_SETTING_CYCLE_SIGNAL_ALL :wszystkie
STR_CONFIG_SETTING_TOWN_LAYOUT :Układ dróg dla nowych miast: {STRING} STR_CONFIG_SETTING_TOWN_LAYOUT :Układ dróg dla nowych miast: {STRING}
@@ -2038,7 +2038,7 @@ STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT :"Symetryczna" o
STR_CONFIG_SETTING_DISTRIBUTION_MAIL :Tryb dystrybucji dla poczty: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_MAIL :Tryb dystrybucji dla poczty: {STRING}
STR_CONFIG_SETTING_DISTRIBUTION_MAIL_HELPTEXT :"Symetryczna" oznacza, że mniej więcej tyle samo poczty będzie wysłane ze stacji A do stacji B, co z B do A. "Asymetryczna" znaczy, że narzucone ilości poczty mogą być wysłane w obu kierunkach. "Ręczna" oznacza, że nie będzie automatycznej dystrybucji dla poczty. STR_CONFIG_SETTING_DISTRIBUTION_MAIL_HELPTEXT :"Symetryczna" oznacza, że mniej więcej tyle samo poczty będzie wysłane ze stacji A do stacji B, co z B do A. "Asymetryczna" znaczy, że narzucone ilości poczty mogą być wysłane w obu kierunkach. "Ręczna" oznacza, że nie będzie automatycznej dystrybucji dla poczty.
STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED :Typ dystrybucji dla CHRONIONEJ klasy towarów: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED :Typ dystrybucji dla CHRONIONEJ klasy towarów: {STRING}
STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED_HELPTEXT :CHRONIONA klasa towarów zawiera kosztowności w umiarkowanym, diamenty w tropikalnym lub złoto w arktycznym klimacie. NewGRF-y mogą to zmieniać. "Symetryczna" oznacza, że mniej więcej tyle samo towaru będzie wysłane ze stacji A do stacji B, co z B do A. "Asymetryczna" znaczy, że narzucone ilości towarów mogą być wysłane w obu kierunkach. "Ręczna" oznacza, że nie będzie automatycznej dystrybucji dla tych towarów. Rekomendowane ustawienie to asymetryczne lub ręczne dla klimatu arktycznego, ponieważ banki nie będą wysyłać złota spowrotem do kopalni złota. Dla umiarkowanego i tropikalnego klimatu możesz także wybrać symetryczne, ponieważ banki będą wysyłać kosztowności spowrotem do banku, z którego pochodzi część kosztowności. STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED_HELPTEXT :CHRONIONA klasa towarów zawiera kosztowności w umiarkowanym, diamenty w tropikalnym lub złoto w arktycznym klimacie. NewGRF-y mogą to zmieniać. "Symetryczna" oznacza, że mniej więcej tyle samo towaru będzie wysłane ze stacji A do stacji B, co z B do A. "Asymetryczna" znaczy, że narzucone ilości towarów mogą być wysłane w obu kierunkach. "Manualna" oznacza, że nie będzie automatycznej dystrybucji dla tych towarów. Rekomendowane ustawienie to asymetryczne lub ręczne dla klimatu arktycznego, ponieważ banki nie będą wysyłać złota spowrotem do kopalni złota. Dla umiarkowanego i tropikalnego klimatu możesz także wybrać symetryczne, ponieważ banki będą wysyłać kosztowności spowrotem do banku, z którego pochodzi część kosztowności.
STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT :Tryb dystrybucji dla innych typów ładunku: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT :Tryb dystrybucji dla innych typów ładunku: {STRING}
STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT :"asymetrycznie" oznacza, że określone ilości ładunków mogą być wysłane w obu kierunkach. "manualnie" oznacza, że dystrybucja nie będzie odbywać się automatycznie. STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT :"asymetrycznie" oznacza, że określone ilości ładunków mogą być wysłane w obu kierunkach. "manualnie" oznacza, że dystrybucja nie będzie odbywać się automatycznie.
STR_CONFIG_SETTING_LINKGRAPH_ACCURACY :Dokładność dystrybucji: {STRING} STR_CONFIG_SETTING_LINKGRAPH_ACCURACY :Dokładność dystrybucji: {STRING}
@@ -2046,7 +2046,7 @@ STR_CONFIG_SETTING_LINKGRAPH_ACCURACY_HELPTEXT :Im wyżej ustaw
STR_CONFIG_SETTING_DEMAND_DISTANCE :Wpływ odległości na dystrybucję: {STRING} STR_CONFIG_SETTING_DEMAND_DISTANCE :Wpływ odległości na dystrybucję: {STRING}
STR_CONFIG_SETTING_DEMAND_DISTANCE_HELPTEXT :Jeśli ładunki z jednej stacji trafiają na kilka różnych stacji, na ich dystrybucję wpływ ma odległość. Im wyższą wartość ustawisz, tym bliższe stacje będą preferowane. Zerowa wartość ustawienia sprawi, że odległość nie będzie wpływała na podział dystrybucji. STR_CONFIG_SETTING_DEMAND_DISTANCE_HELPTEXT :Jeśli ładunki z jednej stacji trafiają na kilka różnych stacji, na ich dystrybucję wpływ ma odległość. Im wyższą wartość ustawisz, tym bliższe stacje będą preferowane. Zerowa wartość ustawienia sprawi, że odległość nie będzie wpływała na podział dystrybucji.
STR_CONFIG_SETTING_DEMAND_SIZE :Ilość powracającego ładunku dla trybu symetrycznego: {STRING} STR_CONFIG_SETTING_DEMAND_SIZE :Ilość powracającego ładunku dla trybu symetrycznego: {STRING}
STR_CONFIG_SETTING_DEMAND_SIZE_HELPTEXT :Ustawiając to na mniej niż 100% powoduje, że symetryczna dystrybucja zachowuje się podobnie do asymetrycznej. Mniej towaru będzie zwróconego jeśli pewna ilość zostanie wysłana do stacji. Jeśli ustawisz to na 0%, to symetryczna dystrybucja zachowuje się jak asymetryczna. STR_CONFIG_SETTING_DEMAND_SIZE_HELPTEXT :Ustawienie tego na mniej niż 100% powoduje, że symetryczna dystrybucja zachowuje się podobnie do asymetrycznej. Mniej towaru będzie zwróconego jeśli pewna ilość zostanie wysłana do stacji. Jeśli ustawisz to na 0%, to symetryczna dystrybucja zachowuje się jak asymetryczna.
STR_CONFIG_SETTING_SHORT_PATH_SATURATION :Zapełnienie krótkich tras przed wybraniem tras o dużej przepustowości: {STRING} STR_CONFIG_SETTING_SHORT_PATH_SATURATION :Zapełnienie krótkich tras przed wybraniem tras o dużej przepustowości: {STRING}
STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Często są różne trasy pomiędzy dwoma stacjami. Cargodist zapełni najpierw najkrótsza trasę, później wykorzystuje kolejną z najkrótszych tras aż ta jest pełna itd. Zapełnienie jest określone przez obliczenie pojemności wraz z planowanym użyciem. Kiedy już wszystkie trasy są zapełnione, a istnieje wciąż zapotrzebowanie, przepełni wszystkie trasy, preferując jednak te z dużą pojemnością.Jednak w większości algorytm oblicza pojemności niedokładnie. Te ustawienia pozwolą Ci sprecyzować, jaki ma być procent zapełnienia krótszych tras zanim zostaną wybrane dłuższe. Ustaw na mniej niż 100% w celu uniknięcia przepełnienia stacji w razie zawyżenia pojemności. STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Często są różne trasy pomiędzy dwoma stacjami. Cargodist zapełni najpierw najkrótsza trasę, później wykorzystuje kolejną z najkrótszych tras aż ta jest pełna itd. Zapełnienie jest określone przez obliczenie pojemności wraz z planowanym użyciem. Kiedy już wszystkie trasy są zapełnione, a istnieje wciąż zapotrzebowanie, przepełni wszystkie trasy, preferując jednak te z dużą pojemnością.Jednak w większości algorytm oblicza pojemności niedokładnie. Te ustawienia pozwolą Ci sprecyzować, jaki ma być procent zapełnienia krótszych tras zanim zostaną wybrane dłuższe. Ustaw na mniej niż 100% w celu uniknięcia przepełnienia stacji w razie zawyżenia pojemności.
@@ -3117,7 +3117,7 @@ STR_ABOUT_VERSION :{BLACK}OpenTTD
STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-{STRING} Zespół OpenTTD STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-{STRING} Zespół OpenTTD
# Framerate display window # Framerate display window
STR_FRAMERATE_CAPTION :{WHITE}Ilość klatek na sekundę STR_FRAMERATE_CAPTION :{WHITE}Liczba klatek na sekundę
STR_FRAMERATE_CAPTION_SMALL :{STRING}{WHITE} ({DECIMAL}x) STR_FRAMERATE_CAPTION_SMALL :{STRING}{WHITE} ({DECIMAL}x)
STR_FRAMERATE_RATE_GAMELOOP :{BLACK}Tempo symulacji: {STRING} STR_FRAMERATE_RATE_GAMELOOP :{BLACK}Tempo symulacji: {STRING}
STR_FRAMERATE_RATE_GAMELOOP_TOOLTIP :{BLACK}Liczba ticków gry symulowanych na sekundę. STR_FRAMERATE_RATE_GAMELOOP_TOOLTIP :{BLACK}Liczba ticków gry symulowanych na sekundę.
@@ -4292,7 +4292,7 @@ STR_ORDERS_END_OF_ORDERS :- - Koniec pole
STR_ORDERS_END_OF_SHARED_ORDERS :- - Koniec współdzielonych poleceń - - STR_ORDERS_END_OF_SHARED_ORDERS :- - Koniec współdzielonych poleceń - -
# Order bottom buttons # Order bottom buttons
STR_ORDER_NON_STOP :{BLACK}Non-stop STR_ORDER_NON_STOP :{BLACK}Bezpośrednio
STR_ORDER_GO_TO :Idź do STR_ORDER_GO_TO :Idź do
STR_ORDER_GO_NON_STOP_TO :Idź bezpośrednio do STR_ORDER_GO_NON_STOP_TO :Idź bezpośrednio do
STR_ORDER_GO_VIA :Idź przez STR_ORDER_GO_VIA :Idź przez
@@ -4303,7 +4303,7 @@ STR_ORDER_TOGGLE_FULL_LOAD :{BLACK}Pełny z
STR_ORDER_DROP_LOAD_IF_POSSIBLE :Załaduj jeśli dostępne STR_ORDER_DROP_LOAD_IF_POSSIBLE :Załaduj jeśli dostępne
STR_ORDER_DROP_FULL_LOAD_ALL :Pełny załadunek wszystkiego STR_ORDER_DROP_FULL_LOAD_ALL :Pełny załadunek wszystkiego
STR_ORDER_DROP_FULL_LOAD_ANY :Pełny załadunek któregoś z towarów STR_ORDER_DROP_FULL_LOAD_ANY :Pełny załadunek któregoś z towarów
STR_ORDER_DROP_NO_LOADING :Nie ładować STR_ORDER_DROP_NO_LOADING :Nie ładuj
STR_ORDER_TOOLTIP_FULL_LOAD :{BLACK}Zmień sposób załadunku w podświetlonym poleceniu STR_ORDER_TOOLTIP_FULL_LOAD :{BLACK}Zmień sposób załadunku w podświetlonym poleceniu
STR_ORDER_TOGGLE_UNLOAD :{BLACK}Rozładuj i załaduj STR_ORDER_TOGGLE_UNLOAD :{BLACK}Rozładuj i załaduj
@@ -4374,7 +4374,7 @@ STR_ORDER_GO_TO_WAYPOINT :Idź przez {WAY
STR_ORDER_GO_NON_STOP_TO_WAYPOINT :Idź bezpośrednio poprzez {WAYPOINT} STR_ORDER_GO_NON_STOP_TO_WAYPOINT :Idź bezpośrednio poprzez {WAYPOINT}
STR_ORDER_SERVICE_AT :Serwisuj w STR_ORDER_SERVICE_AT :Serwisuj w
STR_ORDER_SERVICE_NON_STOP_AT :Serwisuj non-stop w STR_ORDER_SERVICE_NON_STOP_AT :Serwisuj bezpośrednio w
STR_ORDER_NEAREST_DEPOT :najbliższego STR_ORDER_NEAREST_DEPOT :najbliższego
STR_ORDER_NEAREST_HANGAR :najbliższego hangaru STR_ORDER_NEAREST_HANGAR :najbliższego hangaru
@@ -4394,7 +4394,7 @@ STR_ORDER_IMPLICIT :(sugerowany)
STR_ORDER_FULL_LOAD :(Pełny załadunek) STR_ORDER_FULL_LOAD :(Pełny załadunek)
STR_ORDER_FULL_LOAD_ANY :(Pełny załadunek dowolnego towaru) STR_ORDER_FULL_LOAD_ANY :(Pełny załadunek dowolnego towaru)
STR_ORDER_NO_LOAD :(Nie ładować) STR_ORDER_NO_LOAD :(Nie ładuj)
STR_ORDER_UNLOAD :(Rozładuj i zabierz ładunek) STR_ORDER_UNLOAD :(Rozładuj i zabierz ładunek)
STR_ORDER_UNLOAD_FULL_LOAD :(Rozładuj i czekaj na pełny załadunek) STR_ORDER_UNLOAD_FULL_LOAD :(Rozładuj i czekaj na pełny załadunek)
STR_ORDER_UNLOAD_FULL_LOAD_ANY :(Rozładuj i czekaj na pełny załadunek któregoś z towarów) STR_ORDER_UNLOAD_FULL_LOAD_ANY :(Rozładuj i czekaj na pełny załadunek któregoś z towarów)

View File

@@ -187,6 +187,7 @@ STR_COLOUR_ORANGE :Portocaliu
STR_COLOUR_BROWN :Maro STR_COLOUR_BROWN :Maro
STR_COLOUR_GREY :Gri STR_COLOUR_GREY :Gri
STR_COLOUR_WHITE :Alb STR_COLOUR_WHITE :Alb
STR_COLOUR_DEFAULT :Prestabilit
# Units used in OpenTTD # Units used in OpenTTD
STR_UNITS_VELOCITY_IMPERIAL :{COMMA} mph STR_UNITS_VELOCITY_IMPERIAL :{COMMA} mph
@@ -233,6 +234,7 @@ STR_TOOLTIP_FILTER_CRITERIA :{BLACK}Alegeți
STR_BUTTON_SORT_BY :{BLACK}Ordonează STR_BUTTON_SORT_BY :{BLACK}Ordonează
STR_BUTTON_LOCATION :{BLACK}Locație STR_BUTTON_LOCATION :{BLACK}Locație
STR_BUTTON_RENAME :{BLACK}Nume nou STR_BUTTON_RENAME :{BLACK}Nume nou
STR_BUTTON_CATCHMENT :Arie de acoperire
STR_TOOLTIP_CLOSE_WINDOW :{BLACK}Închide fereastra STR_TOOLTIP_CLOSE_WINDOW :{BLACK}Închide fereastra
STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS :{BLACK}Titlul ferestrei - trage de aici pentru a muta fereastra STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS :{BLACK}Titlul ferestrei - trage de aici pentru a muta fereastra
@@ -836,6 +838,7 @@ STR_NEWS_VEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}{VEHICLE
STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} nu are nici un ordin STR_NEWS_VEHICLE_HAS_VOID_ORDER :{WHITE}{VEHICLE} nu are nici un ordin
STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} are ordine duplicate STR_NEWS_VEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}{VEHICLE} are ordine duplicate
STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} are o staţie invalidă în ordine STR_NEWS_VEHICLE_HAS_INVALID_ENTRY :{WHITE}{VEHICLE} are o staţie invalidă în ordine
STR_NEWS_PLANE_USES_TOO_SHORT_RUNWAY :{WHITE}{VEHICLE} are în ordinele sale un aeroport a cărui pistă este prea scurtă
STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} este vechi STR_NEWS_VEHICLE_IS_GETTING_OLD :{WHITE}{VEHICLE} este vechi
STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} este foarte vechi STR_NEWS_VEHICLE_IS_GETTING_VERY_OLD :{WHITE}{VEHICLE} este foarte vechi
@@ -1444,6 +1447,7 @@ STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :Permite Intelig
STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT :Permite ca jucătorii controlați de AI să participe în jocuri multiplayer STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT :Permite ca jucătorii controlați de AI să participe în jocuri multiplayer
STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :Număr opcodes înainte de suspendarea scripturilor: {STRING} STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :Număr opcodes înainte de suspendarea scripturilor: {STRING}
STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES_HELPTEXT :Numărul maxim de instrucțiuni pe care un script le poate executa pe parcursul unei ture STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES_HELPTEXT :Numărul maxim de instrucțiuni pe care un script le poate executa pe parcursul unei ture
STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_VALUE :{COMMA} MiB
STR_CONFIG_SETTING_SERVINT_ISPERCENT :Intervaluri de service în procente: {STRING} STR_CONFIG_SETTING_SERVINT_ISPERCENT :Intervaluri de service în procente: {STRING}
STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Alege dacă întreținerea vehiculelor este activată de trecerea unei anumite perioade de timp, sau scăzând un anumit procent din gradul de rezistență al vehiculului STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Alege dacă întreținerea vehiculelor este activată de trecerea unei anumite perioade de timp, sau scăzând un anumit procent din gradul de rezistență al vehiculului
@@ -1647,6 +1651,7 @@ STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}Câmpur
STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Construcţie STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Construcţie
STR_CONFIG_SETTING_ADVISORS :{ORANGE}Știri / Consilieri STR_CONFIG_SETTING_ADVISORS :{ORANGE}Știri / Consilieri
STR_CONFIG_SETTING_COMPANY :{ORANGE}Companie STR_CONFIG_SETTING_COMPANY :{ORANGE}Companie
STR_CONFIG_SETTING_ACCOUNTING :{ORANGE}Contabilitate
STR_CONFIG_SETTING_VEHICLES :{ORANGE}Vehicule STR_CONFIG_SETTING_VEHICLES :{ORANGE}Vehicule
STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Direcţionare STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Direcţionare
STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Dezastre / Accidente STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Dezastre / Accidente
@@ -2551,6 +2556,7 @@ STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Numele d
STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING} STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Încărcături acceptate: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Încărcături acceptate: {LTBLUE}
STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Tip șină: {LTBLUE}{STRING}
STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Limită viteză pe calea ferată: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Limită viteză pe calea ferată: {LTBLUE}{VELOCITY}
STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Viteza limită a drumului: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Viteza limită a drumului: {LTBLUE}{VELOCITY}
@@ -2656,11 +2662,14 @@ STR_FRAMERATE_RATE_GAMELOOP_TOOLTIP :{BLACK}Număr d
STR_FRAMERATE_AVERAGE :{WHITE}Medie STR_FRAMERATE_AVERAGE :{WHITE}Medie
STR_FRAMERATE_DATA_POINTS :{BLACK}Date bazate pe măsurători {COMMA} STR_FRAMERATE_DATA_POINTS :{BLACK}Date bazate pe măsurători {COMMA}
STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL} ms STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL} ms
STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL} cadre/s
STR_FRAMERATE_GRAPH_MILLISECONDS :{TINY_FONT}{COMMA} ms STR_FRAMERATE_GRAPH_MILLISECONDS :{TINY_FONT}{COMMA} ms
############ Leave those lines in this order!! ############ Leave those lines in this order!!
STR_FRAMERATE_VIDEO :{BLACK}Ieșire video: STR_FRAMERATE_VIDEO :{BLACK}Ieșire video:
############ End of leave-in-this-order ############ End of leave-in-this-order
############ Leave those lines in this order!! ############ Leave those lines in this order!!
STR_FRAMETIME_CAPTION_GAMELOOP :Buclă de joc
STR_FRAMETIME_CAPTION_GL_ECONOMY :Manipularea încărcăturilor
############ End of leave-in-this-order ############ End of leave-in-this-order
@@ -3319,6 +3328,7 @@ STR_GROUP_REMOVE_ALL_VEHICLES :Elimină toate
STR_GROUP_RENAME_CAPTION :{BLACK}Redenumeşte un grup STR_GROUP_RENAME_CAPTION :{BLACK}Redenumeşte un grup
STR_GROUP_PROFIT_THIS_YEAR :Profitul pe anul acesta:
STR_GROUP_OCCUPANCY :Utilizare curentă: STR_GROUP_OCCUPANCY :Utilizare curentă:
STR_GROUP_OCCUPANCY_VALUE :{NUM}% STR_GROUP_OCCUPANCY_VALUE :{NUM}%
@@ -3367,6 +3377,7 @@ STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_BUTTON :{BLACK}Cumpăr
STR_BUY_VEHICLE_SHIP_BUY_VEHICLE_BUTTON :{BLACK}Cumpără navă STR_BUY_VEHICLE_SHIP_BUY_VEHICLE_BUTTON :{BLACK}Cumpără navă
STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_BUTTON :{BLACK}Cumpără aeronavă STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_BUTTON :{BLACK}Cumpără aeronavă
STR_BUY_VEHICLE_AIRCRAFT_BUY_REFIT_VEHICLE_BUTTON :{BLACK}Cumpără și schimbă marfa transportată de aeronavă
STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_TOOLTIP :{BLACK}Cumpără vehiculul feroviar selectat. Shift+Click arată costul estimat fără să cumpere vehiculul STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_TOOLTIP :{BLACK}Cumpără vehiculul feroviar selectat. Shift+Click arată costul estimat fără să cumpere vehiculul
STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_TOOLTIP :{BLACK}Cumpără autovehiculul selectat. Shift+Click arată costul estimat fără să cumpere autovehiculul STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_TOOLTIP :{BLACK}Cumpără autovehiculul selectat. Shift+Click arată costul estimat fără să cumpere autovehiculul
@@ -3979,6 +3990,13 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Alege sc
STR_AI_LIST_CANCEL :{BLACK}Anulează STR_AI_LIST_CANCEL :{BLACK}Anulează
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Nu schimba scriptul STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Nu schimba scriptul
STR_SCREENSHOT_CAPTION :{WHITE}Capturează ecranul
STR_SCREENSHOT_SCREENSHOT :{BLACK}Captură de ecran obișnuită
STR_SCREENSHOT_ZOOMIN_SCREENSHOT :{BLACK}Captură de hartă la mărime maximă
STR_SCREENSHOT_DEFAULTZOOM_SCREENSHOT :{BLACK}Captură de hartă la mărime normală
STR_SCREENSHOT_WORLD_SCREENSHOT :{BLACK}Captură de hartă întreagă
STR_SCREENSHOT_HEIGHTMAP_SCREENSHOT :{BLACK}Captură de hartă topografică
STR_SCREENSHOT_MINIMAP_SCREENSHOT :{BLACK}Captură de hartă a lumii
# AI Parameters # AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parametrii STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parametrii
@@ -4063,7 +4081,7 @@ STR_WARNING_FALLBACK_SOUNDSET :{WHITE}Doar un
# Screenshot related messages # Screenshot related messages
STR_WARNING_SCREENSHOT_SIZE_CAPTION :{WHITE}Imagine de dimensiune foarte mare STR_WARNING_SCREENSHOT_SIZE_CAPTION :{WHITE}Imagine de dimensiune foarte mare
STR_WARNING_SCREENSHOT_SIZE_MESSAGE :{YELLOW}Imaginea capturata va avea o dimensiune de {COMMA} x {COMMA} pixeli. Realizarea unei capturi va dura puțin timp. Dorești să continui? STR_WARNING_SCREENSHOT_SIZE_MESSAGE :{YELLOW}Imaginea capturată va avea o dimensiune de {COMMA} x {COMMA} pixeli. Realizarea unei capturi va dura ceva timp. Dorești să continui?
STR_MESSAGE_SCREENSHOT_SUCCESSFULLY :{WHITE}Imagine salvată cu succes pe disc în fişierul '{STRING}' STR_MESSAGE_SCREENSHOT_SUCCESSFULLY :{WHITE}Imagine salvată cu succes pe disc în fişierul '{STRING}'
STR_ERROR_SCREENSHOT_FAILED :{WHITE}Imaginea nu a putut fi capturată! STR_ERROR_SCREENSHOT_FAILED :{WHITE}Imaginea nu a putut fi capturată!
@@ -4433,6 +4451,7 @@ STR_BASESOUNDS_WIN_DESCRIPTION :Setul de sunete
STR_BASESOUNDS_NONE_DESCRIPTION :Un set de sunete fără nici un sunet inclus. STR_BASESOUNDS_NONE_DESCRIPTION :Un set de sunete fără nici un sunet inclus.
STR_BASEMUSIC_WIN_DESCRIPTION :Setul de muzică original al Transport Tycoon Deluxe pentru Windows. STR_BASEMUSIC_WIN_DESCRIPTION :Setul de muzică original al Transport Tycoon Deluxe pentru Windows.
STR_BASEMUSIC_DOS_DESCRIPTION :Setul de muzică original al Transport Tycoon Deluxe pentru DOS. STR_BASEMUSIC_DOS_DESCRIPTION :Setul de muzică original al Transport Tycoon Deluxe pentru DOS.
STR_BASEMUSIC_TTO_DESCRIPTION :Setul de muzică original al Transport (Original/World Editor) pentru DOS.
STR_BASEMUSIC_NONE_DESCRIPTION :Un set de muzică fără muzică inclusă. STR_BASEMUSIC_NONE_DESCRIPTION :Un set de muzică fără muzică inclusă.
##id 0x2000 ##id 0x2000

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1121,6 +1121,7 @@ STR_CONFIG_SETTING_CITY_APPROVAL :நகர ம
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :அதிகபட்ச வரைபட உயரம்: {STRING} STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :அதிகபட்ச வரைபட உயரம்: {STRING}
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :இந்த வரைபடத்திலுள்ள மலைகளின் அதிகபட்ச உயரத்தினை அமை STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :இந்த வரைபடத்திலுள்ள மலைகளின் அதிகபட்ச உயரத்தினை அமை
STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE} அதிகபட்ச வரைபட உயரமாக இந்த மதிப்பை நீங்கள் தர இயலாது. வரைபடத்தில் குறைந்தது ஒரு மலையாவது இந்த மதிப்பை விட உயரமாக உள்ளது
STR_CONFIG_SETTING_EXTRADYNAMITE :நகரத்தின் சாலைகள், பாலங்கள் மற்றும் சுரங்கங்களை நீக்க அனுமதிக்கவும்: {STRING} STR_CONFIG_SETTING_EXTRADYNAMITE :நகரத்தின் சாலைகள், பாலங்கள் மற்றும் சுரங்கங்களை நீக்க அனுமதிக்கவும்: {STRING}
STR_CONFIG_SETTING_EXTRADYNAMITE_HELPTEXT :நகராட்சியின் கட்டடங்கள் நீக்குவதை எளிதாக்கவும் STR_CONFIG_SETTING_EXTRADYNAMITE_HELPTEXT :நகராட்சியின் கட்டடங்கள் நீக்குவதை எளிதாக்கவும்
STR_CONFIG_SETTING_TRAIN_LENGTH :இரயில்களின் அதிகபட்ச நீளம்: {STRING} STR_CONFIG_SETTING_TRAIN_LENGTH :இரயில்களின் அதிகபட்ச நீளம்: {STRING}

View File

@@ -236,6 +236,8 @@ STR_TOOLTIP_FILTER_CRITERIA :{BLACK}Süzme k
STR_BUTTON_SORT_BY :{BLACK}Sırala STR_BUTTON_SORT_BY :{BLACK}Sırala
STR_BUTTON_LOCATION :{BLACK}Göster STR_BUTTON_LOCATION :{BLACK}Göster
STR_BUTTON_RENAME :{BLACK}Yeni ad STR_BUTTON_RENAME :{BLACK}Yeni ad
STR_BUTTON_CATCHMENT :{BLACK}Kapsama alanı
STR_TOOLTIP_CATCHMENT :{BLACK}Kapsama alanını göstermeyi aç/kapa
STR_TOOLTIP_CLOSE_WINDOW :{BLACK}Pencereyi kapat STR_TOOLTIP_CLOSE_WINDOW :{BLACK}Pencereyi kapat
STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS :{BLACK}Pencere başlığı - pencereyi hareket ettirmek için sürükle STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS :{BLACK}Pencere başlığı - pencereyi hareket ettirmek için sürükle
@@ -264,6 +266,7 @@ STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT_TOOLTIP :{BLACK}Bu düğ
STR_BUTTON_DEFAULT :{BLACK}Varsayılan STR_BUTTON_DEFAULT :{BLACK}Varsayılan
STR_BUTTON_CANCEL :{BLACK}İptal STR_BUTTON_CANCEL :{BLACK}İptal
STR_BUTTON_OK :{BLACK}Tamam STR_BUTTON_OK :{BLACK}Tamam
STR_WARNING_PASSWORD_SECURITY :{YELLOW}Uyarı: Sunucu yöneticileri buraya yazılan yazıları okuyabilir.
# On screen keyboard window # On screen keyboard window
STR_OSK_KEYBOARD_LAYOUT :"1234567890*-\qwertyuıopğüasdfghjklşi,' zxcvbnmöç. . STR_OSK_KEYBOARD_LAYOUT :"1234567890*-\qwertyuıopğüasdfghjklşi,' zxcvbnmöç. .
@@ -337,6 +340,7 @@ STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_IN :{BLACK}Yakınla
STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_OUT :{BLACK}Uzaklaş STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_OUT :{BLACK}Uzaklaş
STR_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}Demiryolu yapımı STR_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}Demiryolu yapımı
STR_TOOLBAR_TOOLTIP_BUILD_ROADS :{BLACK}Karayolu yapımı STR_TOOLBAR_TOOLTIP_BUILD_ROADS :{BLACK}Karayolu yapımı
STR_TOOLBAR_TOOLTIP_BUILD_TRAMWAYS :{BLACK}Tramvay inşa et
STR_TOOLBAR_TOOLTIP_BUILD_SHIP_DOCKS :{BLACK}Rıhtım yapımı STR_TOOLBAR_TOOLTIP_BUILD_SHIP_DOCKS :{BLACK}Rıhtım yapımı
STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS :{BLACK}Havalimanı yapımı STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS :{BLACK}Havalimanı yapımı
STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}Arazi düzenleme araç çubuğunu aç (ağaç dikme, alçaltma/yükseltme vb. için). STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}Arazi düzenleme araç çubuğunu aç (ağaç dikme, alçaltma/yükseltme vb. için).
@@ -357,6 +361,7 @@ STR_SCENEDIT_TOOLBAR_LANDSCAPE_GENERATION :{BLACK}Peyzaj y
STR_SCENEDIT_TOOLBAR_TOWN_GENERATION :{BLACK}Şehir yapımı STR_SCENEDIT_TOOLBAR_TOWN_GENERATION :{BLACK}Şehir yapımı
STR_SCENEDIT_TOOLBAR_INDUSTRY_GENERATION :{BLACK}Fabrika yapımı STR_SCENEDIT_TOOLBAR_INDUSTRY_GENERATION :{BLACK}Fabrika yapımı
STR_SCENEDIT_TOOLBAR_ROAD_CONSTRUCTION :{BLACK}Yol yapımı STR_SCENEDIT_TOOLBAR_ROAD_CONSTRUCTION :{BLACK}Yol yapımı
STR_SCENEDIT_TOOLBAR_TRAM_CONSTRUCTION :{BLACK} Tramvay yapımı
STR_SCENEDIT_TOOLBAR_PLANT_TREES :{BLACK}Ağaç dik. Shift ile tıklama maliyet tahminini gösterir STR_SCENEDIT_TOOLBAR_PLANT_TREES :{BLACK}Ağaç dik. Shift ile tıklama maliyet tahminini gösterir
STR_SCENEDIT_TOOLBAR_PLACE_SIGN :{BLACK}Tabela koy STR_SCENEDIT_TOOLBAR_PLACE_SIGN :{BLACK}Tabela koy
STR_SCENEDIT_TOOLBAR_PLACE_OBJECT :{BLACK}Nesneyi yerleştirin. Shift ile tıklama maliyet tahminini gösterir STR_SCENEDIT_TOOLBAR_PLACE_OBJECT :{BLACK}Nesneyi yerleştirin. Shift ile tıklama maliyet tahminini gösterir
@@ -860,6 +865,7 @@ STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE :{BIG_FONT}{BLAC
STR_NEWS_NEW_VEHICLE_TYPE :{BIG_FONT}{BLACK}{ENGINE} STR_NEWS_NEW_VEHICLE_TYPE :{BIG_FONT}{BLACK}{ENGINE}
STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}Yeni {STRING} artık kullanılabilir! - {ENGINE} STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}Yeni {STRING} artık kullanılabilir! - {ENGINE}
STR_NEWS_SHOW_VEHICLE_GROUP_TOOLTIP :{BLACK}Aracın grubuna odaklanmış grup penceresini açın
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} artık {STRING} kabul etmiyor STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} artık {STRING} kabul etmiyor
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} artık {STRING} veya {STRING} kabul etmiyor STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} artık {STRING} veya {STRING} kabul etmiyor
@@ -927,6 +933,10 @@ STR_GAME_OPTIONS_CURRENCY_GEL :Gürcistan Lari
STR_GAME_OPTIONS_CURRENCY_IRR :İran Riyali (IRR) STR_GAME_OPTIONS_CURRENCY_IRR :İran Riyali (IRR)
STR_GAME_OPTIONS_CURRENCY_RUB :Yeni Rus Rublesi (RUB) STR_GAME_OPTIONS_CURRENCY_RUB :Yeni Rus Rublesi (RUB)
STR_GAME_OPTIONS_CURRENCY_MXN :Meksika Pezosu (MXN) STR_GAME_OPTIONS_CURRENCY_MXN :Meksika Pezosu (MXN)
STR_GAME_OPTIONS_CURRENCY_NTD :Yeni Tayvan Doları (NTD)
STR_GAME_OPTIONS_CURRENCY_CNY :Çin Yuanı (CNY)
STR_GAME_OPTIONS_CURRENCY_HKD :Hong Kong Doları (HKD)
STR_GAME_OPTIONS_CURRENCY_INR :Hindistan Rupisi (INR)
############ end of currency region ############ end of currency region
STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Karayolu taşıtları STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Karayolu taşıtları
@@ -989,10 +999,12 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :Normal
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :İki kat büyük STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :İki kat büyük
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Dört kat büyük STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Dört kat büyük
STR_GAME_OPTIONS_FONT_ZOOM :{BLACK}Yazı boyutu
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_TOOLTIP :Arayüz boyutunu seç STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_TOOLTIP :Arayüz boyutunu seç
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Yazı iki kat büyük STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Yazı iki kat büyük
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Dört kat büyük
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Temel grafik kümesi STR_GAME_OPTIONS_BASE_GRF :{BLACK}Temel grafik kümesi
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Kullanılacak temel grafik kümesini seçin STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Kullanılacak temel grafik kümesini seçin
@@ -1176,6 +1188,8 @@ STR_CONFIG_SETTING_AUTOSLOPE :Binaların, yol
STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Binaları ve yolları kaldırmaksızın altlarında yeryüzü şekillendirmesi yapılmasına izin ver STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Binaları ve yolları kaldırmaksızın altlarında yeryüzü şekillendirmesi yapılmasına izin ver
STR_CONFIG_SETTING_CATCHMENT :İstasyon kapsama alanlarının daha gerçeğe yakın ölçülerde olmasına izin ver: {STRING} STR_CONFIG_SETTING_CATCHMENT :İstasyon kapsama alanlarının daha gerçeğe yakın ölçülerde olmasına izin ver: {STRING}
STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Farklı istasyon ve hava limanları için farklı büyüklükte alanlar gerekir STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Farklı istasyon ve hava limanları için farklı büyüklükte alanlar gerekir
STR_CONFIG_SETTING_SERVE_NEUTRAL_INDUSTRIES :Şirket istasyonları, bağlı nötr istasyonları olan endüstrilere hizmet edebilir: {STRING}
STR_CONFIG_SETTING_SERVE_NEUTRAL_INDUSTRIES_HELPTEXT :Etkinleştirildiğinde, bağlı istasyonları olan endüstrilere (Petrol Kuleleri gibi) yakınlarda kurulan şirkete ait istasyonlar da hizmet verebilir. Devre dışı bırakıldığında, bu sektörlere yalnızca bağlı istasyonları tarafından hizmet verilebilir. Yakındaki herhangi bir şirket istasyonu onlara hizmet veremeyecek ve ekli istasyon sektör dışında başka bir şeye hizmet etmeyecek
STR_CONFIG_SETTING_EXTRADYNAMITE :Şehirlere ait köprülerin, yolların ve tünellerin yıkılmasına izin vermeleri için, şehir yetkililerinin toleransını arttır: {STRING} STR_CONFIG_SETTING_EXTRADYNAMITE :Şehirlere ait köprülerin, yolların ve tünellerin yıkılmasına izin vermeleri için, şehir yetkililerinin toleransını arttır: {STRING}
STR_CONFIG_SETTING_EXTRADYNAMITE_HELPTEXT :Belediyelerin sahip olduğu altyapı ve binaların yıkımını kolaylaştır STR_CONFIG_SETTING_EXTRADYNAMITE_HELPTEXT :Belediyelerin sahip olduğu altyapı ve binaların yıkımını kolaylaştır
STR_CONFIG_SETTING_TRAIN_LENGTH :En yüksek tren uzunluğu: {STRING} STR_CONFIG_SETTING_TRAIN_LENGTH :En yüksek tren uzunluğu: {STRING}
@@ -1297,6 +1311,8 @@ STR_CONFIG_SETTING_POPULATION_IN_LABEL :Şehir nüfusun
STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Haritadaki şehir etiketlerinde nüfus bilgisini görüntüle STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Haritadaki şehir etiketlerinde nüfus bilgisini görüntüle
STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Grafiklerdeki çizgi kalınlığı: {STRING} STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Grafiklerdeki çizgi kalınlığı: {STRING}
STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Grafiklerdeki çizginin genişliği. İnce çizgiler daha hassas şekilde okunabilir, koyu çizgileri ise görmek ve renklerini ayırt etmek daha kolay olur. STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Grafiklerdeki çizginin genişliği. İnce çizgiler daha hassas şekilde okunabilir, koyu çizgileri ise görmek ve renklerini ayırt etmek daha kolay olur.
STR_CONFIG_SETTING_SHOW_NEWGRF_NAME :NewGRF'nin adını araç inşa penceresinde göster: {STRING}
STR_CONFIG_SETTING_SHOW_NEWGRF_NAME_HELPTEXT :Araç inşa penceresine, seçilen aracın hangi NewGRF'den geldiğini gösteren bir satır ekleyin.
STR_CONFIG_SETTING_LANDSCAPE :İklim: {STRING} STR_CONFIG_SETTING_LANDSCAPE :İklim: {STRING}
STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :İklimler farklı kargo ve şehir gelişme gereksinimlerini belirleyen temel oynanış senaryolarını tanımlar. NewGRF ve Oyun Betikleri daha ince ayarlar yapmanızı sağlar STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :İklimler farklı kargo ve şehir gelişme gereksinimlerini belirleyen temel oynanış senaryolarını tanımlar. NewGRF ve Oyun Betikleri daha ince ayarlar yapmanızı sağlar
@@ -1473,6 +1489,9 @@ STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :Çok oyunculuda
STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT :YZ (yapay zeka) bilgisayar oyuncularının çok oyunculu oyunlara katılmasına izin ver STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT :YZ (yapay zeka) bilgisayar oyuncularının çok oyunculu oyunlara katılmasına izin ver
STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :Betikler duraklatılıncaya kadar çalıştırılacak opkod sayısı: {STRING} STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :Betikler duraklatılıncaya kadar çalıştırılacak opkod sayısı: {STRING}
STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES_HELPTEXT :Bir betiğin bir elde kullanabileceği azami hesaplama adımı sayısı STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES_HELPTEXT :Bir betiğin bir elde kullanabileceği azami hesaplama adımı sayısı
STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY :Script başına kullanılabilecek maksimum bellek: {STRING}
STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_HELPTEXT :Tek bir betiğin zorla durdurulmadan önce ne kadar bellek kullanabileceğini gösterir. Bu değerin büyük haritalarda arttırılması gerekebilir.
STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_VALUE :{COMMA} MiB
STR_CONFIG_SETTING_SERVINT_ISPERCENT :Servis gecikmeleri yüzde ile: {STRING} STR_CONFIG_SETTING_SERVINT_ISPERCENT :Servis gecikmeleri yüzde ile: {STRING}
STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Araçlara bakım yapılmasına bir önceki bakımın üzerinden geçen zamana göre mi, yoksa aracın güvenilirlik değerinin azami güvenilirliğe kıyasla belli bir yüzde oranında düşmesine bağlı olarak mı karar verileceğini seçin STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Araçlara bakım yapılmasına bir önceki bakımın üzerinden geçen zamana göre mi, yoksa aracın güvenilirlik değerinin azami güvenilirliğe kıyasla belli bir yüzde oranında düşmesine bağlı olarak mı karar verileceğini seçin
@@ -1531,10 +1550,16 @@ STR_CONFIG_SETTING_NEWS_MESSAGES_FULL :Tam
STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :Renkli gazete şu senede çıksın: {STRING} STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :Renkli gazete şu senede çıksın: {STRING}
STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :Gazete haberlerinin renkli olarak basılmaya başlandığı yıl. Bu tarihe kadar gazete siyah/beyaz olarak basılır STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :Gazete haberlerinin renkli olarak basılmaya başlandığı yıl. Bu tarihe kadar gazete siyah/beyaz olarak basılır
STR_CONFIG_SETTING_STARTING_YEAR :Başlangıç tarihi: {STRING} STR_CONFIG_SETTING_STARTING_YEAR :Başlangıç tarihi: {STRING}
STR_CONFIG_SETTING_ENDING_YEAR :Yıl sonu puanı: {STRING}
STR_CONFIG_SETTING_ENDING_YEAR_HELPTEXT :Oyunun puan sonucuna göre bittiği yıl. Bu yılın sonunda, şirketin puanı kaydedilir ve yüksek puan ekranında gösterilir ama oyuncular oynamaya devam edebilir.{}Eğer bu başlama yılından önce ise, yüksek puan ekranı gösterilmez.
STR_CONFIG_SETTING_ENDING_YEAR_VALUE :{NUM}
STR_CONFIG_SETTING_ENDING_YEAR_ZERO :Asla
STR_CONFIG_SETTING_SMOOTH_ECONOMY :Yüzeysel ekonomi (daha çok ve küçük çapta değişiklikler): {STRING} STR_CONFIG_SETTING_SMOOTH_ECONOMY :Yüzeysel ekonomi (daha çok ve küçük çapta değişiklikler): {STRING}
STR_CONFIG_SETTING_SMOOTH_ECONOMY_HELPTEXT :Etkinleştirildiğinde, endüstri üretim miktarı daha sık ve daha küçük adımlarla değişir. Eğer endüstriler bir NewGRF dosyası tarafından sağlanıyorsa bu özellik genellikle etkisiz kalır STR_CONFIG_SETTING_SMOOTH_ECONOMY_HELPTEXT :Etkinleştirildiğinde, endüstri üretim miktarı daha sık ve daha küçük adımlarla değişir. Eğer endüstriler bir NewGRF dosyası tarafından sağlanıyorsa bu özellik genellikle etkisiz kalır
STR_CONFIG_SETTING_ALLOW_SHARES :Diğer şirketlerin hisseleri alınabilsin: {STRING} STR_CONFIG_SETTING_ALLOW_SHARES :Diğer şirketlerin hisseleri alınabilsin: {STRING}
STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Etkinleştirildiğinde, şirketlerin hisse senetlerinin alınıp satılması mümkün olur. Hisse senetleri sadece belli bir yaşa ulaşan şirketler için geçerlidir STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Etkinleştirildiğinde, şirketlerin hisse senetlerinin alınıp satılması mümkün olur. Hisse senetleri sadece belli bir yaşa ulaşan şirketler için geçerlidir
STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Hisse satmak için gerekli minimum şirket yaşı: {STRING}
STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Bir şirketin hisselerinin satılabileceği ve diğer şirketlerin alabileceği minimum şirket yaşını belirleyin.
STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Besleme sistemlerinde, bölümlerden elde edilen kardan ödenecek yüzde: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Besleme sistemlerinde, bölümlerden elde edilen kardan ödenecek yüzde: {STRING}
STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Besleme sistemlerinde, sistemi oluşturan ara bölümlere verilen kar yüzdesi. Böylece kar miktarı üzerinde daha fazla kontrol elde edilmiş olur STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Besleme sistemlerinde, sistemi oluşturan ara bölümlere verilen kar yüzdesi. Böylece kar miktarı üzerinde daha fazla kontrol elde edilmiş olur
STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :Fare sürüklendiğinde sinyal yerleştirme sıklığı: {STRING} STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :Fare sürüklendiğinde sinyal yerleştirme sıklığı: {STRING}
@@ -1575,6 +1600,10 @@ STR_CONFIG_SETTING_TOWN_FOUNDING_HELPTEXT :Bu seçeneği e
STR_CONFIG_SETTING_TOWN_FOUNDING_FORBIDDEN :Yasak STR_CONFIG_SETTING_TOWN_FOUNDING_FORBIDDEN :Yasak
STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED :İzin verildi STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED :İzin verildi
STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED_CUSTOM_LAYOUT :İzin verildi, özel kasaba yerleşimi STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED_CUSTOM_LAYOUT :İzin verildi, özel kasaba yerleşimi
STR_CONFIG_SETTING_TOWN_CARGOGENMODE :Şehrin kargo üretimi: {STRING}
STR_CONFIG_SETTING_TOWN_CARGOGENMODE_HELPTEXT :Şehrin genel nüfusuna oranla, şehirlerdeki evler tarafından ne kadar kargo üretiliyor.{}Üstel büyüme: İki katı büyüklükteki bir şehir dört katı büyüklükte yolcuya sahip olur.{}Lineer büyüme: İki katı büyüklükteki bir şehir iki katı büyüklükte yolcuya sahip olur.
STR_CONFIG_SETTING_TOWN_CARGOGENMODE_ORIGINAL :İkinci dereceden (orjinall)
STR_CONFIG_SETTING_TOWN_CARGOGENMODE_BITCOUNT :Doğrusal
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT :Oyunda ağaç dikme: {STRING} STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT :Oyunda ağaç dikme: {STRING}
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_HELPTEXT :Oyundaki rastgele ağaçların görünümünü kontrol eder. Bu, ağaçların büyümesine bağımlı olan endüstrileri etkileyebilir, örneğin keresteciler gibi STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT_HELPTEXT :Oyundaki rastgele ağaçların görünümünü kontrol eder. Bu, ağaçların büyümesine bağımlı olan endüstrileri etkileyebilir, örneğin keresteciler gibi
@@ -2138,6 +2167,7 @@ STR_NETWORK_ERROR_WRONG_PASSWORD :{WHITE}Yanlış
STR_NETWORK_ERROR_SERVER_FULL :{WHITE}Sunucu dolu STR_NETWORK_ERROR_SERVER_FULL :{WHITE}Sunucu dolu
STR_NETWORK_ERROR_SERVER_BANNED :{WHITE}Sunucuya girmeniz yasaklandı STR_NETWORK_ERROR_SERVER_BANNED :{WHITE}Sunucuya girmeniz yasaklandı
STR_NETWORK_ERROR_KICKED :{WHITE}Oyundan atıldınız STR_NETWORK_ERROR_KICKED :{WHITE}Oyundan atıldınız
STR_NETWORK_ERROR_KICK_MESSAGE :{WHITE}Sebep: {STRING}
STR_NETWORK_ERROR_CHEATER :{WHITE}Bu sunucuda hileler kapalı STR_NETWORK_ERROR_CHEATER :{WHITE}Bu sunucuda hileler kapalı
STR_NETWORK_ERROR_TOO_MANY_COMMANDS :{WHITE}Sunucuya çok fazla komut gönderiyordunuz STR_NETWORK_ERROR_TOO_MANY_COMMANDS :{WHITE}Sunucuya çok fazla komut gönderiyordunuz
STR_NETWORK_ERROR_TIMEOUT_PASSWORD :{WHITE}Şifre girmeniz çok uzun sürdü STR_NETWORK_ERROR_TIMEOUT_PASSWORD :{WHITE}Şifre girmeniz çok uzun sürdü
@@ -2197,6 +2227,7 @@ STR_NETWORK_MESSAGE_GIVE_MONEY :*** {STRING} ş
STR_NETWORK_MESSAGE_GAVE_MONEY_AWAY :*** {1:STRING} oyuncusuna {2:CURRENCY_LONG} verdiniz STR_NETWORK_MESSAGE_GAVE_MONEY_AWAY :*** {1:STRING} oyuncusuna {2:CURRENCY_LONG} verdiniz
STR_NETWORK_MESSAGE_SERVER_SHUTDOWN :{WHITE}Sunucu kapandı STR_NETWORK_MESSAGE_SERVER_SHUTDOWN :{WHITE}Sunucu kapandı
STR_NETWORK_MESSAGE_SERVER_REBOOT :{WHITE}Sunucu baştan başlatılıyor...{}Lütfen bekleyin... STR_NETWORK_MESSAGE_SERVER_REBOOT :{WHITE}Sunucu baştan başlatılıyor...{}Lütfen bekleyin...
STR_NETWORK_MESSAGE_KICKED :*** {STRING} atıldı. Sebep: ({STRING})
# Content downloading window # Content downloading window
STR_CONTENT_TITLE :{WHITE}İçerik indirme STR_CONTENT_TITLE :{WHITE}İçerik indirme
@@ -2414,7 +2445,11 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_TUNNEL :{BLACK}Tünel Y
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Tramvay tüneli yap. Shift ile tıklama maliyet tahminini gösterir STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Tramvay tüneli yap. Shift ile tıklama maliyet tahminini gösterir
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Yol yap/sil arasında geçiş yap STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Yol yap/sil arasında geçiş yap
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Tramvay yapımı/yıkımı STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Tramvay yapımı/yıkımı
STR_ROAD_TOOLBAR_TOOLTIP_CONVERT_ROAD :{BLACK}Yol türünü Dönüştür/Geliştir. Shift ile tıklama maliyet tahminini gösterir
STR_ROAD_TOOLBAR_TOOLTIP_CONVERT_TRAM :{BLACK}Tramvay türünü dönüştür / yükselt. Shift'e basma maliyet tahmini gösterir.
STR_ROAD_NAME_ROAD :Yol
STR_ROAD_NAME_TRAM :Tramvay
# Road depot construction window # Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Garaj Yönü STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Garaj Yönü
@@ -2599,8 +2634,11 @@ STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF:
STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}İstenen: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}İstenen: {LTBLUE}
STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING})
STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Ray türü: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Ray türü: {LTBLUE}{STRING}
STR_LANG_AREA_INFORMATION_ROAD_TYPE :{BLACK}Yol türü: {LTBLUE}{STRING}
STR_LANG_AREA_INFORMATION_TRAM_TYPE :{BLACK}Tramvay tipi: {LTBLUE}{STRING}
STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Ray hız sınırı: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Ray hız sınırı: {LTBLUE}{VELOCITY}
STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Yol hız sınırı: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Yol hız sınırı: {LTBLUE}{VELOCITY}
STR_LANG_AREA_INFORMATION_TRAM_SPEED_LIMIT :{BLACK}Tramvay hız limiti: {LTBLUE}{VELOCITY}
# Description of land area of different tiles # Description of land area of different tiles
STR_LAI_CLEAR_DESCRIPTION_ROCKS :Kayalar STR_LAI_CLEAR_DESCRIPTION_ROCKS :Kayalar
@@ -2710,6 +2748,7 @@ STR_FRAMERATE_SPEED_FACTOR :{BLACK}Şu anki
STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK}Beklenen normal simülasyon hızı yerine, şu anda oyunun ne kadar hızlı çalıştığı. STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK}Beklenen normal simülasyon hızı yerine, şu anda oyunun ne kadar hızlı çalıştığı.
STR_FRAMERATE_CURRENT :{WHITE}Geçerli STR_FRAMERATE_CURRENT :{WHITE}Geçerli
STR_FRAMERATE_AVERAGE :{WHITE}Ortalama STR_FRAMERATE_AVERAGE :{WHITE}Ortalama
STR_FRAMERATE_MEMORYUSE :{WHITE}Bellek
STR_FRAMERATE_DATA_POINTS :{BLACK}Veriler {COMMA} ölçümlerine dayanır STR_FRAMERATE_DATA_POINTS :{BLACK}Veriler {COMMA} ölçümlerine dayanır
STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL} ms STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL} ms
STR_FRAMERATE_MS_WARN :{YELLOW}{DECIMAL} ms STR_FRAMERATE_MS_WARN :{YELLOW}{DECIMAL} ms
@@ -2717,6 +2756,9 @@ STR_FRAMERATE_MS_BAD :{RED}{DECIMAL}
STR_FRAMERATE_FPS_GOOD :{LTBLUE}{DECIMAL} kare/s STR_FRAMERATE_FPS_GOOD :{LTBLUE}{DECIMAL} kare/s
STR_FRAMERATE_FPS_WARN :{YELLOW}{DECIMAL} kare/s STR_FRAMERATE_FPS_WARN :{YELLOW}{DECIMAL} kare/s
STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL} kare/s STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL} kare/s
STR_FRAMERATE_BYTES_GOOD :{LTBLUE}{BYTES}
STR_FRAMERATE_BYTES_WARN :{YELLOW}{BYTES}
STR_FRAMERATE_BYTES_BAD :{RED}{BYTES}
STR_FRAMERATE_GRAPH_MILLISECONDS :{TINY_FONT}{COMMA} ms STR_FRAMERATE_GRAPH_MILLISECONDS :{TINY_FONT}{COMMA} ms
STR_FRAMERATE_GRAPH_SECONDS :{TINY_FONT}{COMMA} s STR_FRAMERATE_GRAPH_SECONDS :{TINY_FONT}{COMMA} s
############ Leave those lines in this order!! ############ Leave those lines in this order!!
@@ -2732,7 +2774,9 @@ STR_FRAMERATE_DRAWING :{BLACK}Grafik i
STR_FRAMERATE_DRAWING_VIEWPORTS :{BLACK} Dünya görüş alanları: STR_FRAMERATE_DRAWING_VIEWPORTS :{BLACK} Dünya görüş alanları:
STR_FRAMERATE_VIDEO :{BLACK}Video çıkışı: STR_FRAMERATE_VIDEO :{BLACK}Video çıkışı:
STR_FRAMERATE_SOUND :{BLACK}Ses karıştırma: STR_FRAMERATE_SOUND :{BLACK}Ses karıştırma:
STR_FRAMERATE_ALLSCRIPTS :{BLACK} Oyun Betiği/Yapay Zeka toplam:
STR_FRAMERATE_GAMESCRIPT :Oyun scripti STR_FRAMERATE_GAMESCRIPT :Oyun scripti
STR_FRAMERATE_AI :{BLACK} YZ {NUM} {STRING}
############ End of leave-in-this-order ############ End of leave-in-this-order
############ Leave those lines in this order!! ############ Leave those lines in this order!!
STR_FRAMETIME_CAPTION_GAMELOOP :Oyun döngüsü STR_FRAMETIME_CAPTION_GAMELOOP :Oyun döngüsü
@@ -2747,6 +2791,9 @@ STR_FRAMETIME_CAPTION_DRAWING :Grafik işleme
STR_FRAMETIME_CAPTION_DRAWING_VIEWPORTS :Dünya görüş alanı derleme STR_FRAMETIME_CAPTION_DRAWING_VIEWPORTS :Dünya görüş alanı derleme
STR_FRAMETIME_CAPTION_VIDEO :Video çıkışı STR_FRAMETIME_CAPTION_VIDEO :Video çıkışı
STR_FRAMETIME_CAPTION_SOUND :Ses karıştırma STR_FRAMETIME_CAPTION_SOUND :Ses karıştırma
STR_FRAMETIME_CAPTION_ALLSCRIPTS :Oyun Betiği/Yapay Zeka betikleri toplam
STR_FRAMETIME_CAPTION_GAMESCRIPT :Oyun betiği
STR_FRAMETIME_CAPTION_AI :YZ {NUM} {STRING}
############ End of leave-in-this-order ############ End of leave-in-this-order
@@ -3011,6 +3058,7 @@ STR_NEWGRF_BUGGY :{WHITE}NewGRF '
STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}'{1:ENGINE}' için kargo tür değişim bilgisi yapımdan sonraki alım listesinden farklı. Bu otomatik yenileme-değiştirmenin kargo türünü doğru şekilde değiştirmesine engel olabilir STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}'{1:ENGINE}' için kargo tür değişim bilgisi yapımdan sonraki alım listesinden farklı. Bu otomatik yenileme-değiştirmenin kargo türünü doğru şekilde değiştirmesine engel olabilir
STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' üretim yordamında sonsuz döngüye neden oldu STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' üretim yordamında sonsuz döngüye neden oldu
STR_NEWGRF_BUGGY_UNKNOWN_CALLBACK_RESULT :{WHITE}{1:HEX} adlı callback hata ya da geçersiz sonuç döndü {2:HEX} STR_NEWGRF_BUGGY_UNKNOWN_CALLBACK_RESULT :{WHITE}{1:HEX} adlı callback hata ya da geçersiz sonuç döndü {2:HEX}
STR_NEWGRF_BUGGY_INVALID_CARGO_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' üretim geri çağırımında, geçerli olmayan kargo türü geri döndü {2:HEX}
# 'User removed essential NewGRFs'-placeholders for stuff without specs # 'User removed essential NewGRFs'-placeholders for stuff without specs
STR_NEWGRF_INVALID_CARGO :<geçersiz kargo> STR_NEWGRF_INVALID_CARGO :<geçersiz kargo>
@@ -3077,6 +3125,8 @@ STR_TOWN_VIEW_RENAME_TOWN_BUTTON :İsim değişti
# Town local authority window # Town local authority window
STR_LOCAL_AUTHORITY_CAPTION :{WHITE}{TOWN} belediyesi STR_LOCAL_AUTHORITY_CAPTION :{WHITE}{TOWN} belediyesi
STR_LOCAL_AUTHORITY_ZONE :{BLACK}Bölge
STR_LOCAL_AUTHORITY_ZONE_TOOLTIP :{BLACK}Bölgeyi yerel yönetim sınırları içinde göster
STR_LOCAL_AUTHORITY_COMPANY_RATINGS :{BLACK}Taşıma şirketi değerlendirmeleri: STR_LOCAL_AUTHORITY_COMPANY_RATINGS :{BLACK}Taşıma şirketi değerlendirmeleri:
STR_LOCAL_AUTHORITY_COMPANY_RATING :{YELLOW}{COMPANY} {COMPANY_NUM}: {ORANGE}{STRING} STR_LOCAL_AUTHORITY_COMPANY_RATING :{YELLOW}{COMPANY} {COMPANY_NUM}: {ORANGE}{STRING}
STR_LOCAL_AUTHORITY_ACTIONS_TITLE :{BLACK}Yapılabilecekler: STR_LOCAL_AUTHORITY_ACTIONS_TITLE :{BLACK}Yapılabilecekler:
@@ -3336,6 +3386,7 @@ STR_COMPANY_INFRASTRUCTURE_VIEW_CAPTION :{WHITE}{COMPANY
STR_COMPANY_INFRASTRUCTURE_VIEW_RAIL_SECT :{GOLD}Demiryolu parçaları: STR_COMPANY_INFRASTRUCTURE_VIEW_RAIL_SECT :{GOLD}Demiryolu parçaları:
STR_COMPANY_INFRASTRUCTURE_VIEW_SIGNALS :{WHITE}Sinyaller STR_COMPANY_INFRASTRUCTURE_VIEW_SIGNALS :{WHITE}Sinyaller
STR_COMPANY_INFRASTRUCTURE_VIEW_ROAD_SECT :{GOLD}Karayolu parçaları: STR_COMPANY_INFRASTRUCTURE_VIEW_ROAD_SECT :{GOLD}Karayolu parçaları:
STR_COMPANY_INFRASTRUCTURE_VIEW_TRAM_SECT :{GOLD}Tramvay parçaları:
STR_COMPANY_INFRASTRUCTURE_VIEW_WATER_SECT :{GOLD}Su kareleri: STR_COMPANY_INFRASTRUCTURE_VIEW_WATER_SECT :{GOLD}Su kareleri:
STR_COMPANY_INFRASTRUCTURE_VIEW_CANALS :{WHITE}Kanallar STR_COMPANY_INFRASTRUCTURE_VIEW_CANALS :{WHITE}Kanallar
STR_COMPANY_INFRASTRUCTURE_VIEW_STATION_SECT :{GOLD}İstasyonlar: STR_COMPANY_INFRASTRUCTURE_VIEW_STATION_SECT :{GOLD}İstasyonlar:
@@ -3346,8 +3397,17 @@ STR_COMPANY_INFRASTRUCTURE_VIEW_TOTAL :{WHITE}{CURRENC
# Industry directory # Industry directory
STR_INDUSTRY_DIRECTORY_CAPTION :{WHITE}Fabrikalar STR_INDUSTRY_DIRECTORY_CAPTION :{WHITE}Fabrikalar
STR_INDUSTRY_DIRECTORY_NONE :{ORANGE}- Hiçbiri - STR_INDUSTRY_DIRECTORY_NONE :{ORANGE}- Hiçbiri -
STR_INDUSTRY_DIRECTORY_ITEM_INFO :{BLACK}{CARGO_LONG}{STRING}{YELLOW} ({COMMA}% taşındı){BLACK}
STR_INDUSTRY_DIRECTORY_ITEM_NOPROD :{ORANGE}{INDUSTRY} STR_INDUSTRY_DIRECTORY_ITEM_NOPROD :{ORANGE}{INDUSTRY}
STR_INDUSTRY_DIRECTORY_ITEM_PROD1 :{ORANGE}{INDUSTRY} {STRING}
STR_INDUSTRY_DIRECTORY_ITEM_PROD2 :{ORANGE}{INDUSTRY} {STRING}, {STRING}
STR_INDUSTRY_DIRECTORY_ITEM_PROD3 :{ORANGE}{INDUSTRY} {STRING}, {STRING}, {STRING}
STR_INDUSTRY_DIRECTORY_ITEM_PRODMORE :{ORANGE}{INDUSTRY} {STRING}, {STRING}, {STRING} ve {NUM} daha...
STR_INDUSTRY_DIRECTORY_LIST_CAPTION :{BLACK}Fabrika adları - görüntüyü fabrikada merkezlemek için adına tıklayın. Ctrl ile tıklama fabrikanın konumunu gösteren yeni bir pencere açar STR_INDUSTRY_DIRECTORY_LIST_CAPTION :{BLACK}Fabrika adları - görüntüyü fabrikada merkezlemek için adına tıklayın. Ctrl ile tıklama fabrikanın konumunu gösteren yeni bir pencere açar
STR_INDUSTRY_DIRECTORY_ACCEPTED_CARGO_FILTER :{BLACK}Kabul edilen kargo: {SILVER}{STRING}
STR_INDUSTRY_DIRECTORY_PRODUCED_CARGO_FILTER :{BLACK}Üretilmiş kargo: {SILVER}{STRING}
STR_INDUSTRY_DIRECTORY_FILTER_ALL_TYPES :Tüm kargo tipleri
STR_INDUSTRY_DIRECTORY_FILTER_NONE :Hiçbiri
# Industry view # Industry view
STR_INDUSTRY_VIEW_CAPTION :{WHITE}{INDUSTRY} STR_INDUSTRY_VIEW_CAPTION :{WHITE}{INDUSTRY}
@@ -3413,6 +3473,7 @@ STR_GROUP_DEFAULT_ROAD_VEHICLES :Gruplanmamış
STR_GROUP_DEFAULT_SHIPS :Gruplanmamış gemiler STR_GROUP_DEFAULT_SHIPS :Gruplanmamış gemiler
STR_GROUP_DEFAULT_AIRCRAFTS :Gruplanmamış uçaklar STR_GROUP_DEFAULT_AIRCRAFTS :Gruplanmamış uçaklar
STR_GROUP_COUNT_WITH_SUBGROUP :{TINY_FONT}{COMMA} (+{COMMA})
STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Gruplar - gruba ait araçları listelemek için grubun üzerine tıklayın. Hiyerarşiyi düzenlemek için grupları sürükleyip bırakın. STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Gruplar - gruba ait araçları listelemek için grubun üzerine tıklayın. Hiyerarşiyi düzenlemek için grupları sürükleyip bırakın.
STR_GROUP_CREATE_TOOLTIP :{BLACK}Grup oluşturmak için tıklayın STR_GROUP_CREATE_TOOLTIP :{BLACK}Grup oluşturmak için tıklayın
@@ -3441,14 +3502,17 @@ STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Yeni Monoray
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Yeni Maglev STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Yeni Maglev
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Yeni Karayolu Araçları STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Yeni Karayolu Araçları
STR_BUY_VEHICLE_TRAM_VEHICLE_CAPTION :Yeni Tramvay Araçları
############ range for vehicle availability starts ############ range for vehicle availability starts
STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Trenler STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Trenler
STR_BUY_VEHICLE_ROAD_VEHICLE_ALL_CAPTION :Yeni yol araçları
STR_BUY_VEHICLE_SHIP_CAPTION :Yeni gemi STR_BUY_VEHICLE_SHIP_CAPTION :Yeni gemi
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Yeni Hava Aracı STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Yeni Hava Aracı
############ range for vehicle availability ends ############ range for vehicle availability ends
STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Fiyat: {GOLD}{CURRENCY_LONG}{BLACK} Ağırlık: {GOLD}{WEIGHT_SHORT} STR_PURCHASE_INFO_COST_WEIGHT :{BLACK}Fiyat: {GOLD}{CURRENCY_LONG}{BLACK} Ağırlık: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_COST_REFIT_WEIGHT :{BLACK}Maliyet: {GOLD}{CURRENCY_LONG}{BLACK} (Tamir maliyeti: {GOLD}{CURRENCY_LONG}{BLACK}) Ağırlık: {GOLD}{WEIGHT_SHORT}
STR_PURCHASE_INFO_SPEED_POWER :{BLACK}Hız: {GOLD}{VELOCITY}{BLACK} Güç: {GOLD}{POWER} STR_PURCHASE_INFO_SPEED_POWER :{BLACK}Hız: {GOLD}{VELOCITY}{BLACK} Güç: {GOLD}{POWER}
STR_PURCHASE_INFO_SPEED :{BLACK}Hız: {GOLD}{VELOCITY} STR_PURCHASE_INFO_SPEED :{BLACK}Hız: {GOLD}{VELOCITY}
STR_PURCHASE_INFO_SPEED_OCEAN :{BLACK}Okyanus hızı: {GOLD}{VELOCITY} STR_PURCHASE_INFO_SPEED_OCEAN :{BLACK}Okyanus hızı: {GOLD}{VELOCITY}
@@ -3459,8 +3523,10 @@ STR_PURCHASE_INFO_REFITTABLE :(modifiyeli)
STR_PURCHASE_INFO_DESIGNED_LIFE :{BLACK}Yapım yılı: {GOLD}{NUM}{BLACK} Ömür: {GOLD}{COMMA} sene STR_PURCHASE_INFO_DESIGNED_LIFE :{BLACK}Yapım yılı: {GOLD}{NUM}{BLACK} Ömür: {GOLD}{COMMA} sene
STR_PURCHASE_INFO_RELIABILITY :{BLACK}Aza. Güvenilirlik: {GOLD}%{COMMA} STR_PURCHASE_INFO_RELIABILITY :{BLACK}Aza. Güvenilirlik: {GOLD}%{COMMA}
STR_PURCHASE_INFO_COST :{BLACK}Fiyat: {GOLD}{CURRENCY_LONG} STR_PURCHASE_INFO_COST :{BLACK}Fiyat: {GOLD}{CURRENCY_LONG}
STR_PURCHASE_INFO_COST_REFIT :{BLACK}Maliyet: {GOLD}{CURRENCY_LONG}{BLACK} (Tamirat Maliyeti: {GOLD}{CURRENCY_LONG}{BLACK})
STR_PURCHASE_INFO_WEIGHT_CWEIGHT :{BLACK}Ağırlık: {GOLD}{WEIGHT_SHORT} ({WEIGHT_SHORT}) STR_PURCHASE_INFO_WEIGHT_CWEIGHT :{BLACK}Ağırlık: {GOLD}{WEIGHT_SHORT} ({WEIGHT_SHORT})
STR_PURCHASE_INFO_COST_SPEED :{BLACK}Fiyat: {GOLD}{CURRENCY_LONG}{BLACK} Hız: {GOLD}{VELOCITY} STR_PURCHASE_INFO_COST_SPEED :{BLACK}Fiyat: {GOLD}{CURRENCY_LONG}{BLACK} Hız: {GOLD}{VELOCITY}
STR_PURCHASE_INFO_COST_REFIT_SPEED :{BLACK}Maliyet: {GOLD}{CURRENCY_LONG}{BLACK} (Tamir maliyeti: {GOLD}{CURRENCY_LONG}{BLACK}) Hız: {GOLD}{VELOCITY}
STR_PURCHASE_INFO_AIRCRAFT_CAPACITY :{BLACK}Kapasite: {GOLD}{CARGO_LONG}, {CARGO_LONG} STR_PURCHASE_INFO_AIRCRAFT_CAPACITY :{BLACK}Kapasite: {GOLD}{CARGO_LONG}, {CARGO_LONG}
STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Güç Veren Vagonlar: {GOLD}+{POWER}{BLACK} Ağırlık: {GOLD}+{WEIGHT_SHORT} STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Güç Veren Vagonlar: {GOLD}+{POWER}{BLACK} Ağırlık: {GOLD}+{WEIGHT_SHORT}
STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Dönüştürülebildiği kargolar: {GOLD}{STRING} STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Dönüştürülebildiği kargolar: {GOLD}{STRING}
@@ -3481,12 +3547,20 @@ STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_BUTTON :{BLACK}Araç Sa
STR_BUY_VEHICLE_SHIP_BUY_VEHICLE_BUTTON :{BLACK}Gemi Satın Al STR_BUY_VEHICLE_SHIP_BUY_VEHICLE_BUTTON :{BLACK}Gemi Satın Al
STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_BUTTON :{BLACK}Uçak Satın Al STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_BUTTON :{BLACK}Uçak Satın Al
STR_BUY_VEHICLE_TRAIN_BUY_REFIT_VEHICLE_BUTTON :{BLACK}Araç satın alın ve yenileyin.
STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_REFIT_VEHICLE_BUTTON :{BLACK}Aracı satın alın ve yenileyin.
STR_BUY_VEHICLE_SHIP_BUY_REFIT_VEHICLE_BUTTON :{BLACK}Gemi satın al ve yenile
STR_BUY_VEHICLE_AIRCRAFT_BUY_REFIT_VEHICLE_BUTTON :{BLACK}Uçağı satın al veya sahip olduğunla değiştir.
STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_TOOLTIP :{BLACK}Seçili treni satın al. Shift ile tıklama satın almadan tahmini maliyeti gösterir. STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_TOOLTIP :{BLACK}Seçili treni satın al. Shift ile tıklama satın almadan tahmini maliyeti gösterir.
STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_TOOLTIP :{BLACK}İşaretli aracı al. Shift ile tıklama satın almadan tahmini maliyeti gösterir STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_TOOLTIP :{BLACK}İşaretli aracı al. Shift ile tıklama satın almadan tahmini maliyeti gösterir
STR_BUY_VEHICLE_SHIP_BUY_VEHICLE_TOOLTIP :{BLACK}Seçili gemiyi satın al. Shift ile tıklama satın almadan tahmini maliyeti gösterir STR_BUY_VEHICLE_SHIP_BUY_VEHICLE_TOOLTIP :{BLACK}Seçili gemiyi satın al. Shift ile tıklama satın almadan tahmini maliyeti gösterir
STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_TOOLTIP :{BLACK}Seçili uçağı satın al. Shift ile tıklama satın almadan tahmini maliyeti gösterir STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_TOOLTIP :{BLACK}Seçili uçağı satın al. Shift ile tıklama satın almadan tahmini maliyeti gösterir
STR_BUY_VEHICLE_TRAIN_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}Gösterilen treni satın al. Shift+Click satın almadan tahmini maliyeti gösterir
STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}Seçili karayolu aracını satın alın. Shift ile tıklama satın almadan tahmini maliyeti gösterir
STR_BUY_VEHICLE_SHIP_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}Seçili gemiyi satın al. Shift ile tıklama satın almadan tahmini maliyeti gösterir
STR_BUY_VEHICLE_AIRCRAFT_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}Seçili uçağı satın al. Shift ile tıklama satın almanın tahmini maliyetini gösterir
STR_BUY_VEHICLE_TRAIN_RENAME_BUTTON :{BLACK}Yeni isim STR_BUY_VEHICLE_TRAIN_RENAME_BUTTON :{BLACK}Yeni isim
STR_BUY_VEHICLE_ROAD_VEHICLE_RENAME_BUTTON :{BLACK}İsim STR_BUY_VEHICLE_ROAD_VEHICLE_RENAME_BUTTON :{BLACK}İsim
@@ -3598,10 +3672,12 @@ STR_ENGINE_PREVIEW_CAPTION :{WHITE}Araç ü
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Yeni bir {STRING} tasarladık - bizim için bunu bir yıl denemeyi kabul ediyor musunuz? STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Yeni bir {STRING} tasarladık - bizim için bunu bir yıl denemeyi kabul ediyor musunuz?
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :lokomotif STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :lokomotif
STR_ENGINE_PREVIEW_ELRAIL_LOCOMOTIVE :Elektrikli demiryolu lokomotifi
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :monoray lokomotifi STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :monoray lokomotifi
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev lokomotifi STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :maglev lokomotifi
STR_ENGINE_PREVIEW_ROAD_VEHICLE :karayolu aracı STR_ENGINE_PREVIEW_ROAD_VEHICLE :karayolu aracı
STR_ENGINE_PREVIEW_TRAM_VEHICLE :Tramvay aracı
STR_ENGINE_PREVIEW_AIRCRAFT :uçak STR_ENGINE_PREVIEW_AIRCRAFT :uçak
STR_ENGINE_PREVIEW_SHIP :gemi STR_ENGINE_PREVIEW_SHIP :gemi
@@ -3643,14 +3719,18 @@ STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Lokomoti
STR_REPLACE_ENGINES :Lokomotifler STR_REPLACE_ENGINES :Lokomotifler
STR_REPLACE_WAGONS :Vagon STR_REPLACE_WAGONS :Vagon
STR_REPLACE_ALL_RAILTYPE :Tüm demiryolu araçları STR_REPLACE_ALL_RAILTYPE :Tüm demiryolu araçları
STR_REPLACE_ALL_ROADTYPE :Tüm karayolu araçları
STR_REPLACE_HELP_RAILTYPE :{BLACK}Lokomatiflerini değiştireceğiniz ray türünü seçin STR_REPLACE_HELP_RAILTYPE :{BLACK}Lokomatiflerini değiştireceğiniz ray türünü seçin
STR_REPLACE_HELP_ROADTYPE :{BLACK}Motorlarını değiştirmek istediğin yol tipini seç
STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Soldaki değiştiriliyorsa neyle değiştirildiğini göster STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Soldaki değiştiriliyorsa neyle değiştirildiğini göster
STR_REPLACE_RAIL_VEHICLES :Demiryolu Araçları STR_REPLACE_RAIL_VEHICLES :Demiryolu Araçları
STR_REPLACE_ELRAIL_VEHICLES :Elektrikli Trenler STR_REPLACE_ELRAIL_VEHICLES :Elektrikli Trenler
STR_REPLACE_MONORAIL_VEHICLES :Monoray Araçları STR_REPLACE_MONORAIL_VEHICLES :Monoray Araçları
STR_REPLACE_MAGLEV_VEHICLES :Maglev Araçları STR_REPLACE_MAGLEV_VEHICLES :Maglev Araçları
STR_REPLACE_ROAD_VEHICLES :Yol Araçları
STR_REPLACE_TRAM_VEHICLES :Tramvay Araçları
STR_REPLACE_REMOVE_WAGON :{BLACK}Vagon kaldırma: {ORANGE}{STRING} STR_REPLACE_REMOVE_WAGON :{BLACK}Vagon kaldırma: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Otomatik yenilemede tren boyutunun artması gerekiyorsa vagonları kaldır (en önden başlayarak yeterli sayıda vagon silinir) STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Otomatik yenilemede tren boyutunun artması gerekiyorsa vagonları kaldır (en önden başlayarak yeterli sayıda vagon silinir)
@@ -4102,6 +4182,13 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Vurgulan
STR_AI_LIST_CANCEL :{BLACK}İptal STR_AI_LIST_CANCEL :{BLACK}İptal
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Betiği değiştirme STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Betiği değiştirme
STR_SCREENSHOT_CAPTION :{WHITE}Ekran görüntüsü al
STR_SCREENSHOT_SCREENSHOT :{BLACK}Normal ekran görüntüsü
STR_SCREENSHOT_ZOOMIN_SCREENSHOT :{BLACK}Ekran görüntüsünü tamamen yakınlaştırdı
STR_SCREENSHOT_DEFAULTZOOM_SCREENSHOT :{BLACK}Varsayılan yakınlıkta ekran görüntüsü
STR_SCREENSHOT_WORLD_SCREENSHOT :{BLACK}Tüm haritanın ekran görüntüsünü al
STR_SCREENSHOT_HEIGHTMAP_SCREENSHOT :{BLACK}Yükseklik haritası ekran görüntüsü
STR_SCREENSHOT_MINIMAP_SCREENSHOT :{BLACK}Küçük harita ekran görüntüsü
# AI Parameters # AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parametreler STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parametreler
@@ -4375,6 +4462,7 @@ STR_ERROR_NO_SUITABLE_RAILROAD_TRACK :{WHITE}Uygun ra
STR_ERROR_MUST_REMOVE_RAILROAD_TRACK :{WHITE}Önce ray kaldırılmalı STR_ERROR_MUST_REMOVE_RAILROAD_TRACK :{WHITE}Önce ray kaldırılmalı
STR_ERROR_CROSSING_ON_ONEWAY_ROAD :{WHITE}Yol tek yönlü veya kapalı STR_ERROR_CROSSING_ON_ONEWAY_ROAD :{WHITE}Yol tek yönlü veya kapalı
STR_ERROR_CROSSING_DISALLOWED_RAIL :{WHITE}Bu ray türü için hemzemin geçit yapılamaz STR_ERROR_CROSSING_DISALLOWED_RAIL :{WHITE}Bu ray türü için hemzemin geçit yapılamaz
STR_ERROR_CROSSING_DISALLOWED_ROAD :{WHITE}Hemzemin geçite bu yol tipinde izin verilmemektedir.
STR_ERROR_CAN_T_BUILD_SIGNALS_HERE :{WHITE}Buraya sinyal yapılamıyor... STR_ERROR_CAN_T_BUILD_SIGNALS_HERE :{WHITE}Buraya sinyal yapılamıyor...
STR_ERROR_CAN_T_BUILD_RAILROAD_TRACK :{WHITE}Buraya ray yapılamıyor... STR_ERROR_CAN_T_BUILD_RAILROAD_TRACK :{WHITE}Buraya ray yapılamıyor...
STR_ERROR_CAN_T_REMOVE_RAILROAD_TRACK :{WHITE}Buradan ray kaldırılamıyor... STR_ERROR_CAN_T_REMOVE_RAILROAD_TRACK :{WHITE}Buradan ray kaldırılamıyor...
@@ -4394,6 +4482,11 @@ STR_ERROR_CAN_T_REMOVE_ROAD_FROM :{WHITE}Yol bura
STR_ERROR_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}Tramvay kaldırılamaz... STR_ERROR_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}Tramvay kaldırılamaz...
STR_ERROR_THERE_IS_NO_ROAD :{WHITE}... karayolu yok STR_ERROR_THERE_IS_NO_ROAD :{WHITE}... karayolu yok
STR_ERROR_THERE_IS_NO_TRAMWAY :{WHITE}... tramvay yolu yok STR_ERROR_THERE_IS_NO_TRAMWAY :{WHITE}... tramvay yolu yok
STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}Buradaki yol tipi değiştirilemiyor...
STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}Tramvay türünü burada değiştiremezsiniz
STR_ERROR_NO_SUITABLE_ROAD :{WHITE} Uygun yol yok
STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}Uygun olmayan tramvay
STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... uyumsuz tramvay
# Waterway construction errors # Waterway construction errors
STR_ERROR_CAN_T_BUILD_CANALS :{WHITE}Buraya kanal yapılamaz... STR_ERROR_CAN_T_BUILD_CANALS :{WHITE}Buraya kanal yapılamaz...
@@ -4446,6 +4539,7 @@ STR_ERROR_GROUP_CAN_T_CREATE :{WHITE}Grup olu
STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}Bu grup silinemiyor... STR_ERROR_GROUP_CAN_T_DELETE :{WHITE}Bu grup silinemiyor...
STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}Grubun ismi değiştirilemiyor... STR_ERROR_GROUP_CAN_T_RENAME :{WHITE}Grubun ismi değiştirilemiyor...
STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}Üst grup ayarlanamıyor... STR_ERROR_GROUP_CAN_T_SET_PARENT :{WHITE}Üst grup ayarlanamıyor...
STR_ERROR_GROUP_CAN_T_SET_PARENT_RECURSION :{WHITE}Grup hiyerarşisinde döngülere izin verilmez
STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}Bu gruptaki bütün araçlar çıkartılamıyor... STR_ERROR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}Bu gruptaki bütün araçlar çıkartılamıyor...
STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}Araç bu gruba eklenemiyor... STR_ERROR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}Araç bu gruba eklenemiyor...
STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}Paylaşılan araçlar bu gruba eklenemiyor... STR_ERROR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}Paylaşılan araçlar bu gruba eklenemiyor...

View File

@@ -31,6 +31,8 @@
#include "tilehighlight_func.h" #include "tilehighlight_func.h"
#include "hotkeys.h" #include "hotkeys.h"
#include "guitimer_func.h" #include "guitimer_func.h"
#include "error.h"
#include "news_gui.h"
#include "saveload/saveload.h" #include "saveload/saveload.h"
@@ -215,6 +217,8 @@ enum {
GHK_CHAT_ALL, GHK_CHAT_ALL,
GHK_CHAT_COMPANY, GHK_CHAT_COMPANY,
GHK_CHAT_SERVER, GHK_CHAT_SERVER,
GHK_CLOSE_NEWS,
GHK_CLOSE_ERROR,
GHK_CHANGE_MAP_MODE_PREV, GHK_CHANGE_MAP_MODE_PREV,
GHK_CHANGE_MAP_MODE_NEXT, GHK_CHANGE_MAP_MODE_NEXT,
}; };
@@ -414,6 +418,14 @@ struct MainWindow : Window
} }
break; break;
case GHK_CLOSE_NEWS: // close active news window
if (!HideActiveNewsMessage()) return ES_NOT_HANDLED;
break;
case GHK_CLOSE_ERROR: // close active error window
if (!HideActiveErrorMessage()) return ES_NOT_HANDLED;
break;
case GHK_CHANGE_MAP_MODE_PREV: case GHK_CHANGE_MAP_MODE_PREV:
if (_focused_window && _focused_window->viewport && _focused_window->viewport->zoom >= ZOOM_LVL_DRAW_MAP) { if (_focused_window && _focused_window->viewport && _focused_window->viewport->zoom >= ZOOM_LVL_DRAW_MAP) {
ChangeRenderMode(_focused_window->viewport, true); ChangeRenderMode(_focused_window->viewport, true);
@@ -540,6 +552,8 @@ static Hotkey global_hotkeys[] = {
Hotkey(_ghk_chat_all_keys, "chat_all", GHK_CHAT_ALL), Hotkey(_ghk_chat_all_keys, "chat_all", GHK_CHAT_ALL),
Hotkey(_ghk_chat_company_keys, "chat_company", GHK_CHAT_COMPANY), Hotkey(_ghk_chat_company_keys, "chat_company", GHK_CHAT_COMPANY),
Hotkey(_ghk_chat_server_keys, "chat_server", GHK_CHAT_SERVER), Hotkey(_ghk_chat_server_keys, "chat_server", GHK_CHAT_SERVER),
Hotkey(WKC_SPACE, "close_news", GHK_CLOSE_NEWS),
Hotkey(WKC_SPACE, "close_error", GHK_CLOSE_ERROR),
Hotkey(WKC_PAGEUP, "previous_map_mode", GHK_CHANGE_MAP_MODE_PREV), Hotkey(WKC_PAGEUP, "previous_map_mode", GHK_CHANGE_MAP_MODE_PREV),
Hotkey(WKC_PAGEDOWN, "next_map_mode", GHK_CHANGE_MAP_MODE_NEXT), Hotkey(WKC_PAGEDOWN, "next_map_mode", GHK_CHANGE_MAP_MODE_NEXT),
HOTKEY_LIST_END HOTKEY_LIST_END

View File

@@ -1,4 +1,4 @@
if (NOT OPTION_DEDICATED) if(NOT OPTION_DEDICATED)
add_files( add_files(
allegro_m.cpp allegro_m.cpp
allegro_m.h allegro_m.h
@@ -42,7 +42,7 @@ if (NOT OPTION_DEDICATED)
os2_m.h os2_m.h
CONDITION OPTION_OS2 CONDITION OPTION_OS2
) )
endif (NOT OPTION_DEDICATED) endif()
add_files( add_files(
midi.h midi.h

View File

@@ -519,16 +519,6 @@ struct NewsWindow : Window {
} }
} }
EventState OnKeyPress(WChar key, uint16 keycode) override
{
if (keycode == WKC_SPACE) {
/* Don't continue. */
delete this;
return ES_HANDLED;
}
return ES_NOT_HANDLED;
}
/** /**
* Some data on this window has become invalid. * Some data on this window has become invalid.
* @param data Information about the changed data. * @param data Information about the changed data.
@@ -603,7 +593,6 @@ private:
/* static */ int NewsWindow::duration = 0; // Instance creation. /* static */ int NewsWindow::duration = 0; // Instance creation.
/** Open up an own newspaper window for the news item */ /** Open up an own newspaper window for the news item */
static void ShowNewspaper(const NewsItem *ni) static void ShowNewspaper(const NewsItem *ni)
{ {
@@ -1032,6 +1021,17 @@ static void ShowNewsMessage(const NewsItem *ni)
} }
} }
/**
* Close active news message window
* @return true if a window was closed.
*/
bool HideActiveNewsMessage() {
NewsWindow *w = (NewsWindow*)FindWindowById(WC_NEWS_WINDOW, 0);
if (w == nullptr) return false;
delete w;
return true;
}
/** Show previous news item */ /** Show previous news item */
void ShowLastNewsMessage() void ShowLastNewsMessage()
{ {

View File

@@ -14,6 +14,7 @@
void ShowLastNewsMessage(); void ShowLastNewsMessage();
void ShowMessageHistory(); void ShowMessageHistory();
bool HideActiveNewsMessage();
extern NewsItem *_latest_news; extern NewsItem *_latest_news;

View File

@@ -1213,7 +1213,22 @@ void SwitchToMode(SwitchMode new_mode)
MakeNewEditorWorld(); MakeNewEditorWorld();
break; break;
case SM_RESTARTGAME: // Restart --> 'Random game' with current settings case SM_RESTARTGAME: // Restart --> Current settings preserved
if (_file_to_saveload.abstract_ftype == FT_SAVEGAME || _file_to_saveload.abstract_ftype == FT_SCENARIO) {
/* Restart current savegame/scenario */
_switch_mode = _game_mode == GM_EDITOR ? SM_LOAD_SCENARIO : SM_LOAD_GAME;
SwitchToMode(_switch_mode);
break;
} else if (_file_to_saveload.abstract_ftype == FT_HEIGHTMAP) {
/* Restart current heightmap */
_switch_mode = _game_mode == GM_EDITOR ? SM_LOAD_HEIGHTMAP : SM_RESTART_HEIGHTMAP;
SwitchToMode(_switch_mode);
break;
}
/* No break here, to enter the next case:
* Restart --> 'Random game' with current settings */
FALLTHROUGH;
case SM_NEWGAME: // New Game --> 'Random game' case SM_NEWGAME: // New Game --> 'Random game'
if (_network_server) { if (_network_server) {
seprintf(_network_game_info.map_name, lastof(_network_game_info.map_name), "Random Map"); seprintf(_network_game_info.map_name, lastof(_network_game_info.map_name), "Random Map");
@@ -1250,11 +1265,12 @@ void SwitchToMode(SwitchMode new_mode)
break; break;
} }
case SM_RESTART_HEIGHTMAP: // Load a heightmap and start a new game from it with current settings
case SM_START_HEIGHTMAP: // Load a heightmap and start a new game from it case SM_START_HEIGHTMAP: // Load a heightmap and start a new game from it
if (_network_server) { if (_network_server) {
seprintf(_network_game_info.map_name, lastof(_network_game_info.map_name), "%s (Heightmap)", _file_to_saveload.title); seprintf(_network_game_info.map_name, lastof(_network_game_info.map_name), "%s (Heightmap)", _file_to_saveload.title);
} }
MakeNewGame(true, true); MakeNewGame(true, new_mode == SM_START_HEIGHTMAP);
break; break;
case SM_LOAD_HEIGHTMAP: // Load heightmap from scenario editor case SM_LOAD_HEIGHTMAP: // Load heightmap from scenario editor

View File

@@ -34,6 +34,7 @@ enum SwitchMode {
SM_LOAD_SCENARIO, ///< Load scenario from scenario editor. SM_LOAD_SCENARIO, ///< Load scenario from scenario editor.
SM_START_HEIGHTMAP, ///< Load a heightmap and start a new game from it. SM_START_HEIGHTMAP, ///< Load a heightmap and start a new game from it.
SM_LOAD_HEIGHTMAP, ///< Load heightmap from scenario editor. SM_LOAD_HEIGHTMAP, ///< Load heightmap from scenario editor.
SM_RESTART_HEIGHTMAP, ///< Load a heightmap and start a new game from it with current settings.
}; };
/** Display Options */ /** Display Options */

View File

@@ -8,7 +8,7 @@ foreach(ENUM IN LISTS ENUM_LINES)
string(REGEX REPLACE ".* ([^ @]+)@.*" "\\1" FILE_PATTERN "${ENUM}") string(REGEX REPLACE ".* ([^ @]+)@.*" "\\1" FILE_PATTERN "${ENUM}")
file(GLOB FILENAMES "${FILE_PATTERN}") file(GLOB FILENAMES "${FILE_PATTERN}")
list(APPEND DEPENDENCIES ${FILENAMES}) list(APPEND DEPENDENCIES ${FILENAMES})
endforeach(ENUM) endforeach()
list(REMOVE_DUPLICATES DEPENDENCIES) list(REMOVE_DUPLICATES DEPENDENCIES)
# Add a command to generate script_window.hpp # Add a command to generate script_window.hpp
@@ -40,9 +40,9 @@ foreach(API "ai;AI" "game;GS" "template;Template")
list(GET API 1 APIUC) list(GET API 1 APIUC)
foreach(SCRIPT_API_FILE IN LISTS SCRIPT_API_FILES) foreach(SCRIPT_API_FILE IN LISTS SCRIPT_API_FILES)
if ("${SCRIPT_API_FILE}" MATCHES ".*script_controller.*") if("${SCRIPT_API_FILE}" MATCHES ".*script_controller.*")
continue() continue()
endif ("${SCRIPT_API_FILE}" MATCHES ".*script_controller.*") endif()
get_filename_component(SCRIPT_API_FILE_NAME "${SCRIPT_API_FILE}" NAME) get_filename_component(SCRIPT_API_FILE_NAME "${SCRIPT_API_FILE}" NAME)
string(REPLACE "script_" "${APILC}_" SCRIPT_API_FILE_NAME "${SCRIPT_API_FILE_NAME}") string(REPLACE "script_" "${APILC}_" SCRIPT_API_FILE_NAME "${SCRIPT_API_FILE_NAME}")
set(SCRIPT_API_BINARY_FILE "${CMAKE_BINARY_DIR}/generated/script/api/${APILC}/${SCRIPT_API_FILE_NAME}.sq") set(SCRIPT_API_BINARY_FILE "${CMAKE_BINARY_DIR}/generated/script/api/${APILC}/${SCRIPT_API_FILE_NAME}.sq")
@@ -62,7 +62,7 @@ foreach(API "ai;AI" "game;GS" "template;Template")
COMMENT "Generating ${APILC}/${SCRIPT_API_FILE_NAME}.sq" COMMENT "Generating ${APILC}/${SCRIPT_API_FILE_NAME}.sq"
) )
list(APPEND SCRIPT_${APIUC}_BINARY_FILES ${SCRIPT_API_BINARY_FILE}) list(APPEND SCRIPT_${APIUC}_BINARY_FILES ${SCRIPT_API_BINARY_FILE})
endforeach(SCRIPT_API_FILE) endforeach()
add_custom_target_timestamp(script_${APILC} add_custom_target_timestamp(script_${APILC}
DEPENDS DEPENDS
@@ -72,7 +72,7 @@ foreach(API "ai;AI" "game;GS" "template;Template")
script_window script_window
) )
if (NOT "${APILC}" STREQUAL "template") if(NOT "${APILC}" STREQUAL "template")
list(APPEND SCRIPT_${APIUC}_BINARY_FILES "${CMAKE_CURRENT_SOURCE_DIR}/${APILC}/${APILC}_controller.hpp.sq") list(APPEND SCRIPT_${APIUC}_BINARY_FILES "${CMAKE_CURRENT_SOURCE_DIR}/${APILC}/${APILC}_controller.hpp.sq")
set(INCLUDES_BINARY_FILE "${CMAKE_BINARY_DIR}/generated/script/api/${APILC}/${APILC}_includes.hpp") set(INCLUDES_BINARY_FILE "${CMAKE_BINARY_DIR}/generated/script/api/${APILC}/${APILC}_includes.hpp")
add_custom_command_timestamp(OUTPUT ${INCLUDES_BINARY_FILE} add_custom_command_timestamp(OUTPUT ${INCLUDES_BINARY_FILE}
@@ -100,11 +100,11 @@ foreach(API "ai;AI" "game;GS" "template;Template")
add_dependencies(script_api add_dependencies(script_api
script_${APILC}_includes script_${APILC}_includes
) )
else (NOT "${APILC}" STREQUAL "template") else()
add_dependencies(script_api add_dependencies(script_api
script_${APILC} script_${APILC}
) )
endif (NOT "${APILC}" STREQUAL "template") endif()
target_include_directories(script_api target_include_directories(script_api
INTERFACE INTERFACE
@@ -112,7 +112,7 @@ foreach(API "ai;AI" "game;GS" "template;Template")
${CMAKE_BINARY_DIR}/generated/script/api/${APILC} ${CMAKE_BINARY_DIR}/generated/script/api/${APILC}
${CMAKE_CURRENT_SOURCE_DIR}/${APILC} ${CMAKE_CURRENT_SOURCE_DIR}/${APILC}
) )
endforeach(API) endforeach()
add_library(openttd::script_api ALIAS script_api) add_library(openttd::script_api ALIAS script_api)

View File

@@ -1,4 +1,4 @@
if (NOT OPTION_DEDICATED) if(NOT OPTION_DEDICATED)
add_files( add_files(
allegro_s.cpp allegro_s.cpp
allegro_s.h allegro_s.h
@@ -34,7 +34,7 @@ if (NOT OPTION_DEDICATED)
xaudio2_s.h xaudio2_s.h
CONDITION WIN32 AND XAUDIO2_FOUND CONDITION WIN32 AND XAUDIO2_FOUND
) )
endif (NOT OPTION_DEDICATED) endif()
add_files( add_files(
sound_driver.hpp sound_driver.hpp

View File

@@ -23,6 +23,7 @@
#include "game/game.hpp" #include "game/game.hpp"
#include "command_func.h" #include "command_func.h"
#include "string_func.h" #include "string_func.h"
#include "tile_cmd.h"
#include "table/strings.h" #include "table/strings.h"
@@ -328,7 +329,14 @@ bool FindSubsidyTownCargoRoute()
const Town *src_town = Town::GetRandom(); const Town *src_town = Town::GetRandom();
if (src_town->cache.population < SUBSIDY_CARGO_MIN_POPULATION) return false; if (src_town->cache.population < SUBSIDY_CARGO_MIN_POPULATION) return false;
CargoArray town_cargo_produced = GetProductionAroundTiles(src_town->xy, 1, 1, SUBSIDY_TOWN_CARGO_RADIUS); /* Calculate the produced cargo of houses around town center. */
CargoArray town_cargo_produced;
TileArea ta = TileArea(src_town->xy, 1, 1).Expand(SUBSIDY_TOWN_CARGO_RADIUS);
TILE_AREA_LOOP(tile, ta) {
if (IsTileType(tile, MP_HOUSE)) {
AddProducedCargo(tile, town_cargo_produced);
}
}
/* Passenger subsidies are not handled here. */ /* Passenger subsidies are not handled here. */
town_cargo_produced[CT_PASSENGERS] = 0; town_cargo_produced[CT_PASSENGERS] = 0;
@@ -431,7 +439,15 @@ bool FindSubsidyCargoDestination(CargoID cid, SourceType src_type, SourceID src)
case ST_TOWN: { case ST_TOWN: {
/* Select a random town. */ /* Select a random town. */
const Town *dst_town = Town::GetRandom(); const Town *dst_town = Town::GetRandom();
CargoArray town_cargo_accepted = GetAcceptanceAroundTiles(dst_town->xy, 1, 1, SUBSIDY_TOWN_CARGO_RADIUS);
/* Calculate cargo acceptance of houses around town center. */
CargoArray town_cargo_accepted;
TileArea ta = TileArea(dst_town->xy, 1, 1).Expand(SUBSIDY_TOWN_CARGO_RADIUS);
TILE_AREA_LOOP(tile, ta) {
if (IsTileType(tile, MP_HOUSE)) {
AddAcceptedCargo(tile, town_cargo_accepted, nullptr);
}
}
/* Check if the town can accept this cargo. */ /* Check if the town can accept this cargo. */
if (town_cargo_accepted[cid] < 8) return false; if (town_cargo_accepted[cid] < 8) return false;

View File

@@ -1,6 +1,6 @@
add_subdirectory(cocoa) add_subdirectory(cocoa)
if (NOT OPTION_DEDICATED) if(NOT OPTION_DEDICATED)
add_files( add_files(
allegro_v.cpp allegro_v.cpp
allegro_v.h allegro_v.h
@@ -24,7 +24,7 @@ if (NOT OPTION_DEDICATED)
win32_v.h win32_v.h
CONDITION WIN32 CONDITION WIN32
) )
endif (NOT OPTION_DEDICATED) endif()
add_files( add_files(
dedicated_v.cpp dedicated_v.cpp