X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=src%2Fvg%2Fvg_input.h;h=bbc2f84dad13c5dc43e86586044eb1eaa7d7c169;hb=c9d41059e232eabbcfebc2d7401a2b617a20f630;hp=4818d52ab099c3aa10813e93104522cdc00f7eb9;hpb=a153af7a16d9d4f81e9ebe4cfb2c99a028755189;p=vg.git diff --git a/src/vg/vg_input.h b/src/vg/vg_input.h index 4818d52..bbc2f84 100644 --- a/src/vg/vg_input.h +++ b/src/vg/vg_input.h @@ -122,6 +122,12 @@ int get_button_cross_device( int const id ) void vg_update_inputs(void) { + if( !glfwGetGamepadState( GLFW_JOYSTICK_1, &vg_gamepad) ) + { + vg_gamepad_ready = 0; + } + + /* Update button inputs */ for( int i = 0; i < vg_list_size( vg_button_binds ); i ++ ) { @@ -142,15 +148,28 @@ void vg_update_inputs(void) for( int i = 0; i < vg_list_size( vg_axis_binds ); i ++ ) { struct axis_binding *binding = vg_axis_binds + i; - - if( vg_input_mode == k_EInputMode_pc ) - { - binding->value = get_button_cross_device( binding->positive ); - binding->value -= get_button_cross_device( binding->negative ); - } - else - { - binding->value = vg_gamepad.axes[ binding->bind ]; - } + binding->value = vg_gamepad.axes[ binding->bind ]; } } + +static void vg_gamepad_init(void) +{ + for( int id = 0; id <= GLFW_JOYSTICK_LAST; id ++ ) + { + if( glfwJoystickPresent( id ) ) + { + vg_info( "Joystick found: '%s'\n", glfwGetJoystickName(id) ); + } + + if( glfwJoystickIsGamepad( id ) ) + { + vg_gamepad_name = glfwGetGamepadName( id ); + vg_success( "Gamepad with mapping registered: %s\n", vg_gamepad_name ); + + vg_gamepad_ready = 1; + vg_gamepad_id = id; + + break; + } + } +}