Reworked Travelling logic

Added safety barriers for STAT_STATIC and STAT_TRAVELLING to avoid potential exploits. Properly clear all internal fields pointing towards non-read barriered data and always relink properly when finishing travelling. Moved ZScript callback to after travelling has finished for all Thinkers, that way everything is initialized correctly.  Allow arbitrary thinkers (excluding native ones) to be added to the travelling list (for Actors, their positioning will need to be handled by modders). Ensure lights get re-enabled after travelling.
This commit is contained in:
Boondorl 2025-07-10 13:29:59 -04:00 committed by Ricardo Luís Vaz Silva
commit d7d71177d7
10 changed files with 302 additions and 191 deletions

View file

@ -28,6 +28,7 @@ enum EObjectFlags
OF_Released = 1 << 13, // Object was released from the GC system and should not be processed by GC function
OF_Networked = 1 << 14, // Object has a unique network identifier that makes it synchronizable between all clients.
OF_ClientSide = 1 << 15, // Object is owned by a specific client rather than the server
OF_Travelling = 1 << 16, // Object is currently moving from one level to another
};
template<class T> class TObjPtr;