X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibmarklin%2Ftrafficmanager.cpp;h=516f64fd0b00741ea65ee2572cbec2e501d44afc;hb=06c100aacb559fbbe7380e15981c4772092c269b;hp=7a47f1425c077c85686624587f92682c7e293810;hpb=6c61179fe09af2f5366d50f10aadbf5f83438087;p=r2c2.git diff --git a/source/libmarklin/trafficmanager.cpp b/source/libmarklin/trafficmanager.cpp index 7a47f14..516f64f 100644 --- a/source/libmarklin/trafficmanager.cpp +++ b/source/libmarklin/trafficmanager.cpp @@ -31,24 +31,32 @@ TrafficManager::TrafficManager(Control &c, Layout &l): } if(used_tracks.count(*i)==0) { - Section *sect=new Section(*this, *i); - sections.push_back(sect); - used_tracks.insert(sect->get_tracks().begin(), sect->get_tracks().end()); + Block *block=new Block(*this, *i); + blocks.push_back(block); + used_tracks.insert(block->get_tracks().begin(), block->get_tracks().end()); } } - for(SectionSeq::iterator i=sections.begin(); i!=sections.end(); ++i) + for(BlockSeq::iterator i=blocks.begin(); i!=blocks.end(); ++i) { - for(SectionSeq::iterator j=i; j!=sections.end(); ++j) + for(BlockSeq::iterator j=i; j!=blocks.end(); ++j) if(j!=i) (*i)->check_link(**j); (*i)->print_debug(); } } -Section *TrafficManager::get_section_by_track(const Track *t) const +TrafficManager::~TrafficManager() { - for(SectionSeq::const_iterator i=sections.begin(); i!=sections.end(); ++i) + for(BlockSeq::iterator i=blocks.begin(); i!=blocks.end(); ++i) + delete *i; + for(TrainSeq::iterator i=trains.begin(); i!=trains.end(); ++i) + delete *i; +} + +Block *TrafficManager::get_block_by_track(const Track *t) const +{ + for(BlockSeq::const_iterator i=blocks.begin(); i!=blocks.end(); ++i) { const TrackSet &tracks=(*i)->get_tracks(); if(tracks.count(const_cast(t)))