mirror of
https://github.com/ZDoom/qzdoom.git
synced 2024-11-28 15:02:01 +00:00
- fixed: Phased light setup did not check if a sector had been already visited and could cause infinite recursion.
This commit is contained in:
parent
1d77f1f72e
commit
b15e620ea8
1 changed files with 4 additions and 1 deletions
|
@ -31,6 +31,7 @@
|
|||
|
||||
#include "p_lnspec.h"
|
||||
#include "doomstat.h"
|
||||
#include "p_maputl.h"
|
||||
|
||||
// State.
|
||||
#include "r_state.h"
|
||||
|
@ -914,7 +915,7 @@ void DPhased::Tick ()
|
|||
|
||||
int DPhased::PhaseHelper (sector_t *sector, int index, int light, sector_t *prev)
|
||||
{
|
||||
if (!sector)
|
||||
if (!sector || sector->validcount == validcount)
|
||||
{
|
||||
return index;
|
||||
}
|
||||
|
@ -922,6 +923,7 @@ int DPhased::PhaseHelper (sector_t *sector, int index, int light, sector_t *prev
|
|||
{
|
||||
DPhased *l;
|
||||
int baselevel = sector->lightlevel ? sector->lightlevel : light;
|
||||
sector->validcount = validcount;
|
||||
|
||||
if (index == 0)
|
||||
{
|
||||
|
@ -958,6 +960,7 @@ DPhased::DPhased (sector_t *sector, int baselevel)
|
|||
DPhased::DPhased (sector_t *sector)
|
||||
: DLighting (sector)
|
||||
{
|
||||
validcount++;
|
||||
PhaseHelper (sector, 0, 0, NULL);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue