unsigned Route::get_path(Track &trk) const
{
- if(unsigned taddr = trk.get_turnout_address())
+ if(trk.get_type().is_turnout())
{
- map<unsigned, int>::const_iterator i = turnouts.find(taddr);
- if(i!=turnouts.end())
+ map<unsigned, int>::const_iterator i = turnouts.find(trk.get_turnout_address());
+ if(i!=turnouts.end() && i->second>=0)
return i->second;
}
return trk.get_active_path();
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));