[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