ENTITY *entCameraCollider;
function camera_collider_startup ()
{
entCameraCollider = ent_create(CUBE_MDL,vector(0,0,-100000),NULL);
vec_fill(entCameraCollider.max_x, 16);
vec_fill(entCameraCollider.min_x, -16);
set ( entCameraCollider, INVISIBLE );
}
function camera_follow(ENTITY* ent)
{
...
// check for walls
set(ent,PASSABLE);
ENTITY *entMeOld = me;
me = entCameraCollider;
result = c_trace( ent.x, camera_target, IGNORE_PASSABLE | USE_BOX );
reset(ent,PASSABLE);
me = entMeOld;
if(trace_hit) camera_distance = minv(camera_distance,result);
...
}