mirror of
https://github.com/Gigaslav/HL2Overcharged.git
synced 2026-01-02 17:48:11 +03:00
219 lines
4.2 KiB
C++
219 lines
4.2 KiB
C++
#ifndef CDEF_LIGHT_H
|
|
#define CDEF_LIGHT_H
|
|
|
|
#include "deferred_shared_common.h"
|
|
|
|
#ifdef CLIENT_DLL
|
|
struct def_light_t;
|
|
#endif
|
|
|
|
class CDeferredLight : public CBaseEntity
|
|
{
|
|
DECLARE_CLASS( CDeferredLight, CBaseEntity );
|
|
DECLARE_NETWORKCLASS();
|
|
#ifdef GAME_DLL
|
|
DECLARE_DATADESC();
|
|
#endif
|
|
|
|
public:
|
|
|
|
CDeferredLight();
|
|
~CDeferredLight();
|
|
|
|
#ifdef GAME_DLL
|
|
virtual void Activate();
|
|
|
|
virtual int UpdateTransmitState();
|
|
#else
|
|
virtual void PostDataUpdate( DataUpdateType_t t );
|
|
|
|
virtual void UpdateOnRemove();
|
|
|
|
virtual void ClientThink();
|
|
#endif
|
|
|
|
inline Vector GetColor_Diffuse();
|
|
inline Vector GetColor_Ambient();
|
|
|
|
inline float GetRadius();
|
|
inline float GetFalloffPower();
|
|
|
|
inline float GetSpotCone_Inner();
|
|
inline float GetSpotCone_Outer();
|
|
|
|
inline int GetVisible_Distance();
|
|
inline int GetVisible_FadeRange();
|
|
|
|
inline int GetShadow_Distance();
|
|
inline int GetShadow_FadeRange();
|
|
|
|
inline int GetStyle_Seed();
|
|
inline float GetStyle_Amount();
|
|
inline float GetStyle_Speed();
|
|
inline float GetStyle_Smooth();
|
|
inline float GetStyle_Random();
|
|
|
|
inline int GetLight_Type();
|
|
inline int GetLight_Flags();
|
|
inline int GetCookieIndex();
|
|
|
|
#if DEFCFG_ADAPTIVE_VOLUMETRIC_LOD
|
|
inline void GetVolumeLODDistances( float& lod0, float& lod1, float& lod2, float& lod3 );
|
|
#endif
|
|
|
|
#if DEFCFG_CONFIGURABLE_VOLUMETRIC_LOD
|
|
inline int GetVolumeSamples();
|
|
#endif
|
|
|
|
#ifdef GAME_DLL
|
|
void SetRadius( float r );
|
|
#endif
|
|
|
|
private:
|
|
|
|
#ifdef GAME_DLL
|
|
bool m_bShouldTransmit;
|
|
|
|
string_t m_str_CookieString;
|
|
string_t m_str_Diff;
|
|
string_t m_str_Ambient;
|
|
|
|
void UpdateSize();
|
|
#else
|
|
def_light_t *m_pLight;
|
|
|
|
void ApplyDataToLight();
|
|
#endif
|
|
|
|
CNetworkVector( m_vecColor_Diff );
|
|
CNetworkVector( m_vecColor_Ambient );
|
|
|
|
CNetworkVar( float, m_flRadius );
|
|
CNetworkVar( float, m_flFalloffPower );
|
|
CNetworkVar( float, m_flSpotConeInner );
|
|
CNetworkVar( float, m_flSpotConeOuter );
|
|
|
|
CNetworkVar( int, m_iVisible_Dist );
|
|
CNetworkVar( int, m_iVisible_FadeRange );
|
|
CNetworkVar( int, m_iShadow_Dist );
|
|
CNetworkVar( int, m_iShadow_FadeRange );
|
|
|
|
CNetworkVar( float, m_flStyle_Amount );
|
|
CNetworkVar( float, m_flStyle_Speed );
|
|
CNetworkVar( float, m_flStyle_Smooth );
|
|
CNetworkVar( float, m_flStyle_Random );
|
|
CNetworkVar( int, m_iStyle_Seed );
|
|
|
|
CNetworkVar( int, m_iLightType );
|
|
CNetworkVar( int, m_iDefFlags );
|
|
CNetworkVar( int, m_iCookieIndex );
|
|
|
|
#if DEFCFG_ADAPTIVE_VOLUMETRIC_LOD
|
|
CNetworkVar( float, m_flVolumeLOD0Dist );
|
|
CNetworkVar( float, m_flVolumeLOD1Dist );
|
|
CNetworkVar( float, m_flVolumeLOD2Dist );
|
|
CNetworkVar( float, m_flVolumeLOD3Dist );
|
|
#endif
|
|
|
|
#if DEFCFG_CONFIGURABLE_VOLUMETRIC_LOD
|
|
CNetworkVar( int, m_iVolumeSamples );
|
|
#endif
|
|
};
|
|
|
|
|
|
Vector CDeferredLight::GetColor_Diffuse()
|
|
{
|
|
return m_vecColor_Diff;
|
|
}
|
|
Vector CDeferredLight::GetColor_Ambient()
|
|
{
|
|
return m_vecColor_Ambient;
|
|
}
|
|
|
|
float CDeferredLight::GetRadius()
|
|
{
|
|
return m_flRadius;
|
|
}
|
|
float CDeferredLight::GetFalloffPower()
|
|
{
|
|
return m_flFalloffPower;
|
|
}
|
|
|
|
float CDeferredLight::GetSpotCone_Inner()
|
|
{
|
|
return m_flSpotConeInner;
|
|
}
|
|
float CDeferredLight::GetSpotCone_Outer()
|
|
{
|
|
return m_flSpotConeOuter;
|
|
}
|
|
|
|
int CDeferredLight::GetVisible_Distance()
|
|
{
|
|
return m_iVisible_Dist;
|
|
}
|
|
int CDeferredLight::GetVisible_FadeRange()
|
|
{
|
|
return m_iVisible_FadeRange;
|
|
}
|
|
|
|
int CDeferredLight::GetShadow_Distance()
|
|
{
|
|
return m_iShadow_Dist;
|
|
}
|
|
int CDeferredLight::GetShadow_FadeRange()
|
|
{
|
|
return m_iShadow_FadeRange;
|
|
}
|
|
|
|
int CDeferredLight::GetStyle_Seed()
|
|
{
|
|
return m_iStyle_Seed;
|
|
}
|
|
float CDeferredLight::GetStyle_Amount()
|
|
{
|
|
return m_flStyle_Amount;
|
|
}
|
|
float CDeferredLight::GetStyle_Speed()
|
|
{
|
|
return m_flStyle_Speed;
|
|
}
|
|
float CDeferredLight::GetStyle_Smooth()
|
|
{
|
|
return m_flStyle_Smooth;
|
|
}
|
|
float CDeferredLight::GetStyle_Random()
|
|
{
|
|
return m_flStyle_Random;
|
|
}
|
|
|
|
int CDeferredLight::GetLight_Type()
|
|
{
|
|
return m_iLightType;
|
|
}
|
|
int CDeferredLight::GetLight_Flags()
|
|
{
|
|
return m_iDefFlags;
|
|
}
|
|
int CDeferredLight::GetCookieIndex()
|
|
{
|
|
return m_iCookieIndex;
|
|
}
|
|
#if DEFCFG_ADAPTIVE_VOLUMETRIC_LOD
|
|
void CDeferredLight::GetVolumeLODDistances( float& lod0, float& lod1, float& lod2, float& lod3 )
|
|
{
|
|
lod0 = m_flVolumeLOD0Dist;
|
|
lod1 = m_flVolumeLOD1Dist;
|
|
lod2 = m_flVolumeLOD2Dist;
|
|
lod3 = m_flVolumeLOD3Dist;
|
|
}
|
|
#endif
|
|
|
|
#if DEFCFG_CONFIGURABLE_VOLUMETRIC_LOD
|
|
int CDeferredLight::GetVolumeSamples()
|
|
{
|
|
return m_iVolumeSamples;
|
|
}
|
|
#endif
|
|
|
|
#endif |