diff options
Diffstat (limited to 'src/rail_type.h')
-rw-r--r-- | src/rail_type.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/rail_type.h b/src/rail_type.h new file mode 100644 index 000000000..05d28d2b0 --- /dev/null +++ b/src/rail_type.h @@ -0,0 +1,31 @@ +/* $Id$ */ + +/** @file rail_type.h The different types of rail */ + +#ifndef RAIL_TYPE_H +#define RAIL_TYPE_H + +/** + * Enumeration for all possible railtypes. + * + * This enumeration defines all 4 possible railtypes. + */ +enum RailType { + RAILTYPE_BEGIN = 0, ///< Used for iterations + RAILTYPE_RAIL = 0, ///< Standard non-electric rails + RAILTYPE_ELECTRIC = 1, ///< Electric rails + RAILTYPE_MONO = 2, ///< Monorail + RAILTYPE_MAGLEV = 3, ///< Maglev + RAILTYPE_END, ///< Used for iterations + INVALID_RAILTYPE = 0xFF ///< Flag for invalid railtype +}; + +typedef byte RailTypeMask; + +/** Allow incrementing of Track variables */ +DECLARE_POSTFIX_INCREMENT(RailType); +/** Define basic enum properties */ +template <> struct EnumPropsT<RailType> : MakeEnumPropsT<RailType, byte, RAILTYPE_BEGIN, RAILTYPE_END, INVALID_RAILTYPE> {}; +typedef TinyEnumT<RailType> RailTypeByte; + +#endif /* RAIL_TYPE_H */ |