From ad23981a4e7ab004b6b671ea4a54fb7cc496f247 Mon Sep 17 00:00:00 2001 From: Travis Howell Date: Fri, 8 Oct 2004 10:49:30 +0000 Subject: Cleanup svn-id: r15469 --- scumm/gfx.cpp | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'scumm') diff --git a/scumm/gfx.cpp b/scumm/gfx.cpp index ca4b6093f0..40c12480ca 100644 --- a/scumm/gfx.cpp +++ b/scumm/gfx.cpp @@ -1375,14 +1375,24 @@ void Gdi::drawBMAPBg(const byte *ptr, VirtScreen *vs, int startstrip) { // The following few lines more or less duplicate decompressBitmap(), only // for an area spanning multiple strips. In particular, the codecs 13 & 14 // in decompressBitmap call drawStripHE() - if (code == 150) { - fill((byte *)vs->backBuf, vs->pitch, *bmap_ptr, vs->w, vs->h); - } else if ((code >= 134 && code <= 138) || (code >= 144 && code <= 148)) { - _decomp_shr = code % 10; - _decomp_mask = 0xFF >> (8 - _decomp_shr); - + _decomp_shr = code % 10; + _decomp_mask = 0xFF >> (8 - _decomp_shr); + code /= 10; + + switch (code) { + case 13: + drawStripHE((byte *)vs->backBuf, vs->pitch, bmap_ptr, vs->w, vs->h, false); + break; + case 14: drawStripHE((byte *)vs->backBuf, vs->pitch, bmap_ptr, vs->w, vs->h, true); + break; + case 15: + fill((byte *)vs->backBuf, vs->pitch, *bmap_ptr, vs->w, vs->h); + break; + default: + error("Gdi::drawBMAPBg: default case %d", code); } + copyVirtScreenBuffers(Common::Rect(vs->w, vs->h)); int numzbuf = getZPlanes(ptr, zplane_list, true); -- cgit v1.2.3