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