[Scummvm-git-logs] scummvm master -> 60d5eb8653e73908784935636910a2034248866e

antoniou79 noreply at scummvm.org
Tue Jul 28 15:51:50 UTC 2026


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .

Summary:
60d5eb8653 MYST3: Fix end frame glitch in right cups wheel in Amateria


Commit: 60d5eb8653e73908784935636910a2034248866e
    https://github.com/scummvm/scummvm/commit/60d5eb8653e73908784935636910a2034248866e
Author: antoniou79 (a.antoniou79 at gmail.com)
Date: 2026-07-28T18:51:37+03:00

Commit Message:
MYST3: Fix end frame glitch in right cups wheel in Amateria

Fixes #17033

We don't allow var 35 to reach 801 in the case of the "crash"/"exposion" of the ball in the right cups wheel. Covers six particular combination cases, as detailed in the bug report.

Changed paths:
    engines/myst3/movie.cpp
    engines/myst3/puzzles.cpp


diff --git a/engines/myst3/movie.cpp b/engines/myst3/movie.cpp
index 30a78661f5c..41c7b5c7e49 100644
--- a/engines/myst3/movie.cpp
+++ b/engines/myst3/movie.cpp
@@ -394,7 +394,6 @@ void ScriptedMovie::update(bool pauseAtFirstFrame) {
 						if (getId() == 12001
 						    && _vm->_state->getLocationRoom() == 1005 && _vm->_state->getLocationAge() == 10
 						    && nextFrame >= 200 && nextFrame < 250) {
-							debug("effectiveStartframe for getId(): %d (room: %d, age: %d) is: %d", getId(), _vm->_state->getLocationRoom(), _vm->_state->getLocationAge(), effectiveStartFrame);
 							// fix glitchy transition for rotation of the left turntable track (movie id 12001, room: 1005, age: 10),
 							// eg. when the left dial panel has no wood pegs
 							if (nextFrame >= 247) {
diff --git a/engines/myst3/puzzles.cpp b/engines/myst3/puzzles.cpp
index 7ddf34634e3..a94a12be1f8 100644
--- a/engines/myst3/puzzles.cpp
+++ b/engines/myst3/puzzles.cpp
@@ -949,8 +949,13 @@ void Puzzles::pinball(int16 var) {
 					--rightToLeftJumpCountdown;
 				}
 				if (!rightToLeftJumpCountdown) {
-					_vm->_state->setVar(35, crashedRightFrame);
-					crashedRightFrame++;
+					if (crashedRightFrame != 801) {
+						_vm->_state->setVar(35, crashedRightFrame);
+						crashedRightFrame++;
+					} else {
+						// fix for right cups wheel animation glitch (bug #17033) - avoid setting var 35 to 801
+						warning("Skipping setting the next scripted frame (var 35) for right cups wheel to %d", crashedRightFrame);
+					}
 				}
 
 				_vm->_state->setVar(32, rightPanelFrame);




More information about the Scummvm-git-logs mailing list