MCPcopy Create free account
hub / github.com/OpenTTD/OpenTTD / OnQueryTextFinished

Method OnQueryTextFinished

src/timetable_gui.cpp:733–772  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

731 }
732
733 void OnQueryTextFinished(std::optional<std::string> str) override
734 {
735 if (!str.has_value()) return;
736
737 const Vehicle *v = this->vehicle;
738 uint64_t val = ParseInteger<uint64_t>(*str, 10, true).value_or(0);
739 auto [order_id, mtf] = PackTimetableArgs(v, this->sel_index, query_widget == WID_VT_CHANGE_SPEED);
740
741 switch (query_widget) {
742 case WID_VT_CHANGE_SPEED: {
743 val = ConvertDisplaySpeedToKmhishSpeed(val, v->type);
744
745 if (this->change_timetable_all) {
746 Command<CMD_BULK_CHANGE_TIMETABLE>::Post(STR_ERROR_CAN_T_TIMETABLE_VEHICLE, v->index, mtf, ClampTo<uint16_t>(val));
747 } else {
748 Command<CMD_CHANGE_TIMETABLE>::Post(STR_ERROR_CAN_T_TIMETABLE_VEHICLE, v->index, order_id, mtf, ClampTo<uint16_t>(val));
749 }
750 break;
751 }
752
753 case WID_VT_CHANGE_TIME:
754 val *= TicksPerTimetableUnit();
755
756 if (this->change_timetable_all) {
757 Command<CMD_BULK_CHANGE_TIMETABLE>::Post(STR_ERROR_CAN_T_TIMETABLE_VEHICLE, v->index, mtf, ClampTo<uint16_t>(val));
758 } else {
759 Command<CMD_CHANGE_TIMETABLE>::Post(STR_ERROR_CAN_T_TIMETABLE_VEHICLE, v->index, order_id, mtf, ClampTo<uint16_t>(val));
760 }
761 break;
762
763 case WID_VT_START_DATE: {
764 TimerGameTick::TickCounter start_tick = TimerGameTick::counter + (val * Ticks::TICKS_PER_SECOND);
765 Command<CMD_SET_TIMETABLE_START>::Post(STR_ERROR_CAN_T_TIMETABLE_VEHICLE, v->index, this->change_timetable_all, start_tick);
766 break;
767 }
768
769 default:
770 NOT_REACHED();
771 }
772 }
773
774 void OnResize() override
775 {

Callers

nothing calls this directly

Calls 3

TicksPerTimetableUnitFunction · 0.85
NOT_REACHEDFunction · 0.85

Tested by

no test coverage detected