]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/train.cpp
Convert Catalogue to a Collection
[r2c2.git] / source / libr2c2 / train.cpp
index 98553e3c611540aef90dc34477315ec3c8f6ea48..6ba868461b6da2eb5e995673053eada3f55a6369 100644 (file)
@@ -68,6 +68,7 @@ Train::Train(Layout &l, const VehicleType &t, unsigned a, const string &p):
        controller->signal_control_changed.connect(sigc::mem_fun(this, &Train::control_changed));
 
        allocator.signal_advanced.connect(sigc::mem_fun(this, &Train::advanced));
+       allocator.signal_rear_advanced.connect(signal_rear_advanced);
 }
 
 Train::~Train()
@@ -384,9 +385,10 @@ void Train::save(list<DataFile::Statement> &st) const
 {
        st.push_back((DataFile::Statement("name"), name));
 
+       const Catalogue &cat = layout.get_catalogue();
        for(vector<Vehicle *>::const_iterator i=vehicles.begin(); i!=vehicles.end(); ++i)
                if(i!=vehicles.begin())
-                       st.push_back((DataFile::Statement("vehicle"), (*i)->get_type().get_article_number()));
+                       st.push_back((DataFile::Statement("vehicle"), cat.get_name(&(*i)->get_type())));
 
        if(speed_quantizer)
        {
@@ -622,9 +624,9 @@ void Train::Loader::timetable()
        load_sub(*ttbl, obj.layout);
 }
 
-void Train::Loader::vehicle(ArticleNumber art_nr)
+void Train::Loader::vehicle(const string &n)
 {
-       const VehicleType &vtype = obj.layout.get_catalogue().get<VehicleType>(art_nr);
+       const VehicleType &vtype = obj.layout.get_catalogue().get<VehicleType>(n);
        Vehicle *veh = new Vehicle(obj.layout, vtype);
        obj.vehicles.back()->attach_back(*veh);
        obj.vehicles.push_back(veh);