]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/trackattachment.cpp
Don't crash if a train has no router
[r2c2.git] / source / libr2c2 / trackattachment.cpp
index 5895100706977faa44fda8492d2c4181313f2b8e..9e3d244056602dd33684daddafe6ff799d21faa2 100644 (file)
@@ -50,7 +50,8 @@ void TrackAttachment::attach_to_closest(float limit)
                        Snap sn;
                        sn.position = position;
                        sn.rotation = rotation;
-                       if((*i)->snap(sn, limit, SNAP_SEGMENT))
+                       float gauge = (*i)->get_type().get_gauge();
+                       if((*i)->snap(sn, gauge*limit, SNAP_SEGMENT))
                        {
                                float d = distance(position, sn.position);
                                if(d<dist || dist<0)
@@ -68,7 +69,7 @@ void TrackAttachment::attach_to_closest(float limit)
                for(unsigned i=0; i<nsn; ++i)
                {
                        Snap sn = trk->get_snap_node(i);
-                       Angle adiff = abs(wrap_balanced(sn.rotation-rotation));
+                       Angle adiff = abs(wrap_balanced(sn.rotation+Angle::half_turn()-rotation));
                        if(adiff<Angle::quarter_turn())
                        {
                                TrackIter iter(trk, i);