ENTITY* ghostObject; // Global entity pointer
var isPlacingObject = 0; // Global variable
...
function PlaceObject(var _objectNum)
{
wait(1);
proc_kill(4);
isPlacingObject = _objectNum;
while(isPlacingObject != 0)
{
normal.x = crosshair_x;
normal.y = crosshair_y;
normal.z = 0;
vec_set(target,normal);
target.z = 10000;
vec_for_screen(normal,view_build);
vec_for_screen(target,view_build);
if(c_trace(normal,target,IGNORE_ME + IGNORE_PASSABLE) > 0)
{
if(mouse_left)
{
ent_create("crate.mdl",target,NULL);
if(ghostObject != NULL) {ptr_remove(ghostObject);}
isPlacingObject = 0;
break;
}
if(ghostObject == NULL)
{
ghostObject = ent_create("crate.mdl",target,NULL);
ghostObject.flags |= TRANSLUCENT;
ghostObject.flags |= PASSABLE;
ghostObject.alpha = 30;
}
else
{
vec_Set(ghostObject.x,target);
}
}
wait(1);
}
}