X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fengineer%2Frouteselect.cpp;h=c285f35f7031f7610551511d05bb12c4fb9432f8;hb=3b3099eb9e6d14e2a0495ea78144a734a102112f;hp=3413220a46aea4c8cac349230c29cdc486cd7850;hpb=025c23f199c411cc2ec1a6d2e85bf24460150ceb;p=r2c2.git diff --git a/source/engineer/routeselect.cpp b/source/engineer/routeselect.cpp index 3413220..c285f35 100644 --- a/source/engineer/routeselect.cpp +++ b/source/engineer/routeselect.cpp @@ -32,12 +32,14 @@ RouteSelect::RouteSelect(Engineer &e, const GLtk::Resources &r, Train &t): drp_route->set_selected_index(0); const map &routes = engineer.get_layout().get_routes(); unsigned n = 1; - for(map::const_iterator i=routes.begin(); i!=routes.end(); ++i, ++n) - { - drp_route->append(i->second->get_name()); - if(i->second==train.get_route()) - drp_route->set_selected_index(n); - } + for(map::const_iterator i=routes.begin(); i!=routes.end(); ++i) + if(!i->second->is_temporary()) + { + drp_route->append(i->second->get_name()); + if(i->second==train.get_route()) + drp_route->set_selected_index(n); + ++n; + } } void RouteSelect::on_ok_clicked() @@ -46,7 +48,17 @@ void RouteSelect::on_ok_clicked() { const map &routes = engineer.get_layout().get_routes(); map::const_iterator i = routes.begin(); - advance(i, drp_route->get_selected_index()-1); + unsigned n = drp_route->get_selected_index()-1; + while(i!=routes.end()) + { + if(!i->second->is_temporary()) + { + if(!n) + break; + --n; + } + ++i; + } train.set_route(i->second); }