]> git.mxchange.org Git - simgear.git/commitdiff
(Re)fix bug #285, textranslate broken
authorTorsten Dreyer <Torsten@t3r.de>
Sat, 28 May 2011 08:17:19 +0000 (10:17 +0200)
committerTorsten Dreyer <Torsten@t3r.de>
Sat, 28 May 2011 08:17:19 +0000 (10:17 +0200)
Due to fingertrouble, I removed the check for _step == 0 which
this patch re-adds.

Also, make this function look more like a template by not using
0.0 - constants.

simgear/structure/SGExpression.hxx

index 1f599b760ab50528beb8a58851c42a55657a09a8..a2525fc7b67206e9a6ca5b8e48406e68c58324d5 100644 (file)
@@ -665,12 +665,14 @@ public:
 private:
   T apply_mods(T property) const
   {
+    if( _step <= SGLimits<T>::min() ) return property;
+
     // apply stepping of input value
     T modprop = floor(property/_step)*_step;
 
     // calculate scroll amount (for odometer like movement)
-    T remainder = property < 0 ? -fmod(property,_step) : (_step - fmod(property,_step));
-    if( remainder > 0.0 && remainder < _scroll )
+    T remainder = property <= SGLimits<T>::min() ? -fmod(property,_step) : (_step - fmod(property,_step));
+    if( remainder > SGLimits<T>::min() && remainder < _scroll )
       modprop += (_scroll - remainder) / _scroll * _step;
 
     return modprop;