]> git.tdb.fi Git - r2c2.git/blobdiff - source/libmarklin/train.cpp
Handle reversing in a way that allows backing out of a dead end
[r2c2.git] / source / libmarklin / train.cpp
index 44f9298d142daf72682594148476699a0ce89554..1abf535c06b6d03a0649c95162b7264da1802c73 100644 (file)
@@ -322,10 +322,10 @@ void Train::tick(const Time::TimeStamp &t, const Time::TimeDelta &dt)
        float speed = control->get_speed();
        unsigned speed_notch = find_speed(abs(speed));
 
-       if(speed && (speed<0)!=reverse)
+       if(control->get_reverse()!=reverse)
        {
-               driver.set_loco_reverse(address, speed<0);
-               reverse = speed<0;
+               reverse = control->get_reverse();
+               driver.set_loco_reverse(address, reverse);
 
                release_blocks(rsv_blocks);
                reverse_blocks(cur_blocks);