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 )) { |