# rail_type.h File Reference

The different types of rail. More...

`#include "core/enum_type.hpp"`

Go to the source code of this file.

## Data Structures
struct | EnumPropsT< RailType >
| Define basic enum properties. More...
## Typedefs
typedef uint32 | RailTypeLabel
typedef TinyEnumT< RailType > | RailTypeByte
## Enumerations
enum | RailType { RAILTYPE_BEGIN = 0, RAILTYPE_RAIL = 0, RAILTYPE_ELECTRIC = 1, RAILTYPE_MONO = 2, RAILTYPE_MAGLEV = 3, RAILTYPE_END = 16, INVALID_RAILTYPE = 0xFF, DEF_RAILTYPE_FIRST = RAILTYPE_END, DEF_RAILTYPE_LAST, DEF_RAILTYPE_MOST_USED }
| Enumeration for all possible railtypes. More...
enum | RailTypes { RAILTYPES_NONE = 0, RAILTYPES_RAIL = 1 << RAILTYPE_RAIL, RAILTYPES_ELECTRIC = 1 << RAILTYPE_ELECTRIC, RAILTYPES_MONO = 1 << RAILTYPE_MONO, RAILTYPES_MAGLEV = 1 << RAILTYPE_MAGLEV, INVALID_RAILTYPES = UINT_MAX }
| The different roadtypes we support, but then a bitmask of them. More...
## Functions
| DECLARE_POSTFIX_INCREMENT (RailType)
| Allow incrementing of Track variables.
| DECLARE_ENUM_AS_BIT_SET (RailTypes)
## Variables
static const RailTypeLabel | RAILTYPE_RAIL_LABEL = 'RAIL'
static const RailTypeLabel | RAILTYPE_ELECTRIC_LABEL = 'ELRL'
static const RailTypeLabel | RAILTYPE_MONO_LABEL = 'MONO'
static const RailTypeLabel | RAILTYPE_MAGLEV_LABEL = 'MGLV'

## Detailed Description

The different types of rail.

Definition in file rail_type.h.

## Enumeration Type Documentation

enum RailType

Enumeration for all possible railtypes.

This enumeration defines all 4 possible railtypes.

Enumerator:

  RAILTYPE_BEGIN | Used for iterations.
  RAILTYPE_RAIL | Standard non-electric rails.
  RAILTYPE_ELECTRIC | Electric rails.
  RAILTYPE_MONO | Monorail.
  RAILTYPE_MAGLEV | Maglev.
  RAILTYPE_END | Used for iterations.
  INVALID_RAILTYPE | Flag for invalid railtype.
  DEF_RAILTYPE_FIRST | Default railtype: first available.
  DEF_RAILTYPE_LAST | Default railtype: last available.
  DEF_RAILTYPE_MOST_USED | Default railtype: most used.

Definition at line 29 of file rail_type.h.

enum RailTypes

The different roadtypes we support, but then a bitmask of them.

Enumerator:

  RAILTYPES_NONE | No rail types.
  RAILTYPES_RAIL | Non-electrified rails.
  RAILTYPES_ELECTRIC | Electrified rails.
  RAILTYPES_MONO | Monorail!
  RAILTYPES_MAGLEV | Ever fast maglev.
  INVALID_RAILTYPES | Invalid railtypes.

Definition at line 52 of file rail_type.h.