///////////////////////////////
//rocket trail

// flame trail
r_part tr_rocket
{
	texture "particles/fteparticlefont.tga"
	tcoords 97 97 191 191 256
	step 1
	scale 12
	alpha 0.4
	die 0.5
	rgb 255 127 100
	rgbdelta -14 -300 -300
	blend add
	scalefactor 1
	scaledelta -15
}

// smoke puffs
r_part +tr_rocket
{
	texture "particles/fteparticlefont.tga"
	tcoords 97 97 191 191 256
	step 5
	scale 30
	alpha 0.2
	die 0.75
	//diesubrand 10.25
	randomvel 0.2
	rgb 5 5 5
	//rgbdelta -230 -45 -9
	gravity -15
	scalefactor 1
	scaledelta 20
	spawnvel 5
}


// burst sparks
r_part +tr_rocket
{
	type texturedspark
	texture "particles/fteparticlefont.tga"
	tcoords 1 65 31 95 256 8 32
	count 1
	scale 2
	scalefactor 1
	scaledelta -15
	alpha 0.2
	die 0.25
	rgb 255 128 0
	blend add
	spawnmode ball
	spawnorg 1
	spawnvel 50
	veladd 500
	friction 0.01
	gravity 100
}

///////////////////////////////////////////
//alternate rocket trail, which is used by a handful of qw players.
//r_part tr_altrocket
//{
//}


///////////////////////////////////////////
//grenade trail

r_part tr_grenade
{
	texture "particles/fteparticlefont.tga"
	tcoords 97 97 191 191 256
	step 6
	scale 32
	scaledelta 12
	alpha 0.3
	die 1.25
	randomvel 2
	veladd 15
	rgb 75 75 75
	//rgb 255 50 50
	//rgbdelta -255 -75 -75
	gravity -25
	scalefactor 1
	blend modulate
}
r_part +tr_grenade
{
	texture "particles/fteparticlefont.tga"
	tcoords 97 97 191 191 256
	scale 1
	scaledelta 0.25
	alpha 0.2
	step 4
	die 0.8
	randomvel 0
	rgb 255 150 150
	rgbdelta 0 -150 -150
	type beam
	blend add
}

//////////////////////////////////
//shotgun impacts
r_part gunshotsmoke
{
	texture "particles/fteparticlefont.tga"
	tcoords 1 65 31 95 256 8 32
	count 3
	scale 25
	scalefactor 1
	die 0.8
	alpha 0.12
	rgb 32 32 32
	blend add
	spawnmode ball
	spawnorg 2
	spawnvel 20
	veladd -20
}
r_part te_gunshot
{
	type texturedspark
	texture "particles/fteparticlefont.tga"
	tcoords 1 65 31 95 256 8 32
	count 3
	scale 2
	scalefactor 1
	alpha 0.5
	die 0.8
	rgb 255 128 0
	blend add
	spawnmode ball
	spawnorg 1
	spawnvel 100
	veladd -80
	friction 0.3
	gravity 400
	assoc gunshotsmoke
}

//////////////////////////////////
//nail impacts

r_part te_spike
{
	type sparkfan
	count 10
	scale 1
	scalefactor 1
	alpha 0.5
	die 0.2
	rgb 255 128 0
	blend add
	spawnmode ball
	spawnorg 12
	spawnvel 300
}
r_part +te_spike
{
	texture "particles/fteparticlefont.tga"
	tcoords 1 97 95 191 256
	count 1
	scale 1
	scalefactor 1
	scaledelta 190
	die 0.1
	alpha 0.6
	rgb 255 128 0
	blend add
	assoc gunshotsmoke
}


////////////////////////////////////////////////
//explosion

//red bit
r_part te_explosion
{
	texture "particles/fteparticlefont.tga"
	tcoords 97 97 191 191 256
	count 1
	scale 500
	alpha 0.4
	die 0.2
	rgb 255 127 100
	rgbdelta -14 -300 -300
	blend add
	scalefactor 1
	scaledelta -15
	randomvel 0

	lightradius 350
	lightrgb    0.4 0.2 0.05
	lighttime   0.5
	lightradiusfade 350
	lightrgbfade 2 2 2	
}
//smoke
r_part +te_explosion
{
	texture "particles/fteparticlefont.tga"
	tcoords 97 97 191 191 256
	count 7
	scale 300
	alpha 0.2
	die 0.8
	//diesubrand 10.25
	randomvel 100
	rgb 5 5 5
	//rgbdelta -230 -45 -9
	gravity -15
	scalefactor 1
	scaledelta 40
	spawnvel 5
}
// burst sparks
r_part +te_explosion
{
	type texturedspark
	texture "particles/fteparticlefont.tga"
	tcoords 1 65 31 95 256 8 32
	count 100
	scale 5
	scalefactor 1
	scaledelta -15
	alpha 0.2
	die 0.5
	rgb 255 128 0
	blend add
	spawnmode ball
	spawnorg 1
	randomvel 1000
	friction 0.01
	gravity 100
	stretchfactor 5
}

//hide lights in explosions.
r_explosionlight 0

//hide the explosion sprite in nq+qw - WARNING: some mods use this sprite as a flame thrower.
cl_expsprite 0
r_effect "progs/s_explod.spr" hidden 1

//////////////////////////////////////////
//r_part te_tarexplosion
//{
//}

//////////////////////////////////////////
//r_part te_lavasplash
//{
//}

//////////////////////////////////////////
r_part te_teleport
{
	scale 250
	count 1
	alpha 0.3
	die 0.5
	scalefactor 1
	rotationstart 45
	rotationspeed 0

	shader
	{
		glslprogram
		{
			varying vec2 tcoord;
			varying vec4 scoord;
			varying float alph;
#ifdef VERTEX_SHADER
			attribute vec2 v_texcoord;
			attribute vec4 v_colour;
		
			void main(void)
			{
				scoord = ftetransform();
				tcoord = (v_texcoord.st - 0.5)*2.0;
				alph = v_colour.a;
				gl_Position = scoord;
			}
#endif
#ifdef FRAGMENT_SHADER
			uniform sampler2D s_t0;
			void main(void)
			{
				vec2 nst;
				float f;
				nst = scoord.xy / scoord.w;
				nst = (1.0 + nst)/2.0;
				f = 1.0 - length(tcoord);
//				f = 1.0 - tcoord*tcoord;
				if (f < 0.0) discard;
				f *= alph;
				gl_FragColor = texture2D(s_t0, nst - tcoord*f);
			}
#endif
		}
		{
			map $currentrender
			blendfunc blend
		}
	}
}


//////////////////////////////////////////
//hellknight
r_part tr_knightspike
{
	texture "particles/fteparticlefont.tga"
	tcoords 1 97 95 191 256
	scale 15
	step 1
	alpha 0.6
	die 0.2
	rgb 192 96 48
	veladd 0
	randomvel 2
	friction 4
	scalefactor 0.825
	blend add
	spawnmode spiral
	spawnvel -50
}

/////////////////////////////////////////
//vore missiles

r_part tr_vorespike
{
	texture "particles/fteparticlefont.tga"
	tcoords 1 97 95 191 256
	scale 15
	step 1
	alpha 0.6
	die 0.5
	rgb 192 96 192
	veladd 15
	spawnmode spiral
	spawnvel 50
	randomvel 0
	friction 0
	scalefactor 1
	blend add

	lightradius 150
	lightrgb    0.75 0.37 0.75
}
//rygel's pack sucks
r_trail "progs/v_spike.mdl" tr_vorespike

/////////////////////////////////////////
//scrag missiles. just use the default trail cos we're lazy
//r_part tr_wizspike
//{
//}

r_part te_blood
{
	texture fte_bloodparticle
	blend subtract
	count 1
	scale 32
	alpha 0
	die 1
	randomvel 64
	veladd 10
	rotationspeed 90
	rotationstart 0 360
	rgb 64 128 128
	rgbdelta -64 -128 -128
	gravity 200
	scalefactor 0.8
//	scaledelta -10
}

r_part pe_73
{
	assoc te_blood
}

r_part te_lightningblood
{
	texture fte_bloodparticle
	blend subtract
	count 1
	scale 32
	alpha 0
	die 1
	randomvel 64
	veladd 10
	rotationspeed 90
	rotationstart 0 360
	rgb 0 128 128
	rgbdelta 0 -128 -128
	gravity 200
	scalefactor 0.8
}

/////////////////////////////////////////
//zombie body-part blood trails
r_part tr_slightblood
{
	texture fte_bloodparticle
	blend subtract
//	tcoords 1 1 63 63 256 2 64
	step 16
	scale 64
	alpha 0
	die 1
	randomvel 32
	veladd 10
	rotationspeed 90
	rotationstart 0 360
	rgb 64 128 128 
	rgbdelta -64 -128 -128
	gravity 200
	scalefactor 0.8
	scaledelta -10
	stains -0.5
}

//////////////////////////////////////////
//regular ol' blood trails
r_part tr_blood
{
	texture fte_bloodparticle
	blend subtract
	step 8
	scale 64
	alpha 0
	die 1
	randomvel 32
	veladd 10
	rotationspeed 90
	rotationstart 0 360
	rgb 32 128 128 
	rgbdelta -32 -128 -128
	gravity 200
	scalefactor 0.8
	scaledelta -10
	stains -0.5
}

//////////////////////////////////
//fallbacks

r_part pe_default
{
	texture "particles/fteparticlefont.tga"
	tcoords 1 97 95 191 256
	count 1
	scale 4
	veladd 15
	die 0.4
	alphadelta 0
	diesubrand 0.4
	gravity 40
	spawnorg 8
}
r_part pe_defaulttrail
{
	texture "particles/fteparticlefont.tga"
	tcoords 1 97 95 191 256
	scale 15
	step 1
	alpha 0.6
	die 0.2
	rgb 192 96 48
	veladd 0
	randomvel 2
	friction 4
	scalefactor 0.825
	spawnmode spiral
	spawnvel 25
	blend add
}

//////////////////////////////////
//map debugging
r_part pe_pointfile
{
	texture "particles/fteparticlefont.tga"
	tcoords 1 97 95 191 256
	count 1
	scale 50
	die 30
	alphadelta 0
	rgb 255 255 0
}











