Index: src/rail.h =================================================================== --- src/rail.h (revision 27841) +++ src/rail.h (working copy) @@ -26,10 +26,12 @@ enum RailTypeFlags { RTF_CATENARY = 0, ///< Bit number for drawing a catenary. RTF_NO_LEVEL_CROSSING = 1, ///< Bit number for disallowing level crossings. + RTF_HIDE_CONSTRUCTION = 2, ///< Bit number for hiding from construction. RTFB_NONE = 0, ///< All flags cleared. RTFB_CATENARY = 1 << RTF_CATENARY, ///< Value for drawing a catenary. RTFB_NO_LEVEL_CROSSING = 1 << RTF_NO_LEVEL_CROSSING, ///< Value for disallowing level crossings. + RTFB_HIDE_CONSTRUCTION = 1 << RTF_HIDE_CONSTRUCTION, ///< Value for hiding from construction. }; DECLARE_ENUM_AS_BIT_SET(RailTypeFlags) Index: src/rail_cmd.cpp =================================================================== --- src/rail_cmd.cpp (revision 27841) +++ src/rail_cmd.cpp (working copy) @@ -169,8 +169,8 @@ rti->powered_railtypes = (RailTypes)(1 << rt); rti->compatible_railtypes = (RailTypes)(1 << rt); - /* We also introduce ourself. */ - rti->introduces_railtypes = (RailTypes)(1 << rt); + /* We also introduce ourself if not hidden. */ + if (!HasBit(rti->flags, RTF_HIDE_CONSTRUCTION)) rti->introduces_railtypes = (RailTypes)(1 << rt); /* Default sort order; order of allocation, but with some * offsets so it's easier for NewGRF to pick a spot without