Marcus Minhorst
8352039e3f
Cleanup
2025-08-24 03:02:06 -04:00
Marcus Minhorst
4a3bfae42e
Fixed up format specifiers
...
also cleanup imports
2025-08-09 21:20:56 -03:00
Ricardo Luís Vaz Silva
d411893e44
fix wrong sign comparison
2025-08-08 05:49:30 -03:00
Ricardo Luís Vaz Silva
439d09059e
turn assert into if
2025-08-07 21:04:26 -03:00
Ricardo Luís Vaz Silva
773c534896
remove linked lists entirely from lights
2025-08-07 21:04:26 -03:00
Ricardo Luís Vaz Silva
04c29dcf4b
make sure lights are unlinked, and clear light lists even when loading saves as saves may be from different levels
2025-08-07 21:04:26 -03:00
Ricardo Luís Vaz Silva
807043b995
dynlight optimize attempt
2025-08-07 21:04:26 -03:00
Boondorl
789829f967
Fixed regression with camera while travelling
...
Also readds guard for trying to move travellers out of the list at map start.
2025-08-02 17:35:16 -03:00
Boondorl
8604830f4c
Prevent thinkers from being set to travel while not changing level
2025-08-02 17:35:16 -03:00
Boondorl
86375c1b79
Move travelling to two-step system
...
Mark Actors meant to travel early so their flag can be written into the snapshot, followed by moving them over all at once at the same time as previously. On finish, destroy any marked Actors to prevent duplication in hubs. Switch to a unique function that does the verification instead of ChangeStatNum and lock out STAT_TRAVELLING entirely since it shouldn't be used for regular gameplay.
2025-08-02 17:35:16 -03:00
Boondorl
00d2b43ce0
Remember statnum when travelling
...
Also cleans up the functions a little.
2025-08-02 17:35:16 -03:00
Boondorl
d7d71177d7
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.
2025-08-02 17:35:16 -03:00
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
b6b3c311e1
Export DecalBase
...
Allows setting this between Actors with type safety. Now also serializes these fields.
2025-07-28 15:24:04 -03:00
Boondorl
a4ed63033e
Fixed quick save rotator breaking save logic
...
The game should only ever save during the gameplay loop and never on the spot. Also fixes the quick save rotator skipping certain checks.
2025-07-28 02:50:10 -04:00
Boondorl
9a4c2dc111
Ensure BlockingMobj checks don't fail on destroyed Actors when handling physics
2025-07-27 17:18:53 -03:00
Boondorl
443e899759
Fixed assert in P_GeometryRadiusAttack
...
Clamp the floor to the ceiling so malformed sectors don't break height checking.
2025-07-25 04:18:59 -03:00
Ricardo Luís Vaz Silva
9b44f2315d
fix BlockingMobj ignoring the GC and possibly becoming a stale pointer
2025-07-24 06:23:32 -03:00
Boondorl
7d1f2df404
Added scale and alpha interpolation
...
Similar to angles, needs to be enabled via flags to prevent breaking existing sprites.
2025-07-22 11:35:20 -03:00
nashmuhandes
47f6f4cb1c
Allow the blood splat decal distance to be customizable in MAPINFO's GameInfo block
2025-07-22 10:37:22 -03:00
Dileep V. Reddy
19291c5e5c
Sprite lean/angled roll with geometric consistency in multiplayer and mirrors. An ANGLEDROLL flag ties actor's sprite-rolling axis to physical direction instead of viewpoint. Y-Billboarding occurs about a rolled axis (unlike flatsprites which don't billboard). This makes roll consistent when viewed from all angles and in reflections. Useful for sprite-based laser beams and lean mechanics with third-person cameras and/or multiplayer mods.
2025-07-22 10:36:07 -03:00
Marcus Minhorst
649ddd7774
Replaced uint with unsigned int
2025-07-19 11:37:24 -03:00
Marcus Minhorst
9b0f5d9b0d
Fixes sign-compare warnings
2025-07-18 21:11:50 -03:00
Chris Cowan
ab7b1642bc
Prevent buffer overflows when using streams
2025-07-10 14:11:08 -03:00
Boondorl
42a3ca3d56
Move OnLoad to after everything is done serializing
...
Makes behavior much more consistent and safer.
2025-07-09 22:08:54 -04:00
Boondorl
ca98f33f42
Added support for client-side VisualThinkers
2025-07-08 16:28:40 -03:00
Boondorl
7e90f3a0f3
Fixed teleporters breaking view interpolation
2025-07-08 16:28:16 -03:00
Boondorl
a73d9f6e8f
Added support for client-side Behaviors
2025-07-08 11:34:04 -03:00
Boondorl
17f1c90d4a
Always back up players even in singleplayer
...
This way client-side actions will be consistent between multiplayer and singleplayer.
2025-07-08 11:32:15 -03:00
Boondorl
ccf178577d
Updated client-side ACS handling
...
Moved to a new ownership system. Only clients that own the activators will be allowed to call truly client-side scripts. Server objects that attempt to do this will instead run on the server.
2025-07-08 11:32:15 -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
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
Rachael Alexanderson
6b2b8a198f
- implement limits for state loops to prevent infinite state freezes
2025-06-25 09:57:11 -04:00
Cacodemon345
028256f06f
WorldRailgunFired flags are now passed properly
...
There's also a new DamageMobj flag to indicate railgun attacks without
having to rely on damagetypes.
2025-06-24 21:21:48 -03:00
Boondorl
7cac623ecb
Fix SMF_PRECISE flag for seekers
...
Use the player's actual eye position when calculating.
2025-06-18 14:47:43 -03:00
Ricardo Luís Vaz Silva
f4eebd1ced
CallVM API, plus multi-return and vector support
2025-06-18 03:52:23 -03:00
Boondorl
8071fd1368
Scriptified ReactToDamage
...
Allows pain handling to be overridden without needing to override the entirety of DamageMobj.
2025-06-18 01:51:57 -03:00
Boondorl
e0baf7a85c
Added OnRevive virtual
...
Called when a monster is resurrected (allows resetting properties without needing an event handler).
2025-06-16 14:46:17 -03:00
Boondorl
1e281bfce2
Added player iterators
...
Allows for easily iterating through players currently in the game.
2025-06-16 14:42:15 -03:00
Boondorl
989a355f80
Moved BobTimer to playerinfo
...
This was a bit too invasive for mods that used full PlayerThink overrides.
2025-06-14 14:04:11 -03:00
Ricardo Luís Vaz Silva
a8eed72b38
wrong comparison sign 🤦♀️
2025-06-09 17:35:20 -03:00
Ricardo Luís Vaz Silva
0e3682ae24
add proper range to bone getter functions, prevents crash if called between enabling bone getters but before actually calculating bones
2025-06-06 18:05:37 -03:00
Boondorl
486be3a5b6
Clear next and prev list pointers on VTs when destroyed
2025-05-29 15:42:28 -03:00
Ricardo Luís Vaz Silva
c0c4b784ca
GetBoneEulerAngles
2025-05-26 07:48:01 -03:00
Ricardo Luís Vaz Silva
cffdfa802e
up vector for TransformByBone/GetBonePosition
2025-05-26 07:48:01 -03:00
Ricardo Luís Vaz Silva
097c99032c
rename GetBone to GetBoneTRS in zscript
2025-05-26 07:48:01 -03:00
nashmuhandes
b44f8f0cc9
- Add "Intensity" property for dynamic lights in GLDEFS that will multiply the brightness of the light, useful for overbrightening/underbrightening a light.
...
- Also add an "intensity" parameter for A_AttachLight in ZScript.
Note that for any kind of light overbrightening to do anything at all, one of the unclamped LightBlendModes in MAPINFO must be enabled.
2025-05-17 00:42:01 -03:00
Ricardo Luís Vaz Silva
385033e999
fix CalcModelFrame/SetBone/GetBone/SetAnimation not grabbing smf from modeldata for decoupled anims
2025-05-10 18:24:16 -03:00