Counter Strike : Global Offensive Source Code
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.
|
|
//========= Copyright � 1996-2005, Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
//=============================================================================//
#ifndef PHYSICS_PROP_STATUE_H
#define PHYSICS_PROP_STATUE_H
#ifdef _WIN32
#pragma once
#endif
#include "props.h"
struct outer_collision_obb_t { bool bDirty; Vector vecPos; Vector vecMins; Vector vecMaxs; QAngle angAngles;
CUtlVector<short> iSpheres; };
//-----------------------------------------------------------------------------
// Purpose: entity class for simple ragdoll physics
//-----------------------------------------------------------------------------
// UNDONE: Move this to a private header
class CStatueProp : public CPhysicsProp { DECLARE_CLASS( CStatueProp, CPhysicsProp ); DECLARE_SERVERCLASS(); DECLARE_DATADESC();
public: CStatueProp( void );
virtual void Spawn( void ); virtual void Precache();
virtual bool CreateVPhysics(); virtual void VPhysicsUpdate( IPhysicsObject *pPhysics );
//virtual float GetAutoAimRadius() { return 24.0f; }
virtual void ComputeWorldSpaceSurroundingBox( Vector *pMins, Vector *pMaxs ); virtual bool TestCollision( const Ray_t &ray, unsigned int fContentsMask, trace_t& tr ); 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 CollisionPartnerThink( void );
private:
bool CreateVPhysicsFromHitBoxes( CBaseAnimating *pInitBaseAnimating ); bool CreateVPhysicsFromOBBs( CBaseAnimating *pInitBaseAnimating );
public:
CNetworkHandle( CBaseAnimating, m_hInitBaseAnimating );
CNetworkVar( bool, m_bShatter ); CNetworkVar( int, m_nShatterFlags ); CNetworkVector( m_vShatterPosition ); CNetworkVector( m_vShatterForce );
const CUtlVector<outer_collision_obb_t> *m_pInitOBBs; };
CBaseEntity *CreateServerStatue( CBaseAnimating *pAnimating, int collisionGroup ); CBaseEntity *CreateServerStatueFromOBBs( const CUtlVector<outer_collision_obb_t> &vecSphereOrigins, CBaseAnimating *pChildEntity );
#endif // PHYSICS_PROP_STATUE_H
|