]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/trackiter.cpp
Add driver for my custom Arduino-based control device
[r2c2.git] / source / libr2c2 / trackiter.cpp
index 31ebf08e1f1c59711208c0f51722480cbc529c46..da949e75160351363b0ec2513deb81143a5ec6ea 100644 (file)
@@ -37,18 +37,20 @@ BlockIter TrackIter::block_iter() const
 
        if(!_track->get_type().is_turnout())
        {
-               TrackIter rev = reverse();
+               /* Since there was no endpoint match, the preceding track can't be in a
+               different block. */
+               TrackIter rev = flip();
                TrackIter last;
                while(rev && &rev.track()->get_block()==&block)
                {
                        last = rev;
                        rev = rev.next();
-
-                       // If we ran out of tracks, return an empty iterator
-                       if(!rev)
-                               return BlockIter();
                }
 
+               // If we ran out of tracks, return an empty iterator
+               if(!rev)
+                       return BlockIter();
+
                TrackIter fwd = last.reverse();
                for(unsigned i=0; i<beps.size(); ++i)
                        if(beps[i].track==fwd.track() && beps[i].track_ep==fwd.entry())