- 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).
* 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.
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.
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.
CallTryPickup will cache the item's class and pass it to HasReceived, so the latter will know what item was received even if the item has been destroyed by the time it's called.