Ejemplo n.º 1
0
void FX_OrientedBolt( vec3_t start, vec3_t end, vec3_t dir )
{
	vec3_t	mid;

	VectorSubtract( end, start, mid );
	VectorScale( mid, 0.1f + (random() * 0.8), mid );
	VectorAdd( start, mid, mid );
	VectorMA(mid, 3.0f + (random() * 10.0f), dir, mid );

	//FX_AddElectricity( mid, start, 0.5, 0.75 + random() * 0.75, 0.0, 1.0, 0.5, 300.0f + random() * 300, cgs.media.bolt2Shader, DEFAULT_DEVIATION);
	//FX_AddElectricity( mid, end, 0.5, 0.75 + random() * 0.75, 1.0, 1.0, 0.5, 300.0f + random() * 300, cgs.media.bolt2Shader, DEFAULT_DEVIATION);

	FX_AddElectricity( mid, start, 0.5, 0.75 + random() * 0.75, 0.0, 1.0, 0.5, 300.0f + random() * 300, cgs.media.borgLightningShaders[2], DEFAULT_DEVIATION);
	FX_AddElectricity( mid, end, 0.5, 0.75 + random() * 0.75, 1.0, 1.0, 0.5, 300.0f + random() * 300, cgs.media.borgLightningShaders[3], DEFAULT_DEVIATION);
}
/*
-------------------------
FX_ForgeTeleportOut

Hmmm...needs some work..
-------------------------
*/
void ForgeThink( vec3_t start, vec3_t end, vec3_t vel, vec3_t user )
{
	FX_AddElectricity( start, end, 1.0f, 3.5f, 0.0f, 1.0f, 0.0f, random() * 100 + 100, cgs.media.pjBoltShader, FXF_WRAP, 0.7f );
	FX_AddSprite( start, NULL, NULL, 5.0f, 0.0f, 0.5f, 0.2f, 0.0f, 0, 100, cgs.media.orangeParticleShader );
	FX_AddSprite( end, NULL, NULL, 5.0f, 0.0f, 0.5f, 0.2f, 0.0f, 0, 100, cgs.media.orangeParticleShader );

	if ( rand() & 3 )
	{
		vec3_t	other;

		for ( int i = 0; i < 3; i++ )
		{
			other[i] = end[i] + crandom() * 24.0f;
		}

		FX_AddElectricity( end, other, 1.0f, 2.0f, 0.0f, 1.0f, 0.0f, random() * 200 + 100, cgs.media.pjBoltShader, FXF_WRAP | FXF_TAPER, 0.7f );
	}
}
Ejemplo n.º 3
0
static void CGFX_AddElectricity( addElectricityArgStruct_t *p ) {
	FX_AddElectricity( p->start, p->end, p->size1, p->size2, p->sizeParm, p->alpha1, p->alpha2, p->alphaParm, p->sRGB, p->eRGB, p->rgbParm, p->chaos, p->killTime, p->shader, p->flags );
}