| 81 |
|
if (m->otype == MAT_GLOW) { |
| 82 |
|
source[ns].sflags |= SPROX; |
| 83 |
|
source[ns].sl.prox = m->oargs.farg[3]; |
| 84 |
< |
if (o->otype == OBJ_SOURCE) |
| 84 |
> |
if (source[ns].sflags & SDISTANT) |
| 85 |
|
source[ns].sflags |= SSKIP; |
| 86 |
|
} else if (m->otype == MAT_SPOT) { |
| 87 |
|
source[ns].sflags |= SSPOT; |
| 421 |
|
* The -di flag renders light sources invisible, and here is the test. |
| 422 |
|
*/ |
| 423 |
|
|
| 424 |
< |
#define srcignore(m, r) (directinvis && !(r->crtype&SHADOW) && \ |
| 424 |
> |
#define srcignore(m, r) (!directvis && !(r->crtype&SHADOW) && \ |
| 425 |
|
!distglow(m, r)) |
| 426 |
|
|
| 427 |
|
|
| 448 |
|
if (srcignore(m, r)) |
| 449 |
|
return; |
| 450 |
|
/* check for outside spot */ |
| 451 |
< |
if (m->otype==MAT_SPOT && spotout(r, (SPOT *)m->os, r->rot>=FHUGE)) |
| 451 |
> |
if (m->otype==MAT_SPOT && spotout(r, makespot(m), r->rot>=FHUGE)) |
| 452 |
|
return; |
| 453 |
|
/* get distribution pattern */ |
| 454 |
|
raytexture(r, m->omod); |