[ HasLightSource i j ad; if (i==0) rfalse; if (i has light) rtrue; if (i has enterable || IsSeeThrough(i)==1) if (~~(HidesLightSource(i))) objectloop (j in i) if (HasLightSource(j)==1) rtrue; ad = i.&add_to_scope; if (parent(i)~=0 && ad ~= 0) { if (metaclass(ad-->0) == Routine) { ats_hls = 0; ats_flag = 1; RunRoutines(i, add_to_scope); ats_flag = 0; if (ats_hls == 1) rtrue; } else { for (j=0:(2*j)j)==1) rtrue; } } rfalse; ];