]> git.tdb.fi Git - r2c2.git/blobdiff - source/engineer/trainpanel.cpp
Simplify some interfaces by using track and block iterators
[r2c2.git] / source / engineer / trainpanel.cpp
index 1076fedaedbbb17152084bb337d6f0e69d89c97f..e6a91a8f6dc1c2b272fa38adb88c4a3adc62c165 100644 (file)
@@ -253,25 +253,9 @@ void TrainPanel::place(Track *track, unsigned ep)
 {
        pick_conn.disconnect();
 
-       Block &block = track->get_block();
-       TrackIter iter(track, ep);
-
-       while(block.has_track(*iter))
-       {
-               const vector<Block::Endpoint> &eps = block.get_endpoints();
-               bool ok = false;
-               for(unsigned i=0; (!ok && i<eps.size()); ++i)
-                       if(eps[i].track==iter.track() && eps[i].track_ep==iter.entry())
-                       {
-                               train.place(block, i);
-                               ok = true;
-                       }
-
-               if(ok)
-                       break;
-
-               iter = iter.flip().reverse();
-       }
+       BlockIter block = TrackIter(track, ep).block_iter();
+       if(block)
+               train.place(block);
 }
 
 void TrainPanel::go_to(Track *track, unsigned)