diff --git a/example.png b/example.png new file mode 100644 index 0000000..8e6b6a2 Binary files /dev/null and b/example.png differ diff --git a/fgd/csm.fgd b/fgd/csm.fgd index 72b82e9..efa77c9 100644 --- a/fgd/csm.fgd +++ b/fgd/csm.fgd @@ -8,12 +8,6 @@ [ 1 : "Enabled" : 1 ] - - enableshadows(Choices) : "Enable Shadows" : 0 : "Enables/disables shadows from this projected texture." = - [ - 0 : "No" - 1 : "Yes" - ] lightcolor(color255) : "Light Color" : "255 255 255 200" : "Light Color RGB-Intensity" cameraspace(integer) : "Camera Space" : 0 : "Angles are interpreted as being relative to camera." diff --git a/server/env_cascade_light.cpp b/server/env_cascade_light.cpp index 898170c..27b4102 100644 --- a/server/env_cascade_light.cpp +++ b/server/env_cascade_light.cpp @@ -13,12 +13,11 @@ #define ENV_CASCADE_STARTON (1<<0) -static ConVar defdist("csm_default_distance", "1000", 0, "Default Z distance. Used for some fov calculations"); -static ConVar curdist("csm_current_distance","14000", 0, "i like nagatoro"); - -static ConVar defFOV("csm_default_fov","15", 0, "Default FOV. Used for some fov calculations"); -static ConVar curFOV("csm_current_fov","15", FCVAR_DEVELOPMENTONLY, "Current FOV. Please dont change by yourself, please."); -static ConVar csm_second_fov("csm_second_fov", "17", FCVAR_NONE ,"FOV of the second csm."); +static ConVar defdist("csm_default_distance", "1000", FCVAR_DEVELOPMENTONLY, "Default Z distance. Used for some fov calculations. Please dont change"); +static ConVar curdist("csm_current_distance","14000", 0, "Current Z distance. You can change it."); +static ConVar defFOV("csm_default_fov","15", FCVAR_DEVELOPMENTONLY, "Default FOV. Used for some fov calculations. Please dont change"); +static ConVar curFOV("csm_current_fov","15", 0, "Current FOV. You can change it"); +static ConVar csm_second_fov("csm_second_fov", "26", FCVAR_NONE ,"FOV of the second csm."); class CLightOrigin : public CPointEntity { @@ -268,6 +267,7 @@ public: CNetworkHandle(CBaseEntity, m_hTargetEntity); private: + CLightOrigin* pEnv; CNetworkVar(bool, m_bState); CNetworkVar(float, m_flLightFOV); CNetworkVar(bool, EnableAngleFromEnv); @@ -364,7 +364,7 @@ void CEnvCascadeLight::Preparation() if (CSMOrigin) { - CLightOrigin* pEnv = dynamic_cast(CSMOrigin); + pEnv = dynamic_cast(CSMOrigin); CSMSecond = gEntList.FindEntityByClassname(CSMSecond, "second_csm"); @@ -392,17 +392,13 @@ void CEnvCascadeLight::Preparation() } else { - pEnv->SetAbsAngles(QAngle(-(GetLocalAngles().x - 90), -GetLocalAngles().y,-GetLocalAngles().z)); - + pEnv->SetAbsAngles(QAngle((GetLocalAngles().x - 90), GetLocalAngles().y, -GetLocalAngles().z)); + Msg("pEnv local angle = %f %f %f \n", pEnv->GetLocalAngles().x, pEnv->GetLocalAngles().y, pEnv->GetLocalAngles().z); SetLocalAngles(QAngle(90, 0, 0)); DevMsg("CSM using light_environment \n"); } - - float bibigon = defdist.GetFloat() / curdist.GetFloat(); - curFOV.SetValue(defFOV.GetFloat() * bibigon); - m_flLightFOV = curFOV.GetFloat(); //DispatchSpawn(CSMSecond); DispatchSpawn(CSMOrigin); } @@ -495,6 +491,12 @@ 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())); } int CEnvCascadeLight::UpdateTransmitState()