diff --git a/src/ai/ai_gui.cpp b/src/ai/ai_gui.cpp index e82617ab5d..c295b6a93c 100644 --- a/src/ai/ai_gui.cpp +++ b/src/ai/ai_gui.cpp @@ -192,7 +192,7 @@ struct AIConfigWindow : public Window { case WID_AIC_LIST: { // Select a slot this->selected_slot = (CompanyID)this->vscroll->GetScrolledRowFromWidget(pt.y, this, widget); this->InvalidateData(); - if (click_count > 1 && this->selected_slot != INVALID_COMPANY) ShowScriptListWindow((CompanyID)this->selected_slot); + if (click_count > 1 && this->selected_slot != INVALID_COMPANY) ShowScriptListWindow((CompanyID)this->selected_slot, _ctrl_pressed); break; } @@ -215,7 +215,7 @@ struct AIConfigWindow : public Window { break; case WID_AIC_CHANGE: // choose other AI - ShowScriptListWindow((CompanyID)this->selected_slot); + ShowScriptListWindow((CompanyID)this->selected_slot, _ctrl_pressed); break; case WID_AIC_CONFIGURE: // change the settings for an AI diff --git a/src/bridge_gui.cpp b/src/bridge_gui.cpp index 089e743b5c..ff17505226 100644 --- a/src/bridge_gui.cpp +++ b/src/bridge_gui.cpp @@ -115,9 +115,14 @@ private: return a.spec->speed < b.spec->speed; } + inline TransportType GetTransportType() const + { + return (TransportType)(this->type >> 15); + } + void BuildBridge(uint8 i) { - switch ((TransportType)(this->type >> 15)) { + switch (this->GetTransportType()) { case TRANSPORT_RAIL: _last_railbridge_type = this->bridges->at(i).index; break; case TRANSPORT_ROAD: _last_roadbridge_type = this->bridges->at(i).index; break; default: break; @@ -147,7 +152,7 @@ private: StringID GetBridgeSelectString(const BuildBridgeData &bridge_data) const { SetDParam(0, bridge_data.spec->material); - SetDParam(1, bridge_data.spec->speed); + SetDParam(1, PackVelocity(bridge_data.spec->speed, static_cast(this->GetTransportType()))); SetDParam(2, bridge_data.cost); /* If the bridge has no meaningful speed limit, don't display it. */ if (bridge_data.spec->speed == UINT16_MAX) { diff --git a/src/build_vehicle_gui.cpp b/src/build_vehicle_gui.cpp index 01ec805b6a..a75601cfcb 100644 --- a/src/build_vehicle_gui.cpp +++ b/src/build_vehicle_gui.cpp @@ -813,7 +813,7 @@ static int DrawRailWagonPurchaseInfo(int left, int right, int y, EngineID engine if (_settings_game.vehicle.wagon_speed_limits) { uint max_speed = e->GetDisplayMaxSpeed(); if (max_speed > 0) { - SetDParam(0, max_speed); + SetDParam(0, PackVelocity(max_speed, e->type)); DrawString(left, right, y, STR_PURCHASE_INFO_SPEED); y += FONT_HEIGHT_NORMAL; } @@ -848,7 +848,7 @@ static int DrawRailEnginePurchaseInfo(int left, int right, int y, EngineID engin y += FONT_HEIGHT_NORMAL; /* Max speed - Engine power */ - SetDParam(0, e->GetDisplayMaxSpeed()); + SetDParam(0, PackVelocity(e->GetDisplayMaxSpeed(), e->type)); SetDParam(1, e->GetPower()); DrawString(left, right, y, STR_PURCHASE_INFO_SPEED_POWER); y += FONT_HEIGHT_NORMAL; @@ -903,7 +903,7 @@ static int DrawRoadVehPurchaseInfo(int left, int right, int y, EngineID engine_n y += FONT_HEIGHT_NORMAL; /* Max speed - Engine power */ - SetDParam(0, e->GetDisplayMaxSpeed()); + SetDParam(0, PackVelocity(e->GetDisplayMaxSpeed(), e->type)); SetDParam(1, e->GetPower()); DrawString(left, right, y, STR_PURCHASE_INFO_SPEED_POWER); y += FONT_HEIGHT_NORMAL; @@ -917,11 +917,11 @@ static int DrawRoadVehPurchaseInfo(int left, int right, int y, EngineID engine_n if (te.cost != 0) { SetDParam(0, e->GetCost() + te.cost); SetDParam(1, te.cost); - SetDParam(2, e->GetDisplayMaxSpeed()); + SetDParam(2, PackVelocity(e->GetDisplayMaxSpeed(), e->type)); DrawString(left, right, y, STR_PURCHASE_INFO_COST_REFIT_SPEED); } else { SetDParam(0, e->GetCost()); - SetDParam(1, e->GetDisplayMaxSpeed()); + SetDParam(1, PackVelocity(e->GetDisplayMaxSpeed(), e->type)); DrawString(left, right, y, STR_PURCHASE_INFO_COST_SPEED); } y += FONT_HEIGHT_NORMAL; @@ -949,11 +949,11 @@ static int DrawShipPurchaseInfo(int left, int right, int y, EngineID engine_numb if (te.cost != 0) { SetDParam(0, e->GetCost() + te.cost); SetDParam(1, te.cost); - SetDParam(2, ocean_speed); + SetDParam(2, PackVelocity(ocean_speed, e->type)); DrawString(left, right, y, STR_PURCHASE_INFO_COST_REFIT_SPEED); } else { SetDParam(0, e->GetCost()); - SetDParam(1, ocean_speed); + SetDParam(1, PackVelocity(ocean_speed, e->type)); DrawString(left, right, y, STR_PURCHASE_INFO_COST_SPEED); } y += FONT_HEIGHT_NORMAL; @@ -968,11 +968,11 @@ static int DrawShipPurchaseInfo(int left, int right, int y, EngineID engine_numb } y += FONT_HEIGHT_NORMAL; - SetDParam(0, ocean_speed); + SetDParam(0, PackVelocity(ocean_speed, e->type)); DrawString(left, right, y, STR_PURCHASE_INFO_SPEED_OCEAN); y += FONT_HEIGHT_NORMAL; - SetDParam(0, canal_speed); + SetDParam(0, PackVelocity(canal_speed, e->type)); DrawString(left, right, y, STR_PURCHASE_INFO_SPEED_CANAL); y += FONT_HEIGHT_NORMAL; } @@ -1009,11 +1009,11 @@ static int DrawAircraftPurchaseInfo(int left, int right, int y, EngineID engine_ if (te.cost != 0) { SetDParam(0, e->GetCost() + te.cost); SetDParam(1, te.cost); - SetDParam(2, e->GetDisplayMaxSpeed()); + SetDParam(2, PackVelocity(e->GetDisplayMaxSpeed(), e->type)); DrawString(left, right, y, STR_PURCHASE_INFO_COST_REFIT_SPEED); } else { SetDParam(0, e->GetCost()); - SetDParam(1, e->GetDisplayMaxSpeed()); + SetDParam(1, PackVelocity(e->GetDisplayMaxSpeed(), e->type)); DrawString(left, right, y, STR_PURCHASE_INFO_COST_SPEED); } y += FONT_HEIGHT_NORMAL; diff --git a/src/engine.cpp b/src/engine.cpp index 873c2eb4d0..dfa3424ae0 100644 --- a/src/engine.cpp +++ b/src/engine.cpp @@ -739,7 +739,7 @@ void StartupOneEngine(Engine *e, Date aging_date, uint32 seed, Date no_introduce e->intro_date = ei->base_intro <= ConvertYMDToDate(_settings_game.game_creation.starting_year + 2, 0, 1) ? ei->base_intro : (Date)GB(r, 0, 9) + ei->base_intro; if (e->intro_date <= _date && e->intro_date <= no_introduce_after_date) { e->age = (aging_date - e->intro_date) >> 5; - e->company_avail = (CompanyMask)-1; + e->company_avail = MAX_UVALUE(CompanyMask); e->flags |= ENGINE_AVAILABLE; } @@ -879,7 +879,7 @@ static void AcceptEnginePreview(EngineID eid, CompanyID company, int recursion_d Engine *e = Engine::Get(eid); e->preview_company = INVALID_COMPANY; - e->preview_asked = (CompanyMask)-1; + e->preview_asked = MAX_UVALUE(CompanyMask); EnableEngineForCompany(eid, company); @@ -974,7 +974,7 @@ void EnginesDailyLoop() e->preview_company = GetPreviewCompany(e); if (e->preview_company == INVALID_COMPANY) { - e->preview_asked = (CompanyMask)-1; + e->preview_asked = MAX_UVALUE(CompanyMask); continue; } @@ -1114,7 +1114,7 @@ static void NewVehicleAvailable(Engine *e) AddRemoveEngineFromAutoreplaceAndBuildWindows(e->type); /* Now available for all companies */ - e->company_avail = (CompanyMask)-1; + e->company_avail = MAX_UVALUE(CompanyMask); /* Do not introduce new rail wagons */ if (IsWagon(index)) return; diff --git a/src/engine_gui.cpp b/src/engine_gui.cpp index fba19a2ac4..e2d8d9980d 100644 --- a/src/engine_gui.cpp +++ b/src/engine_gui.cpp @@ -169,7 +169,7 @@ uint GetTotalCapacityOfArticulatedParts(EngineID engine) static StringID GetTrainEngineInfoString(const Engine *e) { SetDParam(0, e->GetCost()); - SetDParam(2, e->GetDisplayMaxSpeed()); + SetDParam(2, PackVelocity(e->GetDisplayMaxSpeed(), e->type)); SetDParam(3, e->GetPower()); SetDParam(1, e->GetDisplayWeight()); SetDParam(7, e->GetDisplayMaxTractiveEffort()); @@ -195,7 +195,7 @@ static StringID GetAircraftEngineInfoString(const Engine *e) uint i = 0; SetDParam(i++, e->GetCost()); - SetDParam(i++, e->GetDisplayMaxSpeed()); + SetDParam(i++, PackVelocity(e->GetDisplayMaxSpeed(), e->type)); SetDParam(i++, e->GetAircraftTypeText()); if (range > 0) SetDParam(i++, range); SetDParam(i++, cargo); @@ -216,7 +216,7 @@ static StringID GetRoadVehEngineInfoString(const Engine *e) { if (_settings_game.vehicle.roadveh_acceleration_model == AM_ORIGINAL) { SetDParam(0, e->GetCost()); - SetDParam(1, e->GetDisplayMaxSpeed()); + SetDParam(1, PackVelocity(e->GetDisplayMaxSpeed(), e->type)); uint capacity = GetTotalCapacityOfArticulatedParts(e->index); if (capacity != 0) { SetDParam(2, e->GetDefaultCargoType()); @@ -228,7 +228,7 @@ static StringID GetRoadVehEngineInfoString(const Engine *e) return STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST; } else { SetDParam(0, e->GetCost()); - SetDParam(2, e->GetDisplayMaxSpeed()); + SetDParam(2, PackVelocity(e->GetDisplayMaxSpeed(), e->type)); SetDParam(3, e->GetPower()); SetDParam(1, e->GetDisplayWeight()); SetDParam(7, e->GetDisplayMaxTractiveEffort()); @@ -249,7 +249,7 @@ static StringID GetRoadVehEngineInfoString(const Engine *e) static StringID GetShipEngineInfoString(const Engine *e) { SetDParam(0, e->GetCost()); - SetDParam(1, e->GetDisplayMaxSpeed()); + SetDParam(1, PackVelocity(e->GetDisplayMaxSpeed(), e->type)); SetDParam(2, e->GetDefaultCargoType()); SetDParam(3, e->GetDisplayDefaultCapacity()); SetDParam(4, e->GetDisplayRunningCost()); diff --git a/src/game/game_gui.cpp b/src/game/game_gui.cpp index 048adc7f55..c97a13e927 100644 --- a/src/game/game_gui.cpp +++ b/src/game/game_gui.cpp @@ -254,12 +254,12 @@ struct GSConfigWindow : public Window { switch (widget) { case WID_GSC_GSLIST: { this->InvalidateData(); - if (click_count > 1 && UserIsAllowedToChangeGameScript()) ShowScriptListWindow((CompanyID)OWNER_DEITY); + if (click_count > 1 && UserIsAllowedToChangeGameScript()) ShowScriptListWindow((CompanyID)OWNER_DEITY, _ctrl_pressed); break; } case WID_GSC_CHANGE: // choose other Game Script - ShowScriptListWindow((CompanyID)OWNER_DEITY); + ShowScriptListWindow((CompanyID)OWNER_DEITY, _ctrl_pressed); break; case WID_GSC_CONTENT_DOWNLOAD: diff --git a/src/graph_gui.cpp b/src/graph_gui.cpp index d6477a16d1..4a51138f25 100644 --- a/src/graph_gui.cpp +++ b/src/graph_gui.cpp @@ -186,11 +186,12 @@ protected: byte num_on_x_axis; byte num_vert_lines; - /* The starting month and year that values are plotted against. If month is - * 0xFF, use x_values_start and x_values_increment below instead. */ + /* The starting month and year that values are plotted against. */ byte month; Year year; + bool draw_dates = true; ///< Should we draw months and years on the time axis? + /* These values are used if the graph is being plotted against values * rather than the dates specified by month and year. */ uint16 x_values_start; @@ -304,7 +305,7 @@ protected: /* Rect r will be adjusted to contain just the graph, with labels being * placed outside the area. */ r.top += ScaleGUITrad(5) + GetCharacterHeight(FS_SMALL) / 2; - r.bottom -= (this->month == 0xFF ? 1 : 2) * GetCharacterHeight(FS_SMALL) + ScaleGUITrad(4); + r.bottom -= (this->draw_dates ? 2 : 1) * GetCharacterHeight(FS_SMALL) + ScaleGUITrad(4); r.left += ScaleGUITrad(9); r.right -= ScaleGUITrad(5); @@ -383,7 +384,7 @@ protected: } /* Draw x-axis labels and markings for graphs based on financial quarters and years. */ - if (this->month != 0xFF) { + if (this->draw_dates) { x = r.left; y = r.bottom + ScaleGUITrad(2); byte month = this->month; @@ -502,7 +503,7 @@ public: uint x_label_width = 0; /* Draw x-axis labels and markings for graphs based on financial quarters and years. */ - if (this->month != 0xFF) { + if (this->draw_dates) { byte month = this->month; Year year = this->year; for (int i = 0; i < this->num_on_x_axis; i++) { @@ -527,7 +528,7 @@ public: uint y_label_width = GetStringBoundingBox(STR_GRAPH_Y_LABEL).width; size->width = std::max(size->width, ScaleGUITrad(5) + y_label_width + this->num_on_x_axis * (x_label_width + ScaleGUITrad(5)) + ScaleGUITrad(9)); - size->height = std::max(size->height, ScaleGUITrad(5) + (1 + MIN_GRAPH_NUM_LINES_Y * 2 + (this->month != 0xFF ? 3 : 1)) * FONT_HEIGHT_SMALL + ScaleGUITrad(4)); + size->height = std::max(size->height, ScaleGUITrad(5) + (1 + MIN_GRAPH_NUM_LINES_Y * 2 + (this->draw_dates ? 3 : 1)) * FONT_HEIGHT_SMALL + ScaleGUITrad(4)); size->height = std::max(size->height, size->width / 3); } @@ -887,7 +888,7 @@ struct PaymentRatesGraphWindow : BaseGraphWindow { { this->num_on_x_axis = 20; this->num_vert_lines = 20; - this->month = 0xFF; + this->draw_dates = false; this->SetXAxis(); this->CreateNestedTree(); @@ -1074,7 +1075,7 @@ struct PaymentRatesGraphWindow : BaseGraphWindow { this->UpdateExcludedData(); int i = 0; - const float factor = 200.0f * 28.57f * 0.4f * ConvertSpeedToUnitDisplaySpeed(1 << 16) / (1.6f * static_cast(1 << 16)); + const float factor = 200.0f * 28.57f * 0.4f * ConvertSpeedToUnitDisplaySpeed(1 << 16, VEH_TRAIN) / (1.6f * static_cast(1 << 16)); for (const CargoSpec *cs : _sorted_standard_cargo_specs) { this->colours[i] = cs->legend_colour; diff --git a/src/lang/afrikaans.txt b/src/lang/afrikaans.txt index 310c4648c8..e3a3724527 100644 --- a/src/lang/afrikaans.txt +++ b/src/lang/afrikaans.txt @@ -1698,6 +1698,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :As dit geaktive STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Minimum maatskappyouderdom om aandele te verhandel: {STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Stel die minimum ouderdom van 'n maatskappy in vir ander om aandele by hulle te kan koop en verkoop. +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Persentasie van wins om te betaal in voerder systeem: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Persentasie wins wat gedeel word met die tussengangerstasies in oordragstelsels vir beter beheer oor die wins @@ -1830,7 +1831,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Daar is gereeld STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Spoed eenheid: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Wys spoed in die eenheid wat gekies is -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Empiries (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Metries (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) diff --git a/src/lang/arabic_egypt.txt b/src/lang/arabic_egypt.txt index 99894c2103..1311ab5fba 100644 --- a/src/lang/arabic_egypt.txt +++ b/src/lang/arabic_egypt.txt @@ -1564,6 +1564,7 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :مجمد STR_CONFIG_SETTING_ALLOW_SHARES :السماح بشراء حصص من الشركات الاخرى: {STRING} STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :عند التمكين ، السماح بشراء وبيع أسهم الشركة. ستكون الأسهم متاحة فقط للشركات التي بلغت سنًا معينة +###setting-zero-is-special STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :عند السحب ، ضع الإشارات كل: {STRING} @@ -1655,7 +1656,7 @@ STR_CONFIG_SETTING_DEMAND_SIZE_HELPTEXT :ضبط هذا STR_CONFIG_SETTING_SHORT_PATH_SATURATION :تشبع المسارات القصيرة قبل استخدام المسارات عالية القدرة: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :وحدات السرعة: {STRING} -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :إمبراطوري (ميل/ساعة) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :متري (كم / ساعة) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :متري (م / ثانية) diff --git a/src/lang/basque.txt b/src/lang/basque.txt index f679a3ec09..394885beeb 100644 --- a/src/lang/basque.txt +++ b/src/lang/basque.txt @@ -1610,6 +1610,7 @@ STR_CONFIG_SETTING_ENDING_YEAR_VALUE :{NUM} STR_CONFIG_SETTING_ALLOW_SHARES :Beste konpainien akzioak erostea baimendu: {STRING} STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Gaitua dagoenean, konpainiaren akzioak erostea eta saltzea baimendu. Konpainiak akzioak izateko gutxiengo adin batera iritsi beharko dira +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Elikadura sistemetan ordaindu beharreko irabazien ehunekoa: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Elikadura sistemetan eman beharreko irabazien ehunekoa, irabaziengain kontrol gehiago emanez @@ -1720,7 +1721,7 @@ STR_CONFIG_SETTING_LINKGRAPH_ACCURACY :Banaketen zehaz STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Abiadura unitateak: {STRING} -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Inperiala (milia/orduko) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Metrikoa (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) diff --git a/src/lang/belarusian.txt b/src/lang/belarusian.txt index 71cb617270..c7e74707c0 100644 --- a/src/lang/belarusian.txt +++ b/src/lang/belarusian.txt @@ -2015,6 +2015,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Калі ўкл STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Мін. узрост кампаніі для выпуску акцыяў: {STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Мінімальны ўзрост, якога павінна дасягнуць кампанія для пачатку выпуску акцыяў, якімі змогуць гандляваць іншыя гульцы. +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Адсотак даходу, якi налiчваецца пры частковай перавозцы: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Адсотак даходу, які налічваецца на прамежкавых адцінках у вялікіх сетках, даючы большы кантроль над даходамі. @@ -2149,7 +2150,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Пры наяў STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Сыстэма адзінак для хуткасьці: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Паказваць значэньні хуткасьці ў выбранай сыстэме адзінак -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :ангельскія (міль/г) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :мэтрычная (км/г) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :СІ (м/с) diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt index 1989bb6204..7af39b8b38 100644 --- a/src/lang/brazilian_portuguese.txt +++ b/src/lang/brazilian_portuguese.txt @@ -1809,6 +1809,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Se ativado, per STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Idade mínima da companhia para trocar ações: {STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Defina a idade mínima de uma companhia para as outras estarem aptas a comprar e vender ações entre elas. +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Porcentagem paga em cada etapa em sistemas de baldeação: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Porcentagem do lucro dado a cada estação de baldeação em sistemas de mais de um transporte, dando mais controle de lucro @@ -1954,7 +1955,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Frequentemente STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Unidade de velocidade: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Sempre que uma velocidade for exibida na interface do usuário, será exibida na unidade selecionada -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Imperial (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Métrico (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) diff --git a/src/lang/bulgarian.txt b/src/lang/bulgarian.txt index 5dc58e1943..76022dc347 100644 --- a/src/lang/bulgarian.txt +++ b/src/lang/bulgarian.txt @@ -1656,6 +1656,7 @@ STR_CONFIG_SETTING_STARTING_YEAR :Начална STR_CONFIG_SETTING_ALLOW_SHARES :Разреши купуване на акции от други компании: {STRING} STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Ако тази опция бъде активирана, ще можете да купувате и продавате дялове на компании. Това ще бъде възможно единствено когато дадената компания достигне определена възраст +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Процент от leg profit to pay in feeder systems: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Процент от приходите, който се плаща на intermediate legs in feeder systems, давайки ви повече контрол върху приходите @@ -1767,7 +1768,7 @@ STR_CONFIG_SETTING_DEMAND_SIZE :Количес STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Единици за скорост: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Всеки път при показване на скорости, да бъдат изписвани в избраните мерни единици -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Imperial (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Metric (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index 18ccbb8167..99f8f6e0d3 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -1809,6 +1809,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Permet comprar STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Edat mínima de la companyia per negociar participacions: {STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Estableix l'edat mínima d'una companyia per tal que els altres competidors puguin comprar-ne o vendre accions. +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Percentatge del benefici total a pagar en transferències: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Percentatge del benefici donat a branques intermediàries dins els sistemes, donant més control sobre els beneficis @@ -1954,7 +1955,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Sovint hi ha di STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Unitats de velocitat: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Quan es mostren velocitats a la interfície d'usuari, presenta-les en les unitats seleccionades -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Imperial (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Mètric (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) diff --git a/src/lang/chuvash.txt b/src/lang/chuvash.txt index 403d4c9831..4b4149f4d1 100644 --- a/src/lang/chuvash.txt +++ b/src/lang/chuvash.txt @@ -782,6 +782,7 @@ STR_CONFIG_SETTING_NEWS_MESSAGES_FULL :Тулли ###length 3 +###setting-zero-is-special @@ -825,7 +826,7 @@ STR_CONFIG_SETTING_TOWN_GROWTH_VERY_FAST :Питӗ хӑв -###length 4 +###length 5 ###length 3 diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index 3e580b31cc..836720e999 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -1814,6 +1814,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Kada je uključ STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Najmanja starost tvrtke za trgovanje udjelima: {STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Odredite najmanju starost tvtke da bi drugi mogli kupovati i prodavati dionice. +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Postotak dobiti za dionicu koji se plaća kod sustava feedera: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Postotak prihoda koji će biti predan srednjim dionicama prijevoza feeder sustavima, daje više kontrole nad prihodima @@ -1949,7 +1950,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Često postoji STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Jedinice brzine: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Uvijek kada je brzina prikazana u korisničkom sučelju, prikaži je u odabranim jedinicama -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Imperijalni (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Metrički (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) diff --git a/src/lang/czech.txt b/src/lang/czech.txt index 93600de2f4..7a0792a94e 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -1895,6 +1895,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Pokud je zapnut STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Minimální stáří společnosti pro obchod s akciemi: {STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Určuje stáří společnosti, od kterého mohou ostatní společnosti kupovat a prodávat její akcie. +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Podíl ze zisku při překládce: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Procentuální podíl příjmu, který je předán mezistanicím v překládacích systémech, předá větší kontrolu nad příjmem @@ -2040,7 +2041,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Vzhledem k tomu STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Jednotky rychlosti: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Kdykoliv se rychlost zobrazí v uživatelském rozhraní, bude ve zvolených jednotkách -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Imperiální (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Metrické (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) @@ -2445,6 +2446,7 @@ STR_NETWORK_CLIENT_LIST_NEW_COMPANY :(Nová společn STR_NETWORK_CLIENT_LIST_NEW_COMPANY_TOOLTIP :{BLACK}Vytvořit novou společnost a připojit se do ní STR_NETWORK_CLIENT_LIST_PLAYER_ICON_SELF_TOOLTIP :{BLACK}Tohle jsi ty STR_NETWORK_CLIENT_LIST_PLAYER_ICON_HOST_TOOLTIP :{BLACK}Toto je hostitel hry +STR_NETWORK_CLIENT_LIST_CLIENT_COMPANY_COUNT :{BLACK}{NUM} klient{P "" i i} - {NUM}/{NUM} společnost{P “” i i} STR_NETWORK_CLIENT_LIST_CLIENT_COMPANY_COUNT_TOOLTIP :{BLACK}Počet momentálně připojených hráčů, počet společností a maximální počet společností povolený administrátorem serveru # Matches ConnectionType diff --git a/src/lang/danish.txt b/src/lang/danish.txt index c0d41d8b49..995bcba77f 100644 --- a/src/lang/danish.txt +++ b/src/lang/danish.txt @@ -1236,7 +1236,7 @@ STR_CONFIG_SETTING_CONSTRUCTION_COSTS :Konstruktionspr STR_CONFIG_SETTING_CONSTRUCTION_COSTS_HELPTEXT :Indstil prisniveau for køb og konstruktion STR_CONFIG_SETTING_RECESSIONS :Kriser: {STRING} -STR_CONFIG_SETTING_RECESSIONS_HELPTEXT :Lavkonjunkturer forekomme hvert 5. år hvis denne indstilling er slået til. Ved lavkonjunktur falder produktionen markant (produktionen returnerer til tidligere niveau når lavkonjunkturen er ovre) +STR_CONFIG_SETTING_RECESSIONS_HELPTEXT :Hvis aktiveret, kan lavkonjunktur forekomme hvert par år. Under en lavkonjunktur er al produktion væsentligt lavere (den vender tilbage til tidligere niveau, når recessionen er forbi) STR_CONFIG_SETTING_TRAIN_REVERSING :Forbyd toge at køre baglængs i stationer: {STRING} STR_CONFIG_SETTING_TRAIN_REVERSING_HELPTEXT :Hvis aktiveret, vil tog ikke vende på stationer der ikke er endestationer, også selvom der er en kortere rute til deres næste destination ved at vende @@ -1808,6 +1808,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Hvis aktiveret, STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Mindste selskabsalder for aktiehandel: {STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Indstil mindste alder på selskaber, før andre kan købe og sælge aktier i dem. +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Procentdel af deloverskud som skal betales i hovedsystemer: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Procentdel af indkomst givet til de mellemliggende dele i hovedsystemer, giver mere kontrol over indkomst @@ -1953,7 +1954,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Der er ofte fle STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Hastighedsenheder: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Når en hastighed er vist i brugergrænsefladen, så vis dem i de valgte enheder -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Imperisk (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Metrisk (km/t) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) @@ -3644,7 +3645,7 @@ STR_STATION_VIEW_CLOSE_AIRPORT_TOOLTIP :{BLACK}Forhindr # Waypoint/buoy view window STR_WAYPOINT_VIEW_CAPTION :{WHITE}{WAYPOINT} -STR_WAYPOINT_VIEW_CENTER_TOOLTIP :{BLACK}Centrer skærmen over vejpunktets lokalitet. Ctrl+Klik åbner et nyt vindue ved rutepunktets lokalitet. +STR_WAYPOINT_VIEW_CENTER_TOOLTIP :{BLACK}Centrer skærmen over rutepunktets lokalitet. Ctrl+Klik åbner et nyt vindue ved rutepunktets lokalitet. STR_WAYPOINT_VIEW_CHANGE_WAYPOINT_NAME :{BLACK}Omdøb rutepunkt STR_BUOY_VIEW_CENTER_TOOLTIP :{BLACK}Centrér skærmen ved bøjens placering. Ctrl+klik åbner et nyt vindue ved bøjens placering STR_BUOY_VIEW_CHANGE_BUOY_NAME :{BLACK}Ændre navnet på bøjen @@ -3973,7 +3974,7 @@ STR_BUY_VEHICLE_AIRCRAFT_SHOW_TOGGLE_BUTTON :{BLACK}Vis ###length VEHICLE_TYPES STR_BUY_VEHICLE_TRAIN_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Toggle skjule / vise af tog type STR_BUY_VEHICLE_ROAD_VEHICLE_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Toggle skjule / vise af kørtøjstype -STR_BUY_VEHICLE_SHIP_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Toggle skjule / vise af skibstype +STR_BUY_VEHICLE_SHIP_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Skift skjul/visning af skibstypen STR_BUY_VEHICLE_AIRCRAFT_HIDE_SHOW_TOGGLE_TOOLTIP :{BLACK}Toggle skjule / vise af flytype ###length VEHICLE_TYPES diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index 3285d54ce0..1da18982f8 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -1808,6 +1808,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Wanneer ingesch STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Minimale leeftijd van bedrijf om aandelen te kunnen verhandelen: {STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Hiermee wordt de minimale leeftijd van een bedrijf ingesteld waarna anderen aandelen in dat bedrijf kunnen gaan kopen en verkopen. +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Percentage van routeopbrengst in overdrachtssysteem: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Percentage van het inkomen besteed aan de intermediaire delen in feedersystemen waardoor er meer controle over de inkomsten is @@ -1953,7 +1954,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Vaak zijn er me STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Snelheidseenheden: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Wanneer een snelheid wordt weergegeven in het gebruikersscherm, gebruik dan de geselecteerde eenheden -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Imperiaal (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Metrisch (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) diff --git a/src/lang/english.txt b/src/lang/english.txt index 80c9dd9e3f..09dad7f035 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -195,6 +195,7 @@ STR_UNITS_VELOCITY_IMPERIAL :{COMMA}{NBSP}mp STR_UNITS_VELOCITY_METRIC :{COMMA}{NBSP}km/h STR_UNITS_VELOCITY_SI :{COMMA}{NBSP}m/s STR_UNITS_VELOCITY_GAMEUNITS :{DECIMAL}{NBSP}tiles/day +STR_UNITS_VELOCITY_KNOTS :{COMMA}{NBSP}knots STR_UNITS_POWER_IMPERIAL :{COMMA}{NBSP}hp STR_UNITS_POWER_METRIC :{COMMA}{NBSP}hp @@ -343,9 +344,9 @@ STR_GOTO_ORDER_VIEW_TOOLTIP :{BLACK}Open the ###length 31 STR_TOOLBAR_TOOLTIP_PAUSE_GAME :{BLACK}Pause game STR_TOOLBAR_TOOLTIP_FORWARD :{BLACK}Fast forward the game -STR_TOOLBAR_TOOLTIP_OPTIONS :{BLACK}Options -STR_TOOLBAR_TOOLTIP_SAVE_GAME_ABANDON_GAME :{BLACK}Save game, abandon game, exit -STR_TOOLBAR_TOOLTIP_DISPLAY_MAP :{BLACK}Display map, extra viewport or list of signs +STR_TOOLBAR_TOOLTIP_OPTIONS :{BLACK}Options and settings +STR_TOOLBAR_TOOLTIP_SAVE_GAME_ABANDON_GAME :{BLACK}Save, load or abandon game, exit program +STR_TOOLBAR_TOOLTIP_DISPLAY_MAP :{BLACK}Display map, extra viewport, cargo flow or list of signs STR_TOOLBAR_TOOLTIP_DISPLAY_TOWN_DIRECTORY :{BLACK}Display town directory STR_TOOLBAR_TOOLTIP_DISPLAY_SUBSIDIES :{BLACK}Display subsidies STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_STATIONS :{BLACK}Display list of company's stations @@ -353,9 +354,9 @@ STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_FINANCES :{BLACK}Display STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_GENERAL :{BLACK}Display general company information STR_TOOLBAR_TOOLTIP_DISPLAY_STORY_BOOK :{BLACK}Display story book STR_TOOLBAR_TOOLTIP_DISPLAY_GOALS_LIST :{BLACK}Display goal list -STR_TOOLBAR_TOOLTIP_DISPLAY_GRAPHS :{BLACK}Display graphs +STR_TOOLBAR_TOOLTIP_DISPLAY_GRAPHS :{BLACK}Display company graphs and cargo payment rates STR_TOOLBAR_TOOLTIP_DISPLAY_COMPANY_LEAGUE :{BLACK}Display company league table -STR_TOOLBAR_TOOLTIP_FUND_CONSTRUCTION_OF_NEW :{BLACK}Fund construction of new industry or list all industries +STR_TOOLBAR_TOOLTIP_FUND_CONSTRUCTION_OF_NEW :{BLACK}Examine industries or fund construction of a new industry STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_TRAINS :{BLACK}Display list of company's trains. Ctrl+Click toggles opening the group/vehicle list STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_ROAD_VEHICLES :{BLACK}Display list of company's road vehicles. Ctrl+Click toggles opening the group/vehicle list STR_TOOLBAR_TOOLTIP_DISPLAY_LIST_OF_COMPANY_SHIPS :{BLACK}Display list of company's ships. Ctrl+Click toggles opening the group/vehicle list @@ -369,8 +370,8 @@ STR_TOOLBAR_TOOLTIP_BUILD_SHIP_DOCKS :{BLACK}Build sh STR_TOOLBAR_TOOLTIP_BUILD_AIRPORTS :{BLACK}Build airports STR_TOOLBAR_TOOLTIP_LANDSCAPING :{BLACK}Open the landscaping toolbar to raise/lower land, plant trees, etc. STR_TOOLBAR_TOOLTIP_SHOW_SOUND_MUSIC_WINDOW :{BLACK}Show sound/music window -STR_TOOLBAR_TOOLTIP_SHOW_LAST_MESSAGE_NEWS :{BLACK}Show last message/news report, show message options -STR_TOOLBAR_TOOLTIP_LAND_BLOCK_INFORMATION :{BLACK}Land area information, console, script debug, screenshots, about OpenTTD +STR_TOOLBAR_TOOLTIP_SHOW_LAST_MESSAGE_NEWS :{BLACK}Show last message/news report, messages history or delete all messages +STR_TOOLBAR_TOOLTIP_LAND_BLOCK_INFORMATION :{BLACK}Land area information, screenshot, about OpenTTD and developer tools STR_TOOLBAR_TOOLTIP_SWITCH_TOOLBAR :{BLACK}Switch toolbars # Extra tooltips for the scenario editor toolbar @@ -1808,6 +1809,9 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :When enabled, a STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Minimum company age to trade shares: {STRING2} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Set the minimum age of a company for others to be able to buy and sell shares from them. +STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_VALUE :{COMMA} year{P "" s} +###setting-zero-is-special +STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_NO_MIN :No minimum STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Percentage of leg profit to pay in feeder systems: {STRING2} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Percentage of income given to the intermediate legs in feeder systems, giving more control over the income @@ -1951,13 +1955,15 @@ STR_CONFIG_SETTING_DEMAND_SIZE_HELPTEXT :Setting this to STR_CONFIG_SETTING_SHORT_PATH_SATURATION :Saturation of short paths before using high-capacity paths: {STRING2} STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Frequently there are multiple paths between two given stations. Cargodist will saturate the shortest path first, then use the second shortest path until that is saturated and so on. Saturation is determined by an estimation of capacity and planned usage. Once it has saturated all paths, if there is still demand left, it will overload all paths, prefering the ones with high capacity. Most of the time the algorithm will not estimate the capacity accurately, though. This setting allows you to specify up to which percentage a shorter path must be saturated in the first pass before choosing the next longer one. Set it to less than 100% to avoid overcrowded stations in case of overestimated capacity. -STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Speed units: {STRING2} +STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Speed units (land): {STRING2} +STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_NAUTICAL :Speed units (nautical): {STRING2} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Whenever a speed is shown in the user interface, show it in the selected units -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Imperial (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Metric (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_GAMEUNITS :Game units (tiles/day) +STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_KNOTS :Knots STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER :Vehicle power units: {STRING2} STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_HELPTEXT :Whenever a vehicle's power is shown in the user interface, show it in the selected units @@ -4584,6 +4590,7 @@ STR_AI_CONFIG_AILIST_TOOLTIP :{BLACK}The AIs STR_AI_CONFIG_HUMAN_PLAYER :Human player STR_AI_CONFIG_RANDOM_AI :Random AI STR_AI_CONFIG_NONE :(none) +STR_AI_CONFIG_NAME_VERSION :{RAW_STRING} {YELLOW}v{NUM} STR_AI_CONFIG_MAX_COMPETITORS :{LTBLUE}Maximum no. competitors: {ORANGE}{COMMA} STR_AI_CONFIG_MOVE_UP :{BLACK}Move Up @@ -4597,7 +4604,7 @@ STR_AI_CONFIG_AI :{SILVER}AIs STR_AI_CONFIG_CHANGE_AI :{BLACK}Select AI STR_AI_CONFIG_CHANGE_GAMESCRIPT :{BLACK}Select Game Script -STR_AI_CONFIG_CHANGE_TOOLTIP :{BLACK}Load another script +STR_AI_CONFIG_CHANGE_TOOLTIP :{BLACK}Load another script. Ctrl+Click to show all available versions STR_AI_CONFIG_CONFIGURE :{BLACK}Configure STR_AI_CONFIG_CONFIGURE_TOOLTIP :{BLACK}Configure the parameters of the Script diff --git a/src/lang/english_AU.txt b/src/lang/english_AU.txt index f2044c17e5..1b47a4928f 100644 --- a/src/lang/english_AU.txt +++ b/src/lang/english_AU.txt @@ -1808,6 +1808,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :When enabled, a STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Minimum company age to trade shares: {STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Set the minimum age of a company for others to be able to buy and sell shares from them. +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Percentage of leg profit to pay in feeder systems: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Percentage of income given to the intermediate legs in feeder systems, giving more control over the income @@ -1953,7 +1954,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Frequently ther STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Speed units: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Whenever a speed is shown in the user interface, show it in the selected units -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Imperial (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Metric (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) @@ -4584,6 +4585,7 @@ STR_AI_CONFIG_AILIST_TOOLTIP :{BLACK}The AIs STR_AI_CONFIG_HUMAN_PLAYER :Human player STR_AI_CONFIG_RANDOM_AI :Random AI STR_AI_CONFIG_NONE :(none) +STR_AI_CONFIG_NAME_VERSION :{STRING} {YELLOW}v{NUM} STR_AI_CONFIG_MAX_COMPETITORS :{LTBLUE}Maximum no. competitors: {ORANGE}{COMMA} STR_AI_CONFIG_MOVE_UP :{BLACK}Move Up @@ -4597,7 +4599,7 @@ STR_AI_CONFIG_AI :{SILVER}AIs STR_AI_CONFIG_CHANGE_AI :{BLACK}Select AI STR_AI_CONFIG_CHANGE_GAMESCRIPT :{BLACK}Select Game Script -STR_AI_CONFIG_CHANGE_TOOLTIP :{BLACK}Load another script +STR_AI_CONFIG_CHANGE_TOOLTIP :{BLACK}Load another script. Ctrl+Click to show all available versions STR_AI_CONFIG_CONFIGURE :{BLACK}Configure STR_AI_CONFIG_CONFIGURE_TOOLTIP :{BLACK}Configure the parameters of the Script diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index 11d93e1e5b..281cc4b93e 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -1808,6 +1808,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :When enabled, a STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Minimum company age to trade shares: {STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Set the minimum age of a company for others to be able to buy and sell shares from them. +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Percentage of leg profit to pay in feeder systems: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Percentage of income given to the intermediate legs in feeder systems, giving more control over the income @@ -1953,7 +1954,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Frequently ther STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Speed units: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Whenever a speed is shown in the user interface, show it in the selected units -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Imperial (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Metric (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) diff --git a/src/lang/esperanto.txt b/src/lang/esperanto.txt index c9cd59fe90..ad26d147e0 100644 --- a/src/lang/esperanto.txt +++ b/src/lang/esperanto.txt @@ -1456,6 +1456,7 @@ STR_CONFIG_SETTING_STARTING_YEAR :Komenca jaro: { STR_CONFIG_SETTING_ALLOW_SHARES :Permesu aĉetadon de dividaĵoj en aliaj kompanioj: {STRING} +###setting-zero-is-special @@ -1519,7 +1520,7 @@ STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Komenca urbgran -###length 4 +###length 5 ###length 3 STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_METRIC :Metriko (hp) diff --git a/src/lang/estonian.txt b/src/lang/estonian.txt index 0ea20389f3..5b3f1ee73b 100644 --- a/src/lang/estonian.txt +++ b/src/lang/estonian.txt @@ -1864,6 +1864,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Kui on aktiveer STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Ettevõtte vanuse alampiir aktsiakauplemiseks: {STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Määra alampiir ettevõtte vanusele, enne kui teised saavad selle aktsiaid osta ja müüa. +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Protsent tuludest mis läheb 'kanna edasi' süsteemis alumistesse lülidesse: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Protsent tuludest mis antakse edasi 'kanna edasi' süsteemidele. Lubab täpsemalt jaotada kasumit erinevate harude vahel. @@ -2009,7 +2010,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Kauba vedamisel STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Kiirusühikud: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Liideses näidatakse kiirust valitud mõõdustikus -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Inglise mõõdustik (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Meetermõõdustik (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI-süsteem (m/s) diff --git a/src/lang/faroese.txt b/src/lang/faroese.txt index c33caf91c0..b0f3dec43f 100644 --- a/src/lang/faroese.txt +++ b/src/lang/faroese.txt @@ -1603,6 +1603,7 @@ STR_CONFIG_SETTING_STARTING_YEAR :Byrjunar ár: { STR_CONFIG_SETTING_ALLOW_SHARES :Loyv keypi av partabrøvum frá øðrum fyritøkum: {STRING} STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Um gilda, er loyvt at keypa og selja fyritøku partabrøv. Partabrøv verða einans tøk hjá fyritøkum ið hava rokki ein ávísan aldur +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Prosentpartur av deilvinningi at gjalda í veitingar kervum: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Prosentpartur av inntøku ið verður útgoldi til millum liðini í veitara kervum (umskipan), gevur betri ræðið í inntøkuni @@ -1680,7 +1681,7 @@ STR_CONFIG_SETTING_LARGER_TOWNS_DISABLED :Eingin -###length 4 +###length 5 ###length 3 diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt index 53bb64333d..373372d05d 100644 --- a/src/lang/finnish.txt +++ b/src/lang/finnish.txt @@ -1808,6 +1808,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Mikäli käytö STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Yhtiön vähimmäisikä osakekaupoille: {STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Aseta yhtiölle vähimmäisikä, jonka jälkeen muut voivat ostaa ja myydä yhtiön osakkeita. +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Syöttöjärjestelmään maksettavan tuoton osuus: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Osuus tuotosta, joka annetaan välittäjille syöttöjärjestelmissä @@ -1953,7 +1954,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Kahden aseman v STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Nopeuden yksikkö: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Kun käyttöliittymässä näytetään nopeus, näytä se valittua yksikköä käyttäen -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Brittiläinen (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Metrinen (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) diff --git a/src/lang/french.txt b/src/lang/french.txt index 42478487bf..7dae0cb8aa 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -1809,6 +1809,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Lorsqu'il est a STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Âge minimum de la compagnie pour la vente d'actions{NBSP}: {STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Définir l'âge minimum qu'une compagnie doit avoir pour que les autres puissent acheter ou vendre ses parts. +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Pourcentage du profit de branche à payer dans les systèmes multimodaux{NBSP}: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Pourcentage du profit donné aux branches intermédiaires dans les systèmes multimodaux, donnant plus de contrôle sur les profits @@ -1954,7 +1955,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Il y a souvent STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Unité de vitesse{NBSP}: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Quand une vitesse est affichée dans l'interface utilisateur, utiliser l'unité sélectionnée -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Impérial (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Métrique (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) diff --git a/src/lang/frisian.txt b/src/lang/frisian.txt index 6d765171ff..a131730b8d 100644 --- a/src/lang/frisian.txt +++ b/src/lang/frisian.txt @@ -1679,6 +1679,7 @@ STR_CONFIG_SETTING_ENDING_YEAR_VALUE :{NUM} STR_CONFIG_SETTING_ALLOW_SHARES :Stea it keapjen fan oandielen ta: {STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Minimale leeftiid fan it bedriuw om oandielen te hanneljen: {STRING} +###setting-zero-is-special STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :By slepe, pleats seinen eltse: {STRING} @@ -1778,7 +1779,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Gauris binne de STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Faasje-ienheid: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Wannear't in faasje sichtber is yn de interface de selektearre ienheid brûke -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Ymperiaal (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Metrysk (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) diff --git a/src/lang/gaelic.txt b/src/lang/gaelic.txt index ff92ba0ff6..4cc506f957 100644 --- a/src/lang/gaelic.txt +++ b/src/lang/gaelic.txt @@ -1871,6 +1871,7 @@ STR_CONFIG_SETTING_STARTING_YEAR :Bliadhna tòise STR_CONFIG_SETTING_ALLOW_SHARES :Ceadaich gun tèid stoca a cheannach bho chompanaidhean eile: {STRING} STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Ma tha seo air, ’s urrainn dhut stocan chompanaidhean a cheannach is a reic. Cha bhi stoca ri làimh ach aig companaidhean aig a bheil aois shònraichte +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :A' cheudad dhen phrothaid a gheibh carbadan le tar-aiseag carago: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :A' cheudad dhen phrothaid a gheibh carbadan airson na slighe a shiubhlas iad nuair a nì iad tar-aiseag. Bheir seo barrachd smachd air an teachd a-steach dhut @@ -1999,7 +2000,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Gu tric, tha io STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Aonadan luaiths: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Nuair a thèid luaths a shealltainn san eadar-aghaidh, seall e leis na h-aonadan a thagh thu -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Impireil (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Meatrach (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) diff --git a/src/lang/galician.txt b/src/lang/galician.txt index c485a3327c..599e4a6c41 100644 --- a/src/lang/galician.txt +++ b/src/lang/galician.txt @@ -1809,6 +1809,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Cando se activa STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Idade mínima da compañía para compraventa de accións: {STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Establece a idade mínima dunha compañía para que outros poidan comprar e vender accións dela. +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Porcentaxe do beneficio parcial a pagar en sistemas transitivos: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Porcentaxe dos beneficios asignados ás partes intermedias da ruta en sistemas transitivos, dando un maior control sobre os ingresos @@ -1954,7 +1955,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Frecuentemente STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Unidades de velocidade: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Cando unha velocidade apareza na interfaz de usuario, facelo nas unidades seleccionadas -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Imperial (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Métrico (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) diff --git a/src/lang/german.txt b/src/lang/german.txt index 074ee9afdc..8302533c33 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -1809,6 +1809,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Erlaube das Kau STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Minimales Alter einer Firma, um an der Börse gehandelt zu werden: {STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Setze das minimale Alter einer Firma, ab dem Andere Firmenanteile dieser Firma kaufen und verkaufen können. +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Prozentsatz des Profits für Teilstrecken: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Um das Einkommen der einzelnen Fahrzeuge einer Lieferkette ungefähr abschätzen zu können, wird vom Transporterlös bei Ablieferung einer Fracht der gewählte Prozentsatz den Zulieferfahrzeugen zugeschlagen @@ -1954,7 +1955,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Häufig gibt es STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Geschwindigkeitseinheit: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Immer wenn die Geschwindigkeit angezeigt wird, sie in den gewählten Einheiten anzeigen -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Imperial (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Metrisch (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) diff --git a/src/lang/greek.txt b/src/lang/greek.txt index 3d80085a83..958b6fed27 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -1912,6 +1912,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Όταν είν STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Ελάχιστη ηλικία εταιρίας για συναλλαγή μετοχών: {STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Ορίστε την ελάχιστη ηλικία μίας εταιρίας για να μπορούν άλλοι να αγοράσουν ή να πουλήσουν μετοχές από αυτές. +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Το ποσοστό κέρδους από το σκέλος μεταφοράς στα συστήματα τροφοδότησης: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Το ποσοστό του εισοδήματος που δίνεται στα ενδιάμεσα σκέλη των συστημάτων τροφοδότησης, δίνοντας μεγαλύτερο έλεγχο στο εισόδημα @@ -2057,7 +2058,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Συχνά υπ STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Μονάδες μέτρησης ταχύτητας: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Όποτε εμφανίζεται μια ταχύτητα στη διεπαφή χρήστη, να εμφανίζεται στην επιλεγμένη μονάδα -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Αυτοκρατορικό (μίλια/ώρα) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Μετρικό (χλμ/ώρα) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt index 7ec05cd2f0..20011d2666 100644 --- a/src/lang/hebrew.txt +++ b/src/lang/hebrew.txt @@ -1715,6 +1715,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES :אפשר קני STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :כאשר מאופשר, מתיר קנייה ומכירה של מניות של חברות. מניות יהיו זמינות רק עבור חברות המגיעות לגיל מסוים STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :גיל מינימלי לחברה לסחור במניותיה: {STRING} +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :אחוז הרווח מקטע נסיעה לתשלום במערכות הזנה: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :אחוז הרווח הניתן לקטעי ביניים במערכות הזנה, דבר הנותן שליטה מוגברת על ההכנסות @@ -1848,7 +1849,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :לעיתים ק STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :יחידות מהירות: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :כאשר מוצגת מהירות השתמש ביחידות הנבחרות -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :בריטית (מייל לשעה) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :מטרי (קמ"ש) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :בינלאומית (מטר לשניה) diff --git a/src/lang/hindi.txt b/src/lang/hindi.txt index 79ab1757cf..387093a538 100644 --- a/src/lang/hindi.txt +++ b/src/lang/hindi.txt @@ -546,6 +546,7 @@ STR_CONFIG_SETTING_ENDING_YEAR_VALUE :{NUM} ###length 3 +###setting-zero-is-special @@ -585,7 +586,7 @@ STR_CONFIG_SETTING_SPRITE_ZOOM_LVL_IN_2X :२x -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :अंतर्राष्ट्रीय मानक (m/s) ###length 3 diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index 69ada0a6e1..7a84ceef57 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -1870,6 +1870,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Bekapcsolva eng STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Vállalatok minimális életkora részvénykibocsátáshoz: {STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Egy vállalatnak legalább ennyi évesnek kell lennie ahhoz, hogy más vállalatok kereskedhessenek a részvényeivel. +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Ráhordó rendszereknek kifizetett profitszázalék: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :A bevételek százaléka, mely a közbenső szállítóknak, ráhordó járatoknak kerül kifizetésre, nagyobb ellenőrzést adva a bevétel felett @@ -2015,7 +2016,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Gyakran több STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Sebesség mértékegysége: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :A sebességértékek a kiválasztott mértékegységben fognak megjelenni a felhasználói felületen -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Angolszász (mi/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Metrikus (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) diff --git a/src/lang/icelandic.txt b/src/lang/icelandic.txt index 80ddcfd854..c4f274dde2 100644 --- a/src/lang/icelandic.txt +++ b/src/lang/icelandic.txt @@ -1602,6 +1602,7 @@ STR_CONFIG_SETTING_STARTING_YEAR :Upphafsár: {ST STR_CONFIG_SETTING_ALLOW_SHARES :Leyfa hlutabréfakaup í öðrum fyrirtækjum: {STRING} STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Ef þessi stilling er virk er hægt að kaupa og selja hlutabréf í fyrirtækjum. Hlutabréf eru aðeins aðgengileg fyrir fyrirtæki sem hafa náð ákveðnum aldri +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Hlutfall hagnaðar sem greiðist til tengiþjónustu: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Hlutfall hagnaðar sem greiðist til tengiþjónustu, farartækja sem eru milliliðir. Gefur meiri stjórn á tekjunum @@ -1705,7 +1706,7 @@ STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER_HELPTEXT :Meðalstærð b -###length 4 +###length 5 ###length 3 diff --git a/src/lang/ido.txt b/src/lang/ido.txt index 7c77b14082..b2422ef37d 100644 --- a/src/lang/ido.txt +++ b/src/lang/ido.txt @@ -743,6 +743,7 @@ STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :Violkolora ###length 3 +###setting-zero-is-special @@ -778,7 +779,7 @@ STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :Violkolora -###length 4 +###length 5 ###length 3 diff --git a/src/lang/indonesian.txt b/src/lang/indonesian.txt index 29e1bc03f6..f955ee9ff9 100644 --- a/src/lang/indonesian.txt +++ b/src/lang/indonesian.txt @@ -1806,6 +1806,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Jika diaktifkan STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Usia minimum perusahaan untuk memperdagangkan saham: {STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Set umur minimal perusahaan saat sahamnya dapat dibeli atau dijual. +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Persentase keuntungan akhir dari sistem pengisi: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Persentase pendapatan yang diberikan dari sistem pengisi, memberikan lebih banyak kendali pendapatan @@ -1951,7 +1952,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Biasanya terdap STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Satuan kecepatan: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Apabila kecepatan ditampilkan di antarmuka, nyatakan di satuan yang dipilih -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Imperial (mpj) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Metrik (km/j) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/d) diff --git a/src/lang/irish.txt b/src/lang/irish.txt index 2cb09f69ee..b0abe30339 100644 --- a/src/lang/irish.txt +++ b/src/lang/irish.txt @@ -1767,6 +1767,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Má tá sé cum STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Aois íosta na gcuideachtaí le bheith in ann scaireanna a thrádáil: {STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Socraigh aois íosta na gcuideachtaí sula mbeidh daoine eile in ann scaireanna iontu a cheannach agus a dhíol. +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :An céatadán den bhrabús a íocfar ar chuid den turas i gcórais fhriothálacha: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :An céatadán den bhrabús a thugtar as lastais a thabhairt cuid den bhealach i gcórais fhriothálacha, rud a fhágann go bhfuil tuilleadh smachta agat ar an ioncam @@ -1912,7 +1913,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Go minic bíonn STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Aonaid luais: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Aon áit a thaispeántar luas sa chomhéadan úsáideora, taispeain sna haonaid roghnaithe é -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Impiriúil (msu) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Méadrach (km/u) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) diff --git a/src/lang/italian.txt b/src/lang/italian.txt index f8ef6cc384..9e4b5b142c 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -1843,6 +1843,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Se abilitata, c STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Età minima della compagnia per lo scambio delle sue azioni: {STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Imposta l'età minima di una compagnia affinchè sia possibile acquistarne o venderne le azioni. +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Percentuale profitto da pagare per una tappa di trasferimento: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Percentuale di ricavi assegnata ai tratti intermedi di una catena di trasferimenti, in questo si conferisce un maggiore controllo sul reddito. @@ -1988,7 +1989,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :È frequente ch STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Unità di velocità: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Seleziona le unità di misura da utilizzare per mostrare le velocità nell'interfaccia utente -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Imperiali (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Metriche (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) diff --git a/src/lang/japanese.txt b/src/lang/japanese.txt index c6bdc7d5d5..fc5ddb598e 100644 --- a/src/lang/japanese.txt +++ b/src/lang/japanese.txt @@ -1808,6 +1808,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :有効にする STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :株式を取引するための最低会社年齢:{STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :他の人が彼らから株式を売買できるように、会社の最低年齢を設定します。 +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :区間払いの割合: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :転送を行う輸送網(フィーダーシステム)を構築した場合、中継地点までの輸送で総輸送費の何%を受け取れるかを設定します(転送時に予想される最終輸送費から仮に部分払いし、最終的に貨物が目的地に到着した時点で清算します)。転送元の輸送機器が赤字になるのを防ぎます @@ -1953,7 +1954,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :二つの停留 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :速度単位: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :ゲーム中の速度をいずれの単位系で表すか決定します -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :ヤード・ポンド法 (マイル時(mph)) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :メートル法 (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :国際単位系 (m/s) diff --git a/src/lang/korean.txt b/src/lang/korean.txt index ed5080c0ba..6c0733dc8f 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -1809,6 +1809,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :이 설정을 STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :지분 거래를 허용할 최소 회사 나이: {STRING}년 STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :지분을 사고 팔기 위해 필요한 회사의 최소 나이를 설정합니다. +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :환승시 벌어들이는 중간 수익의 비율: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :더 많은 수익을 내기 위해, 수송 관계상 중간 구간에게 주어진 수익의 비율을 설정합니다. @@ -1954,7 +1955,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :종종 두 역 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :속력 단위: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :속력를 표시할 때 선택한 단위를 사용하여 나타냅니다. -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :야드파운드법 (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :미터법 (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :국제표준규격 (m/s) diff --git a/src/lang/latin.txt b/src/lang/latin.txt index a6d4dd8bcb..55368a8778 100644 --- a/src/lang/latin.txt +++ b/src/lang/latin.txt @@ -1869,6 +1869,7 @@ STR_CONFIG_SETTING_STARTING_YEAR :Annus initii: { STR_CONFIG_SETTING_ALLOW_SHARES :Sinere mercari sortes societatum: {STRING} STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Sinere mercari sortes a societatibus. Sortes societatum satis aetatis modo mercari licet +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Centesimae partes lucri pendenda in translatione: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Centesimae lucri pars medietati data in systematibus transferendi, ut melius distribuatur lucrum vehiculorum @@ -2001,7 +2002,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Frequenter sunt STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Unitates velocitatis: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Quandocumque velocitas monstratur, monstrabitur his unitatibus electis -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Anglicae (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Metricae (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) diff --git a/src/lang/latvian.txt b/src/lang/latvian.txt index aa91285dd4..db7a8c08f3 100644 --- a/src/lang/latvian.txt +++ b/src/lang/latvian.txt @@ -1810,6 +1810,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Ja iespējots, STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Minimālais uzņēmuma vecums, lai tirgotos ar akcijām: {STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Iestatīt minimālo uzņēmuma vecums, lai citi varētu pirkt un pārdod to akcijas. +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Procenti no kopējās peļņas, ko maksā tranzītstacijās: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Procenti no ienākumiem, kas tiek doti starpposmiem padeves sistēmās, kas dod lielāku kontroli pār ienākumiem @@ -1955,7 +1956,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Nereti starp di STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Ātruma mērvienības: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Vai lietotāja saskarnē rāda ātrumu, rādīt norādītajās mērvienībās -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :impērijas, britu (jūdzes stundā) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :metriskās (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI, starptautiskās (m/s) diff --git a/src/lang/lithuanian.txt b/src/lang/lithuanian.txt index bc0d4c9a8e..3ab3f00afa 100644 --- a/src/lang/lithuanian.txt +++ b/src/lang/lithuanian.txt @@ -1994,6 +1994,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Leisti pirkti b STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Mažiausias kompanijos amžius metais, kuomet bus leista prekiauti jos akcijomis: {STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Kompanijos akcijomis leidžiama prekiauti tik jai sulaukus tam tikro amžiaus +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Grynojo pelno dalis, mokama tiekėjų sistemoms: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Pelno dalis, tenkanti tarpinėms tiekėjų sistemoms @@ -2153,7 +2154,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Dažnai tarp dv STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Greičio vienetai: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Vienetai, kuriais matuojamas greitis -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :imperiniai (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :metriniai (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index 41519c74d5..9d1ca0db14 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -1808,6 +1808,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Wann ugeschalt, STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Minimalt Firmenalter fir Aktien ze handelen: {STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Definéiert d'minimalt Alter vun enger Firma, befier anerer kënnen Undeeler un Aktien vun hier kafen. +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Prozentsaz vum Etappenprofit den am Feeder-System bezuelt gëtt: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Prozentsaz vum Akommes déi un d'Zwëschenetappen an engem Feeder-System gi ginn, wat méi Kontroll iwwert d'Akommes erméiglegt @@ -1953,7 +1954,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Oft gëtt et e STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Geschwindegkeetseenheeten: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Emmer wann eng Geschwindegkeet am Userinterface ugewisen gëtt, weis se an den ausgewielten Eenheeten un -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Britesch (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Metresch (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) diff --git a/src/lang/macedonian.txt b/src/lang/macedonian.txt index 43d929a57d..6f665df7ee 100644 --- a/src/lang/macedonian.txt +++ b/src/lang/macedonian.txt @@ -1070,6 +1070,7 @@ STR_CONFIG_SETTING_NEWS_MESSAGES_FULL :целосна ###length 3 +###setting-zero-is-special @@ -1115,7 +1116,7 @@ STR_CONFIG_SETTING_ZOOM_LVL_OUT_8X :8x -###length 4 +###length 5 ###length 3 diff --git a/src/lang/malay.txt b/src/lang/malay.txt index d433ddbb82..5ac9a62cb5 100644 --- a/src/lang/malay.txt +++ b/src/lang/malay.txt @@ -1521,6 +1521,7 @@ STR_CONFIG_SETTING_STARTING_YEAR :Tahun permulaan STR_CONFIG_SETTING_ALLOW_SHARES :Benarkan membeli saham syarikat lain: {STRING} +###setting-zero-is-special @@ -1595,7 +1596,7 @@ STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :Pengganda awal -###length 4 +###length 5 ###length 3 STR_CONFIG_SETTING_LOCALISATION_UNITS_POWER_IMPERIAL :Sistem Imperial (kuasa kuda/hp) diff --git a/src/lang/maltese.txt b/src/lang/maltese.txt index 38120c61e5..d2d42383cf 100644 --- a/src/lang/maltese.txt +++ b/src/lang/maltese.txt @@ -674,6 +674,7 @@ STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Ippermetti l-uz ###length 3 +###setting-zero-is-special @@ -709,7 +710,7 @@ STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Ippermetti l-uz -###length 4 +###length 5 ###length 3 diff --git a/src/lang/marathi.txt b/src/lang/marathi.txt index fd9443d41c..129365581e 100644 --- a/src/lang/marathi.txt +++ b/src/lang/marathi.txt @@ -986,6 +986,7 @@ STR_CONFIG_SETTING_COMMAND_PAUSE_LEVEL_ALL_ACTIONS :सर्व ###length 3 +###setting-zero-is-special @@ -1022,7 +1023,7 @@ STR_CONFIG_SETTING_STATUSBAR_POS :स्टेट -###length 4 +###length 5 ###length 3 diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index fac2222279..79ba643032 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -1781,6 +1781,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Når aktivert, STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Minimum alder på firmaet for å handle aksjer: {STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Sett minimum levetid for et selskap, før andre kan kjøpe og selge aksjer fra dem. +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Prosentandel av etappe-overskudd som skal betales i innmatingssystem: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Andel av inntekten gitt til de mellomliggende etapper i et overføringssystem, noe som gir mer kontroll over inntektene @@ -1926,7 +1927,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Ofte er det fle STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Hastighetsenheter: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Når en hastighet vises i brukergrensesnittet, vise det i de valgte enheter -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Det britiske imperiets enhetssystem (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Metrisk (km/t) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) diff --git a/src/lang/norwegian_nynorsk.txt b/src/lang/norwegian_nynorsk.txt index ce0625599f..78796c7015 100644 --- a/src/lang/norwegian_nynorsk.txt +++ b/src/lang/norwegian_nynorsk.txt @@ -1607,6 +1607,7 @@ STR_CONFIG_SETTING_STARTING_YEAR :Start spelet i STR_CONFIG_SETTING_ALLOW_SHARES :Tillet kjøp av aksjar i andre firma: {STRING} +###setting-zero-is-special STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :Ved trekking, plasser signal kvar: {STRING} @@ -1716,7 +1717,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Ofte er det fle STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Eining for fart: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Bruk vald eining for å vise fart -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Britisk eining (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Metrisk (km/t) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) diff --git a/src/lang/persian.txt b/src/lang/persian.txt index a91360515d..673f3bfe7c 100644 --- a/src/lang/persian.txt +++ b/src/lang/persian.txt @@ -1478,6 +1478,7 @@ STR_CONFIG_SETTING_STARTING_YEAR :سال شروع STR_CONFIG_SETTING_ALLOW_SHARES :قابلیت خرید سهام بقیه شرکت‌ها: {STRING} +###setting-zero-is-special @@ -1551,7 +1552,7 @@ STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :مضرب ابت STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :واحدهای سرعت: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :هر زمان که سرعت در محیط بازی نمایش داده شود، آن را با واحد انتخاب شده نمایش بده -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :امپریال (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :متریک (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) diff --git a/src/lang/polish.txt b/src/lang/polish.txt index 9c4ba2f8e7..ace80e15c0 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -2188,6 +2188,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Kiedy włączon STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Minimalny wiek firmy pozwalający na handel udziałami: {STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Ustaw minimalny wiek firmy pozwalający innym kupować i sprzedawać jej akcje. +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Podział przychodów w przypadku przeładunków: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Manipulowanie zrównoważeniem podziałów w łańcuchu dowozowym: przy 0% przychód zostanie zaksięgowany na konto wyłącznie ostatniego pojazdu w łańcuchu, wyższa wartość zwiększa zrównoważenie podziału @@ -2333,7 +2334,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Często istniej STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Jednostki prędkości: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Kiedy prędkość jest pokazywana w interfejsie użytkownika, wyświetl ją w wybranych jednostkach -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Imperialne (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Metryczne (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt index 5ae46119b3..7fecb3bae0 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -1809,6 +1809,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Quando ativo, p STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Idade mínima da empresa para negociar ações: {STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Definir a idade mínima de uma companhia a partir da qual outros jogadores poderão comprar ou vender ações da mesma. +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Percentagem do lucro do serviço a pagar em trajectos de um transporte que alimenta outro transporte: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Percentagem da receita dada a trajectos intermédios em sistemas em que um transporte alimenta outro, dando maior controlo sobre a receita @@ -1954,7 +1955,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Frequentemente STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Unidades de velocidade: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Quando uma velocidade é mostrada no interface de utilizador, mostrar na unidade selecionada -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Imperial (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Métrico (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) diff --git a/src/lang/romanian.txt b/src/lang/romanian.txt index 36b2f63fa8..dcb8fdc52d 100644 --- a/src/lang/romanian.txt +++ b/src/lang/romanian.txt @@ -1808,6 +1808,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Dacă este acti STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Vârsta minimă a companiilor pentru tranzacțiile cu acțiuni: {STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Stabilește vechimea minimă a unei companii, ca alții să-i poată tranzacționa acțiunile. +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Procentul din profitul pe secţiune care să fie plătit pentru alimentare: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Procentul din câştig care este oferit legăturilor intermediare pentru alimentare, oferind mai mult control asupra încasărilor @@ -1953,7 +1954,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Adesea, există STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Unitate viteză: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Afişează viteza în interfaţă folosind unităţile selectate -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Imperial (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Metric (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) @@ -2358,6 +2359,7 @@ STR_NETWORK_CLIENT_LIST_NEW_COMPANY :(Companie nouă STR_NETWORK_CLIENT_LIST_NEW_COMPANY_TOOLTIP :{BLACK}Creează o nouă companie și intră în ea STR_NETWORK_CLIENT_LIST_PLAYER_ICON_SELF_TOOLTIP :{BLACK}Aici ești tu STR_NETWORK_CLIENT_LIST_PLAYER_ICON_HOST_TOOLTIP :{BLACK}Aceasta este gazda jocului +STR_NETWORK_CLIENT_LIST_CLIENT_COMPANY_COUNT_TOOLTIP :{BLACK}Numărul de clienți conectați în prezent, numărul de companii și numărul maxim de companii permis de administratorul serverului # Matches ConnectionType ###length 5 @@ -5084,7 +5086,16 @@ STR_ERROR_TOO_FAR_FROM_PREVIOUS_DESTINATION :{WHITE}... prea STR_ERROR_AIRCRAFT_NOT_ENOUGH_RANGE :{WHITE}... avionul nu are o rază de acțiune suficientă # Extra messages which go on the third line of errors, explaining why orders failed +STR_ERROR_NO_RAIL_STATION :{WHITE}Nu există nicio gară +STR_ERROR_NO_BUS_STATION :{WHITE}Nu există stație de autobuz +STR_ERROR_NO_TRUCK_STATION :{WHITE}Nu există stație de camion +STR_ERROR_NO_DOCK :{WHITE}Nu există doc +STR_ERROR_NO_AIRPORT :{WHITE}Nu există aeroport/heliport +STR_ERROR_NO_STOP_COMPATIBLE_ROAD_TYPE :{WHITE}Nu există opriri cu un tip de drum compatibil +STR_ERROR_NO_STOP_COMPATIBLE_TRAM_TYPE :{WHITE}Nu există stații cu un tip de tramvai compatibil STR_ERROR_NO_STOP_ARTICULATED_VEHICLE :{WHITE}Nu există opriri care să fie potrivite pentru vehiculele rutiere articulate.{}Vehiculele rutiere articulate necesită o oprire de drum, nu o oprire într-o rampă. +STR_ERROR_AIRPORT_NO_PLANES :{WHITE}Acest avion nu poate ateriza la acest heliport +STR_ERROR_AIRPORT_NO_HELICOPTERS :{WHITE}Acest elicopter nu poate ateriza pe acest aeroport STR_ERROR_NO_RAIL_WAYPOINT :{WHITE}Nu există niciun punct intermediar feroviar STR_ERROR_NO_BUOY :{WHITE}Nu există geamanduri diff --git a/src/lang/russian.txt b/src/lang/russian.txt index b945b99a61..b48c687b98 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -1959,6 +1959,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Разреша STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Мин. возраст компании для выпуска акций: {STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Минимальный возраст, которого должна достичь компания для начала выпуска акций, которыми смогут торговать другие игроки. +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Процент дохода, начисляемый при частичной перевозке: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Процент прибыли, начисляемый транспорту за частичную перевозку груза. @@ -2104,7 +2105,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :При нали STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Система единиц для скорости: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Показывать значения скорости в выбранной системе единиц -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :английская (миль/ч) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :метрическая (км/ч) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :СИ (м/с) @@ -4771,6 +4772,7 @@ STR_AI_CONFIG_AILIST_TOOLTIP :{BLACK}Моду STR_AI_CONFIG_HUMAN_PLAYER :Человек STR_AI_CONFIG_RANDOM_AI :Случайный ИИ STR_AI_CONFIG_NONE :(нет) +STR_AI_CONFIG_NAME_VERSION :{STRING} {YELLOW}v{NUM} STR_AI_CONFIG_MAX_COMPETITORS :{LTBLUE}Максимальное количество конкурентов: {ORANGE}{COMMA} STR_AI_CONFIG_MOVE_UP :{BLACK}Вверх @@ -4784,7 +4786,7 @@ STR_AI_CONFIG_AI :{SILVER}ИИ STR_AI_CONFIG_CHANGE_AI :{BLACK}ИИ STR_AI_CONFIG_CHANGE_GAMESCRIPT :{BLACK}Игровой скрипт -STR_AI_CONFIG_CHANGE_TOOLTIP :{BLACK}Загрузить другой скрипт +STR_AI_CONFIG_CHANGE_TOOLTIP :{BLACK}Загрузить другой скрипт. Ctrl+щелчок - показать все доступные версии. STR_AI_CONFIG_CONFIGURE :{BLACK}Конфигурация STR_AI_CONFIG_CONFIGURE_TOOLTIP :{BLACK}Настроить параметры скрипта diff --git a/src/lang/serbian.txt b/src/lang/serbian.txt index 5e8f262e94..ea61087285 100644 --- a/src/lang/serbian.txt +++ b/src/lang/serbian.txt @@ -2001,6 +2001,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Ako je omoguće STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Najmanja starost preduzeća za trgovinu akcijama: {STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Podesi najmanju starost preduzeća da bi drugi mogli da trguju akcijama sa njom. +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Procenat prihoda koji će biti predan srednjim dionicama prevoza u fider sustavima: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Procenat prihoda koji će biti predan srednjim dionicama prevoza u fider sustavima, dajući više kontrole nad prihodima @@ -2146,7 +2147,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Često postoji STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Mere brzine: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Kada brzina bude pokazana u interfejsu, pokaži u željenoj meri -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Imperijalne mere (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Metričke mere (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt index 0c7b27a505..343ea67ef4 100644 --- a/src/lang/simplified_chinese.txt +++ b/src/lang/simplified_chinese.txt @@ -1808,6 +1808,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :“打开”时 STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :公司可发售股份的最小已存续年份数:{STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :设置公司可发售股份的最小已存续年份数。 +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :转运系统中支付的利润百分比 {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :设定在转运系统中支付给前一环节的收入百分比, 从而对收入有更多的控制权 @@ -1953,7 +1954,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :货物分配功 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :速度单位:{STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :在界面上以所选择的单位表示速度 -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :英制(英里/小时) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :公制(千米/小时) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :国际单位制(米/秒) diff --git a/src/lang/slovak.txt b/src/lang/slovak.txt index 04dcfaa3cd..4788833852 100644 --- a/src/lang/slovak.txt +++ b/src/lang/slovak.txt @@ -1876,6 +1876,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Ak je zapnuté, STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Minimálny vek spoločnosti na obchodovanie s podielmi: {STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Určuje minimálny vek spoločnosti na to, aby od nej mohli ostatné spoločnosti kupovať a predavať podiely. +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Percentáž zisku na zaplatenie podávacieho systému: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Percento príjmov dať na strednú ´nohu´ vo feeder systémoch, získate väčšiu kontrolu nad príjmami @@ -2021,7 +2022,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Často je viac STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Jednotky rýchlosti: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Vždy, keď sa zobrazí rýchlosť v užívateľskom rozhraní, zobrazí sa vo vybraných jednotkách -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Imperiálne (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Metrické (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) diff --git a/src/lang/slovenian.txt b/src/lang/slovenian.txt index 0484a7ebab..c9edbef303 100644 --- a/src/lang/slovenian.txt +++ b/src/lang/slovenian.txt @@ -1821,6 +1821,7 @@ STR_CONFIG_SETTING_STARTING_YEAR :Začetno leto: STR_CONFIG_SETTING_ALLOW_SHARES :Dovoli kupovanje delnic od drugih podjetij: {STRING} STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Če je omogočeno, se lahko trguje z delnicami podjetij. Na voljo samo po določeni starosti podjetja. +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Procent osnovnega dobička za plačilo v sklade: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Procent prihodkov vložen v srednje sklade, ki omogoča več kontrole nad prihodki. @@ -1950,7 +1951,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Pogosto je več STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Enote hitrosti: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Ko bo prikazana hitrost vozil na vmesniku, bodo uporabljene izbrane enote. -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Colsko (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Metrično (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 2282c597ff..1af71c2630 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -1809,6 +1809,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Cuando se activ STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Edad mínima de una empresa para comerciar con sus acciones: {STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Edad mínima que tiene que tener una empresa para poder comprar y vender sus acciones. +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Porcentaje del beneficio total a pagar en transferencias: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Porcentaje de los beneficios entregados a los transportes intermedios en sistemas de transferencias, dando un mayor control sobre el beneficio de cada vehículo @@ -1954,7 +1955,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Frecuentemente STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Unidad de velocidad: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Cada vez que se muestra una velocidad en la interfaz de usuario, se empleará la unidad seleccionada -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Imperial (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Métrico (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index 0b2061a0d1..48330a8a56 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -1809,6 +1809,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Al activarse, s STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Edad mínima de la empresa para intercambiar acciones: {STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Establecer la edad mínima que debe tener una empresa para que otros puedan comprarle y venderle acciones. +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Porcentaje de la utilidad total a pagar por transferencias de carga: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Porcentaje de utilidad cedida a los transportes intermedios en sistemas de transferencia de carga, dando un mayor control sobre la utilidad de cada vehículo @@ -1954,7 +1955,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Entre dos estac STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Unidades de velocidad: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Cada vez que se muestre una velocidad en la interfaz de usuario, se emplearán las unidades elegidas -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Imperial (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Métrico (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) @@ -5082,6 +5083,8 @@ STR_ERROR_TOO_FAR_FROM_PREVIOUS_DESTINATION :{WHITE}... dema STR_ERROR_AIRCRAFT_NOT_ENOUGH_RANGE :{WHITE}... la aeronave no tiene suficiente alcance # Extra messages which go on the third line of errors, explaining why orders failed +STR_ERROR_NO_BUS_STATION :{WHITE}No hay una estación de autobus +STR_ERROR_NO_STOP_COMPATIBLE_TRAM_TYPE :{WHITE}No hay paradas con un tipo de tramo compatible # Timetable related errors STR_ERROR_CAN_T_TIMETABLE_VEHICLE :{WHITE}No se pueden asignar itinerarios al vehículo... diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index db38cd1117..8d92544efc 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -1808,6 +1808,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :När det är ak STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Lägsta företagsålder för aktiehandel: {STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Ställ in den lägsta ålder från vilken ett företags aktier kan köpas och säljas av andra företag. +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Inkomstprocent per etapp i matarsystem: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Procentandel av inkomsten som ges till de mellanliggande etapperna i matarsystem. Ger mer kontroll över inkomsterna @@ -1953,7 +1954,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Ofta finns det STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Hastighetsenhet: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Närhelst en hastighet visas i användargränssnittet, visa den i den valda enheten -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Brittisk (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Metrisk (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) diff --git a/src/lang/tamil.txt b/src/lang/tamil.txt index 9c9e2ebcff..052983d97c 100644 --- a/src/lang/tamil.txt +++ b/src/lang/tamil.txt @@ -1632,6 +1632,7 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_FROZEN :உறைந் STR_CONFIG_SETTING_ALLOW_SHARES :மற்ற நிறுவனங்களின் பங்குகளை வாங்குவதை அனுமதிக்கவும்: {STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :பங்குகள் பரிமாற்றத்திற்கு தேவையான குறைந்தபட்ச நிறுவன வயது: {STRING} +###setting-zero-is-special STR_CONFIG_SETTING_DRAG_SIGNALS_DENSITY :இழுத்தால், சிக்னல்களை இடவும், ஒவ்வொறு: {STRING} @@ -1738,7 +1739,7 @@ STR_CONFIG_SETTING_DEMAND_DISTANCE_HELPTEXT :இதை 0 ஐ STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :வேக அலகுகள்: {STRING} -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :இம்பீரியல் (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :மெட்ரிக் (கி.மீ/மணிநேரம்) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (மீ/நொடி) diff --git a/src/lang/thai.txt b/src/lang/thai.txt index bb7a3de485..9a3cd42ad0 100644 --- a/src/lang/thai.txt +++ b/src/lang/thai.txt @@ -1686,6 +1686,7 @@ STR_CONFIG_SETTING_ECONOMY_TYPE_HELPTEXT :หากเศ STR_CONFIG_SETTING_ALLOW_SHARES :อนุญาตให้ซื้อหุ้นจากบริษัทอื่นได้: {STRING} STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :เมื่อเปิดการใช้งาน จะสามารถซื้่อชขายหุ้นระหว่างบริษัท จะสามารถซื้อขายหุ้นได้ต่อเมื่อบริษัทเปิดตัวมานานแล้วเท่านั้น +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :เปอเซนต์ของผลกำไรที่จะส่งเข้าสู่ระบบกระจายรายได้: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :เปอร์เซนต์ของรายได้ที่ส่งให้ฐานของระบบกระจายรายได้ ส่งผลต่อการควบคุมรายได้ทั้งหมด @@ -1820,7 +1821,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :ความถ STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :หน่วยวัดความเร็ว: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :หน่วยวัดความเร็ว แสดงผลในหน้าต่างรายละเอียดยานพาหนะ -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :อิมพิเรียล (ไมล์ต่อชั่วโมง) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :เมตริก (กิโลเมตรต่อชั่วโมง) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :มาตรฐานสากล (เมตร/วินาที) diff --git a/src/lang/traditional_chinese.txt b/src/lang/traditional_chinese.txt index 6fe2bc4a92..36ffe9cb30 100644 --- a/src/lang/traditional_chinese.txt +++ b/src/lang/traditional_chinese.txt @@ -1808,6 +1808,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :啟用此選項 STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :容許公司買賣股票的最小年齡:{STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :設定容許公司買賣股票的最小年齡。 +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :轉運服務所得的收入百分比:{STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :設定進行轉運的車輛在卸載被轉運的貨物時,獲得的收入佔貨物總收入的百分比。此選項讓玩家更有效地控制收入分配方式。 @@ -1953,7 +1954,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :貨物分配功 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :速度單位:{STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :在界面上以所選擇的單位表示速度。 -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :英制(英里/小時) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :米制(公里/小時) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :國際單位(米/秒) diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index 72db25c4a6..23fd6a0a2c 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -1809,6 +1809,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Etkinleştirild STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Hisse satmak için gerekli minimum şirket yaşı: {STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Bir şirketin hisselerinin satılabileceği ve diğer şirketlerin alabileceği minimum şirket yaşını belirleyin. +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Besleme sistemlerinde, bölümlerden elde edilen kardan ödenecek yüzde: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Besleme sistemlerinde, sistemi oluşturan ara bölümlere verilen kar yüzdesi. Böylece kar miktarı üzerinde daha fazla kontrol elde edilmiş olur @@ -1954,7 +1955,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Sıklıkla iki STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Hız birimi: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Kullanıcı arayüzünde hız görüntülendiğinde, bunu seçili birimde göster. -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Imperial (İngiliz ölçü birimleri) (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Metrik (km/s) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (Uluslararası Ölçüm Sistemi) (m/s) diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt index 06c01ba668..e009e73b6c 100644 --- a/src/lang/ukrainian.txt +++ b/src/lang/ukrainian.txt @@ -1934,6 +1934,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :При вклю STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Мінімальний вік компанії для торгівлі акціями: {STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Встановіть мінімальний вік компанії, щоб інші могли купувати та продавати акції у них. +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Відсоток прибутку за часткове перевезення: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Налаштування проценту прибутку, що нараховується за часткове перевезення вантажу. За допомогою даної опції можна контролювати розподіл прибутків між учасниками багатоланкових перевезень. @@ -2079,7 +2080,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Часто мі STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Одиниці швидкості: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Показувати швидкості в таких одиницях -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Імперські (милі/год) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Метричні (км/год) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :СІ (м/с) diff --git a/src/lang/urdu.txt b/src/lang/urdu.txt index ae5db34ba4..49abf06991 100644 --- a/src/lang/urdu.txt +++ b/src/lang/urdu.txt @@ -1401,6 +1401,7 @@ STR_CONFIG_SETTING_STARTING_YEAR :شروعاتی STR_CONFIG_SETTING_ALLOW_SHARES :دوسری کمپنیوں کے حصص خریدنے کی اجازت: {STRING} +###setting-zero-is-special @@ -1471,7 +1472,7 @@ STR_CONFIG_SETTING_CITY_SIZE_MULTIPLIER :شہر کا ش -###length 4 +###length 5 ###length 3 diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt index 9d4cd51a8b..6d10b93186 100644 --- a/src/lang/vietnamese.txt +++ b/src/lang/vietnamese.txt @@ -1808,6 +1808,7 @@ STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Nếu bật, ch STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES :Tuổi công ty tối thiểu để bán cổ phần: {STRING} STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT :Đặt số tuổi tối thiểu của công ty để cho các bên khác có thể mua và bán cổ phần +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Tỉ lệ lợi tức cổ phiếu chi trả cho môi giới: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Tỉ lệ thu nhập cho mỗi trung gian trên hệ thống vận tải, cho phép điều chỉnh thu nhập @@ -1953,7 +1954,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Thường sẽ STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Đơn vị tốc độ: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Khi thể hiện tốc độ trên giao diện, thể hiện nó bằng đơn vị đã chọn. -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Imperial (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Metric (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) @@ -5086,7 +5087,9 @@ STR_ERROR_TOO_FAR_FROM_PREVIOUS_DESTINATION :{WHITE}... quá STR_ERROR_AIRCRAFT_NOT_ENOUGH_RANGE :{WHITE}... máy bay không đủ tầm xa # Extra messages which go on the third line of errors, explaining why orders failed +STR_ERROR_NO_RAIL_STATION :{WHITE}Không có ga xe lửa STR_ERROR_AIRPORT_NO_HELICOPTERS :{WHITE}Không thể hạ cánh trực thăng ở sân bay này +STR_ERROR_NO_BUOY :{WHITE}Không có cái phao nào # Timetable related errors STR_ERROR_CAN_T_TIMETABLE_VEHICLE :{WHITE}Không thể lập lịch trình cho phương tiện... diff --git a/src/lang/welsh.txt b/src/lang/welsh.txt index b242620988..2af9336b26 100644 --- a/src/lang/welsh.txt +++ b/src/lang/welsh.txt @@ -1669,6 +1669,7 @@ STR_CONFIG_SETTING_STARTING_YEAR :Blwyddyn dechre STR_CONFIG_SETTING_ALLOW_SHARES :Caniatáu prynu cyfranddaliadau mewn cwmnïau eraill: {STRING} STR_CONFIG_SETTING_ALLOW_SHARES_HELPTEXT :Pan fo wedi'i alluogi, fe ganiateir prynnu a gwerthu cyfrandalaidau cwmni. Rhaid i gwmni gyrraedd oed penodol cyn y daw eu cyfrandaliadau ar gael +###setting-zero-is-special STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE :Canran elw y cymal i'w dalu mewn systemau trosglwyddo: {STRING} STR_CONFIG_SETTING_FEEDER_PAYMENT_SHARE_HELPTEXT :Y canran o elw a ddyfarnir i'r cymalau rhyngol mewn systemau trosglwyddo, gan rhoi fwy o reolaeth dros yr elw @@ -1797,7 +1798,7 @@ STR_CONFIG_SETTING_SHORT_PATH_SATURATION_HELPTEXT :Yn aml mae mwy STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY :Unedau cyflymder: {STRING} STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT :Pan y dangosir cyflymder yn y rhyngwyneb defnyddiwr, ei ddangos yn yr unedau a ddewiswyd -###length 4 +###length 5 STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL :Imperial (mph) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_METRIC :Metrig (km/h) STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_SI :SI (m/s) diff --git a/src/linkgraph/linkgraph_gui.cpp b/src/linkgraph/linkgraph_gui.cpp index 45a90d5261..6c0a0b677d 100644 --- a/src/linkgraph/linkgraph_gui.cpp +++ b/src/linkgraph/linkgraph_gui.cpp @@ -612,7 +612,7 @@ void LinkGraphOverlay::SetCargoMask(CargoTypes cargo_mask) * Set a new company mask and rebuild the cache. * @param company_mask New company mask. */ -void LinkGraphOverlay::SetCompanyMask(uint32 company_mask) +void LinkGraphOverlay::SetCompanyMask(CompanyMask company_mask) { this->company_mask = company_mask; this->RebuildCache(); @@ -732,7 +732,7 @@ LinkGraphLegendWindow::LinkGraphLegendWindow(WindowDesc *desc, int window_number */ void LinkGraphLegendWindow::SetOverlay(LinkGraphOverlay *overlay) { this->overlay = overlay; - uint32 companies = this->overlay->GetCompanyMask(); + CompanyMask companies = this->overlay->GetCompanyMask(); for (uint c = 0; c < MAX_COMPANIES; c++) { if (!this->IsWidgetDisabled(WID_LGL_COMPANY_FIRST + c)) { this->SetWidgetLoweredState(WID_LGL_COMPANY_FIRST + c, HasBit(companies, c)); diff --git a/src/linkgraph/linkgraph_gui.h b/src/linkgraph/linkgraph_gui.h index 94e1abe25e..66f1cbc0aa 100644 --- a/src/linkgraph/linkgraph_gui.h +++ b/src/linkgraph/linkgraph_gui.h @@ -69,7 +69,7 @@ public: * @param company_mask Bitmask of companies to be shown. * @param scale Desired thickness of lines and size of station dots. */ - LinkGraphOverlay(Window *w, uint wid, CargoTypes cargo_mask, uint32 company_mask, uint scale) : + LinkGraphOverlay(Window *w, uint wid, CargoTypes cargo_mask, CompanyMask company_mask, uint scale) : window(w), widget_id(wid), cargo_mask(cargo_mask), company_mask(company_mask), scale(scale), dirty(true) {} @@ -79,7 +79,7 @@ public: void PrepareDraw(); void Draw(const DrawPixelInfo *dpi) const; void SetCargoMask(CargoTypes cargo_mask); - void SetCompanyMask(uint32 company_mask); + void SetCompanyMask(CompanyMask company_mask); bool ShowTooltip(Point pt, TooltipCloseCondition close_cond); @@ -90,13 +90,13 @@ public: CargoTypes GetCargoMask() { return this->cargo_mask; } /** Get a bitmask of the currently shown companies. */ - uint32 GetCompanyMask() { return this->company_mask; } + CompanyMask GetCompanyMask() { return this->company_mask; } protected: Window *window; ///< Window to be drawn into. const uint widget_id; ///< ID of Widget in Window to be drawn to. CargoTypes cargo_mask; ///< Bitmask of cargos to be displayed. - uint32 company_mask; ///< Bitmask of companies to be displayed. + CompanyMask company_mask; ///< Bitmask of companies to be displayed. LinkList cached_links; ///< Cache for links to reduce recalculation. StationSupplyList cached_stations; ///< Cache for stations to be drawn. Rect cached_region; ///< Region covered by cached_links and cached_stations. diff --git a/src/misc_gui.cpp b/src/misc_gui.cpp index 70d77ac4c5..112a3caa03 100644 --- a/src/misc_gui.cpp +++ b/src/misc_gui.cpp @@ -291,7 +291,7 @@ public: /* Rail speed limit */ if (td.rail_speed != 0) { - SetDParam(0, td.rail_speed); + SetDParam(0, PackVelocity(td.rail_speed, VEH_TRAIN)); this->landinfo_data.push_back(GetString(STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT)); } @@ -315,7 +315,7 @@ public: /* Road speed limit */ if (td.road_speed != 0) { - SetDParam(0, td.road_speed); + SetDParam(0, PackVelocity(td.road_speed, VEH_ROAD)); this->landinfo_data.push_back(GetString(STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT)); } @@ -327,7 +327,7 @@ public: /* Tram speed limit */ if (td.tram_speed != 0) { - SetDParam(0, td.tram_speed); + SetDParam(0, PackVelocity(td.tram_speed, VEH_ROAD)); this->landinfo_data.push_back(GetString(STR_LANG_AREA_INFORMATION_TRAM_SPEED_LIMIT)); } diff --git a/src/network/network_client.cpp b/src/network/network_client.cpp index d76828c5d2..e68e278adb 100644 --- a/src/network/network_client.cpp +++ b/src/network/network_client.cpp @@ -1303,6 +1303,7 @@ NetworkRecvStatus ClientNetworkGameSocketHandler::Receive_SERVER_COMPANY_UPDATE( { if (this->status < STATUS_ACTIVE) return NETWORK_RECV_STATUS_MALFORMED_PACKET; + static_assert(sizeof(_network_company_passworded) <= sizeof(uint16)); _network_company_passworded = p->Recv_uint16(); SetWindowClassesDirty(WC_COMPANY); diff --git a/src/network/network_server.cpp b/src/network/network_server.cpp index f29213e6fe..dc0ad2cc46 100644 --- a/src/network/network_server.cpp +++ b/src/network/network_server.cpp @@ -816,6 +816,7 @@ NetworkRecvStatus ServerNetworkGameSocketHandler::SendCompanyUpdate() { Packet *p = new Packet(PACKET_SERVER_COMPANY_UPDATE, SHRT_MAX); + static_assert(sizeof(_network_company_passworded) <= sizeof(uint16)); p->Send_uint16(_network_company_passworded); this->SendPacket(p); return NETWORK_RECV_STATUS_OKAY; diff --git a/src/newgrf.cpp b/src/newgrf.cpp index a1d94fd907..ae91b22065 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -1945,7 +1945,7 @@ static ChangeInfoResult StationChangeInfo(uint stid, int numinfo, int prop, cons case 0x0A: { // Copy sprite layout byte srcid = buf->ReadByte(); - const StationSpec *srcstatspec = _cur.grffile->stations[srcid]; + const StationSpec *srcstatspec = srcid >= NUM_STATIONS_PER_GRF ? nullptr : _cur.grffile->stations[srcid]; if (srcstatspec == nullptr) { grfmsg(1, "StationChangeInfo: Station %u is not defined, cannot copy sprite layout to %u.", srcid, stid + i); @@ -1999,7 +1999,7 @@ static ChangeInfoResult StationChangeInfo(uint stid, int numinfo, int prop, cons case 0x0F: { // Copy custom layout byte srcid = buf->ReadByte(); - const StationSpec *srcstatspec = _cur.grffile->stations[srcid]; + const StationSpec *srcstatspec = srcid >= NUM_STATIONS_PER_GRF ? nullptr : _cur.grffile->stations[srcid]; if (srcstatspec == nullptr) { grfmsg(1, "StationChangeInfo: Station %u is not defined, cannot copy tile layout to %u.", srcid, stid + i); @@ -6485,6 +6485,11 @@ static void CanalMapSpriteGroup(ByteReader *buf, uint8 idcount) static void StationMapSpriteGroup(ByteReader *buf, uint8 idcount) { + if (_cur.grffile->stations == nullptr) { + grfmsg(1, "StationMapSpriteGroup: No stations defined, skipping"); + return; + } + uint8 *stations = AllocaM(uint8, idcount); for (uint i = 0; i < idcount; i++) { stations[i] = buf->ReadByte(); @@ -6500,7 +6505,7 @@ static void StationMapSpriteGroup(ByteReader *buf, uint8 idcount) if (ctype == CT_INVALID) continue; for (uint i = 0; i < idcount; i++) { - StationSpec *statspec = _cur.grffile->stations == nullptr ? nullptr : _cur.grffile->stations[stations[i]]; + StationSpec *statspec = stations[i] >= NUM_STATIONS_PER_GRF ? nullptr : _cur.grffile->stations[stations[i]]; if (statspec == nullptr) { grfmsg(1, "StationMapSpriteGroup: Station with ID 0x%02X does not exist, skipping", stations[i]); @@ -6515,7 +6520,7 @@ static void StationMapSpriteGroup(ByteReader *buf, uint8 idcount) if (!IsValidGroupID(groupid, "StationMapSpriteGroup")) return; for (uint i = 0; i < idcount; i++) { - StationSpec *statspec = _cur.grffile->stations == nullptr ? nullptr : _cur.grffile->stations[stations[i]]; + StationSpec *statspec = stations[i] >= NUM_STATIONS_PER_GRF ? nullptr : _cur.grffile->stations[stations[i]]; if (statspec == nullptr) { grfmsg(1, "StationMapSpriteGroup: Station with ID 0x%02X does not exist, skipping", stations[i]); @@ -6537,6 +6542,11 @@ static void StationMapSpriteGroup(ByteReader *buf, uint8 idcount) static void TownHouseMapSpriteGroup(ByteReader *buf, uint8 idcount) { + if (_cur.grffile->housespec == nullptr) { + grfmsg(1, "TownHouseMapSpriteGroup: No houses defined, skipping"); + return; + } + uint8 *houses = AllocaM(uint8, idcount); for (uint i = 0; i < idcount; i++) { houses[i] = buf->ReadByte(); @@ -6549,11 +6559,6 @@ static void TownHouseMapSpriteGroup(ByteReader *buf, uint8 idcount) uint16 groupid = buf->ReadWord(); if (!IsValidGroupID(groupid, "TownHouseMapSpriteGroup")) return; - if (_cur.grffile->housespec == nullptr) { - grfmsg(1, "TownHouseMapSpriteGroup: No houses defined, skipping"); - return; - } - for (uint i = 0; i < idcount; i++) { HouseSpec *hs = _cur.grffile->housespec[houses[i]]; @@ -6568,6 +6573,11 @@ static void TownHouseMapSpriteGroup(ByteReader *buf, uint8 idcount) static void IndustryMapSpriteGroup(ByteReader *buf, uint8 idcount) { + if (_cur.grffile->industryspec == nullptr) { + grfmsg(1, "IndustryMapSpriteGroup: No industries defined, skipping"); + return; + } + uint8 *industries = AllocaM(uint8, idcount); for (uint i = 0; i < idcount; i++) { industries[i] = buf->ReadByte(); @@ -6580,13 +6590,8 @@ static void IndustryMapSpriteGroup(ByteReader *buf, uint8 idcount) uint16 groupid = buf->ReadWord(); if (!IsValidGroupID(groupid, "IndustryMapSpriteGroup")) return; - if (_cur.grffile->industryspec == nullptr) { - grfmsg(1, "IndustryMapSpriteGroup: No industries defined, skipping"); - return; - } - for (uint i = 0; i < idcount; i++) { - IndustrySpec *indsp = _cur.grffile->industryspec[industries[i]]; + IndustrySpec *indsp = industries[i] >= NUM_INDUSTRYTYPES_PER_GRF ? nullptr : _cur.grffile->industryspec[industries[i]]; if (indsp == nullptr) { grfmsg(1, "IndustryMapSpriteGroup: Industry %d undefined, skipping", industries[i]); @@ -6599,6 +6604,11 @@ static void IndustryMapSpriteGroup(ByteReader *buf, uint8 idcount) static void IndustrytileMapSpriteGroup(ByteReader *buf, uint8 idcount) { + if (_cur.grffile->indtspec == nullptr) { + grfmsg(1, "IndustrytileMapSpriteGroup: No industry tiles defined, skipping"); + return; + } + uint8 *indtiles = AllocaM(uint8, idcount); for (uint i = 0; i < idcount; i++) { indtiles[i] = buf->ReadByte(); @@ -6611,13 +6621,8 @@ static void IndustrytileMapSpriteGroup(ByteReader *buf, uint8 idcount) uint16 groupid = buf->ReadWord(); if (!IsValidGroupID(groupid, "IndustrytileMapSpriteGroup")) return; - if (_cur.grffile->indtspec == nullptr) { - grfmsg(1, "IndustrytileMapSpriteGroup: No industry tiles defined, skipping"); - return; - } - for (uint i = 0; i < idcount; i++) { - IndustryTileSpec *indtsp = _cur.grffile->indtspec[indtiles[i]]; + IndustryTileSpec *indtsp = indtiles[i] >= NUM_INDUSTRYTILES_PER_GRF ? nullptr : _cur.grffile->indtspec[indtiles[i]]; if (indtsp == nullptr) { grfmsg(1, "IndustrytileMapSpriteGroup: Industry tile %d undefined, skipping", indtiles[i]); @@ -6810,6 +6815,11 @@ static void RoadTypeMapSpriteGroup(ByteReader *buf, uint8 idcount, RoadTramType static void AirportMapSpriteGroup(ByteReader *buf, uint8 idcount) { + if (_cur.grffile->airportspec == nullptr) { + grfmsg(1, "AirportMapSpriteGroup: No airports defined, skipping"); + return; + } + uint8 *airports = AllocaM(uint8, idcount); for (uint i = 0; i < idcount; i++) { airports[i] = buf->ReadByte(); @@ -6822,13 +6832,8 @@ static void AirportMapSpriteGroup(ByteReader *buf, uint8 idcount) uint16 groupid = buf->ReadWord(); if (!IsValidGroupID(groupid, "AirportMapSpriteGroup")) return; - if (_cur.grffile->airportspec == nullptr) { - grfmsg(1, "AirportMapSpriteGroup: No airports defined, skipping"); - return; - } - for (uint i = 0; i < idcount; i++) { - AirportSpec *as = _cur.grffile->airportspec[airports[i]]; + AirportSpec *as = airports[i] >= NUM_AIRPORTS_PER_GRF ? nullptr : _cur.grffile->airportspec[airports[i]]; if (as == nullptr) { grfmsg(1, "AirportMapSpriteGroup: Airport %d undefined, skipping", airports[i]); @@ -6841,6 +6846,11 @@ static void AirportMapSpriteGroup(ByteReader *buf, uint8 idcount) static void AirportTileMapSpriteGroup(ByteReader *buf, uint8 idcount) { + if (_cur.grffile->airtspec == nullptr) { + grfmsg(1, "AirportTileMapSpriteGroup: No airport tiles defined, skipping"); + return; + } + uint8 *airptiles = AllocaM(uint8, idcount); for (uint i = 0; i < idcount; i++) { airptiles[i] = buf->ReadByte(); @@ -6853,13 +6863,8 @@ static void AirportTileMapSpriteGroup(ByteReader *buf, uint8 idcount) uint16 groupid = buf->ReadWord(); if (!IsValidGroupID(groupid, "AirportTileMapSpriteGroup")) return; - if (_cur.grffile->airtspec == nullptr) { - grfmsg(1, "AirportTileMapSpriteGroup: No airport tiles defined, skipping"); - return; - } - for (uint i = 0; i < idcount; i++) { - AirportTileSpec *airtsp = _cur.grffile->airtspec[airptiles[i]]; + AirportTileSpec *airtsp = airptiles[i] >= NUM_AIRPORTTILES_PER_GRF ? nullptr : _cur.grffile->airtspec[airptiles[i]]; if (airtsp == nullptr) { grfmsg(1, "AirportTileMapSpriteGroup: Airport tile %d undefined, skipping", airptiles[i]); @@ -7151,7 +7156,7 @@ static void FeatureNewName(ByteReader *buf) switch (GB(id, 8, 8)) { case 0xC4: // Station class name - if (_cur.grffile->stations == nullptr || _cur.grffile->stations[GB(id, 0, 8)] == nullptr) { + if (GB(id, 0, 8) >= NUM_STATIONS_PER_GRF || _cur.grffile->stations == nullptr || _cur.grffile->stations[GB(id, 0, 8)] == nullptr) { grfmsg(1, "FeatureNewName: Attempt to name undefined station 0x%X, ignoring", GB(id, 0, 8)); } else { StationClassID cls_id = _cur.grffile->stations[GB(id, 0, 8)]->cls_id; @@ -7160,7 +7165,7 @@ static void FeatureNewName(ByteReader *buf) break; case 0xC5: // Station name - if (_cur.grffile->stations == nullptr || _cur.grffile->stations[GB(id, 0, 8)] == nullptr) { + if (GB(id, 0, 8) >= NUM_STATIONS_PER_GRF || _cur.grffile->stations == nullptr || _cur.grffile->stations[GB(id, 0, 8)] == nullptr) { grfmsg(1, "FeatureNewName: Attempt to name undefined station 0x%X, ignoring", GB(id, 0, 8)); } else { _cur.grffile->stations[GB(id, 0, 8)]->name = AddGRFString(_cur.grffile->grfid, id, lang, new_scheme, false, name, STR_UNDEFINED); @@ -7168,7 +7173,7 @@ static void FeatureNewName(ByteReader *buf) break; case 0xC7: // Airporttile name - if (_cur.grffile->airtspec == nullptr || _cur.grffile->airtspec[GB(id, 0, 8)] == nullptr) { + if (GB(id, 0, 8) >= NUM_AIRPORTTILES_PER_GRF || _cur.grffile->airtspec == nullptr || _cur.grffile->airtspec[GB(id, 0, 8)] == nullptr) { grfmsg(1, "FeatureNewName: Attempt to name undefined airport tile 0x%X, ignoring", GB(id, 0, 8)); } else { _cur.grffile->airtspec[GB(id, 0, 8)]->name = AddGRFString(_cur.grffile->grfid, id, lang, new_scheme, false, name, STR_UNDEFINED); @@ -7176,7 +7181,7 @@ static void FeatureNewName(ByteReader *buf) break; case 0xC9: // House name - if (_cur.grffile->housespec == nullptr || _cur.grffile->housespec[GB(id, 0, 8)] == nullptr) { + if (GB(id, 0, 8) >= NUM_HOUSES_PER_GRF || _cur.grffile->housespec == nullptr || _cur.grffile->housespec[GB(id, 0, 8)] == nullptr) { grfmsg(1, "FeatureNewName: Attempt to name undefined house 0x%X, ignoring.", GB(id, 0, 8)); } else { _cur.grffile->housespec[GB(id, 0, 8)]->building_name = AddGRFString(_cur.grffile->grfid, id, lang, new_scheme, false, name, STR_UNDEFINED); diff --git a/src/order_func.h b/src/order_func.h index 6a9558f075..1d4dfac53a 100644 --- a/src/order_func.h +++ b/src/order_func.h @@ -35,10 +35,16 @@ uint GetOrderDistance(const Order *prev, const Order *cur, const Vehicle *v, int void DrawOrderString(const Vehicle *v, const Order *order, int order_index, int y, bool selected, bool timetable, int left, int middle, int right); -#define MIN_SERVINT_PERCENT 5 -#define MAX_SERVINT_PERCENT 90 -#define MIN_SERVINT_DAYS 30 -#define MAX_SERVINT_DAYS 800 +static const uint DEF_SERVINT_DAYS_TRAINS = 150; +static const uint DEF_SERVINT_DAYS_ROADVEH = 150; +static const uint DEF_SERVINT_DAYS_AIRCRAFT = 100; +static const uint DEF_SERVINT_DAYS_SHIPS = 360; +static const uint MIN_SERVINT_DAYS = 30; +static const uint MAX_SERVINT_DAYS = 800; + +static const uint DEF_SERVINT_PERCENT = 50; +static const uint MIN_SERVINT_PERCENT = 5; +static const uint MAX_SERVINT_PERCENT = 90; uint16 GetServiceIntervalClamped(uint interval, bool ispercent); bool OrderConditionCompare(OrderConditionComparator occ, int variable, int value); diff --git a/src/order_gui.cpp b/src/order_gui.cpp index 8ee97ea28d..a1dd1e2c04 100644 --- a/src/order_gui.cpp +++ b/src/order_gui.cpp @@ -769,8 +769,8 @@ static const StringID _order_conditional_condition_dispatch_slot_last[] = { INVALID_STRING_ID, }; -extern uint ConvertSpeedToDisplaySpeed(uint speed); -extern uint ConvertDisplaySpeedToSpeed(uint speed); +extern uint ConvertSpeedToDisplaySpeed(uint speed, VehicleType type); +extern uint ConvertDisplaySpeedToSpeed(uint speed, VehicleType type); static const StringID _order_depot_action_dropdown[] = { STR_ORDER_DROP_GO_ALWAYS_DEPOT, @@ -1109,7 +1109,7 @@ void DrawOrderString(const Vehicle *v, const Order *order, int order_index, int SetDParam(3, STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS + occ); break; case OCV_MAX_SPEED: - value = ConvertSpeedToDisplaySpeed(value); + value = ConvertSpeedToDisplaySpeed(value, v->type); /* FALL THROUGH */ default: SetDParam(3, STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS + occ); @@ -2455,7 +2455,7 @@ public: value = order->GetConditionValue(); break; } - if (order->GetConditionVariable() == OCV_MAX_SPEED) value = ConvertSpeedToDisplaySpeed(value); + if (order->GetConditionVariable() == OCV_MAX_SPEED) value = ConvertSpeedToDisplaySpeed(value, this->vehicle->type); if (order->GetConditionVariable() == OCV_CARGO_WAITING_AMOUNT) value = ConvertCargoQuantityToDisplayQuantity(order->GetConditionValue(), value); SetDParam(0, value); } @@ -2943,7 +2943,7 @@ public: value = order->GetConditionValue(); break; } - if (order->GetConditionVariable() == OCV_MAX_SPEED) value = ConvertSpeedToDisplaySpeed(value); + if (order->GetConditionVariable() == OCV_MAX_SPEED) value = ConvertSpeedToDisplaySpeed(value, this->vehicle->type); if (order->GetConditionVariable() == OCV_CARGO_WAITING_AMOUNT) value = ConvertCargoQuantityToDisplayQuantity(order->GetConditionValue(), value); this->query_text_widget = widget; SetDParam(0, value); @@ -3025,7 +3025,7 @@ public: switch (this->vehicle->GetOrder(sel)->GetConditionVariable()) { case OCV_MAX_SPEED: - value = Clamp(ConvertDisplaySpeedToSpeed(value), 0, 2047); + value = Clamp(ConvertDisplaySpeedToSpeed(value, this->vehicle->type), 0, 2047); break; case OCV_PERCENT: diff --git a/src/rail_gui.cpp b/src/rail_gui.cpp index 91a31281f0..e590cd9632 100644 --- a/src/rail_gui.cpp +++ b/src/rail_gui.cpp @@ -591,7 +591,7 @@ struct BuildRailToolbarWindow : Window { if (rti->max_speed > 0) { SetDParam(0, STR_TOOLBAR_RAILTYPE_VELOCITY); SetDParam(1, rti->strings.toolbar_caption); - SetDParam(2, rti->max_speed); + SetDParam(2, PackVelocity(rti->max_speed, VEH_TRAIN)); } else { SetDParam(0, rti->strings.toolbar_caption); } diff --git a/src/road.cpp b/src/road.cpp index 7f77b762bc..1a452c0d5f 100644 --- a/src/road.cpp +++ b/src/road.cpp @@ -324,7 +324,7 @@ RoadTypes ExistingRoadTypes(CompanyID c) if (!HasBit(e->info.climates, _settings_game.game_creation.landscape)) continue; /* Check whether available for all potential companies */ - if (e->company_avail != (CompanyMask)-1) continue; + if (e->company_avail != MAX_UVALUE(CompanyMask)) continue; known_roadtypes |= GetRoadTypeInfo(e->u.road.roadtype)->introduces_roadtypes; } diff --git a/src/road_gui.cpp b/src/road_gui.cpp index e217943f56..677d2024a0 100644 --- a/src/road_gui.cpp +++ b/src/road_gui.cpp @@ -463,7 +463,7 @@ struct BuildRoadToolbarWindow : Window { if (this->rti->max_speed > 0) { SetDParam(0, STR_TOOLBAR_RAILTYPE_VELOCITY); SetDParam(1, this->rti->strings.toolbar_caption); - SetDParam(2, this->rti->max_speed / 2); + SetDParam(2, PackVelocity(this->rti->max_speed / 2, VEH_ROAD)); } else { SetDParam(0, this->rti->strings.toolbar_caption); } diff --git a/src/saveload/afterload.cpp b/src/saveload/afterload.cpp index e70d5e3ce9..964106b5ec 100644 --- a/src/saveload/afterload.cpp +++ b/src/saveload/afterload.cpp @@ -2385,15 +2385,15 @@ bool AfterLoadGame() /* More companies ... */ for (Company *c : Company::Iterate()) { - if (c->bankrupt_asked == 0xFF) c->bankrupt_asked = 0xFFFF; + if (c->bankrupt_asked == 0xFF) c->bankrupt_asked = MAX_UVALUE(CompanyMask); } for (Engine *e : Engine::Iterate()) { - if (e->company_avail == 0xFF) e->company_avail = 0xFFFF; + if (e->company_avail == 0xFF) e->company_avail = MAX_UVALUE(CompanyMask); } for (Town *t : Town::Iterate()) { - if (t->have_ratings == 0xFF) t->have_ratings = 0xFFFF; + if (t->have_ratings == 0xFF) t->have_ratings = MAX_UVALUE(CompanyMask); for (uint i = 8; i != MAX_COMPANIES; i++) t->ratings[i] = RATING_INITIAL; } } @@ -3317,6 +3317,11 @@ bool AfterLoadGame() _settings_game.locale.units_height = Clamp(_old_units, 0, 2); } + if (IsSavegameVersionBefore(SLV_VELOCITY_NAUTICAL)) { + /* Match nautical velocity with land velocity units. */ + _settings_game.locale.units_velocity_nautical = _settings_game.locale.units_velocity; + } + if (IsSavegameVersionBefore(SLV_186)) { /* Move ObjectType from map to pool */ for (TileIndex t = 0; t < map_size; t++) { diff --git a/src/saveload/engine_sl.cpp b/src/saveload/engine_sl.cpp index e06699656a..9f1eebefe7 100644 --- a/src/saveload/engine_sl.cpp +++ b/src/saveload/engine_sl.cpp @@ -106,7 +106,7 @@ static void Load_ENGN() * Just cancel any previews. */ e->flags &= ~4; // ENGINE_OFFER_WINDOW_OPEN e->preview_company = INVALID_COMPANY; - e->preview_asked = (CompanyMask)-1; + e->preview_asked = MAX_UVALUE(CompanyMask); } } } diff --git a/src/saveload/oldloader_sl.cpp b/src/saveload/oldloader_sl.cpp index 7599110d7c..0362ae1675 100644 --- a/src/saveload/oldloader_sl.cpp +++ b/src/saveload/oldloader_sl.cpp @@ -410,7 +410,7 @@ static bool FixTTOEngines() /* Make sure for example monorail and maglev are available when they should be */ if (_date >= e->intro_date && HasBit(e->info.climates, 0)) { e->flags |= ENGINE_AVAILABLE; - e->company_avail = (CompanyMask)0xFF; + e->company_avail = MAX_UVALUE(CompanyMask); e->age = _date > e->intro_date ? (_date - e->intro_date) / 30 : 0; } } else { @@ -435,7 +435,7 @@ static bool FixTTOEngines() * if at least one of them was available. */ for (uint j = 0; j < lengthof(tto_to_ttd); j++) { if (tto_to_ttd[j] == i && _old_engines[j].company_avail != 0) { - e->company_avail = (CompanyMask)0xFF; + e->company_avail = MAX_UVALUE(CompanyMask); e->flags |= ENGINE_AVAILABLE; break; } @@ -445,7 +445,7 @@ static bool FixTTOEngines() } e->preview_company = INVALID_COMPANY; - e->preview_asked = (CompanyMask)-1; + e->preview_asked = MAX_UVALUE(CompanyMask); e->preview_wait = 0; e->name = nullptr; } diff --git a/src/saveload/saveload_common.h b/src/saveload/saveload_common.h index e3307e4feb..10679d1d56 100644 --- a/src/saveload/saveload_common.h +++ b/src/saveload/saveload_common.h @@ -356,6 +356,8 @@ enum SaveLoadVersion : uint16 { SLV_NEWGRF_ROAD_STOPS, ///< 303 PR#10144 NewGRF road stops. SLV_LINKGRAPH_EDGES, ///< 304 PR#10314 Explicitly store link graph edges destination. + SLV_VELOCITY_NAUTICAL, ///< 305 PR#10594 Separation of land and nautical velocity (knots!) + SL_MAX_VERSION, ///< Highest possible saveload version SL_SPRING_2013_v2_0_102 = 220, diff --git a/src/saveload/upstream/engine_sl.cpp b/src/saveload/upstream/engine_sl.cpp index 8f847025ab..d4b0437d92 100644 --- a/src/saveload/upstream/engine_sl.cpp +++ b/src/saveload/upstream/engine_sl.cpp @@ -75,7 +75,7 @@ struct ENGNChunkHandler : ChunkHandler { * Just cancel any previews. */ e->flags &= ~4; // ENGINE_OFFER_WINDOW_OPEN e->preview_company = INVALID_COMPANY; - e->preview_asked = (CompanyMask)-1; + e->preview_asked = MAX_UVALUE(CompanyMask); } } } diff --git a/src/script/api/script_text.cpp b/src/script/api/script_text.cpp index 65ed9354c0..ec1266c187 100644 --- a/src/script/api/script_text.cpp +++ b/src/script/api/script_text.cpp @@ -12,6 +12,7 @@ #include "../../strings_func.h" #include "../../game/game_text.hpp" #include "script_text.hpp" +#include "script_log.hpp" #include "../script_fatalerror.hpp" #include "../script_instance.hpp" #include "script_log.hpp" @@ -207,6 +208,9 @@ char *ScriptText::_GetEncodedText(char *p, char *lastofp, int ¶m_count, Stri const StringParams ¶ms = GetGameStringParams(this->string); int cur_idx = 0; + int prev_string = -1; + int prev_idx = -1; + int prev_count = -1; for (const StringParam &cur_param : params) { if (cur_idx >= this->paramc) { @@ -214,47 +218,100 @@ char *ScriptText::_GetEncodedText(char *p, char *lastofp, int ¶m_count, Stri break; } - switch (cur_param.type) { - case StringParam::RAW_STRING: - if (!std::holds_alternative(this->param[cur_idx])) { - this->_TextParamError(fmt::format("{}: Parameter {} expects a raw string", name, cur_idx)); - write_param_fallback(cur_idx++); - break; - } - p += seprintf(p, lastofp, ":\"%s\"", std::get(this->param[cur_idx++]).c_str()); - param_count++; - break; - - case StringParam::STRING: { - if (!std::holds_alternative(this->param[cur_idx])) { - this->_TextParamError(fmt::format("{}: Parameter {} expects a substring", name, cur_idx)); - write_param_fallback(cur_idx++); - break; - } - int count = 1; // 1 because the string id is included in consumed parameters - p += seprintf(p, lastofp, ":"); - p = std::get(this->param[cur_idx++])->_GetEncodedText(p, lastofp, count, seen_ids); - if (count != cur_param.consumes) { - this->_TextParamError(fmt::format("{}: Parameter {} substring consumes {}, but expected {} to be consumed", name, cur_idx, count - 1, cur_param.consumes - 1)); - } - param_count += count; - break; - } - - default: - if (cur_idx + cur_param.consumes > this->paramc) { - this->_TextParamError(fmt::format("{}: Not enough parameters", name)); - } - for (int i = 0; i < cur_param.consumes && cur_idx < this->paramc; i++) { - if (!std::holds_alternative(this->param[cur_idx])) { - this->_TextParamError(fmt::format("{}: Parameter {} expects an integer", name, cur_idx)); + if (this->GetActiveInstance()->IsTextParamMismatchAllowed()) { + switch (cur_param.type) { + case StringParam::RAW_STRING: + if (!std::holds_alternative(this->param[cur_idx])) { + this->_TextParamError(fmt::format("{}: Parameter {} expects a raw string", name, cur_idx)); write_param_fallback(cur_idx++); - continue; + break; } - p += seprintf(p, lastofp, ":" OTTD_PRINTFHEX64, std::get(this->param[cur_idx++])); + p += seprintf(p, lastofp, ":\"%s\"", std::get(this->param[cur_idx++]).c_str()); param_count++; + break; + + case StringParam::STRING: { + if (!std::holds_alternative(this->param[cur_idx])) { + this->_TextParamError(fmt::format("{}: Parameter {} expects a substring", name, cur_idx)); + write_param_fallback(cur_idx++); + break; + } + int count = 1; // 1 because the string id is included in consumed parameters + p += seprintf(p, lastofp, ":"); + p = std::get(this->param[cur_idx++])->_GetEncodedText(p, lastofp, count, seen_ids); + if (count != cur_param.consumes) { + this->_TextParamError(fmt::format("{}: Parameter {} substring consumes {}, but expected {} to be consumed", name, cur_idx, count - 1, cur_param.consumes - 1)); + } + param_count += count; + break; } - break; + + default: + if (cur_idx + cur_param.consumes > this->paramc) { + this->_TextParamError(fmt::format("{}: Not enough parameters", name)); + } + for (int i = 0; i < cur_param.consumes && cur_idx < this->paramc; i++) { + if (!std::holds_alternative(this->param[cur_idx])) { + this->_TextParamError(fmt::format("{}: Parameter {} expects an integer", name, cur_idx)); + write_param_fallback(cur_idx++); + continue; + } + p += seprintf(p, lastofp, ":" OTTD_PRINTFHEX64, std::get(this->param[cur_idx++])); + param_count++; + } + break; + } + } else { + if (prev_string != -1) { + /* The previous substring added more parameters than expected, means we will consume them but can't properly validate them. */ + for (int i = 0; i < cur_param.consumes; i++) { + if (prev_idx < prev_count) { + ScriptLog::Warning(fmt::format("{}: Parameter {} uses parameter {} from substring {} and cannot be validated", name, param_count + i, prev_idx++, prev_string).c_str()); + } else { + /* No more extra parameters, assume SQInteger are expected. */ + if (cur_idx >= this->paramc) throw Script_FatalError(fmt::format("{}: Not enough parameters", name)); + if (!std::holds_alternative(this->param[cur_idx])) throw Script_FatalError(fmt::format("{}: Parameter {} expects an integer", name, param_count + i)); + p += seprintf(p, lastofp, ":" OTTD_PRINTFHEX64, std::get(this->param[cur_idx++])); + } + } + if (prev_idx == prev_count) { + /* Re-enable validation. */ + prev_string = -1; + } + } else { + switch (cur_param.type) { + case StringParam::RAW_STRING: + if (!std::holds_alternative(this->param[cur_idx])) throw Script_FatalError(fmt::format("{}: Parameter {} expects a raw string", name, param_count)); + p += seprintf(p, lastofp, ":\"%s\"", std::get(this->param[cur_idx++]).c_str()); + break; + + case StringParam::STRING: { + if (!std::holds_alternative(this->param[cur_idx])) throw Script_FatalError(fmt::format("{}: Parameter {} expects a substring", name, param_count)); + int count = 0; + p += seprintf(p, lastofp, ":"); + p = std::get(this->param[cur_idx++])->_GetEncodedText(p, lastofp, count, seen_ids); + if (++count != cur_param.consumes) { + ScriptLog::Error(fmt::format("{}: Parameter {} substring consumes {}, but expected {} to be consumed", name, param_count, count - 1, cur_param.consumes - 1).c_str()); + /* Fill missing params if needed. */ + for (int i = count; i < cur_param.consumes; i++) p += seprintf(p, lastofp, ":0"); + /* Disable validation for the extra params if any. */ + if (count > cur_param.consumes) { + prev_string = param_count; + prev_idx = cur_param.consumes - 1; + prev_count = count - 1; + } + } + break; + } + + default: + if (cur_idx + cur_param.consumes > this->paramc) throw Script_FatalError(fmt::format("{}: Not enough parameters", name)); + for (int i = 0; i < cur_param.consumes; i++) { + if (!std::holds_alternative(this->param[cur_idx])) throw Script_FatalError(fmt::format("{}: Parameter {} expects an integer", name, param_count + i)); + p += seprintf(p, lastofp, ":" OTTD_PRINTFHEX64, std::get(this->param[cur_idx++])); + } + } + } } } diff --git a/src/script/script_gui.cpp b/src/script/script_gui.cpp index 713f3b393a..7f3a4ba6f2 100644 --- a/src/script/script_gui.cpp +++ b/src/script/script_gui.cpp @@ -57,19 +57,21 @@ struct ScriptListWindow : public Window { CompanyID slot; ///< The company we're selecting a new Script for. int line_height; ///< Height of a row in the matrix widget. Scrollbar *vscroll; ///< Cache of the vertical scrollbar. + bool show_all; ///< Whether to show all available versions. /** * Constructor for the window. * @param desc The description of the window. * @param slot The company we're changing the Script for. + * @param show_all Whether to show all available versions. */ - ScriptListWindow(WindowDesc *desc, CompanyID slot) : Window(desc), - slot(slot) + ScriptListWindow(WindowDesc *desc, CompanyID slot, bool show_all) : Window(desc), + slot(slot), show_all(show_all) { if (slot == OWNER_DEITY) { - this->info_list = Game::GetUniqueInfoList(); + this->info_list = this->show_all ? Game::GetInfoList() : Game::GetUniqueInfoList(); } else { - this->info_list = AI::GetUniqueInfoList(); + this->info_list = this->show_all ? AI::GetInfoList() : AI::GetUniqueInfoList(); } this->CreateNestedTree(); @@ -123,11 +125,14 @@ struct ScriptListWindow : public Window { DrawString(tr, this->slot == OWNER_DEITY ? STR_AI_CONFIG_NONE : STR_AI_CONFIG_RANDOM_AI, this->selected == -1 ? TC_WHITE : TC_ORANGE); tr.top += this->line_height; } + StringID str = this->show_all ? STR_AI_CONFIG_NAME_VERSION : STR_JUST_RAW_STRING; int i = 0; for (const auto &item : *this->info_list) { i++; if (this->vscroll->IsVisible(i)) { - DrawString(tr, item.second->GetName(), (this->selected == i - 1) ? TC_WHITE : TC_ORANGE); + SetDParamStr(0, item.second->GetName()); + SetDParam(1, item.second->GetVersion()); + DrawString(tr, str, (this->selected == i - 1) ? TC_WHITE : TC_ORANGE); tr.top += this->line_height; } } @@ -271,13 +276,14 @@ static WindowDesc _script_list_desc( ); /** - * Open the AI list window to chose an AI for the given company slot. - * @param slot The slot to change the AI of. + * Open the Script list window to chose a script for the given company slot. + * @param slot The slot to change the script of. + * @param show_all Whether to show all available versions. */ -void ShowScriptListWindow(CompanyID slot) +void ShowScriptListWindow(CompanyID slot, bool show_all) { DeleteWindowByClass(WC_SCRIPT_LIST); - new ScriptListWindow(&_script_list_desc, slot); + new ScriptListWindow(&_script_list_desc, slot, show_all); } diff --git a/src/script/script_gui.h b/src/script/script_gui.h index d892feef3a..1775d52489 100644 --- a/src/script/script_gui.h +++ b/src/script/script_gui.h @@ -13,7 +13,7 @@ #include "../company_type.h" #include "../textfile_type.h" -void ShowScriptListWindow(CompanyID slot); +void ShowScriptListWindow(CompanyID slot, bool show_all); Window *ShowScriptDebugWindow(CompanyID show_company = INVALID_COMPANY); void ShowScriptSettingsWindow(CompanyID slot); void ShowScriptTextfileWindow(TextfileType file_type, CompanyID slot); diff --git a/src/settings.cpp b/src/settings.cpp index 28b0fe7f39..62dd8648f1 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -987,7 +987,10 @@ static void UpdateConsists(int32 new_value) SetWindowClassesDirty(WC_CREATE_TEMPLATE); } -/* Check service intervals of vehicles, newvalue is value of % or day based servicing */ +/** + * Check and update if needed all vehicle service intervals. + * @param new_value Contains 0 if service intervals are in days, otherwise intervals use percents. + */ static void UpdateAllServiceInterval(int32 new_value) { bool update_vehicles; @@ -1001,15 +1004,17 @@ static void UpdateAllServiceInterval(int32 new_value) } if (new_value != 0) { - vds->servint_trains = 50; - vds->servint_roadveh = 50; - vds->servint_aircraft = 50; - vds->servint_ships = 50; + /* Service intervals are in percents. */ + vds->servint_trains = DEF_SERVINT_PERCENT; + vds->servint_roadveh = DEF_SERVINT_PERCENT; + vds->servint_aircraft = DEF_SERVINT_PERCENT; + vds->servint_ships = DEF_SERVINT_PERCENT; } else { - vds->servint_trains = 150; - vds->servint_roadveh = 150; - vds->servint_aircraft = 100; - vds->servint_ships = 360; + /* Service intervals are in days. */ + vds->servint_trains = DEF_SERVINT_DAYS_TRAINS; + vds->servint_roadveh = DEF_SERVINT_DAYS_ROADVEH; + vds->servint_aircraft = DEF_SERVINT_DAYS_AIRCRAFT; + vds->servint_ships = DEF_SERVINT_DAYS_SHIPS; } if (update_vehicles) { diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp index 4a90b716cd..06c995a1a0 100644 --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -1791,6 +1791,7 @@ static SettingsContainer &GetSettingsTree() SettingsPage *localisation = main->Add(new SettingsPage(STR_CONFIG_SETTING_LOCALISATION)); { localisation->Add(new SettingEntry("locale.units_velocity")); + localisation->Add(new SettingEntry("locale.units_velocity_nautical")); localisation->Add(new SettingEntry("locale.units_power")); localisation->Add(new SettingEntry("locale.units_weight")); localisation->Add(new SettingEntry("locale.units_volume")); @@ -2805,7 +2806,7 @@ struct GameSettingsWindow : Window { int64 value64 = value; /* Show the correct currency or velocity translated value */ if (sd->flags & SF_GUI_CURRENCY) value64 *= _currency->rate; - if (sd->flags & SF_GUI_VELOCITY) value64 = ConvertKmhishSpeedToDisplaySpeed((uint)value64); + if (sd->flags & SF_GUI_VELOCITY) value64 = ConvertKmhishSpeedToDisplaySpeed((uint)value64, VEH_TRAIN); this->valuewindow_entry = pe; if (sd->flags & SF_DECIMAL1 || (sd->flags & SF_GUI_VELOCITY && _settings_game.locale.units_velocity == 3)) { @@ -2856,7 +2857,7 @@ struct GameSettingsWindow : Window { value = (int32)ClampToI32(llvalue); /* Save the correct velocity-translated value */ - if (sd->flags & SF_GUI_VELOCITY) value = ConvertDisplaySpeedToKmhishSpeed(value); + if (sd->flags & SF_GUI_VELOCITY) value = ConvertDisplaySpeedToKmhishSpeed(value, VEH_TRAIN); } else { value = sd->def; } diff --git a/src/settings_type.h b/src/settings_type.h index e382361c72..01b1fa0a76 100644 --- a/src/settings_type.h +++ b/src/settings_type.h @@ -316,7 +316,8 @@ struct MusicSettings { /** Settings related to currency/unit systems. */ struct LocaleSettings { byte currency; ///< currency we currently use - byte units_velocity; ///< unit system for velocity + byte units_velocity; ///< unit system for velocity of trains and road vehicles + byte units_velocity_nautical; ///< unit system for velocity of ships and aircraft byte units_power; ///< unit system for power byte units_weight; ///< unit system for weight byte units_volume; ///< unit system for volume diff --git a/src/smallmap_gui.cpp b/src/smallmap_gui.cpp index 63a6a8104c..fb56177bc5 100644 --- a/src/smallmap_gui.cpp +++ b/src/smallmap_gui.cpp @@ -1585,7 +1585,7 @@ int SmallMapWindow::GetPositionOnLegend(Point pt) if (!this->refresh.Elapsed(delta_ms)) return; if (this->map_type == SMT_LINKSTATS) { - uint32 company_mask = this->GetOverlayCompanyMask(); + CompanyMask company_mask = this->GetOverlayCompanyMask(); if (this->overlay->GetCompanyMask() != company_mask) { this->overlay->SetCompanyMask(company_mask); } else { diff --git a/src/smallmap_gui.h b/src/smallmap_gui.h index 958e21ee35..939f8382b8 100644 --- a/src/smallmap_gui.h +++ b/src/smallmap_gui.h @@ -169,9 +169,9 @@ protected: * the _local_company. Spectators get to see all companies' links. * @return Company mask. */ - inline uint32 GetOverlayCompanyMask() const + inline CompanyMask GetOverlayCompanyMask() const { - return Company::IsValidID(_local_company) ? 1U << _local_company : 0xffffffff; + return Company::IsValidID(_local_company) ? 1U << _local_company : MAX_UVALUE(CompanyMask); } uint GetNumberRowsLegend(uint columns) const; diff --git a/src/strings.cpp b/src/strings.cpp index f2499e1ea3..389d979516 100644 --- a/src/strings.cpp +++ b/src/strings.cpp @@ -755,10 +755,11 @@ struct UnitsLong { /** Unit conversions for velocity. */ static const Units _units_velocity[] = { - { { 1, 0}, STR_UNITS_VELOCITY_IMPERIAL, 0 }, - { { 103, 6}, STR_UNITS_VELOCITY_METRIC, 0 }, - { { 1831, 12}, STR_UNITS_VELOCITY_SI, 0 }, - { {37888, 16}, STR_UNITS_VELOCITY_GAMEUNITS, 1 }, + { { 1, 0}, STR_UNITS_VELOCITY_IMPERIAL, 0 }, + { { 103, 6}, STR_UNITS_VELOCITY_METRIC, 0 }, + { { 1831, 12}, STR_UNITS_VELOCITY_SI, 0 }, + { { 37888, 16}, STR_UNITS_VELOCITY_GAMEUNITS, 1 }, + { { 7289499, 23}, STR_UNITS_VELOCITY_KNOTS, 0 }, }; /** Unit conversions for power. */ @@ -809,17 +810,29 @@ static const Units _units_height[] = { { { 1, 0}, STR_UNITS_HEIGHT_SI, 0 }, }; +/** + * Get index for velocity conversion units for a vehicle type. + * @param type VehicleType to convert velocity for. + * @return Index within velocity conversion units for vehicle type. + */ +static byte GetVelocityUnits(VehicleType type) +{ + if (type == VEH_SHIP || type == VEH_AIRCRAFT) return _settings_game.locale.units_velocity_nautical; + + return _settings_game.locale.units_velocity; +} + /** * Convert the given (internal) speed to the display speed. * @param speed the speed to convert * @return the converted speed. */ -uint ConvertSpeedToDisplaySpeed(uint speed) +uint ConvertSpeedToDisplaySpeed(uint speed, VehicleType type) { /* For historical reasons we don't want to mess with the * conversion for speed. So, don't round it and keep the * original conversion factors instead of the real ones. */ - return _units_velocity[_settings_game.locale.units_velocity].c.ToDisplay(speed, false); + return _units_velocity[GetVelocityUnits(type)].c.ToDisplay(speed, false); } /** @@ -827,9 +840,9 @@ uint ConvertSpeedToDisplaySpeed(uint speed) * @param speed the speed to convert * @return the converted speed. */ -uint ConvertSpeedToUnitDisplaySpeed(uint speed) +uint ConvertSpeedToUnitDisplaySpeed(uint speed, VehicleType type) { - uint result = ConvertSpeedToDisplaySpeed(speed); + uint result = ConvertSpeedToDisplaySpeed(speed, type); for (uint i = 0; i < _units_velocity[_settings_game.locale.units_velocity].decimal_places; i++) { result /= 10; } @@ -841,9 +854,9 @@ uint ConvertSpeedToUnitDisplaySpeed(uint speed) * @param speed the speed to convert * @return the converted speed. */ -uint ConvertDisplaySpeedToSpeed(uint speed) +uint ConvertDisplaySpeedToSpeed(uint speed, VehicleType type) { - return _units_velocity[_settings_game.locale.units_velocity].c.FromDisplay(speed); + return _units_velocity[GetVelocityUnits(type)].c.FromDisplay(speed); } /** @@ -851,9 +864,9 @@ uint ConvertDisplaySpeedToSpeed(uint speed) * @param speed the speed to convert * @return the converted speed. */ -uint ConvertKmhishSpeedToDisplaySpeed(uint speed) +uint ConvertKmhishSpeedToDisplaySpeed(uint speed, VehicleType type) { - return _units_velocity[_settings_game.locale.units_velocity].c.ToDisplay(speed * 10, false) / 16; + return _units_velocity[GetVelocityUnits(type)].c.ToDisplay(speed * 10, false) / 16; } /** @@ -861,9 +874,9 @@ uint ConvertKmhishSpeedToDisplaySpeed(uint speed) * @param speed the speed to convert * @return the converted speed. */ -uint ConvertDisplaySpeedToKmhishSpeed(uint speed) +uint ConvertDisplaySpeedToKmhishSpeed(uint speed, VehicleType type) { - return _units_velocity[_settings_game.locale.units_velocity].c.FromDisplay(speed * 16, true, 10); + return _units_velocity[GetVelocityUnits(type)].c.FromDisplay(speed * 16, true, 10); } /** @@ -1620,11 +1633,15 @@ static char *FormatString(char *buff, const char *str_arg, StringParameters *arg } case SCC_VELOCITY: { // {VELOCITY} - assert(_settings_game.locale.units_velocity < lengthof(_units_velocity)); - unsigned int decimal_places = _units_velocity[_settings_game.locale.units_velocity].decimal_places; - uint64 args_array[] = {ConvertKmhishSpeedToDisplaySpeed(args->GetInt64(SCC_VELOCITY)), decimal_places}; + int64 arg = args->GetInt64(SCC_VELOCITY); + // Unpack vehicle type from packed argument to get desired units. + VehicleType vt = static_cast(GB(arg, 56, 8)); + byte units = GetVelocityUnits(vt); + assert(units < lengthof(_units_velocity)); + unsigned int decimal_places = _units_velocity[units].decimal_places; + uint64 args_array[] = {ConvertKmhishSpeedToDisplaySpeed(GB(arg, 0, 56), vt), decimal_places}; StringParameters tmp_params(args_array, decimal_places ? 2 : 1, nullptr); - buff = FormatString(buff, GetStringPtr(_units_velocity[_settings_game.locale.units_velocity].s), &tmp_params, last); + buff = FormatString(buff, GetStringPtr(_units_velocity[units].s), &tmp_params, last); break; } diff --git a/src/strings_func.h b/src/strings_func.h index e5c2284066..213fc1f1d4 100644 --- a/src/strings_func.h +++ b/src/strings_func.h @@ -14,6 +14,7 @@ #include "string_type.h" #include "gfx_type.h" #include "core/bitmath_func.hpp" +#include "vehicle_type.h" /** * Extract the StringTab from a StringID. @@ -175,8 +176,21 @@ char *GetStringWithArgs(char *buffr, StringID string, StringParameters *args, co const char *GetStringPtr(StringID string); uint32 GetStringGRFID(StringID string); -uint ConvertKmhishSpeedToDisplaySpeed(uint speed); -uint ConvertDisplaySpeedToKmhishSpeed(uint speed); +uint ConvertKmhishSpeedToDisplaySpeed(uint speed, VehicleType type); +uint ConvertDisplaySpeedToKmhishSpeed(uint speed, VehicleType type); + +/** + * Pack velocity and vehicle type for use with SCC_VELOCITY string parameter. + * @param speed Display speed for parameter. + * @param type Type of vehicle for parameter. + * @return Bit-packed velocity and vehicle type, for use with SetDParam(). + */ +static inline int64 PackVelocity(uint speed, VehicleType type) +{ + /* Vehicle type is a byte, so packed into the top 8 bits of the 64-bit + * parameter, although only values from 0-3 are relevant. */ + return speed | (static_cast(type) << 56); +} WChar GetDecimalSeparatorChar(); diff --git a/src/table/settings/company_settings.ini b/src/table/settings/company_settings.ini index 8087d3d08f..2b339dbd4b 100644 --- a/src/table/settings/company_settings.ini +++ b/src/table/settings/company_settings.ini @@ -91,9 +91,10 @@ post_cb = UpdateAllServiceInterval var = vehicle.servint_trains type = SLE_UINT16 flags = SF_PER_COMPANY | SF_GUI_0_IS_SPECIAL -def = 150 -min = 5 -max = 800 +def = DEF_SERVINT_DAYS_TRAINS +min = MIN_SERVINT_PERCENT +max = MAX_SERVINT_DAYS +interval = 1 str = STR_CONFIG_SETTING_SERVINT_TRAINS strhelp = STR_CONFIG_SETTING_SERVINT_TRAINS_HELPTEXT strval = STR_CONFIG_SETTING_SERVINT_VALUE @@ -104,9 +105,10 @@ post_cb = [](auto new_value) { UpdateServiceInterval(VEH_TRAIN, new_value); } var = vehicle.servint_roadveh type = SLE_UINT16 flags = SF_PER_COMPANY | SF_GUI_0_IS_SPECIAL -def = 150 -min = 5 -max = 800 +def = DEF_SERVINT_DAYS_ROADVEH +min = MIN_SERVINT_PERCENT +max = MAX_SERVINT_DAYS +interval = 1 str = STR_CONFIG_SETTING_SERVINT_ROAD_VEHICLES strhelp = STR_CONFIG_SETTING_SERVINT_ROAD_VEHICLES_HELPTEXT strval = STR_CONFIG_SETTING_SERVINT_VALUE @@ -117,9 +119,10 @@ post_cb = [](auto new_value) { UpdateServiceInterval(VEH_ROAD, new_value); } var = vehicle.servint_ships type = SLE_UINT16 flags = SF_PER_COMPANY | SF_GUI_0_IS_SPECIAL -def = 360 -min = 5 -max = 800 +def = DEF_SERVINT_DAYS_SHIPS +min = MIN_SERVINT_PERCENT +max = MAX_SERVINT_DAYS +interval = 1 str = STR_CONFIG_SETTING_SERVINT_SHIPS strhelp = STR_CONFIG_SETTING_SERVINT_SHIPS_HELPTEXT strval = STR_CONFIG_SETTING_SERVINT_VALUE @@ -130,9 +133,10 @@ post_cb = [](auto new_value) { UpdateServiceInterval(VEH_SHIP, new_value); } var = vehicle.servint_aircraft type = SLE_UINT16 flags = SF_PER_COMPANY | SF_GUI_0_IS_SPECIAL -def = 100 -min = 5 -max = 800 +def = DEF_SERVINT_DAYS_AIRCRAFT +min = MIN_SERVINT_PERCENT +max = MAX_SERVINT_DAYS +interval = 1 str = STR_CONFIG_SETTING_SERVINT_AIRCRAFT strhelp = STR_CONFIG_SETTING_SERVINT_AIRCRAFT_HELPTEXT strval = STR_CONFIG_SETTING_SERVINT_VALUE diff --git a/src/table/settings/settings.ini b/src/table/settings/settings.ini index 5a2d8385b1..45da994744 100644 --- a/src/table/settings/settings.ini +++ b/src/table/settings/settings.ini @@ -2512,13 +2512,14 @@ post_cb = InvalidateCompanyWindow var = economy.min_years_for_shares type = SLE_UINT8 from = SLV_TRADING_AGE +flags = SF_GUI_0_IS_SPECIAL def = 6 min = 0 max = 255 interval = 1 str = STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES strhelp = STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_HELPTEXT -strval = STR_JUST_INT +strval = STR_CONFIG_SETTING_MIN_YEARS_FOR_SHARES_VALUE cat = SC_EXPERT [SDT_VAR] @@ -4190,7 +4191,7 @@ type = SLE_UINT8 from = SLV_184 flags = SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN def = 1 -max = 3 +max = 4 full = _locale_units post_cb = VelocityUnitsChanged cat = SC_BASIC @@ -4198,6 +4199,20 @@ str = STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY strhelp = STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT strval = STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL +[SDT_OMANY] +var = locale.units_velocity_nautical +type = SLE_UINT8 +from = SLV_VELOCITY_NAUTICAL +flags = SF_NO_NETWORK_SYNC | SF_GUI_DROPDOWN +def = 1 +max = 4 +full = _locale_units +post_cb = VelocityUnitsChanged +cat = SC_BASIC +str = STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_NAUTICAL +strhelp = STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_HELPTEXT +strval = STR_CONFIG_SETTING_LOCALISATION_UNITS_VELOCITY_IMPERIAL + [SDT_OMANY] var = locale.units_power type = SLE_UINT8 diff --git a/src/timetable_gui.cpp b/src/timetable_gui.cpp index 76e792e615..927ccb118a 100644 --- a/src/timetable_gui.cpp +++ b/src/timetable_gui.cpp @@ -720,7 +720,7 @@ struct TimetableWindow : GeneralVehicleWindow { string = order->GetMaxSpeed() != UINT16_MAX ? STR_TIMETABLE_TRAVEL_FOR_SPEED : STR_TIMETABLE_TRAVEL_FOR; } - SetDParam(string == STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED ? 2 : 4, order->GetMaxSpeed()); + SetDParam(string == STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED ? 2 : 4, PackVelocity(order->GetMaxSpeed(), v->type)); int edge = DrawString(rtl ? tr.left : middle, rtl ? middle : tr.right, tr.top, string, colour); @@ -966,7 +966,7 @@ struct TimetableWindow : GeneralVehicleWindow { const Order *order = v->GetOrder(real); if (order != nullptr) { if (order->GetMaxSpeed() != UINT16_MAX) { - SetDParam(0, ConvertKmhishSpeedToDisplaySpeed(order->GetMaxSpeed())); + SetDParam(0, ConvertKmhishSpeedToDisplaySpeed(order->GetMaxSpeed(), v->type)); current = STR_JUST_INT; } } @@ -1113,7 +1113,7 @@ struct TimetableWindow : GeneralVehicleWindow { uint64 val = StrEmpty(str) ? 0 : strtoul(str, nullptr, 10); uint32 p2; if (this->query_is_speed_query) { - val = ConvertDisplaySpeedToKmhishSpeed(val); + val = ConvertDisplaySpeedToKmhishSpeed(val, v->type); p2 = std::min(val, UINT16_MAX); } else { if (!_settings_client.gui.timetable_in_ticks) val *= DATE_UNIT_SIZE; diff --git a/src/tracerestrict_gui.cpp b/src/tracerestrict_gui.cpp index 66e335f070..88f14820f3 100644 --- a/src/tracerestrict_gui.cpp +++ b/src/tracerestrict_gui.cpp @@ -979,8 +979,8 @@ static uint ConvertIntegerValue(TraceRestrictValueType type, uint in, bool to_di case TRVT_SPEED: return to_display - ? ConvertKmhishSpeedToDisplaySpeed(in) - : ConvertDisplaySpeedToKmhishSpeed(in); + ? ConvertKmhishSpeedToDisplaySpeed(in, VEH_TRAIN) + : ConvertDisplaySpeedToKmhishSpeed(in, VEH_TRAIN); case TRVT_WEIGHT: return to_display @@ -1029,7 +1029,7 @@ static void ConvertValueToDecimal(TraceRestrictValueType type, uint in, int64 &v case TRVT_SPEED: decimal = _settings_game.locale.units_velocity == 3 ? 1 : 0; - value = ConvertKmhishSpeedToDisplaySpeed(in); + value = ConvertKmhishSpeedToDisplaySpeed(in, VEH_TRAIN); break; default: @@ -1050,7 +1050,7 @@ static uint ConvertDecimalToValue(TraceRestrictValueType type, double in) return ConvertDisplayToForceWeightRatio(in); case TRVT_SPEED: - return ConvertDisplaySpeedToKmhishSpeed(in * (_settings_game.locale.units_velocity == 3 ? 10 : 1)); + return ConvertDisplaySpeedToKmhishSpeed(in * (_settings_game.locale.units_velocity == 3 ? 10 : 1), VEH_TRAIN); default: NOT_REACHED(); diff --git a/src/unit_conversion.h b/src/unit_conversion.h index 055b056a76..76c189e49b 100644 --- a/src/unit_conversion.h +++ b/src/unit_conversion.h @@ -10,9 +10,9 @@ #ifndef UNIT_CONVERSION_H #define UNIT_CONVERSION_H -uint ConvertSpeedToDisplaySpeed(uint speed); -uint ConvertSpeedToUnitDisplaySpeed(uint speed); -uint ConvertDisplaySpeedToSpeed(uint speed); +uint ConvertSpeedToDisplaySpeed(uint speed, VehicleType type); +uint ConvertSpeedToUnitDisplaySpeed(uint speed, VehicleType type); +uint ConvertDisplaySpeedToSpeed(uint speed, VehicleType type); uint ConvertWeightToDisplayWeight(uint weight); uint ConvertDisplayWeightToWeight(uint weight); uint ConvertPowerToDisplayPower(uint power); diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index 090a9b4831..fd27b160e3 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -3140,7 +3140,7 @@ struct VehicleDetailsWindow : Window { if (v->type == VEH_TRAIN || (v->type == VEH_ROAD && _settings_game.vehicle.roadveh_acceleration_model != AM_ORIGINAL)) { const GroundVehicleCache *gcache = v->GetGroundVehicleCache(); - SetDParam(2, v->GetDisplayMaxSpeed()); + SetDParam(2, PackVelocity(v->GetDisplayMaxSpeed(), v->type)); SetDParam(1, gcache->cached_power); SetDParam(0, gcache->cached_weight); SetDParam(3, gcache->cached_max_te / 1000); @@ -3151,7 +3151,7 @@ struct VehicleDetailsWindow : Window { string = STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE; } } else { - SetDParam(0, v->GetDisplayMaxSpeed()); + SetDParam(0, PackVelocity(v->GetDisplayMaxSpeed(), v->type)); if (v->type == VEH_AIRCRAFT) { SetDParam(1, v->GetEngine()->GetAircraftTypeText()); if (Aircraft::From(v)->GetRange() > 0) { @@ -3821,7 +3821,7 @@ public: str = STR_VEHICLE_STATUS_STOPPED; } } else { - SetDParam(0, v->GetDisplaySpeed()); + SetDParam(0, PackVelocity(v->GetDisplaySpeed(), v->type)); str = STR_VEHICLE_STATUS_TRAIN_STOPPING_VEL; } } else if (v->type == VEH_ROAD) { @@ -3856,7 +3856,7 @@ public: switch (v->current_order.GetType()) { case OT_GOTO_STATION: { SetDParam(0, v->current_order.GetDestination()); - SetDParam(1, v->GetDisplaySpeed()); + SetDParam(1, PackVelocity(v->GetDisplaySpeed(), v->type)); str = HasBit(v->vehicle_flags, VF_PATHFINDER_LOST) ? STR_VEHICLE_STATUS_CANNOT_REACH_STATION_VEL : STR_VEHICLE_STATUS_HEADING_FOR_STATION_VEL; break; } @@ -3864,7 +3864,7 @@ public: case OT_GOTO_DEPOT: { SetDParam(0, v->type); SetDParam(1, v->current_order.GetDestination()); - SetDParam(2, v->GetDisplaySpeed()); + SetDParam(2, PackVelocity(v->GetDisplaySpeed(), v->type)); if (v->current_order.GetDestination() == INVALID_DEPOT) { /* This case *only* happens when multiple nearest depot orders * follow each other (including an order list only one order: a @@ -3897,7 +3897,7 @@ public: assert(v->type == VEH_TRAIN || v->type == VEH_ROAD || v->type == VEH_SHIP); SetDParam(0, v->current_order.GetDestination()); str = HasBit(v->vehicle_flags, VF_PATHFINDER_LOST) ? STR_VEHICLE_STATUS_CANNOT_REACH_WAYPOINT_VEL : STR_VEHICLE_STATUS_HEADING_FOR_WAYPOINT_VEL; - SetDParam(1, v->GetDisplaySpeed()); + SetDParam(1, PackVelocity(v->GetDisplaySpeed(), v->type)); break; } @@ -3915,7 +3915,7 @@ public: default: if (v->GetNumManualOrders() == 0) { str = STR_VEHICLE_STATUS_NO_ORDERS_VEL; - SetDParam(0, v->GetDisplaySpeed()); + SetDParam(0, PackVelocity(v->GetDisplaySpeed(), v->type)); } else { str = STR_EMPTY; }