diff --git a/common/2d/clip.h b/common/2d/clip.h index 6d88a6cab..2116d529f 100644 --- a/common/2d/clip.h +++ b/common/2d/clip.h @@ -23,62 +23,20 @@ COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. */ -/*#define MIN(a,b) (((a) < (b)) ? (a) : (b)) -#define MAX(a,b) (((a) > (b)) ? (a) : (b)) -*/ -#define IABS(x) (((x) < 0) ? -(x) : (x)) - -#define EXCHG(a,b) std::swap(a,b) - // sort two values #define SORT2(a,b) do { \ - if((a) > (b)) EXCHG(a,b); \ + using std::swap; \ + if((a) > (b)) swap(a,b); \ } while(0) -# define SCALE(var,arg,num,den) \ - ((var) = ((arg) * (num)) / (den)) - -# define USCALE(var,arg,num,den) \ - ((var) = ((unsigned)(arg) * (unsigned)(num)) / (unsigned)(den)) - # define FIXSCALE(var,arg,num,den) ((var) = fixmuldiv((arg),(num),(den))) -#define CLIPDOT(xx,yy,WHEN_OUTSIDE,WHEN_CLIPPED) { \ - if((xx > XMAX) || (xx < XMIN)) { WHEN_OUTSIDE; } \ - if((yy > YMAX) || (yy < YMIN)) { WHEN_OUTSIDE; } \ -} - -#define CLIPHLINE(x1,x2,yy,WHEN_OUTSIDE,WHEN_CLIPPED) { \ - if(x1 > x2) EXCHG(x1,x2); \ - if((x1 > XMAX) || (x2 < XMIN)) { WHEN_OUTSIDE; } \ - if((yy > YMAX) || (yy < YMIN)) { WHEN_OUTSIDE; } \ - if(x1 < XMIN) { x1 = XMIN; WHEN_CLIPPED; } \ - if(x2 > XMAX) { x2 = XMAX; WHEN_CLIPPED; } \ -} - -#define CLIPVLINE(xx,y1,y2,WHEN_OUTSIDE,WHEN_CLIPPED) { \ - if(y1 > y2) EXCHG(y1,y2); \ - if((xx > XMAX) || (xx < XMIN)) { WHEN_OUTSIDE; } \ - if((y1 > YMAX) || (y2 < YMIN)) { WHEN_OUTSIDE; } \ - if(y1 < YMIN) { y1 = YMIN; WHEN_CLIPPED; } \ - if(y2 > YMAX) { y2 = YMAX; WHEN_CLIPPED; } \ -} - -#define CLIPBOX(x1,y1,x2,y2,WHEN_OUTSIDE,WHEN_CLIPPED) { \ - if(x1 > x2) EXCHG(x1,x2); \ - if(y1 > y2) EXCHG(y1,y2); \ - if((x1 > XMAX) || (x2 < 0)) { WHEN_OUTSIDE; } \ - if((y1 > YMAX) || (y2 < 0)) { WHEN_OUTSIDE; } \ - if(x1 < 0) { x1 = 0; WHEN_CLIPPED; } \ - if(y1 < 0) { y1 = 0; WHEN_CLIPPED; } \ - if(x2 > XMAX) { x2 = XMAX; WHEN_CLIPPED; } \ - if(y2 > YMAX) { y2 = YMAX; WHEN_CLIPPED; } \ -} - #define CLIPLINE(x1,y1,x2,y2,XMIN,YMIN,XMAX,YMAX,WHEN_OUTSIDE,WHEN_CLIPPED,MY_SCALE) do { \ - register int temp; \ + int temp; \ if(y1 > y2) \ - { EXCHG(y1,y2); EXCHG(x1,x2); } \ + { \ + using std::swap; \ + swap(y1,y2); swap(x1,x2); } \ if((y2 < YMIN) || (y1 > YMAX)) \ { WHEN_OUTSIDE; } \ if(x1 < x2) { \ diff --git a/common/2d/line.cpp b/common/2d/line.cpp index 2d7cb57be..b00998fdf 100644 --- a/common/2d/line.cpp +++ b/common/2d/line.cpp @@ -51,7 +51,9 @@ static void plot(int x,int y,int flag) static int gr_hline(int x1, int x2, int y) { - if (x1 > x2) EXCHG(x1,x2); + using std::swap; + if (x1 > x2) + swap(x1,x2); for (int i=x1; i<=x2; i++ ) gr_upixel( i, y ); return 0; @@ -59,7 +61,8 @@ static int gr_hline(int x1, int x2, int y) static int gr_vline(int y1, int y2, int x) { - if (y1 > y2) EXCHG(y1,y2); + using std::swap; + if (y1 > y2) swap(y1,y2); for (int i=y1; i<=y2; i++ ) gr_upixel( x, i ); return 0; @@ -100,9 +103,10 @@ static void gr_universal_uline(int a1, int b1, int a2, int b2) step = -1; if (dy > dx) { /* chooses axis of greatest movement (make * dx) */ - EXCHG(a1, b1); - EXCHG(a2, b2); - EXCHG(dx, dy); + using std::swap; + swap(a1, b1); + swap(a2, b2); + swap(dx, dy); reverse = 1; } else reverse = 0;