Commit graph

1,654 commits

Author SHA1 Message Date
Boondorl
43031375f4 Added missing return values in VM calls
These are not supported by the JIT and must always be passed.
2025-03-19 15:17:29 -03:00
Boondorl
f7e62a8cd6 Added client-side Thinkers
Adds support for client-side Thinkers, Actors, and ACS scripts (ACS uses the existing CLIENTSIDE keyword). These will tick regardless of the network state allowing for localized client handling and are put in their own separate lists so they can't be accidentally accessed by server code. They currently aren't serialized since this would have no meaning for other clients in the game that would get saved. Other logic like the menu, console, HUD, and particles have also been moved to client-side ticking to prevent them from becoming locked up by poor network conditions. Additionally, screenshotting and the automap are now handled immediately instead of having to wait for any game tick to run first, making them free of net lag.
2025-03-11 10:14:28 -03:00
James Le Cuirot
e2103d2508 Fix building with GCC 15 2025-03-10 03:06:50 -03:00
Boondorl
3c470019de Fixed default value of consoleplayer
Needs to be 0 since certain cvars will try and use it on initial callback when the engine boots up.
2025-03-08 02:18:50 -05:00
Boondorl
ad3bcfddba Lobby Overhaul
Rewrote lobby to unify common and Doom-specific packet structure, allowing for saner handling of in-game joining. Added a new per-client stage system that allows individual clients to be handled at a time when gathering and sharing info. Reworked lobby UI to display user info and added kick/ban functionalities. Bans are only a temporary per-game IP ban (use passwords to keep unwanted users out). Increased max player count to 64 and unified engine constant.
2025-03-07 20:32:52 -05:00
Ricardo Luís Vaz Silva
c82c6bff16 fix function-pointer cast parsing 2025-03-07 17:22:24 -03:00
Ricardo Luís Vaz Silva
b0889b9814 Fix deprecation version checks on class fields/pointers 2025-03-06 08:59:02 -03:00
Boondorl
94be307225 Netcode Overhaul
Rewrote netcode to be more stable and functional. Packet-server mode has been restrategized and will now be the default netmode when playing with 3+ non-LAN players. TryRunTics has been cleaned up with older tick control behavior removed to account for the rewritten renderer. The main thread is now more consistent when playing online to prevent potential slow downs and lock ups. Load barriers are better accounted for to prevent spikes on level transition. Improvements to chat and lobby systems including a force start game button. Added a suite of new host options such as kicking and controlling who can pause the game. Max players increased from 8 to 16 since the new code can now handle it.

Note: Demo functionality is untested. This will be rewritten at a later time alongside improvements to GZDoom's playback features (e.g. freecam mode).
2025-03-05 12:52:52 -05:00
Ricardo Luís Vaz Silva
909d211137 rename vm internal structs to make room for compilation-unit-internal structs/classes 2025-03-05 12:07:19 -03:00
Ricardo Luís Vaz Silva
0d963166f1 Allow >> in parser for aggregate types
makes stuff like Array<Class<X>> parse properly (bit hacky but can't do much better without restructuring the scanner/lexer)
2025-03-05 12:07:19 -03:00
Ricardo Luís Vaz Silva
7685553af8 4.14.1 accepts 4.15, bump version to 4.15.1 2025-03-03 08:28:59 -03:00
Ricardo Luís Vaz Silva
02523b1f90 restrict internal structs to gzdoom.pk3 2025-03-02 17:48:03 -03:00
Ricardo Luís Vaz Silva
93c8af32ca allow deprecation of classes/structs, deprecate Dictionary 2025-03-02 17:48:03 -03:00
Ricardo Luís Vaz Silva
35c44c7e21 don't allow backing types of string/array/map/etc to be referenced as actual types 2025-03-02 17:48:03 -03:00
Ricardo Luís Vaz Silva
e8b7a30a79 add better descriptive name for vectors/quats 2025-03-02 17:48:03 -03:00
Ricardo Luís Vaz Silva
6b8736fb30 rework how vector local type restrictions are managed 2025-03-02 17:48:03 -03:00
Ricardo Luís Vaz Silva
d9c224439d don't allow changing out-ness of parameters in virtual overrides 2025-02-21 02:17:54 -03:00
Ricardo Luís Vaz Silva
ad579a8e43 add unsafe clearscope, to allow declaring clearscope fields outside of gzdoom.pk3 2025-02-20 04:18:29 -03:00
Ricardo Luís Vaz Silva
7e86116ab1 make const actually work, and add unsafe(const) for old behavior 2025-02-20 04:18:29 -03:00
Boondorl
236c9b4224 Added FindClass
Allows for classes to be looked up during run time without having to use string casting.
2025-02-20 04:14:18 -03:00
marrub
9f6c1d65c5 add default cvar getters 2025-02-20 04:14:07 -03:00
Chronos Ouroboros
7d180069e3 Fix FxExpression::EmitCompare not properly handling constant registers. 2025-02-17 07:53:27 -03:00
Rachael Alexanderson
047e1e8b74
- remove priority changing code entirely - replace with vid_lowerinbackground which activates FPS capping in background 2025-02-08 21:42:39 -05:00
Ricardo Luís Vaz Silva
bfd9b6f720 add static function to convert ints to names 2025-02-08 16:49:00 -03:00
Ricardo Luís Vaz Silva
fcc2fc65de change id type fixes version from 4.15 to 4.14.1 2025-02-08 10:56:55 -05:00
Rachael Alexanderson
f21b68c8f6
- revamp priority changing on windows, add cvar i_allowprioritychange to disallow priority changing entirely, allowing batch scripts to dictate GZDoom's process priority 2025-01-31 06:07:14 -05:00
Ricardo Luís Vaz Silva
e543e26bdc expand deprecation allowance for gzdoom.pk3 2025-01-30 13:34:25 -03:00
Jon Daniel
3adddd6674 fix compile error missing tarray.h 2025-01-29 20:37:46 -03:00
Ricardo Luís Vaz Silva
3d2f9e06ed remove bone component cache to decrease memory consumption
caching this is entirely unnecessary, as it changes every frame
2025-01-27 17:04:46 -03:00
Rachael Alexanderson
3c8c484327
- add CVAR_SYSTEM_ONLY flag to automatically blacklist filesystem-related cvars for defcvars. This should be used on any cvar that can be changed by the user that relates to filenames or pathnames 2025-01-24 23:19:31 -05:00
Ricardo Luís Vaz Silva
61df13306f fix DScriptScanner 2025-01-11 09:31:20 -03:00
Ricardo Luís Vaz Silva
e12d51c5a2 add default values, vec4 uniforms, and cvar uniforms to post-process uniforms 2025-01-06 19:21:21 -05:00
Eonfge
22690bbb76 Fix fatal error formatting
Based on this patch: https://aur.archlinux.org/cgit/aur.git/tree/0002-fix-format-security-error.patch?h=gzdoom
2025-01-06 11:01:20 -05:00
Rachael Alexanderson
f3b0c3ac5e
- Roll back filesystem changes. These were causing instabilities in the master branch that were interfering with development. 2025-01-04 11:27:21 -05:00
Rachael Alexanderson
d42e3b0037 - store current time in the save game node when saving a new game
- when overwriting a save force it to reposition itself in the list in case any of its details have changed
2025-01-01 17:11:12 -05:00
Rachael Alexanderson
902bf03c47 - implement new cvar save_sort_order - for now options are only 0 or 1 - 0 is alphabetical, 1 is descending by time (most recent first) 2025-01-01 17:11:12 -05:00
Rachael Alexanderson
d6e1097b85 - enable mipmapping in 2D 2024-12-26 04:12:06 -05:00
Ricardo Luís Vaz Silva
bdddfcc80a allow nullptr with spriteid/textureid/translationid (for default parameters/etc) 2024-12-21 04:33:25 -05:00
Ricardo Luís Vaz Silva
d36fa3c36b add helper methods to Sound/SpriteID/TranslationID 2024-12-21 04:33:25 -05:00
Ricardo Luís Vaz Silva
eefad0764e fix TranslationID casting 2024-12-21 04:33:25 -05:00
Rachael Alexanderson
62381cc7de
- fix 1:1.2 minimizer function to work with actual 4:3 screens 2024-12-19 06:47:07 -05:00
Rachael Alexanderson
4963aea0e8
- add a 1:1.2 ratio min-scale mode 2024-12-19 05:53:50 -05:00
Ricardo Luís Vaz Silva
e82c7d2428 remove "DECORATE" from error string
* print warning count as well
* allow treating warnings as errors
2024-12-13 16:46:48 -03:00
Ricardo Luís Vaz Silva
325817afdf remove version check for array type fix, to prevent crashes/etc with bad types 2024-12-12 15:18:53 -05:00
RaveYard
23a021dfca Fix M_SaveBitmap stream buffer size
- credits to dpJudas for the solution
2024-12-04 19:38:11 -05:00
Christoph Oelckers
d1abc3eb8c renamed things in file system to reduce Doom specific terminology. 2024-11-24 18:05:11 +01:00
Christoph Oelckers
a3475d3973 FileSystem cleanup.
* split off the Doom specific lookup with short 8 character names into its own class and cleaned up the interface a bit.
* get rid of all short name aliasing 'optimization' - modern compilers are capable of optimizing memcmp and memcpy to use equally efficient code so none of these hacks are needed anymore.
* added reader for Descent 3's HOG2 format - yet another of these endless uncompressed formats with just a different directory structure...
2024-11-24 17:59:16 +01:00
Christoph Oelckers
634a646c2d take namespace enum out of namespace and added CheckNumForAnyName and CheckNumForFullNameInFile to clarify the meaning of CheckNumForFullName.
This is to take some renaming noise out of the upcoming refactoring.
2024-11-24 17:59:16 +01:00
Christoph Oelckers
ba2800d698 renamed GetFileFullName to GetFileName 2024-11-24 17:59:15 +01:00
Christoph Oelckers
9b62379645 removed -hashfiles after finding out it had been broken for an extended time period.
this is a strong indicator that nobody was using it - and I do not feel like fixing such an invasive feature with little utility.
2024-11-23 21:10:11 +01:00