diff options
author | Paweł Kołodziejski | 2002-10-27 10:31:07 +0000 |
---|---|---|
committer | Paweł Kołodziejski | 2002-10-27 10:31:07 +0000 |
commit | d5473c6f5a7752503bbfc2be46c1ce3fd73d03f3 (patch) | |
tree | 12bffb75b755090671a4093fac73e55fbc0a7c3b /scumm/gfx.cpp | |
parent | 8697f942eccf8e1cb7dcad23330a48ceb991750d (diff) | |
download | scummvm-rg350-d5473c6f5a7752503bbfc2be46c1ce3fd73d03f3.tar.gz scummvm-rg350-d5473c6f5a7752503bbfc2be46c1ce3fd73d03f3.tar.bz2 scummvm-rg350-d5473c6f5a7752503bbfc2be46c1ce3fd73d03f3.zip |
corrections to initscreens for scummV7+
svn-id: r5332
Diffstat (limited to 'scumm/gfx.cpp')
-rw-r--r-- | scumm/gfx.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/scumm/gfx.cpp b/scumm/gfx.cpp index 230afe38fb..d7b1996074 100644 --- a/scumm/gfx.cpp +++ b/scumm/gfx.cpp @@ -50,7 +50,7 @@ void Scumm::getGraphicsPerformance() if (!(_features & GF_SMALL_HEADER)) // Variable is reserved for game scripts in earlier games _vars[VAR_PERFORMANCE_2] = 0; - if (_gameId == GID_DIG) + if (_features & GF_AFTER_V7) initScreens(0, 0, _realWidth, _realHeight); else initScreens(0, 16, _realWidth, 144); @@ -88,7 +88,7 @@ void Scumm::initVirtScreen(int slot, int number, int top, int width, int height, assert(height >= 0); assert(slot >= 0 && slot < 4); - if (_gameId == GID_DIG) { + if (_features & GF_AFTER_V7) { if ((!slot) && (_scrHeight != 0)) height = _scrHeight; } @@ -105,8 +105,11 @@ void Scumm::initVirtScreen(int slot, int number, int top, int width, int height, vs->size = size; vs->backBuf = NULL; - if (vs->scrollable) + if ((vs->scrollable) && (_features & GF_AFTER_V7)) { size += _realWidth * 8; + } else { + size += _realWidth * 4; + } createResource(rtBuffer, slot + 1, size); vs->screenPtr = getResourceAddress(rtBuffer, slot + 1); @@ -1224,7 +1227,9 @@ void Gdi::decompressMaskImg() int height = _numLinesToProcess; byte b, c; - height--; // FIXME: This seems to fix The Dig nexus wrapping corrupting memory.. + if (_vm->_gameId == GID_DIG) + height--; + // FIXME: This seems to fix The Dig nexus wrapping corrupting memory.. // and doesn't break any other games.. but is it correct? If so, // do we need to mirror this change anywhere else? while (1) { |