Commit graph

22,362 commits

Author SHA1 Message Date
Marcus Minhorst
5810faec1d Removed debug printout 2025-07-08 10:11:28 -03:00
Marcus Minhorst
d7bb21e2e3 Implemented sdl stubs and improved controller reconnection 2025-07-08 10:11:28 -03:00
Marcus Minhorst
4340c6df0b Implemeted cocoa stubs 2025-07-08 10:11:28 -03:00
Marcus Minhorst
e9dbf55f2e Implemented dinput stubs 2025-07-08 10:11:28 -03:00
Marcus Minhorst
a41ced099c Implemented rawps2 stubs 2025-07-08 10:11:28 -03:00
Marcus Minhorst
bac24118c2 Implemented xinput stubs 2025-07-08 10:11:28 -03:00
Marcus Minhorst
8c12037ef4 Unified gamepad settings 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
92e66479fc Added stubs and helper functions 2025-07-08 10:11:28 -03:00
Marcus Minhorst
d75d3aacf9 SDL2 GameController API utilized 2025-07-08 10:11:28 -03:00
Marcus Minhorst
6ec17f28eb Cleanup: Alignment, long lines, Replace 0 with SDLK_UNKNOWN 2025-07-08 10:11:28 -03:00
Marcus Minhorst
6a126e616d Enable gamepad by default 2025-07-08 10:11:28 -03:00
Marcus Minhorst
1bbd6c136f Only block keydown 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
Boondorl
17f58f514f Fixed missing multiplayer tab localization 2025-07-05 18:12:21 -03:00
Boondorl
9701bfaa5c Added multiplayer tab for launcher + backend improvements
Adds a multiplayer tab to allow hosting and joining games from within the GZDoom launcher rather than needed to use the command line. This has its own set of defaults independent from the main play page which necessitated rewriting how this information is passed and stored in the backend. A startup info struct is now passed back which has its defaults set from the cvars and then propagates any changes to it back to the defaults after selection is complete, making it much simpler to interface with the engine defaults.
2025-07-05 18:12:21 -03:00
Boondorl
6756c850e7 Disable autoloading mods when playing online
Any mods when hosting and joining should have to be explicitly labeled, this way extra mods aren't accidentally making their way into the lists.
2025-07-05 18:12: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
Boondorl
672a21f533 Fixed bad VisualThinker nodes getting into the render list
Relink on loading instead of serializing since order doesn't matter here.
2025-07-05 08:21:21 -04: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
9a111931cf Fix for WorldPaused
Also consider the console rising to be unpaused.
2025-07-04 09:24:57 -03:00
Boondorl
a1a3be1046 Clean up console commands
Improve functionality of network console commands and make displaying of who is who clearer.
2025-07-04 09:24:50 -03:00
Boondorl
1e1ab58ee2 Fixed startup music being cancelled
This seems to happen from one of the music cvar callbacks wiping it, but I'm ensure of which (possibly music volume?). Move it to after cvar initializing until a proper fix can be found.
2025-07-04 01:18:32 -04:00
Boondorl
2de0480147 Clamp max number of commands generated
Only allow half the host's buffer to be filled at any time.
2025-07-02 21:19:15 -03:00
Boondorl
492c83cf2c Improve stability in packet-server mode
Use buffers reported by clients so they can better check their own conditions when determining how to stabilize when outpacing the host.
2025-07-02 21:19:15 -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
Ricardo Luís Vaz Silva
54f1f5ad9d stop stupid clamp asserts 2025-07-02 12:34:10 -03:00
Boondorl
ba953b2d6d Improve default starting map
Instead of defaulting to MAP01/E1M1, select the map in the first episode after parsing. This significantly improves the autostart and netgame behavior by warping to the first defined and valid level. Also adds -episode to allow more easily specifying which episode to play for mapsets that don't have simple ExMy naming conventions.
2025-07-02 12:34:01 -03:00
Boondorl
cf9a9097b9 Fix up saving in multiplayer
By default allow only settings controllers to save the game. Use actual file names to help prevent possible save file overriding as savexx is unreliable online. Prevent quicksave behavior from working with the rotator. Force a unique netgame subfolder for multiplayer saves to remove the ability to override singleplayer saves. Send over the host's -loadgame argument to make loading easier (will not override the guest's -loadgame in case they need a special file name).
2025-07-02 12:33:50 -03:00
Boondorl
5ea8981472 Only print the message for the player trying to initiate a conversation 2025-07-02 07:29:28 -04: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
1a0df14170 Count turbo as a cheat 2025-06-29 07:23:57 -04:00
Boondorl
d182bd9411 Allow disabling pausing entirely when online 2025-06-29 07:22:56 -04:00
Boondorl
61faf95f76 Added -coop switch
Sets some sensible defaults for coop mode.
2025-06-29 07:21:45 -04:00
Chris Cowan
222fbfcf7c Fix missing null-terminator when writing demos 2025-06-28 20:05:01 -03: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
Boondorl
fc7a480fe8 Tweak tic catchup mechanic
Always chase the available tics.
2025-06-28 14:38:19 -03:00
Boondorl
c36ea479a8 Move engine verification to front end
This can't be in the backend since it uses game-specific information.
2025-06-26 00:24:19 -03:00
Rachael Alexanderson
6b2b8a198f - implement limits for state loops to prevent infinite state freezes 2025-06-25 09:57:11 -04:00
Marcus
128379195b Added missing check for solaris 2025-06-24 21:22:55 -03:00
Marcus Minhorst
65ce7b7c29 Fixed conflicting import under solaris 2025-06-24 21:22:55 -03:00
Marcus Minhorst
525e6b9f99 Added _msize stub for Solaris 2025-06-24 21:22:55 -03:00
Marcus Minhorst
a4b7c95153 Added missing import for Solaris 2025-06-24 21:22:55 -03:00
Marcus Minhorst
a881e86ff7 Fixed typo 2025-06-24 21:22:55 -03:00
Marcus Minhorst
21a90ab7e1 Added missing Solaris checks 2025-06-24 21:22:55 -03:00
Marcus Minhorst
f6b4740be3 Fixed conflicting int defs under solaris 2025-06-24 21:22:55 -03:00
Marcus Minhorst
0427ac10f6 Fixed segfault under Solaris 2025-06-24 21:22:55 -03:00