From 58c690f1d2d9a8745ecf54623593dfaef3fd7e66 Mon Sep 17 00:00:00 2001 From: Imbris Date: Wed, 6 Oct 2021 02:13:02 -0400 Subject: [PATCH] Remove map drag from the settings file since it is always reset when closing the map leaving little reason to persist it --- voxygen/src/hud/map.rs | 13 ++++++++----- voxygen/src/hud/mod.rs | 13 +++++++------ voxygen/src/session/settings_change.rs | 5 ----- voxygen/src/settings/interface.rs | 3 --- 4 files changed, 15 insertions(+), 19 deletions(-) diff --git a/voxygen/src/hud/map.rs b/voxygen/src/hud/map.rs index 2bd2042c1c..1601e9feec 100644 --- a/voxygen/src/hud/map.rs +++ b/voxygen/src/hud/map.rs @@ -103,6 +103,7 @@ pub struct Map<'a> { rot_imgs: &'a ImgsRot, tooltip_manager: &'a mut TooltipManager, location_marker: Option>, + map_drag: Vec2, } impl<'a> Map<'a> { #[allow(clippy::too_many_arguments)] // TODO: Pending review in #587 @@ -118,6 +119,7 @@ impl<'a> Map<'a> { global_state: &'a GlobalState, tooltip_manager: &'a mut TooltipManager, location_marker: Option>, + map_drag: Vec2, ) -> Self { Self { show, @@ -132,6 +134,7 @@ impl<'a> Map<'a> { global_state, tooltip_manager, location_marker, + map_drag, } } } @@ -145,6 +148,7 @@ pub enum Event { Close, RequestSiteInfo(SiteId), SetLocationMarker(Vec2), + MapDrag(Vec2), ToggleMarker, } @@ -197,7 +201,6 @@ impl<'a> Widget for Map<'a> { fn update(self, args: widget::UpdateArgs) -> Self::Event { common_base::prof_span!("Map::update"); let widget::UpdateArgs { state, ui, .. } = args; - let drag = self.global_state.settings.interface.map_drag; let zoom = self.global_state.settings.interface.map_zoom; let show_difficulty = self.global_state.settings.interface.map_show_difficulty; let show_towns = self.global_state.settings.interface.map_show_towns; @@ -318,7 +321,7 @@ impl<'a> Widget for Map<'a> { player_pos.xy().map(|x| x as f64) / TerrainChunkSize::RECT_SIZE.map(|x| x as f64); let min_drag = player_pos_chunks - worldsize.map(|x| x as f64); let max_drag = player_pos_chunks; - let drag = drag.clamped(min_drag, max_drag); + let drag = self.map_drag.clamped(min_drag, max_drag); let handle_widget_mouse_events = |widget, wpos: Option>, @@ -360,7 +363,7 @@ impl<'a> Widget for Map<'a> { let mouse_pos = Vec2::from_slice(&cursor_pos); let drag_new = drag + mouse_pos * (1.0 / new_zoom_lvl - 1.0 / zoom); if drag_new != drag { - events.push(Event::SettingsChange(MapDrag(drag_new))); + events.push(Event::MapDrag(drag_new)); } } } @@ -375,7 +378,7 @@ impl<'a> Widget for Map<'a> { // Drag represents offset of view from the player_pos in chunk coords let drag_new = drag + dragged / zoom; if drag_new != drag { - events.push(Event::SettingsChange(MapDrag(drag_new))); + events.push(Event::MapDrag(drag_new)); } }; @@ -1238,7 +1241,7 @@ impl<'a> Widget for Map<'a> { .set(state.ids.recenter_button, ui) .was_clicked() { - events.push(Event::SettingsChange(MapDrag(Vec2::zero()))); + events.push(Event::MapDrag(Vec2::zero())); }; Image::new(self.imgs.m_move_ico) diff --git a/voxygen/src/hud/mod.rs b/voxygen/src/hud/mod.rs index a655b5bb7e..530756732c 100644 --- a/voxygen/src/hud/mod.rs +++ b/voxygen/src/hud/mod.rs @@ -930,6 +930,7 @@ pub struct Hud { crosshair_opacity: f32, floaters: Floaters, voxel_minimap: VoxelMinimap, + map_drag: Vec2, } impl Hud { @@ -1052,6 +1053,7 @@ impl Hud { combo_floaters: VecDeque::new(), block_floaters: Vec::new(), }, + map_drag: Vec2::zero(), } } @@ -3064,6 +3066,7 @@ impl Hud { global_state, tooltip_manager, self.show.location_marker, + self.map_drag, ) .set(self.ids.map, ui_widgets) { @@ -3082,6 +3085,9 @@ impl Hud { map::Event::SetLocationMarker(pos) => { self.show.location_marker = Some(pos); }, + map::Event::MapDrag(new_drag) => { + self.map_drag = new_drag; + }, map::Event::ToggleMarker => { self.show.map_marker = !self.show.map_marker; }, @@ -3089,12 +3095,7 @@ impl Hud { } } else { // Reset the map position when it's not showing - let drag = &global_state.settings.interface.map_drag; - if drag.x != 0.0 || drag.y != 0.0 { - events.push(Event::SettingsChange( - InterfaceChange::MapDrag(Vec2::zero()).into(), - )) - } + self.map_drag = Vec2::zero(); } if self.show.esc_menu { diff --git a/voxygen/src/session/settings_change.rs b/voxygen/src/session/settings_change.rs index d76f667876..11c215cd4b 100644 --- a/voxygen/src/session/settings_change.rs +++ b/voxygen/src/session/settings_change.rs @@ -15,7 +15,6 @@ use crate::{ GlobalState, }; use i18n::{LanguageMetadata, LocalizationHandle}; -use vek::*; #[derive(Clone)] pub enum Audio { @@ -118,7 +117,6 @@ pub enum Interface { MinimapZoom(f64), //Map settings MapZoom(f64), - MapDrag(Vec2), MapShowTopoMap(bool), MapShowDifficulty(bool), MapShowTowns(bool), @@ -497,9 +495,6 @@ impl SettingsChange { Interface::MapZoom(map_zoom) => { settings.interface.map_zoom = map_zoom; }, - Interface::MapDrag(map_drag) => { - settings.interface.map_drag = map_drag; - }, Interface::MapShowTopoMap(map_show_topo_map) => { settings.interface.map_show_topo_map = map_show_topo_map; }, diff --git a/voxygen/src/settings/interface.rs b/voxygen/src/settings/interface.rs index 1756186893..7618ba0f46 100644 --- a/voxygen/src/settings/interface.rs +++ b/voxygen/src/settings/interface.rs @@ -3,7 +3,6 @@ use crate::{ ui::ScaleMode, }; use serde::{Deserialize, Serialize}; -use vek::*; /// `InterfaceSettings` contains UI, HUD and Map options. #[derive(Clone, Debug, Serialize, Deserialize)] @@ -29,7 +28,6 @@ pub struct InterfaceSettings { pub always_show_bars: bool, pub ui_scale: ScaleMode, pub map_zoom: f64, - pub map_drag: Vec2, pub map_show_topo_map: bool, pub map_show_difficulty: bool, pub map_show_towns: bool, @@ -68,7 +66,6 @@ impl Default for InterfaceSettings { always_show_bars: false, ui_scale: ScaleMode::RelativeToWindow([1920.0, 1080.0].into()), map_zoom: 10.0, - map_drag: Vec2 { x: 0.0, y: 0.0 }, map_show_topo_map: true, map_show_difficulty: true, map_show_towns: true,