Fix invalid ranges for gamepad axis sources
Buttons and hat bits were mapped to [0,1] instead of [-1,1].
Fixes #1293.
diff --git a/src/input.c b/src/input.c
index 7ee4281..680de6e 100644
--- a/src/input.c
+++ b/src/input.c
@@ -1286,9 +1286,11 @@
const unsigned int bit = e->index & 0xf;
if (js->hats[hat] & bit)
state->axes[i] = 1.f;
+ else
+ state->axes[i] = -1.f;
}
else if (e->type == _GLFW_JOYSTICK_BUTTON)
- state->axes[i] = (float) js->buttons[e->index];
+ state->axes[i] = js->buttons[e->index] * 2.f - 1.f;
}
return GLFW_TRUE;