quakespasm/weather.cfg
2016-10-27 19:52:48 -06:00

116 lines
3.3 KiB
INI
Executable file

//lame example weather particles by Spike
//move to id1/particles/weather.cfg
//
//to use from qc, r_particledesc "weather classic" or call particleeffecnum("weather.te_rain") so the engine knows which config to use, then use the particle[rain|snow] builtins as normal.
//without qc changes option 1) use a texture called skyrain or skysnow, in addition to the r_particledesc thing so that this config is actually used (this is more for people to add stuff to existing maps).
//without qc changes option 2) add a worldspawn field called "_texpart_TEXTURENAME" with value "weather.tex_skysnow" or "weather.tex_skyrain"
//without qc changes option 3) an equivelent console command: r_partredirect tex_TEXTURENAME "weather.tex_skysnow"
//note that without qc, you need to restart the map for it to take effect.
//on the other hand, if you wanted to emit particles from models, use r_effect (which can optionally hide those models too).
//to override trails defined by model flags, you can use the r_trail command.
//weather effects that leave decals are probably overkill
//one option is to spawn a particle from qc that emits other particles that leave trails. emitting such trail emitting emitters from surfaces is definitely overkill.
//generic rain for the qc builtin
//create another called te_rain_12 or whatever for alternative versions of rain (going by the specified palette)
r_part te_rain
{
texture ball
scalefactor 1
count 1
alpha 0.4
rgb 255 255 255
die 2
veladd 2
scale 2
stretchfactor -40
type texturedspark
cliptype weather.rainsplash
clipbounce 100
clipcount 5
}
//internal splash effect for rain
r_part weather.rainsplash
{
randomvel 50 50
count 1
texture ball
scalefactor 1
alpha 0.1
rgb 255 255 255
die 0.4
scale 50
stretchfactor -2.5
veladd 1
scale 1
type texturedspark
gravity 800
}
//generic snow for the qc builtin
//naming itself causes it to bounce
r_part te_snow
{
texture ball
scalefactor 1
count 1
alpha 1
rgb 255 255 255
die 2
veladd 1
scale 5
flurry 40
gravity 400
friction 5
//settle
clipbounce 0
}
//rain effect to be emitted from textures
//the base direction points away from the surface, so veladd is the speed to move away from said surface.
//this isn't very useful for rain, because that vector is quite often horizontal (where the sky surrounds the player)
//that said, sitting in a box of such rain surfaces gives an interesting laser-field effect...
//anyway, that's why we can't reuse the qc effects, because qc gives a velocity that is actually meant to be usable.
r_part tex_skyrain
{
texture ball
scalefactor 1
rainfrequency 10
count 1
alpha 0.1
rgb 255 255 255
die 2
veladd 0
velbias -200 -200 -2000 //move sideways slightly in the same direction as the sky
scale 1
stretchfactor -40
type texturedspark
cliptype weather.rainsplash
clipbounce 100
clipcount 5
}
//snow from sky surfaces is often within a box
//this means we don't want the snow to ever settle.
//we also have no volume, so make the snow fall a little further.
r_part tex_skysnow
{
texture ball
scalefactor 1
rainfrequency 2
count 1
alpha 1
rgb 255 255 255
die 8
veladd 0
velbias 0 0 -100
scale 5
flurry 40
gravity 400
friction 5
cliptype tex_skysnow
clipbounce 0
}