debugging function:
Code:
void align_to_surface(ENTITY* Planet, ENTITY* Vehicle)
{
        VECTOR start_trace;
	VECTOR Temp_Vec;
	
	
	//get the surface position
        vec_set(start_trace,Vehicle.x);
	vec_sub(start_trace,Planet.x);
	      
	vec_normalize(start_trace,vec_length(start_trace)*2);
	vec_add(start_trace,Planet.x);
	me=Vehicle;
	c_trace(start_trace, Planet.x,IGNORE_ME);
	
	      //DEBUGGING
	      draw_line3d(start_trace,NULL,100);
	      draw_line3d(start_trace,COLOR_RED,100);
	      draw_line3d(Planet.x,COLOR_RED,100);
	      draw_point3d(hit.x,COLOR_RED,100,16);
	
	//place vehicle on surface 
	//(taking into account vehicle min_z)
	vec_set(Temp_Vec,hit.x);
	vec_sub(Temp_Vec,Planet.x);

	      //DEBUGGING
	      DEBUG_VAR(vec_length(Temp_Vec), 100);

	vec_normalize(Temp_Vec,vec_length(Temp_Vec.x)-Vehicle.min_z);

	      //DEBUGGING
	      DEBUG_VAR(vec_length(Temp_Vec), 120);

	vec_add(Temp_Vec,Planet.x);
	vec_set(Vehicle.x,Temp_Vec);
	
	//rotate towards planet core
	vec_sub(Temp_Vec,Planet.x);
	alignToVec(Vehicle.pan, Temp_Vec, vector(0, 0, 1), 1); 
}



RESULT:
http://www.youtube.com/watch?v=r3j5MKgXWR8


"The more you know, the more you realize how little you know..."

I <3 HORUS
http://www.opserver.de/ubb7/ubbthreads.php?ubb=showflat&Number=401929&page=1