v1 object drawing updates from aquadran

svn-id: r8346
This commit is contained in:
Jonathan Gray 2003-06-06 07:35:19 +00:00
parent 00288b07f8
commit 620762b466
3 changed files with 5 additions and 4 deletions

View file

@ -1354,7 +1354,7 @@ void Gdi::drawStripC64Object(byte *dst, int stripnr, int width, int height) {
height >>= 3; height >>= 3;
width >>= 3; width >>= 3;
for (y = 0; y < height; y++) { 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 (i = 0; i < 8; i++) {
for (j = 7; j >= 0; j--) { for (j = 7; j >= 0; j--) {
byte c = _C64CharMap[_C64ObjectMap[y * width + stripnr] * 8 + i] >> (j & 6); byte c = _C64CharMap[_C64ObjectMap[y * width + stripnr] * 8 + i] >> (j & 6);

View file

@ -442,12 +442,12 @@ void Scumm::drawObject(int obj, int arg) {
if (numstrip != 0) { if (numstrip != 0) {
byte flags = Gdi::dbAllowMaskOr; byte flags = Gdi::dbAllowMaskOr;
// Sam & Max needs this to fix object-layering problems with
// the inventory and conversation icons.
if (_features & GF_AFTER_V1) { if (_features & GF_AFTER_V1) {
gdi._C64ObjectMode = true; 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)) if ((_features & GF_AFTER_V7 || _gameId == GID_SAMNMAX) && getClass(od->obj_nr, kObjectClassIgnoreBoxes))
flags |= Gdi::dbDrawMaskOnAll; flags |= Gdi::dbDrawMaskOnAll;
gdi.drawBitmap(ptr, &virtscr[0], x, ypos, width << 3, height, x - xpos, numstrip, flags); gdi.drawBitmap(ptr, &virtscr[0], x, ypos, width << 3, height, x - xpos, numstrip, flags);

View file

@ -455,6 +455,7 @@ void Scumm::drawVerbBitmap(int verb, int x, int y) {
assert(imptr); assert(imptr);
if (_features & GF_AFTER_V1) { if (_features & GF_AFTER_V1) {
gdi._C64ObjectMode = true; gdi._C64ObjectMode = true;
gdi.decodeC64Gfx(imptr, gdi._C64ObjectMap, imgw * imgh * 3);
} }
for (i = 0; i < imgw; i++) { for (i = 0; i < imgw; i++) {
tmp = xstrip + i; tmp = xstrip + i;