/*
WARNING: THIS FILE IS GENERATED BY 'generatebuiltin.c'.
YOU SHOULD NOT EDIT THIS FILE BY HAND
*/

#include "bothdefs.h"
#ifndef QUAKETC
#include "r_partset.h"


char *particle_set_spikeset =
// spikeset, originally by Spike
// with contributions from TimeServ, purplehaze, Jedilamma
// and some others I probably forgot to mention
/////////////////////////////////////////////////
//rocket trails (derived from purplehaze's, with only minor tweeks)

"r_part rocketsmoke\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 97 97 191 191 256\n"
"step 8\n"
"scale 7.5\n"
"alpha 0.8\n"
"die 2\n"
"randomvel 3\n"
"rgb 10 10 10\n"
"blend modulate\n"
"spawnmode spiral\n"
"scalefactor 1\n"
"spawnvel 5\n"
"}\n"

"r_part rockettrail\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 97 97 191 191 256\n"
"step 4\n"
"scale 30\n"
"alpha 0.3\n"
"die 1.4\n"
"diesubrand 0.7\n"
"randomvel 1\n"
"rgb 255 50 10\n"
"rgbdelta -230 -45 -9\n"
"gravity -25\n"
"scalefactor 1\n"
"assoc rocketsmoke\n"
"spawnvel 10\n"
"}\n"

"r_part t_rocket\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 97 97 191 191 256\n"
"step 2\n"
"scale 10\n"
"alpha 0.6\n"
"die 0.25\n"
"rgb 255 192 128\n"
"rgbdelta -14 -300 -300\n"
"blend add\n"
"assoc rockettrail\n"
"scalefactor 0.8\n"
"scaledelta -10\n"
"}\n"

"r_part rockettail\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 97 97 191 191 256\n"
"step 7\n"
"scale 10\n"
"alpha 0.3\n"
"die 10\n"
"randomvel 64\n"
"veladd 512\n"
"rgb 192 192 192\n"
"gravity 100\n"
"cliptype rockettail\n"
"}\n"

"r_part t_altrocket\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 97 97 191 191 256\n"
"step 4\n"
"scale 10\n"
"alpha 0.3\n"
"die 0.7\n"
"randomvel 32\n"
"veladd 32\n"
"rgb 255 198 128\n"
"rgbdelta -64 0 0\n"
"gravity -100\n"
"blend add\n"
"assoc rockettail\n"
"}\n"

// te_railtrail, used with Quake 2 railgun and also used with
// TeamFortress engineer railgun
"r_part railtrailinner\n"
"{\n"
"step 30\n"
"scale 5\n"
"die 1\n"
"alpha 0.5\n"
"rgb 255 255 255\n"
"blend add\n"
"type beam\n"
"spawnvel 2 2\n"
"}\n"

"r_part railtrail240\n"
"{\n"
"step 15\n"
"scale 3\n"
"die 1\n"
"alpha 0\n"
"rgb 32 32 255\n"
"rampmode delta\n"
"ramp -255 -255 0 -2.5 0\n"
"ramp 0 0 0 0.65 0\n"
"ramp 0 0 0 0.65 0\n"
"ramp 0 0 0 0.65 0\n"
"ramp 0 0 -128 0.65 10\n"
"blend add\n"
"type beam\n"
"spawnmode spiral\n"
"spawnparam1 256\n"
"spawnparam2 240\n"
"spawnvel 12\n"
"assoc railtrailinner\n"
"}\n"

"r_part railtrail120\n"
"{\n"
"step 15\n"
"scale 3\n"
"die 1\n"
"alpha 0\n"
"rgb 32 32 255\n"
"rampmode delta\n"
"ramp -255 -255 0 -2.5 0\n"
"ramp 0 0 0 0.65 0\n"
"ramp 0 0 0 0.65 0\n"
"ramp 0 0 0 0.65 0\n"
"ramp 0 0 -128 0.65 10\n"
"blend add\n"
"type beam\n"
"spawnmode spiral\n"
"spawnparam1 256\n"
"spawnparam2 120\n"
"spawnvel 12\n"
"assoc railtrail240\n"
"}\n"

"r_part te_railtrail\n"
"{\n"
"step 15\n"
"scale 3\n"
"die 1\n"
"alpha 0\n"
"rgb 32 32 255\n"
"rampmode delta\n"
"ramp -255 -255 0 -2.5 0\n"
"ramp 0 0 0 0.65 0\n"
"ramp 0 0 0 0.65 0\n"
"ramp 0 0 0 0.65 0\n"
"ramp 0 0 -128 0.65 10\n"
"blend add\n"
"type beam\n"
"spawnmode spiral\n"
"spawnparam1 256\n"
"spawnvel 12\n"
"assoc railtrail120\n"
"}\n"

"r_part shortfume\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 97 97 191 191 256\n"
"scale 15\n"
"scaledelta 20\n"
"alpha 0.5\n"
"step 8\n"
"die 0.3\n"
"randomvel 12\n"
"scaledelta 0.81\n"
"rgb 150 150 150\n"
"}\n"

"r_part t_grenade\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 97 97 191 191 256\n"
"step 24\n"
"scale 16\n"
"scaledelta 4\n"
"alpha 0.3\n"
"die 4\n"
"randomvel 8\n"
"veladd 15\n"
"rgb 140 140 140\n"
"rgbdelta -55 -55 -55\n"
"gravity -50\n"
"scalefactor 0.0\n"
"assoc shortfume\n"
"}\n"

//cool's blood trails (cos they're cooler)
"r_part t_gib\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 1 63 63 256 2 64\n"
"step 32\n"
"scale 64\n"
"alpha 0.6\n"
"die 1\n"
"randomvel 64\n"
"veladd 10\n"
"rotationspeed 90\n"
"rotationstart 0 360\n"
"rgb 128 0 0\n"
"gravity 200\n"
"scalefactor 0.8\n"
"scaledelta -10\n"
"stains 5\n"
"}\n"

"r_part t_zomgib\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 1 63 63 256 2 64\n"
"step 64\n"
"scale 64\n"
"alpha 0.6\n"
"die 1\n"
"randomvel 64\n"
"veladd 10\n"
"rotationspeed 90\n"
"rotationstart 0 360\n"
"rgb 32 0 0\n"
"gravity 200\n"
"scalefactor 0.8\n"
"scaledelta -10\n"
"stains 5\n"
"}\n"

"r_part t_tracer\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 97 95 191 256\n"
"scale 15\n"
"step 5\n"
"alpha 0.6\n"
"rgb 192 192 48\n"
"die 1\n"
"veladd 50\n"
"randomvel 50\n"
"friction 4\n"
"scalefactor 0.825\n"
"}\n"

"r_part t_tracer2\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 97 95 191 256\n"
"scale 15\n"
"step 5\n"
"alpha 0.6\n"
"die 1\n"
"rgb 192 96 48\n"
"veladd 50\n"
"randomvel 50\n"
"friction 4\n"
"scalefactor 0.825\n"
"}\n"

"r_part t_tracer3\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 97 95 191 256\n"
"scale 10\n"
"scaledelta -10\n"
"step 5\n"
"alpha 0.9\n"
"die 0.75\n"
"rgb 192 96 192\n"
"veladd 20\n"
"randomvel 5\n"
"spawnmode spiral\n"
"spawnvel 60 0\n"
"friction 4\n"
"scalefactor 0.825\n"
"}\n"

//qw blood
"r_part te_lightningblood\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 193 97 255 159 256\n"
"count 3\n"
"scale 20\n"
"alpha 0.4\n"
"die 2\n"
"randomvel 32\n"
"veladd 32\n"
"rgb 192 0 0\n"
"rgbdelta -128 0 0\n"
"gravity 100\n"
"friction 1\n"
"stains 1\n"
"blend add\n"
"}\n"

//qw blood
"r_part te_blood\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 193 97 255 159 256\n"
"count 10\n"
"scale 10\n"
"alpha 0.3\n"
"die 2\n"
"randomvel 40\n"
"rgb 220 0 0\n"
"rgbdelta -100 0 0\n"
"gravity 200\n"
"stains 2\n"
"scalefactor 0.9\n"
"rotationstart 0 360\n"
"}\n"

//nq blood
"r_part pe_73\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 193 97 255 159 256\n"
"count 1\n"
"scale 20\n"
"alpha 0.3\n"
"die 2\n"
"randomvel 40\n"
"rgb 220 0 0\n"
"rgbdelta -100 0 0\n"
"gravity 200\n"
"stains 2\n"
"scalefactor 0.9\n"
"rotationstart 0 360\n"
"}\n"

/////////////////////////////////////////////////
//rocket explosions
"r_part ember\n"
"{\n"
"count 1\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 97 97 191 191 256\n"
"rgb 255 128 76\n"
"alpha 0\n"
"scale 15\n"
"scalefactor 1\n"
"friction 8\n"
"gravity 50\n"
"die 1\n"
"blend add\n"
"randomvel 5\n"
"veladd 1\n"
"rampmode delta\n"
"ramp 0 0 0 -0.5 0\n"
"ramp 0 0 0 0.1 0\n"
"ramp 0 0 0 0.1 0\n"
"ramp 0 0 0 0.1 0\n"
"ramp 0 0 0 0.1 0\n"
"ramp 0 0 0 0.1 0\n"
"}\n"

//the bits that fly off
"r_part expgib\n"
"{\n"
"cliptype expgib\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 97 97 191 191 256\n"
"alpha 0\n"
"count 16\n"
"die 1\n"
"randomvel 128\n"
"gravity 50\n"
"friction 2\n"
"emit ember\n"
"emitinterval 0.01\n"
"spawnmode circle\n"
"}\n"

//the heart of the explosion
"r_part te_explosion\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 97 97 191 191 256\n"
"count 1\n"
"scale 200\n"
"scalefactor 1\n"
"die 1\n"
"rgb 255 128 76\n"
"rgbdelta 0 -32 -32\n"
"friction 1\n"
"blend add\n"
"assoc expgib\n"
"}\n"

"r_part gunshotsmoke\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 65 31 95 256 8 32\n"
"count 3\n"
"scale 25\n"
"scalefactor 1\n"
"die 0.8\n"
"alpha 0.12\n"
"rgb 32 32 32\n"
"blend add\n"
"spawnmode ball\n"
"spawnorg 2\n"
"spawnvel 20\n"
"veladd -20\n"
"}\n"

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

"r_part spikecore\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 97 95 191 256\n"
"count 1\n"
"scale 1\n"
"scalefactor 1\n"
"scaledelta 190\n"
"die 0.1\n"
"alpha 0.6\n"
"rgb 255 128 0\n"
"blend add\n"
"assoc gunshotsmoke\n"
"}\n"

"r_part te_spike\n"
"{\n"
"type sparkfan\n"
"count 10\n"
"scale 1\n"
"scalefactor 1\n"
"alpha 0.5\n"
"die 0.2\n"
"rgb 255 128 0\n"
"blend add\n"
"spawnmode ball\n"
"spawnorg 12\n"
"spawnvel 300\n"
"assoc spikecore\n"
"}\n"

"r_part te_lavasplash\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 129 1 191 63 256\n"
"count 654\n"
"scale 15\n"
"alpha 0.7\n"
"die 4\n"
"randomvel 64\n"
"rgb 255 128 128\n"
"gravity 50\n"
"blend add\n"
"spawnorg 192 64\n"
"up 48\n"
"}\n"

//////////////////////////////////////////////////
//Teleport splash

//two rings moving upwards, costs less
"r_part teleportsplashdown\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 193 1 255 63 256\n"
"count 32\n"
"scale 32\n"
"scalefactor 1\n"
"alpha 0.3\n"
"die 1\n"
"veladd -52\n"
"rgb 255 255 255\n"
"friction 1\n"
"spawnorg 32 0\n"
"spawnmode uniformcircle\n"
"}\n"
"r_part te_teleportsplash\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 193 1 255 63 256\n"
"count 32\n"
"scale 32\n"
"scalefactor 1\n"
"alpha 0.3\n"
"die 1\n"
"veladd 52\n"
"rgb 255 255 255\n"
"friction 1\n"
"spawnorg 32 0\n"
"spawnmode uniformcircle\n"
"assoc teleportsplashdown\n"
"}\n"

//flame effect
"r_part cu_flame\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 129 1 191 63 256\n"
"count 1024\n"
"scale 0.4\n"
"scalerand 6\n"
"scalefactor 1\n"
"alpha 0.4\n"
"die 0.8\n"
"randomvel 4 24\n"
"veladd -24\n"
"rgb 255 128 76\n"
"blend add\n"
"up -8\n"
"spawnorg 6 0\n"
"spawnvel -15 0\n"
"}\n"

//flame effect
"r_part cu_torch\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 129 1 191 63 256\n"
"count 256\n"
"scale 3\n"
"scalefactor 1\n"
"alpha 0.7\n"
"die 0.5\n"
"randomvel 8\n"
"veladd -32\n"
"rgb 255 128 76\n"
"blend add\n"
"spawnmode circle\n"
"spawnorg 4 1\n"
"spawnvel -12 -8\n"
"}\n"

"r_part explodesprite\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 97 97 191 191 256\n"
"count 180\n"
"scale 70\n"
"scaledelta -140\n"
"scalefactor 1\n"
"alpha 0.2\n"
"die 0.5\n"
"randomvel 23\n"
"veladd -20\n"
"rgb 255 128 76\n"
"blend add\n"
"spawnorg 4 1\n"
"spawnvel -8 -2\n"
"up -8\n"
"}\n"

//you'll probably never see this one
"r_part ef_entityparticles\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 97 95 191 256\n"
"count 1\n"
"scale 15\n"
"alpha 0.2\n"
"die 0\n"
"veladd 16\n"
"rgb 255 128 128\n"
"blend add\n"
"}\n"

// emp effect, based off of purplehaze's idea
"r_part empshocktrail\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 193 1 255 63 256\n"
"step 3.2\n"
"scale 3\n"
"alpha 0.7\n"
"die 0.2\n"
"rgb 64 0 255\n"
"blend add\n"
"scalefactor 1\n"
"spawnorg 12 0\n"
"}\n"

"r_part empcore\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 193 1 255 63 256\n"
"count 90\n"
"scale 55\n"
"scaledelta -110\n"
"die 0.55\n"
"rgb 168 128 255\n"
"spawnmode circle\n"
"spawnorg 12\n"
"spawnvel -192\n"
"blend add\n"
"scalefactor 0.8\n"
"emit empshocktrail\n"
"emitinterval -1\n"
"}\n"


"r_part empflash\n"
"{\n"
"die 0.1\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 193 1 255 63 256\n"
"alpha 1\n"
"count 1\n"
"scale 400\n"
"scaledelta -4000\n"
"alphadelta 0\n"
"rgb 192 160 255\n"
"blend add\n"
"scalefactor 1\n"
"assoc empcore\n"
"}\n"

"r_part te_tarexplosion\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 97 95 191 256\n"
"count 120\n"
"scale 35\n"
"die 0.75\n"
"alpha 0.4\n"
"rgb 128 0 255\n"
"rampmode delta\n"
"ramp -32 0 0 0\n"
"ramp -32 0 0 0\n"
"ramp -32 0 0 2\n"
"friction -0.9\n"
"blend add\n"
"spawnmode uniformcircle\n"
"spawnorg 24 0\n"
"spawnvel 280 0\n"
"scalefactor 1\n"
"emit empshocktrail\n"
"emitinterval -1\n"
"assoc empflash\n"
"}\n"

"r_part pe_default\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 97 95 191 256\n"
"count 1\n"
"scale 4\n"
"veladd 15\n"
"die 0.4\n"
"alphadelta 0\n"
"diesubrand 0.4\n"
"gravity 40\n"
"spawnorg 8\n"
"}\n"

"r_part pe_defaulttrail\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 97 95 191 256\n"
"step 12\n"
"die 1\n"
"scale 10\n"
"scaledelta -10\n"
"veladd 15\n"
"spawnorg 1\n"
"scalefactor 0.8\n"
"}\n"

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

"r_effect \"progs/s_explod.spr\" explodesprite 1\n"
"r_effect \"progs/flame.spr\" explodesprite 1\n"

"r_effect \"progs/flame2.mdl\" cu_flame 1\n"
"r_effect \"progs/flame.mdl\" cu_torch\n"
"r_trail \"progs/e_spike1.mdl\" te_railtrail\n"
;



//////////////////////////////////////////////////////


char *particle_set_faithful =
// faithful, by TimeServ
"r_part t_gib\n"
"{\n"
"texture \"particles/quake\"\n"
"step 3\n"
"scale 4\n"
"die 2\n"
"alphadelta 0\n"
"randomvel 80\n"
"veladd 100\n"
"colorindex 67 4\n"
"gravity 40\n"
"spawnorg 3\n"
"stains 1\n"
"}\n"

"r_part t_zomgib\n"
"{\n"
"texture \"particles/quake\"\n"
"step 6\n"
"scale 4\n"
"die 2\n"
"alphadelta 0\n"
"randomvel 72\n"
"veladd 100\n"
"colorindex 67 4\n"
"gravity 40\n"
"spawnorg 3\n"
"stains 1\n"
"}\n"

"r_part t_tracer3\n"
"{\n"
"texture \"particles/quake\"\n"
"step 3\n"
"scale 4\n"
"die 0.3\n"
"alphadelta 0\n"
"colorindex 152 4\n"
"spawnorg 8\n"
"}\n"

"r_part t_tracer\n"
"{\n"
"texture \"particles/quake\"\n"
"step 3\n"
"scale 4\n"
"die 0.5\n"
"alphadelta 0\n"
"colorindex 52\n"
"citracer\n"
"spawnvel 30 0\n"
"spawnmode tracer\n"
"}\n"

"r_part t_tracer2\n"
"{\n"
"texture \"particles/quake\"\n"
"step 3\n"
"scale 4\n"
"die 0.5\n"
"alphadelta 0\n"
"colorindex 230\n"
"citracer\n"
"spawnvel 30 0\n"
"spawnmode tracer\n"
"}\n"

"r_part t_rocket\n"
"{\n"
"texture \"particles/quake\"\n"
"step 3\n"
"scale 4\n"
"die 1.2\n"
"diesubrand 0.6\n"
"rampmode absolute\n"
"rampindex 109 1.0\n"
"rampindex 107 0.833\n"
"rampindex 6 0.667\n"
"rampindex 5 0.5\n"
"rampindex 4 0.333\n"
"rampindex 3 0.167\n"
"spawnorg 3\n"
"gravity -40\n"
"}\n"

"r_part t_altrocket\n"
"{\n"
"texture \"particles/quake\"\n"
"step 3\n"
"scale 4\n"
"die 1.2\n"
"diesubrand 0.6\n"
"rampmode absolute\n"
"rampindexlist 109 107 6 5 4 3\n"
"spawnorg 3\n"
"gravity -40\n"
"}\n"

"r_part t_grenade\n"
"{\n"
"texture \"particles/quake\"\n"
"step 3\n"
"scale 4\n"
"die 0.8\n"
"diesubrand 0.6\n"
"rampmode absolute\n"
"rampindex 6 0.667\n"
"rampindex 5 0.5\n"
"rampindex 4 0.333\n"
"rampindex 3 0.167\n"
"spawnorg 3\n"
"gravity -40\n"
"}\n"

"r_part pe_size3\n"
"{\n"
"texture \"particles/quake\"\n"
"count 1\n"
"scale 4\n"
"veladd 15\n"
"die 0.4\n"
"alphadelta 0\n"
"diesubrand 0.4\n"
"gravity 40\n"
"spawnorg 24\n"
"}\n"

"r_part pe_size2\n"
"{\n"
"texture \"particles/quake\"\n"
"count 1\n"
"scale 4\n"
"veladd 15\n"
"die 0.4\n"
"alphadelta 0\n"
"diesubrand 0.4\n"
"gravity 40\n"
"spawnorg 16\n"
"}\n"

"r_part pe_default\n"
"{\n"
"texture \"particles/quake\"\n"
"count 1\n"
"scale 4\n"
"veladd 15\n"
"die 0.4\n"
"alphadelta 0\n"
"diesubrand 0.4\n"
"gravity 40\n"
"spawnorg 8\n"
"}\n"

"r_part explode2\n"
"{\n"
"texture \"particles/quake\"\n"
"count 512\n"
"scale 4\n"
"alphadelta 0\n"
"die 0.5333\n"
"diesubrand 0.2667\n"
"rampmode absolute\n"
"rampindexlist 111 110 109 108 107 106 104 102 \n"
"randomvel 256\n"
"gravity 40\n"
"friction 1\n"
"spawnorg 16\n"
"}\n"

"r_part te_explosion\n"
"{\n"
"texture \"particles/quake\"\n"
"count 512\n"
"scale 4\n"
"die 0.8\n"
"diesubrand 0.4\n"
"randomvel 256\n"
"rampmode absolute\n"
"rampindexlist 111 109 107 105 103 101 99 97 \n"
"gravity 40\n"
"friction -4\n"
"spawnorg 16\n"
"assoc explode2\n"
"}\n"

"r_part blobexp2b\n"
"{\n"
"texture \"particles/quake\"\n"
"count 256\n"
"scale 4\n"
"alphadelta 0\n"
"die 1.4\n"
"colorindex 150 6\n"
"gravity 40\n"
"friction 4 0\n"
"spawnorg 16\n"
"randomvel 256\n"
"}\n"
"r_part blobexp1b\n"
"{\n"
"texture \"particles/quake\"\n"
"count 256\n"
"scale 4\n"
"alphadelta 0\n"
"die 1.4\n"
"colorindex 66 6\n"
"gravity 40\n"
"friction -4 0\n"
"spawnorg 16\n"
"randomvel 256\n"
"assoc blobexp2b\n"
"}\n"

"r_part blobexp2\n"
"{\n"
"texture \"particles/quake\"\n"
"count 256\n"
"scale 4\n"
"alphadelta 0\n"
"die 1\n"
"colorindex 150 6\n"
"gravity 40\n"
"friction 4 0\n"
"spawnorg 16\n"
"randomvel 256\n"
"assoc blobexp1b\n"
"}\n"
"r_part te_tarexplosion\n"
"{\n"
"texture \"particles/quake\"\n"
"count 256\n"
"scale 4\n"
"alphadelta 0\n"
"die 1\n"
"colorindex 66 6\n"
"gravity 40\n"
"friction -4 0\n"
"randomvel 256\n"
"spawnorg 16\n"
"assoc blobexp2\n"
"}\n"

"r_part te_teleportsplash\n"
"{\n"
"texture \"particles/quake\"\n"
"count 896\n"
"scale 4\n"
"alphadelta 0\n"
"die 0.34\n"
"diesubrand 0.14\n"
"colorindex 7 8\n"
"gravity 40\n"
"up 4\n"
"spawnmode telebox\n"
"spawnorg 16 28\n"
"spawnvel 113\n"
"}\n"

"r_part te_lavasplash\n"
"{\n"
"texture \"particles/quake\"\n"
"count 1024\n"
"scale 4\n"
"alphadelta 0\n"
"die 2.62\n"
"diesubrand 0.62\n"
"colorindex 224 8\n"
"gravity 40\n"
"spawnorg 128 63\n"
"spawnvel 113\n"
"spawnmode lavasplash\n"
"}\n"

"r_part pe_defaulttrail\n"
"{\n"
"texture \"particles/quake\"\n"
"step 3\n"
"scale 4\n"
"die 0.6\n"
"diesubrand 0.6\n"
"spawnorg 3\n"
"gravity -40\n"
"}\n"

"r_part pe_pointfile\n"
"{\n"
"texture \"particles/quake\"\n"
"count 1\n"
"scale 4\n"
"die 30\n"
"alphadelta 0\n"
"rgb 255 255 0\n"
"}\n"

;



//////////////////////////////////////////////////////


char *particle_set_highfps =
// highfps, originally submitted by 'ShadowWalker'
// rehashed by TimeServ
"r_part t_gib\n"
"{\n"
"texture \"particles/bloodtrail\"\n"
"step 12\n"
"scale 10\n"
"die 1\n"
"randomvel 32\n"
"veladd 32\n"
"rgb 64 0 0\n"
"rgbdelta -128 0 0\n"
"}\n"
"r_part t_zomgib\n"
"{\n"
"texture \"particles/bloodtrail\"\n"
"step 16\n"
"scale 8\n"
"die 1\n"
"randomvel 32\n"
"veladd 32\n"
"rgb 192 0 0\n"
"rgbdelta -128 0 0\n"
"}\n"

"r_part t_tracer\n"
"{\n"
"texture \"particles/tracer\"\n"
"scale 23\n"
"step 18\n"
"rgb 192 192 0\n"
"die 0.5\n"
"}\n"

"r_part t_tracer2\n"
"{\n"
"texture \"particles/tracer\"\n"
"scale 23\n"
"step 18\n"
"die 0.5\n"
"rgb 192 96 0\n"
"}\n"

"r_part t_tracer3\n"
"{\n"
"texture \"particles/tracer\"\n"
"scale 23\n"
"step 18\n"
"die 0.5\n"
"rgb 192 0 192\n"
"}\n"

"r_part te_lightningblood\n"
"{\n"
"texture \"particles/bloodtrail\"\n"
"count 1\n"
"scale 10\n"
"die 0.5\n"
"randomvel 64\n"
"veladd 128\n"
"rgb 192 0 0\n"
"blend add\n"
"}\n"

"r_part te_blood\n"
"{\n"
"texture \"particles/bloodtrail\"\n"
"count 1\n"
"scale 12\n"
"die 0.5\n"
"randomvel 32\n"
"veladd 64\n"
"spawnvel 0 10\n"
"rgb 64 0 0\n"
"}\n"

"r_part sparks\n"
"{\n"
"texture \"particles/spark\"\n"
"count 32\n"
"scale 3\n"
"alpha 1\n"
"die 1\n"
"randomvel 256\n"
"veladd 128\n"
"rgb 255 128 0\n"
"blend add\n"
"cliptype sparks\n"
"clipcount 1\n"
"}\n"

"r_part explosioncore\n"
"{\n"
"texture \"particles/explosion\"\n"
"count 1\n"
"scale 200\n"
"scalefactor 1\n"
"die 1.2\n"
"rgb 255 128 76\n"
"blend add\n"
"assoc sparks\n"
"}\n"

"r_part te_explosion\n"
"{\n"
"texture \"particles/explosion\"\n"
"count 8\n"
"scale 60\n"
"alpha 0.5\n"
"die 1\n"
"rgb 255 128 76\n"
"blend add\n"
"assoc explosioncore\n"
"spawnmode ball\n"
"spawnorg 64\n"
"}\n"

"r_part te_railtrail\n"
"{\n"
"step 1000000\n"
"scale 5\n"
"die 1.2\n"
"alpha 0.7\n"
"rgb 16 16 255\n"
"blend add\n"
"type beam\n"
"averageout\n"
"}\n"

//the blob tempent is used quite a bit with teamfortress emp grenades.
"r_part te_tarexplosion\n"
"{\n"
"texture \"particles/blob\"\n"
"count 64\n"
"scale 30\n"
"scalefactor 1\n"
"die 1\n"
"randomvel 32\n"
"veladd 0\n"
"rgb 255 0 196\n"
"spawnorg 8 56\n"
"spawnvel 48 8\n"
"}\n"

"r_part te_gunshot\n"
"{\n"
"texture \"particles/spark\"\n"
"count 2\n"
"scale 3\n"
"alpha 0.7\n"
"die 0.5\n"
"randomvel 64\n"
"rgb 255 128 0\n"
"blend add\n"
"}\n"

"r_part te_lavasplash\n"
"{\n"
"texture \"particles/lava\"\n"
"count 180\n"
"scale 60\n"
"alpha 0.5\n"
"die 1.6\n"
"rgb 255 128 128\n"
"spawnorg 178 64\n"
"up 56\n"
"scalefactor 1\n"
"}\n"

"r_part te_teleportsplash\n"
"{\n"
"texture \"particles/teleport\"\n"
"count 48\n"
"scale 30\n"
"scalefactor 1\n"
"die 0.5\n"
"randomvel 32\n"
"veladd 0\n"
"rgb 255 255 255\n"
"spawnorg 4 32\n"
"spawnvel 25 4\n"
"}\n"

"r_part t_grenade\n"
"{\n"
"texture \"particles/smoke\"\n"
"step 20\n"
"scale 21\n"
"die 0.5\n"
"randvel 16\n"
"rgb 128 128 128\n"
"}\n"

"r_part t_rocket\n"
"{\n"
"texture \"particles/rocket\"\n"
"step 15\n"
"scale 30\n"
"die 0.2\n"
"rgb 192 48 0\n"
"blend add\n"
"assoc t_grenade\n"
"}\n"

"r_part t_altrocket\n"
"{\n"
"texture \"particles/rocket\"\n"
"step 15\n"
"scale 25\n"
"randomvel 30\n"
"veladd 30\n"
"die 0.5\n"
"rgb 192 48 0\n"
"blend add\n"
"}\n"

//you'll probably never see this one
"r_part ef_entityparticles\n"
"{\n"
"texture \"j\"\n"
"count 1\n"
"scale 10\n"
"alpha 0.3\n"
"die 0\n"
"veladd 16\n"
"rgb 128 128 0\n"
"}\n"

"r_part pe_default\n"
"{\n"
"texture \"particles/quake\"\n"
"count 1\n"
"scale 4\n"
"veladd 15\n"
"die 0.5\n"
"spawnorg 8\n"
"}\n"

"r_part pe_defaulttrail\n"
"{\n"
"texture \"particles/quake\"\n"
"step 15\n"
"die 0.5\n"
"scale 8\n"
"veladd 15\n"
"spawnorg 1\n"
"}\n"

"r_part pe_pointfile\n"
"{\n"
"texture \"particles/quake\"\n"
"count 1\n"
"scale 50\n"
"die 30\n"
"alphadelta 0\n"
"rgb 255 255 0\n"
"}\n"

;



//////////////////////////////////////////////////////


char *particle_set_high =
///////////////////////////////
//rain
"r_part te_rain\n"
"{\n"
"texture ball; scalefactor 1; count 1; alpha 0.4; rgb 255 255 255; die 2; veladd 2; scale 2; type texturedspark\n"
"cliptype rainsplash\n"
"clipbounce 1\n"
"clipcount 5\n"
"}\n"

"r_part rainsplash\n"
"{\n"
"randomvel 50 50\n"
"count 1;\n"
"texture ball; scalefactor 1; alpha 0.1; rgb 255 255 255; die 0.4; scale 50;\n"
"stretchfactor 4\n"
"veladd 50; scale 1; type texturedspark\n"
"gravity 400\n"
"}\n"

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

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

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


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

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


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

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

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

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

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

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

//simple slight trail, to show movement more than anything else.
"r_part tr_spike\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"step 1.1\n"
"scale 4\n"
"die .4\n"
"rgb 20 20 20\n"
"alpha 1\n"
"blend add\n"
"spawnmode spiral 512\n"
"spawnvel 10\n"
"}\n"
"r_trail \"progs/spike.mdl\" tr_spike\n"
"r_trail \"progs/s_spike.mdl\" tr_spike\n"

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

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

//hide lights in explosions.
//r_explosionlight 0

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


//////////////////////////////////////////
//rogue te_explosion2 effect
//note: if not otherwise defined, te_explosion2_BASE_RAND maps to this, and specifies the palette colours.
"r_part te_explosion2\n"
"{\n"
"type texturedspark\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 65 31 95 256 8 32\n"
"count 256\n"
"scale 5\n"
"scalefactor 1\n"
"scaledelta -15\n"
"alpha 0.2\n"
"die 0.5\n"
"blend add\n"
"spawnmode ball\n"
"spawnorg 1\n"
"randomvel 1000\n"
"friction 0.01\n"
"gravity 100\n"
"stretchfactor -80\n"
"}\n"
//dragon fireball
//r_part te_explosion2_228_5

//rogue multigrenade sub explosion
//also triggered from a shielded rogue player touching another player (and doing some damage)
//also used during the ending.
//red particles
//r_part te_explosion2_230_5

//rogue plasma explosion
//also rogue timemachine explosion
//white particles splaying outwards
//r_part te_explosion2_244_3

//////////////////////////////////////////
//for when a spawn dies.
//also used by TF for emp explosions.
"r_part te_tarexplosion\n"
"{\n"
"type texturedspark\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 65 31 95 256 8 32\n"
"count 128\n"
"scale 5\n"
"scalefactor 1\n"
"scaledelta -15\n"
"rgb 0 0 17\n"
"alpha 0.5\n"
"die 0.5\n"
"spawnmode ball\n"
"spawnorg 1\n"
"randomvel 500\n"
"friction 0.01\n"
"gravity 100\n"
"stretchfactor -80\n"
"}\n"
"r_part +te_tarexplosion\n"
"{\n"
"type texturedspark\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 65 31 95 256 8 32\n"
"count 256\n"
"scale 5\n"
"scalefactor 1\n"
"scaledelta -15\n"
"rgb 83 67 115\n"
"alpha 0.3\n"
"die 0.5\n"
"blend add\n"
"spawnmode ball\n"
"spawnorg 1\n"
"randomvel 500\n"
"friction 0.01\n"
"gravity 100\n"
"stretchfactor -80\n"
"}\n"

//////////////////////////////////////////
//cthon falling into lava.
//often also used for TF gas grenades.
"r_part te_lavasplash\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 129 1 191 63 256\n"
"count 654\n"
"scale 15\n"
"alpha 0.7\n"
"die 4\n"
"randomvel 64\n"
"rgb 255 128 128\n"
"gravity 50\n"
"blend add\n"
"spawnorg 192 64\n"
"up 48\n"
"}\n"

//////////////////////////////////////////
//FIXME: what if we don't have glsl support?
"r_part te_teleport\n"
"{\n"
"scale 250\n"
"count 1\n"
"alpha 0.3\n"
"die 0.5\n"
"scalefactor 1\n"
"rotationstart 45\n"
"rotationspeed 0\n"

"shader\n"
"{\n"
"surfaceparm noshadows\n"
"surfaceparm nodlight\n"
"glslprogram\n"
"{\n"
"!!samps screen=0\n"
"varying vec2 tcoord;\n"
"varying vec4 scoord;\n"
"varying float alph;\n"
"#ifdef VERTEX_SHADER\n"
"attribute vec2 v_texcoord;\n"
"attribute vec4 v_colour;\n"

"void main(void)\n"
"{\n"
"scoord = ftetransform();\n"
"tcoord = (v_texcoord.st - 0.5)*2.0;\n"
"alph = v_colour.a;\n"
"gl_Position = ftetransform();\n"
"}\n"
"#endif\n"
"#ifdef FRAGMENT_SHADER\n"
"void main(void)\n"
"{\n"
"vec2 nst;\n"
"float f;\n"
"nst = scoord.xy / scoord.w;\n"
"nst = (1.0 + nst)/2.0;\n"
"f = 1.0 - length(tcoord);\n"
//				f = 1.0 - tcoord*tcoord;
"if (f < 0.0) discard;\n"
"f *= alph;\n"
"gl_FragColor = texture2D(s_screen, nst - tcoord*f);\n"
"}\n"
"#endif\n"
"}\n"
"{\n"
"map $currentrender\n"
"blendfunc blend\n"
"}\n"
"}\n"
"}\n"


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

"r_part te_knightspike\n"
"{\n"
"type sparkfan\n"
"count 200\n"
"scale 3\n"
"scalefactor 1\n"
"alpha 0.5\n"
"die 0.5\n"
"rgb 192 96 48\n"
"blend add\n"
"spawnmode ball\n"
"spawnorg 12\n"
"spawnvel 100\n"
"stretchfactor 10\n"
"}\n"

/////////////////////////////////////////
//vore missiles
"r_part tr_vorespike\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 97 95 191 256\n"
"scale 15\n"
"step 1\n"
"alpha 0.6\n"
"die 0.5\n"
"rgb 192 96 192\n"
"veladd 15\n"
"spawnmode spiral\n"
"spawnvel 50\n"
"randomvel 0\n"
"friction 0\n"
"scalefactor 1\n"
"blend add\n"
"lighttime 0\n"
"lightshadows 0\n"
"lightradius 150\n"
"lightrgb    0.75 0.37 0.75\n"
"}\n"
//rygel's pack sucks
"r_trail \"progs/v_spike.mdl\" tr_vorespike\n"


////////////////////
//enforcer laser effect
"r_part tr_enforcerlaser\n"
"{\n"
"type texturedspark\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 97 95 191 256\n"
"scale 15\n"
"step 4\n"
"alpha 0.3\n"
"die 0.5\n"
"rgb 255 69 0\n"
"veladd -32\n"
"spawnmode spiral\n"
"spawnvel 16\n"
"randomvel 32\n"
"friction 0\n"
"scalefactor 1\n"
"blend add\n"
"lighttime 0.2\n"
"lightshadows 0\n"
"lightradius 150\n"
"lightrgb    1 0.27 0\n"
"lightrgbfade    5 1 0\n"
"lightcorona 2 0.25\n"
"}\n"
"r_trail \"progs/laser.mdl\" tr_enforcerlaser\n"

/////////////////////////////////////////
//rogue wrath enemy's projectiles
"r_part tr_wrathball\n"
"{\n"
"type texturedspark\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 97 95 191 256\n"
"scale 15\n"
"step 4\n"
"alpha 0.3\n"
"die 0.5\n"
"rgb 255 0 0\n"
"veladd -32\n"
"spawnmode spiral\n"
"spawnvel 16\n"
"randomvel 32\n"
"friction 0\n"
"scalefactor 1\n"
"blend add\n"
"lighttime 0.2\n"
"lightshadows 0\n"
"lightradius 150\n"
"lightrgb    1 0.27 0\n"
"lightrgbfade    5 1 0\n"
"lightcorona 2 0.5\n"
"}\n"
"r_trail \"progs/w_ball.mdl\" tr_wrathball\n"

//wrath death
//grey particles
//no difference from the fallback except for the blend mode. this should ensure that we are not quite so invisible.
"r_part te_explosion2_0_4\n"
"{\n"
"type texturedspark\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 65 31 95 256 8 32\n"
"count 256\n"
"scale 5\n"
"scalefactor 1\n"
"scaledelta -15\n"
"alpha 0.2\n"
"die 0.5\n"
"spawnmode ball\n"
"spawnorg 1\n"
"randomvel 1000\n"
"friction 0.01\n"
"gravity 100\n"
"stretchfactor -80\n"
"}\n"

/////////////////////////////////////////
//rogue lavaspikes
"r_part tr_lavaspike\n"
"{\n"
"type spark\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 97 95 191 256\n"
"scale 15\n"
"step 4\n"
"alpha 0.3\n"
"die 0.5\n"
"rgb 255 0 0\n"
"veladd -32\n"
"spawnmode spiral\n"
"spawnvel 16\n"
"randomvel 32\n"
"friction 0\n"
"scalefactor 1\n"
"blend add\n"
"}\n"
"r_trail \"progs/lspike.mdl\" tr_lavaspike\n"

/////////////////////////////////////////
//rogue plasma gun
"r_part tr_plasma\n"
"{\n"
"type texturedspark\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 97 95 191 256\n"
"scale 15\n"
"step 4\n"
"alpha 0.3\n"
"die 0.25\n"
"rgb 128 128 255\n"
"veladd -32\n"
"spawnmode spiral\n"
"spawnvel 16\n"
"randomvel 32\n"
"friction 0\n"
"scalefactor 1\n"
"blend add\n"
"lighttime 0.2\n"
"lightshadows 0\n"
"lightradius 150\n"
"lightrgb    1 1 2\n"
"lightrgbfade    5 1 0.5\n"
"lightcorona 2 0.5\n"
"}\n"
"r_trail \"progs/plasma.mdl\" tr_plasma\n"


/////////////////////////////////////////
//scrag missiles.
"r_part tr_wizspike\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 97 95 191 256\n"
"scale 15\n"
"step 4\n"
"alpha 0.6\n"
"die 0.2\n"
"rgb 25 200 25\n"
"veladd 0\n"
"randomvel 2\n"
"friction 4\n"
"scalefactor 0.825\n"
"spawnmode spiral\n"
"spawnvel 25\n"
"blend add\n"
"lighttime 2\n"
"lightradiusfade 75\n"
"lightshadows 0\n"
"lightradius 150\n"
"lightrgb    0.1 0.7 0.1\n"
"}\n"

"r_part tr_wizspike2\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 97 95 191 256\n"
"scale 4\n"
"step 1\n"
"alpha 0.6\n"
"die 0.2\n"
"rgb 25 200 25\n"
"veladd 64\n"
"randomvel 64\n"
"friction 4\n"
"scalefactor 0.825\n"
"spawnmode spiral\n"
"spawnvel 25\n"
"blend add\n"
"}\n"
//scrag impact
"r_part te_wizspike\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 97 95 191 256\n"
"scale 15\n"
"alpha 0.6\n"
"rgb 25 200 25\n"
"friction 0\n"
"scalefactor 0.825\n"
"blend add\n"
"count 5\n"
"veladd -256\n"
"randomvel 256\n"
"die 1\n"
"diesubrand 0.5\n"
"gravity 800\n"
"emit tr_wizspike2\n"
"emitinterval -1\n"
"bounce 1.5\n"
"}\n"

/////////////////////////////////////////
//shambler stuff
"r_part shambercharging\n"
"{\n"
"spawnmode ball\n"
"count 200\n"
"spawnorg 128\n"
"spawnvel -256\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 1 63 63 256 2 64\n"
"scale 4\n"
"alpha 1\n"
"die 0.5\n"
"orgadd -64\n"
"rotationspeed 90\n"
"rotationstart 0 360\n"
"rgb 100 100 250\n"
"rgbrand 0 0 0\n"
"gravity 0\n"
"scalefactor 0.4\n"
"lighttime 0\n"
"lightshadows 0\n"
"lightradius 400\n"
"lightrgb    2 2 2\n"
"}\n"
"r_effect progs/s_light.mdl shambercharging 0\n"

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

"r_part high.pe_73\n"
"{\n"
"texture fte_bloodparticle\n"
"blend subtract\n"
"count 1\n"
"scale 32\n"
"alpha 0\n"
"die 1\n"
"randomvel 64\n"
"veladd 10\n"
"rotationspeed 90\n"
"rotationstart 0 360\n"
"rgb 32 64 64\n"
"rgbdelta -32 -64 -64\n"
"gravity 200\n"
"scalefactor 0.8\n"
"}\n"

"r_part te_lightningblood\n"
"{\n"
"texture fte_bloodparticle\n"
"blend subtract\n"
"count 1\n"
"scale 32\n"
"alpha 0\n"
"die 1\n"
"randomvel 32\n"
"veladd 5\n"
"rotationspeed 90\n"
"rotationstart 0 360\n"
"rgb 64 128 128\n"
"rgbdelta -64 -128 -128\n"
"gravity 200\n"
"scalefactor 0.8\n"
"}\n"
"r_part high.pe_225\n"
"{\n"
"texture fte_bloodparticle\n"
"blend subtract\n"
"count 0.5\n"
"scale 32\n"
"alpha 0\n"
"die 1\n"
"randomvel 32\n"
"veladd 5\n"
"rotationspeed 90\n"
"rotationstart 0 360\n"
"rgb 64 128 128\n"
"rgbdelta -64 -128 -128\n"
"gravity 200\n"
"scalefactor 0.8\n"
"}\n"

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

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

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

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

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











;



//////////////////////////////////////////////////////


char *particle_set_minimal =
// minimal, by TimeServ
"r_part pe_size3\n"
"{\n"
"texture \"particles/quake\"\n"
"count 1\n"
"die 1\n"
"scale 20\n"
"scaledelta -20\n"
"veladd 25\n"
"spawnorg 38\n"
"spawnvel 38\n"
"scalefactor 0.8\n"
"}\n"

"r_part pe_size2\n"
"{\n"
"texture \"particles/quake\"\n"
"count 1\n"
"die 1\n"
"scale 12\n"
"scaledelta -12\n"
"veladd 20\n"
"spawnorg 16\n"
"spawnvel 16\n"
"scalefactor 0.8\n"
"}\n"

"r_part pe_default\n"
"{\n"
"texture \"particles/quake\"\n"
"count 1\n"
"die 1\n"
"scale 10\n"
"scaledelta -10\n"
"veladd 15\n"
"spawnorg 10\n"
"spawnvel 10\n"
"scalefactor 0.8\n"
"}\n"

"r_part pe_defaulttrail\n"
"{\n"
"texture \"particles/quake\"\n"
"step 10\n"
"die 1\n"
"scale 8\n"
"scaledelta -8\n"
"veladd 15\n"
"spawnorg 2\n"
"spawnvel 2\n"
"scalefactor 0.8\n"
"}\n"
;



//////////////////////////////////////////////////////


#ifdef HEXEN2
char *particle_set_h2part =
//hexen2-compatible particle config
//for the purposes of faithfulness, I'm using uhexen2 (with gl_missile_glows etc set to 0) as a baseline.


//the engine uses the h2part namespace for all hexen2 effects, thus ensuring that the builtin config is loaded.
//specifying this explicitly means that the engine can find these effects properly even if this config is loaded via some name other than h2part.
//this line doesn't affect weak/strong stuff, so r_particledesc will still override builtin ones.
"r_part namespace h2part\n"

//transparent sprites look stupid when alpha tested too. really this shouldn't be here, but its needed to override fps_preset stuff...
"gl_blendsprites 1\n"

//pe4 effect 255 is reused for the generic
//move the vel to org and ignore the spawn velocity to mimic hexen2's particleexplosion
//colour gets overriden
"r_part pe4_255\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 1 63 63 256 2 64\n"
"count 1\n"
"scale 4\n"
"alpha 0.6\n"
"die 0.5\n"
"randomvel 256\n"
"veladd 0\n"
"orgadd 1\n"
"rotationspeed 360\n"
"rotationstart 0 360\n"
"gravity 200\n"
"scalefactor 0.8\n"
"}\n"

//icemace hitting a monster
"r_part pe2_14_145\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 1 63 63 256 2 64\n"
"count 20\n"
"scale 4\n"
"alpha 1\n"
"die 1\n"
"randomvel 256\n"
"rgb 160 160 240\n"
"veladd 0\n"
"orgadd 1\n"
"rotationspeed 360\n"
"rotationstart 0 360\n"
"gravity 200\n"
"scalefactor 0.8\n"
"}\n"

//praevus flame summoning particles
"r_part pe2_7 //_427\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 1 63 63 256 2 64\n"
"count 1\n"
"scale 4\n"
"alpha 3\n"
"die 2\n"
"randomvel 0\n"
"veladd 1\n"
"spawnorg 8\n"
"spawnvel 0\n"
"rotationspeed 360\n"
"rotationstart 0 360\n"
"gravity 0\n"
"scalefactor 0.8\n"
"}\n"

//grav. identical to slowgrav. used for the necro's boneshard particle puffs
"r_part pe4_1\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 1 63 63 256 2 64\n"
"count 1\n"
"scale 6\n"
"alpha 1\n"
"die 1\n"
"randomvel 0\n"
"veladd 1\n"
"orgadd 0\n"
"spawnorg 8\n"
"rotationspeed 360\n"
"rotationstart 0 360\n"
"gravity 200\n"
"scalefactor 0.3\n"
"}\n"
//slowgrav, used for the assassin's grenade's trail, stupidly enough
"r_part pe4_3\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 1 63 63 256 2 64\n"
"count 1\n"
"scale 4\n"
"alpha 0.6\n"
"die 0.5\n"
"randomvel 0\n"
"veladd 1\n"
"orgadd 0\n"
"spawnorg 8\n"
"rotationspeed 360\n"
"rotationstart 0 360\n"
"gravity 200\n"
"scalefactor 0.8\n"
"}\n"

//pt_fastgrav. blood splatters (like in the assassin's tomed set staff when the monster is chained up).
"r_part pe4_2\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 1 63 63 256 2 64\n"
"count 1\n"
"scale 8\n"
"alpha 2\n"
"die 1\n"
"randomvel 0\n"
"veladd 2\n"
"orgadd 0\n"
"spawnorg 8\n"
"rotationspeed 360\n"
"rotationstart 0 360\n"
"gravity 800\n"
"scalefactor 0.8\n"
"}\n"

//the 'rocket trail' flag from quake was repurposed in hexen2 for spider gibs
"r_part tr_rocket\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 1 63 63 256 2 64\n"
"step 2\n"
"scale 4\n"
"alpha 0.6\n"
"die 1\n"
"randomvel 64\n"
"veladd 10\n"
"rotationspeed 90\n"
"rotationstart 0 360\n"
"rgb 16 160 16\n"
"rgbrand 16 64 16\n"
"gravity 200\n"
"scalefactor 0.8\n"
"}\n"

//used for the meteor staff trail (projectile and gibs)
"r_part tr_grenade\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 1 63 63 256 2 64\n"
"step 4\n"
"scale 4\n"
"alpha 1\n"
"die 1\n"
"randomvel 8\n"
"veladd 10\n"
"gravity -40\n"
"rotationspeed 360\n"
"rotationstart 0 360\n"
"rgb 16\n"
"rgbrand 48\n"
"rgbrandsync 1\n"
"scalefactor 0.8\n"
"}\n"

//used on ice chunks (paladin ice wand thing)
"r_part tr_ice\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 1 63 63 256 2 64\n"
"step 4\n"
"scale 4\n"
"alpha 0.6\n"
"die 1\n"
"randomvel 64\n"
"veladd 10\n"
"rotationspeed 360\n"
"rotationstart 0 360\n"
"rgb 160 160 240\n"
"rgbrand 0 0 0\n"
"gravity 200\n"
"scalefactor 0.8\n"
"}\n"

//hexen2 uses the exact same effect for blood and slightblood, just slightblood is half as dense.
"r_part tr_slightblood\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 1 63 63 256 2 64\n"
"step 6\n"
"scale 4\n"
"alpha 0.6\n"
"die 1\n"
"randomvel 64\n"
"veladd 10\n"
"rotationspeed 360\n"
"rotationstart 0 360\n"
"rgb 240 0 0\n"
"rgbrand 0 0 0\n"
"gravity 200\n"
"scalefactor 0.8\n"
"}\n"
"r_part tr_blood\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 1 63 63 256 2 64\n"
"step 3\n"
"scale 4\n"
"alpha 0.6\n"
"die 1\n"
"randomvel 64\n"
"veladd 10\n"
"rotationspeed 360\n"
"rotationstart 0 360\n"
"rgb 240 0 0\n"
"rgbrand 0 0 0\n"
"gravity 200\n"
"scalefactor 0.8\n"
"}\n"

"r_part tr_bloodshot\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 1 63 63 256 2 64\n"
"step 3\n"
"scale 4\n"
"alpha 0.6\n"
"die 1\n"
"randomvel 64\n"
"veladd 10\n"
"rotationspeed 90\n"
"rotationstart 0 360\n"
"rgb 200 0 0\n"
"rgbdelta -180 0 0\n"
"rgbrand 50 0 0\n"
"gravity 200\n"
"scalefactor 0.8\n"
"}\n"

//demoness acid projectile trails
"r_part tr_spiderblood\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 1 63 63 256 2 64\n"
"step 4\n"
"scale 4\n"
"alpha 0.6\n"
"die 1\n"
"randomvel 64\n"
"veladd 10\n"
"rotationspeed 90\n"
"rotationstart 0 360\n"
"rgb 16 160 16\n"
"rgbrand 0 0 0\n"
"gravity 200\n"
"scalefactor 0.4\n"
"}\n"

//demoness acid projectile trails
"r_part tr_acidball\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 1 63 63 256 2 64\n"
"step 4\n"
"scale 4\n"
"alpha 0.6\n"
"die 1\n"
"randomvel 64\n"
"veladd 10\n"
"rotationspeed 90\n"
"rotationstart 0 360\n"
"rgb 16 160 16\n"
"rgbrand 0 0 0\n"
"gravity 200\n"
"scalefactor 0.4\n"
"lighttime 0\n"
"lightshadows 1\n"
"lightradius 100 120\n"
"lightrgb    0.50 1.00 0.25\n"
"}\n"

//hydra spit. generally blackish
"r_part tr_spit \n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 1 63 63 256 2 64\n"
"step 3\n"
"scale 4\n"
"alpha 1\n"
"die 1\n"
"randomvel 5\n"
"veladd 10\n"
"up 2\n"
"rotationspeed 90\n"
"rotationstart 0 360\n"
"rgb 0 0 0\n"
"rgbrand 0 0 0\n"
"gravity 0\n"
"scalefactor 0.3\n"

"lighttime 0\n"
"lightshadows 1\n"
"lightradius 100 120\n"
"lightrgb    -2.00 -1.00 -0.25\n"
"}\n"
//famine missiles
"r_part tr_spell\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 1 63 63 256 2 64\n"
"step 4\n"
"scale 4\n"
"alpha 1\n"
"die 1\n"
"randomvel 16\n"
"spawnorg 4\n"
"spawnvel 2\n"
"veladd 64\n"
"rotationspeed 90\n"
"rotationstart 0 360\n"
"rgb 200 32 32\n"
"rgbrand 0 0 0\n"
"gravity 0\n"
"scalefactor 0.3\n"
"}\n"
//tomed barbarian weapon2 trail
"r_part tr_vorpmissile\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 1 63 63 256 2 64\n"
"step 4\n"
"scale 4\n"
"alpha 0.6\n"
"die 0.5\n"
"randomvel 4\n"
"spawnorg 32 4\n"
"veladd 64\n"
"rotationspeed 90\n"
"rotationstart 0 360\n"
"rgb 128 128 128\n"
"rgbrand 0 0 0\n"
"gravity 0\n"
"scalefactor 0.8\n"
"}\n"
//this fades out much faster than regular hexen2. also slightly flies forwards with the missile
"r_part tr_magicmissile\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 1 63 63 256 2 64\n"
"step 4\n"
"scale 4\n"
"alpha 1\n"
"die 0.5\n"
"randomvel 64\n"
"veladd -128\n"
"spawnorg 8\n"
"rotationspeed 90\n"
"rotationstart 0 360\n"
"rgb 100 100 160\n"
"rgbrand 0 0 0\n"
"gravity 200\n"
"scalefactor 0.8\n"
"}\n"
"r_part tr_boneshard\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 1 63 63 256 2 64\n"
"step 4\n"
"scale 4\n"
"alpha 1\n"
"die 0.5\n"
"randomvel 64\n"
"veladd -128\n"
"spawnorg 8\n"
"rotationspeed 90\n"
"rotationstart 0 360\n"
"rgb 200 180 85\n"
"rgbrand 0 0 0\n"
"gravity 200\n"
"scalefactor 0.8\n"
"}\n"

//imp fireballs
"r_part tr_fireball\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 97 97 191 191 256\n"
"step 1\n"
"scale 12\n"
"alpha 0.4\n"
"die 0.5\n"
"rgb 255 127 100\n"
"rgbdelta -14 -300 -300\n"
"blend add\n"
"scalefactor 1\n"
"scaledelta -15\n"
"lighttime 0\n"
"lightshadows 1\n"
"lightradius 100 120\n"
"lightrgb    2.00 1.00 0.25\n"
"}\n"
"r_part +tr_fireball\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 97 97 191 191 256\n"
"step 5\n"
"scale 30\n"
"alpha 0.2\n"
"die 0.75\n"
//diesubrand 10.25
"randomvel 0.2\n"
"rgb 5 5 5\n"
//rgbdelta -230 -45 -9
"gravity -15\n"
"scalefactor 1\n"
"scaledelta 20\n"
"spawnvel 5\n"
"}\n"

//assassin weapon4
"r_part tr_setstaff\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 1 63 63 256 2 64\n"
"step 2\n"
"scale 4\n"
"alpha 0.6\n"
"die 1\n"
"spawnorg 3 5\n"
"randomvel 3.5\n"
"veladd 10\n"
"rotationspeed 90\n"
"rotationstart 0 360\n"
"rgb 220 200 100 \n"
"rgbrand 0 0 0\n"
"gravity 40\n"
"scalefactor 0.8\n"
"}\n"
//assassin weapon4's tomed projectile trail thing. barely visible in hexen2. framerate dependant. nasty. this effect is not faithful.
"r_part tr_scarab\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 1 63 63 256 2 64\n"
"step 2\n"
"scale 4\n"
"alpha 0.3\n"
"die 0.2\n"
"spawnorg 1 2\n"
"randomvel 1\n"
"veladd 10\n"
"rotationspeed 90\n"
"rotationstart 0 360\n"
"rgb 220 200 100 \n"
"rgbrand 0 0 0\n"
"gravity 40\n"
"scalefactor 0.8\n"
"}\n"


//generic rain. rgb comes from the gamecode's palette index. blurgh. real men specify things precisely.
"r_part te_rain\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 1 63 63 256 2 64\n"
"count 1 2 1\n"
"scale 5\n"
"alpha 3\n"
"die 2\n"
"spawnorg 64 64\n"
"spawnvel 1\n"
"veladd 0.5\n"
"rotationspeed 90\n"
"rotationstart 0 30\n"
"rgb 255 255 255\n"
"scalefactor 0.8\n"
"}\n"


//Hexen2 triggers various client-side sprite/model effects.
//model term:
//model MODELNAME framestart frameend framerate alpha traileffect
//sprites will always use a fixed alpha (frames should shrink in size or whatever).
//models will fade out gradually, but can be forced to a constant alpha if a negative alpha is used (will be fabsed as needed) if you have a decent animation.

"r_part ce_white_smoke_05\n"
"{\n"
"model models/whtsmk1.spr 0 0 20 0.5\n"
"veladd 1\n"
"}\n"
"r_part ce_white_smoke_10\n"
"{\n"
"model models/whtsmk1.spr 0 0 10 0.5\n"
"veladd 1\n"
"}\n"
"r_part ce_white_smoke_15\n"
"{\n"
"model models/whtsmk1.spr 0 0 6.666 0.5\n"
"veladd 1\n"
"}\n"
"r_part ce_white_smoke_20\n"
"{\n"
"model models/whtsmk1.spr 0 0 5 0.5\n"
"veladd 1\n"
"}\n"
"r_part ce_white_smoke_50\n"
"{\n"
"model models/whtsmk1.spr 0 0 2 0.5\n"
"veladd 1\n"
"}\n"

"r_part ce_bluespark\n"
"{\n"
"model models/bspark.spr 0 0 20 1\n"
"}\n"
"r_part ce_yellowspark\n"
"{\n"
"model models/spark.spr 0 0 20 1\n"
"}\n"
"r_part ce_sm_circle_exp\n"
"{\n"
"model models/fcircle.spr 0 0 20 1\n"
"}\n"
"r_part ce_bg_circle_exp\n"
"{\n"
"model models/xplod29.spr 0 0 20 1\n"
"}\n"
"r_part ce_sm_white_flash\n"
"{\n"
"model models/sm_white.spr 0 0 20 1\n"
"}\n"
"r_part ce_white_flash\n"
"{\n"
"model models/gryspt.spr 0 0 20 0.4\n"
"}\n"
"r_part ce_yellowred_flash\n"
"{\n"
"model models/yr_flsh.spr 0 0 20 0.4\n"
"}\n"
"r_part ce_blue_flash\n"
"{\n"
"model models/bluflash.spr 0 0 20 0.4\n"
"}\n"
"r_part ce_sm_blue_flash\n"
"{\n"
"model models/sm_blue.spr 0 0 20 0.4\n"
"}\n"
"r_part ce_red_flash\n"
"{\n"
"model models/redspt.spr 0 0 20 0.4\n"
"}\n"
"r_part ce_sm_explosion\n"
"{\n"
"model models/sm_expld.spr 0 0 20 1\n"
"}\n"
"r_part ce_lg_explosion\n"
"{\n"
"model models/bg_expld.spr 0 0 20 1\n"
"}\n"
"r_part ce_floor_explosion\n"
"{\n"
"model models/fl_expld.spr 0 0 20 1\n"
"}\n"
"r_part ce_rider_death\n"
"{\n"
"}\n"
"r_part ce_blue_explosion\n"
"{\n"
"model models/xpspblue.spr 0 0 20 1\n"
"}\n"
"r_part ce_green_smoke_05\n"
"{\n"
"model models/grnsmk1.spr 0 0 20 0.5\n"
"veladd 1\n"
"}\n"
"r_part ce_green_smoke_10\n"
"{\n"
"model models/grnsmk1.spr 0 0 10 0.5\n"
"veladd 1\n"
"}\n"
"r_part ce_green_smoke_15\n"
"{\n"
"model models/grnsmk1.spr 0 0 6.666 0.5\n"
"veladd 1\n"
"}\n"
"r_part ce_green_smoke_20\n"
"{\n"
"model models/grnsmk1.spr 0 0 5 0.5\n"
"veladd 1\n"
"}\n"
//	ce_grey_smoke
"r_part ce_grey_smoke_15\n"
"{\n"
"model models/grysmk1.spr 0 0 6.666 0.5\n"
"veladd 1\n"
"}\n"
"r_part ce_red_smoke\n"
"{\n"
"model models/redsmk1.spr 0 0 6.666 0.5\n"
"veladd 1\n"
"}\n"
"r_part ce_slow_white_smoke\n"
"{\n"
"model models/whtsmk1.spr 0 0 20 0.5\n"
"veladd 1\n"
"}\n"
"r_part ce_redspark\n"
"{\n"
"model models/rspark.spr 0 0 20 1\n"
"}\n"
"r_part ce_greenspark\n"
"{\n"
"model models/gspark.spr 0 0 20 1\n"
"}\n"
"r_part ce_telesmk1\n"
"{\n"
"model models/telesmk1.spr 0 0 15 0.5\n"
"veladd 1\n"
"}\n"
"r_part ce_telesmk2\n"
"{\n"
"model models/telesmk2.spr 0 0 15 1\n"
"veladd 1\n"
"}\n"
"r_part ce_icehit\n"
"{\n"
"model models/icehit.spr 0 0 20 0.5\n"
"}\n"
"r_part ce_medusa_hit\n"
"{\n"
"model models/medhit.spr 0 0 20 1\n"
"}\n"
"r_part ce_mezzo_reflect\n"
"{\n"
"model models/mezzoref.spr 0 0 20 1\n"
"}\n"
"r_part ce_floor_explosion2\n"
"{\n"
"model models/flrexpl2.spr 0 0 20 1\n"
"}\n"
"r_part ce_xbow_explosion\n"
"{\n"
"model models/xbowexpl.spr 0 0 20 1\n"
"}\n"
"r_part ce_new_explosion\n"
"{\n"
"model models/gen_expl.spr 0 0 20 1\n"
"}\n"
"r_part ce_magic_missile_explosion\n"
"{\n"
"model models/mm_expld.spr 0 0 20 1\n"
"}\n"
//	ce_ghost
"r_part ce_bone_explosion\n"
"{\n"
"model models/bonexpld.spr 0 0 20 1\n"
"}\n"
//famine teleport effect
"r_part ce_redcloud\n"
"{\n"
"model models/rcloud.spr 0 0 20 1\n"
"}\n"
"r_part ce_teleporterpuffs\n"
"{\n"
//	model models/telesmk2.spr 0 0 20 1
"}\n"
//	ce_teleporterbody
//	ce_boneshard
//	ce_boneshrapnel
//this is transparent so it doesn't obscure your view
"r_part ce_flamestream\n"
"{\n"
"model models/flamestr.spr 0 0 20 0.4\n"
"veladd 1\n"
"}\n"
"r_part ce_gravitywell\n"
"{\n"
"spawnmode ball\n"
"count 100\n"
"spawnorg 128\n"
"spawnvel -64\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 1 63 63 256 2 64\n"
"scale 4\n"
"alpha 1\n"
"die 2\n"
"rotationspeed 90\n"
"rotationstart 0 360\n"
"rgb 220 200 100\n"
"rgbrand 0 0 0\n"
"gravity 0\n"
"scalefactor 0.4\n"
"}\n"
"r_part ce_bldrn_expl\n"
"{\n"
"model models/xplsn_1.spr 0 0 20 1\n"
"}\n"
//demoness tomed acid trail
"r_part ce_acid_muzzfl\n"
"{\n"
"model models/muzzle1.spr 0 0 20 0.4\n"
"veladd 1\n"
"}\n"
"r_part ce_acid_hit\n"
"{\n"
"model models/axplsn_2.spr 0 0 20 1\n"
"}\n"
"r_part ce_firewall_small\n"
"{\n"
"model models/firewal1.spr 0 0 20 1\n"
"}\n"
"r_part ce_firewall_medium\n"
"{\n"
"model models/firewal5.spr 0 0 20 1\n"
"}\n"
"r_part ce_firewall_large\n"
"{\n"
"model models/firewal4.spr 0 0 20 1\n"
"}\n"
"r_part ce_onfire\n"
"{\n"
"model models/firewal1.spr 0 0 20 0.4\n"
"model models/firewal2.spr 0 0 20 0.4\n"
"model models/firewal3.spr 0 0 20 0.4\n"
"veladd 1\n"
"}\n"
"r_part ce_flamewall\n"
"{\n"
"model models/firewal1.spr 0 0 20 1\n"
"veladd 1\n"
"}\n"
"r_part ce_flamewall2\n"
"{\n"
"model models/firewal2.spr 0 0 20 0.4\n"
"veladd 1\n"
"}\n"
"r_part ce_lball_expl\n"
"{\n"
"model models/Bluexp3.spr 0 0 20 1\n"
"}\n"
"r_part ce_acid_splat\n"
"{\n"
"model models/axplsn_1.spr 0 0 20 1\n"
"}\n"
"r_part ce_acid_expl\n"
"{\n"
"model models/axplsn_5.spr 0 0 20 1\n"
"}\n"
"r_part ce_fboom\n"
"{\n"
"model models/fboom.spr 0 0 20 1\n"
"}\n"
//	ce_chunk
"r_part ce_bomb\n"
"{\n"
"model models/pow.spr 0 0 20 1\n"
"}\n"
"r_part ce_brn_bounce\n"
"{\n"
"model models/spark.spr 0 0 20 1\n"
"}\n"
"r_part ce_lshock\n"
"{\n"
"model models/vorpshok.mdl 0 0 20 1\n"
"}\n"
//	ce_flamewall
//	ce_flamewall2
"r_part ce_floor_explosion3\n"
"{\n"
"model models/biggy.spr 0 0 20 1\n"
"}\n"

"r_part ce_boneshard\n"
"{\n"
"model models/boneshot.mdl 0 1 1 1\n"
"rotationspeed 425\n"
"veladd 2\n"
"}\n"
"r_part ce_boneshrapnel\n"
"{\n"
"model models/boneshrd.mdl 0 1 1 1\n"
"rotationspeed 425\n"
"veladd 2\n"
"}\n"

"r_part ce_chunk_greystone\n"
"{\n"
"model models/schunk1.mdl 0 1 0.25 1\n"
"model models/schunk2.mdl 0 1 0.25 1\n"
"model models/schunk3.mdl 0 1 0.25 1\n"
"model models/schunk4.mdl 0 1 0.25 1\n"
"randomvel 210 70 280\n"
"spawnorg 0\n"
"gravity 800\n"
"rotationspeed 425\n"
"}\n"
"r_part ce_chunk_wood\n"
"{\n"
"model models/splnter1.mdl 0 1 0.25 1\n"
"model models/splnter2.mdl 0 1 0.25 1\n"
"model models/splnter3.mdl 0 1 0.25 1\n"
"model models/splnter4.mdl 0 1 0.25 1\n"
"randomvel 210 70 280\n"
"spawnorg 0\n"
"gravity 800\n"
"rotationspeed 425\n"
"}\n"
"r_part ce_chunk_metal\n"
"{\n"
"model models/metlchk1.mdl 0 1 0.25 1\n"
"model models/metlchk2.mdl 0 1 0.25 1\n"
"model models/metlchk3.mdl 0 1 0.25 1\n"
"model models/metlchk4.mdl 0 1 0.25 1\n"
"randomvel 210 70 280\n"
"spawnorg 0\n"
"gravity 800\n"
"rotationspeed 425\n"
"}\n"
"r_part ce_chunk_flesh\n"
"{\n"
"model models/flesh1.mdl 0 1 0.25 1 tr_bloodshot\n"
"model models/flesh2.mdl 0 1 0.25 1 tr_bloodshot\n"
"model models/flesh3.mdl 0 1 0.25 1 tr_bloodshot\n"
"randomvel 210 70 280\n"
"spawnorg 0\n"
"gravity 800\n"
"rotationspeed 425\n"
"}\n"
//r_part ce_chunk_fire
//{
//}
"r_part ce_chunk_clay\n"
"{\n"
"model models/clshard1.mdl 0 1 0.25 1\n"
"model models/clshard2.mdl 0 1 0.25 1\n"
"model models/clshard3.mdl 0 1 0.25 1\n"
"model models/clshard4.mdl 0 1 0.25 1\n"
"randomvel 210 70 280\n"
"spawnorg 0\n"
"gravity 800\n"
"rotationspeed 425\n"
"}\n"
"r_part ce_chunk_leaves\n"
"{\n"
"model models/leafchk1.mdl 0 1 0.25 1\n"
"model models/leafchk2.mdl 0 1 0.25 1\n"
"model models/leafchk3.mdl 0 1 0.25 1\n"
"randomvel 210 70 280\n"
"spawnorg 0\n"
"gravity 800\n"
"rotationspeed 425\n"
"}\n"
"r_part ce_chunk_hay\n"
"{\n"
"model models/hay1.mdl 0 1 0.25 1\n"
"model models/hay2.mdl 0 1 0.25 1\n"
"model models/hay3.mdl 0 1 0.25 1\n"
"randomvel 210 70 280\n"
"spawnorg 0\n"
"gravity 800\n"
"rotationspeed 425\n"
"}\n"
"r_part ce_chunk_brownstone\n"
"{\n"
"model models/schunk1.mdl 1 1 0.25 1\n"
"model models/schunk2.mdl 1 1 0.25 1\n"
"model models/schunk3.mdl 1 1 0.25 1\n"
"model models/schunk4.mdl 1 1 0.25 1\n"
"randomvel 210 70 280\n"
"spawnorg 0\n"
"gravity 800\n"
"rotationspeed 425\n"
"}\n"
"r_part ce_chunk_cloth\n"
"{\n"
"model models/clthchk1.mdl 0 1 0.25 1\n"
"model models/clthchk2.mdl 0 1 0.25 1\n"
"model models/clthchk3.mdl 0 1 0.25 1\n"
"randomvel 210 70 280\n"
"spawnorg 0\n"
"gravity 800\n"
"rotationspeed 425\n"
"}\n"
"r_part ce_chunk_wood_leaf\n"
"{\n"
"model models/splnter1.mdl 0 1 0.25 1\n"
"model models/splnter2.mdl 0 1 0.25 1\n"
"model models/splnter3.mdl 0 1 0.25 1\n"
"model models/splnter4.mdl 0 1 0.25 1\n"
"model models/leafchk1.mdl 0 1 0.25 1\n"
"model models/leafchk2.mdl 0 1 0.25 1\n"
"model models/leafchk3.mdl 0 1 0.25 1\n"
"randomvel 210 70 280\n"
"spawnorg 0\n"
"gravity 800\n"
"rotationspeed 425\n"

"}\n"
"r_part ce_chunk_wood_metal\n"
"{\n"
"model models/splnter1.mdl 0 1 0.25 1\n"
"model models/splnter2.mdl 0 1 0.25 1\n"
"model models/splnter3.mdl 0 1 0.25 1\n"
"model models/splnter4.mdl 0 1 0.25 1\n"
"model models/metlchk1.mdl 0 1 0.25 1\n"
"model models/metlchk2.mdl 0 1 0.25 1\n"
"model models/metlchk3.mdl 0 1 0.25 1\n"
"model models/metlchk4.mdl 0 1 0.25 1\n"
"randomvel 210 70 280\n"
"spawnorg 0\n"
"gravity 800\n"
"rotationspeed 425\n"
"}\n"
"r_part ce_chunk_wood_stone\n"
"{\n"
"model models/splnter1.mdl 0 1 0.25 1\n"
"model models/splnter2.mdl 0 1 0.25 1\n"
"model models/splnter3.mdl 0 1 0.25 1\n"
"model models/splnter4.mdl 0 1 0.25 1\n"
"model models/schunk1.mdl 0 1 0.25 1\n"
"model models/schunk2.mdl 0 1 0.25 1\n"
"model models/schunk3.mdl 0 1 0.25 1\n"
"model models/schunk4.mdl 0 1 0.25 1\n"
"randomvel 210 70 280\n"
"spawnorg 0\n"
"gravity 800\n"
"rotationspeed 425\n"
"}\n"
"r_part ce_chunk_metal_stone\n"
"{\n"
"model models/metlchk1.mdl 0 1 0.25 1\n"
"model models/metlchk2.mdl 0 1 0.25 1\n"
"model models/metlchk3.mdl 0 1 0.25 1\n"
"model models/metlchk4.mdl 0 1 0.25 1\n"
"model models/schunk1.mdl 0 1 0.25 1\n"
"model models/schunk2.mdl 0 1 0.25 1\n"
"model models/schunk3.mdl 0 1 0.25 1\n"
"model models/schunk4.mdl 0 1 0.25 1\n"
"randomvel 210 70 280\n"
"spawnorg 0\n"
"gravity 800\n"
"rotationspeed 425\n"
"}\n"
"r_part ce_chunk_metal_cloth\n"
"{\n"
"model models/metlchk1.mdl 0 1 0.25 1\n"
"model models/metlchk2.mdl 0 1 0.25 1\n"
"model models/metlchk3.mdl 0 1 0.25 1\n"
"model models/metlchk4.mdl 0 1 0.25 1\n"
"model models/clthchk1.mdl 0 1 0.25 1\n"
"model models/clthchk2.mdl 0 1 0.25 1\n"
"model models/clthchk3.mdl 0 1 0.25 1\n"
"randomvel 210 70 280\n"
"spawnorg 0\n"
"gravity 800\n"
"rotationspeed 425\n"
"}\n"
"r_part ce_chunk_webs\n"
"{\n"
"model models/shard1.mdl 3 1 0.25 -0.5\n"
"model models/shard2.mdl 3 1 0.25 -0.5\n"
"model models/shard3.mdl 3 1 0.25 -0.5\n"
"model models/shard4.mdl 3 1 0.25 -0.5\n"
"model models/shard5.mdl 3 1 0.25 -0.5\n"
"randomvel 210 70 280\n"
"spawnorg 0\n"
"gravity 500\n"
"rotationspeed 425\n"
"}\n"
"r_part ce_chunk_glass\n"
"{\n"
"model models/shard1.mdl 0 1 0.25 1\n"
"model models/shard2.mdl 0 1 0.25 1\n"
"model models/shard3.mdl 0 1 0.25 1\n"
"model models/shard4.mdl 0 1 0.25 1\n"
"model models/shard5.mdl 0 1 0.25 1\n"
"randomvel 210 70 280\n"
"spawnorg 0\n"
"gravity 800\n"
"rotationspeed 425\n"
"}\n"
"r_part ce_chunk_ice\n"
"{\n"
"model models/shard.mdl 0 1 0.25 -0.4 tr_ice\n"
"model models/shard.mdl 1 1 0.25 -0.4 tr_ice\n"
"rotationspeed 30\n"
"randomvel 210 70 280\n"
"spawnorg 0\n"
"gravity 800\n"
"}\n"
"r_part ce_chunk_clearglass\n"
"{\n"
"model models/shard1.mdl 1 1 0.25 -0.5\n"
"model models/shard2.mdl 1 1 0.25 -0.5\n"
"model models/shard3.mdl 1 1 0.25 -0.5\n"
"model models/shard4.mdl 1 1 0.25 -0.5\n"
"model models/shard5.mdl 1 1 0.25 -0.5\n"
"randomvel 210 70 280\n"
"spawnorg 0\n"
"gravity 800\n"
"rotationspeed 425\n"
"}\n"
"r_part ce_chunk_redglass\n"
"{\n"
"model models/shard1.mdl 2 1 0.25 1\n"
"model models/shard2.mdl 2 1 0.25 1\n"
"model models/shard3.mdl 2 1 0.25 1\n"
"model models/shard4.mdl 2 1 0.25 1\n"
"model models/shard5.mdl 2 1 0.25 1\n"
"randomvel 210 70 280\n"
"spawnorg 0\n"
"gravity 800\n"
"rotationspeed 425\n"
"}\n"
"r_part ce_chunk_acid\n"
"{\n"
"model models/sucwp2p.mdl 0 1 0.25 1 tr_acidball\n"
"randomvel 210 70 280\n"
"spawnorg 0\n"
"gravity 800\n"
"rotationspeed 425\n"
"}\n"
"r_part ce_chunk_meteor\n"
"{\n"
"model models/tempmetr.mdl framestart=0 framecount=1 framerate=0.5 alpha=-1 trail=tr_grenade scalemin=0.30 scalemax=.70 fullbright\n"
"randomvel 360\n"
"spawnorg 0\n"
"gravity 800\n"
"rotationspeed 425\n"
"}\n"
"r_part ce_chunk_greenflesh\n"
"{\n"
"model models/sflesh1.mdl 0 1 0.25 1 tr_spiderblood\n"
"model models/sflesh2.mdl 0 1 0.25 1 tr_spiderblood\n"
"model models/sflesh3.mdl 0 1 0.25 1 tr_spiderblood\n"
"randomvel 210 70 280\n"
"spawnorg 0\n"
"gravity 800\n"
"rotationspeed 425\n"
"}\n"
"r_part ce_chunk_bone\n"
"{\n"
"model models/clshard1.mdl 1 1 0.25 1\n"
"model models/clshard2.mdl 1 1 0.25 1\n"
"model models/clshard3.mdl 1 1 0.25 1\n"
"model models/clshard4.mdl 1 1 0.25 1\n"
"randomvel 210 70 280\n"
"spawnorg 0\n"
"gravity 800\n"
"rotationspeed 425\n"
"}\n"

"r_part ce_fountain\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 1 63 63 256 2 64\n"
"count 1\n"
"scale 10\n"
"rotationspeed -64 64\n"
"scalefactor 1\n"
"die 1\n"
"alpha 0.2\n"
"rgb 128 128 128\n"
"rgbdelta 0 -32 -32\n"
"blend add\n"
"spawnvel 100\n"
"veladd 1\n"
"gravity 800\n"
"}\n"

"r_part ce_snow\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 1 63 63 256 2 64\n"
"count 1\n"
"scale 30\n"
"scaledelta -10\n"
"rotationspeed -64 64\n"
"scalefactor 1\n"
"die 7\n"
"alpha 0.2\n"
"rgb 255 255 255\n"
"rgbdelta 0 -32 -32\n"
"friction 0\n"
"blend add\n"
"veladd 1\n"
"gravity 0\n"
"flurry 32\n"
"}\n"

//eidolon's arena
"r_part ce_rain\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 1 1 63 63 256 2 64\n"
"type texturedspark\n"
"count   1\n"
"scale 2\n"
"scalefactor 1\n"
"die 1\n"
"alpha 0.2\n"
"alphadelta 0\n"
"rgb 255 255 255\n"
"friction 0\n"
"blend add\n"
"veladd 1\n"
"gravity 0\n"
"}\n"

//this teleport effect is nothing like hexen2's. hopefully it'll be acceptable :s
//the down ring
"r_part ce_teleporterbody\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 193 1 255 63 256\n"
"count 32\n"
"scale 16\n"
"scalefactor 1\n"
"alpha 0.3\n"
"die 1\n"
"veladd -52\n"
"rgb 255 255 255\n"
"friction 1\n"
"spawnorg 32 0\n"
"spawnmode uniformcircle\n"
"}\n"
//the up ring
"r_part +ce_teleporterbody\n"
"{\n"
"texture \"particles/fteparticlefont.tga\"\n"
"tcoords 193 1 255 63 256\n"
"count 32\n"
"scale 16\n"
"scalefactor 1\n"
"alpha 0.3\n"
"die 1\n"
"veladd 52\n"
"rgb 255 255 255\n"
"friction 1\n"
"spawnorg 32 0\n"
"spawnmode uniformcircle\n"
"}\n"


//h2part.ce_quake was not loaded
//h2part.ce_ghost was not loaded
//h2part.ce_teleporterbody_1 was not loaded
//h2part.ce_grey_smoke_100 was not loaded
//h2part.ce_chunk_fire was not loaded
;
#endif



//////////////////////////////////////////////////////


#ifdef Q2CLIENT
char *particle_set_q2part =
//model "name" framestart= frames= framerate= alpha= trail= orient additive transparent fullbright shadow noshadow


"r_part namespace q2part\n"

"r_part pe_default\n"
"{\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"count 1\n"
"scale 1\n"
"alpha 1\n"
"die 0.3 0.8\n"
"randomvel 20\n"
"orgadd 0 31\n"
"spawnorg 4\n"
"gravity 40\n"
"scalefactor 0.8\n"
"}\n"

"r_part placeholder\n"
"{ //FIXME: fix the things that assoc this!\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"count 1\n"
"scale 1\n"
"alpha 1\n"
"die 0.3 0.8\n"
"randomvel 20\n"
"orgadd 0 31\n"
"spawnorg 4\n"
"gravity 40\n"
"scalefactor 0.8\n"
"colorindex 0 255 //something that makes it obviously a placeholder.\n"
"}\n"

"r_part te_splashsparks\n"
"{\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"count 1\n"
"scale 1\n"
"alpha 1\n"
"die 0.3 0.8\n"
"randomvel 20\n"
"orgadd 0 31\n"
"spawnorg 4\n"
"gravity 40\n"
"scalefactor 0.8\n"
"colorindex 0xe0\n"
"}\n"
"r_part te_splashunknown\n"
"{\n"
"assoc te_splashsparks\n"
"}\n"
"r_part teq2_sparks\n"
"{\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"count 6\n"
"scale 1\n"
"alpha 1\n"
"die 0.3 0.8\n"
"randomvel 20\n"
"orgadd 0 31\n"
"spawnorg 4\n"
"gravity 40\n"
"scalefactor 0.8\n"
"colorindex 0xe0\n"
"}\n"
"r_part te_splashbluewater\n"
"{\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"count 1\n"
"scale 1\n"
"alpha 1\n"
"die 0.3 0.8\n"
"randomvel 20\n"
"orgadd 0 31\n"
"spawnorg 4\n"
"gravity 40\n"
"scalefactor 0.8\n"
"colorindex 0xb0\n"
"}\n"
"r_part te_splashbrownwater\n"
"{\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"count 1\n"
"scale 1\n"
"alpha 1\n"
"die 0.3 0.8\n"
"randomvel 20\n"
"orgadd 0 31\n"
"spawnorg 4\n"
"gravity 40\n"
"scalefactor 0.8\n"
"colorindex 0x50\n"
"}\n"
"r_part te_splashslime\n"
"{\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"count 1\n"
"scale 1\n"
"alpha 1\n"
"die 0.3 0.8\n"
"randomvel 20\n"
"orgadd 0 31\n"
"spawnorg 4\n"
"gravity 40\n"
"scalefactor 0.8\n"
"colorindex 0xd0\n"
"}\n"
"r_part te_splashlava\n"
"{\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"count 1\n"
"scale 1\n"
"alpha 1\n"
"die 0.3 0.8\n"
"randomvel 20\n"
"orgadd 0 31\n"
"spawnorg 4\n"
"gravity 40\n"
"scalefactor 0.8\n"
"colorindex 0xe0\n"
"}\n"
"r_part te_splashblood\n"
"{\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"count 1\n"
"scale 1\n"
"alpha 1\n"
"die 0.3 0.8\n"
"randomvel 20\n"
"orgadd 0 31\n"
"spawnorg 4\n"
"gravity 40\n"
"scalefactor 0.8\n"
"colorindex 0xe8\n"
"}\n"

"r_part teq2_laser_sparks\n"
"{\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"count 1\n"
"scale 1\n"
"alpha 1\n"
"die 0.3 0.8\n"
"randomvel 20\n"
"orgadd 0 7\n"
"spawnorg 4\n"
"gravity 40\n"
"scalefactor 0.8\n"
"}\n"
"r_part teq2_welding_sparks\n"
"{ //identical to teq2_laser_sparks, except for the +form that adds in some extra mesh+lighting effect.\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"count 1\n"
"scale 1\n"
"alpha 1\n"
"die 0.3 0.8\n"
"randomvel 20\n"
"orgadd 0 7\n"
"spawnorg 4\n"
"gravity 40\n"
"scalefactor 0.8\n"
"}\n"
"r_part +teq2_welding_sparks\n"
"{\n"
"count 0 0 1\n"
"model \"models/objects/flash/tris.md2\" framestart=0 frameend=2 framerate=10 alpha=-1 fullbright\n"
"lightradius 100 175\n"
"lightradiusfade 400\n"
"lightrgb 1 1 0.3\n"
"}\n"
"r_part teq2_tunnel_sparks\n"
"{ //this is apparently identical to teq2_laser_sparks... either way the protocol provides a palette colour (particle system provides a customised variation)\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"count 1\n"
"scale 1\n"
"alpha 1\n"
"die 0.3 0.8\n"
"randomvel 20\n"
"orgadd 0 7\n"
"spawnorg 4\n"
"gravity 40\n"
"scalefactor 0.8\n"
"}\n"
"r_part teq2_shield_sparks\n"
"{\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"count 40\n"
"colorindex 0xb0\n"
"scale 1\n"
"alpha 1\n"
"die 0.3 0.8\n"
"randomvel 20\n"
"orgadd 0 31\n"
"spawnorg 4\n"
"gravity 40\n"
"scalefactor 0.8\n"
"}\n"
"r_part teq2_screen_sparks\n"
"{\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"count 40\n"
"colorindex 0xd0\n"
"scale 1\n"
"alpha 1\n"
"die 0.3 0.8\n"
"randomvel 20\n"
"orgadd 0 31\n"
"spawnorg 4\n"
"gravity 40\n"
"scalefactor 0.8\n"
"}\n"
"r_part teq2_bullet_sparks\n"
"{\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"count 6\n"
"colorindex 0xe0\n"
"scale 1\n"
"alpha 1\n"
"die 0.3 0.8\n"
"randomvel 20\n"
"orgadd 0 31\n"
"spawnorg 4\n"
"gravity 40\n"
"scalefactor 0.8\n"
"}\n"

"r_part q2_smoke\n"
"{\n"
"count 0 0 1\n"
"model \"models/objects/smoke/tris.md2\" framestart=0 frameend=4 framerate=10 alpha=1\n"
"}\n"
"r_part q2_smokeandflash\n"
"{\n"
"count 0 0 1\n"
"model \"models/objects/flash/tris.md2\" framestart=0 frameend=2 framerate=10 alpha=-1 fullbright\n"
"assoc q2_smoke\n"
"}\n"

"r_part teq2_gunshot /*machinegun*/\n"
"{\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"count 40\n"
"scale 1\n"
"alpha 1\n"
"die 0.3 0.8\n"
"randomvel 20\n"
"orgadd 0 31\n"
"spawnorg 4\n"
"gravity 40\n"
"scalefactor 0.8\n"
"colorindex 0 7\n"
"/*smoke puff models*/\n"
"assoc q2_smokeandflash\n"
"/*low chance of various sounds*/\n"
"sound world/ric1.wav 1 1 0 0 1\n"
"sound world/ric2.wav 1 1 0 0 1\n"
"sound world/ric3.wav 1 1 0 0 1\n"
"sound \"\" 1 1 0 0 12\n"
"}\n"

"r_part teq2_shotgun /*shotgun... duh*/\n"
"{\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"count 20\n"
"scale 1\n"
"alpha 1\n"
"die 0.3 0.8\n"
"randomvel 20\n"
"orgadd 0 31\n"
"spawnorg 4\n"
"gravity 40\n"
"scalefactor 0.8\n"
"colorindex 0 7\n"
"/*smoke puff models*/\n"
"assoc q2_smokeandflash\n"
"}\n"

"r_part teq2_blood\n"
"{\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"count 60\n"
"scale 1\n"
"alpha 1\n"
"die 0.3 0.8\n"
"randomvel 20\n"
"orgadd 0 31\n"
"spawnorg 4\n"
"gravity 40\n"
"scalefactor 0.8\n"
"colorindex 232 7\n"
"}\n"
"r_part teq2_moreblood\n"
"{ //teq2_blood, but with count 250 instead of 60.\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"count 250\n"
"scale 1\n"
"alpha 1\n"
"die 0.3 0.8\n"
"randomvel 20\n"
"orgadd 0 31\n"
"spawnorg 4\n"
"gravity 40\n"
"scalefactor 0.8\n"
"colorindex 232 7\n"
"}\n"
"r_part teq2_greenblood\n"
"{\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"count 30\n"
"scale 1\n"
"alpha 1\n"
"die 0.3 0.8\n"
"randomvel 20\n"
"orgadd 0 31\n"
"spawnorg 4\n"
"gravity 40\n"
"scalefactor 0.8\n"
"colorindex 0xdf 7\n"
"}\n"

"r_part teq2_electric_sparks\n"
"{\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"count 40\n"
"scale 1\n"
"alpha 1\n"
"die 0.3 0.8\n"
"randomvel 20\n"
"orgadd 0 31\n"
"spawnorg 4\n"
"gravity 40\n"
"scalefactor 0.8\n"
"colorindex 0x75 7\n"
"sound \"weapons/lashit.wav\" 1 1 0 0\n"
"}\n"

"r_part q2_blasterpuff\n"
"{\n"
"count 0 0 1\n"
"model \"models/objects/explode/tris.md2\" framestart=0 frameend=4 framerate=10 alpha=1 orient additive fullbright noshadow skin=0\n"
"}\n"
"r_part q2_blaster2puff\n"
"{\n"
"count 0 0 1\n"
"model \"models/objects/explode/tris.md2\" framestart=0 frameend=4 framerate=10 alpha=1 orient additive fullbright noshadow skin=1\n"
"}\n"
"r_part q2_flechettepuff\n"
"{\n"
"count 0 0 1\n"
"model \"models/objects/explode/tris.md2\" framestart=0 frameend=4 framerate=10 alpha=1 orient additive fullbright noshadow skin=2\n"
"}\n"
"r_part teq2_blaster\n"
"{\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"count 60\n"
"scale 1\n"
"alpha 1\n"
"die 0.3 0.8\n"
"randomvel 40\n"
"orgadd 0 15\n"
"veladd 30\n"
"spawnorg 4\n"
"gravity 40\n"
"scalefactor 0.8\n"
"colorindex 0xe0 7\n"
"assoc q2_blasterpuff /*the model*/\n"
"lightradius 150\n"
"lightradiusfade 400\n"
"lightrgb 1 1 0\n"
"lightshadows 1\n"
"sound \"weapons/lashit.wav\" 1 1 0 0\n"
"}\n"
"r_part teq2_blaster2\n"
"{ //green version.\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"count 60\n"
"scale 1\n"
"alpha 1\n"
"die 0.3 0.8\n"
"randomvel 40\n"
"orgadd 0 15\n"
"veladd 30\n"
"spawnorg 4\n"
"gravity 40\n"
"scalefactor 0.8\n"
"colorindex 0xd0 7\n"
"assoc q2_blaster2puff /*the model*/\n"
"lightradius 150\n"
"lightradiusfade 400\n"
"lightrgb 0.05 1.0 0.05\n"
"lightshadows 1\n"
"sound \"weapons/lashit.wav\" 1 1 0 0\n"
"}\n"
"r_part teq2_flechette\n"
"{ //grey version.\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"count 60\n"
"scale 1\n"
"alpha 1\n"
"die 0.3 0.8\n"
"randomvel 40\n"
"orgadd 0 15\n"
"veladd 30\n"
"spawnorg 4\n"
"gravity 40\n"
"scalefactor 0.8\n"
"colorindex 0x6f 7\n"
"assoc q2_flechettepuff /*the model*/\n"
"lightradius 150\n"
"lightradiusfade 400\n"
"lightrgb 0.19 0.41 0.75\n"
"lightshadows 1\n"
"sound \"weapons/lashit.wav\" 1 1 0 0\n"
"}\n"
"r_part teq2_bluehyperblaster\n"
"{ //misnamed - just the regular orangey particles without sound/puff\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"count 60\n"
"scale 1\n"
"alpha 1\n"
"die 0.3 0.8\n"
"randomvel 40\n"
"orgadd 0 15\n"
"veladd 30\n"
"spawnorg 4\n"
"gravity 40\n"
"scalefactor 0.8\n"
"colorindex 0xe0 7\n"
"}\n"
"r_part TR_BLASTERTRAIL\n"
"{\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"scale 0.5\n"
"alpha 1\n"
"scalefactor 0.8\n"
"step 5\n"
"spawnorg 1\n"
"randomvel 5\n"
"die 0.3 0.5\n"
"colorindex 0xe0\n"
"lightradius 200\n"
"lightradiusfade 400\n"
"lightrgb 1.0 1.0 0.0\n"
"lightshadows 1\n"
"}\n"

//green version
"r_part TR_BLASTERTRAIL2\n"
"{\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"scale 0.5\n"
"alpha 1\n"
"scalefactor 0.8\n"
"step 5\n"
"spawnorg 1\n"
"randomvel 5\n"
"die 0.3 0.5\n"
"colorindex 0xd0\n"
"lightradius 200\n"
"lightradiusfade 400\n"
"lightrgb 0.0 1.0 0.0\n"
"lightshadows 1\n"
"}\n"


"r_part teq2_bubbletrail\n"
"{\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"scale 0.5\n"
"alpha 1\n"
"scalefactor 0.8\n"
"step 32\n"
"spawnorg 2\n"
"spawnvel 5\n"
"die 1 1.2\n"
"colorindex 4 7\n"
"velbias 0 0 6\n"
"}\n"
"r_part teq2_bubbletrail2\n"
"{\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"scale 0.5\n"
"alpha 1\n"
"scalefactor 0.8\n"
"step 8\n"
"spawnorg 2\n"
"spawnvel 10\n"
"die 1 1.1\n"
"colorindex 4 7\n"
"velbias 0 0 20\n"
"sound \"weapons/lashit.wav\" 1 1 0 0\n"
"}\n"

"r_part teq2_railtrail\n"
"{\n"
//blue spiral
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"scale 0.5\n"
"alpha 1\n"
"scalefactor 0.8\n"
"step 1\n"
"spawnmode spiral 64\n"
"spawnorg 3\n"
"spawnvel 6\n"
"die 1 1.2\n"
"colorindex 116 7\n"

"sound \"weapons/railgf1a.wav\" 1 1 0 0\n"
"}\n"
"r_part +teq2_railtrail\n"
"{\n"
//grey filler
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"scale 0.5\n"
"alpha 1\n"
"scalefactor 0.8\n"
"step 0.75\n"
"spawnorg 3\n"
"spawnvel 3\n"
"die 0.6 0.8\n"
"colorindex 0 15\n"
"}\n"

"r_part teq2_railtrail2\n"
"{ //This is not implemented in vanilla, so we've no idea what it should really look like.\n"
//we just use the blue spiral with no core.
//blue spiral
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"scale 0.5\n"
"alpha 1\n"
"scalefactor 0.8\n"
"step 1\n"
"spawnmode spiral 64\n"
"spawnorg 3\n"
"spawnvel 6\n"
"die 1 1.2\n"
"colorindex 116 7\n"

"sound \"weapons/railgf1a.wav\" 1 1 0 0\n"
"}\n"

//regular explosion particles
"r_part std_explosion_particles\n"
"{\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"count 256\n"
"scale 4\n"
"alpha 0.4\n"
"die 1 0.625\n"
"spawnmode ball\n"
"spawnorg 16\n"
"spawnvel 192\n"
"scalefactor 0.8\n"
"gravity 40\n"
"colorindex 0xe0 7\n"
"}\n"

"r_part teq2_explosion1_big\n"
"{\n"
"lighttime 0.5\n"
"lightradius 350\n"
"lightradiusfade 300\n"
"lightrgb 1.0 0.5 0.4\n"
"lightrgbfade 0.36 0.19 0.19\n"
"sound \"weapons/rocklx1a.wav\" 1 1 0 0\n"
"model \"models/objects/r_explode2/tris.md2\" framestart=0 frames=15 skin=-1 transparent fullbright noshadow\n"
"model \"models/objects/r_explode2/tris.md2\" framestart=15 frames=15 skin=-1 transparent fullbright noshadow\n"
"}\n"
"r_part teq2_explosion1_np\n"
"{\n"
"lighttime 0.5\n"
"lightradius 350\n"
"lightradiusfade 300\n"
"lightrgb 1.0 0.5 0.4\n"
"lightrgbfade 0.36 0.19 0.19\n"
"sound \"weapons/rocklx1a.wav\" 1 1 0 0\n"
"model \"models/objects/r_explode/tris.md2\" framestart=0 frames=15 skin=-1 fullbright noshadow\n"
"model \"models/objects/r_explode/tris.md2\" framestart=15 frames=150 skin=-1 fullbright noshadow\n"
"}\n"
"r_part teq2_explosion1\n"
"{\n"
"assoc teq2_rocket_explosion\n"
"}\n"
"r_part teq2_rocket_explosion\n"
"{\n"
"assoc std_explosion_particles\n"
"lighttime 0.5\n"
"lightradius 350\n"
"lightradiusfade 300\n"
"lightrgb 1.0 0.5 0.4\n"
"lightrgbfade 0.36 0.19 0.19\n"
"sound \"weapons/rocklx1a.wav\" 1 1 0 0\n"
"model \"models/objects/r_explode/tris.md2\" framestart=0 frames=15 skin=-1 fullbright noshadow\n"
"model \"models/objects/r_explode/tris.md2\" framestart=15 frames=15 skin=-1 fullbright noshadow\n"
"}\n"
"r_part teq2_rocket_explosion_water\n"
"{\n"
"assoc std_explosion_particles\n"
"lighttime 0.5\n"
"lightradius 350\n"
"lightradiusfade 300\n"
"lightrgb 1.0 0.5 0.4\n"
"lightrgbfade 0.36 0.19 0.19\n"
"sound \"weapons/xpld_wat.wav\" 1 1 0 0\n"
"model \"models/objects/r_explode/tris.md2\" framestart=0 frames=15 skin=-1 fullbright noshadow\n"
"model \"models/objects/r_explode/tris.md2\" framestart=15 frames=15 skin=-1 fullbright noshadow\n"
"}\n"

"r_part teq2_explosion2\n"
"{\n"
"assoc teq2_grenade_explosion\n"
"}\n"
"r_part teq2_grenade_explosion\n"
"{\n"
"assoc std_explosion_particles\n"
"lighttime 0.5\n"
"lightradius 350\n"
"lightradiusfade 300\n"
"lightrgb 1.0 0.5 0.4\n"
"lightrgbfade 0.36 0.19 0.19\n"
"sound \"weapons/grenlx1a.wav\" 1 1 0 0\n"
"model \"models/objects/r_explode/tris.md2\" framestart=30 frames=19 skin=-1 fullbright noshadow\n"
"}\n"
"r_part teq2_grenade_explosion_water\n"
"{\n"
"assoc std_explosion_particles\n"
"lighttime 0.5\n"
"lightradius 350\n"
"lightradiusfade 300\n"
"lightrgb 1.0 0.5 0.4\n"
"lightrgbfade 0.36 0.19 0.19\n"
"sound \"weapons/xpld_wat.wav\" 1 1 0 0\n"
"model \"models/objects/r_explode/tris.md2\" framestart=30 frames=19 skin=-1 fullbright noshadow\n"
"}\n"

"r_part teq2_plain_explosion\n"
"{ //basically like regular explosions, but with no particle effect.\n"
"lighttime 0.5\n"
"lightradius 350\n"
"lightradiusfade 300\n"
"lightrgb 1.0 0.5 0.4\n"
"lightrgbfade 0.36 0.19 0.19\n"
"sound \"weapons/rocklx1a.wav\" 1 1 0 0\n"
"model \"models/objects/r_explode/tris.md2\" framestart=0 frames=15 skin=-1 fullbright noshadow\n"
"model \"models/objects/r_explode/tris.md2\" framestart=15 frames=15 skin=-1 fullbright noshadow\n"
"}\n"
"r_part teq2_plasma_explosion\n"
"{ //not actually any different\n"
"assoc teq2_explosion1\n"
"}\n"

"r_part teq2_tracker_explosion\n"
"{\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"count 128\n"
"scale 1\n"
"alpha 1\n"
"die 1.5 2\n"
"randomvel 128\n"
"orgadd 0 31\n"
"spawnorg 16\n"
"gravity 40\n"
"scalefactor 0.8\n"
"colorindex 0 1\n"
"lighttime 0.1 //this is kinda too short.\n"
"lightradius 150\n"
"lightradiusfade 300\n"
"lightrgb -1.0 -1.0 -1.0\n"
"sound \"weapons/disrupthit.wav\" 1 1 0 0\n"
"}\n"
"r_part teq2_teleport_effect\n"
"{ //FIXME\n"
"assoc placeholder\n"
"}\n"
"r_part teq2_dball_goal\n"
"{ //FIXME\n"
"assoc placeholder\n"
"}\n"
"r_part teq2_widowsplash\n"
"{ //FIXME\n"
"assoc placeholder\n"
"}\n"
"r_part teq2_debugtrail\n"
"{ //FIXME\n"
"assoc placeholder\n"
"}\n"
"r_part teq2_chainfist_smoke\n"
"{\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"count 20\n"
"scale 1\n"
"alpha 1\n"
"die 0.5 0.8\n"
"spawnorg 2\n"
"randomvel 6.66 20\n"
"gravity 40\n"
"scalefactor 0.8\n"
"colorindex 0 7\n"
"}\n"

"r_part teq2_flashlight\n"
"{ //JUST a light.\n"
"lightradius 400\n"
"lighttime 0.15\n"
"lightrgb 1.0 1.0 1.0\n"
"lightshadows 1\n"
"}\n"

"r_part trq2_rocket\n"
"{\n"
"texture \"particles/quake\"\n"
"step 8\n"
"scale 4\n"
"die 1.0 1.2\n"
"colorindex 0xdc 3\n"
"spawnorg 1\n"
"spawnvel 20\n"
"gravity 40\n"
"assoc trq2_grenade\n"
"}\n"
"r_part trq2_grenade\n"
"{\n"
"texture \"particles/quake\"\n"
"step 3\n"
"scale 4\n"
"die 1.0 1.2\n"
"colorindex 0x4 7\n"
"spawnorg 1\n"
"spawnvel 5\n"
"gravity -20\n"
"}\n"
"r_part trq2_gib\n"
"{\n"
"texture \"particles/quake\"\n"
"step 3\n"
"scale 4\n"
"die 1.0 1.4\n"
"colorindex 0xe8 7\n"
"spawnorg 1\n"
"spawnvel 5\n"
"gravity -20\n"
"}\n"
"r_part trq2_greengib\n"
"{\n"
"texture \"particles/quake\"\n"
"step 3\n"
"scale 4\n"
"die 1.0 1.4\n"
"colorindex 0xdb 7\n"
"spawnorg 1\n"
"spawnvel 5\n"
"gravity -20\n"
"}\n"

"r_part TR_PLASMA\n"
"{\n"
"assoc TR_BLASTERTRAIL\n"
"}\n"

"r_part tr_ionripper\n"
"{\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"step 3\n"
"scale 1\n"
"alpha 0.5\n"
"die 0.15 0.25\n"
"colorindex 0xe4 3\n"
"spawnmode tracer\n"
"spawnorg 0\n"
"spawnvel 10\n"

"lighttime 0\n"
"lightradius 100\n"
"lightrgb 1.0 0.5 0.5\n"
"}\n"

"r_part tr_tracker\n"
"{ //FIXME: doesn't match vanilla. works well enough though I guess.\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"step 3\n"
"scale 1\n"
"alpha 1\n"
"die 0.5\n"
"spawnmode spiral 8.34\n"
"spawnorg 1\n"
"spawnvel 32\n"
"veladd 32\n"
"scalefactor 0\n"
"colorindex 0\n"
"lighttime 0\n"
"lightradius 200\n"
"lightrgb -1.0 -1.0 -1.0\n"
"}\n"

"r_part tr_tagtrail\n"
"{\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"step 5\n"
"scale 1\n"
"alpha 1\n"
"die 1.0 0.8\n"
"spawnorg 16\n"
"spawnvel 5\n"
"scalefactor 0\n"
"colorindex 220\n"
"lighttime 0\n"
"lightradius 225\n"
"lightrgb 1.0 1.0 0.0\n"
"}\n"

"r_part tr_trap\n"
"{ //FIXME: add particles\n"
"lighttime 0\n"
"lightradius 100 200\n"
"lightrgb 1.0 0.8 0.25\n"
"assoc placeholder\n"
"}\n"

//flags do NOT use coronas, because it obscures the holding player's skin colour
"r_part tr_flag1\n"
"{\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"step 5\n"
"scale 1\n"
"alpha 1\n"
"die 1.0 0.8\n"
"spawnorg 16\n"
"spawnvel 5\n"
"veladd 32\n"
"scalefactor 0\n"
"colorindex 0xf2\n"
"lighttime 0\n"
"lightcorona 0.0 0.0\n"
"lightradius 225\n"
"lightrgb 1.0 0.25 0.25\n"
"}\n"
"r_part tr_flag2\n"
"{\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"step 5\n"
"scale 1\n"
"alpha 1\n"
"die 1.0 0.8\n"
"spawnorg 16\n"
"spawnvel 5\n"
"veladd 32\n"
"scalefactor 0\n"
"colorindex 0x73\n"
"lighttime 0\n"
"lightcorona 0.0 0.0\n"
"lightradius 225\n"
"lightrgb 0.25 0.25 1.0\n"
"}\n"

"r_part EF_FLIES\n"
"{\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"count 1\n"
"scale 0.5\n"
"alpha 1\n"
"die 0\n"
"spawnmode syncfield 16 64\n"
"spawnorg 0\n"
"scalefactor 0\n"
"colorindex 0\n"
"}\n"

"r_part EF_BFGPARTICLES\n"
"{\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"count 0 0 162\n"
"scale 0.5\n"
"alpha 1\n"
"die 0\n"
"spawnmode syncfield 16 64\n"
"spawnorg 0\n"
"scalefactor 0\n"
"colorindex 0xd0 7\n"
"}\n"

"r_part ev_item_respawn\n"
"{\n"
"sound \"items/respawn1.wav\" 1 2 0 0 1\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"count 64\n"
"scale 1\n"
"alpha 1\n"
"die 1.3 1\n"
"randomvel 8\n"
"orgadd 0 31\n"
"spawnorg 8\n"
"gravity 8\n"
"scalefactor 0.8\n"
"colorindex 0xd4 3\n"
"}\n"
"r_part ev_player_teleport\n"
"{\n"
"sound \"misc/tele1.wav\" 1 2 0 0 1\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"count 96\n"
"scale 1\n"
"alpha 1\n"
"die 0.3 0.4\n"
"randomvel 8\n"
"orgadd 0 31\n"
"spawnmode telebox 0 4\n"
"spawnorg 32 48\n"
"gravity 40\n"
"scalefactor 0.8\n"
"colorindex 0x07 7\n"
"}\n"
"r_part ev_footstep\n"
"{\n"
"sound \"player/step1.wav\" 1 1 0 0 1\n"
"sound \"player/step2.wav\" 1 1 0 0 1\n"
"sound \"player/step3.wav\" 1 1 0 0 1\n"
"sound \"player/step4.wav\" 1 1 0 0 1\n"
"}\n"

//central explosion
"r_part teq2_bfg_bigexplosion\n"
"{\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"count 256\n"
"scale 1\n"
"alpha 1\n"
"die 0.625 1\n"
"spawnmode ball\n"
"spawnorg 16\n"
"spawnvel 192\n"
"scalefactor 0.8\n"
"gravity 40\n"
"colorindex 0xd0 7\n"
"}\n"

//splashed onto an entity
"r_part teq2_bfg_explosion\n"
"{\n"
"lighttime 0.5\n"
"lightradius 350\n"
"lightradiusfade 300\n"
"lightrgb 0.0 1.0 0.0\n"
"lightrgbfade 0.0 0.0 0.0\n"
"sound \"weapons/xpld_wat.wav\" 1 1 0 0\n"
"model \"sprites/s_bfg2.sp2\" framestart=0 frameend=4 alpha=0.3 transparent fullbright noshadow\n"
"}\n"


//31qu cylinder, 8-98 high
//should look like its sucked up into some thingie above
"r_part TEQ2_BOSSTPORT\n"
"{\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"count 800\n"
"scale 1\n"
"alpha 1\n"
"die 0.5 0.8\n"
"orgadd 8 -98\n"
"veladd 100 200\n"
"spawnmode circle\n"
"spawnorg 48 0\n"
"spawnvel -50 30\n"
"randomvel 32 31\n"
"gravity -800\n"
"rgbf 1 1 1\n"
"scalefactor 0.8\n"
"sound \"misc/bigtele.wav\" 1 0 0 0 1\n"
"}\n"

"r_part teq2_heatbeam_sparks\n"
"{ //FIXME\n"
"assoc placeholder\n"
"}\n"
"r_part teq2_heatbeam_steam\n"
"{ //FIXME\n"
"assoc placeholder\n"
"}\n"

//r_part teq2_heatbeam_steam
//{
//	count 20
//	colorindex 0xe0 7
////	magnitude 60
//	texture "classicparticle"
//	tcoords 0 0 16 16 32
//	scale 1
//	alpha 1
//	die 0.3 0.8
//	randomvel 20 magnitude/3
//	veladd magnitude
//	orgadd magnitude/10
//	spawnorg 4
//	gravity -400
//	scalefactor 0.8
//}


//this is apparently just a trail effect (palette index specified by netcode)
"r_part teq2_forcewall\n"
"{\n"
"texture \"classicparticle\"\n"
"tcoords 0 0 16 16 32\n"
"scale 0.5\n"
"alpha 1\n"
"scalefactor 0.8\n"
"step 5\n"
"spawnorg 3\n"
"randomvel 5\n"
"die 3 3.5\n"
"}\n"
;
#endif



//////////////////////////////////////////////////////


char *particle_set_tsshaft =
// TE_LIGHTNING2 replacement, (c) 2005 TimeServ
// If you steal this GPLed code you will be violating several international laws
// as well as several laws of physics.
"r_part tlightningflash\n"
"{\n"
"spawntime 0.1\n"
"spawnchance 0.1\n"
"die 0.25\n"
"type beam\n"
"alpha 1\n"
"step 80\n"
"scale 14\n"
"scaledelta -52\n"
"rgb 255 255 255\n"
"spawnmode distball\n"
"spawnorg 16\n"
"spawnparam1 0.5\n"
"averageout\n"
"nospreadfirst\n"
"blend add\n"
"}\n"

"r_part tlightningglow\n"
"{\n"
"step 50\n"
"scale 35\n"
"scalefactor 1\n"
"alpha 1\n"
"die 0\n"
"rgb 1 1 8\n"
"blend add\n"
"assoc tlightningflash\n"
"}\n"

"r_part tlightningfade\n"
"{\n"
"spawntime 0.05\n"
"die 0.2\n"
"type beam\n"
"alpha 2\n"
"step 96\n"
"scale 1.5\n"
"rgb 16 16 64\n"
"spawnmode distball\n"
"spawnorg 9\n"
"spawnparam1 0.9\n"
"blend add\n"
"averageout\n"
"nospreadfirst\n"
"assoc tlightningglow\n"
"}\n"

"r_part te_lightning2\n"
"{\n"
"die 0\n"
"type beam\n"
"alpha 2\n"
"step 96\n"
"scale 4\n"
"rgb 196 196 255\n"
"spawnmode distball\n"
"spawnorg 9\n"
"spawnparam1 0.9\n"
"blend add\n"
"averageout\n"
"nospreadfirst\n"
"assoc tlightningfade\n"
"}\n"

"r_part lbolttrail\n"
"{\n"
"die 0.5\n"
"type beam\n"
"alpha 2\n"
"step 32\n"
"scale 1\n"
"rgb 196 196 255\n"
"rgbdelta -512 -512 -128\n"
"spawnmode distball\n"
"spawnorg 5\n"
"spawnvel 4\n"
"spawnparam1 0.5\n"
"blend add\n"
"}\n"

"r_part lbolt\n"
"{\n"
"die 0.5\n"
"count 1\n"
"spawnmode circle\n"
"spawnvel 2000\n"
"spawnorg 1\n"
"emit lbolttrail\n"
"emitinterval -1\n"
"}\n"

"r_part lemit\n"
"{\n"
"die 0.1\n"
"count 1\n"
"spawnchance 1\n"
"emit lbolt\n"
"emitinterval 100\n"
"spawnchance 0.1\n"
"cliptype lemit\n"
"clipcount 1\n"
"clipbounce 0\n"
"}\n"

"r_part lflash\n"
"{\n"
"die 0.1\n"
"texture \"particles/lflash\"\n"
"count 1\n"
"alpha 1\n"
"scale 100\n"
"scalefactor 1\n"
"scaledelta -500\n"
"rgb 255 255 255\n"
"blend add\n"
"assoc lemit\n"
"}\n"

"r_part te_lightning2_end\n"
"{\n"
"die 0.3\n"
"alpha 1\n"
"count 8\n"
"scale 2\n"
"rgb 128 128 255\n"
"rgbrand 63 63 0\n"
"rgbrandsync 1\n"
"spawnvel 100\n"
"spawnorg 5\n"
"blend add\n"
"assoc lflash\n"
"}\n"
;
#endif
