VECTOR ptFarAway, ptOnCamera;
vec_set(&ptFarAway, vector(mouse_cursor.x, mouse_cursor.y, camera->clip_far));
vec_set(&ptOnCamera, vector(mouse_cursor.x, mouse_cursor.y, camera->clip_near));
c_trace(&ptOnCamera, &ptFarAway, ...);
VECTOR ptHit;
vec_set(&ptHit, hit->x);
ENTITY* bullet = ent_create("bullet.mdl", &ptOnCamera, objBullet);
vec_set(bullet->skill1, &ptFarAway);
void objBullet ()
{
wait(1); // wait until skill1,2,3 are filled with destination
while (1)
{
VECTOR destination;
vec_set(&destination, my->skill1); //2,3
// fly to destination
// if to near, break
wait(1);
}
ptr_remove(my);
}