track_type.h File Reference

All types related to tracks. More...

#include "core/enum_type.hpp"

Go to the source code of this file.

Data Structures

struct  EnumPropsT< Track >
 Define basic enum properties. More...
struct  EnumPropsT< TrackBits >
 Define basic enum properties. More...
struct  EnumPropsT< Trackdir >
 Define basic enum properties. More...
struct  EnumPropsT< TrackdirBits >
 Define basic enum properties. More...

Typedefs

typedef TinyEnumT< TrackTrackByte
typedef TinyEnumT< TrackBitsTrackBitsByte
typedef TinyEnumT< TrackdirTrackdirByte
typedef TinyEnumT< TrackdirBitsTrackdirBitsShort
typedef uint32 TrackStatus

Enumerations

enum  Track {
  TRACK_BEGIN = 0, TRACK_X = 0, TRACK_Y = 1, TRACK_UPPER = 2,
  TRACK_LOWER = 3, TRACK_LEFT = 4, TRACK_RIGHT = 5, TRACK_END,
  INVALID_TRACK = 0xFF
}
 These are used to specify a single track. More...
enum  TrackBits {
  TRACK_BIT_NONE = 0U, TRACK_BIT_X = 1U << TRACK_X, TRACK_BIT_Y = 1U << TRACK_Y, TRACK_BIT_UPPER = 1U << TRACK_UPPER,
  TRACK_BIT_LOWER = 1U << TRACK_LOWER, TRACK_BIT_LEFT = 1U << TRACK_LEFT, TRACK_BIT_RIGHT = 1U << TRACK_RIGHT, TRACK_BIT_CROSS = TRACK_BIT_X | TRACK_BIT_Y,
  TRACK_BIT_HORZ = TRACK_BIT_UPPER | TRACK_BIT_LOWER, TRACK_BIT_VERT = TRACK_BIT_LEFT | TRACK_BIT_RIGHT, TRACK_BIT_3WAY_NE = TRACK_BIT_X | TRACK_BIT_UPPER | TRACK_BIT_RIGHT, TRACK_BIT_3WAY_SE = TRACK_BIT_Y | TRACK_BIT_LOWER | TRACK_BIT_RIGHT,
  TRACK_BIT_3WAY_SW = TRACK_BIT_X | TRACK_BIT_LOWER | TRACK_BIT_LEFT, TRACK_BIT_3WAY_NW = TRACK_BIT_Y | TRACK_BIT_UPPER | TRACK_BIT_LEFT, TRACK_BIT_ALL = TRACK_BIT_CROSS | TRACK_BIT_HORZ | TRACK_BIT_VERT, TRACK_BIT_MASK = 0x3FU,
  TRACK_BIT_WORMHOLE = 0x40U, TRACK_BIT_DEPOT = 0x80U, INVALID_TRACK_BIT = 0xFF
}
 Bitfield corresponding to Track. More...
enum  Trackdir {
  TRACKDIR_BEGIN = 0, TRACKDIR_X_NE = 0, TRACKDIR_Y_SE = 1, TRACKDIR_UPPER_E = 2,
  TRACKDIR_LOWER_E = 3, TRACKDIR_LEFT_S = 4, TRACKDIR_RIGHT_S = 5, TRACKDIR_RVREV_NE = 6,
  TRACKDIR_RVREV_SE = 7, TRACKDIR_X_SW = 8, TRACKDIR_Y_NW = 9, TRACKDIR_UPPER_W = 10,
  TRACKDIR_LOWER_W = 11, TRACKDIR_LEFT_N = 12, TRACKDIR_RIGHT_N = 13, TRACKDIR_RVREV_SW = 14,
  TRACKDIR_RVREV_NW = 15, TRACKDIR_END, INVALID_TRACKDIR = 0xFF
}
 Enumeration for tracks and directions. More...
enum  TrackdirBits {
  TRACKDIR_BIT_NONE = 0x0000, TRACKDIR_BIT_X_NE = 0x0001, TRACKDIR_BIT_Y_SE = 0x0002, TRACKDIR_BIT_UPPER_E = 0x0004,
  TRACKDIR_BIT_LOWER_E = 0x0008, TRACKDIR_BIT_LEFT_S = 0x0010, TRACKDIR_BIT_RIGHT_S = 0x0020, TRACKDIR_BIT_X_SW = 0x0100,
  TRACKDIR_BIT_Y_NW = 0x0200, TRACKDIR_BIT_UPPER_W = 0x0400, TRACKDIR_BIT_LOWER_W = 0x0800, TRACKDIR_BIT_LEFT_N = 0x1000,
  TRACKDIR_BIT_RIGHT_N = 0x2000, TRACKDIR_BIT_MASK = 0x3F3F, INVALID_TRACKDIR_BIT = 0xFFFF
}
 Enumeration of bitmasks for the TrackDirs. More...

Functions

 DECLARE_POSTFIX_INCREMENT (Track)
 Allow incrementing of Track variables.
 DECLARE_ENUM_AS_BIT_SET (TrackBits)
 DECLARE_ENUM_AS_BIT_SET (TrackdirBits)


Detailed Description

All types related to tracks.

Definition in file track_type.h.


Enumeration Type Documentation

enum Track

These are used to specify a single track.

Can be translated to a trackbit with TrackToTrackbit

Enumerator:
TRACK_BEGIN  Used for iterations.
TRACK_X  Track along the x-axis (north-east to south-west).
TRACK_Y  Track along the y-axis (north-west to south-east).
TRACK_UPPER  Track in the upper corner of the tile (north).
TRACK_LOWER  Track in the lower corner of the tile (south).
TRACK_LEFT  Track in the left corner of the tile (west).
TRACK_RIGHT  Track in the right corner of the tile (east).
TRACK_END  Used for iterations.
INVALID_TRACK  Flag for an invalid track.

Definition at line 14 of file track_type.h.

enum TrackBits

Bitfield corresponding to Track.

Enumerator:
TRACK_BIT_NONE  No track.
TRACK_BIT_X  X-axis track.
TRACK_BIT_Y  Y-axis track.
TRACK_BIT_UPPER  Upper track.
TRACK_BIT_LOWER  Lower track.
TRACK_BIT_LEFT  Left track.
TRACK_BIT_RIGHT  Right track.
TRACK_BIT_CROSS  X-Y-axis cross.
TRACK_BIT_HORZ  Upper and lower track.
TRACK_BIT_VERT  Left and right track.
TRACK_BIT_3WAY_NE  "Arrow" to the north-east
TRACK_BIT_3WAY_SE  "Arrow" to the south-east
TRACK_BIT_3WAY_SW  "Arrow" to the south-west
TRACK_BIT_3WAY_NW  "Arrow" to the north-west
TRACK_BIT_ALL  All possible tracks.
TRACK_BIT_MASK  Bitmask for the first 6 bits.
TRACK_BIT_WORMHOLE  Bitflag for a wormhole (used for tunnels).
TRACK_BIT_DEPOT  Bitflag for a depot.
INVALID_TRACK_BIT  Flag for an invalid trackbits value.

Definition at line 34 of file track_type.h.

enum Trackdir

Enumeration for tracks and directions.

These are a combination of tracks and directions. Values are 0-5 in one direction (corresponding to the Track enum) and 8-13 in the other direction. 6, 7, 14 and 15 are used to encode the reversing of road vehicles. Those reversing track dirs are not considered to be 'valid' except in a small corner in the road vehicle controller.

Enumerator:
TRACKDIR_BEGIN  Used for iterations.
TRACKDIR_X_NE  X-axis and direction to north-east.
TRACKDIR_Y_SE  Y-axis and direction to south-east.
TRACKDIR_UPPER_E  Upper track and direction to east.
TRACKDIR_LOWER_E  Lower track and direction to east.
TRACKDIR_LEFT_S  Left track and direction to south.
TRACKDIR_RIGHT_S  Right track and direction to south.
TRACKDIR_RVREV_NE  (Road vehicle) reverse direction north-east
TRACKDIR_RVREV_SE  (Road vehicle) reverse direction south-east
TRACKDIR_X_SW  X-axis and direction to south-west.
TRACKDIR_Y_NW  Y-axis and direction to north-west.
TRACKDIR_UPPER_W  Upper track and direction to west.
TRACKDIR_LOWER_W  Lower track and direction to west.
TRACKDIR_LEFT_N  Left track and direction to north.
TRACKDIR_RIGHT_N  Right track and direction to north.
TRACKDIR_RVREV_SW  (Road vehicle) reverse direction south-west
TRACKDIR_RVREV_NW  (Road vehicle) reverse direction north-west
TRACKDIR_END  Used for iterations.
INVALID_TRACKDIR  Flag for an invalid trackdir.

Definition at line 71 of file track_type.h.

Enumeration of bitmasks for the TrackDirs.

These are a combination of tracks and directions. Values are 0-5 in one direction (corresponding to the Track enum) and 8-13 in the other direction.

Enumerator:
TRACKDIR_BIT_NONE  No track build.
TRACKDIR_BIT_X_NE  Track x-axis, direction north-east.
TRACKDIR_BIT_Y_SE  Track y-axis, direction south-east.
TRACKDIR_BIT_UPPER_E  Track upper, direction east.
TRACKDIR_BIT_LOWER_E  Track lower, direction east.
TRACKDIR_BIT_LEFT_S  Track left, direction south.
TRACKDIR_BIT_RIGHT_S  Track right, direction south.
TRACKDIR_BIT_X_SW  Track x-axis, direction south-west.
TRACKDIR_BIT_Y_NW  Track y-axis, direction north-west.
TRACKDIR_BIT_UPPER_W  Track upper, direction west.
TRACKDIR_BIT_LOWER_W  Track lower, direction west.
TRACKDIR_BIT_LEFT_N  Track left, direction north.
TRACKDIR_BIT_RIGHT_N  Track right, direction north.
TRACKDIR_BIT_MASK  Bitmask for bit-operations.
INVALID_TRACKDIR_BIT  Flag for an invalid trackdirbit value.

Definition at line 103 of file track_type.h.


Generated on Sun Mar 15 22:50:05 2009 for openttd by  doxygen 1.5.6