#include <acknex.h>
#include <default.c>
SOUND* Explosion_wav = "Explosion.wav";
BMAP* Fire_tga = "Fire.tga";
function VecRandomize(var *vec, var range);
function FadeParticle(PARTICLE *p);
function Fire(PARTICLE *p);
function Explosion();
VECTOR ParticlePos;
/* Main Function
---------------------------------*/
function main()
{
mouse_mode = 2;
level_load("Explosao.wmb");
wait(2);
while(1)
{
on_mouse_left = Explosion;
vec_set(mouse_pos, mouse_cursor);
vec_set(ParticlePos, mouse_pos);
wait(1);
}
}
function Explosion()
{
ParticlePos.z = 200;
snd_play(Explosion_wav, 100, 1);
vec_for_screen(ParticlePos, camera);
effect(Fire, 1000, ParticlePos, normal);
}
/* Particle Generator
-------------------------------*/
function Fire(PARTICLE *p)
{
var temp[3];
VecRandomize(temp, 10);
vec_add(p.vel_x, temp);
p.alpha = 25 + random(25);
p.bmap = Fire_tga;
p.flags |= (BRIGHT | MOVE);
p.event = FadeParticle;
}
/* Dist and Direction of particle
---------------------------------------------------------*/
function VecRandomize(var *vec, var range)
{
vec[0] = random(1) - 0.5;
vec[1] = random(1) - 0.5;
vec[2] = random(1) - 0.5;
vec_normalize(vec, random(range));
}
/* Particle life
-------------------------------*/
function FadeParticle(PARTICLE *p)
{
p.alpha -= 2 * time_step;
if(p.alpha <= 0)p.lifespan = 0;
}