Parcourir la source

Fix device counting in HapticMouse and JoystickOpen routines. 0 is the first item in the list not the last

Edward Rudd il y a 11 ans
Parent
commit
a09548eb00

+ 3 - 3
src/haptic/darwin/SDL_syshaptic.c

@@ -199,7 +199,7 @@ HapticByDevIndex(int device_index)
 
     while (device_index > 0) {
         SDL_assert(item != NULL);
-        device_index--;
+        --device_index;
         item = item->next;
     }
 
@@ -571,7 +571,7 @@ SDL_SYS_HapticOpen(SDL_Haptic * haptic)
 int
 SDL_SYS_HapticMouse(void)
 {
-    int device_index = numhaptics-1;
+    int device_index = 0;
     SDL_hapticlist_item *item;
 
     for (item = SDL_hapticlist; item; item = item->next) {
@@ -579,7 +579,7 @@ SDL_SYS_HapticMouse(void)
             (item->usage == kHIDUsage_GD_Mouse)) {
             return device_index;
         }
-        device_index--;
+        ++device_index;
     }
 
     return -1;

+ 1 - 1
src/haptic/linux/SDL_syshaptic.c

@@ -202,7 +202,7 @@ HapticByDevIndex(int device_index)
 
     while (device_index > 0) {
         SDL_assert(item != NULL);
-        device_index--;
+        --device_index;
         item = item->next;
     }
 

+ 6 - 6
src/haptic/windows/SDL_syshaptic.c

@@ -442,7 +442,7 @@ HapticByDevIndex(int device_index)
 
     while (device_index > 0) {
         SDL_assert(item != NULL);
-        device_index--;
+        --device_index;
         item = item->next;
     }
 
@@ -784,7 +784,7 @@ int
 SDL_SYS_HapticMouse(void)
 {
     SDL_hapticlist_item *item;
-    int index = numhaptics-1;
+    int index = 0;
 
     /* Grab the first mouse haptic device we find. */
     for (item = SDL_hapticlist; item != NULL; item = item->next) {
@@ -792,7 +792,7 @@ SDL_SYS_HapticMouse(void)
         if (item->capabilities.dwDevType == DI8DEVCLASS_POINTER ) {
             return index;
         }
-        index--;
+        ++index;
     }
 
     return -1;
@@ -855,7 +855,7 @@ int
 SDL_SYS_HapticOpenFromJoystick(SDL_Haptic * haptic, SDL_Joystick * joystick)
 {
     SDL_hapticlist_item *item;
-    int index = numhaptics-1;
+    int index = 0;
 
     /* Since it comes from a joystick we have to try to match it with a haptic device on our haptic list. */
     if (joystick->hwdata->bXInputDevice) {
@@ -866,7 +866,7 @@ SDL_SYS_HapticOpenFromJoystick(SDL_Haptic * haptic, SDL_Joystick * joystick)
                 haptic->index = index;
                 return SDL_SYS_HapticOpenFromXInput(haptic, userid);
             }
-            index--;
+            ++index;
         }
     } else {
         HRESULT idret;
@@ -883,7 +883,7 @@ SDL_SYS_HapticOpenFromJoystick(SDL_Haptic * haptic, SDL_Joystick * joystick)
                 haptic->index = index;
                 return SDL_SYS_HapticOpenFromDevice8(haptic, joystick->hwdata->InputDevice, SDL_TRUE);
             }
-            index--;
+            ++index;
         }
     }