Fixed some Color problems

Fixed color problems.
Added csm_color_r, csm_color_g, csm_color_b and csm_color_a ConVars. (Alpha actually works now)
This commit is contained in:
2023-02-08 22:05:53 +03:00
parent a193122d65
commit b0de03c6a2
2 changed files with 35 additions and 98 deletions

View File

@@ -25,6 +25,10 @@ ConVar csm_intensity("csm_intensity", "200");
ConVar csm_second_intensity("csm_second_intensity", "200"); ConVar csm_second_intensity("csm_second_intensity", "200");
ConVar csm_third_intensity("csm_third_intensity", "200"); ConVar csm_third_intensity("csm_third_intensity", "200");
ConVar csm_brightness_general("csm_brightness_general", "1"); ConVar csm_brightness_general("csm_brightness_general", "1");
ConVar csm_color_r("csm_color_r", "255");
ConVar csm_color_g("csm_color_g", "255");
ConVar csm_color_b("csm_color_b", "255");
ConVar csm_color_a("csm_color_a", "255");
ConVar csm_filter("csm_filter", "1"); ConVar csm_filter("csm_filter", "1");
@@ -94,7 +98,7 @@ private:
ClientShadowHandle_t m_LightHandle; ClientShadowHandle_t m_LightHandle;
EHANDLE m_hTargetEntity; EHANDLE m_hTargetEntity;
color32 m_LightColor; //color32 m_LightColor;
#ifdef MAPBASE #ifdef MAPBASE
float m_flBrightnessScale; float m_flBrightnessScale;
@@ -109,7 +113,7 @@ private:
bool m_bLightOnlyTarget; bool m_bLightOnlyTarget;
bool m_bLightWorld; bool m_bLightWorld;
bool m_bCameraSpace; bool m_bCameraSpace;
Vector m_LinearFloatLightColor; //Vector m_LinearFloatLightColor;
float m_flAmbient; float m_flAmbient;
float m_flNearZ; float m_flNearZ;
float m_flFarZ; float m_flFarZ;
@@ -124,10 +128,10 @@ IMPLEMENT_CLIENTCLASS_DT(C_EnvCascadeLight, DT_EnvCascadeLight, CEnvCascadeLight
RecvPropFloat( RECVINFO( m_flLightFOV ) ), RecvPropFloat( RECVINFO( m_flLightFOV ) ),
RecvPropBool( RECVINFO( m_bEnableShadows ) ), RecvPropBool( RECVINFO( m_bEnableShadows ) ),
RecvPropBool( RECVINFO( m_bLightOnlyTarget ) ), RecvPropBool( RECVINFO( m_bLightOnlyTarget ) ),
RecvPropInt(RECVINFO(m_LightColor), 0, RecvProxy_IntToColor32), //RecvPropInt(RECVINFO(m_LightColor), 0, RecvProxy_IntToColor32),
RecvPropBool( RECVINFO( m_bLightWorld ) ), RecvPropBool( RECVINFO( m_bLightWorld ) ),
RecvPropBool( RECVINFO( m_bCameraSpace ) ), RecvPropBool( RECVINFO( m_bCameraSpace ) ),
RecvPropVector( RECVINFO( m_LinearFloatLightColor ) ), //RecvPropVector( RECVINFO( m_LinearFloatLightColor ) ),
RecvPropFloat( RECVINFO( m_flAmbient ) ), RecvPropFloat( RECVINFO( m_flAmbient ) ),
RecvPropString( RECVINFO( m_SpotlightTextureName ) ), RecvPropString( RECVINFO( m_SpotlightTextureName ) ),
RecvPropInt( RECVINFO( m_nSpotlightTextureFrame ) ), RecvPropInt( RECVINFO( m_nSpotlightTextureFrame ) ),
@@ -228,8 +232,8 @@ void C_EnvCascadeLight::UpdateLight( bool bForceUpdate )
} }
Vector vLinearFloatLightColor(m_LightColor.r, m_LightColor.g, m_LightColor.b); Vector vLinearFloatLightColor(csm_color_r.GetInt(), csm_color_g.GetInt(), csm_color_b.GetInt());
float flLinearFloatLightAlpha = m_LightColor.a; float flLinearFloatLightAlpha = csm_color_a.GetInt();
#ifdef MAPBASE #ifdef MAPBASE
if (m_CurrentLinearFloatLightColor != vLinearFloatLightColor || m_flCurrentLinearFloatLightAlpha != flLinearFloatLightAlpha) if (m_CurrentLinearFloatLightColor != vLinearFloatLightColor || m_flCurrentLinearFloatLightAlpha != flLinearFloatLightAlpha)
@@ -367,7 +371,7 @@ private:
ClientShadowHandle_t m_LightHandle; ClientShadowHandle_t m_LightHandle;
color32 m_LightColor; //color32 m_LightColor;
#ifdef MAPBASE #ifdef MAPBASE
float m_flBrightnessScale; float m_flBrightnessScale;
@@ -386,7 +390,7 @@ private:
bool m_bLightOnlyTarget; bool m_bLightOnlyTarget;
bool m_bLightWorld; bool m_bLightWorld;
bool m_bCameraSpace; bool m_bCameraSpace;
Vector m_LinearFloatLightColor; //Vector m_LinearFloatLightColor;
float m_flAmbient; float m_flAmbient;
float m_flNearZ; float m_flNearZ;
float m_flFarZ; float m_flFarZ;
@@ -396,7 +400,7 @@ private:
}; };
IMPLEMENT_CLIENTCLASS_DT(C_EnvCascadeLightSecond, DT_EnvCascadeLightSecond, CEnvCascadeLightSecond) IMPLEMENT_CLIENTCLASS_DT(C_EnvCascadeLightSecond, DT_EnvCascadeLightSecond, CEnvCascadeLightSecond)
RecvPropInt(RECVINFO(m_LightColor), 0, RecvProxy_IntToColor32), //RecvPropInt(RECVINFO(m_LightColor), 0, RecvProxy_IntToColor32),
RecvPropEHandle(RECVINFO(m_hTargetEntity)), RecvPropEHandle(RECVINFO(m_hTargetEntity)),
RecvPropBool(RECVINFO(m_bState)), RecvPropBool(RECVINFO(m_bState)),
RecvPropFloat(RECVINFO(m_flLightFOV)), RecvPropFloat(RECVINFO(m_flLightFOV)),
@@ -404,7 +408,7 @@ RecvPropBool(RECVINFO(m_bEnableShadows)),
RecvPropBool(RECVINFO(m_bLightOnlyTarget)), RecvPropBool(RECVINFO(m_bLightOnlyTarget)),
RecvPropBool(RECVINFO(m_bLightWorld)), RecvPropBool(RECVINFO(m_bLightWorld)),
RecvPropBool(RECVINFO(m_bCameraSpace)), RecvPropBool(RECVINFO(m_bCameraSpace)),
RecvPropVector(RECVINFO(m_LinearFloatLightColor)), //RecvPropVector(RECVINFO(m_LinearFloatLightColor)),
RecvPropFloat(RECVINFO(m_flAmbient)), RecvPropFloat(RECVINFO(m_flAmbient)),
RecvPropString(RECVINFO(m_SpotlightTextureName)), RecvPropString(RECVINFO(m_SpotlightTextureName)),
RecvPropInt(RECVINFO(m_nSpotlightTextureFrame)), RecvPropInt(RECVINFO(m_nSpotlightTextureFrame)),
@@ -497,8 +501,8 @@ void C_EnvCascadeLightSecond::UpdateLight(bool bForceUpdate)
AngleVectors(GetAbsAngles(), &vForward, &vRight, &vUp); AngleVectors(GetAbsAngles(), &vForward, &vRight, &vUp);
} }
Vector vLinearFloatLightColor(m_LightColor.r, m_LightColor.g, m_LightColor.b); Vector vLinearFloatLightColor(csm_color_r.GetInt(), csm_color_g.GetInt(), csm_color_b.GetInt());
float flLinearFloatLightAlpha = m_LightColor.a; float flLinearFloatLightAlpha = csm_color_a.GetInt();
#ifdef MAPBASE #ifdef MAPBASE
if (m_CurrentLinearFloatLightColor != vLinearFloatLightColor || m_flCurrentLinearFloatLightAlpha != flLinearFloatLightAlpha) if (m_CurrentLinearFloatLightColor != vLinearFloatLightColor || m_flCurrentLinearFloatLightAlpha != flLinearFloatLightAlpha)
@@ -631,7 +635,7 @@ private:
ClientShadowHandle_t m_LightHandle; ClientShadowHandle_t m_LightHandle;
color32 m_LightColor; //color32 m_LightColor;
#ifdef MAPBASE #ifdef MAPBASE
float m_flBrightnessScale; float m_flBrightnessScale;
@@ -650,7 +654,7 @@ private:
bool m_bLightOnlyTarget; bool m_bLightOnlyTarget;
bool m_bLightWorld; bool m_bLightWorld;
bool m_bCameraSpace; bool m_bCameraSpace;
Vector m_LinearFloatLightColor; //Vector m_LinearFloatLightColor;
float m_flAmbient; float m_flAmbient;
float m_flNearZ; float m_flNearZ;
float m_flFarZ; float m_flFarZ;
@@ -660,7 +664,7 @@ private:
}; };
IMPLEMENT_CLIENTCLASS_DT(C_EnvCascadeLightThird, DT_EnvCascadeLightThird, CEnvCascadeLightThird) IMPLEMENT_CLIENTCLASS_DT(C_EnvCascadeLightThird, DT_EnvCascadeLightThird, CEnvCascadeLightThird)
RecvPropInt(RECVINFO(m_LightColor), 0, RecvProxy_IntToColor32), //RecvPropInt(RECVINFO(m_LightColor), 0, RecvProxy_IntToColor32),
RecvPropEHandle(RECVINFO(m_hTargetEntity)), RecvPropEHandle(RECVINFO(m_hTargetEntity)),
RecvPropBool(RECVINFO(m_bState)), RecvPropBool(RECVINFO(m_bState)),
RecvPropFloat(RECVINFO(m_flLightFOV)), RecvPropFloat(RECVINFO(m_flLightFOV)),
@@ -668,7 +672,7 @@ RecvPropBool(RECVINFO(m_bEnableShadows)),
RecvPropBool(RECVINFO(m_bLightOnlyTarget)), RecvPropBool(RECVINFO(m_bLightOnlyTarget)),
RecvPropBool(RECVINFO(m_bLightWorld)), RecvPropBool(RECVINFO(m_bLightWorld)),
RecvPropBool(RECVINFO(m_bCameraSpace)), RecvPropBool(RECVINFO(m_bCameraSpace)),
RecvPropVector(RECVINFO(m_LinearFloatLightColor)), //RecvPropVector(RECVINFO(m_LinearFloatLightColor)),
RecvPropFloat(RECVINFO(m_flAmbient)), RecvPropFloat(RECVINFO(m_flAmbient)),
RecvPropString(RECVINFO(m_SpotlightTextureName)), RecvPropString(RECVINFO(m_SpotlightTextureName)),
RecvPropInt(RECVINFO(m_nSpotlightTextureFrame)), RecvPropInt(RECVINFO(m_nSpotlightTextureFrame)),
@@ -758,8 +762,8 @@ void C_EnvCascadeLightThird::UpdateLight(bool bForceUpdate)
AngleVectors(GetAbsAngles(), &vForward, &vRight, &vUp); AngleVectors(GetAbsAngles(), &vForward, &vRight, &vUp);
} }
Vector vLinearFloatLightColor(m_LightColor.r, m_LightColor.g, m_LightColor.b); Vector vLinearFloatLightColor(csm_color_r.GetInt(), csm_color_g.GetInt(), csm_color_b.GetInt());
float flLinearFloatLightAlpha = m_LightColor.a; float flLinearFloatLightAlpha = csm_color_a.GetInt();
#ifdef MAPBASE #ifdef MAPBASE
if (m_CurrentLinearFloatLightColor != vLinearFloatLightColor || m_flCurrentLinearFloatLightAlpha != flLinearFloatLightAlpha) if (m_CurrentLinearFloatLightColor != vLinearFloatLightColor || m_flCurrentLinearFloatLightAlpha != flLinearFloatLightAlpha)

View File

@@ -115,8 +115,6 @@ public:
void InitialThink(void); void InitialThink(void);
CNetworkHandle(CBaseEntity, m_hTargetEntity); CNetworkHandle(CBaseEntity, m_hTargetEntity);
CNetworkVector(m_LinearFloatLightColor);
CNetworkColor32(m_LightColor);
CNetworkVar(float, m_flNearZ); CNetworkVar(float, m_flNearZ);
CNetworkVar(float, m_flFarZ); CNetworkVar(float, m_flFarZ);
@@ -152,12 +150,10 @@ DEFINE_KEYFIELD(m_nSpotlightTextureFrame, FIELD_INTEGER, "textureframe"),
DEFINE_KEYFIELD(m_flNearZ, FIELD_FLOAT, "nearz"), DEFINE_KEYFIELD(m_flNearZ, FIELD_FLOAT, "nearz"),
DEFINE_KEYFIELD(m_flFarZ, FIELD_FLOAT, "farz"), DEFINE_KEYFIELD(m_flFarZ, FIELD_FLOAT, "farz"),
DEFINE_KEYFIELD(m_nShadowQuality, FIELD_INTEGER, "shadowquality"), DEFINE_KEYFIELD(m_nShadowQuality, FIELD_INTEGER, "shadowquality"),
DEFINE_FIELD(m_LinearFloatLightColor, FIELD_VECTOR),
DEFINE_THINKFUNC(InitialThink), DEFINE_THINKFUNC(InitialThink),
END_DATADESC() END_DATADESC()
IMPLEMENT_SERVERCLASS_ST(CEnvCascadeLightThird, DT_EnvCascadeLightThird) IMPLEMENT_SERVERCLASS_ST(CEnvCascadeLightThird, DT_EnvCascadeLightThird)
SendPropInt(SENDINFO(m_LightColor), 32, SPROP_UNSIGNED, SendProxy_Color32ToInt),
SendPropEHandle(SENDINFO(m_hTargetEntity)), SendPropEHandle(SENDINFO(m_hTargetEntity)),
SendPropBool(SENDINFO(m_bState)), SendPropBool(SENDINFO(m_bState)),
SendPropFloat(SENDINFO(m_flLightFOV)), SendPropFloat(SENDINFO(m_flLightFOV)),
@@ -165,7 +161,6 @@ SendPropBool(SENDINFO(m_bEnableShadows)),
SendPropBool(SENDINFO(m_bLightOnlyTarget)), SendPropBool(SENDINFO(m_bLightOnlyTarget)),
SendPropBool(SENDINFO(m_bLightWorld)), SendPropBool(SENDINFO(m_bLightWorld)),
SendPropBool(SENDINFO(m_bCameraSpace)), SendPropBool(SENDINFO(m_bCameraSpace)),
SendPropVector(SENDINFO(m_LinearFloatLightColor)),
SendPropFloat(SENDINFO(m_flAmbient)), SendPropFloat(SENDINFO(m_flAmbient)),
SendPropString(SENDINFO(m_SpotlightTextureName)), SendPropString(SENDINFO(m_SpotlightTextureName)),
SendPropInt(SENDINFO(m_nSpotlightTextureFrame)), SendPropInt(SENDINFO(m_nSpotlightTextureFrame)),
@@ -179,11 +174,6 @@ END_SEND_TABLE()
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
CEnvCascadeLightThird::CEnvCascadeLightThird(void) CEnvCascadeLightThird::CEnvCascadeLightThird(void)
{ {
#ifdef MAPBASE
m_LightColor.Init(255, 255, 255, 255);
#else
m_LightColor.Init(255, 255, 255, 1);
#endif
m_bState = true; m_bState = true;
m_flLightFOV = 45.0f; m_flLightFOV = 45.0f;
m_bEnableShadows = true; m_bEnableShadows = true;
@@ -193,7 +183,6 @@ CEnvCascadeLightThird::CEnvCascadeLightThird(void)
Q_strcpy(m_SpotlightTextureName.GetForModify(), "tools\\fakecsm\\mask_ring"); Q_strcpy(m_SpotlightTextureName.GetForModify(), "tools\\fakecsm\\mask_ring");
m_nSpotlightTextureFrame = 0; m_nSpotlightTextureFrame = 0;
m_LinearFloatLightColor.Init(1.0f, 1.0f, 1.0f);
m_flAmbient = 0.0f; m_flAmbient = 0.0f;
m_flNearZ = csm_nearz.GetFloat(); m_flNearZ = csm_nearz.GetFloat();
m_flFarZ = csm_farz.GetFloat(); m_flFarZ = csm_farz.GetFloat();
@@ -268,8 +257,6 @@ public:
void InitialThink(void); void InitialThink(void);
CNetworkHandle(CBaseEntity, m_hTargetEntity); CNetworkHandle(CBaseEntity, m_hTargetEntity);
CNetworkVector(m_LinearFloatLightColor);
CNetworkColor32(m_LightColor);
CNetworkVar(float, m_flNearZ); CNetworkVar(float, m_flNearZ);
CNetworkVar(float, m_flFarZ); CNetworkVar(float, m_flFarZ);
@@ -305,12 +292,10 @@ DEFINE_KEYFIELD(m_nSpotlightTextureFrame, FIELD_INTEGER, "textureframe"),
DEFINE_KEYFIELD(m_flNearZ, FIELD_FLOAT, "nearz"), DEFINE_KEYFIELD(m_flNearZ, FIELD_FLOAT, "nearz"),
DEFINE_KEYFIELD(m_flFarZ, FIELD_FLOAT, "farz"), DEFINE_KEYFIELD(m_flFarZ, FIELD_FLOAT, "farz"),
DEFINE_KEYFIELD(m_nShadowQuality, FIELD_INTEGER, "shadowquality"), DEFINE_KEYFIELD(m_nShadowQuality, FIELD_INTEGER, "shadowquality"),
DEFINE_FIELD(m_LinearFloatLightColor, FIELD_VECTOR),
DEFINE_THINKFUNC(InitialThink), DEFINE_THINKFUNC(InitialThink),
END_DATADESC() END_DATADESC()
IMPLEMENT_SERVERCLASS_ST(CEnvCascadeLightSecond, DT_EnvCascadeLightSecond) IMPLEMENT_SERVERCLASS_ST(CEnvCascadeLightSecond, DT_EnvCascadeLightSecond)
SendPropInt(SENDINFO(m_LightColor), 32, SPROP_UNSIGNED, SendProxy_Color32ToInt),
SendPropEHandle(SENDINFO(m_hTargetEntity)), SendPropEHandle(SENDINFO(m_hTargetEntity)),
SendPropBool(SENDINFO(m_bState)), SendPropBool(SENDINFO(m_bState)),
SendPropFloat(SENDINFO(m_flLightFOV)), SendPropFloat(SENDINFO(m_flLightFOV)),
@@ -318,7 +303,6 @@ SendPropBool(SENDINFO(m_bEnableShadows)),
SendPropBool(SENDINFO(m_bLightOnlyTarget)), SendPropBool(SENDINFO(m_bLightOnlyTarget)),
SendPropBool(SENDINFO(m_bLightWorld)), SendPropBool(SENDINFO(m_bLightWorld)),
SendPropBool(SENDINFO(m_bCameraSpace)), SendPropBool(SENDINFO(m_bCameraSpace)),
SendPropVector(SENDINFO(m_LinearFloatLightColor)),
SendPropFloat(SENDINFO(m_flAmbient)), SendPropFloat(SENDINFO(m_flAmbient)),
SendPropString(SENDINFO(m_SpotlightTextureName)), SendPropString(SENDINFO(m_SpotlightTextureName)),
SendPropInt(SENDINFO(m_nSpotlightTextureFrame)), SendPropInt(SENDINFO(m_nSpotlightTextureFrame)),
@@ -332,11 +316,6 @@ END_SEND_TABLE()
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
CEnvCascadeLightSecond::CEnvCascadeLightSecond(void) 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_bState = true;
m_flLightFOV = 45.0f; m_flLightFOV = 45.0f;
m_bEnableShadows = true; m_bEnableShadows = true;
@@ -346,7 +325,6 @@ CEnvCascadeLightSecond::CEnvCascadeLightSecond(void)
Q_strcpy(m_SpotlightTextureName.GetForModify(), "tools\\fakecsm\\mask_ring"); Q_strcpy(m_SpotlightTextureName.GetForModify(), "tools\\fakecsm\\mask_ring");
m_nSpotlightTextureFrame = 0; m_nSpotlightTextureFrame = 0;
m_LinearFloatLightColor.Init(1.0f, 1.0f, 1.0f);
m_flAmbient = 0.0f; m_flAmbient = 0.0f;
m_flNearZ = csm_nearz.GetFloat(); m_flNearZ = csm_nearz.GetFloat();
m_flFarZ = csm_farz.GetFloat(); m_flFarZ = csm_farz.GetFloat();
@@ -436,7 +414,6 @@ public:
CNetworkHandle(CBaseEntity, m_hTargetEntity); CNetworkHandle(CBaseEntity, m_hTargetEntity);
private: private:
CNetworkColor32(m_LightColor);
CLightOrigin* csm_origin; CLightOrigin* csm_origin;
CEnvCascadeLightSecond* SecondCSM; CEnvCascadeLightSecond* SecondCSM;
CEnvCascadeLightThird* ThirdCSM; CEnvCascadeLightThird* ThirdCSM;
@@ -447,7 +424,6 @@ private:
CNetworkVar(bool, m_bLightOnlyTarget); CNetworkVar(bool, m_bLightOnlyTarget);
CNetworkVar(bool, m_bLightWorld); CNetworkVar(bool, m_bLightWorld);
CNetworkVar(bool, m_bCameraSpace); CNetworkVar(bool, m_bCameraSpace);
CNetworkVector(m_LinearFloatLightColor);
CNetworkVar(float, m_flAmbient); CNetworkVar(float, m_flAmbient);
CNetworkString(m_SpotlightTextureName, MAX_PATH); CNetworkString(m_SpotlightTextureName, MAX_PATH);
CNetworkVar(int, m_nSpotlightTextureFrame); CNetworkVar(int, m_nSpotlightTextureFrame);
@@ -478,7 +454,6 @@ DEFINE_KEYFIELD(m_nSpotlightTextureFrame, FIELD_INTEGER, "textureframe"),
DEFINE_KEYFIELD(m_flNearZ, FIELD_FLOAT, "nearz"), DEFINE_KEYFIELD(m_flNearZ, FIELD_FLOAT, "nearz"),
DEFINE_KEYFIELD(m_flFarZ, FIELD_FLOAT, "farz"), DEFINE_KEYFIELD(m_flFarZ, FIELD_FLOAT, "farz"),
DEFINE_KEYFIELD(m_nShadowQuality, FIELD_INTEGER, "shadowquality"), DEFINE_KEYFIELD(m_nShadowQuality, FIELD_INTEGER, "shadowquality"),
DEFINE_FIELD(m_LinearFloatLightColor, FIELD_VECTOR),
DEFINE_KEYFIELD(m_bEnableAngleFromEnv, FIELD_BOOLEAN, "uselightenvangles"), DEFINE_KEYFIELD(m_bEnableAngleFromEnv, FIELD_BOOLEAN, "uselightenvangles"),
DEFINE_KEYFIELD(m_flBrightnessScale, FIELD_FLOAT, "brightnessscale"), DEFINE_KEYFIELD(m_flBrightnessScale, FIELD_FLOAT, "brightnessscale"),
@@ -497,8 +472,6 @@ END_DATADESC()
IMPLEMENT_SERVERCLASS_ST(CEnvCascadeLight, DT_EnvCascadeLight) IMPLEMENT_SERVERCLASS_ST(CEnvCascadeLight, DT_EnvCascadeLight)
SendPropInt(SENDINFO(m_LightColor), 32, SPROP_UNSIGNED, SendProxy_Color32ToInt),
SendPropEHandle(SENDINFO(m_hTargetEntity)), SendPropEHandle(SENDINFO(m_hTargetEntity)),
SendPropBool(SENDINFO(m_bState)), SendPropBool(SENDINFO(m_bState)),
SendPropFloat(SENDINFO(m_flLightFOV)), SendPropFloat(SENDINFO(m_flLightFOV)),
@@ -506,7 +479,6 @@ IMPLEMENT_SERVERCLASS_ST(CEnvCascadeLight, DT_EnvCascadeLight)
SendPropBool(SENDINFO(m_bLightOnlyTarget)), SendPropBool(SENDINFO(m_bLightOnlyTarget)),
SendPropBool(SENDINFO(m_bLightWorld)), SendPropBool(SENDINFO(m_bLightWorld)),
SendPropBool(SENDINFO(m_bCameraSpace)), SendPropBool(SENDINFO(m_bCameraSpace)),
SendPropVector(SENDINFO(m_LinearFloatLightColor)),
SendPropFloat(SENDINFO(m_flAmbient)), SendPropFloat(SENDINFO(m_flAmbient)),
SendPropString(SENDINFO(m_SpotlightTextureName)), SendPropString(SENDINFO(m_SpotlightTextureName)),
SendPropInt(SENDINFO(m_nSpotlightTextureFrame)), SendPropInt(SENDINFO(m_nSpotlightTextureFrame)),
@@ -520,11 +492,6 @@ END_SEND_TABLE()
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
CEnvCascadeLight::CEnvCascadeLight(void) 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_bState = true;
m_flLightFOV = 45.0f; m_flLightFOV = 45.0f;
m_bEnableShadows = true; m_bEnableShadows = true;
@@ -536,7 +503,6 @@ CEnvCascadeLight::CEnvCascadeLight(void)
Q_strcpy(m_SpotlightTextureName.GetForModify(), "tools\\fakecsm\\mask_center"); Q_strcpy(m_SpotlightTextureName.GetForModify(), "tools\\fakecsm\\mask_center");
m_nSpotlightTextureFrame = 0; m_nSpotlightTextureFrame = 0;
m_LinearFloatLightColor.Init(1.0f, 1.0f, 1.0f);
m_flAmbient = 0.0f; m_flAmbient = 0.0f;
m_flNearZ = csm_nearz.GetFloat(); m_flNearZ = csm_nearz.GetFloat();
m_flFarZ = csm_farz.GetFloat(); m_flFarZ = csm_farz.GetFloat();
@@ -571,11 +537,6 @@ void CEnvCascadeLight::Preparation()
SecondCSM->SetAbsOrigin(GetAbsOrigin()); SecondCSM->SetAbsOrigin(GetAbsOrigin());
SecondCSM->SetParent(GetBaseEntity()); SecondCSM->SetParent(GetBaseEntity());
SecondCSM->m_LightColor.SetR(GammaToLinear(m_LightColor.GetR()) * ConVarRef("csm_second_intensity").GetFloat());
SecondCSM->m_LightColor.SetG(GammaToLinear(m_LightColor.GetG()) * ConVarRef("csm_second_intensity").GetFloat());
SecondCSM->m_LightColor.SetB(GammaToLinear(m_LightColor.GetB()) * ConVarRef("csm_second_intensity").GetFloat());
SecondCSM->m_LightColor.SetA(GammaToLinear(m_LightColor.GetA()) * ConVarRef("csm_second_intensity").GetFloat());
DispatchSpawn(SecondCSM); DispatchSpawn(SecondCSM);
} }
@@ -595,11 +556,6 @@ void CEnvCascadeLight::Preparation()
ThirdCSM->SetAbsOrigin(GetAbsOrigin()); ThirdCSM->SetAbsOrigin(GetAbsOrigin());
ThirdCSM->SetParent(GetBaseEntity()); ThirdCSM->SetParent(GetBaseEntity());
ThirdCSM->m_LightColor.SetR(GammaToLinear(m_LightColor.GetR()) * ConVarRef("csm_third_intensity").GetFloat());
ThirdCSM->m_LightColor.SetG(GammaToLinear(m_LightColor.GetG()) * ConVarRef("csm_third_intensity").GetFloat());
ThirdCSM->m_LightColor.SetB(GammaToLinear(m_LightColor.GetB()) * ConVarRef("csm_third_intensity").GetFloat());
ThirdCSM->m_LightColor.SetA(GammaToLinear(m_LightColor.GetA()) * ConVarRef("csm_third_intensity").GetFloat());
DispatchSpawn(ThirdCSM); DispatchSpawn(ThirdCSM);
} }
} }
@@ -661,10 +617,11 @@ bool CEnvCascadeLight::KeyValue(const char* szKeyName, const char* szValue)
float tmp[4]; float tmp[4];
UTIL_StringToFloatArray(tmp, 4, szValue); UTIL_StringToFloatArray(tmp, 4, szValue);
m_LightColor.SetR(tmp[0]);
m_LightColor.SetG(tmp[1]); ConVarRef("csm_color_r").SetValue(tmp[0]);
m_LightColor.SetB(tmp[2]); ConVarRef("csm_color_g").SetValue(tmp[1]);
m_LightColor.SetA(tmp[3]); ConVarRef("csm_color_b").SetValue(tmp[2]);
ConVarRef("csm_color_a").SetValue(tmp[3]);
} }
else else
@@ -694,10 +651,6 @@ void CEnvCascadeLight::InputSetSpotlightTexture(inputdata_t& inputdata)
void CEnvCascadeLight::Activate(void) void CEnvCascadeLight::Activate(void)
{ {
/*if (GetSpawnFlags() & ENV_CASCADE_STARTON)
{
m_bState = true;
}*/
SetThink(&CEnvCascadeLight::InitialThink); SetThink(&CEnvCascadeLight::InitialThink);
SetNextThink(gpGlobals->curtime + 0.1f); SetNextThink(gpGlobals->curtime + 0.1f);
@@ -710,26 +663,6 @@ void CEnvCascadeLight::InitialThink(void)
float bibigon = defdist.GetFloat() / curdist.GetFloat(); float bibigon = defdist.GetFloat() / curdist.GetFloat();
curFOV.SetValue(defFOV.GetFloat() * bibigon); curFOV.SetValue(defFOV.GetFloat() * bibigon);
m_flLightFOV = curFOV.GetFloat(); m_flLightFOV = curFOV.GetFloat();
if (SecondCSM)
{
SecondCSM->m_LightColor.SetR(GammaToLinear(m_LightColor.GetR()) * ConVarRef("csm_second_intensity").GetFloat());
SecondCSM->m_LightColor.SetG(GammaToLinear(m_LightColor.GetG()) * ConVarRef("csm_second_intensity").GetFloat());
SecondCSM->m_LightColor.SetB(GammaToLinear(m_LightColor.GetB()) * ConVarRef("csm_second_intensity").GetFloat());
SecondCSM->m_LightColor.SetA(GammaToLinear(m_LightColor.GetA()) * ConVarRef("csm_second_intensity").GetFloat());
}
if (m_bEnableThird)
{
if (ThirdCSM)
{
ThirdCSM->m_LightColor.SetR(GammaToLinear(m_LightColor.GetR()) * ConVarRef("csm_third_intensity").GetFloat());
ThirdCSM->m_LightColor.SetG(GammaToLinear(m_LightColor.GetG()) * ConVarRef("csm_third_intensity").GetFloat());
ThirdCSM->m_LightColor.SetB(GammaToLinear(m_LightColor.GetB()) * ConVarRef("csm_third_intensity").GetFloat());
ThirdCSM->m_LightColor.SetA(GammaToLinear(m_LightColor.GetA()) * ConVarRef("csm_third_intensity").GetFloat());
}
}
} }
@@ -764,13 +697,13 @@ void CEnvCascadeLight::InputResetAngles(inputdata_t& inputdata)
void CEnvCascadeLight::InputSetLightColor(inputdata_t& inputdata) void CEnvCascadeLight::InputSetLightColor(inputdata_t& inputdata)
{ {
m_LightColor = inputdata.value.Color32();
SecondCSM->m_LightColor = inputdata.value.Color32();
if (m_bEnableThird) color32 color = inputdata.value.Color32();
{
ThirdCSM->m_LightColor = inputdata.value.Color32(); ConVarRef("csm_color_r").SetValue(color.r);
} ConVarRef("csm_color_g").SetValue(color.g);
ConVarRef("csm_color_b").SetValue(color.b);
ConVarRef("csm_color_a").SetValue(color.a);
} }
int CEnvCascadeLight::UpdateTransmitState() int CEnvCascadeLight::UpdateTransmitState()