[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