diff options
author | Matthew Hoops | 2011-04-27 10:08:40 -0400 |
---|---|---|
committer | Matthew Hoops | 2011-04-27 10:15:28 -0400 |
commit | f584f2f3120c33492ba0309bde33a1b4c473c1e1 (patch) | |
tree | ad1a072d9fe14843e876b13c50d38bb51507abfc /engines/scumm/he/logic_he.h | |
parent | 27e4a1dee524fb4979a3ba2430b6c82d486be853 (diff) | |
download | scummvm-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.h | 32 |
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 { |