From b22fbfbe3ddb1b965efdc948fe47cf9002cd3c71 Mon Sep 17 00:00:00 2001 From: glx Date: Mon, 28 Jan 2019 23:51:34 +0100 Subject: [PATCH 01/13] Add: allow opening of one TextfileWindow per type --- src/ai/ai_gui.cpp | 2 +- src/network/network_content_gui.cpp | 2 +- src/newgrf_gui.cpp | 2 +- src/settings_gui.cpp | 2 +- src/textfile_gui.cpp | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/ai/ai_gui.cpp b/src/ai/ai_gui.cpp index 8dad16fabc..aa56b3d830 100644 --- a/src/ai/ai_gui.cpp +++ b/src/ai/ai_gui.cpp @@ -660,7 +660,7 @@ struct ScriptTextfileWindow : public TextfileWindow { */ void ShowScriptTextfileWindow(TextfileType file_type, CompanyID slot) { - DeleteWindowByClass(WC_TEXTFILE); + DeleteWindowById(WC_TEXTFILE, file_type); new ScriptTextfileWindow(file_type, slot); } diff --git a/src/network/network_content_gui.cpp b/src/network/network_content_gui.cpp index 1df2fc82c4..877dea9786 100644 --- a/src/network/network_content_gui.cpp +++ b/src/network/network_content_gui.cpp @@ -76,7 +76,7 @@ struct ContentTextfileWindow : public TextfileWindow { void ShowContentTextfileWindow(TextfileType file_type, const ContentInfo *ci) { - DeleteWindowByClass(WC_TEXTFILE); + DeleteWindowById(WC_TEXTFILE, file_type); new ContentTextfileWindow(file_type, ci); } diff --git a/src/newgrf_gui.cpp b/src/newgrf_gui.cpp index 140e296571..868fad968b 100644 --- a/src/newgrf_gui.cpp +++ b/src/newgrf_gui.cpp @@ -561,7 +561,7 @@ struct NewGRFTextfileWindow : public TextfileWindow { void ShowNewGRFTextfileWindow(TextfileType file_type, const GRFConfig *c) { - DeleteWindowByClass(WC_TEXTFILE); + DeleteWindowById(WC_TEXTFILE, file_type); new NewGRFTextfileWindow(file_type, c); } diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp index 134b1f58ff..e94f96bc46 100644 --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -162,7 +162,7 @@ struct BaseSetTextfileWindow : public TextfileWindow { template void ShowBaseSetTextfileWindow(TextfileType file_type, const TBaseSet* baseset, StringID content_type) { - DeleteWindowByClass(WC_TEXTFILE); + DeleteWindowById(WC_TEXTFILE, file_type); new BaseSetTextfileWindow(file_type, baseset, content_type); } diff --git a/src/textfile_gui.cpp b/src/textfile_gui.cpp index b0f9b1125a..ff5226c2b5 100644 --- a/src/textfile_gui.cpp +++ b/src/textfile_gui.cpp @@ -65,7 +65,7 @@ TextfileWindow::TextfileWindow(TextfileType file_type) : Window(&_textfile_desc) this->CreateNestedTree(); this->vscroll = this->GetScrollbar(WID_TF_VSCROLLBAR); this->hscroll = this->GetScrollbar(WID_TF_HSCROLLBAR); - this->FinishInitNested(); + this->FinishInitNested(file_type); this->GetWidget(WID_TF_CAPTION)->SetDataTip(STR_TEXTFILE_README_CAPTION + file_type, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS); this->hscroll->SetStepSize(10); // Speed up horizontal scrollbar From 6a56a4ce84165ad85d4e66944ef6691d94c9d0c3 Mon Sep 17 00:00:00 2001 From: Nikolas Nyby Date: Mon, 28 Jan 2019 21:54:32 -0500 Subject: [PATCH 02/13] Fix #6584: text layout problem in engine preview dialog With language set to German, there was a problem in this dialog box due to the long strings in this language. It looks like the call to `GetStringHeight()` here is using `r.top` to help calculate the max width, rather than `r.left`. --- src/engine_gui.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engine_gui.cpp b/src/engine_gui.cpp index 5e9e8cef7e..51c7e14836 100644 --- a/src/engine_gui.cpp +++ b/src/engine_gui.cpp @@ -108,7 +108,7 @@ struct EnginePreviewWindow : Window { EngineID engine = this->window_number; SetDParam(0, GetEngineCategoryName(engine)); - int y = r.top + GetStringHeight(STR_ENGINE_PREVIEW_MESSAGE, r.right - r.top + 1); + int y = r.top + GetStringHeight(STR_ENGINE_PREVIEW_MESSAGE, r.right - r.left + 1); y = DrawStringMultiLine(r.left, r.right, r.top, y, STR_ENGINE_PREVIEW_MESSAGE, TC_FROMSTRING, SA_CENTER) + WD_PAR_VSEP_WIDE; SetDParam(0, engine); From 7c6e10dbfccee23693cd6bffa6b8089555fe44d7 Mon Sep 17 00:00:00 2001 From: Niels Martin Hansen Date: Tue, 29 Jan 2019 17:18:12 +0100 Subject: [PATCH 03/13] Update: Visual Studio 2019 solution file version upgrade (#7135) --- projects/openttd_vs142.sln | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/projects/openttd_vs142.sln b/projects/openttd_vs142.sln index f07fb388d5..15cd430168 100644 --- a/projects/openttd_vs142.sln +++ b/projects/openttd_vs142.sln @@ -1,7 +1,6 @@ - Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.23107.0 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.28516.95 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "openttd", "openttd_vs142.vcxproj", "{668328A0-B40E-4CDB-BD72-D0064424414A}" EndProject @@ -97,6 +96,9 @@ Global GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {1DE4D2BD-DBC4-4304-907E-34994EEAA4C1} + EndGlobalSection GlobalSection(DPCodeReviewSolutionGUID) = preSolution DPCodeReviewSolutionGUID = {00000000-0000-0000-0000-000000000000} EndGlobalSection From 498ca6e4eba6477633e4efa28ad32889504c17a6 Mon Sep 17 00:00:00 2001 From: PeterN Date: Tue, 29 Jan 2019 17:15:54 +0000 Subject: [PATCH 04/13] Add: [GitHub] Add issue template to encourage better issue reporting. (#7137) --- .github/ISSUE_TEMPLATE.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE.md diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 0000000000..ba365bfe4f --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,7 @@ +## Version of OpenTTD + +## Expected result + +## Actual result + +## Steps to reproduce From 48fb57550240ea50497f1ab55dff91c583d71ebb Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Tue, 29 Jan 2019 08:01:28 +0000 Subject: [PATCH 05/13] Fix 11ab3c4ea2f: Vehicles could not be refitted to cargo IDs higher than 32. --- src/economy.cpp | 4 ++-- src/vehicle_cmd.cpp | 14 +++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/economy.cpp b/src/economy.cpp index c7ffa96cc7..6d3c2a8b26 100644 --- a/src/economy.cpp +++ b/src/economy.cpp @@ -1484,7 +1484,7 @@ static void HandleStationRefit(Vehicle *v, CargoArray &consist_capleft, Station if (st->goods[cid].cargo.HasCargoFor(next_station)) { /* Try to find out if auto-refitting would succeed. In case the refit is allowed, * the returned refit capacity will be greater than zero. */ - DoCommand(v_start->tile, v_start->index, cid | 1U << 6 | 0xFF << 8 | 1U << 16, DC_QUERY_COST, GetCmdRefitVeh(v_start)); // Auto-refit and only this vehicle including artic parts. + DoCommand(v_start->tile, v_start->index, cid | 1U << 24 | 0xFF << 8 | 1U << 16, DC_QUERY_COST, GetCmdRefitVeh(v_start)); // Auto-refit and only this vehicle including artic parts. /* Try to balance different loadable cargoes between parts of the consist, so that * all of them can be loaded. Avoid a situation where all vehicles suddenly switch * to the first loadable cargo for which there is only one packet. If the capacities @@ -1507,7 +1507,7 @@ static void HandleStationRefit(Vehicle *v, CargoArray &consist_capleft, Station * "via any station" before reserving. We rather produce some more "any station" cargo than * misrouting it. */ IterateVehicleParts(v_start, ReturnCargoAction(st, INVALID_STATION)); - CommandCost cost = DoCommand(v_start->tile, v_start->index, new_cid | 1U << 6 | 0xFF << 8 | 1U << 16, DC_EXEC, GetCmdRefitVeh(v_start)); // Auto-refit and only this vehicle including artic parts. + CommandCost cost = DoCommand(v_start->tile, v_start->index, new_cid | 1U << 24 | 0xFF << 8 | 1U << 16, DC_EXEC, GetCmdRefitVeh(v_start)); // Auto-refit and only this vehicle including artic parts. if (cost.Succeeded()) v->First()->profit_this_year -= cost.GetCost() << 8; } diff --git a/src/vehicle_cmd.cpp b/src/vehicle_cmd.cpp index 9231ad689d..9f8e038877 100644 --- a/src/vehicle_cmd.cpp +++ b/src/vehicle_cmd.cpp @@ -420,12 +420,12 @@ static CommandCost RefitVehicle(Vehicle *v, bool only_this, uint8 num_vehicles, * @param flags type of operation * @param p1 vehicle ID to refit * @param p2 various bitstuffed elements - * - p2 = (bit 0-4) - New cargo type to refit to. - * - p2 = (bit 6) - Automatic refitting. - * - p2 = (bit 7) - Refit only this vehicle. Used only for cloning vehicles. + * - p2 = (bit 0-7) - New cargo type to refit to. * - p2 = (bit 8-15) - New cargo subtype to refit to. 0xFF means to try keeping the same subtype according to GetBestFittingSubType(). * - p2 = (bit 16-23) - Number of vehicles to refit (not counting articulated parts). Zero means all vehicles. * Only used if "refit only this vehicle" is false. + * - p2 = (bit 24) - Automatic refitting. + * - p2 = (bit 25) - Refit only this vehicle. Used only for cloning vehicles. * @param text unused * @return the cost of this operation or an error */ @@ -443,7 +443,7 @@ CommandCost CmdRefitVehicle(TileIndex tile, DoCommandFlag flags, uint32 p1, uint CommandCost ret = CheckOwnership(front->owner); if (ret.Failed()) return ret; - bool auto_refit = HasBit(p2, 6); + bool auto_refit = HasBit(p2, 24); bool free_wagon = v->type == VEH_TRAIN && Train::From(front)->IsFreeWagon(); // used by autoreplace/renew /* Don't allow shadows and such to be refitted. */ @@ -460,12 +460,12 @@ CommandCost CmdRefitVehicle(TileIndex tile, DoCommandFlag flags, uint32 p1, uint if (front->vehstatus & VS_CRASHED) return_cmd_error(STR_ERROR_VEHICLE_IS_DESTROYED); /* Check cargo */ - CargoID new_cid = GB(p2, 0, 5); + CargoID new_cid = GB(p2, 0, 8); byte new_subtype = GB(p2, 8, 8); if (new_cid >= NUM_CARGO) return CMD_ERROR; /* For ships and aircraft there is always only one. */ - bool only_this = HasBit(p2, 7) || front->type == VEH_SHIP || front->type == VEH_AIRCRAFT; + bool only_this = HasBit(p2, 25) || front->type == VEH_SHIP || front->type == VEH_AIRCRAFT; uint8 num_vehicles = GB(p2, 16, 8); CommandCost cost = RefitVehicle(v, only_this, num_vehicles, new_cid, new_subtype, flags, auto_refit); @@ -899,7 +899,7 @@ CommandCost CmdCloneVehicle(TileIndex tile, DoCommandFlag flags, uint32 p1, uint /* Find out what's the best sub type */ byte subtype = GetBestFittingSubType(v, w, v->cargo_type); if (w->cargo_type != v->cargo_type || w->cargo_subtype != subtype) { - CommandCost cost = DoCommand(0, w->index, v->cargo_type | 1U << 7 | (subtype << 8), flags, GetCmdRefitVeh(v)); + CommandCost cost = DoCommand(0, w->index, v->cargo_type | 1U << 25 | (subtype << 8), flags, GetCmdRefitVeh(v)); if (cost.Succeeded()) total_cost.AddCost(cost); } From a1c37810108492c64913c95f8db72b1beed32fb0 Mon Sep 17 00:00:00 2001 From: translators Date: Tue, 29 Jan 2019 19:45:47 +0100 Subject: [PATCH 06/13] Update: Translations from eints swedish: 13 changes by Joel_A croatian: 7 changes by VoyagerOne --- src/lang/croatian.txt | 8 +++++++- src/lang/swedish.txt | 20 +++++++++++++------- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index 79b6b1d9b0..8b0bd232fd 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -1916,7 +1916,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Promijen STR_CHEAT_SETUP_PROD :{LTBLUE}Omogući izmjeni produkcijskih vrijednosti: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Nova boja +STR_LIVERY_CAPTION :{WHITE}{COMPANY} -Boja STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Pokaži generalne sheme boja STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Pokaži sheme boja za vlak @@ -2991,7 +2991,12 @@ STR_NEWGRF_SETTINGS_VERSION :{BLACK}Verzija: STR_NEWGRF_SETTINGS_MIN_VERSION :{BLACK}Min. kompatibilna verzija: {SILVER}{NUM} STR_NEWGRF_SETTINGS_MD5SUM :{BLACK}MD5 suma: {SILVER}{STRING} STR_NEWGRF_SETTINGS_PALETTE :{BLACK}Paleta: {SILVER}{STRING} +STR_NEWGRF_SETTINGS_PALETTE_DEFAULT :Osnovna postavka (D) +STR_NEWGRF_SETTINGS_PALETTE_DEFAULT_32BPP :Osnovna postavka (D) / 32 bpp +STR_NEWGRF_SETTINGS_PALETTE_LEGACY :Legacy (W) +STR_NEWGRF_SETTINGS_PALETTE_LEGACY_32BPP :Legacy (W) / 32 bpp STR_NEWGRF_SETTINGS_PARAMETER :{BLACK}Parametri: {SILVER}{STRING} +STR_NEWGRF_SETTINGS_PARAMETER_NONE :Ništa STR_NEWGRF_SETTINGS_NO_INFO :{BLACK}Nema dostupnih informacija STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}Nije pronađena odgovarajuća datoteka @@ -3554,6 +3559,7 @@ STR_PURCHASE_INFO_AIRCRAFT_CAPACITY :{BLACK}Nosivost STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK} Pokretni vagoni:.{GOLD}+{POWER}{BLACK} Težina: {GOLD}+{WEIGHT_SHORT} STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Prenamjenjivo u: {GOLD}{STRING} STR_PURCHASE_INFO_ALL_TYPES :Sve vrste tereta +STR_PURCHASE_INFO_NONE :Ništa STR_PURCHASE_INFO_ALL_BUT :Sve osim {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK} Najveća vučna sila: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Domet: {GOLD}{COMMA} polja diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index 00ce1dd183..67eaa1ac6a 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -810,6 +810,7 @@ STR_NEWS_MERGER_TAKEOVER_TITLE :{BIG_FONT}{BLAC STR_PRESIDENT_NAME_MANAGER :{BLACK}{PRESIDENT_NAME}{}(VD) STR_NEWS_NEW_TOWN :{BLACK}{BIG_FONT}{STRING} har sponsrat byggnationen av nya staden {TOWN}! +STR_NEWS_NEW_TOWN_UNSPONSORED :{BLACK}{BIG_FONT}En ny stad, kallad {TOWN}, har grundats! STR_NEWS_INDUSTRY_CONSTRUCTION :{BIG_FONT}{BLACK}Ny {STRING} under konstruktion nära {TOWN}! STR_NEWS_INDUSTRY_PLANTED :{BIG_FONT}{BLACK}Ny {STRING} planteras nära {TOWN}! @@ -1335,6 +1336,7 @@ STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_HELPTEXT :Terrängens fä STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_GREEN :Grön STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_DARK_GREEN :Mörkgrön STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :Violett +STR_CONFIG_SETTING_SCROLLMODE_HELPTEXT :Beteende vid scrollning av kartan STR_CONFIG_SETTING_SMOOTH_SCROLLING :Mjuk scrollning av vy: {STRING} STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Kontrollera hur huvudvyn skrollar till en specifik position vid klick på minikartan eller när ett kommando används för att skrolla till ett specifikt objekt på kartan. Om det är aktiverat skrollar vyn mjukt, om det är inaktiverat hoppar den direkt till målet STR_CONFIG_SETTING_MEASURE_TOOLTIP :Visa måtthjälptext vid användning av byggverktyg: {STRING} @@ -1803,7 +1805,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Ändra n STR_CHEAT_SETUP_PROD :{LTBLUE}Aktivera modifiering av produktionsvärden: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Nytt färgval +STR_LIVERY_CAPTION :{WHITE}{COMPANY} - Färgschema STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Visa generellt färgschema STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Visa färgscheman för tåg @@ -2688,9 +2690,13 @@ STR_ABOUT_VERSION :{BLACK}OpenTTD- STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 OpenTTD-teamet # Framerate display window +STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL} ms ############ Leave those lines in this order!! +STR_FRAMERATE_GL_SHIPS :{BLACK} Skepps-tick: +STR_FRAMERATE_DRAWING :{BLACK}Grafikåtergivning: ############ End of leave-in-this-order ############ Leave those lines in this order!! +STR_FRAMETIME_CAPTION_GL_ROADVEHS :Vägfordons-tick ############ End of leave-in-this-order @@ -3214,7 +3220,7 @@ STR_COMPANY_VIEW_CAPTION :{WHITE}{COMPANY STR_COMPANY_VIEW_PRESIDENT_MANAGER_TITLE :{WHITE}{PRESIDENT_NAME}{}{GOLD}(VD) STR_COMPANY_VIEW_INAUGURATED_TITLE :{GOLD}Etablerades: {WHITE}{NUM} -STR_COMPANY_VIEW_COLOUR_SCHEME_TITLE :{GOLD}Färgval: +STR_COMPANY_VIEW_COLOUR_SCHEME_TITLE :{GOLD}Färgschema: STR_COMPANY_VIEW_VEHICLES_TITLE :{GOLD}Fordon: STR_COMPANY_VIEW_TRAINS :{WHITE}{COMMA} tåg STR_COMPANY_VIEW_ROAD_VEHICLES :{WHITE}{COMMA} vägfordon @@ -3242,7 +3248,7 @@ STR_COMPANY_VIEW_INFRASTRUCTURE_TOOLTIP :{BLACK}Visa det STR_COMPANY_VIEW_NEW_FACE_BUTTON :{BLACK}Nytt ansikte STR_COMPANY_VIEW_NEW_FACE_TOOLTIP :{BLACK}Välj nytt ansikte på VD:n -STR_COMPANY_VIEW_COLOUR_SCHEME_BUTTON :{BLACK}Färgval +STR_COMPANY_VIEW_COLOUR_SCHEME_BUTTON :{BLACK}Färgschema STR_COMPANY_VIEW_COLOUR_SCHEME_TOOLTIP :{BLACK}Byt färg på företaget STR_COMPANY_VIEW_COMPANY_NAME_BUTTON :{BLACK}Företagsnamn STR_COMPANY_VIEW_COMPANY_NAME_TOOLTIP :{BLACK}Byt företagets namn @@ -3778,7 +3784,7 @@ STR_ORDER_DROP_SERVICE_DEPOT :Service vid beh STR_ORDER_DROP_HALT_DEPOT :Stanna STR_ORDER_SERVICE_TOOLTIP :{BLACK}Skippa den här ordern om service ej behövs -STR_ORDER_CONDITIONAL_VARIABLE_TOOLTIP :{BLACK}Fordonsdata att basera hoppning på +STR_ORDER_CONDITIONAL_VARIABLE_TOOLTIP :{BLACK}Fordonsdata att basera hopp på # Conditional order variables, must follow order of OrderConditionVariable enum STR_ORDER_CONDITIONAL_LOAD_PERCENTAGE :Laddningsprocent @@ -3880,9 +3886,9 @@ STR_ORDER_STOP_LOCATION_FAR_END :[slutet] STR_ORDER_OUT_OF_RANGE :{RED} (Nästa destination är utanför räckvidden) -STR_ORDER_CONDITIONAL_UNCONDITIONAL :Skippa till order {COMMA} -STR_ORDER_CONDITIONAL_NUM :Skippa till order {COMMA} när {STRING} {STRING} {COMMA} -STR_ORDER_CONDITIONAL_TRUE_FALSE :Skippa till order {COMMA} när {STRING} {STRING} +STR_ORDER_CONDITIONAL_UNCONDITIONAL :Hoppa till order {COMMA} +STR_ORDER_CONDITIONAL_NUM :Hoppa till order {COMMA} när {STRING} {STRING} {COMMA} +STR_ORDER_CONDITIONAL_TRUE_FALSE :Hoppa till order {COMMA} när {STRING} {STRING} STR_INVALID_ORDER :{RED} (Ogiltig order) From 2fcd4e61db3d6df40cf814718e3ab5d26777f47d Mon Sep 17 00:00:00 2001 From: glx Date: Tue, 29 Jan 2019 22:11:18 +0100 Subject: [PATCH 07/13] Fix: make sure strgen fails when english.txt contains invalid commands --- src/strgen/strgen.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/strgen/strgen.cpp b/src/strgen/strgen.cpp index 44cbd127a1..98e11e2eb6 100644 --- a/src/strgen/strgen.cpp +++ b/src/strgen/strgen.cpp @@ -540,6 +540,7 @@ int CDECL main(int argc, char *argv[]) HeaderFileWriter writer(pathbuf); writer.WriteHeader(data); writer.Finalise(data); + if (_errors != 0) return 1; } else if (mgo.numleft >= 1) { char *r; From 90c7ef96ca546efa333f4e3c4ca4e09fbab2a912 Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Tue, 29 Jan 2019 19:15:49 +0000 Subject: [PATCH 08/13] Fix 11ab3c4ea2f: Fix showing cargo capacity for auto-refits (missed in #7134) --- src/vehicle_gui.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index 450b0cc2d8..b4d6fdfabe 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -689,8 +689,8 @@ struct RefitWindow : public Window { { assert(_current_company == _local_company); Vehicle *v = Vehicle::Get(this->window_number); - CommandCost cost = DoCommand(v->tile, this->selected_vehicle, option->cargo | (int)this->auto_refit << 6 | option->subtype << 8 | - this->num_vehicles << 16, DC_QUERY_COST, GetCmdRefitVeh(v->type)); + CommandCost cost = DoCommand(v->tile, this->selected_vehicle, option->cargo | option->subtype << 8 | this->num_vehicles << 16 | + (int)this->auto_refit << 24, DC_QUERY_COST, GetCmdRefitVeh(v->type)); if (cost.Failed()) return INVALID_STRING_ID; From 8334a5733220d379a0d573e3bf61c4c9d9c874e4 Mon Sep 17 00:00:00 2001 From: nikolas Date: Wed, 30 Jan 2019 08:52:56 -0500 Subject: [PATCH 09/13] Fix: unicode characters in Romanian town names (#7141) Many of these town names were using the 'a with ~ above it' character, which should actually by 'a with u above it'. There were other missing accents as well which I've added. --- src/table/townname.h | 86 ++++++++++++++++++++++---------------------- 1 file changed, 43 insertions(+), 43 deletions(-) diff --git a/src/table/townname.h b/src/table/townname.h index 7680846841..057583177d 100644 --- a/src/table/townname.h +++ b/src/table/townname.h @@ -1942,96 +1942,96 @@ static const char * const _name_romanian_real[] = { "Alba Iulia", "Alexandria", "Babadag", - "Bac\xC3\xA3u", + "Bac\xC4\x83u", "Baia Mare", - "B\xC3\xA3ile Herculane", - "B\xC3\xA3ilesti", + "B\xC4\x83ile Herculane", + "B\xC4\x83ilesti", "B\xC3\xA2rlad", "Bicaz", - "Bistrita", + "Bistri\xC8\x9B""a", "Blaj", "Borsec", - "Botosani", - "Br\xC3\xA3ila", - "Brasov", - "Bucuresti", + "Boto\xC8\x99""ani", + "Br\xC4\x83ila", + "Bra\xC8\x9Bov", + "Bucure\xC8\x99ti", "Buftea", - "Buz\xC3\xA3u", - "C\xC3\xA3l\xC3\xA3rasi", - "Caransebes", - "Cernavod\xC3\xA3", + "Buz\xC4\x83u", + "C\xC4\x83l\xC4\x83rasi", + "Caransebe\xC8\x99", + "Cernavod\xC4\x83", "Cluj-Napoca", - "Constanta", + "Constan\xC8\x9B""a", "Covasna", "Craiova", "Dej", "Deva", "Dorohoi", - "Dr.-Tr. Severin", - "Dr\xC3\xA3g\xC3\xA3sani", - "F\xC3\xA3g\xC3\xA3ras", - "F\xC3\xA3lticeni", - "Fetesti", - "Focsani", - "Galati", + "Drobeta-Turnu Severin", + "Dr\xC4\x83g\xC4\x83sani", + "F\xC4\x83g\xC4\x83ras", + "F\xC4\x83lticeni", + "Fete\xC8\x99ti", + "Foc\xC8\x99""ani", + "Gala\xC8\x99i", "Gheorgheni", "Giurgiu", - "H\xC3\xA2rsova", + "H\xC3\xA2r\xC8\x99ova", "Hunedoara", - "Husi", - "Iasi", + "Hu\xC8\x99i", + "Ia\xC8\x99i", "Isaccea", "Lugoj", - "M\xC3\xA3""cin", + "M\xC4\x83""cin", "Mangalia", "Medgidia", - "Medias", + "Media\xC8\x99", "Miercurea Ciuc", "Mizil", "Motru", - "N\xC3\xA3s\xC3\xA3ud", - "N\xC3\xA3vodari", - "Odobesti", - "Oltenita", - "Onesti", + "N\xC4\x83s\xC4\x83ud", + "N\xC4\x83vodari", + "Odobe\xC8x99ti", + "Olteni\xC8\x9B""a", + "One\xC8\x99ti", "Oradea", - "Orsova", - "Petrosani", - "Piatra Neamt", - "Pitesti", - "Ploiesti", + "Or\xC8\x99ova", + "Petro\xC8\x99""ani", + "Piatra Neam\xC8\x9B", + "Pite\xC8\x99ti", + "Ploie\xC8\x99ti", "Predeal", "R\xC3\xA2mnicu V\xC3\xA2lcea", "Reghin", - "Resita", + "Re\xC8\x99i\xC8\x9B""a", "Roman", - "Rosiorii de Vede", + "Ro\xC8\x99iorii de Vede", "Satu Mare", - "Sebes", + "Sebe\xC8\x99", "Sf\xC3\xA2ntu Gheorghe", "Sibiu", - "Sighisoara", + "Sighi\xC8\x99oara", "Sinaia", "Slatina", "Slobozia", "Sovata", "Suceava", "Sulina", - "T\xC3\xA3nd\xC3\xA3rei", + "T\xC4\x83nd\xC4\x83rei", "T\xC3\xA2rgoviste", "T\xC3\xA2rgu Jiu", "T\xC3\xA2rgu Mures", "Tecuci", - "Timisoara", + "Timi\xC8\x99oara", "Tulcea", "Turda", - "Turnu M\xC3\xA3gurele", + "Turnu M\xC4\x83gurele", "Urziceni", "Vaslui", "Vatra Dornei", "Victoria", "Videle", - "Zal\xC3\xA3u", + "Zal\xC4\x83u", }; static const char * const _name_slovak_real[] = { From e982b9131e9c92d70dd5994910c1eb8ca644f2f2 Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Wed, 30 Jan 2019 09:20:07 +0000 Subject: [PATCH 10/13] Fix #7142: Missing map bounds check when building long roads. --- src/road_cmd.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp index 175e776e5e..d9825c9bfa 100644 --- a/src/road_cmd.cpp +++ b/src/road_cmd.cpp @@ -809,7 +809,9 @@ do_clear:; */ static bool CanConnectToRoad(TileIndex tile, RoadType rt, DiagDirection dir) { - RoadBits bits = GetAnyRoadBits(tile + TileOffsByDiagDir(dir), rt, false); + tile += TileOffsByDiagDir(dir); + if (!IsValidTile(tile)) return false; + RoadBits bits = GetAnyRoadBits(tile, rt, false); return (bits & DiagDirToRoadBits(ReverseDiagDir(dir))) != 0; } From 67633606b00f87dd11d7cc2ad186624fed38271f Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Tue, 29 Jan 2019 00:09:25 +0000 Subject: [PATCH 11/13] Codechange: Remove value mangling and field misuse in SLE_WRITEBYTE. The original translation functionality hasn't been used since 2007. --- src/saveload/saveload.cpp | 14 ++++++-------- src/saveload/saveload.h | 2 +- src/saveload/station_sl.cpp | 4 ++-- src/saveload/vehicle_sl.cpp | 12 ++++++------ 4 files changed, 15 insertions(+), 17 deletions(-) diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp index 29adb40c9b..348ba93ba0 100644 --- a/src/saveload/saveload.cpp +++ b/src/saveload/saveload.cpp @@ -1710,17 +1710,15 @@ bool SlObjectMember(void *ptr, const SaveLoad *sld) } break; - /* SL_WRITEBYTE translates a value of a variable to another one upon - * saving or loading. - * XXX - variable renaming abuse - * game_value: the value of the variable ingame is abused by sld->version_from - * file_value: the value of the variable in the savegame is abused by sld->version_to */ + /* SL_WRITEBYTE writes a value to the savegame to identify the type of an object. + * When loading, the value is read explictly with SlReadByte() to determine which + * object description to use. */ case SL_WRITEBYTE: switch (_sl.action) { - case SLA_SAVE: SlWriteByte(sld->version_to); break; + case SLA_SAVE: SlWriteByte(*(uint8 *)ptr); break; case SLA_LOAD_CHECK: - case SLA_LOAD: *(byte *)ptr = sld->version_from; break; - case SLA_PTRS: break; + case SLA_LOAD: + case SLA_PTRS: case SLA_NULL: break; default: NOT_REACHED(); } diff --git a/src/saveload/saveload.h b/src/saveload/saveload.h index a5ef9d58c5..b6fc59c6e9 100644 --- a/src/saveload/saveload.h +++ b/src/saveload/saveload.h @@ -355,7 +355,7 @@ typedef SaveLoad SaveLoadGlobVarList; #define SLE_CONDNULL(length, from, to) SLE_CONDARR(NullStruct, null, SLE_FILE_U8 | SLE_VAR_NULL | SLF_NOT_IN_CONFIG, length, from, to) /** Translate values ingame to different values in the savegame and vv. */ -#define SLE_WRITEBYTE(base, variable, value) SLE_GENERAL(SL_WRITEBYTE, base, variable, 0, 0, value, value) +#define SLE_WRITEBYTE(base, variable) SLE_GENERAL(SL_WRITEBYTE, base, variable, 0, 0, 0, 0) #define SLE_VEH_INCLUDE() {false, SL_VEH_INCLUDE, 0, 0, 0, SL_MAX_VERSION, NULL, 0} #define SLE_ST_INCLUDE() {false, SL_ST_INCLUDE, 0, 0, 0, SL_MAX_VERSION, NULL, 0} diff --git a/src/saveload/station_sl.cpp b/src/saveload/station_sl.cpp index 670d6fcf06..ed2ee69545 100644 --- a/src/saveload/station_sl.cpp +++ b/src/saveload/station_sl.cpp @@ -414,7 +414,7 @@ static const SaveLoad _base_station_desc[] = { static OldPersistentStorage _old_st_persistent_storage; static const SaveLoad _station_desc[] = { - SLE_WRITEBYTE(Station, facilities, FACIL_NONE), + SLE_WRITEBYTE(Station, facilities), SLE_ST_INCLUDE(), SLE_VAR(Station, train_station.tile, SLE_UINT32), @@ -448,7 +448,7 @@ static const SaveLoad _station_desc[] = { }; static const SaveLoad _waypoint_desc[] = { - SLE_WRITEBYTE(Waypoint, facilities, FACIL_WAYPOINT), + SLE_WRITEBYTE(Waypoint, facilities), SLE_ST_INCLUDE(), SLE_VAR(Waypoint, town_cn, SLE_UINT16), diff --git a/src/saveload/vehicle_sl.cpp b/src/saveload/vehicle_sl.cpp index 76fd5af5a5..2f3ace415a 100644 --- a/src/saveload/vehicle_sl.cpp +++ b/src/saveload/vehicle_sl.cpp @@ -718,7 +718,7 @@ const SaveLoad *GetVehicleDescription(VehicleType vt) static const SaveLoad _train_desc[] = { - SLE_WRITEBYTE(Vehicle, type, VEH_TRAIN), + SLE_WRITEBYTE(Vehicle, type), SLE_VEH_INCLUDE(), SLE_VAR(Train, crash_anim_pos, SLE_UINT16), SLE_VAR(Train, force_proceed, SLE_UINT8), @@ -739,7 +739,7 @@ const SaveLoad *GetVehicleDescription(VehicleType vt) }; static const SaveLoad _roadveh_desc[] = { - SLE_WRITEBYTE(Vehicle, type, VEH_ROAD), + SLE_WRITEBYTE(Vehicle, type), SLE_VEH_INCLUDE(), SLE_VAR(RoadVehicle, state, SLE_UINT8), SLE_VAR(RoadVehicle, frame, SLE_UINT8), @@ -759,7 +759,7 @@ const SaveLoad *GetVehicleDescription(VehicleType vt) }; static const SaveLoad _ship_desc[] = { - SLE_WRITEBYTE(Vehicle, type, VEH_SHIP), + SLE_WRITEBYTE(Vehicle, type), SLE_VEH_INCLUDE(), SLE_VAR(Ship, state, SLE_UINT8), SLE_CONDDEQUE(Ship, path, SLE_UINT8, 203, SL_MAX_VERSION), @@ -771,7 +771,7 @@ const SaveLoad *GetVehicleDescription(VehicleType vt) }; static const SaveLoad _aircraft_desc[] = { - SLE_WRITEBYTE(Vehicle, type, VEH_AIRCRAFT), + SLE_WRITEBYTE(Vehicle, type), SLE_VEH_INCLUDE(), SLE_VAR(Aircraft, crashed_counter, SLE_UINT16), SLE_VAR(Aircraft, pos, SLE_UINT8), @@ -794,7 +794,7 @@ const SaveLoad *GetVehicleDescription(VehicleType vt) }; static const SaveLoad _special_desc[] = { - SLE_WRITEBYTE(Vehicle, type, VEH_EFFECT), + SLE_WRITEBYTE(Vehicle, type), SLE_VAR(Vehicle, subtype, SLE_UINT8), @@ -824,7 +824,7 @@ const SaveLoad *GetVehicleDescription(VehicleType vt) }; static const SaveLoad _disaster_desc[] = { - SLE_WRITEBYTE(Vehicle, type, VEH_DISASTER), + SLE_WRITEBYTE(Vehicle, type), SLE_REF(Vehicle, next, REF_VEHICLE_OLD), From 530bdf33cc44d2d53c41eec19684959fd17107fa Mon Sep 17 00:00:00 2001 From: translators Date: Wed, 30 Jan 2019 19:45:42 +0100 Subject: [PATCH 12/13] Update: Translations from eints swedish: 131 changes by Joel_A --- src/lang/swedish.txt | 191 +++++++++++++++++++++++++++++-------------- 1 file changed, 131 insertions(+), 60 deletions(-) diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index 67eaa1ac6a..c1790863fb 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -189,6 +189,7 @@ STR_COLOUR_ORANGE :Orange STR_COLOUR_BROWN :Brun STR_COLOUR_GREY :Grå STR_COLOUR_WHITE :Vit +STR_COLOUR_RANDOM :Slumpmässig # Units used in OpenTTD STR_UNITS_VELOCITY_IMPERIAL :{COMMA}{NBSP}mph @@ -241,7 +242,7 @@ STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS :{BLACK}Fönster STR_TOOLTIP_SHADE :{BLACK}Dölj fönster - Visa bara namnlisten STR_TOOLTIP_DEBUG :{BLACK}Visa NewGRF felsökningsinformation STR_TOOLTIP_DEFSIZE :{BLACK}Återställ fönstret till standardstorlek. Ctrl-klicka för att sätta nuvarande storlek som ny standard -STR_TOOLTIP_STICKY :{BLACK}Markera att fönstret ska lämnas öppet när 'Stäng alla fönster'-knappen används. Ctrl+Click för att spara som default +STR_TOOLTIP_STICKY :{BLACK}Markera att fönstret ska lämnas öppet när 'Stäng alla fönster'-knappen används. Ctrl+klick för att spara som standardinställning STR_TOOLTIP_RESIZE :{BLACK}Klicka och dra för att förstora fönstret STR_TOOLTIP_TOGGLE_LARGE_SMALL_WINDOW :{BLACK}Växla stor/liten fönsterstorlek STR_TOOLTIP_VSCROLL_BAR_SCROLLS_LIST :{BLACK}Rullningslist - rullar listan upp/ned @@ -475,6 +476,7 @@ STR_ABOUT_MENU_SCREENSHOT :Skärmdump STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Fullt inzoomad skärmdump STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Normalt inzoomad skärmdump STR_ABOUT_MENU_GIANT_SCREENSHOT :Skärmdump av hela kartan +STR_ABOUT_MENU_SHOW_FRAMERATE :Visa bildfrekvens STR_ABOUT_MENU_ABOUT_OPENTTD :Om 'OpenTTD' STR_ABOUT_MENU_SPRITE_ALIGNER :Justering av spriteobjekt STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Slå av/på yttre gränser för grafiska element @@ -650,6 +652,7 @@ STR_MUSIC_RULER_MARKER :{TINY_FONT}{BLA STR_MUSIC_TRACK_NONE :{TINY_FONT}{DKGREEN}-- STR_MUSIC_TRACK_DIGIT :{TINY_FONT}{DKGREEN}{ZEROFILL_NUM} STR_MUSIC_TITLE_NONE :{TINY_FONT}{DKGREEN}------ +STR_MUSIC_TITLE_NOMUSIC :{TINY_FONT}{DKGREEN}Ingen musik tillgänglig STR_MUSIC_TITLE_NAME :{TINY_FONT}{DKGREEN}"{STRING}" STR_MUSIC_TRACK :{TINY_FONT}{BLACK}Spår STR_MUSIC_XTITLE :{TINY_FONT}{BLACK}Titel @@ -670,11 +673,14 @@ STR_MUSIC_TOOLTIP_TOGGLE_PROGRAM_SHUFFLE :{BLACK}Växla s STR_MUSIC_TOOLTIP_SHOW_MUSIC_TRACK_SELECTION :{BLACK}Visa fönstret för val av musikspår # Playlist window +STR_PLAYLIST_MUSIC_SELECTION_SETNAME :{WHITE}Musikprogram - '{STRING}' STR_PLAYLIST_TRACK_NAME :{TINY_FONT}{LTBLUE}{ZEROFILL_NUM} "{STRING}" STR_PLAYLIST_TRACK_INDEX :{TINY_FONT}{BLACK}Spårindex STR_PLAYLIST_PROGRAM :{TINY_FONT}{BLACK}Spellista - '{STRING}' STR_PLAYLIST_CLEAR :{TINY_FONT}{BLACK}Töm +STR_PLAYLIST_CHANGE_SET :{BLACK}Byt samling STR_PLAYLIST_TOOLTIP_CLEAR_CURRENT_PROGRAM_CUSTOM1 :{BLACK}Töm aktuell spellista (enbart Personlig1 eller Personlig2) +STR_PLAYLIST_TOOLTIP_CHANGE_SET :{BLACK}Ändra musikvalet till en annan installerad samling STR_PLAYLIST_TOOLTIP_CLICK_TO_ADD_TRACK :{BLACK}Klicka på ett musikstycke för att lägga till det i spellistan (enbart Personlig1 eller Personlig2) STR_PLAYLIST_TOOLTIP_CLICK_TO_REMOVE_TRACK :{BLACK}Klicka på ett musikstycke för att ta bort det från spellistan (endast Personlig1 och Personlig2) @@ -824,7 +830,7 @@ STR_NEWS_BEGIN_OF_RECESSION :{BIG_FONT}{BLAC STR_NEWS_END_OF_RECESSION :{BIG_FONT}{BLACK}Lågkonjunkturen över!{}{}Uppsving i handeln ger tillförsikt till industrier när ekonomin stärks! STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_GENERAL :{BIG_FONT}{BLACK}{INDUSTRY} ökar produktionen! -STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_COAL :{BIG_FONT}{BLACK}Nytt lager av kol funnet vid {INDUSTRY}!{}Produktionen fördubblas! +STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_COAL :{BIG_FONT}{BLACK}Ny fyndighet av kol upptäckt vid {INDUSTRY}!{}Produktionen fördubblas! STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_OIL :{BIG_FONT}{BLACK}Nya oljereserver funna vid {INDUSTRY}!{}Produktionen fördubblas! STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_FARM :{BIG_FONT}{BLACK}Nya jordbruksmetoder vid {INDUSTRY} ger fördubblad produktion! STR_NEWS_INDUSTRY_PRODUCTION_INCREASE_SMOOTH :{BIG_FONT}{BLACK}Produktionen av {STRING} vid {INDUSTRY} upp med {COMMA}%! @@ -878,10 +884,10 @@ STR_NEWS_EXCLUSIVE_RIGHTS_DESCRIPTION :{BIG_FONT}{BLAC # Extra view window STR_EXTRA_VIEW_PORT_TITLE :{WHITE}Vyfönster {COMMA} -STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN :{BLACK}Kopiera till vy +STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN :{BLACK}Byt vy STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN_TT :{BLACK}Kopiera huvudvyns position till detta vyfönster -STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW :{BLACK}Klistra in vyn -STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW_TT :{BLACK}Flytta huvudvyns position till positionen i det här vyfönstret +STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW :{BLACK}Byt huvudvy +STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW_TT :{BLACK}Kopiera denna vys position till huvudvyn # Game options window STR_GAME_OPTIONS_CAPTION :{WHITE}Spelinställningar @@ -923,6 +929,8 @@ STR_GAME_OPTIONS_CURRENCY_ZAR :Sydafrikansk ra STR_GAME_OPTIONS_CURRENCY_CUSTOM :Egen... STR_GAME_OPTIONS_CURRENCY_GEL :Georgisk lari (GEL) STR_GAME_OPTIONS_CURRENCY_IRR :Iransk rial (IRR) +STR_GAME_OPTIONS_CURRENCY_RUB :Ny rysk rubel (RUB) +STR_GAME_OPTIONS_CURRENCY_MXN :Mexikansk peso (MXN) ############ end of currency region STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Vägfordon @@ -1045,7 +1053,7 @@ STR_VARIETY_VERY_LOW :Väldigt låg STR_VARIETY_LOW :Låg STR_VARIETY_MEDIUM :Medium STR_VARIETY_HIGH :Hög -STR_VARIETY_VERY_HIGH :Väldigt Hög +STR_VARIETY_VERY_HIGH :Väldigt hög STR_AI_SPEED_VERY_SLOW :Väldigt långsam STR_AI_SPEED_SLOW :Långsam @@ -1252,6 +1260,8 @@ STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Det är STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Underhåll av infrastruktur: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Om det är aktiverat så kostar underhåll av infrastruktur. Kostnaden ökar mer än proportionellt mot nätverkets storlek, vilket innebär att större företag drabbas hårdare än små företag av underhållskostnader. +STR_CONFIG_SETTING_COMPANY_STARTING_COLOUR :Företagets startfärg: {STRING} +STR_CONFIG_SETTING_COMPANY_STARTING_COLOUR_HELPTEXT :Välj startfärg för företaget STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS :Flygplatser blir aldrig gamla: {STRING} STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS_HELPTEXT :Aktivering av denna inställning gör så att alla flygplatstyper finns kvar i obegränsad tid efter att de blivit tillgängliga @@ -1289,7 +1299,7 @@ STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Linjernas bredd STR_CONFIG_SETTING_LANDSCAPE :Landskap: {STRING} STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :Landskap definiera grundläggande gameplay scenarier med olika last och krav stad tillväxt. NewGRF och Game skript tillåter finare kontroll. -STR_CONFIG_SETTING_LAND_GENERATOR :Land generator: {STRING} +STR_CONFIG_SETTING_LAND_GENERATOR :Landgenerator: {STRING} STR_CONFIG_SETTING_LAND_GENERATOR_HELPTEXT :Den ursprungliga generatorn beror på bas grafik set, och komponerar fasta landskapsformer. TerraGenesis är en Perlin buller baserad generator med finare inställningar kontroll STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Original STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis @@ -1299,8 +1309,8 @@ STR_CONFIG_SETTING_INDUSTRY_DENSITY :Industritäthet STR_CONFIG_SETTING_INDUSTRY_DENSITY_HELPTEXT :Ange hur många industrier som ska genereras och vilken nivå som ska bibehållas under spelet STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Maximalt avstånd mellan oljeraffinaderier och kartans kant: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Oljeraffinaderier byggs bara nära kartans kanter, alltså vid kusten om det är en ö-karta -STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Snölinjeshöjd: {STRING} -STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Kontroll på vilken höjd snön börjar i subarktiska landskapet. Snö påverkar också industrin generation och stad tillväxtkrav +STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Snögränsens höjd: {STRING} +STR_CONFIG_SETTING_SNOWLINE_HEIGHT_HELPTEXT :Kontrollerar på vilken höjd snön börjar i det subarktiska landskapet. Snö påverkar även industrigeneration och städers tillväxtkrav STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Terrängens svårhetsgrad: {STRING} STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(TerraGenesis endast) Välj frekvensen av kullar: Smooth landskap har färre, mer utbredda kullar. Rough landskap har många kullar, som kan se repetitiva STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Väldigt lätt @@ -1336,7 +1346,12 @@ STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_HELPTEXT :Terrängens fä STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_GREEN :Grön STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_DARK_GREEN :Mörkgrön STR_CONFIG_SETTING_SMALLMAP_LAND_COLOUR_VIOLET :Violett +STR_CONFIG_SETTING_SCROLLMODE :Vyfönsters skrollningsbeteende: {STRING} STR_CONFIG_SETTING_SCROLLMODE_HELPTEXT :Beteende vid scrollning av kartan +STR_CONFIG_SETTING_SCROLLMODE_DEFAULT :Rör vyn med höger musknapp, musens position låst +STR_CONFIG_SETTING_SCROLLMODE_RMB_LOCKED :Rör kartan med höger musknapp, musens position låst +STR_CONFIG_SETTING_SCROLLMODE_RMB :Rör kartan med höger musknapp +STR_CONFIG_SETTING_SCROLLMODE_LMB :Rör kartan med vänster musknapp STR_CONFIG_SETTING_SMOOTH_SCROLLING :Mjuk scrollning av vy: {STRING} STR_CONFIG_SETTING_SMOOTH_SCROLLING_HELPTEXT :Kontrollera hur huvudvyn skrollar till en specifik position vid klick på minikartan eller när ett kommando används för att skrolla till ett specifikt objekt på kartan. Om det är aktiverat skrollar vyn mjukt, om det är inaktiverat hoppar den direkt till målet STR_CONFIG_SETTING_MEASURE_TOOLTIP :Visa måtthjälptext vid användning av byggverktyg: {STRING} @@ -1495,7 +1510,7 @@ STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_COMPANY :Produktionsför STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_COMPANY_HELPTEXT :Visa nyhetstidning vid förändring av industriers produktionsnivåer för industrier som används av det egna företaget STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_OTHER :Produktionsförändring vid industri som motståndare betjänar: {STRING} STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_OTHER_HELPTEXT :Visa nyhetstidning vid förändring av industriers produktionsnivåer för industrier som används av motståndare -STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_UNSERVED :Andra produktionsförändringar vid industrier.: {STRING} +STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_UNSERVED :Andra produktionsförändringar vid industrier: {STRING} STR_CONFIG_SETTING_NEWS_INDUSTRY_CHANGES_UNSERVED_HELPTEXT :Visa nyhetstidning vid förändring av industriers produktionsnivåer för industrier som inte används av motståndare eller det egna företaget STR_CONFIG_SETTING_NEWS_ADVICE :Råd / information om företagets fordon: {STRING} STR_CONFIG_SETTING_NEWS_ADVICE_HELPTEXT :Visa meddelande ifall att ett fordon behöver uppmärksamhet @@ -1550,7 +1565,7 @@ STR_CONFIG_SETTING_TOWN_LAYOUT_3X3_GRID :3x3 rutnät STR_CONFIG_SETTING_TOWN_LAYOUT_RANDOM :Slumpmässig STR_CONFIG_SETTING_ALLOW_TOWN_ROADS :Städer tillåts bygga vägar: {STRING} STR_CONFIG_SETTING_ALLOW_TOWN_ROADS_HELPTEXT :Tillåt städer att bygga vägar för att kunna växa. Stäng av för att hindra städernas lokala myndigheter från att själva bygga vägar -STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS :Städer är tillåtna att bygga plankorsningar: {STRING} +STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS :Städer tillåts bygga plankorsningar: {STRING} STR_CONFIG_SETTING_ALLOW_TOWN_LEVEL_CROSSINGS_HELPTEXT :Om denna inställning aktiveras så blir det tillåtet för städer att bygga plankorsningar STR_CONFIG_SETTING_NOISE_LEVEL :Tillåt stadskontrollerade bullernivåer för flygplatser: {STRING} STR_CONFIG_SETTING_NOISE_LEVEL_HELPTEXT :Med denna inställning avstängd kan det finnas max två flygplatser i varje stad. Med inställningen påslagen begränsas antalet flygplatser i en stad istället av vilken bullernivå staden accepterar, vilket styrs av populationen, flygplatsens storlek och avstånd till staden @@ -2281,6 +2296,7 @@ STR_LINKGRAPH_LEGEND_CAPTION :{BLACK}Legend f STR_LINKGRAPH_LEGEND_ALL :{BLACK}Alla STR_LINKGRAPH_LEGEND_NONE :{BLACK}Inga STR_LINKGRAPH_LEGEND_SELECT_COMPANIES :{BLACK}Välj företag att visa +STR_LINKGRAPH_LEGEND_COMPANY_TOOLTIP :{BLACK}{STRING}{}{COMPANY} # Linkgraph legend window and linkgraph legend in smallmap STR_LINKGRAPH_LEGEND_UNUSED :{TINY_FONT}{BLACK}oanvänd @@ -2690,13 +2706,50 @@ STR_ABOUT_VERSION :{BLACK}OpenTTD- STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 OpenTTD-teamet # Framerate display window +STR_FRAMERATE_CAPTION :{WHITE}Bildfrekvens +STR_FRAMERATE_CAPTION_SMALL :{STRING}{WHITE} ({DECIMAL}x) +STR_FRAMERATE_RATE_GAMELOOP :{BLACK}Simulationsfrekvens: {STRING} +STR_FRAMERATE_RATE_GAMELOOP_TOOLTIP :{BLACK}Antal spel-tick som simuleras per sekund. +STR_FRAMERATE_RATE_BLITTER :{BLACK}Bildfrekvens för grafik: {STRING} +STR_FRAMERATE_RATE_BLITTER_TOOLTIP :{BLACK}Antal bildrutor som återges per sekund. +STR_FRAMERATE_SPEED_FACTOR :{BLACK}Spelets nuvarande hastighetsfaktor: {DECIMAL}x +STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK}Hur snabbt spelet för närvarande körs, jämfört med förväntad hastighet vid normal simulationsfrekvens. +STR_FRAMERATE_CURRENT :{WHITE}Nuvarande +STR_FRAMERATE_AVERAGE :{WHITE}Genomsnittlig +STR_FRAMERATE_DATA_POINTS :{BLACK}Data baseras på {COMMA} mätvärden STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL} ms +STR_FRAMERATE_MS_WARN :{YELLOW}{DECIMAL} ms +STR_FRAMERATE_MS_BAD :{RED}{DECIMAL} ms +STR_FRAMERATE_FPS_GOOD :{LTBLUE}{DECIMAL} bildrutor/s +STR_FRAMERATE_FPS_WARN :{YELLOW}{DECIMAL} bildrutor/s +STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL} bildrutor/s +STR_FRAMERATE_GRAPH_MILLISECONDS :{TINY_FONT}{COMMA} ms +STR_FRAMERATE_GRAPH_SECONDS :{TINY_FONT}{COMMA} s ############ Leave those lines in this order!! +STR_FRAMERATE_GAMELOOP :{BLACK}Totalt för spel-loopen: +STR_FRAMERATE_GL_ECONOMY :{BLACK} Godshantering: +STR_FRAMERATE_GL_TRAINS :{BLACK} Tåg-tick: +STR_FRAMERATE_GL_ROADVEHS :{BLACK} Vägfordons-tick: STR_FRAMERATE_GL_SHIPS :{BLACK} Skepps-tick: +STR_FRAMERATE_GL_AIRCRAFT :{BLACK} Flygplans-tick: +STR_FRAMERATE_GL_LANDSCAPE :{BLACK} Världs-tick: +STR_FRAMERATE_GL_LINKGRAPH :{BLACK} Länkgrafens fördröjning: STR_FRAMERATE_DRAWING :{BLACK}Grafikåtergivning: +STR_FRAMERATE_VIDEO :{BLACK}Videoutmatning: +STR_FRAMERATE_SOUND :{BLACK}Ljudmixning: ############ End of leave-in-this-order ############ Leave those lines in this order!! +STR_FRAMETIME_CAPTION_GAMELOOP :Spel-loop +STR_FRAMETIME_CAPTION_GL_ECONOMY :Godshantering +STR_FRAMETIME_CAPTION_GL_TRAINS :Tåg-tick STR_FRAMETIME_CAPTION_GL_ROADVEHS :Vägfordons-tick +STR_FRAMETIME_CAPTION_GL_SHIPS :Skepps-tick +STR_FRAMETIME_CAPTION_GL_AIRCRAFT :Flygplans-tick +STR_FRAMETIME_CAPTION_GL_LANDSCAPE :Världs-tick +STR_FRAMETIME_CAPTION_GL_LINKGRAPH :Länkgrafens fördröjning +STR_FRAMETIME_CAPTION_DRAWING :Grafikåtergivning +STR_FRAMETIME_CAPTION_VIDEO :Videoutmatning +STR_FRAMETIME_CAPTION_SOUND :Ljudmixning ############ End of leave-in-this-order @@ -2722,11 +2775,12 @@ STR_SAVELOAD_DETAIL_CAPTION :{BLACK}Speldeta STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}Ingen information tillgänglig STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING} STR_SAVELOAD_DETAIL_GRFSTATUS :{SILVER}NewGRF: {WHITE}{STRING} +STR_SAVELOAD_FILTER_TITLE :{BLACK}Sökfilter: STR_SAVELOAD_OSKTITLE :{BLACK}Mata in ett namn för detta sparade spel # World generation -STR_MAPGEN_WORLD_GENERATION_CAPTION :{WHITE}Generera Värld +STR_MAPGEN_WORLD_GENERATION_CAPTION :{WHITE}Generera värld STR_MAPGEN_MAPSIZE :{BLACK}Kartstorlek: STR_MAPGEN_MAPSIZE_TOOLTIP :{BLACK}Ange kartans storlek i rutor. Antalet tillgängliga rutor kommer att bli något lägre STR_MAPGEN_BY :{BLACK}* @@ -2737,8 +2791,8 @@ STR_MAPGEN_MAX_HEIGHTLEVEL :{BLACK}Maximal STR_MAPGEN_MAX_HEIGHTLEVEL_UP :{BLACK}Öka maximal bergshöjd med ett STR_MAPGEN_MAX_HEIGHTLEVEL_DOWN :{BLACK}Minska maximal bergshöjd med ett STR_MAPGEN_SNOW_LINE_HEIGHT :{BLACK}Snögränsens höjd: -STR_MAPGEN_SNOW_LINE_UP :{BLACK}Höj snögränsens höjd ett upp -STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Sänk snögränsens höjd ett ner +STR_MAPGEN_SNOW_LINE_UP :{BLACK}Höj snögränsens höjd ett steg +STR_MAPGEN_SNOW_LINE_DOWN :{BLACK}Sänk snögränsens höjd ett steg STR_MAPGEN_LAND_GENERATOR :{BLACK}Landgenerator: STR_MAPGEN_TREE_PLACER :{BLACK}Trädalgoritm: STR_MAPGEN_TERRAIN_TYPE :{BLACK}Terrängtyp: @@ -2776,7 +2830,7 @@ STR_SE_MAPGEN_FLAT_WORLD_TOOLTIP :{BLACK}Generera STR_SE_MAPGEN_RANDOM_LAND :{WHITE}Slumpat land STR_SE_MAPGEN_FLAT_WORLD_HEIGHT :{BLACK}Höjd av platt land: STR_SE_MAPGEN_FLAT_WORLD_HEIGHT_DOWN :{BLACK}Sänk höjden av platt land ett ner -STR_SE_MAPGEN_FLAT_WORLD_HEIGHT_UP :{BLACK}Öka höjden av platt land ett upp +STR_SE_MAPGEN_FLAT_WORLD_HEIGHT_UP :{BLACK}Öka höjden av platt land ett steg STR_SE_MAPGEN_FLAT_WORLD_HEIGHT_QUERY_CAPT :{WHITE}Ändra höjd av platt land @@ -2787,10 +2841,10 @@ STR_GENERATION_ABORT_CAPTION :{WHITE}Avbryt g STR_GENERATION_ABORT_MESSAGE :{YELLOW}Vill du verkligen avbryta genereringen? STR_GENERATION_PROGRESS :{WHITE}{NUM}% färdigt STR_GENERATION_PROGRESS_NUM :{BLACK}{NUM} / {NUM} -STR_GENERATION_WORLD_GENERATION :{BLACK}Generera Värld +STR_GENERATION_WORLD_GENERATION :{BLACK}Generera värld STR_GENERATION_RIVER_GENERATION :{BLACK}Generera Flod STR_GENERATION_TREE_GENERATION :{BLACK}Generera Träd -STR_GENERATION_OBJECT_GENERATION :{BLACK}Generera Objekt +STR_GENERATION_OBJECT_GENERATION :{BLACK}Generera objekt STR_GENERATION_CLEARING_TILES :{BLACK}Svår och stenig markgenerering STR_GENERATION_SETTINGUP_GAME :{BLACK}Ställer in spel STR_GENERATION_PREPARING_TILELOOP :{BLACK}Kör tile-loop @@ -2839,7 +2893,12 @@ STR_NEWGRF_SETTINGS_VERSION :{BLACK}Version: STR_NEWGRF_SETTINGS_MIN_VERSION :{BLACK}Min. kompatibel version: {SILVER}{NUM} STR_NEWGRF_SETTINGS_MD5SUM :{BLACK}MD5sum: {SILVER}{STRING} STR_NEWGRF_SETTINGS_PALETTE :{BLACK}Palett: {SILVER}{STRING} +STR_NEWGRF_SETTINGS_PALETTE_DEFAULT :Standard (D) +STR_NEWGRF_SETTINGS_PALETTE_DEFAULT_32BPP :Standard (D) / 32 bpp +STR_NEWGRF_SETTINGS_PALETTE_LEGACY :Äldre (W) +STR_NEWGRF_SETTINGS_PALETTE_LEGACY_32BPP :Äldre (W) / 32 bpp STR_NEWGRF_SETTINGS_PARAMETER :{BLACK}Paramerar: {SILVER}{STRING} +STR_NEWGRF_SETTINGS_PARAMETER_NONE :Ingen STR_NEWGRF_SETTINGS_NO_INFO :{BLACK}Ingen information tillgänglig STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}Matchande fil hittades ej @@ -2913,13 +2972,15 @@ STR_NEWGRF_ERROR_TOO_MANY_NEWGRFS_LOADED :För många New STR_NEWGRF_ERROR_STATIC_GRF_CAUSES_DESYNC :Att ladda {1:STRING} som statisk NewGRF med {STRING} kan orsaka desynkronisering STR_NEWGRF_ERROR_UNEXPECTED_SPRITE :Oväntat spriteobjekt (spriteobjekt {3:NUM}) STR_NEWGRF_ERROR_UNKNOWN_PROPERTY :Okänd Action 0-egenskap {4:HEX} (spriteobjekt {3:NUM}) -STR_NEWGRF_ERROR_INVALID_ID :Försökt att använda ett ogiltligt ID (spriteobjekt {3:NUM}) +STR_NEWGRF_ERROR_INVALID_ID :Försök att använda ett ogiltligt ID (spriteobjekt {3:NUM}) STR_NEWGRF_ERROR_CORRUPT_SPRITE :{YELLOW}{STRING} innehåller en skadad bild. Alla korrupta bilder kommer att visas som ett rött frågetecken (?) STR_NEWGRF_ERROR_MULTIPLE_ACTION_8 :Innehåller flera Action 8 (spriteobjekt {3:NUM}) STR_NEWGRF_ERROR_READ_BOUNDS :Läste förbi slutet av pseudo-spriteobjekt (spriteobjekt {3:NUM}) STR_NEWGRF_ERROR_GRM_FAILED :Efterfrågade GRF-resurser är inte tillgängliga (spriteobjekt {3:NUM}) STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} har inaktiverats av {2:STRING} -STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Felaktig/okänd layout-format av spriteobjekt (spriteobjekt {3:NUM}) +STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Felaktigt/okänt layout-format av spriteobjekt (spriteobjekt {3:NUM}) +STR_NEWGRF_ERROR_LIST_PROPERTY_TOO_LONG :För många poster i listan med egenskapsvärden (spriteobjekt {3:NUM}, egenskap {4:HEX}) +STR_NEWGRF_ERROR_INDPROD_CALLBACK :Ogiltig industriproduktions-callback (spriteobjekt {3:NUM}, "{1:STRING}") # NewGRF related 'general' warnings STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Varning! @@ -2932,7 +2993,7 @@ STR_NEWGRF_TOO_MANY_NEWGRFS :{WHITE}Kan inte STR_NEWGRF_COMPATIBLE_LOAD_WARNING :{WHITE}Kompatibel GRF laddad för saknade filer STR_NEWGRF_DISABLED_WARNING :{WHITE}Saknad GRF-fil har stängts av STR_NEWGRF_UNPAUSE_WARNING_TITLE :{YELLOW}Saknad(e) GRF-fil(er) -STR_NEWGRF_UNPAUSE_WARNING :{WHITE}Avpausning kan krascha OpenTTD. Skicka ej igen bugg-rapport för möjlig krasch.{}Är du säker att du vill avpausa? +STR_NEWGRF_UNPAUSE_WARNING :{WHITE}Avpausning kan krascha OpenTTD. Skicka ej bugg-rapporter för eventuella resulterande krascher.{}Är du säker på att du vill avpausa? # NewGRF status STR_NEWGRF_LIST_NONE :Inga @@ -2949,7 +3010,7 @@ STR_BROKEN_VEHICLE_LENGTH :{WHITE}Tåg '{V STR_NEWGRF_BUGGY :{WHITE}NewGRF '{0:STRING}' ger felaktig information STR_NEWGRF_BUGGY_ARTICULATED_CARGO :{WHITE}Last/återställnings information för '{1:ENGINE}' är skilld ifrån köp lista efter konstruktion. Detta kan leda till att utomatisk förnyelse/uppgradering misslyckas med att anpassa fordonen/vagnarna korrekt -STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' skapade en ändlös loop i en produktions-callback-funktion +STR_NEWGRF_BUGGY_ENDLESS_PRODUCTION_CALLBACK :{WHITE}'{1:STRING}' skapade en oändlig loop i en produktions-callback-funktion STR_NEWGRF_BUGGY_UNKNOWN_CALLBACK_RESULT :{WHITE}Callback-funktion {1:HEX} returnerade ett okänt/ogiltligt resultat {2:HEX} # 'User removed essential NewGRFs'-placeholders for stuff without specs @@ -2984,6 +3045,7 @@ STR_EDIT_SIGN_SIGN_OSKTITLE :{BLACK}Mata in STR_TOWN_DIRECTORY_CAPTION :{WHITE}Städer STR_TOWN_DIRECTORY_NONE :{ORANGE}- Inga - STR_TOWN_DIRECTORY_TOWN :{ORANGE}{TOWN}{BLACK} ({COMMA}) +STR_TOWN_DIRECTORY_CITY :{ORANGE}{TOWN}{YELLOW} (Stad){BLACK} ({COMMA}) STR_TOWN_DIRECTORY_LIST_TOOLTIP :{BLACK}Stadsnamn - klicka på ett namn för att centrera huvudvyn på staden. Ctrl+klick öppnar en ny vy över stadens läge STR_TOWN_POPULATION :{BLACK}Global folkmängd: {COMMA} @@ -2991,6 +3053,7 @@ STR_TOWN_POPULATION :{BLACK}Global f STR_TOWN_VIEW_TOWN_CAPTION :{WHITE}{TOWN} STR_TOWN_VIEW_CITY_CAPTION :{WHITE}{TOWN} (Stad) STR_TOWN_VIEW_POPULATION_HOUSES :{BLACK}Invånare: {ORANGE}{COMMA}{BLACK} Hus: {ORANGE}{COMMA} +STR_TOWN_VIEW_CARGO_LAST_MONTH_MAX :{BLACK}{CARGO_LIST} förra månaden: {ORANGE}{COMMA}{BLACK} max: {ORANGE}{COMMA} STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH :{BLACK}Fraktgods behövs för ortens tillväxt: STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_GENERAL :{ORANGE}{STRING}{RED} krävs STR_TOWN_VIEW_CARGO_FOR_TOWNGROWTH_REQUIRED_WINTER :{ORANGE}{STRING}{BLACK} krävs under vintern @@ -3237,7 +3300,7 @@ STR_COMPANY_VIEW_INFRASTRUCTURE_STATION :{WHITE}{COMMA} STR_COMPANY_VIEW_INFRASTRUCTURE_AIRPORT :{WHITE}{COMMA} flygplats{P "" er} STR_COMPANY_VIEW_INFRASTRUCTURE_NONE :{WHITE}Inga -STR_COMPANY_VIEW_BUILD_HQ_BUTTON :{BLACK}Bygg Högkvarter +STR_COMPANY_VIEW_BUILD_HQ_BUTTON :{BLACK}Bygg högkvarter STR_COMPANY_VIEW_BUILD_HQ_TOOLTIP :{BLACK}Bygg företagets huvudkontor STR_COMPANY_VIEW_VIEW_HQ_BUTTON :{BLACK}Visa högkvarter STR_COMPANY_VIEW_VIEW_HQ_TOOLTIP :{BLACK}Vy av företagets huvudkontor @@ -3295,6 +3358,9 @@ STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Centrera STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Produktionsnivå: {YELLOW}{COMMA}% STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}Industrin har annonserat att den snart kommer att stänga! +STR_INDUSTRY_VIEW_REQUIRES_N_CARGO :{BLACK}Kräver: {YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_PRODUCES_N_CARGO :{BLACK}Producerar: {YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_CARGO_LIST_EXTENSION :, {STRING}{STRING} STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Kräver: STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING} @@ -3304,7 +3370,7 @@ STR_CONFIG_GAME_PRODUCTION :{WHITE}Ändra p STR_CONFIG_GAME_PRODUCTION_LEVEL :{WHITE}Ändra produktionsnivå (procent, upp till 800%) # Vehicle lists -STR_VEHICLE_LIST_TRAIN_CAPTION :{WHITE}{STRING} - {COMMA} Tåg +STR_VEHICLE_LIST_TRAIN_CAPTION :{WHITE}{STRING} - {COMMA} tåg STR_VEHICLE_LIST_ROAD_VEHICLE_CAPTION :{WHITE}{STRING} - {COMMA} Vägfordon STR_VEHICLE_LIST_SHIP_CAPTION :{WHITE}{STRING} - {COMMA} skepp STR_VEHICLE_LIST_AIRCRAFT_CAPTION :{WHITE}{STRING} - {COMMA} flygplan @@ -3325,17 +3391,17 @@ STR_VEHICLE_LIST_AVAILABLE_ENGINES_TOOLTIP :{BLACK}Se lista STR_VEHICLE_LIST_MANAGE_LIST :{BLACK}Behandlingslista STR_VEHICLE_LIST_MANAGE_LIST_TOOLTIP :{BLACK}Skicka instruktioner till alla fordon på denna lista STR_VEHICLE_LIST_REPLACE_VEHICLES :Byt ut fordon -STR_VEHICLE_LIST_SEND_FOR_SERVICING :Skicka till Service +STR_VEHICLE_LIST_SEND_FOR_SERVICING :Skicka på service -STR_VEHICLE_LIST_SEND_TRAIN_TO_DEPOT :Skicka till Depå -STR_VEHICLE_LIST_SEND_ROAD_VEHICLE_TO_DEPOT :Skicka till Depå -STR_VEHICLE_LIST_SEND_SHIP_TO_DEPOT :Skicka till Depå -STR_VEHICLE_LIST_SEND_AIRCRAFT_TO_HANGAR :Skicka till Hangar +STR_VEHICLE_LIST_SEND_TRAIN_TO_DEPOT :Skicka till depå +STR_VEHICLE_LIST_SEND_ROAD_VEHICLE_TO_DEPOT :Skicka till depå +STR_VEHICLE_LIST_SEND_SHIP_TO_DEPOT :Skicka till depå +STR_VEHICLE_LIST_SEND_AIRCRAFT_TO_HANGAR :Skicka till hangar STR_VEHICLE_LIST_MASS_STOP_LIST_TOOLTIP :{BLACK}Klicka för att stoppa alla fordon i listan STR_VEHICLE_LIST_MASS_START_LIST_TOOLTIP :{BLACK}Klicka för att starta alla fordon i listan -STR_VEHICLE_LIST_SHARED_ORDERS_LIST_CAPTION :{WHITE}Delade instruktioner med {COMMA} Fordon{P "" s} +STR_VEHICLE_LIST_SHARED_ORDERS_LIST_CAPTION :{WHITE}Delade instruktioner med {COMMA} fordon # Group window STR_GROUP_ALL_TRAINS :Alla tåg @@ -3395,6 +3461,7 @@ STR_PURCHASE_INFO_AIRCRAFT_CAPACITY :{BLACK}Kapacite STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Motoriserade vagnar: {GOLD}+{POWER}{BLACK} Vikt: {GOLD}+{WEIGHT_SHORT} STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Anpassningsbar till: {GOLD}{STRING} STR_PURCHASE_INFO_ALL_TYPES :Alla typer av last +STR_PURCHASE_INFO_NONE :Ingen STR_PURCHASE_INFO_ALL_BUT :Allt utom {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Maximal Dragkraft: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Räckvidd: {GOLD}{COMMA} rutor @@ -3406,7 +3473,7 @@ STR_BUY_VEHICLE_SHIP_LIST_TOOLTIP :{BLACK}Skeppsli STR_BUY_VEHICLE_AIRCRAFT_LIST_TOOLTIP :{BLACK}Flygplanslista. Klicka på flygplan för information. Ctrl+klick visar eller döljer flygplanstypen STR_BUY_VEHICLE_TRAIN_BUY_VEHICLE_BUTTON :{BLACK}Köp fordon -STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_BUTTON :{BLACK}Köp Fordon +STR_BUY_VEHICLE_ROAD_VEHICLE_BUY_VEHICLE_BUTTON :{BLACK}Köp fordon STR_BUY_VEHICLE_SHIP_BUY_VEHICLE_BUTTON :{BLACK}Köp skepp STR_BUY_VEHICLE_AIRCRAFT_BUY_VEHICLE_BUTTON :{BLACK}Köp flygplan @@ -3708,7 +3775,7 @@ STR_VEHICLE_DETAIL_TAB_INFORMATION :{BLACK}Informat STR_VEHICLE_DETAILS_TRAIN_INFORMATION_TOOLTIP :{BLACK}Visa detaljer för tågfordon STR_VEHICLE_DETAIL_TAB_CAPACITIES :{BLACK}Kapaciteter STR_VEHICLE_DETAILS_TRAIN_CAPACITIES_TOOLTIP :{BLACK}Visa kapaciteter för varje fordon -STR_VEHICLE_DETAIL_TAB_TOTAL_CARGO :{BLACK}Gods Totalt +STR_VEHICLE_DETAIL_TAB_TOTAL_CARGO :{BLACK}Gods totalt STR_VEHICLE_DETAILS_TRAIN_TOTAL_CARGO_TOOLTIP :{BLACK}Visa tågets totala kapacitet, separera för typ av gods STR_VEHICLE_DETAILS_TRAIN_ARTICULATED_RV_CAPACITY :{BLACK}Kapacitet: {LTBLUE} @@ -3772,7 +3839,7 @@ STR_ORDER_DROP_NO_UNLOADING :Ej avlastning STR_ORDER_TOOLTIP_UNLOAD :{BLACK}Ändra avlastningsbeteende för markerad order STR_ORDER_REFIT :{BLACK}Anpassa -STR_ORDER_REFIT_TOOLTIP :{BLACK}Välj vilken godstyp anpassningen ska göras i denna order. Ctrl-klick för att ta bort anpassningsordern +STR_ORDER_REFIT_TOOLTIP :{BLACK}Välj vilken godstyp anpassningen ska göras till i denna order. Ctrl-klick för att ta bort anpassningsordern STR_ORDER_REFIT_AUTO :{BLACK}Auto-anpassning vid station STR_ORDER_REFIT_AUTO_TOOLTIP :{BLACK}Välj vilket lasttyp att auto-anpassa till i den här ordningen. Ctrl+klicka för att ta bort anpassningsinstruktionen. Auto-anpassning vid stationer kommer enbart att utföras om fordonet tillåter det STR_ORDER_DROP_REFIT_AUTO :Fast lasttyp @@ -3794,6 +3861,7 @@ STR_ORDER_CONDITIONAL_AGE :Ålder (år) STR_ORDER_CONDITIONAL_REQUIRES_SERVICE :Behöver service STR_ORDER_CONDITIONAL_UNCONDITIONALLY :Alltid STR_ORDER_CONDITIONAL_REMAINING_LIFETIME :Återstående livstid (år) +STR_ORDER_CONDITIONAL_MAX_RELIABILITY :Maximal tillförlitlighet STR_ORDER_CONDITIONAL_COMPARATOR_TOOLTIP :{BLACK}Hur man jämför fordonsdata med givet värde STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS :samma som @@ -3817,7 +3885,7 @@ STR_ORDERS_DELETE_ALL_TOOLTIP :{BLACK}Ta bort STR_ORDERS_STOP_SHARING_BUTTON :{BLACK}Sluta dela STR_ORDERS_STOP_SHARING_TOOLTIP :{BLACK}Sluta dela orderlistan. Ctrl+Klick tar även bort alla order för det här fordonet -STR_ORDERS_GO_TO_BUTTON :{BLACK}Åk Till +STR_ORDERS_GO_TO_BUTTON :{BLACK}Åk till STR_ORDER_GO_TO_NEAREST_DEPOT :Åk till närmsta depå STR_ORDER_GO_TO_NEAREST_HANGAR :Åk till närmsta hangar STR_ORDER_CONDITIONAL :Villkorat order-hopp @@ -3912,7 +3980,7 @@ STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(resor för {ST STR_TIMETABLE_STAY_FOR :och stanna i {STRING} STR_TIMETABLE_AND_TRAVEL_FOR :och res i {STRING} STR_TIMETABLE_DAYS :{COMMA}{NBSP}dag{P "" ar} -STR_TIMETABLE_TICKS :{COMMA}{NBSP}tick{P "" s} +STR_TIMETABLE_TICKS :{COMMA}{NBSP}tick STR_TIMETABLE_TOTAL_TIME :{BLACK}Den här tidtabellen kommer ta {STRING} att slutföra STR_TIMETABLE_TOTAL_TIME_INCOMPLETE :{BLACK}Denna tidtabell kommer att ta åtminstonde {STRING} att slutföra (allt är inte inlagt i en tidtabell) @@ -3926,7 +3994,7 @@ STR_TIMETABLE_STATUS_START_AT :{BLACK}Den här STR_TIMETABLE_STARTING_DATE :{BLACK}Startdatum STR_TIMETABLE_STARTING_DATE_TOOLTIP :{BLACK}Välj ett datum som startpunkt för den här tidtabellen. Om tidtabellen är fullt tidssatt så innebär Ctrl+klick att startpunkten sätts för denna tidtabell och att startpunkten för övriga fordon som delar dessa order fördelas ut jämt baserat på deras relativa ordning -STR_TIMETABLE_CHANGE_TIME :{BLACK}Ändra Tid +STR_TIMETABLE_CHANGE_TIME :{BLACK}Ändra tid STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Ändra hur lång tid den markerade ordern bör ta STR_TIMETABLE_CLEAR_TIME :{BLACK}Rensa tid @@ -3982,7 +4050,7 @@ STR_AI_GAME_SCRIPT :{BLACK}Spelskri STR_AI_GAME_SCRIPT_TOOLTIP :{BLACK}Visa debug-utskrifter för spelskript STR_ERROR_AI_NO_AI_FOUND :Ingen passande datorspelare hittades.{}Denna datorspelare är en test-datorspelare och kommer inte göra någonting.{}Du kan ladda ner nya datorspelare genom spelets 'Online-innehåll'-system -STR_ERROR_AI_PLEASE_REPORT_CRASH :{WHITE}Ett av scripten som körs har krachat. Vänligen raportera detta till datorspelarens skapare med en skärmdump på förstret 'Felsökning av datorspelare / spelskript' +STR_ERROR_AI_PLEASE_REPORT_CRASH :{WHITE}Ett av skripten som körs har kraschat. Vänligen rapportera detta till datorspelarens skapare med en skärmdump av förstret 'Felsökning av datorspelare / spelskript' STR_ERROR_AI_DEBUG_SERVER_ONLY :{YELLOW}Felsökning av datorspelare / spelskript är bara tillgänglig för servern # AI configuration window @@ -4226,6 +4294,7 @@ STR_ERROR_DRIVE_THROUGH_ON_TOWN_ROAD :{WHITE}... dett STR_ERROR_DRIVE_THROUGH_DIRECTION :{WHITE}... vägen pekar i fel riktning STR_ERROR_DRIVE_THROUGH_CORNER :{WHITE}... genomfartshållplatser kan inte ha gatuhörn STR_ERROR_DRIVE_THROUGH_JUNCTION :{WHITE}... genomfartshållplatser kan inte ha korsningar +STR_ERROR_DRIVE_THROUGH_ON_ONEWAY_ROAD :{WHITE}... vägen är enkelriktad eller blockerad # Station destruction related errors STR_ERROR_CAN_T_REMOVE_PART_OF_STATION :{WHITE}Kan ej ta bort del av station... @@ -4470,13 +4539,15 @@ STR_ERROR_CAN_T_DELETE_SIGN :{WHITE}Kan inte STR_DESKTOP_SHORTCUT_COMMENT :Ett simuleringsspel baserat på Transport Tycoon Deluxe # Translatable descriptions in media/baseset/*.ob* files -STR_BASEGRAPHICS_DOS_DESCRIPTION :Originalgrafiken från Transport Tycoon Deluxe, DOS-utgåvan. -STR_BASEGRAPHICS_DOS_DE_DESCRIPTION :Originalgrafiken från Transport Tycoon Deluxe, DOS-utgåvan (tyska). -STR_BASEGRAPHICS_WIN_DESCRIPTION :Originalgrafiken från Transport Tycoon Deluxe, Windows-utgåvan. -STR_BASESOUNDS_DOS_DESCRIPTION :Originalljuden från Transport Tycoon Deluxe, DOS-utgåvan. -STR_BASESOUNDS_WIN_DESCRIPTION :Originalljuden från Transport Tycoon Deluxe, Windows-utgåvan. +STR_BASEGRAPHICS_DOS_DESCRIPTION :Originalgrafiken från DOS-utgåvan av Transport Tycoon Deluxe. +STR_BASEGRAPHICS_DOS_DE_DESCRIPTION :Originalgrafiken från den tyska DOS-utgåvan av Transport Tycoon Deluxe. +STR_BASEGRAPHICS_WIN_DESCRIPTION :Originalgrafiken från Windows-utgåvan av Transport Tycoon Deluxe. +STR_BASESOUNDS_DOS_DESCRIPTION :Originalljuden från DOS-utgåvan av Transport Tycoon Deluxe. +STR_BASESOUNDS_WIN_DESCRIPTION :Originalljuden från Windows-utgåvan av Transport Tycoon Deluxe. STR_BASESOUNDS_NONE_DESCRIPTION :Ett ljudpaket utan några ljud. -STR_BASEMUSIC_WIN_DESCRIPTION :Originalmusiken från Transport Tycoon Deluxe, Windows-utgåvan. +STR_BASEMUSIC_WIN_DESCRIPTION :Originalmusiken från Windows-utgåvan av Transport Tycoon Deluxe. +STR_BASEMUSIC_DOS_DESCRIPTION :Originalmusiken från DOS-utgåvan av Transport Tycoon Deluxe. +STR_BASEMUSIC_TTO_DESCRIPTION :Originalmusiken från DOS-utgåvan av Transport Tycoon (Original/World Editor). STR_BASEMUSIC_NONE_DESCRIPTION :Ett musikpaket utan någon musik. ##id 0x2000 @@ -4494,11 +4565,11 @@ STR_TOWN_BUILDING_NAME_PARK_1 :Park STR_TOWN_BUILDING_NAME_OFFICE_BLOCK_2 :Kontorslokaler STR_TOWN_BUILDING_NAME_SHOPS_AND_OFFICES_1 :Affärer och kontor STR_TOWN_BUILDING_NAME_MODERN_OFFICE_BUILDING_1 :Modern kontorsbyggnad -STR_TOWN_BUILDING_NAME_WAREHOUSE_1 :Varuhus +STR_TOWN_BUILDING_NAME_WAREHOUSE_1 :Lagerbyggnad STR_TOWN_BUILDING_NAME_OFFICE_BLOCK_3 :Kontorsbyggnad STR_TOWN_BUILDING_NAME_STADIUM_1 :Arena STR_TOWN_BUILDING_NAME_OLD_HOUSES_1 :Gamla hus -STR_TOWN_BUILDING_NAME_COTTAGES_1 :Stuga +STR_TOWN_BUILDING_NAME_COTTAGES_1 :Stugor STR_TOWN_BUILDING_NAME_HOUSES_1 :Hus STR_TOWN_BUILDING_NAME_FLATS_1 :Lägenheter STR_TOWN_BUILDING_NAME_TALL_OFFICE_BLOCK_2 :Hög kontorsbyggnad @@ -4512,7 +4583,7 @@ STR_TOWN_BUILDING_NAME_CINEMA_1 :Biograf STR_TOWN_BUILDING_NAME_SHOPPING_MALL_1 :Shoppingcenter STR_TOWN_BUILDING_NAME_IGLOO_1 :Igloo STR_TOWN_BUILDING_NAME_TEPEES_1 :Kåtor -STR_TOWN_BUILDING_NAME_TEAPOT_HOUSE_1 :Tekanne-Hus +STR_TOWN_BUILDING_NAME_TEAPOT_HOUSE_1 :Tekanne-hus STR_TOWN_BUILDING_NAME_PIGGY_BANK_1 :Spargris ##id 0x4800 @@ -4570,29 +4641,29 @@ STR_SV_STNAME_NORTH :Norra {STRING} STR_SV_STNAME_SOUTH :Södra {STRING} STR_SV_STNAME_EAST :Östra {STRING} STR_SV_STNAME_WEST :Västra {STRING} -STR_SV_STNAME_CENTRAL :{STRING} Centralstation -STR_SV_STNAME_TRANSFER :{STRING} Övergång +STR_SV_STNAME_CENTRAL :{STRING} centralstation +STR_SV_STNAME_TRANSFER :{STRING} övergång STR_SV_STNAME_HALT :{STRING} hållplats -STR_SV_STNAME_VALLEY :{STRING} Dal +STR_SV_STNAME_VALLEY :{STRING} dal STR_SV_STNAME_HEIGHTS :{STRING} Höjder -STR_SV_STNAME_WOODS :{STRING} Skog -STR_SV_STNAME_LAKESIDE :{STRING} Sjöstrand +STR_SV_STNAME_WOODS :{STRING} skog +STR_SV_STNAME_LAKESIDE :{STRING} sjöstrand STR_SV_STNAME_EXCHANGE :{STRING} Växel -STR_SV_STNAME_AIRPORT :{STRING} Flygplats -STR_SV_STNAME_OILFIELD :{STRING} Oljefält -STR_SV_STNAME_MINES :{STRING} Gruva -STR_SV_STNAME_DOCKS :{STRING} Kaj +STR_SV_STNAME_AIRPORT :{STRING} flygplats +STR_SV_STNAME_OILFIELD :{STRING} oljefält +STR_SV_STNAME_MINES :{STRING} gruva +STR_SV_STNAME_DOCKS :{STRING} hamn STR_SV_STNAME_BUOY :{STRING} STR_SV_STNAME_WAYPOINT :{STRING} ##id 0x6020 -STR_SV_STNAME_ANNEXE :{STRING} Tillbyggnad -STR_SV_STNAME_SIDINGS :{STRING} Förort -STR_SV_STNAME_BRANCH :{STRING} Förgrening +STR_SV_STNAME_ANNEXE :{STRING} tillbyggnad +STR_SV_STNAME_SIDINGS :{STRING} förort +STR_SV_STNAME_BRANCH :{STRING} förgrening STR_SV_STNAME_UPPER :Övre {STRING} STR_SV_STNAME_LOWER :Nedre {STRING} -STR_SV_STNAME_HELIPORT :{STRING} Helikopterplats -STR_SV_STNAME_FOREST :{STRING} Skog -STR_SV_STNAME_FALLBACK :{STRING} Station #{NUM} +STR_SV_STNAME_HELIPORT :{STRING} helikopterplats +STR_SV_STNAME_FOREST :{STRING} skog +STR_SV_STNAME_FALLBACK :{STRING} station #{NUM} ############ end of savegame specific region! ##id 0x8000 From ba38a7ca652c00a1d0851f4d97f0b7d360df853c Mon Sep 17 00:00:00 2001 From: glx Date: Wed, 30 Jan 2019 22:28:07 +0100 Subject: [PATCH 13/13] Fix: don't show OS error box for non GUI video drivers --- src/openttd.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/openttd.cpp b/src/openttd.cpp index 65374f439f..585bcd4274 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -117,7 +117,9 @@ void CDECL error(const char *s, ...) vseprintf(buf, lastof(buf), s, va); va_end(va); - ShowOSErrorBox(buf, true); + if (VideoDriver::GetInstance() == NULL || VideoDriver::GetInstance()->HasGUI()) { + ShowOSErrorBox(buf, true); + } /* Set the error message for the crash log and then invoke it. */ CrashLog::SetErrorMessage(buf);