X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Ftrainrouter.cpp;h=fec97823ab73659ed19977a0db228b613fa9c12d;hb=de531756626e0d2b16fec47ff28708aef6b2e12e;hp=5b2c5ee2f768e962cbbe669fb6f46425f6185d9e;hpb=e5c244baa4058dbfc0c5caee64e6c83523751924;p=r2c2.git diff --git a/source/libr2c2/trainrouter.cpp b/source/libr2c2/trainrouter.cpp index 5b2c5ee..fec9782 100644 --- a/source/libr2c2/trainrouter.cpp +++ b/source/libr2c2/trainrouter.cpp @@ -110,6 +110,12 @@ void TrainRouter::route_changed() train.stop_at(0); train.refresh_blocks_from(*fncb); } + else if(!arrival) + { + arrival = RESERVED_TO_END; + train.stop_at(&*fncb.flip()); + train.refresh_blocks_from(*fncb); + } const Route *route = get_route(); signal_route_changed.emit(route); @@ -270,12 +276,7 @@ void TrainRouter::block_reserved(Block &block, Train *t) SequencePoint &sp = sequence_points.front(); if(sp.preceding_train==t && sp.block==&block) - { - if(sp.is_cleared()) - train.stop_at(0); - else - sequence_check_pending = true; - } + sequence_check_pending = true; return; }