diff tools/lib64fmts.c @ 1577:632f1dbc83eb

Get rid of some code duplication by merging functionality of certain pixel decoding functions into the generic one.
author Matti Hamalainen <ccr@tnsp.org>
date Sun, 13 May 2018 09:50:13 +0300
parents 2a9d0431e7b4
children fb60abb09a65
line wrap: on
line diff
--- a/tools/lib64fmts.c	Sun May 13 09:49:03 2018 +0300
+++ b/tools/lib64fmts.c	Sun May 13 09:50:13 2018 +0300
@@ -249,7 +249,7 @@
     const int vshift, const int vbitmap, const int raster)
 {
     (void) raster;
-    return dmC64GetGenericMCPixel(img, bmoffs, scroffs, vshift, 0, vbitmap, 0);
+    return dmC64GetGenericMCPixel(img, bmoffs, scroffs, vshift, 0, vbitmap, 0, img->bgcolor);
 }
 
 
@@ -404,13 +404,10 @@
         vr = raster - 100;
     }
 
-    switch ((img->bitmap[vbitmap][bmoffs] >> vshift) & 3)
-    {
-        case  0: return img->extraData[vb][vr] & 15; break;
-        case  1: return img->screen[vbank][scroffs] >> 4; break;
-        case  2: return img->screen[vbank][scroffs] & 15; break;
-        default: return img->color[0][scroffs] & 15; break;
-    }
+    return dmC64GetGenericMCPixel(
+        img, bmoffs, scroffs, vshift,
+        vbank, vbitmap, 0,
+        img->extraData[vb][vr] & 15);
 }
 
 
@@ -431,13 +428,10 @@
         vr = raster - 177;
     }
 
-    switch ((img->bitmap[vbitmap][bmoffs] >> vshift) & 3)
-    {
-        case  0: return img->extraData[vb][vr] & 15; break;
-        case  1: return img->screen[vbank][scroffs] >> 4; break;
-        case  2: return img->screen[vbank][scroffs] & 15; break;
-        default: return img->color[0][scroffs] & 15; break;
-    }
+    return dmC64GetGenericMCPixel(
+        img, bmoffs, scroffs, vshift,
+        vbank, vbitmap, 0,
+        img->extraData[vb][vr] & 15);
 }
 
 
@@ -446,13 +440,11 @@
     const int vshift, const int vbitmap, const int raster)
 {
     const int vbank = raster & 7;
-    switch ((img->bitmap[vbitmap][bmoffs] >> vshift) & 3)
-    {
-        case  0: return img->extraData[0][raster]; break;
-        case  1: return img->screen[vbank][scroffs] >> 4; break;
-        case  2: return img->screen[vbank][scroffs] & 15; break;
-        default: return img->color[0][scroffs] & 15; break;
-    }
+
+    return dmC64GetGenericMCPixel(
+        img, bmoffs, scroffs, vshift,
+        vbank, vbitmap, 0,
+        img->extraData[0][raster] & 15);
 }
 
 
@@ -460,7 +452,7 @@
     const DMC64Image *img, const int bmoffs, const int scroffs,
     const int vshift, const int vbitmap, const int raster)
 {
-    return dmC64GetGenericMCPixel(img, bmoffs, scroffs, vshift, raster & 7, vbitmap, 0);
+    return dmC64GetGenericMCPixel(img, bmoffs, scroffs, vshift, raster & 7, vbitmap, 0, img->bgcolor);
 }