[AD] fix_teh_datafile

[ Thread Index | Date Index | More lists.liballeg.org/allegro-developers Archives ]


make Allegro perfect! (by shorten it a bit) ;)
with this patch:
old datafile.o 24626 Bytes
new datafile.o 24430 Bytes

-------------------------------------------------
HKNETMAIL.COM Free WEB MAIL Service by  HKNET
--- datafile.c	2003-06-23 10:40:46.000000000 -0400
+++ datanew.c	2003-06-30 13:56:58.000000000 -0400
@@ -151,11 +151,11 @@ static BITMAP *read_bitmap(PACKFILE *f, 
 	    p16 = (unsigned short *)bmp->line[y];
 
 	    for (x=0; x<w; x++) {
-	       c = pack_igetw(f);
-	       r = _rgb_scale_5[(c >> 11) & 0x1F]; /* stored as 16 bit */
-	       g = _rgb_scale_6[(c >> 5) & 0x3F];
-	       b = _rgb_scale_5[c & 0x1F];
-	       p16[x] = makecol15(r, g, b);
+               c = pack_igetw(f); /* stored as 16 bit */
+	       p16[x] = makecol15(
+               _rgb_scale_5[(c>>11) & 0x1F],
+               _rgb_scale_6[(c>>5) & 0x3F],
+               _rgb_scale_5[c & 0x1F]);
 	    }
 	 }
 	 break;
@@ -167,10 +167,10 @@ static BITMAP *read_bitmap(PACKFILE *f, 
 
 	    for (x=0; x<w; x++) {
 	       c = pack_igetw(f);
-	       r = _rgb_scale_5[(c >> 11) & 0x1F];
-	       g = _rgb_scale_6[(c >> 5) & 0x3F];
-	       b = _rgb_scale_5[c & 0x1F];
-	       p16[x] = makecol16(r, g, b);
+	       p16[x] = makecol16(
+               _rgb_scale_5[(c>>11) & 0x1F],
+               _rgb_scale_6[(c>>5) & 0x3F],
+               _rgb_scale_5[c & 0x1F]);
 	    }
 	 }
 	 break;
@@ -179,16 +179,10 @@ static BITMAP *read_bitmap(PACKFILE *f, 
 	 /* 24bit truecolor */
 	 for (y=0; y<h; y++) {
 	    for (x=0; x<w; x++) {
-	       r = pack_getc(f);
-	       g = pack_getc(f);
-	       b = pack_getc(f);
-
-	       if (rgba)
-		  pack_getc(f);
-
-	       bmp->line[y][x*3+_rgb_r_shift_24/8] = r;
-	       bmp->line[y][x*3+_rgb_g_shift_24/8] = g;
-	       bmp->line[y][x*3+_rgb_b_shift_24/8] = b;
+               bmp->line[y][x*3+_rgb_r_shift_24/8] = pack_getc(f);
+               bmp->line[y][x*3+_rgb_g_shift_24/8] = pack_getc(f);
+               bmp->line[y][x*3+_rgb_b_shift_24/8] = pack_getc(f);
+               if (rgba) pack_getc(f);
 	    }
 	 }
 	 break;
@@ -202,13 +196,7 @@ static BITMAP *read_bitmap(PACKFILE *f, 
 	       r = pack_getc(f);
 	       g = pack_getc(f);
 	       b = pack_getc(f);
-
-	       if (rgba)
-		  a = pack_getc(f);
-	       else
-		  a = 0;
-
-	       p32[x] = makeacol32(r, g, b, a);
+               p32[x] = makeacol32(r, g, b, (rgba)?pack_getc(f):0);
 	    }
 	 }
 	 break;
@@ -728,11 +716,10 @@ static RLE_SPRITE *read_rle_sprite(PACKF
 
 		  while (x-- > 0) {
 		     c = pack_igetw(f);
-		     r = _rgb_scale_5[(c >> 11) & 0x1F];
-		     g = _rgb_scale_6[(c >> 5) & 0x3F];
-		     b = _rgb_scale_5[c & 0x1F];
-		     *p16 = makecol_depth(bits, r, g, b);
-		     p16++;
+                     *p16++ = makecol_depth(bits,
+                     _rgb_scale_5[(c>>11) & 0x1F],
+                     _rgb_scale_6[(c>>5) & 0x3F],
+                     _rgb_scale_5[c & 0x1F]);
 		  }
 	       }
 
@@ -770,13 +757,7 @@ static RLE_SPRITE *read_rle_sprite(PACKF
 		     r = pack_getc(f);
 		     g = pack_getc(f);
 		     b = pack_getc(f);
-
-		     if (rgba)
-			a = pack_getc(f);
-		     else
-			a = 0;
-
-		     *p32 = makeacol_depth(bits, r, g, b, a);
+                     *p32 = makeacol_depth(bits, r, g, b, (rgba)?pack_getc(f):0);
 
 		     p32++;
 		  }
@@ -1702,10 +1683,10 @@ void fixup_datafile(DATAFILE *data)
 
 		     for (x=0; x<bmp->w; x++) {
 			c = p16[x];
-			r = _rgb_scale_5[c & 0x1F];
-			g = _rgb_scale_5[(c >> 5) & 0x1F];
-			b = _rgb_scale_5[(c >> 10) & 0x1F];
-			p16[x] = makecol_depth(depth, r, g, b);
+			p16[x] = makecol_depth(depth,
+                        _rgb_scale_5[c & 0x1F],
+                        _rgb_scale_5[(c>>5) & 0x1F],
+                        _rgb_scale_5[(c>>10) & 0x1F]);
 		     }
 		  }
 		  break;
@@ -1731,12 +1712,10 @@ void fixup_datafile(DATAFILE *data)
 
 		     for (x=0; x<bmp->w; x++) {
 			c = p16[x];
-			r = _rgb_scale_5[c & 0x1F];
-			g = _rgb_scale_6[(c >> 5) & 0x3F];
-			b = _rgb_scale_5[(c >> 11) & 0x1F];
-			if (_color_conv & COLORCONV_KEEP_TRANS && depth == 15 &&
-			   c == 0xf83f) g = 8; /* don't end up as mask color */
-			p16[x] = makecol_depth(depth, r, g, b);
+			p16[x] = makecol_depth(depth,
+                        _rgb_scale_5[c & 0x1F],
+                        (_color_conv&COLORCONV_KEEP_TRANS && depth==15 && c==0xf83f)?8:_rgb_scale_6[(c>>5) & 0x3F], /* don't end up as mask color */
+                        _rgb_scale_5[(c>>11) & 0x1F]);
 		     }
 		  }
 		  break;
@@ -1753,10 +1732,10 @@ void fixup_datafile(DATAFILE *data)
 
 		     for (x=0; x<bmp->w; x++) {
 			c = READ3BYTES(p8+x*3);
-			r = (c & 0xFF);
-			g = (c >> 8) & 0xFF;
-			b = (c >> 16) & 0xFF;
-			WRITE3BYTES(p8+x*3, makecol24(r, g, b));
+			WRITE3BYTES(p8+x*3, makecol24(
+                        (c & 0xFF),
+                        (c>>8) & 0xFF,
+                        (c>>16) & 0xFF));
 		     }
 		  }
 		  break;
@@ -1773,11 +1752,11 @@ void fixup_datafile(DATAFILE *data)
 
 		     for (x=0; x<bmp->w; x++) {
 			c = p32[x];
-			r = (c & 0xFF);
-			g = (c >> 8) & 0xFF;
-			b = (c >> 16) & 0xFF;
-			a = (c >> 24) & 0xFF;
-			p32[x] = makeacol32(r, g, b, a);
+			p32[x] = makeacol32(
+                        (c & 0xFF),
+                        (c>>8) & 0xFF,
+                        (c>>16) & 0xFF,
+                        (c>>24) & 0xFF);
 		     }
 		  }
 		  break;
@@ -1818,11 +1797,10 @@ void fixup_datafile(DATAFILE *data)
 			   s16++;
 			   while (x-- > 0) {
 			      c = *s16;
-			      r = _rgb_scale_5[c & 0x1F];
-			      g = _rgb_scale_5[(c >> 5) & 0x1F];
-			      b = _rgb_scale_5[(c >> 10) & 0x1F];
-			      *s16 = makecol_depth(depth, r, g, b);
-			      s16++;
+                              *s16++ = makecol_depth(depth,
+                              _rgb_scale_5[c & 0x1F],
+                              _rgb_scale_5[(c>>5) & 0x1F],
+                              _rgb_scale_5[(c>>10) & 0x1F]);
 			   }
 			}
 			else
@@ -1855,11 +1833,10 @@ void fixup_datafile(DATAFILE *data)
 			   s16++;
 			   while (x-- > 0) {
 			      c = *s16;
-			      r = _rgb_scale_5[c & 0x1F];
-			      g = _rgb_scale_6[(c >> 5) & 0x3F];
-			      b = _rgb_scale_5[(c >> 11) & 0x1F];
-			      *s16 = makecol_depth(depth, r, g, b);
-			      s16++;
+                              *s16++ = makecol_depth(depth,
+                              _rgb_scale_5[c & 0x1F],
+                              _rgb_scale_6[(c>>5) & 0x3F],
+                              _rgb_scale_5[(c>>11) & 0x1F]);
 			   }
 			}
 			else
@@ -1896,11 +1873,10 @@ void fixup_datafile(DATAFILE *data)
 			   s32++;
 			   while (x-- > 0) {
 			      c = *s32;
-			      r = (c & 0xFF);
-			      g = (c>>8) & 0xFF;
-			      b = (c>>16) & 0xFF;
-			      *s32 = makecol_depth(depth, r, g, b);
-			      s32++;
+                              *s32++ = makecol_depth(depth,
+                              (c & 0xFF),
+                              (c>>8) & 0xFF,
+                              (c>>16) & 0xFF);
 			   }
 			}
 			else
@@ -1941,8 +1917,7 @@ void fixup_datafile(DATAFILE *data)
 			      g = (c>>8) & 0xFF;
 			      b = (c>>16) & 0xFF;
 			      if (depth == 32) {
-				 a = (c>>24) & 0xFF;
-				 *s32 = makeacol32(r, g, b, a);
+                                 *s32 = makeacol32(r, g, b, (c>>24) & 0xFF);
 			      }
 			      else
 				 *s32 = makecol24(r, g, b);

Attachment: datafile.gz
Description: application/gzip-compressed



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/