Effect Code:
Code:
		
VECTOR particles_right;
vec_for_vertex(particles_right, ball, 1753);
		
if (key_cuu) {
			    effect(effect_smokes,15,particles_right,normal);
			
}



Function code:
Code:
//// Particle movement handling ///////
function vec_randomize (var* vec, var range)
{
	vec[0] = random(0.5) - 0.25;
	vec[1] = random(0.5) - 0.25;
	vec[2] = random(1) - 0.25;
	vec_normalize(vec,random(range));
}

//// particle alpha handling ////////
function part_alphafade(PARTICLE *p)
{
	p.alpha -= 20*time_step;
	if (p.alpha <= 0) p.lifespan = 0;
}

///// particle creating /////////
function effect_smokes(PARTICLE *p)
{
	p.blue = 46.191;
	p.green = 86.840;
	p.red = 253.129;
	var temp[3]; 
	vec_randomize(temp,3);
	vec_inverse(temp);
	vec_rotate(temp,ball.pan);
	vec_add (p.vel_x, temp);
	p.size = 2.770 ;
	p.gravity = 0 ;
	p.alpha = 50 + random(15);
	p.bmap = particle_map;
	p.flags |= (MOVE | BRIGHT | BEAM | TRANSLUCENT);
	p.event = part_alphafade; // change to a shorter, faster function
}