Counter Strike : Global Offensive Source Code
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//========= Copyright (c) 1996-2005, Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
//=============================================================================//
#ifndef FOGCONTROLLER_H
#define FOGCONTROLLER_H
#ifdef _WIN32
#pragma once
#endif
#include "playernet_vars.h"
#include "igamesystem.h"
#include "GameEventListener.h"
bool GetWorldFogParams( CBaseCombatCharacter *character, fogparams_t &fog );
// Spawn Flags
#define SF_FOG_MASTER 0x0001
//=============================================================================
//
// Class Fog Controller:
// Compares a set of integer inputs to the one main input
// Outputs true if they are all equivalant, false otherwise
//
class CFogController : public CBaseEntity { public: DECLARE_SERVERCLASS(); DECLARE_DATADESC(); DECLARE_CLASS( CFogController, CBaseEntity );
CFogController(); ~CFogController();
// Parse data from a map file
virtual void Activate(); virtual int UpdateTransmitState();
// Input handlers
void InputSetStartDist(inputdata_t &data); void InputSetEndDist(inputdata_t &data); void InputTurnOn(inputdata_t &data); void InputTurnOff(inputdata_t &data); void InputSetColor(inputdata_t &data); void InputSetColorSecondary(inputdata_t &data); void InputSetFarZ( inputdata_t &data ); void InputSetAngles( inputdata_t &inputdata ); void InputSetMaxDensity( inputdata_t &inputdata ); void InputSetZoomFogScale( inputdata_t &inputdata );
void InputSetColorLerpTo(inputdata_t &data); void InputSetColorSecondaryLerpTo(inputdata_t &data); void InputSetStartDistLerpTo(inputdata_t &data); void InputSetEndDistLerpTo(inputdata_t &data); void InputSetMaxDensityLerpTo(inputdata_t &data);
void InputStartFogTransition(inputdata_t &data);
int DrawDebugTextOverlays(void);
void SetLerpValues( void ); void Spawn( void );
bool IsMaster( void ) { return HasSpawnFlags( SF_FOG_MASTER ); }
public:
CNetworkVarEmbedded( fogparams_t, m_fog ); bool m_bUseAngles; int m_iChangedVariables; };
//=============================================================================
//
// Fog Controller System.
//
class CFogSystem : public CAutoGameSystem, public CGameEventListener { public:
// Creation/Init.
CFogSystem( char const *name ) : CAutoGameSystem( name ) { m_hMasterController = NULL; }
~CFogSystem() { m_hMasterController = NULL; }
virtual void LevelInitPreEntity(); virtual void LevelInitPostEntity(); virtual void FireGameEvent( IGameEvent *pEvent ); CFogController *GetMasterFogController( void ) { return m_hMasterController; } void SetMasterController( CFogController *pFogController );
private:
void InitMasterController( void ); CHandle< CFogController > m_hMasterController; };
CFogSystem *FogSystem( void );
#endif // FOGCONTROLLER_H
|