ok.. any idea why the camera is not facing the ball?

Click to reveal.. (main.c)

Code:
//================================================================================================================================//
//                                                                                                                                //
// • Game_Main                                                                                                                    //
//                                                                                                                                //
//================================================================================================================================//
// Das Main Script regelt alle Startaktionen/Eingebundenen Scripts und Debugging Aktionen des Spiels                              //
//================================================================================================================================//
//================================================================================================================================//

//================================================================================================================================//
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//                                                                                                                                //
// •• Includings                                                                                                                  //
//                                                                                                                                //
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#define PRAGMA_PATH "Models"
#define PRAGMA_PATH "Grafik"
#define PRAGMA_PATH "Levels"


#include "acknex.h"
#include "default.c"
#include "includes.c"

//================================================================================================================================//
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//                                                                                                                                //
// •• FONTS                                                                                                                       //
//                                                                                                                                //
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
FONT* arial = "Arial#20";

//================================================================================================================================//
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//                                                                                                                                //
// •• Panels und Texte                                                                                                            //
//                                                                                                                                //
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
PANEL* debug =
{
	layer = 999;
	digits(10,10,"TILT ANGLE:",arial,1,NULL);
	digits(100,10,4,arial,1,player.tilt);
	digits(150,10,4,arial,1,camera.tilt);
	digits(100,30,4,arial,1,player.skill1);
	flags = SHOW;
}


//================================================================================================================================//
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//                                                                                                                                //
// •• Funktionen                                                                                                                  //
//                                                                                                                                //
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function camera_handling()
{
	VECTOR tmpV2, pos_off, ang_off;	//working space
	vec_set(pos_off, vector(-200,0,25));			//TWEAK :: distance of camera from ball.
	vec_set(ang_off, vector(90,-15,0));			//TWEAK :: angle of camera, so it looks OVER ball
	var	smoothness = 0.2;						//TWEAK :: smaller is smoother but slower (camera lags behind a bit)
	ENTITY* cam_det = ent_create(0,0,0);	//used for camera-collision-detection only.
	while(1)
	{
		if(player)
		{
			//position camera
			vec_set(tmpV2, pos_off);
			vec_rotate(tmpV2, player.pan);
			vec_add(tmpV2, player.x);
			vec_sub(tmpV2, camera.x);
			vec_scale(tmpV2, smoothness * time_step);
			c_move(cam_det, NULL, tmpV2, IGNORE_YOU|GLIDE);
			vec_set(camera.x, cam_det.x);	
			//rotate camera toward Player
			vec_set(tmpV2, player.x); 	vec_sub(tmpV2, camera.x);	
  			vec_to_angle(camera.pan, tmpV2);
			if(tmpV2.x<0)	{  camera.pan -= 180;	camera.tilt = 90-(camera.tilt-90);  }
  			vec_add(camera.pan, ang_off);
		}
		proc_mode = PROC_LATE;
		wait(1);
	}
	ent_remove(cam_det);
}


//================================================================================================================================//
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//                                                                                                                                //
// •• Aktionen                                                                                                                    //
//                                                                                                                                //
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
action plate()
{
	set(my,FAT);
	wait(1);
	c_setminmax(my);
	vec_set(my.min_x, vector(my.min_x+1, my.min_y+1, my.min_z+1));
	vec_set(my.max_x, vector(my.max_x+1, my.max_y+1, my.max_z+1));
	set(my,BRIGHT);
	set(my,POLYGON);
}

action player_action()
{
	var SetHeight = 20;				//TWEAK :: distance of ball from ground.
	player = my;
	vec_set(my.scale_x,vector(0.5,0.5,0.5));
	wait(1);
	c_setminmax(my);
	VECTOR tmpV;
	while(1)
	{
		if(key_e)	{c_move(my,vector( 5*time_step,0,0),nullvector,GLIDE);}
		if(key_q)	{c_move(my,vector(-5*time_step,0,0),nullvector,GLIDE);}

		vec_set(tmpV, vector(my.x,my.y,my.z-9999));
		vec_rotate(tmpV, my.pan);
		c_trace(my.x, tmpV, IGNORE_ME | USE_BOX);
		if(trace_hit)	// if SOMETHING hit
		{
			vec_to_angle(tmpV, normal);		//get angle of "ground". (Terrain, Entity, or WED block)
			my.tilt   = 90 - tmpV.y;		//apply angle to ball
			if((my.skill1=vec_dist(my.x,target))<SetHeight)
			{	c_move(my,vector(0,0,SetHeight-my.skill1),nullvector,GLIDE);	}
		}
		wait(1);
	}
}


//================================================================================================================================//
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//                                                                                                                                //
// •• Die Main Funktion                                                                                                           //
//                                                                                                                                //
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
function main()
{	
	fps_max = 60;
	video_set(1024,768,32,2);
	video_window(NULL,NULL,16,"Glayder");
	level_load("test.wmb");
	
	draw_begin();
	
	sky_color.red = 200;
	sky_color.green = 200;
	sky_color.blue = 200;
	
	wait(3);
	vec_set(camera.pan, vector(90,0,0));
	
	ent_create("ball.mdl",vector(0,0,0),player_action);
}






Selling my Acknex Engine Editions (A7 Com & A8 Pro):
>> click here if you are interested <<