aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Hamm2002-03-09 09:15:34 +0000
committerVincent Hamm2002-03-09 09:15:34 +0000
commit0724869c9467dbd33e7348d3b88693986452af94 (patch)
tree13c4d11def2fae5957cec25414feca0bd7251400
parent7fb4cbfb673128839fc5344ca9810371019a6fe3 (diff)
downloadscummvm-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.cpp45
1 files changed, 31 insertions, 14 deletions
diff --git a/gfx.cpp b/gfx.cpp
index 09270b19a8..1a2d48290d 100644
--- a/gfx.cpp
+++ b/gfx.cpp
@@ -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;