Merge branch 'group_collapse' into jgrpp

pull/6/merge
Jonathan G Rennison 8 years ago
commit cbf1ece361

@ -12,7 +12,7 @@ description.af_ZA = 'n Musiek stel sonder enige musiek.
description.ar_EG = مجموعة موسيقى بدون موسيقى
description.be_BY = "Пусты" набор музычнага афармлення, які не зьмяшчае ніякай музыкі.
description.bg_BG = Празен музикален пакет.
description.ca_ES = Un joc de música sense cap música.
description.ca_ES = Una llista de música sense cap peça.
description.cs_CZ = Prázná hudební sada.
description.cy_GB = Pecyn cerddoriaeth heb unrhyw gerddoriaeth ynddo.
description.da_DK = En musikpakke uden musik.
@ -27,7 +27,7 @@ description.fr_FR = Un pack de musiques sans musiques.
description.ga_IE = Pacáiste ceoil gan aon cheol iarbhír ann.
description.gd_GB = Pacaid ciùil anns nach eil fonn sam bith.
description.gl_ES = Un conxunto de músicas sen ningunha música.
description.hr_HR = Muzički paket bez ikakve muzike.
description.hr_HR = Glazbeni paket bez ikakve glazbe.
description.hu_HU = Zenei alapcsomag zene nélkül.
description.id_ID = Paket musik tanpa musik sungguhan.
description.is_IS = Tónlistarpakki sem er í raun án tónlistar.

@ -12,7 +12,7 @@ description.af_ZA = 'n Klank stel sonder enige klanke.
description.ar_EG = مجموعة صوت بدوت اصوات مضافة
description.be_BY = "Пусты" набор гукавога афармленьня, які не зьмяшчае ніякіх гукаў.
description.bg_BG = Празен звуков пакет.
description.ca_ES = Un joc de sons sense cap so.
description.ca_ES = Una llista de sons buida.
description.cs_CZ = Prázdná sada zvuků.
description.cy_GB = Pecyn sain heb unrhyw effeithiau sain ynddo.
description.da_DK = En lydpakke uden lyde.

@ -13,7 +13,7 @@ description.af_ZA = Oorspronklike Transport Tycoon Deluxe DOS uitgawe grafieke.
description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الرسومية نسخة الدوس
description.be_BY = Арыґінальная ґрафіка з Transport Tycoon Deluxe для DOS.
description.bg_BG = Оригинални графики на Transport Tycoon Deluxe за DOS.
description.ca_ES = Gràfics originals de Transport Tycoon Deluxe per a DOS.
description.ca_ES = Gràfics originals del Transport Tycoon Deluxe pel DOS.
description.cs_CZ = Původní sada grafik Transport Tycoon Deluxe (verze pro DOS).
description.cy_GB = Graffeg gwreiddiol fersiwn DOS o Transport Tycoon Deluxe.
description.da_DK = Originalgrafik fra Transport Tycoon Deluxe DOS-version.

@ -12,7 +12,7 @@ description.af_ZA = Oorspronklike Transport Tycoon Deluxe DOS uitgawe klanke.
description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الصوتية نسخة الدوس
description.be_BY = Арыґінальны набор гукавога афармленьня з гульні Transport Tycoon Deluxe для DOS.
description.bg_BG = Оригинални звуци на Transport Tycoon Deluxe за DOS.
description.ca_ES = Sons originals de Transport Tycoon Deluxe per a DOS.
description.ca_ES = Sons originals del Transport Tycoon Deluxe pel DOS.
description.cs_CZ = Původní sada zvuků Transport Tycoon Deluxe (verze pro DOS).
description.cy_GB = Effeithiau sain gwreiddiol fersiwn DOS o Transport Tycoon Deluxe.
description.da_DK = Originallyd fra Transport Tycoon Deluxe DOS-version.

@ -13,7 +13,7 @@ description.af_ZA = Oorspronklike Transport Tycoon Deluxe DOS (German) uitgawe g
description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الالمانية نسخة الدوس
description.be_BY = Арыґінальная ґрафіка зь нямецкай версіі Transport Tycoon Deluxe для DOS.
description.bg_BG = Оригинални графики на Transport Tycoon Deluxe за DOS (немски) .
description.ca_ES = Gràfics originals de Transport Tycoon Deluxe per a DOS (Alemany).
description.ca_ES = Gràfics originals del Transport Tycoon Deluxe (alemany) pel DOS.
description.cs_CZ = Původní sada grafik Transport Tycoon Deluxe (německá verze pro DOS).
description.cy_GB = Graffeg gwreiddiol fersiwn DOS (Almaenig) o Transport Tycoon Deluxe.
description.da_DK = Originalgrafik fra Transport Tycoon Deluxe DOS (Tysk) version.

@ -13,7 +13,7 @@ description.af_ZA = Oorspronklike Transport Tycoon Deluxe Windows uitgawe grafie
description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الرسومية نسخة وندوز
description.be_BY = Арыґінальная ґрафіка з Transport Tycoon Deluxe для Windows.
description.bg_BG = Оригинални графики на Transport Tycoon Deluxe за Windows.
description.ca_ES = Gràfics originals de Transport Tycoon Deluxe per a Windows.
description.ca_ES = Gràfics originals del Transport Tycoon Deluxe pel Windows.
description.cs_CZ = Původní sada grafik Transport Tycoon Deluxe (verze pro Windows).
description.cy_GB = Graffeg gwreiddiol fersiwn Windows o Transport Tycoon Deluxe.
description.da_DK = Originalgrafik fra Transport Tycoon Deluxe Windows-version.

@ -12,7 +12,7 @@ description.af_ZA = Oorspronklike Transport Tycoon Deluxe Windows uitgawe musiek
description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الموسيقية نسخة وندوز
description.be_BY = Арыґінальны набор музычнага афармленьня з гульні Transport Tycoon Deluxe для Windows.
description.bg_BG = Оригинална музика на Transport Tycoon Deluxe за Windows.
description.ca_ES = Música Original de Transport Tycoon Deluxe per a Windows.
description.ca_ES = Música original del Transport Tycoon Deluxe pel Windows.
description.cs_CZ = Původní hudba Transport Tycoon Deluxe (verze pro Windows).
description.cy_GB = Cerddoriaeth gwreiddiol fersion Windows o Transport Tycoon Deluxe.
description.da_DK = Originalmusik fra Transport Tycoon Deluxe Windows-version.
@ -27,7 +27,7 @@ description.fr_FR = Musiques originales de Transport Tycoon Deluxe (version Wind
description.ga_IE = Ceol bunaidh Transport Tycoon Deluxe, eagrán Windows.
description.gd_GB = Ceòl aig an deasachadh Windows tùsail aig Transport Tycoon Deluxe.
description.gl_ES = Música da edición orixinal de Transport Tycoon Deluxe para Windows.
description.hr_HR = Originalna muzika za Transport Tycoon Deluxe Windows izdanje.
description.hr_HR = Originalna glazba za Transport Tycoon Deluxe Windows izdanje.
description.hu_HU = Az eredeti Transport Tycoon Deluxe Windows verziójának zenéje.
description.id_ID = Musik pengiring orisinil Transport Tycoon Deluxe versi Windows.
description.is_IS = Upprunalega tónlistin úr Transport Tycoon Deluxe Windows útgáfunni.

@ -12,7 +12,7 @@ description.af_ZA = Oorspronklike Transport Tycoon Deluxe Windows uitgawe klanke
description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الصوتية نسخة وندوز
description.be_BY = Арыґінальны набор гукавога афармленьня з гульні Transport Tycoon Deluxe для Windows.
description.bg_BG = Оригинални звуци на Transport Tycoon Deluxe за Windows.
description.ca_ES = Sons originals de Transport Tycoon Deluxe per a Windows.
description.ca_ES = Sons originals del Transport Tycoon Deluxe pel Windows.
description.cs_CZ = Původní sada zvuků Transport Tycoon Deluxe (verze pro Windows).
description.cy_GB = Effeithiau sain gwreiddiol fersiwn Windows o Transport Tycoon Deluxe.
description.da_DK = Originallyd fra Transport Tycoon Deluxe Windows-version.

@ -25,8 +25,8 @@
#include "vehicle_gui_base.h"
#include "core/geometry_func.hpp"
#include "company_base.h"
#include "widgets/group_widget.h"
#include "core/smallvec_type.hpp"
#include "table/sprites.h"
@ -63,6 +63,11 @@ static const NWidgetPart _nested_group_widgets[] = {
SetDataTip(SPR_GROUP_DELETE_TRAIN, STR_GROUP_DELETE_TOOLTIP),
NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_GL_RENAME_GROUP), SetFill(0, 1),
SetDataTip(SPR_GROUP_RENAME_TRAIN, STR_GROUP_RENAME_TOOLTIP),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_GL_COLLAPSE_EXPAND_GROUP), SetFill(0, 1),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_GL_COLLAPSE_ALL_GROUPS), SetFill(0, 1),
SetDataTip(STR_GROUP_COLLAPSE_ALL, STR_GROUP_COLLAPSE_ALL),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_GL_EXPAND_ALL_GROUPS), SetFill(0, 1),
SetDataTip(STR_GROUP_EXPAND_ALL, STR_GROUP_EXPAND_ALL),
NWidget(WWT_PANEL, COLOUR_GREY), SetFill(1, 1), EndContainer(),
NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, WID_GL_REPLACE_PROTECTION), SetFill(0, 1),
SetDataTip(SPR_GROUP_REPLACE_OFF_TRAIN, STR_GROUP_REPLACE_PROTECTION_TOOLTIP),
@ -101,6 +106,7 @@ private:
/* Columns in the group list */
enum ListColumns {
VGC_NAME, ///< Group name.
VGC_COLLAPSED, ///< Collapsed icon
VGC_PROTECT, ///< Autoreplace protect icon.
VGC_AUTOREPLACE, ///< Autoreplace active icon.
VGC_PROFIT, ///< Profit icon.
@ -117,20 +123,30 @@ private:
GUIGroupList groups; ///< List of groups
uint tiny_step_height; ///< Step height for the group list
Scrollbar *group_sb;
SmallVector<GroupID, 16> collapsed_groups; ///< List of collapsed groups
SmallVector<GroupID, 16> collapsable_groups; ///< List of collapsable groups
SmallVector<int, 16> indents; ///< Indentation levels
Dimension column_size[VGC_END]; ///< Size of the columns in the group list.
void AddParents(GUIGroupList *source, GroupID parent, int indent)
/** return true if group has children */
bool AddParents(GUIGroupList *source, GroupID parent, int indent)
{
bool is_collapsed = this->collapsed_groups.Contains(parent);
bool has_children = false;
for (const Group **g = source->Begin(); g != source->End(); g++) {
if ((*g)->parent == parent) {
has_children = true;
if (is_collapsed) return has_children;
*this->groups.Append() = *g;
*this->indents.Append() = indent;
AddParents(source, (*g)->index, indent + 1);
bool child_has_children = AddParents(source, (*g)->index, indent + 1);
if (child_has_children) *this->collapsable_groups.Append() = (*g)->index;
}
}
return has_children;
}
/** Sort the groups by their name */
@ -156,6 +172,16 @@ private:
return r;
}
void ToogleGroupCollapse(GroupID group)
{
GroupID *item = this->collapsed_groups.Find(group);
if (item == this->collapsed_groups.End()) {
*(this->collapsed_groups.Append()) = group;
} else {
this->collapsed_groups.Erase(item);
}
}
/**
* (Re)Build the group list.
*
@ -167,6 +193,7 @@ private:
this->groups.Clear();
this->indents.Clear();
this->collapsable_groups.Clear();
GUIGroupList list;
@ -196,6 +223,9 @@ private:
this->column_size[VGC_NAME].width = max((170u * FONT_HEIGHT_NORMAL) / 10u, this->column_size[VGC_NAME].width);
this->tiny_step_height = this->column_size[VGC_NAME].height;
this->column_size[VGC_COLLAPSED] = GetSpriteSize(SPR_WINDOW_UNSHADE);
this->tiny_step_height = max(this->tiny_step_height, this->column_size[VGC_COLLAPSED].height);
this->column_size[VGC_PROTECT] = GetSpriteSize(SPR_GROUP_REPLACE_PROTECT);
this->tiny_step_height = max(this->tiny_step_height, this->column_size[VGC_PROTECT].height);
@ -219,6 +249,7 @@ private:
return WD_FRAMERECT_LEFT + 8 +
this->column_size[VGC_NAME].width + 8 +
this->column_size[VGC_COLLAPSED].width + 2 +
this->column_size[VGC_PROTECT].width + 2 +
this->column_size[VGC_AUTOREPLACE].width + 2 +
this->column_size[VGC_PROFIT].width + 2 +
@ -262,8 +293,12 @@ private:
int x = rtl ? right - WD_FRAMERECT_RIGHT - 8 - this->column_size[VGC_NAME].width + 1 : left + WD_FRAMERECT_LEFT + 8;
DrawString(x + indent * LEVEL_WIDTH, x + this->column_size[VGC_NAME].width - 1, y + (this->tiny_step_height - this->column_size[VGC_NAME].height) / 2, str, colour);
/* draw collapse state */
x = rtl ? x - 8 - this->column_size[VGC_COLLAPSED].width : x + 8 + this->column_size[VGC_NAME].width;
if (this->collapsed_groups.Contains(g_id)) DrawSprite(SPR_WINDOW_UNSHADE, PAL_NONE, x, y + (this->tiny_step_height - this->column_size[VGC_COLLAPSED].height) / 2);
/* draw autoreplace protection */
x = rtl ? x - 8 - this->column_size[VGC_PROTECT].width : x + 8 + this->column_size[VGC_NAME].width;
x = rtl ? x - 2 - this->column_size[VGC_PROTECT].width : x + 2 + this->column_size[VGC_COLLAPSED].width;
if (protection) DrawSprite(SPR_GROUP_REPLACE_PROTECT, PAL_NONE, x, y + (this->tiny_step_height - this->column_size[VGC_PROTECT].height) / 2);
/* draw autoreplace status */
@ -342,6 +377,9 @@ public:
this->GetWidget<NWidgetCore>(WID_GL_CAPTION)->widget_data = STR_VEHICLE_LIST_TRAIN_CAPTION + this->vli.vtype;
this->GetWidget<NWidgetCore>(WID_GL_LIST_VEHICLE)->tool_tip = STR_VEHICLE_LIST_TRAIN_LIST_TOOLTIP + this->vli.vtype;
this->GetWidget<NWidgetCore>(WID_GL_COLLAPSE_EXPAND_GROUP)->widget_data = STR_GROUP_COLLAPSE;
this->GetWidget<NWidgetCore>(WID_GL_COLLAPSE_EXPAND_GROUP)->tool_tip = STR_GROUP_COLLAPSE_TOOLTIP;
this->GetWidget<NWidgetCore>(WID_GL_CREATE_GROUP)->widget_data += this->vli.vtype;
this->GetWidget<NWidgetCore>(WID_GL_RENAME_GROUP)->widget_data += this->vli.vtype;
this->GetWidget<NWidgetCore>(WID_GL_DELETE_GROUP)->widget_data += this->vli.vtype;
@ -522,6 +560,25 @@ public:
/* Set text of sort by dropdown */
this->GetWidget<NWidgetCore>(WID_GL_SORT_BY_DROPDOWN)->widget_data = this->vehicle_sorter_names[this->vehicles.SortType()];
bool is_non_collapsable_group = (this->vli.index == ALL_GROUP) || (this->vli.index == DEFAULT_GROUP)
|| (this->vli.index == INVALID_GROUP) || !this->collapsable_groups.Contains(this->vli.index);
this->SetWidgetDisabledState(WID_GL_COLLAPSE_EXPAND_GROUP, is_non_collapsable_group);
NWidgetCore *collapse_widget = this->GetWidget<NWidgetCore>(WID_GL_COLLAPSE_EXPAND_GROUP);
if (is_non_collapsable_group || !this->collapsed_groups.Contains(this->vli.index)) {
collapse_widget->widget_data = STR_GROUP_COLLAPSE;
collapse_widget->tool_tip = STR_GROUP_COLLAPSE_TOOLTIP;
} else {
collapse_widget->widget_data = STR_GROUP_EXPAND;
collapse_widget->tool_tip = STR_GROUP_EXPAND_TOOLTIP;
}
this->SetWidgetDisabledState(WID_GL_EXPAND_ALL_GROUPS, this->collapsed_groups.Length() == 0);
this->SetWidgetDisabledState(WID_GL_COLLAPSE_ALL_GROUPS, this->collapsable_groups.Length() == 0 || this->collapsed_groups.Length() == this->collapsable_groups.Length());
this->DrawWidgets();
}
@ -657,6 +714,11 @@ public:
this->group_sel = this->vli.index = this->groups[id_g]->index;
if (click_count % 2 == 0) {
this->ToogleGroupCollapse(this->vli.index);
OnInvalidateData();
}
SetObjectToPlaceWnd(SPR_CURSOR_MOUSE, PAL_NONE, HT_DRAG, this);
this->vehicles.ForceRebuild();
@ -696,6 +758,32 @@ public:
this->ShowRenameGroupWindow(this->vli.index, false);
break;
case WID_GL_COLLAPSE_EXPAND_GROUP: // Toggle collapse/expand
this->ToogleGroupCollapse(this->vli.index);
OnInvalidateData();
this->SetDirty();
break;
case WID_GL_COLLAPSE_ALL_GROUPS: {
this->collapsed_groups.Clear();
for (const Group **group = this->groups.Begin(); group != this->groups.End(); ++group) {
GroupID id = (*group)->index;
if (id != ALL_GROUP && id != DEFAULT_GROUP && id != INVALID_GROUP && this->collapsable_groups.Contains(id)) {
*this->collapsed_groups.Append() = id;
}
}
OnInvalidateData();
this->SetDirty();
break;
}
case WID_GL_EXPAND_ALL_GROUPS: {
this->collapsed_groups.Clear();
OnInvalidateData();
this->SetDirty();
break;
}
case WID_GL_AVAILABLE_VEHICLES:
ShowBuildVehicleWindow(INVALID_TILE, this->vli.vtype);
break;
@ -744,6 +832,8 @@ public:
if (this->group_sel != new_g && g->parent != new_g) {
DoCommandP(0, this->group_sel | (1 << 16), new_g, CMD_ALTER_GROUP | CMD_MSG(STR_ERROR_GROUP_CAN_T_SET_PARENT));
GroupID *group = this->collapsed_groups.Find(new_g);
if (group != this->collapsed_groups.End()) this->collapsed_groups.Erase(group);
}
this->group_sel = INVALID_GROUP;

@ -990,7 +990,7 @@ STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_4X_ZOOM :Quàdruple
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Conjunt de gràfics base
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Selecciona el conjunt de gràfics base a utilitzar
STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} arxiu{P "" s} absent{P "" s}/corromput{P "" s}
STR_GAME_OPTIONS_BASE_GRF_STATUS :{RED}{NUM} arxiu{P "" s} absent{P "" s} o corromput{P "" s}.
STR_GAME_OPTIONS_BASE_GRF_DESCRIPTION_TOOLTIP :{BLACK}Informació addicional sobre el conjunt de gràfics base
STR_GAME_OPTIONS_BASE_SFX :{BLACK}Conjunt de sons base
@ -1706,21 +1706,21 @@ STR_CONFIG_SETTING_QUERY_CAPTION :{WHITE}Canvia e
# Config errors
STR_CONFIG_ERROR :{WHITE}S'ha produït un error en l'arxiu de configuració...
STR_CONFIG_ERROR_ARRAY :{WHITE}... error en la sèrie '{STRING}'
STR_CONFIG_ERROR_ARRAY :{WHITE}...error en la matriu «{STRING}».
STR_CONFIG_ERROR_INVALID_VALUE :{WHITE}... valor invàlid '{STRING}' per '{STRING}'
STR_CONFIG_ERROR_TRAILING_CHARACTERS :{WHITE}... caràcters de fi al final de la configuració '{STRING}'
STR_CONFIG_ERROR_DUPLICATE_GRFID :{WHITE}... ignorant NewGRF '{STRING}': GRF ID duplicada amb '{STRING}'
STR_CONFIG_ERROR_INVALID_GRF :{WHITE}... ignorant NewGRF invàlid '{STRING}': {STRING}
STR_CONFIG_ERROR_INVALID_GRF_NOT_FOUND :no trobat
STR_CONFIG_ERROR_DUPLICATE_GRFID :{WHITE}...s'ignorarà l'arxiu NewGRF «{STRING}» perquè l'identificador del GRF és el mateix que el de «{STRING}».
STR_CONFIG_ERROR_INVALID_GRF :{WHITE}...s'ignorarà l'arxiu NewGRF invàlid «{STRING}»: {STRING}
STR_CONFIG_ERROR_INVALID_GRF_NOT_FOUND :no s'ha trobat.
STR_CONFIG_ERROR_INVALID_GRF_UNSAFE :insegur per a ús estàtic
STR_CONFIG_ERROR_INVALID_GRF_SYSTEM :sistema NewGRF
STR_CONFIG_ERROR_INVALID_GRF_INCOMPATIBLE :incompatible amb aquesta versió d'OpenTTD
STR_CONFIG_ERROR_INVALID_GRF_SYSTEM :arxiu NewGRF compatible només amb el TTDPatch.
STR_CONFIG_ERROR_INVALID_GRF_INCOMPATIBLE :no és compatible amb aquesta versió de l'OpenTTD.
STR_CONFIG_ERROR_INVALID_GRF_UNKNOWN :desconegut
STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_LEVEL :{WHITE}... el nivell de compressió '{STRING}' no és vàlid
STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_ALGORITHM :{WHITE}... el format de partida '{STRING}' no està disponible. Tornant a '{STRING}'
STR_CONFIG_ERROR_INVALID_BASE_GRAPHICS_NOT_FOUND :{WHITE}... ignorant el conjunt de gràfics base '{STRING}': no trobats
STR_CONFIG_ERROR_INVALID_BASE_SOUNDS_NOT_FOUND :{WHITE}... ignorant el conjunt de sons base '{STRING}': no trobats
STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}... ignorant el conjunt de músiques base '{STRING}': no trobats
STR_CONFIG_ERROR_INVALID_BASE_GRAPHICS_NOT_FOUND :{WHITE}...s'ignorarà el conjunt de gràfics base «{STRING}» perquè no s'ha trobat.
STR_CONFIG_ERROR_INVALID_BASE_SOUNDS_NOT_FOUND :{WHITE}...s'ignorarà el conjunt de sons base «{STRING}» perquè no s'ha trobat.
STR_CONFIG_ERROR_INVALID_BASE_MUSIC_NOT_FOUND :{WHITE}...s'ignorarà el conjunt de peces de música «{STRING}» perquè no s'ha trobat.
STR_CONFIG_ERROR_OUT_OF_MEMORY :{WHITE}Memòria exhaurida
STR_CONFIG_ERROR_SPRITECACHE_TOO_BIG :{WHITE}L'assignació de {BYTES} de la memòria cau d'sprites ha fallat. La memòria cau d'sprites s'ha reduït a {BYTES}. Això reduirà el rendiment d'OpenTTD. Per reduir els requeriments de memòria pots probar a desactivar els gràfics de 32bpp i/o els nivells amb zoom

@ -3784,6 +3784,12 @@ STR_GROUPS_CLICK_ON_GROUP_FOR_TOOLTIP :{BLACK}Groups -
STR_GROUP_CREATE_TOOLTIP :{BLACK}Click to create a group
STR_GROUP_DELETE_TOOLTIP :{BLACK}Delete the selected group
STR_GROUP_RENAME_TOOLTIP :{BLACK}Rename the selected group
STR_GROUP_COLLAPSE :{BLACK}Collapse
STR_GROUP_EXPAND :{BLACK}Expand
STR_GROUP_EXPAND_ALL :{BLACK}Expand all
STR_GROUP_COLLAPSE_ALL :{BLACK}Collapse all
STR_GROUP_COLLAPSE_TOOLTIP :{BLACK}Click to collapse the selected group
STR_GROUP_EXPAND_TOOLTIP :{BLACK}Click to expand the selected group
STR_GROUP_REPLACE_PROTECTION_TOOLTIP :{BLACK}Click to protect this group from global autoreplace
STR_QUERY_GROUP_DELETE_CAPTION :{WHITE}Delete Group

@ -1745,15 +1745,18 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_SI :SI (kN)
STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT :Μονάδες μέτρησης ύψους: {STRING}
STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_HELPTEXT :Όποτε εμφανίζεται ένα ύψος στη διεπαφή χρήστη, να εμφανίζεται στην επιλεγμένη μονάδα
STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Μετρικές (m)
STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_METRIC :Μετρικό (m)
STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m)
STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Τοπικοποίηση
STR_CONFIG_SETTING_GRAPHICS :{ORANGE}Γραφικά
STR_CONFIG_SETTING_SOUND :{ORANGE}Ήχος
STR_CONFIG_SETTING_INTERFACE :{ORANGE}Περιβάλλον Λειτουργίας
STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}Παράθυρα προβολών
STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Κατασκευή
STR_CONFIG_SETTING_ADVISORS :{ORANGE}Νέα / Σύμβουλοι
STR_CONFIG_SETTING_COMPANY :{ORANGE}Εταιρία
STR_CONFIG_SETTING_ACCOUNTING :{ORANGE}Λογιστικά
STR_CONFIG_SETTING_VEHICLES :{ORANGE}Οχήματα
STR_CONFIG_SETTING_VEHICLES_PHYSICS :{ORANGE}Φυσική
STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Δρομολογήσεις
@ -1764,6 +1767,7 @@ STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Περ
STR_CONFIG_SETTING_ENVIRONMENT_AUTHORITIES :{ORANGE}Αρχές
STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Πόλεις
STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Βιομηχανίες
STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Κατανομή φορτίων
STR_CONFIG_SETTING_AI :{ORANGE}Ανταγωνιστές
STR_CONFIG_SETTING_AI_NPC :{ORANGE}Παίκτες υπολογιστή
@ -1979,6 +1983,7 @@ STR_FACE_TIE_EARRING_TOOLTIP :{BLACK}Αλλα
# Network server list
STR_NETWORK_SERVER_LIST_CAPTION :{WHITE}Παιχνίδι πολλών παικτών
STR_NETWORK_SERVER_LIST_ADVERTISED :{BLACK}Διαφημιζόμενο
STR_NETWORK_SERVER_LIST_ADVERTISED_NO :Όχι
STR_NETWORK_SERVER_LIST_ADVERTISED_YES :Ναι
STR_NETWORK_SERVER_LIST_PLAYER_NAME :{BLACK}Όνομα παίκτη:
@ -2914,6 +2919,7 @@ STR_SAVE_PRESET_CAPTION :{WHITE}Αποθ
STR_SAVE_PRESET_TITLE :{BLACK}Δώστε ένα όνομα για το προκαθορισμένο
STR_SAVE_PRESET_CANCEL_TOOLTIP :{BLACK}Μη αλλαγή του προκαθορισμένου
STR_SAVE_PRESET_SAVE :{BLACK}Αποθήκευση
STR_SAVE_PRESET_SAVE_TOOLTIP :{BLACK}Αποθήκευση προκαθορισμένου, χρησιμοποιώντας το επιλεγμένο όνομα
# NewGRF parameters window
STR_NEWGRF_PARAMETERS_CAPTION :{WHITE}Αλλαγή παραμέτρων NewGRF
@ -3204,6 +3210,7 @@ STR_STATION_VIEW_GROUP_S_V_D :Πηγή-Μέσ
STR_STATION_VIEW_GROUP_S_D_V :Πηγή-Προορισμός-Μέσω
STR_STATION_VIEW_GROUP_V_S_D :Μέσω-Πηγή-Προορισμός
STR_STATION_VIEW_GROUP_V_D_S :Μέσω-Προορισμός-Πηγή
STR_STATION_VIEW_GROUP_D_S_V :Προορισμός-Πηγή-Μέσω
STR_STATION_VIEW_GROUP_D_V_S :Προορισμός-Μέσω-Πηγή
############ range for rating starts
@ -3964,7 +3971,8 @@ STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Ταξίδεψ
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Ταξίδι (μη δρομολογημένο) με μέγιστη ταχύτητα {2:VELOCITY}
STR_TIMETABLE_TRAVEL_FOR :Ταξίδεψε για {STRING}
STR_TIMETABLE_TRAVEL_FOR_SPEED :Ταξίδεψε για {STRING} με στο μέγιστο {VELOCITY}
STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED :Ταξίδι (for {STRING}, (μη δρομολογημένο) με μέγιστη ταχύτητα {VELOCITY}
STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED :Ταξίδι γιά {STRING}, (μη δρομολογημένο) με μέγιστη ταχύτητα {VELOCITY}
STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(ταξίδι για {STRING}, μη δρομολογημένο)
STR_TIMETABLE_STAY_FOR :και μείνε για {STRING}
STR_TIMETABLE_AND_TRAVEL_FOR :και ταξίδεψε για {STRING}
STR_TIMETABLE_DAYS :{COMMA}{NBSP}μέρ{P α ες}
@ -4093,6 +4101,7 @@ STR_AI_SETTINGS_START_DELAY :Αριθμός
STR_TEXTFILE_README_CAPTION :{WHITE}{STRING} readme του {STRING}
STR_TEXTFILE_CHANGELOG_CAPTION :{G=m}{WHITE}{STRING} ιστορικό αλλαγών του {STRING}
STR_TEXTFILE_LICENCE_CAPTION :{WHITE}{STRING} άδεια του {STRING}
STR_TEXTFILE_WRAP_TEXT_TOOLTIP :{BLACK}Αναδίπλωση του κειμένου του παραθύρου ώστε να χωρά χωρίς να απαιτέιται κύλιση
STR_TEXTFILE_VIEW_README :{BLACK}Εμφάνιση readme
STR_TEXTFILE_VIEW_CHANGELOG :{BLACK}Ιστορικό αλλαγών
STR_TEXTFILE_VIEW_LICENCE :{BLACK}Άδεια

@ -98,28 +98,28 @@ STR_CARGO_SINGULAR_FIZZY_DRINK :{G=f}탄산음
STR_QUANTITY_NOTHING :
STR_QUANTITY_PASSENGERS :승객{NBSP}{COMMA}명
STR_QUANTITY_COAL :석탄 {WEIGHT_LONG}
STR_QUANTITY_MAIL :{G=f}우편 {COMMA}{NBSP}자루
STR_QUANTITY_MAIL :우편 {COMMA}{NBSP}자루
STR_QUANTITY_OIL :석유 {VOLUME_LONG}
STR_QUANTITY_LIVESTOCK :{G=f}가축 {COMMA}{NBSP}마리
STR_QUANTITY_GOODS :{G=f}상품 {COMMA}{NBSP}상자
STR_QUANTITY_LIVESTOCK :가축 {COMMA}{NBSP}마리
STR_QUANTITY_GOODS :상품 {COMMA}{NBSP}상자
STR_QUANTITY_GRAIN :곡물 {WEIGHT_LONG}
STR_QUANTITY_WOOD :목재 {WEIGHT_LONG}
STR_QUANTITY_IRON_ORE :철광석 {WEIGHT_LONG}
STR_QUANTITY_STEEL :철 {WEIGHT_LONG}
STR_QUANTITY_VALUABLES :{G=f}귀금속 {COMMA}{NBSP}자루
STR_QUANTITY_VALUABLES :귀금속 {COMMA}{NBSP}자루
STR_QUANTITY_COPPER_ORE :구리 광석 {WEIGHT_LONG}
STR_QUANTITY_MAIZE :옥수수 {WEIGHT_LONG}
STR_QUANTITY_FRUIT :과일 {WEIGHT_LONG}
STR_QUANTITY_DIAMONDS :{G=f}다이아몬드 {COMMA}{NBSP}자루
STR_QUANTITY_DIAMONDS :다이아몬드 {COMMA}{NBSP}자루
STR_QUANTITY_FOOD :식품 {WEIGHT_LONG}
STR_QUANTITY_PAPER :종이 {WEIGHT_LONG}
STR_QUANTITY_GOLD :{G=f}금 {COMMA}{NBSP}자루
STR_QUANTITY_GOLD :금 {COMMA}{NBSP}자루
STR_QUANTITY_WATER :물 {VOLUME_LONG}
STR_QUANTITY_WHEAT :밀 {WEIGHT_LONG}
STR_QUANTITY_RUBBER :고무 {VOLUME_LONG}
STR_QUANTITY_SUGAR :설탕 {WEIGHT_LONG}
STR_QUANTITY_TOYS :{G=f}장난감 {COMMA}{NBSP}상자
STR_QUANTITY_SWEETS :{G=f}사탕 {COMMA}{NBSP}자루
STR_QUANTITY_TOYS :장난감 {COMMA}{NBSP}상자
STR_QUANTITY_SWEETS :사탕 {COMMA}{NBSP}자루
STR_QUANTITY_COLA :콜라 {VOLUME_LONG}
STR_QUANTITY_CANDYFLOSS :솜사탕 {WEIGHT_LONG}
STR_QUANTITY_BUBBLES :거품 {COMMA}개
@ -177,7 +177,7 @@ STR_CRATES :{G=f}{COMMA}{NB
STR_COLOUR_DARK_BLUE :어두운 파랑
STR_COLOUR_PALE_GREEN :연한 초록
STR_COLOUR_PINK :분홍
STR_COLOUR_YELLOW :{G=m}노랑
STR_COLOUR_YELLOW :노랑
STR_COLOUR_RED :빨강
STR_COLOUR_LIGHT_BLUE :밝은 파랑
STR_COLOUR_GREEN :녹색
@ -306,7 +306,7 @@ STR_SORT_BY_COST :가격
STR_SORT_BY_POWER :힘
STR_SORT_BY_TRACTIVE_EFFORT :견인력
STR_SORT_BY_INTRO_DATE :도입 날짜
STR_SORT_BY_RUNNING_COST :{G=f}유지비
STR_SORT_BY_RUNNING_COST :유지비
STR_SORT_BY_POWER_VS_RUNNING_COST :유지비 분의 힘
STR_SORT_BY_CARGO_CAPACITY :화물 수송량
STR_SORT_BY_RANGE :항속거리
@ -979,7 +979,7 @@ STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}OpenTTD
STR_GAME_OPTIONS_RESOLUTION :{BLACK}화면 해상도
STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}사용하실 화면 해상도를 선택하세요.
STR_GAME_OPTIONS_RESOLUTION_OTHER :{G=f}기타
STR_GAME_OPTIONS_RESOLUTION_OTHER :기타
STR_GAME_OPTIONS_GUI_ZOOM_FRAME :{BLACK}인터페이스 크기
STR_GAME_OPTIONS_GUI_ZOOM_DROPDOWN_TOOLTIP :{BLACK}인터페이스의 크기를 선택하십시오.
@ -1715,7 +1715,7 @@ STR_CONFIG_ERROR_INVALID_GRF_NOT_FOUND :찾을 수 없
STR_CONFIG_ERROR_INVALID_GRF_UNSAFE :사용하기에 불안함
STR_CONFIG_ERROR_INVALID_GRF_SYSTEM :NewGRF 시스템
STR_CONFIG_ERROR_INVALID_GRF_INCOMPATIBLE :현재 OpenTTD 버전과 맞지 않음
STR_CONFIG_ERROR_INVALID_GRF_UNKNOWN :{G=m}알 수 없음
STR_CONFIG_ERROR_INVALID_GRF_UNKNOWN :알 수 없음
STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_LEVEL :{WHITE}... 압축 레벨 '{STRING}' : 유효하지 않습니다
STR_CONFIG_ERROR_INVALID_SAVEGAME_COMPRESSION_ALGORITHM :{WHITE}... '{STRING}' 형식으로 게임을 저장할 수 없습니다. '{STRING}' 형식으로 변환합니다
STR_CONFIG_ERROR_INVALID_BASE_GRAPHICS_NOT_FOUND :{WHITE}... 기본 그래픽 세트({STRING})가 무시되었습니다: 파일을 찾을 수 없습니다.
@ -1776,7 +1776,7 @@ STR_OSNAME_DOS :{G=f}DOS
STR_OSNAME_UNIX :{G=f}Unix
STR_OSNAME_OSX :{G=f}OS{NBSP}X
STR_OSNAME_BEOS :{G=f}BeOS
STR_OSNAME_HAIKU :Haiku
STR_OSNAME_HAIKU :{G=f}Haiku
STR_OSNAME_MORPHOS :{G=f}MorphOS
STR_OSNAME_AMIGAOS :{G=f}AmigaOS
STR_OSNAME_OS2 :{G=f}OS/2
@ -1829,8 +1829,8 @@ STR_LIVERY_EMU :{G=f}EMU
STR_LIVERY_PASSENGER_WAGON_STEAM :{G=f}객차 (증기)
STR_LIVERY_PASSENGER_WAGON_DIESEL :{G=f}객차 (디젤)
STR_LIVERY_PASSENGER_WAGON_ELECTRIC :{G=f}객차 (전기)
STR_LIVERY_PASSENGER_WAGON_MONORAIL :객차 (모노레일)
STR_LIVERY_PASSENGER_WAGON_MAGLEV :객차 (자기부상)
STR_LIVERY_PASSENGER_WAGON_MONORAIL :{G=f}객차 (모노레일)
STR_LIVERY_PASSENGER_WAGON_MAGLEV :{G=f}객차 (자기부상)
STR_LIVERY_FREIGHT_WAGON :{G=f}화물차
STR_LIVERY_BUS :{G=f}버스
STR_LIVERY_TRUCK :{G=m}트럭
@ -1839,8 +1839,8 @@ STR_LIVERY_FREIGHT_SHIP :{G=m}화물선
STR_LIVERY_HELICOPTER :{G=f}헬리콥터
STR_LIVERY_SMALL_PLANE :{G=f}소형 항공기
STR_LIVERY_LARGE_PLANE :{G=f}대형 항공기
STR_LIVERY_PASSENGER_TRAM :승객 전차
STR_LIVERY_FREIGHT_TRAM :화물 전차
STR_LIVERY_PASSENGER_TRAM :{G=f}승객 전차
STR_LIVERY_FREIGHT_TRAM :{G=f}화물 전차
# Face selection window
STR_FACE_CAPTION :{WHITE}얼굴 선택
@ -2332,7 +2332,7 @@ STR_BUILD_DEPOT_TRAIN_ORIENTATION_CAPTION :{WHITE}차량
STR_BUILD_DEPOT_TRAIN_ORIENTATION_TOOLTIP :{BLACK}차량기지의 방향을 선택하세요.
# Rail waypoint construction window
STR_WAYPOINT_CAPTION :{G=f}{WHITE}경유지
STR_WAYPOINT_CAPTION :{WHITE}경유지
STR_WAYPOINT_GRAPHICS_TOOLTIP :{BLACK}경유지 종류 설정
# Rail station construction window
@ -2350,7 +2350,7 @@ STR_STATION_BUILD_STATION_CLASS_TOOLTIP :{BLACK}표시
STR_STATION_BUILD_STATION_TYPE_TOOLTIP :{BLACK}건설할 역의 종류를 선택합니다
STR_STATION_CLASS_DFLT :기본 역사
STR_STATION_CLASS_WAYP :{G=f}경유지
STR_STATION_CLASS_WAYP :경유지
# Signal window
STR_BUILD_SIGNAL_CAPTION :{WHITE}신호기 선택
@ -2629,7 +2629,7 @@ STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT :{STRING} 차량
STR_LAI_ROAD_DESCRIPTION_ROAD :도로
STR_LAI_ROAD_DESCRIPTION_ROAD_WITH_STREETLIGHTS :가로등이 있는 도로
STR_LAI_ROAD_DESCRIPTION_TREE_LINED_ROAD :가로수가 있는 도로
STR_LAI_ROAD_DESCRIPTION_ROAD_VEHICLE_DEPOT :{G=f}차고지
STR_LAI_ROAD_DESCRIPTION_ROAD_VEHICLE_DEPOT :차고지
STR_LAI_ROAD_DESCRIPTION_ROAD_RAIL_LEVEL_CROSSING :철도 건널목
STR_LAI_ROAD_DESCRIPTION_TRAMWAY :전찻길
@ -2646,8 +2646,8 @@ STR_LAI_STATION_DESCRIPTION_AIRPORT :공항
STR_LAI_STATION_DESCRIPTION_TRUCK_LOADING_AREA :트럭 적하장
STR_LAI_STATION_DESCRIPTION_BUS_STATION :버스 정류장
STR_LAI_STATION_DESCRIPTION_SHIP_DOCK :항구
STR_LAI_STATION_DESCRIPTION_BUOY :{G=f}부표
STR_LAI_STATION_DESCRIPTION_WAYPOINT :{G=f}경유지
STR_LAI_STATION_DESCRIPTION_BUOY :부표
STR_LAI_STATION_DESCRIPTION_WAYPOINT :경유지
STR_LAI_WATER_DESCRIPTION_WATER :물
STR_LAI_WATER_DESCRIPTION_CANAL :운하
@ -3054,9 +3054,9 @@ STR_GOAL_QUESTION_CAPTION_ERROR :오류
############ Start of Goal Question button list
STR_GOAL_QUESTION_BUTTON_CANCEL :취소
STR_GOAL_QUESTION_BUTTON_OK :{G=m}확인
STR_GOAL_QUESTION_BUTTON_OK :확인
STR_GOAL_QUESTION_BUTTON_NO :아니요
STR_GOAL_QUESTION_BUTTON_YES :{G=f}
STR_GOAL_QUESTION_BUTTON_YES :예
STR_GOAL_QUESTION_BUTTON_DECLINE :거절
STR_GOAL_QUESTION_BUTTON_ACCEPT :수락
STR_GOAL_QUESTION_BUTTON_IGNORE :무시
@ -3878,7 +3878,7 @@ STR_ORDER_STOP_LOCATION_NEAR_END :[가까운쪽]
STR_ORDER_STOP_LOCATION_MIDDLE :[중간]
STR_ORDER_STOP_LOCATION_FAR_END :[먼쪽]
STR_ORDER_OUT_OF_RANGE :{RED} (다음 목적지가 항속거리제한을 벗어납니다.)
STR_ORDER_OUT_OF_RANGE :{RED} (다음 목적지가 제한 항속거리보다 멀리 있습니다)
STR_ORDER_CONDITIONAL_UNCONDITIONAL :[조건 경로] {COMMA}번 경로로 건너뛰기
STR_ORDER_CONDITIONAL_NUM :[조건 경로] {COMMA}번 경로로 건너뛰기 ({STRING} {STRING} {COMMA} 일때)
@ -3985,7 +3985,7 @@ STR_AI_CONFIG_GAMELIST_TOOLTIP :{BLACK}다음
STR_AI_CONFIG_AILIST_TOOLTIP :{BLACK}다음에 게임을 시작할 때 이 인공지능을 불러올 것입니다
STR_AI_CONFIG_HUMAN_PLAYER :사용자 플레이어
STR_AI_CONFIG_RANDOM_AI :무작위 인공지능
STR_AI_CONFIG_NONE :{G=m}(없음)
STR_AI_CONFIG_NONE :(없음)
STR_AI_CONFIG_MOVE_UP :{BLACK}위로 이동
STR_AI_CONFIG_MOVE_UP_TOOLTIP :{BLACK}목록에서 선택한 인공지능의 순서를 한 칸 위로 옮깁니다.
@ -3997,16 +3997,16 @@ STR_AI_CONFIG_AI :{G=m}{SILVER}
STR_AI_CONFIG_CHANGE :{BLACK}{STRING} 선택하기
STR_AI_CONFIG_CHANGE_NONE :
STR_AI_CONFIG_CHANGE_AI :{G=m}인공지능
STR_AI_CONFIG_CHANGE_GAMESCRIPT :{G=f}게임 스크립트
STR_AI_CONFIG_CHANGE_AI :인공지능
STR_AI_CONFIG_CHANGE_GAMESCRIPT :게임 스크립트
STR_AI_CONFIG_CHANGE_TOOLTIP :{BLACK}다른 스크립트 불러오기
STR_AI_CONFIG_CONFIGURE :{BLACK}설정
STR_AI_CONFIG_CONFIGURE_TOOLTIP :{BLACK}인공지능의 매개 변수를 설정합니다.
# Available AIs window
STR_AI_LIST_CAPTION :{WHITE}사용 가능한 {STRING}
STR_AI_LIST_CAPTION_AI :{G=m}인공지능
STR_AI_LIST_CAPTION_GAMESCRIPT :{G=f}게임 스크립트
STR_AI_LIST_CAPTION_AI :인공지능
STR_AI_LIST_CAPTION_GAMESCRIPT :게임 스크립트
STR_AI_LIST_TOOLTIP :{BLACK}스크립트를 선택하려면 클릭하세요.
STR_AI_LIST_AUTHOR :{LTBLUE}저자: {ORANGE}{STRING}
@ -4020,7 +4020,7 @@ STR_AI_LIST_CANCEL_TOOLTIP :{BLACK}인공
# AI Parameters
STR_AI_SETTINGS_CAPTION :{WHITE}{STRING} 매개 변수
STR_AI_SETTINGS_CAPTION_AI :{G=m}인공지능
STR_AI_SETTINGS_CAPTION_AI :인공지능
STR_AI_SETTINGS_CAPTION_GAMESCRIPT :게임 스크립트
STR_AI_SETTINGS_CLOSE :{BLACK}닫기
STR_AI_SETTINGS_RESET :{BLACK}초기화
@ -4554,7 +4554,7 @@ STR_INDUSTRY_NAME_SUGAR_MINE :{G=m}설탕 광
############ These strings may never get a new id, or savegames will break!
##id 0x6000
STR_SV_EMPTY :
STR_SV_UNNAMED :{G=m}이름 없음
STR_SV_UNNAMED :이름 없음
STR_SV_TRAIN_NAME :열차 {COMMA}
STR_SV_ROAD_VEHICLE_NAME :차량 {COMMA}
STR_SV_SHIP_NAME :선박 {COMMA}
@ -4856,7 +4856,7 @@ STR_FORMAT_DATE_SHORT :{1:NUM}년 {0:S
STR_FORMAT_DATE_LONG :{2:NUM}년 {1:STRING}월 {0:STRING}일
STR_FORMAT_DATE_ISO :{2:NUM}-{1:STRING}-{0:STRING}
STR_FORMAT_BUOY_NAME :{G=f}{TOWN} 부표
STR_FORMAT_BUOY_NAME :{TOWN} 부표
STR_FORMAT_BUOY_NAME_SERIAL :{TOWN} 부표 #{COMMA}
STR_FORMAT_COMPANY_NUM :(회사 {COMMA})
STR_FORMAT_GROUP_NAME :그룹 {COMMA}
@ -4872,7 +4872,7 @@ STR_FORMAT_DEPOT_NAME_SHIP :{TOWN} 정박
STR_FORMAT_DEPOT_NAME_SHIP_SERIAL :{TOWN} 정박소 #{COMMA}
STR_FORMAT_DEPOT_NAME_AIRCRAFT :{STATION} 격납고
STR_UNKNOWN_STATION :알수없는 정거장
STR_UNKNOWN_STATION :알 없는 정거장
STR_DEFAULT_SIGN_NAME :팻말
STR_COMPANY_SOMEONE :누군가

@ -1833,6 +1833,7 @@ STR_NETWORK_SERVER_LIST_PLAYER_NAME :{BLACK}Namme fa
STR_NETWORK_SERVER_LIST_GAME_NAME :{BLACK}Namme
STR_NETWORK_SERVER_LIST_GAME_NAME_TOOLTIP :{BLACK}Namme fan dit spul
STR_NETWORK_SERVER_LIST_GENERAL_ONLINE :{BLACK}{COMMA}/{COMMA} - {COMMA}/{COMMA}
STR_NETWORK_SERVER_LIST_CLIENTS_CAPTION :{BLACK}kliïnten
STR_NETWORK_SERVER_LIST_MAP_SIZE_SHORT :{BLACK}{COMMA}x{COMMA}
STR_NETWORK_SERVER_LIST_MAP_SIZE_CAPTION :{BLACK}Lângrutte
STR_NETWORK_SERVER_LIST_DATE_CAPTION :{BLACK}Datum
@ -2001,8 +2002,10 @@ STR_NETWORK_ERROR_SAVEGAMEERROR :{WHITE}Koe opsl
STR_NETWORK_ERROR_SERVER_START :{WHITE}Koe de tsjinner net starte
STR_NETWORK_ERROR_CLIENT_START :{WHITE}Koe gjin ferbyning meitsje
STR_NETWORK_ERROR_TIMEOUT :{WHITE}Ferbining #{NUM} ferrûn
STR_NETWORK_ERROR_SERVER_ERROR :{WHITE}In protokol flater is opmurken en de ferbining is sletten
STR_NETWORK_ERROR_WRONG_PASSWORD :{WHITE}Ferkeard wachtwurd
STR_NETWORK_ERROR_SERVER_FULL :{WHITE}De tsjinner is vol
STR_NETWORK_ERROR_CHEATER :Falsk spielje net tastien op disse server
STR_NETWORK_ERROR_TOO_MANY_COMMANDS :{WHITE}Do stjoerst tevolle opdrachten ny de server
############ Leave those lines in this order!!
@ -2030,6 +2033,7 @@ STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_4 :Spul stiet nog
STR_NETWORK_SERVER_MESSAGE_GAME_REASON_MANUAL :hânmjittich
STR_NETWORK_SERVER_MESSAGE_GAME_REASON_GAME_SCRIPT :spulskript
############ End of leave-in-this-order
STR_NETWORK_MESSAGE_CLIENT_LEAVING :Ferlit
STR_NETWORK_MESSAGE_CLIENT_JOINED_ID :*** {STRING} der is ien bykommen(Client #{2:NUM})
STR_NETWORK_MESSAGE_CLIENT_COMPANY_SPECTATE :*** {STRING} is in neie taskôger
STR_NETWORK_MESSAGE_NAME_CHANGE :*** {STRING} hat syn/har namme oanpast nei {STRING}
@ -2300,6 +2304,7 @@ STR_FOUND_TOWN_SELECT_LAYOUT_RANDOM :{BLACK}Samar
# Fund new industry window
STR_FUND_INDUSTRY_CAPTION :{WHITE}Betelje nije yndustry
STR_FUND_INDUSTRY_MANY_RANDOM_INDUSTRIES_TOOLTIP :{BLACK}Pleats yndustry oer de map hinne
STR_FUND_INDUSTRY_INDUSTRY_BUILD_COST :{BLACK}Kostet: {YELLOW}{CURRENCY_LONG}
STR_FUND_INDUSTRY_BUILD_NEW_INDUSTRY :{BLACK}Bouwe
STR_FUND_INDUSTRY_FUND_NEW_INDUSTRY :{BLACK}Finansierje
@ -2836,6 +2841,7 @@ STR_STATION_VIEW_ACCEPTS_CARGO :{BLACK}Akseptea
STR_STATIOV_VIEW_EXCLUSIVE_RIGHTS_SELF :{BLACK}Dit stasjon hat eksklusyfe transportrjochten in dizze plak.
STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Stasjonwurdearing sjen litte
STR_STATION_VIEW_SUPPLY_RATINGS_TITLE :{BLACK}Moanlikse foarried en wurdearring:
STR_STATION_VIEW_CARGO_SUPPLY_RATING :{WHITE}{STRING}: {YELLOW}{COMMA} / {STRING} ({COMMA}%)
STR_STATION_VIEW_GROUP :{BLACK}Groepearje by
@ -2966,6 +2972,7 @@ STR_BUY_COMPANY_MESSAGE :{WHITE}Wy sykje
# Company infrastructure window
STR_COMPANY_INFRASTRUCTURE_VIEW_CAPTION :{WHITE}Ynfrastruktuer fan {COMPANY}
STR_COMPANY_INFRASTRUCTURE_VIEW_SIGNALS :{WHITE}Seinen
STR_COMPANY_INFRASTRUCTURE_VIEW_ROAD_SECT :{GOLD}Stikjes dyk:
STR_COMPANY_INFRASTRUCTURE_VIEW_ROAD :{WHITE}Dyk
STR_COMPANY_INFRASTRUCTURE_VIEW_TRAMWAY :{WHITE}Tramwei
STR_COMPANY_INFRASTRUCTURE_VIEW_STATION_SECT :{GOLD}Stasjons:
@ -3104,6 +3111,7 @@ STR_BUY_VEHICLE_ROAD_VEHICLE_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Wikselje
STR_BUY_VEHICLE_SHIP_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Wikselje tusken it ferbergje/sjen litte fan it soart skip
STR_BUY_VEHICLE_AIRCRAFT_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Wikselje tusken it ferbergje/sjen litte fan it soart fleanmasine
STR_QUERY_RENAME_TRAIN_TYPE_CAPTION :{WHITE}Jou treinmodel in oare namme
# Depot window
STR_DEPOT_CAPTION :{WHITE}{DEPOT}
@ -3119,10 +3127,12 @@ STR_DEPOT_ROAD_VEHICLE_LIST_TOOLTIP :{BLACK}Weinen -
STR_DEPOT_TRAIN_SELL_TOOLTIP :{BLACK}tôgje trein hjirhinne om it te ferkeapjen.
STR_DEPOT_ROAD_VEHICLE_SELL_TOOLTIP :{BLACK}tôgje wein hjirhinne om it te ferkeapjen.
STR_DEPOT_AIRCRAFT_SELL_TOOLTIP :{BLACK}tôgje fleantúg hjirhinne om it te ferkeapjen.
STR_DEPOT_SELL_ALL_BUTTON_ROAD_VEHICLE_TOOLTIP :Ferkeapje alle weinen yn disse garage
STR_DEPOT_AUTOREPLACE_SHIP_TOOLTIP :{BLACK}Ferfang automatysk skippen yn de skipmakkerij
STR_DEPOT_AUTOREPLACE_AIRCRAFT_TOOLTIP :{BLACK}Ferfang automatysk alle fleantúgen yn disse fleantúchhangaar
STR_DEPOT_TRAIN_NEW_VEHICLES_BUTTON :{BLACK}Nije fiertugen
@ -3175,6 +3185,7 @@ STR_REPLACE_MONORAIL_VEHICLES :Monorail weinen
# Vehicle view
STR_VEHICLE_VIEW_CAPTION :{WHITE}{VEHICLE}
STR_VEHICLE_VIEW_TRAIN_LOCATION_TOOLTIP :{BLACK}Sintrearje it byld op de lokaasje fan disse trein. bij Ctrl+Click bliuwst it skip folgjen
STR_VEHICLE_VIEW_SHIP_LOCATION_TOOLTIP :{BLACK}Sintrearje it byld op de lokaasje fan dit skip. bij Ctrl+Click bliuwst it skip folgjen
STR_VEHICLE_VIEW_AIRCRAFT_LOCATION_TOOLTIP :{BLACK}Sintrearje it byld op de lokaasje fan dit fleantúch
@ -3190,6 +3201,7 @@ STR_VEHICLE_VIEW_SHIP_ORDERS_TOOLTIP :{BLACK}Lit de r
# Messages in the start stop button in the vehicle view
STR_VEHICLE_STATUS_LOADING_UNLOADING :{LTBLUE}Laden / Losse
STR_VEHICLE_STATUS_LEAVING :{LTBLUE}fuortsette
STR_VEHICLE_STATUS_BROKEN_DOWN :{RED}Stikken
STR_VEHICLE_STATUS_STOPPED :{RED}Stoppe
STR_VEHICLE_STATUS_TRAIN_STOPPING_VEL :{RED}Stoppet, {VELOCITY}
@ -3224,6 +3236,7 @@ STR_VEHICLE_INFO_CAPACITY :{BLACK}Kapasite
STR_VEHICLE_INFO_CAPACITY_MULT :{BLACK}Kapasiteit: {LTBLUE}{CARGO_LONG}{3:STRING} (x{4:NUM})
STR_VEHICLE_INFO_CAPACITY_CAPACITY :{BLACK}Kapasiteit: {LTBLUE}{CARGO_LONG}, {CARGO_LONG}{STRING}
STR_VEHICLE_INFO_FEEDER_CARGO_VALUE :{BLACK}Wikselje kredyt: {LTBLUE}{CURRENCY_LONG}
STR_VEHICLE_DETAILS_SERVICING_INTERVAL_DAYS :{BLACK}Underhâldsinterval: {LTBLUE}{COMMA}{NBSP}dagen{BLACK} Lêste underhâld: {LTBLUE}{DATE_LONG}
STR_VEHICLE_DETAILS_SERVICING_INTERVAL_PERCENT :{BLACK}Underhâldsinterval: {LTBLUE}{COMMA}%{BLACK} Lêste underhâld: {LTBLUE}{DATE_LONG}
@ -3267,6 +3280,7 @@ STR_REFIT_ROAD_VEHICLE_REFIT_BUTTON :{BLACK}Wein omb
STR_REFIT_SHIP_REFIT_BUTTON :{BLACK}Skip ombouwe
STR_REFIT_AIRCRAFT_REFIT_BUTTON :{BLACK}Fleantúch ombouwe
STR_REFIT_ROAD_VEHICLE_REFIT_TOOLTIP :{BLACK}Wein ombouwe nij selektearre fracht
STR_REFIT_SHIP_REFIT_TOOLTIP :{BLACK}Skip ombouwe nij selektearre fracht
# Order view
@ -3330,6 +3344,7 @@ STR_ORDER_GO_NON_STOP_TO_WAYPOINT :Oanienwei lâns
STR_ORDER_GO_TO_NEAREST_DEPOT_FORMAT :{STRING} {STRING} {STRING}
STR_ORDER_GO_TO_DEPOT_FORMAT :{STRING} {DEPOT}
STR_ORDER_REFIT_ORDER :(Ombouwe nij {STRING})
STR_ORDER_STOP_ORDER :(Stop)
STR_ORDER_GO_TO_STATION :{STRING} {STATION} {STRING}
@ -3470,6 +3485,7 @@ STR_AI_SETTINGS_SETTING :{STRING}: {ORAN
# Textfile window
STR_TEXTFILE_LICENCE_CAPTION :{WHITE}{STRING} lisinsje fan {STRING}
STR_TEXTFILE_WRAP_TEXT :{WHITE}Omwikkelje tekst
STR_TEXTFILE_VIEW_LICENCE :{BLACK}Lisinsje

@ -6429,8 +6429,8 @@ static void SafeParamSet(ByteReader *buf)
{
uint8 target = buf->ReadByte();
/* Only writing GRF parameters is considered safe */
if (target < 0x80) return;
/* Writing GRF parameters and some bits of 'misc GRF features' are safe. */
if (target < 0x80 || target == 0x9E) return;
/* GRM could be unsafe, but as here it can only happen after other GRFs
* are loaded, it should be okay. If the GRF tried to use the slots it
@ -6846,7 +6846,15 @@ static void ParamSet(ByteReader *buf)
/* Remove the local flags from the global flags */
ClrBit(res, GMB_TRAIN_WIDTH_32_PIXELS);
_misc_grf_features = res;
/* Only copy safe bits for static grfs */
if (HasBit(_cur.grfconfig->flags, GCF_STATIC)) {
uint32 safe_bits = 0;
SetBit(safe_bits, GMB_SECOND_ROCKY_TILE_SET);
_misc_grf_features = (_misc_grf_features & ~safe_bits) | (res & safe_bits);
} else {
_misc_grf_features = res;
}
break;
case 0x9F: // locale-dependent settings

@ -31,6 +31,9 @@ enum GroupListWidgets {
WID_GL_CREATE_GROUP, ///< Create group button.
WID_GL_DELETE_GROUP, ///< Delete group button.
WID_GL_RENAME_GROUP, ///< Rename group button.
WID_GL_COLLAPSE_EXPAND_GROUP, ///< Collapse/expand group button.
WID_GL_COLLAPSE_ALL_GROUPS, ///< Collapse all groups button.
WID_GL_EXPAND_ALL_GROUPS, ///< Expand all groups button.
WID_GL_REPLACE_PROTECTION, ///< Replace protection button.
WID_GL_INFO, ///< Group info.
};

Loading…
Cancel
Save