aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTravis Howell2006-01-16 08:48:47 +0000
committerTravis Howell2006-01-16 08:48:47 +0000
commit63ff02b3b0f99b675518c76f8e08dea9fe0c1455 (patch)
treee3e4ded551d637b18386a6adc8f96405935e8b29
parent71b2b7b62ed109c76f2dcad4e58d66f76df61047 (diff)
downloadscummvm-rg350-63ff02b3b0f99b675518c76f8e08dea9fe0c1455.tar.gz
scummvm-rg350-63ff02b3b0f99b675518c76f8e08dea9fe0c1455.tar.bz2
scummvm-rg350-63ff02b3b0f99b675518c76f8e08dea9fe0c1455.zip
Merge back into single switch.
svn-id: r20050
-rw-r--r--scumm/gfx.cpp265
1 files changed, 132 insertions, 133 deletions
diff --git a/scumm/gfx.cpp b/scumm/gfx.cpp
index 0f204bb81b..3d99f94ca3 100644
--- a/scumm/gfx.cpp
+++ b/scumm/gfx.cpp
@@ -1622,16 +1622,23 @@ void Gdi::drawBMAPBg(const byte *ptr, VirtScreen *vs) {
// in decompressBitmap call drawStripHE()
_decomp_shr = code % 10;
_decomp_mask = 0xFF >> (8 - _decomp_shr);
- code /= 10;
switch (code) {
- case 13:
+ case 134:
+ case 135:
+ case 136:
+ case 137:
+ case 138:
drawStripHE(dst, vs->pitch, bmap_ptr, vs->w, vs->h, false);
break;
- case 14:
+ case 144:
+ case 145:
+ case 146:
+ case 147:
+ case 148:
drawStripHE(dst, vs->pitch, bmap_ptr, vs->w, vs->h, true);
break;
- case 15:
+ case 150:
fill(dst, vs->pitch, *bmap_ptr, vs->w, vs->h);
break;
default:
@@ -1775,144 +1782,136 @@ bool Gdi::decompressBitmap(byte *dst, int dstPitch, const byte *src, int numLine
return false;
}
- byte code = *src++;
- bool transpStrip = false;
-
if ((_vm->_platform == Common::kPlatformAmiga) && (_vm->_version >= 4))
_paletteMod = 16;
else
_paletteMod = 0;
- if (code <= 10) {
- switch (code) {
- case 1:
- drawStripRaw(dst, dstPitch, src, numLinesToProcess, false);
- break;
-
- case 2:
- unkDecode8(dst, dstPitch, src, numLinesToProcess); /* Ender - Zak256/Indy256 */
- break;
-
- case 3:
- unkDecode9(dst, dstPitch, src, numLinesToProcess); /* Ender - Zak256/Indy256 */
- break;
-
- case 4:
- unkDecode10(dst, dstPitch, src, numLinesToProcess); /* Ender - Zak256/Indy256 */
- break;
-
- case 7:
- unkDecode11(dst, dstPitch, src, numLinesToProcess); /* Ender - Zak256/Indy256 */
- break;
-
- case 8:
- // Used in 3DO versions of HE games
- transpStrip = true;
- drawStrip3DO(dst, dstPitch, src, numLinesToProcess, true);
- break;
-
- case 9:
- drawStrip3DO(dst, dstPitch, src, numLinesToProcess, false);
- break;
+ byte code = *src++;
+ bool transpStrip = false;
+ _decomp_shr = code % 10;
+ _decomp_mask = 0xFF >> (8 - _decomp_shr);
- case 10:
- // Used in Amiga version of Monkey Island 1
- drawStripEGA(dst, dstPitch, src, numLinesToProcess);
- break;
+ switch (code) {
+ case 1:
+ drawStripRaw(dst, dstPitch, src, numLinesToProcess, false);
+ break;
- default:
- error("Gdi::decompressBitmap: default case %d", code);
- }
- } else {
- _decomp_shr = code % 10;
- _decomp_mask = 0xFF >> (8 - _decomp_shr);
-
- switch (code) {
- case 14:
- case 15:
- case 16:
- case 17:
- case 18:
- drawStripBasicV(dst, dstPitch, src, numLinesToProcess, false);
- break;
-
- case 24:
- case 25:
- case 26:
- case 27:
- case 28:
- drawStripBasicH(dst, dstPitch, src, numLinesToProcess, false);
- break;
-
- case 34:
- case 35:
- case 36:
- case 37:
- case 38:
- transpStrip = true;
- drawStripBasicV(dst, dstPitch, src, numLinesToProcess, true);
- break;
-
- case 44:
- case 45:
- case 46:
- case 47:
- case 48:
- transpStrip = true;
- drawStripBasicH(dst, dstPitch, src, numLinesToProcess, true);
- break;
-
- case 64:
- case 65:
- case 66:
- case 67:
- case 68:
- case 104:
- case 105:
- case 106:
- case 107:
- case 108:
- drawStripComplex(dst, dstPitch, src, numLinesToProcess, false);
- break;
-
- case 84:
- case 85:
- case 86:
- case 87:
- case 88:
- case 124:
- case 125:
- case 126:
- case 127:
- case 128:
- transpStrip = true;
- drawStripComplex(dst, dstPitch, src, numLinesToProcess, true);
- break;
-
- case 134:
- case 135:
- case 136:
- case 137:
- case 138:
- drawStripHE(dst, dstPitch, src, 8, numLinesToProcess, false);
- break;
-
- case 144:
- case 145:
- case 146:
- case 147:
- case 148:
- transpStrip = true;
- drawStripHE(dst, dstPitch, src, 8, numLinesToProcess, true);
- break;
+ case 2:
+ unkDecode8(dst, dstPitch, src, numLinesToProcess); /* Ender - Zak256/Indy256 */
+ break;
- case 149:
- drawStripRaw(dst, dstPitch, src, numLinesToProcess, true);
- break;
+ case 3:
+ unkDecode9(dst, dstPitch, src, numLinesToProcess); /* Ender - Zak256/Indy256 */
+ break;
- default:
- error("Gdi::decompressBitmap: default case %d", code);
- }
+ case 4:
+ unkDecode10(dst, dstPitch, src, numLinesToProcess); /* Ender - Zak256/Indy256 */
+ break;
+
+ case 7:
+ unkDecode11(dst, dstPitch, src, numLinesToProcess); /* Ender - Zak256/Indy256 */
+ break;
+
+ case 8:
+ // Used in 3DO versions of HE games
+ transpStrip = true;
+ drawStrip3DO(dst, dstPitch, src, numLinesToProcess, true);
+ break;
+
+ case 9:
+ drawStrip3DO(dst, dstPitch, src, numLinesToProcess, false);
+ break;
+
+ case 10:
+ // Used in Amiga version of Monkey Island 1
+ drawStripEGA(dst, dstPitch, src, numLinesToProcess);
+ break;
+
+ case 14:
+ case 15:
+ case 16:
+ case 17:
+ case 18:
+ drawStripBasicV(dst, dstPitch, src, numLinesToProcess, false);
+ break;
+
+ case 24:
+ case 25:
+ case 26:
+ case 27:
+ case 28:
+ drawStripBasicH(dst, dstPitch, src, numLinesToProcess, false);
+ break;
+
+ case 34:
+ case 35:
+ case 36:
+ case 37:
+ case 38:
+ transpStrip = true;
+ drawStripBasicV(dst, dstPitch, src, numLinesToProcess, true);
+ break;
+
+ case 44:
+ case 45:
+ case 46:
+ case 47:
+ case 48:
+ transpStrip = true;
+ drawStripBasicH(dst, dstPitch, src, numLinesToProcess, true);
+ break;
+
+ case 64:
+ case 65:
+ case 66:
+ case 67:
+ case 68:
+ case 104:
+ case 105:
+ case 106:
+ case 107:
+ case 108:
+ drawStripComplex(dst, dstPitch, src, numLinesToProcess, false);
+ break;
+
+ case 84:
+ case 85:
+ case 86:
+ case 87:
+ case 88:
+ case 124:
+ case 125:
+ case 126:
+ case 127:
+ case 128:
+ transpStrip = true;
+ drawStripComplex(dst, dstPitch, src, numLinesToProcess, true);
+ break;
+
+ case 134:
+ case 135:
+ case 136:
+ case 137:
+ case 138:
+ drawStripHE(dst, dstPitch, src, 8, numLinesToProcess, false);
+ break;
+
+ case 144:
+ case 145:
+ case 146:
+ case 147:
+ case 148:
+ transpStrip = true;
+ drawStripHE(dst, dstPitch, src, 8, numLinesToProcess, true);
+ break;
+
+ case 149:
+ drawStripRaw(dst, dstPitch, src, numLinesToProcess, true);
+ break;
+
+ default:
+ error("Gdi::decompressBitmap: default case %d", code);
}
return transpStrip;