summaryrefslogtreecommitdiff
path: root/game/shared/tfc/tfc_gamerules.h
diff options
context:
space:
mode:
Diffstat (limited to 'game/shared/tfc/tfc_gamerules.h')
-rw-r--r--game/shared/tfc/tfc_gamerules.h104
1 files changed, 104 insertions, 0 deletions
diff --git a/game/shared/tfc/tfc_gamerules.h b/game/shared/tfc/tfc_gamerules.h
new file mode 100644
index 0000000..6f678f3
--- /dev/null
+++ b/game/shared/tfc/tfc_gamerules.h
@@ -0,0 +1,104 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose: The TF Game rules object
+//
+// $Workfile: $
+// $Date: $
+// $NoKeywords: $
+//=============================================================================//
+
+#ifndef TFC_GAMERULES_H
+#define TFC_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 CTFCGameRules C_TFCGameRules
+ #define CTFCGameRulesProxy C_TFCGameRulesProxy
+
+#else
+
+ extern BOOL no_cease_fire_text;
+ extern BOOL cease_fire;
+
+#endif
+
+
+class CTFCGameRulesProxy : public CGameRulesProxy
+{
+public:
+ DECLARE_CLASS( CTFCGameRulesProxy, CGameRulesProxy );
+ DECLARE_NETWORKCLASS();
+};
+
+
+class CTFCGameRules : public CTeamplayRules
+{
+public:
+ DECLARE_CLASS( CTFCGameRules, CTeamplayRules );
+
+ CTFCGameRules();
+
+ virtual bool ShouldCollide( int collisionGroup0, int collisionGroup1 );
+ void RadiusDamage( const CTakeDamageInfo &info, const Vector &vecSrcIn, float flRadius, int iClassIgnore, bool bIgnoreWorld );
+
+ #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.
+
+ virtual ~CTFCGameRules();
+
+ 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 );
+
+ bool IsInPreMatch() const;
+ float GetPreMatchEndTime() const; // Returns the time at which the prematch will be over.
+ void TFCGoToIntermission();
+
+ private:
+
+#endif
+
+
+public:
+
+ bool CTF_Map;
+
+};
+
+//-----------------------------------------------------------------------------
+// Gets us at the team fortress game rules
+//-----------------------------------------------------------------------------
+
+inline CTFCGameRules* TFCGameRules()
+{
+ return static_cast<CTFCGameRules*>(g_pGameRules);
+}
+
+
+extern ConVar mp_fadetoblack;
+
+
+#endif // TFC_GAMERULES_H