mirror of
https://github.com/nillerusr/source-engine.git
synced 2024-12-29 17:43:01 +00:00
89 lines
2.0 KiB
C++
89 lines
2.0 KiB
C++
//========= 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
|