OpenTTD Source: src/rail_type.h File Reference

OpenTTD Source 13.2.1

Data Structures | Typedefs | Enumerations | Variables
rail_type.h File Reference
`#include "core/enum_type.hpp"`

Go to the source code of this file.

## Data Structures
struct | EnumPropsT< RailType >
| Allow incrementing of Track variables. More...

## Typedefs
typedef uint32 | RailTypeLabel

## Enumerations
enum | RailType : byte { RAILTYPE_BEGIN = 0, RAILTYPE_RAIL = 0, RAILTYPE_ELECTRIC = 1, RAILTYPE_MONO = 2, RAILTYPE_MAGLEV = 3, RAILTYPE_END = 64, INVALID_RAILTYPE = 0xFF }
| Enumeration for all possible railtypes. More...
enum | RailTypes : uint64 { 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 = UINT64_MAX }
| The different railtypes we support, but then a bitmask of them. More...

## 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

## ◆ RailType

enum RailType : byte

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.

Definition at line 27 of file rail_type.h.

## ◆ RailTypes

enum RailTypes : uint64

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

Note
  Must be treated as a uint64 type, narrowing it causes bit membership tests to give wrong results, as in bug #6951.

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 46 of file rail_type.h.