this is all i can really show atm.

Code:
function Switch_Views()
{
  if(camera_ViewMode == 1) // 1st Person
  {
	vec_for_vertex(eyespot,my,69);
	camera.genius = my;
	camera.arc = 80;
	vec_set(camera.x,vector(my.x,my.y,my.z+30));
	my.pan = camera.pan;
	camera.roll = my.roll;
	if(key_o){
camera.tilt += 50 * mouse_force.y * time_step;
camera.pan -= 50 * mouse_force.x * time_step;
}
else
	camera.pan -= 10 * mouse_force.x * time_step;
	camera.tilt += 10 * mouse_force.y * time_step;
	camera.tilt = clamp(camera.tilt,-90,90);
    if(key_e)
   {camera.roll = 30;
   camera.y = 20;
   } 
   if(key_q)
   {camera.roll = -30;
   camera.y = -20;
  }
  }
  else // 3rd Person
 {
 my.pan = camera.pan;
camera.pan -= mouse_force.x * 12 * time_step;
camera.tilt += mouse_force.y * 8 * time_step;
camera.tilt = clamp(camera.tilt,-30,10);
temp = fcos(camera.tilt,-camera_distance);
vec_set(camera.x,vector(my.x + fcos(camera.pan,temp),my.y +
fsin(camera.pan,temp),my.z + 20 + fsin(camera.tilt,-camera_distance)));
vec_diff(temp.x,camera.x,my.x);
vec_normalize(temp.x,16);
vec_normalize(temp.z,50);
vec_set(camera.x,target.x);
vec_add(camera.x,temp.x);
result = c_trace(my.x,temp.x,vector(temp.x,temp.y,temp.z-10),IGNORE_PASSABLE|IGNORE_MODELS);
if (result > 0) {
vec_diff(temp.x,my.x,target.x);
vec_normalize(temp.x,16);
vec_set(camera.x,target.x);
vec_add(camera.x,temp.x);
}
}
}



first person is fine, 3rd person is messed up. seems i over complicated it tongue

Last edited by Doc_Savage; 01/26/11 09:51.

Do not concern yourself with my race, personality or origin. find my record in the pits, and then make your wager.