]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/trainrouter.cpp
Always handle sequence checks in tick()
[r2c2.git] / source / libr2c2 / trainrouter.cpp
index 5b2c5ee2f768e962cbbe669fb6f46425f6185d9e..fec97823ab73659ed19977a0db228b613fa9c12d 100644 (file)
@@ -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;
        }