this code is a fast to implement code to make a freeflight camera
It works better than the "0-key" freeflight of the engine.

Just insert the code, and start "tools_camera_freeflight1();"


Code:
  
//simple freeflight without collision detection
function tools_camera_freeflight1()
{

fps_max=80; //limititing the framerate to overcome some calculation problems

var tools_movespeed=20; //how fast to move
var tools_movecam[3];
var tools_cam_turnspeed=20;


while(1)
{

//turn the camera
camera.pan-=mouse_force.x*tools_cam_turnspeed*time;
camera.tilt+=mouse_force.y*tools_cam_turnspeed*time;
camera.tilt=max(-90,min(camera.tilt,90));


vec_set(tools_movecam.x,nullvector); //reset movement vector

//get wasd or cursor movment
if(key_w||key_cuu){tools_movecam.x=tools_movespeed*time;}
if(key_s||key_cud){tools_movecam.x=-tools_movespeed*time;}
if(key_a||key_cul){tools_movecam.y=tools_movespeed*time;}
if(key_d||key_cur){tools_movecam.y=-tools_movespeed*time;}

//rotate by camera heading
vec_rotate(tools_movecam,camera.pan);

//move the camera
vec_add(camera.x,tools_movecam.x);


wait(1);
}
}




Edit: I have inserted an FPS_Max and a timed input of mouse_force
to adjust to framerate dependencies