`object handler
type object
objectid as integer
name$ as string
x as float
y as float
z as float
visible as integer
endtype
dim objects_on_screen(-1) as object
do
print_info()
mouse_control()
print_objects_to_screen()
sync
cls
loop
wait key
end
function add_object_to_screen(name$ as string,x as integer,y as integer, z as integer, visible as integer)
`this function will add objects to the array, checking first or a new row is needed
array_size = array count(objects_on_screen())
newsize = array_size + 1
objct_id = newsize + 1
array insert at bottom objects_on_screen()
objects_on_screen(newsize).objectid=objct_id
objects_on_screen(newsize).name$=name$
objects_on_screen(newsize).x=x
objects_on_screen(newsize).y=y
objects_on_screen(newsize).z=z
objects_on_screen(newsize).visible=visible
endfunction
function add_object_test()
name$ = "cube"
x = rnd(400)
y = rnd(400)
z = rnd(400)
visible = 1
add_object_to_screen(name$,x,y,z,visible)
endfunction
function remove_object_from_screen(id as integer)
array delete element objects_on_screen(),id
endfunction
function print_objects_to_screen()
array_size = array count(objects_on_screen())
for y=0 to array_size ` looping through the array
make object cube objects_on_screen(y).objectid,30
position object objects_on_screen(y).objectid,objects_on_screen(y).x,objects_on_screen(y).y,objects_on_screen(y).z
next y
endfunction
function print_info()
print "total array rows: "+str$(array_size)
array_size = array count(objects_on_screen())
for y=0 to array_size ` looping through the array
print "ID: "+str$(objects_on_screen(y).objectid)+" name: "+objects_on_screen(y).name$+" x pos: "+str$(objects_on_screen(y).x)+" y pos: "+str$(objects_on_screen(y).y)+" z pos: "+str$(objects_on_screen(y).z)
next y
endfunction
function mouse_control()
array_size = array count(objects_on_screen())
obj_rem = rnd(array_size)
if mouseclick() = 1 then add_object_test()
if mouseclick() = 2 then remove_object_from_screen(obj_rem)
wait 100
endfunction