[Scummvm-git-logs] scummvm master -> 422b8986f0a4a23bb14afc5c33dca381e0a10ff7

bluegr noreply at scummvm.org
Wed Apr 20 08:04:00 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:
422b8986f0 SCUMM: Fix Lima bird glitch in Zak FM-TOWNS (bug #2762)


Commit: 422b8986f0a4a23bb14afc5c33dca381e0a10ff7
    https://github.com/scummvm/scummvm/commit/422b8986f0a4a23bb14afc5c33dca381e0a10ff7
Author: Donovan Watteau (contrib at dwatteau.fr)
Date: 2022-04-20T11:03:55+03:00

Commit Message:
SCUMM: Fix Lima bird glitch in Zak FM-TOWNS (bug #2762)

When switching back to Zak after using the blue crystal on the bird in
Lima, the bird disappears, comes back, and disappears again.  This is a
very strange visual behavior that only happens in the FM-TOWNS version.

(This has been confirmed, back in 2006, to be an original bug that also
occurs under the Unz emulator.)

This V3 port added an unconditional putActor(6,136,0) call at the start
of the 201 script which controls this, negating the getActorX() and
getActorY() checks which happen a few lines later.  Ignoring this
putActor() call appears to restore the original V2 behavior, i.e. the
bird flies back to the pedestal.

Changed paths:
    engines/scumm/script_v5.cpp


diff --git a/engines/scumm/script_v5.cpp b/engines/scumm/script_v5.cpp
index fa7ab92bada..aad8de2c146 100644
--- a/engines/scumm/script_v5.cpp
+++ b/engines/scumm/script_v5.cpp
@@ -1700,6 +1700,13 @@ void ScummEngine_v5::o5_putActor() {
 		} else if (x == 176 && y == 78) {
 			x = 172;
 		}
+	} else if (_game.id == GID_ZAK && _game.platform == Common::kPlatformFMTowns && _currentRoom == 42 && vm.slot[_currentScript].number == 201 && act == 6 && x == 136 && y == 0 && _enableEnhancements) {
+		// WORKAROUND: bug #2762: When switching back to Zak after using the blue
+		// crystal on the bird in Lima, the bird will disappear, come back and
+		// disappear again. This is really strange and only happens with the
+		// FM-TOWNS version, which adds an unconditional putActor(6,136,0) sequence
+		// that will always negate the getActorX()/getActorY() checks that follow.
+		return;
 	}
 
 	Actor *a = derefActor(act, "o5_putActor");




More information about the Scummvm-git-logs mailing list