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

sev- noreply at scummvm.org
Wed May 13 21:50:09 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:
c245fc2476 DIRECTOR: LINGO: Skip D6 mixed compare guard for location lookups


Commit: c245fc2476d9f9348b2a4bbee5e4a556e0c96aad
    https://github.com/scummvm/scummvm/commit/c245fc2476d9f9348b2a4bbee5e4a556e0c96aad
Author: Lothar Serra Mari (mail at serra.me)
Date: 2026-05-13T23:50:04+02:00

Commit Message:
DIRECTOR: LINGO: Skip D6 mixed compare guard for location lookups

Only apply the D6 mixed array/scalar short-circuit for direct relational comparisons.
Do not apply it in location mode, so list/property key lookups (e.g. getPos/getProp paths) continue to work.

This fixes a regression introduced in 6292b5d822b9280030bd0b32c02780bd1957fafe, where
in-game sound fails to play in D6 games. Test subject was "melements".

Assisted-by: GitHub Copilot:GPT-5.3-Codex

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


diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index 955a1f3226b..6d1a422f89c 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -1343,8 +1343,10 @@ Datum LC::compareArrays(Datum (*compareFunc)(Datum, Datum), Datum d1, Datum d2,
 	// At least one of d1 and d2 must be an array
 	bool d1isArr = d1.isArray() || d1.type == PARRAY;
 	bool d2isArr = d2.isArray() || d2.type == PARRAY;
-	// As far as I can tell, D6 no longer does partial array or element-to-array comparison
-	if ((g_director->getVersion() >= 600) && (!(d1isArr && d2isArr))) {
+	// In D6 and higher, direct relational comparison no longer does partial array or
+	// element-to-array coercion. However, location mode still needs
+	// scalar-to-element checks while scanning array entries.
+	if ((g_director->getVersion() >= 600) && !location && (!(d1isArr && d2isArr))) {
 		return Datum(0);
 	}
 




More information about the Scummvm-git-logs mailing list