At present, dynamic lights are spawning actual objects that end up using the pr_spawnmobj RNG. The 2 main problems with this is:
1) Players can load their own dynamic light definitions, none at all, or have dynamic lights disabled all-together, inconsistently offsetting pr_spawnmobj between each session.
2) Changing some display settings will re-initialize dynamic lights. Window mode and resolution, for example.
This, predictably, creates synchronization issues in demos and netgames due to inconsistent dynamic light spawns. At least preventing them or using a separate RNG at p_mobj.cpp: line 3780 (AActor::StaticSpawn) should suffice.
[r1578] pr_spawnmobj is used by dynamic lights (sync issue)
Moderator: Graf Zahl
- Edward850
- Posts: 63
- Joined: Fri Mar 20, 2009 21:48
- Graf Zahl
- GZDoom Developer
- Posts: 7148
- Joined: Wed Jul 20, 2005 9:48
- Location: Germany
- Contact:
Re: [r1578] pr_spawnmobj is used by dynamic lights (sync iss
Before hacking around with this I'd rather change the one thing the RNG is used for (the floatbob phase), so that it becomes a user settable property and only if explicitly set to 'random' causing the RNG to be called.
All other calls of pr_spawnmobj simply cannot happen for dynamic light spawns.
All other calls of pr_spawnmobj simply cannot happen for dynamic light spawns.