fixing inappropriate conversion and limiting mouse filter updates to low frequency mouses (removing negative acceleration)

git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@5030 e016b1c5-ed68-44aa-a2f7-31cac88cffde
This commit is contained in:
Rafael Barreto
2010-05-24 12:44:08 +00:00
parent 3980b07d44
commit 02da74afdf
+8 -4
View File
@@ -756,18 +756,22 @@ FVARP(mouseaccel, 0, 0, 1000);
FVARP(mfilter, 0.0f, 0.0f, 3.0f);
float fdx = 0, fdy = 0;
int mousemillis=0;
void mousemove(int dx, int dy)
void mousemove(int odx, int ody)
{
if(intermission) return;
if(player1->isspectating() && player1->spectatemode==SM_FOLLOW1ST) return;
float dx = odx, dy = ody;
float cursens = sensitivity;
if (mfilter>0.0) {
if ( mfilter > 0.0 && totalmillis < curtime * 2 + mousemillis ) {
float mousefilter=mfilter/curtime*14;
fdx = dx = ( fdx * mousefilter + dx )/( mousefilter + 1 );
fdy = dy = ( fdy * mousefilter + dy )/( mousefilter + 1 );
dx = fdx = ( fdx * mousefilter + dx )/( mousefilter + 1 );
dy = fdy = ( fdy * mousefilter + dy )/( mousefilter + 1 );
}
mousemillis=totalmillis;
if(mouseaccel && curtime && (dx || dy)) cursens += mouseaccel * sqrtf(dx*dx + dy*dy)/curtime;
cursens /= 33.0f*sensitivityscale;
camera1->yaw += dx*cursens;