11 |
|
|
12 |
|
#include "otspecial.h" |
13 |
|
|
14 |
+ |
#include "rtotypes.h" |
15 |
+ |
|
16 |
|
#include "source.h" |
17 |
|
|
18 |
|
#define ABS(x) ((x)>0 ? (x) : -(x)) |
63 |
|
FVECT rorg, rdir; |
64 |
|
RREAL d; |
65 |
|
int i, j, k; |
66 |
< |
int ax, ax1, ax2; |
66 |
> |
int ax=0, ax1=1, ax2=2; |
67 |
|
|
68 |
|
if (srcp->sflags & (SSKIP|SPROX|SSPOT|SVIRTUAL)) |
69 |
|
return; /* don't cache these */ |
180 |
|
static OBJECT * /* return occluder cache entry */ |
181 |
|
srcobstructp(register RAY *r) |
182 |
|
{ |
183 |
< |
static unsigned long lastrno = ~0; |
183 |
> |
static RNUMBER lastrno = ~0; |
184 |
|
static OBJECT noobs; |
185 |
|
static OBJECT *lastobjp; |
186 |
|
SRCREC *srcp; |
200 |
|
initobscache(r->rsrc); |
201 |
|
/* compute cache index */ |
202 |
|
if (srcp->sflags & SDISTANT) { |
203 |
< |
int ax, ax1, ax2; |
203 |
> |
int ax=0, ax1=1, ax2=2; |
204 |
|
double t; |
205 |
|
ax = srcp->obscache->p.d.ax; |
206 |
|
if ((ax1 = ax+1) >= 3) ax1 -= 3; |
335 |
|
{ |
336 |
|
OBJECT *set2add, *oldset; |
337 |
|
|
338 |
+ |
if (m == NULL) { /* starting over */ |
339 |
+ |
if (antimodlist != NULL) |
340 |
+ |
free((void *)antimodlist); |
341 |
+ |
antimodlist = NULL; |
342 |
+ |
return; |
343 |
+ |
} |
344 |
|
m_clip(m, NULL); /* initialize modifier list */ |
345 |
|
if ((set2add = (OBJECT *)m->os) == NULL || !set2add[0]) |
346 |
|
return; |