Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create a "Gamepad Mode" UI #6

Open
DavidJCobb opened this issue Mar 22, 2019 · 0 comments
Open

Create a "Gamepad Mode" UI #6

DavidJCobb opened this issue Mar 22, 2019 · 0 comments
Labels
enhancement New feature or request

Comments

@DavidJCobb
Copy link
Owner

One of my pipe dreams for this mod was a gamepad-oriented UI that used the native gamepad assets. This proved to be impractical for two main reasons: the systems Zenimax used to process gamepad input rely on protected functions and don't use CallSecureProtected, so any attempt to use their singletons throws an exception; and their various templates and widgets are... complicated.

During development, I created a prototype system for capturing and dispatching gamepad input; the design was inspired by TES4 Oblivion's keyboard-navigation system, which I reverse-engineered a year or so ago. The system relies on an action layer for intercepting buttons, and a frame handler for intercepting joystick movement. The system worked well enough for allowing me to navigate between controls that had no complex behaviors; the system's design should also enable widgets to perform custom handling as needed (i.e. for moving within a WScrollSelectList or WCombobox).

It may be worthwhile to spend some time on building basic widgets -- panes, windows, and such -- using the stock gamepad textures. It could also be a good opportunity to figure out how animations work in ESO's UI system.

@DavidJCobb DavidJCobb added the enhancement New feature or request label Mar 22, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant