]> git.tdb.fi Git - r2c2.git/blobdiff - source/engineer/engineer.cpp
Support trains with multiple vehicles
[r2c2.git] / source / engineer / engineer.cpp
index d1a123bb7b5e44282e7045da291309a67a8dc91c..d4a0e4446ccb1cda3065bb68f84893703ecdc92d 100644 (file)
@@ -72,6 +72,7 @@ Engineer::Engineer(int argc, char **argv):
        // Setup railroad control
        DataFile::load(catalogue, "tracks.dat");
        DataFile::load(catalogue, "locos.dat");
+       DataFile::load(catalogue, "wagons.dat");
        DataFile::load(layout, options.layout_fn);
 
        layout.signal_train_added.connect(sigc::mem_fun(this, &Engineer::train_added));
@@ -114,7 +115,7 @@ Engineer::~Engineer()
 {
        const map<unsigned, Train *> &trains = layout.get_trains();
        for(map<unsigned, Train *>::const_iterator i=trains.begin(); i!=trains.end(); ++i)
-               i->second->set_speed(0);
+               layout.get_driver().set_loco_speed(i->first, 0);
        layout.get_driver().flush();
 
        if(!options.simulate)
@@ -433,7 +434,7 @@ void Engineer::sighandler(int sig)
                IO::print(IO::cerr, "Fatal signal received, terminating\n");
                const map<unsigned, Train *> &trains = layout.get_trains();
                for(map<unsigned, Train *>::const_iterator i=trains.begin(); i!=trains.end(); ++i)
-                       i->second->set_speed(0);
+                       layout.get_driver().set_loco_speed(i->first, 0);
                layout.get_driver().flush();
                raise(sig);
        }