[Scummvm-git-logs] scummvm master -> 46f55589abd84ddcb7cf1195acb892a8f6316a9c

rvanlaar roland at rolandvanlaar.nl
Sat Aug 15 13:51:28 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:
5ee19d2264 DIRECTOR: LINGO: Fix prop, value order
46f55589ab DIRECTOR: LINGO: Handle CASTNAME in Datum::asInt


Commit: 5ee19d2264121388f1c9caaf9f0be60047558281
    https://github.com/scummvm/scummvm/commit/5ee19d2264121388f1c9caaf9f0be60047558281
Author: Roland van Laar (roland at rolandvanlaar.nl)
Date: 2020-08-15T15:42:01+02:00

Commit Message:
DIRECTOR: LINGO: Fix prop, value order

The stack was read as if the order was a list, not a stack.

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


diff --git a/engines/director/lingo/lingo-bytecode.cpp b/engines/director/lingo/lingo-bytecode.cpp
index d3233fe686..ff4da5f92a 100644
--- a/engines/director/lingo/lingo-bytecode.cpp
+++ b/engines/director/lingo/lingo-bytecode.cpp
@@ -523,8 +523,8 @@ void LC::cb_proplist() {
 	arraySize /= 2;
 
 	for (int i = 0; i < arraySize; i++) {
-		Datum p = g_lingo->pop();
 		Datum v = g_lingo->pop();
+		Datum p = g_lingo->pop();
 
 		PCell cell = PCell(p, v);
 		result.u.parr->insert_at(0, cell);


Commit: 46f55589abd84ddcb7cf1195acb892a8f6316a9c
    https://github.com/scummvm/scummvm/commit/46f55589abd84ddcb7cf1195acb892a8f6316a9c
Author: Roland van Laar (roland at rolandvanlaar.nl)
Date: 2020-08-15T15:49:51+02:00

Commit Message:
DIRECTOR: LINGO: Handle CASTNAME in Datum::asInt

The CASTNAME is converted to an int by querying for
the cast member by name.

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


diff --git a/engines/director/lingo/lingo.cpp b/engines/director/lingo/lingo.cpp
index cde9ec79a7..5c2005b5fb 100644
--- a/engines/director/lingo/lingo.cpp
+++ b/engines/director/lingo/lingo.cpp
@@ -841,6 +841,16 @@ int Datum::asInt() const {
 	int res = 0;
 
 	switch (type) {
+	case CASTNAME:
+		{
+			Movie *movie = g_director->getCurrentMovie();
+			CastMember *member = movie->getCastMemberByName(*u.s);
+			if (member)
+				res =  member->getID();
+			else
+				warning("castIdFetch: reference to non-existent cast member: %s", u.s->c_str());
+		}
+		break;
 	case STRING:
 	case FIELDNAME:
 	case FIELDNUM:




More information about the Scummvm-git-logs mailing list