aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-rw-r--r--engines/scumm/he/logic_he.cpp19
-rw-r--r--engines/scumm/he/logic_he.h1
2 files changed, 20 insertions, 0 deletions
diff --git a/engines/scumm/he/logic_he.cpp b/engines/scumm/he/logic_he.cpp
index 82c062b47d..925a86675f 100644
--- a/engines/scumm/he/logic_he.cpp
+++ b/engines/scumm/he/logic_he.cpp
@@ -864,6 +864,25 @@ int LogicHEsoccer::op_1002(int32 *args) {
return _vm->VAR(2) * args[0];
}
+int LogicHEsoccer::op_1003(int32 *args) {
+ double data[6], out[3];
+ int i;
+
+ for (i = 0; i < 6; i++) {
+ data[i] = getFromArray(args[0], 0, i);
+ }
+
+ out[0] = data[1] * data[5] - data[4] * data[2];
+ out[1] = data[5] * data[0] - data[3] * data[2];
+ out[2] = data[4] * data[0] - data[3] * data[1];
+
+ for (i = 0; i < 3; i++) {
+ putInArray(args[0], 0, i, scumm_round(out[i]));
+ }
+
+ return 1;
+}
+
int LogicHEsoccer::op_1004(int32 *args) {
// Identical to LogicHEfootball::op_1004
double res, a2, a4, a5;
diff --git a/engines/scumm/he/logic_he.h b/engines/scumm/he/logic_he.h
index 4f850e0f32..0fbe27b125 100644
--- a/engines/scumm/he/logic_he.h
+++ b/engines/scumm/he/logic_he.h
@@ -121,6 +121,7 @@ public:
private:
int op_1001(int32 *args);
int op_1002(int32 *args);
+ int op_1003(int32 *args);
int op_1004(int32 *args);
};