From d557dde0435323c3d1c624b93b00b8448157884f Mon Sep 17 00:00:00 2001 From: Lee Salzman Date: Sun, 10 Jan 2010 06:11:40 +0000 Subject: [PATCH] different accel algorithm git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@4758 e016b1c5-ed68-44aa-a2f7-31cac88cffde --- source/src/physics.cpp | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/source/src/physics.cpp b/source/src/physics.cpp index 98d79e46..aed6c563 100644 --- a/source/src/physics.cpp +++ b/source/src/physics.cpp @@ -743,23 +743,16 @@ void fixcamerarange(physent *cam) FVARP(sensitivity, 1e-3f, 3.0f, 1000.0f); FVARP(sensitivityscale, 1e-3f, 1, 1000); VARP(invmouse, 0, 0, 1); -FVARP(mouseaccel, 0, 0, 1000); -FVARP(mouseaccelmax, 0, 0, 1000); -FVARP(mouseaccelrate, 0, 5, 10000); +FVARP(mouseaccel, 0, 0, 10); void mousemove(int dx, int dy) { if(intermission) return; if(player1->isspectating() && player1->spectatemode==SM_FOLLOW1ST) return; - float cursens = sensitivity/(33.0f*sensitivityscale); // try match quake sens - if(mouseaccel && mouseaccelrate && curtime && (dx || dy)) - { - float dist = (dx*dx + dy*dy)/mouseaccelrate, - accel = 1 + pow(dist/curtime, mouseaccel)/dist; - if(mouseaccelmax) accel = min(accel, mouseaccelmax); - cursens *= accel; - } + float cursens = sensitivity; + if(mouseaccel && curtime && (dx || dy)) cursens += mouseaccel * sqrtf(dx*dx + dy*dy)/curtime; + cursens /= 33.0f*sensitivityscale; camera1->yaw += dx*cursens; camera1->pitch -= dy*cursens*(invmouse ? -1 : 1); fixcamerarange();