# timetable_cmd.cpp File Reference

Commands related to time tabling. More...

`#include "stdafx.h"`
`#include "command_func.h"`
`#include "functions.h"`
`#include "date_func.h"`
`#include "window_func.h"`
`#include "vehicle_base.h"`
`#include "table/strings.h"`

Go to the source code of this file.

## Functions
static void | ChangeTimetable (Vehicle *v, VehicleOrderID order_number, uint16 time, bool is_journey)
CommandCost | CmdChangeTimetable (TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
| Add or remove waiting times from an order.
CommandCost | CmdSetVehicleOnTime (TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
| Clear the lateness counter to make the vehicle on time.
CommandCost | CmdSetTimetableStart (TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
| Set the start date of the timetable.
CommandCost | CmdAutofillTimetable (TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 p2, const char *text)
| Start or stop filling the timetable automatically from the time the vehicle actually takes to complete it.
void | UpdateVehicleTimetable (Vehicle *v, bool travelling)

## Detailed Description

Commands related to time tabling.

Definition in file timetable_cmd.cpp.

## Function Documentation

CommandCost CmdAutofillTimetable | ( | TileIndex | tile,
|  | DoCommandFlag | flags,
|  | uint32 | p1,
|  | uint32 | p2,
|  | const char * | text |
| ) |  |  |

Start or stop filling the timetable automatically from the time the vehicle actually takes to complete it.

When starting to autofill the current times are cleared and the timetable will start again from scratch.

Parameters:

  | tile | Not used.
  | flags | Operation to perform.
  | p1 | Vehicle index.
  | p2 | Various bitstuffed elements p2 = (bit 0) - Set to 1 to enable, 0 to disable autofill. p2 = (bit 1) - Set to 1 to preserve waiting times in non-destructive mode
  | text | unused

Returns:
  the cost of this operation or an error

Definition at line 186 of file timetable_cmd.cpp.

References _settings_game, CheckOwnership(), ClrBit(), CMD_ERROR, DC_EXEC, Vehicle::FirstShared(), GB(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem<&_vehicle_pool >::GetIfValid(), HasBit(), Vehicle::IsPrimaryVehicle(), Vehicle::lateness_counter, Vehicle::NextShared(), GameSettings::order, SetBit(), SetWindowDirty(), Vehicle::timetable_start, OrderSettings::timetabling, Vehicle::vehicle_flags, VF_AUTOFILL_PRES_WAIT_TIME, VF_AUTOFILL_TIMETABLE, and VF_TIMETABLE_STARTED.

CommandCost CmdChangeTimetable | ( | TileIndex | tile,
|  | DoCommandFlag | flags,
|  | uint32 | p1,
|  | uint32 | p2,
|  | const char * | text |
| ) |  |  |

Add or remove waiting times from an order.

Parameters:

  | tile | Not used.
  | flags | Operation to perform.
  | p1 | Various bitstuffed elements p1 = (bit 0-15) - Vehicle with the orders to change. p1 = (bit 16-23) - Order index to modify. p1 = (bit 24) - Whether to change the waiting time or the travelling time. p1 = (bit 25) - Whether p2 contains waiting and travelling time.
  | p2 | The amount of time to wait. p2 = (bit 0-15) - Waiting or travelling time as specified by p1 bit 24 if p1 bit 25 is not set, Travelling time if p1 bit 25 is set. p2 = (bit 16-31) - Waiting time if p1 bit 25 is set
  | text | unused

Returns:
  the cost of this operation or an error

Definition at line 64 of file timetable_cmd.cpp.

References _settings_game, CheckOwnership(), CMD_ERROR, DC_EXEC, GB(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem<&_vehicle_pool >::GetIfValid(), Order::GetNonStopType(), Vehicle::GetOrder(), Order::GetType(), HasBit(), Vehicle::IsPrimaryVehicle(), Order::IsType(), ONSF_NO_STOP_AT_DESTINATION_STATION, GameSettings::order, return_cmd_error, OrderSettings::timetabling, Order::travel_time, and Order::wait_time.

CommandCost CmdSetTimetableStart | ( | TileIndex | tile,
|  | DoCommandFlag | flags,
|  | uint32 | p1,
|  | uint32 | p2,
|  | const char * | text |
| ) |  |  |

Set the start date of the timetable.

Parameters:

  | tile | Not used.
  | flags | Operation to perform.
  | p1 | Vehicle id.
  | p2 | The timetable start date in ticks.

Definition at line 148 of file timetable_cmd.cpp.

References _date, _settings_game, CheckOwnership(), ClrBit(), CMD_ERROR, DAYS_IN_LEAP_YEAR, DC_EXEC, GB(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem<&_vehicle_pool >::GetIfValid(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem< Tpool >::index, Vehicle::IsPrimaryVehicle(), Vehicle::lateness_counter, MAX_DAY, GameSettings::order, SetWindowDirty(), Vehicle::timetable_start, OrderSettings::timetabling, Vehicle::vehicle_flags, and VF_TIMETABLE_STARTED.

CommandCost CmdSetVehicleOnTime | ( | TileIndex | tile,
|  | DoCommandFlag | flags,
|  | uint32 | p1,
|  | uint32 | p2,
|  | const char * | text |
| ) |  |  |

Clear the lateness counter to make the vehicle on time.

Parameters:

  | tile | Not used.
  | flags | Operation to perform.
  | p1 | Various bitstuffed elements p1 = (bit 0-15) - Vehicle with the orders to change.
  | p2 | unused
  | text | unused

Returns:
  the cost of this operation or an error

Definition at line 124 of file timetable_cmd.cpp.

References _settings_game, CheckOwnership(), CMD_ERROR, DC_EXEC, GB(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem<&_vehicle_pool >::GetIfValid(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tcache, Tzero >::PoolItem< Tpool >::index, Vehicle::IsPrimaryVehicle(), Vehicle::lateness_counter, GameSettings::order, SetWindowDirty(), and OrderSettings::timetabling.