aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm/he/intern_he.h
diff options
context:
space:
mode:
authorTravis Howell2007-12-27 11:40:29 +0000
committerTravis Howell2007-12-27 11:40:29 +0000
commit410a4a974ef78324ba6d8bd5535b2b46b231b0f7 (patch)
tree0d51afe35658e4b7d880d8a495a2760b958b43ff /engines/scumm/he/intern_he.h
parent1bafd03a698130c21c222edb0bc011fc39a6e003 (diff)
downloadscummvm-rg350-410a4a974ef78324ba6d8bd5535b2b46b231b0f7.tar.gz
scummvm-rg350-410a4a974ef78324ba6d8bd5535b2b46b231b0f7.tar.bz2
scummvm-rg350-410a4a974ef78324ba6d8bd5535b2b46b231b0f7.zip
Enable Windows version of early HE games by default, to match already enabled 3DO/DOS/Macintosh versions of early HE games. Adding only the minimum code required for HE70 games.
svn-id: r30011
Diffstat (limited to 'engines/scumm/he/intern_he.h')
-rw-r--r--engines/scumm/he/intern_he.h38
1 files changed, 27 insertions, 11 deletions
diff --git a/engines/scumm/he/intern_he.h b/engines/scumm/he/intern_he.h
index 5f474b6c68..5e79b04357 100644
--- a/engines/scumm/he/intern_he.h
+++ b/engines/scumm/he/intern_he.h
@@ -39,8 +39,8 @@ class WriteStream;
namespace Scumm {
-#ifndef DISABLE_HE
class ResExtractor;
+#ifndef DISABLE_HE
class LogicHE;
class MoviePlayer;
class Sprite;
@@ -109,7 +109,6 @@ protected:
void o60_readFilePos();
};
-#ifndef DISABLE_HE
class ScummEngine_v70he : public ScummEngine_v60he {
friend class ResExtractor;
friend class Wiz;
@@ -138,8 +137,6 @@ public:
ScummEngine_v70he(OSystem *syst, const DetectorResult &dr);
~ScummEngine_v70he();
- Wiz *_wiz;
-
byte *heFindResourceData(uint32 tag, byte *ptr);
byte *heFindResource(uint32 tag, byte *ptr);
byte *findWrappedBlock(uint32 tag, byte *ptr, int state, bool flagError);
@@ -177,17 +174,12 @@ protected:
virtual void setCursorFromImg(uint img, uint room, uint imgindex);
virtual void setDefaultCursor();
- virtual void clearDrawQueues();
-
- void remapHEPalette(const uint8 *src, uint8 *dst);
-
/* HE version 70 script opcodes */
void o70_startSound();
void o70_pickupObject();
void o70_getActorRoom();
void o70_resourceRoutines();
void o70_systemOps();
- void o70_kernelSetFunctions();
void o70_copyString();
void o70_getStringWidth();
void o70_getStringLen();
@@ -202,18 +194,33 @@ protected:
void o70_createDirectory();
void o70_findBox();
void o70_setSystemMessage();
- void o70_polygonOps();
- void o70_polygonHit();
byte VAR_NUM_SOUND_CHANNELS;
byte VAR_WIZ_TCOLOR;
};
+#ifndef DISABLE_HE
class ScummEngine_v71he : public ScummEngine_v70he {
+protected:
+ typedef void (ScummEngine_v71he::*OpcodeProcv71he)();
+ struct OpcodeEntryv71he {
+ OpcodeProcv71he proc;
+ const char *desc;
+ };
+
+ const OpcodeEntryv71he *_opcodesv71he;
+
public:
ScummEngine_v71he(OSystem *syst, const DetectorResult &dr);
+ ~ScummEngine_v71he();
+
+ Wiz *_wiz;
protected:
+ virtual void setupOpcodes();
+ virtual void executeOpcode(byte i);
+ virtual const char *getOpcodeDesc(byte i);
+
virtual void saveOrLoad(Serializer *s);
virtual void redrawBGAreas();
@@ -222,6 +229,13 @@ protected:
void preProcessAuxQueue();
void postProcessAuxQueue();
+ virtual void clearDrawQueues();
+
+ /* HE version 70 script opcodes */
+ void o71_kernelSetFunctions();
+ void o71_polygonOps();
+ void o71_polygonHit();
+
public:
/* Actor AuxQueue stuff (HE) */
AuxBlock _auxBlocks[16];
@@ -231,6 +245,8 @@ public:
void queueAuxBlock(Actor *a);
void queueAuxEntry(int actorNum, int subIndex);
+
+ void remapHEPalette(const uint8 *src, uint8 *dst);
};
class ScummEngine_v72he : public ScummEngine_v71he {