(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:
peter1138 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);
}

View File

@ -60,6 +60,9 @@ RailtypeInfo _railtypes[] = {
/* curve speed advantage (multiplier) */
0,
/* flags */
RTFB_NONE,
},
/** Electrified railway */
@ -116,6 +119,9 @@ RailtypeInfo _railtypes[] = {
/* curve speed advantage (multiplier) */
0,
/* flags */
RTFB_CATENARY,
},
/** Monorail */
@ -168,6 +174,9 @@ RailtypeInfo _railtypes[] = {
/* curve speed advantage (multiplier) */
1,
/* flags */
RTFB_NONE,
},
/** Maglev */
@ -220,6 +229,9 @@ RailtypeInfo _railtypes[] = {
/* curve speed advantage (multiplier) */
2,
/* flags */
RTFB_NONE,
},
};