Fix entering schdispatch delay/duration when not in minutes mode
This commit is contained in:
@@ -7048,16 +7048,18 @@ STR_SCHDISPATCH_ADD_TOOLTIP :{BLACK}Add new
|
|||||||
STR_SCHDISPATCH_ADD_CAPTION :{BLACK}Departure slot
|
STR_SCHDISPATCH_ADD_CAPTION :{BLACK}Departure slot
|
||||||
STR_SCHDISPATCH_DURATION :{BLACK}Duration
|
STR_SCHDISPATCH_DURATION :{BLACK}Duration
|
||||||
STR_SCHDISPATCH_DURATION_TOOLTIP :{BLACK}Set duration of this schedule.
|
STR_SCHDISPATCH_DURATION_TOOLTIP :{BLACK}Set duration of this schedule.
|
||||||
STR_SCHDISPATCH_DURATION_CAPTION_MINUTE :{BLACK}Duration (minute)
|
STR_SCHDISPATCH_DURATION_CAPTION_MINUTE :{BLACK}Duration (minutes)
|
||||||
STR_SCHDISPATCH_DURATION_CAPTION_DAY :{BLACK}Duration (day)
|
STR_SCHDISPATCH_DURATION_CAPTION_DAY :{BLACK}Duration (days)
|
||||||
|
STR_SCHDISPATCH_DURATION_CAPTION_TICKS :{BLACK}Duration (ticks)
|
||||||
STR_SCHDISPATCH_START :{BLACK}Start Date
|
STR_SCHDISPATCH_START :{BLACK}Start Date
|
||||||
STR_SCHDISPATCH_SET_START :{BLACK}Set Start Date
|
STR_SCHDISPATCH_SET_START :{BLACK}Set Start Date
|
||||||
STR_SCHDISPATCH_START_TOOLTIP :{BLACK}Select a date to start this schedule.
|
STR_SCHDISPATCH_START_TOOLTIP :{BLACK}Select a date to start this schedule.
|
||||||
STR_SCHDISPATCH_START_CAPTION_MINUTE :{BLACK}Start time (hhmm)
|
STR_SCHDISPATCH_START_CAPTION_MINUTE :{BLACK}Start time (hhmm)
|
||||||
STR_SCHDISPATCH_DELAY :{BLACK}Delay
|
STR_SCHDISPATCH_DELAY :{BLACK}Delay
|
||||||
STR_SCHDISPATCH_DELAY_TOOLTIP :{BLACK}Set maximum delay until a slot is skipped.
|
STR_SCHDISPATCH_DELAY_TOOLTIP :{BLACK}Set maximum delay until a slot is skipped.
|
||||||
STR_SCHDISPATCH_DELAY_CAPTION_MINUTE :{BLACK}Delay (minute)
|
STR_SCHDISPATCH_DELAY_CAPTION_MINUTE :{BLACK}Delay (minutes)
|
||||||
STR_SCHDISPATCH_DELAY_CAPTION_DAY :{BLACK}Delay (day)
|
STR_SCHDISPATCH_DELAY_CAPTION_DAY :{BLACK}Delay (days)
|
||||||
|
STR_SCHDISPATCH_DELAY_CAPTION_TICKS :{BLACK}Delay (ticks)
|
||||||
STR_SCHDISPATCH_RESET_LAST_DISPATCH :{BLACK}Reset Last Dispatched
|
STR_SCHDISPATCH_RESET_LAST_DISPATCH :{BLACK}Reset Last Dispatched
|
||||||
STR_SCHDISPATCH_RESET_LAST_DISPATCH_TOOLTIP :{BLACK}Reset when a vehicle was last dispatched from the schedule.
|
STR_SCHDISPATCH_RESET_LAST_DISPATCH_TOOLTIP :{BLACK}Reset when a vehicle was last dispatched from the schedule.
|
||||||
|
|
||||||
|
@@ -446,6 +446,19 @@ struct SchdispatchWindow : Window {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int32 ProcessDurationForQueryString(int32 duration) const
|
||||||
|
{
|
||||||
|
if (!_settings_client.gui.timetable_in_ticks) duration = RoundDivSU(duration, DATE_UNIT_SIZE);
|
||||||
|
return duration;
|
||||||
|
}
|
||||||
|
|
||||||
|
int GetQueryStringCaptionOffset() const
|
||||||
|
{
|
||||||
|
if (_settings_client.gui.timetable_in_ticks) return 2;
|
||||||
|
if (_settings_time.time_in_minutes) return 0;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
virtual void OnClick(Point pt, int widget, int click_count) override
|
virtual void OnClick(Point pt, int widget, int click_count) override
|
||||||
{
|
{
|
||||||
const Vehicle *v = this->vehicle;
|
const Vehicle *v = this->vehicle;
|
||||||
@@ -479,8 +492,8 @@ struct SchdispatchWindow : Window {
|
|||||||
}
|
}
|
||||||
|
|
||||||
case WID_SCHDISPATCH_SET_DURATION: {
|
case WID_SCHDISPATCH_SET_DURATION: {
|
||||||
SetDParam(0, RoundDivSU(v->orders.list->GetScheduledDispatchDuration(), _settings_time.ticks_per_minute ? _settings_time.ticks_per_minute : DAY_TICKS));
|
SetDParam(0, ProcessDurationForQueryString(v->orders.list->GetScheduledDispatchDuration()));
|
||||||
ShowQueryString(STR_JUST_INT, _settings_time.time_in_minutes ? STR_SCHDISPATCH_DURATION_CAPTION_MINUTE : STR_SCHDISPATCH_DURATION_CAPTION_DAY, 31, this, CS_NUMERAL, QSF_NONE);
|
ShowQueryString(STR_JUST_INT, STR_SCHDISPATCH_DURATION_CAPTION_MINUTE + this->GetQueryStringCaptionOffset(), 31, this, CS_NUMERAL, QSF_NONE);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -500,8 +513,8 @@ struct SchdispatchWindow : Window {
|
|||||||
}
|
}
|
||||||
|
|
||||||
case WID_SCHDISPATCH_SET_DELAY: {
|
case WID_SCHDISPATCH_SET_DELAY: {
|
||||||
SetDParam(0, RoundDivSU(v->orders.list->GetScheduledDispatchDelay(), _settings_time.ticks_per_minute ? _settings_time.ticks_per_minute : DAY_TICKS));
|
SetDParam(0, ProcessDurationForQueryString(v->orders.list->GetScheduledDispatchDelay()));
|
||||||
ShowQueryString(STR_JUST_INT, _settings_time.time_in_minutes ? STR_SCHDISPATCH_DELAY_CAPTION_MINUTE : STR_SCHDISPATCH_DELAY_CAPTION_DAY, 31, this, CS_NUMERAL, QSF_NONE);
|
ShowQueryString(STR_JUST_INT, STR_SCHDISPATCH_DELAY_CAPTION_MINUTE + this->GetQueryStringCaptionOffset(), 31, this, CS_NUMERAL, QSF_NONE);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -556,11 +569,7 @@ struct SchdispatchWindow : Window {
|
|||||||
int32 val = StrEmpty(str) ? 0 : strtoul(str, nullptr, 10);
|
int32 val = StrEmpty(str) ? 0 : strtoul(str, nullptr, 10);
|
||||||
|
|
||||||
if (val > 0) {
|
if (val > 0) {
|
||||||
if (_settings_time.time_in_minutes) {
|
if (!_settings_client.gui.timetable_in_ticks) val *= DATE_UNIT_SIZE;
|
||||||
val *= _settings_time.ticks_per_minute;
|
|
||||||
} else {
|
|
||||||
val *= DAY_TICKS;
|
|
||||||
}
|
|
||||||
|
|
||||||
DoCommandP(0, v->index, val, CMD_SCHEDULED_DISPATCH_SET_DURATION | CMD_MSG(STR_ERROR_CAN_T_TIMETABLE_VEHICLE));
|
DoCommandP(0, v->index, val, CMD_SCHEDULED_DISPATCH_SET_DURATION | CMD_MSG(STR_ERROR_CAN_T_TIMETABLE_VEHICLE));
|
||||||
}
|
}
|
||||||
@@ -572,11 +581,7 @@ struct SchdispatchWindow : Window {
|
|||||||
int32 val = StrEmpty(str) ? -1 : strtoul(str, &end, 10);
|
int32 val = StrEmpty(str) ? -1 : strtoul(str, &end, 10);
|
||||||
|
|
||||||
if (val >= 0 && end && *end == 0) {
|
if (val >= 0 && end && *end == 0) {
|
||||||
if (_settings_time.time_in_minutes) {
|
if (!_settings_client.gui.timetable_in_ticks) val *= DATE_UNIT_SIZE;
|
||||||
val *= _settings_time.ticks_per_minute;
|
|
||||||
} else {
|
|
||||||
val *= DAY_TICKS;
|
|
||||||
}
|
|
||||||
|
|
||||||
DoCommandP(0, v->index, val, CMD_SCHEDULED_DISPATCH_SET_DELAY | CMD_MSG(STR_ERROR_CAN_T_TIMETABLE_VEHICLE));
|
DoCommandP(0, v->index, val, CMD_SCHEDULED_DISPATCH_SET_DELAY | CMD_MSG(STR_ERROR_CAN_T_TIMETABLE_VEHICLE));
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user