i can't use void in front of the functions. I get a syntax error. when i use the code that should work the engine tells me that i have an invalid argument in 'fire'

i don't know how to get it to work like it should.


this is part of the candle action...

Code:
action candle()
{
	candle_cnt += 1;  // used for unique id. already set to 99 in var_wdl
	//VECTOR tempz[3];
	
	if(candle_cnt == 1)
	{
		candle_ent1 = me;
		my.skill30 = candle_cnt; // unique id # + 1 = 100
		
	}
	if(candle_cnt == 2)
	{
		candle_ent2 = me;
		my.skill30 = candle_cnt; // unique id #
		
	}
	if(candle_cnt == 3)


below is the fire code...


Code:
action fire() 
{
	cfire_cnt += 1; //my counter
		//PARTICLE* p;
	if(cfire_cnt == 1)
	{
		cfire_ent1 = me;
		my.skill30 = cfire_cnt;
		while(!candle_ent1){ wait(1); }
		my.z = candle_ent1.z + 16;
		//my.passable = on;
		set(my, PASSABLE);
		temp.x=my.x;
		temp.y=my.y;
		temp.z=my.z;
		effect(fire_effect,20*time_step,temp,temp);
		//my.event = fire_do(my);
		//fire_do();
	}
	/*if(cfire_cnt == 2)
	{
		cfire_ent2 = me;
		my.skill30 = cfire_cnt;
		my.event = fire_do;
	}
	if(cfire_cnt == 3)
	{
		cfire_ent3 = me;
		my.skill30 = cfire_cnt;
		my.event = fire_do;
	}


here is the particle part....

Code:

//for candles
function fire_effect(PARTICLE *p)
{
	
	randomize();
	p.x+=random (3*(sin(total_ticks*20) * cos(total_ticks*5)));

	p.y+=random (3*(sin(total_ticks*20) * sin(total_ticks*5)));

	//my.lightrange = 2;
	p.size=3;
	p.vel_x=0;
	p.vel_y=0;
	p.vel_z=2+random(2);
	p.flags |= BRIGHT|MOVE;  //my.move=on;
	p.lifespan=2;
	p.red=255;
	p.green=255;
	p.blue=0;
	set(me,TRANSLUCENT);  //my.transparent=on;
	//p.event=fire_property;
}

function fire_property()
{
	my.red-=5*time_step;
	my.green-=15*time_step;
}

function fire_do(PARTICLE* p)  //function fire_do(ENTITY* fcnt)
{
	set(me, PASSABLE);
	//var whatev[];
	while(1) 
	{
		//if(my.skill30 == 1)
		//{
			while(!candle_ent1){ wait(1); }
			p.z = candle_ent1.z + 16;
			set(my, PASSABLE);
			temp.x=p.x;
			temp.y=p.y;
			temp.z=p.z +36;
			effect(fire_effect,20*time_step,temp,temp);//fire_start(p);
		//}
	




a8 commercial