[Scummvm-git-logs] scummvm master -> 469a242555d38fde5ac51d54cdb342b0a58020a3

sev- sev at scummvm.org
Sun Feb 9 19:41:59 UTC 2020


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

Summary:
e4cbde1e9e DIRECTOR: LINGO: Implemented c_arraypush()
a7a3a6bbe7 DIRECTOR: LINGO: Fix array construction
469a242555 DIRECTOR: LINGO: Correctly process custom cursors code


Commit: e4cbde1e9e68798364a2f84392504151bb305423
    https://github.com/scummvm/scummvm/commit/e4cbde1e9e68798364a2f84392504151bb305423
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-02-09T19:57:36+01:00

Commit Message:
DIRECTOR: LINGO: Implemented c_arraypush()

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


diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index 3eb1a5d..3ecc3a9 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -295,13 +295,12 @@ void LC::c_arraypush() {
 	Datum d;
 	int arraySize = g_lingo->readInt();
 
-	warning("STUB: c_arraypush()");
+	d.type = ARRAY;
+	d.u.farr = new DatumArray;
 
 	for (int i = 0; i < arraySize; i++)
-		g_lingo->pop();
+		d.u.farr->push_back(g_lingo->pop());
 
-	d.u.i = arraySize;
-	d.type = INT;
 	g_lingo->push(d);
 }
 


Commit: a7a3a6bbe7a2f87bb33f1eee3436ec92ed63a6d0
    https://github.com/scummvm/scummvm/commit/a7a3a6bbe7a2f87bb33f1eee3436ec92ed63a6d0
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-02-09T20:09:01+01:00

Commit Message:
DIRECTOR: LINGO: Fix array construction

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


diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index 3ecc3a9..e8605db 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -299,7 +299,7 @@ void LC::c_arraypush() {
 	d.u.farr = new DatumArray;
 
 	for (int i = 0; i < arraySize; i++)
-		d.u.farr->push_back(g_lingo->pop());
+		d.u.farr->insert_at(0, g_lingo->pop());
 
 	g_lingo->push(d);
 }


Commit: 469a242555d38fde5ac51d54cdb342b0a58020a3
    https://github.com/scummvm/scummvm/commit/469a242555d38fde5ac51d54cdb342b0a58020a3
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-02-09T20:09:39+01:00

Commit Message:
DIRECTOR: LINGO: Correctly process custom cursors code

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 9dd64a1..440875c 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -1064,19 +1064,19 @@ void LB::b_clearGlobals(int nargs) {
 }
 
 void LB::b_cursor(int nargs) {
-	int mask = -1;
-
 	Datum d = g_lingo->pop();
-	d.toInt();
 
-	if (nargs == 2) {
-		d = g_lingo->pop();
-		d.toInt();
+	if (d.type == ARRAY) {
+		Datum sprite = d.u.farr->operator[](0);
+		Datum mask = d.u.farr->operator[](1);
+		sprite.toInt();
+		mask.toInt();
 
-		mask = d.u.i;
+		g_lingo->func_cursor(sprite.u.i, mask.u.i);
+	} else {
+		d.toInt();
+		g_lingo->func_cursor(d.u.i, -1);
 	}
-
-	g_lingo->func_cursor(d.u.i, mask);
 }
 
 void LB::b_showGlobals(int nargs) {




More information about the Scummvm-git-logs mailing list