- {
- destination_changed = false;
- if(planner->get_result()==TrainRoutePlanner::COMPLETE)
- {
- const list<Route *> &planned_routes = planner->get_routes_for(train);
-
- routes.clear();
- Route *lead = create_lead_route(0, planned_routes.front());
- routes.push_back(lead);
-
- list<Route *>::const_iterator begin = planned_routes.begin();
- for(; begin!=planned_routes.end(); ++begin)
- {
- const Route::TrackSet &tracks = (*begin)->get_tracks();
- bool eclipsed = true;
- for(Route::TrackSet::const_iterator i=tracks.begin(); (eclipsed && i!=tracks.end()); ++i)
- eclipsed = lead->has_track(**i);
- if(!eclipsed)
- break;
- }
- routes.insert(routes.end(), begin, planned_routes.end());
-
- sequence_points = planner->get_sequence_for(train);
- current_sequence = 0;
- sequence_check_pending = false;
-
- route_changed();
- }
- planner = 0;
- }