Laserlicht 8 mesi fa
parent
commit
7beabc44ea

+ 6 - 1
client/mapView/MapView.cpp

@@ -210,7 +210,12 @@ void MapView::onMapZoomLevelChanged(int stepsChange, bool useDeadZone)
 void MapView::onViewMapActivated()
 {
 	controller->activateAdventureContext();
-	controller->setTileSize(Point(32, 32));
+
+	int zoom = persistentStorage["tileZoom"].Integer();
+	if(zoom)
+		controller->setTileSize(Point(zoom, zoom));
+	else
+		controller->setTileSize(Point(32, 32));
 }
 
 PuzzleMapView::PuzzleMapView(const Point & offset, const Point & dimensions, const int3 & tileToCenter)

+ 9 - 3
client/mapView/MapViewController.cpp

@@ -72,7 +72,7 @@ void MapViewController::setViewCenter(const Point & position, int level)
 		adventureInt->onMapViewMoved(model->getTilesTotalRect(), model->getLevel());
 }
 
-void MapViewController::setTileSize(const Point & tileSize)
+void MapViewController::setTileSize(const Point & tileSize, bool setTarget)
 {
 	Point oldSize = model->getSingleTileSize();
 	model->setTileSize(tileSize);
@@ -87,6 +87,9 @@ void MapViewController::setTileSize(const Point & tileSize)
 
 	// force update of view center since changing tile size may invalidated it
 	setViewCenter(newViewCenter, model->getLevel());
+	
+	if(setTarget)
+		targetTileSize = tileSize;
 }
 
 void MapViewController::modifyTileSize(int stepsChange, bool useDeadZone)
@@ -125,7 +128,7 @@ void MapViewController::modifyTileSize(int stepsChange, bool useDeadZone)
 			if(actualZoom.y >= defaultTileSize - zoomTileDeadArea && actualZoom.y <= defaultTileSize + zoomTileDeadArea)
 				actualZoom.y = defaultTileSize;
 		}
-		
+
 		bool isInDeadZone = targetTileSize != actualZoom || actualZoom == Point(defaultTileSize, defaultTileSize);
 
 		if(!wasInDeadZone && isInDeadZone)
@@ -133,7 +136,10 @@ void MapViewController::modifyTileSize(int stepsChange, bool useDeadZone)
 
 		wasInDeadZone = isInDeadZone;
 
-		setTileSize(actualZoom);
+		setTileSize(actualZoom, false);
+
+		Settings tileZoom = persistentStorage.write["tileZoom"];
+		tileZoom->Integer() = actualZoom.x;
 	}
 }
 

+ 1 - 1
client/mapView/MapViewController.h

@@ -96,7 +96,7 @@ public:
 
 	void setViewCenter(const int3 & position);
 	void setViewCenter(const Point & position, int level);
-	void setTileSize(const Point & tileSize);
+	void setTileSize(const Point & tileSize, bool setTarget = true);
 	void modifyTileSize(int stepsChange, bool useDeadZone);
 	void tick(uint32_t timePassed);
 	void afterRender();