Commit graph

18 commits

Author SHA1 Message Date
Boondorl
1fd267a96a Improved Object handling while predicting
Added a warning if a networked Object or non-client-side Thinker was erroneously destroyed manually while predicting. This only applies to ZScript since this is the only place it's relevant. Added a warning if a non-client-side Thinker was spawned while predicting. Sweep objects before backing up while predicting to ensure invalid pointers aren't captured.
2025-08-02 15:03:18 -03:00
Boondorl
c284aa366d Use TArrayView instead of TArray for ClearNativePointerFields 2025-07-10 14:12:31 -03:00
Boondorl
269689703d Clear references to map data on level change
These shouldn't be left as they'll now point towards potentially invalid memory and also cause errors with serializing. Arrays and maps holding them are cleared. Also unlinks and relinks inventory items correctly from the hashmap on traveling.
2025-07-10 14:12:31 -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
Boondorl
cf6bad97e8 Fixes for client network IDs
Fixed an off-by-one error on client IDs (these need to start at 1 as 0 is an invalid network ID). Morphing will now swap the client body's ID so it remains in the first 1 - MAXPLAYERS slots.
2024-04-25 14:08:31 -03:00
Christoph Oelckers
a938e9c66c moved the NetworkEntityManager into the backend code. 2024-04-21 18:30:19 +02:00
Boondorl
38f14ccd56
Tweaked net ID file management
Should now be easier to stub network entity functions for Raze.
2024-04-20 19:14:29 -04:00
Boondorl
8d0d130dc9
New API for assigning unique network ids to objects 2024-04-20 19:14:29 -04:00
Rachael Alexanderson
ef10467ff8
- revert changes in backend code which will not sync properly with raze
This is a combination of 2 commits.

Revert "New API for assigning unique network ids to objects"

This reverts commit e37c19b5b4.

 This is the commit message #2:

Revert "Fix for Morph virtual"

This reverts commit 0ef042562e.
2024-04-17 14:48:02 -04:00
Boondorl
442ac3f78b Updated substitution logic to only replace pointers if safe 2024-03-28 15:48:23 -04:00
Boondorl
e37c19b5b4 New API for assigning unique network ids to objects 2024-02-26 06:23:12 -05:00
Christoph Oelckers
79f2fc6553 backend update from Raze.
Mainly a VMFunction script type and some associated utilities.
2023-10-09 18:45:30 +02:00
Christoph Oelckers
9925cc380e - backend update from Raze. 2020-11-23 15:45:33 +01:00
alexey.lysiuk
18b5928f49 - eliminate dependency on linking order for autosegs registration 2020-11-13 11:03:16 +02:00
alexey.lysiuk
18371fb27a - fixed calculation of allocated memory for garbage collection
Some checks failed
Continuous Integration / Linux Clang 6 | Debug (push) Has been cancelled
Continuous Integration / Linux GCC 9 | Debug (push) Has been cancelled
Continuous Integration / Visual Studio 64-bit | Debug (push) Has been cancelled
Continuous Integration / macOS | Debug (push) Has been cancelled
Continuous Integration / Linux GCC 5 | MinSizeRel (push) Has been cancelled
Continuous Integration / Linux GCC 7 | RelWithDebInfo (push) Has been cancelled
Continuous Integration / macOS | Release (push) Has been cancelled
Continuous Integration / Linux Clang 9 | Release (push) Has been cancelled
Continuous Integration / Visual Studio 32-bit | Release (push) Has been cancelled
Continuous Integration / Visual Studio 64-bit | Release (push) Has been cancelled
https://forum.zdoom.org/viewtopic.php?t=68897
2020-06-09 16:48:51 +03:00
Christoph Oelckers
d71ef66957 - fixes copied from Raze. 2020-04-29 23:58:50 +02:00
Christoph Oelckers
cf51508ce6 - moved around some pieces of code to make sharing with Raze easier. 2020-04-11 20:20:52 +02:00
Christoph Oelckers
f8ac9a2662 - moved DObject and core parts of the VM to 'common'.
# Conflicts:
#	src/common/objects/dobject.h
2020-04-11 20:20:51 +02:00
Renamed from src/dobject.h (Browse further)