diff --git a/engines/scumm/script_v5.cpp b/engines/scumm/script_v5.cpp index bdac168d8c9..58a97cb4333 100644 --- a/engines/scumm/script_v5.cpp +++ b/engines/scumm/script_v5.cpp @@ -3430,6 +3430,19 @@ void ScummEngine_v5::decodeParseStringTextString(int textSlot) { // "I heard that!" offscreen. _string[textSlot].color = 0xF9; printString(textSlot, _scriptPointer); + } else if (_game.id == GID_MONKEY && _game.platform != Common::kPlatformSegaCD && + (vm.slot[_currentScript].number == 140 || vm.slot[_currentScript].number == 294) && + _actorToPrintStrFor == 255 && _string[textSlot].color == 0x06 && + strcmp(_game.variant, "SE Talkie") != 0 && _enableEnhancements) { + // WORKAROUND: In MI1 CD, the colors when the navigator head speaks are + // not the intended ones (dark purple instead of brown), because the + // original `Color(6)` parameter was kept without adjusting it for the + // v5 palette changes (a common oversight in that version). The verb + // options may also look wrong in that scene, but we don't fix that, as + // this font in displayed in green, white or purple between the + // different releases and scenes, so we don't know the original intent. + _string[textSlot].color = 0xEA; + printString(textSlot, _scriptPointer); } else if (_game.id == GID_MONKEY && _roomResource == 25 && vm.slot[_currentScript].number == 205) { printPatchedMI1CannibalString(textSlot, _scriptPointer); } else {