aboutsummaryrefslogtreecommitdiff
path: root/sp/src/game/server/fogcontroller.h
diff options
context:
space:
mode:
authorJoe Ludwig <[email protected]>2013-06-26 15:22:04 -0700
committerJoe Ludwig <[email protected]>2013-06-26 15:22:04 -0700
commit39ed87570bdb2f86969d4be821c94b722dc71179 (patch)
treeabc53757f75f40c80278e87650ea92808274aa59 /sp/src/game/server/fogcontroller.h
downloadsource-sdk-2013-39ed87570bdb2f86969d4be821c94b722dc71179.tar.xz
source-sdk-2013-39ed87570bdb2f86969d4be821c94b722dc71179.zip
First version of the SOurce SDK 2013
Diffstat (limited to 'sp/src/game/server/fogcontroller.h')
-rw-r--r--sp/src/game/server/fogcontroller.h101
1 files changed, 101 insertions, 0 deletions
diff --git a/sp/src/game/server/fogcontroller.h b/sp/src/game/server/fogcontroller.h
new file mode 100644
index 00000000..7081ea82
--- /dev/null
+++ b/sp/src/game/server/fogcontroller.h
@@ -0,0 +1,101 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+//=============================================================================//
+
+#ifndef FOGCONTROLLER_H
+#define FOGCONTROLLER_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "playernet_vars.h"
+#include "igamesystem.h"
+
+// 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 InputSetColorLerpTo(inputdata_t &data);
+ void InputSetColorSecondaryLerpTo(inputdata_t &data);
+ void InputSetStartDistLerpTo(inputdata_t &data);
+ void InputSetEndDistLerpTo(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:
+
+ // Creation/Init.
+ CFogSystem( char const *name ) : CAutoGameSystem( name )
+ {
+ m_pMasterController = NULL;
+ }
+
+ ~CFogSystem()
+ {
+ m_pMasterController = NULL;
+ }
+
+ virtual void LevelInitPreEntity();
+ virtual void LevelInitPostEntity();
+ CFogController *GetMasterFogController( void ) { return m_pMasterController; }
+
+private:
+
+ CFogController *m_pMasterController;
+};
+
+CFogSystem *FogSystem( void );
+
+#endif // FOGCONTROLLER_H