Gamepad GUI Mode: add (optional) native controller support to all menus [round 2]
This is a resubmission of !4710 (merged), which was approved, merged, and then rolled back.
First off, thank you so much for this project. It's amazing, and I'm so grateful for it!
Issue: Gamepad GUI Mode
This pull request is a fairly large change that adds controller support to the vanilla menus. I tried to change as little as possible and not stray from the vanilla menus. The goal was to make all of the menus fully navigable without having to use the controller mouse.
A brief overview:
- The change is behind an option in Settings > Interface tab called "Enable Controller Menus".
- Almost every menu* can be navigated entirely with the DPad, triggers, and buttons.
- Most button mappings are based on the Xbox version, but there are a few modernizations, like using R3 to show item info, similar to Oblivion Remastered.
- The current menu's buttons are shown in a bar at the bottom. For this, I created some simple icons based on Steam's naming conventions.
- The inventory menu has tabs for navigating between sub-menus (Map, Inventory, Magic, Stats) with L2/R2.
- L1/R1 are used to adjust the filters in inventory and barter menus.
- Tooltips can be toggled with R3 (like Oblivion Remastered). There's an option in the launcher to default the tooltips to on.
- It should not interfere with normal mouse usage.
- The settings in the Settings menu still need a mouse to edit settings, and some windows like the Stats window still use the mouse to show tooltips, but they can all be opened and closed using only controller buttons.
- New: The controller type (Xbox, PS, Switch, Steam) is autodetected and the button icons are updated to match. Steam is the default.
Here's a crude video demoing the change: https://youtu.be/70D8pgOU5Uo
This is a fairly broad change (though it's not especially complicated). I realize the merge request guidelines discourage large changes, so if you'd like me to do something differently, please let me know.