From 56d5e327efa8c2a47b4368a0349d8b67aaddde8f Mon Sep 17 00:00:00 2001 From: ZackHasACat Date: Wed, 4 Dec 2024 20:13:23 -0600 Subject: [PATCH] Implement basic concept --- apps/openmw/mwinput/controllermanager.cpp | 4 ---- files/data/builtin.omwscripts | 2 +- .../scripts/omw/input/gamepadcontrols.lua | 19 +++++++++++++++++-- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/apps/openmw/mwinput/controllermanager.cpp b/apps/openmw/mwinput/controllermanager.cpp index 0c0a3de57c..234a8fd3e0 100644 --- a/apps/openmw/mwinput/controllermanager.cpp +++ b/apps/openmw/mwinput/controllermanager.cpp @@ -282,10 +282,6 @@ namespace MWInput case SDL_CONTROLLER_BUTTON_RIGHTSHOULDER: MWBase::Environment::get().getWindowManager()->injectKeyPress(MyGUI::KeyCode::Slash, 0, false); return true; - case SDL_CONTROLLER_BUTTON_LEFTSTICK: - mGamepadGuiCursorEnabled = !mGamepadGuiCursorEnabled; - MWBase::Environment::get().getWindowManager()->setCursorActive(mGamepadGuiCursorEnabled); - return true; default: return false; } diff --git a/files/data/builtin.omwscripts b/files/data/builtin.omwscripts index 37367783ab..7869d6ad8c 100644 --- a/files/data/builtin.omwscripts +++ b/files/data/builtin.omwscripts @@ -21,7 +21,7 @@ PLAYER: scripts/omw/input/playercontrols.lua PLAYER: scripts/omw/camera/camera.lua PLAYER: scripts/omw/input/actionbindings.lua PLAYER: scripts/omw/input/smoothmovement.lua -PLAYER: scripts/omw/input/gamepadcontrols.lua +MENU: scripts/omw/input/gamepadcontrols.lua NPC,CREATURE: scripts/omw/ai.lua # User interface diff --git a/files/data/scripts/omw/input/gamepadcontrols.lua b/files/data/scripts/omw/input/gamepadcontrols.lua index b55b806b4a..a9a7820835 100644 --- a/files/data/scripts/omw/input/gamepadcontrols.lua +++ b/files/data/scripts/omw/input/gamepadcontrols.lua @@ -1,12 +1,27 @@ local input = require('openmw.input') - +local ui = require("openmw.ui") return { interfaceName = 'GamepadControls', --- -- Gamepad control interface -- @module GamepadControls - + engineHandlers = { + onControllerButtonPress = function(id) + if id == input.CONTROLLER_BUTTON.LeftStick then + local gamePadActive = input._isGamepadCursorActive() + local options = { + showInDialog = false + } + if gamePadActive then + ui.showMessage("Gamepad Cursor active", options) + else + ui.showMessage("Gamepad Cursor inactive, Tab mode engaged", options) --temp + end + input._setGamepadCursorActive(not gamePadActive) + end + end + }, interface = { --- Interface version -- @field [parent=#GamepadControls] #number version