- Add "Intensity" property for dynamic lights in GLDEFS that will multiply the brightness of the light, useful for overbrightening/underbrightening a light.
- Also add an "intensity" parameter for A_AttachLight in ZScript. Note that for any kind of light overbrightening to do anything at all, one of the unclamped LightBlendModes in MAPINFO must be enabled.
This commit is contained in:
parent
b56d184d8c
commit
b44f8f0cc9
7 changed files with 38 additions and 3 deletions
|
|
@ -81,6 +81,7 @@ FSerializer &Serialize(FSerializer &arc, const char *key, FLightDefaults &value,
|
|||
("spotinner", value.m_spotInnerAngle)
|
||||
("spotouter", value.m_spotOuterAngle)
|
||||
("pitch", value.m_pitch)
|
||||
("lightdefintensity", value.m_LightDefIntensity)
|
||||
.EndObject();
|
||||
}
|
||||
return arc;
|
||||
|
|
@ -125,6 +126,7 @@ void FLightDefaults::ApplyProperties(FDynamicLight * light) const
|
|||
light->m_active = true;
|
||||
light->lighttype = m_type;
|
||||
light->specialf1 = m_Param;
|
||||
light->lightDefIntensity = m_LightDefIntensity;
|
||||
light->pArgs = m_Args;
|
||||
light->pLightFlags = &m_lightFlags;
|
||||
if (m_lightFlags & LF_SPOT)
|
||||
|
|
|
|||
|
|
@ -200,6 +200,7 @@ static const char *LightTags[]=
|
|||
"noshadowmap",
|
||||
"dontlightothers",
|
||||
"dontlightmap",
|
||||
"intensity",
|
||||
nullptr
|
||||
};
|
||||
|
||||
|
|
@ -226,6 +227,7 @@ enum {
|
|||
LIGHTTAG_NOSHADOWMAP,
|
||||
LIGHTTAG_DONTLIGHTOTHERS,
|
||||
LIGHTTAG_DONTLIGHTMAP,
|
||||
LIGHTTAG_INTENSITY,
|
||||
};
|
||||
|
||||
//==========================================================================
|
||||
|
|
@ -541,6 +543,9 @@ class GLDefsParser
|
|||
defaults->SetSpotOuterAngle(outerAngle);
|
||||
}
|
||||
break;
|
||||
case LIGHTTAG_INTENSITY:
|
||||
defaults->SetLightDefIntensity(ParseFloat(sc));
|
||||
break;
|
||||
default:
|
||||
sc.ScriptError("Unknown tag: %s\n", sc.String);
|
||||
}
|
||||
|
|
@ -643,6 +648,9 @@ class GLDefsParser
|
|||
defaults->SetSpotOuterAngle(outerAngle);
|
||||
}
|
||||
break;
|
||||
case LIGHTTAG_INTENSITY:
|
||||
defaults->SetLightDefIntensity(ParseFloat(sc));
|
||||
break;
|
||||
default:
|
||||
sc.ScriptError("Unknown tag: %s\n", sc.String);
|
||||
}
|
||||
|
|
@ -748,6 +756,9 @@ class GLDefsParser
|
|||
defaults->SetSpotOuterAngle(outerAngle);
|
||||
}
|
||||
break;
|
||||
case LIGHTTAG_INTENSITY:
|
||||
defaults->SetLightDefIntensity(ParseFloat(sc));
|
||||
break;
|
||||
default:
|
||||
sc.ScriptError("Unknown tag: %s\n", sc.String);
|
||||
}
|
||||
|
|
@ -852,6 +863,9 @@ class GLDefsParser
|
|||
defaults->SetSpotOuterAngle(outerAngle);
|
||||
}
|
||||
break;
|
||||
case LIGHTTAG_INTENSITY:
|
||||
defaults->SetLightDefIntensity(ParseFloat(sc));
|
||||
break;
|
||||
default:
|
||||
sc.ScriptError("Unknown tag: %s\n", sc.String);
|
||||
}
|
||||
|
|
@ -953,6 +967,9 @@ class GLDefsParser
|
|||
defaults->SetSpotOuterAngle(outerAngle);
|
||||
}
|
||||
break;
|
||||
case LIGHTTAG_INTENSITY:
|
||||
defaults->SetLightDefIntensity(ParseFloat(sc));
|
||||
break;
|
||||
default:
|
||||
sc.ScriptError("Unknown tag: %s\n", sc.String);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue