if(!sequence_points.empty())
{
const SequencePoint &sp = sequence_points.front();
- if(sp.block==fncb.block() && !sp.is_cleared())
+ if(sp.block==fncb.block() && sp.preceding_train)
{
arrival = WAITING_FOR_SEQUENCE;
sequence_check_pending = true;
if(planner && planner->check()!=TrainRoutePlanner::PENDING)
apply_plan(train.get_layout(), *planner);
- if(!train.get_layout().get_driver().is_halted())
+ Layout &layout = train.get_layout();
+ if(!layout.get_driver().is_halted() && !layout.get_clock().is_stopped())
{
if(delay)
{