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

moralrecordings noreply at scummvm.org
Sat Jun 6 03:43:38 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:
a2a8e16810 DIRECTOR: LINGO: Remove error from b_member


Commit: a2a8e168107b4a05a799188e6f4752d7650dc224
    https://github.com/scummvm/scummvm/commit/a2a8e168107b4a05a799188e6f4752d7650dc224
Author: Scott Percival (code at moral.net.au)
Date: 2026-06-06T11:42:59+08:00

Commit Message:
DIRECTOR: LINGO: Remove error from b_member

In practice, it seems in D5 that calling "member X of castLib Y", where
X is out of range, is fine. Certain operations such as "put member X of castLib Y"
are what causes a Lingo error. This is a bug fixed in D6 and
later.

There are D5 games which require the ability to create out of range
CastMemberID objects, so even if we wanted to replicate the bug this
would be the wrong place.

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


diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp
index 98924a725a6..510e5762ddf 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -4065,7 +4065,7 @@ void LB::b_member(int nargs) {
 	if (res.member > g_lingo->getMembersNum(res.castLib)) {
 		// D6 and up does not error on non-existing cast members
 		if (g_director->getVersion() < 600) {
-			g_lingo->lingoError("b_member: Cast member ID out of range");
+			debugC(5, kDebugLingoExec, "b_member: Cast member ID %s out of range! In real D5 this would cause Lingo errors for some use cases", res.asString().c_str());
 		}
 	}
 	g_lingo->push(res);




More information about the Scummvm-git-logs mailing list