dlls/baseentity.h
143144145146147148149150151152
enum Class_T
{
CLASS_NONE = 0,
CLASS_PLAYER,
CLASS_PLAYER_ALLY,
NUM_AI_CLASSES
};
#else
143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
enum Class_T
{
/* What's this one for, I just wasted ages waiting for it to compile because I didnt
look hard enough at this file :(
CLASS_NONE = 0,
CLASS_PLAYER,
CLASS_PLAYER_ALLY,
// BEG: Added by Mulchman
CLASS_DISPENSER,
CLASS_SENTRYGUN,
CLASS_DETPACK,
CLASS_MANCANNON,
CLASS_GREN,
CLASS_GREN_EMP,
// END: Added by Mulchman
//-- Added by L0ki --
CLASS_PIPEBOMB,
//-------------------
CLASS_GREN_NAIL,
CLASS_TURRET,
NUM_AI_CLASSES*/
};
#else
156157158159160161
CLASS_NONE = 0,
CLASS_PLAYER,
CLASS_PLAYER_ALLY,
NUM_AI_CLASSES
};
176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
CLASS_NONE = 0,
CLASS_PLAYER,
CLASS_PLAYER_ALLY,
// BEG: Added by Mulchman
CLASS_DISPENSER,
CLASS_SENTRYGUN,
CLASS_DETPACK,
CLASS_MANCANNON,
CLASS_GREN, // Normal gren
CLASS_GREN_EMP, // Emp greande
CLASS_GREN_NAIL, // Nail grenade
CLASS_GREN_MIRV, // Mirv grenade
CLASS_GREN_MIRVLET, // Mirvlet (from mirv gren)
CLASS_GREN_NAPALM, // Napalm grenade
CLASS_GREN_GAS, // Gas grenade
CLASS_GREN_CONC, // Conc grenade
CLASS_GREN_LASER,
CLASS_GREN_SLOWFIELD,
// END: Added by Mulchman
//-- Added by L0ki --
CLASS_PIPEBOMB,
CLASS_GLGRENADE,
//-------------------
// 0000936
CLASS_IC_ROCKET,
CLASS_RAIL_PROJECTILE,
CLASS_ROCKET,
CLASS_TURRET,
CLASS_BACKPACK,
CLASS_INFOSCRIPT,
CLASS_TRIGGERSCRIPT,
CLASS_TRIGGER_CLIP,
CLASS_TEAMSPAWN,
NUM_AI_CLASSES
};
305306307308309310
public:
DECLARE_CLASS_NOBASE( CBaseEntity );
//----------------------------------------
// Class vars and functions
//----------------------------------------
359360361362363364365366
public:
DECLARE_CLASS_NOBASE( CBaseEntity );
CUtlVector< int > m_hActiveScripts;
//----------------------------------------
// Class vars and functions
//----------------------------------------
317318319320321322
static bool m_bInDebugSelect;
static int m_nDebugPlayer;
protected:
static bool m_bDebugPause; // Whether entity i/o is paused for debugging.
373374375376377378379380381382
static bool m_bInDebugSelect;
static int m_nDebugPlayer;
// --> FF
CUtlVector m_ObjectivePlayerRefs;
// <-- FF
protected:
static bool m_bDebugPause; // Whether entity i/o is paused for debugging.
337338339340341342
// data description
DECLARE_DATADESC();
// memory handling
void *operator new( size_t stAllocateBlock );
void *operator new( size_t stAllocateBlock, int nBlockUse, const char *pFileName, int nLine );
397398399400401402403404
// data description
DECLARE_DATADESC();
void PrintDeleteInfo();
// memory handling
void *operator new( size_t stAllocateBlock );
void *operator new( size_t stAllocateBlock, int nBlockUse, const char *pFileName, int nLine );
379380381382383384
bool IsCurrentlyTouching( void ) const;
const Vector& GetAbsOrigin( void ) const;
const QAngle& GetAbsAngles( void ) const;
SolidType_t GetSolid() const;
int GetSolidFlags( void ) const;
441442443444445446447
bool IsCurrentlyTouching( void ) const;
const Vector& GetAbsOrigin( void ) const;
const QAngle& GetAbsAngles( void ) const;
Vector GetAbsFacing() const;
SolidType_t GetSolid() const;
int GetSolidFlags( void ) const;
445446447448449450
void SetEffectEntity( CBaseEntity *pEffectEnt );
CBaseEntity *GetEffectEntity() const;
// Only CBaseEntity implements these. CheckTransmit calls the virtual ShouldTransmit to see if the
// entity wants to be sent. If so, it calls SetTransmit, which will mark any dependents for transmission too.
virtual int ShouldTransmit( const CCheckTransmitInfo *pInfo );
508509510511512513514515516517
void SetEffectEntity( CBaseEntity *pEffectEnt );
CBaseEntity *GetEffectEntity() const;
// specifies if this entity can collide with its owner entity
virtual bool CanClipOwnerEntity() const { return false; }
virtual bool CanClipPlayer() const { return true; }
// Only CBaseEntity implements these. CheckTransmit calls the virtual ShouldTransmit to see if the
// entity wants to be sent. If so, it calls SetTransmit, which will mark any dependents for transmission too.
virtual int ShouldTransmit( const CCheckTransmitInfo *pInfo );
500501502503504505
virtual void Precache( void ) {}
virtual void SetModel( const char *szModelName );
virtual void PostConstructor( const char *szClassname );
virtual void PostClientActive( void );
567568569570571572573574
virtual void Precache( void ) {}
virtual void SetModel( const char *szModelName );
virtual void SetModel( const char *szModelName, int iSkin);
virtual void SetSkin( int iSkin) {}
virtual void PostConstructor( const char *szClassname );
virtual void PostClientActive( void );
537538539540541542
int GetParentAttachment();
string_t GetEntityName();
bool NameMatches( const char *pszNameOrWildcard );
bool ClassMatches( const char *pszClassOrWildcard );
606607608609610611612
int GetParentAttachment();
string_t GetEntityName();
const char* GetName() { return STRING(GetEntityName()); }
bool NameMatches( const char *pszNameOrWildcard );
bool ClassMatches( const char *pszClassOrWildcard );
646647648649650651
virtual int Restore( IRestore &restore );
virtual bool ShouldSavePhysics();
// handler to reset stuff before you are restored
// NOTE: Always chain to base class when implementing this!
virtual void OnSave( IEntitySaveUtils *pSaveUtils );
716717718719720721722723
virtual int Restore( IRestore &restore );
virtual bool ShouldSavePhysics();
virtual int TakeEmp() { return 0; } // |-- Mirv: For EMPs
// handler to reset stuff before you are restored
// NOTE: Always chain to base class when implementing this!
virtual void OnSave( IEntitySaveUtils *pSaveUtils );
714715716717718719
void SetRenderMode( RenderMode_t nRenderMode );
RenderMode_t GetRenderMode() const;
// members
string_t m_iClassname; // identifier for entity creation and save/restore
786787788789790791792793794795796
void SetRenderMode( RenderMode_t nRenderMode );
RenderMode_t GetRenderMode() const;
// for lua
void SetRenderFx(int _fx) { m_nRenderFX = _fx; }
int GetRenderFx() { return m_nRenderFX; }
void ClearRenderFx() { m_nRenderFX = kRenderFxNone; }
// members
string_t m_iClassname; // identifier for entity creation and save/restore
809810811812813814815
// Classify - returns the type of group (i.e, "houndeye", or "human military" so that NPCs with different classnames
// still realize that they are teammates. (overridden for NPCs that form groups)
virtual Class_T Classify ( void );
virtual void DeathNotice ( CBaseEntity *pVictim ) {}// NPC maker children use this to tell the NPC maker that they have died.
virtual bool ShouldAttractAutoAim( CBaseEntity *pAimingEnt ) { return false; }
virtual float GetAutoAimRadius() { return 24.0f; }
886887888889890891892
// Classify - returns the type of group (i.e, "houndeye", or "human military" so that NPCs with different classnames
// still realize that they are teammates. (overridden for NPCs that form groups)
virtual Class_T Classify ( void ) { return CLASS_NONE; }
virtual void DeathNotice ( CBaseEntity *pVictim ) {}// NPC maker children use this to tell the NPC maker that they have died.
virtual bool ShouldAttractAutoAim( CBaseEntity *pAimingEnt ) { return false; }
virtual float GetAutoAimRadius() { return 24.0f; }
850851852853854855
virtual bool IsNPC( void ) const { return false; }
CAI_BaseNPC *MyNPCPointer( void );
virtual CBaseCombatCharacter *MyCombatCharacterPointer( void ) { return NULL; }
virtual float GetDelay( void ) { return 0; }
virtual bool IsMoving( void );
bool IsWorld() { return entindex() == 0; }
927928929930931932933
virtual bool IsNPC( void ) const { return false; }
CAI_BaseNPC *MyNPCPointer( void );
virtual CBaseCombatCharacter *MyCombatCharacterPointer( void ) { return NULL; }
virtual CBasePlayer *MyCharacterPointer( void ) { return NULL; }
virtual float GetDelay( void ) { return 0; }
virtual bool IsMoving( void );
bool IsWorld() { return entindex() == 0; }
100110021003100410051006
int GetHealth() const { return m_iHealth; }
void SetHealth( int amt ) { m_iHealth = amt; }
// Ugly code to lookup all functions to make sure they are in the table when set.
#ifdef _DEBUG
void FunctionCheck( void *pFunction, char *name );
107910801081108210831084108510861087108810891090109110921093
int GetHealth() const { return m_iHealth; }
void SetHealth( int amt ) { m_iHealth = amt; }
// --> Added by Mulch for testing
// Armor accessors
int GetMaxArmor() const { return m_iMaxArmor; }
void SetMaxArmor( int amt ) { m_iMaxArmor = amt; }
int GetArmor() const { return m_iArmor; }
void SetArmor( int amt ) { m_iArmor = amt; }
// <-- Added by Mulch for testing
// Ugly code to lookup all functions to make sure they are in the table when set.
#ifdef _DEBUG
void FunctionCheck( void *pFunction, char *name );
10431044104510461047104810491050
CNetworkVarForDerived( int, m_iHealth );
CNetworkVarForDerived( char, m_lifeState );
CNetworkVarForDerived( char , m_takedamage );
// Damage filtering
string_t m_iszDamageFilterName; // The name of the entity to use as our damage filter.
EHANDLE m_hDamageFilter; // The entity that controls who can damage us.
1130113111321133113411351136113711381139114011411142
CNetworkVarForDerived( int, m_iHealth );
CNetworkVarForDerived( char, m_lifeState );
CNetworkVar( unsigned char, m_takedamage );
// --> Added by Mulch for testing
CNetworkVarForDerived( int, m_iArmor );
CNetworkVarForDerived( int, m_iMaxArmor );
// <-- Added by Mulch for testing
// Damage filtering
string_t m_iszDamageFilterName; // The name of the entity to use as our damage filter.
EHANDLE m_hDamageFilter; // The entity that controls who can damage us.
12241225122612271228122912301231123212331234123512361237
int GetFlags( void ) const;
void ClearFlags( void );
// Sets the local position from a transform
void SetLocalTransform( const matrix3x4_t &localTransform );
// See CSoundEmitterSystem
void EmitSound( const char *soundname, float soundtime = 0.0f, float *duration = NULL ); // Override for doing the general case of CPASAttenuationFilter filter( this ), and EmitSound( filter, entindex(), etc. );
void EmitSound( const char *soundname, HSOUNDSCRIPTHANDLE& handle, float soundtime = 0.0f, float *duration = NULL ); // Override for doing the general case of CPASAttenuationFilter filter( this ), and EmitSound( filter, entindex(), etc. );
void StopSound( const char *soundname );
void StopSound( const char *soundname, HSOUNDSCRIPTHANDLE& handle );
void GenderExpandString( char const *in, char *out, int maxlen );
1316131713181319132013211322132313241325132613271328132913301331133213331334
int GetFlags( void ) const;
void ClearFlags( void );
bool IsOnFire( void ) const { return ( GetFlags() & FL_ONFIRE ) ? true : false; }
// Sets the local position from a transform
void SetLocalTransform( const matrix3x4_t &localTransform );
// See CSoundEmitterSystem
void PlaySound(const char *soundname);
void EmitSound( const char *soundname, float soundtime = 0.0f, float *duration = NULL ); // Override for doing the general case of CPASAttenuationFilter filter( this ), and EmitSound( filter, entindex(), etc. );
void EmitSoundShared( const char *soundname, float soundtime = 0.0f, float *duration = NULL );
void EmitSound( const char *soundname, HSOUNDSCRIPTHANDLE& handle, float soundtime = 0.0f, float *duration = NULL ); // Override for doing the general case of CPASAttenuationFilter filter( this ), and EmitSound( filter, entindex(), etc. );
void StopSound( const char *soundname );
void StopSound( const char *soundname, HSOUNDSCRIPTHANDLE& handle );
void StopSoundInChannel( const char *soundname, HSOUNDSCRIPTHANDLE& handle, const int channel ); // Jon: for AC stuff
void GenderExpandString( char const *in, char *out, int maxlen );
124312441245124612471248
static void EmitSound( IRecipientFilter& filter, int iEntIndex, const char *soundname, const Vector *pOrigin = NULL, float soundtime = 0.0f, float *duration = NULL );
static void EmitSound( IRecipientFilter& filter, int iEntIndex, const char *soundname, HSOUNDSCRIPTHANDLE& handle, const Vector *pOrigin = NULL, float soundtime = 0.0f, float *duration = NULL );
static void StopSound( int iEntIndex, const char *soundname );
static soundlevel_t LookupSoundLevel( const char *soundname );
static soundlevel_t LookupSoundLevel( const char *soundname, HSOUNDSCRIPTHANDLE& handle );
1340134113421343134413451346
static void EmitSound( IRecipientFilter& filter, int iEntIndex, const char *soundname, const Vector *pOrigin = NULL, float soundtime = 0.0f, float *duration = NULL );
static void EmitSound( IRecipientFilter& filter, int iEntIndex, const char *soundname, HSOUNDSCRIPTHANDLE& handle, const Vector *pOrigin = NULL, float soundtime = 0.0f, float *duration = NULL );
static void StopSound( int iEntIndex, const char *soundname );
static void StopSoundInChannel( int iEntIndex, const char *soundname, const int channel ); // Jon: for AC stuff
static soundlevel_t LookupSoundLevel( const char *soundname );
static soundlevel_t LookupSoundLevel( const char *soundname, HSOUNDSCRIPTHANDLE& handle );
1428142914301431143214331434
public:
// Add a discontinuity to a step
bool AddStepDiscontinuity( float flTime, const Vector &vecOrigin, const QAngle &vecAngles );
private:
// origin and angles to use in step calculations
virtual Vector GetStepOrigin( void ) const;
virtual QAngle GetStepAngles( void ) const;
1526152715281529153015311532
public:
// Add a discontinuity to a step
bool AddStepDiscontinuity( float flTime, const Vector &vecOrigin, const QAngle &vecAngles );
protected: // |-- Mirv: Changed from private
// origin and angles to use in step calculations
virtual Vector GetStepOrigin( void ) const;
virtual QAngle GetStepAngles( void ) const;
19631964196519661967196819691970
return m_angAbsRotation;
}
//-----------------------------------------------------------------------------
// Returns the entity-to-world transform
//-----------------------------------------------------------------------------
206120622063206420652066
return m_angAbsRotation;
}
//-----------------------------------------------------------------------------
// Returns the entity-to-world transform
//-----------------------------------------------------------------------------