X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Fblock.cpp;h=33627f8a7cf354afd006ace1b18436090d979441;hb=cf38d0a8208fab7ba7aaafc5eed9a86dfc3722a5;hp=f02762c85a958e668b5b4e200c86bcbb877f0767;hpb=91385545a7d76784a17af421b0def49775be0d4c;p=r2c2.git diff --git a/source/libr2c2/block.cpp b/source/libr2c2/block.cpp index f02762c..33627f8 100644 --- a/source/libr2c2/block.cpp +++ b/source/libr2c2/block.cpp @@ -18,6 +18,7 @@ Block::Block(Layout &l, Track &start): id(0), sensor_id(start.get_sensor_id()), turnout_id(start.get_turnout_id()), + conflict(false), sensor(0), train(0) { @@ -44,7 +45,11 @@ Block::Block(Layout &l, Track &start): determine_id(); - if(sensor_id) + const set &blocks = layout.get_all(); + for(set::const_iterator i=blocks.begin(); (!conflict && i!=blocks.end()); ++i) + conflict = (id==(*i)->get_id()); + + if(!conflict && sensor_id) sensor = new TrackCircuit(layout, *this); layout.add(*this);