mirror of
https://github.com/celisej567/Fake-CSM-Mapbase.git
synced 2025-12-31 21:48:38 +03:00
new inputs
-new input LightColor that changes a color. -new input SetAngles that changes angles -added csm_intensity convar -now TurnOn and TurnOff its Enable and Disable
This commit is contained in:
@@ -96,6 +96,15 @@ private:
|
||||
ClientShadowHandle_t m_LightHandle;
|
||||
|
||||
EHANDLE m_hTargetEntity;
|
||||
color32 m_LightColor;
|
||||
|
||||
#ifdef MAPBASE
|
||||
float m_flBrightnessScale;
|
||||
float m_flCurrentBrightnessScale;
|
||||
#endif
|
||||
Vector m_CurrentLinearFloatLightColor;
|
||||
float m_flCurrentLinearFloatLightAlpha;
|
||||
float m_flColorTransitionTime;
|
||||
|
||||
void updatePos();
|
||||
CBaseEntity* pEntity = NULL;
|
||||
@@ -121,6 +130,7 @@ IMPLEMENT_CLIENTCLASS_DT(C_EnvCascadeLight, DT_EnvCascadeLight, CEnvCascadeLight
|
||||
RecvPropFloat( RECVINFO( m_flLightFOV ) ),
|
||||
RecvPropBool( RECVINFO( m_bEnableShadows ) ),
|
||||
RecvPropBool( RECVINFO( m_bLightOnlyTarget ) ),
|
||||
RecvPropInt(RECVINFO(m_LightColor), 0, RecvProxy_IntToColor32), //i have fukin lighting
|
||||
RecvPropBool( RECVINFO( m_bLightWorld ) ),
|
||||
RecvPropBool( RECVINFO( m_bCameraSpace ) ),
|
||||
RecvPropVector( RECVINFO( m_LinearFloatLightColor ) ),
|
||||
@@ -134,7 +144,6 @@ END_RECV_TABLE()
|
||||
|
||||
C_EnvCascadeLight::C_EnvCascadeLight( void )
|
||||
{
|
||||
|
||||
m_LightHandle = CLIENTSHADOW_INVALID_HANDLE;
|
||||
}
|
||||
|
||||
@@ -158,7 +167,7 @@ void C_EnvCascadeLight::updatePos()
|
||||
{
|
||||
if (firstUpdate)
|
||||
{
|
||||
m_flNearZ = 4000;
|
||||
m_flNearZ = 5000;
|
||||
m_flFarZ = 16000;
|
||||
}
|
||||
}
|
||||
@@ -170,10 +179,11 @@ void C_EnvCascadeLight::updatePos()
|
||||
void C_EnvCascadeLight::OnDataChanged( DataUpdateType_t updateType )
|
||||
{
|
||||
UpdateLight( true );
|
||||
|
||||
BaseClass::OnDataChanged( updateType );
|
||||
}
|
||||
|
||||
|
||||
ConVar csm_intensity("csm_intensity","1");
|
||||
|
||||
void C_EnvCascadeLight::UpdateLight( bool bForceUpdate )
|
||||
{
|
||||
@@ -237,6 +247,46 @@ void C_EnvCascadeLight::UpdateLight( bool bForceUpdate )
|
||||
}
|
||||
|
||||
|
||||
Vector vLinearFloatLightColor(m_LightColor.r, m_LightColor.g, m_LightColor.b);
|
||||
float flLinearFloatLightAlpha = m_LightColor.a;
|
||||
|
||||
#ifdef MAPBASE
|
||||
if (m_CurrentLinearFloatLightColor != vLinearFloatLightColor || m_flCurrentLinearFloatLightAlpha != flLinearFloatLightAlpha)
|
||||
{
|
||||
if (m_flColorTransitionTime != 0.0f)
|
||||
{
|
||||
float flColorTransitionSpeed = gpGlobals->frametime * m_flColorTransitionTime * 255.0f;
|
||||
|
||||
m_CurrentLinearFloatLightColor.x = Approach(vLinearFloatLightColor.x, m_CurrentLinearFloatLightColor.x, flColorTransitionSpeed);
|
||||
m_CurrentLinearFloatLightColor.y = Approach(vLinearFloatLightColor.y, m_CurrentLinearFloatLightColor.y, flColorTransitionSpeed);
|
||||
m_CurrentLinearFloatLightColor.z = Approach(vLinearFloatLightColor.z, m_CurrentLinearFloatLightColor.z, flColorTransitionSpeed);
|
||||
m_flCurrentLinearFloatLightAlpha = Approach(flLinearFloatLightAlpha, m_flCurrentLinearFloatLightAlpha, flColorTransitionSpeed);
|
||||
//m_flCurrentBrightnessScale = Approach(m_flBrightnessScale, m_flCurrentBrightnessScale, flColorTransitionSpeed);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Just do it instantly
|
||||
m_CurrentLinearFloatLightColor.x = vLinearFloatLightColor.x;
|
||||
m_CurrentLinearFloatLightColor.y = vLinearFloatLightColor.y;
|
||||
m_CurrentLinearFloatLightColor.z = vLinearFloatLightColor.z;
|
||||
m_flCurrentLinearFloatLightAlpha = flLinearFloatLightAlpha;
|
||||
//m_flCurrentBrightnessScale = m_flBrightnessScale;
|
||||
}
|
||||
}
|
||||
#else
|
||||
if (m_CurrentLinearFloatLightColor != vLinearFloatLightColor || m_flCurrentLinearFloatLightAlpha != flLinearFloatLightAlpha)
|
||||
{
|
||||
float flColorTransitionSpeed = gpGlobals->frametime * m_flColorTransitionTime * 255.0f;
|
||||
|
||||
m_CurrentLinearFloatLightColor.x = Approach(vLinearFloatLightColor.x, m_CurrentLinearFloatLightColor.x, flColorTransitionSpeed);
|
||||
m_CurrentLinearFloatLightColor.y = Approach(vLinearFloatLightColor.y, m_CurrentLinearFloatLightColor.y, flColorTransitionSpeed);
|
||||
m_CurrentLinearFloatLightColor.z = Approach(vLinearFloatLightColor.z, m_CurrentLinearFloatLightColor.z, flColorTransitionSpeed);
|
||||
m_flCurrentLinearFloatLightAlpha = Approach(flLinearFloatLightAlpha, m_flCurrentLinearFloatLightAlpha, flColorTransitionSpeed);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
state.m_fHorizontalFOVDegrees = m_flLightFOV;
|
||||
state.m_fVerticalFOVDegrees = m_flLightFOV;
|
||||
|
||||
@@ -246,12 +296,23 @@ void C_EnvCascadeLight::UpdateLight( bool bForceUpdate )
|
||||
state.m_fQuadraticAtten = 0.0;
|
||||
state.m_fLinearAtten = 100;
|
||||
state.m_fConstantAtten = 0.0f;
|
||||
state.m_Color[0] = m_LinearFloatLightColor.x;
|
||||
state.m_Color[1] = m_LinearFloatLightColor.y;
|
||||
state.m_Color[2] = m_LinearFloatLightColor.z;
|
||||
//state.m_Color[0] = m_LinearFloatLightColor.x;
|
||||
//state.m_Color[1] = m_LinearFloatLightColor.y;
|
||||
//state.m_Color[2] = m_LinearFloatLightColor.z;
|
||||
|
||||
#ifdef MAPBASE
|
||||
float flAlpha = m_flCurrentLinearFloatLightAlpha * (1.0f / 255.0f);
|
||||
state.m_Color[0] = (m_CurrentLinearFloatLightColor.x * (1.0f / 255.0f) * flAlpha) * csm_intensity.GetFloat();
|
||||
state.m_Color[1] = (m_CurrentLinearFloatLightColor.y * (1.0f / 255.0f) * flAlpha) * csm_intensity.GetFloat();
|
||||
state.m_Color[2] = (m_CurrentLinearFloatLightColor.z * (1.0f / 255.0f) * flAlpha) * csm_intensity.GetFloat();
|
||||
#else
|
||||
state.m_Color[0] = m_CurrentLinearFloatLightColor.x * (1.0f / 255.0f) * csm_intensity.GetFloat();
|
||||
state.m_Color[1] = m_CurrentLinearFloatLightColor.y * (1.0f / 255.0f) * csm_intensity.GetFloat();
|
||||
state.m_Color[2] = m_CurrentLinearFloatLightColor.z * (1.0f / 255.0f) * csm_intensity.GetFloat();
|
||||
#endif
|
||||
|
||||
state.m_Color[3] = m_flAmbient; // fixme: need to make ambient work m_flAmbient;
|
||||
state.m_NearZ = m_flNearZ;
|
||||
|
||||
state.m_FarZ = m_flFarZ;
|
||||
state.m_flShadowSlopeScaleDepthBias = mat_slopescaledepthbias_shadowmap.GetFloat();
|
||||
state.m_flShadowDepthBias = mat_depthbias_shadowmap.GetFloat();
|
||||
@@ -342,6 +403,16 @@ private:
|
||||
|
||||
ClientShadowHandle_t m_LightHandle;
|
||||
|
||||
color32 m_LightColor;
|
||||
|
||||
#ifdef MAPBASE
|
||||
float m_flBrightnessScale;
|
||||
float m_flCurrentBrightnessScale;
|
||||
#endif
|
||||
Vector m_CurrentLinearFloatLightColor;
|
||||
float m_flCurrentLinearFloatLightAlpha;
|
||||
float m_flColorTransitionTime;
|
||||
|
||||
EHANDLE m_hTargetEntity;
|
||||
CBaseEntity* pEntity = NULL;
|
||||
bool firstUpdate = true;
|
||||
@@ -361,6 +432,7 @@ private:
|
||||
};
|
||||
|
||||
IMPLEMENT_CLIENTCLASS_DT(C_EnvCascadeLightSecond, DT_EnvCascadeLightSecond, CEnvCascadeLightSecond)
|
||||
RecvPropInt(RECVINFO(m_LightColor), 0, RecvProxy_IntToColor32),
|
||||
RecvPropEHandle(RECVINFO(m_hTargetEntity)),
|
||||
RecvPropBool(RECVINFO(m_bState)),
|
||||
RecvPropFloat(RECVINFO(m_flLightFOV)),
|
||||
@@ -463,6 +535,45 @@ void C_EnvCascadeLightSecond::UpdateLight(bool bForceUpdate)
|
||||
AngleVectors(GetAbsAngles(), &vForward, &vRight, &vUp);
|
||||
}
|
||||
|
||||
Vector vLinearFloatLightColor(m_LightColor.r, m_LightColor.g, m_LightColor.b);
|
||||
float flLinearFloatLightAlpha = m_LightColor.a;
|
||||
|
||||
#ifdef MAPBASE
|
||||
if (m_CurrentLinearFloatLightColor != vLinearFloatLightColor || m_flCurrentLinearFloatLightAlpha != flLinearFloatLightAlpha)
|
||||
{
|
||||
if (m_flColorTransitionTime != 0.0f)
|
||||
{
|
||||
float flColorTransitionSpeed = gpGlobals->frametime * m_flColorTransitionTime * 255.0f;
|
||||
|
||||
m_CurrentLinearFloatLightColor.x = Approach(vLinearFloatLightColor.x, m_CurrentLinearFloatLightColor.x, flColorTransitionSpeed);
|
||||
m_CurrentLinearFloatLightColor.y = Approach(vLinearFloatLightColor.y, m_CurrentLinearFloatLightColor.y, flColorTransitionSpeed);
|
||||
m_CurrentLinearFloatLightColor.z = Approach(vLinearFloatLightColor.z, m_CurrentLinearFloatLightColor.z, flColorTransitionSpeed);
|
||||
m_flCurrentLinearFloatLightAlpha = Approach(flLinearFloatLightAlpha, m_flCurrentLinearFloatLightAlpha, flColorTransitionSpeed);
|
||||
//m_flCurrentBrightnessScale = Approach(m_flBrightnessScale, m_flCurrentBrightnessScale, flColorTransitionSpeed);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Just do it instantly
|
||||
m_CurrentLinearFloatLightColor.x = vLinearFloatLightColor.x;
|
||||
m_CurrentLinearFloatLightColor.y = vLinearFloatLightColor.y;
|
||||
m_CurrentLinearFloatLightColor.z = vLinearFloatLightColor.z;
|
||||
m_flCurrentLinearFloatLightAlpha = flLinearFloatLightAlpha;
|
||||
//m_flCurrentBrightnessScale = m_flBrightnessScale;
|
||||
}
|
||||
}
|
||||
#else
|
||||
if (m_CurrentLinearFloatLightColor != vLinearFloatLightColor || m_flCurrentLinearFloatLightAlpha != flLinearFloatLightAlpha)
|
||||
{
|
||||
float flColorTransitionSpeed = gpGlobals->frametime * m_flColorTransitionTime * 255.0f;
|
||||
|
||||
m_CurrentLinearFloatLightColor.x = Approach(vLinearFloatLightColor.x, m_CurrentLinearFloatLightColor.x, flColorTransitionSpeed);
|
||||
m_CurrentLinearFloatLightColor.y = Approach(vLinearFloatLightColor.y, m_CurrentLinearFloatLightColor.y, flColorTransitionSpeed);
|
||||
m_CurrentLinearFloatLightColor.z = Approach(vLinearFloatLightColor.z, m_CurrentLinearFloatLightColor.z, flColorTransitionSpeed);
|
||||
m_flCurrentLinearFloatLightAlpha = Approach(flLinearFloatLightAlpha, m_flCurrentLinearFloatLightAlpha, flColorTransitionSpeed);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
state.m_fHorizontalFOVDegrees = m_flLightFOV;
|
||||
state.m_fVerticalFOVDegrees = m_flLightFOV;
|
||||
@@ -473,10 +584,24 @@ void C_EnvCascadeLightSecond::UpdateLight(bool bForceUpdate)
|
||||
state.m_fQuadraticAtten = 0.0;
|
||||
state.m_fLinearAtten = 100;
|
||||
state.m_fConstantAtten = 0.0f;
|
||||
state.m_Color[0] = m_LinearFloatLightColor.x;
|
||||
state.m_Color[1] = m_LinearFloatLightColor.y;
|
||||
state.m_Color[2] = m_LinearFloatLightColor.z;
|
||||
//state.m_Color[0] = m_LinearFloatLightColor.x;
|
||||
//state.m_Color[1] = m_LinearFloatLightColor.y;
|
||||
//state.m_Color[2] = m_LinearFloatLightColor.z;
|
||||
|
||||
#ifdef MAPBASE
|
||||
float flAlpha = m_flCurrentLinearFloatLightAlpha * (1.0f / 255.0f);
|
||||
state.m_Color[0] = (m_CurrentLinearFloatLightColor.x * (1.0f / 255.0f) * flAlpha) * ConVarRef("csm_second_intensity").GetFloat();
|
||||
state.m_Color[1] = (m_CurrentLinearFloatLightColor.y * (1.0f / 255.0f) * flAlpha) * ConVarRef("csm_second_intensity").GetFloat();
|
||||
state.m_Color[2] = (m_CurrentLinearFloatLightColor.z * (1.0f / 255.0f) * flAlpha) * ConVarRef("csm_second_intensity").GetFloat();
|
||||
#else
|
||||
state.m_Color[0] = m_CurrentLinearFloatLightColor.x * (1.0f / 255.0f) * ConVarRef("csm_second_intensity").GetFloat();
|
||||
state.m_Color[1] = m_CurrentLinearFloatLightColor.y * (1.0f / 255.0f) * ConVarRef("csm_second_intensity").GetFloat();
|
||||
state.m_Color[2] = m_CurrentLinearFloatLightColor.z * (1.0f / 255.0f) * ConVarRef("csm_second_intensity").GetFloat();
|
||||
#endif
|
||||
|
||||
state.m_Color[3] = 0.0f; // fixme: need to make ambient work m_flAmbient;
|
||||
m_flNearZ = 5000;
|
||||
m_flFarZ = 16000;
|
||||
state.m_NearZ = m_flNearZ;
|
||||
state.m_FarZ = m_flFarZ;
|
||||
state.m_flShadowSlopeScaleDepthBias = mat_slopescaledepthbias_shadowmap.GetFloat();
|
||||
@@ -547,6 +672,8 @@ void C_EnvCascadeLightSecond::UpdateLight(bool bForceUpdate)
|
||||
//mat_depthbias_shadowmap.SetValue("0.00001");
|
||||
scissor.SetValue("0");
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1396,13 +1396,7 @@ bool CClientShadowMgr::Init()
|
||||
|
||||
SetShadowBlobbyCutoffArea( 0.005 );
|
||||
|
||||
#ifndef MAPBASE
|
||||
bool bTools = CommandLine()->CheckParm( "-tools" ) != NULL;
|
||||
m_nMaxDepthTextureShadows = bTools ? 4 : 1; // Just one shadow depth texture in games, more in tools
|
||||
#else
|
||||
// 5 lets mappers use up to 4 shadow-casting projected textures, which is better than 3.
|
||||
m_nMaxDepthTextureShadows = pr_max.GetInt();
|
||||
#endif
|
||||
|
||||
bool bLowEnd = ( g_pMaterialSystemHardwareConfig->GetDXSupportLevel() < 80 );
|
||||
|
||||
|
||||
@@ -19,8 +19,10 @@
|
||||
|
||||
ambient(integer) :"Ambient" : 0 : "idk"
|
||||
|
||||
input TurnOn(void) : "Turn on the texture"
|
||||
input TurnOff(void) : "Turn off the texture"
|
||||
input Enable(void) : "Turn on the texture"
|
||||
input Disable(void) : "Turn off the texture"
|
||||
input EnableShadows(bool) : "Turn off the shadows"
|
||||
input SpotlightTexture(string) : "Change texture"
|
||||
input LightColor(color255) : "Set the light color."
|
||||
input SetAngles(string) : "Set the sun direction."
|
||||
]
|
||||
@@ -105,8 +105,10 @@ public:
|
||||
|
||||
CNetworkHandle(CBaseEntity, m_hTargetEntity);
|
||||
CNetworkVector(m_LinearFloatLightColor);
|
||||
CNetworkColor32(m_LightColor);
|
||||
|
||||
private:
|
||||
|
||||
CNetworkVar(bool, m_bState);
|
||||
CNetworkVar(float, m_flLightFOV);
|
||||
CNetworkVar(bool, m_bEnableShadows);
|
||||
@@ -142,6 +144,7 @@ DEFINE_THINKFUNC(InitialThink),
|
||||
END_DATADESC()
|
||||
|
||||
IMPLEMENT_SERVERCLASS_ST(CEnvCascadeLightSecond, DT_EnvCascadeLightSecond)
|
||||
SendPropInt(SENDINFO(m_LightColor), 32, SPROP_UNSIGNED, SendProxy_Color32ToInt),
|
||||
SendPropEHandle(SENDINFO(m_hTargetEntity)),
|
||||
SendPropBool(SENDINFO(m_bState)),
|
||||
SendPropFloat(SENDINFO(m_flLightFOV)),
|
||||
@@ -163,6 +166,11 @@ END_SEND_TABLE()
|
||||
//-----------------------------------------------------------------------------
|
||||
CEnvCascadeLightSecond::CEnvCascadeLightSecond(void)
|
||||
{
|
||||
#ifdef MAPBASE
|
||||
m_LightColor.Init(255, 255, 255, 255);
|
||||
#else
|
||||
m_LightColor.Init(255, 255, 255, 1);
|
||||
#endif
|
||||
m_bState = true;
|
||||
m_flLightFOV = 45.0f;
|
||||
m_bEnableShadows = true;
|
||||
@@ -262,12 +270,15 @@ public:
|
||||
void InputSetSpotlightTexture(inputdata_t& inputdata);
|
||||
void InputSetAmbient(inputdata_t& inputdata);
|
||||
|
||||
void InputSetAngles(inputdata_t& inputdata);
|
||||
void InitialThink(void);
|
||||
|
||||
CNetworkHandle(CBaseEntity, m_hTargetEntity);
|
||||
|
||||
private:
|
||||
CNetworkColor32(m_LightColor);
|
||||
CLightOrigin* pEnv;
|
||||
CEnvCascadeLightSecond* SecondCSM;
|
||||
CNetworkVar(bool, m_bState);
|
||||
CNetworkVar(float, m_flLightFOV);
|
||||
CNetworkVar(bool, EnableAngleFromEnv);
|
||||
@@ -282,6 +293,7 @@ private:
|
||||
CNetworkVar(float, m_flNearZ);
|
||||
CNetworkVar(float, m_flFarZ);
|
||||
CNetworkVar(int, m_nShadowQuality);
|
||||
|
||||
};
|
||||
|
||||
LINK_ENTITY_TO_CLASS(env_cascade_light, CEnvCascadeLight);
|
||||
@@ -302,31 +314,37 @@ DEFINE_KEYFIELD(m_nShadowQuality, FIELD_INTEGER, "shadowquality"),
|
||||
DEFINE_FIELD(m_LinearFloatLightColor, FIELD_VECTOR),
|
||||
DEFINE_KEYFIELD(EnableAngleFromEnv, FIELD_BOOLEAN, "uselightenvangles"),
|
||||
|
||||
DEFINE_INPUTFUNC(FIELD_VOID, "TurnOn", InputTurnOn),
|
||||
DEFINE_INPUTFUNC(FIELD_VOID, "TurnOff", InputTurnOff),
|
||||
DEFINE_INPUTFUNC(FIELD_VOID, "Enable", InputTurnOn),
|
||||
DEFINE_INPUTFUNC(FIELD_VOID, "Disable", InputTurnOff),
|
||||
DEFINE_INPUTFUNC(FIELD_BOOLEAN, "EnableShadows", InputSetEnableShadows),
|
||||
// this is broken . . need to be able to set color and intensity like light_dynamic
|
||||
// DEFINE_INPUTFUNC( FIELD_COLOR32, "LightColor", InputSetLightColor ),
|
||||
|
||||
DEFINE_INPUTFUNC(FIELD_COLOR32, "LightColor", InputSetLightColor),
|
||||
DEFINE_INPUTFUNC(FIELD_FLOAT, "Ambient", InputSetAmbient),
|
||||
DEFINE_INPUTFUNC(FIELD_STRING, "SpotlightTexture", InputSetSpotlightTexture),
|
||||
DEFINE_INPUTFUNC(FIELD_STRING, "Texture", InputSetSpotlightTexture),
|
||||
DEFINE_INPUTFUNC(FIELD_STRING, "SetAngles", InputSetAngles),
|
||||
DEFINE_THINKFUNC(InitialThink),
|
||||
END_DATADESC()
|
||||
|
||||
IMPLEMENT_SERVERCLASS_ST(CEnvCascadeLight, DT_EnvCascadeLight)
|
||||
SendPropEHandle(SENDINFO(m_hTargetEntity)),
|
||||
SendPropBool(SENDINFO(m_bState)),
|
||||
SendPropFloat(SENDINFO(m_flLightFOV)),
|
||||
SendPropBool(SENDINFO(m_bEnableShadows)),
|
||||
SendPropBool(SENDINFO(m_bLightOnlyTarget)),
|
||||
SendPropBool(SENDINFO(m_bLightWorld)),
|
||||
SendPropBool(SENDINFO(m_bCameraSpace)),
|
||||
SendPropVector(SENDINFO(m_LinearFloatLightColor)),
|
||||
SendPropFloat(SENDINFO(m_flAmbient)),
|
||||
SendPropString(SENDINFO(m_SpotlightTextureName)),
|
||||
SendPropInt(SENDINFO(m_nSpotlightTextureFrame)),
|
||||
SendPropFloat(SENDINFO(m_flNearZ), 16, SPROP_ROUNDDOWN, 0.0f, 500.0f),
|
||||
SendPropFloat(SENDINFO(m_flFarZ), 18, SPROP_ROUNDDOWN, 0.0f, 1500.0f),
|
||||
SendPropInt(SENDINFO(m_nShadowQuality), 1, SPROP_UNSIGNED) // Just one bit for now
|
||||
|
||||
SendPropInt(SENDINFO(m_LightColor), 32, SPROP_UNSIGNED, SendProxy_Color32ToInt),
|
||||
|
||||
SendPropEHandle(SENDINFO(m_hTargetEntity)),
|
||||
SendPropBool(SENDINFO(m_bState)),
|
||||
SendPropFloat(SENDINFO(m_flLightFOV)),
|
||||
SendPropBool(SENDINFO(m_bEnableShadows)),
|
||||
SendPropBool(SENDINFO(m_bLightOnlyTarget)),
|
||||
SendPropBool(SENDINFO(m_bLightWorld)),
|
||||
SendPropBool(SENDINFO(m_bCameraSpace)),
|
||||
SendPropVector(SENDINFO(m_LinearFloatLightColor)),
|
||||
SendPropFloat(SENDINFO(m_flAmbient)),
|
||||
SendPropString(SENDINFO(m_SpotlightTextureName)),
|
||||
SendPropInt(SENDINFO(m_nSpotlightTextureFrame)),
|
||||
SendPropFloat(SENDINFO(m_flNearZ), 16, SPROP_ROUNDDOWN, 0.0f, 500.0f),
|
||||
SendPropFloat(SENDINFO(m_flFarZ), 18, SPROP_ROUNDDOWN, 0.0f, 1500.0f),
|
||||
SendPropInt(SENDINFO(m_nShadowQuality), 1, SPROP_UNSIGNED) // Just one bit for now
|
||||
END_SEND_TABLE()
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -334,6 +352,11 @@ END_SEND_TABLE()
|
||||
//-----------------------------------------------------------------------------
|
||||
CEnvCascadeLight::CEnvCascadeLight(void)
|
||||
{
|
||||
#ifdef MAPBASE
|
||||
m_LightColor.Init(255, 255, 255, 255);
|
||||
#else
|
||||
m_LightColor.Init(255, 255, 255, 1);
|
||||
#endif
|
||||
m_bState = true;
|
||||
m_flLightFOV = 45.0f;
|
||||
m_bEnableShadows = true;
|
||||
@@ -371,7 +394,7 @@ void CEnvCascadeLight::Preparation()
|
||||
//if second csm is exist
|
||||
if (CSMSecond)
|
||||
{
|
||||
CEnvCascadeLightSecond* SecondCSM = dynamic_cast<CEnvCascadeLightSecond*>(CSMSecond);
|
||||
SecondCSM = dynamic_cast<CEnvCascadeLightSecond*>(CSMSecond);
|
||||
SecondCSM->SetAbsAngles(GetAbsAngles());
|
||||
SecondCSM->SetAbsOrigin(GetAbsOrigin());
|
||||
SecondCSM->SetParent(GetBaseEntity());
|
||||
@@ -430,7 +453,9 @@ void UTIL_ColorStringToLinearFloatColorCSMFake(Vector& color, const char* pStrin
|
||||
|
||||
bool CEnvCascadeLight::KeyValue(const char* szKeyName, const char* szValue)
|
||||
{
|
||||
if (FStrEq(szKeyName, "lightcolor"))
|
||||
|
||||
if (FStrEq(szKeyName, "lightcolor") || FStrEq(szKeyName, "color"))
|
||||
|
||||
{
|
||||
Vector tmp;
|
||||
UTIL_ColorStringToLinearFloatColorCSMFake(tmp, szValue);
|
||||
@@ -460,10 +485,6 @@ void CEnvCascadeLight::InputSetEnableShadows(inputdata_t& inputdata)
|
||||
m_bEnableShadows = inputdata.value.Bool();
|
||||
}
|
||||
|
||||
//void CEnvProjectedTexture::InputSetLightColor( inputdata_t &inputdata )
|
||||
//{
|
||||
//m_cLightColor = inputdata.value.Color32();
|
||||
//}
|
||||
|
||||
void CEnvCascadeLight::InputSetAmbient(inputdata_t& inputdata)
|
||||
{
|
||||
@@ -491,12 +512,27 @@ void CEnvCascadeLight::Activate(void)
|
||||
void CEnvCascadeLight::InitialThink(void)
|
||||
{
|
||||
m_hTargetEntity = gEntList.FindEntityByName(NULL, m_target);
|
||||
|
||||
float bibigon = defdist.GetFloat() / curdist.GetFloat();
|
||||
curFOV.SetValue(defFOV.GetFloat() * bibigon);
|
||||
m_flLightFOV = curFOV.GetFloat();
|
||||
//if(pEnv != NULL)
|
||||
//SetAbsOrigin(Vector(pEnv->GetAbsOrigin().x, pEnv->GetAbsOrigin().y, pEnv->GetAbsOrigin().z + curdist.GetInt()));
|
||||
}
|
||||
|
||||
void CEnvCascadeLight::InputSetAngles(inputdata_t& inputdata)
|
||||
{
|
||||
const char* pAngles = inputdata.value.String();
|
||||
|
||||
QAngle angles;
|
||||
UTIL_StringToVector(angles.Base(), pAngles);
|
||||
|
||||
pEnv->SetAbsAngles(angles);
|
||||
|
||||
}
|
||||
|
||||
void CEnvCascadeLight::InputSetLightColor(inputdata_t& inputdata)
|
||||
{
|
||||
m_LightColor = inputdata.value.Color32();
|
||||
SecondCSM->m_LightColor = inputdata.value.Color32();
|
||||
//m_LinearFloatLightColor.Init(1.0f, 1.0f, 1.0f);
|
||||
}
|
||||
|
||||
int CEnvCascadeLight::UpdateTransmitState()
|
||||
|
||||
Reference in New Issue
Block a user