[Scummvm-git-logs] scummvm master -> 0b755ee54dddb3c05e8f737585ecf6efb6862d42

sev- sev at scummvm.org
Fri Apr 17 21:59:08 UTC 2020


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

Summary:
b6d8d56fcd DIRECTOR: LINGO: Do not die on 2 and 3 arguments puppetSound
8f48430d39 DIRECTOR: LINGO: Check score presence in Lingo::getTheCast()
aee1577792 DIRECTOR: LINGO: Correctly process SYMBOL in varAssign and varFetch
0b755ee54d DIRECTOR: LINGO: Correctly process empty strings in b_numberofwords()


Commit: b6d8d56fcd8779cf3b1303631ae455ab581d105c
    https://github.com/scummvm/scummvm/commit/b6d8d56fcd8779cf3b1303631ae455ab581d105c
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-04-17T23:58:35+02:00

Commit Message:
DIRECTOR: LINGO: Do not die on 2 and 3 arguments puppetSound

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 63693eda2a..e5c4764581 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -1464,7 +1464,7 @@ void LB::b_puppetPalette(int nargs) {
 
 void LB::b_puppetSound(int nargs) {
 	if (nargs != 1) {
-		error("b_puppetSound: expected 1 argument, got %d", nargs);
+		warning("STUB: b_puppetSound: more than 1 argument, got %d", nargs);
 		g_lingo->dropStack(nargs);
 		return;
 	}


Commit: 8f48430d39ba839b3b73ff380b0a0251f472c62f
    https://github.com/scummvm/scummvm/commit/8f48430d39ba839b3b73ff380b0a0251f472c62f
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-04-17T23:58:35+02:00

Commit Message:
DIRECTOR: LINGO: Check score presence in Lingo::getTheCast()

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


diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp
index 79f4e5a3da..d070956d67 100644
--- a/engines/director/lingo/lingo-the.cpp
+++ b/engines/director/lingo/lingo-the.cpp
@@ -736,6 +736,11 @@ Datum Lingo::getTheCast(Datum &id1, int field) {
 	// Setting default type
 	d.type = INT;
 
+	if (!score) {
+		warning("Lingo::getTheCast(): No cast loaded");
+		return d;
+	}
+
 	CastType castType;
 	CastInfo *castInfo;
 	if (id > score->_castIDoffset) {


Commit: aee1577792777dacc22c9b6e025d23e1061fc13a
    https://github.com/scummvm/scummvm/commit/aee1577792777dacc22c9b6e025d23e1061fc13a
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-04-17T23:58:36+02:00

Commit Message:
DIRECTOR: LINGO: Correctly process SYMBOL in varAssign and varFetch

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


diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index 55f501e84e..292b296e8f 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -555,7 +555,7 @@ void Lingo::varAssign(Datum &var, Datum &value) {
 			sym->u.farr = new DatumArray(*value.u.farr);
 			delete value.u.farr;
 		} else if (value.type == SYMBOL) {
-			sym->u.i = value.u.i;
+			sym->u.s = value.u.s;
 		} else if (value.type == OBJECT) {
 			sym->u.s = value.u.s;
 		} else if (value.type == VOID) {
@@ -620,7 +620,7 @@ Datum Lingo::varFetch(Datum &var) {
 		else if (sym->type == POINT)
 			result.u.farr = sym->u.farr;
 		else if (sym->type == SYMBOL)
-			result.u.i = var.u.sym->u.i;
+			result.u.s = var.u.sym->u.s;
 		else if (sym->type == VOID)
 			result.u.i = 0;
 		else if (sym->type == ARRAY) {


Commit: 0b755ee54dddb3c05e8f737585ecf6efb6862d42
    https://github.com/scummvm/scummvm/commit/0b755ee54dddb3c05e8f737585ecf6efb6862d42
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-04-17T23:58:36+02:00

Commit Message:
DIRECTOR: LINGO: Correctly process empty strings in b_numberofwords()

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 e5c4764581..44ef9e5409 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -2043,6 +2043,14 @@ void LB::b_numberofwords(int nargs) {
 	d.makeString();
 	int numberofwords = 0;
 	Common::String contents = *d.u.s;
+	if (contents.empty()) {
+		d.u.i = 0;
+		d.type = INT;
+
+		g_lingo->push(d);
+
+		return;
+	}
 	for (uint32 i = 1; i < d.u.s->size(); i++) {
 		if (Common::isSpace(contents[i]) && !Common::isSpace(contents[i - 1]))
 			numberofwords++;




More information about the Scummvm-git-logs mailing list