- added a FloatBobPhase property for DECORATE. Now, if FloatBobPhase is anything but -1 it will be used directly as the initial phase, allowing to define actors that bob in sync. The allowed range of phases is 0 - 63. The main reason for this is that each actor spawn called the pr_spawnmobj RNG just to randomize this value which causes problems with non-interactive actors, in particular GZDoom's dynamic lights.

SVN r4296 (trunk)
This commit is contained in:
Christoph Oelckers 2013-05-30 08:52:29 +00:00
commit a7c2346b32
3 changed files with 12 additions and 1 deletions

View file

@ -3879,7 +3879,7 @@ AActor *AActor::StaticSpawn (const PClass *type, fixed_t ix, fixed_t iy, fixed_t
actor->SpawnPoint[2] = (actor->z - actor->floorz);
}
actor->FloatBobPhase = rng(); // Don't make everything bob in sync
if (actor->FloatBobPhase < 0) actor->FloatBobPhase = rng(); // Don't make everything bob in sync (unless deliberately told to do)
if (actor->flags2 & MF2_FLOORCLIP)
{
actor->AdjustFloorClip ();