This repository has been archived on 2024-06-13. You can view files and clone it, but cannot push or open issues or pull requests.
nekohook/modules/source2013/sdk/game/shared/singleplay_gamerules.h
2020-08-04 13:13:01 -04:00

141 lines
5.0 KiB
C++

//========= Copyright 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 const char *GetTeamID(CBaseEntity *pEntity) { return ""; };
virtual int PlayerRelationship(CBaseEntity *pPlayer, CBaseEntity *pTarget);
virtual bool PlayerCanHearChat(CBasePlayer *pListener,
CBasePlayer *pSpeaker);
#endif
};
#endif // SINGLEPLAY_GAMERULES_H