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:
@@ -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)
|
||||
------------------------------------------------------------------------
|
||||
- Feature: Configurable minimum age for companies before allowing share trading (#7780)
|
||||
|
@@ -1609,12 +1609,20 @@ make_cflags_and_ldflags() {
|
||||
# extensions in a way that breaks build with at least ICC.
|
||||
# This requires -O1 or more, so debug level 3 (-O0) is excluded.
|
||||
CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=2"
|
||||
if [ "$os" = "MINGW" ]; then
|
||||
# Prevent undefined references when _FORTIFY_SOURCE > 0
|
||||
LDFLAGS="$LDFLAGS -fstack-protector"
|
||||
fi
|
||||
fi
|
||||
|
||||
cc_build_is_gcc=`basename "$cc_build" | grep "gcc" 2>/dev/null`
|
||||
if [ -n "$cc_build_is_gcc" ]; then
|
||||
# Add -O1 and fortify source to the tools needed for building, on gcc
|
||||
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
|
||||
# Add -O1 to the tools needed for building, on clang
|
||||
CFLAGS_BUILD="$CFLAGS_BUILD -O1"
|
||||
|
@@ -1,6 +1,6 @@
|
||||
OpenTTD's known bugs
|
||||
Last updated: 2019-10-29
|
||||
Release version: 1.10.0-beta1
|
||||
Last updated: 2019-12-25
|
||||
Release version: 1.10.0-beta2
|
||||
------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
@@ -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
|
||||
|
||||
* New upstream release 1.10.0-beta1
|
||||
|
@@ -17,9 +17,9 @@
|
||||
#
|
||||
|
||||
Name: openttd
|
||||
Version: 1.10.beta1
|
||||
Version: 1.10.beta2
|
||||
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
|
||||
License: GPL-2.0
|
||||
Group: Amusements/Games/Strategy/Other
|
||||
|
@@ -2,8 +2,8 @@
|
||||
!define APPV_MAJOR 1
|
||||
!define APPV_MINOR 10
|
||||
!define APPV_MAINT 0
|
||||
!define APPV_BUILD 0
|
||||
!define APPV_EXTRA "-beta1"
|
||||
!define APPV_BUILD 1
|
||||
!define APPV_EXTRA "-beta2"
|
||||
|
||||
!define APPNAME "OpenTTD" ; Define application name
|
||||
!define APPVERSION "${APPV_MAJOR}.${APPV_MINOR}.${APPV_MAINT}${APPV_EXTRA}" ; Define application version
|
||||
|
@@ -420,6 +420,7 @@
|
||||
<ClCompile Include="..\src\rev.cpp" />
|
||||
<ClCompile Include="..\src\road.cpp" />
|
||||
<ClCompile Include="..\src\roadstop.cpp" />
|
||||
<ClCompile Include="..\src\screenshot_gui.cpp" />
|
||||
<ClCompile Include="..\src\screenshot.cpp" />
|
||||
<ClCompile Include="..\src\settings.cpp" />
|
||||
<ClCompile Include="..\src\signal.cpp" />
|
||||
@@ -649,8 +650,10 @@
|
||||
<ClInclude Include="..\src\safeguards.h" />
|
||||
<ClInclude Include="..\src\scope.h" />
|
||||
<ClInclude Include="..\src\screenshot.h" />
|
||||
<ClInclude Include="..\src\screenshot_gui.h" />
|
||||
<ClInclude Include="..\src\sound\sdl_s.h" />
|
||||
<ClInclude Include="..\src\video\sdl_v.h" />
|
||||
<ClInclude Include="..\src\video\sdl2_v.h" />
|
||||
<ClInclude Include="..\src\schdispatch.h" />
|
||||
<ClInclude Include="..\src\settings_func.h" />
|
||||
<ClInclude Include="..\src\settings_gui.h" />
|
||||
@@ -886,6 +889,7 @@
|
||||
<ClInclude Include="..\src\widgets\plans_widget.h" />
|
||||
<ClInclude Include="..\src\widgets\rail_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\sign_widget.h" />
|
||||
<ClInclude Include="..\src\widgets\smallmap_widget.h" />
|
||||
@@ -1382,6 +1386,7 @@
|
||||
<ClCompile Include="..\src\video\dedicated_v.cpp" />
|
||||
<ClCompile Include="..\src\video\null_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\music\dmusic.cpp" />
|
||||
<ClCompile Include="..\src\music\null_m.cpp" />
|
||||
@@ -1389,6 +1394,7 @@
|
||||
<ClCompile Include="..\src\music\win32_m.cpp" />
|
||||
<ClCompile Include="..\src\sound\null_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\xaudio2_s.cpp" />
|
||||
<ClCompile Include="..\src\os\windows\crashlog_win.cpp" />
|
||||
|
@@ -354,6 +354,9 @@
|
||||
<ClCompile Include="..\src\roadstop.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\screenshot_gui.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\screenshot.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
@@ -1041,12 +1044,18 @@
|
||||
<ClInclude Include="..\src\screenshot.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\screenshot_gui.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\sound\sdl_s.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\video\sdl_v.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\video\sdl2_v.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\schdispatch.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
@@ -1752,6 +1761,9 @@
|
||||
<ClInclude Include="..\src\widgets\road_widget.h">
|
||||
<Filter>Widgets</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\widgets\screenshot_widget.h">
|
||||
<Filter>Widgets</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\widgets\settings_widget.h">
|
||||
<Filter>Widgets</Filter>
|
||||
</ClInclude>
|
||||
@@ -3240,6 +3252,9 @@
|
||||
<ClCompile Include="..\src\video\sdl_v.cpp">
|
||||
<Filter>Video</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\video\sdl2_v.cpp">
|
||||
<Filter>Video</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\video\win32_v.cpp">
|
||||
<Filter>Video</Filter>
|
||||
</ClCompile>
|
||||
@@ -3261,6 +3276,9 @@
|
||||
<ClCompile Include="..\src\sound\sdl_s.cpp">
|
||||
<Filter>Sound</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\sound\sdl2_s.cpp">
|
||||
<Filter>Sound</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\sound\win32_s.cpp">
|
||||
<Filter>Sound</Filter>
|
||||
</ClCompile>
|
||||
|
@@ -420,6 +420,7 @@
|
||||
<ClCompile Include="..\src\rev.cpp" />
|
||||
<ClCompile Include="..\src\road.cpp" />
|
||||
<ClCompile Include="..\src\roadstop.cpp" />
|
||||
<ClCompile Include="..\src\screenshot_gui.cpp" />
|
||||
<ClCompile Include="..\src\screenshot.cpp" />
|
||||
<ClCompile Include="..\src\settings.cpp" />
|
||||
<ClCompile Include="..\src\signal.cpp" />
|
||||
@@ -649,8 +650,10 @@
|
||||
<ClInclude Include="..\src\safeguards.h" />
|
||||
<ClInclude Include="..\src\scope.h" />
|
||||
<ClInclude Include="..\src\screenshot.h" />
|
||||
<ClInclude Include="..\src\screenshot_gui.h" />
|
||||
<ClInclude Include="..\src\sound\sdl_s.h" />
|
||||
<ClInclude Include="..\src\video\sdl_v.h" />
|
||||
<ClInclude Include="..\src\video\sdl2_v.h" />
|
||||
<ClInclude Include="..\src\schdispatch.h" />
|
||||
<ClInclude Include="..\src\settings_func.h" />
|
||||
<ClInclude Include="..\src\settings_gui.h" />
|
||||
@@ -886,6 +889,7 @@
|
||||
<ClInclude Include="..\src\widgets\plans_widget.h" />
|
||||
<ClInclude Include="..\src\widgets\rail_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\sign_widget.h" />
|
||||
<ClInclude Include="..\src\widgets\smallmap_widget.h" />
|
||||
@@ -1382,6 +1386,7 @@
|
||||
<ClCompile Include="..\src\video\dedicated_v.cpp" />
|
||||
<ClCompile Include="..\src\video\null_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\music\dmusic.cpp" />
|
||||
<ClCompile Include="..\src\music\null_m.cpp" />
|
||||
@@ -1389,6 +1394,7 @@
|
||||
<ClCompile Include="..\src\music\win32_m.cpp" />
|
||||
<ClCompile Include="..\src\sound\null_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\xaudio2_s.cpp" />
|
||||
<ClCompile Include="..\src\os\windows\crashlog_win.cpp" />
|
||||
|
@@ -354,6 +354,9 @@
|
||||
<ClCompile Include="..\src\roadstop.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\screenshot_gui.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\screenshot.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
@@ -1041,12 +1044,18 @@
|
||||
<ClInclude Include="..\src\screenshot.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\screenshot_gui.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\sound\sdl_s.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\video\sdl_v.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\video\sdl2_v.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\schdispatch.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
@@ -1752,6 +1761,9 @@
|
||||
<ClInclude Include="..\src\widgets\road_widget.h">
|
||||
<Filter>Widgets</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\widgets\screenshot_widget.h">
|
||||
<Filter>Widgets</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\widgets\settings_widget.h">
|
||||
<Filter>Widgets</Filter>
|
||||
</ClInclude>
|
||||
@@ -3240,6 +3252,9 @@
|
||||
<ClCompile Include="..\src\video\sdl_v.cpp">
|
||||
<Filter>Video</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\video\sdl2_v.cpp">
|
||||
<Filter>Video</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\video\win32_v.cpp">
|
||||
<Filter>Video</Filter>
|
||||
</ClCompile>
|
||||
@@ -3261,6 +3276,9 @@
|
||||
<ClCompile Include="..\src\sound\sdl_s.cpp">
|
||||
<Filter>Sound</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\sound\sdl2_s.cpp">
|
||||
<Filter>Sound</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\sound\win32_s.cpp">
|
||||
<Filter>Sound</Filter>
|
||||
</ClCompile>
|
||||
|
@@ -420,6 +420,7 @@
|
||||
<ClCompile Include="..\src\rev.cpp" />
|
||||
<ClCompile Include="..\src\road.cpp" />
|
||||
<ClCompile Include="..\src\roadstop.cpp" />
|
||||
<ClCompile Include="..\src\screenshot_gui.cpp" />
|
||||
<ClCompile Include="..\src\screenshot.cpp" />
|
||||
<ClCompile Include="..\src\settings.cpp" />
|
||||
<ClCompile Include="..\src\signal.cpp" />
|
||||
@@ -649,8 +650,10 @@
|
||||
<ClInclude Include="..\src\safeguards.h" />
|
||||
<ClInclude Include="..\src\scope.h" />
|
||||
<ClInclude Include="..\src\screenshot.h" />
|
||||
<ClInclude Include="..\src\screenshot_gui.h" />
|
||||
<ClInclude Include="..\src\sound\sdl_s.h" />
|
||||
<ClInclude Include="..\src\video\sdl_v.h" />
|
||||
<ClInclude Include="..\src\video\sdl2_v.h" />
|
||||
<ClInclude Include="..\src\schdispatch.h" />
|
||||
<ClInclude Include="..\src\settings_func.h" />
|
||||
<ClInclude Include="..\src\settings_gui.h" />
|
||||
@@ -886,6 +889,7 @@
|
||||
<ClInclude Include="..\src\widgets\plans_widget.h" />
|
||||
<ClInclude Include="..\src\widgets\rail_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\sign_widget.h" />
|
||||
<ClInclude Include="..\src\widgets\smallmap_widget.h" />
|
||||
@@ -1382,6 +1386,7 @@
|
||||
<ClCompile Include="..\src\video\dedicated_v.cpp" />
|
||||
<ClCompile Include="..\src\video\null_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\music\dmusic.cpp" />
|
||||
<ClCompile Include="..\src\music\null_m.cpp" />
|
||||
@@ -1389,6 +1394,7 @@
|
||||
<ClCompile Include="..\src\music\win32_m.cpp" />
|
||||
<ClCompile Include="..\src\sound\null_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\xaudio2_s.cpp" />
|
||||
<ClCompile Include="..\src\os\windows\crashlog_win.cpp" />
|
||||
|
@@ -354,6 +354,9 @@
|
||||
<ClCompile Include="..\src\roadstop.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\screenshot_gui.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\screenshot.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
@@ -1041,12 +1044,18 @@
|
||||
<ClInclude Include="..\src\screenshot.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\screenshot_gui.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\sound\sdl_s.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\video\sdl_v.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\video\sdl2_v.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\schdispatch.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
@@ -1752,6 +1761,9 @@
|
||||
<ClInclude Include="..\src\widgets\road_widget.h">
|
||||
<Filter>Widgets</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\widgets\screenshot_widget.h">
|
||||
<Filter>Widgets</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\src\widgets\settings_widget.h">
|
||||
<Filter>Widgets</Filter>
|
||||
</ClInclude>
|
||||
@@ -3240,6 +3252,9 @@
|
||||
<ClCompile Include="..\src\video\sdl_v.cpp">
|
||||
<Filter>Video</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\video\sdl2_v.cpp">
|
||||
<Filter>Video</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\video\win32_v.cpp">
|
||||
<Filter>Video</Filter>
|
||||
</ClCompile>
|
||||
@@ -3261,6 +3276,9 @@
|
||||
<ClCompile Include="..\src\sound\sdl_s.cpp">
|
||||
<Filter>Sound</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\sound\sdl2_s.cpp">
|
||||
<Filter>Sound</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\src\sound\win32_s.cpp">
|
||||
<Filter>Sound</Filter>
|
||||
</ClCompile>
|
||||
|
@@ -82,6 +82,7 @@ rail.cpp
|
||||
rev.cpp
|
||||
road.cpp
|
||||
roadstop.cpp
|
||||
screenshot_gui.cpp
|
||||
screenshot.cpp
|
||||
settings.cpp
|
||||
signal.cpp
|
||||
@@ -337,6 +338,7 @@ roadveh.h
|
||||
safeguards.h
|
||||
scope.h
|
||||
screenshot.h
|
||||
screenshot_gui.h
|
||||
sound/sdl_s.h
|
||||
video/sdl_v.h
|
||||
video/sdl2_v.h
|
||||
@@ -597,6 +599,7 @@ widgets/osk_widget.h
|
||||
widgets/plans_widget.h
|
||||
widgets/rail_widget.h
|
||||
widgets/road_widget.h
|
||||
widgets/screenshot_widget.h
|
||||
widgets/settings_widget.h
|
||||
widgets/sign_widget.h
|
||||
widgets/smallmap_widget.h
|
||||
|
@@ -77,8 +77,7 @@
|
||||
if ((AI::frame_counter & ((1 << (4 - _settings_game.difficulty.competitor_speed)) - 1)) != 0) return;
|
||||
|
||||
Backup<CompanyID> cur_company(_current_company, FILE_LINE);
|
||||
const Company *c;
|
||||
FOR_ALL_COMPANIES(c) {
|
||||
for (const Company *c : Company::Iterate()) {
|
||||
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());
|
||||
PerformanceMeasurer framerate((PerformanceElement)(PFE_AI0 + c->index));
|
||||
@@ -157,8 +156,7 @@
|
||||
/* It might happen there are no companies .. than we have nothing to loop */
|
||||
if (Company::GetPoolSize() == 0) return;
|
||||
|
||||
const Company *c;
|
||||
FOR_ALL_COMPANIES(c) {
|
||||
for (const Company *c : Company::Iterate()) {
|
||||
if (c->is_ai) AI::Stop(c->index);
|
||||
}
|
||||
}
|
||||
|
@@ -1052,8 +1052,7 @@ struct AIDebugWindow : public Window {
|
||||
|
||||
ai_debug_company = INVALID_COMPANY;
|
||||
|
||||
const Company *c;
|
||||
FOR_ALL_COMPANIES(c) {
|
||||
for (const Company *c : Company::Iterate()) {
|
||||
if (c->is_ai) {
|
||||
ChangeToAI(c->index);
|
||||
return;
|
||||
@@ -1312,8 +1311,7 @@ struct AIDebugWindow : public Window {
|
||||
if ((_pause_mode & PM_PAUSED_NORMAL) == PM_PAUSED_NORMAL) {
|
||||
bool all_unpaused = !Game::IsPaused();
|
||||
if (all_unpaused) {
|
||||
Company *c;
|
||||
FOR_ALL_COMPANIES(c) {
|
||||
for (const Company *c : Company::Iterate()) {
|
||||
if (c->is_ai && AI::IsPaused(c->index)) {
|
||||
all_unpaused = false;
|
||||
break;
|
||||
@@ -1552,8 +1550,7 @@ void ShowAIDebugWindowIfAIError()
|
||||
/* Network clients can't debug AIs. */
|
||||
if (_networking && !_network_server) return;
|
||||
|
||||
Company *c;
|
||||
FOR_ALL_COMPANIES(c) {
|
||||
for (const Company *c : Company::Iterate()) {
|
||||
if (c->is_ai && c->ai_instance->IsDead()) {
|
||||
ShowAIDebugWindow(c->index);
|
||||
break;
|
||||
|
@@ -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);
|
||||
|
||||
Station *GetTargetAirportIfValid(const Aircraft *v);
|
||||
|
@@ -121,7 +121,6 @@ enum HelicopterRotorStates {
|
||||
*/
|
||||
static StationID FindNearestHangar(const Aircraft *v)
|
||||
{
|
||||
const Station *st;
|
||||
uint best = 0;
|
||||
StationID index = INVALID_STATION;
|
||||
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;
|
||||
|
||||
const AirportFTAClass *afc = st->airport.GetFTA();
|
||||
@@ -2187,8 +2186,7 @@ void UpdateAirplanesOnNewStation(const Station *st)
|
||||
const AirportFTAClass *ap = st->airport.GetFTA();
|
||||
Direction rotation = st->airport.tile == INVALID_TILE ? DIR_N : st->airport.rotation;
|
||||
|
||||
Aircraft *v;
|
||||
FOR_ALL_AIRCRAFT(v) {
|
||||
for (Aircraft *v : Aircraft::Iterate()) {
|
||||
if (!v->IsNormalAircraft() || v->targetairport != st->index) continue;
|
||||
assert(v->state == FLYING);
|
||||
|
||||
|
@@ -41,7 +41,4 @@ struct EngineRenew : EngineRenewPool::PoolItem<&_enginerenew_pool> {
|
||||
~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 */
|
||||
|
@@ -124,8 +124,7 @@ class ReplaceVehicleWindow : public Window {
|
||||
GUIEngineList *list = &this->engines[side];
|
||||
list->clear();
|
||||
|
||||
const Engine *e;
|
||||
FOR_ALL_ENGINES_OF_TYPE(e, type) {
|
||||
for (const Engine *e : Engine::IterateType(type)) {
|
||||
if (!draw_left && !this->show_hidden_engines && e->IsHidden(_local_company)) continue;
|
||||
EngineID eid = e->index;
|
||||
switch (type) {
|
||||
|
@@ -187,8 +187,6 @@ struct BaseStation : StationPool::PoolItem<&_station_pool> {
|
||||
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
|
||||
* have to cast base stations that often
|
||||
@@ -276,10 +274,13 @@ struct SpecializedStation : public BaseStation {
|
||||
assert(IsExpected(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 */
|
||||
|
@@ -11,7 +11,7 @@
|
||||
#include "base_media_base.h"
|
||||
#include "blitter/factory.hpp"
|
||||
|
||||
#if defined(WITH_FREETYPE)
|
||||
#if defined(WITH_FREETYPE) || defined(WITH_UNISCRIBE)
|
||||
|
||||
#include "core/geometry_func.hpp"
|
||||
#include "fontcache.h"
|
||||
@@ -218,7 +218,7 @@ bool HandleBootstrap()
|
||||
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 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;
|
||||
|
||||
/* First tell the game we're bootstrapping. */
|
||||
@@ -262,6 +262,6 @@ bool HandleBootstrap()
|
||||
|
||||
/* Failure to get enough working to get a graphics set. */
|
||||
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;
|
||||
}
|
||||
|
@@ -1278,8 +1278,7 @@ struct BuildVehicleWindow : Window {
|
||||
* 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
|
||||
* when engines become obsolete and are removed */
|
||||
const Engine *e;
|
||||
FOR_ALL_ENGINES_OF_TYPE(e, VEH_TRAIN) {
|
||||
for (const Engine *e : Engine::IterateType(VEH_TRAIN)) {
|
||||
if (!this->show_hidden_engines && e->IsHidden(_local_company)) continue;
|
||||
EngineID eid = e->index;
|
||||
const RailVehicleInfo *rvi = &e->u.rail;
|
||||
@@ -1322,8 +1321,7 @@ struct BuildVehicleWindow : Window {
|
||||
|
||||
this->eng_list.clear();
|
||||
|
||||
const Engine *e;
|
||||
FOR_ALL_ENGINES_OF_TYPE(e, VEH_ROAD) {
|
||||
for (const Engine *e : Engine::IterateType(VEH_ROAD)) {
|
||||
if (!this->show_hidden_engines && e->IsHidden(_local_company)) continue;
|
||||
EngineID eid = e->index;
|
||||
if (!IsEngineBuildable(eid, VEH_ROAD, _local_company)) continue;
|
||||
@@ -1342,8 +1340,7 @@ struct BuildVehicleWindow : Window {
|
||||
EngineID sel_id = INVALID_ENGINE;
|
||||
this->eng_list.clear();
|
||||
|
||||
const Engine *e;
|
||||
FOR_ALL_ENGINES_OF_TYPE(e, VEH_SHIP) {
|
||||
for (const Engine *e : Engine::IterateType(VEH_SHIP)) {
|
||||
if (!this->show_hidden_engines && e->IsHidden(_local_company)) continue;
|
||||
EngineID eid = e->index;
|
||||
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,
|
||||
* and if not, reset selection to INVALID_ENGINE. This could be the case
|
||||
* when planes become obsolete and are removed */
|
||||
const Engine *e;
|
||||
FOR_ALL_ENGINES_OF_TYPE(e, VEH_AIRCRAFT) {
|
||||
for (const Engine *e : Engine::IterateType(VEH_AIRCRAFT)) {
|
||||
if (!this->show_hidden_engines && e->IsHidden(_local_company)) continue;
|
||||
EngineID eid = e->index;
|
||||
if (!IsEngineBuildable(eid, VEH_AIRCRAFT, _local_company)) continue;
|
||||
|
@@ -272,8 +272,7 @@ void CargoPacket::PayDeferredPayments()
|
||||
*/
|
||||
/* static */ void CargoPacket::InvalidateAllFrom(SourceType src_type, SourceID src)
|
||||
{
|
||||
CargoPacket *cp;
|
||||
FOR_ALL_CARGOPACKETS(cp) {
|
||||
for (CargoPacket *cp : CargoPacket::Iterate()) {
|
||||
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)
|
||||
{
|
||||
CargoPacket *cp;
|
||||
FOR_ALL_CARGOPACKETS(cp) {
|
||||
for (CargoPacket *cp : CargoPacket::Iterate()) {
|
||||
if (cp->source == sid) cp->source = INVALID_STATION;
|
||||
}
|
||||
}
|
||||
|
@@ -206,19 +206,6 @@ public:
|
||||
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.
|
||||
* @tparam Tinst Actual instantiation of this cargo list.
|
||||
|
@@ -140,6 +140,7 @@ CommandProc CmdFoundTown;
|
||||
CommandProc CmdRenameTown;
|
||||
CommandProc CmdDoTownAction;
|
||||
CommandProc CmdTownGrowthRate;
|
||||
CommandProc CmdTownRating;
|
||||
CommandProc CmdTownCargoGoal;
|
||||
CommandProc CmdTownSetText;
|
||||
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(CmdTownCargoGoal, CMD_DEITY, CMDT_OTHER_MANAGEMENT ), // CMD_TOWN_CARGO_GOAL
|
||||
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(CmdExpandTown, CMD_DEITY, CMDT_LANDSCAPE_CONSTRUCTION), // CMD_EXPAND_TOWN
|
||||
DEF_CMD(CmdDeleteTown, CMD_OFFLINE, CMDT_LANDSCAPE_CONSTRUCTION), // CMD_DELETE_TOWN
|
||||
|
@@ -305,6 +305,7 @@ enum Commands {
|
||||
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_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_EXPAND_TOWN, ///< expand a town
|
||||
CMD_DELETE_TOWN, ///< delete a town
|
||||
|
@@ -171,9 +171,6 @@ struct Company : CompanyPool::PoolItem<&_company_pool>, CompanyProperties {
|
||||
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);
|
||||
|
||||
extern uint _next_competitor_start;
|
||||
|
@@ -268,8 +268,7 @@ void SubtractMoneyFromCompanyFract(CompanyID company, CommandCost cst)
|
||||
/** Update the landscaping limits per company. */
|
||||
void UpdateLandscapingLimits()
|
||||
{
|
||||
Company *c;
|
||||
FOR_ALL_COMPANIES(c) {
|
||||
for (Company *c : Company::Iterate()) {
|
||||
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->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:;
|
||||
/* No companies must have this name already */
|
||||
Company *cc;
|
||||
FOR_ALL_COMPANIES(cc) {
|
||||
for (const Company *cc : Company::Iterate()) {
|
||||
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 */
|
||||
Company *c;
|
||||
FOR_ALL_COMPANIES(c) {
|
||||
for (const Company *c : Company::Iterate()) {
|
||||
Colours pcolour = (Colours)c->colour;
|
||||
|
||||
for (uint i = 0; i < COLOUR_END; i++) {
|
||||
@@ -500,8 +497,7 @@ restart:;
|
||||
GetString(buffer, STR_PRESIDENT_NAME, lastof(buffer));
|
||||
if (Utf8StringLength(buffer) >= MAX_LENGTH_PRESIDENT_NAME_CHARS) continue;
|
||||
|
||||
Company *cc;
|
||||
FOR_ALL_COMPANIES(cc) {
|
||||
for (const Company *cc : Company::Iterate()) {
|
||||
if (c != cc) {
|
||||
/* Reserve extra space so even overlength president names can be compared. */
|
||||
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;
|
||||
}
|
||||
|
||||
Group *g;
|
||||
FOR_ALL_GROUPS(g) {
|
||||
for (Group *g : Group::Iterate()) {
|
||||
if (g->owner == c->index) {
|
||||
g->livery.in_use = 0;
|
||||
g->livery.colour1 = c->colour;
|
||||
@@ -606,11 +601,9 @@ static bool MaybeStartNewCompany()
|
||||
{
|
||||
if (_networking && Company::GetNumItems() >= _settings_client.network.max_companies) return false;
|
||||
|
||||
Company *c;
|
||||
|
||||
/* count number of competitors */
|
||||
uint n = 0;
|
||||
FOR_ALL_COMPANIES(c) {
|
||||
for (const Company *c : Company::Iterate()) {
|
||||
if (c->is_ai) n++;
|
||||
}
|
||||
|
||||
@@ -679,11 +672,11 @@ static void HandleBankruptcyTakeover(Company *c)
|
||||
/* Did we ask everyone for bankruptcy? If so, bail out. */
|
||||
if (c->bankrupt_asked == MAX_UVALUE(CompanyMask)) return;
|
||||
|
||||
Company *c2, *best = nullptr;
|
||||
Company *best = nullptr;
|
||||
int32 best_performance = -1;
|
||||
|
||||
/* 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
|
||||
!HasBit(c->bankrupt_asked, c2->index) &&
|
||||
best_performance < c2->old_economy[1].performance_history &&
|
||||
@@ -745,10 +738,8 @@ void OnTick_Companies()
|
||||
*/
|
||||
void CompaniesYearlyLoop()
|
||||
{
|
||||
Company *c;
|
||||
|
||||
/* 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]));
|
||||
memset(&c->yearly_expenses[0], 0, sizeof(c->yearly_expenses[0]));
|
||||
SetWindowDirty(WC_FINANCES, c->index);
|
||||
@@ -756,7 +747,7 @@ void CompaniesYearlyLoop()
|
||||
|
||||
if (_settings_client.gui.show_finances && _local_company != COMPANY_SPECTATOR) {
|
||||
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 (_settings_client.sound.new_year) SndPlayFx(SND_01_BAD_YEAR);
|
||||
} else {
|
||||
@@ -988,8 +979,7 @@ CommandCost CmdSetCompanyColour(TileIndex tile, DoCommandFlag flags, uint32 p1,
|
||||
|
||||
/* Ensure no two companies have the same primary colour */
|
||||
if (scheme == LS_DEFAULT && !second) {
|
||||
const Company *cc;
|
||||
FOR_ALL_COMPANIES(cc) {
|
||||
for (const Company *cc : Company::Iterate()) {
|
||||
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);
|
||||
|
||||
/* Company colour data is indirectly cached. */
|
||||
Vehicle *v;
|
||||
FOR_ALL_VEHICLES(v) {
|
||||
for (Vehicle *v : Vehicle::Iterate()) {
|
||||
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)
|
||||
{
|
||||
const Company *c;
|
||||
|
||||
FOR_ALL_COMPANIES(c) {
|
||||
for (const Company *c : Company::Iterate()) {
|
||||
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)
|
||||
{
|
||||
const Company *c;
|
||||
|
||||
FOR_ALL_COMPANIES(c) {
|
||||
for (const Company *c : Company::Iterate()) {
|
||||
if (c->president_name != nullptr && strcmp(c->president_name, name) == 0) return false;
|
||||
}
|
||||
|
||||
|
@@ -578,7 +578,7 @@ private:
|
||||
|
||||
/* Disallow other company colours for the primary colour */
|
||||
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);
|
||||
}
|
||||
}
|
||||
@@ -662,8 +662,7 @@ private:
|
||||
GUIGroupList list;
|
||||
VehicleType vtype = (VehicleType)(this->livery_class - LC_GROUP_RAIL);
|
||||
|
||||
const Group *g;
|
||||
FOR_ALL_GROUPS(g) {
|
||||
for (const Group *g : Group::Iterate()) {
|
||||
if (g->owner == owner && g->vehicle_type == vtype) {
|
||||
list.push_back(g);
|
||||
}
|
||||
@@ -754,8 +753,7 @@ public:
|
||||
}
|
||||
|
||||
/* And group names */
|
||||
const Group *g;
|
||||
FOR_ALL_GROUPS(g) {
|
||||
for (const Group *g : Group::Iterate()) {
|
||||
if (g->owner == (CompanyID)this->window_number) {
|
||||
SetDParam(0, g->index);
|
||||
d = maxdim(d, GetStringBoundingBox(STR_GROUP_NAME));
|
||||
@@ -1829,8 +1827,7 @@ struct CompanyInfrastructureWindow : Window
|
||||
this->roadtypes = ROADTYPES_NONE;
|
||||
|
||||
/* Find the used railtypes. */
|
||||
Engine *e;
|
||||
FOR_ALL_ENGINES_OF_TYPE(e, VEH_TRAIN) {
|
||||
for (const Engine *e : Engine::IterateType(VEH_TRAIN)) {
|
||||
if (!HasBit(e->info.climates, _settings_game.game_creation.landscape)) continue;
|
||||
|
||||
this->railtypes |= GetRailTypeInfo(e->u.rail.railtype)->introduces_railtypes;
|
||||
@@ -1840,7 +1837,7 @@ struct CompanyInfrastructureWindow : Window
|
||||
this->railtypes = AddDateIntroducedRailTypes(this->railtypes, MAX_DAY);
|
||||
|
||||
/* 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;
|
||||
|
||||
this->roadtypes |= GetRoadTypeInfo(e->u.road.roadtype)->introduces_roadtypes;
|
||||
@@ -2419,9 +2416,7 @@ struct CompanyWindow : Window
|
||||
break;
|
||||
|
||||
case WID_C_DESC_OWNERS: {
|
||||
const Company *c2;
|
||||
|
||||
FOR_ALL_COMPANIES(c2) {
|
||||
for (const Company *c2 : Company::Iterate()) {
|
||||
SetDParamMaxValue(0, 75);
|
||||
SetDParam(1, c2->index);
|
||||
|
||||
@@ -2523,10 +2518,9 @@ struct CompanyWindow : Window
|
||||
}
|
||||
|
||||
case WID_C_DESC_OWNERS: {
|
||||
const Company *c2;
|
||||
uint y = r.top;
|
||||
|
||||
FOR_ALL_COMPANIES(c2) {
|
||||
for (const Company *c2 : Company::Iterate()) {
|
||||
uint amt = GetAmountOwnedBy(c, c2->index);
|
||||
if (amt != 0) {
|
||||
SetDParam(0, amt * 25);
|
||||
|
@@ -1207,9 +1207,8 @@ DEF_CONSOLE_CMD(ConStartAI)
|
||||
}
|
||||
|
||||
int n = 0;
|
||||
Company *c;
|
||||
/* Find the next free slot */
|
||||
FOR_ALL_COMPANIES(c) {
|
||||
for (const Company *c : Company::Iterate()) {
|
||||
if (c->index != n) break;
|
||||
n++;
|
||||
}
|
||||
@@ -1413,10 +1412,11 @@ DEF_CONSOLE_CMD(ConAlias)
|
||||
DEF_CONSOLE_CMD(ConScreenShot)
|
||||
{
|
||||
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 "
|
||||
"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;
|
||||
}
|
||||
|
||||
@@ -1434,6 +1434,10 @@ DEF_CONSOLE_CMD(ConScreenShot)
|
||||
/* screenshot giant [filename] */
|
||||
type = SC_WORLD;
|
||||
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) {
|
||||
/* screenshot no_con [filename] */
|
||||
IConsoleClose();
|
||||
@@ -1470,7 +1474,7 @@ DEF_CONSOLE_CMD(ConMinimap)
|
||||
name = argv[2];
|
||||
}
|
||||
|
||||
SaveMinimap(name);
|
||||
MakeMinimapWorldScreenshot(name);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1621,8 +1625,7 @@ DEF_CONSOLE_CMD(ConCompanies)
|
||||
return true;
|
||||
}
|
||||
|
||||
Company *c;
|
||||
FOR_ALL_COMPANIES(c) {
|
||||
for (const Company *c : Company::Iterate()) {
|
||||
/* Grab the company name */
|
||||
char company_name[512];
|
||||
SetDParam(0, c->index);
|
||||
@@ -1971,15 +1974,13 @@ DEF_CONSOLE_CMD(ConResetBlockedHeliports)
|
||||
}
|
||||
|
||||
unsigned int count = 0;
|
||||
Station *st;
|
||||
FOR_ALL_STATIONS(st) {
|
||||
for (Station *st : Station::Iterate()) {
|
||||
if (st->airport.tile == INVALID_TILE) continue;
|
||||
if (st->airport.HasHangar()) continue;
|
||||
if (!st->airport.flags) continue;
|
||||
|
||||
bool occupied = false;
|
||||
const Aircraft *a;
|
||||
FOR_ALL_AIRCRAFT(a) {
|
||||
for (const Aircraft *a : Aircraft::Iterate()) {
|
||||
if (a->targetairport == st->index && a->state != FLYING) {
|
||||
occupied = true;
|
||||
break;
|
||||
|
@@ -12,6 +12,7 @@
|
||||
|
||||
#include "smallvec_type.hpp"
|
||||
#include "enum_type.hpp"
|
||||
#include <functional>
|
||||
|
||||
/** Various types of a pool. */
|
||||
enum PoolType {
|
||||
@@ -137,6 +138,49 @@ struct Pool : PoolBase {
|
||||
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
|
||||
* @tparam Tpool The pool this item is going to be part of
|
||||
@@ -145,6 +189,9 @@ struct Pool : PoolBase {
|
||||
struct PoolItem {
|
||||
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
|
||||
* @param size size of Titem
|
||||
@@ -292,6 +339,13 @@ struct Pool : PoolBase {
|
||||
* @note it's called only when CleaningPool()
|
||||
*/
|
||||
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:
|
||||
@@ -319,10 +373,4 @@ private:
|
||||
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 */
|
||||
|
@@ -16,7 +16,7 @@
|
||||
|
||||
/* rdtsc for MSC_VER, uses simple inline assembly, or _rdtsc
|
||||
* 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>
|
||||
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
|
||||
* 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)
|
||||
{
|
||||
__cpuid(info, type);
|
||||
|
@@ -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);
|
||||
const Company *c;
|
||||
FOR_ALL_COMPANIES(c) {
|
||||
for (const Company *c : Company::Iterate()) {
|
||||
if (c->ai_info == nullptr) {
|
||||
buffer += seprintf(buffer, last, " %2i: Human\n", (int)c->index);
|
||||
} else {
|
||||
|
13
src/date.cpp
13
src/date.cpp
@@ -38,6 +38,8 @@ YearMonthDay _game_load_cur_date_ymd;
|
||||
DateFract _game_load_date_fract;
|
||||
uint8 _game_load_tick_skip_counter;
|
||||
|
||||
int32 _old_ending_year_slv_105; ///< Old ending year for savegames before SLV_105
|
||||
|
||||
/**
|
||||
* Set the date.
|
||||
* @param date New date
|
||||
@@ -216,21 +218,18 @@ static void OnNewYear()
|
||||
|
||||
if (_cur_year == _settings_client.gui.semaphore_build_before) ResetSignalVariant();
|
||||
|
||||
/* check if we reached end of the game */
|
||||
if (_cur_year == ORIGINAL_END_YEAR) {
|
||||
/* check if we reached end of the game (end of ending year) */
|
||||
if (_cur_year == _settings_game.game_creation.ending_year + 1) {
|
||||
ShowEndGameChart();
|
||||
/* check if we reached the maximum year, decrement dates by a year */
|
||||
} else if (_cur_year == MAX_YEAR + 1) {
|
||||
Vehicle *v;
|
||||
int days_this_year;
|
||||
|
||||
_cur_year--;
|
||||
days_this_year = IsLeapYear(_cur_year) ? DAYS_IN_LEAP_YEAR : DAYS_IN_YEAR;
|
||||
_date -= days_this_year;
|
||||
FOR_ALL_VEHICLES(v) v->date_of_last_service -= days_this_year;
|
||||
|
||||
LinkGraph *lg;
|
||||
FOR_ALL_LINK_GRAPHS(lg) lg->ShiftDates(-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);
|
||||
|
||||
/* 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 */
|
||||
|
@@ -87,6 +87,8 @@ static const Year MIN_YEAR = 0;
|
||||
|
||||
/** The default starting year */
|
||||
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
|
||||
|
@@ -144,8 +144,7 @@ protected:
|
||||
CompanyMask companies = 0;
|
||||
int unitnumber_max[4] = { -1, -1, -1, -1 };
|
||||
|
||||
const Vehicle *v;
|
||||
FOR_ALL_VEHICLES(v) {
|
||||
for (const Vehicle *v : Vehicle::Iterate()) {
|
||||
if (v->type < 4 && this->show_types[v->type] && v->IsPrimaryVehicle()) {
|
||||
const Order *order;
|
||||
|
||||
|
@@ -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 */
|
||||
|
@@ -28,9 +28,7 @@
|
||||
*/
|
||||
static bool IsUniqueDepotName(const char *name)
|
||||
{
|
||||
const Depot *d;
|
||||
|
||||
FOR_ALL_DEPOTS(d) {
|
||||
for (const Depot *d : Depot::Iterate()) {
|
||||
if (d->name != nullptr && strcmp(d->name, name) == 0) return false;
|
||||
}
|
||||
|
||||
|
@@ -172,8 +172,7 @@ static void InitBlocksizeForVehicles(VehicleType type, EngineImageType image_typ
|
||||
int max_extend_right = 0;
|
||||
uint max_height = 0;
|
||||
|
||||
const Engine *e;
|
||||
FOR_ALL_ENGINES_OF_TYPE(e, type) {
|
||||
for (const Engine *e : Engine::IterateType(type)) {
|
||||
if (!e->IsEnabled()) continue;
|
||||
|
||||
EngineID eid = e->index;
|
||||
@@ -224,8 +223,7 @@ void InitDepotWindowBlockSizes()
|
||||
|
||||
_consistent_train_width = TRAININFO_DEFAULT_VEHICLE_WIDTH;
|
||||
bool first = true;
|
||||
const Engine *e;
|
||||
FOR_ALL_ENGINES_OF_TYPE(e, VEH_TRAIN) {
|
||||
for (const Engine *e : Engine::IterateType(VEH_TRAIN)) {
|
||||
if (!e->IsEnabled()) continue;
|
||||
|
||||
uint w = TRAININFO_DEFAULT_VEHICLE_WIDTH;
|
||||
|
@@ -352,8 +352,7 @@ static bool DisasterTick_Ufo(DisasterVehicle *v)
|
||||
v->current_order.SetDestination(1);
|
||||
|
||||
uint n = 0; // Total number of targetable road vehicles.
|
||||
RoadVehicle *u;
|
||||
FOR_ALL_ROADVEHICLES(u) {
|
||||
for (const RoadVehicle *u : RoadVehicle::Iterate()) {
|
||||
if (u->IsFrontEngine()) n++;
|
||||
}
|
||||
|
||||
@@ -364,14 +363,16 @@ static bool DisasterTick_Ufo(DisasterVehicle *v)
|
||||
}
|
||||
|
||||
n = RandomRange(n); // Choose one of them.
|
||||
FOR_ALL_ROADVEHICLES(u) {
|
||||
for (const RoadVehicle *u : RoadVehicle::Iterate()) {
|
||||
/* Find (n+1)-th road vehicle. */
|
||||
if (u->IsFrontEngine() && (n-- == 0)) break;
|
||||
}
|
||||
|
||||
if (u->IsFrontEngine() && (n-- == 0)) {
|
||||
/* Target it. */
|
||||
v->dest_tile = u->index;
|
||||
v->age = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
} else {
|
||||
/* Target a vehicle */
|
||||
@@ -562,8 +563,7 @@ static bool DisasterTick_Big_Ufo(DisasterVehicle *v)
|
||||
|
||||
v->current_order.SetDestination(2);
|
||||
|
||||
Vehicle *target;
|
||||
FOR_ALL_VEHICLES(target) {
|
||||
for (Vehicle *target : Vehicle::Iterate()) {
|
||||
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) {
|
||||
target->breakdown_ctr = 5;
|
||||
@@ -733,8 +733,7 @@ static void Disaster_Zeppeliner_Init()
|
||||
/* Pick a random place, unless we find a small airport */
|
||||
int x = TileX(Random()) * TILE_SIZE + TILE_SIZE / 2;
|
||||
|
||||
Station *st;
|
||||
FOR_ALL_STATIONS(st) {
|
||||
for (const Station *st : Station::Iterate()) {
|
||||
if (st->airport.tile != INVALID_TILE && (st->airport.type == AT_SMALL || st->airport.type == AT_LARGE)) {
|
||||
x = (TileX(st->airport.tile) + 2) * TILE_SIZE;
|
||||
break;
|
||||
@@ -775,9 +774,9 @@ static void Disaster_Airplane_Init()
|
||||
{
|
||||
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) &&
|
||||
(found == nullptr || Chance16(1, 2))) {
|
||||
found = i;
|
||||
@@ -803,9 +802,9 @@ static void Disaster_Helicopter_Init()
|
||||
{
|
||||
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) &&
|
||||
(found == nullptr || Chance16(1, 2))) {
|
||||
found = i;
|
||||
@@ -896,9 +895,7 @@ static void Disaster_CoalMine_Init()
|
||||
uint m;
|
||||
|
||||
for (m = 0; m < 15; m++) {
|
||||
const Industry *i;
|
||||
|
||||
FOR_ALL_INDUSTRIES(i) {
|
||||
for (const Industry *i : Industry::Iterate()) {
|
||||
if ((GetIndustrySpec(i->type)->behaviour & INDUSTRYBEH_CAN_SUBSIDENCE) && --index < 0) {
|
||||
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
|
||||
@@ -979,8 +976,7 @@ void ReleaseDisastersTargetingIndustry(IndustryID i)
|
||||
{
|
||||
if (!_disaster_vehicle_count) return;
|
||||
|
||||
DisasterVehicle *v;
|
||||
FOR_ALL_DISASTERVEHICLES(v) {
|
||||
for (DisasterVehicle *v : DisasterVehicle::Iterate()) {
|
||||
/* primary disaster vehicles that have chosen target */
|
||||
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" */
|
||||
@@ -997,8 +993,7 @@ void ReleaseDisastersTargetingVehicle(VehicleID vehicle)
|
||||
{
|
||||
if (!_disaster_vehicle_count) return;
|
||||
|
||||
DisasterVehicle *v;
|
||||
FOR_ALL_DISASTERVEHICLES(v) {
|
||||
for (DisasterVehicle *v : DisasterVehicle::Iterate()) {
|
||||
/* primary disaster vehicles that have chosen target */
|
||||
if (v->subtype == ST_SMALL_UFO) {
|
||||
if (v->current_order.GetDestination() != 0 && v->dest_tile == vehicle) {
|
||||
|
@@ -51,10 +51,4 @@ struct DisasterVehicle FINAL : public SpecializedVehicle<DisasterVehicle, VEH_DI
|
||||
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 */
|
||||
|
@@ -117,17 +117,15 @@ Money CalculateCompanyValue(const Company *c, bool including_loan)
|
||||
{
|
||||
Owner owner = c->index;
|
||||
|
||||
Station *st;
|
||||
uint num = 0;
|
||||
|
||||
FOR_ALL_STATIONS(st) {
|
||||
for (const Station *st : Station::Iterate()) {
|
||||
if (st->owner == owner) num += CountBits((byte)st->facilities);
|
||||
}
|
||||
|
||||
Money value = num * _price[PR_STATION_VALUE] * 25;
|
||||
|
||||
Vehicle *v;
|
||||
FOR_ALL_VEHICLES(v) {
|
||||
for (const Vehicle *v : Vehicle::Iterate()) {
|
||||
if (v->owner != owner) continue;
|
||||
if (HasBit(v->subtype, GVSF_VIRTUAL)) continue;
|
||||
|
||||
@@ -163,12 +161,11 @@ int UpdateCompanyRatingAndValue(Company *c, bool update)
|
||||
|
||||
/* Count vehicles */
|
||||
{
|
||||
Vehicle *v;
|
||||
Money min_profit = 0;
|
||||
bool min_profit_first = true;
|
||||
uint num = 0;
|
||||
|
||||
FOR_ALL_VEHICLES(v) {
|
||||
for (const Vehicle *v : Vehicle::Iterate()) {
|
||||
if (v->owner != owner) continue;
|
||||
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
|
||||
@@ -194,9 +191,7 @@ int UpdateCompanyRatingAndValue(Company *c, bool update)
|
||||
/* Count stations */
|
||||
{
|
||||
uint num = 0;
|
||||
const Station *st;
|
||||
|
||||
FOR_ALL_STATIONS(st) {
|
||||
for (const Station *st : Station::Iterate()) {
|
||||
/* 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);
|
||||
}
|
||||
@@ -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. */
|
||||
assert(!_networking);
|
||||
Backup<CompanyID> cur_company2(_current_company, FILE_LINE);
|
||||
Company *c;
|
||||
FOR_ALL_COMPANIES(c) {
|
||||
for (const Company *c : Company::Iterate()) {
|
||||
if (c->index != old_owner) {
|
||||
SetLocalCompany(c->index);
|
||||
break;
|
||||
@@ -316,16 +310,13 @@ void ChangeOwnershipOfCompanyItems(Owner old_owner, Owner new_owner)
|
||||
|
||||
ClearOrderDestinationRefcountMap();
|
||||
|
||||
Town *t;
|
||||
|
||||
assert(old_owner != new_owner);
|
||||
|
||||
{
|
||||
Company *c;
|
||||
uint i;
|
||||
|
||||
/* 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++) {
|
||||
if (c->share_owners[i] == old_owner) {
|
||||
/* 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 */
|
||||
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++) {
|
||||
cur_company2.Change(c->share_owners[i]);
|
||||
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
|
||||
}
|
||||
|
||||
Subsidy *s;
|
||||
FOR_ALL_SUBSIDIES(s) {
|
||||
for (Subsidy *s : Subsidy::Iterate()) {
|
||||
if (s->awarded == old_owner) {
|
||||
if (new_owner == INVALID_OWNER) {
|
||||
delete s;
|
||||
@@ -373,7 +363,7 @@ void ChangeOwnershipOfCompanyItems(Owner old_owner, Owner new_owner)
|
||||
if (new_owner == INVALID_OWNER) RebuildSubsidisedSourceAndDestinationCache();
|
||||
|
||||
/* 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 (new_owner != INVALID_OWNER) {
|
||||
if (HasBit(t->have_ratings, old_owner)) {
|
||||
@@ -403,8 +393,7 @@ void ChangeOwnershipOfCompanyItems(Owner old_owner, Owner new_owner)
|
||||
}
|
||||
|
||||
{
|
||||
Vehicle *v;
|
||||
FOR_ALL_VEHICLES(v) {
|
||||
for (Vehicle *v : Vehicle::Iterate()) {
|
||||
if (v->owner == old_owner && IsCompanyBuildableVehicleType(v->type)) {
|
||||
if (new_owner == INVALID_OWNER) {
|
||||
if (v->Previous() == nullptr) {
|
||||
@@ -429,8 +418,7 @@ void ChangeOwnershipOfCompanyItems(Owner old_owner, Owner new_owner)
|
||||
if (new_owner == INVALID_OWNER) {
|
||||
RemoveAllGroupsForCompany(old_owner);
|
||||
} else {
|
||||
Group *g;
|
||||
FOR_ALL_GROUPS(g) {
|
||||
for (Group *g : Group::Iterate()) {
|
||||
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;
|
||||
}
|
||||
|
||||
Vehicle *v;
|
||||
FOR_ALL_VEHICLES(v) {
|
||||
for (Vehicle *v : Vehicle::Iterate()) {
|
||||
if (v->owner == old_owner && IsCompanyBuildableVehicleType(v->type)) {
|
||||
assert(new_owner != INVALID_OWNER);
|
||||
|
||||
@@ -503,11 +490,9 @@ void ChangeOwnershipOfCompanyItems(Owner old_owner, Owner new_owner)
|
||||
|
||||
/* Change ownership of template vehicles */
|
||||
if (new_owner == INVALID_OWNER) {
|
||||
TemplateVehicle *tv;
|
||||
FOR_ALL_TEMPLATES(tv) {
|
||||
for (TemplateVehicle *tv : TemplateVehicle::Iterate()) {
|
||||
if (tv->owner == old_owner && tv->Prev() == nullptr) {
|
||||
TemplateReplacement *tr;
|
||||
FOR_ALL_TEMPLATE_REPLACEMENTS(tr) {
|
||||
for (TemplateReplacement *tr : TemplateReplacement::Iterate()) {
|
||||
if (tr->Template() == tv->index) {
|
||||
delete tr;
|
||||
}
|
||||
@@ -516,8 +501,7 @@ void ChangeOwnershipOfCompanyItems(Owner old_owner, Owner new_owner)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
TemplateVehicle *tv;
|
||||
FOR_ALL_TEMPLATES(tv) {
|
||||
for (TemplateVehicle *tv : TemplateVehicle::Iterate()) {
|
||||
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;
|
||||
|
||||
/* convert owner of stations (including deleted ones, but excluding buoys) */
|
||||
Station *st;
|
||||
FOR_ALL_STATIONS(st) {
|
||||
for (Station *st : Station::Iterate()) {
|
||||
if (st->owner == old_owner) {
|
||||
/* 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 */
|
||||
@@ -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) */
|
||||
Waypoint *wp;
|
||||
FOR_ALL_WAYPOINTS(wp) {
|
||||
for (Waypoint *wp : Waypoint::Iterate()) {
|
||||
if (wp->owner == old_owner) {
|
||||
wp->owner = new_owner == INVALID_OWNER ? OWNER_NONE : new_owner;
|
||||
}
|
||||
}
|
||||
|
||||
Sign *si;
|
||||
FOR_ALL_SIGNS(si) {
|
||||
for (Sign *si : Sign::Iterate()) {
|
||||
if (si->owner == old_owner) si->owner = new_owner == INVALID_OWNER ? OWNER_NONE : new_owner;
|
||||
}
|
||||
|
||||
/* Remove Game Script created Goals, CargoMonitors and Story pages. */
|
||||
Goal *g;
|
||||
FOR_ALL_GOALS(g) {
|
||||
for (Goal *g : Goal::Iterate()) {
|
||||
if (g->company == old_owner) delete g;
|
||||
}
|
||||
|
||||
ClearCargoPickupMonitoring(old_owner);
|
||||
ClearCargoDeliveryMonitoring(old_owner);
|
||||
|
||||
StoryPage *sp;
|
||||
FOR_ALL_STORY_PAGES(sp) {
|
||||
for (StoryPage *sp : StoryPage::Iterate()) {
|
||||
if (sp->company == old_owner) delete sp;
|
||||
}
|
||||
|
||||
@@ -702,23 +681,21 @@ static void CompanyCheckBankrupt(Company *c)
|
||||
static void CompaniesGenStatistics()
|
||||
{
|
||||
/* Check for bankruptcy each month */
|
||||
Company *c;
|
||||
FOR_ALL_COMPANIES(c) {
|
||||
for (Company *c : Company::Iterate()) {
|
||||
CompanyCheckBankrupt(c);
|
||||
}
|
||||
|
||||
Backup<CompanyID> cur_company(_current_company, FILE_LINE);
|
||||
|
||||
if (!_settings_game.economy.infrastructure_maintenance) {
|
||||
Station *st;
|
||||
FOR_ALL_STATIONS(st) {
|
||||
for (const Station *st : Station::Iterate()) {
|
||||
cur_company.Change(st->owner);
|
||||
CommandCost cost(EXPENSES_PROPERTY, _price[PR_STATION_VALUE] >> 1);
|
||||
SubtractMoneyFromCompany(cost);
|
||||
}
|
||||
} else {
|
||||
/* Improved monthly infrastructure costs. */
|
||||
FOR_ALL_COMPANIES(c) {
|
||||
for (const Company *c : Company::Iterate()) {
|
||||
cur_company.Change(c->index);
|
||||
|
||||
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). */
|
||||
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 */
|
||||
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;
|
||||
@@ -877,10 +854,8 @@ void RecomputePrices()
|
||||
/** Let all companies pay the monthly interest on their loan. */
|
||||
static void CompaniesPayInterest()
|
||||
{
|
||||
const Company *c;
|
||||
|
||||
Backup<CompanyID> cur_company(_current_company, FILE_LINE);
|
||||
FOR_ALL_COMPANIES(c) {
|
||||
for (const Company *c : Company::Iterate()) {
|
||||
cur_company.Change(c->index);
|
||||
|
||||
/* 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. */
|
||||
ge->last_speed = min(t, 255);
|
||||
ge->last_age = min(_cur_year - front->build_year, 255);
|
||||
ge->time_since_pickup = 0;
|
||||
|
||||
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
|
||||
* has capacity for it, load it on the vehicle. */
|
||||
uint cap_left = v->cargo_cap - v->cargo.StoredCount();
|
||||
if (cap_left > 0 && (v->cargo.ActionCount(VehicleCargoList::MTA_LOAD) > 0 || ge->cargo.AvailableCount() > 0) && MayLoadUnderExclusiveRights(st, v)) {
|
||||
if ((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 (_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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (v->cargo.StoredCount() >= v->cargo_cap) {
|
||||
SetBit(cargo_full, v->cargo_type);
|
||||
|
@@ -47,17 +47,4 @@ struct CargoPayment : CargoPaymentPool::PoolItem<&_cargo_payment_pool> {
|
||||
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 */
|
||||
|
@@ -37,10 +37,4 @@ struct EffectVehicle FINAL : public SpecializedVehicle<EffectVehicle, VEH_EFFECT
|
||||
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 */
|
||||
|
@@ -693,8 +693,6 @@ void DrawRailCatenary(const TileInfo *ti)
|
||||
|
||||
bool SettingsDisableElrail(int32 p1)
|
||||
{
|
||||
Company *c;
|
||||
Train *t;
|
||||
bool disable = (p1 != 0);
|
||||
|
||||
/* 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;
|
||||
|
||||
/* walk through all train engines */
|
||||
Engine *e;
|
||||
FOR_ALL_ENGINES_OF_TYPE(e, VEH_TRAIN) {
|
||||
for (Engine *e : Engine::IterateType(VEH_TRAIN)) {
|
||||
RailVehicleInfo *rv_info = &e->u.rail;
|
||||
/* if it is an electric rail engine and its railtype is the wrong one */
|
||||
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
|
||||
* normal rail too */
|
||||
if (disable) {
|
||||
FOR_ALL_TRAINS(t) {
|
||||
for (Train *t : Train::Iterate()) {
|
||||
if (t->railtype == RAILTYPE_ELECTRIC) {
|
||||
/* this railroad vehicle is now compatible only with elrail,
|
||||
* so add there also normal rail compatibility */
|
||||
@@ -727,14 +724,14 @@ bool SettingsDisableElrail(int32 p1)
|
||||
}
|
||||
|
||||
/* 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 */
|
||||
if (t->IsFrontEngine()) {
|
||||
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
|
||||
* rails. It may have unintended consequences if that function is ever
|
||||
|
@@ -536,8 +536,7 @@ EngineID EngineOverrideManager::GetID(VehicleType type, uint16 grf_local_id, uin
|
||||
*/
|
||||
bool EngineOverrideManager::ResetToCurrentNewGRFConfig()
|
||||
{
|
||||
const Vehicle *v;
|
||||
FOR_ALL_VEHICLES(v) {
|
||||
for (const Vehicle *v : Vehicle::Iterate()) {
|
||||
if (IsCompanyBuildableVehicleType(v)) return false;
|
||||
}
|
||||
|
||||
@@ -628,8 +627,7 @@ void SetYearEngineAgingStops()
|
||||
/* Determine last engine aging year, default to 2050 as previously. */
|
||||
_year_engine_aging_stops = 2050;
|
||||
|
||||
const Engine *e;
|
||||
FOR_ALL_ENGINES(e) {
|
||||
for (const Engine *e : Engine::Iterate()) {
|
||||
const EngineInfo *ei = &e->info;
|
||||
|
||||
/* Exclude certain engines */
|
||||
@@ -704,17 +702,15 @@ void StartupOneEngine(Engine *e, Date aging_date)
|
||||
*/
|
||||
void StartupEngines()
|
||||
{
|
||||
Engine *e;
|
||||
/* Aging of vehicles stops, so account for that when starting late */
|
||||
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);
|
||||
}
|
||||
|
||||
/* Update the bitmasks for the vehicle lists */
|
||||
Company *c;
|
||||
FOR_ALL_COMPANIES(c) {
|
||||
for (Company *c : Company::Iterate()) {
|
||||
c->avail_railtypes = GetCompanyRailtypes(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;
|
||||
|
||||
int32 best_hist = -1;
|
||||
const Company *c;
|
||||
FOR_ALL_COMPANIES(c) {
|
||||
for (const Company *c : Company::Iterate()) {
|
||||
if (c->block_preview == 0 && !HasBit(e->preview_asked, c->index) &&
|
||||
c->old_economy[0].performance_history > best_hist) {
|
||||
|
||||
/* Check whether the company uses similar vehicles */
|
||||
Vehicle *v;
|
||||
FOR_ALL_VEHICLES(v) {
|
||||
for (const Vehicle *v : Vehicle::Iterate()) {
|
||||
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;
|
||||
|
||||
@@ -816,16 +810,14 @@ static bool IsVehicleTypeDisabled(VehicleType type, bool ai)
|
||||
/** Daily check to offer an exclusive engine preview to the companies. */
|
||||
void EnginesDailyLoop()
|
||||
{
|
||||
Company *c;
|
||||
FOR_ALL_COMPANIES(c) {
|
||||
for (Company *c : Company::Iterate()) {
|
||||
c->avail_railtypes = AddDateIntroducedRailTypes(c->avail_railtypes, _date);
|
||||
c->avail_roadtypes = AddDateIntroducedRoadTypes(c->avail_roadtypes, _date);
|
||||
}
|
||||
|
||||
if (_cur_year >= _year_engine_aging_stops) return;
|
||||
|
||||
Engine *e;
|
||||
FOR_ALL_ENGINES(e) {
|
||||
for (Engine *e : Engine::Iterate()) {
|
||||
EngineID i = e->index;
|
||||
if (e->flags & ENGINE_EXCLUSIVE_PREVIEW) {
|
||||
if (e->preview_company != INVALID_COMPANY) {
|
||||
@@ -861,8 +853,7 @@ void EnginesDailyLoop()
|
||||
*/
|
||||
void ClearEnginesHiddenFlagOfCompany(CompanyID cid)
|
||||
{
|
||||
Engine *e;
|
||||
FOR_ALL_ENGINES(e) {
|
||||
for (Engine *e : Engine::Iterate()) {
|
||||
SB(e->company_hidden, cid, 1, 0);
|
||||
}
|
||||
}
|
||||
@@ -917,14 +908,12 @@ CommandCost CmdWantEnginePreview(TileIndex tile, DoCommandFlag flags, uint32 p1,
|
||||
*/
|
||||
static void NewVehicleAvailable(Engine *e)
|
||||
{
|
||||
Vehicle *v;
|
||||
Company *c;
|
||||
EngineID index = e->index;
|
||||
|
||||
/* In case the company didn't build the vehicle during the intro period,
|
||||
* prevent that company from getting future intro periods for a while. */
|
||||
if (e->flags & ENGINE_EXCLUSIVE_PREVIEW) {
|
||||
FOR_ALL_COMPANIES(c) {
|
||||
for (Company *c : Company::Iterate()) {
|
||||
uint block_preview = c->block_preview;
|
||||
|
||||
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 ;) */
|
||||
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 ||
|
||||
(v->type == VEH_AIRCRAFT && Aircraft::From(v)->IsNormalAircraft())) {
|
||||
if (v->owner == c->index && v->engine_type == index) {
|
||||
@@ -958,11 +947,11 @@ static void NewVehicleAvailable(Engine *e)
|
||||
/* maybe make another rail type available */
|
||||
RailType railtype = e->u.rail.railtype;
|
||||
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) {
|
||||
/* maybe make another road type available */
|
||||
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. */
|
||||
@@ -987,8 +976,7 @@ static void NewVehicleAvailable(Engine *e)
|
||||
void EnginesMonthlyLoop()
|
||||
{
|
||||
if (_cur_year < _year_engine_aging_stops) {
|
||||
Engine *e;
|
||||
FOR_ALL_ENGINES(e) {
|
||||
for (Engine *e : Engine::Iterate()) {
|
||||
/* Age the vehicle */
|
||||
if ((e->flags & ENGINE_AVAILABLE) && e->age != MAX_DAY) {
|
||||
e->age++;
|
||||
@@ -1029,9 +1017,7 @@ void EnginesMonthlyLoop()
|
||||
*/
|
||||
static bool IsUniqueEngineName(const char *name)
|
||||
{
|
||||
const Engine *e;
|
||||
|
||||
FOR_ALL_ENGINES(e) {
|
||||
for (const Engine *e : Engine::Iterate()) {
|
||||
if (e->name != nullptr && strcmp(e->name, name) == 0) return false;
|
||||
}
|
||||
|
||||
@@ -1152,10 +1138,9 @@ bool IsEngineRefittable(EngineID engine)
|
||||
*/
|
||||
void CheckEngines()
|
||||
{
|
||||
const Engine *e;
|
||||
Date min_date = INT32_MAX;
|
||||
|
||||
FOR_ALL_ENGINES(e) {
|
||||
for (const Engine *e : Engine::Iterate()) {
|
||||
if (!e->IsEnabled()) continue;
|
||||
|
||||
/* We have an available engine... yay! */
|
||||
|
@@ -142,6 +142,17 @@ struct Engine : EnginePool::PoolItem<&_engine_pool> {
|
||||
}
|
||||
|
||||
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 {
|
||||
@@ -166,11 +177,6 @@ struct EngineOverrideManager : std::vector<EngineIDMapping> {
|
||||
|
||||
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)
|
||||
{
|
||||
return &Engine::Get(e)->info;
|
||||
|
@@ -273,8 +273,9 @@ private:
|
||||
AbstractFileType abstract_filetype; /// Type of file to select.
|
||||
SaveLoadOperation fop; ///< File operation to perform.
|
||||
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 *highlighted; ///< Item in fios_items highlighted by mouse pointer, or \c nullptr.
|
||||
Scrollbar *vscroll;
|
||||
|
||||
StringFilter string_filter; ///< Filter for available games.
|
||||
@@ -449,6 +450,8 @@ public:
|
||||
|
||||
if (item == this->selected) {
|
||||
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)]);
|
||||
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
|
||||
{
|
||||
if (keycode == WKC_ESC) {
|
||||
|
@@ -318,7 +318,7 @@ static void SetColourRemap(TextColour colour)
|
||||
* would be invisible at best, but it actually makes it illegible. */
|
||||
bool no_shade = (colour & TC_NO_SHADE) != 0 || colour == TC_BLACK;
|
||||
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[2] = no_shade ? 0 : 1;
|
||||
|
@@ -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_VERY_DARK_BLUE = 0x9A; ///< Almost-black 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.
|
||||
|
||||
|
@@ -46,7 +46,7 @@ struct FontState {
|
||||
inline void SetColour(TextColour c)
|
||||
{
|
||||
assert(c >= TC_BLUE && c <= TC_BLACK);
|
||||
this->cur_colour = c;
|
||||
if ((this->cur_colour & TC_FORCED) == 0) this->cur_colour = c;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -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_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)
|
||||
|
||||
|
@@ -37,7 +37,4 @@ struct Goal : GoalPool::PoolItem<&_goal_pool> {
|
||||
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 */
|
||||
|
@@ -66,8 +66,7 @@ struct GoalListWindow : public Window {
|
||||
|
||||
int y = this->vscroll->GetScrolledRowFromWidget(pt.y, this, WID_GOAL_LIST, WD_FRAMERECT_TOP);
|
||||
int num = 0;
|
||||
const Goal *s;
|
||||
FOR_ALL_GOALS(s) {
|
||||
for (const Goal *s : Goal::Iterate()) {
|
||||
if (s->company == INVALID_COMPANY) {
|
||||
y--;
|
||||
if (y == 0) {
|
||||
@@ -86,7 +85,7 @@ struct GoalListWindow : public Window {
|
||||
y -= 2; // "Company specific goals:" line.
|
||||
if (y < 0) return;
|
||||
|
||||
FOR_ALL_GOALS(s) {
|
||||
for (const Goal *s : Goal::Iterate()) {
|
||||
if (s->company == this->window_number) {
|
||||
y--;
|
||||
if (y == 0) {
|
||||
@@ -158,8 +157,7 @@ struct GoalListWindow : public Window {
|
||||
/* Count number of (non) awarded goals. */
|
||||
uint num_global = 0;
|
||||
uint num_company = 0;
|
||||
const Goal *s;
|
||||
FOR_ALL_GOALS(s) {
|
||||
for (const Goal *s : Goal::Iterate()) {
|
||||
if (s->company == INVALID_COMPANY) {
|
||||
num_global++;
|
||||
} else if (s->company == this->window_number) {
|
||||
@@ -207,8 +205,7 @@ struct GoalListWindow : public Window {
|
||||
bool rtl = _current_text_dir == TD_RTL;
|
||||
|
||||
uint num = 0;
|
||||
const Goal *s;
|
||||
FOR_ALL_GOALS(s) {
|
||||
for (const Goal *s : Goal::Iterate()) {
|
||||
if (global_section ? s->company == INVALID_COMPANY : (s->company == this->window_number && s->company != INVALID_COMPANY)) {
|
||||
if (IsInsideMM(pos, 0, cap)) {
|
||||
switch (column) {
|
||||
@@ -278,8 +275,7 @@ struct GoalListWindow : public Window {
|
||||
|
||||
/* Calculate progress column width. */
|
||||
uint max_width = 0;
|
||||
Goal *s;
|
||||
FOR_ALL_GOALS(s) {
|
||||
for (const Goal *s : Goal::Iterate()) {
|
||||
if (s->progress != nullptr) {
|
||||
SetDParamStr(0, s->progress);
|
||||
StringID str = s->completed ? STR_GOALS_PROGRESS_COMPLETE : STR_GOALS_PROGRESS;
|
||||
|
@@ -567,8 +567,7 @@ public:
|
||||
}
|
||||
|
||||
byte nums = 0;
|
||||
const Company *c;
|
||||
FOR_ALL_COMPANIES(c) {
|
||||
for (const Company *c : Company::Iterate()) {
|
||||
nums = min(this->num_vert_lines, max(nums, c->num_valid_stat_ent));
|
||||
}
|
||||
|
||||
@@ -592,7 +591,7 @@ public:
|
||||
|
||||
int numd = 0;
|
||||
for (CompanyID k = COMPANY_FIRST; k < MAX_COMPANIES; k++) {
|
||||
c = Company::GetIfValid(k);
|
||||
const Company *c = Company::GetIfValid(k);
|
||||
if (c != nullptr) {
|
||||
this->colours[numd] = _colour_gradient[c->colour][6];
|
||||
for (int j = this->num_on_x_axis, i = 0; --j >= 0;) {
|
||||
@@ -1136,8 +1135,7 @@ private:
|
||||
|
||||
this->companies.clear();
|
||||
|
||||
const Company *c;
|
||||
FOR_ALL_COMPANIES(c) {
|
||||
for (const Company *c : Company::Iterate()) {
|
||||
this->companies.push_back(c);
|
||||
}
|
||||
|
||||
@@ -1219,8 +1217,7 @@ public:
|
||||
this->icon_width = d.width + 2;
|
||||
this->line_height = max<int>(d.height + 2, FONT_HEIGHT_NORMAL);
|
||||
|
||||
const Company *c;
|
||||
FOR_ALL_COMPANIES(c) {
|
||||
for (const Company *c : Company::Iterate()) {
|
||||
SetDParam(0, c->index);
|
||||
SetDParam(1, c->index);
|
||||
SetDParam(2, _performance_titles[widest_title]);
|
||||
@@ -1299,8 +1296,7 @@ struct PerformanceRatingDetailWindow : Window {
|
||||
{
|
||||
/* Update all company stats with the current data
|
||||
* (this is because _score_info is not saved to a savegame) */
|
||||
Company *c;
|
||||
FOR_ALL_COMPANIES(c) {
|
||||
for (Company *c : Company::Iterate()) {
|
||||
UpdateCompanyRatingAndValue(c, false);
|
||||
}
|
||||
|
||||
@@ -1497,8 +1493,7 @@ struct PerformanceRatingDetailWindow : Window {
|
||||
}
|
||||
|
||||
if (this->company == INVALID_COMPANY) {
|
||||
const Company *c;
|
||||
FOR_ALL_COMPANIES(c) {
|
||||
for (const Company *c : Company::Iterate()) {
|
||||
this->company = c->index;
|
||||
break;
|
||||
}
|
||||
|
@@ -100,10 +100,6 @@ static inline bool IsTopLevelGroupID(GroupID index)
|
||||
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 GetGroupNumVehicle(CompanyID company, GroupID id_g, VehicleType type);
|
||||
uint GetGroupNumProfitVehicle(CompanyID company, GroupID id_g, VehicleType type);
|
||||
|
@@ -103,8 +103,7 @@ void GroupStatistics::Clear()
|
||||
/* static */ void GroupStatistics::UpdateAfterLoad()
|
||||
{
|
||||
/* Set up the engine count for all companies */
|
||||
Company *c;
|
||||
FOR_ALL_COMPANIES(c) {
|
||||
for (Company *c : Company::Iterate()) {
|
||||
for (VehicleType type = VEH_BEGIN; type < VEH_COMPANY_END; type++) {
|
||||
c->group_all[type].Clear();
|
||||
c->group_default[type].Clear();
|
||||
@@ -112,20 +111,18 @@ void GroupStatistics::Clear()
|
||||
}
|
||||
|
||||
/* Recalculate */
|
||||
Group *g;
|
||||
FOR_ALL_GROUPS(g) {
|
||||
for (Group *g : Group::Iterate()) {
|
||||
g->statistics.Clear();
|
||||
}
|
||||
|
||||
const Vehicle *v;
|
||||
FOR_ALL_VEHICLES(v) {
|
||||
for (const Vehicle *v : Vehicle::Iterate()) {
|
||||
if (!v->IsEngineCountable()) continue;
|
||||
|
||||
GroupStatistics::CountEngine(v, 1);
|
||||
if (v->IsPrimaryVehicle()) GroupStatistics::CountVehicle(v, 1);
|
||||
}
|
||||
|
||||
FOR_ALL_COMPANIES(c) {
|
||||
for (const Company *c : Company::Iterate()) {
|
||||
GroupStatistics::UpdateAutoreplace(c->index);
|
||||
}
|
||||
}
|
||||
@@ -191,8 +188,7 @@ void GroupStatistics::Clear()
|
||||
/* static */ void GroupStatistics::UpdateProfits()
|
||||
{
|
||||
/* Set up the engine count for all companies */
|
||||
Company *c;
|
||||
FOR_ALL_COMPANIES(c) {
|
||||
for (Company *c : Company::Iterate()) {
|
||||
for (VehicleType type = VEH_BEGIN; type < VEH_COMPANY_END; type++) {
|
||||
c->group_all[type].ClearProfits();
|
||||
c->group_default[type].ClearProfits();
|
||||
@@ -200,13 +196,11 @@ void GroupStatistics::Clear()
|
||||
}
|
||||
|
||||
/* Recalculate */
|
||||
Group *g;
|
||||
FOR_ALL_GROUPS(g) {
|
||||
for (Group *g : Group::Iterate()) {
|
||||
g->statistics.ClearProfits();
|
||||
}
|
||||
|
||||
const Vehicle *v;
|
||||
FOR_ALL_VEHICLES(v) {
|
||||
for (const Vehicle *v : Vehicle::Iterate()) {
|
||||
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 */
|
||||
Group *g;
|
||||
FOR_ALL_GROUPS(g) {
|
||||
for (Group *g : Group::Iterate()) {
|
||||
if (g->owner != company) continue;
|
||||
g->statistics.ClearAutoreplace();
|
||||
}
|
||||
@@ -280,8 +273,7 @@ const Livery *GetParentLivery(const Group *g)
|
||||
void PropagateChildLivery(const Group *g)
|
||||
{
|
||||
/* Company colour data is indirectly cached. */
|
||||
Vehicle *v;
|
||||
FOR_ALL_VEHICLES(v) {
|
||||
for (Vehicle *v : Vehicle::Iterate()) {
|
||||
if (v->group_id == g->index && (!v->IsGroundVehicle() || v->IsFrontEngine())) {
|
||||
for (Vehicle *u = v; u != nullptr; u = u->Next()) {
|
||||
u->colourmap = PAL_NONE;
|
||||
@@ -290,8 +282,7 @@ void PropagateChildLivery(const Group *g)
|
||||
}
|
||||
}
|
||||
|
||||
Group *cg;
|
||||
FOR_ALL_GROUPS(cg) {
|
||||
for (Group *cg : Group::Iterate()) {
|
||||
if (cg->parent == g->index) {
|
||||
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;
|
||||
@@ -380,8 +371,7 @@ CommandCost CmdDeleteGroup(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3
|
||||
DoCommand(0, p1, 0, flags, CMD_REMOVE_ALL_VEHICLES_GROUP);
|
||||
|
||||
/* Delete sub-groups */
|
||||
Group *gp;
|
||||
FOR_ALL_GROUPS(gp) {
|
||||
for (const Group *gp : Group::Iterate()) {
|
||||
if (gp->parent == g->index) {
|
||||
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 (_current_company < MAX_COMPANIES) {
|
||||
Company *c;
|
||||
EngineRenew *er;
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
@@ -640,11 +629,9 @@ CommandCost CmdAddSharedVehicleGroup(TileIndex tile, DoCommandFlag flags, uint32
|
||||
if (!Group::IsValidID(id_g) || !IsCompanyBuildableVehicleType(type)) return CMD_ERROR;
|
||||
|
||||
if (flags & DC_EXEC) {
|
||||
Vehicle *v;
|
||||
|
||||
/* 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 */
|
||||
FOR_ALL_VEHICLES(v) {
|
||||
for (const Vehicle *v : Vehicle::Iterate()) {
|
||||
if (v->type == type && v->IsPrimaryVehicle()) {
|
||||
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 (flags & DC_EXEC) {
|
||||
Vehicle *v;
|
||||
|
||||
/* 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->group_id != old_g) continue;
|
||||
|
||||
@@ -745,8 +730,7 @@ static void SetGroupReplaceProtection(Group *g, bool protect)
|
||||
{
|
||||
g->replace_protection = protect;
|
||||
|
||||
Group *pg;
|
||||
FOR_ALL_GROUPS(pg) {
|
||||
for (Group *pg : Group::Iterate()) {
|
||||
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;
|
||||
const Engine *e = Engine::Get(id_e);
|
||||
const Group *g;
|
||||
FOR_ALL_GROUPS(g) {
|
||||
for (const Group *g : Group::Iterate()) {
|
||||
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];
|
||||
@@ -877,8 +860,7 @@ uint GetGroupNumEngines(CompanyID company, GroupID id_g, EngineID id_e)
|
||||
uint GetGroupNumVehicle(CompanyID company, GroupID id_g, VehicleType type)
|
||||
{
|
||||
uint count = 0;
|
||||
const Group *g;
|
||||
FOR_ALL_GROUPS(g) {
|
||||
for (const Group *g : Group::Iterate()) {
|
||||
if (g->parent == id_g) count += GetGroupNumVehicle(company, g->index, type);
|
||||
}
|
||||
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 count = 0;
|
||||
const Group *g;
|
||||
FOR_ALL_GROUPS(g) {
|
||||
for (const Group *g : Group::Iterate()) {
|
||||
if (g->parent == id_g) count += GetGroupNumProfitVehicle(company, g->index, type);
|
||||
}
|
||||
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 sum = 0;
|
||||
const Group *g;
|
||||
FOR_ALL_GROUPS(g) {
|
||||
for (const Group *g : Group::Iterate()) {
|
||||
if (g->parent == id_g) sum += GetGroupProfitLastYear(company, g->index, type);
|
||||
}
|
||||
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)
|
||||
{
|
||||
Group *g;
|
||||
|
||||
FOR_ALL_GROUPS(g) {
|
||||
for (Group *g : Group::Iterate()) {
|
||||
if (company == g->owner) {
|
||||
DeleteTemplateReplacementsByGroupID(g->index);
|
||||
delete g;
|
||||
|
@@ -190,8 +190,7 @@ private:
|
||||
bool enable_expand_all = false;
|
||||
bool enable_collapse_all = false;
|
||||
|
||||
const Group *g;
|
||||
FOR_ALL_GROUPS(g) {
|
||||
for (const Group *g : Group::Iterate()) {
|
||||
if (g->owner == owner && g->vehicle_type == this->vli.vtype) {
|
||||
list.push_back(g);
|
||||
if (g->parent != INVALID_GROUP) {
|
||||
@@ -361,8 +360,7 @@ private:
|
||||
|
||||
void SetAllGroupsFoldState(bool folded)
|
||||
{
|
||||
const Group *g;
|
||||
FOR_ALL_GROUPS(g) {
|
||||
for (const Group *g : Group::Iterate()) {
|
||||
if (g->owner == this->owner && g->vehicle_type == this->vli.vtype) {
|
||||
if (g->parent != INVALID_GROUP) {
|
||||
Group::Get(g->parent)->folded = folded;
|
||||
@@ -406,6 +404,7 @@ public:
|
||||
this->groups.ForceRebuild();
|
||||
this->groups.NeedResort();
|
||||
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_LIST_VEHICLE)->tool_tip = STR_VEHICLE_LIST_TRAIN_LIST_TOOLTIP + this->vli.vtype;
|
||||
@@ -785,6 +784,10 @@ public:
|
||||
|
||||
this->vehicle_sel = v->index;
|
||||
|
||||
if (_ctrl_pressed) {
|
||||
this->SelectGroup(v->group_id);
|
||||
}
|
||||
|
||||
SetObjectToPlaceWnd(SPR_CURSOR_MOUSE, PAL_NONE, HT_DRAG, this);
|
||||
SetMouseCursorVehicle(v, EIT_IN_LIST);
|
||||
_cursor.vehchain = true;
|
||||
@@ -1078,6 +1081,35 @@ public:
|
||||
{
|
||||
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.
|
||||
* @param company The company to show the window 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;
|
||||
|
||||
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) {
|
||||
AllocateWindowDescFront<VehicleGroupWindow>(&_train_group_desc, num);
|
||||
w = AllocateWindowDescFront<VehicleGroupWindow>(&_train_group_desc, num, need_existing_window);
|
||||
} else {
|
||||
_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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -13,7 +13,8 @@
|
||||
#include "company_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);
|
||||
|
||||
#endif /* GROUP_GUI_H */
|
||||
|
@@ -87,13 +87,12 @@ static bool HighScoreSorter(const Company * const &a, const Company * const &b)
|
||||
*/
|
||||
int8 SaveHighScoreValueNetwork()
|
||||
{
|
||||
const Company *c;
|
||||
const Company *cl[MAX_COMPANIES];
|
||||
uint count = 0;
|
||||
int8 company = -1;
|
||||
|
||||
/* 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);
|
||||
|
||||
|
@@ -38,10 +38,15 @@ static const KeycodeNames _keycode_to_name[] = {
|
||||
{"META", WKC_META},
|
||||
{"GLOBAL", WKC_GLOBAL_HOTKEY},
|
||||
{"ESC", WKC_ESC},
|
||||
{"DEL", WKC_DELETE},
|
||||
{"BACKSPACE", WKC_BACKSPACE},
|
||||
{"INS", WKC_INSERT},
|
||||
{"DEL", WKC_DELETE},
|
||||
{"PAGEUP", WKC_PAGEUP},
|
||||
{"PAGEDOWN", WKC_PAGEDOWN},
|
||||
{"END", WKC_END},
|
||||
{"HOME", WKC_HOME},
|
||||
{"RETURN", WKC_RETURN},
|
||||
{"BACKQUOTE", WKC_BACKQUOTE},
|
||||
{"SPACE", WKC_SPACE},
|
||||
{"F1", WKC_F1},
|
||||
{"F2", WKC_F2},
|
||||
{"F3", WKC_F3},
|
||||
@@ -54,11 +59,24 @@ static const KeycodeNames _keycode_to_name[] = {
|
||||
{"F10", WKC_F10},
|
||||
{"F11", WKC_F11},
|
||||
{"F12", WKC_F12},
|
||||
{"BACKQUOTE", WKC_BACKQUOTE},
|
||||
{"PAUSE", WKC_PAUSE},
|
||||
{"COMMA", WKC_COMMA},
|
||||
{"NUM_PLUS", WKC_NUM_PLUS},
|
||||
{"NUM_DIV", WKC_NUM_DIV},
|
||||
{"NUM_MUL", WKC_NUM_MUL},
|
||||
{"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_L_BRACKET},
|
||||
{"\\", WKC_BACKSLASH},
|
||||
{"]", WKC_R_BRACKET},
|
||||
{"'", WKC_SINGLEQUOTE},
|
||||
{",", WKC_COMMA},
|
||||
{"COMMA", WKC_COMMA}, // legacy variant, should be below ","
|
||||
{".", WKC_PERIOD},
|
||||
{"-", WKC_MINUS},
|
||||
{"PAGE_UP", WKC_PAGEUP},
|
||||
{"PAGE_DOWN", WKC_PAGEDOWN},
|
||||
|
@@ -179,9 +179,6 @@ void ReleaseDisastersTargetingIndustry(IndustryID);
|
||||
|
||||
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. */
|
||||
struct IndustryTypeBuildData {
|
||||
uint32 probability; ///< Relative probability of building this industry.
|
||||
|
@@ -1206,8 +1206,7 @@ void OnTick_Industry()
|
||||
|
||||
if (_game_mode == GM_EDITOR) return;
|
||||
|
||||
Industry *i;
|
||||
FOR_ALL_INDUSTRIES(i) {
|
||||
for (Industry *i : Industry::Iterate()) {
|
||||
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();
|
||||
|
||||
const Industry *i;
|
||||
FOR_ALL_INDUSTRIES(i) {
|
||||
for (const Industry *i : Industry::Iterate()) {
|
||||
if (i->type == (byte)type && i->town == *t) {
|
||||
*t = nullptr;
|
||||
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)
|
||||
{
|
||||
const IndustrySpec *indspec = GetIndustrySpec(type);
|
||||
const Industry *i = nullptr;
|
||||
|
||||
/* On a large map with many industries, it may be faster to check an area. */
|
||||
static const int dmax = 14;
|
||||
if (Industry::GetNumItems() > (size_t) (dmax * dmax * 2)) {
|
||||
const Industry* i = nullptr;
|
||||
TileArea tile_area = TileArea(tile, 1, 1).Expand(dmax);
|
||||
TILE_AREA_LOOP(atile, tile_area) {
|
||||
if (GetTileType(atile) == MP_INDUSTRY) {
|
||||
@@ -1661,7 +1659,7 @@ static CommandCost CheckIfFarEnoughFromConflictingIndustry(TileIndex tile, int t
|
||||
return CommandCost();
|
||||
}
|
||||
|
||||
FOR_ALL_INDUSTRIES(i) {
|
||||
for (const Industry *i : Industry::Iterate()) {
|
||||
/* Within 14 tiles from another industry is considered close */
|
||||
if (DistanceMax(tile, i->location.tile) > 14) continue;
|
||||
|
||||
@@ -1834,6 +1832,11 @@ static void DoCreateNewIndustry(Industry *i, TileIndex tile, IndustryType type,
|
||||
break;
|
||||
}
|
||||
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)) {
|
||||
/* Cargo not in spec, error in NewGRF */
|
||||
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;
|
||||
}
|
||||
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)) {
|
||||
/* Cargo not in spec, error in NewGRF */
|
||||
ErrorUnknownCallbackResult(indspec->grf_prop.grffile->grfid, CBID_INDUSTRY_OUTPUT_CARGO_TYPES, res);
|
||||
@@ -2337,9 +2343,7 @@ void Industry::FillCachedName()
|
||||
|
||||
void ClearAllIndustryCachedNames()
|
||||
{
|
||||
Industry *ind;
|
||||
|
||||
FOR_ALL_INDUSTRIES(ind) {
|
||||
for (Industry *ind : Industry::Iterate()) {
|
||||
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
|
||||
|
||||
const Vehicle *v;
|
||||
int result = 0;
|
||||
FOR_ALL_VEHICLES(v) {
|
||||
for (const Vehicle *v : Vehicle::Iterate()) {
|
||||
/* Is it worthwhile to try this vehicle? */
|
||||
if (v->owner != _local_company && result != 0) continue;
|
||||
|
||||
@@ -2863,8 +2866,7 @@ void IndustryMonthlyLoop()
|
||||
|
||||
_industry_builder.MonthlyLoop();
|
||||
|
||||
Industry *i;
|
||||
FOR_ALL_INDUSTRIES(i) {
|
||||
for (Industry *i : Industry::Iterate()) {
|
||||
UpdateIndustryStatistics(i);
|
||||
if (i->prod_level == PRODLEVEL_CLOSURE) {
|
||||
delete i;
|
||||
|
@@ -1167,6 +1167,8 @@ static const NWidgetPart _nested_industry_directory_widgets[] = {
|
||||
NWidget(NWID_HORIZONTAL),
|
||||
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_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(),
|
||||
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(),
|
||||
};
|
||||
|
||||
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;
|
||||
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 */
|
||||
void BuildSortIndustriesList()
|
||||
{
|
||||
if (this->industries.NeedRebuild()) {
|
||||
this->industries.clear();
|
||||
|
||||
const Industry *i;
|
||||
FOR_ALL_INDUSTRIES(i) {
|
||||
for (const Industry *i : Industry::Iterate()) {
|
||||
this->industries.push_back(i);
|
||||
}
|
||||
|
||||
this->industries.shrink_to_fit();
|
||||
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
|
||||
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);
|
||||
});
|
||||
|
||||
/* 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 */
|
||||
for (size_t j = 0; j < min<size_t>(3, cargos.size()); j++) {
|
||||
CargoInfo ci = cargos[j];
|
||||
@@ -1360,9 +1517,26 @@ public:
|
||||
this->last_sorting = this->industries.GetListing();
|
||||
}
|
||||
|
||||
void OnInit() override
|
||||
{
|
||||
this->SetCargoFilterArray();
|
||||
}
|
||||
|
||||
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
|
||||
@@ -1379,8 +1553,17 @@ public:
|
||||
DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, STR_INDUSTRY_DIRECTORY_NONE);
|
||||
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++) {
|
||||
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;
|
||||
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);
|
||||
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: {
|
||||
uint p = this->vscroll->GetScrolledRowFromWidget(pt.y, this, WID_ID_INDUSTRY_LIST, WD_FRAMERECT_TOP);
|
||||
if (p < this->industries.size()) {
|
||||
@@ -1456,10 +1647,27 @@ public:
|
||||
|
||||
void OnDropdownSelect(int widget, int index) override
|
||||
{
|
||||
switch (widget) {
|
||||
case WID_ID_DROPDOWN_CRITERIA: {
|
||||
if (this->industries.SortType() != index) {
|
||||
this->industries.SetSortType(index);
|
||||
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
|
||||
|
@@ -198,8 +198,7 @@ static void FixAllReservations()
|
||||
{
|
||||
/* 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]);
|
||||
Train *v;
|
||||
FOR_ALL_TRAINS(v) {
|
||||
for (Train *v : Train::Iterate()) {
|
||||
if (!v->IsPrimaryVehicle() || (v->vehstatus & VS_CRASHED) != 0 || HasBit(v->subtype, GVSF_VIRTUAL)) continue;
|
||||
/* It might happen that the train reserved additional tracks,
|
||||
* 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;
|
||||
|
||||
StringID error_message = STR_NULL;
|
||||
Vehicle *v;
|
||||
FOR_ALL_VEHICLES(v) {
|
||||
for (Vehicle *v : Vehicle::Iterate()) {
|
||||
if (type != v->type || HasBit(v->subtype, GVSF_VIRTUAL)) continue;
|
||||
if (v->Previous() != nullptr) continue;
|
||||
|
||||
@@ -288,9 +286,10 @@ void HandleSharingCompanyDeletion(Owner owner)
|
||||
{
|
||||
YapfNotifyTrackLayoutChange(INVALID_TILE, INVALID_TRACK);
|
||||
|
||||
Vehicle *v = nullptr;
|
||||
SCOPE_INFO_FMT([&v], "HandleSharingCompanyDeletion: veh: %s", scope_dumper().VehicleInfo(v));
|
||||
FOR_ALL_VEHICLES(v) {
|
||||
Vehicle *si_v = nullptr;
|
||||
SCOPE_INFO_FMT([&si_v], "HandleSharingCompanyDeletion: veh: %s", scope_dumper().VehicleInfo(si_v));
|
||||
for (Vehicle *v : Vehicle::Iterate()) {
|
||||
si_v = v;
|
||||
if (!IsCompanyBuildableVehicleType(v) || v->Previous() != nullptr) continue;
|
||||
/* vehicle position */
|
||||
if (v->owner == owner || !VehiclePositionIsAllowed(v, owner)) {
|
||||
|
@@ -471,9 +471,6 @@ STR_ABOUT_MENU_SEPARATOR :
|
||||
STR_ABOUT_MENU_TOGGLE_CONSOLE :Skakel terminaal
|
||||
STR_ABOUT_MENU_AI_DEBUG :AI/Spel skript ontfout
|
||||
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_SPRITE_ALIGNER :"Sprite" rigter
|
||||
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_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_OR_CARGO :{WHITE}{STATION} aanvaar nie meer {STRING} of {STRING} nie
|
||||
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_TOOLTIP :{BLACK}Moenie skrif verander nie
|
||||
|
||||
|
||||
# AI Parameters
|
||||
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parameters
|
||||
STR_AI_SETTINGS_CAPTION_AI :AI
|
||||
|
@@ -446,9 +446,6 @@ STR_ABOUT_MENU_SEPARATOR :
|
||||
STR_ABOUT_MENU_TOGGLE_CONSOLE :توقل كونسول
|
||||
STR_ABOUT_MENU_AI_DEBUG :مكتشف اخطاء الذكاء الصناعي
|
||||
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_SPRITE_ALIGNER :موائم العفريتات
|
||||
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_NOW_AVAILABLE_WITH_TYPE :{BLACK}جديد {STRING} الآن متاح ! - {ENGINE}
|
||||
|
||||
|
||||
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_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_TOOLTIP :{BLACK} لا تغير الذكاء الصناعي
|
||||
|
||||
|
||||
# AI Parameters
|
||||
STR_AI_SETTINGS_CLOSE :{BLACK} اغلاق
|
||||
STR_AI_SETTINGS_RESET :{BLACK} اعادة ضبط
|
||||
|
@@ -464,9 +464,6 @@ STR_ABOUT_MENU_SEPARATOR :
|
||||
STR_ABOUT_MENU_TOGGLE_CONSOLE :Konsola aktibatu
|
||||
STR_ABOUT_MENU_AI_DEBUG :IA/Joko script-aren garbitzailea
|
||||
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_SPRITE_ALIGNER :"Sprit" lerrokatzailea
|
||||
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_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_OR_CARGO :{WHITE}{STATION} ez du gehiago {STRING} edo {STRING} onartzen
|
||||
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_TOOLTIP :{BLACK}Ez aldatu script-a
|
||||
|
||||
|
||||
# AI Parameters
|
||||
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parametroak
|
||||
STR_AI_SETTINGS_CAPTION_AI :IA
|
||||
|
@@ -783,9 +783,6 @@ STR_ABOUT_MENU_SEPARATOR :
|
||||
STR_ABOUT_MENU_TOGGLE_CONSOLE :Кансоль
|
||||
STR_ABOUT_MENU_AI_DEBUG :Наладка штучнага інтэлекту (ШІ/AI) / скрыптоў
|
||||
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_SPRITE_ALIGNER :Выраўноўваньне спрайтаў
|
||||
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_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_OR_CARGO :{WHITE}{STATION} больш не прымае {STRING.acc} ды {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_TOOLTIP :{BLACK}Не змяняць скрыпт
|
||||
|
||||
|
||||
# AI Parameters
|
||||
STR_AI_SETTINGS_CAPTION :{WHITE}Параметры {STRING}
|
||||
STR_AI_SETTINGS_CAPTION_AI :ШI
|
||||
|
@@ -471,9 +471,6 @@ STR_ABOUT_MENU_SEPARATOR :
|
||||
STR_ABOUT_MENU_TOGGLE_CONSOLE :Alternar console
|
||||
STR_ABOUT_MENU_AI_DEBUG :Depurar IA/Script do jogo
|
||||
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_ABOUT_OPENTTD :Sobre 'OpenTTD'
|
||||
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_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_OR_CARGO :{WHITE}{STATION} não aceita mais {STRING} ou {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_TOOLTIP :{BLACK}Não mudar o script
|
||||
|
||||
|
||||
# AI Parameters
|
||||
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parâmetros
|
||||
STR_AI_SETTINGS_CAPTION_AI :{G=f}IA
|
||||
|
@@ -471,9 +471,6 @@ STR_ABOUT_MENU_SEPARATOR :
|
||||
STR_ABOUT_MENU_TOGGLE_CONSOLE :Показване/скриване на конзола
|
||||
STR_ABOUT_MENU_AI_DEBUG :ИИ дебъг
|
||||
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_ABOUT_OPENTTD :Относно 'OpenTTD'
|
||||
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_NOW_AVAILABLE_WITH_TYPE :{BLACK}Нов {STRING} е на разположение! - {ENGINE}
|
||||
|
||||
|
||||
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_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_TOOLTIP :{BLACK}Не променяй AI
|
||||
|
||||
|
||||
# AI Parameters
|
||||
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Параметри
|
||||
STR_AI_SETTINGS_CAPTION_AI :AI
|
||||
|
@@ -474,9 +474,6 @@ STR_ABOUT_MENU_SEPARATOR :
|
||||
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_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_ABOUT_OPENTTD :Quant a l'OpenTTD
|
||||
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_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_OR_CARGO :{WHITE}{STATION} ja no accepta més {STRING} ni {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_TOOLTIP :{BLACK}No canviïs l'script.
|
||||
|
||||
|
||||
# AI Parameters
|
||||
STR_AI_SETTINGS_CAPTION :{WHITE}Paràmetres {STRING}
|
||||
STR_AI_SETTINGS_CAPTION_AI :de la IA
|
||||
|
@@ -574,9 +574,6 @@ STR_ABOUT_MENU_SEPARATOR :
|
||||
STR_ABOUT_MENU_TOGGLE_CONSOLE :Otvori konzolu
|
||||
STR_ABOUT_MENU_AI_DEBUG :Debugiranje UI-ja/Skripte igre
|
||||
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_ABOUT_OPENTTD :O 'OpenTTD'
|
||||
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_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_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}
|
||||
@@ -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_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_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_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}
|
||||
@@ -3213,6 +3213,8 @@ STR_TOWN_VIEW_RENAME_TOWN_BUTTON :Preimenuj grad
|
||||
|
||||
# Town local authority window
|
||||
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_RATING :{YELLOW}{COMPANY} {COMPANY_NUM}: {ORANGE}{STRING}
|
||||
STR_LOCAL_AUTHORITY_ACTIONS_TITLE :{BLACK}Dostupne radnje:
|
||||
@@ -3483,7 +3485,12 @@ STR_COMPANY_INFRASTRUCTURE_VIEW_TOTAL :{WHITE}{CURRENC
|
||||
# Industry directory
|
||||
STR_INDUSTRY_DIRECTORY_CAPTION :{WHITE}Industrije
|
||||
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_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
|
||||
|
||||
# Industry view
|
||||
@@ -4259,6 +4266,7 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Odaberi
|
||||
STR_AI_LIST_CANCEL :{BLACK}Odustani
|
||||
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Nemoj mijenjati skriptu
|
||||
|
||||
|
||||
# AI Parameters
|
||||
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parametri
|
||||
STR_AI_SETTINGS_CAPTION_AI :UI
|
||||
|
@@ -553,9 +553,6 @@ STR_ABOUT_MENU_SEPARATOR :
|
||||
STR_ABOUT_MENU_TOGGLE_CONSOLE :Zobrazit nebo skrýt konzoli
|
||||
STR_ABOUT_MENU_AI_DEBUG :Ladění AI / herních skriptů
|
||||
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_ABOUT_OPENTTD :O 'OpenTTD'
|
||||
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_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_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}
|
||||
@@ -4261,6 +4259,7 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Vybrat o
|
||||
STR_AI_LIST_CANCEL :{BLACK}Zrušit
|
||||
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Neměňte skript
|
||||
|
||||
|
||||
# AI Parameters
|
||||
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parametry
|
||||
STR_AI_SETTINGS_CAPTION_AI :AI
|
||||
|
@@ -475,9 +475,6 @@ STR_ABOUT_MENU_SEPARATOR :
|
||||
STR_ABOUT_MENU_TOGGLE_CONSOLE :Tænd/Sluk konsol
|
||||
STR_ABOUT_MENU_AI_DEBUG :Computerspiller/spilscript debug
|
||||
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_ABOUT_OPENTTD :Om 'OpenTTD'
|
||||
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_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_OR_CARGO :{WHITE}{STATION} accepterer ikke længere {STRING} eller {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_TOOLTIP :{BLACK}Skift ikke script'et
|
||||
|
||||
|
||||
# AI Parameters
|
||||
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parametre
|
||||
STR_AI_SETTINGS_CAPTION_AI :AI
|
||||
|
@@ -478,9 +478,6 @@ STR_ABOUT_MENU_SEPARATOR :
|
||||
STR_ABOUT_MENU_TOGGLE_CONSOLE :Console in-uitschakelen
|
||||
STR_ABOUT_MENU_AI_DEBUG :Probleemoplossing AI/spelscript
|
||||
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_ABOUT_OPENTTD :Over 'OpenTTD'
|
||||
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_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_OR_CARGO :{WHITE}{STATION} accepteert geen {STRING} of {STRING} meer
|
||||
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_TOOLTIP :{BLACK}Script niet wijzigen
|
||||
|
||||
|
||||
# AI Parameters
|
||||
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parameters
|
||||
STR_AI_SETTINGS_CAPTION_AI :AI
|
||||
|
@@ -484,9 +484,6 @@ STR_ABOUT_MENU_SEPARATOR :
|
||||
STR_ABOUT_MENU_TOGGLE_CONSOLE :Toggle console
|
||||
STR_ABOUT_MENU_AI_DEBUG :AI/Game script debug
|
||||
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_TOGGLE_MODIFIER_KEYS :Modifier key window
|
||||
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_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_OR_CARGO :{WHITE}{STATION} no longer accepts {STRING} or {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_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_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_HELPTEXT :Show train length in the vehicle details window
|
||||
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_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_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}
|
||||
@@ -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_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_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_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}
|
||||
@@ -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_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_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
|
||||
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_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
|
||||
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parameters
|
||||
STR_AI_SETTINGS_CAPTION_AI :AI
|
||||
|
@@ -461,9 +461,6 @@ STR_ABOUT_MENU_SEPARATOR :
|
||||
STR_ABOUT_MENU_TOGGLE_CONSOLE :Toggle console
|
||||
STR_ABOUT_MENU_AI_DEBUG :AI/Game script debug
|
||||
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_SPRITE_ALIGNER :Sprite aligner
|
||||
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_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_OR_CARGO :{WHITE}{STATION} no longer accepts {STRING} or {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_TOOLTIP :{BLACK}Don't change the script
|
||||
|
||||
|
||||
# AI Parameters
|
||||
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parameters
|
||||
STR_AI_SETTINGS_CAPTION_AI :AI
|
||||
|
@@ -478,9 +478,6 @@ STR_ABOUT_MENU_SEPARATOR :
|
||||
STR_ABOUT_MENU_TOGGLE_CONSOLE :Toggle console
|
||||
STR_ABOUT_MENU_AI_DEBUG :AI/Game script debug
|
||||
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_ABOUT_OPENTTD :About 'OpenTTD'
|
||||
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_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_OR_CARGO :{WHITE}{STATION} no longer accepts {STRING} or {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_TOOLTIP :{BLACK}Don't change the script
|
||||
|
||||
|
||||
# AI Parameters
|
||||
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parameters
|
||||
STR_AI_SETTINGS_CAPTION_AI :AI
|
||||
|
@@ -464,9 +464,6 @@ STR_ABOUT_MENU_SEPARATOR :
|
||||
STR_ABOUT_MENU_TOGGLE_CONSOLE :Baskuligi Konzolon
|
||||
STR_ABOUT_MENU_AI_DEBUG :AI/Ludo skripto sencimigo
|
||||
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_SPRITE_ALIGNER :Bildeto-liniigilo
|
||||
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_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_OR_CARGO :{WHITE}{STATION} ne plu akceptas {STRING.n} aŭ {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_TOOLTIP :{BLACK}Ne ŝanĝu AI-on
|
||||
|
||||
|
||||
# AI Parameters
|
||||
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parametroj
|
||||
STR_AI_SETTINGS_CAPTION_AI :AI
|
||||
|
@@ -527,9 +527,6 @@ STR_ABOUT_MENU_SEPARATOR :
|
||||
STR_ABOUT_MENU_TOGGLE_CONSOLE :Lülita konsool sisse/välja
|
||||
STR_ABOUT_MENU_AI_DEBUG :Arvutivea otsing
|
||||
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_ABOUT_OPENTTD :'OpenTTD' kohta
|
||||
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_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_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}
|
||||
@@ -4091,6 +4089,7 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Vali esi
|
||||
STR_AI_LIST_CANCEL :{BLACK}Loobu
|
||||
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Ära skripti muuda
|
||||
|
||||
|
||||
# AI Parameters
|
||||
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parameetrid
|
||||
STR_AI_SETTINGS_CAPTION_AI :Tehismõistus
|
||||
|
@@ -448,9 +448,6 @@ STR_ABOUT_MENU_SEPARATOR :
|
||||
STR_ABOUT_MENU_TOGGLE_CONSOLE :Console opið ella lukka
|
||||
STR_ABOUT_MENU_AI_DEBUG :AI/Spæl script debug
|
||||
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_ABOUT_OPENTTD :Um 'OpenTTD'
|
||||
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_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_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}
|
||||
@@ -3526,6 +3524,7 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Vel undi
|
||||
STR_AI_LIST_CANCEL :{BLACK}Angra
|
||||
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Ikki broyta scripti
|
||||
|
||||
|
||||
# AI Parameters
|
||||
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parametur
|
||||
STR_AI_SETTINGS_CAPTION_AI :AI
|
||||
|
@@ -478,9 +478,6 @@ STR_ABOUT_MENU_SEPARATOR :
|
||||
STR_ABOUT_MENU_TOGGLE_CONSOLE :Konsoli
|
||||
STR_ABOUT_MENU_AI_DEBUG :Tekoälyn/peliskriptin virheenjäljitys
|
||||
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_ABOUT_OPENTTD :Tietoja OpenTTD:stä
|
||||
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_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_OR_CARGO :{WHITE}{STATION} ei ota enää vastaan {STRING} tai {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_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_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_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_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_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_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}
|
||||
@@ -4172,6 +4177,14 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Valitse
|
||||
STR_AI_LIST_CANCEL :{BLACK}Peruuta
|
||||
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
|
||||
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parametrit
|
||||
STR_AI_SETTINGS_CAPTION_AI :Tekoäly
|
||||
|
@@ -479,9 +479,6 @@ STR_ABOUT_MENU_SEPARATOR :
|
||||
STR_ABOUT_MENU_TOGGLE_CONSOLE :Afficher/Cacher la console
|
||||
STR_ABOUT_MENU_AI_DEBUG :Débogage de scripts
|
||||
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_ABOUT_OPENTTD :À propos d'OpenTTD
|
||||
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_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_OR_CARGO :{WHITE}{STATION} n'accepte plus {STRING} ou {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_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_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_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}
|
||||
@@ -4173,6 +4176,13 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Sélecti
|
||||
STR_AI_LIST_CANCEL :{BLACK}Annuler
|
||||
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
|
||||
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Paramètres
|
||||
STR_AI_SETTINGS_CAPTION_AI :IA
|
||||
|
@@ -658,9 +658,6 @@ STR_ABOUT_MENU_SEPARATOR :
|
||||
STR_ABOUT_MENU_TOGGLE_CONSOLE :Toglaich a' chonsoil
|
||||
STR_ABOUT_MENU_AI_DEBUG :Dì-bhugaich IF/sgriobt geama
|
||||
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_SPRITE_ALIGNER :Co-thaobhaichear nan sprite
|
||||
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_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_OR_CARGO :{WHITE}Cha ghabh {STATION} ri {STRING} no {STRING} tuilleadh
|
||||
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_TOOLTIP :{BLACK}Na atharraich an sgriobt
|
||||
|
||||
|
||||
# AI Parameters
|
||||
STR_AI_SETTINGS_CAPTION :{WHITE}Paramadairean aig {STRING}
|
||||
STR_AI_SETTINGS_CAPTION_AI :IF
|
||||
|
@@ -479,9 +479,6 @@ STR_ABOUT_MENU_SEPARATOR :
|
||||
STR_ABOUT_MENU_TOGGLE_CONSOLE :(Des)Activar consola
|
||||
STR_ABOUT_MENU_AI_DEBUG :Depuración IA/script do xogo
|
||||
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_ABOUT_OPENTTD :Acerca de 'OpenTTD'
|
||||
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_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_OR_CARGO :{WHITE}{STATION} xa non acepta máis {STRING} nin {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_TOOLTIP :{BLACK}Non cambia-lo script
|
||||
|
||||
|
||||
# AI Parameters
|
||||
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parámetros
|
||||
STR_AI_SETTINGS_CAPTION_AI :IA
|
||||
|
@@ -479,9 +479,6 @@ STR_ABOUT_MENU_SEPARATOR :
|
||||
STR_ABOUT_MENU_TOGGLE_CONSOLE :Konsole öffnen/schließen
|
||||
STR_ABOUT_MENU_AI_DEBUG :KI / Skript-Debug
|
||||
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_ABOUT_OPENTTD :Über OpenTTD
|
||||
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_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_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
|
||||
@@ -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_FONT_ZOOM_DROPDOWN_2X_ZOOM :Doppelt
|
||||
|
||||
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Basisgrafiken
|
||||
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_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_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_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}
|
||||
@@ -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_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_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_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_ALLOWED :Erlaubt
|
||||
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_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_COMPANY_PASSWORD_CAPTION :{WHITE}Firma ist geschützt. Passwort eingeben:
|
||||
STR_NETWORK_COMPANY_LIST_CLIENT_LIST_CAPTION :{WHITE}Teilnehmerliste
|
||||
|
||||
# Network company list added strings
|
||||
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_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
|
||||
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_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_TRAM_SPEED_LIMIT :{BLACK}Höchstgeschwindigkeit Straßenbahn: {LTBLUE}{VELOCITY}
|
||||
|
||||
# Description of land area of different tiles
|
||||
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_WARN :{YELLOW}{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_SECONDS :{TINY_FONT}{COMMA} s
|
||||
############ Leave those lines in this order!!
|
||||
@@ -3180,6 +3189,7 @@ STR_FRAMERATE_DRAWING :{BLACK}Grafik-R
|
||||
STR_FRAMERATE_DRAWING_VIEWPORTS :{BLACK}Kartenansichten:
|
||||
STR_FRAMERATE_VIDEO :{BLACK}Videoausgabe:
|
||||
STR_FRAMERATE_SOUND :{BLACK}Sound-Abmischung:
|
||||
STR_FRAMERATE_GAMESCRIPT :{BLACK} Script:
|
||||
############ End of leave-in-this-order
|
||||
############ Leave those lines in this order!!
|
||||
STR_FRAMETIME_CAPTION_GAMELOOP :Spielschleife
|
||||
@@ -3528,6 +3538,8 @@ STR_TOWN_VIEW_RENAME_TOWN_BUTTON :Stadt umbenenne
|
||||
|
||||
# Town local authority window
|
||||
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_RATING :{YELLOW}{COMPANY} {COMPANY_NUM}: {ORANGE}{STRING}
|
||||
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_NONE :{ORANGE}- Keine -
|
||||
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
|
||||
|
||||
# Industry view
|
||||
@@ -3975,6 +3988,7 @@ STR_GROUP_DEFAULT_ROAD_VEHICLES :Ungruppierte St
|
||||
STR_GROUP_DEFAULT_SHIPS :Ungruppierte Schiffe
|
||||
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_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_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_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_PWAGPOWER_PWAGWEIGHT :{BLACK}Angetriebene Waggons: {GOLD}+{POWER}{BLACK} Gewicht: {GOLD}+{WEIGHT_SHORT}
|
||||
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_RAILROAD_LOCOMOTIVE :{G=w}Lokomotive
|
||||
STR_ENGINE_PREVIEW_ELRAIL_LOCOMOTIVE :Elektrifizierte Lokomotive
|
||||
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :{G=w}Einschienenbahn
|
||||
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_MAGLEV_VEHICLES :Magnetschwebebahn
|
||||
|
||||
STR_REPLACE_TRAM_VEHICLES :Straßenbahnfahrzeuge
|
||||
|
||||
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
|
||||
@@ -4777,6 +4794,7 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Ausgewä
|
||||
STR_AI_LIST_CANCEL :{BLACK}Abbrechen
|
||||
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Skript nicht wechseln
|
||||
|
||||
|
||||
# AI Parameters
|
||||
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parameter
|
||||
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_THERE_IS_NO_ROAD :{WHITE}...hier ist keine Straße
|
||||
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
|
||||
STR_ERROR_CAN_T_BUILD_CANALS :{WHITE}Kanal kann hier nicht gebaut werden...
|
||||
|
@@ -534,9 +534,6 @@ STR_ABOUT_MENU_SEPARATOR :
|
||||
STR_ABOUT_MENU_TOGGLE_CONSOLE :Εναλλαγή κονσόλας
|
||||
STR_ABOUT_MENU_AI_DEBUG :Αποσφαλμάτωση AI και δέσμης ενεργειών παιχνιδιού
|
||||
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_ABOUT_OPENTTD :Σχετικά με το 'OpenTTD'
|
||||
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_NOW_AVAILABLE_WITH_TYPE :{BLACK}Ένα νέο {STRING} είναι πλέον διαθέσιμο! - {ENGINE}
|
||||
|
||||
|
||||
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_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_TOOLTIP :{BLACK}Να μην γίνει αλλαγή δέσμης ενεργειών
|
||||
|
||||
|
||||
# AI Parameters
|
||||
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Παράμετροι
|
||||
STR_AI_SETTINGS_CAPTION_AI :AI
|
||||
|
@@ -484,9 +484,6 @@ STR_ABOUT_MENU_SEPARATOR :
|
||||
STR_ABOUT_MENU_TOGGLE_CONSOLE :פתח/סגור קונסולה
|
||||
STR_ABOUT_MENU_AI_DEBUG :דיבאג של סקריפטים של בינה מלאכותית או של המשחק
|
||||
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_ABOUT_OPENTTD :'OpenTTD'{NBSP}אודות
|
||||
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_NOW_AVAILABLE_WITH_TYPE :{BLACK}{STRING} חדש זמין כעת - {ENGINE}!
|
||||
|
||||
|
||||
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_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_TOOLTIP :{BLACK}אל תשנה את התסריט
|
||||
|
||||
|
||||
# AI Parameters
|
||||
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} פרמטרים
|
||||
STR_AI_SETTINGS_CAPTION_AI :שחקן מחשב
|
||||
|
@@ -541,9 +541,6 @@ STR_ABOUT_MENU_SEPARATOR :
|
||||
STR_ABOUT_MENU_TOGGLE_CONSOLE :Átváltás konzolra
|
||||
STR_ABOUT_MENU_AI_DEBUG :MI / Játékszkript nyomköveté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_ABOUT_OPENTTD :Az 'OpenTTD'-ről
|
||||
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_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_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}
|
||||
@@ -4230,6 +4228,7 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}A kijel
|
||||
STR_AI_LIST_CANCEL :{BLACK}Mégsem
|
||||
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Ne változtassa a szkriptet
|
||||
|
||||
|
||||
# AI Parameters
|
||||
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Paraméterek
|
||||
STR_AI_SETTINGS_CAPTION_AI :MI
|
||||
|
@@ -448,9 +448,6 @@ STR_ABOUT_MENU_SEPARATOR :
|
||||
STR_ABOUT_MENU_TOGGLE_CONSOLE :Kveikja á stýriskjá
|
||||
STR_ABOUT_MENU_AI_DEBUG :Aflúsun gervigreindar/forskrifta
|
||||
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_SPRITE_ALIGNER :Samstilla hreyfimynd
|
||||
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_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_OR_CARGO :{WHITE}{STATION} tekur ekki lengur við {STRING} eða {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_TOOLTIP :{BLACK}Hætta við breytingar forskriftar
|
||||
|
||||
|
||||
# AI Parameters
|
||||
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} breytur
|
||||
STR_AI_SETTINGS_CAPTION_AI :Gervigreindar
|
||||
|
@@ -472,9 +472,6 @@ STR_ABOUT_MENU_SEPARATOR :
|
||||
STR_ABOUT_MENU_TOGGLE_CONSOLE :Hidup/matikan Layar Konsol
|
||||
STR_ABOUT_MENU_AI_DEBUG :Debug skrip AI
|
||||
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_ABOUT_OPENTTD :Tentang 'OpenTTD'
|
||||
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_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_OR_CARGO :{WHITE}{STATION} tidak lagi menerima {STRING} atau {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_TOOLTIP :{BLACK}Jangan mengubah skrip AI
|
||||
|
||||
|
||||
# AI Parameters
|
||||
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parameter
|
||||
STR_AI_SETTINGS_CAPTION_AI :AI
|
||||
|
@@ -470,9 +470,6 @@ STR_ABOUT_MENU_SEPARATOR :
|
||||
STR_ABOUT_MENU_TOGGLE_CONSOLE :Scoránaigh consól
|
||||
STR_ABOUT_MENU_AI_DEBUG :Dífhabhtú AI/Scripteanna Cluiche
|
||||
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_SPRITE_ALIGNER :Ailínóir spriteanna
|
||||
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_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_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
|
||||
@@ -3998,6 +3996,7 @@ STR_AI_LIST_ACCEPT_TOOLTIP :{BLACK}Roghnaig
|
||||
STR_AI_LIST_CANCEL :{BLACK}Cuir ar ceal
|
||||
STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}Ná hathraigh an AI
|
||||
|
||||
|
||||
# AI Parameters
|
||||
STR_AI_SETTINGS_CAPTION :{WHITE}Paraiméadair {STRING}
|
||||
STR_AI_SETTINGS_CAPTION_AI :AI
|
||||
|
@@ -480,9 +480,6 @@ STR_ABOUT_MENU_SEPARATOR :
|
||||
STR_ABOUT_MENU_TOGGLE_CONSOLE :Apri/chiudi console
|
||||
STR_ABOUT_MENU_AI_DEBUG :Debug IA/Script
|
||||
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_ABOUT_OPENTTD :Informazioni su 'OpenTTD'
|
||||
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_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_OR_CARGO :{WHITE}{STATION} non accetta più {STRING} né {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_TOOLTIP :{BLACK}Non modifica lo script utilizzato
|
||||
|
||||
|
||||
# AI Parameters
|
||||
STR_AI_SETTINGS_CAPTION :{WHITE}Parametri {STRING}
|
||||
STR_AI_SETTINGS_CAPTION_AI :AI
|
||||
|
@@ -470,9 +470,6 @@ STR_ABOUT_MENU_SEPARATOR :―――――
|
||||
STR_ABOUT_MENU_TOGGLE_CONSOLE :コンソールの表示切替
|
||||
STR_ABOUT_MENU_AI_DEBUG :AI/ゲームスクリプトのデバッグ
|
||||
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_SPRITE_ALIGNER :スプライトを整列
|
||||
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_NOW_AVAILABLE_WITH_TYPE :{BLACK}{STRING}が新登場! - {ENGINE}
|
||||
|
||||
|
||||
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_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_TOOLTIP :{BLACK}スクリプトを変更しません
|
||||
|
||||
|
||||
# AI Parameters
|
||||
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} パラメータ
|
||||
STR_AI_SETTINGS_CAPTION_AI :AI
|
||||
|
@@ -484,9 +484,6 @@ STR_ABOUT_MENU_SEPARATOR :
|
||||
STR_ABOUT_MENU_TOGGLE_CONSOLE :콘솔 켜기/끄기
|
||||
STR_ABOUT_MENU_AI_DEBUG :인공지능/게임 스크립트 디버그
|
||||
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_TOGGLE_MODIFIER_KEYS :보조 키 창
|
||||
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_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_OR_CARGO :{WHITE}{STATION}에서 더 이상 {STRING}/{STRING}{G 2 "을" "를"} 받지 않습니다.
|
||||
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_HELPTEXT :신문이 컬러로 나오게 되는 연도를 설정합니다. 이 연도 이전까지는 신문이 흑백으로 나옵니다.
|
||||
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_HELPTEXT :이 설정을 켜면, 1차 산업시설의 생산량이 소량으로 자주 변하게 됩니다. NewGRF로 추가한 산업시설에는 적용되지 않습니다.
|
||||
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_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
|
||||
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} 매개 변수
|
||||
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_STOP_SHARING_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}... 항공기의 항속거리가 충분하지 않습니다.
|
||||
|
||||
# Timetable related errors
|
||||
|
@@ -661,9 +661,6 @@ STR_ABOUT_MENU_SEPARATOR :
|
||||
STR_ABOUT_MENU_TOGGLE_CONSOLE :Monstrare celareve consolam
|
||||
STR_ABOUT_MENU_AI_DEBUG :Emendatio IA/Ludi scriptorum
|
||||
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_SPRITE_ALIGNER :Norma spiritus
|
||||
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_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_OR_CARGO :{WHITE}{STATION} non diutius {STRING.acc} {STRING.acc}que 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_TOOLTIP :{BLACK}Non scriptum mutare
|
||||
|
||||
|
||||
# AI Parameters
|
||||
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parametra
|
||||
STR_AI_SETTINGS_CAPTION_AI :IA
|
||||
|
@@ -470,9 +470,6 @@ STR_ABOUT_MENU_SEPARATOR :
|
||||
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_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_ABOUT_OPENTTD :Par 'OpenTTD'
|
||||
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_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_OR_CARGO :{WHITE}{STATION} vairs nepieņem {STRING} vai {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_TOOLTIP :{BLACK}Nemainīt skriptu
|
||||
|
||||
|
||||
# AI Parameters
|
||||
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} parametri
|
||||
STR_AI_SETTINGS_CAPTION_AI :MI
|
||||
|
@@ -665,9 +665,6 @@ STR_ABOUT_MENU_SEPARATOR :
|
||||
STR_ABOUT_MENU_TOGGLE_CONSOLE :Perjungti konsolę
|
||||
STR_ABOUT_MENU_AI_DEBUG :AI / GameScript derinimas
|
||||
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_SPRITE_ALIGNER :Spruklių lygiuoklė
|
||||
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_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_OR_CARGO :{WHITE}{STATION} nebepriima {STRING} arba {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_TOOLTIP :{BLACK}Nekeisti skripto
|
||||
|
||||
|
||||
# AI Parameters
|
||||
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parametrai
|
||||
STR_AI_SETTINGS_CAPTION_AI :DI
|
||||
|
@@ -235,6 +235,8 @@ STR_TOOLTIP_FILTER_CRITERIA :{BLACK}Filterkr
|
||||
STR_BUTTON_SORT_BY :{BLACK}Sortéier no
|
||||
STR_BUTTON_LOCATION :{BLACK}Plaz
|
||||
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_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_CANCEL :{BLACK}Ofbriechen
|
||||
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
|
||||
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_BUILD_RAILROAD_TRACK :{BLACK}Schinne 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_AIRPORTS :{BLACK}Fluchhafe bauen
|
||||
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_INDUSTRY_GENERATION :{BLACK}Industrieerstellung
|
||||
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_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
|
||||
@@ -473,9 +478,6 @@ STR_ABOUT_MENU_SEPARATOR :
|
||||
STR_ABOUT_MENU_TOGGLE_CONSOLE :Konsole un/aus
|
||||
STR_ABOUT_MENU_AI_DEBUG :KI / Spill-Script Debug
|
||||
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_ABOUT_OPENTTD :Iwwert 'OpenTTD'
|
||||
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_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_ROAD_VEHICLE_CRASH_DRIVER :{BIG_FONT}{BLACK}Stroossenakzident!{}Fuerer stierft an der Explosioun no Akzident mat Zuch
|
||||
STR_NEWS_ROAD_VEHICLE_CRASH :{BIG_FONT}{BLACK}Stroossegefierakzident!{}{COMMA} Leit stiewen an der Explosioun no Akzident mam Zuch
|
||||
STR_NEWS_AIRCRAFT_CRASH :{BIG_FONT}{BLACK}Fligerakzident!{}{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_TRAIN_CRASH :{BIG_FONT}{BLACK}Zuchaccident!{}{COMMA} Leit stiewen an der Explosioun nom Accident
|
||||
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}Stroossegefieraccident!{}{COMMA} Leit stiewen an der Explosioun no Accident mam Zuch
|
||||
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}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_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_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_OR_CARGO :{WHITE}{STATION} akzeptéiert {STRING} oder {STRING} net méi
|
||||
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
|
||||
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_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
|
||||
|
||||
# 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_RUB :Neie Russesche Rubel (RUB)
|
||||
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
|
||||
|
||||
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_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_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_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_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_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}
|
||||
@@ -1199,8 +1207,8 @@ STR_CONFIG_SETTING_TRAIN_SLOPE_STEEPNESS_HELPTEXT :Steigung vun en
|
||||
STR_CONFIG_SETTING_PERCENTAGE :{COMMA}%
|
||||
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_FORBID_90_DEG :Verbidd Zich an Schëffer 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 :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.
|
||||
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_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_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_CRASHES :Unzuel Fligerakzidenter: {STRING}
|
||||
STR_CONFIG_SETTING_PLANE_CRASHES_HELPTEXT :Leet d'Chance fir en Fligerakzident fest
|
||||
STR_CONFIG_SETTING_PLANE_CRASHES_NONE :Keng
|
||||
STR_CONFIG_SETTING_PLANE_CRASHES :Unzuel Fligeraccidenter: {STRING}
|
||||
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_REDUCED :Reduzéiert
|
||||
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}
|
||||
@@ -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_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_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_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_OIL_REF_EDGE_DISTANCE :Maximal Distanz vum Kaartenenn bis zu enger Uelegraffinerie: {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 :Maximal Distanz vum Kaarterand bis zu enger Uelegindustrie: {STRING}
|
||||
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_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}
|
||||
@@ -1356,6 +1365,7 @@ STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :Mof
|
||||
STR_CONFIG_SETTING_SCROLLMODE :Usiicht-Scrollverhalen: {STRING}
|
||||
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_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_LMB :Kaart mat der lénker Maustast bewegen
|
||||
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_CLICK :Kneppercherklicks: {STRING}
|
||||
STR_CONFIG_SETTING_SOUND_CLICK_HELPTEXT :Beep beim Klicken vu Kneppercher
|
||||
STR_CONFIG_SETTING_SOUND_DISASTER :Katastrophen/Akzidenter: {STRING}
|
||||
STR_CONFIG_SETTING_SOUND_DISASTER_HELPTEXT :Spill Soundeffekter vun Akzidenter a Katastrophen of
|
||||
STR_CONFIG_SETTING_SOUND_DISASTER :Katastrophen/Accidenter: {STRING}
|
||||
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_HELPTEXT :Spill Soundeffekter vu Gefierer of
|
||||
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_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_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_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_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_ACCIDENTS_DISASTERS :Akzidenter / Katastrophen: {STRING}
|
||||
STR_CONFIG_SETTING_NEWS_ACCIDENTS_DISASTERS_HELPTEXT :Weis d'Zeitung wann Akzidenter oder Katastrophen passéiren
|
||||
STR_CONFIG_SETTING_NEWS_ACCIDENTS_DISASTERS :Accidenter / Katastrophen: {STRING}
|
||||
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_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}
|
||||
@@ -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_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_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_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_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_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}
|
||||
@@ -1571,7 +1590,7 @@ STR_CONFIG_SETTING_TOWN_LAYOUT_3X3_GRID :3x3 Gitter
|
||||
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_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_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
|
||||
@@ -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_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_ORIGINAL :Quadratesch (original)
|
||||
STR_CONFIG_SETTING_TOWN_CARGOGENMODE_BITCOUNT :Linear
|
||||
|
||||
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_ROUTING :{ORANGE}Routeplangung
|
||||
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_ENVIRONMENT :{ORANGE}Emwelt
|
||||
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_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_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
|
||||
|
||||
# Intro window
|
||||
@@ -1801,7 +1821,7 @@ STR_OSNAME_SUNOS :SunOS
|
||||
|
||||
# Abandon game
|
||||
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 ?
|
||||
|
||||
# Cheat window
|
||||
@@ -1812,7 +1832,7 @@ STR_CHEAT_MONEY :{LTBLUE}Suen ë
|
||||
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_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_QUERY_CAPT :{WHITE}Änner d'Maximalhéicht vu Bierger op der Kaart
|
||||
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_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
|
||||
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
|
||||
|
||||
# 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_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
|
||||
@@ -2253,7 +2274,7 @@ STR_CONTENT_TYPE_NEWGRF :NewGRF
|
||||
STR_CONTENT_TYPE_AI :KI
|
||||
STR_CONTENT_TYPE_AI_LIBRARY :KI Librairie
|
||||
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_MUSIC :Basis Musik
|
||||
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_NONE :{BLACK}Keng
|
||||
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
|
||||
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_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_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_INCREASE_TOOLTIP :{BLACK}Setzt Signaldicht erop
|
||||
STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_INCREASE_TOOLTIP :{BLACK}Setzt Signaldistanz erop
|
||||
|
||||
# Bridge selection window
|
||||
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_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_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_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
|
||||
@@ -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_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_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
|
||||
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_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)
|
||||
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_EIGHTS :({COMMA}/8 {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_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
|
||||
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_ROAD_VEHICLE_DEPOT :Stroossendepot
|
||||
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
|
||||
STR_LAI_TOWN_INDUSTRY_DESCRIPTION_UNDER_CONSTRUCTION :{STRING} (gëtt gebaut)
|
||||
@@ -2708,6 +2737,7 @@ STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD
|
||||
# Framerate display window
|
||||
STR_FRAMERATE_CAPTION :{WHITE}Biller pro Sekonn
|
||||
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_BLITTER :{BLACK}Grafikframerate: {STRING}
|
||||
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_CURRENT :{WHITE}Aktuell
|
||||
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_WARN :{YELLOW}{DECIMAL} ms
|
||||
STR_FRAMERATE_MS_BAD :{RED}{DECIMAL} ms
|
||||
STR_FRAMERATE_FPS_GOOD :{LTBLUE}{DECIMAL} Biller/s
|
||||
STR_FRAMERATE_FPS_WARN :{YELLOW}{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
|
||||
############ Leave those lines in this order!!
|
||||
STR_FRAMERATE_GAMELOOP :{BLACK}Spill total:
|
||||
STR_FRAMERATE_GL_TRAINS :{BLACK} Zuchticks:
|
||||
STR_FRAMERATE_GL_ROADVEHS :{BLACK} Stroossegefierer Ticken:
|
||||
STR_FRAMERATE_GL_ECONOMY :{BLACK} Wuerenhandling:
|
||||
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_DRAWING :{BLACK}Grafikrendering:
|
||||
STR_FRAMERATE_DRAWING_VIEWPORTS :{BLACK} Welt-Usiichten:
|
||||
STR_FRAMERATE_VIDEO :{BLACK}Video-output:
|
||||
STR_FRAMERATE_SOUND :{BLACK}Soundmixing:
|
||||
STR_FRAMERATE_ALLSCRIPTS :{BLACK} GS/KI Total:
|
||||
STR_FRAMERATE_GAMESCRIPT :{BLACK} Gamescript:
|
||||
STR_FRAMERATE_AI :{BLACK} KI {NUM} {STRING}
|
||||
@@ -2737,10 +2778,12 @@ STR_FRAMERATE_AI :{BLACK} KI {N
|
||||
############ Leave those lines in this order!!
|
||||
STR_FRAMETIME_CAPTION_GAMELOOP :Spill-Loop
|
||||
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_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_VIEWPORTS :Weltusiicht-Rendering
|
||||
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_FILTER_TITLE :{BLACK}Filter-String:
|
||||
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
|
||||
|
||||
@@ -2802,7 +2846,7 @@ STR_MAPGEN_VARIETY :{BLACK}Vielfalt
|
||||
STR_MAPGEN_GENERATE :{WHITE}Generéiren
|
||||
|
||||
# Strings for map borders at game generation
|
||||
STR_MAPGEN_BORDER_TYPE :{BLACK}Kaartenenner:
|
||||
STR_MAPGEN_BORDER_TYPE :{BLACK}Kaarteränner:
|
||||
STR_MAPGEN_NORTHWEST :{BLACK}Nordwest
|
||||
STR_MAPGEN_NORTHEAST :{BLACK}Nordost
|
||||
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_32BPP :Standard (S) / 32 bpp
|
||||
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_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_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_INDPROD_CALLBACK :Ongültegen Industrie-production callback (sprite {3:NUM}, "{2:STRING}")
|
||||
|
||||
# NewGRF related 'general' warnings
|
||||
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_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_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
|
||||
STR_NEWGRF_INVALID_CARGO :<invalid Wuer>
|
||||
@@ -3075,6 +3122,8 @@ STR_TOWN_VIEW_RENAME_TOWN_BUTTON :Stad ëmbenenne
|
||||
|
||||
# Town local authority window
|
||||
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_RATING :{YELLOW}{COMPANY} {COMPANY_NUM}: {ORANGE}{STRING}
|
||||
STR_LOCAL_AUTHORITY_ACTIONS_TITLE :{BLACK}Verfügbar Aktiounen:
|
||||
@@ -3103,6 +3152,7 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}D'Gemen
|
||||
# Goal window
|
||||
STR_GOALS_CAPTION :{WHITE}{COMPANY} Ziler
|
||||
STR_GOALS_SPECTATOR_CAPTION :{WHITE}Global Ziler
|
||||
STR_GOALS_SPECTATOR :Global Ziler
|
||||
STR_GOALS_GLOBAL_TITLE :{BLACK}Global Ziler:
|
||||
STR_GOALS_TEXT :{ORANGE}{STRING}
|
||||
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_SIGNALS :{WHITE}Signaler
|
||||
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_CANALS :{WHITE}Kanäl
|
||||
STR_COMPANY_INFRASTRUCTURE_VIEW_STATION_SECT :{GOLD}Statiounen:
|
||||
@@ -3343,7 +3394,12 @@ STR_COMPANY_INFRASTRUCTURE_VIEW_TOTAL :{WHITE}{CURRENC
|
||||
# Industry directory
|
||||
STR_INDUSTRY_DIRECTORY_CAPTION :{WHITE}Industrien
|
||||
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_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
|
||||
|
||||
# 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_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_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_ROAD_VEHICLE_CAPTION :Nei Stroossegefierer
|
||||
STR_BUY_VEHICLE_TRAM_VEHICLE_CAPTION :Nei Tramgefierer
|
||||
|
||||
############ range for vehicle availability starts
|
||||
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_AIRCRAFT_CAPTION :Neie Fliger
|
||||
############ 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_REFITTABLE_TO :{BLACK}Embaubar zu: {GOLD}{STRING}
|
||||
STR_PURCHASE_INFO_ALL_TYPES :All Wuerentyp
|
||||
STR_PURCHASE_INFO_NONE :Keng
|
||||
STR_PURCHASE_INFO_ALL_BUT :Alles ausser {CARGO_LIST}
|
||||
STR_PURCHASE_INFO_MAX_TE :{BLACK}Max. Zéikraaft: {GOLD}{FORCE}
|
||||
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_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_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_RAILROAD_LOCOMOTIVE :Lokomotiv
|
||||
STR_ENGINE_PREVIEW_ELRAIL_LOCOMOTIVE :Elektresch Lokomotiv
|
||||
STR_ENGINE_PREVIEW_MONORAIL_LOCOMOTIVE :Monorail Lokomotiv
|
||||
STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :Magnéitbunnlokomotiv
|
||||
|
||||
STR_ENGINE_PREVIEW_ROAD_VEHICLE :Stroossegefier
|
||||
STR_ENGINE_PREVIEW_TRAM_VEHICLE :Tram-Gefier
|
||||
|
||||
STR_ENGINE_PREVIEW_AIRCRAFT :Fliger
|
||||
STR_ENGINE_PREVIEW_SHIP :Schëff
|
||||
@@ -3648,14 +3712,18 @@ STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Wiessel
|
||||
STR_REPLACE_ENGINES :Lokomotiven
|
||||
STR_REPLACE_WAGONS :Waggonen
|
||||
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_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_RAIL_VEHICLES :Zich
|
||||
STR_REPLACE_ELRAIL_VEHICLES :Elektresch Zich
|
||||
STR_REPLACE_MONORAIL_VEHICLES :Monorail 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_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
|
||||
STR_VEHICLE_STATUS_LOADING_UNLOADING :{LTBLUE}Lueden / Entlueden
|
||||
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_STOPPED :{RED}Gestoppt
|
||||
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_AND_TRAVEL_FOR :an ënnerwee während {STRING}
|
||||
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_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_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
|
||||
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} Parameter
|
||||
STR_AI_SETTINGS_CAPTION_AI :KI
|
||||
@@ -4201,7 +4276,7 @@ STR_ERROR_MESSAGE_CAPTION_OTHER_COMPANY :{YELLOW}Matdeel
|
||||
|
||||
# Generic construction errors
|
||||
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_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
|
||||
@@ -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_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_TOO_CLOSE_TO_EDGE_OF_MAP_SUB :{WHITE}... ze noo um Enn vun der Kaart
|
||||
STR_ERROR_TOO_CLOSE_TO_ANOTHER_TOWN :{WHITE}... ze noo un enger anerer Stad
|
||||
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 no un enger anerer Stad
|
||||
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_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_BUILD_HERE :{WHITE}Kann {STRING} net hei 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_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
|
||||
@@ -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_BUS_STOPS :{WHITE}Ze vill Busarrêten
|
||||
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_AIRPORT :{WHITE}Ze noo un engem aaneren Fluchhafen
|
||||
STR_ERROR_TOO_CLOSE_TO_ANOTHER_DOCK :{WHITE}Ze no un engem aaneren Hafen
|
||||
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_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
|
||||
@@ -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_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_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_RAILROAD_TRACK :{WHITE}Kann d'Schinnen hei net bauen...
|
||||
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_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_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_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_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
|
||||
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
Reference in New Issue
Block a user