| 466 |
|
CLR4(odS.redraw, i); |
| 467 |
|
} |
| 468 |
|
#else |
| 469 |
< |
/* redraw samples at each end */ |
| 469 |
> |
/* redraw samples at beginning */ |
| 470 |
|
for (i = odView[vn].sfirst; i < odView[vn].sfirst+31; i++) |
| 471 |
|
if (CHK4(odS.redraw, i)) { |
| 472 |
|
odDrawSamp(vn, i); |
| 473 |
|
CLR4(odS.redraw, i); |
| 474 |
|
} |
| 475 |
– |
for (i = odView[vn].snext-31; i < odView[vn].snext; i++) |
| 476 |
– |
if (CHK4(odS.redraw, i)) { |
| 477 |
– |
odDrawSamp(vn, i); |
| 478 |
– |
CLR4(odS.redraw, i); |
| 479 |
– |
} |
| 475 |
|
/* faster flag checks in middle */ |
| 476 |
|
for (j = odView[vn].snext>>5; j-- > (odView[vn].sfirst+0x1f)>>5; ) |
| 477 |
|
for (i = 0; odS.redraw[j]; i++) /* skips faster */ |
| 479 |
|
odDrawSamp(vn, (j<<5)+i); |
| 480 |
|
odS.redraw[j] &= ~(1L<<i); |
| 481 |
|
} |
| 482 |
+ |
/* redraw samples at end */ |
| 483 |
+ |
for (i = odView[vn].snext-31; i < odView[vn].snext; i++) |
| 484 |
+ |
if (CHK4(odS.redraw, i)) { |
| 485 |
+ |
odDrawSamp(vn, i); |
| 486 |
+ |
CLR4(odS.redraw, i); |
| 487 |
+ |
} |
| 488 |
|
#endif |
| 489 |
|
} |
| 490 |
|
|
| 592 |
|
n = rise + run; |
| 593 |
|
while (n--) /* run out arm, checking depth */ |
| 594 |
|
if (run2 > rise2) { |
| 594 |
– |
if (depthchange(vp, x, y, x+xstep, y)) |
| 595 |
– |
break; |
| 595 |
|
x += xstep; |
| 596 |
|
rise2 += rise; |
| 597 |
< |
} else { |
| 599 |
< |
if (depthchange(vp, x, y, x, y+ystep)) |
| 597 |
> |
if (depthchange(vp, x-xstep, y, x, y)) |
| 598 |
|
break; |
| 599 |
+ |
} else { |
| 600 |
|
y += ystep; |
| 601 |
|
run2 += run; |
| 602 |
+ |
if (depthchange(vp, x, y-ystep, x, y)) |
| 603 |
+ |
break; |
| 604 |
|
} |
| 605 |
|
if (n < 0) /* found something? */ |
| 606 |
|
return; |
| 629 |
|
register struct ODview *vp; |
| 630 |
|
register int bi0, bi1; |
| 631 |
|
{ |
| 632 |
+ |
if (bi1 == bi0) |
| 633 |
+ |
return(0); /* same block */ |
| 634 |
|
if (bi1 < 0) |
| 635 |
|
return(1); /* end off view */ |
| 636 |
|
if (CHK4(vp->emap, bi1)) |
| 637 |
< |
return(1); /* end has edges */ |
| 637 |
> |
return(1); /* end block has edges */ |
| 638 |
|
if (bi1 == bi0+1 || bi1 == bi0-1 || |
| 639 |
|
bi1 == bi0+vp->hlow || bi1 == bi0-vp->hlow) |
| 640 |
|
return(0); /* end in adjacent block -- no edges */ |