Commit graph

64 commits

Author SHA1 Message Date
Sally Coolatta
4cc5fe942d Save/Load menu: Add delete bind for gamepads 2025-07-30 12:56:06 -03:00
Boondorl
4acc5f2a7d Lock down MessageBox handler 2025-07-28 14:36:54 -03:00
Marcus Minhorst
05f19f4ac0 Fixed oob array access when using m_use_mouse=1 2025-07-27 17:33:44 -03:00
Marcus Minhorst
9a6569a916 Added option to disable sound when moving cursor by hovering. 2025-07-27 17:33:44 -03:00
Marcus Minhorst
cbe710b549 Added option to disable sound when moving cursor by using scrollwheel. 2025-07-27 17:33:44 -03:00
Boondorl
12fac42bab Mark appropriate voidptr fields as readonly 2025-07-27 03:56:33 -04:00
Boondorl
66c5beccbd Added UUID for game sessions
Allows the SavegameManager to destroy all saves related to the current UUID session so hardcore mods can enforce this safely instead of needing to go nuclear.
2025-07-26 11:43:59 -03:00
Marcus Minhorst
79855337c8 Fixed oob array access 2025-07-17 23:24:45 -03:00
Marcus Minhorst
b40af0c923 Add hideInsteadOfGraying bool 2025-07-15 00:16:06 -03:00
Marcus Minhorst
6b22be3e28 Expose visible flag to menudef 2025-07-15 00:16:06 -03:00
Marcus Minhorst
32cf838ecf Added Home/End menu binds 2025-07-12 22:33:02 -03:00
Marcus Minhorst
bef78dbe19 Scrolling now makes sound if cursor moves 2025-07-12 22:33:02 -03:00
Marcus Minhorst
37ba8a6a4d Refactored. Scrolling no longer always moves cursor 2025-07-12 22:33:02 -03:00
Marcus Minhorst
2923afc99a Refactored. Scrolling now jumps 2 items again 2025-07-12 22:33:02 -03:00
Marcus Minhorst
23b69769e8 Fixed optionmenu regression
Option menu would index into a negative item if natigating up and wrapping
around in a menu with exactly N items where only N items can be displayed.
2025-07-11 17:47:16 -03:00
Marcus Minhorst
5810faec1d Removed debug printout 2025-07-08 10:11:28 -03:00
Marcus Minhorst
33b22d99da Implemented saving, ccmd, and options menu 2025-07-08 10:11:28 -03:00
Marcus Minhorst
8182c02947 Added ability to set visibility of menu options 2025-07-07 14:18:16 -03:00
Marcus Minhorst
0f72a671fc Revert "Gamepad Improvements"
This reverts commit 2a5cce543b.
2025-07-06 20:40:03 -03:00
Marcus Minhorst
2a5cce543b
Gamepad Improvements
* Cleanup: Alignment, long lines, Replace 0 with SDLK_UNKNOWN

* Gamecontroller api analogue input

* Added some button handling

* Added mapping for other buttons

* Added trigger events

* Added force_joystick flag

* Removed force_joystick flag

Rationale:
1. It was actually broken lol
2. I cannot think of a case where enabling this would be a useful thing for
gzdoom. If the user is using a gamecontroller, it is pointless. If they are
not using a gamecontroller, it will just default to using the joystick api.
If they are not using a gamecontroller, but SDL thinks they are, it is an
SDL bug, and will be reported and fixed

* Modified default mapping

* Added analogue to digital threshold

* Added analogue response curve

* Per axis settings

* Fixed controller reconnect

* Added threshold and curve to IJoystickConfig
Enabled saving of settings

* Added stubs

* Cleanup

Constants are no longer defines.
Constants are mostly shared between backends.
Moved some logic to m_joy

* Implemented xinput stubs

* Implemented dinput stubs

* Implemented ps2 stubs (untested)

* Fixed inclusive check

* Implemented osx stubs (untested)

* Fixed curve implementation

No longer savable, I screwed the curve function up.
I though it needed 2 control points, but it needs 4.
Need to re-do controller settings :(

* Now using CubicBezier struct

* Fixed SetDefaultConfig to match xinput behavior

* Expanded gamepad CCMD

* Rename enum JoyResponseCurve to EJoyCurve

* Initial menu implementation

* Fixed SDL controller setting saving

* SDL gamepads can now actually be disabled

* Fixed initial controller connect of some versions of SDL

* Spelling error

* Enable gamepad by default

* Fixed segfault on some versions of SDL

* Only block keydown
2025-07-05 17:41:40 -03:00
DyNaM1Kk
5e35ebc8fe Added two option menu items for double binds
1. DoubleTapControl: Simply assigns a double-tap key to a command.
2. DoubleControl: Assigns a standard key press to a command and uses the same key to make a double-tap bind to the second specified command.
2025-06-04 08:48:16 -03:00
Ricardo Luís Vaz Silva
7bdffa2592 fix OptionMenuItemCommand::DoCommand for new 4.15 keyword 2025-02-20 05:21:45 -03:00
Chris Cowan
c8fbe43dc0 Fix load/save menus not starting scrolled to the selected entry
Fixes https://github.com/ZDoom/gzdoom/issues/2645
2024-09-16 17:25:19 -04:00
Chris Cowan
faead1c733 Fix bug where down arrow does nothing after clicking the main menu
This issue was previously fixed in 0c2ed71cdd, but that change added a bug that would trigger an infinite loop on scrolling in a list without any selectable items. Then 4fdbe81a13 restored the old behavior, reintroducing the issue.

This new fix does handle lists without any selectable items correctly.
2024-09-16 16:40:43 -04:00
Ricardo Luís Vaz Silva
1655f7e3b7 Allow XInput joysticks to work while the game is unfocused 2024-08-09 18:04:51 -03:00
jekyllgrim
861a557d92 Add graycheckVal, expose hud_oldscale/hud_scalefactor to the menu
Add graycheckVal to OptionMenu items
Add menu elements for hud_oldscale and hud_scalefactor to menudef.txt
2024-04-26 21:37:01 -03:00
nashmuhandes
cf4841c7de Allow the Joy2 button to cancel binding a key in the controls menu 2024-02-02 13:14:00 +01:00
jekyllgrim
9712409f08 Fixed missing lines in listmenuitems 2024-01-30 14:46:22 -05:00
jekyllgrim
decaf07637 Add CenterText MENUDEF flag 2024-01-29 15:21:49 -05:00
jekyllgrim
f8653c36d0 Implemented mGrayCheck and isGrayed() in OptionMenuItem 2023-12-30 08:42:01 +01:00
jekyllgrim
cebf37b3fa Add graycheck to colorpicker 2023-12-30 08:42:01 +01:00
jekyllgrim
4273af8004 Minor formatting fix 2023-12-28 17:13:07 +01:00
jekyllgrim
be96d8d906 Added DI_ITEM_LEFT_CENTER and DI_ITEM_RIGHT_CENTER
This is just a small consistency fix: DI_SCREEN_LEFT_CENTER and DI_SCREEN_RIGHT_CENTER exist, so, logically, similar combo flags should exist for DI_ITEM as well.
2023-12-28 17:13:07 +01:00
Gutawer
44d134298a - add support for not localizing some text functions, and modify menu text fields to use this 2023-09-14 23:24:42 +02:00
Ricardo Luís Vaz Silva
d0a955fef0 Allow disabling colors for NameAllKeys 2023-09-01 18:25:22 +02:00
makise-homura
357d846b7a Allow custom MessageBox menu selector
GZDoom used to have hardcoded MessageBox menu selector, 0x0d character
of console font, while the other menu is displayed is SmallFont.
It looked too ugly if SmallFont and ConFont heights are different,
and also there was no method of modifying the selector.

Now, the selector is 0x0d from SmallFont, if SmallFont contains this glyph
(its height is greater than zero), otherwise it falls back to previous
behavior (using ConFont as a source of this glyph).

To define custom MessageBox menu selector, just define 0x0d glyph for
SmallFont, and it will be displayed in the menu.

The gap between selector and menu options text is 3 pixels (as before), and
if you wish to enlarge this gap, just add some transparent columns at the
right side of 0x0d glyph.
2023-08-02 00:37:33 -04:00
Ricardo Luís Vaz Silva
0192392256 Individual Joystick Enable/Disable Toggles 2023-08-02 00:37:24 -04:00
Christoph Oelckers
1e5e65546d Revert "- add support for not localizing some text functions, and modify menu text fields to use this"
This reverts commit 91d3c4b606.

This completely breaks the menus, so it needs to go.
2022-12-04 08:13:04 +01:00
Gutawer
91d3c4b606 - add support for not localizing some text functions, and modify menu text fields to use this 2022-12-03 23:30:38 +01:00
Ricardo Luís Vaz Silva
58a64e4f5d Remove leftover variable in CustomMessageBox 2022-11-25 00:39:35 +01:00
Boondorl
f322792783 Added animation support for OptionMenus
Adds Animated and AnimatedTransition MENUDEF instructions for OptionMenus. Added DontDim and DontBlur MENUDEF instructions for all menus.
2022-11-25 00:39:05 +01:00
Ricardo Luís Vaz Silva
0f7e7744b0 CustomMessageBox Formatting 2022-11-18 07:42:45 +01:00
Ricardo Luís Vaz Silva
724b89bb1d CustomMessageBox 2022-11-18 07:42:45 +01:00
Christoph Oelckers
3563c99ead - made adjustments for proper int type promotion to allow internal ZScript to compile with it on.
* Emit a warning when relational comparisons are made between signed and unsigned ints.
* Handle shift operators so that they do not fail for constant definitions.
* changed return type of Array::Size() to signed int as most code out there is using it this way and would otherwise drown in warnings.
* fixed a few deprecation warnings.
2022-08-03 10:26:29 +02:00
Alexander Kromm
46d9564507 localize "Unknown" option menu string 2022-07-30 17:54:19 +02:00
Christoph Oelckers
c62e14d2c1 - Backend update from Raze
Mostly cleanup and better separation of game/backend concerns.
2022-06-06 12:09:29 +02:00
Alexander Kromm
ea007f56f2 fix scrolling when selecting item by key 2022-06-02 19:49:39 +02:00
Alexander Kromm
5cced2721a scroll if item selected by menu shortcut is out of screen 2022-05-31 10:00:56 +02:00
Alexander Kromm
38fcfa5ba9 get rid of unnecessary string conversions in option menu shortcuts 2022-05-31 10:00:56 +02:00
Alexander Kromm
7eb12fa9fb implement jumps in option menus
Enables shortcuts for option menus. Press a key to immediately jump to the next
option menu entry which starts with this key. Hold Alt to jump backwards.
Compatible with localized menus (checked on Russian).
2022-05-31 10:00:56 +02:00