2
0
mirror of https://github.com/rehlds/reapi.git synced 2024-12-28 15:45:31 +03:00

CSSDK: Implemented DECLARE_CLASS_TYPES for all game classes

This commit is contained in:
s1lentq 2020-12-18 04:07:52 +07:00
parent defe8588d4
commit 5ab787460d
36 changed files with 617 additions and 203 deletions

View File

@ -31,6 +31,7 @@
class CBaseEntity; class CBaseEntity;
class CCSEntity class CCSEntity
{ {
DECLARE_CLASS_TYPES(CCSEntity, CCSEntity);
public: public:
CCSEntity() : CCSEntity() :
m_pContainingEntity(nullptr) m_pContainingEntity(nullptr)
@ -47,24 +48,28 @@ public:
class CCSDelay: public CCSEntity class CCSDelay: public CCSEntity
{ {
DECLARE_CLASS_TYPES(CCSDelay, CCSEntity);
public: public:
}; };
class CCSAnimating: public CCSDelay class CCSAnimating: public CCSDelay
{ {
DECLARE_CLASS_TYPES(CCSAnimating, CCSDelay);
public: public:
}; };
class CCSToggle: public CCSAnimating class CCSToggle: public CCSAnimating
{ {
DECLARE_CLASS_TYPES(CCSToggle, CCSAnimating);
public: public:
}; };
class CCSMonster: public CCSToggle class CCSMonster: public CCSToggle
{ {
DECLARE_CLASS_TYPES(CCSMonster, CCSToggle);
public: public:
}; };

View File

@ -37,7 +37,9 @@ enum WeaponInfiniteAmmoMode
WPNMODE_INFINITE_BPAMMO WPNMODE_INFINITE_BPAMMO
}; };
class CCSPlayer: public CCSMonster { class CCSPlayer: public CCSMonster
{
DECLARE_CLASS_TYPES(CCSPlayer, CCSMonster);
public: public:
CCSPlayer() : CCSPlayer() :
m_bForceShowMenu(false), m_bForceShowMenu(false),

View File

@ -31,6 +31,7 @@
class CBasePlayerItem; class CBasePlayerItem;
class CCSPlayerItem: public CCSAnimating class CCSPlayerItem: public CCSAnimating
{ {
DECLARE_CLASS_TYPES(CCSPlayerItem, CCSAnimating);
public: public:
CCSPlayerItem() CCSPlayerItem()
{ {

View File

@ -27,7 +27,9 @@
*/ */
#pragma once #pragma once
class CAirtank: public CGrenade { class CAirtank: public CGrenade
{
DECLARE_CLASS_TYPES(CAirtank, CGrenade);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;

View File

@ -27,70 +27,90 @@
*/ */
#pragma once #pragma once
class C9MMAmmo: public CBasePlayerAmmo { class C9MMAmmo: public CBasePlayerAmmo
{
DECLARE_CLASS_TYPES(C9MMAmmo, CBasePlayerAmmo);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
virtual BOOL AddAmmo(CBaseEntity *pOther) = 0; virtual BOOL AddAmmo(CBaseEntity *pOther) = 0;
}; };
class CBuckShotAmmo: public CBasePlayerAmmo { class CBuckShotAmmo: public CBasePlayerAmmo
{
DECLARE_CLASS_TYPES(CBuckShotAmmo, CBasePlayerAmmo);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
virtual BOOL AddAmmo(CBaseEntity *pOther) = 0; virtual BOOL AddAmmo(CBaseEntity *pOther) = 0;
}; };
class C556NatoAmmo: public CBasePlayerAmmo { class C556NatoAmmo: public CBasePlayerAmmo
{
DECLARE_CLASS_TYPES(C556NatoAmmo, CBasePlayerAmmo);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
virtual BOOL AddAmmo(CBaseEntity *pOther) = 0; virtual BOOL AddAmmo(CBaseEntity *pOther) = 0;
}; };
class C556NatoBoxAmmo: public CBasePlayerAmmo { class C556NatoBoxAmmo: public CBasePlayerAmmo
{
DECLARE_CLASS_TYPES(C556NatoBoxAmmo, CBasePlayerAmmo);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
virtual BOOL AddAmmo(CBaseEntity *pOther) = 0; virtual BOOL AddAmmo(CBaseEntity *pOther) = 0;
}; };
class C762NatoAmmo: public CBasePlayerAmmo { class C762NatoAmmo: public CBasePlayerAmmo
{
DECLARE_CLASS_TYPES(C762NatoAmmo, CBasePlayerAmmo);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
virtual BOOL AddAmmo(CBaseEntity *pOther) = 0; virtual BOOL AddAmmo(CBaseEntity *pOther) = 0;
}; };
class C45ACPAmmo: public CBasePlayerAmmo { class C45ACPAmmo: public CBasePlayerAmmo
{
DECLARE_CLASS_TYPES(C45ACPAmmo, CBasePlayerAmmo);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
virtual BOOL AddAmmo(CBaseEntity *pOther) = 0; virtual BOOL AddAmmo(CBaseEntity *pOther) = 0;
}; };
class C50AEAmmo: public CBasePlayerAmmo { class C50AEAmmo: public CBasePlayerAmmo
{
DECLARE_CLASS_TYPES(C50AEAmmo, CBasePlayerAmmo);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
virtual BOOL AddAmmo(CBaseEntity *pOther) = 0; virtual BOOL AddAmmo(CBaseEntity *pOther) = 0;
}; };
class C338MagnumAmmo: public CBasePlayerAmmo { class C338MagnumAmmo: public CBasePlayerAmmo
{
DECLARE_CLASS_TYPES(C338MagnumAmmo, CBasePlayerAmmo);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
virtual BOOL AddAmmo(CBaseEntity *pOther) = 0; virtual BOOL AddAmmo(CBaseEntity *pOther) = 0;
}; };
class C57MMAmmo: public CBasePlayerAmmo { class C57MMAmmo: public CBasePlayerAmmo
{
DECLARE_CLASS_TYPES(C57MMAmmo, CBasePlayerAmmo);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
virtual BOOL AddAmmo(CBaseEntity *pOther) = 0; virtual BOOL AddAmmo(CBaseEntity *pOther) = 0;
}; };
class C357SIGAmmo: public CBasePlayerAmmo { class C357SIGAmmo: public CBasePlayerAmmo
{
DECLARE_CLASS_TYPES(C357SIGAmmo, CBasePlayerAmmo);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;

View File

@ -45,7 +45,9 @@ enum MONSTERSTATE
}; };
class CBaseToggle; class CBaseToggle;
class CBaseMonster: public CBaseToggle { class CBaseMonster: public CBaseToggle
{
DECLARE_CLASS_TYPES(CBaseMonster, CBaseToggle);
public: public:
virtual void KeyValue(KeyValueData *pkvd) = 0; virtual void KeyValue(KeyValueData *pkvd) = 0;
virtual void TraceAttack(entvars_t *pevAttacker, float flDamage, Vector vecDir, TraceResult *ptr, int bitsDamageType) = 0; virtual void TraceAttack(entvars_t *pevAttacker, float flDamage, Vector vecDir, TraceResult *ptr, int bitsDamageType) = 0;

View File

@ -59,7 +59,9 @@
#define SF_CONVEYOR_NOTSOLID 0x0002 #define SF_CONVEYOR_NOTSOLID 0x0002
// This is just a solid wall if not inhibited // This is just a solid wall if not inhibited
class CFuncWall: public CBaseEntity { class CFuncWall: public CBaseEntity
{
DECLARE_CLASS_TYPES(CFuncWall, CBaseEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
@ -68,20 +70,26 @@ public:
virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value) = 0; virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value) = 0;
}; };
class CFuncWallToggle: public CFuncWall { class CFuncWallToggle: public CFuncWall
{
DECLARE_CLASS_TYPES(CFuncWallToggle, CFuncWall);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value) = 0; virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value) = 0;
}; };
class CFuncConveyor: public CFuncWall { class CFuncConveyor: public CFuncWall
{
DECLARE_CLASS_TYPES(CFuncConveyor, CFuncWall);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value) = 0; virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value) = 0;
}; };
// A simple entity that looks solid but lets you walk through it. // A simple entity that looks solid but lets you walk through it.
class CFuncIllusionary: public CBaseToggle { class CFuncIllusionary: public CBaseToggle
{
DECLARE_CLASS_TYPES(CFuncIllusionary, CBaseToggle);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void KeyValue(KeyValueData *pkvd) = 0; virtual void KeyValue(KeyValueData *pkvd) = 0;
@ -95,7 +103,9 @@ public:
// //
// otherwise it will be invisible and not solid. This can be used to keep // otherwise it will be invisible and not solid. This can be used to keep
// specific monsters out of certain areas // specific monsters out of certain areas
class CFuncMonsterClip: public CFuncWall { class CFuncMonsterClip: public CFuncWall
{
DECLARE_CLASS_TYPES(CFuncMonsterClip, CFuncWall);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
@ -103,7 +113,9 @@ public:
virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value) = 0; virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value) = 0;
}; };
class CFuncRotating: public CBaseEntity { class CFuncRotating: public CBaseEntity
{
DECLARE_CLASS_TYPES(CFuncRotating, CBaseEntity);
public: public:
// basic functions // basic functions
virtual void Spawn() = 0; virtual void Spawn() = 0;
@ -125,7 +137,9 @@ public:
Vector m_angles; Vector m_angles;
}; };
class CPendulum: public CBaseEntity { class CPendulum: public CBaseEntity
{
DECLARE_CLASS_TYPES(CPendulum, CBaseEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void KeyValue(KeyValueData *pkvd) = 0; virtual void KeyValue(KeyValueData *pkvd) = 0;

View File

@ -49,7 +49,9 @@
#define SF_BTARGET_USE 0x0001 #define SF_BTARGET_USE 0x0001
#define SF_BTARGET_ON 0x0002 #define SF_BTARGET_ON 0x0002
class CEnvGlobal: public CPointEntity { class CEnvGlobal: public CPointEntity
{
DECLARE_CLASS_TYPES(CEnvGlobal, CPointEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void KeyValue(KeyValueData *pkvd) = 0; virtual void KeyValue(KeyValueData *pkvd) = 0;
@ -62,12 +64,16 @@ public:
int m_initialstate; int m_initialstate;
}; };
class CRotButton: public CBaseButton { class CRotButton: public CBaseButton
{
DECLARE_CLASS_TYPES(CRotButton, CBaseButton);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
}; };
class CMomentaryRotButton: public CBaseToggle { class CMomentaryRotButton: public CBaseToggle
{
DECLARE_CLASS_TYPES(CMomentaryRotButton, CBaseToggle);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void KeyValue(KeyValueData *pkvd) = 0; virtual void KeyValue(KeyValueData *pkvd) = 0;
@ -84,7 +90,9 @@ public:
int m_sounds; int m_sounds;
}; };
class CEnvSpark: public CBaseEntity { class CEnvSpark: public CBaseEntity
{
DECLARE_CLASS_TYPES(CEnvSpark, CBaseEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -95,7 +103,9 @@ public:
float m_flDelay; float m_flDelay;
}; };
class CButtonTarget: public CBaseEntity { class CButtonTarget: public CBaseEntity
{
DECLARE_CLASS_TYPES(CButtonTarget, CBaseEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual int ObjectCaps() = 0; virtual int ObjectCaps() = 0;

View File

@ -41,7 +41,14 @@ class CBasePlayerItem;
class CSquadMonster; class CSquadMonster;
class CCSEntity; class CCSEntity;
class CBaseEntity { #define DECLARE_CLASS_TYPES(className, baseClassName)\
public: \
using BaseClass = baseClassName; \
using ThisClass = className; \
class CBaseEntity
{
DECLARE_CLASS_TYPES(CBaseEntity, CBaseEntity);
public: public:
// Constructor. Set engine to use C/C++ callback functions // Constructor. Set engine to use C/C++ callback functions
// pointers to engine data // pointers to engine data
@ -246,15 +253,18 @@ inline void CBaseEntity::SetBlocked(std::nullptr_t)
m_pfnBlocked = nullptr; m_pfnBlocked = nullptr;
} }
class CPointEntity: public CBaseEntity { class CPointEntity: public CBaseEntity
{
DECLARE_CLASS_TYPES(CPointEntity, CBaseEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual int ObjectCaps() = 0; virtual int ObjectCaps() = 0;
}; };
// generic Delay entity // generic Delay entity
class CBaseDelay: public CBaseEntity { class CBaseDelay: public CBaseEntity
{
DECLARE_CLASS_TYPES(CBaseDelay, CBaseEntity);
public: public:
virtual void KeyValue(KeyValueData *pkvd) = 0; virtual void KeyValue(KeyValueData *pkvd) = 0;
virtual int Save(CSave &save) = 0; virtual int Save(CSave &save) = 0;
@ -264,7 +274,9 @@ public:
int m_iszKillTarget; int m_iszKillTarget;
}; };
class CBaseAnimating: public CBaseDelay { class CBaseAnimating: public CBaseDelay
{
DECLARE_CLASS_TYPES(CBaseAnimating, CBaseDelay);
public: public:
virtual int Save(CSave &save) = 0; virtual int Save(CSave &save) = 0;
virtual int Restore(CRestore &restore) = 0; virtual int Restore(CRestore &restore) = 0;
@ -297,7 +309,9 @@ private:
}; };
// generic Toggle entity. // generic Toggle entity.
class CBaseToggle: public CBaseAnimating { class CBaseToggle: public CBaseAnimating
{
DECLARE_CLASS_TYPES(CBaseToggle, CBaseAnimating);
public: public:
virtual void KeyValue(KeyValueData *pkvd) = 0; virtual void KeyValue(KeyValueData *pkvd) = 0;
virtual int Save(CSave &save) = 0; virtual int Save(CSave &save) = 0;
@ -357,7 +371,9 @@ inline void CBaseToggle::SetMoveDone(std::nullptr_t)
#include "player.h" #include "player.h"
// Generic Button // Generic Button
class CBaseButton: public CBaseToggle { class CBaseButton: public CBaseToggle
{
DECLARE_CLASS_TYPES(CBaseButton, CBaseToggle);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -389,7 +405,9 @@ public:
#define MAX_MULTI_TARGETS 16 // maximum number of targets a single multi_manager entity may be assigned. #define MAX_MULTI_TARGETS 16 // maximum number of targets a single multi_manager entity may be assigned.
#define MS_MAX_TARGETS 32 #define MS_MAX_TARGETS 32
class CMultiSource: public CPointEntity { class CMultiSource: public CPointEntity
{
DECLARE_CLASS_TYPES(CMultiSource, CPointEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Restart() = 0; virtual void Restart() = 0;
@ -412,7 +430,9 @@ public:
#define SF_WORLD_FORCETEAM 0x0004 // Force teams #define SF_WORLD_FORCETEAM 0x0004 // Force teams
// This spawns first when each level begins. // This spawns first when each level begins.
class CWorld: public CBaseEntity { class CWorld: public CBaseEntity
{
DECLARE_CLASS_TYPES(CWorld, CBaseEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;

View File

@ -44,7 +44,9 @@
#define SF_DOOR_TOUCH_ONLY_CLIENTS 1024 // Only clients can touch #define SF_DOOR_TOUCH_ONLY_CLIENTS 1024 // Only clients can touch
#define SF_DOOR_SILENT 0x80000000 #define SF_DOOR_SILENT 0x80000000
class CBaseDoor: public CBaseToggle { class CBaseDoor: public CBaseToggle
{
DECLARE_CLASS_TYPES(CBaseDoor, CBaseToggle);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -72,14 +74,18 @@ public:
float m_lastBlockedTimestamp; float m_lastBlockedTimestamp;
}; };
class CRotDoor: public CBaseDoor { class CRotDoor: public CBaseDoor
{
DECLARE_CLASS_TYPES(CRotDoor, CBaseDoor);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Restart() = 0; virtual void Restart() = 0;
virtual void SetToggleState(int state) = 0; virtual void SetToggleState(int state) = 0;
}; };
class CMomentaryDoor: public CBaseToggle { class CMomentaryDoor: public CBaseToggle
{
DECLARE_CLASS_TYPES(CMomentaryDoor, CBaseToggle);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;

View File

@ -63,7 +63,9 @@
#define SF_MESSAGE_ONCE 0x0001 // Fade in, not out #define SF_MESSAGE_ONCE 0x0001 // Fade in, not out
#define SF_MESSAGE_ALL 0x0002 // Send to all clients #define SF_MESSAGE_ALL 0x0002 // Send to all clients
class CSprite: public CPointEntity { class CSprite: public CPointEntity
{
DECLARE_CLASS_TYPES(CSprite, CPointEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -112,7 +114,9 @@ private:
float m_maxFrame; float m_maxFrame;
}; };
class CBeam: public CBaseEntity { class CBeam: public CBaseEntity
{
DECLARE_CLASS_TYPES(CBeam, CBaseEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -164,7 +168,9 @@ public:
} }
}; };
class CLaser: public CBeam { class CLaser: public CBeam
{
DECLARE_CLASS_TYPES(CLaser, CBeam);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -178,7 +184,9 @@ public:
Vector m_firePosition; Vector m_firePosition;
}; };
class CBubbling: public CBaseEntity { class CBubbling: public CBaseEntity
{
DECLARE_CLASS_TYPES(CBubbling, CBaseEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -194,7 +202,9 @@ public:
int m_state; int m_state;
}; };
class CLightning: public CBeam { class CLightning: public CBeam
{
DECLARE_CLASS_TYPES(CLightning, CBeam);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -226,7 +236,9 @@ public:
float m_radius; float m_radius;
}; };
class CGlow: public CPointEntity { class CGlow: public CPointEntity
{
DECLARE_CLASS_TYPES(CGlow, CPointEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual int Save(CSave &save) = 0; virtual int Save(CSave &save) = 0;
@ -237,7 +249,9 @@ public:
float m_maxFrame; float m_maxFrame;
}; };
class CBombGlow: public CSprite { class CBombGlow: public CSprite
{
DECLARE_CLASS_TYPES(CBombGlow, CSprite);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Think() = 0; virtual void Think() = 0;
@ -247,7 +261,9 @@ public:
bool m_bSetModel; bool m_bSetModel;
}; };
class CGibShooter: public CBaseDelay { class CGibShooter: public CBaseDelay
{
DECLARE_CLASS_TYPES(CGibShooter, CBaseDelay);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -267,7 +283,9 @@ public:
float m_flGibLife; float m_flGibLife;
}; };
class CEnvShooter: public CGibShooter { class CEnvShooter: public CGibShooter
{
DECLARE_CLASS_TYPES(CEnvShooter, CGibShooter);
public: public:
virtual void Precache() = 0; virtual void Precache() = 0;
virtual void KeyValue(KeyValueData *pkvd) = 0; virtual void KeyValue(KeyValueData *pkvd) = 0;
@ -276,7 +294,9 @@ public:
#define MAX_BEAM 24 #define MAX_BEAM 24
class CTestEffect: public CBaseDelay { class CTestEffect: public CBaseDelay
{
DECLARE_CLASS_TYPES(CTestEffect, CBaseDelay);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -291,7 +311,9 @@ public:
float m_flStartTime; float m_flStartTime;
}; };
class CBlood: public CPointEntity { class CBlood: public CPointEntity
{
DECLARE_CLASS_TYPES(CBlood, CPointEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void KeyValue(KeyValueData *pkvd) = 0; virtual void KeyValue(KeyValueData *pkvd) = 0;
@ -305,7 +327,9 @@ public:
void SetBloodAmount(float amount) { pev->dmg = amount; } void SetBloodAmount(float amount) { pev->dmg = amount; }
}; };
class CShake: public CPointEntity { class CShake: public CPointEntity
{
DECLARE_CLASS_TYPES(CShake, CPointEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void KeyValue(KeyValueData *pkvd) = 0; virtual void KeyValue(KeyValueData *pkvd) = 0;
@ -322,7 +346,9 @@ public:
void SetRadius(float radius) { pev->dmg = radius; } void SetRadius(float radius) { pev->dmg = radius; }
}; };
class CFade: public CPointEntity { class CFade: public CPointEntity
{
DECLARE_CLASS_TYPES(CFade, CPointEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void KeyValue(KeyValueData *pkvd) = 0; virtual void KeyValue(KeyValueData *pkvd) = 0;
@ -335,7 +361,9 @@ public:
void SetHoldTime(float hold) { pev->dmg_save = hold; } void SetHoldTime(float hold) { pev->dmg_save = hold; }
}; };
class CMessage: public CPointEntity { class CMessage: public CPointEntity
{
DECLARE_CLASS_TYPES(CMessage, CPointEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -343,7 +371,9 @@ public:
virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value) = 0; virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value) = 0;
}; };
class CEnvFunnel: public CBaseDelay { class CEnvFunnel: public CBaseDelay
{
DECLARE_CLASS_TYPES(CEnvFunnel, CBaseDelay);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -352,14 +382,18 @@ public:
int m_iSprite; int m_iSprite;
}; };
class CEnvBeverage: public CBaseDelay { class CEnvBeverage: public CBaseDelay
{
DECLARE_CLASS_TYPES(CEnvBeverage, CBaseDelay);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value) = 0; virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value) = 0;
}; };
class CItemSoda: public CBaseEntity { class CItemSoda: public CBaseEntity
{
DECLARE_CLASS_TYPES(CItemSoda, CBaseEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;

View File

@ -34,7 +34,9 @@
#define SF_ENVEXPLOSION_NODECAL (1<<4) // don't make a scorch mark #define SF_ENVEXPLOSION_NODECAL (1<<4) // don't make a scorch mark
#define SF_ENVEXPLOSION_NOSPARKS (1<<5) // don't make a scorch mark #define SF_ENVEXPLOSION_NOSPARKS (1<<5) // don't make a scorch mark
class CShower: public CBaseEntity { class CShower: public CBaseEntity
{
DECLARE_CLASS_TYPES(CShower, CBaseEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual int ObjectCaps() = 0; virtual int ObjectCaps() = 0;
@ -42,7 +44,9 @@ public:
virtual void Touch(CBaseEntity *pOther) = 0; virtual void Touch(CBaseEntity *pOther) = 0;
}; };
class CEnvExplosion: public CBaseMonster { class CEnvExplosion: public CBaseMonster
{
DECLARE_CLASS_TYPES(CEnvExplosion, CBaseMonster);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void KeyValue(KeyValueData *pkvd) = 0; virtual void KeyValue(KeyValueData *pkvd) = 0;

View File

@ -62,7 +62,9 @@ typedef enum
} Materials; } Materials;
class CBreakable: public CBaseDelay { class CBreakable: public CBaseDelay
{
DECLARE_CLASS_TYPES(CBreakable, CBaseDelay);
public: public:
// basic functions // basic functions
virtual void Spawn() = 0; virtual void Spawn() = 0;
@ -97,7 +99,9 @@ public:
float m_flHealth; float m_flHealth;
}; };
class CPushable: public CBreakable { class CPushable: public CBreakable
{
DECLARE_CLASS_TYPES(CPushable, CBreakable);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;

View File

@ -43,7 +43,9 @@ enum TANKBULLET
TANK_BULLET_12MM, // explosion? TANK_BULLET_12MM, // explosion?
}; };
class CFuncTank: public CBaseEntity { class CFuncTank: public CBaseEntity
{
DECLARE_CLASS_TYPES(CFuncTank, CBaseEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -116,12 +118,16 @@ protected:
int m_iszMaster; // Master entity (game_team_master or multisource) int m_iszMaster; // Master entity (game_team_master or multisource)
}; };
class CFuncTankGun: public CFuncTank { class CFuncTankGun: public CFuncTank
{
DECLARE_CLASS_TYPES(CFuncTankGun, CFuncTank);
public: public:
virtual void Fire(const Vector &barrelEnd, const Vector &forward, entvars_t *pevAttacker) = 0; virtual void Fire(const Vector &barrelEnd, const Vector &forward, entvars_t *pevAttacker) = 0;
}; };
class CFuncTankLaser: public CFuncTank { class CFuncTankLaser: public CFuncTank
{
DECLARE_CLASS_TYPES(CFuncTankLaser, CFuncTank);
public: public:
virtual void KeyValue(KeyValueData *pkvd) = 0; virtual void KeyValue(KeyValueData *pkvd) = 0;
virtual int Save(CSave &save) = 0; virtual int Save(CSave &save) = 0;
@ -134,19 +140,25 @@ private:
float m_laserTime; float m_laserTime;
}; };
class CFuncTankRocket: public CFuncTank { class CFuncTankRocket: public CFuncTank
{
DECLARE_CLASS_TYPES(CFuncTankRocket, CFuncTank);
public: public:
virtual void Precache() = 0; virtual void Precache() = 0;
virtual void Fire(const Vector &barrelEnd, const Vector &forward, entvars_t *pevAttacker) = 0; virtual void Fire(const Vector &barrelEnd, const Vector &forward, entvars_t *pevAttacker) = 0;
}; };
class CFuncTankMortar: public CFuncTank { class CFuncTankMortar: public CFuncTank
{
DECLARE_CLASS_TYPES(CFuncTankMortar, CFuncTank);
public: public:
virtual void KeyValue(KeyValueData *pkvd) = 0; virtual void KeyValue(KeyValueData *pkvd) = 0;
virtual void Fire(const Vector &barrelEnd, const Vector &forward, entvars_t *pevAttacker) = 0; virtual void Fire(const Vector &barrelEnd, const Vector &forward, entvars_t *pevAttacker) = 0;
}; };
class CFuncTankControls: public CBaseEntity { class CFuncTankControls: public CBaseEntity
{
DECLARE_CLASS_TYPES(CFuncTankControls, CBaseEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual int Save(CSave &save) = 0; virtual int Save(CSave &save) = 0;

View File

@ -211,7 +211,9 @@ enum
class CItem; class CItem;
class CGameRules { class CGameRules
{
DECLARE_CLASS_TYPES(CGameRules, CGameRules);
protected: protected:
virtual ~CGameRules() {}; virtual ~CGameRules() {};
public: public:
@ -335,7 +337,9 @@ public:
#define GAMERULES_API_INTERFACE_VERSION "GAMERULES_API_INTERFACE_VERSION001" #define GAMERULES_API_INTERFACE_VERSION "GAMERULES_API_INTERFACE_VERSION001"
// CHalfLifeRules - rules for the single player Half-Life game. // CHalfLifeRules - rules for the single player Half-Life game.
class CHalfLifeRules: public CGameRules { class CHalfLifeRules: public CGameRules
{
DECLARE_CLASS_TYPES(CHalfLifeRules, CGameRules);
protected: protected:
virtual ~CHalfLifeRules() {}; virtual ~CHalfLifeRules() {};
public: public:
@ -417,7 +421,9 @@ public:
}; };
// CHalfLifeMultiplay - rules for the basic half life multiplayer competition // CHalfLifeMultiplay - rules for the basic half life multiplayer competition
class CHalfLifeMultiplay: public CGameRules { class CHalfLifeMultiplay: public CGameRules
{
DECLARE_CLASS_TYPES(CHalfLifeMultiplay, CGameRules);
protected: protected:
virtual ~CHalfLifeMultiplay() {}; virtual ~CHalfLifeMultiplay() {};
public: public:
@ -670,7 +676,9 @@ typedef struct mapcycle_s
} mapcycle_t; } mapcycle_t;
class CCStrikeGameMgrHelper: public IVoiceGameMgrHelper { class CCStrikeGameMgrHelper: public IVoiceGameMgrHelper
{
DECLARE_CLASS_TYPES(CCStrikeGameMgrHelper, IVoiceGameMgrHelper);
public: public:
virtual bool CanPlayerHearPlayer(CBasePlayer *pListener, CBasePlayer *pSender) = 0; virtual bool CanPlayerHearPlayer(CBasePlayer *pListener, CBasePlayer *pSender) = 0;
virtual void ResetCanHearPlayer(edict_t* pEdict) = 0; virtual void ResetCanHearPlayer(edict_t* pEdict) = 0;

View File

@ -28,8 +28,9 @@
#pragma once #pragma once
class CGib : public CBaseEntity class CGib: public CBaseEntity
{ {
DECLARE_CLASS_TYPES(CGib, CBaseEntity);
public: public:
virtual int ObjectCaps() = 0; virtual int ObjectCaps() = 0;

View File

@ -27,7 +27,9 @@
*/ */
#pragma once #pragma once
class CRecharge: public CBaseToggle { class CRecharge: public CBaseToggle
{
DECLARE_CLASS_TYPES(CRecharge, CBaseToggle);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;

View File

@ -27,7 +27,9 @@
*/ */
#pragma once #pragma once
class CCycler: public CBaseMonster { class CCycler: public CBaseMonster
{
DECLARE_CLASS_TYPES(CCycler, CBaseMonster);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual int Save(CSave &save) = 0; virtual int Save(CSave &save) = 0;
@ -44,18 +46,24 @@ public:
}; };
// we should get rid of all the other cyclers and replace them with this. // we should get rid of all the other cyclers and replace them with this.
class CGenericCycler: public CCycler { class CGenericCycler: public CCycler
{
DECLARE_CLASS_TYPES(CGenericCycler, CCycler);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
}; };
// Probe droid imported for tech demo compatibility // Probe droid imported for tech demo compatibility
class CCyclerProbe: public CCycler { class CCyclerProbe: public CCycler
{
DECLARE_CLASS_TYPES(CCyclerProbe, CCycler);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
}; };
class CCyclerSprite: public CBaseEntity { class CCyclerSprite: public CBaseEntity
{
DECLARE_CLASS_TYPES(CCyclerSprite, CBaseEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Restart() = 0; virtual void Restart() = 0;
@ -77,7 +85,9 @@ public:
vec3_t m_rendercolor; vec3_t m_rendercolor;
}; };
class CWeaponCycler: public CBasePlayerWeapon { class CWeaponCycler: public CBasePlayerWeapon
{
DECLARE_CLASS_TYPES(CWeaponCycler, CBasePlayerWeapon);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual int GetItemInfo(ItemInfo *p) = 0; virtual int GetItemInfo(ItemInfo *p) = 0;
@ -92,7 +102,9 @@ public:
}; };
// Flaming Wreakage // Flaming Wreakage
class CWreckage: public CBaseMonster { class CWreckage: public CBaseMonster
{
DECLARE_CLASS_TYPES(CWreckage, CBaseMonster);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;

View File

@ -27,14 +27,18 @@
*/ */
#pragma once #pragma once
class CHealthKit: public CItem { class CHealthKit: public CItem
{
DECLARE_CLASS_TYPES(CHealthKit, CItem);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
virtual BOOL MyTouch(CBasePlayer *pPlayer) = 0; virtual BOOL MyTouch(CBasePlayer *pPlayer) = 0;
}; };
class CWallHealth: public CBaseToggle { class CWallHealth: public CBaseToggle
{
DECLARE_CLASS_TYPES(CWallHealth, CBaseToggle);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;

View File

@ -79,7 +79,9 @@ extern CHostageManager *g_pHostages;
extern int g_iHostageNumber; extern int g_iHostageNumber;
// A Counter-Strike Hostage Simple // A Counter-Strike Hostage Simple
class CHostage: public CBaseMonster { class CHostage: public CBaseMonster
{
DECLARE_CLASS_TYPES(CHostage, CBaseMonster);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;

View File

@ -83,14 +83,18 @@ enum ItemID
ITEM_BATTERY ITEM_BATTERY
}; };
class CItem: public CBaseEntity { class CItem: public CBaseEntity
{
DECLARE_CLASS_TYPES(CItem, CBaseEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual CBaseEntity *Respawn() = 0; virtual CBaseEntity *Respawn() = 0;
virtual BOOL MyTouch(CBasePlayer *pPlayer) = 0; virtual BOOL MyTouch(CBasePlayer *pPlayer) = 0;
}; };
class CWorldItem: public CBaseEntity { class CWorldItem: public CBaseEntity
{
DECLARE_CLASS_TYPES(CWorldItem, CBaseEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void KeyValue(KeyValueData *pkvd) = 0; virtual void KeyValue(KeyValueData *pkvd) = 0;
@ -98,56 +102,72 @@ public:
int m_iType; int m_iType;
}; };
class CItemSuit: public CItem { class CItemSuit: public CItem
{
DECLARE_CLASS_TYPES(CItemSuit, CItem);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
virtual BOOL MyTouch(CBasePlayer *pPlayer) = 0; virtual BOOL MyTouch(CBasePlayer *pPlayer) = 0;
}; };
class CItemBattery: public CItem { class CItemBattery: public CItem
{
DECLARE_CLASS_TYPES(CItemBattery, CItem);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
virtual BOOL MyTouch(CBasePlayer *pPlayer) = 0; virtual BOOL MyTouch(CBasePlayer *pPlayer) = 0;
}; };
class CItemAntidote: public CItem { class CItemAntidote: public CItem
{
DECLARE_CLASS_TYPES(CItemAntidote, CItem);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
virtual BOOL MyTouch(CBasePlayer *pPlayer) = 0; virtual BOOL MyTouch(CBasePlayer *pPlayer) = 0;
}; };
class CItemSecurity: public CItem { class CItemSecurity: public CItem
{
DECLARE_CLASS_TYPES(CItemSecurity, CItem);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
virtual BOOL MyTouch(CBasePlayer *pPlayer) = 0; virtual BOOL MyTouch(CBasePlayer *pPlayer) = 0;
}; };
class CItemLongJump: public CItem { class CItemLongJump: public CItem
{
DECLARE_CLASS_TYPES(CItemLongJump, CItem);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
virtual BOOL MyTouch(CBasePlayer *pPlayer) = 0; virtual BOOL MyTouch(CBasePlayer *pPlayer) = 0;
}; };
class CItemKevlar: public CItem { class CItemKevlar: public CItem
{
DECLARE_CLASS_TYPES(CItemKevlar, CItem);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
virtual BOOL MyTouch(CBasePlayer *pPlayer) = 0; virtual BOOL MyTouch(CBasePlayer *pPlayer) = 0;
}; };
class CItemAssaultSuit: public CItem { class CItemAssaultSuit: public CItem
{
DECLARE_CLASS_TYPES(CItemAssaultSuit, CItem);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
virtual BOOL MyTouch(CBasePlayer *pPlayer) = 0; virtual BOOL MyTouch(CBasePlayer *pPlayer) = 0;
}; };
class CItemThighPack: public CItem { class CItemThighPack: public CItem
{
DECLARE_CLASS_TYPES(CItemThighPack, CItem);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;

View File

@ -29,7 +29,9 @@
#define SF_LIGHT_START_OFF 1 #define SF_LIGHT_START_OFF 1
class CLight: public CPointEntity { class CLight: public CPointEntity
{
DECLARE_CLASS_TYPES(CLight, CPointEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Restart() = 0; virtual void Restart() = 0;
@ -43,7 +45,9 @@ private:
BOOL m_iStartedOff; BOOL m_iStartedOff;
}; };
class CEnvLight: public CLight { class CEnvLight: public CLight
{
DECLARE_CLASS_TYPES(CEnvLight, CLight);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void KeyValue(KeyValueData *pkvd) = 0; virtual void KeyValue(KeyValueData *pkvd) = 0;

View File

@ -30,6 +30,7 @@
class CMapInfo: public CPointEntity class CMapInfo: public CPointEntity
{ {
DECLARE_CLASS_TYPES(CMapInfo, CPointEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void KeyValue(KeyValueData *pkvd) = 0; virtual void KeyValue(KeyValueData *pkvd) = 0;

View File

@ -52,7 +52,9 @@
#define SF_PTEAM_KILL 0x0002 #define SF_PTEAM_KILL 0x0002
#define SF_PTEAM_GIB 0x0004 #define SF_PTEAM_GIB 0x0004
class CRuleEntity: public CBaseEntity { class CRuleEntity: public CBaseEntity
{
DECLARE_CLASS_TYPES(CRuleEntity, CBaseEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void KeyValue(KeyValueData *pkvd) = 0; virtual void KeyValue(KeyValueData *pkvd) = 0;
@ -66,14 +68,18 @@ private:
}; };
// CRulePointEntity -- base class for all rule "point" entities (not brushes) // CRulePointEntity -- base class for all rule "point" entities (not brushes)
class CRulePointEntity: public CRuleEntity { class CRulePointEntity: public CRuleEntity
{
DECLARE_CLASS_TYPES(CRulePointEntity, CRuleEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
}; };
// CRuleBrushEntity -- base class for all rule "brush" entities (not brushes) // CRuleBrushEntity -- base class for all rule "brush" entities (not brushes)
// Default behavior is to set up like a trigger, invisible, but keep the model for volume testing // Default behavior is to set up like a trigger, invisible, but keep the model for volume testing
class CRuleBrushEntity: public CRuleEntity { class CRuleBrushEntity: public CRuleEntity
{
DECLARE_CLASS_TYPES(CRuleBrushEntity, CRuleEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
}; };
@ -82,7 +88,9 @@ public:
// Points +/- total // Points +/- total
// Flag: Allow negative scores SF_SCORE_NEGATIVE // Flag: Allow negative scores SF_SCORE_NEGATIVE
// Flag: Award points to team in teamplay SF_SCORE_TEAM // Flag: Award points to team in teamplay SF_SCORE_TEAM
class CGameScore: public CRulePointEntity { class CGameScore: public CRulePointEntity
{
DECLARE_CLASS_TYPES(CGameScore, CRulePointEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void KeyValue(KeyValueData *pkvd) = 0; virtual void KeyValue(KeyValueData *pkvd) = 0;
@ -95,14 +103,18 @@ public:
}; };
// CGameEnd / game_end -- Ends the game in MP // CGameEnd / game_end -- Ends the game in MP
class CGameEnd: public CRulePointEntity { class CGameEnd: public CRulePointEntity
{
DECLARE_CLASS_TYPES(CGameEnd, CRulePointEntity);
public: public:
virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value) = 0; virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value) = 0;
}; };
// CGameText / game_text -- NON-Localized HUD Message (use env_message to display a titles.txt message) // CGameText / game_text -- NON-Localized HUD Message (use env_message to display a titles.txt message)
// Flag: All players SF_ENVTEXT_ALLPLAYERS // Flag: All players SF_ENVTEXT_ALLPLAYERS
class CGameText: public CRulePointEntity { class CGameText: public CRulePointEntity
{
DECLARE_CLASS_TYPES(CGameText, CRulePointEntity);
public: public:
virtual void KeyValue(KeyValueData *pkvd) = 0; virtual void KeyValue(KeyValueData *pkvd) = 0;
virtual int Save(CSave &save) = 0; virtual int Save(CSave &save) = 0;
@ -124,7 +136,9 @@ private:
// team index (pulled from server team list "mp_teamlist" // team index (pulled from server team list "mp_teamlist"
// Flag: Remove on Fire // Flag: Remove on Fire
// Flag: Any team until set? -- Any team can use this until the team is set (otherwise no teams can use it) // Flag: Any team until set? -- Any team can use this until the team is set (otherwise no teams can use it)
class CGameTeamMaster: public CRulePointEntity { class CGameTeamMaster: public CRulePointEntity
{
DECLARE_CLASS_TYPES(CGameTeamMaster, CRulePointEntity);
public: public:
virtual void KeyValue(KeyValueData *pkvd) = 0; virtual void KeyValue(KeyValueData *pkvd) = 0;
virtual int ObjectCaps() = 0; virtual int ObjectCaps() = 0;
@ -143,7 +157,9 @@ public:
// CGameTeamSet / game_team_set -- Changes the team of the entity it targets to the activator's team // CGameTeamSet / game_team_set -- Changes the team of the entity it targets to the activator's team
// Flag: Fire once // Flag: Fire once
// Flag: Clear team -- Sets the team to "NONE" instead of activator // Flag: Clear team -- Sets the team to "NONE" instead of activator
class CGameTeamSet: public CRulePointEntity { class CGameTeamSet: public CRulePointEntity
{
DECLARE_CLASS_TYPES(CGameTeamSet, CRulePointEntity);
public: public:
virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value) = 0; virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value) = 0;
public: public:
@ -153,7 +169,9 @@ public:
// CGamePlayerZone / game_player_zone -- players in the zone fire my target when I'm fired // CGamePlayerZone / game_player_zone -- players in the zone fire my target when I'm fired
// Needs master? // Needs master?
class CGamePlayerZone: public CRuleBrushEntity { class CGamePlayerZone: public CRuleBrushEntity
{
DECLARE_CLASS_TYPES(CGamePlayerZone, CRulePointEntity);
public: public:
virtual void KeyValue(KeyValueData *pkvd) = 0; virtual void KeyValue(KeyValueData *pkvd) = 0;
virtual int Save(CSave &save) = 0; virtual int Save(CSave &save) = 0;
@ -168,7 +186,9 @@ private:
// CGamePlayerHurt / game_player_hurt -- Damages the player who fires it // CGamePlayerHurt / game_player_hurt -- Damages the player who fires it
// Flag: Fire once // Flag: Fire once
class CGamePlayerHurt: public CRulePointEntity { class CGamePlayerHurt: public CRulePointEntity
{
DECLARE_CLASS_TYPES(CGamePlayerHurt, CRulePointEntity);
public: public:
virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value) = 0; virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value) = 0;
public: public:
@ -178,7 +198,9 @@ public:
// CGameCounter / game_counter -- Counts events and fires target // CGameCounter / game_counter -- Counts events and fires target
// Flag: Fire once // Flag: Fire once
// Flag: Reset on Fire // Flag: Reset on Fire
class CGameCounter: public CRulePointEntity { class CGameCounter: public CRulePointEntity
{
DECLARE_CLASS_TYPES(CGameCounter, CRulePointEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value) = 0; virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value) = 0;
@ -201,7 +223,9 @@ private:
// CGameCounterSet / game_counter_set -- Sets the counter's value // CGameCounterSet / game_counter_set -- Sets the counter's value
// Flag: Fire once // Flag: Fire once
class CGameCounterSet: public CRulePointEntity { class CGameCounterSet: public CRulePointEntity
{
DECLARE_CLASS_TYPES(CGameCounterSet, CRulePointEntity);
public: public:
virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value) = 0; virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value) = 0;
public: public:
@ -210,7 +234,9 @@ public:
// CGamePlayerEquip / game_playerequip -- Sets the default player equipment // CGamePlayerEquip / game_playerequip -- Sets the default player equipment
// Flag: USE Only // Flag: USE Only
class CGamePlayerEquip: public CRulePointEntity { class CGamePlayerEquip: public CRulePointEntity
{
DECLARE_CLASS_TYPES(CGamePlayerEquip, CRulePointEntity);
public: public:
virtual void KeyValue(KeyValueData *pkvd) = 0; virtual void KeyValue(KeyValueData *pkvd) = 0;
virtual void Touch(CBaseEntity *pOther) = 0; virtual void Touch(CBaseEntity *pOther) = 0;
@ -226,7 +252,9 @@ public:
// Flag: Fire once // Flag: Fire once
// Flag: Kill Player // Flag: Kill Player
// Flag: Gib Player // Flag: Gib Player
class CGamePlayerTeam: public CRulePointEntity { class CGamePlayerTeam: public CRulePointEntity
{
DECLARE_CLASS_TYPES(CGamePlayerTeam, CRulePointEntity);
public: public:
virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value) = 0; virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value) = 0;
private: private:

View File

@ -102,7 +102,9 @@ enum HitBoxGroup
NUM_HITGROUPS, NUM_HITGROUPS,
}; };
class CGib: public CBaseEntity { class CGib: public CBaseEntity
{
DECLARE_CLASS_TYPES(CGib, CBaseEntity);
public: public:
virtual int ObjectCaps() = 0; virtual int ObjectCaps() = 0;
public: public:

View File

@ -27,7 +27,9 @@
*/ */
#pragma once #pragma once
class CFuncMortarField: public CBaseToggle { class CFuncMortarField: public CBaseToggle
{
DECLARE_CLASS_TYPES(CFuncMortarField, CBaseToggle);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -46,7 +48,9 @@ public:
int m_fControl; int m_fControl;
}; };
class CMortar: public CGrenade { class CMortar: public CGrenade
{
DECLARE_CLASS_TYPES(CMortar, CGrenade);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;

View File

@ -27,7 +27,9 @@
*/ */
#pragma once #pragma once
class CPathCorner: public CPointEntity { class CPathCorner: public CPointEntity
{
DECLARE_CLASS_TYPES(CPathCorner, CPointEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void KeyValue(KeyValueData *pkvd) = 0; virtual void KeyValue(KeyValueData *pkvd) = 0;

View File

@ -41,7 +41,9 @@
#define FGUNTARGET_START_ON 0x0001 #define FGUNTARGET_START_ON 0x0001
class CBasePlatTrain: public CBaseToggle { class CBasePlatTrain: public CBaseToggle
{
DECLARE_CLASS_TYPES(CBasePlatTrain, CBaseToggle);
public: public:
virtual void Precache() = 0; virtual void Precache() = 0;
virtual void KeyValue(KeyValueData *pkvd) = 0; virtual void KeyValue(KeyValueData *pkvd) = 0;
@ -57,7 +59,9 @@ public:
float m_volume; float m_volume;
}; };
class CFuncPlat: public CBasePlatTrain { class CFuncPlat: public CBasePlatTrain
{
DECLARE_CLASS_TYPES(CFuncPlat, CBasePlatTrain);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -68,7 +72,9 @@ public:
virtual void HitBottom() = 0; virtual void HitBottom() = 0;
}; };
class CPlatTrigger: public CBaseEntity { class CPlatTrigger: public CBaseEntity
{
DECLARE_CLASS_TYPES(CPlatTrigger, CBaseEntity);
public: public:
virtual int ObjectCaps() = 0; virtual int ObjectCaps() = 0;
virtual void Touch(CBaseEntity *pOther) = 0; virtual void Touch(CBaseEntity *pOther) = 0;
@ -76,7 +82,9 @@ public:
CFuncPlat *m_pPlatform; CFuncPlat *m_pPlatform;
}; };
class CFuncPlatRot: public CFuncPlat { class CFuncPlatRot: public CFuncPlat
{
DECLARE_CLASS_TYPES(CFuncPlatRot, CFuncPlat);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual int Save(CSave &save) = 0; virtual int Save(CSave &save) = 0;
@ -90,7 +98,9 @@ public:
Vector m_start; Vector m_start;
}; };
class CFuncTrain: public CBasePlatTrain { class CFuncTrain: public CBasePlatTrain
{
DECLARE_CLASS_TYPES(CFuncTrain, CBasePlatTrain);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -110,13 +120,17 @@ public:
BOOL m_activated; BOOL m_activated;
}; };
class CFuncTrainControls: public CBaseEntity { class CFuncTrainControls: public CBaseEntity
{
DECLARE_CLASS_TYPES(CFuncTrainControls, CBaseEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual int ObjectCaps() = 0; virtual int ObjectCaps() = 0;
}; };
class CFuncTrackChange: public CFuncPlatRot { class CFuncTrackChange: public CFuncPlatRot
{
DECLARE_CLASS_TYPES(CFuncTrackChange, CFuncPlatRot);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -155,13 +169,17 @@ public:
int m_use; int m_use;
}; };
class CFuncTrackAuto: public CFuncTrackChange { class CFuncTrackAuto: public CFuncTrackChange
{
DECLARE_CLASS_TYPES(CFuncTrackAuto, CFuncTrackChange);
public: public:
virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value) = 0; virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value) = 0;
virtual void UpdateAutoTargets(int toggleState) = 0; virtual void UpdateAutoTargets(int toggleState) = 0;
}; };
class CGunTarget: public CBaseMonster { class CGunTarget: public CBaseMonster
{
DECLARE_CLASS_TYPES(CGunTarget, CBaseMonster);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual int Save(CSave &save) = 0; virtual int Save(CSave &save) = 0;

View File

@ -273,20 +273,26 @@ enum MusicState { SILENT, CALM, INTENSE };
class CCSPlayer; class CCSPlayer;
class CStripWeapons: public CPointEntity { class CStripWeapons: public CPointEntity
{
DECLARE_CLASS_TYPES(CStripWeapons, CPointEntity);
public: public:
virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value) = 0; virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value) = 0;
}; };
// Multiplayer intermission spots. // Multiplayer intermission spots.
class CInfoIntermission: public CPointEntity { class CInfoIntermission: public CPointEntity
{
DECLARE_CLASS_TYPES(CInfoIntermission, CPointEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Think() = 0; virtual void Think() = 0;
}; };
// Dead HEV suit prop // Dead HEV suit prop
class CDeadHEV: public CBaseMonster { class CDeadHEV: public CBaseMonster
{
DECLARE_CLASS_TYPES(CDeadHEV, CBaseMonster);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void KeyValue(KeyValueData *pkvd) = 0; virtual void KeyValue(KeyValueData *pkvd) = 0;
@ -296,17 +302,23 @@ public:
static char *m_szPoses[4]; static char *m_szPoses[4];
}; };
class CSprayCan: public CBaseEntity { class CSprayCan: public CBaseEntity
{
DECLARE_CLASS_TYPES(CSprayCan, CBaseEntity);
public: public:
virtual void Think() = 0; virtual void Think() = 0;
virtual int ObjectCaps() = 0; virtual int ObjectCaps() = 0;
}; };
class CBloodSplat: public CBaseEntity { class CBloodSplat: public CBaseEntity
{
DECLARE_CLASS_TYPES(CBloodSplat, CBaseEntity);
public: public:
}; };
class CBasePlayer: public CBaseMonster { class CBasePlayer: public CBaseMonster
{
DECLARE_CLASS_TYPES(CBasePlayer, CBaseMonster);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -589,7 +601,9 @@ public:
float m_tmNextAccountHealthUpdate; float m_tmNextAccountHealthUpdate;
}; };
class CWShield: public CBaseEntity { class CWShield: public CBaseEntity
{
DECLARE_CLASS_TYPES(CWShield, CBaseEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Touch(CBaseEntity *pOther) = 0; virtual void Touch(CBaseEntity *pOther) = 0;

View File

@ -100,7 +100,9 @@ typedef struct dynpitchvol
} dynpitchvol_t; } dynpitchvol_t;
class CAmbientGeneric: public CBaseEntity { class CAmbientGeneric: public CBaseEntity
{
DECLARE_CLASS_TYPES(CAmbientGeneric, CBaseEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -116,7 +118,9 @@ public:
BOOL m_fLooping; // TRUE when the sound played will loop BOOL m_fLooping; // TRUE when the sound played will loop
}; };
class CEnvSound: public CPointEntity { class CEnvSound: public CPointEntity
{
DECLARE_CLASS_TYPES(CEnvSound, CPointEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void KeyValue(KeyValueData *pkvd) = 0; virtual void KeyValue(KeyValueData *pkvd) = 0;
@ -128,7 +132,9 @@ public:
float m_flRoomtype; float m_flRoomtype;
}; };
class CSpeaker: public CBaseEntity { class CSpeaker: public CBaseEntity
{
DECLARE_CLASS_TYPES(CSpeaker, CBaseEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;

View File

@ -28,12 +28,16 @@
#pragma once #pragma once
class CNullEntity: public CBaseEntity { class CNullEntity: public CBaseEntity
{
DECLARE_CLASS_TYPES(CNullEntity, CBaseEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
}; };
class CBaseDMStart: public CPointEntity { class CBaseDMStart: public CPointEntity
{
DECLARE_CLASS_TYPES(CBaseDMStart, CPointEntity);
public: public:
virtual void KeyValue(KeyValueData *pkvd) = 0; virtual void KeyValue(KeyValueData *pkvd) = 0;
virtual BOOL IsTriggered(CBaseEntity *pEntity) = 0; virtual BOOL IsTriggered(CBaseEntity *pEntity) = 0;

View File

@ -27,7 +27,9 @@
*/ */
#pragma once #pragma once
class CHalfLifeTraining: public CHalfLifeMultiplay { class CHalfLifeTraining: public CHalfLifeMultiplay
{
DECLARE_CLASS_TYPES(CHalfLifeTraining, CHalfLifeMultiplay);
protected: protected:
virtual ~CHalfLifeTraining() {}; virtual ~CHalfLifeTraining() {};
public: public:
@ -50,7 +52,9 @@ public:
bool fVGUIMenus; bool fVGUIMenus;
}; };
class CBaseGrenCatch: public CBaseEntity { class CBaseGrenCatch: public CBaseEntity
{
DECLARE_CLASS_TYPES(CBaseGrenCatch, CBaseEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void KeyValue(KeyValueData *pkvd) = 0; virtual void KeyValue(KeyValueData *pkvd) = 0;
@ -67,7 +71,9 @@ public:
bool m_fFlashTouched; bool m_fFlashTouched;
}; };
class CFuncWeaponCheck: public CBaseEntity { class CFuncWeaponCheck: public CBaseEntity
{
DECLARE_CLASS_TYPES(CFuncWeaponCheck, CBaseEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void KeyValue(KeyValueData *pkvd) = 0; virtual void KeyValue(KeyValueData *pkvd) = 0;

View File

@ -45,7 +45,9 @@
#define SF_CORNER_TELEPORT 0x002 #define SF_CORNER_TELEPORT 0x002
#define SF_CORNER_FIREONCE 0x004 #define SF_CORNER_FIREONCE 0x004
class CPathTrack: public CPointEntity { class CPathTrack: public CPointEntity
{
DECLARE_CLASS_TYPES(CPathTrack, CPointEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void KeyValue(KeyValueData* pkvd) = 0; virtual void KeyValue(KeyValueData* pkvd) = 0;
@ -61,7 +63,9 @@ public:
CPathTrack *m_paltpath; CPathTrack *m_paltpath;
}; };
class CFuncTrackTrain: public CBaseEntity { class CFuncTrackTrain: public CBaseEntity
{
DECLARE_CLASS_TYPES(CFuncTrackTrain, CBaseEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -96,7 +100,9 @@ private:
unsigned short m_usAdjustPitch; unsigned short m_usAdjustPitch;
}; };
class CFuncVehicle: public CBaseEntity { class CFuncVehicle: public CBaseEntity
{
DECLARE_CLASS_TYPES(CFuncVehicle, CBaseEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;

View File

@ -72,7 +72,9 @@
#define SF_RENDER_MASKMODE (1 << 2) #define SF_RENDER_MASKMODE (1 << 2)
#define SF_RENDER_MASKCOLOR (1 << 3) #define SF_RENDER_MASKCOLOR (1 << 3)
class CFrictionModifier: public CBaseEntity { class CFrictionModifier: public CBaseEntity
{
DECLARE_CLASS_TYPES(CFrictionModifier, CBaseEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void KeyValue(KeyValueData *pkvd) = 0; virtual void KeyValue(KeyValueData *pkvd) = 0;
@ -85,7 +87,9 @@ public:
// This trigger will fire when the level spawns (or respawns if not fire once) // This trigger will fire when the level spawns (or respawns if not fire once)
// It will check a global state before firing. It supports delay and killtargets // It will check a global state before firing. It supports delay and killtargets
class CAutoTrigger: public CBaseDelay { class CAutoTrigger: public CBaseDelay
{
DECLARE_CLASS_TYPES(CAutoTrigger, CBaseDelay);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -100,7 +104,9 @@ public:
USE_TYPE triggerType; USE_TYPE triggerType;
}; };
class CTriggerRelay: public CBaseDelay { class CTriggerRelay: public CBaseDelay
{
DECLARE_CLASS_TYPES(CTriggerRelay, CBaseDelay);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void KeyValue(KeyValueData *pkvd) = 0; virtual void KeyValue(KeyValueData *pkvd) = 0;
@ -116,7 +122,9 @@ public:
// at specified times. // at specified times.
// FLAG: THREAD (create clones when triggered) // FLAG: THREAD (create clones when triggered)
// FLAG: CLONE (this is a clone for a threaded execution) // FLAG: CLONE (this is a clone for a threaded execution)
class CMultiManager: public CBaseToggle { class CMultiManager: public CBaseToggle
{
DECLARE_CLASS_TYPES(CMultiManager, CBaseToggle);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Restart() = 0; virtual void Restart() = 0;
@ -137,13 +145,17 @@ public:
// //
// This entity will copy its render parameters (renderfx, rendermode, rendercolor, renderamt) // This entity will copy its render parameters (renderfx, rendermode, rendercolor, renderamt)
// to its targets when triggered. // to its targets when triggered.
class CRenderFxManager: public CBaseEntity { class CRenderFxManager: public CBaseEntity
{
DECLARE_CLASS_TYPES(CRenderFxManager, CBaseEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value) = 0; virtual void Use(CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value) = 0;
}; };
class CBaseTrigger: public CBaseToggle { class CBaseTrigger: public CBaseToggle
{
DECLARE_CLASS_TYPES(CBaseTrigger, CBaseToggle);
public: public:
virtual void KeyValue(KeyValueData *pkvd) = 0; virtual void KeyValue(KeyValueData *pkvd) = 0;
virtual int ObjectCaps() = 0; virtual int ObjectCaps() = 0;
@ -151,14 +163,18 @@ public:
// trigger_hurt - hurts anything that touches it. if the trigger has a targetname, firing it will toggle state // trigger_hurt - hurts anything that touches it. if the trigger has a targetname, firing it will toggle state
// int gfToggleState = 0; // used to determine when all radiation trigger hurts have called 'RadiationThink' // int gfToggleState = 0; // used to determine when all radiation trigger hurts have called 'RadiationThink'
class CTriggerHurt: public CBaseTrigger { class CTriggerHurt: public CBaseTrigger
{
DECLARE_CLASS_TYPES(CTriggerHurt, CBaseTrigger);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Restart() = 0; virtual void Restart() = 0;
virtual int ObjectCaps() = 0; virtual int ObjectCaps() = 0;
}; };
class CTriggerMonsterJump: public CBaseTrigger { class CTriggerMonsterJump: public CBaseTrigger
{
DECLARE_CLASS_TYPES(CTriggerMonsterJump, CBaseTrigger);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Think() = 0; virtual void Think() = 0;
@ -166,7 +182,9 @@ public:
}; };
// trigger_cdaudio - starts/stops cd audio tracks // trigger_cdaudio - starts/stops cd audio tracks
class CTriggerCDAudio: public CBaseTrigger { class CTriggerCDAudio: public CBaseTrigger
{
DECLARE_CLASS_TYPES(CTriggerCDAudio, CBaseTrigger);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Touch(CBaseEntity *pOther) = 0; virtual void Touch(CBaseEntity *pOther) = 0;
@ -174,7 +192,9 @@ public:
}; };
// This plays a CD track when fired or when the player enters it's radius // This plays a CD track when fired or when the player enters it's radius
class CTargetCDAudio: public CPointEntity { class CTargetCDAudio: public CPointEntity
{
DECLARE_CLASS_TYPES(CTargetCDAudio, CPointEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void KeyValue(KeyValueData *pkvd) = 0; virtual void KeyValue(KeyValueData *pkvd) = 0;
@ -196,7 +216,9 @@ public:
// 4) // 4)
// NEW // NEW
// if a trigger has a NETNAME, that NETNAME will become the TARGET of the triggered object. // if a trigger has a NETNAME, that NETNAME will become the TARGET of the triggered object.
class CTriggerMultiple: public CBaseTrigger { class CTriggerMultiple: public CBaseTrigger
{
DECLARE_CLASS_TYPES(CTriggerMultiple, CBaseTrigger);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
}; };
@ -212,7 +234,9 @@ public:
// 2) beep beep // 2) beep beep
// 3) large switch // 3) large switch
// 4) // 4)
class CTriggerOnce: public CTriggerMultiple { class CTriggerOnce: public CTriggerMultiple
{
DECLARE_CLASS_TYPES(CTriggerOnce, CTriggerMultiple);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Restart() = 0; virtual void Restart() = 0;
@ -223,19 +247,25 @@ public:
// If nomessage is not set, it will print "1 more.. " etc when triggered and // If nomessage is not set, it will print "1 more.. " etc when triggered and
// "sequence complete" when finished. After the counter has been triggered "cTriggersLeft" // "sequence complete" when finished. After the counter has been triggered "cTriggersLeft"
// times (default 2), it will fire all of it's targets and remove itself. // times (default 2), it will fire all of it's targets and remove itself.
class CTriggerCounter: public CBaseTrigger { class CTriggerCounter: public CBaseTrigger
{
DECLARE_CLASS_TYPES(CTriggerCounter, CBaseTrigger);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
}; };
// Derive from point entity so this doesn't move across levels // Derive from point entity so this doesn't move across levels
class CTriggerVolume: public CPointEntity { class CTriggerVolume: public CPointEntity
{
DECLARE_CLASS_TYPES(CTriggerVolume, CPointEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
}; };
// Fires a target after level transition and then dies // Fires a target after level transition and then dies
class CFireAndDie: public CBaseDelay { class CFireAndDie: public CBaseDelay
{
DECLARE_CLASS_TYPES(CFireAndDie, CBaseDelay);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -245,7 +275,9 @@ public:
// QUAKED trigger_changelevel (0.5 0.5 0.5) ? NO_INTERMISSION // QUAKED trigger_changelevel (0.5 0.5 0.5) ? NO_INTERMISSION
// When the player touches this, he gets sent to the map listed in the "map" variable. Unless the NO_INTERMISSION flag is set, the view will go to the info_intermission spot and display stats. // When the player touches this, he gets sent to the map listed in the "map" variable. Unless the NO_INTERMISSION flag is set, the view will go to the info_intermission spot and display stats.
class CChangeLevel: public CBaseTrigger { class CChangeLevel: public CBaseTrigger
{
DECLARE_CLASS_TYPES(CChangeLevel, CBaseTrigger);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void KeyValue(KeyValueData *pkvd) = 0; virtual void KeyValue(KeyValueData *pkvd) = 0;
@ -258,14 +290,18 @@ public:
float m_changeTargetDelay; float m_changeTargetDelay;
}; };
class CLadder: public CBaseTrigger { class CLadder: public CBaseTrigger
{
DECLARE_CLASS_TYPES(CLadder, CBaseTrigger);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
virtual void KeyValue(KeyValueData *pkvd) = 0; virtual void KeyValue(KeyValueData *pkvd) = 0;
}; };
class CTriggerPush: public CBaseTrigger { class CTriggerPush: public CBaseTrigger
{
DECLARE_CLASS_TYPES(CTriggerPush, CBaseTrigger);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Restart() = 0; virtual void Restart() = 0;
@ -274,54 +310,74 @@ public:
virtual void Touch(CBaseEntity *pOther) = 0; virtual void Touch(CBaseEntity *pOther) = 0;
}; };
class CTriggerTeleport: public CBaseTrigger { class CTriggerTeleport: public CBaseTrigger
{
DECLARE_CLASS_TYPES(CTriggerTeleport, CBaseTrigger);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
}; };
class CBuyZone: public CBaseTrigger { class CBuyZone: public CBaseTrigger
{
DECLARE_CLASS_TYPES(CBuyZone, CBaseTrigger);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
}; };
class CBombTarget: public CBaseTrigger { class CBombTarget: public CBaseTrigger
{
DECLARE_CLASS_TYPES(CBombTarget, CBaseTrigger);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
}; };
class CHostageRescue: public CBaseTrigger { class CHostageRescue: public CBaseTrigger
{
DECLARE_CLASS_TYPES(CHostageRescue, CBaseTrigger);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
}; };
class CEscapeZone: public CBaseTrigger { class CEscapeZone: public CBaseTrigger
{
DECLARE_CLASS_TYPES(CEscapeZone, CBaseTrigger);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
}; };
class CVIP_SafetyZone: public CBaseTrigger { class CVIP_SafetyZone: public CBaseTrigger
{
DECLARE_CLASS_TYPES(CVIP_SafetyZone, CBaseTrigger);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
}; };
class CTriggerSave: public CBaseTrigger { class CTriggerSave: public CBaseTrigger
{
DECLARE_CLASS_TYPES(CTriggerSave, CBaseTrigger);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
}; };
class CTriggerEndSection: public CBaseTrigger { class CTriggerEndSection: public CBaseTrigger
{
DECLARE_CLASS_TYPES(CTriggerEndSection, CBaseTrigger);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void KeyValue(KeyValueData *pkvd) = 0; virtual void KeyValue(KeyValueData *pkvd) = 0;
}; };
class CTriggerGravity: public CBaseTrigger { class CTriggerGravity: public CBaseTrigger
{
DECLARE_CLASS_TYPES(CTriggerGravity, CBaseTrigger);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
}; };
// this is a really bad idea. // this is a really bad idea.
class CTriggerChangeTarget: public CBaseDelay { class CTriggerChangeTarget: public CBaseDelay
{
DECLARE_CLASS_TYPES(CTriggerChangeTarget, CBaseDelay);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void KeyValue(KeyValueData *pkvd) = 0; virtual void KeyValue(KeyValueData *pkvd) = 0;
@ -333,7 +389,9 @@ private:
int m_iszNewTarget; int m_iszNewTarget;
}; };
class CTriggerCamera: public CBaseDelay { class CTriggerCamera: public CBaseDelay
{
DECLARE_CLASS_TYPES(CTriggerCamera, CBaseDelay);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void KeyValue(KeyValueData *pkvd) = 0; virtual void KeyValue(KeyValueData *pkvd) = 0;
@ -357,12 +415,16 @@ public:
int m_state; int m_state;
}; };
class CWeather: public CBaseTrigger { class CWeather: public CBaseTrigger
{
DECLARE_CLASS_TYPES(CWeather, CBaseTrigger);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
}; };
class CClientFog: public CBaseEntity { class CClientFog: public CBaseEntity
{
DECLARE_CLASS_TYPES(CClientFog, CBaseEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void KeyValue(KeyValueData *pkvd) = 0; virtual void KeyValue(KeyValueData *pkvd) = 0;

View File

@ -46,7 +46,9 @@
#define VEHICLE_MAXPITCH 200 #define VEHICLE_MAXPITCH 200
#define VEHICLE_MAXSPEED 1500 #define VEHICLE_MAXSPEED 1500
class CFuncVehicleControls: public CBaseEntity { class CFuncVehicleControls: public CBaseEntity
{
DECLARE_CLASS_TYPES(CFuncVehicleControls, CBaseEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual int ObjectCaps() = 0; virtual int ObjectCaps() = 0;

View File

@ -135,7 +135,9 @@ struct MULTIDAMAGE
#include "weapontype.h" #include "weapontype.h"
#include "items.h" #include "items.h"
class CArmoury: public CBaseEntity { class CArmoury: public CBaseEntity
{
DECLARE_CLASS_TYPES(CArmoury, CBaseEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -149,7 +151,9 @@ public:
}; };
// Smoke Grenade / HE grenade / Flashbang grenade / C4 // Smoke Grenade / HE grenade / Flashbang grenade / C4
class CGrenade: public CBaseMonster { class CGrenade: public CBaseMonster
{
DECLARE_CLASS_TYPES(CGrenade, CBaseMonster);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual int Save(CSave &save) = 0; virtual int Save(CSave &save) = 0;
@ -188,7 +192,9 @@ public:
// Items that the player has in their inventory that they can use // Items that the player has in their inventory that they can use
class CCSPlayerItem; class CCSPlayerItem;
class CBasePlayerItem: public CBaseAnimating { class CBasePlayerItem: public CBaseAnimating
{
DECLARE_CLASS_TYPES(CBasePlayerItem, CBaseAnimating);
public: public:
virtual int Save(CSave &save) = 0; virtual int Save(CSave &save) = 0;
virtual int Restore(CRestore &restore) = 0; virtual int Restore(CRestore &restore) = 0;
@ -229,7 +235,9 @@ public:
// inventory items that // inventory items that
class CCSPlayerWeapon; class CCSPlayerWeapon;
class CBasePlayerWeapon: public CBasePlayerItem { class CBasePlayerWeapon: public CBasePlayerItem
{
DECLARE_CLASS_TYPES(CBasePlayerWeapon, CBasePlayerItem);
public: public:
virtual int Save(CSave &save) = 0; virtual int Save(CSave &save) = 0;
virtual int Restore(CRestore &restore) = 0; virtual int Restore(CRestore &restore) = 0;
@ -308,14 +316,18 @@ public:
float m_flLastFireTime; float m_flLastFireTime;
}; };
class CBasePlayerAmmo: public CBaseEntity { class CBasePlayerAmmo: public CBaseEntity
{
DECLARE_CLASS_TYPES(CBasePlayerAmmo, CBaseEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual BOOL AddAmmo(CBaseEntity *pOther) = 0; virtual BOOL AddAmmo(CBaseEntity *pOther) = 0;
virtual CBaseEntity *Respawn() = 0; virtual CBaseEntity *Respawn() = 0;
}; };
class CWeaponBox: public CBaseEntity { class CWeaponBox: public CBaseEntity
{
DECLARE_CLASS_TYPES(CWeaponBox, CBaseEntity);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -332,7 +344,9 @@ public:
bool m_bIsBomb; bool m_bIsBomb;
}; };
class CUSP: public CBasePlayerWeapon { class CUSP: public CBasePlayerWeapon
{
DECLARE_CLASS_TYPES(CUSP, CBasePlayerWeapon);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -352,7 +366,9 @@ public:
float m_flBaseDamageSil; float m_flBaseDamageSil;
}; };
class CMP5N: public CBasePlayerWeapon { class CMP5N: public CBasePlayerWeapon
{
DECLARE_CLASS_TYPES(CMP5N, CBasePlayerWeapon);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -370,7 +386,9 @@ public:
unsigned short m_usFire; unsigned short m_usFire;
}; };
class CSG552: public CBasePlayerWeapon { class CSG552: public CBasePlayerWeapon
{
DECLARE_CLASS_TYPES(CSG552, CBasePlayerWeapon);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -389,7 +407,9 @@ public:
unsigned short m_usFire; unsigned short m_usFire;
}; };
class CAK47: public CBasePlayerWeapon { class CAK47: public CBasePlayerWeapon
{
DECLARE_CLASS_TYPES(CAK47, CBasePlayerWeapon);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -408,7 +428,9 @@ public:
unsigned short m_usFire; unsigned short m_usFire;
}; };
class CAUG: public CBasePlayerWeapon { class CAUG: public CBasePlayerWeapon
{
DECLARE_CLASS_TYPES(CAUG, CBasePlayerWeapon);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -427,7 +449,9 @@ public:
unsigned short m_usFire; unsigned short m_usFire;
}; };
class CAWP: public CBasePlayerWeapon { class CAWP: public CBasePlayerWeapon
{
DECLARE_CLASS_TYPES(CAWP, CBasePlayerWeapon);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -449,7 +473,9 @@ public:
#define BOMB_FLAG_DROPPED 0 // if the bomb was dropped due to voluntary dropping or death/disconnect #define BOMB_FLAG_DROPPED 0 // if the bomb was dropped due to voluntary dropping or death/disconnect
#define BOMB_FLAG_PLANTED 1 // if the bomb has been planted will also trigger the round timer to hide will also show where the dropped bomb on the Terrorist team's radar. #define BOMB_FLAG_PLANTED 1 // if the bomb has been planted will also trigger the round timer to hide will also show where the dropped bomb on the Terrorist team's radar.
class CC4: public CBasePlayerWeapon { class CC4: public CBasePlayerWeapon
{
DECLARE_CLASS_TYPES(CC4, CBasePlayerWeapon);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -470,7 +496,9 @@ public:
bool m_bHasShield; bool m_bHasShield;
}; };
class CDEAGLE: public CBasePlayerWeapon { class CDEAGLE: public CBasePlayerWeapon
{
DECLARE_CLASS_TYPES(CDEAGLE, CBasePlayerWeapon);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -489,7 +517,9 @@ public:
unsigned short m_usFire; unsigned short m_usFire;
}; };
class CFlashbang: public CBasePlayerWeapon { class CFlashbang: public CBasePlayerWeapon
{
DECLARE_CLASS_TYPES(CFlashbang, CBasePlayerWeapon);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -507,7 +537,9 @@ public:
virtual BOOL IsPistol() = 0; virtual BOOL IsPistol() = 0;
}; };
class CG3SG1: public CBasePlayerWeapon { class CG3SG1: public CBasePlayerWeapon
{
DECLARE_CLASS_TYPES(CG3SG1, CBasePlayerWeapon);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -525,7 +557,9 @@ public:
unsigned short m_usFire; unsigned short m_usFire;
}; };
class CGLOCK18: public CBasePlayerWeapon { class CGLOCK18: public CBasePlayerWeapon
{
DECLARE_CLASS_TYPES(CGLOCK18, CBasePlayerWeapon);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -544,7 +578,9 @@ public:
bool m_bBurstFire; bool m_bBurstFire;
}; };
class CHEGrenade: public CBasePlayerWeapon { class CHEGrenade: public CBasePlayerWeapon
{
DECLARE_CLASS_TYPES(CHEGrenade, CBasePlayerWeapon);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -563,7 +599,9 @@ public:
unsigned short m_usCreate; unsigned short m_usCreate;
}; };
class CKnife: public CBasePlayerWeapon { class CKnife: public CBasePlayerWeapon
{
DECLARE_CLASS_TYPES(CKnife, CBasePlayerWeapon);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -587,7 +625,9 @@ public:
float m_flSwingDistance; float m_flSwingDistance;
}; };
class CM249: public CBasePlayerWeapon { class CM249: public CBasePlayerWeapon
{
DECLARE_CLASS_TYPES(CM249, CBasePlayerWeapon);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -605,7 +645,9 @@ public:
unsigned short m_usFire; unsigned short m_usFire;
}; };
class CM3: public CBasePlayerWeapon { class CM3: public CBasePlayerWeapon
{
DECLARE_CLASS_TYPES(CM3, CBasePlayerWeapon);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -623,7 +665,9 @@ public:
unsigned short m_usFire; unsigned short m_usFire;
}; };
class CM4A1: public CBasePlayerWeapon { class CM4A1: public CBasePlayerWeapon
{
DECLARE_CLASS_TYPES(CM4A1, CBasePlayerWeapon);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -643,7 +687,9 @@ public:
float m_flBaseDamageSil; float m_flBaseDamageSil;
}; };
class CMAC10: public CBasePlayerWeapon { class CMAC10: public CBasePlayerWeapon
{
DECLARE_CLASS_TYPES(CMAC10, CBasePlayerWeapon);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -661,7 +707,9 @@ public:
unsigned short m_usFire; unsigned short m_usFire;
}; };
class CP228: public CBasePlayerWeapon { class CP228: public CBasePlayerWeapon
{
DECLARE_CLASS_TYPES(CP228, CBasePlayerWeapon);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -680,7 +728,9 @@ public:
unsigned short m_usFire; unsigned short m_usFire;
}; };
class CP90: public CBasePlayerWeapon { class CP90: public CBasePlayerWeapon
{
DECLARE_CLASS_TYPES(CP90, CBasePlayerWeapon);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -698,7 +748,9 @@ public:
unsigned short m_usFire; unsigned short m_usFire;
}; };
class CSCOUT: public CBasePlayerWeapon { class CSCOUT: public CBasePlayerWeapon
{
DECLARE_CLASS_TYPES(CSCOUT, CBasePlayerWeapon);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -716,7 +768,9 @@ public:
unsigned short m_usFire; unsigned short m_usFire;
}; };
class CSmokeGrenade: public CBasePlayerWeapon { class CSmokeGrenade: public CBasePlayerWeapon
{
DECLARE_CLASS_TYPES(CSmokeGrenade, CBasePlayerWeapon);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -735,7 +789,9 @@ public:
unsigned short m_usCreate; unsigned short m_usCreate;
}; };
class CTMP: public CBasePlayerWeapon { class CTMP: public CBasePlayerWeapon
{
DECLARE_CLASS_TYPES(CTMP, CBasePlayerWeapon);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -753,7 +809,9 @@ public:
unsigned short m_usFire; unsigned short m_usFire;
}; };
class CXM1014: public CBasePlayerWeapon { class CXM1014: public CBasePlayerWeapon
{
DECLARE_CLASS_TYPES(CXM1014, CBasePlayerWeapon);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -771,7 +829,9 @@ public:
unsigned short m_usFire; unsigned short m_usFire;
}; };
class CELITE: public CBasePlayerWeapon { class CELITE: public CBasePlayerWeapon
{
DECLARE_CLASS_TYPES(CELITE, CBasePlayerWeapon);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -790,7 +850,9 @@ public:
unsigned short m_usFire_RIGHT; unsigned short m_usFire_RIGHT;
}; };
class CFiveSeven: public CBasePlayerWeapon { class CFiveSeven: public CBasePlayerWeapon
{
DECLARE_CLASS_TYPES(CFiveSeven, CBasePlayerWeapon);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -809,7 +871,9 @@ public:
unsigned short m_usFire; unsigned short m_usFire;
}; };
class CUMP45: public CBasePlayerWeapon { class CUMP45: public CBasePlayerWeapon
{
DECLARE_CLASS_TYPES(CUMP45, CBasePlayerWeapon);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -827,7 +891,9 @@ public:
unsigned short m_usFire; unsigned short m_usFire;
}; };
class CSG550: public CBasePlayerWeapon { class CSG550: public CBasePlayerWeapon
{
DECLARE_CLASS_TYPES(CSG550, CBasePlayerWeapon);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -845,7 +911,9 @@ public:
unsigned short m_usFire; unsigned short m_usFire;
}; };
class CGalil: public CBasePlayerWeapon { class CGalil: public CBasePlayerWeapon
{
DECLARE_CLASS_TYPES(CGalil, CBasePlayerWeapon);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;
@ -864,7 +932,9 @@ public:
unsigned short m_usFire; unsigned short m_usFire;
}; };
class CFamas: public CBasePlayerWeapon { class CFamas: public CBasePlayerWeapon
{
DECLARE_CLASS_TYPES(CFamas, CBasePlayerWeapon);
public: public:
virtual void Spawn() = 0; virtual void Spawn() = 0;
virtual void Precache() = 0; virtual void Precache() = 0;