]> git.tdb.fi Git - r2c2.git/blobdiff - source/libmarklin/train.cpp
Make further use of the traverse functions always returning a valid result
[r2c2.git] / source / libmarklin / train.cpp
index 330bb70e1fdd7de75a70e91e138c9a8d52e49e44..4beda974bf85d65f10c0547325038322aead6975 100644 (file)
@@ -156,17 +156,12 @@ void Train::tick(const Time::TimeStamp &t, const Time::TimeDelta &dt)
                offset += get_real_speed(loco.get_speed())*(dt/Time::sec);
                if(offset>cur_track->get_type().get_path_length(path))
                {
-                       int out = cur_track->traverse(cur_track_ep, path);
-                       if(out>=0)
-                       {
-                               Track *next = cur_track->get_link(out);
-                               if(next)
-                                       cur_track_ep = next->get_endpoint_by_link(*cur_track);
-                               cur_track = next;
-                               offset = 0;
-                       }
-                       else
-                               cur_track = 0;
+                       unsigned out = cur_track->traverse(cur_track_ep, path);
+                       Track *next = cur_track->get_link(out);
+                       if(next)
+                               cur_track_ep = next->get_endpoint_by_link(*cur_track);
+                       cur_track = next;
+                       offset = 0;
                }
 
                if(cur_track)