CVS: winex/dlls/dinput/mouse main.c,1.72,1.73

[email protected]
Newsgroups gmane.comp.emulators.winex.cvs
Message-ID <[email protected]>
Subject: winex/dlls/dinput/mouse main.c,1.72,1.73Update of /var/lib/cvsd/cvsroot/winex/dlls/dinput/mouse
In directory agravaine:/tmp/cvs-serv28593/dlls/dinput/mouse

Modified Files:
	main.c 
Log Message:
Rewrote an incorrect mouse sensitivity change, and cleaned up a little.


Index: main.c
===================================================================
RCS file: /var/lib/cvsd/cvsroot/winex/dlls/dinput/mouse/main.c,v
retrieving revision 1.72
retrieving revision 1.73
diff -u -d -r1.72 -r1.73
--- main.c	30 Mar 2007 22:06:20 -0000	1.72
+++ main.c	30 Mar 2007 22:07:12 -0000	1.73
@@ -535,6 +535,7 @@
         SetEvent(This->hEvent);
 
     if (wparam == WM_MOUSEMOVE) {
+	LONG dX = 0, dY = 0;
 	TRACE("input: X=%ld, Y=%ld\n", hook->pt.x, hook->pt.y);
 	if (!WARP_CONDITION(This)) {
 	  if (hook->flags & LLMHF_INJECTED) {
@@ -547,23 +548,25 @@
 	    This->prevY = hook->pt.y;
 	    goto end;
 	  } else {
-	    This->m_state.lX += (hook->pt.x - This->prevX);
-	    This->m_state.lY += (hook->pt.y - This->prevY);
+	    dX = (hook->pt.x - This->prevX) * defaultAbsoluteMouseSensitivity;
+	    dY = (hook->pt.y - This->prevY) * defaultAbsoluteMouseSensitivity;
+	    This->m_state.lX += dX;
+	    This->m_state.lY += dY;
+	    This->prevX = hook->pt.x;
+	    This->prevY = hook->pt.y;
 	  }
-	  if (hook->pt.x != This->prevX) {
+	  if (dX) {
 	    if (This->absolute)
-	      GEN_EVENT(This->offset_array[WINE_MOUSE_X_POSITION], This->m_state.lX * defaultAbsoluteMouseSensitivity, hook->time, (This->dinput->evsequence)++)
+	      GEN_EVENT(This->offset_array[WINE_MOUSE_X_POSITION], This->m_state.lX, hook->time, (This->dinput->evsequence)++)
 	    else
-	      GEN_EVENT(This->offset_array[WINE_MOUSE_X_POSITION], hook->pt.x - This->prevX, hook->time, (This->dinput->evsequence)++)
+	      GEN_EVENT(This->offset_array[WINE_MOUSE_X_POSITION], dX, hook->time, (This->dinput->evsequence)++)
 	  }
-	  if (hook->pt.y != This->prevY) {
+	  if (dY) {
 	    if (This->absolute)
-	      GEN_EVENT(This->offset_array[WINE_MOUSE_Y_POSITION], This->m_state.lY * defaultAbsoluteMouseSensitivity, hook->time, (This->dinput->evsequence)++)
+	      GEN_EVENT(This->offset_array[WINE_MOUSE_Y_POSITION], This->m_state.lY, hook->time, (This->dinput->evsequence)++)
 	    else
-	      GEN_EVENT(This->offset_array[WINE_MOUSE_Y_POSITION], hook->pt.y - This->prevY, hook->time, (This->dinput->evsequence)++)
+	      GEN_EVENT(This->offset_array[WINE_MOUSE_Y_POSITION], dY, hook->time, (This->dinput->evsequence)++)
 	  }
-	  This->prevX = hook->pt.x;
-	  This->prevY = hook->pt.y;
 	} else {
           int max_x, max_y;
           int min_x, min_y;
@@ -602,9 +605,13 @@
 	    goto end;
 	  }
 
-	  This->m_state.lX += hook->pt.x - This->prevX;
-	  This->m_state.lY += hook->pt.y - This->prevY;
-          
+	  dX = (hook->pt.x - This->prevX) * defaultAbsoluteMouseSensitivity;
+	  dY = (hook->pt.y - This->prevY) * defaultAbsoluteMouseSensitivity;
+	  This->m_state.lX += dX;
+	  This->m_state.lY += dY;
+	  This->prevX = hook->pt.x;
+	  This->prevY = hook->pt.y;
+
 #ifdef MOUSE_HACK
           if ((This->need_warp == WARP_DONE) &&
               (hook->pt.x == This->mapped_center.x) && (hook->pt.y == This->mapped_center.y))
@@ -615,18 +622,18 @@
           }
 #endif
 	  /* Relative mouse input with absolute mouse event : the real fun starts here... */
-	  if (hook->pt.x != This->prevX) {
+	  if (dX) {
 	    if (This->absolute)
-	      GEN_EVENT(This->offset_array[WINE_MOUSE_X_POSITION], This->m_state.lX * defaultAbsoluteMouseSensitivity, hook->time, (This->dinput->evsequence)++)
+	      GEN_EVENT(This->offset_array[WINE_MOUSE_X_POSITION], This->m_state.lX, hook->time, (This->dinput->evsequence)++)
 	    else
-	      GEN_EVENT(This->offset_array[WINE_MOUSE_X_POSITION], hook->pt.x - This->prevX, hook->time, (This->dinput->evsequence)++)
+	      GEN_EVENT(This->offset_array[WINE_MOUSE_X_POSITION], dX, hook->time, (This->dinput->evsequence)++)
 	    changed = TRUE;
 	  }
-	  if (hook->pt.y != This->prevY) {
+	  if (dY) {
 	    if (This->absolute)
-	      GEN_EVENT(This->offset_array[WINE_MOUSE_Y_POSITION], This->m_state.lY * defaultAbsoluteMouseSensitivity, hook->time, (This->dinput->evsequence)++)
+	      GEN_EVENT(This->offset_array[WINE_MOUSE_Y_POSITION], This->m_state.lY, hook->time, (This->dinput->evsequence)++)
 	    else
-	      GEN_EVENT(This->offset_array[WINE_MOUSE_Y_POSITION], hook->pt.y - This->prevY, hook->time, (This->dinput->evsequence)++)
+	      GEN_EVENT(This->offset_array[WINE_MOUSE_Y_POSITION], dY, hook->time, (This->dinput->evsequence)++)
 	    changed = TRUE;
 	  }
 	  if (changed) {
@@ -651,8 +658,6 @@
             This->abs_prev_point.x = hook->pt.x;
             This->abs_prev_point.y = hook->pt.y;
           }
-	  This->prevX = hook->pt.x;
-	  This->prevY = hook->pt.y;
           hook->pt.x = This->abs_pretend_point.x;
           hook->pt.y = This->abs_pretend_point.y;
 	}
@@ -742,15 +747,12 @@
     case WM_MOUSEWHEEL:
         wdata = (short)HIWORD(hook->mouseData);
         This->m_state.lZ += wdata;
-        if ( This->absolute ) {
+        if (This->absolute)
             GEN_EVENT(This->offset_array[WINE_MOUSE_Z_POSITION], This->m_state.lZ, 
-                      hook->time, This->dinput->evsequence++);
-        }
-        else {
+                      hook->time, This->dinput->evsequence++)
+        else
             GEN_EVENT(This->offset_array[WINE_MOUSE_Z_POSITION], wdata, 
-                      hook->time, This->dinput->evsequence++);
-        }
-
+                      hook->time, This->dinput->evsequence++)
         break;
     }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.