function createParticles() {
snow(4000,4000,2000,5000);
}
function infinity(PARTICLE* p)
{
vec_set(p.x,vector(cycle(p.x,camera.x-g_snowbox.x,camera.x+g_snowbox.x),
cycle(p.y,camera.y-g_snowbox.y,camera.y+g_snowbox.y),
cycle(p.z,camera.z-g_snowbox.z,camera.z+g_snowbox.z)));
p.lifespan=1; // live forever
}
function effect_snowflake(PARTICLE* p)
{
vec_set(p.x,vector(camera.x+random(g_snowbox.x*2)-g_snowbox.x,
camera.y+random(g_snowbox.y*2)-g_snowbox.y,
camera.z+random(g_snowbox.z*2)-g_snowbox.z));
vec_set(p.vel_z,vector(-(random(4)+4), random(2)-1, random(2)-1));
p.bmap=particle_map;
p.size=random(1)+2;
p.alpha=random(30)+10;
//p.move=on;
}
function snow(cx,cy,cz,numparticles)
{
g_snowbox.x=cx/2;
g_snowbox.y=cy/2;
g_snowbox.z=cz/2;
effect(effect_snowflake,numparticles,nullvector,nullvector);
}