OpenTTD

- Main Page
- Related Pages
- Modules
- Namespaces
- Data Structures
- Files

- File List
- Globals

Data Structures | Typedefs | Enumerations | Variables
linkgraph_type.h File Reference

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

Go to the source code of this file.

## Data Structures
struct | EnumPropsT< DistributionType >

## Typedefs
typedef uint16 | LinkGraphID
typedef uint16 | LinkGraphJobID
typedef uint16 | NodeID
typedef TinyEnumT < DistributionType > | DistributionTypeByte

## Enumerations
enum | DistributionType { 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 LinkGraphID | 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

enum DistributionType

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 24 of file linkgraph_type.h.

enum 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 55 of file linkgraph_type.h.