diff options
Diffstat (limited to 'mp/src/game/shared/sdk/sdk_gamerules.h')
| -rw-r--r-- | mp/src/game/shared/sdk/sdk_gamerules.h | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/mp/src/game/shared/sdk/sdk_gamerules.h b/mp/src/game/shared/sdk/sdk_gamerules.h new file mode 100644 index 00000000..3c69e806 --- /dev/null +++ b/mp/src/game/shared/sdk/sdk_gamerules.h @@ -0,0 +1,88 @@ +//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose: The TF Game rules object
+//
+// $Workfile: $
+// $Date: $
+// $NoKeywords: $
+//=============================================================================//
+
+#ifndef SDK_GAMERULES_H
+#define SDK_GAMERULES_H
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+
+#include "teamplay_gamerules.h"
+#include "convar.h"
+#include "gamevars_shared.h"
+
+#ifdef CLIENT_DLL
+ #include "c_baseplayer.h"
+#else
+ #include "player.h"
+#endif
+
+
+#ifdef CLIENT_DLL
+ #define CSDKGameRules C_SDKGameRules
+ #define CSDKGameRulesProxy C_SDKGameRulesProxy
+#endif
+
+
+class CSDKGameRulesProxy : public CGameRulesProxy
+{
+public:
+ DECLARE_CLASS( CSDKGameRulesProxy, CGameRulesProxy );
+ DECLARE_NETWORKCLASS();
+};
+
+
+class CSDKGameRules : public CTeamplayRules
+{
+public:
+ DECLARE_CLASS( CSDKGameRules, CTeamplayRules );
+
+ virtual bool ShouldCollide( int collisionGroup0, int collisionGroup1 );
+
+ virtual int PlayerRelationship( CBaseEntity *pPlayer, CBaseEntity *pTarget );
+ virtual bool IsTeamplay( void ) { return false; }
+
+#ifdef CLIENT_DLL
+
+ DECLARE_CLIENTCLASS_NOBASE(); // This makes datatables able to access our private vars.
+
+#else
+
+ DECLARE_SERVERCLASS_NOBASE(); // This makes datatables able to access our private vars.
+
+ CSDKGameRules();
+ virtual ~CSDKGameRules();
+
+ virtual bool ClientCommand( CBaseEntity *pEdict, const CCommand &args );
+ virtual void RadiusDamage( const CTakeDamageInfo &info, const Vector &vecSrcIn, float flRadius, int iClassIgnore );
+ virtual void Think();
+
+ virtual const char *GetChatPrefix( bool bTeamOnly, CBasePlayer *pPlayer );
+
+private:
+
+ void RadiusDamage( const CTakeDamageInfo &info, const Vector &vecSrcIn, float flRadius, int iClassIgnore, bool bIgnoreWorld );
+
+
+#endif
+};
+
+//-----------------------------------------------------------------------------
+// Gets us at the team fortress game rules
+//-----------------------------------------------------------------------------
+
+inline CSDKGameRules* SDKGameRules()
+{
+ return static_cast<CSDKGameRules*>(g_pGameRules);
+}
+
+
+#endif // SDK_GAMERULES_H
|