From 115b2875b3f30da90c82446206b49dc12e1a9154 Mon Sep 17 00:00:00 2001 From: ninefox Date: Mon, 7 Mar 2022 20:28:38 -0800 Subject: [PATCH] prevent glider and sneak from triggering during trade --- client/src/lib.rs | 2 ++ voxygen/src/session/mod.rs | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/client/src/lib.rs b/client/src/lib.rs index c26cbb52d2..edad1b54d1 100644 --- a/client/src/lib.rs +++ b/client/src/lib.rs @@ -1116,6 +1116,8 @@ impl Client { &self.pending_trade } + pub fn is_trading(&self) -> bool { self.pending_trade.is_some() } + pub fn send_invite(&mut self, invitee: Uid, kind: InviteKind) { self.send_msg(ClientGeneral::ControlEvent(ControlEvent::InitiateInvite( invitee, kind, diff --git a/voxygen/src/session/mod.rs b/voxygen/src/session/mod.rs index ccbd8f93e4..f2ea1e64ac 100644 --- a/voxygen/src/session/mod.rs +++ b/voxygen/src/session/mod.rs @@ -599,7 +599,8 @@ impl PlayState for SessionState { } }, GameInput::Sneak => { - if state { + let is_trading = self.client.borrow().is_trading(); + if state && !is_trading { self.stop_auto_walk(); self.client.borrow_mut().toggle_sneak(); } @@ -629,7 +630,8 @@ impl PlayState for SessionState { self.key_state.right = state }, GameInput::Glide => { - if state { + let is_trading = self.client.borrow().is_trading(); + if state && !is_trading { if global_state.settings.gameplay.stop_auto_walk_on_input { self.stop_auto_walk(); }