]> git.tdb.fi Git - r2c2.git/blobdiff - source/libmarklin/trafficmanager.cpp
Add networking library and a remote control program
[r2c2.git] / source / libmarklin / trafficmanager.cpp
index 069731e060ae3a80e741a754fa83519af0b6da59..b7301d3dd63e19674ebc0f0896c9aa1ce3ff6f5e 100644 (file)
@@ -69,10 +69,22 @@ Block &TrafficManager::get_block_by_track(const Track &t) const
        throw InvalidParameterValue("Unknown track");
 }
 
+Train &TrafficManager::get_train_by_locomotive(const Locomotive &loco) const
+{
+       for(list<Train *>::const_iterator i=trains.begin(); i!=trains.end(); ++i)
+               if(&(*i)->get_locomotive()==&loco)
+                       return **i;
+
+       throw InvalidParameterValue("Unknown locomotive");
+}
+
 void TrafficManager::add_train(Train *t)
 {
        if(find(trains.begin(), trains.end(), t)==trains.end())
+       {
                trains.push_back(t);
+               signal_train_added.emit(*t);
+       }
 }
 
 void TrafficManager::tick()