- const list<Train *> &trains = trfc_mgr.get_trains();
- for(list<Train *>::const_iterator i=trains.begin(); i!=trains.end(); ++i)
- train_added(**i);
+ layout.get_driver().signal_power.connect(sigc::hide(sigc::mem_fun(this, &Server::driver_state_changed)));
+ layout.get_driver().signal_halt.connect(sigc::hide(sigc::mem_fun(this, &Server::driver_state_changed)));
+ layout.signal_emergency.connect(sigc::mem_fun(this, &Server::emergency));
+
+ layout.signal_train_added.connect(sigc::mem_fun(this, &Server::train_added));
+
+ const map<unsigned, Train *> &trains = layout.get_trains();
+ for(map<unsigned, Train *>::const_iterator i=trains.begin(); i!=trains.end(); ++i)
+ train_added(*i->second);