static bool Prefix(out uint __state, VehicleInfo.VehicleType ___m_vehicleType, ushort nodeID, ref NetNode data)
        {
            __state = 0;
            if (nodeID == 0 || !___m_vehicleType.IsSharedStopTransport())
            {
                return(true);
            }
            ushort segment = Singleton <NetManager> .instance.m_lanes.m_buffer[data.m_lane].m_segment;

            ushort        lineID = Singleton <NetManager> .instance.m_nodes.m_buffer[nodeID].m_transportLine;
            TransportLine line   = Singleton <TransportManager> .instance.m_lines.m_buffer[lineID];

            __state = data.m_lane;
            NetLane.Flags flags = (NetLane.Flags)Singleton <NetManager> .instance.m_lanes.m_buffer[data.m_lane].m_flags;
            if (!Singleton <SharedStopsTool> .instance.sharedStopSegments.Any(s => s.m_segment == segment))
            {
                return(true);
            }
            NetSegment segData = Singleton <NetManager> .instance.m_segments.m_buffer[segment];

            Log.Debug($"RemoveLaneConn on segment {segment}, {segData}");
            Singleton <SharedStopsTool> .instance.RemoveSharedStop(segment, lineID, data.m_lane);

            return(true);
        }
        static bool Prefix(NetLane.Flags ___m_stopFlag, VehicleInfo.VehicleType ___m_vehicleType, ushort nodeID, ref NetNode data, uint laneID, byte offset)
        {
            if (nodeID == 0 || !___m_vehicleType.IsSharedStopTransport())
            {
                return(true);
            }

            ushort segment = Singleton <NetManager> .instance.m_lanes.m_buffer[laneID].m_segment;
            ushort lineID  = Singleton <NetManager> .instance.m_nodes.m_buffer[nodeID].m_transportLine;

            if (Singleton <NetManager> .instance.m_segments.m_buffer[segment].Info.m_netAI is RoadBridgeAI roadBridgeAI)
            {
                NetLane.Flags flags = (NetLane.Flags)Singleton <NetManager> .instance.m_lanes.m_buffer[laneID].m_flags;
                flags |= ___m_stopFlag;
                Singleton <NetManager> .instance.m_lanes.m_buffer[laneID].m_flags = (ushort)flags;
                roadBridgeAI.UpdateSegmentStopFlags(segment, ref Singleton <NetManager> .instance.m_segments.m_buffer[segment]);
            }

            Singleton <SharedStopsTool> .instance.AddSharedStop(segment, lineID, laneID);

            return(true);
        }