diff options
-rw-r--r-- | scumm/gfx.cpp | 19 | ||||
-rw-r--r-- | scumm/verbs.cpp | 2 |
2 files changed, 11 insertions, 10 deletions
diff --git a/scumm/gfx.cpp b/scumm/gfx.cpp index 23dde977ff..230afe38fb 100644 --- a/scumm/gfx.cpp +++ b/scumm/gfx.cpp @@ -1333,7 +1333,7 @@ void Gdi::unkDecode1() do { if (!--_currentX) { _currentX = 8; - dst += 312; + dst += _vm->_realWidth - 8; if (!--_tempNumLines) return; } @@ -1351,7 +1351,7 @@ void Gdi::unkDecode1() bits >>= _decomp_shr; } } while (--_currentX); - dst += 312; + dst += _vm->_realWidth - 8; } while (--_tempNumLines); } @@ -1386,7 +1386,7 @@ void Gdi::unkDecode2() color += inc; } } while (--_currentX); - dst += 312; + dst += _vm->_realWidth - 8; } while (--_tempNumLines); } @@ -1424,7 +1424,7 @@ void Gdi::unkDecode3() do { if (!--_currentX) { _currentX = 8; - dst += 312; + dst += _vm->_realWidth - 8; if (!--_tempNumLines) return; } @@ -1434,7 +1434,7 @@ void Gdi::unkDecode3() do { if (!--_currentX) { _currentX = 8; - dst += 312; + dst += _vm->_realWidth - 8; if (!--_tempNumLines) return; } @@ -1451,7 +1451,7 @@ void Gdi::unkDecode3() bits >>= _decomp_shr; } } while (--_currentX); - dst += 312; + dst += _vm->_realWidth - 8; } while (--_tempNumLines); } @@ -1518,7 +1518,7 @@ void Gdi::unkDecode5() color += inc; } } while (--_currentX); - dst += 312; + dst += _vm->_realWidth - 8; } while (--_tempNumLines); } @@ -1800,6 +1800,7 @@ void Scumm::restoreBG(int left, int top, int right, int bottom) bgbak = getResourceAddress(rtBuffer, vs->number + 5) + height; mask = getResourceAddress(rtBuffer, 9) + top * gdi._numStrips + (left >> 3) + _screenStartStrip; if (vs->number == 0) { + // FIXME: hardcoded value mask += vs->topline * 216; } @@ -3246,7 +3247,7 @@ void Scumm::drawBomp(BompDrawData *bd, int param1, byte *dataPtr, int param2, in for (i = 0; i < num; i++) { if (bd->scale_x == 255 || scale_cols[src_x]) { if (dst_x >= 0 && dst_x < bd->outwidth) { - if (!(*(mask + dst_y * 40 + (dst_x >> 3)) & revBitMask[dst_x & 7])) + if (!(*(mask + dst_y * gdi._numStrips + (dst_x >> 3)) & revBitMask[dst_x & 7])) *d = blend(_currentPalette, color, *d); } @@ -3259,7 +3260,7 @@ void Scumm::drawBomp(BompDrawData *bd, int param1, byte *dataPtr, int param2, in for (i = 0; i < num; i++) { if (bd->scale_x == 255 || scale_cols[src_x]) { if (dst_x >= 0 && dst_x < bd->outwidth) - if (!(*(mask + dst_y * 40 + (dst_x >> 3)) & revBitMask[dst_x & 7])) + if (!(*(mask + dst_y * gdi._numStrips + (dst_x >> 3)) & revBitMask[dst_x & 7])) *d = blend(_currentPalette, src[i], *d); d++; dst_x++; diff --git a/scumm/verbs.cpp b/scumm/verbs.cpp index 47c3595e25..0be0ac59dc 100644 --- a/scumm/verbs.cpp +++ b/scumm/verbs.cpp @@ -134,7 +134,7 @@ void Scumm::drawVerb(int vrb, int mode) _string[4].charset = vs->charset_nr; _string[4].xpos = vs->x; _string[4].ypos = vs->y; - _string[4].right = 319; + _string[4].right = _realWidth - 1; _string[4].center = vs->center; if (vs->curmode == 2) |