Commit graph

176 commits

Author SHA1 Message Date
MajorCooke
bf6f175305 SpawnBlood now returns an actor spawned by the function. 2025-04-29 07:56:20 -03:00
Boondorl
ce922225e7 Added OnLoad virtual
Allows for things to be reinitialized where needed for Thinkers. Moved hidden state of items over to OnLoad.
2025-04-29 07:56:19 -03:00
Boondorl
5730719182
Fixed player respawning
Pass appropriate information to the VM
2025-04-09 15:18:30 -04: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
Boondorl
d527829ee3 Added NOAUTOOFFSKULLFLY flag
Disables resetting skullfly and state when velocity is zero while charging.
2025-01-30 13:33:33 -03:00
Boondorl
e0394ef16a Added flags for angle handling on bounce
Allows for keeping the current angle on bounce or modifying the pitch.
2025-01-27 21:27:03 -03:00
Ricardo Luís Vaz Silva
3d2f9e06ed remove bone component cache to decrease memory consumption
caching this is entirely unnecessary, as it changes every frame
2025-01-27 17:04:46 -03:00
nashmuhandes
27b6cb2f72 Allow passing sound volume to PlayBounceSound in ZScript 2025-01-23 13:54:26 -03:00
Boondorl
72ed0c4377 Various bouncing fixes
Fixed bounce flag checks being inversed on 3D floors. Decoupled wall bouncing flag from floor/ceiling flags since they relied on it in the case of hitting steep ramps. Fixed wall bounces that actually bounce off planes not returning the correct value.
2024-11-27 22:37:01 -05:00
Boondorl
0010f22faa Fixed successful bounces on Actor tops not damaging them 2024-11-27 22:36:48 -05:00
Boondorl
4726cc9ec5 Fixes for serializing and initializing
Fixed missing DViewPosition serializing. Fixed missing initializers in player_t.
2024-11-27 22:36:38 -05:00
Boondorl
1d35ff8bc7
Fixed incorrect autooff behavior on ceiling bounce (#2837)
* Fixed incorrect autooff behavior on ceiling bounce

* Fixed incorrect Actor bouncing behavior
2024-11-26 05:59:20 -05:00
Boondorl
5240c52b07
Fixed bouncing on 3D floors (#2835) 2024-11-26 03:43:09 -05:00
Boondorl
941f9502e9
Improved "respawn where died" functionality (#2831)
Now uses a "last safe position" system instead. This:
-Prevents players from slipping into places they shouldn't via their dead body and then respawning there
-No longer sends players back to spawn if they fall into kill pits
-Adds a safety feature where the kill command always resets back to spawn should a player ever get stuck somewhere
2024-11-24 09:44:47 -05:00
Boondorl
1825c8ba77 Fixed poison not clearing on revive 2024-11-21 12:32:47 -03:00
Boondorl
3ea5be1ea7 Reworked FRandom constructors
Removes ambiguity while keeping old constructor syntax in check for better overall portability.
2024-11-15 23:56:23 -03:00
Boondorl
597b06ae52 Added CRandom functions
Unique RNG namespace for client-side effects and HUDs. Identifiers for these cannot clash with identifiers that affect the playsim making them completely safe to use in HUD elements. They also won't be saved.
2024-11-15 23:56:23 -03:00
inkoalawetrust
34dc204517
Re-added sector damage for non-players. (#2773)
* Re-add non-player sector damage.

Reimplements SECMF_HURTMONSTERS and SECMF_HARMINAIR.

* Fixed 3D floor handling for sector damage.

Fixes sector damage to either monsters or players not working on (non-)solid 3D floors.
2024-10-20 07:51:36 -04:00
Rachael Alexanderson
4ba53e34e4
Revert "Added SECMF_HURTMONSTERS, SECMF_HARMINAIR and NOSECTORDAMAGE."
This reverts commit 391f496512.
2024-10-19 10:25:03 -04:00
Rachael Alexanderson
dd740b59e0
Revert "- simplify and deconstruct logic for applying sector damage - also fixes voodoo doll sector damage in TNT MAP30"
This reverts commit 3e33e31d19.

Revert "Added MF9_FORCESECTORDAMAGE."

This reverts commit 61bd3a739a.
2024-10-19 10:17:22 -04:00
Rachael Alexanderson
3e33e31d19
- simplify and deconstruct logic for applying sector damage - also fixes voodoo doll sector damage in TNT MAP30 2024-10-14 03:48:02 -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
inkoalawetrust
61bd3a739a Added MF9_FORCESECTORDAMAGE.
This flag forces non-player actors to take  damage from hurt floors even if SECMF_HURTMONSTERS isn't true.
2024-10-09 13:51:48 -03:00
Christoph Oelckers
ccbebfcf34 fix kill count management in CopyFriendliness when used on corpses. 2024-10-04 18:33:53 +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
Ricardo Luís Vaz Silva
f8b68a6927 Serialize damagesource, fix bad character in actor.zs 2024-10-01 11:53:11 -03:00
jekyllgrim
83165dccbf Add damagesource 2024-10-01 11:53:11 -03:00
jekyllgrim
f13bc09840 Add bIsPuff flag 2024-10-01 11:53:11 -03:00
Boondorl
8e1b25803e Fix for NoLocalRender not snapshotting between hub levels 2024-09-30 02:21:52 -04:00
inkoalawetrust
391f496512 Added SECMF_HURTMONSTERS, SECMF_HARMINAIR and NOSECTORDAMAGE.
- Added SECMF_HURTMONSTERS, which allows monsters in the flagged sector to be hurt with the same behavior as players (i.e damage leaking).
- Added SECMF_HARMINAIR, which allows players (And monsters with SECMF_HURTMONSTERS) to be hurt when they're inside the sector in general, instead of only when they're walking on it. Replicates the behavior of the DAMAGE_IN_AIR flag that SectorDamage() uses.
- Added NOSECTORDAMAGE, which makes actors with the flag immune to any harmful floors.
2024-09-29 18:12:30 -04:00
jekyllgrim
994078feae Added FloatBobFactor
This adds a new actor property: `FloatBobFactor` (default 1.0). This will be a multiplier for level.time in `AActor::GetBobOffset`, which finally allows to control not only the range of float bobbing (which is FloatBobStrength) but also the frequency of bobbing.
2024-09-29 16:08:02 -04:00
Ricardo Luís Vaz Silva
1429e22441 rework interpolation to allow for precalculated frames 2024-09-13 17:05:22 -03:00
Ricardo Luís Vaz Silva
afcd38907c add SpawnMultiCoopOnly mapinfo flag to spawn **only** coop spawns in single-player 2024-09-08 17:10:33 -03:00
nashmuhandes
8043370ef1 Export PlayDiveOrSurfaceSounds to ZScript and made it virtual for mods to customize the diving and surfacing sounds 2024-08-11 14:34:53 -04:00
Ricardo Luís Vaz Silva
7ddd4ec245 handle freeze in decoupled animations 2024-07-09 12:25:28 -03:00
Major Cooke
3e91d38582 Fixed Pre(Un)Morph being called out of order.
- This had broken several mods that relied on the inventory being in place before the switch, which was the intended way to begin with.
2024-06-24 10:37:12 -04:00
nashmuhandes
ae28eeae94 Scriptified the view squatting. 2024-05-26 21:06:20 -03:00
Boondorl
da4752d7ec Fixed unmorphed Actors still ticking 2024-05-11 06:37:37 -04:00
Boondorl
ca95e18742 View fixes when predicting
View interpolation paths are now reset properly when predicting, fixing portals. Teleporters disabling view interpolation is now handled before every movement instead of only once at the start of predicting. Enabled FoV interpolation when playing online.
2024-04-25 17:19:27 -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
7c9c7fa1f7 fixed: AActor's members must all be native.
The morph code added 4 scripted ones, but AActor's size must be known at compile time.
2024-04-25 18:15:47 +02:00
Christoph Oelckers
ebd4ebf298 StringTable cleanup and improvements
cleaned up function interface to avoid referencing the file system in the worker functions.
replaced StringTable's operators with functions.. The main reason is that these are far easier to look up when browsing the source.
This also fixes a premature translation in SBARINFO that was done in the parsing stage, not the printing stage.
2024-04-21 10:34:44 +02:00
Boondorl
8d0d130dc9
New API for assigning unique network ids to objects 2024-04-20 19:14:29 -04:00
Boondorl
bcd6c6170e
Reapply "Improvements to death and cheat handling"
This reverts commit c7bba2a126.
2024-04-20 01:15:46 -04:00
Rachael Alexanderson
c7bba2a126
Revert "Improvements to death and cheat handling"
This reverts commit 3033fafaa7.

Revert "Improved ZScript interface for morphing"

This reverts commit 6c64a4403c.

Revert "Further morphing clean up"

This reverts commit 12dc5c1506.

Revert "Fixed inconsistencies between player and monster morphing"

This reverts commit 30730647fe.

Revert "Reworked Morphing"

This reverts commit 2c09a443b4.

- fix compile
2024-04-17 17:55:24 -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
29a2ca0b13 Added co-op option to remember last used weapon when respawning 2024-03-28 15:48:56 -04:00
Boondorl
442ac3f78b Updated substitution logic to only replace pointers if safe 2024-03-28 15:48:23 -04:00
Ricardo Luís Vaz Silva
ce479e09ff Fix A_ChangeModel serialization
I overlooked this part on my first A_ChangeModel fix
2024-03-17 18:07:50 -03:00
nashmuhandes
0d9855cfe7 Expose LandingSpeed to ZScript. This controls the minimum Z velocity from falling down that's needed to "squat" the player's view (defaults to -8). 2024-03-12 18:08:42 -04:00