[Scummvm-git-logs] scummvm master -> f071de48a31394529dfd8e894803ce0f2bc6e0ba

rvanlaar roland at rolandvanlaar.nl
Tue Aug 18 14:10:28 UTC 2020


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:
f071de48a3 DIRECTOR: LINGO: implement put ... after chunkexpr


Commit: f071de48a31394529dfd8e894803ce0f2bc6e0ba
    https://github.com/scummvm/scummvm/commit/f071de48a31394529dfd8e894803ce0f2bc6e0ba
Author: Roland van Laar (roland at rolandvanlaar.nl)
Date: 2020-08-18T16:10:02+02:00

Commit Message:
DIRECTOR: LINGO: implement put ... after chunkexpr

The D4 lingo `put ... after chunkexpr` uses opcode 34 (0x22) for
cb_v4assign.
We convert the SYMBOL to a VAR due to cb_objectpush pushing
variables as SYMBOLS to the stack.

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


diff --git a/engines/director/lingo/lingo-bytecode.cpp b/engines/director/lingo/lingo-bytecode.cpp
index de0b5de0eb..8129a9d4b9 100644
--- a/engines/director/lingo/lingo-bytecode.cpp
+++ b/engines/director/lingo/lingo-bytecode.cpp
@@ -412,6 +412,17 @@ void LC::cb_v4assign() {
 			LC::c_assign();
 		}
 		break;
+	case 0x22:
+		// put value after chunkExpression
+		{
+			Datum chunkExpr = g_lingo->pop();
+			if (chunkExpr.type == SYMBOL) {
+				chunkExpr.type = VAR;
+			}
+			g_lingo->push(chunkExpr);
+			LC::c_putafter();
+		}
+		break;
 	case 0x26:
 		// put value after field textVar
 		{




More information about the Scummvm-git-logs mailing list