diff options
author | Vincent Hamm | 2002-03-09 09:15:34 +0000 |
---|---|---|
committer | Vincent Hamm | 2002-03-09 09:15:34 +0000 |
commit | 0724869c9467dbd33e7348d3b88693986452af94 (patch) | |
tree | 13c4d11def2fae5957cec25414feca0bd7251400 | |
parent | 7fb4cbfb673128839fc5344ca9810371019a6fe3 (diff) | |
download | scummvm-rg350-0724869c9467dbd33e7348d3b88693986452af94.tar.gz scummvm-rg350-0724869c9467dbd33e7348d3b88693986452af94.tar.bz2 scummvm-rg350-0724869c9467dbd33e7348d3b88693986452af94.zip |
Fixed a few graphic glitchs in zak256
svn-id: r3704
-rw-r--r-- | gfx.cpp | 45 |
1 files changed, 31 insertions, 14 deletions
@@ -1217,10 +1217,41 @@ void Gdi::unkDecode6() { } while (--_currentX); } +/* Ender - Zak256/Indy256 decoders */ +#define READ_256BIT \ + if ((mask <<= 1) == 256) {buffer = *src++; mask = 1;} \ + bits = ((buffer & mask) != 0); + +#define NEXT_ROW \ + dst += 320; \ + if (--h == 0) { \ + if (!--_currentX) \ + return; \ + dst -= _vertStripNextInc; \ + h = _numLinesToProcess; \ + } + void Gdi::unkDecode7() { byte *src = _smap_ptr; byte *dst = _bgbak_ptr; int height = _numLinesToProcess; + uint h = _numLinesToProcess; + + + if(_vm->_features & GF_OLD256) + { + _currentX = 8; + for(;;) { + + byte color = *src++; + + + *dst = color; + NEXT_ROW + } + return; + } + do { /* Endian safe */ #if defined(SCUMM_NEED_ALIGNMENT) @@ -1234,20 +1265,6 @@ void Gdi::unkDecode7() { } while (--height); } -/* Ender - Zak256/Indy256 decoders */ -#define READ_256BIT \ - if ((mask <<= 1) == 256) {buffer = *src++; mask = 1;} \ - bits = ((buffer & mask) != 0); - -#define NEXT_ROW \ - dst += 320; \ - if (--h == 0) { \ - if (!--_currentX) \ - return; \ - dst -= _vertStripNextInc; \ - h = _numLinesToProcess; \ - } - void Gdi::unkDecode8() { byte *src = _smap_ptr; byte *dst = _bgbak_ptr; |