]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/trainrouter.cpp
Don't attempt to use planned route if no waypoints are set
[r2c2.git] / source / libr2c2 / trainrouter.cpp
index 4a5c2bb084a43ce6977d6145f448027364a34aba..122b91a3bd195837f90455cc3da66289d37ea453 100644 (file)
@@ -68,6 +68,8 @@ void TrainRouter::use_planned_route()
 {
        if(!planner || planner->get_result()!=TrainRoutePlanner::COMPLETE)
                return;
+       if(waypoints.empty())
+               return;
 
        const list<Route *> &planned_routes = planner->get_routes_for(train);
 
@@ -119,7 +121,7 @@ void TrainRouter::route_changed()
                if(!sequence_points.empty())
                {
                        const SequencePoint &sp = sequence_points.front();
-                       if(sp.block==fncb.block() && !sp.is_cleared())
+                       if(sp.block==fncb.block() && sp.preceding_train)
                        {
                                arrival = WAITING_FOR_SEQUENCE;
                                sequence_check_pending = true;
@@ -232,7 +234,8 @@ void TrainRouter::tick(const Time::TimeDelta &dt)
        if(planner && planner->check()!=TrainRoutePlanner::PENDING)
                apply_plan(train.get_layout(), *planner);
 
-       if(!train.get_layout().get_driver().is_halted())
+       Layout &layout = train.get_layout();
+       if(!layout.get_driver().is_halted() && !layout.get_clock().is_stopped())
        {
                if(delay)
                {