diff options
| author | Joe Ludwig <[email protected]> | 2013-06-26 15:22:04 -0700 |
|---|---|---|
| committer | Joe Ludwig <[email protected]> | 2013-06-26 15:22:04 -0700 |
| commit | 39ed87570bdb2f86969d4be821c94b722dc71179 (patch) | |
| tree | abc53757f75f40c80278e87650ea92808274aa59 /sp/src/game/client/fx.h | |
| download | source-sdk-2013-39ed87570bdb2f86969d4be821c94b722dc71179.tar.xz source-sdk-2013-39ed87570bdb2f86969d4be821c94b722dc71179.zip | |
First version of the SOurce SDK 2013
Diffstat (limited to 'sp/src/game/client/fx.h')
| -rw-r--r-- | sp/src/game/client/fx.h | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/sp/src/game/client/fx.h b/sp/src/game/client/fx.h new file mode 100644 index 00000000..0772d900 --- /dev/null +++ b/sp/src/game/client/fx.h @@ -0,0 +1,109 @@ +//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $Workfile: $
+// $Date: $
+// $NoKeywords: $
+//===========================================================================//
+#if !defined( FX_H )
+#define FX_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "mathlib/vector.h"
+#include "particles_simple.h"
+#include "c_pixel_visibility.h"
+
+class Vector;
+class CGameTrace;
+typedef CGameTrace trace_t;
+//struct trace_t;
+
+enum
+{
+ FX_ENERGYSPLASH_EXPLOSIVE = 0x1,
+ FX_ENERGYSPLASH_SMOKE = 0x2,
+ FX_ENERGYSPLASH_LITTLESPARKS = 0x4,
+ FX_ENERGYSPLASH_BIGSPARKS = 0x8,
+ FX_ENERGYSPLASH_BIGSPARKSCOLLIDE = 0x10,
+ FX_ENERGYSPLASH_ENERGYBALLS = 0x20,
+ FX_ENERGYSPLASH_DLIGHT = 0x40,
+
+ FX_ENERGYSPLASH_DEFAULT = ~FX_ENERGYSPLASH_EXPLOSIVE,
+ FX_ENERGYSPLASH_DEFAULT_EXPLOSIVE = ~0,
+};
+
+bool FX_GetAttachmentTransform( ClientEntityHandle_t hEntity, int attachmentIndex, matrix3x4_t &transform );
+bool FX_GetAttachmentTransform( ClientEntityHandle_t hEntity, int attachmentIndex, Vector *origin, QAngle *angles );
+
+void FX_RicochetSound( const Vector& pos );
+
+void FX_AntlionImpact( const Vector &pos, trace_t *tr );
+void FX_DebrisFlecks( const Vector& origin, trace_t *trace, char materialType, int iScale, bool bNoFlecks = false );
+void FX_Tracer( Vector& start, Vector& end, int velocity, bool makeWhiz = true );
+void FX_GunshipTracer( Vector& start, Vector& end, int velocity, bool makeWhiz = true );
+void FX_StriderTracer( Vector& start, Vector& end, int velocity, bool makeWhiz = true );
+void FX_HunterTracer( Vector& start, Vector& end, int velocity, bool makeWhiz = true );
+void FX_PlayerTracer( Vector& start, Vector& end );
+void FX_BulletPass( Vector& start, Vector& end );
+void FX_MetalSpark( const Vector &position, const Vector &direction, const Vector &surfaceNormal, int iScale = 1 );
+void FX_MetalScrape( Vector &position, Vector &normal );
+void FX_Sparks( const Vector &pos, int nMagnitude, int nTrailLength, const Vector &vecDir, float flWidth, float flMinSpeed, float flMaxSpeed, char *pSparkMaterial = NULL );
+void FX_ElectricSpark( const Vector &pos, int nMagnitude, int nTrailLength, const Vector *vecDir );
+void FX_BugBlood( Vector &pos, Vector &dir, Vector &vWorldMins, Vector &vWorldMaxs );
+void FX_Blood( Vector &pos, Vector &dir, float r, float g, float b, float a );
+void FX_CreateImpactDust( Vector &origin, Vector &normal );
+void FX_EnergySplash( const Vector &pos, const Vector &normal, int nFlags = FX_ENERGYSPLASH_DEFAULT );
+void FX_MicroExplosion( Vector &position, Vector &normal );
+void FX_Explosion( Vector& origin, Vector& normal, char materialType );
+void FX_ConcussiveExplosion( Vector& origin, Vector& normal );
+void FX_DustImpact( const Vector &origin, trace_t *tr, int iScale );
+void FX_DustImpact( const Vector &origin, trace_t *tr, float flScale );
+void FX_MuzzleEffect( const Vector &origin, const QAngle &angles, float scale, ClientEntityHandle_t hEntity, unsigned char *pFlashColor = NULL, bool bOneFrame = false );
+void FX_MuzzleEffectAttached( float scale, ClientEntityHandle_t hEntity, int attachmentIndex, unsigned char *pFlashColor = NULL, bool bOneFrame = false );
+void FX_StriderMuzzleEffect( const Vector &origin, const QAngle &angles, float scale, ClientEntityHandle_t hEntity, unsigned char *pFlashColor = NULL );
+void FX_GunshipMuzzleEffect( const Vector &origin, const QAngle &angles, float scale, ClientEntityHandle_t hEntity, unsigned char *pFlashColor = NULL );
+CSmartPtr<CSimpleEmitter> FX_Smoke( const Vector &origin, const Vector &velocity, float scale, int numParticles, float flDietime, unsigned char *pColor, int iAlpha, const char *pMaterial, float flRoll, float flRollDelta );
+void FX_Smoke( const Vector &origin, const QAngle &angles, float scale, int numParticles, unsigned char *pColor = NULL, int iAlpha = -1 );
+void FX_Dust( const Vector &vecOrigin, const Vector &vecDirection, float flSize, float flSpeed );
+void FX_CreateGaussExplosion( const Vector &pos, const Vector &dir, int type );
+void FX_GaussTracer( Vector& start, Vector& end, int velocity, bool makeWhiz = true );
+void FX_TracerSound( const Vector &start, const Vector &end, int iTracerType );
+
+// Lighting information utility
+void UTIL_GetNormalizedColorTintAndLuminosity( const Vector &color, Vector *tint = NULL, float *luminosity = NULL );
+
+// Useful function for testing whether to draw noZ effects
+bool EffectOccluded( const Vector &pos, pixelvis_handle_t *queryHandle = 0 );
+
+class CTeslaInfo
+{
+public:
+ Vector m_vPos;
+ QAngle m_vAngles;
+ int m_nEntIndex;
+ const char *m_pszSpriteName;
+ float m_flBeamWidth;
+ int m_nBeams;
+ Vector m_vColor;
+ float m_flTimeVisible;
+ float m_flRadius;
+};
+
+void FX_Tesla( const CTeslaInfo &teslaInfo );
+extern ConVar r_decals;
+
+extern void FX_CacheMaterialHandles( void );
+
+extern PMaterialHandle g_Mat_Fleck_Wood[2];
+extern PMaterialHandle g_Mat_Fleck_Cement[2];
+extern PMaterialHandle g_Mat_Fleck_Antlion[2];
+extern PMaterialHandle g_Mat_Fleck_Tile[2];
+extern PMaterialHandle g_Mat_DustPuff[2];
+extern PMaterialHandle g_Mat_BloodPuff[2];
+extern PMaterialHandle g_Mat_Fleck_Glass[2];
+extern PMaterialHandle g_Mat_SMG_Muzzleflash[4];
+extern PMaterialHandle g_Mat_Combine_Muzzleflash[3];
+#endif // FX_H
|