When objects are loaded and scaled down, object in screen() fails to report on them accuretly even though calculate object bounds() seems to be doing its job (see code below). They don't exactly behave as if they were at their original scale, but they don't act right either.
I can't duplicate this with built-in primitives, so provide your own meshes or download the attachment. I have tried it with five or so objects, none of which work correctly. Not just my own files but 'official' ones from TGC as well, although I didn't provide those in the upload in case that would ruffle feathers. It also seems broken w/ .x files the same way as .dbos.
If I'm not making some obvious mistake (which is totally possible) and this is in fact a bug, I really hope it can get solved soon. I have no good way of handling all sorts of occlusion-based things until this gets fixed.
I know there's a 7.7RC out but there is nothing in its changelog regarding this issue, so I assume it's not fixed & would rather not break my working code by upgrading until it's released.
Code follows, then screenshots, in case others can't duplicate the issue.
sync on : sync rate 60
`set camera range 0.01,1000
ink 0,0
for t=1 to 10
load object "church.dbo",t
move object t,t*object size x(t)*0.1
scale object t,10,10,10
calculate object bounds t
next t
do
set cursor 0,0
print "'object in screen' bug - should show 1 for all visible objects"
print "'b' to show object bounds"
rotate camera camera angle X()+mousemovey(),camera angle y()+mousemovex(),0
move camera mouseclick()`*10
for t=1 to 10
text object screen x(t),object screen y(t),str$(object in screen(t))
if inkey$()="b"
show object bounds t
else
hide object bounds t
endif
next t
sync
loop