Files
@ r9583:b6e25a00b908
Branch filter:
Location: cpp/openttd-patchpack/source/src/rail_type.h - annotation
r9583:b6e25a00b908
1.8 KiB
text/x-c
(svn r13621) -Fix: building roadbits in the wrong direction on bridges or building roadbits from underneath the bridge to the bridgehead is impossible, so don't silently ignore that error when building over houses and industries is not ignored.
r8101:70b290505353 r8101:70b290505353 r8101:70b290505353 r8101:70b290505353 r8101:70b290505353 r8101:70b290505353 r8101:70b290505353 r8263:00e828e1ab1f r8263:00e828e1ab1f r8101:70b290505353 r8101:70b290505353 r8101:70b290505353 r8101:70b290505353 r8101:70b290505353 r8101:70b290505353 r8101:70b290505353 r8101:70b290505353 r8101:70b290505353 r8101:70b290505353 r8101:70b290505353 r8101:70b290505353 r8101:70b290505353 r8101:70b290505353 r8101:70b290505353 r8101:70b290505353 r8101:70b290505353 r8101:70b290505353 r8101:70b290505353 r8101:70b290505353 r8101:70b290505353 r8236:a2ecfe92ab23 r8236:a2ecfe92ab23 r8236:a2ecfe92ab23 r8236:a2ecfe92ab23 r8236:a2ecfe92ab23 r8236:a2ecfe92ab23 r8236:a2ecfe92ab23 r8236:a2ecfe92ab23 r8236:a2ecfe92ab23 r8236:a2ecfe92ab23 r8236:a2ecfe92ab23 r8236:a2ecfe92ab23 r8236:a2ecfe92ab23 r8236:a2ecfe92ab23 r8236:a2ecfe92ab23 r8236:a2ecfe92ab23 r8236:a2ecfe92ab23 r8101:70b290505353 | /* $Id$ */
/** @file rail_type.h The different types of rail */
#ifndef RAIL_TYPE_H
#define RAIL_TYPE_H
#include "core/enum_type.hpp"
/**
* 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
};
/** 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;
/**
* The different roadtypes we support, but then a bitmask of them
*/
enum RailTypes {
RAILTYPES_NONE = 0, ///< No rail types
RAILTYPES_RAIL = 1 << RAILTYPE_RAIL, ///< Non-electrified rails
RAILTYPES_ELECTRIC = 1 << RAILTYPE_ELECTRIC, ///< Electrified rails
RAILTYPES_MONO = 1 << RAILTYPE_MONO, ///< Monorail!
RAILTYPES_MAGLEV = 1 << RAILTYPE_MAGLEV, ///< Ever fast maglev
RAILTYPES_ALL = RAILTYPES_RAIL | RAILTYPES_ELECTRIC | RAILTYPES_MONO | RAILTYPES_MAGLEV, ///< All of them
RAILTYPES_END, ///< Used for iterations?
INVALID_RAILTYPES = 0xFF ///< Invalid railtypes
};
DECLARE_ENUM_AS_BIT_SET(RailTypes);
template <> struct EnumPropsT<RailTypes> : MakeEnumPropsT<RailTypes, byte, RAILTYPES_NONE, RAILTYPES_END, INVALID_RAILTYPES> {};
typedef TinyEnumT<RailTypes> RailTypesByte;
#endif /* RAIL_TYPE_H */
|