rubidium@8101: /* $Id$ */ rubidium@8101: rubidium@8101: /** @file rail_type.h The different types of rail */ rubidium@8101: rubidium@8101: #ifndef RAIL_TYPE_H rubidium@8101: #define RAIL_TYPE_H rubidium@8101: rubidium@8101: /** rubidium@8101: * Enumeration for all possible railtypes. rubidium@8101: * rubidium@8101: * This enumeration defines all 4 possible railtypes. rubidium@8101: */ rubidium@8101: enum RailType { rubidium@8101: RAILTYPE_BEGIN = 0, ///< Used for iterations rubidium@8101: RAILTYPE_RAIL = 0, ///< Standard non-electric rails rubidium@8101: RAILTYPE_ELECTRIC = 1, ///< Electric rails rubidium@8101: RAILTYPE_MONO = 2, ///< Monorail rubidium@8101: RAILTYPE_MAGLEV = 3, ///< Maglev rubidium@8101: RAILTYPE_END, ///< Used for iterations rubidium@8101: INVALID_RAILTYPE = 0xFF ///< Flag for invalid railtype rubidium@8101: }; rubidium@8101: rubidium@8101: typedef byte RailTypeMask; rubidium@8101: rubidium@8101: /** Allow incrementing of Track variables */ rubidium@8101: DECLARE_POSTFIX_INCREMENT(RailType); rubidium@8101: /** Define basic enum properties */ rubidium@8101: template <> struct EnumPropsT : MakeEnumPropsT {}; rubidium@8101: typedef TinyEnumT RailTypeByte; rubidium@8101: rubidium@8101: #endif /* RAIL_TYPE_H */