smatz@10473: /* $Id$ */ smatz@10473: smatz@10473: /** @file elrail_func.h header file for electrified rail specific functions */ smatz@10473: smatz@10473: #ifndef ELRAIL_FUNC_H smatz@10473: #define ELRAIL_FUNC_H smatz@10473: smatz@10473: #include "rail.h" smatz@10473: #include "transparency.h" smatz@10473: #include "tile_cmd.h" smatz@10473: #include "settings_type.h" smatz@10473: smatz@10473: /** smatz@10473: * Test if a rail type has catenary smatz@10473: * @param rt Rail type to test smatz@10473: */ smatz@10473: static inline bool HasCatenary(RailType rt) smatz@10473: { smatz@10473: return HasBit(GetRailTypeInfo(rt)->flags, RTF_CATENARY); smatz@10473: } smatz@10473: smatz@10473: /** smatz@10473: * Test if we should draw rail catenary smatz@10473: * @param rt Rail type to test smatz@10473: */ smatz@10473: static inline bool HasCatenaryDrawn(RailType rt) smatz@10473: { rubidium@10775: return HasCatenary(rt) && !IsInvisibilitySet(TO_CATENARY) && !_settings_game.vehicle.disable_elrails; smatz@10473: } smatz@10473: smatz@10473: /** smatz@10473: * Draws overhead wires and pylons for electric railways. smatz@10473: * @param ti The TileInfo struct of the tile being drawn smatz@10473: * @see DrawCatenaryRailway smatz@10473: */ smatz@10473: void DrawCatenary(const TileInfo *ti); smatz@10473: void DrawCatenaryOnTunnel(const TileInfo *ti); smatz@10473: void DrawCatenaryOnBridge(const TileInfo *ti); smatz@10473: rubidium@10775: int32 SettingsDisableElrail(int32 p1); ///< _settings_game.disable_elrail callback smatz@10473: smatz@10473: #endif /* ELRAIL_FUNC_H */