Ver Fonte

Haptic feedback and increased dead zone

Michael há 2 anos atrás
pai
commit
da3014bd54

+ 9 - 0
client/mapView/MapViewController.cpp

@@ -20,6 +20,7 @@
 #include "../adventureMap/AdventureMapInterface.h"
 #include "../gui/CGuiHandler.h"
 #include "../gui/WindowHandler.h"
+#include "../eventsSDL/InputHandler.h"
 
 #include "../../lib/CConfigHandler.h"
 #include "../../lib/mapObjects/CGHeroInstance.h"
@@ -118,6 +119,14 @@ void MapViewController::modifyTileSize(int stepsChange)
 			actualZoom.x = defaultTileSize;
 		if(actualZoom.y >= defaultTileSize - zoomTileDeadArea && actualZoom.y <= defaultTileSize + zoomTileDeadArea)
 			actualZoom.y = defaultTileSize;
+		
+		bool isInDeadZone = targetTileSize != actualZoom;
+
+		if(!wasInDeadZone && isInDeadZone)
+			GH.input().hapticFeedback();
+
+		wasInDeadZone = isInDeadZone;
+
 		setTileSize(actualZoom);
 	}
 }

+ 2 - 1
client/mapView/MapViewController.h

@@ -51,8 +51,9 @@ class MapViewController : public IMapObjectObserver
 
 private:
 	const int defaultTileSize = 32;
-	const int zoomTileDeadArea = 4;
+	const int zoomTileDeadArea = 5;
 	Point targetTileSize = Point(32, 32);
+	bool wasInDeadZone = true;
 
 	bool isEventInstant(const CGObjectInstance * obj);
 	bool isEventVisible(const CGObjectInstance * obj);