SCUMM: Hack Indy 3 Mac credits to use correct text color

The credits script asks for white shadowed text, but the original (at
least when running in Basilisk II) uses light gray shadowed text. I have
no idea why, and the only workaround I can think of is to force the text
color this way.

It's possible for scripts to remap colors, of course, but that's not
what seems to be going on here.
This commit is contained in:
Torbjörn Andersson 2021-10-19 12:56:38 +02:00 committed by Torbjörn Andersson
parent 63a83d7eaa
commit 2dbf32353d

View file

@ -2766,6 +2766,7 @@ int ScummEngine_v5::getWordVararg(int *ptr) {
void ScummEngine_v5::decodeParseString() {
int textSlot;
int color;
switch (_actorToPrintStrFor) {
case 252:
@ -2791,7 +2792,16 @@ void ScummEngine_v5::decodeParseString() {
_string[textSlot].overhead = false;
break;
case 1: // SO_COLOR
_string[textSlot].color = getVarOrDirectByte(PARAM_1);
color = getVarOrDirectByte(PARAM_1);
// HACK: The Indy 3 credits script asks for white text
// with a shadow, but in a Mac emulator the text is
// drawn in light gray with a shadow instead. Very
// strange.
if (_game.id == GID_INDY3 && _game.platform == Common::kPlatformMacintosh && vm.slot[_currentScript].number == 134 && color == 0x8F)
color = 0x87;
_string[textSlot].color = color;
break;
case 2: // SO_CLIPPED
_string[textSlot].right = getVarOrDirectWord(PARAM_1);