Merge branch 'master' into jgrpp

# Conflicts:
#	config.lib
#	projects/openttd_vs140.vcxproj
#	projects/openttd_vs140.vcxproj.filters
#	projects/openttd_vs141.vcxproj
#	projects/openttd_vs141.vcxproj.filters
#	projects/openttd_vs142.vcxproj
#	projects/openttd_vs142.vcxproj.filters
#	src/aircraft_cmd.cpp
#	src/base_station_base.h
#	src/core/pool_type.hpp
#	src/disaster_vehicle.cpp
#	src/economy.cpp
#	src/engine.cpp
#	src/group.h
#	src/group_cmd.cpp
#	src/group_gui.cpp
#	src/lang/english.txt
#	src/lang/german.txt
#	src/linkgraph/linkgraph_gui.cpp
#	src/network/network_command.cpp
#	src/network/network_server.cpp
#	src/openttd.cpp
#	src/order_cmd.cpp
#	src/road_cmd.cpp
#	src/saveload/afterload.cpp
#	src/saveload/cargopacket_sl.cpp
#	src/saveload/linkgraph_sl.cpp
#	src/saveload/order_sl.cpp
#	src/saveload/station_sl.cpp
#	src/saveload/town_sl.cpp
#	src/saveload/vehicle_sl.cpp
#	src/screenshot.cpp
#	src/screenshot.h
#	src/settings_gui.cpp
#	src/settings_type.h
#	src/smallmap_gui.cpp
#	src/station.cpp
#	src/station_cmd.cpp
#	src/table/settings.ini
#	src/toolbar_gui.cpp
#	src/town_cmd.cpp
#	src/train.h
#	src/train_cmd.cpp
#	src/train_gui.cpp
#	src/vehicle.cpp
#	src/vehicle_base.h
#	src/vehiclelist.cpp
#	src/window_type.h
This commit is contained in:
Jonathan G Rennison
2020-01-06 18:45:51 +00:00
281 changed files with 2714 additions and 2467 deletions

View File

@@ -1,3 +1,28 @@
1.10.0-beta2 (2019-12-25)
------------------------------------------------------------------------
- Feature: [Script] More error mappings (#7857)
- Feature: Ctrl+Click on a vehicle in the vehicle group window selects and scrolls to the vehicle's group (#7800)
- Feature: Ctrl+Click on the vehicle details button in the vehicle view window opens the vehicle group window focused on the vehicle (#7800)
- Feature: Add a button to the vehicle advisory news window to open the vehicle's group window (#7800)
- Feature: Ctrl+Click on a vehicle in the vehicle list window opens the vehicle group window focused on the vehicle's group (#7800)
- Fix: Custom sea level default value is now equal to minimum value (#7866)
- Fix: [NewGRF] Various tracktype fixes (#7863)
- Fix: Infrastructure total update when removing tram road stop (#7856)
- Fix #7847: Use ViewportSign coordinates for sign Kdtree coordinates (#7849)
- Fix #7836: Check coherency of NewGRF parameter min/max (#7840)
- Fix #7673: [Script] Allow removal of custom town text (#7834)
- Fix: Crash when displaying an error message at map edges (#7833)
- Fix #7783, #7816: [SDL2] Fix input handling in edit context (#7825)
- Fix #7697: Tile query on HQs did not display cargo correctly (#7824)
- Fix #7820: Possible game crash when removing oil rig (#7821)
- Fix #7606: Rare crash when trying to clean up a crashed script (#7819)
- Fix #7784: [SDL2] up/down/home/end key behaviour (#7815)
- Fix #7631: 16 out cargo support for industry directory (#7809)
- Fix #7646: Crash on random map generation failure (#7805)
- Fix #7430: Only reset time since pickup when train visits station if it has room to load (#7595)
- Fix #5405: Aircraft could route to depots outside their range (#7104)
1.10.0-beta1 (2019-10-29) 1.10.0-beta1 (2019-10-29)
------------------------------------------------------------------------ ------------------------------------------------------------------------
- Feature: Configurable minimum age for companies before allowing share trading (#7780) - Feature: Configurable minimum age for companies before allowing share trading (#7780)

View File

@@ -1609,12 +1609,20 @@ make_cflags_and_ldflags() {
# extensions in a way that breaks build with at least ICC. # extensions in a way that breaks build with at least ICC.
# This requires -O1 or more, so debug level 3 (-O0) is excluded. # This requires -O1 or more, so debug level 3 (-O0) is excluded.
CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=2" CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=2"
if [ "$os" = "MINGW" ]; then
# Prevent undefined references when _FORTIFY_SOURCE > 0
LDFLAGS="$LDFLAGS -fstack-protector"
fi
fi fi
cc_build_is_gcc=`basename "$cc_build" | grep "gcc" 2>/dev/null` cc_build_is_gcc=`basename "$cc_build" | grep "gcc" 2>/dev/null`
if [ -n "$cc_build_is_gcc" ]; then if [ -n "$cc_build_is_gcc" ]; then
# Add -O1 and fortify source to the tools needed for building, on gcc # Add -O1 and fortify source to the tools needed for building, on gcc
CFLAGS_BUILD="$CFLAGS_BUILD -D_FORTIFY_SOURCE=2 -O1" CFLAGS_BUILD="$CFLAGS_BUILD -D_FORTIFY_SOURCE=2 -O1"
if [ "$os" = "MINGW" ]; then
# Prevent undefined references when _FORTIFY_SOURCE > 0
LDFLAGS_BUILD="$LDFLAGS_BUILD -fstack-protector"
fi
elif [ -n "`basename "$cc_build" | grep "clang" 2>/dev/null`" ]; then elif [ -n "`basename "$cc_build" | grep "clang" 2>/dev/null`" ]; then
# Add -O1 to the tools needed for building, on clang # Add -O1 to the tools needed for building, on clang
CFLAGS_BUILD="$CFLAGS_BUILD -O1" CFLAGS_BUILD="$CFLAGS_BUILD -O1"

View File

@@ -1,6 +1,6 @@
OpenTTD's known bugs OpenTTD's known bugs
Last updated: 2019-10-29 Last updated: 2019-12-25
Release version: 1.10.0-beta1 Release version: 1.10.0-beta2
------------------------------------------------------------------------ ------------------------------------------------------------------------

View File

@@ -1,3 +1,9 @@
openttd (1.10.0~beta2-0) unstable; urgency=low
* New upstream release 1.10.0-beta2
-- OpenTTD <info@openttd.org> Wed, 25 Dec 2019 00:00:00 +0000
openttd (1.10.0~beta1-0) unstable; urgency=low openttd (1.10.0~beta1-0) unstable; urgency=low
* New upstream release 1.10.0-beta1 * New upstream release 1.10.0-beta1

View File

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

View File

@@ -2,8 +2,8 @@
!define APPV_MAJOR 1 !define APPV_MAJOR 1
!define APPV_MINOR 10 !define APPV_MINOR 10
!define APPV_MAINT 0 !define APPV_MAINT 0
!define APPV_BUILD 0 !define APPV_BUILD 1
!define APPV_EXTRA "-beta1" !define APPV_EXTRA "-beta2"
!define APPNAME "OpenTTD" ; Define application name !define APPNAME "OpenTTD" ; Define application name
!define APPVERSION "${APPV_MAJOR}.${APPV_MINOR}.${APPV_MAINT}${APPV_EXTRA}" ; Define application version !define APPVERSION "${APPV_MAJOR}.${APPV_MINOR}.${APPV_MAINT}${APPV_EXTRA}" ; Define application version

View File

@@ -420,6 +420,7 @@
<ClCompile Include="..\src\rev.cpp" /> <ClCompile Include="..\src\rev.cpp" />
<ClCompile Include="..\src\road.cpp" /> <ClCompile Include="..\src\road.cpp" />
<ClCompile Include="..\src\roadstop.cpp" /> <ClCompile Include="..\src\roadstop.cpp" />
<ClCompile Include="..\src\screenshot_gui.cpp" />
<ClCompile Include="..\src\screenshot.cpp" /> <ClCompile Include="..\src\screenshot.cpp" />
<ClCompile Include="..\src\settings.cpp" /> <ClCompile Include="..\src\settings.cpp" />
<ClCompile Include="..\src\signal.cpp" /> <ClCompile Include="..\src\signal.cpp" />
@@ -649,8 +650,10 @@
<ClInclude Include="..\src\safeguards.h" /> <ClInclude Include="..\src\safeguards.h" />
<ClInclude Include="..\src\scope.h" /> <ClInclude Include="..\src\scope.h" />
<ClInclude Include="..\src\screenshot.h" /> <ClInclude Include="..\src\screenshot.h" />
<ClInclude Include="..\src\screenshot_gui.h" />
<ClInclude Include="..\src\sound\sdl_s.h" /> <ClInclude Include="..\src\sound\sdl_s.h" />
<ClInclude Include="..\src\video\sdl_v.h" /> <ClInclude Include="..\src\video\sdl_v.h" />
<ClInclude Include="..\src\video\sdl2_v.h" />
<ClInclude Include="..\src\schdispatch.h" /> <ClInclude Include="..\src\schdispatch.h" />
<ClInclude Include="..\src\settings_func.h" /> <ClInclude Include="..\src\settings_func.h" />
<ClInclude Include="..\src\settings_gui.h" /> <ClInclude Include="..\src\settings_gui.h" />
@@ -886,6 +889,7 @@
<ClInclude Include="..\src\widgets\plans_widget.h" /> <ClInclude Include="..\src\widgets\plans_widget.h" />
<ClInclude Include="..\src\widgets\rail_widget.h" /> <ClInclude Include="..\src\widgets\rail_widget.h" />
<ClInclude Include="..\src\widgets\road_widget.h" /> <ClInclude Include="..\src\widgets\road_widget.h" />
<ClInclude Include="..\src\widgets\screenshot_widget.h" />
<ClInclude Include="..\src\widgets\settings_widget.h" /> <ClInclude Include="..\src\widgets\settings_widget.h" />
<ClInclude Include="..\src\widgets\sign_widget.h" /> <ClInclude Include="..\src\widgets\sign_widget.h" />
<ClInclude Include="..\src\widgets\smallmap_widget.h" /> <ClInclude Include="..\src\widgets\smallmap_widget.h" />
@@ -1382,6 +1386,7 @@
<ClCompile Include="..\src\video\dedicated_v.cpp" /> <ClCompile Include="..\src\video\dedicated_v.cpp" />
<ClCompile Include="..\src\video\null_v.cpp" /> <ClCompile Include="..\src\video\null_v.cpp" />
<ClCompile Include="..\src\video\sdl_v.cpp" /> <ClCompile Include="..\src\video\sdl_v.cpp" />
<ClCompile Include="..\src\video\sdl2_v.cpp" />
<ClCompile Include="..\src\video\win32_v.cpp" /> <ClCompile Include="..\src\video\win32_v.cpp" />
<ClCompile Include="..\src\music\dmusic.cpp" /> <ClCompile Include="..\src\music\dmusic.cpp" />
<ClCompile Include="..\src\music\null_m.cpp" /> <ClCompile Include="..\src\music\null_m.cpp" />
@@ -1389,6 +1394,7 @@
<ClCompile Include="..\src\music\win32_m.cpp" /> <ClCompile Include="..\src\music\win32_m.cpp" />
<ClCompile Include="..\src\sound\null_s.cpp" /> <ClCompile Include="..\src\sound\null_s.cpp" />
<ClCompile Include="..\src\sound\sdl_s.cpp" /> <ClCompile Include="..\src\sound\sdl_s.cpp" />
<ClCompile Include="..\src\sound\sdl2_s.cpp" />
<ClCompile Include="..\src\sound\win32_s.cpp" /> <ClCompile Include="..\src\sound\win32_s.cpp" />
<ClCompile Include="..\src\sound\xaudio2_s.cpp" /> <ClCompile Include="..\src\sound\xaudio2_s.cpp" />
<ClCompile Include="..\src\os\windows\crashlog_win.cpp" /> <ClCompile Include="..\src\os\windows\crashlog_win.cpp" />

View File

@@ -354,6 +354,9 @@
<ClCompile Include="..\src\roadstop.cpp"> <ClCompile Include="..\src\roadstop.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\src\screenshot_gui.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\screenshot.cpp"> <ClCompile Include="..\src\screenshot.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
@@ -1041,12 +1044,18 @@
<ClInclude Include="..\src\screenshot.h"> <ClInclude Include="..\src\screenshot.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\src\screenshot_gui.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\sound\sdl_s.h"> <ClInclude Include="..\src\sound\sdl_s.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\src\video\sdl_v.h"> <ClInclude Include="..\src\video\sdl_v.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\src\video\sdl2_v.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\schdispatch.h"> <ClInclude Include="..\src\schdispatch.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
@@ -1752,6 +1761,9 @@
<ClInclude Include="..\src\widgets\road_widget.h"> <ClInclude Include="..\src\widgets\road_widget.h">
<Filter>Widgets</Filter> <Filter>Widgets</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\src\widgets\screenshot_widget.h">
<Filter>Widgets</Filter>
</ClInclude>
<ClInclude Include="..\src\widgets\settings_widget.h"> <ClInclude Include="..\src\widgets\settings_widget.h">
<Filter>Widgets</Filter> <Filter>Widgets</Filter>
</ClInclude> </ClInclude>
@@ -3240,6 +3252,9 @@
<ClCompile Include="..\src\video\sdl_v.cpp"> <ClCompile Include="..\src\video\sdl_v.cpp">
<Filter>Video</Filter> <Filter>Video</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\src\video\sdl2_v.cpp">
<Filter>Video</Filter>
</ClCompile>
<ClCompile Include="..\src\video\win32_v.cpp"> <ClCompile Include="..\src\video\win32_v.cpp">
<Filter>Video</Filter> <Filter>Video</Filter>
</ClCompile> </ClCompile>
@@ -3261,6 +3276,9 @@
<ClCompile Include="..\src\sound\sdl_s.cpp"> <ClCompile Include="..\src\sound\sdl_s.cpp">
<Filter>Sound</Filter> <Filter>Sound</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\src\sound\sdl2_s.cpp">
<Filter>Sound</Filter>
</ClCompile>
<ClCompile Include="..\src\sound\win32_s.cpp"> <ClCompile Include="..\src\sound\win32_s.cpp">
<Filter>Sound</Filter> <Filter>Sound</Filter>
</ClCompile> </ClCompile>

View File

@@ -420,6 +420,7 @@
<ClCompile Include="..\src\rev.cpp" /> <ClCompile Include="..\src\rev.cpp" />
<ClCompile Include="..\src\road.cpp" /> <ClCompile Include="..\src\road.cpp" />
<ClCompile Include="..\src\roadstop.cpp" /> <ClCompile Include="..\src\roadstop.cpp" />
<ClCompile Include="..\src\screenshot_gui.cpp" />
<ClCompile Include="..\src\screenshot.cpp" /> <ClCompile Include="..\src\screenshot.cpp" />
<ClCompile Include="..\src\settings.cpp" /> <ClCompile Include="..\src\settings.cpp" />
<ClCompile Include="..\src\signal.cpp" /> <ClCompile Include="..\src\signal.cpp" />
@@ -649,8 +650,10 @@
<ClInclude Include="..\src\safeguards.h" /> <ClInclude Include="..\src\safeguards.h" />
<ClInclude Include="..\src\scope.h" /> <ClInclude Include="..\src\scope.h" />
<ClInclude Include="..\src\screenshot.h" /> <ClInclude Include="..\src\screenshot.h" />
<ClInclude Include="..\src\screenshot_gui.h" />
<ClInclude Include="..\src\sound\sdl_s.h" /> <ClInclude Include="..\src\sound\sdl_s.h" />
<ClInclude Include="..\src\video\sdl_v.h" /> <ClInclude Include="..\src\video\sdl_v.h" />
<ClInclude Include="..\src\video\sdl2_v.h" />
<ClInclude Include="..\src\schdispatch.h" /> <ClInclude Include="..\src\schdispatch.h" />
<ClInclude Include="..\src\settings_func.h" /> <ClInclude Include="..\src\settings_func.h" />
<ClInclude Include="..\src\settings_gui.h" /> <ClInclude Include="..\src\settings_gui.h" />
@@ -886,6 +889,7 @@
<ClInclude Include="..\src\widgets\plans_widget.h" /> <ClInclude Include="..\src\widgets\plans_widget.h" />
<ClInclude Include="..\src\widgets\rail_widget.h" /> <ClInclude Include="..\src\widgets\rail_widget.h" />
<ClInclude Include="..\src\widgets\road_widget.h" /> <ClInclude Include="..\src\widgets\road_widget.h" />
<ClInclude Include="..\src\widgets\screenshot_widget.h" />
<ClInclude Include="..\src\widgets\settings_widget.h" /> <ClInclude Include="..\src\widgets\settings_widget.h" />
<ClInclude Include="..\src\widgets\sign_widget.h" /> <ClInclude Include="..\src\widgets\sign_widget.h" />
<ClInclude Include="..\src\widgets\smallmap_widget.h" /> <ClInclude Include="..\src\widgets\smallmap_widget.h" />
@@ -1382,6 +1386,7 @@
<ClCompile Include="..\src\video\dedicated_v.cpp" /> <ClCompile Include="..\src\video\dedicated_v.cpp" />
<ClCompile Include="..\src\video\null_v.cpp" /> <ClCompile Include="..\src\video\null_v.cpp" />
<ClCompile Include="..\src\video\sdl_v.cpp" /> <ClCompile Include="..\src\video\sdl_v.cpp" />
<ClCompile Include="..\src\video\sdl2_v.cpp" />
<ClCompile Include="..\src\video\win32_v.cpp" /> <ClCompile Include="..\src\video\win32_v.cpp" />
<ClCompile Include="..\src\music\dmusic.cpp" /> <ClCompile Include="..\src\music\dmusic.cpp" />
<ClCompile Include="..\src\music\null_m.cpp" /> <ClCompile Include="..\src\music\null_m.cpp" />
@@ -1389,6 +1394,7 @@
<ClCompile Include="..\src\music\win32_m.cpp" /> <ClCompile Include="..\src\music\win32_m.cpp" />
<ClCompile Include="..\src\sound\null_s.cpp" /> <ClCompile Include="..\src\sound\null_s.cpp" />
<ClCompile Include="..\src\sound\sdl_s.cpp" /> <ClCompile Include="..\src\sound\sdl_s.cpp" />
<ClCompile Include="..\src\sound\sdl2_s.cpp" />
<ClCompile Include="..\src\sound\win32_s.cpp" /> <ClCompile Include="..\src\sound\win32_s.cpp" />
<ClCompile Include="..\src\sound\xaudio2_s.cpp" /> <ClCompile Include="..\src\sound\xaudio2_s.cpp" />
<ClCompile Include="..\src\os\windows\crashlog_win.cpp" /> <ClCompile Include="..\src\os\windows\crashlog_win.cpp" />

View File

@@ -354,6 +354,9 @@
<ClCompile Include="..\src\roadstop.cpp"> <ClCompile Include="..\src\roadstop.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\src\screenshot_gui.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\screenshot.cpp"> <ClCompile Include="..\src\screenshot.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
@@ -1041,12 +1044,18 @@
<ClInclude Include="..\src\screenshot.h"> <ClInclude Include="..\src\screenshot.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\src\screenshot_gui.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\sound\sdl_s.h"> <ClInclude Include="..\src\sound\sdl_s.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\src\video\sdl_v.h"> <ClInclude Include="..\src\video\sdl_v.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\src\video\sdl2_v.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\schdispatch.h"> <ClInclude Include="..\src\schdispatch.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
@@ -1752,6 +1761,9 @@
<ClInclude Include="..\src\widgets\road_widget.h"> <ClInclude Include="..\src\widgets\road_widget.h">
<Filter>Widgets</Filter> <Filter>Widgets</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\src\widgets\screenshot_widget.h">
<Filter>Widgets</Filter>
</ClInclude>
<ClInclude Include="..\src\widgets\settings_widget.h"> <ClInclude Include="..\src\widgets\settings_widget.h">
<Filter>Widgets</Filter> <Filter>Widgets</Filter>
</ClInclude> </ClInclude>
@@ -3240,6 +3252,9 @@
<ClCompile Include="..\src\video\sdl_v.cpp"> <ClCompile Include="..\src\video\sdl_v.cpp">
<Filter>Video</Filter> <Filter>Video</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\src\video\sdl2_v.cpp">
<Filter>Video</Filter>
</ClCompile>
<ClCompile Include="..\src\video\win32_v.cpp"> <ClCompile Include="..\src\video\win32_v.cpp">
<Filter>Video</Filter> <Filter>Video</Filter>
</ClCompile> </ClCompile>
@@ -3261,6 +3276,9 @@
<ClCompile Include="..\src\sound\sdl_s.cpp"> <ClCompile Include="..\src\sound\sdl_s.cpp">
<Filter>Sound</Filter> <Filter>Sound</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\src\sound\sdl2_s.cpp">
<Filter>Sound</Filter>
</ClCompile>
<ClCompile Include="..\src\sound\win32_s.cpp"> <ClCompile Include="..\src\sound\win32_s.cpp">
<Filter>Sound</Filter> <Filter>Sound</Filter>
</ClCompile> </ClCompile>

View File

@@ -420,6 +420,7 @@
<ClCompile Include="..\src\rev.cpp" /> <ClCompile Include="..\src\rev.cpp" />
<ClCompile Include="..\src\road.cpp" /> <ClCompile Include="..\src\road.cpp" />
<ClCompile Include="..\src\roadstop.cpp" /> <ClCompile Include="..\src\roadstop.cpp" />
<ClCompile Include="..\src\screenshot_gui.cpp" />
<ClCompile Include="..\src\screenshot.cpp" /> <ClCompile Include="..\src\screenshot.cpp" />
<ClCompile Include="..\src\settings.cpp" /> <ClCompile Include="..\src\settings.cpp" />
<ClCompile Include="..\src\signal.cpp" /> <ClCompile Include="..\src\signal.cpp" />
@@ -649,8 +650,10 @@
<ClInclude Include="..\src\safeguards.h" /> <ClInclude Include="..\src\safeguards.h" />
<ClInclude Include="..\src\scope.h" /> <ClInclude Include="..\src\scope.h" />
<ClInclude Include="..\src\screenshot.h" /> <ClInclude Include="..\src\screenshot.h" />
<ClInclude Include="..\src\screenshot_gui.h" />
<ClInclude Include="..\src\sound\sdl_s.h" /> <ClInclude Include="..\src\sound\sdl_s.h" />
<ClInclude Include="..\src\video\sdl_v.h" /> <ClInclude Include="..\src\video\sdl_v.h" />
<ClInclude Include="..\src\video\sdl2_v.h" />
<ClInclude Include="..\src\schdispatch.h" /> <ClInclude Include="..\src\schdispatch.h" />
<ClInclude Include="..\src\settings_func.h" /> <ClInclude Include="..\src\settings_func.h" />
<ClInclude Include="..\src\settings_gui.h" /> <ClInclude Include="..\src\settings_gui.h" />
@@ -886,6 +889,7 @@
<ClInclude Include="..\src\widgets\plans_widget.h" /> <ClInclude Include="..\src\widgets\plans_widget.h" />
<ClInclude Include="..\src\widgets\rail_widget.h" /> <ClInclude Include="..\src\widgets\rail_widget.h" />
<ClInclude Include="..\src\widgets\road_widget.h" /> <ClInclude Include="..\src\widgets\road_widget.h" />
<ClInclude Include="..\src\widgets\screenshot_widget.h" />
<ClInclude Include="..\src\widgets\settings_widget.h" /> <ClInclude Include="..\src\widgets\settings_widget.h" />
<ClInclude Include="..\src\widgets\sign_widget.h" /> <ClInclude Include="..\src\widgets\sign_widget.h" />
<ClInclude Include="..\src\widgets\smallmap_widget.h" /> <ClInclude Include="..\src\widgets\smallmap_widget.h" />
@@ -1382,6 +1386,7 @@
<ClCompile Include="..\src\video\dedicated_v.cpp" /> <ClCompile Include="..\src\video\dedicated_v.cpp" />
<ClCompile Include="..\src\video\null_v.cpp" /> <ClCompile Include="..\src\video\null_v.cpp" />
<ClCompile Include="..\src\video\sdl_v.cpp" /> <ClCompile Include="..\src\video\sdl_v.cpp" />
<ClCompile Include="..\src\video\sdl2_v.cpp" />
<ClCompile Include="..\src\video\win32_v.cpp" /> <ClCompile Include="..\src\video\win32_v.cpp" />
<ClCompile Include="..\src\music\dmusic.cpp" /> <ClCompile Include="..\src\music\dmusic.cpp" />
<ClCompile Include="..\src\music\null_m.cpp" /> <ClCompile Include="..\src\music\null_m.cpp" />
@@ -1389,6 +1394,7 @@
<ClCompile Include="..\src\music\win32_m.cpp" /> <ClCompile Include="..\src\music\win32_m.cpp" />
<ClCompile Include="..\src\sound\null_s.cpp" /> <ClCompile Include="..\src\sound\null_s.cpp" />
<ClCompile Include="..\src\sound\sdl_s.cpp" /> <ClCompile Include="..\src\sound\sdl_s.cpp" />
<ClCompile Include="..\src\sound\sdl2_s.cpp" />
<ClCompile Include="..\src\sound\win32_s.cpp" /> <ClCompile Include="..\src\sound\win32_s.cpp" />
<ClCompile Include="..\src\sound\xaudio2_s.cpp" /> <ClCompile Include="..\src\sound\xaudio2_s.cpp" />
<ClCompile Include="..\src\os\windows\crashlog_win.cpp" /> <ClCompile Include="..\src\os\windows\crashlog_win.cpp" />

View File

@@ -354,6 +354,9 @@
<ClCompile Include="..\src\roadstop.cpp"> <ClCompile Include="..\src\roadstop.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\src\screenshot_gui.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\src\screenshot.cpp"> <ClCompile Include="..\src\screenshot.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
@@ -1041,12 +1044,18 @@
<ClInclude Include="..\src\screenshot.h"> <ClInclude Include="..\src\screenshot.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\src\screenshot_gui.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\sound\sdl_s.h"> <ClInclude Include="..\src\sound\sdl_s.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\src\video\sdl_v.h"> <ClInclude Include="..\src\video\sdl_v.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\src\video\sdl2_v.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\src\schdispatch.h"> <ClInclude Include="..\src\schdispatch.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
@@ -1752,6 +1761,9 @@
<ClInclude Include="..\src\widgets\road_widget.h"> <ClInclude Include="..\src\widgets\road_widget.h">
<Filter>Widgets</Filter> <Filter>Widgets</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\src\widgets\screenshot_widget.h">
<Filter>Widgets</Filter>
</ClInclude>
<ClInclude Include="..\src\widgets\settings_widget.h"> <ClInclude Include="..\src\widgets\settings_widget.h">
<Filter>Widgets</Filter> <Filter>Widgets</Filter>
</ClInclude> </ClInclude>
@@ -3240,6 +3252,9 @@
<ClCompile Include="..\src\video\sdl_v.cpp"> <ClCompile Include="..\src\video\sdl_v.cpp">
<Filter>Video</Filter> <Filter>Video</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\src\video\sdl2_v.cpp">
<Filter>Video</Filter>
</ClCompile>
<ClCompile Include="..\src\video\win32_v.cpp"> <ClCompile Include="..\src\video\win32_v.cpp">
<Filter>Video</Filter> <Filter>Video</Filter>
</ClCompile> </ClCompile>
@@ -3261,6 +3276,9 @@
<ClCompile Include="..\src\sound\sdl_s.cpp"> <ClCompile Include="..\src\sound\sdl_s.cpp">
<Filter>Sound</Filter> <Filter>Sound</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\src\sound\sdl2_s.cpp">
<Filter>Sound</Filter>
</ClCompile>
<ClCompile Include="..\src\sound\win32_s.cpp"> <ClCompile Include="..\src\sound\win32_s.cpp">
<Filter>Sound</Filter> <Filter>Sound</Filter>
</ClCompile> </ClCompile>

View File

@@ -82,6 +82,7 @@ rail.cpp
rev.cpp rev.cpp
road.cpp road.cpp
roadstop.cpp roadstop.cpp
screenshot_gui.cpp
screenshot.cpp screenshot.cpp
settings.cpp settings.cpp
signal.cpp signal.cpp
@@ -337,6 +338,7 @@ roadveh.h
safeguards.h safeguards.h
scope.h scope.h
screenshot.h screenshot.h
screenshot_gui.h
sound/sdl_s.h sound/sdl_s.h
video/sdl_v.h video/sdl_v.h
video/sdl2_v.h video/sdl2_v.h
@@ -597,6 +599,7 @@ widgets/osk_widget.h
widgets/plans_widget.h widgets/plans_widget.h
widgets/rail_widget.h widgets/rail_widget.h
widgets/road_widget.h widgets/road_widget.h
widgets/screenshot_widget.h
widgets/settings_widget.h widgets/settings_widget.h
widgets/sign_widget.h widgets/sign_widget.h
widgets/smallmap_widget.h widgets/smallmap_widget.h

View File

@@ -77,8 +77,7 @@
if ((AI::frame_counter & ((1 << (4 - _settings_game.difficulty.competitor_speed)) - 1)) != 0) return; if ((AI::frame_counter & ((1 << (4 - _settings_game.difficulty.competitor_speed)) - 1)) != 0) return;
Backup<CompanyID> cur_company(_current_company, FILE_LINE); Backup<CompanyID> cur_company(_current_company, FILE_LINE);
const Company *c; for (const Company *c : Company::Iterate()) {
FOR_ALL_COMPANIES(c) {
if (c->is_ai) { if (c->is_ai) {
SCOPE_INFO_FMT([&], "AI::GameLoop: %i: %s (v%d)\n", (int)c->index, c->ai_info->GetName(), c->ai_info->GetVersion()); SCOPE_INFO_FMT([&], "AI::GameLoop: %i: %s (v%d)\n", (int)c->index, c->ai_info->GetName(), c->ai_info->GetVersion());
PerformanceMeasurer framerate((PerformanceElement)(PFE_AI0 + c->index)); PerformanceMeasurer framerate((PerformanceElement)(PFE_AI0 + c->index));
@@ -157,8 +156,7 @@
/* It might happen there are no companies .. than we have nothing to loop */ /* It might happen there are no companies .. than we have nothing to loop */
if (Company::GetPoolSize() == 0) return; if (Company::GetPoolSize() == 0) return;
const Company *c; for (const Company *c : Company::Iterate()) {
FOR_ALL_COMPANIES(c) {
if (c->is_ai) AI::Stop(c->index); if (c->is_ai) AI::Stop(c->index);
} }
} }

View File

@@ -1052,8 +1052,7 @@ struct AIDebugWindow : public Window {
ai_debug_company = INVALID_COMPANY; ai_debug_company = INVALID_COMPANY;
const Company *c; for (const Company *c : Company::Iterate()) {
FOR_ALL_COMPANIES(c) {
if (c->is_ai) { if (c->is_ai) {
ChangeToAI(c->index); ChangeToAI(c->index);
return; return;
@@ -1312,8 +1311,7 @@ struct AIDebugWindow : public Window {
if ((_pause_mode & PM_PAUSED_NORMAL) == PM_PAUSED_NORMAL) { if ((_pause_mode & PM_PAUSED_NORMAL) == PM_PAUSED_NORMAL) {
bool all_unpaused = !Game::IsPaused(); bool all_unpaused = !Game::IsPaused();
if (all_unpaused) { if (all_unpaused) {
Company *c; for (const Company *c : Company::Iterate()) {
FOR_ALL_COMPANIES(c) {
if (c->is_ai && AI::IsPaused(c->index)) { if (c->is_ai && AI::IsPaused(c->index)) {
all_unpaused = false; all_unpaused = false;
break; break;
@@ -1552,8 +1550,7 @@ void ShowAIDebugWindowIfAIError()
/* Network clients can't debug AIs. */ /* Network clients can't debug AIs. */
if (_networking && !_network_server) return; if (_networking && !_network_server) return;
Company *c; for (const Company *c : Company::Iterate()) {
FOR_ALL_COMPANIES(c) {
if (c->is_ai && c->ai_instance->IsDead()) { if (c->is_ai && c->ai_instance->IsDead()) {
ShowAIDebugWindow(c->index); ShowAIDebugWindow(c->index);
break; break;

View File

@@ -137,11 +137,6 @@ struct Aircraft FINAL : public SpecializedVehicle<Aircraft, VEH_AIRCRAFT> {
} }
}; };
/**
* Macro for iterating over all aircraft.
*/
#define FOR_ALL_AIRCRAFT(var) FOR_ALL_VEHICLES_OF_TYPE(Aircraft, var)
void GetRotorImage(const Aircraft *v, EngineImageType image_type, VehicleSpriteSeq *result); void GetRotorImage(const Aircraft *v, EngineImageType image_type, VehicleSpriteSeq *result);
Station *GetTargetAirportIfValid(const Aircraft *v); Station *GetTargetAirportIfValid(const Aircraft *v);

View File

@@ -121,7 +121,6 @@ enum HelicopterRotorStates {
*/ */
static StationID FindNearestHangar(const Aircraft *v) static StationID FindNearestHangar(const Aircraft *v)
{ {
const Station *st;
uint best = 0; uint best = 0;
StationID index = INVALID_STATION; StationID index = INVALID_STATION;
TileIndex vtile = TileVirtXYClampedToMap(v->x_pos, v->y_pos); TileIndex vtile = TileVirtXYClampedToMap(v->x_pos, v->y_pos);
@@ -142,7 +141,7 @@ static StationID FindNearestHangar(const Aircraft *v)
} }
} }
FOR_ALL_STATIONS(st) { for (const Station *st : Station::Iterate()) {
if (!IsInfraUsageAllowed(VEH_AIRCRAFT, v->owner, st->owner) || !(st->facilities & FACIL_AIRPORT) || !st->airport.HasHangar()) continue; if (!IsInfraUsageAllowed(VEH_AIRCRAFT, v->owner, st->owner) || !(st->facilities & FACIL_AIRPORT) || !st->airport.HasHangar()) continue;
const AirportFTAClass *afc = st->airport.GetFTA(); const AirportFTAClass *afc = st->airport.GetFTA();
@@ -2187,8 +2186,7 @@ void UpdateAirplanesOnNewStation(const Station *st)
const AirportFTAClass *ap = st->airport.GetFTA(); const AirportFTAClass *ap = st->airport.GetFTA();
Direction rotation = st->airport.tile == INVALID_TILE ? DIR_N : st->airport.rotation; Direction rotation = st->airport.tile == INVALID_TILE ? DIR_N : st->airport.rotation;
Aircraft *v; for (Aircraft *v : Aircraft::Iterate()) {
FOR_ALL_AIRCRAFT(v) {
if (!v->IsNormalAircraft() || v->targetairport != st->index) continue; if (!v->IsNormalAircraft() || v->targetairport != st->index) continue;
assert(v->state == FLYING); assert(v->state == FLYING);

View File

@@ -41,7 +41,4 @@ struct EngineRenew : EngineRenewPool::PoolItem<&_enginerenew_pool> {
~EngineRenew() {} ~EngineRenew() {}
}; };
#define FOR_ALL_ENGINE_RENEWS_FROM(var, start) FOR_ALL_ITEMS_FROM(EngineRenew, enginerenew_index, var, start)
#define FOR_ALL_ENGINE_RENEWS(var) FOR_ALL_ENGINE_RENEWS_FROM(var, 0)
#endif /* AUTOREPLACE_BASE_H */ #endif /* AUTOREPLACE_BASE_H */

View File

@@ -124,8 +124,7 @@ class ReplaceVehicleWindow : public Window {
GUIEngineList *list = &this->engines[side]; GUIEngineList *list = &this->engines[side];
list->clear(); list->clear();
const Engine *e; for (const Engine *e : Engine::IterateType(type)) {
FOR_ALL_ENGINES_OF_TYPE(e, type) {
if (!draw_left && !this->show_hidden_engines && e->IsHidden(_local_company)) continue; if (!draw_left && !this->show_hidden_engines && e->IsHidden(_local_company)) continue;
EngineID eid = e->index; EngineID eid = e->index;
switch (type) { switch (type) {

View File

@@ -187,8 +187,6 @@ struct BaseStation : StationPool::PoolItem<&_station_pool> {
void FillCachedName(); void FillCachedName();
}; };
#define FOR_ALL_BASE_STATIONS(var) FOR_ALL_ITEMS_FROM(BaseStation, station_index, var, 0)
/** /**
* Class defining several overloaded accessors so we don't * Class defining several overloaded accessors so we don't
* have to cast base stations that often * have to cast base stations that often
@@ -276,10 +274,13 @@ struct SpecializedStation : public BaseStation {
assert(IsExpected(st)); assert(IsExpected(st));
return (const T *)st; return (const T *)st;
} }
/**
* Returns an iterable ensemble of all valid stations of type T
* @param from index of the first station to consider
* @return an iterable ensemble of all valid stations of type T
*/
static Pool::IterateWrapper<T> Iterate(size_t from = 0) { return Pool::IterateWrapper<T>(from); }
}; };
#define FOR_ALL_BASE_STATIONS_OF_TYPE(name, var) \
for (size_t station_index = 0; var = nullptr, station_index < name::GetPoolSize(); station_index++) \
if ((var = name::GetIfValid(station_index)) != nullptr)
#endif /* BASE_STATION_BASE_H */ #endif /* BASE_STATION_BASE_H */

View File

@@ -11,7 +11,7 @@
#include "base_media_base.h" #include "base_media_base.h"
#include "blitter/factory.hpp" #include "blitter/factory.hpp"
#if defined(WITH_FREETYPE) #if defined(WITH_FREETYPE) || defined(WITH_UNISCRIBE)
#include "core/geometry_func.hpp" #include "core/geometry_func.hpp"
#include "fontcache.h" #include "fontcache.h"
@@ -218,7 +218,7 @@ bool HandleBootstrap()
if (BlitterFactory::GetCurrentBlitter()->GetScreenDepth() == 0) goto failure; if (BlitterFactory::GetCurrentBlitter()->GetScreenDepth() == 0) goto failure;
/* If there is no network or no freetype, then there is nothing we can do. Go straight to failure. */ /* If there is no network or no freetype, then there is nothing we can do. Go straight to failure. */
#if defined(WITH_FREETYPE) && (defined(WITH_FONTCONFIG) || defined(_WIN32) || defined(__APPLE__)) #if (defined(_WIN32) && defined(WITH_UNISCRIBE)) || (defined(WITH_FREETYPE) && (defined(WITH_FONTCONFIG) || defined(__APPLE__)))
if (!_network_available) goto failure; if (!_network_available) goto failure;
/* First tell the game we're bootstrapping. */ /* First tell the game we're bootstrapping. */
@@ -262,6 +262,6 @@ bool HandleBootstrap()
/* Failure to get enough working to get a graphics set. */ /* Failure to get enough working to get a graphics set. */
failure: failure:
usererror("Failed to find a graphics set. Please acquire a graphics set for OpenTTD. See section 4.1 of README.md."); usererror("Failed to find a graphics set. Please acquire a graphics set for OpenTTD. See section 1.4 of README.md.");
return false; return false;
} }

View File

@@ -1278,8 +1278,7 @@ struct BuildVehicleWindow : Window {
* Also check to see if the previously selected engine is still available, * Also check to see if the previously selected engine is still available,
* and if not, reset selection to INVALID_ENGINE. This could be the case * and if not, reset selection to INVALID_ENGINE. This could be the case
* when engines become obsolete and are removed */ * when engines become obsolete and are removed */
const Engine *e; for (const Engine *e : Engine::IterateType(VEH_TRAIN)) {
FOR_ALL_ENGINES_OF_TYPE(e, VEH_TRAIN) {
if (!this->show_hidden_engines && e->IsHidden(_local_company)) continue; if (!this->show_hidden_engines && e->IsHidden(_local_company)) continue;
EngineID eid = e->index; EngineID eid = e->index;
const RailVehicleInfo *rvi = &e->u.rail; const RailVehicleInfo *rvi = &e->u.rail;
@@ -1322,8 +1321,7 @@ struct BuildVehicleWindow : Window {
this->eng_list.clear(); this->eng_list.clear();
const Engine *e; for (const Engine *e : Engine::IterateType(VEH_ROAD)) {
FOR_ALL_ENGINES_OF_TYPE(e, VEH_ROAD) {
if (!this->show_hidden_engines && e->IsHidden(_local_company)) continue; if (!this->show_hidden_engines && e->IsHidden(_local_company)) continue;
EngineID eid = e->index; EngineID eid = e->index;
if (!IsEngineBuildable(eid, VEH_ROAD, _local_company)) continue; if (!IsEngineBuildable(eid, VEH_ROAD, _local_company)) continue;
@@ -1342,8 +1340,7 @@ struct BuildVehicleWindow : Window {
EngineID sel_id = INVALID_ENGINE; EngineID sel_id = INVALID_ENGINE;
this->eng_list.clear(); this->eng_list.clear();
const Engine *e; for (const Engine *e : Engine::IterateType(VEH_SHIP)) {
FOR_ALL_ENGINES_OF_TYPE(e, VEH_SHIP) {
if (!this->show_hidden_engines && e->IsHidden(_local_company)) continue; if (!this->show_hidden_engines && e->IsHidden(_local_company)) continue;
EngineID eid = e->index; EngineID eid = e->index;
if (!IsEngineBuildable(eid, VEH_SHIP, _local_company)) continue; if (!IsEngineBuildable(eid, VEH_SHIP, _local_company)) continue;
@@ -1367,8 +1364,7 @@ struct BuildVehicleWindow : Window {
* Also check to see if the previously selected plane is still available, * Also check to see if the previously selected plane is still available,
* and if not, reset selection to INVALID_ENGINE. This could be the case * and if not, reset selection to INVALID_ENGINE. This could be the case
* when planes become obsolete and are removed */ * when planes become obsolete and are removed */
const Engine *e; for (const Engine *e : Engine::IterateType(VEH_AIRCRAFT)) {
FOR_ALL_ENGINES_OF_TYPE(e, VEH_AIRCRAFT) {
if (!this->show_hidden_engines && e->IsHidden(_local_company)) continue; if (!this->show_hidden_engines && e->IsHidden(_local_company)) continue;
EngineID eid = e->index; EngineID eid = e->index;
if (!IsEngineBuildable(eid, VEH_AIRCRAFT, _local_company)) continue; if (!IsEngineBuildable(eid, VEH_AIRCRAFT, _local_company)) continue;

View File

@@ -272,8 +272,7 @@ void CargoPacket::PayDeferredPayments()
*/ */
/* static */ void CargoPacket::InvalidateAllFrom(SourceType src_type, SourceID src) /* static */ void CargoPacket::InvalidateAllFrom(SourceType src_type, SourceID src)
{ {
CargoPacket *cp; for (CargoPacket *cp : CargoPacket::Iterate()) {
FOR_ALL_CARGOPACKETS(cp) {
if (cp->source_type == src_type && cp->source_id == src) cp->source_id = INVALID_SOURCE; if (cp->source_type == src_type && cp->source_id == src) cp->source_id = INVALID_SOURCE;
} }
} }
@@ -284,8 +283,7 @@ void CargoPacket::PayDeferredPayments()
*/ */
/* static */ void CargoPacket::InvalidateAllFrom(StationID sid) /* static */ void CargoPacket::InvalidateAllFrom(StationID sid)
{ {
CargoPacket *cp; for (CargoPacket *cp : CargoPacket::Iterate()) {
FOR_ALL_CARGOPACKETS(cp) {
if (cp->source == sid) cp->source = INVALID_STATION; if (cp->source == sid) cp->source = INVALID_STATION;
} }
} }

View File

@@ -206,19 +206,6 @@ public:
static bool ValidateDeferredCargoPayments(); static bool ValidateDeferredCargoPayments();
}; };
/**
* Iterate over all _valid_ cargo packets from the given start.
* @param var Variable used as "iterator".
* @param start Cargo packet ID of the first packet to iterate over.
*/
#define FOR_ALL_CARGOPACKETS_FROM(var, start) FOR_ALL_ITEMS_FROM(CargoPacket, cargopacket_index, var, start)
/**
* Iterate over all _valid_ cargo packets from the begin of the pool.
* @param var Variable used as "iterator".
*/
#define FOR_ALL_CARGOPACKETS(var) FOR_ALL_CARGOPACKETS_FROM(var, 0)
/** /**
* Simple collection class for a list of cargo packets. * Simple collection class for a list of cargo packets.
* @tparam Tinst Actual instantiation of this cargo list. * @tparam Tinst Actual instantiation of this cargo list.

View File

@@ -140,6 +140,7 @@ CommandProc CmdFoundTown;
CommandProc CmdRenameTown; CommandProc CmdRenameTown;
CommandProc CmdDoTownAction; CommandProc CmdDoTownAction;
CommandProc CmdTownGrowthRate; CommandProc CmdTownGrowthRate;
CommandProc CmdTownRating;
CommandProc CmdTownCargoGoal; CommandProc CmdTownCargoGoal;
CommandProc CmdTownSetText; CommandProc CmdTownSetText;
CommandProc CmdExpandTown; CommandProc CmdExpandTown;
@@ -361,6 +362,7 @@ static const Command _command_proc_table[] = {
DEF_CMD(CmdDoTownAction, 0, CMDT_LANDSCAPE_CONSTRUCTION), // CMD_DO_TOWN_ACTION DEF_CMD(CmdDoTownAction, 0, CMDT_LANDSCAPE_CONSTRUCTION), // CMD_DO_TOWN_ACTION
DEF_CMD(CmdTownCargoGoal, CMD_DEITY, CMDT_OTHER_MANAGEMENT ), // CMD_TOWN_CARGO_GOAL DEF_CMD(CmdTownCargoGoal, CMD_DEITY, CMDT_OTHER_MANAGEMENT ), // CMD_TOWN_CARGO_GOAL
DEF_CMD(CmdTownGrowthRate, CMD_DEITY, CMDT_OTHER_MANAGEMENT ), // CMD_TOWN_GROWTH_RATE DEF_CMD(CmdTownGrowthRate, CMD_DEITY, CMDT_OTHER_MANAGEMENT ), // CMD_TOWN_GROWTH_RATE
DEF_CMD(CmdTownRating, CMD_DEITY, CMDT_OTHER_MANAGEMENT ), // CMD_TOWN_RATING
DEF_CMD(CmdTownSetText, CMD_STR_CTRL | CMD_DEITY, CMDT_OTHER_MANAGEMENT ), // CMD_TOWN_SET_TEXT DEF_CMD(CmdTownSetText, CMD_STR_CTRL | CMD_DEITY, CMDT_OTHER_MANAGEMENT ), // CMD_TOWN_SET_TEXT
DEF_CMD(CmdExpandTown, CMD_DEITY, CMDT_LANDSCAPE_CONSTRUCTION), // CMD_EXPAND_TOWN DEF_CMD(CmdExpandTown, CMD_DEITY, CMDT_LANDSCAPE_CONSTRUCTION), // CMD_EXPAND_TOWN
DEF_CMD(CmdDeleteTown, CMD_OFFLINE, CMDT_LANDSCAPE_CONSTRUCTION), // CMD_DELETE_TOWN DEF_CMD(CmdDeleteTown, CMD_OFFLINE, CMDT_LANDSCAPE_CONSTRUCTION), // CMD_DELETE_TOWN

View File

@@ -305,6 +305,7 @@ enum Commands {
CMD_DO_TOWN_ACTION, ///< do a action from the town detail window (like advertises or bribe) CMD_DO_TOWN_ACTION, ///< do a action from the town detail window (like advertises or bribe)
CMD_TOWN_CARGO_GOAL, ///< set the goal of a cargo for a town CMD_TOWN_CARGO_GOAL, ///< set the goal of a cargo for a town
CMD_TOWN_GROWTH_RATE, ///< set the town growth rate CMD_TOWN_GROWTH_RATE, ///< set the town growth rate
CMD_TOWN_RATING, ///< set rating of a company in a town
CMD_TOWN_SET_TEXT, ///< set the custom text of a town CMD_TOWN_SET_TEXT, ///< set the custom text of a town
CMD_EXPAND_TOWN, ///< expand a town CMD_EXPAND_TOWN, ///< expand a town
CMD_DELETE_TOWN, ///< delete a town CMD_DELETE_TOWN, ///< delete a town

View File

@@ -171,9 +171,6 @@ struct Company : CompanyPool::PoolItem<&_company_pool>, CompanyProperties {
static void PostDestructor(size_t index); static void PostDestructor(size_t index);
}; };
#define FOR_ALL_COMPANIES_FROM(var, start) FOR_ALL_ITEMS_FROM(Company, company_index, var, start)
#define FOR_ALL_COMPANIES(var) FOR_ALL_COMPANIES_FROM(var, 0)
Money CalculateCompanyValue(const Company *c, bool including_loan = true); Money CalculateCompanyValue(const Company *c, bool including_loan = true);
extern uint _next_competitor_start; extern uint _next_competitor_start;

View File

@@ -268,8 +268,7 @@ void SubtractMoneyFromCompanyFract(CompanyID company, CommandCost cst)
/** Update the landscaping limits per company. */ /** Update the landscaping limits per company. */
void UpdateLandscapingLimits() void UpdateLandscapingLimits()
{ {
Company *c; for (Company *c : Company::Iterate()) {
FOR_ALL_COMPANIES(c) {
c->terraform_limit = min(c->terraform_limit + _settings_game.construction.terraform_per_64k_frames, (uint32)_settings_game.construction.terraform_frame_burst << 16); c->terraform_limit = min(c->terraform_limit + _settings_game.construction.terraform_per_64k_frames, (uint32)_settings_game.construction.terraform_frame_burst << 16);
c->clear_limit = min(c->clear_limit + _settings_game.construction.clear_per_64k_frames, (uint32)_settings_game.construction.clear_frame_burst << 16); c->clear_limit = min(c->clear_limit + _settings_game.construction.clear_per_64k_frames, (uint32)_settings_game.construction.clear_frame_burst << 16);
c->tree_limit = min(c->tree_limit + _settings_game.construction.tree_per_64k_frames, (uint32)_settings_game.construction.tree_frame_burst << 16); c->tree_limit = min(c->tree_limit + _settings_game.construction.tree_per_64k_frames, (uint32)_settings_game.construction.tree_frame_burst << 16);
@@ -366,8 +365,7 @@ static void GenerateCompanyName(Company *c)
verify_name:; verify_name:;
/* No companies must have this name already */ /* No companies must have this name already */
Company *cc; for (const Company *cc : Company::Iterate()) {
FOR_ALL_COMPANIES(cc) {
if (cc->name_1 == str && cc->name_2 == strp) goto bad_town_name; if (cc->name_1 == str && cc->name_2 == strp) goto bad_town_name;
} }
@@ -453,8 +451,7 @@ static Colours GenerateCompanyColour()
} }
/* Move the colours that look similar to each company's colour to the side */ /* Move the colours that look similar to each company's colour to the side */
Company *c; for (const Company *c : Company::Iterate()) {
FOR_ALL_COMPANIES(c) {
Colours pcolour = (Colours)c->colour; Colours pcolour = (Colours)c->colour;
for (uint i = 0; i < COLOUR_END; i++) { for (uint i = 0; i < COLOUR_END; i++) {
@@ -500,8 +497,7 @@ restart:;
GetString(buffer, STR_PRESIDENT_NAME, lastof(buffer)); GetString(buffer, STR_PRESIDENT_NAME, lastof(buffer));
if (Utf8StringLength(buffer) >= MAX_LENGTH_PRESIDENT_NAME_CHARS) continue; if (Utf8StringLength(buffer) >= MAX_LENGTH_PRESIDENT_NAME_CHARS) continue;
Company *cc; for (const Company *cc : Company::Iterate()) {
FOR_ALL_COMPANIES(cc) {
if (c != cc) { if (c != cc) {
/* Reserve extra space so even overlength president names can be compared. */ /* Reserve extra space so even overlength president names can be compared. */
char buffer2[(MAX_LENGTH_PRESIDENT_NAME_CHARS + 1) * MAX_CHAR_LENGTH]; char buffer2[(MAX_LENGTH_PRESIDENT_NAME_CHARS + 1) * MAX_CHAR_LENGTH];
@@ -527,8 +523,7 @@ void ResetCompanyLivery(Company *c)
c->livery[scheme].colour2 = c->colour; c->livery[scheme].colour2 = c->colour;
} }
Group *g; for (Group *g : Group::Iterate()) {
FOR_ALL_GROUPS(g) {
if (g->owner == c->index) { if (g->owner == c->index) {
g->livery.in_use = 0; g->livery.in_use = 0;
g->livery.colour1 = c->colour; g->livery.colour1 = c->colour;
@@ -606,11 +601,9 @@ static bool MaybeStartNewCompany()
{ {
if (_networking && Company::GetNumItems() >= _settings_client.network.max_companies) return false; if (_networking && Company::GetNumItems() >= _settings_client.network.max_companies) return false;
Company *c;
/* count number of competitors */ /* count number of competitors */
uint n = 0; uint n = 0;
FOR_ALL_COMPANIES(c) { for (const Company *c : Company::Iterate()) {
if (c->is_ai) n++; if (c->is_ai) n++;
} }
@@ -679,11 +672,11 @@ static void HandleBankruptcyTakeover(Company *c)
/* Did we ask everyone for bankruptcy? If so, bail out. */ /* Did we ask everyone for bankruptcy? If so, bail out. */
if (c->bankrupt_asked == MAX_UVALUE(CompanyMask)) return; if (c->bankrupt_asked == MAX_UVALUE(CompanyMask)) return;
Company *c2, *best = nullptr; Company *best = nullptr;
int32 best_performance = -1; int32 best_performance = -1;
/* Ask the company with the highest performance history first */ /* Ask the company with the highest performance history first */
FOR_ALL_COMPANIES(c2) { for (Company *c2 : Company::Iterate()) {
if (c2->bankrupt_asked == 0 && // Don't ask companies going bankrupt themselves if (c2->bankrupt_asked == 0 && // Don't ask companies going bankrupt themselves
!HasBit(c->bankrupt_asked, c2->index) && !HasBit(c->bankrupt_asked, c2->index) &&
best_performance < c2->old_economy[1].performance_history && best_performance < c2->old_economy[1].performance_history &&
@@ -745,10 +738,8 @@ void OnTick_Companies()
*/ */
void CompaniesYearlyLoop() void CompaniesYearlyLoop()
{ {
Company *c;
/* Copy statistics */ /* Copy statistics */
FOR_ALL_COMPANIES(c) { for (Company *c : Company::Iterate()) {
memmove(&c->yearly_expenses[1], &c->yearly_expenses[0], sizeof(c->yearly_expenses) - sizeof(c->yearly_expenses[0])); memmove(&c->yearly_expenses[1], &c->yearly_expenses[0], sizeof(c->yearly_expenses) - sizeof(c->yearly_expenses[0]));
memset(&c->yearly_expenses[0], 0, sizeof(c->yearly_expenses[0])); memset(&c->yearly_expenses[0], 0, sizeof(c->yearly_expenses[0]));
SetWindowDirty(WC_FINANCES, c->index); SetWindowDirty(WC_FINANCES, c->index);
@@ -756,7 +747,7 @@ void CompaniesYearlyLoop()
if (_settings_client.gui.show_finances && _local_company != COMPANY_SPECTATOR) { if (_settings_client.gui.show_finances && _local_company != COMPANY_SPECTATOR) {
ShowCompanyFinances(_local_company); ShowCompanyFinances(_local_company);
c = Company::Get(_local_company); Company *c = Company::Get(_local_company);
if (c->num_valid_stat_ent > 5 && c->old_economy[0].performance_history < c->old_economy[4].performance_history) { if (c->num_valid_stat_ent > 5 && c->old_economy[0].performance_history < c->old_economy[4].performance_history) {
if (_settings_client.sound.new_year) SndPlayFx(SND_01_BAD_YEAR); if (_settings_client.sound.new_year) SndPlayFx(SND_01_BAD_YEAR);
} else { } else {
@@ -988,8 +979,7 @@ CommandCost CmdSetCompanyColour(TileIndex tile, DoCommandFlag flags, uint32 p1,
/* Ensure no two companies have the same primary colour */ /* Ensure no two companies have the same primary colour */
if (scheme == LS_DEFAULT && !second) { if (scheme == LS_DEFAULT && !second) {
const Company *cc; for (const Company *cc : Company::Iterate()) {
FOR_ALL_COMPANIES(cc) {
if (cc != c && cc->colour == colour) return CMD_ERROR; if (cc != c && cc->colour == colour) return CMD_ERROR;
} }
} }
@@ -1052,8 +1042,7 @@ CommandCost CmdSetCompanyColour(TileIndex tile, DoCommandFlag flags, uint32 p1,
InvalidateWindowData(WC_SMALLMAP, 0, 1); InvalidateWindowData(WC_SMALLMAP, 0, 1);
/* Company colour data is indirectly cached. */ /* Company colour data is indirectly cached. */
Vehicle *v; for (Vehicle *v : Vehicle::Iterate()) {
FOR_ALL_VEHICLES(v) {
if (v->owner == _current_company) v->InvalidateNewGRFCache(); if (v->owner == _current_company) v->InvalidateNewGRFCache();
} }
@@ -1070,9 +1059,7 @@ CommandCost CmdSetCompanyColour(TileIndex tile, DoCommandFlag flags, uint32 p1,
*/ */
static bool IsUniqueCompanyName(const char *name) static bool IsUniqueCompanyName(const char *name)
{ {
const Company *c; for (const Company *c : Company::Iterate()) {
FOR_ALL_COMPANIES(c) {
if (c->name != nullptr && strcmp(c->name, name) == 0) return false; if (c->name != nullptr && strcmp(c->name, name) == 0) return false;
} }
@@ -1115,9 +1102,7 @@ CommandCost CmdRenameCompany(TileIndex tile, DoCommandFlag flags, uint32 p1, uin
*/ */
static bool IsUniquePresidentName(const char *name) static bool IsUniquePresidentName(const char *name)
{ {
const Company *c; for (const Company *c : Company::Iterate()) {
FOR_ALL_COMPANIES(c) {
if (c->president_name != nullptr && strcmp(c->president_name, name) == 0) return false; if (c->president_name != nullptr && strcmp(c->president_name, name) == 0) return false;
} }

View File

@@ -578,7 +578,7 @@ private:
/* Disallow other company colours for the primary colour */ /* Disallow other company colours for the primary colour */
if (this->livery_class < LC_GROUP_RAIL && HasBit(this->sel, LS_DEFAULT) && primary) { if (this->livery_class < LC_GROUP_RAIL && HasBit(this->sel, LS_DEFAULT) && primary) {
FOR_ALL_COMPANIES(c) { for (const Company *c : Company::Iterate()) {
if (c->index != _local_company) SetBit(used_colours, c->colour); if (c->index != _local_company) SetBit(used_colours, c->colour);
} }
} }
@@ -662,8 +662,7 @@ private:
GUIGroupList list; GUIGroupList list;
VehicleType vtype = (VehicleType)(this->livery_class - LC_GROUP_RAIL); VehicleType vtype = (VehicleType)(this->livery_class - LC_GROUP_RAIL);
const Group *g; for (const Group *g : Group::Iterate()) {
FOR_ALL_GROUPS(g) {
if (g->owner == owner && g->vehicle_type == vtype) { if (g->owner == owner && g->vehicle_type == vtype) {
list.push_back(g); list.push_back(g);
} }
@@ -754,8 +753,7 @@ public:
} }
/* And group names */ /* And group names */
const Group *g; for (const Group *g : Group::Iterate()) {
FOR_ALL_GROUPS(g) {
if (g->owner == (CompanyID)this->window_number) { if (g->owner == (CompanyID)this->window_number) {
SetDParam(0, g->index); SetDParam(0, g->index);
d = maxdim(d, GetStringBoundingBox(STR_GROUP_NAME)); d = maxdim(d, GetStringBoundingBox(STR_GROUP_NAME));
@@ -1829,8 +1827,7 @@ struct CompanyInfrastructureWindow : Window
this->roadtypes = ROADTYPES_NONE; this->roadtypes = ROADTYPES_NONE;
/* Find the used railtypes. */ /* Find the used railtypes. */
Engine *e; for (const Engine *e : Engine::IterateType(VEH_TRAIN)) {
FOR_ALL_ENGINES_OF_TYPE(e, VEH_TRAIN) {
if (!HasBit(e->info.climates, _settings_game.game_creation.landscape)) continue; if (!HasBit(e->info.climates, _settings_game.game_creation.landscape)) continue;
this->railtypes |= GetRailTypeInfo(e->u.rail.railtype)->introduces_railtypes; this->railtypes |= GetRailTypeInfo(e->u.rail.railtype)->introduces_railtypes;
@@ -1840,7 +1837,7 @@ struct CompanyInfrastructureWindow : Window
this->railtypes = AddDateIntroducedRailTypes(this->railtypes, MAX_DAY); this->railtypes = AddDateIntroducedRailTypes(this->railtypes, MAX_DAY);
/* Find the used roadtypes. */ /* Find the used roadtypes. */
FOR_ALL_ENGINES_OF_TYPE(e, VEH_ROAD) { for (const Engine *e : Engine::IterateType(VEH_ROAD)) {
if (!HasBit(e->info.climates, _settings_game.game_creation.landscape)) continue; if (!HasBit(e->info.climates, _settings_game.game_creation.landscape)) continue;
this->roadtypes |= GetRoadTypeInfo(e->u.road.roadtype)->introduces_roadtypes; this->roadtypes |= GetRoadTypeInfo(e->u.road.roadtype)->introduces_roadtypes;
@@ -2419,9 +2416,7 @@ struct CompanyWindow : Window
break; break;
case WID_C_DESC_OWNERS: { case WID_C_DESC_OWNERS: {
const Company *c2; for (const Company *c2 : Company::Iterate()) {
FOR_ALL_COMPANIES(c2) {
SetDParamMaxValue(0, 75); SetDParamMaxValue(0, 75);
SetDParam(1, c2->index); SetDParam(1, c2->index);
@@ -2523,10 +2518,9 @@ struct CompanyWindow : Window
} }
case WID_C_DESC_OWNERS: { case WID_C_DESC_OWNERS: {
const Company *c2;
uint y = r.top; uint y = r.top;
FOR_ALL_COMPANIES(c2) { for (const Company *c2 : Company::Iterate()) {
uint amt = GetAmountOwnedBy(c, c2->index); uint amt = GetAmountOwnedBy(c, c2->index);
if (amt != 0) { if (amt != 0) {
SetDParam(0, amt * 25); SetDParam(0, amt * 25);

View File

@@ -1207,9 +1207,8 @@ DEF_CONSOLE_CMD(ConStartAI)
} }
int n = 0; int n = 0;
Company *c;
/* Find the next free slot */ /* Find the next free slot */
FOR_ALL_COMPANIES(c) { for (const Company *c : Company::Iterate()) {
if (c->index != n) break; if (c->index != n) break;
n++; n++;
} }
@@ -1413,10 +1412,11 @@ DEF_CONSOLE_CMD(ConAlias)
DEF_CONSOLE_CMD(ConScreenShot) DEF_CONSOLE_CMD(ConScreenShot)
{ {
if (argc == 0) { if (argc == 0) {
IConsoleHelp("Create a screenshot of the game. Usage: 'screenshot [big | giant | no_con] [file name]'"); IConsoleHelp("Create a screenshot of the game. Usage: 'screenshot [big | giant | no_con | minimap] [file name]'");
IConsoleHelp("'big' makes a zoomed-in screenshot of the visible area, 'giant' makes a screenshot of the " IConsoleHelp("'big' makes a zoomed-in screenshot of the visible area, 'giant' makes a screenshot of the "
"whole map, 'no_con' hides the console to create the screenshot. 'big' or 'giant' " "whole map, 'no_con' hides the console to create the screenshot. 'big' or 'giant' "
"screenshots are always drawn without console"); "screenshots are always drawn without console. "
"'minimap' makes a top-viewed minimap screenshot of whole world which represents one tile by one pixel.");
return true; return true;
} }
@@ -1434,6 +1434,10 @@ DEF_CONSOLE_CMD(ConScreenShot)
/* screenshot giant [filename] */ /* screenshot giant [filename] */
type = SC_WORLD; type = SC_WORLD;
if (argc > 2) name = argv[2]; if (argc > 2) name = argv[2];
} else if (strcmp(argv[1], "minimap") == 0) {
/* screenshot minimap [filename] */
type = SC_MINIMAP;
if (argc > 2) name = argv[2];
} else if (strcmp(argv[1], "no_con") == 0) { } else if (strcmp(argv[1], "no_con") == 0) {
/* screenshot no_con [filename] */ /* screenshot no_con [filename] */
IConsoleClose(); IConsoleClose();
@@ -1470,7 +1474,7 @@ DEF_CONSOLE_CMD(ConMinimap)
name = argv[2]; name = argv[2];
} }
SaveMinimap(name); MakeMinimapWorldScreenshot(name);
return true; return true;
} }
@@ -1621,8 +1625,7 @@ DEF_CONSOLE_CMD(ConCompanies)
return true; return true;
} }
Company *c; for (const Company *c : Company::Iterate()) {
FOR_ALL_COMPANIES(c) {
/* Grab the company name */ /* Grab the company name */
char company_name[512]; char company_name[512];
SetDParam(0, c->index); SetDParam(0, c->index);
@@ -1971,15 +1974,13 @@ DEF_CONSOLE_CMD(ConResetBlockedHeliports)
} }
unsigned int count = 0; unsigned int count = 0;
Station *st; for (Station *st : Station::Iterate()) {
FOR_ALL_STATIONS(st) {
if (st->airport.tile == INVALID_TILE) continue; if (st->airport.tile == INVALID_TILE) continue;
if (st->airport.HasHangar()) continue; if (st->airport.HasHangar()) continue;
if (!st->airport.flags) continue; if (!st->airport.flags) continue;
bool occupied = false; bool occupied = false;
const Aircraft *a; for (const Aircraft *a : Aircraft::Iterate()) {
FOR_ALL_AIRCRAFT(a) {
if (a->targetairport == st->index && a->state != FLYING) { if (a->targetairport == st->index && a->state != FLYING) {
occupied = true; occupied = true;
break; break;

View File

@@ -12,6 +12,7 @@
#include "smallvec_type.hpp" #include "smallvec_type.hpp"
#include "enum_type.hpp" #include "enum_type.hpp"
#include <functional>
/** Various types of a pool. */ /** Various types of a pool. */
enum PoolType { enum PoolType {
@@ -137,6 +138,49 @@ struct Pool : PoolBase {
return ret; return ret;
} }
/**
* Iterator to iterate all valid T of a pool
* @tparam T Type of the class/struct that is going to be iterated
*/
template <class T>
struct PoolIterator {
typedef T value_type;
typedef T* pointer;
typedef T& reference;
typedef size_t difference_type;
typedef std::forward_iterator_tag iterator_category;
explicit PoolIterator(size_t index, std::function<bool(size_t)> filter = nullptr) : index(index), filter(filter)
{
if (this->filter == nullptr) this->filter = [](size_t) { return true; };
this->ValidateIndex();
};
bool operator==(const PoolIterator &other) const { return this->index == other.index; }
bool operator!=(const PoolIterator &other) const { return !(*this == other); }
T * operator*() const { return T::Get(this->index); }
PoolIterator & operator++() { this->index++; this->ValidateIndex(); return *this; }
private:
size_t index;
std::function<bool(size_t)> filter;
void ValidateIndex() { while (this->index < T::GetPoolSize() && !(T::IsValidID(this->index) && this->filter(this->index))) this->index++; }
};
/*
* Iterable ensemble of all valid T
* @tparam T Type of the class/struct that is going to be iterated
*/
template <class T>
struct IterateWrapper {
size_t from;
std::function<bool(size_t)> filter;
IterateWrapper(size_t from = 0, std::function<bool(size_t)> filter = nullptr) : from(from), filter(filter) {}
PoolIterator<T> begin() { return PoolIterator<T>(this->from, this->filter); }
PoolIterator<T> end() { return PoolIterator<T>(T::GetPoolSize()); }
bool empty() { return this->begin() == this->end(); }
};
/** /**
* Base class for all PoolItems * Base class for all PoolItems
* @tparam Tpool The pool this item is going to be part of * @tparam Tpool The pool this item is going to be part of
@@ -145,6 +189,9 @@ struct Pool : PoolBase {
struct PoolItem { struct PoolItem {
Tindex index; ///< Index of this pool item Tindex index; ///< Index of this pool item
/** Type of the pool this item is going to be part of */
typedef struct Pool<Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero> Pool;
/** /**
* Allocates space for new Titem * Allocates space for new Titem
* @param size size of Titem * @param size size of Titem
@@ -292,6 +339,13 @@ struct Pool : PoolBase {
* @note it's called only when CleaningPool() * @note it's called only when CleaningPool()
*/ */
static inline void PreCleanPool() { } static inline void PreCleanPool() { }
/**
* Returns an iterable ensemble of all valid Titem
* @param from index of the first Titem to consider
* @return an iterable ensemble of all valid Titem
*/
static Pool::IterateWrapper<Titem> Iterate(size_t from = 0) { return Pool::IterateWrapper<Titem>(from); }
}; };
private: private:
@@ -319,10 +373,4 @@ private:
void FreeItem(size_t index); void FreeItem(size_t index);
}; };
#define FOR_ALL_ITEMS_FROM(type, iter, var, start) \
for (size_t iter = start; var = nullptr, iter < type::GetPoolSize(); iter++) \
if ((var = type::Get(iter)) != nullptr)
#define FOR_ALL_ITEMS(type, iter, var) FOR_ALL_ITEMS_FROM(type, iter, var, 0)
#endif /* POOL_TYPE_HPP */ #endif /* POOL_TYPE_HPP */

View File

@@ -16,7 +16,7 @@
/* rdtsc for MSC_VER, uses simple inline assembly, or _rdtsc /* rdtsc for MSC_VER, uses simple inline assembly, or _rdtsc
* from external win64.asm because VS2005 does not support inline assembly */ * from external win64.asm because VS2005 does not support inline assembly */
#if defined(_MSC_VER) && !defined(RDTSC_AVAILABLE) #if defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_X64)) && !defined(RDTSC_AVAILABLE)
#include <intrin.h> #include <intrin.h>
uint64 ottd_rdtsc() uint64 ottd_rdtsc()
{ {
@@ -85,7 +85,7 @@ uint64 ottd_rdtsc() {return 0;}
* Other platforms/architectures don't have CPUID, so zero the info and then * Other platforms/architectures don't have CPUID, so zero the info and then
* most (if not all) of the features are set as if they do not exist. * most (if not all) of the features are set as if they do not exist.
*/ */
#if defined(_MSC_VER) #if defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_X64))
void ottd_cpuid(int info[4], int type) void ottd_cpuid(int info[4], int type)
{ {
__cpuid(info, type); __cpuid(info, type);

View File

@@ -232,8 +232,7 @@ char *CrashLog::LogConfiguration(char *buffer, const char *last) const
} }
buffer += seprintf(buffer, last, "AI Configuration (local: %i) (current: %i):\n", (int)_local_company, (int)_current_company); buffer += seprintf(buffer, last, "AI Configuration (local: %i) (current: %i):\n", (int)_local_company, (int)_current_company);
const Company *c; for (const Company *c : Company::Iterate()) {
FOR_ALL_COMPANIES(c) {
if (c->ai_info == nullptr) { if (c->ai_info == nullptr) {
buffer += seprintf(buffer, last, " %2i: Human\n", (int)c->index); buffer += seprintf(buffer, last, " %2i: Human\n", (int)c->index);
} else { } else {

View File

@@ -38,6 +38,8 @@ YearMonthDay _game_load_cur_date_ymd;
DateFract _game_load_date_fract; DateFract _game_load_date_fract;
uint8 _game_load_tick_skip_counter; uint8 _game_load_tick_skip_counter;
int32 _old_ending_year_slv_105; ///< Old ending year for savegames before SLV_105
/** /**
* Set the date. * Set the date.
* @param date New date * @param date New date
@@ -216,21 +218,18 @@ static void OnNewYear()
if (_cur_year == _settings_client.gui.semaphore_build_before) ResetSignalVariant(); if (_cur_year == _settings_client.gui.semaphore_build_before) ResetSignalVariant();
/* check if we reached end of the game */ /* check if we reached end of the game (end of ending year) */
if (_cur_year == ORIGINAL_END_YEAR) { if (_cur_year == _settings_game.game_creation.ending_year + 1) {
ShowEndGameChart(); ShowEndGameChart();
/* check if we reached the maximum year, decrement dates by a year */ /* check if we reached the maximum year, decrement dates by a year */
} else if (_cur_year == MAX_YEAR + 1) { } else if (_cur_year == MAX_YEAR + 1) {
Vehicle *v;
int days_this_year; int days_this_year;
_cur_year--; _cur_year--;
days_this_year = IsLeapYear(_cur_year) ? DAYS_IN_LEAP_YEAR : DAYS_IN_YEAR; days_this_year = IsLeapYear(_cur_year) ? DAYS_IN_LEAP_YEAR : DAYS_IN_YEAR;
_date -= days_this_year; _date -= days_this_year;
FOR_ALL_VEHICLES(v) v->date_of_last_service -= days_this_year; for (Vehicle *v : Vehicle::Iterate()) v->date_of_last_service -= days_this_year;
for (LinkGraph *lg : LinkGraph::Iterate()) lg->ShiftDates(-days_this_year);
LinkGraph *lg;
FOR_ALL_LINK_GRAPHS(lg) lg->ShiftDates(-days_this_year);
/* Because the _date wraps here, and text-messages expire by game-days, we have to clean out /* Because the _date wraps here, and text-messages expire by game-days, we have to clean out
* all of them if the date is set back, else those messages will hang for ever */ * all of them if the date is set back, else those messages will hang for ever */

View File

@@ -87,6 +87,8 @@ static const Year MIN_YEAR = 0;
/** The default starting year */ /** The default starting year */
static const Year DEF_START_YEAR = 1950; static const Year DEF_START_YEAR = 1950;
/** The default scoring end year */
static const Year DEF_END_YEAR = ORIGINAL_END_YEAR - 1;
/** /**
* MAX_YEAR, nicely rounded value of the number of years that can * MAX_YEAR, nicely rounded value of the number of years that can

View File

@@ -144,8 +144,7 @@ protected:
CompanyMask companies = 0; CompanyMask companies = 0;
int unitnumber_max[4] = { -1, -1, -1, -1 }; int unitnumber_max[4] = { -1, -1, -1, -1 };
const Vehicle *v; for (const Vehicle *v : Vehicle::Iterate()) {
FOR_ALL_VEHICLES(v) {
if (v->type < 4 && this->show_types[v->type] && v->IsPrimaryVehicle()) { if (v->type < 4 && this->show_types[v->type] && v->IsPrimaryVehicle()) {
const Order *order; const Order *order;

View File

@@ -44,7 +44,4 @@ struct Depot : DepotPool::PoolItem<&_depot_pool> {
} }
}; };
#define FOR_ALL_DEPOTS_FROM(var, start) FOR_ALL_ITEMS_FROM(Depot, depot_index, var, start)
#define FOR_ALL_DEPOTS(var) FOR_ALL_DEPOTS_FROM(var, 0)
#endif /* DEPOT_BASE_H */ #endif /* DEPOT_BASE_H */

View File

@@ -28,9 +28,7 @@
*/ */
static bool IsUniqueDepotName(const char *name) static bool IsUniqueDepotName(const char *name)
{ {
const Depot *d; for (const Depot *d : Depot::Iterate()) {
FOR_ALL_DEPOTS(d) {
if (d->name != nullptr && strcmp(d->name, name) == 0) return false; if (d->name != nullptr && strcmp(d->name, name) == 0) return false;
} }

View File

@@ -172,8 +172,7 @@ static void InitBlocksizeForVehicles(VehicleType type, EngineImageType image_typ
int max_extend_right = 0; int max_extend_right = 0;
uint max_height = 0; uint max_height = 0;
const Engine *e; for (const Engine *e : Engine::IterateType(type)) {
FOR_ALL_ENGINES_OF_TYPE(e, type) {
if (!e->IsEnabled()) continue; if (!e->IsEnabled()) continue;
EngineID eid = e->index; EngineID eid = e->index;
@@ -224,8 +223,7 @@ void InitDepotWindowBlockSizes()
_consistent_train_width = TRAININFO_DEFAULT_VEHICLE_WIDTH; _consistent_train_width = TRAININFO_DEFAULT_VEHICLE_WIDTH;
bool first = true; bool first = true;
const Engine *e; for (const Engine *e : Engine::IterateType(VEH_TRAIN)) {
FOR_ALL_ENGINES_OF_TYPE(e, VEH_TRAIN) {
if (!e->IsEnabled()) continue; if (!e->IsEnabled()) continue;
uint w = TRAININFO_DEFAULT_VEHICLE_WIDTH; uint w = TRAININFO_DEFAULT_VEHICLE_WIDTH;

View File

@@ -352,8 +352,7 @@ static bool DisasterTick_Ufo(DisasterVehicle *v)
v->current_order.SetDestination(1); v->current_order.SetDestination(1);
uint n = 0; // Total number of targetable road vehicles. uint n = 0; // Total number of targetable road vehicles.
RoadVehicle *u; for (const RoadVehicle *u : RoadVehicle::Iterate()) {
FOR_ALL_ROADVEHICLES(u) {
if (u->IsFrontEngine()) n++; if (u->IsFrontEngine()) n++;
} }
@@ -364,14 +363,16 @@ static bool DisasterTick_Ufo(DisasterVehicle *v)
} }
n = RandomRange(n); // Choose one of them. n = RandomRange(n); // Choose one of them.
FOR_ALL_ROADVEHICLES(u) { for (const RoadVehicle *u : RoadVehicle::Iterate()) {
/* Find (n+1)-th road vehicle. */ /* Find (n+1)-th road vehicle. */
if (u->IsFrontEngine() && (n-- == 0)) break; if (u->IsFrontEngine() && (n-- == 0)) {
}
/* Target it. */ /* Target it. */
v->dest_tile = u->index; v->dest_tile = u->index;
v->age = 0; v->age = 0;
break;
}
}
return true; return true;
} else { } else {
/* Target a vehicle */ /* Target a vehicle */
@@ -562,8 +563,7 @@ static bool DisasterTick_Big_Ufo(DisasterVehicle *v)
v->current_order.SetDestination(2); v->current_order.SetDestination(2);
Vehicle *target; for (Vehicle *target : Vehicle::Iterate()) {
FOR_ALL_VEHICLES(target) {
if (target->IsGroundVehicle() && !HasBit(target->subtype, GVSF_VIRTUAL)) { if (target->IsGroundVehicle() && !HasBit(target->subtype, GVSF_VIRTUAL)) {
if (Delta(target->x_pos, v->x_pos) + Delta(target->y_pos, v->y_pos) <= 12 * (int)TILE_SIZE) { if (Delta(target->x_pos, v->x_pos) + Delta(target->y_pos, v->y_pos) <= 12 * (int)TILE_SIZE) {
target->breakdown_ctr = 5; target->breakdown_ctr = 5;
@@ -733,8 +733,7 @@ static void Disaster_Zeppeliner_Init()
/* Pick a random place, unless we find a small airport */ /* Pick a random place, unless we find a small airport */
int x = TileX(Random()) * TILE_SIZE + TILE_SIZE / 2; int x = TileX(Random()) * TILE_SIZE + TILE_SIZE / 2;
Station *st; for (const Station *st : Station::Iterate()) {
FOR_ALL_STATIONS(st) {
if (st->airport.tile != INVALID_TILE && (st->airport.type == AT_SMALL || st->airport.type == AT_LARGE)) { if (st->airport.tile != INVALID_TILE && (st->airport.type == AT_SMALL || st->airport.type == AT_LARGE)) {
x = (TileX(st->airport.tile) + 2) * TILE_SIZE; x = (TileX(st->airport.tile) + 2) * TILE_SIZE;
break; break;
@@ -775,9 +774,9 @@ static void Disaster_Airplane_Init()
{ {
if (!Vehicle::CanAllocateItem(2)) return; if (!Vehicle::CanAllocateItem(2)) return;
Industry *i, *found = nullptr; Industry *found = nullptr;
FOR_ALL_INDUSTRIES(i) { for (Industry *i : Industry::Iterate()) {
if ((GetIndustrySpec(i->type)->behaviour & INDUSTRYBEH_AIRPLANE_ATTACKS) && if ((GetIndustrySpec(i->type)->behaviour & INDUSTRYBEH_AIRPLANE_ATTACKS) &&
(found == nullptr || Chance16(1, 2))) { (found == nullptr || Chance16(1, 2))) {
found = i; found = i;
@@ -803,9 +802,9 @@ static void Disaster_Helicopter_Init()
{ {
if (!Vehicle::CanAllocateItem(3)) return; if (!Vehicle::CanAllocateItem(3)) return;
Industry *i, *found = nullptr; Industry *found = nullptr;
FOR_ALL_INDUSTRIES(i) { for (Industry *i : Industry::Iterate()) {
if ((GetIndustrySpec(i->type)->behaviour & INDUSTRYBEH_CHOPPER_ATTACKS) && if ((GetIndustrySpec(i->type)->behaviour & INDUSTRYBEH_CHOPPER_ATTACKS) &&
(found == nullptr || Chance16(1, 2))) { (found == nullptr || Chance16(1, 2))) {
found = i; found = i;
@@ -896,9 +895,7 @@ static void Disaster_CoalMine_Init()
uint m; uint m;
for (m = 0; m < 15; m++) { for (m = 0; m < 15; m++) {
const Industry *i; for (const Industry *i : Industry::Iterate()) {
FOR_ALL_INDUSTRIES(i) {
if ((GetIndustrySpec(i->type)->behaviour & INDUSTRYBEH_CAN_SUBSIDENCE) && --index < 0) { if ((GetIndustrySpec(i->type)->behaviour & INDUSTRYBEH_CAN_SUBSIDENCE) && --index < 0) {
SetDParam(0, i->town->index); SetDParam(0, i->town->index);
AddTileNewsItem(STR_NEWS_DISASTER_COAL_MINE_SUBSIDENCE, NT_ACCIDENT, i->location.tile + TileDiffXY(1, 1)); // keep the news, even when the mine closes AddTileNewsItem(STR_NEWS_DISASTER_COAL_MINE_SUBSIDENCE, NT_ACCIDENT, i->location.tile + TileDiffXY(1, 1)); // keep the news, even when the mine closes
@@ -979,8 +976,7 @@ void ReleaseDisastersTargetingIndustry(IndustryID i)
{ {
if (!_disaster_vehicle_count) return; if (!_disaster_vehicle_count) return;
DisasterVehicle *v; for (DisasterVehicle *v : DisasterVehicle::Iterate()) {
FOR_ALL_DISASTERVEHICLES(v) {
/* primary disaster vehicles that have chosen target */ /* primary disaster vehicles that have chosen target */
if (v->subtype == ST_AIRPLANE || v->subtype == ST_HELICOPTER) { if (v->subtype == ST_AIRPLANE || v->subtype == ST_HELICOPTER) {
/* if it has chosen target, and it is this industry (yes, dest_tile is IndustryID here), set order to "leaving map peacefully" */ /* if it has chosen target, and it is this industry (yes, dest_tile is IndustryID here), set order to "leaving map peacefully" */
@@ -997,8 +993,7 @@ void ReleaseDisastersTargetingVehicle(VehicleID vehicle)
{ {
if (!_disaster_vehicle_count) return; if (!_disaster_vehicle_count) return;
DisasterVehicle *v; for (DisasterVehicle *v : DisasterVehicle::Iterate()) {
FOR_ALL_DISASTERVEHICLES(v) {
/* primary disaster vehicles that have chosen target */ /* primary disaster vehicles that have chosen target */
if (v->subtype == ST_SMALL_UFO) { if (v->subtype == ST_SMALL_UFO) {
if (v->current_order.GetDestination() != 0 && v->dest_tile == vehicle) { if (v->current_order.GetDestination() != 0 && v->dest_tile == vehicle) {

View File

@@ -51,10 +51,4 @@ struct DisasterVehicle FINAL : public SpecializedVehicle<DisasterVehicle, VEH_DI
bool Tick(); bool Tick();
}; };
/**
* Iterate over disaster vehicles.
* @param var The variable used to iterate over.
*/
#define FOR_ALL_DISASTERVEHICLES(var) FOR_ALL_VEHICLES_OF_TYPE(DisasterVehicle, var)
#endif /* DISASTER_VEHICLE_H */ #endif /* DISASTER_VEHICLE_H */

View File

@@ -117,17 +117,15 @@ Money CalculateCompanyValue(const Company *c, bool including_loan)
{ {
Owner owner = c->index; Owner owner = c->index;
Station *st;
uint num = 0; uint num = 0;
FOR_ALL_STATIONS(st) { for (const Station *st : Station::Iterate()) {
if (st->owner == owner) num += CountBits((byte)st->facilities); if (st->owner == owner) num += CountBits((byte)st->facilities);
} }
Money value = num * _price[PR_STATION_VALUE] * 25; Money value = num * _price[PR_STATION_VALUE] * 25;
Vehicle *v; for (const Vehicle *v : Vehicle::Iterate()) {
FOR_ALL_VEHICLES(v) {
if (v->owner != owner) continue; if (v->owner != owner) continue;
if (HasBit(v->subtype, GVSF_VIRTUAL)) continue; if (HasBit(v->subtype, GVSF_VIRTUAL)) continue;
@@ -163,12 +161,11 @@ int UpdateCompanyRatingAndValue(Company *c, bool update)
/* Count vehicles */ /* Count vehicles */
{ {
Vehicle *v;
Money min_profit = 0; Money min_profit = 0;
bool min_profit_first = true; bool min_profit_first = true;
uint num = 0; uint num = 0;
FOR_ALL_VEHICLES(v) { for (const Vehicle *v : Vehicle::Iterate()) {
if (v->owner != owner) continue; if (v->owner != owner) continue;
if (IsCompanyBuildableVehicleType(v->type) && v->IsPrimaryVehicle() && !HasBit(v->subtype, GVSF_VIRTUAL)) { if (IsCompanyBuildableVehicleType(v->type) && v->IsPrimaryVehicle() && !HasBit(v->subtype, GVSF_VIRTUAL)) {
if (v->profit_last_year > 0) num++; // For the vehicle score only count profitable vehicles if (v->profit_last_year > 0) num++; // For the vehicle score only count profitable vehicles
@@ -194,9 +191,7 @@ int UpdateCompanyRatingAndValue(Company *c, bool update)
/* Count stations */ /* Count stations */
{ {
uint num = 0; uint num = 0;
const Station *st; for (const Station *st : Station::Iterate()) {
FOR_ALL_STATIONS(st) {
/* Only count stations that are actually serviced */ /* Only count stations that are actually serviced */
if (st->owner == owner && (st->time_since_load <= 20 || st->time_since_unload <= 20)) num += CountBits((byte)st->facilities); if (st->owner == owner && (st->time_since_load <= 20 || st->time_since_unload <= 20)) num += CountBits((byte)st->facilities);
} }
@@ -303,8 +298,7 @@ void ChangeOwnershipOfCompanyItems(Owner old_owner, Owner new_owner)
* There are no spectators in single player, so we must pick some other company. */ * There are no spectators in single player, so we must pick some other company. */
assert(!_networking); assert(!_networking);
Backup<CompanyID> cur_company2(_current_company, FILE_LINE); Backup<CompanyID> cur_company2(_current_company, FILE_LINE);
Company *c; for (const Company *c : Company::Iterate()) {
FOR_ALL_COMPANIES(c) {
if (c->index != old_owner) { if (c->index != old_owner) {
SetLocalCompany(c->index); SetLocalCompany(c->index);
break; break;
@@ -316,16 +310,13 @@ void ChangeOwnershipOfCompanyItems(Owner old_owner, Owner new_owner)
ClearOrderDestinationRefcountMap(); ClearOrderDestinationRefcountMap();
Town *t;
assert(old_owner != new_owner); assert(old_owner != new_owner);
{ {
Company *c;
uint i; uint i;
/* See if the old_owner had shares in other companies */ /* See if the old_owner had shares in other companies */
FOR_ALL_COMPANIES(c) { for (const Company *c : Company::Iterate()) {
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
if (c->share_owners[i] == old_owner) { if (c->share_owners[i] == old_owner) {
/* Sell his shares */ /* Sell his shares */
@@ -339,7 +330,7 @@ void ChangeOwnershipOfCompanyItems(Owner old_owner, Owner new_owner)
/* Sell all the shares that people have on this company */ /* Sell all the shares that people have on this company */
Backup<CompanyID> cur_company2(_current_company, FILE_LINE); Backup<CompanyID> cur_company2(_current_company, FILE_LINE);
c = Company::Get(old_owner); const Company *c = Company::Get(old_owner);
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
cur_company2.Change(c->share_owners[i]); cur_company2.Change(c->share_owners[i]);
if (_current_company != INVALID_OWNER) { if (_current_company != INVALID_OWNER) {
@@ -360,8 +351,7 @@ void ChangeOwnershipOfCompanyItems(Owner old_owner, Owner new_owner)
Company::Get(old_owner)->money = UINT64_MAX >> 2; // jackpot ;p Company::Get(old_owner)->money = UINT64_MAX >> 2; // jackpot ;p
} }
Subsidy *s; for (Subsidy *s : Subsidy::Iterate()) {
FOR_ALL_SUBSIDIES(s) {
if (s->awarded == old_owner) { if (s->awarded == old_owner) {
if (new_owner == INVALID_OWNER) { if (new_owner == INVALID_OWNER) {
delete s; delete s;
@@ -373,7 +363,7 @@ void ChangeOwnershipOfCompanyItems(Owner old_owner, Owner new_owner)
if (new_owner == INVALID_OWNER) RebuildSubsidisedSourceAndDestinationCache(); if (new_owner == INVALID_OWNER) RebuildSubsidisedSourceAndDestinationCache();
/* Take care of rating and transport rights in towns */ /* Take care of rating and transport rights in towns */
FOR_ALL_TOWNS(t) { for (Town *t : Town::Iterate()) {
/* If a company takes over, give the ratings to that company. */ /* If a company takes over, give the ratings to that company. */
if (new_owner != INVALID_OWNER) { if (new_owner != INVALID_OWNER) {
if (HasBit(t->have_ratings, old_owner)) { if (HasBit(t->have_ratings, old_owner)) {
@@ -403,8 +393,7 @@ void ChangeOwnershipOfCompanyItems(Owner old_owner, Owner new_owner)
} }
{ {
Vehicle *v; for (Vehicle *v : Vehicle::Iterate()) {
FOR_ALL_VEHICLES(v) {
if (v->owner == old_owner && IsCompanyBuildableVehicleType(v->type)) { if (v->owner == old_owner && IsCompanyBuildableVehicleType(v->type)) {
if (new_owner == INVALID_OWNER) { if (new_owner == INVALID_OWNER) {
if (v->Previous() == nullptr) { if (v->Previous() == nullptr) {
@@ -429,8 +418,7 @@ void ChangeOwnershipOfCompanyItems(Owner old_owner, Owner new_owner)
if (new_owner == INVALID_OWNER) { if (new_owner == INVALID_OWNER) {
RemoveAllGroupsForCompany(old_owner); RemoveAllGroupsForCompany(old_owner);
} else { } else {
Group *g; for (Group *g : Group::Iterate()) {
FOR_ALL_GROUPS(g) {
if (g->owner == old_owner) g->owner = new_owner; if (g->owner == old_owner) g->owner = new_owner;
} }
} }
@@ -456,8 +444,7 @@ void ChangeOwnershipOfCompanyItems(Owner old_owner, Owner new_owner)
old_company->settings.vehicle.servint_ispercent = new_company->settings.vehicle.servint_ispercent; old_company->settings.vehicle.servint_ispercent = new_company->settings.vehicle.servint_ispercent;
} }
Vehicle *v; for (Vehicle *v : Vehicle::Iterate()) {
FOR_ALL_VEHICLES(v) {
if (v->owner == old_owner && IsCompanyBuildableVehicleType(v->type)) { if (v->owner == old_owner && IsCompanyBuildableVehicleType(v->type)) {
assert(new_owner != INVALID_OWNER); assert(new_owner != INVALID_OWNER);
@@ -503,11 +490,9 @@ void ChangeOwnershipOfCompanyItems(Owner old_owner, Owner new_owner)
/* Change ownership of template vehicles */ /* Change ownership of template vehicles */
if (new_owner == INVALID_OWNER) { if (new_owner == INVALID_OWNER) {
TemplateVehicle *tv; for (TemplateVehicle *tv : TemplateVehicle::Iterate()) {
FOR_ALL_TEMPLATES(tv) {
if (tv->owner == old_owner && tv->Prev() == nullptr) { if (tv->owner == old_owner && tv->Prev() == nullptr) {
TemplateReplacement *tr; for (TemplateReplacement *tr : TemplateReplacement::Iterate()) {
FOR_ALL_TEMPLATE_REPLACEMENTS(tr) {
if (tr->Template() == tv->index) { if (tr->Template() == tv->index) {
delete tr; delete tr;
} }
@@ -516,8 +501,7 @@ void ChangeOwnershipOfCompanyItems(Owner old_owner, Owner new_owner)
} }
} }
} else { } else {
TemplateVehicle *tv; for (TemplateVehicle *tv : TemplateVehicle::Iterate()) {
FOR_ALL_TEMPLATES(tv) {
if (tv->owner == old_owner) tv->owner = new_owner; if (tv->owner == old_owner) tv->owner = new_owner;
} }
} }
@@ -549,8 +533,7 @@ void ChangeOwnershipOfCompanyItems(Owner old_owner, Owner new_owner)
if (new_owner != INVALID_OWNER) Company::Get(new_owner)->infrastructure.airport += Company::Get(old_owner)->infrastructure.airport; if (new_owner != INVALID_OWNER) Company::Get(new_owner)->infrastructure.airport += Company::Get(old_owner)->infrastructure.airport;
/* convert owner of stations (including deleted ones, but excluding buoys) */ /* convert owner of stations (including deleted ones, but excluding buoys) */
Station *st; for (Station *st : Station::Iterate()) {
FOR_ALL_STATIONS(st) {
if (st->owner == old_owner) { if (st->owner == old_owner) {
/* if a company goes bankrupt, set owner to OWNER_NONE so the sign doesn't disappear immediately /* if a company goes bankrupt, set owner to OWNER_NONE so the sign doesn't disappear immediately
* also, drawing station window would cause reading invalid company's colour */ * also, drawing station window would cause reading invalid company's colour */
@@ -559,29 +542,25 @@ void ChangeOwnershipOfCompanyItems(Owner old_owner, Owner new_owner)
} }
/* do the same for waypoints (we need to do this here so deleted waypoints are converted too) */ /* do the same for waypoints (we need to do this here so deleted waypoints are converted too) */
Waypoint *wp; for (Waypoint *wp : Waypoint::Iterate()) {
FOR_ALL_WAYPOINTS(wp) {
if (wp->owner == old_owner) { if (wp->owner == old_owner) {
wp->owner = new_owner == INVALID_OWNER ? OWNER_NONE : new_owner; wp->owner = new_owner == INVALID_OWNER ? OWNER_NONE : new_owner;
} }
} }
Sign *si; for (Sign *si : Sign::Iterate()) {
FOR_ALL_SIGNS(si) {
if (si->owner == old_owner) si->owner = new_owner == INVALID_OWNER ? OWNER_NONE : new_owner; if (si->owner == old_owner) si->owner = new_owner == INVALID_OWNER ? OWNER_NONE : new_owner;
} }
/* Remove Game Script created Goals, CargoMonitors and Story pages. */ /* Remove Game Script created Goals, CargoMonitors and Story pages. */
Goal *g; for (Goal *g : Goal::Iterate()) {
FOR_ALL_GOALS(g) {
if (g->company == old_owner) delete g; if (g->company == old_owner) delete g;
} }
ClearCargoPickupMonitoring(old_owner); ClearCargoPickupMonitoring(old_owner);
ClearCargoDeliveryMonitoring(old_owner); ClearCargoDeliveryMonitoring(old_owner);
StoryPage *sp; for (StoryPage *sp : StoryPage::Iterate()) {
FOR_ALL_STORY_PAGES(sp) {
if (sp->company == old_owner) delete sp; if (sp->company == old_owner) delete sp;
} }
@@ -702,23 +681,21 @@ static void CompanyCheckBankrupt(Company *c)
static void CompaniesGenStatistics() static void CompaniesGenStatistics()
{ {
/* Check for bankruptcy each month */ /* Check for bankruptcy each month */
Company *c; for (Company *c : Company::Iterate()) {
FOR_ALL_COMPANIES(c) {
CompanyCheckBankrupt(c); CompanyCheckBankrupt(c);
} }
Backup<CompanyID> cur_company(_current_company, FILE_LINE); Backup<CompanyID> cur_company(_current_company, FILE_LINE);
if (!_settings_game.economy.infrastructure_maintenance) { if (!_settings_game.economy.infrastructure_maintenance) {
Station *st; for (const Station *st : Station::Iterate()) {
FOR_ALL_STATIONS(st) {
cur_company.Change(st->owner); cur_company.Change(st->owner);
CommandCost cost(EXPENSES_PROPERTY, _price[PR_STATION_VALUE] >> 1); CommandCost cost(EXPENSES_PROPERTY, _price[PR_STATION_VALUE] >> 1);
SubtractMoneyFromCompany(cost); SubtractMoneyFromCompany(cost);
} }
} else { } else {
/* Improved monthly infrastructure costs. */ /* Improved monthly infrastructure costs. */
FOR_ALL_COMPANIES(c) { for (const Company *c : Company::Iterate()) {
cur_company.Change(c->index); cur_company.Change(c->index);
CommandCost cost(EXPENSES_PROPERTY); CommandCost cost(EXPENSES_PROPERTY);
@@ -744,7 +721,7 @@ static void CompaniesGenStatistics()
/* Only run the economic statics and update company stats every 3rd month (1st of quarter). */ /* Only run the economic statics and update company stats every 3rd month (1st of quarter). */
if (!HasBit(1 << 0 | 1 << 3 | 1 << 6 | 1 << 9, _cur_month)) return; if (!HasBit(1 << 0 | 1 << 3 | 1 << 6 | 1 << 9, _cur_month)) return;
FOR_ALL_COMPANIES(c) { for (Company *c : Company::Iterate()) {
/* Drop the oldest history off the end */ /* Drop the oldest history off the end */
std::copy_backward(c->old_economy, c->old_economy + MAX_HISTORY_QUARTERS - 1, c->old_economy + MAX_HISTORY_QUARTERS); std::copy_backward(c->old_economy, c->old_economy + MAX_HISTORY_QUARTERS - 1, c->old_economy + MAX_HISTORY_QUARTERS);
c->old_economy[0] = c->cur_economy; c->old_economy[0] = c->cur_economy;
@@ -877,10 +854,8 @@ void RecomputePrices()
/** Let all companies pay the monthly interest on their loan. */ /** Let all companies pay the monthly interest on their loan. */
static void CompaniesPayInterest() static void CompaniesPayInterest()
{ {
const Company *c;
Backup<CompanyID> cur_company(_current_company, FILE_LINE); Backup<CompanyID> cur_company(_current_company, FILE_LINE);
FOR_ALL_COMPANIES(c) { for (const Company *c : Company::Iterate()) {
cur_company.Change(c->index); cur_company.Change(c->index);
/* Over a year the paid interest should be "loan * interest percentage", /* Over a year the paid interest should be "loan * interest percentage",
@@ -1979,13 +1954,18 @@ static void LoadUnloadVehicle(Vehicle *front)
/* if last speed is 0, we treat that as if no vehicle has ever visited the station. */ /* if last speed is 0, we treat that as if no vehicle has ever visited the station. */
ge->last_speed = min(t, 255); ge->last_speed = min(t, 255);
ge->last_age = min(_cur_year - front->build_year, 255); ge->last_age = min(_cur_year - front->build_year, 255);
ge->time_since_pickup = 0;
assert(v->cargo_cap >= v->cargo.StoredCount()); assert(v->cargo_cap >= v->cargo.StoredCount());
/* Capacity available for loading more cargo. */
uint cap_left = v->cargo_cap - v->cargo.StoredCount();
if (cap_left > 0) {
/* If vehicle can load cargo, reset time_since_pickup. */
ge->time_since_pickup = 0;
/* If there's goods waiting at the station, and the vehicle /* If there's goods waiting at the station, and the vehicle
* has capacity for it, load it on the vehicle. */ * has capacity for it, load it on the vehicle. */
uint cap_left = v->cargo_cap - v->cargo.StoredCount(); if ((v->cargo.ActionCount(VehicleCargoList::MTA_LOAD) > 0 || ge->cargo.AvailableCount() > 0) && MayLoadUnderExclusiveRights(st, v)) {
if (cap_left > 0 && (v->cargo.ActionCount(VehicleCargoList::MTA_LOAD) > 0 || ge->cargo.AvailableCount() > 0) && MayLoadUnderExclusiveRights(st, v)) {
if (v->cargo.StoredCount() == 0) TriggerVehicle(v, VEHICLE_TRIGGER_NEW_CARGO); if (v->cargo.StoredCount() == 0) TriggerVehicle(v, VEHICLE_TRIGGER_NEW_CARGO);
if (_settings_game.order.gradual_loading) cap_left = min(cap_left, GetLoadAmount(v)); if (_settings_game.order.gradual_loading) cap_left = min(cap_left, GetLoadAmount(v));
@@ -2028,6 +2008,7 @@ static void LoadUnloadVehicle(Vehicle *front)
dirty_vehicle = dirty_station = true; dirty_vehicle = dirty_station = true;
} }
} }
}
if (v->cargo.StoredCount() >= v->cargo_cap) { if (v->cargo.StoredCount() >= v->cargo_cap) {
SetBit(cargo_full, v->cargo_type); SetBit(cargo_full, v->cargo_type);

View File

@@ -47,17 +47,4 @@ struct CargoPayment : CargoPaymentPool::PoolItem<&_cargo_payment_pool> {
void SetCargo(CargoID ct) { this->ct = ct; } void SetCargo(CargoID ct) { this->ct = ct; }
}; };
/**
* Iterate over all cargo payments from a given start position.
* @param var The variable used for iterating.
* @param start The start of the iteration.
*/
#define FOR_ALL_CARGO_PAYMENTS_FROM(var, start) FOR_ALL_ITEMS_FROM(CargoPayment, cargo_payment_index, var, start)
/**
* Iterate over all cargo payments.
* @param var The variable used for iterating.
*/
#define FOR_ALL_CARGO_PAYMENTS(var) FOR_ALL_CARGO_PAYMENTS_FROM(var, 0)
#endif /* ECONOMY_BASE_H */ #endif /* ECONOMY_BASE_H */

View File

@@ -37,10 +37,4 @@ struct EffectVehicle FINAL : public SpecializedVehicle<EffectVehicle, VEH_EFFECT
void RemoveEffectVehicleFromTickCache(); void RemoveEffectVehicleFromTickCache();
}; };
/**
* Iterate over disaster vehicles.
* @param var The variable used to iterate over.
*/
#define FOR_ALL_EFFECTVEHICLES(var) FOR_ALL_VEHICLES_OF_TYPE(EffectVehicle, var)
#endif /* EFFECTVEHICLE_BASE_H */ #endif /* EFFECTVEHICLE_BASE_H */

View File

@@ -693,8 +693,6 @@ void DrawRailCatenary(const TileInfo *ti)
bool SettingsDisableElrail(int32 p1) bool SettingsDisableElrail(int32 p1)
{ {
Company *c;
Train *t;
bool disable = (p1 != 0); bool disable = (p1 != 0);
/* we will now walk through all electric train engines and change their railtypes if it is the wrong one*/ /* we will now walk through all electric train engines and change their railtypes if it is the wrong one*/
@@ -702,8 +700,7 @@ bool SettingsDisableElrail(int32 p1)
const RailType new_railtype = disable ? RAILTYPE_RAIL : RAILTYPE_ELECTRIC; const RailType new_railtype = disable ? RAILTYPE_RAIL : RAILTYPE_ELECTRIC;
/* walk through all train engines */ /* walk through all train engines */
Engine *e; for (Engine *e : Engine::IterateType(VEH_TRAIN)) {
FOR_ALL_ENGINES_OF_TYPE(e, VEH_TRAIN) {
RailVehicleInfo *rv_info = &e->u.rail; RailVehicleInfo *rv_info = &e->u.rail;
/* if it is an electric rail engine and its railtype is the wrong one */ /* if it is an electric rail engine and its railtype is the wrong one */
if (rv_info->engclass == 2 && rv_info->railtype == old_railtype) { if (rv_info->engclass == 2 && rv_info->railtype == old_railtype) {
@@ -715,7 +712,7 @@ bool SettingsDisableElrail(int32 p1)
/* when disabling elrails, make sure that all existing trains can run on /* when disabling elrails, make sure that all existing trains can run on
* normal rail too */ * normal rail too */
if (disable) { if (disable) {
FOR_ALL_TRAINS(t) { for (Train *t : Train::Iterate()) {
if (t->railtype == RAILTYPE_ELECTRIC) { if (t->railtype == RAILTYPE_ELECTRIC) {
/* this railroad vehicle is now compatible only with elrail, /* this railroad vehicle is now compatible only with elrail,
* so add there also normal rail compatibility */ * so add there also normal rail compatibility */
@@ -727,14 +724,14 @@ bool SettingsDisableElrail(int32 p1)
} }
/* Fix the total power and acceleration for trains */ /* Fix the total power and acceleration for trains */
FOR_ALL_TRAINS(t) { for (Train *t : Train::Iterate()) {
/* power and acceleration is cached only for front engines */ /* power and acceleration is cached only for front engines */
if (t->IsFrontEngine()) { if (t->IsFrontEngine()) {
t->ConsistChanged(CCF_TRACK); t->ConsistChanged(CCF_TRACK);
} }
} }
FOR_ALL_COMPANIES(c) c->avail_railtypes = GetCompanyRailtypes(c->index); for (Company *c : Company::Iterate()) c->avail_railtypes = GetCompanyRailtypes(c->index);
/* This resets the _last_built_railtype, which will be invalid for electric /* This resets the _last_built_railtype, which will be invalid for electric
* rails. It may have unintended consequences if that function is ever * rails. It may have unintended consequences if that function is ever

View File

@@ -536,8 +536,7 @@ EngineID EngineOverrideManager::GetID(VehicleType type, uint16 grf_local_id, uin
*/ */
bool EngineOverrideManager::ResetToCurrentNewGRFConfig() bool EngineOverrideManager::ResetToCurrentNewGRFConfig()
{ {
const Vehicle *v; for (const Vehicle *v : Vehicle::Iterate()) {
FOR_ALL_VEHICLES(v) {
if (IsCompanyBuildableVehicleType(v)) return false; if (IsCompanyBuildableVehicleType(v)) return false;
} }
@@ -628,8 +627,7 @@ void SetYearEngineAgingStops()
/* Determine last engine aging year, default to 2050 as previously. */ /* Determine last engine aging year, default to 2050 as previously. */
_year_engine_aging_stops = 2050; _year_engine_aging_stops = 2050;
const Engine *e; for (const Engine *e : Engine::Iterate()) {
FOR_ALL_ENGINES(e) {
const EngineInfo *ei = &e->info; const EngineInfo *ei = &e->info;
/* Exclude certain engines */ /* Exclude certain engines */
@@ -704,17 +702,15 @@ void StartupOneEngine(Engine *e, Date aging_date)
*/ */
void StartupEngines() void StartupEngines()
{ {
Engine *e;
/* Aging of vehicles stops, so account for that when starting late */ /* Aging of vehicles stops, so account for that when starting late */
const Date aging_date = min(_date, ConvertYMDToDate(_year_engine_aging_stops, 0, 1)); const Date aging_date = min(_date, ConvertYMDToDate(_year_engine_aging_stops, 0, 1));
FOR_ALL_ENGINES(e) { for (Engine *e : Engine::Iterate()) {
StartupOneEngine(e, aging_date); StartupOneEngine(e, aging_date);
} }
/* Update the bitmasks for the vehicle lists */ /* Update the bitmasks for the vehicle lists */
Company *c; for (Company *c : Company::Iterate()) {
FOR_ALL_COMPANIES(c) {
c->avail_railtypes = GetCompanyRailtypes(c->index); c->avail_railtypes = GetCompanyRailtypes(c->index);
c->avail_roadtypes = GetCompanyRoadTypes(c->index); c->avail_roadtypes = GetCompanyRoadTypes(c->index);
} }
@@ -773,14 +769,12 @@ static CompanyID GetPreviewCompany(Engine *e)
CargoTypes cargomask = e->type != VEH_TRAIN ? GetUnionOfArticulatedRefitMasks(e->index, true) : ALL_CARGOTYPES; CargoTypes cargomask = e->type != VEH_TRAIN ? GetUnionOfArticulatedRefitMasks(e->index, true) : ALL_CARGOTYPES;
int32 best_hist = -1; int32 best_hist = -1;
const Company *c; for (const Company *c : Company::Iterate()) {
FOR_ALL_COMPANIES(c) {
if (c->block_preview == 0 && !HasBit(e->preview_asked, c->index) && if (c->block_preview == 0 && !HasBit(e->preview_asked, c->index) &&
c->old_economy[0].performance_history > best_hist) { c->old_economy[0].performance_history > best_hist) {
/* Check whether the company uses similar vehicles */ /* Check whether the company uses similar vehicles */
Vehicle *v; for (const Vehicle *v : Vehicle::Iterate()) {
FOR_ALL_VEHICLES(v) {
if (v->owner != c->index || v->type != e->type || HasBit(v->subtype, GVSF_VIRTUAL)) continue; if (v->owner != c->index || v->type != e->type || HasBit(v->subtype, GVSF_VIRTUAL)) continue;
if (!v->GetEngine()->CanCarryCargo() || !HasBit(cargomask, v->cargo_type)) continue; if (!v->GetEngine()->CanCarryCargo() || !HasBit(cargomask, v->cargo_type)) continue;
@@ -816,16 +810,14 @@ static bool IsVehicleTypeDisabled(VehicleType type, bool ai)
/** Daily check to offer an exclusive engine preview to the companies. */ /** Daily check to offer an exclusive engine preview to the companies. */
void EnginesDailyLoop() void EnginesDailyLoop()
{ {
Company *c; for (Company *c : Company::Iterate()) {
FOR_ALL_COMPANIES(c) {
c->avail_railtypes = AddDateIntroducedRailTypes(c->avail_railtypes, _date); c->avail_railtypes = AddDateIntroducedRailTypes(c->avail_railtypes, _date);
c->avail_roadtypes = AddDateIntroducedRoadTypes(c->avail_roadtypes, _date); c->avail_roadtypes = AddDateIntroducedRoadTypes(c->avail_roadtypes, _date);
} }
if (_cur_year >= _year_engine_aging_stops) return; if (_cur_year >= _year_engine_aging_stops) return;
Engine *e; for (Engine *e : Engine::Iterate()) {
FOR_ALL_ENGINES(e) {
EngineID i = e->index; EngineID i = e->index;
if (e->flags & ENGINE_EXCLUSIVE_PREVIEW) { if (e->flags & ENGINE_EXCLUSIVE_PREVIEW) {
if (e->preview_company != INVALID_COMPANY) { if (e->preview_company != INVALID_COMPANY) {
@@ -861,8 +853,7 @@ void EnginesDailyLoop()
*/ */
void ClearEnginesHiddenFlagOfCompany(CompanyID cid) void ClearEnginesHiddenFlagOfCompany(CompanyID cid)
{ {
Engine *e; for (Engine *e : Engine::Iterate()) {
FOR_ALL_ENGINES(e) {
SB(e->company_hidden, cid, 1, 0); SB(e->company_hidden, cid, 1, 0);
} }
} }
@@ -917,14 +908,12 @@ CommandCost CmdWantEnginePreview(TileIndex tile, DoCommandFlag flags, uint32 p1,
*/ */
static void NewVehicleAvailable(Engine *e) static void NewVehicleAvailable(Engine *e)
{ {
Vehicle *v;
Company *c;
EngineID index = e->index; EngineID index = e->index;
/* In case the company didn't build the vehicle during the intro period, /* In case the company didn't build the vehicle during the intro period,
* prevent that company from getting future intro periods for a while. */ * prevent that company from getting future intro periods for a while. */
if (e->flags & ENGINE_EXCLUSIVE_PREVIEW) { if (e->flags & ENGINE_EXCLUSIVE_PREVIEW) {
FOR_ALL_COMPANIES(c) { for (Company *c : Company::Iterate()) {
uint block_preview = c->block_preview; uint block_preview = c->block_preview;
if (!HasBit(e->company_avail, c->index)) continue; if (!HasBit(e->company_avail, c->index)) continue;
@@ -932,7 +921,7 @@ static void NewVehicleAvailable(Engine *e)
/* We assume the user did NOT build it.. prove me wrong ;) */ /* We assume the user did NOT build it.. prove me wrong ;) */
c->block_preview = 20; c->block_preview = 20;
FOR_ALL_VEHICLES(v) { for (const Vehicle *v : Vehicle::Iterate()) {
if ((v->type == VEH_TRAIN && !HasBit(v->subtype, GVSF_VIRTUAL)) || v->type == VEH_ROAD || v->type == VEH_SHIP || if ((v->type == VEH_TRAIN && !HasBit(v->subtype, GVSF_VIRTUAL)) || v->type == VEH_ROAD || v->type == VEH_SHIP ||
(v->type == VEH_AIRCRAFT && Aircraft::From(v)->IsNormalAircraft())) { (v->type == VEH_AIRCRAFT && Aircraft::From(v)->IsNormalAircraft())) {
if (v->owner == c->index && v->engine_type == index) { if (v->owner == c->index && v->engine_type == index) {
@@ -958,11 +947,11 @@ static void NewVehicleAvailable(Engine *e)
/* maybe make another rail type available */ /* maybe make another rail type available */
RailType railtype = e->u.rail.railtype; RailType railtype = e->u.rail.railtype;
assert(railtype < RAILTYPE_END); assert(railtype < RAILTYPE_END);
FOR_ALL_COMPANIES(c) c->avail_railtypes = AddDateIntroducedRailTypes(c->avail_railtypes | GetRailTypeInfo(e->u.rail.railtype)->introduces_railtypes, _date); for (Company *c : Company::Iterate()) c->avail_railtypes = AddDateIntroducedRailTypes(c->avail_railtypes | GetRailTypeInfo(e->u.rail.railtype)->introduces_railtypes, _date);
} else if (e->type == VEH_ROAD) { } else if (e->type == VEH_ROAD) {
/* maybe make another road type available */ /* maybe make another road type available */
assert(e->u.road.roadtype < ROADTYPE_END); assert(e->u.road.roadtype < ROADTYPE_END);
FOR_ALL_COMPANIES(c) c->avail_roadtypes = AddDateIntroducedRoadTypes(c->avail_roadtypes | GetRoadTypeInfo(e->u.road.roadtype)->introduces_roadtypes, _date); for (Company* c : Company::Iterate()) c->avail_roadtypes = AddDateIntroducedRoadTypes(c->avail_roadtypes | GetRoadTypeInfo(e->u.road.roadtype)->introduces_roadtypes, _date);
} }
/* Only broadcast event if AIs are able to build this vehicle type. */ /* Only broadcast event if AIs are able to build this vehicle type. */
@@ -987,8 +976,7 @@ static void NewVehicleAvailable(Engine *e)
void EnginesMonthlyLoop() void EnginesMonthlyLoop()
{ {
if (_cur_year < _year_engine_aging_stops) { if (_cur_year < _year_engine_aging_stops) {
Engine *e; for (Engine *e : Engine::Iterate()) {
FOR_ALL_ENGINES(e) {
/* Age the vehicle */ /* Age the vehicle */
if ((e->flags & ENGINE_AVAILABLE) && e->age != MAX_DAY) { if ((e->flags & ENGINE_AVAILABLE) && e->age != MAX_DAY) {
e->age++; e->age++;
@@ -1029,9 +1017,7 @@ void EnginesMonthlyLoop()
*/ */
static bool IsUniqueEngineName(const char *name) static bool IsUniqueEngineName(const char *name)
{ {
const Engine *e; for (const Engine *e : Engine::Iterate()) {
FOR_ALL_ENGINES(e) {
if (e->name != nullptr && strcmp(e->name, name) == 0) return false; if (e->name != nullptr && strcmp(e->name, name) == 0) return false;
} }
@@ -1152,10 +1138,9 @@ bool IsEngineRefittable(EngineID engine)
*/ */
void CheckEngines() void CheckEngines()
{ {
const Engine *e;
Date min_date = INT32_MAX; Date min_date = INT32_MAX;
FOR_ALL_ENGINES(e) { for (const Engine *e : Engine::Iterate()) {
if (!e->IsEnabled()) continue; if (!e->IsEnabled()) continue;
/* We have an available engine... yay! */ /* We have an available engine... yay! */

View File

@@ -142,6 +142,17 @@ struct Engine : EnginePool::PoolItem<&_engine_pool> {
} }
uint32 GetGRFID() const; uint32 GetGRFID() const;
/**
* Returns an iterable ensemble of all valid engines of the given type
* @param vt the VehicleType for engines to be valid
* @param from index of the first engine to consider
* @return an iterable ensemble of all valid engines of the given type
*/
static Pool::IterateWrapper<Engine> IterateType(VehicleType vt, size_t from = 0)
{
return Pool::IterateWrapper<Engine>(from, [vt](size_t index) { return Engine::Get(index)->type == vt; });
}
}; };
struct EngineIDMapping { struct EngineIDMapping {
@@ -166,11 +177,6 @@ struct EngineOverrideManager : std::vector<EngineIDMapping> {
extern EngineOverrideManager _engine_mngr; extern EngineOverrideManager _engine_mngr;
#define FOR_ALL_ENGINES_FROM(var, start) FOR_ALL_ITEMS_FROM(Engine, engine_index, var, start)
#define FOR_ALL_ENGINES(var) FOR_ALL_ENGINES_FROM(var, 0)
#define FOR_ALL_ENGINES_OF_TYPE(e, engine_type) FOR_ALL_ENGINES(e) if (e->type == engine_type)
static inline const EngineInfo *EngInfo(EngineID e) static inline const EngineInfo *EngInfo(EngineID e)
{ {
return &Engine::Get(e)->info; return &Engine::Get(e)->info;

View File

@@ -273,8 +273,9 @@ private:
AbstractFileType abstract_filetype; /// Type of file to select. AbstractFileType abstract_filetype; /// Type of file to select.
SaveLoadOperation fop; ///< File operation to perform. SaveLoadOperation fop; ///< File operation to perform.
FileList fios_items; ///< Save game list. FileList fios_items; ///< Save game list.
FiosItem o_dir; FiosItem o_dir; ///< Original dir (home dir for this browser)
const FiosItem *selected; ///< Selected game in #fios_items, or \c nullptr. const FiosItem *selected; ///< Selected game in #fios_items, or \c nullptr.
const FiosItem *highlighted; ///< Item in fios_items highlighted by mouse pointer, or \c nullptr.
Scrollbar *vscroll; Scrollbar *vscroll;
StringFilter string_filter; ///< Filter for available games. StringFilter string_filter; ///< Filter for available games.
@@ -449,6 +450,8 @@ public:
if (item == this->selected) { if (item == this->selected) {
GfxFillRect(r.left + 1, y, r.right, y + this->resize.step_height, PC_DARK_BLUE); GfxFillRect(r.left + 1, y, r.right, y + this->resize.step_height, PC_DARK_BLUE);
} else if (item == this->highlighted) {
GfxFillRect(r.left + 1, y, r.right, y + this->resize.step_height, PC_VERY_DARK_BLUE);
} }
DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, item->title, _fios_colours[GetDetailedFileType(item->type)]); DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, item->title, _fios_colours[GetDetailedFileType(item->type)]);
y += this->resize.step_height; y += this->resize.step_height;
@@ -729,6 +732,33 @@ public:
} }
} }
void OnMouseLoop() override
{
const Point pt{ _cursor.pos.x - this->left, _cursor.pos.y - this->top };
const int widget = GetWidgetFromPos(this, pt.x, pt.y);
if (widget == WID_SL_DRIVES_DIRECTORIES_LIST) {
int y = this->vscroll->GetScrolledRowFromWidget(pt.y, this, WID_SL_DRIVES_DIRECTORIES_LIST, WD_FRAMERECT_TOP);
if (y == INT_MAX) return;
/* Get the corresponding non-filtered out item from the list */
int i = 0;
while (i <= y) {
if (!this->fios_items_shown[i]) y++;
i++;
}
const FiosItem *file = this->fios_items.Get(y);
if (file != this->highlighted) {
this->highlighted = file;
this->SetWidgetDirty(WID_SL_DRIVES_DIRECTORIES_LIST);
}
} else if (this->highlighted != nullptr) {
this->highlighted = nullptr;
this->SetWidgetDirty(WID_SL_DRIVES_DIRECTORIES_LIST);
}
}
EventState OnKeyPress(WChar key, uint16 keycode) override EventState OnKeyPress(WChar key, uint16 keycode) override
{ {
if (keycode == WKC_ESC) { if (keycode == WKC_ESC) {

View File

@@ -318,7 +318,7 @@ static void SetColourRemap(TextColour colour)
* would be invisible at best, but it actually makes it illegible. */ * would be invisible at best, but it actually makes it illegible. */
bool no_shade = (colour & TC_NO_SHADE) != 0 || colour == TC_BLACK; bool no_shade = (colour & TC_NO_SHADE) != 0 || colour == TC_BLACK;
bool raw_colour = (colour & TC_IS_PALETTE_COLOUR) != 0; bool raw_colour = (colour & TC_IS_PALETTE_COLOUR) != 0;
colour &= ~(TC_NO_SHADE | TC_IS_PALETTE_COLOUR); colour &= ~(TC_NO_SHADE | TC_IS_PALETTE_COLOUR | TC_FORCED);
_string_colourremap[1] = raw_colour ? (byte)colour : _string_colourmap[colour]; _string_colourremap[1] = raw_colour ? (byte)colour : _string_colourmap[colour];
_string_colourremap[2] = no_shade ? 0 : 1; _string_colourremap[2] = no_shade ? 0 : 1;

View File

@@ -232,6 +232,7 @@ static const uint8 PC_VERY_LIGHT_YELLOW = 0x45; ///< Almost-white yel
static const uint8 PC_GREEN = 0xD0; ///< Green palette colour. static const uint8 PC_GREEN = 0xD0; ///< Green palette colour.
static const uint8 PC_VERY_DARK_BLUE = 0x9A; ///< Almost-black blue palette colour.
static const uint8 PC_DARK_BLUE = 0x9D; ///< Dark blue palette colour. static const uint8 PC_DARK_BLUE = 0x9D; ///< Dark blue palette colour.
static const uint8 PC_LIGHT_BLUE = 0x98; ///< Light blue palette colour. static const uint8 PC_LIGHT_BLUE = 0x98; ///< Light blue palette colour.

View File

@@ -46,7 +46,7 @@ struct FontState {
inline void SetColour(TextColour c) inline void SetColour(TextColour c)
{ {
assert(c >= TC_BLUE && c <= TC_BLACK); assert(c >= TC_BLUE && c <= TC_BLACK);
this->cur_colour = c; if ((this->cur_colour & TC_FORCED) == 0) this->cur_colour = c;
} }
/** /**

View File

@@ -267,6 +267,7 @@ enum TextColour {
TC_IS_PALETTE_COLOUR = 0x100, ///< Colour value is already a real palette colour index, not an index of a StringColour. TC_IS_PALETTE_COLOUR = 0x100, ///< Colour value is already a real palette colour index, not an index of a StringColour.
TC_NO_SHADE = 0x200, ///< Do not add shading to this text colour. TC_NO_SHADE = 0x200, ///< Do not add shading to this text colour.
TC_FORCED = 0x400, ///< Ignore colour changes from strings.
}; };
DECLARE_ENUM_AS_BIT_SET(TextColour) DECLARE_ENUM_AS_BIT_SET(TextColour)

View File

@@ -37,7 +37,4 @@ struct Goal : GoalPool::PoolItem<&_goal_pool> {
inline ~Goal() { free(this->text); free(this->progress); } inline ~Goal() { free(this->text); free(this->progress); }
}; };
#define FOR_ALL_GOALS_FROM(var, start) FOR_ALL_ITEMS_FROM(Goal, goal_index, var, start)
#define FOR_ALL_GOALS(var) FOR_ALL_GOALS_FROM(var, 0)
#endif /* GOAL_BASE_H */ #endif /* GOAL_BASE_H */

View File

@@ -66,8 +66,7 @@ struct GoalListWindow : public Window {
int y = this->vscroll->GetScrolledRowFromWidget(pt.y, this, WID_GOAL_LIST, WD_FRAMERECT_TOP); int y = this->vscroll->GetScrolledRowFromWidget(pt.y, this, WID_GOAL_LIST, WD_FRAMERECT_TOP);
int num = 0; int num = 0;
const Goal *s; for (const Goal *s : Goal::Iterate()) {
FOR_ALL_GOALS(s) {
if (s->company == INVALID_COMPANY) { if (s->company == INVALID_COMPANY) {
y--; y--;
if (y == 0) { if (y == 0) {
@@ -86,7 +85,7 @@ struct GoalListWindow : public Window {
y -= 2; // "Company specific goals:" line. y -= 2; // "Company specific goals:" line.
if (y < 0) return; if (y < 0) return;
FOR_ALL_GOALS(s) { for (const Goal *s : Goal::Iterate()) {
if (s->company == this->window_number) { if (s->company == this->window_number) {
y--; y--;
if (y == 0) { if (y == 0) {
@@ -158,8 +157,7 @@ struct GoalListWindow : public Window {
/* Count number of (non) awarded goals. */ /* Count number of (non) awarded goals. */
uint num_global = 0; uint num_global = 0;
uint num_company = 0; uint num_company = 0;
const Goal *s; for (const Goal *s : Goal::Iterate()) {
FOR_ALL_GOALS(s) {
if (s->company == INVALID_COMPANY) { if (s->company == INVALID_COMPANY) {
num_global++; num_global++;
} else if (s->company == this->window_number) { } else if (s->company == this->window_number) {
@@ -207,8 +205,7 @@ struct GoalListWindow : public Window {
bool rtl = _current_text_dir == TD_RTL; bool rtl = _current_text_dir == TD_RTL;
uint num = 0; uint num = 0;
const Goal *s; for (const Goal *s : Goal::Iterate()) {
FOR_ALL_GOALS(s) {
if (global_section ? s->company == INVALID_COMPANY : (s->company == this->window_number && s->company != INVALID_COMPANY)) { if (global_section ? s->company == INVALID_COMPANY : (s->company == this->window_number && s->company != INVALID_COMPANY)) {
if (IsInsideMM(pos, 0, cap)) { if (IsInsideMM(pos, 0, cap)) {
switch (column) { switch (column) {
@@ -278,8 +275,7 @@ struct GoalListWindow : public Window {
/* Calculate progress column width. */ /* Calculate progress column width. */
uint max_width = 0; uint max_width = 0;
Goal *s; for (const Goal *s : Goal::Iterate()) {
FOR_ALL_GOALS(s) {
if (s->progress != nullptr) { if (s->progress != nullptr) {
SetDParamStr(0, s->progress); SetDParamStr(0, s->progress);
StringID str = s->completed ? STR_GOALS_PROGRESS_COMPLETE : STR_GOALS_PROGRESS; StringID str = s->completed ? STR_GOALS_PROGRESS_COMPLETE : STR_GOALS_PROGRESS;

View File

@@ -567,8 +567,7 @@ public:
} }
byte nums = 0; byte nums = 0;
const Company *c; for (const Company *c : Company::Iterate()) {
FOR_ALL_COMPANIES(c) {
nums = min(this->num_vert_lines, max(nums, c->num_valid_stat_ent)); nums = min(this->num_vert_lines, max(nums, c->num_valid_stat_ent));
} }
@@ -592,7 +591,7 @@ public:
int numd = 0; int numd = 0;
for (CompanyID k = COMPANY_FIRST; k < MAX_COMPANIES; k++) { for (CompanyID k = COMPANY_FIRST; k < MAX_COMPANIES; k++) {
c = Company::GetIfValid(k); const Company *c = Company::GetIfValid(k);
if (c != nullptr) { if (c != nullptr) {
this->colours[numd] = _colour_gradient[c->colour][6]; this->colours[numd] = _colour_gradient[c->colour][6];
for (int j = this->num_on_x_axis, i = 0; --j >= 0;) { for (int j = this->num_on_x_axis, i = 0; --j >= 0;) {
@@ -1136,8 +1135,7 @@ private:
this->companies.clear(); this->companies.clear();
const Company *c; for (const Company *c : Company::Iterate()) {
FOR_ALL_COMPANIES(c) {
this->companies.push_back(c); this->companies.push_back(c);
} }
@@ -1219,8 +1217,7 @@ public:
this->icon_width = d.width + 2; this->icon_width = d.width + 2;
this->line_height = max<int>(d.height + 2, FONT_HEIGHT_NORMAL); this->line_height = max<int>(d.height + 2, FONT_HEIGHT_NORMAL);
const Company *c; for (const Company *c : Company::Iterate()) {
FOR_ALL_COMPANIES(c) {
SetDParam(0, c->index); SetDParam(0, c->index);
SetDParam(1, c->index); SetDParam(1, c->index);
SetDParam(2, _performance_titles[widest_title]); SetDParam(2, _performance_titles[widest_title]);
@@ -1299,8 +1296,7 @@ struct PerformanceRatingDetailWindow : Window {
{ {
/* Update all company stats with the current data /* Update all company stats with the current data
* (this is because _score_info is not saved to a savegame) */ * (this is because _score_info is not saved to a savegame) */
Company *c; for (Company *c : Company::Iterate()) {
FOR_ALL_COMPANIES(c) {
UpdateCompanyRatingAndValue(c, false); UpdateCompanyRatingAndValue(c, false);
} }
@@ -1497,8 +1493,7 @@ struct PerformanceRatingDetailWindow : Window {
} }
if (this->company == INVALID_COMPANY) { if (this->company == INVALID_COMPANY) {
const Company *c; for (const Company *c : Company::Iterate()) {
FOR_ALL_COMPANIES(c) {
this->company = c->index; this->company = c->index;
break; break;
} }

View File

@@ -100,10 +100,6 @@ static inline bool IsTopLevelGroupID(GroupID index)
return index == DEFAULT_GROUP || index == ALL_GROUP; return index == DEFAULT_GROUP || index == ALL_GROUP;
} }
#define FOR_ALL_GROUPS_FROM(var, start) FOR_ALL_ITEMS_FROM(Group, group_index, var, start)
#define FOR_ALL_GROUPS(var) FOR_ALL_GROUPS_FROM(var, 0)
uint GetGroupNumEngines(CompanyID company, GroupID id_g, EngineID id_e); uint GetGroupNumEngines(CompanyID company, GroupID id_g, EngineID id_e);
uint GetGroupNumVehicle(CompanyID company, GroupID id_g, VehicleType type); uint GetGroupNumVehicle(CompanyID company, GroupID id_g, VehicleType type);
uint GetGroupNumProfitVehicle(CompanyID company, GroupID id_g, VehicleType type); uint GetGroupNumProfitVehicle(CompanyID company, GroupID id_g, VehicleType type);

View File

@@ -103,8 +103,7 @@ void GroupStatistics::Clear()
/* static */ void GroupStatistics::UpdateAfterLoad() /* static */ void GroupStatistics::UpdateAfterLoad()
{ {
/* Set up the engine count for all companies */ /* Set up the engine count for all companies */
Company *c; for (Company *c : Company::Iterate()) {
FOR_ALL_COMPANIES(c) {
for (VehicleType type = VEH_BEGIN; type < VEH_COMPANY_END; type++) { for (VehicleType type = VEH_BEGIN; type < VEH_COMPANY_END; type++) {
c->group_all[type].Clear(); c->group_all[type].Clear();
c->group_default[type].Clear(); c->group_default[type].Clear();
@@ -112,20 +111,18 @@ void GroupStatistics::Clear()
} }
/* Recalculate */ /* Recalculate */
Group *g; for (Group *g : Group::Iterate()) {
FOR_ALL_GROUPS(g) {
g->statistics.Clear(); g->statistics.Clear();
} }
const Vehicle *v; for (const Vehicle *v : Vehicle::Iterate()) {
FOR_ALL_VEHICLES(v) {
if (!v->IsEngineCountable()) continue; if (!v->IsEngineCountable()) continue;
GroupStatistics::CountEngine(v, 1); GroupStatistics::CountEngine(v, 1);
if (v->IsPrimaryVehicle()) GroupStatistics::CountVehicle(v, 1); if (v->IsPrimaryVehicle()) GroupStatistics::CountVehicle(v, 1);
} }
FOR_ALL_COMPANIES(c) { for (const Company *c : Company::Iterate()) {
GroupStatistics::UpdateAutoreplace(c->index); GroupStatistics::UpdateAutoreplace(c->index);
} }
} }
@@ -191,8 +188,7 @@ void GroupStatistics::Clear()
/* static */ void GroupStatistics::UpdateProfits() /* static */ void GroupStatistics::UpdateProfits()
{ {
/* Set up the engine count for all companies */ /* Set up the engine count for all companies */
Company *c; for (Company *c : Company::Iterate()) {
FOR_ALL_COMPANIES(c) {
for (VehicleType type = VEH_BEGIN; type < VEH_COMPANY_END; type++) { for (VehicleType type = VEH_BEGIN; type < VEH_COMPANY_END; type++) {
c->group_all[type].ClearProfits(); c->group_all[type].ClearProfits();
c->group_default[type].ClearProfits(); c->group_default[type].ClearProfits();
@@ -200,13 +196,11 @@ void GroupStatistics::Clear()
} }
/* Recalculate */ /* Recalculate */
Group *g; for (Group *g : Group::Iterate()) {
FOR_ALL_GROUPS(g) {
g->statistics.ClearProfits(); g->statistics.ClearProfits();
} }
const Vehicle *v; for (const Vehicle *v : Vehicle::Iterate()) {
FOR_ALL_VEHICLES(v) {
if (v->IsPrimaryVehicle() && v->age > VEHICLE_PROFIT_MIN_AGE && !HasBit(v->subtype, GVSF_VIRTUAL)) GroupStatistics::VehicleReachedProfitAge(v); if (v->IsPrimaryVehicle() && v->age > VEHICLE_PROFIT_MIN_AGE && !HasBit(v->subtype, GVSF_VIRTUAL)) GroupStatistics::VehicleReachedProfitAge(v);
} }
} }
@@ -225,8 +219,7 @@ void GroupStatistics::Clear()
} }
/* Recalculate */ /* Recalculate */
Group *g; for (Group *g : Group::Iterate()) {
FOR_ALL_GROUPS(g) {
if (g->owner != company) continue; if (g->owner != company) continue;
g->statistics.ClearAutoreplace(); g->statistics.ClearAutoreplace();
} }
@@ -280,8 +273,7 @@ const Livery *GetParentLivery(const Group *g)
void PropagateChildLivery(const Group *g) void PropagateChildLivery(const Group *g)
{ {
/* Company colour data is indirectly cached. */ /* Company colour data is indirectly cached. */
Vehicle *v; for (Vehicle *v : Vehicle::Iterate()) {
FOR_ALL_VEHICLES(v) {
if (v->group_id == g->index && (!v->IsGroundVehicle() || v->IsFrontEngine())) { if (v->group_id == g->index && (!v->IsGroundVehicle() || v->IsFrontEngine())) {
for (Vehicle *u = v; u != nullptr; u = u->Next()) { for (Vehicle *u = v; u != nullptr; u = u->Next()) {
u->colourmap = PAL_NONE; u->colourmap = PAL_NONE;
@@ -290,8 +282,7 @@ void PropagateChildLivery(const Group *g)
} }
} }
Group *cg; for (Group *cg : Group::Iterate()) {
FOR_ALL_GROUPS(cg) {
if (cg->parent == g->index) { if (cg->parent == g->index) {
if (!HasBit(cg->livery.in_use, 0)) cg->livery.colour1 = g->livery.colour1; if (!HasBit(cg->livery.in_use, 0)) cg->livery.colour1 = g->livery.colour1;
if (!HasBit(cg->livery.in_use, 1)) cg->livery.colour2 = g->livery.colour2; if (!HasBit(cg->livery.in_use, 1)) cg->livery.colour2 = g->livery.colour2;
@@ -380,8 +371,7 @@ CommandCost CmdDeleteGroup(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3
DoCommand(0, p1, 0, flags, CMD_REMOVE_ALL_VEHICLES_GROUP); DoCommand(0, p1, 0, flags, CMD_REMOVE_ALL_VEHICLES_GROUP);
/* Delete sub-groups */ /* Delete sub-groups */
Group *gp; for (const Group *gp : Group::Iterate()) {
FOR_ALL_GROUPS(gp) {
if (gp->parent == g->index) { if (gp->parent == g->index) {
DoCommand(0, gp->index, 0, flags, CMD_DELETE_GROUP); DoCommand(0, gp->index, 0, flags, CMD_DELETE_GROUP);
} }
@@ -394,10 +384,9 @@ CommandCost CmdDeleteGroup(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3
/* If we set an autoreplace for the group we delete, remove it. */ /* If we set an autoreplace for the group we delete, remove it. */
if (_current_company < MAX_COMPANIES) { if (_current_company < MAX_COMPANIES) {
Company *c; Company *c;
EngineRenew *er;
c = Company::Get(_current_company); c = Company::Get(_current_company);
FOR_ALL_ENGINE_RENEWS(er) { for (EngineRenew *er : EngineRenew::Iterate()) {
if (er->group_id == g->index) RemoveEngineReplacementForCompany(c, er->from, g->index, flags); if (er->group_id == g->index) RemoveEngineReplacementForCompany(c, er->from, g->index, flags);
} }
} }
@@ -640,11 +629,9 @@ CommandCost CmdAddSharedVehicleGroup(TileIndex tile, DoCommandFlag flags, uint32
if (!Group::IsValidID(id_g) || !IsCompanyBuildableVehicleType(type)) return CMD_ERROR; if (!Group::IsValidID(id_g) || !IsCompanyBuildableVehicleType(type)) return CMD_ERROR;
if (flags & DC_EXEC) { if (flags & DC_EXEC) {
Vehicle *v;
/* Find the first front engine which belong to the group id_g /* Find the first front engine which belong to the group id_g
* then add all shared vehicles of this front engine to the group id_g */ * then add all shared vehicles of this front engine to the group id_g */
FOR_ALL_VEHICLES(v) { for (const Vehicle *v : Vehicle::Iterate()) {
if (v->type == type && v->IsPrimaryVehicle()) { if (v->type == type && v->IsPrimaryVehicle()) {
if (v->group_id != id_g) continue; if (v->group_id != id_g) continue;
@@ -680,10 +667,8 @@ CommandCost CmdRemoveAllVehiclesGroup(TileIndex tile, DoCommandFlag flags, uint3
if (g == nullptr || g->owner != _current_company) return CMD_ERROR; if (g == nullptr || g->owner != _current_company) return CMD_ERROR;
if (flags & DC_EXEC) { if (flags & DC_EXEC) {
Vehicle *v;
/* Find each Vehicle that belongs to the group old_g and add it to the default group */ /* Find each Vehicle that belongs to the group old_g and add it to the default group */
FOR_ALL_VEHICLES(v) { for (const Vehicle *v : Vehicle::Iterate()) {
if (v->IsPrimaryVehicle()) { if (v->IsPrimaryVehicle()) {
if (v->group_id != old_g) continue; if (v->group_id != old_g) continue;
@@ -745,8 +730,7 @@ static void SetGroupReplaceProtection(Group *g, bool protect)
{ {
g->replace_protection = protect; g->replace_protection = protect;
Group *pg; for (Group *pg : Group::Iterate()) {
FOR_ALL_GROUPS(pg) {
if (pg->parent == g->index) SetGroupReplaceProtection(pg, protect); if (pg->parent == g->index) SetGroupReplaceProtection(pg, protect);
} }
} }
@@ -859,8 +843,7 @@ uint GetGroupNumEngines(CompanyID company, GroupID id_g, EngineID id_e)
{ {
uint count = 0; uint count = 0;
const Engine *e = Engine::Get(id_e); const Engine *e = Engine::Get(id_e);
const Group *g; for (const Group *g : Group::Iterate()) {
FOR_ALL_GROUPS(g) {
if (g->parent == id_g) count += GetGroupNumEngines(company, g->index, id_e); if (g->parent == id_g) count += GetGroupNumEngines(company, g->index, id_e);
} }
return count + GroupStatistics::Get(company, id_g, e->type).num_engines[id_e]; return count + GroupStatistics::Get(company, id_g, e->type).num_engines[id_e];
@@ -877,8 +860,7 @@ uint GetGroupNumEngines(CompanyID company, GroupID id_g, EngineID id_e)
uint GetGroupNumVehicle(CompanyID company, GroupID id_g, VehicleType type) uint GetGroupNumVehicle(CompanyID company, GroupID id_g, VehicleType type)
{ {
uint count = 0; uint count = 0;
const Group *g; for (const Group *g : Group::Iterate()) {
FOR_ALL_GROUPS(g) {
if (g->parent == id_g) count += GetGroupNumVehicle(company, g->index, type); if (g->parent == id_g) count += GetGroupNumVehicle(company, g->index, type);
} }
return count + GroupStatistics::Get(company, id_g, type).num_vehicle; return count + GroupStatistics::Get(company, id_g, type).num_vehicle;
@@ -895,8 +877,7 @@ uint GetGroupNumVehicle(CompanyID company, GroupID id_g, VehicleType type)
uint GetGroupNumProfitVehicle(CompanyID company, GroupID id_g, VehicleType type) uint GetGroupNumProfitVehicle(CompanyID company, GroupID id_g, VehicleType type)
{ {
uint count = 0; uint count = 0;
const Group *g; for (const Group *g : Group::Iterate()) {
FOR_ALL_GROUPS(g) {
if (g->parent == id_g) count += GetGroupNumProfitVehicle(company, g->index, type); if (g->parent == id_g) count += GetGroupNumProfitVehicle(company, g->index, type);
} }
return count + GroupStatistics::Get(company, id_g, type).num_profit_vehicle; return count + GroupStatistics::Get(company, id_g, type).num_profit_vehicle;
@@ -913,8 +894,7 @@ uint GetGroupNumProfitVehicle(CompanyID company, GroupID id_g, VehicleType type)
Money GetGroupProfitLastYear(CompanyID company, GroupID id_g, VehicleType type) Money GetGroupProfitLastYear(CompanyID company, GroupID id_g, VehicleType type)
{ {
Money sum = 0; Money sum = 0;
const Group *g; for (const Group *g : Group::Iterate()) {
FOR_ALL_GROUPS(g) {
if (g->parent == id_g) sum += GetGroupProfitLastYear(company, g->index, type); if (g->parent == id_g) sum += GetGroupProfitLastYear(company, g->index, type);
} }
return sum + GroupStatistics::Get(company, id_g, type).profit_last_year; return sum + GroupStatistics::Get(company, id_g, type).profit_last_year;
@@ -922,9 +902,7 @@ Money GetGroupProfitLastYear(CompanyID company, GroupID id_g, VehicleType type)
void RemoveAllGroupsForCompany(const CompanyID company) void RemoveAllGroupsForCompany(const CompanyID company)
{ {
Group *g; for (Group *g : Group::Iterate()) {
FOR_ALL_GROUPS(g) {
if (company == g->owner) { if (company == g->owner) {
DeleteTemplateReplacementsByGroupID(g->index); DeleteTemplateReplacementsByGroupID(g->index);
delete g; delete g;

View File

@@ -190,8 +190,7 @@ private:
bool enable_expand_all = false; bool enable_expand_all = false;
bool enable_collapse_all = false; bool enable_collapse_all = false;
const Group *g; for (const Group *g : Group::Iterate()) {
FOR_ALL_GROUPS(g) {
if (g->owner == owner && g->vehicle_type == this->vli.vtype) { if (g->owner == owner && g->vehicle_type == this->vli.vtype) {
list.push_back(g); list.push_back(g);
if (g->parent != INVALID_GROUP) { if (g->parent != INVALID_GROUP) {
@@ -361,8 +360,7 @@ private:
void SetAllGroupsFoldState(bool folded) void SetAllGroupsFoldState(bool folded)
{ {
const Group *g; for (const Group *g : Group::Iterate()) {
FOR_ALL_GROUPS(g) {
if (g->owner == this->owner && g->vehicle_type == this->vli.vtype) { if (g->owner == this->owner && g->vehicle_type == this->vli.vtype) {
if (g->parent != INVALID_GROUP) { if (g->parent != INVALID_GROUP) {
Group::Get(g->parent)->folded = folded; Group::Get(g->parent)->folded = folded;
@@ -406,6 +404,7 @@ public:
this->groups.ForceRebuild(); this->groups.ForceRebuild();
this->groups.NeedResort(); this->groups.NeedResort();
this->BuildGroupList(vli.company); this->BuildGroupList(vli.company);
this->group_sb->SetCount((uint)this->groups.size());
this->GetWidget<NWidgetCore>(WID_GL_CAPTION)->widget_data = STR_VEHICLE_LIST_TRAIN_CAPTION + this->vli.vtype; this->GetWidget<NWidgetCore>(WID_GL_CAPTION)->widget_data = STR_VEHICLE_LIST_TRAIN_CAPTION + this->vli.vtype;
this->GetWidget<NWidgetCore>(WID_GL_LIST_VEHICLE)->tool_tip = STR_VEHICLE_LIST_TRAIN_LIST_TOOLTIP + this->vli.vtype; this->GetWidget<NWidgetCore>(WID_GL_LIST_VEHICLE)->tool_tip = STR_VEHICLE_LIST_TRAIN_LIST_TOOLTIP + this->vli.vtype;
@@ -785,6 +784,10 @@ public:
this->vehicle_sel = v->index; this->vehicle_sel = v->index;
if (_ctrl_pressed) {
this->SelectGroup(v->group_id);
}
SetObjectToPlaceWnd(SPR_CURSOR_MOUSE, PAL_NONE, HT_DRAG, this); SetObjectToPlaceWnd(SPR_CURSOR_MOUSE, PAL_NONE, HT_DRAG, this);
SetMouseCursorVehicle(v, EIT_IN_LIST); SetMouseCursorVehicle(v, EIT_IN_LIST);
_cursor.vehchain = true; _cursor.vehchain = true;
@@ -1078,6 +1081,35 @@ public:
{ {
if (this->vehicle_sel == vehicle) ResetObjectToPlace(); if (this->vehicle_sel == vehicle) ResetObjectToPlace();
} }
/**
* Selects the specified group in the list
*
* @param g_id The ID of the group to be selected
*/
void SelectGroup(const GroupID g_id)
{
if (g_id == INVALID_GROUP || g_id == this->vli.index) return;
this->vli.index = g_id;
if (g_id != ALL_GROUP && g_id != DEFAULT_GROUP) {
const Group *g = Group::Get(g_id);
int id_g = find_index(this->groups, g);
// The group's branch is maybe collapsed, so try to expand it
if (id_g == -1) {
for (auto pg = Group::GetIfValid(g->parent); pg != nullptr; pg = Group::GetIfValid(pg->parent)) {
pg->folded = false;
}
this->groups.ForceRebuild();
this->BuildGroupList(this->owner);
id_g = find_index(this->groups, g);
}
this->group_sb->ScrollTowards(id_g);
}
this->vehicles.ForceRebuild();
this->SetDirty();
}
}; };
@@ -1099,18 +1131,31 @@ static WindowDesc _train_group_desc(
* Show the group window for the given company and vehicle type. * Show the group window for the given company and vehicle type.
* @param company The company to show the window for. * @param company The company to show the window for.
* @param vehicle_type The type of vehicle to show it for. * @param vehicle_type The type of vehicle to show it for.
* @param group The group to be selected. Defaults to INVALID_GROUP.
* @param need_existing_window Whether the existing window is needed. Defaults to false.
*/ */
void ShowCompanyGroup(CompanyID company, VehicleType vehicle_type) void ShowCompanyGroup(CompanyID company, VehicleType vehicle_type, GroupID group = INVALID_GROUP, bool need_existing_window = false)
{ {
if (!Company::IsValidID(company)) return; if (!Company::IsValidID(company)) return;
WindowNumber num = VehicleListIdentifier(VL_GROUP_LIST, vehicle_type, company).Pack(); const WindowNumber num = VehicleListIdentifier(VL_GROUP_LIST, vehicle_type, company).Pack();
VehicleGroupWindow *w;
if (vehicle_type == VEH_TRAIN) { if (vehicle_type == VEH_TRAIN) {
AllocateWindowDescFront<VehicleGroupWindow>(&_train_group_desc, num); w = AllocateWindowDescFront<VehicleGroupWindow>(&_train_group_desc, num, need_existing_window);
} else { } else {
_other_group_desc.cls = GetWindowClassForVehicleType(vehicle_type); _other_group_desc.cls = GetWindowClassForVehicleType(vehicle_type);
AllocateWindowDescFront<VehicleGroupWindow>(&_other_group_desc, num); w = AllocateWindowDescFront<VehicleGroupWindow>(&_other_group_desc, num, need_existing_window);
} }
if (w != nullptr) w->SelectGroup(group);
}
/**
* Show the group window for the given vehicle.
* @param v The vehicle to show the window for.
*/
void ShowCompanyGroupForVehicle(const Vehicle *v)
{
ShowCompanyGroup(v->owner, v->type, v->group_id, true);
} }
/** /**

View File

@@ -13,7 +13,8 @@
#include "company_type.h" #include "company_type.h"
#include "vehicle_type.h" #include "vehicle_type.h"
void ShowCompanyGroup(CompanyID company, VehicleType veh); void ShowCompanyGroup(CompanyID company, VehicleType veh, GroupID group = INVALID_GROUP, bool need_existing_window = false);
void ShowCompanyGroupForVehicle(const Vehicle *v);
void DeleteGroupHighlightOfVehicle(const Vehicle *v); void DeleteGroupHighlightOfVehicle(const Vehicle *v);
#endif /* GROUP_GUI_H */ #endif /* GROUP_GUI_H */

View File

@@ -87,13 +87,12 @@ static bool HighScoreSorter(const Company * const &a, const Company * const &b)
*/ */
int8 SaveHighScoreValueNetwork() int8 SaveHighScoreValueNetwork()
{ {
const Company *c;
const Company *cl[MAX_COMPANIES]; const Company *cl[MAX_COMPANIES];
uint count = 0; uint count = 0;
int8 company = -1; int8 company = -1;
/* Sort all active companies with the highest score first */ /* Sort all active companies with the highest score first */
FOR_ALL_COMPANIES(c) cl[count++] = c; for (const Company *c : Company::Iterate()) cl[count++] = c;
std::sort(std::begin(cl), std::begin(cl) + count, HighScoreSorter); std::sort(std::begin(cl), std::begin(cl) + count, HighScoreSorter);

View File

@@ -38,10 +38,15 @@ static const KeycodeNames _keycode_to_name[] = {
{"META", WKC_META}, {"META", WKC_META},
{"GLOBAL", WKC_GLOBAL_HOTKEY}, {"GLOBAL", WKC_GLOBAL_HOTKEY},
{"ESC", WKC_ESC}, {"ESC", WKC_ESC},
{"DEL", WKC_DELETE},
{"BACKSPACE", WKC_BACKSPACE}, {"BACKSPACE", WKC_BACKSPACE},
{"INS", WKC_INSERT},
{"DEL", WKC_DELETE},
{"PAGEUP", WKC_PAGEUP},
{"PAGEDOWN", WKC_PAGEDOWN},
{"END", WKC_END},
{"HOME", WKC_HOME},
{"RETURN", WKC_RETURN}, {"RETURN", WKC_RETURN},
{"BACKQUOTE", WKC_BACKQUOTE}, {"SPACE", WKC_SPACE},
{"F1", WKC_F1}, {"F1", WKC_F1},
{"F2", WKC_F2}, {"F2", WKC_F2},
{"F3", WKC_F3}, {"F3", WKC_F3},
@@ -54,11 +59,24 @@ static const KeycodeNames _keycode_to_name[] = {
{"F10", WKC_F10}, {"F10", WKC_F10},
{"F11", WKC_F11}, {"F11", WKC_F11},
{"F12", WKC_F12}, {"F12", WKC_F12},
{"BACKQUOTE", WKC_BACKQUOTE},
{"PAUSE", WKC_PAUSE}, {"PAUSE", WKC_PAUSE},
{"COMMA", WKC_COMMA}, {"NUM_DIV", WKC_NUM_DIV},
{"NUM_PLUS", WKC_NUM_PLUS}, {"NUM_MUL", WKC_NUM_MUL},
{"NUM_MINUS", WKC_NUM_MINUS}, {"NUM_MINUS", WKC_NUM_MINUS},
{"NUM_PLUS", WKC_NUM_PLUS},
{"NUM_ENTER", WKC_NUM_ENTER},
{"NUM_DOT", WKC_NUM_DECIMAL},
{"/", WKC_SLASH},
{";", WKC_SEMICOLON},
{"=", WKC_EQUALS}, {"=", WKC_EQUALS},
{"[", WKC_L_BRACKET},
{"\\", WKC_BACKSLASH},
{"]", WKC_R_BRACKET},
{"'", WKC_SINGLEQUOTE},
{",", WKC_COMMA},
{"COMMA", WKC_COMMA}, // legacy variant, should be below ","
{".", WKC_PERIOD},
{"-", WKC_MINUS}, {"-", WKC_MINUS},
{"PAGE_UP", WKC_PAGEUP}, {"PAGE_UP", WKC_PAGEUP},
{"PAGE_DOWN", WKC_PAGEDOWN}, {"PAGE_DOWN", WKC_PAGEDOWN},

View File

@@ -179,9 +179,6 @@ void ReleaseDisastersTargetingIndustry(IndustryID);
bool IsTileForestIndustry(TileIndex tile); bool IsTileForestIndustry(TileIndex tile);
#define FOR_ALL_INDUSTRIES_FROM(var, start) FOR_ALL_ITEMS_FROM(Industry, industry_index, var, start)
#define FOR_ALL_INDUSTRIES(var) FOR_ALL_INDUSTRIES_FROM(var, 0)
/** Data for managing the number of industries of a single industry type. */ /** Data for managing the number of industries of a single industry type. */
struct IndustryTypeBuildData { struct IndustryTypeBuildData {
uint32 probability; ///< Relative probability of building this industry. uint32 probability; ///< Relative probability of building this industry.

View File

@@ -1206,8 +1206,7 @@ void OnTick_Industry()
if (_game_mode == GM_EDITOR) return; if (_game_mode == GM_EDITOR) return;
Industry *i; for (Industry *i : Industry::Iterate()) {
FOR_ALL_INDUSTRIES(i) {
ProduceIndustryGoods(i); ProduceIndustryGoods(i);
} }
} }
@@ -1394,8 +1393,7 @@ static CommandCost FindTownForIndustry(TileIndex tile, int type, Town **t)
if (_settings_game.economy.multiple_industry_per_town) return CommandCost(); if (_settings_game.economy.multiple_industry_per_town) return CommandCost();
const Industry *i; for (const Industry *i : Industry::Iterate()) {
FOR_ALL_INDUSTRIES(i) {
if (i->type == (byte)type && i->town == *t) { if (i->type == (byte)type && i->town == *t) {
*t = nullptr; *t = nullptr;
return_cmd_error(STR_ERROR_ONLY_ONE_ALLOWED_PER_TOWN); return_cmd_error(STR_ERROR_ONLY_ONE_ALLOWED_PER_TOWN);
@@ -1639,11 +1637,11 @@ static bool CheckIfCanLevelIndustryPlatform(TileIndex tile, DoCommandFlag flags,
static CommandCost CheckIfFarEnoughFromConflictingIndustry(TileIndex tile, int type) static CommandCost CheckIfFarEnoughFromConflictingIndustry(TileIndex tile, int type)
{ {
const IndustrySpec *indspec = GetIndustrySpec(type); const IndustrySpec *indspec = GetIndustrySpec(type);
const Industry *i = nullptr;
/* On a large map with many industries, it may be faster to check an area. */ /* On a large map with many industries, it may be faster to check an area. */
static const int dmax = 14; static const int dmax = 14;
if (Industry::GetNumItems() > (size_t) (dmax * dmax * 2)) { if (Industry::GetNumItems() > (size_t) (dmax * dmax * 2)) {
const Industry* i = nullptr;
TileArea tile_area = TileArea(tile, 1, 1).Expand(dmax); TileArea tile_area = TileArea(tile, 1, 1).Expand(dmax);
TILE_AREA_LOOP(atile, tile_area) { TILE_AREA_LOOP(atile, tile_area) {
if (GetTileType(atile) == MP_INDUSTRY) { if (GetTileType(atile) == MP_INDUSTRY) {
@@ -1661,7 +1659,7 @@ static CommandCost CheckIfFarEnoughFromConflictingIndustry(TileIndex tile, int t
return CommandCost(); return CommandCost();
} }
FOR_ALL_INDUSTRIES(i) { for (const Industry *i : Industry::Iterate()) {
/* Within 14 tiles from another industry is considered close */ /* Within 14 tiles from another industry is considered close */
if (DistanceMax(tile, i->location.tile) > 14) continue; if (DistanceMax(tile, i->location.tile) > 14) continue;
@@ -1834,6 +1832,11 @@ static void DoCreateNewIndustry(Industry *i, TileIndex tile, IndustryType type,
break; break;
} }
CargoID cargo = GetCargoTranslation(GB(res, 0, 8), indspec->grf_prop.grffile); CargoID cargo = GetCargoTranslation(GB(res, 0, 8), indspec->grf_prop.grffile);
/* Industries without "unlimited" cargo types support depend on the specific order/slots of cargo types.
* They need to be able to blank out specific slots without aborting the callback sequence,
* and solve this by returning undefined cargo indexes. Skip these. */
if (cargo == CT_INVALID && !(indspec->behaviour & INDUSTRYBEH_CARGOTYPES_UNLIMITED)) continue;
/* Verify valid cargo */
if (std::find(indspec->accepts_cargo, endof(indspec->accepts_cargo), cargo) == endof(indspec->accepts_cargo)) { if (std::find(indspec->accepts_cargo, endof(indspec->accepts_cargo), cargo) == endof(indspec->accepts_cargo)) {
/* Cargo not in spec, error in NewGRF */ /* Cargo not in spec, error in NewGRF */
ErrorUnknownCallbackResult(indspec->grf_prop.grffile->grfid, CBID_INDUSTRY_INPUT_CARGO_TYPES, res); ErrorUnknownCallbackResult(indspec->grf_prop.grffile->grfid, CBID_INDUSTRY_INPUT_CARGO_TYPES, res);
@@ -1861,6 +1864,9 @@ static void DoCreateNewIndustry(Industry *i, TileIndex tile, IndustryType type,
break; break;
} }
CargoID cargo = GetCargoTranslation(GB(res, 0, 8), indspec->grf_prop.grffile); CargoID cargo = GetCargoTranslation(GB(res, 0, 8), indspec->grf_prop.grffile);
/* Allow older GRFs to skip slots. */
if (cargo == CT_INVALID && !(indspec->behaviour & INDUSTRYBEH_CARGOTYPES_UNLIMITED)) continue;
/* Verify valid cargo */
if (std::find(indspec->produced_cargo, endof(indspec->produced_cargo), cargo) == endof(indspec->produced_cargo)) { if (std::find(indspec->produced_cargo, endof(indspec->produced_cargo), cargo) == endof(indspec->produced_cargo)) {
/* Cargo not in spec, error in NewGRF */ /* Cargo not in spec, error in NewGRF */
ErrorUnknownCallbackResult(indspec->grf_prop.grffile->grfid, CBID_INDUSTRY_OUTPUT_CARGO_TYPES, res); ErrorUnknownCallbackResult(indspec->grf_prop.grffile->grfid, CBID_INDUSTRY_OUTPUT_CARGO_TYPES, res);
@@ -2337,9 +2343,7 @@ void Industry::FillCachedName()
void ClearAllIndustryCachedNames() void ClearAllIndustryCachedNames()
{ {
Industry *ind; for (Industry *ind : Industry::Iterate()) {
FOR_ALL_INDUSTRIES(ind) {
ind->cached_name.reset(); ind->cached_name.reset();
} }
} }
@@ -2534,9 +2538,8 @@ static int WhoCanServiceIndustry(Industry *ind)
{ {
if (ind->stations_near.size() == 0) return 0; // No stations found at all => nobody services if (ind->stations_near.size() == 0) return 0; // No stations found at all => nobody services
const Vehicle *v;
int result = 0; int result = 0;
FOR_ALL_VEHICLES(v) { for (const Vehicle *v : Vehicle::Iterate()) {
/* Is it worthwhile to try this vehicle? */ /* Is it worthwhile to try this vehicle? */
if (v->owner != _local_company && result != 0) continue; if (v->owner != _local_company && result != 0) continue;
@@ -2863,8 +2866,7 @@ void IndustryMonthlyLoop()
_industry_builder.MonthlyLoop(); _industry_builder.MonthlyLoop();
Industry *i; for (Industry *i : Industry::Iterate()) {
FOR_ALL_INDUSTRIES(i) {
UpdateIndustryStatistics(i); UpdateIndustryStatistics(i);
if (i->prod_level == PRODLEVEL_CLOSURE) { if (i->prod_level == PRODLEVEL_CLOSURE) {
delete i; delete i;

View File

@@ -1167,6 +1167,8 @@ static const NWidgetPart _nested_industry_directory_widgets[] = {
NWidget(NWID_HORIZONTAL), NWidget(NWID_HORIZONTAL),
NWidget(WWT_TEXTBTN, COLOUR_BROWN, WID_ID_DROPDOWN_ORDER), SetDataTip(STR_BUTTON_SORT_BY, STR_TOOLTIP_SORT_ORDER), NWidget(WWT_TEXTBTN, COLOUR_BROWN, WID_ID_DROPDOWN_ORDER), SetDataTip(STR_BUTTON_SORT_BY, STR_TOOLTIP_SORT_ORDER),
NWidget(WWT_DROPDOWN, COLOUR_BROWN, WID_ID_DROPDOWN_CRITERIA), SetDataTip(STR_JUST_STRING, STR_TOOLTIP_SORT_CRITERIA), NWidget(WWT_DROPDOWN, COLOUR_BROWN, WID_ID_DROPDOWN_CRITERIA), SetDataTip(STR_JUST_STRING, STR_TOOLTIP_SORT_CRITERIA),
NWidget(WWT_DROPDOWN, COLOUR_BROWN, WID_ID_FILTER_BY_ACC_CARGO), SetMinimalSize(225, 12), SetFill(0, 1), SetDataTip(STR_INDUSTRY_DIRECTORY_ACCEPTED_CARGO_FILTER, STR_TOOLTIP_FILTER_CRITERIA),
NWidget(WWT_DROPDOWN, COLOUR_BROWN, WID_ID_FILTER_BY_PROD_CARGO), SetMinimalSize(225, 12), SetFill(0, 1), SetDataTip(STR_INDUSTRY_DIRECTORY_PRODUCED_CARGO_FILTER, STR_TOOLTIP_FILTER_CRITERIA),
NWidget(WWT_PANEL, COLOUR_BROWN), SetResize(1, 0), EndContainer(), NWidget(WWT_PANEL, COLOUR_BROWN), SetResize(1, 0), EndContainer(),
EndContainer(), EndContainer(),
NWidget(WWT_PANEL, COLOUR_BROWN, WID_ID_INDUSTRY_LIST), SetDataTip(0x0, STR_INDUSTRY_DIRECTORY_LIST_CAPTION), SetResize(1, 1), SetScrollbar(WID_ID_SCROLLBAR), EndContainer(), NWidget(WWT_PANEL, COLOUR_BROWN, WID_ID_INDUSTRY_LIST), SetDataTip(0x0, STR_INDUSTRY_DIRECTORY_LIST_CAPTION), SetResize(1, 1), SetScrollbar(WID_ID_SCROLLBAR), EndContainer(),
@@ -1178,7 +1180,68 @@ static const NWidgetPart _nested_industry_directory_widgets[] = {
EndContainer(), EndContainer(),
}; };
typedef GUIList<const Industry*> GUIIndustryList; typedef GUIList<const Industry *, const std::pair<CargoID, CargoID> &> GUIIndustryList;
/** Special cargo filter criteria */
enum CargoFilterSpecialType {
CF_ANY = CT_NO_REFIT, ///< Show all industries (i.e. no filtering)
CF_NONE = CT_INVALID, ///< Show only industries which do not produce/accept cargo
};
/** Cargo filter functions */
/**
* Check whether an industry accepts and produces a certain cargo pair.
* @param industry The industry whose cargoes will being checked.
* @param cargoes The accepted and produced cargo pair to look for.
* @return bool Whether the given cargoes accepted and produced by the industry.
*/
static bool CDECL CargoFilter(const Industry * const *industry, const std::pair<CargoID, CargoID> &cargoes)
{
auto accepted_cargo = cargoes.first;
auto produced_cargo = cargoes.second;
bool accepted_cargo_matches;
switch (accepted_cargo) {
case CF_ANY:
accepted_cargo_matches = true;
break;
case CF_NONE:
accepted_cargo_matches = std::all_of(std::begin((*industry)->accepts_cargo), std::end((*industry)->accepts_cargo), [](CargoID cargo) {
return cargo == CT_INVALID;
});
break;
default:
const auto &ac = (*industry)->accepts_cargo;
accepted_cargo_matches = std::find(std::begin(ac), std::end(ac), accepted_cargo) != std::end(ac);
break;
}
bool produced_cargo_matches;
switch (produced_cargo) {
case CF_ANY:
produced_cargo_matches = true;
break;
case CF_NONE:
produced_cargo_matches = std::all_of(std::begin((*industry)->produced_cargo), std::end((*industry)->produced_cargo), [](CargoID cargo) {
return cargo == CT_INVALID;
});
break;
default:
const auto &pc = (*industry)->produced_cargo;
produced_cargo_matches = std::find(std::begin(pc), std::end(pc), produced_cargo) != std::end(pc);
break;
}
return accepted_cargo_matches && produced_cargo_matches;
}
static GUIIndustryList::FilterFunction * const _filter_funcs[] = { &CargoFilter };
/** /**
@@ -1197,25 +1260,107 @@ protected:
GUIIndustryList industries; GUIIndustryList industries;
Scrollbar *vscroll; Scrollbar *vscroll;
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
CargoID produced_cargo_filter_criteria; ///< Selected produced cargo filter
CargoID accepted_cargo_filter_criteria; ///< Selected accepted cargo filter
/**
* Set cargo filter list item index.
* @param index The index of the cargo to be set
*/
void SetProducedCargoFilterIndex(int index)
{
if (this->produced_cargo_filter_criteria != index) {
this->produced_cargo_filter_criteria = index;
/* deactivate filter if criteria is 'Show All', activate it otherwise */
bool is_filtering_necessary = this->cargo_filter[this->produced_cargo_filter_criteria] != CF_ANY || this->cargo_filter[this->accepted_cargo_filter_criteria] != CF_ANY;
this->industries.SetFilterState(is_filtering_necessary);
this->industries.SetFilterType(0);
this->industries.ForceRebuild();
}
}
/**
* Set cargo filter list item index.
* @param index The index of the cargo to be set
*/
void SetAcceptedCargoFilterIndex(int index)
{
if (this->accepted_cargo_filter_criteria != index) {
this->accepted_cargo_filter_criteria = index;
/* deactivate filter if criteria is 'Show All', activate it otherwise */
bool is_filtering_necessary = this->cargo_filter[this->produced_cargo_filter_criteria] != CF_ANY || this->cargo_filter[this->accepted_cargo_filter_criteria] != CF_ANY;
this->industries.SetFilterState(is_filtering_necessary);
this->industries.SetFilterType(0);
this->industries.ForceRebuild();
}
}
/**
* Populate the filter list and set the cargo filter criteria.
*/
void SetCargoFilterArray()
{
uint filter_items = 0;
/* Add item for disabling filtering. */
this->cargo_filter[filter_items] = CF_ANY;
this->cargo_filter_texts[filter_items] = STR_INDUSTRY_DIRECTORY_FILTER_ALL_TYPES;
this->produced_cargo_filter_criteria = filter_items;
this->accepted_cargo_filter_criteria = filter_items;
filter_items++;
/* Add item for industries not producing anything, e.g. power plants */
this->cargo_filter[filter_items] = CF_NONE;
this->cargo_filter_texts[filter_items] = STR_INDUSTRY_DIRECTORY_FILTER_NONE;
filter_items++;
/* Collect available cargo types for filtering. */
const CargoSpec *cs;
FOR_ALL_SORTED_STANDARD_CARGOSPECS(cs) {
this->cargo_filter[filter_items] = cs->Index();
this->cargo_filter_texts[filter_items] = cs->name;
filter_items++;
}
/* Terminate the filter list. */
this->cargo_filter_texts[filter_items] = INVALID_STRING_ID;
this->industries.SetFilterFuncs(_filter_funcs);
bool is_filtering_necessary = this->cargo_filter[this->produced_cargo_filter_criteria] != CF_ANY || this->cargo_filter[this->accepted_cargo_filter_criteria] != CF_ANY;
this->industries.SetFilterState(is_filtering_necessary);
}
/** (Re)Build industries list */ /** (Re)Build industries list */
void BuildSortIndustriesList() void BuildSortIndustriesList()
{ {
if (this->industries.NeedRebuild()) { if (this->industries.NeedRebuild()) {
this->industries.clear(); this->industries.clear();
const Industry *i; for (const Industry *i : Industry::Iterate()) {
FOR_ALL_INDUSTRIES(i) {
this->industries.push_back(i); this->industries.push_back(i);
} }
this->industries.shrink_to_fit(); this->industries.shrink_to_fit();
this->industries.RebuildDone(); this->industries.RebuildDone();
this->vscroll->SetCount((uint)this->industries.size()); // Update scrollbar as well.
} }
if (!this->industries.Sort()) return;
IndustryDirectoryWindow::last_industry = nullptr; // Reset name sorter sort cache IndustryDirectoryWindow::last_industry = nullptr; // Reset name sorter sort cache
this->SetWidgetDirty(WID_ID_INDUSTRY_LIST); // Set the modified widget dirty
auto filter = std::make_pair(this->cargo_filter[this->accepted_cargo_filter_criteria],
this->cargo_filter[this->produced_cargo_filter_criteria]);
this->industries.Filter(filter);
this->industries.Sort();
this->vscroll->SetCount((uint)this->industries.size()); // Update scrollbar as well.
this->SetDirty();
} }
/** /**
@@ -1318,6 +1463,18 @@ protected:
return std::get<3>(a) > std::get<3>(b); return std::get<3>(a) > std::get<3>(b);
}); });
/* If the produced cargo filter is active then move the filtered cargo to the beginning of the list,
* because this is the one the player interested in, and that way it is not hidden in the 'n' more cargos */
const CargoID cid = this->cargo_filter[this->produced_cargo_filter_criteria];
if (cid != CF_ANY && cid != CF_NONE) {
auto filtered_ci = std::find_if(cargos.begin(), cargos.end(), [cid](const CargoInfo& ci) -> bool {
return std::get<0>(ci) == cid;
});
if (filtered_ci != cargos.end()) {
std::rotate(cargos.begin(), filtered_ci, filtered_ci + 1);
}
}
/* Display first 3 cargos */ /* Display first 3 cargos */
for (size_t j = 0; j < min<size_t>(3, cargos.size()); j++) { for (size_t j = 0; j < min<size_t>(3, cargos.size()); j++) {
CargoInfo ci = cargos[j]; CargoInfo ci = cargos[j];
@@ -1360,9 +1517,26 @@ public:
this->last_sorting = this->industries.GetListing(); this->last_sorting = this->industries.GetListing();
} }
void OnInit() override
{
this->SetCargoFilterArray();
}
void SetStringParameters(int widget) const override void SetStringParameters(int widget) const override
{ {
if (widget == WID_ID_DROPDOWN_CRITERIA) SetDParam(0, IndustryDirectoryWindow::sorter_names[this->industries.SortType()]); switch (widget) {
case WID_ID_DROPDOWN_CRITERIA:
SetDParam(0, IndustryDirectoryWindow::sorter_names[this->industries.SortType()]);
break;
case WID_ID_FILTER_BY_ACC_CARGO:
SetDParam(0, this->cargo_filter_texts[this->accepted_cargo_filter_criteria]);
break;
case WID_ID_FILTER_BY_PROD_CARGO:
SetDParam(0, this->cargo_filter_texts[this->produced_cargo_filter_criteria]);
break;
}
} }
void DrawWidget(const Rect &r, int widget) const override void DrawWidget(const Rect &r, int widget) const override
@@ -1379,8 +1553,17 @@ public:
DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_INDUSTRY_DIRECTORY_NONE); DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_INDUSTRY_DIRECTORY_NONE);
break; break;
} }
TextColour tc;
const CargoID acf_cid = this->cargo_filter[this->accepted_cargo_filter_criteria];
for (uint i = this->vscroll->GetPosition(); i < this->industries.size(); i++) { for (uint i = this->vscroll->GetPosition(); i < this->industries.size(); i++) {
DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, this->GetIndustryString(this->industries[i])); tc = TC_FROMSTRING;
if (acf_cid != CF_ANY && acf_cid != CF_NONE) {
Industry *ind = const_cast<Industry *>(this->industries[i]);
if (IndustryTemporarilyRefusesCargo(ind, acf_cid)) {
tc = TC_GREY | TC_FORCED;
}
}
DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, this->GetIndustryString(this->industries[i]), tc);
y += this->resize.step_height; y += this->resize.step_height;
if (++n == this->vscroll->GetCapacity()) break; // max number of industries in 1 window if (++n == this->vscroll->GetCapacity()) break; // max number of industries in 1 window
@@ -1440,6 +1623,14 @@ public:
ShowDropDownMenu(this, IndustryDirectoryWindow::sorter_names, this->industries.SortType(), WID_ID_DROPDOWN_CRITERIA, 0, 0); ShowDropDownMenu(this, IndustryDirectoryWindow::sorter_names, this->industries.SortType(), WID_ID_DROPDOWN_CRITERIA, 0, 0);
break; break;
case WID_ID_FILTER_BY_ACC_CARGO: // Cargo filter dropdown
ShowDropDownMenu(this, this->cargo_filter_texts, this->accepted_cargo_filter_criteria, WID_ID_FILTER_BY_ACC_CARGO, 0, 0);
break;
case WID_ID_FILTER_BY_PROD_CARGO: // Cargo filter dropdown
ShowDropDownMenu(this, this->cargo_filter_texts, this->produced_cargo_filter_criteria, WID_ID_FILTER_BY_PROD_CARGO, 0, 0);
break;
case WID_ID_INDUSTRY_LIST: { case WID_ID_INDUSTRY_LIST: {
uint p = this->vscroll->GetScrolledRowFromWidget(pt.y, this, WID_ID_INDUSTRY_LIST, WD_FRAMERECT_TOP); uint p = this->vscroll->GetScrolledRowFromWidget(pt.y, this, WID_ID_INDUSTRY_LIST, WD_FRAMERECT_TOP);
if (p < this->industries.size()) { if (p < this->industries.size()) {
@@ -1456,10 +1647,27 @@ public:
void OnDropdownSelect(int widget, int index) override void OnDropdownSelect(int widget, int index) override
{ {
switch (widget) {
case WID_ID_DROPDOWN_CRITERIA: {
if (this->industries.SortType() != index) { if (this->industries.SortType() != index) {
this->industries.SetSortType(index); this->industries.SetSortType(index);
this->BuildSortIndustriesList(); this->BuildSortIndustriesList();
} }
break;
}
case WID_ID_FILTER_BY_ACC_CARGO: {
this->SetAcceptedCargoFilterIndex(index);
this->BuildSortIndustriesList();
break;
}
case WID_ID_FILTER_BY_PROD_CARGO: {
this->SetProducedCargoFilterIndex(index);
this->BuildSortIndustriesList();
break;
}
}
} }
void OnResize() override void OnResize() override

View File

@@ -198,8 +198,7 @@ static void FixAllReservations()
{ {
/* if this function is called, we can safely assume that sharing of rails is being switched off */ /* if this function is called, we can safely assume that sharing of rails is being switched off */
assert(!_settings_game.economy.infrastructure_sharing[VEH_TRAIN]); assert(!_settings_game.economy.infrastructure_sharing[VEH_TRAIN]);
Train *v; for (Train *v : Train::Iterate()) {
FOR_ALL_TRAINS(v) {
if (!v->IsPrimaryVehicle() || (v->vehstatus & VS_CRASHED) != 0 || HasBit(v->subtype, GVSF_VIRTUAL)) continue; if (!v->IsPrimaryVehicle() || (v->vehstatus & VS_CRASHED) != 0 || HasBit(v->subtype, GVSF_VIRTUAL)) continue;
/* It might happen that the train reserved additional tracks, /* It might happen that the train reserved additional tracks,
* but FollowTrainReservation can't detect those because they are no longer reachable. * but FollowTrainReservation can't detect those because they are no longer reachable.
@@ -241,8 +240,7 @@ bool CheckSharingChangePossible(VehicleType type)
if (_settings_game.economy.infrastructure_sharing[type]) return true; if (_settings_game.economy.infrastructure_sharing[type]) return true;
StringID error_message = STR_NULL; StringID error_message = STR_NULL;
Vehicle *v; for (Vehicle *v : Vehicle::Iterate()) {
FOR_ALL_VEHICLES(v) {
if (type != v->type || HasBit(v->subtype, GVSF_VIRTUAL)) continue; if (type != v->type || HasBit(v->subtype, GVSF_VIRTUAL)) continue;
if (v->Previous() != nullptr) continue; if (v->Previous() != nullptr) continue;
@@ -288,9 +286,10 @@ void HandleSharingCompanyDeletion(Owner owner)
{ {
YapfNotifyTrackLayoutChange(INVALID_TILE, INVALID_TRACK); YapfNotifyTrackLayoutChange(INVALID_TILE, INVALID_TRACK);
Vehicle *v = nullptr; Vehicle *si_v = nullptr;
SCOPE_INFO_FMT([&v], "HandleSharingCompanyDeletion: veh: %s", scope_dumper().VehicleInfo(v)); SCOPE_INFO_FMT([&si_v], "HandleSharingCompanyDeletion: veh: %s", scope_dumper().VehicleInfo(si_v));
FOR_ALL_VEHICLES(v) { for (Vehicle *v : Vehicle::Iterate()) {
si_v = v;
if (!IsCompanyBuildableVehicleType(v) || v->Previous() != nullptr) continue; if (!IsCompanyBuildableVehicleType(v) || v->Previous() != nullptr) continue;
/* vehicle position */ /* vehicle position */
if (v->owner == owner || !VehiclePositionIsAllowed(v, owner)) { if (v->owner == owner || !VehiclePositionIsAllowed(v, owner)) {

View File

@@ -471,9 +471,6 @@ STR_ABOUT_MENU_SEPARATOR :
STR_ABOUT_MENU_TOGGLE_CONSOLE :Skakel terminaal STR_ABOUT_MENU_TOGGLE_CONSOLE :Skakel terminaal
STR_ABOUT_MENU_AI_DEBUG :AI/Spel skript ontfout STR_ABOUT_MENU_AI_DEBUG :AI/Spel skript ontfout
STR_ABOUT_MENU_SCREENSHOT :Skermskoot STR_ABOUT_MENU_SCREENSHOT :Skermskoot
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Ten volle vergrote skermskoot
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Basiese groote skermskoot
STR_ABOUT_MENU_GIANT_SCREENSHOT :Hele kaart Skermkiekie (Ctrl+G)
STR_ABOUT_MENU_ABOUT_OPENTTD :Oor 'OpenTTD' STR_ABOUT_MENU_ABOUT_OPENTTD :Oor 'OpenTTD'
STR_ABOUT_MENU_SPRITE_ALIGNER :"Sprite" rigter STR_ABOUT_MENU_SPRITE_ALIGNER :"Sprite" rigter
STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :skakel beperkte bokse STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :skakel beperkte bokse
@@ -857,6 +854,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}Nuwe {STRING} nou beskikbaar! - {ENGINE} STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}Nuwe {STRING} nou beskikbaar! - {ENGINE}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} aanvaar nie meer {STRING} nie STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} aanvaar nie meer {STRING} nie
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} aanvaar nie meer {STRING} of {STRING} nie STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} aanvaar nie meer {STRING} of {STRING} nie
STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} aanvaar nou {STRING} STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} aanvaar nou {STRING}
@@ -3999,6 +3997,7 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Kies bel
STR_AI_LIST_CANCEL :{BLACK}Kanseleer STR_AI_LIST_CANCEL :{BLACK}Kanseleer
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Moenie skrif verander nie STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Moenie skrif verander nie
# AI Parameters # AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parameters STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parameters
STR_AI_SETTINGS_CAPTION_AI :AI STR_AI_SETTINGS_CAPTION_AI :AI

View File

@@ -446,9 +446,6 @@ STR_ABOUT_MENU_SEPARATOR :
STR_ABOUT_MENU_TOGGLE_CONSOLE :توقل كونسول STR_ABOUT_MENU_TOGGLE_CONSOLE :توقل كونسول
STR_ABOUT_MENU_AI_DEBUG :مكتشف اخطاء الذكاء الصناعي STR_ABOUT_MENU_AI_DEBUG :مكتشف اخطاء الذكاء الصناعي
STR_ABOUT_MENU_SCREENSHOT :صورة من الشاشة - Ctrl-S - STR_ABOUT_MENU_SCREENSHOT :صورة من الشاشة - Ctrl-S -
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :صورة للشاشة مصغرة
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :تقريب الشاشة القياسي
STR_ABOUT_MENU_GIANT_SCREENSHOT :صورة كبيرة لكامل الخريطة -Ctrl-G -
STR_ABOUT_MENU_ABOUT_OPENTTD :حول 'OpenTTD' STR_ABOUT_MENU_ABOUT_OPENTTD :حول 'OpenTTD'
STR_ABOUT_MENU_SPRITE_ALIGNER :موائم العفريتات STR_ABOUT_MENU_SPRITE_ALIGNER :موائم العفريتات
STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :اضهار /اخفاء مربح الحوارات/الخيارات STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :اضهار /اخفاء مربح الحوارات/الخيارات
@@ -825,6 +822,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}جديد {STRING} الآن متاح ! - {ENGINE} STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}جديد {STRING} الآن متاح ! - {ENGINE}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} لم تعد تقبل {STRING} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} لم تعد تقبل {STRING}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION}لم تعد تقبل {STRING} او {STRING} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION}لم تعد تقبل {STRING} او {STRING}
STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} الآن تقبل {STRING} STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} الآن تقبل {STRING}
@@ -3486,6 +3484,7 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK} اخت
STR_AI_LIST_CANCEL :{BLACK} الغاء STR_AI_LIST_CANCEL :{BLACK} الغاء
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK} لا تغير الذكاء الصناعي STR_AI_LIST_CANCEL_TOOLTIP :{BLACK} لا تغير الذكاء الصناعي
# AI Parameters # AI Parameters
STR_AI_SETTINGS_CLOSE :{BLACK} اغلاق STR_AI_SETTINGS_CLOSE :{BLACK} اغلاق
STR_AI_SETTINGS_RESET :{BLACK} اعادة ضبط STR_AI_SETTINGS_RESET :{BLACK} اعادة ضبط

View File

@@ -464,9 +464,6 @@ STR_ABOUT_MENU_SEPARATOR :
STR_ABOUT_MENU_TOGGLE_CONSOLE :Konsola aktibatu STR_ABOUT_MENU_TOGGLE_CONSOLE :Konsola aktibatu
STR_ABOUT_MENU_AI_DEBUG :IA/Joko script-aren garbitzailea STR_ABOUT_MENU_AI_DEBUG :IA/Joko script-aren garbitzailea
STR_ABOUT_MENU_SCREENSHOT :Pantailan dagoenaren argazkia hartu (Ctrl+S) STR_ABOUT_MENU_SCREENSHOT :Pantailan dagoenaren argazkia hartu (Ctrl+S)
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Pantailan dagoenaren argazkia hartu zoom-a guztiz erabiliz
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :zoom lehenetsikoarekin pantaila-argazkia
STR_ABOUT_MENU_GIANT_SCREENSHOT :Mapa osoaren argazkia hartu (Ctrl+G)
STR_ABOUT_MENU_ABOUT_OPENTTD :'OpenTTD'-ri buruz STR_ABOUT_MENU_ABOUT_OPENTTD :'OpenTTD'-ri buruz
STR_ABOUT_MENU_SPRITE_ALIGNER :"Sprit" lerrokatzailea STR_ABOUT_MENU_SPRITE_ALIGNER :"Sprit" lerrokatzailea
STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Kaxen neurriak aldatu STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Kaxen neurriak aldatu
@@ -846,6 +843,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}{STRING} berri bat orain erabilgarri! - {ENGINE} STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}{STRING} berri bat orain erabilgarri! - {ENGINE}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} ez du gehiago {STRING} onartzen STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} ez du gehiago {STRING} onartzen
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} ez du gehiago {STRING} edo {STRING} onartzen STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} ez du gehiago {STRING} edo {STRING} onartzen
STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} orain {STRING} onartzen du STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} orain {STRING} onartzen du
@@ -3874,6 +3872,7 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Piztutak
STR_AI_LIST_CANCEL :{BLACK}Ezeztatu STR_AI_LIST_CANCEL :{BLACK}Ezeztatu
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Ez aldatu script-a STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Ez aldatu script-a
# AI Parameters # AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parametroak STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parametroak
STR_AI_SETTINGS_CAPTION_AI :IA STR_AI_SETTINGS_CAPTION_AI :IA

View File

@@ -783,9 +783,6 @@ STR_ABOUT_MENU_SEPARATOR :
STR_ABOUT_MENU_TOGGLE_CONSOLE :Кансоль STR_ABOUT_MENU_TOGGLE_CONSOLE :Кансоль
STR_ABOUT_MENU_AI_DEBUG :Наладка штучнага інтэлекту (ШІ/AI) / скрыптоў STR_ABOUT_MENU_AI_DEBUG :Наладка штучнага інтэлекту (ШІ/AI) / скрыптоў
STR_ABOUT_MENU_SCREENSHOT :Здымак экрана (Ctrl+S) STR_ABOUT_MENU_SCREENSHOT :Здымак экрана (Ctrl+S)
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Здымак экрана ў макс. набліжэньні
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Павялiчаны здымак экрана па змоўчаньнi
STR_ABOUT_MENU_GIANT_SCREENSHOT :Здымак усёй мапы (Ctrl+G)
STR_ABOUT_MENU_ABOUT_OPENTTD :Аб гульні OpenTTD STR_ABOUT_MENU_ABOUT_OPENTTD :Аб гульні OpenTTD
STR_ABOUT_MENU_SPRITE_ALIGNER :Выраўноўваньне спрайтаў STR_ABOUT_MENU_SPRITE_ALIGNER :Выраўноўваньне спрайтаў
STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Пераключыць абмежавальныя рамкі STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Пераключыць абмежавальныя рамкі
@@ -1173,6 +1170,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}З'явіўся новы {STRING}! — {ENGINE} STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}З'явіўся новы {STRING}! — {ENGINE}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} больш не прымае {STRING.acc} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} больш не прымае {STRING.acc}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} больш не прымае {STRING.acc} ды {STRING.acc} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} больш не прымае {STRING.acc} ды {STRING.acc}
STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} цяпер прымае {STRING.acc} STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} цяпер прымае {STRING.acc}
@@ -4383,6 +4381,7 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Выбр
STR_AI_LIST_CANCEL :{BLACK}Скасаваць STR_AI_LIST_CANCEL :{BLACK}Скасаваць
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Не змяняць скрыпт STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Не змяняць скрыпт
# AI Parameters # AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}Параметры {STRING} STR_AI_SETTINGS_CAPTION :{WHITE}Параметры {STRING}
STR_AI_SETTINGS_CAPTION_AI :ШI STR_AI_SETTINGS_CAPTION_AI :ШI

View File

@@ -471,9 +471,6 @@ STR_ABOUT_MENU_SEPARATOR :
STR_ABOUT_MENU_TOGGLE_CONSOLE :Alternar console STR_ABOUT_MENU_TOGGLE_CONSOLE :Alternar console
STR_ABOUT_MENU_AI_DEBUG :Depurar IA/Script do jogo STR_ABOUT_MENU_AI_DEBUG :Depurar IA/Script do jogo
STR_ABOUT_MENU_SCREENSHOT :Captura de tela STR_ABOUT_MENU_SCREENSHOT :Captura de tela
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Ampliado em captura de tela
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Captura de tela em ampliação padrão
STR_ABOUT_MENU_GIANT_SCREENSHOT :Captura de tela do mapa inteiro
STR_ABOUT_MENU_SHOW_FRAMERATE :Exibir taxa de quadros STR_ABOUT_MENU_SHOW_FRAMERATE :Exibir taxa de quadros
STR_ABOUT_MENU_ABOUT_OPENTTD :Sobre 'OpenTTD' STR_ABOUT_MENU_ABOUT_OPENTTD :Sobre 'OpenTTD'
STR_ABOUT_MENU_SPRITE_ALIGNER :Alinhador de "sprites" STR_ABOUT_MENU_SPRITE_ALIGNER :Alinhador de "sprites"
@@ -863,6 +860,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_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}
STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} agora aceita {STRING} STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} agora aceita {STRING}
@@ -4073,6 +4071,7 @@ 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
# AI Parameters # AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parâmetros STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parâmetros
STR_AI_SETTINGS_CAPTION_AI :{G=f}IA STR_AI_SETTINGS_CAPTION_AI :{G=f}IA

View File

@@ -471,9 +471,6 @@ STR_ABOUT_MENU_SEPARATOR :
STR_ABOUT_MENU_TOGGLE_CONSOLE :Показване/скриване на конзола STR_ABOUT_MENU_TOGGLE_CONSOLE :Показване/скриване на конзола
STR_ABOUT_MENU_AI_DEBUG :ИИ дебъг STR_ABOUT_MENU_AI_DEBUG :ИИ дебъг
STR_ABOUT_MENU_SCREENSHOT :Screenshot STR_ABOUT_MENU_SCREENSHOT :Screenshot
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Напълно увеличен в кадъра.
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Увеличение по подразбиране
STR_ABOUT_MENU_GIANT_SCREENSHOT :Огромен Screenshot
STR_ABOUT_MENU_SHOW_FRAMERATE :Показване на честотата на кадрите STR_ABOUT_MENU_SHOW_FRAMERATE :Показване на честотата на кадрите
STR_ABOUT_MENU_ABOUT_OPENTTD :Относно 'OpenTTD' STR_ABOUT_MENU_ABOUT_OPENTTD :Относно 'OpenTTD'
STR_ABOUT_MENU_SPRITE_ALIGNER :Подравнител на спрайтове STR_ABOUT_MENU_SPRITE_ALIGNER :Подравнител на спрайтове
@@ -854,6 +851,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}Нов {STRING} е на разположение! - {ENGINE} STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}Нов {STRING} е на разположение! - {ENGINE}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} вече не приема {STRING} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} вече не приема {STRING}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} вече не приема {STRING} или {STRING} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} вече не приема {STRING} или {STRING}
STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} вече приема {STRING} STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} вече приема {STRING}
@@ -3976,6 +3974,7 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Избе
STR_AI_LIST_CANCEL :{BLACK}Отмени STR_AI_LIST_CANCEL :{BLACK}Отмени
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Не променяй AI STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Не променяй AI
# AI Parameters # AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Параметри STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Параметри
STR_AI_SETTINGS_CAPTION_AI :AI STR_AI_SETTINGS_CAPTION_AI :AI

View File

@@ -474,9 +474,6 @@ STR_ABOUT_MENU_SEPARATOR :
STR_ABOUT_MENU_TOGGLE_CONSOLE :Commuta la consola STR_ABOUT_MENU_TOGGLE_CONSOLE :Commuta la consola
STR_ABOUT_MENU_AI_DEBUG :Depuració de les IA i l'script de partida STR_ABOUT_MENU_AI_DEBUG :Depuració de les IA i l'script de partida
STR_ABOUT_MENU_SCREENSHOT :Captura de pantalla STR_ABOUT_MENU_SCREENSHOT :Captura de pantalla
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Captura de pantalla amb el zoom màxim
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Captura de pantalla amb el zoom predeterminat
STR_ABOUT_MENU_GIANT_SCREENSHOT :Captura de pantalla de tot el mapa
STR_ABOUT_MENU_SHOW_FRAMERATE :Mostra els fotogrames per segon STR_ABOUT_MENU_SHOW_FRAMERATE :Mostra els fotogrames per segon
STR_ABOUT_MENU_ABOUT_OPENTTD :Quant a l'OpenTTD STR_ABOUT_MENU_ABOUT_OPENTTD :Quant a l'OpenTTD
STR_ABOUT_MENU_SPRITE_ALIGNER :Alineador de sprites STR_ABOUT_MENU_SPRITE_ALIGNER :Alineador de sprites
@@ -866,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}No{G u va} {STRING} disponible! - {ENGINE} STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}No{G u va} {STRING} disponible! - {ENGINE}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} ja no accepta més {STRING} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} ja no accepta més {STRING}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} ja no accepta més {STRING} ni {STRING} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} ja no accepta més {STRING} ni {STRING}
STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} ara accepta {STRING} STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} ara accepta {STRING}
@@ -4118,6 +4116,7 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Seleccio
STR_AI_LIST_CANCEL :{BLACK}Cancel·la STR_AI_LIST_CANCEL :{BLACK}Cancel·la
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}No canviïs l'script. STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}No canviïs l'script.
# AI Parameters # AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}Paràmetres {STRING} STR_AI_SETTINGS_CAPTION :{WHITE}Paràmetres {STRING}
STR_AI_SETTINGS_CAPTION_AI :de la IA STR_AI_SETTINGS_CAPTION_AI :de la IA

View File

@@ -574,9 +574,6 @@ STR_ABOUT_MENU_SEPARATOR :
STR_ABOUT_MENU_TOGGLE_CONSOLE :Otvori konzolu STR_ABOUT_MENU_TOGGLE_CONSOLE :Otvori konzolu
STR_ABOUT_MENU_AI_DEBUG :Debugiranje UI-ja/Skripte igre STR_ABOUT_MENU_AI_DEBUG :Debugiranje UI-ja/Skripte igre
STR_ABOUT_MENU_SCREENSHOT :Slika zaslona STR_ABOUT_MENU_SCREENSHOT :Slika zaslona
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Zumirano do kraja na slici zaslona
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Standardno zumiranje slike zaslona
STR_ABOUT_MENU_GIANT_SCREENSHOT :Slika zaslona cijele karte
STR_ABOUT_MENU_SHOW_FRAMERATE :Prikaži broj sličica u sekundi STR_ABOUT_MENU_SHOW_FRAMERATE :Prikaži broj sličica u sekundi
STR_ABOUT_MENU_ABOUT_OPENTTD :O 'OpenTTD' STR_ABOUT_MENU_ABOUT_OPENTTD :O 'OpenTTD'
STR_ABOUT_MENU_SPRITE_ALIGNER :Poravnanje spritea STR_ABOUT_MENU_SPRITE_ALIGNER :Poravnanje spritea
@@ -966,6 +963,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}Novi {STRING} je sada dostupan! - {ENGINE} STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}Novi {STRING} je sada dostupan! - {ENGINE}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} više ne prihvaća {STRING.aku} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} više ne prihvaća {STRING.aku}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} više ne prihvaća {STRING.aku} ili {STRING.aku} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} više ne prihvaća {STRING.aku} ili {STRING.aku}
STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} od sada prihvaća {STRING.aku} STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} od sada prihvaća {STRING.aku}
@@ -1650,6 +1648,8 @@ STR_CONFIG_SETTING_SMOOTH_ECONOMY :Uključi stabil
STR_CONFIG_SETTING_SMOOTH_ECONOMY_HELPTEXT :Kada je uključeno, promjene u industrijskoj proizvodnji su češće ali u manjim rasponima. Ova postavka obično nema efekta ukoliko su industrije postavljene iz nekog NewGRF-a STR_CONFIG_SETTING_SMOOTH_ECONOMY_HELPTEXT :Kada je uključeno, promjene u industrijskoj proizvodnji su češće ali u manjim rasponima. Ova postavka obično nema efekta ukoliko su industrije postavljene iz nekog NewGRF-a
STR_CONFIG_SETTING_ALLOW_SHARES :Dopusti kupovanje udjela u drugim tvrtkama: {STRING} STR_CONFIG_SETTING_ALLOW_SHARES :Dopusti kupovanje udjela u drugim tvrtkama: {STRING}
STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Kada je uključeno, dopušta se kupnja i prodaja dionica tvrtki. Dionice će postati dostupne samo za tvrtke određene starosti STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Kada je uključeno, dopušta se kupnja i prodaja dionica tvrtki. Dionice će postati dostupne samo za tvrtke određene starosti
STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Najmanja starost tvrtke za trgovanje udjelima: {STRING}
STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Odredite najmanju starost tvtke da bi drugi mogli kupovati i prodavati dionice.
STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Postotak dobiti za dionicu koji se plaća kod sustava feedera: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Postotak dobiti za dionicu koji se plaća kod sustava feedera: {STRING}
STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Postotak prihoda koji će biti predan srednjim dionicama prijevoza feeder sustavima, daje više kontrole nad prihodima STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Postotak prihoda koji će biti predan srednjim dionicama prijevoza feeder sustavima, daje više kontrole nad prihodima
STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :Kod povlačenja, postavi signale svakih: {STRING} STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :Kod povlačenja, postavi signale svakih: {STRING}
@@ -3213,6 +3213,8 @@ STR_TOWN_VIEW_RENAME_TOWN_BUTTON :Preimenuj grad
# Town local authority window # Town local authority window
STR_LOCAL_AUTHORITY_CAPTION :{WHITE}Lokalna samouprava grada {TOWN}a STR_LOCAL_AUTHORITY_CAPTION :{WHITE}Lokalna samouprava grada {TOWN}a
STR_LOCAL_AUTHORITY_ZONE :{BLACK}Zona
STR_LOCAL_AUTHORITY_ZONE_TOOLTIP :{BLACK}Pokaži područje sa granicama lokalne vlasti
STR_LOCAL_AUTHORITY_COMPANY_RATINGS :{BLACK}Ocjene prijevoznih tvrtki: STR_LOCAL_AUTHORITY_COMPANY_RATINGS :{BLACK}Ocjene prijevoznih tvrtki:
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}Dostupne radnje: STR_LOCAL_AUTHORITY_ACTIONS_TITLE :{BLACK}Dostupne radnje:
@@ -3483,7 +3485,12 @@ STR_COMPANY_INFRASTRUCTURE_VIEW_TOTAL :{WHITE}{CURRENC
# Industry directory # Industry directory
STR_INDUSTRY_DIRECTORY_CAPTION :{WHITE}Industrije STR_INDUSTRY_DIRECTORY_CAPTION :{WHITE}Industrije
STR_INDUSTRY_DIRECTORY_NONE :{ORANGE}- Ništa - STR_INDUSTRY_DIRECTORY_NONE :{ORANGE}- Ništa -
STR_INDUSTRY_DIRECTORY_ITEM_INFO :{BLACK}{CARGO_LONG}{STRING}{YELLOW} ({COMMA}% prevezeno){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} i {NUM} više...
STR_INDUSTRY_DIRECTORY_LIST_CAPTION :{BLACK}Imena industrija - za centriranje pogleda klikni na ime. Ctrl+klik otvara novi prozor sa lokacijom industrije STR_INDUSTRY_DIRECTORY_LIST_CAPTION :{BLACK}Imena industrija - za centriranje pogleda klikni na ime. Ctrl+klik otvara novi prozor sa lokacijom industrije
# Industry view # Industry view
@@ -4259,6 +4266,7 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Odaberi
STR_AI_LIST_CANCEL :{BLACK}Odustani STR_AI_LIST_CANCEL :{BLACK}Odustani
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Nemoj mijenjati skriptu STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Nemoj mijenjati skriptu
# AI Parameters # AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parametri STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parametri
STR_AI_SETTINGS_CAPTION_AI :UI STR_AI_SETTINGS_CAPTION_AI :UI

View File

@@ -553,9 +553,6 @@ STR_ABOUT_MENU_SEPARATOR :
STR_ABOUT_MENU_TOGGLE_CONSOLE :Zobrazit nebo skrýt konzoli STR_ABOUT_MENU_TOGGLE_CONSOLE :Zobrazit nebo skrýt konzoli
STR_ABOUT_MENU_AI_DEBUG :Ladění AI / herních skriptů STR_ABOUT_MENU_AI_DEBUG :Ladění AI / herních skriptů
STR_ABOUT_MENU_SCREENSHOT :Screenshot STR_ABOUT_MENU_SCREENSHOT :Screenshot
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Screenshot v plném přiblížení
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Screenshot ve výchozím přiblížení
STR_ABOUT_MENU_GIANT_SCREENSHOT :Screenshot celé mapy
STR_ABOUT_MENU_SHOW_FRAMERATE :Zobrazit počet snímků za sekundu STR_ABOUT_MENU_SHOW_FRAMERATE :Zobrazit počet snímků za sekundu
STR_ABOUT_MENU_ABOUT_OPENTTD :O 'OpenTTD' STR_ABOUT_MENU_ABOUT_OPENTTD :O 'OpenTTD'
STR_ABOUT_MENU_SPRITE_ALIGNER :Zarovnávání spritů STR_ABOUT_MENU_SPRITE_ALIGNER :Zarovnávání spritů
@@ -957,6 +954,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_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}
STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} nyní přijímá {STRING.acc} STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} nyní přijímá {STRING.acc}
@@ -4261,6 +4259,7 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Vybrat o
STR_AI_LIST_CANCEL :{BLACK}Zrušit STR_AI_LIST_CANCEL :{BLACK}Zrušit
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Neměňte skript STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Neměňte skript
# AI Parameters # AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parametry STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parametry
STR_AI_SETTINGS_CAPTION_AI :AI STR_AI_SETTINGS_CAPTION_AI :AI

View File

@@ -475,9 +475,6 @@ STR_ABOUT_MENU_SEPARATOR :
STR_ABOUT_MENU_TOGGLE_CONSOLE :Tænd/Sluk konsol STR_ABOUT_MENU_TOGGLE_CONSOLE :Tænd/Sluk konsol
STR_ABOUT_MENU_AI_DEBUG :Computerspiller/spilscript debug STR_ABOUT_MENU_AI_DEBUG :Computerspiller/spilscript debug
STR_ABOUT_MENU_SCREENSHOT :Skærmbillede (Ctrl-S) STR_ABOUT_MENU_SCREENSHOT :Skærmbillede (Ctrl-S)
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Fuldt zoomet skærmbillede
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Standard zoom skærmbillede
STR_ABOUT_MENU_GIANT_SCREENSHOT :Kæmpe skærmbillede (Ctrl-G)
STR_ABOUT_MENU_SHOW_FRAMERATE :Vis spilhastighed STR_ABOUT_MENU_SHOW_FRAMERATE :Vis spilhastighed
STR_ABOUT_MENU_ABOUT_OPENTTD :Om 'OpenTTD' STR_ABOUT_MENU_ABOUT_OPENTTD :Om 'OpenTTD'
STR_ABOUT_MENU_SPRITE_ALIGNER :Spritejustering STR_ABOUT_MENU_SPRITE_ALIGNER :Spritejustering
@@ -867,6 +864,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}Ny {STRING} er nu tilgængelig! - {ENGINE} STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}Ny {STRING} er nu tilgængelig! - {ENGINE}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} accepterer ikke længere {STRING} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} accepterer ikke længere {STRING}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} accepterer ikke længere {STRING} eller {STRING} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} accepterer ikke længere {STRING} eller {STRING}
STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} accepterer nu {STRING} STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} accepterer nu {STRING}
@@ -4123,6 +4121,7 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Vælg ma
STR_AI_LIST_CANCEL :{BLACK}Afbryd STR_AI_LIST_CANCEL :{BLACK}Afbryd
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Skift ikke script'et STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Skift ikke script'et
# AI Parameters # AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parametre STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parametre
STR_AI_SETTINGS_CAPTION_AI :AI STR_AI_SETTINGS_CAPTION_AI :AI

View File

@@ -478,9 +478,6 @@ STR_ABOUT_MENU_SEPARATOR :
STR_ABOUT_MENU_TOGGLE_CONSOLE :Console in-uitschakelen STR_ABOUT_MENU_TOGGLE_CONSOLE :Console in-uitschakelen
STR_ABOUT_MENU_AI_DEBUG :Probleemoplossing AI/spelscript STR_ABOUT_MENU_AI_DEBUG :Probleemoplossing AI/spelscript
STR_ABOUT_MENU_SCREENSHOT :Schermfoto STR_ABOUT_MENU_SCREENSHOT :Schermfoto
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Ingezoomde schermfoto
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Schermfoto met standaardzoom
STR_ABOUT_MENU_GIANT_SCREENSHOT :Schermfoto van de hele kaart
STR_ABOUT_MENU_SHOW_FRAMERATE :Framesnelheid weergeven STR_ABOUT_MENU_SHOW_FRAMERATE :Framesnelheid weergeven
STR_ABOUT_MENU_ABOUT_OPENTTD :Over 'OpenTTD' STR_ABOUT_MENU_ABOUT_OPENTTD :Over 'OpenTTD'
STR_ABOUT_MENU_SPRITE_ALIGNER :Sprite-uitlijner STR_ABOUT_MENU_SPRITE_ALIGNER :Sprite-uitlijner
@@ -870,6 +867,8 @@ 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}Nieuw {STRING} nu beschikbaar! - {ENGINE} STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}Nieuw {STRING} nu beschikbaar! - {ENGINE}
STR_NEWS_SHOW_VEHICLE_GROUP_TOOLTIP :{BLACK}Groepsvenster openen met focus op groep van voertuig
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} accepteert geen {STRING} meer STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} accepteert geen {STRING} meer
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} accepteert geen {STRING} of {STRING} meer STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} accepteert geen {STRING} of {STRING} meer
STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} accepteert voortaan {STRING} STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} accepteert voortaan {STRING}
@@ -4172,6 +4171,7 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Gemarkee
STR_AI_LIST_CANCEL :{BLACK}Annuleren STR_AI_LIST_CANCEL :{BLACK}Annuleren
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Script niet wijzigen STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Script niet wijzigen
# AI Parameters # AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parameters STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parameters
STR_AI_SETTINGS_CAPTION_AI :AI STR_AI_SETTINGS_CAPTION_AI :AI

View File

@@ -484,9 +484,6 @@ STR_ABOUT_MENU_SEPARATOR :
STR_ABOUT_MENU_TOGGLE_CONSOLE :Toggle console STR_ABOUT_MENU_TOGGLE_CONSOLE :Toggle console
STR_ABOUT_MENU_AI_DEBUG :AI/Game script debug STR_ABOUT_MENU_AI_DEBUG :AI/Game script debug
STR_ABOUT_MENU_SCREENSHOT :Screenshot STR_ABOUT_MENU_SCREENSHOT :Screenshot
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Fully zoomed in screenshot
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Default zoom screenshot
STR_ABOUT_MENU_GIANT_SCREENSHOT :Whole map screenshot
STR_ABOUT_MENU_SHOW_FRAMERATE :Show frame rate STR_ABOUT_MENU_SHOW_FRAMERATE :Show frame rate
STR_ABOUT_MENU_SHOW_TOGGLE_MODIFIER_KEYS :Modifier key window STR_ABOUT_MENU_SHOW_TOGGLE_MODIFIER_KEYS :Modifier key window
STR_ABOUT_MENU_ABOUT_OPENTTD :About 'OpenTTD' STR_ABOUT_MENU_ABOUT_OPENTTD :About 'OpenTTD'
@@ -880,6 +877,8 @@ 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}New {STRING} now available! - {ENGINE} STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}New {STRING} now available! - {ENGINE}
STR_NEWS_SHOW_VEHICLE_GROUP_TOOLTIP :{BLACK}Open the group window focused on the vehicle's group
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} no longer accepts {STRING} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} no longer accepts {STRING}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} no longer accepts {STRING} or {STRING} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} no longer accepts {STRING} or {STRING}
STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} now accepts {STRING} STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} now accepts {STRING}
@@ -1344,6 +1343,8 @@ STR_CONFIG_SETTING_POPULATION_IN_LABEL :Show extra info
STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Display the population of towns in their label on the map STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Display the population of towns in their label on the map
STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Thickness of lines in graphs: {STRING2} STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Thickness of lines in graphs: {STRING2}
STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Width of the line in the graphs. A thin line is more precisely readable, a thicker line is easier to see and colours are easier to distinguish STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Width of the line in the graphs. A thin line is more precisely readable, a thicker line is easier to see and colours are easier to distinguish
STR_CONFIG_SETTING_SHOW_NEWGRF_NAME :Show the NewGRF's name in the build vehicle window
STR_CONFIG_SETTING_SHOW_NEWGRF_NAME_HELPTEXT :Add a line to the build vehicle window, showing which NewGRF the selected vehicle comes from.
STR_CONFIG_SETTING_SHOW_TRAIN_LENGTH_IN_DETAILS :Show train length in details: {STRING2} STR_CONFIG_SETTING_SHOW_TRAIN_LENGTH_IN_DETAILS :Show train length in details: {STRING2}
STR_CONFIG_SETTING_SHOW_TRAIN_LENGTH_IN_DETAILS_HELPTEXT :Show train length in the vehicle details window STR_CONFIG_SETTING_SHOW_TRAIN_LENGTH_IN_DETAILS_HELPTEXT :Show train length in the vehicle details window
STR_CONFIG_SETTING_SHOW_VEHICLE_GROUP_IN_DETAILS :Show vehicle group in details: {STRING2} STR_CONFIG_SETTING_SHOW_VEHICLE_GROUP_IN_DETAILS :Show vehicle group in details: {STRING2}
@@ -1370,9 +1371,6 @@ STR_CONFIG_SETTING_OPEN_VEHICLE_GUI_CLONE_SHARE_HELPTEXT :When enabled, o
STR_CONFIG_SETTING_ADV_SIG_BRIDGE_TUN_MODES :Enable signals on bridges/tunnels advanced modes: {STRING2} STR_CONFIG_SETTING_ADV_SIG_BRIDGE_TUN_MODES :Enable signals on bridges/tunnels advanced modes: {STRING2}
STR_CONFIG_SETTING_ADV_SIG_BRIDGE_TUN_MODES_HELPTEXT :Enables use of advanced modes of signal simulation on bridges and tunnels. When disabled, bridges/tunnels which are not already in an advanced mode cannot be changed to an advanced mode, however other players may choose to enable this setting and use an advanced mode. STR_CONFIG_SETTING_ADV_SIG_BRIDGE_TUN_MODES_HELPTEXT :Enables use of advanced modes of signal simulation on bridges and tunnels. When disabled, bridges/tunnels which are not already in an advanced mode cannot be changed to an advanced mode, however other players may choose to enable this setting and use an advanced mode.
STR_CONFIG_SETTING_SHOW_NEWGRF_NAME :Show the NewGRF's name in the build vehicle window
STR_CONFIG_SETTING_SHOW_NEWGRF_NAME_HELPTEXT :When enabled the name of the NewGRF which the selected vehicle comes from displayed at the bottom of the build vehicle window
STR_CONFIG_SETTING_LANDSCAPE :Landscape: {STRING2} STR_CONFIG_SETTING_LANDSCAPE :Landscape: {STRING2}
STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :Landscapes define basic gameplay scenarios with different cargos and town growth requirements. NewGRF and Game Scripts allow finer control though STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :Landscapes define basic gameplay scenarios with different cargos and town growth requirements. NewGRF and Game Scripts allow finer control though
STR_CONFIG_SETTING_LAND_GENERATOR :Land generator: {STRING2} STR_CONFIG_SETTING_LAND_GENERATOR :Land generator: {STRING2}
@@ -1701,6 +1699,10 @@ STR_CONFIG_SETTING_NEWS_MESSAGES_FULL :Full
STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :Coloured news appears in: {STRING2} STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :Coloured news appears in: {STRING2}
STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :Year that the newspaper announcements get printed in colour. Before this year, it uses monochrome black/white STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :Year that the newspaper announcements get printed in colour. Before this year, it uses monochrome black/white
STR_CONFIG_SETTING_STARTING_YEAR :Starting year: {STRING2} STR_CONFIG_SETTING_STARTING_YEAR :Starting year: {STRING2}
STR_CONFIG_SETTING_ENDING_YEAR :Scoring end year: {STRING2}
STR_CONFIG_SETTING_ENDING_YEAR_HELPTEXT :Year the game ends for scoring purposes. At the end of this year, the company's score is recorded and the high-score screen is displayed, but the players can continue playing after that.{}If this is before the starting year, the high-score screen is never displayed.
STR_CONFIG_SETTING_ENDING_YEAR_VALUE :{NUM}
STR_CONFIG_SETTING_ENDING_YEAR_ZERO :Never
STR_CONFIG_SETTING_SMOOTH_ECONOMY :Enable smooth economy (more, smaller changes): {STRING2} STR_CONFIG_SETTING_SMOOTH_ECONOMY :Enable smooth economy (more, smaller changes): {STRING2}
STR_CONFIG_SETTING_SMOOTH_ECONOMY_HELPTEXT :When enabled, industry production changes more often, and in smaller steps. This setting has usually no effect, if industry types are provided by a NewGRF STR_CONFIG_SETTING_SMOOTH_ECONOMY_HELPTEXT :When enabled, industry production changes more often, and in smaller steps. This setting has usually no effect, if industry types are provided by a NewGRF
STR_CONFIG_SETTING_ALLOW_SHARES :Allow buying shares from other companies: {STRING2} STR_CONFIG_SETTING_ALLOW_SHARES :Allow buying shares from other companies: {STRING2}
@@ -4070,6 +4072,10 @@ STR_INDUSTRY_DIRECTORY_ITEM_PROD2 :{ORANGE}{INDUST
STR_INDUSTRY_DIRECTORY_ITEM_PROD3 :{ORANGE}{INDUSTRY} {STRING4}, {STRING4}, {STRING4} STR_INDUSTRY_DIRECTORY_ITEM_PROD3 :{ORANGE}{INDUSTRY} {STRING4}, {STRING4}, {STRING4}
STR_INDUSTRY_DIRECTORY_ITEM_PRODMORE :{ORANGE}{INDUSTRY} {STRING4}, {STRING4}, {STRING4} and {NUM} more... STR_INDUSTRY_DIRECTORY_ITEM_PRODMORE :{ORANGE}{INDUSTRY} {STRING4}, {STRING4}, {STRING4} and {NUM} more...
STR_INDUSTRY_DIRECTORY_LIST_CAPTION :{BLACK}Industry names - click on name to centre main view on industry. Ctrl+Click opens a new viewport on industry location STR_INDUSTRY_DIRECTORY_LIST_CAPTION :{BLACK}Industry names - click on name to centre main view on industry. Ctrl+Click opens a new viewport on industry location
STR_INDUSTRY_DIRECTORY_ACCEPTED_CARGO_FILTER :{BLACK}Accepted cargo: {SILVER}{STRING}
STR_INDUSTRY_DIRECTORY_PRODUCED_CARGO_FILTER :{BLACK}Produced cargo: {SILVER}{STRING}
STR_INDUSTRY_DIRECTORY_FILTER_ALL_TYPES :All cargo types
STR_INDUSTRY_DIRECTORY_FILTER_NONE :None
# Industry view # Industry view
STR_INDUSTRY_VIEW_CAPTION :{WHITE}{INDUSTRY} STR_INDUSTRY_VIEW_CAPTION :{WHITE}{INDUSTRY}
@@ -5039,6 +5045,14 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Select h
STR_AI_LIST_CANCEL :{BLACK}Cancel STR_AI_LIST_CANCEL :{BLACK}Cancel
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Don't change the script STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Don't change the script
STR_SCREENSHOT_CAPTION :{WHITE}Take a screenshot
STR_SCREENSHOT_SCREENSHOT :{BLACK}Normal screenshot
STR_SCREENSHOT_ZOOMIN_SCREENSHOT :{BLACK}Fully zoomed in screenshot
STR_SCREENSHOT_DEFAULTZOOM_SCREENSHOT :{BLACK}Default zoom screenshot
STR_SCREENSHOT_WORLD_SCREENSHOT :{BLACK}Whole map screenshot
STR_SCREENSHOT_HEIGHTMAP_SCREENSHOT :{BLACK}Heightmap screenshot
STR_SCREENSHOT_MINIMAP_SCREENSHOT :{BLACK}Minimap screenshot
# AI Parameters # AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parameters STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parameters
STR_AI_SETTINGS_CAPTION_AI :AI STR_AI_SETTINGS_CAPTION_AI :AI

View File

@@ -461,9 +461,6 @@ STR_ABOUT_MENU_SEPARATOR :
STR_ABOUT_MENU_TOGGLE_CONSOLE :Toggle console STR_ABOUT_MENU_TOGGLE_CONSOLE :Toggle console
STR_ABOUT_MENU_AI_DEBUG :AI/Game script debug STR_ABOUT_MENU_AI_DEBUG :AI/Game script debug
STR_ABOUT_MENU_SCREENSHOT :Screenshot STR_ABOUT_MENU_SCREENSHOT :Screenshot
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Zoomed in screenshot
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Default zoom screenshot
STR_ABOUT_MENU_GIANT_SCREENSHOT :Whole map screenshot
STR_ABOUT_MENU_ABOUT_OPENTTD :About 'OpenTTD' STR_ABOUT_MENU_ABOUT_OPENTTD :About 'OpenTTD'
STR_ABOUT_MENU_SPRITE_ALIGNER :Sprite aligner STR_ABOUT_MENU_SPRITE_ALIGNER :Sprite aligner
STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Toggle bounding boxes STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Toggle bounding boxes
@@ -847,6 +844,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}New {STRING} now available! - {ENGINE} STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}New {STRING} now available! - {ENGINE}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} no longer accepts {STRING} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} no longer accepts {STRING}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} no longer accepts {STRING} or {STRING} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} no longer accepts {STRING} or {STRING}
STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} now accepts {STRING} STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} now accepts {STRING}
@@ -3949,6 +3947,7 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Select h
STR_AI_LIST_CANCEL :{BLACK}Cancel STR_AI_LIST_CANCEL :{BLACK}Cancel
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Don't change the script STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Don't change the script
# AI Parameters # AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parameters STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parameters
STR_AI_SETTINGS_CAPTION_AI :AI STR_AI_SETTINGS_CAPTION_AI :AI

View File

@@ -478,9 +478,6 @@ STR_ABOUT_MENU_SEPARATOR :
STR_ABOUT_MENU_TOGGLE_CONSOLE :Toggle console STR_ABOUT_MENU_TOGGLE_CONSOLE :Toggle console
STR_ABOUT_MENU_AI_DEBUG :AI/Game script debug STR_ABOUT_MENU_AI_DEBUG :AI/Game script debug
STR_ABOUT_MENU_SCREENSHOT :Screenshot STR_ABOUT_MENU_SCREENSHOT :Screenshot
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Fully zoomed in screenshot
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Default zoom screenshot
STR_ABOUT_MENU_GIANT_SCREENSHOT :Whole map screenshot
STR_ABOUT_MENU_SHOW_FRAMERATE :Show frame rate STR_ABOUT_MENU_SHOW_FRAMERATE :Show frame rate
STR_ABOUT_MENU_ABOUT_OPENTTD :About 'OpenTTD' STR_ABOUT_MENU_ABOUT_OPENTTD :About 'OpenTTD'
STR_ABOUT_MENU_SPRITE_ALIGNER :Sprite aligner STR_ABOUT_MENU_SPRITE_ALIGNER :Sprite aligner
@@ -870,6 +867,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}New {STRING} now available! - {ENGINE} STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}New {STRING} now available! - {ENGINE}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} no longer accepts {STRING} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} no longer accepts {STRING}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} no longer accepts {STRING} or {STRING} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} no longer accepts {STRING} or {STRING}
STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} now accepts {STRING} STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} now accepts {STRING}
@@ -4163,6 +4161,7 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Select h
STR_AI_LIST_CANCEL :{BLACK}Cancel STR_AI_LIST_CANCEL :{BLACK}Cancel
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Don't change the script STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Don't change the script
# AI Parameters # AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parameters STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parameters
STR_AI_SETTINGS_CAPTION_AI :AI STR_AI_SETTINGS_CAPTION_AI :AI

View File

@@ -464,9 +464,6 @@ STR_ABOUT_MENU_SEPARATOR :
STR_ABOUT_MENU_TOGGLE_CONSOLE :Baskuligi Konzolon STR_ABOUT_MENU_TOGGLE_CONSOLE :Baskuligi Konzolon
STR_ABOUT_MENU_AI_DEBUG :AI/Ludo skripto sencimigo STR_ABOUT_MENU_AI_DEBUG :AI/Ludo skripto sencimigo
STR_ABOUT_MENU_SCREENSHOT :Ekranfoto STR_ABOUT_MENU_SCREENSHOT :Ekranfoto
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Pligrandiga ekranfoto
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Ekranfoto defaŭlte zoma
STR_ABOUT_MENU_GIANT_SCREENSHOT :Tuta karto ekranfoto
STR_ABOUT_MENU_ABOUT_OPENTTD :Pri 'OpenTTD' STR_ABOUT_MENU_ABOUT_OPENTTD :Pri 'OpenTTD'
STR_ABOUT_MENU_SPRITE_ALIGNER :Bildeto-liniigilo STR_ABOUT_MENU_SPRITE_ALIGNER :Bildeto-liniigilo
STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Montri/ne montri limigujo STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Montri/ne montri limigujo
@@ -844,6 +841,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}Nova {STRING} nun haveblas! - {ENGINE} STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}Nova {STRING} nun haveblas! - {ENGINE}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} ne plu akceptas {STRING.n} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} ne plu akceptas {STRING.n}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} ne plu akceptas {STRING.n} aŭ {STRING.n} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} ne plu akceptas {STRING.n} aŭ {STRING.n}
STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} nun akceptas {STRING.n} STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} nun akceptas {STRING.n}
@@ -3386,6 +3384,7 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Elekti e
STR_AI_LIST_CANCEL :{BLACK}Nuligi STR_AI_LIST_CANCEL :{BLACK}Nuligi
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Ne ŝanĝu AI-on STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Ne ŝanĝu AI-on
# AI Parameters # AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parametroj STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parametroj
STR_AI_SETTINGS_CAPTION_AI :AI STR_AI_SETTINGS_CAPTION_AI :AI

View File

@@ -527,9 +527,6 @@ STR_ABOUT_MENU_SEPARATOR :
STR_ABOUT_MENU_TOGGLE_CONSOLE :Lülita konsool sisse/välja STR_ABOUT_MENU_TOGGLE_CONSOLE :Lülita konsool sisse/välja
STR_ABOUT_MENU_AI_DEBUG :Arvutivea otsing STR_ABOUT_MENU_AI_DEBUG :Arvutivea otsing
STR_ABOUT_MENU_SCREENSHOT :Ekraanitõmmis STR_ABOUT_MENU_SCREENSHOT :Ekraanitõmmis
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Suurendatud ekraanitõmmis
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Tavasuurendusega ekraanitõmmis
STR_ABOUT_MENU_GIANT_SCREENSHOT :Terve kaardi ekraanitõmmis
STR_ABOUT_MENU_SHOW_FRAMERATE :Näita kaadrisagedust STR_ABOUT_MENU_SHOW_FRAMERATE :Näita kaadrisagedust
STR_ABOUT_MENU_ABOUT_OPENTTD :'OpenTTD' kohta STR_ABOUT_MENU_ABOUT_OPENTTD :'OpenTTD' kohta
STR_ABOUT_MENU_SPRITE_ALIGNER :Sprite aligner STR_ABOUT_MENU_SPRITE_ALIGNER :Sprite aligner
@@ -914,6 +911,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}Uus {STRING} saadaval! - {ENGINE} STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}Uus {STRING} saadaval! - {ENGINE}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}Jaam {STATION} ei võta enam vastu veost {STRING} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}Jaam {STATION} ei võta enam vastu veost {STRING}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}Jaam {STATION} ei võta enam vastu veoseid {STRING}, ega {STRING} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}Jaam {STATION} ei võta enam vastu veoseid {STRING}, ega {STRING}
STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}Jaam {STATION} võtab nüüd vastu veost {STRING} STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}Jaam {STATION} võtab nüüd vastu veost {STRING}
@@ -4091,6 +4089,7 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Vali esi
STR_AI_LIST_CANCEL :{BLACK}Loobu STR_AI_LIST_CANCEL :{BLACK}Loobu
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Ära skripti muuda STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Ära skripti muuda
# AI Parameters # AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parameetrid STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parameetrid
STR_AI_SETTINGS_CAPTION_AI :Tehismõistus STR_AI_SETTINGS_CAPTION_AI :Tehismõistus

View File

@@ -448,9 +448,6 @@ STR_ABOUT_MENU_SEPARATOR :
STR_ABOUT_MENU_TOGGLE_CONSOLE :Console opið ella lukka STR_ABOUT_MENU_TOGGLE_CONSOLE :Console opið ella lukka
STR_ABOUT_MENU_AI_DEBUG :AI/Spæl script debug STR_ABOUT_MENU_AI_DEBUG :AI/Spæl script debug
STR_ABOUT_MENU_SCREENSHOT :Skermmynd STR_ABOUT_MENU_SCREENSHOT :Skermmynd
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Suma in skermmynd
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Vanliga suma skermmynd
STR_ABOUT_MENU_GIANT_SCREENSHOT :Skermmynd av øllum kortinum
STR_ABOUT_MENU_SHOW_FRAMERATE :Vís mynda títtleika STR_ABOUT_MENU_SHOW_FRAMERATE :Vís mynda títtleika
STR_ABOUT_MENU_ABOUT_OPENTTD :Um 'OpenTTD' STR_ABOUT_MENU_ABOUT_OPENTTD :Um 'OpenTTD'
STR_ABOUT_MENU_SPRITE_ALIGNER :Sprite aligner STR_ABOUT_MENU_SPRITE_ALIGNER :Sprite aligner
@@ -828,6 +825,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}Nýtt {STRING} til sølu! - {ENGINE} STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}Nýtt {STRING} til sølu! - {ENGINE}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} tekur ikki longur ímóti {STRING} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} tekur ikki longur ímóti {STRING}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} tekur ikki longur ímóti hvørki {STRING} ella {STRING} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} tekur ikki longur ímóti hvørki {STRING} ella {STRING}
STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} tekur nú ímóti {STRING} STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} tekur nú ímóti {STRING}
@@ -3526,6 +3524,7 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Vel undi
STR_AI_LIST_CANCEL :{BLACK}Angra STR_AI_LIST_CANCEL :{BLACK}Angra
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Ikki broyta scripti STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Ikki broyta scripti
# AI Parameters # AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parametur STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parametur
STR_AI_SETTINGS_CAPTION_AI :AI STR_AI_SETTINGS_CAPTION_AI :AI

View File

@@ -478,9 +478,6 @@ STR_ABOUT_MENU_SEPARATOR :
STR_ABOUT_MENU_TOGGLE_CONSOLE :Konsoli STR_ABOUT_MENU_TOGGLE_CONSOLE :Konsoli
STR_ABOUT_MENU_AI_DEBUG :Tekoälyn/peliskriptin virheenjäljitys STR_ABOUT_MENU_AI_DEBUG :Tekoälyn/peliskriptin virheenjäljitys
STR_ABOUT_MENU_SCREENSHOT :Kuvakaappaus STR_ABOUT_MENU_SCREENSHOT :Kuvakaappaus
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Täysin lähennetty kuvakaappaus
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Kuvakaappaus oletuslähennystasolla
STR_ABOUT_MENU_GIANT_SCREENSHOT :Koko kartan kuvakaappaus
STR_ABOUT_MENU_SHOW_FRAMERATE :Näytä kuvataajuus STR_ABOUT_MENU_SHOW_FRAMERATE :Näytä kuvataajuus
STR_ABOUT_MENU_ABOUT_OPENTTD :Tietoja OpenTTD:stä STR_ABOUT_MENU_ABOUT_OPENTTD :Tietoja OpenTTD:stä
STR_ABOUT_MENU_SPRITE_ALIGNER :Sprite-kohdistaja STR_ABOUT_MENU_SPRITE_ALIGNER :Sprite-kohdistaja
@@ -870,6 +867,8 @@ 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}Uusi {STRING} on nyt saatavilla! {ENGINE} STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}Uusi {STRING} on nyt saatavilla! {ENGINE}
STR_NEWS_SHOW_VEHICLE_GROUP_TOOLTIP :{BLACK}Avaa ryhmäikkuna kulkuneuvon ryhmään kohdistettuna
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} ei ota enää vastaan {STRING}. STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} ei ota enää vastaan {STRING}.
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} ei ota enää vastaan {STRING} tai {STRING}. STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} ei ota enää vastaan {STRING} tai {STRING}.
STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} ottaa nyt vastaan {STRING}. STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} ottaa nyt vastaan {STRING}.
@@ -1313,6 +1312,8 @@ STR_CONFIG_SETTING_POPULATION_IN_LABEL :Näytä kunnan
STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Näytä kuntien asukasluvut kartalla STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Näytä kuntien asukasluvut kartalla
STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Viivojen paksuus kuvaajissa: {STRING} STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Viivojen paksuus kuvaajissa: {STRING}
STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Viivan leveys kuvaajissa. Ohut viiva on tarkasti luettavissa kun taas paksumpi viiva on helpompi nähdä ja sen värit ovat helpommin havaittavissa STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Viivan leveys kuvaajissa. Ohut viiva on tarkasti luettavissa kun taas paksumpi viiva on helpompi nähdä ja sen värit ovat helpommin havaittavissa
STR_CONFIG_SETTING_SHOW_NEWGRF_NAME :Näytä NewGRF:n nimi liikennevälineikkunassa
STR_CONFIG_SETTING_SHOW_NEWGRF_NAME_HELPTEXT :Lisää liikennevälinevalikoimaikkunaan rivin, joka näyttää, mistä NewGRF:stä valittu liikenneväline on peräisin.
STR_CONFIG_SETTING_LANDSCAPE :Maasto: {STRING} STR_CONFIG_SETTING_LANDSCAPE :Maasto: {STRING}
STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :Maasto vaikuttaa useisiin pelin peruselementteihin, kuten rahtiin ja kuntien kasvuedellytyksiin. NewGRF:t ja peliskriptit voivat kuitenkin vaikuttaa tarkemmin pelin kulkuun STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :Maasto vaikuttaa useisiin pelin peruselementteihin, kuten rahtiin ja kuntien kasvuedellytyksiin. NewGRF:t ja peliskriptit voivat kuitenkin vaikuttaa tarkemmin pelin kulkuun
@@ -1550,6 +1551,10 @@ STR_CONFIG_SETTING_NEWS_MESSAGES_FULL :Täysi
STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :Värilliset uutiset ilmestyvät: {STRING} STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :Värilliset uutiset ilmestyvät: {STRING}
STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :Vuosi, jonka jälkeen sanomalehdet ovat värillisiä. Ennen tätä vuotta sanomalehdet käyttävät mustavalkoisia kuvia STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :Vuosi, jonka jälkeen sanomalehdet ovat värillisiä. Ennen tätä vuotta sanomalehdet käyttävät mustavalkoisia kuvia
STR_CONFIG_SETTING_STARTING_YEAR :Aloitusvuosi: {STRING} STR_CONFIG_SETTING_STARTING_YEAR :Aloitusvuosi: {STRING}
STR_CONFIG_SETTING_ENDING_YEAR :Pistelaskun päättymisvuosi: {STRING}
STR_CONFIG_SETTING_ENDING_YEAR_HELPTEXT :Pelin päättymisvuosi pisteiden laskemista varten. Tämän vuoden lopussa talletetaan yhtiön pistemäärä ja näytetään ennätysluettelo; pelaajat voivat jatkaa pelaamista tämän jälkeenkin.{}Jos päättymisvuosi on ennen alkamisvuotta, ennätyksiä ei näytetä koskaan.
STR_CONFIG_SETTING_ENDING_YEAR_VALUE :{NUM}
STR_CONFIG_SETTING_ENDING_YEAR_ZERO :Ei koskaan
STR_CONFIG_SETTING_SMOOTH_ECONOMY :Tasainen talous (enemmän pieniä muutoksia): {STRING} STR_CONFIG_SETTING_SMOOTH_ECONOMY :Tasainen talous (enemmän pieniä muutoksia): {STRING}
STR_CONFIG_SETTING_SMOOTH_ECONOMY_HELPTEXT :Mikäli käytössä, teollisuuden tuotanto muuttuu useammin ja vähemmän kerrallaan. Tällä asetuksella ei ole yleensä vaikutusta mikäli teollisuustyypit ovat NewGRF:n tarjoamia STR_CONFIG_SETTING_SMOOTH_ECONOMY_HELPTEXT :Mikäli käytössä, teollisuuden tuotanto muuttuu useammin ja vähemmän kerrallaan. Tällä asetuksella ei ole yleensä vaikutusta mikäli teollisuustyypit ovat NewGRF:n tarjoamia
STR_CONFIG_SETTING_ALLOW_SHARES :Salli toisten yhtiöiden osakkeiden ostaminen: {STRING} STR_CONFIG_SETTING_ALLOW_SHARES :Salli toisten yhtiöiden osakkeiden ostaminen: {STRING}
@@ -4172,6 +4177,14 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Valitse
STR_AI_LIST_CANCEL :{BLACK}Peruuta STR_AI_LIST_CANCEL :{BLACK}Peruuta
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Älä vaihda skriptiä STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Älä vaihda skriptiä
STR_SCREENSHOT_CAPTION :{WHITE}Ota kuvakaappaus
STR_SCREENSHOT_SCREENSHOT :{BLACK}Tavallinen kuvakaappaus
STR_SCREENSHOT_ZOOMIN_SCREENSHOT :{BLACK}Täysin lähennetty kuvakaappaus
STR_SCREENSHOT_DEFAULTZOOM_SCREENSHOT :{BLACK}Kuvakaappaus oletuslähennyksellä
STR_SCREENSHOT_WORLD_SCREENSHOT :{BLACK}Koko kartan kuvakaappaus
STR_SCREENSHOT_HEIGHTMAP_SCREENSHOT :{BLACK}Korkeuskartan kuvakaappaus
STR_SCREENSHOT_MINIMAP_SCREENSHOT :{BLACK}Pienoiskartan kuvakaappaus
# AI Parameters # AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parametrit STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parametrit
STR_AI_SETTINGS_CAPTION_AI :Tekoäly STR_AI_SETTINGS_CAPTION_AI :Tekoäly

View File

@@ -479,9 +479,6 @@ STR_ABOUT_MENU_SEPARATOR :
STR_ABOUT_MENU_TOGGLE_CONSOLE :Afficher/Cacher la console STR_ABOUT_MENU_TOGGLE_CONSOLE :Afficher/Cacher la console
STR_ABOUT_MENU_AI_DEBUG :Débogage de scripts STR_ABOUT_MENU_AI_DEBUG :Débogage de scripts
STR_ABOUT_MENU_SCREENSHOT :Copie d'écran STR_ABOUT_MENU_SCREENSHOT :Copie d'écran
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Copie d'écran au zoom maximum
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Copie d'écran au zoom par défaut
STR_ABOUT_MENU_GIANT_SCREENSHOT :Copie d'écran de la carte entière
STR_ABOUT_MENU_SHOW_FRAMERATE :Afficher la fréquence d'images STR_ABOUT_MENU_SHOW_FRAMERATE :Afficher la fréquence d'images
STR_ABOUT_MENU_ABOUT_OPENTTD :À propos d'OpenTTD STR_ABOUT_MENU_ABOUT_OPENTTD :À propos d'OpenTTD
STR_ABOUT_MENU_SPRITE_ALIGNER :Alignement de sprite STR_ABOUT_MENU_SPRITE_ALIGNER :Alignement de sprite
@@ -871,6 +868,8 @@ 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}Nouv{G 0 eau el elle} {STRING} disponible{NBSP}! - {ENGINE} STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}Nouv{G 0 eau el elle} {STRING} disponible{NBSP}! - {ENGINE}
STR_NEWS_SHOW_VEHICLE_GROUP_TOOLTIP :{BLACK}Ouvrir la fenêtre de groupe de ce véhicule
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} n'accepte plus {STRING} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} n'accepte plus {STRING}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} n'accepte plus {STRING} ou {STRING} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} n'accepte plus {STRING} ou {STRING}
STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} accepte désormais {STRING} STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} accepte désormais {STRING}
@@ -1551,6 +1550,10 @@ STR_CONFIG_SETTING_NEWS_MESSAGES_FULL :Complet
STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :Les journaux en couleur apparaissent en{NBSP}: {STRING} STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :Les journaux en couleur apparaissent en{NBSP}: {STRING}
STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :Année à partir de laquelle les annonces des journaux sont imprimées en couleur. Avant cette année ils sont en noir et blanc STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :Année à partir de laquelle les annonces des journaux sont imprimées en couleur. Avant cette année ils sont en noir et blanc
STR_CONFIG_SETTING_STARTING_YEAR :Année de départ{NBSP}: {STRING} STR_CONFIG_SETTING_STARTING_YEAR :Année de départ{NBSP}: {STRING}
STR_CONFIG_SETTING_ENDING_YEAR :Année de fin du jeu{NBSP}: {STRING}
STR_CONFIG_SETTING_ENDING_YEAR_HELPTEXT :À la fin de cette année, le score de la compagnie est enregistré et la fenêtre des meilleurs scores est affichée. Il est quand même possible de continuer de jouer après, mais le score ne sera pas enregistré.{}Si le jeu commence après cette année, les meilleurs scores ne sont jamais affichés.
STR_CONFIG_SETTING_ENDING_YEAR_VALUE :{NUM}
STR_CONFIG_SETTING_ENDING_YEAR_ZERO :Jamais
STR_CONFIG_SETTING_SMOOTH_ECONOMY :Permettre une économie stable (petits changements plus nombreux){NBSP}: {STRING} STR_CONFIG_SETTING_SMOOTH_ECONOMY :Permettre une économie stable (petits changements plus nombreux){NBSP}: {STRING}
STR_CONFIG_SETTING_SMOOTH_ECONOMY_HELPTEXT :Lorsqu'il est activé, la production des industries change plus souvent, et plus faiblement. Ce paramètre est généralement sans effets si les types d'industries sont fournis par un NewGRF STR_CONFIG_SETTING_SMOOTH_ECONOMY_HELPTEXT :Lorsqu'il est activé, la production des industries change plus souvent, et plus faiblement. Ce paramètre est généralement sans effets si les types d'industries sont fournis par un NewGRF
STR_CONFIG_SETTING_ALLOW_SHARES :Permettre d'acheter des actions d'autres compagnies{NBSP}: {STRING} STR_CONFIG_SETTING_ALLOW_SHARES :Permettre d'acheter des actions d'autres compagnies{NBSP}: {STRING}
@@ -4173,6 +4176,13 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Sélecti
STR_AI_LIST_CANCEL :{BLACK}Annuler STR_AI_LIST_CANCEL :{BLACK}Annuler
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Ne pas modifier le script STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Ne pas modifier le script
STR_SCREENSHOT_CAPTION :{WHITE}Faire une capture d'écran
STR_SCREENSHOT_SCREENSHOT :{BLACK}Capture d'écran normale
STR_SCREENSHOT_ZOOMIN_SCREENSHOT :{BLACK}Capture d'écran au zoom maximum
STR_SCREENSHOT_DEFAULTZOOM_SCREENSHOT :{BLACK}Capture d'écran sans zoom
STR_SCREENSHOT_WORLD_SCREENSHOT :{BLACK}Capture d'écran de toute la carte
STR_SCREENSHOT_HEIGHTMAP_SCREENSHOT :{BLACK}Capture d'écran de la carte d'altitude
# AI Parameters # AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Paramètres STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Paramètres
STR_AI_SETTINGS_CAPTION_AI :IA STR_AI_SETTINGS_CAPTION_AI :IA

View File

@@ -658,9 +658,6 @@ STR_ABOUT_MENU_SEPARATOR :
STR_ABOUT_MENU_TOGGLE_CONSOLE :Toglaich a' chonsoil STR_ABOUT_MENU_TOGGLE_CONSOLE :Toglaich a' chonsoil
STR_ABOUT_MENU_AI_DEBUG :Dì-bhugaich IF/sgriobt geama STR_ABOUT_MENU_AI_DEBUG :Dì-bhugaich IF/sgriobt geama
STR_ABOUT_MENU_SCREENSHOT :Glacadh-sgrìn STR_ABOUT_MENU_SCREENSHOT :Glacadh-sgrìn
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Glacadh-sgrìn le sùmadh a-steach as motha
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Glacadh-sgrìn le sùmadh a-steach bunaiteach
STR_ABOUT_MENU_GIANT_SCREENSHOT :Glacadh-sgrìn leis a' mhapa shlàn
STR_ABOUT_MENU_ABOUT_OPENTTD :Mu dheidhinn “OpenTTD" STR_ABOUT_MENU_ABOUT_OPENTTD :Mu dheidhinn “OpenTTD"
STR_ABOUT_MENU_SPRITE_ALIGNER :Co-thaobhaichear nan sprite STR_ABOUT_MENU_SPRITE_ALIGNER :Co-thaobhaichear nan sprite
STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Toglaich bogsaichean-iadhaidh STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Toglaich bogsaichean-iadhaidh
@@ -1061,6 +1058,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}Tha {STRING} ùr ri fhaighinn a-nis! - {ENGINE} STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}Tha {STRING} ùr ri fhaighinn a-nis! - {ENGINE}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}Cha ghabh {STATION} ri {STRING} tuilleadh STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}Cha ghabh {STATION} ri {STRING} tuilleadh
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}Cha ghabh {STATION} ri {STRING} no {STRING} tuilleadh STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}Cha ghabh {STATION} ri {STRING} no {STRING} tuilleadh
STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}Gabhaidh {STATION} ri {STRING} a-nis STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}Gabhaidh {STATION} ri {STRING} a-nis
@@ -4293,6 +4291,7 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Cleachd
STR_AI_LIST_CANCEL :{BLACK}Sguir dheth STR_AI_LIST_CANCEL :{BLACK}Sguir dheth
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Na atharraich an sgriobt STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Na atharraich an sgriobt
# AI Parameters # AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}Paramadairean aig {STRING} STR_AI_SETTINGS_CAPTION :{WHITE}Paramadairean aig {STRING}
STR_AI_SETTINGS_CAPTION_AI :IF STR_AI_SETTINGS_CAPTION_AI :IF

View File

@@ -479,9 +479,6 @@ STR_ABOUT_MENU_SEPARATOR :
STR_ABOUT_MENU_TOGGLE_CONSOLE :(Des)Activar consola STR_ABOUT_MENU_TOGGLE_CONSOLE :(Des)Activar consola
STR_ABOUT_MENU_AI_DEBUG :Depuración IA/script do xogo STR_ABOUT_MENU_AI_DEBUG :Depuración IA/script do xogo
STR_ABOUT_MENU_SCREENSHOT :Captura de pantalla STR_ABOUT_MENU_SCREENSHOT :Captura de pantalla
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Achegar área capturada
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Zoom de captura de pantalla por defecto
STR_ABOUT_MENU_GIANT_SCREENSHOT :Captura de pantalla do mapa completo
STR_ABOUT_MENU_SHOW_FRAMERATE :Mostrar frame rate STR_ABOUT_MENU_SHOW_FRAMERATE :Mostrar frame rate
STR_ABOUT_MENU_ABOUT_OPENTTD :Acerca de 'OpenTTD' STR_ABOUT_MENU_ABOUT_OPENTTD :Acerca de 'OpenTTD'
STR_ABOUT_MENU_SPRITE_ALIGNER :Aliñador de sprites STR_ABOUT_MENU_SPRITE_ALIGNER :Aliñador de sprites
@@ -871,6 +868,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}Nova {STRING} dispoñíbel! - {ENGINE} STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}Nova {STRING} dispoñíbel! - {ENGINE}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} xa non acepta máis {STRING} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} xa non acepta máis {STRING}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} xa non acepta máis {STRING} nin {STRING} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} xa non acepta máis {STRING} nin {STRING}
STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} agora acepta {STRING} STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} agora acepta {STRING}
@@ -4173,6 +4171,7 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Seleccio
STR_AI_LIST_CANCEL :{BLACK}Cancelar STR_AI_LIST_CANCEL :{BLACK}Cancelar
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Non cambia-lo script STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Non cambia-lo script
# AI Parameters # AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parámetros STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parámetros
STR_AI_SETTINGS_CAPTION_AI :IA STR_AI_SETTINGS_CAPTION_AI :IA

View File

@@ -479,9 +479,6 @@ STR_ABOUT_MENU_SEPARATOR :
STR_ABOUT_MENU_TOGGLE_CONSOLE :Konsole öffnen/schließen STR_ABOUT_MENU_TOGGLE_CONSOLE :Konsole öffnen/schließen
STR_ABOUT_MENU_AI_DEBUG :KI / Skript-Debug STR_ABOUT_MENU_AI_DEBUG :KI / Skript-Debug
STR_ABOUT_MENU_SCREENSHOT :Screenshot (Standard: Strg+S) STR_ABOUT_MENU_SCREENSHOT :Screenshot (Standard: Strg+S)
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Screenshot in Nahaufnahme
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Screenshot mit normalem Zoom
STR_ABOUT_MENU_GIANT_SCREENSHOT :Riesiger Screenshot (Standard: Strg+G)
STR_ABOUT_MENU_SHOW_FRAMERATE :Bildwiederholrate anzeigen STR_ABOUT_MENU_SHOW_FRAMERATE :Bildwiederholrate anzeigen
STR_ABOUT_MENU_ABOUT_OPENTTD :Über OpenTTD STR_ABOUT_MENU_ABOUT_OPENTTD :Über OpenTTD
STR_ABOUT_MENU_SPRITE_ALIGNER :Sprite-Ausrichtung STR_ABOUT_MENU_SPRITE_ALIGNER :Sprite-Ausrichtung
@@ -873,6 +870,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}Neue{G r "" s ""} {STRING} jetzt erhältlich! - {ENGINE} STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}Neue{G r "" s ""} {STRING} jetzt erhältlich! - {ENGINE}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} nimmt kein{G "en" "e" "" "e"} {STRING} mehr an STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} nimmt kein{G "en" "e" "" "e"} {STRING} mehr an
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} nimmt kein{G "en" "e" "" "e"} {STRING} und kein{G "en" "e" "" "e"} {STRING} mehr an STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} nimmt kein{G "en" "e" "" "e"} {STRING} und kein{G "en" "e" "" "e"} {STRING} mehr an
STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} nimmt jetzt auch {STRING} an STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} nimmt jetzt auch {STRING} an
@@ -1002,6 +1000,7 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :Doppelt
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Vierfach STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Vierfach
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Doppelt
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Basisgrafiken STR_GAME_OPTIONS_BASE_GRF :{BLACK}Basisgrafiken
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Zu benutzendes Set an Basisgrafiken auswählen STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Zu benutzendes Set an Basisgrafiken auswählen
@@ -1185,6 +1184,7 @@ STR_CONFIG_SETTING_AUTOSLOPE :Landschaftsbau
STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Erlaube Erdbauarbeiten unter Gebäuden oder Infrastruktur ohne sie zu entfernen STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Erlaube Erdbauarbeiten unter Gebäuden oder Infrastruktur ohne sie zu entfernen
STR_CONFIG_SETTING_CATCHMENT :Verschiedene Stationstypen haben unterschiedlich große Einzugsgebiete: {STRING} STR_CONFIG_SETTING_CATCHMENT :Verschiedene Stationstypen haben unterschiedlich große Einzugsgebiete: {STRING}
STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Wird diese Option eingeschaltet, besitzen unterschiedliche Stationsarten bzw. Flughäfen unterschiedlich große Einzugsgebiete STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Wird diese Option eingeschaltet, besitzen unterschiedliche Stationsarten bzw. Flughäfen unterschiedlich große Einzugsgebiete
STR_CONFIG_SETTING_SERVE_NEUTRAL_INDUSTRIES_HELPTEXT :Falls aktiv, können Industrien mit integrierter Haltestelle (wie Ölbohrtürme) auch von nahegelegenen Stationen der Spieler bedient werden. Falls inaktive, können diese Industrien ausschließlich mittels ihrer eigenen Stationen bedient werden. Die integrierten Stationen bedienen dabei keine anderen Industrien in der Nähe
STR_CONFIG_SETTING_CATCHMENT_INCREASE :Vergrößere das Stationseinzugsgebiet: {STRING} STR_CONFIG_SETTING_CATCHMENT_INCREASE :Vergrößere das Stationseinzugsgebiet: {STRING}
STR_CONFIG_SETTING_CATCHMENT_INCREASE_HELPTEXT :Vergrößere das Stationseinzugsgebiet um die angegebene Anzahl an Kacheln STR_CONFIG_SETTING_CATCHMENT_INCREASE_HELPTEXT :Vergrößere das Stationseinzugsgebiet um die angegebene Anzahl an Kacheln
STR_CONFIG_SETTING_EXTRADYNAMITE :Entfernung von weiteren Straßen, Brücken usw. erlauben: {STRING} STR_CONFIG_SETTING_EXTRADYNAMITE :Entfernung von weiteren Straßen, Brücken usw. erlauben: {STRING}
@@ -1567,6 +1567,8 @@ STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :KI im Mehrspiel
STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT :Erlaube die Teilnahme von Computerspielern im Mehrspielermodus STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT :Erlaube die Teilnahme von Computerspielern im Mehrspielermodus
STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :Rechenoperationen, bevor das Skript angehalten wird: {STRING} STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :Rechenoperationen, bevor das Skript angehalten wird: {STRING}
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_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_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}
@@ -1691,6 +1693,8 @@ STR_CONFIG_SETTING_TOWN_FOUNDING_HELPTEXT :Erlaube Spieler
STR_CONFIG_SETTING_TOWN_FOUNDING_FORBIDDEN :Verboten STR_CONFIG_SETTING_TOWN_FOUNDING_FORBIDDEN :Verboten
STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED :Erlaubt STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED :Erlaubt
STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED_CUSTOM_LAYOUT :Erlaubt, mit wählbarem Straßenbauplan STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED_CUSTOM_LAYOUT :Erlaubt, mit wählbarem Straßenbauplan
STR_CONFIG_SETTING_TOWN_CARGOGENMODE_ORIGINAL :Quadratisch (orginal)
STR_CONFIG_SETTING_TOWN_CARGOGENMODE_BITCOUNT :Linear
STR_CONFIG_SETTING_TOWN_CARGO_FACTOR :Faktor für die Erzeugung von städtischer Fracht (weniger < 0 < mehr): {STRING} STR_CONFIG_SETTING_TOWN_CARGO_FACTOR :Faktor für die Erzeugung von städtischer Fracht (weniger < 0 < mehr): {STRING}
STR_CONFIG_SETTING_TOWN_CARGO_FACTOR_HELPTEXT :Passagiere, Post und andere städtische Frachtproduktion wird um ungefähr 2^Faktor (exponentiell) skaliert. STR_CONFIG_SETTING_TOWN_CARGO_FACTOR_HELPTEXT :Passagiere, Post und andere städtische Frachtproduktion wird um ungefähr 2^Faktor (exponentiell) skaliert.
@@ -2239,6 +2243,7 @@ STR_NETWORK_CONNECTION_DISCONNECT :{BLACK}Trennen
STR_NETWORK_NEED_GAME_PASSWORD_CAPTION :{WHITE}Server ist geschützt. Passwort eingeben: STR_NETWORK_NEED_GAME_PASSWORD_CAPTION :{WHITE}Server ist geschützt. Passwort eingeben:
STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION :{WHITE}Firma ist geschützt. Passwort eingeben: STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION :{WHITE}Firma ist geschützt. Passwort eingeben:
STR_NETWORK_COMPANY_LIST_CLIENT_LIST_CAPTION :{WHITE}Teilnehmerliste
# Network company list added strings # Network company list added strings
STR_NETWORK_COMPANY_LIST_CLIENT_LIST :Teilnehmerliste STR_NETWORK_COMPANY_LIST_CLIENT_LIST :Teilnehmerliste
@@ -2816,6 +2821,8 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Straßen
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Zwischen Bau und Abriss der Straße umschalten STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Zwischen Bau und Abriss der Straße umschalten
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Zwischen Bau und Abriss von Straßenbahngleisen umschalten STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Zwischen Bau und Abriss von Straßenbahngleisen umschalten
STR_ROAD_NAME_ROAD :Straße
STR_ROAD_NAME_TRAM :Straßenbahngleis
# Road depot construction window # Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Ausrichtung Depot STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Ausrichtung Depot
@@ -3035,6 +3042,7 @@ STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STR
STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Gleistyp: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Gleistyp: {LTBLUE}{STRING}
STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Höchstgeschwindigkeit Schiene: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Höchstgeschwindigkeit Schiene: {LTBLUE}{VELOCITY}
STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Höchstgeschwindigkeit Straße: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Höchstgeschwindigkeit Straße: {LTBLUE}{VELOCITY}
STR_LANG_AREA_INFORMATION_TRAM_SPEED_LIMIT :{BLACK}Höchstgeschwindigkeit Straßenbahn: {LTBLUE}{VELOCITY}
# Description of land area of different tiles # Description of land area of different tiles
STR_LAI_CLEAR_DESCRIPTION_ROCKS :Felsen STR_LAI_CLEAR_DESCRIPTION_ROCKS :Felsen
@@ -3165,6 +3173,7 @@ 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_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!!
@@ -3180,6 +3189,7 @@ STR_FRAMERATE_DRAWING :{BLACK}Grafik-R
STR_FRAMERATE_DRAWING_VIEWPORTS :{BLACK}Kartenansichten: STR_FRAMERATE_DRAWING_VIEWPORTS :{BLACK}Kartenansichten:
STR_FRAMERATE_VIDEO :{BLACK}Videoausgabe: STR_FRAMERATE_VIDEO :{BLACK}Videoausgabe:
STR_FRAMERATE_SOUND :{BLACK}Sound-Abmischung: STR_FRAMERATE_SOUND :{BLACK}Sound-Abmischung:
STR_FRAMERATE_GAMESCRIPT :{BLACK} Script:
############ 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 :Spielschleife STR_FRAMETIME_CAPTION_GAMELOOP :Spielschleife
@@ -3528,6 +3538,8 @@ STR_TOWN_VIEW_RENAME_TOWN_BUTTON :Stadt umbenenne
# Town local authority window # Town local authority window
STR_LOCAL_AUTHORITY_CAPTION :{WHITE}Stadtverwaltung {TOWN} STR_LOCAL_AUTHORITY_CAPTION :{WHITE}Stadtverwaltung {TOWN}
STR_LOCAL_AUTHORITY_ZONE :{BLACK}Zone
STR_LOCAL_AUTHORITY_ZONE_TOOLTIP :{BLACK}Zeige Zone der Stadtverwaltung
STR_LOCAL_AUTHORITY_COMPANY_RATINGS :{BLACK}Bewertung der Transportfirma: STR_LOCAL_AUTHORITY_COMPANY_RATINGS :{BLACK}Bewertung der Transportfirma:
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}Verfügbare Maßnahmen: STR_LOCAL_AUTHORITY_ACTIONS_TITLE :{BLACK}Verfügbare Maßnahmen:
@@ -3894,6 +3906,7 @@ STR_COMPANY_INFRASTRUCTURE_VIEW_TOTAL :{WHITE}{CURRENC
STR_INDUSTRY_DIRECTORY_CAPTION :{WHITE}Industrien STR_INDUSTRY_DIRECTORY_CAPTION :{WHITE}Industrien
STR_INDUSTRY_DIRECTORY_NONE :{ORANGE}- Keine - STR_INDUSTRY_DIRECTORY_NONE :{ORANGE}- Keine -
STR_INDUSTRY_DIRECTORY_ITEM_NOPROD :{ORANGE}{INDUSTRY} STR_INDUSTRY_DIRECTORY_ITEM_NOPROD :{ORANGE}{INDUSTRY}
STR_INDUSTRY_DIRECTORY_ITEM_PROD2 :{ORANGE}{INDUSTRY} {STRING}, {STRING}
STR_INDUSTRY_DIRECTORY_LIST_CAPTION :{BLACK}Industrienamen - Klick auf den Namen zentriert Hauptansicht auf die Industrie. Strg+Klick öffnet neue Zusatzansicht zentriert auf die Industrie STR_INDUSTRY_DIRECTORY_LIST_CAPTION :{BLACK}Industrienamen - Klick auf den Namen zentriert Hauptansicht auf die Industrie. Strg+Klick öffnet neue Zusatzansicht zentriert auf die Industrie
# Industry view # Industry view
@@ -3975,6 +3988,7 @@ STR_GROUP_DEFAULT_ROAD_VEHICLES :Ungruppierte St
STR_GROUP_DEFAULT_SHIPS :Ungruppierte Schiffe STR_GROUP_DEFAULT_SHIPS :Ungruppierte Schiffe
STR_GROUP_DEFAULT_AIRCRAFTS :Ungruppierte Flugzeuge STR_GROUP_DEFAULT_AIRCRAFTS :Ungruppierte Flugzeuge
STR_GROUP_COUNT_WITH_SUBGROUP :{TINY_FONT}{COMMA} (+{COMMA})
STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Gruppen - Klick auf eine Gruppe zeigt Liste aller Fahrzeuge der Gruppe an STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Gruppen - Klick auf eine Gruppe zeigt Liste aller Fahrzeuge der Gruppe an
STR_GROUP_CREATE_TOOLTIP :{BLACK}Neue Gruppe erstellen STR_GROUP_CREATE_TOOLTIP :{BLACK}Neue Gruppe erstellen
@@ -4025,6 +4039,7 @@ STR_PURCHASE_INFO_RELIABILITY :{BLACK}Max. Zuv
STR_PURCHASE_INFO_COST :{BLACK}Kosten: {GOLD}{CURRENCY_LONG} STR_PURCHASE_INFO_COST :{BLACK}Kosten: {GOLD}{CURRENCY_LONG}
STR_PURCHASE_INFO_WEIGHT_CWEIGHT :{BLACK}Gewicht: {GOLD}{WEIGHT_SHORT} ({WEIGHT_SHORT}) STR_PURCHASE_INFO_WEIGHT_CWEIGHT :{BLACK}Gewicht: {GOLD}{WEIGHT_SHORT} ({WEIGHT_SHORT})
STR_PURCHASE_INFO_COST_SPEED :{BLACK}Kosten: {GOLD}{CURRENCY_LONG}{BLACK} Geschw.: {GOLD}{VELOCITY} STR_PURCHASE_INFO_COST_SPEED :{BLACK}Kosten: {GOLD}{CURRENCY_LONG}{BLACK} Geschw.: {GOLD}{VELOCITY}
STR_PURCHASE_INFO_COST_REFIT_SPEED :{BLACK}Kosten: {GOLD}{CURRENCY_LONG}{BLACK} (Kosten der Umrüstung: {GOLD}{CURRENCY_LONG}{BLACK}) Geschwindigkeit: {GOLD}{VELOCITY}
STR_PURCHASE_INFO_AIRCRAFT_CAPACITY :{BLACK}Kapazität: {GOLD}{CARGO_LONG}, {CARGO_LONG} STR_PURCHASE_INFO_AIRCRAFT_CAPACITY :{BLACK}Kapazität: {GOLD}{CARGO_LONG}, {CARGO_LONG}
STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Angetriebene Waggons: {GOLD}+{POWER}{BLACK} Gewicht: {GOLD}+{WEIGHT_SHORT} STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Angetriebene Waggons: {GOLD}+{POWER}{BLACK} Gewicht: {GOLD}+{WEIGHT_SHORT}
STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Umrüstbar auf: {GOLD}{STRING} STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Umrüstbar auf: {GOLD}{STRING}
@@ -4165,6 +4180,7 @@ STR_ENGINE_PREVIEW_CAPTION :{WHITE}Nachrich
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Wir haben {G "einen" "eine" "ein" ""} neue{G n "" s ""} {0:STRING} entwickelt.{}Besteht Interesse, {G 0 den die das die} {0:STRING} ein Jahr lang exklusiv zu nutzen, so dass wir die Funktionen testen können, bevor {G 0 er sie es sie} allgemein zur Verfügung gestellt {G 0 wird wird wird werden}? STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Wir haben {G "einen" "eine" "ein" ""} neue{G n "" s ""} {0:STRING} entwickelt.{}Besteht Interesse, {G 0 den die das die} {0:STRING} ein Jahr lang exklusiv zu nutzen, so dass wir die Funktionen testen können, bevor {G 0 er sie es sie} allgemein zur Verfügung gestellt {G 0 wird wird wird werden}?
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :{G=w}Lokomotive STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :{G=w}Lokomotive
STR_ENGINE_PREVIEW_ELRAIL_LOCOMOTIVE :Elektrifizierte Lokomotive
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :{G=w}Einschienenbahn STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :{G=w}Einschienenbahn
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=w}Magnetschwebebahn STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=w}Magnetschwebebahn
@@ -4218,6 +4234,7 @@ STR_REPLACE_ELRAIL_VEHICLES :elektrische Sch
STR_REPLACE_MONORAIL_VEHICLES :Einschienenbahn STR_REPLACE_MONORAIL_VEHICLES :Einschienenbahn
STR_REPLACE_MAGLEV_VEHICLES :Magnetschwebebahn STR_REPLACE_MAGLEV_VEHICLES :Magnetschwebebahn
STR_REPLACE_TRAM_VEHICLES :Straßenbahnfahrzeuge
STR_REPLACE_REMOVE_WAGON :{BLACK}Waggon-Entfernung: {ORANGE}{STRING} STR_REPLACE_REMOVE_WAGON :{BLACK}Waggon-Entfernung: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Ursprüngliche Länge des Zugs beibehalten, indem (vorne beginnend) Waggons entfernt werden, falls das Ersetzen der Lokomotive den Zug verlängern würde STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Ursprüngliche Länge des Zugs beibehalten, indem (vorne beginnend) Waggons entfernt werden, falls das Ersetzen der Lokomotive den Zug verlängern würde
@@ -4777,6 +4794,7 @@ 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
# AI Parameters # AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parameter STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parameter
STR_AI_SETTINGS_CAPTION_AI :KI STR_AI_SETTINGS_CAPTION_AI :KI
@@ -5098,6 +5116,7 @@ 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_TRAMWAY :{WHITE}Straßenbahngleistyp kann hier nicht geändert werden...
# 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

@@ -534,9 +534,6 @@ STR_ABOUT_MENU_SEPARATOR :
STR_ABOUT_MENU_TOGGLE_CONSOLE :Εναλλαγή κονσόλας STR_ABOUT_MENU_TOGGLE_CONSOLE :Εναλλαγή κονσόλας
STR_ABOUT_MENU_AI_DEBUG :Αποσφαλμάτωση AI και δέσμης ενεργειών παιχνιδιού STR_ABOUT_MENU_AI_DEBUG :Αποσφαλμάτωση AI και δέσμης ενεργειών παιχνιδιού
STR_ABOUT_MENU_SCREENSHOT :Στιγμιότυπο οθόνης STR_ABOUT_MENU_SCREENSHOT :Στιγμιότυπο οθόνης
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Στιγμιότυπο οθόνης μέγιστης μεγέθυνσης
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Στιγμιότυπο οθόνης τυπικής μεγέθυνσης
STR_ABOUT_MENU_GIANT_SCREENSHOT :Στιγμιότυπο οθόνης για ολό τον χάρτη
STR_ABOUT_MENU_SHOW_FRAMERATE :Εμφάνιση ρυθμού καρέ STR_ABOUT_MENU_SHOW_FRAMERATE :Εμφάνιση ρυθμού καρέ
STR_ABOUT_MENU_ABOUT_OPENTTD :Σχετικά με το 'OpenTTD' STR_ABOUT_MENU_ABOUT_OPENTTD :Σχετικά με το 'OpenTTD'
STR_ABOUT_MENU_SPRITE_ALIGNER :Ευθυγραμμιστής στοιχεών STR_ABOUT_MENU_SPRITE_ALIGNER :Ευθυγραμμιστής στοιχεών
@@ -972,6 +969,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}Ένα νέο {STRING} είναι πλέον διαθέσιμο! - {ENGINE} STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}Ένα νέο {STRING} είναι πλέον διαθέσιμο! - {ENGINE}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}Ο σταθμός {STATION} δεν δέχεται πια {STRING} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}Ο σταθμός {STATION} δεν δέχεται πια {STRING}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}Ο σταθμός {STATION} δεν δέχεται πια ούτε {STRING} ούτε {STRING} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}Ο σταθμός {STATION} δεν δέχεται πια ούτε {STRING} ούτε {STRING}
STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}Ο σταθμός {STATION} τώρα δέχεται {STRING} STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}Ο σταθμός {STATION} τώρα δέχεται {STRING}
@@ -4244,6 +4242,7 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Αποδ
STR_AI_LIST_CANCEL :{BLACK}Άκυρωση STR_AI_LIST_CANCEL :{BLACK}Άκυρωση
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Να μην γίνει αλλαγή δέσμης ενεργειών STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Να μην γίνει αλλαγή δέσμης ενεργειών
# AI Parameters # AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Παράμετροι STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Παράμετροι
STR_AI_SETTINGS_CAPTION_AI :AI STR_AI_SETTINGS_CAPTION_AI :AI

View File

@@ -484,9 +484,6 @@ STR_ABOUT_MENU_SEPARATOR :
STR_ABOUT_MENU_TOGGLE_CONSOLE :פתח/סגור קונסולה STR_ABOUT_MENU_TOGGLE_CONSOLE :פתח/סגור קונסולה
STR_ABOUT_MENU_AI_DEBUG :דיבאג של סקריפטים של בינה מלאכותית או של המשחק STR_ABOUT_MENU_AI_DEBUG :דיבאג של סקריפטים של בינה מלאכותית או של המשחק
STR_ABOUT_MENU_SCREENSHOT :צילום מסך STR_ABOUT_MENU_SCREENSHOT :צילום מסך
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :צילום מסך בהגדלה מלאה
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :ברירת מחדל של תקריב צילום מסך
STR_ABOUT_MENU_GIANT_SCREENSHOT :צילום מסך ענק
STR_ABOUT_MENU_SHOW_FRAMERATE :הצג קצב פריימים STR_ABOUT_MENU_SHOW_FRAMERATE :הצג קצב פריימים
STR_ABOUT_MENU_ABOUT_OPENTTD :'OpenTTD'{NBSP}אודות STR_ABOUT_MENU_ABOUT_OPENTTD :'OpenTTD'{NBSP}אודות
STR_ABOUT_MENU_SPRITE_ALIGNER :מיישר ספרייטים STR_ABOUT_MENU_SPRITE_ALIGNER :מיישר ספרייטים
@@ -874,6 +871,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}{STRING} חדש זמין כעת - {ENGINE}! STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}{STRING} חדש זמין כעת - {ENGINE}!
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} אינה מקבלת יותר {STRING} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} אינה מקבלת יותר {STRING}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} אינה מקבלת יותר {STRING} או {STRING} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} אינה מקבלת יותר {STRING} או {STRING}
STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} מקבלת כעת {STRING} STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} מקבלת כעת {STRING}
@@ -4072,6 +4070,7 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK} בחר
STR_AI_LIST_CANCEL :{BLACK}בטל STR_AI_LIST_CANCEL :{BLACK}בטל
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}אל תשנה את התסריט STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}אל תשנה את התסריט
# AI Parameters # AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} פרמטרים STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} פרמטרים
STR_AI_SETTINGS_CAPTION_AI :שחקן מחשב STR_AI_SETTINGS_CAPTION_AI :שחקן מחשב

View File

@@ -541,9 +541,6 @@ STR_ABOUT_MENU_SEPARATOR :
STR_ABOUT_MENU_TOGGLE_CONSOLE :Átváltás konzolra STR_ABOUT_MENU_TOGGLE_CONSOLE :Átváltás konzolra
STR_ABOUT_MENU_AI_DEBUG :MI / Játékszkript nyomkövetés STR_ABOUT_MENU_AI_DEBUG :MI / Játékszkript nyomkövetés
STR_ABOUT_MENU_SCREENSHOT :Képmentés STR_ABOUT_MENU_SCREENSHOT :Képmentés
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Teljes nagyítású képmentés
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Alapértelmezett nagyítású képmentés
STR_ABOUT_MENU_GIANT_SCREENSHOT :Képmentés teljes térképről
STR_ABOUT_MENU_SHOW_FRAMERATE :FPS ablak STR_ABOUT_MENU_SHOW_FRAMERATE :FPS ablak
STR_ABOUT_MENU_ABOUT_OPENTTD :Az 'OpenTTD'-ről STR_ABOUT_MENU_ABOUT_OPENTTD :Az 'OpenTTD'-ről
STR_ABOUT_MENU_SPRITE_ALIGNER :Sprite elhelyező STR_ABOUT_MENU_SPRITE_ALIGNER :Sprite elhelyező
@@ -934,6 +931,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}Új {STRING} elérhető! - {ENGINE} STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}Új {STRING} elérhető! - {ENGINE}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} többé nem fogad el {STRING.t} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} többé nem fogad el {STRING.t}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} többé nem fogad el {STRING.t} és {STRING.t} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} többé nem fogad el {STRING.t} és {STRING.t}
STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} most már elfogad {STRING.t} STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} most már elfogad {STRING.t}
@@ -4230,6 +4228,7 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}A kijel
STR_AI_LIST_CANCEL :{BLACK}Mégsem STR_AI_LIST_CANCEL :{BLACK}Mégsem
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Ne változtassa a szkriptet STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Ne változtassa a szkriptet
# AI Parameters # AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Paraméterek STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Paraméterek
STR_AI_SETTINGS_CAPTION_AI :MI STR_AI_SETTINGS_CAPTION_AI :MI

View File

@@ -448,9 +448,6 @@ STR_ABOUT_MENU_SEPARATOR :
STR_ABOUT_MENU_TOGGLE_CONSOLE :Kveikja á stýriskjá STR_ABOUT_MENU_TOGGLE_CONSOLE :Kveikja á stýriskjá
STR_ABOUT_MENU_AI_DEBUG :Aflúsun gervigreindar/forskrifta STR_ABOUT_MENU_AI_DEBUG :Aflúsun gervigreindar/forskrifta
STR_ABOUT_MENU_SCREENSHOT :Skjámynd STR_ABOUT_MENU_SCREENSHOT :Skjámynd
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Súmuð inn skjáskot
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Taka skjáskot af súmi
STR_ABOUT_MENU_GIANT_SCREENSHOT :Risa skjámynd
STR_ABOUT_MENU_ABOUT_OPENTTD :Um 'OpenTTD' STR_ABOUT_MENU_ABOUT_OPENTTD :Um 'OpenTTD'
STR_ABOUT_MENU_SPRITE_ALIGNER :Samstilla hreyfimynd STR_ABOUT_MENU_SPRITE_ALIGNER :Samstilla hreyfimynd
STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Sýna/fela afmörkunar kassa STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Sýna/fela afmörkunar kassa
@@ -827,6 +824,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}Ný {STRING} er nú fáanleg! - {ENGINE} STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}Ný {STRING} er nú fáanleg! - {ENGINE}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} tekur ekki lengur við {STRING} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} tekur ekki lengur við {STRING}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} tekur ekki lengur við {STRING} eða {STRING} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} tekur ekki lengur við {STRING} eða {STRING}
STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} tekur nú við {STRING} STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} tekur nú við {STRING}
@@ -3766,6 +3764,7 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Velja me
STR_AI_LIST_CANCEL :{BLACK}Hætta við STR_AI_LIST_CANCEL :{BLACK}Hætta við
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Hætta við breytingar forskriftar STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Hætta við breytingar forskriftar
# AI Parameters # AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} breytur STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} breytur
STR_AI_SETTINGS_CAPTION_AI :Gervigreindar STR_AI_SETTINGS_CAPTION_AI :Gervigreindar

View File

@@ -472,9 +472,6 @@ STR_ABOUT_MENU_SEPARATOR :
STR_ABOUT_MENU_TOGGLE_CONSOLE :Hidup/matikan Layar Konsol STR_ABOUT_MENU_TOGGLE_CONSOLE :Hidup/matikan Layar Konsol
STR_ABOUT_MENU_AI_DEBUG :Debug skrip AI STR_ABOUT_MENU_AI_DEBUG :Debug skrip AI
STR_ABOUT_MENU_SCREENSHOT :Ambil gambar STR_ABOUT_MENU_SCREENSHOT :Ambil gambar
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Ambil gambar dengan diperbesar
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Ambil gambar dengan perbesaran normal
STR_ABOUT_MENU_GIANT_SCREENSHOT :Ambil gambar keseluruhan peta
STR_ABOUT_MENU_SHOW_FRAMERATE :Tampilkan laju bingkai STR_ABOUT_MENU_SHOW_FRAMERATE :Tampilkan laju bingkai
STR_ABOUT_MENU_ABOUT_OPENTTD :Tentang 'OpenTTD' STR_ABOUT_MENU_ABOUT_OPENTTD :Tentang 'OpenTTD'
STR_ABOUT_MENU_SPRITE_ALIGNER :Penjajar Sprite STR_ABOUT_MENU_SPRITE_ALIGNER :Penjajar Sprite
@@ -863,6 +860,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}{STRING} jenis baru telah diluncurkan! - {ENGINE} STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}{STRING} jenis baru telah diluncurkan! - {ENGINE}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} tidak lagi menerima {STRING} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} tidak lagi menerima {STRING}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} tidak lagi menerima {STRING} atau {STRING} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} tidak lagi menerima {STRING} atau {STRING}
STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} Sekarang menerima {STRING} STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} Sekarang menerima {STRING}
@@ -4065,6 +4063,7 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Pilih sk
STR_AI_LIST_CANCEL :{BLACK}Batal STR_AI_LIST_CANCEL :{BLACK}Batal
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Jangan mengubah skrip AI STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Jangan mengubah skrip AI
# AI Parameters # AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parameter STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parameter
STR_AI_SETTINGS_CAPTION_AI :AI STR_AI_SETTINGS_CAPTION_AI :AI

View File

@@ -470,9 +470,6 @@ STR_ABOUT_MENU_SEPARATOR :
STR_ABOUT_MENU_TOGGLE_CONSOLE :Scoránaigh consól STR_ABOUT_MENU_TOGGLE_CONSOLE :Scoránaigh consól
STR_ABOUT_MENU_AI_DEBUG :Dífhabhtú AI/Scripteanna Cluiche STR_ABOUT_MENU_AI_DEBUG :Dífhabhtú AI/Scripteanna Cluiche
STR_ABOUT_MENU_SCREENSHOT :Seat scáileáin STR_ABOUT_MENU_SCREENSHOT :Seat scáileáin
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Seat scáileáin zúmáilte isteach go hiomlán
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Seat scáileáin le zúm réamhshocraithe
STR_ABOUT_MENU_GIANT_SCREENSHOT :Seat scáileáin den léarscáil ar fad
STR_ABOUT_MENU_ABOUT_OPENTTD :Maidir le 'OpenTTD' STR_ABOUT_MENU_ABOUT_OPENTTD :Maidir le 'OpenTTD'
STR_ABOUT_MENU_SPRITE_ALIGNER :Ailínóir spriteanna STR_ABOUT_MENU_SPRITE_ALIGNER :Ailínóir spriteanna
STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Scoránaigh boscaí imill STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Scoránaigh boscaí imill
@@ -856,6 +853,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}Tá {STRING} nua ar fáil anois! - {ENGINE} STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}Tá {STRING} nua ar fáil anois! - {ENGINE}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}Ní ghlacann {STATION} le {STRING} a thuilleadh STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}Ní ghlacann {STATION} le {STRING} a thuilleadh
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}Ní ghlacann {STATION} le {STRING} ná le {STRING} a thuilleadh STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}Ní ghlacann {STATION} le {STRING} ná le {STRING} a thuilleadh
STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}Glacann {STATION} le {STRING} anois STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}Glacann {STATION} le {STRING} anois
@@ -3998,6 +3996,7 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Roghnaig
STR_AI_LIST_CANCEL :{BLACK}Cuir ar ceal STR_AI_LIST_CANCEL :{BLACK}Cuir ar ceal
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Ná hathraigh an AI STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Ná hathraigh an AI
# AI Parameters # AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}Paraiméadair {STRING} STR_AI_SETTINGS_CAPTION :{WHITE}Paraiméadair {STRING}
STR_AI_SETTINGS_CAPTION_AI :AI STR_AI_SETTINGS_CAPTION_AI :AI

View File

@@ -480,9 +480,6 @@ STR_ABOUT_MENU_SEPARATOR :
STR_ABOUT_MENU_TOGGLE_CONSOLE :Apri/chiudi console STR_ABOUT_MENU_TOGGLE_CONSOLE :Apri/chiudi console
STR_ABOUT_MENU_AI_DEBUG :Debug IA/Script STR_ABOUT_MENU_AI_DEBUG :Debug IA/Script
STR_ABOUT_MENU_SCREENSHOT :Screenshot STR_ABOUT_MENU_SCREENSHOT :Screenshot
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Screenshot con zoom massimo
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Screenshot con zoom predefinito
STR_ABOUT_MENU_GIANT_SCREENSHOT :Screenshot intera mappa
STR_ABOUT_MENU_SHOW_FRAMERATE :Mostra frame rate STR_ABOUT_MENU_SHOW_FRAMERATE :Mostra frame rate
STR_ABOUT_MENU_ABOUT_OPENTTD :Informazioni su 'OpenTTD' STR_ABOUT_MENU_ABOUT_OPENTTD :Informazioni su 'OpenTTD'
STR_ABOUT_MENU_SPRITE_ALIGNER :Strumento allineamento sprite STR_ABOUT_MENU_SPRITE_ALIGNER :Strumento allineamento sprite
@@ -872,6 +869,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}Nuov{G o o a} {STRING} disponibile! - {ENGINE} STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}Nuov{G o o a} {STRING} disponibile! - {ENGINE}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} non accetta più {STRING} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} non accetta più {STRING}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} non accetta più {STRING} né {STRING} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} non accetta più {STRING} né {STRING}
STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} adesso accetta {STRING} STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} adesso accetta {STRING}
@@ -4195,6 +4193,7 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Sceglie
STR_AI_LIST_CANCEL :{BLACK}Annulla STR_AI_LIST_CANCEL :{BLACK}Annulla
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Non modifica lo script utilizzato STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Non modifica lo script utilizzato
# AI Parameters # AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}Parametri {STRING} STR_AI_SETTINGS_CAPTION :{WHITE}Parametri {STRING}
STR_AI_SETTINGS_CAPTION_AI :AI STR_AI_SETTINGS_CAPTION_AI :AI

View File

@@ -470,9 +470,6 @@ STR_ABOUT_MENU_SEPARATOR :―――――
STR_ABOUT_MENU_TOGGLE_CONSOLE :コンソールの表示切替 STR_ABOUT_MENU_TOGGLE_CONSOLE :コンソールの表示切替
STR_ABOUT_MENU_AI_DEBUG :AI/ゲームスクリプトのデバッグ STR_ABOUT_MENU_AI_DEBUG :AI/ゲームスクリプトのデバッグ
STR_ABOUT_MENU_SCREENSHOT :スクリーンショット撮影(現在のズーム) STR_ABOUT_MENU_SCREENSHOT :スクリーンショット撮影(現在のズーム)
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :スクリーンショット撮影(最大ズーム)
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :スクリーンショット撮影(標準ズーム)
STR_ABOUT_MENU_GIANT_SCREENSHOT :スクリーンショット撮影(マップ全体)
STR_ABOUT_MENU_ABOUT_OPENTTD :OpenTTDについて STR_ABOUT_MENU_ABOUT_OPENTTD :OpenTTDについて
STR_ABOUT_MENU_SPRITE_ALIGNER :スプライトを整列 STR_ABOUT_MENU_SPRITE_ALIGNER :スプライトを整列
STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :バウンディングボックスの表示切替 STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :バウンディングボックスの表示切替
@@ -856,6 +853,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}{STRING}が新登場! - {ENGINE} STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}{STRING}が新登場! - {ENGINE}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION}は今後{STRING}を受入れません STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION}は今後{STRING}を受入れません
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION}は今後{STRING}と{STRING}を受入れません STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION}は今後{STRING}と{STRING}を受入れません
STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION}は今後{STRING}を受入れます STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION}は今後{STRING}を受入れます
@@ -4065,6 +4063,7 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}選択
STR_AI_LIST_CANCEL :{BLACK}キャンセル STR_AI_LIST_CANCEL :{BLACK}キャンセル
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}スクリプトを変更しません STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}スクリプトを変更しません
# AI Parameters # AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} パラメータ STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} パラメータ
STR_AI_SETTINGS_CAPTION_AI :AI STR_AI_SETTINGS_CAPTION_AI :AI

View File

@@ -484,9 +484,6 @@ STR_ABOUT_MENU_SEPARATOR :
STR_ABOUT_MENU_TOGGLE_CONSOLE :콘솔 켜기/끄기 STR_ABOUT_MENU_TOGGLE_CONSOLE :콘솔 켜기/끄기
STR_ABOUT_MENU_AI_DEBUG :인공지능/게임 스크립트 디버그 STR_ABOUT_MENU_AI_DEBUG :인공지능/게임 스크립트 디버그
STR_ABOUT_MENU_SCREENSHOT :스크린샷 찍기 STR_ABOUT_MENU_SCREENSHOT :스크린샷 찍기
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :스크린샷 찍기 (지금 보고 있는 영역)
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :스크린샷 찍기 (창을 제외한 게임 화면만)
STR_ABOUT_MENU_GIANT_SCREENSHOT :스크린샷 찍기 (지도 전체)
STR_ABOUT_MENU_SHOW_FRAMERATE :프레임레이트 보기 STR_ABOUT_MENU_SHOW_FRAMERATE :프레임레이트 보기
STR_ABOUT_MENU_SHOW_TOGGLE_MODIFIER_KEYS :보조 키 창 STR_ABOUT_MENU_SHOW_TOGGLE_MODIFIER_KEYS :보조 키 창
STR_ABOUT_MENU_ABOUT_OPENTTD :'OpenTTD'에 대해서 STR_ABOUT_MENU_ABOUT_OPENTTD :'OpenTTD'에 대해서
@@ -880,6 +877,8 @@ 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}신형 {STRING}{G 0 "을" "를"} 사용할 수 있습니다! - {ENGINE} STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}신형 {STRING}{G 0 "을" "를"} 사용할 수 있습니다! - {ENGINE}
STR_NEWS_SHOW_VEHICLE_GROUP_TOOLTIP :{BLACK}이 차량이 속한 차량 그룹 목록 열기
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION}에서 더 이상 {STRING}{G 1 "을" "를"} 받지 않습니다. STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION}에서 더 이상 {STRING}{G 1 "을" "를"} 받지 않습니다.
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION}에서 더 이상 {STRING}/{STRING}{G 2 "을" "를"} 받지 않습니다. STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION}에서 더 이상 {STRING}/{STRING}{G 2 "을" "를"} 받지 않습니다.
STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION}에서 이제 {STRING}{G 1 "을" "를"} 받을 수 있습니다. STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION}에서 이제 {STRING}{G 1 "을" "를"} 받을 수 있습니다.
@@ -1701,6 +1700,10 @@ STR_CONFIG_SETTING_NEWS_MESSAGES_FULL :전체 메시
STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :컬러로 된 뉴스가 시작되는 해: {STRING}년 STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :컬러로 된 뉴스가 시작되는 해: {STRING}년
STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :신문이 컬러로 나오게 되는 연도를 설정합니다. 이 연도 이전까지는 신문이 흑백으로 나옵니다. STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :신문이 컬러로 나오게 되는 연도를 설정합니다. 이 연도 이전까지는 신문이 흑백으로 나옵니다.
STR_CONFIG_SETTING_STARTING_YEAR :시작 연도: {STRING} STR_CONFIG_SETTING_STARTING_YEAR :시작 연도: {STRING}
STR_CONFIG_SETTING_ENDING_YEAR :게임 종료 연도: {STRING}
STR_CONFIG_SETTING_ENDING_YEAR_HELPTEXT :점수를 기록할 게임 종료 연도를 설정합니다. 이 연도가 지나면, 회사의 점수가 고득점 순위표에 기록되어 표시됩니다. 하지만 플레이어는 계속해서 게임을 진행할 수 있습니다.{}이 값이 시작 연도보다 이전으로 설정되어 있다면, 고득점 순위표는 나타나지 않습니다.
STR_CONFIG_SETTING_ENDING_YEAR_VALUE :{NUM}
STR_CONFIG_SETTING_ENDING_YEAR_ZERO :안 함
STR_CONFIG_SETTING_SMOOTH_ECONOMY :부드러운 경제 변화 사용 (자주, 조금씩 변화): {STRING} STR_CONFIG_SETTING_SMOOTH_ECONOMY :부드러운 경제 변화 사용 (자주, 조금씩 변화): {STRING}
STR_CONFIG_SETTING_SMOOTH_ECONOMY_HELPTEXT :이 설정을 켜면, 1차 산업시설의 생산량이 소량으로 자주 변하게 됩니다. NewGRF로 추가한 산업시설에는 적용되지 않습니다. STR_CONFIG_SETTING_SMOOTH_ECONOMY_HELPTEXT :이 설정을 켜면, 1차 산업시설의 생산량이 소량으로 자주 변하게 됩니다. NewGRF로 추가한 산업시설에는 적용되지 않습니다.
STR_CONFIG_SETTING_ALLOW_SHARES :다른 회사의 지분을 사는 것을 허용: {STRING} STR_CONFIG_SETTING_ALLOW_SHARES :다른 회사의 지분을 사는 것을 허용: {STRING}
@@ -5039,6 +5042,13 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}선택
STR_AI_LIST_CANCEL :{BLACK}취소 STR_AI_LIST_CANCEL :{BLACK}취소
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}인공지능 스크립트를 바꾸지 않습니다 STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}인공지능 스크립트를 바꾸지 않습니다
STR_SCREENSHOT_CAPTION :{WHITE}스크린 샷 찍기
STR_SCREENSHOT_SCREENSHOT :{BLACK}일반 스크린 샷
STR_SCREENSHOT_ZOOMIN_SCREENSHOT :{BLACK}최대 확대 스크린 샷 (UI 없음)
STR_SCREENSHOT_DEFAULTZOOM_SCREENSHOT :{BLACK}기본 확대 스크린 샷 (UI 없음)
STR_SCREENSHOT_WORLD_SCREENSHOT :{BLACK}지도 전체 스크린 샷
STR_SCREENSHOT_HEIGHTMAP_SCREENSHOT :{BLACK}높이맵 스크린 샷
# AI Parameters # AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} 매개 변수 STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} 매개 변수
STR_AI_SETTINGS_CAPTION_AI :인공지능 STR_AI_SETTINGS_CAPTION_AI :인공지능
@@ -5523,7 +5533,7 @@ STR_ERROR_CAN_T_ADD_ORDER_SHARED :{WHITE}... 경
STR_ERROR_CAN_T_SHARE_ORDER_LIST :{WHITE}경로를 공유할 수 없습니다... STR_ERROR_CAN_T_SHARE_ORDER_LIST :{WHITE}경로를 공유할 수 없습니다...
STR_ERROR_CAN_T_STOP_SHARING_ORDER_LIST :{WHITE}경로 공유를 중단할 수 없습니다... STR_ERROR_CAN_T_STOP_SHARING_ORDER_LIST :{WHITE}경로 공유를 중단할 수 없습니다...
STR_ERROR_CAN_T_COPY_ORDER_LIST :{WHITE}경로를 복사할 수 없습니다... STR_ERROR_CAN_T_COPY_ORDER_LIST :{WHITE}경로를 복사할 수 없습니다...
STR_ERROR_TOO_FAR_FROM_PREVIOUS_DESTINATION :{WHITE}... 이전 목적지로부터 너무 니다 STR_ERROR_TOO_FAR_FROM_PREVIOUS_DESTINATION :{WHITE}... 이전 목적지에서 너무 멀리 떨어져 있습니다
STR_ERROR_AIRCRAFT_NOT_ENOUGH_RANGE :{WHITE}... 항공기의 항속거리가 충분하지 않습니다. STR_ERROR_AIRCRAFT_NOT_ENOUGH_RANGE :{WHITE}... 항공기의 항속거리가 충분하지 않습니다.
# Timetable related errors # Timetable related errors

View File

@@ -661,9 +661,6 @@ STR_ABOUT_MENU_SEPARATOR :
STR_ABOUT_MENU_TOGGLE_CONSOLE :Monstrare celareve consolam STR_ABOUT_MENU_TOGGLE_CONSOLE :Monstrare celareve consolam
STR_ABOUT_MENU_AI_DEBUG :Emendatio IA/Ludi scriptorum STR_ABOUT_MENU_AI_DEBUG :Emendatio IA/Ludi scriptorum
STR_ABOUT_MENU_SCREENSHOT :Imago conspectus STR_ABOUT_MENU_SCREENSHOT :Imago conspectus
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Imago conspectus maxime amplificata
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Imago conspectus solite amplificata
STR_ABOUT_MENU_GIANT_SCREENSHOT :Imago cunctae tabulae geographicae
STR_ABOUT_MENU_ABOUT_OPENTTD :De 'OpenTTD' STR_ABOUT_MENU_ABOUT_OPENTTD :De 'OpenTTD'
STR_ABOUT_MENU_SPRITE_ALIGNER :Norma spiritus STR_ABOUT_MENU_SPRITE_ALIGNER :Norma spiritus
STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Monstrare celareve arcas finitionum STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Monstrare celareve arcas finitionum
@@ -1052,6 +1049,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 us a um i ae a} {STRING} parabil{G 0 is is e es es ia}! - {ENGINE} STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}Nov{G us a um i ae a} {STRING} parabil{G 0 is is e es es ia}! - {ENGINE}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} non diutius {STRING.acc} accipit STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} non diutius {STRING.acc} accipit
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} non diutius {STRING.acc} {STRING.acc}que accipit STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} non diutius {STRING.acc} {STRING.acc}que accipit
STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} nunc {STRING.acc} accipit STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} nunc {STRING.acc} accipit
@@ -4293,6 +4291,7 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Eligere
STR_AI_LIST_CANCEL :{BLACK}Cancellare STR_AI_LIST_CANCEL :{BLACK}Cancellare
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Non scriptum mutare STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Non scriptum mutare
# AI Parameters # AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parametra STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parametra
STR_AI_SETTINGS_CAPTION_AI :IA STR_AI_SETTINGS_CAPTION_AI :IA

View File

@@ -470,9 +470,6 @@ STR_ABOUT_MENU_SEPARATOR :
STR_ABOUT_MENU_TOGGLE_CONSOLE :Atvērt/aizvērt konsoli STR_ABOUT_MENU_TOGGLE_CONSOLE :Atvērt/aizvērt konsoli
STR_ABOUT_MENU_AI_DEBUG :MI/spēles skriptu atkļūdošana STR_ABOUT_MENU_AI_DEBUG :MI/spēles skriptu atkļūdošana
STR_ABOUT_MENU_SCREENSHOT :Ekrānuzņēmums STR_ABOUT_MENU_SCREENSHOT :Ekrānuzņēmums
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Pilnībā pietuvināts ekrānuzņēmums
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Noklusējuma mēroga ekrānuzņēmums
STR_ABOUT_MENU_GIANT_SCREENSHOT :Visas kartes ekrānuzņēmums
STR_ABOUT_MENU_SHOW_FRAMERATE :Rādīt kadru ātrumu STR_ABOUT_MENU_SHOW_FRAMERATE :Rādīt kadru ātrumu
STR_ABOUT_MENU_ABOUT_OPENTTD :Par 'OpenTTD' STR_ABOUT_MENU_ABOUT_OPENTTD :Par 'OpenTTD'
STR_ABOUT_MENU_SPRITE_ALIGNER :Gariņu līdzinātājs STR_ABOUT_MENU_SPRITE_ALIGNER :Gariņu līdzinātājs
@@ -855,6 +852,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}Tagad ir pieejams jauns {STRING}! - {ENGINE} STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}Tagad ir pieejams jauns {STRING}! - {ENGINE}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} vairs nepieņem {STRING} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} vairs nepieņem {STRING}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} vairs nepieņem {STRING} vai {STRING} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} vairs nepieņem {STRING} vai {STRING}
STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} pieņem {STRING} STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} pieņem {STRING}
@@ -3935,6 +3933,7 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Izvēlē
STR_AI_LIST_CANCEL :{BLACK}Atcelt STR_AI_LIST_CANCEL :{BLACK}Atcelt
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Nemainīt skriptu STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Nemainīt skriptu
# AI Parameters # AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} parametri STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} parametri
STR_AI_SETTINGS_CAPTION_AI :MI STR_AI_SETTINGS_CAPTION_AI :MI

View File

@@ -665,9 +665,6 @@ STR_ABOUT_MENU_SEPARATOR :
STR_ABOUT_MENU_TOGGLE_CONSOLE :Perjungti konsolę STR_ABOUT_MENU_TOGGLE_CONSOLE :Perjungti konsolę
STR_ABOUT_MENU_AI_DEBUG :AI / GameScript derinimas STR_ABOUT_MENU_AI_DEBUG :AI / GameScript derinimas
STR_ABOUT_MENU_SCREENSHOT :Ekrano nuotrauka STR_ABOUT_MENU_SCREENSHOT :Ekrano nuotrauka
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Ekrano nuotrauka iš arti
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Nepriartintas ekrano vaizdas
STR_ABOUT_MENU_GIANT_SCREENSHOT :Fotografuoti viso ekrano vaizdą
STR_ABOUT_MENU_ABOUT_OPENTTD :Apie „OpenTTD“ STR_ABOUT_MENU_ABOUT_OPENTTD :Apie „OpenTTD“
STR_ABOUT_MENU_SPRITE_ALIGNER :Spruklių lygiuoklė STR_ABOUT_MENU_SPRITE_ALIGNER :Spruklių lygiuoklė
STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Rodyti/slėpti apvadus STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Rodyti/slėpti apvadus
@@ -1061,6 +1058,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}Naujas{STRING} - {ENGINE} STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}Naujas{STRING} - {ENGINE}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} nebepriima {STRING} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} nebepriima {STRING}
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} nebepriima {STRING} arba {STRING} STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} nebepriima {STRING} arba {STRING}
STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} jau priima {STRING} STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} jau priima {STRING}
@@ -4273,6 +4271,7 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Pasirink
STR_AI_LIST_CANCEL :{BLACK}Atšaukti STR_AI_LIST_CANCEL :{BLACK}Atšaukti
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Nekeisti skripto STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Nekeisti skripto
# AI Parameters # AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parametrai STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parametrai
STR_AI_SETTINGS_CAPTION_AI :DI STR_AI_SETTINGS_CAPTION_AI :DI

View File

@@ -235,6 +235,8 @@ STR_TOOLTIP_FILTER_CRITERIA :{BLACK}Filterkr
STR_BUTTON_SORT_BY :{BLACK}Sortéier no STR_BUTTON_SORT_BY :{BLACK}Sortéier no
STR_BUTTON_LOCATION :{BLACK}Plaz STR_BUTTON_LOCATION :{BLACK}Plaz
STR_BUTTON_RENAME :{BLACK}Ëmbenennen STR_BUTTON_RENAME :{BLACK}Ëmbenennen
STR_BUTTON_CATCHMENT :{BLACK}Reechwäit
STR_TOOLTIP_CATCHMENT :{BLACK}Reechwäit uweisen un/ausschalten
STR_TOOLTIP_CLOSE_WINDOW :{BLACK}Fënster zoumaachen STR_TOOLTIP_CLOSE_WINDOW :{BLACK}Fënster zoumaachen
STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS :{BLACK}Fënstertitel - hei zéien fir d'Fënster ze bewegen STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS :{BLACK}Fënstertitel - hei zéien fir d'Fënster ze bewegen
@@ -263,6 +265,7 @@ STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT_TOOLTIP :{BLACK}Mat dës
STR_BUTTON_DEFAULT :{BLACK}Standard STR_BUTTON_DEFAULT :{BLACK}Standard
STR_BUTTON_CANCEL :{BLACK}Ofbriechen STR_BUTTON_CANCEL :{BLACK}Ofbriechen
STR_BUTTON_OK :{BLACK}OK STR_BUTTON_OK :{BLACK}OK
STR_WARNING_PASSWORD_SECURITY :{YELLOW}Warnung: Server-Administratoren kënnen all Text aus desem Feld liesen.
# On screen keyboard window # On screen keyboard window
STR_OSK_KEYBOARD_LAYOUT :§1234567890'^\qwertzuiopè¨asdfghjkléà yxcvbnm,.- . STR_OSK_KEYBOARD_LAYOUT :§1234567890'^\qwertzuiopè¨asdfghjkléà yxcvbnm,.- .
@@ -336,6 +339,7 @@ STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_IN :{BLACK}Vergréi
STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_OUT :{BLACK}Verklenger d'Sicht STR_TOOLBAR_TOOLTIP_ZOOM_THE_VIEW_OUT :{BLACK}Verklenger d'Sicht
STR_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}Schinne bauen STR_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}Schinne bauen
STR_TOOLBAR_TOOLTIP_BUILD_ROADS :{BLACK}Stroosse bauen STR_TOOLBAR_TOOLTIP_BUILD_ROADS :{BLACK}Stroosse bauen
STR_TOOLBAR_TOOLTIP_BUILD_TRAMWAYS :{BLACK}Tramway bauen
STR_TOOLBAR_TOOLTIP_BUILD_SHIP_DOCKS :{BLACK}Schëffhafe bauen STR_TOOLBAR_TOOLTIP_BUILD_SHIP_DOCKS :{BLACK}Schëffhafe bauen
STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS :{BLACK}Fluchhafe bauen STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS :{BLACK}Fluchhafe bauen
STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}Landschafts-Toolbar opman fir Land ze erhéijen/senken, Beem planzen, etc. STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}Landschafts-Toolbar opman fir Land ze erhéijen/senken, Beem planzen, etc.
@@ -356,6 +360,7 @@ STR_SCENEDIT_TOOLBAR_LANDSCAPE_GENERATION :{BLACK}Landscha
STR_SCENEDIT_TOOLBAR_TOWN_GENERATION :{BLACK}Stiederstellung STR_SCENEDIT_TOOLBAR_TOWN_GENERATION :{BLACK}Stiederstellung
STR_SCENEDIT_TOOLBAR_INDUSTRY_GENERATION :{BLACK}Industrieerstellung STR_SCENEDIT_TOOLBAR_INDUSTRY_GENERATION :{BLACK}Industrieerstellung
STR_SCENEDIT_TOOLBAR_ROAD_CONSTRUCTION :{BLACK}Stroossebau STR_SCENEDIT_TOOLBAR_ROAD_CONSTRUCTION :{BLACK}Stroossebau
STR_SCENEDIT_TOOLBAR_TRAM_CONSTRUCTION :{BLACK}Tramkonstruktioun
STR_SCENEDIT_TOOLBAR_PLANT_TREES :{BLACK}Beem planzen. Shift wiesselt tëscht bauen/ongeféier Käschten uweisen STR_SCENEDIT_TOOLBAR_PLANT_TREES :{BLACK}Beem planzen. Shift wiesselt tëscht bauen/ongeféier Käschten uweisen
STR_SCENEDIT_TOOLBAR_PLACE_SIGN :{BLACK}Schëld opstellen STR_SCENEDIT_TOOLBAR_PLACE_SIGN :{BLACK}Schëld opstellen
STR_SCENEDIT_TOOLBAR_PLACE_OBJECT :{BLACK}Objet plazéiren. Shift wiesselt tëscht bauen/ongeféier Käschten uweisen STR_SCENEDIT_TOOLBAR_PLACE_OBJECT :{BLACK}Objet plazéiren. Shift wiesselt tëscht bauen/ongeféier Käschten uweisen
@@ -473,9 +478,6 @@ STR_ABOUT_MENU_SEPARATOR :
STR_ABOUT_MENU_TOGGLE_CONSOLE :Konsole un/aus STR_ABOUT_MENU_TOGGLE_CONSOLE :Konsole un/aus
STR_ABOUT_MENU_AI_DEBUG :KI / Spill-Script Debug STR_ABOUT_MENU_AI_DEBUG :KI / Spill-Script Debug
STR_ABOUT_MENU_SCREENSHOT :Screenshot (Ctrl+S) STR_ABOUT_MENU_SCREENSHOT :Screenshot (Ctrl+S)
STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Voll eragezoomte Screenshot
STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Standard Zoom Screenshot
STR_ABOUT_MENU_GIANT_SCREENSHOT :Screenshot vun der ganzer Kaart
STR_ABOUT_MENU_SHOW_FRAMERATE :Biller pro Sekonn uweisen STR_ABOUT_MENU_SHOW_FRAMERATE :Biller pro Sekonn uweisen
STR_ABOUT_MENU_ABOUT_OPENTTD :Iwwert 'OpenTTD' STR_ABOUT_MENU_ABOUT_OPENTTD :Iwwert 'OpenTTD'
STR_ABOUT_MENU_SPRITE_ALIGNER :Sprite Alignéirer STR_ABOUT_MENU_SPRITE_ALIGNER :Sprite Alignéirer
@@ -790,11 +792,11 @@ STR_NEWS_FIRST_CARGO_TRAM_ARRIVAL :{BIG_FONT}{BLAC
STR_NEWS_FIRST_SHIP_ARRIVAL :{BIG_FONT}{BLACK}Bierger feieren . . .{}Éischt Schëff kënnt zu {STATION} un! STR_NEWS_FIRST_SHIP_ARRIVAL :{BIG_FONT}{BLACK}Bierger feieren . . .{}Éischt Schëff kënnt zu {STATION} un!
STR_NEWS_FIRST_AIRCRAFT_ARRIVAL :{BIG_FONT}{BLACK}Bierger feieren . . .{}Éischte Fliger kënnt zu {STATION} un! STR_NEWS_FIRST_AIRCRAFT_ARRIVAL :{BIG_FONT}{BLACK}Bierger feieren . . .{}Éischte Fliger kënnt zu {STATION} un!
STR_NEWS_TRAIN_CRASH :{BIG_FONT}{BLACK}Zuchakzident!{}{COMMA} Leit stiewen an der Explosioun nom Akzident STR_NEWS_TRAIN_CRASH :{BIG_FONT}{BLACK}Zuchaccident!{}{COMMA} Leit stiewen an der Explosioun nom Accident
STR_NEWS_ROAD_VEHICLE_CRASH_DRIVER :{BIG_FONT}{BLACK}Stroossenakzident!{}Fuerer stierft an der Explosioun no Akzident mat Zuch STR_NEWS_ROAD_VEHICLE_CRASH_DRIVER :{BIG_FONT}{BLACK}Stroossenaccident!{}Fuerer stierft an der Explosioun no Accident mat Zuch
STR_NEWS_ROAD_VEHICLE_CRASH :{BIG_FONT}{BLACK}Stroossegefierakzident!{}{COMMA} Leit stiewen an der Explosioun no Akzident mam Zuch STR_NEWS_ROAD_VEHICLE_CRASH :{BIG_FONT}{BLACK}Stroossegefieraccident!{}{COMMA} Leit stiewen an der Explosioun no Accident mam Zuch
STR_NEWS_AIRCRAFT_CRASH :{BIG_FONT}{BLACK}Fligerakzident!{}{COMMA} Leit stiewen an der Explosioun bei {STATION} STR_NEWS_AIRCRAFT_CRASH :{BIG_FONT}{BLACK}Fligeraccident!{}{COMMA} Leit stiewen an der Explosioun bei {STATION}
STR_NEWS_PLANE_CRASH_OUT_OF_FUEL :{BIG_FONT}{BLACK}Fligerakzident!{}Fliger hat kee Bensin méi, {COMMA} Leit stiewen an Explosioun! STR_NEWS_PLANE_CRASH_OUT_OF_FUEL :{BIG_FONT}{BLACK}Fligeraccident!{}Fliger hat kee Bensin méi, {COMMA} Leit stiewen an Explosioun!
STR_NEWS_DISASTER_ZEPPELIN :{BIG_FONT}{BLACK}Zeppelinkatastroph zu {STATION}! STR_NEWS_DISASTER_ZEPPELIN :{BIG_FONT}{BLACK}Zeppelinkatastroph zu {STATION}!
STR_NEWS_DISASTER_SMALL_UFO :{BIG_FONT}{BLACK}Stroossegefier bei 'UFO'-Zesummestouss zerstéiert! STR_NEWS_DISASTER_SMALL_UFO :{BIG_FONT}{BLACK}Stroossegefier bei 'UFO'-Zesummestouss zerstéiert!
@@ -865,6 +867,8 @@ 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}Neie/Neit {STRING} verfügbar! - {ENGINE} STR_NEWS_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}Neie/Neit {STRING} verfügbar! - {ENGINE}
STR_NEWS_SHOW_VEHICLE_GROUP_TOOLTIP :{BLACK}Maach d'Gruppefenster op, fokusséiert op der Gefiergrupp
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} akzeptéiert {STRING} net méi STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO :{WHITE}{STATION} akzeptéiert {STRING} net méi
STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} akzeptéiert {STRING} oder {STRING} net méi STR_NEWS_STATION_NO_LONGER_ACCEPTS_CARGO_OR_CARGO :{WHITE}{STATION} akzeptéiert {STRING} oder {STRING} net méi
STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} akzeptéiert elo {STRING} STR_NEWS_STATION_NOW_ACCEPTS_CARGO :{WHITE}{STATION} akzeptéiert elo {STRING}
@@ -884,9 +888,9 @@ STR_NEWS_EXCLUSIVE_RIGHTS_DESCRIPTION :{BIG_FONT}{BLAC
# Extra view window # Extra view window
STR_EXTRA_VIEW_PORT_TITLE :{WHITE}Usiicht {COMMA} STR_EXTRA_VIEW_PORT_TITLE :{WHITE}Usiicht {COMMA}
STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN :{BLACK}Kopéiert op d'Usiicht STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN :{BLACK}Ännert d'Usiicht
STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN_TT :{BLACK}Kopéiert d'Plaz vun der globaler Usiicht op des Usiicht STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN_TT :{BLACK}Kopéiert d'Plaz vun der globaler Usiicht op des Usiicht
STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW :{BLACK}Vun der Usiicht drasetzen STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW :{BLACK}Haptusiicht änneren
STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW_TT :{BLACK}Setzt d'Plaz vun dëser Usiicht op déi global Usiicht STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW_TT :{BLACK}Setzt d'Plaz vun dëser Usiicht op déi global Usiicht
# Game options window # Game options window
@@ -931,6 +935,9 @@ STR_GAME_OPTIONS_CURRENCY_GEL :Georgesche Lari
STR_GAME_OPTIONS_CURRENCY_IRR :Iranësche Rial (IRR) STR_GAME_OPTIONS_CURRENCY_IRR :Iranësche Rial (IRR)
STR_GAME_OPTIONS_CURRENCY_RUB :Neie Russesche Rubel (RUB) STR_GAME_OPTIONS_CURRENCY_RUB :Neie Russesche Rubel (RUB)
STR_GAME_OPTIONS_CURRENCY_MXN :Mexikanesche Peso (MXN) STR_GAME_OPTIONS_CURRENCY_MXN :Mexikanesche Peso (MXN)
STR_GAME_OPTIONS_CURRENCY_NTD :New Taiwan Dollar (NTD)
STR_GAME_OPTIONS_CURRENCY_CNY :Chinesesch Renminbi (CNY)
STR_GAME_OPTIONS_CURRENCY_HKD :Hong Kong Dollar (HKD)
############ end of currency region ############ end of currency region
STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Stroossegefierer STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Stroossegefierer
@@ -1177,12 +1184,13 @@ STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Wielt aus, wéi
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :Maximal Kaartenhéicht: {STRING} STR_CONFIG_SETTING_MAX_HEIGHTLEVEL :Maximal Kaartenhéicht: {STRING}
STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :Setzt déi maximal erlabten Héicht fir Bierger op dëser Kaart STR_CONFIG_SETTING_MAX_HEIGHTLEVEL_HELPTEXT :Setzt déi maximal erlabten Héicht fir Bierger op dëser Kaart
STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}Du kanns d'maximal Kaartenhéischt net op dësen Wäert setzen. Op manst ee Bierg op der Kaart ass méi héich STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}Du kanns d'maximal Kaartenhéicht net op dëse Wäert setzen. Op manst ee Bierg op der Kaart ass méi héich
STR_CONFIG_SETTING_AUTOSLOPE :Erlaabt Landformung ënnert Gebaier, Stroossen, etc.: {STRING} STR_CONFIG_SETTING_AUTOSLOPE :Erlaabt Landformung ënnert Gebaier, Stroossen, etc.: {STRING}
STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Erlaabt Terraintransformatioun ënnert Gebaier an Schinnen ouni dës ewechzehuelen STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Erlaabt Terraintransformatioun ënnert Gebaier an Schinnen ouni dës ewechzehuelen
STR_CONFIG_SETTING_CATCHMENT :Erlaabt méi realistësch Einzugsberäicher: {STRING} STR_CONFIG_SETTING_CATCHMENT :Erlaabt méi realistësch Einzugsberäicher: {STRING}
STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Statiounen a Fluchhäfen hunn verschidde grouss Einzugsberäicher STR_CONFIG_SETTING_CATCHMENT_HELPTEXT :Statiounen a Fluchhäfen hunn verschidde grouss Einzugsberäicher
STR_CONFIG_SETTING_SERVE_NEUTRAL_INDUSTRIES :Gare vun der Firma kënnen Industrie beliwwere mat neutrale Statiounen: {STRING} STR_CONFIG_SETTING_SERVE_NEUTRAL_INDUSTRIES :Gare vun der Firma kënnen Industrie beliwwere mat neutrale Statiounen: {STRING}
STR_CONFIG_SETTING_SERVE_NEUTRAL_INDUSTRIES_HELPTEXT :Wann ugeschalt dierefen Industrien mat agebaute Statiounen (z.b Buerinselen) och vu Firmestatiounen déi an der Géigend gebaut goufen beliwwert ginn. Wann ausgeschalt, dierfen se just vun den agebaute Statioune benotzt ginn. An der Géigend gebaute Firmestatiounen wärten se net benotzen an déi agebaute Statiounen beliwweren och keen ausser d'Industrie selwer.
STR_CONFIG_SETTING_EXTRADYNAMITE :Erlaabt d'Ewechhuelen vu méi Stroossen, Brécken, etc. vun der Stad: {STRING} STR_CONFIG_SETTING_EXTRADYNAMITE :Erlaabt d'Ewechhuelen vu méi Stroossen, Brécken, etc. vun der Stad: {STRING}
STR_CONFIG_SETTING_EXTRADYNAMITE_HELPTEXT :Mach et méi einfach fir Infrastruktur oder Gebaier ewechzehuelen déi enger Stad gehéiren STR_CONFIG_SETTING_EXTRADYNAMITE_HELPTEXT :Mach et méi einfach fir Infrastruktur oder Gebaier ewechzehuelen déi enger Stad gehéiren
STR_CONFIG_SETTING_TRAIN_LENGTH :Maximal Längt vun Zich: {STRING} STR_CONFIG_SETTING_TRAIN_LENGTH :Maximal Längt vun Zich: {STRING}
@@ -1199,8 +1207,8 @@ STR_CONFIG_SETTING_TRAIN_SLOPE_STEEPNESS_HELPTEXT :Steigung vun en
STR_CONFIG_SETTING_PERCENTAGE :{COMMA}% STR_CONFIG_SETTING_PERCENTAGE :{COMMA}%
STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS :Hangsteigung fir Stroossegefierer: {STRING} STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS :Hangsteigung fir Stroossegefierer: {STRING}
STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS_HELPTEXT :Steigung vun engem Hang fir Stroossegefierer. Méi grouss Wäerter mécht et méi schwéier den Hang ropzefueren STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS_HELPTEXT :Steigung vun engem Hang fir Stroossegefierer. Méi grouss Wäerter mécht et méi schwéier den Hang ropzefueren
STR_CONFIG_SETTING_FORBID_90_DEG :Verbidd Zich an Schëffer fir 90°-Kéieren ze maachen: {STRING} STR_CONFIG_SETTING_FORBID_90_DEG :Verbidd Zich fir 90°-Kéieren ze maachen: {STRING}
STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :90°-Kéieren entsti wann eng horizontal Spur direkt op eng vertikal trëfft, sou dass den Zuch misst ëm 90 Grad dréinen fir op dat nächst Stéck ze kommen, amplaz vun den üblechen 45 Grad. Dëst zielt och fir d'Weeër vu Schëffer STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :90°-Kéieren entsti wann eng horizontal Spur direkt op eng vertikal trëfft, sou dass den Zuch misst ëm 90 Grad dréinen fir op dat nächst Stéck ze kommen, amplaz vun den üblechen 45 Grad.
STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Erlaabt Statiounen zesummen ze setzen och wann se net direkt uneneen leien: {STRING} STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Erlaabt Statiounen zesummen ze setzen och wann se net direkt uneneen leien: {STRING}
STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Erlaabt Statiounsdeeler un eng Statioun unzehenken ouni déi existéiernd Statioun ze beréiren. Ctr+Klick fir déi nei Deeler unzehenken STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS_HELPTEXT :Erlaabt Statiounsdeeler un eng Statioun unzehenken ouni déi existéiernd Statioun ze beréiren. Ctr+Klick fir déi nei Deeler unzehenken
STR_CONFIG_SETTING_INFLATION :Inflatioun: {STRING} STR_CONFIG_SETTING_INFLATION :Inflatioun: {STRING}
@@ -1255,9 +1263,9 @@ STR_CONFIG_SETTING_FREIGHT_TRAINS_HELPTEXT :Leet den Impakt
STR_CONFIG_SETTING_PLANE_SPEED :Fligergeschwindegkeetsfaktor: {STRING} STR_CONFIG_SETTING_PLANE_SPEED :Fligergeschwindegkeetsfaktor: {STRING}
STR_CONFIG_SETTING_PLANE_SPEED_HELPTEXT :Leet d'relativ Geschwindegkeet vu Fligeren am Verglach mat anere Gefierer fest, fir d'Akomme vum Transport vu Fligeren ze reduzéiren STR_CONFIG_SETTING_PLANE_SPEED_HELPTEXT :Leet d'relativ Geschwindegkeet vu Fligeren am Verglach mat anere Gefierer fest, fir d'Akomme vum Transport vu Fligeren ze reduzéiren
STR_CONFIG_SETTING_PLANE_SPEED_VALUE :1 / {COMMA} STR_CONFIG_SETTING_PLANE_SPEED_VALUE :1 / {COMMA}
STR_CONFIG_SETTING_PLANE_CRASHES :Unzuel Fligerakzidenter: {STRING} STR_CONFIG_SETTING_PLANE_CRASHES :Unzuel Fligeraccidenter: {STRING}
STR_CONFIG_SETTING_PLANE_CRASHES_HELPTEXT :Leet d'Chance fir en Fligerakzident fest STR_CONFIG_SETTING_PLANE_CRASHES_HELPTEXT :Leet d'Chance fir enzoufällegen Fligeraccident fest.{}* Grouss Fligeren hunn emmer en Accidents-Risiko wann se op engem klenge Fluchhafen landen
STR_CONFIG_SETTING_PLANE_CRASHES_NONE :Keng STR_CONFIG_SETTING_PLANE_CRASHES_NONE :Keng*
STR_CONFIG_SETTING_PLANE_CRASHES_REDUCED :Reduzéiert STR_CONFIG_SETTING_PLANE_CRASHES_REDUCED :Reduzéiert
STR_CONFIG_SETTING_PLANE_CRASHES_NORMAL :Normal STR_CONFIG_SETTING_PLANE_CRASHES_NORMAL :Normal
STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Erlaabt d'Iwwerfueren vu Stopschëlder op Stroossen vun der Stad: {STRING} STR_CONFIG_SETTING_STOP_ON_TOWN_ROAD :Erlaabt d'Iwwerfueren vu Stopschëlder op Stroossen vun der Stad: {STRING}
@@ -1269,6 +1277,7 @@ STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Infrastrukturë
STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Wann ugeschalt, kaschten Infrastrukturen Ennerhaltskäschten. D'Käschten wuessen iwwerproportional zu der Netzwierkgréisst, an treffen sou grouss Firmen méi wéi klenger STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Wann ugeschalt, kaschten Infrastrukturen Ennerhaltskäschten. D'Käschten wuessen iwwerproportional zu der Netzwierkgréisst, an treffen sou grouss Firmen méi wéi klenger
STR_CONFIG_SETTING_COMPANY_STARTING_COLOUR :Firmefaarw um Start: {STRING} STR_CONFIG_SETTING_COMPANY_STARTING_COLOUR :Firmefaarw um Start: {STRING}
STR_CONFIG_SETTING_COMPANY_STARTING_COLOUR_HELPTEXT :Wiel d'Startfaarw vun der Firma
STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS :Fluchhäfen lafen nie of: {STRING} STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS :Fluchhäfen lafen nie of: {STRING}
STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS_HELPTEXT :Wann ugeschalt, bleift all Fluchhafentyp säit senger Aféierung bestoen STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS_HELPTEXT :Wann ugeschalt, bleift all Fluchhafentyp säit senger Aféierung bestoen
@@ -1314,8 +1323,8 @@ STR_CONFIG_SETTING_TERRAIN_TYPE :Terraintyp: {ST
STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT :(Nëmmen TerraGenesis) Hiwwelegkeet vun der Landschaft STR_CONFIG_SETTING_TERRAIN_TYPE_HELPTEXT :(Nëmmen TerraGenesis) Hiwwelegkeet vun der Landschaft
STR_CONFIG_SETTING_INDUSTRY_DENSITY :Industriedicht: {STRING} STR_CONFIG_SETTING_INDUSTRY_DENSITY :Industriedicht: {STRING}
STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Definéiert wéivill Industrien generéiert sollen ginn an wéivill der während dem Spill sollen behalen ginn. STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Definéiert wéivill Industrien generéiert sollen ginn an wéivill der während dem Spill sollen behalen ginn.
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Maximal Distanz vum Kaartenenn bis zu enger Uelegraffinerie: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Maximal Distanz vum Kaarterand bis zu enger Uelegindustrie: {STRING}
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Uelëgraffinerien ginn nëmmen um Rand gebaut, dat ass un der Küst fir Inselkaarten STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Limitéiert wéi wäit vum Bord Uelegraffinerien an Buerinsele dierfe gebaut ginn. Op Inselkaarten garantéiert dest dass se um Rand gebaut ginn. Op Kaarten mat méi wéi 256 Felder, gett dese Wert skaléiert
STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Schnéigrenz Héicht: {STRING} STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Schnéigrenz Héicht: {STRING}
STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Kontrolléiert ab welcher Héicht de Schnéi ufenkt an der subarktëscher Landschaft. Schnéi affektéiert och Industriegeneratioun an de Wuesstum vu Stied. STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Kontrolléiert ab welcher Héicht de Schnéi ufenkt an der subarktëscher Landschaft. Schnéi affektéiert och Industriegeneratioun an de Wuesstum vu Stied.
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Knubbelegkeet vum Terrain (nëmmen TerraGenesis) : {STRING} STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Knubbelegkeet vum Terrain (nëmmen TerraGenesis) : {STRING}
@@ -1356,6 +1365,7 @@ STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :Mof
STR_CONFIG_SETTING_SCROLLMODE :Usiicht-Scrollverhalen: {STRING} STR_CONFIG_SETTING_SCROLLMODE :Usiicht-Scrollverhalen: {STRING}
STR_CONFIG_SETTING_SCROLLMODE_HELPTEXT :Verhalen beim Scrolle vun der Kaart STR_CONFIG_SETTING_SCROLLMODE_HELPTEXT :Verhalen beim Scrolle vun der Kaart
STR_CONFIG_SETTING_SCROLLMODE_DEFAULT :D'Usiicht mat der rietser Maustast bewegen, Maus-Positioun gespaart STR_CONFIG_SETTING_SCROLLMODE_DEFAULT :D'Usiicht mat der rietser Maustast bewegen, Maus-Positioun gespaart
STR_CONFIG_SETTING_SCROLLMODE_RMB_LOCKED :Beweg d'Kaart mat der rietser Maustast, Maus-Positioun gespaart
STR_CONFIG_SETTING_SCROLLMODE_RMB :D'Kaart mat der rietser Maustast bewegen STR_CONFIG_SETTING_SCROLLMODE_RMB :D'Kaart mat der rietser Maustast bewegen
STR_CONFIG_SETTING_SCROLLMODE_LMB :Kaart mat der lénker Maustast bewegen STR_CONFIG_SETTING_SCROLLMODE_LMB :Kaart mat der lénker Maustast bewegen
STR_CONFIG_SETTING_SMOOTH_SCROLLING :Feine Scrolling: {STRING} STR_CONFIG_SETTING_SMOOTH_SCROLLING :Feine Scrolling: {STRING}
@@ -1441,8 +1451,8 @@ STR_CONFIG_SETTING_SOUND_CONFIRM :Konstruktioun:
STR_CONFIG_SETTING_SOUND_CONFIRM_HELPTEXT :Spill Soundeffekter of wa Konstruktiounen an aner Aktiounen ausgefouert goufen STR_CONFIG_SETTING_SOUND_CONFIRM_HELPTEXT :Spill Soundeffekter of wa Konstruktiounen an aner Aktiounen ausgefouert goufen
STR_CONFIG_SETTING_SOUND_CLICK :Kneppercherklicks: {STRING} STR_CONFIG_SETTING_SOUND_CLICK :Kneppercherklicks: {STRING}
STR_CONFIG_SETTING_SOUND_CLICK_HELPTEXT :Beep beim Klicken vu Kneppercher STR_CONFIG_SETTING_SOUND_CLICK_HELPTEXT :Beep beim Klicken vu Kneppercher
STR_CONFIG_SETTING_SOUND_DISASTER :Katastrophen/Akzidenter: {STRING} STR_CONFIG_SETTING_SOUND_DISASTER :Katastrophen/Accidenter: {STRING}
STR_CONFIG_SETTING_SOUND_DISASTER_HELPTEXT :Spill Soundeffekter vun Akzidenter a Katastrophen of STR_CONFIG_SETTING_SOUND_DISASTER_HELPTEXT :Spill Soundeffekter vun Accidenter a Katastrophen of
STR_CONFIG_SETTING_SOUND_VEHICLE :Gefierer: {STRING} STR_CONFIG_SETTING_SOUND_VEHICLE :Gefierer: {STRING}
STR_CONFIG_SETTING_SOUND_VEHICLE_HELPTEXT :Spill Soundeffekter vu Gefierer of STR_CONFIG_SETTING_SOUND_VEHICLE_HELPTEXT :Spill Soundeffekter vu Gefierer of
STR_CONFIG_SETTING_SOUND_AMBIENT :Ambiance: {STRING} STR_CONFIG_SETTING_SOUND_AMBIENT :Ambiance: {STRING}
@@ -1478,6 +1488,9 @@ STR_CONFIG_SETTING_AI_IN_MULTIPLAYER :Erlaabt KI am M
STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT :Erlaabt Computergéigner a Multiplayer Spiller matzeman STR_CONFIG_SETTING_AI_IN_MULTIPLAYER_HELPTEXT :Erlaabt Computergéigner a Multiplayer Spiller matzeman
STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :#opcodes befier de Script suspendéiert gëtt: {STRING} STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :#opcodes befier de Script suspendéiert gëtt: {STRING}
STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES_HELPTEXT :Maximal Unzuel u Rechenschrëtt déi e Script kann an engem Tuer man STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES_HELPTEXT :Maximal Unzuel u Rechenschrëtt déi e Script kann an engem Tuer man
STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY :Max Späicherverbrauch pro Script: {STRING}
STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_HELPTEXT :Wéivill Späicher en eenzelne Script dierf benotzen befier en gezwongenerweis gestopt gëtt. Dese Wert muss eventuell erhéigt ginn fir grouss Kaarten.
STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_VALUE :{COMMA} MiB
STR_CONFIG_SETTING_SERVINT_ISPERCENT :Revisiounsintervallen a Prozenter: {STRING} STR_CONFIG_SETTING_SERVINT_ISPERCENT :Revisiounsintervallen a Prozenter: {STRING}
STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Wiel op eng Revisioun ausgeléist gëtt durch Zäit déi säit der leschter Revisioun vergangen ass oder well Zouverlessëgkeet en gewëssen Prozentsaz vun der maximaler Zouverlässëgkeet erofgaang ass STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Wiel op eng Revisioun ausgeléist gëtt durch Zäit déi säit der leschter Revisioun vergangen ass oder well Zouverlessëgkeet en gewëssen Prozentsaz vun der maximaler Zouverlässëgkeet erofgaang ass
@@ -1502,8 +1515,8 @@ STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OWN :Ukonft vum éis
STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OWN_HELPTEXT :Weis d'Zeitung wann dat éischt Gefier op enger eegener Statioun ukënnt STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OWN_HELPTEXT :Weis d'Zeitung wann dat éischt Gefier op enger eegener Statioun ukënnt
STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OTHER :Ukonft vum éischten Gefier op enger Géigenspillerstatioun: {STRING} STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OTHER :Ukonft vum éischten Gefier op enger Géigenspillerstatioun: {STRING}
STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OTHER_HELPTEXT :Weis d'Zeitung wann dat éischt Gefier op enger géignerescher Statioun ukënnt STR_CONFIG_SETTING_NEWS_ARRIVAL_FIRST_VEHICLE_OTHER_HELPTEXT :Weis d'Zeitung wann dat éischt Gefier op enger géignerescher Statioun ukënnt
STR_CONFIG_SETTING_NEWS_ACCIDENTS_DISASTERS :Akzidenter / Katastrophen: {STRING} STR_CONFIG_SETTING_NEWS_ACCIDENTS_DISASTERS :Accidenter / Katastrophen: {STRING}
STR_CONFIG_SETTING_NEWS_ACCIDENTS_DISASTERS_HELPTEXT :Weis d'Zeitung wann Akzidenter oder Katastrophen passéiren STR_CONFIG_SETTING_NEWS_ACCIDENTS_DISASTERS_HELPTEXT :Weis d'Zeitung wann Accidenter oder Katastrophe geschéien
STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION :Firmeninformatiounen: {STRING} STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION :Firmeninformatiounen: {STRING}
STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION_HELPTEXT :Weis d'Zeitung wann eng nei Firma opgeet, oder wann ee riskéiert Bankrott ze goen STR_CONFIG_SETTING_NEWS_COMPANY_INFORMATION_HELPTEXT :Weis d'Zeitung wann eng nei Firma opgeet, oder wann ee riskéiert Bankrott ze goen
STR_CONFIG_SETTING_NEWS_INDUSTRY_OPEN :Grënnung vun enger Industrie: {STRING} STR_CONFIG_SETTING_NEWS_INDUSTRY_OPEN :Grënnung vun enger Industrie: {STRING}
@@ -1536,10 +1549,16 @@ STR_CONFIG_SETTING_NEWS_MESSAGES_FULL :Ganz
STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :Faarweg News ab: {STRING} STR_CONFIG_SETTING_COLOURED_NEWS_YEAR :Faarweg News ab: {STRING}
STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :Joer vun dem uns d'Zeitung farweg erauskënnt. Firun dësem Joer ass se schwarz/wäiss STR_CONFIG_SETTING_COLOURED_NEWS_YEAR_HELPTEXT :Joer vun dem uns d'Zeitung farweg erauskënnt. Firun dësem Joer ass se schwarz/wäiss
STR_CONFIG_SETTING_STARTING_YEAR :Startjoer: {STRING} STR_CONFIG_SETTING_STARTING_YEAR :Startjoer: {STRING}
STR_CONFIG_SETTING_ENDING_YEAR :End-Joer vum Scoring: {STRING}
STR_CONFIG_SETTING_ENDING_YEAR_HELPTEXT :Joer wou d'Spill opgrond vum Scoring ophält. Um Enn vun desem Joer gëtt der Firma hiere Score gespäichert an an der Highscore-Lëscht ugewisen, mee de Spiller kann dono weider spillen.{}Wann dese Wert virum Startjoer ass, gëtt d'Highscorelëscht nie ugewisen.
STR_CONFIG_SETTING_ENDING_YEAR_VALUE :{NUM}
STR_CONFIG_SETTING_ENDING_YEAR_ZERO :Nie
STR_CONFIG_SETTING_SMOOTH_ECONOMY :Gläichméisseg Wiertschaft aschalten (méi oft an kleng Wiessel): {STRING} STR_CONFIG_SETTING_SMOOTH_ECONOMY :Gläichméisseg Wiertschaft aschalten (méi oft an kleng Wiessel): {STRING}
STR_CONFIG_SETTING_SMOOTH_ECONOMY_HELPTEXT :Wann ugeschalt, ännert d'Industrieproduktioun méi oft, an méi kléngen Schrëtter. Dës Astellung huet keng Auswierkung op NewGRF-Industrien STR_CONFIG_SETTING_SMOOTH_ECONOMY_HELPTEXT :Wann ugeschalt, ännert d'Industrieproduktioun méi oft, an méi kléngen Schrëtter. Dës Astellung huet keng Auswierkung op NewGRF-Industrien
STR_CONFIG_SETTING_ALLOW_SHARES :Undeeler vun aaneren Firmen kafen: {STRING} STR_CONFIG_SETTING_ALLOW_SHARES :Undeeler vun aaneren Firmen kafen: {STRING}
STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Wann ugeschalt, dierfen Aktien vu Firmen kaf an verkaf ginn. Aktien si just fir Firme verfügbar, déi en gewëssen Alter erreecht hunn STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Wann ugeschalt, dierfen Aktien vu Firmen kaf an verkaf ginn. Aktien si just fir Firme verfügbar, déi en gewëssen Alter erreecht hunn
STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Minimalt Firmenalter fir Aktien ze handelen: {STRING}
STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Definéiert d'minimalt Alter vun enger Firma, befier anerer kënnen Undeeler un Aktien vun hier kafen.
STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Prozentsaz vum Etappenprofit den am Feeder-System bezuelt gëtt: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Prozentsaz vum Etappenprofit den am Feeder-System bezuelt gëtt: {STRING}
STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Prozentsaz vum Akommes déi un d'Zwëschenetappen an engem Feeder-System gi ginn, wat méi Kontroll iwwert d'Akommes erméiglegt STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Prozentsaz vum Akommes déi un d'Zwëschenetappen an engem Feeder-System gi ginn, wat méi Kontroll iwwert d'Akommes erméiglegt
STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :Wa gezunn gëtt, setz en Signal all: {STRING} STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :Wa gezunn gëtt, setz en Signal all: {STRING}
@@ -1571,7 +1590,7 @@ STR_CONFIG_SETTING_TOWN_LAYOUT_3X3_GRID :3x3 Gitter
STR_CONFIG_SETTING_TOWN_LAYOUT_RANDOM :Zoufälleg STR_CONFIG_SETTING_TOWN_LAYOUT_RANDOM :Zoufälleg
STR_CONFIG_SETTING_ALLOW_TOWN_ROADS :Stied däerfen Stroossen bauen: {STRING} STR_CONFIG_SETTING_ALLOW_TOWN_ROADS :Stied däerfen Stroossen bauen: {STRING}
STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT :Erlaabt Stied Stroossen ze bauen fir ze wuessen. Ausschalten fir d'Stiedréid dorun ze hënneren fir Stroossen selwer ze bauen STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT :Erlaabt Stied Stroossen ze bauen fir ze wuessen. Ausschalten fir d'Stiedréid dorun ze hënneren fir Stroossen selwer ze bauen
STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS :Stied dierfen Barrièren bauen: {STRING} STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS :Stied dierfe Barrière bauen: {STRING}
STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS_HELPTEXT :Wann dës Astellung ugeschalt ass, kënnen Stied Stroossen iwwert Schinne bauen STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS_HELPTEXT :Wann dës Astellung ugeschalt ass, kënnen Stied Stroossen iwwert Schinne bauen
STR_CONFIG_SETTING_NOISE_LEVEL :Erlab e stadkontrolléierte Kaméidisniveau fir Fluchhäfen: {STRING} STR_CONFIG_SETTING_NOISE_LEVEL :Erlab e stadkontrolléierte Kaméidisniveau fir Fluchhäfen: {STRING}
STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :Wann dës Astellung ausgeschalt ass, kënnen zwee Fluchhäfen an all Stad gebaut ginn. Wann dës Astellung ugeschalt ass, henkt et vun der Fluchhafengréisst, Distanz, Kaméidisniveau of wéivill Fluchhäfen kënne gebaut ginn STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :Wann dës Astellung ausgeschalt ass, kënnen zwee Fluchhäfen an all Stad gebaut ginn. Wann dës Astellung ugeschalt ass, henkt et vun der Fluchhafengréisst, Distanz, Kaméidisniveau of wéivill Fluchhäfen kënne gebaut ginn
@@ -1582,6 +1601,7 @@ STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED :Erlaabt
STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED_CUSTOM_LAYOUT :Erlaabt, custom Stad-Layout STR_CONFIG_SETTING_TOWN_FOUNDING_ALLOWED_CUSTOM_LAYOUT :Erlaabt, custom Stad-Layout
STR_CONFIG_SETTING_TOWN_CARGOGENMODE :Duerfwuerengeneratioun: {STRING} STR_CONFIG_SETTING_TOWN_CARGOGENMODE :Duerfwuerengeneratioun: {STRING}
STR_CONFIG_SETTING_TOWN_CARGOGENMODE_HELPTEXT :Wéivill Wuere produzéiert ginn, relativ zur Bevölkerung vum Duerf.{}Quadratesche Wuesstum: En duebel sou grousst Duerf, generéiert véier mol souvill Passagéier.{}Lineare Wuesstum: En duebel sou grousst Duerf, generéiert duebel souvill Passagéier. STR_CONFIG_SETTING_TOWN_CARGOGENMODE_HELPTEXT :Wéivill Wuere produzéiert ginn, relativ zur Bevölkerung vum Duerf.{}Quadratesche Wuesstum: En duebel sou grousst Duerf, generéiert véier mol souvill Passagéier.{}Lineare Wuesstum: En duebel sou grousst Duerf, generéiert duebel souvill Passagéier.
STR_CONFIG_SETTING_TOWN_CARGOGENMODE_ORIGINAL :Quadratesch (original)
STR_CONFIG_SETTING_TOWN_CARGOGENMODE_BITCOUNT :Linear STR_CONFIG_SETTING_TOWN_CARGOGENMODE_BITCOUNT :Linear
STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT :Bamplazéirung: {STRING} STR_CONFIG_SETTING_EXTRA_TREE_PLACEMENT :Bamplazéirung: {STRING}
@@ -1700,7 +1720,7 @@ STR_CONFIG_SETTING_VEHICLES :{ORANGE}Gefiere
STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}Physik STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}Physik
STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Routeplangung STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Routeplangung
STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}Limitatiounen STR_CONFIG_SETTING_LIMITATIONS :{ORANGE}Limitatiounen
STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Katastrophen / Akzidenter STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Katastrophen / Accidenter
STR_CONFIG_SETTING_GENWORLD :{ORANGE}Welt Generatioun STR_CONFIG_SETTING_GENWORLD :{ORANGE}Welt Generatioun
STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Emwelt STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Emwelt
STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Autoritéiten STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Autoritéiten
@@ -1741,7 +1761,7 @@ STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_ALGORITHM :{WHITE}... Spil
STR_CONFIG_ERROR_INVALID_BASE_GRAPHICS_NOT_FOUND :{WHITE}... ignoréiren Basis Grafik Set '{STRING}': net fonnt STR_CONFIG_ERROR_INVALID_BASE_GRAPHICS_NOT_FOUND :{WHITE}... ignoréiren Basis Grafik Set '{STRING}': net fonnt
STR_CONFIG_ERROR_INVALID_BASE_SOUNDS_NOT_FOUND :{WHITE}... ignoréiren Basis Sound Set '{STRING}': net fonnt STR_CONFIG_ERROR_INVALID_BASE_SOUNDS_NOT_FOUND :{WHITE}... ignoréiren Basis Sound Set '{STRING}': net fonnt
STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... ignoréiren Basis Musik Set '{STRING}': net fonnt STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... ignoréiren Basis Musik Set '{STRING}': net fonnt
STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Net genuch Mémoire STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Net genuch Späicher
STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Reservéirung vun {BYTES} Spritecache versot. De Spritecache gouf reduzéiert op {BYTES}. Dëst reduzéiert d'Performance vun OpenTTD. Fir Späicher ze spueren kann een probéiren 32bpp Grafiken auszeschalten an/oder Zoom-Eran Stufen STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Reservéirung vun {BYTES} Spritecache versot. De Spritecache gouf reduzéiert op {BYTES}. Dëst reduzéiert d'Performance vun OpenTTD. Fir Späicher ze spueren kann een probéiren 32bpp Grafiken auszeschalten an/oder Zoom-Eran Stufen
# Intro window # Intro window
@@ -1801,7 +1821,7 @@ STR_OSNAME_SUNOS :SunOS
# Abandon game # Abandon game
STR_ABANDON_GAME_CAPTION :{WHITE}Spill ofbriechen STR_ABANDON_GAME_CAPTION :{WHITE}Spill ofbriechen
STR_ABANDON_GAME_QUERY :{YELLOW}Bass du sécher dass du des Partie ofbrieche wëlls? STR_ABANDON_GAME_QUERY :{YELLOW}Bass du sécher, dass du des Partie ofbrieche wëlls?
STR_ABANDON_SCENARIO_QUERY :{YELLOW}Sécher dass du aus dësem Szenario eraus wëlls ? STR_ABANDON_SCENARIO_QUERY :{YELLOW}Sécher dass du aus dësem Szenario eraus wëlls ?
# Cheat window # Cheat window
@@ -1812,7 +1832,7 @@ STR_CHEAT_MONEY :{LTBLUE}Suen ë
STR_CHEAT_CHANGE_COMPANY :{LTBLUE}Als Firma {ORANGE}{COMMA} spillen STR_CHEAT_CHANGE_COMPANY :{LTBLUE}Als Firma {ORANGE}{COMMA} spillen
STR_CHEAT_EXTRA_DYNAMITE :{LTBLUE}Magësche Bulldozer (Industrien ofrappen, onzerstéierbar Objeten): {ORANGE}{STRING} STR_CHEAT_EXTRA_DYNAMITE :{LTBLUE}Magësche Bulldozer (Industrien ofrappen, onzerstéierbar Objeten): {ORANGE}{STRING}
STR_CHEAT_CROSSINGTUNNELS :{LTBLUE}Tunnelle kënne sech kräizen: {ORANGE}{STRING} STR_CHEAT_CROSSINGTUNNELS :{LTBLUE}Tunnelle kënne sech kräizen: {ORANGE}{STRING}
STR_CHEAT_NO_JETCRASH :{LTBLUE}Jet'en maachen net regelméisseg en Akzident op klenge Fluchhäfen: {ORANGE} {STRING} STR_CHEAT_NO_JETCRASH :{LTBLUE}Jete maache net regelméisseg en Accident op klenge Fluchhäfen: {ORANGE} {STRING}
STR_CHEAT_EDIT_MAX_HL :{LTBLUE}Änner d'Maximalhéicht vu Bierger op der Kaart: {ORANGE}{NUM} STR_CHEAT_EDIT_MAX_HL :{LTBLUE}Änner d'Maximalhéicht vu Bierger op der Kaart: {ORANGE}{NUM}
STR_CHEAT_EDIT_MAX_HL_QUERY_CAPT :{WHITE}Änner d'Maximalhéicht vu Bierger op der Kaart STR_CHEAT_EDIT_MAX_HL_QUERY_CAPT :{WHITE}Änner d'Maximalhéicht vu Bierger op der Kaart
STR_CHEAT_SWITCH_CLIMATE_TEMPERATE_LANDSCAPE :Gemässegt Klima Landschaft STR_CHEAT_SWITCH_CLIMATE_TEMPERATE_LANDSCAPE :Gemässegt Klima Landschaft
@@ -2084,6 +2104,7 @@ STR_NETWORK_CONNECTION_DISCONNECT :{BLACK}Verbindu
STR_NETWORK_NEED_GAME_PASSWORD_CAPTION :{WHITE}Server ass geschützt. Passwuert aginn STR_NETWORK_NEED_GAME_PASSWORD_CAPTION :{WHITE}Server ass geschützt. Passwuert aginn
STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION :{WHITE}Firma ass geschützt. Passwuert aginn STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION :{WHITE}Firma ass geschützt. Passwuert aginn
STR_NETWORK_COMPANY_LIST_CLIENT_LIST_CAPTION :{WHITE}Spillerlëscht
# Network company list added strings # Network company list added strings
STR_NETWORK_COMPANY_LIST_CLIENT_LIST :Spillerlëscht STR_NETWORK_COMPANY_LIST_CLIENT_LIST :Spillerlëscht
@@ -2129,7 +2150,7 @@ STR_NETWORK_CHAT_ALL :[All] {STRING}:
STR_NETWORK_CHAT_OSKTITLE :{BLACK}Text fir Chat aginn STR_NETWORK_CHAT_OSKTITLE :{BLACK}Text fir Chat aginn
# Network messages # Network messages
STR_NETWORK_ERROR_NOTAVAILABLE :{WHITE}Keng Netzwierkgeräter fonnt oder compiléiert ouni ENABLE_NETWORK STR_NETWORK_ERROR_NOTAVAILABLE :{WHITE}Keng Netzwierkgeräter fonnt
STR_NETWORK_ERROR_NOSERVER :{WHITE}Konnt keng Netzwierkspiller fannen STR_NETWORK_ERROR_NOSERVER :{WHITE}Konnt keng Netzwierkspiller fannen
STR_NETWORK_ERROR_NOCONNECTION :{WHITE}De Server huet net op d'Ufro geäntwert STR_NETWORK_ERROR_NOCONNECTION :{WHITE}De Server huet net op d'Ufro geäntwert
STR_NETWORK_ERROR_NEWGRF_MISMATCH :{WHITE}Konnt sech wéinst ënnerscheedlechen NewGRF net connectéieren STR_NETWORK_ERROR_NEWGRF_MISMATCH :{WHITE}Konnt sech wéinst ënnerscheedlechen NewGRF net connectéieren
@@ -2253,7 +2274,7 @@ STR_CONTENT_TYPE_NEWGRF :NewGRF
STR_CONTENT_TYPE_AI :KI STR_CONTENT_TYPE_AI :KI
STR_CONTENT_TYPE_AI_LIBRARY :KI Librairie STR_CONTENT_TYPE_AI_LIBRARY :KI Librairie
STR_CONTENT_TYPE_SCENARIO :Szenario STR_CONTENT_TYPE_SCENARIO :Szenario
STR_CONTENT_TYPE_HEIGHTMAP :Héischtekaart STR_CONTENT_TYPE_HEIGHTMAP :Héichtekaart
STR_CONTENT_TYPE_BASE_SOUNDS :Basis Sounds STR_CONTENT_TYPE_BASE_SOUNDS :Basis Sounds
STR_CONTENT_TYPE_BASE_MUSIC :Basis Musik STR_CONTENT_TYPE_BASE_MUSIC :Basis Musik
STR_CONTENT_TYPE_GAME_SCRIPT :Spill-Script STR_CONTENT_TYPE_GAME_SCRIPT :Spill-Script
@@ -2296,6 +2317,7 @@ STR_LINKGRAPH_LEGEND_CAPTION :{BLACK}Cargo Fl
STR_LINKGRAPH_LEGEND_ALL :{BLACK}All STR_LINKGRAPH_LEGEND_ALL :{BLACK}All
STR_LINKGRAPH_LEGEND_NONE :{BLACK}Keng STR_LINKGRAPH_LEGEND_NONE :{BLACK}Keng
STR_LINKGRAPH_LEGEND_SELECT_COMPANIES :{BLACK}Wiel d'Firmen aus déi ugewise ginn STR_LINKGRAPH_LEGEND_SELECT_COMPANIES :{BLACK}Wiel d'Firmen aus déi ugewise ginn
STR_LINKGRAPH_LEGEND_COMPANY_TOOLTIP :{BLACK}{STRING}{}{COMPANY}
# Linkgraph legend window and linkgraph legend in smallmap # Linkgraph legend window and linkgraph legend in smallmap
STR_LINKGRAPH_LEGEND_UNUSED :{TINY_FONT}{BLACK}onbenotzt STR_LINKGRAPH_LEGEND_UNUSED :{TINY_FONT}{BLACK}onbenotzt
@@ -2380,9 +2402,9 @@ STR_BUILD_SIGNAL_ELECTRIC_COMBO_TOOLTIP :{BLACK}Combo-Si
STR_BUILD_SIGNAL_ELECTRIC_PBS_TOOLTIP :{BLACK}Wee-Signal (Elektresch){}E Wee-Signal erlaabt méi wéi engem Zuch an e Block eranzefueren, wann den Zuch e Wee op en Stop-Punkt reservéiren kann. Standard Wee-Signaler kënne vu béide Säiten duerchfuer ginn STR_BUILD_SIGNAL_ELECTRIC_PBS_TOOLTIP :{BLACK}Wee-Signal (Elektresch){}E Wee-Signal erlaabt méi wéi engem Zuch an e Block eranzefueren, wann den Zuch e Wee op en Stop-Punkt reservéiren kann. Standard Wee-Signaler kënne vu béide Säiten duerchfuer ginn
STR_BUILD_SIGNAL_ELECTRIC_PBS_OWAY_TOOLTIP :{BLACK}Einbahn-Wee-Signal (Elektresch){}En Einbahn-Signal erlaabt méi wéi een Zuch zur selwechter Zäit an engem Block ze sin, wann den Zuch en Wee op en sécheren Stop-Punkt reservéiren kann. Einbahn-Signaler kënnen net vun der falscher Säit duerchfuer ginn STR_BUILD_SIGNAL_ELECTRIC_PBS_OWAY_TOOLTIP :{BLACK}Einbahn-Wee-Signal (Elektresch){}En Einbahn-Signal erlaabt méi wéi een Zuch zur selwechter Zäit an engem Block ze sin, wann den Zuch en Wee op en sécheren Stop-Punkt reservéiren kann. Einbahn-Signaler kënnen net vun der falscher Säit duerchfuer ginn
STR_BUILD_SIGNAL_CONVERT_TOOLTIP :{BLACK}Signal konvertéiren{}Wann gewielt, gëtt en geklickten Signal an dat gewielten Signal konvertéiert, Ctrl+Klick wiesselt tëscht de Varianten. Shift weist ongeféier Konvertéirungskäschten STR_BUILD_SIGNAL_CONVERT_TOOLTIP :{BLACK}Signal konvertéiren{}Wann gewielt, gëtt en geklickten Signal an dat gewielten Signal konvertéiert, Ctrl+Klick wiesselt tëscht de Varianten. Shift weist ongeféier Konvertéirungskäschten
STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_TOOLTIP :{BLACK}Dicht vu Signaler beim Zéien STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_TOOLTIP :{BLACK}Distanz vu Signaler beim Zéien
STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_DECREASE_TOOLTIP :{BLACK}Setzt Signaldistanz erof STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_DECREASE_TOOLTIP :{BLACK}Setzt Signaldistanz erof
STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_INCREASE_TOOLTIP :{BLACK}Setzt Signaldicht erop STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_INCREASE_TOOLTIP :{BLACK}Setzt Signaldistanz erop
# Bridge selection window # Bridge selection window
STR_SELECT_RAIL_BRIDGE_CAPTION :{WHITE}Zuchbréck auswielen STR_SELECT_RAIL_BRIDGE_CAPTION :{WHITE}Zuchbréck auswielen
@@ -2404,7 +2426,7 @@ STR_BRIDGE_TUBULAR_SILICON :Rouer, Silikon
STR_ROAD_TOOLBAR_ROAD_CONSTRUCTION_CAPTION :{WHITE}Stroossebau STR_ROAD_TOOLBAR_ROAD_CONSTRUCTION_CAPTION :{WHITE}Stroossebau
STR_ROAD_TOOLBAR_TRAM_CONSTRUCTION_CAPTION :{WHITE}Tramkonstruktioun STR_ROAD_TOOLBAR_TRAM_CONSTRUCTION_CAPTION :{WHITE}Tramkonstruktioun
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_SECTION :{BLACK}Baut Stroossen.Ctrl+Klick wiësselt tëscht Stroosse bauen/ofrappen. Shift wiesselt tëscht bauen/ongeféier Käschten uweisen STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_SECTION :{BLACK}Baut Stroossen.Ctrl+Klick wiësselt tëscht Stroosse bauen/ofrappen. Shift wiesselt tëscht bauen/ongeféier Käschten uweisen
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_SECTION :{BLACK}Tramschinne bauen. Ctrl+Klick wiësselt tëscht Tramschinne bauen/ofrappen. Shift wiesselt tëscht bauen/ongeféier Käschten uweisen STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_SECTION :{BLACK}Tramwayschinne bauen. Ctrl+Klick wiësselt tëscht Tramwayschinne bauen/ofrappen. Shift wiesselt tëscht bauen/ongeféier Käschten uweisen
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_AUTOROAD :{BLACK}D'Strooss mat der Bau-Automatik bauen. Ctrl wiësselt tëscht Stroossen bauen/ofrappen. Shift wiesselt tëscht bauen/ongeféier Käschten uweisen STR_ROAD_TOOLBAR_TOOLTIP_BUILD_AUTOROAD :{BLACK}D'Strooss mat der Bau-Automatik bauen. Ctrl wiësselt tëscht Stroossen bauen/ofrappen. Shift wiesselt tëscht bauen/ongeféier Käschten uweisen
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_AUTOTRAM :{BLACK}Tramschinne mam "Autotram" Modus bauen. Ctrl wiesselt tëscht Tramschinne bauen/ofrappen. Shift wiesselt tëschtbauen/ongeféier Käschten uweisen STR_ROAD_TOOLBAR_TOOLTIP_BUILD_AUTOTRAM :{BLACK}Tramschinne mam "Autotram" Modus bauen. Ctrl wiesselt tëscht Tramschinne bauen/ofrappen. Shift wiesselt tëschtbauen/ongeféier Käschten uweisen
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_VEHICLE_DEPOT :{BLACK}Baut Stroossendepot (fir Gefierer ze kafen an ze flécken). Shift wiesselt tëscht bauen/ongeféier Käschten uweisen STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_VEHICLE_DEPOT :{BLACK}Baut Stroossendepot (fir Gefierer ze kafen an ze flécken). Shift wiesselt tëscht bauen/ongeféier Käschten uweisen
@@ -2420,7 +2442,11 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_TUNNEL :{BLACK}Baut Str
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Tramtunnel bauen. Shift wiesselt tëscht bauen/ongeféier Käschten uweisen STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_TUNNEL :{BLACK}Tramtunnel bauen. Shift wiesselt tëscht bauen/ongeféier Käschten uweisen
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Wiesselt bauen/ofrappen vu Stroossekonstruktiounen STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_ROAD :{BLACK}Wiesselt bauen/ofrappen vu Stroossekonstruktiounen
STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Wiesselt tëscht bauen/ofrappen beim Trambau STR_ROAD_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR_TRAMWAYS :{BLACK}Wiesselt tëscht bauen/ofrappen beim Trambau
STR_ROAD_TOOLBAR_TOOLTIP_CONVERT_ROAD :{BLACK}Konvertéier/upgrade den Typ vu Strooss. Shift wiesselt tëscht bauen/ongeféier Käschten uweisen
STR_ROAD_TOOLBAR_TOOLTIP_CONVERT_TRAM :{BLACK}Konvertéiert/upgrade den Typ vun Tram. Shift wiesselt tëscht bauen/ongeféier Käschten uweisen
STR_ROAD_NAME_ROAD :Strooss
STR_ROAD_NAME_TRAM :Tramway
# Road depot construction window # Road depot construction window
STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Ausriichtung vum Stroossendepot STR_BUILD_DEPOT_ROAD_ORIENTATION_CAPTION :{WHITE}Ausriichtung vum Stroossendepot
@@ -2521,7 +2547,7 @@ STR_TERRAFORM_RESET_LANDSCAPE :{BLACK}Setz d'L
STR_TERRAFORM_RESET_LANDSCAPE_TOOLTIP :{BLACK}Huel all Grondstécker vun der Firma ewech STR_TERRAFORM_RESET_LANDSCAPE_TOOLTIP :{BLACK}Huel all Grondstécker vun der Firma ewech
STR_QUERY_RESET_LANDSCAPE_CAPTION :{WHITE}Setz d'Landschaft zeréck STR_QUERY_RESET_LANDSCAPE_CAPTION :{WHITE}Setz d'Landschaft zeréck
STR_RESET_LANDSCAPE_CONFIRMATION_TEXT :{WHITE}Bass du sécher dass du all Grondstécker vun der Firma ewechhuelen wëlls? STR_RESET_LANDSCAPE_CONFIRMATION_TEXT :{WHITE}Bass du sécher, dass du all Grondstécker vun der Firma ewechhuele wëlls?
# Town generation window (SE) # Town generation window (SE)
STR_FOUND_TOWN_CAPTION :{WHITE}Staderstellung STR_FOUND_TOWN_CAPTION :{WHITE}Staderstellung
@@ -2605,8 +2631,11 @@ STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF:
STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Akzeptéiert Wuer: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Akzeptéiert Wuer: {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}Schinnentyp: {LTBLUE}{STRING} STR_LANG_AREA_INFORMATION_RAIL_TYPE :{BLACK}Schinnentyp: {LTBLUE}{STRING}
STR_LANG_AREA_INFORMATION_ROAD_TYPE :{BLACK}Stroossentyp: {LTBLUE}{STRING}
STR_LANG_AREA_INFORMATION_TRAM_TYPE :{BLACK}Tramtyp: {LTBLUE}{STRING}
STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Schinne-Geschw.-Limit: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Schinne-Geschw.-Limit: {LTBLUE}{VELOCITY}
STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Stroosse-Geschw.-Limit: {LTBLUE}{VELOCITY} STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Stroosse-Geschw.-Limit: {LTBLUE}{VELOCITY}
STR_LANG_AREA_INFORMATION_TRAM_SPEED_LIMIT :{BLACK}Tram-Geschw.-Limit: {LTBLUE}{VELOCITY}
# Description of land area of different tiles # Description of land area of different tiles
STR_LAI_CLEAR_DESCRIPTION_ROCKS :Fielsen STR_LAI_CLEAR_DESCRIPTION_ROCKS :Fielsen
@@ -2646,7 +2675,7 @@ STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :Strooss mat Luu
STR_LAI_ROAD_DESCRIPTION_TREE_LINED_ROAD :Strooss mat Beem STR_LAI_ROAD_DESCRIPTION_TREE_LINED_ROAD :Strooss mat Beem
STR_LAI_ROAD_DESCRIPTION_ROAD_VEHICLE_DEPOT :Stroossendepot STR_LAI_ROAD_DESCRIPTION_ROAD_VEHICLE_DEPOT :Stroossendepot
STR_LAI_ROAD_DESCRIPTION_ROAD_RAIL_LEVEL_CROSSING :Zuche/Stroosse-Barrière STR_LAI_ROAD_DESCRIPTION_ROAD_RAIL_LEVEL_CROSSING :Zuche/Stroosse-Barrière
STR_LAI_ROAD_DESCRIPTION_TRAMWAY :Tram STR_LAI_ROAD_DESCRIPTION_TRAMWAY :Tramway
# Houses come directly from their building names # Houses come directly from their building names
STR_LAI_TOWN_INDUSTRY_DESCRIPTION_UNDER_CONSTRUCTION :{STRING} (gëtt gebaut) STR_LAI_TOWN_INDUSTRY_DESCRIPTION_UNDER_CONSTRUCTION :{STRING} (gëtt gebaut)
@@ -2708,6 +2737,7 @@ STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD
# Framerate display window # Framerate display window
STR_FRAMERATE_CAPTION :{WHITE}Biller pro Sekonn STR_FRAMERATE_CAPTION :{WHITE}Biller pro Sekonn
STR_FRAMERATE_CAPTION_SMALL :{STRING}{WHITE} ({DECIMAL}x) STR_FRAMERATE_CAPTION_SMALL :{STRING}{WHITE} ({DECIMAL}x)
STR_FRAMERATE_RATE_GAMELOOP :{BLACK}Simulationsrat: {STRING}
STR_FRAMERATE_RATE_GAMELOOP_TOOLTIP :{BLACK}Unzuel Gameticks déi pro Sekonn simuléiert ginn. STR_FRAMERATE_RATE_GAMELOOP_TOOLTIP :{BLACK}Unzuel Gameticks déi pro Sekonn simuléiert ginn.
STR_FRAMERATE_RATE_BLITTER :{BLACK}Grafikframerate: {STRING} STR_FRAMERATE_RATE_BLITTER :{BLACK}Grafikframerate: {STRING}
STR_FRAMERATE_RATE_BLITTER_TOOLTIP :{BLACK}Unzuel u Videobiller déi pro Sekonn gerendert ginn. STR_FRAMERATE_RATE_BLITTER_TOOLTIP :{BLACK}Unzuel u Videobiller déi pro Sekonn gerendert ginn.
@@ -2715,21 +2745,32 @@ STR_FRAMERATE_SPEED_FACTOR :{BLACK}Aktuelle
STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK}Wéi séier d'Spill aktuell leeft, am Verglach mat der Geschw. vun der normaler Simulatioun. STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK}Wéi séier d'Spill aktuell leeft, am Verglach mat der Geschw. vun der normaler Simulatioun.
STR_FRAMERATE_CURRENT :{WHITE}Aktuell STR_FRAMERATE_CURRENT :{WHITE}Aktuell
STR_FRAMERATE_AVERAGE :{WHITE}Mëttel STR_FRAMERATE_AVERAGE :{WHITE}Mëttel
STR_FRAMERATE_MEMORYUSE :{WHITE}Späicher
STR_FRAMERATE_DATA_POINTS :{BLACK}Date baséiert op {COMMA} Miessungen
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
STR_FRAMERATE_MS_BAD :{RED}{DECIMAL} ms STR_FRAMERATE_MS_BAD :{RED}{DECIMAL} ms
STR_FRAMERATE_FPS_GOOD :{LTBLUE}{DECIMAL} Biller/s STR_FRAMERATE_FPS_GOOD :{LTBLUE}{DECIMAL} Biller/s
STR_FRAMERATE_FPS_WARN :{YELLOW}{DECIMAL} Biller/s STR_FRAMERATE_FPS_WARN :{YELLOW}{DECIMAL} Biller/s
STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL} Biller/s STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL} Biller/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_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!!
STR_FRAMERATE_GAMELOOP :{BLACK}Spill total: STR_FRAMERATE_GAMELOOP :{BLACK}Spill total:
STR_FRAMERATE_GL_TRAINS :{BLACK} Zuchticks: STR_FRAMERATE_GL_ECONOMY :{BLACK} Wuerenhandling:
STR_FRAMERATE_GL_ROADVEHS :{BLACK} Stroossegefierer Ticken: STR_FRAMERATE_GL_TRAINS :{BLACK} Zuchticker:
STR_FRAMERATE_GL_ROADVEHS :{BLACK} Stroossegefier-Ticker:
STR_FRAMERATE_GL_SHIPS :{BLACK} Schëffticker:
STR_FRAMERATE_GL_AIRCRAFT :{BLACK} Fligerticker:
STR_FRAMERATE_GL_LANDSCAPE :{BLACK} Weltticker:
STR_FRAMERATE_GL_LINKGRAPH :{BLACK} Linkgrafik-Verzögerung: STR_FRAMERATE_GL_LINKGRAPH :{BLACK} Linkgrafik-Verzögerung:
STR_FRAMERATE_DRAWING :{BLACK}Grafikrendering: STR_FRAMERATE_DRAWING :{BLACK}Grafikrendering:
STR_FRAMERATE_DRAWING_VIEWPORTS :{BLACK} Welt-Usiichten: STR_FRAMERATE_DRAWING_VIEWPORTS :{BLACK} Welt-Usiichten:
STR_FRAMERATE_VIDEO :{BLACK}Video-output: STR_FRAMERATE_VIDEO :{BLACK}Video-output:
STR_FRAMERATE_SOUND :{BLACK}Soundmixing:
STR_FRAMERATE_ALLSCRIPTS :{BLACK} GS/KI Total: STR_FRAMERATE_ALLSCRIPTS :{BLACK} GS/KI Total:
STR_FRAMERATE_GAMESCRIPT :{BLACK} Gamescript: STR_FRAMERATE_GAMESCRIPT :{BLACK} Gamescript:
STR_FRAMERATE_AI :{BLACK} KI {NUM} {STRING} STR_FRAMERATE_AI :{BLACK} KI {NUM} {STRING}
@@ -2737,10 +2778,12 @@ STR_FRAMERATE_AI :{BLACK} KI {N
############ Leave those lines in this order!! ############ Leave those lines in this order!!
STR_FRAMETIME_CAPTION_GAMELOOP :Spill-Loop STR_FRAMETIME_CAPTION_GAMELOOP :Spill-Loop
STR_FRAMETIME_CAPTION_GL_ECONOMY :Wuerenhandling STR_FRAMETIME_CAPTION_GL_ECONOMY :Wuerenhandling
STR_FRAMETIME_CAPTION_GL_TRAINS :Zuchticks STR_FRAMETIME_CAPTION_GL_TRAINS :Zuchticker
STR_FRAMETIME_CAPTION_GL_ROADVEHS :Stroossegefierer Ticken STR_FRAMETIME_CAPTION_GL_ROADVEHS :Stroossegefierer Ticken
STR_FRAMETIME_CAPTION_GL_SHIPS :Schëffticker STR_FRAMETIME_CAPTION_GL_SHIPS :Schëffticker
STR_FRAMETIME_CAPTION_GL_LANDSCAPE :Weltticks STR_FRAMETIME_CAPTION_GL_AIRCRAFT :Fligerticker
STR_FRAMETIME_CAPTION_GL_LANDSCAPE :Weltticker
STR_FRAMETIME_CAPTION_GL_LINKGRAPH :Linkgrafik Verzögerung
STR_FRAMETIME_CAPTION_DRAWING :Grafikrendering STR_FRAMETIME_CAPTION_DRAWING :Grafikrendering
STR_FRAMETIME_CAPTION_DRAWING_VIEWPORTS :Weltusiicht-Rendering STR_FRAMETIME_CAPTION_DRAWING_VIEWPORTS :Weltusiicht-Rendering
STR_FRAMETIME_CAPTION_VIDEO :Video-output STR_FRAMETIME_CAPTION_VIDEO :Video-output
@@ -2775,6 +2818,7 @@ STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}
STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}NewGRF: {WHITE}{STRING} STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}NewGRF: {WHITE}{STRING}
STR_SAVELOAD_FILTER_TITLE :{BLACK}Filter-String: STR_SAVELOAD_FILTER_TITLE :{BLACK}Filter-String:
STR_SAVELOAD_OVERWRITE_TITLE :{WHITE}Datei iwwerschreiwen STR_SAVELOAD_OVERWRITE_TITLE :{WHITE}Datei iwwerschreiwen
STR_SAVELOAD_OVERWRITE_WARNING :{YELLOW}Bass du sécher, dass du d'existéirend Datei iwwerschreiwe wëlls?
STR_SAVELOAD_OSKTITLE :{BLACK}Gëff dem Spillstand en Numm STR_SAVELOAD_OSKTITLE :{BLACK}Gëff dem Spillstand en Numm
@@ -2802,7 +2846,7 @@ STR_MAPGEN_VARIETY :{BLACK}Vielfalt
STR_MAPGEN_GENERATE :{WHITE}Generéiren STR_MAPGEN_GENERATE :{WHITE}Generéiren
# Strings for map borders at game generation # Strings for map borders at game generation
STR_MAPGEN_BORDER_TYPE :{BLACK}Kaartenenner: STR_MAPGEN_BORDER_TYPE :{BLACK}Kaartenner:
STR_MAPGEN_NORTHWEST :{BLACK}Nordwest STR_MAPGEN_NORTHWEST :{BLACK}Nordwest
STR_MAPGEN_NORTHEAST :{BLACK}Nordost STR_MAPGEN_NORTHEAST :{BLACK}Nordost
STR_MAPGEN_SOUTHEAST :{BLACK}Südost STR_MAPGEN_SOUTHEAST :{BLACK}Südost
@@ -2895,6 +2939,7 @@ STR_NEWGRF_SETTINGS_PALETTE :{BLACK}Palette:
STR_NEWGRF_SETTINGS_PALETTE_DEFAULT :Standard (S) STR_NEWGRF_SETTINGS_PALETTE_DEFAULT :Standard (S)
STR_NEWGRF_SETTINGS_PALETTE_DEFAULT_32BPP :Standard (S) / 32 bpp STR_NEWGRF_SETTINGS_PALETTE_DEFAULT_32BPP :Standard (S) / 32 bpp
STR_NEWGRF_SETTINGS_PALETTE_LEGACY :Legacy (W) STR_NEWGRF_SETTINGS_PALETTE_LEGACY :Legacy (W)
STR_NEWGRF_SETTINGS_PALETTE_LEGACY_32BPP :Legacy (W) / 32 bpp
STR_NEWGRF_SETTINGS_PARAMETER :{BLACK}Parameter: {SILVER}{STRING} STR_NEWGRF_SETTINGS_PARAMETER :{BLACK}Parameter: {SILVER}{STRING}
STR_NEWGRF_SETTINGS_PARAMETER_NONE :Keng STR_NEWGRF_SETTINGS_PARAMETER_NONE :Keng
@@ -2978,6 +3023,7 @@ STR_NEWGRF_ERROR_GRM_FAILED :Ugefroten GRF R
STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} gouf ausgeschalt vun {STRING} STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} gouf ausgeschalt vun {STRING}
STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Invalid/onbekannten Sprite Layout Format (Sprite {3:NUM}) STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Invalid/onbekannten Sprite Layout Format (Sprite {3:NUM})
STR_NEWGRF_ERROR_LIST_PROPERTY_TOO_LONG :Zevill Elementer an der Eegeschaftewert-Lëscht (Sprite {3:NUM}, Eegeschaft {4:HEX}) STR_NEWGRF_ERROR_LIST_PROPERTY_TOO_LONG :Zevill Elementer an der Eegeschaftewert-Lëscht (Sprite {3:NUM}, Eegeschaft {4:HEX})
STR_NEWGRF_ERROR_INDPROD_CALLBACK :Ongültegen Industrie-production callback (sprite {3:NUM}, "{2:STRING}")
# NewGRF related 'general' warnings # NewGRF related 'general' warnings
STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Opgepasst! STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Opgepasst!
@@ -3009,6 +3055,7 @@ STR_NEWGRF_BUGGY :{WHITE}NewGRF '
STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}Cargo/refit Informatioun fir '{1:ENGINE}' ass anescht wéi an der Kaflëscht no der Constructioun. Dëst kann en Autoerneirung/-ersetzen Fehler oprufen STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}Cargo/refit Informatioun fir '{1:ENGINE}' ass anescht wéi an der Kaflëscht no der Constructioun. Dëst kann en Autoerneirung/-ersetzen Fehler oprufen
STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' huet eng Endlosschläif am Production callback verursaacht STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' huet eng Endlosschläif am Production callback verursaacht
STR_NEWGRF_BUGGY_UNKNOWN_CALLBACK_RESULT :{WHITE}Callback {1:HEX} huet en onbekannten/invalid Resultat {2:HEX} STR_NEWGRF_BUGGY_UNKNOWN_CALLBACK_RESULT :{WHITE}Callback {1:HEX} huet en onbekannten/invalid Resultat {2:HEX}
STR_NEWGRF_BUGGY_INVALID_CARGO_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' huet en ongültegen Wuerentyp am Production-callback bei {2:HEX}
# 'User removed essential NewGRFs'-placeholders for stuff without specs # 'User removed essential NewGRFs'-placeholders for stuff without specs
STR_NEWGRF_INVALID_CARGO :<invalid Wuer> STR_NEWGRF_INVALID_CARGO :<invalid Wuer>
@@ -3075,6 +3122,8 @@ STR_TOWN_VIEW_RENAME_TOWN_BUTTON :Stad ëmbenenne
# Town local authority window # Town local authority window
STR_LOCAL_AUTHORITY_CAPTION :{WHITE}Gemeng {TOWN} STR_LOCAL_AUTHORITY_CAPTION :{WHITE}Gemeng {TOWN}
STR_LOCAL_AUTHORITY_ZONE :{BLACK}Zone
STR_LOCAL_AUTHORITY_ZONE_TOOLTIP :{BLACK}Weis d'Zone vun de Gemengegrenzen
STR_LOCAL_AUTHORITY_COMPANY_RATINGS :{BLACK}Transportfirme-Bewäertung: STR_LOCAL_AUTHORITY_COMPANY_RATINGS :{BLACK}Transportfirme-Bewäertung:
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}Verfügbar Aktiounen: STR_LOCAL_AUTHORITY_ACTIONS_TITLE :{BLACK}Verfügbar Aktiounen:
@@ -3103,6 +3152,7 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}D'Gemen
# Goal window # Goal window
STR_GOALS_CAPTION :{WHITE}{COMPANY} Ziler STR_GOALS_CAPTION :{WHITE}{COMPANY} Ziler
STR_GOALS_SPECTATOR_CAPTION :{WHITE}Global Ziler STR_GOALS_SPECTATOR_CAPTION :{WHITE}Global Ziler
STR_GOALS_SPECTATOR :Global Ziler
STR_GOALS_GLOBAL_TITLE :{BLACK}Global Ziler: STR_GOALS_GLOBAL_TITLE :{BLACK}Global Ziler:
STR_GOALS_TEXT :{ORANGE}{STRING} STR_GOALS_TEXT :{ORANGE}{STRING}
STR_GOALS_NONE :{ORANGE}- Keng - STR_GOALS_NONE :{ORANGE}- Keng -
@@ -3333,6 +3383,7 @@ STR_COMPANY_INFRASTRUCTURE_VIEW_CAPTION :{WHITE}Infrastr
STR_COMPANY_INFRASTRUCTURE_VIEW_RAIL_SECT :{GOLD}Schinnestécker: STR_COMPANY_INFRASTRUCTURE_VIEW_RAIL_SECT :{GOLD}Schinnestécker:
STR_COMPANY_INFRASTRUCTURE_VIEW_SIGNALS :{WHITE}Signaler STR_COMPANY_INFRASTRUCTURE_VIEW_SIGNALS :{WHITE}Signaler
STR_COMPANY_INFRASTRUCTURE_VIEW_ROAD_SECT :{GOLD}Stroossestécker: STR_COMPANY_INFRASTRUCTURE_VIEW_ROAD_SECT :{GOLD}Stroossestécker:
STR_COMPANY_INFRASTRUCTURE_VIEW_TRAM_SECT :{GOLD}Tramdeeler:
STR_COMPANY_INFRASTRUCTURE_VIEW_WATER_SECT :{GOLD}Waasserfelder: STR_COMPANY_INFRASTRUCTURE_VIEW_WATER_SECT :{GOLD}Waasserfelder:
STR_COMPANY_INFRASTRUCTURE_VIEW_CANALS :{WHITE}Kanäl STR_COMPANY_INFRASTRUCTURE_VIEW_CANALS :{WHITE}Kanäl
STR_COMPANY_INFRASTRUCTURE_VIEW_STATION_SECT :{GOLD}Statiounen: STR_COMPANY_INFRASTRUCTURE_VIEW_STATION_SECT :{GOLD}Statiounen:
@@ -3343,7 +3394,12 @@ STR_COMPANY_INFRASTRUCTURE_VIEW_TOTAL :{WHITE}{CURRENC
# Industry directory # Industry directory
STR_INDUSTRY_DIRECTORY_CAPTION :{WHITE}Industrien STR_INDUSTRY_DIRECTORY_CAPTION :{WHITE}Industrien
STR_INDUSTRY_DIRECTORY_NONE :{ORANGE}- Keng - STR_INDUSTRY_DIRECTORY_NONE :{ORANGE}- Keng -
STR_INDUSTRY_DIRECTORY_ITEM_INFO :{BLACK}{CARGO_LONG}{STRING}{YELLOW} ({COMMA}% transportéiert){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} an nach {NUM} méi...
STR_INDUSTRY_DIRECTORY_LIST_CAPTION :{BLACK}Industrienimm - klick op en Numm fir d'Usiicht do drop ze zentréieren. Ctrl+Klick erstellt eng nei Usiicht op d'Industrie STR_INDUSTRY_DIRECTORY_LIST_CAPTION :{BLACK}Industrienimm - klick op en Numm fir d'Usiicht do drop ze zentréieren. Ctrl+Klick erstellt eng nei Usiicht op d'Industrie
# Industry view # Industry view
@@ -3354,6 +3410,7 @@ STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Zentréi
STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Produktiounslevel: {YELLOW}{COMMA}% STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Produktiounslevel: {YELLOW}{COMMA}%
STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}D'Industrie annoncéiert dass se zougemaach gëtt STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}D'Industrie annoncéiert dass se zougemaach gëtt
STR_INDUSTRY_VIEW_REQUIRES_N_CARGO :{BLACK}Brauch: {YELLOW}{STRING}{STRING}
STR_INDUSTRY_VIEW_PRODUCES_N_CARGO :{BLACK}Produzéiert: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_PRODUCES_N_CARGO :{BLACK}Produzéiert: {YELLOW}{STRING}{STRING}
STR_INDUSTRY_VIEW_CARGO_LIST_EXTENSION :, {STRING}{STRING} STR_INDUSTRY_VIEW_CARGO_LIST_EXTENSION :, {STRING}{STRING}
@@ -3438,9 +3495,11 @@ STR_BUY_VEHICLE_TRAIN_MONORAIL_CAPTION :Nei Monorailgef
STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Nei Magnéitbunngefierer STR_BUY_VEHICLE_TRAIN_MAGLEV_CAPTION :Nei Magnéitbunngefierer
STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Nei Stroossegefierer STR_BUY_VEHICLE_ROAD_VEHICLE_CAPTION :Nei Stroossegefierer
STR_BUY_VEHICLE_TRAM_VEHICLE_CAPTION :Nei Tramgefierer
############ range for vehicle availability starts ############ range for vehicle availability starts
STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Nei Zich STR_BUY_VEHICLE_TRAIN_ALL_CAPTION :Nei Zich
STR_BUY_VEHICLE_ROAD_VEHICLE_ALL_CAPTION :Nei Stroossegefierer
STR_BUY_VEHICLE_SHIP_CAPTION :Nei Schëffer STR_BUY_VEHICLE_SHIP_CAPTION :Nei Schëffer
STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Neie Fliger STR_BUY_VEHICLE_AIRCRAFT_CAPTION :Neie Fliger
############ range for vehicle availability ends ############ range for vehicle availability ends
@@ -3465,6 +3524,7 @@ STR_PURCHASE_INFO_AIRCRAFT_CAPACITY :{BLACK}Kapazit
STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Ugedriwwen Waggonen: {GOLD}+{POWER}{BLACK} Gewiicht: {GOLD}+{WEIGHT_SHORT} STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Ugedriwwen Waggonen: {GOLD}+{POWER}{BLACK} Gewiicht: {GOLD}+{WEIGHT_SHORT}
STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Embaubar zu: {GOLD}{STRING} STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Embaubar zu: {GOLD}{STRING}
STR_PURCHASE_INFO_ALL_TYPES :All Wuerentyp STR_PURCHASE_INFO_ALL_TYPES :All Wuerentyp
STR_PURCHASE_INFO_NONE :Keng
STR_PURCHASE_INFO_ALL_BUT :Alles ausser {CARGO_LIST} STR_PURCHASE_INFO_ALL_BUT :Alles ausser {CARGO_LIST}
STR_PURCHASE_INFO_MAX_TE :{BLACK}Max. Zéikraaft: {GOLD}{FORCE} STR_PURCHASE_INFO_MAX_TE :{BLACK}Max. Zéikraaft: {GOLD}{FORCE}
STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Distanz: {GOLD}{COMMA} Felder STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Distanz: {GOLD}{COMMA} Felder
@@ -3491,6 +3551,8 @@ STR_BUY_VEHICLE_SHIP_BUY_VEHICLE_TOOLTIP :{BLACK}Keeft da
STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_TOOLTIP :{BLACK}Keeft den ungewielte Fliger. Shift+Klick weist ongeféier Käschten ouni Kaf STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_TOOLTIP :{BLACK}Keeft den ungewielte Fliger. Shift+Klick weist ongeféier Käschten ouni Kaf
STR_BUY_VEHICLE_TRAIN_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}Gewielten Zuch/Waggon kafen an ëmbauen. Shift+Klick weist ongeféier Käschten ouni Kaf STR_BUY_VEHICLE_TRAIN_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}Gewielten Zuch/Waggon kafen an ëmbauen. Shift+Klick weist ongeféier Käschten ouni Kaf
STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}Gewielte Gefier kafen an ëmbauen. Shift+Klick weist ongeféier Käschten ouni Kaf
STR_BUY_VEHICLE_SHIP_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}Gewielte Schëff kafen an ëmbauen. Shift+Klick weist ongeféier Käschten ouni Kaf
STR_BUY_VEHICLE_AIRCRAFT_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}Gewielte Fliger kafen an ëmbauen. Shift+Klick weist ongeféier Käschten ouni Kaf STR_BUY_VEHICLE_AIRCRAFT_BUY_REFIT_VEHICLE_TOOLTIP :{BLACK}Gewielte Fliger kafen an ëmbauen. Shift+Klick weist ongeféier Käschten ouni Kaf
STR_BUY_VEHICLE_TRAIN_RENAME_BUTTON :{BLACK}Ëmbenennen STR_BUY_VEHICLE_TRAIN_RENAME_BUTTON :{BLACK}Ëmbenennen
@@ -3603,10 +3665,12 @@ STR_ENGINE_PREVIEW_CAPTION :{WHITE}Meldung
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Mir hunn elo en neien {STRING} gebaut - bass du dorun interesséiert dëst Gefier 1 Joer exklusiv ze notzen, fir ze testen op et komplett maarträif ass? STR_ENGINE_PREVIEW_MESSAGE :{GOLD}Mir hunn elo en neien {STRING} gebaut - bass du dorun interesséiert dëst Gefier 1 Joer exklusiv ze notzen, fir ze testen op et komplett maarträif ass?
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :Lokomotiv STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :Lokomotiv
STR_ENGINE_PREVIEW_ELRAIL_LOCOMOTIVE :Elektresch Lokomotiv
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :Monorail Lokomotiv STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :Monorail Lokomotiv
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :Magnéitbunnlokomotiv STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :Magnéitbunnlokomotiv
STR_ENGINE_PREVIEW_ROAD_VEHICLE :Stroossegefier STR_ENGINE_PREVIEW_ROAD_VEHICLE :Stroossegefier
STR_ENGINE_PREVIEW_TRAM_VEHICLE :Tram-Gefier
STR_ENGINE_PREVIEW_AIRCRAFT :Fliger STR_ENGINE_PREVIEW_AIRCRAFT :Fliger
STR_ENGINE_PREVIEW_SHIP :Schëff STR_ENGINE_PREVIEW_SHIP :Schëff
@@ -3648,14 +3712,18 @@ STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Wiessel
STR_REPLACE_ENGINES :Lokomotiven STR_REPLACE_ENGINES :Lokomotiven
STR_REPLACE_WAGONS :Waggonen STR_REPLACE_WAGONS :Waggonen
STR_REPLACE_ALL_RAILTYPE :All Zich STR_REPLACE_ALL_RAILTYPE :All Zich
STR_REPLACE_ALL_ROADTYPE :All Stroossegefierer
STR_REPLACE_HELP_RAILTYPE :{BLACK}Wielt de Schinnentyp fir déi Lokomotiven ausgetosch ginn STR_REPLACE_HELP_RAILTYPE :{BLACK}Wielt de Schinnentyp fir déi Lokomotiven ausgetosch ginn
STR_REPLACE_HELP_ROADTYPE :{BLACK}Wielt de Stroossentyp fir déi d'Maschinnen ausgetosch ginn
STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Weist un wellech Lokomotiv vun der lénks ugewielter Lokomotiv ausgetosch soll ginn, wann et zoutrëfft STR_REPLACE_HELP_REPLACE_INFO_TAB :{BLACK}Weist un wellech Lokomotiv vun der lénks ugewielter Lokomotiv ausgetosch soll ginn, wann et zoutrëfft
STR_REPLACE_RAIL_VEHICLES :Zich STR_REPLACE_RAIL_VEHICLES :Zich
STR_REPLACE_ELRAIL_VEHICLES :Elektresch Zich STR_REPLACE_ELRAIL_VEHICLES :Elektresch Zich
STR_REPLACE_MONORAIL_VEHICLES :Monorail Gefierer STR_REPLACE_MONORAIL_VEHICLES :Monorail Gefierer
STR_REPLACE_MAGLEV_VEHICLES :Magnéitbunn Gefierer STR_REPLACE_MAGLEV_VEHICLES :Magnéitbunn Gefierer
STR_REPLACE_ROAD_VEHICLES :Stroossegefierer
STR_REPLACE_TRAM_VEHICLES :Tram-Gefierer
STR_REPLACE_REMOVE_WAGON :{BLACK}Waggon raushuelen: {ORANGE}{STRING} STR_REPLACE_REMOVE_WAGON :{BLACK}Waggon raushuelen: {ORANGE}{STRING}
STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Mécht dass d'automatescht Austauschen d'Längt vum Zuch behält, an dem e Waggonen (vu lénks un) wechhëllt, wann d'Lok den Zuch ze laang mécht STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}Mécht dass d'automatescht Austauschen d'Längt vum Zuch behält, an dem e Waggonen (vu lénks un) wechhëllt, wann d'Lok den Zuch ze laang mécht
@@ -3706,7 +3774,7 @@ STR_VEHICLE_VIEW_AIRCRAFT_STATE_START_STOP_TOOLTIP :{BLACK}Momentan
# Messages in the start stop button in the vehicle view # Messages in the start stop button in the vehicle view
STR_VEHICLE_STATUS_LOADING_UNLOADING :{LTBLUE}Lueden / Entlueden STR_VEHICLE_STATUS_LOADING_UNLOADING :{LTBLUE}Lueden / Entlueden
STR_VEHICLE_STATUS_LEAVING :{LTBLUE}Verloossen STR_VEHICLE_STATUS_LEAVING :{LTBLUE}Verloossen
STR_VEHICLE_STATUS_CRASHED :{RED}Akzident! STR_VEHICLE_STATUS_CRASHED :{RED}Accident!
STR_VEHICLE_STATUS_BROKEN_DOWN :{RED}Pann STR_VEHICLE_STATUS_BROKEN_DOWN :{RED}Pann
STR_VEHICLE_STATUS_STOPPED :{RED}Gestoppt STR_VEHICLE_STATUS_STOPPED :{RED}Gestoppt
STR_VEHICLE_STATUS_TRAIN_STOPPING_VEL :{RED}Stoppt, {VELOCITY} STR_VEHICLE_STATUS_TRAIN_STOPPING_VEL :{RED}Stoppt, {VELOCITY}
@@ -3995,7 +4063,7 @@ STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(fuer während
STR_TIMETABLE_STAY_FOR :an bleif fir {STRING} STR_TIMETABLE_STAY_FOR :an bleif fir {STRING}
STR_TIMETABLE_AND_TRAVEL_FOR :an ënnerwee während {STRING} STR_TIMETABLE_AND_TRAVEL_FOR :an ënnerwee während {STRING}
STR_TIMETABLE_DAYS :{COMMA}{NBSP}D{P ag eeg} STR_TIMETABLE_DAYS :{COMMA}{NBSP}D{P ag eeg}
STR_TIMETABLE_TICKS :{COMMA}{NBSP}Tick{P "" en} STR_TIMETABLE_TICKS :{COMMA}{NBSP}Tick{P "" er}
STR_TIMETABLE_TOTAL_TIME :{BLACK}Dësen Zäitplang brauch {STRING} fir faërdeg ze ginn STR_TIMETABLE_TOTAL_TIME :{BLACK}Dësen Zäitplang brauch {STRING} fir faërdeg ze ginn
STR_TIMETABLE_TOTAL_TIME_INCOMPLETE :{BLACK}Dësen Zäitplang brauch op manst {STRING} (net all geplangt) STR_TIMETABLE_TOTAL_TIME_INCOMPLETE :{BLACK}Dësen Zäitplang brauch op manst {STRING} (net all geplangt)
@@ -4107,6 +4175,13 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Wiel de
STR_AI_LIST_CANCEL :{BLACK}Ofbriechen STR_AI_LIST_CANCEL :{BLACK}Ofbriechen
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Script net änneren STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Script net änneren
STR_SCREENSHOT_CAPTION :{WHITE}E Screenshot maachen
STR_SCREENSHOT_SCREENSHOT :{BLACK}Normale Screenshot
STR_SCREENSHOT_ZOOMIN_SCREENSHOT :{BLACK}Voll gezoomte Screenshot
STR_SCREENSHOT_DEFAULTZOOM_SCREENSHOT :{BLACK}Standard Zoom-Screenshot
STR_SCREENSHOT_WORLD_SCREENSHOT :{BLACK}Screenshot vun der ganzer Kaart
STR_SCREENSHOT_HEIGHTMAP_SCREENSHOT :{BLACK}Héichtekaartscreenshot
# AI Parameters # AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parameter STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parameter
STR_AI_SETTINGS_CAPTION_AI :KI STR_AI_SETTINGS_CAPTION_AI :KI
@@ -4201,7 +4276,7 @@ STR_ERROR_MESSAGE_CAPTION_OTHER_COMPANY :{YELLOW}Matdeel
# Generic construction errors # Generic construction errors
STR_ERROR_OFF_EDGE_OF_MAP :{WHITE}Ausserhalb vun der Kaart STR_ERROR_OFF_EDGE_OF_MAP :{WHITE}Ausserhalb vun der Kaart
STR_ERROR_TOO_CLOSE_TO_EDGE_OF_MAP :{WHITE}Ze noo um Rand vun der Kaart STR_ERROR_TOO_CLOSE_TO_EDGE_OF_MAP :{WHITE}Ze no um Rand vun der Kaart
STR_ERROR_NOT_ENOUGH_CASH_REQUIRES_CURRENCY :{WHITE}Net genuch Geld - des Aktioun kascht {CURRENCY_LONG} STR_ERROR_NOT_ENOUGH_CASH_REQUIRES_CURRENCY :{WHITE}Net genuch Geld - des Aktioun kascht {CURRENCY_LONG}
STR_ERROR_FLAT_LAND_REQUIRED :{WHITE}D'Land muss flaach sinn STR_ERROR_FLAT_LAND_REQUIRED :{WHITE}D'Land muss flaach sinn
STR_ERROR_LAND_SLOPED_IN_WRONG_DIRECTION :{WHITE}Land ass an déi falsch Richtung geneigt STR_ERROR_LAND_SLOPED_IN_WRONG_DIRECTION :{WHITE}Land ass an déi falsch Richtung geneigt
@@ -4256,8 +4331,8 @@ STR_ERROR_CAN_T_GENERATE_TOWN :{WHITE}Ka keng
STR_ERROR_CAN_T_RENAME_TOWN :{WHITE}Kann d'Stad net ëmbenennen... STR_ERROR_CAN_T_RENAME_TOWN :{WHITE}Kann d'Stad net ëmbenennen...
STR_ERROR_CAN_T_FOUND_TOWN_HERE :{WHITE}Kann d'Stad hei net bauen... STR_ERROR_CAN_T_FOUND_TOWN_HERE :{WHITE}Kann d'Stad hei net bauen...
STR_ERROR_CAN_T_EXPAND_TOWN :{WHITE}Kann d'Stad net vergréisseren... STR_ERROR_CAN_T_EXPAND_TOWN :{WHITE}Kann d'Stad net vergréisseren...
STR_ERROR_TOO_CLOSE_TO_EDGE_OF_MAP_SUB :{WHITE}... ze noo um Enn vun der Kaart STR_ERROR_TOO_CLOSE_TO_EDGE_OF_MAP_SUB :{WHITE}... ze no um Rand vun der Kaart
STR_ERROR_TOO_CLOSE_TO_ANOTHER_TOWN :{WHITE}... ze noo un enger anerer Stad STR_ERROR_TOO_CLOSE_TO_ANOTHER_TOWN :{WHITE}... ze no un enger anerer Stad
STR_ERROR_TOO_MANY_TOWNS :{WHITE}... ze vill Stied STR_ERROR_TOO_MANY_TOWNS :{WHITE}... ze vill Stied
STR_ERROR_NO_SPACE_FOR_TOWN :{WHITE}... et ass keng Plaz méi op der Kaart STR_ERROR_NO_SPACE_FOR_TOWN :{WHITE}... et ass keng Plaz méi op der Kaart
STR_ERROR_TOWN_EXPAND_WARN_NO_ROADS :{WHITE}Stied bauen keng Stroossen. Du kanns de Bau iwwert Astellungen->Economie->Stied aschalten STR_ERROR_TOWN_EXPAND_WARN_NO_ROADS :{WHITE}Stied bauen keng Stroossen. Du kanns de Bau iwwert Astellungen->Economie->Stied aschalten
@@ -4270,7 +4345,7 @@ STR_ERROR_TOO_MANY_INDUSTRIES :{WHITE}... zevi
STR_ERROR_CAN_T_GENERATE_INDUSTRIES :{WHITE}Kann keng Industrien bauen... STR_ERROR_CAN_T_GENERATE_INDUSTRIES :{WHITE}Kann keng Industrien bauen...
STR_ERROR_CAN_T_BUILD_HERE :{WHITE}Kann {STRING} net hei bauen... STR_ERROR_CAN_T_BUILD_HERE :{WHITE}Kann {STRING} net hei bauen...
STR_ERROR_CAN_T_CONSTRUCT_THIS_INDUSTRY :{WHITE}Kann deen Industrietyp hei net bauen... STR_ERROR_CAN_T_CONSTRUCT_THIS_INDUSTRY :{WHITE}Kann deen Industrietyp hei net bauen...
STR_ERROR_INDUSTRY_TOO_CLOSE :{WHITE}... ze noo bei enger anerer Fabrik STR_ERROR_INDUSTRY_TOO_CLOSE :{WHITE}... ze no bei enger anerer Fabrik
STR_ERROR_MUST_FOUND_TOWN_FIRST :{WHITE}... muss fir d'éischt eng Stad bauen STR_ERROR_MUST_FOUND_TOWN_FIRST :{WHITE}... muss fir d'éischt eng Stad bauen
STR_ERROR_ONLY_ONE_ALLOWED_PER_TOWN :{WHITE}... nëmmen 1 pro Stad erlaabt STR_ERROR_ONLY_ONE_ALLOWED_PER_TOWN :{WHITE}... nëmmen 1 pro Stad erlaabt
STR_ERROR_CAN_ONLY_BE_BUILT_IN_TOWNS_WITH_POPULATION_OF_1200 :{WHITE}... kann nëmmen an Stied mat op mannst 1200 Anwunner gebaut ginn STR_ERROR_CAN_ONLY_BE_BUILT_IN_TOWNS_WITH_POPULATION_OF_1200 :{WHITE}... kann nëmmen an Stied mat op mannst 1200 Anwunner gebaut ginn
@@ -4302,8 +4377,8 @@ STR_ERROR_TOO_MANY_STATIONS_LOADING :{WHITE}Ze vill
STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Ze vill Garesdeeler STR_ERROR_TOO_MANY_STATION_SPECS :{WHITE}Ze vill Garesdeeler
STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Ze vill Busarrêten STR_ERROR_TOO_MANY_BUS_STOPS :{WHITE}Ze vill Busarrêten
STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Ze vill Camionsgaren STR_ERROR_TOO_MANY_TRUCK_STOPS :{WHITE}Ze vill Camionsgaren
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Ze noo un engem aanerem Hafen STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Ze no un engem aaneren Hafen
STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Ze noo un engem aaneren Fluchhafen STR_ERROR_TOO_CLOSE_TO_ANOTHER_AIRPORT :{WHITE}Ze no un engem aanere Fluchhafen
STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Kann d'Statioun net ëmbenennen... STR_ERROR_CAN_T_RENAME_STATION :{WHITE}Kann d'Statioun net ëmbenennen...
STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... d'Strooss ass am Besëtz vun der Stad STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... d'Strooss ass am Besëtz vun der Stad
STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... Strooss geet an dei falsch Richtung STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... Strooss geet an dei falsch Richtung
@@ -4378,7 +4453,8 @@ STR_ERROR_MUST_REMOVE_SIGNALS_FIRST :{WHITE}Signaler
STR_ERROR_NO_SUITABLE_RAILROAD_TRACK :{WHITE}Keng gëeegent Schinnen STR_ERROR_NO_SUITABLE_RAILROAD_TRACK :{WHITE}Keng gëeegent Schinnen
STR_ERROR_MUST_REMOVE_RAILROAD_TRACK :{WHITE}D'Schinne musse fir d'éischt ewech STR_ERROR_MUST_REMOVE_RAILROAD_TRACK :{WHITE}D'Schinne musse fir d'éischt ewech
STR_ERROR_CROSSING_ON_ONEWAY_ROAD :{WHITE}D'Strooss ass eng Einbahn oder blockéiert STR_ERROR_CROSSING_ON_ONEWAY_ROAD :{WHITE}D'Strooss ass eng Einbahn oder blockéiert
STR_ERROR_CROSSING_DISALLOWED_RAIL :{WHITE}Barrièren si fir dësen Schinnentyp net erlaabt STR_ERROR_CROSSING_DISALLOWED_RAIL :{WHITE}Barrière si fir dëse Schinnentyp net erlaabt
STR_ERROR_CROSSING_DISALLOWED_ROAD :{WHITE}Barrière si fir dëse Stroossentyp net erlaabt
STR_ERROR_CAN_T_BUILD_SIGNALS_HERE :{WHITE}Kann d'Signaler hei net bauen... STR_ERROR_CAN_T_BUILD_SIGNALS_HERE :{WHITE}Kann d'Signaler hei net bauen...
STR_ERROR_CAN_T_BUILD_RAILROAD_TRACK :{WHITE}Kann d'Schinnen hei net bauen... STR_ERROR_CAN_T_BUILD_RAILROAD_TRACK :{WHITE}Kann d'Schinnen hei net bauen...
STR_ERROR_CAN_T_REMOVE_RAILROAD_TRACK :{WHITE}Kann d'Schinnen hei net ewech huelen... STR_ERROR_CAN_T_REMOVE_RAILROAD_TRACK :{WHITE}Kann d'Schinnen hei net ewech huelen...
@@ -4393,11 +4469,17 @@ STR_ERROR_CAN_T_CONVERT_RAIL :{WHITE}Kann de
STR_ERROR_MUST_REMOVE_ROAD_FIRST :{WHITE}Muss d'Strooss ewech huelen STR_ERROR_MUST_REMOVE_ROAD_FIRST :{WHITE}Muss d'Strooss ewech huelen
STR_ERROR_ONEWAY_ROADS_CAN_T_HAVE_JUNCTION :{WHITE}... Einbahnstroossen kënnen keng Kräizung hunn STR_ERROR_ONEWAY_ROADS_CAN_T_HAVE_JUNCTION :{WHITE}... Einbahnstroossen kënnen keng Kräizung hunn
STR_ERROR_CAN_T_BUILD_ROAD_HERE :{WHITE}Kann d'Strooss hei net bauen... STR_ERROR_CAN_T_BUILD_ROAD_HERE :{WHITE}Kann d'Strooss hei net bauen...
STR_ERROR_CAN_T_BUILD_TRAMWAY_HERE :{WHITE}Kann den Tram hei net bauen... STR_ERROR_CAN_T_BUILD_TRAMWAY_HERE :{WHITE}Kann Tramway hei net bauen...
STR_ERROR_CAN_T_REMOVE_ROAD_FROM :{WHITE}Kann d'Strooss hei net ewech huelen... STR_ERROR_CAN_T_REMOVE_ROAD_FROM :{WHITE}Kann d'Strooss hei net ewech huelen...
STR_ERROR_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}Kann den Tram net ewech huelen... STR_ERROR_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}Kann den Tramway net ewech huelen...
STR_ERROR_THERE_IS_NO_ROAD :{WHITE}... et ass keng Strooss do STR_ERROR_THERE_IS_NO_ROAD :{WHITE}... et ass keng Strooss do
STR_ERROR_THERE_IS_NO_TRAMWAY :{WHITE}... et ass keen Tram do STR_ERROR_THERE_IS_NO_TRAMWAY :{WHITE}... et ass keen Tramway do
STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}Kann den Gefiertyp hei net konvertéiren...
STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}Kann den Tramwaytyp hei net konvertéiren...
STR_ERROR_NO_SUITABLE_ROAD :{WHITE}Keng geeegent Strooss
STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}Kee passenden Tramway
STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... inkompatibel Strooss
STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... inkompatiblen Tramway
# Waterway construction errors # Waterway construction errors
STR_ERROR_CAN_T_BUILD_CANALS :{WHITE}Kann hei keen Kanal bauen... STR_ERROR_CAN_T_BUILD_CANALS :{WHITE}Kann hei keen Kanal bauen...

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