[Scummvm-git-logs] scummvm master -> 9d9b6be671ac73b2f237dd757324738ae60a3776

eriktorbjorn noreply at scummvm.org
Wed Apr 6 09:41:28 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:
9d9b6be671 SCUMM: Hack around Mac Loom text glitch


Commit: 9d9b6be671ac73b2f237dd757324738ae60a3776
    https://github.com/scummvm/scummvm/commit/9d9b6be671ac73b2f237dd757324738ae60a3776
Author: Torbjörn Andersson (eriktorbjorn at users.sourceforge.net)
Date: 2022-04-06T11:40:58+02:00

Commit Message:
SCUMM: Hack around Mac Loom text glitch

When using Straw To Gold (either on Loom island or in the Blacksmiths's
cell), the "gold" / "straw" texts overlap each other. This does not
happen in the original. Normally, script 8 would be responsible for
erasing that part of the screen, I think, but the Mac version does
things differently than the DOS version and I can't figure out how to
get it to work properly.

Maybe it's all down to differences in how we implement the
high-resolution text rendering in ScummVM? I'm adding a hack to fix it
for now, but if anyone has a better solution I'd be happy to see it go.

Fortunately, only two games use this, and the hack only affects one of
them. I've played through the game - again - without seeing any
regressions.

Changed paths:
    engines/scumm/verbs.cpp


diff --git a/engines/scumm/verbs.cpp b/engines/scumm/verbs.cpp
index 53325ed864f..83b565c8bd7 100644
--- a/engines/scumm/verbs.cpp
+++ b/engines/scumm/verbs.cpp
@@ -1277,6 +1277,15 @@ void ScummEngine::setVerbObject(uint room, uint object, uint verb) {
 	if (whereIsObject(object) == WIO_FLOBJECT)
 		error("Can't grab verb image from flobject");
 
+	// HACK: When the straw changes to gold, or the other way around, the
+	// object image changes, but the text is not undrawn. This causes the
+	// two object names to overlap each other. The text can be undrawn by
+	// script 8, but the logic for it is more convoluted in the Mac version
+	// than in the EGA DOS version, and I can't figure out how to bend it
+	// to my will. So hard-code the clearing here.
+	if (_game.id == GID_LOOM && verb == 53 && _game.platform == Common::kPlatformMacintosh)
+		drawBox(232, 152, 312, 192, 0);
+
 	if (_game.features & GF_OLD_BUNDLE) {
 		for (i = (_numLocalObjects-1); i > 0; i--) {
 			if (_objs[i].obj_nr == object) {




More information about the Scummvm-git-logs mailing list