diff options
author | Travis Howell | 2004-09-06 00:58:40 +0000 |
---|---|---|
committer | Travis Howell | 2004-09-06 00:58:40 +0000 |
commit | f1c0202e7c418d75f8c560366413b56f343f66b0 (patch) | |
tree | dd1f995303ff194b825b2e0c229ab43fdb0c3a14 /scumm/intern.h | |
parent | d21525d7fe93b9b6d15c442a1263149e89eb70bc (diff) | |
download | scummvm-rg350-f1c0202e7c418d75f8c560366413b56f343f66b0.tar.gz scummvm-rg350-f1c0202e7c418d75f8c560366413b56f343f66b0.tar.bz2 scummvm-rg350-f1c0202e7c418d75f8c560366413b56f343f66b0.zip |
Add HE 80/90 classes, will be filled up over time.
svn-id: r14914
Diffstat (limited to 'scumm/intern.h')
-rw-r--r-- | scumm/intern.h | 51 |
1 files changed, 47 insertions, 4 deletions
diff --git a/scumm/intern.h b/scumm/intern.h index 1d5bded97f..062db31d8f 100644 --- a/scumm/intern.h +++ b/scumm/intern.h @@ -575,7 +575,7 @@ protected: virtual void decodeParseString(int a, int b); void swapObjects(int object1, int object2); - /* Version 6 script opcodes */ + /* HE version 60 script opcodes */ void o6_setState(); void o6_roomOps(); void o6_actorOps(); @@ -618,7 +618,7 @@ protected: byte stringLen(byte *); int getCharsetOffset(int letter); - /* Version 7 script opcodes */ + /* HE version 70 script opcodes */ void o7_cursorCommand(); void o7_startSound(); void o7_pickupObject(); @@ -704,7 +704,7 @@ protected: void decodeScriptString(byte *dst, bool scriptString = false); int copyScriptString(byte *dst); - /* Version 7 script opcodes */ + /* HE version 72 script opcodes */ void o72_pushDWord(); void o72_addMessageToStack(); void o72_wordArrayRead(); @@ -712,7 +712,6 @@ protected: void o72_wordArrayWrite(); void o72_wordArrayIndexedWrite(); void o72_compareStackList(); - void o72_unknown1C(); void o72_unknown50(); void o72_findObject(); void o72_wordArrayInc(); @@ -760,6 +759,50 @@ protected: void o72_unknownFB(); }; +class ScummEngine_v80he : public ScummEngine_v72he { +protected: + typedef void (ScummEngine_v80he::*OpcodeProcV80he)(); + struct OpcodeEntryV80he { + OpcodeProcV80he proc; + const char *desc; + }; + + const OpcodeEntryV80he *_opcodesV80he; + +public: + ScummEngine_v80he(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs) : ScummEngine_v72he(detector, syst, gs) {} + +protected: + virtual void setupOpcodes(); + virtual void executeOpcode(byte i); + virtual const char *getOpcodeDesc(byte i); + + /* HE version 80 script opcodes */ +}; + +class ScummEngine_v90he : public ScummEngine_v80he { +protected: + typedef void (ScummEngine_v90he::*OpcodeProcV90he)(); + struct OpcodeEntryV90he { + OpcodeProcV90he proc; + const char *desc; + }; + + const OpcodeEntryV90he *_opcodesV90he; + +public: + ScummEngine_v90he(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs) : ScummEngine_v80he(detector, syst, gs) {} + +protected: + virtual void setupOpcodes(); + virtual void executeOpcode(byte i); + virtual const char *getOpcodeDesc(byte i); + + /* HE version 90 script opcodes */ + void o90_unknown1C(); + void o90_unknown26(); +}; + class ScummEngine_v7 : public ScummEngine_v6 { public: ScummEngine_v7(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs) : ScummEngine_v6(detector, syst, gs) {} |