aboutsummaryrefslogtreecommitdiff
path: root/scumm
diff options
context:
space:
mode:
authorJonathan Gray2003-06-06 07:35:19 +0000
committerJonathan Gray2003-06-06 07:35:19 +0000
commit620762b46626593fe768aa7a4ca2c1f2b0a84d78 (patch)
treee50a319f0df0021e3958ae0d9f7756e3a11e69a0 /scumm
parent00288b07f8463b61a39ab57eec415f149c333fb1 (diff)
downloadscummvm-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.cpp2
-rw-r--r--scumm/object.cpp6
-rw-r--r--scumm/verbs.cpp1
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;