Browse Source

LWO: Fix division by zero

Turo Lamminen 9 years ago
parent
commit
b71bd3df84
1 changed files with 6 additions and 1 deletions
  1. 6 1
      code/LWOAnimation.cpp

+ 6 - 1
code/LWOAnimation.cpp

@@ -328,7 +328,12 @@ void AnimResolver::DoInterpolation2(std::vector<LWO::Key>::const_iterator beg,
             break;
     }
     // linear interpolation - default
-    fill = (*beg).value + ((*end).value - (*beg).value)*(float)(((time - (*beg).time) / ((*end).time - (*beg).time)));
+    double duration = (*end).time - (*beg).time;
+    if (duration > 0.0) {
+        fill = (*beg).value + ((*end).value - (*beg).value)*(float)(((time - (*beg).time) / duration));
+    } else {
+        fill = (*beg).value;
+    }
 }
 
 // ------------------------------------------------------------------------------------------------