aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm/he/logic_he.h
diff options
context:
space:
mode:
authorMatthew Hoops2011-04-27 10:08:40 -0400
committerMatthew Hoops2011-04-27 10:15:28 -0400
commitf584f2f3120c33492ba0309bde33a1b4c473c1e1 (patch)
treead1a072d9fe14843e876b13c50d38bb51507abfc /engines/scumm/he/logic_he.h
parent27e4a1dee524fb4979a3ba2430b6c82d486be853 (diff)
downloadscummvm-rg350-f584f2f3120c33492ba0309bde33a1b4c473c1e1.tar.gz
scummvm-rg350-f584f2f3120c33492ba0309bde33a1b4c473c1e1.tar.bz2
scummvm-rg350-f584f2f3120c33492ba0309bde33a1b4c473c1e1.zip
SCUMM: Implement soccer u32 opcodes 1013, 1019, 1020, and 1021
Diffstat (limited to 'engines/scumm/he/logic_he.h')
-rw-r--r--engines/scumm/he/logic_he.h32
1 files changed, 24 insertions, 8 deletions
diff --git a/engines/scumm/he/logic_he.h b/engines/scumm/he/logic_he.h
index c2ea2b8ec6..d097d37e75 100644
--- a/engines/scumm/he/logic_he.h
+++ b/engines/scumm/he/logic_he.h
@@ -111,7 +111,6 @@ private:
class LogicHEsoccer : public LogicHE {
private:
- byte *_userData;
double *_userDataD;
public:
@@ -130,21 +129,38 @@ private:
int op_1002(int32 *args);
int op_1003(int32 *args);
int op_1004(int32 *args);
- // op_1006 can be called from other opcodes!
int op_1006(int32 a1, int32 a2, int32 a3, int32 a4);
int op_1007(int32 *args);
int op_1008(int32 *args);
- // op_1011 can be called from other opcodes!
int op_1011(int32 a1, int32 a2, int32 a3, int32 a4, int32 a5);
- void op_1011_sub(int32 a1, int32 a2, int32 a3, int32 a4);
int op_1012(int32 *args);
- // op_1013 can be called from other opcodes!
int op_1013(int32 a1, int32 a2, int32 a3);
- int op_1014(int32 *args);
+ int op_1014(int32 a1, int32 a2, int32 a3, int32 a4, int32 a5, int32 a6, int32 a7, int32 a8, int32 a9, int32 a10, int32 a11, int32 a12, int32 a13, int32 a14);
int op_1019(int32 *args);
- // op_1020 can be called from other opcodes!
int op_1020();
- int op_1021(int32 *args);
+ int op_1021(int32 a1, int32 a2, int32 a3, int32 a4, int32 a5, int32 a6, int32 a7);
+
+ // Two integer arrays are used between some functions
+ // Originally, these pointers were in _userData, but we keep them separate
+ // Also, doing it that would break things on non 32-bit systems...
+ bool _intArraysAllocated;
+ uint32 *_intArray1, *_intArray2;
+
+ // op_1007 allocates some arrays
+ // they're then filled by op_1019
+ byte _byteArray1[4096], _byteArray2[585];
+
+ // op_1011 has a subfunction
+ void op_1011_sub(int32 a1, int32 a2, int32 a3, int32 a4);
+
+ // op_1013 creates some array, purpose unknown
+ bool _array1013Allocated;
+ byte *_array1013;
+ uint32 _array1013Temp[11];
+ int op_sub5(int a1, int a2, int a3);
+
+ // op_1021 can (optionally) set two variables for use in op_1008
+ uint32 _var1021[2];
};
class LogicHEbaseball2001 : public LogicHE {