mirror of
https://github.com/alliedmodders/hl2sdk.git
synced 2025-09-19 12:06:07 +08:00
First version of the SOurce SDK 2013
This commit is contained in:
69
game/client/fx_impact.h
Normal file
69
game/client/fx_impact.h
Normal file
@ -0,0 +1,69 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
//=============================================================================//
|
||||
|
||||
#ifndef FX_IMPACT_H
|
||||
#define FX_IMPACT_H
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
#include "c_te_effect_dispatch.h"
|
||||
#include "istudiorender.h"
|
||||
|
||||
// Parse the impact data from the server's data block
|
||||
C_BaseEntity *ParseImpactData( const CEffectData &data, Vector *vecOrigin, Vector *vecStart, Vector *vecShotDir, short &nSurfaceProp, int &iMaterial, int &iDamageType, int &iHitbox );
|
||||
|
||||
// Get the decal name to use based on an impact with the specified entity, surface material, and damage type
|
||||
char const *GetImpactDecal( C_BaseEntity *pEntity, int iMaterial, int iDamageType );
|
||||
|
||||
// Basic decal handling
|
||||
// Returns true if it hit something
|
||||
enum
|
||||
{
|
||||
IMPACT_NODECAL = 0x1,
|
||||
IMPACT_REPORT_RAGDOLL_IMPACTS = 0x2,
|
||||
};
|
||||
|
||||
bool Impact( Vector &vecOrigin, Vector &vecStart, int iMaterial, int iDamageType, int iHitbox, C_BaseEntity *pEntity, trace_t &tr, int nFlags = 0, int maxLODToDecal = ADDDECAL_TO_ALL_LODS );
|
||||
|
||||
// Flags for PerformCustomEffects
|
||||
enum
|
||||
{
|
||||
FLAGS_CUSTIOM_EFFECTS_NOFLECKS = 0x1,
|
||||
};
|
||||
|
||||
// Do spiffy things according to the material hit
|
||||
void PerformCustomEffects( const Vector &vecOrigin, trace_t &tr, const Vector &shotDir, int iMaterial, int iScale, int nFlags = 0 );
|
||||
|
||||
// Play the correct impact sound according to the material hit
|
||||
void PlayImpactSound( C_BaseEntity *pServerEntity, trace_t &tr, Vector &vecServerOrigin, int nServerSurfaceProp );
|
||||
|
||||
// This can be used to hook impact sounds and play them at a later time.
|
||||
// Shotguns do this so it doesn't play 10 identical sounds in the same spot.
|
||||
typedef void (*ImpactSoundRouteFn)( const char *pSoundName, const Vector &vEndPos );
|
||||
void SetImpactSoundRoute( ImpactSoundRouteFn fn );
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: Enumerator class for ragdolls being affected by bullet forces
|
||||
//-----------------------------------------------------------------------------
|
||||
class CRagdollEnumerator : public IPartitionEnumerator
|
||||
{
|
||||
public:
|
||||
// Forced constructor
|
||||
CRagdollEnumerator( Ray_t& shot, int iDamageType );
|
||||
|
||||
// Actual work code
|
||||
virtual IterationRetval_t EnumElement( IHandleEntity *pHandleEntity );
|
||||
|
||||
bool Hit( void ) const { return m_bHit; }
|
||||
|
||||
private:
|
||||
Ray_t m_rayShot;
|
||||
int m_iDamageType;
|
||||
bool m_bHit;
|
||||
};
|
||||
|
||||
#endif // FX_IMPACT_H
|
Reference in New Issue
Block a user