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)
{
int TrackIter::get_exit(unsigned path) const
{
+ path = _track->get_type().coerce_path(_entry, path);
const vector<TrackType::Endpoint> &eps = _track->get_type().get_endpoints();
// Find an endpoint that's connected to the entry and has the requested path