diff --git a/src/lang/extra/czech.txt b/src/lang/extra/czech.txt index 5a34bc07b0..13c5c236e4 100644 --- a/src/lang/extra/czech.txt +++ b/src/lang/extra/czech.txt @@ -246,9 +246,6 @@ STR_CONFIG_SETTING_RANDOM_ROAD_RECONSTRUCTION_HELPTEXT :Pravděpodobnos STR_CONFIG_SETTING_TOWN_MIN_DISTANCE :Minimální vzdálenost mezi městy: {STRING} STR_CONFIG_SETTING_TOWN_MIN_DISTANCE_HELPTEXT :Nastaví minimální počet políček mezi městy pro generování mapy a náhodně založené město -STR_CONFIG_SETTING_LINKGRAPH_NOT_DAYLENGTH_SCALED :Neupravovat měřítko dnů distribučního grafu podle faktoru délky dne: {STRING} -STR_CONFIG_SETTING_LINKGRAPH_NOT_DAYLENGTH_SCALED_HELPTEXT :Pokud je zapnuto, interval přepočtu distribučního grafu a čas jsou v jednotkách původních dnů, namísto kalendářních dnů naškálovaných podle délky dne. - STR_CONFIG_SETTING_DISTRIBUTION_PER_CARGO :Přepsat mód distribuce pro tento náklad: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_PER_CARGO_PARAM :Přepsat mód distribuce pro {STRING}: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_PER_CARGO_HELPTEXT :"výchozí" znamená, že režim distribuce je výchozí pro třídu tohoto nákladu. "symetrický" znamená, že zhruba ze stejného počtu nákladu půjde ze stanice A do stanice B jako z B do A. "asymetrický" znamená, že libovolné množství nákladu lze odeslat v obou směrech. "manuální" znamená, že u tohoto nákladu nedojde k žádné automatické distribuci. diff --git a/src/lang/extra/english.txt b/src/lang/extra/english.txt index 912dff4a0d..424fb7daa5 100644 --- a/src/lang/extra/english.txt +++ b/src/lang/extra/english.txt @@ -607,9 +607,6 @@ STR_CONFIG_SETTING_TICK_RATE_MODERN :27 ms/tick (mod STR_CONFIG_SETTING_TOWN_MIN_DISTANCE :Minimum distance between towns: {STRING2} STR_CONFIG_SETTING_TOWN_MIN_DISTANCE_HELPTEXT :Set the minimum distance in tiles between towns for map generation and random founding -STR_CONFIG_SETTING_LINKGRAPH_NOT_DAYLENGTH_SCALED :Do not scale the linkgraph days by the day length factor: {STRING2} -STR_CONFIG_SETTING_LINKGRAPH_NOT_DAYLENGTH_SCALED_HELPTEXT :When enabled, the linkgraph recalculation interval and time are in units of unscaled, original days, instead of day-length scaled calendar days. - STR_CONFIG_SETTING_DISTRIBUTION_PER_CARGO :Distribution mode override for this cargo: {STRING2} STR_CONFIG_SETTING_DISTRIBUTION_PER_CARGO_PARAM :Distribution mode override for {STRING}: {STRING2} STR_CONFIG_SETTING_DISTRIBUTION_PER_CARGO_HELPTEXT :"(default)" means that the distribution mode is the default for the class of this cargo. "symmetric" means that roughly the same number of cargo will go from a station A to a station B as from B to A. "asymmetric" means that arbitrary amounts of cargo can be sent in either direction. "manual" means that no automatic distribution will take place for this cargo. diff --git a/src/lang/extra/galician.txt b/src/lang/extra/galician.txt index e05c7b63d3..5aec3c9f88 100644 --- a/src/lang/extra/galician.txt +++ b/src/lang/extra/galician.txt @@ -569,9 +569,6 @@ STR_CONFIG_SETTING_RANDOM_ROAD_RECONSTRUCTION_HELPTEXT :A probabilidade STR_CONFIG_SETTING_TOWN_MIN_DISTANCE :Distancia mínima entre vilas: {STRING} STR_CONFIG_SETTING_TOWN_MIN_DISTANCE_HELPTEXT :Fixa a distancia mínima en cadros entre cidades para a xeración do mapa e as fundacións aleatorias -STR_CONFIG_SETTING_LINKGRAPH_NOT_DAYLENGTH_SCALED :Non escalar os días do gráfico de enlaces polo factor da lonxitude do día: {STRING} -STR_CONFIG_SETTING_LINKGRAPH_NOT_DAYLENGTH_SCALED_HELPTEXT :Cando se habilita, o intervalo de recálculo do gráfico de enlaces están en unidades dos días orixinais, non escalados, en lugar do escalado da lonxitude dos días do calendario. - STR_CONFIG_SETTING_DISTRIBUTION_PER_CARGO :Modo de distribución para esta carga: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_PER_CARGO_PARAM :Anulación do modo de distribución para {STRING}: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_PER_CARGO_HELPTEXT :"(por defecto)" significa que o modo de distribución é o por defecto para a clase desta carga. "simétrica" significa que aproximadamente o mesmo número de carga irá da estación A a B como da B a A. "asimétrica" significa que cantidades arbitrarias de carga enviaranse en calquera direción. "manual" significa que non se fará unha distribución automática para esta carga. diff --git a/src/lang/extra/german.txt b/src/lang/extra/german.txt index b0a10a5b52..7d1fdc4cee 100644 --- a/src/lang/extra/german.txt +++ b/src/lang/extra/german.txt @@ -520,9 +520,6 @@ STR_CONFIG_SETTING_RANDOM_ROAD_RECONSTRUCTION_HELPTEXT :Setze den Wert STR_CONFIG_SETTING_TOWN_MIN_DISTANCE :Minimaler Abstand zwischen Städten: {STRING} STR_CONFIG_SETTING_TOWN_MIN_DISTANCE_HELPTEXT :Stelle den Mindestabstand zwischen Städten in Kacheln für die Kartenerzeugung und zufällige Stadtgründungen ein. -STR_CONFIG_SETTING_LINKGRAPH_NOT_DAYLENGTH_SCALED :Skaliere die Laufzeit für jede Neuberechnung der Warenverteilung nicht um den Faktor der Tageslänge: {STRING} -STR_CONFIG_SETTING_LINKGRAPH_NOT_DAYLENGTH_SCALED_HELPTEXT :Wenn aktiviert, wird die Laufzeit das Intervall für jede Neuberechnung des Verteilungsgraphen in Tagen im Maßstab der originalen Tageslänge angegeben, anstelle der um den Tageslänge-Faktoren skalierten Kalendertage. - STR_CONFIG_SETTING_DISTRIBUTION_PER_CARGO :Zu überschreibendes Verteilungsschema für folgede Frachtart: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_PER_CARGO_PARAM :Zu überschreibendes Verteilungsschema für {STRING}: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_PER_CARGO_HELPTEXT :"(standard)" bedeutet, dass das Standard-Verteilungsschema der Frachtklasse dieser Frachtart verwendet wird. "Symmetrisch" bedeutet, dass etwa dieselbe Menge an Fracht von Station A nach Station B transportiert wird wie umgekehrt von B nach A. "Asymmetrisch" bedeutet, dass eine unterschiedliche Menge in die jeweiligen Richtungen gesendet wird. "Manuell" bedeutet, dass keine automatische Verteilung stattfindet. diff --git a/src/lang/extra/korean.txt b/src/lang/extra/korean.txt index e49bdd1117..43a8246d47 100644 --- a/src/lang/extra/korean.txt +++ b/src/lang/extra/korean.txt @@ -575,9 +575,6 @@ STR_CONFIG_SETTING_CARGO_PAYMENT_ALGORITHM_MODERN :개선 STR_CONFIG_SETTING_TOWN_MIN_DISTANCE :도시 사이의 최소 거리: {STRING} STR_CONFIG_SETTING_TOWN_MIN_DISTANCE_HELPTEXT :지도를 생성하고 무작위로 도시를 배치할 때 도시 사이의 최소 거리를 설정합니다. -STR_CONFIG_SETTING_LINKGRAPH_NOT_DAYLENGTH_SCALED :연결 상태를 계산할 때 사용되는 1일을 조정 변수로 조정하지 않기: {STRING} -STR_CONFIG_SETTING_LINKGRAPH_NOT_DAYLENGTH_SCALED_HELPTEXT :활성화되면 조정된 달력 날짜 대신 기본 날짜 길이를 연결 상태 계산에 사용할 것입니다. - STR_CONFIG_SETTING_DISTRIBUTION_PER_CARGO :이 화물에 대한 화물 분배 형식 덮어쓰기: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_PER_CARGO_PARAM :{STRING}에 대한 화물 분배 형식 덮어쓰기: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_PER_CARGO_HELPTEXT :"(기본)"은 이 화물 종류에 대한 기본 화물 분배 형식을 따른다는 뜻입니다. "대칭"은 대체로 A역에서 B역으로 가려는 화물의 수가 B에서 A로 가려는 화물의 수와 대체로 같다는 뜻입니다. "비대칭"은 아무 방향이나 임의의 양만큼 가게 됨을 뜻합니다. "수동"은 자동적인 화물 분배가 일어나지 않고 기존 방식을 사용하겠음을 뜻합니다. diff --git a/src/lang/extra/simplified_chinese.txt b/src/lang/extra/simplified_chinese.txt index aaf9b56cff..90ea8c2f52 100644 --- a/src/lang/extra/simplified_chinese.txt +++ b/src/lang/extra/simplified_chinese.txt @@ -562,9 +562,6 @@ STR_CONFIG_SETTING_RANDOM_ROAD_RECONSTRUCTION_HELPTEXT :随机城镇道 STR_CONFIG_SETTING_TOWN_MIN_DISTANCE :城镇间最小距离:{STRING} STR_CONFIG_SETTING_TOWN_MIN_DISTANCE_HELPTEXT :设置在地图生成和随机建立城镇过程中城镇之间的在地图上的最小的以格子计的距离 -STR_CONFIG_SETTING_LINKGRAPH_NOT_DAYLENGTH_SCALED :不以日长因子对分配图重计算时间缩放:{STRING} -STR_CONFIG_SETTING_LINKGRAPH_NOT_DAYLENGTH_SCALED_HELPTEXT :当启用时,分配图重计算间隔和时间将以未经缩放的单位运算。 - STR_CONFIG_SETTING_DISTRIBUTION_PER_CARGO :对此货物重载分配模式:{STRING} STR_CONFIG_SETTING_DISTRIBUTION_PER_CARGO_PARAM :对{STRING}重载分配模式:{STRING} STR_CONFIG_SETTING_DISTRIBUTION_PER_CARGO_HELPTEXT :"(缺省)"意味着对此货物应用缺省分配模式。“对称的”意味着从甲车站运往乙车站的货物数量与从乙车站运往甲车站的大致相同。 “不对称”意味着任何一站前往另一个车站的货物的数量会被系统任意地决定。“手动”意味着对于此类货物系统不会自动分配其目的地。 diff --git a/src/linkgraph/linkgraphjob.cpp b/src/linkgraph/linkgraphjob.cpp index 3503a00171..ed92f8227a 100644 --- a/src/linkgraph/linkgraphjob.cpp +++ b/src/linkgraph/linkgraphjob.cpp @@ -28,10 +28,7 @@ INSTANTIATE_POOL_METHODS(LinkGraphJob) static DateTicks GetLinkGraphJobJoinDateTicks(uint duration_multiplier) { - DateTicks ticks = _settings_game.linkgraph.recalc_time * DAY_TICKS * duration_multiplier; - if (_settings_game.linkgraph.recalc_not_scaled_by_daylength) { - ticks /= _settings_game.economy.day_length_factor; - } + DateTicks ticks = (_settings_game.linkgraph.recalc_time * DAY_TICKS * duration_multiplier) / _settings_game.economy.day_length_factor; return ticks + (_date * DAY_TICKS) + _date_fract; } diff --git a/src/linkgraph/linkgraphschedule.cpp b/src/linkgraph/linkgraphschedule.cpp index 600011d9f7..4d87ceb51c 100644 --- a/src/linkgraph/linkgraphschedule.cpp +++ b/src/linkgraph/linkgraphschedule.cpp @@ -319,7 +319,7 @@ void StateGameLoop_LinkGraphPauseControl() DoCommandP(0, PM_PAUSED_LINK_GRAPH, 0, CMD_PAUSE); } } else if (_pause_mode == PM_UNPAUSED && _tick_skip_counter == 0) { - if (!_settings_game.linkgraph.recalc_not_scaled_by_daylength || _settings_game.economy.day_length_factor == 1) { + if (_settings_game.economy.day_length_factor == 1) { if (_date_fract != LinkGraphSchedule::SPAWN_JOIN_TICK - 2) return; if (_date % _settings_game.linkgraph.recalc_interval != _settings_game.linkgraph.recalc_interval / 2) return; } else { @@ -355,7 +355,7 @@ void OnTick_LinkGraph() { int offset; int interval; - if (!_settings_game.linkgraph.recalc_not_scaled_by_daylength || _settings_game.economy.day_length_factor == 1) { + if (_settings_game.economy.day_length_factor == 1) { if (_date_fract != LinkGraphSchedule::SPAWN_JOIN_TICK) return; interval = _settings_game.linkgraph.recalc_interval; offset = _date % interval; diff --git a/src/saveload/extended_ver_sl.cpp b/src/saveload/extended_ver_sl.cpp index ca4d5f6047..9186abef17 100644 --- a/src/saveload/extended_ver_sl.cpp +++ b/src/saveload/extended_ver_sl.cpp @@ -107,7 +107,7 @@ const SlxiSubChunkInfo _sl_xv_sub_chunk_infos[] = { { XSLFI_EXTRA_LARGE_MAP, XSCF_NULL, 0, 1, "extra_large_map", nullptr, nullptr, nullptr }, { XSLFI_REVERSE_AT_WAYPOINT, XSCF_NULL, 1, 1, "reverse_at_waypoint", nullptr, nullptr, nullptr }, { XSLFI_VEH_LIFETIME_PROFIT, XSCF_NULL, 1, 1, "veh_lifetime_profit", nullptr, nullptr, nullptr }, - { XSLFI_LINKGRAPH_DAY_SCALE, XSCF_NULL, 1, 1, "linkgraph_day_scale", nullptr, nullptr, nullptr }, + { XSLFI_LINKGRAPH_DAY_SCALE, XSCF_NULL, 2, 2, "linkgraph_day_scale", nullptr, nullptr, nullptr }, { XSLFI_TEMPLATE_REPLACEMENT, XSCF_NULL, 9, 9, "template_replacement", nullptr, nullptr, "TRPL,TMPL" }, { XSLFI_MORE_RAIL_TYPES, XSCF_NULL, 0, 1, "more_rail_types", nullptr, nullptr, nullptr }, { XSLFI_CARGO_TYPE_ORDERS, XSCF_NULL, 3, 3, "cargo_type_orders", nullptr, nullptr, "ORDX,VEOX" }, diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp index 2777dab433..c5d37c5cef 100644 --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -2278,7 +2278,6 @@ static SettingsContainer &GetSettingsTree() cdist->Add(new SettingEntry("linkgraph.demand_distance")); cdist->Add(new SettingEntry("linkgraph.demand_size")); cdist->Add(new SettingEntry("linkgraph.short_path_saturation")); - cdist->Add(new SettingEntry("linkgraph.recalc_not_scaled_by_daylength")); cdist->Add(new SettingEntry("linkgraph.aircraft_link_scale")); } SettingsPage *treedist = environment->Add(new SettingsPage(STR_CONFIG_SETTING_ENVIRONMENT_TREES)); diff --git a/src/settings_internal.h b/src/settings_internal.h index 48e539a341..2d7587581d 100644 --- a/src/settings_internal.h +++ b/src/settings_internal.h @@ -340,6 +340,8 @@ struct ListSettingDesc : SettingDesc { struct NullSettingDesc : SettingDesc { NullSettingDesc(const SaveLoad &save) : SettingDesc(save, "", SF_NOT_IN_CONFIG, nullptr, false, nullptr) {} + NullSettingDesc(const SaveLoad &save, const char *name, const char *patx_name) : + SettingDesc(save, name, SF_NOT_IN_CONFIG, nullptr, false, patx_name) {} virtual ~NullSettingDesc() {} void FormatValue(char *buf, const char *last, const void *object) const override { NOT_REACHED(); } diff --git a/src/settings_type.h b/src/settings_type.h index 3784fbe2d1..781d70f24f 100644 --- a/src/settings_type.h +++ b/src/settings_type.h @@ -712,7 +712,6 @@ struct EconomySettings { struct LinkGraphSettings { uint16 recalc_time; ///< time (in days) for recalculating each link graph component. uint16 recalc_interval; ///< time (in days) between subsequent checks for link graphs to be calculated. - bool recalc_not_scaled_by_daylength; ///< whether the time should be in daylength-scaled days (false) or unscaled days (true) DistributionType distribution_pax; ///< distribution type for passengers DistributionType distribution_mail; ///< distribution type for mail DistributionType distribution_armoured; ///< distribution type for armoured cargo class diff --git a/src/table/settings.h.preamble b/src/table/settings.h.preamble index 4d8af27856..71def0bce3 100644 --- a/src/table/settings.h.preamble +++ b/src/table/settings.h.preamble @@ -108,6 +108,9 @@ static size_t ConvertLandscape(const char *value); #define SDT_NULL(length, from, to, extver)\ NSD(Null, SLE_CONDNULL_X(length, from, to, extver)) +#define SDT_NAMED_NULL(name, length, from, to, extver, patxname)\ + NSD(Null, SLE_CONDNULL_X(length, from, to, extver), name, patxname) + #define SDTC_VAR(var, type, flags, def, min, max, interval, str, strhelp, strval, pre_check, post_callback, from, to, extver, cat, guiproc, startup, patxname)\ SDTG_VAR(#var, type, flags, _settings_client.var, def, min, max, interval, str, strhelp, strval, pre_check, post_callback, from, to, extver, cat, guiproc, startup, patxname) diff --git a/src/table/settings/settings.ini b/src/table/settings/settings.ini index 7f29a3a333..3d4ecd3739 100644 --- a/src/table/settings/settings.ini +++ b/src/table/settings/settings.ini @@ -201,6 +201,7 @@ SDT_SSTR = SDT_SSTR(GameSettings, $var, $type, $flags, $def, SDT_VAR = SDT_VAR(GameSettings, $var, $type, $flags, $def, $min, $max, $interval, $str, $strhelp, $strval, $pre_cb, $post_cb, $from, $to, $extver, $cat, $guiproc, $startup, $patxname), SDT_ENUM = SDT_ENUM(GameSettings, $var, $type, $flags, $def, $str, $strhelp, $pre_cb, $post_cb, $from, $to, $extver, $cat, $guiproc, $startup, $patxname, $enumlist), SDT_NULL = SDT_NULL($length, $from, $to, $extver), +SDT_NAMED_NULL = SDT_NAMED_NULL($name, $length, $from, $to, $extver, $patxname), SDT_XREF = SDT_XREF( $from, $to, $extver, $xref, $xrefcvt), SDT_LINKGRAPH_PER_CARGO = SDT_ENUM(GameSettings, linkgraph.distribution_per_cargo[$linkgraph_cargo], SLE_UINT8, $flags | SF_NOT_IN_CONFIG | SF_NO_NEWGAME, DT_PER_CARGO_DEFAULT, STR_CONFIG_SETTING_DISTRIBUTION_PER_CARGO, STR_CONFIG_SETTING_DISTRIBUTION_PER_CARGO_HELPTEXT, $pre_cb, $post_cb, $from, $to, SlXvFeatureTest(XSLFTO_AND, XSLFI_LINKGRAPH_MODES), SC_EXPERT, LinkGraphDistributionSettingGUI, false, nullptr, _linkgraph_mode_per_cargo), @@ -1097,12 +1098,10 @@ str = STR_CONFIG_SETTING_LINKGRAPH_TIME strval = STR_JUST_COMMA strhelp = STR_CONFIG_SETTING_LINKGRAPH_TIME_HELPTEXT -[SDT_BOOL] -var = linkgraph.recalc_not_scaled_by_daylength -def = true -str = STR_CONFIG_SETTING_LINKGRAPH_NOT_DAYLENGTH_SCALED -strhelp = STR_CONFIG_SETTING_LINKGRAPH_NOT_DAYLENGTH_SCALED_HELPTEXT -extver = SlXvFeatureTest([](uint16 version, bool version_in_range, const std::array &feature_versions) -> bool { return version_in_range && SlXvIsFeaturePresent(feature_versions, XSLFI_LINKGRAPH_DAY_SCALE) && !SlXvIsFeaturePresent(feature_versions, XSLFI_JOKERPP); }) +[SDT_NAMED_NULL] +name = ""linkgraph.recalc_not_scaled_by_daylength"" +length = 1 +extver = SlXvFeatureTest([](uint16 version, bool version_in_range, const std::array &feature_versions) -> bool { return version_in_range && SlXvIsFeaturePresent(feature_versions, XSLFI_LINKGRAPH_DAY_SCALE, 1, 1) && !SlXvIsFeaturePresent(feature_versions, XSLFI_JOKERPP); }) patxname = ""linkgraph_day_scale.linkgraph.recalc_not_scaled_by_daylength"" [SDT_ENUM]