# order_type.h File Reference

Types related to orders. More...

`#include "core/enum_type.hpp"`

Go to the source code of this file.

## Data Structures
struct | EnumPropsT< ModifyOrderFlags >
## Typedefs
typedef byte | VehicleOrderID
| The index of an order within its current vehicle (not pool related).
typedef uint16 | OrderID
typedef uint16 | OrderListID
typedef uint16 | DestinationID
typedef SimpleTinyEnumT < OrderType, byte > | OrderTypeByte
| It needs to be 8bits, because we save and load it as such.
## Enumerations
enum | OrderType { OT_BEGIN = 0, OT_NOTHING = 0, OT_GOTO_STATION = 1, OT_GOTO_DEPOT = 2, OT_LOADING = 3, OT_LEAVESTATION = 4, OT_DUMMY = 5, OT_GOTO_WAYPOINT = 6, OT_CONDITIONAL = 7, OT_END }
enum | OrderUnloadFlags { OUF_UNLOAD_IF_POSSIBLE = 0, OUFB_UNLOAD = 1 << 0, OUFB_TRANSFER = 1 << 1, OUFB_NO_UNLOAD = 1 << 2 }
| Flags related to the unloading order. More...
enum | OrderLoadFlags { OLF_LOAD_IF_POSSIBLE = 0, OLFB_FULL_LOAD = 1 << 1, OLF_FULL_LOAD_ANY = 3, OLFB_NO_LOAD = 4 }
| Flags related to the loading order. More...
enum | OrderNonStopFlags { ONSF_STOP_EVERYWHERE = 0, ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS = 1, ONSF_NO_STOP_AT_DESTINATION_STATION = 2, ONSF_NO_STOP_AT_ANY_STATION = 3, ONSF_END }
| Non-stop order flags. More...
enum | OrderStopLocation { OSL_PLATFORM_NEAR_END = 0, OSL_PLATFORM_MIDDLE = 1, OSL_PLATFORM_FAR_END = 2, OSL_END }
| Where to stop the trains. More...
enum | OrderDepotTypeFlags { ODTF_MANUAL = 0, ODTFB_SERVICE = 1 << 0, ODTFB_PART_OF_ORDERS = 1 << 1 }
| Reasons that could cause us to go to the depot. More...
enum | OrderDepotActionFlags { ODATF_SERVICE_ONLY = 0, ODATFB_HALT = 1 << 0, ODATFB_NEAREST_DEPOT = 1 << 1 }
| Actions that can be performed when the vehicle enters the depot. More...
enum | OrderConditionVariable { OCV_LOAD_PERCENTAGE, OCV_RELIABILITY, OCV_MAX_SPEED, OCV_AGE, OCV_REQUIRES_SERVICE, OCV_UNCONDITIONALLY, OCV_END }
| Variables (of a vehicle) to 'cause' skipping on. More...
enum | OrderConditionComparator { OCC_EQUALS, OCC_NOT_EQUALS, OCC_LESS_THAN, OCC_LESS_EQUALS, OCC_MORE_THAN, OCC_MORE_EQUALS, OCC_IS_TRUE, OCC_IS_FALSE, OCC_END }
| Comparator for the skip reasoning. More...
enum | ModifyOrderFlags { MOF_NON_STOP, MOF_STOP_LOCATION, MOF_UNLOAD, MOF_LOAD, MOF_DEPOT_ACTION, MOF_COND_VARIABLE, MOF_COND_COMPARATOR, MOF_COND_VALUE, MOF_COND_DESTINATION, MOF_END }
| Enumeration for the data to set in CmdModifyOrder. More...
enum | OrderDepotAction { DA_ALWAYS_GO, DA_SERVICE, DA_STOP, DA_END }
| Depot action to switch to when doing a MOF_DEPOT_ACTION. More...
enum | { CO_SHARE = 0, CO_COPY = 1, CO_UNSHARE = 2 }
## Functions
| DECLARE_ENUM_AS_BIT_SET (OrderDepotActionFlags)
## Variables
static const VehicleOrderID | INVALID_VEH_ORDER_ID = 0xFF
| Invalid vehicle order index (sentinel).
static const VehicleOrderID | MAX_VEH_ORDER_ID = INVALID_VEH_ORDER_ID - 1
| Last valid VehicleOrderID.
static const OrderID | INVALID_ORDER = 0xFFFF
| Invalid order (sentinel).

## Detailed Description

Types related to orders.

Definition in file order_type.h.

## Enumeration Type Documentation

enum ModifyOrderFlags

Enumeration for the data to set in CmdModifyOrder.

Enumerator:

  MOF_NON_STOP | Passes an OrderNonStopFlags.
  MOF_STOP_LOCATION | Passes an OrderStopLocation.
  MOF_UNLOAD | Passes an OrderUnloadType.
  MOF_LOAD | Passes an OrderLoadType.
  MOF_DEPOT_ACTION | Selects the OrderDepotAction.
  MOF_COND_VARIABLE | A conditional variable changes.
  MOF_COND_COMPARATOR | A comparator changes.
  MOF_COND_VALUE | The value to set the condition to.
  MOF_COND_DESTINATION | Change the destination of a conditional order.

Definition at line 140 of file order_type.h.

enum OrderConditionComparator

Comparator for the skip reasoning.

Enumerator:

  OCC_EQUALS | Skip if both values are equal.
  OCC_NOT_EQUALS | Skip if both values are not equal.
  OCC_LESS_THAN | Skip if the value is less than the limit.
  OCC_LESS_EQUALS | Skip if the value is less or equal to the limit.
  OCC_MORE_THAN | Skip if the value is more than the limit.
  OCC_MORE_EQUALS | Skip if the value is more or equal to the limit.
  OCC_IS_TRUE | Skip if the variable is true.
  OCC_IS_FALSE | Skip if the variable is false.

Definition at line 124 of file order_type.h.

enum OrderConditionVariable

Variables (of a vehicle) to 'cause' skipping on.

Enumerator:

  OCV_LOAD_PERCENTAGE | Skip based on the amount of load.
  OCV_RELIABILITY | Skip based on the reliability.
  OCV_MAX_SPEED | Skip based on the maximum speed.
  OCV_AGE | Skip based on the age.
  OCV_REQUIRES_SERVICE | Skip when the vehicle requires service.
  OCV_UNCONDITIONALLY | Always skip.

Definition at line 111 of file order_type.h.

enum OrderDepotAction

Depot action to switch to when doing a MOF_DEPOT_ACTION.

Enumerator:

  DA_ALWAYS_GO | Always go to the depot.
  DA_SERVICE | Service only if needed.
  DA_STOP | Go to the depot and stop there.

Definition at line 157 of file order_type.h.

enum OrderDepotActionFlags

Actions that can be performed when the vehicle enters the depot.

Enumerator:

  ODATF_SERVICE_ONLY | Only service the vehicle.
  ODATFB_HALT | Service the vehicle and then halt it.
  ODATFB_NEAREST_DEPOT | Send the vehicle to the nearest depot.

Definition at line 101 of file order_type.h.

enum OrderDepotTypeFlags

Reasons that could cause us to go to the depot.

Enumerator:

  ODTF_MANUAL | Manually initiated order.
  ODTFB_SERVICE | This depot order is because of the servicing limit.
  ODTFB_PART_OF_ORDERS | This depot order is because of a regular order.

Definition at line 92 of file order_type.h.

enum OrderLoadFlags

Flags related to the loading order.

Enumerator:

  OLF_LOAD_IF_POSSIBLE | Load as long as there is cargo that fits in the train.
  OLFB_FULL_LOAD | Full load the complete the consist.
  OLF_FULL_LOAD_ANY | Full load the a single cargo of the consist.
  OLFB_NO_LOAD | Do not load anything.

Definition at line 61 of file order_type.h.

enum OrderNonStopFlags

Non-stop order flags.

Enumerator:

  ONSF_STOP_EVERYWHERE | The vehicle will stop at any station it passes and the destination.
  ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS | The vehicle will not stop at any stations it passes except the destination.
  ONSF_NO_STOP_AT_DESTINATION_STATION | The vehicle will stop at any station it passes except the destination.
  ONSF_NO_STOP_AT_ANY_STATION | The vehicle will not stop at any stations it passes including the destination.

Definition at line 71 of file order_type.h.

enum OrderStopLocation

Where to stop the trains.

Enumerator:

  OSL_PLATFORM_NEAR_END | Stop at the near end of the platform.
  OSL_PLATFORM_MIDDLE | Stop at the middle of the platform.
  OSL_PLATFORM_FAR_END | Stop at the far end of the platform.

Definition at line 82 of file order_type.h.

enum OrderUnloadFlags

Flags related to the unloading order.

Enumerator:

  OUF_UNLOAD_IF_POSSIBLE | Unload all cargo that the station accepts.
  OUFB_UNLOAD | Force unloading all cargo onto the platform, possibly not getting paid.
  OUFB_TRANSFER | Transfer all cargo onto the platform.
  OUFB_NO_UNLOAD | Totally no unloading will be done.

Definition at line 51 of file order_type.h.

## Variable Documentation

const VehicleOrderID MAX_VEH_ORDER_ID = INVALID_VEH_ORDER_ID - 1`[static]`

Last valid VehicleOrderID.

Definition at line 25 of file order_type.h.

Referenced by CmdInsertOrder().