Controller.cpp 1.9 KB

123456789101112131415161718192021222324252627282930313233
  1. #include "input/Controller.h"
  2. Controller::Controller(Buttons& bs)
  3. : list(bs.get()), a(bs.add(GLFW_KEY_A, "A")), b(bs.add(GLFW_KEY_S, "B")), x(bs.add(GLFW_KEY_X, "X")),
  4. y(bs.add(GLFW_KEY_Z, "Y")), l(bs.add(GLFW_KEY_Q, "L")), r(bs.add(GLFW_KEY_W, "R")),
  5. start(bs.add(GLFW_KEY_E, "Start")), select(bs.add(GLFW_KEY_D, "Select")), left(bs.add(GLFW_KEY_LEFT, "Left")),
  6. right(bs.add(GLFW_KEY_RIGHT, "Right")), up(bs.add(GLFW_KEY_UP, "Up")), down(bs.add(GLFW_KEY_DOWN, "Down")) {
  7. bs.mapGamepadButton(a, GLFW_GAMEPAD_BUTTON_A);
  8. bs.mapGamepadButton(b, GLFW_GAMEPAD_BUTTON_B);
  9. bs.mapGamepadButton(x, GLFW_GAMEPAD_BUTTON_X);
  10. bs.mapGamepadButton(y, GLFW_GAMEPAD_BUTTON_Y);
  11. bs.mapGamepadButton(l, GLFW_GAMEPAD_BUTTON_LEFT_BUMPER);
  12. bs.mapGamepadButton(r, GLFW_GAMEPAD_BUTTON_RIGHT_BUMPER);
  13. bs.mapGamepadButton(select, GLFW_GAMEPAD_BUTTON_BACK);
  14. bs.mapGamepadButton(start, GLFW_GAMEPAD_BUTTON_START);
  15. bs.mapGamepadButton(select, GLFW_GAMEPAD_BUTTON_LEFT_THUMB);
  16. bs.mapGamepadButton(start, GLFW_GAMEPAD_BUTTON_RIGHT_THUMB);
  17. bs.mapGamepadButton(up, GLFW_GAMEPAD_BUTTON_DPAD_UP);
  18. bs.mapGamepadButton(right, GLFW_GAMEPAD_BUTTON_DPAD_RIGHT);
  19. bs.mapGamepadButton(down, GLFW_GAMEPAD_BUTTON_DPAD_DOWN);
  20. bs.mapGamepadButton(left, GLFW_GAMEPAD_BUTTON_DPAD_LEFT);
  21. bs.mapGamepadAxis(left, -0.5f, GLFW_GAMEPAD_AXIS_LEFT_X);
  22. bs.mapGamepadAxis(right, 0.5f, GLFW_GAMEPAD_AXIS_LEFT_X);
  23. bs.mapGamepadAxis(left, -0.5f, GLFW_GAMEPAD_AXIS_RIGHT_X);
  24. bs.mapGamepadAxis(right, 0.5f, GLFW_GAMEPAD_AXIS_RIGHT_X);
  25. bs.mapGamepadAxis(up, -0.5f, GLFW_GAMEPAD_AXIS_LEFT_Y);
  26. bs.mapGamepadAxis(down, 0.5f, GLFW_GAMEPAD_AXIS_LEFT_Y);
  27. bs.mapGamepadAxis(up, -0.5f, GLFW_GAMEPAD_AXIS_RIGHT_Y);
  28. bs.mapGamepadAxis(down, 0.5f, GLFW_GAMEPAD_AXIS_RIGHT_Y);
  29. bs.mapGamepadAxis(l, 0.1f, GLFW_GAMEPAD_AXIS_LEFT_TRIGGER);
  30. bs.mapGamepadAxis(r, 0.1f, GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER);
  31. }