Commit graph

396 commits

Author SHA1 Message Date
XLightningStormL
9c383e9379
DepleteBy virtual
* Update inventory_util.zs

Added ExtraDepletionBehavior() functionality to TakeInventory and UseInventory

* Update inventory.zs

Added ExtraDepletionBehavior (int takeAmount) function

* Update inventory_util.zs

ExtraDepletionBehavior now requires at least 1 item in reserve to work

* Replaced ExtraDepletion with DepleteBy Logic

Shoutout to RicardoLuis0

* Replaced ExtraDepletion with DepleteBy Logic

Shoutout to RicardoLuis0

* Update inventory_util.zs

added sv_infiniteinventory checks for takeinventory for custominventory items, restored support for sv_infiniteinventory useinventory items

* Update inventory.zs

cleaned up DepleteBy - removing unnecessary "--Amount <= 0 && usedItem" check and usedItem bool

* Update inventory_util.zs

removed unnecessary sv_infiniteinventory check

* Update inventory.zs

amount is integer, depleteordestroy should occur when amount is less than 1
2025-05-02 20:27:28 -03:00
Ricardo Luís Vaz Silva
3780c5910a
Bone Manip part 1 - bone setters
* split frame info calculation from RenderFrameModels

* clean up fvec4 being used as quat in iqms

* initial work on bone setting

* implement bone setters

* clean up FindModelFrame

* refactor model overrides into its own function

* refactor frame rendering into RenderModelFrame

* split frame processing into ProcessModelFrame

* refactor BoneOverride in preparation for translation/scale overrides

* clean up macros

* SetBoneTranslation/SetBoneScaling

* GetBoneOffset

* fix compilation on linux/mac (fuck you MSVC)

* fix typo 😅

* make sure bone overrides are cleared on model switches, add ClearBoneOffsets to clear them manually

* bone info getters

* fix joint lengths, add joint dirs

* serialize bone overrides

* fix bone dir return type

* GetBoneIndex/GetBoneCount

* helper functions for working with non-quat angles

* add mode enum, add more helper functions

* fix up formatting
2025-05-01 10:15:46 -03:00
Ricardo Luís Vaz Silva
c0d17bbda3 limit light alpha mult to renderflag 2025-04-29 15:47:28 -03:00
MajorCooke
6c4afed100 SpawnBlood now returns an actor spawned by the function. 2025-04-23 18:49:11 -03:00
Boondorl
524cd55813 Added OnLoad virtual
Allows for things to be reinitialized where needed for Thinkers. Moved hidden state of items over to OnLoad.
2025-04-17 18:58:02 -03:00
DyNaM1Kk
a0ab9ba25c Added autoSwitch parameter to A_ReFire 2025-03-30 21:59:41 -04:00
Boondorl
5b1023c447 Fixed inventory ticking when playing online
No longer tied to the player's latency value as it now runs in the client-side logic.
2025-03-24 22:40:49 -03:00
nashmuhandes
2d42438ebd Properly assign tags to various Raven game items 2025-03-22 14:49:27 -03:00
Boondorl
345926f057 Fixed setinv cheat 2025-03-14 21:10:44 -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
nashmuhandes
2e05e196db Interpolate turning 180 degrees 2025-03-07 14:35:08 -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
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