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