Correctly index joysticks in internal state

This commit is contained in:
Humphrey Shotton 2019-01-22 21:37:15 +00:00
parent 9e0f11abbb
commit a46f6f6cf4
1 changed files with 7 additions and 5 deletions

View File

@ -25,6 +25,8 @@ const (
Joystick14 = Joystick(glfw.Joystick14) Joystick14 = Joystick(glfw.Joystick14)
Joystick15 = Joystick(glfw.Joystick15) Joystick15 = Joystick(glfw.Joystick15)
Joystick16 = Joystick(glfw.Joystick16) Joystick16 = Joystick(glfw.Joystick16)
JoystickLast = Joystick(glfw.JoystickLast)
) )
// JoystickPresent returns if the joystick is currently connected. // JoystickPresent returns if the joystick is currently connected.
@ -90,7 +92,7 @@ func (w *Window) JoystickAxis(js Joystick, axis int) float64 {
// Used internally during Window.UpdateInput to update the state of the joysticks. // Used internally during Window.UpdateInput to update the state of the joysticks.
func (w *Window) updateJoystickInput() { func (w *Window) updateJoystickInput() {
for js := Joystick1; js < Joystick16; js++ { for js := Joystick1; js <= Joystick16; js++ {
// Determine and store if the joystick was connected // Determine and store if the joystick was connected
joystickPresent := glfw.JoystickPresent(glfw.Joystick(js)) joystickPresent := glfw.JoystickPresent(glfw.Joystick(js))
w.tempJoy.connected[js] = joystickPresent w.tempJoy.connected[js] = joystickPresent
@ -118,10 +120,10 @@ func (w *Window) updateJoystickInput() {
} }
type joystickState struct { type joystickState struct {
connected [Joystick16]bool connected [Joystick16 + 1]bool
name [Joystick16]string name [Joystick16 + 1]string
buttons [Joystick16][]byte buttons [Joystick16 + 1][]byte
axis [Joystick16][]float32 axis [Joystick16 + 1][]float32
} }
// Returns if a button on a joystick is down, returning false if the button or joystick is invalid. // Returns if a button on a joystick is down, returning false if the button or joystick is invalid.