diff --git a/src/saveload/extended_ver_sl.cpp b/src/saveload/extended_ver_sl.cpp index be40cad17b..d005143f1f 100644 --- a/src/saveload/extended_ver_sl.cpp +++ b/src/saveload/extended_ver_sl.cpp @@ -45,6 +45,7 @@ std::vector _sl_xv_discardable_chunk_ids; ///< list of chunks static const uint32 _sl_xv_slxi_chunk_version = 0; ///< current version os SLXI chunk const SlxiSubChunkInfo _sl_xv_sub_chunk_infos[] = { + { XSLFI_VARIABLE_DAY_LENGTH, XSCF_NULL, 1, 1, "variable_day_length", NULL, NULL, NULL }, { XSLFI_NULL, XSCF_NULL, 0, 0, NULL, NULL, NULL, NULL },// This is the end marker }; diff --git a/src/saveload/extended_ver_sl.h b/src/saveload/extended_ver_sl.h index 39a03478c2..bc1335a09a 100644 --- a/src/saveload/extended_ver_sl.h +++ b/src/saveload/extended_ver_sl.h @@ -21,6 +21,7 @@ */ enum SlXvFeatureIndex { XSLFI_NULL = 0, ///< Unused value, to indicate that no extended feature test is in use + XSLFI_VARIABLE_DAY_LENGTH, ///< Variable day length patch XSLFI_SIZE, ///< Total count of features, including null feature }; diff --git a/src/saveload/misc_sl.cpp b/src/saveload/misc_sl.cpp index 50f7beec19..e25a8f78ba 100644 --- a/src/saveload/misc_sl.cpp +++ b/src/saveload/misc_sl.cpp @@ -75,7 +75,7 @@ static const SaveLoadGlobVarList _date_desc[] = { SLEG_CONDVAR(_date, SLE_INT32, 31, SL_MAX_VERSION), SLEG_VAR(_date_fract, SLE_UINT16), SLEG_VAR(_tick_counter, SLE_UINT16), - SLEG_CONDVAR(_tick_skip_counter, SLE_UINT8, 200, SL_MAX_VERSION), + SLEG_CONDVAR_X(_tick_skip_counter, SLE_UINT8, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_VARIABLE_DAY_LENGTH)), SLE_CONDNULL(2, 0, 156), // _vehicle_id_ctr_day SLEG_CONDVAR(_age_cargo_skip_counter, SLE_UINT8, 0, 161), SLE_CONDNULL(1, 0, 45), @@ -101,7 +101,7 @@ static const SaveLoadGlobVarList _date_check_desc[] = { SLEG_CONDVAR(_load_check_data.current_date, SLE_INT32, 31, SL_MAX_VERSION), SLE_NULL(2), // _date_fract SLE_NULL(2), // _tick_counter - SLEG_CONDVAR(_tick_skip_counter, SLE_UINT8, 200, SL_MAX_VERSION), + SLEG_CONDVAR_X(_tick_skip_counter, SLE_UINT8, 0, SL_MAX_VERSION, SlXvFeatureTest(XSLFTO_AND, XSLFI_VARIABLE_DAY_LENGTH)), SLE_CONDNULL(2, 0, 156), // _vehicle_id_ctr_day SLE_CONDNULL(1, 0, 161), // _age_cargo_skip_counter SLE_CONDNULL(1, 0, 45), diff --git a/src/table/settings.ini b/src/table/settings.ini index bbd6b3c526..c7f1c134d7 100644 --- a/src/table/settings.ini +++ b/src/table/settings.ini @@ -1268,7 +1268,6 @@ cat = SC_BASIC base = GameSettings var = economy.day_length_factor type = SLE_UINT8 -from = 200 def = 1 min = 1 max = 125 @@ -1276,6 +1275,8 @@ str = STR_CONFIG_SETTING_DAY_LENGTH_FACTOR strhelp = STR_CONFIG_SETTING_DAY_LENGTH_FACTOR_HELPTEXT strval = STR_JUST_COMMA cat = SC_BASIC +extver = SlXvFeatureTest(XSLFTO_AND, XSLFI_VARIABLE_DAY_LENGTH) +patxname = ""variable_day_length.economy.day_length_factor"" [SDT_VAR] base = GameSettings