From 7589331785ae9633e17e8b3c868ac8c916ec0807 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Capucho?= Date: Mon, 19 Apr 2021 11:56:58 +0100 Subject: [PATCH] Voxygen: Add support for map zoom with keybind --- voxygen/src/hud/mod.rs | 21 +++++++++++++++++++++ voxygen/src/settings/control.rs | 2 ++ voxygen/src/window.rs | 6 ++++++ 3 files changed, 29 insertions(+) diff --git a/voxygen/src/hud/mod.rs b/voxygen/src/hud/mod.rs index 009dca6909..b14c452d4b 100644 --- a/voxygen/src/hud/mod.rs +++ b/voxygen/src/hud/mod.rs @@ -3094,6 +3094,21 @@ impl Hud { } } + fn handle_map_zoom( + change: f64, + world_size: Vec2, + global_state: &mut GlobalState, + ) -> bool { + let max_zoom = world_size.reduce_partial_max() as f64; + + let new_zoom_lvl = + (global_state.settings.interface.map_zoom + change).clamped(1.25, max_zoom / 64.0); + + global_state.settings.interface.map_zoom = new_zoom_lvl; + + true + } + let cursor_grabbed = global_state.window.is_cursor_grabbed(); let handled = match event { WinEvent::Ui(event) => { @@ -3220,6 +3235,12 @@ impl Hud { self.show.ingame = !self.show.ingame; true }, + GameInput::MapZoomIn if state && self.show.map => { + handle_map_zoom(1.0, self.world_map.1, global_state) + }, + GameInput::MapZoomOut if state && self.show.map => { + handle_map_zoom(-1.0, self.world_map.1, global_state) + }, // Skillbar input => { if let Some(slot) = try_hotbar_slot_from_input(input) { diff --git a/voxygen/src/settings/control.rs b/voxygen/src/settings/control.rs index df9472a059..b70e30ebe2 100644 --- a/voxygen/src/settings/control.rs +++ b/voxygen/src/settings/control.rs @@ -166,6 +166,8 @@ impl ControlSettings { GameInput::Select => KeyMouse::Key(VirtualKeyCode::Y), GameInput::AcceptGroupInvite => KeyMouse::Key(VirtualKeyCode::U), GameInput::DeclineGroupInvite => KeyMouse::Key(VirtualKeyCode::I), + GameInput::MapZoomIn => KeyMouse::Key(VirtualKeyCode::Plus), + GameInput::MapZoomOut => KeyMouse::Key(VirtualKeyCode::Minus), } } } diff --git a/voxygen/src/window.rs b/voxygen/src/window.rs index 2bacb2758f..e6c1581402 100644 --- a/voxygen/src/window.rs +++ b/voxygen/src/window.rs @@ -76,6 +76,8 @@ pub enum GameInput { Select, AcceptGroupInvite, DeclineGroupInvite, + MapZoomIn, + MapZoomOut, } impl GameInput { @@ -138,6 +140,8 @@ impl GameInput { GameInput::Select => "gameinput.select", GameInput::AcceptGroupInvite => "gameinput.acceptgroupinvite", GameInput::DeclineGroupInvite => "gameinput.declinegroupinvite", + GameInput::MapZoomIn => "gameinput.mapzoomin", + GameInput::MapZoomOut => "gameinput.mapzoomout", } } @@ -200,6 +204,8 @@ impl GameInput { GameInput::Select, GameInput::AcceptGroupInvite, GameInput::DeclineGroupInvite, + GameInput::MapZoomIn, + GameInput::MapZoomOut, ] .iter() .copied()