[Scummvm-git-logs] scummvm branch-2-8 -> 7ee5827e15b8b5aaa8700b682c8d9f162e68ca06

moralrecordings noreply at scummvm.org
Mon Jan 22 01:05:53 UTC 2024


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:
7ee5827e15 DIRECTOR: Roll back func_goto freezing logic


Commit: 7ee5827e15b8b5aaa8700b682c8d9f162e68ca06
    https://github.com/scummvm/scummvm/commit/7ee5827e15b8b5aaa8700b682c8d9f162e68ca06
Author: Scott Percival (code at moral.net.au)
Date: 2024-01-22T09:05:25+08:00

Commit Message:
DIRECTOR: Roll back func_goto freezing logic

This may have been a mistake; freezing isn't necessarily bad, it just
needs to pick up running the same script after loading the new frame.
Will have another go after writing a D4 test with all the known edge
cases. Makes The Dark Eye work again.

Reverts commit 331df0a138fff525b5084776c372bd2868f340d9.

Changed paths:
    engines/director/lingo/lingo-funcs.cpp


diff --git a/engines/director/lingo/lingo-funcs.cpp b/engines/director/lingo/lingo-funcs.cpp
index a4dcb3706b3..b3f19d1d494 100644
--- a/engines/director/lingo/lingo-funcs.cpp
+++ b/engines/director/lingo/lingo-funcs.cpp
@@ -53,11 +53,11 @@ void Lingo::func_goto(Datum &frame, Datum &movie, bool calledfromgo) {
 
 	_vm->_skipFrameAdvance = true;
 
+	// If there isn't already frozen Lingo (e.g. from a previous func_goto we haven't yet unfrozen),
+	// freeze this script context. We'll return to it after entering the next frame.
+	g_lingo->_freezeState = true;
 
 	if (movie.type != VOID) {
-		// If there isn't already frozen Lingo (e.g. from a previous func_goto we haven't yet unfrozen),
-		// freeze this script context. We'll return to it after entering the next movie.
-		g_lingo->_freezeState = true;
 		Common::String movieFilenameRaw = movie.asString();
 
 		if (!stage->setNextMovie(movieFilenameRaw))
@@ -95,11 +95,6 @@ void Lingo::func_goto(Datum &frame, Datum &movie, bool calledfromgo) {
 		return;
 	}
 
-	if (g_director->getVersion() < 400)
-		// If there isn't already frozen Lingo (e.g. from a previous func_goto we haven't yet unfrozen),
-		// freeze this script context. We'll return to it after entering the next frame.
-		g_lingo->_freezeState = true;
-
 	if (frame.type == STRING) {
 		debugC(3, kDebugLingoExec, "Lingo::func_goto(): going to frame \"%s\"", frame.u.s->c_str());
 		score->setStartToLabel(*frame.u.s);




More information about the Scummvm-git-logs mailing list