DEFINE max_alpha, SKILL1;
var cam_fog = 1800;
var wind[3];
function set_alpha
{
my.alpha=0;
wait(1);
my.max_alpha = INT(random(25));
if(my.max_alpha < 10){ my.max_alpha = 15; }
while(my.alpha < my.max_alpha)
{
my.alpha += 0.5*time;
wait(1);
}
my.alpha = my.max_alpha;
}
function fog_wind
{
while(1)
{
wind.x = (random(1) - .5)*1.5;//*.4;
wind.y = (random(1) - .5)*1.5;//*.4;
wind.z = random(1)*.4;//*.1;
sleep(5+random(3));
}
}
function move_fog
{
var roll_speed;
var fade_distance = 500;
roll_speed = random(2)-1;
while(me)
{
my.roll += roll_speed*time; //roll this sprite
my.x += random(20)*wind.x*time;
my.y += random(20)*wind.y*time;
if(vec_dist(my.x, camera.x) < fade_distance)
{
my.alpha = min(my.max_alpha, vec_dist(camera.x, my.x) *my.max_alpha / fade_distance);
}
wait(1);
}
}
function autofog
{
my.scale_x = 2.8;
my.scale_y = my.scale_x;
my.scale_z = my.scale_x;
var cam_pos[3];
var randint;
my.passable = on;
my.transparent = on;
my.bright = on;
//fade in slowly
set_alpha();
//set orientation style
my.oriented = off;
my.facing = on;
move_fog();
while(me)
{
if(my.alpha < my.max_alpha) { my.alpha += time; }
// my.invisible = off;
vec_set(cam_pos, camera.x);
cam_pos.z = my.z;
if(vec_dist(my.x, cam_pos) >= cam_fog)
{
// my.invisible = on;
while(my.alpha > 0) { my.alpha -= time; wait(1); }
my.x = cycle(my.x, camera.x - cam_fog, camera.x + cam_fog);
my.y = cycle(my.y, camera.y - cam_fog, camera.y + cam_fog);
my.z = camera.z - random(100) + random (200);
}
wait(5);
}
}
function generate_fog
{
var randint;
var fogcount=0;
var pos_place[3];
fog_wind();
while(fogcount < 250)
{
fogcount+=1;
pos_place.x = (camera.x - random(2500)) + (camera.x + random (2500));
pos_place.y = (camera.y - random(2500)) + (camera.y + random (2500));
pos_place.z = camera.z - random(100) + random (200);
randint = INT(Random(2));
if(randint == 0){ ent_create("dust1.tga", pos_place, autofog); }
if(randint == 1){ ent_create("dust2.tga", pos_place, autofog); }
// wait(1);
}
}