mirror of
https://github.com/ZDoom/gzdoom-gles.git
synced 2025-05-31 01:11:08 +00:00
Merge remote-tracking branch 'origin/master' into materials
This commit is contained in:
commit
c7ec489846
68 changed files with 2248 additions and 945 deletions
|
@ -129,6 +129,9 @@ public:
|
|||
void SetAttenuate(bool on) { m_attenuate = on; }
|
||||
void SetHalo(bool halo) { m_halo = halo; }
|
||||
void SetDontLightActors(bool on) { m_dontlightactors = on; }
|
||||
void SetSpot(bool spot) { m_spot = spot; }
|
||||
void SetSpotInnerAngle(double angle) { m_spotInnerAngle = angle; }
|
||||
void SetSpotOuterAngle(double angle) { m_spotOuterAngle = angle; }
|
||||
|
||||
void OrderIntensities()
|
||||
{
|
||||
|
@ -152,6 +155,9 @@ protected:
|
|||
bool m_dontlightself = false;
|
||||
bool m_dontlightactors = false;
|
||||
bool m_swapped = false;
|
||||
bool m_spot = false;
|
||||
double m_spotInnerAngle = 10.0;
|
||||
double m_spotOuterAngle = 25.0;
|
||||
};
|
||||
|
||||
TDeletingArray<FLightDefaults *> LightDefaults;
|
||||
|
@ -184,6 +190,10 @@ void FLightDefaults::ApplyProperties(ADynamicLight * light) const
|
|||
if (m_additive) light->lightflags |= LF_ADDITIVE;
|
||||
if (m_dontlightself) light->lightflags |= LF_DONTLIGHTSELF;
|
||||
if (m_dontlightactors) light->lightflags |= LF_DONTLIGHTACTORS;
|
||||
if (m_spot)
|
||||
light->lightflags |= LF_SPOT;
|
||||
light->SpotInnerAngle = m_spotInnerAngle;
|
||||
light->SpotOuterAngle = m_spotOuterAngle;
|
||||
light->m_tickCount = 0;
|
||||
if (m_type == PulseLight)
|
||||
{
|
||||
|
@ -234,7 +244,8 @@ static const char *LightTags[]=
|
|||
"dontlightself",
|
||||
"attenuate",
|
||||
"dontlightactors",
|
||||
NULL
|
||||
"spot",
|
||||
nullptr
|
||||
};
|
||||
|
||||
|
||||
|
@ -256,6 +267,7 @@ enum {
|
|||
LIGHTTAG_DONTLIGHTSELF,
|
||||
LIGHTTAG_ATTENUATE,
|
||||
LIGHTTAG_DONTLIGHTACTORS,
|
||||
LIGHTTAG_SPOT
|
||||
};
|
||||
|
||||
|
||||
|
@ -396,6 +408,15 @@ static void ParsePointLight(FScanner &sc)
|
|||
case LIGHTTAG_DONTLIGHTACTORS:
|
||||
defaults->SetDontLightActors(ParseInt(sc) != 0);
|
||||
break;
|
||||
case LIGHTTAG_SPOT:
|
||||
{
|
||||
float innerAngle = ParseFloat(sc);
|
||||
float outerAngle = ParseFloat(sc);
|
||||
defaults->SetSpot(true);
|
||||
defaults->SetSpotInnerAngle(innerAngle);
|
||||
defaults->SetSpotOuterAngle(outerAngle);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
sc.ScriptError("Unknown tag: %s\n", sc.String);
|
||||
}
|
||||
|
@ -481,6 +502,15 @@ static void ParsePulseLight(FScanner &sc)
|
|||
case LIGHTTAG_DONTLIGHTACTORS:
|
||||
defaults->SetDontLightActors(ParseInt(sc) != 0);
|
||||
break;
|
||||
case LIGHTTAG_SPOT:
|
||||
{
|
||||
float innerAngle = ParseFloat(sc);
|
||||
float outerAngle = ParseFloat(sc);
|
||||
defaults->SetSpot(true);
|
||||
defaults->SetSpotInnerAngle(innerAngle);
|
||||
defaults->SetSpotOuterAngle(outerAngle);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
sc.ScriptError("Unknown tag: %s\n", sc.String);
|
||||
}
|
||||
|
@ -568,6 +598,15 @@ void ParseFlickerLight(FScanner &sc)
|
|||
case LIGHTTAG_DONTLIGHTACTORS:
|
||||
defaults->SetDontLightActors(ParseInt(sc) != 0);
|
||||
break;
|
||||
case LIGHTTAG_SPOT:
|
||||
{
|
||||
float innerAngle = ParseFloat(sc);
|
||||
float outerAngle = ParseFloat(sc);
|
||||
defaults->SetSpot(true);
|
||||
defaults->SetSpotInnerAngle(innerAngle);
|
||||
defaults->SetSpotOuterAngle(outerAngle);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
sc.ScriptError("Unknown tag: %s\n", sc.String);
|
||||
}
|
||||
|
@ -654,6 +693,15 @@ void ParseFlickerLight2(FScanner &sc)
|
|||
case LIGHTTAG_DONTLIGHTACTORS:
|
||||
defaults->SetDontLightActors(ParseInt(sc) != 0);
|
||||
break;
|
||||
case LIGHTTAG_SPOT:
|
||||
{
|
||||
float innerAngle = ParseFloat(sc);
|
||||
float outerAngle = ParseFloat(sc);
|
||||
defaults->SetSpot(true);
|
||||
defaults->SetSpotInnerAngle(innerAngle);
|
||||
defaults->SetSpotOuterAngle(outerAngle);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
sc.ScriptError("Unknown tag: %s\n", sc.String);
|
||||
}
|
||||
|
@ -737,6 +785,15 @@ static void ParseSectorLight(FScanner &sc)
|
|||
case LIGHTTAG_DONTLIGHTACTORS:
|
||||
defaults->SetDontLightActors(ParseInt(sc) != 0);
|
||||
break;
|
||||
case LIGHTTAG_SPOT:
|
||||
{
|
||||
float innerAngle = ParseFloat(sc);
|
||||
float outerAngle = ParseFloat(sc);
|
||||
defaults->SetSpot(true);
|
||||
defaults->SetSpotInnerAngle(innerAngle);
|
||||
defaults->SetSpotOuterAngle(outerAngle);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
sc.ScriptError("Unknown tag: %s\n", sc.String);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue