source-sdk-2013-mapbase/sp/src/game/client/worldlight.h

51 lines
1.5 KiB
C
Raw Normal View History

//========= Copyright (C) 2018, CSProMod Team, All rights reserved. =========//
//
// Purpose: provide world light related functions to the client
//
// Written: November 2011
// Author: Saul Rennison
//
//===========================================================================//
#pragma once
#include "igamesystem.h" // CAutoGameSystem
class Vector;
struct dworldlight_t;
//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
class CWorldLights : public CAutoGameSystem
{
public:
CWorldLights();
~CWorldLights() { Clear(); }
//-------------------------------------------------------------------------
// Find the brightest light source at a point
//-------------------------------------------------------------------------
bool GetBrightestLightSource(const Vector &vecPosition, Vector &vecLightPos, Vector &vecLightBrightness);
#ifdef MAPBASE
bool GetCumulativeLightSource(const Vector &vecPosition, Vector &vecLightPos, float flMinBrightnessSqr);
#endif
// CAutoGameSystem overrides
public:
virtual bool Init();
virtual void LevelInitPreEntity();
virtual void LevelShutdownPostEntity() { Clear(); }
private:
void Clear();
int m_nWorldLights;
dworldlight_t *m_pWorldLights;
};
//-----------------------------------------------------------------------------
// Singleton exposure
//-----------------------------------------------------------------------------
extern CWorldLights *g_pWorldLights;