- const map<string, Route *> &routes = engineer.get_layout().get_routes();
- map<string, Route *>::const_iterator i = routes.begin();
- advance(i, drp_route->get_selected_index()-1);
-
- train.set_route(i->second);
+ const set<Route *> &routes = engineer.get_layout().get_routes();
+ set<Route *>::const_iterator i = routes.begin();
+ unsigned n = drp_route->get_selected_index()-1;
+ while(i!=routes.end())
+ {
+ if(!(*i)->is_temporary())
+ {
+ if(!n)
+ break;
+ --n;
+ }
+ ++i;
+ }
+
+ train.ai_message(TrainAI::Message("set-route", *i));