Commit graph

4,903 commits

Author SHA1 Message Date
Boondorl
b6b3c311e1 Export DecalBase
Allows setting this between Actors with type safety. Now also serializes these fields.
2025-07-28 15:24:04 -03:00
Boondorl
4acc5f2a7d Lock down MessageBox handler 2025-07-28 14:36:54 -03:00
Boondorl
a4ed63033e Fixed quick save rotator breaking save logic
The game should only ever save during the gameplay loop and never on the spot. Also fixes the quick save rotator skipping certain checks.
2025-07-28 02:50:10 -04:00
nashmuhandes
21ba4e6ab0 Add missing item tags for items in Doom and Chex Quest. There are mods out there that read tags. The accompanying language entries have been sent to the localization spreadsheet. 2025-07-27 17:34:08 -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
nashmuhandes
47f6f4cb1c Allow the blood splat decal distance to be customizable in MAPINFO's GameInfo block 2025-07-22 10:37:22 -03:00
Dileep V. Reddy
19291c5e5c Sprite lean/angled roll with geometric consistency in multiplayer and mirrors. An ANGLEDROLL flag ties actor's sprite-rolling axis to physical direction instead of viewpoint. Y-Billboarding occurs about a rolled axis (unlike flatsprites which don't billboard). This makes roll consistent when viewed from all angles and in reflections. Useful for sprite-based laser beams and lean mechanics with third-person cameras and/or multiplayer mods. 2025-07-22 10:36:07 -03:00
VileCornstarch
e2e9e76709 Expose CloseDialog 2025-07-17 23:28:10 -03:00
Marcus Minhorst
79855337c8 Fixed oob array access 2025-07-17 23:24:45 -03:00
Boondorl
73445f6f6a Fixed arithmetic state jumps going out-of-bounds 2025-07-17 03:19:52 -03:00
Wohlstand
ee7e913e1a Added gaining factor for OPL Synth Emulation too
Also, fixed default gaining values at libADL and libOPN (they should be 1.0, not 0.5)
2025-07-15 17:17:47 -04:00
Wohlstand
c461ecf19b ADLMIDI: Added support for GENMIDI as a custom bank
Now, libADLMIDI can use GENMIDI bank too as the "OPL Synth Emulation"
2025-07-15 17:17:47 -04:00
Wohlstand
798ceddea6 Added gain for libADLMIDI and for libOPNMIDI 2025-07-15 17:17:47 -04:00
Wohlstand
8954463f0e Added new libADLMIDI and libOPNMIDI options
Not yet translated
2025-07-15 17:17:47 -04:00
DyNaM1Kk
99af0fb970 Added the Discord RPC option to the menu 2025-07-15 15:34:22 -04: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
Boondorl
8a020fbe9d Mark offensive items and ammo as WEAPONSPAWN
Better filters these when playing in co-op mode with multiplayer things enabled.
2025-07-10 14:12:21 -03:00
Marcus Minhorst
5bd8c7f3be Unified name capitalization: *menu -> *Menu 2025-07-08 16:30:17 -03:00
Boondorl
ca98f33f42 Added support for client-side VisualThinkers 2025-07-08 16:28:40 -03:00
Boondorl
a73d9f6e8f Added support for client-side Behaviors 2025-07-08 11:34:04 -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
nashmuhandes
45444b0bf3 Improve banner art created by Kinsie 2025-07-06 22:21:39 -04: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
Cacodemon345
a2450e1195 Add mechanism for Prosperity Rune-like powerups
Also add a flag to use Zandronum/Skulltag semantics for BasicArmorPickup
2025-07-04 09:25:28 -03:00
Boondorl
0e23b900bb Added dynamic tic stabilization
Attempts to balance periods of rough traffic by putting in an artificial delay, smoothing playback but further increasing input delay. This can be disabled with net_ticbalance.
2025-07-02 21:19:15 -03:00
Boondorl
311e1d09be Allow limiting NPC conversations to settings controllers
Also cleans up the network menu a little bit.
2025-07-02 07:29:28 -04:00
MajorCooke
3fba33204c - Fixed <Pre/Post>Morph() being called twice for monsters. 2025-06-30 22:21:10 -03:00
Boondorl
d182bd9411 Allow disabling pausing entirely when online 2025-06-29 07:22:56 -04:00
Boondorl
fae43b8120 Added ready system to screen jobs for multiplayer
Readds the feature to allow players to ready up during stat screens and intermissions instead of autoskipping based on whoever closed it. Comes with a variety of ways to tweak this behavior such as percentage-based auto starting (with a timer), the ability to unready as needed, and who can control it. Players will still be able to skip through individual screen jobs within the runner while waiting to ready up.
2025-06-28 14:39:19 -03:00
Cacodemon345
028256f06f WorldRailgunFired flags are now passed properly
There's also a new DamageMobj flag to indicate railgun attacks without
having to rely on damagetypes.
2025-06-24 21:21:48 -03:00
nashmuhandes
00a5bce5d7 Rebrand the launcher to make it more distinctly GZDoom
- Use a Light theme to clearly differentiate GZDoom from VKDoom
- Moved the version label to not visually clash with the banner graphics
- Added unique graphics for the banner and the BOOTLOGO
- Changed the loading bar color to match GZDoom's logo
2025-06-21 11:52:47 -04:00
Boondorl
8071fd1368 Scriptified ReactToDamage
Allows pain handling to be overridden without needing to override the entirety of DamageMobj.
2025-06-18 01:51:57 -03:00
Boondorl
e0baf7a85c Added OnRevive virtual
Called when a monster is resurrected (allows resetting properties without needing an event handler).
2025-06-16 14:46:17 -03:00
Boondorl
1e281bfce2 Added player iterators
Allows for easily iterating through players currently in the game.
2025-06-16 14:42:15 -03:00
Boondorl
989a355f80 Moved BobTimer to playerinfo
This was a bit too invasive for mods that used full PlayerThink overrides.
2025-06-14 14:04:11 -03:00
nashmuhandes
8be9f700d9 Some fixes for the inventory hotkey localizations 2025-06-13 14:04:00 -03:00
nashmuhandes
2641689216 Expose direct inventory hotkeys for Heretic, Hexen and Strife in the controls menu 2025-06-12 19:29:02 -03:00