Merge branch 'master' into jgrpp

# Conflicts:
#	src/effectvehicle.cpp
#	src/fileio.cpp
#	src/gfx.cpp
#	src/newgrf_commons.h
#	src/road_gui.cpp
#	src/saveload/gamelog_sl.cpp
#	src/saveload/saveload.cpp
#	src/settings_gui.cpp
#	src/settings_internal.h
#	src/settings_table.cpp
#	src/signs_gui.cpp
#	src/smallmap_gui.cpp
#	src/sortlist_type.h
#	src/table/settings.h.preamble
#	src/table/settings/company_settings.ini
#	src/table/settings/currency_settings.ini
#	src/table/settings/difficulty_settings.ini
#	src/table/settings/economy_settings.ini
#	src/table/settings/game_settings.ini
#	src/table/settings/gui_settings.ini
#	src/table/settings/linkgraph_settings.ini
#	src/table/settings/locale_settings.ini
#	src/table/settings/misc_settings.ini
#	src/table/settings/multimedia_settings.ini
#	src/table/settings/network_private_settings.ini
#	src/table/settings/network_settings.ini
#	src/table/settings/news_display_settings.ini
#	src/table/settings/old_gameopt_settings.ini
#	src/table/settings/pathfinding_settings.ini
#	src/table/settings/script_settings.ini
#	src/table/settings/win32_settings.ini
#	src/table/settings/window_settings.ini
#	src/table/settings/world_settings.ini
#	src/vehicle_gui.cpp
#	src/vehiclelist.cpp
#	src/video/opengl.cpp
#	src/viewport.cpp
pull/728/head
Jonathan G Rennison 1 month ago
commit 37b129c3c0

@ -87,7 +87,7 @@ private:
/* Constants for sorting the bridges */
static const StringID sorter_names[];
static GUIBridgeList::SortFunction * const sorter_funcs[];
static const std::initializer_list<GUIBridgeList::SortFunction * const> sorter_funcs;
/* Internal variables */
TileIndex start_tile;
@ -313,7 +313,7 @@ public:
Listing BuildBridgeWindow::last_sorting = {true, 2};
/** Available bridge sorting functions. */
GUIBridgeList::SortFunction * const BuildBridgeWindow::sorter_funcs[] = {
const std::initializer_list<GUIBridgeList::SortFunction * const> BuildBridgeWindow::sorter_funcs = {
&BridgeIndexSorter,
&BridgePriceSorter,
&BridgeSpeedSorter

@ -760,7 +760,7 @@ static bool CargoAndEngineFilter(const GUIEngineListItem *item, const CargoID ci
}
}
static GUIEngineList::FilterFunction * const _filter_funcs[] = {
static GUIEngineList::FilterFunction * const _engine_filter_funcs[] = {
&CargoAndEngineFilter,
};
@ -1700,7 +1700,7 @@ struct BuildVehicleWindow : BuildVehicleWindowBase {
this->cargo_filter_criteria = _engine_sort_last_cargo_criteria[this->vehicle_type];
if (this->cargo_filter_criteria < NUM_CARGO && !HasBit(_standard_cargo_mask, this->cargo_filter_criteria)) this->cargo_filter_criteria = CargoFilterCriteria::CF_ANY;
this->eng_list.SetFilterFuncs(_filter_funcs);
this->eng_list.SetFilterFuncs(_engine_filter_funcs);
this->eng_list.SetFilterState(this->cargo_filter_criteria != CargoFilterCriteria::CF_ANY);
}
@ -1921,7 +1921,6 @@ struct BuildVehicleWindow : BuildVehicleWindowBase {
case VEH_TRAIN:
this->GenerateBuildTrainList(list);
GUIEngineListAddChildren(this->eng_list, list);
this->eng_list.shrink_to_fit();
this->eng_list.RebuildDone();
return;
case VEH_ROAD:
@ -1962,7 +1961,6 @@ struct BuildVehicleWindow : BuildVehicleWindowBase {
this->eng_list.swap(list);
GUIEngineListAddChildren(this->eng_list, list, INVALID_ENGINE, 0);
this->eng_list.shrink_to_fit();
this->eng_list.RebuildDone();
}
@ -2568,7 +2566,7 @@ struct BuildVehicleWindowTrainAdvanced final : BuildVehicleWindowBase {
state.cargo_filter_criteria = last_filter;
if (state.cargo_filter_criteria < NUM_CARGO && !HasBit(_standard_cargo_mask, state.cargo_filter_criteria)) state.cargo_filter_criteria = CargoFilterCriteria::CF_ANY;
state.eng_list.SetFilterFuncs(_filter_funcs);
state.eng_list.SetFilterFuncs(_engine_filter_funcs);
state.eng_list.SetFilterState(state.cargo_filter_criteria != CargoFilterCriteria::CF_ANY);
}

@ -693,7 +693,6 @@ private:
BuildGuiGroupList(this->groups, false, owner, vtype);
}
this->groups.shrink_to_fit();
this->groups.RebuildDone();
}

@ -2308,9 +2308,16 @@ DEF_CONSOLE_CMD(ConCompanyPasswordHashes)
/** Resolve a string to a content type. */
static ContentType StringToContentType(const char *str)
{
static const char * const inv_lookup[] = { "", "base", "newgrf", "ai", "ailib", "scenario", "heightmap" };
for (uint i = 1 /* there is no type 0 */; i < lengthof(inv_lookup); i++) {
if (StrEqualsIgnoreCase(str, inv_lookup[i])) return (ContentType)i;
static const std::initializer_list<std::pair<std::string_view, ContentType>> content_types = {
{"base", CONTENT_TYPE_BASE_GRAPHICS},
{"newgrf", CONTENT_TYPE_NEWGRF},
{"ai", CONTENT_TYPE_AI},
{"ailib", CONTENT_TYPE_AI_LIBRARY},
{"scenario", CONTENT_TYPE_SCENARIO},
{"heightmap", CONTENT_TYPE_HEIGHTMAP},
};
for (const auto &ct : content_types) {
if (StrEqualsIgnoreCase(str, ct.first)) return ct.second;
}
return CONTENT_TYPE_END;
}

@ -553,61 +553,33 @@ static bool BubbleTick(EffectVehicle *v)
return true;
}
struct EffectProcs {
using InitProc = void(EffectVehicle *);
using TickProc = bool(EffectVehicle *);
typedef void EffectInitProc(EffectVehicle *v);
typedef bool EffectTickProc(EffectVehicle *v);
/** Functions to initialise an effect vehicle after construction. */
static EffectInitProc * const _effect_init_procs[] = {
ChimneySmokeInit, // EV_CHIMNEY_SMOKE
SteamSmokeInit, // EV_STEAM_SMOKE
DieselSmokeInit, // EV_DIESEL_SMOKE
ElectricSparkInit, // EV_ELECTRIC_SPARK
SmokeInit, // EV_CRASH_SMOKE
ExplosionLargeInit, // EV_EXPLOSION_LARGE
BreakdownSmokeInit, // EV_BREAKDOWN_SMOKE
ExplosionSmallInit, // EV_EXPLOSION_SMALL
BulldozerInit, // EV_BULLDOZER
BubbleInit, // EV_BUBBLE
SmokeInit, // EV_BREAKDOWN_SMOKE_AIRCRAFT
SmokeInit, // EV_COPPER_MINE_SMOKE
};
static_assert(lengthof(_effect_init_procs) == EV_END);
/** Functions for controlling effect vehicles at each tick. */
static EffectTickProc * const _effect_tick_procs[] = {
ChimneySmokeTick, // EV_CHIMNEY_SMOKE
SteamSmokeTick, // EV_STEAM_SMOKE
DieselSmokeTick, // EV_DIESEL_SMOKE
ElectricSparkTick, // EV_ELECTRIC_SPARK
SmokeTick, // EV_CRASH_SMOKE
ExplosionLargeTick, // EV_EXPLOSION_LARGE
BreakdownSmokeTick, // EV_BREAKDOWN_SMOKE
ExplosionSmallTick, // EV_EXPLOSION_SMALL
BulldozerTick, // EV_BULLDOZER
BubbleTick, // EV_BUBBLE
SmokeTick, // EV_BREAKDOWN_SMOKE_AIRCRAFT
SmokeTick, // EV_COPPER_MINE_SMOKE
};
static_assert(lengthof(_effect_tick_procs) == EV_END);
/** Transparency options affecting the effects. */
static const TransparencyOption _effect_transparency_options[] = {
TO_INDUSTRIES, // EV_CHIMNEY_SMOKE
TO_INVALID, // EV_STEAM_SMOKE
TO_INVALID, // EV_DIESEL_SMOKE
TO_INVALID, // EV_ELECTRIC_SPARK
TO_INVALID, // EV_CRASH_SMOKE
TO_INVALID, // EV_EXPLOSION_LARGE
TO_INVALID, // EV_BREAKDOWN_SMOKE
TO_INVALID, // EV_EXPLOSION_SMALL
TO_INVALID, // EV_BULLDOZER
TO_INDUSTRIES, // EV_BUBBLE
TO_INVALID, // EV_BREAKDOWN_SMOKE_AIRCRAFT
TO_INDUSTRIES, // EV_COPPER_MINE_SMOKE
InitProc *init_proc; ///< Function to initialise an effect vehicle after construction.
TickProc *tick_proc; ///< Functions for controlling effect vehicles at each tick.
TransparencyOption transparency; ///< Transparency option affecting the effect.
constexpr EffectProcs(InitProc *init_proc, TickProc *tick_proc, TransparencyOption transparency)
: init_proc(init_proc), tick_proc(tick_proc), transparency(transparency) {}
};
static_assert(lengthof(_effect_transparency_options) == EV_END);
/** Per-EffectVehicleType handling. */
static std::array<EffectProcs, EV_END> _effect_procs = {{
{ ChimneySmokeInit, ChimneySmokeTick, TO_INDUSTRIES }, // EV_CHIMNEY_SMOKE
{ SteamSmokeInit, SteamSmokeTick, TO_INVALID }, // EV_STEAM_SMOKE
{ DieselSmokeInit, DieselSmokeTick, TO_INVALID }, // EV_DIESEL_SMOKE
{ ElectricSparkInit, ElectricSparkTick, TO_INVALID }, // EV_ELECTRIC_SPARK
{ SmokeInit, SmokeTick, TO_INVALID }, // EV_CRASH_SMOKE
{ ExplosionLargeInit, ExplosionLargeTick, TO_INVALID }, // EV_EXPLOSION_LARGE
{ BreakdownSmokeInit, BreakdownSmokeTick, TO_INVALID }, // EV_BREAKDOWN_SMOKE
{ ExplosionSmallInit, ExplosionSmallTick, TO_INVALID }, // EV_EXPLOSION_SMALL
{ BulldozerInit, BulldozerTick, TO_INVALID }, // EV_BULLDOZER
{ BubbleInit, BubbleTick, TO_INDUSTRIES }, // EV_BUBBLE
{ SmokeInit, SmokeTick, TO_INVALID }, // EV_BREAKDOWN_SMOKE_AIRCRAFT
{ SmokeInit, SmokeTick, TO_INDUSTRIES }, // EV_COPPER_MINE_SMOKE
}};
/**
* Create an effect vehicle at a particular location.
@ -630,7 +602,7 @@ EffectVehicle *CreateEffectVehicle(int x, int y, int z, EffectVehicleType type)
v->UpdateDeltaXY();
v->vehstatus = VS_UNCLICKABLE;
_effect_init_procs[type](v);
_effect_procs[type].init_proc(v);
v->UpdateIsDrawn();
@ -674,7 +646,7 @@ bool EffectVehicle::Tick()
{
DEBUG_UPDATESTATECHECKSUM("EffectVehicle::Tick: v: %u, x: %d, y: %d", this->index, this->x_pos, this->y_pos);
UpdateStateChecksum((((uint64_t) this->x_pos) << 32) | this->y_pos);
return _effect_tick_procs[this->subtype](this);
return _effect_procs[this->subtype].tick_proc(this);
}
void EffectVehicle::UpdateDeltaXY()
@ -692,7 +664,7 @@ void EffectVehicle::UpdateDeltaXY()
*/
TransparencyOption EffectVehicle::GetTransparencyOption() const
{
return _effect_transparency_options[this->subtype];
return _effect_procs[this->subtype].transparency;
}
extern std::vector<VehicleID> _remove_from_tick_effect_veh_cache;

@ -415,8 +415,6 @@ static void FiosGetFileList(SaveLoadOperation fop, bool show_dirs, fios_getlist_
/* Show drives */
FiosGetDrives(file_list);
file_list.shrink_to_fit();
}
/**

@ -1455,8 +1455,8 @@ void DrawMouseCursor()
/* Draw cursor on screen */
_cur_dpi = &_screen;
for (uint i = 0; i < _cursor.sprite_count; ++i) {
DrawSprite(_cursor.sprite_seq[i].sprite, _cursor.sprite_seq[i].pal, _cursor.pos.x + _cursor.sprite_pos[i].x, _cursor.pos.y + _cursor.sprite_pos[i].y);
for (const auto &cs : _cursor.sprites) {
DrawSprite(cs.image.sprite, cs.image.pal, _cursor.pos.x + cs.pos.x, _cursor.pos.y + cs.pos.y);
}
VideoDriver::GetInstance()->MakeDirty(_cursor.draw_pos.x, _cursor.draw_pos.y, _cursor.draw_size.x, _cursor.draw_size.y);
@ -2023,20 +2023,22 @@ void UpdateCursorSize()
/* Ignore setting any cursor before the sprites are loaded. */
if (GetMaxSpriteID() == 0) return;
static_assert(lengthof(_cursor.sprite_seq) == lengthof(_cursor.sprite_pos));
assert(_cursor.sprite_count <= lengthof(_cursor.sprite_seq));
for (uint i = 0; i < _cursor.sprite_count; ++i) {
const Sprite *p = GetSprite(GB(_cursor.sprite_seq[i].sprite, 0, SPRITE_WIDTH), SpriteType::Normal, 0);
bool first = true;
for (const auto &cs : _cursor.sprites) {
const Sprite *p = GetSprite(GB(cs.image.sprite, 0, SPRITE_WIDTH), SpriteType::Normal, 0);
Point offs, size;
offs.x = UnScaleGUI(p->x_offs) + _cursor.sprite_pos[i].x;
offs.y = UnScaleGUI(p->y_offs) + _cursor.sprite_pos[i].y;
offs.x = UnScaleGUI(p->x_offs) + cs.pos.x;
offs.y = UnScaleGUI(p->y_offs) + cs.pos.y;
size.x = UnScaleGUI(p->width);
size.y = UnScaleGUI(p->height);
if (i == 0) {
if (first) {
/* First sprite sets the total. */
_cursor.total_offs = offs;
_cursor.total_size = size;
first = false;
} else {
/* Additional sprites expand the total. */
int right = std::max(_cursor.total_offs.x + _cursor.total_size.x, offs.x + size.x);
int bottom = std::max(_cursor.total_offs.y + _cursor.total_size.y, offs.y + size.y);
if (offs.x < _cursor.total_offs.x) _cursor.total_offs.x = offs.x;
@ -2056,13 +2058,10 @@ void UpdateCursorSize()
*/
static void SetCursorSprite(CursorID cursor, PaletteID pal)
{
if (_cursor.sprite_count == 1 && _cursor.sprite_seq[0].sprite == cursor && _cursor.sprite_seq[0].pal == pal) return;
if (_cursor.sprites.size() == 1 && _cursor.sprites[0].image.sprite == cursor && _cursor.sprites[0].image.pal == pal) return;
_cursor.sprite_count = 1;
_cursor.sprite_seq[0].sprite = cursor;
_cursor.sprite_seq[0].pal = pal;
_cursor.sprite_pos[0].x = 0;
_cursor.sprite_pos[0].y = 0;
_cursor.sprites.clear();
_cursor.sprites.emplace_back(cursor, pal, 0, 0);
UpdateCursorSize();
}
@ -2073,7 +2072,8 @@ static void SwitchAnimatedCursor()
if (cur == nullptr || cur->sprite == AnimCursor::LAST) cur = _cursor.animate_list;
SetCursorSprite(cur->sprite, _cursor.sprite_seq[0].pal);
assert(!_cursor.sprites.empty());
SetCursorSprite(cur->sprite, _cursor.sprites[0].image.pal);
_cursor.animate_timeout = cur->display_time;
_cursor.animate_cur = cur + 1;
@ -2092,10 +2092,11 @@ void CursorTick()
*/
void SetMouseCursorBusy(bool busy)
{
assert(!_cursor.sprites.empty());
if (busy) {
if (_cursor.sprite_seq[0].sprite == SPR_CURSOR_MOUSE) SetMouseCursor(SPR_CURSOR_ZZZ, PAL_NONE);
if (_cursor.sprites[0].image.sprite == SPR_CURSOR_MOUSE) SetMouseCursor(SPR_CURSOR_ZZZ, PAL_NONE);
} else {
if (_cursor.sprite_seq[0].sprite == SPR_CURSOR_ZZZ) SetMouseCursor(SPR_CURSOR_MOUSE, PAL_NONE);
if (_cursor.sprites[0].image.sprite == SPR_CURSOR_ZZZ) SetMouseCursor(SPR_CURSOR_MOUSE, PAL_NONE);
}
}
@ -2120,9 +2121,10 @@ void SetMouseCursor(CursorID sprite, PaletteID pal)
*/
void SetAnimatedMouseCursor(const AnimCursor *table)
{
assert(!_cursor.sprites.empty());
_cursor.animate_list = table;
_cursor.animate_cur = nullptr;
_cursor.sprite_seq[0].pal = PAL_NONE;
_cursor.sprites[0].image.pal = PAL_NONE;
SwitchAnimatedCursor();
}

@ -14,6 +14,7 @@
#include "core/enum_type.hpp"
#include "core/geometry_type.hpp"
#include "zoom_type.h"
#include <vector>
typedef uint32_t SpriteID; ///< The number of a sprite, without mapping bits and colourtables
typedef uint32_t PaletteID; ///< The number of the palette
@ -113,6 +114,13 @@ struct AnimCursor {
uint8_t display_time; ///< Amount of ticks this sprite will be shown
};
struct CursorSprite {
PalSpriteID image; ///< Image.
Point pos; ///< Relative position.
constexpr CursorSprite(SpriteID spr, PaletteID pal, int x, int y) : image({spr, pal}), pos({x, y}) {}
};
/** Collection of variables for cursor-display and -animation */
struct CursorVars {
/* Logical mouse position */
@ -127,9 +135,7 @@ struct CursorVars {
int h_wheel;
/* Mouse appearance */
PalSpriteID sprite_seq[16]; ///< current image of cursor
Point sprite_pos[16]; ///< relative position of individual sprites
uint sprite_count; ///< number of sprites to draw
std::vector<CursorSprite> sprites; ///< Sprites comprising cursor.
Point total_offs, total_size; ///< union of sprite properties
Point draw_pos, draw_size; ///< position and size bounding-box for drawing

@ -275,7 +275,6 @@ private:
BuildGuiGroupList(this->groups, true, owner, this->vli.vtype);
this->groups.shrink_to_fit();
this->groups.RebuildDone();
}

@ -102,7 +102,7 @@ static uint16_t ParseCode(const char *start, const char *end)
assert(start <= end);
while (start < end && *start == ' ') start++;
while (end > start && *end == ' ') end--;
std::string_view str{start, static_cast<size_t>(end - start)};
std::string_view str{start, end};
for (const auto &kn : _keycode_to_name) {
if (StrEqualsIgnoreCase(str, kn.name)) {
return kn.keycode;

@ -79,9 +79,9 @@ void ResetIndustries()
auto industry_insert = std::copy(std::begin(_origin_industry_specs), std::end(_origin_industry_specs), std::begin(_industry_specs));
std::fill(industry_insert, std::end(_industry_specs), IndustrySpec{});
for (IndustryType i = 0; i < lengthof(_origin_industry_specs); i++) {
/* Enable only the current climate industries */
_industry_specs[i].enabled = HasBit(_industry_specs[i].climate_availability, _settings_game.game_creation.landscape);
/* Enable only the current climate industries */
for (auto it = std::begin(_industry_specs); it != industry_insert; ++it) {
it->enabled = HasBit(it->climate_availability, _settings_game.game_creation.landscape);
}
auto industry_tile_insert = std::copy(std::begin(_origin_industry_tile_specs), std::end(_origin_industry_tile_specs), std::begin(_industry_tile_specs));

@ -1367,7 +1367,7 @@ static bool CargoFilter(const Industry * const *industry, const std::pair<CargoI
return accepted_cargo_matches && produced_cargo_matches;
}
static GUIIndustryList::FilterFunction * const _filter_funcs[] = { &CargoFilter };
static GUIIndustryList::FilterFunction * const _industry_filter_funcs[] = { &CargoFilter };
/** Enum referring to the Hotkeys in the industry directory window */
enum IndustryDirectoryHotkeys {
@ -1383,7 +1383,7 @@ protected:
/* Constants for sorting industries */
static const StringID sorter_names[];
static GUIIndustryList::SortFunction * const sorter_funcs[];
static const std::initializer_list<GUIIndustryList::SortFunction * const> sorter_funcs;
GUIIndustryList industries{IndustryDirectoryWindow::produced_cargo_filter};
Scrollbar *vscroll;
@ -1455,7 +1455,7 @@ protected:
this->produced_cargo_filter_criteria = CargoFilterCriteria::CF_ANY;
this->accepted_cargo_filter_criteria = CargoFilterCriteria::CF_ANY;
this->industries.SetFilterFuncs(_filter_funcs);
this->industries.SetFilterFuncs(_industry_filter_funcs);
bool is_filtering_necessary = this->produced_cargo_filter_criteria != CargoFilterCriteria::CF_ANY || this->accepted_cargo_filter_criteria != CargoFilterCriteria::CF_ANY;
@ -1480,6 +1480,7 @@ protected:
{
if (this->industries.NeedRebuild()) {
this->industries.clear();
this->industries.reserve(Industry::GetNumItems());
for (const Industry *i : Industry::Iterate()) {
if (this->string_filter.IsEmpty()) {
@ -1491,7 +1492,6 @@ protected:
if (this->string_filter.GetState()) this->industries.push_back(i);
}
this->industries.shrink_to_fit();
this->industries.RebuildDone();
auto filter = std::make_pair(this->accepted_cargo_filter_criteria, this->produced_cargo_filter_criteria);
@ -1964,7 +1964,7 @@ HotkeyList IndustryDirectoryWindow::hotkeys("industrydirectory", industrydirecto
Listing IndustryDirectoryWindow::last_sorting = {false, 0};
/* Available station sorting functions. */
GUIIndustryList::SortFunction * const IndustryDirectoryWindow::sorter_funcs[] = {
const std::initializer_list<GUIIndustryList::SortFunction * const> IndustryDirectoryWindow::sorter_funcs = {
&IndustryNameSorter,
&IndustryTypeSorter,
&IndustryProductionSorter,

@ -1590,7 +1590,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Standaard diens
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Kies die standaard diensskedule vir nuwe vliegtuie as geen diensskedule aangedui is nie
STR_CONFIG_SETTING_SERVINT_SHIPS :Standaard diens interval vir bote: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Kies die standaard diensskedule vir nuwe skepe as geen diensskedule aangedui is nie
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}da{P g e}/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Gedeaktiveer

@ -1513,6 +1513,8 @@ STR_CONFIG_SETTING_SERVINT_ISPERCENT :فترات ال
STR_CONFIG_SETTING_SERVINT_AIRCRAFT :مدة فحص الإفتراضي للطائرة: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS :مدة فحص الإفتراضي للسفن: {STRING}
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :غير مفعل

@ -1522,7 +1522,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Hegazkinen mant
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Ezarri hegazkin berrientzako lehenetsiko diren mantenimendu denbora tarteak, ez bada ezartzen denbora tarte esplizituak ezarriko dira
STR_CONFIG_SETTING_SERVINT_SHIPS :Itsaontzien mantenimendurako lehenetsitako denbora tarteak: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Ezarri itsasontzi berrientzako lehenetsiko diren mantenimendu denbora tarteak, ez bada ezartzen denbora tarte esplizituak ezarriko dira
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}egun{P 0 "" ak}/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Desgaitua

@ -2145,7 +2145,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Iнтэрвал
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Усталяваць міжсэрвісны інтэрвал для новых паветраных суднаў, калі пэўны інтэрвал ня вызначаны для канкрэтнага судна.
STR_CONFIG_SETTING_SERVINT_SHIPS :Iнтэрвал абслугоўваньня для караблёў: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Усталяваць міжсэрвісны інтэрвал для новых караблёў, калі пэўны інтэрвал ня вызначаны для канкрэтнага судна.
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}д{P зень днi дзён}/хвілін{P а ы ""}/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :адключана

@ -1833,7 +1833,11 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Intervalo padr
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Definir o intervalo padrão de manutenção para novas aeronaves, se um intervalo de manutenção não for explicitamente configurado para o veículo
STR_CONFIG_SETTING_SERVINT_SHIPS :Intervalo padrão de manutenção para embarcações: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Definir o intervalo padrão de manutenção para novas embarcações, se um intervalo de manutenção não for explicitamente configurado para o veículo
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}Dia{P 0 "" s}/Minuto{P 0 "" s}/%
###length 3
STR_CONFIG_SETTING_SERVINT_VALUE_DAYS :{COMMA}{NBSP}Dia{P 0 "" s}
STR_CONFIG_SETTING_SERVINT_VALUE_MINUTES :{COMMA}{NBSP}Minuto{P 0 "" s}
STR_CONFIG_SETTING_SERVINT_VALUE_PERCENTAGE :{COMMA}{NBSP}%
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Desativado
@ -2373,7 +2377,7 @@ STR_NETWORK_SERVER_LIST_GAME_NAME :{BLACK}Nome
STR_NETWORK_SERVER_LIST_GAME_NAME_TOOLTIP :{BLACK}Nome do jogo
STR_NETWORK_SERVER_LIST_GENERAL_ONLINE :{BLACK}{COMMA}/{COMMA} - {COMMA}/{COMMA}
STR_NETWORK_SERVER_LIST_CLIENTS_CAPTION :{BLACK}Clientes
STR_NETWORK_SERVER_LIST_CLIENTS_CAPTION_TOOLTIP :{BLACK}Clientes conectados / máx. clientes{}Empresas / máx. empresas
STR_NETWORK_SERVER_LIST_CLIENTS_CAPTION_TOOLTIP :{BLACK}Clientes conectados / máx. clientes{}Empresas ativas / máx. empresas
STR_NETWORK_SERVER_LIST_MAP_SIZE_SHORT :{BLACK}{COMMA}x{COMMA}
STR_NETWORK_SERVER_LIST_MAP_SIZE_CAPTION :{BLACK}Tamanho do mapa
STR_NETWORK_SERVER_LIST_MAP_SIZE_CAPTION_TOOLTIP :{BLACK}Tamanho do mapa do jogo{}Clique para ordenar por área
@ -3461,7 +3465,7 @@ STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}Incompatí
# NewGRF save preset window
STR_SAVE_PRESET_CAPTION :{WHITE}Salvar predefinição
STR_SAVE_PRESET_LIST_TOOLTIP :{BLACK}Lista de predefinições disponíveis, selecione uma para copiar o nome e usar na gravação abaixo
STR_SAVE_PRESET_LIST_TOOLTIP :{BLACK}Lista de predefinições disponíveis, selecione uma para usar o nome na gravação abaixo
STR_SAVE_PRESET_TITLE :{BLACK}Introduza um nome para a predefinição
STR_SAVE_PRESET_EDITBOX_TOOLTIP :{BLACK}Nome que está selecionado para salvar a predefinição
STR_SAVE_PRESET_CANCEL :{BLACK}Cancelar

@ -1665,7 +1665,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Интерва
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Задайте интервала за обслужване на новите въздухоплавателни средства по подразбиране, ако такъв интервал не е зададен за превозното средство
STR_CONFIG_SETTING_SERVINT_SHIPS :Интервал на обслужване за кораби: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Задайте интервала за обслужване на новите кораби по подразбиране, ако такъв интервал не е изрично зададен за превозното средство
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}д{P 0 ен ни}/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Изключен

@ -1833,7 +1833,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Interval per de
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Estableix l'interval de revisió predeterminat pels nous avions, si no hi ha un interval de revisió explícit pel vehicle
STR_CONFIG_SETTING_SERVINT_SHIPS :Interval per defecte de servei per als vaixells: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Estableix l'interval de revisió predeterminat pels vaixells que es comprin, si no hi ha un interval de revisió explícit pel vehicle.
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}di{P 0 a es}/minut{P 0 "" s}/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Desactivat

@ -752,6 +752,8 @@ STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_ISO :ISO (2008-12-31
###length 3
###setting-zero-is-special

@ -1705,7 +1705,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Zadani interval
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Postavi osnovni interval servisa za nove zrakoplove, ako nije postavljen drugi specifični interval za određeno vozilo
STR_CONFIG_SETTING_SERVINT_SHIPS :Zadani interval servisiranja za brodove: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Postavi osnovni interval servisa za nove brodove, ako nije postavljen drugi specifični interval za određeno vozilo
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}dan{P 0 "" a a}/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Isključeno

@ -1916,7 +1916,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Základní serv
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Nastaví defaultní servisní interval pro letadla, pokud letadlo nemá nastaveno jiný servisní interval
STR_CONFIG_SETTING_SERVINT_SHIPS :Základní servisní interval pro lodě: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Nastaví defaultní servisní interval pro lodě pokud loď nemá nastaven jiný servisní interval
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}D{P en ní ""}/Minut{P a y ""}/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Vypnuto

@ -1832,7 +1832,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Standard servic
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Sæt serviceintervallets standardværdi for nye fly.
STR_CONFIG_SETTING_SERVINT_SHIPS :Standard serviceinterval for skibe: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Sæt serviceintervallets standardværdi for nye skibe.
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}dag{P 0 "" s}/Minute{P 0 "" r}/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Deaktiveret

@ -1832,7 +1832,11 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Standaardonderh
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Standaardonderhoudsterrmijn voor nieuwe vliegtuigen als er geen expliciete onderhoudstermijn is ingesteld voor het voertuig
STR_CONFIG_SETTING_SERVINT_SHIPS :Standaardonderhoudstermijn voor schepen: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Standaardonderhoudstermijn voor nieuwe schepen als er geen expliciete onderhoudstermijn is ingesteld voor het voertuig
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}dag{P 0 "" en}/minu{P 0 ut ten}/%
###length 3
STR_CONFIG_SETTING_SERVINT_VALUE_DAYS :{COMMA}{NBSP}Dag{P 0 "" en}
STR_CONFIG_SETTING_SERVINT_VALUE_MINUTES :{COMMA}{NBSP}Minu{P 0 ut ten}
STR_CONFIG_SETTING_SERVINT_VALUE_PERCENTAGE :{COMMA}{NBSP}%
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Uitgeschakeld
@ -3393,8 +3397,11 @@ STR_GENERATION_ABORT_MESSAGE :{YELLOW}Weet je
STR_GENERATION_PROGRESS :{WHITE}{NUM}% compleet
STR_GENERATION_PROGRESS_NUM :{BLACK}{NUM} / {NUM}
STR_GENERATION_WORLD_GENERATION :{BLACK}Wereldontwikkeling
STR_GENERATION_LANDSCAPE_GENERATION :{BLACK}Landschap genereren
STR_GENERATION_RIVER_GENERATION :{BLACK}Rivierplaatsing
STR_GENERATION_CLEARING_TILES :{BLACK}Ontwikkeling van ruig en rotsachtig gebied
STR_GENERATION_TOWN_GENERATION :{BLACK}Steden genereren
STR_GENERATION_INDUSTRY_GENERATION :{BLACK}Industrieën genereren
STR_GENERATION_OBJECT_GENERATION :{BLACK}Ontwikkeling van onverplaatsbare objecten
STR_GENERATION_TREE_GENERATION :{BLACK}Bosplaatsing
STR_GENERATION_SETTINGUP_GAME :{BLACK}Spel wordt geconfigureerd

@ -1832,7 +1832,11 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Default service
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Set the default service interval for new aircraft, if no explicit service interval is set for the vehicle
STR_CONFIG_SETTING_SERVINT_SHIPS :Default service interval for ships: {STRING2}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Set the default service interval for new ships, if no explicit service interval is set for the vehicle
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}Day{P 0 "" s}/Minute{P 0 "" s}/%
###length 3
STR_CONFIG_SETTING_SERVINT_VALUE_DAYS :{COMMA}{NBSP}Day{P 0 "" s}
STR_CONFIG_SETTING_SERVINT_VALUE_MINUTES :{COMMA}{NBSP}Minute{P 0 "" s}
STR_CONFIG_SETTING_SERVINT_VALUE_PERCENTAGE :{COMMA}{NBSP}%
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Disabled

@ -1832,7 +1832,11 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Default service
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Set the default service interval for new aircraft, if no explicit service interval is set for the vehicle
STR_CONFIG_SETTING_SERVINT_SHIPS :Default service interval for ships: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Set the default service interval for new ships, if no explicit service interval is set for the vehicle
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}Day{P 0 "" s}/Minute{P 0 "" s}/%
###length 3
STR_CONFIG_SETTING_SERVINT_VALUE_DAYS :{COMMA}{NBSP}Day{P 0 "" s}
STR_CONFIG_SETTING_SERVINT_VALUE_MINUTES :{COMMA}{NBSP}Minute{P 0 "" s}
STR_CONFIG_SETTING_SERVINT_VALUE_PERCENTAGE :{COMMA}{NBSP}%
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Disabled

@ -1832,7 +1832,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Default mainten
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Set the default maintenance interval for new aircraft, if no explicit maintenance interval is set for the vehicle
STR_CONFIG_SETTING_SERVINT_SHIPS :Default maintenance interval for ships: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Set the default maintenance interval for new ships, if no explicit maintenance interval is set for the vehicle
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}Day{P 0 "" s}/Minute{P 0 "" s}/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Disabled

@ -1841,7 +1841,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Defaŭlta prise
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Elektu la defaŭltan priservintervalon por novaj aviadiloj, se ne estas eksplicite agordita priservintervalo por la veturilo
STR_CONFIG_SETTING_SERVINT_SHIPS :Defaŭlta priservintervalo por ŝipoj: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Elektu la defaŭltan priservintervalon por novaj ŝipoj, se ne estas eksplicite agordita priservintervalo por la veturilo
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}tago{P 0 "" j}/minuto{P 0 "" j}/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Malaktiva

@ -1888,7 +1888,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Õhusõidukite
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Määrab uute õhusõidukite hooldusvälba, kui sõidukile eraldi hooldusvälpa ei määrata
STR_CONFIG_SETTING_SERVINT_SHIPS :Laevade hooldusvälba vaikeväärtus: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Määrab uute laevade hooldusvälba, kui sõidukile eraldi hooldusvälpa ei määrata
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}Päev{P 0 "" a}/Minut{P 0 "" it}/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Väljas

@ -1503,7 +1503,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Vanligur eftirl
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Áset vanliga eftirlits títtleikan hjá nýggjumf logførum, um eingin skilligur eftirlits títtleiki er ásettur fyri flutningstóli
STR_CONFIG_SETTING_SERVINT_SHIPS :Vanligur eftirlits títtleiki fyri skip: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Áset vanliga eftirlits títtleikan hjá nýggjum skipum, um eingin skilligur eftirlits títtleiki er ásettur fyri flutningstóli
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA} dag{P 0 "" ar}/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Ikki sligi til

@ -1526,7 +1526,7 @@ STR_CONFIG_SETTING_AUTORENEW_MONEY :Vähimmäisraha
STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Vähimmäisrahamäärä, jonka on jäätävä pankkiin kulkuneuvoja automaattisesti uudistettaessa
STR_CONFIG_SETTING_ERRMSG_DURATION :Virheilmoitusten näyttöaika: {STRING}
STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Aika virheilmoitusten näyttämiseen punaisessa ikkunassa. Huomaa, että jotkut (kriittiset) virheilmoitukset eivät sulkeudu automaattisesti tämän ajan jälkeen, vaan ne on suljettava käsin
STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Aika virheilmoitusten näyttämiseen punaisessa ikkunassa. Huomaa, että jotkin (kriittiset) virheilmoitukset eivät sulkeudu automaattisesti tämän ajan jälkeen, vaan ne on suljettava käsin
STR_CONFIG_SETTING_HOVER_DELAY :Näytä työkaluvihjeet: {STRING}
STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Viive ennen työkaluvihjeen näyttämistä, kun hiiren osoitinta pidetään käyttöliittymäelementin päällä. Vaihtoehtoisesti työkaluvihjeen saa myös näkyviin painamalla hiiren oikeaa painiketta, kun arvoksi on määritetty 0
@ -1832,7 +1832,11 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Lentokoneiden o
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Määritä oletushuoltoväli uusille lentokoneille, mikäli kulkuneuvolle ei ole määritelty erillistä huoltoväliä
STR_CONFIG_SETTING_SERVINT_SHIPS :Laivojen oletushuoltoväli: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Määritä oletushuoltoväli uusille laivoille, mikäli kulkuneuvolle ei ole määritelty erillistä huoltoväliä
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}päivä{P 0 "" ä}/minuutti{P 0 "" a}/%
###length 3
STR_CONFIG_SETTING_SERVINT_VALUE_DAYS :{COMMA}{NBSP}vuorokau{P 0 si tta}
STR_CONFIG_SETTING_SERVINT_VALUE_MINUTES :{COMMA}{NBSP}minuutti{P 0 "" a}
STR_CONFIG_SETTING_SERVINT_VALUE_PERCENTAGE :{COMMA}{NBSP}%
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Pois käytöstä
@ -2366,7 +2370,7 @@ STR_NETWORK_SERVER_VISIBILITY_INVITE_ONLY :Vain kutsutut
# Network server list
STR_NETWORK_SERVER_LIST_CAPTION :{WHITE}Moninpeli
STR_NETWORK_SERVER_LIST_PLAYER_NAME :{BLACK}Pelaajan nimi
STR_NETWORK_SERVER_LIST_ENTER_NAME_TOOLTIP :{BLACK}Pelaajat tunnistetaan ja erotetaan toisistaan nimien avulla
STR_NETWORK_SERVER_LIST_ENTER_NAME_TOOLTIP :{BLACK}Nimi, jolla muut pelaajat tunnistavat sinut
STR_NETWORK_SERVER_LIST_GAME_NAME :{BLACK}Nimi
STR_NETWORK_SERVER_LIST_GAME_NAME_TOOLTIP :{BLACK}Pelin nimi
@ -4468,7 +4472,7 @@ STR_VEHICLE_DETAILS_DECREASE_SERVICING_INTERVAL_TOOLTIP_PERCENT :{BLACK}Lyhennä
STR_SERVICE_INTERVAL_DROPDOWN_TOOLTIP :{BLACK}Muuta huoltovälien tyyppiä
STR_VEHICLE_DETAILS_DEFAULT :Oletus
STR_VEHICLE_DETAILS_DAYS :Päiviä
STR_VEHICLE_DETAILS_DAYS :Vuorokausia
STR_VEHICLE_DETAILS_MINUTES :Minuutteja
STR_VEHICLE_DETAILS_PERCENT :Prosentteja

@ -1833,7 +1833,11 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Intervalle d'en
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Définit l'intervalle d'entretien par défaut des nouveaux aéronefs, si aucun intervalle d'entretien n'est défini pour le véhicule
STR_CONFIG_SETTING_SERVINT_SHIPS :Intervalle d'entretien par défaut pour les navires{NBSP}: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Définit l'intervalle d'entretien par défaut des nouveaux navires, si aucun intervalle d'entretien n'est défini pour le véhicule
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}jour{P 0 "" s}/minute{P 0 "" s}/%
###length 3
STR_CONFIG_SETTING_SERVINT_VALUE_DAYS :{COMMA}{NBSP}Jour{P 0 "" s}
STR_CONFIG_SETTING_SERVINT_VALUE_MINUTES :{COMMA}{NBSP}Minute{P 0 "" s}
STR_CONFIG_SETTING_SERVINT_VALUE_PERCENTAGE :{COMMA}{NBSP}%
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Désactivé

@ -1570,7 +1570,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Standert repara
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Stel it standert reparaasjeskema yn foar nije fleantugen dy't gjin eigen reparaasjeskema kenne
STR_CONFIG_SETTING_SERVINT_SHIPS :Standerd reparaasjeskema foar skippen: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Stel it standerd reparaasjeskema yn foar nije skippen dy't gjin eigen reparaasjeskema kenne
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}{P 0 dei dagen}/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Útskeakele

@ -1769,7 +1769,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Tricead bunaite
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Tagh dè cho tric s a thèid obair-chàraidh a dhèanamh air carbadan-adhair ùra mura deach tricead a chàraidh sònraichte a shuidheachadh airson a' charbaid
STR_CONFIG_SETTING_SERVINT_SHIPS :Tricead bunaiteach na h-obrach-càraidh air longan: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Tagh dè cho tric s a thèid obair-chàraidh a dhèanamh air longan ùra mura deach tricead a chàraidh sònraichte a shuidheachadh airson na luinge
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}{P 0 latha latha làithean latha}/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :À comas

@ -1833,7 +1833,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Intervalo de ma
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Fixa o intervalo de mantemento por defecto para avións novos, o cal se empregará no caso de que non se defina explicitamente un novo intervalo de mantemento para o vehículo
STR_CONFIG_SETTING_SERVINT_SHIPS :Intervalo de mantemento por defecto para navíos: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Fixa o intervalo de mantemento por defecto para navíos novos, o cal se empregará no caso de que non se defina explicitamente un novo intervalo de mantemento para o vehículo
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}Día{P 0 "" s}/Minuto{P 0 "" s}/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Desactivado

@ -1833,7 +1833,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Standard-Wartun
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Setze das Standardwartungsintervall für Luftfahrzeuge. Dieses Wartungsintervall wird von allen Luftfahrzeugen eingehalten, denen kein individuelles Wartungsintervall zugewiesen worden ist
STR_CONFIG_SETTING_SERVINT_SHIPS :Standard-Wartungsintervall für Schiffe: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Setze das Standardwartungsintervall für Schiffe. Dieses Wartungsintervall wird von allen Schiffen eingehalten, denen kein individuelles Wartungsintervall zugewiesen worden ist
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}Tag{P 0 "" e}/Minute{P 0 "" n}/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Deaktiviert

@ -44,7 +44,7 @@ STR_CARGO_PLURAL_WOOD :{G=f}Ξυλεί
STR_CARGO_PLURAL_WOOD.geniki :Ξυλείας
STR_CARGO_PLURAL_IRON_ORE :{G=n}Σιδηρομεταλλεύματα
STR_CARGO_PLURAL_IRON_ORE.geniki :Σιδηρομεταλλευμάτων
STR_CARGO_PLURAL_STEEL :{G=m}Χάλυβες
STR_CARGO_PLURAL_STEEL :{G=m}Χάλυβα
STR_CARGO_PLURAL_STEEL.geniki :Χάλυβα
STR_CARGO_PLURAL_VALUABLES :{G=n}Πολύτιμα είδη
STR_CARGO_PLURAL_VALUABLES.geniki :Πολύτιμων ειδών
@ -65,7 +65,7 @@ STR_CARGO_PLURAL_GOLD.geniki :Χρυσού
STR_CARGO_PLURAL_WATER :{G=n}Νερά
STR_CARGO_PLURAL_WATER.geniki :Νερών
STR_CARGO_PLURAL_WHEAT :Σιτάρια
STR_CARGO_PLURAL_WHEAT.geniki :Σιταριών
STR_CARGO_PLURAL_WHEAT.geniki :Σιτάρι
STR_CARGO_PLURAL_RUBBER :{G=n}Λάστιχα
STR_CARGO_PLURAL_RUBBER.geniki :Λάστιχων
STR_CARGO_PLURAL_SUGAR :{G=f}Ζάχαρη
@ -267,7 +267,7 @@ STR_COLOUR_SECONDARY_ORANGE :Πορτοκα
STR_COLOUR_SECONDARY_BROWN :Καφέ
STR_COLOUR_SECONDARY_GREY :Γκρι
STR_COLOUR_SECONDARY_WHITE :Άσπρο
STR_COLOUR_SECONDARY_SAME_AS_PRIMARY :Ίδιο με το πρωταρχικό
STR_COLOUR_SECONDARY_SAME_AS_PRIMARY :Ίδιο με το Αρχικό
# Units used in OpenTTD
@ -526,7 +526,7 @@ STR_FILE_MENU_EXIT :Έξοδος
# Map menu
STR_MAP_MENU_MAP_OF_WORLD :Χάρτης του κόσμου
STR_MAP_MENU_EXTRA_VIEWPORT :Πρόσθετη εμφάνιση
STR_MAP_MENU_EXTRA_VIEWPORT :Πρόσθετο παράθυρο προβολής
STR_MAP_MENU_LINGRAPH_LEGEND :Υπόμνημα ροής φορτίου
STR_MAP_MENU_SIGN_LIST :Λίστα πινακίδων
@ -1026,7 +1026,7 @@ STR_NEWS_EXCLUSIVE_RIGHTS_DESCRIPTION_MONTHS :{BIG_FONT}{BLAC
STR_NEWS_EXCLUSIVE_RIGHTS_DESCRIPTION_MINUTES :{BIG_FONT}{BLACK}Η τοπική αρχή της {TOWN} υπογράφει σύμβαση με την {STRING} για 12 λεπτά αποκλειστικών δικαιωμάτων μεταφοράς!
# Extra view window
STR_EXTRA_VIEWPORT_TITLE :{WHITE}Εμφάνιση {COMMA}
STR_EXTRA_VIEWPORT_TITLE :{WHITE}Προβολή {COMMA}
STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN :{BLACK}Αντιγραφή στο παράθυρο εμφάνισης
STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN_TT :{BLACK}Αντιγραφή της τοποθεσίας της κύριας προβολής σε αυτό το παράθυρο εμφάνισης
STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW :{BLACK}Επικόλληση από παράθυρο εμφάνισης
@ -1139,7 +1139,7 @@ STR_GAME_OPTIONS_VIDEO_DRIVER_INFO :{BLACK}Τρέχ
STR_GAME_OPTIONS_GUI_SCALE_FRAME :{BLACK}Μέγεθος διεπαφής
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_BEVELS :{BLACK}Κλίση κλίμακας
@ -1183,7 +1183,7 @@ STR_GAME_OPTIONS_BASE_MUSIC :{BLACK}Βασι
STR_GAME_OPTIONS_BASE_MUSIC_TOOLTIP :{BLACK}Επιλέξτε το βασικό σετ μουσικής για χρήση
STR_GAME_OPTIONS_BASE_MUSIC_DESCRIPTION_TOOLTIP :{BLACK}Επιπλέον πληροφορίες σχετικά με το βασικό σετ μουσικής
STR_GAME_OPTIONS_SOCIAL_PLUGINS_NONE :{LTBLUE}(δεν έχουν εγκατασταθεί plugins για ενοποίηση με πλατφόρμες κοινωνικής δικτύωσης)
STR_GAME_OPTIONS_SOCIAL_PLUGINS_NONE :{LTBLUE}(δεν έχουν εγκατασταθεί plugins για διασύνδεση με πλατφόρμες κοινωνικής δικτύωσης)
STR_GAME_OPTIONS_SOCIAL_PLUGIN_TITLE :{BLACK}{STRING} ({STRING})
STR_GAME_OPTIONS_SOCIAL_PLUGIN_PLATFORM :{BLACK}Πλατφόρμα:
@ -1343,8 +1343,8 @@ STR_CONFIG_SETTING_CATEGORY_AND_TYPE_HIDES :{BLACK}Εμφά
###length 3
STR_CONFIG_SETTING_OFF :Ανενεργό
STR_CONFIG_SETTING_ON :Ενεργή
STR_CONFIG_SETTING_DISABLED :Ανένεργη
STR_CONFIG_SETTING_ON :Ενεργό
STR_CONFIG_SETTING_DISABLED :Ανένεργο
###length 3
STR_CONFIG_SETTING_COMPANIES_OFF :Ανένεργο
@ -1382,7 +1382,7 @@ STR_CONFIG_SETTING_CONSTRUCTION_SPEED :Ταχύτητ
STR_CONFIG_SETTING_CONSTRUCTION_SPEED_HELPTEXT :Περιορίζει το ποσοστό των οικοδομήμσεων από τα ΑΙ
STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS :Βλάβες οχημάτων: {STRING}
STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS_HELPTEXT :Ελέγχει πόσο συχνά τα ανεπαρκώς συντηρημένα οχήματα παθαίνουν βλάβες
STR_CONFIG_SETTING_VEHICLE_BREAKDOWNS_HELPTEXT :Ελέγχει πόσο συχνά παθαίνουν βλάβες τα ανεπαρκώς συντηρημένα οχήματα
STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER :Πολλαπλασιαστής επιδότησης: {STRING}
STR_CONFIG_SETTING_SUBSIDY_MULTIPLIER_HELPTEXT :Θέστε πόσο ξεπληρώνεται για επιδοτημένες συνδέσεις
@ -1434,7 +1434,7 @@ STR_CONFIG_SETTING_TRAIN_LENGTH :Μέγιστο
STR_CONFIG_SETTING_TRAIN_LENGTH_HELPTEXT :Ορίστε το μέγιστο μήκος των τρένων
STR_CONFIG_SETTING_TILE_LENGTH :{COMMA} τετραγωνίδι{P 0 ο α}
STR_CONFIG_SETTING_SMOKE_AMOUNT :Ποσότητα καπνού/σπινθύρων οχήματος: {STRING}
STR_CONFIG_SETTING_SMOKE_AMOUNT :Ποσότητα καπνού/σπινθήρων οχήματος: {STRING}
STR_CONFIG_SETTING_SMOKE_AMOUNT_HELPTEXT :Ορίστε τον όγκο του καπνού ή τον αριθμό των σπιθών που παράγονται από τα οχήματα
STR_CONFIG_SETTING_TRAIN_ACCELERATION_MODEL :Μοντέλο επιτάχυνσης τρένων: {STRING}
@ -1450,7 +1450,7 @@ STR_CONFIG_SETTING_PERCENTAGE :{COMMA}%
STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS :Κλίση εδάφους για τα οδικά οχήματα: {STRING}
STR_CONFIG_SETTING_ROAD_VEHICLE_SLOPE_STEEPNESS_HELPTEXT :Η κλίση ενός κεκλιμένου τετραγωνίδιου για τα οδικά οχήματα. Μεγαλύτερες τιμές καθιστούν δυσκολότερο το ανέβασμα λόφων
STR_CONFIG_SETTING_FORBID_90_DEG :Απαγόρευση στα τρένα να κάνουν στροφές 90°: {STRING}
STR_CONFIG_SETTING_FORBID_90_DEG :Απαγορεύεται στα τρένα να κάνουν στροφές 90°: {STRING}
STR_CONFIG_SETTING_FORBID_90_DEG_HELPTEXT :Στροφές 90 μοιρών προκύπτουν όταν μια οριζόντια σιδηροτροχιά ακολουθείται από μια κάθετη στο επόμενο τετραγωνίδιο, κάνοντας το τρένο να στρίψει κατά 90 μοίρες όταν αλλάζει τετραγωνίδιο, αντί για τις συνηθισμένες 45 μοίρες σε άλλους συνδυασμούς σιδηροτροχιών
STR_CONFIG_SETTING_DISTANT_JOIN_STATIONS :Να επιτρέπεται η συνένωση μη παρακείμενων σταθμών: {STRING}
@ -1496,10 +1496,10 @@ STR_CONFIG_SETTING_SHOWFINANCES_PERIOD :Εμφάνισ
STR_CONFIG_SETTING_SHOWFINANCES_HELPTEXT :Όταν ενεργοποιείται, το παράθυρο των οικονομικών πληροφοριών εμφανίζεται στο τέλος κάθε χρόνου για ευκολότερο έλεγχο της οικονομικής κατάστασης της εταιρείας
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_STOP_LOCATION :Οι εντόλες νέων τρένων διορίζουν ότι σταματάνε εξ ορισμού στο {STRING} της πλατφόρμας
STR_CONFIG_SETTING_STOP_LOCATION :Οι νέες εντόλες τρένων έχουν στάση εξ' ορισμού στο {STRING} της πλατφόρμας
STR_CONFIG_SETTING_STOP_LOCATION_HELPTEXT :Ορισμός προεπιλεγμένου σημείου που θα σταματούν τα τρένα στην πλατφόρμα. Το «κοντινό άκρο» σημαίνει κοντά στο σημείο εισόδου, «μέση» σημαίνει στο μέσο της πλατφόρμας και «μακρινό άκρο» σημαίνει στο άλλο άκρο από το σημείο εισόδου. Σημειώστε ότι αυτή η ρύθμιση ορίζει μόνο την προεπιλεγμένη τιμή για νέες εντολές. Οι μεμονωμένες εντολές μπορούν να έχουν τη δική τους θέση στάσης κάνοντας κλικ πάνω στο κείμενο της εντολής
###length 3
STR_CONFIG_SETTING_STOP_LOCATION_NEAR_END :κοντινό άκρο
@ -1509,10 +1509,10 @@ STR_CONFIG_SETTING_STOP_LOCATION_FAR_END :μακρινό
STR_CONFIG_SETTING_AUTOSCROLL :Μετακίνηση παραθύρου όταν το ποντίκι είναι στην άκρη: {STRING}
STR_CONFIG_SETTING_AUTOSCROLL_HELPTEXT :Όταν είναι ενεργή, η εμφάνιση θα κυλά όταν το ποντίκι είναι κοντά στην άκρη του παραθύρου
###length 4
STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Απενεργοποιημένη
STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT_FULLSCREEN :Κύρια εμφάνιση, μόνο σε πλήρη οθόνη
STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT :Κύρια εμφάνιση
STR_CONFIG_SETTING_AUTOSCROLL_EVERY_VIEWPORT :Κάθε εμφάνιση
STR_CONFIG_SETTING_AUTOSCROLL_DISABLED :Απενεργοποιημένο
STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT_FULLSCREEN :Κύριο παράθυρο προβολής, μόνο σε πλήρη οθόνη
STR_CONFIG_SETTING_AUTOSCROLL_MAIN_VIEWPORT :Κύριο παράθυρο προβολής
STR_CONFIG_SETTING_AUTOSCROLL_EVERY_VIEWPORT :Κάθε παράθυρο προβολής
STR_CONFIG_SETTING_BRIBE :Επιτρέπεται η δωροδοκία της τοπικής αρχής: {STRING}
###length 2
@ -1557,7 +1557,7 @@ STR_CONFIG_SETTING_STOP_ON_COMPETITOR_ROAD_HELPTEXT :Επιτρέπ
STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Δεν είναι δυνατή η αλλαγή αυτής της ρύθμισης όταν υπάρχουν οχήματα.
STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Συντήρηση υποδομής: {STRING}
STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Όταν είναι ενεργοποιημένη, οι υποδομές προκαλούν έξοδα συντήρησης. Το κόστος μεγαλώνει δυσανάλογα με το μέγεθος του δικτύου, επηρεάζοντας έτσι τις μεγάλες εταιρείες περισσότερο από τις μικρότερες
STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Όταν είναι ενεργοποιημένο, οι υποδομές προκαλούν έξοδα συντήρησης. Το κόστος μεγαλώνει υπεραναλογικά με το μέγεθος του δικτύου, επηρεάζοντας έτσι τις μεγάλες εταιρείες περισσότερο από τις μικρότερες
STR_CONFIG_SETTING_COMPANY_STARTING_COLOUR :Αρχικό χρώμα εταιρίας: {STRING}
STR_CONFIG_SETTING_COMPANY_STARTING_COLOUR_HELPTEXT :Επιλογή του αρχικού χρώματος της εταιρίας
@ -1608,21 +1608,21 @@ STR_CONFIG_SETTING_CARGO_SCALE_VALUE :{NUM}%
STR_CONFIG_SETTING_AUTORENEW_VEHICLE :Αυτόματη ανανέωση όταν ένα όχημα παλιώνει: {STRING}
STR_CONFIG_SETTING_AUTORENEW_VEHICLE_HELPTEXT :Όταν είναι ενεργοποιημένη, τα οχήματα που πλησιάζουν το τέλος της ζωής τους αντικαθίσταται αυτόματα όταν πληρούνται οι προϋποθέσεις αντικατάστασής του
STR_CONFIG_SETTING_AUTORENEW_MONTHS :Αυτόματη αντικατάστηση όταν το όχημα είναι {STRING} μέγιστης ηλικίας
STR_CONFIG_SETTING_AUTORENEW_MONTHS :Αυτόματη αντικατάστηση όταν το όχημα είναι {STRING} την μέγιστη ηλικία
STR_CONFIG_SETTING_AUTORENEW_MONTHS_HELPTEXT :Σχετική ηλικία κατά την οποία κάποιο όχημα θα πρέπει να εξεταστεί για αυτόματη ανανέωση
###length 2
STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_BEFORE :{COMMA} μήν{P 0 α ες} πριν
STR_CONFIG_SETTING_AUTORENEW_MONTHS_VALUE_AFTER :{COMMA} μήν{P 0 α ες} μετά
STR_CONFIG_SETTING_AUTORENEW_MONEY :Αυτόματη ανανέωση με τα ελάχιστα απαιτούμενα χρήματα: {STRING}
STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Ελάχιστο χρηματικό ποσό που θα πρέπει να υπολείπεται στην τράπεζα πριν εξεταστεί η αυτόματη ανανέωση των οχημάτων
STR_CONFIG_SETTING_AUTORENEW_MONEY_HELPTEXT :Ελάχιστο χρηματικό ποσό που θα πρέπει να απομείνει στην τράπεζα πριν εξεταστεί η αυτόματη ανανέωση των οχημάτων
STR_CONFIG_SETTING_ERRMSG_DURATION :Διάρκεια μηνύματος σφάλματος: {STRING}
STR_CONFIG_SETTING_ERRMSG_DURATION_HELPTEXT :Διάρκεια εμφάνισης μηνύματων σφάλματος σε κόκκινο παράθυρο. Σημειώστε ότι μερικά (κρίσιμα) μηνύματα σφάλματος δεν κλείνουν αυτόματα μετά από αυτόν τον χρόνο, αλλά πρέπει να κλείσουν χειροκίνητα
STR_CONFIG_SETTING_HOVER_DELAY :Εμφάνιση αναδυόμενων μηνυμάτων: {STRING}
STR_CONFIG_SETTING_HOVER_DELAY_HELPTEXT :Καθυστέρηση πριν την εμφάνιση των επεξηγήσεων όταν ο δείκτης του ποντικιού βρίσκεται πάνω από κάποιο στοιχείο της διεπαφής. Εναλλακτικά, οι επεξηγήσεις συνδέονται με το δεξί κουμπί του ποντικιού όταν η τιμή αυτού του πεδίου είναι 0
STR_CONFIG_SETTING_HOVER_DELAY_VALUE :Ο δείκτης του ποντικιού να βρίσκεται από πάνω για {COMMA} δευτερόλεπτ{P 0 ο α}
STR_CONFIG_SETTING_HOVER_DELAY_VALUE :Ο δείκτης του ποντικιού να βρίσκεται από πάνω για {COMMA} χιλιοστά του δευτερολέπτου
###setting-zero-is-special
STR_CONFIG_SETTING_HOVER_DELAY_DISABLED :Δεξί κουμπί
@ -1691,8 +1691,8 @@ STR_CONFIG_SETTING_ROAD_SIDE :Οχήματα
STR_CONFIG_SETTING_ROAD_SIDE_HELPTEXT :Επιλέξτε την πλευρά οδήγησης
###length 2
STR_CONFIG_SETTING_ROAD_SIDE_LEFT :Οδηγούν από αριστερά
STR_CONFIG_SETTING_ROAD_SIDE_RIGHT :Οδηγούν από δεξιά
STR_CONFIG_SETTING_ROAD_SIDE_LEFT :Οδήγηση από αριστερά
STR_CONFIG_SETTING_ROAD_SIDE_RIGHT :Οδήγηση από δεξιά
STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Περιστροφή χάρτη υψομετρίας: {STRING}
STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_TOOLTIP :Επιλέξτε με ποιον τρόπο θα περιστραφεί η εικόνα του ύψους χάρτη, για να ταιριάζει στον κόσμο του παιχνιδιού
@ -1746,7 +1746,7 @@ STR_CONFIG_SETTING_MEASURE_TOOLTIP_HELPTEXT :Εμφάνισ
STR_CONFIG_SETTING_LIVERIES :Εμφάνιση χρωμάτων των εταιριών: {STRING}
STR_CONFIG_SETTING_LIVERIES_HELPTEXT :Ελέγξτε τη χρήση του χρωματικού μοτίβου των τύπων των οχημάτων για τα οχήματα (σε αντίθεση με τα εταιρικά)
###length 3
STR_CONFIG_SETTING_LIVERIES_NONE :Κανένας
STR_CONFIG_SETTING_LIVERIES_NONE :Κανένα
STR_CONFIG_SETTING_LIVERIES_OWN :Η εταιρία μου
STR_CONFIG_SETTING_LIVERIES_ALL :Όλες οι εταιρίες
@ -1792,7 +1792,7 @@ STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_NO :Όχι
STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_YES :Ναι
STR_CONFIG_SETTING_RIGHT_MOUSE_WND_CLOSE_YES_EXCEPT_STICKY :Ναι, εκτός από το καρφιτσωμένο
STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES :Χρήση της {STRING} ημερολογιακής μορφής στα ονόματα αποθηκευμένων παιχνιδιών
STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES :Χρήση της ημερολογιακής μορφής {STRING} στα ονόματα αποθηκευμένων παιχνιδιών
STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_HELPTEXT :Μορφή της ημερομηνίας στα αρχεία αποθήκευσης παιχνιδιών
###length 3
STR_CONFIG_SETTING_DATE_FORMAT_IN_SAVE_NAMES_LONG :μακριά (31 Δεκ 2008)
@ -1865,10 +1865,10 @@ STR_CONFIG_SETTING_SOUND_NEW_PERIOD :Τέλος πε
STR_CONFIG_SETTING_SOUND_NEW_YEAR_HELPTEXT :Παίζει ηχητικό εφέ στο τέλος του χρόνου που συνοψίζει την επίδοση της εταιρείας κατά την διάρκεια αυτού του χρόνου σε σχέση με τον προηγούμενο χρόνο
STR_CONFIG_SETTING_SOUND_NEW_PERIOD_HELPTEXT :Παίζει ηχητικό εφέ στο τέλος του χρόνου που συνοψίζει την επίδοση της εταιρείας κατά την διάρκεια αυτής της περιόδου σε σχέση με την προηγούμεη περίοδο
STR_CONFIG_SETTING_SOUND_CONFIRM :Οικοδομή: {STRING}
STR_CONFIG_SETTING_SOUND_CONFIRM :Κατασκευή: {STRING}
STR_CONFIG_SETTING_SOUND_CONFIRM_HELPTEXT :Παίζει ηχητικό εφέ σε επιτυχής οικοδομές ή άλλες δράσεις
STR_CONFIG_SETTING_SOUND_CLICK :πατήματα κουμπιού: {STRING}
STR_CONFIG_SETTING_SOUND_CLICK :Πατήματα κουμπιού: {STRING}
STR_CONFIG_SETTING_SOUND_CLICK_HELPTEXT :Παίζει ήχο όταν γίνεται κλικ σε κουμπιά
STR_CONFIG_SETTING_SOUND_DISASTER :Καταστροφές/ατυχήματα: {STRING}
@ -1924,7 +1924,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Προκαθο
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Ορίστε το προκαθορισμένο διάστημα μεταξύ συντηρήσεων για τα νέα αεροσκάφη, όταν δεν δίνεται άλλο διάστημα για το αεροσκάφος
STR_CONFIG_SETTING_SERVINT_SHIPS :Προκαθορισμένο διάστημα μεταξύ επισκευών για τα πλοία: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Ορίστε το προκαθορισμένο διάστημα μεταξύ συντηρήσεων για τα νέα πλοία, όταν δεν δίνεται άλλο διάστημα για το πλοίο
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}Ημέρ{P 0 α ες}/Λεπτ{P ό ά}/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Απενεργοποιημένο
@ -1967,7 +1968,7 @@ STR_CONFIG_SETTING_NEWS_ECONOMY_CHANGES_HELPTEXT :Εμφάνισ
STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_COMPANY :Αλλαγή της παραγωγής των βιομηχανιών που εξυπηρετούνται από την εταιρία: {STRING}
STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_COMPANY_HELPTEXT :Εμφάνιση εφημερίδας όταν μεταβάλλεται η παραγωγικότητα μιας βιομηχανίας που εξυπηρετείται από την εταιρία
STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_OTHER :Διαφοροποιήσεις στην παραγωγή των βιομηχανιών που εξυπηρετούνται από ανταγωνιστή(-ές): {STRING}
STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_OTHER :Διαφοροποιήσεις στην παραγωγή των βιομηχανιών που εξυπηρετούνται από ανταγωνιστή/ές: {STRING}
STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_OTHER_HELPTEXT :Εμφάνιση εφημερίδας όταν μεταβάλλεται η παραγωγικότητα μιας βιομηχανίας που εξυπηρετείται από ανταγωνιστές
STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_UNSERVED :Άλλες διαφοροποιήσεις στη παραγωγή: {STRING}
@ -1988,7 +1989,7 @@ STR_CONFIG_SETTING_NEWS_SUBSIDIES_HELPTEXT :Πρόβαλλ
STR_CONFIG_SETTING_NEWS_GENERAL_INFORMATION :Γενικές πληροφορίες: {STRING}
STR_CONFIG_SETTING_NEWS_GENERAL_INFORMATION_HELPTEXT :Εμφάνιση εφημερίδας σε γενικά συμβάντα, όπως αγορά αποκλειστικών δικαιωμάτων ή χρηματοδότηση ανακατασκευής δρόμων
###length 3
STR_CONFIG_SETTING_NEWS_MESSAGES_OFF :Απενεργοποιημένα
STR_CONFIG_SETTING_NEWS_MESSAGES_OFF :Απενεργοποιημένο
STR_CONFIG_SETTING_NEWS_MESSAGES_SUMMARY :Περιλήψεις
STR_CONFIG_SETTING_NEWS_MESSAGES_FULL :Ολόκληρα
@ -2080,7 +2081,7 @@ STR_CONFIG_SETTING_SNAP_RADIUS_HELPTEXT :Απόστασ
STR_CONFIG_SETTING_SNAP_RADIUS_VALUE :{COMMA} εικονοστοιχεί{P 0 ο α}
###setting-zero-is-special
STR_CONFIG_SETTING_SNAP_RADIUS_DISABLED :Απενεργοποιημένη
STR_CONFIG_SETTING_SOFT_LIMIT :Μέγιστο όριο μη καρφωμένων παραθύρων: {STRING}
STR_CONFIG_SETTING_SOFT_LIMIT :Μέγιστο όριο μη καρφιτσωμένων παραθύρων: {STRING}
STR_CONFIG_SETTING_SOFT_LIMIT_HELPTEXT :Αριθμός μη μόνιμων ανοικτών παράθυρων πριν παλαιότερα παράθυρα κλείσουν αυτόματα για να κάνουν χώρα για τα νεότερα
STR_CONFIG_SETTING_SOFT_LIMIT_VALUE :{COMMA}
###setting-zero-is-special
@ -2234,7 +2235,7 @@ STR_CONFIG_SETTING_REVERSE_AT_SIGNALS :Αυτόματ
STR_CONFIG_SETTING_REVERSE_AT_SIGNALS_HELPTEXT :Επιτρέπεται στα τρένα να αντιστραφούν σε σήμα, εάν περιμένουν εκεί για πολύ ώρα
###length 2
STR_CONFIG_SETTING_PATHFINDER_NPF :NPF
STR_CONFIG_SETTING_PATHFINDER_YAPF :YAPF {BLUE}(Συνίσταται)
STR_CONFIG_SETTING_PATHFINDER_YAPF :YAPF {BLUE}(Συνιστάται)
STR_CONFIG_SETTING_QUERY_CAPTION :{WHITE}Αλλαγή τιμής ρύθμισης
@ -5033,7 +5034,7 @@ STR_ERROR_BMPMAP_IMAGE_TYPE :{WHITE}... δε
STR_ERROR_HEIGHTMAP_TOO_LARGE :{WHITE}... η εικόνα είναι πολύ μεγάλη
STR_WARNING_HEIGHTMAP_SCALE_CAPTION :{WHITE}Προειδοποίηση κλίμακας
STR_WARNING_HEIGHTMAP_SCALE_MESSAGE :{YELLOW}Αλλαγή μεγέθους του πηγαίου χάρτη δεν συνίσταται. Να προχωρήσει η δημιουργία;
STR_WARNING_HEIGHTMAP_SCALE_MESSAGE :{YELLOW}Αλλαγή μεγέθους του πηγαίου χάρτη δεν συνιστάται. Να προχωρήσει η δημιουργία;
# Soundset messages
STR_WARNING_FALLBACK_SOUNDSET :{WHITE}Βρέθηκε μόνο εφεδρικό σετ ήχου. Αν θέλετε ήχους, εγκαταστήστε ένα πακέτο ήχων μέσω του συστήματος μεταφόρτωσης υλικού

@ -1612,7 +1612,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :ברירת מח
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :קבע את ברירת המחדל למרווח הזמן בין תחזוקות עבור מטוסים חדשים, אם לא נקבע באופן מפורש מרווח זמן עבור כלי הרכב
STR_CONFIG_SETTING_SERVINT_SHIPS :ברירת מחדל למרווח הזמן בין תחזוקות עבור אוניות: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :קבע את ברירת המחדל למרווח הזמן בין תחזוקות עבור אוניות חדשות, אם לא נקבע באופן מפורש מרווח זמן עבור כלי הרכב
STR_CONFIG_SETTING_SERVINT_VALUE :{P 0 "יום " ""}{COMMA}{P "" " ימים"}/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :מבוטל

@ -619,6 +619,8 @@ STR_CONFIG_SETTING_AI_BUILDS_AIRCRAFT :कंप्य
###length 3
###setting-zero-is-special

@ -1895,7 +1895,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Alapértelmezet
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Alapértelmezett javítási intervallum beállítása új repülőgépeknek, ha nincs külön javítási intervallum beállítva a járműre
STR_CONFIG_SETTING_SERVINT_SHIPS :Alapértelmezett javítási intervallum hajóknak: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Alapértelmezett javítási intervallum beállítása új hajóknak, ha nincs külön javítási intervallum beállítva a járműre
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}Nap/Perc/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :kikapcsolva
@ -4453,7 +4454,7 @@ STR_VEHICLE_STATUS_TRAIN_NO_POWER :{RED}Nincs ára
STR_VEHICLE_STATUS_TRAIN_STUCK :{ORANGE}Szabad útra vár
STR_VEHICLE_STATUS_AIRCRAFT_TOO_FAR :{ORANGE}A következő repülőtér túl messze van
STR_VEHICLE_STATUS_HEADING_FOR_STATION_VEL :{LTBLUE}{1:VELOCITY} - Ütban {0:STATION} állomás felé
STR_VEHICLE_STATUS_HEADING_FOR_STATION_VEL :{LTBLUE}{1:VELOCITY} - Útban {0:STATION} állomás felé
STR_VEHICLE_STATUS_NO_ORDERS_VEL :{LTBLUE}{VELOCITY} - Nincs utasítás
STR_VEHICLE_STATUS_HEADING_FOR_WAYPOINT_VEL :{LTBLUE}{1:VELOCITY} - Útban {0:WAYPOINT} felé
STR_VEHICLE_STATUS_HEADING_FOR_DEPOT_VEL :{ORANGE}{1:VELOCITY} - Útban {0:DEPOT} felé
@ -5341,6 +5342,7 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Változt
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Még nincsenek elérhető járművek
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Indíts új játékot {DATE_SHORT} után, vagy használj olyan NewGRF-et, ami tartalmaz megfelelően korai járműveket!
STR_ERROR_NO_TOWN_ROADTYPES_AVAILABLE_AT_ALL :{WHITE}Nincs városban építhető út-típus
# Specific vehicle errors
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Nem haladhatja meg a vonat a megállj jelzést...

@ -1502,7 +1502,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Sjálfgefið mi
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Stilltu sjálfgefið millibil fyrir þjónustu hjá nýjum flugvélum, á við ef ekkert tiltekið millibil er stillt fyrir farartækið
STR_CONFIG_SETTING_SERVINT_SHIPS :Sjálfgefið millibil fyrir þjónustu hjá skipum: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Stilltu sjálfgefið millibil fyrir þjónustu hjá nýjum skipum, á við ef ekkert tiltekið millibil er stillt fyrir farartækið
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA} dag{P 0 ur ar}/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Óvirkt

@ -733,6 +733,8 @@ STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :Violkolora
###length 3
###setting-zero-is-special

@ -1791,7 +1791,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Interval perbai
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Setel interval perbaikan untuk pesawat baru, jika tidak ada interval asli yang disetel
STR_CONFIG_SETTING_SERVINT_SHIPS :Interval dasar untuk kapal: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Mengatur interval perbaikan untuk kapal baru, jika tidak ada interval perbaikan, setelan dasar akan diatur untuk kendaraan
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}hari/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Di non-aktifkan

@ -1648,7 +1648,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Eatramh seirbh
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Socraigh an t-eatramh seirbhísithe réamhshocraithe d'aerárthaigh nua, mura bhfuil eatramh seirbhísithe sainráite socraithe don fheithicil
STR_CONFIG_SETTING_SERVINT_SHIPS :Eatramh seirbhíse réamhshocraithe do longa: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Socraigh an t-eatramh seirbhísithe réamhshocraithe do longa nua, mura bhfuil eatramh seirbhísithe sainráite socraithe don fheithicil
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}lá/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Díchumasaithe

@ -1867,7 +1867,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Intervallo manu
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Imposta l'intervallo di manutenzione predefinito per i nuovi aeromobili, quando non viene impostato nessun intervallo esplicito
STR_CONFIG_SETTING_SERVINT_SHIPS :Intervallo manutenzione predefinito navi: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Imposta l'intervallo di manutenzione predefinito per le nuove navi, quando non viene impostato nessun intervallo esplicito
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}Giorn{P 0 o i}/Minut{P 0 o i}%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Disabilitato

@ -1705,7 +1705,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :航空機の点
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :個別に指定されていない場合の、航空機の点検周期を設定します
STR_CONFIG_SETTING_SERVINT_SHIPS :船舶の点検周期: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :個別に指定されていない場合の、船舶の点検周期を設定します
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA} 日/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :点検なし

@ -1833,7 +1833,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :항공기에
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :항공기에 따로 점검 기간이 설정되어있지 않은 경우에 사용할 기본 점검 기간을 설정합니다.
STR_CONFIG_SETTING_SERVINT_SHIPS :선박에 대한 기본 점검 기준: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :선박에 따로 점검 기간이 설정되어있지 않은 경우에 사용할 기본 점검 기간을 설정합니다.
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}일/분/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :사용 안 함

@ -1767,7 +1767,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Intervallum min
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Eligere solitum intervallum ministrationis novis aeroplanis, si non est proprium intervallum ministrationis vehiculo
STR_CONFIG_SETTING_SERVINT_SHIPS :Intervallum ministrationis solitum navibus: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Eligere solitum intervallum ministrationis novis navibus, si non est proprium intervallum ministrationis vehiculo
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}die{P 0 m s}/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Neglectum

@ -1834,7 +1834,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Lidaparātu apk
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Izvēlēties jauniem lidaparātiem apkopju noklusējuma starplaiku, ja transportlīdzeklim tas nav noteikts
STR_CONFIG_SETTING_SERVINT_SHIPS :Kuģu apkopju noklusējuma starplaiks: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Izvēlēties jauniem kuģiem apkopju noklusējuma starplaiku, ja transportlīdzeklim tas nav noteikts
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}Dien{P 0 a as u}/Minūt{P 0 e es es}/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :izslēgts

@ -1900,7 +1900,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Lėktuvų techn
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Numatytoji naujo lėktuvo techninės apžiūros intervalo reikšmė
STR_CONFIG_SETTING_SERVINT_SHIPS :Laivų techninės apžiūros intervalas: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Numatytoji naujo laivo techninės apžiūros intervalo reikšmė
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}dien{P a os ų}/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Išjungta

@ -1831,7 +1831,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Standard Revisi
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Definéiert de Standardrevisiounsintervall fir nei Fligeren, wann keen expliziten Revisiounsintervall uginn ass
STR_CONFIG_SETTING_SERVINT_SHIPS :Standard Revisiounsintervall fir Schëffer: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Definéiert de Standardrevisiounsintervall fir nei Schëffer, wann keen expliziten Revisiounsintervall uginn ass
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}D{P 0 ag eeg}/Minutt{P 0 "" en}%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Ausgeschalt

@ -1020,6 +1020,8 @@ STR_CONFIG_SETTING_SOUND_VEHICLE :Возила: {
STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :#ОПкодови пред скрипти се суспендирани: {STRING}
###length 3
###setting-zero-is-special

@ -1437,7 +1437,8 @@ STR_CONFIG_SETTING_SERVINT_ISPERCENT_HELPTEXT :Pilih sama ada
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Tetapkan selang masa servis untuk pesawat baru kepada tetapan asal jika tiada selang masa servis yang jelas ditetapkan untuk pesawat tersebut
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Tetapkan selang masa servis untuk kapal baru kepada tetapan asal jika tiada selang masa servis yang jelas ditetapkan untuk kapal tersebut
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}hari{P 0 "" s}/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Dilumpuhkan

@ -665,6 +665,8 @@ STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Ippermetti l-uz
###length 3
###setting-zero-is-special

@ -952,6 +952,8 @@ STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :सर्व
###length 3
###setting-zero-is-special

@ -1834,7 +1834,11 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Standard vedlik
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Angi standard vedlikeholdsintervall for nye fly, hvis det ikke er angitt noe vedlikeholdsintervall for flyet
STR_CONFIG_SETTING_SERVINT_SHIPS :Standard vedlikeholdsintervall for skip: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Angi standard vedlikeholdsintervall for nye skip, hvis det ikke er angitt noe vedlikeholdsintervall for fartøyet
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}Dag{P 0 "" er}/Minutt{P 0 "" er}/%
###length 3
STR_CONFIG_SETTING_SERVINT_VALUE_DAYS :{COMMA}{NBSP}Dag{P 0 "" er}
STR_CONFIG_SETTING_SERVINT_VALUE_MINUTES :{COMMA}{NBSP}Minutt{P 0 "" er}
STR_CONFIG_SETTING_SERVINT_VALUE_PERCENTAGE :{COMMA}{NBSP}%
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Deaktivert

@ -1512,7 +1512,8 @@ STR_CONFIG_SETTING_SERVINT_TRAINS :Standard vedlik
STR_CONFIG_SETTING_SERVINT_ROAD_VEHICLES :Standard vedlikehaldsintervall for veg-køyrety: {STRING}
STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Standard vedlikehaldsintervall for fly: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS :Standard vedlikehaldsintervall for skip: {STRING}
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA} dag{P 0 "" s}/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Deaktivert

@ -1418,6 +1418,8 @@ STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :#opcodes before
STR_CONFIG_SETTING_SERVINT_ISPERCENT :درصد زمان برای تعمیر/نگهداری به نسبت زمان کار: {STRING}
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_NOSERVICE :غیرفعال کردن تعمیر/بازنگری کلیه وسایل نقلیه وقتی که طبق تنظیمات بازی خودرو ها خراب نشوند : {STRING}

@ -2212,7 +2212,11 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Domyślny inter
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Ustaw domyślny okres serwisowania dla nowych maszyn latających, jeśli takowy nie istnieje dla określonego pojazdu
STR_CONFIG_SETTING_SERVINT_SHIPS :Domyślny interwał serwisowania statków: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Ustaw domyślny okres serwisowania dla nowych statków, jeśli takowy nie istnieje dla określonego pojazdu
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}D{P zień ni ni}/Minut{P a y ""}/%
###length 3
STR_CONFIG_SETTING_SERVINT_VALUE_DAYS :{COMMA}{NBSP}d{P 0 zień ni ni}
STR_CONFIG_SETTING_SERVINT_VALUE_MINUTES :{COMMA}{NBSP}minut{P 0 a y ""}
STR_CONFIG_SETTING_SERVINT_VALUE_PERCENTAGE :{COMMA}{NBSP}%
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Wyłączone

@ -1833,7 +1833,11 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Intervalo de ma
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Definir o intervalo de manutenção por omissão para novas aeronaves, se não for configurado um intervalo de manutenção explícito para o veículo
STR_CONFIG_SETTING_SERVINT_SHIPS :Intervalo de serviço para navios por omissão: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Definir o intervalo de manutenção por omissão para novos navios, se não for configurado um intervalo de manutenção explícito para o veículo
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}Dia{P 0 "" s}/Minuto{P 0 "" s}/%
###length 3
STR_CONFIG_SETTING_SERVINT_VALUE_DAYS :{COMMA}{NBSP}Dia{P 0 "" s}
STR_CONFIG_SETTING_SERVINT_VALUE_MINUTES :{COMMA}{NBSP}Minuto{P 0 "" s}
STR_CONFIG_SETTING_SERVINT_VALUE_PERCENTAGE :{COMMA}{NBSP}%
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Desativado

@ -1829,7 +1829,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Intervalul de
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Alege perioada de întreținere implicită pentru noi aeronave, dacă nu există un interval de întreținere stabilit pentru aeronave
STR_CONFIG_SETTING_SERVINT_SHIPS :Intervalul de întreținere implicit al navelor: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Alege perioada de întreținere implicită pentru noi nave, dacă nu există un interval de întreținere stabilit pentru nave
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}{P 0 zi zile "de zile"}/{P 0 minut minute minute}/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Dezactivat

@ -1983,7 +1983,11 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Интерва
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Настройка периодичности технического обслуживания для новых воздушных судов
STR_CONFIG_SETTING_SERVINT_SHIPS :Интервал ТО по умолчанию для судов: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Настройка периодичности технического обслуживания для новых судов
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}д{P ень ня ней}/минут{P а ы ""}/%
###length 3
STR_CONFIG_SETTING_SERVINT_VALUE_DAYS :{COMMA}{NBSP}д{P 0 ень ня ней}
STR_CONFIG_SETTING_SERVINT_VALUE_MINUTES :{COMMA}{NBSP}минут{P 0 а ы ""}
STR_CONFIG_SETTING_SERVINT_VALUE_PERCENTAGE :{COMMA}{NBSP}%
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :отключен
@ -2375,7 +2379,7 @@ STR_QUIT_NO :{BLACK}Нет
# Abandon game
STR_ABANDON_GAME_CAPTION :{WHITE}В главное меню
STR_ABANDON_GAME_QUERY :{YELLOW}Вы действительно хотите выйти из игры?
STR_ABANDON_GAME_QUERY :{YELLOW}Вы уверены, что хотите выйти из игры?
STR_ABANDON_SCENARIO_QUERY :{YELLOW}Вы уверены, что хотите выйти из этого сценария?
# Help window
@ -3127,7 +3131,7 @@ STR_AIRPORT_CLASS_LARGE.nom :Средний
STR_AIRPORT_CLASS_HUB :Большие аэропорты
STR_AIRPORT_CLASS_HUB.nom :Большой
STR_AIRPORT_CLASS_HELIPORTS :Вертолётные площадки
STR_AIRPORT_CLASS_HELIPORTS.nom :Вертолётный
STR_AIRPORT_CLASS_HELIPORTS.nom :Вертолётная
STR_STATION_BUILD_NOISE :{BLACK}Производимый шум: {GOLD}{COMMA}

@ -1988,7 +1988,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Podrazumevani s
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Postavi podrazumevani servisni interval za nove letelice, ukoliko nema zadatog servisnog intervala za vozilo
STR_CONFIG_SETTING_SERVINT_SHIPS :Podrazumevani servisni interval za brodove: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Postavi podrazumevani servisni interval za nove brodove, ukoliko nema zadatog servisnog intervala za vozilo
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA} dan{P 0 "" a a}/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Onemogućeno

@ -1832,7 +1832,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :飞机默认保
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :如果没有为飞机指定保养周期,设定飞机的默认保养周期
STR_CONFIG_SETTING_SERVINT_SHIPS :船只默认保养周期:{STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :如果没有为船只设定保养周期,按照这里设定的默认保养周期执行
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}日 / 分钟 / %
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :关闭

@ -1900,7 +1900,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Predvolený int
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Nastav predvolený interval pre nové lietadlá. Ak nie je nastavený podrobnejší interval.
STR_CONFIG_SETTING_SERVINT_SHIPS :Predvolený interval servisu pre lode: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Nastav predvolený interval pre nové lode. Ak nie je nastavený podrobnejší interval.
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}D{P eň ni ní}/min{P utu uty út}/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :vypnuté

@ -1719,7 +1719,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Privzeto servis
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Nastavitev privzetega obdobja servisiranja za letala, razen če ni izjemno nastavljeno obdobje za posamično letalo.
STR_CONFIG_SETTING_SERVINT_SHIPS :Privzeto servisno obdobje ladij: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Nastavitev privzetega obdobja servisiranja za ladje, razen če ni izjemno nastavljeno obdobje za posamično ladjo.
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA} d{P 0 an neva dni dni}/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Onemogočeno

@ -1833,7 +1833,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Intervalo de ma
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Fija el intervalo de mantenimiento por defecto para aeronaves nuevas, que se empleará si no se define un intervalo de forma explícita para ése vehículo
STR_CONFIG_SETTING_SERVINT_SHIPS :Intervalo de mantenimiento por defecto para barcos: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Fija el intervalo de mantenimiento por defecto para barcos nuevos, que se empleará si no se define un intervalo de forma explícita para ése vehículo
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}Día{P 0 "" s}/Minuto{P 0 "" s}/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Deshabilitado

@ -1791,7 +1791,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Intervalo de ma
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Intervalo de mantenimiento por defecto para nuevas aeronaves, en caso de no definirse otro explícitamente
STR_CONFIG_SETTING_SERVINT_SHIPS :Intervalo de mantenimiento por defecto para barcos: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Intervalo de mantenimiento por defecto para nuevos barcos, en caso de no definirse otro explícitamente
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}día{P 0 "" s} o %
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Deshabilitado

@ -1832,7 +1832,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Normalt service
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Välj vilket serviceintervall som normalt sett ska användas för nya flygplan, om inget annat serviceintervall uttryckligen anges
STR_CONFIG_SETTING_SERVINT_SHIPS :Normalt serviceintervall för skepp: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Välj vilket serviceintervall som normalt sett ska användas för nya skepp, om inget annat serviceintervall uttryckligen anges
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}Dag{P 0 "" ar}/Minut{P 0 "" er}/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Inaktiverat
@ -3393,8 +3394,11 @@ STR_GENERATION_ABORT_MESSAGE :{YELLOW}Vill du
STR_GENERATION_PROGRESS :{WHITE}{NUM}% färdigt
STR_GENERATION_PROGRESS_NUM :{BLACK}{NUM} / {NUM}
STR_GENERATION_WORLD_GENERATION :{BLACK}Generera värld
STR_GENERATION_LANDSCAPE_GENERATION :{BLACK}Landskapsgenerering
STR_GENERATION_RIVER_GENERATION :{BLACK}Generera Flod
STR_GENERATION_CLEARING_TILES :{BLACK}Svår och stenig markgenerering
STR_GENERATION_TOWN_GENERATION :{BLACK}Stadsgenerering
STR_GENERATION_INDUSTRY_GENERATION :{BLACK}Industrigenerering
STR_GENERATION_OBJECT_GENERATION :{BLACK}Generera objekt
STR_GENERATION_TREE_GENERATION :{BLACK}Generera Träd
STR_GENERATION_SETTINGUP_GAME :{BLACK}Ställer in spel
@ -5286,6 +5290,10 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Ändra d
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Inga fordon är tillgängliga än
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Starta ett nytt spel efter {DATE_SHORT} eller använd en NewGRF som erbjuder tidiga fordon
STR_ERROR_NO_TOWN_ROADTYPES_AVAILABLE_AT_ALL :{WHITE}Inga vägtyper som kan byggas av städer finns tillgängliga
STR_ERROR_NO_TOWN_ROADTYPES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Ändra din NewGRF-konfiguration
STR_ERROR_NO_TOWN_ROADTYPES_AVAILABLE_YET :{WHITE}Inga vägtyper som kan byggas av städer finns tillgängliga ännu
STR_ERROR_NO_TOWN_ROADTYPES_AVAILABLE_YET_EXPLANATION :{WHITE}Starta ett nytt spel efter {DATE_SHORT} eller använd en NewGRF som tidigt erbjuder vägtyper som städer kan bygga
# Specific vehicle errors
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Kan inte tillåta tåg att passera signal under fara...

@ -1690,7 +1690,8 @@ STR_CONFIG_SETTING_SERVINT_ROAD_VEHICLES :சாலை
STR_CONFIG_SETTING_SERVINT_AIRCRAFT :விமாங்களின் பழுதுபார்த்தல் இடைவேளி: {STRING}
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :புதிய விமானங்களுக்கான இயல்புநிலை சேவை இடைவெளியை அமைக்கவும், வாகனத்திற்கு வெளிப்படையான சேவை இடைவெளி எதுவும் அமைக்கப்படவில்லை என்றால்
STR_CONFIG_SETTING_SERVINT_SHIPS :கப்பல்களின் பழுதுபார்த்தல் இடைவேளி: {STRING}
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}நா{P 0 "ள்" ட்கள்}/நிமிட{P 0 "ம்" ங்கள்}/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :செயலிழக்க செய்யப்பட்டது

@ -1575,7 +1575,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :ตั้งค
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :ตั้งค่าแรกเริ่มสำหรับการเข้าซ่อมบำรุงสำหรับอากาศยาน เป็นหน่วยวัน หรือหากเลือกการตั้งค่าโดยคิดจากเปอร์เซนต์ของประสิทธิภาพ จะเปลี่ยนไปใช้่หน่วยเปอร์เซนต์แทน
STR_CONFIG_SETTING_SERVINT_SHIPS :ตั้งค่าแรกเริ่มสำหรับการเข้าซ่อมบำรุงของพาหนะทางน้ำ: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :ตั้งค่าแรกเริ่มสำหรับการเข้าซ่อมบำรุงสำหรับพาหนะทางน้ำ เป็นหน่วยวัน หรือหากเลือกการตั้งค่าโดยคิดจากเปอร์เซนต์ของประสิทธิ์ภาพ จะเปลี่ยนไปใช้่หน่วยเปอร์เซนต์แทน
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA} วัน/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :ไม่ตั้ง

@ -1759,7 +1759,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :預設的飛機
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :設定預設的飛機維護作業時距。所有沒有指定維護作業時距的飛機都會使用這個預設值。
STR_CONFIG_SETTING_SERVINT_SHIPS :預設的船舶維護作業時距:{STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :設定預設的船舶維護作業時距。所有沒有指定維護作業時距的船舶都會使用這個預設值。
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}日/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :停用

@ -1833,7 +1833,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Hava araçları
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Yeni hava araçları için varsayılan bakım aralığını ayarlar, eğer araç için özel bir bakım aralığı belirtilmemişse geçerlidir
STR_CONFIG_SETTING_SERVINT_SHIPS :Gemiler için varsayılan bakım aralığı: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Yeni gemiler için varsayılan bakım aralığını ayarlar, eğer araç için özel bir bakım aralığı belirtilmemişse geçerlidir
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}%gün/dakika
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Etkisiz

@ -1969,7 +1969,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Інтерва
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Налаштування інтервалу техогляду для нового повітряного транспорту (встановлений інтервал може бути змінено окремо для кожного транспортного засобу в його інтерфейсі).
STR_CONFIG_SETTING_SERVINT_SHIPS :Інтервал техогляду водного транспорту: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Налаштування інтервалу техогляду для нового водного транспорту (встановлений інтервал може бути змінено окремо для кожного транспортного засобу в його інтерфейсі).
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}д{P 0 "ень" "ні" "нів"}/хвилин{P 0 а и ""}/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Відключено

@ -1329,6 +1329,8 @@ STR_CONFIG_SETTING_SCRIPT_MAX_OPCODES :اسکرپٹس
STR_CONFIG_SETTING_SERVINT_ISPERCENT :مرمتی وقفے فیصد میں ہیں: {STRING}
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_NOSERVICE :گاڑیوں کی خرابی غیر فعال ہونے کی صورت میں مرمت بھی غیر فعال کر دیں: {STRING}

@ -1832,7 +1832,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Tần suất b
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Thiết lập khoảng thời gian bảo trì tùy chọn đối với các máy bay, nếu phương tiện không có riêng thời gian bảo trì này
STR_CONFIG_SETTING_SERVINT_SHIPS :Tần suất bảo trì mặc định đối với tàu thủy: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Thiết lập khoảng thời gian bảo trì tùy chọn đối với các tàu thủy, nếu phương tiện không có riêng thời gian bảo trì này
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}ngày/phút/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :tắt
@ -2223,7 +2224,7 @@ STR_QUIT_YES :{BLACK}Đồng
STR_QUIT_NO :{BLACK}Không đồng ý
# Abandon game
STR_ABANDON_GAME_CAPTION :{WHITE}Bỏ Màn Chơi
STR_ABANDON_GAME_CAPTION :{WHITE}Loại bỏ Game
STR_ABANDON_GAME_QUERY :{YELLOW}Bạn có chắc chắn muốn bỏ màn chơi này không?
STR_ABANDON_SCENARIO_QUERY :{YELLOW}Bạn có chắc bạn muốn bỏ màn chơi kịch bản này?
@ -3393,8 +3394,11 @@ STR_GENERATION_ABORT_MESSAGE :{YELLOW}Bạn c
STR_GENERATION_PROGRESS :{WHITE}{NUM}% hoàn thành
STR_GENERATION_PROGRESS_NUM :{BLACK}{NUM} / {NUM}
STR_GENERATION_WORLD_GENERATION :{BLACK}Tạo màn
STR_GENERATION_LANDSCAPE_GENERATION :{BLACK}Khởi tạo cảnh quan
STR_GENERATION_RIVER_GENERATION :{BLACK}Khởi tạo sông suối
STR_GENERATION_CLEARING_TILES :{BLACK}Sinh đá và sự gồ ghề
STR_GENERATION_TOWN_GENERATION :{BLACK}Khởi tạo thị trấn
STR_GENERATION_INDUSTRY_GENERATION :{BLACK}Khởi tạo nhà máy
STR_GENERATION_OBJECT_GENERATION :{BLACK}Sinh đối tượng cứng
STR_GENERATION_TREE_GENERATION :{BLACK}Trồng cây
STR_GENERATION_SETTINGUP_GAME :{BLACK}Thiết lập ván chơi
@ -3488,6 +3492,9 @@ 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)
# Sprite aligner window
STR_SPRITE_ALIGNER_CAPTION_NO_ACTION :{WHITE}Căn chỉnh hình sprite: ({STRING}:{NUM})
STR_SPRITE_ALIGNER_CAPTION_ACTIONA :{WHITE}Căn chỉnh hình sprite: Hành động 0xA, {COMMA} ({STRING}:{NUM})
STR_SPRITE_ALIGNER_CAPTION_ACTION5 :{WHITE}Căn chỉnh hình sprite: Hành động 0x5, loại {HEX}, {COMMA} ({STRING}:{NUM})
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_GOTO_BUTTON :{BLACK}Đi tới sprite
@ -3496,6 +3503,7 @@ STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Sprite t
STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Xử lý sprite bình thường ở trước, bỏ qua các loại pseudo/recolour/font sprite căn theo điểm bắt đầu
STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Theo những thông tin của sprite đã chọn. Thì việc căn chỉnh khi vẽ đối với sprite này sẽ bị bỏ qua
STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Di chuyển sprite xung quanh, thay đổi X và Y offsets. Ctrl+Click để di chuyển sprite tám đơn vị một lúc
STR_SPRITE_ALIGNER_SPRITE :{STRING}:{NUM}
###length 2
STR_SPRITE_ALIGNER_CENTRE_OFFSET :{BLACK}Toạ độ về trung tâm
@ -4898,7 +4906,9 @@ STR_MESSAGE_ESTIMATED_INCOME :{WHITE}Thu nh
STR_ERROR_SAVE_STILL_IN_PROGRESS :{WHITE}Đang lưu vào đĩa,{}hãy chờ cho đến khi hoàn thành!
STR_ERROR_AUTOSAVE_FAILED :{WHITE}Tự lưu gặp lỗi
STR_ERROR_UNABLE_TO_READ_DRIVE :{BLACK}Không đọc được đĩa
STR_ERROR_GAME_SAVE_FAILED :{WHITE}Lưu game thất bại...
STR_ERROR_UNABLE_TO_DELETE_FILE :{WHITE}Không thể xoá file
STR_ERROR_GAME_LOAD_FAILED :{WHITE}Khởi động game thất bại...
STR_GAME_SAVELOAD_ERROR_BROKEN_INTERNAL_ERROR :Lỗi kỹ thuật: {STRING}
STR_GAME_SAVELOAD_ERROR_BROKEN_SAVEGAME :Bản lưu ván chơi bị hỏng - {STRING}
STR_GAME_SAVELOAD_ERROR_TOO_NEW_SAVEGAME :Bản lưu ván chơi dành cho phiên bản mới hơn
@ -5280,6 +5290,10 @@ STR_ERROR_NO_VEHICLES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Thay đ
STR_ERROR_NO_VEHICLES_AVAILABLE_YET :{WHITE}Chưa có phương tiện nào có sẵn
STR_ERROR_NO_VEHICLES_AVAILABLE_YET_EXPLANATION :{WHITE}Bắt đầu một màn chơi mới sau {DATE_SHORT} hoặc sử dụng một NewGRF cung cấp sớm phương tiện
STR_ERROR_NO_TOWN_ROADTYPES_AVAILABLE_AT_ALL :{WHITE}Không có sẵn loại đường có thể xây dựng được trong thị trấn
STR_ERROR_NO_TOWN_ROADTYPES_AVAILABLE_AT_ALL_EXPLANATION :{WHITE}Thay đổi cấu hình NewGRF của bạn
STR_ERROR_NO_TOWN_ROADTYPES_AVAILABLE_YET :{WHITE}Hiện tại chưa có các loại đường thị trấn
STR_ERROR_NO_TOWN_ROADTYPES_AVAILABLE_YET_EXPLANATION :{WHITE}Hãy bắt đầu trò chơi mới sau {DATE_SHORT} hoặc sử dụng NewGRF khác có hỗ trợ xây dựng sớm các loại đường đô thị
# Specific vehicle errors
STR_ERROR_CAN_T_MAKE_TRAIN_PASS_SIGNAL :{WHITE}Không thể để tàu hoả qua tín hiệu đèn khi nguy hiểm...
@ -5831,6 +5845,7 @@ STR_JUST_DATE_ISO :{DATE_ISO}
STR_JUST_STRING :{STRING}
STR_JUST_STRING1 :{STRING}
STR_JUST_STRING2 :{STRING}
STR_JUST_STRING4 :{STRING}
STR_JUST_STRING_STRING :{STRING}{STRING}
STR_JUST_RAW_STRING :{STRING}
STR_JUST_BIG_RAW_STRING :{BIG_FONT}{STRING}

@ -1832,7 +1832,8 @@ STR_CONFIG_SETTING_SERVINT_AIRCRAFT :Ystod gwasanaet
STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT :Gosod yr ystod gwasanaethu rhagosodedig ar gyfer awyrennau newydd, os na ddynodir ystod gwasanaethu penodol ar gyfer y cerbyd
STR_CONFIG_SETTING_SERVINT_SHIPS :Ystod gwasanaethu rhagosodedig ar gyfer llongau: {STRING}
STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT :Gosod yr ystod gwasanaethu rhagosodedig ar gyfer llongau newydd, os na ddynodir ystod gwasanaethu penodol ar gyfer y cerbyd
STR_CONFIG_SETTING_SERVINT_VALUE :{COMMA}{NBSP}Diwrnod{P 0 "" ""}/Munud{P 0 "" ""}/%
###length 3
###setting-zero-is-special
STR_CONFIG_SETTING_SERVINT_DISABLED :Analluogwyd

@ -70,12 +70,12 @@ private:
if (!this->companies.NeedRebuild()) return;
this->companies.clear();
this->companies.reserve(Company::GetNumItems());
for (const Company *c : Company::Iterate()) {
this->companies.push_back(c);
}
this->companies.shrink_to_fit();
this->companies.RebuildDone();
}

@ -335,8 +335,8 @@ class NetworkContentListWindow : public Window, ContentCallback {
static Listing last_sorting; ///< The last sorting setting.
static Filtering last_filtering; ///< The last filtering setting.
static GUIContentList::SortFunction * const sorter_funcs[]; ///< Sorter functions
static GUIContentList::FilterFunction * const filter_funcs[]; ///< Filter functions.
static const std::initializer_list<GUIContentList::SortFunction * const> sorter_funcs; ///< Sorter functions
static const std::initializer_list<GUIContentList::FilterFunction * const> filter_funcs; ///< Filter functions.
GUIContentList content; ///< List with content
bool auto_select; ///< Automatically select all content when the meta-data becomes available
ContentListFilterData filter_data; ///< Filter for content list
@ -425,7 +425,6 @@ class NetworkContentListWindow : public Window, ContentCallback {
this->SetWidgetDisabledState(WID_NCL_SEARCH_EXTERNAL, this->auto_select && all_available);
this->FilterContentList();
this->content.shrink_to_fit();
this->content.RebuildDone();
this->SortContentList();
@ -1014,13 +1013,13 @@ public:
Listing NetworkContentListWindow::last_sorting = {false, 1};
Filtering NetworkContentListWindow::last_filtering = {false, 0};
NetworkContentListWindow::GUIContentList::SortFunction * const NetworkContentListWindow::sorter_funcs[] = {
const std::initializer_list<NetworkContentListWindow::GUIContentList::SortFunction * const> NetworkContentListWindow::sorter_funcs = {
&StateSorter,
&TypeSorter,
&NameSorter,
};
NetworkContentListWindow::GUIContentList::FilterFunction * const NetworkContentListWindow::filter_funcs[] = {
const std::initializer_list<NetworkContentListWindow::GUIContentList::FilterFunction * const> NetworkContentListWindow::filter_funcs = {
&TagNameFilter,
&TypeOrSelectedFilter,
};

@ -186,8 +186,8 @@ protected:
static Listing last_sorting;
/* Constants for sorting servers */
static GUIGameServerList::SortFunction * const sorter_funcs[];
static GUIGameServerList::FilterFunction * const filter_funcs[];
static const std::initializer_list<GUIGameServerList::SortFunction * const> sorter_funcs;
static const std::initializer_list<GUIGameServerList::FilterFunction * const> filter_funcs;
NetworkGameList *server; ///< Selected server.
NetworkGameList *last_joined; ///< The last joined server.
@ -246,7 +246,6 @@ protected:
this->servers.SetFilterState(false);
}
this->servers.shrink_to_fit();
this->servers.RebuildDone();
this->vscroll->SetCount(this->servers.size());
@ -467,8 +466,8 @@ public:
this->requery_timer.SetInterval(NETWORK_LIST_REFRESH_DELAY * 1000);
this->servers.SetListing(this->last_sorting);
this->servers.SetSortFuncs(this->sorter_funcs);
this->servers.SetFilterFuncs(this->filter_funcs);
this->servers.SetSortFuncs(NetworkGameWindow::sorter_funcs);
this->servers.SetFilterFuncs(NetworkGameWindow::filter_funcs);
this->servers.ForceRebuild();
}
@ -871,7 +870,7 @@ public:
};
Listing NetworkGameWindow::last_sorting = {false, 5};
GUIGameServerList::SortFunction * const NetworkGameWindow::sorter_funcs[] = {
const std::initializer_list<GUIGameServerList::SortFunction * const> NetworkGameWindow::sorter_funcs = {
&NGameNameSorter,
&NGameClientSorter,
&NGameMapSizeSorter,
@ -880,7 +879,7 @@ GUIGameServerList::SortFunction * const NetworkGameWindow::sorter_funcs[] = {
&NGameAllowedSorter
};
GUIGameServerList::FilterFunction * const NetworkGameWindow::filter_funcs[] = {
const std::initializer_list<GUIGameServerList::FilterFunction * const> NetworkGameWindow::filter_funcs = {
&NGameSearchFilter
};

@ -309,25 +309,15 @@ bool Convert8bitBooleanCallback(const struct GRFFile *grffile, uint16_t cbid, ui
*/
template <size_t Tcnt>
struct GRFFilePropsBase {
GRFFilePropsBase() : local_id(0), grffile(nullptr)
{
/* The lack of some compilers to provide default constructors complying to the specs
* requires us to zero the stuff ourself. */
memset(spritegroup, 0, sizeof(spritegroup));
}
uint16_t local_id; ///< id defined by the grf file for this entity
const struct GRFFile *grffile; ///< grf file that introduced this entity
const struct SpriteGroup *spritegroup[Tcnt]; ///< pointer to the different sprites of the entity
uint16_t local_id = 0; ///< id defined by the grf file for this entity
const struct GRFFile *grffile = nullptr; ///< grf file that introduced this entity
std::array<const struct SpriteGroup *, Tcnt> spritegroup{}; ///< pointers to the different sprites of the entity
};
/** Data related to the handling of grf files. */
struct GRFFileProps : GRFFilePropsBase<1> {
/** Set all default data constructor for the props. */
GRFFileProps(uint16_t subst_id = 0) :
GRFFilePropsBase<1>(), subst_id(subst_id), override(subst_id)
{
}
constexpr GRFFileProps(uint16_t subst_id = 0) : subst_id(subst_id), override(subst_id) {}
uint16_t subst_id;
uint16_t override; ///< id of the entity been replaced by

@ -62,7 +62,7 @@ const SpriteGroup *GetWagonOverrideSpriteSet(EngineID engine, CargoID cargo, Eng
void SetCustomEngineSprites(EngineID engine, uint8_t cargo, const SpriteGroup *group)
{
Engine *e = Engine::Get(engine);
assert(cargo < lengthof(e->grf_prop.spritegroup));
assert(cargo < std::size(e->grf_prop.spritegroup));
if (e->grf_prop.spritegroup[cargo] != nullptr) {
grfmsg(6, "SetCustomEngineSprites: engine %d cargo %d already has group -- replacing", engine, cargo);
@ -1234,7 +1234,7 @@ VehicleResolverObject::VehicleResolverObject(EngineID engine_type, const Vehicle
if (this->root_spritegroup == nullptr) {
const Engine *e = Engine::Get(engine_type);
CargoID cargo = v != nullptr ? v->cargo_type : SpriteGroupCargo::SG_PURCHASE;
assert(cargo < lengthof(e->grf_prop.spritegroup));
assert(cargo < std::size(e->grf_prop.spritegroup));
this->root_spritegroup = e->grf_prop.spritegroup[cargo] != nullptr ? e->grf_prop.spritegroup[cargo] : e->grf_prop.spritegroup[SpriteGroupCargo::SG_DEFAULT];
}
}
@ -1688,7 +1688,7 @@ void DumpVehicleSpriteGroup(const Vehicle *v, SpriteGroupDumper &dumper)
if (root_spritegroup == nullptr) {
CargoID cargo = v->cargo_type;
assert(cargo < lengthof(e->grf_prop.spritegroup));
assert(cargo < std::size(e->grf_prop.spritegroup));
if (e->grf_prop.spritegroup[cargo] != nullptr) {
root_spritegroup = e->grf_prop.spritegroup[cargo];
seprintf(buffer, lastof(buffer), "Cargo: %u", cargo);

@ -625,8 +625,8 @@ struct NewGRFWindow : public Window, NewGRFScanCallback {
static Listing last_sorting; ///< Default sorting of #GUIGRFConfigList.
static Filtering last_filtering; ///< Default filtering of #GUIGRFConfigList.
static GUIGRFConfigList::SortFunction * const sorter_funcs[]; ///< Sort functions of the #GUIGRFConfigList.
static GUIGRFConfigList::FilterFunction * const filter_funcs[]; ///< Filter functions of the #GUIGRFConfigList.
static const std::initializer_list<GUIGRFConfigList::SortFunction * const> sorter_funcs; ///< Sort functions of the #GUIGRFConfigList.
static const std::initializer_list<GUIGRFConfigList::FilterFunction * const> filter_funcs; ///< Filter functions of the #GUIGRFConfigList.
GUIGRFConfigList avails; ///< Available (non-active) grfs.
const GRFConfig *avail_sel; ///< Currently selected available grf. \c nullptr is none is selected.
@ -1523,7 +1523,6 @@ private:
}
this->avails.Filter(this->string_filter);
this->avails.shrink_to_fit();
this->avails.RebuildDone();
this->avails.Sort();
@ -1610,11 +1609,11 @@ void ShowMissingContentWindow(const GRFConfig *list)
Listing NewGRFWindow::last_sorting = {false, 0};
Filtering NewGRFWindow::last_filtering = {false, 0};
NewGRFWindow::GUIGRFConfigList::SortFunction * const NewGRFWindow::sorter_funcs[] = {
const std::initializer_list<NewGRFWindow::GUIGRFConfigList::SortFunction * const> NewGRFWindow::sorter_funcs = {
&NameSorter,
};
NewGRFWindow::GUIGRFConfigList::FilterFunction * const NewGRFWindow::filter_funcs[] = {
const std::initializer_list<NewGRFWindow::GUIGRFConfigList::FilterFunction * const> NewGRFWindow::filter_funcs = {
&TagNameFilter,
};

@ -532,7 +532,7 @@ uint32_t Waypoint::GetNewGRFVariable(const ResolverObject &object, uint16_t vari
/* virtual */ const SpriteGroup *StationResolverObject::ResolveReal(const RealSpriteGroup *group) const
{
if (this->station_scope.st == nullptr || this->station_scope.statspec->cls_id == STAT_CLASS_WAYP) {
if (this->station_scope.st == nullptr || !Station::IsExpected(this->station_scope.st)) {
return group->loading[0];
}

@ -54,8 +54,8 @@ class BuildObjectWindow : public Window {
static Listing last_sorting; ///< Default sorting of #GUIObjectClassList.
static Filtering last_filtering; ///< Default filtering of #GUIObjectClassList.
static GUIObjectClassList::SortFunction * const sorter_funcs[]; ///< Sort functions of the #GUIObjectClassList.
static GUIObjectClassList::FilterFunction * const filter_funcs[]; ///< Filter functions of the #GUIObjectClassList.
static const std::initializer_list<GUIObjectClassList::SortFunction * const> sorter_funcs; ///< Sort functions of the #GUIObjectClassList.
static const std::initializer_list<GUIObjectClassList::FilterFunction * const> filter_funcs; ///< Filter functions of the #GUIObjectClassList.
GUIObjectClassList object_classes; ///< Available object classes.
StringFilter string_filter; ///< Filter for available objects.
QueryString filter_editbox; ///< Filter editbox.
@ -142,6 +142,7 @@ public:
if (!this->object_classes.NeedRebuild()) return;
this->object_classes.clear();
this->object_classes.reserve(ObjectClass::GetClassCount());
for (const auto &cls : ObjectClass::Classes()) {
if (cls.GetUISpecCount() == 0) continue; // Is this needed here?
@ -149,7 +150,6 @@ public:
}
this->object_classes.Filter(this->string_filter);
this->object_classes.shrink_to_fit();
this->object_classes.RebuildDone();
this->object_classes.Sort();
@ -697,11 +697,11 @@ HotkeyList BuildObjectWindow::hotkeys("buildobject", buildobject_hotkeys, BuildO
Listing BuildObjectWindow::last_sorting = { false, 0 };
Filtering BuildObjectWindow::last_filtering = { false, 0 };
BuildObjectWindow::GUIObjectClassList::SortFunction * const BuildObjectWindow::sorter_funcs[] = {
const std::initializer_list<BuildObjectWindow::GUIObjectClassList::SortFunction * const> BuildObjectWindow::sorter_funcs = {
&ObjectClassIDSorter,
};
BuildObjectWindow::GUIObjectClassList::FilterFunction * const BuildObjectWindow::filter_funcs[] = {
const std::initializer_list<BuildObjectWindow::GUIObjectClassList::FilterFunction * const> BuildObjectWindow::filter_funcs = {
&TagNameFilter,
};

@ -1163,8 +1163,8 @@ private:
static Listing last_sorting; ///< Default sorting of #GUIStationClassList.
static Filtering last_filtering; ///< Default filtering of #GUIStationClassList.
static GUIStationClassList::SortFunction * const sorter_funcs[]; ///< Sort functions of the #GUIStationClassList.
static GUIStationClassList::FilterFunction * const filter_funcs[]; ///< Filter functions of the #GUIStationClassList.
static const std::initializer_list<GUIStationClassList::SortFunction * const> sorter_funcs; ///< Sort functions of the #GUIStationClassList.
static const std::initializer_list<GUIStationClassList::FilterFunction * const> filter_funcs; ///< Filter functions of the #GUIStationClassList.
GUIStationClassList station_classes; ///< Available station classes.
StringFilter string_filter; ///< Filter for available station classes.
QueryString filter_editbox; ///< Filter editbox.
@ -1326,6 +1326,7 @@ public:
if (!this->station_classes.NeedRebuild()) return;
this->station_classes.clear();
this->station_classes.reserve(StationClass::GetClassCount());
for (const auto &cls : StationClass::Classes()) {
/* Skip waypoints. */
@ -1336,7 +1337,6 @@ public:
if (_railstation.newstations) {
this->station_classes.Filter(this->string_filter);
this->station_classes.shrink_to_fit();
this->station_classes.RebuildDone();
this->station_classes.Sort();
@ -1788,11 +1788,11 @@ HotkeyList BuildRailStationWindow::hotkeys("buildrailstation", buildrailstation_
Listing BuildRailStationWindow::last_sorting = { false, 0 };
Filtering BuildRailStationWindow::last_filtering = { false, 0 };
BuildRailStationWindow::GUIStationClassList::SortFunction * const BuildRailStationWindow::sorter_funcs[] = {
const std::initializer_list<BuildRailStationWindow::GUIStationClassList::SortFunction * const> BuildRailStationWindow::sorter_funcs = {
&StationClassIDSorter,
};
BuildRailStationWindow::GUIStationClassList::FilterFunction * const BuildRailStationWindow::filter_funcs[] = {
const std::initializer_list<BuildRailStationWindow::GUIStationClassList::FilterFunction * const> BuildRailStationWindow::filter_funcs = {
&TagNameFilter,
};

@ -1239,8 +1239,8 @@ private:
static Listing last_sorting; ///< Default sorting of #GUIRoadStopClassList.
static Filtering last_filtering; ///< Default filtering of #GUIRoadStopClassList.
static GUIRoadStopClassList::SortFunction * const sorter_funcs[]; ///< Sort functions of the #GUIRoadStopClassList.
static GUIRoadStopClassList::FilterFunction * const filter_funcs[]; ///< Filter functions of the #GUIRoadStopClassList.
static const std::initializer_list<GUIRoadStopClassList::SortFunction * const> sorter_funcs; ///< Sort functions of the #GUIRoadStopClassList.
static const std::initializer_list<GUIRoadStopClassList::FilterFunction * const> filter_funcs; ///< Filter functions of the #GUIRoadStopClassList.
GUIRoadStopClassList roadstop_classes; ///< Available road stop classes.
StringFilter string_filter; ///< Filter for available road stop classes.
QueryString filter_editbox; ///< Filter editbox.
@ -1411,6 +1411,7 @@ public:
if (!this->roadstop_classes.NeedRebuild()) return;
this->roadstop_classes.clear();
this->roadstop_classes.reserve(RoadStopClass::GetClassCount());
for (const auto &cls : RoadStopClass::Classes()) {
/* Skip waypoints. */
@ -1420,7 +1421,6 @@ public:
if (this->ShowNewStops()) {
this->roadstop_classes.Filter(this->string_filter);
this->roadstop_classes.shrink_to_fit();
this->roadstop_classes.RebuildDone();
this->roadstop_classes.Sort();
@ -1775,11 +1775,11 @@ HotkeyList BuildRoadStationWindow::tram_hotkeys("buildtramstop", buildtramstop_h
Listing BuildRoadStationWindow::last_sorting = { false, 0 };
Filtering BuildRoadStationWindow::last_filtering = { false, 0 };
BuildRoadStationWindow::GUIRoadStopClassList::SortFunction * const BuildRoadStationWindow::sorter_funcs[] = {
const std::initializer_list<BuildRoadStationWindow::GUIRoadStopClassList::SortFunction * const> BuildRoadStationWindow::sorter_funcs = {
&RoadStopClassIDSorter,
};
BuildRoadStationWindow::GUIRoadStopClassList::FilterFunction * const BuildRoadStationWindow::filter_funcs[] = {
const std::initializer_list<BuildRoadStationWindow::GUIRoadStopClassList::FilterFunction * const> BuildRoadStationWindow::filter_funcs = {
&TagNameFilter,
};

@ -74,6 +74,7 @@ public:
} else {
lc->revision.text = stredup(_revision_text.c_str());
}
StrMakeValidInPlace(lc->revision.text);
}
void LoadCheck(LoggedChange *lc) const override { this->Load(lc); }

@ -343,18 +343,26 @@ static uint8_t GetSavegameFileType(const SaveLoad &sld)
*/
static inline uint SlCalcConvMemLen(VarType conv)
{
static const uint8_t conv_mem_size[] = {1, 1, 1, 2, 2, 4, 4, 8, 8, 0};
switch (GetVarMemType(conv)) {
case SLE_VAR_BL: return sizeof(bool);
case SLE_VAR_I8: return sizeof(int8_t);
case SLE_VAR_U8: return sizeof(uint8_t);
case SLE_VAR_I16: return sizeof(int16_t);
case SLE_VAR_U16: return sizeof(uint16_t);
case SLE_VAR_I32: return sizeof(int32_t);
case SLE_VAR_U32: return sizeof(uint32_t);
case SLE_VAR_I64: return sizeof(int64_t);
case SLE_VAR_U64: return sizeof(uint64_t);
case SLE_VAR_NULL: return 0;
case SLE_VAR_STRB:
case SLE_VAR_STR:
case SLE_VAR_STRQ:
return SlReadArrayLength();
case SLE_VAR_NAME:
default:
uint8_t type = GetVarMemType(conv) >> 4;
assert(type < lengthof(conv_mem_size));
return conv_mem_size[type];
NOT_REACHED();
}
}
@ -366,16 +374,24 @@ static inline uint SlCalcConvMemLen(VarType conv)
*/
static inline uint8_t SlCalcConvFileLen(VarType conv)
{
static const uint8_t conv_file_size[] = {0, 1, 1, 2, 2, 4, 4, 8, 8, 2};
switch (GetVarFileType(conv)) {
case SLE_FILE_END: return 0;
case SLE_FILE_I8: return sizeof(int8_t);
case SLE_FILE_U8: return sizeof(uint8_t);
case SLE_FILE_I16: return sizeof(int16_t);
case SLE_FILE_U16: return sizeof(uint16_t);
case SLE_FILE_I32: return sizeof(int32_t);
case SLE_FILE_U32: return sizeof(uint32_t);
case SLE_FILE_I64: return sizeof(int64_t);
case SLE_FILE_U64: return sizeof(uint64_t);
case SLE_FILE_STRINGID: return sizeof(uint16_t);
case SLE_FILE_STRING:
return SlReadArrayLength();
case SLE_FILE_STRUCT:
default:
uint8_t type = GetVarFileType(conv);
assert_msg(type < lengthof(conv_file_size), "%u, %u", (uint)type, (uint)lengthof(conv_file_size));
return conv_file_size[type];
NOT_REACHED();
}
}

@ -1105,6 +1105,28 @@ static void SettingsValueAbsolute(const IntSettingDesc &sd, uint first_param, in
SetDParam(first_param + 1, abs(value));
}
/** Service Interval Settings Default Value displays the correct units or as a percentage */
static void ServiceIntervalSettingsValueText(const IntSettingDesc &sd, uint first_param, int32_t value)
{
VehicleDefaultSettings *vds;
if (_game_mode == GM_MENU || !Company::IsValidID(_current_company)) {
vds = &_settings_client.company.vehicle;
} else {
vds = &Company::Get(_current_company)->settings.vehicle;
}
if (value == 0) {
SetDParam(first_param, sd.str_val + 3);
} else if (vds->servint_ispercent) {
SetDParam(first_param, sd.str_val + 2);
} else if (EconTime::UsingWallclockUnits(_game_mode == GM_MENU)) {
SetDParam(first_param, sd.str_val + 1);
} else {
SetDParam(first_param, sd.str_val);
}
SetDParam(first_param + 1, value);
}
/** Reposition the main toolbar as the setting changed. */
static void v_PositionMainToolbar(int32_t new_value)
{
@ -1238,6 +1260,43 @@ static void UpdateServiceInterval(VehicleType type, int32_t new_value)
SetWindowClassesDirty(WC_VEHICLE_DETAILS);
}
/**
* Checks if the service intervals in the settings are specified as percentages and corrects the default value accordingly.
* @param new_value Contains the service interval's default value in days, or 50 (default in percentage).
*/
static int32_t GetDefaultServiceInterval(VehicleType type)
{
VehicleDefaultSettings *vds;
if (_game_mode == GM_MENU || !Company::IsValidID(_current_company)) {
vds = &_settings_client.company.vehicle;
} else {
vds = &Company::Get(_current_company)->settings.vehicle;
}
int32_t new_value;
if (vds->servint_ispercent) {
new_value = DEF_SERVINT_PERCENT;
} else if (EconTime::UsingWallclockUnits(_game_mode == GM_MENU)) {
switch (type) {
case VEH_TRAIN: new_value = DEF_SERVINT_MINUTES_TRAINS; break;
case VEH_ROAD: new_value = DEF_SERVINT_MINUTES_ROADVEH; break;
case VEH_AIRCRAFT: new_value = DEF_SERVINT_MINUTES_AIRCRAFT; break;
case VEH_SHIP: new_value = DEF_SERVINT_MINUTES_SHIPS; break;
default: NOT_REACHED();
}
} else {
switch (type) {
case VEH_TRAIN: new_value = DEF_SERVINT_DAYS_TRAINS; break;
case VEH_ROAD: new_value = DEF_SERVINT_DAYS_ROADVEH; break;
case VEH_AIRCRAFT: new_value = DEF_SERVINT_DAYS_AIRCRAFT; break;
case VEH_SHIP: new_value = DEF_SERVINT_DAYS_SHIPS; break;
default: NOT_REACHED();
}
}
return new_value;
}
/**
* Callback for when the player changes the timekeeping units.
* @param Unused.

@ -2983,7 +2983,8 @@ struct GameSettingsWindow : Window {
DrawString(tr, STR_CONFIG_SETTING_TYPE);
tr.top += GetCharacterHeight(FS_NORMAL);
sd->SetValueDParams(0, sd->def);
int32_t def_val = sd->get_def_cb != nullptr ? sd->get_def_cb() : sd->def;
sd->SetValueDParams(0, def_val);
DrawString(tr, STR_CONFIG_SETTING_DEFAULT_VALUE);
tr.top += GetCharacterHeight(FS_NORMAL) + WidgetDimensions::scaled.vsep_normal;
@ -3276,6 +3277,8 @@ struct GameSettingsWindow : Window {
/* Save the correct velocity-translated value */
if (sd->flags & SF_GUI_VELOCITY) value = ConvertDisplaySpeedToKmhishSpeed(value, VEH_TRAIN);
} else if (sd->get_def_cb != nullptr) {
value = sd->get_def_cb();
} else {
value = sd->def;
}

@ -203,15 +203,22 @@ struct IntSettingDesc : SettingDesc {
* @param The new value for the setting.
*/
typedef void PostChangeCallback(int32_t value);
/**
* A callback to get the correct default value. For example a default that can be measured in time
* units or expressed as a percentage.
* @return The correct default value for the setting.
*/
typedef int32_t GetDefaultValueCallback();
IntSettingDesc(const SaveLoad &save, const char *name, SettingFlag flags, OnGuiCtrl *guiproc, bool startup, const char *patx_name, int32_t def,
int32_t min, uint32_t max, int32_t interval, StringID str, StringID str_help, StringID str_val,
SettingCategory cat, PreChangeCheck pre_check, PostChangeCallback post_callback,
GetTitleCallback get_title_cb, GetHelpCallback get_help_cb, SetValueDParamsCallback set_value_dparams_cb,
GetDefaultValueCallback get_def_cb,
const SettingDescEnumEntry *enumlist) :
SettingDesc(save, name, flags, guiproc, startup, patx_name), def(def), min(min), max(max), interval(interval),
str(str), str_help(str_help), str_val(str_val), cat(cat), pre_check(pre_check), post_callback(post_callback),
get_title_cb(get_title_cb), get_help_cb(get_help_cb), set_value_dparams_cb(set_value_dparams_cb),
get_title_cb(get_title_cb), get_help_cb(get_help_cb), set_value_dparams_cb(set_value_dparams_cb), get_def_cb(get_def_cb),
enumlist(enumlist) {}
int32_t def; ///< default value given when none is present
@ -227,6 +234,7 @@ struct IntSettingDesc : SettingDesc {
GetTitleCallback *get_title_cb;
GetHelpCallback *get_help_cb;
SetValueDParamsCallback *set_value_dparams_cb;
GetDefaultValueCallback *get_def_cb; ///< Callback to set the correct default value
const SettingDescEnumEntry *enumlist; ///< For SF_ENUM. The last entry must use STR_NULL
@ -263,9 +271,10 @@ struct BoolSettingDesc : IntSettingDesc {
BoolSettingDesc(const SaveLoad &save, const char *name, SettingFlag flags, OnGuiCtrl *guiproc, bool startup, const char *patx_name, bool def,
StringID str, StringID str_help, StringID str_val, SettingCategory cat,
PreChangeCheck pre_check, PostChangeCallback post_callback,
GetTitleCallback get_title_cb, GetHelpCallback get_help_cb, SetValueDParamsCallback set_value_dparams_cb) :
GetTitleCallback get_title_cb, GetHelpCallback get_help_cb, SetValueDParamsCallback set_value_dparams_cb,
GetDefaultValueCallback get_def_cb) :
IntSettingDesc(save, name, flags, guiproc, startup, patx_name, def, 0, 1, 0, str, str_help, str_val, cat,
pre_check, post_callback, get_title_cb, get_help_cb, set_value_dparams_cb, nullptr) {}
pre_check, post_callback, get_title_cb, get_help_cb, set_value_dparams_cb, get_def_cb, nullptr) {}
static std::optional<bool> ParseSingleValue(const char *str);
@ -282,9 +291,9 @@ struct OneOfManySettingDesc : IntSettingDesc {
int32_t def, int32_t max, StringID str, StringID str_help, StringID str_val, SettingCategory cat,
PreChangeCheck pre_check, PostChangeCallback post_callback,
GetTitleCallback get_title_cb, GetHelpCallback get_help_cb, SetValueDParamsCallback set_value_dparams_cb,
std::initializer_list<const char *> many, OnConvert *many_cnvt) :
GetDefaultValueCallback get_def_cb, std::initializer_list<const char *> many, OnConvert *many_cnvt) :
IntSettingDesc(save, name, flags, guiproc, startup, patx_name, def, 0, max, 0, str, str_help, str_val, cat,
pre_check, post_callback, get_title_cb, get_help_cb, set_value_dparams_cb, nullptr), many_cnvt(many_cnvt)
pre_check, post_callback, get_title_cb, get_help_cb, set_value_dparams_cb, get_def_cb, nullptr), many_cnvt(many_cnvt)
{
for (auto one : many) this->many.push_back(one);
}
@ -305,9 +314,9 @@ struct ManyOfManySettingDesc : OneOfManySettingDesc {
int32_t def, StringID str, StringID str_help, StringID str_val, SettingCategory cat,
PreChangeCheck pre_check, PostChangeCallback post_callback,
GetTitleCallback get_title_cb, GetHelpCallback get_help_cb, SetValueDParamsCallback set_value_dparams_cb,
std::initializer_list<const char *> many, OnConvert *many_cnvt) :
GetDefaultValueCallback get_def_cb, std::initializer_list<const char *> many, OnConvert *many_cnvt) :
OneOfManySettingDesc(save, name, flags, guiproc, startup, patx_name, def, (1 << many.size()) - 1, str, str_help,
str_val, cat, pre_check, post_callback, get_title_cb, get_help_cb, set_value_dparams_cb, many, many_cnvt) {}
str_val, cat, pre_check, post_callback, get_title_cb, get_help_cb, set_value_dparams_cb, get_def_cb, many, many_cnvt) {}
size_t ParseValue(const char *str) const override;
char *FormatIntValue(char *buf, const char *last, uint32_t value) const override;

@ -60,12 +60,12 @@ struct SignList {
DEBUG(misc, 3, "Building sign list");
this->signs.clear();
this->signs.reserve(Sign::GetNumItems());
for (const Sign *si : Sign::Iterate()) this->signs.push_back(si);
this->signs.SetFilterState(true);
this->FilterSignList();
this->signs.shrink_to_fit();
this->signs.RebuildDone();
}
@ -101,14 +101,14 @@ struct SignList {
}
/** Filter sign list excluding OWNER_DEITY */
static bool OwnerDeityFilter(const Sign * const *a, StringFilter &filter)
static bool OwnerDeityFilter(const Sign * const *a, StringFilter &)
{
/* You should never be able to edit signs of owner DEITY */
return (*a)->owner != OWNER_DEITY;
}
/** Filter sign list by owner */
static bool OwnerVisibilityFilter(const Sign * const *a, StringFilter &filter)
static bool OwnerVisibilityFilter(const Sign * const *a, StringFilter &)
{
assert(!HasBit(_display_opt, DO_SHOW_COMPETITOR_SIGNS));
/* Hide sign if non-own signs are hidden in the viewport */

@ -33,12 +33,24 @@ static inline OldChunkType GetOldChunkType(OldChunkType type) {return (OldCh
static inline OldChunkType GetOldChunkVarType(OldChunkType type) {return (OldChunkType)(GB(type, 8, 8) << 8);}
static inline OldChunkType GetOldChunkFileType(OldChunkType type) {return (OldChunkType)(GB(type, 16, 8) << 16);}
/**
* Return expected size in bytes of a OldChunkType
* @param type OldChunkType to get size of.
* @return size of type in bytes.
*/
static inline uint8_t CalcOldVarLen(OldChunkType type)
{
static const uint8_t type_mem_size[] = {0, 1, 1, 2, 2, 4, 4, 8};
uint8_t length = GB(type, 8, 8);
assert(length != 0 && length < lengthof(type_mem_size));
return type_mem_size[length];
switch (GetOldChunkVarType(type)) {
case OC_VAR_I8: return sizeof(int8_t);
case OC_VAR_U8: return sizeof(uint8_t);
case OC_VAR_I16: return sizeof(int16_t);
case OC_VAR_U16: return sizeof(uint16_t);
case OC_VAR_I32: return sizeof(int32_t);
case OC_VAR_U32: return sizeof(uint32_t);
case OC_VAR_I64: return sizeof(int64_t);
case OC_VAR_U64: return sizeof(uint64_t);
default: NOT_REACHED();
}
}
/**

@ -34,9 +34,8 @@
/** Colour scheme of the smallmap. */
struct SmallMapColourScheme {
uint32_t *height_colours; ///< Cached colours for each level in a map.
const uint32_t *height_colours_base; ///< Base table for determining the colours
size_t colour_count; ///< The number of colours.
std::vector<uint32_t> height_colours; ///< Cached colours for each level in a map.
std::span<const uint32_t> height_colours_base; ///< Base table for determining the colours
uint32_t default_colour; ///< Default colour of the land.
};

@ -271,9 +271,9 @@ static const LegendAndColour * const _legend_table[] = {
/** Available colour schemes for height maps. */
SmallMapColourScheme _heightmap_schemes[] = {
{nullptr, _green_map_heights, lengthof(_green_map_heights), MKCOLOUR_XXXX(0x5B)}, ///< Green colour scheme.
{nullptr, _dark_green_map_heights, lengthof(_dark_green_map_heights), MKCOLOUR_XXXX(0x62)}, ///< Dark green colour scheme.
{nullptr, _violet_map_heights, lengthof(_violet_map_heights), MKCOLOUR_XXXX(0x81)}, ///< Violet colour scheme.
{{}, _green_map_heights, MKCOLOUR_XXXX(0x54)}, ///< Green colour scheme.
{{}, _dark_green_map_heights, MKCOLOUR_XXXX(0x62)}, ///< Dark green colour scheme.
{{}, _violet_map_heights, MKCOLOUR_XXXX(0x81)}, ///< Violet colour scheme.
};
/**
@ -282,7 +282,7 @@ SmallMapColourScheme _heightmap_schemes[] = {
void BuildLandLegend()
{
/* The smallmap window has never been initialized, so no need to change the legend. */
if (_heightmap_schemes[0].height_colours == nullptr) return;
if (_heightmap_schemes[0].height_colours.empty()) return;
/*
* The general idea of this function is to fill the legend with an appropriate evenly spaced
@ -1102,11 +1102,11 @@ void SmallMapWindow::RebuildColourIndexIfNecessary()
for (auto &heightmap_scheme : _heightmap_schemes) {
/* The heights go from 0 up to and including maximum. */
int heights = _settings_game.construction.map_height_limit + 1;
heightmap_scheme.height_colours = ReallocT<uint32_t>(heightmap_scheme.height_colours, heights);
size_t heights = _settings_game.construction.map_height_limit + 1;
heightmap_scheme.height_colours.resize(heights);
for (int z = 0; z < heights; z++) {
size_t access_index = (heightmap_scheme.colour_count * z) / heights;
for (size_t z = 0; z < heights; z++) {
size_t access_index = (heightmap_scheme.height_colours_base.size() * z) / heights;
/* Choose colour by mapping the range (0..max heightlevel) on the complete colour table. */
heightmap_scheme.height_colours[z] = heightmap_scheme.height_colours_base[access_index];

@ -61,11 +61,11 @@ template <typename T, typename P = std::nullptr_t, typename F = const char*>
class GUIList : public std::vector<T> {
public:
using SortFunction = std::conditional_t<std::is_same_v<P, std::nullptr_t>, bool (const T&, const T&), bool (const T&, const T&, const P)>; ///< Signature of sort function.
typedef bool FilterFunction(const T*, F); ///< Signature of filter function.
using FilterFunction = bool(const T*, F); ///< Signature of filter function.
protected:
SortFunction * const *sort_func_list; ///< the sort criteria functions
FilterFunction * const *filter_func_list; ///< the filter criteria functions
std::span<SortFunction * const> sort_func_list; ///< the sort criteria functions
std::span<FilterFunction * const> filter_func_list; ///< the filter criteria functions
SortListFlags flags; ///< used to control sorting/resorting/etc.
uint8_t sort_type; ///< what criteria to sort on
uint8_t filter_type; ///< what criteria to filter on
@ -99,8 +99,8 @@ public:
/* If sort parameters are not used then we don't require a reference to the params. */
template <typename T_ = T, typename P_ = P, typename _F = F, std::enable_if_t<!GUIListParamConfig<P_>::constructor_init>* = nullptr>
GUIList() :
sort_func_list(nullptr),
filter_func_list(nullptr),
sort_func_list({}),
filter_func_list({}),
flags(VL_NONE),
sort_type(0),
filter_type(0),
@ -112,8 +112,8 @@ public:
/* If sort parameters are used then we require a reference to the params. */
template <typename T_ = T, typename P_ = P, typename _F = F, std::enable_if_t<GUIListParamConfig<P_>::constructor_init>* = nullptr>
GUIList(SortParameterReference params) :
sort_func_list(nullptr),
filter_func_list(nullptr),
sort_func_list({}),
filter_func_list({}),
flags(VL_NONE),
sort_type(0),
filter_type(0),
@ -142,6 +142,7 @@ public:
*/
void SetSortType(uint8_t n_type)
{
assert(n_type < std::size(this->sort_func_list));
if (this->sort_type != n_type) {
SETBITS(this->flags, VL_RESORT);
this->sort_type = n_type;
@ -194,6 +195,7 @@ public:
*/
void SetFilterType(uint8_t n_type)
{
assert(n_type < std::size(this->filter_func_list));
if (this->filter_type != n_type) {
this->filter_type = n_type;
}
@ -323,11 +325,11 @@ public:
}
/**
* Hand the array of sort function pointers to the sort list
* Hand the sort function pointers to the GUIList.
*
* @param n_funcs The pointer to the first sort func
* @param n_funcs Span covering the sort function pointers.
*/
void SetSortFuncs(SortFunction * const *n_funcs)
void SetSortFuncs(std::span<SortFunction * const> n_funcs)
{
this->sort_func_list = n_funcs;
}
@ -340,7 +342,8 @@ public:
*/
bool Sort()
{
dbg_assert(this->sort_func_list != nullptr);
if (this->sort_func_list.empty()) return false;
assert(this->sort_type < this->sort_func_list.size());
return this->Sort(this->sort_func_list[this->sort_type]);
}
@ -394,11 +397,11 @@ public:
}
/**
* Hand the array of filter function pointers to the sort list
* Hand the filter function pointers to the GUIList.
*
* @param n_funcs The pointer to the first filter func
* @param n_funcs Span covering the filter function pointers.
*/
void SetFilterFuncs(FilterFunction * const *n_funcs)
void SetFilterFuncs(std::span<FilterFunction * const> n_funcs)
{
this->filter_func_list = n_funcs;
}
@ -411,7 +414,8 @@ public:
*/
bool Filter(F filter_data)
{
if (this->filter_func_list == nullptr) return false;
if (this->filter_func_list.empty()) return false;
assert(this->filter_type < this->filter_func_list.size());
return this->Filter(this->filter_func_list[this->filter_type], filter_data);
}

@ -286,7 +286,7 @@ protected:
/* Constants for sorting stations */
static const StringID sorter_names[];
static GUIStationList::SortFunction * const sorter_funcs[];
static const std::initializer_list<GUIStationList::SortFunction * const> sorter_funcs;
static btree::btree_map<StationID, uint> station_vehicle_calling_counts;
@ -339,7 +339,6 @@ protected:
}
}
this->stations.shrink_to_fit();
this->stations.RebuildDone();
this->vscroll->SetCount(this->stations.size()); // Update the scrollbar
@ -469,7 +468,7 @@ protected:
/** Sort the stations list */
void SortStationsList()
{
if (this->sorter_funcs[this->stations.SortType()] == &StationVehiclesCallingSorter && this->stations.WouldSort()) {
if (this->sorter_funcs.begin()[this->stations.SortType()] == &StationVehiclesCallingSorter && this->stations.WouldSort()) {
PrepareStationVehiclesCallingSorter(this->filter.facilities);
}
if (!this->stations.Sort()) return;
@ -824,7 +823,7 @@ public:
btree::btree_map<StationID, uint> CompanyStationsWindow::station_vehicle_calling_counts;
/* Available station sorting functions */
GUIStationList::SortFunction * const CompanyStationsWindow::sorter_funcs[] = {
const std::initializer_list<GUIStationList::SortFunction * const> CompanyStationsWindow::sorter_funcs = {
&StationNameSorter,
&StationTypeSorter,
&StationWaitingTotalSorter,

@ -65,8 +65,8 @@ protected:
StoryPageElementID active_button_id; ///< Which button element the player is currently using
static GUIStoryPageList::SortFunction * const page_sorter_funcs[];
static GUIStoryPageElementList::SortFunction * const page_element_sorter_funcs[];
static const std::initializer_list<GUIStoryPageList::SortFunction * const> page_sorter_funcs;
static const std::initializer_list<GUIStoryPageElementList::SortFunction * const> page_element_sorter_funcs;
/** (Re)Build story page list. */
void BuildStoryPageList()
@ -80,7 +80,6 @@ protected:
}
}
this->story_pages.shrink_to_fit();
this->story_pages.RebuildDone();
}
@ -108,7 +107,6 @@ protected:
}
}
this->story_page_elements.shrink_to_fit();
this->story_page_elements.RebuildDone();
}
@ -942,11 +940,11 @@ public:
}
};
GUIStoryPageList::SortFunction * const StoryBookWindow::page_sorter_funcs[] = {
const std::initializer_list<GUIStoryPageList::SortFunction * const> StoryBookWindow::page_sorter_funcs = {
&PageOrderSorter,
};
GUIStoryPageElementList::SortFunction * const StoryBookWindow::page_element_sorter_funcs[] = {
const std::initializer_list<GUIStoryPageElementList::SortFunction * const> StoryBookWindow::page_element_sorter_funcs = {
&PageElementOrderSorter,
};

@ -587,7 +587,7 @@ class NIHVehicle : public NIHelper {
if (v->IsGroundVehicle()) root_spritegroup = GetWagonOverrideSpriteSet(v->engine_type, v->cargo_type, v->GetGroundVehicleCache()->first_engine);
if (root_spritegroup == nullptr) {
CargoID cargo = v->cargo_type;
assert(cargo < lengthof(e->grf_prop.spritegroup));
assert(cargo < std::size(e->grf_prop.spritegroup));
root_spritegroup = e->grf_prop.spritegroup[cargo] != nullptr ? e->grf_prop.spritegroup[cargo] : e->grf_prop.spritegroup[SpriteGroupCargo::SG_DEFAULT];
}
auto iter = e->sprite_group_cb36_properties_used.find(root_spritegroup);

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

Loading…
Cancel
Save