1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-12-09 18:04:35 +00:00

Merge branch 'feature/support-extra-gamepad-buttons' into 'master'

Add support for modern SDL controller buttons (Touchpad, Misc1, Paddles)

See merge request OpenMW/openmw!5017
This commit is contained in:
Alexei Kotov 2025-12-05 06:12:35 +03:00
commit e7b954a7b6
4 changed files with 31 additions and 0 deletions

View file

@ -546,6 +546,12 @@ namespace MWInput
return "textures/omw_psx_button_triangle.dds";
return "textures/omw_steam_button_y.dds";
case SDL_CONTROLLER_BUTTON_GUIDE:
case SDL_CONTROLLER_BUTTON_MISC1:
case SDL_CONTROLLER_BUTTON_PADDLE1:
case SDL_CONTROLLER_BUTTON_PADDLE2:
case SDL_CONTROLLER_BUTTON_PADDLE3:
case SDL_CONTROLLER_BUTTON_PADDLE4:
case SDL_CONTROLLER_BUTTON_TOUCHPAD:
default:
return {};
}

View file

@ -345,6 +345,13 @@ namespace MWLua
{ "DPadDown", SDL_CONTROLLER_BUTTON_DPAD_DOWN },
{ "DPadLeft", SDL_CONTROLLER_BUTTON_DPAD_LEFT },
{ "DPadRight", SDL_CONTROLLER_BUTTON_DPAD_RIGHT },
{ "Misc1", SDL_CONTROLLER_BUTTON_MISC1 },
{ "Paddle1", SDL_CONTROLLER_BUTTON_PADDLE1 },
{ "Paddle2", SDL_CONTROLLER_BUTTON_PADDLE2 },
{ "Paddle3", SDL_CONTROLLER_BUTTON_PADDLE3 },
{ "Paddle4", SDL_CONTROLLER_BUTTON_PADDLE4 },
{ "Touchpad", SDL_CONTROLLER_BUTTON_TOUCHPAD },
{ "Max", SDL_CONTROLLER_BUTTON_MAX },
}));
api["CONTROLLER_AXIS"] = LuaUtil::makeStrictReadOnly(LuaUtil::tableFromPairs<std::string_view, int>(lua,

View file

@ -33,12 +33,24 @@ namespace SDLUtil
return "Left Shoulder";
case SDL_CONTROLLER_BUTTON_LEFTSTICK:
return "Left Stick Button";
case SDL_CONTROLLER_BUTTON_MISC1:
return "Misc 1";
case SDL_CONTROLLER_BUTTON_PADDLE1:
return "Paddle 1";
case SDL_CONTROLLER_BUTTON_PADDLE2:
return "Paddle 2";
case SDL_CONTROLLER_BUTTON_PADDLE3:
return "Paddle 3";
case SDL_CONTROLLER_BUTTON_PADDLE4:
return "Paddle 4";
case SDL_CONTROLLER_BUTTON_RIGHTSHOULDER:
return "Right Shoulder";
case SDL_CONTROLLER_BUTTON_RIGHTSTICK:
return "Right Stick Button";
case SDL_CONTROLLER_BUTTON_START:
return "Start Button";
case SDL_CONTROLLER_BUTTON_TOUCHPAD:
return "Touchpad";
case SDL_CONTROLLER_BUTTON_X:
return "X Button";
case SDL_CONTROLLER_BUTTON_Y:

View file

@ -200,6 +200,12 @@
-- @field [parent=#CONTROLLER_BUTTON] #number DPadDown
-- @field [parent=#CONTROLLER_BUTTON] #number DPadLeft
-- @field [parent=#CONTROLLER_BUTTON] #number DPadRight
-- @field [parent=#CONTROLLER_BUTTON] #number Misc1
-- @field [parent=#CONTROLLER_BUTTON] #number Paddle1
-- @field [parent=#CONTROLLER_BUTTON] #number Paddle2
-- @field [parent=#CONTROLLER_BUTTON] #number Paddle3
-- @field [parent=#CONTROLLER_BUTTON] #number Paddle4
-- @field [parent=#CONTROLLER_BUTTON] #number Touchpad
---
-- Values that can be passed to onControllerButtonPress/onControllerButtonRelease engine handlers.