diff options
author | Jonathan Gray | 2003-06-06 07:35:19 +0000 |
---|---|---|
committer | Jonathan Gray | 2003-06-06 07:35:19 +0000 |
commit | 620762b46626593fe768aa7a4ca2c1f2b0a84d78 (patch) | |
tree | e50a319f0df0021e3958ae0d9f7756e3a11e69a0 /scumm | |
parent | 00288b07f8463b61a39ab57eec415f149c333fb1 (diff) | |
download | scummvm-rg350-620762b46626593fe768aa7a4ca2c1f2b0a84d78.tar.gz scummvm-rg350-620762b46626593fe768aa7a4ca2c1f2b0a84d78.tar.bz2 scummvm-rg350-620762b46626593fe768aa7a4ca2c1f2b0a84d78.zip |
v1 object drawing updates from aquadran
svn-id: r8346
Diffstat (limited to 'scumm')
-rw-r--r-- | scumm/gfx.cpp | 2 | ||||
-rw-r--r-- | scumm/object.cpp | 6 | ||||
-rw-r--r-- | scumm/verbs.cpp | 1 |
3 files changed, 5 insertions, 4 deletions
diff --git a/scumm/gfx.cpp b/scumm/gfx.cpp index 4be47d05f1..11d409b40f 100644 --- a/scumm/gfx.cpp +++ b/scumm/gfx.cpp @@ -1354,7 +1354,7 @@ void Gdi::drawStripC64Object(byte *dst, int stripnr, int width, int height) { height >>= 3; width >>= 3; for (y = 0; y < height; y++) { - _C64Colors[3] = (_C64ObjectMap[y * width + stripnr] & 7); + _C64Colors[3] = (_C64ObjectMap[y * width + stripnr + (width * height)] & 7); for (i = 0; i < 8; i++) { for (j = 7; j >= 0; j--) { byte c = _C64CharMap[_C64ObjectMap[y * width + stripnr] * 8 + i] >> (j & 6); diff --git a/scumm/object.cpp b/scumm/object.cpp index e820ea1367..8f2533eb28 100644 --- a/scumm/object.cpp +++ b/scumm/object.cpp @@ -442,12 +442,12 @@ void Scumm::drawObject(int obj, int arg) { if (numstrip != 0) { byte flags = Gdi::dbAllowMaskOr; - // Sam & Max needs this to fix object-layering problems with - // the inventory and conversation icons. if (_features & GF_AFTER_V1) { gdi._C64ObjectMode = true; - gdi.decodeC64Gfx(ptr, gdi._C64ObjectMap, width * (height >> 3)); + gdi.decodeC64Gfx(ptr, gdi._C64ObjectMap, width * (height >> 3) * 3); } + // Sam & Max needs this to fix object-layering problems with + // the inventory and conversation icons. if ((_features & GF_AFTER_V7 || _gameId == GID_SAMNMAX) && getClass(od->obj_nr, kObjectClassIgnoreBoxes)) flags |= Gdi::dbDrawMaskOnAll; gdi.drawBitmap(ptr, &virtscr[0], x, ypos, width << 3, height, x - xpos, numstrip, flags); diff --git a/scumm/verbs.cpp b/scumm/verbs.cpp index b9db501b88..73e60d995d 100644 --- a/scumm/verbs.cpp +++ b/scumm/verbs.cpp @@ -455,6 +455,7 @@ void Scumm::drawVerbBitmap(int verb, int x, int y) { assert(imptr); if (_features & GF_AFTER_V1) { gdi._C64ObjectMode = true; + gdi.decodeC64Gfx(imptr, gdi._C64ObjectMap, imgw * imgh * 3); } for (i = 0; i < imgw; i++) { tmp = xstrip + i; |