- properly handle passing of the light flags.

Since these can be changed on the placed light actor they have to be read from there, so this is now a pointer in FDynamicLight, just like the other properties that can be user-changed.
Also did some cleanup on the interface so that external code doesn't need to dereference the lightflags pointer but can use utility functions for all flags.
This commit is contained in:
Christoph Oelckers 2019-01-03 09:24:22 +01:00
commit 8da1b5c1b0
13 changed files with 74 additions and 64 deletions

View file

@ -138,6 +138,7 @@ static const char *LightTags[]=
"attenuate",
"dontlightactors",
"spot",
"noshadowmap",
nullptr
};
@ -160,7 +161,8 @@ enum {
LIGHTTAG_DONTLIGHTSELF,
LIGHTTAG_ATTENUATE,
LIGHTTAG_DONTLIGHTACTORS,
LIGHTTAG_SPOT
LIGHTTAG_SPOT,
LIGHTTAG_NOSHADOWMAP,
};
//==========================================================================
@ -444,8 +446,11 @@ class GLDefsParser
case LIGHTTAG_ADDITIVE:
defaults->SetAdditive(ParseInt(sc) != 0);
break;
case LIGHTTAG_HALO:
defaults->SetHalo(ParseInt(sc) != 0);
case LIGHTTAG_HALO: // old development garbage
ParseInt(sc);
break;
case LIGHTTAG_NOSHADOWMAP:
defaults->SetNoShadowmap(ParseInt(sc) != 0);
break;
case LIGHTTAG_DONTLIGHTSELF:
defaults->SetDontLightSelf(ParseInt(sc) != 0);
@ -537,8 +542,11 @@ class GLDefsParser
case LIGHTTAG_SUBTRACTIVE:
defaults->SetSubtractive(ParseInt(sc) != 0);
break;
case LIGHTTAG_HALO:
defaults->SetHalo(ParseInt(sc) != 0);
case LIGHTTAG_HALO: // old development garbage
ParseInt(sc);
break;
case LIGHTTAG_NOSHADOWMAP:
defaults->SetNoShadowmap(ParseInt(sc) != 0);
break;
case LIGHTTAG_DONTLIGHTSELF:
defaults->SetDontLightSelf(ParseInt(sc) != 0);
@ -633,8 +641,11 @@ class GLDefsParser
case LIGHTTAG_SUBTRACTIVE:
defaults->SetSubtractive(ParseInt(sc) != 0);
break;
case LIGHTTAG_HALO:
defaults->SetHalo(ParseInt(sc) != 0);
case LIGHTTAG_HALO: // old development garbage
ParseInt(sc);
break;
case LIGHTTAG_NOSHADOWMAP:
defaults->SetNoShadowmap(ParseInt(sc) != 0);
break;
case LIGHTTAG_DONTLIGHTSELF:
defaults->SetDontLightSelf(ParseInt(sc) != 0);
@ -728,8 +739,11 @@ class GLDefsParser
case LIGHTTAG_SUBTRACTIVE:
defaults->SetSubtractive(ParseInt(sc) != 0);
break;
case LIGHTTAG_HALO:
defaults->SetHalo(ParseInt(sc) != 0);
case LIGHTTAG_HALO: // old development garbage
ParseInt(sc);
break;
case LIGHTTAG_NOSHADOWMAP:
defaults->SetNoShadowmap(ParseInt(sc) != 0);
break;
case LIGHTTAG_DONTLIGHTSELF:
defaults->SetDontLightSelf(ParseInt(sc) != 0);
@ -820,8 +834,11 @@ class GLDefsParser
case LIGHTTAG_SUBTRACTIVE:
defaults->SetSubtractive(ParseInt(sc) != 0);
break;
case LIGHTTAG_HALO:
defaults->SetHalo(ParseInt(sc) != 0);
case LIGHTTAG_HALO: // old development garbage
ParseInt(sc);
break;
case LIGHTTAG_NOSHADOWMAP:
defaults->SetNoShadowmap(ParseInt(sc) != 0);
break;
case LIGHTTAG_DONTLIGHTSELF:
defaults->SetDontLightSelf(ParseInt(sc) != 0);