X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Fsimplecontroller.cpp;h=df828d5498832bf480cea9767518dae92dc6014a;hb=b3cc0d29a0fda2d48443d66881214c81a04b1729;hp=d88ade005929309e38d15f04714e7fa08278cad0;hpb=4236c30c0a7a48854e9634e9ad7d8d6e0fd243a3;p=r2c2.git diff --git a/source/libr2c2/simplecontroller.cpp b/source/libr2c2/simplecontroller.cpp index d88ade0..df828d5 100644 --- a/source/libr2c2/simplecontroller.cpp +++ b/source/libr2c2/simplecontroller.cpp @@ -1,4 +1,3 @@ -#include #include #include #include "simplecontroller.h" @@ -37,7 +36,7 @@ void SimpleController::set_control(const string &name, float v) else if(name==reverse.name) { if(target_speed.value || speed) - throw InvalidState("Must be stopped to change reverse"); + throw logic_error("Must be stopped to change reverse"); reverse.set(v); signal_control_changed.emit(reverse); } @@ -62,17 +61,9 @@ void SimpleController::tick(const Time::TimeDelta &dt) { float secs = dt/Time::sec; if(speedtarget_speed.value) - speed = target_speed.value; - } + speed = min(speed+secs*accel, target_speed.value); else if(speed>target_speed.value) - { - speed -= secs*accel; - if(speed