From 20c5bc38cf641249793a7dab23fada87c7f52873 Mon Sep 17 00:00:00 2001 From: Tim Angus Date: Fri, 14 Oct 2005 22:58:28 +0000 Subject: [PATCH] * Removed hard coded mouse acceleration in the unix build(s) * Added CVAR_ROM cl_platformSensitivity to normalise the scale of cl_sensitivity across platforms --- code/client/cl_input.c | 3 ++- code/client/cl_main.c | 2 ++ code/client/client.h | 1 + code/unix/linux_glimp.c | 22 ++++++---------------- code/unix/sdl_glimp.c | 6 ++---- 5 files changed, 13 insertions(+), 21 deletions(-) diff --git a/code/client/cl_input.c b/code/client/cl_input.c index 06266eb8..a58f67af 100644 --- a/code/client/cl_input.c +++ b/code/client/cl_input.c @@ -435,7 +435,8 @@ void CL_MouseMove( usercmd_t *cmd ) { cl.mouseDy[cl.mouseIndex] = 0; rate = sqrt( mx * mx + my * my ) / (float)frame_msec; - accelSensitivity = cl_sensitivity->value + rate * cl_mouseAccel->value; + accelSensitivity = ( cl_sensitivity->value * + cl_platformSensitivity->value ) + rate * cl_mouseAccel->value; // scale by FOV accelSensitivity *= cl.cgameSensitivity; diff --git a/code/client/cl_main.c b/code/client/cl_main.c index d890275d..f3405b48 100644 --- a/code/client/cl_main.c +++ b/code/client/cl_main.c @@ -48,6 +48,7 @@ cvar_t *cl_forceavidemo; cvar_t *cl_freelook; cvar_t *cl_sensitivity; +cvar_t *cl_platformSensitivity; cvar_t *cl_mouseAccel; cvar_t *cl_showMouseRate; @@ -2307,6 +2308,7 @@ void CL_Init( void ) { cl_run = Cvar_Get ("cl_run", "1", CVAR_ARCHIVE); cl_sensitivity = Cvar_Get ("sensitivity", "5", CVAR_ARCHIVE); + cl_platformSensitivity = Cvar_Get ("cl_platformSensitivity", "1.0", CVAR_ROM); cl_mouseAccel = Cvar_Get ("cl_mouseAccel", "0", CVAR_ARCHIVE); cl_freelook = Cvar_Get( "cl_freelook", "1", CVAR_ARCHIVE ); diff --git a/code/client/client.h b/code/client/client.h index 13986195..eace49ce 100644 --- a/code/client/client.h +++ b/code/client/client.h @@ -330,6 +330,7 @@ extern cvar_t *cl_run; extern cvar_t *cl_anglespeedkey; extern cvar_t *cl_sensitivity; +extern cvar_t *cl_platformSensitivity; extern cvar_t *cl_freelook; extern cvar_t *cl_mouseAccel; diff --git a/code/unix/linux_glimp.c b/code/unix/linux_glimp.c index a5a9fe00..028a810b 100644 --- a/code/unix/linux_glimp.c +++ b/code/unix/linux_glimp.c @@ -573,14 +573,8 @@ static void HandleEvents(void) { if (in_dgamouse->value) { - if (abs(event.xmotion.x_root) > 1) - mx += event.xmotion.x_root * 2; - else - mx += event.xmotion.x_root; - if (abs(event.xmotion.y_root) > 1) - my += event.xmotion.y_root * 2; - else - my += event.xmotion.y_root; + mx += event.xmotion.x_root; + my += event.xmotion.y_root; if (t - mouseResetTime > MOUSE_RESET_DELAY ) { Sys_QueEvent( t, SE_MOUSE, mx, my, 0, NULL ); @@ -604,14 +598,8 @@ static void HandleEvents(void) dx = ((int)event.xmotion.x - mwx); dy = ((int)event.xmotion.y - mwy); - if (abs(dx) > 1) - mx += dx * 2; - else - mx += dx; - if (abs(dy) > 1) - my += dy * 2; - else - my += dy; + mx += dx; + my += dy; mwx = event.xmotion.x; mwy = event.xmotion.y; @@ -1725,6 +1713,8 @@ void IN_Init(void) { in_joystickDebug = Cvar_Get ("in_debugjoystick", "0", CVAR_TEMP); joy_threshold = Cvar_Get ("joy_threshold", "0.15", CVAR_ARCHIVE); // FIXME: in_joythreshold + Cvar_Set( "cl_platformSensitivity", "2.0" ); + if (in_mouse->value) mouse_avail = qtrue; else diff --git a/code/unix/sdl_glimp.c b/code/unix/sdl_glimp.c index 2724811b..81855f7f 100644 --- a/code/unix/sdl_glimp.c +++ b/code/unix/sdl_glimp.c @@ -320,10 +320,6 @@ static void HandleEvents(void) case SDL_MOUSEMOTION: if (mouse_active) { - if (abs(e.motion.xrel) > 1) - e.motion.xrel *= 2; - if (abs(e.motion.yrel) > 1) - e.motion.yrel *= 2; Sys_QueEvent( t, SE_MOUSE, e.motion.xrel, e.motion.yrel, 0, NULL ); } break; @@ -1204,6 +1200,8 @@ void IN_Init(void) { in_joystickDebug = Cvar_Get ("in_debugjoystick", "0", CVAR_TEMP); joy_threshold = Cvar_Get ("joy_threshold", "0.15", CVAR_ARCHIVE); // FIXME: in_joythreshold + Cvar_Set( "cl_platformSensitivity", "2.0" ); + if (in_mouse->value) mouse_avail = qtrue; else