From 2c3fdb5eee5e91a04d0952a7633070d7606b1e46 Mon Sep 17 00:00:00 2001 From: Alibek Omarov Date: Wed, 8 Apr 2026 09:50:13 +0500 Subject: [PATCH] engine: client: in_joy: clear gyro data after each FinalizeMove, only take data when calibration status is set to calibrated --- engine/client/in_joy.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/engine/client/in_joy.c b/engine/client/in_joy.c index da627ed3..a213b9c0 100644 --- a/engine/client/in_joy.c +++ b/engine/client/in_joy.c @@ -301,7 +301,7 @@ Append movement from axis. Called everyframe */ void Joy_FinalizeMove( float *fw, float *side, float *dpitch, float *dyaw ) { - if( !Joy_IsActive() ) + if( !Joy_IsActive( )) return; if( FBitSet( joy_axis_binding.flags, FCVAR_CHANGED ) ) @@ -331,7 +331,7 @@ void Joy_FinalizeMove( float *fw, float *side, float *dpitch, float *dyaw ) *dpitch += joy_pitch.value * (float)joyaxis[JOY_AXIS_PITCH].val/(float)SHRT_MAX * host.realframetime; *dyaw -= joy_yaw.value * (float)joyaxis[JOY_AXIS_YAW ].val/(float)SHRT_MAX * host.realframetime; - if( joy_have_gyro.value ) + if( joy_have_gyro.value && (int)joy_calibrated.value == JOY_CALIBRATED ) { float pitch_speed = joy_gyro_speed[0] * ( 180.0f / M_PI ); float yaw_speed = joy_gyro_speed[1] * ( 180.0f / M_PI ); @@ -341,6 +341,8 @@ void Joy_FinalizeMove( float *fw, float *side, float *dpitch, float *dyaw ) *dyaw += joy_gyro_yaw.value * yaw_speed * host.realframetime; *dyaw += joy_gyro_roll.value * roll_speed * host.realframetime; } + + VectorClear( joy_gyro_speed ); } static void Joy_CalibrateGyro_f( void )