308 |
|
|
309 |
|
if (obs == OVOID) |
310 |
|
return(0); |
311 |
< |
op = objptr(obs); /* check for intersection */ |
311 |
> |
op = objptr(obs); /* check blocker intersection */ |
312 |
|
if (!(*ofun[op->otype].funp)(op, r)) |
313 |
|
return(0); |
314 |
< |
op = source[r->rsrc].so; /* check source really obstructed */ |
315 |
< |
if ((*ofun[op->otype].funp)(op, r)) { |
316 |
< |
rayclear(r); /* actually, source in front! */ |
317 |
< |
return(0); |
318 |
< |
} |
319 |
< |
return(1); /* source truly blocked */ |
314 |
> |
if (source[r->rsrc].sflags & SDISTANT) |
315 |
> |
return(1); |
316 |
> |
op = source[r->rsrc].so; /* check source intersection */ |
317 |
> |
if (!(*ofun[op->otype].funp)(op, r)) |
318 |
> |
return(1); |
319 |
> |
rayclear(r); |
320 |
> |
return(0); /* source in front */ |
321 |
|
} |
322 |
|
|
323 |
|
|