fixed the config bug where it'd always put in some weird axis (d1x r1.3)
authorBradley Bell <btb@icculus.org>
Thu, 20 May 2004 23:10:17 +0000 (23:10 +0000)
committerBradley Bell <btb@icculus.org>
Thu, 20 May 2004 23:10:17 +0000 (23:10 +0000)
ChangeLog
arch/win32/joyhh.c

index 19aafce..97cb9ac 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,10 @@
 2004-05-20  Matthew Mueller  <donut@dakotacom.net>
 
+       * arch/win32/joyhh.c: fixed the config bug where it'd always put
+       in some weird axis (d1x r1.3)
+
        * arch/win32/init.c: set win32 icon to icon from resource file
+       (d1x r1.4)
 
        * arch/win32/key.c: win32: fixed space key not working in messages
        (d1x r1.2)
index 56d4bca..e2c4fe8 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: joyhh.c,v 1.3 2004-05-20 19:02:57 btb Exp $ */
+/* $Id: joyhh.c,v 1.4 2004-05-20 23:10:17 btb Exp $ */
 //JOYC.C for D1_3Dfx and D1OpenGL
 //D1_3Dfx is a Win32 executable using Glide and DirectX 3
 //D1OpenGL is a Win32 executable using OpenGL and DirectX 3
@@ -186,7 +186,7 @@ ubyte joystick_read_raw_axis( ubyte mask, int * axis )
        if (!joy_installed) {
                return 0;
        }
-       
+
        memset(&joy, 0, sizeof(joy));
        joy.dwSize = sizeof(joy);
        joy.dwFlags = JOY_RETURNALL | JOY_USEDEADZONE;
@@ -370,6 +370,9 @@ int joy_get_scaled_reading( int raw, int axn )
    if ( joystick.axis_max[axn] - joystick.axis_center[axn] < 128 )
     return 0; //HH: had to increase to 128
 
+       if (!(joystick.present_mask & (1 << axn)))
+               return 0; // fixes joy config bug where it'll always set an axis you don't even have. - 2000/01/14 Matt Mueller
+
   raw -= joystick.axis_center[axn];
 
    if ( raw < 0 )