Commit graph

385 commits

Author SHA1 Message Date
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
7685553af8 4.14.1 accepts 4.15, bump version to 4.15.1 2025-03-03 08:28:59 -03:00
inkoalawetrust
645dbcfa51 Made the BFG and EXPLOSIVE weapon flags usable.
- Made the BFG and EXPLOSIVE weapon flags usable again.
- Marked the appropriate weapons with them for the 3 main supported games.
2025-02-20 20:37:20 -03:00
f7cjo
f1e6445e82 Add GetSelfObituary 2025-02-20 04:13:56 -03:00
Boondorl
606bc1d04e Added versioning for Behaviors 2025-02-20 04:12:46 -03:00
Boondorl
7a4927fdf5 Added TransferredOwner virtual
Allows for proper cleaning up of behaviors when moving between Actors. Important for player respawn handling and morphing.
2025-02-20 04:12:46 -03:00
Boondorl
7efd301810 Clean up for Behavior API
Use TObjPtr to improve null checking. Add option to clear only specific kinds of Behaviors. Fixed removal checks while ticking. Don't stop at now-null behaviors when iterating.
2025-02-20 04:12:46 -03:00
Boondorl
3d6506df5b Added owner type parameter to iterator 2025-02-20 04:12:46 -03:00
Boondorl
14f7a10ae6 Added global iterator for behaviors
Imported Behaviors to the engine to allow them to properly clean up their level list. Restrict Behaviors from being new'd in ZScript as they need an owner to function.
2025-02-20 04:12:46 -03:00
Boondorl
e27bf38165 Added behavior iterator for Actors
Renamed Readded to Reinitialize.
2025-02-20 04:12:46 -03:00
Boondorl
bd60fd7546 Added initial Behavior API
Allows for arbitrary behaviors to be attached to Actors in a way that doesn't require the use of Inventory tokens. This list can't be freely modified nor can it have duplicates meaning it has far better deterministic behavior than using Inventory items for this purpose.
2025-02-20 04:12:46 -03:00
Boondorl
fdd2a90545 Fixed ammo and backpack with local items on
Now avoids duplicate calling CreateCopy
2025-02-14 13:43:58 -05:00
Boondorl
567a180d2b Added is3DFloor parameter to SpecialBounceHit
Allows for better plane bounce handling e.g. flipping the normal.
2025-02-11 20:49:39 -03:00
Ricardo Luís Vaz Silva
f2ecdc5d96 fix id24 weapons transparency 2025-02-08 15:05:16 -03:00
Ricardo Luís Vaz Silva
fa2f03f60b replace incomplete flags from DECOHACK with projectile combo 2025-02-08 15:05:16 -03:00
Ricardo Luís Vaz Silva
5bc5df8429 fix ammo give/autoaim for incinerator/calamity blade 2025-02-08 14:55:29 -03:00
nashmuhandes
74a04474e1 Smoothly interpolate the player pitch-centering action 2025-02-07 04:57:56 -05:00
Boondorl
59ac494c19 Make CopyBloodColor readonly
Allows getting blood colors from default Actors.
2025-01-31 05:49:34 -05:00
Ricardo Luís Vaz Silva
987a07bcdf add fuel/calamity blade/incinerator from id24 2025-01-30 13:34:25 -03:00
Ricardo Luís Vaz Silva
e543e26bdc expand deprecation allowance for gzdoom.pk3 2025-01-30 13:34:25 -03:00
Boondorl
864fe1f66f Added translation argument for A_SprayDecal 2025-01-30 13:32:18 -03:00
nashmuhandes
27b6cb2f72 Allow passing sound volume to PlayBounceSound in ZScript 2025-01-23 13:54:26 -03:00
nashmuhandes
9e3db4f147 Added HasConversation 2025-01-22 13:18:45 -03:00
nashmuhandes
92dbdd3f39 Exported conversation behaviors 2025-01-22 13:18:45 -03:00
nashmuhandes
f5bf1d0497 Exported thing activation function 2025-01-14 02:21:50 -05:00
nashmuhandes
aebabd2307 Fix coop key share failing if the item was spawned in-game (for example, via the console) 2024-12-30 21:25:37 -05:00
Boondorl
5240c52b07
Fixed bouncing on 3D floors (#2835) 2024-11-26 03:43:09 -05:00
Boondorl
ab9b6320cb Allow easier piece weapon replacing
Checks for replacements on weapons instead of using the given weapon class as is (also verifies said replacement is a weapon).
2024-11-15 23:58:39 -03:00
Boondorl
268dad18f7 Discs no longer blast players with collision disabled 2024-11-15 23:58:28 -03:00
Boondorl
04cdbd1898 Fixed CreateCopy being broken on HexenArmor 2024-11-09 12:32:51 -03:00
Major Cooke
3d4dccd650 And the variable. 2024-11-04 16:23:34 -03:00
Major Cooke
ceb2de36d3 Change function from private to protected by request. 2024-11-04 16:23:34 -03:00
Major Cooke
1620d405c6 Added OrthographicCamera actor. Arguments are:
- 0: Offset. This pushes the camera further away, going behind the camera. Default is 1.0 (converted to negative - the value cannot go lower than that).
2024-11-04 16:23:34 -03:00
Ricardo Luís Vaz Silva
d0e6bce4e6 add CVar to control footstep volume 2024-10-21 14:53:53 -03:00
Ricardo Luís Vaz Silva
d07d08ce9f Add velocity/distance based footsteps 2024-10-21 14:53:53 -03:00
Ricardo Luís Vaz Silva
3a88281c10 time footsteps with duration of movement, not with actor age 2024-10-21 14:53:53 -03:00
Rachael Alexanderson
c2fd99a24d
Revert "- Actor.GetSpecies() is a non-destructive function"
This reverts commit ee5442c06b.
2024-10-17 21:28:52 -04:00
Rachael Alexanderson
ee5442c06b
- Actor.GetSpecies() is a non-destructive function 2024-10-14 17:31:18 -04:00
inkoalawetrust
9df656a9cf
Added LookForEnemiesEx() for returning all enemies in an area. (#2753)
* Compartmentalized the LookForEnemiesInBlock checks

* Added LookForEnemiesEx().

This function allows for ZScript code to get an array with all enemies of the caller found in range. Using similar sight logic as functions like LookForEnemies().

* Added noPlayers parameter to LookForEnemiesEx().

This parameter allows the function to also find players around it.

* Added VM abort to LookForEnemiesEx().

Prevent crashes by passing a null array by reference.
2024-10-14 03:47:53 -04:00
inkoalawetrust
12d1afcc4e
Fixed WalkStepTics & RunStepTics in terrain parser
Fixed the discrepancy where WalkStepTics and RunStepTics were called, well, that. In the terrain struct in both C++ and ZScript. While the terrain parser looked for WALKINGSTEPTIME and RUNNINGSTEPTIME instead.
Also made the parse not multiply these time values by the ticrate to treat them as seconds instead of tics.

Added flags for P_HitWater().

Added optional overridable footsteps for players.

Added an overridable MakeFootsteps() virtual in PlayerPawn. Which allows for adding totally custom footstep logic for players. By default, it comes with a basic footstep system that uses the footstep properties of whatever terrain the pawn is standing on. bMakeFootsteps must be enabled on the pawn for the virtual to run.

Added generic StepSound TERRAIN property.

Added a generic step sound TERRAIN property, for defining foot-agnostic step sounds. Used by the built-in footstep system over the individual foot ones.

Simplified MakeFootsteps().

Also removed a leftover debug message.
2024-10-14 03:47:02 -04:00
Blue Shadow
6b5be653dc - set a default value of 1.0 for MissileChanceMult property 2024-10-05 11:43:44 +02:00
Christoph Oelckers
5b1f0fdc86 bFriendly should not be set from scripts because this omits needed bookkeeping. 2024-10-04 18:32:06 +02:00
Christoph Oelckers
b667b930a3 fixed logic bug with HitFriend and Refire functions.
The old code was essentially ineffective and useless, this is how MBF had it and how it was supposed to be.
2024-10-03 22:30:09 +02:00
Christoph Oelckers
8354c4a5c3 Replaced MISSILE(EVEN)MORE with a real property and added related Dehacked options from Crispy Doom.
This also adds proper deprecation messages to the deprecated flags which were missing due to a bad definition macro.
2024-10-03 12:24:16 +02:00
jekyllgrim
1392db2f5b Made DamageSource and bIsPuff readonly 2024-10-01 11:53:11 -03:00
jekyllgrim
83165dccbf Add damagesource 2024-10-01 11:53:11 -03:00
Rachael Alexanderson
18c068fd1f
Revert "- fix some issues with ClearInventory() that sometimes caused script errors"
This reverts commit 41c69736b1.

This introduced more bugs and so the fix was not valid.
2024-09-30 03:28:15 -04:00
Rachael Alexanderson
41c69736b1
- fix some issues with ClearInventory() that sometimes caused script errors 2024-09-30 01:52:51 -04:00
Jon Heard
4c27b55eb9 SetSkin and GetSkinCount added to PlayerInfo class 2024-09-29 18:14:52 -04:00
RaveYard
a4c98d8dd9 Add RADF_CIRCULARTHRUST and matching XF_/RTF_ flags 2024-09-29 17:56:41 -04:00