diff --git a/src/lang/english.txt b/src/lang/english.txt index 92253d00b5..bb4778ab7e 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -3075,12 +3075,18 @@ STR_TRACE_RESTRICT_NO_PBS_BACK_PENALTY_CANCEL_SHORT :Cancel no PBS b STR_TRACE_RESTRICT_TIME_MINUTE :current minute (0 - 59) STR_TRACE_RESTRICT_TIME_HOUR :current hour (0 - 23) STR_TRACE_RESTRICT_TIME_HOUR_MINUTE :current hour and minute (0 - 2359) +STR_TRACE_RESTRICT_TIME_DAY :current day (1 - 31) +STR_TRACE_RESTRICT_TIME_MONTH :current month (1 - 12) STR_TRACE_RESTRICT_TIME_MINUTE_ITEM :current minute STR_TRACE_RESTRICT_TIME_HOUR_ITEM :current hour STR_TRACE_RESTRICT_TIME_HOUR_MINUTE_ITEM :current hour and minute +STR_TRACE_RESTRICT_TIME_DAY_ITEM :current day +STR_TRACE_RESTRICT_TIME_MONTH_ITEM :current month STR_TRACE_RESTRICT_TIME_MINUTE_SHORT :minute STR_TRACE_RESTRICT_TIME_HOUR_SHORT :hour STR_TRACE_RESTRICT_TIME_HOUR_MINUTE_SHORT :hour and minute +STR_TRACE_RESTRICT_TIME_DAY_ITEM_SHORT :day +STR_TRACE_RESTRICT_TIME_MONTH_ITEM_SHORT :month STR_TRACE_RESTRICT_TIMETABLE_LATENESS :lateness STR_TRACE_RESTRICT_TIMETABLE_EARLINESS :earliness STR_TRACE_RESTRICT_VALUE_CAPTION :{WHITE}Value diff --git a/src/order_gui.cpp b/src/order_gui.cpp index c8c446df81..ec0a17ad5c 100644 --- a/src/order_gui.cpp +++ b/src/order_gui.cpp @@ -757,6 +757,8 @@ static const StringID _order_time_date_dropdown[] = { STR_TRACE_RESTRICT_TIME_MINUTE, STR_TRACE_RESTRICT_TIME_HOUR, STR_TRACE_RESTRICT_TIME_HOUR_MINUTE, + STR_TRACE_RESTRICT_TIME_DAY, + STR_TRACE_RESTRICT_TIME_MONTH, INVALID_STRING_ID }; @@ -2421,7 +2423,7 @@ public: case WID_O_COND_TIME_DATE: { ShowDropDownMenu(this, _order_time_date_dropdown, this->vehicle->GetOrder(this->OrderGetSel())->GetConditionValue(), - WID_O_COND_TIME_DATE, 0, 0, UINT_MAX); + WID_O_COND_TIME_DATE, _settings_game.game_time.time_in_minutes ? 0 : 7, 0, UINT_MAX); break; } @@ -2481,7 +2483,6 @@ public: _order_conditional_variable[i] == OCV_COUNTER_VALUE) && !_settings_client.gui.show_adv_tracerestrict_features) { continue; } - if (_order_conditional_variable[i] == OCV_TIME_DATE && !_settings_game.game_time.time_in_minutes) continue; } list.emplace_back(new DropDownListStringItem(STR_ORDER_CONDITIONAL_LOAD_PERCENTAGE + _order_conditional_variable[i], _order_conditional_variable[i], false)); } diff --git a/src/saveload/extended_ver_sl.cpp b/src/saveload/extended_ver_sl.cpp index edb314f3b2..de0126b876 100644 --- a/src/saveload/extended_ver_sl.cpp +++ b/src/saveload/extended_ver_sl.cpp @@ -75,7 +75,7 @@ const SlxiSubChunkInfo _sl_xv_sub_chunk_infos[] = { { XSLFI_TRACE_RESTRICT_REVERSE, XSCF_NULL, 1, 1, "tracerestrict_reverse", nullptr, nullptr, nullptr }, { XSLFI_TRACE_RESTRICT_NEWSCTRL,XSCF_NULL, 1, 1, "tracerestrict_newsctrl", nullptr, nullptr, nullptr }, { XSLFI_TRACE_RESTRICT_COUNTER, XSCF_NULL, 1, 1, "tracerestrict_counter", nullptr, nullptr, "TRRC" }, - { XSLFI_TRACE_RESTRICT_TIMEDATE,XSCF_NULL, 1, 1, "tracerestrict_timedate", nullptr, nullptr, nullptr }, + { XSLFI_TRACE_RESTRICT_TIMEDATE,XSCF_NULL, 2, 2, "tracerestrict_timedate", nullptr, nullptr, nullptr }, { XSLFI_TRACE_RESTRICT_BRKCND, XSCF_NULL, 2, 2, "tracerestrict_braking_cond",nullptr, nullptr, nullptr }, { XSLFI_TRACE_RESTRICT_CTGRYCND,XSCF_NULL, 1, 1, "tracerestrict_ctgry_cond", nullptr, nullptr, nullptr }, { XSLFI_TRACE_RESTRICT_PENCTRL, XSCF_NULL, 1, 1, "tracerestrict_pfpenctrl", nullptr, nullptr, nullptr }, @@ -95,7 +95,7 @@ const SlxiSubChunkInfo _sl_xv_sub_chunk_infos[] = { { XSLFI_INFRA_SHARING, XSCF_NULL, 2, 2, "infra_sharing", nullptr, nullptr, "CPDP" }, { XSLFI_VARIABLE_DAY_LENGTH, XSCF_NULL, 2, 2, "variable_day_length", nullptr, nullptr, nullptr }, { XSLFI_ORDER_OCCUPANCY, XSCF_NULL, 2, 2, "order_occupancy", nullptr, nullptr, nullptr }, - { XSLFI_MORE_COND_ORDERS, XSCF_NULL, 10, 10, "more_cond_orders", nullptr, nullptr, nullptr }, + { XSLFI_MORE_COND_ORDERS, XSCF_NULL, 11, 11, "more_cond_orders", nullptr, nullptr, nullptr }, { 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 }, diff --git a/src/tracerestrict.cpp b/src/tracerestrict.cpp index 08bf306e48..44c19e179c 100644 --- a/src/tracerestrict.cpp +++ b/src/tracerestrict.cpp @@ -1713,6 +1713,12 @@ int GetTraceRestrictTimeDateValue(TraceRestrictTimeDateValueField type) case TRTDVF_HOUR_MINUTE: return (MINUTES_HOUR(minutes) * 100) + MINUTES_MINUTE(minutes); + case TRTDVF_DAY: + return _cur_date_ymd.day; + + case TRTDVF_MONTH: + return _cur_date_ymd.month + 1; + default: return 0; } diff --git a/src/tracerestrict.h b/src/tracerestrict.h index dc9d2b8ce4..a11b57a09a 100644 --- a/src/tracerestrict.h +++ b/src/tracerestrict.h @@ -313,7 +313,9 @@ enum TraceRestrictTimeDateValueField { TRTDVF_MINUTE = 0, ///< Minute TRTDVF_HOUR = 1, ///< Hour TRTDVF_HOUR_MINUTE = 2, ///< Hour and minute - TRTDVF_END = 3, ///< End tag + TRTDVF_DAY = 3, ///< Day + TRTDVF_MONTH = 4, ///< Month + TRTDVF_END = 5, ///< End tag }; /** diff --git a/src/tracerestrict_gui.cpp b/src/tracerestrict_gui.cpp index f58ba4ca1b..0378aac3fa 100644 --- a/src/tracerestrict_gui.cpp +++ b/src/tracerestrict_gui.cpp @@ -346,12 +346,16 @@ static const StringID _time_date_value_str[] = { STR_TRACE_RESTRICT_TIME_MINUTE, STR_TRACE_RESTRICT_TIME_HOUR, STR_TRACE_RESTRICT_TIME_HOUR_MINUTE, + STR_TRACE_RESTRICT_TIME_DAY, + STR_TRACE_RESTRICT_TIME_MONTH, INVALID_STRING_ID }; static const uint _time_date_value_val[] = { TRTDVF_MINUTE, TRTDVF_HOUR, TRTDVF_HOUR_MINUTE, + TRTDVF_DAY, + TRTDVF_MONTH, }; /** value drop down list for time/date types strings and values */ @@ -543,7 +547,6 @@ static const TraceRestrictDropDownListSet *GetTypeDropDownListSet(TraceRestrictG } else { *hide_mask = is_conditional ? 0x1FE0000 : 0x6F0; } - if (is_conditional && !_settings_game.game_time.time_in_minutes) *hide_mask |= 0x800000; if (is_conditional && _settings_game.vehicle.train_braking_model != TBM_REALISTIC) *hide_mask |= 0x1040000; } return is_conditional ? &set_cond : &set_action; @@ -1858,7 +1861,7 @@ public: } case TRVT_TIME_DATE_INT: { - this->ShowDropDownListWithValue(&_time_date_value, GetTraceRestrictValue(item), false, TR_WIDGET_LEFT_AUX_DROPDOWN, 0, 0, UINT_MAX); + this->ShowDropDownListWithValue(&_time_date_value, GetTraceRestrictValue(item), false, TR_WIDGET_LEFT_AUX_DROPDOWN, _settings_game.game_time.time_in_minutes ? 0 : 7, 0, UINT_MAX); break; }