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