sqwarmed/sdk_src/game/server/swarm/asw_physics_prop_statue.h

54 lines
1.6 KiB
C++

//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
//=============================================================================//
#ifndef ASW_PHYSICS_PROP_STATUE_H
#define ASW_PHYSICS_PROP_STATUE_H
#ifdef _WIN32
#pragma once
#endif
#include "asw_shareddefs.h"
#include "physics_prop_statue.h"
//-----------------------------------------------------------------------------
// Purpose: entity class for simple ragdoll physics
//-----------------------------------------------------------------------------
class CASWStatueProp : public CStatueProp
{
DECLARE_CLASS( CASWStatueProp, CStatueProp );
DECLARE_SERVERCLASS();
DECLARE_DATADESC();
public:
CASWStatueProp( void );
virtual void Spawn( void );
virtual void Precache();
virtual int OnTakeDamage( const CTakeDamageInfo &info );
virtual void Event_Killed( const CTakeDamageInfo &info );
virtual void Freeze( float flFreezeAmount = -1.0f, CBaseEntity *pFreezer = NULL, Ray_t *pFreezeRay = NULL );
void EnableAutoShatter( const CTakeDamageInfo &dmgInfo );
void AutoShatterThink();
void BreakThink();
Class_T Classify( void ) { return (Class_T) CLASS_ASW_STATUE; }
const char *m_pszSourceClass;
CTakeDamageInfo m_ShatterDamageInfo;
};
CBaseEntity *CreateASWServerStatue( CBaseAnimating *pAnimating, int collisionGroup, const CTakeDamageInfo &dmgInfo, bool bAutoShatter );
CBaseEntity *CreateASWServerStatueFromOBBs( const CUtlVector<outer_collision_obb_t> &vecSphereOrigins, CBaseAnimating *pChildEntity );
#endif // ASW_PHYSICS_PROP_STATUE_H