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

djsrv dservilla at gmail.com
Fri Aug 21 05:03:06 UTC 2020


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
f2291b2c53 DIRECTOR: LINGO: Handle installMenu 0
ccfd1c8fd4 DIRECTOR: LINGO: Fix installMenu in D4 movies


Commit: f2291b2c53506b708a77e669c963d9078caa537f
    https://github.com/scummvm/scummvm/commit/f2291b2c53506b708a77e669c963d9078caa537f
Author: djsrv (dservilla at gmail.com)
Date: 2020-08-21T01:02:53-04:00

Commit Message:
DIRECTOR: LINGO: Handle installMenu 0

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 adada4c892..fb4ffaeccc 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -1629,7 +1629,10 @@ void LB::b_installMenu(int nargs) {
 
 	int castId = d.asCastId();
 
-	const Stxt *stxt = g_director->getCurrentMovie()->getStxt(castId);
+	if (castId == 0) {
+		g_director->_wm->removeMenu();
+		return;
+	}
 
 	if (!stxt) {
 		g_lingo->lingoError("installMenu: Unknown cast number #%d", castId);


Commit: ccfd1c8fd4a75826e756235ecca0fe2242d966f6
    https://github.com/scummvm/scummvm/commit/ccfd1c8fd4a75826e756235ecca0fe2242d966f6
Author: djsrv (dservilla at gmail.com)
Date: 2020-08-21T01:02:53-04:00

Commit Message:
DIRECTOR: LINGO: Fix installMenu in D4 movies

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 fb4ffaeccc..de985952b3 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -1634,12 +1634,18 @@ void LB::b_installMenu(int nargs) {
 		return;
 	}
 
-	if (!stxt) {
+	CastMember *member = g_director->getCurrentMovie()->getCastMember(castId);
+	if (!member) {
 		g_lingo->lingoError("installMenu: Unknown cast number #%d", castId);
 		return;
 	}
+	if (member->_type != kCastText) {
+		g_lingo->lingoError("installMenu: Cast member %d is not a field", castId);
+		return;
+	}
+	TextCastMember *field = static_cast<TextCastMember *>(member);
 
-	Common::String menuStxt = g_lingo->codePreprocessor(stxt->_ptext.c_str(), stxt->_cast->_lingoArchive, kNoneScript, castId, true);
+	Common::String menuStxt = g_lingo->codePreprocessor(field->getText().c_str(), field->getCast()->_lingoArchive, kNoneScript, castId, true);
 	Common::String line;
 	int linenum = -1; // We increment it before processing
 




More information about the Scummvm-git-logs mailing list