]> git.tdb.fi Git - r2c2.git/blobdiff - source/libmarklin/timetable.cpp
Return null from Route::find if a route can't be found
[r2c2.git] / source / libmarklin / timetable.cpp
index afe83ff867376004753b75c60408b904f5f36c48..a699fc8c14b39cc51db86e64323a51e7a96fa654 100644 (file)
@@ -90,7 +90,8 @@ void Timetable::tick(const Time::TimeStamp &t)
                switch(row.type)
                {
                case GOTO:
-                       train.go_to(**parse_location(row.get_param<string>(0)).get_tracks().begin());
+                       if(!train.go_to(**parse_location(row.get_param<string>(0)).get_tracks().begin()))
+                               set_enabled(false);
                        break;
                case TRAVEL:
                        pending_block = &parse_location(row.get_param<string>(0));
@@ -116,7 +117,8 @@ void Timetable::tick(const Time::TimeStamp &t)
                        train.set_control("reverse", !train.get_control("reverse"));
                        break;
                case ROUTE:
-                       train.set_route(&train.get_layout().get_route(row.get_param<string>(0)));
+                       if(!train.set_route(&train.get_layout().get_route(row.get_param<string>(0))))
+                               set_enabled(false);
                        break;
                }