openttd 1.5-rc1

--HG--
branch : openttd
This commit is contained in:
Pavel Stupnikov
2015-03-19 14:33:13 +03:00
parent 5eed164aa7
commit 46e74a9a05
97 changed files with 647 additions and 1107 deletions

Binary file not shown.

View File

@@ -1,30 +1,41 @@
1.5.0-RC1 (2015-03-18)
------------------------------------------------------------------------
- Feature: [NewGRF] Display relative offset changes in the sprite aligner [FS#6236] (r27174)
- Fix: Original road vehicle acceleration crashed for vehicles taking over [FS#6255] (r27190)
- Fix: GCC 5 compilation (r27185, r27183)
- Fix: Data race due to lazy initialisation of objects [FS#5969] (r27178)
- Fix: Compilation with MinGW64 (r27176)
- Fix: Use the regular clipping functions in the sprite aligner instead of some magic [FS#6237] (r27173)
- Fix: Windows randomly drops SetCursorPos calls, breaking the RMB-scrolling [FS#6238] (r27172)
1.5.0-beta2 (2015-02-24)
------------------------------------------------------------------------
- Feature: [NoGo] Game scripts can point to a location, station, industry, or town when publishing news. (r27164)
- Feature: Allow changing max heightlevel in scenario editor. (r27151)
- Feature: Make use of both rocky tile sets from the base graphics. (r27117)
- Change: Scale (non-custom) default window sizes according to GUI zoom. (r27147)
- Change: Make statusbar and chat-entry window use the same width as the toolbar. (r27146)
- Change: The chatbox-width setting now uses percent of screen width instead of pixels. (r27144)
- Change: [NewGRF] Interpret negative positions in industry layouts depending on GRF version. (r27138)
- Fix: [SDL, Windows] Right-mouse-button scrolling scrolled/jumped too far, when OpenTTD lagged during mouse event processing. (r27167)
- Fix: Toolbars were not invalidated when changing max-vehicles settings. [FS#6204] (r27163)
- Fix: Tile selection was drawn outside of map in some cases. [FS#6208] (r27162)
- Fix: Reimplement the viewport drawing algorithm. [FS#6156] [FS#6206] (r27161)
- Fix: Issues with smallmap and viewport coordinates and transformations. (r27160, r27159, r27158)
- Fix: Mark bridge middle tiles dirty when building/removing/changing bridges. (r27157)
- Fix: Rounding and unit-conversion inconsistencies in calls to MarkAllViewportsDirty. (r27148)
- Fix: Oilrig empty-tile checks were incorrect due to wrong TileIndexDiff->TileIndexDiffC conversion. (r27137)
- Fix: Misalignment in generate world window in case of small fonts. (r27135)
- Fix: Dragging of free wagons in depot failed with GUI zoom. (r27133)
- Fix: Reduce memory footprint of map array by shuffling its members. [FS#6218] (r27132, r27126)
- Fix: Dropdown- and tooltip-windows should not steal the focus. (r27131)
- Fix: [NewGRF] Action 7/9 condition 0A failed for present, but disabled, NewGRF. (r27119)
- Fix: Road vehicles could not reverse to be sent to depots when the following tile has the right type to run on, but could not be entered. [FS#6183] (r27107)
- Fix: Use the actual max speed of the vehicle in front when determining if a RV can overtake. [FS#6176] (r27106)
- Fix: grow_counter was not properly bounded by growth_rate, but by some other value used to calculate growth_rate. [FS#6195] (r27105)
- Fix: [Script] Support 64 bits integers in ScriptLists. [FS#6194] (r27104)
- Fix: [Script] Money values would end up wrong in strings when outside the bounds of a 32 bits integer. [FS#6194] (r27102)
- Feature: [NoGo] Game scripts can point to a location, station, industry, or town when publishing news (r27164)
- Feature: Allow changing max heightlevel in scenario editor (r27151)
- Feature: Make use of both rocky tile sets from the base graphics (r27117)
- Change: Scale (non-custom) default window sizes according to GUI zoom (r27147)
- Change: Make statusbar and chat-entry window use the same width as the toolbar (r27146)
- Change: The chatbox-width setting now uses percent of screen width instead of pixels (r27144)
- Change: [NewGRF] Interpret negative positions in industry layouts depending on GRF version (r27138)
- Fix: [SDL, Windows] Right-mouse-button scrolling scrolled/jumped too far, when OpenTTD lagged during mouse event processing (r27167)
- Fix: Toolbars were not invalidated when changing max-vehicles settings [FS#6204] (r27163)
- Fix: Tile selection was drawn outside of map in some cases [FS#6208] (r27162)
- Fix: Reimplement the viewport drawing algorithm [FS#6156] [FS#6206] (r27161)
- Fix: Issues with smallmap and viewport coordinates and transformations (r27160, r27159, r27158)
- Fix: Mark bridge middle tiles dirty when building/removing/changing bridges (r27157)
- Fix: Rounding and unit-conversion inconsistencies in calls to MarkAllViewportsDirty (r27148)
- Fix: Oilrig empty-tile checks were incorrect due to wrong TileIndexDiff->TileIndexDiffC conversion (r27137)
- Fix: Misalignment in generate world window in case of small fonts (r27135)
- Fix: Dragging of free wagons in depot failed with GUI zoom (r27133)
- Fix: Reduce memory footprint of map array by shuffling its members [FS#6218] (r27132, r27126)
- Fix: Dropdown- and tooltip-windows should not steal the focus (r27131)
- Fix: [NewGRF] Action 7/9 condition 0A failed for present, but disabled, NewGRF (r27119)
- Fix: Road vehicles could not reverse to be sent to depots when the following tile has the right type to run on, but could not be entered [FS#6183] (r27107)
- Fix: Use the actual max speed of the vehicle in front when determining if a RV can overtake [FS#6176] (r27106)
- Fix: grow_counter was not properly bounded by growth_rate, but by some other value used to calculate growth_rate [FS#6195] (r27105)
- Fix: [Script] Support 64 bits integers in ScriptLists [FS#6194] (r27104)
- Fix: [Script] Money values would end up wrong in strings when outside the bounds of a 32 bits integer [FS#6194] (r27102)
1.5.0-beta1 (2014-12-24)

View File

@@ -1,6 +1,6 @@
OpenTTD's known bugs
Last updated: 2015-02-24
Release version: 1.5.0-beta2
Last updated: 2015-03-18
Release version: 1.5.0-RC1
------------------------------------------------------------------------

View File

@@ -1,3 +1,9 @@
openttd (1.5.0~RC1-0) unstable; urgency=low
* New upstream release 1.5.0-RC1
-- OpenTTD <info@openttd.org> Wed, 18 Mar 2015 21:00:00 +0100
openttd (1.5.0~beta2-0) unstable; urgency=low
* New upstream release 1.5.0-beta2

View File

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

View File

@@ -1,5 +1,5 @@
Last updated: 2015-02-24
Release version: 1.5.0-beta2
Last updated: 2015-03-18
Release version: 1.5.0-RC1
------------------------------------------------------------------------

View File

@@ -1,4 +1,4 @@
/* $Id: ai_gui.cpp 26954 2014-10-04 18:19:22Z peter1138 $ */
/* $Id: ai_gui.cpp 27187 2015-03-15 12:19:58Z frosch $ */
/*
* This file is part of OpenTTD.
@@ -970,7 +970,7 @@ struct AIDebugWindow : public Window {
static const int top_offset; ///< Offset of the text at the top of the WID_AID_LOG_PANEL.
static const int bottom_offset; ///< Offset of the text at the bottom of the WID_AID_LOG_PANEL.
static const unsigned int MAX_BREAK_STR_STRING_LENGTH = 256; ///< Maximum length of the break string.
static const uint MAX_BREAK_STR_STRING_LENGTH = 256; ///< Maximum length of the break string.
static CompanyID ai_debug_company; ///< The AI that is (was last) being debugged.
int redraw_timer; ///< Timer for redrawing the window, otherwise it'll happen every tick.

View File

@@ -24,7 +24,6 @@
#include "cmd_helper.h"
#include "tunnelbridge_map.h"
#include "road_gui.h"
#include "tilehighlight_func.h"
#include "widgets/bridge_widget.h"
@@ -73,8 +72,6 @@ void CcBuildBridge(const CommandCost &result, TileIndex end_tile, uint32 p1, uin
DiagDirection start_direction = ReverseDiagDir(GetTunnelBridgeDirection(p1));
ConnectRoadToStructure(p1, start_direction);
}
StoreRailPlacementEndpoints(p1, end_tile, (TileX(p1) == TileX(end_tile)) ? TRACK_Y : TRACK_X, false);
}
/** Window class for handling the bridge-build GUI. */

View File

@@ -1,4 +1,4 @@
/* $Id: cheat_gui.cpp 27151 2015-02-14 21:55:30Z frosch $ */
/* $Id: cheat_gui.cpp 27178 2015-03-07 18:27:01Z frosch $ */
/*
* This file is part of OpenTTD.
@@ -108,7 +108,7 @@ static int32 ClickChangeDateCheat(int32 p1, int32 p2)
if (p1 == _cur_year) return _cur_year;
Date new_date = ConvertYMDToDate(p1, ymd.month, ymd.day);
LinkGraphSchedule::Instance()->ShiftDates(new_date - _date);
LinkGraphSchedule::instance.ShiftDates(new_date - _date);
SetDate(new_date, _date_fract);
EnginesMonthlyLoop();
SetWindowDirty(WC_STATUS_BAR, 0);

View File

@@ -1,4 +1,4 @@
/* $Id: fontcache.cpp 27134 2015-02-01 20:54:24Z frosch $ */
/* $Id: fontcache.cpp 27187 2015-03-15 12:19:58Z frosch $ */
/*
* This file is part of OpenTTD.
@@ -536,8 +536,8 @@ const Sprite *FreeTypeFontCache::GetGlyph(GlyphID key)
aa = (slot->bitmap.pixel_mode == FT_PIXEL_MODE_GRAY);
/* Add 1 pixel for the shadow on the medium font. Our sprite must be at least 1x1 pixel */
unsigned int width = max(1U, (unsigned int)slot->bitmap.width + (this->fs == FS_NORMAL));
unsigned int height = max(1U, (unsigned int)slot->bitmap.rows + (this->fs == FS_NORMAL));
uint width = max(1U, (uint)slot->bitmap.width + (this->fs == FS_NORMAL));
uint height = max(1U, (uint)slot->bitmap.rows + (this->fs == FS_NORMAL));
/* Limit glyph size to prevent overflows later on. */
if (width > 256 || height > 256) usererror("Font glyph is too large");
@@ -553,8 +553,8 @@ const Sprite *FreeTypeFontCache::GetGlyph(GlyphID key)
/* Draw shadow for medium size */
if (this->fs == FS_NORMAL && !aa) {
for (unsigned int y = 0; y < (unsigned int)slot->bitmap.rows; y++) {
for (unsigned int x = 0; x < (unsigned int)slot->bitmap.width; x++) {
for (uint y = 0; y < (uint)slot->bitmap.rows; y++) {
for (uint x = 0; x < (uint)slot->bitmap.width; x++) {
if (aa ? (slot->bitmap.buffer[x + y * slot->bitmap.pitch] > 0) : HasBit(slot->bitmap.buffer[(x / 8) + y * slot->bitmap.pitch], 7 - (x % 8))) {
sprite.data[1 + x + (1 + y) * sprite.width].m = SHADOW_COLOUR;
sprite.data[1 + x + (1 + y) * sprite.width].a = aa ? slot->bitmap.buffer[x + y * slot->bitmap.pitch] : 0xFF;
@@ -563,8 +563,8 @@ const Sprite *FreeTypeFontCache::GetGlyph(GlyphID key)
}
}
for (unsigned int y = 0; y < (unsigned int)slot->bitmap.rows; y++) {
for (unsigned int x = 0; x < (unsigned int)slot->bitmap.width; x++) {
for (uint y = 0; y < (uint)slot->bitmap.rows; y++) {
for (uint x = 0; x < (uint)slot->bitmap.width; x++) {
if (aa ? (slot->bitmap.buffer[x + y * slot->bitmap.pitch] > 0) : HasBit(slot->bitmap.buffer[(x / 8) + y * slot->bitmap.pitch], 7 - (x % 8))) {
sprite.data[x + y * sprite.width].m = FACE_COLOUR;
sprite.data[x + y * sprite.width].a = aa ? slot->bitmap.buffer[x + y * slot->bitmap.pitch] : 0xFF;

View File

@@ -1,4 +1,4 @@
/* $Id: gfx.cpp 27167 2015-02-22 23:06:45Z frosch $ */
/* $Id: gfx.cpp 27172 2015-02-28 17:13:07Z frosch $ */
/*
* This file is part of OpenTTD.
@@ -1636,8 +1636,11 @@ bool CursorVars::UpdateCursorPosition(int x, int y, bool queued_warp)
bool need_warp = false;
if (this->fix_at) {
if (!this->queued_warp && (this->delta.x != 0 || this->delta.y != 0)) {
/* Trigger warp. */
if (this->delta.x != 0 || this->delta.y != 0) {
/* Trigger warp.
* Note: We also trigger warping again, if there is already a pending warp.
* This makes it more tolerant about the OS or other software inbetween
* botchering the warp. */
this->queued_warp = queued_warp;
need_warp = true;
}

View File

@@ -11,7 +11,7 @@
##gender male
# $Id: afrikaans.txt 27136 2015-02-05 17:45:18Z translators $
# $Id: afrikaans.txt 27179 2015-03-09 18:15:33Z translators $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -799,7 +799,7 @@ STR_NEWS_DISASTER_SMALL_UFO :{BIG_FONT}{BLAC
STR_NEWS_DISASTER_AIRPLANE_OIL_REFINERY :{BIG_FONT}{BLACK}Olie raffinadery het ontplof naby {TOWN}!
STR_NEWS_DISASTER_HELICOPTER_FACTORY :{BIG_FONT}{BLACK}fabriek vernietig in agterdogtig omstandighede naby {TOWN}!
STR_NEWS_DISASTER_BIG_UFO :{BIG_FONT}{BLACK}'VVV' beland naby {TOWN}!
STR_NEWS_DISASTER_COAL_MINE_SUBSIDENCE :{BIG_FONT}{BLACK}Kool myn bedaaring los spoor van vernietiging naby {TOWN}!
STR_NEWS_DISASTER_COAL_MINE_SUBSIDENCE :{BIG_FONT}{BLACK}Steenkool myn ongeluk los spoor van vernietiging naby {TOWN}!
STR_NEWS_DISASTER_FLOOD_VEHICLE :{BIG_FONT}{BLACK}Oorstroom!{}Te minste {COMMA} vermis, aangeneem dood na beduidende oorstroom!
STR_NEWS_COMPANY_IN_TROUBLE_TITLE :{BIG_FONT}{BLACK}Vervoer maatsappy in moelikheid!
@@ -827,7 +827,7 @@ STR_NEWS_BEGIN_OF_RECESSION :{BIG_FONT}{BLAC
STR_NEWS_END_OF_RECESSION :{BIG_FONT}{BLACK}Insinking Oor!{}{}Oplewing in sake gee vertroue na nywerhede as ekonomie versterk!
STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL :{BIG_FONT}{BLACK}{INDUSTRY} vermeerder produksie!
STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_COAL :{BIG_FONT}{BLACK}Nuwe kool laag gevind by {INDUSTRY}!{}Produksie is verwag om te verdubbel!
STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_COAL :{BIG_FONT}{BLACK}Nuwe steenkool laag gevind by {INDUSTRY}!{}Produksie word voorspel dat dit sal verdubbel!
STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_OIL :{BIG_FONT}{BLACK}Nuwe olie reserwes gevind by {INDUSTRY}!{}Produksie is verwag om te verdubbel!
STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_FARM :{BIG_FONT}{BLACK}Verbeterde boerdery metodes by {INDUSTRY} sal produksie verdubbel!
STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_SMOOTH :{BIG_FONT}{BLACK}{STRING} produksie by {INDUSTRY} vermeerder {COMMA}%!
@@ -1048,11 +1048,11 @@ STR_NUM_CUSTOM :Pasmaak
STR_NUM_CUSTOM_NUMBER :Pasmaak ({NUM})
STR_VARIETY_NONE :Geen
STR_VARIETY_VERY_LOW :Baaie Laag
STR_VARIETY_VERY_LOW :Baie Laag
STR_VARIETY_LOW :Laag
STR_VARIETY_MEDIUM :Middelmatig
STR_VARIETY_HIGH :Hoog
STR_VARIETY_VERY_HIGH :Baaie Hoog
STR_VARIETY_VERY_HIGH :Baie Hoog
STR_AI_SPEED_VERY_SLOW :Baie Stadig
STR_AI_SPEED_SLOW :Stadig
@@ -2880,7 +2880,10 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Vorige s
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Gaan na vorige normale sprite, en ignoreer enige pseudo/her-kleur/font sprite en spring terug na die einde
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Voorstelling van geselekteerde sprite. Die belyning word geignoreer waneer sprite geteken word
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Beweeg die sprite rond, verander die X en Y afwyking
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}X afwyking: {NUM}, Y afwyking: {NUM}
STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Relatiewe herstel
STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Herstel die huidige relatiewe verplasing
STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}X verplasing: {NUM}, Y verplasing: {NUM} (Werklik)
STR_SPRITE_ALIGNER_OFFSETS_REL :{BLACK}X verplasing: {NUM}, Y verplasing: {NUM} (Relatief)
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Kies sprite
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Kies 'n sprite van enige plek op die skerm
@@ -4683,7 +4686,7 @@ STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV4_CHIMAERA_ELECTRIC :Lev4 'Chimaera'
STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_WIZZOWOW_ROCKETEER :Wizzowow Rocketeer
STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_PASSENGER_CAR :Passasierswa
STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_MAIL_VAN :Pos Wa
STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_COAL_CAR :Kool Trok
STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_COAL_CAR :Steenkool Trok
STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_OIL_TANKER :Olie Tenkwa
STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_LIVESTOCK_VAN :Lewende Hawe Wa
STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_GOODS_VAN :Goedere Wa
@@ -4715,7 +4718,7 @@ STR_VEHICLE_NAME_ROAD_VEHICLE_FOSTER_MKII_SUPERBUS :Foster MkII Sup
STR_VEHICLE_NAME_ROAD_VEHICLE_PLODDYPHUT_MKI_BUS :Ploddyphut MkI Bus
STR_VEHICLE_NAME_ROAD_VEHICLE_PLODDYPHUT_MKII_BUS :Ploddyphut MkII Bus
STR_VEHICLE_NAME_ROAD_VEHICLE_PLODDYPHUT_MKIII_BUS :Ploddyphut MkIII Bus
STR_VEHICLE_NAME_ROAD_VEHICLE_BALOGH_COAL_TRUCK :Balogh Kool Trok
STR_VEHICLE_NAME_ROAD_VEHICLE_BALOGH_COAL_TRUCK :Balogh Steenkool Trok
STR_VEHICLE_NAME_ROAD_VEHICLE_UHL_COAL_TRUCK :Uhl Kool Trok
STR_VEHICLE_NAME_ROAD_VEHICLE_DW_COAL_TRUCK :DW Kool Trok
STR_VEHICLE_NAME_ROAD_VEHICLE_MPS_MAIL_TRUCK :MPS Pos Trok

View File

@@ -10,7 +10,7 @@
##grflangid 0x14
# $Id: arabic_egypt.txt 27103 2015-01-01 20:51:18Z rubidium $
# $Id: arabic_egypt.txt 27184 2015-03-13 20:53:29Z rubidium $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2495,7 +2495,6 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}العف
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}نابع للعفريتة الطبيعية التالية، تجاوز اي عفريتة موقوفة/ مصبوغة/مخطوطة و انهي في البداية.
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}عرض العفريتة المختارة حاليا. يتم تجاهل الموائمة عند رسم هذا العفريت.
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}حرك العفريتة في الجوار، غير الاحداثيات س ، ص.
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}احداث س: {NUM}، احداث ص: {NUM}
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}اختر عفريتة
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}اختر عفريتة من اي مكان في الشاشة.

View File

@@ -10,7 +10,7 @@
##grflangid 0x21
# $Id: basque.txt 27103 2015-01-01 20:51:18Z rubidium $
# $Id: basque.txt 27184 2015-03-13 20:53:29Z rubidium $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2725,7 +2725,6 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Aldez au
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Aurreko grafiko arruntera joan, pseudo/birkoloretu/grafiko tipoak desgaituz
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Orain aukeratutako grafikoaren aurkezpena. Alineazioa ez da kontua hartzen grafiko hau egiterakoan
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}"Sprit"-a mugitu inguruan, X eta Y-ren desplazamenduak aldatuz
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}X desplazamendua {NUM}, Y desplazamendua: {NUM}
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}"Sprit"-a aukeratu
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Pantaillako edozein lekutatik aukeratu "sprite" bat

View File

@@ -12,7 +12,7 @@
##case m f n p nom gen dat acc abl pre
# $Id: belarusian.txt 27103 2015-01-01 20:51:18Z rubidium $
# $Id: belarusian.txt 27184 2015-03-13 20:53:29Z rubidium $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -3212,7 +3212,6 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Папя
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Перайсьці да папярэдняга звычайнага спрайта, прапускаючы змяняючыя колер, шрыфтавыя, псэўдаспрайты. Пераход з пачатку сьпісу да апошняга спрайта.
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Прадстаўленьне выбранага спрайта. Выраўноўваньне не ўлічваецца пры прарысоўцы гэтага спрайта.
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Рухайце спрайт, зьмяняючы зрушэньне па X і па Y
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}Зрушэньне па X: {NUM}, зрушэньне па Y: {NUM}
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Выбраць спрайт
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Абярыце любы спрайт на экране

View File

@@ -11,7 +11,7 @@
##gender m f
# $Id: brazilian_portuguese.txt 27103 2015-01-01 20:51:18Z rubidium $
# $Id: brazilian_portuguese.txt 27184 2015-03-13 20:53:29Z rubidium $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2868,7 +2868,6 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}"Sprite"
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Retorna ao "sprite" normal anterior, pulando quaisquer "sprites" falsos, recoloridos ou de fontes, e junta tudo do primeiro ao último
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Representação do "sprite" atualmente selecionado. O alinhamento é ignorado ao desenhar esse "sprite"
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Move o "sprite", alterando os offsets X e Y
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}X offset: {NUM}, Y offset: {NUM}
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Escolher "sprite"
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Escolhe um "sprite" de qualquer lugar na tela

View File

@@ -12,7 +12,7 @@
##case m f n p
# $Id: bulgarian.txt 27122 2015-01-19 17:45:27Z translators $
# $Id: bulgarian.txt 27184 2015-03-13 20:53:29Z rubidium $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2815,7 +2815,6 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Пред
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Продължи към предишен нормален sprite, Пропускайки всички псевдо/прерисувани/текстови sprite и ги облечи в края
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Показване на избрания sprite. Подредбата се пренебрегва при рисуването му.
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Преместване на sprite, променяйки X и Y координатите
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}X координата: {NUM}, Y координата: {NUM}
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Избери sprite
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Избери sprite от целия екран

View File

@@ -11,7 +11,7 @@
##gender Masculin Femenin
# $Id: catalan.txt 27114 2015-01-06 17:45:49Z translators $
# $Id: catalan.txt 27180 2015-03-10 17:47:16Z translators $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -250,10 +250,10 @@ STR_TOOLTIP_HSCROLL_BAR_SCROLLS_LIST :{BLACK}Barra de
STR_TOOLTIP_DEMOLISH_BUILDINGS_ETC :{BLACK}Enderroca edificis, etc. en un quadre de terreny. Ctrl selecciona l'àrea en diagonal. Shift commuta construir/mostrar el cost estimat
# Show engines button
STR_SHOW_HIDDEN_ENGINES_VEHICLE_TRAIN :{BLACK}Mostrar ocultats
STR_SHOW_HIDDEN_ENGINES_VEHICLE_ROAD_VEHICLE :{BLACK}Mostrar ocultats
STR_SHOW_HIDDEN_ENGINES_VEHICLE_SHIP :{BLACK}Mostrar ocultats
STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT :{BLACK}Mostrar ocultats
STR_SHOW_HIDDEN_ENGINES_VEHICLE_TRAIN :{BLACK}Mostra ocultats
STR_SHOW_HIDDEN_ENGINES_VEHICLE_ROAD_VEHICLE :{BLACK}Mostra ocultats
STR_SHOW_HIDDEN_ENGINES_VEHICLE_SHIP :{BLACK}Mostra ocultats
STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT :{BLACK}Mostra ocultats
STR_SHOW_HIDDEN_ENGINES_VEHICLE_TRAIN_TOOLTIP :{BLACK}Activant aquest botó, també es mostraran els vehicles ferroviaris ocultats
STR_SHOW_HIDDEN_ENGINES_VEHICLE_ROAD_VEHICLE_TOOLTIP :{BLACK}Activant aquest botó, també es mostraran els vehicles de carretera ocultats
@@ -324,7 +324,7 @@ STR_TOOLBAR_TOOLTIP_DISPLAY_SUBSIDIES :{BLACK}Mostra l
STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_STATIONS :{BLACK}Mostra la llista d'estacions de la companyia
STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_FINANCES :{BLACK}Mostra informació financera de la companyia
STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_GENERAL :{BLACK}Mostra informació general de la companyia
STR_TOOLBAR_TOOLTIP_DISPLAY_STORY_BOOK :{BLACK}Mostra llibre
STR_TOOLBAR_TOOLTIP_DISPLAY_STORY_BOOK :{BLACK}Mostra llibre de partida
STR_TOOLBAR_TOOLTIP_DISPLAY_GOALS_LIST :{BLACK}Mostra llista d'objectius
STR_TOOLBAR_TOOLTIP_DISPLAY_GRAPHS :{BLACK}Mostra gràfics
STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_LEAGUE :{BLACK}Mostra la taula de la lliga d'empreses
@@ -1404,7 +1404,7 @@ STR_CONFIG_SETTING_TIMETABLE_IN_TICKS_HELPTEXT :Mostra els temp
STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE :Mostra l'arribada i la sortida als horaris: {STRING}
STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE_HELPTEXT :Mostra als horaris l'arribada anticipadament i les hores de sortida
STR_CONFIG_SETTING_QUICKGOTO :Creació ràpida d'ordres per a vehicles: {STRING}
STR_CONFIG_SETTING_QUICKGOTO_HELPTEXT :Pre-selecciona el botó 'Vés-hi' quan s'obri la finestra d'ordres
STR_CONFIG_SETTING_QUICKGOTO_HELPTEXT :Preselecciona el botó 'Vés a' quan s'obri la finestra d'ordres
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE :Tipus predeterminat de via (en nova partida/càrrega de partida): {STRING}
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_HELPTEXT :Tipus de via a seleccionar després de començar o carregar una partida. 'El més antic disponible' selecciona el tipus de vies més antic disponible, 'El més modern disponible' selecciona el tipus de vies més modern, i 'El més utilitzat disponible' selecciona el tipus de vies que s'utilitzi més actualment
STR_CONFIG_SETTING_DEFAULT_RAIL_TYPE_FIRST :El més antic disponible
@@ -2510,7 +2510,7 @@ STR_TERRAFORM_SE_NEW_WORLD :{BLACK}Crear no
STR_TERRAFORM_RESET_LANDSCAPE :{BLACK}Restableix paisatge
STR_TERRAFORM_RESET_LANDSCAPE_TOOLTIP :{BLACK}Treure totes les propietats pertanyents a companyies del mapa
STR_QUERY_RESET_LANDSCAPE_CAPTION :{WHITE}Restablir Paisatge
STR_QUERY_RESET_LANDSCAPE_CAPTION :{WHITE}Restableix Paisatge
STR_RESET_LANDSCAPE_CONFIRMATION_TEXT :{WHITE}Estàs segur que vols treure totes les propietats pertanyents a companyies?
# Town generation window (SE)
@@ -2874,24 +2874,27 @@ STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Paràmet
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Alineant sprite {COMMA} ({STRING})
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Sprite següent
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Procedeix cap al següent sprite normal, saltant qualsevol sprite pseudo/recolor/font i passant de l'últim sprite al primer
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Anar a l'sprite
STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK}Anar cap a l'sprite donat. Si l'sprite no és un sprite normal, procedir cap al següent sprite normal
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Vés a l'sprite
STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK}Va cap a l'sprite donat. Si l'sprite no és un sprite normal, procedir cap al següent sprite normal
STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Sprite anterior
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Procedeix cap a l'sprite normal anterior, saltant qualsevol sprite pseudo/recolor/font i passant del primer sprite a l'últim
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Representació de l'sprite seleccionat actualment. L'alineació s'ignora quan es dibuixa aquest sprite
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Mou l'sprite al voltant, canviant els desplaçaments en X i Y
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}Desplaçament X: {NUM}, Desplaçament Y: {NUM}
STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Restableix relatius
STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Restableix els desplaçaments relatius actuals
STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}Desplaçament X: {NUM}, Desplaçament Y: {NUM} (Absolut)
STR_SPRITE_ALIGNER_OFFSETS_REL :{BLACK}Desplaçament X: {NUM}, Desplaçament Y: {NUM} (Relatiu)
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Agafa un sprite
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Agafa un sprite de qualsevol lloc de la pantalla
STR_SPRITE_ALIGNER_GOTO_CAPTION :{WHITE}Anar a l'sprite
STR_SPRITE_ALIGNER_GOTO_CAPTION :{WHITE}Vés a l'sprite
# NewGRF (self) generated warnings/errors
STR_NEWGRF_ERROR_MSG_INFO :{SILVER}{STRING}
STR_NEWGRF_ERROR_MSG_WARNING :{RED}Alerta: {SILVER}{STRING}
STR_NEWGRF_ERROR_MSG_ERROR :{RED}Error: {SILVER}{STRING}
STR_NEWGRF_ERROR_MSG_FATAL :{RED}Fatal: {SILVER}{STRING}
STR_NEWGRF_ERROR_FATAL_POPUP :{WHITE}Ha passat un error fatal de NewGRF: {}{STRING}
STR_NEWGRF_ERROR_FATAL_POPUP :{WHITE}S'ha produït un error fatal de NewGRF: {}{STRING}
STR_NEWGRF_ERROR_VERSION_NUMBER :{1:STRING} no funcionarà amb la versió de TTDPatch informada per OpenTTD
STR_NEWGRF_ERROR_DOS_OR_WINDOWS :{1:STRING} és per la versió {STRING} de TTD
STR_NEWGRF_ERROR_UNSET_SWITCH :{1:STRING} està dissenyat per ser utilitzat amb {STRING}
@@ -3083,8 +3086,8 @@ STR_SUBSIDIES_SUBSIDISED_FROM_TO :{ORANGE}{STRING
STR_SUBSIDIES_TOOLTIP_CLICK_ON_SERVICE_TO_CENTER :{BLACK}Clica al servei per centrar la vista a la indústria/població. Ctrl+Clic obre una nova vista al lloc de la indústria/població
# Story book window
STR_STORY_BOOK_CAPTION :{WHITE}{COMPANY} Llibre
STR_STORY_BOOK_SPECTATOR_CAPTION :{WHITE}Llibre Global
STR_STORY_BOOK_CAPTION :{WHITE}Llibre de Partida de {COMPANY}
STR_STORY_BOOK_SPECTATOR_CAPTION :{WHITE}Llibre Global de Partida
STR_STORY_BOOK_TITLE :{YELLOW}{STRING}
STR_STORY_BOOK_GENERIC_PAGE_ITEM :Pàgina {NUM}
STR_STORY_BOOK_SEL_PAGE_TOOLTIP :{BLACK}Salteu a una pàgina seleccionant-la en aquesta llista desplegable.
@@ -3180,7 +3183,7 @@ STR_BUOY_VIEW_CHANGE_BUOY_NAME :{BLACK}Canvia e
STR_EDIT_WAYPOINT_NAME :{WHITE}Edita nom del punt de pas
# Finances window
STR_FINANCES_CAPTION :{WHITE}{COMPANY} Economia {BLACK}{COMPANY_NUM}
STR_FINANCES_CAPTION :{WHITE}Finances de {COMPANY} {BLACK}{COMPANY_NUM}
STR_FINANCES_EXPENDITURE_INCOME_TITLE :{WHITE}Despeses/Ingressos
STR_FINANCES_YEAR :{WHITE}{NUM}
STR_FINANCES_SECTION_CONSTRUCTION :{GOLD}Construcció
@@ -3421,15 +3424,15 @@ STR_BUY_VEHICLE_ROAD_VEHICLE_RENAME_TOOLTIP :{BLACK}Canvia e
STR_BUY_VEHICLE_SHIP_RENAME_TOOLTIP :{BLACK}Canvia el nom del model de vaixell
STR_BUY_VEHICLE_AIRCRAFT_RENAME_TOOLTIP :{BLACK}Canvia el nom del model d'avió
STR_BUY_VEHICLE_TRAIN_HIDE_TOGGLE_BUTTON :{BLACK}Ocultar
STR_BUY_VEHICLE_ROAD_VEHICLE_HIDE_TOGGLE_BUTTON :{BLACK}Ocultar
STR_BUY_VEHICLE_SHIP_HIDE_TOGGLE_BUTTON :{BLACK}Ocultar
STR_BUY_VEHICLE_AIRCRAFT_HIDE_TOGGLE_BUTTON :{BLACK}Ocultar
STR_BUY_VEHICLE_TRAIN_HIDE_TOGGLE_BUTTON :{BLACK}Oculta
STR_BUY_VEHICLE_ROAD_VEHICLE_HIDE_TOGGLE_BUTTON :{BLACK}Oculta
STR_BUY_VEHICLE_SHIP_HIDE_TOGGLE_BUTTON :{BLACK}Oculta
STR_BUY_VEHICLE_AIRCRAFT_HIDE_TOGGLE_BUTTON :{BLACK}Oculta
STR_BUY_VEHICLE_TRAIN_SHOW_TOGGLE_BUTTON :{BLACK}Mostrar
STR_BUY_VEHICLE_ROAD_VEHICLE_SHOW_TOGGLE_BUTTON :{BLACK}Mostrar
STR_BUY_VEHICLE_SHIP_SHOW_TOGGLE_BUTTON :{BLACK}Mostrar
STR_BUY_VEHICLE_AIRCRAFT_SHOW_TOGGLE_BUTTON :{BLACK}Mostrar
STR_BUY_VEHICLE_TRAIN_SHOW_TOGGLE_BUTTON :{BLACK}Mostra
STR_BUY_VEHICLE_ROAD_VEHICLE_SHOW_TOGGLE_BUTTON :{BLACK}Mostra
STR_BUY_VEHICLE_SHIP_SHOW_TOGGLE_BUTTON :{BLACK}Mostra
STR_BUY_VEHICLE_AIRCRAFT_SHOW_TOGGLE_BUTTON :{BLACK}Mostra
STR_BUY_VEHICLE_TRAIN_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Alterna mostrar/ocultar el vehicle ferroviari
STR_BUY_VEHICLE_ROAD_VEHICLE_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Alterna mostrar/ocultar l'automòbil
@@ -4649,7 +4652,7 @@ STR_VEHICLE_NAME_TRAIN_WAGON_RAIL_PLASTIC_TRUCK :{G=Masculin}Vag
STR_VEHICLE_NAME_TRAIN_ENGINE_MONORAIL_X2001_ELECTRIC :'X2001' (Elèctrica)
STR_VEHICLE_NAME_TRAIN_ENGINE_MONORAIL_MILLENNIUM_Z1_ELECTRIC :'Millennium Z1' (Elèctrica)
STR_VEHICLE_NAME_TRAIN_ENGINE_MONORAIL_WIZZOWOW_Z99 :Wizzowow Z99
STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_PASSENGER_CAR :{G=Masculin}Vagó per Passatgers
STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_PASSENGER_CAR :{G=Masculin}Vagó de Passatgers
STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_MAIL_VAN :{G=Masculin}Vagó per Correu
STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_COAL_CAR :{G=Masculin}Vagó per Carbó
STR_VEHICLE_NAME_TRAIN_WAGON_MONORAIL_OIL_TANKER :{G=Masculin}Tanc de Petroli
@@ -4681,7 +4684,7 @@ STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV2_CYCLOPS_ELECTRIC :Lev2 'Cíclope'
STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV3_PEGASUS_ELECTRIC :Lev3 'Pegasus' (Elèctrica)
STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_LEV4_CHIMAERA_ELECTRIC :Lev4 'Quimera' (Elèctrica)
STR_VEHICLE_NAME_TRAIN_ENGINE_MAGLEV_WIZZOWOW_ROCKETEER :Wizzowow Rocketeer
STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_PASSENGER_CAR :{G=Masculin}Vagó per Passatgers
STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_PASSENGER_CAR :{G=Masculin}Vagó de Passatgers
STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_MAIL_VAN :{G=Masculin}Vagó per Correu
STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_COAL_CAR :{G=Masculin}Vagó per Carbó
STR_VEHICLE_NAME_TRAIN_WAGON_MAGLEV_OIL_TANKER :{G=Masculin}Tanc de Petroli
@@ -4769,9 +4772,9 @@ STR_VEHICLE_NAME_ROAD_VEHICLE_RMT_RUBBER_TRUCK :{G=Masculin}Cam
STR_VEHICLE_NAME_ROAD_VEHICLE_MIGHTYMOVER_SUGAR_TRUCK :{G=Masculin}Camió per Sucre MightyMover
STR_VEHICLE_NAME_ROAD_VEHICLE_POWERNAUGHT_SUGAR_TRUCK :{G=Masculin}Camió per Sucre Powernaught
STR_VEHICLE_NAME_ROAD_VEHICLE_WIZZOWOW_SUGAR_TRUCK :{G=Masculin}Camió per Sucre Wizzowow
STR_VEHICLE_NAME_ROAD_VEHICLE_MIGHTYMOVER_COLA_TRUCK :{G=Masculin}Camió per Refresc MightyMover
STR_VEHICLE_NAME_ROAD_VEHICLE_POWERNAUGHT_COLA_TRUCK :{G=Masculin}Camió per Refresc Powernaught
STR_VEHICLE_NAME_ROAD_VEHICLE_WIZZOWOW_COLA_TRUCK :{G=Masculin}Camió per Refresc Wizzowow
STR_VEHICLE_NAME_ROAD_VEHICLE_MIGHTYMOVER_COLA_TRUCK :{G=Masculin}Camió per Refrescs MightyMover
STR_VEHICLE_NAME_ROAD_VEHICLE_POWERNAUGHT_COLA_TRUCK :{G=Masculin}Camió per Refrescs Powernaught
STR_VEHICLE_NAME_ROAD_VEHICLE_WIZZOWOW_COLA_TRUCK :{G=Masculin}Camió per Refrescs Wizzowow
STR_VEHICLE_NAME_ROAD_VEHICLE_MIGHTYMOVER_COTTON_CANDY :{G=Masculin}Camió per Cotó de Sucre MightyMover
STR_VEHICLE_NAME_ROAD_VEHICLE_POWERNAUGHT_COTTON_CANDY :{G=Masculin}Camió per Cotó de Sucre Powernaught
STR_VEHICLE_NAME_ROAD_VEHICLE_WIZZOWOW_COTTON_CANDY_TRUCK :{G=Masculin}Camió per Cotó de Sucre Wizzowow

View File

@@ -12,7 +12,7 @@
##case nom gen dat aku vok lok ins
# $Id: croatian.txt 27103 2015-01-01 20:51:18Z rubidium $
# $Id: croatian.txt 27179 2015-03-09 18:15:33Z translators $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2975,7 +2975,10 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Prethodn
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Otiđi na prethodni normalni sprite, preskačući svaki pseudo/prebojani/font sprite i {BLACK}Otiđi na sljedeći normalni sprite, preskačući svaki pseudo/prebojani/font sprite i nakon dolaska na prvi prebaci na zadnjeg
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Prikaz trenutno odabranog spritea. Poravnjanje se ignorira kod crtanja ovog spritea.
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Pomakni sprite mijenjajući X i Y pomake
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}X pomak: {NUM}, Y pomak: {NUM}
STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Poništi relativne
STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Poništi trenutne relativne pomake
STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}X pomak: {NUM}, Y pomak: {NUM} (Apsolutni)
STR_SPRITE_ALIGNER_OFFSETS_REL :{BLACK}X pomak: {NUM}, Y pomak: {NUM} (Relativni)
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Odaberi sprite
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Odaberi sprite od bilo gdje na ekranu

View File

@@ -12,7 +12,7 @@
##case nom gen dat acc voc loc ins big small
# $Id: czech.txt 27103 2015-01-01 20:51:18Z rubidium $
# $Id: czech.txt 27184 2015-03-13 20:53:29Z rubidium $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2972,7 +2972,6 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Předcho
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Jít na předchozí normální sprite (s grafikou), přičemž se přeskakují pseudo-/barvící/znakové sprity a při dosažení začátku se jde na konec
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Zobrazení vybraného spritu. Posun se při jeho vykreslení neuvažoval
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Posouvání spritu změnou souřadnic X a Y
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}Posun X: {NUM}, posun Y: {NUM}
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Vybrat sprite
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Klikni na sprite kdekoli na obrazovce

View File

@@ -10,7 +10,7 @@
##grflangid 0x2d
# $Id: danish.txt 27114 2015-01-06 17:45:49Z translators $
# $Id: danish.txt 27184 2015-03-13 20:53:29Z rubidium $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2879,7 +2879,6 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Tidliger
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Fortsæt til den forrige normal sprite, springe over nogen pseudo / recolour / FONT sprites og indpakning rundt fra den første sprite til det sidste
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Repræsentation af den markerede sprite. Justeringen ignoreres når denne sprite tegnes.
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Flyt spriten rundt for at ændre X- og Y-forskydningen
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}X-forskydning: {NUM}, Y-forskydning: {NUM}
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Vælg grafikelement
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Vælg en sprite fra et vilkårligt sted på skærmen

View File

@@ -10,7 +10,7 @@
##grflangid 0x1f
# $Id: dutch.txt 27103 2015-01-01 20:51:18Z rubidium $
# $Id: dutch.txt 27177 2015-03-02 17:46:37Z translators $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2879,7 +2879,10 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Vorige a
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Ga naar vorige normale afbeelding, sla alle pseudo/herkleur/lettertype afbeeldingen over en ga naar het einde bij het begin
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Voorbeeld van de huidige afbeelding. De uitlijning wordt genegeerd bij het weergeven van de afbeelding
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Afbeelding verplaatsen, dit verandert X en Y offsets
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}X offset: {NUM}, Y offset: {NUM}
STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Herstel relatief
STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Herstel de huidige relative offsets
STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}X offset: {NUM}, Y offset: {NUM} (Absoluut)
STR_SPRITE_ALIGNER_OFFSETS_REL :{BLACK}X offset: {NUM}, Y offset: {NUM} (Relatief)
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Kies afbeelding
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Kies een afbeelding van een willekeurige plaats op het scherm

View File

@@ -10,7 +10,7 @@
##grflangid 0x01
# $Id: english.txt 27103 2015-01-01 20:51:18Z rubidium $
# $Id: english.txt 27174 2015-03-01 08:17:14Z alberth $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2316,7 +2316,6 @@ STR_RAIL_TOOLBAR_MAGLEV_CONSTRUCTION_CAPTION :Maglev Construc
STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK :{BLACK}Build railway track. Ctrl toggles build/remove for railway construction. Shift toggles building/showing cost estimate
STR_RAIL_TOOLBAR_TOOLTIP_BUILD_AUTORAIL :{BLACK}Build railway track using the Autorail mode. Ctrl toggles build/remove for railway construction. Shift toggles building/showing cost estimate
STR_RAIL_TOOLBAR_TOOLTIP_BUILD_POLYRAIL :{BLACK}Build railway track using the Polyline mode. Ctrl toggles build/remove for railway construction. Shift toggles building/showing cost estimate
STR_RAIL_TOOLBAR_TOOLTIP_BUILD_TRAIN_DEPOT_FOR_BUILDING :{BLACK}Build train depot (for buying and servicing trains). Shift toggles building/showing cost estimate
STR_RAIL_TOOLBAR_TOOLTIP_CONVERT_RAIL_TO_WAYPOINT :{BLACK}Convert rail to waypoint. Ctrl enables joining waypoints. Shift toggles building/showing cost estimate
STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_STATION :{BLACK}Build railway station. Ctrl enables joining stations. Shift toggles building/showing cost estimate
@@ -2880,7 +2879,10 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Previous
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Proceed to the previous normal sprite, skipping any pseudo/recolour/font sprites and wrapping around from the first sprite to the last
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Representation of the currently selected sprite. The alignment is ignored when drawing this sprite
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Move the sprite around, changing the X and Y offsets
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}X offset: {NUM}, Y offset: {NUM}
STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Reset relative
STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Reset the current relative offsets
STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}X offset: {NUM}, Y offset: {NUM} (Absolute)
STR_SPRITE_ALIGNER_OFFSETS_REL :{BLACK}X offset: {NUM}, Y offset: {NUM} (Relative)
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Pick sprite
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Pick a sprite from anywhere on the screen

View File

@@ -10,7 +10,7 @@
##grflangid 0x3D
# $Id: english_AU.txt 27103 2015-01-01 20:51:18Z rubidium $
# $Id: english_AU.txt 27184 2015-03-13 20:53:29Z rubidium $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2848,7 +2848,6 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Previous
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Proceed to the previous normal sprite, skipping any pseudo/recolour/font sprites and wrapping around at the begin
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Representation of the currently selected sprite. The alignment is ignored when drawing this sprite
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Move the sprite around, changing the X and Y offsets
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}X offset: {NUM}, Y offset: {NUM}
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Pick sprite
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Pick a sprite from anywhere on the screen

View File

@@ -10,7 +10,7 @@
##grflangid 0x00
# $Id: english_US.txt 27165 2015-02-22 17:45:17Z translators $
# $Id: english_US.txt 27184 2015-03-13 20:53:29Z rubidium $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2879,7 +2879,6 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Previous
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Proceed to the previous normal sprite, skipping any pseudo/recolour/font sprites and wrapping around from the first sprite to the last
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Representation of the currently selected sprite. The alignment is ignored when drawing this sprite
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Move the sprite around, changing the X and Y offsets
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}X offset: {NUM}, Y offset: {NUM}
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Pick sprite
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Pick a sprite from anywhere on the screen

View File

@@ -11,7 +11,7 @@
##case n
# $Id: esperanto.txt 27116 2015-01-10 17:46:35Z translators $
# $Id: esperanto.txt 27184 2015-03-13 20:53:29Z rubidium $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2431,7 +2431,6 @@ STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Sekvanta
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Iru al bildeto
STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Antaŭa bildeto
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Movu ĉirkaŭ la bildeton, ŝanĝante la X kaj Y distancojn
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}X distanco: {NUM}, Y distanco: {NUM}
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Elektu bildeto
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Elektu bildeton ie el la ekrano

View File

@@ -11,7 +11,7 @@
##case g in sü
# $Id: estonian.txt 27103 2015-01-01 20:51:18Z rubidium $
# $Id: estonian.txt 27184 2015-03-13 20:53:29Z rubidium $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2874,7 +2874,6 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Eelmine
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Proceed to the previous normal sprite, skipping any pseudo/recolour/font sprites and wrapping around at the begin
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Representation of the currently selected sprite. The alignment is ignored when drawing this sprite
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Liiguta spraiti , muutes X ja Y tasakaalu
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}X tasakaal: {NUM}, Y tasakaal: {NUM}
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Korja sprite
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Korja sprite ükskõik kust ekraanil

View File

@@ -10,7 +10,7 @@
##grflangid 0x35
# $Id: finnish.txt 27103 2015-01-01 20:51:18Z rubidium $
# $Id: finnish.txt 27179 2015-03-09 18:15:33Z translators $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2879,7 +2879,10 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Edelinen
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Jatka edelliseen tavalliseen spriteen ja hyppää yli kaikki pseudo-/uudelleenväritetyt/fontti- spritet ja mene loppuun kun päästään ensimmäiseen
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Valitun spriten näyttö. Sijaintia ei huomioida spriteä piirrettäessä
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Liikuta spriteä ympäriinsä, muuttaen X- ja Y-sijainteja
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}X-sijainti: {NUM}, Y-sijainti: {NUM}
STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Nollaa suhteelliset
STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Nollaa suhteelliset erotukset
STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}X-erotus: {NUM}, Y-erotus: {NUM} (Absoluuttinen)
STR_SPRITE_ALIGNER_OFFSETS_REL :{BLACK}X-erotus: {NUM}, Y-erotus: {NUM} (Suhteellinen)
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Valitse sprite
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Valitse sprite ruudulta

View File

@@ -11,7 +11,7 @@
##gender m m2 f
# $Id: french.txt 27103 2015-01-01 20:51:18Z rubidium $
# $Id: french.txt 27181 2015-03-11 17:46:24Z translators $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2880,7 +2880,10 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Sprite p
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Se rendre au précédent sprite normal, en ignorant les pseudo-sprites et les sprites de recoloration et de police, et en bouclant du premier vers le dernier
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Representation du sprite actuellement séléctionné. L'alignement est ignoré lors de l'affichage de ce sprite
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Déplacer le sprite, en modifiant les décalages X et Y
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}Décalage X{NBSP}: {NUM}, décalage Y{NBSP}: {NUM}
STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Réinitialiser les relatifs
STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Réinitialiser les décalages relatifs courants
STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}Décalage X{NBSP}: {NUM}, décalage Y{NBSP}: {NUM} (Absolu)
STR_SPRITE_ALIGNER_OFFSETS_REL :{BLACK}Décalage X{NBSP}: {NUM}, décalage Y{NBSP}: {NUM} (Relatif)
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Choisir un sprite
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Choisir un des sprites affichés sur l'écran

View File

@@ -12,7 +12,7 @@
##case nom gen dat voc
# $Id: gaelic.txt 27103 2015-01-01 20:51:18Z rubidium $
# $Id: gaelic.txt 27179 2015-03-09 18:15:33Z translators $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -3108,7 +3108,10 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}An sprit
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Lean air adhart dhan sprite àbhaisteach roimhe, a' gearradh leum thairis air sprites mas fhìor/ath-dhathaidh/crutha-chlò is a' pasgadh aig an toiseach gun sprite mu dheireadh
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Riochdachadh air an sprite a thagh thu an-dràsta. Thèid an co-thaobhadh a chur dhan dàrna taobh nuair a thèid an sprite a tharraing
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Gluais an sprite mu thimcheall, ag atharrachadh nam frith-àireamhan aig X is Y
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}Frith-àireamh X: {NUM}, frith-àireamh Y: {NUM}
STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Ath-shuidhich na frith-àireamhean dàimheach
STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Ath-shuidhich na frith-àireamhean dàimheach làithreach
STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}frith-àireamh X: {NUM}, frith-àireamh Y: {NUM} (absaloideach)
STR_SPRITE_ALIGNER_OFFSETS_REL :{BLACK}frith-àireamh X: {NUM}, frith-àireamh Y: {NUM} (dàimheach)
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Tagh sprite
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Tagh sprite bho àite sam bith air an sgrìn

View File

@@ -11,7 +11,7 @@
##gender m f n
# $Id: galician.txt 27103 2015-01-01 20:51:18Z rubidium $
# $Id: galician.txt 27184 2015-03-13 20:53:29Z rubidium $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2837,7 +2837,6 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Sprite a
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Ir ao sprite anterior, ignorando pseudosprites, sprites recoloreados e sprites de fonte, e volvendo a empezar ao chegar ao inicio
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Representación do sprite seleccionado. A aliñación ignórase ao debuxar este sprite
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Move-lo sprite, cambiando os valores de X e Y
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}Desp. X: {NUM}, Desp. Y: {NUM}
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Seleccionar sprite
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Seleccionar un sprite en calquera parte da pantalla

View File

@@ -11,7 +11,7 @@
##gender m w n p
# $Id: german.txt 27153 2015-02-15 17:45:47Z translators $
# $Id: german.txt 27184 2015-03-13 20:53:29Z rubidium $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2880,7 +2880,6 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Vorherig
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Gehe zum vorherigen normalen Sprite und überspringe alle Pseudo-, Recolour- und Schriftsprites (springt ggf. vom letzten bis zum ersten Sprite)
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Darstellung des aktuellen Sprites. Die Ausrichtung wird beim Zeichnen des Sprites ignoriert
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Bewege die Sprites und ändere dadurch die X- und Y-Offsets
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}X-Offset: {NUM}, Y-Offset: {NUM}
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Sprite auswählen
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Wähle ein Sprite vom Bildschirm aus

View File

@@ -12,7 +12,7 @@
##case subs date geniki
# $Id: greek.txt 27103 2015-01-01 20:51:18Z rubidium $
# $Id: greek.txt 27184 2015-03-13 20:53:29Z rubidium $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2855,7 +2855,6 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Προη
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Προχώρησε στο προηγούμενο κανονικό sprite, προσπερνώντας οποιαδήποτε ψευδό/επαναχρωματιζόμενα/γραμματοσειράς sprites και ξαναεκτέλεσε τη διαδικασία από το πρώτο sprite ως το τελεταίο
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Επανεμφάνιση του επιλεγμένου sprite. Η ευθυγράμμιση αγνοείται όταν γίνεται η σχεδίαση του sprite
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Μετακίνηση του sprite τριγύρω, αλλάζοντας τα στίγματα Χ και Υ
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}Στίγμα Χ: {NUM}, Στίγμα Υ: {NUM}
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Επιλογή sprite
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Επιλογή ενός sprite από οπουδήποτε στη οθόνη

View File

@@ -12,7 +12,7 @@
##case singular plural gen
# $Id: hebrew.txt 27103 2015-01-01 20:51:18Z rubidium $
# $Id: hebrew.txt 27179 2015-03-09 18:15:33Z translators $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -109,7 +109,7 @@ STR_CARGO_SINGULAR_FIZZY_DRINK.plural :משקאות מ
# Quantity of cargo
STR_QUANTITY_NOTHING :
STR_QUANTITY_PASSENGERS :{P 0 "נוסע " ""}{COMMA}{P "" " נוסעים"}
STR_QUANTITY_PASSENGERS :{COMMA}{NBSP}נוסע{P "" ים}
STR_QUANTITY_COAL :{WEIGHT_LONG} של פחם
STR_QUANTITY_MAIL :{P 0 "שק " ""}{COMMA}{P "" " שקים"} של דואר
STR_QUANTITY_OIL :{VOLUME_LONG} של נפט
@@ -988,6 +988,8 @@ STR_GAME_OPTIONS_RESOLUTION :{BLACK}רזלו
STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}בחר את רזולוציית המסך
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}{P 0 "קובץ " ""}{NUM}{P "" " קבצים"} חסר{P 0 "" ים}/הושחט{P 0 "" ו}
@@ -1088,7 +1090,7 @@ STR_CITY_APPROVAL_HOSTILE :עויין
STR_WARNING_NO_SUITABLE_AI :{WHITE}אין בינות מלאכותיות מתאימות...{}באפשרותך להוריד בינות מלאכותיות בעזרת מערכת ה'תוכן המקוון'
# Advanced settings window
# Settings tree window
STR_CONFIG_SETTING_FILTER_TITLE :{BLACK}מחרוזת סינון:
STR_CONFIG_SETTING_EXPAND_ALL :{BLACK}הרחב הכל
STR_CONFIG_SETTING_COLLAPSE_ALL :{BLACK}צמצם הכל
@@ -1104,9 +1106,9 @@ STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :הגדרת חב
STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}קטגוריה:
STR_CONFIG_SETTING_RESTRICT_TYPE :{BLACK}סוג:
STR_CONFIG_SETTING_RESTRICT_DROPDOWN_HELPTEXT :{BLACK}מגביל את הרשימה להלן תוך שימוש בסינון שהוגדר מראש.
STR_CONFIG_SETTING_RESTRICT_BASIC :הגדרות בסיסיות
STR_CONFIG_SETTING_RESTRICT_ADVANCED :הגדרות מתקדמות
STR_CONFIG_SETTING_RESTRICT_ALL :הגדרות מומחה / כל ההגדרות
STR_CONFIG_SETTING_RESTRICT_BASIC :הגדרות בסיסיות (הצג רק הגדרות חשובות)
STR_CONFIG_SETTING_RESTRICT_ADVANCED :הגדרות מתקדמות (הצג את רוב ההגדרות)
STR_CONFIG_SETTING_RESTRICT_ALL :הגדרות מומחה (הצג את כל ההגדרות, כולל הגדרות משונות)
STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_DEFAULT :הגדרות בעלות ערך השונה מברירת המחדל
STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_NEW :הגדרות בעלות ערך השונה מזה אשר בהגדרות המשחק החדש שלך
@@ -1277,7 +1279,7 @@ STR_CONFIG_SETTING_ERRMSG_DURATION :משך הצגת
STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :פרק הזמן להצגת הודעות שגיאה בחלון אדום. יש לשים לב כי כמה הודעות שגיאה (קריטיות) אינן נסגרות אוטומטית אחרי פרק זמן זה, אלא יש לסגור אותן ידנית
STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{P 0 "שנייה " ""}{COMMA}{P "" " שניות"}
STR_CONFIG_SETTING_HOVER_DELAY :הצג רמזים צצים: {STRING}
STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :השהייה טרם הצגת רמזים צצים כאשר העכבר מרחף מעל חלק ממשק. לחלופין, ניתן לקשר רמזים צצים לכפתור העכבר הימני
STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :השהייה טרם הצגת רמזים צצים כאשר העכבר מרחף מעל חלק ממשק. לחלופין, ניתן לקשר רמזים צצים לכפתור העכבר הימני כאשר מוגדר 0.
STR_CONFIG_SETTING_HOVER_DELAY_VALUE :רחף למשך {P 0 "שניה " ""}{COMMA}{P "" " שניות"}
STR_CONFIG_SETTING_HOVER_DELAY_DISABLED :קליק ימני
STR_CONFIG_SETTING_POPULATION_IN_LABEL :הראה את אוכלוסיית העיר בתוך תוית השם של העיר: {STRING}
@@ -1526,7 +1528,7 @@ STR_CONFIG_SETTING_DRAG_SIGNALS_FIXED_DISTANCE_HELPTEXT :בחר את ה
STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE :{STRING} :בנה רמזורים מכאניים לפני
STR_CONFIG_SETTING_SEMAPHORE_BUILD_BEFORE_DATE_HELPTEXT :קבע את השנה בה רמזורים חשמליים ישמשו במסילות. לפני שנה זו יהיו בשימוש רמזורים מכניים (פעולתם זהה, הם רק נראים אחרת)
STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI :{STRING} :אפשר ממשק ויזואלי עבור רמזורים
STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI_HELPTEXT :הצג חלון לבחירת סוג הרמזור להצבה, במקום רק מעבר בין האפשרויות ללא חלון באמצעות הקלקה על "בנה רמזורים" תוך לחיצה על מקש Ctrl
STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI_HELPTEXT :הצג חלון לבחירת סוג הרמזור להצבה, במקום רק מעבר בין האפשרויות באמצעות Ctrl+לחיצה על רמזורים בנויים
STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE :{STRING} :ברירת מחדל לבניית רמזורי רכבת
STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE_HELPTEXT :סוג רמזור לשימוש בברירת מחדל
STR_CONFIG_SETTING_DEFAULT_SIGNAL_NORMAL :רמזורי בלוק
@@ -1611,7 +1613,7 @@ STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT :"סימטרי"
STR_CONFIG_SETTING_DISTRIBUTION_MAIL :אופן החלוקה עבור דואר: {STRING}
STR_CONFIG_SETTING_DISTRIBUTION_MAIL_HELPTEXT :"סימטרי" הכוונה שכמות הדואר מתחנה א' לתחנה ב' הוא פחות או יותר אותה כמות הדואר מתחנה ב' לתחנה א'. "אסימטרי" הכוונה שכמויות דואר שרירותיות יכולות להישלח לכל אחד מהכיוונים. "ידני" הכוונה שאין חלוקה אוטומטית עבור דואר.
STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED :אופן החלוקה עבור מחלקה משוריינת: {STRING}
STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED_HELPTEXT :מחלקה משוריינת מובילה חפצי ערך באקלים ממוזג, יהלומים באקלים טרופי וזהב באקלים קר. קבצי שדרוג גראפי עלולים לשנות חלוקה זו. "סימטרי" הכוונה שכמות המטען מתחנה א' לתחנה ב' הוא פחות או יותר אותה כמות המטען מתחנה ב' לתחנה א'. "אסימטרי" הכוונה שכמויות מטען שרירותיות יכולות להישלח לכל אחד מהכיוונים. "ידני" הכוונה שאין חלוקה אוטומטית עבור המטען. באקלים קר מומלץ לקבוע למצב אסימטרי או ידני כי בנקים לא שולחים זהב חזרה למכרות יהלומים. באקלים ממוטזג או טרופי ניתן לבחור גם במצב סימטרי כאשר בנקים ישלחו חפצי ערך חזרה למקור של אותם חפצי ערך.
STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED_HELPTEXT :מחלקה משוריינת מובילה חפצי ערך באקלים ממוזג, יהלומים באקלים טרופי וזהב באקלים קר. קבצי שדרוג גראפי עלולים לשנות חלוקה זו. "סימטרי" הכוונה שכמות המטען מתחנה א' לתחנה ב' הוא פחות או יותר אותה כמות המטען מתחנה ב' לתחנה א'. "אסימטרי" הכוונה שכמויות מטען שרירותיות יכולות להישלח לכל אחד מהכיוונים. "ידני" הכוונה שאין חלוקה אוטומטית עבור המטען. באקלים קר מומלץ לקבוע למצב אסימטרי או ידני כי בנקים לא שולחים זהב חזרה למכרות יהלומים. באקלים ממוזג או טרופי ניתן לבחור גם במצב סימטרי כאשר בנקים ישלחו חפצי ערך חזרה למקור של אותם חפצי ערך.
STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT :אופן החלוקה עבור מטענים אחרים: {STRING}
STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT_HELPTEXT :"אסימטרי" הכוונה שכמויות מטען שרירותיות יכולות להישלח לכל אחד מהכיוונים. "ידני" הכוונה שאין חלוקה אוטומטית עבור המטען.
STR_CONFIG_SETTING_LINKGRAPH_ACCURACY :דיוק החלוקה: {STRING}
@@ -1647,7 +1649,7 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_METRIC :מטרי (קי
STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_SI :בינלאומית (קילו ניוטון)
STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT :יחידות גובה: {STRING}
STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_HELPTEXT :כאשר מוצגים גבהים השתמש ביחידות שנבחרו.
STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_HELPTEXT :כאשר מוצגים גבהים השתמש ביחידות שנבחרו
STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_IMPERIAL :בריטית (רגל)
STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :מטרי (מטר)
STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (מטר)
@@ -2828,10 +2830,9 @@ STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}עבור
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}דלג לספרייט
STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK}עבור לספרייט הנתון. אם הוא אינו ספרייט רגיל, עבור לספרייט הרגיל הראשון שבא אחריו
STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}הספרייט הקודם
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}עבור לספרייט הקודם, כאשר נדלג על כל הספרייטים המיוחדים ונחזור בסוף לתחילת הרשימה
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}עבור לספרייט הקודם, כאשר נדלג על כל הספרייטים המיוחדים ונחזור מתחילת הרשימה לסופה
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}הייצוג של הספרייט הנבחר. בעת ציור הספרייט, נתעלם מהיישור שלו
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}הזז את הספרייט, תוך שינוי מיקום על צירי ה-X וה-Y
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}X היסט: {NUM}, Y היסט: {NUM}
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}בחר ספרייט
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}בחר ספרייט מנקודה כלשהיא במסך

View File

@@ -11,7 +11,7 @@
##case t ba
# $Id: hungarian.txt 27103 2015-01-01 20:51:18Z rubidium $
# $Id: hungarian.txt 27184 2015-03-13 20:53:29Z rubidium $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2943,7 +2943,6 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Előző
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Továbbhaladás az előző normál spritera, kihagyva bármilyen ál/átszínező/betű spriteokat, az elején folytatva az utolsóval
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}A jelenleg kiválasztott sprite ábrázolása. Az elhelyezkedés kikapcsolt sprite-rajzolás közben
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Sprite elmozdítása, módosítva az X és Y offszeteket
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}X offszet: {NUM}, Y offszet: {NUM}
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Sprite felszedése
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Szedj fel egy spriteot akárhonnan a képernyőről

View File

@@ -11,7 +11,7 @@
##gender karlkyn kvenkyn hvorugkyn
# $Id: icelandic.txt 27103 2015-01-01 20:51:18Z rubidium $
# $Id: icelandic.txt 27184 2015-03-13 20:53:29Z rubidium $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2711,7 +2711,6 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Fyrri hr
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Fara á fyrri venjulegu hreyfimynd, sleppir gervi/endurlitun/letur hreyfimyndum og fer aftast í listen þegar upphafi er náð.
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Framsetning á valinni hreyfimynd. Samstillingu er sleppt við teikningu á þessari hreyfimynd.
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Færðu hreyfimyndina, breytir X og Y hliðrun
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}X hliðrun: {NUM}, Y hliðrun: {NUM}
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Veldu hreyfimynd
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Veldu hreyfimynd hvaðan sem er af skjánum

View File

@@ -10,7 +10,7 @@
##grflangid 0x5a
# $Id: indonesian.txt 27154 2015-02-18 17:45:30Z translators $
# $Id: indonesian.txt 27184 2015-03-13 20:53:29Z rubidium $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2879,7 +2879,6 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Sprite s
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Lanjutkan ke sprite normal sebelumnya, lewati sembarang sprite bayangan/warna ulang/huruf dan pembungkus saat mulai
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Mewakili sprite yang sedang dipilih. Penjajaran diabaikan ketika sprite ini digambar
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Pindahkan sprite, mengubah offset X dan Y
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}X offset: {NUM}, Y offset: {NUM}
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Pilih sprite
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Pilih sebuah sprite di manapun pada layar

View File

@@ -10,7 +10,7 @@
##grflangid 0x08
# $Id: irish.txt 27121 2015-01-18 17:45:32Z translators $
# $Id: irish.txt 27184 2015-03-13 20:53:29Z rubidium $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2844,7 +2844,6 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Sprite r
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Téigh ar aghaigh chuig an gnáth-sprite roimhe, ag scipeáil thar aon bhréag-sprite nó sprite athdathaithe/clófhoirne agus ag timfhilleadh ag an tús
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Léiriú den sprite atá roghnaithe faoi láthair. Déantar neamhaird den ailíniú agus an sprite seo á tharraingt
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Bog an sprite timpeall, ag athrú an seach-chur X agus Y
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}seach-chur X: {NUM}, seach-chur Y: {NUM}
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Roghnaigh sprite
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Roghnaigh sprite ó áit ar bith ar an scáileán

View File

@@ -12,7 +12,7 @@
##case ms mp fs fp
# $Id: italian.txt 27103 2015-01-01 20:51:18Z rubidium $
# $Id: italian.txt 27179 2015-03-09 18:15:33Z translators $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2908,8 +2908,11 @@ STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK}Va allo
STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Precedente
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Procede al precedente sprite normale, saltanto qualsiasi sprite speciale, di ricoloramento o carattere e tornando all'ultimo se viene raggiunto il primo della lista
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Rappresentazione dello sprite corrente. L'allineamento viene ignorato in questa casella.
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Sposta lo sprite, cambiando i posizionamenti X e Y
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}Posizionamento X: {NUM}, Y: {NUM}
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Sposta lo sprite, cambiando gli spiazzamenti X e Y
STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Reimposta posizione relativa
STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Reimposta gli spiazzamenti relativi attuali
STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}Posizione X: {NUM}, Y: {NUM} (assoluto)
STR_SPRITE_ALIGNER_OFFSETS_REL :{BLACK}Posizione X: {NUM}, Y: {NUM} (relativo)
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Scegli sprite
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Sceglie uno o più sprite da un qualsiasi punto dello schermo

View File

@@ -10,7 +10,7 @@
##grflangid 0x39
# $Id: japanese.txt 27103 2015-01-01 20:51:18Z rubidium $
# $Id: japanese.txt 27184 2015-03-13 20:53:29Z rubidium $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2879,7 +2879,6 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}前の
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}前のノーマルスプライトに戻ります。始端と終端は連続しているものとみなし、疑似/リカラー/フォントスプライトはスキップします
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}現在選択されているスプライトの代表絵を示します。この配列はスプライトを描画するときには無視されます
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}X・Yオフセットを変更し、スプライトを移動します
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}Xオフセット: {NUM}, Yオフセット: {NUM}
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}スプライトを選ぶ
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}画面内からスプライトを選びます

View File

@@ -11,7 +11,7 @@
##gender m f
# $Id: korean.txt 27154 2015-02-18 17:45:30Z translators $
# $Id: korean.txt 27189 2015-03-16 17:45:22Z translators $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -1218,7 +1218,7 @@ STR_CONFIG_SETTING_SIGNALSIDE_DRIVING_SIDE :진행 방향
STR_CONFIG_SETTING_SIGNALSIDE_RIGHT :오른쪽에
STR_CONFIG_SETTING_SHOWFINANCES :연말에 자동으로 재정 창을 띄움: {STRING}
STR_CONFIG_SETTING_SHOWFINANCES_HELPTEXT :이 옵션을 켜면 회사의 재정 상태를 확인하기 쉽도록 매년 말에 재정 창이 자동으로 뜹니다.
STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT :새로 지정하는 경로는 기본적으로 '직'으로 처리: {STRING}
STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT :새로 지정하는 경로는 기본적으로 '직'으로 처리: {STRING}
STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT_HELPTEXT :일반적으로 차량은 경로 상에 있는 모든 역에 정차하게 되어있습니다. 이 옵션을 켜면 차량이 마지막 목적지까지 정차없이 모든 역을 통과할 것입니다. 이 옵션은 새로 경로를 지정하는 차량에만 적용되는 점을 알아두십시오. 하지만 각 차량의 경로는 두 가지 방법 중에 원하는 대로 다시 설정할 수 있습니다.
STR_CONFIG_SETTING_STOP_LOCATION :새로 지정하는 역 정차 경로는 기본적으로 역의 {STRING}에 정지하도록 설정
STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :열차가 기본적으로 정거장의 어느 위치에 정차할 것인지를 설정합니다. '가까운 쪽'은 역에 진입하는 곳과 가까운 곳에, '중간'은 역 중앙에, '먼쪽'은 진입하는 곳과 먼 곳에 정차합니다. 이 옵션은 새로 경로를 지정하는 차량에만 적용되는 점을 알아두십시오. 하지만 각 차량의 경로는 두 가지 방법 중에 원하는 대로 다시 설정할 수 있습니다.
@@ -1322,7 +1322,7 @@ STR_CONFIG_SETTING_TREE_PLACER_HELPTEXT :지도의 나
STR_CONFIG_SETTING_TREE_PLACER_NONE :없음
STR_CONFIG_SETTING_TREE_PLACER_ORIGINAL :오리지널
STR_CONFIG_SETTING_TREE_PLACER_IMPROVED :향상됨
STR_CONFIG_SETTING_ROAD_SIDE :자동차/전차: {STRING}
STR_CONFIG_SETTING_ROAD_SIDE :자동차 통행 방향: {STRING}
STR_CONFIG_SETTING_ROAD_SIDE_HELPTEXT :통행방향을 선택하세요.
STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :높이맵 회전: {STRING}
STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :반시계방향
@@ -1711,7 +1711,7 @@ STR_CONFIG_SETTING_QUERY_CAPTION :{WHITE}설정
# Config errors
STR_CONFIG_ERROR :{WHITE}설정 파일에서 오류 발생
STR_CONFIG_ERROR_ARRAY :{WHITE}... 배열 '{STRING}'에서 오류 발생
STR_CONFIG_ERROR_INVALID_VALUE :{WHITE}... '{1:STRING}'{G 0 "은" "는"} '{0:STRING}'에 사용할 수 없습니다
STR_CONFIG_ERROR_INVALID_VALUE :{WHITE}... '{1:STRING}'에 잘못된 값('{0:STRING}')이 지정되었습니다.
STR_CONFIG_ERROR_TRAILING_CHARACTERS :{WHITE}... 설정 '{STRING}' 끝에 후행문자(??)
STR_CONFIG_ERROR_DUPLICATE_GRFID :{WHITE}... NewGRF '{STRING}' 무시중: '{STRING}'{G 1 "과" "와"} GRF ID가 겹침
STR_CONFIG_ERROR_INVALID_GRF :{WHITE}... 유효하지 않은 NewGRF '{STRING}' 무시중: {STRING}
@@ -1802,10 +1802,10 @@ STR_CHEAT_CROSSINGTUNNELS :{LTBLUE}터널
STR_CHEAT_NO_JETCRASH :{LTBLUE}대형 항공기가 소형 공항에서 (자주) 충돌하지 않게 함: {ORANGE}{STRING}
STR_CHEAT_EDIT_MAX_HL :{LTBLUE}최대 지형 고도값 수정: {ORANGE}{NUM}
STR_CHEAT_EDIT_MAX_HL_QUERY_CAPT :{WHITE}최대 지형 높이값을 수정합니다.
STR_CHEAT_SWITCH_CLIMATE_TEMPERATE_LANDSCAPE :온대 기후 지형
STR_CHEAT_SWITCH_CLIMATE_SUB_ARCTIC_LANDSCAPE :아한대 지형
STR_CHEAT_SWITCH_CLIMATE_SUB_TROPICAL_LANDSCAPE :아열대 기후 지형
STR_CHEAT_SWITCH_CLIMATE_TOYLAND_LANDSCAPE :장난감나라 지형
STR_CHEAT_SWITCH_CLIMATE_TEMPERATE_LANDSCAPE :온대 기후
STR_CHEAT_SWITCH_CLIMATE_SUB_ARCTIC_LANDSCAPE :아한대 기후
STR_CHEAT_SWITCH_CLIMATE_SUB_TROPICAL_LANDSCAPE :아열대 기후
STR_CHEAT_SWITCH_CLIMATE_TOYLAND_LANDSCAPE :장난감나라
STR_CHEAT_CHANGE_DATE :{LTBLUE}날짜 변경: {ORANGE}{DATE_SHORT}
STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}현재의 연도를 변경
STR_CHEAT_SETUP_PROD :{LTBLUE}1차 산업시설 생산량 조절 허용: {ORANGE}{STRING}
@@ -2065,7 +2065,7 @@ STR_NETWORK_CONNECTING_SPECIAL_2 :{BLACK}회사
############ End of leave-in-this-order
STR_NETWORK_CONNECTING_WAITING :{BLACK}{NUM}명의 접속자가 먼저 기다리고 있습니다
STR_NETWORK_CONNECTING_DOWNLOADING_1 :{BLACK}지금까지 {BYTES}를 다운로드하였습니다
STR_NETWORK_CONNECTING_DOWNLOADING_2 :{BLACK}{BYTES} / {BYTES} 다운로드
STR_NETWORK_CONNECTING_DOWNLOADING_2 :{BLACK}{BYTES} / {BYTES} 다운로드 완료
STR_NETWORK_CONNECTION_DISCONNECT :{BLACK}접속 끊기
@@ -2360,17 +2360,17 @@ STR_STATION_CLASS_WAYP :{G=f}경유지
STR_BUILD_SIGNAL_CAPTION :{WHITE}신호기 선택
STR_BUILD_SIGNAL_SEMAPHORE_NORM_TOOLTIP :{BLACK}폐색 신호기 (구식){}가장 기본적인 신호기 형식입니다. 단 한 대의 열차만이 이 폐색 구간을 통과할 수 있습니다.
STR_BUILD_SIGNAL_SEMAPHORE_ENTRY_TOOLTIP :{BLACK}입구 신호기 (구식){}다음 폐색 구간에 있는 출구 신호기가 하나라도 파란불이면 파란불이 되며, 그렇지 않은 경우에는 빨간불이 됩니다.
STR_BUILD_SIGNAL_SEMAPHORE_EXIT_TOOLTIP :{BLACK}출구 신호기 (구식){}일반 신호기와 기능이 똑같지만, 입구 & 콤보 신호기와 올바르게 연계되어야 합니다.
STR_BUILD_SIGNAL_SEMAPHORE_COMBO_TOOLTIP :{BLACK}콤보 신호기 (구식){}콤보 신호기는 입구 신호기와 출구 신호기의 역할을 동시에 합니다. 이 신호기는 사전 신호기의 거대한 "나뭇가지 구조"를 건설할 수 있도록 도와줍니다.
STR_BUILD_SIGNAL_SEMAPHORE_EXIT_TOOLTIP :{BLACK}출구 신호기 (구식){}일반 신호기와 기능이 똑같지만, 입구 & 복합 신호기와 올바르게 연계되어야 합니다.
STR_BUILD_SIGNAL_SEMAPHORE_COMBO_TOOLTIP :{BLACK}복합 신호기 (구식){}복합 신호기는 입구 신호기와 출구 신호기의 역할을 동시에 합니다. 이 신호기는 사전 신호기의 거대한 "나뭇가지 구조"를 건설할 수 있도록 도와줍니다.
STR_BUILD_SIGNAL_SEMAPHORE_PBS_TOOLTIP :{BLACK}경로 신호기 (구식){}경로 신호기는 경로가 겹치지 않는 경우에 한 대 이상의 열차가 한 폐색 구간에 동시에 들어갈 수 있게 해줍니다. 경로 신호기는 반대편에서 통과가 가능합니다.
STR_BUILD_SIGNAL_SEMAPHORE_PBS_OWAY_TOOLTIP :{BLACK}단방향 경로 신호기 (구식){}경로 신호기는 경로가 겹치지 않는 경우에 한 대 이상의 열차가 한 폐색 구간에 동시에 들어갈 수 있게 해줍니다. 단방향 경로 신호기는 반대편에서 통과가 불가능합니다.
STR_BUILD_SIGNAL_ELECTRIC_NORM_TOOLTIP :{BLACK}폐색 신호기 (전자식){}가장 기본적인 신호기 형식입니다. 단 한 대의 열차만이 이 폐색 구간을 통과할 수 있습니다.
STR_BUILD_SIGNAL_ELECTRIC_ENTRY_TOOLTIP :{BLACK}입구 신호기 (전자식){}다음 폐색 구간에 있는 출구 신호기가 하나라도 파란불이면 파란불이 되며, 그렇지 않은 경우에는 빨간불이 됩니다.
STR_BUILD_SIGNAL_ELECTRIC_EXIT_TOOLTIP :{BLACK}출구 신호기 (전자식){}일반 신호기와 기능이 똑같지만, 입구 & 콤보 신호기와 올바르게 연계되어야 합니다.
STR_BUILD_SIGNAL_ELECTRIC_COMBO_TOOLTIP :{BLACK}콤보 신호기 (전자식){}콤보 신호기는 입구 신호기와 출구 신호기의 역할을 동시에 합니다. 이 신호기는 사전 신호기의 거대한 "나뭇가지식 구조"를 건설할 수 있도록 도와줍니다.
STR_BUILD_SIGNAL_ELECTRIC_EXIT_TOOLTIP :{BLACK}출구 신호기 (전자식){}일반 신호기와 기능이 똑같지만, 입구 & 복합 신호기와 올바르게 연계되어야 합니다.
STR_BUILD_SIGNAL_ELECTRIC_COMBO_TOOLTIP :{BLACK}복합 신호기 (전자식){}복합 신호기는 입구 신호기와 출구 신호기의 역할을 동시에 합니다. 이 신호기는 사전 신호기의 거대한 "나뭇가지식 구조"를 건설할 수 있도록 도와줍니다.
STR_BUILD_SIGNAL_ELECTRIC_PBS_TOOLTIP :{BLACK}경로 신호기 (전자식){}경로 신호기는 경로가 겹치지 않는 경우에 한 대 이상의 열차가 한 폐색 구간에 동시에 들어갈 수 있게 해줍니다. 경로 신호기는 반대편에서 통과가 가능합니다.
STR_BUILD_SIGNAL_ELECTRIC_PBS_OWAY_TOOLTIP :{BLACK}단방향 경로 신호기 (전자식){}경로 신호기는 경로가 겹치지 않는 경우에 한 대 이상의 열차가 한 폐색 구간에 동시에 들어갈 수 있게 해줍니다. 단방향 경로 신호기는 반대편에서 통과가 불가능합니다.
STR_BUILD_SIGNAL_CONVERT_TOOLTIP :{BLACK}신호기 변환{}이 버튼을 선택한 뒤 이미 설치된 신호기를 클릭하면, 신호기의 종류(일반/입구/출구/콤보/경로)와 형식(구식↔전자식)을 변경하고, CTRL+클릭하면 신호기의 형식을 변경합니다. SHIFT+클릭을 사용하면 예상 가격을 볼 수 있습니다.
STR_BUILD_SIGNAL_CONVERT_TOOLTIP :{BLACK}신호기 변환{}이 버튼을 선택한 뒤 이미 설치된 신호기를 클릭하면, 신호기의 종류(일반/입구/출구/복합/경로)와 형식(구식↔전자식)을 변경하고, CTRL+클릭하면 신호기의 형식을 변경합니다. SHIFT+클릭을 사용하면 예상 가격을 볼 수 있습니다.
STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_TOOLTIP :{BLACK}드래그시 신호기 간격
STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_DECREASE_TOOLTIP :{BLACK}드래그시 신호기 간격 감소
STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_INCREASE_TOOLTIP :{BLACK}드래그시 신호기 증가
@@ -2563,7 +2563,7 @@ STR_INDUSTRY_CARGOES_CUSTOMERS :{WHITE}소비
STR_INDUSTRY_CARGOES_HOUSES :{WHITE}도시 가구
STR_INDUSTRY_CARGOES_INDUSTRY_TOOLTIP :{BLACK}이 산업시설의 공급자와 고객을 보려면 클릭하세요.
STR_INDUSTRY_CARGOES_CARGO_TOOLTIP :{BLACK}{STRING}{}이 화물의 공급자와 고객을 보려면 클릭하세요.
STR_INDUSTRY_DISPLAY_CHAIN :{BLACK}산업망 표
STR_INDUSTRY_DISPLAY_CHAIN :{BLACK}산업시설 연계도 보기
STR_INDUSTRY_DISPLAY_CHAIN_TOOLTIP :{BLACK}이 산업시설에서 생산/소비하는 화물을 보여줍니다.
STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP :{BLACK}지도에 표시
STR_INDUSTRY_CARGOES_NOTIFY_SMALLMAP_TOOLTIP :{BLACK}위 산업망에 표시된 산업을 소형지도에서 볼 수 있게 합니다.
@@ -2610,23 +2610,23 @@ STR_LAI_RAIL_DESCRIPTION_TRACK :{STRING} 선로
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_SIGNALS :일반 신호기가 설치된 {STRING} 선로
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRESIGNALS :입구 신호기가 설치된 {STRING} 선로
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXITSIGNALS :출구 신호기가 설치된 {STRING} 선로
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :콤보 신호기가 설치된 {STRING} 선로
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBOSIGNALS :복합 신호기가 설치된 {STRING} 선로
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBSSIGNALS :경로 신호기가 설치된 {STRING} 선로
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NOENTRYSIGNALS :단방향 경로 신호기가 설치된 {STRING} 선로
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PRESIGNALS :일반 신호기와 입구 신호기가 설치된 {STRING} 선로
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_EXITSIGNALS :일반 신호기와 출구 신호기가 설치된 {STRING} 선로
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :일반 신호기와 콤보 신호기가 설치된 {STRING} 선로
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_COMBOSIGNALS :일반 신호기와 복합 신호기가 설치된 {STRING} 선로
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_PBSSIGNALS :일반 신호기와 경로 신호기가 설치된 {STRING} 선로
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_NORMAL_NOENTRYSIGNALS :일반 신호기와 단방향 경로 신호기가 설치된 {STRING} 선로
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_EXITSIGNALS :입구 신호기와 출구 신호기가 설치된 {STRING} 선로
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :입구 신호기와 콤보 신호기가 설치된 {STRING} 선로
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_COMBOSIGNALS :입구 신호기와 복합 신호기가 설치된 {STRING} 선로
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_PBSSIGNALS :입구 신호기와 경로 신호기가 설치된 {STRING} 선로
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PRE_NOENTRYSIGNALS :입구 신호기와 단방향 경로 신호기가 설치된 {STRING} 선로
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :출구 신호기와 콤보 신호기가 설치된 {STRING} 선로
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_COMBOSIGNALS :출구 신호기와 복합 신호기가 설치된 {STRING} 선로
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_PBSSIGNALS :출구 신호기와 경로 신호기가 설치된 {STRING} 선로
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_EXIT_NOENTRYSIGNALS :출구 신호기와 단방향 경로 신호기가 설치된 {STRING} 선로
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :콤보 신호기와 경로 신호기가 설치된 {STRING} 선로
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :콤보 신호기와 단방향 경로 신호기가 설치된 {STRING} 선로
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_PBSSIGNALS :복합 신호기와 경로 신호기가 설치된 {STRING} 선로
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_COMBO_NOENTRYSIGNALS :복합 신호기와 단방향 경로 신호기가 설치된 {STRING} 선로
STR_LAI_RAIL_DESCRIPTION_TRACK_WITH_PBS_NOENTRYSIGNALS :경로 신호기와 단방향 경로 신호기가 설치된 {STRING} 선로
STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} 차량기지
@@ -2880,7 +2880,10 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}이전
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}(위조/재색상/글씨 스프라이트를 제외한) 이전 보통 스프라이트로 이동하고, 첫 번째 스프라이트에 다다르면 마지막으로 돌아갑니다.
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}현재 선택된 스프라이트를 표시합니다. 이 스프라이트가 그려졌을때의 정렬은 무시합니다.
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}X축이나 Y축 방향으로 스프라이트를 이동시킵니다.
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}X축: {NUM}, Y축: {NUM}
STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}상대값 초기화
STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}현재 상대값 좌표를 초기화
STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}X 좌표: {NUM}, Y 좌표: {NUM} (절댓값)
STR_SPRITE_ALIGNER_OFFSETS_REL :{BLACK}X 좌표: {NUM}, Y 좌표: {NUM} (상대값)
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}스프라이트 선택
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}화면에서 스프라이트를 골라 냅니다.
@@ -3137,7 +3140,7 @@ STR_STATION_VIEW_VIA_ANY :{RED}어디든
STR_STATION_VIEW_FROM_HERE :{GREEN}여기에서 출발하는 {CARGO_SHORT}
STR_STATION_VIEW_VIA_HERE :{GREEN}이 역을 경유하는 {CARGO_SHORT}
STR_STATION_VIEW_TO_HERE :{GREEN}이 역에 도착하는 {CARGO_SHORT}
STR_STATION_VIEW_NONSTOP :{YELLOW}직 {CARGO_SHORT}
STR_STATION_VIEW_NONSTOP :{YELLOW}직 {CARGO_SHORT}
STR_STATION_VIEW_GROUP_S_V_D :출발-경유-도착
STR_STATION_VIEW_GROUP_S_D_V :출발-도착-경유
@@ -3224,10 +3227,10 @@ STR_COMPANY_VIEW_VEHICLES_NONE :{WHITE}없음
STR_COMPANY_VIEW_COMPANY_VALUE :{GOLD}회사가치: {WHITE}{CURRENCY_LONG}
STR_COMPANY_VIEW_SHARES_OWNED_BY :{WHITE}({COMMA}% {COMPANY}의 소유)
STR_COMPANY_VIEW_INFRASTRUCTURE :{GOLD}기반시설:
STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}철도 {COMMA}칸
STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL :{WHITE}선로 {COMMA}칸
STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD :{WHITE}도로 {COMMA}칸
STR_COMPANY_VIEW_INFRASTRUCTURE_WATER :{WHITE}운하시설 {COMMA}칸
STR_COMPANY_VIEW_INFRASTRUCTURE_STATION :{WHITE}정거장 {COMMA}칸
STR_COMPANY_VIEW_INFRASTRUCTURE_WATER :{WHITE}항만시설 {COMMA}칸
STR_COMPANY_VIEW_INFRASTRUCTURE_STATION :{WHITE} {COMMA}칸
STR_COMPANY_VIEW_INFRASTRUCTURE_AIRPORT :{WHITE}공항 {COMMA}개
STR_COMPANY_VIEW_INFRASTRUCTURE_NONE :{WHITE}없음

View File

@@ -12,7 +12,7 @@
##case kas
# $Id: latvian.txt 27103 2015-01-01 20:51:18Z rubidium $
# $Id: latvian.txt 27184 2015-03-13 20:53:29Z rubidium $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2799,7 +2799,6 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Iepriek
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Iet pie iepriekšējā parastā gariņa, izlaižot visus pseido/pārkrāsotos/fonta gariņus
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Atlasītā gariņa attēlojums. To attēlojot, izkārtojums netiek ievērots
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Pārvietot gariņu, lai mainītu X un Y vērtības
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}X garums: {NUM}, Y garums: {NUM}
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Paņemt gariņu
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Paņemt gariņu no jebkuras vietas ekrānā

View File

@@ -12,7 +12,7 @@
##case kas ko kam ka kuo kur kreip
# $Id: lithuanian.txt 27103 2015-01-01 20:51:18Z rubidium $
# $Id: lithuanian.txt 27179 2015-03-09 18:15:33Z translators $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -3098,7 +3098,10 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Buvęs a
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Pereiti prie buvusio animacinio objekto praleidžiant visus pseudo/spalvinimo/šriftų objektus peršokant į pabaigą pradžioje
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Atvaizdavimas dabartinio pasirinkto sprite. Suderinamumas yra ignoruojamas, rengiant šį sprite
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Perkelti sprite aplink, keičiant X ir Y atsvaras
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}X atsvara: {NUM}, Y atsvara: {NUM}
STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Anuliuoti santykinius
STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Anuliuoti santykinius poslinkius
STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}X poslinkis: {NUM}, Y poslinkis: {NUM} (Absoliutus)
STR_SPRITE_ALIGNER_OFFSETS_REL :{BLACK}X poslinkis: {NUM}, Y poslinkis: {NUM} (Santykinis)
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Pasirinkti sprite
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Pasirinkite sprite iš bet kurios vietos ekrane

View File

@@ -10,7 +10,7 @@
##grflangid 0x23
# $Id: luxembourgish.txt 27112 2015-01-04 17:45:35Z translators $
# $Id: luxembourgish.txt 27182 2015-03-13 17:45:21Z translators $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2879,7 +2879,10 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Fiiresch
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Géi weider op déi nächst normal Sprite, iwwersprang all pseudo/recolour/font Sprite an sprang zréck op den Ufank no der leschter.
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Representatioun vun der grad gewielter Sprite. Den Alignement gëtt ignoréiert wann d'Sprite gezun gëtt
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Beweg Sprite, X an Y offsets enneren sech
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}X offset: {NUM}, Y offset: {NUM}
STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Relativ zerécksetzen
STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Momentan relativ Offsets zerécksetzen
STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}X-Offset: {NUM}, Y-Offset: {NUM} (Absolut)
STR_SPRITE_ALIGNER_OFFSETS_REL :{BLACK}X-Offset: {NUM}, Y-Offset: {NUM} (Relativ)
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Wiel Sprite
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Wiel en Sprite egalwou um Schierm aus

View File

@@ -10,7 +10,7 @@
##grflangid 0x3c
# $Id: malay.txt 27153 2015-02-15 17:45:47Z translators $
# $Id: malay.txt 27184 2015-03-13 20:53:29Z rubidium $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2573,7 +2573,6 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Peperi s
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Teruskan ke peperi dahulu yang biasa, melangkau sebarang peperi pseudo/warna kembali/fon dan memusing balik semula
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Perwakilan peperi yang terpilih. Penjajaran tidak diendahkan apabila sedang melukiskan peperi.
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Alih peperi, mengubahkan ofset X dan Y
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}X ofset: {NUM}, Y ofset: {NUM}
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Pilih peperi
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Pilih peperi di mana-mana sahaja dari skrin

View File

@@ -12,7 +12,7 @@
##case small
# $Id: norwegian_bokmal.txt 27103 2015-01-01 20:51:18Z rubidium $
# $Id: norwegian_bokmal.txt 27180 2015-03-10 17:47:16Z translators $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2883,7 +2883,10 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Forrige
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Fortsett til forrige normale sprite og hopp over enhver pseudo-/omfargings-/skrifttype- sprite, samt start om ved begynnelsen
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Forhåndsvisning av valgt sprite. Innrettingen ignoreres når spriten tegnes
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Flytt spriten rundt omkring, for å endre X- og Y-forskyvningene
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}X-forskyvning: {NUM}, Y-forskyvning: {NUM}
STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Tilbakestill relativt
STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Nullstill de nåværende relative forskyvninger
STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}X forskyvning: {NUM}, Y forskyvning: {NUM} (Absolutt)
STR_SPRITE_ALIGNER_OFFSETS_REL :{BLACK}X forskyvning: {NUM}, Y forskyvning: {NUM} (Relativt)
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Velg en sprite
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Velg en sprite fra et vilkårlig sted på skjermen

View File

@@ -12,7 +12,7 @@
##case small
# $Id: norwegian_nynorsk.txt 27124 2015-01-22 17:45:22Z translators $
# $Id: norwegian_nynorsk.txt 27184 2015-03-13 20:53:29Z rubidium $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2800,7 +2800,6 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Førre s
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Fortsett til neste normale sprite og hopp over einhver pseudo-/omfargings-/skrifttype- sprite, samt start om ved byrjinga
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Førehandsvisning av valgt sprite. Innrettinga ignorerast når spriten tegnes
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Flytt spriten rundt omkring, for å endre X- og Y-forskyvningene
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}X-forskyvning: {NUM}, Y-forskyvning: {NUM}
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Vel sprite
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Vel ein sprite frå eit vilkårleg sted på skjermen

View File

@@ -12,7 +12,7 @@
##case d c b n m w
# $Id: polish.txt 27103 2015-01-01 20:51:18Z rubidium $
# $Id: polish.txt 27179 2015-03-09 18:15:33Z translators $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -3259,7 +3259,10 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Poprzedn
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Idź do poprzedniego normalnego obrazka, pomijając jakiekolwiek pseudo/kolorowe/znakowe obrazki i zawijaj je od pierwszego do ostatniego
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Przedstawienie wybranego orbazka. Dostosowanie jest ignorowane podczas rysowania tego obrazka
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Poruszaj obrazkiem, zmieniając przesunięcia X i Y
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}Przesunięcie X: {NUM}, Przesunięcie Y: {NUM}
STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Resetuj zależność
STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Resetuj aktualne offsety zależne
STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}X offset: {NUM}, Y offset: {NUM} (Całkowity)
STR_SPRITE_ALIGNER_OFFSETS_REL :{BLACK}X offset: {NUM}, Y offset: {NUM} (Zależny)
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Wybierz obrazek
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Wybierz obrazek z dowolnego miejsca na ekranie

View File

@@ -11,7 +11,7 @@
##gender n m f mp fp
# $Id: portuguese.txt 27103 2015-01-01 20:51:18Z rubidium $
# $Id: portuguese.txt 27184 2015-03-13 20:53:29Z rubidium $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2863,7 +2863,6 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Gráfico
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Proceder ao gráfico normal anterior, ignorando quaisquer gráficos pseudo/recolorir/tipo-de-letra e dando a volta no início
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Representação do gráfico seleccionado actualmente. O alinhamento é ignorado a desenhar este gráfico
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Mover o gráfico, mudando os desvios X e Y
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}Desvio X: {NUM}, Desvio Y: {NUM}
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Escolher gráfico
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Escolha um gráfico de qualquer lado no ecrã

View File

@@ -10,7 +10,7 @@
##grflangid 0x28
# $Id: romanian.txt 27103 2015-01-01 20:51:18Z rubidium $
# $Id: romanian.txt 27179 2015-03-09 18:15:33Z translators $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -249,7 +249,15 @@ STR_TOOLTIP_HSCROLL_BAR_SCROLLS_LIST :{BLACK}Bara de
STR_TOOLTIP_DEMOLISH_BUILDINGS_ETC :{BLACK}Demolează clădiri, străzi, etc. pe un pătrățel de teren. Ctrl pentru selectare pe diagonală. Shift comută construcție/estimare cost
# Show engines button
STR_SHOW_HIDDEN_ENGINES_VEHICLE_TRAIN :{BLACK}Arată ascunse
STR_SHOW_HIDDEN_ENGINES_VEHICLE_ROAD_VEHICLE :{BLACK}Arată ascunse
STR_SHOW_HIDDEN_ENGINES_VEHICLE_SHIP :{BLACK}Arată ascunse
STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT :{BLACK}Arată ascunse
STR_SHOW_HIDDEN_ENGINES_VEHICLE_TRAIN_TOOLTIP :{BLACK}Activând acest buton, și trenurile vor fi afișate
STR_SHOW_HIDDEN_ENGINES_VEHICLE_ROAD_VEHICLE_TOOLTIP :{BLACK}Activând acest buton, și autovehiculele vor fi afișate
STR_SHOW_HIDDEN_ENGINES_VEHICLE_SHIP_TOOLTIP :{BLACK}Activând acest button, și vapoarele ascunse vor fi afișate
STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT_TOOLTIP :{BLACK}Activând acest buton, și aeronavele ascunse vor fi afișate
# Query window
STR_BUTTON_DEFAULT :{BLACK}Prestabilit(e)
@@ -1074,6 +1082,7 @@ STR_TERRAIN_TYPE_VERY_FLAT :Foarte plat
STR_TERRAIN_TYPE_FLAT :Plat
STR_TERRAIN_TYPE_HILLY :Deluros
STR_TERRAIN_TYPE_MOUNTAINOUS :Muntos
STR_TERRAIN_TYPE_ALPINIST :Alpinist
STR_CITY_APPROVAL_PERMISSIVE :Permisivă
STR_CITY_APPROVAL_TOLERANT :Tolerantă
@@ -1267,8 +1276,8 @@ STR_CONFIG_SETTING_ERRMSG_DURATION :Durata de afiș
STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Durata afișării mesajelor de eroare în fereastra roșie. Unele mesaje de eroare (cele critice) nu sunt închise automat după trecerea acestei perioade, și trebuie închise manual.
STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} secund{P 0 ă e}
STR_CONFIG_SETTING_HOVER_DELAY :Afișează texte informative: {STRING}
STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Durata dinaintea afișării textelor informative când se ține mouse-ul pe un element al interfeței. Alternativ, afișarea textelor informative poate fi setată pentru click-dreapta
STR_CONFIG_SETTING_HOVER_DELAY_VALUE :După {COMMA} secund{P 0 ă e}
STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Durata dinaintea afișării sfaturilor când se ține mausul pe un element al interfeței. Alternativ, afișarea sfaturilor poate fi setată pentru clic-dreapta
STR_CONFIG_SETTING_HOVER_DELAY_VALUE :Plutește {COMMA} milisecund{P 0 ă e}
STR_CONFIG_SETTING_HOVER_DELAY_DISABLED :Click dreapta
STR_CONFIG_SETTING_POPULATION_IN_LABEL :Afişează populaţia unui oras lângă nume: {STRING}
STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Afișează populația orașelor în numele afișate pe hartă
@@ -2805,7 +2814,10 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Imaginea
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Mergi la precedenta imagine normală, sărind peste pseudo-imagini, recolorări sau fonturi şi reporneşte când s-a ajuns la sfârşit
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Reprezentarea imaginii curente. Aliniamentul este ignorat
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Mişcă imaginea schimbând distanţele pe axele X şi Y
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}distanţa X: {NUM}, distanţa Y: {NUM}
STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Resetează relativele
STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Resetază limitele relative actuale
STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}Limita X: {NUM}, Limita Y: {NUM} (Absolut)
STR_SPRITE_ALIGNER_OFFSETS_REL :{BLACK}Limita X: {NUM}, Limita Y: {NUM} (Relativ)
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Alege imagine
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Alege o imagine de oriunde de pe ecran
@@ -3343,8 +3355,17 @@ STR_BUY_VEHICLE_ROAD_VEHICLE_RENAME_TOOLTIP :{BLACK}Redenume
STR_BUY_VEHICLE_SHIP_RENAME_TOOLTIP :{BLACK}Redenumeşte modelul de navă
STR_BUY_VEHICLE_AIRCRAFT_RENAME_TOOLTIP :{BLACK}Redenumeşte modelul de aeronavă
STR_BUY_VEHICLE_TRAIN_HIDE_TOGGLE_BUTTON :{BLACK}Ascunde
STR_BUY_VEHICLE_ROAD_VEHICLE_HIDE_TOGGLE_BUTTON :{BLACK}Ascunde
STR_BUY_VEHICLE_SHIP_HIDE_TOGGLE_BUTTON :{BLACK}Ascunde
STR_BUY_VEHICLE_AIRCRAFT_HIDE_TOGGLE_BUTTON :{BLACK}Ascunde
STR_BUY_VEHICLE_TRAIN_SHOW_TOGGLE_BUTTON :{BLACK}Afișează
STR_BUY_VEHICLE_ROAD_VEHICLE_SHOW_TOGGLE_BUTTON :{BLACK}Afișează
STR_BUY_VEHICLE_SHIP_SHOW_TOGGLE_BUTTON :{BLACK}Afișează
STR_BUY_VEHICLE_AIRCRAFT_SHOW_TOGGLE_BUTTON :{BLACK}Afișează
STR_BUY_VEHICLE_TRAIN_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Comută ascunderea/afișarea tipului de tren
STR_BUY_VEHICLE_ROAD_VEHICLE_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Comutator pentru afişarea tipului de autovehicul
STR_BUY_VEHICLE_SHIP_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Comutator pentru afişarea tipului de navă
STR_BUY_VEHICLE_AIRCRAFT_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Comutator pentru afişarea tipului de aeronavă
@@ -3453,6 +3474,10 @@ STR_REPLACE_VEHICLE_ROAD_VEHICLE :Autovehicolul
STR_REPLACE_VEHICLE_SHIP :Nava
STR_REPLACE_VEHICLE_AIRCRAFT :Aeronava
STR_REPLACE_VEHICLE_VEHICLES_IN_USE :{YELLOW}Vehicule în uz
STR_REPLACE_VEHICLE_VEHICLES_IN_USE_TOOLTIP :{BLACK}Coloana vehiculelor pe care le deții
STR_REPLACE_VEHICLE_AVAILABLE_VEHICLES :{YELLOW}Vehicule disponibile
STR_REPLACE_VEHICLE_AVAILABLE_VEHICLES_TOOLTIP :{BLACK}Coloana vehiculelor disponibile pentru înlocuire
STR_REPLACE_HELP_LEFT_ARRAY :{BLACK}Alege tipul de motor pentru înlocuire
STR_REPLACE_HELP_RIGHT_ARRAY :{BLACK}Alege noul tip de motor pe care doreşti să-l foloseşti în locul motorului selectat în stânga
@@ -4097,6 +4122,7 @@ STR_ERROR_FOREST_CAN_ONLY_BE_PLANTED :{WHITE}... păd
STR_ERROR_CAN_ONLY_BE_BUILT_ABOVE_SNOW_LINE :{WHITE}... poate fi construit doar deasupra liniei zăpezii
STR_ERROR_CAN_ONLY_BE_BUILT_BELOW_SNOW_LINE :{WHITE}... poate fi construit doar sub linia zăpezii
STR_ERROR_NO_SUITABLE_PLACES_FOR_INDUSTRIES_EXPLANATION :{WHITE}Modifică parametrii generatorului ca să obții o hartă mai bună
# Station construction related errors
STR_ERROR_CAN_T_BUILD_RAILROAD_STATION :{WHITE}Nu se poate construi o gară aici...

View File

@@ -12,7 +12,7 @@
##case m f n p nom gen dat acc abl pre
# $Id: russian.txt 27103 2015-01-01 20:51:18Z rubidium $
# $Id: russian.txt 27177 2015-03-02 17:46:37Z translators $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -3059,7 +3059,10 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Пред
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Перейти к предыдущему нормальному спрайту, пропуская изменяющие цвет, шрифтовые, псевдоспрайты. Переход из начала списка к последнему спрайту.
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Представление выбранного спрайта. Выравнивание не учитывается при прорисовке этого спрайта.
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Двигайте спрайт, изменяя смещение по X и по Y
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}Смещение по X: {NUM}, Смещение по Y: {NUM}
STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Сброс смещения
STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Сбросить значения относительного смещения
STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}Смещение X: {NUM}; смещение Y: {NUM} (абсолютное)
STR_SPRITE_ALIGNER_OFFSETS_REL :{BLACK}Смещение X: {NUM}; смещение Y: {NUM} (относительное)
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Выбрать спрайт
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Выберите любой спрайт на экране

View File

@@ -12,7 +12,7 @@
##case nom big gen dat aku vok lok ins
# $Id: serbian.txt 27103 2015-01-01 20:51:18Z rubidium $
# $Id: serbian.txt 27184 2015-03-13 20:53:29Z rubidium $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2940,7 +2940,6 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Prethodn
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Vraća se na prethodni normalan sprajt, preskačući sve pseudo/prebojavajuće/font sprajtove i prelazi na kraj posle početnog
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Prikaz trenutno odabranog sprajta. Poravnanje se ignoriše tokom iscrtavanja ovog sprajta
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Premeštanje sprajta po kordinatama, menjanjem X i Y pomeraja
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}X pomeraj: {NUM}, Y pomeraj: {NUM}
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Odabiranje sprajta
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Odabiranje sprajta bilo gde sa ekrana

View File

@@ -10,7 +10,7 @@
##grflangid 0x56
# $Id: simplified_chinese.txt 27130 2015-01-31 17:45:21Z translators $
# $Id: simplified_chinese.txt 27184 2015-03-13 20:53:29Z rubidium $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2879,7 +2879,6 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}上一
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}继续处理上一个正常的图形元素,略过任何虚位/重新着色/文字字型相关的图形元素;并且在处理到第一个图形元素后,返回最后的图形元素继续处理。
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}显示目前选取的 sprite。当 sprite 正在描绘时会忽略其定位。
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}移动 sprite 到指定的 X 与 Y 座标位移
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}X 座标位移: {NUM}, Y 座标位移: {NUM}
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}选择 sprite
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}请从屏幕画面中任意选取一个 sprite

View File

@@ -12,7 +12,7 @@
##case g
# $Id: slovak.txt 27116 2015-01-10 17:46:35Z translators $
# $Id: slovak.txt 27179 2015-03-09 18:15:33Z translators $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -428,6 +428,7 @@ STR_SCENEDIT_FILE_MENU_QUIT :Koniec
############ range for settings menu starts
STR_SETTINGS_MENU_GAME_OPTIONS :Nastavenia hry
STR_SETTINGS_MENU_CONFIG_SETTINGS_TREE :Nastavenia
STR_SETTINGS_MENU_SCRIPT_SETTINGS :Umelá inteligencia / Nastavenia hry
STR_SETTINGS_MENU_NEWGRF_SETTINGS :Nastavenie NewGRF
STR_SETTINGS_MENU_TRANSPARENCY_OPTIONS :Nastavenie priehľadnosti
@@ -1045,6 +1046,7 @@ STR_GAME_OPTIONS_RESOLUTION_OTHER :iné
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}Veľkosť rozhrania
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_NORMAL :Normálne
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_2X_ZOOM :Dvojnásobná veľkosť
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Štvornásobná veľkosť
@@ -1149,6 +1151,7 @@ STR_CITY_APPROVAL_HOSTILE :Odmietavy
STR_WARNING_NO_SUITABLE_AI :{WHITE}Nieje dostupné žiadne použiteľné AI...{}Niekoľko AI je možné stiahnuť cez 'Online obsah'
# Settings tree window
STR_CONFIG_SETTING_TREE_CAPTION :{WHITE}Nastavenia
STR_CONFIG_SETTING_FILTER_TITLE :{BLACK}Filtrovací reťazec:
STR_CONFIG_SETTING_EXPAND_ALL :{BLACK}Rozšíriť všetko
STR_CONFIG_SETTING_COLLAPSE_ALL :{BLACK}Zbaliť všetky
@@ -1336,7 +1339,7 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY :Potrebné finan
STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Minimálna suma ktorá musí zostať na účte pred plánovanou automatickou výmenou vozidiel.
STR_CONFIG_SETTING_ERRMSG_DURATION :Trvanie zobrazenia chybovej hlášky: {STRING}
STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Trvanie zobrazenia chybovej hlášky v červenom okne. Uvedomte si že niektoré "kritické" správy nezmiznú po uplynutí času, ale musia byť zatvorené ručne.
STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} sekund(y)
STR_CONFIG_SETTING_ERRMSG_DURATION_VALUE :{COMMA} sek{P unda undy únd}
STR_CONFIG_SETTING_HOVER_DELAY :Ukáž nápovedu: {STRING}
STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Oneskorenie pred tým ako bude zobrazená nápoveda po ukázaní myšou. Nápoveda môže byť eventuálne nastavené aj na PRAVÉ tlačítko myši.
STR_CONFIG_SETTING_HOVER_DELAY_VALUE :Zobrazenie na {COMMA} sekúnd
@@ -1632,7 +1635,7 @@ STR_CONFIG_SETTING_STATUSBAR_POS :Pozícia inform
STR_CONFIG_SETTING_STATUSBAR_POS_HELPTEXT :Horizontálna poloha stavového riadku na spodu obrazovky
STR_CONFIG_SETTING_SNAP_RADIUS :Rádius uchytenia okna: {STRING}
STR_CONFIG_SETTING_SNAP_RADIUS_HELPTEXT :Vzdialenosť medzi oknami pred tým ako je okno pripojené automaticky k vedľajšiemu oknu
STR_CONFIG_SETTING_SNAP_RADIUS_VALUE :{COMMA} pixel(ov)
STR_CONFIG_SETTING_SNAP_RADIUS_VALUE :{COMMA} pixel{P "" y ov}
STR_CONFIG_SETTING_SNAP_RADIUS_DISABLED :vypnuté
STR_CONFIG_SETTING_SOFT_LIMIT :Maximálný počet nepriľnavých okien: {STRING}
STR_CONFIG_SETTING_SOFT_LIMIT_HELPTEXT :Počet otvorených neprilepených okien pred tým ako sa najstrašie okno automatický zatvorí
@@ -1793,6 +1796,7 @@ STR_INTRO_MULTIPLAYER :{BLACK}Viacero
STR_INTRO_GAME_OPTIONS :{BLACK}Nastavenia hry
STR_INTRO_HIGHSCORE :{BLACK}Najlepší hráči
STR_INTRO_CONFIG_SETTINGS_TREE :{BLACK}Nastavenia
STR_INTRO_NEWGRF_SETTINGS :{BLACK}Nastavenia NewGRF
STR_INTRO_ONLINE_CONTENT :{BLACK}Skontrolovať online obsah
STR_INTRO_SCRIPT_SETTINGS :{BLACK}Umelá inteligencia / Nastavenia skriptu
@@ -1812,6 +1816,7 @@ STR_INTRO_TOOLTIP_TOYLAND_LANDSCAPE :{BLACK}Vybrať
STR_INTRO_TOOLTIP_GAME_OPTIONS :{BLACK}Zobraziť nastavenia hry
STR_INTRO_TOOLTIP_HIGHSCORE :{BLACK}Zobraziť tabuľku hráčov s najvyšším skóre
STR_INTRO_TOOLTIP_CONFIG_SETTINGS_TREE :{BLACK}Nastavenie zobrazenia
STR_INTRO_TOOLTIP_NEWGRF_SETTINGS :{BLACK}Zobraziť NewGRF nastavenia
STR_INTRO_TOOLTIP_ONLINE_CONTENT :{BLACK}Skontrolovať nový a aktualizovaný obsah pre stiahnutie
STR_INTRO_TOOLTIP_SCRIPT_SETTINGS :{BLACK}Zobraz umelú inteligenciu a nastavenia skriptu
@@ -2931,7 +2936,8 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Predchá
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Prejsť na predchádzajúci normálny sprite, vynechajúc akékoľvek falošné/prefarbené sprites a sprites fontu použité na začiatku
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Reprezentuje aktuálne zvolený objekt. Zarovnanie je ignorované pri vykresľovaní objektu
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Pri hýbaní objektom, sa menia X a Y súradnice
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}X súradnica: {NUM}, Y súradnica: {NUM}
STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}X offset: {NUM}, Y offset: {NUM} (absolútne)
STR_SPRITE_ALIGNER_OFFSETS_REL :{BLACK}X offset: {NUM}, Y offset: {NUM} (relatívne)
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Vybrať objekt
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Vyberte objekt z obrazovky
@@ -3472,7 +3478,15 @@ STR_BUY_VEHICLE_ROAD_VEHICLE_RENAME_TOOLTIP :{BLACK}Premenov
STR_BUY_VEHICLE_SHIP_RENAME_TOOLTIP :{BLACK}Premenovať typ lode
STR_BUY_VEHICLE_AIRCRAFT_RENAME_TOOLTIP :{BLACK}Premenovať typ lietadla
STR_BUY_VEHICLE_TRAIN_HIDE_TOGGLE_BUTTON :{BLACK}Skryť
STR_BUY_VEHICLE_ROAD_VEHICLE_HIDE_TOGGLE_BUTTON :{BLACK}Skryť
STR_BUY_VEHICLE_SHIP_HIDE_TOGGLE_BUTTON :{BLACK}Skryť
STR_BUY_VEHICLE_AIRCRAFT_HIDE_TOGGLE_BUTTON :{BLACK}Skryť
STR_BUY_VEHICLE_TRAIN_SHOW_TOGGLE_BUTTON :{BLACK}Zobraziť
STR_BUY_VEHICLE_ROAD_VEHICLE_SHOW_TOGGLE_BUTTON :{BLACK}Zobraziť
STR_BUY_VEHICLE_SHIP_SHOW_TOGGLE_BUTTON :{BLACK}Zobraziť
STR_BUY_VEHICLE_AIRCRAFT_SHOW_TOGGLE_BUTTON :{BLACK}Zobraziť
STR_QUERY_RENAME_TRAIN_TYPE_CAPTION :{WHITE}Premenovať typ vlaku

View File

@@ -11,7 +11,7 @@
##case r d t
# $Id: slovenian.txt 27103 2015-01-01 20:51:18Z rubidium $
# $Id: slovenian.txt 27184 2015-03-13 20:53:29Z rubidium $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2976,7 +2976,6 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Prejšnj
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Nadaljuj k prejšnji navadni sličici, zanemari vse navidezne/pobarvane/besedilne sličice in okvir na koncu
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Predstavitev trenutno izbrane sličice. Zamik je zanemarjen pri risanju te sličice
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Premakni sličico s spreminjanjem X in Y osi
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}X zamik: {NUM}, Y zamik: {NUM}
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Izberi sličico
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Izberi sličico kjerkoli na zaslonu

View File

@@ -11,7 +11,7 @@
##gender m f
# $Id: spanish.txt 27114 2015-01-06 17:45:49Z translators $
# $Id: spanish.txt 27180 2015-03-10 17:47:16Z translators $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -615,8 +615,8 @@ STR_PERFORMANCE_DETAIL_SELECT_COMPANY_TOOLTIP :{BLACK}Mostrar
############ Those following lines need to be in this order!!
STR_PERFORMANCE_DETAIL_VEHICLES :{BLACK}Vehículos:
STR_PERFORMANCE_DETAIL_STATIONS :{BLACK}Estaciones:
STR_PERFORMANCE_DETAIL_MIN_PROFIT :{BLACK}Beneficio Min.:
STR_PERFORMANCE_DETAIL_MIN_INCOME :{BLACK}Ingreso Min.:
STR_PERFORMANCE_DETAIL_MIN_PROFIT :{BLACK}Beneficio Mín.:
STR_PERFORMANCE_DETAIL_MIN_INCOME :{BLACK}Ingreso Mín.:
STR_PERFORMANCE_DETAIL_MAX_INCOME :{BLACK}Ingreso Máx.:
STR_PERFORMANCE_DETAIL_DELIVERED :{BLACK}Entregado:
STR_PERFORMANCE_DETAIL_CARGO :{BLACK}Carga:
@@ -2830,7 +2830,7 @@ STR_NEWGRF_SETTINGS_FIND_MISSING_CONTENT_TOOLTIP :{BLACK}Comproba
STR_NEWGRF_SETTINGS_FILENAME :{BLACK}Fichero: {SILVER}{STRING}
STR_NEWGRF_SETTINGS_GRF_ID :{BLACK}GRF ID: {SILVER}{STRING}
STR_NEWGRF_SETTINGS_VERSION :{BLACK}Versión: {SILVER}{NUM}
STR_NEWGRF_SETTINGS_MIN_VERSION :{BLACK}Min. versión compatible: {SILVER}{NUM}
STR_NEWGRF_SETTINGS_MIN_VERSION :{BLACK}Mín. versión compatible: {SILVER}{NUM}
STR_NEWGRF_SETTINGS_MD5SUM :{BLACK}MD5sum: {SILVER}{STRING}
STR_NEWGRF_SETTINGS_PALETTE :{BLACK}Paleta: {SILVER}{STRING}
STR_NEWGRF_SETTINGS_PARAMETER :{BLACK}Parámetros: {SILVER}{STRING}
@@ -2880,7 +2880,10 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Sprite a
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Saltar al sprite anterior (ignorando pseudosprites, sprites recoloreados y sprites de fuente) y pasar del primer al último sprite
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Representación del sprite seleccionado. Su alineamiento es ignorado al dibujarlo
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Mover el sprite, cambiando los ajustes X e Y
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}Ajuste X: {NUM}, Ajuste Y: {NUM}
STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Reiniciar coordenadas relativas
STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Reinicia las coordenadas relativas actuales
STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}Coordenada X: {NUM}, Coordenada Y: {NUM} (Absoluta)
STR_SPRITE_ALIGNER_OFFSETS_REL :{BLACK}Coordenada X: {NUM}, Coordenada Y: {NUM} (Relativa)
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Seleccionar sprite
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Seleccionar un sprite de cualquier parte de la pantalla
@@ -3180,7 +3183,7 @@ STR_BUOY_VIEW_CHANGE_BUOY_NAME :{BLACK}Cambiar
STR_EDIT_WAYPOINT_NAME :{WHITE}Editar nombre del punto de ruta
# Finances window
STR_FINANCES_CAPTION :{WHITE}{COMPANY} Finanzas {BLACK}{COMPANY_NUM}
STR_FINANCES_CAPTION :{WHITE}Finanzas de {COMPANY} {BLACK}{COMPANY_NUM}
STR_FINANCES_EXPENDITURE_INCOME_TITLE :{WHITE}Gastos/Ingresos
STR_FINANCES_YEAR :{WHITE}{NUM}
STR_FINANCES_SECTION_CONSTRUCTION :{GOLD}Construcción
@@ -3528,10 +3531,10 @@ STR_ENGINE_PREVIEW_MAGLEV_LOCOMOTIVE :{G=f}locomotora
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER :{BLACK}Coste: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER}{}Coste Operativo: {CURRENCY_LONG}/año{}Capacidad: {CARGO_LONG}
STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE :{BLACK}Coste: {CURRENCY_LONG} Peso: {WEIGHT_SHORT}{}Velocidad: {VELOCITY} Potencia: {POWER} F.T. Máxima: {6:FORCE}{}Coste de operación: {4:CURRENCY_LONG}/año{}Capacidad: {5:CARGO_LONG}
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Max.: {VELOCITY}{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Max.: {VELOCITY}{}Capacidad: {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año
STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Coste: {CURRENCY_LONG} Velocidad Max.: {VELOCITY} Alcance: {COMMA} casillas{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Coste de Operación: {CURRENCY_LONG}/año
STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Max.: {VELOCITY} Alcance: {COMMA} casillas{}Capacidad: {CARGO_LONG}{}Coste de Operación: {CURRENCY_LONG}/año
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_CAPACITY_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año
STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAPACITY_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY}{}Capacidad: {CARGO_LONG}{}Coste Mantenimiento: {CURRENCY_LONG}/año
STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_CAPACITY_RUNCOST:{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY} Alcance: {COMMA} casillas{}Capacidad: {CARGO_LONG}, {CARGO_LONG}{}Coste de Operación: {CURRENCY_LONG}/año
STR_ENGINE_PREVIEW_COST_MAX_SPEED_RANGE_CAPACITY_RUNCOST :{BLACK}Coste: {CURRENCY_LONG} Velocidad Máx.: {VELOCITY} Alcance: {COMMA} casillas{}Capacidad: {CARGO_LONG}{}Coste de Operación: {CURRENCY_LONG}/año
# Autoreplace window
STR_REPLACE_VEHICLES_WHITE :{WHITE}Reemplazar {STRING} - {STRING}
@@ -3654,9 +3657,9 @@ STR_VEHICLE_INFO_AGE :{COMMA} año{P
STR_VEHICLE_INFO_AGE_RED :{RED}{COMMA} año{P "" s} ({COMMA})
STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Velocidad Máx.: {LTBLUE}{VELOCITY}
STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Velocidad Max.: {LTBLUE}{VELOCITY} {BLACK}Alcance: {LTBLUE}{COMMA} casillas
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potencia: {LTBLUE}{POWER}{BLACK} Velocidad Max.: {LTBLUE}{VELOCITY}
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potencia: {LTBLUE}{POWER}{BLACK} Velocidad Max.: {LTBLUE}{VELOCITY} {BLACK}F.T. Max.: {LTBLUE}{FORCE}
STR_VEHICLE_INFO_MAX_SPEED_RANGE :{BLACK}Velocidad Máx.: {LTBLUE}{VELOCITY} {BLACK}Alcance: {LTBLUE}{COMMA} casillas
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potencia: {LTBLUE}{POWER}{BLACK} Velocidad Máx.: {LTBLUE}{VELOCITY}
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Peso: {LTBLUE}{WEIGHT_SHORT} {BLACK}Potencia: {LTBLUE}{POWER}{BLACK} Velocidad Máx.: {LTBLUE}{VELOCITY} {BLACK}F.T. Máx.: {LTBLUE}{FORCE}
STR_VEHICLE_INFO_PROFIT_THIS_YEAR_LAST_YEAR :{BLACK}Beneficios este año: {LTBLUE}{CURRENCY_LONG} (último año: {CURRENCY_LONG})
STR_VEHICLE_INFO_RELIABILITY_BREAKDOWNS :{BLACK}Fiabilidad: {LTBLUE}{COMMA}% {BLACK}Averías desde el último mantenimiento: {LTBLUE}{COMMA}

View File

@@ -10,7 +10,7 @@
##grflangid 0x2e
# $Id: swedish.txt 27103 2015-01-01 20:51:18Z rubidium $
# $Id: swedish.txt 27184 2015-03-13 20:53:29Z rubidium $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2879,7 +2879,6 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Tidigare
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Fortsätt till föregående normala spriteobjekt, ignorera eventuella pseudo/recolour/font spriteobjekt och börja om från slutet efter första spriteobjektet
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Representation av det valda objektet. Justeringen ignoreras när objektet ritas.
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Flytta runt objektet, ändrar X och Y offsets
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}X offset: {NUM}, Y offset: {NUM}
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Välj objekt
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Välj ett objekt på bildskärmen

View File

@@ -10,7 +10,7 @@
##grflangid 0x0A
# $Id: tamil.txt 27103 2015-01-01 20:51:18Z rubidium $
# $Id: tamil.txt 27177 2015-03-02 17:46:37Z translators $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -97,7 +97,7 @@ STR_CARGO_SINGULAR_FIZZY_DRINK :குளிர
STR_QUANTITY_NOTHING :
STR_QUANTITY_PASSENGERS :{COMMA}{NBSP} பயணி{P "" கள்}
STR_QUANTITY_COAL :{WEIGHT_LONG} நிலக்கரி
STR_QUANTITY_MAIL :{COMMA} அஞ்சல் பை{P "" கள்}
STR_QUANTITY_MAIL :{COMMA}{NBSP} அஞ்சல் பை{P "" கள்}
STR_QUANTITY_OIL :{VOLUME_LONG} எண்ணெய்
STR_QUANTITY_LIVESTOCK :{COMMA} கால்நடை{P "" கள்}
STR_QUANTITY_GOODS :{COMMA} சரக்குப் பெட்டி{P "" கள்}
@@ -248,6 +248,10 @@ STR_TOOLTIP_HSCROLL_BAR_SCROLLS_LIST :{BLACK}Scroll b
STR_TOOLTIP_DEMOLISH_BUILDINGS_ETC :{BLACK}சதுர நிலப்பகுதியில் கட்டிடம் போன்றவற்றை இடிக்க. Ctrl தேர்வுசெய்திட. Shift உத்தேச செலவை/கட்டிடத்தை காட்டிட
# Show engines button
STR_SHOW_HIDDEN_ENGINES_VEHICLE_TRAIN :{BLACK}மறைந்திருப்பதை காட்டு
STR_SHOW_HIDDEN_ENGINES_VEHICLE_ROAD_VEHICLE :{BLACK}மறைந்திருப்பதை காட்டு
STR_SHOW_HIDDEN_ENGINES_VEHICLE_SHIP :{BLACK}மறைந்திருப்பதை காட்டு
STR_SHOW_HIDDEN_ENGINES_VEHICLE_AIRCRAFT :{BLACK}மறைந்திருப்பதை காட்டு
# Query window
@@ -389,6 +393,7 @@ STR_FILE_MENU_EXIT :வெளிய
# map menu
STR_MAP_MENU_MAP_OF_WORLD :உலகப் படம்
STR_MAP_MENU_EXTRA_VIEW_PORT :கூடுதல் பார்வைபடம்
STR_MAP_MENU_LINGRAPH_LEGEND :சரக்கு செல்லும் வழிப் படம்
STR_MAP_MENU_SIGN_LIST :குறிகளின் பட்டியல்
############ range for town menu starts
@@ -1062,7 +1067,7 @@ STR_CONFIG_SETTING_TYPE_COMPANY_INGAME :நிறுவ
STR_CONFIG_SETTING_RESTRICT_CATEGORY :{BLACK}பகுப்பு:
STR_CONFIG_SETTING_RESTRICT_TYPE :{BLACK}வகை:
STR_CONFIG_SETTING_RESTRICT_BASIC :அடிப்படை அமைப்புகள
STR_CONFIG_SETTING_RESTRICT_BASIC :அடிப்படை அமைப்புகளை மட்டுமே காட்டு
STR_CONFIG_SETTING_RESTRICT_ADVANCED :சிறப்பு அமைப்புகள்
STR_CONFIG_SETTING_RESTRICT_ALL :அதிக / அனைத்து அமைப்புகள்
STR_CONFIG_SETTING_RESTRICT_CHANGED_AGAINST_DEFAULT :முதலில் இருந்த மதிப்பினை மாற்றம் செய்யப்பட்ட அமைப்புகள்
@@ -2528,7 +2533,6 @@ STR_SPRITE_ALIGNER_CAPTION :{WHITE}ஸ்
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}அடுத்த ஸ்பிரைட்டு
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}ஸ்பிரைட்டுயிற்கு செல்லவும்
STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}முந்தைய ஸ்பிரைட்டு
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}X offset: {NUM}, Y offset: {NUM}
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}ஸ்பிரைட்டினைத் தேர்ந்தெடுக்கவும்
STR_SPRITE_ALIGNER_GOTO_CAPTION :{WHITE}ஸ்பிரைட்டிற்கு செல்லவும்

View File

@@ -10,7 +10,7 @@
##grflangid 0x42
# $Id: thai.txt 27103 2015-01-01 20:51:18Z rubidium $
# $Id: thai.txt 27184 2015-03-13 20:53:29Z rubidium $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2798,7 +2798,6 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}sprite
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}เคลื่อนไปยัง sprite ปกติอันก่อนหน้า โดยข้าม pseudo/recolour/font และวกกลับเมื่อถึงจุดเริ่มต้น
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}แสดง sprite ที่เลือกใหม่อีกครั้ง
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}ย้าย sprite wxiv[q, แก้ไขแกน X และ Y สำหรับความคลาดเคลื่อน
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}X คลาดเคลื่อน: {NUM}, Y คลาดเคลื่อน: {NUM}
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}หยิบ sprite
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}หยิบ sprite จากที่ใดก็ตามในหน้าจอ

View File

@@ -10,7 +10,7 @@
##grflangid 0x0c
# $Id: traditional_chinese.txt 27156 2015-02-20 17:45:21Z translators $
# $Id: traditional_chinese.txt 27184 2015-03-13 20:53:29Z rubidium $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2879,7 +2879,6 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}上一
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}繼續處理上一個正常的子畫面,略過任何虛位/重新著色/文字字型相關的子畫面,並在到達第一個子畫面後,返回最後的子畫面繼續進行處理。
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}顯示目前選取的 sprite。當 sprite 正在描繪時會忽略其定位
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}移動 sprite 到指定的 X 及 Y 座標位移
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}X 座標位移:{NUM}, Y 座標位移:{NUM}
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}選取 Sprite
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}請從畫面中任意選取一個 sprite

View File

@@ -11,7 +11,7 @@
##case tamlanan
# $Id: turkish.txt 27142 2015-02-10 17:45:15Z translators $
# $Id: turkish.txt 27184 2015-03-13 20:53:29Z rubidium $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2809,7 +2809,6 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Önceki
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Tüm sahte/yeniden renklendirme/yazı tipi nesnelerini ve baştaki sargıyı atlayarak bir önceki normal nesneye geç
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Seçili nesnenin mevcut gösterimi. Bu nesneyi çizerken hizalama ihmal edilir
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Nesneyi X ve Y ofsetlerini değiştirerek gezdir
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}X ofseti: {NUM}, Y ofseti: {NUM}
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Nesne seç
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Ekrandaki herhangi bir yerden bir nesne seçin

View File

@@ -12,7 +12,7 @@
##case r d z
# $Id: ukrainian.txt 27103 2015-01-01 20:51:18Z rubidium $
# $Id: ukrainian.txt 27184 2015-03-13 20:53:29Z rubidium $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2973,7 +2973,6 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Попе
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Повернутися до попереднього нормального спрайту, пропускаючи будь-які псевдоспрайти, спрайти зі зміненими кольорами та шрифтові спрайти, а також обгортки (wrap) навколо на початку
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Відображення обраного спрайту (вирівнювання ігнорується)
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Рухайте спрайт навколо, змінюючи його зміщення за X та Y
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}Зміщення за X: {NUM}, Зміщення за Y: {NUM}
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Вибрати спрайт
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Оберіть будь-який спрайт на екрані

View File

@@ -10,7 +10,7 @@
##grflangid 0x32
# $Id: frisian.txt 27103 2015-01-01 20:51:18Z rubidium $
# $Id: frisian.txt 27184 2015-03-13 20:53:29Z rubidium $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2392,7 +2392,6 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Foarig f
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Gean tebek nei de foarige ôfbylding, sla pseudo/werkleure/lettertype ôfbyldings oer en begjin wer oernei at it begjin berikke is
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Represintaasje fan de no selektearre ôfbylding. Dizze wurdt net rjochte by it tekenjen
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Ferweech de ôfbylding, feroarje de X en Y útslach
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}Utslach X: {NUM}, Utslach Y: {NUM}
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Kies ôfbylding
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Pak in ôfbylding fan alle lokaasjes op it skerm ôf

View File

@@ -10,7 +10,7 @@
##grflangid 0x62
# $Id: persian.txt 27103 2015-01-01 20:51:18Z rubidium $
# $Id: persian.txt 27184 2015-03-13 20:53:29Z rubidium $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2572,7 +2572,6 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}تصوی
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}نمایش تصویر عادی قبلی، بدون انجام دادن هر گونه تغییرات
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}نمایش تصویر انتخاب شده. تغییر مکان تصویر در زمان بارگزاری اعمال نمی شود
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}تغییر مکان تصویر، تغییر مقدار اضافه شونده به X و Y
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}مقدار اضافه شونده به X: {NUM}, مقدار اضافه شونده به Y: {NUM}
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}برداشتن تصویر
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}برداشتن یک تصویر از یک نقطه از صفحه نمایش

View File

@@ -10,7 +10,7 @@
##grflangid 0x54
# $Id: vietnamese.txt 27103 2015-01-01 20:51:18Z rubidium $
# $Id: vietnamese.txt 27184 2015-03-13 20:53:29Z rubidium $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2856,7 +2856,6 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Sprite t
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Xử lý sprite bình thường ở trước, bỏ qua các loại pseudo/recolour/font sprite căn theo điểm bắt đầu
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Theo những thông tin của sprite đã chọn. Thì việc căn chỉnh khi vẽ đối với sprite này sẽ bị bỏ qua
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Di chuyển sprite xung quanh, thay đổi X và Y offsets
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}X offset: {NUM}, Y offset: {NUM}
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Chọn sprite
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Chọn sprite ở bất cứ đâu trên màn hình

View File

@@ -10,7 +10,7 @@
##grflangid 0x0f
# $Id: welsh.txt 27103 2015-01-01 20:51:18Z rubidium $
# $Id: welsh.txt 27184 2015-03-13 20:53:29Z rubidium $
# This file is part of OpenTTD.
# OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
@@ -2879,7 +2879,6 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Corlun b
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Mynd i'r corlun cyffredin blaenorol, gan hepgor unrhyw gorluniau ailliwio/ffont/llidgorluniau, ac amlapio o'r corlun cyntaf i'r olaf
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Cynrychioliad o'r corlun a ddewiswyd. Fe anwybyddir yr aliniad wrth lunio'r corlun
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Symud y corlun, gan newid yr atredau X ac Y
STR_SPRITE_ALIGNER_OFFSETS :{BLACK}Atred X: {NUM}, Atred Y: {NUM}
STR_SPRITE_ALIGNER_PICKER_BUTTON :{BLACK}Dewis corlun
STR_SPRITE_ALIGNER_PICKER_TOOLTIP :{BLACK}Dewis corlun o ynrhyw fan ar y sgrïn

View File

@@ -1,4 +1,4 @@
/* $Id: linkgraphjob.cpp 26482 2014-04-23 20:13:33Z rubidium $ */
/* $Id: linkgraphjob.cpp 27178 2015-03-07 18:27:01Z frosch $ */
/*
* This file is part of OpenTTD.
@@ -21,6 +21,13 @@
LinkGraphJobPool _link_graph_job_pool("LinkGraphJob");
INSTANTIATE_POOL_METHODS(LinkGraphJob)
/**
* Static instance of an invalid path.
* Note: This instance is created on task start.
* Lazy creation on first usage results in a data race between the CDist threads.
*/
/* static */ Path *Path::invalid_path = new Path(INVALID_NODE, true);
/**
* Create a link graph job from a link graph. The link graph will be copied so
* that the calculations don't interfer with the normal operations on the

View File

@@ -1,4 +1,4 @@
/* $Id: linkgraphjob.h 26347 2014-02-16 18:42:59Z fonsinchen $ */
/* $Id: linkgraphjob.h 27178 2015-03-07 18:27:01Z frosch $ */
/*
* This file is part of OpenTTD.
@@ -343,6 +343,8 @@ public:
*/
class Path {
public:
static Path *invalid_path;
Path(NodeID n, bool source = false);
/** Get the node this leg passes. */

View File

@@ -1,4 +1,4 @@
/* $Id: linkgraphschedule.cpp 26482 2014-04-23 20:13:33Z rubidium $ */
/* $Id: linkgraphschedule.cpp 27178 2015-03-07 18:27:01Z frosch $ */
/*
* This file is part of OpenTTD.
@@ -18,6 +18,13 @@
#include "../safeguards.h"
/**
* Static instance of LinkGraphSchedule.
* Note: This instance is created on task start.
* Lazy creation on first usage results in a data race between the CDist threads.
*/
/* static */ LinkGraphSchedule LinkGraphSchedule::instance;
/**
* Start the next job in the schedule.
*/
@@ -68,9 +75,8 @@ void LinkGraphSchedule::JoinNext()
/* static */ void LinkGraphSchedule::Run(void *j)
{
LinkGraphJob *job = (LinkGraphJob *)j;
LinkGraphSchedule *schedule = LinkGraphSchedule::Instance();
for (uint i = 0; i < lengthof(schedule->handlers); ++i) {
schedule->handlers[i]->Run(*job);
for (uint i = 0; i < lengthof(instance.handlers); ++i) {
instance.handlers[i]->Run(*job);
}
}
@@ -90,12 +96,11 @@ void LinkGraphSchedule::SpawnAll()
*/
/* static */ void LinkGraphSchedule::Clear()
{
LinkGraphSchedule *inst = LinkGraphSchedule::Instance();
for (JobList::iterator i(inst->running.begin()); i != inst->running.end(); ++i) {
for (JobList::iterator i(instance.running.begin()); i != instance.running.end(); ++i) {
(*i)->JoinThread();
}
inst->running.clear();
inst->schedule.clear();
instance.running.clear();
instance.schedule.clear();
}
/**
@@ -135,15 +140,6 @@ LinkGraphSchedule::~LinkGraphSchedule()
}
}
/**
* Retrieve the link graph schedule or create it if necessary.
*/
/* static */ LinkGraphSchedule *LinkGraphSchedule::Instance()
{
static LinkGraphSchedule inst;
return &inst;
}
/**
* Spawn or join a link graph job or compress a link graph if any link graph is
* due to do so.
@@ -153,9 +149,9 @@ void OnTick_LinkGraph()
if (_date_fract != LinkGraphSchedule::SPAWN_JOIN_TICK) return;
Date offset = _date % _settings_game.linkgraph.recalc_interval;
if (offset == 0) {
LinkGraphSchedule::Instance()->SpawnNext();
LinkGraphSchedule::instance.SpawnNext();
} else if (offset == _settings_game.linkgraph.recalc_interval / 2) {
LinkGraphSchedule::Instance()->JoinNext();
LinkGraphSchedule::instance.JoinNext();
}
}

View File

@@ -1,4 +1,4 @@
/* $Id: linkgraphschedule.h 26347 2014-02-16 18:42:59Z fonsinchen $ */
/* $Id: linkgraphschedule.h 27178 2015-03-07 18:27:01Z frosch $ */
/*
* This file is part of OpenTTD.
@@ -51,8 +51,8 @@ protected:
public:
/* This is a tick where not much else is happening, so a small lag might go unnoticed. */
static const uint SPAWN_JOIN_TICK = 21; ///< Tick when jobs are spawned or joined every day.
static LinkGraphSchedule instance;
static LinkGraphSchedule *Instance();
static void Run(void *j);
static void Clear();

View File

@@ -148,15 +148,14 @@ public:
*/
void SetNode(NodeID source, NodeID node)
{
static const FlowStat::SharesMap empty;
const FlowStatMap &flows = this->job[node].Flows();
FlowStatMap::const_iterator it = flows.find(this->job[source].Station());
if (it != flows.end()) {
this->it = it->second.GetShares()->begin();
this->end = it->second.GetShares()->end();
} else {
this->it = empty.begin();
this->end = empty.end();
this->it = FlowStat::empty_sharesmap.begin();
this->end = FlowStat::empty_sharesmap.end();
}
}
@@ -379,11 +378,10 @@ void MCF1stPass::EliminateCycle(PathVector &path, Path *cycle_begin, uint flow)
*/
bool MCF1stPass::EliminateCycles(PathVector &path, NodeID origin_id, NodeID next_id)
{
static Path *invalid_path = new Path(INVALID_NODE, true);
Path *at_next_pos = path[next_id];
/* this node has already been searched */
if (at_next_pos == invalid_path) return false;
if (at_next_pos == Path::invalid_path) return false;
if (at_next_pos == NULL) {
/* Summarize paths; add up the paths with the same source and next hop
@@ -431,7 +429,7 @@ bool MCF1stPass::EliminateCycles(PathVector &path, NodeID origin_id, NodeID next
* could be found in this branch, thus it has to be searched again next
* time we spot it.
*/
path[next_id] = found ? NULL : invalid_path;
path[next_id] = found ? NULL : Path::invalid_path;
return found;
}

View File

@@ -110,7 +110,6 @@ void InitializeGame(uint size_x, uint size_y, bool reset_date, bool reset_settin
InitializeEconomy();
ResetObjectToPlace();
ResetRailPlacementSnapping();
GamelogReset();
GamelogStartAction(GLAT_START);

View File

@@ -1,4 +1,4 @@
/* $Id: misc_gui.cpp 27134 2015-02-01 20:54:24Z frosch $ */
/* $Id: misc_gui.cpp 27194 2015-03-17 22:08:48Z frosch $ */
/*
* This file is part of OpenTTD.
@@ -432,6 +432,7 @@ static const char * const _credits[] = {
" Mike Ragsdale - OpenTTD installer",
" Christian Rosentreter (tokai) - MorphOS / AmigaOS port",
" Richard Kempton (richK) - additional airports, initial TGP implementation",
" Emperor Jake - titlegame",
"",
" Alberto Demichelis - Squirrel scripting language \xC2\xA9 2003-2008",
" L. Peter Deutsch - MD5 implementation \xC2\xA9 1999, 2000, 2002",

View File

@@ -1,4 +1,4 @@
/* $Id: newgrf_debug_gui.cpp 27134 2015-02-01 20:54:24Z frosch $ */
/* $Id: newgrf_debug_gui.cpp 27174 2015-03-01 08:17:14Z alberth $ */
/*
* This file is part of OpenTTD.
@@ -806,8 +806,11 @@ GrfSpecFeature GetGrfSpecFeature(VehicleType type)
/** Window used for aligning sprites. */
struct SpriteAlignerWindow : Window {
SpriteID current_sprite; ///< The currently shown sprite
typedef SmallPair<int16, int16> XyOffs; ///< Pair for x and y offsets of the sprite before alignment. First value contains the x offset, second value y offset.
SpriteID current_sprite; ///< The currently shown sprite.
Scrollbar *vscroll;
SmallMap<SpriteID, XyOffs> offs_start_map; ///< Mapping of starting offsets for the sprites which have been aligned in the sprite aligner window.
SpriteAlignerWindow(WindowDesc *desc, WindowNumber wno) : Window(desc)
{
@@ -821,17 +824,31 @@ struct SpriteAlignerWindow : Window {
virtual void SetStringParameters(int widget) const
{
const Sprite *spr = GetSprite(this->current_sprite, ST_NORMAL);
switch (widget) {
case WID_SA_CAPTION:
SetDParam(0, this->current_sprite);
SetDParamStr(1, FioGetFilename(GetOriginFileSlot(this->current_sprite)));
break;
case WID_SA_OFFSETS: {
const Sprite *spr = GetSprite(this->current_sprite, ST_NORMAL);
case WID_SA_OFFSETS_ABS:
SetDParam(0, spr->x_offs);
SetDParam(1, spr->y_offs);
break;
case WID_SA_OFFSETS_REL: {
/* Relative offset is new absolute offset - starting absolute offset.
* Show 0, 0 as the relative offsets if entry is not in the map (meaning they have not been changed yet).
*/
const SmallPair<SpriteID, XyOffs> *key_offs_pair = this->offs_start_map.Find(this->current_sprite);
if (key_offs_pair != this->offs_start_map.End()) {
SetDParam(0, spr->x_offs - key_offs_pair->second.first);
SetDParam(1, spr->y_offs - key_offs_pair->second.second);
} else {
SetDParam(0, 0);
SetDParam(1, 0);
}
break;
}
default:
@@ -856,20 +873,20 @@ struct SpriteAlignerWindow : Window {
case WID_SA_SPRITE: {
/* Center the sprite ourselves */
const Sprite *spr = GetSprite(this->current_sprite, ST_NORMAL);
int width = r.right - r.left + 1;
int height = r.bottom - r.top + 1;
int x = r.left - UnScaleGUI(spr->x_offs) + (width - UnScaleGUI(spr->width) ) / 2;
int y = r.top - UnScaleGUI(spr->y_offs) + (height - UnScaleGUI(spr->height)) / 2;
int width = r.right - r.left + 1 - WD_BEVEL_LEFT - WD_BEVEL_RIGHT;
int height = r.bottom - r.top + 1 - WD_BEVEL_TOP - WD_BEVEL_BOTTOM;
int x = -UnScaleGUI(spr->x_offs) + (width - UnScaleGUI(spr->width) ) / 2;
int y = -UnScaleGUI(spr->y_offs) + (height - UnScaleGUI(spr->height)) / 2;
/* And draw only the part within the sprite area */
SubSprite subspr = {
spr->x_offs + (spr->width - UnScaleGUI(width) ) / 2 + 1,
spr->y_offs + (spr->height - UnScaleGUI(height)) / 2 + 1,
spr->x_offs + (spr->width + UnScaleGUI(width) ) / 2 - 1,
spr->y_offs + (spr->height + UnScaleGUI(height)) / 2 - 1,
};
DrawPixelInfo new_dpi;
if (!FillDrawPixelInfo(&new_dpi, r.left + WD_BEVEL_LEFT, r.top + WD_BEVEL_TOP, width, height)) break;
DrawPixelInfo *old_dpi = _cur_dpi;
_cur_dpi = &new_dpi;
DrawSprite(this->current_sprite, PAL_NONE, x, y, NULL, ZOOM_LVL_GUI);
_cur_dpi = old_dpi;
DrawSprite(this->current_sprite, PAL_NONE, x, y, &subspr, ZOOM_LVL_GUI);
break;
}
@@ -949,6 +966,11 @@ struct SpriteAlignerWindow : Window {
* particular NewGRF developer.
*/
Sprite *spr = const_cast<Sprite *>(GetSprite(this->current_sprite, ST_NORMAL));
/* Remember the original offsets of the current sprite, if not already in mapping. */
if (!(this->offs_start_map.Contains(this->current_sprite))) {
this->offs_start_map.Insert(this->current_sprite, XyOffs(spr->x_offs, spr->y_offs));
}
switch (widget) {
case WID_SA_UP: spr->y_offs--; break;
case WID_SA_DOWN: spr->y_offs++; break;
@@ -960,6 +982,12 @@ struct SpriteAlignerWindow : Window {
MarkWholeScreenDirty();
break;
}
case WID_SA_RESET_REL:
/* Reset the starting offsets for the current sprite. */
this->offs_start_map.Erase(this->current_sprite);
this->SetDirty();
break;
}
}
@@ -1035,8 +1063,12 @@ static const NWidgetPart _nested_sprite_aligner_widgets[] = {
NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_SA_DOWN), SetDataTip(SPR_ARROW_DOWN, STR_SPRITE_ALIGNER_MOVE_TOOLTIP), SetResize(0, 0),
NWidget(NWID_SPACER), SetFill(1, 1),
EndContainer(),
NWidget(WWT_LABEL, COLOUR_GREY, WID_SA_OFFSETS_ABS), SetDataTip(STR_SPRITE_ALIGNER_OFFSETS_ABS, STR_NULL), SetFill(1, 0), SetPadding(0, 10, 0, 10),
NWidget(WWT_LABEL, COLOUR_GREY, WID_SA_OFFSETS_REL), SetDataTip(STR_SPRITE_ALIGNER_OFFSETS_REL, STR_NULL), SetFill(1, 0), SetPadding(0, 10, 0, 10),
NWidget(NWID_HORIZONTAL), SetPIP(10, 5, 10),
NWidget(WWT_LABEL, COLOUR_GREY, WID_SA_OFFSETS), SetDataTip(STR_SPRITE_ALIGNER_OFFSETS, STR_NULL), SetFill(1, 0),
NWidget(NWID_SPACER), SetFill(1, 1),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_SA_RESET_REL), SetDataTip(STR_SPRITE_ALIGNER_RESET_BUTTON, STR_SPRITE_ALIGNER_RESET_TOOLTIP), SetFill(0, 0),
NWidget(NWID_SPACER), SetFill(1, 1),
EndContainer(),
EndContainer(),
NWidget(NWID_VERTICAL), SetPIP(10, 5, 10),

View File

@@ -1,4 +1,4 @@
/* $Id: win32.h 25676 2013-08-05 20:36:55Z michi_cc $ */
/* $Id: win32.h 27176 2015-03-02 09:10:16Z planetmaker $ */
/*
* This file is part of OpenTTD.
@@ -35,7 +35,7 @@ TCHAR *convert_to_fs(const char *name, TCHAR *utf16_buf, size_t buflen, bool con
HRESULT OTTDSHGetFolderPath(HWND, int, HANDLE, DWORD, LPTSTR);
#if defined(__MINGW32__)
#if defined(__MINGW32__) && !defined(__MINGW64__)
#define SHGFP_TYPE_CURRENT 0
#endif /* __MINGW32__ */

View File

@@ -44,7 +44,6 @@
typedef SmallVector<Train *, 16> TrainList;
RailtypeInfo _railtypes[RAILTYPE_END];
TileIndex _rail_track_endtile; ///< The end of a rail track; as hidden return from the rail build/remove command for GUI purposes.
assert_compile(sizeof(_original_railtypes) <= sizeof(_railtypes));
@@ -417,8 +416,6 @@ CommandCost CmdBuildSingleRail(TileIndex tile, DoCommandFlag flags, uint32 p1, u
Track track = Extract<Track, 0, 3>(p2);
CommandCost cost(EXPENSES_CONSTRUCTION);
_rail_track_endtile = INVALID_TILE;
if (!ValParamRailtype(railtype) || !ValParamTrackOrientation(track)) return CMD_ERROR;
Slope tileh = GetTileSlope(tile);
@@ -435,10 +432,7 @@ CommandCost CmdBuildSingleRail(TileIndex tile, DoCommandFlag flags, uint32 p1, u
ret = CheckTrackCombination(tile, trackbit, flags);
if (ret.Succeeded()) ret = EnsureNoTrainOnTrack(tile, track);
if (ret.Failed()) {
if (ret.GetErrorMessage() == STR_ERROR_ALREADY_BUILT) _rail_track_endtile = tile;
return ret;
}
if (ret.Failed()) return ret;
ret = CheckRailSlope(tileh, trackbit, GetTrackBits(tile), tile);
if (ret.Failed()) return ret;
@@ -527,7 +521,6 @@ CommandCost CmdBuildSingleRail(TileIndex tile, DoCommandFlag flags, uint32 p1, u
}
if (IsLevelCrossing(tile) && GetCrossingRailBits(tile) == trackbit) {
_rail_track_endtile = tile;
return_cmd_error(STR_ERROR_ALREADY_BUILT);
}
/* FALL THROUGH */
@@ -567,7 +560,6 @@ CommandCost CmdBuildSingleRail(TileIndex tile, DoCommandFlag flags, uint32 p1, u
}
cost.AddCost(RailBuildCost(railtype));
_rail_track_endtile = tile;
return cost;
}
@@ -586,8 +578,6 @@ CommandCost CmdRemoveSingleRail(TileIndex tile, DoCommandFlag flags, uint32 p1,
CommandCost cost(EXPENSES_CONSTRUCTION);
bool crossing = false;
_rail_track_endtile = INVALID_TILE;
if (!ValParamTrackOrientation(track)) return CMD_ERROR;
TrackBits trackbit = TrackToTrackBits(track);
@@ -714,7 +704,6 @@ CommandCost CmdRemoveSingleRail(TileIndex tile, DoCommandFlag flags, uint32 p1,
if (v != NULL) TryPathReserve(v, true);
}
_rail_track_endtile = tile;
return cost;
}
@@ -848,8 +837,6 @@ static CommandCost CmdRailTrackHelper(TileIndex tile, DoCommandFlag flags, uint3
bool remove = HasBit(p2, 7);
RailType railtype = Extract<RailType, 0, 4>(p2);
_rail_track_endtile = INVALID_TILE;
if ((!remove && !ValParamRailtype(railtype)) || !ValParamTrackOrientation(track)) return CMD_ERROR;
if (p1 >= MapSize()) return CMD_ERROR;
TileIndex end_tile = p1;
@@ -861,12 +848,10 @@ static CommandCost CmdRailTrackHelper(TileIndex tile, DoCommandFlag flags, uint3
bool had_success = false;
CommandCost last_error = CMD_ERROR;
for (;;) {
TileIndex last_endtile = _rail_track_endtile;
CommandCost ret = DoCommand(tile, remove ? 0 : railtype, TrackdirToTrack(trackdir), flags, remove ? CMD_REMOVE_SINGLE_RAIL : CMD_BUILD_SINGLE_RAIL);
if (ret.Failed()) {
last_error = ret;
if (_rail_track_endtile == INVALID_TILE) _rail_track_endtile = last_endtile;
if (last_error.GetErrorMessage() != STR_ERROR_ALREADY_BUILT && !remove) {
if (HasBit(p2, 8)) return last_error;
break;

View File

@@ -52,14 +52,9 @@ static bool _convert_signal_button; ///< convert signal button in the s
static SignalVariant _cur_signal_variant; ///< set the signal variant (for signal GUI)
static SignalType _cur_signal_type; ///< set the signal type (for signal GUI)
extern TileIndex _rail_track_endtile; // rail_cmd.cpp
/* Map the setting: default_signal_type to the corresponding signal type */
static const SignalType _default_signal_type[] = {SIGTYPE_NORMAL, SIGTYPE_PBS, SIGTYPE_PBS_ONEWAY};
static const int HOTKEY_POLYRAIL = 0x1000;
static const int HOTKEY_NEW_POLYRAIL = 0x1001;
struct RailStationGUISettings {
Axis orientation; ///< Currently selected rail station orientation
@@ -96,20 +91,13 @@ void CcPlaySound1E(const CommandCost &result, TileIndex tile, uint32 p1, uint32
if (result.Succeeded() && _settings_client.sound.confirm) SndPlayTileFx(SND_20_SPLAT_RAIL, tile);
}
static CommandContainer GenericPlaceRailCmd(TileIndex tile, Track track)
static void GenericPlaceRail(TileIndex tile, int cmd)
{
CommandContainer ret = {
tile, // tile
_cur_railtype, // p1
track, // p2
_remove_button_clicked ?
CMD_REMOVE_SINGLE_RAIL | CMD_MSG(STR_ERROR_CAN_T_REMOVE_RAILROAD_TRACK) :
CMD_BUILD_SINGLE_RAIL | CMD_MSG(STR_ERROR_CAN_T_BUILD_RAILROAD_TRACK), // cmd
CcPlaySound1E, // callback
"" // text
};
return ret;
DoCommandP(tile, _cur_railtype, cmd,
_remove_button_clicked ?
CMD_REMOVE_SINGLE_RAIL | CMD_MSG(STR_ERROR_CAN_T_REMOVE_RAILROAD_TRACK) :
CMD_BUILD_SINGLE_RAIL | CMD_MSG(STR_ERROR_CAN_T_BUILD_RAILROAD_TRACK),
CcPlaySound1E);
}
/**
@@ -288,7 +276,6 @@ void CcBuildRailTunnel(const CommandCost &result, TileIndex tile, uint32 p1, uin
if (result.Succeeded()) {
if (_settings_client.sound.confirm) SndPlayTileFx(SND_20_SPLAT_RAIL, tile);
if (!_settings_client.gui.persistent_buildingtools) ResetObjectToPlace();
StoreRailPlacementEndpoints(tile, _build_tunnel_endtile, TileX(tile) == TileX(_build_tunnel_endtile) ? TRACK_Y : TRACK_X, false);
} else {
SetRedErrorSquare(_build_tunnel_endtile);
}
@@ -318,7 +305,7 @@ static bool RailToolbar_CtrlChanged(Window *w)
/* allow ctrl to switch remove mode only for these widgets */
for (uint i = WID_RAT_BUILD_NS; i <= WID_RAT_BUILD_STATION; i++) {
if ((i <= WID_RAT_POLYRAIL || i >= WID_RAT_BUILD_WAYPOINT) && w->IsWidgetLowered(i)) {
if ((i <= WID_RAT_AUTORAIL || i >= WID_RAT_BUILD_WAYPOINT) && w->IsWidgetLowered(i)) {
ToggleRailButton_Remove(w);
return true;
}
@@ -362,45 +349,25 @@ static void BuildRailClick_Remove(Window *w)
}
}
static CommandContainer DoRailroadTrackCmd(TileIndex start_tile, TileIndex end_tile, Track track)
static void DoRailroadTrack(int mode)
{
CommandContainer ret = {
start_tile, // tile
end_tile, // p1
_cur_railtype | (track << 4), // p2
_remove_button_clicked ?
CMD_REMOVE_RAILROAD_TRACK | CMD_MSG(STR_ERROR_CAN_T_REMOVE_RAILROAD_TRACK) :
CMD_BUILD_RAILROAD_TRACK | CMD_MSG(STR_ERROR_CAN_T_BUILD_RAILROAD_TRACK), // cmd
CcPlaySound1E, // callback
"" // text
};
return ret;
DoCommandP(TileVirtXY(_thd.selstart.x, _thd.selstart.y), TileVirtXY(_thd.selend.x, _thd.selend.y), _cur_railtype | (mode << 4),
_remove_button_clicked ?
CMD_REMOVE_RAILROAD_TRACK | CMD_MSG(STR_ERROR_CAN_T_REMOVE_RAILROAD_TRACK) :
CMD_BUILD_RAILROAD_TRACK | CMD_MSG(STR_ERROR_CAN_T_BUILD_RAILROAD_TRACK),
CcPlaySound1E);
}
static void HandleAutodirPlacement()
{
Track track = (Track)(_thd.drawstyle & HT_DIR_MASK); // 0..5
TileIndex start_tile = TileVirtXY(_thd.selstart.x, _thd.selstart.y);
TileIndex end_tile = TileVirtXY(_thd.selend.x, _thd.selend.y);
int trackstat = _thd.drawstyle & HT_DIR_MASK; // 0..5
CommandContainer cmd = (_thd.drawstyle & HT_RAIL) ?
GenericPlaceRailCmd(end_tile, track) : // one tile case
DoRailroadTrackCmd(start_tile, end_tile, track); // multitile selection
/* When overbuilding existing tracks in polyline mode we just want to move the
* snap point without altering the user with the "already built" error. Don't
* execute the command right away, firstly check if tracks are being overbuilt. */
if (!(_thd.place_mode & HT_POLY) || _shift_pressed ||
DoCommand(&cmd, DC_AUTO | DC_NO_WATER).GetErrorMessage() != STR_ERROR_ALREADY_BUILT) {
/* place tracks */
if (!DoCommandP(&cmd)) return;
if (_thd.drawstyle & HT_RAIL) { // one tile case
GenericPlaceRail(TileVirtXY(_thd.selend.x, _thd.selend.y), trackstat);
return;
}
/* save new snap points for the polyline tool */
if (!_shift_pressed && _rail_track_endtile != INVALID_TILE) {
StoreRailPlacementEndpoints(start_tile, _rail_track_endtile, track, true);
}
DoRailroadTrack(trackstat);
}
/**
@@ -494,7 +461,6 @@ struct BuildRailToolbarWindow : Window {
this->GetWidget<NWidgetCore>(WID_RAT_BUILD_EW)->widget_data = rti->gui_sprites.build_ew_rail;
this->GetWidget<NWidgetCore>(WID_RAT_BUILD_Y)->widget_data = rti->gui_sprites.build_y_rail;
this->GetWidget<NWidgetCore>(WID_RAT_AUTORAIL)->widget_data = rti->gui_sprites.auto_rail;
this->GetWidget<NWidgetCore>(WID_RAT_POLYRAIL)->widget_data = rti->gui_sprites.auto_rail;
this->GetWidget<NWidgetCore>(WID_RAT_BUILD_DEPOT)->widget_data = rti->gui_sprites.build_depot;
this->GetWidget<NWidgetCore>(WID_RAT_CONVERT_RAIL)->widget_data = rti->gui_sprites.convert_rail;
this->GetWidget<NWidgetCore>(WID_RAT_BUILD_TUNNEL)->widget_data = rti->gui_sprites.build_tunnel;
@@ -523,7 +489,6 @@ struct BuildRailToolbarWindow : Window {
case WID_RAT_BUILD_EW:
case WID_RAT_BUILD_Y:
case WID_RAT_AUTORAIL:
case WID_RAT_POLYRAIL:
case WID_RAT_BUILD_WAYPOINT:
case WID_RAT_BUILD_STATION:
case WID_RAT_BUILD_SIGNALS:
@@ -555,15 +520,6 @@ struct BuildRailToolbarWindow : Window {
}
}
virtual void DrawWidget(const Rect &r, int widget) const
{
if (widget == WID_RAT_POLYRAIL) {
Dimension d = GetSpriteSize(SPR_BLOT);
uint offset = this->IsWidgetLowered(WID_RAT_POLYRAIL) ? 1 : 0;
DrawSprite(SPR_BLOT, PALETTE_TO_GREY, (r.left + r.right - d.width) / 2 + offset, (r.top + r.bottom - d.height) / 2 + offset);
}
}
virtual void OnClick(Point pt, int widget, int click_count)
{
if (widget < WID_RAT_BUILD_NS) return;
@@ -595,40 +551,6 @@ struct BuildRailToolbarWindow : Window {
this->last_user_action = widget;
break;
case WID_RAT_POLYRAIL: {
bool was_snap = CurrentlySnappingRailPlacement();
bool was_open = this->IsWidgetLowered(WID_RAT_POLYRAIL);
bool do_snap;
bool do_open;
/* "polyrail" hotkey - activate polyline tool in snapping mode, close the tool if snapping mode is already active
* "new_polyrail" hotkey - activate polyline tool in non-snapping (new line) mode, close the tool if non-snapping mode is already active
* button ctrl-clicking - switch between snapping and non-snapping modes, open the tool in non-snapping mode if it is closed
* button clicking - open the tool in non-snapping mode, close the tool if it is opened */
if (this->last_user_action == HOTKEY_POLYRAIL) {
do_snap = true;
do_open = !was_open || !was_snap;
} else if (this->last_user_action == HOTKEY_NEW_POLYRAIL) {
do_snap = false;
do_open = !was_open || was_snap;
} else if (_ctrl_pressed) {
do_snap = !was_open || !was_snap;
do_open = true;
} else {
do_snap = false;
do_open = !was_open;
}
/* close the tool explicitly so it can be re-opened in different snapping mode */
if (was_open) ResetObjectToPlace();
/* open the tool in desired mode */
if (do_open && HandlePlacePushButton(this, WID_RAT_POLYRAIL, GetRailTypeInfo(railtype)->cursor.autorail, do_snap ? (HT_RAIL | HT_POLY) : (HT_RAIL | HT_NEW_POLY))) {
/* if we are re-opening the tool but we couldn't switch the snapping
* then close the tool instead of appearing to be doing nothing */
if (was_open && do_snap != CurrentlySnappingRailPlacement()) ResetObjectToPlace();
}
this->last_user_action = WID_RAT_POLYRAIL;
break;
}
case WID_RAT_DEMOLISH:
HandlePlacePushButton(this, WID_RAT_DEMOLISH, ANIMCURSOR_DEMOLISH, HT_RECT | HT_DIAGONAL);
this->last_user_action = widget;
@@ -693,15 +615,7 @@ struct BuildRailToolbarWindow : Window {
virtual EventState OnHotkey(int hotkey)
{
MarkTileDirtyByTile(TileVirtXY(_thd.pos.x, _thd.pos.y)); // redraw tile selection
if (hotkey == HOTKEY_POLYRAIL || hotkey == HOTKEY_NEW_POLYRAIL) {
/* Indicate to the OnClick that the action comes from a hotkey rather
* then from a click and that the CTRL state should be ignored. */
this->last_user_action = hotkey;
hotkey = WID_RAT_POLYRAIL;
}
return this->Window::OnHotkey(hotkey);
return Window::OnHotkey(hotkey);
}
virtual void OnPlaceObject(Point pt, TileIndex tile)
@@ -724,7 +638,6 @@ struct BuildRailToolbarWindow : Window {
break;
case WID_RAT_AUTORAIL:
case WID_RAT_POLYRAIL:
VpStartPlaceSizing(tile, VPM_RAILDIRS, DDSP_PLACE_RAIL);
break;
@@ -872,8 +785,6 @@ static EventState RailToolbarGlobalHotkeys(int hotkey)
}
const uint16 _railtoolbar_autorail_keys[] = {'5', 'A' | WKC_GLOBAL_HOTKEY, 0};
const uint16 _railtoolbar_polyrail_keys[] = {'5' | WKC_CTRL, 'A' | WKC_CTRL | WKC_GLOBAL_HOTKEY, 0};
const uint16 _railtoolbar_new_poly_keys[] = {'5' | WKC_CTRL | WKC_SHIFT, 'A' | WKC_CTRL | WKC_SHIFT | WKC_GLOBAL_HOTKEY, 0};
static Hotkey railtoolbar_hotkeys[] = {
Hotkey('1', "build_ns", WID_RAT_BUILD_NS),
@@ -881,8 +792,6 @@ static Hotkey railtoolbar_hotkeys[] = {
Hotkey('3', "build_ew", WID_RAT_BUILD_EW),
Hotkey('4', "build_y", WID_RAT_BUILD_Y),
Hotkey(_railtoolbar_autorail_keys, "autorail", WID_RAT_AUTORAIL),
Hotkey(_railtoolbar_polyrail_keys, "polyrail", HOTKEY_POLYRAIL),
Hotkey(_railtoolbar_new_poly_keys, "new_polyrail", HOTKEY_NEW_POLYRAIL),
Hotkey('6', "demolish", WID_RAT_DEMOLISH),
Hotkey('7', "depot", WID_RAT_BUILD_DEPOT),
Hotkey('8', "waypoint", WID_RAT_BUILD_WAYPOINT),
@@ -913,8 +822,6 @@ static const NWidgetPart _nested_build_rail_widgets[] = {
SetFill(0, 1), SetMinimalSize(22, 22), SetDataTip(SPR_IMG_RAIL_NW, STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TRACK),
NWidget(WWT_IMGBTN, COLOUR_DARK_GREEN, WID_RAT_AUTORAIL),
SetFill(0, 1), SetMinimalSize(22, 22), SetDataTip(SPR_IMG_AUTORAIL, STR_RAIL_TOOLBAR_TOOLTIP_BUILD_AUTORAIL),
NWidget(WWT_IMGBTN, COLOUR_DARK_GREEN, WID_RAT_POLYRAIL),
SetFill(0, 1), SetMinimalSize(22, 22), SetDataTip(SPR_IMG_AUTORAIL, STR_RAIL_TOOLBAR_TOOLTIP_BUILD_POLYRAIL),
NWidget(WWT_PANEL, COLOUR_DARK_GREEN), SetMinimalSize(4, 22), SetDataTip(0x0, STR_NULL), EndContainer(),

View File

@@ -1,4 +1,4 @@
/* $Id: road_cmd.cpp 27157 2015-02-22 14:01:24Z frosch $ */
/* $Id: road_cmd.cpp 27186 2015-03-14 14:27:07Z michi_cc $ */
/*
* This file is part of OpenTTD.
@@ -1156,16 +1156,15 @@ const byte _road_sloped_sprites[14] = {
};
/**
* Whether to draw unpaved roads regardless of the town zone.
* By default, OpenTTD always draws roads as unpaved if they are on a desert
* tile or above the snowline. Newgrf files, however, can set a bit that allows
* paved roads to be built on desert tiles as they would be on grassy tiles.
* Should the road be drawn as a unpaved snow/desert road?
* By default, roads are always drawn as unpaved if they are on desert or
* above the snow line, but NewGRFs can override this for desert.
*
* @param tile The tile the road is on
* @param roadside What sort of road this is
* @return True if the road should be drawn unpaved regardless of the roadside.
* @return True if snow/desert road sprites should be used.
*/
static bool AlwaysDrawUnpavedRoads(TileIndex tile, Roadside roadside)
static bool DrawRoadAsSnowDesert(TileIndex tile, Roadside roadside)
{
return (IsOnSnow(tile) &&
!(_settings_game.game_creation.landscape == LT_TROPIC && HasGrfMiscBit(GMB_DESERT_PAVED_ROADS) &&
@@ -1245,7 +1244,7 @@ static void DrawRoadBits(TileInfo *ti)
Roadside roadside = GetRoadside(ti->tile);
if (AlwaysDrawUnpavedRoads(ti->tile, roadside)) {
if (DrawRoadAsSnowDesert(ti->tile, roadside)) {
image += 19;
} else {
switch (roadside) {
@@ -1328,7 +1327,7 @@ static void DrawTile_Road(TileInfo *ti)
Roadside roadside = GetRoadside(ti->tile);
if (AlwaysDrawUnpavedRoads(ti->tile, roadside)) {
if (DrawRoadAsSnowDesert(ti->tile, roadside)) {
road += 19;
} else {
switch (roadside) {
@@ -1354,7 +1353,7 @@ static void DrawTile_Road(TileInfo *ti)
Roadside roadside = GetRoadside(ti->tile);
if (AlwaysDrawUnpavedRoads(ti->tile, roadside)) {
if (DrawRoadAsSnowDesert(ti->tile, roadside)) {
image += 8;
} else {
switch (roadside) {

View File

@@ -1,4 +1,4 @@
/* $Id: roadveh_cmd.cpp 27134 2015-02-01 20:54:24Z frosch $ */
/* $Id: roadveh_cmd.cpp 27190 2015-03-16 20:01:14Z frosch $ */
/*
* This file is part of OpenTTD.
@@ -824,8 +824,9 @@ static void RoadVehCheckOvertake(RoadVehicle *v, RoadVehicle *u)
if (v->state >= RVSB_IN_ROAD_STOP || !IsStraightRoadTrackdir((Trackdir)(v->state & RVSB_TRACKDIR_MASK))) return;
/* Can't overtake a vehicle that is moving faster than us. If the vehicle in front is
* accelerating, take the maximum speed for the comparison, else the current speed. */
int u_speed = u->GetAcceleration() > 0 ? u->GetCurrentMaxSpeed() : u->cur_speed;
* accelerating, take the maximum speed for the comparison, else the current speed.
* Original acceleration always accelerates, so always use the maximum speed. */
int u_speed = (_settings_game.vehicle.roadveh_acceleration_model == AM_ORIGINAL || u->GetAcceleration() > 0) ? u->GetCurrentMaxSpeed() : u->cur_speed;
if (u_speed >= v->GetCurrentMaxSpeed() &&
!(u->vehstatus & VS_STOPPED) &&
u->cur_speed != 0) {

View File

@@ -1,4 +1,4 @@
/* $Id: linkgraph_sl.cpp 26646 2014-06-14 13:35:39Z fonsinchen $ */
/* $Id: linkgraph_sl.cpp 27178 2015-03-07 18:27:01Z frosch $ */
/*
* This file is part of OpenTTD.
@@ -220,7 +220,7 @@ static void Load_LGRJ()
*/
static void Load_LGRS()
{
SlObject(LinkGraphSchedule::Instance(), GetLinkGraphScheduleDesc());
SlObject(&LinkGraphSchedule::instance, GetLinkGraphScheduleDesc());
}
/**
@@ -246,7 +246,7 @@ void AfterLoadLinkGraphs()
}
}
LinkGraphSchedule::Instance()->SpawnAll();
LinkGraphSchedule::instance.SpawnAll();
}
/**
@@ -278,7 +278,7 @@ static void Save_LGRJ()
*/
static void Save_LGRS()
{
SlObject(LinkGraphSchedule::Instance(), GetLinkGraphScheduleDesc());
SlObject(&LinkGraphSchedule::instance, GetLinkGraphScheduleDesc());
}
/**
@@ -286,7 +286,7 @@ static void Save_LGRS()
*/
static void Ptrs_LGRS()
{
SlObject(LinkGraphSchedule::Instance(), GetLinkGraphScheduleDesc());
SlObject(&LinkGraphSchedule::instance, GetLinkGraphScheduleDesc());
}
extern const ChunkHandler _linkgraph_chunk_handlers[] = {

View File

@@ -1,4 +1,4 @@
/* $Id: ai_changelog.hpp 27032 2014-10-23 09:47:15Z rubidium $ */
/* $Id: ai_changelog.hpp 27195 2015-03-18 19:33:34Z frosch $ */
/*
* This file is part of OpenTTD.
@@ -17,8 +17,6 @@
*
* \b 1.5.0
*
* 1.5.0 is not yet released. The following changes are not set in stone yet.
*
* API additions:
* \li AIList::SwapList
* \li AIStation::GetCargoPlanned

View File

@@ -1,4 +1,4 @@
/* $Id: game_window.hpp.sq 27152 2015-02-15 14:56:21Z frosch $ */
/* $Id: game_window.hpp.sq 27174 2015-03-01 08:17:14Z alberth $ */
/*
* This file is part of OpenTTD.
@@ -774,10 +774,12 @@ void SQGSWindow_Register(Squirrel *engine)
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SA_RIGHT, "WID_SA_RIGHT");
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SA_DOWN, "WID_SA_DOWN");
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SA_SPRITE, "WID_SA_SPRITE");
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SA_OFFSETS, "WID_SA_OFFSETS");
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SA_OFFSETS_ABS, "WID_SA_OFFSETS_ABS");
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SA_OFFSETS_REL, "WID_SA_OFFSETS_REL");
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SA_PICKER, "WID_SA_PICKER");
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SA_LIST, "WID_SA_LIST");
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SA_SCROLLBAR, "WID_SA_SCROLLBAR");
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_SA_RESET_REL, "WID_SA_RESET_REL");
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NP_SHOW_NUMPAR, "WID_NP_SHOW_NUMPAR");
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NP_NUMPAR_DEC, "WID_NP_NUMPAR_DEC");
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_NP_NUMPAR_INC, "WID_NP_NUMPAR_INC");
@@ -904,7 +906,6 @@ void SQGSWindow_Register(Squirrel *engine)
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RAT_BUILD_EW, "WID_RAT_BUILD_EW");
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RAT_BUILD_Y, "WID_RAT_BUILD_Y");
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RAT_AUTORAIL, "WID_RAT_AUTORAIL");
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RAT_POLYRAIL, "WID_RAT_POLYRAIL");
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RAT_DEMOLISH, "WID_RAT_DEMOLISH");
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RAT_BUILD_DEPOT, "WID_RAT_BUILD_DEPOT");
SQGSWindow.DefSQConst(engine, ScriptWindow::WID_RAT_BUILD_WAYPOINT, "WID_RAT_BUILD_WAYPOINT");

View File

@@ -1,4 +1,4 @@
/* $Id: game_changelog.hpp 27164 2015-02-22 17:25:29Z alberth $ */
/* $Id: game_changelog.hpp 27195 2015-03-18 19:33:34Z frosch $ */
/*
* This file is part of OpenTTD.
@@ -17,8 +17,6 @@
*
* \b 1.5.0
*
* 1.5.0 is not yet released. The following changes are not set in stone yet.
*
* API additions:
* \li GSList::SwapList
* \li GSStation::GetCargoPlanned

View File

@@ -1,4 +1,4 @@
/* $Id: script_window.hpp 27152 2015-02-15 14:56:21Z frosch $ */
/* $Id: script_window.hpp 27174 2015-03-01 08:17:14Z alberth $ */
/*
* This file is part of OpenTTD.
@@ -1800,10 +1800,12 @@ public:
WID_SA_RIGHT = ::WID_SA_RIGHT, ///< Move the sprite to the right.
WID_SA_DOWN = ::WID_SA_DOWN, ///< Move the sprite down.
WID_SA_SPRITE = ::WID_SA_SPRITE, ///< The actual sprite.
WID_SA_OFFSETS = ::WID_SA_OFFSETS, ///< The sprite offsets.
WID_SA_OFFSETS_ABS = ::WID_SA_OFFSETS_ABS, ///< The sprite offsets (absolute).
WID_SA_OFFSETS_REL = ::WID_SA_OFFSETS_REL, ///< The sprite offsets (relative).
WID_SA_PICKER = ::WID_SA_PICKER, ///< Sprite picker.
WID_SA_LIST = ::WID_SA_LIST, ///< Queried sprite list.
WID_SA_SCROLLBAR = ::WID_SA_SCROLLBAR, ///< Scrollbar for sprite list.
WID_SA_RESET_REL = ::WID_SA_RESET_REL, ///< Reset relative sprite offset
};
/* automatically generated from ../../widgets/newgrf_widget.h */
@@ -1982,7 +1984,6 @@ public:
WID_RAT_BUILD_EW = ::WID_RAT_BUILD_EW, ///< Build rail along the game view X axis.
WID_RAT_BUILD_Y = ::WID_RAT_BUILD_Y, ///< Build rail along the game grid Y axis.
WID_RAT_AUTORAIL = ::WID_RAT_AUTORAIL, ///< Autorail tool.
WID_RAT_POLYRAIL = ::WID_RAT_POLYRAIL, ///< Polyline rail tool.
WID_RAT_DEMOLISH = ::WID_RAT_DEMOLISH, ///< Destroy something with dynamite!
WID_RAT_BUILD_DEPOT = ::WID_RAT_BUILD_DEPOT, ///< Build a depot.
WID_RAT_BUILD_WAYPOINT = ::WID_RAT_BUILD_WAYPOINT, ///< Build a waypoint.

View File

@@ -1,4 +1,4 @@
/* $Id: station.cpp 27030 2014-10-21 19:16:47Z rubidium $ */
/* $Id: station.cpp 27178 2015-03-07 18:27:01Z frosch $ */
/*
* This file is part of OpenTTD.
@@ -106,7 +106,7 @@ Station::~Station()
}
lg->RemoveNode(this->goods[c].node);
if (lg->Size() == 0) {
LinkGraphSchedule::Instance()->Unqueue(lg);
LinkGraphSchedule::instance.Unqueue(lg);
delete lg;
}
}

View File

@@ -1,4 +1,4 @@
/* $Id: station_base.h 26891 2014-09-21 16:19:52Z fonsinchen $ */
/* $Id: station_base.h 27178 2015-03-07 18:27:01Z frosch $ */
/*
* This file is part of OpenTTD.
@@ -37,6 +37,8 @@ class FlowStat {
public:
typedef std::map<uint32, StationID> SharesMap;
static const SharesMap empty_sharesmap;
/**
* Invalid constructor. This can't be called as a FlowStat must not be
* empty. However, the constructor must be defined and reachable for

View File

@@ -1,4 +1,4 @@
/* $Id: station_cmd.cpp 26891 2014-09-21 16:19:52Z fonsinchen $ */
/* $Id: station_cmd.cpp 27178 2015-03-07 18:27:01Z frosch $ */
/*
* This file is part of OpenTTD.
@@ -58,6 +58,13 @@
#include "safeguards.h"
/**
* Static instance of FlowStat::SharesMap.
* Note: This instance is created on task start.
* Lazy creation on first usage results in a data race between the CDist threads.
*/
/* static */ const FlowStat::SharesMap FlowStat::empty_sharesmap;
/**
* Check whether the given tile is a hangar.
* @param t the tile to of whether it is a hangar.
@@ -3536,7 +3543,7 @@ void IncreaseStats(Station *st, CargoID cargo, StationID next_station_id, uint c
if (ge2.link_graph == INVALID_LINK_GRAPH) {
if (LinkGraph::CanAllocateItem()) {
lg = new LinkGraph(cargo);
LinkGraphSchedule::Instance()->Queue(lg);
LinkGraphSchedule::instance.Queue(lg);
ge2.link_graph = lg->index;
ge2.node = lg->AddNode(st2);
} else {
@@ -3558,11 +3565,11 @@ void IncreaseStats(Station *st, CargoID cargo, StationID next_station_id, uint c
if (ge1.link_graph != ge2.link_graph) {
LinkGraph *lg2 = LinkGraph::Get(ge2.link_graph);
if (lg->Size() < lg2->Size()) {
LinkGraphSchedule::Instance()->Unqueue(lg);
LinkGraphSchedule::instance.Unqueue(lg);
lg2->Merge(lg); // Updates GoodsEntries of lg
lg = lg2;
} else {
LinkGraphSchedule::Instance()->Unqueue(lg2);
LinkGraphSchedule::instance.Unqueue(lg2);
lg->Merge(lg2); // Updates GoodsEntries of lg2
}
}
@@ -3684,7 +3691,7 @@ static uint UpdateStationWaiting(Station *st, CargoID type, uint amount, SourceT
if (ge.link_graph == INVALID_LINK_GRAPH) {
if (LinkGraph::CanAllocateItem()) {
lg = new LinkGraph(type);
LinkGraphSchedule::Instance()->Queue(lg);
LinkGraphSchedule::instance.Queue(lg);
ge.link_graph = lg->index;
ge.node = lg->AddNode(st);
} else {

View File

@@ -1,4 +1,4 @@
/* $Id: object_land.h 25876 2013-10-17 21:41:17Z planetmaker $ */
/* $Id: object_land.h 27183 2015-03-13 19:42:49Z rubidium $ */
/*
* This file is part of OpenTTD.
@@ -123,7 +123,7 @@ static const DrawTileSprites _object_hq[] = {
#undef TILE_SPRITE_LINE
#define M(name, size, build_cost_multiplier, clear_cost_multiplier, height, climate, gen_amount, flags) { GRFFilePropsBase<2>(), INVALID_OBJECT_CLASS, name, climate, size, build_cost_multiplier, clear_cost_multiplier, 0, 0xFFFFFFFF, flags, {0, 0, 0, 0}, 0, height, 1, gen_amount, true }
#define M(name, size, build_cost_multiplier, clear_cost_multiplier, height, climate, gen_amount, flags) { GRFFilePropsBase<2>(), INVALID_OBJECT_CLASS, name, climate, size, build_cost_multiplier, clear_cost_multiplier, 0, MAX_DAY + 1, flags, {0, 0, 0, 0}, 0, height, 1, gen_amount, true }
/* Climates
* T = Temperate

View File

@@ -14,7 +14,6 @@
#include "gfx_type.h"
#include "tilehighlight_type.h"
#include "track_type.h"
void PlaceProc_DemolishArea(TileIndex tile);
bool GUIPlaceProcDragXY(ViewportDragDropSelectionProcess proc, TileIndex start_tile, TileIndex end_tile);
@@ -31,10 +30,6 @@ void VpSetPlaceSizingLimit(int limit);
void UpdateTileSelection();
void StoreRailPlacementEndpoints(TileIndex start_tile, TileIndex end_tile, Track start_track, bool bidirectional = true);
void ResetRailPlacementSnapping();
bool CurrentlySnappingRailPlacement();
extern TileHighlightData _thd;
#endif /* TILEHIGHLIGHT_FUNC_H */

View File

@@ -28,8 +28,6 @@ enum HighLightStyle {
HT_RAIL = 0x080, ///< autorail (one piece), lower bits: direction
HT_VEHICLE = 0x100, ///< vehicle is accepted as target as well (bitmask)
HT_DIAGONAL = 0x200, ///< Also allow 'diagonal rectangles'. Only usable in combination with #HT_RECT or #HT_POINT.
HT_POLY = 0x400, ///< polyline mode; connect highlighted track with previous one
HT_NEW_POLY = 0xC00, ///< start completly new polyline; implies #HT_POLY
HT_DRAG_MASK = 0x0F8, ///< Mask for the tile drag-type modes.
/* lower bits (used with HT_LINE and HT_RAIL):
@@ -56,15 +54,11 @@ struct TileHighlightData {
Point new_pos; ///< New value for \a pos; used to determine whether to redraw the selection.
Point new_size; ///< New value for \a size; used to determine whether to redraw the selection.
Point new_offs; ///< New value for \a offs; used to determine whether to redraw the selection.
Point new_outersize; ///< New value for \a outersize; used to determine whether to redraw the selection.
byte dirty; ///< Whether the build station window needs to redraw due to the changed selection.
Point selstart; ///< The location where the dragging started.
Point selend; ///< The location where the drag currently ends.
Point selstart2; ///< The location where the second segment of a polyline track starts.
Point selend2; ///< The location where the second segment of a polyline track ends.
HighLightStyle dir2; ///< Direction of the second segment of a polyline track, HT_DIR_END if second segment is not selected. HT_LINE drawstyle.
byte sizelimit; ///< Whether the selection is limited in length, and what the maximum length is.
HighLightStyle drawstyle; ///< Lower bits 0-3 are reserved for detailed highlight information.

View File

@@ -1,4 +1,4 @@
/* $Id: toolbar_gui.cpp 27150 2015-02-14 21:22:47Z frosch $ */
/* $Id: toolbar_gui.cpp 27178 2015-03-07 18:27:01Z frosch $ */
/*
* This file is part of OpenTTD.
@@ -1125,7 +1125,7 @@ void SetStartingYear(Year year)
_settings_game.game_creation.starting_year = Clamp(year, MIN_YEAR, MAX_YEAR);
Date new_date = ConvertYMDToDate(_settings_game.game_creation.starting_year, 0, 1);
/* If you open a savegame as scenario there may already be link graphs.*/
LinkGraphSchedule::Instance()->ShiftDates(new_date - _date);
LinkGraphSchedule::instance.ShiftDates(new_date - _date);
SetDate(new_date, 0);
}

View File

@@ -1,4 +1,4 @@
/* $Id: townname.cpp 26510 2014-04-25 17:35:29Z rubidium $ */
/* $Id: townname.cpp 27187 2015-03-15 12:19:58Z frosch $ */
/*
* This file is part of OpenTTD.
@@ -635,7 +635,7 @@ static char *MakeCzechTownName(char *buf, const char *last, uint32 seed)
choose = _name_czech_subst_full[stem].choose;
allow = _name_czech_subst_full[stem].allow;
} else {
unsigned int map[lengthof(_name_czech_subst_ending)];
uint map[lengthof(_name_czech_subst_ending)];
int ending_start = -1, ending_stop = -1;
/* Load the substantive */

View File

@@ -63,8 +63,6 @@
*/
#include "stdafx.h"
#include "core/math_func.hpp"
#include "core/smallvec_type.hpp"
#include "landscape.h"
#include "viewport_func.h"
#include "station_base.h"
@@ -151,34 +149,6 @@ typedef SmallVector<StringSpriteToDraw, 4> StringSpriteToDrawVector;
typedef SmallVector<ParentSpriteToDraw, 64> ParentSpriteToDrawVector;
typedef SmallVector<ChildScreenSpriteToDraw, 16> ChildScreenSpriteToDrawVector;
enum RailSnapMode {
RSM_NO_SNAP,
RSM_SNAP_TO_TILE,
RSM_SNAP_TO_RAIL,
};
/**
* Snapping point for a track.
*
* Point where a track (rail/road/other) can be snapped to while selecting tracks with polyline
* tool (HT_POLY). Besides of x/y coordinates expressed in tile "units" it contains a set of
* allowed line directions.
*/
struct LineSnapPoint : Point {
uint8 dirs; ///< Allowed line directions, set of #Direction bits.
};
typedef SmallVector<LineSnapPoint, 4> LineSnapPoints; ///< Set of snapping points
/** Coordinates of a polyline track made of 2 connected line segments. */
struct Polyline {
Point start; ///< The point where the first segment starts (as given in LineSnapPoint).
Direction first_dir; ///< Direction of the first line segment.
uint first_len; ///< Length of the first segment - number of track pieces.
Direction second_dir; ///< Direction of the second line segment.
uint second_len; ///< Length of the second segment - number of track pieces.
};
/** Data structure storing rendering information */
struct ViewportDrawer {
DrawPixelInfo dpi;
@@ -210,16 +180,6 @@ bool _draw_dirty_blocks = false;
uint _dirty_block_colour = 0;
static VpSpriteSorter _vp_sprite_sorter = NULL;
static RailSnapMode _rail_snap_mode = RSM_NO_SNAP; ///< Type of rail track snapping (polyline tool).
static LineSnapPoints _tile_snap_points; ///< Tile to which a rail track will be snapped to (polyline tool).
static LineSnapPoints _rail_snap_points; ///< Set of points where a rail track will be snapped to (polyline tool).
static LineSnapPoint _current_snap_lock; ///< Start point and direction at which selected track is locked on currently (while dragging in polyline mode).
static RailSnapMode GetRailSnapMode();
static void SetRailSnapMode(RailSnapMode mode);
static TileIndex GetRailSnapTile();
static void SetRailSnapTile(TileIndex tile);
static Point MapXYZToViewport(const ViewPort *vp, int x, int y, int z)
{
Point p = RemapCoords(x, y, z);
@@ -854,17 +814,13 @@ static bool IsInRangeInclusive(int begin, int end, int check)
}
/**
* Checks whether a point is inside the selected rectangle given by _thd.size, _thd.pos and _thd.diagonal
* Checks whether a point is inside the selected a diagonal rectangle given by _thd.size and _thd.pos
* @param x The x coordinate of the point to be checked.
* @param y The y coordinate of the point to be checked.
* @return True if the point is inside the rectangle, else false.
*/
static bool IsInsideSelectedRectangle(int x, int y)
bool IsInsideRotatedRectangle(int x, int y)
{
if (!_thd.diagonal) {
return IsInsideBS(x, _thd.pos.x, _thd.size.x) && IsInsideBS(y, _thd.pos.y, _thd.size.y);
}
int dist_a = (_thd.size.x + _thd.size.y); // Rotated coordinate system for selected rectangle.
int dist_b = (_thd.size.x - _thd.size.y); // We don't have to divide by 2. It's all relative!
int a = ((x - _thd.pos.x) + (y - _thd.pos.y)); // Rotated coordinate system for the point under scrutiny.
@@ -981,45 +937,53 @@ static void DrawTileSelectionRect(const TileInfo *ti, PaletteID pal)
DrawSelectionSprite(sel, pal, ti, 7, FOUNDATION_PART_NORMAL);
}
static HighLightStyle GetPartOfAutoLine(int px, int py, const Point &selstart, const Point &selend, HighLightStyle dir)
static bool IsPartOfAutoLine(int px, int py)
{
if (!IsInRangeInclusive(selstart.x & ~TILE_UNIT_MASK, selend.x & ~TILE_UNIT_MASK, px)) return HT_DIR_END;
if (!IsInRangeInclusive(selstart.y & ~TILE_UNIT_MASK, selend.y & ~TILE_UNIT_MASK, py)) return HT_DIR_END;
px -= _thd.selstart.x;
py -= _thd.selstart.y;
px -= selstart.x & ~TILE_UNIT_MASK;
py -= selstart.y & ~TILE_UNIT_MASK;
if ((_thd.drawstyle & HT_DRAG_MASK) != HT_LINE) return false;
switch (dir) {
case HT_DIR_X: return (py == 0) ? HT_DIR_X : HT_DIR_END;
case HT_DIR_Y: return (px == 0) ? HT_DIR_Y : HT_DIR_END;
case HT_DIR_HU: return (px == -py) ? HT_DIR_HU : (px == -py - (int)TILE_SIZE) ? HT_DIR_HL : HT_DIR_END;
case HT_DIR_HL: return (px == -py) ? HT_DIR_HL : (px == -py + (int)TILE_SIZE) ? HT_DIR_HU : HT_DIR_END;
case HT_DIR_VL: return (px == py) ? HT_DIR_VL : (px == py + (int)TILE_SIZE) ? HT_DIR_VR : HT_DIR_END;
case HT_DIR_VR: return (px == py) ? HT_DIR_VR : (px == py - (int)TILE_SIZE) ? HT_DIR_VL : HT_DIR_END;
default: NOT_REACHED(); break;
switch (_thd.drawstyle & HT_DIR_MASK) {
case HT_DIR_X: return py == 0; // x direction
case HT_DIR_Y: return px == 0; // y direction
case HT_DIR_HU: return px == -py || px == -py - 16; // horizontal upper
case HT_DIR_HL: return px == -py || px == -py + 16; // horizontal lower
case HT_DIR_VL: return px == py || px == py + 16; // vertical left
case HT_DIR_VR: return px == py || px == py - 16; // vertical right
default:
NOT_REACHED();
}
return HT_DIR_END;
}
/* [direction][side] */
static const HighLightStyle _autorail_type[6][2] = {
{ HT_DIR_X, HT_DIR_X },
{ HT_DIR_Y, HT_DIR_Y },
{ HT_DIR_HU, HT_DIR_HL },
{ HT_DIR_HL, HT_DIR_HU },
{ HT_DIR_VL, HT_DIR_VR },
{ HT_DIR_VR, HT_DIR_VL }
};
#include "table/autorail.h"
/**
* Draws autorail highlights.
*
* @param *ti TileInfo Tile that is being drawn
* @param autorail_type \c HT_DIR_XXX, offset into _AutorailTilehSprite[][]
* @param pal Palette to use, -1 to autodetect
* @param autorail_type Offset into _AutorailTilehSprite[][]
*/
static void DrawAutorailSelection(const TileInfo *ti, HighLightStyle autorail_type, PaletteID pal = -1)
static void DrawAutorailSelection(const TileInfo *ti, uint autorail_type)
{
SpriteID image;
PaletteID pal;
int offset;
FoundationPart foundation_part = FOUNDATION_PART_NORMAL;
Slope autorail_tileh = RemoveHalftileSlope(ti->tileh);
if (IsHalftileSlope(ti->tileh)) {
static const HighLightStyle _lower_rail[CORNER_END] = { HT_DIR_VR, HT_DIR_HU, HT_DIR_VL, HT_DIR_HL }; // CORNER_W, CORNER_S, CORNER_E, CORNER_N
static const uint _lower_rail[4] = { 5U, 2U, 4U, 3U };
Corner halftile_corner = GetHalftileSlopeCorner(ti->tileh);
if (autorail_type != _lower_rail[halftile_corner]) {
foundation_part = FOUNDATION_PART_HALFTILE;
@@ -1028,17 +992,16 @@ static void DrawAutorailSelection(const TileInfo *ti, HighLightStyle autorail_ty
}
}
assert(autorail_type < HT_DIR_END);
offset = _AutorailTilehSprite[autorail_tileh][autorail_type];
if (offset >= 0) {
image = SPR_AUTORAIL_BASE + offset;
if (pal == (PaletteID)-1) pal = _thd.make_square_red ? PALETTE_SEL_TILE_RED : PAL_NONE;
pal = PAL_NONE;
} else {
image = SPR_AUTORAIL_BASE - offset;
if (pal == (PaletteID)-1) pal = PALETTE_SEL_TILE_RED;
pal = PALETTE_SEL_TILE_RED;
}
DrawSelectionSprite(image, pal, ti, 7, foundation_part);
DrawSelectionSprite(image, _thd.make_square_red ? PALETTE_SEL_TILE_RED : pal, ti, 7, foundation_part);
}
/**
@@ -1051,61 +1014,66 @@ static void DrawTileSelection(const TileInfo *ti)
bool is_redsq = _thd.redsq == ti->tile;
if (is_redsq) DrawTileSelectionRect(ti, PALETTE_TILE_RED_PULSATING);
switch (_thd.drawstyle & HT_DRAG_MASK) {
default: break; // No tile selection active?
/* No tile selection active? */
if ((_thd.drawstyle & HT_DRAG_MASK) == HT_NONE) return;
case HT_RECT:
if (!is_redsq) {
if (IsInsideSelectedRectangle(ti->x, ti->y)) {
DrawTileSelectionRect(ti, _thd.make_square_red ? PALETTE_SEL_TILE_RED : PAL_NONE);
} else if (_thd.outersize.x > 0 &&
/* Check if it's inside the outer area? */
IsInsideBS(ti->x, _thd.pos.x + _thd.offs.x, _thd.size.x + _thd.outersize.x) &&
IsInsideBS(ti->y, _thd.pos.y + _thd.offs.y, _thd.size.y + _thd.outersize.y)) {
/* Draw a blue rect. */
DrawTileSelectionRect(ti, PALETTE_SEL_TILE_BLUE);
if (_thd.diagonal) { // We're drawing a 45 degrees rotated (diagonal) rectangle
if (IsInsideRotatedRectangle((int)ti->x, (int)ti->y)) goto draw_inner;
return;
}
/* Inside the inner area? */
if (IsInsideBS(ti->x, _thd.pos.x, _thd.size.x) &&
IsInsideBS(ti->y, _thd.pos.y, _thd.size.y)) {
draw_inner:
if (_thd.drawstyle & HT_RECT) {
if (!is_redsq) DrawTileSelectionRect(ti, _thd.make_square_red ? PALETTE_SEL_TILE_RED : PAL_NONE);
} else if (_thd.drawstyle & HT_POINT) {
/* Figure out the Z coordinate for the single dot. */
int z = 0;
FoundationPart foundation_part = FOUNDATION_PART_NORMAL;
if (ti->tileh & SLOPE_N) {
z += TILE_HEIGHT;
if (RemoveHalftileSlope(ti->tileh) == SLOPE_STEEP_N) z += TILE_HEIGHT;
}
if (IsHalftileSlope(ti->tileh)) {
Corner halftile_corner = GetHalftileSlopeCorner(ti->tileh);
if ((halftile_corner == CORNER_W) || (halftile_corner == CORNER_E)) z += TILE_HEIGHT;
if (halftile_corner != CORNER_S) {
foundation_part = FOUNDATION_PART_HALFTILE;
if (IsSteepSlope(ti->tileh)) z -= TILE_HEIGHT;
}
}
break;
DrawSelectionSprite(_cur_dpi->zoom <= ZOOM_LVL_DETAIL ? SPR_DOT : SPR_DOT_SMALL, PAL_NONE, ti, z, foundation_part);
} else if (_thd.drawstyle & HT_RAIL) {
/* autorail highlight piece under cursor */
HighLightStyle type = _thd.drawstyle & HT_DIR_MASK;
assert(type < HT_DIR_END);
DrawAutorailSelection(ti, _autorail_type[type][0]);
} else if (IsPartOfAutoLine(ti->x, ti->y)) {
/* autorail highlighting long line */
HighLightStyle dir = _thd.drawstyle & HT_DIR_MASK;
uint side;
case HT_POINT:
if (IsInsideSelectedRectangle(ti->x, ti->y)) {
/* Figure out the Z coordinate for the single dot. */
int z = 0;
FoundationPart foundation_part = FOUNDATION_PART_NORMAL;
if (ti->tileh & SLOPE_N) {
z += TILE_HEIGHT;
if (RemoveHalftileSlope(ti->tileh) == SLOPE_STEEP_N) z += TILE_HEIGHT;
}
if (IsHalftileSlope(ti->tileh)) {
Corner halftile_corner = GetHalftileSlopeCorner(ti->tileh);
if ((halftile_corner == CORNER_W) || (halftile_corner == CORNER_E)) z += TILE_HEIGHT;
if (halftile_corner != CORNER_S) {
foundation_part = FOUNDATION_PART_HALFTILE;
if (IsSteepSlope(ti->tileh)) z -= TILE_HEIGHT;
}
}
DrawSelectionSprite(_cur_dpi->zoom <= ZOOM_LVL_DETAIL ? SPR_DOT : SPR_DOT_SMALL, PAL_NONE, ti, z, foundation_part);
if (dir == HT_DIR_X || dir == HT_DIR_Y) {
side = 0;
} else {
TileIndex start = TileVirtXY(_thd.selstart.x, _thd.selstart.y);
side = Delta(Delta(TileX(start), TileX(ti->tile)), Delta(TileY(start), TileY(ti->tile)));
}
break;
case HT_RAIL:
if (ti->tile == TileVirtXY(_thd.pos.x, _thd.pos.y)) {
assert((_thd.drawstyle & HT_DIR_MASK) < HT_DIR_END);
DrawAutorailSelection(ti, _thd.drawstyle & HT_DIR_MASK);
}
break;
case HT_LINE: {
HighLightStyle type = GetPartOfAutoLine(ti->x, ti->y, _thd.selstart, _thd.selend, _thd.drawstyle & HT_DIR_MASK);
if (type < HT_DIR_END) {
DrawAutorailSelection(ti, type);
} else if (_thd.dir2 < HT_DIR_END) {
type = GetPartOfAutoLine(ti->x, ti->y, _thd.selstart2, _thd.selend2, _thd.dir2);
if (type < HT_DIR_END) DrawAutorailSelection(ti, type, PALETTE_SEL_TILE_BLUE);
}
break;
DrawAutorailSelection(ti, _autorail_type[dir][side]);
}
return;
}
/* Check if it's inside the outer area? */
if (!is_redsq && _thd.outersize.x > 0 &&
IsInsideBS(ti->x, _thd.pos.x + _thd.offs.x, _thd.size.x + _thd.outersize.x) &&
IsInsideBS(ti->y, _thd.pos.y + _thd.offs.y, _thd.size.y + _thd.outersize.y)) {
/* Draw a blue rect. */
DrawTileSelectionRect(ti, PALETTE_SEL_TILE_BLUE);
return;
}
}
@@ -1971,7 +1939,7 @@ static void SetSelectionTilesDirty()
int x_start = _thd.pos.x;
int y_start = _thd.pos.y;
if (_thd.outersize.x != 0 || _thd.outersize.y != 0) {
if (_thd.outersize.x != 0) {
x_size += _thd.outersize.x;
x_start += _thd.offs.x;
y_size += _thd.outersize.y;
@@ -2194,7 +2162,7 @@ static void PlaceObject()
}
bool HandleViewportClicked(const ViewPort *vp, int x, int y, bool double_click)
bool HandleViewportClicked(const ViewPort *vp, int x, int y)
{
const Vehicle *v = CheckClickOnVehicle(vp, x, y);
@@ -2204,18 +2172,6 @@ bool HandleViewportClicked(const ViewPort *vp, int x, int y, bool double_click)
/* Vehicle placement mode already handled above. */
if ((_thd.place_mode & HT_DRAG_MASK) != HT_NONE) {
if (_thd.place_mode & HT_POLY) {
/* In polyline mode double-clicking on a single white line, finishes current polyline.
* If however the user double-clicks on a line that has a white and a blue section,
* both lines (white and blue) will be constructed consecutively. */
static bool stop_snap_on_double_click = false;
if (double_click && stop_snap_on_double_click) {
SetRailSnapMode(RSM_NO_SNAP);
return true;
}
stop_snap_on_double_click = !(_thd.drawstyle & HT_LINE) || (_thd.dir2 == HT_DIR_END);
}
PlaceObject();
return true;
}
@@ -2342,8 +2298,8 @@ void SetTileSelectSize(int w, int h)
void SetTileSelectBigSize(int ox, int oy, int sx, int sy)
{
_thd.new_offs.x = ox * TILE_SIZE;
_thd.new_offs.y = oy * TILE_SIZE;
_thd.offs.x = ox * TILE_SIZE;
_thd.offs.y = oy * TILE_SIZE;
_thd.new_outersize.x = sx * TILE_SIZE;
_thd.new_outersize.y = sy * TILE_SIZE;
}
@@ -2383,36 +2339,7 @@ Window *TileHighlightData::GetCallbackWnd()
return FindWindowById(this->window_class, this->window_number);
}
static HighLightStyle CalcPolyrailDrawstyle(Point pt, bool dragging);
static inline void CalcNewPolylineOutersize()
{
/* use the 'outersize' to mark the second (blue) part of a polyline selection */
if (_thd.dir2 < HT_DIR_END) {
/* get bounds of the second part */
int outer_x1 = _thd.selstart2.x & ~TILE_UNIT_MASK;
int outer_y1 = _thd.selstart2.y & ~TILE_UNIT_MASK;
int outer_x2 = _thd.selend2.x & ~TILE_UNIT_MASK;
int outer_y2 = _thd.selend2.y & ~TILE_UNIT_MASK;
if (outer_x1 > outer_x2) Swap(outer_x1, outer_x2);
if (outer_y1 > outer_y2) Swap(outer_y1, outer_y2);
/* include the first part */
outer_x1 = min<int>(outer_x1, _thd.new_pos.x);
outer_y1 = min<int>(outer_y1, _thd.new_pos.y);
outer_x2 = max<int>(outer_x2, _thd.new_pos.x + _thd.new_size.x - TILE_SIZE);
outer_y2 = max<int>(outer_y2, _thd.new_pos.y + _thd.new_size.y - TILE_SIZE);
/* write new values */
_thd.new_offs.x = outer_x1 - _thd.new_pos.x;
_thd.new_offs.y = outer_y1 - _thd.new_pos.y;
_thd.new_outersize.x = outer_x2 - outer_x1 + TILE_SIZE - _thd.new_size.x;
_thd.new_outersize.y = outer_y2 - outer_y1 + TILE_SIZE - _thd.new_size.y;
} else {
_thd.new_offs.x = 0;
_thd.new_offs.y = 0;
_thd.new_outersize.x = 0;
_thd.new_outersize.y = 0;
}
}
/**
* Updates tile highlighting for all cases.
@@ -2469,42 +2396,10 @@ void UpdateTileSelection()
y1 += TILE_SIZE / 2;
break;
case HT_RAIL:
/* Draw one highlighted tile in any direction */
new_drawstyle = GetAutorailHT(pt.x, pt.y);
break;
case HT_LINE:
/* HT_POLY */
if (_thd.place_mode & HT_POLY) {
RailSnapMode snap_mode = GetRailSnapMode();
if (snap_mode == RSM_NO_SNAP ||
(snap_mode == RSM_SNAP_TO_TILE && GetRailSnapTile() == TileVirtXY(pt.x, pt.y))) {
new_drawstyle = GetAutorailHT(pt.x, pt.y);
_thd.new_offs.x = 0;
_thd.new_offs.y = 0;
_thd.new_outersize.x = 0;
_thd.new_outersize.y = 0;
_thd.dir2 = HT_DIR_END;
} else {
new_drawstyle = CalcPolyrailDrawstyle(pt, false);
if (new_drawstyle != HT_NONE) {
x1 = _thd.selstart.x & ~TILE_UNIT_MASK;
y1 = _thd.selstart.y & ~TILE_UNIT_MASK;
int x2 = _thd.selend.x & ~TILE_UNIT_MASK;
int y2 = _thd.selend.y & ~TILE_UNIT_MASK;
if (x1 > x2) Swap(x1, x2);
if (y1 > y2) Swap(y1, y2);
_thd.new_pos.x = x1;
_thd.new_pos.y = y1;
_thd.new_size.x = x2 - x1 + TILE_SIZE;
_thd.new_size.y = y2 - y1 + TILE_SIZE;
}
}
break;
}
/* HT_RAIL */
if (_thd.place_mode & HT_RAIL) {
/* Draw one highlighted tile in any direction */
new_drawstyle = GetAutorailHT(pt.x, pt.y);
break;
}
/* HT_LINE */
switch (_thd.place_mode & HT_DIR_MASK) {
case HT_DIR_X: new_drawstyle = HT_LINE | HT_DIR_X; break;
case HT_DIR_Y: new_drawstyle = HT_LINE | HT_DIR_Y; break;
@@ -2523,8 +2418,6 @@ void UpdateTileSelection()
}
_thd.selstart.x = x1 & ~TILE_UNIT_MASK;
_thd.selstart.y = y1 & ~TILE_UNIT_MASK;
_thd.selend.x = x1;
_thd.selend.y = y1;
break;
default:
NOT_REACHED();
@@ -2535,13 +2428,10 @@ void UpdateTileSelection()
}
}
if (new_drawstyle & HT_LINE) CalcNewPolylineOutersize();
/* redraw selection */
if (_thd.drawstyle != new_drawstyle ||
_thd.pos.x != _thd.new_pos.x || _thd.pos.y != _thd.new_pos.y ||
_thd.size.x != _thd.new_size.x || _thd.size.y != _thd.new_size.y ||
_thd.offs.x != _thd.new_offs.x || _thd.offs.y != _thd.new_offs.y ||
_thd.outersize.x != _thd.new_outersize.x ||
_thd.outersize.y != _thd.new_outersize.y ||
_thd.diagonal != new_diagonal) {
@@ -2551,7 +2441,6 @@ void UpdateTileSelection()
_thd.drawstyle = new_drawstyle;
_thd.pos = _thd.new_pos;
_thd.size = _thd.new_size;
_thd.offs = _thd.new_offs;
_thd.outersize = _thd.new_outersize;
_thd.diagonal = new_diagonal;
_thd.dirty = 0xff;
@@ -2601,11 +2490,6 @@ void VpStartPlaceSizing(TileIndex tile, ViewportPlaceMethod method, ViewportDrag
} else if (_thd.place_mode & (HT_RAIL | HT_LINE)) {
_thd.place_mode = HT_SPECIAL | others;
_thd.next_drawstyle = _thd.drawstyle | others;
_current_snap_lock.x = -1;
if ((_thd.place_mode & HT_POLY) != 0 && GetRailSnapMode() == RSM_NO_SNAP) {
SetRailSnapMode(RSM_SNAP_TO_TILE);
SetRailSnapTile(tile);
}
} else {
_thd.place_mode = HT_SPECIAL | others;
_thd.next_drawstyle = HT_POINT | others;
@@ -2797,31 +2681,7 @@ static int CalcHeightdiff(HighLightStyle style, uint distance, TileIndex start_t
return (int)(h1 - h0) * TILE_HEIGHT_STEP;
}
static void ShowLengthMeasurement(HighLightStyle style, TileIndex start_tile, TileIndex end_tile, TooltipCloseCondition close_cond = TCC_LEFT_CLICK, bool show_single_tile_length = false)
{
static const StringID measure_strings_length[] = {STR_NULL, STR_MEASURE_LENGTH, STR_MEASURE_LENGTH_HEIGHTDIFF};
if (_settings_client.gui.measure_tooltip) {
uint distance = DistanceManhattan(start_tile, end_tile) + 1;
byte index = 0;
uint64 params[2];
if (show_single_tile_length || distance != 1) {
int heightdiff = CalcHeightdiff(style, distance, start_tile, end_tile);
/* If we are showing a tooltip for horizontal or vertical drags,
* 2 tiles have a length of 1. To bias towards the ceiling we add
* one before division. It feels more natural to count 3 lengths as 2 */
if ((style & HT_DIR_MASK) != HT_DIR_X && (style & HT_DIR_MASK) != HT_DIR_Y) {
distance = CeilDiv(distance, 2);
}
params[index++] = distance;
if (heightdiff != 0) params[index++] = heightdiff;
}
ShowMeasurementTooltips(measure_strings_length[index], index, params, close_cond);
}
}
static const StringID measure_strings_length[] = {STR_NULL, STR_MEASURE_LENGTH, STR_MEASURE_LENGTH_HEIGHTDIFF};
/**
* Check for underflowing the map.
@@ -2852,170 +2712,6 @@ static void CheckOverflow(int &test, int &other, int max, int mult)
test = max;
}
static const uint X_DIRS = (1 << DIR_NE) | (1 << DIR_SW);
static const uint Y_DIRS = (1 << DIR_SE) | (1 << DIR_NW);
static const uint HORZ_DIRS = (1 << DIR_W) | (1 << DIR_E);
static const uint VERT_DIRS = (1 << DIR_N) | (1 << DIR_S);
Trackdir PointDirToTrackdir(const Point &pt, Direction dir)
{
Trackdir ret;
if (IsDiagonalDirection(dir)) {
ret = DiagDirToDiagTrackdir(DirToDiagDir(dir));
} else {
int x = pt.x & TILE_UNIT_MASK;
int y = pt.y & TILE_UNIT_MASK;
int ns = x + y;
int we = y - x;
if (HasBit(HORZ_DIRS, dir)) {
ret = TrackDirectionToTrackdir(ns < (int)TILE_SIZE ? TRACK_UPPER : TRACK_LOWER, dir);
} else {
ret = TrackDirectionToTrackdir(we < 0 ? TRACK_LEFT : TRACK_RIGHT, dir);
}
}
return ret;
}
static bool FindPolyline(const Point &pt, const LineSnapPoint &start, Polyline *ret)
{
/* relative coordinats of the mouse point (offset against the snap point) */
int x = pt.x - start.x;
int y = pt.y - start.y;
int we = y - x;
int ns = x + y;
/* in-tile alignment of the snap point (there are two variants: [0, 8] or [8, 0]) */
uint align_x = start.x & TILE_UNIT_MASK;
uint align_y = start.y & TILE_UNIT_MASK;
assert((align_x == TILE_SIZE / 2 && align_y == 0 && !(start.dirs & X_DIRS)) || (align_x == 0 && align_y == TILE_SIZE / 2 && !(start.dirs & Y_DIRS)));
/* absolute distance between points (in tiles) */
uint d_x = abs(RoundDivSU(x < 0 ? x - align_y : x + align_y, TILE_SIZE));
uint d_y = abs(RoundDivSU(y < 0 ? y - align_x : y + align_x, TILE_SIZE));
uint d_ns = abs(RoundDivSU(ns, TILE_SIZE));
uint d_we = abs(RoundDivSU(we, TILE_SIZE));
/* Find on which quadrant is the mouse point (reltively to the snap point).
* Numeration (clockwise like in Direction):
* ortho diag
* \ 2 / 2 | 3
* \ / --+---> [we]
* 1 X 3 1 | 0
* / \ v
* [x] 0 [y] [ns] */
uint ortho_quadrant = 2 * (x < 0) + ((x < 0) != (y < 0)); // implicit cast: false/true --> 0/1
uint diag_quadrant = 2 * (ns < 0) + ((ns < 0) != (we < 0));
/* direction from the snap point to the mouse point */
Direction ortho_line_dir = ChangeDir(DIR_S, (DirDiff)(2 * ortho_quadrant)); // DIR_S is the middle of the ortho quadrant no. 0
Direction diag_line_dir = ChangeDir(DIR_SE, (DirDiff)(2 * diag_quadrant)); // DIR_SE is the middle of the diag quadrant no. 0
if (!HasBit(start.dirs, ortho_line_dir) && !HasBit(start.dirs, diag_line_dir)) return false;
/* length of booth segments of auto line (choosing orthogonal direction first) */
uint ortho_len = 0, ortho_len2 = 0;
if (HasBit(start.dirs, ortho_line_dir)) {
bool is_len_even = (align_x != 0) ? d_x >= d_y : d_x <= d_y;
ortho_len = 2 * min(d_x, d_y) - (int)is_len_even;
assert((int)ortho_len >= 0);
if (d_ns == 0 || d_we == 0) { // just single segment?
ortho_len++;
} else {
ortho_len2 = abs((int)d_x - (int)d_y) + (int)is_len_even;
}
}
/* length of booth segments of auto line (choosing diagonal direction first) */
uint diag_len = 0, diag_len2 = 0;
if (HasBit(start.dirs, diag_line_dir)) {
if (d_x == 0 || d_y == 0) { // just single segment?
diag_len = d_x + d_y;
} else {
diag_len = min(d_ns, d_we);
diag_len2 = d_x + d_y - diag_len;
}
}
/* choose the best variant */
if (ortho_len != 0 && diag_len != 0) {
/* in the first place, choose this line whose first segment ends up closer
* to the mouse point (thus the second segment is shorter) */
int cmp = ortho_len2 - diag_len2;
/* if equeal, choose the shorter line */
if (cmp == 0) cmp = ortho_len - diag_len;
/* finally look at small "units" and choose the line which is closer to the mouse point */
if (cmp == 0) cmp = min(abs(we), abs(ns)) - min(abs(x), abs(y));
/* based on comparison, disable one of variants */
if (cmp > 0) {
ortho_len = 0;
} else {
diag_len = 0;
}
}
/* store results */
if (ortho_len != 0) {
ret->first_dir = ortho_line_dir;
ret->first_len = ortho_len;
ret->second_dir = (ortho_len2 != 0) ? diag_line_dir : INVALID_DIR;
ret->second_len = ortho_len2;
} else if (diag_len != 0) {
ret->first_dir = diag_line_dir;
ret->first_len = diag_len;
ret->second_dir = (diag_len2 != 0) ? ortho_line_dir : INVALID_DIR;
ret->second_len = diag_len2;
} else {
return false;
}
ret->start = start;
return true;
}
/**
* Calculate squared euclidean distance between two points.
* @param a the first point
* @param b the second point
* @return |b - a| ^ 2
*/
static inline uint SqrDist(const Point &a, const Point &b)
{
return (b.x - a.x) * (b.x - a.x) + (b.y - a.y) * (b.y - a.y);
}
static LineSnapPoint *FindBestPolyline(const Point &pt, LineSnapPoint *snap_points, uint num_points, Polyline *ret)
{
/* Find the best polyline (a pair of two lines - the white one and the blue
* one) led from any of saved snap points to the mouse cursor. */
LineSnapPoint *best_snap_point = NULL; // the best polyline we found so far is led from this snap point
for (int i = 0; i < (int)num_points; i++) {
/* try to fit a polyline */
Polyline polyline;
if (!FindPolyline(pt, snap_points[i], &polyline)) continue; // skip non-matching snap points
/* check whether we've found a better polyline */
if (best_snap_point != NULL) {
/* firstly choose shorter polyline (the one with smaller amount of
* track pieces composing booth the white and the blue line) */
uint cur_len = polyline.first_len + polyline.second_len;
uint best_len = ret->first_len + ret->second_len;
if (cur_len > best_len) continue;
/* secondly choose that polyline which has longer first (white) line */
if (cur_len == best_len && polyline.first_len < ret->first_len) continue;
/* finally check euclidean distance to snap points and choose the
* one which is closer */
if (cur_len == best_len && polyline.first_len == ret->first_len && SqrDist(pt, snap_points[i]) >= SqrDist(pt, *best_snap_point)) continue;
}
/* save the found polyline */
*ret = polyline;
best_snap_point = &snap_points[i];
}
return best_snap_point;
}
/** while dragging */
static void CalcRaildirsDrawstyle(int x, int y, int method)
{
@@ -3202,83 +2898,32 @@ static void CalcRaildirsDrawstyle(int x, int y, int method)
}
}
if (_settings_client.gui.measure_tooltip) {
TileIndex t0 = TileVirtXY(_thd.selstart.x, _thd.selstart.y);
TileIndex t1 = TileVirtXY(x, y);
uint distance = DistanceManhattan(t0, t1) + 1;
byte index = 0;
uint64 params[2];
if (distance != 1) {
int heightdiff = CalcHeightdiff(b, distance, t0, t1);
/* If we are showing a tooltip for horizontal or vertical drags,
* 2 tiles have a length of 1. To bias towards the ceiling we add
* one before division. It feels more natural to count 3 lengths as 2 */
if ((b & HT_DIR_MASK) != HT_DIR_X && (b & HT_DIR_MASK) != HT_DIR_Y) {
distance = CeilDiv(distance, 2);
}
params[index++] = distance;
if (heightdiff != 0) params[index++] = heightdiff;
}
ShowMeasurementTooltips(measure_strings_length[index], index, params);
}
_thd.selend.x = x;
_thd.selend.y = y;
_thd.dir2 = HT_DIR_END;
_thd.next_drawstyle = b;
ShowLengthMeasurement(b, TileVirtXY(_thd.selstart.x, _thd.selstart.y), TileVirtXY(_thd.selend.x, _thd.selend.y));
}
static HighLightStyle CalcPolyrailDrawstyle(Point pt, bool dragging)
{
RailSnapMode snap_mode = GetRailSnapMode();
/* are we only within one tile? */
if (snap_mode == RSM_SNAP_TO_TILE && GetRailSnapTile() == TileVirtXY(pt.x, pt.y)) {
_thd.selend.x = pt.x;
_thd.selend.y = pt.y;
return GetAutorailHT(pt.x, pt.y);
}
/* find the best track */
Polyline line;
bool lock_snapping = dragging && snap_mode == RSM_SNAP_TO_RAIL;
if (!lock_snapping) _current_snap_lock.x = -1;
const LineSnapPoint *snap_point;
if (_current_snap_lock.x != -1) {
snap_point = FindBestPolyline(pt, &_current_snap_lock, 1, &line);
} else if (snap_mode == RSM_SNAP_TO_TILE) {
snap_point = FindBestPolyline(pt, _tile_snap_points.Begin(), _tile_snap_points.Length(), &line);
} else {
assert(snap_mode == RSM_SNAP_TO_RAIL);
snap_point = FindBestPolyline(pt, _rail_snap_points.Begin(), _rail_snap_points.Length(), &line);
}
if (snap_point == NULL) return HT_NONE; // no match
if (lock_snapping && _current_snap_lock.x == -1) {
/* lock down the snap point */
_current_snap_lock = *snap_point;
_current_snap_lock.dirs &= (1 << line.first_dir) | (1 << ReverseDir(line.first_dir));
}
TileIndexDiffC first_dir = TileIndexDiffCByDir(line.first_dir);
_thd.selstart.x = line.start.x;
_thd.selstart.y = line.start.y;
_thd.selend.x = _thd.selstart.x + line.first_len * first_dir.x * (IsDiagonalDirection(line.first_dir) ? TILE_SIZE : TILE_SIZE / 2);
_thd.selend.y = _thd.selstart.y + line.first_len * first_dir.y * (IsDiagonalDirection(line.first_dir) ? TILE_SIZE : TILE_SIZE / 2);
_thd.selstart2.x = _thd.selend.x;
_thd.selstart2.y = _thd.selend.y;
_thd.selstart.x += first_dir.x;
_thd.selstart.y += first_dir.y;
_thd.selend.x -= first_dir.x;
_thd.selend.y -= first_dir.y;
Trackdir seldir = PointDirToTrackdir(_thd.selstart, line.first_dir);
_thd.selstart.x &= ~TILE_UNIT_MASK;
_thd.selstart.y &= ~TILE_UNIT_MASK;
if (line.second_len != 0) {
TileIndexDiffC second_dir = TileIndexDiffCByDir(line.second_dir);
_thd.selend2.x = _thd.selstart2.x + line.second_len * second_dir.x * (IsDiagonalDirection(line.second_dir) ? TILE_SIZE : TILE_SIZE / 2);
_thd.selend2.y = _thd.selstart2.y + line.second_len * second_dir.y * (IsDiagonalDirection(line.second_dir) ? TILE_SIZE : TILE_SIZE / 2);
_thd.selstart2.x += second_dir.x;
_thd.selstart2.y += second_dir.y;
_thd.selend2.x -= second_dir.x;
_thd.selend2.y -= second_dir.y;
Trackdir seldir2 = PointDirToTrackdir(_thd.selstart2, line.second_dir);
_thd.selstart2.x &= ~TILE_UNIT_MASK;
_thd.selstart2.y &= ~TILE_UNIT_MASK;
_thd.dir2 = (HighLightStyle)TrackdirToTrack(seldir2);
} else {
_thd.dir2 = HT_DIR_END;
}
HighLightStyle ret = HT_LINE | (HighLightStyle)TrackdirToTrack(seldir);
ShowLengthMeasurement(ret, TileVirtXY(_thd.selstart.x, _thd.selstart.y), TileVirtXY(_thd.selend.x, _thd.selend.y), TCC_HOVER, true);
return ret;
}
/**
@@ -3298,12 +2943,6 @@ void VpSelectTilesWithMethod(int x, int y, ViewportPlaceMethod method)
return;
}
if ((_thd.place_mode & HT_POLY) && GetRailSnapMode() != RSM_NO_SNAP) {
Point pt = { x, y };
_thd.next_drawstyle = CalcPolyrailDrawstyle(pt, true);
return;
}
/* Special handling of drag in any (8-way) direction */
if (method & (VPM_RAILDIRS | VPM_SIGNALDIRS)) {
_thd.selend.x = x;
@@ -3356,12 +2995,27 @@ calc_heightdiff_single_direction:;
x = sx + Clamp(x - sx, -limit, limit);
y = sy + Clamp(y - sy, -limit, limit);
}
/* With current code passing a HT_LINE style to calculate the height
* difference is enough. However if/when a point-tool is created
* with this method, function should be called with new_style (below)
* instead of HT_LINE | style case HT_POINT is handled specially
* new_style := (_thd.next_drawstyle & HT_RECT) ? HT_LINE | style : _thd.next_drawstyle; */
ShowLengthMeasurement(HT_LINE | style, TileVirtXY(sx, sy), TileVirtXY(x, y));
if (_settings_client.gui.measure_tooltip) {
TileIndex t0 = TileVirtXY(sx, sy);
TileIndex t1 = TileVirtXY(x, y);
uint distance = DistanceManhattan(t0, t1) + 1;
byte index = 0;
uint64 params[2];
if (distance != 1) {
/* With current code passing a HT_LINE style to calculate the height
* difference is enough. However if/when a point-tool is created
* with this method, function should be called with new_style (below)
* instead of HT_LINE | style case HT_POINT is handled specially
* new_style := (_thd.next_drawstyle & HT_RECT) ? HT_LINE | style : _thd.next_drawstyle; */
int heightdiff = CalcHeightdiff(HT_LINE | style, 0, t0, t1);
params[index++] = distance;
if (heightdiff != 0) params[index++] = heightdiff;
}
ShowMeasurementTooltips(measure_strings_length[index], index, params);
}
break;
case VPM_X_AND_Y_LIMITED: // Drag an X by Y constrained rect area.
@@ -3440,7 +3094,6 @@ calc_heightdiff_single_direction:;
_thd.selend.x = x;
_thd.selend.y = y;
_thd.dir2 = HT_DIR_END;
}
/**
@@ -3458,10 +3111,11 @@ EventState VpHandlePlaceSizingDrag()
return ES_HANDLED;
}
/* While dragging execute the drag procedure of the corresponding window (mostly VpSelectTilesWithMethod() ).
* Do it even if the button is no longer pressed to make sure that OnPlaceDrag was called at least once. */
w->OnPlaceDrag(_thd.select_method, _thd.select_proc, GetTileBelowCursor());
if (_left_button_down) return ES_HANDLED;
/* while dragging execute the drag procedure of the corresponding window (mostly VpSelectTilesWithMethod() ) */
if (_left_button_down) {
w->OnPlaceDrag(_thd.select_method, _thd.select_proc, GetTileBelowCursor());
return ES_HANDLED;
}
/* mouse button released..
* keep the selected tool, but reset it to the original mode. */
@@ -3472,18 +3126,14 @@ EventState VpHandlePlaceSizingDrag()
} else if (_thd.select_method & VPM_SIGNALDIRS) {
_thd.place_mode = HT_RECT | others;
} else if (_thd.select_method & VPM_RAILDIRS) {
_thd.place_mode = (_thd.select_method & ~VPM_RAILDIRS ? _thd.next_drawstyle : HT_RAIL) | others;
_thd.place_mode = (_thd.select_method & ~VPM_RAILDIRS) ? _thd.next_drawstyle : (HT_RAIL | others);
} else {
_thd.place_mode = HT_POINT | others;
}
SetTileSelectSize(1, 1);
if (_thd.place_mode & HT_POLY) {
if (GetRailSnapMode() == RSM_SNAP_TO_TILE) SetRailSnapMode(RSM_NO_SNAP);
if (_thd.drawstyle == HT_NONE) return ES_HANDLED;
}
w->OnPlaceMouseUp(_thd.select_method, _thd.select_proc, _thd.selend, TileVirtXY(_thd.selstart.x, _thd.selstart.y), TileVirtXY(_thd.selend.x, _thd.selend.y));
return ES_HANDLED;
}
@@ -3530,10 +3180,6 @@ void SetObjectToPlace(CursorID icon, PaletteID pal, HighLightStyle mode, WindowC
VpStartPreSizing();
}
if (mode & HT_POLY) {
SetRailSnapMode((mode & HT_NEW_POLY) == HT_NEW_POLY ? RSM_NO_SNAP : RSM_SNAP_TO_RAIL);
}
if ((icon & ANIMCURSOR_FLAG) != 0) {
SetAnimatedMouseCursor(_animcursors[icon & ~ANIMCURSOR_FLAG]);
} else {
@@ -3584,116 +3230,3 @@ void InitializeSpriteSorter()
}
assert(_vp_sprite_sorter != NULL);
}
static LineSnapPoint LineSnapPointAtRailTrackEndpoint(TileIndex tile, DiagDirection exit_dir, bool bidirectional)
{
LineSnapPoint ret;
ret.x = (TILE_SIZE / 2) * (uint)(2 * TileX(tile) + TileIndexDiffCByDiagDir(exit_dir).x + 1);
ret.y = (TILE_SIZE / 2) * (uint)(2 * TileY(tile) + TileIndexDiffCByDiagDir(exit_dir).y + 1);
ret.dirs = 0;
SetBit(ret.dirs, DiagDirToDir(exit_dir));
SetBit(ret.dirs, ChangeDir(DiagDirToDir(exit_dir), DIRDIFF_45LEFT));
SetBit(ret.dirs, ChangeDir(DiagDirToDir(exit_dir), DIRDIFF_45RIGHT));
if (bidirectional) ret.dirs |= ROR<uint8>(ret.dirs, DIRDIFF_REVERSE);
return ret;
}
/**
* Store the position of lastly built rail track; for highlighting purposes.
*
* In "polyline" highlighting mode, the stored end point will be used as a snapping point for new
* tracks allowing to place multi-segment polylines.
*
* @param start_tile tile where the track starts
* @param end_tile tile where the track ends
* @param start_track track piece on the start_tile
* @param bidirectional_exit whether to allow to highlight next track in any direction; otherwise new track will have to fallow the stored one (usefull when placing tunnels and bridges)
*/
void StoreRailPlacementEndpoints(TileIndex start_tile, TileIndex end_tile, Track start_track, bool bidirectional_exit)
{
if (start_tile != INVALID_TILE && end_tile != INVALID_TILE) {
/* calculate trackdirs at booth ends of the track */
Trackdir exit_trackdir_at_start = TrackToTrackdir(start_track);
Trackdir exit_trackdir_at_end = ReverseTrackdir(TrackToTrackdir(start_track));
if (start_tile != end_tile) { // multi-tile case
/* determine proper direction (pointing outside of the track) */
uint distance = DistanceManhattan(start_tile, end_tile);
if (distance > DistanceManhattan(TileAddByDiagDir(start_tile, TrackdirToExitdir(exit_trackdir_at_start)), end_tile)) {
Swap(exit_trackdir_at_start, exit_trackdir_at_end);
}
/* determine proper track on the end tile - switch between upper/lower or left/right based on the length */
if (distance % 2 != 0) exit_trackdir_at_end = NextTrackdir(exit_trackdir_at_end);
}
LineSnapPoint snap_start = LineSnapPointAtRailTrackEndpoint(start_tile, TrackdirToExitdir(exit_trackdir_at_start), bidirectional_exit);
LineSnapPoint snap_end = LineSnapPointAtRailTrackEndpoint(end_tile, TrackdirToExitdir(exit_trackdir_at_end), bidirectional_exit);
/* Find if we already had these coordinates before. */
LineSnapPoint *snap;
bool had_start = false;
bool had_end = false;
for (snap = _rail_snap_points.Begin(); snap != _rail_snap_points.End(); snap++) {
had_start |= (snap->x == snap_start.x && snap->y == snap_start.y);
had_end |= (snap->x == snap_end.x && snap->y == snap_end.y);
}
/* Create new snap point set. */
if (had_start && had_end) {
/* just stop snaping, don't forget snap points */
SetRailSnapMode(RSM_NO_SNAP);
} else {
/* include only new points */
_rail_snap_points.Clear();
if (!had_start) *_rail_snap_points.Append() = snap_start;
if (!had_end) *_rail_snap_points.Append() = snap_end;
SetRailSnapMode(RSM_SNAP_TO_RAIL);
}
}
}
bool CurrentlySnappingRailPlacement()
{
return (_thd.place_mode & HT_POLY) && GetRailSnapMode() == RSM_SNAP_TO_RAIL;
}
static RailSnapMode GetRailSnapMode()
{
if (_rail_snap_mode == RSM_SNAP_TO_TILE && _tile_snap_points.Length() == 0) return RSM_NO_SNAP;
if (_rail_snap_mode == RSM_SNAP_TO_RAIL && _rail_snap_points.Length() == 0) return RSM_NO_SNAP;
return _rail_snap_mode;
}
static void SetRailSnapMode(RailSnapMode mode)
{
_rail_snap_mode = mode;
if ((_thd.place_mode & HT_POLY) && (GetRailSnapMode() == RSM_NO_SNAP)) {
SetTileSelectSize(1, 1);
}
}
static TileIndex GetRailSnapTile()
{
if (_tile_snap_points.Length() == 0) return INVALID_TILE;
return TileVirtXY(_tile_snap_points[DIAGDIR_NE].x, _tile_snap_points[DIAGDIR_NE].y);
}
static void SetRailSnapTile(TileIndex tile)
{
_tile_snap_points.Clear();
if (tile == INVALID_TILE) return;
for (DiagDirection dir = DIAGDIR_BEGIN; dir < DIAGDIR_END; dir++) {
LineSnapPoint *point = _tile_snap_points.Append();
*point = LineSnapPointAtRailTrackEndpoint(tile, dir, false);
point->dirs = ROR<uint8>(point->dirs, DIRDIFF_REVERSE);
}
}
void ResetRailPlacementSnapping()
{
_rail_snap_mode = RSM_NO_SNAP;
_tile_snap_points.Clear();
_rail_snap_points.Clear();
_current_snap_lock.x = -1;
}

View File

@@ -59,7 +59,7 @@ void ViewportAddString(const DrawPixelInfo *dpi, ZoomLevel small_from, const Vie
void StartSpriteCombine();
void EndSpriteCombine();
bool HandleViewportClicked(const ViewPort *vp, int x, int y, bool double_click);
bool HandleViewportClicked(const ViewPort *vp, int x, int y);
void SetRedErrorSquare(TileIndex tile);
void SetTileSelectSize(int w, int h);
void SetTileSelectBigSize(int ox, int oy, int sx, int sy);

View File

@@ -1,4 +1,4 @@
/* $Id: newgrf_debug_widget.h 25946 2013-11-07 18:17:21Z frosch $ */
/* $Id: newgrf_debug_widget.h 27174 2015-03-01 08:17:14Z alberth $ */
/*
* This file is part of OpenTTD.
@@ -25,19 +25,21 @@ enum NewGRFInspectWidgets {
/** Widgets of the #SpriteAlignerWindow class. */
enum SpriteAlignerWidgets {
WID_SA_CAPTION, ///< Caption of the window.
WID_SA_PREVIOUS, ///< Skip to the previous sprite.
WID_SA_GOTO, ///< Go to a given sprite.
WID_SA_NEXT, ///< Skip to the next sprite.
WID_SA_UP, ///< Move the sprite up.
WID_SA_LEFT, ///< Move the sprite to the left.
WID_SA_RIGHT, ///< Move the sprite to the right.
WID_SA_DOWN, ///< Move the sprite down.
WID_SA_SPRITE, ///< The actual sprite.
WID_SA_OFFSETS, ///< The sprite offsets.
WID_SA_PICKER, ///< Sprite picker.
WID_SA_LIST, ///< Queried sprite list.
WID_SA_SCROLLBAR, ///< Scrollbar for sprite list.
WID_SA_CAPTION, ///< Caption of the window.
WID_SA_PREVIOUS, ///< Skip to the previous sprite.
WID_SA_GOTO, ///< Go to a given sprite.
WID_SA_NEXT, ///< Skip to the next sprite.
WID_SA_UP, ///< Move the sprite up.
WID_SA_LEFT, ///< Move the sprite to the left.
WID_SA_RIGHT, ///< Move the sprite to the right.
WID_SA_DOWN, ///< Move the sprite down.
WID_SA_SPRITE, ///< The actual sprite.
WID_SA_OFFSETS_ABS, ///< The sprite offsets (absolute).
WID_SA_OFFSETS_REL, ///< The sprite offsets (relative).
WID_SA_PICKER, ///< Sprite picker.
WID_SA_LIST, ///< Queried sprite list.
WID_SA_SCROLLBAR, ///< Scrollbar for sprite list.
WID_SA_RESET_REL, ///< Reset relative sprite offset
};
#endif /* WIDGETS_NEWGRF_DEBUG_WIDGET_H */

View File

@@ -21,7 +21,6 @@ enum RailToolbarWidgets {
WID_RAT_BUILD_EW, ///< Build rail along the game view X axis.
WID_RAT_BUILD_Y, ///< Build rail along the game grid Y axis.
WID_RAT_AUTORAIL, ///< Autorail tool.
WID_RAT_POLYRAIL, ///< Polyline rail tool.
WID_RAT_DEMOLISH, ///< Destroy something with dynamite!
WID_RAT_BUILD_DEPOT, ///< Build a depot.
WID_RAT_BUILD_WAYPOINT, ///< Build a waypoint.

View File

@@ -1,4 +1,4 @@
/* $Id: window.cpp 27147 2015-02-13 21:25:48Z frosch $ */
/* $Id: window.cpp 27185 2015-03-13 20:54:35Z rubidium $ */
/*
* This file is part of OpenTTD.
@@ -1079,7 +1079,16 @@ Window::~Window()
free(this->nested_array); // Contents is released through deletion of #nested_root.
delete this->nested_root;
this->window_class = WC_INVALID;
/*
* Make fairly sure that this is written, and not "optimized" away.
* The delete operator is overwritten to not delete it; the deletion
* happens at a later moment in time after the window has been
* removed from the list of windows to prevent issues with items
* being removed during the iteration as not one but more windows
* may be removed by a single call to ~Window by means of the
* DeleteChildWindows function.
*/
const_cast<volatile WindowClass &>(this->window_class) = WC_INVALID;
}
/**
@@ -2816,7 +2825,7 @@ static void MouseLoop(MouseClick click, int mousewheel)
case MC_DOUBLE_LEFT:
case MC_LEFT:
DEBUG(misc, 2, "Cursor: 0x%X (%d)", _cursor.sprite, _cursor.sprite);
if (!HandleViewportClicked(vp, x, y, click == MC_DOUBLE_LEFT) &&
if (!HandleViewportClicked(vp, x, y) &&
!(w->flags & WF_DISABLE_VP_SCROLL) &&
_settings_client.gui.left_mouse_btn_scrolling) {
_scrolling_viewport = true;