| 54 |
|
/* initialize dispatch table */ |
| 55 |
|
initstypes(); |
| 56 |
|
/* find direct sources */ |
| 57 |
< |
for (i = 0; i < nobjects; i++) { |
| 57 |
> |
for (i = 0; i < nsceneobjs; i++) { |
| 58 |
|
|
| 59 |
|
o = objptr(i); |
| 60 |
|
|
| 355 |
|
rayorigin(&sr, r, SHADOW, 1.0); |
| 356 |
|
VCOPY(sr.rdir, scp->dir); |
| 357 |
|
sr.rsrc = scp->sno; |
| 358 |
< |
source[scp->sno].ntests++; /* keep statistics */ |
| 358 |
> |
/* keep statistics */ |
| 359 |
> |
if (source[scp->sno].ntests++ > 0xfffffff0) { |
| 360 |
> |
source[scp->sno].ntests >>= 1; |
| 361 |
> |
source[scp->sno].nhits >>= 1; |
| 362 |
> |
} |
| 363 |
|
if (localhit(&sr, &thescene) && |
| 364 |
|
( sr.ro != source[scp->sno].so || |
| 365 |
|
source[scp->sno].sflags & SFOLLOW )) { |