[Scummvm-git-logs] scummvm master -> be6252396ec99b9ae43ef10b1a21122f3207d200

bluegr noreply at scummvm.org
Tue Jul 26 18:18:27 UTC 2022


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:
be6252396e SCUMM: Fix some misattributed lines when speaking to Evelyn Morrison in Sam & Max


Commit: be6252396ec99b9ae43ef10b1a21122f3207d200
    https://github.com/scummvm/scummvm/commit/be6252396ec99b9ae43ef10b1a21122f3207d200
Author: Donovan Watteau (contrib at dwatteau.fr)
Date: 2022-07-26T21:18:22+03:00

Commit Message:
SCUMM: Fix some misattributed lines when speaking to Evelyn Morrison in Sam & Max

In some versions of Sam & Max, such as the French and German releases,
talking to Evelyn Morrison while wearing the bigfoot costume will
attach some lines to Max even though Sam's voice is used there.

Changed paths:
    engines/scumm/string.cpp


diff --git a/engines/scumm/string.cpp b/engines/scumm/string.cpp
index 0080dc0e33f..618344eb4b8 100644
--- a/engines/scumm/string.cpp
+++ b/engines/scumm/string.cpp
@@ -95,7 +95,7 @@ void ScummEngine::printString(int m, const byte *msg) {
 					if (a)
 						a->setAnimSpeed(2);
 					a = derefActorSafe(10, "printString");
-				if (a)
+					if (a)
 						a->setAnimSpeed(2);
 				}
 			}
@@ -1165,6 +1165,18 @@ int ScummEngine::convertMessageToString(const byte *msg, byte *dst, int dstSize)
 					*dst++ = chr;
 					*dst++ = src[num+0];
 					*dst++ = src[num+1];
+
+					// WORKAROUND: In some versions of Sam & Max, talking to Evelyn Morrison
+					// while wearing the bigfoot costume misattributes some lines to Max even
+					// though Sam is the one actually speaking. For example, the French and
+					// German releases use `startAnim(8)` while the English release correctly
+					// uses `startAnim(7)` for this.
+					if (_game.id == GID_SAMNMAX && _currentRoom == 52 && vm.slot[_currentScript].number == 102 &&
+						chr == 9 && readVar(0x8000 + 95) != 0 && (VAR(171) == 997 || VAR(171) == 998) &&
+						dst[-2] == 8 && _enableEnhancements) {
+						dst[-2] = 7;
+					}
+
 					if (_game.version == 8) {
 						*dst++ = src[num+2];
 						*dst++ = src[num+3];




More information about the Scummvm-git-logs mailing list