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);
//place vehicle on surface
//(taking into account vehicle min_z)
vec_set(Temp_Vec,hit.x);
vec_sub(Temp_Vec,Planet.x);
vec_normalize(Temp_Vec,vec_length(Temp_Vec.x)-Vehicle.min_z);
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);
}