src/track_type.h
author peter1138
Tue, 22 Jan 2008 07:27:06 +0000
changeset 8374 7a1b6c89cb89
parent 8263 2b3e64c5e680
child 8616 fd862a55c47f
permissions -rw-r--r--
(svn r11940) -Codechange: Store short filename once per open file instead of once per sprite cache entry. Not all file types need this, but most of the time no sprite cache entry needed it either.
8101
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
     1
/* $Id$ */
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
     2
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
     3
/** @file track_type.h All types related to tracks */
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
     4
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
     5
#ifndef TRACK_TYPE_H
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
     6
#define TRACK_TYPE_H
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
     7
8263
2b3e64c5e680 (svn r11827) -Codechange: do not include enum_type.hpp unnecessary.
rubidium
parents: 8103
diff changeset
     8
#include "core/enum_type.hpp"
2b3e64c5e680 (svn r11827) -Codechange: do not include enum_type.hpp unnecessary.
rubidium
parents: 8103
diff changeset
     9
8101
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    10
/**
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    11
 * These are used to specify a single track.
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    12
 * Can be translated to a trackbit with TrackToTrackbit
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    13
 */
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    14
enum Track {
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    15
	TRACK_BEGIN = 0,        ///< Used for iterations
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    16
	TRACK_X     = 0,        ///< Track along the x-axis (north-east to south-west)
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    17
	TRACK_Y     = 1,        ///< Track along the y-axis (north-west to south-east)
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    18
	TRACK_UPPER = 2,        ///< Track in the upper corner of the tile (north)
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    19
	TRACK_LOWER = 3,        ///< Track in the lower corner of the tile (south)
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    20
	TRACK_LEFT  = 4,        ///< Track in the left corner of the tile (west)
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    21
	TRACK_RIGHT = 5,        ///< Track in the right corner of the tile (east)
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    22
	TRACK_END,              ///< Used for iterations
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    23
	INVALID_TRACK = 0xFF    ///< Flag for an invalid track
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    24
};
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    25
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    26
/** Allow incrementing of Track variables */
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    27
DECLARE_POSTFIX_INCREMENT(Track);
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    28
/** Define basic enum properties */
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    29
template <> struct EnumPropsT<Track> : MakeEnumPropsT<Track, byte, TRACK_BEGIN, TRACK_END, INVALID_TRACK> {};
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    30
typedef TinyEnumT<Track> TrackByte;
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    31
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    32
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    33
/** Bitfield corresponding to Track */
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    34
enum TrackBits {
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    35
	TRACK_BIT_NONE    = 0U,                                                 ///< No track
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    36
	TRACK_BIT_X       = 1U << TRACK_X,                                      ///< X-axis track
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    37
	TRACK_BIT_Y       = 1U << TRACK_Y,                                      ///< Y-axis track
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    38
	TRACK_BIT_UPPER   = 1U << TRACK_UPPER,                                  ///< Upper track
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    39
	TRACK_BIT_LOWER   = 1U << TRACK_LOWER,                                  ///< Lower track
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    40
	TRACK_BIT_LEFT    = 1U << TRACK_LEFT,                                   ///< Left track
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    41
	TRACK_BIT_RIGHT   = 1U << TRACK_RIGHT,                                  ///< Right track
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    42
	TRACK_BIT_CROSS   = TRACK_BIT_X     | TRACK_BIT_Y,                      ///< X-Y-axis cross
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    43
	TRACK_BIT_HORZ    = TRACK_BIT_UPPER | TRACK_BIT_LOWER,                  ///< Upper and lower track
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    44
	TRACK_BIT_VERT    = TRACK_BIT_LEFT  | TRACK_BIT_RIGHT,                  ///< Left and right track
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    45
	TRACK_BIT_3WAY_NE = TRACK_BIT_X     | TRACK_BIT_UPPER | TRACK_BIT_RIGHT,///< "Arrow" to the north-east
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    46
	TRACK_BIT_3WAY_SE = TRACK_BIT_Y     | TRACK_BIT_LOWER | TRACK_BIT_RIGHT,///< "Arrow" to the south-east
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    47
	TRACK_BIT_3WAY_SW = TRACK_BIT_X     | TRACK_BIT_LOWER | TRACK_BIT_LEFT, ///< "Arrow" to the south-west
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    48
	TRACK_BIT_3WAY_NW = TRACK_BIT_Y     | TRACK_BIT_UPPER | TRACK_BIT_LEFT, ///< "Arrow" to the north-west
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    49
	TRACK_BIT_ALL     = TRACK_BIT_CROSS | TRACK_BIT_HORZ  | TRACK_BIT_VERT, ///< All possible tracks
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    50
	TRACK_BIT_MASK    = 0x3FU,                                              ///< Bitmask for the first 6 bits
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    51
	TRACK_BIT_WORMHOLE = 0x40U,                                             ///< Bitflag for a wormhole (used for tunnels)
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    52
	TRACK_BIT_DEPOT   = 0x80U,                                              ///< Bitflag for a depot
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    53
	INVALID_TRACK_BIT = 0xFF                                                ///< Flag for an invalid trackbits value
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    54
};
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    55
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    56
/** Define basic enum properties */
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    57
template <> struct EnumPropsT<TrackBits> : MakeEnumPropsT<TrackBits, byte, TRACK_BIT_NONE, TRACK_BIT_ALL, INVALID_TRACK_BIT> {};
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    58
typedef TinyEnumT<TrackBits> TrackBitsByte;
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    59
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    60
DECLARE_ENUM_AS_BIT_SET(TrackBits);
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    61
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    62
/**
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    63
 * Enumeration for tracks and directions.
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    64
 *
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    65
 * These are a combination of tracks and directions. Values are 0-5 in one
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    66
 * direction (corresponding to the Track enum) and 8-13 in the other direction.
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    67
 * 6, 7, 14 and 15 are used to encode the reversing of road vehicles. Those
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    68
 * reversing track dirs are not considered to be 'valid' except in a small
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    69
 * corner in the road vehicle controller.
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    70
 */
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    71
enum Trackdir {
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    72
	TRACKDIR_BEGIN    =  0,         ///< Used for iterations
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    73
	TRACKDIR_X_NE     =  0,         ///< X-axis and direction to north-east
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    74
	TRACKDIR_Y_SE     =  1,         ///< Y-axis and direction to south-east
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    75
	TRACKDIR_UPPER_E  =  2,         ///< Upper track and direction to east
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    76
	TRACKDIR_LOWER_E  =  3,         ///< Lower track and direction to east
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    77
	TRACKDIR_LEFT_S   =  4,         ///< Left track and direction to south
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    78
	TRACKDIR_RIGHT_S  =  5,         ///< Right track and direction to south
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    79
	TRACKDIR_RVREV_NE =  6,         ///< (Road vehicle) reverse direction north-east
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    80
	TRACKDIR_RVREV_SE =  7,         ///< (Road vehicle) reverse direction south-east
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    81
	TRACKDIR_X_SW     =  8,         ///< X-axis and direction to south-west
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    82
	TRACKDIR_Y_NW     =  9,         ///< Y-axis and direction to north-west
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    83
	TRACKDIR_UPPER_W  = 10,         ///< Upper track and direction to west
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    84
	TRACKDIR_LOWER_W  = 11,         ///< Lower track and direction to west
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    85
	TRACKDIR_LEFT_N   = 12,         ///< Left track and direction to north
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    86
	TRACKDIR_RIGHT_N  = 13,         ///< Right track and direction to north
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    87
	TRACKDIR_RVREV_SW = 14,         ///< (Road vehicle) reverse direction south-west
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    88
	TRACKDIR_RVREV_NW = 15,         ///< (Road vehicle) reverse direction north-west
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    89
	TRACKDIR_END,                   ///< Used for iterations
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    90
	INVALID_TRACKDIR  = 0xFF,       ///< Flag for an invalid trackdir
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    91
};
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    92
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    93
/** Define basic enum properties */
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    94
template <> struct EnumPropsT<Trackdir> : MakeEnumPropsT<Trackdir, byte, TRACKDIR_BEGIN, TRACKDIR_END, INVALID_TRACKDIR> {};
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    95
typedef TinyEnumT<Trackdir> TrackdirByte;
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    96
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    97
/**
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    98
 * Enumeration of bitmasks for the TrackDirs
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
    99
 *
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
   100
 * These are a combination of tracks and directions. Values are 0-5 in one
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
   101
 * direction (corresponding to the Track enum) and 8-13 in the other direction.
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
   102
 */
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
   103
enum TrackdirBits {
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
   104
	TRACKDIR_BIT_NONE     = 0x0000, ///< No track build
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
   105
	TRACKDIR_BIT_X_NE     = 0x0001, ///< Track x-axis, direction north-east
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
   106
	TRACKDIR_BIT_Y_SE     = 0x0002, ///< Track y-axis, direction south-east
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
   107
	TRACKDIR_BIT_UPPER_E  = 0x0004, ///< Track upper, direction east
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
   108
	TRACKDIR_BIT_LOWER_E  = 0x0008, ///< Track lower, direction east
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
   109
	TRACKDIR_BIT_LEFT_S   = 0x0010, ///< Track left, direction south
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
   110
	TRACKDIR_BIT_RIGHT_S  = 0x0020, ///< Track right, direction south
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
   111
	/* Again, note the two missing values here. This enables trackdir -> track conversion by doing (trackdir & 0xFF) */
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
   112
	TRACKDIR_BIT_X_SW     = 0x0100, ///< Track x-axis, direction south-west
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
   113
	TRACKDIR_BIT_Y_NW     = 0x0200, ///< Track y-axis, direction north-west
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
   114
	TRACKDIR_BIT_UPPER_W  = 0x0400, ///< Track upper, direction west
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
   115
	TRACKDIR_BIT_LOWER_W  = 0x0800, ///< Track lower, direction west
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
   116
	TRACKDIR_BIT_LEFT_N   = 0x1000, ///< Track left, direction north
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
   117
	TRACKDIR_BIT_RIGHT_N  = 0x2000, ///< Track right, direction north
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
   118
	TRACKDIR_BIT_MASK     = 0x3F3F, ///< Bitmask for bit-operations
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
   119
	INVALID_TRACKDIR_BIT  = 0xFFFF, ///< Flag for an invalid trackdirbit value
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
   120
};
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
   121
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
   122
/** Define basic enum properties */
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
   123
template <> struct EnumPropsT<TrackdirBits> : MakeEnumPropsT<TrackdirBits, uint16, TRACKDIR_BIT_NONE, TRACKDIR_BIT_MASK, INVALID_TRACKDIR_BIT> {};
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
   124
typedef TinyEnumT<TrackdirBits> TrackdirBitsShort;
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
   125
DECLARE_ENUM_AS_BIT_SET(TrackdirBits);
d5357bde8cab (svn r11662) -Codechange: move some rail types/related functions around.
rubidium
parents:
diff changeset
   126
8103
cf92483a0abf (svn r11664) -Codechange: use more specific ("rail_type.h" instead of "rail.h" that includes way more than only "rail_type.h") includes at some places.
rubidium
parents: 8101
diff changeset
   127
#endif /* TRACK_TYPE_H */