diff options
Diffstat (limited to 'src/rail.h')
-rw-r--r-- | src/rail.h | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/rail.h b/src/rail.h index 53b3a1337..04a712d1c 100644 --- a/src/rail.h +++ b/src/rail.h @@ -13,6 +13,16 @@ #include "economy_func.h" #include "tile_cmd.h" +enum RailTypeFlag { + RTF_CATENARY = 0, ///< Set if the rail type should have catenary drawn +}; + +enum RailTypeFlags { + RTFB_NONE = 0, + RTFB_CATENARY = 1 << RTF_CATENARY, +}; +DECLARE_ENUM_AS_BIT_SET(RailTypeFlags); + /** This struct contains all the info that is needed to draw and construct tracks. */ struct RailtypeInfo { @@ -93,6 +103,11 @@ struct RailtypeInfo { * Multiplier for curve maximum speed advantage */ byte curve_speed; + + /** + * Bit mask of rail type flags + */ + RailTypeFlags flags; }; @@ -190,7 +205,7 @@ int TicksToLeaveDepot(const Vehicle *v); */ static inline bool HasCatenary(RailType rt) { - return rt == RAILTYPE_ELECTRIC; + return HasBit(GetRailTypeInfo(rt)->flags, RTF_CATENARY); } |