]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/trackoffsetiter.cpp
Move the sleep in ArduControl baud rate logic to the correct place
[r2c2.git] / source / libr2c2 / trackoffsetiter.cpp
index d23b4d7e44813aa5727604b7df465a2974242a86..f8e8a2d2a4c54a5270c85a41fd5955011c2f9641 100644 (file)
@@ -91,13 +91,7 @@ TrackOffsetIter TrackOffsetIter::advance(float d, const Route *r) const
        while(t)
        {
                if(p<0)
-               {
-                       if(r)
-                               if(unsigned tid = t->get_turnout_id())
-                                       p = r->get_turnout(tid);
-                       if(p<0)
-                               p = t->get_active_path();
-               }
+                       p = (r ? r->get_path(*t) : t->get_active_path());
 
                float length = t->get_type().get_path_length(p);
                if(o<length)
@@ -118,6 +112,9 @@ TrackOffsetIter TrackOffsetIter::reverse() const
 
        int p = (_path>=0 ? _path : _track->get_active_path());
        TrackIter t = _track.reverse(p);
+       if(!t)
+               return TrackOffsetIter();
+
        float o = t->get_type().get_path_length(p)-_offset;
 
        return TrackOffsetIter(t, p, o);