BoxScreen() { short bx1,by1,bx2,by2,p=pathsize+BORDERSIZE; bx1=minx-p;bx2=maxx+p; by1=miny-p;by2=maxy+p; /* These routines removed for SupBitMap */ bx1=(bx1<0)?0:bx1; /* bx2=(bx2>maxx)?maxx:bx2; */ by1=(by1<FIRSTY)?FIRSTY:by1; /* by2=(by2>maxy)?maxy:by2; */ SetAPen(rastport,FILLCOLOR); SetOPen(rastport,OUTLINECOLOR); RectFill(rastport,bx1,by1,bx2,by2); return 0; }
void CopyWNotice() { int x, y; x = ( screenBox.w - PMapX( 48 ) - CW_WIDTH ) / 2; y = ( screenBox.h - CW_HEIGHT ) / 2; SetOPen( &screenRP, 1 ); SetAPen( &screenRP, 3 ); RectFill( &screenRP, x, y, x + CW_WIDTH - 1, y + CW_HEIGHT - 1 ); BNDRYOFF( &screenRP ); SetAPen( &screenRP, 0 ); //FIXME: SetDrMd( &screenRP, JAM1 ); CopyWText( x + 6, y + 30 ); SetAPen( &screenRP, 1 ); CopyWText( x + 5, y + 29 ); }
MazeDraw1(vertex_pt v0) /* Draw borders or clear pathways */ { /* mazedraw = 1: Draw borders. 0 = erase pathways */ if(!v0) return 0; MazeDraw1(v0->left); for(i=0;i<4;i++) { xr=(i==1)-(i==3);yr=(i==2)-(i==0); j=pathsize*xr,k=pathsize*yr; if ( v0->next[i] ) { if(mazedraw) {path=pathsize;inc=pathsize<<1;} else {path=pathsize-1;inc=1;} if (v0->x <=maxx && v0->y <=maxy && v0->next[i]->x <=maxx && v0->next[i]->y <=maxy) if (mazedraw) for(c=-path;c<=path;c+=inc) { Move(rastport,v0->x+yr*c+j,v0->y+xr*c+yr*pathsize); if(!(v0->code[i]&TUNNEL)) Draw(rastport,v0->next[i]->x+yr*c-j, v0->next[i]->y+xr*c-yr*pathsize); else /* Special case for tunnels */ { tx=(maxx+border)*(xr>0)+(minx-border)*(xr<0)+(v0->x+yr*c)*(!xr); ty=(maxy+border)*(yr>0)+(miny-border)*(yr<0)+(v0->y+xr*c)*(!yr); Draw(rastport,tx,ty); } } else /* Mazedraw == 0, so erase the edges */ { SetOPen(rastport,PATHCOLOR); SetAPen(rastport,PATHCOLOR); if((i==1 || i==2) && !(v0->code[i]&TUNNEL)) RectFill(rastport,v0->x-path, v0->y-path, v0->next[i]->x+path,v0->next[i]->y+path); else if (i==1 || i==2) /* Erase path for tunnel */ { RectFill(rastport,v0->x-path,v0->y-path, xr?border+maxx:v0->x+path, yr?border+maxy:v0->y+path); RectFill(rastport,xr?minx-border:v0->next[i]->x-path, yr?miny-border:v0->next[i]->y-path, v0->next[i]->x+path,v0->next[i]->y+path); } } } /* End of block executed if there is a path */ else if (mazedraw && !v0->next[i]) { /* Close up the NULL directions */ Move(rastport,v0->x+j+k,v0->y+j+k); Draw(rastport,v0->x+j-k,v0->y-j+k); } /* Round the corners (?): */ if(!mazedraw&& v0->next[i]&&v0->next[(i+1)&3]&& xfactor>4&&yfactor>4) WritePixel(rastport,v0->x+(i<2)*pathsize-(i>1)*pathsize ,v0->y-(((i+1)&3)<2)*pathsize+(((i+1)&3)>1)*pathsize); else if(!mazedraw && !v0->next[i] && !v0->next[(i+1)&3] && v0->next[(i+2)&3] && v0->next[(i+3)&3] && xfactor>4&&yfactor>4) { SetAPen(rastport,FILLCOLOR); WritePixel(rastport,v0->x+(i<2)*pathsize-(i>1)*pathsize ,v0->y-(((i+1)&3)<2)*pathsize+(((i+1)&3)>1)*pathsize); SetAPen(rastport,PATHCOLOR); } } for(i=0;i<4;i++) { if(!mazedraw && (/*(v0->next[i]==center_box && v0==top_box) ||*/ ((v0->code[i]&GHOST_1WAY) && in_con) || (v0->code[i]&FORBID))) { /* Make restrictive bar for "No trespassing" */ xr=(i==1)-(i==3);yr=(i==2)-(i==0); j=pathsize*xr,k=pathsize*yr; if (!(v0->code[i] & FORBID)) SetDrPt(rastport,0xAAAA) SetAPen(rastport,NOTRESCOLOR); Move(rastport,v0->x+j+k,v0->y+j+k); Draw(rastport,v0->x+j-k,v0->y-j+k); SetAPen(rastport,PATHCOLOR); SetDrPt(rastport,0xFFFF); } } MazeDraw1(v0->right); return 0; }