X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Froute.cpp;h=5ee30e033161030fa31a8f558f50e7f4a3b9aaea;hb=74f8c3beba5a6947a523119e3f26cf745725b511;hp=7458cc66e2eb87f57a08373d6dfc04041bc5680b;hpb=1124a98ce5e1edee1904eeec089976d446601afd;p=r2c2.git diff --git a/source/libr2c2/route.cpp b/source/libr2c2/route.cpp index 7458cc6..5ee30e0 100644 --- a/source/libr2c2/route.cpp +++ b/source/libr2c2/route.cpp @@ -215,10 +215,10 @@ int Route::get_turnout(unsigned id) const unsigned Route::get_path(Track &trk) const { - if(unsigned taddr = trk.get_turnout_address()) + if(trk.get_type().is_turnout()) { - map::const_iterator i = turnouts.find(taddr); - if(i!=turnouts.end()) + map::const_iterator i = turnouts.find(trk.get_turnout_address()); + if(i!=turnouts.end() && i->second>=0) return i->second; } return trk.get_active_path(); @@ -257,6 +257,11 @@ void Route::save(list &st) const st.push_back((DataFile::Statement("turnout"), i->first, i->second)); } +DataFile::Statement Route::save_reference() const +{ + return (DataFile::Statement("route"), name); +} + Route *Route::find(const TrackIter &from, Track &to) { return create_route(from, TrackMatch(to));