[Scummvm-git-logs] scummvm master -> 30b46ce49e7148a24ec5555192fceba2f0419474
dwatteau
noreply at scummvm.org
Sat Sep 7 00:03:15 UTC 2024
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
30b46ce49e SCUMM: MONKEY1: Fix the "Important Notice" sign workaround for the Macintosh release
Commit: 30b46ce49e7148a24ec5555192fceba2f0419474
https://github.com/scummvm/scummvm/commit/30b46ce49e7148a24ec5555192fceba2f0419474
Author: Donovan Watteau (contrib at dwatteau.fr)
Date: 2024-09-07T02:03:03+02:00
Commit Message:
SCUMM: MONKEY1: Fix the "Important Notice" sign workaround for the Macintosh release
For some reason, the background color of the sign at the Governor's mansion
is already white in the Macintosh release (at least in the one I have here),
but the scripts still have the wrong color set. It looks like the Macintosh
interpreter may have fixed this on the fly...
So we still have to fix this, but for the Macintosh release the Enhancement
will always be enabled, since it matches the original behavior. Also, this
release only changed the background color, not the text color.
See my addition to the previous GH-4168 PR for a screenshot.
If someone has a Macintosh interpreter showing a different behavior, or
wants to analyze it to see whether the fix is indeed hardcoded into it,
I'd be curious to know that, of course :)
Changed paths:
engines/scumm/gfx.cpp
engines/scumm/script_v5.cpp
diff --git a/engines/scumm/gfx.cpp b/engines/scumm/gfx.cpp
index 59a808a1450..8274454fec2 100644
--- a/engines/scumm/gfx.cpp
+++ b/engines/scumm/gfx.cpp
@@ -2482,10 +2482,12 @@ bool Gdi::drawStrip(byte *dstPtr, VirtScreen *vs, int x, int y, const int width,
// 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.
+ // care of in ScummEngine_v5::decodeParseString().
//
// The SEGA CD version uses the old colors already, and the FM Towns
// version makes the text more readable by giving it a black outline.
+ // The Macintosh release fixes the background color, but not through
+ // its scripts, apparently (was it done in its interpreter?).
else if (_vm->_game.id == GID_MONKEY &&
!(_vm->_game.features & GF_ULTIMATE_TALKIE) &&
@@ -2494,7 +2496,8 @@ bool Gdi::drawStrip(byte *dstPtr, VirtScreen *vs, int x, int y, const int width,
_vm->_currentRoom == 36 &&
vs->number == kMainVirtScreen &&
y == 8 && x >= 7 && x <= 30 && height == 88 &&
- _vm->enhancementEnabled(kEnhVisualChanges)) {
+ (_vm->enhancementEnabled(kEnhVisualChanges) ||
+ _vm->_game.platform == Common::kPlatformMacintosh)) {
_roomPalette[47] = 15;
byte result = decompressBitmap(dstPtr, vs->pitch, smap_ptr + offset, height);
diff --git a/engines/scumm/script_v5.cpp b/engines/scumm/script_v5.cpp
index f22f5b88eba..36ef84964fc 100644
--- a/engines/scumm/script_v5.cpp
+++ b/engines/scumm/script_v5.cpp
@@ -3277,16 +3277,21 @@ void ScummEngine_v5::decodeParseString() {
//
// The SEGA CD version uses the old colors already, and
// the FM Towns version makes the text more readable by
- // giving it a black outline.
+ // giving it a black outline. The Macintosh release only
+ // requires changing the color of the background, not the
+ // text.
+ //
+ // See also the related Gdi::drawStrip() workaround.
else if (_game.id == GID_MONKEY &&
!(_game.features & GF_ULTIMATE_TALKIE) &&
_game.platform != Common::kPlatformSegaCD &&
_game.platform != Common::kPlatformFMTowns &&
+ _game.platform != Common::kPlatformMacintosh &&
_currentRoom == 36 &&
vm.slot[_currentScript].number == 201 &&
color == 2 &&
- enhancementEnabled(kEnhVisualChanges)) {
+ enhancementEnabled(kEnhVisualChanges)) {
color = findClosestPaletteColor(_currentPalette, 256, 0, 171, 0);
}
More information about the Scummvm-git-logs
mailing list