[Scummvm-git-logs] scummvm master -> 6c71e8992016aed10be4a3367599b2fc5de0f1f9
sev-
noreply at scummvm.org
Sun Jun 5 23:12:03 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:
6c71e89920 DIRECTOR: LINGO: Implement STUB builtin b_union()
Commit: 6c71e8992016aed10be4a3367599b2fc5de0f1f9
https://github.com/scummvm/scummvm/commit/6c71e8992016aed10be4a3367599b2fc5de0f1f9
Author: Pragyansh Chaturvedi (r41k0u) (pragyanshchaturvedi18 at gmail.com)
Date: 2022-06-06T01:12:00+02:00
Commit Message:
DIRECTOR: LINGO: Implement STUB builtin b_union()
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 a91c29cb4e6..ba6486d8d19 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -2552,11 +2552,32 @@ void LB::b_offsetRect(int nargs) {
}
void LB::b_union(int nargs) {
- g_lingo->printSTUBWithArglist("b_union", nargs);
+ if (nargs != 2) {
+ warning("Wrong number of arguments for b_union: Expected 2, got %d", nargs);
+ g_lingo->dropStack(nargs);
+ g_lingo->push(Datum(0));
+ return;
+ }
- g_lingo->dropStack(nargs);
+ Datum rect1 = g_lingo->pop();
+ Datum rect2 = g_lingo->pop();
- g_lingo->push(Datum(0));
+ if (rect1.type != RECT || rect2.type != RECT) {
+ warning("Wrong type of arguments for b_union");
+ g_lingo->push(Datum(0));
+ return;
+ }
+
+ Datum res;
+ res.type = RECT;
+
+ res.u.farr = new FArray();
+ res.u.farr->arr.push_back(Datum(MIN(rect1.u.farr->arr[0].u.i, rect2.u.farr->arr[0].u.i)));
+ res.u.farr->arr.push_back(Datum(MIN(rect1.u.farr->arr[1].u.i, rect2.u.farr->arr[1].u.i)));
+ res.u.farr->arr.push_back(Datum(MAX(rect1.u.farr->arr[2].u.i, rect2.u.farr->arr[2].u.i)));
+ res.u.farr->arr.push_back(Datum(MAX(rect1.u.farr->arr[3].u.i, rect2.u.farr->arr[3].u.i)));
+
+ g_lingo->push(res);
}
More information about the Scummvm-git-logs
mailing list