OpenTTD Source  20241108-master-g80f628063a
linkgraph_type.h File Reference

Declaration of link graph types used for cargo distribution. More...

Go to the source code of this file.

Typedefs

typedef uint16_t LinkGraphID
 
typedef uint16_t LinkGraphJobID
 
typedef uint16_t NodeID
 

Enumerations

enum  DistributionType : uint8_t {
  DT_BEGIN = 0 , DT_MIN = 0 , DT_MANUAL = 0 , DT_ASYMMETRIC = 1 ,
  DT_MAX_NONSYMMETRIC = 1 , DT_SYMMETRIC = 2 , DT_MAX = 2 , DT_NUM = 3 ,
  DT_END = 3
}
 
enum  EdgeUpdateMode { EUM_INCREASE = 1 , EUM_REFRESH = 1 << 1 , EUM_RESTRICTED = 1 << 2 , EUM_UNRESTRICTED = 1 << 3 }
 Special modes for updating links. More...
 

Variables

static const LinkGraphID INVALID_LINK_GRAPH = UINT16_MAX
 
static const LinkGraphJobID INVALID_LINK_GRAPH_JOB = UINT16_MAX
 
static const NodeID INVALID_NODE = UINT16_MAX
 

Detailed Description

Declaration of link graph types used for cargo distribution.

Definition in file linkgraph_type.h.

Enumeration Type Documentation

◆ DistributionType

enum DistributionType : uint8_t
Enumerator
DT_MANUAL 

Manual distribution. No link graph calculations are run.

DT_ASYMMETRIC 

Asymmetric distribution. Usually cargo will only travel in one direction.

DT_MAX_NONSYMMETRIC 

Maximum non-symmetric distribution.

DT_SYMMETRIC 

Symmetric distribution. The same amount of cargo travels in each direction between each pair of nodes.

Definition at line 22 of file linkgraph_type.h.

◆ EdgeUpdateMode

Special modes for updating links.

'Restricted' means that vehicles with 'no loading' orders are serving the link. If a link is only served by such vehicles it's 'fully restricted'. This means the link can be used by cargo arriving in such vehicles, but not by cargo generated or transferring at the source station of the link. In order to find out about this condition we keep two update timestamps in each link, one for the restricted and one for the unrestricted part of it. If either one times out while the other is still valid the link becomes fully restricted or fully unrestricted, respectively. Refreshing a link makes just sure a minimum capacity is kept. Increasing actually adds the given capacity.

Enumerator
EUM_INCREASE 

Increase capacity.

EUM_REFRESH 

Refresh capacity.

EUM_RESTRICTED 

Use restricted link.

EUM_UNRESTRICTED 

Use unrestricted link.

Definition at line 47 of file linkgraph_type.h.