Code:
#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();
		}
	}
}


EDIT: now I've got only this error remaining:

can not convert 'pointer' to 'struct entity'

player = me;

Last edited by n00bie; 06/18/08 13:17.