From 48b334cf97cabee375bd8c96670754c736fbd2f8 Mon Sep 17 00:00:00 2001 From: Niels Martin Hansen Date: Sat, 28 Jul 2018 23:28:24 +0200 Subject: [PATCH 01/41] Add: Houses can accept up to 16 different cargo types via NewGRF. New Action0 property 23 for feature 07, variable length, format B n*(B B). Initial byte is number of structures following. First byte in structure is cargo id, second is acceptance level in 1/8 units. --- src/house.h | 46 ++++++++++++++++++++++--------------------- src/newgrf.cpp | 26 ++++++++++++++++++++++++ src/table/town_land.h | 7 +++++-- src/town_cmd.cpp | 2 +- 4 files changed, 56 insertions(+), 25 deletions(-) diff --git a/src/house.h b/src/house.h index 94ef62ad54..c1cfe61041 100644 --- a/src/house.h +++ b/src/house.h @@ -31,6 +31,8 @@ static const HouseID NEW_HOUSE_OFFSET = 110; ///< Offset for new houses. static const HouseID NUM_HOUSES = 512; ///< Total number of houses. static const HouseID INVALID_HOUSE_ID = 0xFFFF; +static const uint HOUSE_NUM_ACCEPTS = 16; ///< Max number of cargoes accepted by a tile + /** * There can only be as many classes as there are new houses, plus one for * NO_CLASS, as the original houses don't have classes. @@ -97,30 +99,30 @@ DECLARE_ENUM_AS_BIT_SET(HouseExtraFlags) struct HouseSpec { /* Standard properties */ - Year min_year; ///< introduction year of the house - Year max_year; ///< last year it can be built - byte population; ///< population (Zero on other tiles in multi tile house.) - byte removal_cost; ///< cost multiplier for removing it - StringID building_name; ///< building name - uint16 remove_rating_decrease; ///< rating decrease if removed - byte mail_generation; ///< mail generation multiplier (tile based, as the acceptances below) - byte cargo_acceptance[3]; ///< acceptance level for the cargo slots - CargoID accepts_cargo[3]; ///< 3 input cargo slots - BuildingFlags building_flags; ///< some flags that describe the house (size, stadium etc...) - HouseZones building_availability; ///< where can it be built (climates, zones) - bool enabled; ///< the house is available to build (true by default, but can be disabled by newgrf) + Year min_year; ///< introduction year of the house + Year max_year; ///< last year it can be built + byte population; ///< population (Zero on other tiles in multi tile house.) + byte removal_cost; ///< cost multiplier for removing it + StringID building_name; ///< building name + uint16 remove_rating_decrease; ///< rating decrease if removed + byte mail_generation; ///< mail generation multiplier (tile based, as the acceptances below) + byte cargo_acceptance[HOUSE_NUM_ACCEPTS]; ///< acceptance level for the cargo slots + CargoID accepts_cargo[HOUSE_NUM_ACCEPTS]; ///< input cargo slots + BuildingFlags building_flags; ///< some flags that describe the house (size, stadium etc...) + HouseZones building_availability; ///< where can it be built (climates, zones) + bool enabled; ///< the house is available to build (true by default, but can be disabled by newgrf) /* NewHouses properties */ - GRFFileProps grf_prop; ///< Properties related the the grf file - uint16 callback_mask; ///< Bitmask of house callbacks that have to be called - byte random_colour[4]; ///< 4 "random" colours - byte probability; ///< Relative probability of appearing (16 is the standard value) - HouseExtraFlags extra_flags; ///< some more flags - HouseClassID class_id; ///< defines the class this house has (not grf file based) - AnimationInfo animation; ///< information about the animation. - byte processing_time; ///< Periodic refresh multiplier - byte minimum_life; ///< The minimum number of years this house will survive before the town rebuilds it - CargoTypes watched_cargoes; ///< Cargo types watched for acceptance. + GRFFileProps grf_prop; ///< Properties related the the grf file + uint16 callback_mask; ///< Bitmask of house callbacks that have to be called + byte random_colour[4]; ///< 4 "random" colours + byte probability; ///< Relative probability of appearing (16 is the standard value) + HouseExtraFlags extra_flags; ///< some more flags + HouseClassID class_id; ///< defines the class this house has (not grf file based) + AnimationInfo animation; ///< information about the animation. + byte processing_time; ///< Periodic refresh multiplier + byte minimum_life; ///< The minimum number of years this house will survive before the town rebuilds it + CargoTypes watched_cargoes; ///< Cargo types watched for acceptance. Money GetRemovalCost() const; diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 57dcb41ca5..3b0af55170 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -2294,6 +2294,10 @@ static ChangeInfoResult IgnoreTownHouseProperty(int prop, ByteReader *buf) break; } + case 0x23: + buf->Skip(buf->ReadByte() * 2); + break; + default: ret = CIR_UNKNOWN; break; @@ -2526,6 +2530,28 @@ static ChangeInfoResult TownHouseChangeInfo(uint hid, int numinfo, int prop, Byt housespec->max_year = buf->ReadWord(); break; + case 0x23: { // variable length cargo types accepted + uint count = buf->ReadByte(); + if (count > lengthof(housespec->accepts_cargo)) { + GRFError *error = DisableGrf(STR_NEWGRF_ERROR_LIST_PROPERTY_TOO_LONG); + error->param_value[1] = prop; + return CIR_DISABLED; + } + /* Always write the full accepts_cargo array, and check each index for being inside the + * provided data. This ensures all values are properly initialized, and also avoids + * any risks of array overrun. */ + for (uint i = 0; i < lengthof(housespec->accepts_cargo); i++) { + if (i < count) { + housespec->accepts_cargo[i] = GetCargoTranslation(buf->ReadByte(), _cur.grffile); + housespec->cargo_acceptance[i] = buf->ReadByte(); + } else { + housespec->accepts_cargo[i] = CT_INVALID; + housespec->cargo_acceptance[i] = 0; + } + } + break; + } + default: ret = CIR_UNKNOWN; break; diff --git a/src/table/town_land.h b/src/table/town_land.h index e4098334ac..6476015119 100644 --- a/src/table/town_land.h +++ b/src/table/town_land.h @@ -1812,8 +1812,11 @@ assert_compile(lengthof(_town_draw_tile_data) == (NEW_HOUSE_OFFSET) * 4 * 4); * @see HouseSpec */ #define MS(mnd, mxd, p, rc, bn, rr, mg, ca1, ca2, ca3, bf, ba, cg1, cg2, cg3) \ - {mnd, mxd, p, rc, bn, rr, mg, {ca1, ca2, ca3}, {cg1, cg2, cg3}, bf, ba, true, \ - GRFFileProps(INVALID_HOUSE_ID), 0, {0, 0, 0, 0}, 16, NO_EXTRA_FLAG, HOUSE_NO_CLASS, {0, 2, 0, 0}, 0, 0, 0} + {mnd, mxd, p, rc, bn, rr, mg, \ + {ca1, ca2, ca3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, \ + {cg1, cg2, cg3, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID, CT_INVALID}, \ + bf, ba, true, GRFFileProps(INVALID_HOUSE_ID), 0, {0, 0, 0, 0}, \ + 16, NO_EXTRA_FLAG, HOUSE_NO_CLASS, {0, 2, 0, 0}, 0, 0, 0} /** House specifications from original data */ static const HouseSpec _original_house_specs[] = { /** diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp index 986c52c4e3..dacf59ddc4 100644 --- a/src/town_cmd.cpp +++ b/src/town_cmd.cpp @@ -611,7 +611,7 @@ static inline void AddAcceptedCargoSetMask(CargoID cargo, uint amount, CargoArra static void AddAcceptedCargo_Town(TileIndex tile, CargoArray &acceptance, CargoTypes *always_accepted) { const HouseSpec *hs = HouseSpec::Get(GetHouseType(tile)); - CargoID accepts[3]; + CargoID accepts[lengthof(hs->accepts_cargo)]; /* Set the initial accepted cargo types */ for (uint8 i = 0; i < lengthof(accepts); i++) { From 41d47926b17984228c084578767312c3db6845f8 Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Mon, 21 Jan 2019 07:10:43 +0000 Subject: [PATCH 02/41] Cleanup #6960: Remove parts of generate used only for MSVC pre-2015. --- projects/generate | 37 ----------------------- projects/generate.vbs | 70 ++++++++++--------------------------------- 2 files changed, 15 insertions(+), 92 deletions(-) mode change 100755 => 100644 projects/generate.vbs diff --git a/projects/generate b/projects/generate index af59a83fb2..be3396c6f0 100755 --- a/projects/generate +++ b/projects/generate @@ -124,17 +124,7 @@ load_main_data() { gsub(" ", "", $0); gsub("^#", "", $0); gsub("^ ", "", $0); - - if (first_time != 0) { - print "#1 "; - } else { - first_time = 1; - } - filter = $0; - print "#1 "; print "#3 "; printf "#3 {c76ff9f1-1e62-46d8-8d55-%012d}\n", i; print "#3 "; @@ -148,10 +138,6 @@ load_main_data() { if (deep == skip) { gsub(" ", "", $0); gsub("/", "\\\\", $0); - print "#1 "; - print "#1 "; split($0, file, "."); cltype = "ClInclude" if (file[2] == "cpp") cltype = "ClCompile"; @@ -162,7 +148,6 @@ load_main_data() { print "#4 "; } } - END { print "#1 "; } '`" eval "$2=\"\$RES\"" @@ -180,21 +165,6 @@ load_lang_data() { continue fi RES="$RES -#1 -#1 -#1 -#1 -#1 #2 #2 Generating "$i" language file #2 ..\\objs\\strgen\\strgen.exe -s ..\\src\\lang -d ..\\bin\\lang \"%(FullPath)\" @@ -217,10 +187,6 @@ load_settings_data() { do i=`basename $i` RES="$RES -#1 -#1 #2 #4 #4 INI @@ -287,18 +253,15 @@ load_main_data "$ROOT_DIR/source.list" openttd openttdfiles=`echo "$openttd" | grep "^#4" | sed "s~#4~~g"` openttdfilters=`echo "$openttd" | grep "^#3" | sed "s~#3~~g"` openttdvcxproj=`echo "$openttd" | grep "^#2" | sed "s~#2~~g"` -openttd=`echo "$openttd" | grep "^#1" | sed "s~#1~~g"` load_lang_data "$ROOT_DIR/src/lang/*.txt" lang langfiles=`echo "$lang" | grep "^#3" | sed "s~#3~~g"` langvcxproj=`echo "$lang" | grep "^#2" | sed "s~#2~~g"` -lang=`echo "$lang" | grep "^#1" | sed "s~#1~~g"` load_settings_data "$ROOT_DIR/src/table/*.ini" settings settingsfiles=`echo "$settings" | grep "^#4" | sed "s~#4~~g"` settingscommand=`echo "$settings" | grep "^#3" | sed "s~#3~~g"` settingsvcxproj=`echo "$settings" | grep "^#2" | sed "s~#2~~g"` -settings=`echo "$settings" | grep "^#1" | sed "s~#1~~g"` generate "$openttdvcxproj" "openttd_vs140.vcxproj" generate "$openttdfiles" "openttd_vs140.vcxproj.filters" "$openttdfilters" diff --git a/projects/generate.vbs b/projects/generate.vbs old mode 100755 new mode 100644 index 5439ed7c0d..218dcfc0ec --- a/projects/generate.vbs +++ b/projects/generate.vbs @@ -140,9 +140,8 @@ Sub headers_check(filename, dir) End If End Sub -Function load_main_data(filename, ByRef vcxproj, ByRef filters, ByRef files) - Dim res, file, line, deep, skip, first_filter, first_file, filter, cltype, index - res = "" +Sub load_main_data(filename, ByRef vcxproj, ByRef filters, ByRef files) + Dim file, line, deep, skip, first_filter, first_file, filter, cltype, index index = 0 ' Read the source.list and process it Set file = FSO.OpenTextFile(filename, 1, 0, 0) @@ -176,16 +175,11 @@ Function load_main_data(filename, ByRef vcxproj, ByRef filters, ByRef files) if deep = skip Then line = Replace(line, "# ", "") if first_filter <> 0 Then - res = res & " " & vbCrLf filters = filters & vbCrLf Else first_filter = 1 End If filter = line - res = res & _ - " " & vbCrLf filters = filters & _ " " & vbCrLf & _ " {c76ff9f1-1e62-46d8-8d55-" & String(12 - Len(CStr(index)), "0") & index & "}" & vbCrLf & _ @@ -201,11 +195,6 @@ Function load_main_data(filename, ByRef vcxproj, ByRef filters, ByRef files) Else first_file = 1 End If - res = res & _ - " " & vbCrLf & _ - " " & vbCrLf Select Case Split(Line, ".")(1) Case "cpp" cltype = "ClCompile" @@ -223,42 +212,22 @@ Function load_main_data(filename, ByRef vcxproj, ByRef filters, ByRef files) End Select End If Wend - res = res & " " file.Close() - load_main_data = res -End Function +End Sub -Function load_lang_data(dir, ByRef vcxproj, ByRef files) - Dim res, folder, file, first_time - res = "" +Sub load_lang_data(dir, ByRef vcxproj, ByRef files) + Dim folder, file, first_time Set folder = FSO.GetFolder(dir) For Each file In folder.Files file = FSO.GetFileName(file) If file <> "english.txt" And FSO.GetExtensionName(file) = "txt" Then file = Left(file, Len(file) - 4) If first_time <> 0 Then - res = res & vbCrLf vcxproj = vcxproj & vbCrLf files = files & vbCrLf Else first_time = 1 End If - res = res & _ - " " & vbCrLf & _ - " " & vbCrLf & _ - " " & vbCrLf & _ - " " & vbCrLf & _ - " " vcxproj = vcxproj & _ " " & vbCrLf & _ " Generating " & file & " language file" & vbCrLf & _ @@ -272,29 +241,21 @@ Function load_lang_data(dir, ByRef vcxproj, ByRef files) " " End If Next - load_lang_data = res -End Function +End Sub -Function load_settings_data(dir, ByRef vcxproj, ByRef command, ByRef files) - Dim res, folder, file, first_time - res = "" +Sub load_settings_data(dir, ByRef vcxproj, ByRef command, ByRef files) + Dim folder, file, first_time command = "..\objs\settings\settings_gen.exe -o ..\objs\settings\table\settings.h -b ..\src\table\settings.h.preamble -a ..\src\table\settings.h.postamble" Set folder = FSO.GetFolder(dir) For Each file In folder.Files file = FSO.GetFileName(file) If FSO.GetExtensionName(file) = "ini" Then if first_time <> 0 Then - res = res & vbCrLf vcxproj = vcxproj & vbCrLf files = files & vbCrLf Else first_time = 1 End If - res = res & _ - " " & vbCrLf & _ - " " vcxproj = vcxproj & _ " " command = command & " ..\src\table\" & file @@ -304,8 +265,7 @@ Function load_settings_data(dir, ByRef vcxproj, ByRef command, ByRef files) " " End If Next - load_settings_data = res -End Function +End Sub Sub generate(data, dest, data2) Dim srcfile, destfile, line @@ -358,22 +318,22 @@ End If safety_check ROOT_DIR & "/source.list" headers_check ROOT_DIR & "/source.list", ROOT_DIR & "\src\" ' Backslashes needed for DoFiles -Dim openttd, openttdvcxproj, openttdfilters, openttdfiles -openttd = load_main_data(ROOT_DIR & "/source.list", openttdvcxproj, openttdfilters, openttdfiles) +Dim openttdvcxproj, openttdfilters, openttdfiles +load_main_data ROOT_DIR & "/source.list", openttdvcxproj, openttdfilters, openttdfiles generate openttdvcxproj, ROOT_DIR & "/projects/openttd_vs140.vcxproj", Null generate openttdfiles, ROOT_DIR & "/projects/openttd_vs140.vcxproj.filters", openttdfilters generate openttdvcxproj, ROOT_DIR & "/projects/openttd_vs141.vcxproj", Null generate openttdfiles, ROOT_DIR & "/projects/openttd_vs141.vcxproj.filters", openttdfilters -Dim lang, langvcxproj, langfiles -lang = load_lang_data(ROOT_DIR & "/src/lang", langvcxproj, langfiles) +Dim langvcxproj, langfiles +load_lang_data ROOT_DIR & "/src/lang", langvcxproj, langfiles generate langvcxproj, ROOT_DIR & "/projects/langs_vs140.vcxproj", Null generate langfiles, ROOT_DIR & "/projects/langs_vs140.vcxproj.filters", Null generate langvcxproj, ROOT_DIR & "/projects/langs_vs141.vcxproj", Null generate langfiles, ROOT_DIR & "/projects/langs_vs141.vcxproj.filters", Null -Dim settings, settingsvcxproj, settingscommand, settingsfiles -settings = load_settings_data(ROOT_DIR & "/src/table", settingsvcxproj, settingscommand, settingsfiles) +Dim settingsvcxproj, settingscommand, settingsfiles +load_settings_data ROOT_DIR & "/src/table", settingsvcxproj, settingscommand, settingsfiles generate settingsvcxproj, ROOT_DIR & "/projects/settings_vs140.vcxproj", settingscommand generate settingsfiles, ROOT_DIR & "/projects/settings_vs140.vcxproj.filters", Null generate settingsvcxproj, ROOT_DIR & "/projects/settings_vs141.vcxproj", settingscommand From c3dbe836b40215d48691356d7bf1298217ba8edc Mon Sep 17 00:00:00 2001 From: PeterN Date: Tue, 22 Jan 2019 12:42:52 +0000 Subject: [PATCH 03/41] Add: Draw network password indicator lock in company drop down list. (#7079) --- src/toolbar_gui.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/toolbar_gui.cpp b/src/toolbar_gui.cpp index cd0f518dfd..afa9adacbd 100644 --- a/src/toolbar_gui.cpp +++ b/src/toolbar_gui.cpp @@ -119,12 +119,14 @@ public: */ class DropDownListCompanyItem : public DropDownListItem { Dimension icon_size; + Dimension lock_size; public: bool greyed; DropDownListCompanyItem(int result, bool masked, bool greyed) : DropDownListItem(result, masked), greyed(greyed) { this->icon_size = GetSpriteSize(SPR_COMPANY_ICON); + this->lock_size = GetSpriteSize(SPR_LOCK); } virtual ~DropDownListCompanyItem() {} @@ -139,12 +141,12 @@ public: CompanyID company = (CompanyID)this->result; SetDParam(0, company); SetDParam(1, company); - return GetStringBoundingBox(STR_COMPANY_NAME_COMPANY_NUM).width + this->icon_size.width + 3; + return GetStringBoundingBox(STR_COMPANY_NAME_COMPANY_NUM).width + this->icon_size.width + this->lock_size.width + 6; } uint Height(uint width) const { - return max(this->icon_size.height + 2U, (uint)FONT_HEIGHT_NORMAL); + return max(max(this->icon_size.height, this->lock_size.height) + 2U, (uint)FONT_HEIGHT_NORMAL); } void Draw(int left, int right, int top, int bottom, bool sel, int bg_colour) const @@ -157,8 +159,12 @@ public: int icon_offset = (bottom - top - icon_size.height) / 2; int text_offset = (bottom - top - FONT_HEIGHT_NORMAL) / 2; + int lock_offset = (bottom - top - lock_size.height) / 2; DrawCompanyIcon(company, rtl ? right - this->icon_size.width - WD_FRAMERECT_RIGHT : left + WD_FRAMERECT_LEFT, top + icon_offset); + if (NetworkCompanyIsPassworded(company)) { + DrawSprite(SPR_LOCK, PAL_NONE, rtl ? left + WD_FRAMERECT_LEFT : right - this->lock_size.width - WD_FRAMERECT_RIGHT, top + lock_offset); + } SetDParam(0, company); SetDParam(1, company); @@ -168,7 +174,7 @@ public: } else { col = sel ? TC_WHITE : TC_BLACK; } - DrawString(left + WD_FRAMERECT_LEFT + (rtl ? 0 : 3 + this->icon_size.width), right - WD_FRAMERECT_RIGHT - (rtl ? 3 + this->icon_size.width : 0), top + text_offset, STR_COMPANY_NAME_COMPANY_NUM, col); + DrawString(left + WD_FRAMERECT_LEFT + (rtl ? 3 + this->lock_size.width : 3 + this->icon_size.width), right - WD_FRAMERECT_RIGHT - (rtl ? 3 + this->icon_size.width : 3 + this->lock_size.width), top + text_offset, STR_COMPANY_NAME_COMPANY_NUM, col); } }; From 636fcc2cc02d502f6e0ebddf7fc2d1d2c60f0cb8 Mon Sep 17 00:00:00 2001 From: glx Date: Tue, 8 Jan 2019 03:36:47 +0100 Subject: [PATCH 04/41] Fix: keep the line ending when generating widget enums with bash/gawk on windows --- src/script/api/generate_widget.awk | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/script/api/generate_widget.awk b/src/script/api/generate_widget.awk index 81d9592d77..cdbe59d970 100644 --- a/src/script/api/generate_widget.awk +++ b/src/script/api/generate_widget.awk @@ -24,6 +24,8 @@ BEGIN { skiptillend = 0; } +{ CR = (match($0, "\\r$") > 0 ? "\r" : "") } + /@enum/ { print; add_indent = gensub("[^ ]*", "", "g"); @@ -42,7 +44,7 @@ BEGIN { active_comment = 0; comment = ""; file = filearray[i]; - print add_indent "/* automatically generated from " file " */" + print add_indent "/* automatically generated from " file " */" CR while ((getline < file) > 0) { sub(rm_indent, ""); @@ -65,7 +67,7 @@ BEGIN { } # Forget doxygen comment, if no enum follows - if (active_comment == 2 && $0 != "") { + if (active_comment == 2 && $0 != "" CR) { active_comment = 0; comment = ""; } @@ -78,22 +80,21 @@ BEGIN { sub(" *//", " //"); match($0, "^( *)([A-Za-z0-9_]+),(.*)", parts); - enumwidth - length(parts[2]) - if (parts[3] == "") { - printf "%s%s%-45s= ::%s\n", add_indent, parts[1], parts[2], (parts[2] ",") + if (parts[3] == "" CR) { + printf "%s%s%-45s= ::%s\n", add_indent, parts[1], parts[2], (parts[2] "," CR) } else { - printf "%s%s%-45s= ::%-45s%s\n", add_indent, parts[1], parts[2], (parts[2] ","), parts[3]; + printf "%s%s%-45s= ::%-45s%s\n", add_indent, parts[1], parts[2], (parts[2] ","), (parts[3]); } - } else if ($0 == "") { - print ""; + } else if ($0 == "" CR) { + print "" CR; } else { print add_indent $0; } } if (match($0, "^ *\\};") > 0) { - if (active != 0) print ""; + if (active != 0) print "" CR; active = 0; } } From 72925919677baf3c0ebff3672afd4fbb977e6421 Mon Sep 17 00:00:00 2001 From: glx Date: Sun, 6 Jan 2019 16:36:44 +0100 Subject: [PATCH 05/41] Add: generate_widget.vbs to allow script_window.hpp enums generation for users unable to run bash/gawk scripts --- src/script/api/generate_widget.vbs | 192 +++++++++++++++++++++++++++++ 1 file changed, 192 insertions(+) create mode 100644 src/script/api/generate_widget.vbs diff --git a/src/script/api/generate_widget.vbs b/src/script/api/generate_widget.vbs new file mode 100644 index 0000000000..0bd38bb299 --- /dev/null +++ b/src/script/api/generate_widget.vbs @@ -0,0 +1,192 @@ +Option Explicit + +' $Id$ +' +' This file is part of OpenTTD. +' OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. +' OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +' See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see . + +Dim FSO, filename, skiptillend, eof +Set FSO = CreateObject("Scripting.FileSystemObject") + +filename = "script_window.hpp" +skiptillend = False +eof = vbCrLf + +If Not FSO.FileExists(filename) Then + WScript.Echo filename & " not found" + WScript.Quit 1 +End If + +Function GetFiles(pattern) + Dim parent, re, files, f + Set files = CreateObject("Scripting.Dictionary") + Set re = New RegExp + + parent = FSO.GetParentFolderName(pattern) + pattern = FSO.GetFileName(pattern) + + ' Convert pattern to a valid regex + re.Global = True + re.Pattern = "\." + pattern = re.Replace(pattern, "\.") + re.Pattern = "\*" + pattern = re.Replace(pattern, ".*") + re.Pattern = pattern + + ' Get the file list + For Each f In FSO.GetFolder(parent).Files + If re.Test(f.Path) Then + f = parent & "/" & f.Name + files.Add f, f + End If + Next + + ' Sort the file list + Set GetFiles = CreateObject("Scripting.Dictionary") + While files.Count <> 0 + Dim first + first = "" + For Each f in files + If first = "" Or StrComp(first, f) = 1 Then first = f + Next + GetFiles.Add first, first + files.Remove(First) + Wend +End Function + +Sub Generate(line, file) + Dim re, add_indent, enum_pattern, file_pattern, f, active, active_comment, comment, rm_indent + Set re = New RegExp + + re.Global = True + re.Pattern = "[^ ]*" + add_indent = re.Replace(line, "") + re.Global = False + re.Pattern = ".*@enum *" + line = Split(re.Replace(line, "")) + enum_pattern = line(0) + file_pattern = line(1) + For Each f In GetFiles(file_pattern).Items + active = 0 + active_comment = 0 + comment = "" + file.Write add_indent & "/* automatically generated from " & f & " */" & eof + Set f = FSO.OpenTextFile(f, 1) + While Not f.AtEndOfStream + re.Pattern = rm_indent + line = re.Replace(f.ReadLine, "") + + ' Remember possible doxygen comment before enum declaration + re.Pattern = "/\*\*" + If active = 0 And re.Test(line) Then + comment = add_indent & line + active_comment = 1 + ElseIf active_comment = 1 Then + comment = comment & vbCrLf & add_indent & line + End If + + ' Check for enum match + re.Pattern = "^ *enum *" & enum_pattern & " *\{" + If re.Test(line) Then + re.Global = True + re.Pattern = "[^ ]*" + rm_indent = re.Replace(line, "") + re.Global = False + active = 1 + If active_comment > 0 Then file.Write comment & eof + active_comment = 0 + comment = "" + End If + + ' Forget doxygen comment, if no enum follows + If active_comment = 2 And line <> "" Then + active_comment = 0 + comment = "" + End If + re.Pattern = "\*/" + If active_comment = 1 And re.Test(line) Then active_comment = 2 + + If active <> 0 Then + re.Pattern = "^ *[A-Za-z0-9_]* *[,=]" + If re.Test(line) Then + Dim parts + ' Transform enum values + re.Pattern = " *=[^,]*" + line = re.Replace(line, "") + re.Pattern = " *//" + line = re.Replace(line, " //") + + re.Pattern = "^( *)([A-Za-z0-9_]+),(.*)" + Set parts = re.Execute(line) + + With parts.Item(0).SubMatches + If .Item(2) = "" Then + file.Write add_indent & .Item(0) & .Item(1) & String(45 - Len(.Item(1)), " ") & "= ::" & .Item(1) & "," & eof + Else + file.Write add_indent & .Item(0) & .Item(1) & String(45 - Len(.Item(1)), " ") & "= ::" & .Item(1) & "," & String(44 - Len(.Item(1)), " ") & .Item(2) & eof + End If + End With + ElseIf line = "" Then + file.Write eof + Else + file.Write add_indent & line & eof + End If + End If + + re.Pattern = "^ *\};" + If re.Test(line) Then + If active <> 0 Then file.Write eof + active = 0 + End If + Wend + f.Close + Next +End Sub + +Sub Parse(line, file) + Dim re + Set re = New RegExp + + re.pattern = "@enum" + If re.Test(line) Then + file.Write line & eof + Generate line, file + skiptillend = True + Exit Sub + End If + + re.pattern = "@endenum" + If re.Test(line) Then + file.Write line & eof + skiptillend = False + Exit Sub + End If + + If Not skiptillend Then + file.Write line & eof + End If +End Sub + +Dim file, source, lines, i + +WScript.Echo "Starting to parse " & filename +Set file = FSO.OpenTextFile(filename, 1) +If Not file.AtEndOfStream Then + source = file.ReadAll +End IF +file.Close + +lines = Split(source, eof) +If UBound(lines) = 0 Then + eof = vbLf + lines = Split(source, eof) +End If + +Set file = FSO.OpenTextFile(filename, 2) +For i = LBound(lines) To UBound(lines) - 1 ' Split adds an extra line, we must ignore it + Parse lines(i), file +Next +file.Close +WScript.Echo "Done" From ed325ada887f09904b3351020903899a033c6b51 Mon Sep 17 00:00:00 2001 From: translators Date: Wed, 23 Jan 2019 19:45:44 +0100 Subject: [PATCH 06/41] Update: Translations from eints spanish: 3 changes by SilverSurferZzZ --- src/lang/spanish.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 1c258e2e34..3fbc855eff 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -931,6 +931,7 @@ STR_GAME_OPTIONS_CURRENCY_CUSTOM :Personalizada.. STR_GAME_OPTIONS_CURRENCY_GEL :Lari Georgiano (GEL) STR_GAME_OPTIONS_CURRENCY_IRR :Rial Iraní (IRR) STR_GAME_OPTIONS_CURRENCY_RUB :Nuevo Rublo Ruso (RUB) +STR_GAME_OPTIONS_CURRENCY_MXN :Peso mexicano (MXN) ############ end of currency region STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Vehículos de carretera @@ -2722,6 +2723,7 @@ STR_FRAMERATE_SOUND :{BLACK}Mezcla d ############ End of leave-in-this-order ############ Leave those lines in this order!! STR_FRAMETIME_CAPTION_GL_TRAINS :Ticks de trenes +STR_FRAMETIME_CAPTION_GL_SHIPS :Ticks de barcos STR_FRAMETIME_CAPTION_DRAWING :Renderizado gráfico STR_FRAMETIME_CAPTION_VIDEO :Salida de vídeo STR_FRAMETIME_CAPTION_SOUND :Mezcla de sonido @@ -3826,6 +3828,7 @@ STR_ORDER_CONDITIONAL_AGE :Edad (años) STR_ORDER_CONDITIONAL_REQUIRES_SERVICE :Requiere mantenimiento STR_ORDER_CONDITIONAL_UNCONDITIONALLY :Siempre STR_ORDER_CONDITIONAL_REMAINING_LIFETIME :Tiempo de vida restante (años) +STR_ORDER_CONDITIONAL_MAX_RELIABILITY :Fiabilidad máxima STR_ORDER_CONDITIONAL_COMPARATOR_TOOLTIP :{BLACK}Como comparar los datos del vehículo al valor dado STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS :es igual a From db924a4681f019a6372f5192693af5aede36d080 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Tue, 16 Jan 2018 23:23:52 +0000 Subject: [PATCH 07/41] Codechange: [Blitter] Change DrawLine to be templated This is remove per-pixel overheads due to use of the SetPixel virtual method. These overheads included: * expensive virtual method call which prevents inlining * palette lookup for every pixel * branch on whether palette animation is enabled on every pixel Regenerate project files. --- projects/openttd_vs140.vcxproj | 2 +- projects/openttd_vs140.vcxproj.filters | 6 +++--- projects/openttd_vs141.vcxproj | 2 +- projects/openttd_vs141.vcxproj.filters | 6 +++--- source.list | 2 +- src/blitter/32bpp_anim.cpp | 19 +++++++++++++++++++ src/blitter/32bpp_anim.hpp | 1 + src/blitter/32bpp_base.cpp | 9 +++++++++ src/blitter/32bpp_base.hpp | 1 + src/blitter/8bpp_base.cpp | 8 ++++++++ src/blitter/8bpp_base.hpp | 1 + src/blitter/base.hpp | 4 +++- src/blitter/{base.cpp => common.hpp} | 19 +++++++++++-------- 13 files changed, 62 insertions(+), 18 deletions(-) rename src/blitter/{base.cpp => common.hpp} (86%) diff --git a/projects/openttd_vs140.vcxproj b/projects/openttd_vs140.vcxproj index f08c26f09b..59f52a08da 100644 --- a/projects/openttd_vs140.vcxproj +++ b/projects/openttd_vs140.vcxproj @@ -1201,8 +1201,8 @@ - + diff --git a/projects/openttd_vs140.vcxproj.filters b/projects/openttd_vs140.vcxproj.filters index 7ad671fc7c..e93c94f1f7 100644 --- a/projects/openttd_vs140.vcxproj.filters +++ b/projects/openttd_vs140.vcxproj.filters @@ -2691,12 +2691,12 @@ Blitters - - Blitters - Blitters + + Blitters + Blitters diff --git a/projects/openttd_vs141.vcxproj b/projects/openttd_vs141.vcxproj index 552b9b9a95..525119179d 100644 --- a/projects/openttd_vs141.vcxproj +++ b/projects/openttd_vs141.vcxproj @@ -1201,8 +1201,8 @@ - + diff --git a/projects/openttd_vs141.vcxproj.filters b/projects/openttd_vs141.vcxproj.filters index 7ad671fc7c..e93c94f1f7 100644 --- a/projects/openttd_vs141.vcxproj.filters +++ b/projects/openttd_vs141.vcxproj.filters @@ -2691,12 +2691,12 @@ Blitters - - Blitters - Blitters + + Blitters + Blitters diff --git a/source.list b/source.list index f78b8cecff..358b16a7cd 100644 --- a/source.list +++ b/source.list @@ -948,8 +948,8 @@ blitter/8bpp_optimized.hpp blitter/8bpp_simple.cpp blitter/8bpp_simple.hpp #end -blitter/base.cpp blitter/base.hpp +blitter/common.hpp blitter/factory.hpp blitter/null.cpp blitter/null.hpp diff --git a/src/blitter/32bpp_anim.cpp b/src/blitter/32bpp_anim.cpp index 98ae22b00c..27b1fbd5b8 100644 --- a/src/blitter/32bpp_anim.cpp +++ b/src/blitter/32bpp_anim.cpp @@ -12,6 +12,7 @@ #include "../stdafx.h" #include "../video/video_driver.hpp" #include "32bpp_anim.hpp" +#include "common.hpp" #include "../table/sprites.h" @@ -321,6 +322,24 @@ void Blitter_32bppAnim::SetPixel(void *video, int x, int y, uint8 colour) this->anim_buf[this->ScreenToAnimOffset((uint32 *)video) + x + y * this->anim_buf_pitch] = colour | (DEFAULT_BRIGHTNESS << 8); } +void Blitter_32bppAnim::DrawLine(void *video, int x, int y, int x2, int y2, int screen_width, int screen_height, uint8 colour, int width, int dash) +{ + const Colour c = LookupColourInPalette(colour); + + if (_screen_disable_anim) { + this->DrawLineGeneric(x, y, x2, y2, screen_width, screen_height, width, dash, [&](int x, int y) { + *((Colour *)video + x + y * _screen.pitch) = c; + }); + } else { + uint16 * const offset_anim_buf = this->anim_buf + this->ScreenToAnimOffset((uint32 *)video); + const uint16 anim_colour = colour | (DEFAULT_BRIGHTNESS << 8); + this->DrawLineGeneric(x, y, x2, y2, screen_width, screen_height, width, dash, [&](int x, int y) { + *((Colour *)video + x + y * _screen.pitch) = c; + offset_anim_buf[x + y * this->anim_buf_pitch] = anim_colour; + }); + } +} + void Blitter_32bppAnim::DrawRect(void *video, int width, int height, uint8 colour) { if (_screen_disable_anim) { diff --git a/src/blitter/32bpp_anim.hpp b/src/blitter/32bpp_anim.hpp index da33ec95bb..ecf6dcfca0 100644 --- a/src/blitter/32bpp_anim.hpp +++ b/src/blitter/32bpp_anim.hpp @@ -40,6 +40,7 @@ public: /* virtual */ void Draw(Blitter::BlitterParams *bp, BlitterMode mode, ZoomLevel zoom); /* virtual */ void DrawColourMappingRect(void *dst, int width, int height, PaletteID pal); /* virtual */ void SetPixel(void *video, int x, int y, uint8 colour); + /* virtual */ void DrawLine(void *video, int x, int y, int x2, int y2, int screen_width, int screen_height, uint8 colour, int width, int dash); /* virtual */ void DrawRect(void *video, int width, int height, uint8 colour); /* virtual */ void CopyFromBuffer(void *video, const void *src, int width, int height); /* virtual */ void CopyToBuffer(const void *video, void *dst, int width, int height); diff --git a/src/blitter/32bpp_base.cpp b/src/blitter/32bpp_base.cpp index c396e45410..b2e66b0be1 100644 --- a/src/blitter/32bpp_base.cpp +++ b/src/blitter/32bpp_base.cpp @@ -11,6 +11,7 @@ #include "../stdafx.h" #include "32bpp_base.hpp" +#include "common.hpp" #include "../safeguards.h" @@ -24,6 +25,14 @@ void Blitter_32bppBase::SetPixel(void *video, int x, int y, uint8 colour) *((Colour *)video + x + y * _screen.pitch) = LookupColourInPalette(colour); } +void Blitter_32bppBase::DrawLine(void *video, int x, int y, int x2, int y2, int screen_width, int screen_height, uint8 colour, int width, int dash) +{ + const Colour c = LookupColourInPalette(colour); + this->DrawLineGeneric(x, y, x2, y2, screen_width, screen_height, width, dash, [=](int x, int y) { + *((Colour *)video + x + y * _screen.pitch) = c; + }); +} + void Blitter_32bppBase::DrawRect(void *video, int width, int height, uint8 colour) { Colour colour32 = LookupColourInPalette(colour); diff --git a/src/blitter/32bpp_base.hpp b/src/blitter/32bpp_base.hpp index 9b76271704..697593da6a 100644 --- a/src/blitter/32bpp_base.hpp +++ b/src/blitter/32bpp_base.hpp @@ -23,6 +23,7 @@ public: /* virtual */ uint8 GetScreenDepth() { return 32; } /* virtual */ void *MoveTo(void *video, int x, int y); /* virtual */ void SetPixel(void *video, int x, int y, uint8 colour); + /* virtual */ void DrawLine(void *video, int x, int y, int x2, int y2, int screen_width, int screen_height, uint8 colour, int width, int dash); /* virtual */ void DrawRect(void *video, int width, int height, uint8 colour); /* virtual */ void CopyFromBuffer(void *video, const void *src, int width, int height); /* virtual */ void CopyToBuffer(const void *video, void *dst, int width, int height); diff --git a/src/blitter/8bpp_base.cpp b/src/blitter/8bpp_base.cpp index eab6eaa0db..dccfda3d70 100644 --- a/src/blitter/8bpp_base.cpp +++ b/src/blitter/8bpp_base.cpp @@ -12,6 +12,7 @@ #include "../stdafx.h" #include "../gfx_func.h" #include "8bpp_base.hpp" +#include "common.hpp" #include "../safeguards.h" @@ -35,6 +36,13 @@ void Blitter_8bppBase::SetPixel(void *video, int x, int y, uint8 colour) *((uint8 *)video + x + y * _screen.pitch) = colour; } +void Blitter_8bppBase::DrawLine(void *video, int x, int y, int x2, int y2, int screen_width, int screen_height, uint8 colour, int width, int dash) +{ + this->DrawLineGeneric(x, y, x2, y2, screen_width, screen_height, width, dash, [=](int x, int y) { + *((uint8 *)video + x + y * _screen.pitch) = colour; + }); +} + void Blitter_8bppBase::DrawRect(void *video, int width, int height, uint8 colour) { do { diff --git a/src/blitter/8bpp_base.hpp b/src/blitter/8bpp_base.hpp index 2dff784992..8f75dda5d3 100644 --- a/src/blitter/8bpp_base.hpp +++ b/src/blitter/8bpp_base.hpp @@ -21,6 +21,7 @@ public: /* virtual */ void DrawColourMappingRect(void *dst, int width, int height, PaletteID pal); /* virtual */ void *MoveTo(void *video, int x, int y); /* virtual */ void SetPixel(void *video, int x, int y, uint8 colour); + /* virtual */ void DrawLine(void *video, int x, int y, int x2, int y2, int screen_width, int screen_height, uint8 colour, int width, int dash); /* virtual */ void DrawRect(void *video, int width, int height, uint8 colour); /* virtual */ void CopyFromBuffer(void *video, const void *src, int width, int height); /* virtual */ void CopyToBuffer(const void *video, void *dst, int width, int height); diff --git a/src/blitter/base.hpp b/src/blitter/base.hpp index a9403b339d..388359441f 100644 --- a/src/blitter/base.hpp +++ b/src/blitter/base.hpp @@ -122,7 +122,7 @@ public: * @param width Line width. * @param dash Length of dashes for dashed lines. 0 means solid line. */ - virtual void DrawLine(void *video, int x, int y, int x2, int y2, int screen_width, int screen_height, uint8 colour, int width, int dash = 0); + virtual void DrawLine(void *video, int x, int y, int x2, int y2, int screen_width, int screen_height, uint8 colour, int width, int dash = 0) = 0; /** * Copy from a buffer to the screen. @@ -203,6 +203,8 @@ public: virtual void PostResize() { }; virtual ~Blitter() { } + + template void DrawLineGeneric(int x, int y, int x2, int y2, int screen_width, int screen_height, int width, int dash, SetPixelT set_pixel); }; #endif /* BLITTER_BASE_HPP */ diff --git a/src/blitter/base.cpp b/src/blitter/common.hpp similarity index 86% rename from src/blitter/base.cpp rename to src/blitter/common.hpp index e83df2e714..0e255ca9a3 100644 --- a/src/blitter/base.cpp +++ b/src/blitter/common.hpp @@ -7,15 +7,16 @@ * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see . */ -/** @file base.cpp Implementation of the base for all blitters. */ +/** @file common.hpp Common functionality for all blitter implementations. */ + +#ifndef BLITTER_COMMON_HPP +#define BLITTER_COMMON_HPP -#include "../stdafx.h" #include "base.hpp" #include "../core/math_func.hpp" -#include "../safeguards.h" - -void Blitter::DrawLine(void *video, int x, int y, int x2, int y2, int screen_width, int screen_height, uint8 colour, int width, int dash) +template +void Blitter::DrawLineGeneric(int x, int y, int x2, int y2, int screen_width, int screen_height, int width, int dash, SetPixelT set_pixel) { int dy; int dx; @@ -40,7 +41,7 @@ void Blitter::DrawLine(void *video, int x, int y, int x2, int y2, int screen_wid if (dx == 0 && dy == 0) { /* The algorithm below cannot handle this special case; make it work at least for line width 1 */ - if (x >= 0 && x < screen_width && y >= 0 && y < screen_height) this->SetPixel(video, x, y, colour); + if (x >= 0 && x < screen_width && y >= 0 && y < screen_height) set_pixel(x, y); return; } @@ -83,7 +84,7 @@ void Blitter::DrawLine(void *video, int x, int y, int x2, int y2, int screen_wid while (x != x2) { if (dash_count < dash && x >= 0 && x < screen_width) { for (int y = y_low; y != y_high; y += stepy) { - if (y >= 0 && y < screen_height) this->SetPixel(video, x, y, colour); + if (y >= 0 && y < screen_height) set_pixel(x, y); } } if (frac_low >= 0) { @@ -118,7 +119,7 @@ void Blitter::DrawLine(void *video, int x, int y, int x2, int y2, int screen_wid while (y != y2) { if (dash_count < dash && y >= 0 && y < screen_height) { for (int x = x_low; x != x_high; x += stepx) { - if (x >= 0 && x < screen_width) this->SetPixel(video, x, y, colour); + if (x >= 0 && x < screen_width) set_pixel(x, y); } } if (frac_low >= 0) { @@ -136,3 +137,5 @@ void Blitter::DrawLine(void *video, int x, int y, int x2, int y2, int screen_wid } } } + +#endif /* BLITTER_COMMON_HPP */ From 0240e90169570f2ad2343c3cbbeade7886e599e9 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Wed, 17 Jan 2018 02:34:03 +0000 Subject: [PATCH 08/41] Fix: [Blitter] Avoid signed overflow when drawing long lines --- src/blitter/common.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/blitter/common.hpp b/src/blitter/common.hpp index 0e255ca9a3..9019dd359d 100644 --- a/src/blitter/common.hpp +++ b/src/blitter/common.hpp @@ -50,11 +50,11 @@ void Blitter::DrawLineGeneric(int x, int y, int x2, int y2, int screen_width, in /* compute frac_diff = width * sqrt(dx*dx + dy*dy) * Start interval: * max(dx, dy) <= sqrt(dx*dx + dy*dy) <= sqrt(2) * max(dx, dy) <= 3/2 * max(dx, dy) */ - int frac_sq = width * width * (dx * dx + dy * dy); + int64 frac_sq = ((int64) width) * ((int64) width) * (((int64) dx) * ((int64) dx) + ((int64) dy) * ((int64) dy)); int frac_max = 3 * frac_diff / 2; while (frac_diff < frac_max) { int frac_test = (frac_diff + frac_max) / 2; - if (frac_test * frac_test < frac_sq) { + if (((int64) frac_test) * ((int64) frac_test) < frac_sq) { frac_diff = frac_test + 1; } else { frac_max = frac_test - 1; From 4b256fed36f6edab42c6a18e5d31e17e38ac669b Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Wed, 17 Jan 2018 02:52:40 +0000 Subject: [PATCH 09/41] Codechange: [Blitter] Adjust line-drawing algorithm to reduce wasted off-screen work This clips the line segment to be within the screen area prior to pixel iteration. --- src/blitter/common.hpp | 76 ++++++++++++++++++++++++++++++++++++------ 1 file changed, 66 insertions(+), 10 deletions(-) diff --git a/src/blitter/common.hpp b/src/blitter/common.hpp index 9019dd359d..3e4911d003 100644 --- a/src/blitter/common.hpp +++ b/src/blitter/common.hpp @@ -15,6 +15,8 @@ #include "base.hpp" #include "../core/math_func.hpp" +#include + template void Blitter::DrawLineGeneric(int x, int y, int x2, int y2, int screen_width, int screen_height, int width, int dash, SetPixelT set_pixel) { @@ -66,23 +68,50 @@ void Blitter::DrawLineGeneric(int x, int y, int x2, int y2, int screen_width, in if (dash == 0) dash = 1; int dash_count = 0; if (dx > dy) { + if (stepx < 0) { + std::swap(x, x2); + std::swap(y, y2); + stepy = -stepy; + } + if (x2 < 0 || x >= screen_width) return; + int y_low = y; int y_high = y; int frac_low = dy - frac_diff / 2; int frac_high = dy + frac_diff / 2; - while (frac_low + dx / 2 < 0) { + while (frac_low < -(dx / 2)) { frac_low += dx; y_low -= stepy; } - while (frac_high - dx / 2 >= 0) { + while (frac_high >= dx / 2) { frac_high -= dx; y_high += stepy; } - x2 += stepx; + + if (x < 0) { + dash_count = (-x) % (dash + gap); + auto adjust_frac = [&](int64 frac, int &y_bound) -> int { + frac -= ((int64) dy) * ((int64) x); + if (frac >= 0) { + int quotient = frac / dx; + int remainder = frac % dx; + y_bound += (1 + quotient) * stepy; + frac = remainder - dx; + } + return frac; + }; + frac_low = adjust_frac(frac_low, y_low); + frac_high = adjust_frac(frac_high, y_high); + x = 0; + } + x2++; + if (x2 > screen_width) { + x2 = screen_width; + } while (x != x2) { - if (dash_count < dash && x >= 0 && x < screen_width) { + if (dash_count < dash) { for (int y = y_low; y != y_high; y += stepy) { if (y >= 0 && y < screen_height) set_pixel(x, y); } @@ -95,29 +124,56 @@ void Blitter::DrawLineGeneric(int x, int y, int x2, int y2, int screen_width, in y_high += stepy; frac_high -= dx; } - x += stepx; + x++; frac_low += dy; frac_high += dy; if (++dash_count >= dash + gap) dash_count = 0; } } else { + if (stepy < 0) { + std::swap(x, x2); + std::swap(y, y2); + stepx = -stepx; + } + if (y2 < 0 || y >= screen_height) return; + int x_low = x; int x_high = x; int frac_low = dx - frac_diff / 2; int frac_high = dx + frac_diff / 2; - while (frac_low + dy / 2 < 0) { + while (frac_low < -(dy / 2)) { frac_low += dy; x_low -= stepx; } - while (frac_high - dy / 2 >= 0) { + while (frac_high >= dy / 2) { frac_high -= dy; x_high += stepx; } - y2 += stepy; + + if (y < 0) { + dash_count = (-y) % (dash + gap); + auto adjust_frac = [&](int64 frac, int &x_bound) -> int { + frac -= ((int64) dx) * ((int64) y); + if (frac >= 0) { + int quotient = frac / dy; + int remainder = frac % dy; + x_bound += (1 + quotient) * stepx; + frac = remainder - dy; + } + return frac; + }; + frac_low = adjust_frac(frac_low, x_low); + frac_high = adjust_frac(frac_high, x_high); + y = 0; + } + y2++; + if (y2 > screen_height) { + y2 = screen_height; + } while (y != y2) { - if (dash_count < dash && y >= 0 && y < screen_height) { + if (dash_count < dash) { for (int x = x_low; x != x_high; x += stepx) { if (x >= 0 && x < screen_width) set_pixel(x, y); } @@ -130,7 +186,7 @@ void Blitter::DrawLineGeneric(int x, int y, int x2, int y2, int screen_width, in x_high += stepx; frac_high -= dy; } - y += stepy; + y++; frac_low += dx; frac_high += dx; if (++dash_count >= dash + gap) dash_count = 0; From b934cdf0ab1ea24b301a43cadf0be924f0c5ae37 Mon Sep 17 00:00:00 2001 From: translators Date: Thu, 24 Jan 2019 19:45:44 +0100 Subject: [PATCH 10/41] Update: Translations from eints italian: 7 changes by lorenzodv --- src/lang/italian.txt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/lang/italian.txt b/src/lang/italian.txt index 3d2291fc7a..b1afa82abc 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -191,6 +191,7 @@ STR_COLOUR_ORANGE :Arancio STR_COLOUR_BROWN :Marrone STR_COLOUR_GREY :Grigio STR_COLOUR_WHITE :Bianco +STR_COLOUR_RANDOM :Casuale # Units used in OpenTTD STR_UNITS_VELOCITY_IMPERIAL :{COMMA}{NBSP}mph @@ -931,6 +932,7 @@ STR_GAME_OPTIONS_CURRENCY_CUSTOM :Personalizzata. STR_GAME_OPTIONS_CURRENCY_GEL :Lari georgiano (GEL) STR_GAME_OPTIONS_CURRENCY_IRR :Rial iraniano (IRR) STR_GAME_OPTIONS_CURRENCY_RUB :Nuovo rublo russo (RUB) +STR_GAME_OPTIONS_CURRENCY_MXN :Peso messicano (MXN) ############ end of currency region STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Automezzi @@ -1282,6 +1284,8 @@ STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Non è p STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Manutenzione infrastrutture: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Se abilitata, le infrastrutture causano dei costi di manutenzione. I costi crescono in modo più che proporzionale alla dimensione della rete, influenzando maggiormente le compagnie più grandi rispetto alle piccole +STR_CONFIG_SETTING_COMPANY_STARTING_COLOUR :Colore iniziale compagnia: {STRING} +STR_CONFIG_SETTING_COMPANY_STARTING_COLOUR_HELPTEXT :Sceglie il colore iniziale della compagnia STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS :Non rendere mai obsoleti i tipi di aeroporto: {STRING} STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS_HELPTEXT :Abilitando questa impostazione, tutti i tipi di aeroporto rimangono disponibili indefinitamente dopo essere stati introdotti @@ -3381,6 +3385,9 @@ STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Centra l STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Livello di produzione: {YELLOW}{COMMA}% STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}L'industria ha annunciato che a breve chiuderà! +STR_INDUSTRY_VIEW_REQUIRES_N_CARGO :{BLACK}Richiede: {YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_PRODUCES_N_CARGO :{BLACK}Produce: {YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_CARGO_LIST_EXTENSION :, {STRING}{STRING} STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Richiede: STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING} From 43852baace470938c71147d9029b4679d62a05a8 Mon Sep 17 00:00:00 2001 From: "Johannes E. Krause" Date: Sun, 13 Jan 2019 20:49:44 +0100 Subject: [PATCH 11/41] Codechange: Remove unused GetTilePixelZOutsideMap and GetTileMaxPixelZOutsideMap functions (Patch by adf88, #6583) --- src/tile_map.cpp | 36 ------------------------------------ src/tile_map.h | 5 ----- 2 files changed, 41 deletions(-) diff --git a/src/tile_map.cpp b/src/tile_map.cpp index d73beeb886..05b0ea1942 100644 --- a/src/tile_map.cpp +++ b/src/tile_map.cpp @@ -192,23 +192,6 @@ int GetTileZ(TileIndex tile) return h; } -/** - * Get bottom height of the tile outside map. - * - * @param x X-coordinate of the tile outside to compute height of. - * @param y Y-coordinate of the tile outside to compute height of. - * @return Minimum height of the tile outside the map. - */ -int GetTilePixelZOutsideMap(int x, int y) -{ - uint h = TileHeightOutsideMap(x, y); // N corner. - h = min(h, TileHeightOutsideMap(x + 1, y)); // W corner. - h = min(h, TileHeightOutsideMap(x, y + 1)); // E corner. - h = min(h, TileHeightOutsideMap(x + 1, y + 1)); // S corner - - return h * TILE_HEIGHT; -} - /** * Get top height of the tile inside the map. * @param t Tile to compute height of @@ -225,22 +208,3 @@ int GetTileMaxZ(TileIndex t) return h; } - -/** - * Get top height of the tile outside the map. - * - * @see Detailed description in header. - * - * @param x X-coordinate of the tile outside to compute height of. - * @param y Y-coordinate of the tile outside to compute height of. - * @return Maximum height of the tile. - */ -int GetTileMaxPixelZOutsideMap(int x, int y) -{ - uint h = TileHeightOutsideMap(x, y); - h = max(h, TileHeightOutsideMap(x + 1, y)); - h = max(h, TileHeightOutsideMap(x, y + 1)); - h = max(h, TileHeightOutsideMap(x + 1, y + 1)); - - return h * TILE_HEIGHT; -} diff --git a/src/tile_map.h b/src/tile_map.h index 89f532e4f0..3fad368cd7 100644 --- a/src/tile_map.h +++ b/src/tile_map.h @@ -289,8 +289,6 @@ static inline int GetTilePixelZ(TileIndex tile) return GetTileZ(tile) * TILE_HEIGHT; } -int GetTilePixelZOutsideMap(int x, int y); - /** * Get top height of the tile * @param tile Tile to compute height of @@ -301,9 +299,6 @@ static inline int GetTileMaxPixelZ(TileIndex tile) return GetTileMaxZ(tile) * TILE_HEIGHT; } -int GetTileMaxPixelZOutsideMap(int x, int y); - - /** * Calculate a hash value from a tile position * From f0290d5de77176718153a2d078bee7dae57c16dc Mon Sep 17 00:00:00 2001 From: "Johannes E. Krause" Date: Sun, 13 Jan 2019 20:52:04 +0100 Subject: [PATCH 12/41] Codechange: Add InverseRemapCoords2 function for remapping viewport coordinates to underlying tile coordinates (Patch by adf88, #6583) --- src/landscape.cpp | 51 +++++++++++++++++++++++++++++++++ src/landscape.h | 3 ++ src/smallmap_gui.cpp | 6 ++-- src/viewport.cpp | 68 ++++++++++---------------------------------- 4 files changed, 72 insertions(+), 56 deletions(-) diff --git a/src/landscape.cpp b/src/landscape.cpp index 18f27807d7..eb1e404f0c 100644 --- a/src/landscape.cpp +++ b/src/landscape.cpp @@ -89,6 +89,57 @@ extern const byte _slope_to_sprite_offset[32] = { */ static SnowLine *_snow_line = NULL; +/** + * Map 2D viewport or smallmap coordinate to 3D world or tile coordinate. + * Function takes into account height of tiles and foundations. + * + * @param x X viewport 2D coordinate. + * @param y Y viewport 2D coordinate. + * @param clamp_to_map Clamp the coordinate outside of the map to the closest, non-void tile within the map. + * @return 3D world coordinate of point visible at the given screen coordinate (3D perspective). + * + * @note Inverse of #RemapCoords2 function. Smaller values may get rounded. + * @see InverseRemapCoords + */ +Point InverseRemapCoords2(int x, int y, bool clamp_to_map) +{ + /* Initial x/y world coordinate is like if the landscape + * was completely flat on height 0. */ + Point pt = InverseRemapCoords(x, y); + + const uint min_coord = _settings_game.construction.freeform_edges ? TILE_SIZE : 0; + const uint max_x = MapMaxX() * TILE_SIZE - 1; + const uint max_y = MapMaxY() * TILE_SIZE - 1; + + if (clamp_to_map) { + /* Bring the coordinates near to a valid range. At the top we allow a number + * of extra tiles. This is mostly due to the tiles on the north side of + * the map possibly being drawn higher due to the extra height levels. */ + int extra_tiles = CeilDiv(_settings_game.construction.max_heightlevel * TILE_HEIGHT, TILE_PIXELS); + pt.x = Clamp(pt.x, -extra_tiles * TILE_SIZE, max_x); + pt.y = Clamp(pt.y, -extra_tiles * TILE_SIZE, max_y); + } + + /* Now find the Z-world coordinate by fix point iteration. + * This is a bit tricky because the tile height is non-continuous at foundations. + * The clicked point should be approached from the back, otherwise there are regions that are not clickable. + * (FOUNDATION_HALFTILE_LOWER on SLOPE_STEEP_S hides north halftile completely) + * So give it a z-malus of 4 in the first iterations. */ + int z = 0; + for (int i = 0; i < 5; i++) z = GetSlopePixelZ(Clamp(pt.x + max(z, 4) - 4, min_coord, max_x), Clamp(pt.y + max(z, 4) - 4, min_coord, max_y)) / 2; + for (int m = 3; m > 0; m--) z = GetSlopePixelZ(Clamp(pt.x + max(z, m) - m, min_coord, max_x), Clamp(pt.y + max(z, m) - m, min_coord, max_y)) / 2; + for (int i = 0; i < 5; i++) z = GetSlopePixelZ(Clamp(pt.x + z, min_coord, max_x), Clamp(pt.y + z, min_coord, max_y)) / 2; + + pt.x += z; + pt.y += z; + if (clamp_to_map) { + pt.x = Clamp(pt.x, min_coord, max_x); + pt.y = Clamp(pt.y, min_coord, max_y); + } + + return pt; +} + /** * Applies a foundation to a slope. * diff --git a/src/landscape.h b/src/landscape.h index cb08d9d9ec..cf366e09c9 100644 --- a/src/landscape.h +++ b/src/landscape.h @@ -108,6 +108,7 @@ static inline Point RemapCoords2(int x, int y) * @param y Y coordinate of the 2D coordinate. * @return X and Y components of equivalent world or tile coordinate. * @note Inverse of #RemapCoords function. Smaller values may get rounded. + * @see InverseRemapCoords2 */ static inline Point InverseRemapCoords(int x, int y) { @@ -115,6 +116,8 @@ static inline Point InverseRemapCoords(int x, int y) return pt; } +Point InverseRemapCoords2(int x, int y, bool clamp_to_map = false); + uint ApplyFoundationToSlope(Foundation f, Slope *s); /** * Applies a foundation to a slope. diff --git a/src/smallmap_gui.cpp b/src/smallmap_gui.cpp index df9fd2df23..10eeca5d36 100644 --- a/src/smallmap_gui.cpp +++ b/src/smallmap_gui.cpp @@ -923,8 +923,8 @@ void SmallMapWindow::DrawMapIndicators() const /* Find main viewport. */ const ViewPort *vp = FindWindowById(WC_MAIN_WINDOW, 0)->viewport; - Point upper_left_smallmap_coord = TranslateXYToTileCoord(vp, vp->left, vp->top, false); - Point lower_right_smallmap_coord = TranslateXYToTileCoord(vp, vp->left + vp->width - 1, vp->top + vp->height - 1, false); + Point upper_left_smallmap_coord = InverseRemapCoords2(vp->virtual_left, vp->virtual_top); + Point lower_right_smallmap_coord = InverseRemapCoords2(vp->virtual_left + vp->virtual_width - 1, vp->virtual_top + vp->virtual_height - 1); Point upper_left = this->RemapTile(upper_left_smallmap_coord.x / (int)TILE_SIZE, upper_left_smallmap_coord.y / (int)TILE_SIZE); upper_left.x -= this->subscroll; @@ -1645,7 +1645,7 @@ void SmallMapWindow::SetNewScroll(int sx, int sy, int sub) void SmallMapWindow::SmallMapCenterOnCurrentPos() { const ViewPort *vp = FindWindowById(WC_MAIN_WINDOW, 0)->viewport; - Point viewport_center = TranslateXYToTileCoord(vp, vp->left + vp->width / 2, vp->top + vp->height / 2); + Point viewport_center = InverseRemapCoords2(vp->virtual_left + vp->virtual_width / 2, vp->virtual_top + vp->virtual_height / 2); int sub; const NWidgetBase *wid = this->GetWidget(WID_SM_MAP); diff --git a/src/viewport.cpp b/src/viewport.cpp index 5e72aaa23e..da1085161d 100644 --- a/src/viewport.cpp +++ b/src/viewport.cpp @@ -399,65 +399,27 @@ ViewPort *IsPtInWindowViewport(const Window *w, int x, int y) } /** - * Translate screen coordinate in a viewport to a tile coordinate + * Translate screen coordinate in a viewport to underlying tile coordinate. + * + * Returns exact point of the map that is visible in the given place + * of the viewport (3D perspective), height of tiles and foundations matter. + * * @param vp Viewport that contains the (\a x, \a y) screen coordinate - * @param x Screen x coordinate - * @param y Screen y coordinate - * @param clamp_to_map Clamp the coordinate outside of the map to the closest tile within the map. - * @return Tile coordinate + * @param x Screen x coordinate, distance in pixels from the left edge of viewport frame + * @param y Screen y coordinate, distance in pixels from the top edge of viewport frame + * @param clamp_to_map Clamp the coordinate outside of the map to the closest, non-void tile within the map + * @return Tile coordinate or (-1, -1) if given x or y is not within viewport frame */ Point TranslateXYToTileCoord(const ViewPort *vp, int x, int y, bool clamp_to_map) { - Point pt; - int a, b; - int z; - - if ( (uint)(x -= vp->left) >= (uint)vp->width || - (uint)(y -= vp->top) >= (uint)vp->height) { - Point pt = {-1, -1}; - return pt; + if (!IsInsideBS(x, vp->left, vp->width) || !IsInsideBS(y, vp->top, vp->height)) { + Point pt = { -1, -1 }; + return pt; } - x = (ScaleByZoom(x, vp->zoom) + vp->virtual_left) >> (2 + ZOOM_LVL_SHIFT); - y = (ScaleByZoom(y, vp->zoom) + vp->virtual_top) >> (1 + ZOOM_LVL_SHIFT); - - a = y - x; - b = y + x; - - if (clamp_to_map) { - /* Bring the coordinates near to a valid range. This is mostly due to the - * tiles on the north side of the map possibly being drawn too high due to - * the extra height levels. So at the top we allow a number of extra tiles. - * This number is based on the tile height and pixels. */ - int extra_tiles = CeilDiv(_settings_game.construction.max_heightlevel * TILE_HEIGHT, TILE_PIXELS); - a = Clamp(a, -extra_tiles * TILE_SIZE, MapMaxX() * TILE_SIZE - 1); - b = Clamp(b, -extra_tiles * TILE_SIZE, MapMaxY() * TILE_SIZE - 1); - } - - /* (a, b) is the X/Y-world coordinate that belongs to (x,y) if the landscape would be completely flat on height 0. - * Now find the Z-world coordinate by fix point iteration. - * This is a bit tricky because the tile height is non-continuous at foundations. - * The clicked point should be approached from the back, otherwise there are regions that are not clickable. - * (FOUNDATION_HALFTILE_LOWER on SLOPE_STEEP_S hides north halftile completely) - * So give it a z-malus of 4 in the first iterations. - */ - z = 0; - - int min_coord = _settings_game.construction.freeform_edges ? TILE_SIZE : 0; - - for (int i = 0; i < 5; i++) z = GetSlopePixelZ(Clamp(a + max(z, 4) - 4, min_coord, MapMaxX() * TILE_SIZE - 1), Clamp(b + max(z, 4) - 4, min_coord, MapMaxY() * TILE_SIZE - 1)) / 2; - for (int malus = 3; malus > 0; malus--) z = GetSlopePixelZ(Clamp(a + max(z, malus) - malus, min_coord, MapMaxX() * TILE_SIZE - 1), Clamp(b + max(z, malus) - malus, min_coord, MapMaxY() * TILE_SIZE - 1)) / 2; - for (int i = 0; i < 5; i++) z = GetSlopePixelZ(Clamp(a + z, min_coord, MapMaxX() * TILE_SIZE - 1), Clamp(b + z, min_coord, MapMaxY() * TILE_SIZE - 1)) / 2; - - if (clamp_to_map) { - pt.x = Clamp(a + z, min_coord, MapMaxX() * TILE_SIZE - 1); - pt.y = Clamp(b + z, min_coord, MapMaxY() * TILE_SIZE - 1); - } else { - pt.x = a + z; - pt.y = b + z; - } - - return pt; + return InverseRemapCoords2( + ScaleByZoom(x - vp->left, vp->zoom) + vp->virtual_left, + ScaleByZoom(y - vp->top, vp->zoom) + vp->virtual_top, clamp_to_map); } /* When used for zooming, check area below current coordinates (x,y) From f744dea0ff7104a4ac9f1cfdc067caaf2c10acd0 Mon Sep 17 00:00:00 2001 From: "Johannes E. Krause" Date: Sun, 13 Jan 2019 20:54:21 +0100 Subject: [PATCH 13/41] Fix: jumping effect when scrolling viewport over bottom edge of the map (Patch by adf88, #6583) --- src/landscape.cpp | 9 ++- src/landscape.h | 2 +- src/viewport.cpp | 136 ++++++++-------------------------------------- 3 files changed, 33 insertions(+), 114 deletions(-) diff --git a/src/landscape.cpp b/src/landscape.cpp index eb1e404f0c..79b24baf72 100644 --- a/src/landscape.cpp +++ b/src/landscape.cpp @@ -96,13 +96,16 @@ static SnowLine *_snow_line = NULL; * @param x X viewport 2D coordinate. * @param y Y viewport 2D coordinate. * @param clamp_to_map Clamp the coordinate outside of the map to the closest, non-void tile within the map. + * @param[out] clamped Whether coordinates were clamped. * @return 3D world coordinate of point visible at the given screen coordinate (3D perspective). * * @note Inverse of #RemapCoords2 function. Smaller values may get rounded. * @see InverseRemapCoords */ -Point InverseRemapCoords2(int x, int y, bool clamp_to_map) +Point InverseRemapCoords2(int x, int y, bool clamp_to_map, bool *clamped) { + if (clamped != NULL) *clamped = false; // Not clamping yet. + /* Initial x/y world coordinate is like if the landscape * was completely flat on height 0. */ Point pt = InverseRemapCoords(x, y); @@ -116,8 +119,10 @@ Point InverseRemapCoords2(int x, int y, bool clamp_to_map) * of extra tiles. This is mostly due to the tiles on the north side of * the map possibly being drawn higher due to the extra height levels. */ int extra_tiles = CeilDiv(_settings_game.construction.max_heightlevel * TILE_HEIGHT, TILE_PIXELS); + Point old_pt = pt; pt.x = Clamp(pt.x, -extra_tiles * TILE_SIZE, max_x); pt.y = Clamp(pt.y, -extra_tiles * TILE_SIZE, max_y); + if (clamped != NULL) *clamped = (pt.x != old_pt.x) || (pt.y != old_pt.y); } /* Now find the Z-world coordinate by fix point iteration. @@ -133,8 +138,10 @@ Point InverseRemapCoords2(int x, int y, bool clamp_to_map) pt.x += z; pt.y += z; if (clamp_to_map) { + Point old_pt = pt; pt.x = Clamp(pt.x, min_coord, max_x); pt.y = Clamp(pt.y, min_coord, max_y); + if (clamped != NULL) *clamped = *clamped || (pt.x != old_pt.x) || (pt.y != old_pt.y); } return pt; diff --git a/src/landscape.h b/src/landscape.h index cf366e09c9..d24d0d190d 100644 --- a/src/landscape.h +++ b/src/landscape.h @@ -116,7 +116,7 @@ static inline Point InverseRemapCoords(int x, int y) return pt; } -Point InverseRemapCoords2(int x, int y, bool clamp_to_map = false); +Point InverseRemapCoords2(int x, int y, bool clamp_to_map = false, bool *clamped = NULL); uint ApplyFoundationToSlope(Foundation f, Slope *s); /** diff --git a/src/viewport.cpp b/src/viewport.cpp index da1085161d..7fe280a203 100644 --- a/src/viewport.cpp +++ b/src/viewport.cpp @@ -1631,121 +1631,33 @@ void Window::DrawViewport() const } /** - * Continue criteria for the SearchMapEdge function. - * @param iter Value to check. - * @param iter_limit Maximum value for the iter - * @param sy Screen y coordinate calculated for the tile at hand - * @param sy_limit Limit to the screen y coordinate - * @return True when we should continue searching. + * Ensure that a given viewport has a valid scroll position. + * + * There must be a visible piece of the map in the center of the viewport. + * If there isn't, the viewport will be scrolled to nearest such location. + * + * @param vp The viewport. + * @param[in,out] scroll_x Viewport X scroll. + * @param[in,out] scroll_y Viewport Y scroll. */ -typedef bool ContinueMapEdgeSearch(int iter, int iter_limit, int sy, int sy_limit); - -/** Continue criteria for searching a no-longer-visible tile in negative direction, starting at some tile. */ -static inline bool ContinueLowerMapEdgeSearch(int iter, int iter_limit, int sy, int sy_limit) { return iter > 0 && sy > sy_limit; } -/** Continue criteria for searching a no-longer-visible tile in positive direction, starting at some tile. */ -static inline bool ContinueUpperMapEdgeSearch(int iter, int iter_limit, int sy, int sy_limit) { return iter < iter_limit && sy < sy_limit; } - -/** - * Searches, starting at the given tile, by applying the given offset to iter, for a no longer visible tile. - * The whole sense of this function is keeping the to-be-written code small, thus it is a little bit abstracted - * so the same function can be used for both the X and Y locations. As such a reference to one of the elements - * in curr_tile was needed. - * @param curr_tile A tile - * @param iter Reference to either the X or Y of curr_tile. - * @param iter_limit Upper search limit for the iter value. - * @param offset Search in steps of this size - * @param sy_limit Search limit to be passed to the criteria - * @param continue_criteria Search as long as this criteria is true - * @return The final value of iter. - */ -static int SearchMapEdge(Point &curr_tile, int &iter, int iter_limit, int offset, int sy_limit, ContinueMapEdgeSearch continue_criteria) +static inline void ClampViewportToMap(const ViewPort *vp, int *scroll_x, int *scroll_y) { - int sy; - do { - iter = Clamp(iter + offset, 0, iter_limit); - sy = GetViewportY(curr_tile); - } while (continue_criteria(iter, iter_limit, sy, sy_limit)); + /* Centre of the viewport is hot spot. */ + Point pt = { + *scroll_x + vp->virtual_width / 2, + *scroll_y + vp->virtual_height / 2 + }; - return iter; -} + /* Find nearest tile that is within borders of the map. */ + bool clamped; + pt = InverseRemapCoords2(pt.x, pt.y, true, &clamped); -/** - * Determine the clamping of either the X or Y coordinate to the map. - * @param curr_tile A tile - * @param iter Reference to either the X or Y of curr_tile. - * @param iter_limit Upper search limit for the iter value. - * @param start Start value for the iteration. - * @param other_ref Reference to the opposite axis in curr_tile than of iter. - * @param other_value Start value for of the opposite axis - * @param vp_value Value of the viewport location in the opposite axis as for iter. - * @param other_limit Limit for the other value, so if iter is X, then other_limit is for Y. - * @param vp_top Top of the viewport. - * @param vp_bottom Bottom of the viewport. - * @return Clamped version of vp_value. - */ -static inline int ClampXYToMap(Point &curr_tile, int &iter, int iter_limit, int start, int &other_ref, int other_value, int vp_value, int other_limit, int vp_top, int vp_bottom) -{ - bool upper_edge = other_value < _settings_game.construction.max_heightlevel / 4; - - /* - * First get an estimate of the tiles relevant for us at that edge. Relevant in the sense - * "at least close to the visible area". Thus, we don't look at exactly each tile, inspecting - * e.g. every tenth should be enough. After all, the desired screen limit is set such that - * the bordermost tiles are painted in the middle of the screen when one hits the limit, - * i.e. it is no harm if there is some small error in that calculation - */ - - other_ref = upper_edge ? 0 : other_limit; - iter = start; - int min_iter = SearchMapEdge(curr_tile, iter, iter_limit, upper_edge ? -10 : +10, vp_top, upper_edge ? ContinueLowerMapEdgeSearch : ContinueUpperMapEdgeSearch); - iter = start; - int max_iter = SearchMapEdge(curr_tile, iter, iter_limit, upper_edge ? +10 : -10, vp_bottom, upper_edge ? ContinueUpperMapEdgeSearch : ContinueLowerMapEdgeSearch); - - max_iter = min(max_iter + _settings_game.construction.max_heightlevel / 4, iter_limit); - min_iter = min(min_iter, max_iter); - - /* Now, calculate the highest heightlevel of these tiles. Again just as an estimate. */ - int max_heightlevel_at_edge = 0; - for (iter = min_iter; iter <= max_iter; iter += 10) { - max_heightlevel_at_edge = max(max_heightlevel_at_edge, (int)TileHeight(TileXY(curr_tile.x, curr_tile.y))); + if (clamped) { + /* Convert back to viewport coordinates and remove centering. */ + pt = RemapCoords2(pt.x, pt.y); + *scroll_x = pt.x - vp->virtual_width / 2; + *scroll_y = pt.y - vp->virtual_height / 2; } - - /* Based on that heightlevel, calculate the limit. For the upper edge a tile with height zero would - * get a limit of zero, on the other side it depends on the number of tiles along the axis. */ - return upper_edge ? - max(vp_value, -max_heightlevel_at_edge * (int)(TILE_HEIGHT * 2 * ZOOM_LVL_BASE)) : - min(vp_value, (other_limit * TILE_SIZE * 4 - max_heightlevel_at_edge * TILE_HEIGHT * 2) * ZOOM_LVL_BASE); -} - -static inline void ClampViewportToMap(const ViewPort *vp, int &x, int &y) -{ - int original_y = y; - - /* Centre of the viewport is hot spot */ - x += vp->virtual_width / 2; - y += vp->virtual_height / 2; - - /* Convert viewport coordinates to map coordinates - * Calculation is scaled by 4 to avoid rounding errors */ - int vx = -x + y * 2; - int vy = x + y * 2; - - /* Find out which tile corresponds to (vx,vy) if one assumes height zero. The cast is necessary to prevent C++ from - * converting the result to an uint, which gives an overflow instead of a negative result... */ - int tx = vx / (int)(TILE_SIZE * 4 * ZOOM_LVL_BASE); - int ty = vy / (int)(TILE_SIZE * 4 * ZOOM_LVL_BASE); - - Point curr_tile; - vx = ClampXYToMap(curr_tile, curr_tile.y, MapMaxY(), ty, curr_tile.x, tx, vx, MapMaxX(), original_y, original_y + vp->virtual_height); - vy = ClampXYToMap(curr_tile, curr_tile.x, MapMaxX(), tx, curr_tile.y, ty, vy, MapMaxY(), original_y, original_y + vp->virtual_height); - - /* Convert map coordinates to viewport coordinates */ - x = (-vx + vy) / 2; - y = ( vx + vy) / 4; - - /* Remove centering */ - x -= vp->virtual_width / 2; - y -= vp->virtual_height / 2; } /** @@ -1765,7 +1677,7 @@ void UpdateViewportPosition(Window *w) SetViewportPosition(w, pt.x, pt.y); } else { /* Ensure the destination location is within the map */ - ClampViewportToMap(vp, w->viewport->dest_scrollpos_x, w->viewport->dest_scrollpos_y); + ClampViewportToMap(vp, &w->viewport->dest_scrollpos_x, &w->viewport->dest_scrollpos_y); int delta_x = w->viewport->dest_scrollpos_x - w->viewport->scrollpos_x; int delta_y = w->viewport->dest_scrollpos_y - w->viewport->scrollpos_y; @@ -1785,7 +1697,7 @@ void UpdateViewportPosition(Window *w) w->viewport->scrollpos_y == w->viewport->dest_scrollpos_y); } - ClampViewportToMap(vp, w->viewport->scrollpos_x, w->viewport->scrollpos_y); + ClampViewportToMap(vp, &w->viewport->scrollpos_x, &w->viewport->scrollpos_y); SetViewportPosition(w, w->viewport->scrollpos_x, w->viewport->scrollpos_y); if (update_overlay) RebuildViewportOverlay(w); From 05da5a177c7e976d5da0da541a842482ab23017d Mon Sep 17 00:00:00 2001 From: "Johannes E. Krause" Date: Sun, 13 Jan 2019 20:56:10 +0100 Subject: [PATCH 14/41] Codechange: Simplify marking tiles dirty when terraforming (Patch by adf88, #6583) --- src/terraform_cmd.cpp | 93 ++++--------------------------------------- src/viewport.cpp | 21 ++-------- src/viewport_func.h | 15 +++++-- 3 files changed, 23 insertions(+), 106 deletions(-) diff --git a/src/terraform_cmd.cpp b/src/terraform_cmd.cpp index aad9822822..5b476da18e 100644 --- a/src/terraform_cmd.cpp +++ b/src/terraform_cmd.cpp @@ -309,6 +309,14 @@ CommandCost CmdTerraformLand(TileIndex tile, DoCommandFlag flags, uint32 p1, uin } if (flags & DC_EXEC) { + /* Mark affected areas dirty. */ + for (TileIndexSet::const_iterator it = ts.dirty_tiles.begin(); it != ts.dirty_tiles.end(); it++) { + MarkTileDirtyByTile(*it); + TileIndexToHeightMap::const_iterator new_height = ts.tile_to_new_height.find(tile); + if (new_height != ts.tile_to_new_height.end()) continue; + MarkTileDirtyByTile(*it, 0, new_height->second); + } + /* change the height */ for (TileIndexToHeightMap::const_iterator it = ts.tile_to_new_height.begin(); it != ts.tile_to_new_height.end(); it++) { @@ -318,91 +326,6 @@ CommandCost CmdTerraformLand(TileIndex tile, DoCommandFlag flags, uint32 p1, uin SetTileHeight(tile, (uint)height); } - /* Finally mark the dirty tiles dirty */ - for (TileIndexSet::const_iterator it = ts.dirty_tiles.begin(); it != ts.dirty_tiles.end(); it++) { - MarkTileDirtyByTile(*it); - - int height = TerraformGetHeightOfTile(&ts, *it); - - /* Now, if we alter the height of the map edge, we need to take care - * about repainting the affected areas outside map as well. - * Remember: - * Outside map, we assume that our landscape descends to - * height zero as fast as possible. - * Those simulated tiles (they don't exist as datastructure, - * only as concept in code) need to be repainted properly, - * otherwise we will get ugly glitches. - * - * Furthermore, note that we have to take care about the possibility, - * that landscape was higher before the change, - * so also tiles a bit outside need to be repainted. - */ - int x = TileX(*it); - int y = TileY(*it); - if (x == 0) { - if (y == 0) { - /* Height of the northern corner is altered. */ - for (int cx = 0; cx >= -height - 1; cx--) { - for (int cy = 0; cy >= -height - 1; cy--) { - /* This means, tiles in the sector north of that - * corner need to be repainted. - */ - if (cx + cy >= -height - 2) { - /* But only tiles that actually might have changed. */ - MarkTileDirtyByTileOutsideMap(cx, cy); - } - } - } - } else if (y < (int)MapMaxY()) { - for (int cx = 0; cx >= -height - 1; cx--) { - MarkTileDirtyByTileOutsideMap(cx, y); - } - } else { - for (int cx = 0; cx >= -height - 1; cx--) { - for (int cy = (int)MapMaxY(); cy <= (int)MapMaxY() + height + 1; cy++) { - if (cx + ((int)MapMaxY() - cy) >= -height - 2) { - MarkTileDirtyByTileOutsideMap(cx, cy); - } - } - } - } - } else if (x < (int)MapMaxX()) { - if (y == 0) { - for (int cy = 0; cy >= -height - 1; cy--) { - MarkTileDirtyByTileOutsideMap(x, cy); - } - } else if (y < (int)MapMaxY()) { - /* Nothing to be done here, we are inside the map. */ - } else { - for (int cy = (int)MapMaxY(); cy <= (int)MapMaxY() + height + 1; cy++) { - MarkTileDirtyByTileOutsideMap(x, cy); - } - } - } else { - if (y == 0) { - for (int cx = (int)MapMaxX(); cx <= (int)MapMaxX() + height + 1; cx++) { - for (int cy = 0; cy >= -height - 1; cy--) { - if (((int)MapMaxX() - cx) + cy >= -height - 2) { - MarkTileDirtyByTileOutsideMap(cx, cy); - } - } - } - } else if (y < (int)MapMaxY()) { - for (int cx = (int)MapMaxX(); cx <= (int)MapMaxX() + height + 1; cx++) { - MarkTileDirtyByTileOutsideMap(cx, y); - } - } else { - for (int cx = (int)MapMaxX(); cx <= (int)MapMaxX() + height + 1; cx++) { - for (int cy = (int)MapMaxY(); cy <= (int)MapMaxY() + height + 1; cy++) { - if (((int)MapMaxX() - cx) + ((int)MapMaxY() - cy) >= -height - 2) { - MarkTileDirtyByTileOutsideMap(cx, cy); - } - } - } - } - } - } - if (c != NULL) c->terraform_limit -= (uint32)ts.tile_to_new_height.size() << 16; } return total_cost; diff --git a/src/viewport.cpp b/src/viewport.cpp index 7fe280a203..11a1587126 100644 --- a/src/viewport.cpp +++ b/src/viewport.cpp @@ -1779,11 +1779,12 @@ void ConstrainAllViewportsZoom() * Mark a tile given by its index dirty for repaint. * @param tile The tile to mark dirty. * @param bridge_level_offset Height of bridge on tile to also mark dirty. (Height level relative to north corner.) + * @param tile_height_override Height of the tile (#TileHeight). * @ingroup dirty */ -void MarkTileDirtyByTile(TileIndex tile, int bridge_level_offset) +void MarkTileDirtyByTile(TileIndex tile, int bridge_level_offset, int tile_height_override) { - Point pt = RemapCoords(TileX(tile) * TILE_SIZE, TileY(tile) * TILE_SIZE, TilePixelHeight(tile)); + Point pt = RemapCoords(TileX(tile) * TILE_SIZE, TileY(tile) * TILE_SIZE, tile_height_override * TILE_HEIGHT); MarkAllViewportsDirty( pt.x - MAX_TILE_EXTENT_LEFT, pt.y - MAX_TILE_EXTENT_TOP - ZOOM_LVL_BASE * TILE_HEIGHT * bridge_level_offset, @@ -1791,22 +1792,6 @@ void MarkTileDirtyByTile(TileIndex tile, int bridge_level_offset) pt.y + MAX_TILE_EXTENT_BOTTOM); } -/** - * Mark a (virtual) tile outside the map dirty for repaint. - * @param x Tile X position. - * @param y Tile Y position. - * @ingroup dirty - */ -void MarkTileDirtyByTileOutsideMap(int x, int y) -{ - Point pt = RemapCoords(x * TILE_SIZE, y * TILE_SIZE, TilePixelHeightOutsideMap(x, y)); - MarkAllViewportsDirty( - pt.x - MAX_TILE_EXTENT_LEFT, - pt.y, // no buildings outside of map - pt.x + MAX_TILE_EXTENT_RIGHT, - pt.y + MAX_TILE_EXTENT_BOTTOM); -} - /** * Marks the selected tiles as dirty. * diff --git a/src/viewport_func.h b/src/viewport_func.h index cbdcc5019a..319d4efd60 100644 --- a/src/viewport_func.h +++ b/src/viewport_func.h @@ -15,7 +15,7 @@ #include "gfx_type.h" #include "viewport_type.h" #include "window_type.h" -#include "tile_type.h" +#include "tile_map.h" #include "station_type.h" static const int TILE_HEIGHT_STEP = 50; ///< One Z unit tile height difference is displayed as 50m. @@ -78,9 +78,18 @@ void UpdateAllVirtCoords(); extern Point _tile_fract_coords; -void MarkTileDirtyByTile(TileIndex tile, int bridge_level_offset = 0); +void MarkTileDirtyByTile(TileIndex tile, int bridge_level_offset, int tile_height_override); -void MarkTileDirtyByTileOutsideMap(int x, int y); +/** + * Mark a tile given by its index dirty for repaint. + * @param tile The tile to mark dirty. + * @param bridge_level_offset Height of bridge on tile to also mark dirty. (Height level relative to north corner.) + * @ingroup dirty + */ +static inline void MarkTileDirtyByTile(TileIndex tile, int bridge_level_offset = 0) +{ + MarkTileDirtyByTile(tile, bridge_level_offset, TileHeight(tile)); +} Point GetViewportStationMiddle(const ViewPort *vp, const Station *st); From c33596fe4af59213a8a6119fee61a75ed91abdc4 Mon Sep 17 00:00:00 2001 From: "Johannes E. Krause" Date: Sun, 13 Jan 2019 20:58:48 +0100 Subject: [PATCH 15/41] Codechange: Unify tile height model in all functions (Patch by adf88, #6583) --- src/landscape.cpp | 29 +++++++++-- src/landscape.h | 1 + src/tile_map.cpp | 126 +++++++++++++--------------------------------- src/tile_map.h | 21 +++++--- src/void_cmd.cpp | 9 +++- 5 files changed, 85 insertions(+), 101 deletions(-) diff --git a/src/landscape.cpp b/src/landscape.cpp index 79b24baf72..991a445ad8 100644 --- a/src/landscape.cpp +++ b/src/landscape.cpp @@ -131,9 +131,15 @@ Point InverseRemapCoords2(int x, int y, bool clamp_to_map, bool *clamped) * (FOUNDATION_HALFTILE_LOWER on SLOPE_STEEP_S hides north halftile completely) * So give it a z-malus of 4 in the first iterations. */ int z = 0; - for (int i = 0; i < 5; i++) z = GetSlopePixelZ(Clamp(pt.x + max(z, 4) - 4, min_coord, max_x), Clamp(pt.y + max(z, 4) - 4, min_coord, max_y)) / 2; - for (int m = 3; m > 0; m--) z = GetSlopePixelZ(Clamp(pt.x + max(z, m) - m, min_coord, max_x), Clamp(pt.y + max(z, m) - m, min_coord, max_y)) / 2; - for (int i = 0; i < 5; i++) z = GetSlopePixelZ(Clamp(pt.x + z, min_coord, max_x), Clamp(pt.y + z, min_coord, max_y)) / 2; + if (clamp_to_map) { + for (int i = 0; i < 5; i++) z = GetSlopePixelZ(Clamp(pt.x + max(z, 4) - 4, min_coord, max_x), Clamp(pt.y + max(z, 4) - 4, min_coord, max_y)) / 2; + for (int m = 3; m > 0; m--) z = GetSlopePixelZ(Clamp(pt.x + max(z, m) - m, min_coord, max_x), Clamp(pt.y + max(z, m) - m, min_coord, max_y)) / 2; + for (int i = 0; i < 5; i++) z = GetSlopePixelZ(Clamp(pt.x + z, min_coord, max_x), Clamp(pt.y + z, min_coord, max_y)) / 2; + } else { + for (int i = 0; i < 5; i++) z = GetSlopePixelZOutsideMap(pt.x + max(z, 4) - 4, pt.y + max(z, 4) - 4) / 2; + for (int m = 3; m > 0; m--) z = GetSlopePixelZOutsideMap(pt.x + max(z, m) - m, pt.y + max(z, m) - m) / 2; + for (int i = 0; i < 5; i++) z = GetSlopePixelZOutsideMap(pt.x + z, pt.y + z ) / 2; + } pt.x += z; pt.y += z; @@ -342,6 +348,23 @@ int GetSlopePixelZ(int x, int y) return _tile_type_procs[GetTileType(tile)]->get_slope_z_proc(tile, x, y); } +/** + * Return world \c z coordinate of a given point of a tile, + * also for tiles outside the map (virtual "black" tiles). + * + * @param x World X coordinate in tile "units", may be ouside the map. + * @param y World Y coordinate in tile "units", may be ouside the map. + * @return World Z coordinate at tile ground level, including slopes and foundations. + */ +int GetSlopePixelZOutsideMap(int x, int y) +{ + if (IsInsideBS(x, 0, MapSizeX() * TILE_SIZE) && IsInsideBS(y, 0, MapSizeY() * TILE_SIZE)) { + return GetSlopePixelZ(x, y); + } else { + return _tile_type_procs[MP_VOID]->get_slope_z_proc(INVALID_TILE, x, y); + } +} + /** * Determine the Z height of a corner relative to TileZ. * diff --git a/src/landscape.h b/src/landscape.h index d24d0d190d..43d9e5f2e6 100644 --- a/src/landscape.h +++ b/src/landscape.h @@ -40,6 +40,7 @@ Slope GetFoundationSlope(TileIndex tile, int *z = NULL); uint GetPartialPixelZ(int x, int y, Slope corners); int GetSlopePixelZ(int x, int y); +int GetSlopePixelZOutsideMap(int x, int y); void GetSlopePixelZOnEdge(Slope tileh, DiagDirection edge, int *z1, int *z2); /** diff --git a/src/tile_map.cpp b/src/tile_map.cpp index 05b0ea1942..200a203089 100644 --- a/src/tile_map.cpp +++ b/src/tile_map.cpp @@ -14,60 +14,6 @@ #include "safeguards.h" -/** - * Returns the tile height for a coordinate outside map. Such a height is - * needed for painting the area outside map using completely black tiles. - * The idea is descending to heightlevel 0 as fast as possible. - * @param x The X-coordinate (same unit as TileX). - * @param y The Y-coordinate (same unit as TileY). - * @return The height in the same unit as TileHeight. - */ -uint TileHeightOutsideMap(int x, int y) -{ - /* In all cases: Descend to heightlevel 0 as fast as possible. - * So: If we are at the 0-side of the map (x<0 or y<0), we must - * subtract the distance to coordinate 0 from the heightlevel at - * coordinate 0. - * In other words: Subtract e.g. -x. If we are at the MapMax - * side of the map, we also need to subtract the distance to - * the edge of map, e.g. MapMaxX - x. - * - * NOTE: Assuming constant heightlevel outside map would be - * simpler here. However, then we run into painting problems, - * since whenever a heightlevel change at the map border occurs, - * we would need to repaint anything outside map. - * In contrast, by doing it this way, we can localize this change, - * which means we may assume constant heightlevel for all tiles - * at more than distance from the - * map border. - */ - if (x < 0) { - if (y < 0) { - return max((int)TileHeight(TileXY(0, 0)) - (-x) - (-y), 0); - } else if (y < (int)MapMaxY()) { - return max((int)TileHeight(TileXY(0, y)) - (-x), 0); - } else { - return max((int)TileHeight(TileXY(0, (int)MapMaxY())) - (-x) - (y - (int)MapMaxY()), 0); - } - } else if (x < (int)MapMaxX()) { - if (y < 0) { - return max((int)TileHeight(TileXY(x, 0)) - (-y), 0); - } else if (y < (int)MapMaxY()) { - return TileHeight(TileXY(x, y)); - } else { - return max((int)TileHeight(TileXY(x, (int)MapMaxY())) - (y - (int)MapMaxY()), 0); - } - } else { - if (y < 0) { - return max((int)TileHeight(TileXY((int)MapMaxX(), 0)) - (x - (int)MapMaxX()) - (-y), 0); - } else if (y < (int)MapMaxY()) { - return max((int)TileHeight(TileXY((int)MapMaxX(), y)) - (x - (int)MapMaxX()), 0); - } else { - return max((int)TileHeight(TileXY((int)MapMaxX(), (int)MapMaxY())) - (x - (int)MapMaxX()) - (y - (int)MapMaxY()), 0); - } - } -} - /** * Get a tile's slope given the heigh of its four corners. * @param hnorth The height at the northern corner in the same unit as TileHeight. @@ -114,30 +60,26 @@ static Slope GetTileSlopeGivenHeight(int hnorth, int hwest, int heast, int hsout */ Slope GetTileSlope(TileIndex tile, int *h) { - assert(tile < MapSize()); + uint x1 = TileX(tile); + uint y1 = TileY(tile); + uint x2 = min(x1 + 1, MapMaxX()); + uint y2 = min(y1 + 1, MapMaxY()); - uint x = TileX(tile); - uint y = TileY(tile); - if (x == MapMaxX() || y == MapMaxY()) { - if (h != NULL) *h = TileHeight(tile); - return SLOPE_FLAT; - } - - int hnorth = TileHeight(tile); // Height of the North corner. - int hwest = TileHeight(tile + TileDiffXY(1, 0)); // Height of the West corner. - int heast = TileHeight(tile + TileDiffXY(0, 1)); // Height of the East corner. - int hsouth = TileHeight(tile + TileDiffXY(1, 1)); // Height of the South corner. + int hnorth = TileHeight(tile); // Height of the North corner. + int hwest = TileHeight(TileXY(x2, y1)); // Height of the West corner. + int heast = TileHeight(TileXY(x1, y2)); // Height of the East corner. + int hsouth = TileHeight(TileXY(x2, y2)); // Height of the South corner. return GetTileSlopeGivenHeight(hnorth, hwest, heast, hsouth, h); } /** - * Return the slope of a given tile outside the map. + * Return the slope of a given tile, also for tiles outside the map (virtual "black" tiles). * - * @param x X-coordinate of the tile outside to compute height of. - * @param y Y-coordinate of the tile outside to compute height of. - * @param h If not \c NULL, pointer to storage of z height. - * @return Slope of the tile outside map, except for the HALFTILE part. + * @param x X coordinate of the tile to compute slope of, may be ouside the map. + * @param y Y coordinate of the tile to compute slope of, may be ouside the map. + * @param h If not \c NULL, pointer to storage of z height. + * @return Slope of the tile, except for the HALFTILE part. */ Slope GetTilePixelSlopeOutsideMap(int x, int y, int *h) { @@ -159,17 +101,15 @@ Slope GetTilePixelSlopeOutsideMap(int x, int y, int *h) */ bool IsTileFlat(TileIndex tile, int *h) { - assert(tile < MapSize()); - - if (!IsInnerTile(tile)) { - if (h != NULL) *h = TileHeight(tile); - return true; - } + uint x1 = TileX(tile); + uint y1 = TileY(tile); + uint x2 = min(x1 + 1, MapMaxX()); + uint y2 = min(y1 + 1, MapMaxY()); uint z = TileHeight(tile); - if (TileHeight(tile + TileDiffXY(1, 0)) != z) return false; - if (TileHeight(tile + TileDiffXY(0, 1)) != z) return false; - if (TileHeight(tile + TileDiffXY(1, 1)) != z) return false; + if (TileHeight(TileXY(x2, y1)) != z) return false; + if (TileHeight(TileXY(x1, y2)) != z) return false; + if (TileHeight(TileXY(x2, y2)) != z) return false; if (h != NULL) *h = z; return true; @@ -182,12 +122,15 @@ bool IsTileFlat(TileIndex tile, int *h) */ int GetTileZ(TileIndex tile) { - if (TileX(tile) == MapMaxX() || TileY(tile) == MapMaxY()) return 0; + uint x1 = TileX(tile); + uint y1 = TileY(tile); + uint x2 = min(x1 + 1, MapMaxX()); + uint y2 = min(y1 + 1, MapMaxY()); - int h = TileHeight(tile); // N corner - h = min(h, TileHeight(tile + TileDiffXY(1, 0))); // W corner - h = min(h, TileHeight(tile + TileDiffXY(0, 1))); // E corner - h = min(h, TileHeight(tile + TileDiffXY(1, 1))); // S corner + int h = TileHeight(tile); // N corner + h = min(h, TileHeight(TileXY(x2, y1))); // W corner + h = min(h, TileHeight(TileXY(x1, y2))); // E corner + h = min(h, TileHeight(TileXY(x2, y2))); // S corner return h; } @@ -199,12 +142,15 @@ int GetTileZ(TileIndex tile) */ int GetTileMaxZ(TileIndex t) { - if (TileX(t) == MapMaxX() || TileY(t) == MapMaxY()) return TileHeightOutsideMap(TileX(t), TileY(t)); + uint x1 = TileX(t); + uint y1 = TileY(t); + uint x2 = min(x1 + 1, MapMaxX()); + uint y2 = min(y1 + 1, MapMaxY()); - int h = TileHeight(t); // N corner - h = max(h, TileHeight(t + TileDiffXY(1, 0))); // W corner - h = max(h, TileHeight(t + TileDiffXY(0, 1))); // E corner - h = max(h, TileHeight(t + TileDiffXY(1, 1))); // S corner + int h = TileHeight(t); // N corner + h = max(h, TileHeight(TileXY(x2, y1))); // W corner + h = max(h, TileHeight(TileXY(x1, y2))); // E corner + h = max(h, TileHeight(TileXY(x2, y2))); // S corner return h; } diff --git a/src/tile_map.h b/src/tile_map.h index 3fad368cd7..7a76f2b974 100644 --- a/src/tile_map.h +++ b/src/tile_map.h @@ -34,7 +34,17 @@ static inline uint TileHeight(TileIndex tile) return _m[tile].height; } -uint TileHeightOutsideMap(int x, int y); +/** + * Returns the height of a tile, also for tiles outside the map (virtual "black" tiles). + * + * @param x X coordinate of the tile, may be ouside the map. + * @param y Y coordinate of the tile, may be ouside the map. + * @return The height in the same unit as TileHeight. + */ +static inline uint TileHeightOutsideMap(int x, int y) +{ + return TileHeight(TileXY(Clamp(x, 0, MapMaxX()), Clamp(y, 0, MapMaxY()))); +} /** * Sets the height of a tile. @@ -67,11 +77,10 @@ static inline uint TilePixelHeight(TileIndex tile) } /** - * Returns the tile height for a coordinate outside map. Such a height is - * needed for painting the area outside map using completely black tiles. - * The idea is descending to heightlevel 0 as fast as possible. - * @param x The X-coordinate (same unit as TileX). - * @param y The Y-coordinate (same unit as TileY). + * Returns the height of a tile in pixels, also for tiles outside the map (virtual "black" tiles). + * + * @param x X coordinate of the tile, may be ouside the map. + * @param y Y coordinate of the tile, may be ouside the map. * @return The height in pixels in the same unit as TilePixelHeight. */ static inline uint TilePixelHeightOutsideMap(int x, int y) diff --git a/src/void_cmd.cpp b/src/void_cmd.cpp index ffe54df992..a2a45e7227 100644 --- a/src/void_cmd.cpp +++ b/src/void_cmd.cpp @@ -10,7 +10,7 @@ /** @file void_cmd.cpp Handling of void tiles. */ #include "stdafx.h" -#include "tile_cmd.h" +#include "landscape.h" #include "command_func.h" #include "viewport_func.h" #include "slope_func.h" @@ -28,7 +28,12 @@ static void DrawTile_Void(TileInfo *ti) static int GetSlopePixelZ_Void(TileIndex tile, uint x, uint y) { - return TilePixelHeight(tile); + /* This function may be called on tiles outside the map, don't asssume + * that 'tile' is a valid tile index. See GetSlopePixelZOutsideMap. */ + int z; + Slope tileh = GetTilePixelSlopeOutsideMap(x >> 4, y >> 4, &z); + + return z + GetPartialPixelZ(x & 0xF, y & 0xF, tileh); } static Foundation GetFoundation_Void(TileIndex tile, Slope tileh) From 479f13fc4133f2970aff82d2d0fb9b3c0cb919da Mon Sep 17 00:00:00 2001 From: "Johannes E. Krause" Date: Sun, 13 Jan 2019 21:00:40 +0100 Subject: [PATCH 16/41] Codechange: Tweak ViewportAddLandscape so it no more relies on "go down as fast as possible" tile height model (Patch by adf88, #6583) --- src/viewport.cpp | 170 +++++++++++++++++++++++------------------------ 1 file changed, 82 insertions(+), 88 deletions(-) diff --git a/src/viewport.cpp b/src/viewport.cpp index 11a1587126..cb4307f0af 100644 --- a/src/viewport.cpp +++ b/src/viewport.cpp @@ -1044,29 +1044,41 @@ draw_inner: } /** - * Returns the y coordinate in the viewport coordinate system where the given - * tile is painted. - * @param tile Any tile. - * @return The viewport y coordinate where the tile is painted. + * Returns the Y coordinate in the viewport coordinate system where a given + * tile should be painted. Can be used on virtual "black" tiles outside map. + * + * @param tile Tile coordinates of the tile. Map outside is allowed. + * @return Viewport Y coordinate where the northern corner of the tile is located (foundations not included). */ -static int GetViewportY(Point tile) +static inline int GetTilePaintY(Point tile) { - /* Each increment in X or Y direction moves down by half a tile, i.e. TILE_PIXELS / 2. */ - return (tile.y * (int)(TILE_PIXELS / 2) + tile.x * (int)(TILE_PIXELS / 2) - TilePixelHeightOutsideMap(tile.x, tile.y)) << ZOOM_LVL_SHIFT; + return RemapCoords(tile.x * TILE_SIZE, tile.y * TILE_SIZE, TilePixelHeightOutsideMap(tile.x, tile.y)).y; } /** - * Add the landscape to the viewport, i.e. all ground tiles and buildings. + * Add sprites of a single tile to the viewport. + * + * @param[in,out] ti Filled-in tile information of the tile. On return, \a z coordinate will be updated and include foundations (if any). + * @param tile_type Type of the tile (#GetTileType) or #MP_VOID for virtual "black" tiles outside map. + */ +static void ViewportAddTile(TileInfo *ti, TileType tile_type) +{ + _vd.foundation_part = FOUNDATION_PART_NONE; + _vd.foundation[0] = -1; + _vd.foundation[1] = -1; + _vd.last_foundation_child[0] = NULL; + _vd.last_foundation_child[1] = NULL; + + _cur_ti = ti; + _tile_type_procs[tile_type]->draw_tile_proc(ti); +} + +/** + * Add the landscape to the viewport, i.e. all ground tiles, buildings and bridges. */ static void ViewportAddLandscape() { - assert(_vd.dpi.top <= _vd.dpi.top + _vd.dpi.height); - assert(_vd.dpi.left <= _vd.dpi.left + _vd.dpi.width); - - Point upper_left = InverseRemapCoords(_vd.dpi.left, _vd.dpi.top); - Point upper_right = InverseRemapCoords(_vd.dpi.left + _vd.dpi.width, _vd.dpi.top); - - /* Transformations between tile coordinates and viewport rows/columns: See vp_column_row + /* Transformations between tile x/y coordinates and 45-degree rotated rows/columns: * column = y - x * row = x + y * x = (row - column) / 2 @@ -1074,38 +1086,46 @@ static void ViewportAddLandscape() * Note: (row, columns) pairs are only valid, if they are both even or both odd. */ - /* Columns overlap with neighbouring columns by a half tile. - * - Left column is column of upper_left (rounded down) and one column to the left. - * - Right column is column of upper_right (rounded up) and one column to the right. - * Note: Integer-division does not round down for negative numbers, so ensure rounding with another increment/decrement. - */ - int left_column = (upper_left.y - upper_left.x) / (int)TILE_SIZE - 2; - int right_column = (upper_right.y - upper_right.x) / (int)TILE_SIZE + 2; + /* Rectangle to repaint. Includes oversize for tile sprites. + * There is no oversize for the bottom side of a tile so the first tile we draw + * in a column must have its northern corner above or at the 'top' bound. */ + const int left = _vd.dpi.left - MAX_TILE_EXTENT_RIGHT; // inclusive + const int top = _vd.dpi.top; // unlike to other bounds, this one is relative to S tile corner, not N, not inclusive (for S corner) + const int right = _vd.dpi.left + _vd.dpi.width + MAX_TILE_EXTENT_LEFT; // not inclusive + const int bottom_empty = _vd.dpi.top + _vd.dpi.height; // bottom bound for void tiles and tiles outside map, includes only clear ground sprites, not inclusive + const int bottom_building = bottom_empty + MAX_TILE_EXTENT_TOP; // bottom bound that accounts for buildings but does not include oversize for bridges, not inclusive + const int bottom = bottom_building + ZOOM_LVL_BASE * TILE_HEIGHT * _settings_game.construction.max_bridge_height; // bottom bound that includes entire oversize, also for bridges, not inclusive + assert(left < right && top < bottom); - int potential_bridge_height = ZOOM_LVL_BASE * TILE_HEIGHT * _settings_game.construction.max_bridge_height; + /* Base 2 logarithm of the distance between tile columns in a viewport. + * It will be used to achieve proper rounding easily. */ + assert_compile(TILE_SIZE == 1 << 4); + static const uint column_log = ZOOM_LVL_SHIFT + 4 + 1; // +1 comes from the factor 2 that is used when remapping to horizontal 'x' screen coordinate (see RemapCoords) - /* Rows overlap with neighbouring rows by a half tile. - * The first row that could possibly be visible is the row above upper_left (if it is at height 0). - * Due to integer-division not rounding down for negative numbers, we need another decrement. - */ - int row = (upper_left.x + upper_left.y) / (int)TILE_SIZE - 2; - bool last_row = false; - for (; !last_row; row++) { - last_row = true; - for (int column = left_column; column <= right_column; column++) { - /* Valid row/column? */ - if ((row + column) % 2 != 0) continue; + /* Horizontal iteration bounds. */ + int first_col = left >> column_log; // inclusive, round toward -inf + int last_col = -(-right >> column_log); // not inclusive, round toward +inf - Point tilecoord; - tilecoord.x = (row - column) / 2; - tilecoord.y = (row + column) / 2; - assert(column == tilecoord.y - tilecoord.x); - assert(row == tilecoord.y + tilecoord.x); + /* Use tile that intersects with the left-top corner of the repaint + * rectangle as an approximate start row of the iteration. */ + Point start = InverseRemapCoords2(left, top, false); // warning, it will take foundations into account, might return a tile that is further to S, but that's OK because coordinates will be moved toward N later if needed + int first_row = (start.x >> 4) + (start.y >> 4); + /* Combine with the first column, round toward S. */ + start.x = (first_row - first_col + 1) >> 1; + start.y = (first_row + first_col + 1) >> 1; + /* Iterate over columns of tiles. */ + while (first_col++ < last_col) { + /* Fix column start tile - move it toward N until it reaches the 'top' bound. */ + int y_pos; + while (top < (y_pos = GetTilePaintY(start))) start.x--, start.y--; + + /* Iterate over tiles in a column. */ + Point tilecoord = start; + do { TileType tile_type; TileInfo tile_info; - _cur_ti = &tile_info; - tile_info.x = tilecoord.x * TILE_SIZE; // FIXME tile_info should use signed integers + tile_info.x = tilecoord.x * TILE_SIZE; // FIXME: tile_info should use signed integers tile_info.y = tilecoord.y * TILE_SIZE; if (IsInsideBS(tilecoord.x, 0, MapSizeX()) && IsInsideBS(tilecoord.y, 0, MapSizeY())) { @@ -1117,58 +1137,32 @@ static void ViewportAddLandscape() tile_type = MP_VOID; } - if (tile_type != MP_VOID) { - /* We are inside the map => paint landscape. */ - tile_info.tileh = GetTilePixelSlope(tile_info.tile, &tile_info.z); - } else { - /* We are outside the map => paint black. */ - tile_info.tileh = GetTilePixelSlopeOutsideMap(tilecoord.x, tilecoord.y, &tile_info.z); - } + /* Check if tile is "visible". + * + * Until 'bottom_empty' every tile is visible, also "black" tiles outside map. + * Since 'bottom_empty' only tiles with a content might be visible. */ + if (y_pos >= bottom_empty) { + if (tilecoord.x >= (int)MapSizeX() || tilecoord.y >= (int)MapSizeY()) break; // No more non-void tiles in this column? Then stop. + if (tile_type == MP_VOID) continue; // No content on the tile? Then skip. - int viewport_y = GetViewportY(tilecoord); - - if (viewport_y + MAX_TILE_EXTENT_BOTTOM < _vd.dpi.top) { - /* The tile in this column is not visible yet. - * Tiles in other columns may be visible, but we need more rows in any case. */ - last_row = false; - continue; - } - - int min_visible_height = viewport_y - (_vd.dpi.top + _vd.dpi.height); - bool tile_visible = min_visible_height <= 0; - - if (tile_type != MP_VOID) { - /* Is tile with buildings visible? */ - if (min_visible_height < MAX_TILE_EXTENT_TOP) tile_visible = true; - - if (IsBridgeAbove(tile_info.tile)) { - /* Is the bridge visible? */ - TileIndex bridge_tile = GetNorthernBridgeEnd(tile_info.tile); - int bridge_height = ZOOM_LVL_BASE * (GetBridgePixelHeight(bridge_tile) - TilePixelHeight(tile_info.tile)); - if (min_visible_height < bridge_height + MAX_TILE_EXTENT_TOP) tile_visible = true; + /* Since 'bottom_building' only bridges might be visible. */ + if (y_pos >= bottom_building) { + if (!IsBridgeAbove(tile_info.tile)) continue; // no bridge above, skip + if (RemapCoords(tile_info.x, tile_info.y, GetBridgePixelHeight(GetNorthernBridgeEnd(tile_info.tile))).y >= bottom_building) continue; // bridge isn't high enough, skip } - - /* Would a higher bridge on a more southern tile be visible? - * If yes, we need to loop over more rows to possibly find one. */ - if (min_visible_height < potential_bridge_height + MAX_TILE_EXTENT_TOP) last_row = false; - } else { - /* Outside of map. If we are on the north border of the map, there may still be a bridge visible, - * so we need to loop over more rows to possibly find one. */ - if ((tilecoord.x <= 0 || tilecoord.y <= 0) && min_visible_height < potential_bridge_height + MAX_TILE_EXTENT_TOP) last_row = false; } - if (tile_visible) { - last_row = false; - _vd.foundation_part = FOUNDATION_PART_NONE; - _vd.foundation[0] = -1; - _vd.foundation[1] = -1; - _vd.last_foundation_child[0] = NULL; - _vd.last_foundation_child[1] = NULL; + /* Paint the tile. */ + tile_info.tileh = (tile_info.tile != INVALID_TILE) ? GetTilePixelSlope(tile_info.tile, &tile_info.z) : GetTilePixelSlopeOutsideMap(tilecoord.x, tilecoord.y, &tile_info.z); + ViewportAddTile(&tile_info, tile_type); + if (tile_info.tile != INVALID_TILE) DrawTileSelection(&tile_info); - _tile_type_procs[tile_type]->draw_tile_proc(&tile_info); - if (tile_info.tile != INVALID_TILE) DrawTileSelection(&tile_info); - } - } + /* Next tile. */ + } while (tilecoord.x++, tilecoord.y++, y_pos = GetTilePaintY(tilecoord), y_pos < bottom); + + /* Go one tile toward SE. This will advance us to next column. Bias toward S will + * take care of slopes too. Coordinates will be moved toward N later if needed. */ + start.y++; } } From 225790892d923eb208af3844f4c08606afab046a Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Sun, 20 May 2018 11:03:14 +0100 Subject: [PATCH 17/41] Change: Make ships stop and change direction slowly instead of instantly turning. --- src/saveload/saveload.cpp | 3 ++- src/saveload/vehicle_sl.cpp | 13 ++++++++++-- src/ship.h | 5 +++-- src/ship_cmd.cpp | 40 ++++++++++++++++++++++++++++++------- 4 files changed, 49 insertions(+), 12 deletions(-) diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp index 7f5b10ac52..29adb40c9b 100644 --- a/src/saveload/saveload.cpp +++ b/src/saveload/saveload.cpp @@ -273,8 +273,9 @@ * 201 #6885 Extend NewGRF persistant storages. * 202 #6867 Increase industry cargo slots to 16 in, 16 out * 203 #7072 Add path cache for ships + * 204 #7065 Add extra rotation stages for ships. */ -extern const uint16 SAVEGAME_VERSION = 203; ///< Current savegame version of OpenTTD. +extern const uint16 SAVEGAME_VERSION = 204; ///< Current savegame version of OpenTTD. SavegameType _savegame_type; ///< type of savegame we are loading FileToSaveLoad _file_to_saveload; ///< File to save or load in the openttd loop. diff --git a/src/saveload/vehicle_sl.cpp b/src/saveload/vehicle_sl.cpp index 1e01f3f67e..76fd5af5a5 100644 --- a/src/saveload/vehicle_sl.cpp +++ b/src/saveload/vehicle_sl.cpp @@ -368,6 +368,14 @@ void AfterLoadVehicles(bool part_of_load) v->SetServiceIntervalIsPercent(c->settings.vehicle.servint_ispercent); } } + + if (IsSavegameVersionBefore(204)) { + /* Ship rotation added */ + Ship *s; + FOR_ALL_SHIPS(s) { + s->rotation = s->direction; + } + } } CheckValidVehicles(); @@ -753,8 +761,9 @@ const SaveLoad *GetVehicleDescription(VehicleType vt) static const SaveLoad _ship_desc[] = { SLE_WRITEBYTE(Vehicle, type, VEH_SHIP), SLE_VEH_INCLUDE(), - SLE_VAR(Ship, state, SLE_UINT8), - SLE_CONDDEQUE(Ship, path, SLE_UINT8, 203, SL_MAX_VERSION), + SLE_VAR(Ship, state, SLE_UINT8), + SLE_CONDDEQUE(Ship, path, SLE_UINT8, 203, SL_MAX_VERSION), + SLE_CONDVAR(Ship, rotation, SLE_UINT8, 204, SL_MAX_VERSION), SLE_CONDNULL(16, 2, 143), // old reserved space diff --git a/src/ship.h b/src/ship.h index 6e73332a57..adbc322282 100644 --- a/src/ship.h +++ b/src/ship.h @@ -26,8 +26,9 @@ typedef std::deque ShipPathCache; * All ships have this type. */ struct Ship FINAL : public SpecializedVehicle { - TrackBitsByte state; ///< The "track" the ship is following. - ShipPathCache path; ///< Cached path. + TrackBitsByte state; ///< The "track" the ship is following. + ShipPathCache path; ///< Cached path. + DirectionByte rotation; ///< Visible direction. /** We don't want GCC to zero our struct! It already is zeroed and has an index! */ Ship() : SpecializedVehicleBase() {} diff --git a/src/ship_cmd.cpp b/src/ship_cmd.cpp index e3886aa34a..4603043d6e 100644 --- a/src/ship_cmd.cpp +++ b/src/ship_cmd.cpp @@ -129,6 +129,8 @@ void Ship::GetImage(Direction direction, EngineImageType image_type, VehicleSpri { uint8 spritenum = this->spritenum; + if (image_type == EIT_ON_MAP) direction = this->rotation; + if (is_custom_sprite(spritenum)) { GetCustomVehicleSprite(this, direction, image_type, result); if (result->IsValid()) return; @@ -311,7 +313,7 @@ void Ship::UpdateDeltaXY() {32, 6, -16, -3}, // NW }; - const int8 *bb = _delta_xy_table[this->direction]; + const int8 *bb = _delta_xy_table[this->rotation]; this->x_offs = bb[3]; this->y_offs = bb[2]; this->x_extent = bb[1]; @@ -370,10 +372,10 @@ static bool CheckShipLeaveDepot(Ship *v) if (north_tracks) { /* Leave towards north */ - v->direction = DiagDirToDir(north_dir); + v->rotation = v->direction = DiagDirToDir(north_dir); } else if (south_tracks) { /* Leave towards south */ - v->direction = DiagDirToDir(south_dir); + v->rotation = v->direction = DiagDirToDir(south_dir); } else { /* Both ways blocked */ return false; @@ -543,7 +545,6 @@ static void ShipController(Ship *v) { uint32 r; const byte *b; - Direction dir; Track track; TrackBits tracks; @@ -563,6 +564,16 @@ static void ShipController(Ship *v) v->ShowVisualEffect(); + /* Rotating on spot */ + if (v->direction != v->rotation) { + if ((v->tick_counter & 7) == 0) { + DirDiff diff = DirDifference(v->direction, v->rotation); + v->rotation = ChangeDir(v->rotation, diff > DIRDIFF_REVERSE ? DIRDIFF_45LEFT : DIRDIFF_45RIGHT); + v->UpdateViewport(true, true); + } + return; + } + if (!ShipAccelerate(v)) return; GetNewVehiclePosResult gp = GetNewVehiclePos(v); @@ -653,7 +664,22 @@ static void ShipController(Ship *v) if (old_wc != new_wc) v->UpdateCache(); } - v->direction = (Direction)b[2]; + Direction new_direction = (Direction)b[2]; + DirDiff diff = DirDifference(new_direction, v->direction); + switch (diff) { + case DIRDIFF_SAME: + case DIRDIFF_45RIGHT: + case DIRDIFF_45LEFT: + /* Continue at speed */ + v->rotation = v->direction = new_direction; + break; + + default: + /* Stop for rotation */ + v->cur_speed = 0; + v->direction = new_direction; + break; + } } } else { /* On a bridge */ @@ -677,8 +703,8 @@ getout: return; reverse_direction: - dir = ReverseDir(v->direction); - v->direction = dir; + v->direction = ReverseDir(v->direction); + v->cur_speed = 0; v->path.clear(); goto getout; } From 564077719affdb0678cde43d424f9675ec2471e2 Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Thu, 24 Jan 2019 21:12:41 +0100 Subject: [PATCH 18/41] Add: [GitHub] enable probot/stale, to flush out stale issues/pull requests Stale bot checks if an issue hasn't had any attention in the last 60 days, or if a pull request hasn't had any attention in the last 30 days. If so, it marks it as stale. After 7 more days, it closes the issue/pull request. Any activity on the issue/pull request resets the timer. This helps keeping the counter low, and the work manageable. There is a lot of reasoning behind this idea, and other projects show it really helps to keep the issue/pull request count low. More information here: https://github.com/probot/stale --- .github/stale.yml | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 .github/stale.yml diff --git a/.github/stale.yml b/.github/stale.yml new file mode 100644 index 0000000000..57d42d6921 --- /dev/null +++ b/.github/stale.yml @@ -0,0 +1,34 @@ +daysUntilClose: 7 +staleLabel: stale +closeComment: false +exemptMilestones: true +exemptAssignees: true + +issues: + daysUntilStale: 60 + exemptLabels: + - pinned + - security + - "good first issue" + - regression + markComment: > + This issue has been automatically marked as stale because it has not had any activity in the last two months. + + If you believe the issue is still relevant, please test on the latest nightly and report back. + + It will be closed if no further activity occurs within 7 days. + + Thank you for your contributions. + +pulls: + daysUntilStale: 30 + exemptLabels: + - pinned + markComment: > + This pull request has been automatically marked as stale because it has not had any activity in the last month. + + Please feel free to give a status update now, ping for review, or re-open when it's ready. + + It will be closed if no further activity occurs within 7 days. + + Thank you for your contributions. From 4158c077cd9bba88096c3bf5b8727805f7e29369 Mon Sep 17 00:00:00 2001 From: Nikolas Nyby Date: Tue, 22 Jan 2019 17:05:38 -0500 Subject: [PATCH 19/41] Fix: Remove duplicate French and Slovak town names I've replaced some of the duplicate real town names with new real town names in the French and Slovak sets. Also, some Slovak town names were missing accents, so I've fixed those. --- src/table/townname.h | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/table/townname.h b/src/table/townname.h index ce4e961751..7680846841 100644 --- a/src/table/townname.h +++ b/src/table/townname.h @@ -758,7 +758,7 @@ static const char * const _name_french_real[] = { "Blois", "Troyes", "Charolles", - "Grenoble", + "Toulouse", "Chamb\xC3\xA9ry", "Tours", "St. Brieuc", @@ -769,7 +769,7 @@ static const char * const _name_french_real[] = { "Vichy", "St. Valery", "Beaujolais", - "Narbonne", + "Reims", "Albi", "Paris", "Biarritz", @@ -2037,8 +2037,8 @@ static const char * const _name_romanian_real[] = { static const char * const _name_slovak_real[] = { "Bratislava", "Banovce nad Bebravou", - "Banska Bystrica", - "Banska Stiavnica", + "Bansk\xC3\xA1 Bystrica", + "Bansk\xC3\xA1 \xC5\xA0tiavnica", "Bardejov", "Brezno", "Brezova pod Bradlom", @@ -2046,9 +2046,9 @@ static const char * const _name_slovak_real[] = { "Cadca", "Cierna nad Tisou", "Detva", - "Detva", - "Dolny Kubin", + "Pre\xC5\xA1ov", "Dolny Kubin", + "Spi\xC5\xA1sk\xC3\xA1 Nov\xC3\xA1 Ves", "Dunajska Streda", "Gabcikovo", "Galanta", @@ -2060,8 +2060,8 @@ static const char * const _name_slovak_real[] = { "Humenne", "Hurbanovo", "Kezmarok", - "Komarno", - "Kosice", + "Kom\xC3\xA1rno", + "Ko\xC5\xA1ice", "Kremnica", "Krompachy", "Kuty", @@ -2077,15 +2077,15 @@ static const char * const _name_slovak_real[] = { "Myjava", "Namestovo", "Nitra", - "Nova Bana", - "Nove Mesto nad Vahom", - "Nove Zamky", + "Nov\xC3\xA1 Ba\xC5\x88""a", + "Nov\xC3\xA9"" Mesto nad V\xC3\xA1hom", + "Nov\xC3\xA9"" Z\xC3\xA1""mky", "Partizanske", "Pezinok", "Piestany", "Poltar", "Poprad", - "Povazska Bystrica", + "Pova\xC5\xBEsk\xC3\xA1 Bystrica", "Prievidza", "Puchov", "Revuca", @@ -2119,7 +2119,7 @@ static const char * const _name_slovak_real[] = { "Zahorska Bystrica", "Zdiar", "Ziar nad Hronom", - "Zilina", + "\xC5\xBDilina", "Zlate Moravce", "Zvolen", }; From 255fa6e1a8586de75b33b9598467d47344ed6c5e Mon Sep 17 00:00:00 2001 From: glx Date: Fri, 25 Jan 2019 03:43:24 +0100 Subject: [PATCH 20/41] Fix: enable DPI-awareness for MINGW builds --- Makefile.src.in | 2 +- projects/dpi_aware.manifest | 28 +++++++++++++++++++++++++--- projects/os_versions.manifest | 2 +- src/os/windows/ottdres.rc.in | 6 +++++- 4 files changed, 32 insertions(+), 6 deletions(-) diff --git a/Makefile.src.in b/Makefile.src.in index c07015cfe8..e5a032d961 100644 --- a/Makefile.src.in +++ b/Makefile.src.in @@ -250,7 +250,7 @@ $(OBJS_MM): %.o: $(SRC_DIR)/%.mm $(DEP_MASK) $(FILE_DEP) $(OBJS_RC): %.o: $(SRC_DIR)/%.rc $(FILE_DEP) $(E) '$(STAGE) Compiling resource $(<:$(SRC_DIR)/%.rc=%.rc)' - $(Q)$(WINDRES) -o $@ -I `basename $<` $< + $(Q)$(WINDRES) -o $@ $< $(BIN_DIR)/$(TTD): $(TTD) $(Q)cp $(TTD) $(BIN_DIR)/$(TTD) diff --git a/projects/dpi_aware.manifest b/projects/dpi_aware.manifest index 6f04161596..ee1c7ea224 100644 --- a/projects/dpi_aware.manifest +++ b/projects/dpi_aware.manifest @@ -1,7 +1,29 @@ - + + + + + + + + + - - True/PM + + True/PM + + + + + + + + + + + + + + diff --git a/projects/os_versions.manifest b/projects/os_versions.manifest index 52ed17bcb9..c7905ee709 100644 --- a/projects/os_versions.manifest +++ b/projects/os_versions.manifest @@ -12,6 +12,6 @@ - + diff --git a/src/os/windows/ottdres.rc.in b/src/os/windows/ottdres.rc.in index 616d8bb3eb..ad51be76c6 100644 --- a/src/os/windows/ottdres.rc.in +++ b/src/os/windows/ottdres.rc.in @@ -14,7 +14,7 @@ #define APSTUDIO_HIDDEN_SYMBOLS #include "windows.h" #undef APSTUDIO_HIDDEN_SYMBOLS -#ifdef MSVC +#ifndef __MINGW32__ #include "winres.h" #else #define IDC_STATIC (-1) // all static controls @@ -117,5 +117,9 @@ END #endif // !_MAC +#ifdef __MINGW32__ +1 24 "..\\..\\..\\projects\\dpi_aware.manifest" +#endif + #endif // Neutral (Default) resources ///////////////////////////////////////////////////////////////////////////// From 9fa827ed78d33805dbb8536019d0268fe243592e Mon Sep 17 00:00:00 2001 From: translators Date: Fri, 25 Jan 2019 19:45:45 +0100 Subject: [PATCH 21/41] Update: Translations from eints polish: 24 changes by p0358 --- src/lang/polish.txt | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/lang/polish.txt b/src/lang/polish.txt index 9ff5c6d0a7..6728551ac0 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -568,6 +568,7 @@ STR_COLOUR_ORANGE :Pomarańczowy STR_COLOUR_BROWN :Brązowy STR_COLOUR_GREY :Szary STR_COLOUR_WHITE :Biały +STR_COLOUR_RANDOM :Losowy # Units used in OpenTTD STR_UNITS_VELOCITY_IMPERIAL :{COMMA}{NBSP}mph @@ -854,6 +855,7 @@ STR_ABOUT_MENU_SCREENSHOT :Zrzut ekranu STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Zrzut ekranu z pełnym przybliżeniem STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Zrzut ekranu z przybliżeniem domyślnym STR_ABOUT_MENU_GIANT_SCREENSHOT :Zrzut ekranu całej mapy +STR_ABOUT_MENU_SHOW_FRAMERATE :Pokaż ilość klatek na sekundę STR_ABOUT_MENU_ABOUT_OPENTTD :Info o 'OpenTTD' STR_ABOUT_MENU_SPRITE_ALIGNER :Wyrównywanie sprite'ów STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Włącz/wyłącz ramki @@ -1056,6 +1058,7 @@ STR_PLAYLIST_PROGRAM :{TINY_FONT}{BLA STR_PLAYLIST_CLEAR :{TINY_FONT}{BLACK}Wyczyść STR_PLAYLIST_CHANGE_SET :{BLACK}Zmień zestaw STR_PLAYLIST_TOOLTIP_CLEAR_CURRENT_PROGRAM_CUSTOM1 :{BLACK}Wyczyść obecny program (tylko Wlasny1 lub Wlasny2) +STR_PLAYLIST_TOOLTIP_CHANGE_SET :{BLACK}Zmień wybór muzyki na następny zainstalowany zestaw STR_PLAYLIST_TOOLTIP_CLICK_TO_ADD_TRACK :{BLACK}Klik na ścieżce aby dodać do obecnego programu (Wlasny1 i Wlasny2) STR_PLAYLIST_TOOLTIP_CLICK_TO_REMOVE_TRACK :{BLACK}Kliknij na ścieżce muzycznej aby usunąć ją z wybranego programu (Wlasny1 lub Wlasny2) @@ -1192,6 +1195,7 @@ STR_NEWS_MERGER_TAKEOVER_TITLE :{BIG_FONT}{BLAC STR_PRESIDENT_NAME_MANAGER :{BLACK}{PRESIDENT_NAME}{}(Prezes) STR_NEWS_NEW_TOWN :{BLACK}{BIG_FONT}{STRING} sponsoruje konstrukcję nowego miasta {TOWN}! +STR_NEWS_NEW_TOWN_UNSPONSORED :{BLACK}{BIG_FONT}Zostało wybudowane nowe miasto o nazwie {TOWN}! STR_NEWS_INDUSTRY_CONSTRUCTION :{BIG_FONT}{BLACK}Rozpoczęto budowę nowe{G go j go} {STRING.d} blisko {TOWN}! STR_NEWS_INDUSTRY_PLANTED :{BIG_FONT}{BLACK}Now{G y a e} {STRING} został{G 0 "" a o} posadzon{G 0 y a e} blisko {TOWN}! @@ -1304,6 +1308,8 @@ STR_GAME_OPTIONS_CURRENCY_ZAR :Rand Południow STR_GAME_OPTIONS_CURRENCY_CUSTOM :Własna... STR_GAME_OPTIONS_CURRENCY_GEL :Lari gruzińskie (GEL) STR_GAME_OPTIONS_CURRENCY_IRR :Rial irański (IRR) +STR_GAME_OPTIONS_CURRENCY_RUB :Nowy rubel rosyjski (RUB) +STR_GAME_OPTIONS_CURRENCY_MXN :Peso meksykańskie (MXN) ############ end of currency region STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}Pojazdy drogowe @@ -1633,6 +1639,7 @@ STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}Zmiana t STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :Utrzymywanie infrastruktury: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :Kiedy włączone, utrzymanie infrastruktury jest naliczane w kosztach. Koszty wzrastają nadproporcjonalnie do rozmiarów sieci połączeń, a więc dotykają bardziej duże niż małe firmy +STR_CONFIG_SETTING_COMPANY_STARTING_COLOUR_HELPTEXT :Wybierz początkowy kolor dla firmy STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS :Pozwól budować stare lotniska: {STRING} STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS_HELPTEXT :Włączona opcja sprawia, że każdy typ lotniska będzie dostępny na zawsze od chwili wprowadzenia @@ -1776,7 +1783,7 @@ STR_CONFIG_SETTING_ADVANCED_VEHICLE_LISTS_HELPTEXT :Wlącz obsług STR_CONFIG_SETTING_LOADING_INDICATORS :Pokazuj wskaźniki załadunku: {STRING} STR_CONFIG_SETTING_LOADING_INDICATORS_HELPTEXT :Wybierz, czy wskaźnik załadunku pokazuje się nad ładowanym/rozładowywanym pojazdem STR_CONFIG_SETTING_TIMETABLE_IN_TICKS :Pokazuj rozkłady jazdy w tickach, a nie w dniach: {STRING} -STR_CONFIG_SETTING_TIMETABLE_IN_TICKS_HELPTEXT :W tabelach czasu, czas podróży pokaż w tyknięciach gry zamiast w dniach +STR_CONFIG_SETTING_TIMETABLE_IN_TICKS_HELPTEXT :W tabelach czasu, czas podróży pokaż w tickach gry zamiast w dniach STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE :Pokazuj przyjazdy i odjazdy w rozkładach: {STRING} STR_CONFIG_SETTING_TIMETABLE_SHOW_ARRIVAL_DEPARTURE_HELPTEXT :Wyświetlanie przewidywanego przyjazdu i odjazdu w rozkładach STR_CONFIG_SETTING_QUICKGOTO :Szybkie tworzenie poleceń pojazdu: {STRING} @@ -3073,14 +3080,28 @@ STR_ABOUT_VERSION :{BLACK}OpenTTD STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT}2002-2018 Zespół OpenTTD # Framerate display window +STR_FRAMERATE_CAPTION :{WHITE}Ilość klatek na sekundę +STR_FRAMERATE_RATE_GAMELOOP_TOOLTIP :{BLACK}Liczba ticków gry symulowanych na sekundę. STR_FRAMERATE_RATE_BLITTER_TOOLTIP :{BLACK}Liczba renderowanych klatek wideo na sekundę. +STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK}Jak szybko gra obecnie działa, w porównaniu do oczekiwanej prędkości przy normalnym tempie symulacji. STR_FRAMERATE_CURRENT :{WHITE}Obecny +STR_FRAMERATE_AVERAGE :{WHITE}Średnia +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} klatek/sek. +STR_FRAMERATE_FPS_WARN :{YELLOW}{DECIMAL} klatek/sek. +STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL} klatek/sek. +STR_FRAMERATE_GRAPH_MILLISECONDS :{TINY_FONT}{COMMA} ms +STR_FRAMERATE_GRAPH_SECONDS :{TINY_FONT}{COMMA} sek. ############ Leave those lines in this order!! STR_FRAMERATE_GL_LINKGRAPH :{WHITE} Opóźnienie wykresu połączeń: +STR_FRAMERATE_DRAWING :{BLACK}Renderowanie grafiki: STR_FRAMERATE_VIDEO :{WHITE}Wyjście video: STR_FRAMERATE_SOUND :{WHITE}Miksowanie dźwięku: ############ End of leave-in-this-order ############ Leave those lines in this order!! +STR_FRAMETIME_CAPTION_DRAWING :Renderowanie grafiki STR_FRAMETIME_CAPTION_VIDEO :Wyjście wideo STR_FRAMETIME_CAPTION_SOUND :Miksowanie dźwięku ############ End of leave-in-this-order @@ -3370,6 +3391,7 @@ STR_EDIT_SIGN_SIGN_OSKTITLE :{BLACK}Wpisz na STR_TOWN_DIRECTORY_CAPTION :{WHITE}Miasta STR_TOWN_DIRECTORY_NONE :{ORANGE}- Żaden - STR_TOWN_DIRECTORY_TOWN :{ORANGE}{TOWN}{BLACK} ({COMMA}) +STR_TOWN_DIRECTORY_CITY :{ORANGE}{TOWN}{YELLOW} (Miasto){BLACK} ({COMMA}) STR_TOWN_DIRECTORY_LIST_TOOLTIP :{BLACK}Nazwy miast - klik na nazwie aby wycentrować widok na mieście. Ctrl+klik otwiera nowy podgląd na lokację miasta STR_TOWN_POPULATION :{BLACK}Populacja świata: {COMMA} @@ -4187,6 +4209,7 @@ STR_ORDER_CONDITIONAL_AGE :Wiek (w latach) STR_ORDER_CONDITIONAL_REQUIRES_SERVICE :Wymaga serwisowania STR_ORDER_CONDITIONAL_UNCONDITIONALLY :Zawsze STR_ORDER_CONDITIONAL_REMAINING_LIFETIME :Pozostały czas życia (w latach) +STR_ORDER_CONDITIONAL_MAX_RELIABILITY :Maksymalna niezawodność STR_ORDER_CONDITIONAL_COMPARATOR_TOOLTIP :{BLACK}Jak porównać dane pojazdu z zadaną wartością STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS :jest równy From e76fd99c472237125f03d46ed7bff915e2d6a20b Mon Sep 17 00:00:00 2001 From: glx Date: Fri, 25 Jan 2019 21:22:49 +0100 Subject: [PATCH 22/41] Fix #7007: deadlock when launched with -n switch --- src/gfx.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/gfx.cpp b/src/gfx.cpp index 605ff7664b..85cd3bfb59 100644 --- a/src/gfx.cpp +++ b/src/gfx.cpp @@ -1317,7 +1317,11 @@ void DrawDirtyBlocks() /* Wait a while and update _realtime_tick so we are given the rights */ if (!IsFirstModalProgressLoop()) CSleep(MODAL_PROGRESS_REDRAW_TIMEOUT); _realtime_tick += MODAL_PROGRESS_REDRAW_TIMEOUT; + + /* Modal progress thread may need blitter access while we are waiting for it. */ + VideoDriver::GetInstance()->ReleaseBlitterLock(); _modal_progress_paint_mutex->BeginCritical(); + VideoDriver::GetInstance()->AcquireBlitterLock(); _modal_progress_work_mutex->BeginCritical(); /* When we ended with the modal progress, do not draw the blocks. From 1334cfb3e5fd13fb51dc9cbf0690f55f5a57c4bf Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Sun, 13 Jan 2019 09:08:01 +0000 Subject: [PATCH 23/41] Change: Always build baseset metadata, instead of including it in the repo. This adds a script and project files to generate these files within MSVC. --- Makefile.grf.in | 26 +++- bin/baseset/no_music.obm | 103 -------------- bin/baseset/no_sound.obs | 70 --------- bin/baseset/orig_dos.obg | 84 ----------- bin/baseset/orig_dos.obm | 76 ---------- bin/baseset/orig_dos.obs | 70 --------- bin/baseset/orig_dos_de.obg | 82 ----------- bin/baseset/orig_tto.obm | 71 --------- bin/baseset/orig_win.obg | 83 ----------- bin/baseset/orig_win.obm | 158 --------------------- bin/baseset/orig_win.obs | 70 --------- media/baseset/translations.vbs | 123 ++++++++++++++++ projects/basesets_vs140.vcxproj | 99 +++++++++++++ projects/basesets_vs140.vcxproj.filters | 40 ++++++ projects/basesets_vs140.vcxproj.filters.in | 11 ++ projects/basesets_vs140.vcxproj.in | 40 ++++++ projects/basesets_vs141.vcxproj | 99 +++++++++++++ projects/basesets_vs141.vcxproj.filters | 40 ++++++ projects/basesets_vs141.vcxproj.filters.in | 11 ++ projects/basesets_vs141.vcxproj.in | 40 ++++++ projects/generate | 49 +++++++ projects/generate.vbs | 51 +++++++ projects/openttd_vs140.sln | 10 ++ projects/openttd_vs140.vcxproj | 4 + projects/openttd_vs140.vcxproj.in | 4 + projects/openttd_vs141.sln | 10 ++ projects/openttd_vs141.vcxproj | 4 + projects/openttd_vs141.vcxproj.in | 4 + 28 files changed, 661 insertions(+), 871 deletions(-) delete mode 100644 bin/baseset/no_music.obm delete mode 100644 bin/baseset/no_sound.obs delete mode 100644 bin/baseset/orig_dos.obg delete mode 100644 bin/baseset/orig_dos.obm delete mode 100644 bin/baseset/orig_dos.obs delete mode 100644 bin/baseset/orig_dos_de.obg delete mode 100644 bin/baseset/orig_tto.obm delete mode 100644 bin/baseset/orig_win.obg delete mode 100644 bin/baseset/orig_win.obm delete mode 100644 bin/baseset/orig_win.obs create mode 100644 media/baseset/translations.vbs create mode 100644 projects/basesets_vs140.vcxproj create mode 100644 projects/basesets_vs140.vcxproj.filters create mode 100644 projects/basesets_vs140.vcxproj.filters.in create mode 100644 projects/basesets_vs140.vcxproj.in create mode 100644 projects/basesets_vs141.vcxproj create mode 100644 projects/basesets_vs141.vcxproj.filters create mode 100644 projects/basesets_vs141.vcxproj.filters.in create mode 100644 projects/basesets_vs141.vcxproj.in diff --git a/Makefile.grf.in b/Makefile.grf.in index 1625b9e4c0..8e8113a033 100644 --- a/Makefile.grf.in +++ b/Makefile.grf.in @@ -42,11 +42,22 @@ MD5SUM := $(shell [ "$(OS)" = "OSX" ] && echo "md5 -r" || echo "md5sum") NFO_FILES := $(GRF_DIR)/*.nfo $(GRF_DIR)/rivers/*.nfo PNG_FILES := $(GRF_DIR)/*.png $(GRF_DIR)/rivers/*.png +# List of target files. +OBT_FILES := $(BIN_DIR)/orig_dos.obg +OBT_FILES += $(BIN_DIR)/orig_dos_de.obg +OBT_FILES += $(BIN_DIR)/orig_win.obg +OBT_FILES += $(BIN_DIR)/orig_dos.obs +OBT_FILES += $(BIN_DIR)/orig_win.obs +OBT_FILES += $(BIN_DIR)/no_sound.obs +OBT_FILES += $(BIN_DIR)/orig_dos.obm +OBT_FILES += $(BIN_DIR)/orig_win.obm +OBT_FILES += $(BIN_DIR)/no_music.obm +OBT_FILES += $(BIN_DIR)/orig_tto.obm + # Build the GRF. +all: $(OBT_FILES) ifdef GRFCODEC -all: $(BIN_DIR)/openttd.grf $(BIN_DIR)/orig_extra.grf $(BIN_DIR)/orig_dos.obg $(BIN_DIR)/orig_dos_de.obg $(BIN_DIR)/orig_win.obg $(BIN_DIR)/orig_dos.obs $(BIN_DIR)/orig_win.obs $(BIN_DIR)/no_sound.obs $(BIN_DIR)/orig_win.obm $(BIN_DIR)/no_music.obm -else -all: +all: $(BIN_DIR)/openttd.grf $(BIN_DIR)/orig_extra.grf endif $(OBJS_DIR)/langfiles.tmp: $(LANG_DIR)/*.txt @@ -67,6 +78,10 @@ $(BIN_DIR)/%.obm: $(BASESET_DIR)/%.obm $(OBJS_DIR)/langfiles.tmp $(BASESET_DIR)/ $(E) '$(STAGE) Updating $(notdir $@)' $(Q) awk -v langfiles='$(OBJS_DIR)/langfiles.tmp' -f $(BASESET_DIR)/translations.awk $< >$@ +# Guard against trying to run GRFCODEC/NFORENUM without either being set. +ifdef GRFCODEC +ifdef NFORENUM + # Compile extra grf $(BIN_DIR)/openttd.grf: $(PNG_FILES) $(NFO_FILES) $(GRF_DIR)/assemble_nfo.awk $(E) '$(STAGE) Assembling openttd.nfo' @@ -89,9 +104,12 @@ $(BIN_DIR)/orig_extra.grf: $(PNG_FILES) $(NFO_FILES) $(GRF_DIR)/assemble_nfo.awk $(Q) $(GRFCODEC) -n -s -e -p1 $(OBJS_DIR)/orig_extra.grf $(Q)cp $(OBJS_DIR)/orig_extra.grf $(BIN_DIR)/orig_extra.grf +endif +endif + # Clean up temporary files. clean: - $(Q)rm -f *.bak *.grf + $(Q)rm -f *.bak *.grf $(OBT_FILES) # Clean up temporary files mrproper: clean diff --git a/bin/baseset/no_music.obm b/bin/baseset/no_music.obm deleted file mode 100644 index 7a70e3b55d..0000000000 --- a/bin/baseset/no_music.obm +++ /dev/null @@ -1,103 +0,0 @@ -; $Id$ -; -; This represents more or less nothingness -; -[metadata] -name = NoMusic -shortname = NULL -version = 0 -fallback = true -description = A music pack without actual music. -description.af_ZA = 'n Musiek stel sonder enige musiek. -description.ar_EG = مجموعة موسيقى بدون موسيقى -description.be_BY = "Пусты" набор музычнага афармлення, які не зьмяшчае ніякай музыкі. -description.bg_BG = Празен музикален пакет. -description.ca_ES = Una llista de música sense cap peça. -description.cs_CZ = Prázná hudební sada. -description.cy_GB = Pecyn cerddoriaeth heb unrhyw gerddoriaeth ynddo. -description.da_DK = En musikpakke uden musik. -description.de_DE = Ein Musikset ohne Musik. -description.el_GR = Ένα πάκετο μουσικής χωρίς πραγματική μουσική. -description.en_AU = A music pack without actual music. -description.en_US = A music pack without actual music. -description.es_ES = Un conjunto de música vacío. -description.es_MX = Paquete de música vacío -description.et_EE = Muusikakogu ilma muusikata. -description.eu_ES = Musika gabeko musika paketea. -description.fi_FI = Musiikkipaketti, jossa ei ole musiikkia. -description.fr_FR = Un pack de musiques sans musiques. -description.ga_IE = Pacáiste ceoil gan aon cheol iarbhír ann. -description.gd_GB = Pacaid ciùil anns nach eil fonn sam bith. -description.gl_ES = Un conxunto de músicas sen ningunha música. -description.he_IL = אוסף מנגינות ללא מנגינות. -description.hr_HR = Glazbeni paket bez ikakve glazbe. -description.hu_HU = Zenei alapcsomag zene nélkül. -description.id_ID = Paket musik tanpa musik sungguhan. -description.is_IS = Tónlistarpakki sem er í raun án tónlistar. -description.it_IT = Un pacchetto musicale non contenente alcuna musica. -description.ja_JP = 空の音楽パック -description.ko_KR = 실제 음악이 없는 음악 목록입니다. -description.la_VA = Sarcina musicae sine ulla musica. -description.lb_LU = E Musikpack ouni aktuell Musik. -description.lt_LT = Muzikos pakas be muzikos. -description.lv_LV = Mūzikas kopa bez mūzikas -description.ms_MY = Pek muzik tanpa muzik sebenar. -description.nb_NO = En musikkpakke uten noe musikk. -description.nl_NL = Een muziekset zonder muziek. -description.nn_NO = Ei musikkpakke utan noko musikk. -description.pl_PL = Zestaw utworów muzycznych nie zawierający żadnej muzyki. -description.pt_BR = Um pacote de músicas sem músicas. -description.pt_PT = Um conjunto de música vazio. -description.ro_RO = Un set de muzică fără muzică inclusă. -description.ru_RU = "Пустой" набор музыкального оформления, не содержащий никакой музыки. -description.sk_SK = Sada hudby neobsahujúca hudbu. -description.sl_SI = Glasbeni paket z vključeno glasbo. -description.sr_RS = Prazan skup muzičkih numera. -description.sv_SE = Ett musikpaket utan någon musik. -description.ta_IN = இசை இல்லாத இசைத்தொகுப்பு. -description.th_TH = ชุดเพลงประกอบแบบไม่มีเสียงเพลง -description.tr_TR = Müzik içermeyen boş bir müzik paketi. -description.uk_UA = Порожній набір музики. -description.vi_VN = Gói âm nhạc này không có nhạc nào. -description.zh_CN = 一个没有实际内容的音乐包. -description.zh_TW = 不含任何音樂的音樂集。 - -[files] -theme = -old_0 = -old_1 = -old_2 = -old_3 = -old_4 = -old_5 = -old_6 = -old_7 = -old_8 = -old_9 = -new_0 = -new_1 = -new_2 = -new_3 = -new_4 = -new_5 = -new_6 = -new_7 = -new_8 = -new_9 = -ezy_0 = -ezy_1 = -ezy_2 = -ezy_3 = -ezy_4 = -ezy_5 = -ezy_6 = -ezy_7 = -ezy_8 = -ezy_9 = - -[md5s] - -[names] - -[origin] -default = This file was part of your OpenTTD installation. diff --git a/bin/baseset/no_sound.obs b/bin/baseset/no_sound.obs deleted file mode 100644 index 8bd8d30fe0..0000000000 --- a/bin/baseset/no_sound.obs +++ /dev/null @@ -1,70 +0,0 @@ -; $Id$ -; -; This represents more or less nothingness -; -[metadata] -name = NoSound -shortname = NULL -version = 2 -fallback = true -description = A sound pack without any sounds. -description.af_ZA = 'n Klank stel sonder enige klanke. -description.ar_EG = مجموعة صوت بدوت اصوات مضافة -description.be_BY = "Пусты" набор гукавога афармленьня, які не зьмяшчае ніякіх гукаў. -description.bg_BG = Празен звуков пакет. -description.ca_ES = Una llista de sons buida. -description.cs_CZ = Prázdná sada zvuků. -description.cy_GB = Pecyn sain heb unrhyw effeithiau sain ynddo. -description.da_DK = En lydpakke uden lyde. -description.de_DE = Basissounds ohne Sound. -description.el_GR = Ένα πάκετο ήχων χώρις ήχους. -description.en_AU = A sound pack without any sounds. -description.en_US = A sound pack without any sounds. -description.es_ES = Un conjunto de sonidos vacío. -description.es_MX = Paquete de sonidos vacío -description.et_EE = Helikogu ilma helideta. -description.eu_ES = Soinurik gabeko soinu pakete bat -description.fi_FI = Äänipaketti, jossa ei ole ääniä. -description.fr_FR = Un pack de sons sans sons. -description.ga_IE = Pacáiste fuaimeanna gan aon fhuaimeanna ann. -description.gd_GB = Pacaid fhuaimean anns nach eil fuaim sam bith. -description.gl_ES = Un conxunto de sons sen ningún son -description.he_IL = אוסף צלילים ללא צלילים. -description.hr_HR = Zvučni paket bez ikakvih zvukova. -description.hu_HU = Hang alapcsomag hangok nélkül. -description.id_ID = Paket efek suara tanpa suara apapun. -description.is_IS = Hljóðpakki án hljóðs. -description.it_IT = Un pacchetto sonoro non contenente alcun suono. -description.ja_JP = 空の効果音パック -description.ko_KR = 아무런 효과음도 없는 효과음 팩입니다. -description.la_VA = Sarcina sonorum sine ullis sonis. -description.lb_LU = E Soundpack ouni iergendee Sound. -description.lt_LT = Garsų pakas be jokių garsų. -description.lv_LV = Skaņu kopa bez skaņas. -description.nb_NO = En lydpakke uten noen lyder. -description.nl_NL = Een geluidset zonder geluid. -description.nn_NO = Ei lydpakke utan nokon lydar. -description.pl_PL = Zestaw dźwięków nie zawierający żadnych dźwięków. -description.pt_BR = Um pacote de sons sem sons. -description.pt_PT = Um conjunto de sons vazio. -description.ro_RO = Un set de sunete fără nici un sunet inclus. -description.ru_RU = "Пустой" набор звукового оформления, не содержащий никаких звуков. -description.sk_SK = Zvuková sada neobsahujúca zvuky. -description.sl_SI = Zvočni paket brez zvoka. -description.sr_RS = Prazan skup zvukova. -description.sv_SE = Ett ljudpaket utan några ljud. -description.ta_IN = ஒலிகள் இல்லாத ஒலி தொகுப்பு. -description.th_TH = ชุดเสียงแบบไร้เสียง -description.tr_TR = Ses içermeyen boş bir ses kümesi. -description.uk_UA = Порожній набір звуків. -description.vi_VN = Gói âm thanh này không có âm thanh nào. -description.zh_CN = 一个空的音效包. -description.zh_TW = 不含任何音效的音效集。 - -[files] -samples = - -[md5s] - -[origin] -default = This file was part of your OpenTTD installation. diff --git a/bin/baseset/orig_dos.obg b/bin/baseset/orig_dos.obg deleted file mode 100644 index 9d0db3e2af..0000000000 --- a/bin/baseset/orig_dos.obg +++ /dev/null @@ -1,84 +0,0 @@ -; $Id$ -; -; This represents the original graphics as on the non-German Transport -; Tycoon Deluxe DOS CD. -; -[metadata] -name = original_dos -shortname = TTDD -version = 1 -palette = DOS -description = Original Transport Tycoon Deluxe DOS edition graphics. -description.af_ZA = Oorspronklike Transport Tycoon Deluxe DOS uitgawe grafieke. -description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الرسومية نسخة الدوس -description.be_BY = Арыґінальная ґрафіка з Transport Tycoon Deluxe для DOS. -description.bg_BG = Оригинални графики на Transport Tycoon Deluxe за DOS. -description.ca_ES = Gràfics originals del Transport Tycoon Deluxe pel DOS. -description.cs_CZ = Původní sada grafik Transport Tycoon Deluxe (verze pro DOS). -description.cy_GB = Graffeg gwreiddiol fersiwn DOS o Transport Tycoon Deluxe. -description.da_DK = Originalgrafik fra Transport Tycoon Deluxe DOS-version. -description.de_DE = Original Transport Tycoon Deluxe DOS Basisgrafiken. -description.el_GR = Αρχικά γραφικά από το Transport Tycoon Deluxe έκδοση DOS. -description.en_AU = Original Transport Tycoon Deluxe DOS edition graphics. -description.en_US = Original Transport Tycoon Deluxe DOS edition graphics. -description.es_ES = Gráficos originales de Transport Tycoon Deluxe versión DOS. -description.es_MX = Gráficos originales de Transport Tycoon Deluxe para DOS. -description.et_EE = Algse Transport Tycoon Deluxe DOSi versiooni graafika. -description.eu_ES = Transport Tycoon Deluxe originaleko DOS edizioko grafikoak. -description.fi_FI = Alkuperäiset Transport Tycoon Deluxen DOS-version grafiikat. -description.fr_FR = Graphiques originaux de Transport Tycoon Deluxe (version DOS). -description.ga_IE = Grafaicí bunaidhTransport Tycoon Deluxe, eagrán DOS. -description.gd_GB = Grafaigeachd aig an deasachadh DOS tùsail aig Transport Tycoon Deluxe. -description.gl_ES = Graficos da edición orixinal de Transport Tycoon Deluxe para DOS. -description.he_IL = גרפיקות Transport Tycoon Deluxe המקורי בגרסת DOS. -description.hr_HR = Originalna grafika za Transport Tycoon Deluxe DOS izdanje. -description.hu_HU = Az eredeti Transport Tycoon Deluxe DOS verziójának grafikája. -description.id_ID = Grafik orisinil Transport Tycoon Deluxe versi DOS. -description.is_IS = Upprunalega grafíkin úr Transport Tycoon Deluxe DOS útgáfunni. -description.it_IT = Grafica originale di Transport Tycoon Deluxe, edizione DOS. -description.ja_JP = Transport Tycoon Deluxe オリジナル版 グラフィック (DOS) -description.ko_KR = 오리지널 트랜스포트 타이쿤 디럭스 도스 에디션의 그래픽입니다. -description.la_VA = Graphica ex editione originale Transport Tycoon Deluxe DOS. -description.lb_LU = Original Transport Tycoon Deluxe DOS Editioun Grafik. -description.lt_LT = Originali Transport Tycoon Deluxe DOS leidimo grafika. -description.lv_LV = Oriģinālā Transport Tycoon Deluxe DOS izdevuma grafika. -description.ms_MY = Grafik asal Transport Tycoon Deluxe DOS edition. -description.nb_NO = Original grafikk fra Transport Tycoon Deluxe for DOS. -description.nl_NL = Originele graphics van de Transport Tycoon Deluxe DOS-versie. -description.nn_NO = Original grafikk frå Transport Tycoon Deluxe for DOS. -description.pl_PL = Oryginalna edycja grafik dla Transport Tycoon Deluxe DOS. -description.pt_BR = Gráficos Originais do Transport Tycoon Deluxe, Edição DOS. -description.pt_PT = Gráficos originais da edição DOS de Transport Tycoon Deluxe. -description.ro_RO = Setul grafic original al Transport Tycoon Deluxe pentru DOS. -description.ru_RU = Оригинальная графика из Transport Tycoon Deluxe для DOS. -description.sk_SK = Pôvodná grafika Transport Tycoon Deluxe (DOS). -description.sl_SI = Originalna grafika Transport Tycoon Deluxe za različico DOS. -description.sr_RS = Originalni skup grafika Transport Tycoon Deluxe DOS izdanja. -description.sv_SE = Originalgrafiken från Transport Tycoon Deluxe, DOS-utgåvan. -description.ta_IN = அசல் டிரான்ஸ்ஃபோர்ட் டைகூன் டீலக்ஸ் DOS பதிப்பு அசைவூட்டங்கள். -description.th_TH = กราฟฟิกต้นตำหรับของ Transport Tycoon Deluxe DOS edition -description.tr_TR = Özgün Transport Tycoon Deluxe DOS sürümü grafikleri. -description.uk_UA = Оригінальна графіка з Transport Tycoon Deluxe DOS edition. -description.vi_VN = Đồ họa gốc từ phiên bản Transport Tycoon Deluxe trên DOS -description.zh_CN = 运输大亨DOS豪华版原版图形包. -description.zh_TW = 原版 Transport Tycoon Deluxe DOS 版的圖形。 - -[files] -base = TRG1.GRF -logos = TRGI.GRF -arctic = TRGC.GRF -tropical = TRGH.GRF -toyland = TRGT.GRF -extra = ORIG_EXTRA.GRF - -[md5s] -TRG1.GRF = 9311676280e5b14077a8ee41c1b42192 -TRGI.GRF = da6a6c9dcc451eec88d79211437b76a8 -TRGC.GRF = ed446637e034104c5559b32c18afe78d -TRGH.GRF = ee6616fb0e6ef6b24892c58c93d86fc9 -TRGT.GRF = e30e8a398ae86c03dc534a8ac7dfb3b6 -ORIG_EXTRA.GRF = 67bcfac5911667309d86b7749ea8d08c - -[origin] -default = You can find it on your Transport Tycoon Deluxe CD-ROM. -ORIG_EXTRA.GRF = This file was part of your OpenTTD installation. diff --git a/bin/baseset/orig_dos.obm b/bin/baseset/orig_dos.obm deleted file mode 100644 index cdacc8e7f5..0000000000 --- a/bin/baseset/orig_dos.obm +++ /dev/null @@ -1,76 +0,0 @@ -; $Id$ -; -; This represents the original music as on the Transport -; Tycoon Deluxe for DOS CD. -; -[metadata] -name = original_dos -shortname = TTDD -version = 1 -description = Original Transport Tycoon Deluxe DOS edition music. - -[files] -theme = gm.cat -old_0 = gm.cat -old_1 = gm.cat -old_2 = gm.cat -old_3 = gm.cat -old_4 = gm.cat -old_5 = gm.cat -old_6 = gm.cat -old_7 = gm.cat -old_8 = -old_9 = -new_0 = gm.cat -new_1 = gm.cat -new_2 = gm.cat -new_3 = gm.cat -new_4 = gm.cat -new_5 = gm.cat -new_6 = gm.cat -new_7 = -new_8 = -new_9 = -ezy_0 = gm.cat -ezy_1 = gm.cat -ezy_2 = gm.cat -ezy_3 = gm.cat -ezy_4 = gm.cat -ezy_5 = gm.cat -ezy_6 = -ezy_7 = -ezy_8 = -ezy_9 = - -[md5s] -gm.cat = 7a29d2d0c4f7d2e03091ffa9b2bdfffb - -[catindex] -theme = 0 -old_0 = 1 -old_1 = 8 -old_2 = 2 -old_3 = 9 -old_4 = 14 -old_5 = 15 -old_6 = 19 -old_7 = 13 -new_0 = 6 -new_1 = 11 -new_2 = 10 -new_3 = 17 -new_4 = 21 -new_5 = 18 -new_6 = 5 -ezy_0 = 12 -ezy_1 = 7 -ezy_2 = 16 -ezy_3 = 3 -ezy_4 = 20 -ezy_5 = 4 - -[names] -; Names get read from the CAT file - -[origin] -default = You can find it on your Transport Tycoon Deluxe CD-ROM. diff --git a/bin/baseset/orig_dos.obs b/bin/baseset/orig_dos.obs deleted file mode 100644 index ce2d6d22e6..0000000000 --- a/bin/baseset/orig_dos.obs +++ /dev/null @@ -1,70 +0,0 @@ -; $Id$ -; -; This represents the original sounds as on the Transport -; Tycoon Deluxe DOS CD. -; -[metadata] -name = original_dos -shortname = TTDO -version = 0 -description = Original Transport Tycoon Deluxe DOS edition sounds. -description.af_ZA = Oorspronklike Transport Tycoon Deluxe DOS uitgawe klanke. -description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الصوتية نسخة الدوس -description.be_BY = Арыґінальны набор гукавога афармленьня з гульні Transport Tycoon Deluxe для DOS. -description.bg_BG = Оригинални звуци на Transport Tycoon Deluxe за DOS. -description.ca_ES = Sons originals del Transport Tycoon Deluxe pel DOS. -description.cs_CZ = Původní sada zvuků Transport Tycoon Deluxe (verze pro DOS). -description.cy_GB = Effeithiau sain gwreiddiol fersiwn DOS o Transport Tycoon Deluxe. -description.da_DK = Originallyd fra Transport Tycoon Deluxe DOS-version. -description.de_DE = Original Transport Tycoon Deluxe DOS Basissounds. -description.el_GR = Αρχικοί ήχοι από το Transport Tycoon Deluxe έκδοση DOS. -description.en_AU = Original Transport Tycoon Deluxe DOS edition sounds. -description.en_US = Original Transport Tycoon Deluxe DOS edition sounds. -description.es_ES = Sonidos originales de Transport Tycoon Deluxe versión DOS. -description.es_MX = Sonidos originales de Transport Tycoon Deluxe para DOS. -description.et_EE = Algse Transport Tycoon Deluxe DOSi versiooni helid. -description.eu_ES = Transport Tycoon Deluxe originaleko DOS edizioko soinuak. -description.fi_FI = Alkuperäiset Transport Tycoon Deluxen DOS-version äänet. -description.fr_FR = Sons originaux de Transport Tycoon Deluxe (version DOS). -description.ga_IE = Fuaimeanna bunaidh Transport Tycoon Deluxe, eagrán DOS. -description.gd_GB = Fuaimean aig an deasachadh DOS tùsail aig Transport Tycoon Deluxe. -description.gl_ES = Sons da edición orixinal de Transport Tycoon Deluxe para DOS. -description.he_IL = צלילי Transport Tycoon Deluxe המקורי בגרסת DOS. -description.hr_HR = Originalni zvukovi za Transport Tycoon Deluxe DOS izdanje. -description.hu_HU = Az eredeti Transport Tycoon Deluxe DOS verziójának hangjai. -description.id_ID = Efek suara orisinil Transport Tycoon Deluxe versi DOS. -description.is_IS = Upprunalega hljóðið úr Transport Tycoon Deluxe DOS útgáfunni. -description.it_IT = Suoni originali di Transport Tycoon Deluxe, edizione DOS. -description.ja_JP = Transport Tycoon Deluxe オリジナル版 効果音 (DOS) -description.ko_KR = 오리지널 트랜스포트 타이쿤 도스 에디션의 효과음입니다. -description.la_VA = Soni ex editione originale Transport Tycoon Deluxe DOS. -description.lb_LU = Original Transport Tycoon Deluxe DOS Editioun Sound. -description.lt_LT = Originalūs Transport Tycoon Deluxe DOS leidimo garsai. -description.nb_NO = Originale lyder fra Transport Tycoon Deluxe for DOS. -description.nl_NL = Originele geluiden van de Transport Tycoon Deluxe DOS-versie. -description.nn_NO = Originale lydar frå Transport Tycoon Deluxe for DOS. -description.pl_PL = Oryginalna edycja dźwięków dla Transport Tycoon Deluxe DOS. -description.pt_BR = Sons Originais do Transport Tycoon Deluxe, Edição DOS. -description.pt_PT = Sons originais da edição DOS de Transport Tycoon Deluxe. -description.ro_RO = Setul de sunete original al Transport Tycoon Deluxe pentru DOS. -description.ru_RU = Оригинальный набор звукового оформления из игры Transport Tycoon Deluxe для DOS. -description.sk_SK = Pôvodné zvuky Transport Tycoon Deluxe (DOS). -description.sl_SI = Originalni zvoki Transport Tycoon Deluxe različice DOS. -description.sr_RS = Originalni skup zvukova Transport Tycoon Deluxe DOS izdanja. -description.sv_SE = Originalljuden från Transport Tycoon Deluxe, DOS-utgåvan. -description.ta_IN = அசல் டிரான்ஸ்ஃபோர்ட் டைகூன் டீலக்ஸ் DOS பதிப்பு ஒலிகள். -description.th_TH = เสียงต้นตำหรับของ Transport Tycoon Deluxe DOS edition -description.tr_TR = Özgün Transport Tycoon Deluxe DOS sürümü sesleri. -description.uk_UA = Оригінальний набір звуків з Transport Tycoon Deluxe DOS edition. -description.vi_VN = Âm thanh gốc từ phiên bản Transport Tycoon Deluxe trên DOS -description.zh_CN = 运输大亨DOS豪华版原版音效包. -description.zh_TW = 原版 Transport Tycoon Deluxe DOS 版的音效。 - -[files] -samples = SAMPLE.CAT - -[md5s] -SAMPLE.CAT = 422ea3dd074d2859bb51639a6e0e85da - -[origin] -default = You can find it on your Transport Tycoon Deluxe CD-ROM. diff --git a/bin/baseset/orig_dos_de.obg b/bin/baseset/orig_dos_de.obg deleted file mode 100644 index 754ab5a2d4..0000000000 --- a/bin/baseset/orig_dos_de.obg +++ /dev/null @@ -1,82 +0,0 @@ -; $Id$ -; -; This represents the original graphics as on the German Transport -; Tycoon Deluxe DOS CD. It contains one broken sprite. -; -[metadata] -name = original_dos_de -shortname = TTDD -version = 0 -palette = DOS -description = Original Transport Tycoon Deluxe DOS (German) edition graphics. -description.af_ZA = Oorspronklike Transport Tycoon Deluxe DOS (German) uitgawe grafieke. -description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الالمانية نسخة الدوس -description.be_BY = Арыґінальная ґрафіка зь нямецкай версіі Transport Tycoon Deluxe для DOS. -description.bg_BG = Оригинални графики на Transport Tycoon Deluxe за DOS (немски) . -description.ca_ES = Gràfics originals del Transport Tycoon Deluxe (alemany) pel DOS. -description.cs_CZ = Původní sada grafik Transport Tycoon Deluxe (německá verze pro DOS). -description.cy_GB = Graffeg gwreiddiol fersiwn DOS (Almaenig) o Transport Tycoon Deluxe. -description.da_DK = Originalgrafik fra Transport Tycoon Deluxe DOS (Tysk) version. -description.de_DE = Original Transport Tycoon Deluxe DOS (Deutsch) Basisgrafiken. -description.el_GR = Αρχικά γραφικά από το Transport Tycoon Deluxe έκδοση DOS (Γερμανικό). -description.en_AU = Original Transport Tycoon Deluxe DOS (German) edition graphics. -description.en_US = Original Transport Tycoon Deluxe DOS (German) edition graphics. -description.es_ES = Gráficos originales de Transport Tycoon Deluxe versión DOS (Alemán). -description.es_MX = Gráficos originales de Transport Tycoon Deluxe para DOS (en alemán). -description.et_EE = Algse Transport Tycoon Deluxe DOSi (Saksa) versiooni graafika. -description.fi_FI = Alkuperäiset Saksassa julkaistun Transport Tycoon Deluxen DOS-version grafiikat. -description.fr_FR = Graphiques originaux de Transport Tycoon Deluxe (version DOS allemande). -description.ga_IE = Grafaicí bunaidhTransport Tycoon Deluxe, eagrán DOS (Gearmánach). -description.gd_GB = Grafaigeachd aig an deasachadh DOS (Gearmailteach) tùsail aig Transport Tycoon Deluxe. -description.gl_ES = Graficos da edición orixinal (alemá) de Transport Tycoon Deluxe para DOS. -description.he_IL = גרפיקות Transport Tycoon Deluxe המקורי בגרסת DOS (גרמנית). -description.hr_HR = Originalna grafika za Transport Tycoon Deluxe DOS (Njemački) izdanje. -description.hu_HU = Az eredeti Transport Tycoon Deluxe DOS (német) verziójának grafikája. -description.id_ID = Grafik orisinil Transport Tycoon Deluxe versi DOS (Jerman). -description.is_IS = Upprunalega grafíkin úr Transport Tycoon Deluxe DOS (þýsku) útgáfunni. -description.it_IT = Grafica originale di Transport Tycoon Deluxe (tedesco), edizione DOS. -description.ja_JP = Transport Tycoon Deluxe オリジナル版 グラフィック (DOS・ドイツ版) -description.ko_KR = 오리지널 트랜스포트 타이쿤 디럭스 도스 에디션(독일)의 그래픽입니다. -description.la_VA = Graphica ex editione originale Transport Tycoon Deluxe DOS (Germanica). -description.lb_LU = Original Transport Tycoon Deluxe DOS (Däitsch) Editioun Grafik. -description.lt_LT = Originali Transport Tycoon Deluxe DOS (Vokiečių) leidimo grafika. -description.lv_LV = Oriģinālā Transport Tycoon Deluxe DOS (vācu) izdevuma grafika. -description.nb_NO = Original grafikk fra Transport Tycoon Deluxe for DOS (tysk). -description.nl_NL = Originele graphics van de Duitse Transport Tycoon Deluxe DOS-versie. -description.nn_NO = Original grafikk frå Transport Tycoon Deluxe for DOS (tysk). -description.pl_PL = Oryginalna edycja grafik dla Transport Tycoon Deluxe DOS (German). -description.pt_BR = Gráficos Originais do Transport Tycoon Deluxe, Edição DOS alemã. -description.pt_PT = Gráficos originais da edição DOS (Alemã) de Transport Tycoon Deluxe. -description.ro_RO = Setul grafic original al Transport Tycoon Deluxe pentru DOS (ediţia germană). -description.ru_RU = Оригинальная графика из немецкой версии Transport Tycoon Deluxe для DOS. -description.sk_SK = Pôvodná grafika Transport Tycoon Deluxe (DOS) (v jazyku nemčina). -description.sl_SI = Originalna grafika Transport Tycoon Deluxe za nemško različico DOS. -description.sr_RS = Originalni skup grafika nemačkog Transport Tycoon Deluxe DOS izdanja. -description.sv_SE = Originalgrafiken från Transport Tycoon Deluxe, DOS-utgåvan (tyska). -description.ta_IN = அசல் டிரான்ஸ்ஃபோர்ட் டைகூன் டீலக்ஸ் DOS (செருமன்) பதிப்பு அசைவூட்டங்கள். -description.th_TH = กราฟฟิกต้นตำหรับของ Transport Tycoon Deluxe DOS (German) edition -description.tr_TR = Özgün Transport Tycoon Deluxe DOS (Almanca) sürümü grafikleri. -description.uk_UA = Оригінальна графіка з Transport Tycoon Deluxe DOS edition (німецького). -description.vi_VN = Đồ họa gốc từ phiên bản Transport Tycoon Deluxe trên DOS (tiếng Đức) -description.zh_CN = 运输大亨DOS豪华德语版原版图形包. -description.zh_TW = 原版 Transport Tycoon Deluxe DOS 版 (德國版) 的圖形。 - -[files] -base = TRG1.GRF -logos = TRGI.GRF -arctic = TRGC.GRF -tropical = TRGH.GRF -toyland = TRGT.GRF -extra = ORIG_EXTRA.GRF - -[md5s] -TRG1.GRF = 9311676280e5b14077a8ee41c1b42192 -TRGI.GRF = da6a6c9dcc451eec88d79211437b76a8 -TRGC.GRF = ed446637e034104c5559b32c18afe78d -TRGH.GRF = ee6616fb0e6ef6b24892c58c93d86fc9 -TRGT.GRF = fcde1d7e8a74197d72a62695884b909e -ORIG_EXTRA.GRF = 67bcfac5911667309d86b7749ea8d08c - -[origin] -default = You can find it on your Transport Tycoon Deluxe CD-ROM. -ORIG_EXTRA.GRF = This file was part of your OpenTTD installation. diff --git a/bin/baseset/orig_tto.obm b/bin/baseset/orig_tto.obm deleted file mode 100644 index 13b3efb110..0000000000 --- a/bin/baseset/orig_tto.obm +++ /dev/null @@ -1,71 +0,0 @@ -; $Id$ -; -; This represents the original music as on the Transport -; Tycoon (with World Editor) for DOS CD. -; -[metadata] -name = original_tto -shortname = TTOD -version = 1 -description = Original Transport Tycoon (Original/World Editor) music. - -[files] -theme = gm-tto.cat -old_0 = gm-tto.cat -old_1 = gm-tto.cat -old_2 = gm-tto.cat -old_3 = gm-tto.cat -old_4 = gm-tto.cat -old_5 = gm-tto.cat -old_6 = gm-tto.cat -old_7 = gm-tto.cat -old_8 = -old_9 = -new_0 = gm-tto.cat -new_1 = gm-tto.cat -new_2 = gm-tto.cat -new_3 = gm-tto.cat -new_4 = gm-tto.cat -new_5 = gm-tto.cat -new_6 = gm-tto.cat -new_7 = gm-tto.cat -new_8 = -new_9 = -ezy_0 = -ezy_1 = -ezy_2 = -ezy_3 = -ezy_4 = -ezy_5 = -ezy_6 = -ezy_7 = -ezy_8 = -ezy_9 = - -[catindex] -theme = 0 -old_0 = 1 -old_1 = 6 -old_2 = 2 -old_3 = 7 -old_4 = 11 -old_5 = 12 -old_6 = 15 -old_7 = 10 -new_0 = 4 -new_1 = 5 -new_2 = 9 -new_3 = 8 -new_4 = 13 -new_5 = 16 -new_6 = 14 -new_7 = 3 - -[md5s] -gm-tto.cat = 26e85ff84b0063aa5da05dd4698fc76e - -[names] -; Names get read from the CAT file - -[origin] -default = You can find it on your Transport Tycoon CD-ROM. diff --git a/bin/baseset/orig_win.obg b/bin/baseset/orig_win.obg deleted file mode 100644 index ec00781488..0000000000 --- a/bin/baseset/orig_win.obg +++ /dev/null @@ -1,83 +0,0 @@ -; $Id$ -; -; This represents the original graphics as on the Transport -; Tycoon Deluxe for Windows CD. -; -[metadata] -name = original_windows -shortname = TTDW -version = 0 -palette = Windows -description = Original Transport Tycoon Deluxe Windows edition graphics. -description.af_ZA = Oorspronklike Transport Tycoon Deluxe Windows uitgawe grafieke. -description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الرسومية نسخة وندوز -description.be_BY = Арыґінальная ґрафіка з Transport Tycoon Deluxe для Windows. -description.bg_BG = Оригинални графики на Transport Tycoon Deluxe за Windows. -description.ca_ES = Gràfics originals del Transport Tycoon Deluxe pel Windows. -description.cs_CZ = Původní sada grafik Transport Tycoon Deluxe (verze pro Windows). -description.cy_GB = Graffeg gwreiddiol fersiwn Windows o Transport Tycoon Deluxe. -description.da_DK = Originalgrafik fra Transport Tycoon Deluxe Windows-version. -description.de_DE = Original Transport Tycoon Deluxe Windows Basisgrafiken. -description.el_GR = Αρχικά γραφικά από το Transport Tycoon Deluxe έκδοση Windows. -description.en_AU = Original Transport Tycoon Deluxe Windows edition graphics. -description.en_US = Original Transport Tycoon Deluxe Windows edition graphics. -description.es_ES = Gráficos originales de Transport Tycoon Deluxe versión Windows. -description.es_MX = Gráficos originales de Transport Tycoon Deluxe para Windows. -description.et_EE = Algse Transport Tycoon Deluxe Windowsi versiooni graafika. -description.fi_FI = Alkuperäiset Transport Tycoon Deluxen Windows-version grafiikat. -description.fr_FR = Graphiques originaux de Transport Tycoon Deluxe (version Windows). -description.ga_IE = Grafaicí bunaidhTransport Tycoon Deluxe, eagrán Windows. -description.gd_GB = Grafaigeachd aig an deasachadh Windows tùsail aig Transport Tycoon Deluxe. -description.gl_ES = Graficos da edición orixinal de Transport Tycoon Deluxe para Windows. -description.he_IL = גרפיקות Transport Tycoon Deluxe המקורי בגרסת Windows. -description.hr_HR = Originalna grafika za Transport Tycoon Deluxe Windows izdanje. -description.hu_HU = Az eredeti Transport Tycoon Deluxe Windows verziójának grafikája. -description.id_ID = Grafik orisinil Transport Tycoon Deluxe versi Windows. -description.is_IS = Upprunalega grafíkin úr Transport Tycoon Deluxe Windows útgáfunni. -description.it_IT = Grafica originale di Transport Tycoon Deluxe, edizione Windows. -description.ja_JP = Transport Tycoon Deluxe オリジナル版 グラフィック (Windows) -description.ko_KR = 오리지널 트랜스포트 타이쿤 디럭스 윈도 에디션의 그래픽입니다. -description.la_VA = Graphica ex editione originale Transport Tycoon Deluxe Windows. -description.lb_LU = Original Transport Tycoon Deluxe Windows Editioun Grafik. -description.lt_LT = Originali Transport Tycoon Deluxe Windows leidimo grafika. -description.lv_LV = Oriģinālā Transport Tycoon Deluxe Windows izdevuma grafika. -description.ms_MY = Grafik asal Transport Tycoon Deluxe edisi Windows. -description.nb_NO = Original grafikk fra Transport Tycoon Deluxe for Windows. -description.nl_NL = Originele graphics van de Transport Tycoon Deluxe Windows-versie. -description.nn_NO = Original grafikk frå Transport Tycoon Deluxe for Windows. -description.pl_PL = Oryginalna edycja grafik dla Transport Tycoon Deluxe Windows. -description.pt_BR = Gráficos Originais do Transport Tycoon, Edição Windows. -description.pt_PT = Gráficos originais da edição Windows de Transport Tycoon Deluxe. -description.ro_RO = Setul grafic original al Transport Tycoon Deluxe pentru Windows. -description.ru_RU = Оригинальная графика из Transport Tycoon Deluxe для Windows. -description.sk_SK = Pôvodná grafika Transport Tycoon Deluxe (Windows). -description.sl_SI = Originalna grafika Transport Tycoon Deluxe za različico oken(windows). -description.sr_RS = Originalni skup grafika Transport Tycoon Deluxe Windows izdanja. -description.sv_SE = Originalgrafiken från Transport Tycoon Deluxe, Windows-utgåvan. -description.ta_IN = அசல் டிரான்ஸ்ஃபோர்ட் டைகூன் டீலக்ஸ் விண்டோஸ் பதிப்பு அசைவூட்டங்கள். -description.th_TH = กราฟฟิกต้ำตำหรับของ Transport Tycoon Deluxe Windows edition -description.tr_TR = Özgün Transport Tycoon Deluxe Windows sürümü grafikleri. -description.uk_UA = Оригінальна графіка з Transport Tycoon Deluxe Windows edition. -description.vi_VN = Đồ họa gốc từ phiên bản Transport Tycoon Deluxe trên Windows -description.zh_CN = 运输大亨Windows豪华版原版图形包. -description.zh_TW = 原版 Transport Tycoon Deluxe Windows 版的圖形。 - -[files] -base = TRG1R.GRF -logos = TRGIR.GRF -arctic = TRGCR.GRF -tropical = TRGHR.GRF -toyland = TRGTR.GRF -extra = ORIG_EXTRA.GRF - -[md5s] -TRG1R.GRF = b04ce593d8c5016e07473a743d7d3358 -TRGIR.GRF = 0c2484ff6be49fc63a83be6ab5c38f32 -TRGCR.GRF = 3668f410c761a050b5e7095a2b14879b -TRGHR.GRF = 06bf2b7a31766f048baac2ebe43457b1 -TRGTR.GRF = de53650517fe661ceaa3138c6edb0eb8 -ORIG_EXTRA.GRF = 67bcfac5911667309d86b7749ea8d08c - -[origin] -default = You can find it on your Transport Tycoon Deluxe CD-ROM. -ORIG_EXTRA.GRF = This file was part of your OpenTTD installation. diff --git a/bin/baseset/orig_win.obm b/bin/baseset/orig_win.obm deleted file mode 100644 index c8c4923e0e..0000000000 --- a/bin/baseset/orig_win.obm +++ /dev/null @@ -1,158 +0,0 @@ -; $Id$ -; -; This represents the original music as on the Transport -; Tycoon Deluxe for Windows CD. -; -[metadata] -name = original_windows -shortname = TTDW -version = 1 -description = Original Transport Tycoon Deluxe Windows edition music. -description.af_ZA = Oorspronklike Transport Tycoon Deluxe Windows uitgawe musiek. -description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الموسيقية نسخة وندوز -description.be_BY = Арыґінальны набор музычнага афармленьня з гульні Transport Tycoon Deluxe для Windows. -description.bg_BG = Оригинална музика на Transport Tycoon Deluxe за Windows. -description.ca_ES = Música original del Transport Tycoon Deluxe pel Windows. -description.cs_CZ = Původní hudba Transport Tycoon Deluxe (verze pro Windows). -description.cy_GB = Cerddoriaeth gwreiddiol fersion Windows o Transport Tycoon Deluxe. -description.da_DK = Originalmusik fra Transport Tycoon Deluxe Windows-version. -description.de_DE = Original Transport Tycoon Deluxe Windows Musikset. -description.el_GR = Αρχική μουσική από το Transport Tycoon Deluxe έκδοση Windows. -description.en_AU = Original Transport Tycoon Deluxe Windows edition music. -description.en_US = Original Transport Tycoon Deluxe Windows edition music. -description.es_ES = Música original de Transport Tycoon Deluxe versión Windows. -description.es_MX = Música original de Transport Tycoon Deluxe para Windows. -description.et_EE = Algse Transport Tycoon Deluxe Windowsi versiooni muusika. -description.fi_FI = Alkuperäinen Transport Tycoon Deluxen Windows-version musiikki. -description.fr_FR = Musiques originales de Transport Tycoon Deluxe (version Windows). -description.ga_IE = Ceol bunaidh Transport Tycoon Deluxe, eagrán Windows. -description.gd_GB = Ceòl aig an deasachadh Windows tùsail aig Transport Tycoon Deluxe. -description.gl_ES = Música da edición orixinal de Transport Tycoon Deluxe para Windows. -description.he_IL = מנגינות Transport Tycoon Deluxe המקורי בגרסת Windows. -description.hr_HR = Originalna glazba za Transport Tycoon Deluxe Windows izdanje. -description.hu_HU = Az eredeti Transport Tycoon Deluxe Windows verziójának zenéje. -description.id_ID = Musik pengiring orisinil Transport Tycoon Deluxe versi Windows. -description.is_IS = Upprunalega tónlistin úr Transport Tycoon Deluxe Windows útgáfunni. -description.it_IT = Musica originale di Transport Tycoon Deluxe, edizione Windows. -description.ja_JP = Transport Tycoon Deluxe オリジナル版 音楽 (Windows) -description.ko_KR = 오리지널 트랜스포트 타이쿤 디럭스 윈도 에디션의 음악입니다. -description.la_VA = Musica ex editione originale Transport Tycoon Deluxe Windows. -description.lb_LU = Original Transport Tycoon Deluxe Windows Editioun Musik. -description.lt_LT = Originali Transport Tycoon Deluxe Windows leidimo muzika. -description.lv_LV = Oriģinālā Transport Tycoon Deluxe Windows izdevuma mūzika. -description.ms_MY = Muzik asal Transport Tycoon Deluxe edisi Windows. -description.nb_NO = Original musikk fra Transport Tycoon Deluxe for Windows. -description.nl_NL = Originele muziek van de Transport Tycoon Deluxe Windows-versie. -description.nn_NO = Original musikk frå Transport Tycoon Deluxe for Windows. -description.pl_PL = Oryginalna edycja utworów muzycznych w Transport Tycoon Deluxe Windows. -description.pt_BR = Música Original do Transport Tycoon Deluxe, Edição Windows -description.pt_PT = Música original da edição Windows de Transport Tycoon Deluxe. -description.ro_RO = Setul de muzică original al Transport Tycoon Deluxe pentru Windows. -description.ru_RU = Оригинальный набор музыкального оформления из игры Transport Tycoon Deluxe для Windows. -description.sk_SK = Pôvodná hudba z Transport Tycoon Deluxe (Windows). -description.sl_SI = Originalna glasba Transport Tycoon Deluxe različice oken(windows). -description.sr_RS = Originalni skup muzičkih numera Transport Tycoon Deluxe Windows izdanja. -description.sv_SE = Originalmusiken från Transport Tycoon Deluxe, Windows-utgåvan. -description.ta_IN = அசல் டிரான்ஸ்ஃபோர்ட் டைகூன் டீலக்ஸ் விண்டோஸ் பதிப்பு இசை. -description.th_TH = เพลงต้นตำหรับชอง Transport Tycoon Deluxe Windows edition -description.tr_TR = Özgün Transport Tycoon Deluxe Windows sürümü müzikleri. -description.uk_UA = Оригінальна музика з Transport Tycoon Deluxe Windows edition. -description.vi_VN = Nhạc gốc từ phiên bản Transport Tycoon Deluxe trên Windows -description.zh_CN = Transport Tycoon Deluxe(运输大亨Windows豪华版)的原版音乐包 -description.zh_TW = 原版 Transport Tycoon Deluxe Windows 版的音樂。 - -[files] -theme = GM_TT00.GM -old_0 = GM_TT02.GM -old_1 = GM_TT06.GM -old_2 = GM_TT03.GM -old_3 = GM_TT12.GM -old_4 = GM_TT08.GM -old_5 = GM_TT13.GM -old_6 = GM_TT14.GM -old_7 = GM_TT10.GM -old_8 = -old_9 = -new_0 = GM_TT04.GM -new_1 = GM_TT01.GM -new_2 = GM_TT05.GM -new_3 = GM_TT15.GM -new_4 = GM_TT11.GM -new_5 = GM_TT16.GM -new_6 = GM_TT09.GM -new_7 = -new_8 = -new_9 = -ezy_0 = GM_TT18.GM -ezy_1 = GM_TT19.GM -ezy_2 = GM_TT21.GM -ezy_3 = GM_TT17.GM -ezy_4 = GM_TT20.GM -ezy_5 = GM_TT07.GM -ezy_6 = -ezy_7 = -ezy_8 = -ezy_9 = - -[md5s] -GM_TT00.GM = 45cfec1b9d8c7a0ad45e755833cbf221 -GM_TT01.GM = ab14ed3392d848abd2a2e90a9d75d121 -GM_TT02.GM = dd4f696e4be5987ce738257b08b50171 -GM_TT03.GM = a1bfde23343df9e4063419bf29c166b8 -GM_TT04.GM = 4e6943aa0c455203d76c79389054747d -GM_TT05.GM = cee281cb85a2e2343552d97640545a47 -GM_TT06.GM = 26d1de5efa8675f94065784e9d539e49 -GM_TT07.GM = 6f2691e17558f552ec4c565e4ab7139c -GM_TT08.GM = a42bf2cb3340a822f1a69646fc7a487d -GM_TT09.GM = eb35761a58a8df3c59ed8929cce13916 -GM_TT10.GM = 42fecd686720a785d20a78590c466a82 -GM_TT11.GM = 50ef1ef02e49d2112786dd45e69dc3ee -GM_TT12.GM = 4ce707a0e0e72419f0681dd9bd95271b -GM_TT13.GM = e765753be29d889ec818f38009103619 -GM_TT14.GM = 270e2d63bd32b95a4d007ce15a6ce45f -GM_TT15.GM = 89e116a1c0c69f1845cc903a9bfbe460 -GM_TT16.GM = f824e2371b3bedfe61aad4b9c62dd6be -GM_TT17.GM = 1b23eebb0796c1ab99cd97fa7082cf7b -GM_TT18.GM = 15650de3bad645d0e88c4f5c7a2df92a -GM_TT19.GM = 7aec079e15bd09588660b85545ac4dfc -GM_TT20.GM = 1509097889dee617aa1e9a1738a5a930 -GM_TT21.GM = a8d0aaad02e1a762d8d54cf81da56bab - -[names] -GM_TT00.GM = Tycoon DELUXE Theme -GM_TT01.GM = Snarl Up -GM_TT02.GM = Easy Driver -GM_TT03.GM = Little Red Diesel -GM_TT04.GM = City Groove -GM_TT05.GM = Aliens Ate My Railway -GM_TT06.GM = Stoke It -GM_TT07.GM = Don't Walk! -GM_TT08.GM = Sawyer's Tune -GM_TT09.GM = Fell Apart On Me -GM_TT10.GM = Can't Get There From Here -GM_TT11.GM = Hard Drivin' -GM_TT12.GM = Road Hog -GM_TT13.GM = Hold That Train! -GM_TT14.GM = Broomer's Oil Rag -GM_TT15.GM = Goss Groove -GM_TT16.GM = Small Town -GM_TT17.GM = Cruise Control -GM_TT18.GM = Stroll On -GM_TT19.GM = Funk Central -GM_TT20.GM = Jammit -GM_TT21.GM = Movin' On - -; MIDI timecodes where the playback should attemp to start and stop short. -; This is to allow fixing undesired silences in original MIDI files. -; However not all music drivers may support this. -[timingtrim] -; Theme has two beats silence at the beginning which prevents clean looping. -GM_TT00.GM = 768:53760 -; Can't Get There From Here from the Windows version has a long silence at the end, -; followed by a solo repeat. This isn't in the original DOS version music and is likely -; unintentional from the people who converted the music from the DOS version. -; Actual song ends after measure 152. -GM_TT10.GM = 0:235008 - -[origin] -default = You can find it on your Transport Tycoon Deluxe CD-ROM. diff --git a/bin/baseset/orig_win.obs b/bin/baseset/orig_win.obs deleted file mode 100644 index c3e5fb7693..0000000000 --- a/bin/baseset/orig_win.obs +++ /dev/null @@ -1,70 +0,0 @@ -; $Id$ -; -; This represents the original sounds as on the Transport -; Tycoon Deluxe for Windows CD. -; -[metadata] -name = original_windows -shortname = TTDO -version = 0 -description = Original Transport Tycoon Deluxe Windows edition sounds. -description.af_ZA = Oorspronklike Transport Tycoon Deluxe Windows uitgawe klanke. -description.ar_EG = النسخة الاصلية من ترانسبورت تايكون ديلوكس الصوتية نسخة وندوز -description.be_BY = Арыґінальны набор гукавога афармленьня з гульні Transport Tycoon Deluxe для Windows. -description.bg_BG = Оригинални звуци на Transport Tycoon Deluxe за Windows. -description.ca_ES = Sons originals del Transport Tycoon Deluxe pel Windows. -description.cs_CZ = Původní sada zvuků Transport Tycoon Deluxe (verze pro Windows). -description.cy_GB = Effeithiau sain gwreiddiol fersiwn Windows o Transport Tycoon Deluxe. -description.da_DK = Originallyd fra Transport Tycoon Deluxe Windows-version. -description.de_DE = Original Transport Tycoon Deluxe Windows Basissounds. -description.el_GR = Αρχικοί ήχοι από το Transport Tycoon Deluxe έκδοση Windows. -description.en_AU = Original Transport Tycoon Deluxe Windows edition sounds. -description.en_US = Original Transport Tycoon Deluxe Windows edition sounds. -description.es_ES = Sonidos originales de Transport Tycoon Deluxe versión Windows. -description.es_MX = Sonidos originales de Transport Tycoon Deluxe para Windows. -description.et_EE = Algse Transport Tycoon Deluxe Windowsi versiooni helid. -description.eu_ES = Transport Tycoon Deluxe originaleko Windows edizioko grafikoak. -description.fi_FI = Alkuperäiset Transport Tycoon Deluxen Windows-version äänet. -description.fr_FR = Sons originaux de Transport Tycoon Deluxe (version Windows). -description.ga_IE = Fuaimeanna bunaidh Transport Tycoon Deluxe, eagrán Windows. -description.gd_GB = Fuaimean aig an deasachadh Windows tùsail aig Transport Tycoon Deluxe. -description.gl_ES = Sons da edición orixinal de Transport Tycoon Deluxe para Windows. -description.he_IL = צלילי Transport Tycoon Deluxe המקורי בגרסת Windows. -description.hr_HR = Originalni zvukovi za Transport Tycoon Deluxe Windows izdanje. -description.hu_HU = Az eredeti Transport Tycoon Deluxe Windows verziójának hangjai. -description.id_ID = Efek suara orisinil Transport Tycoon Deluxe versi Windows. -description.is_IS = Upprunalega hljóðið úr Transport Tycoon Deluxe Windows útgáfunni. -description.it_IT = Suoni originali di Transport Tycoon Deluxe, edizione Windows. -description.ja_JP = Transport Tycoon Deluxe オリジナル版 効果音 (Windows) -description.ko_KR = 오리지널 트랜스포트 타이쿤 디럭스 윈도 에디션의 효과음입니다. -description.la_VA = Soni ex editione originale Transport Tycoon Deluxe Windows. -description.lb_LU = Original Transport Tycoon Deluxe Windows Editioun Sound. -description.lt_LT = Originalūs Transport Tycoon Deluxe Windows leidimo garsai. -description.nb_NO = Originale lyder fra Transport Tycoon Deluxe for Windows. -description.nl_NL = Originele geluiden van de Transport Tycoon Deluxe Windows-versie. -description.nn_NO = Originale lydar frå Transport Tycoon Deluxe for Windows. -description.pl_PL = Oryginalna edycja dźwięków dla Transport Tycoon Deluxe Windows. -description.pt_BR = Sons Originais do Transport Tycoon Deluxe, Edição Windows. -description.pt_PT = Sons originais da edição Windows de Transport Tycoon Deluxe. -description.ro_RO = Setul de sunete original al Transport Tycoon Deluxe pentru Windows. -description.ru_RU = Оригинальный набор звукового оформления из игры Transport Tycoon Deluxe для Windows. -description.sk_SK = Pôvodné zvuky Transport Tycoon Deluxe (Windows). -description.sl_SI = Originalni zvoki Transport Tycoon Deluxe različice oken(windows). -description.sr_RS = Originalni skup zvukova Transport Tycoon Deluxe Windows izdanja. -description.sv_SE = Originalljuden från Transport Tycoon Deluxe, Windows-utgåvan. -description.ta_IN = அசல் டிரான்ஸ்ஃபோர்ட் டைகூன் டீலக்ஸ் விண்டோஸ் பதிப்பு ஒலிகள். -description.th_TH = เสียงต้นตำหรับของ Transport Tycoon Deluxe Windows edition -description.tr_TR = Özgün Transport Tycoon Deluxe Windows sürümü sesleri. -description.uk_UA = Оригінальний набір звуків з Transport Tycoon Deluxe Windows edition. -description.vi_VN = Âm thanh gốc từ phiên bản Transport Tycoon Deluxe trên Windows -description.zh_CN = Transport Tycoon Deluxe Windows (运输大亨Windows豪华版)的原版音效包. -description.zh_TW = 原版 Transport Tycoon Deluxe Windows 版的音效。 - -[files] -samples = SAMPLE.CAT - -[md5s] -SAMPLE.CAT = 9212e81e72badd4bbe1eaeae66458e10 - -[origin] -default = You can find it on your Transport Tycoon Deluxe CD-ROM. diff --git a/media/baseset/translations.vbs b/media/baseset/translations.vbs new file mode 100644 index 0000000000..fffb577482 --- /dev/null +++ b/media/baseset/translations.vbs @@ -0,0 +1,123 @@ +Option Explicit + +' This file is part of OpenTTD. +' OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. +' OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +' See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see . + +Dim FSO +Set FSO = CreateObject("Scripting.FileSystemObject") + +Dim inputfile, outputfile, langpath, extra_grf +inputfile = WScript.Arguments(0) +outputfile = WScript.Arguments(1) +langpath = WScript.Arguments(2) + +If WScript.Arguments.Length > 3 Then + extra_grf = WScript.Arguments(3) +End If + +Function GetExtraGrfHash + Dim WSO, exe, line + + Set WSO = WScript.CreateObject("WScript.Shell") + Set exe = WSO.Exec("certutil -hashfile " & extra_grf & " MD5") + + Do Until exe.StdOut.AtEndOfStream + line = exe.StdOut.ReadLine + If Len(line) = 32 Then GetExtraGrfHash = line + Loop + + Set WSO = Nothing +End Function + +' Simple insertion sort, copied from translations.awk +Sub ISort(a) + Dim i, j, n, hold + n = UBound(a) + + For i = 1 To n + j = i + hold = a(j) + Do While a(j - 1) > hold + j = j - 1 + a(j + 1) = a(j) + + If j = 0 Then Exit Do + Loop + a(j) = hold + Next +End Sub + +Sub Lookup(ini_key, str_id, outfile) + Dim folder, file, line, p, lang, i + + ' Ensure only complete string matches + str_id = str_id & " " + + Set folder = FSO.GetFolder(langpath) + + Dim output() + ReDim output(folder.Files.Count) + + For Each file In folder.Files + If UCase(FSO.GetExtensionName(file.Name)) = "TXT" Then + Dim f + Set f = FSO.OpenTextFile(file.Path) + + Do Until f.atEndOfStream + line = f.ReadLine() + + If InStr(1, line, "##isocode ") = 1 Then + p = Split(line) + lang = p(1) + ElseIf InStr(1, line, str_id) = 1 Then + p = Split(line, ":", 2) + If lang = "en_GB" Then + output(i) = ini_key & " = " & p(1) + Else + output(i) = ini_key & "." & lang & " = " & p(1) + End If + i = i + 1 + End If + + Loop + End If + Next + + ReDim Preserve output(i - 1) + ISort output + + For Each line In output + outfile.Write line & vbCrLf + Next + +End Sub + +Dim line, p + +Dim infile +Set infile = FSO.OpenTextFile(inputfile) + +Dim outfile +Set outfile = FSO.CreateTextFile(outputfile, True) + +Do Until infile.atEndOfStream + + line = infile.ReadLine() + + If InStr(1, line, "ORIG_EXTRA.GRF ") = 1 Then + p = Split(line, "=") + If Trim(p(1)) = "" Then + outfile.Write("ORIG_EXTRA.GRF = " & GetExtraGrfHash() & vbCrLf) + Else + outfile.Write(line & vbCrLf) + End If + ElseIf InStr(1, line, "!! ") = 1 Then + p = Split(line) + Lookup p(1), p(2), outfile + Else + outfile.Write(line & vbCrLf) + End If + +Loop diff --git a/projects/basesets_vs140.vcxproj b/projects/basesets_vs140.vcxproj new file mode 100644 index 0000000000..4e5ed52c4a --- /dev/null +++ b/projects/basesets_vs140.vcxproj @@ -0,0 +1,99 @@ + + + + + Debug + Win32 + + + + basesets + {E12E77CA-C0F1-4ADA-943F-4929274249D3} + basesets + MakeFileProj + + + + Utility + false + v140 + + + + + + + + + ..\src\lang\afrikaans.txt;..\src\lang\arabic_egypt.txt;..\src\lang\basque.txt;..\src\lang\belarusian.txt;..\src\lang\brazilian_portuguese.txt;..\src\lang\bulgarian.txt;..\src\lang\catalan.txt;..\src\lang\croatian.txt;..\src\lang\czech.txt;..\src\lang\danish.txt;..\src\lang\dutch.txt;..\src\lang\english.txt;..\src\lang\english_AU.txt;..\src\lang\english_US.txt;..\src\lang\esperanto.txt;..\src\lang\estonian.txt;..\src\lang\faroese.txt;..\src\lang\finnish.txt;..\src\lang\french.txt;..\src\lang\gaelic.txt;..\src\lang\galician.txt;..\src\lang\german.txt;..\src\lang\greek.txt;..\src\lang\hebrew.txt;..\src\lang\hungarian.txt;..\src\lang\icelandic.txt;..\src\lang\indonesian.txt;..\src\lang\irish.txt;..\src\lang\italian.txt;..\src\lang\japanese.txt;..\src\lang\korean.txt;..\src\lang\latin.txt;..\src\lang\latvian.txt;..\src\lang\lithuanian.txt;..\src\lang\luxembourgish.txt;..\src\lang\malay.txt;..\src\lang\norwegian_bokmal.txt;..\src\lang\norwegian_nynorsk.txt;..\src\lang\polish.txt;..\src\lang\portuguese.txt;..\src\lang\romanian.txt;..\src\lang\russian.txt;..\src\lang\serbian.txt;..\src\lang\simplified_chinese.txt;..\src\lang\slovak.txt;..\src\lang\slovenian.txt;..\src\lang\spanish.txt;..\src\lang\spanish_MX.txt;..\src\lang\swedish.txt;..\src\lang\tamil.txt;..\src\lang\thai.txt;..\src\lang\traditional_chinese.txt;..\src\lang\turkish.txt;..\src\lang\ukrainian.txt;..\src\lang\vietnamese.txt;..\src\lang\welsh.txt + + + ..\bin\baseset\ + ..\objs\baseset\ + + + + Generating no_music.obm baseset metadata file + cscript //nologo ..\media\baseset\translations.vbs "%(FullPath)" "$(OutputPath)no_music.obm" ..\src\lang ..\bin\baseset\orig_extra.grf + $(Langs);..\bin\baseset\orig_extra.grf;%(AdditionalInputs) + ..\bin\baseset\no_music.obm;%(Outputs) + + + Generating no_sound.obs baseset metadata file + cscript //nologo ..\media\baseset\translations.vbs "%(FullPath)" "$(OutputPath)no_sound.obs" ..\src\lang ..\bin\baseset\orig_extra.grf + $(Langs);..\bin\baseset\orig_extra.grf;%(AdditionalInputs) + ..\bin\baseset\no_sound.obs;%(Outputs) + + + Generating orig_dos.obg baseset metadata file + cscript //nologo ..\media\baseset\translations.vbs "%(FullPath)" "$(OutputPath)orig_dos.obg" ..\src\lang ..\bin\baseset\orig_extra.grf + $(Langs);..\bin\baseset\orig_extra.grf;%(AdditionalInputs) + ..\bin\baseset\orig_dos.obg;%(Outputs) + + + Generating orig_dos.obm baseset metadata file + cscript //nologo ..\media\baseset\translations.vbs "%(FullPath)" "$(OutputPath)orig_dos.obm" ..\src\lang ..\bin\baseset\orig_extra.grf + $(Langs);..\bin\baseset\orig_extra.grf;%(AdditionalInputs) + ..\bin\baseset\orig_dos.obm;%(Outputs) + + + Generating orig_dos.obs baseset metadata file + cscript //nologo ..\media\baseset\translations.vbs "%(FullPath)" "$(OutputPath)orig_dos.obs" ..\src\lang ..\bin\baseset\orig_extra.grf + $(Langs);..\bin\baseset\orig_extra.grf;%(AdditionalInputs) + ..\bin\baseset\orig_dos.obs;%(Outputs) + + + Generating orig_dos_de.obg baseset metadata file + cscript //nologo ..\media\baseset\translations.vbs "%(FullPath)" "$(OutputPath)orig_dos_de.obg" ..\src\lang ..\bin\baseset\orig_extra.grf + $(Langs);..\bin\baseset\orig_extra.grf;%(AdditionalInputs) + ..\bin\baseset\orig_dos_de.obg;%(Outputs) + + + Generating orig_tto.obm baseset metadata file + cscript //nologo ..\media\baseset\translations.vbs "%(FullPath)" "$(OutputPath)orig_tto.obm" ..\src\lang ..\bin\baseset\orig_extra.grf + $(Langs);..\bin\baseset\orig_extra.grf;%(AdditionalInputs) + ..\bin\baseset\orig_tto.obm;%(Outputs) + + + Generating orig_win.obg baseset metadata file + cscript //nologo ..\media\baseset\translations.vbs "%(FullPath)" "$(OutputPath)orig_win.obg" ..\src\lang ..\bin\baseset\orig_extra.grf + $(Langs);..\bin\baseset\orig_extra.grf;%(AdditionalInputs) + ..\bin\baseset\orig_win.obg;%(Outputs) + + + Generating orig_win.obm baseset metadata file + cscript //nologo ..\media\baseset\translations.vbs "%(FullPath)" "$(OutputPath)orig_win.obm" ..\src\lang ..\bin\baseset\orig_extra.grf + $(Langs);..\bin\baseset\orig_extra.grf;%(AdditionalInputs) + ..\bin\baseset\orig_win.obm;%(Outputs) + + + Generating orig_win.obs baseset metadata file + cscript //nologo ..\media\baseset\translations.vbs "%(FullPath)" "$(OutputPath)orig_win.obs" ..\src\lang ..\bin\baseset\orig_extra.grf + $(Langs);..\bin\baseset\orig_extra.grf;%(AdditionalInputs) + ..\bin\baseset\orig_win.obs;%(Outputs) + + + + + + diff --git a/projects/basesets_vs140.vcxproj.filters b/projects/basesets_vs140.vcxproj.filters new file mode 100644 index 0000000000..aa555f3fc3 --- /dev/null +++ b/projects/basesets_vs140.vcxproj.filters @@ -0,0 +1,40 @@ + + + + + {b5a3ac67-19a9-4276-80e9-2360367d2680} + + + + + Baseset Metadata + + + Baseset Metadata + + + Baseset Metadata + + + Baseset Metadata + + + Baseset Metadata + + + Baseset Metadata + + + Baseset Metadata + + + Baseset Metadata + + + Baseset Metadata + + + Baseset Metadata + + + diff --git a/projects/basesets_vs140.vcxproj.filters.in b/projects/basesets_vs140.vcxproj.filters.in new file mode 100644 index 0000000000..07bff4542f --- /dev/null +++ b/projects/basesets_vs140.vcxproj.filters.in @@ -0,0 +1,11 @@ + + + + + {b5a3ac67-19a9-4276-80e9-2360367d2680} + + + +!!FILES!! + + diff --git a/projects/basesets_vs140.vcxproj.in b/projects/basesets_vs140.vcxproj.in new file mode 100644 index 0000000000..0471100a3e --- /dev/null +++ b/projects/basesets_vs140.vcxproj.in @@ -0,0 +1,40 @@ + + + + + Debug + Win32 + + + + basesets + {E12E77CA-C0F1-4ADA-943F-4929274249D3} + basesets + MakeFileProj + + + + Utility + false + v140 + + + + + + + + +!!FILTERS!! + + + ..\bin\baseset\ + ..\objs\baseset\ + + +!!FILES!! + + + + + diff --git a/projects/basesets_vs141.vcxproj b/projects/basesets_vs141.vcxproj new file mode 100644 index 0000000000..a01f24989b --- /dev/null +++ b/projects/basesets_vs141.vcxproj @@ -0,0 +1,99 @@ + + + + + Debug + Win32 + + + + basesets + {E12E77CA-C0F1-4ADA-943F-4929274249D3} + basesets + MakeFileProj + + + + Utility + false + v141 + + + + + + + + + ..\src\lang\afrikaans.txt;..\src\lang\arabic_egypt.txt;..\src\lang\basque.txt;..\src\lang\belarusian.txt;..\src\lang\brazilian_portuguese.txt;..\src\lang\bulgarian.txt;..\src\lang\catalan.txt;..\src\lang\croatian.txt;..\src\lang\czech.txt;..\src\lang\danish.txt;..\src\lang\dutch.txt;..\src\lang\english.txt;..\src\lang\english_AU.txt;..\src\lang\english_US.txt;..\src\lang\esperanto.txt;..\src\lang\estonian.txt;..\src\lang\faroese.txt;..\src\lang\finnish.txt;..\src\lang\french.txt;..\src\lang\gaelic.txt;..\src\lang\galician.txt;..\src\lang\german.txt;..\src\lang\greek.txt;..\src\lang\hebrew.txt;..\src\lang\hungarian.txt;..\src\lang\icelandic.txt;..\src\lang\indonesian.txt;..\src\lang\irish.txt;..\src\lang\italian.txt;..\src\lang\japanese.txt;..\src\lang\korean.txt;..\src\lang\latin.txt;..\src\lang\latvian.txt;..\src\lang\lithuanian.txt;..\src\lang\luxembourgish.txt;..\src\lang\malay.txt;..\src\lang\norwegian_bokmal.txt;..\src\lang\norwegian_nynorsk.txt;..\src\lang\polish.txt;..\src\lang\portuguese.txt;..\src\lang\romanian.txt;..\src\lang\russian.txt;..\src\lang\serbian.txt;..\src\lang\simplified_chinese.txt;..\src\lang\slovak.txt;..\src\lang\slovenian.txt;..\src\lang\spanish.txt;..\src\lang\spanish_MX.txt;..\src\lang\swedish.txt;..\src\lang\tamil.txt;..\src\lang\thai.txt;..\src\lang\traditional_chinese.txt;..\src\lang\turkish.txt;..\src\lang\ukrainian.txt;..\src\lang\vietnamese.txt;..\src\lang\welsh.txt + + + ..\bin\baseset\ + ..\objs\baseset\ + + + + Generating no_music.obm baseset metadata file + cscript //nologo ..\media\baseset\translations.vbs "%(FullPath)" "$(OutputPath)no_music.obm" ..\src\lang ..\bin\baseset\orig_extra.grf + $(Langs);..\bin\baseset\orig_extra.grf;%(AdditionalInputs) + ..\bin\baseset\no_music.obm;%(Outputs) + + + Generating no_sound.obs baseset metadata file + cscript //nologo ..\media\baseset\translations.vbs "%(FullPath)" "$(OutputPath)no_sound.obs" ..\src\lang ..\bin\baseset\orig_extra.grf + $(Langs);..\bin\baseset\orig_extra.grf;%(AdditionalInputs) + ..\bin\baseset\no_sound.obs;%(Outputs) + + + Generating orig_dos.obg baseset metadata file + cscript //nologo ..\media\baseset\translations.vbs "%(FullPath)" "$(OutputPath)orig_dos.obg" ..\src\lang ..\bin\baseset\orig_extra.grf + $(Langs);..\bin\baseset\orig_extra.grf;%(AdditionalInputs) + ..\bin\baseset\orig_dos.obg;%(Outputs) + + + Generating orig_dos.obm baseset metadata file + cscript //nologo ..\media\baseset\translations.vbs "%(FullPath)" "$(OutputPath)orig_dos.obm" ..\src\lang ..\bin\baseset\orig_extra.grf + $(Langs);..\bin\baseset\orig_extra.grf;%(AdditionalInputs) + ..\bin\baseset\orig_dos.obm;%(Outputs) + + + Generating orig_dos.obs baseset metadata file + cscript //nologo ..\media\baseset\translations.vbs "%(FullPath)" "$(OutputPath)orig_dos.obs" ..\src\lang ..\bin\baseset\orig_extra.grf + $(Langs);..\bin\baseset\orig_extra.grf;%(AdditionalInputs) + ..\bin\baseset\orig_dos.obs;%(Outputs) + + + Generating orig_dos_de.obg baseset metadata file + cscript //nologo ..\media\baseset\translations.vbs "%(FullPath)" "$(OutputPath)orig_dos_de.obg" ..\src\lang ..\bin\baseset\orig_extra.grf + $(Langs);..\bin\baseset\orig_extra.grf;%(AdditionalInputs) + ..\bin\baseset\orig_dos_de.obg;%(Outputs) + + + Generating orig_tto.obm baseset metadata file + cscript //nologo ..\media\baseset\translations.vbs "%(FullPath)" "$(OutputPath)orig_tto.obm" ..\src\lang ..\bin\baseset\orig_extra.grf + $(Langs);..\bin\baseset\orig_extra.grf;%(AdditionalInputs) + ..\bin\baseset\orig_tto.obm;%(Outputs) + + + Generating orig_win.obg baseset metadata file + cscript //nologo ..\media\baseset\translations.vbs "%(FullPath)" "$(OutputPath)orig_win.obg" ..\src\lang ..\bin\baseset\orig_extra.grf + $(Langs);..\bin\baseset\orig_extra.grf;%(AdditionalInputs) + ..\bin\baseset\orig_win.obg;%(Outputs) + + + Generating orig_win.obm baseset metadata file + cscript //nologo ..\media\baseset\translations.vbs "%(FullPath)" "$(OutputPath)orig_win.obm" ..\src\lang ..\bin\baseset\orig_extra.grf + $(Langs);..\bin\baseset\orig_extra.grf;%(AdditionalInputs) + ..\bin\baseset\orig_win.obm;%(Outputs) + + + Generating orig_win.obs baseset metadata file + cscript //nologo ..\media\baseset\translations.vbs "%(FullPath)" "$(OutputPath)orig_win.obs" ..\src\lang ..\bin\baseset\orig_extra.grf + $(Langs);..\bin\baseset\orig_extra.grf;%(AdditionalInputs) + ..\bin\baseset\orig_win.obs;%(Outputs) + + + + + + diff --git a/projects/basesets_vs141.vcxproj.filters b/projects/basesets_vs141.vcxproj.filters new file mode 100644 index 0000000000..aa555f3fc3 --- /dev/null +++ b/projects/basesets_vs141.vcxproj.filters @@ -0,0 +1,40 @@ + + + + + {b5a3ac67-19a9-4276-80e9-2360367d2680} + + + + + Baseset Metadata + + + Baseset Metadata + + + Baseset Metadata + + + Baseset Metadata + + + Baseset Metadata + + + Baseset Metadata + + + Baseset Metadata + + + Baseset Metadata + + + Baseset Metadata + + + Baseset Metadata + + + diff --git a/projects/basesets_vs141.vcxproj.filters.in b/projects/basesets_vs141.vcxproj.filters.in new file mode 100644 index 0000000000..07bff4542f --- /dev/null +++ b/projects/basesets_vs141.vcxproj.filters.in @@ -0,0 +1,11 @@ + + + + + {b5a3ac67-19a9-4276-80e9-2360367d2680} + + + +!!FILES!! + + diff --git a/projects/basesets_vs141.vcxproj.in b/projects/basesets_vs141.vcxproj.in new file mode 100644 index 0000000000..69dbd2e078 --- /dev/null +++ b/projects/basesets_vs141.vcxproj.in @@ -0,0 +1,40 @@ + + + + + Debug + Win32 + + + + basesets + {E12E77CA-C0F1-4ADA-943F-4929274249D3} + basesets + MakeFileProj + + + + Utility + false + v141 + + + + + + + + +!!FILTERS!! + + + ..\bin\baseset\ + ..\objs\baseset\ + + +!!FILES!! + + + + + diff --git a/projects/generate b/projects/generate index be3396c6f0..cb97ed3dea 100755 --- a/projects/generate +++ b/projects/generate @@ -30,6 +30,7 @@ fi # strgen_vs141.vcxproj.filters is for MSVC 2017 # generate_vs141.vcxproj is for MSVC 2017 # version_vs141.vcxproj is for MSVC 2017 +# basesets_vs141.vcxproj is for MSVC 2017 # openttd_vs140.sln is for MSVC 2015 # openttd_vs140.vcxproj is for MSVC 2015 @@ -39,6 +40,7 @@ fi # strgen_vs140.vcxproj.filters is for MSVC 2015 # generate_vs140.vcxproj is for MSVC 2015 # version_vs140.vcxproj is for MSVC 2015 +# basesets_vs140.vcxproj is for MSVC 2015 @@ -197,6 +199,44 @@ load_settings_data() { eval "$2=\"\$RES\$RES2\"" } +load_baseset_data() { + FIRST="" + RES="" + RES2=" +#4 " + # Windows Folder sort and Linux Folder sort are slightly different. + # By removing the extension and sorting it on Linux, they are the same. + for i in `ls $2 | sed s~.txt$~~g | sort` + do + if [ "$FIRST" != "" ]; then + RES2="$RES2;" + else + FIRST=1 + fi + i=`basename $i` + RES2="$RES2..\\src\\lang\\$i.txt" + done + RES2="$RES2" + # Windows Folder sort and Linux Folder sort are slightly different. + # By fiddling with the extension and sorting it on Linux, they are the same. + for i in `ls $1 | sed s~\\\.~000~g | sort | sed s~000~.~g` + do + i=`basename $i` + RES="$RES +#2 +#2 Generating "$i" baseset metadata file +#2 cscript //nologo ..\\media\\baseset\\translations.vbs \"%(FullPath)\" \"\$(OutputPath)$i\" ..\\src\\lang ..\\bin\\baseset\\orig_extra.grf +#2 \$(Langs);..\\bin\\baseset\\orig_extra.grf;%(AdditionalInputs) +#2 ..\\bin\\baseset\\"$i";%(Outputs) +#2 +#3 +#3 Baseset Metadata +#3 " + done + + eval "$3=\"\$RES\$RES2\"" +} + generate() { echo "Generating $2..." if [ $# -eq 3 ]; then @@ -263,6 +303,11 @@ settingsfiles=`echo "$settings" | grep "^#4" | sed "s~#4~~g"` settingscommand=`echo "$settings" | grep "^#3" | sed "s~#3~~g"` settingsvcxproj=`echo "$settings" | grep "^#2" | sed "s~#2~~g"` +load_baseset_data "$ROOT_DIR/media/baseset/*.ob?" "$ROOT_DIR/src/lang/*.txt" baseset +basesetfiles=`echo "$baseset" | grep "^#3" | sed "s-#3--g"` +basesetvcxproj=`echo "$baseset" | grep "^#2" | sed "s~#2~~g"` +basesetlangs=`echo "$baseset" | grep "^#4" | sed "s~#4~~g"` + generate "$openttdvcxproj" "openttd_vs140.vcxproj" generate "$openttdfiles" "openttd_vs140.vcxproj.filters" "$openttdfilters" generate "$openttdvcxproj" "openttd_vs141.vcxproj" @@ -275,3 +320,7 @@ generate "$settingsvcxproj" "settings_vs140.vcxproj" "$settingscommand" generate "$settingsfiles" "settings_vs140.vcxproj.filters" generate "$settingsvcxproj" "settings_vs141.vcxproj" "$settingscommand" generate "$settingsfiles" "settings_vs141.vcxproj.filters" +generate "$basesetvcxproj" "basesets_vs140.vcxproj" "$basesetlangs" +generate "$basesetfiles" "basesets_vs140.vcxproj.filters" +generate "$basesetvcxproj" "basesets_vs141.vcxproj" "$basesetlangs" +generate "$basesetfiles" "basesets_vs141.vcxproj.filters" diff --git a/projects/generate.vbs b/projects/generate.vbs index 218dcfc0ec..d4b61a6c82 100644 --- a/projects/generate.vbs +++ b/projects/generate.vbs @@ -18,6 +18,7 @@ Set FSO = CreateObject("Scripting.FileSystemObject") ' strgen_vs141.vcxproj.filters is for MSVC 2017 ' generate_vs141.vcxproj is for MSVC 2017 ' version_vs141.vcxproj is for MSVC 2017 +' basesets_vs141.vcxproj is for MSVC 2017 ' openttd_vs140.sln is for MSVC 2015 ' openttd_vs140.vcxproj is for MSVC 2015 @@ -27,6 +28,7 @@ Set FSO = CreateObject("Scripting.FileSystemObject") ' strgen_vs140.vcxproj.filters is for MSVC 2015 ' generate_vs140.vcxproj is for MSVC 2015 ' version_vs140.vcxproj is for MSVC 2015 +' basesets_vs140.vcxproj is for MSVC 2015 Sub safety_check(filename) Dim file, line, regexp, list @@ -267,6 +269,48 @@ Sub load_settings_data(dir, ByRef vcxproj, ByRef command, ByRef files) Next End Sub +Sub load_baseset_data(dir, langdir, ByRef vcxproj, ByRef files, ByRef langs) + Dim folder, file, ext, first_time + Set folder = FSO.GetFolder(langdir) + langs = " " + For Each file In folder.Files + If first_time <> 0 Then + langs = langs & ";" + Else + first_time = 1 + End If + file = FSO.GetFileName(file) + ext = FSO.GetExtensionName(file) + langs = langs & "..\src\lang\" & file + Next + langs = langs & "" + first_time = 0 + Set folder = FSO.GetFolder(dir) + For Each file In folder.Files + file = FSO.GetFileName(file) + ext = FSO.GetExtensionName(file) + If ext = "obm" Or ext = "obg" Or ext = "obs" Then + If first_time <> 0 Then + vcxproj = vcxproj & vbCrLf + files = files & vbCrLf + Else + first_time = 1 + End If + vcxproj = vcxproj & _ + " " & vbCrLf & _ + " Generating " & file & " baseset metadata file" & vbCrLf & _ + " cscript //nologo ..\media\baseset\translations.vbs " & Chr(34) & "%(FullPath)" & Chr(34) & " " & Chr(34) & "$(OutputPath)" & file & Chr(34) & " ..\src\lang ..\bin\baseset\orig_extra.grf" & vbCrLf & _ + " $(Langs);..\bin\baseset\orig_extra.grf;%(AdditionalInputs)" & vbCrLf & _ + " ..\bin\baseset\" & file & ";%(Outputs)" & vbCrLf & _ + " " + files = files & _ + " " & vbCrLf & _ + " Baseset Metadata" & vbCrLf & _ + " " + End If + Next +End Sub + Sub generate(data, dest, data2) Dim srcfile, destfile, line WScript.Echo "Generating " & FSO.GetFileName(dest) & "..." @@ -338,3 +382,10 @@ generate settingsvcxproj, ROOT_DIR & "/projects/settings_vs140.vcxproj", setting generate settingsfiles, ROOT_DIR & "/projects/settings_vs140.vcxproj.filters", Null generate settingsvcxproj, ROOT_DIR & "/projects/settings_vs141.vcxproj", settingscommand generate settingsfiles, ROOT_DIR & "/projects/settings_vs141.vcxproj.filters", Null + +Dim basesetvcxproj, basesetfiles, basesetlangs +load_baseset_data ROOT_DIR & "/media/baseset", ROOT_DIR & "/src/lang", basesetvcxproj, basesetfiles, basesetlangs +generate basesetvcxproj, ROOT_DIR & "/projects/basesets_vs140.vcxproj", basesetlangs +generate basesetfiles, ROOT_DIR & "/projects/basesets_vs140.vcxproj.filters", Null +generate basesetvcxproj, ROOT_DIR & "/projects/basesets_vs141.vcxproj", basesetlangs +generate basesetfiles, ROOT_DIR & "/projects/basesets_vs141.vcxproj.filters", Null diff --git a/projects/openttd_vs140.sln b/projects/openttd_vs140.sln index c9beb2a1e1..e2b7632f7e 100644 --- a/projects/openttd_vs140.sln +++ b/projects/openttd_vs140.sln @@ -19,6 +19,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "settingsgen", "settingsgen_ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "regression", "regression_vs140.vcxproj", "{4712B013-437D-42CE-947F-DEBABA15261F}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "basesets", "basesets_vs140.vcxproj", "{E12E77CA-C0F1-4ADA-943F-4929274249D3}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -83,6 +85,14 @@ Global {4712B013-437D-42CE-947F-DEBABA15261F}.Debug|x64.ActiveCfg = Debug|Win32 {4712B013-437D-42CE-947F-DEBABA15261F}.Release|Win32.ActiveCfg = Debug|Win32 {4712B013-437D-42CE-947F-DEBABA15261F}.Release|x64.ActiveCfg = Debug|Win32 + {E12E77CA-C0F1-4ADA-943F-4929274249D3}.Debug|Win32.ActiveCfg = Debug|Win32 + {E12E77CA-C0F1-4ADA-943F-4929274249D3}.Debug|Win32.Build.0 = Debug|Win32 + {E12E77CA-C0F1-4ADA-943F-4929274249D3}.Debug|x64.ActiveCfg = Debug|Win32 + {E12E77CA-C0F1-4ADA-943F-4929274249D3}.Debug|x64.Build.0 = Debug|Win32 + {E12E77CA-C0F1-4ADA-943F-4929274249D3}.Release|Win32.ActiveCfg = Debug|Win32 + {E12E77CA-C0F1-4ADA-943F-4929274249D3}.Release|Win32.Build.0 = Debug|Win32 + {E12E77CA-C0F1-4ADA-943F-4929274249D3}.Release|x64.ActiveCfg = Debug|Win32 + {E12E77CA-C0F1-4ADA-943F-4929274249D3}.Release|x64.Build.0 = Debug|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/projects/openttd_vs140.vcxproj b/projects/openttd_vs140.vcxproj index 59f52a08da..b2dbfd2932 100644 --- a/projects/openttd_vs140.vcxproj +++ b/projects/openttd_vs140.vcxproj @@ -1361,6 +1361,10 @@ {1a2b3c5e-1c23-41a5-9c9b-acba2aa75fec} false + + {e12e77ca-c0f1-4ada-943f-4929274249d3} + false + diff --git a/projects/openttd_vs140.vcxproj.in b/projects/openttd_vs140.vcxproj.in index c5e120401f..951f8b6048 100644 --- a/projects/openttd_vs140.vcxproj.in +++ b/projects/openttd_vs140.vcxproj.in @@ -365,6 +365,10 @@ {1a2b3c5e-1c23-41a5-9c9b-acba2aa75fec} false + + {e12e77ca-c0f1-4ada-943f-4929274249d3} + false + diff --git a/projects/openttd_vs141.sln b/projects/openttd_vs141.sln index f163125cbe..6e328ba764 100644 --- a/projects/openttd_vs141.sln +++ b/projects/openttd_vs141.sln @@ -19,6 +19,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "settingsgen", "settingsgen_ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "regression", "regression_vs141.vcxproj", "{4712B013-437D-42CE-947F-DEBABA15261F}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "basesets", "basesets_vs141.vcxproj", "{E12E77CA-C0F1-4ADA-943F-4929274249D3}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -83,6 +85,14 @@ Global {4712B013-437D-42CE-947F-DEBABA15261F}.Debug|x64.ActiveCfg = Debug|Win32 {4712B013-437D-42CE-947F-DEBABA15261F}.Release|Win32.ActiveCfg = Debug|Win32 {4712B013-437D-42CE-947F-DEBABA15261F}.Release|x64.ActiveCfg = Debug|Win32 + {E12E77CA-C0F1-4ADA-943F-4929274249D3}.Debug|Win32.ActiveCfg = Debug|Win32 + {E12E77CA-C0F1-4ADA-943F-4929274249D3}.Debug|Win32.Build.0 = Debug|Win32 + {E12E77CA-C0F1-4ADA-943F-4929274249D3}.Debug|x64.ActiveCfg = Debug|Win32 + {E12E77CA-C0F1-4ADA-943F-4929274249D3}.Debug|x64.Build.0 = Debug|Win32 + {E12E77CA-C0F1-4ADA-943F-4929274249D3}.Release|Win32.ActiveCfg = Debug|Win32 + {E12E77CA-C0F1-4ADA-943F-4929274249D3}.Release|Win32.Build.0 = Debug|Win32 + {E12E77CA-C0F1-4ADA-943F-4929274249D3}.Release|x64.ActiveCfg = Debug|Win32 + {E12E77CA-C0F1-4ADA-943F-4929274249D3}.Release|x64.Build.0 = Debug|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/projects/openttd_vs141.vcxproj b/projects/openttd_vs141.vcxproj index 525119179d..92edccd7c9 100644 --- a/projects/openttd_vs141.vcxproj +++ b/projects/openttd_vs141.vcxproj @@ -1361,6 +1361,10 @@ {1a2b3c5e-1c23-41a5-9c9b-acba2aa75fec} false + + {e12e77ca-c0f1-4ada-943f-4929274249d3} + false + diff --git a/projects/openttd_vs141.vcxproj.in b/projects/openttd_vs141.vcxproj.in index 2a8a78af75..d28f500f1c 100644 --- a/projects/openttd_vs141.vcxproj.in +++ b/projects/openttd_vs141.vcxproj.in @@ -365,6 +365,10 @@ {1a2b3c5e-1c23-41a5-9c9b-acba2aa75fec} false + + {e12e77ca-c0f1-4ada-943f-4929274249d3} + false + From b6de8c093010887a2962c677ca042faab9c87eeb Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Fri, 25 Jan 2019 23:16:34 +0000 Subject: [PATCH 24/41] Fix #7098, Fix #7061: Inverted test led to invalid iterator access. --- src/terraform_cmd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/terraform_cmd.cpp b/src/terraform_cmd.cpp index 5b476da18e..9839f5e34b 100644 --- a/src/terraform_cmd.cpp +++ b/src/terraform_cmd.cpp @@ -313,7 +313,7 @@ CommandCost CmdTerraformLand(TileIndex tile, DoCommandFlag flags, uint32 p1, uin for (TileIndexSet::const_iterator it = ts.dirty_tiles.begin(); it != ts.dirty_tiles.end(); it++) { MarkTileDirtyByTile(*it); TileIndexToHeightMap::const_iterator new_height = ts.tile_to_new_height.find(tile); - if (new_height != ts.tile_to_new_height.end()) continue; + if (new_height == ts.tile_to_new_height.end()) continue; MarkTileDirtyByTile(*it, 0, new_height->second); } From 65782af2f40973a71ab33f4437faeb5b3859c49b Mon Sep 17 00:00:00 2001 From: Niels Martin Hansen Date: Sat, 26 Jan 2019 11:03:54 +0100 Subject: [PATCH 25/41] Add: Visual Studio 2019 project files --- README.md | 6 +- docs/Readme_Windows_MSVC.md | 3 +- projects/basesets_vs142.vcxproj | 99 + projects/basesets_vs142.vcxproj.filters | 40 + projects/basesets_vs142.vcxproj.filters.in | 11 + projects/basesets_vs142.vcxproj.in | 40 + projects/generate | 18 + projects/generate.vbs | 18 + projects/generate_vs142.vcxproj | 40 + projects/langs_vs142.vcxproj | 390 +++ projects/langs_vs142.vcxproj.filters | 176 ++ projects/langs_vs142.vcxproj.filters.in | 12 + projects/langs_vs142.vcxproj.in | 61 + projects/openttd_vs142.sln | 103 + projects/openttd_vs142.vcxproj | 1370 +++++++++ projects/openttd_vs142.vcxproj.filters | 3101 ++++++++++++++++++++ projects/openttd_vs142.vcxproj.filters.in | 13 + projects/openttd_vs142.vcxproj.in | 374 +++ projects/regression_vs142.vcxproj | 41 + projects/settings_vs142.vcxproj | 60 + projects/settings_vs142.vcxproj.filters | 35 + projects/settings_vs142.vcxproj.filters.in | 15 + projects/settings_vs142.vcxproj.in | 54 + projects/settingsgen_vs142.vcxproj | 84 + projects/settingsgen_vs142.vcxproj.filters | 32 + projects/strgen_vs142.vcxproj | 96 + projects/strgen_vs142.vcxproj.filters | 35 + projects/version_vs142.vcxproj | 42 + 28 files changed, 6365 insertions(+), 4 deletions(-) create mode 100644 projects/basesets_vs142.vcxproj create mode 100644 projects/basesets_vs142.vcxproj.filters create mode 100644 projects/basesets_vs142.vcxproj.filters.in create mode 100644 projects/basesets_vs142.vcxproj.in create mode 100644 projects/generate_vs142.vcxproj create mode 100644 projects/langs_vs142.vcxproj create mode 100644 projects/langs_vs142.vcxproj.filters create mode 100644 projects/langs_vs142.vcxproj.filters.in create mode 100644 projects/langs_vs142.vcxproj.in create mode 100644 projects/openttd_vs142.sln create mode 100644 projects/openttd_vs142.vcxproj create mode 100644 projects/openttd_vs142.vcxproj.filters create mode 100644 projects/openttd_vs142.vcxproj.filters.in create mode 100644 projects/openttd_vs142.vcxproj.in create mode 100644 projects/regression_vs142.vcxproj create mode 100644 projects/settings_vs142.vcxproj create mode 100644 projects/settings_vs142.vcxproj.filters create mode 100644 projects/settings_vs142.vcxproj.filters.in create mode 100644 projects/settings_vs142.vcxproj.in create mode 100644 projects/settingsgen_vs142.vcxproj create mode 100644 projects/settingsgen_vs142.vcxproj.filters create mode 100644 projects/strgen_vs142.vcxproj create mode 100644 projects/strgen_vs142.vcxproj.filters create mode 100644 projects/version_vs142.vcxproj diff --git a/README.md b/README.md index 6004bdc7f5..7c842a1f86 100644 --- a/README.md +++ b/README.md @@ -593,8 +593,7 @@ no graphical user interface; you would be building a dedicated server. The following compilers are known to compile OpenTTD: -- Microsoft Visual C++ (MSVC) 2005, 2008 and 2010. - Version 2005 gives bogus warnings about scoping issues. +- Microsoft Visual C++ (MSVC) 2015, 2017 and 2019. - GNU Compiler Collection (GCC) 3.3 - 4.4, 4.6 - 4.8. - Versions 4.1 and earlier give bogus warnings about uninitialised variables. - Versions 4.4, 4.6 give bogus warnings about freeing non-heap objects. @@ -605,7 +604,8 @@ The following compilers are known to compile OpenTTD: The following compilers are known not to compile OpenTTD: -- Microsoft Visual C++ (MSVC) 2003 and earlier. +- Microsoft Visual C++ (MSVC) 2013 and earlier. + These old versions do not support modern C++ language features. - GNU Compiler Collection (GCC) 3.2 and earlier. These old versions fail due to OpenTTD's template usage. - GNU Compiler Collection (GCC) 4.5. It optimizes enums too aggressively. diff --git a/docs/Readme_Windows_MSVC.md b/docs/Readme_Windows_MSVC.md index c60904c72a..90ab2af657 100644 --- a/docs/Readme_Windows_MSVC.md +++ b/docs/Readme_Windows_MSVC.md @@ -18,7 +18,7 @@ done during installing Visual Studio, by selecting `Visual C++ ATL for x86 and x64` depending on your version). If not, you can get it at this location: -- [MS Windows Platform SDK](http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en) +- [MS Windows Platform SDK](https://developer.microsoft.com/en-US/windows/downloads/windows-10-sdk) Install the SDK by following the instructions as given. @@ -55,6 +55,7 @@ Open the appropriate `sln` (Solution) file for your version of Visual Studio: - VS 2015: projects/openttd_vs140.sln - VS 2017: projects/openttd_vs141.sln +- VS 2019: projects/openttd_vs142.sln Set the build mode to `Release` in `Build > Configuration manager > Active solution configuration`. diff --git a/projects/basesets_vs142.vcxproj b/projects/basesets_vs142.vcxproj new file mode 100644 index 0000000000..d483708aa7 --- /dev/null +++ b/projects/basesets_vs142.vcxproj @@ -0,0 +1,99 @@ + + + + + Debug + Win32 + + + + basesets + {E12E77CA-C0F1-4ADA-943F-4929274249D3} + basesets + MakeFileProj + + + + Utility + false + v142 + + + + + + + + + ..\src\lang\afrikaans.txt;..\src\lang\arabic_egypt.txt;..\src\lang\basque.txt;..\src\lang\belarusian.txt;..\src\lang\brazilian_portuguese.txt;..\src\lang\bulgarian.txt;..\src\lang\catalan.txt;..\src\lang\croatian.txt;..\src\lang\czech.txt;..\src\lang\danish.txt;..\src\lang\dutch.txt;..\src\lang\english.txt;..\src\lang\english_AU.txt;..\src\lang\english_US.txt;..\src\lang\esperanto.txt;..\src\lang\estonian.txt;..\src\lang\faroese.txt;..\src\lang\finnish.txt;..\src\lang\french.txt;..\src\lang\gaelic.txt;..\src\lang\galician.txt;..\src\lang\german.txt;..\src\lang\greek.txt;..\src\lang\hebrew.txt;..\src\lang\hungarian.txt;..\src\lang\icelandic.txt;..\src\lang\indonesian.txt;..\src\lang\irish.txt;..\src\lang\italian.txt;..\src\lang\japanese.txt;..\src\lang\korean.txt;..\src\lang\latin.txt;..\src\lang\latvian.txt;..\src\lang\lithuanian.txt;..\src\lang\luxembourgish.txt;..\src\lang\malay.txt;..\src\lang\norwegian_bokmal.txt;..\src\lang\norwegian_nynorsk.txt;..\src\lang\polish.txt;..\src\lang\portuguese.txt;..\src\lang\romanian.txt;..\src\lang\russian.txt;..\src\lang\serbian.txt;..\src\lang\simplified_chinese.txt;..\src\lang\slovak.txt;..\src\lang\slovenian.txt;..\src\lang\spanish.txt;..\src\lang\spanish_MX.txt;..\src\lang\swedish.txt;..\src\lang\tamil.txt;..\src\lang\thai.txt;..\src\lang\traditional_chinese.txt;..\src\lang\turkish.txt;..\src\lang\ukrainian.txt;..\src\lang\vietnamese.txt;..\src\lang\welsh.txt + + + ..\bin\baseset\ + ..\objs\baseset\ + + + + Generating no_music.obm baseset metadata file + cscript //nologo ..\media\baseset\translations.vbs "%(FullPath)" "$(OutputPath)no_music.obm" ..\src\lang ..\bin\baseset\orig_extra.grf + $(Langs);..\bin\baseset\orig_extra.grf;%(AdditionalInputs) + ..\bin\baseset\no_music.obm;%(Outputs) + + + Generating no_sound.obs baseset metadata file + cscript //nologo ..\media\baseset\translations.vbs "%(FullPath)" "$(OutputPath)no_sound.obs" ..\src\lang ..\bin\baseset\orig_extra.grf + $(Langs);..\bin\baseset\orig_extra.grf;%(AdditionalInputs) + ..\bin\baseset\no_sound.obs;%(Outputs) + + + Generating orig_dos.obg baseset metadata file + cscript //nologo ..\media\baseset\translations.vbs "%(FullPath)" "$(OutputPath)orig_dos.obg" ..\src\lang ..\bin\baseset\orig_extra.grf + $(Langs);..\bin\baseset\orig_extra.grf;%(AdditionalInputs) + ..\bin\baseset\orig_dos.obg;%(Outputs) + + + Generating orig_dos.obm baseset metadata file + cscript //nologo ..\media\baseset\translations.vbs "%(FullPath)" "$(OutputPath)orig_dos.obm" ..\src\lang ..\bin\baseset\orig_extra.grf + $(Langs);..\bin\baseset\orig_extra.grf;%(AdditionalInputs) + ..\bin\baseset\orig_dos.obm;%(Outputs) + + + Generating orig_dos.obs baseset metadata file + cscript //nologo ..\media\baseset\translations.vbs "%(FullPath)" "$(OutputPath)orig_dos.obs" ..\src\lang ..\bin\baseset\orig_extra.grf + $(Langs);..\bin\baseset\orig_extra.grf;%(AdditionalInputs) + ..\bin\baseset\orig_dos.obs;%(Outputs) + + + Generating orig_dos_de.obg baseset metadata file + cscript //nologo ..\media\baseset\translations.vbs "%(FullPath)" "$(OutputPath)orig_dos_de.obg" ..\src\lang ..\bin\baseset\orig_extra.grf + $(Langs);..\bin\baseset\orig_extra.grf;%(AdditionalInputs) + ..\bin\baseset\orig_dos_de.obg;%(Outputs) + + + Generating orig_tto.obm baseset metadata file + cscript //nologo ..\media\baseset\translations.vbs "%(FullPath)" "$(OutputPath)orig_tto.obm" ..\src\lang ..\bin\baseset\orig_extra.grf + $(Langs);..\bin\baseset\orig_extra.grf;%(AdditionalInputs) + ..\bin\baseset\orig_tto.obm;%(Outputs) + + + Generating orig_win.obg baseset metadata file + cscript //nologo ..\media\baseset\translations.vbs "%(FullPath)" "$(OutputPath)orig_win.obg" ..\src\lang ..\bin\baseset\orig_extra.grf + $(Langs);..\bin\baseset\orig_extra.grf;%(AdditionalInputs) + ..\bin\baseset\orig_win.obg;%(Outputs) + + + Generating orig_win.obm baseset metadata file + cscript //nologo ..\media\baseset\translations.vbs "%(FullPath)" "$(OutputPath)orig_win.obm" ..\src\lang ..\bin\baseset\orig_extra.grf + $(Langs);..\bin\baseset\orig_extra.grf;%(AdditionalInputs) + ..\bin\baseset\orig_win.obm;%(Outputs) + + + Generating orig_win.obs baseset metadata file + cscript //nologo ..\media\baseset\translations.vbs "%(FullPath)" "$(OutputPath)orig_win.obs" ..\src\lang ..\bin\baseset\orig_extra.grf + $(Langs);..\bin\baseset\orig_extra.grf;%(AdditionalInputs) + ..\bin\baseset\orig_win.obs;%(Outputs) + + + + + + diff --git a/projects/basesets_vs142.vcxproj.filters b/projects/basesets_vs142.vcxproj.filters new file mode 100644 index 0000000000..aa555f3fc3 --- /dev/null +++ b/projects/basesets_vs142.vcxproj.filters @@ -0,0 +1,40 @@ + + + + + {b5a3ac67-19a9-4276-80e9-2360367d2680} + + + + + Baseset Metadata + + + Baseset Metadata + + + Baseset Metadata + + + Baseset Metadata + + + Baseset Metadata + + + Baseset Metadata + + + Baseset Metadata + + + Baseset Metadata + + + Baseset Metadata + + + Baseset Metadata + + + diff --git a/projects/basesets_vs142.vcxproj.filters.in b/projects/basesets_vs142.vcxproj.filters.in new file mode 100644 index 0000000000..07bff4542f --- /dev/null +++ b/projects/basesets_vs142.vcxproj.filters.in @@ -0,0 +1,11 @@ + + + + + {b5a3ac67-19a9-4276-80e9-2360367d2680} + + + +!!FILES!! + + diff --git a/projects/basesets_vs142.vcxproj.in b/projects/basesets_vs142.vcxproj.in new file mode 100644 index 0000000000..9743d83e7a --- /dev/null +++ b/projects/basesets_vs142.vcxproj.in @@ -0,0 +1,40 @@ + + + + + Debug + Win32 + + + + basesets + {E12E77CA-C0F1-4ADA-943F-4929274249D3} + basesets + MakeFileProj + + + + Utility + false + v142 + + + + + + + + +!!FILTERS!! + + + ..\bin\baseset\ + ..\objs\baseset\ + + +!!FILES!! + + + + + diff --git a/projects/generate b/projects/generate index cb97ed3dea..595fa3acc6 100755 --- a/projects/generate +++ b/projects/generate @@ -22,6 +22,16 @@ then exit 1 fi +# openttd_vs142.sln is for MSVC 2019 +# openttd_vs142.vcxproj is for MSVC 2019 +# openttd_vs142.vcxproj.filters is for MSVC 2019 +# langs_vs142.vcxproj is for MSVC 2019 +# strgen_vs142.vcxproj is for MSVC 2019 +# strgen_vs142.vcxproj.filters is for MSVC 2019 +# generate_vs142.vcxproj is for MSVC 2019 +# version_vs142.vcxproj is for MSVC 2019 +# basesets_vs142.vcxproj is for MSVC 2019 + # openttd_vs141.sln is for MSVC 2017 # openttd_vs141.vcxproj is for MSVC 2017 # openttd_vs141.vcxproj.filters is for MSVC 2017 @@ -312,15 +322,23 @@ generate "$openttdvcxproj" "openttd_vs140.vcxproj" generate "$openttdfiles" "openttd_vs140.vcxproj.filters" "$openttdfilters" generate "$openttdvcxproj" "openttd_vs141.vcxproj" generate "$openttdfiles" "openttd_vs141.vcxproj.filters" "$openttdfilters" +generate "$openttdvcxproj" "openttd_vs142.vcxproj" +generate "$openttdfiles" "openttd_vs142.vcxproj.filters" "$openttdfilters" generate "$langvcxproj" "langs_vs140.vcxproj" generate "$langfiles" "langs_vs140.vcxproj.filters" generate "$langvcxproj" "langs_vs141.vcxproj" generate "$langfiles" "langs_vs141.vcxproj.filters" +generate "$langvcxproj" "langs_vs142.vcxproj" +generate "$langfiles" "langs_vs142.vcxproj.filters" generate "$settingsvcxproj" "settings_vs140.vcxproj" "$settingscommand" generate "$settingsfiles" "settings_vs140.vcxproj.filters" generate "$settingsvcxproj" "settings_vs141.vcxproj" "$settingscommand" generate "$settingsfiles" "settings_vs141.vcxproj.filters" +generate "$settingsvcxproj" "settings_vs142.vcxproj" "$settingscommand" +generate "$settingsfiles" "settings_vs142.vcxproj.filters" generate "$basesetvcxproj" "basesets_vs140.vcxproj" "$basesetlangs" generate "$basesetfiles" "basesets_vs140.vcxproj.filters" generate "$basesetvcxproj" "basesets_vs141.vcxproj" "$basesetlangs" generate "$basesetfiles" "basesets_vs141.vcxproj.filters" +generate "$basesetvcxproj" "basesets_vs142.vcxproj" "$basesetlangs" +generate "$basesetfiles" "basesets_vs142.vcxproj.filters" diff --git a/projects/generate.vbs b/projects/generate.vbs index d4b61a6c82..e8cf13d03d 100644 --- a/projects/generate.vbs +++ b/projects/generate.vbs @@ -10,6 +10,16 @@ Option Explicit Dim FSO Set FSO = CreateObject("Scripting.FileSystemObject") +' openttd_vs142.sln is for MSVC 2019 +' openttd_vs142.vcxproj is for MSVC 2019 +' openttd_vs142.vcxproj.filters is for MSVC 2019 +' langs_vs142.vcxproj is for MSVC 2019 +' strgen_vs142.vcxproj is for MSVC 2019 +' strgen_vs142.vcxproj.filters is for MSVC 2019 +' generate_vs142.vcxproj is for MSVC 2019 +' version_vs142.vcxproj is for MSVC 2019 +' basesets_vs142.vcxproj is for MSVC 2019 + ' openttd_vs141.sln is for MSVC 2017 ' openttd_vs141.vcxproj is for MSVC 2017 ' openttd_vs141.vcxproj.filters is for MSVC 2017 @@ -368,6 +378,8 @@ generate openttdvcxproj, ROOT_DIR & "/projects/openttd_vs140.vcxproj", Null generate openttdfiles, ROOT_DIR & "/projects/openttd_vs140.vcxproj.filters", openttdfilters generate openttdvcxproj, ROOT_DIR & "/projects/openttd_vs141.vcxproj", Null generate openttdfiles, ROOT_DIR & "/projects/openttd_vs141.vcxproj.filters", openttdfilters +generate openttdvcxproj, ROOT_DIR & "/projects/openttd_vs142.vcxproj", Null +generate openttdfiles, ROOT_DIR & "/projects/openttd_vs142.vcxproj.filters", openttdfilters Dim langvcxproj, langfiles load_lang_data ROOT_DIR & "/src/lang", langvcxproj, langfiles @@ -375,6 +387,8 @@ generate langvcxproj, ROOT_DIR & "/projects/langs_vs140.vcxproj", Null generate langfiles, ROOT_DIR & "/projects/langs_vs140.vcxproj.filters", Null generate langvcxproj, ROOT_DIR & "/projects/langs_vs141.vcxproj", Null generate langfiles, ROOT_DIR & "/projects/langs_vs141.vcxproj.filters", Null +generate langvcxproj, ROOT_DIR & "/projects/langs_vs142.vcxproj", Null +generate langfiles, ROOT_DIR & "/projects/langs_vs142.vcxproj.filters", Null Dim settingsvcxproj, settingscommand, settingsfiles load_settings_data ROOT_DIR & "/src/table", settingsvcxproj, settingscommand, settingsfiles @@ -382,6 +396,8 @@ generate settingsvcxproj, ROOT_DIR & "/projects/settings_vs140.vcxproj", setting generate settingsfiles, ROOT_DIR & "/projects/settings_vs140.vcxproj.filters", Null generate settingsvcxproj, ROOT_DIR & "/projects/settings_vs141.vcxproj", settingscommand generate settingsfiles, ROOT_DIR & "/projects/settings_vs141.vcxproj.filters", Null +generate settingsvcxproj, ROOT_DIR & "/projects/settings_vs142.vcxproj", settingscommand +generate settingsfiles, ROOT_DIR & "/projects/settings_vs142.vcxproj.filters", Null Dim basesetvcxproj, basesetfiles, basesetlangs load_baseset_data ROOT_DIR & "/media/baseset", ROOT_DIR & "/src/lang", basesetvcxproj, basesetfiles, basesetlangs @@ -389,3 +405,5 @@ generate basesetvcxproj, ROOT_DIR & "/projects/basesets_vs140.vcxproj", basesetl generate basesetfiles, ROOT_DIR & "/projects/basesets_vs140.vcxproj.filters", Null generate basesetvcxproj, ROOT_DIR & "/projects/basesets_vs141.vcxproj", basesetlangs generate basesetfiles, ROOT_DIR & "/projects/basesets_vs141.vcxproj.filters", Null +generate settingsvcxproj, ROOT_DIR & "/projects/basesets_vs142.vcxproj", settingscommand +generate settingsfiles, ROOT_DIR & "/projects/basesets_vs142.vcxproj.filters", Null diff --git a/projects/generate_vs142.vcxproj b/projects/generate_vs142.vcxproj new file mode 100644 index 0000000000..3e55d7a1d4 --- /dev/null +++ b/projects/generate_vs142.vcxproj @@ -0,0 +1,40 @@ + + + + + Debug + Win32 + + + + generate + {2F31FD79-D1AC-43C4-89F3-B0D5E4E53E34} + generate + 8.1 + + + + Utility + v142 + + + + + + + + + + + + + Document + Running %27generate.vbs%27 ... + cscript "$(ProjectDir)generate.vbs" + %(FullPath);%(AdditionalInputs) + + + + + + diff --git a/projects/langs_vs142.vcxproj b/projects/langs_vs142.vcxproj new file mode 100644 index 0000000000..0a11156bb0 --- /dev/null +++ b/projects/langs_vs142.vcxproj @@ -0,0 +1,390 @@ + + + + + Debug + Win32 + + + + langs + {0F066B23-18DF-4284-8265-F4A5E7E3B966} + langs + MakeFileProj + + + + Utility + false + v142 + + + + + + + + + + ..\bin\lang\ + ..\objs\langs\ + + + + Generating strings.h + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\objs\langs\table + + + ./langs.tlb + + + + + + + Generating english language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\english.lng;%(Outputs) + + + Generating afrikaans language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\afrikaans.lng;%(Outputs) + + + Generating arabic_egypt language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\arabic_egypt.lng;%(Outputs) + + + Generating basque language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\basque.lng;%(Outputs) + + + Generating belarusian language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\belarusian.lng;%(Outputs) + + + Generating brazilian_portuguese language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\brazilian_portuguese.lng;%(Outputs) + + + Generating bulgarian language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\bulgarian.lng;%(Outputs) + + + Generating catalan language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\catalan.lng;%(Outputs) + + + Generating croatian language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\croatian.lng;%(Outputs) + + + Generating czech language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\czech.lng;%(Outputs) + + + Generating danish language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\danish.lng;%(Outputs) + + + Generating dutch language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\dutch.lng;%(Outputs) + + + Generating english_AU language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\english_AU.lng;%(Outputs) + + + Generating english_US language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\english_US.lng;%(Outputs) + + + Generating esperanto language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\esperanto.lng;%(Outputs) + + + Generating estonian language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\estonian.lng;%(Outputs) + + + Generating faroese language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\faroese.lng;%(Outputs) + + + Generating finnish language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\finnish.lng;%(Outputs) + + + Generating french language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\french.lng;%(Outputs) + + + Generating gaelic language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\gaelic.lng;%(Outputs) + + + Generating galician language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\galician.lng;%(Outputs) + + + Generating german language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\german.lng;%(Outputs) + + + Generating greek language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\greek.lng;%(Outputs) + + + Generating hebrew language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\hebrew.lng;%(Outputs) + + + Generating hungarian language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\hungarian.lng;%(Outputs) + + + Generating icelandic language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\icelandic.lng;%(Outputs) + + + Generating indonesian language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\indonesian.lng;%(Outputs) + + + Generating irish language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\irish.lng;%(Outputs) + + + Generating italian language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\italian.lng;%(Outputs) + + + Generating japanese language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\japanese.lng;%(Outputs) + + + Generating korean language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\korean.lng;%(Outputs) + + + Generating latin language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\latin.lng;%(Outputs) + + + Generating latvian language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\latvian.lng;%(Outputs) + + + Generating lithuanian language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\lithuanian.lng;%(Outputs) + + + Generating luxembourgish language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\luxembourgish.lng;%(Outputs) + + + Generating malay language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\malay.lng;%(Outputs) + + + Generating norwegian_bokmal language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\norwegian_bokmal.lng;%(Outputs) + + + Generating norwegian_nynorsk language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\norwegian_nynorsk.lng;%(Outputs) + + + Generating polish language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\polish.lng;%(Outputs) + + + Generating portuguese language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\portuguese.lng;%(Outputs) + + + Generating romanian language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\romanian.lng;%(Outputs) + + + Generating russian language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\russian.lng;%(Outputs) + + + Generating serbian language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\serbian.lng;%(Outputs) + + + Generating simplified_chinese language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\simplified_chinese.lng;%(Outputs) + + + Generating slovak language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\slovak.lng;%(Outputs) + + + Generating slovenian language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\slovenian.lng;%(Outputs) + + + Generating spanish language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\spanish.lng;%(Outputs) + + + Generating spanish_MX language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\spanish_MX.lng;%(Outputs) + + + Generating swedish language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\swedish.lng;%(Outputs) + + + Generating tamil language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\tamil.lng;%(Outputs) + + + Generating thai language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\thai.lng;%(Outputs) + + + Generating traditional_chinese language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\traditional_chinese.lng;%(Outputs) + + + Generating turkish language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\turkish.lng;%(Outputs) + + + Generating ukrainian language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\ukrainian.lng;%(Outputs) + + + Generating vietnamese language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\vietnamese.lng;%(Outputs) + + + Generating welsh language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\welsh.lng;%(Outputs) + + + + + {a133a442-bd0a-4ade-b117-ad7545e4bdd1} + false + + + + + + diff --git a/projects/langs_vs142.vcxproj.filters b/projects/langs_vs142.vcxproj.filters new file mode 100644 index 0000000000..bf5257ec82 --- /dev/null +++ b/projects/langs_vs142.vcxproj.filters @@ -0,0 +1,176 @@ + + + + + {2a164580-9033-4a01-974b-b21da507efda} + + + + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + Translations + + + diff --git a/projects/langs_vs142.vcxproj.filters.in b/projects/langs_vs142.vcxproj.filters.in new file mode 100644 index 0000000000..0d60ee9595 --- /dev/null +++ b/projects/langs_vs142.vcxproj.filters.in @@ -0,0 +1,12 @@ + + + + + {2a164580-9033-4a01-974b-b21da507efda} + + + + +!!FILES!! + + diff --git a/projects/langs_vs142.vcxproj.in b/projects/langs_vs142.vcxproj.in new file mode 100644 index 0000000000..f24c7cad78 --- /dev/null +++ b/projects/langs_vs142.vcxproj.in @@ -0,0 +1,61 @@ + + + + + Debug + Win32 + + + + langs + {0F066B23-18DF-4284-8265-F4A5E7E3B966} + langs + MakeFileProj + + + + Utility + false + v142 + + + + + + + + + + ..\bin\lang\ + ..\objs\langs\ + + + + Generating strings.h + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\objs\langs\table + + + ./langs.tlb + + + + + + + Generating english language file + ..\objs\strgen\strgen.exe -s ..\src\lang -d ..\bin\lang "%(FullPath)" + ..\src\lang\english.txt;..\objs\strgen\strgen.exe;%(AdditionalInputs) + ..\bin\lang\english.lng;%(Outputs) + +!!FILES!! + + + + {a133a442-bd0a-4ade-b117-ad7545e4bdd1} + false + + + + + + diff --git a/projects/openttd_vs142.sln b/projects/openttd_vs142.sln new file mode 100644 index 0000000000..f07fb388d5 --- /dev/null +++ b/projects/openttd_vs142.sln @@ -0,0 +1,103 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.23107.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "openttd", "openttd_vs142.vcxproj", "{668328A0-B40E-4CDB-BD72-D0064424414A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "strgen", "strgen_vs142.vcxproj", "{A133A442-BD0A-4ADE-B117-AD7545E4BDD1}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "langs", "langs_vs142.vcxproj", "{0F066B23-18DF-4284-8265-F4A5E7E3B966}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "version", "version_vs142.vcxproj", "{1A2B3C5E-1C23-41A5-9C9B-ACBA2AA75FEC}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "generate", "generate_vs142.vcxproj", "{2F31FD79-D1AC-43C4-89F3-B0D5E4E53E34}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "settings", "settings_vs142.vcxproj", "{0817F629-589E-4A3B-B81A-8647BC571E35}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "settingsgen", "settingsgen_vs142.vcxproj", "{E9548DE9-F089-49B7-93A6-30BE2CC311C7}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "regression", "regression_vs142.vcxproj", "{4712B013-437D-42CE-947F-DEBABA15261F}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "basesets", "basesets_vs142.vcxproj", "{E12E77CA-C0F1-4ADA-943F-4929274249D3}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {668328A0-B40E-4CDB-BD72-D0064424414A}.Debug|Win32.ActiveCfg = Debug|Win32 + {668328A0-B40E-4CDB-BD72-D0064424414A}.Debug|Win32.Build.0 = Debug|Win32 + {668328A0-B40E-4CDB-BD72-D0064424414A}.Debug|x64.ActiveCfg = Debug|x64 + {668328A0-B40E-4CDB-BD72-D0064424414A}.Debug|x64.Build.0 = Debug|x64 + {668328A0-B40E-4CDB-BD72-D0064424414A}.Release|Win32.ActiveCfg = Release|Win32 + {668328A0-B40E-4CDB-BD72-D0064424414A}.Release|Win32.Build.0 = Release|Win32 + {668328A0-B40E-4CDB-BD72-D0064424414A}.Release|x64.ActiveCfg = Release|x64 + {668328A0-B40E-4CDB-BD72-D0064424414A}.Release|x64.Build.0 = Release|x64 + {A133A442-BD0A-4ADE-B117-AD7545E4BDD1}.Debug|Win32.ActiveCfg = Debug|Win32 + {A133A442-BD0A-4ADE-B117-AD7545E4BDD1}.Debug|Win32.Build.0 = Debug|Win32 + {A133A442-BD0A-4ADE-B117-AD7545E4BDD1}.Debug|x64.ActiveCfg = Debug|Win32 + {A133A442-BD0A-4ADE-B117-AD7545E4BDD1}.Debug|x64.Build.0 = Debug|Win32 + {A133A442-BD0A-4ADE-B117-AD7545E4BDD1}.Release|Win32.ActiveCfg = Debug|Win32 + {A133A442-BD0A-4ADE-B117-AD7545E4BDD1}.Release|Win32.Build.0 = Debug|Win32 + {A133A442-BD0A-4ADE-B117-AD7545E4BDD1}.Release|x64.ActiveCfg = Debug|Win32 + {A133A442-BD0A-4ADE-B117-AD7545E4BDD1}.Release|x64.Build.0 = Debug|Win32 + {0F066B23-18DF-4284-8265-F4A5E7E3B966}.Debug|Win32.ActiveCfg = Debug|Win32 + {0F066B23-18DF-4284-8265-F4A5E7E3B966}.Debug|Win32.Build.0 = Debug|Win32 + {0F066B23-18DF-4284-8265-F4A5E7E3B966}.Debug|x64.ActiveCfg = Debug|Win32 + {0F066B23-18DF-4284-8265-F4A5E7E3B966}.Debug|x64.Build.0 = Debug|Win32 + {0F066B23-18DF-4284-8265-F4A5E7E3B966}.Release|Win32.ActiveCfg = Debug|Win32 + {0F066B23-18DF-4284-8265-F4A5E7E3B966}.Release|Win32.Build.0 = Debug|Win32 + {0F066B23-18DF-4284-8265-F4A5E7E3B966}.Release|x64.ActiveCfg = Debug|Win32 + {0F066B23-18DF-4284-8265-F4A5E7E3B966}.Release|x64.Build.0 = Debug|Win32 + {1A2B3C5E-1C23-41A5-9C9B-ACBA2AA75FEC}.Debug|Win32.ActiveCfg = Debug|Win32 + {1A2B3C5E-1C23-41A5-9C9B-ACBA2AA75FEC}.Debug|Win32.Build.0 = Debug|Win32 + {1A2B3C5E-1C23-41A5-9C9B-ACBA2AA75FEC}.Debug|x64.ActiveCfg = Debug|Win32 + {1A2B3C5E-1C23-41A5-9C9B-ACBA2AA75FEC}.Debug|x64.Build.0 = Debug|Win32 + {1A2B3C5E-1C23-41A5-9C9B-ACBA2AA75FEC}.Release|Win32.ActiveCfg = Debug|Win32 + {1A2B3C5E-1C23-41A5-9C9B-ACBA2AA75FEC}.Release|Win32.Build.0 = Debug|Win32 + {1A2B3C5E-1C23-41A5-9C9B-ACBA2AA75FEC}.Release|x64.ActiveCfg = Debug|Win32 + {1A2B3C5E-1C23-41A5-9C9B-ACBA2AA75FEC}.Release|x64.Build.0 = Debug|Win32 + {2F31FD79-D1AC-43C4-89F3-B0D5E4E53E34}.Debug|Win32.ActiveCfg = Debug|Win32 + {2F31FD79-D1AC-43C4-89F3-B0D5E4E53E34}.Debug|x64.ActiveCfg = Debug|Win32 + {2F31FD79-D1AC-43C4-89F3-B0D5E4E53E34}.Release|Win32.ActiveCfg = Debug|Win32 + {2F31FD79-D1AC-43C4-89F3-B0D5E4E53E34}.Release|x64.ActiveCfg = Debug|Win32 + {0817F629-589E-4A3B-B81A-8647BC571E35}.Debug|Win32.ActiveCfg = Debug|Win32 + {0817F629-589E-4A3B-B81A-8647BC571E35}.Debug|Win32.Build.0 = Debug|Win32 + {0817F629-589E-4A3B-B81A-8647BC571E35}.Debug|x64.ActiveCfg = Debug|Win32 + {0817F629-589E-4A3B-B81A-8647BC571E35}.Debug|x64.Build.0 = Debug|Win32 + {0817F629-589E-4A3B-B81A-8647BC571E35}.Release|Win32.ActiveCfg = Debug|Win32 + {0817F629-589E-4A3B-B81A-8647BC571E35}.Release|Win32.Build.0 = Debug|Win32 + {0817F629-589E-4A3B-B81A-8647BC571E35}.Release|x64.ActiveCfg = Debug|Win32 + {0817F629-589E-4A3B-B81A-8647BC571E35}.Release|x64.Build.0 = Debug|Win32 + {E9548DE9-F089-49B7-93A6-30BE2CC311C7}.Debug|Win32.ActiveCfg = Debug|Win32 + {E9548DE9-F089-49B7-93A6-30BE2CC311C7}.Debug|Win32.Build.0 = Debug|Win32 + {E9548DE9-F089-49B7-93A6-30BE2CC311C7}.Debug|x64.ActiveCfg = Debug|Win32 + {E9548DE9-F089-49B7-93A6-30BE2CC311C7}.Debug|x64.Build.0 = Debug|Win32 + {E9548DE9-F089-49B7-93A6-30BE2CC311C7}.Release|Win32.ActiveCfg = Debug|Win32 + {E9548DE9-F089-49B7-93A6-30BE2CC311C7}.Release|Win32.Build.0 = Debug|Win32 + {E9548DE9-F089-49B7-93A6-30BE2CC311C7}.Release|x64.ActiveCfg = Debug|Win32 + {E9548DE9-F089-49B7-93A6-30BE2CC311C7}.Release|x64.Build.0 = Debug|Win32 + {4712B013-437D-42CE-947F-DEBABA15261F}.Debug|Win32.ActiveCfg = Debug|Win32 + {4712B013-437D-42CE-947F-DEBABA15261F}.Debug|x64.ActiveCfg = Debug|Win32 + {4712B013-437D-42CE-947F-DEBABA15261F}.Release|Win32.ActiveCfg = Debug|Win32 + {4712B013-437D-42CE-947F-DEBABA15261F}.Release|x64.ActiveCfg = Debug|Win32 + {E12E77CA-C0F1-4ADA-943F-4929274249D3}.Debug|Win32.ActiveCfg = Debug|Win32 + {E12E77CA-C0F1-4ADA-943F-4929274249D3}.Debug|Win32.Build.0 = Debug|Win32 + {E12E77CA-C0F1-4ADA-943F-4929274249D3}.Debug|x64.ActiveCfg = Debug|Win32 + {E12E77CA-C0F1-4ADA-943F-4929274249D3}.Debug|x64.Build.0 = Debug|Win32 + {E12E77CA-C0F1-4ADA-943F-4929274249D3}.Release|Win32.ActiveCfg = Debug|Win32 + {E12E77CA-C0F1-4ADA-943F-4929274249D3}.Release|Win32.Build.0 = Debug|Win32 + {E12E77CA-C0F1-4ADA-943F-4929274249D3}.Release|x64.ActiveCfg = Debug|Win32 + {E12E77CA-C0F1-4ADA-943F-4929274249D3}.Release|x64.Build.0 = Debug|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(DPCodeReviewSolutionGUID) = preSolution + DPCodeReviewSolutionGUID = {00000000-0000-0000-0000-000000000000} + EndGlobalSection +EndGlobal diff --git a/projects/openttd_vs142.vcxproj b/projects/openttd_vs142.vcxproj new file mode 100644 index 0000000000..34f7c5f280 --- /dev/null +++ b/projects/openttd_vs142.vcxproj @@ -0,0 +1,1370 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + openttd + {668328A0-B40E-4CDB-BD72-D0064424414A} + openttd + x86-windows-static + x64-windows-static + + + + Application + false + Unicode + v142 + + + Application + false + Unicode + true + v142 + + + Application + false + Unicode + v142 + + + Application + false + Unicode + true + v142 + + + + + + + + + + + + + + + + + $(SolutionDir)..\objs\$(Platform)\$(Configuration)\ + $(SolutionDir)..\objs\$(Platform)\$(Configuration)\ + false + $(SolutionDir)..\objs\$(Platform)\$(Configuration)\ + $(SolutionDir)..\objs\$(Platform)\$(Configuration)\ + + $(SolutionDir)..\objs\$(Platform)\$(Configuration)\ + false + $(SolutionDir)..\objs\$(Platform)\$(Configuration)\ + $(SolutionDir)..\objs\$(Platform)\$(Configuration)\ + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + $(SolutionDir)..\objs\$(Platform)\$(Configuration)\ + $(ProjectDir)..\bin + + + + .\Release/openttd.tlb + + + + + /J /Zc:throwingNew /std:c++latest %(AdditionalOptions) + Full + AnySuitable + true + Size + true + ..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories) + NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;WITH_PNG;WITH_FREETYPE;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";WITH_ASSERT;%(PreprocessorDefinitions) + true + Sync + MultiThreaded + 4Bytes + false + true + + + + + + + All + $(IntDir) + $(IntDir) + $(IntDir)$(TargetName).pdb + Level3 + false + true + ProgramDatabase + FastCall + Default + true + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0809 + + + winmm.lib;ws2_32.lib;imm32.lib;%(AdditionalDependencies) + true + %(IgnoreSpecificDefaultLibraries) + true + Windows + 1048576 + 1048576 + true + false + + + MachineX86 + true + 5.01 + + + os_versions.manifest + PerMonitorHighDPIAware + + + copy "$(OutDir)$(TargetName)$(TargetExt)" "$(SolutionDir)..\bin\$(TargetName)$(TargetExt)" + + + + + .\Debug/openttd.tlb + + + + + /J /Zc:throwingNew /std:c++latest %(AdditionalOptions) + Disabled + true + ..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories) + _DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;WITH_PNG;WITH_FREETYPE;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";%(PreprocessorDefinitions) + EnableFastChecks + MultiThreadedDebug + + + $(IntDir) + $(IntDir) + $(IntDir)$(TargetName).pdb + Level3 + false + true + ProgramDatabase + FastCall + Default + true + true + + + _DEBUG;%(PreprocessorDefinitions) + 0x0809 + + + winmm.lib;ws2_32.lib;imm32.lib;%(AdditionalDependencies) + true + LIBCMT.lib;%(IgnoreSpecificDefaultLibraries) + true + Windows + 1048576 + 1048576 + false + + + MachineX86 + 5.01 + + + os_versions.manifest + PerMonitorHighDPIAware + + + copy "$(OutDir)$(TargetName)$(TargetExt)" "$(SolutionDir)..\bin\$(TargetName)$(TargetExt)" + + + + + X64 + .\Release/openttd.tlb + + + + + /J /Zc:throwingNew /std:c++latest %(AdditionalOptions) + Full + AnySuitable + true + Size + true + ..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories) + NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;WITH_PNG;WITH_FREETYPE;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;WITH_ASSERT;%(PreprocessorDefinitions) + true + Sync + MultiThreaded + Default + false + true + + + + + + + All + $(IntDir) + $(IntDir) + $(IntDir)$(TargetName).pdb + Level3 + false + true + ProgramDatabase + FastCall + Default + true + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0809 + + + winmm.lib;ws2_32.lib;imm32.lib;%(AdditionalDependencies) + true + %(IgnoreSpecificDefaultLibraries) + true + Windows + 1048576 + 1048576 + true + MachineX64 + true + 5.02 + + + os_versions.manifest + PerMonitorHighDPIAware + + + copy "$(OutDir)$(TargetName)$(TargetExt)" "$(SolutionDir)..\bin\$(TargetName)$(TargetExt)" + + + + + X64 + .\Debug/openttd.tlb + + + + + /J /Zc:throwingNew /std:c++latest %(AdditionalOptions) + Disabled + true + ..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories) + _DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;WITH_PNG;WITH_FREETYPE;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;%(PreprocessorDefinitions) + EnableFastChecks + MultiThreadedDebug + + + + + + + $(IntDir) + $(IntDir) + $(IntDir)$(TargetName).pdb + Level3 + false + true + ProgramDatabase + Cdecl + Default + true + true + + + _DEBUG;%(PreprocessorDefinitions) + 0x0809 + + + winmm.lib;ws2_32.lib;imm32.lib;%(AdditionalDependencies) + true + LIBCMT.lib;%(IgnoreSpecificDefaultLibraries) + true + Windows + 1048576 + 1048576 + MachineX64 + 5.02 + + + os_versions.manifest + PerMonitorHighDPIAware + + + copy "$(OutDir)$(TargetName)$(TargetExt)" "$(SolutionDir)..\bin\$(TargetName)$(TargetExt)" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {0f066b23-18df-4284-8265-f4a5e7e3b966} + false + + + {e9548de9-f089-49b7-93a6-30be2cc311c7} + false + + + {0817f629-589e-4a3b-b81a-8647bc571e35} + false + + + {a133a442-bd0a-4ade-b117-ad7545e4bdd1} + false + + + {1a2b3c5e-1c23-41a5-9c9b-acba2aa75fec} + false + + + {e12e77ca-c0f1-4ada-943f-4929274249d3} + false + + + + diff --git a/projects/openttd_vs142.vcxproj.filters b/projects/openttd_vs142.vcxproj.filters new file mode 100644 index 0000000000..e93c94f1f7 --- /dev/null +++ b/projects/openttd_vs142.vcxproj.filters @@ -0,0 +1,3101 @@ + + + + + {c76ff9f1-1e62-46d8-8d55-000000000000} + + + {c76ff9f1-1e62-46d8-8d55-000000000001} + + + {c76ff9f1-1e62-46d8-8d55-000000000002} + + + {c76ff9f1-1e62-46d8-8d55-000000000003} + + + {c76ff9f1-1e62-46d8-8d55-000000000004} + + + {c76ff9f1-1e62-46d8-8d55-000000000005} + + + {c76ff9f1-1e62-46d8-8d55-000000000006} + + + {c76ff9f1-1e62-46d8-8d55-000000000007} + + + {c76ff9f1-1e62-46d8-8d55-000000000008} + + + {c76ff9f1-1e62-46d8-8d55-000000000009} + + + {c76ff9f1-1e62-46d8-8d55-000000000010} + + + {c76ff9f1-1e62-46d8-8d55-000000000011} + + + {c76ff9f1-1e62-46d8-8d55-000000000012} + + + {c76ff9f1-1e62-46d8-8d55-000000000013} + + + {c76ff9f1-1e62-46d8-8d55-000000000014} + + + {c76ff9f1-1e62-46d8-8d55-000000000015} + + + {c76ff9f1-1e62-46d8-8d55-000000000016} + + + {c76ff9f1-1e62-46d8-8d55-000000000017} + + + {c76ff9f1-1e62-46d8-8d55-000000000018} + + + {c76ff9f1-1e62-46d8-8d55-000000000019} + + + {c76ff9f1-1e62-46d8-8d55-000000000020} + + + {c76ff9f1-1e62-46d8-8d55-000000000021} + + + {c76ff9f1-1e62-46d8-8d55-000000000022} + + + {c76ff9f1-1e62-46d8-8d55-000000000023} + + + {c76ff9f1-1e62-46d8-8d55-000000000024} + + + {c76ff9f1-1e62-46d8-8d55-000000000025} + + + {c76ff9f1-1e62-46d8-8d55-000000000026} + + + {c76ff9f1-1e62-46d8-8d55-000000000027} + + + {c76ff9f1-1e62-46d8-8d55-000000000028} + + + {c76ff9f1-1e62-46d8-8d55-000000000029} + + + {c76ff9f1-1e62-46d8-8d55-000000000030} + + + {c76ff9f1-1e62-46d8-8d55-000000000031} + + + {c76ff9f1-1e62-46d8-8d55-000000000032} + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + Core Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + GUI Source Code + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Widgets + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Command handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Save/Load handlers + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + Tables + + + MD5 + + + MD5 + + + Script + + + Script + + + Script + + + Script + + + Script + + + Script + + + Script + + + Script + + + Script + + + Script + + + Script + + + Script + + + Script + + + Script + + + Script + + + Script + + + Script + + + Script + + + Script + + + Squirrel + + + Squirrel + + + Squirrel + + + Squirrel + + + Squirrel + + + Squirrel + + + Squirrel + + + Squirrel + + + Squirrel + + + Squirrel + + + Squirrel + + + Squirrel + + + Squirrel + + + Squirrel + + + Squirrel headers + + + Squirrel headers + + + Squirrel headers + + + Squirrel headers + + + Squirrel headers + + + Squirrel headers + + + Squirrel headers + + + Squirrel headers + + + Squirrel headers + + + Squirrel headers + + + Squirrel headers + + + Squirrel headers + + + Squirrel headers + + + Squirrel headers + + + Squirrel headers + + + Squirrel headers + + + Squirrel headers + + + Squirrel headers + + + Squirrel headers + + + Squirrel headers + + + AI Core + + + AI Core + + + AI Core + + + AI Core + + + AI Core + + + AI Core + + + AI Core + + + AI Core + + + AI Core + + + AI Core + + + AI Core + + + AI Core + + + AI API + + + Game API + + + Game Core + + + Game Core + + + Game Core + + + Game Core + + + Game Core + + + Game Core + + + Game Core + + + Game Core + + + Game Core + + + Game Core + + + Game Core + + + Game Core + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Script API Implementation + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Blitters + + + Drivers + + + Drivers + + + Drivers + + + Sprite loaders + + + Sprite loaders + + + Sprite loaders + + + NewGRF + + + NewGRF + + + NewGRF + + + NewGRF + + + NewGRF + + + NewGRF + + + NewGRF + + + NewGRF + + + NewGRF + + + NewGRF + + + NewGRF + + + NewGRF + + + NewGRF + + + NewGRF + + + NewGRF + + + NewGRF + + + NewGRF + + + NewGRF + + + NewGRF + + + NewGRF + + + NewGRF + + + Map Accessors + + + Map Accessors + + + Map Accessors + + + Map Accessors + + + Map Accessors + + + Map Accessors + + + Map Accessors + + + Map Accessors + + + Map Accessors + + + Map Accessors + + + Map Accessors + + + Map Accessors + + + Map Accessors + + + Map Accessors + + + Map Accessors + + + Map Accessors + + + Map Accessors + + + Misc + + + Misc + + + Misc + + + Misc + + + Misc + + + Misc + + + Misc + + + Misc + + + Misc + + + Misc + + + Misc + + + Misc + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Network Core + + + Pathfinder + + + Pathfinder + + + Pathfinder + + + Pathfinder + + + Pathfinder + + + Pathfinder + + + NPF + + + NPF + + + NPF + + + NPF + + + NPF + + + NPF + + + YAPF + + + YAPF + + + YAPF + + + YAPF + + + YAPF + + + YAPF + + + YAPF + + + YAPF + + + YAPF + + + YAPF + + + YAPF + + + YAPF + + + YAPF + + + YAPF + + + YAPF + + + YAPF + + + YAPF + + + YAPF + + + Video + + + Video + + + Video + + + Video + + + Music + + + Music + + + Music + + + Music + + + Sound + + + Sound + + + Sound + + + Sound + + + Windows files + + + Windows files + + + Windows files + + + Windows files + + + Threading + + + Threading + + + + + + + diff --git a/projects/openttd_vs142.vcxproj.filters.in b/projects/openttd_vs142.vcxproj.filters.in new file mode 100644 index 0000000000..126bd61459 --- /dev/null +++ b/projects/openttd_vs142.vcxproj.filters.in @@ -0,0 +1,13 @@ + + + +!!FILTERS!! + + +!!FILES!! + + + + + + diff --git a/projects/openttd_vs142.vcxproj.in b/projects/openttd_vs142.vcxproj.in new file mode 100644 index 0000000000..91689e8bde --- /dev/null +++ b/projects/openttd_vs142.vcxproj.in @@ -0,0 +1,374 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + openttd + {668328A0-B40E-4CDB-BD72-D0064424414A} + openttd + x86-windows-static + x64-windows-static + + + + Application + false + Unicode + v142 + + + Application + false + Unicode + true + v142 + + + Application + false + Unicode + v142 + + + Application + false + Unicode + true + v142 + + + + + + + + + + + + + + + + + $(SolutionDir)..\objs\$(Platform)\$(Configuration)\ + $(SolutionDir)..\objs\$(Platform)\$(Configuration)\ + false + $(SolutionDir)..\objs\$(Platform)\$(Configuration)\ + $(SolutionDir)..\objs\$(Platform)\$(Configuration)\ + + $(SolutionDir)..\objs\$(Platform)\$(Configuration)\ + false + $(SolutionDir)..\objs\$(Platform)\$(Configuration)\ + $(SolutionDir)..\objs\$(Platform)\$(Configuration)\ + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + $(SolutionDir)..\objs\$(Platform)\$(Configuration)\ + $(ProjectDir)..\bin + + + + .\Release/openttd.tlb + + + + + /J /Zc:throwingNew /std:c++latest %(AdditionalOptions) + Full + AnySuitable + true + Size + true + ..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories) + NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;WITH_PNG;WITH_FREETYPE;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";WITH_ASSERT;%(PreprocessorDefinitions) + true + Sync + MultiThreaded + 4Bytes + false + true + + + + + + + All + $(IntDir) + $(IntDir) + $(IntDir)$(TargetName).pdb + Level3 + false + true + ProgramDatabase + FastCall + Default + true + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0809 + + + winmm.lib;ws2_32.lib;imm32.lib;%(AdditionalDependencies) + true + %(IgnoreSpecificDefaultLibraries) + true + Windows + 1048576 + 1048576 + true + false + + + MachineX86 + true + 5.01 + + + os_versions.manifest + PerMonitorHighDPIAware + + + copy "$(OutDir)$(TargetName)$(TargetExt)" "$(SolutionDir)..\bin\$(TargetName)$(TargetExt)" + + + + + .\Debug/openttd.tlb + + + + + /J /Zc:throwingNew /std:c++latest %(AdditionalOptions) + Disabled + true + ..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories) + _DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;WITH_PNG;WITH_FREETYPE;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";%(PreprocessorDefinitions) + EnableFastChecks + MultiThreadedDebug + + + $(IntDir) + $(IntDir) + $(IntDir)$(TargetName).pdb + Level3 + false + true + ProgramDatabase + FastCall + Default + true + true + + + _DEBUG;%(PreprocessorDefinitions) + 0x0809 + + + winmm.lib;ws2_32.lib;imm32.lib;%(AdditionalDependencies) + true + LIBCMT.lib;%(IgnoreSpecificDefaultLibraries) + true + Windows + 1048576 + 1048576 + false + + + MachineX86 + 5.01 + + + os_versions.manifest + PerMonitorHighDPIAware + + + copy "$(OutDir)$(TargetName)$(TargetExt)" "$(SolutionDir)..\bin\$(TargetName)$(TargetExt)" + + + + + X64 + .\Release/openttd.tlb + + + + + /J /Zc:throwingNew /std:c++latest %(AdditionalOptions) + Full + AnySuitable + true + Size + true + ..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories) + NDEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;WITH_PNG;WITH_FREETYPE;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;WITH_ASSERT;%(PreprocessorDefinitions) + true + Sync + MultiThreaded + Default + false + true + + + + + + + All + $(IntDir) + $(IntDir) + $(IntDir)$(TargetName).pdb + Level3 + false + true + ProgramDatabase + FastCall + Default + true + true + + + NDEBUG;%(PreprocessorDefinitions) + 0x0809 + + + winmm.lib;ws2_32.lib;imm32.lib;%(AdditionalDependencies) + true + %(IgnoreSpecificDefaultLibraries) + true + Windows + 1048576 + 1048576 + true + MachineX64 + true + 5.02 + + + os_versions.manifest + PerMonitorHighDPIAware + + + copy "$(OutDir)$(TargetName)$(TargetExt)" "$(SolutionDir)..\bin\$(TargetName)$(TargetExt)" + + + + + X64 + .\Debug/openttd.tlb + + + + + /J /Zc:throwingNew /std:c++latest %(AdditionalOptions) + Disabled + true + ..\objs\langs;..\objs\settings;..\src\3rdparty\squirrel\include;%(AdditionalIncludeDirectories) + _DEBUG;_CONSOLE;WIN32_ENABLE_DIRECTMUSIC_SUPPORT;WITH_XAUDIO2;WITH_SSE;WITH_ZLIB;WITH_LZO;WITH_LZMA;WITH_PNG;WITH_FREETYPE;WITH_UNISCRIBE;ENABLE_NETWORK;WITH_PERSONAL_DIR;PERSONAL_DIR="OpenTTD";_SQ64;%(PreprocessorDefinitions) + EnableFastChecks + MultiThreadedDebug + + + + + + + $(IntDir) + $(IntDir) + $(IntDir)$(TargetName).pdb + Level3 + false + true + ProgramDatabase + Cdecl + Default + true + true + + + _DEBUG;%(PreprocessorDefinitions) + 0x0809 + + + winmm.lib;ws2_32.lib;imm32.lib;%(AdditionalDependencies) + true + LIBCMT.lib;%(IgnoreSpecificDefaultLibraries) + true + Windows + 1048576 + 1048576 + MachineX64 + 5.02 + + + os_versions.manifest + PerMonitorHighDPIAware + + + copy "$(OutDir)$(TargetName)$(TargetExt)" "$(SolutionDir)..\bin\$(TargetName)$(TargetExt)" + + + +!!FILES!! + + + + + + + + {0f066b23-18df-4284-8265-f4a5e7e3b966} + false + + + {e9548de9-f089-49b7-93a6-30be2cc311c7} + false + + + {0817f629-589e-4a3b-b81a-8647bc571e35} + false + + + {a133a442-bd0a-4ade-b117-ad7545e4bdd1} + false + + + {1a2b3c5e-1c23-41a5-9c9b-acba2aa75fec} + false + + + {e12e77ca-c0f1-4ada-943f-4929274249d3} + false + + + + diff --git a/projects/regression_vs142.vcxproj b/projects/regression_vs142.vcxproj new file mode 100644 index 0000000000..3ddcc6f37a --- /dev/null +++ b/projects/regression_vs142.vcxproj @@ -0,0 +1,41 @@ + + + + + Debug + Win32 + + + + {4712B013-437D-42CE-947F-DEBABA15261F} + regression + regression + + + + Makefile + v142 + + + + + + + + + + + + call regression.bat + call regression.bat + del ..\bin\tmp.regression + + + + {668328a0-b40e-4cdb-bd72-d0064424414a} + + + + + + diff --git a/projects/settings_vs142.vcxproj b/projects/settings_vs142.vcxproj new file mode 100644 index 0000000000..a2dda134b5 --- /dev/null +++ b/projects/settings_vs142.vcxproj @@ -0,0 +1,60 @@ + + + + + Debug + Win32 + + + + settings + {0817F629-589E-4A3B-B81A-8647BC571E35} + settings + + + + Makefile + v142 + + + + + + + + + +..\objs\settings\settings_gen.exe -o ..\objs\settings\table\settings.h -b ..\src\table\settings.h.preamble -a ..\src\table\settings.h.postamble ..\src\table\company_settings.ini ..\src\table\currency_settings.ini ..\src\table\gameopt_settings.ini ..\src\table\misc_settings.ini ..\src\table\settings.ini ..\src\table\win32_settings.ini ..\src\table\window_settings.ini + + + + ..\objs\settings\table\ + ..\objs\settings\table\ + $(SettingsCommandLine) + $(SettingsCommandLine) + del ..\objs\settings\table\settings.h + ..\objs\settings\table\settings.h + + + + + + + + + + + + + + + + + {e9548de9-f089-49b7-93a6-30be2cc311c7} + false + + + + + + diff --git a/projects/settings_vs142.vcxproj.filters b/projects/settings_vs142.vcxproj.filters new file mode 100644 index 0000000000..8caf9fa0a6 --- /dev/null +++ b/projects/settings_vs142.vcxproj.filters @@ -0,0 +1,35 @@ + + + + + {21deca6c-8df4-4f34-9dad-17d7781cd5a0} + + + + + INI + + + INI + + + INI + + + INI + + + INI + + + INI + + + INI + + + + + + + diff --git a/projects/settings_vs142.vcxproj.filters.in b/projects/settings_vs142.vcxproj.filters.in new file mode 100644 index 0000000000..08f90670d2 --- /dev/null +++ b/projects/settings_vs142.vcxproj.filters.in @@ -0,0 +1,15 @@ + + + + + {21deca6c-8df4-4f34-9dad-17d7781cd5a0} + + + +!!FILES!! + + + + + + diff --git a/projects/settings_vs142.vcxproj.in b/projects/settings_vs142.vcxproj.in new file mode 100644 index 0000000000..3e49b7ca02 --- /dev/null +++ b/projects/settings_vs142.vcxproj.in @@ -0,0 +1,54 @@ + + + + + Debug + Win32 + + + + settings + {0817F629-589E-4A3B-B81A-8647BC571E35} + settings + + + + Makefile + v142 + + + + + + + + + +!!FILTERS!! + + + + ..\objs\settings\table\ + ..\objs\settings\table\ + $(SettingsCommandLine) + $(SettingsCommandLine) + del ..\objs\settings\table\settings.h + ..\objs\settings\table\settings.h + + +!!FILES!! + + + + + + + + {e9548de9-f089-49b7-93a6-30be2cc311c7} + false + + + + + + diff --git a/projects/settingsgen_vs142.vcxproj b/projects/settingsgen_vs142.vcxproj new file mode 100644 index 0000000000..ca0418c15c --- /dev/null +++ b/projects/settingsgen_vs142.vcxproj @@ -0,0 +1,84 @@ + + + + + Debug + Win32 + + + + settingsgen + {E9548DE9-F089-49B7-93A6-30BE2CC311C7} + settings + 8.1 + + + + Application + MultiByte + v142 + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + ..\objs\settings\ + ..\objs\settings\ + settings_gen + + + + + + + + %(Inputs) + + + MinSpace + Size + SETTINGSGEN;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + All + $(IntDir)$(TargetName).pdb + Level3 + true + ProgramDatabase + MultiThreadedDebug + + + $(OutDir)settings_gen.exe + true + false + + + Console + 5.01 + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/projects/settingsgen_vs142.vcxproj.filters b/projects/settingsgen_vs142.vcxproj.filters new file mode 100644 index 0000000000..c8afe0c8ed --- /dev/null +++ b/projects/settingsgen_vs142.vcxproj.filters @@ -0,0 +1,32 @@ + + + + + {a4678737-b3b3-4be5-9db1-fa6ccd164c59} + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + + + + + + diff --git a/projects/strgen_vs142.vcxproj b/projects/strgen_vs142.vcxproj new file mode 100644 index 0000000000..5329d68daa --- /dev/null +++ b/projects/strgen_vs142.vcxproj @@ -0,0 +1,96 @@ + + + + + Debug + Win32 + + + + strgen + {A133A442-BD0A-4ADE-B117-AD7545E4BDD1} + strgen + 8.1 + + + + Application + false + MultiByte + v142 + + + + + + + + + + $(SolutionDir)..\objs\strgen\ + $(SolutionDir)..\objs\strgen\ + false + AllRules.ruleset + + + + + + .\Debug/strgen.tlb + + + + + /MP %(AdditionalOptions) + MinSpace + Size + STRGEN;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + Default + MultiThreadedDebug + + + All + $(IntDir) + $(IntDir) + $(IntDir)$(TargetName).pdb + Level3 + true + true + ProgramDatabase + + + _DEBUG;%(PreprocessorDefinitions) + 0x041d + + + true + true + $(IntDir)strgen.pdb + Console + false + + + MachineX86 + 5.01 + + + + + + + + + + + + + + + + + + + + + + diff --git a/projects/strgen_vs142.vcxproj.filters b/projects/strgen_vs142.vcxproj.filters new file mode 100644 index 0000000000..58864ee691 --- /dev/null +++ b/projects/strgen_vs142.vcxproj.filters @@ -0,0 +1,35 @@ + + + + + {5894294c-d4dc-41f0-be31-e56cff4e0405} + cpp;c;cxx;rc;def;r;odl;idl;hpj;bat + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + + + + + + + + diff --git a/projects/version_vs142.vcxproj b/projects/version_vs142.vcxproj new file mode 100644 index 0000000000..31971e35c9 --- /dev/null +++ b/projects/version_vs142.vcxproj @@ -0,0 +1,42 @@ + + + + + Debug + Win32 + + + + version + {1A2B3C5E-1C23-41A5-9C9B-ACBA2AA75FEC} + version + + + + Makefile + MultiByte + v142 + + + + + + + + + + $(SolutionDir)..\objs\version\ + $(SolutionDir)..\objs\version\ + cscript "$(ProjectDir)/determineversion.vbs" + cscript "$(ProjectDir)/determineversion.vbs" + ..\src\rev.cpp + del ..\src\rev.cpp + + + + + + + + + From 36e299fb6dee0aff0d5f22533d4d589f7bf9948e Mon Sep 17 00:00:00 2001 From: translators Date: Sat, 26 Jan 2019 19:45:43 +0100 Subject: [PATCH 26/41] Update: Translations from eints croatian: 3 changes by VoyagerOne russian: 18 changes by Lone_Wolf --- src/lang/croatian.txt | 3 +++ src/lang/russian.txt | 22 ++++++++++++++++++---- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index de8a0e641a..79b6b1d9b0 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -3451,6 +3451,9 @@ STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Centrira STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Razina proizvodnje: {YELLOW}{COMMA}% STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}Industrija je najavila uskoro zatvaranje! +STR_INDUSTRY_VIEW_REQUIRES_N_CARGO :{BLACK}Treba: {YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_PRODUCES_N_CARGO :{BLACK}Proizvodi: {YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_CARGO_LIST_EXTENSION :, {STRING}{STRING} STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Treba: STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING} diff --git a/src/lang/russian.txt b/src/lang/russian.txt index a56ff783e9..87a5b81c31 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -2557,9 +2557,9 @@ STR_BUILD_SIGNAL_ELECTRIC_COMBO_TOOLTIP :{BLACK}Комб STR_BUILD_SIGNAL_ELECTRIC_PBS_TOOLTIP :{BLACK}Маршрутный светофор{}Позволяет нескольким поездам находиться в одном сигнальном блоке, если каждый из них может зарезервировать безопасный путь. Допускает следование поездов в обе стороны. STR_BUILD_SIGNAL_ELECTRIC_PBS_OWAY_TOOLTIP :{BLACK}Односторонний маршрутн. светофор{}Позволяет нескольким поездам находиться в одном сигнальном блоке, если каждый из них может зарезервировать безопасный путь. Не допускает следования поездов в обратную сторону. STR_BUILD_SIGNAL_CONVERT_TOOLTIP :{BLACK}Изменение типа сигнала{}Когда кнопка нажата, щёлкните для преобразования существующего сигнала в сигнал выбранного типа и варианта, или щёлкните с нажатым Ctrl для перебора существующих вариантов. Shift+щелчок - оценка стоимости преобразования. -STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_TOOLTIP :{BLACK}Плотность расстановки сигналов при протягивании. -STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_DECREASE_TOOLTIP :{BLACK}Уменьшить плотность сигналов при протягивании -STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_INCREASE_TOOLTIP :{BLACK}Увеличить плотность сигналов при протягивании +STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_TOOLTIP :{BLACK}Расстояние между сигналами при протягивании. +STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_DECREASE_TOOLTIP :{BLACK}Уменьшить расстояние между сигналами при протягивании +STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_INCREASE_TOOLTIP :{BLACK}Увеличить расстояние между сигналами при протягивании # Bridge selection window STR_SELECT_RAIL_BRIDGE_CAPTION :{WHITE}Выберите железнодорожный мост @@ -2886,9 +2886,16 @@ STR_ABOUT_VERSION :{BLACK}OpenTTD STR_ABOUT_COPYRIGHT_OPENTTD :{BLACK}OpenTTD {COPYRIGHT} 2002-2018 Команда разработчиков OpenTTD # Framerate display window +STR_FRAMERATE_CAPTION :{WHITE}Скорость игры STR_FRAMERATE_CAPTION_SMALL :{STRING}{WHITE} ({DECIMAL}x) +STR_FRAMERATE_RATE_GAMELOOP :{BLACK}Скорость расчёта игры: {STRING} STR_FRAMERATE_RATE_GAMELOOP_TOOLTIP :{BLACK}Кол-во игровых циклов, рассчитываемых в секунду. +STR_FRAMERATE_RATE_BLITTER :{BLACK}Вывод на экран: {STRING} STR_FRAMERATE_RATE_BLITTER_TOOLTIP :{BLACK}Кол-во отображаемых кадров в секунду. +STR_FRAMERATE_SPEED_FACTOR :{BLACK}Текущая скорость игры: {DECIMAL}x +STR_FRAMERATE_SPEED_FACTOR_TOOLTIP :{BLACK}Фактическая скорость игры +STR_FRAMERATE_CURRENT :{WHITE}Сейчас +STR_FRAMERATE_AVERAGE :{WHITE}В среднем STR_FRAMERATE_DATA_POINTS :{BLACK}Данные по {COMMA} измерени{P ю ям ям} STR_FRAMERATE_MS_GOOD :{LTBLUE}{DECIMAL} мс STR_FRAMERATE_MS_WARN :{YELLOW}{DECIMAL} мс @@ -2900,10 +2907,17 @@ STR_FRAMERATE_GRAPH_MILLISECONDS :{TINY_FONT}{COM STR_FRAMERATE_GRAPH_SECONDS :{TINY_FONT}{COMMA} с ############ Leave those lines in this order!! STR_FRAMERATE_GL_LINKGRAPH :{BLACK} Задержка графа распределения: +STR_FRAMERATE_DRAWING :{BLACK}Отрисовка изображения: +STR_FRAMERATE_DRAWING_VIEWPORTS :{BLACK} Дополнительные окна: +STR_FRAMERATE_VIDEO :{BLACK}Вывод на экран: +STR_FRAMERATE_SOUND :{BLACK}Обработка звука: ############ End of leave-in-this-order ############ Leave those lines in this order!! STR_FRAMETIME_CAPTION_GL_LINKGRAPH :Задержка графа распределения -STR_FRAMETIME_CAPTION_DRAWING :Отрисовка графики +STR_FRAMETIME_CAPTION_DRAWING :Отрисовка изображения +STR_FRAMETIME_CAPTION_DRAWING_VIEWPORTS :Отрисовка изображения в доп. окнах +STR_FRAMETIME_CAPTION_VIDEO :Вывод на экран +STR_FRAMETIME_CAPTION_SOUND :Обработка звука ############ End of leave-in-this-order From a18b0eba5b1dc4c60eac9313e485d6912676ce31 Mon Sep 17 00:00:00 2001 From: glx Date: Sat, 26 Jan 2019 16:58:16 +0100 Subject: [PATCH 27/41] Add: more options for translators --- src/build_vehicle_gui.cpp | 2 +- src/lang/english.txt | 8 +++++++- src/newgrf_gui.cpp | 6 +++--- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/build_vehicle_gui.cpp b/src/build_vehicle_gui.cpp index 51247e84ba..713cc5bbe4 100644 --- a/src/build_vehicle_gui.cpp +++ b/src/build_vehicle_gui.cpp @@ -1070,7 +1070,7 @@ struct BuildVehicleWindow : Window { * This could also be useful for eyecandy vehicles of other types, but is likely too confusing for joe, */ if (this->vehicle_type == VEH_TRAIN) { this->cargo_filter[filter_items] = CF_NONE; - this->cargo_filter_texts[filter_items] = STR_LAND_AREA_INFORMATION_LOCAL_AUTHORITY_NONE; + this->cargo_filter_texts[filter_items] = STR_PURCHASE_INFO_NONE; filter_items++; } diff --git a/src/lang/english.txt b/src/lang/english.txt index 7ad560bdff..a5188d05bc 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -2894,8 +2894,13 @@ STR_NEWGRF_SETTINGS_GRF_ID :{BLACK}GRF ID: STR_NEWGRF_SETTINGS_VERSION :{BLACK}Version: {SILVER}{NUM} STR_NEWGRF_SETTINGS_MIN_VERSION :{BLACK}Min. compatible version: {SILVER}{NUM} STR_NEWGRF_SETTINGS_MD5SUM :{BLACK}MD5sum: {SILVER}{RAW_STRING} -STR_NEWGRF_SETTINGS_PALETTE :{BLACK}Palette: {SILVER}{RAW_STRING} +STR_NEWGRF_SETTINGS_PALETTE :{BLACK}Palette: {SILVER}{STRING} +STR_NEWGRF_SETTINGS_PALETTE_DEFAULT :Default (D) +STR_NEWGRF_SETTINGS_PALETTE_DEFAULT_32BPP :Default (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}Parameters: {SILVER}{STRING1} +STR_NEWGRF_SETTINGS_PARAMETER_NONE :None STR_NEWGRF_SETTINGS_NO_INFO :{BLACK}No information available STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}Matching file not found @@ -3458,6 +3463,7 @@ STR_PURCHASE_INFO_AIRCRAFT_CAPACITY :{BLACK}Capacity STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Powered Wagons: {GOLD}+{POWER}{BLACK} Weight: {GOLD}+{WEIGHT_SHORT} STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Refittable to: {GOLD}{STRING2} STR_PURCHASE_INFO_ALL_TYPES :All cargo types +STR_PURCHASE_INFO_NONE :None STR_PURCHASE_INFO_ALL_BUT :All but {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Max. Tractive Effort: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Range: {GOLD}{COMMA} tiles diff --git a/src/newgrf_gui.cpp b/src/newgrf_gui.cpp index 6a45304833..140e296571 100644 --- a/src/newgrf_gui.cpp +++ b/src/newgrf_gui.cpp @@ -113,15 +113,15 @@ static void ShowNewGRFInfo(const GRFConfig *c, uint x, uint y, uint right, uint SetDParam(0, STR_JUST_RAW_STRING); SetDParamStr(1, buff); } else { - SetDParam(0, STR_LAND_AREA_INFORMATION_LOCAL_AUTHORITY_NONE); + SetDParam(0, STR_NEWGRF_SETTINGS_PARAMETER_NONE); } y = DrawStringMultiLine(x, right, y, bottom, STR_NEWGRF_SETTINGS_PARAMETER); /* Draw the palette of the NewGRF */ if (c->palette & GRFP_BLT_32BPP) { - SetDParamStr(0, (c->palette & GRFP_USE_WINDOWS) ? "Legacy (W) / 32 bpp" : "Default (D) / 32 bpp"); + SetDParam(0, (c->palette & GRFP_USE_WINDOWS) ? STR_NEWGRF_SETTINGS_PALETTE_LEGACY_32BPP : STR_NEWGRF_SETTINGS_PALETTE_DEFAULT_32BPP); } else { - SetDParamStr(0, (c->palette & GRFP_USE_WINDOWS) ? "Legacy (W)" : "Default (D)"); + SetDParam(0, (c->palette & GRFP_USE_WINDOWS) ? STR_NEWGRF_SETTINGS_PALETTE_LEGACY : STR_NEWGRF_SETTINGS_PALETTE_DEFAULT); } y = DrawStringMultiLine(x, right, y, bottom, STR_NEWGRF_SETTINGS_PALETTE); } From a5836874ef824f63d81e12064aba2f5c762109e8 Mon Sep 17 00:00:00 2001 From: J0an Josep Date: Tue, 15 Jan 2019 22:37:32 +0100 Subject: [PATCH 28/41] Codechange: Use track functions. --- src/pathfinder/yapf/yapf_ship.cpp | 2 +- src/ship_cmd.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pathfinder/yapf/yapf_ship.cpp b/src/pathfinder/yapf/yapf_ship.cpp index 7ca95ae698..c6e484feaa 100644 --- a/src/pathfinder/yapf/yapf_ship.cpp +++ b/src/pathfinder/yapf/yapf_ship.cpp @@ -59,7 +59,7 @@ public: /* handle special case - when next tile is destination tile */ if (tile == v->dest_tile) { /* convert tracks to trackdirs */ - TrackdirBits trackdirs = (TrackdirBits)(tracks | ((int)tracks << 8)); + TrackdirBits trackdirs = TrackBitsToTrackdirBits(tracks); /* limit to trackdirs reachable from enterdir */ trackdirs &= DiagdirReachesTrackdirs(enterdir); diff --git a/src/ship_cmd.cpp b/src/ship_cmd.cpp index 4603043d6e..ec0d430896 100644 --- a/src/ship_cmd.cpp +++ b/src/ship_cmd.cpp @@ -464,7 +464,7 @@ static Track ChooseShipTrack(Ship *v, TileIndex tile, DiagDirection enterdir, Tr if (v->dest_tile == 0 || DistanceManhattan(tile, v->dest_tile) > SHIP_MAX_ORDER_DISTANCE + 5) { /* No destination or destination too far, don't invoke pathfinder. */ track = TrackBitsToTrack(v->state); - if (track != TRACK_X && track != TRACK_Y) track = TrackToOppositeTrack(track); + if (!IsDiagonalTrack(track)) track = TrackToOppositeTrack(track); if (!HasBit(tracks, track)) { /* Can't continue in same direction so pick first available track. */ if (_settings_game.pf.forbid_90_deg) { From 2084779b5a9d16d6d04744c913960fd59bde2356 Mon Sep 17 00:00:00 2001 From: Samu Date: Mon, 1 Oct 2018 14:56:12 +0100 Subject: [PATCH 29/41] Fix #6574: Go to takeoff if no hangar Sends the aircraft to takeoff if the airport it's currently at, got no hangar even if the order is to go to hangar. --- src/aircraft_cmd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/aircraft_cmd.cpp b/src/aircraft_cmd.cpp index 6799f7c643..5f36a75779 100644 --- a/src/aircraft_cmd.cpp +++ b/src/aircraft_cmd.cpp @@ -1546,7 +1546,7 @@ static void AircraftEventHandler_AtTerminal(Aircraft *v, const AirportFTAClass * go_to_hangar = Station::Get(v->targetairport)->airport.HasHangar(); } - if (go_to_hangar) { + if (go_to_hangar && Station::Get(v->targetairport)->airport.HasHangar()) { v->state = HANGAR; } else { /* airplane goto state takeoff, helicopter to helitakeoff */ From 3e0e3cfac150d7a63a714a0af073caaabfffbaa2 Mon Sep 17 00:00:00 2001 From: Samu Date: Tue, 2 Oct 2018 00:27:07 +0100 Subject: [PATCH 30/41] Fix: Direct the aircraft to the correct location of the hangar when skipping to a go to hangar order When manually skipping to a 'go to hangar' order in the order list, while the aircraft is flying, direct the aircraft to the correct location of the hangar. --- src/order_cmd.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/order_cmd.cpp b/src/order_cmd.cpp index d9d741dbce..83dacdca45 100644 --- a/src/order_cmd.cpp +++ b/src/order_cmd.cpp @@ -2093,6 +2093,13 @@ bool UpdateOrderDest(Vehicle *v, const Order *order, int conditional_depth, bool } else { if (v->type != VEH_AIRCRAFT) { v->SetDestTile(Depot::Get(order->GetDestination())->xy); + } else { + Aircraft *a = Aircraft::From(v); + DestinationID destination = a->current_order.GetDestination(); + if (a->targetairport != destination) { + /* The aircraft is now heading for a different hangar than the next in the orders */ + a->SetDestTile(a->GetOrderStationLocation(destination)); + } } return true; } From 256b94a03d7eb3c2c0264b6c93f5d83c299ada8a Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Sun, 27 Jan 2019 01:34:30 +0000 Subject: [PATCH 31/41] Fix: Ignore company colour selection when showing different company's colour scheme. --- src/company_gui.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/company_gui.cpp b/src/company_gui.cpp index c62c6d61cf..208b798a7a 100644 --- a/src/company_gui.cpp +++ b/src/company_gui.cpp @@ -648,9 +648,11 @@ public: virtual void OnPaint() { + bool local = (CompanyID)this->window_number == _local_company; + /* Disable dropdown controls if no scheme is selected */ - this->SetWidgetDisabledState(WID_SCL_PRI_COL_DROPDOWN, this->sel == 0); - this->SetWidgetDisabledState(WID_SCL_SEC_COL_DROPDOWN, this->sel == 0); + this->SetWidgetDisabledState(WID_SCL_PRI_COL_DROPDOWN, !local || this->sel == 0); + this->SetWidgetDisabledState(WID_SCL_SEC_COL_DROPDOWN, !local || this->sel == 0); this->DrawWidgets(); } @@ -789,6 +791,9 @@ public: virtual void OnDropdownSelect(int widget, int index) { + bool local = (CompanyID)this->window_number == _local_company; + if (!local) return; + for (LiveryScheme scheme = LS_DEFAULT; scheme < LS_END; scheme++) { /* Changed colour for the selected scheme, or all visible schemes if CTRL is pressed. */ if (HasBit(this->sel, scheme) || (_ctrl_pressed && _livery_class[scheme] == this->livery_class && HasBit(_loaded_newgrf_features.used_liveries, scheme))) { From 6e5b90f4f726c0f53861d725cf5a5ecc4093f477 Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Sun, 27 Jan 2019 01:34:30 +0000 Subject: [PATCH 32/41] Change: For consistency, add company name to colour scheme window. --- src/company_gui.cpp | 4 ++++ src/lang/english.txt | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/company_gui.cpp b/src/company_gui.cpp index 208b798a7a..dcf1f3695d 100644 --- a/src/company_gui.cpp +++ b/src/company_gui.cpp @@ -660,6 +660,10 @@ public: virtual void SetStringParameters(int widget) const { switch (widget) { + case WID_SCL_CAPTION: + SetDParam(0, (CompanyID)this->window_number); + break; + case WID_SCL_PRI_COL_DROPDOWN: case WID_SCL_SEC_COL_DROPDOWN: { const Company *c = Company::Get((CompanyID)this->window_number); diff --git a/src/lang/english.txt b/src/lang/english.txt index a5188d05bc..83406296cc 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -1820,7 +1820,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Change c STR_CHEAT_SETUP_PROD :{LTBLUE}Enable modifying production values: {ORANGE}{STRING1} # Livery window -STR_LIVERY_CAPTION :{WHITE}New Colour Scheme +STR_LIVERY_CAPTION :{WHITE}{COMPANY} - Colour Scheme STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Show general colour schemes STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Show train colour schemes From b60b193a6d9b682f731b24763b44108d7fccd7f8 Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Sun, 27 Jan 2019 01:34:32 +0000 Subject: [PATCH 33/41] Cleanup: Remove out of date translations for changed string. --- src/lang/afrikaans.txt | 1 - src/lang/arabic_egypt.txt | 1 - src/lang/basque.txt | 1 - src/lang/belarusian.txt | 1 - src/lang/brazilian_portuguese.txt | 1 - src/lang/bulgarian.txt | 1 - src/lang/catalan.txt | 1 - src/lang/croatian.txt | 1 - src/lang/czech.txt | 1 - src/lang/danish.txt | 1 - src/lang/dutch.txt | 1 - src/lang/english_AU.txt | 1 - src/lang/english_US.txt | 1 - src/lang/esperanto.txt | 1 - src/lang/estonian.txt | 1 - src/lang/faroese.txt | 1 - src/lang/finnish.txt | 1 - src/lang/french.txt | 1 - src/lang/gaelic.txt | 1 - src/lang/galician.txt | 1 - src/lang/german.txt | 1 - src/lang/greek.txt | 1 - src/lang/hebrew.txt | 1 - src/lang/hungarian.txt | 1 - src/lang/icelandic.txt | 1 - src/lang/indonesian.txt | 1 - src/lang/irish.txt | 1 - src/lang/italian.txt | 1 - src/lang/japanese.txt | 1 - src/lang/korean.txt | 1 - src/lang/latin.txt | 1 - src/lang/latvian.txt | 1 - src/lang/lithuanian.txt | 1 - src/lang/luxembourgish.txt | 1 - src/lang/malay.txt | 1 - src/lang/norwegian_bokmal.txt | 1 - src/lang/norwegian_nynorsk.txt | 1 - src/lang/polish.txt | 1 - src/lang/portuguese.txt | 1 - src/lang/romanian.txt | 1 - src/lang/russian.txt | 1 - src/lang/serbian.txt | 1 - src/lang/simplified_chinese.txt | 1 - src/lang/slovak.txt | 1 - src/lang/slovenian.txt | 1 - src/lang/spanish.txt | 1 - src/lang/spanish_MX.txt | 1 - src/lang/swedish.txt | 1 - src/lang/tamil.txt | 1 - src/lang/thai.txt | 1 - src/lang/traditional_chinese.txt | 1 - src/lang/turkish.txt | 1 - src/lang/ukrainian.txt | 1 - src/lang/unfinished/frisian.txt | 1 - src/lang/unfinished/persian.txt | 1 - src/lang/unfinished/urdu.txt | 1 - src/lang/vietnamese.txt | 1 - src/lang/welsh.txt | 1 - 58 files changed, 58 deletions(-) diff --git a/src/lang/afrikaans.txt b/src/lang/afrikaans.txt index 56cbe04a04..cf55383ea8 100644 --- a/src/lang/afrikaans.txt +++ b/src/lang/afrikaans.txt @@ -1801,7 +1801,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Verander STR_CHEAT_SETUP_PROD :{LTBLUE}Aktiveer modifisering van produksie waardes: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Nuwe Kleur Skema STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Toon algemene kleurskemas STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Wys trein kleur skemas diff --git a/src/lang/arabic_egypt.txt b/src/lang/arabic_egypt.txt index 2eb29baa31..5e7f918831 100644 --- a/src/lang/arabic_egypt.txt +++ b/src/lang/arabic_egypt.txt @@ -1471,7 +1471,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}غير STR_CHEAT_SETUP_PROD :{LTBLUE}تفعيل تغيير قيمة الانتاج: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}الوان جديدة STR_LIVERY_GENERAL_TOOLTIP :{BLACK}اظهر اللون العام STR_LIVERY_TRAIN_TOOLTIP :{BLACK}اظهر لون القطائرات diff --git a/src/lang/basque.txt b/src/lang/basque.txt index 0c2e09e24d..2c1309edab 100644 --- a/src/lang/basque.txt +++ b/src/lang/basque.txt @@ -1711,7 +1711,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Aurtengo STR_CHEAT_SETUP_PROD :{LTBLUE}Ekoizpen balioak aldatzea baimendu: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Kolore eskema berria STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Erakutsi kolore eskema orokorrak STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Erakutsi trenen kolore eskemak diff --git a/src/lang/belarusian.txt b/src/lang/belarusian.txt index c2e3a1435d..cce68727e9 100644 --- a/src/lang/belarusian.txt +++ b/src/lang/belarusian.txt @@ -2126,7 +2126,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Зьмя STR_CHEAT_SETUP_PROD :{LTBLUE}Дазволіць зьмяненьне прадукцыйнасьці: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Новая каляровая схэма STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Паказаць асноўныя каляровыя схэмы STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Паказаць каляровыя схэмы цягнікоў diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt index ffa56055fd..65cccee2ea 100644 --- a/src/lang/brazilian_portuguese.txt +++ b/src/lang/brazilian_portuguese.txt @@ -1817,7 +1817,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Mudar an STR_CHEAT_SETUP_PROD :{LTBLUE}Ativar modificação de valores de produção: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Novo Esquema de Cores STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Exibir esquemas de cor gerais STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Exibe esquemas de cor de trens diff --git a/src/lang/bulgarian.txt b/src/lang/bulgarian.txt index d674c67d40..e88b498979 100644 --- a/src/lang/bulgarian.txt +++ b/src/lang/bulgarian.txt @@ -1749,7 +1749,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Пром STR_CHEAT_SETUP_PROD :{LTBLUE}Промяна на производствените стойности: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Нова цветове STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Показване на общи цветови схеми STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Показване цветовите схеми на влаковете diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index 57d4e57322..5e9a8d35dd 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -1815,7 +1815,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Canvia l STR_CHEAT_SETUP_PROD :{LTBLUE}Activa la modificació dels valors de producció: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Nou esquema de colors STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Mostra esquemes de colors generals STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Mostra els esquemes de colors dels trens diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index 79b6b1d9b0..5ec2802826 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -1916,7 +1916,6 @@ 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_GENERAL_TOOLTIP :{BLACK}Pokaži generalne sheme boja STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Pokaži sheme boja za vlak diff --git a/src/lang/czech.txt b/src/lang/czech.txt index 17a09c6ac9..8b97a9ac96 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -1895,7 +1895,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Změnit STR_CHEAT_SETUP_PROD :{LTBLUE}Povolit změnu produkce průmyslu: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Nové barevné schéma STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Zobrazit všeobecná barevná schémata STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Zobrazit barevná schémata pro vlaky diff --git a/src/lang/danish.txt b/src/lang/danish.txt index 93fa13575c..74b15ef57c 100644 --- a/src/lang/danish.txt +++ b/src/lang/danish.txt @@ -1809,7 +1809,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Skift å STR_CHEAT_SETUP_PROD :{LTBLUE}Aktiver modifikation af produktion: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Nyt farvetema STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Vis generelle farveskemaer STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Vis farveskemaer for tog diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index 3a932ae17f..8a6ae55e79 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -1815,7 +1815,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Wijzig h STR_CHEAT_SETUP_PROD :{LTBLUE}Sta aanpassen productiewaarden toe: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Nieuw kleurenschema STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Toon algemene kleurenschema's STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Toon kleurenschema's voor treinen diff --git a/src/lang/english_AU.txt b/src/lang/english_AU.txt index 403cd8eade..20365c9957 100644 --- a/src/lang/english_AU.txt +++ b/src/lang/english_AU.txt @@ -1775,7 +1775,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Change c STR_CHEAT_SETUP_PROD :{LTBLUE}Enable modifying production values: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}New Colour Scheme STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Show general colour schemes STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Show train colour schemes diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index 6e03e5b242..079ee24dce 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -1813,7 +1813,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Change c STR_CHEAT_SETUP_PROD :{LTBLUE}Enable modifying production values: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}New Color Scheme STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Show general color schemes STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Show train color schemes diff --git a/src/lang/esperanto.txt b/src/lang/esperanto.txt index d8a78e8ed2..51500cafc4 100644 --- a/src/lang/esperanto.txt +++ b/src/lang/esperanto.txt @@ -1458,7 +1458,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Ŝanĝu STR_CHEAT_SETUP_PROD :{LTBLUE}Ebligu ŝanĝi produktvalorojn: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Nova Kolorskemo STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Montru ĝeneralajn kolorskemojn STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Montru trajnajn kolorskemojn diff --git a/src/lang/estonian.txt b/src/lang/estonian.txt index 8ff3974270..a5324c6571 100644 --- a/src/lang/estonian.txt +++ b/src/lang/estonian.txt @@ -1857,7 +1857,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Muuda jo STR_CHEAT_SETUP_PROD :{LTBLUE}Tootmisväärtuste muutmine: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Uus värvivalik STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Näita üldiseid värvistikke STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Näita rongide värvistikke diff --git a/src/lang/faroese.txt b/src/lang/faroese.txt index 9dd30eb324..0fd7fc4352 100644 --- a/src/lang/faroese.txt +++ b/src/lang/faroese.txt @@ -1621,7 +1621,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Broyt n STR_CHEAT_SETUP_PROD :{LTBLUE}Gilda broytingar av framleiðslu virðum: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Nýggja lit samanseting STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Vís vanligu lit samansetingarnar STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Vís tok lit samansetingarnar diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt index 86edbf439c..2584fbc53e 100644 --- a/src/lang/finnish.txt +++ b/src/lang/finnish.txt @@ -1816,7 +1816,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Muuta ny STR_CHEAT_SETUP_PROD :{LTBLUE}Salli tuotantomäärien muuttaminen: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Uusi väriteema STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Näytä yleiset väriteemat STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Näytä junan väriteemat diff --git a/src/lang/french.txt b/src/lang/french.txt index c5d1526763..868ddfdca9 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -1821,7 +1821,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Modifier STR_CHEAT_SETUP_PROD :{LTBLUE}Permettre la modification des valeurs de production{NBSP}: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Nouvelle couleur STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Montrer les livrées générales STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Montrer les livrées de trains diff --git a/src/lang/gaelic.txt b/src/lang/gaelic.txt index af5049d114..26a2274e20 100644 --- a/src/lang/gaelic.txt +++ b/src/lang/gaelic.txt @@ -2005,7 +2005,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Atharrai STR_CHEAT_SETUP_PROD :{LTBLUE}Cuir an comas atharrachadh air luachan saothrachaidh: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Sgeama nan dath ùr STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Seall sgeamannan nan dath coitcheann STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Seall sgeamannan nan dath airson trèanaichean diff --git a/src/lang/galician.txt b/src/lang/galician.txt index f3fddb5821..6ee28d060d 100644 --- a/src/lang/galician.txt +++ b/src/lang/galician.txt @@ -1804,7 +1804,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Cambiar STR_CHEAT_SETUP_PROD :{LTBLUE}Permitir a modificación dos valores de producción: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Novo esquema de cor STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Mostra-los esquemas de cor xerais STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Mostra-los esquemas de cor dos trens diff --git a/src/lang/german.txt b/src/lang/german.txt index 4902216617..19a26a3bba 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -1804,7 +1804,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Ändert STR_CHEAT_SETUP_PROD :{LTBLUE}Erlaube manuelles Ändern der Produktionsleistungen: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Neues Farbschema STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Allgemeines Farbschema anzeigen STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Zugfarbschema anzeigen diff --git a/src/lang/greek.txt b/src/lang/greek.txt index 64471ad58e..fb43d490f9 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -1920,7 +1920,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Αλλα STR_CHEAT_SETUP_PROD :{LTBLUE}Ενεργοποίηση δυνατότητας αλλαγής τιμών παραγωγής: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Νέος Χρωματισμός STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Εμφάνιση γενικών χρωματικών μοτίβων STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Εμφάνιση χρωματικών μοτίβων τρένων diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt index bc5f563889..08c7950dea 100644 --- a/src/lang/hebrew.txt +++ b/src/lang/hebrew.txt @@ -1826,7 +1826,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}שנה STR_CHEAT_SETUP_PROD :{LTBLUE}אפשר שינוי ערכי התפוקה: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}הגדרות צבע חדשות STR_LIVERY_GENERAL_TOOLTIP :{BLACK}הצג הגדרות צבע כלליות STR_LIVERY_TRAIN_TOOLTIP :{BLACK}הצג הגדרות צבע לרכבות diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index 8eb63547f5..62d5141702 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -1867,7 +1867,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Aktuáli STR_CHEAT_SETUP_PROD :{LTBLUE}A nyersanyagüzemek termelése változtatható: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Új színséma STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Általános színsémák mutatása STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Vonat színsémák mutatása diff --git a/src/lang/icelandic.txt b/src/lang/icelandic.txt index 8b05505cfa..e39c42129a 100644 --- a/src/lang/icelandic.txt +++ b/src/lang/icelandic.txt @@ -1663,7 +1663,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Breyta u STR_CHEAT_SETUP_PROD :{LTBLUE}Leyfa breytingar á verðmæti framleiðslu: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Nýtt Litaskema STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Grunnlitur fyrirtækis STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Litaskema lesta diff --git a/src/lang/indonesian.txt b/src/lang/indonesian.txt index 1a7728cccc..a4eec663c6 100644 --- a/src/lang/indonesian.txt +++ b/src/lang/indonesian.txt @@ -1810,7 +1810,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Ubah tah STR_CHEAT_SETUP_PROD :{LTBLUE}Aktifkan modifikasi nilai produksi: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Warna tema baru STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Tampilkan skema warna umum STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Tampilkan skema warna kereta diff --git a/src/lang/irish.txt b/src/lang/irish.txt index d4679ded9e..b30e001565 100644 --- a/src/lang/irish.txt +++ b/src/lang/irish.txt @@ -1800,7 +1800,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Athraigh STR_CHEAT_SETUP_PROD :{LTBLUE}Cumasaigh luachanna táirgeachta a athrú: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Scéim Dathanna Nua STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Taispeáin scéimeanna dathanna ginearálta STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Taispeáin scéimeanna dathanna na dtraenacha diff --git a/src/lang/italian.txt b/src/lang/italian.txt index b1afa82abc..f2b6bb8818 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -1844,7 +1844,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Cambia l STR_CHEAT_SETUP_PROD :{LTBLUE}Permetti la modifica dei valori di produzione: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Nuovo schema colori STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Mostra gli schemi di colorazione generali STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Mostra gli schemi di colorazione dei treni diff --git a/src/lang/japanese.txt b/src/lang/japanese.txt index a6aa2f127e..4381cc0959 100644 --- a/src/lang/japanese.txt +++ b/src/lang/japanese.txt @@ -1800,7 +1800,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}現在 STR_CHEAT_SETUP_PROD :{LTBLUE}生産量変更: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}コーポレートカラー STR_LIVERY_GENERAL_TOOLTIP :{BLACK}通常のコーポレートカラー(車両塗装色)を表示します STR_LIVERY_TRAIN_TOOLTIP :{BLACK}列車の塗装色を表示します diff --git a/src/lang/korean.txt b/src/lang/korean.txt index 73cfe66b30..6d01b46db5 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -1817,7 +1817,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}현재 STR_CHEAT_SETUP_PROD :{LTBLUE}1차 산업시설 생산량 조절 허용: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}새 색상 STR_LIVERY_GENERAL_TOOLTIP :{BLACK}기본 색상 선택 STR_LIVERY_TRAIN_TOOLTIP :{BLACK}열차 색상 선택 diff --git a/src/lang/latin.txt b/src/lang/latin.txt index 5de041dcf7..cc670da54a 100644 --- a/src/lang/latin.txt +++ b/src/lang/latin.txt @@ -2001,7 +2001,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Mutare a STR_CHEAT_SETUP_PROD :{LTBLUE}Sinere mutare productiones industriarum: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Schema Coloris Novum STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Monstrare schemata coloris generalia STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Monstrare schemata coloris traminum diff --git a/src/lang/latvian.txt b/src/lang/latvian.txt index 0db5c191c9..1a109dd4bc 100644 --- a/src/lang/latvian.txt +++ b/src/lang/latvian.txt @@ -1747,7 +1747,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Mainīt STR_CHEAT_SETUP_PROD :{LTBLUE}Ieslēgt ražojumu vērtības maiņu: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Jauna identitātes krāsu shēma STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Rādīt vispārējo identitates krāsu shēmas STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Rādīt vilcienu identitātes krāsu shēmas diff --git a/src/lang/lithuanian.txt b/src/lang/lithuanian.txt index f2309f9674..b1afa66193 100644 --- a/src/lang/lithuanian.txt +++ b/src/lang/lithuanian.txt @@ -2019,7 +2019,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Pakeisti STR_CHEAT_SETUP_PROD :{LTBLUE}Leisti keisti produkcijos vertes: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Naujos spalvos STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Rodyti pagrinidines spalvų parinktis STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Rodyti traukiniš spalvas diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index ae7f63000d..06309848de 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -1803,7 +1803,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Wiessel STR_CHEAT_SETUP_PROD :{LTBLUE}Erlaabt d'ännere vun de Produktiounswäerter: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Neie Faarfschema STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Weis generell Faarfschemen STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Weis Zuch Faarfschemen diff --git a/src/lang/malay.txt b/src/lang/malay.txt index d17a9c4437..2b54cb3348 100644 --- a/src/lang/malay.txt +++ b/src/lang/malay.txt @@ -1561,7 +1561,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Tukar ta STR_CHEAT_SETUP_PROD :{LTBLUE}Bolehkan pengubahsuaian nilai-nilai pengeluaran: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Skim Warna Baru STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Tunjukkan skim warna am STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Tunjukkan skim warna keretapi diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index 8573b31c8e..d71bf08376 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -1806,7 +1806,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Endre n STR_CHEAT_SETUP_PROD :{LTBLUE}Tillat endring av produksjonsmengder: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Ny firmafarge STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Vis generelle fargetemaer STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Vis togfargetemaer diff --git a/src/lang/norwegian_nynorsk.txt b/src/lang/norwegian_nynorsk.txt index d102229539..fcf44f91fa 100644 --- a/src/lang/norwegian_nynorsk.txt +++ b/src/lang/norwegian_nynorsk.txt @@ -1723,7 +1723,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Byt nove STR_CHEAT_SETUP_PROD :{LTBLUE}Tillet endring av produksjonsmengder: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Ny firmafarge STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Syne generelle fargetema STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Syne togfargetema diff --git a/src/lang/polish.txt b/src/lang/polish.txt index 6728551ac0..5fde434c55 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -2195,7 +2195,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Zmiana o STR_CHEAT_SETUP_PROD :{LTBLUE}Pozwól modyfikować wielkość produkcji przedsiębiorstw: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Nowy schemat kolorów STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Pokaż ogólne schematy koloru STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Pokaż schematy koloru pociągów diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt index 020f304f76..20ee739d65 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -1804,7 +1804,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Alterar STR_CHEAT_SETUP_PROD :{LTBLUE}Activar modificação de valores de produção: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Novo Esquema de Cores STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Exibir esquema de cores geral STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Exibir esquemas de cores dos comboios diff --git a/src/lang/romanian.txt b/src/lang/romanian.txt index 45f6ad4158..b97cf52fc1 100644 --- a/src/lang/romanian.txt +++ b/src/lang/romanian.txt @@ -1765,7 +1765,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Schimbă STR_CHEAT_SETUP_PROD :{LTBLUE}Activează accesul la valorile de producţie: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Schemă de culori nouă STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Afişează schemele generale de culori STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Arată schemele de culori pentru trenuri diff --git a/src/lang/russian.txt b/src/lang/russian.txt index 87a5b81c31..30b226379e 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -1972,7 +1972,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Изме STR_CHEAT_SETUP_PROD :{LTBLUE}Разрешить изменение производительности: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Новая цветовая схема STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Настройка основной цветовой схемы STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Настройка цветовой схемы поездов diff --git a/src/lang/serbian.txt b/src/lang/serbian.txt index 556d844512..6ed65b8ab4 100644 --- a/src/lang/serbian.txt +++ b/src/lang/serbian.txt @@ -2007,7 +2007,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Promena STR_CHEAT_SETUP_PROD :{LTBLUE}Dozvoliti promenu količine proizvodnje: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Nova šema boja STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Prikaži generalnu mustru boja STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Prikaži mustre boja vozova diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt index 78365fe130..a1d165e0f1 100644 --- a/src/lang/simplified_chinese.txt +++ b/src/lang/simplified_chinese.txt @@ -1810,7 +1810,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}改变 STR_CHEAT_SETUP_PROD :{LTBLUE}开启可调整产量模式:{ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}新色彩方案 STR_LIVERY_GENERAL_TOOLTIP :{BLACK}显示总体配色方案 STR_LIVERY_TRAIN_TOOLTIP :{BLACK}显示列车配色方案 diff --git a/src/lang/slovak.txt b/src/lang/slovak.txt index 6ef55d7cf0..ae6d9c98f6 100644 --- a/src/lang/slovak.txt +++ b/src/lang/slovak.txt @@ -1868,7 +1868,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Zmeniť STR_CHEAT_SETUP_PROD :{LTBLUE}Povoliť zmenu objemu výroby: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Nová farebná schéma STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Zobraziť všeobecné farebné schémy STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Zobraziť farebné schémy pre vlaky diff --git a/src/lang/slovenian.txt b/src/lang/slovenian.txt index 657fa8af6f..63d9ff5802 100644 --- a/src/lang/slovenian.txt +++ b/src/lang/slovenian.txt @@ -1954,7 +1954,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Spremeni STR_CHEAT_SETUP_PROD :{LTBLUE}Omogoči spreminjanje proizvodnih vrednosti: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Nova barvna shema STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Prikaz glavnih barvnih shem STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Prikaz barvnih shem vlakov diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index 3fbc855eff..ccd3827c0b 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -1813,7 +1813,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Cambiar STR_CHEAT_SETUP_PROD :{LTBLUE}Permitir modificación de los valores de producción: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Nuevo Esquema de Color STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Mostrar esquema de colores general STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Ver esquema de color de los trenes diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index b2755ecb9e..8221c7ebe9 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -1821,7 +1821,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Cambiar STR_CHEAT_SETUP_PROD :{LTBLUE}Permitir cambiar los valores de producción: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Nueva cromática STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Mostrar cromática general STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Mostrar cromáticas para trenes diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index 00ce1dd183..496a490b8b 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -1803,7 +1803,6 @@ 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_GENERAL_TOOLTIP :{BLACK}Visa generellt färgschema STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Visa färgscheman för tåg diff --git a/src/lang/tamil.txt b/src/lang/tamil.txt index 7985fed264..ac130ce1ec 100644 --- a/src/lang/tamil.txt +++ b/src/lang/tamil.txt @@ -1568,7 +1568,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}நட STR_CHEAT_SETUP_PROD :{LTBLUE}தயாரிப்பு மதிப்புகளை மாற்ற முடியும்: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}புதிய நிற கோட்பாடு STR_LIVERY_GENERAL_TOOLTIP :{BLACK}பொதுவான நிற கோட்பாடுகளைக் காட்டவும் STR_LIVERY_TRAIN_TOOLTIP :{BLACK}இரயில் நிற கோட்பாடுகளைக் காட்டவும் diff --git a/src/lang/thai.txt b/src/lang/thai.txt index c1e82e18f5..e6a876b4d8 100644 --- a/src/lang/thai.txt +++ b/src/lang/thai.txt @@ -1749,7 +1749,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}เป STR_CHEAT_SETUP_PROD :{LTBLUE}เปิดใช้งานการแก้ไขปริมาณผลผลิต: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}สร้างแบบสีใหม่ STR_LIVERY_GENERAL_TOOLTIP :{BLACK}แสดงแบบสีทั่วไป STR_LIVERY_TRAIN_TOOLTIP :{BLACK}แสดงแบบสีรถไฟ diff --git a/src/lang/traditional_chinese.txt b/src/lang/traditional_chinese.txt index ae1170aee8..1ab4d7bba3 100644 --- a/src/lang/traditional_chinese.txt +++ b/src/lang/traditional_chinese.txt @@ -1800,7 +1800,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}變更 STR_CHEAT_SETUP_PROD :{LTBLUE}允許修改產量:{ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}新配色 STR_LIVERY_GENERAL_TOOLTIP :{BLACK}顯示通用配色 STR_LIVERY_TRAIN_TOOLTIP :{BLACK}顯示列車配色 diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index ac7f22c24e..fd45b398fc 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -1804,7 +1804,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Yılı d STR_CHEAT_SETUP_PROD :{LTBLUE}Üretim değerlerini değiştir: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Yeni Renk STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Genel renk şemalarını göster STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Tren renk düzenlerini göster diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt index cacc4210dd..549e429878 100644 --- a/src/lang/ukrainian.txt +++ b/src/lang/ukrainian.txt @@ -1928,7 +1928,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Змін STR_CHEAT_SETUP_PROD :{LTBLUE}Дозволити зміну рівня виробництва: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Нова кольорова схема STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Показати загальне фарбування STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Показати фарбування поїздів diff --git a/src/lang/unfinished/frisian.txt b/src/lang/unfinished/frisian.txt index 05cc5f6c8d..d50e9e2056 100644 --- a/src/lang/unfinished/frisian.txt +++ b/src/lang/unfinished/frisian.txt @@ -1732,7 +1732,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Wizigje STR_CHEAT_SETUP_PROD :{LTBLUE}Stea oanpassen fan produksje ta: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Nei Kleurenskema STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Lit gewoane kleurskemas sjen STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Lit kleurskema sjen fan treinen diff --git a/src/lang/unfinished/persian.txt b/src/lang/unfinished/persian.txt index 80059f1186..80fd612c90 100644 --- a/src/lang/unfinished/persian.txt +++ b/src/lang/unfinished/persian.txt @@ -1515,7 +1515,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}تغیی STR_CHEAT_SETUP_PROD :{LTBLUE}قابلیت تغییر سطح تولید صنایع: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}طرح رنگ جدید STR_LIVERY_GENERAL_TOOLTIP :{BLACK}نمایش طرح رنگهای اصلی STR_LIVERY_TRAIN_TOOLTIP :{BLACK}نمایش طرح رنگهای قطار diff --git a/src/lang/unfinished/urdu.txt b/src/lang/unfinished/urdu.txt index 0cc3ba7b68..faa83ddf41 100644 --- a/src/lang/unfinished/urdu.txt +++ b/src/lang/unfinished/urdu.txt @@ -1412,7 +1412,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}موجو STR_CHEAT_SETUP_PROD :{LTBLUE}پیداوار میں تبدیلی کو فعال کریں: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}نئے رنگوں کا انتخاب STR_LIVERY_GENERAL_TOOLTIP :{BLACK}رنگوں کا عام انتخاب دکھائیں STR_LIVERY_TRAIN_TOOLTIP :{BLACK}ریل گاڑیوں کے رنگوں کا انتخاب دکھائیں diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt index e098ee47e6..2136e16d79 100644 --- a/src/lang/vietnamese.txt +++ b/src/lang/vietnamese.txt @@ -1816,7 +1816,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Thay đ STR_CHEAT_SETUP_PROD :{LTBLUE}Cho phép khả năng sửa giá trị sản xuất: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Cách Phối Màu Mới STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Hiển thị phối màu chung STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Hiển thị phối màu tàu hỏa diff --git a/src/lang/welsh.txt b/src/lang/welsh.txt index a6444cc81c..1029140c26 100644 --- a/src/lang/welsh.txt +++ b/src/lang/welsh.txt @@ -1803,7 +1803,6 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Newid y STR_CHEAT_SETUP_PROD :{LTBLUE}Galluogi newid graddfeydd cynhyrchu: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Cynllun Lliw Newydd STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Dangos cynllun lliw cyffredinol STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Dangos cynllun lliw trenau From 80c7965c65d5552482a51f39e5f1e03aeeb423c2 Mon Sep 17 00:00:00 2001 From: translators Date: Sun, 27 Jan 2019 19:45:42 +0100 Subject: [PATCH 34/41] Update: Translations from eints belarusian: 1 change by translators norwegian (nynorsk): 1 change by translators chinese (simplified): 1 change by translators serbian: 1 change by translators czech: 1 change by translators esperanto: 1 change by translators chinese (traditional): 1 change by translators portuguese (brazilian): 1 change by translators norwegian (bokmal): 1 change by translators swedish: 1 change by translators lithuanian: 1 change by translators hebrew: 1 change by translators croatian: 1 change by translators bulgarian: 1 change by translators catalan: 1 change by translators afrikaans: 1 change by translators vietnamese: 1 change by translators slovenian: 1 change by translators faroese: 1 change by translators thai: 1 change by translators frisian: 1 change by translators scottish gaelic: 1 change by translators persian: 1 change by translators korean: 1 change by translators greek: 1 change by translators latin: 1 change by translators welsh: 1 change by translators galician: 1 change by translators japanese: 1 change by translators english (au): 1 change by translators italian: 6 changes by lorenzodv, 1 change by translators urdu: 1 change by translators french: 7 changes by glx malay: 1 change by translators tamil: 1 change by translators spanish: 4 changes by SilverSurferZzZ, 1 change by translators slovak: 1 change by translators basque: 1 change by translators polish: 1 change by translators indonesian: 1 change by translators arabic (egypt): 1 change by translators russian: 2 changes by Lone_Wolf, 1 change by translators hungarian: 1 change by translators luxembourgish: 1 change by translators romanian: 1 change by translators irish: 1 change by translators latvian: 1 change by translators german: 1 change by translators danish: 1 change by translators spanish (mexican): 7 changes by Absay icelandic: 1 change by translators english (us): 1 change by translators turkish: 1 change by translators portuguese: 1 change by translators ukrainian: 1 change by translators finnish: 1 change by translators dutch: 1 change by translators estonian: 1 change by translators --- src/lang/afrikaans.txt | 1 + src/lang/arabic_egypt.txt | 1 + src/lang/basque.txt | 1 + src/lang/belarusian.txt | 1 + src/lang/brazilian_portuguese.txt | 1 + src/lang/bulgarian.txt | 1 + src/lang/catalan.txt | 1 + src/lang/croatian.txt | 1 + src/lang/czech.txt | 1 + src/lang/danish.txt | 1 + src/lang/dutch.txt | 1 + src/lang/english_AU.txt | 1 + src/lang/english_US.txt | 1 + src/lang/esperanto.txt | 1 + src/lang/estonian.txt | 1 + src/lang/faroese.txt | 1 + src/lang/finnish.txt | 1 + src/lang/french.txt | 7 +++++++ src/lang/gaelic.txt | 1 + src/lang/galician.txt | 1 + src/lang/german.txt | 1 + src/lang/greek.txt | 1 + src/lang/hebrew.txt | 1 + src/lang/hungarian.txt | 1 + src/lang/icelandic.txt | 1 + src/lang/indonesian.txt | 1 + src/lang/irish.txt | 1 + src/lang/italian.txt | 7 +++++++ src/lang/japanese.txt | 1 + src/lang/korean.txt | 1 + src/lang/latin.txt | 1 + src/lang/latvian.txt | 1 + src/lang/lithuanian.txt | 1 + src/lang/luxembourgish.txt | 1 + src/lang/malay.txt | 1 + src/lang/norwegian_bokmal.txt | 1 + src/lang/norwegian_nynorsk.txt | 1 + src/lang/polish.txt | 1 + src/lang/portuguese.txt | 1 + src/lang/romanian.txt | 1 + src/lang/russian.txt | 4 +++- src/lang/serbian.txt | 1 + src/lang/simplified_chinese.txt | 1 + src/lang/slovak.txt | 1 + src/lang/slovenian.txt | 1 + src/lang/spanish.txt | 7 +++++-- src/lang/spanish_MX.txt | 7 +++++++ src/lang/swedish.txt | 1 + src/lang/tamil.txt | 1 + src/lang/thai.txt | 1 + src/lang/traditional_chinese.txt | 1 + src/lang/turkish.txt | 1 + src/lang/ukrainian.txt | 1 + src/lang/unfinished/frisian.txt | 1 + src/lang/unfinished/persian.txt | 1 + src/lang/unfinished/urdu.txt | 1 + src/lang/vietnamese.txt | 1 + src/lang/welsh.txt | 1 + 58 files changed, 82 insertions(+), 3 deletions(-) diff --git a/src/lang/afrikaans.txt b/src/lang/afrikaans.txt index cf55383ea8..56cbe04a04 100644 --- a/src/lang/afrikaans.txt +++ b/src/lang/afrikaans.txt @@ -1801,6 +1801,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Verander STR_CHEAT_SETUP_PROD :{LTBLUE}Aktiveer modifisering van produksie waardes: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Nuwe Kleur Skema STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Toon algemene kleurskemas STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Wys trein kleur skemas diff --git a/src/lang/arabic_egypt.txt b/src/lang/arabic_egypt.txt index 5e7f918831..2eb29baa31 100644 --- a/src/lang/arabic_egypt.txt +++ b/src/lang/arabic_egypt.txt @@ -1471,6 +1471,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}غير STR_CHEAT_SETUP_PROD :{LTBLUE}تفعيل تغيير قيمة الانتاج: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}الوان جديدة STR_LIVERY_GENERAL_TOOLTIP :{BLACK}اظهر اللون العام STR_LIVERY_TRAIN_TOOLTIP :{BLACK}اظهر لون القطائرات diff --git a/src/lang/basque.txt b/src/lang/basque.txt index 2c1309edab..0c2e09e24d 100644 --- a/src/lang/basque.txt +++ b/src/lang/basque.txt @@ -1711,6 +1711,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Aurtengo STR_CHEAT_SETUP_PROD :{LTBLUE}Ekoizpen balioak aldatzea baimendu: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Kolore eskema berria STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Erakutsi kolore eskema orokorrak STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Erakutsi trenen kolore eskemak diff --git a/src/lang/belarusian.txt b/src/lang/belarusian.txt index cce68727e9..c2e3a1435d 100644 --- a/src/lang/belarusian.txt +++ b/src/lang/belarusian.txt @@ -2126,6 +2126,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Зьмя STR_CHEAT_SETUP_PROD :{LTBLUE}Дазволіць зьмяненьне прадукцыйнасьці: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Новая каляровая схэма STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Паказаць асноўныя каляровыя схэмы STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Паказаць каляровыя схэмы цягнікоў diff --git a/src/lang/brazilian_portuguese.txt b/src/lang/brazilian_portuguese.txt index 65cccee2ea..ffa56055fd 100644 --- a/src/lang/brazilian_portuguese.txt +++ b/src/lang/brazilian_portuguese.txt @@ -1817,6 +1817,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Mudar an STR_CHEAT_SETUP_PROD :{LTBLUE}Ativar modificação de valores de produção: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Novo Esquema de Cores STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Exibir esquemas de cor gerais STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Exibe esquemas de cor de trens diff --git a/src/lang/bulgarian.txt b/src/lang/bulgarian.txt index e88b498979..d674c67d40 100644 --- a/src/lang/bulgarian.txt +++ b/src/lang/bulgarian.txt @@ -1749,6 +1749,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Пром STR_CHEAT_SETUP_PROD :{LTBLUE}Промяна на производствените стойности: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Нова цветове STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Показване на общи цветови схеми STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Показване цветовите схеми на влаковете diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index 5e9a8d35dd..57d4e57322 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -1815,6 +1815,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Canvia l STR_CHEAT_SETUP_PROD :{LTBLUE}Activa la modificació dels valors de producció: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Nou esquema de colors STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Mostra esquemes de colors generals STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Mostra els esquemes de colors dels trens diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index 5ec2802826..79b6b1d9b0 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -1916,6 +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_GENERAL_TOOLTIP :{BLACK}Pokaži generalne sheme boja STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Pokaži sheme boja za vlak diff --git a/src/lang/czech.txt b/src/lang/czech.txt index 8b97a9ac96..17a09c6ac9 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -1895,6 +1895,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Změnit STR_CHEAT_SETUP_PROD :{LTBLUE}Povolit změnu produkce průmyslu: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Nové barevné schéma STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Zobrazit všeobecná barevná schémata STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Zobrazit barevná schémata pro vlaky diff --git a/src/lang/danish.txt b/src/lang/danish.txt index 74b15ef57c..93fa13575c 100644 --- a/src/lang/danish.txt +++ b/src/lang/danish.txt @@ -1809,6 +1809,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Skift å STR_CHEAT_SETUP_PROD :{LTBLUE}Aktiver modifikation af produktion: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Nyt farvetema STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Vis generelle farveskemaer STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Vis farveskemaer for tog diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index 8a6ae55e79..3a932ae17f 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -1815,6 +1815,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Wijzig h STR_CHEAT_SETUP_PROD :{LTBLUE}Sta aanpassen productiewaarden toe: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Nieuw kleurenschema STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Toon algemene kleurenschema's STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Toon kleurenschema's voor treinen diff --git a/src/lang/english_AU.txt b/src/lang/english_AU.txt index 20365c9957..403cd8eade 100644 --- a/src/lang/english_AU.txt +++ b/src/lang/english_AU.txt @@ -1775,6 +1775,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Change c STR_CHEAT_SETUP_PROD :{LTBLUE}Enable modifying production values: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}New Colour Scheme STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Show general colour schemes STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Show train colour schemes diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index 079ee24dce..6e03e5b242 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -1813,6 +1813,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Change c STR_CHEAT_SETUP_PROD :{LTBLUE}Enable modifying production values: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}New Color Scheme STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Show general color schemes STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Show train color schemes diff --git a/src/lang/esperanto.txt b/src/lang/esperanto.txt index 51500cafc4..d8a78e8ed2 100644 --- a/src/lang/esperanto.txt +++ b/src/lang/esperanto.txt @@ -1458,6 +1458,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Ŝanĝu STR_CHEAT_SETUP_PROD :{LTBLUE}Ebligu ŝanĝi produktvalorojn: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Nova Kolorskemo STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Montru ĝeneralajn kolorskemojn STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Montru trajnajn kolorskemojn diff --git a/src/lang/estonian.txt b/src/lang/estonian.txt index a5324c6571..8ff3974270 100644 --- a/src/lang/estonian.txt +++ b/src/lang/estonian.txt @@ -1857,6 +1857,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Muuda jo STR_CHEAT_SETUP_PROD :{LTBLUE}Tootmisväärtuste muutmine: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Uus värvivalik STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Näita üldiseid värvistikke STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Näita rongide värvistikke diff --git a/src/lang/faroese.txt b/src/lang/faroese.txt index 0fd7fc4352..9dd30eb324 100644 --- a/src/lang/faroese.txt +++ b/src/lang/faroese.txt @@ -1621,6 +1621,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Broyt n STR_CHEAT_SETUP_PROD :{LTBLUE}Gilda broytingar av framleiðslu virðum: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Nýggja lit samanseting STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Vís vanligu lit samansetingarnar STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Vís tok lit samansetingarnar diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt index 2584fbc53e..86edbf439c 100644 --- a/src/lang/finnish.txt +++ b/src/lang/finnish.txt @@ -1816,6 +1816,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Muuta ny STR_CHEAT_SETUP_PROD :{LTBLUE}Salli tuotantomäärien muuttaminen: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Uusi väriteema STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Näytä yleiset väriteemat STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Näytä junan väriteemat diff --git a/src/lang/french.txt b/src/lang/french.txt index 868ddfdca9..dd7198db16 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -1821,6 +1821,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Modifier STR_CHEAT_SETUP_PROD :{LTBLUE}Permettre la modification des valeurs de production{NBSP}: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}{COMPANY} - Couleur STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Montrer les livrées générales STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Montrer les livrées de trains @@ -2895,7 +2896,12 @@ STR_NEWGRF_SETTINGS_VERSION :{BLACK}Version{ STR_NEWGRF_SETTINGS_MIN_VERSION :{BLACK}Version compatible min.{NBSP}: {SILVER}{NUM} STR_NEWGRF_SETTINGS_MD5SUM :{BLACK}MD5sum{NBSP}: {SILVER}{STRING} STR_NEWGRF_SETTINGS_PALETTE :{BLACK}Palette{NBSP}: {SILVER}{STRING} +STR_NEWGRF_SETTINGS_PALETTE_DEFAULT :Défaut (D) +STR_NEWGRF_SETTINGS_PALETTE_DEFAULT_32BPP :Défaut (D) / 32 bpp +STR_NEWGRF_SETTINGS_PALETTE_LEGACY :Ancienne (W) +STR_NEWGRF_SETTINGS_PALETTE_LEGACY_32BPP :Ancienne (W) / 32 bpp STR_NEWGRF_SETTINGS_PARAMETER :{BLACK}Paramètres{NBSP}: {SILVER}{STRING} +STR_NEWGRF_SETTINGS_PARAMETER_NONE :Aucuns STR_NEWGRF_SETTINGS_NO_INFO :{BLACK}Pas d'informations disponibles STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}Module correspondant non trouvé @@ -3458,6 +3464,7 @@ STR_PURCHASE_INFO_AIRCRAFT_CAPACITY :{BLACK}Capacit STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Wagons motorisés{NBSP}: {GOLD}+{POWER}{BLACK} − Poids{NBSP}: {GOLD}+{WEIGHT_SHORT} STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Réaménageable pour{NBSP}: {GOLD}{STRING} STR_PURCHASE_INFO_ALL_TYPES :Tous les types de cargaison +STR_PURCHASE_INFO_NONE :Aucune cargaison STR_PURCHASE_INFO_ALL_BUT :Tous sauf {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Effort de traction max.{NBSP}: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Rayon d'action{NBSP}: {GOLD}{COMMA}{NBSP}cases diff --git a/src/lang/gaelic.txt b/src/lang/gaelic.txt index 26a2274e20..af5049d114 100644 --- a/src/lang/gaelic.txt +++ b/src/lang/gaelic.txt @@ -2005,6 +2005,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Atharrai STR_CHEAT_SETUP_PROD :{LTBLUE}Cuir an comas atharrachadh air luachan saothrachaidh: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Sgeama nan dath ùr STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Seall sgeamannan nan dath coitcheann STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Seall sgeamannan nan dath airson trèanaichean diff --git a/src/lang/galician.txt b/src/lang/galician.txt index 6ee28d060d..f3fddb5821 100644 --- a/src/lang/galician.txt +++ b/src/lang/galician.txt @@ -1804,6 +1804,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Cambiar STR_CHEAT_SETUP_PROD :{LTBLUE}Permitir a modificación dos valores de producción: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Novo esquema de cor STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Mostra-los esquemas de cor xerais STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Mostra-los esquemas de cor dos trens diff --git a/src/lang/german.txt b/src/lang/german.txt index 19a26a3bba..4902216617 100644 --- a/src/lang/german.txt +++ b/src/lang/german.txt @@ -1804,6 +1804,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Ändert STR_CHEAT_SETUP_PROD :{LTBLUE}Erlaube manuelles Ändern der Produktionsleistungen: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Neues Farbschema STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Allgemeines Farbschema anzeigen STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Zugfarbschema anzeigen diff --git a/src/lang/greek.txt b/src/lang/greek.txt index fb43d490f9..64471ad58e 100644 --- a/src/lang/greek.txt +++ b/src/lang/greek.txt @@ -1920,6 +1920,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Αλλα STR_CHEAT_SETUP_PROD :{LTBLUE}Ενεργοποίηση δυνατότητας αλλαγής τιμών παραγωγής: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Νέος Χρωματισμός STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Εμφάνιση γενικών χρωματικών μοτίβων STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Εμφάνιση χρωματικών μοτίβων τρένων diff --git a/src/lang/hebrew.txt b/src/lang/hebrew.txt index 08c7950dea..bc5f563889 100644 --- a/src/lang/hebrew.txt +++ b/src/lang/hebrew.txt @@ -1826,6 +1826,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}שנה STR_CHEAT_SETUP_PROD :{LTBLUE}אפשר שינוי ערכי התפוקה: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}הגדרות צבע חדשות STR_LIVERY_GENERAL_TOOLTIP :{BLACK}הצג הגדרות צבע כלליות STR_LIVERY_TRAIN_TOOLTIP :{BLACK}הצג הגדרות צבע לרכבות diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index 62d5141702..8eb63547f5 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -1867,6 +1867,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Aktuáli STR_CHEAT_SETUP_PROD :{LTBLUE}A nyersanyagüzemek termelése változtatható: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Új színséma STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Általános színsémák mutatása STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Vonat színsémák mutatása diff --git a/src/lang/icelandic.txt b/src/lang/icelandic.txt index e39c42129a..8b05505cfa 100644 --- a/src/lang/icelandic.txt +++ b/src/lang/icelandic.txt @@ -1663,6 +1663,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Breyta u STR_CHEAT_SETUP_PROD :{LTBLUE}Leyfa breytingar á verðmæti framleiðslu: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Nýtt Litaskema STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Grunnlitur fyrirtækis STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Litaskema lesta diff --git a/src/lang/indonesian.txt b/src/lang/indonesian.txt index a4eec663c6..1a7728cccc 100644 --- a/src/lang/indonesian.txt +++ b/src/lang/indonesian.txt @@ -1810,6 +1810,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Ubah tah STR_CHEAT_SETUP_PROD :{LTBLUE}Aktifkan modifikasi nilai produksi: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Warna tema baru STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Tampilkan skema warna umum STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Tampilkan skema warna kereta diff --git a/src/lang/irish.txt b/src/lang/irish.txt index b30e001565..d4679ded9e 100644 --- a/src/lang/irish.txt +++ b/src/lang/irish.txt @@ -1800,6 +1800,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Athraigh STR_CHEAT_SETUP_PROD :{LTBLUE}Cumasaigh luachanna táirgeachta a athrú: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Scéim Dathanna Nua STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Taispeáin scéimeanna dathanna ginearálta STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Taispeáin scéimeanna dathanna na dtraenacha diff --git a/src/lang/italian.txt b/src/lang/italian.txt index f2b6bb8818..ace459d6ec 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -1844,6 +1844,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Cambia l STR_CHEAT_SETUP_PROD :{LTBLUE}Permetti la modifica dei valori di produzione: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Nuovo schema colori STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Mostra gli schemi di colorazione generali STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Mostra gli schemi di colorazione dei treni @@ -2924,7 +2925,12 @@ STR_NEWGRF_SETTINGS_VERSION :{BLACK}Versione STR_NEWGRF_SETTINGS_MIN_VERSION :{BLACK}Versione minima compatibile: {SILVER}{NUM} STR_NEWGRF_SETTINGS_MD5SUM :{BLACK}Somma MD5: {SILVER}{STRING} STR_NEWGRF_SETTINGS_PALETTE :{BLACK}Tavolozza: {SILVER}{STRING} +STR_NEWGRF_SETTINGS_PALETTE_DEFAULT :Predefinita (D) +STR_NEWGRF_SETTINGS_PALETTE_DEFAULT_32BPP :Predefinita (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 :Nessuno STR_NEWGRF_SETTINGS_NO_INFO :{BLACK}Informazioni non disponibili STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}File corrispondente non trovato @@ -3487,6 +3493,7 @@ STR_PURCHASE_INFO_AIRCRAFT_CAPACITY :{BLACK}Capacit STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Vagoni motorizzati: {GOLD}+{POWER}{BLACK} Peso: {GOLD}+{WEIGHT_SHORT} STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Riadattabile per: {GOLD}{STRING} STR_PURCHASE_INFO_ALL_TYPES :Tutti i tipi di carico +STR_PURCHASE_INFO_NONE :Niente STR_PURCHASE_INFO_ALL_BUT :Tutto tranne {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Sforzo di trazione massimo: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Autonomia: {GOLD}{COMMA} riquadr{P o i} diff --git a/src/lang/japanese.txt b/src/lang/japanese.txt index 4381cc0959..a6aa2f127e 100644 --- a/src/lang/japanese.txt +++ b/src/lang/japanese.txt @@ -1800,6 +1800,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}現在 STR_CHEAT_SETUP_PROD :{LTBLUE}生産量変更: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}コーポレートカラー STR_LIVERY_GENERAL_TOOLTIP :{BLACK}通常のコーポレートカラー(車両塗装色)を表示します STR_LIVERY_TRAIN_TOOLTIP :{BLACK}列車の塗装色を表示します diff --git a/src/lang/korean.txt b/src/lang/korean.txt index 6d01b46db5..73cfe66b30 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -1817,6 +1817,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}현재 STR_CHEAT_SETUP_PROD :{LTBLUE}1차 산업시설 생산량 조절 허용: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}새 색상 STR_LIVERY_GENERAL_TOOLTIP :{BLACK}기본 색상 선택 STR_LIVERY_TRAIN_TOOLTIP :{BLACK}열차 색상 선택 diff --git a/src/lang/latin.txt b/src/lang/latin.txt index cc670da54a..5de041dcf7 100644 --- a/src/lang/latin.txt +++ b/src/lang/latin.txt @@ -2001,6 +2001,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Mutare a STR_CHEAT_SETUP_PROD :{LTBLUE}Sinere mutare productiones industriarum: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Schema Coloris Novum STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Monstrare schemata coloris generalia STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Monstrare schemata coloris traminum diff --git a/src/lang/latvian.txt b/src/lang/latvian.txt index 1a109dd4bc..0db5c191c9 100644 --- a/src/lang/latvian.txt +++ b/src/lang/latvian.txt @@ -1747,6 +1747,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Mainīt STR_CHEAT_SETUP_PROD :{LTBLUE}Ieslēgt ražojumu vērtības maiņu: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Jauna identitātes krāsu shēma STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Rādīt vispārējo identitates krāsu shēmas STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Rādīt vilcienu identitātes krāsu shēmas diff --git a/src/lang/lithuanian.txt b/src/lang/lithuanian.txt index b1afa66193..f2309f9674 100644 --- a/src/lang/lithuanian.txt +++ b/src/lang/lithuanian.txt @@ -2019,6 +2019,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Pakeisti STR_CHEAT_SETUP_PROD :{LTBLUE}Leisti keisti produkcijos vertes: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Naujos spalvos STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Rodyti pagrinidines spalvų parinktis STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Rodyti traukiniš spalvas diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index 06309848de..ae7f63000d 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -1803,6 +1803,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Wiessel STR_CHEAT_SETUP_PROD :{LTBLUE}Erlaabt d'ännere vun de Produktiounswäerter: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Neie Faarfschema STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Weis generell Faarfschemen STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Weis Zuch Faarfschemen diff --git a/src/lang/malay.txt b/src/lang/malay.txt index 2b54cb3348..d17a9c4437 100644 --- a/src/lang/malay.txt +++ b/src/lang/malay.txt @@ -1561,6 +1561,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Tukar ta STR_CHEAT_SETUP_PROD :{LTBLUE}Bolehkan pengubahsuaian nilai-nilai pengeluaran: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Skim Warna Baru STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Tunjukkan skim warna am STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Tunjukkan skim warna keretapi diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index d71bf08376..8573b31c8e 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -1806,6 +1806,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Endre n STR_CHEAT_SETUP_PROD :{LTBLUE}Tillat endring av produksjonsmengder: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Ny firmafarge STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Vis generelle fargetemaer STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Vis togfargetemaer diff --git a/src/lang/norwegian_nynorsk.txt b/src/lang/norwegian_nynorsk.txt index fcf44f91fa..d102229539 100644 --- a/src/lang/norwegian_nynorsk.txt +++ b/src/lang/norwegian_nynorsk.txt @@ -1723,6 +1723,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Byt nove STR_CHEAT_SETUP_PROD :{LTBLUE}Tillet endring av produksjonsmengder: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Ny firmafarge STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Syne generelle fargetema STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Syne togfargetema diff --git a/src/lang/polish.txt b/src/lang/polish.txt index 5fde434c55..6728551ac0 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -2195,6 +2195,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Zmiana o STR_CHEAT_SETUP_PROD :{LTBLUE}Pozwól modyfikować wielkość produkcji przedsiębiorstw: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Nowy schemat kolorów STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Pokaż ogólne schematy koloru STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Pokaż schematy koloru pociągów diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt index 20ee739d65..020f304f76 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -1804,6 +1804,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Alterar STR_CHEAT_SETUP_PROD :{LTBLUE}Activar modificação de valores de produção: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Novo Esquema de Cores STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Exibir esquema de cores geral STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Exibir esquemas de cores dos comboios diff --git a/src/lang/romanian.txt b/src/lang/romanian.txt index b97cf52fc1..45f6ad4158 100644 --- a/src/lang/romanian.txt +++ b/src/lang/romanian.txt @@ -1765,6 +1765,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Schimbă STR_CHEAT_SETUP_PROD :{LTBLUE}Activează accesul la valorile de producţie: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Schemă de culori nouă STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Afişează schemele generale de culori STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Arată schemele de culori pentru trenuri diff --git a/src/lang/russian.txt b/src/lang/russian.txt index 30b226379e..72132ac069 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -602,7 +602,7 @@ STR_ABOUT_MENU_SCREENSHOT :Снимок э STR_ABOUT_MENU_ZOOMIN_SCREENSHOT :Снимок экрана в макс. приближении STR_ABOUT_MENU_DEFAULTZOOM_SCREENSHOT :Снимок экрана в обычном масштабе STR_ABOUT_MENU_GIANT_SCREENSHOT :Снимок всей карты -STR_ABOUT_MENU_SHOW_FRAMERATE :Показать кол-во кадров/с +STR_ABOUT_MENU_SHOW_FRAMERATE :Информация о скорости игры STR_ABOUT_MENU_ABOUT_OPENTTD :Об игре STR_ABOUT_MENU_SPRITE_ALIGNER :Выравнивание спрайтов STR_ABOUT_MENU_TOGGLE_BOUNDING_BOXES :Переключить ограничивающие рамки @@ -1972,6 +1972,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Изме STR_CHEAT_SETUP_PROD :{LTBLUE}Разрешить изменение производительности: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Новая цветовая схема STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Настройка основной цветовой схемы STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Настройка цветовой схемы поездов @@ -2905,6 +2906,7 @@ STR_FRAMERATE_FPS_BAD :{RED}{DECIMAL} STR_FRAMERATE_GRAPH_MILLISECONDS :{TINY_FONT}{COMMA} мс STR_FRAMERATE_GRAPH_SECONDS :{TINY_FONT}{COMMA} с ############ Leave those lines in this order!! +STR_FRAMERATE_GAMELOOP :{BLACK}Расчёт игрового цикла: STR_FRAMERATE_GL_LINKGRAPH :{BLACK} Задержка графа распределения: STR_FRAMERATE_DRAWING :{BLACK}Отрисовка изображения: STR_FRAMERATE_DRAWING_VIEWPORTS :{BLACK} Дополнительные окна: diff --git a/src/lang/serbian.txt b/src/lang/serbian.txt index 6ed65b8ab4..556d844512 100644 --- a/src/lang/serbian.txt +++ b/src/lang/serbian.txt @@ -2007,6 +2007,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Promena STR_CHEAT_SETUP_PROD :{LTBLUE}Dozvoliti promenu količine proizvodnje: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Nova šema boja STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Prikaži generalnu mustru boja STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Prikaži mustre boja vozova diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt index a1d165e0f1..78365fe130 100644 --- a/src/lang/simplified_chinese.txt +++ b/src/lang/simplified_chinese.txt @@ -1810,6 +1810,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}改变 STR_CHEAT_SETUP_PROD :{LTBLUE}开启可调整产量模式:{ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}新色彩方案 STR_LIVERY_GENERAL_TOOLTIP :{BLACK}显示总体配色方案 STR_LIVERY_TRAIN_TOOLTIP :{BLACK}显示列车配色方案 diff --git a/src/lang/slovak.txt b/src/lang/slovak.txt index ae6d9c98f6..6ef55d7cf0 100644 --- a/src/lang/slovak.txt +++ b/src/lang/slovak.txt @@ -1868,6 +1868,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Zmeniť STR_CHEAT_SETUP_PROD :{LTBLUE}Povoliť zmenu objemu výroby: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Nová farebná schéma STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Zobraziť všeobecné farebné schémy STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Zobraziť farebné schémy pre vlaky diff --git a/src/lang/slovenian.txt b/src/lang/slovenian.txt index 63d9ff5802..657fa8af6f 100644 --- a/src/lang/slovenian.txt +++ b/src/lang/slovenian.txt @@ -1954,6 +1954,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Spremeni STR_CHEAT_SETUP_PROD :{LTBLUE}Omogoči spreminjanje proizvodnih vrednosti: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Nova barvna shema STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Prikaz glavnih barvnih shem STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Prikaz barvnih shem vlakov diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index ccd3827c0b..fee155edfb 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -1074,7 +1074,7 @@ STR_RIVERS_FEW :Pocos STR_RIVERS_MODERATE :Medio STR_RIVERS_LOT :Muchos -STR_DISASTER_NONE :Ninguna +STR_DISASTER_NONE :Ninguno STR_DISASTER_REDUCED :Reducidas STR_DISASTER_NORMAL :Normales @@ -1598,7 +1598,7 @@ STR_CONFIG_SETTING_ZOOM_LVL_OUT_4X :4x STR_CONFIG_SETTING_ZOOM_LVL_OUT_8X :8x STR_CONFIG_SETTING_TOWN_GROWTH :Velocidad crecimiento población: {STRING} STR_CONFIG_SETTING_TOWN_GROWTH_HELPTEXT :Velocidad de crecimiento de los municipios -STR_CONFIG_SETTING_TOWN_GROWTH_NONE :Ninguna +STR_CONFIG_SETTING_TOWN_GROWTH_NONE :Ninguno STR_CONFIG_SETTING_TOWN_GROWTH_SLOW :Lenta STR_CONFIG_SETTING_TOWN_GROWTH_NORMAL :Normal STR_CONFIG_SETTING_TOWN_GROWTH_FAST :Rápida @@ -1813,6 +1813,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Cambiar STR_CHEAT_SETUP_PROD :{LTBLUE}Permitir modificación de los valores de producción: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Nuevo Esquema de Color STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Mostrar esquema de colores general STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Ver esquema de color de los trenes @@ -2723,6 +2724,7 @@ STR_FRAMERATE_SOUND :{BLACK}Mezcla d ############ Leave those lines in this order!! STR_FRAMETIME_CAPTION_GL_TRAINS :Ticks de trenes STR_FRAMETIME_CAPTION_GL_SHIPS :Ticks de barcos +STR_FRAMETIME_CAPTION_GL_AIRCRAFT :Ticks de aeronaves STR_FRAMETIME_CAPTION_DRAWING :Renderizado gráfico STR_FRAMETIME_CAPTION_VIDEO :Salida de vídeo STR_FRAMETIME_CAPTION_SOUND :Mezcla de sonido @@ -2870,6 +2872,7 @@ STR_NEWGRF_SETTINGS_MIN_VERSION :{BLACK}Mín. ve STR_NEWGRF_SETTINGS_MD5SUM :{BLACK}MD5sum: {SILVER}{STRING} STR_NEWGRF_SETTINGS_PALETTE :{BLACK}Paleta: {SILVER}{STRING} STR_NEWGRF_SETTINGS_PARAMETER :{BLACK}Parámetros: {SILVER}{STRING} +STR_NEWGRF_SETTINGS_PARAMETER_NONE :Ninguno STR_NEWGRF_SETTINGS_NO_INFO :{BLACK}No hay información disponible STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}Archivo no encontrado diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index 8221c7ebe9..58a127e84b 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -1821,6 +1821,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Cambiar STR_CHEAT_SETUP_PROD :{LTBLUE}Permitir cambiar los valores de producción: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Nueva cromática STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Mostrar cromática general STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Mostrar cromáticas para trenes @@ -2895,7 +2896,12 @@ STR_NEWGRF_SETTINGS_VERSION :{BLACK}Versión STR_NEWGRF_SETTINGS_MIN_VERSION :{BLACK}Mín. versión compatible: {SILVER}{NUM} STR_NEWGRF_SETTINGS_MD5SUM :{BLACK}MD5sum: {SILVER}{STRING} STR_NEWGRF_SETTINGS_PALETTE :{BLACK}Paleta: {SILVER}{STRING} +STR_NEWGRF_SETTINGS_PALETTE_DEFAULT :Por defecto (D) +STR_NEWGRF_SETTINGS_PALETTE_DEFAULT_32BPP :Por defecto (D) / 32 bpp +STR_NEWGRF_SETTINGS_PALETTE_LEGACY :Tradicional (W) +STR_NEWGRF_SETTINGS_PALETTE_LEGACY_32BPP :Tradicional (W) / 32 bpp STR_NEWGRF_SETTINGS_PARAMETER :{BLACK}Parámetros: {SILVER}{STRING} +STR_NEWGRF_SETTINGS_PARAMETER_NONE :Ninguna STR_NEWGRF_SETTINGS_NO_INFO :{BLACK}No hay información disponible STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}Archivo no encontrado @@ -3458,6 +3464,7 @@ STR_PURCHASE_INFO_AIRCRAFT_CAPACITY :{BLACK}Capacida STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Vagones con motor: {GOLD}+{POWER}{BLACK} Peso: {GOLD}+{WEIGHT_SHORT} STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Reforma: {GOLD}{STRING} STR_PURCHASE_INFO_ALL_TYPES :Todo tipo de carga +STR_PURCHASE_INFO_NONE :Ninguno STR_PURCHASE_INFO_ALL_BUT :Todo excepto {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Máx. fuerza de tracción: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Alcance: {GOLD}{COMMA} casillas diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index 496a490b8b..00ce1dd183 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -1803,6 +1803,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_GENERAL_TOOLTIP :{BLACK}Visa generellt färgschema STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Visa färgscheman för tåg diff --git a/src/lang/tamil.txt b/src/lang/tamil.txt index ac130ce1ec..7985fed264 100644 --- a/src/lang/tamil.txt +++ b/src/lang/tamil.txt @@ -1568,6 +1568,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}நட STR_CHEAT_SETUP_PROD :{LTBLUE}தயாரிப்பு மதிப்புகளை மாற்ற முடியும்: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}புதிய நிற கோட்பாடு STR_LIVERY_GENERAL_TOOLTIP :{BLACK}பொதுவான நிற கோட்பாடுகளைக் காட்டவும் STR_LIVERY_TRAIN_TOOLTIP :{BLACK}இரயில் நிற கோட்பாடுகளைக் காட்டவும் diff --git a/src/lang/thai.txt b/src/lang/thai.txt index e6a876b4d8..c1e82e18f5 100644 --- a/src/lang/thai.txt +++ b/src/lang/thai.txt @@ -1749,6 +1749,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}เป STR_CHEAT_SETUP_PROD :{LTBLUE}เปิดใช้งานการแก้ไขปริมาณผลผลิต: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}สร้างแบบสีใหม่ STR_LIVERY_GENERAL_TOOLTIP :{BLACK}แสดงแบบสีทั่วไป STR_LIVERY_TRAIN_TOOLTIP :{BLACK}แสดงแบบสีรถไฟ diff --git a/src/lang/traditional_chinese.txt b/src/lang/traditional_chinese.txt index 1ab4d7bba3..ae1170aee8 100644 --- a/src/lang/traditional_chinese.txt +++ b/src/lang/traditional_chinese.txt @@ -1800,6 +1800,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}變更 STR_CHEAT_SETUP_PROD :{LTBLUE}允許修改產量:{ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}新配色 STR_LIVERY_GENERAL_TOOLTIP :{BLACK}顯示通用配色 STR_LIVERY_TRAIN_TOOLTIP :{BLACK}顯示列車配色 diff --git a/src/lang/turkish.txt b/src/lang/turkish.txt index fd45b398fc..ac7f22c24e 100644 --- a/src/lang/turkish.txt +++ b/src/lang/turkish.txt @@ -1804,6 +1804,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Yılı d STR_CHEAT_SETUP_PROD :{LTBLUE}Üretim değerlerini değiştir: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Yeni Renk STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Genel renk şemalarını göster STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Tren renk düzenlerini göster diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt index 549e429878..cacc4210dd 100644 --- a/src/lang/ukrainian.txt +++ b/src/lang/ukrainian.txt @@ -1928,6 +1928,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Змін STR_CHEAT_SETUP_PROD :{LTBLUE}Дозволити зміну рівня виробництва: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Нова кольорова схема STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Показати загальне фарбування STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Показати фарбування поїздів diff --git a/src/lang/unfinished/frisian.txt b/src/lang/unfinished/frisian.txt index d50e9e2056..05cc5f6c8d 100644 --- a/src/lang/unfinished/frisian.txt +++ b/src/lang/unfinished/frisian.txt @@ -1732,6 +1732,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Wizigje STR_CHEAT_SETUP_PROD :{LTBLUE}Stea oanpassen fan produksje ta: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Nei Kleurenskema STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Lit gewoane kleurskemas sjen STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Lit kleurskema sjen fan treinen diff --git a/src/lang/unfinished/persian.txt b/src/lang/unfinished/persian.txt index 80fd612c90..80059f1186 100644 --- a/src/lang/unfinished/persian.txt +++ b/src/lang/unfinished/persian.txt @@ -1515,6 +1515,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}تغیی STR_CHEAT_SETUP_PROD :{LTBLUE}قابلیت تغییر سطح تولید صنایع: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}طرح رنگ جدید STR_LIVERY_GENERAL_TOOLTIP :{BLACK}نمایش طرح رنگهای اصلی STR_LIVERY_TRAIN_TOOLTIP :{BLACK}نمایش طرح رنگهای قطار diff --git a/src/lang/unfinished/urdu.txt b/src/lang/unfinished/urdu.txt index faa83ddf41..0cc3ba7b68 100644 --- a/src/lang/unfinished/urdu.txt +++ b/src/lang/unfinished/urdu.txt @@ -1412,6 +1412,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}موجو STR_CHEAT_SETUP_PROD :{LTBLUE}پیداوار میں تبدیلی کو فعال کریں: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}نئے رنگوں کا انتخاب STR_LIVERY_GENERAL_TOOLTIP :{BLACK}رنگوں کا عام انتخاب دکھائیں STR_LIVERY_TRAIN_TOOLTIP :{BLACK}ریل گاڑیوں کے رنگوں کا انتخاب دکھائیں diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt index 2136e16d79..e098ee47e6 100644 --- a/src/lang/vietnamese.txt +++ b/src/lang/vietnamese.txt @@ -1816,6 +1816,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Thay đ STR_CHEAT_SETUP_PROD :{LTBLUE}Cho phép khả năng sửa giá trị sản xuất: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Cách Phối Màu Mới STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Hiển thị phối màu chung STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Hiển thị phối màu tàu hỏa diff --git a/src/lang/welsh.txt b/src/lang/welsh.txt index 1029140c26..a6444cc81c 100644 --- a/src/lang/welsh.txt +++ b/src/lang/welsh.txt @@ -1803,6 +1803,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Newid y STR_CHEAT_SETUP_PROD :{LTBLUE}Galluogi newid graddfeydd cynhyrchu: {ORANGE}{STRING} # Livery window +STR_LIVERY_CAPTION :{WHITE}Cynllun Lliw Newydd STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Dangos cynllun lliw cyffredinol STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Dangos cynllun lliw trenau From 654b635f6fb866fcc3ccabcf8333f3b7495ebb26 Mon Sep 17 00:00:00 2001 From: glx22 Date: Sun, 27 Jan 2019 22:01:09 +0100 Subject: [PATCH 35/41] Fix #7122: OnClick() and DrawWidget() editability was inconsistent in AISettingsWindow (#7123) --- src/ai/ai_gui.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/ai/ai_gui.cpp b/src/ai/ai_gui.cpp index 4b248f5efc..8dad16fabc 100644 --- a/src/ai/ai_gui.cpp +++ b/src/ai/ai_gui.cpp @@ -378,7 +378,7 @@ struct AISettingsWindow : public Window { for (; this->vscroll->IsVisible(i) && it != visible_settings.end(); i++, it++) { const ScriptConfigItem &config_item = **it; int current_value = config->GetSetting((config_item).name); - bool editable = _game_mode == GM_MENU || ((this->slot != OWNER_DEITY) && !Company::IsValidID(this->slot)) || (config_item.flags & SCRIPTCONFIG_INGAME) != 0; + bool editable = this->IsEditableItem(config_item); StringID str; TextColour colour; @@ -441,7 +441,7 @@ struct AISettingsWindow : public Window { VisibleSettingsList::const_iterator it = this->visible_settings.begin(); for (int i = 0; i < num; i++) it++; const ScriptConfigItem config_item = **it; - if (_game_mode == GM_NORMAL && ((this->slot == OWNER_DEITY) || Company::IsValidID(this->slot)) && (config_item.flags & SCRIPTCONFIG_INGAME) == 0) return; + if (!this->IsEditableItem(config_item)) return; if (this->clicked_row != num) { DeleteChildWindows(WC_QUERY_STRING); @@ -586,6 +586,12 @@ struct AISettingsWindow : public Window { { this->RebuildVisibleSettings(); } + +private: + bool IsEditableItem(const ScriptConfigItem config_item) const + { + return _game_mode == GM_MENU || ((this->slot != OWNER_DEITY) && !Company::IsValidID(this->slot)) || (config_item.flags & SCRIPTCONFIG_INGAME) != 0; + } }; /** Widgets for the AI settings window. */ From b28a6784363254de49cc95747c4aada7477d8338 Mon Sep 17 00:00:00 2001 From: glx22 Date: Mon, 28 Jan 2019 17:16:19 +0100 Subject: [PATCH 36/41] Fix #7112, fef8b831a9: incorrect precondition check (#7127) --- src/script/api/script_town.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/script/api/script_town.cpp b/src/script/api/script_town.cpp index 4cdd6a9d0e..64f8e166ea 100644 --- a/src/script/api/script_town.cpp +++ b/src/script/api/script_town.cpp @@ -170,7 +170,7 @@ break; default: - EnforcePrecondition(false, days_between_town_growth <= MAX_TOWN_GROWTH_TICKS); + EnforcePrecondition(false, (days_between_town_growth * DAY_TICKS / TOWN_GROWTH_TICKS) <= MAX_TOWN_GROWTH_TICKS); /* Don't use growth_rate 0 as it means GROWTH_NORMAL */ growth_rate = max(days_between_town_growth * DAY_TICKS, 2u) - 1; break; From 9c6ac309e0b51fe7952f42ca9a8e2ee30debc473 Mon Sep 17 00:00:00 2001 From: Samu Date: Mon, 1 Oct 2018 23:44:12 +0100 Subject: [PATCH 37/41] Fix #6636: Airplanes could be sent to helicopter station depots --- src/aircraft_cmd.cpp | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/aircraft_cmd.cpp b/src/aircraft_cmd.cpp index 5f36a75779..d6d99ae242 100644 --- a/src/aircraft_cmd.cpp +++ b/src/aircraft_cmd.cpp @@ -128,16 +128,15 @@ static StationID FindNearestHangar(const Aircraft *v) const AircraftVehicleInfo *avi = AircraftVehInfo(v->engine_type); FOR_ALL_STATIONS(st) { - if (st->owner != v->owner || !(st->facilities & FACIL_AIRPORT)) continue; + if (st->owner != v->owner || !(st->facilities & FACIL_AIRPORT) || !st->airport.HasHangar()) continue; const AirportFTAClass *afc = st->airport.GetFTA(); - if (!st->airport.HasHangar() || ( - /* don't crash the plane if we know it can't land at the airport */ - (afc->flags & AirportFTAClass::SHORT_STRIP) && - (avi->subtype & AIR_FAST) && - !_cheats.no_jetcrash.value)) { - continue; - } + + /* don't crash the plane if we know it can't land at the airport */ + if ((afc->flags & AirportFTAClass::SHORT_STRIP) && (avi->subtype & AIR_FAST) && !_cheats.no_jetcrash.value) continue; + + /* the plane won't land at any helicopter station */ + if (!(afc->flags & AirportFTAClass::AIRPLANES) && (avi->subtype & AIR_CTOL)) continue; /* v->tile can't be used here, when aircraft is flying v->tile is set to 0 */ uint distance = DistanceSquare(vtile, st->airport.tile); @@ -380,7 +379,7 @@ bool Aircraft::FindClosestDepot(TileIndex *location, DestinationID *destination, { const Station *st = GetTargetAirportIfValid(this); /* If the station is not a valid airport or if it has no hangars */ - if (st == NULL || !st->airport.HasHangar()) { + if (st == NULL || !CanVehicleUseStation(this, st) || !st->airport.HasHangar()) { /* the aircraft has to search for a hangar on its own */ StationID station = FindNearestHangar(this); From 64f1847becbb6ec5c0cf6c1ceaa8812893031713 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Thu, 18 Jan 2018 20:38:27 +0000 Subject: [PATCH 38/41] Codechange: [Linkgraph GUI] Replace line visibility detection algorithm Use an implementation of the Cohen-Sutherland line-clipping algorithm. The previous algorithm had an excessive false-positive rate. Line-rendering is sufficiently expensive that using a line-clipping algorithm with a much lower false-positive rate is a net performance benefit. --- src/linkgraph/linkgraph_gui.cpp | 67 ++++++++++++++++++++++++++++++--- 1 file changed, 61 insertions(+), 6 deletions(-) diff --git a/src/linkgraph/linkgraph_gui.cpp b/src/linkgraph/linkgraph_gui.cpp index 30c4451ee7..7923fc26c8 100644 --- a/src/linkgraph/linkgraph_gui.cpp +++ b/src/linkgraph/linkgraph_gui.cpp @@ -125,12 +125,67 @@ inline bool LinkGraphOverlay::IsPointVisible(Point pt, const DrawPixelInfo *dpi, */ inline bool LinkGraphOverlay::IsLinkVisible(Point pta, Point ptb, const DrawPixelInfo *dpi, int padding) const { - return !((pta.x < dpi->left - padding && ptb.x < dpi->left - padding) || - (pta.y < dpi->top - padding && ptb.y < dpi->top - padding) || - (pta.x > dpi->left + dpi->width + padding && - ptb.x > dpi->left + dpi->width + padding) || - (pta.y > dpi->top + dpi->height + padding && - ptb.y > dpi->top + dpi->height + padding)); + const int left = dpi->left - padding; + const int right = dpi->left + dpi->width + padding; + const int top = dpi->top - padding; + const int bottom = dpi->top + dpi->height + padding; + + /* + * This method is an implementation of the Cohen-Sutherland line-clipping algorithm. + * See: https://en.wikipedia.org/wiki/Cohen%E2%80%93Sutherland_algorithm + */ + + const uint8 INSIDE = 0; // 0000 + const uint8 LEFT = 1; // 0001 + const uint8 RIGHT = 2; // 0010 + const uint8 BOTTOM = 4; // 0100 + const uint8 TOP = 8; // 1000 + + int x0 = pta.x; + int y0 = pta.y; + int x1 = ptb.x; + int y1 = ptb.y; + + auto out_code = [&](int x, int y) -> uint8 { + uint8 out = INSIDE; + if (x < left) { + out |= LEFT; + } else if (x > right) { + out |= RIGHT; + } + if (y < top) { + out |= TOP; + } else if (y > bottom) { + out |= BOTTOM; + } + return out; + }; + + uint8 c0 = out_code(x0, y0); + uint8 c1 = out_code(x1, y1); + + while (true) { + if (c0 == 0 || c1 == 0) return true; + if ((c0 & c1) != 0) return false; + + if (c0 & TOP) { // point 0 is above the clip window + x0 = x0 + (int)(((int64) (x1 - x0)) * ((int64) (top - y0)) / ((int64) (y1 - y0))); + y0 = top; + } else if (c0 & BOTTOM) { // point 0 is below the clip window + x0 = x0 + (int)(((int64) (x1 - x0)) * ((int64) (bottom - y0)) / ((int64) (y1 - y0))); + y0 = bottom; + } else if (c0 & RIGHT) { // point 0 is to the right of clip window + y0 = y0 + (int)(((int64) (y1 - y0)) * ((int64) (right - x0)) / ((int64) (x1 - x0))); + x0 = right; + } else if (c0 & LEFT) { // point 0 is to the left of clip window + y0 = y0 + (int)(((int64) (y1 - y0)) * ((int64) (left - x0)) / ((int64) (x1 - x0))); + x0 = left; + } + + c0 = out_code(x0, y0); + } + + NOT_REACHED(); } /** From 9f458ecb10cb738c496792a3c378374463125dde Mon Sep 17 00:00:00 2001 From: translators Date: Mon, 28 Jan 2019 19:45:43 +0100 Subject: [PATCH 39/41] Update: Translations from eints korean: 15 changes by telk5093 spanish: 2 changes by SilverSurferZzZ russian: 21 changes by Lone_Wolf spanish (mexican): 13 changes by Absay --- src/lang/korean.txt | 16 +++++++++++++++- src/lang/russian.txt | 22 +++++++++++++++++++++- src/lang/spanish.txt | 3 ++- src/lang/spanish_MX.txt | 26 +++++++++++++------------- 4 files changed, 51 insertions(+), 16 deletions(-) diff --git a/src/lang/korean.txt b/src/lang/korean.txt index 73cfe66b30..c4dbffd992 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -190,6 +190,7 @@ STR_COLOUR_ORANGE :주황 STR_COLOUR_BROWN :갈색 STR_COLOUR_GREY :회색 STR_COLOUR_WHITE :흰색 +STR_COLOUR_RANDOM :무작위 # Units used in OpenTTD STR_UNITS_VELOCITY_IMPERIAL :{COMMA}{NBSP}mph @@ -930,6 +931,7 @@ STR_GAME_OPTIONS_CURRENCY_CUSTOM :사용자 설 STR_GAME_OPTIONS_CURRENCY_GEL :그루지야 라리 (GEL) STR_GAME_OPTIONS_CURRENCY_IRR :이란 리알 (IRR) STR_GAME_OPTIONS_CURRENCY_RUB :신 러시아 루블 (RUB) +STR_GAME_OPTIONS_CURRENCY_MXN :멕시코 페소 (MXN) ############ end of currency region STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME :{BLACK}차량 통행 방식 @@ -1259,6 +1261,8 @@ STR_CONFIG_SETTING_DYNAMIC_ENGINES_EXISTING_VEHICLES :{WHITE}이미 STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE :기반시설 유지비: {STRING} STR_CONFIG_SETTING_INFRASTRUCTURE_MAINTENANCE_HELPTEXT :이 설정을 켜면, 기반시설 유지비가 발생합니다. 유지비는 교통망의 규모에 비례하며 대형 회사는 소형 회사보다 많은 유지비가 들어갑니다. +STR_CONFIG_SETTING_COMPANY_STARTING_COLOUR :시작시 회사 색상: {STRING} +STR_CONFIG_SETTING_COMPANY_STARTING_COLOUR_HELPTEXT :새 회사에서 사용할 색상을 선택하세요. STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS :옛날 공항을 사라지지 않고 계속 만들 수 있게 함: {STRING} STR_CONFIG_SETTING_NEVER_EXPIRE_AIRPORTS_HELPTEXT :이 설정을 켜면, 소형 공항을 포함한 모든 공항 종류를 도입 이후에 계속 사용할 수 있게 됩니다. @@ -1817,7 +1821,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}현재 STR_CHEAT_SETUP_PROD :{LTBLUE}1차 산업시설 생산량 조절 허용: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}새 색상 +STR_LIVERY_CAPTION :{WHITE}{COMPANY} - 색상 STR_LIVERY_GENERAL_TOOLTIP :{BLACK}기본 색상 선택 STR_LIVERY_TRAIN_TOOLTIP :{BLACK}열차 색상 선택 @@ -2892,7 +2896,12 @@ STR_NEWGRF_SETTINGS_VERSION :{BLACK}버전: STR_NEWGRF_SETTINGS_MIN_VERSION :{BLACK}최소 이용 가능한 버전: {SILVER}{NUM} STR_NEWGRF_SETTINGS_MD5SUM :{BLACK}MD5합: {SILVER}{STRING} STR_NEWGRF_SETTINGS_PALETTE :{BLACK}색상표: {SILVER}{STRING} +STR_NEWGRF_SETTINGS_PALETTE_DEFAULT :도스 +STR_NEWGRF_SETTINGS_PALETTE_DEFAULT_32BPP :도스 / 32 bpp +STR_NEWGRF_SETTINGS_PALETTE_LEGACY :Windows +STR_NEWGRF_SETTINGS_PALETTE_LEGACY_32BPP :Windows / 32 bpp STR_NEWGRF_SETTINGS_PARAMETER :{BLACK}매개 변숫값: {SILVER}{STRING} +STR_NEWGRF_SETTINGS_PARAMETER_NONE :없음 STR_NEWGRF_SETTINGS_NO_INFO :{BLACK}관련 정보 없음 STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}일치하는 파일을 찾을 수 없습니다 @@ -3352,6 +3361,9 @@ STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}이 산 STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}생산 수준: {YELLOW}{COMMA}% STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}산업시설이 곧 폐쇄됩니다! +STR_INDUSTRY_VIEW_REQUIRES_N_CARGO :{BLACK}받는 화물: {YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_PRODUCES_N_CARGO :{BLACK}생산 화물: {YELLOW}{STRING}{STRING} +STR_INDUSTRY_VIEW_CARGO_LIST_EXTENSION :, {STRING}{STRING} STR_INDUSTRY_VIEW_REQUIRES :{BLACK}받는 화물: STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING} @@ -3452,6 +3464,7 @@ STR_PURCHASE_INFO_AIRCRAFT_CAPACITY :{BLACK}수용 STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}전원 화물차: {GOLD}+{POWER}{BLACK} 중량: {GOLD}+{WEIGHT_SHORT} STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}개조가능 화물: {GOLD}{STRING} STR_PURCHASE_INFO_ALL_TYPES :모든 화물 +STR_PURCHASE_INFO_NONE :없음 STR_PURCHASE_INFO_ALL_BUT :{CARGO_LIST} 이외의 모든 화물 STR_PURCHASE_INFO_MAX_TE :{BLACK}최고 견인력: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}항속거리: {GOLD}{COMMA} 칸 @@ -3851,6 +3864,7 @@ STR_ORDER_CONDITIONAL_AGE :연령 (년) STR_ORDER_CONDITIONAL_REQUIRES_SERVICE :정비 필요성 STR_ORDER_CONDITIONAL_UNCONDITIONALLY :항상 STR_ORDER_CONDITIONAL_REMAINING_LIFETIME :남은 수명 (년) +STR_ORDER_CONDITIONAL_MAX_RELIABILITY :최대 신뢰도 STR_ORDER_CONDITIONAL_COMPARATOR_TOOLTIP :{BLACK}왼쪽의 비교조건과 오른쪽의 입력값을 비교할 연산자를 선택합니다. STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS := diff --git a/src/lang/russian.txt b/src/lang/russian.txt index 72132ac069..ccc3c96202 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -1972,7 +1972,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Изме STR_CHEAT_SETUP_PROD :{LTBLUE}Разрешить изменение производительности: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Новая цветовая схема +STR_LIVERY_CAPTION :{WHITE}Цвета компании «{COMPANY}» STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Настройка основной цветовой схемы STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Настройка цветовой схемы поездов @@ -2907,6 +2907,12 @@ STR_FRAMERATE_GRAPH_MILLISECONDS :{TINY_FONT}{COM STR_FRAMERATE_GRAPH_SECONDS :{TINY_FONT}{COMMA} с ############ Leave those lines in this order!! STR_FRAMERATE_GAMELOOP :{BLACK}Расчёт игрового цикла: +STR_FRAMERATE_GL_ECONOMY :{BLACK} Расчёт объёмов груза: +STR_FRAMERATE_GL_TRAINS :{BLACK} Движение поездов: +STR_FRAMERATE_GL_ROADVEHS :{BLACK} Движение автомобилей: +STR_FRAMERATE_GL_SHIPS :{BLACK} Движение кораблей: +STR_FRAMERATE_GL_AIRCRAFT :{BLACK} Движение воздушных судов: +STR_FRAMERATE_GL_LANDSCAPE :{BLACK} Изменения на карте: STR_FRAMERATE_GL_LINKGRAPH :{BLACK} Задержка графа распределения: STR_FRAMERATE_DRAWING :{BLACK}Отрисовка изображения: STR_FRAMERATE_DRAWING_VIEWPORTS :{BLACK} Дополнительные окна: @@ -2914,6 +2920,13 @@ STR_FRAMERATE_VIDEO :{BLACK}Выво STR_FRAMERATE_SOUND :{BLACK}Обработка звука: ############ End of leave-in-this-order ############ Leave those lines in this order!! +STR_FRAMETIME_CAPTION_GAMELOOP :Расчёт игрового цикла +STR_FRAMETIME_CAPTION_GL_ECONOMY :Расчёт объёмов груза +STR_FRAMETIME_CAPTION_GL_TRAINS :Движение поездов +STR_FRAMETIME_CAPTION_GL_ROADVEHS :Движение автомобилей +STR_FRAMETIME_CAPTION_GL_SHIPS :Движение кораблей +STR_FRAMETIME_CAPTION_GL_AIRCRAFT :Движение воздушных судов +STR_FRAMETIME_CAPTION_GL_LANDSCAPE :Расчёт изменений на карте STR_FRAMETIME_CAPTION_GL_LINKGRAPH :Задержка графа распределения STR_FRAMETIME_CAPTION_DRAWING :Отрисовка изображения STR_FRAMETIME_CAPTION_DRAWING_VIEWPORTS :Отрисовка изображения в доп. окнах @@ -3062,7 +3075,12 @@ STR_NEWGRF_SETTINGS_VERSION :{BLACK}Верс STR_NEWGRF_SETTINGS_MIN_VERSION :{BLACK}Совместимо с версией не ниже: {SILVER}{NUM} STR_NEWGRF_SETTINGS_MD5SUM :{BLACK}MD5: {SILVER}{STRING} STR_NEWGRF_SETTINGS_PALETTE :{BLACK}Палитра: {SILVER}{STRING} +STR_NEWGRF_SETTINGS_PALETTE_DEFAULT :Стандартная (D) +STR_NEWGRF_SETTINGS_PALETTE_DEFAULT_32BPP :Стандартная (D) / 32 bpp +STR_NEWGRF_SETTINGS_PALETTE_LEGACY :Устаревшая (W) +STR_NEWGRF_SETTINGS_PALETTE_LEGACY_32BPP :Устаревшая (W) / 32 bpp STR_NEWGRF_SETTINGS_PARAMETER :{BLACK}Параметры: {SILVER}{STRING} +STR_NEWGRF_SETTINGS_PARAMETER_NONE :Нет STR_NEWGRF_SETTINGS_NO_INFO :{BLACK}Нет доступной информации STR_NEWGRF_SETTINGS_NOT_FOUND :{RED}Файл не найден @@ -3144,6 +3162,7 @@ STR_NEWGRF_ERROR_GRM_FAILED :Запроше STR_NEWGRF_ERROR_FORCEFULLY_DISABLED :{1:STRING} был отключён из-за {2:STRING} STR_NEWGRF_ERROR_INVALID_SPRITE_LAYOUT :Недопустимый/неизвестный формат расположения спрайтов (спрайт {3:NUM}) STR_NEWGRF_ERROR_LIST_PROPERTY_TOO_LONG :Слишком много элементов в списке значений (спрайт {3:NUM}, свойство {4:HEX}) +STR_NEWGRF_ERROR_INDPROD_CALLBACK :Неверная обработка продукции предприятия (спрайт {3:NUM}, "{1:STRING}") # NewGRF related 'general' warnings STR_NEWGRF_POPUP_CAUTION_CAPTION :{WHITE}Осторожно! @@ -3624,6 +3643,7 @@ STR_PURCHASE_INFO_AIRCRAFT_CAPACITY :{BLACK}Ёмко STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Ведущие вагоны: {GOLD}+{POWER}{BLACK} Вес: {GOLD}+{WEIGHT_SHORT} STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Может перевозить: {GOLD}{STRING} STR_PURCHASE_INFO_ALL_TYPES :Все типы грузов +STR_PURCHASE_INFO_NONE :Нет STR_PURCHASE_INFO_ALL_BUT :Всё, кроме {CARGO_LIST} STR_PURCHASE_INFO_MAX_TE :{BLACK}Макс. тяговое усилие: {GOLD}{FORCE} STR_PURCHASE_INFO_AIRCRAFT_RANGE :{BLACK}Дальность: {GOLD}{COMMA} клет{P ка ки ок} diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index fee155edfb..0409dfa106 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -1813,7 +1813,7 @@ STR_CHEAT_CHANGE_DATE_QUERY_CAPT :{WHITE}Cambiar STR_CHEAT_SETUP_PROD :{LTBLUE}Permitir modificación de los valores de producción: {ORANGE}{STRING} # Livery window -STR_LIVERY_CAPTION :{WHITE}Nuevo Esquema de Color +STR_LIVERY_CAPTION :{WHITE}{COMPANY} - Esquema de Color STR_LIVERY_GENERAL_TOOLTIP :{BLACK}Mostrar esquema de colores general STR_LIVERY_TRAIN_TOOLTIP :{BLACK}Ver esquema de color de los trenes @@ -3331,6 +3331,7 @@ STR_INDUSTRY_VIEW_LOCATION_TOOLTIP :{BLACK}Centrar STR_INDUSTRY_VIEW_PRODUCTION_LEVEL :{BLACK}Nivel de producción: {YELLOW}{COMMA}% STR_INDUSTRY_VIEW_INDUSTRY_ANNOUNCED_CLOSURE :{YELLOW}La industria ha anunciado su cierre inminente! +STR_INDUSTRY_VIEW_REQUIRES_N_CARGO :{BLACK}Requiere: {YELLOW}{STRING}{STRING} STR_INDUSTRY_VIEW_REQUIRES :{BLACK}Necesita: STR_INDUSTRY_VIEW_ACCEPT_CARGO :{YELLOW}{STRING}{BLACK}{3:STRING} diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index 58a127e84b..2043646630 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -1548,12 +1548,12 @@ STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI :Activar interfa STR_CONFIG_SETTING_ENABLE_SIGNAL_GUI_HELPTEXT :Mostrar una ventana para elegir los tipos de señales a instalar. Si no se activa, se instalan las señales y se selecciona un tipo determinado mediante Ctrl+Clic, sin que aparezca ninguna interfaz STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE :Tipo de señal predeterminada a instalar: {STRING} STR_CONFIG_SETTING_DEFAULT_SIGNAL_TYPE_HELPTEXT :Tipo de señal predeterminada a utilizar -STR_CONFIG_SETTING_DEFAULT_SIGNAL_NORMAL :Señales de bloqueo +STR_CONFIG_SETTING_DEFAULT_SIGNAL_NORMAL :Señales de tramo STR_CONFIG_SETTING_DEFAULT_SIGNAL_PBS :Señales de ruta STR_CONFIG_SETTING_DEFAULT_SIGNAL_PBSOWAY :Señales de ruta de un sentido STR_CONFIG_SETTING_CYCLE_SIGNAL_TYPES :Cambiar entre tipos de señales: {STRING} STR_CONFIG_SETTING_CYCLE_SIGNAL_TYPES_HELPTEXT :Elegir entre qué señales se debe cambiar al usar Ctrl+Clic con la herramienta de señales -STR_CONFIG_SETTING_CYCLE_SIGNAL_NORMAL :Solo señales de bloqueo +STR_CONFIG_SETTING_CYCLE_SIGNAL_NORMAL :Solo señales de tramo STR_CONFIG_SETTING_CYCLE_SIGNAL_PBS :Solo señales de ruta STR_CONFIG_SETTING_CYCLE_SIGNAL_ALL :Todas @@ -2331,7 +2331,7 @@ STR_RAIL_TOOLBAR_TOOLTIP_BUILD_AUTORAIL :{BLACK}Construi STR_RAIL_TOOLBAR_TOOLTIP_BUILD_TRAIN_DEPOT_FOR_BUILDING :{BLACK}Construir depósito de trenes (para comprar y dar mantenimiento a trenes). Mayús muestra una estimación del precio STR_RAIL_TOOLBAR_TOOLTIP_CONVERT_RAIL_TO_WAYPOINT :{BLACK}Construir punto guía sobre vías férreas. Ctrl activa la unión de puntos guías. Mayús muestra una estimación del precio STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_STATION :{BLACK}Construir estación de ferrocarril. Ctrl activa la ampliación de estaciones. Mayús muestra una estimación del precio -STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_SIGNALS :{BLACK}Instalar señales de ferrocarril. Ctrl cambia entre señales mecánicas y eléctricas{}Al arrastrar sobre las vías se instalan señales a lo largo de un tramo recto elegido. Ctrl instala señales hasta el siguiente desvío u otra señal{}Ctrl+Clic cambia a la herramienta de selección de señales. Mayús muestra una estimación del precio +STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_SIGNALS :{BLACK}Poner señales. Ctrl intercambia señales mecánicas y eléctricas{}Arrastrar sobre un tramo recto permite poner señales intercaladas. Ctrl pone señales hasta un desvío u otra señal{}Ctrl+Clic cambia al modo de selección de señales. Mayús muestra una estimación del precio STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_BRIDGE :{BLACK}Construir puente de ferrocarril. Mayús muestra una estimación del precio STR_RAIL_TOOLBAR_TOOLTIP_BUILD_RAILROAD_TUNNEL :{BLACK}Construir túnel de ferrocarril. Mayús muestra una estimación del precio STR_RAIL_TOOLBAR_TOOLTIP_TOGGLE_BUILD_REMOVE_FOR :{BLACK}Quitar vías férreas, señales, estaciones y puntos guías. Al mantener pulsado Ctrl se quitan también las vías al retirar estaciones o puntos guías @@ -2369,17 +2369,17 @@ STR_STATION_CLASS_WAYP :Puntos guías # Signal window STR_BUILD_SIGNAL_CAPTION :{WHITE}Selección de señales -STR_BUILD_SIGNAL_SEMAPHORE_NORM_TOOLTIP :{BLACK}Señal de bloqueo (mecánica){}Es el tipo de señal más básico que permite a un único tren ocupar al mismo tiempo un tramo de vía entre dos señales -STR_BUILD_SIGNAL_SEMAPHORE_ENTRY_TOOLTIP :{BLACK}Señal de entrada (mecánica){}Abierta si existe una o más señales de salida en el siguiente tramo, de lo contrario se mostrará cerrada -STR_BUILD_SIGNAL_SEMAPHORE_EXIT_TOOLTIP :{BLACK}Señal de salida (mecánica){}Igual que una señal de bloqueo pero es necesaria para activar la posición correcta de las señales de entrada y combo -STR_BUILD_SIGNAL_SEMAPHORE_COMBO_TOOLTIP :{BLACK}Señal de combo (mecánica){}La señal hace lo mismo que una señal de entrada y salida a la vez, lo que permite construir grandes "árboles" de señales condicionales -STR_BUILD_SIGNAL_SEMAPHORE_PBS_TOOLTIP :{BLACK}Señal de ruta (mecánica){}Una señal de ruta permite a más de un tren entrar al mismo tiempo en un tramo de vía con señales, en tanto que el tren pueda reservar una ruta hasta un lugar seguro. Puede ser pasada por detrás +STR_BUILD_SIGNAL_SEMAPHORE_NORM_TOOLTIP :{BLACK}Señal de tramo (mecánica){}Es la señal más básica. Permite a un solo tren ocupar un tramo de vía entre dos señales +STR_BUILD_SIGNAL_SEMAPHORE_ENTRY_TOOLTIP :{BLACK}Señal de entrada (mecánica){}Se abre si existe una o más señales de salida en el siguiente tramo, de lo contrario se mostrará cerrada +STR_BUILD_SIGNAL_SEMAPHORE_EXIT_TOOLTIP :{BLACK}Señal de salida (mecánica){}Igual que una señal de tramo pero es necesaria para activar la posición correcta de las señales de entrada y combo +STR_BUILD_SIGNAL_SEMAPHORE_COMBO_TOOLTIP :{BLACK}Señal combo (mecánica){}Hace lo mismo que las señales de entrada y de salida, lo que permite construir amplios "árboles" de señales condicionales +STR_BUILD_SIGNAL_SEMAPHORE_PBS_TOOLTIP :{BLACK}Señal de ruta (mecánica){}Permite a más de un tren entrar al mismo tiempo en un tramo de vía con señales, en tanto que el tren pueda reservar una ruta hasta un lugar seguro. Puede ser pasada por detrás STR_BUILD_SIGNAL_SEMAPHORE_PBS_OWAY_TOOLTIP :{BLACK}Señal de ruta de un sentido (mecánica){}Igual que una señal de ruta pero no puede ser pasada por detrás -STR_BUILD_SIGNAL_ELECTRIC_NORM_TOOLTIP :{BLACK}Señal de bloqueo (eléctrica){}Es el tipo de señal más básico que permite a un único tren ocupar al mismo tiempo un tramo de vía entre dos señales -STR_BUILD_SIGNAL_ELECTRIC_ENTRY_TOOLTIP :{BLACK}Señal de entrada (eléctrica){}Verde si existe una o más señales de salida en el siguiente tramo, de lo contrario se mostrará en rojo -STR_BUILD_SIGNAL_ELECTRIC_EXIT_TOOLTIP :{BLACK}Señal de salida (eléctrica){}Igual que una señal de bloqueo pero es necesaria para activar el color correcto de las señales de entrada y combo -STR_BUILD_SIGNAL_ELECTRIC_COMBO_TOOLTIP :{BLACK}Señal combo (eléctrica){}La señal hace lo mismo que una señal de entrada y salida a la vez, lo que permite construir grandes "árboles" de señales condicionales -STR_BUILD_SIGNAL_ELECTRIC_PBS_TOOLTIP :{BLACK}Señal de ruta (eléctrica){}Una señal de ruta permite a más de un tren entrar al mismo tiempo en un tramo de vía con señales, en tanto que el tren pueda reservar una ruta hasta un lugar seguro. Puede ser pasada por detrás +STR_BUILD_SIGNAL_ELECTRIC_NORM_TOOLTIP :{BLACK}Señal de tramo (eléctrica){}Es la señal más básica. Permite a un solo tren ocupar un tramo de vía entre dos señales +STR_BUILD_SIGNAL_ELECTRIC_ENTRY_TOOLTIP :{BLACK}Señal de entrada (eléctrica){}En verde si existe una o más señales de salida en el siguiente tramo, de lo contrario se mostrará en rojo +STR_BUILD_SIGNAL_ELECTRIC_EXIT_TOOLTIP :{BLACK}Señal de salida (eléctrica){}Igual que una señal de tramo pero es necesaria para activar el color correcto de las señales de entrada y combo +STR_BUILD_SIGNAL_ELECTRIC_COMBO_TOOLTIP :{BLACK}Señal combo (eléctrica){}Hace lo mismo que las señales de entrada y de salida, lo que permite construir amplios "árboles" de señales condicionales +STR_BUILD_SIGNAL_ELECTRIC_PBS_TOOLTIP :{BLACK}Señal de ruta (eléctrica){}Permite a más de un tren entrar al mismo tiempo en un tramo de vía con señales, en tanto que el tren pueda reservar una ruta hasta un lugar seguro. Puede ser pasada por detrás STR_BUILD_SIGNAL_ELECTRIC_PBS_OWAY_TOOLTIP :{BLACK}Señal de ruta de un sentido (eléctrica){}Igual que una señal de ruta pero no puede ser pasada por detrás STR_BUILD_SIGNAL_CONVERT_TOOLTIP :{BLACK}Conversión de señal{}Activar para pulsar sobre una señal existente y convertirla en el tipo y variante elegidos. Ctrl+Clic permite cambiar entre variantes de señales. Mayús+Clic muestra una estimación del precio de conversión STR_BUILD_SIGNAL_DRAG_SIGNALS_DENSITY_TOOLTIP :{BLACK}Distancia entre señales From fe37b40385afa809f2c1bb5971b833e314fd1e32 Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Sun, 27 Jan 2019 12:33:54 +0000 Subject: [PATCH 40/41] Fix: Group hierarchy not visible in RTL languages. --- src/group_gui.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/group_gui.cpp b/src/group_gui.cpp index 7db04e9b35..811b46af8e 100644 --- a/src/group_gui.cpp +++ b/src/group_gui.cpp @@ -260,7 +260,7 @@ private: str = STR_GROUP_NAME; } int x = rtl ? right - WD_FRAMERECT_RIGHT - 8 - this->column_size[VGC_NAME].width + 1 : left + WD_FRAMERECT_LEFT + 8; - DrawString(x + indent * LEVEL_WIDTH, x + this->column_size[VGC_NAME].width - 1, y + (this->tiny_step_height - this->column_size[VGC_NAME].height) / 2, str, colour); + DrawString(x + (rtl ? 0 : indent), x + this->column_size[VGC_NAME].width - 1 - (rtl ? indent : 0), y + (this->tiny_step_height - this->column_size[VGC_NAME].height) / 2, str, colour); /* draw autoreplace protection */ x = rtl ? x - 8 - this->column_size[VGC_PROTECT].width : x + 8 + this->column_size[VGC_NAME].width; @@ -582,7 +582,7 @@ public: assert(g->owner == this->owner); - DrawGroupInfo(y1, r.left, r.right, g->index, this->indents[i], g->replace_protection); + DrawGroupInfo(y1, r.left, r.right, g->index, this->indents[i] * LEVEL_WIDTH, g->replace_protection); y1 += this->tiny_step_height; } From 310fa1af8863d84f9ebbe6b5ea36c21f3c4a43cf Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Sun, 27 Jan 2019 12:35:14 +0000 Subject: [PATCH 41/41] Codechange: Rename function to match what it does and reduce code indenting. --- src/group_gui.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/group_gui.cpp b/src/group_gui.cpp index 811b46af8e..a884920842 100644 --- a/src/group_gui.cpp +++ b/src/group_gui.cpp @@ -122,14 +122,13 @@ private: Dimension column_size[VGC_END]; ///< Size of the columns in the group list. - void AddParents(GUIGroupList *source, GroupID parent, int indent) + void AddChildren(GUIGroupList *source, GroupID parent, int indent) { for (const Group **g = source->Begin(); g != source->End(); g++) { - if ((*g)->parent == parent) { - *this->groups.Append() = *g; - *this->indents.Append() = indent; - AddParents(source, (*g)->index, indent + 1); - } + if ((*g)->parent != parent) continue; + *this->groups.Append() = *g; + *this->indents.Append() = indent; + AddChildren(source, (*g)->index, indent + 1); } } @@ -180,7 +179,7 @@ private: list.ForceResort(); list.Sort(&GroupNameSorter); - AddParents(&list, INVALID_GROUP, 0); + AddChildren(&list, INVALID_GROUP, 0); this->groups.Compact(); this->groups.RebuildDone();