Merge branch 'master' into jgrpp
# Conflicts: # src/autoreplace_gui.cpp # src/build_vehicle_gui.cpp # src/cheat_gui.cpp # src/company_gui.cpp # src/debug.cpp # src/engine_gui.h # src/error_gui.cpp # src/group_gui.cpp # src/industry_cmd.cpp # src/industry_gui.cpp # src/misc_gui.cpp # src/network/network_gui.cpp # src/newgrf.cpp # src/newgrf_debug_gui.cpp # src/newgrf_gui.cpp # src/order_gui.cpp # src/rail_gui.cpp # src/road_gui.cpp # src/saveload/saveload.cpp # src/screenshot_gui.cpp # src/sound/win32_s.cpp # src/statusbar_gui.cpp # src/strgen/strgen.cpp # src/table/newgrf_debug_data.h # src/timetable_gui.cpp # src/toolbar_gui.cpp # src/town_gui.cpp # src/vehicle_gui.cpp # src/video/sdl2_v.cpp # src/video/sdl_v.cpp # src/viewport.cpp
This commit is contained in:
@@ -262,6 +262,7 @@ add_files(
|
|||||||
music_gui.cpp
|
music_gui.cpp
|
||||||
newgrf.cpp
|
newgrf.cpp
|
||||||
newgrf.h
|
newgrf.h
|
||||||
|
newgrf_act5.h
|
||||||
newgrf_airport.cpp
|
newgrf_airport.cpp
|
||||||
newgrf_airport.h
|
newgrf_airport.h
|
||||||
newgrf_airporttiles.cpp
|
newgrf_airporttiles.cpp
|
||||||
|
@@ -127,20 +127,20 @@ struct AIConfigWindow : public Window {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
case WID_AIC_DECREASE_NUMBER:
|
case WID_AIC_DECREASE_NUMBER:
|
||||||
case WID_AIC_INCREASE_NUMBER:
|
case WID_AIC_INCREASE_NUMBER:
|
||||||
case WID_AIC_DECREASE_INTERVAL:
|
case WID_AIC_DECREASE_INTERVAL:
|
||||||
case WID_AIC_INCREASE_INTERVAL:
|
case WID_AIC_INCREASE_INTERVAL:
|
||||||
*size = maxdim(*size, NWidgetScrollbar::GetHorizontalDimension());
|
size = maxdim(size, NWidgetScrollbar::GetHorizontalDimension());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_AIC_LIST:
|
case WID_AIC_LIST:
|
||||||
this->line_height = GetCharacterHeight(FS_NORMAL) + padding.height;
|
this->line_height = GetCharacterHeight(FS_NORMAL) + padding.height;
|
||||||
resize->height = this->line_height;
|
resize.height = this->line_height;
|
||||||
size->height = 8 * this->line_height;
|
size.height = 8 * this->line_height;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -309,7 +309,7 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
case WID_AP_CLASS_DROPDOWN: {
|
case WID_AP_CLASS_DROPDOWN: {
|
||||||
@@ -319,7 +319,7 @@ public:
|
|||||||
}
|
}
|
||||||
d.width += padding.width;
|
d.width += padding.width;
|
||||||
d.height += padding.height;
|
d.height += padding.height;
|
||||||
*size = maxdim(*size, d);
|
size = maxdim(size, d);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -328,11 +328,11 @@ public:
|
|||||||
const AirportSpec *as = AirportSpec::Get(i);
|
const AirportSpec *as = AirportSpec::Get(i);
|
||||||
if (!as->enabled) continue;
|
if (!as->enabled) continue;
|
||||||
|
|
||||||
size->width = std::max(size->width, GetStringBoundingBox(as->name).width + padding.width);
|
size.width = std::max(size.width, GetStringBoundingBox(as->name).width + padding.width);
|
||||||
}
|
}
|
||||||
|
|
||||||
this->line_height = GetCharacterHeight(FS_NORMAL) + padding.height;
|
this->line_height = GetCharacterHeight(FS_NORMAL) + padding.height;
|
||||||
size->height = 5 * this->line_height;
|
size.height = 5 * this->line_height;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -346,7 +346,7 @@ public:
|
|||||||
Dimension d = GetSpriteSize(sprite);
|
Dimension d = GetSpriteSize(sprite);
|
||||||
d.width += WidgetDimensions::scaled.framerect.Horizontal();
|
d.width += WidgetDimensions::scaled.framerect.Horizontal();
|
||||||
d.height += WidgetDimensions::scaled.framerect.Vertical();
|
d.height += WidgetDimensions::scaled.framerect.Vertical();
|
||||||
*size = maxdim(d, *size);
|
size = maxdim(d, size);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -360,8 +360,8 @@ public:
|
|||||||
StringID string = GetAirportTextCallback(as, layout, CBID_AIRPORT_ADDITIONAL_TEXT);
|
StringID string = GetAirportTextCallback(as, layout, CBID_AIRPORT_ADDITIONAL_TEXT);
|
||||||
if (string == STR_UNDEFINED) continue;
|
if (string == STR_UNDEFINED) continue;
|
||||||
|
|
||||||
Dimension d = GetStringMultiLineBoundingBox(string, *size);
|
Dimension d = GetStringMultiLineBoundingBox(string, size);
|
||||||
*size = maxdim(d, *size);
|
size = maxdim(d, size);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@@ -31,8 +31,6 @@
|
|||||||
|
|
||||||
#include "safeguards.h"
|
#include "safeguards.h"
|
||||||
|
|
||||||
void DrawEngineList(VehicleType type, const Rect &r, const GUIEngineList &eng_list, const Scrollbar &sb, EngineID selected_id, bool show_count, GroupID selected_group);
|
|
||||||
|
|
||||||
static bool EngineNumberSorter(const GUIEngineListItem &a, const GUIEngineListItem &b, const GUIEngineListSortCache &cache)
|
static bool EngineNumberSorter(const GUIEngineListItem &a, const GUIEngineListItem &b, const GUIEngineListSortCache &cache)
|
||||||
{
|
{
|
||||||
return Engine::Get(a.engine_id)->list_position < Engine::Get(b.engine_id)->list_position;
|
return Engine::Get(a.engine_id)->list_position < Engine::Get(b.engine_id)->list_position;
|
||||||
@@ -112,27 +110,6 @@ class ReplaceVehicleWindow : public Window {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void AddChildren(const GUIEngineList &source, GUIEngineList &target, EngineID parent, int indent, int side)
|
|
||||||
{
|
|
||||||
for (const auto &item : source) {
|
|
||||||
if (item.variant_id != parent || item.engine_id == parent) continue;
|
|
||||||
|
|
||||||
const Engine *e = Engine::Get(item.engine_id);
|
|
||||||
EngineDisplayFlags flags = item.flags;
|
|
||||||
if (e->display_last_variant != INVALID_ENGINE) flags &= ~EngineDisplayFlags::Shaded;
|
|
||||||
target.emplace_back(e->display_last_variant == INVALID_ENGINE ? item.engine_id : e->display_last_variant, item.engine_id, flags, indent);
|
|
||||||
|
|
||||||
/* Add variants if not folded */
|
|
||||||
if ((item.flags & (EngineDisplayFlags::HasVariants | EngineDisplayFlags::IsFolded)) == EngineDisplayFlags::HasVariants) {
|
|
||||||
/* Add this engine again as a child */
|
|
||||||
if ((item.flags & EngineDisplayFlags::Shaded) == EngineDisplayFlags::None) {
|
|
||||||
target.emplace_back(item.engine_id, item.engine_id, EngineDisplayFlags::None, indent + 1);
|
|
||||||
}
|
|
||||||
AddChildren(source, target, item.engine_id, indent + 1, side);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generate an engines list
|
* Generate an engines list
|
||||||
* @param draw_left true if generating the left list, otherwise false
|
* @param draw_left true if generating the left list, otherwise false
|
||||||
@@ -206,7 +183,7 @@ class ReplaceVehicleWindow : public Window {
|
|||||||
|
|
||||||
this->engines[side].clear();
|
this->engines[side].clear();
|
||||||
if (side == 1) {
|
if (side == 1) {
|
||||||
AddChildren(list, this->engines[side], INVALID_ENGINE, 0, side);
|
GUIEngineListAddChildren(this->engines[side], list);
|
||||||
} else {
|
} else {
|
||||||
this->engines[side].swap(list);
|
this->engines[side].swap(list);
|
||||||
}
|
}
|
||||||
@@ -316,26 +293,26 @@ public:
|
|||||||
this->sel_group = id_g;
|
this->sel_group = id_g;
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
case WID_RV_SORT_ASCENDING_DESCENDING: {
|
case WID_RV_SORT_ASCENDING_DESCENDING: {
|
||||||
Dimension d = GetStringBoundingBox(this->GetWidget<NWidgetCore>(widget)->widget_data);
|
Dimension d = GetStringBoundingBox(this->GetWidget<NWidgetCore>(widget)->widget_data);
|
||||||
d.width += padding.width + Window::SortButtonWidth() * 2; // Doubled since the string is centred and it also looks better.
|
d.width += padding.width + Window::SortButtonWidth() * 2; // Doubled since the string is centred and it also looks better.
|
||||||
d.height += padding.height;
|
d.height += padding.height;
|
||||||
*size = maxdim(*size, d);
|
size = maxdim(size, d);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case WID_RV_LEFT_MATRIX:
|
case WID_RV_LEFT_MATRIX:
|
||||||
case WID_RV_RIGHT_MATRIX:
|
case WID_RV_RIGHT_MATRIX:
|
||||||
resize->height = GetEngineListHeight((VehicleType)this->window_number);
|
resize.height = GetEngineListHeight((VehicleType)this->window_number);
|
||||||
size->height = (this->window_number <= VEH_ROAD ? 8 : 4) * resize->height;
|
size.height = (this->window_number <= VEH_ROAD ? 8 : 4) * resize.height;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_RV_LEFT_DETAILS:
|
case WID_RV_LEFT_DETAILS:
|
||||||
case WID_RV_RIGHT_DETAILS:
|
case WID_RV_RIGHT_DETAILS:
|
||||||
size->height = GetCharacterHeight(FS_NORMAL) * this->details_height + padding.height;
|
size.height = GetCharacterHeight(FS_NORMAL) * this->details_height + padding.height;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_RV_TRAIN_WAGONREMOVE_TOGGLE: {
|
case WID_RV_TRAIN_WAGONREMOVE_TOGGLE: {
|
||||||
@@ -346,7 +323,7 @@ public:
|
|||||||
d = maxdim(d, GetStringBoundingBox(str));
|
d = maxdim(d, GetStringBoundingBox(str));
|
||||||
d.width += padding.width;
|
d.width += padding.width;
|
||||||
d.height += padding.height;
|
d.height += padding.height;
|
||||||
*size = maxdim(*size, d);
|
size = maxdim(size, d);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -355,7 +332,7 @@ public:
|
|||||||
d = maxdim(d, GetStringBoundingBox(STR_REPLACE_WAGONS));
|
d = maxdim(d, GetStringBoundingBox(STR_REPLACE_WAGONS));
|
||||||
d.width += padding.width;
|
d.width += padding.width;
|
||||||
d.height += padding.height;
|
d.height += padding.height;
|
||||||
*size = maxdim(*size, d);
|
size = maxdim(size, d);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -364,7 +341,7 @@ public:
|
|||||||
d = maxdim(d, GetStringBoundingBox(STR_REPLACE_NOT_REPLACING_VEHICLE_SELECTED));
|
d = maxdim(d, GetStringBoundingBox(STR_REPLACE_NOT_REPLACING_VEHICLE_SELECTED));
|
||||||
d.width += padding.width;
|
d.width += padding.width;
|
||||||
d.height += padding.height;
|
d.height += padding.height;
|
||||||
*size = maxdim(*size, d);
|
size = maxdim(size, d);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -375,7 +352,7 @@ public:
|
|||||||
}
|
}
|
||||||
d.width += padding.width;
|
d.width += padding.width;
|
||||||
d.height += padding.height;
|
d.height += padding.height;
|
||||||
*size = maxdim(*size, d);
|
size = maxdim(size, d);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -386,7 +363,7 @@ public:
|
|||||||
}
|
}
|
||||||
d.width += padding.width;
|
d.width += padding.width;
|
||||||
d.height += padding.height;
|
d.height += padding.height;
|
||||||
*size = maxdim(*size, d);
|
size = maxdim(size, d);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -397,7 +374,7 @@ public:
|
|||||||
}
|
}
|
||||||
d.width += padding.width;
|
d.width += padding.width;
|
||||||
d.height += padding.height;
|
d.height += padding.height;
|
||||||
*size = maxdim(*size, d);
|
size = maxdim(size, d);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -96,12 +96,12 @@ public:
|
|||||||
this->Window::Close();
|
this->Window::Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
if (widget == WID_BEM_MESSAGE) {
|
if (widget == WID_BEM_MESSAGE) {
|
||||||
*size = GetStringBoundingBox(STR_MISSING_GRAPHICS_ERROR);
|
size = GetStringBoundingBox(STR_MISSING_GRAPHICS_ERROR);
|
||||||
size->width += WidgetDimensions::scaled.frametext.Horizontal();
|
size.width += WidgetDimensions::scaled.frametext.Horizontal();
|
||||||
size->height += WidgetDimensions::scaled.frametext.Vertical();
|
size.height += WidgetDimensions::scaled.frametext.Vertical();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -210,7 +210,7 @@ public:
|
|||||||
this->Window::Close();
|
this->Window::Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
/* We cache the button size. This is safe as no reinit can happen here. */
|
/* We cache the button size. This is safe as no reinit can happen here. */
|
||||||
if (this->button_size.width == 0) {
|
if (this->button_size.width == 0) {
|
||||||
@@ -222,13 +222,13 @@ public:
|
|||||||
switch (widget) {
|
switch (widget) {
|
||||||
case WID_BAFD_QUESTION:
|
case WID_BAFD_QUESTION:
|
||||||
/* The question is twice as wide as the buttons, and determine the height based on the width. */
|
/* The question is twice as wide as the buttons, and determine the height based on the width. */
|
||||||
size->width = this->button_size.width * 2;
|
size.width = this->button_size.width * 2;
|
||||||
size->height = GetStringHeight(STR_MISSING_GRAPHICS_SET_MESSAGE, size->width - WidgetDimensions::scaled.frametext.Horizontal()) + WidgetDimensions::scaled.frametext.Vertical();
|
size.height = GetStringHeight(STR_MISSING_GRAPHICS_SET_MESSAGE, size.width - WidgetDimensions::scaled.frametext.Horizontal()) + WidgetDimensions::scaled.frametext.Vertical();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_BAFD_YES:
|
case WID_BAFD_YES:
|
||||||
case WID_BAFD_NO:
|
case WID_BAFD_NO:
|
||||||
*size = this->button_size;
|
size = this->button_size;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -189,14 +189,14 @@ public:
|
|||||||
this->Window::Close();
|
this->Window::Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
case WID_BBS_DROPDOWN_ORDER: {
|
case WID_BBS_DROPDOWN_ORDER: {
|
||||||
Dimension d = GetStringBoundingBox(this->GetWidget<NWidgetCore>(widget)->widget_data);
|
Dimension d = GetStringBoundingBox(this->GetWidget<NWidgetCore>(widget)->widget_data);
|
||||||
d.width += padding.width + Window::SortButtonWidth() * 2; // Doubled since the string is centred and it also looks better.
|
d.width += padding.width + Window::SortButtonWidth() * 2; // Doubled since the string is centred and it also looks better.
|
||||||
d.height += padding.height;
|
d.height += padding.height;
|
||||||
*size = maxdim(*size, d);
|
size = maxdim(size, d);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case WID_BBS_DROPDOWN_CRITERIA: {
|
case WID_BBS_DROPDOWN_CRITERIA: {
|
||||||
@@ -206,7 +206,7 @@ public:
|
|||||||
}
|
}
|
||||||
d.width += padding.width;
|
d.width += padding.width;
|
||||||
d.height += padding.height;
|
d.height += padding.height;
|
||||||
*size = maxdim(*size, d);
|
size = maxdim(size, d);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case WID_BBS_BRIDGE_LIST: {
|
case WID_BBS_BRIDGE_LIST: {
|
||||||
@@ -216,11 +216,11 @@ public:
|
|||||||
sprite_dim = maxdim(sprite_dim, GetScaledSpriteSize(bridge_data.spec->sprite));
|
sprite_dim = maxdim(sprite_dim, GetScaledSpriteSize(bridge_data.spec->sprite));
|
||||||
text_dim = maxdim(text_dim, GetStringBoundingBox(GetBridgeSelectString(bridge_data)));
|
text_dim = maxdim(text_dim, GetStringBoundingBox(GetBridgeSelectString(bridge_data)));
|
||||||
}
|
}
|
||||||
resize->height = std::max(sprite_dim.height, text_dim.height) + padding.height; // Max of both sizes + account for matrix edges.
|
resize.height = std::max(sprite_dim.height, text_dim.height) + padding.height; // Max of both sizes + account for matrix edges.
|
||||||
|
|
||||||
this->icon_width = sprite_dim.width; // Width of bridge icon.
|
this->icon_width = sprite_dim.width; // Width of bridge icon.
|
||||||
size->width = this->icon_width + WidgetDimensions::scaled.hsep_normal + text_dim.width + padding.width;
|
size.width = this->icon_width + WidgetDimensions::scaled.hsep_normal + text_dim.width + padding.width;
|
||||||
size->height = 4 * resize->height; // Smallest bridge gui is 4 entries high in the matrix.
|
size.height = 4 * resize.height; // Smallest bridge gui is 4 entries high in the matrix.
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1269,6 +1269,9 @@ void DrawEngineList(VehicleType type, const Rect &r, const GUIEngineList &eng_li
|
|||||||
int small_text_y_offset = ir.Height() - GetCharacterHeight(FS_SMALL);
|
int small_text_y_offset = ir.Height() - GetCharacterHeight(FS_SMALL);
|
||||||
int replace_icon_y_offset = (ir.Height() - replace_icon.height) / 2;
|
int replace_icon_y_offset = (ir.Height() - replace_icon.height) / 2;
|
||||||
|
|
||||||
|
const int offset = (rtl ? -circle_width : circle_width) / 2;
|
||||||
|
const int level_width = rtl ? -WidgetDimensions::scaled.hsep_indent : WidgetDimensions::scaled.hsep_indent;
|
||||||
|
|
||||||
int y = ir.top;
|
int y = ir.top;
|
||||||
for (auto it = first; it != last; ++it) {
|
for (auto it = first; it != last; ++it) {
|
||||||
const auto &item = *it;
|
const auto &item = *it;
|
||||||
@@ -1276,6 +1279,21 @@ void DrawEngineList(VehicleType type, const Rect &r, const GUIEngineList &eng_li
|
|||||||
bool has_variants = (item.flags & EngineDisplayFlags::HasVariants) != EngineDisplayFlags::None;
|
bool has_variants = (item.flags & EngineDisplayFlags::HasVariants) != EngineDisplayFlags::None;
|
||||||
bool is_folded = (item.flags & EngineDisplayFlags::IsFolded) != EngineDisplayFlags::None;
|
bool is_folded = (item.flags & EngineDisplayFlags::IsFolded) != EngineDisplayFlags::None;
|
||||||
bool shaded = (item.flags & EngineDisplayFlags::Shaded) != EngineDisplayFlags::None;
|
bool shaded = (item.flags & EngineDisplayFlags::Shaded) != EngineDisplayFlags::None;
|
||||||
|
|
||||||
|
if (item.indent > 0) {
|
||||||
|
/* Draw tree continuation lines. */
|
||||||
|
int tx = (rtl ? ir.right : ir.left) + offset;
|
||||||
|
int ty = y - WidgetDimensions::scaled.matrix.top;
|
||||||
|
for (uint lvl = 1; lvl <= item.indent; ++lvl) {
|
||||||
|
if (HasBit(item.level_mask, lvl)) GfxDrawLine(tx, ty, tx, ty + step_size - 1, linecolour, WidgetDimensions::scaled.fullbevel.top);
|
||||||
|
if (lvl < item.indent) tx += level_width;
|
||||||
|
}
|
||||||
|
/* Draw our node in the tree. */
|
||||||
|
int ycentre = y + normal_text_y_offset + GetCharacterHeight(FS_NORMAL) / 2 - 1;
|
||||||
|
if (!HasBit(item.level_mask, item.indent)) GfxDrawLine(tx, ty, tx, ycentre, linecolour, WidgetDimensions::scaled.fullbevel.top);
|
||||||
|
GfxDrawLine(tx, ycentre, tx + offset - (rtl ? -1 : 1), ycentre, linecolour, WidgetDimensions::scaled.fullbevel.top);
|
||||||
|
}
|
||||||
|
|
||||||
/* Note: num_engines is only used in the autoreplace GUI, so it is correct to use _local_company here. */
|
/* Note: num_engines is only used in the autoreplace GUI, so it is correct to use _local_company here. */
|
||||||
const uint num_engines = GetGroupNumEngines(_local_company, selected_group, item.engine_id);
|
const uint num_engines = GetGroupNumEngines(_local_company, selected_group, item.engine_id);
|
||||||
|
|
||||||
@@ -1303,14 +1321,6 @@ void DrawEngineList(VehicleType type, const Rect &r, const GUIEngineList &eng_li
|
|||||||
Rect fr = ir.Indent(indent, rtl).WithWidth(circle_width, rtl);
|
Rect fr = ir.Indent(indent, rtl).WithWidth(circle_width, rtl);
|
||||||
DrawSpriteIgnorePadding(is_folded ? SPR_CIRCLE_FOLDED : SPR_CIRCLE_UNFOLDED, PAL_NONE, {fr.left, y, fr.right, y + ir.Height() - 1}, SA_CENTER);
|
DrawSpriteIgnorePadding(is_folded ? SPR_CIRCLE_FOLDED : SPR_CIRCLE_UNFOLDED, PAL_NONE, {fr.left, y, fr.right, y + ir.Height() - 1}, SA_CENTER);
|
||||||
}
|
}
|
||||||
if (indent > 0) {
|
|
||||||
/* Draw tree lines */
|
|
||||||
Rect fr = ir.Indent(indent - WidgetDimensions::scaled.hsep_indent, rtl).WithWidth(circle_width, rtl);
|
|
||||||
int ycenter = y + normal_text_y_offset + GetCharacterHeight(FS_NORMAL) / 2;
|
|
||||||
bool continues = std::next(it) != std::end(eng_list) && std::next(it)->indent == item.indent;
|
|
||||||
GfxDrawLine(fr.left + circle_width / 2, y - WidgetDimensions::scaled.matrix.top, fr.left + circle_width / 2, continues ? y - WidgetDimensions::scaled.matrix.top + step_size - 1 : ycenter, linecolour, WidgetDimensions::scaled.fullbevel.top);
|
|
||||||
GfxDrawLine(fr.left + circle_width / 2, ycenter, fr.right, ycenter, linecolour, WidgetDimensions::scaled.fullbevel.top);
|
|
||||||
}
|
|
||||||
y += step_size;
|
y += step_size;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1338,6 +1348,44 @@ void DisplayVehicleSortDropDown(Window *w, VehicleType vehicle_type, int selecte
|
|||||||
ShowDropDownMenu(w, _engine_sort_listing[vehicle_type], selected, button, 0, hidden_mask);
|
ShowDropDownMenu(w, _engine_sort_listing[vehicle_type], selected, button, 0, hidden_mask);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add children to GUI engine list to build a hierarchical tree.
|
||||||
|
* @param dst Destination list.
|
||||||
|
* @param src Source list.
|
||||||
|
* @param parent Current tree parent (set by self with recursion).
|
||||||
|
* @param indent Current tree indentation level (set by self with recursion).
|
||||||
|
*/
|
||||||
|
void GUIEngineListAddChildren(GUIEngineList &dst, const GUIEngineList &src, EngineID parent, uint8_t indent)
|
||||||
|
{
|
||||||
|
for (const auto &item : src) {
|
||||||
|
if (item.variant_id != parent || item.engine_id == parent) continue;
|
||||||
|
|
||||||
|
const Engine *e = Engine::Get(item.engine_id);
|
||||||
|
EngineDisplayFlags flags = item.flags;
|
||||||
|
if (e->display_last_variant != INVALID_ENGINE) flags &= ~EngineDisplayFlags::Shaded;
|
||||||
|
dst.emplace_back(e->display_last_variant == INVALID_ENGINE ? item.engine_id : e->display_last_variant, item.engine_id, flags, indent);
|
||||||
|
|
||||||
|
/* Add variants if not folded */
|
||||||
|
if ((item.flags & (EngineDisplayFlags::HasVariants | EngineDisplayFlags::IsFolded)) == EngineDisplayFlags::HasVariants) {
|
||||||
|
/* Add this engine again as a child */
|
||||||
|
if ((item.flags & EngineDisplayFlags::Shaded) == EngineDisplayFlags::None) {
|
||||||
|
dst.emplace_back(item.engine_id, item.engine_id, EngineDisplayFlags::None, indent + 1);
|
||||||
|
}
|
||||||
|
GUIEngineListAddChildren(dst, src, item.engine_id, indent + 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (indent > 0 || dst.empty()) return;
|
||||||
|
|
||||||
|
/* Hierarchy is complete, traverse in reverse to find where indentation levels continue. */
|
||||||
|
uint16_t level_mask = 0;
|
||||||
|
for (auto it = std::rbegin(dst); std::next(it) != std::rend(dst); ++it) {
|
||||||
|
auto next_it = std::next(it);
|
||||||
|
SB(level_mask, it->indent, 1, it->indent <= next_it->indent);
|
||||||
|
next_it->level_mask = level_mask;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/** Enum referring to the Hotkeys in the build vehicle window */
|
/** Enum referring to the Hotkeys in the build vehicle window */
|
||||||
enum BuildVehicleHotkeys {
|
enum BuildVehicleHotkeys {
|
||||||
BVHK_FOCUS_FILTER_BOX, ///< Focus the edit box for editing the filter string
|
BVHK_FOCUS_FILTER_BOX, ///< Focus the edit box for editing the filter string
|
||||||
@@ -1359,27 +1407,6 @@ struct BuildVehicleWindowBase : Window {
|
|||||||
this->listview_mode = (tile == INVALID_TILE) && !virtual_train_mode;
|
this->listview_mode = (tile == INVALID_TILE) && !virtual_train_mode;
|
||||||
}
|
}
|
||||||
|
|
||||||
void AddChildren(GUIEngineList &eng_list, const GUIEngineList &source, EngineID parent, int indent)
|
|
||||||
{
|
|
||||||
for (const auto &item : source) {
|
|
||||||
if (item.variant_id != parent || item.engine_id == parent) continue;
|
|
||||||
|
|
||||||
const Engine *e = Engine::Get(item.engine_id);
|
|
||||||
EngineDisplayFlags flags = item.flags;
|
|
||||||
if (e->display_last_variant != INVALID_ENGINE) flags &= ~EngineDisplayFlags::Shaded;
|
|
||||||
eng_list.emplace_back(e->display_last_variant == INVALID_ENGINE ? item.engine_id : e->display_last_variant, item.engine_id, flags, indent);
|
|
||||||
|
|
||||||
/* Add variants if not folded */
|
|
||||||
if ((item.flags & (EngineDisplayFlags::HasVariants | EngineDisplayFlags::IsFolded)) == EngineDisplayFlags::HasVariants) {
|
|
||||||
/* Add this engine again as a child */
|
|
||||||
if ((item.flags & EngineDisplayFlags::Shaded) == EngineDisplayFlags::None) {
|
|
||||||
eng_list.emplace_back(item.engine_id, item.engine_id, EngineDisplayFlags::None, indent + 1);
|
|
||||||
}
|
|
||||||
AddChildren(eng_list, source, item.engine_id, indent + 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void AddVirtualEngine(Train *toadd)
|
void AddVirtualEngine(Train *toadd)
|
||||||
{
|
{
|
||||||
if (this->virtual_train_out == nullptr) return;
|
if (this->virtual_train_out == nullptr) return;
|
||||||
@@ -1873,7 +1900,7 @@ struct BuildVehicleWindow : BuildVehicleWindowBase {
|
|||||||
default: NOT_REACHED();
|
default: NOT_REACHED();
|
||||||
case VEH_TRAIN:
|
case VEH_TRAIN:
|
||||||
this->GenerateBuildTrainList(list);
|
this->GenerateBuildTrainList(list);
|
||||||
AddChildren(this->eng_list, list, INVALID_ENGINE, 0);
|
GUIEngineListAddChildren(this->eng_list, list);
|
||||||
this->eng_list.shrink_to_fit();
|
this->eng_list.shrink_to_fit();
|
||||||
this->eng_list.RebuildDone();
|
this->eng_list.RebuildDone();
|
||||||
return;
|
return;
|
||||||
@@ -1914,7 +1941,7 @@ struct BuildVehicleWindow : BuildVehicleWindowBase {
|
|||||||
EngList_Sort(this->eng_list, _engine_sort_functions[this->vehicle_type][this->sort_criteria]);
|
EngList_Sort(this->eng_list, _engine_sort_functions[this->vehicle_type][this->sort_criteria]);
|
||||||
|
|
||||||
this->eng_list.swap(list);
|
this->eng_list.swap(list);
|
||||||
AddChildren(this->eng_list, list, INVALID_ENGINE, 0);
|
GUIEngineListAddChildren(this->eng_list, list, INVALID_ENGINE, 0);
|
||||||
this->eng_list.shrink_to_fit();
|
this->eng_list.shrink_to_fit();
|
||||||
this->eng_list.RebuildDone();
|
this->eng_list.RebuildDone();
|
||||||
}
|
}
|
||||||
@@ -2083,43 +2110,43 @@ struct BuildVehicleWindow : BuildVehicleWindowBase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
case WID_BV_LIST:
|
case WID_BV_LIST:
|
||||||
resize->height = GetEngineListHeight(this->vehicle_type);
|
resize.height = GetEngineListHeight(this->vehicle_type);
|
||||||
size->height = 3 * resize->height;
|
size.height = 3 * resize.height;
|
||||||
size->width = std::max(size->width, GetVehicleImageCellSize(this->vehicle_type, EIT_PURCHASE).extend_left + GetVehicleImageCellSize(this->vehicle_type, EIT_PURCHASE).extend_right + 165) + padding.width;
|
size.width = std::max(size.width, GetVehicleImageCellSize(this->vehicle_type, EIT_PURCHASE).extend_left + GetVehicleImageCellSize(this->vehicle_type, EIT_PURCHASE).extend_right + 165) + padding.width;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_BV_PANEL:
|
case WID_BV_PANEL:
|
||||||
size->height = GetCharacterHeight(FS_NORMAL) * this->details_height + padding.height;
|
size.height = GetCharacterHeight(FS_NORMAL) * this->details_height + padding.height;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_BV_SORT_ASCENDING_DESCENDING: {
|
case WID_BV_SORT_ASCENDING_DESCENDING: {
|
||||||
Dimension d = GetStringBoundingBox(this->GetWidget<NWidgetCore>(widget)->widget_data);
|
Dimension d = GetStringBoundingBox(this->GetWidget<NWidgetCore>(widget)->widget_data);
|
||||||
d.width += padding.width + Window::SortButtonWidth() * 2; // Doubled since the string is centred and it also looks better.
|
d.width += padding.width + Window::SortButtonWidth() * 2; // Doubled since the string is centred and it also looks better.
|
||||||
d.height += padding.height;
|
d.height += padding.height;
|
||||||
*size = maxdim(*size, d);
|
size = maxdim(size, d);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case WID_BV_CARGO_FILTER_DROPDOWN:
|
case WID_BV_CARGO_FILTER_DROPDOWN:
|
||||||
size->width = std::max(size->width, GetDropDownListDimension(this->BuildCargoDropDownList()).width + padding.width);
|
size.width = std::max(size.width, GetDropDownListDimension(this->BuildCargoDropDownList()).width + padding.width);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_BV_BUILD:
|
case WID_BV_BUILD:
|
||||||
*size = GetStringBoundingBox(STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_BUTTON + this->vehicle_type);
|
size = GetStringBoundingBox(STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_BUTTON + this->vehicle_type);
|
||||||
*size = maxdim(*size, GetStringBoundingBox(STR_BUY_VEHICLE_TRAIN_BUY_REFIT_VEHICLE_BUTTON + this->vehicle_type));
|
size = maxdim(size, GetStringBoundingBox(STR_BUY_VEHICLE_TRAIN_BUY_REFIT_VEHICLE_BUTTON + this->vehicle_type));
|
||||||
size->width += padding.width;
|
size.width += padding.width;
|
||||||
size->height += padding.height;
|
size.height += padding.height;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_BV_SHOW_HIDE:
|
case WID_BV_SHOW_HIDE:
|
||||||
*size = GetStringBoundingBox(STR_BUY_VEHICLE_TRAIN_HIDE_TOGGLE_BUTTON + this->vehicle_type);
|
size = GetStringBoundingBox(STR_BUY_VEHICLE_TRAIN_HIDE_TOGGLE_BUTTON + this->vehicle_type);
|
||||||
*size = maxdim(*size, GetStringBoundingBox(STR_BUY_VEHICLE_TRAIN_SHOW_TOGGLE_BUTTON + this->vehicle_type));
|
size = maxdim(size, GetStringBoundingBox(STR_BUY_VEHICLE_TRAIN_SHOW_TOGGLE_BUTTON + this->vehicle_type));
|
||||||
size->width += padding.width;
|
size.width += padding.width;
|
||||||
size->height += padding.height;
|
size.height += padding.height;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2677,10 +2704,10 @@ struct BuildVehicleWindowTrainAdvanced final : BuildVehicleWindowBase {
|
|||||||
GUIEngineList list;
|
GUIEngineList list;
|
||||||
|
|
||||||
this->GenerateBuildTrainList(list, this->loco, false, _sorter_loco);
|
this->GenerateBuildTrainList(list, this->loco, false, _sorter_loco);
|
||||||
AddChildren(this->loco.eng_list, list, INVALID_ENGINE, 0);
|
GUIEngineListAddChildren(this->loco.eng_list, list, INVALID_ENGINE, 0);
|
||||||
|
|
||||||
this->GenerateBuildTrainList(list, this->wagon, true, _sorter_wagon);
|
this->GenerateBuildTrainList(list, this->wagon, true, _sorter_wagon);
|
||||||
AddChildren(this->wagon.eng_list, list, INVALID_ENGINE, 0);
|
GUIEngineListAddChildren(this->wagon.eng_list, list, INVALID_ENGINE, 0);
|
||||||
|
|
||||||
this->loco.eng_list.shrink_to_fit();
|
this->loco.eng_list.shrink_to_fit();
|
||||||
this->loco.eng_list.RebuildDone();
|
this->loco.eng_list.RebuildDone();
|
||||||
@@ -2987,17 +3014,17 @@ struct BuildVehicleWindowTrainAdvanced final : BuildVehicleWindowBase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, const Dimension &padding, Dimension &fill, Dimension &resize) override
|
||||||
{
|
{
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
case WID_BV_LIST_LOCO: {
|
case WID_BV_LIST_LOCO: {
|
||||||
resize->height = GetEngineListHeight(this->vehicle_type);
|
resize.height = GetEngineListHeight(this->vehicle_type);
|
||||||
size->height = 3 * resize->height;
|
size.height = 3 * resize.height;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case WID_BV_PANEL_LOCO: {
|
case WID_BV_PANEL_LOCO: {
|
||||||
size->height = this->loco.details_height;
|
size.height = this->loco.details_height;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3005,18 +3032,18 @@ struct BuildVehicleWindowTrainAdvanced final : BuildVehicleWindowBase {
|
|||||||
Dimension d = GetStringBoundingBox(this->GetWidget<NWidgetCore>(widget)->widget_data);
|
Dimension d = GetStringBoundingBox(this->GetWidget<NWidgetCore>(widget)->widget_data);
|
||||||
d.width += padding.width + Window::SortButtonWidth() * 2; // Doubled since the string is centred and it also looks better.
|
d.width += padding.width + Window::SortButtonWidth() * 2; // Doubled since the string is centred and it also looks better.
|
||||||
d.height += padding.height;
|
d.height += padding.height;
|
||||||
*size = maxdim(*size, d);
|
size = maxdim(size, d);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case WID_BV_LIST_WAGON: {
|
case WID_BV_LIST_WAGON: {
|
||||||
resize->height = GetEngineListHeight(this->vehicle_type);
|
resize.height = GetEngineListHeight(this->vehicle_type);
|
||||||
size->height = 3 * resize->height;
|
size.height = 3 * resize.height;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case WID_BV_PANEL_WAGON: {
|
case WID_BV_PANEL_WAGON: {
|
||||||
size->height = this->wagon.details_height;
|
size.height = this->wagon.details_height;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3024,22 +3051,22 @@ struct BuildVehicleWindowTrainAdvanced final : BuildVehicleWindowBase {
|
|||||||
Dimension d = GetStringBoundingBox(this->GetWidget<NWidgetCore>(widget)->widget_data);
|
Dimension d = GetStringBoundingBox(this->GetWidget<NWidgetCore>(widget)->widget_data);
|
||||||
d.width += padding.width + Window::SortButtonWidth() * 2; // Doubled since the string is centred and it also looks better.
|
d.width += padding.width + Window::SortButtonWidth() * 2; // Doubled since the string is centred and it also looks better.
|
||||||
d.height += padding.height;
|
d.height += padding.height;
|
||||||
*size = maxdim(*size, d);
|
size = maxdim(size, d);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case WID_BV_SHOW_HIDE_LOCO: // Fallthrough
|
case WID_BV_SHOW_HIDE_LOCO: // Fallthrough
|
||||||
case WID_BV_SHOW_HIDE_WAGON:
|
case WID_BV_SHOW_HIDE_WAGON:
|
||||||
case WID_BV_COMB_SHOW_HIDE: {
|
case WID_BV_COMB_SHOW_HIDE: {
|
||||||
*size = GetStringBoundingBox(STR_BUY_VEHICLE_TRAIN_HIDE_TOGGLE_BUTTON + this->vehicle_type);
|
size = GetStringBoundingBox(STR_BUY_VEHICLE_TRAIN_HIDE_TOGGLE_BUTTON + this->vehicle_type);
|
||||||
*size = maxdim(*size, GetStringBoundingBox(STR_BUY_VEHICLE_TRAIN_SHOW_TOGGLE_BUTTON + this->vehicle_type));
|
size = maxdim(size, GetStringBoundingBox(STR_BUY_VEHICLE_TRAIN_SHOW_TOGGLE_BUTTON + this->vehicle_type));
|
||||||
size->width += padding.width;
|
size.width += padding.width;
|
||||||
size->height += padding.height;
|
size.height += padding.height;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case WID_BV_RENAME_LOCO: {
|
case WID_BV_RENAME_LOCO: {
|
||||||
*size = maxdim(*size, NWidgetLeaf::GetResizeBoxDimension());
|
size = maxdim(size, NWidgetLeaf::GetResizeBoxDimension());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -330,7 +330,7 @@ struct CheatWindow : Window {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
if (widget != WID_C_PANEL) return;
|
if (widget != WID_C_PANEL) return;
|
||||||
|
|
||||||
@@ -379,8 +379,8 @@ struct CheatWindow : Window {
|
|||||||
this->line_height = std::max<uint>(this->line_height, SETTING_BUTTON_HEIGHT);
|
this->line_height = std::max<uint>(this->line_height, SETTING_BUTTON_HEIGHT);
|
||||||
this->line_height = std::max<uint>(this->line_height, GetCharacterHeight(FS_NORMAL)) + WidgetDimensions::scaled.framerect.Vertical();
|
this->line_height = std::max<uint>(this->line_height, GetCharacterHeight(FS_NORMAL)) + WidgetDimensions::scaled.framerect.Vertical();
|
||||||
|
|
||||||
size->width = width + WidgetDimensions::scaled.hsep_wide * 4 + this->box.width + SETTING_BUTTON_WIDTH /* stuff on the left */ + WidgetDimensions::scaled.hsep_wide * 2 /* extra spacing on right */;
|
size.width = width + WidgetDimensions::scaled.hsep_wide * 4 + this->box.width + SETTING_BUTTON_WIDTH /* stuff on the left */ + WidgetDimensions::scaled.hsep_wide * 2 /* extra spacing on right */;
|
||||||
size->height = WidgetDimensions::scaled.framerect.Vertical() + this->line_height * lines;
|
size.height = WidgetDimensions::scaled.framerect.Vertical() + this->line_height * lines;
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnClick([[maybe_unused]] Point pt, WidgetID widget, [[maybe_unused]] int click_count) override
|
void OnClick([[maybe_unused]] Point pt, WidgetID widget, [[maybe_unused]] int click_count) override
|
||||||
|
@@ -387,29 +387,29 @@ struct CompanyFinancesWindow : Window {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
case WID_CF_EXPS_CATEGORY:
|
case WID_CF_EXPS_CATEGORY:
|
||||||
size->width = GetMaxCategoriesWidth();
|
size.width = GetMaxCategoriesWidth();
|
||||||
size->height = GetTotalCategoriesHeight();
|
size.height = GetTotalCategoriesHeight();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_CF_EXPS_PRICE1:
|
case WID_CF_EXPS_PRICE1:
|
||||||
case WID_CF_EXPS_PRICE2:
|
case WID_CF_EXPS_PRICE2:
|
||||||
case WID_CF_EXPS_PRICE3:
|
case WID_CF_EXPS_PRICE3:
|
||||||
size->height = GetTotalCategoriesHeight();
|
size.height = GetTotalCategoriesHeight();
|
||||||
[[fallthrough]];
|
[[fallthrough]];
|
||||||
|
|
||||||
case WID_CF_BALANCE_VALUE:
|
case WID_CF_BALANCE_VALUE:
|
||||||
case WID_CF_LOAN_VALUE:
|
case WID_CF_LOAN_VALUE:
|
||||||
case WID_CF_OWN_VALUE:
|
case WID_CF_OWN_VALUE:
|
||||||
SetDParamMaxValue(0, this->max_money);
|
SetDParamMaxValue(0, this->max_money);
|
||||||
size->width = std::max(GetStringBoundingBox(STR_FINANCES_NEGATIVE_INCOME).width, GetStringBoundingBox(STR_FINANCES_POSITIVE_INCOME).width) + padding.width;
|
size.width = std::max(GetStringBoundingBox(STR_FINANCES_NEGATIVE_INCOME).width, GetStringBoundingBox(STR_FINANCES_POSITIVE_INCOME).width) + padding.width;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_CF_INTEREST_RATE:
|
case WID_CF_INTEREST_RATE:
|
||||||
size->height = GetCharacterHeight(FS_NORMAL);
|
size.height = GetCharacterHeight(FS_NORMAL);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -761,7 +761,7 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
case WID_SCL_SPACER_DROPDOWN: {
|
case WID_SCL_SPACER_DROPDOWN: {
|
||||||
@@ -779,7 +779,7 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
size->width = std::max(size->width, 5 + d.width + padding.width);
|
size.width = std::max(size.width, 5 + d.width + padding.width);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -788,15 +788,15 @@ public:
|
|||||||
this->square = GetSpriteSize(SPR_SQUARE);
|
this->square = GetSpriteSize(SPR_SQUARE);
|
||||||
this->line_height = std::max(this->square.height, (uint)GetCharacterHeight(FS_NORMAL)) + padding.height;
|
this->line_height = std::max(this->square.height, (uint)GetCharacterHeight(FS_NORMAL)) + padding.height;
|
||||||
|
|
||||||
size->height = 5 * this->line_height;
|
size.height = 5 * this->line_height;
|
||||||
resize->width = 1;
|
resize.width = 1;
|
||||||
resize->height = this->line_height;
|
resize.height = this->line_height;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case WID_SCL_SEC_COL_DROPDOWN:
|
case WID_SCL_SEC_COL_DROPDOWN:
|
||||||
if (!_loaded_newgrf_features.has_2CC) {
|
if (!_loaded_newgrf_features.has_2CC) {
|
||||||
size->width = 0;
|
size.width = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
[[fallthrough]];
|
[[fallthrough]];
|
||||||
@@ -805,9 +805,9 @@ public:
|
|||||||
this->square = GetSpriteSize(SPR_SQUARE);
|
this->square = GetSpriteSize(SPR_SQUARE);
|
||||||
int string_padding = this->square.width + WidgetDimensions::scaled.hsep_normal + padding.width;
|
int string_padding = this->square.width + WidgetDimensions::scaled.hsep_normal + padding.width;
|
||||||
for (Colours colour = COLOUR_BEGIN; colour != COLOUR_END; colour++) {
|
for (Colours colour = COLOUR_BEGIN; colour != COLOUR_END; colour++) {
|
||||||
size->width = std::max(size->width, GetStringBoundingBox(STR_COLOUR_DARK_BLUE + colour).width + string_padding);
|
size.width = std::max(size.width, GetStringBoundingBox(STR_COLOUR_DARK_BLUE + colour).width + string_padding);
|
||||||
}
|
}
|
||||||
size->width = std::max(size->width, GetStringBoundingBox(STR_COLOUR_DEFAULT).width + string_padding);
|
size.width = std::max(size.width, GetStringBoundingBox(STR_COLOUR_DEFAULT).width + string_padding);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1448,31 +1448,31 @@ public:
|
|||||||
this->number_dim = number_dim;
|
this->number_dim = number_dim;
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
case WID_SCMF_HAS_MOUSTACHE_EARRING_TEXT:
|
case WID_SCMF_HAS_MOUSTACHE_EARRING_TEXT:
|
||||||
*size = maxdim(*size, GetStringBoundingBox(STR_FACE_EARRING));
|
size = maxdim(size, GetStringBoundingBox(STR_FACE_EARRING));
|
||||||
*size = maxdim(*size, GetStringBoundingBox(STR_FACE_MOUSTACHE));
|
size = maxdim(size, GetStringBoundingBox(STR_FACE_MOUSTACHE));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_SCMF_TIE_EARRING_TEXT:
|
case WID_SCMF_TIE_EARRING_TEXT:
|
||||||
*size = maxdim(*size, GetStringBoundingBox(STR_FACE_EARRING));
|
size = maxdim(size, GetStringBoundingBox(STR_FACE_EARRING));
|
||||||
*size = maxdim(*size, GetStringBoundingBox(STR_FACE_TIE));
|
size = maxdim(size, GetStringBoundingBox(STR_FACE_TIE));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_SCMF_LIPS_MOUSTACHE_TEXT:
|
case WID_SCMF_LIPS_MOUSTACHE_TEXT:
|
||||||
*size = maxdim(*size, GetStringBoundingBox(STR_FACE_LIPS));
|
size = maxdim(size, GetStringBoundingBox(STR_FACE_LIPS));
|
||||||
*size = maxdim(*size, GetStringBoundingBox(STR_FACE_MOUSTACHE));
|
size = maxdim(size, GetStringBoundingBox(STR_FACE_MOUSTACHE));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_SCMF_FACE:
|
case WID_SCMF_FACE:
|
||||||
*size = maxdim(*size, GetScaledSpriteSize(SPR_GRADIENT));
|
size = maxdim(size, GetScaledSpriteSize(SPR_GRADIENT));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_SCMF_HAS_MOUSTACHE_EARRING:
|
case WID_SCMF_HAS_MOUSTACHE_EARRING:
|
||||||
case WID_SCMF_HAS_GLASSES:
|
case WID_SCMF_HAS_GLASSES:
|
||||||
*size = this->yesno_dim;
|
size = this->yesno_dim;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_SCMF_EYECOLOUR:
|
case WID_SCMF_EYECOLOUR:
|
||||||
@@ -1485,7 +1485,7 @@ public:
|
|||||||
case WID_SCMF_COLLAR:
|
case WID_SCMF_COLLAR:
|
||||||
case WID_SCMF_TIE_EARRING:
|
case WID_SCMF_TIE_EARRING:
|
||||||
case WID_SCMF_GLASSES:
|
case WID_SCMF_GLASSES:
|
||||||
*size = this->number_dim;
|
size = this->number_dim;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1876,7 +1876,7 @@ struct CompanyInfrastructureWindow : Window
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
const Company *c = Company::Get((CompanyID)this->window_number);
|
const Company *c = Company::Get((CompanyID)this->window_number);
|
||||||
|
|
||||||
@@ -1884,24 +1884,24 @@ struct CompanyInfrastructureWindow : Window
|
|||||||
case WID_CI_DESC: {
|
case WID_CI_DESC: {
|
||||||
uint rail_lines = 1; // Starts at 1 because a line is also required for the section title
|
uint rail_lines = 1; // Starts at 1 because a line is also required for the section title
|
||||||
|
|
||||||
size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_RAIL_SECT).width);
|
size.width = std::max(size.width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_RAIL_SECT).width);
|
||||||
|
|
||||||
for (const auto &rt : _sorted_railtypes) {
|
for (const auto &rt : _sorted_railtypes) {
|
||||||
if (HasBit(this->railtypes, rt)) {
|
if (HasBit(this->railtypes, rt)) {
|
||||||
rail_lines++;
|
rail_lines++;
|
||||||
size->width = std::max(size->width, GetStringBoundingBox(GetRailTypeInfo(rt)->strings.name).width + WidgetDimensions::scaled.hsep_indent);
|
size.width = std::max(size.width, GetStringBoundingBox(GetRailTypeInfo(rt)->strings.name).width + WidgetDimensions::scaled.hsep_indent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (this->railtypes != RAILTYPES_NONE) {
|
if (this->railtypes != RAILTYPES_NONE) {
|
||||||
rail_lines++;
|
rail_lines++;
|
||||||
size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_SIGNALS).width + WidgetDimensions::scaled.hsep_indent);
|
size.width = std::max(size.width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_SIGNALS).width + WidgetDimensions::scaled.hsep_indent);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint road_lines = 1; // Starts at 1 because a line is also required for the section title
|
uint road_lines = 1; // Starts at 1 because a line is also required for the section title
|
||||||
uint tram_lines = 1;
|
uint tram_lines = 1;
|
||||||
|
|
||||||
size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_ROAD_SECT).width);
|
size.width = std::max(size.width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_ROAD_SECT).width);
|
||||||
size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_TRAM_SECT).width);
|
size.width = std::max(size.width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_TRAM_SECT).width);
|
||||||
|
|
||||||
for (const auto &rt : _sorted_roadtypes) {
|
for (const auto &rt : _sorted_roadtypes) {
|
||||||
if (HasBit(this->roadtypes, rt)) {
|
if (HasBit(this->roadtypes, rt)) {
|
||||||
@@ -1910,18 +1910,18 @@ struct CompanyInfrastructureWindow : Window
|
|||||||
} else {
|
} else {
|
||||||
tram_lines++;
|
tram_lines++;
|
||||||
}
|
}
|
||||||
size->width = std::max(size->width, GetStringBoundingBox(GetRoadTypeInfo(rt)->strings.name).width + WidgetDimensions::scaled.hsep_indent);
|
size.width = std::max(size.width, GetStringBoundingBox(GetRoadTypeInfo(rt)->strings.name).width + WidgetDimensions::scaled.hsep_indent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_WATER_SECT).width);
|
size.width = std::max(size.width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_WATER_SECT).width);
|
||||||
size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_CANALS).width + WidgetDimensions::scaled.hsep_indent);
|
size.width = std::max(size.width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_CANALS).width + WidgetDimensions::scaled.hsep_indent);
|
||||||
|
|
||||||
size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_STATION_SECT).width);
|
size.width = std::max(size.width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_STATION_SECT).width);
|
||||||
size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_STATIONS).width + WidgetDimensions::scaled.hsep_indent);
|
size.width = std::max(size.width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_STATIONS).width + WidgetDimensions::scaled.hsep_indent);
|
||||||
size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_AIRPORTS).width + WidgetDimensions::scaled.hsep_indent);
|
size.width = std::max(size.width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_AIRPORTS).width + WidgetDimensions::scaled.hsep_indent);
|
||||||
|
|
||||||
size->width += padding.width;
|
size.width += padding.width;
|
||||||
|
|
||||||
uint total_height = ((rail_lines + road_lines + tram_lines + 2 + 3) * GetCharacterHeight(FS_NORMAL)) + (4 * WidgetDimensions::scaled.vsep_sparse);
|
uint total_height = ((rail_lines + road_lines + tram_lines + 2 + 3) * GetCharacterHeight(FS_NORMAL)) + (4 * WidgetDimensions::scaled.vsep_sparse);
|
||||||
|
|
||||||
@@ -1930,9 +1930,9 @@ struct CompanyInfrastructureWindow : Window
|
|||||||
|
|
||||||
this->vscroll->SetCount(total_height);
|
this->vscroll->SetCount(total_height);
|
||||||
|
|
||||||
size->height = std::max(size->height, std::min<uint>(8 * GetCharacterHeight(FS_NORMAL), total_height));
|
size.height = std::max(size.height, std::min<uint>(8 * GetCharacterHeight(FS_NORMAL), total_height));
|
||||||
uint target_height = std::min<uint>(40 * GetCharacterHeight(FS_NORMAL), total_height);
|
uint target_height = std::min<uint>(40 * GetCharacterHeight(FS_NORMAL), total_height);
|
||||||
this->height_extra = (target_height > size->height) ? (target_height - size->height) : 0;
|
this->height_extra = (target_height > size.height) ? (target_height - size.height) : 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1967,13 +1967,13 @@ struct CompanyInfrastructureWindow : Window
|
|||||||
if (_settings_game.economy.infrastructure_maintenance) {
|
if (_settings_game.economy.infrastructure_maintenance) {
|
||||||
SetDParamMaxValue(0, this->GetTotalMaintenanceCost() * 12); // Convert to per year
|
SetDParamMaxValue(0, this->GetTotalMaintenanceCost() * 12); // Convert to per year
|
||||||
this->total_width = GetStringBoundingBox(EconTime::UsingWallclockUnits() ? STR_COMPANY_INFRASTRUCTURE_VIEW_TOTAL_PERIOD : STR_COMPANY_INFRASTRUCTURE_VIEW_TOTAL_YEAR).width + WidgetDimensions::scaled.hsep_indent * 2;
|
this->total_width = GetStringBoundingBox(EconTime::UsingWallclockUnits() ? STR_COMPANY_INFRASTRUCTURE_VIEW_TOTAL_PERIOD : STR_COMPANY_INFRASTRUCTURE_VIEW_TOTAL_YEAR).width + WidgetDimensions::scaled.hsep_indent * 2;
|
||||||
size->width = std::max(size->width, this->total_width);
|
size.width = std::max(size.width, this->total_width);
|
||||||
|
|
||||||
SetDParamMaxValue(0, max_cost * 12); // Convert to per year
|
SetDParamMaxValue(0, max_cost * 12); // Convert to per year
|
||||||
count_width += std::max(this->total_width, GetStringBoundingBox(EconTime::UsingWallclockUnits() ? STR_COMPANY_INFRASTRUCTURE_VIEW_TOTAL_PERIOD : STR_COMPANY_INFRASTRUCTURE_VIEW_TOTAL_YEAR).width);
|
count_width += std::max(this->total_width, GetStringBoundingBox(EconTime::UsingWallclockUnits() ? STR_COMPANY_INFRASTRUCTURE_VIEW_TOTAL_PERIOD : STR_COMPANY_INFRASTRUCTURE_VIEW_TOTAL_YEAR).width);
|
||||||
}
|
}
|
||||||
|
|
||||||
size->width = std::max(size->width, count_width);
|
size.width = std::max(size.width, count_width);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2356,11 +2356,11 @@ struct CompanyWindow : Window
|
|||||||
this->DrawWidgets();
|
this->DrawWidgets();
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
case WID_C_FACE:
|
case WID_C_FACE:
|
||||||
*size = maxdim(*size, GetScaledSpriteSize(SPR_GRADIENT));
|
size = maxdim(size, GetScaledSpriteSize(SPR_GRADIENT));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_C_DESC_COLOUR_SCHEME_EXAMPLE: {
|
case WID_C_DESC_COLOUR_SCHEME_EXAMPLE: {
|
||||||
@@ -2368,31 +2368,31 @@ struct CompanyWindow : Window
|
|||||||
Dimension d = GetSpriteSize(SPR_VEH_BUS_SW_VIEW, &offset);
|
Dimension d = GetSpriteSize(SPR_VEH_BUS_SW_VIEW, &offset);
|
||||||
d.width -= offset.x;
|
d.width -= offset.x;
|
||||||
d.height -= offset.y;
|
d.height -= offset.y;
|
||||||
*size = maxdim(*size, d);
|
size = maxdim(size, d);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case WID_C_DESC_COMPANY_VALUE:
|
case WID_C_DESC_COMPANY_VALUE:
|
||||||
SetDParam(0, INT64_MAX); // Arguably the maximum company value
|
SetDParam(0, INT64_MAX); // Arguably the maximum company value
|
||||||
size->width = GetStringBoundingBox(STR_COMPANY_VIEW_COMPANY_VALUE).width;
|
size.width = GetStringBoundingBox(STR_COMPANY_VIEW_COMPANY_VALUE).width;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_C_DESC_VEHICLE_COUNTS:
|
case WID_C_DESC_VEHICLE_COUNTS:
|
||||||
SetDParamMaxValue(0, 5000); // Maximum number of vehicles
|
SetDParamMaxValue(0, 5000); // Maximum number of vehicles
|
||||||
for (uint i = 0; i < lengthof(_company_view_vehicle_count_strings); i++) {
|
for (uint i = 0; i < lengthof(_company_view_vehicle_count_strings); i++) {
|
||||||
size->width = std::max(size->width, GetStringBoundingBox(_company_view_vehicle_count_strings[i]).width + padding.width);
|
size.width = std::max(size.width, GetStringBoundingBox(_company_view_vehicle_count_strings[i]).width + padding.width);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_C_DESC_INFRASTRUCTURE_COUNTS:
|
case WID_C_DESC_INFRASTRUCTURE_COUNTS:
|
||||||
SetDParamMaxValue(0, UINT_MAX);
|
SetDParamMaxValue(0, UINT_MAX);
|
||||||
size->width = GetStringBoundingBox(STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL).width;
|
size.width = GetStringBoundingBox(STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL).width;
|
||||||
size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD).width);
|
size.width = std::max(size.width, GetStringBoundingBox(STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD).width);
|
||||||
size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_INFRASTRUCTURE_WATER).width);
|
size.width = std::max(size.width, GetStringBoundingBox(STR_COMPANY_VIEW_INFRASTRUCTURE_WATER).width);
|
||||||
size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_INFRASTRUCTURE_STATION).width);
|
size.width = std::max(size.width, GetStringBoundingBox(STR_COMPANY_VIEW_INFRASTRUCTURE_STATION).width);
|
||||||
size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_INFRASTRUCTURE_AIRPORT).width);
|
size.width = std::max(size.width, GetStringBoundingBox(STR_COMPANY_VIEW_INFRASTRUCTURE_AIRPORT).width);
|
||||||
size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_INFRASTRUCTURE_NONE).width);
|
size.width = std::max(size.width, GetStringBoundingBox(STR_COMPANY_VIEW_INFRASTRUCTURE_NONE).width);
|
||||||
size->width += padding.width;
|
size.width += padding.width;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_C_DESC_OWNERS: {
|
case WID_C_DESC_OWNERS: {
|
||||||
@@ -2400,7 +2400,7 @@ struct CompanyWindow : Window
|
|||||||
SetDParamMaxValue(0, 75);
|
SetDParamMaxValue(0, 75);
|
||||||
SetDParam(1, c2->index);
|
SetDParam(1, c2->index);
|
||||||
|
|
||||||
size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_SHARES_OWNED_BY).width);
|
size.width = std::max(size.width, GetStringBoundingBox(STR_COMPANY_VIEW_SHARES_OWNED_BY).width);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -2413,20 +2413,20 @@ struct CompanyWindow : Window
|
|||||||
case WID_C_HOSTILE_TAKEOVER:
|
case WID_C_HOSTILE_TAKEOVER:
|
||||||
case WID_C_COMPANY_PASSWORD:
|
case WID_C_COMPANY_PASSWORD:
|
||||||
case WID_C_COMPANY_JOIN:
|
case WID_C_COMPANY_JOIN:
|
||||||
size->width = GetStringBoundingBox(STR_COMPANY_VIEW_VIEW_HQ_BUTTON).width;
|
size.width = GetStringBoundingBox(STR_COMPANY_VIEW_VIEW_HQ_BUTTON).width;
|
||||||
size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_BUILD_HQ_BUTTON).width);
|
size.width = std::max(size.width, GetStringBoundingBox(STR_COMPANY_VIEW_BUILD_HQ_BUTTON).width);
|
||||||
size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_RELOCATE_HQ).width);
|
size.width = std::max(size.width, GetStringBoundingBox(STR_COMPANY_VIEW_RELOCATE_HQ).width);
|
||||||
size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_INFRASTRUCTURE_BUTTON).width);
|
size.width = std::max(size.width, GetStringBoundingBox(STR_COMPANY_VIEW_INFRASTRUCTURE_BUTTON).width);
|
||||||
size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_GIVE_MONEY_BUTTON).width);
|
size.width = std::max(size.width, GetStringBoundingBox(STR_COMPANY_VIEW_GIVE_MONEY_BUTTON).width);
|
||||||
size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_HOSTILE_TAKEOVER_BUTTON).width);
|
size.width = std::max(size.width, GetStringBoundingBox(STR_COMPANY_VIEW_HOSTILE_TAKEOVER_BUTTON).width);
|
||||||
size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_PASSWORD).width);
|
size.width = std::max(size.width, GetStringBoundingBox(STR_COMPANY_VIEW_PASSWORD).width);
|
||||||
size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_JOIN).width);
|
size.width = std::max(size.width, GetStringBoundingBox(STR_COMPANY_VIEW_JOIN).width);
|
||||||
size->width += padding.width;
|
size.width += padding.width;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
case WID_C_HAS_PASSWORD:
|
case WID_C_HAS_PASSWORD:
|
||||||
if (_networking) *size = maxdim(*size, GetSpriteSize(SPR_LOCK));
|
if (_networking) size = maxdim(size, GetSpriteSize(SPR_LOCK));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2807,18 +2807,18 @@ struct BuyCompanyWindow : Window {
|
|||||||
this->Window::Close();
|
this->Window::Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
case WID_BC_FACE:
|
case WID_BC_FACE:
|
||||||
*size = GetScaledSpriteSize(SPR_GRADIENT);
|
size = GetScaledSpriteSize(SPR_GRADIENT);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_BC_QUESTION:
|
case WID_BC_QUESTION:
|
||||||
const Company *c = Company::Get((CompanyID)this->window_number);
|
const Company *c = Company::Get((CompanyID)this->window_number);
|
||||||
SetDParam(0, c->index);
|
SetDParam(0, c->index);
|
||||||
SetDParam(1, this->company_value);
|
SetDParam(1, this->company_value);
|
||||||
size->height = GetStringHeight(this->hostile_takeover ? STR_BUY_COMPANY_HOSTILE_TAKEOVER : STR_BUY_COMPANY_MESSAGE, size->width);
|
size.height = GetStringHeight(this->hostile_takeover ? STR_BUY_COMPANY_HOSTILE_TAKEOVER : STR_BUY_COMPANY_MESSAGE, size.width);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -25,7 +25,7 @@
|
|||||||
template <typename T>
|
template <typename T>
|
||||||
constexpr T abs(const T a)
|
constexpr T abs(const T a)
|
||||||
{
|
{
|
||||||
return (a < (T)0) ? -a : a;
|
return (a < static_cast<T>(0)) ? -a : a;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -41,7 +41,7 @@ constexpr T Align(const T x, uint n)
|
|||||||
{
|
{
|
||||||
assert((n & (n - 1)) == 0 && n != 0);
|
assert((n & (n - 1)) == 0 && n != 0);
|
||||||
n--;
|
n--;
|
||||||
return (T)((x + n) & ~((T)n));
|
return static_cast<T>((x + n) & ~static_cast<T>(n));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -57,8 +57,8 @@ constexpr T Align(const T x, uint n)
|
|||||||
template <typename T>
|
template <typename T>
|
||||||
constexpr T *AlignPtr(T *x, uint n)
|
constexpr T *AlignPtr(T *x, uint n)
|
||||||
{
|
{
|
||||||
static_assert(sizeof(size_t) == sizeof(void *));
|
static_assert(sizeof(uintptr_t) == sizeof(void *));
|
||||||
return reinterpret_cast<T *>(Align((size_t)x, n));
|
return reinterpret_cast<T *>(Align(reinterpret_cast<uintptr_t>(x), n));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -254,7 +254,7 @@ constexpr T Delta(const T a, const T b)
|
|||||||
template <typename T>
|
template <typename T>
|
||||||
constexpr bool IsInsideBS(const T x, const size_t base, const size_t size)
|
constexpr bool IsInsideBS(const T x, const size_t base, const size_t size)
|
||||||
{
|
{
|
||||||
return (size_t)(x - base) < size;
|
return static_cast<size_t>(x - base) < size;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -271,9 +271,9 @@ template <typename T, std::enable_if_t<std::disjunction_v<std::is_convertible<T,
|
|||||||
constexpr bool IsInsideMM(const T x, const size_t min, const size_t max) noexcept
|
constexpr bool IsInsideMM(const T x, const size_t min, const size_t max) noexcept
|
||||||
{
|
{
|
||||||
if constexpr (std::is_base_of_v<StrongTypedefBase, T>) {
|
if constexpr (std::is_base_of_v<StrongTypedefBase, T>) {
|
||||||
return (size_t)(x.base() - min) < (max - min);
|
return static_cast<size_t>(x.base() - min) < (max - min);
|
||||||
} else {
|
} else {
|
||||||
return (size_t)(x - min) < (max - min);
|
return static_cast<size_t>(x - min) < (max - min);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -106,7 +106,7 @@ struct SetDateWindow : Window {
|
|||||||
ShowDropDownList(this, std::move(list), selected, widget);
|
ShowDropDownList(this, std::move(list), selected, widget);
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
Dimension d = {0, 0};
|
Dimension d = {0, 0};
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
@@ -132,7 +132,7 @@ struct SetDateWindow : Window {
|
|||||||
|
|
||||||
d.width += padding.width;
|
d.width += padding.width;
|
||||||
d.height += padding.height;
|
d.height += padding.height;
|
||||||
*size = d;
|
size = d;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetStringParameters(WidgetID widget) const override
|
void SetStringParameters(WidgetID widget) const override
|
||||||
@@ -225,7 +225,7 @@ struct SetMinutesWindow : SetDateWindow
|
|||||||
ShowDropDownList(this, std::move(list), selected, widget);
|
ShowDropDownList(this, std::move(list), selected, widget);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void UpdateWidgetSize(WidgetID widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) override
|
virtual void UpdateWidgetSize(WidgetID widget, Dimension &size, const Dimension &padding, Dimension &fill, Dimension &resize) override
|
||||||
{
|
{
|
||||||
Dimension d = {0, 0};
|
Dimension d = {0, 0};
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
@@ -248,7 +248,7 @@ struct SetMinutesWindow : SetDateWindow
|
|||||||
|
|
||||||
d.width += padding.width;
|
d.width += padding.width;
|
||||||
d.height += padding.height;
|
d.height += padding.height;
|
||||||
*size = d;
|
size = d;
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void SetStringParameters(WidgetID widget) const override
|
virtual void SetStringParameters(WidgetID widget) const override
|
||||||
|
@@ -82,7 +82,7 @@ struct DebugLevel {
|
|||||||
};
|
};
|
||||||
|
|
||||||
#define DEBUG_LEVEL(x) { #x, &_debug_##x##_level }
|
#define DEBUG_LEVEL(x) { #x, &_debug_##x##_level }
|
||||||
static const DebugLevel debug_level[] = {
|
static const DebugLevel _debug_levels[] = {
|
||||||
DEBUG_LEVEL(driver),
|
DEBUG_LEVEL(driver),
|
||||||
DEBUG_LEVEL(grf),
|
DEBUG_LEVEL(grf),
|
||||||
DEBUG_LEVEL(map),
|
DEBUG_LEVEL(map),
|
||||||
@@ -106,7 +106,7 @@ struct DebugLevel {
|
|||||||
DEBUG_LEVEL(random),
|
DEBUG_LEVEL(random),
|
||||||
DEBUG_LEVEL(statecsum),
|
DEBUG_LEVEL(statecsum),
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
#undef DEBUG_LEVEL
|
#undef DEBUG_LEVEL
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -117,20 +117,17 @@ struct DebugLevel {
|
|||||||
*/
|
*/
|
||||||
char *DumpDebugFacilityNames(char *buf, char *last)
|
char *DumpDebugFacilityNames(char *buf, char *last)
|
||||||
{
|
{
|
||||||
size_t length = 0;
|
bool written = false;
|
||||||
for (const DebugLevel *i = debug_level; i != endof(debug_level); ++i) {
|
for (const auto &debug_level : _debug_levels) {
|
||||||
if (length == 0) {
|
if (!written) {
|
||||||
buf = strecpy(buf, "List of debug facility names:\n", last);
|
buf = strecpy(buf, "List of debug facility names:\n", last);
|
||||||
} else {
|
} else {
|
||||||
buf = strecpy(buf, ", ", last);
|
buf = strecpy(buf, ", ", last);
|
||||||
length += 2;
|
|
||||||
}
|
}
|
||||||
buf = strecpy(buf, i->name, last);
|
buf = strecpy(buf, debug_level.name, last);
|
||||||
length += strlen(i->name);
|
written = true;
|
||||||
}
|
|
||||||
if (length > 0) {
|
|
||||||
buf = strecpy(buf, "\n\n", last);
|
|
||||||
}
|
}
|
||||||
|
buf = strecpy(buf, "\n\n", last);
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -243,13 +240,11 @@ void SetDebugString(const char *s, void (*error_func)(const char *))
|
|||||||
|
|
||||||
/* Global debugging level? */
|
/* Global debugging level? */
|
||||||
if (*s >= '0' && *s <= '9') {
|
if (*s >= '0' && *s <= '9') {
|
||||||
const DebugLevel *i;
|
|
||||||
|
|
||||||
v = std::strtoul(s, &end, 0);
|
v = std::strtoul(s, &end, 0);
|
||||||
s = end;
|
s = end;
|
||||||
|
|
||||||
for (i = debug_level; i != endof(debug_level); ++i) {
|
for (const auto &debug_level : _debug_levels) {
|
||||||
new_levels[i->name] = v;
|
new_levels[debug_level.name] = v;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -264,9 +259,9 @@ void SetDebugString(const char *s, void (*error_func)(const char *))
|
|||||||
|
|
||||||
/* check debugging levels */
|
/* check debugging levels */
|
||||||
const DebugLevel *found = nullptr;
|
const DebugLevel *found = nullptr;
|
||||||
for (const DebugLevel *i = debug_level; i != endof(debug_level); ++i) {
|
for (const auto &debug_level : _debug_levels) {
|
||||||
if (s == t + strlen(i->name) && strncmp(t, i->name, s - t) == 0) {
|
if (s == t + strlen(debug_level.name) && strncmp(t, debug_level.name, s - t) == 0) {
|
||||||
found = i;
|
found = &debug_level;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -285,10 +280,10 @@ void SetDebugString(const char *s, void (*error_func)(const char *))
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Apply the changes after parse is successful */
|
/* Apply the changes after parse is successful */
|
||||||
for (const DebugLevel *i = debug_level; i != endof(debug_level); ++i) {
|
for (const auto &debug_level : _debug_levels) {
|
||||||
const auto &nl = new_levels.find(i->name);
|
const auto &nl = new_levels.find(debug_level.name);
|
||||||
if (nl != new_levels.end()) {
|
if (nl != new_levels.end()) {
|
||||||
*i->level = nl->second;
|
*debug_level.level = nl->second;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -301,8 +296,8 @@ void SetDebugString(const char *s, void (*error_func)(const char *))
|
|||||||
std::string GetDebugString()
|
std::string GetDebugString()
|
||||||
{
|
{
|
||||||
std::string result;
|
std::string result;
|
||||||
for (size_t i = 0; i < lengthof(debug_level); i++) {
|
for (const auto &debug_level : _debug_levels) {
|
||||||
result += stdstr_fmt("%s%s=%d", i == 0 ? "" : ", ", debug_level[i].name, *(debug_level[i].level));
|
result += stdstr_fmt("%s%s=%d", result.empty() ? "" : ", ", debug_level.name, *(debug_level.level));
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@@ -302,13 +302,13 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void UpdateWidgetSize(WidgetID widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) override
|
virtual void UpdateWidgetSize(WidgetID widget, Dimension &size, const Dimension &padding, Dimension &fill, Dimension &resize) override
|
||||||
{
|
{
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
case WID_DB_LIST:
|
case WID_DB_LIST:
|
||||||
resize->height = DeparturesWindow::entry_height;
|
resize.height = DeparturesWindow::entry_height;
|
||||||
size->height = 2 * resize->height;
|
size.height = 2 * resize.height;
|
||||||
size->width = this->min_width;
|
size.width = this->min_width;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -655,7 +655,7 @@ struct DepotWindow : Window {
|
|||||||
this->flag_size = maxdim(GetScaledSpriteSize(SPR_FLAG_VEH_STOPPED), GetScaledSpriteSize(SPR_FLAG_VEH_RUNNING));
|
this->flag_size = maxdim(GetScaledSpriteSize(SPR_FLAG_VEH_STOPPED), GetScaledSpriteSize(SPR_FLAG_VEH_RUNNING));
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
case WID_D_MATRIX: {
|
case WID_D_MATRIX: {
|
||||||
@@ -681,18 +681,18 @@ struct DepotWindow : Window {
|
|||||||
}
|
}
|
||||||
int base_width = this->count_width + this->header_width + padding.width;
|
int base_width = this->count_width + this->header_width + padding.width;
|
||||||
|
|
||||||
resize->height = std::max<uint>(this->cell_size.height, min_height + padding.height);
|
resize.height = std::max<uint>(this->cell_size.height, min_height + padding.height);
|
||||||
if (this->type == VEH_TRAIN) {
|
if (this->type == VEH_TRAIN) {
|
||||||
resize->width = 1;
|
resize.width = 1;
|
||||||
size->width = base_width + 2 * ScaleSpriteTrad(29); // about 2 parts
|
size.width = base_width + 2 * ScaleSpriteTrad(29); // about 2 parts
|
||||||
size->height = resize->height * 6;
|
size.height = resize.height * 6;
|
||||||
} else {
|
} else {
|
||||||
resize->width = base_width + this->cell_size.extend_left + this->cell_size.extend_right;
|
resize.width = base_width + this->cell_size.extend_left + this->cell_size.extend_right;
|
||||||
size->width = resize->width * (this->type == VEH_ROAD ? 5 : 3);
|
size.width = resize.width * (this->type == VEH_ROAD ? 5 : 3);
|
||||||
size->height = resize->height * (this->type == VEH_ROAD ? 5 : 3);
|
size.height = resize.height * (this->type == VEH_ROAD ? 5 : 3);
|
||||||
}
|
}
|
||||||
fill->width = resize->width;
|
fill.width = resize.width;
|
||||||
fill->height = resize->height;
|
fill.height = resize.height;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -529,13 +529,13 @@ public:
|
|||||||
UpdateDocksDirection();
|
UpdateDocksDirection();
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
case WID_BDD_X:
|
case WID_BDD_X:
|
||||||
case WID_BDD_Y:
|
case WID_BDD_Y:
|
||||||
size->width = ScaleGUITrad(96) + WidgetDimensions::scaled.fullbevel.Horizontal();
|
size.width = ScaleGUITrad(96) + WidgetDimensions::scaled.fullbevel.Horizontal();
|
||||||
size->height = ScaleGUITrad(64) + WidgetDimensions::scaled.fullbevel.Vertical();
|
size.height = ScaleGUITrad(64) + WidgetDimensions::scaled.fullbevel.Vertical();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -203,9 +203,9 @@ struct DropdownWindow : Window {
|
|||||||
if (this->position.y < button_rect.top && list_dim.height > widget_dim.height) this->vscroll->UpdatePosition(INT_MAX);
|
if (this->position.y < button_rect.top && list_dim.height > widget_dim.height) this->vscroll->UpdatePosition(INT_MAX);
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
if (widget == WID_DM_ITEMS) *size = this->items_dim;
|
if (widget == WID_DM_ITEMS) size = this->items_dim;
|
||||||
}
|
}
|
||||||
|
|
||||||
Point OnInitialPosition([[maybe_unused]] int16_t sm_width, [[maybe_unused]] int16_t sm_height, [[maybe_unused]] int window_number) override
|
Point OnInitialPosition([[maybe_unused]] int16_t sm_width, [[maybe_unused]] int16_t sm_height, [[maybe_unused]] int window_number) override
|
||||||
|
@@ -77,7 +77,7 @@ struct EnginePreviewWindow : Window {
|
|||||||
this->flags |= WF_STICKY;
|
this->flags |= WF_STICKY;
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
if (widget != WID_EP_QUESTION) return;
|
if (widget != WID_EP_QUESTION) return;
|
||||||
|
|
||||||
@@ -97,11 +97,11 @@ struct EnginePreviewWindow : Window {
|
|||||||
}
|
}
|
||||||
this->vehicle_space = std::max<int>(ScaleSpriteTrad(40), y - y_offs);
|
this->vehicle_space = std::max<int>(ScaleSpriteTrad(40), y - y_offs);
|
||||||
|
|
||||||
size->width = std::max(size->width, x + std::abs(x_offs));
|
size.width = std::max(size.width, x + std::abs(x_offs));
|
||||||
SetDParam(0, GetEngineCategoryName(engine));
|
SetDParam(0, GetEngineCategoryName(engine));
|
||||||
size->height = GetStringHeight(STR_ENGINE_PREVIEW_MESSAGE, size->width) + WidgetDimensions::scaled.vsep_wide + GetCharacterHeight(FS_NORMAL) + this->vehicle_space;
|
size.height = GetStringHeight(STR_ENGINE_PREVIEW_MESSAGE, size.width) + WidgetDimensions::scaled.vsep_wide + GetCharacterHeight(FS_NORMAL) + this->vehicle_space;
|
||||||
SetDParam(0, engine);
|
SetDParam(0, engine);
|
||||||
size->height += GetStringHeight(GetEngineInfoString(engine), size->width);
|
size.height += GetStringHeight(GetEngineInfoString(engine), size.width);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DrawWidget(const Rect &r, WidgetID widget) const override
|
void DrawWidget(const Rect &r, WidgetID widget) const override
|
||||||
|
@@ -11,6 +11,7 @@
|
|||||||
#define ENGINE_GUI_H
|
#define ENGINE_GUI_H
|
||||||
|
|
||||||
#include "engine_type.h"
|
#include "engine_type.h"
|
||||||
|
#include "group_type.h"
|
||||||
#include "sortlist_type.h"
|
#include "sortlist_type.h"
|
||||||
#include "gfx_type.h"
|
#include "gfx_type.h"
|
||||||
#include "vehicle_type.h"
|
#include "vehicle_type.h"
|
||||||
@@ -40,9 +41,10 @@ struct GUIEngineListItem {
|
|||||||
EngineID engine_id; ///< Engine to display in build purchase list
|
EngineID engine_id; ///< Engine to display in build purchase list
|
||||||
EngineID variant_id; ///< Variant group of the engine.
|
EngineID variant_id; ///< Variant group of the engine.
|
||||||
EngineDisplayFlags flags; ///< Flags for toggling/drawing (un)folded status and controlling indentation.
|
EngineDisplayFlags flags; ///< Flags for toggling/drawing (un)folded status and controlling indentation.
|
||||||
int8_t indent; ///< Display indentation level.
|
uint8_t indent; ///< Display indentation level.
|
||||||
|
uint16_t level_mask; ///< Mask of level continuations.
|
||||||
|
|
||||||
GUIEngineListItem(EngineID engine_id, EngineID variant_id, EngineDisplayFlags flags, int indent) : engine_id(engine_id), variant_id(variant_id), flags(flags), indent(indent) {}
|
GUIEngineListItem(EngineID engine_id, EngineID variant_id, EngineDisplayFlags flags, uint8_t indent) : engine_id(engine_id), variant_id(variant_id), flags(flags), indent(indent), level_mask(0) {}
|
||||||
|
|
||||||
/* Used when searching list only by engine_id. */
|
/* Used when searching list only by engine_id. */
|
||||||
bool operator == (const EngineID &other) const { return this->engine_id == other; }
|
bool operator == (const EngineID &other) const { return this->engine_id == other; }
|
||||||
@@ -70,7 +72,10 @@ extern bool _engine_sort_show_hidden_engines[];
|
|||||||
extern const StringID _engine_sort_listing[][14];
|
extern const StringID _engine_sort_listing[][14];
|
||||||
extern EngList_SortTypeFunction * const _engine_sort_functions[][13];
|
extern EngList_SortTypeFunction * const _engine_sort_functions[][13];
|
||||||
|
|
||||||
|
/* Functions in build_vehicle_gui.cpp */
|
||||||
uint GetEngineListHeight(VehicleType type);
|
uint GetEngineListHeight(VehicleType type);
|
||||||
void DisplayVehicleSortDropDown(Window *w, VehicleType vehicle_type, int selected, WidgetID button);
|
void DisplayVehicleSortDropDown(Window *w, VehicleType vehicle_type, int selected, WidgetID button);
|
||||||
|
void DrawEngineList(VehicleType type, const Rect &r, const GUIEngineList &eng_list, const class Scrollbar &sb, EngineID selected_id, bool show_count, GroupID selected_group);
|
||||||
|
void GUIEngineListAddChildren(GUIEngineList &dst, const GUIEngineList &src, EngineID parent = INVALID_ENGINE, uint8_t indent = 0);
|
||||||
|
|
||||||
#endif /* ENGINE_GUI_H */
|
#endif /* ENGINE_GUI_H */
|
||||||
|
@@ -178,27 +178,28 @@ public:
|
|||||||
this->InitNested();
|
this->InitNested();
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
case WID_EM_MESSAGE: {
|
case WID_EM_MESSAGE: {
|
||||||
CopyInDParam(this->params);
|
CopyInDParam(this->params);
|
||||||
if (this->textref_stack_size > 0) StartTextRefStackUsage(this->textref_stack_grffile, this->textref_stack_size, this->textref_stack);
|
if (this->textref_stack_size > 0) StartTextRefStackUsage(this->textref_stack_grffile, this->textref_stack_size, this->textref_stack);
|
||||||
|
|
||||||
this->height_summary = GetStringHeight(this->summary_msg, size->width);
|
this->height_summary = GetStringHeight(this->summary_msg, size.width);
|
||||||
this->height_detailed = (this->detailed_msg == INVALID_STRING_ID) ? 0 : GetStringHeight(this->detailed_msg, size->width);
|
this->height_detailed = (this->detailed_msg == INVALID_STRING_ID) ? 0 : GetStringHeight(this->detailed_msg, size.width);
|
||||||
this->height_extra = (this->extra_msg == INVALID_STRING_ID) ? 0 : GetStringHeight(this->extra_msg, size->width);
|
this->height_extra = (this->extra_msg == INVALID_STRING_ID) ? 0 : GetStringHeight(this->extra_msg, size.width);
|
||||||
|
|
||||||
if (this->textref_stack_size > 0) StopTextRefStackUsage();
|
if (this->textref_stack_size > 0) StopTextRefStackUsage();
|
||||||
|
|
||||||
uint panel_height = this->height_summary;
|
uint panel_height = this->height_summary;
|
||||||
if (this->detailed_msg != INVALID_STRING_ID) panel_height += this->height_detailed + WidgetDimensions::scaled.vsep_wide;
|
if (this->detailed_msg != INVALID_STRING_ID) panel_height += this->height_detailed + WidgetDimensions::scaled.vsep_wide;
|
||||||
if (this->extra_msg != INVALID_STRING_ID) panel_height += this->height_extra + WidgetDimensions::scaled.vsep_wide;
|
if (this->extra_msg != INVALID_STRING_ID) panel_height += this->height_extra + WidgetDimensions::scaled.vsep_wide;
|
||||||
size->height = std::max(size->height, panel_height);
|
|
||||||
|
size.height = std::max(size.height, panel_height);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case WID_EM_FACE:
|
case WID_EM_FACE:
|
||||||
*size = maxdim(*size, GetScaledSpriteSize(SPR_GRADIENT));
|
size = maxdim(size, GetScaledSpriteSize(SPR_GRADIENT));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -343,7 +344,7 @@ void ShowFirstError()
|
|||||||
*/
|
*/
|
||||||
void UnshowCriticalError()
|
void UnshowCriticalError()
|
||||||
{
|
{
|
||||||
ErrmsgWindow *w = (ErrmsgWindow*)FindWindowById(WC_ERRMSG, 0);
|
ErrmsgWindow *w = dynamic_cast<ErrmsgWindow *>(FindWindowById(WC_ERRMSG, 0));
|
||||||
if (_window_system_initialized && w != nullptr) {
|
if (_window_system_initialized && w != nullptr) {
|
||||||
if (w->IsCritical()) _error_list.push_front(*w);
|
if (w->IsCritical()) _error_list.push_front(*w);
|
||||||
_window_system_initialized = false;
|
_window_system_initialized = false;
|
||||||
@@ -399,7 +400,7 @@ void ShowErrorMessage(StringID summary_msg, StringID detailed_msg, WarningLevel
|
|||||||
ErrorMessageData data(summary_msg, detailed_msg, no_timeout ? 0 : _settings_client.gui.errmsg_duration, x, y, textref_stack_grffile, textref_stack_size, textref_stack, extra_msg);
|
ErrorMessageData data(summary_msg, detailed_msg, no_timeout ? 0 : _settings_client.gui.errmsg_duration, x, y, textref_stack_grffile, textref_stack_size, textref_stack, extra_msg);
|
||||||
data.CopyOutDParams();
|
data.CopyOutDParams();
|
||||||
|
|
||||||
ErrmsgWindow *w = (ErrmsgWindow*)FindWindowById(WC_ERRMSG, 0);
|
ErrmsgWindow *w = dynamic_cast<ErrmsgWindow *>(FindWindowById(WC_ERRMSG, 0));
|
||||||
if (w != nullptr) {
|
if (w != nullptr) {
|
||||||
if (w->IsCritical()) {
|
if (w->IsCritical()) {
|
||||||
/* A critical error is currently shown. */
|
/* A critical error is currently shown. */
|
||||||
@@ -423,7 +424,7 @@ void ShowErrorMessage(StringID summary_msg, StringID detailed_msg, WarningLevel
|
|||||||
*/
|
*/
|
||||||
bool HideActiveErrorMessage()
|
bool HideActiveErrorMessage()
|
||||||
{
|
{
|
||||||
ErrmsgWindow *w = (ErrmsgWindow*)FindWindowById(WC_ERRMSG, 0);
|
ErrmsgWindow *w = dynamic_cast<ErrmsgWindow *>(FindWindowById(WC_ERRMSG, 0));
|
||||||
if (w == nullptr) return false;
|
if (w == nullptr) return false;
|
||||||
w->Close();
|
w->Close();
|
||||||
return true;
|
return true;
|
||||||
|
@@ -586,23 +586,23 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
case WID_SL_BACKGROUND:
|
case WID_SL_BACKGROUND:
|
||||||
size->height = 2 * GetCharacterHeight(FS_NORMAL) + padding.height;
|
size.height = 2 * GetCharacterHeight(FS_NORMAL) + padding.height;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_SL_DRIVES_DIRECTORIES_LIST:
|
case WID_SL_DRIVES_DIRECTORIES_LIST:
|
||||||
resize->height = GetCharacterHeight(FS_NORMAL);
|
resize.height = GetCharacterHeight(FS_NORMAL);
|
||||||
size->height = resize->height * 10 + padding.height;
|
size.height = resize.height * 10 + padding.height;
|
||||||
break;
|
break;
|
||||||
case WID_SL_SORT_BYNAME:
|
case WID_SL_SORT_BYNAME:
|
||||||
case WID_SL_SORT_BYDATE: {
|
case WID_SL_SORT_BYDATE: {
|
||||||
Dimension d = GetStringBoundingBox(this->GetWidget<NWidgetCore>(widget)->widget_data);
|
Dimension d = GetStringBoundingBox(this->GetWidget<NWidgetCore>(widget)->widget_data);
|
||||||
d.width += padding.width + Window::SortButtonWidth() * 2; // Doubled since the string is centred and it also looks better.
|
d.width += padding.width + Window::SortButtonWidth() * 2; // Doubled since the string is centred and it also looks better.
|
||||||
d.height += padding.height;
|
d.height += padding.height;
|
||||||
*size = maxdim(*size, d);
|
size = maxdim(size, d);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -535,32 +535,32 @@ struct FramerateWindow : Window {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
case WID_FRW_RATE_GAMELOOP:
|
case WID_FRW_RATE_GAMELOOP:
|
||||||
SetDParam(0, STR_FRAMERATE_FPS_GOOD);
|
SetDParam(0, STR_FRAMERATE_FPS_GOOD);
|
||||||
SetDParam(1, 999999);
|
SetDParam(1, 999999);
|
||||||
SetDParam(2, 2);
|
SetDParam(2, 2);
|
||||||
*size = GetStringBoundingBox(STR_FRAMERATE_RATE_GAMELOOP);
|
size = GetStringBoundingBox(STR_FRAMERATE_RATE_GAMELOOP);
|
||||||
break;
|
break;
|
||||||
case WID_FRW_RATE_DRAWING:
|
case WID_FRW_RATE_DRAWING:
|
||||||
SetDParam(0, STR_FRAMERATE_FPS_GOOD);
|
SetDParam(0, STR_FRAMERATE_FPS_GOOD);
|
||||||
SetDParam(1, 999999);
|
SetDParam(1, 999999);
|
||||||
SetDParam(2, 2);
|
SetDParam(2, 2);
|
||||||
*size = GetStringBoundingBox(STR_FRAMERATE_RATE_BLITTER);
|
size = GetStringBoundingBox(STR_FRAMERATE_RATE_BLITTER);
|
||||||
break;
|
break;
|
||||||
case WID_FRW_RATE_FACTOR:
|
case WID_FRW_RATE_FACTOR:
|
||||||
SetDParam(0, 999999);
|
SetDParam(0, 999999);
|
||||||
SetDParam(1, 2);
|
SetDParam(1, 2);
|
||||||
*size = GetStringBoundingBox(STR_FRAMERATE_SPEED_FACTOR);
|
size = GetStringBoundingBox(STR_FRAMERATE_SPEED_FACTOR);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_FRW_TIMES_NAMES: {
|
case WID_FRW_TIMES_NAMES: {
|
||||||
size->width = 0;
|
size.width = 0;
|
||||||
size->height = GetCharacterHeight(FS_NORMAL) + WidgetDimensions::scaled.vsep_normal + MIN_ELEMENTS * GetCharacterHeight(FS_NORMAL);
|
size.height = GetCharacterHeight(FS_NORMAL) + WidgetDimensions::scaled.vsep_normal + MIN_ELEMENTS * GetCharacterHeight(FS_NORMAL);
|
||||||
resize->width = 0;
|
resize.width = 0;
|
||||||
resize->height = GetCharacterHeight(FS_NORMAL);
|
resize.height = GetCharacterHeight(FS_NORMAL);
|
||||||
for (PerformanceElement e : DISPLAY_ORDER_PFE) {
|
for (PerformanceElement e : DISPLAY_ORDER_PFE) {
|
||||||
if (_pf_data[e].num_valid == 0) continue;
|
if (_pf_data[e].num_valid == 0) continue;
|
||||||
Dimension line_size;
|
Dimension line_size;
|
||||||
@@ -571,7 +571,7 @@ struct FramerateWindow : Window {
|
|||||||
SetDParamStr(1, GetAIName(e - PFE_AI0));
|
SetDParamStr(1, GetAIName(e - PFE_AI0));
|
||||||
line_size = GetStringBoundingBox(STR_FRAMERATE_AI);
|
line_size = GetStringBoundingBox(STR_FRAMERATE_AI);
|
||||||
}
|
}
|
||||||
size->width = std::max(size->width, line_size.width);
|
size.width = std::max(size.width, line_size.width);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -579,14 +579,14 @@ struct FramerateWindow : Window {
|
|||||||
case WID_FRW_TIMES_CURRENT:
|
case WID_FRW_TIMES_CURRENT:
|
||||||
case WID_FRW_TIMES_AVERAGE:
|
case WID_FRW_TIMES_AVERAGE:
|
||||||
case WID_FRW_ALLOCSIZE: {
|
case WID_FRW_ALLOCSIZE: {
|
||||||
*size = GetStringBoundingBox(STR_FRAMERATE_CURRENT + (widget - WID_FRW_TIMES_CURRENT));
|
size = GetStringBoundingBox(STR_FRAMERATE_CURRENT + (widget - WID_FRW_TIMES_CURRENT));
|
||||||
SetDParam(0, 999999);
|
SetDParam(0, 999999);
|
||||||
SetDParam(1, 2);
|
SetDParam(1, 2);
|
||||||
Dimension item_size = GetStringBoundingBox(STR_FRAMERATE_MS_GOOD);
|
Dimension item_size = GetStringBoundingBox(STR_FRAMERATE_MS_GOOD);
|
||||||
size->width = std::max(size->width, item_size.width);
|
size.width = std::max(size.width, item_size.width);
|
||||||
size->height += GetCharacterHeight(FS_NORMAL) * MIN_ELEMENTS + WidgetDimensions::scaled.vsep_normal;
|
size.height += GetCharacterHeight(FS_NORMAL) * MIN_ELEMENTS + WidgetDimensions::scaled.vsep_normal;
|
||||||
resize->width = 0;
|
resize.width = 0;
|
||||||
resize->height = GetCharacterHeight(FS_NORMAL);
|
resize.height = GetCharacterHeight(FS_NORMAL);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -776,7 +776,7 @@ struct FrametimeGraphWindow : Window {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
if (widget == WID_FGW_GRAPH) {
|
if (widget == WID_FGW_GRAPH) {
|
||||||
SetDParam(0, 100);
|
SetDParam(0, 100);
|
||||||
@@ -788,10 +788,10 @@ struct FrametimeGraphWindow : Window {
|
|||||||
graph_size.height = std::max(100u, 10 * (size_ms_label.height + 1));
|
graph_size.height = std::max(100u, 10 * (size_ms_label.height + 1));
|
||||||
/* Always 2:1 graph area */
|
/* Always 2:1 graph area */
|
||||||
graph_size.width = 2 * graph_size.height;
|
graph_size.width = 2 * graph_size.height;
|
||||||
*size = graph_size;
|
size = graph_size;
|
||||||
|
|
||||||
size->width += size_ms_label.width + 2;
|
size.width += size_ms_label.width + 2;
|
||||||
size->height += size_s_label.height + 2;
|
size.height += size_s_label.height + 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -813,8 +813,8 @@ struct FrametimeGraphWindow : Window {
|
|||||||
{ TIMESTAMP_PRECISION * 3, 4 },
|
{ TIMESTAMP_PRECISION * 3, 4 },
|
||||||
{ TIMESTAMP_PRECISION * 1, 2 },
|
{ TIMESTAMP_PRECISION * 1, 2 },
|
||||||
};
|
};
|
||||||
for (const ScaleDef *sc = hscales; sc < hscales + lengthof(hscales); sc++) {
|
for (const auto &sc : hscales) {
|
||||||
if (range < sc->range) this->horizontal_scale = sc->scale;
|
if (range < sc.range) this->horizontal_scale = sc.scale;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -832,8 +832,8 @@ struct FrametimeGraphWindow : Window {
|
|||||||
TIMESTAMP_PRECISION / 50,
|
TIMESTAMP_PRECISION / 50,
|
||||||
TIMESTAMP_PRECISION / 200,
|
TIMESTAMP_PRECISION / 200,
|
||||||
};
|
};
|
||||||
for (const TimingMeasurement *sc = vscales; sc < vscales + lengthof(vscales); sc++) {
|
for (const auto &sc : vscales) {
|
||||||
if (range < *sc) this->vertical_scale = (int)*sc;
|
if (range < sc) this->vertical_scale = (int)sc;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1066,11 +1066,11 @@ void ConPrintFramerate()
|
|||||||
|
|
||||||
bool printed_anything = false;
|
bool printed_anything = false;
|
||||||
|
|
||||||
for (const PerformanceElement *e = rate_elements; e < rate_elements + lengthof(rate_elements); e++) {
|
for (const auto &e : rate_elements) {
|
||||||
auto &pf = _pf_data[*e];
|
auto &pf = _pf_data[e];
|
||||||
if (pf.num_valid == 0) continue;
|
if (pf.num_valid == 0) continue;
|
||||||
IConsolePrint(TC_GREEN, "{} rate: {:.2f}fps (expected: {:.2f}fps)",
|
IConsolePrint(TC_GREEN, "{} rate: {:.2f}fps (expected: {:.2f}fps)",
|
||||||
MEASUREMENT_NAMES[*e],
|
MEASUREMENT_NAMES[e],
|
||||||
pf.GetRate(),
|
pf.GetRate(),
|
||||||
pf.expected_rate);
|
pf.expected_rate);
|
||||||
printed_anything = true;
|
printed_anything = true;
|
||||||
|
@@ -143,19 +143,19 @@ struct GSConfigWindow : public Window {
|
|||||||
this->vscroll->SetCount(this->visible_settings.size());
|
this->vscroll->SetCount(this->visible_settings.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
case WID_GSC_SETTINGS:
|
case WID_GSC_SETTINGS:
|
||||||
this->line_height = std::max(SETTING_BUTTON_HEIGHT, GetCharacterHeight(FS_NORMAL)) + padding.height;
|
this->line_height = std::max(SETTING_BUTTON_HEIGHT, GetCharacterHeight(FS_NORMAL)) + padding.height;
|
||||||
resize->width = 1;
|
resize.width = 1;
|
||||||
resize->height = this->line_height;
|
resize.height = this->line_height;
|
||||||
size->height = 5 * this->line_height;
|
size.height = 5 * this->line_height;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_GSC_GSLIST:
|
case WID_GSC_GSLIST:
|
||||||
this->line_height = GetCharacterHeight(FS_NORMAL) + padding.height;
|
this->line_height = GetCharacterHeight(FS_NORMAL) + padding.height;
|
||||||
size->height = 1 * this->line_height;
|
size.height = 1 * this->line_height;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -644,15 +644,15 @@ struct GenerateLandscapeWindow : public Window {
|
|||||||
this->SetDirty();
|
this->SetDirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
Dimension d{0, (uint)GetCharacterHeight(FS_NORMAL)};
|
Dimension d{0, (uint)GetCharacterHeight(FS_NORMAL)};
|
||||||
const StringID *strs = nullptr;
|
const StringID *strs = nullptr;
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
case WID_GL_TEMPERATE: case WID_GL_ARCTIC:
|
case WID_GL_TEMPERATE: case WID_GL_ARCTIC:
|
||||||
case WID_GL_TROPICAL: case WID_GL_TOYLAND:
|
case WID_GL_TROPICAL: case WID_GL_TOYLAND:
|
||||||
size->width += WidgetDimensions::scaled.fullbevel.Horizontal();
|
size.width += WidgetDimensions::scaled.fullbevel.Horizontal();
|
||||||
size->height += WidgetDimensions::scaled.fullbevel.Vertical();
|
size.height += WidgetDimensions::scaled.fullbevel.Vertical();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_GL_HEIGHTMAP_HEIGHT_TEXT:
|
case WID_GL_HEIGHTMAP_HEIGHT_TEXT:
|
||||||
@@ -683,12 +683,12 @@ struct GenerateLandscapeWindow : public Window {
|
|||||||
|
|
||||||
case WID_GL_SNOW_LEVEL_TEXT:
|
case WID_GL_SNOW_LEVEL_TEXT:
|
||||||
SetDParamMaxValue(0, MAX_TILE_HEIGHT);
|
SetDParamMaxValue(0, MAX_TILE_HEIGHT);
|
||||||
*size = maxdim(*size, GetStringBoundingBox(STR_JUST_INT));
|
size = maxdim(size, GetStringBoundingBox(STR_JUST_INT));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_GL_RAINFOREST_LEVEL_TEXT:
|
case WID_GL_RAINFOREST_LEVEL_TEXT:
|
||||||
SetDParamMaxValue(0, MAX_RAINFOREST_HEIGHT);
|
SetDParamMaxValue(0, MAX_RAINFOREST_HEIGHT);
|
||||||
*size = maxdim(*size, GetStringBoundingBox(STR_JUST_INT));
|
size = maxdim(size, GetStringBoundingBox(STR_JUST_INT));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_GL_HEIGHTMAP_SIZE_TEXT:
|
case WID_GL_HEIGHTMAP_SIZE_TEXT:
|
||||||
@@ -737,7 +737,7 @@ struct GenerateLandscapeWindow : public Window {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_GL_HEIGHTMAP_NAME_TEXT:
|
case WID_GL_HEIGHTMAP_NAME_TEXT:
|
||||||
size->width = 0;
|
size.width = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@@ -750,7 +750,7 @@ struct GenerateLandscapeWindow : public Window {
|
|||||||
}
|
}
|
||||||
d.width += padding.width;
|
d.width += padding.width;
|
||||||
d.height += padding.height;
|
d.height += padding.height;
|
||||||
*size = maxdim(*size, d);
|
size = maxdim(size, d);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnClick([[maybe_unused]] Point pt, WidgetID widget, [[maybe_unused]] int click_count) override
|
void OnClick([[maybe_unused]] Point pt, WidgetID widget, [[maybe_unused]] int click_count) override
|
||||||
@@ -1271,14 +1271,14 @@ struct CreateScenarioWindow : public Window
|
|||||||
this->DrawWidgets();
|
this->DrawWidgets();
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
StringID str = STR_JUST_INT;
|
StringID str = STR_JUST_INT;
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
case WID_CS_TEMPERATE: case WID_CS_ARCTIC:
|
case WID_CS_TEMPERATE: case WID_CS_ARCTIC:
|
||||||
case WID_CS_TROPICAL: case WID_CS_TOYLAND:
|
case WID_CS_TROPICAL: case WID_CS_TOYLAND:
|
||||||
size->width += WidgetDimensions::scaled.fullbevel.Horizontal();
|
size.width += WidgetDimensions::scaled.fullbevel.Horizontal();
|
||||||
size->height += WidgetDimensions::scaled.fullbevel.Vertical();
|
size.height += WidgetDimensions::scaled.fullbevel.Vertical();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_CS_START_DATE_TEXT:
|
case WID_CS_START_DATE_TEXT:
|
||||||
@@ -1301,7 +1301,7 @@ struct CreateScenarioWindow : public Window
|
|||||||
Dimension d = GetStringBoundingBox(str);
|
Dimension d = GetStringBoundingBox(str);
|
||||||
d.width += padding.width;
|
d.width += padding.width;
|
||||||
d.height += padding.height;
|
d.height += padding.height;
|
||||||
*size = maxdim(*size, d);
|
size = maxdim(size, d);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnClick([[maybe_unused]] Point pt, WidgetID widget, [[maybe_unused]] int click_count) override
|
void OnClick([[maybe_unused]] Point pt, WidgetID widget, [[maybe_unused]] int click_count) override
|
||||||
@@ -1560,23 +1560,23 @@ struct GenerateProgressWindow : public Window {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
case WID_GP_PROGRESS_BAR: {
|
case WID_GP_PROGRESS_BAR: {
|
||||||
SetDParamMaxValue(0, 100);
|
SetDParamMaxValue(0, 100);
|
||||||
*size = GetStringBoundingBox(STR_GENERATION_PROGRESS);
|
size = GetStringBoundingBox(STR_GENERATION_PROGRESS);
|
||||||
/* We need some spacing for the 'border' */
|
/* We need some spacing for the 'border' */
|
||||||
size->height += WidgetDimensions::scaled.frametext.Horizontal();
|
size.height += WidgetDimensions::scaled.frametext.Horizontal();
|
||||||
size->width += WidgetDimensions::scaled.frametext.Vertical();
|
size.width += WidgetDimensions::scaled.frametext.Vertical();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case WID_GP_PROGRESS_TEXT:
|
case WID_GP_PROGRESS_TEXT:
|
||||||
for (uint i = 0; i < GWP_CLASS_COUNT; i++) {
|
for (uint i = 0; i < GWP_CLASS_COUNT; i++) {
|
||||||
size->width = std::max(size->width, GetStringBoundingBox(_generation_class_table[i]).width + padding.width);
|
size.width = std::max(size.width, GetStringBoundingBox(_generation_class_table[i]).width + padding.width);
|
||||||
}
|
}
|
||||||
size->height = GetCharacterHeight(FS_NORMAL) * 2 + WidgetDimensions::scaled.vsep_normal;
|
size.height = GetCharacterHeight(FS_NORMAL) * 2 + WidgetDimensions::scaled.vsep_normal;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -168,18 +168,18 @@ struct GoalListWindow : public Window {
|
|||||||
return num;
|
return num;
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
if (widget != WID_GOAL_LIST) return;
|
if (widget != WID_GOAL_LIST) return;
|
||||||
Dimension d = GetStringBoundingBox(STR_GOALS_NONE);
|
Dimension d = GetStringBoundingBox(STR_GOALS_NONE);
|
||||||
|
|
||||||
resize->width = 1;
|
resize.width = 1;
|
||||||
resize->height = d.height;
|
resize.height = d.height;
|
||||||
|
|
||||||
d.height *= 5;
|
d.height *= 5;
|
||||||
d.width += WidgetDimensions::scaled.framerect.Horizontal();
|
d.width += WidgetDimensions::scaled.framerect.Horizontal();
|
||||||
d.height += WidgetDimensions::scaled.framerect.Vertical();
|
d.height += WidgetDimensions::scaled.framerect.Vertical();
|
||||||
*size = maxdim(*size, d);
|
size = maxdim(size, d);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -388,12 +388,12 @@ struct GoalQuestionWindow : public Window {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
if (widget != WID_GQ_QUESTION) return;
|
if (widget != WID_GQ_QUESTION) return;
|
||||||
|
|
||||||
SetDParamStr(0, this->question);
|
SetDParamStr(0, this->question);
|
||||||
size->height = GetStringHeight(STR_JUST_RAW_STRING, size->width);
|
size.height = GetStringHeight(STR_JUST_RAW_STRING, size.width);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DrawWidget(const Rect &r, WidgetID widget) const override
|
void DrawWidget(const Rect &r, WidgetID widget) const override
|
||||||
|
@@ -539,7 +539,7 @@ protected:
|
|||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
if (widget != WID_GRAPH_GRAPH) return;
|
if (widget != WID_GRAPH_GRAPH) return;
|
||||||
|
|
||||||
@@ -570,9 +570,9 @@ public:
|
|||||||
SetDParam(1, INT64_MAX);
|
SetDParam(1, INT64_MAX);
|
||||||
uint y_label_width = GetStringBoundingBox(STR_GRAPH_Y_LABEL).width;
|
uint y_label_width = GetStringBoundingBox(STR_GRAPH_Y_LABEL).width;
|
||||||
|
|
||||||
size->width = std::max<uint>(size->width, ScaleGUITrad(5) + y_label_width + this->num_vert_lines * (x_label_width + ScaleGUITrad(5)) + ScaleGUITrad(9));
|
size.width = std::max<uint>(size.width, ScaleGUITrad(5) + y_label_width + this->num_vert_lines * (x_label_width + ScaleGUITrad(5)) + ScaleGUITrad(9));
|
||||||
size->height = std::max<uint>(size->height, ScaleGUITrad(5) + (1 + MIN_GRAPH_NUM_LINES_Y * 2 + (this->draw_dates ? 3 : 1)) * GetCharacterHeight(FS_SMALL) + ScaleGUITrad(4));
|
size.height = std::max<uint>(size.height, ScaleGUITrad(5) + (1 + MIN_GRAPH_NUM_LINES_Y * 2 + (this->draw_dates ? 3 : 1)) * GetCharacterHeight(FS_SMALL) + ScaleGUITrad(4));
|
||||||
size->height = std::max<uint>(size->height, size->width / 3);
|
size.height = std::max<uint>(size.height, size.width / 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DrawWidget(const Rect &r, WidgetID widget) const override
|
void DrawWidget(const Rect &r, WidgetID widget) const override
|
||||||
@@ -805,7 +805,7 @@ struct ExcludingCargoBaseGraphWindow : BaseGraphWindow {
|
|||||||
this->legend_width = (GetCharacterHeight(FS_SMALL) - ScaleGUITrad(1)) * 9 / 6;
|
this->legend_width = (GetCharacterHeight(FS_SMALL) - ScaleGUITrad(1)) * 9 / 6;
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void UpdateWidgetSize(WidgetID widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) override
|
virtual void UpdateWidgetSize(WidgetID widget, Dimension &size, const Dimension &padding, Dimension &fill, Dimension &resize) override
|
||||||
{
|
{
|
||||||
if (widget != WID_ECBG_MATRIX) {
|
if (widget != WID_ECBG_MATRIX) {
|
||||||
BaseGraphWindow::UpdateWidgetSize(widget, size, padding, fill, resize);
|
BaseGraphWindow::UpdateWidgetSize(widget, size, padding, fill, resize);
|
||||||
@@ -818,13 +818,13 @@ struct ExcludingCargoBaseGraphWindow : BaseGraphWindow {
|
|||||||
d.width += this->legend_width + WidgetDimensions::scaled.hsep_normal; // colour field
|
d.width += this->legend_width + WidgetDimensions::scaled.hsep_normal; // colour field
|
||||||
d.width += WidgetDimensions::scaled.framerect.Horizontal();
|
d.width += WidgetDimensions::scaled.framerect.Horizontal();
|
||||||
d.height += WidgetDimensions::scaled.framerect.Vertical();
|
d.height += WidgetDimensions::scaled.framerect.Vertical();
|
||||||
*size = maxdim(d, *size);
|
size = maxdim(d, size);
|
||||||
}
|
}
|
||||||
|
|
||||||
this->line_height = size->height;
|
this->line_height = size.height;
|
||||||
size->height = this->line_height * 11; /* Default number of cargo types in most climates. */
|
size.height = this->line_height * 11; /* Default number of cargo types in most climates. */
|
||||||
resize->width = 0;
|
resize.width = 0;
|
||||||
resize->height = this->line_height;
|
resize.height = this->line_height;
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void DrawWidget(const Rect &r, WidgetID widget) const override
|
virtual void DrawWidget(const Rect &r, WidgetID widget) const override
|
||||||
@@ -1353,14 +1353,14 @@ struct PaymentRatesGraphWindow : BaseGraphWindow {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
if (widget != WID_CPR_MATRIX) {
|
if (widget != WID_CPR_MATRIX) {
|
||||||
BaseGraphWindow::UpdateWidgetSize(widget, size, padding, fill, resize);
|
BaseGraphWindow::UpdateWidgetSize(widget, size, padding, fill, resize);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
size->height = GetCharacterHeight(FS_SMALL) + WidgetDimensions::scaled.framerect.Vertical();
|
size.height = GetCharacterHeight(FS_SMALL) + WidgetDimensions::scaled.framerect.Vertical();
|
||||||
|
|
||||||
for (const CargoSpec *cs : _sorted_standard_cargo_specs) {
|
for (const CargoSpec *cs : _sorted_standard_cargo_specs) {
|
||||||
SetDParam(0, cs->name);
|
SetDParam(0, cs->name);
|
||||||
@@ -1368,13 +1368,13 @@ struct PaymentRatesGraphWindow : BaseGraphWindow {
|
|||||||
d.width += this->legend_width + WidgetDimensions::scaled.hsep_normal; // colour field
|
d.width += this->legend_width + WidgetDimensions::scaled.hsep_normal; // colour field
|
||||||
d.width += WidgetDimensions::scaled.framerect.Horizontal();
|
d.width += WidgetDimensions::scaled.framerect.Horizontal();
|
||||||
d.height += WidgetDimensions::scaled.framerect.Vertical();
|
d.height += WidgetDimensions::scaled.framerect.Vertical();
|
||||||
*size = maxdim(d, *size);
|
size = maxdim(d, size);
|
||||||
}
|
}
|
||||||
|
|
||||||
this->line_height = size->height;
|
this->line_height = size.height;
|
||||||
size->height = this->line_height * 11; /* Default number of cargo types in most climates. */
|
size.height = this->line_height * 11; /* Default number of cargo types in most climates. */
|
||||||
resize->width = 0;
|
resize.width = 0;
|
||||||
resize->height = this->line_height;
|
resize.height = this->line_height;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DrawWidget(const Rect &r, WidgetID widget) const override
|
void DrawWidget(const Rect &r, WidgetID widget) const override
|
||||||
@@ -1619,12 +1619,12 @@ struct PerformanceRatingDetailWindow : Window {
|
|||||||
uint score_detail_left;
|
uint score_detail_left;
|
||||||
uint score_detail_right;
|
uint score_detail_right;
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
case WID_PRD_SCORE_FIRST:
|
case WID_PRD_SCORE_FIRST:
|
||||||
this->bar_height = GetCharacterHeight(FS_NORMAL) + WidgetDimensions::scaled.fullbevel.Vertical();
|
this->bar_height = GetCharacterHeight(FS_NORMAL) + WidgetDimensions::scaled.fullbevel.Vertical();
|
||||||
size->height = this->bar_height + WidgetDimensions::scaled.matrix.Vertical();
|
size.height = this->bar_height + WidgetDimensions::scaled.matrix.Vertical();
|
||||||
|
|
||||||
uint score_info_width = 0;
|
uint score_info_width = 0;
|
||||||
for (uint i = SCORE_BEGIN; i < SCORE_END; i++) {
|
for (uint i = SCORE_BEGIN; i < SCORE_END; i++) {
|
||||||
@@ -1660,9 +1660,9 @@ struct PerformanceRatingDetailWindow : Window {
|
|||||||
SetDParam(1, max);
|
SetDParam(1, max);
|
||||||
uint score_detail_width = GetStringBoundingBox(STR_PERFORMANCE_DETAIL_AMOUNT_CURRENCY).width;
|
uint score_detail_width = GetStringBoundingBox(STR_PERFORMANCE_DETAIL_AMOUNT_CURRENCY).width;
|
||||||
|
|
||||||
size->width = WidgetDimensions::scaled.frametext.Horizontal() + score_info_width + WidgetDimensions::scaled.hsep_wide + this->bar_width + WidgetDimensions::scaled.hsep_wide + score_detail_width;
|
size.width = WidgetDimensions::scaled.frametext.Horizontal() + score_info_width + WidgetDimensions::scaled.hsep_wide + this->bar_width + WidgetDimensions::scaled.hsep_wide + score_detail_width;
|
||||||
uint left = WidgetDimensions::scaled.frametext.left;
|
uint left = WidgetDimensions::scaled.frametext.left;
|
||||||
uint right = size->width - WidgetDimensions::scaled.frametext.right;
|
uint right = size.width - WidgetDimensions::scaled.frametext.right;
|
||||||
|
|
||||||
bool rtl = _current_text_dir == TD_RTL;
|
bool rtl = _current_text_dir == TD_RTL;
|
||||||
this->score_info_left = rtl ? right - score_info_width : left;
|
this->score_info_left = rtl ? right - score_info_width : left;
|
||||||
@@ -1942,7 +1942,7 @@ struct StationCargoGraphWindow final : BaseGraphWindow {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, const Dimension &padding, Dimension &fill, Dimension &resize) override
|
||||||
{
|
{
|
||||||
if (widget < WID_SCG_MATRIX) {
|
if (widget < WID_SCG_MATRIX) {
|
||||||
BaseGraphWindow::UpdateWidgetSize(widget, size, padding, fill, resize);
|
BaseGraphWindow::UpdateWidgetSize(widget, size, padding, fill, resize);
|
||||||
@@ -1955,13 +1955,13 @@ struct StationCargoGraphWindow final : BaseGraphWindow {
|
|||||||
d.width += this->legend_width + 4; // color field
|
d.width += this->legend_width + 4; // color field
|
||||||
d.width += WidgetDimensions::scaled.framerect.Horizontal();
|
d.width += WidgetDimensions::scaled.framerect.Horizontal();
|
||||||
d.height += WidgetDimensions::scaled.framerect.Vertical();
|
d.height += WidgetDimensions::scaled.framerect.Vertical();
|
||||||
*size = maxdim(d, *size);
|
size = maxdim(d, size);
|
||||||
}
|
}
|
||||||
|
|
||||||
this->line_height = size->height;
|
this->line_height = size.height;
|
||||||
size->height = this->line_height * 11; /* Default number of cargo types in most climates. */
|
size.height = this->line_height * 11; /* Default number of cargo types in most climates. */
|
||||||
resize->width = 0;
|
resize.width = 0;
|
||||||
resize->height = this->line_height;
|
resize.height = this->line_height;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DrawWidget(const Rect &r, WidgetID widget) const override
|
void DrawWidget(const Rect &r, WidgetID widget) const override
|
||||||
|
@@ -491,54 +491,54 @@ public:
|
|||||||
this->Window::Close();
|
this->Window::Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
case WID_GL_LIST_GROUP:
|
case WID_GL_LIST_GROUP:
|
||||||
size->width = this->ComputeGroupInfoSize();
|
size.width = this->ComputeGroupInfoSize();
|
||||||
resize->height = this->tiny_step_height;
|
resize.height = this->tiny_step_height;
|
||||||
fill->height = this->tiny_step_height;
|
fill.height = this->tiny_step_height;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_GL_ALL_VEHICLES:
|
case WID_GL_ALL_VEHICLES:
|
||||||
case WID_GL_DEFAULT_VEHICLES:
|
case WID_GL_DEFAULT_VEHICLES:
|
||||||
size->width = this->ComputeGroupInfoSize();
|
size.width = this->ComputeGroupInfoSize();
|
||||||
size->height = this->tiny_step_height;
|
size.height = this->tiny_step_height;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_GL_SORT_BY_ORDER: {
|
case WID_GL_SORT_BY_ORDER: {
|
||||||
Dimension d = GetStringBoundingBox(this->GetWidget<NWidgetCore>(widget)->widget_data);
|
Dimension d = GetStringBoundingBox(this->GetWidget<NWidgetCore>(widget)->widget_data);
|
||||||
d.width += padding.width + Window::SortButtonWidth() * 2; // Doubled since the string is centred and it also looks better.
|
d.width += padding.width + Window::SortButtonWidth() * 2; // Doubled since the string is centred and it also looks better.
|
||||||
d.height += padding.height;
|
d.height += padding.height;
|
||||||
*size = maxdim(*size, d);
|
size = maxdim(size, d);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case WID_GL_LIST_VEHICLE:
|
case WID_GL_LIST_VEHICLE:
|
||||||
this->ComputeGroupInfoSize();
|
this->ComputeGroupInfoSize();
|
||||||
resize->height = GetVehicleListHeight(this->vli.vtype, this->tiny_step_height);
|
resize.height = GetVehicleListHeight(this->vli.vtype, this->tiny_step_height);
|
||||||
size->height = 4 * resize->height;
|
size.height = 4 * resize.height;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_GL_GROUP_BY_DROPDOWN:
|
case WID_GL_GROUP_BY_DROPDOWN:
|
||||||
size->width = GetStringListWidth(this->vehicle_group_by_names) + padding.width;
|
size.width = GetStringListWidth(this->vehicle_group_by_names) + padding.width;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_GL_SORT_BY_DROPDOWN:
|
case WID_GL_SORT_BY_DROPDOWN:
|
||||||
size->width = GetStringListWidth(this->vehicle_group_none_sorter_names);
|
size.width = GetStringListWidth(EconTime::UsingWallclockUnits() ? this->vehicle_group_none_sorter_names_wallclock : this->vehicle_group_none_sorter_names_calendar);
|
||||||
size->width = std::max(size->width, GetStringListWidth(this->vehicle_group_shared_orders_sorter_names));
|
size.width = std::max(size.width, GetStringListWidth(EconTime::UsingWallclockUnits() ? this->vehicle_group_shared_orders_sorter_names_wallclock : this->vehicle_group_shared_orders_sorter_names_calendar));
|
||||||
size->width += padding.width;
|
size.width += padding.width;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_GL_FILTER_BY_CARGO:
|
case WID_GL_FILTER_BY_CARGO:
|
||||||
size->width = std::max(size->width, GetDropDownListDimension(this->BuildCargoDropDownList(true)).width + padding.width);
|
size.width = std::max(size.width, GetDropDownListDimension(this->BuildCargoDropDownList(true)).width + padding.width);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_GL_MANAGE_VEHICLES_DROPDOWN: {
|
case WID_GL_MANAGE_VEHICLES_DROPDOWN: {
|
||||||
Dimension d = this->GetActionDropdownSize(true, true, this->vli.vtype == VEH_TRAIN);
|
Dimension d = this->GetActionDropdownSize(true, true, this->vli.vtype == VEH_TRAIN);
|
||||||
d.height += padding.height;
|
d.height += padding.height;
|
||||||
d.width += padding.width;
|
d.width += padding.width;
|
||||||
*size = maxdim(*size, d);
|
size = maxdim(size, d);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1338,7 +1338,7 @@ void ShowCompanyGroupForVehicle(const Vehicle *v)
|
|||||||
*/
|
*/
|
||||||
static inline VehicleGroupWindow *FindVehicleGroupWindow(VehicleType vt, Owner owner)
|
static inline VehicleGroupWindow *FindVehicleGroupWindow(VehicleType vt, Owner owner)
|
||||||
{
|
{
|
||||||
return (VehicleGroupWindow *)FindWindowById(GetWindowClassForVehicleType(vt), VehicleListIdentifier(VL_GROUP_LIST, vt, owner).Pack());
|
return dynamic_cast<VehicleGroupWindow *>(FindWindowById(GetWindowClassForVehicleType(vt), VehicleListIdentifier(VL_GROUP_LIST, vt, owner).Pack()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -26,12 +26,12 @@ static std::vector<HotkeyList*> *_hotkey_lists = nullptr;
|
|||||||
|
|
||||||
/** String representation of a keycode */
|
/** String representation of a keycode */
|
||||||
struct KeycodeNames {
|
struct KeycodeNames {
|
||||||
const char *name; ///< Name of the keycode
|
const std::string_view name; ///< Name of the keycode
|
||||||
WindowKeyCodes keycode; ///< The keycode
|
WindowKeyCodes keycode; ///< The keycode
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Array of non-standard keycodes that can be used in the hotkeys config file. */
|
/** Array of non-standard keycodes that can be used in the hotkeys config file. */
|
||||||
static const KeycodeNames _keycode_to_name[] = {
|
static const std::initializer_list<KeycodeNames> _keycode_to_name = {
|
||||||
{"SHIFT", WKC_SHIFT},
|
{"SHIFT", WKC_SHIFT},
|
||||||
{"CTRL", WKC_CTRL},
|
{"CTRL", WKC_CTRL},
|
||||||
{"ALT", WKC_ALT},
|
{"ALT", WKC_ALT},
|
||||||
@@ -103,9 +103,9 @@ static uint16_t ParseCode(const char *start, const char *end)
|
|||||||
while (start < end && *start == ' ') start++;
|
while (start < end && *start == ' ') start++;
|
||||||
while (end > start && *end == ' ') end--;
|
while (end > start && *end == ' ') end--;
|
||||||
std::string_view str{start, (size_t)(end - start)};
|
std::string_view str{start, (size_t)(end - start)};
|
||||||
for (uint i = 0; i < lengthof(_keycode_to_name); i++) {
|
for (const auto &kn : _keycode_to_name) {
|
||||||
if (StrEqualsIgnoreCase(str, _keycode_to_name[i].name)) {
|
if (StrEqualsIgnoreCase(str, kn.name)) {
|
||||||
return _keycode_to_name[i].keycode;
|
return kn.keycode;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (end - start == 1) {
|
if (end - start == 1) {
|
||||||
@@ -196,9 +196,9 @@ static std::string KeycodeToString(uint16_t keycode)
|
|||||||
if (!str.empty()) str += "+";
|
if (!str.empty()) str += "+";
|
||||||
keycode = keycode & ~WKC_SPECIAL_KEYS;
|
keycode = keycode & ~WKC_SPECIAL_KEYS;
|
||||||
|
|
||||||
for (uint i = 0; i < lengthof(_keycode_to_name); i++) {
|
for (const auto &kn : _keycode_to_name) {
|
||||||
if (_keycode_to_name[i].keycode == keycode) {
|
if (kn.keycode == keycode) {
|
||||||
str += _keycode_to_name[i].name;
|
str += kn.name;
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -361,36 +361,34 @@ class BuildIndustryWindow : public Window {
|
|||||||
* @param prefixstr String to use for the first item
|
* @param prefixstr String to use for the first item
|
||||||
* @return A formatted raw string
|
* @return A formatted raw string
|
||||||
*/
|
*/
|
||||||
std::string MakeCargoListString(const CargoID *cargolist, const CargoSuffix *cargo_suffix, size_t cargolistlen, StringID prefixstr) const
|
std::string MakeCargoListString(const std::span<const CargoID> cargolist, const std::span<const CargoSuffix> cargo_suffix, StringID prefixstr) const
|
||||||
{
|
{
|
||||||
std::string cargostring;
|
assert(cargolist.size() == cargo_suffix.size());
|
||||||
size_t firstcargo = cargolistlen;
|
|
||||||
|
|
||||||
size_t j = 0;
|
std::string cargostring;
|
||||||
for (; j < cargolistlen; j++) {
|
size_t numcargo = 0;
|
||||||
if (cargolist[j] == INVALID_CARGO) continue;
|
size_t firstcargo;
|
||||||
if (firstcargo == cargolistlen) {
|
|
||||||
|
for (size_t j = 0; j < cargolist.size(); j++) {
|
||||||
|
if (!IsValidCargoID(cargolist[j])) continue;
|
||||||
|
numcargo++;
|
||||||
|
if (numcargo == 1) {
|
||||||
firstcargo = j;
|
firstcargo = j;
|
||||||
j++;
|
continue;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
SetDParam(0, CargoSpec::Get(cargolist[j])->name);
|
||||||
|
SetDParamStr(1, cargo_suffix[j].text);
|
||||||
|
cargostring += GetString(STR_INDUSTRY_VIEW_CARGO_LIST_EXTENSION);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (firstcargo < cargolistlen) {
|
if (numcargo > 0) {
|
||||||
SetDParam(0, CargoSpec::Get(cargolist[firstcargo])->name);
|
SetDParam(0, CargoSpec::Get(cargolist[firstcargo])->name);
|
||||||
SetDParamStr(1, cargo_suffix[firstcargo].text);
|
SetDParamStr(1, cargo_suffix[firstcargo].text);
|
||||||
GetString(StringBuilder(cargostring), prefixstr);
|
cargostring = GetString(prefixstr) + cargostring;
|
||||||
} else {
|
} else {
|
||||||
SetDParam(0, STR_JUST_NOTHING);
|
SetDParam(0, STR_JUST_NOTHING);
|
||||||
SetDParamStr(1, "");
|
SetDParamStr(1, "");
|
||||||
GetString(StringBuilder(cargostring), prefixstr);
|
cargostring = GetString(prefixstr);
|
||||||
}
|
|
||||||
|
|
||||||
for (; j < cargolistlen; j++) {
|
|
||||||
if (cargolist[j] == INVALID_CARGO) continue;
|
|
||||||
SetDParam(0, CargoSpec::Get(cargolist[j])->name);
|
|
||||||
SetDParamStr(1, cargo_suffix[j].text);
|
|
||||||
GetString(StringBuilder(cargostring), STR_INDUSTRY_VIEW_CARGO_LIST_EXTENSION);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return cargostring;
|
return cargostring;
|
||||||
@@ -421,7 +419,7 @@ public:
|
|||||||
this->SetupArrays();
|
this->SetupArrays();
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
case WID_DPI_MATRIX_WIDGET: {
|
case WID_DPI_MATRIX_WIDGET: {
|
||||||
@@ -429,10 +427,10 @@ public:
|
|||||||
for (const auto &indtype : this->list) {
|
for (const auto &indtype : this->list) {
|
||||||
d = maxdim(d, GetStringBoundingBox(GetIndustrySpec(indtype)->name));
|
d = maxdim(d, GetStringBoundingBox(GetIndustrySpec(indtype)->name));
|
||||||
}
|
}
|
||||||
resize->height = std::max<uint>(this->legend.height, GetCharacterHeight(FS_NORMAL)) + padding.height;
|
resize.height = std::max<uint>(this->legend.height, GetCharacterHeight(FS_NORMAL)) + padding.height;
|
||||||
d.width += this->legend.width + WidgetDimensions::scaled.hsep_wide + padding.width;
|
d.width += this->legend.width + WidgetDimensions::scaled.hsep_wide + padding.width;
|
||||||
d.height = 5 * resize->height;
|
d.height = 5 * resize.height;
|
||||||
*size = maxdim(*size, d);
|
size = maxdim(size, d);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -450,7 +448,7 @@ public:
|
|||||||
|
|
||||||
/* Measure the accepted cargoes, if any. */
|
/* Measure the accepted cargoes, if any. */
|
||||||
GetAllCargoSuffixes(CARGOSUFFIX_IN, CST_FUND, nullptr, indtype, indsp, indsp->accepts_cargo, cargo_suffix);
|
GetAllCargoSuffixes(CARGOSUFFIX_IN, CST_FUND, nullptr, indtype, indsp, indsp->accepts_cargo, cargo_suffix);
|
||||||
std::string cargostring = this->MakeCargoListString(indsp->accepts_cargo.data(), cargo_suffix.data(), indsp->accepts_cargo.size(), STR_INDUSTRY_VIEW_REQUIRES_N_CARGO);
|
std::string cargostring = this->MakeCargoListString(indsp->accepts_cargo, cargo_suffix, STR_INDUSTRY_VIEW_REQUIRES_N_CARGO);
|
||||||
Dimension strdim = GetStringBoundingBox(cargostring);
|
Dimension strdim = GetStringBoundingBox(cargostring);
|
||||||
if (strdim.width > max_minwidth) {
|
if (strdim.width > max_minwidth) {
|
||||||
extra_lines_req = std::max(extra_lines_req, strdim.width / max_minwidth + 1);
|
extra_lines_req = std::max(extra_lines_req, strdim.width / max_minwidth + 1);
|
||||||
@@ -460,7 +458,7 @@ public:
|
|||||||
|
|
||||||
/* Measure the produced cargoes, if any. */
|
/* Measure the produced cargoes, if any. */
|
||||||
GetAllCargoSuffixes(CARGOSUFFIX_OUT, CST_FUND, nullptr, indtype, indsp, indsp->produced_cargo, cargo_suffix);
|
GetAllCargoSuffixes(CARGOSUFFIX_OUT, CST_FUND, nullptr, indtype, indsp, indsp->produced_cargo, cargo_suffix);
|
||||||
cargostring = this->MakeCargoListString(indsp->produced_cargo.data(), cargo_suffix.data(), indsp->produced_cargo.size(), STR_INDUSTRY_VIEW_PRODUCES_N_CARGO);
|
cargostring = this->MakeCargoListString(indsp->produced_cargo, cargo_suffix, STR_INDUSTRY_VIEW_PRODUCES_N_CARGO);
|
||||||
strdim = GetStringBoundingBox(cargostring);
|
strdim = GetStringBoundingBox(cargostring);
|
||||||
if (strdim.width > max_minwidth) {
|
if (strdim.width > max_minwidth) {
|
||||||
extra_lines_prd = std::max(extra_lines_prd, strdim.width / max_minwidth + 1);
|
extra_lines_prd = std::max(extra_lines_prd, strdim.width / max_minwidth + 1);
|
||||||
@@ -476,8 +474,8 @@ public:
|
|||||||
|
|
||||||
/* Set it to something more sane :) */
|
/* Set it to something more sane :) */
|
||||||
height += extra_lines_prd + extra_lines_req + extra_lines_newgrf;
|
height += extra_lines_prd + extra_lines_req + extra_lines_newgrf;
|
||||||
size->height = height * GetCharacterHeight(FS_NORMAL) + padding.height;
|
size.height = height * GetCharacterHeight(FS_NORMAL) + padding.height;
|
||||||
size->width = d.width + padding.width;
|
size.width = d.width + padding.width;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -487,7 +485,7 @@ public:
|
|||||||
d = maxdim(d, GetStringBoundingBox(STR_FUND_INDUSTRY_FUND_NEW_INDUSTRY));
|
d = maxdim(d, GetStringBoundingBox(STR_FUND_INDUSTRY_FUND_NEW_INDUSTRY));
|
||||||
d.width += padding.width;
|
d.width += padding.width;
|
||||||
d.height += padding.height;
|
d.height += padding.height;
|
||||||
*size = maxdim(*size, d);
|
size = maxdim(size, d);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -566,12 +564,12 @@ public:
|
|||||||
|
|
||||||
/* Draw the accepted cargoes, if any. Otherwise, will print "Nothing". */
|
/* Draw the accepted cargoes, if any. Otherwise, will print "Nothing". */
|
||||||
GetAllCargoSuffixes(CARGOSUFFIX_IN, CST_FUND, nullptr, this->selected_type, indsp, indsp->accepts_cargo, cargo_suffix);
|
GetAllCargoSuffixes(CARGOSUFFIX_IN, CST_FUND, nullptr, this->selected_type, indsp, indsp->accepts_cargo, cargo_suffix);
|
||||||
std::string cargostring = this->MakeCargoListString(indsp->accepts_cargo.data(), cargo_suffix.data(), indsp->accepts_cargo.size(), STR_INDUSTRY_VIEW_REQUIRES_N_CARGO);
|
std::string cargostring = this->MakeCargoListString(indsp->accepts_cargo, cargo_suffix, STR_INDUSTRY_VIEW_REQUIRES_N_CARGO);
|
||||||
ir.top = DrawStringMultiLine(ir, cargostring);
|
ir.top = DrawStringMultiLine(ir, cargostring);
|
||||||
|
|
||||||
/* Draw the produced cargoes, if any. Otherwise, will print "Nothing". */
|
/* Draw the produced cargoes, if any. Otherwise, will print "Nothing". */
|
||||||
GetAllCargoSuffixes(CARGOSUFFIX_OUT, CST_FUND, nullptr, this->selected_type, indsp, indsp->produced_cargo, cargo_suffix);
|
GetAllCargoSuffixes(CARGOSUFFIX_OUT, CST_FUND, nullptr, this->selected_type, indsp, indsp->produced_cargo, cargo_suffix);
|
||||||
cargostring = this->MakeCargoListString(indsp->produced_cargo.data(), cargo_suffix.data(), indsp->produced_cargo.size(), STR_INDUSTRY_VIEW_PRODUCES_N_CARGO);
|
cargostring = this->MakeCargoListString(indsp->produced_cargo, cargo_suffix, STR_INDUSTRY_VIEW_PRODUCES_N_CARGO);
|
||||||
ir.top = DrawStringMultiLine(ir, cargostring);
|
ir.top = DrawStringMultiLine(ir, cargostring);
|
||||||
|
|
||||||
/* Get the additional purchase info text, if it has not already been queried. */
|
/* Get the additional purchase info text, if it has not already been queried. */
|
||||||
@@ -1038,9 +1036,9 @@ public:
|
|||||||
if (widget == WID_IV_CAPTION) SetDParam(0, this->window_number);
|
if (widget == WID_IV_CAPTION) SetDParam(0, this->window_number);
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
if (widget == WID_IV_INFO) size->height = this->info_height;
|
if (widget == WID_IV_INFO) size.height = this->info_height;
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnClick([[maybe_unused]] Point pt, WidgetID widget, [[maybe_unused]] int click_count) override
|
void OnClick([[maybe_unused]] Point pt, WidgetID widget, [[maybe_unused]] int click_count) override
|
||||||
@@ -1755,14 +1753,14 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
case WID_ID_DROPDOWN_ORDER: {
|
case WID_ID_DROPDOWN_ORDER: {
|
||||||
Dimension d = GetStringBoundingBox(this->GetWidget<NWidgetCore>(widget)->widget_data);
|
Dimension d = GetStringBoundingBox(this->GetWidget<NWidgetCore>(widget)->widget_data);
|
||||||
d.width += padding.width + Window::SortButtonWidth() * 2; // Doubled since the string is centred and it also looks better.
|
d.width += padding.width + Window::SortButtonWidth() * 2; // Doubled since the string is centred and it also looks better.
|
||||||
d.height += padding.height;
|
d.height += padding.height;
|
||||||
*size = maxdim(*size, d);
|
size = maxdim(size, d);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1773,17 +1771,17 @@ public:
|
|||||||
}
|
}
|
||||||
d.width += padding.width;
|
d.width += padding.width;
|
||||||
d.height += padding.height;
|
d.height += padding.height;
|
||||||
*size = maxdim(*size, d);
|
size = maxdim(size, d);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case WID_ID_INDUSTRY_LIST: {
|
case WID_ID_INDUSTRY_LIST: {
|
||||||
Dimension d = GetStringBoundingBox(STR_INDUSTRY_DIRECTORY_NONE);
|
Dimension d = GetStringBoundingBox(STR_INDUSTRY_DIRECTORY_NONE);
|
||||||
resize->height = d.height;
|
resize.height = d.height;
|
||||||
d.height *= 5;
|
d.height *= 5;
|
||||||
d.width += padding.width;
|
d.width += padding.width;
|
||||||
d.height += padding.height;
|
d.height += padding.height;
|
||||||
*size = maxdim(*size, d);
|
size = maxdim(size, d);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2670,21 +2668,21 @@ struct IndustryCargoesWindow : public Window {
|
|||||||
CargoesField::cargo_field_width = CargoesField::cargo_border.width * 2 + CargoesField::cargo_line.width * CargoesField::max_cargoes + CargoesField::cargo_space.width * (CargoesField::max_cargoes - 1);
|
CargoesField::cargo_field_width = CargoesField::cargo_border.width * 2 + CargoesField::cargo_line.width * CargoesField::max_cargoes + CargoesField::cargo_space.width * (CargoesField::max_cargoes - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
case WID_IC_PANEL:
|
case WID_IC_PANEL:
|
||||||
resize->height = CargoesField::normal_height;
|
resize.height = CargoesField::normal_height;
|
||||||
size->width = CargoesField::industry_width * 3 + CargoesField::cargo_field_width * 2 + WidgetDimensions::scaled.frametext.Horizontal();
|
size.width = CargoesField::industry_width * 3 + CargoesField::cargo_field_width * 2 + WidgetDimensions::scaled.frametext.Horizontal();
|
||||||
size->height = CargoesField::small_height + 2 * resize->height + WidgetDimensions::scaled.frametext.Vertical();
|
size.height = CargoesField::small_height + 2 * resize.height + WidgetDimensions::scaled.frametext.Vertical();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_IC_IND_DROPDOWN:
|
case WID_IC_IND_DROPDOWN:
|
||||||
size->width = std::max(size->width, this->ind_textsize.width + padding.width);
|
size.width = std::max(size.width, this->ind_textsize.width + padding.width);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_IC_CARGO_DROPDOWN:
|
case WID_IC_CARGO_DROPDOWN:
|
||||||
size->width = std::max(size->width, this->cargo_textsize.width + padding.width);
|
size.width = std::max(size.width, this->cargo_textsize.width + padding.width);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -298,13 +298,13 @@ struct SelectGameWindow : public Window {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
case WID_SGI_TEMPERATE_LANDSCAPE: case WID_SGI_ARCTIC_LANDSCAPE:
|
case WID_SGI_TEMPERATE_LANDSCAPE: case WID_SGI_ARCTIC_LANDSCAPE:
|
||||||
case WID_SGI_TROPIC_LANDSCAPE: case WID_SGI_TOYLAND_LANDSCAPE:
|
case WID_SGI_TROPIC_LANDSCAPE: case WID_SGI_TOYLAND_LANDSCAPE:
|
||||||
size->width += WidgetDimensions::scaled.fullbevel.Horizontal();
|
size.width += WidgetDimensions::scaled.fullbevel.Horizontal();
|
||||||
size->height += WidgetDimensions::scaled.fullbevel.Vertical();
|
size.height += WidgetDimensions::scaled.fullbevel.Vertical();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -3002,7 +3002,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_RAIL_TYPE :Spoor tipe
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF veranderlike 60+x parameter (heksadesimaal)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF veranderlike 60+x parameter (heksadesimaal)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Belyn sprite {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Volgende sprite
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Volgende sprite
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Gaan na die volgende "sprite", Ignoreer enige pseudo/her-kleur/font "sprites" en spring terug na die begin
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Gaan na die volgende "sprite", Ignoreer enige pseudo/her-kleur/font "sprites" en spring terug na die begin
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Gaan na sprite
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Gaan na sprite
|
||||||
|
@@ -2859,7 +2859,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_RAIL_TYPE :نوع سكة
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}متغير الاضافات الجديدة +60 * نمط (hexadecimal)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}متغير الاضافات الجديدة +60 * نمط (hexadecimal)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}موائمة صورة العفريتة {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}العفريتة التالية
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}العفريتة التالية
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}نابع للعفريتة الطبيعية التالية، تجاوز اي عفريتة موقوفة/ مصبوغة/مخطوطة و انهي المتاعة في النهاية.
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}نابع للعفريتة الطبيعية التالية، تجاوز اي عفريتة موقوفة/ مصبوغة/مخطوطة و انهي المتاعة في النهاية.
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}اذهب الى العفريتة
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}اذهب الى العفريتة
|
||||||
|
@@ -2830,7 +2830,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_RAIL_TYPE :Trenbide mota
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF aldagaia 60+x parametroetan (hexadecimala)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF aldagaia 60+x parametroetan (hexadecimala)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}"Sprit"-a lerrokatu {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Urrengo "sprit"-a
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Urrengo "sprit"-a
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Hurrengo grafiko arrunta erabili, pseudo/birkoloretu/grafiko tipoak desgaituz
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Hurrengo grafiko arrunta erabili, pseudo/birkoloretu/grafiko tipoak desgaituz
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Joan "sprit"-era
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Joan "sprit"-era
|
||||||
|
@@ -3817,7 +3817,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_ROAD_TYPE :Тып даро
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Парамэтр зьменнай NewGRF 60+x (шаснаццаткавы)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Парамэтр зьменнай NewGRF 60+x (шаснаццаткавы)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Выраўноўваньне спрайта {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Наступны спрайт
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Наступны спрайт
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Перайсьці да наступнага звычайнага спрайта, прапускаючы змяняючыя колер, шрыфтавыя, псэўдаспрайты. Пераход з канца сьпісу да першага спрайта.
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Перайсьці да наступнага звычайнага спрайта, прапускаючы змяняючыя колер, шрыфтавыя, псэўдаспрайты. Пераход з канца сьпісу да першага спрайта.
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Перайсьці да спрайта
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Перайсьці да спрайта
|
||||||
|
@@ -269,8 +269,8 @@ STR_UNITS_PERIODS :{NUM}{NBSP}per
|
|||||||
|
|
||||||
# Common window strings
|
# Common window strings
|
||||||
STR_LIST_FILTER_TITLE :{BLACK}Filtro:
|
STR_LIST_FILTER_TITLE :{BLACK}Filtro:
|
||||||
STR_LIST_FILTER_OSKTITLE :{BLACK}Inserir uma ou mais palavras-chave para filtrar a lista
|
STR_LIST_FILTER_OSKTITLE :{BLACK}Introduza uma palavra-chave para filtrar a lista
|
||||||
STR_LIST_FILTER_TOOLTIP :{BLACK}Introduza uma ou mais palavras-chave para procurar na lista
|
STR_LIST_FILTER_TOOLTIP :{BLACK}Introduzir uma ou mais palavras-chave para procurar na lista
|
||||||
|
|
||||||
STR_TOOLTIP_GROUP_ORDER :{BLACK}Escolher a ordem de agrupamento
|
STR_TOOLTIP_GROUP_ORDER :{BLACK}Escolher a ordem de agrupamento
|
||||||
STR_TOOLTIP_SORT_ORDER :{BLACK}Escolher a ordenação (descendente/ascendente)
|
STR_TOOLTIP_SORT_ORDER :{BLACK}Escolher a ordenação (descendente/ascendente)
|
||||||
@@ -384,7 +384,7 @@ STR_TOOLBAR_TOOLTIP_PAUSE_GAME :{BLACK}Pausar o
|
|||||||
STR_TOOLBAR_TOOLTIP_FORWARD :{BLACK}Avanço rápido do jogo
|
STR_TOOLBAR_TOOLTIP_FORWARD :{BLACK}Avanço rápido do jogo
|
||||||
STR_TOOLBAR_TOOLTIP_OPTIONS :{BLACK}Opções e configurações
|
STR_TOOLBAR_TOOLTIP_OPTIONS :{BLACK}Opções e configurações
|
||||||
STR_TOOLBAR_TOOLTIP_SAVE_GAME_ABANDON_GAME :{BLACK}Salvar, abrir ou abandonar o jogo, sair do programa
|
STR_TOOLBAR_TOOLTIP_SAVE_GAME_ABANDON_GAME :{BLACK}Salvar, abrir ou abandonar o jogo, sair do programa
|
||||||
STR_TOOLBAR_TOOLTIP_DISPLAY_MAP :{BLACK}Abrir mapa, visualização extra, fluxo de cargas ou lista de placas
|
STR_TOOLBAR_TOOLTIP_DISPLAY_MAP :{BLACK}Abrir mapa, visualização extra, fluxo de carga ou lista de placas
|
||||||
STR_TOOLBAR_TOOLTIP_DISPLAY_TOWN_DIRECTORY :{BLACK}Abrir lista de localidades ou encontrar localidade
|
STR_TOOLBAR_TOOLTIP_DISPLAY_TOWN_DIRECTORY :{BLACK}Abrir lista de localidades ou encontrar localidade
|
||||||
STR_TOOLBAR_TOOLTIP_DISPLAY_SUBSIDIES :{BLACK}Abrir lista de subsídios
|
STR_TOOLBAR_TOOLTIP_DISPLAY_SUBSIDIES :{BLACK}Abrir lista de subsídios
|
||||||
STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_STATIONS :{BLACK}Abrir lista de estações da empresa
|
STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_STATIONS :{BLACK}Abrir lista de estações da empresa
|
||||||
@@ -410,7 +410,7 @@ STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}Abrir me
|
|||||||
STR_TOOLBAR_TOOLTIP_SHOW_SOUND_MUSIC_WINDOW :{BLACK}Abrir janela de som/música
|
STR_TOOLBAR_TOOLTIP_SHOW_SOUND_MUSIC_WINDOW :{BLACK}Abrir janela de som/música
|
||||||
STR_TOOLBAR_TOOLTIP_SHOW_LAST_MESSAGE_NEWS :{BLACK}Abrir última mensagem/notícia, histórico de mensagens ou apagar todas as mensagens
|
STR_TOOLBAR_TOOLTIP_SHOW_LAST_MESSAGE_NEWS :{BLACK}Abrir última mensagem/notícia, histórico de mensagens ou apagar todas as mensagens
|
||||||
STR_TOOLBAR_TOOLTIP_LAND_BLOCK_INFORMATION :{BLACK}Abrir informações do terreno, menu de captura de tela, créditos do OpenTTD ou ferramentas de desenvolvedor
|
STR_TOOLBAR_TOOLTIP_LAND_BLOCK_INFORMATION :{BLACK}Abrir informações do terreno, menu de captura de tela, créditos do OpenTTD ou ferramentas de desenvolvedor
|
||||||
STR_TOOLBAR_TOOLTIP_SWITCH_TOOLBAR :{BLACK}Trocar barras de ferramentas
|
STR_TOOLBAR_TOOLTIP_SWITCH_TOOLBAR :{BLACK}Trocar barra de ferramentas
|
||||||
|
|
||||||
# Extra tooltips for the scenario editor toolbar
|
# Extra tooltips for the scenario editor toolbar
|
||||||
STR_SCENEDIT_TOOLBAR_TOOLTIP_SAVE_SCENARIO_LOAD_SCENARIO :{BLACK}Salvar cenário, abrir cenário, abandonar editor de cenário, sair
|
STR_SCENEDIT_TOOLBAR_TOOLTIP_SAVE_SCENARIO_LOAD_SCENARIO :{BLACK}Salvar cenário, abrir cenário, abandonar editor de cenário, sair
|
||||||
@@ -499,7 +499,7 @@ STR_INDUSTRY_MENU_FUND_NEW_INDUSTRY :Fundar nova ind
|
|||||||
STR_RAIL_MENU_RAILROAD_CONSTRUCTION :Construção de ferrovia
|
STR_RAIL_MENU_RAILROAD_CONSTRUCTION :Construção de ferrovia
|
||||||
STR_RAIL_MENU_ELRAIL_CONSTRUCTION :Construção de ferrovia eletrificada
|
STR_RAIL_MENU_ELRAIL_CONSTRUCTION :Construção de ferrovia eletrificada
|
||||||
STR_RAIL_MENU_MONORAIL_CONSTRUCTION :Construção de monotrilho
|
STR_RAIL_MENU_MONORAIL_CONSTRUCTION :Construção de monotrilho
|
||||||
STR_RAIL_MENU_MAGLEV_CONSTRUCTION :Construção de MagLev
|
STR_RAIL_MENU_MAGLEV_CONSTRUCTION :Construção de Maglev
|
||||||
|
|
||||||
# Road construction menu
|
# Road construction menu
|
||||||
STR_ROAD_MENU_ROAD_CONSTRUCTION :Construção de estrada
|
STR_ROAD_MENU_ROAD_CONSTRUCTION :Construção de estrada
|
||||||
@@ -732,7 +732,7 @@ STR_HIGHSCORE_PERFORMANCE_TITLE_ENTREPRENEUR :Empreendedor
|
|||||||
STR_HIGHSCORE_PERFORMANCE_TITLE_INDUSTRIALIST :Industrial
|
STR_HIGHSCORE_PERFORMANCE_TITLE_INDUSTRIALIST :Industrial
|
||||||
STR_HIGHSCORE_PERFORMANCE_TITLE_CAPITALIST :Capitalista
|
STR_HIGHSCORE_PERFORMANCE_TITLE_CAPITALIST :Capitalista
|
||||||
STR_HIGHSCORE_PERFORMANCE_TITLE_MAGNATE :Magnata
|
STR_HIGHSCORE_PERFORMANCE_TITLE_MAGNATE :Magnata
|
||||||
STR_HIGHSCORE_PERFORMANCE_TITLE_MOGUL :Mandachuva
|
STR_HIGHSCORE_PERFORMANCE_TITLE_MOGUL :Grande magnata
|
||||||
STR_HIGHSCORE_PERFORMANCE_TITLE_TYCOON_OF_THE_CENTURY :Magnata do Século
|
STR_HIGHSCORE_PERFORMANCE_TITLE_TYCOON_OF_THE_CENTURY :Magnata do Século
|
||||||
STR_HIGHSCORE_NAME :{PRESIDENT_NAME}, {COMPANY}
|
STR_HIGHSCORE_NAME :{PRESIDENT_NAME}, {COMPANY}
|
||||||
STR_HIGHSCORE_STATS :{BIG_FONT}'{STRING}' ({COMMA})
|
STR_HIGHSCORE_STATS :{BIG_FONT}'{STRING}' ({COMMA})
|
||||||
@@ -836,11 +836,11 @@ STR_NEWS_FIRST_CARGO_TRAM_ARRIVAL :{BIG_FONT}{BLAC
|
|||||||
STR_NEWS_FIRST_SHIP_ARRIVAL :{BIG_FONT}{BLACK}Cidadãos celebram . . .{}Primeira embarcação chega em {STATION}!
|
STR_NEWS_FIRST_SHIP_ARRIVAL :{BIG_FONT}{BLACK}Cidadãos celebram . . .{}Primeira embarcação chega em {STATION}!
|
||||||
STR_NEWS_FIRST_AIRCRAFT_ARRIVAL :{BIG_FONT}{BLACK}Cidadãos celebram . . .{}Primeira aeronave chega em {STATION}!
|
STR_NEWS_FIRST_AIRCRAFT_ARRIVAL :{BIG_FONT}{BLACK}Cidadãos celebram . . .{}Primeira aeronave chega em {STATION}!
|
||||||
|
|
||||||
STR_NEWS_TRAIN_CRASH :{BIG_FONT}{BLACK}Acidente de Trem!{}{COMMA} morrem na explosão após a colisão
|
STR_NEWS_TRAIN_CRASH :{BIG_FONT}{BLACK}Acidente de Trem!{}{COMMA} morre{P "" m} na explosão após a colisão
|
||||||
STR_NEWS_ROAD_VEHICLE_CRASH_DRIVER :{BIG_FONT}{BLACK}Acidente Rodoviário!{}Condutor morre na explosão após a colisão com um trem
|
STR_NEWS_ROAD_VEHICLE_CRASH_DRIVER :{BIG_FONT}{BLACK}Acidente Rodoviário!{}Condutor morre na explosão após a colisão com um trem
|
||||||
STR_NEWS_ROAD_VEHICLE_CRASH :{BIG_FONT}{BLACK}Acidente Rodoviário!{}{COMMA} morrem na explosão após a colisão com um trem
|
STR_NEWS_ROAD_VEHICLE_CRASH :{BIG_FONT}{BLACK}Acidente Rodoviário!{}{COMMA} morre{P "" m} na explosão após a colisão com um trem
|
||||||
STR_NEWS_AIRCRAFT_CRASH :{BIG_FONT}{BLACK}Acidente Aéreo!{}{COMMA} morrem na explosão em {STATION}
|
STR_NEWS_AIRCRAFT_CRASH :{BIG_FONT}{BLACK}Acidente Aéreo!{}{COMMA} morre{P "" m} na explosão em {STATION}
|
||||||
STR_NEWS_PLANE_CRASH_OUT_OF_FUEL :{BIG_FONT}{BLACK}Acidente Aéreo!{}Aeronave ficou sem combustível, {COMMA} morrem na explosão
|
STR_NEWS_PLANE_CRASH_OUT_OF_FUEL :{BIG_FONT}{BLACK}Acidente Aéreo!{}Aeronave ficou sem combustível, {COMMA} morre{P "" m} na explosão
|
||||||
|
|
||||||
STR_NEWS_DISASTER_ZEPPELIN :{BIG_FONT}{BLACK}Desastre de Zepelim em {STATION}!
|
STR_NEWS_DISASTER_ZEPPELIN :{BIG_FONT}{BLACK}Desastre de Zepelim em {STATION}!
|
||||||
STR_NEWS_DISASTER_SMALL_UFO :{BIG_FONT}{BLACK}Veículo rodoviário destruído em colisão com OVNI!
|
STR_NEWS_DISASTER_SMALL_UFO :{BIG_FONT}{BLACK}Veículo rodoviário destruído em colisão com OVNI!
|
||||||
@@ -988,7 +988,7 @@ STR_GAME_OPTIONS_CURRENCY_ISK :Coroa Islandesa
|
|||||||
STR_GAME_OPTIONS_CURRENCY_ITL :Lira Italiana
|
STR_GAME_OPTIONS_CURRENCY_ITL :Lira Italiana
|
||||||
STR_GAME_OPTIONS_CURRENCY_NLG :Florim Holandês
|
STR_GAME_OPTIONS_CURRENCY_NLG :Florim Holandês
|
||||||
STR_GAME_OPTIONS_CURRENCY_NOK :Coroa Norueguesa
|
STR_GAME_OPTIONS_CURRENCY_NOK :Coroa Norueguesa
|
||||||
STR_GAME_OPTIONS_CURRENCY_PLN :Złoty Polonês
|
STR_GAME_OPTIONS_CURRENCY_PLN :Zloty Polonês
|
||||||
STR_GAME_OPTIONS_CURRENCY_RON :Leu Romeno
|
STR_GAME_OPTIONS_CURRENCY_RON :Leu Romeno
|
||||||
STR_GAME_OPTIONS_CURRENCY_RUR :Rublo Russo
|
STR_GAME_OPTIONS_CURRENCY_RUR :Rublo Russo
|
||||||
STR_GAME_OPTIONS_CURRENCY_SIT :Tolar Esloveno
|
STR_GAME_OPTIONS_CURRENCY_SIT :Tolar Esloveno
|
||||||
@@ -1188,7 +1188,7 @@ STR_SUBSIDY_X4 :x4
|
|||||||
|
|
||||||
###length 4
|
###length 4
|
||||||
STR_CLIMATE_TEMPERATE_LANDSCAPE :Clima temperado
|
STR_CLIMATE_TEMPERATE_LANDSCAPE :Clima temperado
|
||||||
STR_CLIMATE_SUB_ARCTIC_LANDSCAPE :Clima subárctico
|
STR_CLIMATE_SUB_ARCTIC_LANDSCAPE :Clima subártico
|
||||||
STR_CLIMATE_SUB_TROPICAL_LANDSCAPE :Clima subtropical
|
STR_CLIMATE_SUB_TROPICAL_LANDSCAPE :Clima subtropical
|
||||||
STR_CLIMATE_TOYLAND_LANDSCAPE :Terra dos Brinquedos
|
STR_CLIMATE_TOYLAND_LANDSCAPE :Terra dos Brinquedos
|
||||||
|
|
||||||
@@ -1523,8 +1523,8 @@ STR_CONFIG_SETTING_AUTORENEW_MONTHS_HELPTEXT :Idade relativa
|
|||||||
STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_BEFORE :{COMMA} m{P 0 ês eses} antes
|
STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_BEFORE :{COMMA} m{P 0 ês eses} antes
|
||||||
STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_AFTER :{COMMA} m{P 0 ês eses} depois
|
STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_AFTER :{COMMA} m{P 0 ês eses} depois
|
||||||
|
|
||||||
STR_CONFIG_SETTING_AUTORENEW_MONEY :Quantia mínima de dinheiro necessária para fazer renovação automática: {STRING}
|
STR_CONFIG_SETTING_AUTORENEW_MONEY :Dinheiro mínimo necessário para fazer renovação automática: {STRING}
|
||||||
STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Quantia mínima de dinheiro que deve existir na conta bancária para a renovação automática de veículos ser considerada
|
STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Quantia mínima de dinheiro que deve permanecer no banco antes de considerar a renovação automática de veículos
|
||||||
|
|
||||||
STR_CONFIG_SETTING_ERRMSG_DURATION :Duração da mensagem de erro: {STRING}
|
STR_CONFIG_SETTING_ERRMSG_DURATION :Duração da mensagem de erro: {STRING}
|
||||||
STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Tempo de exibição de mensagens de erro numa janela vermelha. Algumas mensagens de erro (crítico) não são fechadas automaticamente após este tempo e precisam ser fechadas manualmente
|
STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Tempo de exibição de mensagens de erro numa janela vermelha. Algumas mensagens de erro (crítico) não são fechadas automaticamente após este tempo e precisam ser fechadas manualmente
|
||||||
@@ -2461,8 +2461,8 @@ STR_NETWORK_CONNECTING_SPECIAL_2 :{BLACK}Obtendo
|
|||||||
|
|
||||||
STR_NETWORK_CONNECTION_DISCONNECT :{BLACK}Desconectar
|
STR_NETWORK_CONNECTION_DISCONNECT :{BLACK}Desconectar
|
||||||
|
|
||||||
STR_NETWORK_NEED_GAME_PASSWORD_CAPTION :{WHITE}Servidor protegido. Introduza a senha
|
STR_NETWORK_NEED_GAME_PASSWORD_CAPTION :{WHITE}Servidor protegido. Digite a senha
|
||||||
STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION :{WHITE}Empresa protegida. Introduza a senha
|
STR_NETWORK_NEED_COMPANY_PASSWORD_CAPTION :{WHITE}Empresa protegida. Digite a senha
|
||||||
|
|
||||||
# Network company list added strings
|
# Network company list added strings
|
||||||
STR_NETWORK_COMPANY_LIST_CLIENT_LIST :Jogadores conectados
|
STR_NETWORK_COMPANY_LIST_CLIENT_LIST :Jogadores conectados
|
||||||
@@ -3088,7 +3088,7 @@ STR_LAND_AREA_INFORMATION_BUILD_DATE :{BLACK}Constru
|
|||||||
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Classe da estação: {LTBLUE}{STRING}
|
STR_LAND_AREA_INFORMATION_STATION_CLASS :{BLACK}Classe da estação: {LTBLUE}{STRING}
|
||||||
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Tipo de estação: {LTBLUE}{STRING}
|
STR_LAND_AREA_INFORMATION_STATION_TYPE :{BLACK}Tipo de estação: {LTBLUE}{STRING}
|
||||||
STR_LAND_AREA_INFORMATION_AIRPORT_CLASS :{BLACK}Classe do aeroporto: {LTBLUE}{STRING}
|
STR_LAND_AREA_INFORMATION_AIRPORT_CLASS :{BLACK}Classe do aeroporto: {LTBLUE}{STRING}
|
||||||
STR_LAND_AREA_INFORMATION_AIRPORT_NAME :{BLACK}Nome do aeroporto: {LTBLUE}{STRING}
|
STR_LAND_AREA_INFORMATION_AIRPORT_NAME :{BLACK}Tipo de aeroporto: {LTBLUE}{STRING}
|
||||||
STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Nome do quadrado do aeroporto: {LTBLUE}{STRING}
|
STR_LAND_AREA_INFORMATION_AIRPORTTILE_NAME :{BLACK}Nome do quadrado do aeroporto: {LTBLUE}{STRING}
|
||||||
STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
|
STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: {LTBLUE}{STRING}
|
||||||
STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Carga aceita: {LTBLUE}
|
STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Carga aceita: {LTBLUE}
|
||||||
@@ -3390,7 +3390,7 @@ STR_SE_MAPGEN_FLAT_WORLD_HEIGHT_QUERY_CAPT :{WHITE}Modifica
|
|||||||
STR_GENERATION_WORLD :{WHITE}Gerando Mundo...
|
STR_GENERATION_WORLD :{WHITE}Gerando Mundo...
|
||||||
STR_GENERATION_ABORT :{BLACK}Cancelar
|
STR_GENERATION_ABORT :{BLACK}Cancelar
|
||||||
STR_GENERATION_ABORT_CAPTION :{WHITE}Cancelar Geração de Mundo
|
STR_GENERATION_ABORT_CAPTION :{WHITE}Cancelar Geração de Mundo
|
||||||
STR_GENERATION_ABORT_MESSAGE :{YELLOW}Você realmente deseja cancelar a geração?
|
STR_GENERATION_ABORT_MESSAGE :{YELLOW}Você quer mesmo cancelar a geração?
|
||||||
STR_GENERATION_PROGRESS :{WHITE}{NUM}% completo
|
STR_GENERATION_PROGRESS :{WHITE}{NUM}% completo
|
||||||
STR_GENERATION_PROGRESS_NUM :{BLACK}{NUM} / {NUM}
|
STR_GENERATION_PROGRESS_NUM :{BLACK}{NUM} / {NUM}
|
||||||
STR_GENERATION_WORLD_GENERATION :{BLACK}Geração de mundo
|
STR_GENERATION_WORLD_GENERATION :{BLACK}Geração de mundo
|
||||||
@@ -3489,7 +3489,9 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_ROAD_TYPE :Tipo de estrada
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Parâmetro da variável 60+x do NewGRF (hexadecimal)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Parâmetro da variável 60+x do NewGRF (hexadecimal)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Alinhando sprite {COMMA} ({STRING})
|
STR_SPRITE_ALIGNER_CAPTION_NO_ACTION :{WHITE}Alinhando sprite: ({STRING}:{NUM})
|
||||||
|
STR_SPRITE_ALIGNER_CAPTION_ACTIONA :{WHITE}Alinhando sprite: Ação 0xA, {COMMA} ({STRING}:{NUM})
|
||||||
|
STR_SPRITE_ALIGNER_CAPTION_ACTION5 :{WHITE}Alinhando sprite: Ação 0x5, tipe {HEX}, {COMMA} ({STRING}:{NUM})
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Próximo sprite
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Próximo sprite
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Ir para o próximo sprite normal, pulando quaisquer sprites falsos/recoloridos/tipo de letra, retornando do último sprite para o primeiro
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Ir para o próximo sprite normal, pulando quaisquer sprites falsos/recoloridos/tipo de letra, retornando do último sprite para o primeiro
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Ir para o sprite
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Ir para o sprite
|
||||||
@@ -3498,6 +3500,7 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Sprite a
|
|||||||
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Ir para o sprite normal anterior, pulando quaisquer sprites falsos/recoloridos/tipo de letra, retornando do primeiro sprite para o último
|
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Ir para o sprite normal anterior, pulando quaisquer sprites falsos/recoloridos/tipo de letra, retornando do primeiro sprite para o último
|
||||||
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Representação do sprite atualmente selecionado. O alinhamento é ignorado ao desenhar este sprite
|
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Representação do sprite atualmente selecionado. O alinhamento é ignorado ao desenhar este sprite
|
||||||
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Mover o sprite, alterando os deslocamentos X e Y. Ctrl+Clique para mover o sprite 8 unidades por vez
|
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Mover o sprite, alterando os deslocamentos X e Y. Ctrl+Clique para mover o sprite 8 unidades por vez
|
||||||
|
STR_SPRITE_ALIGNER_SPRITE :{STRING}:{NUM}
|
||||||
|
|
||||||
###length 2
|
###length 2
|
||||||
STR_SPRITE_ALIGNER_CENTRE_OFFSET :{BLACK}Deslocamento centralizado
|
STR_SPRITE_ALIGNER_CENTRE_OFFSET :{BLACK}Deslocamento centralizado
|
||||||
@@ -3588,7 +3591,7 @@ STR_INVALID_VEHICLE :<veículo invá
|
|||||||
|
|
||||||
# NewGRF scanning window
|
# NewGRF scanning window
|
||||||
STR_NEWGRF_SCAN_CAPTION :{WHITE}Procurando NewGRFs
|
STR_NEWGRF_SCAN_CAPTION :{WHITE}Procurando NewGRFs
|
||||||
STR_NEWGRF_SCAN_MESSAGE :{BLACK}Procurando NewGRFs. Dependendo da quantidade isto pode demorar...
|
STR_NEWGRF_SCAN_MESSAGE :{BLACK}Procurando NewGRFs. Dependendo da quantidade, isso pode demorar...
|
||||||
STR_NEWGRF_SCAN_STATUS :{BLACK}{NUM} NewGRF{P "" s} procurado{P "" s} de {NUM} NewGRF{P "" s} estimado{P "" s}
|
STR_NEWGRF_SCAN_STATUS :{BLACK}{NUM} NewGRF{P "" s} procurado{P "" s} de {NUM} NewGRF{P "" s} estimado{P "" s}
|
||||||
STR_NEWGRF_SCAN_ARCHIVES :Procurando por arquivos
|
STR_NEWGRF_SCAN_ARCHIVES :Procurando por arquivos
|
||||||
|
|
||||||
@@ -4591,7 +4594,7 @@ STR_ORDER_CONDITIONAL_REMAINING_LIFETIME :Tempo de vida r
|
|||||||
STR_ORDER_CONDITIONAL_MAX_RELIABILITY :Confiabilidade máxima
|
STR_ORDER_CONDITIONAL_MAX_RELIABILITY :Confiabilidade máxima
|
||||||
###next-name-looks-similar
|
###next-name-looks-similar
|
||||||
|
|
||||||
STR_ORDER_CONDITIONAL_COMPARATOR_TOOLTIP :{BLACK}Como comparar os dados do veículo com o valor passado
|
STR_ORDER_CONDITIONAL_COMPARATOR_TOOLTIP :{BLACK}Como comparar os dados do veículo com o valor que foi passado
|
||||||
STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS :for igual a
|
STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS :for igual a
|
||||||
STR_ORDER_CONDITIONAL_COMPARATOR_NOT_EQUALS :for diferente de
|
STR_ORDER_CONDITIONAL_COMPARATOR_NOT_EQUALS :for diferente de
|
||||||
STR_ORDER_CONDITIONAL_COMPARATOR_LESS_THAN :for menor que
|
STR_ORDER_CONDITIONAL_COMPARATOR_LESS_THAN :for menor que
|
||||||
@@ -4922,7 +4925,7 @@ STR_ERROR_PNGMAP_FILE_NOT_FOUND :{WHITE}... arqu
|
|||||||
STR_ERROR_PNGMAP_IMAGE_TYPE :{WHITE}... não foi possível converter o tipo de imagem. A imagem deve ser PNG de 8 ou 24-bit
|
STR_ERROR_PNGMAP_IMAGE_TYPE :{WHITE}... não foi possível converter o tipo de imagem. A imagem deve ser PNG de 8 ou 24-bit
|
||||||
STR_ERROR_PNGMAP_MISC :{WHITE}... alguma coisa deu errado (provavelmente arquivo corrompido)
|
STR_ERROR_PNGMAP_MISC :{WHITE}... alguma coisa deu errado (provavelmente arquivo corrompido)
|
||||||
|
|
||||||
STR_ERROR_BMPMAP :{WHITE}Não é possível carregar paisagem de BMP...
|
STR_ERROR_BMPMAP :{WHITE}Não foi possível carregar paisagem de BMP...
|
||||||
STR_ERROR_BMPMAP_IMAGE_TYPE :{WHITE}... não foi possível converter o tipo de imagem
|
STR_ERROR_BMPMAP_IMAGE_TYPE :{WHITE}... não foi possível converter o tipo de imagem
|
||||||
|
|
||||||
STR_ERROR_HEIGHTMAP_TOO_LARGE :{WHITE}... imagem é muito grande
|
STR_ERROR_HEIGHTMAP_TOO_LARGE :{WHITE}... imagem é muito grande
|
||||||
@@ -4935,7 +4938,7 @@ STR_WARNING_FALLBACK_SOUNDSET :{WHITE}Somente
|
|||||||
|
|
||||||
# Screenshot related messages
|
# Screenshot related messages
|
||||||
STR_WARNING_SCREENSHOT_SIZE_CAPTION :{WHITE}Captura tela enorme
|
STR_WARNING_SCREENSHOT_SIZE_CAPTION :{WHITE}Captura tela enorme
|
||||||
STR_WARNING_SCREENSHOT_SIZE_MESSAGE :{YELLOW}A captura de tela terá uma resolução de {COMMA}x{COMMA} pixels. Essa captura pode demorar. Deseja continuar?
|
STR_WARNING_SCREENSHOT_SIZE_MESSAGE :{YELLOW}A captura de tela terá uma resolução de {COMMA}x{COMMA} pixels. Fazer essa captura pode demorar. Você deseja continuar?
|
||||||
|
|
||||||
STR_MESSAGE_HEIGHTMAP_SUCCESSFULLY :{WHITE}Mapa de altitudes '{STRING}' gravado com sucesso. O pico mais alto tem {NUM}
|
STR_MESSAGE_HEIGHTMAP_SUCCESSFULLY :{WHITE}Mapa de altitudes '{STRING}' gravado com sucesso. O pico mais alto tem {NUM}
|
||||||
STR_MESSAGE_SCREENSHOT_SUCCESSFULLY :{WHITE}Captura de tela '{STRING}' gravada com sucesso
|
STR_MESSAGE_SCREENSHOT_SUCCESSFULLY :{WHITE}Captura de tela '{STRING}' gravada com sucesso
|
||||||
@@ -5103,7 +5106,7 @@ STR_ERROR_AIRCRAFT_MUST_BE_STOPPED_INSIDE_HANGAR :{WHITE}... deve
|
|||||||
STR_ERROR_TRAINS_CAN_ONLY_BE_ALTERED_INSIDE_A_DEPOT :{WHITE}Trens só podem ser modificados quando estão parados num depósito
|
STR_ERROR_TRAINS_CAN_ONLY_BE_ALTERED_INSIDE_A_DEPOT :{WHITE}Trens só podem ser modificados quando estão parados num depósito
|
||||||
STR_ERROR_TRAIN_TOO_LONG :{WHITE}Trem é muito longo
|
STR_ERROR_TRAIN_TOO_LONG :{WHITE}Trem é muito longo
|
||||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_RAIL_VEHICLE :{WHITE}Não é possível inverter a direção do veículo...
|
STR_ERROR_CAN_T_REVERSE_DIRECTION_RAIL_VEHICLE :{WHITE}Não é possível inverter a direção do veículo...
|
||||||
STR_ERROR_CAN_T_REVERSE_DIRECTION_RAIL_VEHICLE_MULTIPLE_UNITS :{WHITE}... composto por várias unidades
|
STR_ERROR_CAN_T_REVERSE_DIRECTION_RAIL_VEHICLE_MULTIPLE_UNITS :{WHITE}... é composto por várias unidades
|
||||||
STR_ERROR_INCOMPATIBLE_RAIL_TYPES :Tipos de trilhos incompatíveis
|
STR_ERROR_INCOMPATIBLE_RAIL_TYPES :Tipos de trilhos incompatíveis
|
||||||
|
|
||||||
STR_ERROR_CAN_T_MOVE_VEHICLE :{WHITE}Não é possível mover o veículo...
|
STR_ERROR_CAN_T_MOVE_VEHICLE :{WHITE}Não é possível mover o veículo...
|
||||||
@@ -5122,7 +5125,7 @@ STR_ERROR_UNBUNCHING_NO_UNBUNCHING_CONDITIONAL :{WHITE}... não
|
|||||||
|
|
||||||
# Autoreplace related errors
|
# Autoreplace related errors
|
||||||
STR_ERROR_TRAIN_TOO_LONG_AFTER_REPLACEMENT :{WHITE}{VEHICLE} fica muito longo depois da substituição
|
STR_ERROR_TRAIN_TOO_LONG_AFTER_REPLACEMENT :{WHITE}{VEHICLE} fica muito longo depois da substituição
|
||||||
STR_ERROR_AUTOREPLACE_NOTHING_TO_DO :{WHITE}Regras de substituição automática/renovação não foram aplicadas
|
STR_ERROR_AUTOREPLACE_NOTHING_TO_DO :{WHITE}Nenhuma regra de substituição automática/renovação aplicada
|
||||||
STR_ERROR_AUTOREPLACE_MONEY_LIMIT :(limite de dinheiro)
|
STR_ERROR_AUTOREPLACE_MONEY_LIMIT :(limite de dinheiro)
|
||||||
STR_ERROR_AUTOREPLACE_INCOMPATIBLE_CARGO :{WHITE}O novo veículo não pode transportar {STRING}
|
STR_ERROR_AUTOREPLACE_INCOMPATIBLE_CARGO :{WHITE}O novo veículo não pode transportar {STRING}
|
||||||
STR_ERROR_AUTOREPLACE_INCOMPATIBLE_REFIT :{WHITE}O novo veículo não pode ser adaptado na ordem {NUM}
|
STR_ERROR_AUTOREPLACE_INCOMPATIBLE_REFIT :{WHITE}O novo veículo não pode ser adaptado na ordem {NUM}
|
||||||
@@ -5347,15 +5350,15 @@ STR_DESKTOP_SHORTCUT_COMMENT :Um jogo de simu
|
|||||||
|
|
||||||
# Translatable descriptions in media/baseset/*.ob* files
|
# Translatable descriptions in media/baseset/*.ob* files
|
||||||
###external 10
|
###external 10
|
||||||
STR_BASEGRAPHICS_DOS_DESCRIPTION :Gráficos Originais do Transport Tycoon Deluxe, edição DOS.
|
STR_BASEGRAPHICS_DOS_DESCRIPTION :Gráficos originais do Transport Tycoon Deluxe, edição DOS.
|
||||||
STR_BASEGRAPHICS_DOS_DE_DESCRIPTION :Gráficos Originais do Transport Tycoon Deluxe, edição DOS (alemã).
|
STR_BASEGRAPHICS_DOS_DE_DESCRIPTION :Gráficos originais do Transport Tycoon Deluxe, edição DOS (alemã).
|
||||||
STR_BASEGRAPHICS_WIN_DESCRIPTION :Gráficos Originais do Transport Tycoon, edição Windows.
|
STR_BASEGRAPHICS_WIN_DESCRIPTION :Gráficos originais do Transport Tycoon Deluxe, edição Windows.
|
||||||
STR_BASESOUNDS_DOS_DESCRIPTION :Sons Originais do Transport Tycoon Deluxe, edição DOS.
|
STR_BASESOUNDS_DOS_DESCRIPTION :Sons originais do Transport Tycoon Deluxe, edição DOS.
|
||||||
STR_BASESOUNDS_WIN_DESCRIPTION :Sons Originais do Transport Tycoon Deluxe, edição Windows.
|
STR_BASESOUNDS_WIN_DESCRIPTION :Sons originais do Transport Tycoon Deluxe, edição Windows.
|
||||||
STR_BASESOUNDS_NONE_DESCRIPTION :Um conjunto de sons vazio.
|
STR_BASESOUNDS_NONE_DESCRIPTION :Um conjunto de sons vazio.
|
||||||
STR_BASEMUSIC_WIN_DESCRIPTION :Música Original do Transport Tycoon Deluxe, edição Windows.
|
STR_BASEMUSIC_WIN_DESCRIPTION :Música original do Transport Tycoon Deluxe, edição Windows.
|
||||||
STR_BASEMUSIC_DOS_DESCRIPTION :Música Original do Transport Tycoon Deluxe, edição DOS.
|
STR_BASEMUSIC_DOS_DESCRIPTION :Música original do Transport Tycoon Deluxe, edição DOS.
|
||||||
STR_BASEMUSIC_TTO_DESCRIPTION :Música Original do Transport Tycoon, edição DOS (Original/Editor Mundial).
|
STR_BASEMUSIC_TTO_DESCRIPTION :Música original do Transport Tycoon, edição DOS (Original/Editor Mundial).
|
||||||
STR_BASEMUSIC_NONE_DESCRIPTION :Um conjunto de músicas vazio.
|
STR_BASEMUSIC_NONE_DESCRIPTION :Um conjunto de músicas vazio.
|
||||||
|
|
||||||
##id 0x2000
|
##id 0x2000
|
||||||
@@ -5834,6 +5837,7 @@ STR_JUST_DATE_ISO :{DATE_ISO}
|
|||||||
STR_JUST_STRING :{STRING}
|
STR_JUST_STRING :{STRING}
|
||||||
STR_JUST_STRING1 :{STRING}
|
STR_JUST_STRING1 :{STRING}
|
||||||
STR_JUST_STRING2 :{STRING}
|
STR_JUST_STRING2 :{STRING}
|
||||||
|
STR_JUST_STRING4 :{STRING}
|
||||||
STR_JUST_STRING_STRING :{STRING}{STRING}
|
STR_JUST_STRING_STRING :{STRING}{STRING}
|
||||||
STR_JUST_RAW_STRING :{STRING}
|
STR_JUST_RAW_STRING :{STRING}
|
||||||
STR_JUST_BIG_RAW_STRING :{BIG_FONT}{STRING}
|
STR_JUST_BIG_RAW_STRING :{BIG_FONT}{STRING}
|
||||||
|
@@ -3053,7 +3053,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_RAIL_TYPE :Вид желе
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Параметър на променливата 60+x на NewGRF (hexadecimal)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Параметър на променливата 60+x на NewGRF (hexadecimal)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Aligning sprite {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Следващ sprite
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Следващ sprite
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Продължи към следващия нормален sprite, Пропускайки всички псевдо/прерисувани/текстови sprite и ги облечи в края
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Продължи към следващия нормален sprite, Пропускайки всички псевдо/прерисувани/текстови sprite и ги облечи в края
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Иди на sprite
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Иди на sprite
|
||||||
|
@@ -525,7 +525,7 @@ STR_NEWS_MENU_MESSAGE_HISTORY_MENU :Historial de mi
|
|||||||
STR_NEWS_MENU_DELETE_ALL_MESSAGES :Esborra tots els missatges
|
STR_NEWS_MENU_DELETE_ALL_MESSAGES :Esborra tots els missatges
|
||||||
|
|
||||||
# About menu
|
# About menu
|
||||||
STR_ABOUT_MENU_LAND_BLOCK_INFO :Informació de la casella
|
STR_ABOUT_MENU_LAND_BLOCK_INFO :Detalls de les caselles
|
||||||
STR_ABOUT_MENU_HELP :Ajuda i manuals
|
STR_ABOUT_MENU_HELP :Ajuda i manuals
|
||||||
STR_ABOUT_MENU_TOGGLE_CONSOLE :Commuta la consola
|
STR_ABOUT_MENU_TOGGLE_CONSOLE :Commuta la consola
|
||||||
STR_ABOUT_MENU_AI_DEBUG :Depuració de les IA i l'script de partida
|
STR_ABOUT_MENU_AI_DEBUG :Depuració de les IA i l'script de partida
|
||||||
@@ -3070,7 +3070,7 @@ STR_INDUSTRY_CARGOES_SELECT_INDUSTRY :{BLACK}Seleccio
|
|||||||
STR_INDUSTRY_CARGOES_SELECT_INDUSTRY_TOOLTIP :{BLACK}Selecciona la indústria que vols mostrar
|
STR_INDUSTRY_CARGOES_SELECT_INDUSTRY_TOOLTIP :{BLACK}Selecciona la indústria que vols mostrar
|
||||||
|
|
||||||
# Land area window
|
# Land area window
|
||||||
STR_LAND_AREA_INFORMATION_CAPTION :{WHITE}Informació del terreny
|
STR_LAND_AREA_INFORMATION_CAPTION :{WHITE}Detalls de la casella
|
||||||
STR_LAND_AREA_INFORMATION_LOCATION_TOOLTIP :{BLACK}Centra la vista principal al lloc on està la casella. Amb Ctrl+clic, s'obre una vista nova on hi ha la casella.
|
STR_LAND_AREA_INFORMATION_LOCATION_TOOLTIP :{BLACK}Centra la vista principal al lloc on està la casella. Amb Ctrl+clic, s'obre una vista nova on hi ha la casella.
|
||||||
STR_LAND_AREA_INFORMATION_COST_TO_CLEAR_N_A :{BLACK}Cost de neteja: {LTBLUE}N/A
|
STR_LAND_AREA_INFORMATION_COST_TO_CLEAR_N_A :{BLACK}Cost de neteja: {LTBLUE}N/A
|
||||||
STR_LAND_AREA_INFORMATION_COST_TO_CLEAR :{BLACK}Cost de neteja: {RED}{CURRENCY_LONG}
|
STR_LAND_AREA_INFORMATION_COST_TO_CLEAR :{BLACK}Cost de neteja: {RED}{CURRENCY_LONG}
|
||||||
@@ -3489,7 +3489,9 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_ROAD_TYPE :Tipus de carret
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Paràmetre NewGRF variable 60+x (hexadecimal)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Paràmetre NewGRF variable 60+x (hexadecimal)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Alineant sprite {COMMA} ({STRING})
|
STR_SPRITE_ALIGNER_CAPTION_NO_ACTION :{WHITE}Alineació de l'sprite: ({STRING}:{NUM})
|
||||||
|
STR_SPRITE_ALIGNER_CAPTION_ACTIONA :{WHITE}Alineació de l'sprite: Acció 0xA, {COMMA} ({STRING}:{NUM})
|
||||||
|
STR_SPRITE_ALIGNER_CAPTION_ACTION5 :{WHITE}Alineació de l'sprite: Acció 0x5, tipus {HEX}, {COMMA} ({STRING}:{NUM})
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Sprite següent
|
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_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}Vés a l'sprite
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Vés a l'sprite
|
||||||
@@ -3498,6 +3500,7 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Sprite a
|
|||||||
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_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_SPRITE_TOOLTIP :{BLACK}Representació de l'sprite seleccionat actualment. L'alineació s'ignora quan es dibuixa aquest sprite
|
||||||
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Desplaça l'sprite un píxel en el sentit indicat. Amb Ctrl+Clic el desplaça 8 píxels.
|
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Desplaça l'sprite un píxel en el sentit indicat. Amb Ctrl+Clic el desplaça 8 píxels.
|
||||||
|
STR_SPRITE_ALIGNER_SPRITE :{STRING}:{NUM}
|
||||||
|
|
||||||
###length 2
|
###length 2
|
||||||
STR_SPRITE_ALIGNER_CENTRE_OFFSET :{BLACK}Modificador centrat
|
STR_SPRITE_ALIGNER_CENTRE_OFFSET :{BLACK}Modificador centrat
|
||||||
@@ -5834,6 +5837,7 @@ STR_JUST_DATE_ISO :{DATE_ISO}
|
|||||||
STR_JUST_STRING :{STRING}
|
STR_JUST_STRING :{STRING}
|
||||||
STR_JUST_STRING1 :{STRING}
|
STR_JUST_STRING1 :{STRING}
|
||||||
STR_JUST_STRING2 :{STRING}
|
STR_JUST_STRING2 :{STRING}
|
||||||
|
STR_JUST_STRING4 :{STRING}
|
||||||
STR_JUST_STRING_STRING :{STRING}{STRING}
|
STR_JUST_STRING_STRING :{STRING}{STRING}
|
||||||
STR_JUST_RAW_STRING :{STRING}
|
STR_JUST_RAW_STRING :{STRING}
|
||||||
STR_JUST_BIG_RAW_STRING :{BIG_FONT}{STRING}
|
STR_JUST_BIG_RAW_STRING :{BIG_FONT}{STRING}
|
||||||
|
@@ -3172,7 +3172,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_RAIL_TYPE :Vrsta željezni
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF varijabla 60+x parametar (heksadecimalni)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF varijabla 60+x parametar (heksadecimalni)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Poravnanje sprite-a {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Sljedeći sprite
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Sljedeći sprite
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Otiđi na sljedeći normalni sprite, preskačući svaki pseudo/prebojani/font sprite i nakon dolaska na zadnjeg prebaci na prvi
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Otiđi na sljedeći normalni sprite, preskačući svaki pseudo/prebojani/font sprite i nakon dolaska na zadnjeg prebaci na prvi
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Otiđi na sprite
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Otiđi na sprite
|
||||||
|
@@ -3574,7 +3574,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_ROAD_TYPE :Typ silnice
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Hodnota NewGRF proměnné 60+x (šestnáctkově)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Hodnota NewGRF proměnné 60+x (šestnáctkově)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Zarovávání spritu {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Další sprite
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Další sprite
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Jít na další normální sprite (s grafikou), přičemž se přeskakují pseudo-/barvící/znakové sprity a při dosažení konce se jde zase na začátek
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Jít na další normální sprite (s grafikou), přičemž se přeskakují pseudo-/barvící/znakové sprity a při dosažení konce se jde zase na začátek
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Jít na sprite
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Jít na sprite
|
||||||
|
@@ -3488,7 +3488,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_ROAD_TYPE :Vej type
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF variabel 60+x parameter (hexadecimal)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF variabel 60+x parameter (hexadecimal)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Justerer sprite {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Næste sprite
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Næste sprite
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Fortsæt til næste normale sprite, spring pseudo/omfarvning/font-sprites over og med omløb fra enden til starten
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Fortsæt til næste normale sprite, spring pseudo/omfarvning/font-sprites over og med omløb fra enden til starten
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Gå til sprite
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Gå til sprite
|
||||||
|
@@ -3488,7 +3488,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_ROAD_TYPE :Wegtype
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Parameter 60+x voor NewGRF-variabele (hexadecimaal)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Parameter 60+x voor NewGRF-variabele (hexadecimaal)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Sprite uitlijnen {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Volgende sprite
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Volgende sprite
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Doorgaan met volgende normale sprite, alle pseudo-/herkleur-/lettertype-sprites overslaan; bij het einde terug naar het begin
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Doorgaan met volgende normale sprite, alle pseudo-/herkleur-/lettertype-sprites overslaan; bij het einde terug naar het begin
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Ga naar sprite
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Ga naar sprite
|
||||||
|
@@ -3488,7 +3488,9 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_ROAD_TYPE :Road type
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF variable 60+x parameter (hexadecimal)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF variable 60+x parameter (hexadecimal)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Aligning sprite {COMMA} ({RAW_STRING})
|
STR_SPRITE_ALIGNER_CAPTION_NO_ACTION :{WHITE}Aligning sprite: ({RAW_STRING}:{NUM})
|
||||||
|
STR_SPRITE_ALIGNER_CAPTION_ACTIONA :{WHITE}Aligning sprite: Action 0xA, {COMMA} ({RAW_STRING}:{NUM})
|
||||||
|
STR_SPRITE_ALIGNER_CAPTION_ACTION5 :{WHITE}Aligning sprite: Action 0x5, type {HEX}, {COMMA} ({RAW_STRING}:{NUM})
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Next sprite
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Next sprite
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Proceed to the next normal sprite, skipping any pseudo/recolour/font sprites and wrapping around from the last sprite to the first
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Proceed to the next normal sprite, skipping any pseudo/recolour/font sprites and wrapping around from the last sprite to the first
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Go to sprite
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Go to sprite
|
||||||
@@ -3497,6 +3499,7 @@ 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_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_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. Ctrl+Click to move the sprite eight units at a time
|
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Move the sprite around, changing the X and Y offsets. Ctrl+Click to move the sprite eight units at a time
|
||||||
|
STR_SPRITE_ALIGNER_SPRITE :{RAW_STRING}:{NUM}
|
||||||
|
|
||||||
###length 2
|
###length 2
|
||||||
STR_SPRITE_ALIGNER_CENTRE_OFFSET :{BLACK}Offset centred
|
STR_SPRITE_ALIGNER_CENTRE_OFFSET :{BLACK}Offset centred
|
||||||
@@ -5833,6 +5836,7 @@ STR_JUST_DATE_ISO :{DATE_ISO}
|
|||||||
STR_JUST_STRING :{STRING}
|
STR_JUST_STRING :{STRING}
|
||||||
STR_JUST_STRING1 :{STRING1}
|
STR_JUST_STRING1 :{STRING1}
|
||||||
STR_JUST_STRING2 :{STRING2}
|
STR_JUST_STRING2 :{STRING2}
|
||||||
|
STR_JUST_STRING4 :{STRING4}
|
||||||
STR_JUST_STRING_STRING :{STRING}{STRING}
|
STR_JUST_STRING_STRING :{STRING}{STRING}
|
||||||
STR_JUST_RAW_STRING :{RAW_STRING}
|
STR_JUST_RAW_STRING :{RAW_STRING}
|
||||||
STR_JUST_BIG_RAW_STRING :{BIG_FONT}{RAW_STRING}
|
STR_JUST_BIG_RAW_STRING :{BIG_FONT}{RAW_STRING}
|
||||||
|
@@ -3488,7 +3488,9 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_ROAD_TYPE :Road type
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF variable 60+x parameter (hexadecimal)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF variable 60+x parameter (hexadecimal)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Aligning sprite {COMMA} ({STRING})
|
STR_SPRITE_ALIGNER_CAPTION_NO_ACTION :{WHITE}Aligning sprite: ({STRING}:{NUM})
|
||||||
|
STR_SPRITE_ALIGNER_CAPTION_ACTIONA :{WHITE}Aligning sprite: Action 0xA, {COMMA} ({STRING}:{NUM})
|
||||||
|
STR_SPRITE_ALIGNER_CAPTION_ACTION5 :{WHITE}Aligning sprite: Action 0x5, type {HEX}, {COMMA} ({STRING}:{NUM})
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Next sprite
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Next sprite
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Proceed to the next normal sprite, skipping any pseudo/recolour/font sprites and wrapping around at the end
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Proceed to the next normal sprite, skipping any pseudo/recolour/font sprites and wrapping around at the end
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Go to sprite
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Go to sprite
|
||||||
@@ -3497,6 +3499,7 @@ 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_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_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_MOVE_TOOLTIP :{BLACK}Move the sprite around, changing the X and Y offsets
|
||||||
|
STR_SPRITE_ALIGNER_SPRITE :{STRING}:{NUM}
|
||||||
|
|
||||||
###length 2
|
###length 2
|
||||||
STR_SPRITE_ALIGNER_CENTRE_OFFSET :{BLACK}Offset centred
|
STR_SPRITE_ALIGNER_CENTRE_OFFSET :{BLACK}Offset centred
|
||||||
@@ -5833,6 +5836,7 @@ STR_JUST_DATE_ISO :{DATE_ISO}
|
|||||||
STR_JUST_STRING :{STRING}
|
STR_JUST_STRING :{STRING}
|
||||||
STR_JUST_STRING1 :{STRING}
|
STR_JUST_STRING1 :{STRING}
|
||||||
STR_JUST_STRING2 :{STRING}
|
STR_JUST_STRING2 :{STRING}
|
||||||
|
STR_JUST_STRING4 :{STRING}
|
||||||
STR_JUST_STRING_STRING :{STRING}{STRING}
|
STR_JUST_STRING_STRING :{STRING}{STRING}
|
||||||
STR_JUST_RAW_STRING :{STRING}
|
STR_JUST_RAW_STRING :{STRING}
|
||||||
STR_JUST_BIG_RAW_STRING :{BIG_FONT}{STRING}
|
STR_JUST_BIG_RAW_STRING :{BIG_FONT}{STRING}
|
||||||
|
@@ -3488,7 +3488,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_ROAD_TYPE :Road type
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF variable 60+x parameter (hexadecimal)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF variable 60+x parameter (hexadecimal)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Aligning sprite {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Next sprite
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Next sprite
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Proceed to the next normal sprite, skipping any pseudo/recolor/font sprites and wrapping around from the last sprite to the first
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Proceed to the next normal sprite, skipping any pseudo/recolor/font sprites and wrapping around from the last sprite to the first
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Go to sprite
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Go to sprite
|
||||||
|
@@ -3541,7 +3541,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_ROAD_TYPE :Tee tüüp
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF muutuf 60+x parameeter (kuueteistkümnendsüsteemis)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF muutuf 60+x parameeter (kuueteistkümnendsüsteemis)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Aligning sprite {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Järgmine sprait
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Järgmine sprait
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Jätka järgmise normaalse spraidini, Jättes vahele iga pseudo/taasvärvitud/fondi spraidid ja pakkides lõpu ümber
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Jätka järgmise normaalse spraidini, Jättes vahele iga pseudo/taasvärvitud/fondi spraidid ja pakkides lõpu ümber
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Mine spraidini
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Mine spraidini
|
||||||
|
@@ -2659,7 +2659,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_RAIL_TYPE :Breyta slag
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF variable 60+x parameter (hexadecimal)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF variable 60+x parameter (hexadecimal)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Aligning sprite {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Next sprite
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Next sprite
|
||||||
|
|
||||||
###length 2
|
###length 2
|
||||||
|
@@ -3488,7 +3488,9 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_ROAD_TYPE :Tien tyyppi
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF muuttujan 60+x parametri (heksadesimaali)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF muuttujan 60+x parametri (heksadesimaali)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Kohdistetaan spriteä {COMMA} ({STRING})
|
STR_SPRITE_ALIGNER_CAPTION_NO_ACTION :{WHITE}Kohdistettava sprite: ({STRING}:{NUM})
|
||||||
|
STR_SPRITE_ALIGNER_CAPTION_ACTIONA :{WHITE}Kohdistettava sprite: Toimenpide 0xA, {COMMA} ({STRING}:{NUM})
|
||||||
|
STR_SPRITE_ALIGNER_CAPTION_ACTION5 :{WHITE}Kohdistettava sprite: Toimenpide 0x5, tyyppi {HEX}, {COMMA} ({STRING}:{NUM})
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Seuraava sprite
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Seuraava sprite
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Siirry seuraavaan tavalliseen spriteen; mahdolliset pseudo-, uudelleenväritys- ja fonttispritet ohitetaan; viimeisen spriten jälkeen siirrytään ensimmäiseen
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Siirry seuraavaan tavalliseen spriteen; mahdolliset pseudo-, uudelleenväritys- ja fonttispritet ohitetaan; viimeisen spriten jälkeen siirrytään ensimmäiseen
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Mene spriteen
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Mene spriteen
|
||||||
@@ -3497,6 +3499,7 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Edelline
|
|||||||
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_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 esitys. Siirrosta ei huomioida tätä spriteä piirrettäessä
|
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Valitun spriten esitys. Siirrosta ei huomioida tätä spriteä piirrettäessä
|
||||||
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Liikuta spriteä ympäriinsä, muuttaen X- ja Y-sijainteja. Ctrl+napsautus siirtää spriteä kahdeksan yksikköä kerralla.
|
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Liikuta spriteä ympäriinsä, muuttaen X- ja Y-sijainteja. Ctrl+napsautus siirtää spriteä kahdeksan yksikköä kerralla.
|
||||||
|
STR_SPRITE_ALIGNER_SPRITE :{STRING}:{NUM}
|
||||||
|
|
||||||
###length 2
|
###length 2
|
||||||
STR_SPRITE_ALIGNER_CENTRE_OFFSET :{BLACK}Siirros keskitetty
|
STR_SPRITE_ALIGNER_CENTRE_OFFSET :{BLACK}Siirros keskitetty
|
||||||
@@ -3531,10 +3534,10 @@ STR_NEWGRF_ERROR_AFTER_TRANSLATED_FILE :GRF-tiedosto, j
|
|||||||
STR_NEWGRF_ERROR_TOO_MANY_NEWGRFS_LOADED :Liian monta NewGRF:ää on ladattu
|
STR_NEWGRF_ERROR_TOO_MANY_NEWGRFS_LOADED :Liian monta NewGRF:ää on ladattu
|
||||||
STR_NEWGRF_ERROR_STATIC_GRF_CAUSES_DESYNC :Lisäosan {1:STRING} lataaminen staattisena NewGRF:nä lisäosan {2:STRING} kanssa voi johtaa tahdistusvirheisiin
|
STR_NEWGRF_ERROR_STATIC_GRF_CAUSES_DESYNC :Lisäosan {1:STRING} lataaminen staattisena NewGRF:nä lisäosan {2:STRING} kanssa voi johtaa tahdistusvirheisiin
|
||||||
STR_NEWGRF_ERROR_UNEXPECTED_SPRITE :Odottamaton sprite (sprite {3:NUM})
|
STR_NEWGRF_ERROR_UNEXPECTED_SPRITE :Odottamaton sprite (sprite {3:NUM})
|
||||||
STR_NEWGRF_ERROR_UNKNOWN_PROPERTY :Tuntematon Action 0-ominaisuus {4:HEX} (sprite {3:NUM})
|
STR_NEWGRF_ERROR_UNKNOWN_PROPERTY :Tuntematon toimenpiteen 0 ominaisuus {4:HEX} (sprite {3:NUM})
|
||||||
STR_NEWGRF_ERROR_INVALID_ID :Yritys käyttää virheellistä ID:tä (sprite {3:NUM})
|
STR_NEWGRF_ERROR_INVALID_ID :Yritys käyttää virheellistä ID:tä (sprite {3:NUM})
|
||||||
STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} sisältää korruptoituneen spriten. Kaikki korruptoituneet spritet näkyvät punaisina kysymysmerkkeinä (?)
|
STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} sisältää korruptoituneen spriten. Kaikki korruptoituneet spritet näkyvät punaisina kysymysmerkkeinä (?)
|
||||||
STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Sisältää useita Action 8-merkintöjä (sprite {3:NUM})
|
STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Toimenpide 8 esiintyy moneen kertaan (sprite {3:NUM})
|
||||||
STR_NEWGRF_ERROR_READ_BOUNDS :Luku pseudo-spriten ohi (sprite {3:NUM})
|
STR_NEWGRF_ERROR_READ_BOUNDS :Luku pseudo-spriten ohi (sprite {3:NUM})
|
||||||
STR_NEWGRF_ERROR_GRM_FAILED :Pyydetyt GRF-resurssit eivät ole saatavilla (sprite {3:NUM})
|
STR_NEWGRF_ERROR_GRM_FAILED :Pyydetyt GRF-resurssit eivät ole saatavilla (sprite {3:NUM})
|
||||||
STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{2:STRING} poisti käytöstä NewGRF:n {1:STRING}
|
STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{2:STRING} poisti käytöstä NewGRF:n {1:STRING}
|
||||||
@@ -5833,6 +5836,7 @@ STR_JUST_DATE_ISO :{DATE_ISO}
|
|||||||
STR_JUST_STRING :{STRING}
|
STR_JUST_STRING :{STRING}
|
||||||
STR_JUST_STRING1 :{STRING}
|
STR_JUST_STRING1 :{STRING}
|
||||||
STR_JUST_STRING2 :{STRING}
|
STR_JUST_STRING2 :{STRING}
|
||||||
|
STR_JUST_STRING4 :{STRING}
|
||||||
STR_JUST_STRING_STRING :{STRING}{STRING}
|
STR_JUST_STRING_STRING :{STRING}{STRING}
|
||||||
STR_JUST_RAW_STRING :{STRING}
|
STR_JUST_RAW_STRING :{STRING}
|
||||||
STR_JUST_BIG_RAW_STRING :{BIG_FONT}{STRING}
|
STR_JUST_BIG_RAW_STRING :{BIG_FONT}{STRING}
|
||||||
|
@@ -3489,7 +3489,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_ROAD_TYPE :Type de route
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Paramètre de variable NewGRF 60+x (héxadecimal)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Paramètre de variable NewGRF 60+x (héxadecimal)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Alignement du sprite {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Sprite suivant
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Sprite suivant
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Se rendre au prochain sprite normal, en ignorant les pseudo-sprites et les sprites de recoloration et de police, et en bouclant du dernier vers le premier
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Se rendre au prochain sprite normal, en ignorant les pseudo-sprites et les sprites de recoloration et de police, et en bouclant du dernier vers le premier
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Aller au sprite
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Aller au sprite
|
||||||
|
@@ -2806,7 +2806,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_RAIL_TYPE :spoar soart
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF fariabele 60+x parameter (heksadesimaal)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF fariabele 60+x parameter (heksadesimaal)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Rjochted ôfbylding {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Folgend flak
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Folgend flak
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Gean fierder nei de folgjende ôfbylding, sla pseudo/werkleure/lettertype ôfbyldings oer en begjin wer oernei at it ein berikke is
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Gean fierder nei de folgjende ôfbylding, sla pseudo/werkleure/lettertype ôfbyldings oer en begjin wer oernei at it ein berikke is
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Gean nei ôfbylding
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Gean nei ôfbylding
|
||||||
|
@@ -3188,7 +3188,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_RAIL_TYPE :Seòrsa an rèi
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Paramadair 60+x (sia-dheicheach) caochladair NewGRF
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Paramadair 60+x (sia-dheicheach) caochladair NewGRF
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}A' co-thaobhachadh sprite {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}An t-ath sprite
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}An t-ath sprite
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Lean air adhart dhan ath sprite àbhaisteach, a' gearradh leum thairis air sprites mas fhìor/ath-dhathaidh/crutha-chlò is a' pasgadh aig an deireadh gun chiad sprite
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Lean air adhart dhan ath sprite àbhaisteach, a' gearradh leum thairis air sprites mas fhìor/ath-dhathaidh/crutha-chlò is a' pasgadh aig an deireadh gun chiad sprite
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Rach dhan sprite
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Rach dhan sprite
|
||||||
|
@@ -3487,7 +3487,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_ROAD_TYPE :Tipo de estrada
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Parámetro de variable NewGRF 60+x (hexadecimal)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Parámetro de variable NewGRF 60+x (hexadecimal)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Aliñar sprite {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Seguinte sprite
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Seguinte sprite
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Ir ao sprite seguinte, ignorando pseudosprites, sprites recoloreados e sprites de fonte, e volvendo a empezar ao chegar á fin
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Ir ao sprite seguinte, ignorando pseudosprites, sprites recoloreados e sprites de fonte, e volvendo a empezar ao chegar á fin
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Ir a sprite
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Ir a sprite
|
||||||
|
@@ -3489,7 +3489,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_ROAD_TYPE :Straßentyp
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF-Variable 60+x Parameter (hexadecimal)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF-Variable 60+x Parameter (hexadecimal)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Ausrichtung von Sprite {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Nächstes Sprite
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Nächstes Sprite
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Gehe zum nächsten normalen Sprite und überspringe alle Pseudo-, Recolour- und Schriftsprites (springt ggf. vom ersten bis zum letzten Sprite)
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Gehe zum nächsten normalen Sprite und überspringe alle Pseudo-, Recolour- und Schriftsprites (springt ggf. vom ersten bis zum letzten Sprite)
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Gehe zu Sprite
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Gehe zu Sprite
|
||||||
|
@@ -3580,7 +3580,9 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_ROAD_TYPE :Τύπος δρ
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Μεταβλητή NewGRF 60+x παράμετρος (δεκαεξαδικό)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Μεταβλητή NewGRF 60+x παράμετρος (δεκαεξαδικό)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Ευθυγράμμιση sprite {COMMA} ({STRING})
|
STR_SPRITE_ALIGNER_CAPTION_NO_ACTION :{WHITE}Στοίχηση sprite: ({STRING}:{NUM})
|
||||||
|
STR_SPRITE_ALIGNER_CAPTION_ACTIONA :{WHITE}Στοίχηση sprite: Ενέργεια 0xA, {COMMA} ({STRING}:{NUM})
|
||||||
|
STR_SPRITE_ALIGNER_CAPTION_ACTION5 :{WHITE}Στοίχηση sprite: Ενέργεια 0x5, τύπος {HEX}, {COMMA} ({STRING}:{NUM})
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Επόμενο στοιχείο
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Επόμενο στοιχείο
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Συνέχισε στο επόμενο κανονικό sprite, προσπερνώντας οποιοδήποτε ψευδό/επαναναχρωματιζόμενο/γραμματοσειράς sprite και κάνε τις τελικές διαδικασίες στο τέλος
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Συνέχισε στο επόμενο κανονικό sprite, προσπερνώντας οποιοδήποτε ψευδό/επαναναχρωματιζόμενο/γραμματοσειράς sprite και κάνε τις τελικές διαδικασίες στο τέλος
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Μετακίνηση στο στοιχείο
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Μετακίνηση στο στοιχείο
|
||||||
@@ -3589,6 +3591,7 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Προη
|
|||||||
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Προχώρησε στο προηγούμενο κανονικό sprite, προσπερνώντας οποιαδήποτε ψευδό/επαναχρωματιζόμενα/γραμματοσειράς sprites και ξαναεκτέλεσε τη διαδικασία από το πρώτο sprite ως το τελεταίο
|
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Προχώρησε στο προηγούμενο κανονικό sprite, προσπερνώντας οποιαδήποτε ψευδό/επαναχρωματιζόμενα/γραμματοσειράς sprites και ξαναεκτέλεσε τη διαδικασία από το πρώτο sprite ως το τελεταίο
|
||||||
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Επανεμφάνιση του επιλεγμένου sprite. Η ευθυγράμμιση αγνοείται όταν γίνεται η σχεδίαση του sprite
|
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Επανεμφάνιση του επιλεγμένου sprite. Η ευθυγράμμιση αγνοείται όταν γίνεται η σχεδίαση του sprite
|
||||||
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Μετακίνηση του sprite τριγύρω, αλλάζοντας τα στίγματα Χ και Υ. Ctrl+Κλικ για να μετακινήσετε το sprite μονάδες τη φορά.
|
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Μετακίνηση του sprite τριγύρω, αλλάζοντας τα στίγματα Χ και Υ. Ctrl+Κλικ για να μετακινήσετε το sprite μονάδες τη φορά.
|
||||||
|
STR_SPRITE_ALIGNER_SPRITE :{STRING}:{NUM}
|
||||||
|
|
||||||
###length 2
|
###length 2
|
||||||
STR_SPRITE_ALIGNER_CENTRE_OFFSET :{BLACK}Μετατόπιση κέντρου
|
STR_SPRITE_ALIGNER_CENTRE_OFFSET :{BLACK}Μετατόπιση κέντρου
|
||||||
@@ -5937,6 +5940,7 @@ STR_JUST_DATE_ISO :{DATE_ISO}
|
|||||||
STR_JUST_STRING :{STRING}
|
STR_JUST_STRING :{STRING}
|
||||||
STR_JUST_STRING1 :{STRING}
|
STR_JUST_STRING1 :{STRING}
|
||||||
STR_JUST_STRING2 :{STRING}
|
STR_JUST_STRING2 :{STRING}
|
||||||
|
STR_JUST_STRING4 :{STRING}
|
||||||
STR_JUST_STRING_STRING :{STRING}{STRING}
|
STR_JUST_STRING_STRING :{STRING}{STRING}
|
||||||
STR_JUST_RAW_STRING :{STRING}
|
STR_JUST_RAW_STRING :{STRING}
|
||||||
STR_JUST_BIG_RAW_STRING :{BIG_FONT}{STRING}
|
STR_JUST_BIG_RAW_STRING :{BIG_FONT}{STRING}
|
||||||
|
@@ -3069,7 +3069,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_RAIL_TYPE :סוג מסיל
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}משתנה NewGRF פרמטר 60+x (הקסה-דצימלי)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}משתנה NewGRF פרמטר 60+x (הקסה-דצימלי)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}מיישר ספרייט {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}הספרייט הבא
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}הספרייט הבא
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}עבור לספרייט הבא, כאשר נדלג על כל הספרייטים המיוחדים ולבסוף נחזור לתחילת הרשימה
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}עבור לספרייט הבא, כאשר נדלג על כל הספרייטים המיוחדים ולבסוף נחזור לתחילת הרשימה
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}דלג לספרייט
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}דלג לספרייט
|
||||||
|
@@ -3549,7 +3549,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_ROAD_TYPE :Út típus
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF változó 60+x paraméter (hexadecimális)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF változó 60+x paraméter (hexadecimális)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Elhelyezési sprite {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Következő sprite
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Következő sprite
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Továbbhaladás a következő normál spritera, kihagyva bármilyen ál/átszínező/betű spriteokat, a végén folytatva az elsővel
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Továbbhaladás a következő normál spritera, kihagyva bármilyen ál/átszínező/betű spriteokat, a végén folytatva az elsővel
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Ugrás a spritehoz
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Ugrás a spritehoz
|
||||||
|
@@ -2768,7 +2768,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_RAIL_TYPE :Tegund spora
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF breyta 60+x stilling (hexadecimal)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF breyta 60+x stilling (hexadecimal)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Samræmi hreyfimynd{COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Næsta hreyfimynd
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Næsta hreyfimynd
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Halda áfram á næstu venjulegu hreyfimynd, sleppir gervi/endurlitun/letur hreyfimyndum og fer aftur á byrjun í lokin.
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Halda áfram á næstu venjulegu hreyfimynd, sleppir gervi/endurlitun/letur hreyfimyndum og fer aftur á byrjun í lokin.
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Velja hreyfimynd
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Velja hreyfimynd
|
||||||
|
@@ -3424,7 +3424,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_ROAD_TYPE :Tipe jalan
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Variabel NewGRF harus 60+x (hexadecimal)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Variabel NewGRF harus 60+x (hexadecimal)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Menjajarkan sprite {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Sprite berikutnya
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Sprite berikutnya
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Pergi ke sprite normal berikutnya, lewati sprite bayangan/warna ulang/huruf dan pembungkus saat mulai
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Pergi ke sprite normal berikutnya, lewati sprite bayangan/warna ulang/huruf dan pembungkus saat mulai
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Pergi ke sprite
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Pergi ke sprite
|
||||||
|
@@ -3208,7 +3208,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_RAIL_TYPE :Cineál iarnró
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Athróg NewGRF paraiméadar 60+x (heicsidheachúil)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Athróg NewGRF paraiméadar 60+x (heicsidheachúil)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Ag ailíniú sprite {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}An chéad sprite eile
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}An chéad sprite eile
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Téigh chuig an chéad gnáth-sprite eile, ag scipeáil thar aon bhréag-sprite nó sprite athdhathaithe/clófhoirne agus ag timfhilleadh ag an deireadh
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Téigh chuig an chéad gnáth-sprite eile, ag scipeáil thar aon bhréag-sprite nó sprite athdhathaithe/clófhoirne agus ag timfhilleadh ag an deireadh
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Téigh chuig sprite
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Téigh chuig sprite
|
||||||
|
@@ -3527,7 +3527,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_ROAD_TYPE :Tipo di strada
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Parametro variabile NewGRF 60+x (esadecimale)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Parametro variabile NewGRF 60+x (esadecimale)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Allineamento sprite {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Successivo
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Successivo
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Procede al successivo sprite normale, saltanto qualsiasi sprite speciale, di ricoloramento o carattere e tornando al primo se viene raggiunto l'ultimo della lista
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Procede al successivo sprite normale, saltanto qualsiasi sprite speciale, di ricoloramento o carattere e tornando al primo se viene raggiunto l'ultimo della lista
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Vai a
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Vai a
|
||||||
|
@@ -3295,7 +3295,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_RAIL_TYPE :線路の種類
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRFの可変60+xパラメーター (16進)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRFの可変60+xパラメーター (16進)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}スプライト{COMMA} 配列 ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}次のスプライト
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}次のスプライト
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}次のノーマルスプライトに進みます。始端と終端は連続しているものとみなし、疑似/リカラー/フォントスプライトはスキップします
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}次のノーマルスプライトに進みます。始端と終端は連続しているものとみなし、疑似/リカラー/フォントスプライトはスキップします
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}スプライトへ飛ぶ
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}スプライトへ飛ぶ
|
||||||
|
@@ -3489,7 +3489,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_ROAD_TYPE :도로 종류
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF 변수 60+x 매개 변수 (16진법)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF 변수 60+x 매개 변수 (16진법)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}스프라이트 정렬 {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}다음 스프라이트
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}다음 스프라이트
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}(유사/재색상/글씨 스프라이트를 제외한) 다음 보통 스프라이트로 이동하고, 마지막 스프라이트에 다다르면 다시 처음으로 돌아갑니다.
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}(유사/재색상/글씨 스프라이트를 제외한) 다음 보통 스프라이트로 이동하고, 마지막 스프라이트에 다다르면 다시 처음으로 돌아갑니다.
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}스프라이트 번호 입력
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}스프라이트 번호 입력
|
||||||
|
@@ -3157,7 +3157,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_RAIL_TYPE :Typus ferriviae
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF var 60+x parametrum (sedecimale)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF var 60+x parametrum (sedecimale)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Dirigens spiritum {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Spiritum secundum
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Spiritum secundum
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Procedere ad spiritum naturalem secundum et, termino contacto, ad primum revertere
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Procedere ad spiritum naturalem secundum et, termino contacto, ad primum revertere
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Ire ad spiritum
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Ire ad spiritum
|
||||||
|
@@ -1497,7 +1497,7 @@ STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES :Transportlīdze
|
|||||||
STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES_HELPTEXT :Kad ieslēgts, visi transportlīdzekļu modeļi pēc to ieviešanas vienmēr ir pieejami
|
STR_CONFIG_SETTING_NEVER_EXPIRE_VEHICLES_HELPTEXT :Kad ieslēgts, visi transportlīdzekļu modeļi pēc to ieviešanas vienmēr ir pieejami
|
||||||
|
|
||||||
STR_CONFIG_SETTING_TIMEKEEPING_UNITS :Laika uzskaite: {STRING}
|
STR_CONFIG_SETTING_TIMEKEEPING_UNITS :Laika uzskaite: {STRING}
|
||||||
STR_CONFIG_SETTING_TIMEKEEPING_UNITS_HELPTEXT :Izvēlieties spēles laika mērīšanas vienības. Vēlāk to nevar mainīt.{}{}Kalendāra pamatā ir klasiskā OpenTTD pieredze, kurā gads sastāv no 12 mēnešiem un katru mēnesi ir 28–31 diena.{}{}{}Uz sienas pulksteni balstītā laikā, kravu ražošanā un finansēs tā vietā tiek balstītas uz vienas minūtes soli, kas ir aptuveni tikpat ilgs, cik 30 dienu mēnesis aizņem kalendāra režīmā. Tie ir sagrupēti 12 minūšu periodos, kas ir līdzvērtīgi gadam kalendāra režīmā.{}{}{}Abos režīmos vienmēr ir klasisks kalendārs, kas tiek izmantots transportlīdzekļu, māju un citas infrastruktūras parādīšanās spēlē.
|
STR_CONFIG_SETTING_TIMEKEEPING_UNITS_HELPTEXT :Izvēlieties spēles laika mērīšanas vienības. Vēlāk to nevar mainīt.{}{}Kalendāra pamatā ir klasiskā OpenTTD pieredze, kurā gads sastāv no 12 mēnešiem un katrā mēnesī ir 28–31 diena.{}{}{}Uz sienas pulksteni balstītā laikā, kravu ražošanā un finanses tiek balstītas uz vienas minūtes soli, kas ir aptuveni tikpat ilgs laiks, cik 30 dienu mēnesis aizņem kalendāra režīmā. Tie ir sagrupēti 12 minūšu periodos, kas ir līdzvērtīgi gadam kalendāra režīmā.{}{}{}Abos no šiem režīmiem vienmēr ir klasisks kalendārs, kas tiek izmantots transportlīdzekļu, māju un citas infrastruktūras datu ievadīšanai.
|
||||||
###length 2
|
###length 2
|
||||||
STR_CONFIG_SETTING_TIMEKEEPING_UNITS_CALENDAR :Kalendārs
|
STR_CONFIG_SETTING_TIMEKEEPING_UNITS_CALENDAR :Kalendārs
|
||||||
STR_CONFIG_SETTING_TIMEKEEPING_UNITS_WALLCLOCK :Sienas pulkstenis
|
STR_CONFIG_SETTING_TIMEKEEPING_UNITS_WALLCLOCK :Sienas pulkstenis
|
||||||
@@ -1569,7 +1569,7 @@ STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Sniega līnijas
|
|||||||
STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Izvēlieties, kādā augstumā sākas sniegs subarktiskajā ainavā. Sniegs ietekmē arī nozares ražošanas un pilsētu izaugsmi. Var mainīt tikai, izmantojot scenāriju redaktoru, vai citādi aprēķināt, izmantojot "sniega segumu"
|
STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Izvēlieties, kādā augstumā sākas sniegs subarktiskajā ainavā. Sniegs ietekmē arī nozares ražošanas un pilsētu izaugsmi. Var mainīt tikai, izmantojot scenāriju redaktoru, vai citādi aprēķināt, izmantojot "sniega segumu"
|
||||||
|
|
||||||
STR_CONFIG_SETTING_SNOW_COVERAGE :Sniega pārklājums: {STRING}
|
STR_CONFIG_SETTING_SNOW_COVERAGE :Sniega pārklājums: {STRING}
|
||||||
STR_CONFIG_SETTING_SNOW_COVERAGE_HELPTEXT :Izvēlieties aptuveno sniega daudzumu subarktiskajā ainavā. Sniegs ietekmē arī nozares ražošanas un pilsētu izaugsmei. Izmanto tikai kartes ģenerēšanas laikā. Uz jūras līmeņa un piekrastes abpagaliem nekad nav sniega.
|
STR_CONFIG_SETTING_SNOW_COVERAGE_HELPTEXT :Izvēlieties aptuveno sniega daudzumu subarktiskajā ainavā. Sniegs ietekmē nozares ražošanas un pilsētu izaugsmes prasības. Izmanto tikai kartes ģenerēšanas laikā. Uz jūras līmeņa un piekrastes lauciņiem nekad nav sniega
|
||||||
STR_CONFIG_SETTING_SNOW_COVERAGE_VALUE :{NUM}%
|
STR_CONFIG_SETTING_SNOW_COVERAGE_VALUE :{NUM}%
|
||||||
|
|
||||||
STR_CONFIG_SETTING_DESERT_COVERAGE :Tuksneša pārklājums: {STRING}
|
STR_CONFIG_SETTING_DESERT_COVERAGE :Tuksneša pārklājums: {STRING}
|
||||||
@@ -1632,7 +1632,7 @@ STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_DARK_GREEN :{G=f}tumši za
|
|||||||
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :{G=f}violeta
|
STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :{G=f}violeta
|
||||||
|
|
||||||
STR_CONFIG_SETTING_LINKGRAPH_COLOURS :Kravas plūsmu pārklājuma krāsas: {STRING}
|
STR_CONFIG_SETTING_LINKGRAPH_COLOURS :Kravas plūsmu pārklājuma krāsas: {STRING}
|
||||||
STR_CONFIG_SETTING_LINKGRAPH_COLOURS_HELPTEXT :Iestatiet kravas plūsmu pārklājumam izmantoto krāsu shēmu.
|
STR_CONFIG_SETTING_LINKGRAPH_COLOURS_HELPTEXT :Iestatiet kravas plūsmas pārklājumam izmantoto krāsu shēmu
|
||||||
###length 4
|
###length 4
|
||||||
STR_CONFIG_SETTING_LINKGRAPH_COLOURS_GREEN_TO_RED :Zaļš uz sarkanu (orģināli)
|
STR_CONFIG_SETTING_LINKGRAPH_COLOURS_GREEN_TO_RED :Zaļš uz sarkanu (orģināli)
|
||||||
STR_CONFIG_SETTING_LINKGRAPH_COLOURS_GREEN_TO_BLUE :Zaļš uz zilu
|
STR_CONFIG_SETTING_LINKGRAPH_COLOURS_GREEN_TO_BLUE :Zaļš uz zilu
|
||||||
@@ -2059,7 +2059,7 @@ STR_CONFIG_SETTING_DEMAND_SIZE :Atpakaļceļa k
|
|||||||
STR_CONFIG_SETTING_DEMAND_SIZE_HELPTEXT :Uzstādod šo mazāk par 100% liks simetriskajai sadalei izturēties vairāk kā asimetriskajai. Mazāk kravas ar varu tiks sūtīts atpakaļ ja noteikts daudzums tiks sūtīts uz piestātni. Ja jūs uzstādīsiet to uz 0% simetriskā sadale izturēsies tā pat kā asimetriskā.
|
STR_CONFIG_SETTING_DEMAND_SIZE_HELPTEXT :Uzstādod šo mazāk par 100% liks simetriskajai sadalei izturēties vairāk kā asimetriskajai. Mazāk kravas ar varu tiks sūtīts atpakaļ ja noteikts daudzums tiks sūtīts uz piestātni. Ja jūs uzstādīsiet to uz 0% simetriskā sadale izturēsies tā pat kā asimetriskā.
|
||||||
|
|
||||||
STR_CONFIG_SETTING_SHORT_PATH_SATURATION :Īso ceļu piesātinājums pirms sākt izmantot augstas ietilpības ceļus: {STRING}
|
STR_CONFIG_SETTING_SHORT_PATH_SATURATION :Īso ceļu piesātinājums pirms sākt izmantot augstas ietilpības ceļus: {STRING}
|
||||||
STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Nereti starp divām stacijām ir vairāki ceļi. Kravu sadale vispirms piesātinās īsāko maršrutu, pēc tam izmantos nākamo īsāko maršrutu līdz tas būs piesātināts, un tā tālāk. Piesātinājumu nosaka novērtējot ietilpību un plānoto izmantojumu. Kad visi ceļi ir piesātināti un vēl ir palicis pieprasījumus, tas pārslogos visus ceļus, dodot priekšroku ceļiem ar lielāko ietilpību. Algoritms visbiežāk nepareizi novērtēs ietilpību. Šis iestatījums jums atļaus norādīt, līdz cik procentiem īsākais ceļš ir jāpiesātina pirmajā piegājienā pirms izvēlēties garāku ceļu. Iestatiet to uz mazāk kā 100%, lai izvairītos no pārpildītām stacijām, ja kapacitāte ir pārvērtēta.
|
STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Bieži starp divām noteiktām stacijām ir vairāki ceļi. Cargodist vispirms piesātinās īsāko ceļu, pēc tam izmantos otro īsāko ceļu, līdz tas ir piesātināts un tā tālāk. Piesātinājumu nosaka jaudas un plānotā lietojuma novērtējums. Kad tas būs piesātināts ar visiem ceļiem, ja joprojām būs pieprasījums, tas pārslogos visus ceļus, dodot priekšroku tiem, kuriem ir liela ietilpība. Tomēr lielāko daļu laika algoritms precīzi nenovērtēs jaudu. Šis iestatījums ļauj norādīt, cik procentus īsākam ceļam jābūt piesātinātam pirmajā piegājienā, pirms tiek izvēlēts nākamais garākais ceļš. Iestatiet to uz mazāku par 100%, lai izvairītos no pārpildītām stacijām pārmērīgas jaudas gadījumā
|
||||||
|
|
||||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Ātruma vienības (sauszemes): {STRING}
|
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Ātruma vienības (sauszemes): {STRING}
|
||||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_NAUTICAL :Ātruma vienības (jūras): {STRING}
|
STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_NAUTICAL :Ātruma vienības (jūras): {STRING}
|
||||||
@@ -2985,9 +2985,9 @@ STR_TREES_RANDOM_TREES_TOOLTIP :{BLACK}Stādīt
|
|||||||
STR_TREES_MODE_NORMAL_BUTTON :{BLACK}Normāls
|
STR_TREES_MODE_NORMAL_BUTTON :{BLACK}Normāls
|
||||||
STR_TREES_MODE_NORMAL_TOOLTIP :{BLACK}Stādiet atsevišķus kokus, velkot pāri ainavai.
|
STR_TREES_MODE_NORMAL_TOOLTIP :{BLACK}Stādiet atsevišķus kokus, velkot pāri ainavai.
|
||||||
STR_TREES_MODE_FOREST_SM_BUTTON :{BLACK}Birze
|
STR_TREES_MODE_FOREST_SM_BUTTON :{BLACK}Birze
|
||||||
STR_TREES_MODE_FOREST_SM_TOOLTIP :{BLACK}Stādiet mazus mežus, velkot pāri ainavai.
|
STR_TREES_MODE_FOREST_SM_TOOLTIP :{BLACK}Stādiet nelielus mežus, velkot pāri ainavai.
|
||||||
STR_TREES_MODE_FOREST_LG_BUTTON :{BLACK}Mežs
|
STR_TREES_MODE_FOREST_LG_BUTTON :{BLACK}Mežs
|
||||||
STR_TREES_MODE_FOREST_LG_TOOLTIP :{BLACK}Stādiet lielos mežus, velkot pāri ainavai.
|
STR_TREES_MODE_FOREST_LG_TOOLTIP :{BLACK}Stādiet lielus mežus, velkot pāri ainavai
|
||||||
|
|
||||||
# Land generation window (SE)
|
# Land generation window (SE)
|
||||||
STR_TERRAFORM_TOOLBAR_LAND_GENERATION_CAPTION :{WHITE}Zemes radīšana
|
STR_TERRAFORM_TOOLBAR_LAND_GENERATION_CAPTION :{WHITE}Zemes radīšana
|
||||||
@@ -3491,7 +3491,9 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_ROAD_TYPE :Ceļa tips
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF mainīgā 60+x parametrs (heksadecimāls)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF mainīgā 60+x parametrs (heksadecimāls)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Gariņa līdzināšana {COMMA} ({STRING})
|
STR_SPRITE_ALIGNER_CAPTION_NO_ACTION :{WHITE}Gariņu izlīdzināšana: ({STRING}:{NUM})
|
||||||
|
STR_SPRITE_ALIGNER_CAPTION_ACTIONA :{WHITE}Gariņu izlīdzināšana: Darbība 0xA, {COMMA} ({STRING}:{NUM})
|
||||||
|
STR_SPRITE_ALIGNER_CAPTION_ACTION5 :{WHITE}Gariņu izlīdzināšana: Darbība 0x5, tips {HEX}, {COMMA} ({STRING}:{NUM})
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Nākamais gariņš
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Nākamais gariņš
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Pāriet uz nākamo parasto gariņu, izlaižot visus pseido/pārkrāsotos/fonta gariņus
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Pāriet uz nākamo parasto gariņu, izlaižot visus pseido/pārkrāsotos/fonta gariņus
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Iet pie gariņa
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Iet pie gariņa
|
||||||
@@ -3500,6 +3502,7 @@ 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_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_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. Ctrl+klikšķis, lai vienā piegājienā pārvietotu gariņu par astoņām vienībām
|
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Pārvietot gariņu, lai mainītu X un Y vērtības. Ctrl+klikšķis, lai vienā piegājienā pārvietotu gariņu par astoņām vienībām
|
||||||
|
STR_SPRITE_ALIGNER_SPRITE :{STRING}:{NUM}
|
||||||
|
|
||||||
###length 2
|
###length 2
|
||||||
STR_SPRITE_ALIGNER_CENTRE_OFFSET :{BLACK}Nobīde centrēta
|
STR_SPRITE_ALIGNER_CENTRE_OFFSET :{BLACK}Nobīde centrēta
|
||||||
@@ -4458,7 +4461,7 @@ STR_VEHICLE_INFO_CAPACITY_CAPACITY :{BLACK}Ietilpī
|
|||||||
STR_VEHICLE_INFO_FEEDER_CARGO_VALUE :{BLACK}Pārvadājumu ieņēmumi: {LTBLUE}{CURRENCY_LONG}
|
STR_VEHICLE_INFO_FEEDER_CARGO_VALUE :{BLACK}Pārvadājumu ieņēmumi: {LTBLUE}{CURRENCY_LONG}
|
||||||
|
|
||||||
STR_VEHICLE_DETAILS_SERVICING_INTERVAL_DAYS :{BLACK}Apkopes intervāls: {LTBLUE}{COMMA}{NBSP}dienas{BLACK} {STRING}
|
STR_VEHICLE_DETAILS_SERVICING_INTERVAL_DAYS :{BLACK}Apkopes intervāls: {LTBLUE}{COMMA}{NBSP}dienas{BLACK} {STRING}
|
||||||
STR_VEHICLE_DETAILS_SERVICING_INTERVAL_MINUTES :{BLACK}Apkopes intervāls: {LTBLUE}{COMMA}{NBSP}minūtes{BLACK} {STRING}
|
STR_VEHICLE_DETAILS_SERVICING_INTERVAL_MINUTES :{BLACK}Apkopes intervāls: {LTBLUE}{COMMA}{NBSP}minūte{P s es ""}{BLACK} {STRING}
|
||||||
STR_VEHICLE_DETAILS_SERVICING_INTERVAL_PERCENT :{BLACK}Apkopes intervāls: {LTBLUE}{COMMA}%{BLACK} {STRING}
|
STR_VEHICLE_DETAILS_SERVICING_INTERVAL_PERCENT :{BLACK}Apkopes intervāls: {LTBLUE}{COMMA}%{BLACK} {STRING}
|
||||||
STR_VEHICLE_DETAILS_LAST_SERVICE_DATE :Pēdējā apkalpošana: {LTBLUE}{DATE_LONG}
|
STR_VEHICLE_DETAILS_LAST_SERVICE_DATE :Pēdējā apkalpošana: {LTBLUE}{DATE_LONG}
|
||||||
STR_VEHICLE_DETAILS_LAST_SERVICE_MINUTES_AGO :Pēdējā apkope: pirms {LTBLUE}{NUM} minūtēm
|
STR_VEHICLE_DETAILS_LAST_SERVICE_MINUTES_AGO :Pēdējā apkope: pirms {LTBLUE}{NUM} minūtēm
|
||||||
@@ -4908,7 +4911,9 @@ STR_MESSAGE_ESTIMATED_INCOME :{WHITE}Plānoti
|
|||||||
STR_ERROR_SAVE_STILL_IN_PROGRESS :{WHITE}Notiek saglabāšana,{}lLūdzu uzgaidiet!
|
STR_ERROR_SAVE_STILL_IN_PROGRESS :{WHITE}Notiek saglabāšana,{}lLūdzu uzgaidiet!
|
||||||
STR_ERROR_AUTOSAVE_FAILED :{WHITE}Automātiskā saglabāšana neizdevās
|
STR_ERROR_AUTOSAVE_FAILED :{WHITE}Automātiskā saglabāšana neizdevās
|
||||||
STR_ERROR_UNABLE_TO_READ_DRIVE :{BLACK}Nevar lasīt disku
|
STR_ERROR_UNABLE_TO_READ_DRIVE :{BLACK}Nevar lasīt disku
|
||||||
|
STR_ERROR_GAME_SAVE_FAILED :{WHITE}Spēles saglabāšana neizdevās...
|
||||||
STR_ERROR_UNABLE_TO_DELETE_FILE :{WHITE}Nevar dzēst failu
|
STR_ERROR_UNABLE_TO_DELETE_FILE :{WHITE}Nevar dzēst failu
|
||||||
|
STR_ERROR_GAME_LOAD_FAILED :{WHITE}Spēles ielāde neizdevās...
|
||||||
STR_GAME_SAVELOAD_ERROR_BROKEN_INTERNAL_ERROR :Iekšēja kļūda: {STRING}
|
STR_GAME_SAVELOAD_ERROR_BROKEN_INTERNAL_ERROR :Iekšēja kļūda: {STRING}
|
||||||
STR_GAME_SAVELOAD_ERROR_BROKEN_SAVEGAME :Bojāts saglabātās spēles fails - {STRING}
|
STR_GAME_SAVELOAD_ERROR_BROKEN_SAVEGAME :Bojāts saglabātās spēles fails - {STRING}
|
||||||
STR_GAME_SAVELOAD_ERROR_TOO_NEW_SAVEGAME :Spēle ir saglabāta ar jaunāku versiju
|
STR_GAME_SAVELOAD_ERROR_TOO_NEW_SAVEGAME :Spēle ir saglabāta ar jaunāku versiju
|
||||||
@@ -5840,6 +5845,7 @@ STR_JUST_DATE_ISO :{DATE_ISO}
|
|||||||
STR_JUST_STRING :{STRING}
|
STR_JUST_STRING :{STRING}
|
||||||
STR_JUST_STRING1 :{STRING}
|
STR_JUST_STRING1 :{STRING}
|
||||||
STR_JUST_STRING2 :{STRING}
|
STR_JUST_STRING2 :{STRING}
|
||||||
|
STR_JUST_STRING4 :{STRING}
|
||||||
STR_JUST_STRING_STRING :{STRING}{STRING}
|
STR_JUST_STRING_STRING :{STRING}{STRING}
|
||||||
STR_JUST_RAW_STRING :{STRING}
|
STR_JUST_RAW_STRING :{STRING}
|
||||||
STR_JUST_BIG_RAW_STRING :{BIG_FONT}{STRING}
|
STR_JUST_BIG_RAW_STRING :{BIG_FONT}{STRING}
|
||||||
|
@@ -3460,7 +3460,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_RAIL_TYPE :Bėgio tipas
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Plėtinio kintamojo 60+x parametras (šešioliktainėje sistemoje)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Plėtinio kintamojo 60+x parametras (šešioliktainėje sistemoje)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Lygiuojamas spruklys {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Tolesnis spruklys
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Tolesnis spruklys
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Įkelti tolesnį spruklį
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Įkelti tolesnį spruklį
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Nurodyti spruklį
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Nurodyti spruklį
|
||||||
|
@@ -3485,7 +3485,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_ROAD_TYPE :Stroossentyp
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF Variabel 60+x Parameter (hexadezimal)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF Variabel 60+x Parameter (hexadezimal)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Alignéiren d'Sprite {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Nächst Sprite
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Nächst Sprite
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Géi weider op déi nächst normal Sprite, iwwersprang all pseudo/recolour/font Sprite an sprang un den Ufank no der leschter.
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Géi weider op déi nächst normal Sprite, iwwersprang all pseudo/recolour/font Sprite an sprang un den Ufank no der leschter.
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Géi op Sprite
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Géi op Sprite
|
||||||
|
@@ -2669,7 +2669,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_RAIL_TYPE :Jenis landasan
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Pemboleh ubah NewGRF, parameter 60+x (hexadecimal)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Pemboleh ubah NewGRF, parameter 60+x (hexadecimal)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Megalih peperi {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Peperi seterusnya
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Peperi seterusnya
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Teruskan ke peperi seterusan yang biasa, melangkau sebarang peperi pseudo/warna kembali/fon dan memusing balik semula
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Teruskan ke peperi seterusan yang biasa, melangkau sebarang peperi pseudo/warna kembali/fon dan memusing balik semula
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Pergi ke peperi
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Pergi ke peperi
|
||||||
|
@@ -3490,7 +3490,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_ROAD_TYPE :Veitype
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF-variabel 60+x parameter (heksadesimal)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF-variabel 60+x parameter (heksadesimal)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Forskyver sprite {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Neste sprite
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Neste sprite
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Fortsett til neste normale sprite og hopp over enhver pseudo-/omfargings-/skrifttype- sprite, samt start om ved begynnelsen
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Fortsett til neste normale sprite og hopp over enhver pseudo-/omfargings-/skrifttype- sprite, samt start om ved begynnelsen
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Gå til sprite
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Gå til sprite
|
||||||
|
@@ -2844,7 +2844,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_RAIL_TYPE :Jernbanetype
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF-variabel 60+x parameter (heksadesimal)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF-variabel 60+x parameter (heksadesimal)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Forskyver sprite {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Neste sprite
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Neste sprite
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Fortsett til neste normale sprite og hopp over einhver pseudo-/omfargings-/skrifttype- sprite, samt start om ved byrjinga
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Fortsett til neste normale sprite og hopp over einhver pseudo-/omfargings-/skrifttype- sprite, samt start om ved byrjinga
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Gå til sprite
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Gå til sprite
|
||||||
|
@@ -2675,7 +2675,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_RAIL_TYPE :نوع ریل
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}متغیر NewGRF 60 + پارامتر (hexadecimal)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}متغیر NewGRF 60 + پارامتر (hexadecimal)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}جابجا کردن تصویر گرافیک {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}تصویر بعدی
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}تصویر بعدی
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}نمایش تصویر بعدی، بدون انجام دادن هر گونه تغییرات در آخر
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}نمایش تصویر بعدی، بدون انجام دادن هر گونه تغییرات در آخر
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}رفتن به تصویر
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}رفتن به تصویر
|
||||||
|
@@ -3868,7 +3868,9 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_ROAD_TYPE :Rodzaj drogi
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGFR zmienna 60+parametr x (heksadecymalnie)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGFR zmienna 60+parametr x (heksadecymalnie)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Wyrównywanie sprite'a {COMMA} ({STRING})
|
STR_SPRITE_ALIGNER_CAPTION_NO_ACTION :{WHITE}Wyrównywanie sprite'a: ({STRING}:{NUM})
|
||||||
|
STR_SPRITE_ALIGNER_CAPTION_ACTIONA :{WHITE}Wyrównywanie sprite'a: Action 0xA, {COMMA} ({STRING}:{NUM})
|
||||||
|
STR_SPRITE_ALIGNER_CAPTION_ACTION5 :{WHITE}Wyrównywanie sprite'a: Action 0x5, typ {HEX}, {COMMA} ({STRING}:{NUM})
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Następny sprite
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Następny sprite
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Idź do następnego normalnego sprite'a, pomijając jakiekolwiek pseudo / przebarwione / czcionkowe sprite'y, a po ostatnim przejdź do pierwszego
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Idź do następnego normalnego sprite'a, pomijając jakiekolwiek pseudo / przebarwione / czcionkowe sprite'y, a po ostatnim przejdź do pierwszego
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Idź do sprite'a
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Idź do sprite'a
|
||||||
@@ -3877,6 +3879,7 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Poprzedn
|
|||||||
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Idź do poprzedniego normalnego sprite'a, pomijając jakiekolwiek pseudo / przebarwione / czcionkowe sprite'y, a po pierwszym przejdź do ostatniego
|
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Idź do poprzedniego normalnego sprite'a, pomijając jakiekolwiek pseudo / przebarwione / czcionkowe sprite'y, a po pierwszym przejdź do ostatniego
|
||||||
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Prezentacja wybranego sprite'a. Wyrównanie jest ignorowane podczas rysowania tego sprite'a
|
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Prezentacja wybranego sprite'a. Wyrównanie jest ignorowane podczas rysowania tego sprite'a
|
||||||
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Poruszaj spritem, zmieniając przesunięcia X i Y. Ctrl+klik aby przesunąć o 8 jednostek na raz
|
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Poruszaj spritem, zmieniając przesunięcia X i Y. Ctrl+klik aby przesunąć o 8 jednostek na raz
|
||||||
|
STR_SPRITE_ALIGNER_SPRITE :{STRING}:{NUM}
|
||||||
|
|
||||||
###length 2
|
###length 2
|
||||||
STR_SPRITE_ALIGNER_CENTRE_OFFSET :{BLACK}Wyśrodkowanie przesunięcia
|
STR_SPRITE_ALIGNER_CENTRE_OFFSET :{BLACK}Wyśrodkowanie przesunięcia
|
||||||
@@ -6274,6 +6277,7 @@ STR_JUST_DATE_ISO :{DATE_ISO}
|
|||||||
STR_JUST_STRING :{STRING}
|
STR_JUST_STRING :{STRING}
|
||||||
STR_JUST_STRING1 :{STRING}
|
STR_JUST_STRING1 :{STRING}
|
||||||
STR_JUST_STRING2 :{STRING}
|
STR_JUST_STRING2 :{STRING}
|
||||||
|
STR_JUST_STRING4 :{STRING}
|
||||||
STR_JUST_STRING_STRING :{STRING}{STRING}
|
STR_JUST_STRING_STRING :{STRING}{STRING}
|
||||||
STR_JUST_RAW_STRING :{STRING}
|
STR_JUST_RAW_STRING :{STRING}
|
||||||
STR_JUST_BIG_RAW_STRING :{BIG_FONT}{STRING}
|
STR_JUST_BIG_RAW_STRING :{BIG_FONT}{STRING}
|
||||||
|
@@ -1714,10 +1714,10 @@ STR_CONFIG_SETTING_PAUSE_ON_NEW_GAME_HELPTEXT :Quando ativo, o
|
|||||||
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Durante pausa permitir: {STRING}
|
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL :Durante pausa permitir: {STRING}
|
||||||
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_HELPTEXT :Seleccionar que acções podem ser feitas enquanto o jogo está em pausa
|
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_HELPTEXT :Seleccionar que acções podem ser feitas enquanto o jogo está em pausa
|
||||||
###length 4
|
###length 4
|
||||||
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :Nenhuma acção
|
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_NO_ACTIONS :Nenhuma ação
|
||||||
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :Todas as acções sem construção
|
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_CONSTRUCTION :Todas as acções sem construção
|
||||||
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_LANDSCAPING :Todas expecto acções que modificam o terreno
|
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_NON_LANDSCAPING :Todas expecto acções que modificam o terreno
|
||||||
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :Todas as acções
|
STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :Todas as ações
|
||||||
|
|
||||||
STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Usar a lista avançada de veículos: {STRING}
|
STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS :Usar a lista avançada de veículos: {STRING}
|
||||||
STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Ativar a utilização de listas avançadas de veículos para o agrupamento de veículos
|
STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Ativar a utilização de listas avançadas de veículos para o agrupamento de veículos
|
||||||
@@ -2091,8 +2091,8 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_IMPERIAL :Imperial (gal)
|
|||||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_METRIC :Métrico (l)
|
STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_METRIC :Métrico (l)
|
||||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_SI :SI (m³)
|
STR_CONFIG_SETTING_LOCALISATION_UNITS_VOLUME_SI :SI (m³)
|
||||||
|
|
||||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE :Unidades de esforço de tracção: {STRING}
|
STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE :Unidades de esforço de tração: {STRING}
|
||||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_HELPTEXT :Quando a força de tracção é mostrada no interface de utilizador, mostrar na unidade seleccionada
|
STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_HELPTEXT :Sempre que o esforço de tração (ou força de tração) for exibido na interface do utilizador, será mostrado nessas unidades
|
||||||
###length 3
|
###length 3
|
||||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_IMPERIAL :Imperial (lbf)
|
STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_IMPERIAL :Imperial (lbf)
|
||||||
STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_METRIC :Métrico (kgf)
|
STR_CONFIG_SETTING_LOCALISATION_UNITS_FORCE_METRIC :Métrico (kgf)
|
||||||
@@ -3489,7 +3489,9 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_ROAD_TYPE :Tipo de estrada
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Parâmetro da variável 60+x do NewGRF (hexadecimal)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Parâmetro da variável 60+x do NewGRF (hexadecimal)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}A alinhar gráfico {COMMA} ({STRING})
|
STR_SPRITE_ALIGNER_CAPTION_NO_ACTION :{WHITE}Alinhando sprite: ({STRING}:{NUM})
|
||||||
|
STR_SPRITE_ALIGNER_CAPTION_ACTIONA :{WHITE}Alinhando sprite: Ação 0xA, {COMMA} ({STRING}:{NUM})
|
||||||
|
STR_SPRITE_ALIGNER_CAPTION_ACTION5 :{WHITE}Alinhando sprite: Ação 0x5, tipo {HEX}, {COMMA} ({STRING}:{NUM})
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Gráfico seguinte
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Gráfico seguinte
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Proceder ao gráfico normal seguinte, ignorando quaisquer gráficos pseudo/recolorir/tipo-de-letra e dando a volta no fim
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Proceder ao gráfico normal seguinte, ignorando quaisquer gráficos pseudo/recolorir/tipo-de-letra e dando a volta no fim
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Ir para o gráfico
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Ir para o gráfico
|
||||||
@@ -3498,6 +3500,7 @@ 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_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_SPRITE_TOOLTIP :{BLACK}Representação do gráfico seleccionado actualmente. O alinhamento é ignorado a desenhar este gráfico
|
||||||
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Desloca o gráfico, alterando os intervalos X e Y. Ctrl+Clique desloca o gráfico 8 unidades de uma só vez
|
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Desloca o gráfico, alterando os intervalos X e Y. Ctrl+Clique desloca o gráfico 8 unidades de uma só vez
|
||||||
|
STR_SPRITE_ALIGNER_SPRITE :{STRING}:{NUM}
|
||||||
|
|
||||||
###length 2
|
###length 2
|
||||||
STR_SPRITE_ALIGNER_CENTRE_OFFSET :{BLACK}Deslocamento centrado
|
STR_SPRITE_ALIGNER_CENTRE_OFFSET :{BLACK}Deslocamento centrado
|
||||||
@@ -3535,7 +3538,7 @@ STR_NEWGRF_ERROR_UNEXPECTED_SPRITE :Gráfico invál
|
|||||||
STR_NEWGRF_ERROR_UNKNOWN_PROPERTY :Propriedade de Ação 0 desconhecida {4:HEX} (sprite {3:NUM})
|
STR_NEWGRF_ERROR_UNKNOWN_PROPERTY :Propriedade de Ação 0 desconhecida {4:HEX} (sprite {3:NUM})
|
||||||
STR_NEWGRF_ERROR_INVALID_ID :Tentativa de uso de ID Inválido (sprite {3:NUM})
|
STR_NEWGRF_ERROR_INVALID_ID :Tentativa de uso de ID Inválido (sprite {3:NUM})
|
||||||
STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} contém um objecto gráfico corrompido. Todos os objectos gráficos corrompidos serão apresentados como um ponto de interrogação (?) vermelho.
|
STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} contém um objecto gráfico corrompido. Todos os objectos gráficos corrompidos serão apresentados como um ponto de interrogação (?) vermelho.
|
||||||
STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Contém múltiplas entradas Action 8 - (sprite {3:NUM})
|
STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Contém múltiplas entradas Ação 8 - (sprite {3:NUM})
|
||||||
STR_NEWGRF_ERROR_READ_BOUNDS :Leitura além dos limites do pseudo-sprite (sprite {3:NUM})
|
STR_NEWGRF_ERROR_READ_BOUNDS :Leitura além dos limites do pseudo-sprite (sprite {3:NUM})
|
||||||
STR_NEWGRF_ERROR_GRM_FAILED :Recursos GRF pedidos não disponíveis (sprite {3:NUM})
|
STR_NEWGRF_ERROR_GRM_FAILED :Recursos GRF pedidos não disponíveis (sprite {3:NUM})
|
||||||
STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} foi desativado por {STRING}
|
STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} foi desativado por {STRING}
|
||||||
@@ -3647,10 +3650,10 @@ STR_LOCAL_AUTHORITY_ZONE :{BLACK}Zona
|
|||||||
STR_LOCAL_AUTHORITY_ZONE_TOOLTIP :{BLACK}Mostrar a zona dentro dos limites da autoridade local
|
STR_LOCAL_AUTHORITY_ZONE_TOOLTIP :{BLACK}Mostrar a zona dentro dos limites da autoridade local
|
||||||
STR_LOCAL_AUTHORITY_COMPANY_RATINGS :{BLACK}Classificações de empresas de transporte:
|
STR_LOCAL_AUTHORITY_COMPANY_RATINGS :{BLACK}Classificações de empresas de transporte:
|
||||||
STR_LOCAL_AUTHORITY_COMPANY_RATING :{YELLOW}{COMPANY} {COMPANY_NUM}: {ORANGE}{STRING}
|
STR_LOCAL_AUTHORITY_COMPANY_RATING :{YELLOW}{COMPANY} {COMPANY_NUM}: {ORANGE}{STRING}
|
||||||
STR_LOCAL_AUTHORITY_ACTIONS_TITLE :{BLACK}Acções disponíveis:
|
STR_LOCAL_AUTHORITY_ACTIONS_TITLE :{BLACK}Ações disponíveis:
|
||||||
STR_LOCAL_AUTHORITY_ACTIONS_TOOLTIP :{BLACK}Lista de acções disponíveis nesta localidade - fazer clique no item para mais detalhes
|
STR_LOCAL_AUTHORITY_ACTIONS_TOOLTIP :{BLACK}Lista de ações disponíveis nesta localidade - clique no item para mais detalhes
|
||||||
STR_LOCAL_AUTHORITY_DO_IT_BUTTON :{BLACK}Aplicar
|
STR_LOCAL_AUTHORITY_DO_IT_BUTTON :{BLACK}Aplicar
|
||||||
STR_LOCAL_AUTHORITY_DO_IT_TOOLTIP :{BLACK}Realizar a acção destacada na lista acima
|
STR_LOCAL_AUTHORITY_DO_IT_TOOLTIP :{BLACK}Realizar a ação destacada na lista acima
|
||||||
|
|
||||||
###length 8
|
###length 8
|
||||||
STR_LOCAL_AUTHORITY_ACTION_SMALL_ADVERTISING_CAMPAIGN :Pequena campanha publicitária
|
STR_LOCAL_AUTHORITY_ACTION_SMALL_ADVERTISING_CAMPAIGN :Pequena campanha publicitária
|
||||||
@@ -4092,7 +4095,7 @@ STR_PURCHASE_INFO_ALL_TYPES :Todos os tipos
|
|||||||
STR_PURCHASE_INFO_NONE :Nenhum
|
STR_PURCHASE_INFO_NONE :Nenhum
|
||||||
STR_PURCHASE_INFO_ENGINES_ONLY :Apenas locomotivas
|
STR_PURCHASE_INFO_ENGINES_ONLY :Apenas locomotivas
|
||||||
STR_PURCHASE_INFO_ALL_BUT :Todas menos {CARGO_LIST}
|
STR_PURCHASE_INFO_ALL_BUT :Todas menos {CARGO_LIST}
|
||||||
STR_PURCHASE_INFO_MAX_TE :{BLACK}Máx. Força de Tracção: {GOLD}{FORCE}
|
STR_PURCHASE_INFO_MAX_TE :{BLACK}Esforço de Tração Máx: {GOLD}{FORCE}
|
||||||
STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Alcance: {GOLD}{COMMA} mosaicos
|
STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Alcance: {GOLD}{COMMA} mosaicos
|
||||||
STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Tipo de aeronave: {GOLD}{STRING}
|
STR_PURCHASE_INFO_AIRCRAFT_TYPE :{BLACK}Tipo de aeronave: {GOLD}{STRING}
|
||||||
|
|
||||||
@@ -5834,6 +5837,7 @@ STR_JUST_DATE_ISO :{DATE_ISO}
|
|||||||
STR_JUST_STRING :{STRING}
|
STR_JUST_STRING :{STRING}
|
||||||
STR_JUST_STRING1 :{STRING}
|
STR_JUST_STRING1 :{STRING}
|
||||||
STR_JUST_STRING2 :{STRING}
|
STR_JUST_STRING2 :{STRING}
|
||||||
|
STR_JUST_STRING4 :{STRING}
|
||||||
STR_JUST_STRING_STRING :{STRING}{STRING}
|
STR_JUST_STRING_STRING :{STRING}{STRING}
|
||||||
STR_JUST_RAW_STRING :{STRING}
|
STR_JUST_RAW_STRING :{STRING}
|
||||||
STR_JUST_BIG_RAW_STRING :{BIG_FONT}{STRING}
|
STR_JUST_BIG_RAW_STRING :{BIG_FONT}{STRING}
|
||||||
|
@@ -3481,7 +3481,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_ROAD_TYPE :Tip de drum
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Parametru variabilă 60+x NewGRF (hexadecimal)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Parametru variabilă 60+x NewGRF (hexadecimal)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Aliniere imagine {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Imaginea următoare
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Imaginea următoare
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Mergi la următoarea 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_NEXT_TOOLTIP :{BLACK}Mergi la următoarea 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_GOTO_BUTTON :{BLACK}Mergi la imagine
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Mergi la imagine
|
||||||
|
@@ -3663,7 +3663,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_ROAD_TYPE :Тип доро
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Параметр переменной NewGRF 60+x (шестнадцатеричный)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Параметр переменной NewGRF 60+x (шестнадцатеричный)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Выравнивание спрайта {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Следующий спрайт
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Следующий спрайт
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Перейти к следующему нормальному спрайту, пропуская изменяющие цвет, шрифтовые, псевдоспрайты. Переход из конца списка к первому спрайту.
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Перейти к следующему нормальному спрайту, пропуская изменяющие цвет, шрифтовые, псевдоспрайты. Переход из конца списка к первому спрайту.
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Перейти к спрайту
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Перейти к спрайту
|
||||||
|
@@ -3613,7 +3613,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_ROAD_TYPE :Vrsta puta
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF promenljiva 60+x parametar (heksadecimalno)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF promenljiva 60+x parametar (heksadecimalno)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Poravnjavanje sprajta {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Sledeći sprajt
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Sledeći sprajt
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Prelazi na sledeći normalan sprajt, preskačući sve pseudo/prebojavajuće/font sprajtove i vraća se na početak posle zadnjeg
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Prelazi na sledeći normalan sprajt, preskačući sve pseudo/prebojavajuće/font sprajtove i vraća se na početak posle zadnjeg
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Idi na sprajt
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Idi na sprajt
|
||||||
|
@@ -3488,7 +3488,7 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_ROAD_TYPE :道路类型
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF variable 60+x 参数 (十六进制)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF variable 60+x 参数 (十六进制)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}定位 sprite {COMMA} ({STRING})
|
STR_SPRITE_ALIGNER_CAPTION_ACTIONA :{WHITE}对齐中的 Sprite:Action 0xA, {COMMA} ({STRING}:{NUM})
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}下一个 sprite
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}下一个 sprite
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}继续处理下个正常的图形元素,略过任何虚位/重新着色/文字字型相关的图形元素;并且在处理到最后的图形元素后,返回第一个图形元素继续处理。
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}继续处理下个正常的图形元素,略过任何虚位/重新着色/文字字型相关的图形元素;并且在处理到最后的图形元素后,返回第一个图形元素继续处理。
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}前往 sprite
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}前往 sprite
|
||||||
|
@@ -3556,7 +3556,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_ROAD_TYPE :Typ cesty
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF variabilný 60+x parameter (hexadecimálne)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF variabilný 60+x parameter (hexadecimálne)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Zarovnanie sprite {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Ďalší sprite
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Ďalší sprite
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Prejsť na najbližší normálny sprite, vynechajúc akékoľvek falošné/prefarbené sprites a sprites fontu použité na konci
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Prejsť na najbližší normálny sprite, vynechajúc akékoľvek falošné/prefarbené sprites a sprites fontu použité na konci
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Prejsť na sprite
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Prejsť na sprite
|
||||||
|
@@ -3082,7 +3082,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_RAIL_TYPE :Tip železnice
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF spremenljivka 60+x parameter (hexadecimal)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF spremenljivka 60+x parameter (hexadecimal)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Uravnavam sličico {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Naslednja sličica
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Naslednja sličica
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Nadaljuj k naslednji navadni sličici, zanemari vse navidezne/pobarvane/besedilne sličice in okvir na koncu
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Nadaljuj k naslednji navadni sličici, zanemari vse navidezne/pobarvane/besedilne sličice in okvir na koncu
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Pojdi na sličico
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Pojdi na sličico
|
||||||
|
@@ -3489,7 +3489,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_ROAD_TYPE :Tipo de carrete
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Parámetro de variable NewGRF 60+x (hexadecimal)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Parámetro de variable NewGRF 60+x (hexadecimal)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Alinear sprite {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Siguiente sprite
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Siguiente sprite
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Va al siguiente sprite (ignorando pseudosprites, sprites recoloreados y sprites de fuente) y pasa del último al primer sprite
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Va al siguiente sprite (ignorando pseudosprites, sprites recoloreados y sprites de fuente) y pasa del último al primer sprite
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Ir a sprite
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Ir a sprite
|
||||||
|
@@ -3419,7 +3419,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_RAIL_TYPE :Tipo de ferroca
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Parámetro de variable NewGRF 60+x (hexadecimal)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Parámetro de variable NewGRF 60+x (hexadecimal)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Alinear sprite {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Siguiente sprite
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Siguiente sprite
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Ir al siguiente sprite (ignorando pseudosprites, sprites coloreados y sprites de fuente) y pasar del último al primer sprite
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Ir al siguiente sprite (ignorando pseudosprites, sprites coloreados y sprites de fuente) y pasar del último al primer sprite
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Ir a sprite
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Ir a sprite
|
||||||
|
@@ -3488,7 +3488,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_ROAD_TYPE :Vägtyp
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF variabel 60+x parameter (hexadecimal)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF variabel 60+x parameter (hexadecimal)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Justera spriteobjekt {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Nästa spriteobjekt
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Nästa spriteobjekt
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Fortsätt till nästa nomala spriteobjekt, ignorera eventuella pseudo/recolour/font spriteobjekt och börja om efter sista spriteobjektet
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Fortsätt till nästa nomala spriteobjekt, ignorera eventuella pseudo/recolour/font spriteobjekt och börja om efter sista spriteobjektet
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Gå till spriteobjekt
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Gå till spriteobjekt
|
||||||
|
@@ -3192,7 +3192,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_RAIL_TYPE :இரயில
|
|||||||
|
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}ஸ்பிரிட் ஒழுங்காக்கப்படுகிறது {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}அடுத்த ஸ்பிரைட்டு
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}அடுத்த ஸ்பிரைட்டு
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}ஸ்பிரைட்டுயிற்கு செல்லவும்
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}ஸ்பிரைட்டுயிற்கு செல்லவும்
|
||||||
STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}முந்தைய ஸ்பிரைட்டு
|
STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}முந்தைய ஸ்பிரைட்டு
|
||||||
|
@@ -3014,7 +3014,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_RAIL_TYPE :ประเภ
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF ตัวแปร 60+x parameter (hexadecimal)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF ตัวแปร 60+x parameter (hexadecimal)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Aligning sprite {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}sprite ถัดไป
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}sprite ถัดไป
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}เคลื่อนไปยัง sprite ปกติอันถัดไป โดยข้าม pseudo/recolour/font และวกกลับเมื่อถึงจุดสิ้นสุด
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}เคลื่อนไปยัง sprite ปกติอันถัดไป โดยข้าม pseudo/recolour/font และวกกลับเมื่อถึงจุดสิ้นสุด
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}ไปยัง sprite
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}ไปยัง sprite
|
||||||
|
@@ -3373,7 +3373,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_ROAD_TYPE :道路類型
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF variable 60+x 參數(16 進位)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF variable 60+x 參數(16 進位)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}定位 Sprite {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}下一個子畫面
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}下一個子畫面
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}繼續處理下個正常的子畫面,略過任何虛位/重新著色/文字字型相關的子畫面,並在到達最後的子畫面後,返回第一個子畫面繼續進行處理。
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}繼續處理下個正常的子畫面,略過任何虛位/重新著色/文字字型相關的子畫面,並在到達最後的子畫面後,返回第一個子畫面繼續進行處理。
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}前往子畫面
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}前往子畫面
|
||||||
|
@@ -3487,7 +3487,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_ROAD_TYPE :Yol türü:
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF değişkeni 60+x parametresi (onaltılı)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}NewGRF değişkeni 60+x parametresi (onaltılı)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Nesne hizalanıyor {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Sonraki nesne
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Sonraki nesne
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Tüm sahte/yeniden renklendirme/yazı tipi nesnelerini ve sondaki nesneden atlayarak bir sonraki normal nesneye geç
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Tüm sahte/yeniden renklendirme/yazı tipi nesnelerini ve sondaki nesneden atlayarak bir sonraki normal nesneye geç
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Nesneye git
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Nesneye git
|
||||||
|
@@ -485,10 +485,10 @@ STR_SORT_BY_RATING_MIN :за найни
|
|||||||
STR_SORT_BY_ENGINE_ID :за ID (класичний порядок)
|
STR_SORT_BY_ENGINE_ID :за ID (класичний порядок)
|
||||||
STR_SORT_BY_COST :за ціною
|
STR_SORT_BY_COST :за ціною
|
||||||
STR_SORT_BY_POWER :за потужністю
|
STR_SORT_BY_POWER :за потужністю
|
||||||
STR_SORT_BY_TRACTIVE_EFFORT :за силою тяги
|
STR_SORT_BY_TRACTIVE_EFFORT :за тяговим зусиллям
|
||||||
STR_SORT_BY_INTRO_DATE :за датою випуску
|
STR_SORT_BY_INTRO_DATE :за датою випуску
|
||||||
STR_SORT_BY_RUNNING_COST :за вартістю експлуатації
|
STR_SORT_BY_RUNNING_COST :за вартістю експлуатації
|
||||||
STR_SORT_BY_POWER_VS_RUNNING_COST :за потужністю/вартістю експ.
|
STR_SORT_BY_POWER_VS_RUNNING_COST :за співвідношенням потужність/вартість експлуатації
|
||||||
STR_SORT_BY_CARGO_CAPACITY :за місткістю
|
STR_SORT_BY_CARGO_CAPACITY :за місткістю
|
||||||
STR_SORT_BY_RANGE :за дальністю
|
STR_SORT_BY_RANGE :за дальністю
|
||||||
STR_SORT_BY_POPULATION :за населенням
|
STR_SORT_BY_POPULATION :за населенням
|
||||||
@@ -505,10 +505,10 @@ STR_SORT_BY_AVERAGE_PROFIT_THIS_PERIOD :Середні
|
|||||||
|
|
||||||
# Group by options for vehicle list
|
# Group by options for vehicle list
|
||||||
STR_GROUP_BY_NONE :Нема
|
STR_GROUP_BY_NONE :Нема
|
||||||
STR_GROUP_BY_SHARED_ORDERS :Спільні накази
|
STR_GROUP_BY_SHARED_ORDERS :Спільні завдання
|
||||||
|
|
||||||
# Order button in shared orders vehicle list
|
# Order button in shared orders vehicle list
|
||||||
STR_GOTO_ORDER_VIEW :{BLACK}Накази
|
STR_GOTO_ORDER_VIEW :{BLACK}Завдання
|
||||||
STR_GOTO_ORDER_VIEW_TOOLTIP :{BLACK}Відкрити вікно завдань
|
STR_GOTO_ORDER_VIEW_TOOLTIP :{BLACK}Відкрити вікно завдань
|
||||||
|
|
||||||
# Tooltips for the main toolbar
|
# Tooltips for the main toolbar
|
||||||
@@ -1151,7 +1151,7 @@ STR_GAME_OPTIONS_CURRENCY_LVL :Латвійс
|
|||||||
STR_GAME_OPTIONS_CURRENCY_PTE :Португальське ескудо
|
STR_GAME_OPTIONS_CURRENCY_PTE :Португальське ескудо
|
||||||
|
|
||||||
STR_GAME_OPTIONS_AUTOSAVE_FRAME :{BLACK}Автозбереження
|
STR_GAME_OPTIONS_AUTOSAVE_FRAME :{BLACK}Автозбереження
|
||||||
STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_TOOLTIP :{BLACK}Виберіть період автозбереження гри
|
STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_TOOLTIP :{BLACK}Виберіть інтервал автозбереження
|
||||||
|
|
||||||
# Autosave dropdown
|
# Autosave dropdown
|
||||||
###length 5
|
###length 5
|
||||||
@@ -1165,27 +1165,27 @@ STR_GAME_OPTIONS_LANGUAGE :{BLACK}Мова
|
|||||||
STR_GAME_OPTIONS_LANGUAGE_TOOLTIP :{BLACK}Виберіть мову інтерфейса користувача
|
STR_GAME_OPTIONS_LANGUAGE_TOOLTIP :{BLACK}Виберіть мову інтерфейса користувача
|
||||||
STR_GAME_OPTIONS_LANGUAGE_PERCENTAGE :{STRING} ({NUM}% виконано)
|
STR_GAME_OPTIONS_LANGUAGE_PERCENTAGE :{STRING} ({NUM}% виконано)
|
||||||
|
|
||||||
STR_GAME_OPTIONS_FULLSCREEN :{BLACK}На весь екран
|
STR_GAME_OPTIONS_FULLSCREEN :{BLACK}Повноекранний режим
|
||||||
STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}Натисніть цю кнопку щоб грати на весь екран
|
STR_GAME_OPTIONS_FULLSCREEN_TOOLTIP :{BLACK}Натисніть цю кнопку, щоби грати в OpenTTD у повноекранному режимі
|
||||||
|
|
||||||
STR_GAME_OPTIONS_RESOLUTION :{BLACK}Роздільна здатність
|
STR_GAME_OPTIONS_RESOLUTION :{BLACK}Роздільна здатність екрана
|
||||||
STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Виберіть роздільну здатність екрану
|
STR_GAME_OPTIONS_RESOLUTION_TOOLTIP :{BLACK}Виберіть, яку роздільну здатність екрана використовувати
|
||||||
STR_GAME_OPTIONS_RESOLUTION_OTHER :інша
|
STR_GAME_OPTIONS_RESOLUTION_OTHER :інша
|
||||||
STR_GAME_OPTIONS_RESOLUTION_ITEM :{NUM}x{NUM}
|
STR_GAME_OPTIONS_RESOLUTION_ITEM :{NUM}x{NUM}
|
||||||
|
|
||||||
STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Прискорення апаратного забезпечення
|
STR_GAME_OPTIONS_VIDEO_ACCELERATION :{BLACK}Апаратне прискорення
|
||||||
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Увімкнутий прапорець дозволить використання грою прискорення апаратного забезпечення. Налаштування запрацює тільки після перезапуску гри
|
STR_GAME_OPTIONS_VIDEO_ACCELERATION_TOOLTIP :{BLACK}Увімкнутий прапорець дозволить використання грою прискорення апаратного забезпечення. Налаштування запрацює тільки після перезапуску гри
|
||||||
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}Налаштування запрацює тільки після перезапуску гри
|
STR_GAME_OPTIONS_VIDEO_ACCELERATION_RESTART :{WHITE}Налаштування запрацює тільки після перезапуску гри
|
||||||
|
|
||||||
STR_GAME_OPTIONS_VIDEO_VSYNC :Вертикальна синхронізація
|
STR_GAME_OPTIONS_VIDEO_VSYNC :{BLACK}Вертикальна синхронізація
|
||||||
STR_GAME_OPTIONS_VIDEO_VSYNC_TOOLTIP :{BLACK}Увімкнутий прапорець дозволить вертикальну синхронізацію екрану. Налаштування запрацює тільки після перезапуску гри. Працює тільки за увімкнутого прискорення апаратного забезпечення.
|
STR_GAME_OPTIONS_VIDEO_VSYNC_TOOLTIP :{BLACK}Позначте цей прапорець для використання вертикальної синхронізації. Зміни застосуються тільки після перезапуску гри. Працює лише за увімкненого апаратного прискорення
|
||||||
|
|
||||||
STR_GAME_OPTIONS_VIDEO_DRIVER_INFO :{BLACK}Поточний драйвер: {STRING}
|
STR_GAME_OPTIONS_VIDEO_DRIVER_INFO :{BLACK}Використовуваний драйвер: {STRING}
|
||||||
|
|
||||||
STR_GAME_OPTIONS_GUI_SCALE_FRAME :{BLACK}Розмір інтерфейсу
|
STR_GAME_OPTIONS_GUI_SCALE_FRAME :{BLACK}Розмір інтерфейсу
|
||||||
STR_GAME_OPTIONS_GUI_SCALE_TOOLTIP :{BLACK}Перетягніть повзунок для встановлення розміру інтерфейсу. Ctrl+протягування для точнішого перетягування
|
STR_GAME_OPTIONS_GUI_SCALE_TOOLTIP :{BLACK}Перетягніть повзунок для встановлення розміру інтерфейсу. Ctrl+протягування для точнішого перетягування
|
||||||
STR_GAME_OPTIONS_GUI_SCALE_AUTO :{BLACK}Автоматично визначений розмір
|
STR_GAME_OPTIONS_GUI_SCALE_AUTO :{BLACK}Визначати розмір автоматично
|
||||||
STR_GAME_OPTIONS_GUI_SCALE_AUTO_TOOLTIP :{BLACK}Увімкнутий прапорець дозволить автоматично визначити розмір інтерфейсу
|
STR_GAME_OPTIONS_GUI_SCALE_AUTO_TOOLTIP :{BLACK}Позначте цей прапорець для того, щоби визначати розмір інтерфейсу автоматично
|
||||||
|
|
||||||
STR_GAME_OPTIONS_GUI_SCALE_BEVELS :{BLACK}Межі шкали
|
STR_GAME_OPTIONS_GUI_SCALE_BEVELS :{BLACK}Межі шкали
|
||||||
STR_GAME_OPTIONS_GUI_SCALE_BEVELS_TOOLTIP :BLACK}Увімкнутий прапорець дозволить змінити розмір інтерфейсу
|
STR_GAME_OPTIONS_GUI_SCALE_BEVELS_TOOLTIP :BLACK}Увімкнутий прапорець дозволить змінити розмір інтерфейсу
|
||||||
@@ -1211,10 +1211,10 @@ STR_GAME_OPTIONS_PARTICIPATE_SURVEY_PREVIEW_TOOLTIP :{BLACK}Пере
|
|||||||
|
|
||||||
STR_GAME_OPTIONS_GRAPHICS :{BLACK}Графіка
|
STR_GAME_OPTIONS_GRAPHICS :{BLACK}Графіка
|
||||||
|
|
||||||
STR_GAME_OPTIONS_REFRESH_RATE :{BLACK}Показати швидкість оновлення
|
STR_GAME_OPTIONS_REFRESH_RATE :{BLACK}Частота оновлення екрана
|
||||||
STR_GAME_OPTIONS_REFRESH_RATE_TOOLTIP :{BLACK}Обрати швидкість оновлення екрану
|
STR_GAME_OPTIONS_REFRESH_RATE_TOOLTIP :{BLACK}Оберіть, яку частоту оновлення екрана використовувати
|
||||||
STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}Гц
|
STR_GAME_OPTIONS_REFRESH_RATE_ITEM :{NUM}Гц
|
||||||
STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE}Оновлення з частотою понад 60ГГц може зашкодити роботі гри.
|
STR_GAME_OPTIONS_REFRESH_RATE_WARNING :{WHITE}Частота оновлення екрана вища за 75 Гц може вплинути на швидкодію
|
||||||
|
|
||||||
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Базовий набір графіки
|
STR_GAME_OPTIONS_BASE_GRF :{BLACK}Базовий набір графіки
|
||||||
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Оберіть, яку основну графіку використовувати (неможливо змінити у грі, тільки з головного меню)
|
STR_GAME_OPTIONS_BASE_GRF_TOOLTIP :{BLACK}Оберіть, яку основну графіку використовувати (неможливо змінити у грі, тільки з головного меню)
|
||||||
@@ -1420,8 +1420,8 @@ STR_CONFIG_SETTING_MAXIMUM_INITIAL_LOAN_DISABLED :Ніяких п
|
|||||||
STR_CONFIG_SETTING_INTEREST_RATE :Процентна ставка: {STRING}
|
STR_CONFIG_SETTING_INTEREST_RATE :Процентна ставка: {STRING}
|
||||||
STR_CONFIG_SETTING_INTEREST_RATE_HELPTEXT :Процентна ставка за позиками; також контролює інфляцію, якщо вона увімкнена
|
STR_CONFIG_SETTING_INTEREST_RATE_HELPTEXT :Процентна ставка за позиками; також контролює інфляцію, якщо вона увімкнена
|
||||||
|
|
||||||
STR_CONFIG_SETTING_RUNNING_COSTS :Експлуатаційні витрати: {STRING}
|
STR_CONFIG_SETTING_RUNNING_COSTS :Вартість експлуатації: {STRING}
|
||||||
STR_CONFIG_SETTING_RUNNING_COSTS_HELPTEXT :Встановіть вартість обслуговування та експлуатаційні витрати на транспорт та інфраструктуру
|
STR_CONFIG_SETTING_RUNNING_COSTS_HELPTEXT :Встановіть вартість обслуговування та вартість експлуатації на транспорт та інфраструктуру
|
||||||
|
|
||||||
STR_CONFIG_SETTING_CONSTRUCTION_SPEED :Швидкість будівництва: {STRING}
|
STR_CONFIG_SETTING_CONSTRUCTION_SPEED :Швидкість будівництва: {STRING}
|
||||||
STR_CONFIG_SETTING_CONSTRUCTION_SPEED_HELPTEXT :Обмеження кількості будівельних дій для ШІ
|
STR_CONFIG_SETTING_CONSTRUCTION_SPEED_HELPTEXT :Обмеження кількості будівельних дій для ШІ
|
||||||
@@ -1541,11 +1541,11 @@ STR_CONFIG_SETTING_SHOWFINANCES_PERIOD :Показув
|
|||||||
STR_CONFIG_SETTING_SHOWFINANCES_HELPTEXT :При включенні наприкінці кожного року виринає вікно фінансів для легшого огляду фінансового стану компанії.
|
STR_CONFIG_SETTING_SHOWFINANCES_HELPTEXT :При включенні наприкінці кожного року виринає вікно фінансів для легшого огляду фінансового стану компанії.
|
||||||
STR_CONFIG_SETTING_SHOWFINANCES_HELPTEXT_PERIOD :При включенні наприкінці кожного періоду виринає вікно фінансів для легшого огляду фінансового стану компанії.
|
STR_CONFIG_SETTING_SHOWFINANCES_HELPTEXT_PERIOD :При включенні наприкінці кожного періоду виринає вікно фінансів для легшого огляду фінансового стану компанії.
|
||||||
|
|
||||||
STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT :Створювати накази з поміткою «без зупинки»: {STRING}
|
STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT :Створювати завдання з поміткою «без зупинки»: {STRING}
|
||||||
STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT_HELPTEXT :Якщо в завданні транспортного засобу не вказана помітка «без зупинки», то він зупиняєтся на всіх станціях на своєму шляху. Якщо увімкнути це налаштування, то нові завдання будуть автоматично створюватися з поміткою «без зупинки» і транспортний засіб буде зупинятися лише на вказаних станціях. При необхідності помітку можна зняти або встановити власноруч.
|
STR_CONFIG_SETTING_NONSTOP_BY_DEFAULT_HELPTEXT :Якщо в завданні транспортного засобу не вказана помітка «без зупинки», то він зупиняєтся на всіх станціях на своєму шляху. Якщо увімкнути це налаштування, то нові завдання будуть автоматично створюватися з поміткою «без зупинки» і транспортний засіб буде зупинятися лише на вказаних станціях. При необхідності помітку можна зняти або встановити власноруч.
|
||||||
|
|
||||||
STR_CONFIG_SETTING_STOP_LOCATION :Створювати накази для поїздів з зупинкою {STRING} платформи
|
STR_CONFIG_SETTING_STOP_LOCATION :Створювати завдання для поїздів з зупинкою {STRING} платформи
|
||||||
STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Оберіть кінець платформи для зупинки потягів у нових наказах. "на початку": початок платформи в напрямку руху; "посередині": середина платформи; "наприкінці": кінець платформи в напрямку руху. Окремі накази для зупинки можна встановити клацнувши на текст наказу
|
STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Оберіть кінець платформи для зупинки потягів у нових завданнях. Опція "на початку" – початок платформи в напрямку руху; "посередині" – середина платформи; "наприкінці" – кінець платформи в напрямку руху. Окремі завдання для зупинки можна встановити клацнувши на текст завдання
|
||||||
###length 3
|
###length 3
|
||||||
STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :на початку
|
STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :на початку
|
||||||
STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :посередині
|
STR_CONFIG_SETTING_STOP_LOCATION_MIDDLE :посередині
|
||||||
@@ -2254,7 +2254,7 @@ STR_CONFIG_SETTING_ACCOUNTING :Облік
|
|||||||
STR_CONFIG_SETTING_VEHICLES :Транспорт
|
STR_CONFIG_SETTING_VEHICLES :Транспорт
|
||||||
STR_CONFIG_SETTING_VEHICLES_PHYSICS :Фізика
|
STR_CONFIG_SETTING_VEHICLES_PHYSICS :Фізика
|
||||||
STR_CONFIG_SETTING_VEHICLES_ROUTING :Маршрути
|
STR_CONFIG_SETTING_VEHICLES_ROUTING :Маршрути
|
||||||
STR_CONFIG_SETTING_VEHICLES_ORDERS :Накази
|
STR_CONFIG_SETTING_VEHICLES_ORDERS :Завдання
|
||||||
STR_CONFIG_SETTING_LIMITATIONS :Обмеження
|
STR_CONFIG_SETTING_LIMITATIONS :Обмеження
|
||||||
STR_CONFIG_SETTING_ACCIDENTS :Катастрофи
|
STR_CONFIG_SETTING_ACCIDENTS :Катастрофи
|
||||||
STR_CONFIG_SETTING_GENWORLD :Створення світу
|
STR_CONFIG_SETTING_GENWORLD :Створення світу
|
||||||
@@ -3628,7 +3628,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_ROAD_TYPE :Тип доро
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Параметр змінної NewGRF 60+x (шістнадцятковий)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Параметр змінної NewGRF 60+x (шістнадцятковий)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Вирівнювання спрайту {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Наступний спрайт
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Наступний спрайт
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Йти до наступного нормального спрайту, пропускаючи будь-які псевдо/перемальовані/шрифтові спрайти і загортаючи навколо (wrap) починаючи з останнього спрайту закінчуючи першим
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Йти до наступного нормального спрайту, пропускаючи будь-які псевдо/перемальовані/шрифтові спрайти і загортаючи навколо (wrap) починаючи з останнього спрайту закінчуючи першим
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Йти до спрайту
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Йти до спрайту
|
||||||
@@ -3911,7 +3910,7 @@ STR_STATION_VIEW_EXCLUSIVE_RIGHTS_COMPANY :{YELLOW}{COMPAN
|
|||||||
STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Рейтинг
|
STR_STATION_VIEW_RATINGS_BUTTON :{BLACK}Рейтинг
|
||||||
STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Показати рейтинг станції
|
STR_STATION_VIEW_RATINGS_TOOLTIP :{BLACK}Показати рейтинг станції
|
||||||
STR_STATION_VIEW_SUPPLY_RATINGS_TITLE_MONTH :{BLACK}Постачання впродовж місяця і місцевий рейтинг:
|
STR_STATION_VIEW_SUPPLY_RATINGS_TITLE_MONTH :{BLACK}Постачання впродовж місяця і місцевий рейтинг:
|
||||||
STR_STATION_VIEW_SUPPLY_RATINGS_TITLE_MINUTE :BLACK}Постачання впродовж хвилини і місцевий рейтинг:
|
STR_STATION_VIEW_SUPPLY_RATINGS_TITLE_MINUTE :{BLACK}Постачання впродовж хвилини і місцевий рейтинг:
|
||||||
STR_STATION_VIEW_CARGO_SUPPLY_RATING :{WHITE}{STRING}: {YELLOW}{COMMA} / {STRING} ({COMMA}%)
|
STR_STATION_VIEW_CARGO_SUPPLY_RATING :{WHITE}{STRING}: {YELLOW}{COMMA} / {STRING} ({COMMA}%)
|
||||||
|
|
||||||
STR_STATION_VIEW_GROUP :{BLACK}Групувати по
|
STR_STATION_VIEW_GROUP :{BLACK}Групувати по
|
||||||
@@ -4412,7 +4411,7 @@ STR_ENGINE_PREVIEW_TEXT4 :{BLACK}{STRING}
|
|||||||
STR_ENGINE_PREVIEW_COST_WEIGHT :Ціна: {CURRENCY_LONG} Маса: {WEIGHT_SHORT}
|
STR_ENGINE_PREVIEW_COST_WEIGHT :Ціна: {CURRENCY_LONG} Маса: {WEIGHT_SHORT}
|
||||||
STR_ENGINE_PREVIEW_COST_MAX_SPEED :Ціна: {CURRENCY_LONG} Швидкість: {VELOCITY}
|
STR_ENGINE_PREVIEW_COST_MAX_SPEED :Ціна: {CURRENCY_LONG} Швидкість: {VELOCITY}
|
||||||
STR_ENGINE_PREVIEW_SPEED_POWER :Швидкість: {VELOCITY} Потужність: {POWER}
|
STR_ENGINE_PREVIEW_SPEED_POWER :Швидкість: {VELOCITY} Потужність: {POWER}
|
||||||
STR_ENGINE_PREVIEW_SPEED_POWER_MAX_TE :Швидкість: {VELOCITY} Потужність: {POWER} Макс. тяга: {FORCE}
|
STR_ENGINE_PREVIEW_SPEED_POWER_MAX_TE :Швидкість: {VELOCITY} Потужність: {POWER} Максимальне тягове зусилля: {FORCE}
|
||||||
STR_ENGINE_PREVIEW_TYPE :Тип літального апарата: {STRING}
|
STR_ENGINE_PREVIEW_TYPE :Тип літального апарата: {STRING}
|
||||||
STR_ENGINE_PREVIEW_TYPE_RANGE :Тип літального апарата: {STRING} Дальність: {COMMA} клітин{P ка ки ок }
|
STR_ENGINE_PREVIEW_TYPE_RANGE :Тип літального апарата: {STRING} Дальність: {COMMA} клітин{P ка ки ок }
|
||||||
STR_ENGINE_PREVIEW_RUNCOST_YEAR :Вартість експлуатації: {CURRENCY_LONG}/рік
|
STR_ENGINE_PREVIEW_RUNCOST_YEAR :Вартість експлуатації: {CURRENCY_LONG}/рік
|
||||||
@@ -4440,8 +4439,8 @@ STR_REPLACE_HELP_RIGHT_ARRAY :{BLACK}Вибе
|
|||||||
STR_REPLACE_VEHICLES_START :{BLACK}Почати оновлення
|
STR_REPLACE_VEHICLES_START :{BLACK}Почати оновлення
|
||||||
STR_REPLACE_VEHICLES_NOW :Замінити усі ТС зараз
|
STR_REPLACE_VEHICLES_NOW :Замінити усі ТС зараз
|
||||||
STR_REPLACE_VEHICLES_WHEN_OLD :Замінювати лише застарілі ТС
|
STR_REPLACE_VEHICLES_WHEN_OLD :Замінювати лише застарілі ТС
|
||||||
STR_REPLACE_HELP_START_BUTTON :{BLACK}Натисніть для запуску оновлення потягів, що вибрані праворуч, на потяги, що вибрані праворуч
|
STR_REPLACE_HELP_START_BUTTON :{BLACK}Натисніть для запуску оновлення потягів, що вибрані ліворуч, на потяги, що вибрані праворуч
|
||||||
STR_REPLACE_NOT_REPLACING :{BLACK}Не можна оновити
|
STR_REPLACE_NOT_REPLACING :{BLACK}Поки що не оновлюється
|
||||||
STR_REPLACE_NOT_REPLACING_VEHICLE_SELECTED :{BLACK}Не вибрано транспортного засобу
|
STR_REPLACE_NOT_REPLACING_VEHICLE_SELECTED :{BLACK}Не вибрано транспортного засобу
|
||||||
STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} коли застаріє
|
STR_REPLACE_REPLACING_WHEN_OLD :{ENGINE} коли застаріє
|
||||||
STR_REPLACE_VEHICLES_STOP :{BLACK}Зупинити оновлення
|
STR_REPLACE_VEHICLES_STOP :{BLACK}Зупинити оновлення
|
||||||
@@ -4450,11 +4449,11 @@ STR_REPLACE_HELP_STOP_BUTTON :{BLACK}Нати
|
|||||||
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Переключення між вікнами заміни потягів та вагонів.
|
STR_REPLACE_ENGINE_WAGON_SELECT_HELP :{BLACK}Переключення між вікнами заміни потягів та вагонів.
|
||||||
STR_REPLACE_ENGINES :Локомотиви
|
STR_REPLACE_ENGINES :Локомотиви
|
||||||
STR_REPLACE_WAGONS :Вагони
|
STR_REPLACE_WAGONS :Вагони
|
||||||
STR_REPLACE_ALL_RAILTYPE :Весь з/д транспорт
|
STR_REPLACE_ALL_RAILTYPE :Весь залізничний транспорт
|
||||||
STR_REPLACE_ALL_ROADTYPE :Всі автомобілі
|
STR_REPLACE_ALL_ROADTYPE :Всі автомобілі
|
||||||
|
|
||||||
###length 2
|
###length 2
|
||||||
STR_REPLACE_HELP_RAILTYPE :{BLACK}Виберіть тип колії, для якого ви збираєтесь оновити потяги
|
STR_REPLACE_HELP_RAILTYPE :{BLACK}Виберіть тип колії, для якої ви збираєтесь оновити потяги
|
||||||
STR_REPLACE_HELP_ROADTYPE :{BLACK}Виберіть тип дороги, на який хочете замінити двигуни
|
STR_REPLACE_HELP_ROADTYPE :{BLACK}Виберіть тип дороги, на який хочете замінити двигуни
|
||||||
###next-name-looks-similar
|
###next-name-looks-similar
|
||||||
|
|
||||||
@@ -4505,9 +4504,9 @@ STR_VEHICLE_VIEW_AIRCRAFT_REFIT_TOOLTIP :{BLACK}Пере
|
|||||||
|
|
||||||
###length VEHICLE_TYPES
|
###length VEHICLE_TYPES
|
||||||
STR_VEHICLE_VIEW_TRAIN_ORDERS_TOOLTIP :{BLACK}Показати маршрут поїзда. Ctrl+клац показує розклад поїзда
|
STR_VEHICLE_VIEW_TRAIN_ORDERS_TOOLTIP :{BLACK}Показати маршрут поїзда. Ctrl+клац показує розклад поїзда
|
||||||
STR_VEHICLE_VIEW_ROAD_VEHICLE_ORDERS_TOOLTIP :{BLACK}Показати накази авто. Ctrl+клац показує розклад авто
|
STR_VEHICLE_VIEW_ROAD_VEHICLE_ORDERS_TOOLTIP :{BLACK}Показати завдання транспортного засобу. Ctrl+клац показує розклад ТЗ
|
||||||
STR_VEHICLE_VIEW_SHIP_ORDERS_TOOLTIP :{BLACK}Показати накази корабля. Ctrl+клац показує розклад корабля
|
STR_VEHICLE_VIEW_SHIP_ORDERS_TOOLTIP :{BLACK}Показати завдання корабля. Ctrl+клац показує розклад корабля
|
||||||
STR_VEHICLE_VIEW_AIRCRAFT_ORDERS_TOOLTIP :{BLACK}Показати накази літака. Ctrl+клац показує розклад літака
|
STR_VEHICLE_VIEW_AIRCRAFT_ORDERS_TOOLTIP :{BLACK}Показати завдання літака. Ctrl+клац показує розклад літака
|
||||||
|
|
||||||
###length VEHICLE_TYPES
|
###length VEHICLE_TYPES
|
||||||
STR_VEHICLE_VIEW_TRAIN_SHOW_DETAILS_TOOLTIP :{BLACK}Показати детальну інформацію
|
STR_VEHICLE_VIEW_TRAIN_SHOW_DETAILS_TOOLTIP :{BLACK}Показати детальну інформацію
|
||||||
@@ -4524,7 +4523,7 @@ STR_VEHICLE_VIEW_AIRCRAFT_STATUS_START_STOP_TOOLTIP :{BLACK}Пото
|
|||||||
# Messages in the start stop button in the vehicle view
|
# Messages in the start stop button in the vehicle view
|
||||||
STR_VEHICLE_STATUS_LOADING_UNLOADING :{LTBLUE}Вантаження
|
STR_VEHICLE_STATUS_LOADING_UNLOADING :{LTBLUE}Вантаження
|
||||||
STR_VEHICLE_STATUS_LEAVING :{LTBLUE}Відходить
|
STR_VEHICLE_STATUS_LEAVING :{LTBLUE}Відходить
|
||||||
STR_VEHICLE_STATUS_WAITING_UNBUNCHING :{LTBLUE}Чекає на звільнення
|
STR_VEHICLE_STATUS_WAITING_UNBUNCHING :{LTBLUE}Чекає на розподілення за інтервалом
|
||||||
STR_VEHICLE_STATUS_CRASHED :{RED}Аварія!
|
STR_VEHICLE_STATUS_CRASHED :{RED}Аварія!
|
||||||
STR_VEHICLE_STATUS_BROKEN_DOWN :{RED}Зламався
|
STR_VEHICLE_STATUS_BROKEN_DOWN :{RED}Зламався
|
||||||
STR_VEHICLE_STATUS_STOPPED :{RED}Зупинено
|
STR_VEHICLE_STATUS_STOPPED :{RED}Зупинено
|
||||||
@@ -4538,7 +4537,7 @@ STR_VEHICLE_STATUS_NO_ORDERS_VEL :{LTBLUE}{VELOCI
|
|||||||
STR_VEHICLE_STATUS_HEADING_FOR_WAYPOINT_VEL :{LTBLUE}{1:VELOCITY} - Прямує до {0:WAYPOINT}
|
STR_VEHICLE_STATUS_HEADING_FOR_WAYPOINT_VEL :{LTBLUE}{1:VELOCITY} - Прямує до {0:WAYPOINT}
|
||||||
STR_VEHICLE_STATUS_HEADING_FOR_DEPOT_VEL :{ORANGE}{1:VELOCITY} - Прямує до {0:DEPOT}
|
STR_VEHICLE_STATUS_HEADING_FOR_DEPOT_VEL :{ORANGE}{1:VELOCITY} - Прямує до {0:DEPOT}
|
||||||
STR_VEHICLE_STATUS_HEADING_FOR_DEPOT_SERVICE_VEL :{LTBLUE}{1:VELOCITY} - Техогляд у {0:DEPOT}
|
STR_VEHICLE_STATUS_HEADING_FOR_DEPOT_SERVICE_VEL :{LTBLUE}{1:VELOCITY} - Техогляд у {0:DEPOT}
|
||||||
STR_VEHICLE_STATUS_HEADING_FOR_DEPOT_UNBUNCH_VEL :{LTBLUE}{1:VELOCITY} - Звільнити і обслужити в {0:DEPOT}
|
STR_VEHICLE_STATUS_HEADING_FOR_DEPOT_UNBUNCH_VEL :{LTBLUE}{1:VELOCITY} - Обслуговується та чекає на розподілення в {0:DEPOT}
|
||||||
|
|
||||||
STR_VEHICLE_STATUS_CANNOT_REACH_STATION_VEL :{LTBLUE}{1:VELOCITY} - Неможливо досягти {0:STATION}
|
STR_VEHICLE_STATUS_CANNOT_REACH_STATION_VEL :{LTBLUE}{1:VELOCITY} - Неможливо досягти {0:STATION}
|
||||||
STR_VEHICLE_STATUS_CANNOT_REACH_WAYPOINT_VEL :{LTBLUE}{1:VELOCITY} - Неможливо досягти {0:WAYPOINT}
|
STR_VEHICLE_STATUS_CANNOT_REACH_WAYPOINT_VEL :{LTBLUE}{1:VELOCITY} - Неможливо досягти {0:WAYPOINT}
|
||||||
@@ -4572,7 +4571,7 @@ STR_VEHICLE_INFO_MAX_SPEED :{BLACK}Макс
|
|||||||
STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Макс. швидкість: {LTBLUE}{VELOCITY} {BLACK}Тип: {LTBLUE}{STRING}
|
STR_VEHICLE_INFO_MAX_SPEED_TYPE :{BLACK}Макс. швидкість: {LTBLUE}{VELOCITY} {BLACK}Тип: {LTBLUE}{STRING}
|
||||||
STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Макс. швидкість: {LTBLUE}{VELOCITY} {BLACK}Тип: {LTBLUE}{STRING} {BLACK}Дальність: {LTBLUE}{COMMA} клітин{P ка ки ок }
|
STR_VEHICLE_INFO_MAX_SPEED_TYPE_RANGE :{BLACK}Макс. швидкість: {LTBLUE}{VELOCITY} {BLACK}Тип: {LTBLUE}{STRING} {BLACK}Дальність: {LTBLUE}{COMMA} клітин{P ка ки ок }
|
||||||
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Вага: {LTBLUE}{WEIGHT_SHORT} {BLACK}Потужність: {LTBLUE}{POWER}{BLACK} Макс. швидкість: {LTBLUE}{VELOCITY}
|
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Вага: {LTBLUE}{WEIGHT_SHORT} {BLACK}Потужність: {LTBLUE}{POWER}{BLACK} Макс. швидкість: {LTBLUE}{VELOCITY}
|
||||||
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Вага: {LTBLUE}{WEIGHT_SHORT} {BLACK}Потужність: {LTBLUE}{POWER}{BLACK} Макс. швидкість: {LTBLUE}{VELOCITY} {BLACK}Макс. тяга: {LTBLUE}{FORCE}
|
STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Вага: {LTBLUE}{WEIGHT_SHORT} {BLACK}Потужність: {LTBLUE}{POWER}{BLACK} Максимальна швидкість: {LTBLUE}{VELOCITY} {BLACK}Максимальне тягове зусилля: {LTBLUE}{FORCE}
|
||||||
|
|
||||||
STR_VEHICLE_INFO_PROFIT_THIS_YEAR_LAST_YEAR :{BLACK}Дохід цього року: {LTBLUE}{CURRENCY_LONG} (торік: {CURRENCY_LONG})
|
STR_VEHICLE_INFO_PROFIT_THIS_YEAR_LAST_YEAR :{BLACK}Дохід цього року: {LTBLUE}{CURRENCY_LONG} (торік: {CURRENCY_LONG})
|
||||||
STR_VEHICLE_INFO_PROFIT_THIS_YEAR_LAST_YEAR_MIN_PERFORMANCE :{BLACK}Дохід цього року: {LTBLUE}{CURRENCY_LONG} (минулого року: {CURRENCY_LONG}) {BLACK}Найгірше: {LTBLUE}{POWER_TO_WEIGHT}
|
STR_VEHICLE_INFO_PROFIT_THIS_YEAR_LAST_YEAR_MIN_PERFORMANCE :{BLACK}Дохід цього року: {LTBLUE}{CURRENCY_LONG} (минулого року: {CURRENCY_LONG}) {BLACK}Найгірше: {LTBLUE}{POWER_TO_WEIGHT}
|
||||||
@@ -4663,7 +4662,7 @@ STR_REFIT_SHIP_REFIT_TOOLTIP :{BLACK}Пере
|
|||||||
STR_REFIT_AIRCRAFT_REFIT_TOOLTIP :{BLACK}Переобладнати літак для перевезення вибраного виду вантажу
|
STR_REFIT_AIRCRAFT_REFIT_TOOLTIP :{BLACK}Переобладнати літак для перевезення вибраного виду вантажу
|
||||||
|
|
||||||
# Order view
|
# Order view
|
||||||
STR_ORDERS_CAPTION :{WHITE}{VEHICLE} (Накази)
|
STR_ORDERS_CAPTION :{WHITE}{VEHICLE} (Завдання)
|
||||||
STR_ORDERS_TIMETABLE_VIEW :{BLACK}Розклад
|
STR_ORDERS_TIMETABLE_VIEW :{BLACK}Розклад
|
||||||
STR_ORDERS_TIMETABLE_VIEW_TOOLTIP :{BLACK}Переключитись на розклад
|
STR_ORDERS_TIMETABLE_VIEW_TOOLTIP :{BLACK}Переключитись на розклад
|
||||||
|
|
||||||
@@ -4706,7 +4705,7 @@ STR_ORDER_DROP_REFIT_AUTO_ANY :Доступн
|
|||||||
STR_ORDER_DROP_GO_ALWAYS_DEPOT :Завжди прямувати
|
STR_ORDER_DROP_GO_ALWAYS_DEPOT :Завжди прямувати
|
||||||
STR_ORDER_DROP_SERVICE_DEPOT :Прямувати при потребі в техогляді
|
STR_ORDER_DROP_SERVICE_DEPOT :Прямувати при потребі в техогляді
|
||||||
STR_ORDER_DROP_HALT_DEPOT :Прямувати і зупинитись
|
STR_ORDER_DROP_HALT_DEPOT :Прямувати і зупинитись
|
||||||
STR_ORDER_DROP_UNBUNCH :Звільнити
|
STR_ORDER_DROP_UNBUNCH :Розподілити по інтервалу
|
||||||
|
|
||||||
# Depot action tooltips, one per vehicle type
|
# Depot action tooltips, one per vehicle type
|
||||||
###length VEHICLE_TYPES
|
###length VEHICLE_TYPES
|
||||||
@@ -4716,7 +4715,7 @@ STR_ORDER_SHIP_DEPOT_ACTION_TOOLTIP :{BLACK}Вибе
|
|||||||
STR_ORDER_HANGAR_ACTION_TOOLTIP :{BLACK}Виберіть дію до виконання в цьому ангарі
|
STR_ORDER_HANGAR_ACTION_TOOLTIP :{BLACK}Виберіть дію до виконання в цьому ангарі
|
||||||
###next-name-looks-similar
|
###next-name-looks-similar
|
||||||
|
|
||||||
STR_ORDER_CONDITIONAL_VARIABLE_TOOLTIP :{BLACK}Дані транспорту для базування наказу
|
STR_ORDER_CONDITIONAL_VARIABLE_TOOLTIP :{BLACK}Дані транспорту для базування завдання
|
||||||
|
|
||||||
# Conditional order variables, must follow order of OrderConditionVariable enum
|
# Conditional order variables, must follow order of OrderConditionVariable enum
|
||||||
###length 8
|
###length 8
|
||||||
@@ -4744,20 +4743,20 @@ STR_ORDER_CONDITIONAL_VALUE_TOOLTIP :{BLACK}Знач
|
|||||||
STR_ORDER_CONDITIONAL_VALUE_CAPT :{WHITE}Введіть значення для порівняння
|
STR_ORDER_CONDITIONAL_VALUE_CAPT :{WHITE}Введіть значення для порівняння
|
||||||
|
|
||||||
STR_ORDERS_SKIP_BUTTON :{BLACK}Пропуск
|
STR_ORDERS_SKIP_BUTTON :{BLACK}Пропуск
|
||||||
STR_ORDERS_SKIP_TOOLTIP :{BLACK}Пропустити поточний наказ, і виконувати наступний. Ctrl+клац для переходу до обраного наказу
|
STR_ORDERS_SKIP_TOOLTIP :{BLACK}Пропустити поточне завдання, і виконати наступне. Ctrl+клац для переходу до обраного завдання
|
||||||
|
|
||||||
STR_ORDERS_DELETE_BUTTON :{BLACK}Видалити
|
STR_ORDERS_DELETE_BUTTON :{BLACK}Видалити
|
||||||
STR_ORDERS_DELETE_TOOLTIP :{BLACK}Видалити виділене завдання
|
STR_ORDERS_DELETE_TOOLTIP :{BLACK}Видалити виділене завдання
|
||||||
STR_ORDERS_DELETE_ALL_TOOLTIP :{BLACK}Видалити всі накази
|
STR_ORDERS_DELETE_ALL_TOOLTIP :{BLACK}Видалити всі завдання
|
||||||
STR_ORDERS_STOP_SHARING_BUTTON :{BLACK}Скасувати спільні накази
|
STR_ORDERS_STOP_SHARING_BUTTON :{BLACK}Скасувати спільні завдання
|
||||||
STR_ORDERS_STOP_SHARING_TOOLTIP :{BLACK}Припинити використовути спільні накази. Ctrl+клац видаляє всі накази для цього транспорту
|
STR_ORDERS_STOP_SHARING_TOOLTIP :{BLACK}Припинити використання спільних завдань. Ctrl+клац видаляє всі завдання для цього транспорту
|
||||||
|
|
||||||
STR_ORDERS_GO_TO_BUTTON :{BLACK}Прямувати
|
STR_ORDERS_GO_TO_BUTTON :{BLACK}Прямувати
|
||||||
STR_ORDER_GO_TO_NEAREST_DEPOT :Прямувати до найближчого депо
|
STR_ORDER_GO_TO_NEAREST_DEPOT :Прямувати до найближчого депо
|
||||||
STR_ORDER_GO_TO_NEAREST_HANGAR :Прямувати в найближчий ангар
|
STR_ORDER_GO_TO_NEAREST_HANGAR :Прямувати в найближчий ангар
|
||||||
STR_ORDER_CONDITIONAL :Зміна наказу з умовою
|
STR_ORDER_CONDITIONAL :Змінити завдання, за умови
|
||||||
STR_ORDER_SHARE :Спільні накази
|
STR_ORDER_SHARE :Спільні завдання
|
||||||
STR_ORDERS_GO_TO_TOOLTIP :{BLACK}Вставити новий наказ перед обраним або додати в кінець списку. Ctrl+клац на станції аби наказати "повне завантаження будь-якого вантажу". Ctrl+клац на точці маршруту аби змінити налаштування "без зупинок" на протилежне. Ctrl+клаці на гаражі для "звільнення". Клац мишею на авто копіює його накази. Ctrl+клац на авто сворює спільні накази. Наказ із гаражем вимикає автоматичний техогляд авто
|
STR_ORDERS_GO_TO_TOOLTIP :{BLACK}Вставити нове завдання перед обраним або додати в кінець списку. Ctrl+клац на станції для завдання "повне завантаження будь-якого вантажу". Ctrl+клац на точці маршруту аби змінити налаштування "без зупинок" на протилежне. Ctrl+клац на гаражі для "автоматичного розподілення". Клац мишею на авто копіює його завдання. Ctrl+клац на авто створює спільні завдання. Завдання з гаражем вимикає автоматичний техогляд транспортного засобу
|
||||||
|
|
||||||
STR_ORDERS_VEH_WITH_SHARED_ORDERS_LIST_TOOLTIP :{BLACK}Показати транспорт з таким самим маршрутом
|
STR_ORDERS_VEH_WITH_SHARED_ORDERS_LIST_TOOLTIP :{BLACK}Показати транспорт з таким самим маршрутом
|
||||||
|
|
||||||
@@ -4783,7 +4782,7 @@ STR_ORDER_REFIT_ORDER :(Переобл
|
|||||||
STR_ORDER_REFIT_STOP_ORDER :(Переобладнати на {STRING} і зупинити)
|
STR_ORDER_REFIT_STOP_ORDER :(Переобладнати на {STRING} і зупинити)
|
||||||
STR_ORDER_STOP_ORDER :(зупинити)
|
STR_ORDER_STOP_ORDER :(зупинити)
|
||||||
|
|
||||||
STR_ORDER_WAIT_TO_UNBUNCH :(чекає звільнення)
|
STR_ORDER_WAIT_TO_UNBUNCH :(чекати на розподілення за інтервалом)
|
||||||
|
|
||||||
STR_ORDER_GO_TO_STATION :{STRING} {STATION} {STRING}
|
STR_ORDER_GO_TO_STATION :{STRING} {STATION} {STRING}
|
||||||
STR_ORDER_GO_TO_STATION_CAN_T_USE_STATION :{PUSH_COLOUR}{RED}(Неможливо використати станцію){POP_COLOUR} {STRING} {STATION} {STRING}
|
STR_ORDER_GO_TO_STATION_CAN_T_USE_STATION :{PUSH_COLOUR}{RED}(Неможливо використати станцію){POP_COLOUR} {STRING} {STATION} {STRING}
|
||||||
@@ -4828,21 +4827,21 @@ 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_UNCONDITIONAL :Перейти до завдання {COMMA}
|
||||||
STR_ORDER_CONDITIONAL_NUM :Перейти до наказу {COMMA}, якщо {STRING} {STRING} {COMMA}
|
STR_ORDER_CONDITIONAL_NUM :Перейти до завдання {COMMA}, якщо {STRING} {STRING} {COMMA}
|
||||||
STR_ORDER_CONDITIONAL_TRUE_FALSE :Перейти до наказу {COMMA}, якщо {STRING} {STRING}
|
STR_ORDER_CONDITIONAL_TRUE_FALSE :Перейти до завдання {COMMA}, якщо {STRING} {STRING}
|
||||||
|
|
||||||
STR_INVALID_ORDER :{RED} (Невірний наказ)
|
STR_INVALID_ORDER :{RED} (Неправильне завдання)
|
||||||
|
|
||||||
# Time table window
|
# Time table window
|
||||||
STR_TIMETABLE_TITLE :{WHITE}{VEHICLE} (розклад)
|
STR_TIMETABLE_TITLE :{WHITE}{VEHICLE} (розклад)
|
||||||
STR_TIMETABLE_ORDER_VIEW :{BLACK}Завдання
|
STR_TIMETABLE_ORDER_VIEW :{BLACK}Завдання
|
||||||
STR_TIMETABLE_ORDER_VIEW_TOOLTIP :{BLACK}Переключитись до вікна завдань
|
STR_TIMETABLE_ORDER_VIEW_TOOLTIP :{BLACK}Переключитись до вікна завдань
|
||||||
|
|
||||||
STR_TIMETABLE_TOOLTIP :{BLACK}Розклад - клацніть мишою на наказ, щоб виділити його
|
STR_TIMETABLE_TOOLTIP :{BLACK}Розклад - клацніть мишею на завдання, щоб виділити його
|
||||||
|
|
||||||
STR_TIMETABLE_NO_TRAVEL :Не прямувати
|
STR_TIMETABLE_NO_TRAVEL :Не прямувати
|
||||||
STR_TIMETABLE_NOT_TIMETABLEABLE :В дорозі (час руху враховано в наступному не автоматичному наказі)
|
STR_TIMETABLE_NOT_TIMETABLEABLE :В дорозі (час руху враховано в наступному не автоматичному завданні)
|
||||||
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :В дорозі (час не вказано)
|
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :В дорозі (час не вказано)
|
||||||
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Прямувати (без розкладу) зі швидкістю, що не перевищує {2:VELOCITY} (час не вказано)
|
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Прямувати (без розкладу) зі швидкістю, що не перевищує {2:VELOCITY} (час не вказано)
|
||||||
STR_TIMETABLE_TRAVEL_FOR :В дорозі {STRING}
|
STR_TIMETABLE_TRAVEL_FOR :В дорозі {STRING}
|
||||||
@@ -4867,21 +4866,21 @@ STR_TIMETABLE_STATUS_START_IN_SECONDS.r :{BLACK}Цей
|
|||||||
STR_TIMETABLE_STATUS_START_IN_SECONDS.d :{BLACK}Цей розклад почнеться після {COMMA} секунд
|
STR_TIMETABLE_STATUS_START_IN_SECONDS.d :{BLACK}Цей розклад почнеться після {COMMA} секунд
|
||||||
|
|
||||||
STR_TIMETABLE_START :{BLACK}Початок розкладу
|
STR_TIMETABLE_START :{BLACK}Початок розкладу
|
||||||
STR_TIMETABLE_START_TOOLTIP :{BLACK}Обрати початок розкладу. Ctrl+клац для рівного розподілу початку руху транспорту зі спільним наказом. Якщо наказ із розкладом, транспорт розподілиться за відносним порядком
|
STR_TIMETABLE_START_TOOLTIP :{BLACK}Обрати початок розкладу. Ctrl+клац для рівного розподілу початку руху транспорту зі спільними завданнями. Якщо завдання включає в себе розклад, транспорт розподілиться по маршруту з його урахуванням
|
||||||
|
|
||||||
STR_TIMETABLE_START_SECONDS_QUERY :Секунд до початку розкладу
|
STR_TIMETABLE_START_SECONDS_QUERY :Секунд до початку розкладу
|
||||||
|
|
||||||
STR_TIMETABLE_CHANGE_TIME :{BLACK}Змінити час
|
STR_TIMETABLE_CHANGE_TIME :{BLACK}Змінити час
|
||||||
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Змінити час, впродовж якого має виконуватись наказ. Ctrl+клац змінить час в усіх наказах
|
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Змінити час, впродовж якого має виконуватись завдання. Ctrl+клац змінить час в усіх завданнях
|
||||||
|
|
||||||
STR_TIMETABLE_CLEAR_TIME :{BLACK}Скасувати час
|
STR_TIMETABLE_CLEAR_TIME :{BLACK}Скасувати час
|
||||||
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Скасувати час виконання виділеного наказу. Ctrl+клац скасує обмеження часу в усіх наказах
|
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Скасувати час виконання виділеного завдання. Ctrl+клац скасує обмеження часу в усіх завданнях
|
||||||
|
|
||||||
STR_TIMETABLE_CHANGE_SPEED :{BLACK}Змінити обмеж. швидкості
|
STR_TIMETABLE_CHANGE_SPEED :{BLACK}Змінити обмеж. швидкості
|
||||||
STR_TIMETABLE_CHANGE_SPEED_TOOLTIP :{BLACK}Змінити обмеження швидкості для виділеного пункту. Ctrl+клац змінить швидкість в усіх завданнях
|
STR_TIMETABLE_CHANGE_SPEED_TOOLTIP :{BLACK}Змінити обмеження швидкості для виділеного пункту. Ctrl+клац змінить швидкість в усіх завданнях
|
||||||
|
|
||||||
STR_TIMETABLE_CLEAR_SPEED :{BLACK}Скасувати обмеж. швидкості
|
STR_TIMETABLE_CLEAR_SPEED :{BLACK}Скасувати обмеж. швидкості
|
||||||
STR_TIMETABLE_CLEAR_SPEED_TOOLTIP :{BLACK}Скасувати обмеження швидкості для виділеного пункту. Ctrl+клац скасує обмеження швидкості в усіх наказах
|
STR_TIMETABLE_CLEAR_SPEED_TOOLTIP :{BLACK}Скасувати обмеження швидкості для виділеного завдання. Ctrl+клац скасує обмеження швидкості в усіх завданнях
|
||||||
|
|
||||||
STR_TIMETABLE_RESET_LATENESS :{BLACK}Скасувати відхилення
|
STR_TIMETABLE_RESET_LATENESS :{BLACK}Скасувати відхилення
|
||||||
STR_TIMETABLE_RESET_LATENESS_TOOLTIP :{BLACK}Скасувати лічильник відхилення від графіка, щоб транспорт встигав. Ctrl+клац, щоб скасувати лічильник для всієї групи транспорту. При цьому останній транспорт йтиме за графіком, а інші випереджатимуть графік.
|
STR_TIMETABLE_RESET_LATENESS_TOOLTIP :{BLACK}Скасувати лічильник відхилення від графіка, щоб транспорт встигав. Ctrl+клац, щоб скасувати лічильник для всієї групи транспорту. При цьому останній транспорт йтиме за графіком, а інші випереджатимуть графік.
|
||||||
@@ -5255,18 +5254,18 @@ STR_ERROR_UNABLE_TO_FIND_LOCAL_DEPOT :{WHITE}Немо
|
|||||||
STR_ERROR_DEPOT_WRONG_DEPOT_TYPE :Неправильний тип депо
|
STR_ERROR_DEPOT_WRONG_DEPOT_TYPE :Неправильний тип депо
|
||||||
|
|
||||||
# Depot unbunching related errors
|
# Depot unbunching related errors
|
||||||
STR_ERROR_UNBUNCHING_ONLY_ONE_ALLOWED :{WHITE}... можливий тільки один звільнений наказ
|
STR_ERROR_UNBUNCHING_ONLY_ONE_ALLOWED :{WHITE}... дозволяється не більше одного завдання на розподілення по інтервалу
|
||||||
STR_ERROR_UNBUNCHING_NO_FULL_LOAD :{WHITE}... неможливо використати наказ "повне завантаження", якщо транспорт звільнено
|
STR_ERROR_UNBUNCHING_NO_FULL_LOAD :{WHITE}... неможливо використати завдання "повне завантаження", якщо транспорт має завдання на розподілення
|
||||||
STR_ERROR_UNBUNCHING_NO_UNBUNCHING_FULL_LOAD :{WHITE}... неможливо звільнити транспорт з наказом "повне завантаження"
|
STR_ERROR_UNBUNCHING_NO_UNBUNCHING_FULL_LOAD :{WHITE}... неможливо задати завдання на розподілення, якщо транспорт має завдання з умовою на "повне завантаження"
|
||||||
STR_ERROR_UNBUNCHING_NO_CONDITIONAL :{WHITE}... неможливо використати стандартні накази, якщо транспорт звільнено
|
STR_ERROR_UNBUNCHING_NO_CONDITIONAL :{WHITE}... неможливо використати стандартні завдання, якщо транспорт має завдання на розподілення
|
||||||
STR_ERROR_UNBUNCHING_NO_UNBUNCHING_CONDITIONAL :{WHITE}... неможливо звільнити транспорт зі стандартним наказом
|
STR_ERROR_UNBUNCHING_NO_UNBUNCHING_CONDITIONAL :{WHITE}... неможливо задати завдання на розподілення, якщо транспорт має завдання з додатковими умовами
|
||||||
|
|
||||||
# Autoreplace related errors
|
# Autoreplace related errors
|
||||||
STR_ERROR_TRAIN_TOO_LONG_AFTER_REPLACEMENT :{WHITE}{VEHICLE} дуже довгий після оновлення
|
STR_ERROR_TRAIN_TOO_LONG_AFTER_REPLACEMENT :{WHITE}{VEHICLE} дуже довгий після оновлення
|
||||||
STR_ERROR_AUTOREPLACE_NOTHING_TO_DO :{WHITE}Правила автозаміни/оновлення не застосовувалися
|
STR_ERROR_AUTOREPLACE_NOTHING_TO_DO :{WHITE}Правила автозаміни/оновлення не застосовувалися
|
||||||
STR_ERROR_AUTOREPLACE_MONEY_LIMIT :(бракує коштів)
|
STR_ERROR_AUTOREPLACE_MONEY_LIMIT :(бракує коштів)
|
||||||
STR_ERROR_AUTOREPLACE_INCOMPATIBLE_CARGO :{WHITE}Новий транспорт не може перевозити {STRING}
|
STR_ERROR_AUTOREPLACE_INCOMPATIBLE_CARGO :{WHITE}Новий транспорт не може перевозити {STRING}
|
||||||
STR_ERROR_AUTOREPLACE_INCOMPATIBLE_REFIT :{WHITE}Нове авто не може змінити наказ {NUM}
|
STR_ERROR_AUTOREPLACE_INCOMPATIBLE_REFIT :{WHITE}Новий транспорт не може переобладнатися згідно з завданням {NUM}
|
||||||
|
|
||||||
# Rail construction errors
|
# Rail construction errors
|
||||||
STR_ERROR_IMPOSSIBLE_TRACK_COMBINATION :{WHITE}Неможливе з'єднання колії
|
STR_ERROR_IMPOSSIBLE_TRACK_COMBINATION :{WHITE}Неможливе з'єднання колії
|
||||||
@@ -5437,12 +5436,12 @@ STR_ERROR_AIRCRAFT_IS_IN_FLIGHT :{WHITE}Літа
|
|||||||
# Order related errors
|
# Order related errors
|
||||||
STR_ERROR_NO_MORE_SPACE_FOR_ORDERS :{WHITE}Немає місця для нових завдань
|
STR_ERROR_NO_MORE_SPACE_FOR_ORDERS :{WHITE}Немає місця для нових завдань
|
||||||
STR_ERROR_TOO_MANY_ORDERS :{WHITE}Занадто багато завдань
|
STR_ERROR_TOO_MANY_ORDERS :{WHITE}Занадто багато завдань
|
||||||
STR_ERROR_CAN_T_INSERT_NEW_ORDER :{WHITE}Неможливо додати наказ...
|
STR_ERROR_CAN_T_INSERT_NEW_ORDER :{WHITE}Неможливо додати завдання...
|
||||||
STR_ERROR_CAN_T_DELETE_THIS_ORDER :{WHITE}Неможливо видалити наказ...
|
STR_ERROR_CAN_T_DELETE_THIS_ORDER :{WHITE}Неможливо видалити завдання...
|
||||||
STR_ERROR_CAN_T_MODIFY_THIS_ORDER :{WHITE}Неможливо змінити наказ...
|
STR_ERROR_CAN_T_MODIFY_THIS_ORDER :{WHITE}Неможливо змінити завдання...
|
||||||
STR_ERROR_CAN_T_MOVE_THIS_ORDER :{WHITE}Не можна перемістити цей наказ...
|
STR_ERROR_CAN_T_MOVE_THIS_ORDER :{WHITE}Неможливо перемістити це завдання...
|
||||||
STR_ERROR_CAN_T_SKIP_ORDER :{WHITE}Не можна пропустити цей наказ...
|
STR_ERROR_CAN_T_SKIP_ORDER :{WHITE}Не можна пропустити це завдання...
|
||||||
STR_ERROR_CAN_T_SKIP_TO_ORDER :{WHITE}Не можна перейти до цього наказу...
|
STR_ERROR_CAN_T_SKIP_TO_ORDER :{WHITE}Неможливо перейти до цього завдання...
|
||||||
STR_ERROR_CAN_T_COPY_SHARE_ORDER :{WHITE}... транспорт не може йти на всі станції
|
STR_ERROR_CAN_T_COPY_SHARE_ORDER :{WHITE}... транспорт не може йти на всі станції
|
||||||
STR_ERROR_CAN_T_ADD_ORDER :{WHITE}... транспорт не може йти на цю станцію
|
STR_ERROR_CAN_T_ADD_ORDER :{WHITE}... транспорт не може йти на цю станцію
|
||||||
STR_ERROR_CAN_T_ADD_ORDER_SHARED :{WHITE}... транспорт, що має спільний з цим розклад, не може йти на цю станцію
|
STR_ERROR_CAN_T_ADD_ORDER_SHARED :{WHITE}... транспорт, що має спільний з цим розклад, не може йти на цю станцію
|
||||||
@@ -5450,7 +5449,7 @@ STR_ERROR_CAN_T_COPY_ORDER_VEHICLE_LIST :{WHITE}... не
|
|||||||
STR_ERROR_CAN_T_SHARE_ORDER_VEHICLE_LIST :WHITE}... не увесь транспорт має спільні завдання
|
STR_ERROR_CAN_T_SHARE_ORDER_VEHICLE_LIST :WHITE}... не увесь транспорт має спільні завдання
|
||||||
|
|
||||||
STR_ERROR_CAN_T_SHARE_ORDER_LIST :{WHITE}Неможливо розділити список завдань...
|
STR_ERROR_CAN_T_SHARE_ORDER_LIST :{WHITE}Неможливо розділити список завдань...
|
||||||
STR_ERROR_CAN_T_STOP_SHARING_ORDER_LIST :{WHITE}Неможливо скасувати спільні накази...
|
STR_ERROR_CAN_T_STOP_SHARING_ORDER_LIST :{WHITE}Неможливо скасувати спільні завдання...
|
||||||
STR_ERROR_CAN_T_COPY_ORDER_LIST :{WHITE}Неможливо скопіювати список завдань...
|
STR_ERROR_CAN_T_COPY_ORDER_LIST :{WHITE}Неможливо скопіювати список завдань...
|
||||||
STR_ERROR_TOO_FAR_FROM_PREVIOUS_DESTINATION :{WHITE}... занадто далеко від попереднього пункту призначення
|
STR_ERROR_TOO_FAR_FROM_PREVIOUS_DESTINATION :{WHITE}... занадто далеко від попереднього пункту призначення
|
||||||
STR_ERROR_AIRCRAFT_NOT_ENOUGH_RANGE :{WHITE}... літак не може летіти так далеко
|
STR_ERROR_AIRCRAFT_NOT_ENOUGH_RANGE :{WHITE}... літак не може летіти так далеко
|
||||||
|
@@ -2264,7 +2264,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_RAIL_TYPE :طرزِ ریل
|
|||||||
|
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE} صف بندھی کے sprite {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK} اگلی sprite
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK} اگلی sprite
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK} جایئے sprite تک
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK} جایئے sprite تک
|
||||||
STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK} جایئے sprite کی طرف۔ اگر sprite اصلی نھیں تو اگلی sprite کی طرف جائیے
|
STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK} جایئے sprite کی طرف۔ اگر sprite اصلی نھیں تو اگلی sprite کی طرف جائیے
|
||||||
|
@@ -3488,7 +3488,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_ROAD_TYPE :Loại đườn
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Biến số NewGRF là 60+x (dạng hexa)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Biến số NewGRF là 60+x (dạng hexa)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Điều chỉnh sprite {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Sprite tiếp
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Sprite tiếp
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Chuyển tới sprite bình thường kế tiếp, bỏ qua các loại sprite và căn theo điểm kết thúc
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Chuyển tới sprite bình thường kế tiếp, bỏ qua các loại sprite và căn theo điểm kết thúc
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Đi tới sprite
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Đi tới sprite
|
||||||
|
@@ -3488,7 +3488,6 @@ STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_ROAD_TYPE :Math ffordd
|
|||||||
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Paramedr newidyn NewGRF 60+x (hecsaddigidol)
|
STR_NEWGRF_INSPECT_QUERY_CAPTION :{WHITE}Paramedr newidyn NewGRF 60+x (hecsaddigidol)
|
||||||
|
|
||||||
# Sprite aligner window
|
# Sprite aligner window
|
||||||
STR_SPRITE_ALIGNER_CAPTION :{WHITE}Alinio corlun {COMMA} ({STRING})
|
|
||||||
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Corlun nesaf
|
STR_SPRITE_ALIGNER_NEXT_BUTTON :{BLACK}Corlun nesaf
|
||||||
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Mynd i'r corlun cyffredin nesaf, gan hepgor unrhyw gorluniau ailliwio/ffont/llidgorluniau, ac amlapio o'r corlun olaf i'r gyntaf
|
STR_SPRITE_ALIGNER_NEXT_TOOLTIP :{BLACK}Mynd i'r corlun cyffredin nesaf, gan hepgor unrhyw gorluniau ailliwio/ffont/llidgorluniau, ac amlapio o'r corlun olaf i'r gyntaf
|
||||||
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Mynd i gorlun
|
STR_SPRITE_ALIGNER_GOTO_BUTTON :{BLACK}Mynd i gorlun
|
||||||
|
@@ -129,7 +129,7 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
if (widget != WID_PLT_BACKGROUND) return;
|
if (widget != WID_PLT_BACKGROUND) return;
|
||||||
|
|
||||||
@@ -162,8 +162,8 @@ public:
|
|||||||
|
|
||||||
this->text_width = widest_width + WidgetDimensions::scaled.hsep_indent * 3; // Keep some extra spacing
|
this->text_width = widest_width + WidgetDimensions::scaled.hsep_indent * 3; // Keep some extra spacing
|
||||||
|
|
||||||
size->width = WidgetDimensions::scaled.framerect.Horizontal() + this->ordinal_width + this->icon.width + this->text_width + WidgetDimensions::scaled.hsep_wide;
|
size.width = WidgetDimensions::scaled.framerect.Horizontal() + this->ordinal_width + this->icon.width + this->text_width + WidgetDimensions::scaled.hsep_wide;
|
||||||
size->height = this->line_height * MAX_COMPANIES + WidgetDimensions::scaled.framerect.Vertical();
|
size.height = this->line_height * MAX_COMPANIES + WidgetDimensions::scaled.framerect.Vertical();
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnGameTick() override
|
void OnGameTick() override
|
||||||
@@ -359,7 +359,7 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
if (widget != WID_SLT_BACKGROUND) return;
|
if (widget != WID_SLT_BACKGROUND) return;
|
||||||
|
|
||||||
@@ -385,18 +385,18 @@ public:
|
|||||||
if (!show_icon_column) this->icon_size.width = 0;
|
if (!show_icon_column) this->icon_size.width = 0;
|
||||||
else this->icon_size.width += WidgetDimensions::scaled.hsep_wide;
|
else this->icon_size.width += WidgetDimensions::scaled.hsep_wide;
|
||||||
|
|
||||||
size->width = this->rank_width + this->icon_size.width + this->text_width + this->score_width + WidgetDimensions::scaled.framerect.Horizontal() + WidgetDimensions::scaled.hsep_wide * 2;
|
size.width = this->rank_width + this->icon_size.width + this->text_width + this->score_width + WidgetDimensions::scaled.framerect.Horizontal() + WidgetDimensions::scaled.hsep_wide * 2;
|
||||||
size->height = this->line_height * std::max<uint>(3u, (unsigned)this->rows.size()) + WidgetDimensions::scaled.framerect.Vertical();
|
size.height = this->line_height * std::max<uint>(3u, (unsigned)this->rows.size()) + WidgetDimensions::scaled.framerect.Vertical();
|
||||||
|
|
||||||
if (!lt->header.empty()) {
|
if (!lt->header.empty()) {
|
||||||
SetDParamStr(0, lt->header);
|
SetDParamStr(0, lt->header);
|
||||||
this->header_height = GetStringHeight(STR_JUST_RAW_STRING, size->width - WidgetDimensions::scaled.framerect.Horizontal()) + WidgetDimensions::scaled.vsep_wide;
|
this->header_height = GetStringHeight(STR_JUST_RAW_STRING, size.width - WidgetDimensions::scaled.framerect.Horizontal()) + WidgetDimensions::scaled.vsep_wide;
|
||||||
size->height += header_height;
|
size.height += header_height;
|
||||||
} else this->header_height = 0;
|
} else this->header_height = 0;
|
||||||
|
|
||||||
if (!lt->footer.empty()) {
|
if (!lt->footer.empty()) {
|
||||||
SetDParamStr(0, lt->footer);
|
SetDParamStr(0, lt->footer);
|
||||||
size->height += GetStringHeight(STR_JUST_RAW_STRING, size->width - WidgetDimensions::scaled.framerect.Horizontal()) + WidgetDimensions::scaled.vsep_wide;
|
size.height += GetStringHeight(STR_JUST_RAW_STRING, size.width - WidgetDimensions::scaled.framerect.Horizontal()) + WidgetDimensions::scaled.vsep_wide;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -840,7 +840,7 @@ void LinkGraphLegendWindow::SetOverlay(LinkGraphOverlay *overlay)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void LinkGraphLegendWindow::UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize)
|
void LinkGraphLegendWindow::UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize)
|
||||||
{
|
{
|
||||||
if (IsInsideMM(widget, WID_LGL_SATURATION_FIRST, WID_LGL_SATURATION_LAST + 1)) {
|
if (IsInsideMM(widget, WID_LGL_SATURATION_FIRST, WID_LGL_SATURATION_LAST + 1)) {
|
||||||
StringID str = STR_NULL;
|
StringID str = STR_NULL;
|
||||||
@@ -855,7 +855,7 @@ void LinkGraphLegendWindow::UpdateWidgetSize(WidgetID widget, Dimension *size, [
|
|||||||
Dimension dim = GetStringBoundingBox(str, FS_SMALL);
|
Dimension dim = GetStringBoundingBox(str, FS_SMALL);
|
||||||
dim.width += padding.width;
|
dim.width += padding.width;
|
||||||
dim.height += padding.height;
|
dim.height += padding.height;
|
||||||
*size = maxdim(*size, dim);
|
size = maxdim(size, dim);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (IsInsideMM(widget, WID_LGL_CARGO_FIRST, WID_LGL_CARGO_LAST + 1)) {
|
if (IsInsideMM(widget, WID_LGL_CARGO_FIRST, WID_LGL_CARGO_LAST + 1)) {
|
||||||
@@ -863,7 +863,7 @@ void LinkGraphLegendWindow::UpdateWidgetSize(WidgetID widget, Dimension *size, [
|
|||||||
Dimension dim = GetStringBoundingBox(cargo->abbrev, FS_SMALL);
|
Dimension dim = GetStringBoundingBox(cargo->abbrev, FS_SMALL);
|
||||||
dim.width += padding.width;
|
dim.width += padding.width;
|
||||||
dim.height += padding.height;
|
dim.height += padding.height;
|
||||||
*size = maxdim(*size, dim);
|
size = maxdim(size, dim);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -138,7 +138,7 @@ public:
|
|||||||
LinkGraphLegendWindow(WindowDesc *desc, int window_number);
|
LinkGraphLegendWindow(WindowDesc *desc, int window_number);
|
||||||
void SetOverlay(LinkGraphOverlay *overlay);
|
void SetOverlay(LinkGraphOverlay *overlay);
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override;
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override;
|
||||||
void DrawWidget(const Rect &r, WidgetID widget) const override;
|
void DrawWidget(const Rect &r, WidgetID widget) const override;
|
||||||
bool OnTooltip([[maybe_unused]] Point pt, WidgetID widget, TooltipCloseCondition close_cond) override;
|
bool OnTooltip([[maybe_unused]] Point pt, WidgetID widget, TooltipCloseCondition close_cond) override;
|
||||||
void OnClick([[maybe_unused]] Point pt, WidgetID widget, [[maybe_unused]] int click_count) override;
|
void OnClick([[maybe_unused]] Point pt, WidgetID widget, [[maybe_unused]] int click_count) override;
|
||||||
|
@@ -90,23 +90,23 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
if (widget != WID_LI_BACKGROUND) return;
|
if (widget != WID_LI_BACKGROUND) return;
|
||||||
|
|
||||||
size->height = WidgetDimensions::scaled.frametext.Vertical();
|
size.height = WidgetDimensions::scaled.frametext.Vertical();
|
||||||
for (size_t i = 0; i < this->landinfo_data.size(); i++) {
|
for (size_t i = 0; i < this->landinfo_data.size(); i++) {
|
||||||
uint width = GetStringBoundingBox(this->landinfo_data[i]).width + WidgetDimensions::scaled.frametext.Horizontal();
|
uint width = GetStringBoundingBox(this->landinfo_data[i]).width + WidgetDimensions::scaled.frametext.Horizontal();
|
||||||
size->width = std::max(size->width, width);
|
size.width = std::max(size.width, width);
|
||||||
|
|
||||||
size->height += GetCharacterHeight(FS_NORMAL) + (i == 0 ? WidgetDimensions::scaled.vsep_wide : WidgetDimensions::scaled.vsep_normal);
|
size.height += GetCharacterHeight(FS_NORMAL) + (i == 0 ? WidgetDimensions::scaled.vsep_wide : WidgetDimensions::scaled.vsep_normal);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!this->cargo_acceptance.empty()) {
|
if (!this->cargo_acceptance.empty()) {
|
||||||
uint width = GetStringBoundingBox(this->cargo_acceptance).width + WidgetDimensions::scaled.frametext.Horizontal();
|
uint width = GetStringBoundingBox(this->cargo_acceptance).width + WidgetDimensions::scaled.frametext.Horizontal();
|
||||||
size->width = std::max(size->width, std::min(static_cast<uint>(ScaleGUITrad(300)), width));
|
size.width = std::max(size.width, std::min(static_cast<uint>(ScaleGUITrad(300)), width));
|
||||||
SetDParamStr(0, cargo_acceptance);
|
SetDParamStr(0, cargo_acceptance);
|
||||||
size->height += GetStringHeight(STR_JUST_RAW_STRING, size->width - WidgetDimensions::scaled.frametext.Horizontal());
|
size.height += GetStringHeight(STR_JUST_RAW_STRING, size.width - WidgetDimensions::scaled.frametext.Horizontal());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -441,7 +441,7 @@ static WindowDesc _about_desc(__FILE__, __LINE__,
|
|||||||
std::begin(_nested_about_widgets), std::end(_nested_about_widgets)
|
std::begin(_nested_about_widgets), std::end(_nested_about_widgets)
|
||||||
);
|
);
|
||||||
|
|
||||||
static const char * const _credits[] = {
|
static const std::initializer_list<const std::string_view> _credits = {
|
||||||
"Original design by Chris Sawyer",
|
"Original design by Chris Sawyer",
|
||||||
"Original graphics by Simon Foster",
|
"Original graphics by Simon Foster",
|
||||||
"",
|
"",
|
||||||
@@ -533,7 +533,7 @@ struct AboutWindow : public Window {
|
|||||||
if (widget == WID_A_COPYRIGHT) SetDParamStr(0, _openttd_revision_year);
|
if (widget == WID_A_COPYRIGHT) SetDParamStr(0, _openttd_revision_year);
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
if (widget != WID_A_SCROLLING_TEXT) return;
|
if (widget != WID_A_SCROLLING_TEXT) return;
|
||||||
|
|
||||||
@@ -543,10 +543,10 @@ struct AboutWindow : public Window {
|
|||||||
d.height = this->line_height * num_visible_lines;
|
d.height = this->line_height * num_visible_lines;
|
||||||
|
|
||||||
d.width = 0;
|
d.width = 0;
|
||||||
for (uint i = 0; i < lengthof(_credits); i++) {
|
for (const auto &str : _credits) {
|
||||||
d.width = std::max(d.width, GetStringBoundingBox(_credits[i]).width);
|
d.width = std::max(d.width, GetStringBoundingBox(str).width);
|
||||||
}
|
}
|
||||||
*size = maxdim(*size, d);
|
size = maxdim(size, d);
|
||||||
|
|
||||||
/* Set scroll interval based on required speed. To keep scrolling smooth,
|
/* Set scroll interval based on required speed. To keep scrolling smooth,
|
||||||
* the interval is adjusted rather than the distance moved. */
|
* the interval is adjusted rather than the distance moved. */
|
||||||
@@ -560,9 +560,9 @@ struct AboutWindow : public Window {
|
|||||||
int y = this->text_position;
|
int y = this->text_position;
|
||||||
|
|
||||||
/* Show all scrolling _credits */
|
/* Show all scrolling _credits */
|
||||||
for (uint i = 0; i < lengthof(_credits); i++) {
|
for (const auto &str : _credits) {
|
||||||
if (y >= r.top + 7 && y < r.bottom - this->line_height) {
|
if (y >= r.top + 7 && y < r.bottom - this->line_height) {
|
||||||
DrawString(r.left, r.right, y, _credits[i], TC_BLACK, SA_LEFT | SA_FORCE);
|
DrawString(r.left, r.right, y, str, TC_BLACK, SA_LEFT | SA_FORCE);
|
||||||
}
|
}
|
||||||
y += this->line_height;
|
y += this->line_height;
|
||||||
}
|
}
|
||||||
@@ -574,7 +574,7 @@ struct AboutWindow : public Window {
|
|||||||
if (count > 0) {
|
if (count > 0) {
|
||||||
this->text_position -= count;
|
this->text_position -= count;
|
||||||
/* If the last text has scrolled start a new from the start */
|
/* If the last text has scrolled start a new from the start */
|
||||||
if (this->text_position < (int)(this->GetWidget<NWidgetBase>(WID_A_SCROLLING_TEXT)->pos_y - lengthof(_credits) * this->line_height)) {
|
if (this->text_position < (int)(this->GetWidget<NWidgetBase>(WID_A_SCROLLING_TEXT)->pos_y - std::size(_credits) * this->line_height)) {
|
||||||
this->text_position = this->GetWidget<NWidgetBase>(WID_A_SCROLLING_TEXT)->pos_y + this->GetWidget<NWidgetBase>(WID_A_SCROLLING_TEXT)->current_y;
|
this->text_position = this->GetWidget<NWidgetBase>(WID_A_SCROLLING_TEXT)->pos_y + this->GetWidget<NWidgetBase>(WID_A_SCROLLING_TEXT)->current_y;
|
||||||
}
|
}
|
||||||
this->SetWidgetDirty(WID_A_SCROLLING_TEXT);
|
this->SetWidgetDirty(WID_A_SCROLLING_TEXT);
|
||||||
@@ -755,21 +755,21 @@ struct TooltipsWindow : public Window
|
|||||||
return pt;
|
return pt;
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
if (widget != WID_TT_BACKGROUND) return;
|
if (widget != WID_TT_BACKGROUND) return;
|
||||||
if (this->params.size() == 0) {
|
if (this->params.size() == 0) {
|
||||||
size->width = std::min<uint>(GetStringBoundingBox(this->buffer).width, ScaleGUITrad(194));
|
size.width = std::min<uint>(GetStringBoundingBox(this->buffer).width, ScaleGUITrad(194));
|
||||||
size->height = GetStringHeight(this->buffer, size->width);
|
size.height = GetStringHeight(this->buffer, size.width);
|
||||||
} else {
|
} else {
|
||||||
CopyInDParam(this->params);
|
CopyInDParam(this->params);
|
||||||
size->width = std::min<uint>(GetStringBoundingBox(this->string_id).width, ScaleGUITrad(194));
|
size.width = std::min<uint>(GetStringBoundingBox(this->string_id).width, ScaleGUITrad(194));
|
||||||
size->height = GetStringHeight(this->string_id, size->width);
|
size.height = GetStringHeight(this->string_id, size.width);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Increase slightly to have some space around the box. */
|
/* Increase slightly to have some space around the box. */
|
||||||
size->width += WidgetDimensions::scaled.framerect.Horizontal() + WidgetDimensions::scaled.fullbevel.Horizontal();
|
size.width += WidgetDimensions::scaled.framerect.Horizontal() + WidgetDimensions::scaled.fullbevel.Horizontal();
|
||||||
size->height += WidgetDimensions::scaled.framerect.Vertical() + WidgetDimensions::scaled.fullbevel.Vertical();
|
size.height += WidgetDimensions::scaled.framerect.Vertical() + WidgetDimensions::scaled.fullbevel.Vertical();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DrawWidget(const Rect &r, WidgetID widget) const override
|
void DrawWidget(const Rect &r, WidgetID widget) const override
|
||||||
@@ -1061,17 +1061,17 @@ struct QueryStringWindow : public Window
|
|||||||
this->ReInit();
|
this->ReInit();
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
if (widget == WID_QS_DEFAULT && (this->flags & QSF_ENABLE_DEFAULT) == 0) {
|
if (widget == WID_QS_DEFAULT && (this->flags & QSF_ENABLE_DEFAULT) == 0) {
|
||||||
/* We don't want this widget to show! */
|
/* We don't want this widget to show! */
|
||||||
fill->width = 0;
|
fill.width = 0;
|
||||||
resize->width = 0;
|
resize.width = 0;
|
||||||
size->width = 0;
|
size.width = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (widget == WID_QS_WARNING) {
|
if (widget == WID_QS_WARNING) {
|
||||||
*size = this->warning_size;
|
size = this->warning_size;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1241,13 +1241,13 @@ struct QueryWindow : public Window {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
if (widget != WID_Q_TEXT) return;
|
if (widget != WID_Q_TEXT) return;
|
||||||
|
|
||||||
if (!this->precomposed) this->message_str = GetString(this->message);
|
if (!this->precomposed) this->message_str = GetString(this->message);
|
||||||
|
|
||||||
*size = GetStringMultiLineBoundingBox(this->message_str, *size);
|
size = GetStringMultiLineBoundingBox(this->message_str, size);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DrawWidget(const Rect &r, WidgetID widget) const override
|
void DrawWidget(const Rect &r, WidgetID widget) const override
|
||||||
|
@@ -526,7 +526,7 @@ struct MusicTrackSelectionWindow : public Window {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
case WID_MTS_PLAYLIST: {
|
case WID_MTS_PLAYLIST: {
|
||||||
@@ -538,7 +538,7 @@ struct MusicTrackSelectionWindow : public Window {
|
|||||||
}
|
}
|
||||||
d.width += padding.width;
|
d.width += padding.width;
|
||||||
d.height += padding.height;
|
d.height += padding.height;
|
||||||
*size = maxdim(*size, d);
|
size = maxdim(size, d);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -555,7 +555,7 @@ struct MusicTrackSelectionWindow : public Window {
|
|||||||
}
|
}
|
||||||
d.width += padding.width;
|
d.width += padding.width;
|
||||||
d.height += padding.height;
|
d.height += padding.height;
|
||||||
*size = maxdim(*size, d);
|
size = maxdim(size, d);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -708,7 +708,7 @@ struct MusicWindow : public Window {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
/* Make sure that WID_M_SHUFFLE and WID_M_PROGRAMME have the same size.
|
/* Make sure that WID_M_SHUFFLE and WID_M_PROGRAMME have the same size.
|
||||||
@@ -718,7 +718,7 @@ struct MusicWindow : public Window {
|
|||||||
Dimension d = maxdim(GetStringBoundingBox(STR_MUSIC_PROGRAM), GetStringBoundingBox(STR_MUSIC_SHUFFLE));
|
Dimension d = maxdim(GetStringBoundingBox(STR_MUSIC_PROGRAM), GetStringBoundingBox(STR_MUSIC_SHUFFLE));
|
||||||
d.width += padding.width;
|
d.width += padding.width;
|
||||||
d.height += padding.height;
|
d.height += padding.height;
|
||||||
*size = maxdim(*size, d);
|
size = maxdim(size, d);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -726,7 +726,7 @@ struct MusicWindow : public Window {
|
|||||||
Dimension d = GetStringBoundingBox(STR_MUSIC_TRACK_NONE);
|
Dimension d = GetStringBoundingBox(STR_MUSIC_TRACK_NONE);
|
||||||
d.width += padding.width;
|
d.width += padding.width;
|
||||||
d.height += padding.height;
|
d.height += padding.height;
|
||||||
*size = maxdim(*size, d);
|
size = maxdim(size, d);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -738,7 +738,7 @@ struct MusicWindow : public Window {
|
|||||||
}
|
}
|
||||||
d.width += padding.width;
|
d.width += padding.width;
|
||||||
d.height += padding.height;
|
d.height += padding.height;
|
||||||
*size = maxdim(*size, d);
|
size = maxdim(size, d);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -170,7 +170,7 @@ const NetworkServerGameInfo &GetCurrentNetworkServerGameInfo()
|
|||||||
* @param config The GRF to handle.
|
* @param config The GRF to handle.
|
||||||
* @param name The name of the NewGRF, empty when unknown.
|
* @param name The name of the NewGRF, empty when unknown.
|
||||||
*/
|
*/
|
||||||
static void HandleIncomingNetworkGameInfoGRFConfig(GRFConfig *config, std::string name)
|
static void HandleIncomingNetworkGameInfoGRFConfig(GRFConfig *config, std::string_view name)
|
||||||
{
|
{
|
||||||
/* Find the matching GRF file */
|
/* Find the matching GRF file */
|
||||||
const GRFConfig *f = FindGRFConfig(config->ident.grfid, FGCM_EXACT, &config->ident.md5sum);
|
const GRFConfig *f = FindGRFConfig(config->ident.grfid, FGCM_EXACT, &config->ident.md5sum);
|
||||||
|
@@ -117,21 +117,21 @@ void BaseNetworkContentDownloadStatusWindow::Close([[maybe_unused]] int data)
|
|||||||
this->Window::Close();
|
this->Window::Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
void BaseNetworkContentDownloadStatusWindow::UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize)
|
void BaseNetworkContentDownloadStatusWindow::UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize)
|
||||||
{
|
{
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
case WID_NCDS_PROGRESS_BAR:
|
case WID_NCDS_PROGRESS_BAR:
|
||||||
SetDParamMaxDigits(0, 8);
|
SetDParamMaxDigits(0, 8);
|
||||||
SetDParamMaxDigits(1, 8);
|
SetDParamMaxDigits(1, 8);
|
||||||
SetDParamMaxDigits(2, 8);
|
SetDParamMaxDigits(2, 8);
|
||||||
*size = GetStringBoundingBox(STR_CONTENT_DOWNLOAD_PROGRESS_SIZE);
|
size = GetStringBoundingBox(STR_CONTENT_DOWNLOAD_PROGRESS_SIZE);
|
||||||
/* We need some spacing for the 'border' */
|
/* We need some spacing for the 'border' */
|
||||||
size->height += WidgetDimensions::scaled.frametext.Horizontal();
|
size.height += WidgetDimensions::scaled.frametext.Horizontal();
|
||||||
size->width += WidgetDimensions::scaled.frametext.Vertical();
|
size.width += WidgetDimensions::scaled.frametext.Vertical();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_NCDS_PROGRESS_TEXT:
|
case WID_NCDS_PROGRESS_TEXT:
|
||||||
size->height = GetCharacterHeight(FS_NORMAL) * 2 + WidgetDimensions::scaled.vsep_normal;
|
size.height = GetCharacterHeight(FS_NORMAL) * 2 + WidgetDimensions::scaled.vsep_normal;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -589,25 +589,25 @@ public:
|
|||||||
this->checkbox_size = maxdim(maxdim(GetSpriteSize(SPR_BOX_EMPTY), GetSpriteSize(SPR_BOX_CHECKED)), GetSpriteSize(SPR_BLOT));
|
this->checkbox_size = maxdim(maxdim(GetSpriteSize(SPR_BOX_EMPTY), GetSpriteSize(SPR_BOX_CHECKED)), GetSpriteSize(SPR_BLOT));
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
case WID_NCL_CHECKBOX:
|
case WID_NCL_CHECKBOX:
|
||||||
size->width = this->checkbox_size.width + padding.width;
|
size.width = this->checkbox_size.width + padding.width;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_NCL_TYPE: {
|
case WID_NCL_TYPE: {
|
||||||
Dimension d = *size;
|
Dimension d = size;
|
||||||
for (int i = CONTENT_TYPE_BEGIN; i < CONTENT_TYPE_END; i++) {
|
for (int i = CONTENT_TYPE_BEGIN; i < CONTENT_TYPE_END; i++) {
|
||||||
d = maxdim(d, GetStringBoundingBox(STR_CONTENT_TYPE_BASE_GRAPHICS + i - CONTENT_TYPE_BASE_GRAPHICS));
|
d = maxdim(d, GetStringBoundingBox(STR_CONTENT_TYPE_BASE_GRAPHICS + i - CONTENT_TYPE_BASE_GRAPHICS));
|
||||||
}
|
}
|
||||||
size->width = d.width + padding.width;
|
size.width = d.width + padding.width;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case WID_NCL_MATRIX:
|
case WID_NCL_MATRIX:
|
||||||
resize->height = std::max(this->checkbox_size.height, (uint)GetCharacterHeight(FS_NORMAL)) + padding.height;
|
resize.height = std::max(this->checkbox_size.height, (uint)GetCharacterHeight(FS_NORMAL)) + padding.height;
|
||||||
size->height = 10 * resize->height;
|
size.height = 10 * resize.height;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -33,7 +33,7 @@ public:
|
|||||||
BaseNetworkContentDownloadStatusWindow(WindowDesc *desc);
|
BaseNetworkContentDownloadStatusWindow(WindowDesc *desc);
|
||||||
|
|
||||||
void Close([[maybe_unused]] int data = 0) override;
|
void Close([[maybe_unused]] int data = 0) override;
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override;
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override;
|
||||||
void DrawWidget(const Rect &r, WidgetID widget) const override;
|
void DrawWidget(const Rect &r, WidgetID widget) const override;
|
||||||
void OnDownloadProgress(const ContentInfo *ci, int bytes) override;
|
void OnDownloadProgress(const ContentInfo *ci, int bytes) override;
|
||||||
};
|
};
|
||||||
|
@@ -484,48 +484,48 @@ public:
|
|||||||
this->flag_offset = this->blot_offset + ScaleGUITrad(2) + GetSpriteSize(SPR_BLOT).width;
|
this->flag_offset = this->blot_offset + ScaleGUITrad(2) + GetSpriteSize(SPR_BLOT).width;
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
case WID_NG_MATRIX:
|
case WID_NG_MATRIX:
|
||||||
resize->height = std::max(GetSpriteSize(SPR_BLOT).height, (uint)GetCharacterHeight(FS_NORMAL)) + padding.height;
|
resize.height = std::max(GetSpriteSize(SPR_BLOT).height, (uint)GetCharacterHeight(FS_NORMAL)) + padding.height;
|
||||||
fill->height = resize->height;
|
fill.height = resize.height;
|
||||||
size->height = 12 * resize->height;
|
size.height = 12 * resize.height;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_NG_LASTJOINED:
|
case WID_NG_LASTJOINED:
|
||||||
size->height = std::max(GetSpriteSize(SPR_BLOT).height, (uint)GetCharacterHeight(FS_NORMAL)) + WidgetDimensions::scaled.matrix.Vertical();
|
size.height = std::max(GetSpriteSize(SPR_BLOT).height, (uint)GetCharacterHeight(FS_NORMAL)) + WidgetDimensions::scaled.matrix.Vertical();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_NG_LASTJOINED_SPACER:
|
case WID_NG_LASTJOINED_SPACER:
|
||||||
size->width = NWidgetScrollbar::GetVerticalDimension().width;
|
size.width = NWidgetScrollbar::GetVerticalDimension().width;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_NG_NAME:
|
case WID_NG_NAME:
|
||||||
size->width += 2 * Window::SortButtonWidth(); // Make space for the arrow
|
size.width += 2 * Window::SortButtonWidth(); // Make space for the arrow
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_NG_CLIENTS:
|
case WID_NG_CLIENTS:
|
||||||
size->width += 2 * Window::SortButtonWidth(); // Make space for the arrow
|
size.width += 2 * Window::SortButtonWidth(); // Make space for the arrow
|
||||||
SetDParamMaxValue(0, MAX_CLIENTS);
|
SetDParamMaxValue(0, MAX_CLIENTS);
|
||||||
SetDParamMaxValue(1, MAX_CLIENTS);
|
SetDParamMaxValue(1, MAX_CLIENTS);
|
||||||
SetDParamMaxValue(2, MAX_COMPANIES);
|
SetDParamMaxValue(2, MAX_COMPANIES);
|
||||||
SetDParamMaxValue(3, MAX_COMPANIES);
|
SetDParamMaxValue(3, MAX_COMPANIES);
|
||||||
*size = maxdim(*size, GetStringBoundingBox(STR_NETWORK_SERVER_LIST_GENERAL_ONLINE));
|
size = maxdim(size, GetStringBoundingBox(STR_NETWORK_SERVER_LIST_GENERAL_ONLINE));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_NG_MAPSIZE:
|
case WID_NG_MAPSIZE:
|
||||||
size->width += 2 * Window::SortButtonWidth(); // Make space for the arrow
|
size.width += 2 * Window::SortButtonWidth(); // Make space for the arrow
|
||||||
SetDParamMaxValue(0, MAX_MAP_SIZE);
|
SetDParamMaxValue(0, MAX_MAP_SIZE);
|
||||||
SetDParamMaxValue(1, MAX_MAP_SIZE);
|
SetDParamMaxValue(1, MAX_MAP_SIZE);
|
||||||
*size = maxdim(*size, GetStringBoundingBox(STR_NETWORK_SERVER_LIST_MAP_SIZE_SHORT));
|
size = maxdim(size, GetStringBoundingBox(STR_NETWORK_SERVER_LIST_MAP_SIZE_SHORT));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_NG_DATE:
|
case WID_NG_DATE:
|
||||||
case WID_NG_YEARS:
|
case WID_NG_YEARS:
|
||||||
size->width += 2 * Window::SortButtonWidth(); // Make space for the arrow
|
size.width += 2 * Window::SortButtonWidth(); // Make space for the arrow
|
||||||
SetDParamMaxValue(0, 5);
|
SetDParamMaxValue(0, 5);
|
||||||
*size = maxdim(*size, GetStringBoundingBox(STR_JUST_INT));
|
size = maxdim(size, GetStringBoundingBox(STR_JUST_INT));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1021,13 +1021,13 @@ struct NetworkStartServerWindow : public Window {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
case WID_NSS_CONNTYPE_BTN:
|
case WID_NSS_CONNTYPE_BTN:
|
||||||
*size = maxdim(maxdim(GetStringBoundingBox(STR_NETWORK_SERVER_VISIBILITY_LOCAL), GetStringBoundingBox(STR_NETWORK_SERVER_VISIBILITY_PUBLIC)), GetStringBoundingBox(STR_NETWORK_SERVER_VISIBILITY_INVITE_ONLY));
|
size = maxdim(maxdim(GetStringBoundingBox(STR_NETWORK_SERVER_VISIBILITY_LOCAL), GetStringBoundingBox(STR_NETWORK_SERVER_VISIBILITY_PUBLIC)), GetStringBoundingBox(STR_NETWORK_SERVER_VISIBILITY_INVITE_ONLY));
|
||||||
size->width += padding.width;
|
size.width += padding.width;
|
||||||
size->height += padding.height;
|
size.height += padding.height;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1684,7 +1684,7 @@ public:
|
|||||||
this->SetWidgetDisabledState(WID_CL_SERVER_NAME_EDIT, !_network_server);
|
this->SetWidgetDisabledState(WID_CL_SERVER_NAME_EDIT, !_network_server);
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
case WID_CL_SERVER_NAME:
|
case WID_CL_SERVER_NAME:
|
||||||
@@ -1695,14 +1695,14 @@ public:
|
|||||||
const NetworkClientInfo *own_ci = NetworkClientInfo::GetByClientID(_network_own_client_id);
|
const NetworkClientInfo *own_ci = NetworkClientInfo::GetByClientID(_network_own_client_id);
|
||||||
SetDParamStr(0, own_ci != nullptr ? own_ci->client_name : _settings_client.network.client_name);
|
SetDParamStr(0, own_ci != nullptr ? own_ci->client_name : _settings_client.network.client_name);
|
||||||
}
|
}
|
||||||
*size = GetStringBoundingBox(STR_JUST_RAW_STRING);
|
size = GetStringBoundingBox(STR_JUST_RAW_STRING);
|
||||||
size->width = std::min(size->width, static_cast<uint>(ScaleGUITrad(200))); // By default, don't open the window too wide.
|
size.width = std::min(size.width, static_cast<uint>(ScaleGUITrad(200))); // By default, don't open the window too wide.
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_CL_SERVER_VISIBILITY:
|
case WID_CL_SERVER_VISIBILITY:
|
||||||
*size = maxdim(maxdim(GetStringBoundingBox(STR_NETWORK_SERVER_VISIBILITY_LOCAL), GetStringBoundingBox(STR_NETWORK_SERVER_VISIBILITY_PUBLIC)), GetStringBoundingBox(STR_NETWORK_SERVER_VISIBILITY_INVITE_ONLY));
|
size = maxdim(maxdim(GetStringBoundingBox(STR_NETWORK_SERVER_VISIBILITY_LOCAL), GetStringBoundingBox(STR_NETWORK_SERVER_VISIBILITY_PUBLIC)), GetStringBoundingBox(STR_NETWORK_SERVER_VISIBILITY_INVITE_ONLY));
|
||||||
size->width += padding.width;
|
size.width += padding.width;
|
||||||
size->height += padding.height;
|
size.height += padding.height;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_CL_MATRIX: {
|
case WID_CL_MATRIX: {
|
||||||
@@ -1710,10 +1710,10 @@ public:
|
|||||||
height += WidgetDimensions::scaled.framerect.Vertical();
|
height += WidgetDimensions::scaled.framerect.Vertical();
|
||||||
this->line_height = std::max(height, (uint)GetCharacterHeight(FS_NORMAL)) + padding.height;
|
this->line_height = std::max(height, (uint)GetCharacterHeight(FS_NORMAL)) + padding.height;
|
||||||
|
|
||||||
resize->width = 1;
|
resize.width = 1;
|
||||||
resize->height = this->line_height;
|
resize.height = this->line_height;
|
||||||
fill->height = this->line_height;
|
fill.height = this->line_height;
|
||||||
size->height = std::max(size->height, 5 * this->line_height);
|
size.height = std::max(size.height, 5 * this->line_height);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2173,28 +2173,28 @@ struct NetworkJoinStatusWindow : Window {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
switch (widget) {
|
switch (widget) {
|
||||||
case WID_NJS_PROGRESS_BAR:
|
case WID_NJS_PROGRESS_BAR:
|
||||||
/* Account for the statuses */
|
/* Account for the statuses */
|
||||||
for (uint i = 0; i < NETWORK_JOIN_STATUS_END; i++) {
|
for (uint i = 0; i < NETWORK_JOIN_STATUS_END; i++) {
|
||||||
*size = maxdim(*size, GetStringBoundingBox(STR_NETWORK_CONNECTING_1 + i));
|
size = maxdim(size, GetStringBoundingBox(STR_NETWORK_CONNECTING_1 + i));
|
||||||
}
|
}
|
||||||
/* For the number of waiting (other) players */
|
/* For the number of waiting (other) players */
|
||||||
SetDParamMaxValue(0, MAX_CLIENTS);
|
SetDParamMaxValue(0, MAX_CLIENTS);
|
||||||
*size = maxdim(*size, GetStringBoundingBox(STR_NETWORK_CONNECTING_WAITING));
|
size = maxdim(size, GetStringBoundingBox(STR_NETWORK_CONNECTING_WAITING));
|
||||||
/* We need some spacing for the 'border' */
|
/* We need some spacing for the 'border' */
|
||||||
size->height += WidgetDimensions::scaled.frametext.Horizontal();
|
size.height += WidgetDimensions::scaled.frametext.Horizontal();
|
||||||
size->width += WidgetDimensions::scaled.frametext.Vertical();
|
size.width += WidgetDimensions::scaled.frametext.Vertical();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WID_NJS_PROGRESS_TEXT:
|
case WID_NJS_PROGRESS_TEXT:
|
||||||
/* Account for downloading ~ 10 MiB */
|
/* Account for downloading ~ 10 MiB */
|
||||||
SetDParamMaxDigits(0, 8);
|
SetDParamMaxDigits(0, 8);
|
||||||
SetDParamMaxDigits(1, 8);
|
SetDParamMaxDigits(1, 8);
|
||||||
*size = maxdim(*size, GetStringBoundingBox(STR_NETWORK_CONNECTING_DOWNLOADING_1));
|
size = maxdim(size, GetStringBoundingBox(STR_NETWORK_CONNECTING_DOWNLOADING_1));
|
||||||
*size = maxdim(*size, GetStringBoundingBox(STR_NETWORK_CONNECTING_DOWNLOADING_1));
|
size = maxdim(size, GetStringBoundingBox(STR_NETWORK_CONNECTING_DOWNLOADING_1));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2245,7 +2245,7 @@ void ShowJoinStatusWindow()
|
|||||||
|
|
||||||
void ShowNetworkNeedPassword(NetworkPasswordType npt, std::shared_ptr<NetworkAuthenticationPasswordRequest> request)
|
void ShowNetworkNeedPassword(NetworkPasswordType npt, std::shared_ptr<NetworkAuthenticationPasswordRequest> request)
|
||||||
{
|
{
|
||||||
NetworkJoinStatusWindow *w = (NetworkJoinStatusWindow *)FindWindowById(WC_NETWORK_STATUS_WINDOW, WN_NETWORK_STATUS_WINDOW_JOIN);
|
NetworkJoinStatusWindow *w = dynamic_cast<NetworkJoinStatusWindow *>(FindWindowById(WC_NETWORK_STATUS_WINDOW, WN_NETWORK_STATUS_WINDOW_JOIN));
|
||||||
if (w == nullptr) return;
|
if (w == nullptr) return;
|
||||||
w->request = request;
|
w->request = request;
|
||||||
|
|
||||||
@@ -2381,10 +2381,10 @@ struct NetworkAskRelayWindow : public Window {
|
|||||||
this->Window::Close();
|
this->Window::Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
if (widget == WID_NAR_TEXT) {
|
if (widget == WID_NAR_TEXT) {
|
||||||
*size = GetStringBoundingBox(STR_NETWORK_ASK_RELAY_TEXT);
|
size = GetStringBoundingBox(STR_NETWORK_ASK_RELAY_TEXT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2484,10 +2484,10 @@ struct NetworkAskSurveyWindow : public Window {
|
|||||||
this->InitNested(0);
|
this->InitNested(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateWidgetSize(WidgetID widget, Dimension *size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension *fill, [[maybe_unused]] Dimension *resize) override
|
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
|
||||||
{
|
{
|
||||||
if (widget == WID_NAS_TEXT) {
|
if (widget == WID_NAS_TEXT) {
|
||||||
*size = GetStringBoundingBox(STR_NETWORK_ASK_SURVEY_TEXT);
|
size = GetStringBoundingBox(STR_NETWORK_ASK_SURVEY_TEXT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -11,6 +11,8 @@
|
|||||||
#define NETWORK_TYPE_H
|
#define NETWORK_TYPE_H
|
||||||
|
|
||||||
#include "../core/enum_type.hpp"
|
#include "../core/enum_type.hpp"
|
||||||
|
#include <vector>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
/** How many clients can we have */
|
/** How many clients can we have */
|
||||||
static const uint MAX_CLIENTS = 255;
|
static const uint MAX_CLIENTS = 255;
|
||||||
|
614
src/newgrf.cpp
614
src/newgrf.cpp
File diff suppressed because it is too large
Load Diff
19
src/newgrf.h
19
src/newgrf.h
@@ -15,6 +15,7 @@
|
|||||||
#include "road_type.h"
|
#include "road_type.h"
|
||||||
#include "fileio_type.h"
|
#include "fileio_type.h"
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
|
#include "newgrf_act5.h"
|
||||||
#include "core/bitmath_func.hpp"
|
#include "core/bitmath_func.hpp"
|
||||||
#include "core/alloc_type.hpp"
|
#include "core/alloc_type.hpp"
|
||||||
#include "core/mem_func.hpp"
|
#include "core/mem_func.hpp"
|
||||||
@@ -237,21 +238,6 @@ struct GRFVariableMapEntry {
|
|||||||
uint32_t output_param = 0;
|
uint32_t output_param = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
/** The type of action 5 type. */
|
|
||||||
enum Action5BlockType {
|
|
||||||
A5BLOCK_FIXED, ///< Only allow replacing a whole block of sprites. (TTDP compatible)
|
|
||||||
A5BLOCK_ALLOW_OFFSET, ///< Allow replacing any subset by specifiing an offset.
|
|
||||||
A5BLOCK_INVALID, ///< unknown/not-implemented type
|
|
||||||
};
|
|
||||||
/** Information about a single action 5 type. */
|
|
||||||
struct Action5Type {
|
|
||||||
Action5BlockType block_type; ///< How is this Action5 type processed?
|
|
||||||
SpriteID sprite_base; ///< Load the sprites starting from this sprite.
|
|
||||||
uint16_t min_sprites; ///< If the Action5 contains less sprites, the whole block will be ignored.
|
|
||||||
uint16_t max_sprites; ///< If the Action5 contains more sprites, only the first max_sprites sprites will be used.
|
|
||||||
const char *name; ///< Name for error messages.
|
|
||||||
};
|
|
||||||
|
|
||||||
struct Action5TypeRemapDefinition {
|
struct Action5TypeRemapDefinition {
|
||||||
const char *name; // nullptr indicates the end of the list
|
const char *name; // nullptr indicates the end of the list
|
||||||
const Action5Type info;
|
const Action5Type info;
|
||||||
@@ -450,6 +436,9 @@ void ResetPersistentNewGRFData();
|
|||||||
#define grfmsg(severity, ...) if ((severity) == 0 || _debug_grf_level >= (severity)) _intl_grfmsg(severity, __VA_ARGS__)
|
#define grfmsg(severity, ...) if ((severity) == 0 || _debug_grf_level >= (severity)) _intl_grfmsg(severity, __VA_ARGS__)
|
||||||
void CDECL _intl_grfmsg(int severity, const char *str, ...) WARN_FORMAT(2, 3);
|
void CDECL _intl_grfmsg(int severity, const char *str, ...) WARN_FORMAT(2, 3);
|
||||||
|
|
||||||
|
void GrfMsgI(int severity, const std::string &msg);
|
||||||
|
#define GrfMsg(severity, format_string, ...) GrfMsgI(severity, fmt::format(FMT_STRING(format_string), ## __VA_ARGS__))
|
||||||
|
|
||||||
bool GetGlobalVariable(uint8_t param, uint32_t *value, const GRFFile *grffile);
|
bool GetGlobalVariable(uint8_t param, uint32_t *value, const GRFFile *grffile);
|
||||||
|
|
||||||
StringID MapGRFStringID(uint32_t grfid, StringID str);
|
StringID MapGRFStringID(uint32_t grfid, StringID str);
|
||||||
|
31
src/newgrf_act5.h
Normal file
31
src/newgrf_act5.h
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
* 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.
|
||||||
|
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @file newgrf_act5.h Information about NewGRF Action 5. */
|
||||||
|
|
||||||
|
#ifndef NEWGRF_ACT5_H
|
||||||
|
#define NEWGRF_ACT5_H
|
||||||
|
|
||||||
|
/** The type of action 5 type. */
|
||||||
|
enum Action5BlockType {
|
||||||
|
A5BLOCK_FIXED, ///< Only allow replacing a whole block of sprites. (TTDP compatible)
|
||||||
|
A5BLOCK_ALLOW_OFFSET, ///< Allow replacing any subset by specifiing an offset.
|
||||||
|
A5BLOCK_INVALID, ///< unknown/not-implemented type
|
||||||
|
};
|
||||||
|
|
||||||
|
/** Information about a single action 5 type. */
|
||||||
|
struct Action5Type {
|
||||||
|
Action5BlockType block_type; ///< How is this Action5 type processed?
|
||||||
|
SpriteID sprite_base; ///< Load the sprites starting from this sprite.
|
||||||
|
uint16_t min_sprites; ///< If the Action5 contains less sprites, the whole block will be ignored.
|
||||||
|
uint16_t max_sprites; ///< If the Action5 contains more sprites, only the first max_sprites sprites will be used.
|
||||||
|
const char *name; ///< Name for error messages.
|
||||||
|
};
|
||||||
|
|
||||||
|
std::span<const Action5Type> GetAction5Types();
|
||||||
|
|
||||||
|
#endif /* NEWGRF_ACT5_H */
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user