Update to 1.11.1

This commit is contained in:
dP
2021-04-19 00:52:41 +03:00
parent 5253131d44
commit 5881c752f5
155 changed files with 1579 additions and 843 deletions

View File

@@ -1,217 +1,32 @@
1.11.0 (2021-04-01)
1.11.1 (2021-04-18)
------------------------------------------------------------------------
Feature: Allow setting a custom terrain type to define highest peak (#8891)
Feature: Auto-detect map height limit based on generated map (#8891)
Feature: Setting to indicate desert coverage for tropic climate and snow coverage for arctic climate (replaces snow line height) (#8891)
Add: Allow setting the highest mountain for heightmaps (#8891)
Change: Scale exported heightmaps to highest peak and inform the user of this value (#8891)
Change: Remove "maximum map height" from the New Game GUI (#8891)
Fix #8803: Only auto-remove signals when rail can be built (#8904)
Fix #8565: Stopped road vehicle displays a speed different than 0 (#8901)
Fix #8886: Don't try to resolve folders within tars named '.' (#8893)
Fix: Placing random trees in SE crashes the game (#8892)
Fix #8875: Filter string in station window breaks flow in user interface (#8885)
Fix #8871: [OpenGL] Initialize all buffers after resize and clear back buffer (#8877)
Fix: OpenGL performance with some AMD GPUs (#8876)
Fix: Recompute road/railtype availability after disabling the engine (#8872)
Fix: OSK layout not scaled for 2x or 4x GUI scale (#8868)
1.11.0-RC1 (2021-03-14)
------------------------------------------------------------------------
Feature: Option to (dis-)allow hardware accelerated video drivers (#8819)
Feature: Option to set display refresh rate (#8813)
Feature: Allow custom width/height of screenshot and making heightmap screenshots via console (#8804)
Feature: Allow filtering on name in rail station window (#8706)
Feature: Setting for highest resolution of sprites to use (#8604)
Add: Make NewGRF Scanner / World Generation update smoother and make aborting it react faster (#8830)
Add: Malaysia Ringgit as Currency (#8783)
Add: "Engines only" filter in build train window (#8733)
Change: De-limit framerate window's framerate (#8772)
Change: Clarify what effect town interactions have (#8744)
Change: Don't show global goals in company goal windows (#8709)
Change: Recolour graph windows to brown (#8700)
Fix #8855: Bootstrap could result in an empty screen when bootstrap fails (#8856)
Fix #8851: Don't allow infinite "exec" depth in script, but limit to 10 deep (#8852)
Fix #8647: Incorrect drawing order of tram catenary sprites (#8843)
Fix #8711: Having gui_zoom lower than zoom_min causes a crash (#8835)
Fix #8810: "aircraft out of fuel" news shows the wrong place (#8832)
Fix #8833: Don't reload NewGRFs when we are shutting down (#8830)
Fix: Scale padding between elements the same as other padding (#8829)
Fix #8808: [OSX, OpenGL] Crash on switching blitters due to double-mapping the video buffer (#8822)
Fix #8784: Using Alt+Enter doesn't update the fullscreen toggle visibly (#8820)
Fix #8817: Keep NewGRF order for object class sorting (#8818)
Fix #8809: Crash when removing airport when hangar window open (#8815)
Fix #8799: Crash when Search Internet in Multiplayer (#8801)
Fix #8775: [Win32] Don't create the main window when Alt-Tabbing back into fullscreen (#8792)
Fix #8774: Black screenshots when using 40bpp-blitter (#8791)
Fix: [OSX] Hide dock when entering fullscreen (#8789)
Fix: Bootstrap fails to start on clean install (#8788)
Fix: Terraform limit acts random when maxing out per_64k_frames setting (#8782)
Fix: Max-value of fast-forward-speed-limit can be outside its storage size (#8769)
1.11.0-beta2 (2021-02-28)
------------------------------------------------------------------------
Feature: Add setting to limit fast-forward speed (#8766)
Feature: Significant performance improvements to all video drivers (#8605, #8652, #8660, #8685, #8702, #8703, #8707, #8726, #8740)
Feature: Configurable display refresh-rate, default to 60fps (#8680)
Feature: Automatically upload releases to Steam (#8644)
Feature: Generic Linux builds (#8641)
Feature: [GS] Allow non-question type windows to have no buttons (#8638)
Feature: [macOS] ZIP build (#8614)
Feature: Object class selection string filtering (#8603)
Feature: 'Remove all industries' button in scenario editor (#8550)
Feature: Automatic UI and font zoom levels when supported by the OS (#8537)
Feature: [macOS] Render screen at native resolution by default for HiDPI screens (#8519)
Feature: OpenGL video driver (#7744)
Add: Indonesia Rupiah currency (#8616)
Change: Improve graph period markings (#8732)
Change: Make pathfinder account for maximum order speed, if set (#8722)
Change: Darken graph grid lines for legibility (#8690)
Change: Make order window hotkeys toggle for load & unload variants (#8669)
Change: Use a more specific error message when attempting to bulldoze your own HQ (#8667)
Change: Convert .md to .rtf for Windows/Mac packages (#8617)
Change: Move the 'tree placer algorithm' & 'road drive side' settings to the Settings window (#8566)
Change: Move town name generator selection to mapgen GUI (#8566)
Change: [macOS] Native font rendering (#8518)
Fix: Display of network lobby windows for different GUI sizes (#8765)
Fix: Don't desync if client leaves before you finish downloading map (#8755)
Fix: Allow estimating vehicle clone cost even if short on money (#8748)
Fix: Don't notify twice that a client left because of a timeout (#8746)
Fix: Vehicle cursor size did not account for the interface zoom level (#8739)
Fix #8123: Trams on half-tiles couldn't find depots (#8738)
Fix #8276: [NewGRF] Crash when an object's size was not set (#8719)
Fix #8349: Close depot vehicle list windows when closing the depot window (#8717)
Fix #8594: [NRT] Road pathfinder did not account for roadtype speed limits or lengths of tunnels/bridges (#8710)
Fix: Whole status bar instead of money widget refreshed on money change (#8692)
Fix: Unnecessary status bar redraws when there is no news to show (#8691)
Fix: New orders are non-stop by default (#8689)
Fix: Framerate window showed a slightly higher rate than actually measured (#8682)
Fix: Autorenew failure advice due to bad refit being shown to all companies (#8681)
Fix #8625: Wrong ending year was displayed in highscore table (#8672)
Fix #8620: Scale spacing between date & news in history window according to font scaling (#8671)
Fix: [Win32] Set minimum resolution for timers to 1ms (#8660)
Fix: Mention our websites with https:// (instead of http://) (#8657)
Fix: [Emscripten] Open links in browser (#8655)
Fix: Don't crash when towns upgrade road tiles during expansion (#8651)
Fix #8029: [SDL2] Blank display when under Wayland (#8648)
Fix: Default Network Server List sorter put compatible servers in wrong order (#8626)
Fix: Use non-pulsating red highlight for coverage (#8622)
Fix: Center text and image in vehicle statusbar vertically (#8602)
Fix: Don't walk out of the map when trying to build tunnels (#8600)
Fix: Off-by-one error in desert/rainforest positioning at world gen (#8588)
Fix #8037: Crash when restarting AI that is controlling the same company as the player (#8587)
Fix: Stopped ships shouldn't block depots (#8578)
1.11.0-beta1 (2021-01-22)
------------------------------------------------------------------------
Feature: [GS] Ability to set some extra text in the industry window (#8576)
Feature: Show rainforest under vegetation on smallmap (#8562)
Feature: Automatically determine window size on new install (#8536)
Feature: Towns can build tunnels (#8473)
Feature: Make maximum length of town bridges depend on population (with a minimum limit of 4) (#8439)
Feature: New icons for renaming and go-to-location on GUI windows, and improve consistency of usage (#8455)
Feature: Support for ARM64 on Apple Silicon and Windows (#8340, #8577, #8583)
Feature: Add an option to disable tree growth completely (#8415)
Feature: Support for Emscripten (play-OpenTTD-in-the-browser!) (#8355)
Feature: Show group name as part of the default vehicle name (#8307)
Feature: "Frozen" economy setting that stops production changes and industry closures (#8282)
Feature: New velocity unit "tiles/day" (#8278)
Feature: Option to automatically remove signals when placing rail (#8274)
Feature: Increase max possible distance from border for oil refineries and rigs (#8237)
Feature: Improve tree planting window, and allow planting 'clumps' of trees by dragging in the scenario editor (#8234)
Feature: Indian Rupee (INR) currency (#8136)
Feature: [GS] Ability to give a company exclusive access to an industry (#8115)
Feature: Hotkeys for Land Info window, News window & close error window (#8053, #8266)
Feature: Improve rendering of large viewports (#7962)
Feature: [GS] Influence industry production changes from GameScript (#7912)
Feature: [GS] Push-buttons on storybook pages (#7896)
Feature: Option to group vehicle lists by shared orders (#7028)
Feature: Drag-and-drop vehicles in group GUI for shared order groups (#7028)
Add: [GS] A tile parameter to GSCompany::ChangeBankBalance for showing changes more visually (#8573)
Add: [NewGRF] Allow NewGRF vehicles to query the current rail/road/tram type (#8554)
Add: [Script] ScriptCargo::GetName for the human readable name of cargoes (#8544)
Add: "reload" console command to reload the current scenario or heightmap (#8527)
Add: [NewGRF] Flag to test if inflation is on or off (#8427)
Add: [Script] Native priority queue (useful for things like pathfinders) (#8091)
Add: [NewGRF] Industry behaviour flag to override second cargo production clamping for water industries when using smooth economy (#8079)
Change: [SDL2] Start game on the screen where the cursor is (#8572)
Change: Use a dark background for all profit graphs to increase contrast (#8557)
Change: Reword warning in cheat window (#8538)
Change: Enable the toolbar for road/rail/dock/airport, regardless of vehicle availability (#8521)
Change: For arctic and tropical climates, make sure at least a few hills are generated (#8513)
Change: Destroying a tunnel/bridge now sells the tracks before destroying the tunnel/bridge (#8508)
Change: Move "give money" from client-list to company window (#8500)
Change: [MacOS] Hide Dock and menu when in fullscreen mode (#8487)
Change: Improve performance for complex vehicle chains by resolving sprites less frequently (#8485)
Change: Make engine reliability independent of introduction date (#8470)
Change: Some default settings to improve gameplay for new players - default non-stop orders on, disable inflation, quick goto orders, show track reservations, and more (#8463)
Change: Converting town-owned road types now requires a positive town rating (#8457)
Change: Rework server list buttons for searching LAN/internet servers (#8426)
Change: Add some styling to GS question windows depending on the type (#8422)
Change: [Linkgraph] Speed up game exit by allowing job threads to be aborted early (#8416)
Change: Prevent towns from building dead-end road bridges (#8401)
Change: Send network error to the server before making an emergency save (#8387)
Change: Extend the allowed range for max loan setting up to £2 billion (#8386)
Change: Don't display OS name when exiting the game (#8366)
Change: Save openttd.cfg immediately on changing a setting (#8358)
Change: Autorenew now defaults to on (#8352)
Change: [NewGRF] Also use aircraft property 12 for helicopters (#8347)
Change: Service at depot also resets breakdown chance (#8317)
Change: Use key names instead of characters in hotkey.cfg (#8291)
Change: Allow command cost-estimation while paused (#8222)
Change: Always apply inflation from 1920 to 2090, no matter the game start year (#7589)
Change: Use CMake for build system (#7270)
Change: [Linkgraph] Pause the game when linkgraph jobs lag (#7081)
Change: Place "Group by" above "Sort by" in station window for consistency (#7028)
Fix #8589: Prevent desyncs with vehicle motion counters and NewGRFs (#8591)
Fix #7670: Improve pathfinder performance when lost vehicles are blocked from moving (#8568)
Fix: Inform user if a custom font failed to load due to missing glyphs (#8559)
Fix: Don't allow wagon chains (without an engine) to exceed maximum train length (#8533)
Fix #7619: Super fast NewGRF aircraft could be unable to land (#8531)
Fix: Improve connection retries for the content server in cases of broken networking (#8530)
Fix #7972: Show invalid orders to stations that don't accept the vehicle (#8516)
Fix: Error when trying to clone a vehicle with invalid orders (#8515)
Fix #8050: Various off-by-one errors in how the end-year of the game was used (#8512)
Fix #8332: Aborting vehicle group drag & drop could cause crashes (#8511)
Fix #8168: Allow relocating HQ partially over an existing HQ (#8510)
Fix #8068: Allow selling tram track regardless of bank balance (#8509)
Fix #7604: Prevent houses from wandering away from roads (#8507)
Fix: Make the "password" button the same size as the other buttons in the Company window (#8500)
Fix #7611: Keep news about vehicle accidents around after the vehicle is cleaned up (#8497)
Fix: [MacOS] Full animation in fullscreen mode was reducing the height of the window (#8491)
Fix: [MacOS] Loading custom fonts (#8484)
Fix: Network client makes emergency saves twice if the server is disconnected (#8477)
Fix #8462: Stop towns from trying to build roads on water (#8471)
Fix: [NewGRF] GetCurveSpeedLimit should use the railtype from the current tile (#8466)
Fix #8437: Crash when using certain heliports with certain rotated airports (#8458)
Fix #8437: Planes would land at the wrong height if the top corner of the airport was lowered (#8458)
Fix #8297: Infrastructure counters for road tunnels, bridges & depots (#8454)
Fix #6468: Don't store the version of AIs that are started via console (#8430)
Fix: Don't lower tree density if spreading is not enabled (#8413)
Fix: Prevent savegame version conflicts with certain old patchpacks (#8411)
Fix: [NewGRF] Variable 0x44 was always HZB_TOWN_EDGE for road stops (#8400)
Fix #8313: Use correct capitalization for TTO / DOS music files in the baseset metadata (#8385)
Fix: [NewGRF] Action 7/9 conditions 0x0F to 0x12 failed, if 'param' was 0x88 (#8382)
Fix: Change the working-dir searchpath when using '-c' (#8367)
Fix: Useless warning with -snull and no BaseSounds available (#8361)
Fix: Crash trying to load TTO/TTD savegames. (#8356)
Fix: [Script] Don't echo script exceptions to console (#8331)
Fix: Slovak ownname was using the wrong form (#8326)
Fix #8311: [NewGRF] Industry probability at map generation was scaled differently when set via property or callback (#8312)
Fix: Only check houses for cargo when generating subsidies with towns (#8305)
Fix: Sprite preview in sprite aligner was too small with scaled UI (#8288)
Fix: Spell 'Viewport' consistently (#8260)
Fix #7772: Show vehicle destination on mouseover when vehicle stopped (#8236, #8543)
Fix #8232: Huge screenshot warning was shown incorrectly (#8224)
Fix #8153: Report incompatible cargo/order when autoreplace fails (#8169)
Fix: [Script] ScriptMarine::AreWaterTilesConnected did not work for aqueducts (#8074)
Fix #7645: Add cost of clearing the sloped tile to the price of a dock (#7947)
Fix #6452: Reset only editable and visible settings from GUI (#7890)
Fix: Original terrain generator did not keep a single gap of water at the borders (#7883)
Remove: In-game console command "content select all" (#8363)
Remove: [OSX] Support for OSX older than 10.7, including QuickTime music driver (#8078)
Feature: Toggle to enable/disable vsync (#8997)
Feature: Volume controls in the Game Options window, and better defaults (#8943)
Add: Hotkey to focus object and rail filters (#8908)
Add: Better plural support for Romanian (#8936)
Change: Improve layout and spacing of several windows at different GUI scales (#9041, #9042, #9044, #9050)
Change: [Win32] Use user UI language setting for initial language selection (#8974)
Change: Make effect volume scale more intuitively (#8945, #8950)
Change: Improve padding of Object & Rail station windows (#8929)
Fix #6322: [Script] Crash when script allocates too much memory, now kills script instead (#9047)
Fix #7513: [Script] Crash on garbage collection with misbehaving script (#9040)
Fix #9028: [OpenGL] Crash when changing max sprite zoom level (#9032)
Fix #8874: show a warning when a NewGRF scan is requested multiple times (#9022)
Fix: Desync when GS unlocks railtype with wagon unlock (#9021)
Fix #9015: [Win32] Crash on running "pwd" command in the console (#9016)
Fix #9008: Validate starting year given on the command line (-t) (#9014)
Fix #8878: [Network] Slow DNS queries could block the server and disconnect clients (#9013)
Fix: Improve validation of OpenGL video driver to avoid crashes (#9007)
Fix: Credits scrolled too slowly with larger font sizes (#8994)
Fix #8977: Crash when altering max sprite resolution (#8993)
Fix #8956: Industry disaster news messages showed the wrong location (#8992)
Fix: [Win32] Font glyphs of certain widths had broken rendering (#8990)
Fix #8930: [Win32] Duplicate text input issue for systems using IME (#8976)
Fix: [Network] Potential stale client entries in client list (#8959)
Fix: Graphical issues when dragging measurement tooltips (#8951)
Fix: [Fluidsynth] Use provided default soundfont if available (#8948, #8953)
Fix #8935: [macOS] Crash on save (#8944)
Fix #8922: Crash when selling shared vehicles with shared vehicle window open (#8926)
Fix: Compiling on armhf (Raspberry Pi) (#8924)

View File

@@ -379,6 +379,8 @@ jobs:
bundle_name: "groovy"
- container_image: "debian:buster"
bundle_name: "buster"
- container_image: "debian:bullseye"
bundle_name: "bullseye"
runs-on: ubuntu-20.04
container:

View File

@@ -1 +1 @@
1.11.0 20210401 0 bd80ec7cff2f2186b133ea4bee431cb1a2f1fc95 1 1 2021
1.11.1 20210418 0 0be22efffc3c14db08baf5e58c448b5d074f4427 1 1 2021

View File

@@ -1 +1 @@
2021-04-01 12:33 UTC
2021-04-18 21:11 UTC

View File

@@ -1 +1 @@
1.11.0
1.11.1

View File

@@ -7,7 +7,7 @@ endif()
project(${BINARY_NAME})
if(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
message(FATAL_ERROR "In-source builds not allowed. Please run \"cmake ..\" from the bin directory")
message(FATAL_ERROR "In-source builds not allowed. Please run \"cmake ..\" from the build directory. You may need to delete \"${CMAKE_SOURCE_DIR}/CMakeCache.txt\" first.")
endif()
# Debug mode by default.
@@ -220,6 +220,7 @@ if(MSVC)
target_sources(openttd PRIVATE "${CMAKE_SOURCE_DIR}/os/windows/openttd.manifest")
endif()
add_subdirectory(${CMAKE_SOURCE_DIR}/bin)
add_subdirectory(${CMAKE_SOURCE_DIR}/src)
add_subdirectory(${CMAKE_SOURCE_DIR}/media)
@@ -240,7 +241,7 @@ if(IPO_FOUND)
set_target_properties(openttd PROPERTIES INTERPROCEDURAL_OPTIMIZATION_MINSIZEREL True)
set_target_properties(openttd PROPERTIES INTERPROCEDURAL_OPTIMIZATION_RELWITHDEBINFO True)
endif()
set_target_properties(openttd PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/bin")
set_target_properties(openttd PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_BINARY_DIR}")
process_compile_flags()
include(LinkPackage)

2
bin/CMakeLists.txt Normal file
View File

@@ -0,0 +1,2 @@
add_subdirectory(ai)
add_subdirectory(game)

39
bin/ai/CMakeLists.txt Normal file
View File

@@ -0,0 +1,39 @@
set(AI_COMPAT_SOURCE_FILES
${CMAKE_CURRENT_SOURCE_DIR}/compat_0.7.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.0.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.1.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.2.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.3.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.4.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.5.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.6.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.7.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.8.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.9.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.10.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.11.nut
)
foreach(AI_COMPAT_SOURCE_FILE IN LISTS AI_COMPAT_SOURCE_FILES)
string(REPLACE "${CMAKE_SOURCE_DIR}/bin/" "" AI_COMPAT_SOURCE_FILE_NAME "${AI_COMPAT_SOURCE_FILE}")
string(CONCAT AI_COMPAT_BINARY_FILE "${CMAKE_BINARY_DIR}/" "${AI_COMPAT_SOURCE_FILE_NAME}")
add_custom_command(OUTPUT ${AI_COMPAT_BINARY_FILE}
COMMAND ${CMAKE_COMMAND} -E copy
${AI_COMPAT_SOURCE_FILE}
${AI_COMPAT_BINARY_FILE}
MAIN_DEPENDENCY ${AI_COMPAT_SOURCE_FILE}
COMMENT "Copying ${AI_COMPAT_SOURCE_FILE_NAME}"
)
list(APPEND AI_COMPAT_BINARY_FILES ${AI_COMPAT_BINARY_FILE})
endforeach()
# Create a new target which copies all compat files
add_custom_target(ai_compat_files
DEPENDS ${AI_COMPAT_BINARY_FILES}
)
add_dependencies(openttd
ai_compat_files
)

36
bin/game/CMakeLists.txt Normal file
View File

@@ -0,0 +1,36 @@
set(GS_COMPAT_SOURCE_FILES
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.2.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.3.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.4.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.5.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.6.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.7.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.8.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.9.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.10.nut
${CMAKE_CURRENT_SOURCE_DIR}/compat_1.11.nut
)
foreach(GS_COMPAT_SOURCE_FILE IN LISTS GS_COMPAT_SOURCE_FILES)
string(REPLACE "${CMAKE_SOURCE_DIR}/bin/" "" GS_COMPAT_SOURCE_FILE_NAME "${GS_COMPAT_SOURCE_FILE}")
string(CONCAT GS_COMPAT_BINARY_FILE "${CMAKE_BINARY_DIR}/" "${GS_COMPAT_SOURCE_FILE_NAME}")
add_custom_command(OUTPUT ${GS_COMPAT_BINARY_FILE}
COMMAND ${CMAKE_COMMAND} -E copy
${GS_COMPAT_SOURCE_FILE}
${GS_COMPAT_BINARY_FILE}
MAIN_DEPENDENCY ${GS_COMPAT_SOURCE_FILE}
COMMENT "Copying ${GS_COMPAT_SOURCE_FILE_NAME}"
)
list(APPEND GS_COMPAT_BINARY_FILES ${GS_COMPAT_BINARY_FILE})
endforeach()
# Create a new target which copies all compat files
add_custom_target(gs_compat_files
DEPENDS ${GS_COMPAT_BINARY_FILES}
)
add_dependencies(openttd
gs_compat_files
)

View File

@@ -1,3 +1,35 @@
1.11.1 (2021-04-18)
------------------------------------------------------------------------
Feature: Toggle to enable/disable vsync (#8997)
Feature: Volume controls in the Game Options window, and better defaults (#8943)
Add: Hotkey to focus object and rail filters (#8908)
Add: Better plural support for Romanian (#8936)
Change: Improve layout and spacing of several windows at different GUI scales (#9041, #9042, #9044, #9050)
Change: [Win32] Use user UI language setting for initial language selection (#8974)
Change: Make effect volume scale more intuitively (#8945, #8950)
Change: Improve padding of Object & Rail station windows (#8929)
Fix #6322: [Script] Crash when script allocates too much memory, now kills script instead (#9047)
Fix #7513: [Script] Crash on garbage collection with misbehaving script (#9040)
Fix #9028: [OpenGL] Crash when changing max sprite zoom level (#9032)
Fix #8874: show a warning when a NewGRF scan is requested multiple times (#9022)
Fix: Desync when GS unlocks railtype with wagon unlock (#9021)
Fix #9015: [Win32] Crash on running "pwd" command in the console (#9016)
Fix #9008: Validate starting year given on the command line (-t) (#9014)
Fix #8878: [Network] Slow DNS queries could block the server and disconnect clients (#9013)
Fix: Improve validation of OpenGL video driver to avoid crashes (#9007)
Fix: Credits scrolled too slowly with larger font sizes (#8994)
Fix #8977: Crash when altering max sprite resolution (#8993)
Fix #8956: Industry disaster news messages showed the wrong location (#8992)
Fix: [Win32] Font glyphs of certain widths had broken rendering (#8990)
Fix #8930: [Win32] Duplicate text input issue for systems using IME (#8976)
Fix: [Network] Potential stale client entries in client list (#8959)
Fix: Graphical issues when dragging measurement tooltips (#8951)
Fix: [Fluidsynth] Use provided default soundfont if available (#8948, #8953)
Fix #8935: [macOS] Crash on save (#8944)
Fix #8922: Crash when selling shared vehicles with shared vehicle window open (#8926)
Fix: Compiling on armhf (Raspberry Pi) (#8924)
1.11.0 (2021-04-01)
------------------------------------------------------------------------
Feature: Allow setting a custom terrain type to define highest peak (#8891)

View File

@@ -4,6 +4,7 @@
#
macro(compile_flags)
if(MSVC)
if(VCPKG_TARGET_TRIPLET MATCHES "-static" AND NOT VCPKG_TARGET_TRIPLET MATCHES "-md")
# Switch to MT (static) instead of MD (dynamic) binary
# For MSVC two generators are available
@@ -18,6 +19,7 @@ macro(compile_flags)
string(TOUPPER "CMAKE_CXX_FLAGS_${MSVC_CONFIG}" MSVC_FLAGS)
string(REPLACE "/MD" "/MT" ${MSVC_FLAGS} "${${MSVC_FLAGS}}")
endforeach()
endif()
# "If /Zc:rvalueCast is specified, the compiler follows section 5.4 of the
# C++11 standard". We need C++11 for the way we use threads.

View File

@@ -26,8 +26,8 @@ install(TARGETS openttd
install(DIRECTORY
${CMAKE_BINARY_DIR}/lang
${CMAKE_BINARY_DIR}/baseset
${CMAKE_SOURCE_DIR}/bin/ai
${CMAKE_SOURCE_DIR}/bin/game
${CMAKE_BINARY_DIR}/ai
${CMAKE_BINARY_DIR}/game
${CMAKE_SOURCE_DIR}/bin/scripts
DESTINATION ${DATA_DESTINATION_DIR}
COMPONENT language_files)

View File

@@ -211,3 +211,10 @@ Last updated: 2011-02-16
communication from an admin tool reach the programme. See section 1
'Starting a server' further up for the ports and protocols used by OpenTTD.
The ports can be configured in the config file.
- My advertising server warns a lot about getaddrinfo taking N seconds
This could be a transient issue with your (local) DNS server, but if the
problem persists there is likely a configuration issue in DNS resolving
on your computer. This seems to be a common configuration issue for
Docker instances, where the DNS resolving waits for a time out of usually
5 seconds.

View File

@@ -17,9 +17,9 @@ public:
return newarray;
}
#ifndef NO_GARBAGE_COLLECTOR
void Mark(SQCollectable **chain);
void EnqueueMarkObjectForChildren(SQGCMarkerQueue &queue) override;
#endif
void Finalize(){
void Finalize() override {
_values.resize(0);
}
bool Get(const SQInteger nidx,SQObjectPtr &val)
@@ -78,7 +78,11 @@ public:
ShrinkIfNeeded();
return true;
}
void Release()
void Release() override
{
this->_sharedstate->DelayFinalFree(this);
}
void FinalFree() override
{
sq_delete(this, SQArray);
}

View File

@@ -59,7 +59,7 @@ public:
}
void Finalize();
#ifndef NO_GARBAGE_COLLECTOR
void Mark(SQCollectable ** );
void EnqueueMarkObjectForChildren(SQGCMarkerQueue &queue);
#endif
SQInteger Next(const SQObjectPtr &refpos, SQObjectPtr &outkey, SQObjectPtr &outval);
SQInstance *CreateInstance();
@@ -126,31 +126,33 @@ public:
}
return false;
}
void Release() {
void Release() override {
_uiRef++;
try {
if (_hook) { _hook(_userpointer,0);}
} catch (...) {
_uiRef--;
if (_uiRef == 0) {
SQInteger size = _memsize;
this->~SQInstance();
SQ_FREE(this, size);
this->_sharedstate->DelayFinalFree(this);
}
throw;
}
_uiRef--;
if(_uiRef > 0) return;
this->_sharedstate->DelayFinalFree(this);
}
void FinalFree() override
{
SQInteger size = _memsize;
this->~SQInstance();
SQ_FREE(this, size);
}
void Finalize();
void Finalize() override;
#ifndef NO_GARBAGE_COLLECTOR
void Mark(SQCollectable ** );
void EnqueueMarkObjectForChildren(SQGCMarkerQueue &queue) override;
#endif
bool InstanceOf(SQClass *trg);
bool GetMetaMethod(SQVM *v,SQMetaMethod mm,SQObjectPtr &res);
bool GetMetaMethod(SQVM *v,SQMetaMethod mm,SQObjectPtr &res) override;
SQClass *_class;
SQUserPointer _userpointer;

View File

@@ -32,7 +32,7 @@ public:
bool Save(SQVM *v,SQUserPointer up,SQWRITEFUNC write);
static bool Load(SQVM *v,SQUserPointer up,SQREADFUNC read,SQObjectPtr &ret);
#ifndef NO_GARBAGE_COLLECTOR
void Mark(SQCollectable **chain);
void EnqueueMarkObjectForChildren(SQGCMarkerQueue &queue);
void Finalize(){_outervalues.resize(0); }
#endif
SQObjectPtr _env;
@@ -66,7 +66,7 @@ public:
bool Yield(SQVM *v);
bool Resume(SQVM *v,SQInteger target);
#ifndef NO_GARBAGE_COLLECTOR
void Mark(SQCollectable **chain);
void EnqueueMarkObjectForChildren(SQGCMarkerQueue &queue);
void Finalize(){_stack.resize(0);_closure=_null_;}
#endif
SQObjectPtr _closure;
@@ -106,7 +106,7 @@ public:
sq_delete(this,SQNativeClosure);
}
#ifndef NO_GARBAGE_COLLECTOR
void Mark(SQCollectable **chain);
void EnqueueMarkObjectForChildren(SQGCMarkerQueue &queue);
void Finalize(){_outervalues.resize(0);}
#endif
SQInteger _nparamscheck;

View File

@@ -486,104 +486,81 @@ bool SQFunctionProto::Load(SQVM *v,SQUserPointer up,SQREADFUNC read,SQObjectPtr
#ifndef NO_GARBAGE_COLLECTOR
#define START_MARK() if(!(_uiRef&MARK_FLAG)){ \
_uiRef|=MARK_FLAG;
#define END_MARK() RemoveFromChain(&_sharedstate->_gc_chain, this); \
AddToChain(chain, this); }
void SQVM::Mark(SQCollectable **chain)
void SQVM::EnqueueMarkObjectForChildren(SQGCMarkerQueue &queue)
{
START_MARK()
SQSharedState::MarkObject(_lasterror,chain);
SQSharedState::MarkObject(_errorhandler,chain);
SQSharedState::MarkObject(_debughook,chain);
SQSharedState::MarkObject(_roottable, chain);
SQSharedState::MarkObject(temp_reg, chain);
for(SQUnsignedInteger i = 0; i < _stack.size(); i++) SQSharedState::MarkObject(_stack[i], chain);
for(SQUnsignedInteger j = 0; j < _vargsstack.size(); j++) SQSharedState::MarkObject(_vargsstack[j], chain);
for(SQInteger k = 0; k < _callsstacksize; k++) SQSharedState::MarkObject(_callsstack[k]._closure, chain);
END_MARK()
SQSharedState::EnqueueMarkObject(_lasterror,queue);
SQSharedState::EnqueueMarkObject(_errorhandler,queue);
SQSharedState::EnqueueMarkObject(_debughook,queue);
SQSharedState::EnqueueMarkObject(_roottable, queue);
SQSharedState::EnqueueMarkObject(temp_reg, queue);
for(SQUnsignedInteger i = 0; i < _stack.size(); i++) SQSharedState::EnqueueMarkObject(_stack[i], queue);
for(SQUnsignedInteger j = 0; j < _vargsstack.size(); j++) SQSharedState::EnqueueMarkObject(_vargsstack[j], queue);
for(SQInteger k = 0; k < _callsstacksize; k++) SQSharedState::EnqueueMarkObject(_callsstack[k]._closure, queue);
}
void SQArray::Mark(SQCollectable **chain)
void SQArray::EnqueueMarkObjectForChildren(SQGCMarkerQueue &queue)
{
START_MARK()
SQInteger len = _values.size();
for(SQInteger i = 0;i < len; i++) SQSharedState::MarkObject(_values[i], chain);
END_MARK()
for(SQInteger i = 0;i < len; i++) SQSharedState::EnqueueMarkObject(_values[i], queue);
}
void SQTable::Mark(SQCollectable **chain)
void SQTable::EnqueueMarkObjectForChildren(SQGCMarkerQueue &queue)
{
START_MARK()
if(_delegate) _delegate->Mark(chain);
if(_delegate) queue.Enqueue(_delegate);
SQInteger len = _numofnodes;
for(SQInteger i = 0; i < len; i++){
SQSharedState::MarkObject(_nodes[i].key, chain);
SQSharedState::MarkObject(_nodes[i].val, chain);
SQSharedState::EnqueueMarkObject(_nodes[i].key, queue);
SQSharedState::EnqueueMarkObject(_nodes[i].val, queue);
}
END_MARK()
}
void SQClass::Mark(SQCollectable **chain)
void SQClass::EnqueueMarkObjectForChildren(SQGCMarkerQueue &queue)
{
START_MARK()
_members->Mark(chain);
if(_base) _base->Mark(chain);
SQSharedState::MarkObject(_attributes, chain);
queue.Enqueue(_members);
if(_base) queue.Enqueue(_base);
SQSharedState::EnqueueMarkObject(_attributes, queue);
for(SQUnsignedInteger i =0; i< _defaultvalues.size(); i++) {
SQSharedState::MarkObject(_defaultvalues[i].val, chain);
SQSharedState::MarkObject(_defaultvalues[i].attrs, chain);
SQSharedState::EnqueueMarkObject(_defaultvalues[i].val, queue);
SQSharedState::EnqueueMarkObject(_defaultvalues[i].attrs, queue);
}
for(SQUnsignedInteger j =0; j< _methods.size(); j++) {
SQSharedState::MarkObject(_methods[j].val, chain);
SQSharedState::MarkObject(_methods[j].attrs, chain);
SQSharedState::EnqueueMarkObject(_methods[j].val, queue);
SQSharedState::EnqueueMarkObject(_methods[j].attrs, queue);
}
for(SQUnsignedInteger k =0; k< _metamethods.size(); k++) {
SQSharedState::MarkObject(_metamethods[k], chain);
SQSharedState::EnqueueMarkObject(_metamethods[k], queue);
}
END_MARK()
}
void SQInstance::Mark(SQCollectable **chain)
void SQInstance::EnqueueMarkObjectForChildren(SQGCMarkerQueue &queue)
{
START_MARK()
_class->Mark(chain);
queue.Enqueue(_class);
SQUnsignedInteger nvalues = _class->_defaultvalues.size();
for(SQUnsignedInteger i =0; i< nvalues; i++) {
SQSharedState::MarkObject(_values[i], chain);
SQSharedState::EnqueueMarkObject(_values[i], queue);
}
END_MARK()
}
void SQGenerator::Mark(SQCollectable **chain)
void SQGenerator::EnqueueMarkObjectForChildren(SQGCMarkerQueue &queue)
{
START_MARK()
for(SQUnsignedInteger i = 0; i < _stack.size(); i++) SQSharedState::MarkObject(_stack[i], chain);
for(SQUnsignedInteger j = 0; j < _vargsstack.size(); j++) SQSharedState::MarkObject(_vargsstack[j], chain);
SQSharedState::MarkObject(_closure, chain);
END_MARK()
for(SQUnsignedInteger i = 0; i < _stack.size(); i++) SQSharedState::EnqueueMarkObject(_stack[i], queue);
for(SQUnsignedInteger j = 0; j < _vargsstack.size(); j++) SQSharedState::EnqueueMarkObject(_vargsstack[j], queue);
SQSharedState::EnqueueMarkObject(_closure, queue);
}
void SQClosure::Mark(SQCollectable **chain)
void SQClosure::EnqueueMarkObjectForChildren(SQGCMarkerQueue &queue)
{
START_MARK()
for(SQUnsignedInteger i = 0; i < _outervalues.size(); i++) SQSharedState::MarkObject(_outervalues[i], chain);
for(SQUnsignedInteger i = 0; i < _defaultparams.size(); i++) SQSharedState::MarkObject(_defaultparams[i], chain);
END_MARK()
for(SQUnsignedInteger i = 0; i < _outervalues.size(); i++) SQSharedState::EnqueueMarkObject(_outervalues[i], queue);
for(SQUnsignedInteger i = 0; i < _defaultparams.size(); i++) SQSharedState::EnqueueMarkObject(_defaultparams[i], queue);
}
void SQNativeClosure::Mark(SQCollectable **chain)
void SQNativeClosure::EnqueueMarkObjectForChildren(SQGCMarkerQueue &queue)
{
START_MARK()
for(SQUnsignedInteger i = 0; i < _outervalues.size(); i++) SQSharedState::MarkObject(_outervalues[i], chain);
END_MARK()
for(SQUnsignedInteger i = 0; i < _outervalues.size(); i++) SQSharedState::EnqueueMarkObject(_outervalues[i], queue);
}
void SQUserData::Mark(SQCollectable **chain){
START_MARK()
if(_delegate) _delegate->Mark(chain);
END_MARK()
void SQUserData::EnqueueMarkObjectForChildren(SQGCMarkerQueue &queue){
if(_delegate) queue.Enqueue(_delegate);
}
void SQCollectable::UnMark() { _uiRef&=~MARK_FLAG; }

View File

@@ -2,6 +2,7 @@
#ifndef _SQOBJECT_H_
#define _SQOBJECT_H_
#include <vector>
#include "squtils.h"
#define SQ_CLOSURESTREAM_HEAD (('S'<<24)|('Q'<<16)|('I'<<8)|('R'))
@@ -344,11 +345,54 @@ struct SQCollectable : public SQRefCounted {
SQCollectable *_prev;
SQSharedState *_sharedstate;
virtual void Release()=0;
virtual void Mark(SQCollectable **chain)=0;
virtual void EnqueueMarkObjectForChildren(class SQGCMarkerQueue &queue)=0;
void UnMark();
virtual void Finalize()=0;
static void AddToChain(SQCollectable **chain,SQCollectable *c);
static void RemoveFromChain(SQCollectable **chain,SQCollectable *c);
/**
* Helper to perform the final memory freeing of this instance. Since the destructor might
* release more objects, this can cause a very deep recursion. As such, the calls to this
* are to be done via _sharedstate->DelayFinalFree which ensures the calls to this method
* are done in an iterative instead of recursive approach.
*/
virtual void FinalFree() {}
};
/**
* Helper container for state to change the garbage collection from a recursive to an iterative approach.
* The iterative approach provides effectively a depth first search approach.
*/
class SQGCMarkerQueue {
std::vector<SQCollectable*> stack; ///< The elements to still process, with the most recent elements at the back.
public:
/** Whether there are any elements left to process. */
bool IsEmpty() { return this->stack.empty(); }
/**
* Remove the most recently added element from the queue.
* Removal when the queue is empty results in undefined behaviour.
*/
SQCollectable *Pop()
{
SQCollectable *collectable = this->stack.back();
this->stack.pop_back();
return collectable;
}
/**
* Add a collectable to the queue, but only when it has not been marked yet.
* When adding it to the queue, the collectable will be marked, so subsequent calls
* will not add it again.
*/
void Enqueue(SQCollectable *collectable)
{
if ((collectable->_uiRef & MARK_FLAG) == 0) {
collectable->_uiRef |= MARK_FLAG;
this->stack.push_back(collectable);
}
}
};

View File

@@ -99,6 +99,7 @@ SQSharedState::SQSharedState()
_notifyallexceptions = false;
_scratchpad=NULL;
_scratchpadsize=0;
_collectable_free_processing = false;
#ifndef NO_GARBAGE_COLLECTOR
_gc_chain=NULL;
#endif
@@ -226,20 +227,48 @@ SQInteger SQSharedState::GetMetaMethodIdxByName(const SQObjectPtr &name)
return -1;
}
/**
* Helper function that is to be used instead of calling FinalFree directly on the instance,
* so the frees can happen iteratively. This as in the FinalFree the references to any other
* objects are released, which can cause those object to be freed yielding a potentially
* very deep stack in case of for example a link list.
*
* This is done internally by a vector onto which the to be freed instances are pushed. When
* this is called when not already processing, this method will actually call the FinalFree
* function which might cause more elements to end up in the queue which this method then
* picks up continueing until it has processed all instances in that queue.
* @param collectable The collectable to (eventually) free.
*/
void SQSharedState::DelayFinalFree(SQCollectable *collectable)
{
this->_collectable_free_queue.push_back(collectable);
if (!this->_collectable_free_processing) {
this->_collectable_free_processing = true;
while (!this->_collectable_free_queue.empty()) {
SQCollectable *collectable = this->_collectable_free_queue.back();
this->_collectable_free_queue.pop_back();
collectable->FinalFree();
}
this->_collectable_free_processing = false;
}
}
#ifndef NO_GARBAGE_COLLECTOR
void SQSharedState::MarkObject(SQObjectPtr &o,SQCollectable **chain)
void SQSharedState::EnqueueMarkObject(SQObjectPtr &o,SQGCMarkerQueue &queue)
{
switch(type(o)){
case OT_TABLE:_table(o)->Mark(chain);break;
case OT_ARRAY:_array(o)->Mark(chain);break;
case OT_USERDATA:_userdata(o)->Mark(chain);break;
case OT_CLOSURE:_closure(o)->Mark(chain);break;
case OT_NATIVECLOSURE:_nativeclosure(o)->Mark(chain);break;
case OT_GENERATOR:_generator(o)->Mark(chain);break;
case OT_THREAD:_thread(o)->Mark(chain);break;
case OT_CLASS:_class(o)->Mark(chain);break;
case OT_INSTANCE:_instance(o)->Mark(chain);break;
case OT_TABLE:queue.Enqueue(_table(o));break;
case OT_ARRAY:queue.Enqueue(_array(o));break;
case OT_USERDATA:queue.Enqueue(_userdata(o));break;
case OT_CLOSURE:queue.Enqueue(_closure(o));break;
case OT_NATIVECLOSURE:queue.Enqueue(_nativeclosure(o));break;
case OT_GENERATOR:queue.Enqueue(_generator(o));break;
case OT_THREAD:queue.Enqueue(_thread(o));break;
case OT_CLASS:queue.Enqueue(_class(o));break;
case OT_INSTANCE:queue.Enqueue(_instance(o));break;
default: break; //shutup compiler
}
}
@@ -248,27 +277,36 @@ void SQSharedState::MarkObject(SQObjectPtr &o,SQCollectable **chain)
SQInteger SQSharedState::CollectGarbage(SQVM *vm)
{
SQInteger n=0;
SQCollectable *tchain=NULL;
SQVM *vms = _thread(_root_vm);
vms->Mark(&tchain);
#ifndef NDEBUG
SQGCMarkerQueue queue;
queue.Enqueue(vms);
#ifdef WITH_ASSERT
SQInteger x = _table(_thread(_root_vm)->_roottable)->CountUsed();
#endif
_refs_table.Mark(&tchain);
MarkObject(_registry,&tchain);
MarkObject(_consts,&tchain);
MarkObject(_metamethodsmap,&tchain);
MarkObject(_table_default_delegate,&tchain);
MarkObject(_array_default_delegate,&tchain);
MarkObject(_string_default_delegate,&tchain);
MarkObject(_number_default_delegate,&tchain);
MarkObject(_generator_default_delegate,&tchain);
MarkObject(_thread_default_delegate,&tchain);
MarkObject(_closure_default_delegate,&tchain);
MarkObject(_class_default_delegate,&tchain);
MarkObject(_instance_default_delegate,&tchain);
MarkObject(_weakref_default_delegate,&tchain);
_refs_table.EnqueueMarkObject(queue);
EnqueueMarkObject(_registry,queue);
EnqueueMarkObject(_consts,queue);
EnqueueMarkObject(_metamethodsmap,queue);
EnqueueMarkObject(_table_default_delegate,queue);
EnqueueMarkObject(_array_default_delegate,queue);
EnqueueMarkObject(_string_default_delegate,queue);
EnqueueMarkObject(_number_default_delegate,queue);
EnqueueMarkObject(_generator_default_delegate,queue);
EnqueueMarkObject(_thread_default_delegate,queue);
EnqueueMarkObject(_closure_default_delegate,queue);
EnqueueMarkObject(_class_default_delegate,queue);
EnqueueMarkObject(_instance_default_delegate,queue);
EnqueueMarkObject(_weakref_default_delegate,queue);
SQCollectable *tchain=NULL;
while (!queue.IsEmpty()) {
SQCollectable *q = queue.Pop();
q->EnqueueMarkObjectForChildren(queue);
SQCollectable::RemoveFromChain(&_gc_chain, q);
SQCollectable::AddToChain(&tchain, q);
}
SQCollectable *t = _gc_chain;
SQCollectable *nx = NULL;
@@ -291,7 +329,7 @@ SQInteger SQSharedState::CollectGarbage(SQVM *vm)
t = t->_next;
}
_gc_chain = tchain;
#ifndef NDEBUG
#ifdef WITH_ASSERT
SQInteger z = _table(_thread(_root_vm)->_roottable)->CountUsed();
assert(z == x);
#endif
@@ -357,12 +395,12 @@ RefTable::~RefTable()
}
#ifndef NO_GARBAGE_COLLECTOR
void RefTable::Mark(SQCollectable **chain)
void RefTable::EnqueueMarkObject(SQGCMarkerQueue &queue)
{
RefNode *nodes = (RefNode *)_nodes;
for(SQUnsignedInteger n = 0; n < _numofslots; n++) {
if(type(nodes->obj) != OT_NULL) {
SQSharedState::MarkObject(nodes->obj,chain);
SQSharedState::EnqueueMarkObject(nodes->obj,queue);
}
nodes++;
}

View File

@@ -34,7 +34,7 @@ struct RefTable {
void AddRef(SQObject &obj);
SQBool Release(SQObject &obj);
#ifndef NO_GARBAGE_COLLECTOR
void Mark(SQCollectable **chain);
void EnqueueMarkObject(SQGCMarkerQueue &queue);
#endif
void Finalize();
private:
@@ -61,9 +61,10 @@ struct SQSharedState
public:
SQChar* GetScratchPad(SQInteger size);
SQInteger GetMetaMethodIdxByName(const SQObjectPtr &name);
void DelayFinalFree(SQCollectable *collectable);
#ifndef NO_GARBAGE_COLLECTOR
SQInteger CollectGarbage(SQVM *vm);
static void MarkObject(SQObjectPtr &o,SQCollectable **chain);
static void EnqueueMarkObject(SQObjectPtr &o,SQGCMarkerQueue &queue);
#endif
SQObjectPtrVec *_metamethods;
SQObjectPtr _metamethodsmap;
@@ -74,6 +75,10 @@ public:
SQObjectPtr _registry;
SQObjectPtr _consts;
SQObjectPtr _constructoridx;
/** Queue to make freeing of collectables iterative. */
std::vector<SQCollectable *> _collectable_free_queue;
/** Whether someone is already processing the _collectable_free_queue. */
bool _collectable_free_processing;
#ifndef NO_GARBAGE_COLLECTOR
SQCollectable *_gc_chain;
#endif

View File

@@ -50,7 +50,7 @@ public:
newtable->_delegate = NULL;
return newtable;
}
void Finalize();
void Finalize() override;
SQTable *Clone();
~SQTable()
{
@@ -60,7 +60,7 @@ public:
SQ_FREE(_nodes, _numofnodes * sizeof(_HashNode));
}
#ifndef NO_GARBAGE_COLLECTOR
void Mark(SQCollectable **chain);
void EnqueueMarkObjectForChildren(SQGCMarkerQueue &queue) override;
#endif
inline _HashNode *_Get(const SQObjectPtr &key,SQHash hash)
{
@@ -81,7 +81,11 @@ public:
SQInteger CountUsed(){ return _usednodes;}
void Clear();
void Release()
void Release() override
{
this->_sharedstate->DelayFinalFree(this);
}
void FinalFree() override
{
sq_delete(this, SQTable);
}

View File

@@ -18,7 +18,7 @@ struct SQUserData : SQDelegable
return ud;
}
#ifndef NO_GARBAGE_COLLECTOR
void Mark(SQCollectable **chain);
void EnqueueMarkObjectForChildren(SQGCMarkerQueue &queue);
void Finalize(){SetDelegate(NULL);}
#endif
void Release() {

View File

@@ -1471,7 +1471,7 @@ bool SQVM::DeleteSlot(const SQObjectPtr &self,const SQObjectPtr &key,SQObjectPtr
bool SQVM::Call(SQObjectPtr &closure,SQInteger nparams,SQInteger stackbase,SQObjectPtr &outres,SQBool raiseerror,SQBool can_suspend)
{
#ifndef NDEBUG
#ifdef WITH_ASSERT
SQInteger prevstackbase = _stackbase;
#endif
switch(type(closure)) {
@@ -1504,7 +1504,7 @@ bool SQVM::Call(SQObjectPtr &closure,SQInteger nparams,SQInteger stackbase,SQObj
default:
return false;
}
#ifndef NDEBUG
#ifdef WITH_ASSERT
if(!_suspended) {
assert(_stackbase == prevstackbase);
}

View File

@@ -113,7 +113,7 @@ public:
#endif
#ifndef NO_GARBAGE_COLLECTOR
void Mark(SQCollectable **chain);
void EnqueueMarkObjectForChildren(SQGCMarkerQueue &queue);
#endif
void Finalize();
void GrowCallStack() {

View File

@@ -704,16 +704,16 @@ static const NWidgetPart _nested_ai_config_widgets[] = {
NWidget(WWT_MATRIX, COLOUR_MAUVE, WID_AIC_GAMELIST), SetMinimalSize(288, 14), SetFill(1, 0), SetMatrixDataTip(1, 1, STR_AI_CONFIG_GAMELIST_TOOLTIP),
EndContainer(),
NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPIP(7, 0, 7),
NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, WID_AIC_CHANGE), SetFill(1, 0), SetMinimalSize(93, 12), SetDataTip(STR_AI_CONFIG_CHANGE, STR_AI_CONFIG_CHANGE_TOOLTIP),
NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, WID_AIC_CONFIGURE), SetFill(1, 0), SetMinimalSize(93, 12), SetDataTip(STR_AI_CONFIG_CONFIGURE, STR_AI_CONFIG_CONFIGURE_TOOLTIP),
NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, WID_AIC_CLOSE), SetFill(1, 0), SetMinimalSize(93, 12), SetDataTip(STR_AI_SETTINGS_CLOSE, STR_NULL),
NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, WID_AIC_CHANGE), SetFill(1, 0), SetMinimalSize(93, 0), SetDataTip(STR_AI_CONFIG_CHANGE, STR_AI_CONFIG_CHANGE_TOOLTIP),
NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, WID_AIC_CONFIGURE), SetFill(1, 0), SetMinimalSize(93, 0), SetDataTip(STR_AI_CONFIG_CONFIGURE, STR_AI_CONFIG_CONFIGURE_TOOLTIP),
NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, WID_AIC_CLOSE), SetFill(1, 0), SetMinimalSize(93, 0), SetDataTip(STR_AI_SETTINGS_CLOSE, STR_NULL),
EndContainer(),
NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPIP(7, 0, 7),
NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, WID_AIC_TEXTFILE + TFT_README), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_TEXTFILE_VIEW_README, STR_NULL),
NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, WID_AIC_TEXTFILE + TFT_CHANGELOG), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_TEXTFILE_VIEW_CHANGELOG, STR_NULL),
NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, WID_AIC_TEXTFILE + TFT_LICENSE), SetFill(1, 0), SetResize(1, 0), SetDataTip(STR_TEXTFILE_VIEW_LICENCE, STR_NULL),
EndContainer(),
NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, WID_AIC_CONTENT_DOWNLOAD), SetFill(1, 0), SetMinimalSize(279, 12), SetPadding(0, 7, 9, 7), SetDataTip(STR_INTRO_ONLINE_CONTENT, STR_INTRO_TOOLTIP_ONLINE_CONTENT),
NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, WID_AIC_CONTENT_DOWNLOAD), SetFill(1, 0), SetMinimalSize(279, 0), SetPadding(0, 7, 9, 7), SetDataTip(STR_INTRO_ONLINE_CONTENT, STR_INTRO_TOOLTIP_ONLINE_CONTENT),
EndContainer(),
};

View File

@@ -1351,7 +1351,9 @@ DEF_CONSOLE_CMD(ConRescanNewGRF)
return true;
}
RequestNewGRFScan();
if (!RequestNewGRFScan()) {
IConsoleWarning("NewGRF scanning is already running. Please wait until completed to run again.");
}
return true;
}

View File

@@ -82,7 +82,7 @@ struct Pool : PoolBase {
/* Ensure Tmax_size is within the bounds of Tindex. */
static_assert((uint64)(Tmax_size - 1) >> 8 * sizeof(Tindex) == 0);
static const size_t MAX_SIZE = Tmax_size; ///< Make template parameter accessible from outside
static constexpr size_t MAX_SIZE = Tmax_size; ///< Make template parameter accessible from outside
const char * const name; ///< Name of this pool

View File

@@ -456,7 +456,7 @@ static bool DisasterTick_Aircraft(DisasterVehicle *v, uint16 image_override, boo
DestructIndustry(i);
SetDParam(0, i->town->index);
AddTileNewsItem(news_message, NT_ACCIDENT, v->dest_tile);
AddIndustryNewsItem(news_message, NT_ACCIDENT, i->index);
if (_settings_client.sound.disaster) SndPlayTileFx(SND_12_EXPLOSION, i->location.tile);
}
} else if (v->current_order.GetDestination() == 0) {

View File

@@ -722,11 +722,9 @@ static void EnableEngineForCompany(EngineID eid, CompanyID company)
SetBit(e->company_avail, company);
if (e->type == VEH_TRAIN) {
assert(e->u.rail.railtype < RAILTYPE_END);
c->avail_railtypes = AddDateIntroducedRailTypes(c->avail_railtypes | GetRailTypeInfo(e->u.rail.railtype)->introduces_railtypes, _date);
c->avail_railtypes = GetCompanyRailtypes(c->index);
} else if (e->type == VEH_ROAD) {
assert(e->u.road.roadtype < ROADTYPE_END);
c->avail_roadtypes = AddDateIntroducedRoadTypes(c->avail_roadtypes | GetRoadTypeInfo(e->u.road.roadtype)->introduces_roadtypes, _date);
c->avail_roadtypes = GetCompanyRoadTypes(c->index);
}
if (company == _local_company) {

View File

@@ -46,7 +46,6 @@ static const NWidgetPart _nested_group_widgets[] = {
NWidget(NWID_HORIZONTAL),
/* left part */
NWidget(NWID_VERTICAL),
NWidget(WWT_PANEL, COLOUR_GREY), SetMinimalTextLines(1, WD_DROPDOWNTEXT_TOP + WD_DROPDOWNTEXT_BOTTOM), SetFill(1, 0), EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, WID_GL_ALL_VEHICLES), SetFill(1, 0), EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, WID_GL_DEFAULT_VEHICLES), SetFill(1, 0), EndContainer(),
NWidget(NWID_HORIZONTAL),
@@ -54,18 +53,18 @@ static const NWidgetPart _nested_group_widgets[] = {
SetFill(1, 0), SetResize(0, 1), SetScrollbar(WID_GL_LIST_GROUP_SCROLLBAR),
NWidget(NWID_VSCROLLBAR, COLOUR_GREY, WID_GL_LIST_GROUP_SCROLLBAR),
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, WID_GL_INFO), SetFill(1, 0), EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY, WID_GL_INFO), SetFill(1, 1), SetMinimalTextLines(3, WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM), EndContainer(),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_GL_CREATE_GROUP), SetFill(0, 1),
NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_GL_CREATE_GROUP),
SetDataTip(SPR_GROUP_CREATE_TRAIN, STR_GROUP_CREATE_TOOLTIP),
NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_GL_DELETE_GROUP), SetFill(0, 1),
NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_GL_DELETE_GROUP),
SetDataTip(SPR_GROUP_DELETE_TRAIN, STR_GROUP_DELETE_TOOLTIP),
NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_GL_RENAME_GROUP), SetFill(0, 1),
NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_GL_RENAME_GROUP),
SetDataTip(SPR_GROUP_RENAME_TRAIN, STR_GROUP_RENAME_TOOLTIP),
NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_GL_LIVERY_GROUP), SetFill(0, 1),
NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_GL_LIVERY_GROUP),
SetDataTip(SPR_GROUP_LIVERY_TRAIN, STR_GROUP_LIVERY_TOOLTIP),
NWidget(WWT_PANEL, COLOUR_GREY), SetFill(1, 1), EndContainer(),
NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_GL_REPLACE_PROTECTION), SetFill(0, 1),
NWidget(WWT_PANEL, COLOUR_GREY), SetFill(1, 0), EndContainer(),
NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_GL_REPLACE_PROTECTION),
SetDataTip(SPR_GROUP_REPLACE_OFF_TRAIN, STR_GROUP_REPLACE_PROTECTION_TOOLTIP),
EndContainer(),
EndContainer(),
@@ -87,14 +86,14 @@ static const NWidgetPart _nested_group_widgets[] = {
EndContainer(),
NWidget(WWT_PANEL, COLOUR_GREY), SetMinimalSize(1, 0), SetFill(1, 1), SetResize(1, 0), EndContainer(),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_GL_AVAILABLE_VEHICLES), SetMinimalSize(106, 12), SetFill(0, 1),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_GL_AVAILABLE_VEHICLES), SetMinimalSize(106, 12),
SetDataTip(STR_BLACK_STRING, STR_VEHICLE_LIST_AVAILABLE_ENGINES_TOOLTIP),
NWidget(WWT_PANEL, COLOUR_GREY), SetMinimalSize(0, 12), SetFill(1, 1), SetResize(1, 0), EndContainer(),
NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GL_MANAGE_VEHICLES_DROPDOWN), SetMinimalSize(118, 12), SetFill(0, 1),
NWidget(WWT_PANEL, COLOUR_GREY), SetMinimalSize(0, 12), SetFill(1, 0), SetResize(1, 0), EndContainer(),
NWidget(WWT_DROPDOWN, COLOUR_GREY, WID_GL_MANAGE_VEHICLES_DROPDOWN), SetMinimalSize(118, 12),
SetDataTip(STR_VEHICLE_LIST_MANAGE_LIST, STR_VEHICLE_LIST_MANAGE_LIST_TOOLTIP),
NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_GL_STOP_ALL), SetMinimalSize(12, 12), SetFill(0, 1),
NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_GL_STOP_ALL), SetMinimalSize(12, 12),
SetDataTip(SPR_FLAG_VEH_STOPPED, STR_VEHICLE_LIST_MASS_STOP_LIST_TOOLTIP),
NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_GL_START_ALL), SetMinimalSize(12, 12), SetFill(0, 1),
NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_GL_START_ALL), SetMinimalSize(12, 12),
SetDataTip(SPR_FLAG_VEH_RUNNING, STR_VEHICLE_LIST_MASS_START_LIST_TOOLTIP),
NWidget(WWT_RESIZEBOX, COLOUR_GREY),
EndContainer(),
@@ -229,7 +228,7 @@ private:
this->column_size[VGC_NUMBER] = GetStringBoundingBox(STR_GROUP_COUNT_WITH_SUBGROUP);
this->tiny_step_height = std::max(this->tiny_step_height, this->column_size[VGC_NUMBER].height);
this->tiny_step_height += WD_MATRIX_TOP;
this->tiny_step_height += WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM;
return WD_FRAMERECT_LEFT + 8 +
this->column_size[VGC_FOLD].width + 2 +
@@ -255,7 +254,7 @@ private:
{
/* Highlight the group if a vehicle is dragged over it */
if (g_id == this->group_over) {
GfxFillRect(left + WD_FRAMERECT_LEFT, y + WD_FRAMERECT_TOP, right - WD_FRAMERECT_RIGHT, y + this->tiny_step_height - WD_FRAMERECT_BOTTOM - WD_MATRIX_TOP, _colour_gradient[COLOUR_GREY][7]);
GfxFillRect(left + WD_FRAMERECT_LEFT, y + WD_FRAMERECT_TOP + 1, right - WD_FRAMERECT_RIGHT, y + this->tiny_step_height - WD_FRAMERECT_BOTTOM - 1, _colour_gradient[COLOUR_GREY][7]);
}
if (g_id == NEW_GROUP) return;
@@ -386,7 +385,7 @@ public:
resize->height = this->tiny_step_height;
/* Minimum height is the height of the list widget minus all and default vehicles... */
size->height = 4 * GetVehicleListHeight(this->vli.vtype, this->tiny_step_height) - 2 * this->tiny_step_height;
size->height = 4 * GetVehicleListHeight(this->vli.vtype, this->tiny_step_height);
/* ... minus the buttons at the bottom ... */
uint max_icon_height = GetSpriteSize(this->GetWidget<NWidgetCore>(WID_GL_CREATE_GROUP)->widget_data).height;
@@ -429,11 +428,6 @@ public:
*size = maxdim(*size, d);
break;
}
case WID_GL_INFO: {
size->height = (FONT_HEIGHT_NORMAL * 3) + WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM;
break;
}
}
}
@@ -555,11 +549,11 @@ public:
{
switch (widget) {
case WID_GL_ALL_VEHICLES:
DrawGroupInfo(r.top + WD_FRAMERECT_TOP, r.left, r.right, ALL_GROUP);
DrawGroupInfo(r.top, r.left, r.right, ALL_GROUP);
break;
case WID_GL_DEFAULT_VEHICLES:
DrawGroupInfo(r.top + WD_FRAMERECT_TOP, r.left, r.right, DEFAULT_GROUP);
DrawGroupInfo(r.top, r.left, r.right, DEFAULT_GROUP);
break;
case WID_GL_INFO: {
@@ -600,7 +594,7 @@ public:
}
case WID_GL_LIST_GROUP: {
int y1 = r.top + WD_FRAMERECT_TOP;
int y1 = r.top;
int max = std::min<size_t>(this->group_sb->GetPosition() + this->group_sb->GetCapacity(), this->groups.size());
for (int i = this->group_sb->GetPosition(); i < max; ++i) {
const Group *g = this->groups[i];
@@ -892,8 +886,12 @@ public:
/* We do not support VehicleClicked() here since the contextual action may only make sense for individual vehicles */
if (vindex == v->index) {
if (vehgroup.NumVehicles() == 1) {
ShowVehicleViewWindow(v);
} else {
ShowVehicleListWindow(v);
}
}
break;
}

View File

@@ -1400,7 +1400,7 @@ static void CalculateSnowLine()
static uint8 CalculateDesertLine()
{
/* CalculateCoverageLine() runs from top to bottom, so we need to invert the coverage. */
return _settings_game.game_creation.snow_line_height = CalculateCoverageLine(100 - _settings_game.game_creation.desert_coverage, 4);
return CalculateCoverageLine(100 - _settings_game.game_creation.desert_coverage, 4);
}
void GenerateLandscape(byte mode)

View File

@@ -990,6 +990,7 @@ STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Kies die
STR_GAME_OPTIONS_RESOLUTION_OTHER :ander
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK} Koppelvlak groote
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK} Kies die koppelvlak element groote om te gebruik

View File

@@ -965,6 +965,7 @@ STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}تسري
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}حدد هذا المربع للسماح لـ OpenTTD بمحاولة استخدام تسريع الأجهزة. سيتم تطبيق الإعداد الذي تم تغييره فقط عند إعادة تشغيل اللعبة
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}لن يعمل الإعداد إلا بعد إعادة تشغيل اللعبة
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}حجم اللوحة
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}حدد العنصر المطلوب

View File

@@ -961,6 +961,7 @@ STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Pantaila
STR_GAME_OPTIONS_RESOLUTION_OTHER :besteak
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Interfaze tamaina
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :Normala

View File

@@ -1299,6 +1299,7 @@ STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Выба
STR_GAME_OPTIONS_RESOLUTION_OTHER :Iншае
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Памер элементаў інтэрфейсу
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Выберыце памер элементаў інтэрфейсу

View File

@@ -1007,6 +1007,9 @@ STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Acelera
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Marque esta caixa para permitir que o OpenTTD tente usar a aceleração de hardware. Qualquer mudança nesta configuração só será aplicada após reiniciar o jogo.
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}A configuração só terá efeito após reiniciar o jogo
STR_GAME_OPTIONS_VIDEO_VSYNC :{BLACK}VSync
STR_GAME_OPTIONS_VIDEO_VSYNC_TOOLTIP :{BLACK}Marque esta caixa para habilitar o v-sync na tela. Qualquer mudança nesta configuração só será aplicada após reiniciar o jogo. Só funciona com a aceleração de hardware habilitada
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Tamanho da interface
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Selecione o tamanho de elemento de interface a ser usado

View File

@@ -969,6 +969,7 @@ STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Избо
STR_GAME_OPTIONS_RESOLUTION_OTHER :друго
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Интерфейс размер
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Изберете размера на интерфейс елемент за използване

View File

@@ -1007,6 +1007,9 @@ STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Accelera
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Seleccioneu aquesta opció per permetre que l'OpenTTD provi d'usar acceleració per maquinari. Si es canvia l'opció, s'aplicarà quan es reiniciï el programa.
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}La configuració tindrà efecte quan es reiniciï el programa.
STR_GAME_OPTIONS_VIDEO_VSYNC :{BLACK}VSync
STR_GAME_OPTIONS_VIDEO_VSYNC_TOOLTIP :{BLACK}Selecciona aquesta casella per activar la sincronització vertical de la pantalla. Els canvis s'aplicaran quan es reiniciï el programa. Només funciona si s'activa l'acceleració per maquinari.
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Mida de la interfície
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Escull la mida dels elements de la interfície
@@ -2689,7 +2692,7 @@ STR_LAND_AREA_INFORMATION_OWNER :{BLACK}Propieta
STR_LAND_AREA_INFORMATION_ROAD_OWNER :{BLACK}Propietari de la carretera: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_TRAM_OWNER :{BLACK}Propietari del rail del tramvia: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_RAIL_OWNER :{BLACK}Propietari del rail: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_LOCAL_AUTHORITY :{BLACK}Autoritat Local: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_LOCAL_AUTHORITY :{BLACK}Autoritat local: {LTBLUE}{STRING}
STR_LAND_AREA_INFORMATION_LOCAL_AUTHORITY_NONE :Cap
STR_LAND_AREA_INFORMATION_LANDINFO_COORDS :{BLACK}Coordenades: {LTBLUE}{NUM} x {NUM} x {NUM} ({STRING})
STR_LAND_AREA_INFORMATION_BUILD_DATE :{BLACK}Construït: {LTBLUE}{DATE_LONG}

View File

@@ -1086,6 +1086,7 @@ STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Odaberi
STR_GAME_OPTIONS_RESOLUTION_OTHER :ostalo
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Veličina sučelja
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Odaberite koju ćete veličinu elementa sučelja koristiti

View File

@@ -1093,6 +1093,7 @@ STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Hardwaro
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Zaškrtni, pokud chceš OpenTTD povolit použití hardwarové akcelerace. Změněné nastavení bude aplikováno po restartu hry
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}Nastavení vstoupí v platnost pouze po restartu hry
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Velikost rozhraní
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Zvolit velikost prvků uživatelského rozhraní

View File

@@ -991,6 +991,7 @@ STR_GAME_OPTIONS_RESOLUTION_OTHER :andet
STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Hardware-acceleration
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}grænseflade størrelse
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Vælg den grænseflade størrelse du ønsker at benytte

View File

@@ -1006,6 +1006,7 @@ STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Hardware
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Selecteer dit vakje om OpenTTD hardwareversnelling te laten gebruiken. De gewijzigde instelling wordt pas van kracht nadat het spel opnieuw is gestart.
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}De instelling wordt pas van kracht als het spel opnieuw is gestart
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Menupuntgrootte
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Kiest de grootte van bedieningselementen

View File

@@ -1006,6 +1006,9 @@ STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Hardware
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Check this box to allow OpenTTD to try to use hardware acceleration. A changed setting will only be applied upon game restart
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}The setting will only take effect after a game restart
STR_GAME_OPTIONS_VIDEO_VSYNC :{BLACK}VSync
STR_GAME_OPTIONS_VIDEO_VSYNC_TOOLTIP :{BLACK}Check this box to v-sync the screen. A changed setting will only be applied upon game restart. Only works with hardware acceleration enabled
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Interface size
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Select the interface element size to use

View File

@@ -966,6 +966,7 @@ STR_GAME_OPTIONS_RESOLUTION_OTHER :other
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Base graphics set
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Select the base graphics set to use
STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} missing/corrupted file{P "" s}

View File

@@ -1006,6 +1006,9 @@ STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Hardware
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Check this box to allow OpenTTD to try to use hardware acceleration. A changed setting will only be applied upon game restart
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}The setting will only take effect after a game restart
STR_GAME_OPTIONS_VIDEO_VSYNC :{BLACK}VSync
STR_GAME_OPTIONS_VIDEO_VSYNC_TOOLTIP :{BLACK}Check this box to v-sync the screen. A changed setting will only be applied upon game restart. Only works with hardware acceleration enabled
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Interface size
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Select the interface element size to use

View File

@@ -953,6 +953,7 @@ STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Elektu u
STR_GAME_OPTIONS_RESOLUTION_OTHER :alia
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Interfacgrandeco
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :Normala

View File

@@ -1063,6 +1063,7 @@ STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Riistvar
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Märkides selle ruudu, lubad OpenTTD-l üritada kasutada riistvarakiirendust. Muudetud seade omab mõju pärast mängu taaskäivitust
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}Seade omab mõju alles pärast mängu taaskäivitust
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Liidese suurus
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Vali kasutatav liideseelementide suurus

View File

@@ -947,6 +947,7 @@ STR_GAME_OPTIONS_RESOLUTION_OTHER :annað
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Base grafikk sett
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Vel ta base grafikk setti tú vil brúka
STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} vantandi/oyðiløgd fíl{P a ir}

View File

@@ -1006,6 +1006,9 @@ STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Laitteis
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Valitse tämä, jos haluat, että OpenTTD yrittää käyttää laitteistokiihdytystä. Muutettu asetus tulee voimaan vasta pelin uudelleenkäynnistyksen jälkeen.
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}Asetus tulee voimaan vasta pelin uudelleenkäynnistyksen jälkeen
STR_GAME_OPTIONS_VIDEO_VSYNC :{BLACK}Pystytahdistus
STR_GAME_OPTIONS_VIDEO_VSYNC_TOOLTIP :{BLACK}Valitse tämä ottaaksesi käyttöön näytön pystytahdistuksen. Muutettu asetus tulee voimaan vasta pelin uudelleenkäynnistyksen jälkeen. Edellyttää, että laitteistokiihdytys on käytössä.
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Käyttöliittymän koko
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Valitse käyttöliittymäelementtien koko

View File

@@ -1007,6 +1007,9 @@ STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK} Accél
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Cochez cette case permet à OpenTTD d'utiliser l'accélération matérielle, si possible. Un paramètre modifié ne sera pris en compte qu'au redémarrage du jeu
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}Les paramètres ne prendront effet qu'après le redémarrage du jeu
STR_GAME_OPTIONS_VIDEO_VSYNC :{BLACK}VSync
STR_GAME_OPTIONS_VIDEO_VSYNC_TOOLTIP :{BLACK}Cochez cette case pour activer la synchronisation verticale de l'écran. La modification de ce paramètres ne sera effective qu'après le redémarrage du jeu. Fonctionne uniquement si laccélération matérielle est active
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Taille d'interface
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Choisir la taille d'élément d'interface à utiliser
@@ -1023,7 +1026,7 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Taille double
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :Taille quadruple
STR_GAME_OPTIONS_GRAPHICS :Graphiques {BLACK}
STR_GAME_OPTIONS_GRAPHICS :{BLACK} Graphiques
STR_GAME_OPTIONS_REFRESH_RATE :{BLACK} Taux de rafraîchissement de l'affichage
STR_GAME_OPTIONS_REFRESH_RATE_TOOLTIP :{BLACK} Sélectionnez la fréquence de rafraîchissement à utiliser
@@ -3437,7 +3440,7 @@ STR_COMPANY_VIEW_RELOCATE_HQ :{BLACK}Déména
STR_COMPANY_VIEW_RELOCATE_COMPANY_HEADQUARTERS :{BLACK}Reconstruire ailleurs le siège de la compagnie pour le prix de 1{NBSP}% de sa valeur.{}Shift-clic pour afficher seulement le coût estimé.
STR_COMPANY_VIEW_INFRASTRUCTURE_BUTTON :{BLACK}Détails
STR_COMPANY_VIEW_INFRASTRUCTURE_TOOLTIP :{BLACK}Afficher le détail des calculs d'infrastructure
STR_COMPANY_VIEW_GIVE_MONEY_BUTTON :Donner de largent
STR_COMPANY_VIEW_GIVE_MONEY_BUTTON :{BLACK}Donner de largent
STR_COMPANY_VIEW_GIVE_MONEY_TOOLTIP :{BLACK}Donner de largent à cette compagnie
STR_COMPANY_VIEW_NEW_FACE_BUTTON :{BLACK}Nouveau visage

View File

@@ -1174,6 +1174,7 @@ STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Tagh dù
STR_GAME_OPTIONS_RESOLUTION_OTHER :Gnàthaichte
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Meud na h-eadar-aghaidh
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Tagh am meud airson rud san eadar-aghaidh

View File

@@ -989,6 +989,7 @@ STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Seleccio
STR_GAME_OPTIONS_RESOLUTION_OTHER :outra
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Tamaño da interface
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Seleciona o tamaño de elementos da interface a usar

View File

@@ -1007,6 +1007,9 @@ STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Hardware
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Dieses Kästchen ankreuzen, um OpenTTD zu erlauben, die Hardwarebeschleunigung zu verwenden. Eine geänderte Einstellung wird nur beim Spielneustart wirksam
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}Die Einstellung tritt nur nach einem Neustart des Spiels in Kraft
STR_GAME_OPTIONS_VIDEO_VSYNC :{BLACK}VSync
STR_GAME_OPTIONS_VIDEO_VSYNC_TOOLTIP :{BLACK}Dieses Kästchen ankreuzen, um VSync zu aktivieren. Eine geänderte Einstellung wird nur beim Spielneustart wirksam. Funktioniert nur mit aktivierter Hardwarebeschleunigung
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Größe der Bedienelemente
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Wähle die Größe der Bedienelemente

View File

@@ -1101,6 +1101,7 @@ STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Διαλ
STR_GAME_OPTIONS_RESOLUTION_OTHER :άλλη
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Μέγεθος διεπαφής
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Επιλέξτε το μέγεθος στοιχείου διεπαφής

View File

@@ -988,6 +988,7 @@ STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}בחר
STR_GAME_OPTIONS_RESOLUTION_OTHER :אחר
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}גודל ממשק
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}בחר את ממשק גודל העצם לשימוש

View File

@@ -1070,6 +1070,9 @@ STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Hardvere
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Bekapcsolásával az OpenTTD hardveres gyorsítást próbál alkalmazni. A beállítás csak a játék újraindítása után lép érvénybe.
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}Ez a beállítás csak a játék újraindítása után lép érvénybe
STR_GAME_OPTIONS_VIDEO_VSYNC :{BLACK}VSync (Vertikális Szinkronizáció)
STR_GAME_OPTIONS_VIDEO_VSYNC_TOOLTIP :{BLACK}Jelöld be ezt a négyzetet hogy engedélyezd a v-sync-et. A változtatás csak a játék újraindítása után fog érvényesülni. Kizárólag hardware gyorsítással működik!
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Felület mérete
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Használni kívánt felületméret kiválasztása

View File

@@ -946,6 +946,7 @@ STR_GAME_OPTIONS_RESOLUTION_OTHER :annað
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Grunngrafík
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Nota grunngrafíkina
STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} týnd{P "" ar} eða ónýt{P "" ar} skrá{P "" r}

View File

@@ -946,6 +946,7 @@ STR_GAME_OPTIONS_CURRENCY_NTD :Dollar Taiwan B
STR_GAME_OPTIONS_CURRENCY_CNY :Renminbi Cina (CNY)
STR_GAME_OPTIONS_CURRENCY_HKD :Dollar Hong Kong (HKD)
STR_GAME_OPTIONS_CURRENCY_INR :India Rupee (INR)
STR_GAME_OPTIONS_CURRENCY_MYR :Ringgit Malaysia (MYR)
############ end of currency region
STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_LEFT :Berkendara di lajur kiri
@@ -999,6 +1000,9 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}Resolusi
STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Pilih resolusi layar yang diinginkan
STR_GAME_OPTIONS_RESOLUTION_OTHER :lainnya
STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Akselerasi perangkat keras
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}Pengaturan hanya akan berlaku setelah game dimulai ulang
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Ukuran antarmuka
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Pilih ukuran elemen antarmuka yang akan digunakan
@@ -1016,7 +1020,10 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :Normal
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :Kali dua
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :4 kali
STR_GAME_OPTIONS_GRAPHICS :{BLACK}Grafik
STR_GAME_OPTIONS_REFRESH_RATE :{BLACK}Menampilkan kecepatan refresh
STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE}Kecepatan refresh yang lebih tinggi dari 60Hz dapat memengaruhi kinerja.
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Set Grafik Dasar
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Pilih grafik dasar yang digunakan
@@ -1112,6 +1119,8 @@ STR_TERRAIN_TYPE_FLAT :Datar
STR_TERRAIN_TYPE_HILLY :Berbukit
STR_TERRAIN_TYPE_MOUNTAINOUS :Pegunungan
STR_TERRAIN_TYPE_ALPINIST :Pemanjat Gunung
STR_TERRAIN_TYPE_CUSTOM :Ketinggian Kustom
STR_TERRAIN_TYPE_CUSTOM_VALUE :Ketinggian Kustom ({NUM})
STR_CITY_APPROVAL_PERMISSIVE :Selalu boleh
STR_CITY_APPROVAL_TOLERANT :Toleran
@@ -1193,6 +1202,8 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Mengaktifkan be
STR_CONFIG_SETTING_CITY_APPROVAL :Sikap pemerintah kota terhadap restrukturasi area: {STRING}
STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Pilih seberapa banyak dampak kebisingan dan lingkungan oleh perusahaan terhadap peringkat kota karena pembangunan di daerah
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT :Ketinggian peta maksimum: {STRING}
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_HELPTEXT :Tetapkan ketinggian maksimum medan peta. Dengan "(otomatis)" nilai yang baik akan diambil setelah pembuatan medan
STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}Kamu tidak bisa mengubah ketinggian peta maksimum di angka itu. Setidaknya ada satu gunung di peta yang lebih tinggi
STR_CONFIG_SETTING_AUTOSLOPE :Ijinkan pembentukan slop dibawah bangunan, rel, dsb.: {STRING}
STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Ijinkan pembentukan tanah dibawah bangunan dan trek tanpa merusaknya
@@ -1338,6 +1349,9 @@ STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Jarak maksimal
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Kilang minyak hanya dibangun pada tepi peta atau pantai
STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Tinggi garis salju: {STRING}
STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Mengatur ketinggian di mana salju akan muncul. Salju juga akan mempengaruhi pengembangan industri dan persyaratan untuk pertumbuhan kota
STR_CONFIG_SETTING_DESERT_COVERAGE :Cakupan gurun: {STRING}
STR_CONFIG_SETTING_DESERT_COVERAGE_HELPTEXT :Kontrol perkiraan jumlah gurun di lanskap tropis. Gurun juga mempengaruhi generasi industri. Hanya digunakan selama pembuatan peta
STR_CONFIG_SETTING_DESERT_COVERAGE_VALUE :{NUM}%
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Kekasaran daratan: {STRING}
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(hanya TerraGenesis) Memilih frekuensi bukit: Bentang darat rata punya bukit yang lebih sedikit dan lebih lebar. Bentang darat bergunung punya lebih banyak bukit, dan ini mungkin akan terlihat lebih membosankan
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Sangat halus
@@ -1643,12 +1657,15 @@ STR_CONFIG_SETTING_ZOOM_MIN :Tingkat Perbesa
STR_CONFIG_SETTING_ZOOM_MIN_HELPTEXT :Perbesaran viewport maksimal. Semakin besar semakin banyak memori yang dibutuhkan
STR_CONFIG_SETTING_ZOOM_MAX :Tingkat zoom out Maksimal: {STRING}
STR_CONFIG_SETTING_ZOOM_MAX_HELPTEXT :Pengecilan maksimum untuk viewport. Semakin kecil semakin tidak jelas
STR_CONFIG_SETTING_SPRITE_ZOOM_MIN :Sprite resolusi tertinggi untuk digunakan: {STRING}
STR_CONFIG_SETTING_ZOOM_LVL_MIN :4x
STR_CONFIG_SETTING_ZOOM_LVL_IN_2X :2x
STR_CONFIG_SETTING_ZOOM_LVL_NORMAL :Normal
STR_CONFIG_SETTING_ZOOM_LVL_OUT_2X :2x
STR_CONFIG_SETTING_ZOOM_LVL_OUT_4X :4x
STR_CONFIG_SETTING_ZOOM_LVL_OUT_8X :8x
STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_IN_2X :2x
STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_NORMAL :1x
STR_CONFIG_SETTING_TOWN_GROWTH :Kecepatan pertumbuhan kota: {STRING}
STR_CONFIG_SETTING_TOWN_GROWTH_HELPTEXT :Kecepatan pertumbuhan kota
STR_CONFIG_SETTING_TOWN_GROWTH_NONE :Tidak tumbuh
@@ -1783,6 +1800,7 @@ STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Kehabisa
STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}Mengalokasikan {BYTES} 'spritecache' gagal. 'Spritecache' dikurangi ke {BYTES}. Ini akan kurangi kinerja OpenTTD. Untuk kurangi kebutuhan memori anda bisa coba matikan grafik 32bpp dan/atau tingkat pembesaran
# Video initalization errors
STR_VIDEO_DRIVER_ERROR_NO_HARDWARE_ACCELERATION :{WHITE}... tidak ditemukan GPU yang kompatibel. Akselerasi perangkat keras dinonaktifkan
# Intro window
STR_INTRO_CAPTION :{WHITE}OpenTTD {REV}
@@ -2314,6 +2332,8 @@ STR_MISSING_GRAPHICS_SET_MESSAGE :{BLACK}OpenTTD
STR_MISSING_GRAPHICS_YES_DOWNLOAD :{BLACK}Ya, download file gambar
STR_MISSING_GRAPHICS_NO_QUIT :{BLACK}Tidak, tutup OpenTTD
STR_MISSING_GRAPHICS_ERROR_TITLE :{WHITE}Gagal Mendownload
STR_MISSING_GRAPHICS_ERROR_QUIT :{BLACK}Keluar OpenTTD
# Transparency settings window
STR_TRANSPARENCY_CAPTION :{WHITE}Pengaturan Transparasi
@@ -2864,6 +2884,9 @@ STR_MAPGEN_BY :{BLACK}*
STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}Jumlah Kota:
STR_MAPGEN_DATE :{BLACK}Tgl:
STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Jumlah industri:
STR_MAPGEN_HEIGHTMAP_HEIGHT_DOWN :{BLACK}Kurangi satu ketinggian maksimum puncak tertinggi di peta
STR_MAPGEN_SNOW_COVERAGE_DOWN :{BLACK}Kurangi cakupan salju hingga sepuluh persen
STR_MAPGEN_DESERT_COVERAGE :{BLACK}Cakupan gurun:
STR_MAPGEN_LAND_GENERATOR :{BLACK}Algoritma pulau:
STR_MAPGEN_TERRAIN_TYPE :{BLACK}Jenis dataran:
STR_MAPGEN_QUANTITY_OF_SEA_LAKES :{BLACK}Area perairan:
@@ -2889,6 +2912,7 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Nama Pet
STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Luas:
STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} x {NUM}
STR_MAPGEN_SNOW_COVERAGE_QUERY_CAPT :{WHITE}Cakupan salju (dalam %)
STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Ganti Tahun Permulaan
# SE Map generation
@@ -3179,6 +3203,7 @@ STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Kolusi
STR_GOALS_CAPTION :{WHITE}{COMPANY} Target
STR_GOALS_SPECTATOR_CAPTION :{WHITE}Target Global
STR_GOALS_SPECTATOR :Target Global
STR_GOALS_GLOBAL_BUTTON :{BLACK}Global
STR_GOALS_TEXT :{ORANGE}{STRING}
STR_GOALS_NONE :{ORANGE}- Tidak ada -
STR_GOALS_PROGRESS :{ORANGE}{STRING}
@@ -3553,6 +3578,7 @@ STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Daya Ger
STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Kargo dapat di ganti untuk: {GOLD}{STRING}
STR_PURCHASE_INFO_ALL_TYPES :Semua jenis kargo
STR_PURCHASE_INFO_NONE :Tidak Ada
STR_PURCHASE_INFO_ENGINES_ONLY :Hanya Lokomotif
STR_PURCHASE_INFO_ALL_BUT :Semua tapi tidak untuk {CARGO_LIST}
STR_PURCHASE_INFO_MAX_TE :{BLACK}Traksi Maks.: {GOLD}{FORCE}
STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Jangkauan: {GOLD}{COMMA} kotak

View File

@@ -969,6 +969,7 @@ STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Roghnaig
STR_GAME_OPTIONS_RESOLUTION_OTHER :eile
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Méid an chomhéadain
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Roghnaigh méid na heiliminte comhéadain a úsáidfear

View File

@@ -1008,6 +1008,7 @@ STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Accelera
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Seleziona questa opzione per consentire a OpenTTD di utilizzare l'accelerazione hardware. Eventuali cambiamenti avranno effetto solo dopo un riavvio del gioco
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}Le nuove impostazioni avranno effetto solo dopo un riavvio del gioco
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Dimensione interfaccia
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Seleziona la dimensione deglie elementi dell'interfaccia grafica

View File

@@ -982,6 +982,7 @@ STR_GAME_OPTIONS_RESOLUTION_ITEM :{NUM}x{NUM}
STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}ハードウェアアクセラレーション
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}インターフェイスのサイズ
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}インターフェイス上の単位サイズを指定します

View File

@@ -954,7 +954,7 @@ STR_GAME_OPTIONS_CURRENCY_MYR :말레이시아
STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_LEFT :좌측통행
STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_RIGHT :우측통행
STR_GAME_OPTIONS_TOWN_NAMES_FRAME :{BLACK}도시 이름
STR_GAME_OPTIONS_TOWN_NAMES_FRAME :{BLACK}도시 이름:
STR_GAME_OPTIONS_TOWN_NAMES_DROPDOWN_TOOLTIP :{BLACK}도시 이름 스타일을 선택하세요
############ start of townname region
@@ -1004,9 +1004,12 @@ STR_GAME_OPTIONS_RESOLUTION_OTHER :기타
STR_GAME_OPTIONS_RESOLUTION_ITEM :{NUM}x{NUM}
STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}하드웨어 가속
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}OpenTTD가 하드웨어 가속을 사용하게 하려면 체크하세요. 변경 설정은 게임을 재시작한 뒤에 적용니다.
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}OpenTTD가 하드웨어 가속을 사용하게 하려면 체크하세요. 변경 설정은 게임을 재시작한 뒤에 적용될 것입니다.
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}이 설정은 게임을 재시작한 뒤에 적용될 것입니다
STR_GAME_OPTIONS_VIDEO_VSYNC :{BLACK}수직 동기화
STR_GAME_OPTIONS_VIDEO_VSYNC_TOOLTIP :{BLACK}화면과 수직 동기화하려면 체크하세요. 변경한 설정은 게임을 재시작한 뒤에 적용될 것입니다. 하드웨어 가속을 켠 경우에만 작동합니다.
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}인터페이스 크기
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}인터페이스의 크기를 선택합니다.
@@ -1534,20 +1537,20 @@ STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY :스크립트당
STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_HELPTEXT :스크립트 하나가 강제 종료되기 전까지 사용할 수 있는 메모리의 양입니다. 크기가 큰 맵에서는 값을 크게 설정해야할 수도 있습니다.
STR_CONFIG_SETTING_SCRIPT_MAX_MEMORY_VALUE :{COMMA} MiB
STR_CONFIG_SETTING_SERVINT_ISPERCENT :신뢰도에 따른 정비 설정: {STRING}
STR_CONFIG_SETTING_SERVINT_ISPERCENT :신뢰도에 따른 점검 설정: {STRING}
STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :차량 점검 방식을 "마지막 점검 이후 지난 시간 (또는) 최대 신뢰도에 대한 차량 신뢰도의 일정 퍼센트 하락 여부" 중에 하나로 선택합니다.
STR_CONFIG_SETTING_SERVINT_TRAINS :열차에 대한 기본 점검 기준: {STRING}
STR_CONFIG_SETTING_SERVINT_TRAINS_HELPTEXT :열차에 따로 점검 기간이 설정되어있지 않은 경우에 사용할 기본 점검 기간을 설정합니다.
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}일/%
STR_CONFIG_SETTING_SERVINT_DISABLED :사용 안 함
STR_CONFIG_SETTING_SERVINT_ROAD_VEHICLES :차량에 대한 기본 점검 기준: {STRING}
STR_CONFIG_SETTING_SERVINT_ROAD_VEHICLES_HELPTEXT :차량 정비 설정을 하지 않은 경우, 기본값으로 사용할 정비 주기를 설정합니다.
STR_CONFIG_SETTING_SERVINT_ROAD_VEHICLES_HELPTEXT :차량 점검 설정을 하지 않은 경우, 기본값으로 사용할 점검 주기를 설정합니다
STR_CONFIG_SETTING_SERVINT_AIRCRAFT :항공기에 대한 기본 점검 기준: {STRING}
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :항공기에 따로 점검 기간이 설정되어있지 않은 경우에 사용할 기본 점검 기간을 설정합니다.
STR_CONFIG_SETTING_SERVINT_SHIPS :선박에 대한 기본 점검 기준: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :선박에 따로 점검 기간이 설정되어있지 않은 경우에 사용할 기본 점검 기간을 설정합니다.
STR_CONFIG_SETTING_NOSERVICE :차량 고장 설정이 비활성화된 경우 정비하지 않음: {STRING}
STR_CONFIG_SETTING_NOSERVICE_HELPTEXT :이 설정을 켜면, 차량이 고장나지 않도록 설정되어 있는 경우 차량이 정비를 하러 가지 않습니다.
STR_CONFIG_SETTING_NOSERVICE :차량 고장 설정을 껐으면 점검을 하지 않음: {STRING}
STR_CONFIG_SETTING_NOSERVICE_HELPTEXT :이 설정을 켜면, 차량이 고장나지 않도록 설정되어 있는 경우 차량이 자동으로 점검을 하러 가지 않습니다
STR_CONFIG_SETTING_WAGONSPEEDLIMITS :화물차 속력 제한 적용: {STRING}
STR_CONFIG_SETTING_WAGONSPEEDLIMITS_HELPTEXT :이 설정을 켜면, 화물차의 속력 제한값에 따라 열차의 최대 속력을 제한합니다.
STR_CONFIG_SETTING_DISABLE_ELRAILS :전기 철도를 사용하지 않음: {STRING}
@@ -1723,38 +1726,38 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :종종 두 역
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :속력 단위: {STRING}
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :속력를 표시할 때 선택한 단위를 사용하여 나타냅니다.
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :임페리얼법 (mph)
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :야드파운드법 (mph)
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :미터법 (km/h)
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :국제표준규격 (m/s)
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_GAMEUNITS :게임 단위 (칸/일)
STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER :차량의 힘 단위: {STRING}
STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_HELPTEXT :출력할 차량의 힘 단위를 선택합니다.
STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_IMPERIAL :임페리얼법 (마력)
STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_IMPERIAL :야드파운드법 (마력)
STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_METRIC :미터법 (마력)
STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_SI :국제표준규격 (kW)
STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT :무게 단위: {STRING}
STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_HELPTEXT :무게를 표시할 때 선택한 단위를 사용하여 나타냅니다.
STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_IMPERIAL :임페리얼법 (미국 톤)
STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_IMPERIAL :야드파운드법 (미국 톤)
STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_METRIC :미터법 (톤)
STR_CONFIG_SETTING_LOCALISATION_UNITS_WEIGHT_SI :국제표준규격 (kg)
STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME :부피 단위: {STRING}
STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_HELPTEXT :부피를 표시할 때 선택한 단위를 사용하여 나타냅니다.
STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_IMPERIAL :임페리얼법 (갤런)
STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_IMPERIAL :야드파운드법 (갤런)
STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_METRIC :미터법 (리터)
STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_SI :국제표준규격 (m³)
STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE :견인 효과 단위: {STRING}
STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_HELPTEXT :견인 효과(견인력)를 표시할 때 선택한 단위를 사용하여 나타냅니다.
STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_IMPERIAL :임페리얼법 (파운드중)
STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_IMPERIAL :야드파운드법 (파운드중)
STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_METRIC :미터법 (kgf)
STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_SI :국제표준규격 (kN)
STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT :높이 단위: {STRING}
STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_HELPTEXT :높이를 표시할 때 선택한 단위를 사용하여 나타냅니다.
STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :임페리얼법 (ft)
STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :야드파운드법 (ft)
STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :미터법 (m)
STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :국제표준규격 (m)
@@ -2406,7 +2409,7 @@ STR_RAIL_TOOLBAR_MAGLEV_CONSTRUCTION_CAPTION :자기부상열
STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}선로를 건설합니다. CTRL 키를 누르면 건설모드/철거모드로 전환합니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다
STR_RAIL_TOOLBAR_TOOLTIP_BUILD_AUTORAIL :{BLACK}자동건설 모드로 선로를 건설합니다. CTRL 키를 누르면 건설/철거모드를 바꿀 수 있습니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다
STR_RAIL_TOOLBAR_TOOLTIP_BUILD_TRAIN_DEPOT_FOR_BUILDING :{BLACK}차량기지를 건설합니다. 차량을 구입하거나 정비를 할 수 있습니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다
STR_RAIL_TOOLBAR_TOOLTIP_BUILD_TRAIN_DEPOT_FOR_BUILDING :{BLACK}차량기지를 건설합니다. 차량을 구입하거나 점검을 할 수 있습니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다
STR_RAIL_TOOLBAR_TOOLTIP_CONVERT_RAIL_TO_WAYPOINT :{BLACK}선로에 경유지를 설치합니다. CTRL 키를 사용하면 같은 이름의 경유지를 서로 떨어진 곳에 지을 수 있습니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다
STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_STATION :{BLACK}철도역을 짓습니다. CTRL 키를 사용하면 같은 이름의 역을 서로 떨어진 곳에 지을 수 있습니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다
STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_SIGNALS :{BLACK}신호기를 설치합니다. CTRL 키를 누르면 구식/전자식으로 전환합니다.{}선로를 따라 드래그해서 설치할 수 있습니다. CTRL 키를 누른 채로 드래그하면 다음 분기점이나 다음 신호기까지 신호기를 설치합니다.{}CTRL 키를 누른 채 클릭하면 신호기 선택 창을 전환합니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다
@@ -2487,8 +2490,8 @@ STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_SECTION :{BLACK}도로
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAMWAY_SECTION :{BLACK}전차 선로를 짓습니다. CTRL 키를 누르고 있으면 건설/제거 모드를 바꿀 수 있습니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_AUTOROAD :{BLACK}자동건설 모드로 도로를 짓습니다. CTRL 키를 누르고 있으면 건설/제거 모드를 바꿀 수 있습니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_AUTOTRAM :{BLACK}자동건설 모드로 전차 선로를 짓습니다. CTRL 키를 누르고 있으면 건설/제거 모드를 바꿀 수 있습니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_VEHICLE_DEPOT :{BLACK}차고지를 건설합니다. 차량을 구입하거나 정비를 할 수 있습니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAM_VEHICLE_DEPOT :{BLACK}전차 차고지를 건설합니다. 차량을 구입하거나 정비를 할 수 있습니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_ROAD_VEHICLE_DEPOT :{BLACK}차고지를 건설합니다. 차량을 구입하거나 점검을 할 수 있습니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRAM_VEHICLE_DEPOT :{BLACK}전차 차고지를 건설합니다. 차량을 구입하거나 점검을 할 수 있습니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_BUS_STATION :{BLACK}버스 정류장을 짓습니다. CTRL 키를 사용하면 근처 정류장과 연결할 수 있습니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_PASSENGER_TRAM_STATION :{BLACK}여객 전차역을 짓습니다. CTRL 키를 사용하면 근처 역과 연결할 수 있습니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다
STR_ROAD_TOOLBAR_TOOLTIP_BUILD_TRUCK_LOADING_BAY :{BLACK}트럭 적하장을 짓습니다. CTRL 키를 사용하면 근처 적하장과 연결할 수 있습니다. SHIFT 키를 누른 채로 사용하면 예상 비용을 볼 수 있습니다
@@ -3090,7 +3093,7 @@ STR_NEWGRF_ERROR_LOAD_BEFORE :{1:STRING}{G 1
STR_NEWGRF_ERROR_LOAD_AFTER :{1:STRING}{G 1 "은" "는"} 반드시 {STRING} 뒤에 불러와야 합니다
STR_NEWGRF_ERROR_OTTD_VERSION_NUMBER :{1:STRING}{G 1 "은" "는"} OpenTTD {STRING} 버전이나 그 이상이 필요합니다
STR_NEWGRF_ERROR_AFTER_TRANSLATED_FILE :GRF 파일이 번역을 위해 만들어졌습니다
STR_NEWGRF_ERROR_TOO_MANY_NEWGRFS_LOADED :NewGRF 너무 많습니다
STR_NEWGRF_ERROR_TOO_MANY_NEWGRFS_LOADED :NewGRF 너무 많습니다
STR_NEWGRF_ERROR_STATIC_GRF_CAUSES_DESYNC :{2:STRING}{G 2 "을" "를"} 포함한 정적 NewGRF {1:STRING}{G 1 "을" "를"} 불러오는 것은 비동기화를 일으킬 수 있습니다
STR_NEWGRF_ERROR_UNEXPECTED_SPRITE :예기치 않은 스프라이트 (스프라이트 {3:NUM})
STR_NEWGRF_ERROR_UNKNOWN_PROPERTY :알려지지 않은 액션 0 속성 {4:HEX} (스프라이트 {3:NUM})
@@ -3124,7 +3127,7 @@ STR_NEWGRF_LIST_COMPATIBLE :{YELLOW}호환
STR_NEWGRF_LIST_MISSING :{RED}파일 없음
# NewGRF 'it's broken' warnings
STR_NEWGRF_BROKEN :{WHITE}'{0:STRING}' NewGRF 적용되는 과정에서 비동기화나 충돌이 일어날 수 있습니다
STR_NEWGRF_BROKEN :{WHITE}'{0:STRING}' NewGRF 적용되는 과정에서 비동기화나 충돌이 일어날 수 있습니다
STR_NEWGRF_BROKEN_POWERED_WAGON :{WHITE}차고지 안에 있지 않은 '{1:ENGINE}'에 대한 동력 차량 상태가 바뀌었습니다
STR_NEWGRF_BROKEN_VEHICLE_LENGTH :{WHITE}'{1:ENGINE}'{G 1 "이" "가"} 차고지 안에 있지 않으면 차량 길이가 바뀝니다
STR_NEWGRF_BROKEN_CAPACITY :{WHITE}차량이 기지 안에 있지 않거나 개조가 불가능한 상태에서 '{1:ENGINE}'의 수송량이 변경되었습니다
@@ -3529,7 +3532,7 @@ STR_VEHICLE_LIST_AVAILABLE_ENGINES_TOOLTIP :{BLACK}이 차
STR_VEHICLE_LIST_MANAGE_LIST :{BLACK}관리
STR_VEHICLE_LIST_MANAGE_LIST_TOOLTIP :{BLACK}이 목록에 있는 모든 열차에 지시를 내려 관리합니다
STR_VEHICLE_LIST_REPLACE_VEHICLES :차량 교체
STR_VEHICLE_LIST_SEND_FOR_SERVICING :정비하러 보내기
STR_VEHICLE_LIST_SEND_FOR_SERVICING :점검하러 보내기
STR_VEHICLE_LIST_SEND_TRAIN_TO_DEPOT :차량기지로 보내기
STR_VEHICLE_LIST_SEND_ROAD_VEHICLE_TO_DEPOT :차고지로 보내기
@@ -3748,7 +3751,7 @@ STR_DEPOT_MASS_START_HANGAR_TOOLTIP :{BLACK}이 격
STR_DEPOT_SELL_CONFIRMATION_TEXT :{YELLOW}이 안에 있는 모든 차량을 판매하려고 합니다. 계속하시겠습니까?
# Engine preview window
STR_ENGINE_PREVIEW_CAPTION :{WHITE}차량 개발자로부터의 메시지
STR_ENGINE_PREVIEW_CAPTION :{WHITE}차량 개발자가 보낸 메시지
STR_ENGINE_PREVIEW_MESSAGE :{GOLD}저희는 이제 막 새로운 {STRING}{G 0 "을" "를"} 개발했습니다. 1년 먼저 이 차량을 사용하셔서 모두에게 공개되기 전에 잘 작동하는지 확인해주시겠습니까?
STR_ENGINE_PREVIEW_RAILROAD_LOCOMOTIVE :{G=f}철도 기관차
@@ -3823,10 +3826,10 @@ STR_VEHICLE_VIEW_ROAD_VEHICLE_CENTER_TOOLTIP :{BLACK}이 차
STR_VEHICLE_VIEW_SHIP_CENTER_TOOLTIP :{BLACK}이 선박의 위치로 화면을 이동합니다. 더블 클릭하면 이 선박을 따라 화면이 움직입니다. CTRL+클릭하면 이 선박 위치를 기준으로 외부 화면을 엽니다
STR_VEHICLE_VIEW_AIRCRAFT_CENTER_TOOLTIP :{BLACK}이 항공기의 위치로 화면을 이동합니다. 더블 클릭하면 이 항공기를 따라 화면이 움직입니다. CTRL+클릭하면 이 항공기 위치를 기준으로 외부 화면을 엽니다
STR_VEHICLE_VIEW_TRAIN_SEND_TO_DEPOT_TOOLTIP :{BLACK}열차를 차량기지로 보냅니다. CTRL+클릭하면 정비를 하러 차량기지에 들르기만 합니다
STR_VEHICLE_VIEW_ROAD_VEHICLE_SEND_TO_DEPOT_TOOLTIP :{BLACK}차량을 차고지로 보냅니다. CTRL+클릭하면 정비를 하러 차고지에 들르기만 합니다
STR_VEHICLE_VIEW_SHIP_SEND_TO_DEPOT_TOOLTIP :{BLACK}선박을 정박소로 보냅니다. CTRL+클릭하면 정비를 하러 정박소에 들르기만 합니다
STR_VEHICLE_VIEW_AIRCRAFT_SEND_TO_DEPOT_TOOLTIP :{BLACK}항공기를 격납고로 보냅니다. CTRL+클릭하면 정비를 하러 격납고에 들르기만 합니다
STR_VEHICLE_VIEW_TRAIN_SEND_TO_DEPOT_TOOLTIP :{BLACK}열차를 차량기지로 보냅니다. CTRL+클릭하면 점검을 하러 차량기지에 들르기만 합니다
STR_VEHICLE_VIEW_ROAD_VEHICLE_SEND_TO_DEPOT_TOOLTIP :{BLACK}차량을 차고지로 보냅니다. CTRL+클릭하면 점검을 하러 차고지에 들르기만 합니다
STR_VEHICLE_VIEW_SHIP_SEND_TO_DEPOT_TOOLTIP :{BLACK}선박을 정박소로 보냅니다. CTRL+클릭하면 점검을 하러 정박소에 들르기만 합니다
STR_VEHICLE_VIEW_AIRCRAFT_SEND_TO_DEPOT_TOOLTIP :{BLACK}항공기를 격납고로 보냅니다. CTRL+클릭하면 점검을 하러 격납고에 들르기만 합니다
STR_VEHICLE_VIEW_CLONE_TRAIN_INFO :{BLACK}객차/화차를 포함한 열차 전체를 복제합니다. CTRL+클릭하면 경로도 함께 공유됩니다. SHIFT+클릭하면 예상 비용을 볼 수 있습니다
STR_VEHICLE_VIEW_CLONE_ROAD_VEHICLE_INFO :{BLACK}차량을 복제합니다. CTRL+클릭하면 경로도 함께 공유됩니다. SHIFT+클릭하면 예상 비용을 볼 수 있습니다
@@ -3914,12 +3917,12 @@ STR_VEHICLE_INFO_CAPACITY_CAPACITY :{BLACK}수송
STR_VEHICLE_INFO_FEEDER_CARGO_VALUE :{BLACK}환승 수익: {LTBLUE}{CURRENCY_LONG}
STR_VEHICLE_DETAILS_SERVICING_INTERVAL_DAYS :{BLACK}정비 간격: {LTBLUE}{COMMA}일{BLACK}마다 마지막 정비 날짜: {LTBLUE}{DATE_LONG}
STR_VEHICLE_DETAILS_SERVICING_INTERVAL_PERCENT :{BLACK}정비 기준: {LTBLUE}{COMMA}%{BLACK} 떨어지면 마지막 정비 날짜: {LTBLUE}{DATE_LONG}
STR_VEHICLE_DETAILS_SERVICING_INTERVAL_DAYS :{BLACK}점검 간격: {LTBLUE}{COMMA}일{BLACK}마다{NBSP} 마지막 점검 날짜: {LTBLUE}{DATE_LONG}
STR_VEHICLE_DETAILS_SERVICING_INTERVAL_PERCENT :{BLACK}점검 기준: {LTBLUE}{COMMA}%{BLACK} 떨어지면 마지막 점검 날짜: {LTBLUE}{DATE_LONG}
STR_VEHICLE_DETAILS_INCREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK}점검 기준값을 10만큼 올립니다. CTRL+클릭하면 점검 기준값을 5만큼 올립니다
STR_VEHICLE_DETAILS_DECREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK}점검 기준값을 10만큼 내립니다. CTRL+클릭하면 점검 기준값을 5만큼 내립니다
STR_SERVICE_INTERVAL_DROPDOWN_TOOLTIP :{BLACK}정비 기준 설정을 변경합니다
STR_SERVICE_INTERVAL_DROPDOWN_TOOLTIP :{BLACK}점검 기준 설정을 변경합니다
STR_VEHICLE_DETAILS_DEFAULT :기본
STR_VEHICLE_DETAILS_DAYS :날짜
STR_VEHICLE_DETAILS_PERCENT :신뢰도
@@ -4017,11 +4020,11 @@ STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}이 경
STR_ORDER_DROP_REFIT_AUTO :특정 화물로
STR_ORDER_DROP_REFIT_AUTO_ANY :이용 가능한 화물로
STR_ORDER_SERVICE :{BLACK}정비
STR_ORDER_SERVICE :{BLACK}점검
STR_ORDER_DROP_GO_ALWAYS_DEPOT :항상 감
STR_ORDER_DROP_SERVICE_DEPOT :필요하면 정비
STR_ORDER_DROP_SERVICE_DEPOT :필요하면 점검
STR_ORDER_DROP_HALT_DEPOT :멈춤
STR_ORDER_SERVICE_TOOLTIP :{BLACK}정비가 필요하지 않으면 이 경로를 건너뜁니다
STR_ORDER_SERVICE_TOOLTIP :{BLACK}점검이 필요하지 않으면 이 경로를 건너뜁니다
STR_ORDER_CONDITIONAL_VARIABLE_TOOLTIP :{BLACK}경로를 건너뛰기 위한 비교 조건을 선택합니다
@@ -4030,7 +4033,7 @@ STR_ORDER_CONDITIONAL_LOAD_PERCENTAGE :적재율
STR_ORDER_CONDITIONAL_RELIABILITY :신뢰도
STR_ORDER_CONDITIONAL_MAX_SPEED :최고 속력
STR_ORDER_CONDITIONAL_AGE :연령 (년)
STR_ORDER_CONDITIONAL_REQUIRES_SERVICE :정비 필요성
STR_ORDER_CONDITIONAL_REQUIRES_SERVICE :점검 필요성
STR_ORDER_CONDITIONAL_UNCONDITIONALLY :항상
STR_ORDER_CONDITIONAL_REMAINING_LIFETIME :남은 수명 (년)
STR_ORDER_CONDITIONAL_MAX_RELIABILITY :최대 신뢰도
@@ -4062,7 +4065,7 @@ STR_ORDER_GO_TO_NEAREST_DEPOT :가까운 차
STR_ORDER_GO_TO_NEAREST_HANGAR :가까운 격납고로
STR_ORDER_CONDITIONAL :조건부 경로 건너뛰기
STR_ORDER_SHARE :경로 공유하기
STR_ORDERS_GO_TO_TOOLTIP :{BLACK}선택된 경로 바로 전이나 목록 맨 끝에 새 경로를 삽입합니다. CTRL 키와 함께 누르면, 역에서는 '아무 화물이나 가득 싣기'로, 경유지에서는 '직행'으로, 차량기지에서는 '점검'으로 지정됩니다. '공유된 경로'를 클릭하거나 CTRL 키를 누르면 선택했던 차량과 이 차량의 경로를 공유하게 됩니다. 단순히 클릭하면 그 차량의 경로를 복사하기만 합니다. 차량기지를 경로에 포함시키면 이 차량은 자동 정비를 할 수 없게 됩니다
STR_ORDERS_GO_TO_TOOLTIP :{BLACK}선택된 경로 바로 전이나 목록 맨 끝에 새 경로를 삽입합니다. CTRL 키와 함께 누르면, 역에서는 '아무 화물이나 가득 싣기'로, 경유지에서는 '직행'으로, 차량기지에서는 '점검'으로 지정됩니다. '공유된 경로'를 클릭하거나 CTRL 키를 누르면 선택했던 차량과 이 차량의 경로를 공유하게 됩니다. 단순히 클릭하면 그 차량의 경로를 복사하기만 합니다. 차량기지를 경로에 포함시키면 이 차량은 자동 점검를 할 수 없게 됩니다
STR_ORDERS_VEH_WITH_SHARED_ORDERS_LIST_TOOLTIP :{BLACK}이 경로를 공유하고 있는 모든 차량을 표시합니다.
@@ -4070,8 +4073,8 @@ STR_ORDERS_VEH_WITH_SHARED_ORDERS_LIST_TOOLTIP :{BLACK}이 경
STR_ORDER_GO_TO_WAYPOINT :완행 경유 {WAYPOINT}
STR_ORDER_GO_NON_STOP_TO_WAYPOINT :직행 경유 {WAYPOINT}
STR_ORDER_SERVICE_AT :완행 정비
STR_ORDER_SERVICE_NON_STOP_AT :직행 정비
STR_ORDER_SERVICE_AT :완행 점검
STR_ORDER_SERVICE_NON_STOP_AT :직행 점검
STR_ORDER_NEAREST_DEPOT :가까운
STR_ORDER_NEAREST_HANGAR :가까운 격납고
@@ -4679,7 +4682,7 @@ STR_ERROR_SHIP_NOT_AVAILABLE :{WHITE}이 선
STR_ERROR_AIRCRAFT_NOT_AVAILABLE :{WHITE}이 항공기는 사용할 수 없는 상태입니다
STR_ERROR_TOO_MANY_VEHICLES_IN_GAME :{WHITE}게임에 차량이 너무 많습니다!
STR_ERROR_CAN_T_CHANGE_SERVICING :{WHITE}정비 간격 설정을 바꿀 수 없습니다...
STR_ERROR_CAN_T_CHANGE_SERVICING :{WHITE}점검 간격 설정을 바꿀 수 없습니다...
STR_ERROR_VEHICLE_IS_DESTROYED :{WHITE}... 차량이 파괴되었습니다

View File

@@ -1166,6 +1166,7 @@ STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Eligere
STR_GAME_OPTIONS_RESOLUTION_OTHER :alia
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Magnitudo interfaciei
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Eligere magnitudinem interfaciei adhibendam

View File

@@ -1004,6 +1004,7 @@ STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Ekrāna
STR_GAME_OPTIONS_RESOLUTION_OTHER :Cita
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Lietotāja saskarnes lielums
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Lietotāja saskarnes elementu lieluma izvēle

View File

@@ -1211,6 +1211,7 @@ STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Aparatin
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Pažymėkite šį langelį, jei norite, kad OpenTTD taikytų aparatinį spartinimą. Kad nuostata įsigaliotų, reiks perkrauti OpenTTD
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}Kad pakeitimai įsigaliotų, reikia paleisti OpenTTD iš naujo
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Sąsajos elementų dydis
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Pasirinkite vartotojo sąsajos elementų santykinį dydį

View File

@@ -1006,6 +1006,7 @@ STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Hardware
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Dës Optioun wielen, dass OpenTTD Hardwarebeschleunigung dierf notzen. Wäert just geännert ginn wann d'Spill nei gestart gëtt
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}D'Astellung huet réicht en Afloss no engem Neistart vum Spill
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Interfacegréisst
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Wiel d'Gréisst déi fir den Interface soll benotzt ginn

View File

@@ -944,6 +944,7 @@ STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Pilih re
STR_GAME_OPTIONS_RESOLUTION_OTHER :lain
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Saiz Antaramuka
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Sila pilih saiz elemen antara muka untuk digunakan

View File

@@ -1008,6 +1008,9 @@ STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Maskinva
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Merk av i denne boksen for å la OpenTTD prøve å bruke maskinvareakselerasjon. En endret innstilling blir bare brukt ved omstart av spillet
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}Innstillingen vil ikke tre i kraft før spillet er restartet
STR_GAME_OPTIONS_VIDEO_VSYNC :{BLACK}VSync
STR_GAME_OPTIONS_VIDEO_VSYNC_TOOLTIP :{BLACK}Merk av i denne boksen for å v-synkronisere skjermen. Endring av innstillinger krever omstart av spillet. Fungerer bare med maskinvareakselerasjon aktivert
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Grensesnitt-størrelse
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Velg grensesnitt-størrelsen som skal benyttes

View File

@@ -971,6 +971,7 @@ STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Vel skje
STR_GAME_OPTIONS_RESOLUTION_OTHER :anna
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Grensesnittstorleik
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Vel storleik å bruke på grensesnittet

View File

@@ -1386,6 +1386,9 @@ STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Przyspie
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Zaznacz to pole, aby zezwolić OpenTTD na użycie przyspieszenia sprzętowego. Ustawienia zostaną zastosowane dopiero po ponownym uruchomieniu gry.
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}Ustawienie to zacznie obowiązywać dopiero po ponownym uruchomieniu gry.
STR_GAME_OPTIONS_VIDEO_VSYNC :{BLACK}Synchronizacja pionowa
STR_GAME_OPTIONS_VIDEO_VSYNC_TOOLTIP :{BLACK}Zaznacz to pole aby włączyć synchronizację pionową. Zmiany zostaną zastosowane po restarcie gry. Działa tylko z włączoną akceleracją sprzętową.
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Rozmiar interfejsu
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Wybierz rozmiar elementów interfejsu
@@ -2406,10 +2409,10 @@ STR_NETWORK_SERVER_LIST_JOIN_GAME :{BLACK}Przyłą
STR_NETWORK_SERVER_LIST_REFRESH :{BLACK}Odśwież serwer
STR_NETWORK_SERVER_LIST_REFRESH_TOOLTIP :{BLACK}Odśwież informacje o serwerze
STR_NETWORK_SERVER_LIST_SEARCH_SERVER_INTERNET :Przeszukaj internet
STR_NETWORK_SERVER_LIST_SEARCH_SERVER_INTERNET :{BLACK}Przeszukaj internet
STR_NETWORK_SERVER_LIST_SEARCH_SERVER_INTERNET_TOOLTIP :{BLACK}Znajdź w internecie serwery publiczne
STR_NETWORK_SERVER_LIST_SEARCH_SERVER_LAN :Przeszukaj LAN
STR_NETWORK_SERVER_LIST_SEARCH_SERVER_LAN_TOOLTIP :Znajdź serwery w sieci lokalnej
STR_NETWORK_SERVER_LIST_SEARCH_SERVER_LAN :{BLACK}Przeszukaj LAN
STR_NETWORK_SERVER_LIST_SEARCH_SERVER_LAN_TOOLTIP :{BLACK}Znajdź serwery w sieci lokalnej
STR_NETWORK_SERVER_LIST_ADD_SERVER :{BLACK}Zapisz serwer
STR_NETWORK_SERVER_LIST_ADD_SERVER_TOOLTIP :{BLACK}Zapisz serwer na liście serwerów, które będą zawsze sprawdzane w poszukiwaniu uruchomionych gier
STR_NETWORK_SERVER_LIST_START_SERVER :{BLACK}Uruchom serwer

View File

@@ -242,7 +242,7 @@ STR_TOOLTIP_CLOSE_WINDOW :{BLACK}Fechar j
STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS :{BLACK}Título da janela - arraste isto para mover a janela
STR_TOOLTIP_SHADE :{BLACK}Encolher janela - apenas mostra a barra de título
STR_TOOLTIP_DEBUG :{BLACK}Mostrar informação de depuração de NewGRF
STR_TOOLTIP_DEFSIZE :{BLACK}Reajusta janela para tamanho por defeito. Ctrl+Clique para manter o tamanho actual como o por defeito
STR_TOOLTIP_DEFSIZE :{BLACK}Redimensionar a janela para o tamanho padrão. Ctrl+Clique para guardar o tamanho atual como padrão
STR_TOOLTIP_STICKY :{BLACK}Marcar esta janela como não-encerrável pela tecla 'Fechar Todas as Janelas'. Ctrl+Clique para tambem salvar o estado como por omissão
STR_TOOLTIP_RESIZE :{BLACK}Clique e arraste para reajustar janela
STR_TOOLTIP_TOGGLE_LARGE_SMALL_WINDOW :{BLACK}Alternar entre janela grande/pequena
@@ -1007,6 +1007,9 @@ STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Acelera
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Marque esta caixa para permitir que o OpenTTD tente usar a aceleração por hardware. Uma configuração alterada só será aplicada após reiniciar o jogo
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}A definição só terá efeito após reiniciar o jogo
STR_GAME_OPTIONS_VIDEO_VSYNC :{BLACK}VSync
STR_GAME_OPTIONS_VIDEO_VSYNC_TOOLTIP :{BLACK}Marque esta caixa para ativar "V-Sync" no ecrã. Uma configuração alterada só terá efeito quando reiniciar o jogo. Só funciona com a aceleração por hardware ativada
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Tamanho interface
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Seleccionar tamanho do elemento de interface a usar
@@ -1266,7 +1269,7 @@ STR_CONFIG_SETTING_SHOWFINANCES_HELPTEXT :Se ativado, os
STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT :Novas ordens são 'sem parar' por predefinição: {STRING}
STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT_HELPTEXT :Normalmente, um veículo para em cada estação por onde passa. Ao ativar esta configuração, um veículo irá passar por todas as estações no seu percurso, parando apenas no destino final. Esta opção só tem efeito para novas rotas, mas as rotas existentes podem ser alteradas para funcionarem de forma igual.
STR_CONFIG_SETTING_STOP_LOCATION :Ordens novas do comboio param {STRING} da plataforma
STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Local onde um combóio parará na plataforma por omissão. A opção 'extremo mais próximo' significa perto do ponto de entrada, 'meio' significa no meio da plataforma e 'extremo mais distante' significa o mais distante possível do ponto de entrada. Esta opção apenas afecta o valor por omissão para novas encomendas. Encomendas individuais podem utilizar qualquer uma das opções independentemente desta
STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Local de paragem do comboio nas plataformas por omissão. A opção 'extremo mais próximo' significa perto do ponto de entrada, 'meio' significa no meio da plataforma e 'extremo mais distante' significa o mais distante possível do ponto de entrada. Esta opção apenas afeta o valor por omissão para novas ordens. Ordens individuais podem utilizar qualquer uma das opções independentemente desta
STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :no extremo perto
STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :no meio
STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :no extremo longe
@@ -1313,7 +1316,7 @@ STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS_HELPTEXT :Activar esta pr
STR_CONFIG_SETTING_WARN_LOST_VEHICLE :Avisar se o veículo está perdido: {STRING}
STR_CONFIG_SETTING_WARN_LOST_VEHICLE_HELPTEXT :Mostrar mensagens sobre veículos que não conseguem encontrar o caminho para o seu próximo destino.
STR_CONFIG_SETTING_ORDER_REVIEW :Analisar ordens dos veículos: {STRING}
STR_CONFIG_SETTING_ORDER_REVIEW_HELPTEXT :Quando activo, as encomendas dos veículos são periodicamente revistas e algumas falhas óbvias são anunciadas através de notícias, quando detectadas
STR_CONFIG_SETTING_ORDER_REVIEW_HELPTEXT :Quando ativo, as ordens dos veículos são periodicamente revistas e algumas falhas óbvias são anunciadas através de notícias, quando detetadas
STR_CONFIG_SETTING_ORDER_REVIEW_OFF :Não
STR_CONFIG_SETTING_ORDER_REVIEW_EXDEPOT :Sim, mas excluir veículos parados
STR_CONFIG_SETTING_ORDER_REVIEW_ON :De todos os veículos
@@ -1904,11 +1907,11 @@ STR_LIVERY_SECONDARY_TOOLTIP :{BLACK}Seleccio
STR_LIVERY_PANEL_TOOLTIP :{BLACK}Seleccione o esquema de cores a alterar, ou esquemas múltiplos utilizando a tecla Ctrl com o botão esquerdo do rato. Marque a caixa para comutar a utilização do esquema de cores
STR_LIVERY_DEFAULT :Estampagem Padrão
STR_LIVERY_STEAM :Motor a Vapor
STR_LIVERY_DIESEL :Motor Diesel
STR_LIVERY_ELECTRIC :Motor Eléctrico
STR_LIVERY_MONORAIL :Motor Monocarril
STR_LIVERY_MAGLEV :Motor Maglev (Levitação Magnética)
STR_LIVERY_STEAM :Locomotivas a Vapor
STR_LIVERY_DIESEL :Locomotivas Diesel
STR_LIVERY_ELECTRIC :Locomotivas Eléctricas
STR_LIVERY_MONORAIL :Motoras Monocarril
STR_LIVERY_MAGLEV :Motoras Maglev (Levitação Magnética)
STR_LIVERY_DMU :DMU
STR_LIVERY_EMU :EMU
STR_LIVERY_PASSENGER_WAGON_STEAM :Carruagem de Passageiros (Vapor)
@@ -1917,8 +1920,8 @@ STR_LIVERY_PASSENGER_WAGON_ELECTRIC :Carruagem de Pa
STR_LIVERY_PASSENGER_WAGON_MONORAIL :Carruagem de Passageiros (Monocarril)
STR_LIVERY_PASSENGER_WAGON_MAGLEV :Carruagem de Passageiros (Maglev)
STR_LIVERY_FREIGHT_WAGON :Vagão de Carga
STR_LIVERY_BUS :Autocarro
STR_LIVERY_TRUCK :Veículo de Mercadorias
STR_LIVERY_BUS :Autocarros
STR_LIVERY_TRUCK :Camiões
STR_LIVERY_PASSENGER_SHIP :Navio de passageiros
STR_LIVERY_FREIGHT_SHIP :Navio cargueiro
STR_LIVERY_HELICOPTER :Helicóptero
@@ -2442,7 +2445,7 @@ STR_STATION_BUILD_DRAG_DROP_TOOLTIP :{BLACK}Construi
STR_STATION_BUILD_STATION_CLASS_TOOLTIP :{BLACK}Escolher a classe da estação a mostrar
STR_STATION_BUILD_STATION_TYPE_TOOLTIP :{BLACK}Escolher o tipo de estação a construir
STR_STATION_CLASS_DFLT :Estação por defeito
STR_STATION_CLASS_DFLT :Estação padrão
STR_STATION_CLASS_WAYP :Pontos de passagem
# Signal window
@@ -2872,7 +2875,7 @@ STR_SAVELOAD_SAVE_SCENARIO :{WHITE}Guardar
STR_SAVELOAD_LOAD_SCENARIO :{WHITE}Abrir Cenário
STR_SAVELOAD_LOAD_HEIGHTMAP :{WHITE}Carregar mapa de alturas
STR_SAVELOAD_SAVE_HEIGHTMAP :{WHITE}Guardar mapa de alturas
STR_SAVELOAD_HOME_BUTTON :{BLACK}Carregue aqui para saltar para a directoria de gravação/carregamento por defeito
STR_SAVELOAD_HOME_BUTTON :{BLACK}Clique aqui para saltar para o diretório atual de gravação/carregamento padrão
STR_SAVELOAD_BYTES_FREE :{BLACK}{BYTES} livres
STR_SAVELOAD_LIST_TOOLTIP :{BLACK}Lista de unidades, directorias e ficheiros de jogos guardados
STR_SAVELOAD_EDITBOX_TOOLTIP :{BLACK}Nome escolhido para guardar o jogo
@@ -3897,11 +3900,11 @@ STR_VEHICLE_INFO_AGE_RUNNING_COST_YR :{BLACK}Idade: {
STR_VEHICLE_INFO_AGE :{COMMA} ano{P "" s} ({COMMA})
STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} ano{P "" s} ({COMMA})
STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Máx. velocidade: {LTBLUE}{VELOCITY}
STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Velocidade máx.: {LTBLUE}{VELOCITY}
STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Vel. máxima: {LTBLUE}{VELOCITY} {BLACK}Tipo de Aeronave: {LTBLUE}{STRING}
STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Velocidade Máx.: {LTBLUE}{VELOCITY} {BLACK}Tipo de Aeronave: {LTBLUE}{STRING} {BLACK}Alcance: {LTBLUE}{COMMA} quadrados
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potência: {LTBLUE}{POWER}{BLACK} Max. velocidade: {LTBLUE}{VELOCITY}
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potência: {LTBLUE}{POWER}{BLACK} Máx. velocidade: {LTBLUE}{VELOCITY} {BLACK}Máx. E.T.: {LTBLUE}{FORCE}
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potência: {LTBLUE}{POWER}{BLACK} Velocidade máx.: {LTBLUE}{VELOCITY}
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potência: {LTBLUE}{POWER}{BLACK} Velocidade máx.: {LTBLUE}{VELOCITY} {BLACK}Tração Máx.: {LTBLUE}{FORCE}
STR_VEHICLE_INFO_PROFIT_THIS_YEAR_LAST_YEAR :{BLACK}Lucro neste ano: {LTBLUE}{CURRENCY_LONG} (último ano: {CURRENCY_LONG})
STR_VEHICLE_INFO_RELIABILITY_BREAKDOWNS :{BLACK}Fiabilidade: {LTBLUE}{COMMA}% {BLACK}Avarias desde o último serviço: {LTBLUE}{COMMA}
@@ -3920,7 +3923,7 @@ STR_VEHICLE_DETAILS_INCREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK}Aumentar
STR_VEHICLE_DETAILS_DECREASE_SERVICING_INTERVAL_TOOLTIP :{BLACK}Diminuir intervalo de serviço por 10. Ctrl+Clique diminui o intervalo de serviço por 5
STR_SERVICE_INTERVAL_DROPDOWN_TOOLTIP :{BLACK}Alterar tipo de intervalo de manutenção
STR_VEHICLE_DETAILS_DEFAULT :Por Defeito
STR_VEHICLE_DETAILS_DEFAULT :Padrão
STR_VEHICLE_DETAILS_DAYS :Dias
STR_VEHICLE_DETAILS_PERCENT :Percentagem

File diff suppressed because it is too large Load Diff

View File

@@ -1148,9 +1148,12 @@ STR_GAME_OPTIONS_RESOLUTION_OTHER :Другое
STR_GAME_OPTIONS_RESOLUTION_ITEM :{NUM}x{NUM}
STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Аппаратное ускорение
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Поставьте отметку, чтобы включить аппаратное ускорение в OpenTTD. Но для этого игру придётся перезапустить.
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Нажмите здесь, чтобы включить/выключить аппаратное ускорение в OpenTTD. После этого игру потребуется перезапустить.
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}Эта настройка будет применена только после перезапуска игры
STR_GAME_OPTIONS_VIDEO_VSYNC :{BLACK}Вертикальная синхронизация
STR_GAME_OPTIONS_VIDEO_VSYNC_TOOLTIP :{BLACK}Нажмите здесь, чтобы включить/выключить вертикальную синхронизацию. После этого игру потребуется перезапустить. Работает только при включённом аппаратном ускорении.
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Размер элементов интерфейса
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Выберите размер элементов интерфейса
@@ -1263,7 +1266,7 @@ STR_DISASTER_NONE :нет
STR_DISASTER_REDUCED :сниженная
STR_DISASTER_NORMAL :обычная
STR_SUBSIDY_X1_5 :x1.5
STR_SUBSIDY_X1_5 :x1,5
STR_SUBSIDY_X2 :x2
STR_SUBSIDY_X3 :x3
STR_SUBSIDY_X4 :x4
@@ -1273,6 +1276,8 @@ STR_TERRAIN_TYPE_FLAT :Равнинн
STR_TERRAIN_TYPE_HILLY :Холмистый
STR_TERRAIN_TYPE_MOUNTAINOUS :Преимущественно горный
STR_TERRAIN_TYPE_ALPINIST :Исключительно горный
STR_TERRAIN_TYPE_CUSTOM :Установить высоту вручную
STR_TERRAIN_TYPE_CUSTOM_VALUE :Установленная высота ({NUM})
STR_CITY_APPROVAL_PERMISSIVE :дозволяющее
STR_CITY_APPROVAL_TOLERANT :терпимое
@@ -1356,6 +1361,10 @@ STR_CONFIG_SETTING_DISASTERS_HELPTEXT :Включен
STR_CONFIG_SETTING_CITY_APPROVAL :Отношение городского совета к реструктуризации окрестностей: {STRING}
STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :Выберите уровень влияния шума и загрязнения окружающей среды компаниями на их рейтинг в городах и возможность дальнейшего строительства около городов
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT :Максимальная высота объектов на карте: {STRING}
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_HELPTEXT :Установить максимальное значение высоты гор на карте. «(Автовыбор)» подберёт приемлемое значение после создания ландшафта.
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_VALUE :{NUM}
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_AUTO :(автовыбор)
STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}Невозможно изменить максимальную высоту. На карте есть горы выше этого значения.
STR_CONFIG_SETTING_AUTOSLOPE :Разрешить изм. ландшафта под зданиями, дорогами и т. д. (автоспуски): {STRING}
STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :Разрешить изменение ландшафта под домами и дорогами, не требуя их сноса
@@ -1500,8 +1509,13 @@ STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Выберит
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Макс. расстояние от края карты до предприятий нефтяной индустрии: {STRING}
STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Эта настройка ограничивает расстояние от края карты до нефтяных платформ и нефтеперерабатывающих заводов. Таким образом, на краях карты, оканчивающихся водой, они будут строиться у берега. На картах размером более 256 это значение будет соответственно увеличено.
STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Высота снеговой линии: {STRING}
STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Укажите, на какой высоте в субарктическом климате устанавливается снеговой покров. Наличие снега влияет на расстановку предприятий и на условия роста городов.
STR_CONFIG_SETTING_DESERT_COVERAGE_HELPTEXT :Укажите приблизительное количество пустыни на тропическом ландшафте. Пустыня также влияет на промышленное производство. Используется только во время создания карты
STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Это значение определяет, на какой высоте в субарктическом климате устанавливается снеговой покров. Наличие снега влияет на расстановку предприятий и на условия роста городов.{}Значение может быть установлено только в редакторе сценариев; иначе оно рассчитывается в зависимости от значения «снежного покрытия».
STR_CONFIG_SETTING_SNOW_COVERAGE :Снежное покрытие: {STRING}
STR_CONFIG_SETTING_SNOW_COVERAGE_HELPTEXT :Это значение определяет примерную относительную площадь суши, покрытой снегом в субарктическом климате.Наличие снега влияет на расстановку предприятий и на условия роста городов.{}Используется только при создании карты. Земля чуть выше уровня моря никогда не покрывается снегом.
STR_CONFIG_SETTING_SNOW_COVERAGE_VALUE :{NUM}%
STR_CONFIG_SETTING_DESERT_COVERAGE :Песчаное покрытие: {STRING}
STR_CONFIG_SETTING_DESERT_COVERAGE_HELPTEXT :Это значение определяет примерную относительную площадь суши, покрытой песком в тропическом климате. Пустыни влияют на расположение предприятий.{}Используется только при создании карты.
STR_CONFIG_SETTING_DESERT_COVERAGE_VALUE :{NUM}%
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Грубость ландшафта: {STRING}
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(Только для TerraGenesis){}Выберите количество гор и холмов на карте. На гладком ландшафте холмов немного и они более пологие. На грубом - много гор, и ландшафт может показаться слишком однообразным.
STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Очень гладкий
@@ -3066,6 +3080,17 @@ STR_MAPGEN_BY :{BLACK}×
STR_MAPGEN_NUMBER_OF_TOWNS :{BLACK}Количество городов:
STR_MAPGEN_DATE :{BLACK}Дата:
STR_MAPGEN_NUMBER_OF_INDUSTRIES :{BLACK}Кол-во предпр.:
STR_MAPGEN_HEIGHTMAP_HEIGHT :{BLACK}Высочайшая вершина:
STR_MAPGEN_HEIGHTMAP_HEIGHT_UP :{BLACK}Увеличить максимальную высоту гор на карте на 1
STR_MAPGEN_HEIGHTMAP_HEIGHT_DOWN :{BLACK}Уменьшить максимальную высоту гор на карте на 1
STR_MAPGEN_SNOW_COVERAGE :{BLACK}Снежное покрытие:
STR_MAPGEN_SNOW_COVERAGE_UP :{BLACK}Увеличить площадь снежного покрытия на 10%
STR_MAPGEN_SNOW_COVERAGE_DOWN :{BLACK}Уменьшить площадь снежного покрытия на 10%
STR_MAPGEN_SNOW_COVERAGE_TEXT :{BLACK}{NUM}%
STR_MAPGEN_DESERT_COVERAGE :{BLACK}Песчаное покрытие:
STR_MAPGEN_DESERT_COVERAGE_UP :{BLACK}Увеличить площадь песчаного покрытия на 10%
STR_MAPGEN_DESERT_COVERAGE_DOWN :{BLACK}Уменьшить площадь песчаного покрытия на 10%
STR_MAPGEN_DESERT_COVERAGE_TEXT :{BLACK}{NUM}%
STR_MAPGEN_LAND_GENERATOR :{BLACK}Генератор ландшафта:
STR_MAPGEN_TERRAIN_TYPE :{BLACK}Тип ландшафта:
STR_MAPGEN_QUANTITY_OF_SEA_LAKES :{BLACK}Количество морей и озёр:
@@ -3091,7 +3116,10 @@ STR_MAPGEN_HEIGHTMAP_NAME :{BLACK}Назв
STR_MAPGEN_HEIGHTMAP_SIZE_LABEL :{BLACK}Размер:
STR_MAPGEN_HEIGHTMAP_SIZE :{ORANGE}{NUM} × {NUM}
STR_MAPGEN_TERRAIN_TYPE_QUERY_CAPT :{WHITE}Максимальная высота
STR_MAPGEN_HEIGHTMAP_HEIGHT_QUERY_CAPT :{WHITE}Cамая высокая вершина
STR_MAPGEN_SNOW_COVERAGE_QUERY_CAPT :{WHITE}Снежное покрытие (в %)
STR_MAPGEN_DESERT_COVERAGE_QUERY_CAPT :{WHITE}Песчаное покрытие (в %)
STR_MAPGEN_START_DATE_QUERY_CAPT :{WHITE}Изменить год начала игры
# SE Map generation
@@ -4520,6 +4548,7 @@ STR_WARNING_FALLBACK_SOUNDSET :{WHITE}Теку
STR_WARNING_SCREENSHOT_SIZE_CAPTION :{WHITE}Огромный снимок экрана
STR_WARNING_SCREENSHOT_SIZE_MESSAGE :{YELLOW}Снимок экрана будет иметь размер {COMMA}{NBSP}х{NBSP}{COMMA}{NBSP}пиксел{P ь я ей}. Его создание займёт некоторое время. Продолжить?
STR_MESSAGE_HEIGHTMAP_SUCCESSFULLY :{WHITE}Карта высот успешно сохранена под именем «{STRING}». Максимальная высота - {NUM}.
STR_MESSAGE_SCREENSHOT_SUCCESSFULLY :{WHITE}Снимок экрана сохранён под именем «{STRING}»
STR_ERROR_SCREENSHOT_FAILED :{WHITE}Не удалось сделать снимок экрана

View File

@@ -1201,6 +1201,7 @@ STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Hardvers
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Označavanje ove opcije čini da OpenTTD pokuša da koristi hardversko ubrzanje. Promena ovog podešavanja će imati efekta tek nakon ponvnog pokretanja igre
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}Podešavanje će imati efekta tek nakon ponovnog pokretanja igre
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Veličina interfejsa
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Izaberite većinu elementa koja će se koristiti

View File

@@ -1005,6 +1005,7 @@ STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}硬件
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}点击该复选框,让 OpenTTD 尝试使用硬件加速。修改后的设置将在游戏重启后生效
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}修改后的设置将在游戏重启后生效
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}界面大小
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}选择使用的界面元素大小
@@ -1021,6 +1022,7 @@ STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_NORMAL :正常
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_2X_ZOOM :两倍大小
STR_GAME_OPTIONS_FONT_ZOOM_DROPDOWN_4X_ZOOM :四倍大小
STR_GAME_OPTIONS_GRAPHICS :{BLACK}图像
STR_GAME_OPTIONS_REFRESH_RATE :{BLACK}显示刷新率
STR_GAME_OPTIONS_REFRESH_RATE_TOOLTIP :{BLACK}选择需要的屏幕刷新率
@@ -1204,6 +1206,7 @@ STR_CONFIG_SETTING_CITY_APPROVAL :地区政府对
STR_CONFIG_SETTING_CITY_APPROVAL_HELPTEXT :设置相关参数以决定各公司造成的噪音及环境破坏时,各城镇对该公司的评价及未来区域建设的影响。
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT :地图高度限制:{STRING}
STR_CONFIG_SETTING_MAP_HEIGHT_LIMIT_VALUE :{NUM}
STR_CONFIG_SETTING_TOO_HIGH_MOUNTAIN :{WHITE}您不能把最高地面高度设为这个值,因为地图上至少有一座山丘的高度比这个值还大
STR_CONFIG_SETTING_AUTOSLOPE :允许在建筑、轨道等下方改变地形(自动斜坡): {STRING}
STR_CONFIG_SETTING_AUTOSLOPE_HELPTEXT :允许在建筑和轨道下方改变地形而不需要拆除他们
@@ -1468,6 +1471,9 @@ STR_CONFIG_SETTING_PERSISTENT_BUILDINGTOOLS_HELPTEXT :“打开”时
STR_CONFIG_SETTING_EXPENSES_LAYOUT :企业财政窗口中的组群支出:{STRING}
STR_CONFIG_SETTING_EXPENSES_LAYOUT_HELPTEXT :“打开”时公司财务报表将分组显示
STR_CONFIG_SETTING_AUTO_REMOVE_SIGNALS :建造铁路时自动移除信号灯:{STRING}
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT :快进速度上限:{STRING}
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_VAL :{NUM}% 正常游戏速度
STR_CONFIG_SETTING_FAST_FORWARD_SPEED_LIMIT_ZERO :无限制(在您的计算机能允许的范围内)
STR_CONFIG_SETTING_SOUND_TICKER :产业新闻: {STRING}
STR_CONFIG_SETTING_SOUND_TICKER_HELPTEXT :每月初产业新闻音效
@@ -2572,6 +2578,7 @@ STR_TREES_RANDOM_TYPE :{BLACK}随机
STR_TREES_RANDOM_TYPE_TOOLTIP :{BLACK}种植随机类型的树木,按住 Shift 键可以显示所需资金
STR_TREES_RANDOM_TREES_BUTTON :{BLACK}随机树木
STR_TREES_RANDOM_TREES_TOOLTIP :{BLACK}随机地种植一些树木
STR_TREES_MODE_FOREST_SM_BUTTON :{BLACK}树丛
STR_TREES_MODE_FOREST_LG_BUTTON :{BLACK}森林
# Land generation window (SE)
@@ -3787,6 +3794,7 @@ STR_REPLACE_REMOVE_WAGON_HELP :{BLACK}当车
STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE}
STR_VEHICLE_VIEW_TRAIN_CENTER_TOOLTIP :{BLACK}将主视角中心移动到列车所在的位置。双击将会在主视角中跟踪列车。单击的同时按住Ctrl会在新视点中显示列车位置
STR_VEHICLE_VIEW_ROAD_VEHICLE_CENTER_TOOLTIP :{BLACK} 将主视角中心移动到车辆所在的位置。双击将会在主视角中跟踪车辆。单击的同时按住 Ctrl 会在新视点中显示车辆位置
STR_VEHICLE_VIEW_SHIP_CENTER_TOOLTIP :{BLACK}将主视角中心移动到船只所在的位置。双击将会在主视角中跟踪船只。单击的同时按住Ctrl会在新视点中显示船只位置
STR_VEHICLE_VIEW_AIRCRAFT_CENTER_TOOLTIP :{BLACK}将主视角中心移动到飞机所在的位置。双击将会在主视角中跟踪飞机。单击的同时按住Ctrl会在新视点中显示飞机位置
@@ -3957,8 +3965,8 @@ STR_ORDERS_END_OF_SHARED_ORDERS :- - 共享调
STR_ORDER_NON_STOP :{BLACK}不停车
STR_ORDER_GO_TO :前往
STR_ORDER_GO_NON_STOP_TO :不停车前往
STR_ORDER_GO_VIA :通过
STR_ORDER_GO_NON_STOP_VIA :前往不停车
STR_ORDER_GO_VIA :经由
STR_ORDER_GO_NON_STOP_VIA :经由(不停车
STR_ORDER_TOOLTIP_NON_STOP :{BLACK}改变当前选中车站停车时的执行动作
STR_ORDER_TOGGLE_FULL_LOAD :{BLACK}装满任意货物
@@ -4375,6 +4383,7 @@ STR_ERROR_LOAN_ALREADY_REPAYED :{WHITE}没有
STR_ERROR_CURRENCY_REQUIRED :{WHITE}需要{CURRENCY_LONG}
STR_ERROR_CAN_T_REPAY_LOAN :{WHITE}不能偿还贷款……
STR_ERROR_INSUFFICIENT_FUNDS :{WHITE}不能将银行的贷款送给别人……
STR_ERROR_CAN_T_GIVE_MONEY :{WHITE}不能给予该公司资金……
STR_ERROR_CAN_T_BUY_COMPANY :{WHITE}不能收购公司……
STR_ERROR_CAN_T_BUILD_COMPANY_HEADQUARTERS :{WHITE}不能设置公司总部
STR_ERROR_CAN_T_BUY_25_SHARE_IN_THIS :{WHITE}不能购买此公司的股份……
@@ -4650,7 +4659,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}在{DATE
# Specific vehicle errors
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}不能让列车冒险通过信号...
STR_ERROR_CAN_T_REVERSE_DIRECTION_TRAIN :{WHITE}不能命令列车调头...
STR_ERROR_TRAIN_START_NO_POWER :有接触网!
STR_ERROR_TRAIN_START_NO_POWER :有接触网!
STR_ERROR_CAN_T_MAKE_ROAD_VEHICLE_TURN :{WHITE}车辆无法调头...

View File

@@ -1074,6 +1074,7 @@ STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Hardvér
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Zaškrtnutím políčka dovolíte, aby sa OpenTTD pokúsilo použiť hardvérové zrýchlenie. Zmena nastavenia sa uplatní až po reštartovaní hry
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}Nastavenie sa uplatní až po reštartovaní hry
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Veľkosť rozhrania
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Výber veľkosti prvkov rozhrania

View File

@@ -1123,6 +1123,7 @@ STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Izberi l
STR_GAME_OPTIONS_RESOLUTION_OTHER :drugo
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Velikost vmesnika
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Izberi velikost elementa vmesnika

View File

@@ -119,7 +119,7 @@ STR_QUANTITY_SUGAR :{WEIGHT_LONG} d
STR_QUANTITY_TOYS :{COMMA}{NBSP}juguete{P "" s}
STR_QUANTITY_SWEETS :{COMMA}{NBSP}bolsa{P "" s} de caramelos
STR_QUANTITY_COLA :{VOLUME_LONG} de cola
STR_QUANTITY_CANDYFLOSS :{WEIGHT_LONG} de algodón dulce
STR_QUANTITY_CANDYFLOSS :{WEIGHT_LONG} de algodón de azúcar
STR_QUANTITY_BUBBLES :{COMMA} burbuja{P "" s}
STR_QUANTITY_TOFFEE :{WEIGHT_LONG} de tofe{P "" s}
STR_QUANTITY_BATTERIES :{COMMA} pila{P "" s}
@@ -315,7 +315,7 @@ STR_SORT_BY_RANGE :Alcance
STR_SORT_BY_POPULATION :Población
STR_SORT_BY_RATING :Calificación
STR_SORT_BY_NUM_VEHICLES :Número de vehículos
STR_SORT_BY_TOTAL_PROFIT_LAST_YEAR :Beneficios total del último año
STR_SORT_BY_TOTAL_PROFIT_LAST_YEAR :Beneficio total del último año
STR_SORT_BY_TOTAL_PROFIT_THIS_YEAR :Beneficio total este año
STR_SORT_BY_AVERAGE_PROFIT_LAST_YEAR :Beneficio medio el año pasado
STR_SORT_BY_AVERAGE_PROFIT_THIS_YEAR :Beneficio medio este año
@@ -1007,6 +1007,9 @@ STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Acelerac
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Marca esta casilla para permitir que OpenTTD intente usar aceleración por hardware. El cambio de configuración sólo tendrá efecto después de reiniciar el juego
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}El ajuste sólo tendrá efecto después de reiniciar el juego
STR_GAME_OPTIONS_VIDEO_VSYNC :{BLACK}Sincronización vertical
STR_GAME_OPTIONS_VIDEO_VSYNC_TOOLTIP :{BLACK}Marca esta casilla para activar la sincronización vertical en la pantalla. El cambio sólo se aplicará después de reiniciar el juego. Sólo funciona si la aceleración por hardware está activada.
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Tamaño de la interfaz
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Selecciona el tamaño de los elementos de la interfaz a usar
@@ -1087,11 +1090,11 @@ STR_NUM_CUSTOM :Personalizado
STR_NUM_CUSTOM_NUMBER :Personalizado ({NUM})
STR_VARIETY_NONE :Ninguna
STR_VARIETY_VERY_LOW :Muy baja
STR_VARIETY_VERY_LOW :Muy Baja
STR_VARIETY_LOW :Baja
STR_VARIETY_MEDIUM :Media
STR_VARIETY_HIGH :Alta
STR_VARIETY_VERY_HIGH :Muy alta
STR_VARIETY_VERY_HIGH :Muy Alta
STR_AI_SPEED_VERY_SLOW :Muy lenta
STR_AI_SPEED_SLOW :Lenta
@@ -1099,7 +1102,7 @@ STR_AI_SPEED_MEDIUM :Media
STR_AI_SPEED_FAST :Rápida
STR_AI_SPEED_VERY_FAST :Muy rápida
STR_SEA_LEVEL_VERY_LOW :Muy bajo
STR_SEA_LEVEL_VERY_LOW :Muy Bajo
STR_SEA_LEVEL_LOW :Bajo
STR_SEA_LEVEL_MEDIUM :Medio
STR_SEA_LEVEL_HIGH :Alto
@@ -1730,7 +1733,7 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_GAMEUNITS :Unidad del jueg
STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER :Unidad de potencia de vehículos: {STRING}
STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_HELPTEXT :Cada vez que se muestre la potencia de un vehículo en la interfaz de usuario, se empleará la unidad seleccionada
STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_IMPERIAL :Imperial (cv)
STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_IMPERIAL :Imperial (hp)
STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_METRIC :Métrico (cv)
STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_SI :SI (kW)
@@ -3220,12 +3223,12 @@ STR_LOCAL_AUTHORITY_ACTION_NEW_BUILDINGS :Financiar la co
STR_LOCAL_AUTHORITY_ACTION_EXCLUSIVE_TRANSPORT :Comprar derechos de transporte exclusivos
STR_LOCAL_AUTHORITY_ACTION_BRIBE :Sobornar a la autoridad local
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Iniciar una pequeña campaña publicitaria local para atraer más pasajeros y carga a sus servicios de transporte.{}Proporciona un incremento temporal en la calificación de las estaciones en un radio pequeño alrededor del centro del municipio.{}Coste: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Iniciar una campaña publicitaria local mediana para atraer más pasajeros y carga a sus servicios de transporte.{}Proporciona un incremento temporal en la calificación de las estaciones en un radio mediano alrededor del centro del municipio.{}Coste: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Iniciar una gran campaña publicitaria local para atraer más pasajeros y carga a sus servicios de transporte.{}Proporciona un incremento temporal en la calificación de las estaciones en un radio grande alrededor del centro del municipio.{}Coste: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Pagar la reconstrucción de las carreteras locales.{}Provoca considerables complicaciones de tráfico durante 6 meses.{}Coste: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_SMALL_ADVERTISING :{YELLOW}Iniciar una campaña publicitaria local pequeña para atraer más pasajeros y carga a sus servicios de transporte.{}Proporciona un incremento temporal en la calificación de las estaciones en un radio pequeño alrededor del centro del municipio.{}Coste: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_MEDIUM_ADVERTISING :{YELLOW}Inicia una campaña publicitaria local mediana para atraer más pasajeros y carga a sus servicios de transporte.{}Proporciona un incremento temporal en la calificación de las estaciones en un radio mediano alrededor del centro del municipio.{}Coste: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_LARGE_ADVERTISING :{YELLOW}Iniciar una campaña publicitaria local grande para atraer más pasajeros y carga a sus servicios de transporte.{}Proporciona un incremento temporal en la calificación de las estaciones en un radio grande alrededor del centro del municipio.{}Coste: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_ROAD_RECONSTRUCTION :{YELLOW}Paga la reconstrucción de las carreteras locales.{}Provoca considerables complicaciones de tráfico durante 6 meses.{}Coste: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_STATUE_OF_COMPANY :{YELLOW}Construye una estatua en honor a su empresa.{}Proporciona un incremento permanente en la calificación de las estaciones de este municipio.{}Coste: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Pagar la construcción de nuevos edificios comerciales en el municipio.{}Proporciona un incremento temporal en el crecimiento del municipio.{}Coste: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_NEW_BUILDINGS :{YELLOW}Paga la construcción de nuevos edificios comerciales en el municipio.{}Proporciona un incremento temporal en el crecimiento del municipio.{}Coste: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_EXCLUSIVE_TRANSPORT :{YELLOW}Compra derechos de transporte exclusivos en este municipio durante un año.{}Las autoridades no permitirán el uso de las estaciones de la competencia.{}Coste: {CURRENCY_LONG}
STR_LOCAL_AUTHORITY_ACTION_TOOLTIP_BRIBE :{YELLOW}Soborna a las autoridades locales para aumentar su calificación, con el riesgo de sufrir una penalización severa si es descubierto.{}Coste: {CURRENCY_LONG}

View File

@@ -1007,6 +1007,7 @@ STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Acelerac
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Activar esta casilla para intentar emplear la aceleración por hardware. Este cambio solo tiene efecto tras reiniciar el juego
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}Esta configuración solo tendrá efecto después de reiniciar el juego
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Tamaño de la interfaz
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Elegir el tamaño de los elementos de la interfaz

View File

@@ -1006,6 +1006,7 @@ STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Hårdvar
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Markera denna rutan för att tillåta OpenTTD att försöka använda hårdvaruacceleration. Ändrad inställning kommer bara att gälla efter omstart.
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}Inställningen kommer bara att gälla efter omstart av spelet
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Gränssnittstorlek
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Välj vilken gränssnittsstorlek som ska användas

View File

@@ -962,6 +962,8 @@ STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}OpenTTD-
STR_GAME_OPTIONS_RESOLUTION :{BLACK}திரையின் அளவு
STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}திரை அளவினைத் தேர்ந்தெடுக்கவும்
STR_GAME_OPTIONS_RESOLUTION_OTHER :மற்றவை
STR_GAME_OPTIONS_RESOLUTION_ITEM :{NUM}x{NUM}
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}இடைமுக அளவு
@@ -1696,6 +1698,7 @@ STR_FACE_LOAD :{BLACK}ஏற
STR_FACE_LOAD_TOOLTIP :{BLACK}பிடித்த முகத்தினை பதிவேற்று
STR_FACE_LOAD_DONE :{WHITE}உங்களுடைய பிடித்த முகம் OpenTTD உள்ளமைவு கோப்பிலிருந்து ஏற்றப்பட்டுள்ளது
STR_FACE_FACECODE :{BLACK}விளையாடுபவர் முக எண்
STR_FACE_FACECODE_TOOLTIP :{BLACK}நிறுவனரின் முக எண்னை பார் மற்றும்/அல்லது அமை
STR_FACE_FACECODE_CAPTION :{WHITE}நிறுவனரின் முக எண்னை பார் அல்லது அமை
STR_FACE_FACECODE_SET :{WHITE}புதிய முக எண் குறி அமைக்கப்பட்டது
STR_FACE_SAVE :{BLACK}சேமி
@@ -2117,6 +2120,7 @@ STR_RAIL_TOOLBAR_MAGLEV_CONSTRUCTION_CAPTION :மேக்ல
STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}இரயில்வே இருப்புப் பாதையினை கட்டவும். Shift அழுத்தினால் கட்டுமான/செலவு மதிப்பீடு காட்டப்படும்
STR_RAIL_TOOLBAR_TOOLTIP_BUILD_TRAIN_DEPOT_FOR_BUILDING :{BLACK}இரயில் பணிமனையினைக் (இரயில்களை வாங்க மற்றும் பழுதுபார்க்க) கட்டவும். Shift அழுத்தினால் கட்டுமான/செலவு மதிப்பீடு காட்டப்படும்
STR_RAIL_TOOLBAR_TOOLTIP_CONVERT_RAIL_TO_WAYPOINT :{BLACK}இரயில் தடத்தை வழிப்புள்ளியாக மாற்றும். வழிப்புள்ளிகளை இணைக்க Ctrl-ஐ அழுத்தவும். கட்டுமான/செலவு மதிப்பீட்டினை காட்டShift-ஐ அழுத்தவும்.
STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_STATION :{BLACK}இரயில் நிலையத்தினை கட்டவும். Ctrl அழுத்தினால் நிலையங்களினை இணைக்கலாம். Shift அழுத்தினால் கட்டுமான/செலவு மதிப்பீடு காட்டப்படும்
STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_SIGNALS :{BLACK}இரயில்வே சிக்னல்களைக் கட்டவும். Ctrl அழுத்தினால் சிக்னல் வகைகளை மாற்றலாம்{}இரயில் தடத்தின்மேல் இழுத்தினால் சிக்னல்களை அமைக்கலாம். Ctrl அழுத்தினால் அடுத்த எணைப்பு வரை சிக்னல்கள் அமைக்கப்படும்{}Ctrl+Click அழுத்தினால் சிக்னல் தேர்ந்தெடுக்கும் திரை தெரியும்/மரையும். Shift அழுத்தினால் கட்டுமான/செலவு மதிப்பீடு காட்டப்படும்
STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_BRIDGE :{BLACK}இரயில்வே பாலத்தினை கட்டவும். Shift அழுத்தினால் கட்டுமான/செலவு மதிப்பீடு காட்டப்படும்

View File

@@ -960,6 +960,7 @@ STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}เล
STR_GAME_OPTIONS_RESOLUTION_OTHER :อื่นๆ
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}ขนาดของแผงควบคุม

View File

@@ -974,6 +974,7 @@ STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}選擇
STR_GAME_OPTIONS_RESOLUTION_OTHER :其它
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}介面大小
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}選擇使用的介面元素大小

View File

@@ -993,6 +993,7 @@ STR_GAME_OPTIONS_RESOLUTION_OTHER :diğer
STR_GAME_OPTIONS_RESOLUTION_ITEM :{NUM}x{NUM}
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Arayüz boyutu
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Kullanmak üzere arayüz bileşen boyutunu seçin

View File

@@ -1134,6 +1134,7 @@ STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Прис
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Увімкнутий прапорець дозволить використання грою прискорення апаратного забезпечення. Налаштування запрацює тільки після перезапуску гри
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}Налаштування запрацює тільки після перезапуску гри
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Розмір інтерфейсу
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Оберіть розмір елементів інтерфейсу

View File

@@ -520,6 +520,7 @@ STR_GAME_OPTIONS_RESOLUTION_OTHER :расна
# Custom currency window

View File

@@ -969,6 +969,7 @@ STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Selektea
STR_GAME_OPTIONS_RESOLUTION_OTHER :oars
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Interfacegrutte
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :Normaal

View File

@@ -484,6 +484,7 @@ STR_GAME_OPTIONS_RESOLUTION_OTHER :altra
# Custom currency window

View File

@@ -804,6 +804,7 @@ STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_EVERY_1_MONTH :Секој ме
# Custom currency window

View File

@@ -417,6 +417,7 @@ STR_GAME_OPTIONS_RESOLUTION_OTHER :oħrajn
# Custom currency window

View File

@@ -757,6 +757,7 @@ STR_GAME_OPTIONS_RESOLUTION_OTHER :अन्य
# Custom currency window

View File

@@ -962,6 +962,7 @@ STR_GAME_OPTIONS_RESOLUTION_OTHER :دیگر
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :دو برابر

View File

@@ -942,6 +942,7 @@ STR_GAME_OPTIONS_RESOLUTION_OTHER :دیگر
STR_GAME_OPTIONS_BASE_GRF :{BLACK}بُنیادی گرافک سیٹ
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}بُنیادی گرافک سیٹ اختیار کریں
STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} missing/corrupted file{P "" s}

View File

@@ -1006,6 +1006,7 @@ STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Tăng t
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Đánh dấu vào ô này để cho phép OpenTTD thử sử dụng tăng tốc phần cứng. Sẽ có tác dụng sau khi khởi động lại trò chơi
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}Thiết lập chỉ có tác dụng sau khi khởi động lại trò chơi
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Kích thước giao diện
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Chọn kích thước của các đối tượng trên giao diện

View File

@@ -972,6 +972,7 @@ STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Dewiswch
STR_GAME_OPTIONS_RESOLUTION_OTHER :arall
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Maint rhyngwyneb
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}Dewis maint yr elfennau rhyngwyneb i'w defnyddio

View File

@@ -367,6 +367,7 @@ public:
static Path *invalid_path;
Path(NodeID n, bool source = false);
virtual ~Path() = default;
/** Get the node this leg passes. */
inline NodeID GetNode() const { return this->node; }

View File

@@ -498,7 +498,7 @@ struct AboutWindow : public Window {
int line_height; ///< The height of a single line
static const int num_visible_lines = 19; ///< The number of lines visible simultaneously
static const uint TIMER_INTERVAL = 150; ///< Scrolling interval in ms
static const uint TIMER_INTERVAL = 2100; ///< Scrolling interval, scaled by line text line height. This value chosen to maintain parity: 2100 / FONT_HEIGHT_NORMAL = 150ms
GUITimer timer;
AboutWindow() : Window(&_about_desc)
@@ -506,7 +506,6 @@ struct AboutWindow : public Window {
this->InitNested(WN_GAME_OPTIONS_ABOUT);
this->text_position = this->GetWidget<NWidgetBase>(WID_A_SCROLLING_TEXT)->pos_y + this->GetWidget<NWidgetBase>(WID_A_SCROLLING_TEXT)->current_y;
this->timer.SetInterval(TIMER_INTERVAL);
}
void SetStringParameters(int widget) const override
@@ -529,6 +528,10 @@ struct AboutWindow : public Window {
d.width = std::max(d.width, GetStringBoundingBox(_credits[i]).width);
}
*size = maxdim(*size, d);
/* Set scroll interval based on required speed. To keep scrolling smooth,
* the interval is adjusted rather than the distance moved. */
this->timer.SetInterval(TIMER_INTERVAL / FONT_HEIGHT_NORMAL);
}
void DrawWidget(const Rect &r, int widget) const override
@@ -767,6 +770,12 @@ struct TooltipsWindow : public Window
case TCC_RIGHT_CLICK: if (!_right_button_down) delete this; break;
case TCC_HOVER: if (!_mouse_hovering) delete this; break;
case TCC_NONE: break;
case TCC_EXIT_VIEWPORT: {
Window *w = FindWindowFromPt(_cursor.pos.x, _cursor.pos.y);
if (w == nullptr || IsPtInWindowViewport(w, _cursor.pos.x, _cursor.pos.y) == nullptr) delete this;
break;
}
}
}
};
@@ -783,7 +792,7 @@ void GuiShowTooltips(Window *parent, StringID str, uint paramcount, const uint64
{
DeleteWindowById(WC_TOOLTIPS, 0);
if (str == STR_NULL) return;
if (str == STR_NULL || !_cursor.in_window) return;
new TooltipsWindow(parent, str, paramcount, params, close_tooltip);
}

View File

@@ -11,6 +11,7 @@
#include <math.h>
#include "core/math_func.hpp"
#include "framerate_type.h"
#include "settings_type.h"
#include "safeguards.h"
#include "mixer.h"
@@ -45,7 +46,7 @@ static MxStreamCallback _music_stream = nullptr;
* stops overflowing when too many sounds are played at the same time, which
* causes an even worse sound quality.
*/
static const int MAX_VOLUME = 128 * 128;
static const int MAX_VOLUME = 32767;
/**
* Perform the rate conversion between the input and output.
@@ -60,7 +61,7 @@ static int RateConversion(T *b, int frac_pos)
return ((b[0] * ((1 << 16) - frac_pos)) + (b[1] * frac_pos)) >> 16;
}
static void mix_int16(MixerChannel *sc, int16 *buffer, uint samples)
static void mix_int16(MixerChannel *sc, int16 *buffer, uint samples, uint8 effect_vol)
{
if (samples > sc->samples_left) samples = sc->samples_left;
sc->samples_left -= samples;
@@ -69,8 +70,8 @@ static void mix_int16(MixerChannel *sc, int16 *buffer, uint samples)
const int16 *b = (const int16 *)sc->memory + sc->pos;
uint32 frac_pos = sc->frac_pos;
uint32 frac_speed = sc->frac_speed;
int volume_left = sc->volume_left;
int volume_right = sc->volume_right;
int volume_left = sc->volume_left * effect_vol / 255;
int volume_right = sc->volume_right * effect_vol / 255;
if (frac_speed == 0x10000) {
/* Special case when frac_speed is 0x10000 */
@@ -96,7 +97,7 @@ static void mix_int16(MixerChannel *sc, int16 *buffer, uint samples)
sc->pos = b - (const int16 *)sc->memory;
}
static void mix_int8_to_int16(MixerChannel *sc, int16 *buffer, uint samples)
static void mix_int8_to_int16(MixerChannel *sc, int16 *buffer, uint samples, uint8 effect_vol)
{
if (samples > sc->samples_left) samples = sc->samples_left;
sc->samples_left -= samples;
@@ -105,8 +106,8 @@ static void mix_int8_to_int16(MixerChannel *sc, int16 *buffer, uint samples)
const int8 *b = sc->memory + sc->pos;
uint32 frac_pos = sc->frac_pos;
uint32 frac_speed = sc->frac_speed;
int volume_left = sc->volume_left;
int volume_right = sc->volume_right;
int volume_left = sc->volume_left * effect_vol / 255;
int volume_right = sc->volume_right * effect_vol / 255;
if (frac_speed == 0x10000) {
/* Special case when frac_speed is 0x10000 */
@@ -154,13 +155,21 @@ void MxMixSamples(void *buffer, uint samples)
/* Fetch music if a sampled stream is available */
if (_music_stream) _music_stream((int16*)buffer, samples);
/* Apply simple x^3 scaling to master effect volume. This increases the
* perceived difference in loudness to better match expectations. effect_vol
* is expected to be in the range 0-127 hence the division by 127 * 127 to
* get back into range. */
uint8 effect_vol = (_settings_client.music.effect_vol *
_settings_client.music.effect_vol *
_settings_client.music.effect_vol) / (127 * 127);
/* Mix each channel */
for (mc = _channels; mc != endof(_channels); mc++) {
if (mc->active) {
if (mc->is16bit) {
mix_int16(mc, (int16*)buffer, samples);
mix_int16(mc, (int16*)buffer, samples, effect_vol);
} else {
mix_int8_to_int16(mc, (int16*)buffer, samples);
mix_int8_to_int16(mc, (int16*)buffer, samples, effect_vol);
}
if (mc->samples_left == 0) MxCloseChannel(mc);
}

View File

@@ -1071,7 +1071,7 @@ static const char *LoadDefaultDLSFile(const char *user_dls)
const char *MusicDriver_DMusic::Start(const StringList &parm)
{
/* Initialize COM */
if (FAILED(CoInitializeEx(nullptr, COINITBASE_MULTITHREADED))) return "COM initialization failed";
if (FAILED(CoInitializeEx(nullptr, COINIT_MULTITHREADED))) return "COM initialization failed";
/* Create the DirectMusic object */
if (FAILED(CoCreateInstance(

View File

@@ -29,7 +29,15 @@ static FMusicDriver_FluidSynth iFMusicDriver_FluidSynth;
/** List of sound fonts to try by default. */
static const char *default_sf[] = {
/* Debian/Ubuntu/OpenSUSE preferred */
/* FluidSynth preferred */
/* See: https://www.fluidsynth.org/api/settings_synth.html#settings_synth_default-soundfont */
"/usr/share/soundfonts/default.sf2",
/* Debian/Ubuntu preferred */
/* See: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=929185 */
"/usr/share/sounds/sf3/default-GM.sf3",
/* OpenSUSE preferred */
"/usr/share/sounds/sf2/FluidR3_GM.sf2",
/* RedHat/Fedora/Arch preferred */
@@ -77,13 +85,23 @@ const char *MusicDriver_FluidSynth::Start(const StringList &param)
/* Load a SoundFont and reset presets (so that new instruments
* get used from the SoundFont) */
if (!sfont_name) {
int i;
sfont_id = FLUID_FAILED;
for (i = 0; default_sf[i]; i++) {
/* Try loading the default soundfont registered with FluidSynth. */
char *default_soundfont;
fluid_settings_dupstr(_midi.settings, "synth.default-soundfont", &default_soundfont);
if (fluid_is_soundfont(default_soundfont)) {
sfont_id = fluid_synth_sfload(_midi.synth, default_soundfont, 1);
}
/* If no default soundfont found, try our own list. */
if (sfont_id == FLUID_FAILED) {
for (int i = 0; default_sf[i]; i++) {
if (!fluid_is_soundfont(default_sf[i])) continue;
sfont_id = fluid_synth_sfload(_midi.synth, default_sf[i], 1);
if (sfont_id != FLUID_FAILED) break;
}
}
if (sfont_id == FLUID_FAILED) return "Could not open any sound font";
} else {
sfont_id = fluid_synth_sfload(_midi.synth, sfont_name, 1);

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