X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibmarklin%2Ftrafficmanager.cpp;h=b7301d3dd63e19674ebc0f0896c9aa1ce3ff6f5e;hb=e6b7f8c4dd12199c3c5c0bec555fa73c87079729;hp=069731e060ae3a80e741a754fa83519af0b6da59;hpb=38fb8d56efde037a71c46a58bda314655e68ab6c;p=r2c2.git diff --git a/source/libmarklin/trafficmanager.cpp b/source/libmarklin/trafficmanager.cpp index 069731e..b7301d3 100644 --- a/source/libmarklin/trafficmanager.cpp +++ b/source/libmarklin/trafficmanager.cpp @@ -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::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()