diff --git a/strafe-client/src/window.rs b/strafe-client/src/window.rs index 05ad99f..224b71a 100644 --- a/strafe-client/src/window.rs +++ b/strafe-client/src/window.rs @@ -14,7 +14,7 @@ pub enum Instruction{ //holds thread handles to dispatch to struct WindowContext<'a>{ manual_mouse_lock:bool, - mouse:strafesnet_common::mouse::MouseState,//std::sync::Arc> + mouse_pos:glam::DVec2, screen_size:glam::UVec2, window:&'a winit::window::Window, physics_thread:crate::compat_worker::QNWorker<'a,TimedInstruction>, @@ -103,7 +103,7 @@ impl WindowContext<'_>{ "Z"|"z"=>Some(OtherInstruction::SetZoom(s)), "R"|"r"=>if s{ //mouse needs to be reset since the position is absolute - self.mouse=strafesnet_common::mouse::MouseState::default(); + self.mouse_pos=glam::DVec2::ZERO; Some(OtherInstruction::ResetAndRestart) }else{None}, "F"|"f"=>if s{Some(OtherInstruction::PracticeFly)}else{None}, @@ -126,7 +126,7 @@ impl WindowContext<'_>{ fn device_event(&mut self,time:SessionTime,event: winit::event::DeviceEvent){ match event{ winit::event::DeviceEvent::MouseMotion{ - delta,//these (f64,f64) are integers on my machine + delta, }=>{ if self.manual_mouse_lock{ match self.window.set_cursor_position(self.get_middle_of_screen()){ @@ -137,11 +137,10 @@ impl WindowContext<'_>{ //do not step the physics because the mouse polling rate is higher than the physics can run. //essentially the previous input will be overwritten until a true step runs //which is fine because they run all the time. - let delta=glam::ivec2(delta.0 as i32,delta.1 as i32); - self.mouse.pos+=delta; + self.mouse_pos+=glam::dvec2(delta.0,delta.1); self.physics_thread.send(TimedInstruction{ time, - instruction:PhysicsWorkerInstruction::Input(UnbufferedInstruction::MoveMouse(self.mouse.pos)), + instruction:PhysicsWorkerInstruction::Input(UnbufferedInstruction::MoveMouse(self.mouse_pos.as_ivec2())), }).unwrap(); }, winit::event::DeviceEvent::MouseWheel { @@ -174,7 +173,7 @@ pub fn worker<'a>( let graphics_thread=crate::graphics_worker::new(graphics,setup_context.config,setup_context.surface,setup_context.device,setup_context.queue); let mut window_context=WindowContext{ manual_mouse_lock:false, - mouse:strafesnet_common::mouse::MouseState::default(), + mouse_pos:glam::DVec2::ZERO, //make sure to update this!!!!! screen_size, window,