You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
4 years ago | |
|---|---|---|
| .. | ||
| devices | 4 years ago | |
| touch | 4 years ago | |
| README.md | 4 years ago | |
| axis_direction.cpp | 5 years ago | |
| axis_direction.h | 5 years ago | |
| controller.cpp | 4 years ago | |
| controller.h | 4 years ago | |
| controller_buttons.h | 5 years ago | |
| controller_motion.cpp | 4 years ago | |
| controller_motion.h | 4 years ago | |
| game_controls.cpp | 4 years ago | |
| game_controls.h | 4 years ago | |
| input.h | 4 years ago | |
| menu_controls.cpp | 4 years ago | |
| menu_controls.h | 5 years ago | |
| modifier_hints.cpp | 4 years ago | |
| modifier_hints.h | 4 years ago | |
| plrctrls.cpp | 4 years ago | |
| plrctrls.h | 4 years ago | |
| remap_keyboard.h | 5 years ago | |
README.md
Controls handling
DevilutionX supports mouse & keyboard and gamepad input.
This directory currently mostly handles gamepad input.
Low-level gamepad handling is abstracted and 3 implementations are provided:
-
SDL2 controller API.
-
SDL 1&2 joystick API.
This can be used in SDL1 joystick platforms and for mapping additional buttons not defined by SDL2 controller mappings (e.g. additional Nintendo Switch arrows).
-
Keyboard keys acting as controller buttons.
This can be used for testing, or on devices where this is the only or the easiest API to use (e.g. RetroFW).
Example keyboard-as-controller build flags:
cmake .. -DUSE_SDL1=ON -DHAS_KBCTRL=1 -DPREFILL_PLAYER_NAME=ON \
-DKBCTRL_BUTTON_DPAD_LEFT=SDLK_LEFT \
-DKBCTRL_BUTTON_DPAD_RIGHT=SDLK_RIGHT \
-DKBCTRL_BUTTON_DPAD_UP=SDLK_UP \
-DKBCTRL_BUTTON_DPAD_DOWN=SDLK_DOWN \
-DKBCTRL_BUTTON_X=SDLK_y \
-DKBCTRL_BUTTON_Y=SDLK_x \
-DKBCTRL_BUTTON_B=SDLK_a \
-DKBCTRL_BUTTON_A=SDLK_b \
-DKBCTRL_BUTTON_RIGHTSHOULDER=SDLK_RIGHTBRACKET \
-DKBCTRL_BUTTON_LEFTSHOULDER=SDLK_LEFTBRACKET \
-DKBCTRL_BUTTON_LEFTSTICK=SDLK_TAB \
-DKBCTRL_BUTTON_START=SDLK_RETURN \
-DKBCTRL_BUTTON_BACK=SDLK_LSHIFT