39 |
|
/* check for intersection */ |
40 |
|
while (localhit(&rt, &thescene)) { |
41 |
|
RAY rt1 = rt; /* pretend we were aimed at source */ |
42 |
< |
rt1.crtype |= rt1.rtype = SHADOW; |
42 |
> |
rt1.crtype |= rt1.rtype = RSHADOW; |
43 |
|
rt1.rdir[0] = -rt.rdir[0]; |
44 |
|
rt1.rdir[1] = -rt.rdir[1]; |
45 |
|
rt1.rdir[2] = -rt.rdir[2]; |
51 |
|
if (srcblocker(&rt1)) |
52 |
|
return(1); |
53 |
|
/* move past failed blocker */ |
54 |
< |
VSUM(rt.rorg, rt.rop, rt.rdir, FTINY); |
54 |
> |
VSUM(rt.rorg, rt.rop, rt.rdir, 10.*FTINY); |
55 |
|
rayclear(&rt); /* & try again... */ |
56 |
|
} |
57 |
|
return(0); /* found no blockers */ |
309 |
|
m = findmaterial(r->ro); |
310 |
|
if (m == NULL) |
311 |
|
return(0); /* no material?! */ |
312 |
< |
if (!isopaque(m->otype)) |
312 |
> |
if (!isopaque(m)) |
313 |
|
return(0); /* material not a reliable blocker */ |
314 |
|
*srcobstructp(r) = r->robj; /* else record obstructor */ |
315 |
|
return(1); |