Просмотр исходного кода

fix division by zero edge case

Michael 2 лет назад
Родитель
Сommit
4137a66f2a
1 измененных файлов с 6 добавлено и 3 удалено
  1. 6 3
      client/mapView/MapView.cpp

+ 6 - 3
client/mapView/MapView.cpp

@@ -148,8 +148,11 @@ void MapView::postSwipe(uint32_t msPassed) {
 
 			uint32_t timediff = swipeHistory.rbegin()->first - firstAccepted.first;
 
-			postSwipeAngle = diff.angle();
-			postSwipeSpeed = static_cast<double>(diff.length()) / static_cast<double>(timediff); // unit: pixel/millisecond			
+			if(diff.length() > 0 && timediff > 0)
+			{
+				postSwipeAngle = diff.angle();
+				postSwipeSpeed = static_cast<double>(diff.length()) / static_cast<double>(timediff); // unit: pixel/millisecond
+			}	
 		}
 		swipeHistory.clear();
 	} else
@@ -205,4 +208,4 @@ PuzzleMapView::PuzzleMapView(const Point & offset, const Point & dimensions, con
 	controller->activatePuzzleMapContext(tileToCenter);
 	controller->setViewCenter(tileToCenter);
 
-}
+}