mirror of
https://github.com/alliedmodders/hl2sdk.git
synced 2025-09-19 03:56:10 +08:00
First version of the SOurce SDK 2013
This commit is contained in:
91
game/server/te_footprintdecal.cpp
Normal file
91
game/server/te_footprintdecal.cpp
Normal file
@ -0,0 +1,91 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $Workfile: $
|
||||
// $Date: $
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
// $Log: $
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//=============================================================================//
|
||||
#include "cbase.h"
|
||||
#include "basetempentity.h"
|
||||
|
||||
// memdbgon must be the last include file in a .cpp file!!!
|
||||
#include "tier0/memdbgon.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: Dispatches footprint decal tempentity
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#define FOOTPRINT_DECAY_TIME 3.0f
|
||||
|
||||
class CTEFootprintDecal : public CBaseTempEntity
|
||||
{
|
||||
public:
|
||||
DECLARE_CLASS( CTEFootprintDecal, CBaseTempEntity );
|
||||
|
||||
CTEFootprintDecal( const char *name );
|
||||
virtual ~CTEFootprintDecal( void );
|
||||
|
||||
DECLARE_SERVERCLASS();
|
||||
|
||||
public:
|
||||
CNetworkVector( m_vecOrigin );
|
||||
CNetworkVector( m_vecDirection );
|
||||
CNetworkVar( int, m_nEntity );
|
||||
CNetworkVar( int, m_nIndex );
|
||||
CNetworkVar( unsigned char, m_chMaterialType );
|
||||
};
|
||||
|
||||
IMPLEMENT_SERVERCLASS_ST(CTEFootprintDecal, DT_TEFootprintDecal)
|
||||
SendPropVector( SENDINFO(m_vecOrigin), -1, SPROP_COORD),
|
||||
SendPropVector( SENDINFO(m_vecDirection), -1, SPROP_COORD),
|
||||
SendPropInt( SENDINFO(m_nEntity), 11, SPROP_UNSIGNED ),
|
||||
SendPropInt( SENDINFO(m_nIndex), 8, SPROP_UNSIGNED ),
|
||||
SendPropInt( SENDINFO(m_chMaterialType), 8, SPROP_UNSIGNED ),
|
||||
END_SEND_TABLE()
|
||||
|
||||
|
||||
// Singleton to fire TEFootprintDecal objects
|
||||
static CTEFootprintDecal g_TEFootprintDecal( "Footprint Decal" );
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// constructor, destructor
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
CTEFootprintDecal::CTEFootprintDecal( const char *name ) :
|
||||
CBaseTempEntity( name )
|
||||
{
|
||||
m_vecOrigin.Init();
|
||||
m_nEntity = 0;
|
||||
m_nIndex = 0;
|
||||
m_chMaterialType = 'C';
|
||||
}
|
||||
|
||||
CTEFootprintDecal::~CTEFootprintDecal( void )
|
||||
{
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// places a footprint decal
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
void TE_FootprintDecal( IRecipientFilter& filter, float delay,
|
||||
const Vector *origin, const Vector *right, int entity, int index,
|
||||
unsigned char materialType )
|
||||
{
|
||||
Assert( origin );
|
||||
g_TEFootprintDecal.m_vecOrigin = *origin;
|
||||
g_TEFootprintDecal.m_vecDirection = *right;
|
||||
g_TEFootprintDecal.m_nEntity = entity;
|
||||
g_TEFootprintDecal.m_nIndex = index;
|
||||
g_TEFootprintDecal.m_chMaterialType = materialType;
|
||||
|
||||
VectorNormalize(g_TEFootprintDecal.m_vecDirection.GetForModify());
|
||||
|
||||
// Send it over the wire
|
||||
g_TEFootprintDecal.Create( filter, delay );
|
||||
}
|
Reference in New Issue
Block a user