aboutsummaryrefslogtreecommitdiff
path: root/scumm/gfx.cpp
diff options
context:
space:
mode:
authorPaweł Kołodziejski2002-10-27 10:31:07 +0000
committerPaweł Kołodziejski2002-10-27 10:31:07 +0000
commitd5473c6f5a7752503bbfc2be46c1ce3fd73d03f3 (patch)
tree12bffb75b755090671a4093fac73e55fbc0a7c3b /scumm/gfx.cpp
parent8697f942eccf8e1cb7dcad23330a48ceb991750d (diff)
downloadscummvm-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.cpp13
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) {