aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Hoops2011-08-12 09:27:59 -0400
committerMatthew Hoops2011-08-12 09:29:37 -0400
commit26befa4b40dd230d51be756d189b92517c94720c (patch)
tree20dfded7bbe6ebf7d5e1ee2d6d9690b12c498e05
parentb8dcd9a25eb27ef40aa5535fc83879d20db7e10c (diff)
downloadscummvm-rg350-26befa4b40dd230d51be756d189b92517c94720c.tar.gz
scummvm-rg350-26befa4b40dd230d51be756d189b92517c94720c.tar.bz2
scummvm-rg350-26befa4b40dd230d51be756d189b92517c94720c.zip
SCUMM: Implement basketball u32 op 1012
The game no longer divides by zero when starting a match and the court is now visible.
-rw-r--r--engines/scumm/he/logic_he.cpp10
-rw-r--r--engines/scumm/he/logic_he.h3
2 files changed, 13 insertions, 0 deletions
diff --git a/engines/scumm/he/logic_he.cpp b/engines/scumm/he/logic_he.cpp
index af56bca2ee..ffdc365d2d 100644
--- a/engines/scumm/he/logic_he.cpp
+++ b/engines/scumm/he/logic_he.cpp
@@ -1386,6 +1386,7 @@ int32 LogicHEbasketball::dispatch(int op, int numArgs, int32 *args) {
break;
case 1012:
+ res = op_1012();
break;
case 1035:
@@ -1449,6 +1450,15 @@ int32 LogicHEbasketball::dispatch(int op, int numArgs, int32 *args) {
return res;
}
+int LogicHEbasketball::op_1012() {
+ writeScummVar(108, 12000);
+ writeScummVar(109, 8000);
+ writeScummVar(110, 760);
+ writeScummVar(111, 4000);
+ writeScummVar(112, 1600);
+ return 1;
+}
+
/***********************
* Moonbase Commander
*
diff --git a/engines/scumm/he/logic_he.h b/engines/scumm/he/logic_he.h
index e05a05f310..e649a93e72 100644
--- a/engines/scumm/he/logic_he.h
+++ b/engines/scumm/he/logic_he.h
@@ -174,6 +174,9 @@ public:
int versionID();
int32 dispatch(int op, int numArgs, int32 *args);
+
+private:
+ int op_1012();
};
class LogicHEmoonbase : public LogicHE {