Code:
BMAP* fire_tga = "fire.tga";

function flame_2(PARTICLE* p)
{
	p->skill_a += time_step * time_step;
	p->alpha = 100 - abs(p->skill_a);
	p->alpha -= 2 * time_step;
	p->size -= 0.3 * time_step;
}

void flame_1(PARTICLE* p)
{
	p->x += random(16) - 8;
	p->y += random(16) - 8;
	p->z += random(16) - 8;
	p->bmap = fire_tga;
	p->size = random(20) + 20;
	p->lifespan = 32;
	p->alpha = 100;
	p->flags |= BRIGHT | MOVE;
	p->skill_a = -100;
	p->gravity = -0.2;
	p->event = flame_2;
}

action fire() //LITE C
{
	my->flags |= PASSABLE | INVISIBLE;
	while(1)
	{
		effect(flame_1,1,my.x,nullvector);
		wait(1);
	}
}


I converted it to Lite-C. I did not fix the bugs in it.


Always learn from history, to be sure you make the same mistakes again...