[Scummvm-git-logs] scummvm master -> 9c5418d2b687d82f510c255faf95560a9d248b32

rvanlaar noreply at scummvm.org
Fri Mar 18 21:47:58 UTC 2022


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

Summary:
9c5418d2b6 DIRECTOR: LINGO: Implement getAt & setAt for RECT


Commit: 9c5418d2b687d82f510c255faf95560a9d248b32
    https://github.com/scummvm/scummvm/commit/9c5418d2b687d82f510c255faf95560a9d248b32
Author: Roland van Laar (roland at rolandvanlaar.nl)
Date: 2022-03-18T22:47:35+01:00

Commit Message:
DIRECTOR: LINGO: Implement getAt & setAt for RECT

Rects are handled as lists, with size 4, for getAt and setAt in Director.

Changed paths:
    engines/director/lingo/lingo-builtins.cpp
    engines/director/lingo/tests/lists.lingo


diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp
index 9b1db5fc535..e27ba8dd59b 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -741,6 +741,7 @@ void LB::b_getAt(int nargs) {
 
 	switch (list.type) {
 	case ARRAY:
+	case RECT:
 		ARRBOUNDSCHECK(index, list);
 		g_lingo->push(list.u.farr->arr[index - 1]);
 		break;
@@ -749,7 +750,7 @@ void LB::b_getAt(int nargs) {
 		g_lingo->push(list.u.parr->arr[index - 1].v);
 		break;
 	default:
-		TYPECHECK2(list, ARRAY, PARRAY);
+		TYPECHECK3(list, ARRAY, PARRAY, RECT);
 	}
 }
 
@@ -974,7 +975,7 @@ void LB::b_setAt(int nargs) {
 	Datum list = g_lingo->pop();
 
 	TYPECHECK2(indexD, INT, FLOAT);
-	TYPECHECK2(list, ARRAY, PARRAY);
+	TYPECHECK3(list, ARRAY, PARRAY, RECT);
 	int index = indexD.asInt();
 
 	switch (list.type) {
@@ -992,6 +993,9 @@ void LB::b_setAt(int nargs) {
 		ARRBOUNDSCHECK(index, list);
 		list.u.parr->arr[index - 1].v = value;
 		break;
+	case RECT:
+		ARRBOUNDSCHECK(index, list);
+		list.u.farr->arr[index-1] = value;
 	default:
 		break;
 	}
diff --git a/engines/director/lingo/tests/lists.lingo b/engines/director/lingo/tests/lists.lingo
index 0798182aafb..11524ff29a1 100644
--- a/engines/director/lingo/tests/lists.lingo
+++ b/engines/director/lingo/tests/lists.lingo
@@ -84,3 +84,12 @@ setAt lst,3,5
 scummvmAssert(lst = [0,0,5])
 setAt lst,2,5
 scummvmAssert(lst = [0,5,5])
+
+-- rects
+set rct to rect(0, 0, 100, 100)
+set gA to getAt(rct, 2)
+scummvmAssertEqual(gA, 0)
+set gA to getAt(rct, 3)
+scummvmAssertEqual(gA, 100)
+setAt rct, 2, 20
+scummvmAssertEqual(getAt(rct, 2), 20)




More information about the Scummvm-git-logs mailing list