commit 4d81e42091de854a663142a94c8cfe859cf313f0
Author: Michael Day <contact@michaelcday.com>
AuthorDate: Wed Feb 7 21:22:06 2024 -0500
Commit: Michael Day <contact@michaelcday.com>
CommitDate: Thu Feb 8 09:22:04 2024 -0500
setup: Add "More controls" for new gamepad binds
---
src/setup/joystick.c | 31 +++++++++++++++++++++++++------
1 file changed, 25 insertions(+), 6 deletions(-)
diff --git a/src/setup/joystick.c b/src/setup/joystick.c
index 4c48f983..2edf1241 100644
--- a/src/setup/joystick.c
+++ b/src/setup/joystick.c
@@ -1186,6 +1186,28 @@ static void AdjustAnalog(TXT_UNCAST_ARG(widget), TXT_UNCAST_ARG(unused))
TXT_SetWidgetAlign(window, TXT_HORIZ_CENTER);
}
+static void MoreControls(TXT_UNCAST_ARG(widget), TXT_UNCAST_ARG(unused))
+{
+ txt_window_t *window;
+
+ window = TXT_NewWindow("Additional Gamepad/Joystick buttons");
+ TXT_SetTableColumns(window, 6);
+ TXT_SetColumnWidths(window, 18, 10, 1, 18, 10, 0);
+
+ AddJoystickControl(window, "Use artifact", &joybuseartifact);
+ AddJoystickControl(window, "Inventory left", &joybinvleft);
+ AddJoystickControl(window, "Inventory right", &joybinvright);
+ AddJoystickControl(window, "Fly up", &joybflyup);
+ AddJoystickControl(window, "Fly down", &joybflydown);
+ AddJoystickControl(window, "Fly center", &joybflycenter);
+
+ TXT_SetWindowAction(window, TXT_HORIZ_LEFT, NULL);
+ TXT_SetWindowAction(window, TXT_HORIZ_CENTER,
+ TXT_NewWindowEscapeAction(window));
+ TXT_SetWindowAction(window, TXT_HORIZ_RIGHT, NULL);
+ TXT_SetWidgetAlign(window, TXT_HORIZ_CENTER);
+}
+
void ConfigJoystick(TXT_UNCAST_ARG(widget), void *user_data)
{
txt_window_t *window;
@@ -1290,12 +1312,9 @@ void ConfigJoystick(TXT_UNCAST_ARG(widget), void *user_data)
if (gamemission == heretic || gamemission == hexen)
{
- AddJoystickControl(window, "Use artifact", &joybuseartifact);
- AddJoystickControl(window, "Inventory left", &joybinvleft);
- AddJoystickControl(window, "Inventory right", &joybinvright);
- AddJoystickControl(window, "Fly up", &joybflyup);
- AddJoystickControl(window, "Fly down", &joybflydown);
- AddJoystickControl(window, "Fly center", &joybflycenter);
+ TXT_AddWidget(window,
+ TXT_NewButton2("More controls...", MoreControls, NULL));
+ TXT_AddWidget(window, TXT_TABLE_EOL);
}
TXT_SignalConnect(joystick_button, "pressed", CalibrateJoystick, window);