Add current day/month to tracerestrict and conditional order conditionals

pull/326/head
Jonathan G Rennison 3 years ago
parent 944f090b46
commit 53139c2405

@ -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

@ -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));
}

@ -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 },

@ -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;
}

@ -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
};
/**

@ -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;
}

Loading…
Cancel
Save