sqwarmed/sdk_src/game/client/c_shadowcontrol.cpp

70 lines
2.4 KiB
C++

//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============//
//
// Purpose: Shadow control entity.
//
// $NoKeywords: $
//=============================================================================//
#include "cbase.h"
// memdbgon must be the last include file in a .cpp file!!!
#include "tier0/memdbgon.h"
//------------------------------------------------------------------------------
// FIXME: This really should inherit from something more lightweight
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
// Purpose : Shadow control entity
//------------------------------------------------------------------------------
class C_ShadowControl : public C_BaseEntity
{
public:
DECLARE_CLASS( C_ShadowControl, C_BaseEntity );
DECLARE_CLIENTCLASS();
void OnDataChanged(DataUpdateType_t updateType);
bool ShouldDraw();
private:
Vector m_shadowDirection;
color32 m_shadowColor;
float m_flShadowMaxDist;
bool m_bDisableShadows;
bool m_bEnableLocalLightShadows;
};
IMPLEMENT_CLIENTCLASS_DT(C_ShadowControl, DT_ShadowControl, CShadowControl)
RecvPropVector(RECVINFO(m_shadowDirection)),
RecvPropInt(RECVINFO(m_shadowColor), 0, RecvProxy_Int32ToColor32),
RecvPropFloat(RECVINFO(m_flShadowMaxDist)),
RecvPropBool(RECVINFO(m_bDisableShadows)),
RecvPropBool(RECVINFO(m_bEnableLocalLightShadows)),
END_RECV_TABLE()
//------------------------------------------------------------------------------
// Purpose :
// Input :
// Output :
//------------------------------------------------------------------------------
void C_ShadowControl::OnDataChanged(DataUpdateType_t updateType)
{
// Set the color, direction, distance...
g_pClientShadowMgr->SetShadowDirection( m_shadowDirection );
g_pClientShadowMgr->SetShadowColor( m_shadowColor.r, m_shadowColor.g, m_shadowColor.b );
g_pClientShadowMgr->SetShadowDistance( m_flShadowMaxDist );
g_pClientShadowMgr->SetShadowsDisabled( m_bDisableShadows );
g_pClientShadowMgr->SetShadowFromWorldLightsEnabled( m_bEnableLocalLightShadows );
}
//------------------------------------------------------------------------------
// We don't draw...
//------------------------------------------------------------------------------
bool C_ShadowControl::ShouldDraw()
{
return false;
}