#include <acknex.h>
#include <default.c>
#define C_TRACE
//#define C_ROTATE
void main()
{
video_mode=9;
fps_max=60;
level_load("");
ENTITY* ent_tmp1=ent_create(CUBE_MDL,vector(30,0,0),NULL);
vec_set(ent_tmp1.scale_x,vector(8,4,0.5));
c_setminmax(ent_tmp1);
ENTITY* ent_tmp3=ent_create(CUBE_MDL,vector(0,30,50),NULL);
vec_set(ent_tmp3.scale_x,vector(4,2,1));
ent_tmp3.pan=90;
ent_tmp3.tilt=200;
c_setminmax(ent_tmp3);
camera.x=-250;
camera.z=25;
//c_trace method -> using ellipsoid
#ifdef C_TRACE
while(1)
{
VECTOR vec_tmp1,vec_tmp2;
vec_set(vec_tmp1,vector(0,(key_a-key_d)*time_step*2,(key_w-key_s)*time_step*2));
vec_set(vec_tmp2,ent_tmp3.x);
vec_add(vec_tmp2,vec_tmp1);
me=ent_tmp3;
result=c_trace(ent_tmp3.x,vec_tmp2,USE_BOX|IGNORE_ME);
if(result==0)
{
vec_add(ent_tmp3.x,vec_tmp1);
}
wait(1);
}
#endif
//c__rotate method -> using box method
#ifdef C_ROTATE
while(1)
{
var ent_tmp3_x_=ent_tmp3.y;
var ent_tmp3_z_=ent_tmp3.z;
ent_tmp3.y+=(key_a-key_d)*time_step*2;
ent_tmp3.z+=(key_w-key_s)*time_step*2;
result=c_rotate(ent_tmp3,vector(1,1,1),0);
if(result<=0)
{
ent_tmp3.y=ent_tmp3_x_;
ent_tmp3.z=ent_tmp3_z_;
}
else
{
vec_sub(ent_tmp3.pan,vector(1,1,1));
}
wait(1);
}
#endif
}