]> git.tdb.fi Git - r2c2.git/blobdiff - source/engineer/routeselect.cpp
Do not require unique names for routes
[r2c2.git] / source / engineer / routeselect.cpp
index c285f35f7031f7610551511d05bb12c4fb9432f8..6cda460c810652b42b5adb89641f6093ffe347fd 100644 (file)
@@ -30,13 +30,13 @@ RouteSelect::RouteSelect(Engineer &e, const GLtk::Resources &r, Train &t):
        drp_route->set_geometry(GLtk::Geometry(10, geom.h-50, geom.w-20, 20));
        drp_route->append("(none)");
        drp_route->set_selected_index(0);
-       const map<string, Route *> &routes = engineer.get_layout().get_routes();
+       const set<Route *> &routes = engineer.get_layout().get_routes();
        unsigned n = 1;
-       for(map<string, Route *>::const_iterator i=routes.begin(); i!=routes.end(); ++i)
-               if(!i->second->is_temporary())
+       for(set<Route *>::const_iterator i=routes.begin(); i!=routes.end(); ++i)
+               if(!(*i)->is_temporary())
                {
-                       drp_route->append(i->second->get_name());
-                       if(i->second==train.get_route())
+                       drp_route->append((*i)->get_name());
+                       if(*i==train.get_route())
                                drp_route->set_selected_index(n);
                        ++n;
                }
@@ -46,12 +46,12 @@ void RouteSelect::on_ok_clicked()
 {
        if(drp_route->get_selected_index()>0)
        {
-               const map<string, Route *> &routes = engineer.get_layout().get_routes();
-               map<string, Route *>::const_iterator i = routes.begin();
+               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->second->is_temporary())
+                       if(!(*i)->is_temporary())
                        {
                                if(!n)
                                        break;
@@ -60,7 +60,7 @@ void RouteSelect::on_ok_clicked()
                        ++i;
                }
                
-               train.set_route(i->second);
+               train.set_route(*i);
        }
        else
                train.set_route(0);