Commit graph

1,671 commits

Author SHA1 Message Date
Ricardo Luís Vaz Silva
44f1e239e4 deduplicate code 2025-04-23 18:49:23 -03:00
Ricardo Luís Vaz Silva
3f65c2191a better formatting 2025-04-23 18:49:23 -03:00
Ricardo Luís Vaz Silva
82e5dc2db6 remove raw C string manipulation, add missing chunk 2025-04-23 18:49:23 -03:00
Ricardo Luís Vaz Silva
d23faa6ab8 convert stb_include to FString, trim out some stuff 2025-04-23 18:49:23 -03:00
Ricardo Luís Vaz Silva
817a3778d8 split stb_include into .cpp and .h 2025-04-23 18:49:23 -03:00
Ricardo Luís Vaz Silva
8c66f5c64d add stb_include 2025-04-23 18:49:23 -03:00
Ricardo Luís Vaz Silva
ab5091098d fix bug with direct cvar assignment being mistakenly allowed 2025-04-17 18:57:11 -03:00
Ricardo Luís Vaz Silva
88a55be561 add TryEmplace to TMap 2025-04-16 23:45:16 -03:00
Peppersawce
a02892389d Haiku support patch 2025-04-05 20:49:45 -04:00
Christoph Oelckers
6481f8cce9 rewrote XY and XYZ accessors for vectors to be read-only and not use type punning. 2025-04-03 07:51:03 +02:00
Ricardo Luís Vaz Silva
8019b56823 fix comment 2025-04-01 17:19:03 -03:00
Ricardo Luís Vaz Silva
d8651420cc fix parameter/return checking 2025-04-01 17:19:03 -03:00
Ricardo Luís Vaz Silva
278bd0fb7d finish implementing VMCallSingle 2025-04-01 17:19:03 -03:00
Ricardo Luís Vaz Silva
1f1c271883 VMCallScript -> VMCallSingle 2025-04-01 17:19:03 -03:00
MajorCooke
6f3032dc54 Exported:
* GetLumpContainer
* GetContainerName
* GetLumpFullPath
for WADS struct, useful for debugging custom-made parsers and identifying where problems may arise.

All credit goes to Jay for the code.
2025-03-30 20:36:13 -03:00
Magnus Norddahl
92cc96a672 Add VMCallScript template for calling ZScript functions with type checking 2025-03-20 00:10:50 -03:00
Magnus Norddahl
b4c3d2331e Fix memory leak in mixins 2025-03-20 00:10:50 -03:00
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