SCUMM: Make the dog sign colors in MI1 VGA CD closer to MI1 VGA floppy
The colors in the sign that tells you that the dogs are only sleeping are much harder to read in the VGA CD version than in the VGA floppy version. I assume these were not picked deliberately, but rather a consequence of the palette being different. So this works around that by temporarily remapping the palette for the sign object, and adjusting one of the text colors to something close to the floppy version.
This commit is contained in:
parent
a029ea203e
commit
effb129776
2 changed files with 25 additions and 0 deletions
|
@ -2227,6 +2227,21 @@ bool Gdi::drawStrip(byte *dstPtr, VirtScreen *vs, int x, int y, const int width,
|
|||
_roomPalette[13] = 80;
|
||||
}
|
||||
|
||||
// WORKAROUND: In the CD version of MI1, the sign about how the dogs
|
||||
// are only sleeping has a dark blue background instead of white. This
|
||||
// makes the sign harder to read, so temporarily remap the color while
|
||||
// drawing it. The text is also slightly different, but that is taken
|
||||
// care of elsewhere.
|
||||
|
||||
else if (_vm->_game.id == GID_MONKEY && _vm->_currentRoom == 36 && vs->number == kMainVirtScreen && y == 8 && x >= 7 && x <= 30 && height == 88 && _vm->_enableEnhancements) {
|
||||
_roomPalette[47] = 15;
|
||||
|
||||
byte result = decompressBitmap(dstPtr, vs->pitch, smap_ptr + offset, height);
|
||||
|
||||
_roomPalette[47] = 47;
|
||||
return result;
|
||||
}
|
||||
|
||||
return decompressBitmap(dstPtr, vs->pitch, smap_ptr + offset, height);
|
||||
}
|
||||
|
||||
|
|
|
@ -3260,6 +3260,16 @@ void ScummEngine_v5::decodeParseString() {
|
|||
if (_game.id == GID_INDY3 && _game.platform == Common::kPlatformMacintosh && vm.slot[_currentScript].number == 134 && color == 0x8F)
|
||||
color = 0x87;
|
||||
|
||||
// WORKAROUND: In the CD version of MI1, the text in
|
||||
// the sign about the dogs only sleeping has the wrong
|
||||
// color. We can't find an exact match to what the
|
||||
// floppy version used, but we pick on that's as close
|
||||
// as we can get.
|
||||
|
||||
else if (_game.id == GID_MONKEY && _currentRoom == 36 && vm.slot[_currentScript].number == 201 && color == 2 && _enableEnhancements) {
|
||||
color = findClosestPaletteColor(_currentPalette, 256, 0, 171, 0);
|
||||
}
|
||||
|
||||
_string[textSlot].color = color;
|
||||
break;
|
||||
case 2: // SO_CLIPPED
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue