mirror of https://github.com/OpenTTD/OpenTTD.git
Compare commits
25 Commits
a5bc252d69
...
6e2c0d7cd3
Author | SHA1 | Date |
---|---|---|
Peter Nelson | 6e2c0d7cd3 | |
Peter Nelson | bf8de188ec | |
Peter Nelson | 72c55128d2 | |
Peter Nelson | a6d401debf | |
translators | a60a81f34e | |
Rubidium | 0fdabca605 | |
Peter Nelson | f44d8fa2e4 | |
Peter Nelson | 0075a95278 | |
Peter Nelson | 5bc9854be2 | |
Jonathan G Rennison | 9b747a173d | |
Jonathan G Rennison | 11ec156b64 | |
André Cheng | 57f5d27427 | |
André Cheng | ceb0053dd9 | |
André Cheng | 339b0ea0ff | |
André Cheng | fd80a1ec66 | |
André Cheng | a4071b78d7 | |
translators | e8d25d68b9 | |
Peter Nelson | e8249e9075 | |
Peter Nelson | 5159aa81d4 | |
Peter Nelson | 26bb87ebf1 | |
Peter Nelson | 1dc94d0670 | |
Peter Nelson | 6a3f50aa72 | |
Peter Nelson | e20f48799e | |
Peter Nelson | 5e689ce25e | |
Peter Nelson | f9988abf32 |
|
@ -76,7 +76,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;
|
||||
|
@ -298,7 +298,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
|
||||
|
|
|
@ -538,7 +538,7 @@ const StringID _engine_sort_listing[][12] = {{
|
|||
}};
|
||||
|
||||
/** Filters vehicles by cargo and engine (in case of rail vehicle). */
|
||||
static bool CDECL CargoAndEngineFilter(const GUIEngineListItem *item, const CargoID cid)
|
||||
static bool CargoAndEngineFilter(const GUIEngineListItem *item, const CargoID cid)
|
||||
{
|
||||
if (cid == CargoFilterCriteria::CF_ANY) {
|
||||
return true;
|
||||
|
@ -550,7 +550,7 @@ static bool CDECL CargoAndEngineFilter(const GUIEngineListItem *item, const Carg
|
|||
}
|
||||
}
|
||||
|
||||
static GUIEngineList::FilterFunction * const _filter_funcs[] = {
|
||||
static GUIEngineList::FilterFunction * const _engine_filter_funcs[] = {
|
||||
&CargoAndEngineFilter,
|
||||
};
|
||||
|
||||
|
@ -1312,7 +1312,7 @@ struct BuildVehicleWindow : Window {
|
|||
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);
|
||||
}
|
||||
|
||||
|
|
|
@ -637,7 +637,7 @@ Company *DoStartupNewCompany(bool is_ai, CompanyID company = INVALID_COMPANY)
|
|||
}
|
||||
|
||||
/** Start a new competitor company if possible. */
|
||||
TimeoutTimer<TimerGameTick> _new_competitor_timeout(0, []() {
|
||||
TimeoutTimer<TimerGameTick> _new_competitor_timeout({ TimerGameTick::Priority::COMPETITOR_TIMEOUT, 0 }, []() {
|
||||
if (_game_mode == GM_MENU || !AI::CanStartNew()) return;
|
||||
if (_networking && Company::GetNumItems() >= _settings_client.network.max_companies) return;
|
||||
|
||||
|
@ -778,7 +778,7 @@ void OnTick_Companies()
|
|||
/* Randomize a bit when the AI is actually going to start; ranges from 87.5% .. 112.5% of indicated value. */
|
||||
timeout += ScriptObject::GetRandomizer(OWNER_NONE).Next(timeout / 4) - timeout / 8;
|
||||
|
||||
_new_competitor_timeout.Reset(std::max(1, timeout));
|
||||
_new_competitor_timeout.Reset({ TimerGameTick::Priority::COMPETITOR_TIMEOUT, static_cast<uint>(std::max(1, timeout)) });
|
||||
}
|
||||
|
||||
_cur_company_tick_index = (_cur_company_tick_index + 1) % MAX_COMPANIES;
|
||||
|
|
|
@ -2049,9 +2049,16 @@ DEF_CONSOLE_CMD(ConNetworkAuthorizedKey)
|
|||
/** 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;
|
||||
}
|
||||
|
|
|
@ -527,61 +527,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);
|
||||
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.
|
||||
|
||||
/** 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
|
||||
constexpr EffectProcs(InitProc *init_proc, TickProc *tick_proc, TransparencyOption transparency)
|
||||
: init_proc(init_proc), tick_proc(tick_proc), transparency(transparency) {}
|
||||
};
|
||||
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
|
||||
};
|
||||
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.
|
||||
|
@ -604,7 +576,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->UpdatePositionAndViewport();
|
||||
|
||||
|
@ -642,7 +614,7 @@ EffectVehicle *CreateEffectVehicleRel(const Vehicle *v, int x, int y, int z, Eff
|
|||
|
||||
bool EffectVehicle::Tick()
|
||||
{
|
||||
return _effect_tick_procs[this->subtype](this);
|
||||
return _effect_procs[this->subtype].tick_proc(this);
|
||||
}
|
||||
|
||||
void EffectVehicle::UpdateDeltaXY()
|
||||
|
@ -660,5 +632,5 @@ void EffectVehicle::UpdateDeltaXY()
|
|||
*/
|
||||
TransparencyOption EffectVehicle::GetTransparencyOption() const
|
||||
{
|
||||
return _effect_transparency_options[this->subtype];
|
||||
return _effect_procs[this->subtype].transparency;
|
||||
}
|
||||
|
|
|
@ -473,17 +473,14 @@ bool TarScanner::AddFile(Subdirectory sd, const std::string &filename)
|
|||
* header contains garbage and is malicious. So, we cannot rely on the string
|
||||
* being properly terminated.
|
||||
* As such, do not use strlen to determine the actual length (explicitly or
|
||||
* implictly via the std::string constructor), but also do not create a string
|
||||
* of the buffer length as that makes the string contain essentially garbage.
|
||||
* implictly via the std::string constructor), but pass the buffer bounds
|
||||
* explicitly.
|
||||
* @param buffer The buffer to read from.
|
||||
* @param buffer_length The length of the buffer to read from.
|
||||
* @return The string data.
|
||||
*/
|
||||
static std::string ExtractString(char *buffer, size_t buffer_length)
|
||||
static std::string ExtractString(std::span<char> buffer)
|
||||
{
|
||||
size_t length = 0;
|
||||
for (; length < buffer_length && buffer[length] != '\0'; length++) {}
|
||||
return StrMakeValid(std::string_view(buffer, length));
|
||||
return StrMakeValid(std::string_view(buffer.begin(), buffer.end()));
|
||||
}
|
||||
|
||||
bool TarScanner::AddFile(const std::string &filename, size_t, [[maybe_unused]] const std::string &tar_filename)
|
||||
|
@ -557,15 +554,15 @@ bool TarScanner::AddFile(const std::string &filename, size_t, [[maybe_unused]] c
|
|||
|
||||
/* The prefix contains the directory-name */
|
||||
if (th.prefix[0] != '\0') {
|
||||
name = ExtractString(th.prefix, lengthof(th.prefix));
|
||||
name = ExtractString(th.prefix);
|
||||
name += PATHSEP;
|
||||
}
|
||||
|
||||
/* Copy the name of the file in a safe way at the end of 'name' */
|
||||
name += ExtractString(th.name, lengthof(th.name));
|
||||
name += ExtractString(th.name);
|
||||
|
||||
/* The size of the file, for some strange reason, this is stored as a string in octals. */
|
||||
std::string size = ExtractString(th.size, lengthof(th.size));
|
||||
std::string size = ExtractString(th.size);
|
||||
size_t skip = size.empty() ? 0 : std::stoul(size, nullptr, 8);
|
||||
|
||||
switch (th.typeflag) {
|
||||
|
@ -591,7 +588,7 @@ bool TarScanner::AddFile(const std::string &filename, size_t, [[maybe_unused]] c
|
|||
case '1': // hard links
|
||||
case '2': { // symbolic links
|
||||
/* Copy the destination of the link in a safe way at the end of 'linkname' */
|
||||
std::string link = ExtractString(th.linkname, lengthof(th.linkname));
|
||||
std::string link = ExtractString(th.linkname);
|
||||
|
||||
if (name.empty() || link.empty()) break;
|
||||
|
||||
|
|
40
src/gfx.cpp
40
src/gfx.cpp
|
@ -1363,8 +1363,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);
|
||||
|
@ -1615,20 +1615,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);
|
||||
bool first = true;
|
||||
for (const auto &cs : _cursor.sprites) {
|
||||
const Sprite *p = GetSprite(GB(cs.image.sprite, 0, SPRITE_WIDTH), SpriteType::Normal);
|
||||
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;
|
||||
|
@ -1648,13 +1650,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();
|
||||
}
|
||||
|
@ -1665,7 +1664,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;
|
||||
|
@ -1684,10 +1684,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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1712,9 +1713,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();
|
||||
}
|
||||
|
||||
|
|
|
@ -112,6 +112,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 */
|
||||
|
@ -126,9 +133,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
|
||||
|
|
|
@ -99,7 +99,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;
|
||||
|
|
|
@ -82,9 +82,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));
|
||||
|
|
|
@ -1270,7 +1270,7 @@ typedef GUIList<const Industry *, const CargoID &, const std::pair<CargoID, Carg
|
|||
* @param cargoes The accepted and produced cargo pair to look for.
|
||||
* @return bool Whether the given cargoes accepted and produced by the industry.
|
||||
*/
|
||||
static bool CDECL CargoFilter(const Industry * const *industry, const std::pair<CargoID, CargoID> &cargoes)
|
||||
static bool CargoFilter(const Industry * const *industry, const std::pair<CargoID, CargoID> &cargoes)
|
||||
{
|
||||
auto accepted_cargo = cargoes.first;
|
||||
auto produced_cargo = cargoes.second;
|
||||
|
@ -1310,7 +1310,7 @@ static bool CDECL CargoFilter(const Industry * const *industry, const std::pair<
|
|||
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 {
|
||||
|
@ -1326,7 +1326,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;
|
||||
|
@ -1398,7 +1398,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;
|
||||
|
||||
|
@ -1902,7 +1902,7 @@ public:
|
|||
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,8 @@ 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
|
||||
|
||||
###setting-zero-is-special
|
||||
STR_CONFIG_SETTING_SERVINT_DISABLED :Desativado
|
||||
|
||||
|
@ -2373,7 +2374,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 +3462,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 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,8 @@ 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
|
||||
|
||||
###setting-zero-is-special
|
||||
STR_CONFIG_SETTING_SERVINT_DISABLED :Uitgeschakeld
|
||||
|
||||
|
|
|
@ -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,8 @@ 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
|
||||
|
||||
###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
|
||||
|
||||
|
|
|
@ -1832,7 +1832,8 @@ 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
|
||||
|
||||
###setting-zero-is-special
|
||||
STR_CONFIG_SETTING_SERVINT_DISABLED :Pois käytöstä
|
||||
|
||||
|
|
|
@ -1833,7 +1833,8 @@ 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
|
||||
|
||||
###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,8 @@ 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
|
||||
|
||||
###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,8 @@ 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
|
||||
|
||||
###setting-zero-is-special
|
||||
STR_CONFIG_SETTING_SERVINT_DISABLED :Wyłączone
|
||||
|
||||
|
|
|
@ -1833,7 +1833,8 @@ 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
|
||||
|
||||
###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,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 ень ня ней}/минут{P а ы ""}/%
|
||||
###length 3
|
||||
|
||||
###setting-zero-is-special
|
||||
STR_CONFIG_SETTING_SERVINT_DISABLED :отключен
|
||||
|
||||
|
@ -2375,7 +2376,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 +3128,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
|
||||
|
||||
|
|
|
@ -334,8 +334,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
|
||||
|
@ -464,7 +464,7 @@ class NetworkContentListWindow : public Window, ContentCallback {
|
|||
}
|
||||
|
||||
/** Filter content by tags/name */
|
||||
static bool CDECL TagNameFilter(const ContentInfo * const *a, ContentListFilterData &filter)
|
||||
static bool TagNameFilter(const ContentInfo * const *a, ContentListFilterData &filter)
|
||||
{
|
||||
if ((*a)->state == ContentInfo::SELECTED || (*a)->state == ContentInfo::AUTOSELECTED) return true;
|
||||
|
||||
|
@ -476,7 +476,7 @@ class NetworkContentListWindow : public Window, ContentCallback {
|
|||
}
|
||||
|
||||
/** Filter content by type, but still show content selected for download. */
|
||||
static bool CDECL TypeOrSelectedFilter(const ContentInfo * const *a, ContentListFilterData &filter)
|
||||
static bool TypeOrSelectedFilter(const ContentInfo * const *a, ContentListFilterData &filter)
|
||||
{
|
||||
if (filter.types.none()) return true;
|
||||
if (filter.types[(*a)->type]) return true;
|
||||
|
@ -1010,13 +1010,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,
|
||||
};
|
||||
|
|
|
@ -181,8 +181,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.
|
||||
|
@ -338,7 +338,7 @@ protected:
|
|||
}
|
||||
}
|
||||
|
||||
static bool CDECL NGameSearchFilter(NetworkGameList * const *item, StringFilter &sf)
|
||||
static bool NGameSearchFilter(NetworkGameList * const *item, StringFilter &sf)
|
||||
{
|
||||
assert(item != nullptr);
|
||||
assert((*item) != nullptr);
|
||||
|
@ -459,8 +459,8 @@ public:
|
|||
this->server = this->last_joined;
|
||||
|
||||
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();
|
||||
}
|
||||
|
||||
|
@ -860,7 +860,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,
|
||||
|
@ -869,7 +869,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
|
||||
};
|
||||
|
||||
|
|
|
@ -4846,7 +4846,6 @@ static ChangeInfoResult RoadStopChangeInfo(uint id, int numinfo, int prop, ByteR
|
|||
|
||||
uint32_t classid = buf->ReadDWord();
|
||||
rs->cls_id = RoadStopClass::Allocate(BSWAP32(classid));
|
||||
rs->spec_id = id + i;
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -308,25 +308,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
|
||||
|
|
|
@ -53,7 +53,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 {} cargo {} already has group -- replacing", engine, cargo);
|
||||
|
@ -1062,7 +1062,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];
|
||||
}
|
||||
}
|
||||
|
|
|
@ -609,8 +609,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.
|
||||
|
@ -1458,7 +1458,7 @@ private:
|
|||
}
|
||||
|
||||
/** Filter grfs by tags/name */
|
||||
static bool CDECL TagNameFilter(const GRFConfig * const *a, StringFilter &filter)
|
||||
static bool TagNameFilter(const GRFConfig * const *a, StringFilter &filter)
|
||||
{
|
||||
filter.ResetState();
|
||||
filter.AddLine((*a)->GetName());
|
||||
|
@ -1586,11 +1586,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,
|
||||
};
|
||||
|
||||
|
|
|
@ -157,7 +157,7 @@ std::string NewGRFProfiler::GetOutputFilename() const
|
|||
/**
|
||||
* Check whether profiling is active and should be finished.
|
||||
*/
|
||||
static TimeoutTimer<TimerGameTick> _profiling_finish_timeout(0, []()
|
||||
static TimeoutTimer<TimerGameTick> _profiling_finish_timeout({ TimerGameTick::Priority::NONE, 0 }, []()
|
||||
{
|
||||
NewGRFProfiler::FinishAll();
|
||||
});
|
||||
|
@ -167,7 +167,7 @@ static TimeoutTimer<TimerGameTick> _profiling_finish_timeout(0, []()
|
|||
*/
|
||||
/* static */ void NewGRFProfiler::StartTimer(uint64_t ticks)
|
||||
{
|
||||
_profiling_finish_timeout.Reset(ticks);
|
||||
_profiling_finish_timeout.Reset({ TimerGameTick::Priority::NONE, static_cast<uint>(ticks) });
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -127,7 +127,6 @@ struct RoadStopSpec {
|
|||
*/
|
||||
GRFFilePropsBase<NUM_CARGO + 3> grf_prop;
|
||||
RoadStopClassID cls_id; ///< The class to which this spec belongs.
|
||||
int spec_id; ///< The ID of this spec inside the class.
|
||||
StringID name; ///< Name of this stop
|
||||
|
||||
RoadStopAvailabilityType stop_type = ROADSTOPTYPE_ALL;
|
||||
|
|
|
@ -504,7 +504,7 @@ uint32_t Waypoint::GetNewGRFVariable(const ResolverObject &, uint8_t variable, [
|
|||
|
||||
/* 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];
|
||||
}
|
||||
|
||||
|
|
|
@ -56,8 +56,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.
|
||||
|
@ -129,7 +129,7 @@ public:
|
|||
}
|
||||
|
||||
/** Filter object classes by class name. */
|
||||
static bool CDECL TagNameFilter(ObjectClassID const *oc, StringFilter &filter)
|
||||
static bool TagNameFilter(ObjectClassID const *oc, StringFilter &filter)
|
||||
{
|
||||
ObjectClass *objclass = ObjectClass::Get(*oc);
|
||||
|
||||
|
@ -655,11 +655,11 @@ public:
|
|||
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,
|
||||
};
|
||||
|
||||
|
|
|
@ -964,8 +964,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.
|
||||
|
@ -1095,7 +1095,7 @@ public:
|
|||
}
|
||||
|
||||
/** Filter station classes by class name. */
|
||||
static bool CDECL TagNameFilter(StationClassID const * sc, StringFilter &filter)
|
||||
static bool TagNameFilter(StationClassID const * sc, StringFilter &filter)
|
||||
{
|
||||
filter.ResetState();
|
||||
filter.AddLine(GetString(StationClass::Get(*sc)->name));
|
||||
|
@ -1571,11 +1571,11 @@ public:
|
|||
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,
|
||||
};
|
||||
|
||||
|
|
|
@ -1112,8 +1112,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.
|
||||
|
@ -1246,7 +1246,7 @@ public:
|
|||
}
|
||||
|
||||
/** Filter classes by class name. */
|
||||
static bool CDECL TagNameFilter(RoadStopClassID const *sc, StringFilter &filter)
|
||||
static bool TagNameFilter(RoadStopClassID const *sc, StringFilter &filter)
|
||||
{
|
||||
filter.ResetState();
|
||||
filter.AddLine(GetString(RoadStopClass::Get(*sc)->name));
|
||||
|
@ -1599,11 +1599,11 @@ public:
|
|||
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,
|
||||
};
|
||||
|
||||
|
|
|
@ -3255,7 +3255,7 @@ bool AfterLoadGame()
|
|||
/* We did load the "period" of the timer, but not the fired/elapsed. We can deduce that here. */
|
||||
extern TimeoutTimer<TimerGameTick> _new_competitor_timeout;
|
||||
_new_competitor_timeout.storage.elapsed = 0;
|
||||
_new_competitor_timeout.fired = _new_competitor_timeout.period == 0;
|
||||
_new_competitor_timeout.fired = _new_competitor_timeout.period.value == 0;
|
||||
}
|
||||
|
||||
if (IsSavegameVersionBefore(SLV_NEWGRF_LAST_SERVICE)) {
|
||||
|
|
|
@ -68,7 +68,7 @@ public:
|
|||
SlObject(lc, this->GetLoadDescription());
|
||||
|
||||
if (IsSavegameVersionBefore(SLV_STRING_GAMELOG)) {
|
||||
static_cast<LoggedChangeRevision *>(lc)->text = StrMakeValid(std::string_view(SlGamelogRevision::revision_text, lengthof(SlGamelogRevision::revision_text)));
|
||||
static_cast<LoggedChangeRevision *>(lc)->text = StrMakeValid(std::string_view(std::begin(SlGamelogRevision::revision_text), std::end(SlGamelogRevision::revision_text)));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -99,9 +99,9 @@ static const SaveLoad _date_desc[] = {
|
|||
SLEG_CONDVAR("pause_mode", _pause_mode, SLE_UINT8, SLV_4, SL_MAX_VERSION),
|
||||
SLEG_CONDSSTR("id", _game_session_stats.savegame_id, SLE_STR, SLV_SAVEGAME_ID, SL_MAX_VERSION),
|
||||
/* For older savegames, we load the current value as the "period"; afterload will set the "fired" and "elapsed". */
|
||||
SLEG_CONDVAR("next_competitor_start", _new_competitor_timeout.period, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_109),
|
||||
SLEG_CONDVAR("next_competitor_start", _new_competitor_timeout.period, SLE_UINT32, SLV_109, SLV_AI_START_DATE),
|
||||
SLEG_CONDVAR("competitors_interval", _new_competitor_timeout.period, SLE_UINT32, SLV_AI_START_DATE, SL_MAX_VERSION),
|
||||
SLEG_CONDVAR("next_competitor_start", _new_competitor_timeout.period.value, SLE_FILE_U16 | SLE_VAR_U32, SL_MIN_VERSION, SLV_109),
|
||||
SLEG_CONDVAR("next_competitor_start", _new_competitor_timeout.period.value, SLE_UINT32, SLV_109, SLV_AI_START_DATE),
|
||||
SLEG_CONDVAR("competitors_interval", _new_competitor_timeout.period.value, SLE_UINT32, SLV_AI_START_DATE, SL_MAX_VERSION),
|
||||
SLEG_CONDVAR("competitors_interval_elapsed", _new_competitor_timeout.storage.elapsed, SLE_UINT32, SLV_AI_START_DATE, SL_MAX_VERSION),
|
||||
SLEG_CONDVAR("competitors_interval_fired", _new_competitor_timeout.fired, SLE_BOOL, SLV_AI_START_DATE, SL_MAX_VERSION),
|
||||
};
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -1701,7 +1701,7 @@ static const OldChunks main_chunk[] = {
|
|||
|
||||
OCL_ASSERT( OC_TTO, 0x496CE ),
|
||||
|
||||
OCL_VAR ( OC_FILE_U16 | OC_VAR_U32, 1, &_new_competitor_timeout.period ),
|
||||
OCL_VAR ( OC_FILE_U16 | OC_VAR_U32, 1, &_new_competitor_timeout.period.value ),
|
||||
|
||||
OCL_CNULL( OC_TTO, 2 ), ///< available monorail bitmask
|
||||
|
||||
|
|
|
@ -599,17 +599,25 @@ 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_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();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -621,17 +629,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);
|
||||
if (type >= lengthof(conv_file_size)) fmt::println("{}", type);
|
||||
assert(type < lengthof(conv_file_size));
|
||||
return conv_file_size[type];
|
||||
NOT_REACHED();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -2498,7 +2498,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;
|
||||
|
||||
|
@ -2732,6 +2733,8 @@ struct GameSettingsWindow : Window {
|
|||
if (sd->flags & SF_GUI_CURRENCY) llvalue /= GetCurrency().rate;
|
||||
|
||||
value = ClampTo<int32_t>(llvalue);
|
||||
} else if (sd->get_def_cb != nullptr) {
|
||||
value = sd->get_def_cb();
|
||||
} else {
|
||||
value = sd->def;
|
||||
}
|
||||
|
|
|
@ -164,6 +164,12 @@ 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();
|
||||
|
||||
template <
|
||||
typename Tdef,
|
||||
|
@ -178,11 +184,13 @@ struct IntSettingDesc : SettingDesc {
|
|||
IntSettingDesc(const SaveLoad &save, SettingFlag flags, bool startup, Tdef def,
|
||||
Tmin min, Tmax max, Tinterval 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) :
|
||||
GetTitleCallback get_title_cb, GetHelpCallback get_help_cb, SetValueDParamsCallback set_value_dparams_cb,
|
||||
GetDefaultValueCallback get_def_cb) :
|
||||
SettingDesc(save, flags, startup),
|
||||
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) {
|
||||
if constexpr (std::is_base_of_v<StrongTypedefBase, Tdef>) {
|
||||
this->def = def.base();
|
||||
} else {
|
||||
|
@ -221,6 +229,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
|
||||
|
||||
StringID GetTitle() const;
|
||||
StringID GetHelp() const;
|
||||
|
@ -254,9 +263,10 @@ struct BoolSettingDesc : IntSettingDesc {
|
|||
BoolSettingDesc(const SaveLoad &save, SettingFlag flags, bool startup, 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, flags, startup, def ? 1 : 0, 0, 1, 0, str, str_help, str_val, cat,
|
||||
pre_check, post_callback, get_title_cb, get_help_cb, set_value_dparams_cb) {}
|
||||
pre_check, post_callback, get_title_cb, get_help_cb, set_value_dparams_cb, get_def_cb) {}
|
||||
|
||||
static std::optional<bool> ParseSingleValue(const char *str);
|
||||
|
||||
|
@ -273,9 +283,9 @@ struct OneOfManySettingDesc : IntSettingDesc {
|
|||
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, flags, startup, def, 0, max, 0, str, str_help, str_val, cat,
|
||||
pre_check, post_callback, get_title_cb, get_help_cb, set_value_dparams_cb), many_cnvt(many_cnvt)
|
||||
pre_check, post_callback, get_title_cb, get_help_cb, set_value_dparams_cb, get_def_cb), many_cnvt(many_cnvt)
|
||||
{
|
||||
for (auto one : many) this->many.push_back(one);
|
||||
}
|
||||
|
@ -296,9 +306,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, flags, startup, 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;
|
||||
std::string FormatValue(const void *object) const override;
|
||||
|
|
|
@ -116,6 +116,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 (TimerGameEconomy::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)
|
||||
{
|
||||
|
@ -240,6 +262,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 (TimerGameEconomy::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;
|
||||
}
|
||||
|
||||
static void TrainAccelerationModelChanged(int32_t)
|
||||
{
|
||||
for (Train *t : Train::Iterate()) {
|
||||
|
|
|
@ -93,7 +93,7 @@ struct SignList {
|
|||
}
|
||||
|
||||
/** Filter sign list by sign name */
|
||||
static bool CDECL SignNameFilter(const Sign * const *a, StringFilter &filter)
|
||||
static bool SignNameFilter(const Sign * const *a, StringFilter &filter)
|
||||
{
|
||||
/* Same performance benefit as above for sorting. */
|
||||
const std::string &a_name = (*a)->name.empty() ? SignList::default_name : (*a)->name;
|
||||
|
@ -104,14 +104,14 @@ struct SignList {
|
|||
}
|
||||
|
||||
/** Filter sign list excluding OWNER_DEITY */
|
||||
static bool CDECL OwnerDeityFilter(const Sign * const *a, StringFilter &)
|
||||
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 CDECL OwnerVisibilityFilter(const Sign * const *a, StringFilter &)
|
||||
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 */
|
||||
|
|
|
@ -47,11 +47,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 CDECL 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
|
||||
|
@ -85,8 +85,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<std::is_same_v<P_, std::nullptr_t>>* = 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),
|
||||
|
@ -97,8 +97,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<!std::is_same_v<P_, std::nullptr_t>>* = nullptr>
|
||||
GUIList(const P ¶ms) :
|
||||
sort_func_list(nullptr),
|
||||
filter_func_list(nullptr),
|
||||
sort_func_list({}),
|
||||
filter_func_list({}),
|
||||
flags(VL_NONE),
|
||||
sort_type(0),
|
||||
filter_type(0),
|
||||
|
@ -123,6 +123,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;
|
||||
|
@ -175,6 +176,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;
|
||||
}
|
||||
|
@ -288,11 +290,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;
|
||||
}
|
||||
|
@ -305,7 +307,8 @@ public:
|
|||
*/
|
||||
bool Sort()
|
||||
{
|
||||
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]);
|
||||
}
|
||||
|
||||
|
@ -359,11 +362,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;
|
||||
}
|
||||
|
@ -376,7 +379,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);
|
||||
}
|
||||
|
||||
|
|
|
@ -245,7 +245,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;
|
||||
|
||||
FilterState filter;
|
||||
GUIStationList stations{filter.cargoes};
|
||||
|
@ -720,7 +720,7 @@ public:
|
|||
};
|
||||
|
||||
/* Available station sorting functions */
|
||||
GUIStationList::SortFunction * const CompanyStationsWindow::sorter_funcs[] = {
|
||||
const std::initializer_list<GUIStationList::SortFunction * const> CompanyStationsWindow::sorter_funcs = {
|
||||
&StationNameSorter,
|
||||
&StationTypeSorter,
|
||||
&StationWaitingTotalSorter,
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue