//trace
#include <acknex.h>
#include <default.c>
var TRACE_METHOD = 1; //change to 0 for mouse_ent method
ENTITY* trace_getEntity(long flags){
VECTOR vecFrom, vecTo;
vec_set(vecFrom, vector(mouse_pos.x, mouse_pos.y, 0));
vec_set(vecTo, vector(mouse_pos.x, mouse_pos.y, 5000));
vec_for_screen(vecFrom, camera);
vec_for_screen(vecTo, camera);
var trace = c_trace(vecFrom, vecTo, flags);
if(trace){
return(hit.entity);
}else{
return(NULL);
}
}
void main(){
mouse_mode = 4;
level_load(NULL);
int x, y;
for(x = -128; x <= 128; x+=16){
for(y = -128; y <= 128; y+=16){
ent_create(CUBE_MDL, vector(x, y, 0), NULL);
}
}
vec_set(camera.x, vector(-200, -200, 200));
vec_set(camera.pan, vector(45, -45, 0));
def_camera = 1;
def_move();
while(1){
if(TRACE_METHOD == 0){
if(mouse_ent){
watched = mouse_ent;
set(mouse_ent, LIGHT);
}
}else{
you = trace_getEntity(SCAN_TEXTURE | USE_POLYGON | USE_BOX);
if(you){
watched = you;
set(your, LIGHT);
}
}
wait(1);
}
}