(svn r12624) -Codechange: Make drawing of catenary an attribute of rail types, instead of deciding by the rail type directly.

This commit is contained in:
2008-04-08 07:19:29 +00:00
parent b0ca38e20a
commit 310170364f
2 changed files with 28 additions and 1 deletions

View File

@@ -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);
}