#include "gamepad.h" #include "GLFW/glfw3.h" #include "string.h" struct sw_gamepad sw_gamepads[SW_MAX_GAMEPADS]; void sw_gamepad_static_init() { memset(sw_gamepads, 0, sizeof(sw_gamepads)); } void sw_gamepad_tick() { i32 i, j; GLFWgamepadstate state; for(i = 0; i < SW_MAX_GAMEPADS; ++i) { if(glfwGetGamepadState(i, &state)) { for(j = 0; j < SW_MAX_GAMEPAD_AXES; ++j) { sw_gamepads[i].axes[j] = state.axes[j]; } for(j = 0; j < SW_MAX_GAMEPAD_BUTTONS; ++j) { bool down = state.buttons[j]; sw_gamepads[i].button_pressed = !sw_gamepads[i].button_pressed && down; sw_gamepads[i].button_down = down; } } } }