57 lines
1.8 KiB
C++
57 lines
1.8 KiB
C++
|
// Avatar weapon effects
|
||
|
|
||
|
#include "cg_local.h"
|
||
|
#include "fx_public.h"
|
||
|
|
||
|
#define BEAM_LEN 96.0f
|
||
|
|
||
|
//------------------------------------------------
|
||
|
void FX_ForgePsychThink( centity_t *cent, const struct weaponInfo_s *weapon )
|
||
|
//------------------------------------------------
|
||
|
{
|
||
|
vec3_t normal, end;
|
||
|
FXCylinder *fx;
|
||
|
|
||
|
// Convert the direction of travel in to a normal;
|
||
|
VectorCopy( cent->gent->s.pos.trDelta, normal );
|
||
|
VectorNormalize( normal );
|
||
|
VectorScale( normal, -1, normal );
|
||
|
|
||
|
VectorMA( cent->lerpOrigin, 8, normal, end );
|
||
|
FX_AddSprite( end, NULL, NULL, 64.0f, 0.0f, 0.2f, 0.2f, 0.0f, 0.0f, 2, cgs.media.blueParticleShader );
|
||
|
|
||
|
fx = FX_AddCylinder( cent->lerpOrigin,
|
||
|
normal, BEAM_LEN, 0,
|
||
|
20 + random() * 3, 0,
|
||
|
8 - random() * 3, 0,
|
||
|
0.8f + random() * 0.2, 0.8f,
|
||
|
1,
|
||
|
cgs.media.psychicRingsShader );
|
||
|
if ( fx == NULL )
|
||
|
return;
|
||
|
|
||
|
// Set the texture to wrap around the cylinder
|
||
|
fx->SetFlags( FXF_WRAP | FXF_NO_LOD );
|
||
|
}
|
||
|
|
||
|
//------------------------------------------------
|
||
|
void FX_ForgePsychHitPlayer( vec3_t origin, vec3_t dir )
|
||
|
//------------------------------------------------
|
||
|
{
|
||
|
//Sound
|
||
|
cgi_S_StartSound( origin, ENTITYNUM_WORLD, CHAN_AUTO, cg_weapons[WP_FORGE_PSYCH].missileHitSound );
|
||
|
}
|
||
|
|
||
|
//------------------------------------------------
|
||
|
void FX_ForgePsychHitWall( vec3_t origin, vec3_t dir )
|
||
|
//------------------------------------------------
|
||
|
{
|
||
|
vec3_t rgb={0.5f, 0.1f, 1.0f };
|
||
|
|
||
|
FX_AddQuad( origin, dir, NULL, NULL, 25.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 250, cgs.media.blueParticleShader );
|
||
|
FX_AddQuad( origin, dir, NULL, NULL, 25.0f, 32.0f, 1.0f, 0.0f, rgb, rgb, 0.0f, 0.0f, 0.0f, 250, cgs.media.whiteRingShader );
|
||
|
|
||
|
//Sound
|
||
|
cgi_S_StartSound( origin, ENTITYNUM_WORLD, CHAN_AUTO, cg_weapons[WP_FORGE_PSYCH].missileHitSound );
|
||
|
}
|