#define FreeCamActive FLAG1
ENTITY* player;
VECTOR* temp2;
...
function free_cam()
{
vec_set(my.x, player.x);
set(my,INVISIBLE);
set(my,FreeCamActive);
var fly_speed = 10;
var fly_turn_speed = 10;
vec_set (camera.pan, my.pan);
while(my)
{
if (key_shift == 10) {
fly_speed = 10;
}
else {
fly_speed = 10;
}
vec_set (temp2, nullvector);
temp2.x = (mouse_left - mouse_right) * fly_speed * time_step;
camera.pan -= fly_turn_speed * mouse_force.x * time_step;
camera.pan = camera.pan%360;
camera.tilt += fly_turn_speed * mouse_force.y * time_step;
camera.tilt = clamp(camera.tilt, -90, 90);
camera.roll = 0;
vec_rotate (temp2, camera.pan);
vec_add (camera.x, temp2);
wait(1);
}
}
action a_Player()
{
reset(my,FreeCamActive);
player = me;
while(1)
{
wait(1);
if((key_pressed(88)) && (!is(my,FreeCamActive))) //F12 pressed
{
free_cam();
}
}
}