OpenTTD Source  20240919-master-gdf0233f4c2
order_type.h File Reference
#include "core/enum_type.hpp"

Go to the source code of this file.

Typedefs

typedef uint8_t VehicleOrderID
 The index of an order within its current vehicle (not pool related)
 
typedef uint32_t OrderID
 
typedef uint16_t OrderListID
 
typedef uint16_t DestinationID
 

Enumerations

enum  OrderType : uint8_t {
  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_IMPLICIT = 8, OT_END
}
 Order types. More...
 
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, ODATFB_UNBUNCH = 1 << 2 }
 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_REMAINING_LIFETIME, OCV_MAX_RELIABILITY,
  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 : uint8_t {
  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_UNBUNCH,
  DA_END
}
 Depot action to switch to when doing a MOF_DEPOT_ACTION. More...
 
enum  ModifyTimetableFlags : uint8_t { MTF_WAIT_TIME, MTF_TRAVEL_TIME, MTF_TRAVEL_SPEED, MTF_END }
 Enumeration for the data to set in CmdChangeTimetable. More...
 
enum  CloneOptions : uint8_t { CO_SHARE = 0, CO_COPY = 1, CO_UNSHARE = 2 }
 Clone actions.
 

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 = 0xFFFFFF
 Invalid order (sentinel)
 
static const uint IMPLICIT_ORDER_ONLY_CAP = 32
 Maximum number of orders in implicit-only lists before we start searching harder for duplicates.
 

Detailed Description

Types related to orders.

Definition in file order_type.h.

Enumeration Type Documentation

◆ ModifyOrderFlags

enum ModifyOrderFlags : uint8_t

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 144 of file order_type.h.

◆ ModifyTimetableFlags

enum ModifyTimetableFlags : uint8_t

Enumeration for the data to set in CmdChangeTimetable.

Enumerator
MTF_WAIT_TIME 

Set wait time.

MTF_TRAVEL_TIME 

Set travel time.

MTF_TRAVEL_SPEED 

Set max travel speed.

Definition at line 171 of file order_type.h.

◆ 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 128 of file order_type.h.

◆ 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.

OCV_REMAINING_LIFETIME 

Skip based on the remaining lifetime.

OCV_MAX_RELIABILITY 

Skip based on the maximum reliability.

Definition at line 113 of file order_type.h.

◆ 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.

DA_UNBUNCH 

Go to the depot and unbunch.

Definition at line 160 of file order_type.h.

◆ 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.

ODATFB_UNBUNCH 

Service the vehicle and then unbunch it.

Definition at line 102 of file order_type.h.

◆ 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 93 of file order_type.h.

◆ 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 all cargoes of the consist.

OLF_FULL_LOAD_ANY 

Full load a single cargo of the consist.

OLFB_NO_LOAD 

Do not load anything.

Definition at line 62 of file order_type.h.

◆ 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 72 of file order_type.h.

◆ 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 83 of file order_type.h.

◆ OrderType

enum OrderType : uint8_t

Order types.

It needs to be 8bits, because we save and load it as such

Definition at line 35 of file order_type.h.

◆ 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 52 of file order_type.h.