anchor.diff:      screenY := gRender.ScreenY;
       zoom := gGame.ActiveInterface.Viewport.Zoom;
       pos := gGame.ActiveInterface.Viewport.Position;
  +    zoomBehaviour := gGameSettings.ZoomBehaviour;
   
       // calc resize dimensions
       // We show MapX - 1 tiles
  
positive.code:   end;
  
    // Restore viewport params
    Resize(screenX, screenY);
    gGame.ActiveInterface.Viewport.Zoom := zoom;
    gGame.ActiveInterface.Viewport.Position := pos;
  
negative.code:     if aMaxImageSize > 0 then
        saveSizeMax := Min(saveSizeMax, aMaxImageSize);
  
      // zbLoose could lead to bad positioned map image
      gGameSettings.ZoomBehaviour := zbRestricted;
      Resize(Round(saveSizeMax * mapSizeX / mapSizeMax), Round(saveSizeMax * mapSizeY / mapSizeMax));
  
      // Zoom out as max as possible
      gGame.ActiveInterface.Viewport.Zoom := 0.01;
  
      // Render once is enough, since we render to an off-screen buffer (FBO)
      Render(True);
  