]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/route.cpp
Also use TrackChains as target locations in Timetable
[r2c2.git] / source / libr2c2 / route.cpp
index b3dc474d81d4cbdfeb68bf13d162646cd4262691..5b37fcc06f3f7d381ec63309d9450ffde7f9e558 100644 (file)
@@ -140,12 +140,6 @@ Route::~Route()
        layout.remove(*this);
 }
 
-void Route::set_name(const string &n)
-{
-       name = n;
-       signal_name_changed.emit(name);
-}
-
 void Route::set_temporary(bool t)
 {
        temporary = t;
@@ -173,6 +167,9 @@ void Route::update_turnouts()
 
 void Route::update_turnout(Track &track)
 {
+       if(!track.get_type().is_turnout())
+               return;
+
        // Build a combined path mask from linked endpoints
        unsigned nls = track.get_n_link_slots();
        unsigned mask = track.get_type().get_paths();
@@ -260,6 +257,11 @@ void Route::save(list<DataFile::Statement> &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));
@@ -284,7 +286,7 @@ Route *Route::find(const TrackIter &from, const set<Track *> &to)
 Route::Loader::Loader(Route &r):
        DataFile::ObjectLoader<Route>(r)
 {
-       add("name",    &Route::name);
+       add("name",    &Loader::name);
        add("turnout", &Loader::turnout);
 }
 
@@ -313,6 +315,11 @@ void Route::Loader::finish()
        }
 }
 
+void Route::Loader::name(const string &n)
+{
+       obj.name = n;
+}
+
 void Route::Loader::turnout(unsigned id, unsigned path)
 {
        turnouts[id] = path;