Allow entering decimal day/minute timetable values

This commit is contained in:
Jonathan G Rennison
2023-05-10 20:06:19 +01:00
parent d9eb839af9
commit 54221de0f5
4 changed files with 38 additions and 28 deletions

View File

@@ -2988,6 +2988,7 @@ public:
case WID_O_COND_VALUE: {
const Order *order = this->vehicle->GetOrder(this->OrderGetSel());
uint value;
CharSetFilter charset_filter = CS_NUMERAL;
switch (order->GetConditionVariable()) {
case OCV_CARGO_LOAD_PERCENTAGE:
case OCV_TIME_DATE:
@@ -2996,7 +2997,10 @@ public:
case OCV_TIMETABLE:
value = order->GetXData();
if (!_settings_client.gui.timetable_in_ticks) value /= DATE_UNIT_SIZE;
if (!_settings_client.gui.timetable_in_ticks) {
value /= DATE_UNIT_SIZE;
charset_filter = CS_NUMERAL_DECIMAL;
}
break;
case OCV_CARGO_WAITING_AMOUNT:
@@ -3012,7 +3016,7 @@ public:
if (order->GetConditionVariable() == OCV_CARGO_WAITING_AMOUNT) value = ConvertCargoQuantityToDisplayQuantity(order->GetConditionValue(), value);
this->query_text_widget = widget;
SetDParam(0, value);
ShowQueryString(STR_JUST_INT, STR_ORDER_CONDITIONAL_VALUE_CAPT, (order->GetConditionVariable() == OCV_CARGO_WAITING_AMOUNT) ? 12 : 6, this, CS_NUMERAL, QSF_NONE);
ShowQueryString(STR_JUST_INT, STR_ORDER_CONDITIONAL_VALUE_CAPT, (order->GetConditionVariable() == OCV_CARGO_WAITING_AMOUNT) ? 12 : 6, this, charset_filter, QSF_NONE);
break;
}
@@ -3118,10 +3122,10 @@ public:
value = Clamp(value, 0, 0xFFFF);
break;
case OCV_TIMETABLE:
if (!_settings_client.gui.timetable_in_ticks) value *= DATE_UNIT_SIZE;
value = Clamp(value, 0, 0xFFFF);
case OCV_TIMETABLE: {
value = Clamp(ParseTimetableDuration(str), 0, 0xFFFF);
break;
}
default:
value = Clamp(value, 0, 2047);