You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.5 KiB
64 lines
1.5 KiB
//========= Copyright (c) 1996-2005, Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
//=============================================================================// |
|
|
|
#ifndef C_GIB_H |
|
#define C_GIB_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
#define DEFAULT_GIB_LIFETIME 4.0f |
|
|
|
// Base client gibs |
|
|
|
class C_Gib : public C_BaseAnimating |
|
{ |
|
typedef C_BaseAnimating BaseClass; |
|
public: |
|
|
|
~C_Gib( void ); |
|
|
|
static C_Gib *CreateClientsideGib( const char *pszModelName, Vector vecOrigin, Vector vecForceDir, AngularImpulse vecAngularImp, float flLifetime = DEFAULT_GIB_LIFETIME ); |
|
|
|
bool InitializeGib( const char *pszModelName, Vector vecOrigin, Vector vecForceDir, AngularImpulse vecAngularImp, float flLifetime = DEFAULT_GIB_LIFETIME ); |
|
void ClientThink( void ); |
|
void StartTouch( C_BaseEntity *pOther ); |
|
|
|
virtual void HitSurface( C_BaseEntity *pOther ); |
|
|
|
protected: |
|
|
|
float m_flTouchDelta; // Amount of time that must pass before another touch function can be called |
|
}; |
|
|
|
#ifdef HL2_CLIENT_DLL |
|
class CAntlionGibManager : public CAutoGameSystemPerFrame |
|
{ |
|
public: |
|
CAntlionGibManager( char const *name ) : CAutoGameSystemPerFrame( name ) |
|
{ |
|
} |
|
|
|
// Methods of IGameSystem |
|
virtual void Update( float frametime ); |
|
virtual void LevelInitPreEntity( void ); |
|
|
|
void AddGib( C_BaseEntity *pEntity ); |
|
void RemoveGib( C_BaseEntity *pEntity ); |
|
|
|
private: |
|
typedef CHandle<C_BaseEntity> CGibHandle; |
|
CUtlLinkedList< CGibHandle > m_LRU; |
|
|
|
}; |
|
|
|
|
|
extern CAntlionGibManager s_AntlionGibManager; |
|
|
|
#endif |
|
|
|
|
|
#endif // C_GIB_H
|
|
|