示例#1
0
文件: pacgfx.c 项目: spathiwa/pacq
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;
}
示例#2
0
文件: prism.c 项目: ri0t/DeluxePaintX
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 );
}
示例#3
0
文件: pacgfx.c 项目: spathiwa/pacq
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;
}