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 � 1996-2005, Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
//=============================================================================//
#ifndef SINGLEPLAY_GAMERULES_H
#define SINGLEPLAY_GAMERULES_H
#ifdef _WIN32
#pragma once
#endif
#include "gamerules.h"
#ifdef CLIENT_DLL
#define CSingleplayRules C_SingleplayRules
#endif
//=========================================================
// CSingleplayRules - rules for the single player Half-Life
// game.
//=========================================================
class CSingleplayRules : public CGameRules { public:
DECLARE_CLASS( CSingleplayRules, CGameRules );
// Functions to verify the single/multiplayer status of a game
virtual bool IsMultiplayer( void );
// Damage query implementations.
virtual bool Damage_IsTimeBased( int iDmgType ); // Damage types that are time-based.
virtual bool Damage_ShouldGibCorpse( int iDmgType ); // Damage types that gib the corpse.
virtual bool Damage_ShowOnHUD( int iDmgType ); // Damage types that have client HUD art.
virtual bool Damage_NoPhysicsForce( int iDmgType ); // Damage types that don't have to supply a physics force & position.
virtual bool Damage_ShouldNotBleed( int iDmgType ); // Damage types that don't make the player bleed.
// TEMP: These will go away once DamageTypes become enums.
virtual int Damage_GetTimeBased( void ); virtual int Damage_GetShouldGibCorpse( void ); virtual int Damage_GetShowOnHud( void ); virtual int Damage_GetNoPhysicsForce( void ); virtual int Damage_GetShouldNotBleed( void );
#ifdef CLIENT_DLL
#else
CSingleplayRules(); virtual ~CSingleplayRules() {}
// GR_Think
virtual void Think( void ); virtual bool IsAllowedToSpawn( CBaseEntity *pEntity ); virtual bool FAllowFlashlight( void ) { return TRUE; };
virtual bool FShouldSwitchWeapon( CBasePlayer *pPlayer, CBaseCombatWeapon *pWeapon ); virtual CBaseCombatWeapon *GetNextBestWeapon( CBaseCombatCharacter *pPlayer, CBaseCombatWeapon *pCurrentWeapon ); bool SwitchToNextBestWeapon( CBaseCombatCharacter *pPlayer, CBaseCombatWeapon *pCurrentWeapon ); // Functions to verify the single/multiplayer status of a game
virtual bool IsDeathmatch( void ); virtual bool IsCoOp( void );
// Client connection/disconnection
virtual bool ClientConnected( edict_t *pEntity, const char *pszName, const char *pszAddress, char *reject, int maxrejectlen ); virtual void InitHUD( CBasePlayer *pl ); // the client dll is ready for updating
virtual void ClientDisconnected( edict_t *pClient );
// Client damage rules
virtual float FlPlayerFallDamage( CBasePlayer *pPlayer ); virtual bool AllowDamage( CBaseEntity *pVictim, const CTakeDamageInfo &info ); // Client spawn/respawn control
virtual void PlayerSpawn( CBasePlayer *pPlayer ); virtual bool FPlayerCanRespawn( CBasePlayer *pPlayer ); virtual float FlPlayerSpawnTime( CBasePlayer *pPlayer );
virtual bool AllowAutoTargetCrosshair( void ); virtual int GetAutoAimMode();
// Client kills/scoring
virtual int IPointsForKill( CBasePlayer *pAttacker, CBasePlayer *pKilled ); virtual void PlayerKilled( CBasePlayer *pVictim, const CTakeDamageInfo &info ); virtual void DeathNotice( CBasePlayer *pVictim, const CTakeDamageInfo &info );
// Weapon spawn/respawn control
virtual int WeaponShouldRespawn( CBaseCombatWeapon *pWeapon ); virtual float FlWeaponRespawnTime( CBaseCombatWeapon *pWeapon ); virtual float FlWeaponTryRespawn( CBaseCombatWeapon *pWeapon ); virtual Vector VecWeaponRespawnSpot( CBaseCombatWeapon *pWeapon );
// Item retrieval
virtual bool CanHaveItem( CBasePlayer *pPlayer, CItem *pItem ); virtual void PlayerGotItem( CBasePlayer *pPlayer, CItem *pItem );
// Item spawn/respawn control
virtual int ItemShouldRespawn( CItem *pItem ); virtual float FlItemRespawnTime( CItem *pItem ); virtual Vector VecItemRespawnSpot( CItem *pItem ); virtual QAngle VecItemRespawnAngles( CItem *pItem );
// Ammo retrieval
virtual void PlayerGotAmmo( CBaseCombatCharacter *pPlayer, char *szName, int iCount );
// Healthcharger respawn control
virtual float FlHealthChargerRechargeTime( void );
// What happens to a dead player's weapons
virtual int DeadPlayerWeapons( CBasePlayer *pPlayer );
// What happens to a dead player's ammo
virtual int DeadPlayerAmmo( CBasePlayer *pPlayer );
// NPCs
virtual bool FAllowNPCs( void );
// Teamplay stuff
virtual int PlayerRelationship( CBaseEntity *pPlayer, CBaseEntity *pTarget ); virtual bool PlayerCanHearChat( CBasePlayer *pListener, CBasePlayer *pSpeaker, bool bTeamOnly ); #endif
};
#endif // SINGLEPLAY_GAMERULES_H
|