26 |
|
if (d > dref) |
27 |
|
return (int)(32768.001 - 32768.*dref/d) - 1; |
28 |
|
|
29 |
< |
return (int)(32767.*d/dref - 32768.); |
29 |
> |
return (int)(32767.*d/dref - 32768.999); |
30 |
|
} |
31 |
|
#endif |
32 |
|
|
42 |
|
if (c >= 32767) |
43 |
|
return FHUGE; |
44 |
|
|
45 |
< |
if (c >= 0) |
45 |
> |
if (c >= -1) |
46 |
|
return dref*32768./(32766.5 - c); |
47 |
|
|
48 |
< |
return dref*(32767.5 + c)*(1./32767.); |
48 |
> |
return dref*(32768.5 + c)*(1./32767.); |
49 |
|
} |
50 |
|
#endif |
51 |
|
|
97 |
|
} |
98 |
|
return -1; |
99 |
|
} |
100 |
+ |
if (dcp->hdrflags & HF_ENCODE) |
101 |
+ |
return 0; /* will add this later */ |
102 |
|
} else if (!strncmp(s, "SAMP360=", 8)) |
103 |
|
dcp->gotview--; |
104 |
|
else if (isview(s)) /* get view params */ |
252 |
|
RREAL loc[2]; |
253 |
|
FVECT rdir; |
254 |
|
|
255 |
+ |
if (d >= FHUGE*.99) |
256 |
+ |
goto badval; |
257 |
+ |
|
258 |
|
pix2loc(loc, &dcp->res, x, y); |
259 |
|
|
260 |
< |
if (viewray(wpos, rdir, &dcp->vw, loc[0], loc[1]) < -FTINY) { |
261 |
< |
VCOPY(wpos, dcp->vw.vp); |
262 |
< |
return 0; |
260 |
> |
if (viewray(wpos, rdir, &dcp->vw, loc[0], loc[1]) >= -FTINY) { |
261 |
> |
VSUM(wpos, wpos, rdir, d); |
262 |
> |
return 1; |
263 |
|
} |
264 |
< |
VSUM(wpos, wpos, rdir, d); |
265 |
< |
return 1; |
264 |
> |
badval: |
265 |
> |
VCOPY(wpos, dcp->vw.vp); |
266 |
> |
return 0; |
267 |
|
} |
268 |
|
|
269 |
|
|
323 |
|
return -1; |
324 |
|
} |
325 |
|
dcp->curpos = seekpos; |
326 |
+ |
dcp->use_last = 0; |
327 |
|
return 1; |
328 |
|
} |
329 |
|
|