- TrainRouter *other_router = 0;
- for(list<SequencePoint>::iterator i=sequence_points.begin(); i!=sequence_points.end(); ++i)
- if(i->block==&block && i->preceding_train==t)
- {
- if(!other_router)
- other_router = t->get_ai_of_type<TrainRouter>();
- if(other_router->get_current_sequence()>=i->sequence_in)
- {
- i->preceding_train = 0;
- if(i==sequence_points.begin())
- train.stop_at(0);
- }
- else
- pending_sequence_checks.push_back(&*i);
- }
+ 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;
+ }