From 26349e6f65fc629db3334c80f230c976fae4ef55 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Sat, 4 Feb 2006 12:11:10 +0000 Subject: [PATCH] Split intern.h and moved HE stuff into the new file intern_he.h svn-id: r20372 --- scumm/actor.cpp | 1 + scumm/akos.cpp | 1 + scumm/cursor.cpp | 1 + scumm/floodfill_he.cpp | 2 +- scumm/gfx.cpp | 3 + scumm/input.cpp | 3 + scumm/intern.h | 573 +------------------------------------ scumm/intern_he.h | 604 ++++++++++++++++++++++++++++++++++++++++ scumm/logic_he.cpp | 6 +- scumm/logic_he.h | 6 +- scumm/object.cpp | 3 + scumm/palette_he.cpp | 2 +- scumm/resource.cpp | 5 + scumm/resource_v7he.cpp | 2 +- scumm/resource_v7he.h | 2 + scumm/room.cpp | 3 + scumm/saveload.cpp | 1 + scumm/script_v100he.cpp | 2 +- scumm/script_v6he.cpp | 2 +- scumm/script_v72he.cpp | 2 +- scumm/script_v7he.cpp | 2 +- scumm/script_v80he.cpp | 2 +- scumm/script_v90he.cpp | 2 +- scumm/scumm.cpp | 1 + scumm/sprite_he.cpp | 2 +- scumm/string.cpp | 3 + scumm/vars.cpp | 3 + scumm/wiz_he.cpp | 2 +- 28 files changed, 655 insertions(+), 586 deletions(-) create mode 100644 scumm/intern_he.h diff --git a/scumm/actor.cpp b/scumm/actor.cpp index 5646087e2c1..fc8f07037b9 100644 --- a/scumm/actor.cpp +++ b/scumm/actor.cpp @@ -28,6 +28,7 @@ #include "scumm/charset.h" #include "scumm/costume.h" #include "scumm/intern.h" +#include "scumm/intern_he.h" #include "scumm/object.h" #include "scumm/resource.h" #include "scumm/saveload.h" diff --git a/scumm/akos.cpp b/scumm/akos.cpp index 626177112b9..65402901e53 100644 --- a/scumm/akos.cpp +++ b/scumm/akos.cpp @@ -28,6 +28,7 @@ #include "scumm/imuse.h" #include "scumm/imuse_digi/dimuse.h" #include "scumm/intern.h" +#include "scumm/intern_he.h" #include "scumm/sound.h" #include "scumm/util.h" #include "scumm/wiz_he.h" diff --git a/scumm/cursor.cpp b/scumm/cursor.cpp index 51b14e0f90f..f663cfb092e 100644 --- a/scumm/cursor.cpp +++ b/scumm/cursor.cpp @@ -25,6 +25,7 @@ #include "scumm/bomp.h" #include "scumm/charset.h" #include "scumm/intern.h" +#include "scumm/intern_he.h" #include "scumm/object.h" #include "scumm/resource_v7he.h" #include "scumm/saveload.h" diff --git a/scumm/floodfill_he.cpp b/scumm/floodfill_he.cpp index 54ad927cdd6..930cca21cee 100644 --- a/scumm/floodfill_he.cpp +++ b/scumm/floodfill_he.cpp @@ -23,7 +23,7 @@ #include "common/stdafx.h" #include "scumm/floodfill_he.h" -#include "scumm/intern.h" +#include "scumm/intern_he.h" #include "scumm/resource.h" #include "scumm/scumm.h" diff --git a/scumm/gfx.cpp b/scumm/gfx.cpp index 6877e47cf6f..ae6d6fdda8b 100644 --- a/scumm/gfx.cpp +++ b/scumm/gfx.cpp @@ -25,6 +25,9 @@ #include "scumm/actor.h" #include "scumm/charset.h" #include "scumm/intern.h" +#ifndef DISABLE_HE +#include "scumm/intern_he.h" +#endif #include "scumm/resource.h" #include "scumm/usage_bits.h" #include "scumm/wiz_he.h" diff --git a/scumm/input.cpp b/scumm/input.cpp index 3ad1fe4e8b8..5d6fcb47e64 100644 --- a/scumm/input.cpp +++ b/scumm/input.cpp @@ -32,6 +32,9 @@ #include "scumm/dialogs.h" #include "scumm/insane/insane.h" #include "scumm/imuse.h" +#ifndef DISABLE_HE +#include "scumm/intern_he.h" +#endif #include "scumm/logic_he.h" #include "scumm/scumm.h" #include "scumm/sound.h" diff --git a/scumm/intern.h b/scumm/intern.h index 4f7d4c48722..f3ab8a12a3e 100644 --- a/scumm/intern.h +++ b/scumm/intern.h @@ -20,21 +20,13 @@ * */ -#ifndef INTERN_H -#define INTERN_H +#ifndef SCUMM_INTERN_H +#define SCUMM_INTERN_H #include "scumm/scumm.h" -#include "scumm/floodfill_he.h" -#include "scumm/wiz_he.h" namespace Scumm { -#ifndef DISABLE_HE -class ResExtractor; -class LogicHE; -class Sprite; -#endif - // This is to help devices with small memory (PDA, smartphones, ...) // to save abit of memory used by opcode names in the Scumm engine. #ifndef REDUCE_MEMORY_USAGE @@ -768,567 +760,6 @@ protected: byte VAR_TIMEDATE_SECOND; }; -class ScummEngine_v60he : public ScummEngine_v6 { -protected: - typedef void (ScummEngine_v60he::*OpcodeProcv60he)(); - struct OpcodeEntryv60he { - OpcodeProcv60he proc; - const char *desc; - }; - - const OpcodeEntryv60he *_opcodesv60he; - - Common::File _hFileTable[17]; - -public: - ScummEngine_v60he(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs, uint8 md5sum[16], int substResFileNameIndex) : ScummEngine_v6(detector, syst, gs, md5sum, substResFileNameIndex) {} - - virtual void scummInit(); - -protected: - virtual void setupOpcodes(); - virtual void executeOpcode(byte i); - virtual const char *getOpcodeDesc(byte i); - - virtual void saveOrLoad(Serializer *s); - - void localizeArray(int slot, byte scriptSlot); - void redimArray(int arrayId, int newX, int newY, int d); - int readFileToArray(int slot, int32 size); - void writeFileFromArray(int slot, int resID); - int virtScreenSave(byte *dst, int x1, int y1, int x2, int y2); - void virtScreenLoad(int resIdx, int x1, int y1, int x2, int y2); - virtual void decodeParseString(int a, int b); - void swapObjects(int object1, int object2); - - /* HE version 60 script opcodes */ - void o60_setState(); - void o60_roomOps(); - void o60_actorOps(); - void o60_wait(); - void o60_kernelSetFunctions(); - void o60_kernelGetFunctions(); - void o60_openFile(); - void o60_closeFile(); - void o60_deleteFile(); - void o60_readFile(); - void o60_rename(); - void o60_writeFile(); - void o60_soundOps(); - void o60_seekFilePos(); - void o60_localizeArrayToScript(); - void o60_redimArray(); - void o60_readFilePos(); -}; - -#ifndef DISABLE_HE -class ScummEngine_v70he : public ScummEngine_v60he { - friend class ResExtractor; - friend class Wiz; - -protected: - typedef void (ScummEngine_v70he::*OpcodeProcv70he)(); - struct OpcodeEntryv70he { - OpcodeProcv70he proc; - const char *desc; - }; - - const OpcodeEntryv70he *_opcodesv70he; - - ResExtractor *_resExtractor; - - byte *_heV7RoomOffsets; - - int32 _heSndSoundId, _heSndOffset, _heSndChannel, _heSndFlags, _heSndSoundFreq; - - bool _skipProcessActors; - -public: - ScummEngine_v70he(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs, uint8 md5sum[16], int substResFileNameIndex); - ~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); - -protected: - virtual void setupOpcodes(); - virtual void executeOpcode(byte i); - virtual const char *getOpcodeDesc(byte i); - - virtual void setupScummVars(); - virtual void initScummVars(); - - virtual void saveOrLoad(Serializer *s); - - virtual void readRoomsOffsets(); - virtual void readGlobalObjects(); - virtual void readIndexBlock(uint32 blocktype, uint32 itemsize); - - virtual int getActorFromPos(int x, int y); - - int getStringCharWidth(byte chr); - virtual int setupStringArray(int size); - void appendSubstring(int dst, int src, int len2, int len); - - virtual void setCursorFromImg(uint img, uint room, uint imgindex); - - 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_seekFilePos(); - void o70_copyString(); - void o70_getStringWidth(); - void o70_getStringLen(); - void o70_appendString(); - void o70_concatString(); - void o70_compareString(); - void o70_isResourceLoaded(); - void o70_readINI(); - void o70_writeINI(); - void o70_getStringLenForWidth(); - void o70_getCharIndexInString(); - void o70_setFilePath(); - void o70_setWindowCaption(); - void o70_polygonOps(); - void o70_polygonHit(); - - byte VAR_NUM_SOUND_CHANNELS; - byte VAR_WIZ_TCOLOR; -}; - -class ScummEngine_v71he : public ScummEngine_v70he { -public: - ScummEngine_v71he(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs, uint8 md5sum[16], int substResFileNameIndex); - -protected: - virtual void saveOrLoad(Serializer *s); - - virtual void redrawBGAreas(); - - virtual void processActors(); - void preProcessAuxQueue(); - void postProcessAuxQueue(); - -public: - /* Actor AuxQueue stuff (HE) */ - AuxBlock _auxBlocks[16]; - uint16 _auxBlocksNum; - AuxEntry _auxEntries[16]; - uint16 _auxEntriesNum; - - void queueAuxBlock(Actor *a); - void queueAuxEntry(int actorNum, int subIndex); -}; - -class ScummEngine_v72he : public ScummEngine_v71he { -protected: - typedef void (ScummEngine_v72he::*OpcodeProcV72he)(); - struct OpcodeEntryV72he { - OpcodeProcV72he proc; - const char *desc; - }; - -#if !defined(__GNUC__) - #pragma START_PACK_STRUCTS -#endif - - struct ArrayHeader { - int32 type; //0 - int32 dim1start; //4 - int32 dim1end; //8 - int32 dim2start; //0C - int32 dim2end; //10 - byte data[1]; //14 - } GCC_PACK; - -#if !defined(__GNUC__) - #pragma END_PACK_STRUCTS -#endif - - const OpcodeEntryV72he *_opcodesV72he; - - int _stringLength; - byte _stringBuffer[4096]; - - WizParameters _wizParams; - -public: - ScummEngine_v72he(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs, uint8 md5sum[16], int substResFileNameIndex); - - virtual void scummInit(); - -protected: - virtual void setupOpcodes(); - virtual void executeOpcode(byte i); - virtual const char *getOpcodeDesc(byte i); - - virtual void setupScummVars(); - virtual void initScummVars(); - virtual void readArrayFromIndexFile(); - - virtual byte *getStringAddress(int i); - virtual void readMAXS(int blockSize); - - virtual void redrawBGAreas(); - - ArrayHeader *defineArray(int array, int type, int dim2start, int dim2end, int dim1start, int dim1end); - virtual int readArray(int array, int idx2, int idx1); - virtual void writeArray(int array, int idx2, int idx1, int value); - void redimArray(int arrayId, int newDim2start, int newDim2end, - int newDim1start, int newDim1end, int type); - void checkArrayLimits(int array, int dim2start, int dim2end, int dim1start, int dim1end); - void copyArray(int array1, int a1_dim2start, int a1_dim2end, int a1_dim1start, int a1_dim1end, - int array2, int a2_dim2start, int a2_dim2end, int a2_dim1start, int a2_dim1end); - void copyArrayHelper(ArrayHeader *ah, int idx2, int idx1, int len1, byte **data, int *size, int *num); - virtual int setupStringArray(int size); - int readFileToArray(int slot, int32 size); - void writeFileFromArray(int slot, int resID); - - virtual void decodeParseString(int a, int b); - void decodeScriptString(byte *dst, bool scriptString = false); - void copyScriptString(byte *dst, int dstSize); - int convertFilePath(byte *dst, bool setFilePath = false); - - int findObject(int x, int y, int num, int *args); - int getSoundResourceSize(int id); - - virtual bool handleNextCharsetCode(Actor *a, int *c); - - /* HE version 72 script opcodes */ - void o72_pushDWord(); - void o72_getScriptString(); - void o72_isAnyOf(); - void o72_resetCutscene(); - void o72_findObjectWithClassOf(); - void o72_getObjectImageX(); - void o72_getObjectImageY(); - void o72_captureWizImage(); - void o72_getTimer(); - void o72_setTimer(); - void o72_getSoundPosition(); - void o72_startScript(); - void o72_startObject(); - void o72_drawObject(); - void o72_printWizImage(); - void o72_getArrayDimSize(); - void o72_getNumFreeArrays(); - void o72_roomOps(); - void o72_actorOps(); - void o72_verbOps(); - void o72_findObject(); - void o72_arrayOps(); - void o72_systemOps(); - void o72_talkActor(); - void o72_talkEgo(); - void o72_dimArray(); - void o72_dim2dimArray(); - void o72_traceStatus(); - void o72_debugInput(); - void o72_drawWizImage(); - void o72_kernelGetFunctions(); - void o72_jumpToScript(); - void o72_openFile(); - void o72_readFile(); - void o72_writeFile(); - void o72_findAllObjects(); - void o72_deleteFile(); - void o72_rename(); - void o72_getPixel(); - void o72_pickVarRandom(); - void o72_redimArray(); - void o72_readINI(); - void o72_writeINI(); - void o72_getResourceSize(); - void o72_setFilePath(); - void o72_setWindowCaption(); - - byte VAR_NUM_ROOMS; - byte VAR_NUM_SCRIPTS; - byte VAR_NUM_SOUNDS; - byte VAR_NUM_COSTUMES; - byte VAR_NUM_IMAGES; - byte VAR_NUM_CHARSETS; - - byte VAR_POLYGONS_ONLY; -}; - -class ScummEngine_v80he : public ScummEngine_v72he { -protected: - typedef void (ScummEngine_v80he::*OpcodeProcV80he)(); - struct OpcodeEntryV80he { - OpcodeProcV80he proc; - const char *desc; - }; - - const OpcodeEntryV80he *_opcodesV80he; - - int32 _heSndResId, _curSndId, _sndPtrOffs, _sndTmrOffs; - -public: - ScummEngine_v80he(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs, uint8 md5sum[16], int substResFileNameIndex); - -protected: - virtual void setupOpcodes(); - virtual void executeOpcode(byte i); - virtual const char *getOpcodeDesc(byte i); - - virtual void setupScummVars(); - virtual void initScummVars(); - - virtual void initCharset(int charset); - - virtual void clearDrawQueues(); - - void createSound(int snd1id, int snd2id); - - void drawLine(int x1, int y1, int x, int unk1, int unk2, int type, int id); - void drawPixel(int x, int y, int flags); - - /* HE version 80 script opcodes */ - void o80_createSound(); - void o80_getFileSize(); - void o80_stringToInt(); - void o80_getSoundVar(); - void o80_localizeArrayToRoom(); - void o80_readConfigFile(); - void o80_writeConfigFile(); - void o80_cursorCommand(); - void o80_setState(); - void o80_drawWizPolygon(); - void o80_drawLine(); - void o80_pickVarRandom(); - - byte VAR_PLATFORM; - byte VAR_WINDOWS_VERSION; - byte VAR_CURRENT_CHARSET; - byte VAR_COLOR_DEPTH; -}; - -class ScummEngine_v90he : public ScummEngine_v80he { - friend class LogicHE; - friend class Sprite; - -protected: - typedef void (ScummEngine_v90he::*OpcodeProcV90he)(); - struct OpcodeEntryV90he { - OpcodeProcV90he proc; - const char *desc; - }; - - const OpcodeEntryV90he *_opcodesV90he; - - FloodFillParameters _floodFillParams; - - struct VideoParameters { - byte filename[260]; - int32 status; - int32 flags; - int32 unk2; - int32 wizResNum; - }; - - VideoParameters _videoParams; - - int32 _heObject, _heObjectNum; - int32 _hePaletteNum; - - int32 _curMaxSpriteId; - int32 _curSpriteId; - int32 _curSpriteGroupId; - -public: - ScummEngine_v90he(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs, uint8 md5sum[16], int substResFileNameIndex); - ~ScummEngine_v90he(); - - virtual void scummInit(); - - LogicHE *_logicHE; - Sprite *_sprite; - -protected: - virtual void allocateArrays(); - virtual void setupOpcodes(); - virtual void executeOpcode(byte i); - virtual const char *getOpcodeDesc(byte i); - - virtual void setupScummVars(); - virtual void initScummVars(); - - virtual void saveOrLoad(Serializer *s); - - virtual void readMAXS(int blockSize); - - virtual void processActors(); - - int computeWizHistogram(int resnum, int state, int x, int y, int w, int h); - void getArrayDim(int array, int *dim2start, int *dim2end, int *dim1start, int *dim1end); - void sortArray(int array, int dim2start, int dim2end, int dim1start, int dim1end, int sortOrder); - -public: - int getGroupSpriteArray(int spriteGroupId); - -protected: - uint8 *getHEPaletteIndex(int palSlot); - int getHEPaletteColor(int palSlot, int color); - int getHEPaletteSimilarColor(int palSlot, int red, int green, int start, int end); - int getHEPaletteColorComponent(int palSlot, int color, int component); - void setHEPaletteColor(int palSlot, uint8 color, uint8 r, uint8 g, uint8 b); - void setHEPaletteFromPtr(int palSlot, const uint8 *palData); - void setHEPaletteFromCostume(int palSlot, int resId); - void setHEPaletteFromImage(int palSlot, int resId, int state); - void setHEPaletteFromRoom(int palSlot, int resId, int state); - void restoreHEPalette(int palSlot); - void copyHEPalette(int dstPalSlot, int srcPalSlot); - void copyHEPaletteColor(int palSlot, uint8 dstColor, uint8 srcColor); - - - void setDefaultCursor(); - -protected: - /* HE version 90 script opcodes */ - void o90_dup_n(); - void o90_min(); - void o90_max(); - void o90_sin(); - void o90_cos(); - void o90_sqrt(); - void o90_atan2(); - void o90_getSegmentAngle(); - void o90_getActorData(); - void o90_startScriptUnk(); - void o90_jumpToScriptUnk(); - void o90_videoOps(); - void o90_getVideoData(); - void o90_wizImageOps(); - void o90_getDistanceBetweenPoints(); - void o90_getSpriteInfo(); - void o90_setSpriteInfo(); - void o90_getSpriteGroupInfo(); - void o90_setSpriteGroupInfo(); - void o90_getWizData(); - void o90_floodFill(); - void o90_mod(); - void o90_shl(); - void o90_shr(); - void o90_xor(); - void o90_findAllObjectsWithClassOf(); - void o90_getPolygonOverlap(); - void o90_cond(); - void o90_dim2dim2Array(); - void o90_redim2dimArray(); - void o90_getLinesIntersectionPoint(); - void o90_sortArray(); - void o90_getObjectData(); - void o90_getPaletteData(); - void o90_paletteOps(); - void o90_fontUnk(); - void o90_getActorAnimProgress(); - void o90_kernelGetFunctions(); - void o90_kernelSetFunctions(); - - byte VAR_NUM_SPRITE_GROUPS; - byte VAR_NUM_SPRITES; - byte VAR_NUM_PALETTES; - byte VAR_NUM_UNK; - - byte VAR_U32_VERSION; - byte VAR_U32_ARRAY_UNK; -}; - -class ScummEngine_v99he : public ScummEngine_v90he { -public: - ScummEngine_v99he(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs, uint8 md5sum[16], int substResFileNameIndex) : ScummEngine_v90he(detector, syst, gs, md5sum, substResFileNameIndex) {} - - virtual void scummInit(); - -protected: - virtual void initScummVars(); - - virtual void readMAXS(int blockSize); - - virtual void saveOrLoad(Serializer *s); - - virtual void copyPalColor(int dst, int src); - virtual void darkenPalette(int redScale, int greenScale, int blueScale, int startColor, int endColor); - virtual void setPaletteFromPtr(const byte *ptr, int numcolor = -1); - virtual void setPalColor(int index, int r, int g, int b); - virtual void updatePalette(); -}; - -class ScummEngine_v100he : public ScummEngine_v99he { -protected: - typedef void (ScummEngine_v100he::*OpcodeProcV100he)(); - struct OpcodeEntryV100he { - OpcodeProcV100he proc; - const char *desc; - }; - - int32 _heResId, _heResType; - - const OpcodeEntryV100he *_opcodesV100he; - -public: - ScummEngine_v100he(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs, uint8 md5sum[16], int substResFileNameIndex) : ScummEngine_v99he(detector, syst, gs, md5sum, substResFileNameIndex) {} - -protected: - virtual void setupOpcodes(); - virtual void executeOpcode(byte i); - virtual const char *getOpcodeDesc(byte i); - - virtual void saveOrLoad(Serializer *s); - - virtual void decodeParseString(int a, int b); - - /* HE version 100 script opcodes */ - void o100_actorOps(); - void o100_arrayOps(); - void o100_dim2dimArray(); - void o100_redim2dimArray(); - void o100_dimArray(); - void o100_drawLine(); - void o100_drawObject(); - void o100_floodFill(); - void o100_setSpriteGroupInfo(); - void o100_resourceRoutines(); - void o100_wizImageOps(); - void o100_jumpToScript(); - void o100_createSound(); - void o100_dim2dim2Array(); - void o100_paletteOps(); - void o100_jumpToScriptUnk(); - void o100_startScriptUnk(); - void o100_redimArray(); - void o100_roomOps(); - void o100_startSound(); - void o100_setSpriteInfo(); - void o100_startScript(); - void o100_systemOps(); - void o100_cursorCommand(); - void o100_videoOps(); - void o100_wait(); - void o100_writeFile(); - void o100_isResourceLoaded(); - void o100_getResourceSize(); - void o100_getSpriteGroupInfo(); - void o100_getPaletteData(); - void o100_readFile(); - void o100_getSpriteInfo(); - void o100_getWizData(); - void o100_getVideoData(); -}; -#endif - #ifndef DISABLE_SCUMM_7_8 class ScummEngine_v7 : public ScummEngine_v6 { public: diff --git a/scumm/intern_he.h b/scumm/intern_he.h new file mode 100644 index 00000000000..043c3367469 --- /dev/null +++ b/scumm/intern_he.h @@ -0,0 +1,604 @@ +/* ScummVM - Scumm Interpreter + * Copyright (C) 2001 Ludvig Strigeus + * Copyright (C) 2001-2006 The ScummVM project + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $Header$ + * + */ + +#ifndef SCUMM_INTERN_HE_H +#define SCUMM_INTERN_HE_H + +#include "scumm/intern.h" +#ifndef DISABLE_HE +#include "scumm/floodfill_he.h" +#include "scumm/wiz_he.h" +#endif + +namespace Scumm { + +#ifndef DISABLE_HE +class ResExtractor; +class LogicHE; +class Sprite; +#endif + +class ScummEngine_v60he : public ScummEngine_v6 { +protected: + typedef void (ScummEngine_v60he::*OpcodeProcv60he)(); + struct OpcodeEntryv60he { + OpcodeProcv60he proc; + const char *desc; + }; + + const OpcodeEntryv60he *_opcodesv60he; + + Common::File _hFileTable[17]; + +public: + ScummEngine_v60he(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs, uint8 md5sum[16], int substResFileNameIndex) : ScummEngine_v6(detector, syst, gs, md5sum, substResFileNameIndex) {} + + virtual void scummInit(); + +protected: + virtual void setupOpcodes(); + virtual void executeOpcode(byte i); + virtual const char *getOpcodeDesc(byte i); + + virtual void saveOrLoad(Serializer *s); + + void localizeArray(int slot, byte scriptSlot); + void redimArray(int arrayId, int newX, int newY, int d); + int readFileToArray(int slot, int32 size); + void writeFileFromArray(int slot, int resID); + int virtScreenSave(byte *dst, int x1, int y1, int x2, int y2); + void virtScreenLoad(int resIdx, int x1, int y1, int x2, int y2); + virtual void decodeParseString(int a, int b); + void swapObjects(int object1, int object2); + + /* HE version 60 script opcodes */ + void o60_setState(); + void o60_roomOps(); + void o60_actorOps(); + void o60_wait(); + void o60_kernelSetFunctions(); + void o60_kernelGetFunctions(); + void o60_openFile(); + void o60_closeFile(); + void o60_deleteFile(); + void o60_readFile(); + void o60_rename(); + void o60_writeFile(); + void o60_soundOps(); + void o60_seekFilePos(); + void o60_localizeArrayToScript(); + void o60_redimArray(); + void o60_readFilePos(); +}; + +#ifndef DISABLE_HE +class ScummEngine_v70he : public ScummEngine_v60he { + friend class ResExtractor; + friend class Wiz; + +protected: + typedef void (ScummEngine_v70he::*OpcodeProcv70he)(); + struct OpcodeEntryv70he { + OpcodeProcv70he proc; + const char *desc; + }; + + const OpcodeEntryv70he *_opcodesv70he; + + ResExtractor *_resExtractor; + + byte *_heV7RoomOffsets; + + int32 _heSndSoundId, _heSndOffset, _heSndChannel, _heSndFlags, _heSndSoundFreq; + + bool _skipProcessActors; + +public: + ScummEngine_v70he(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs, uint8 md5sum[16], int substResFileNameIndex); + ~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); + +protected: + virtual void setupOpcodes(); + virtual void executeOpcode(byte i); + virtual const char *getOpcodeDesc(byte i); + + virtual void setupScummVars(); + virtual void initScummVars(); + + virtual void saveOrLoad(Serializer *s); + + virtual void readRoomsOffsets(); + virtual void readGlobalObjects(); + virtual void readIndexBlock(uint32 blocktype, uint32 itemsize); + + virtual int getActorFromPos(int x, int y); + + int getStringCharWidth(byte chr); + virtual int setupStringArray(int size); + void appendSubstring(int dst, int src, int len2, int len); + + virtual void setCursorFromImg(uint img, uint room, uint imgindex); + + 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_seekFilePos(); + void o70_copyString(); + void o70_getStringWidth(); + void o70_getStringLen(); + void o70_appendString(); + void o70_concatString(); + void o70_compareString(); + void o70_isResourceLoaded(); + void o70_readINI(); + void o70_writeINI(); + void o70_getStringLenForWidth(); + void o70_getCharIndexInString(); + void o70_setFilePath(); + void o70_setWindowCaption(); + void o70_polygonOps(); + void o70_polygonHit(); + + byte VAR_NUM_SOUND_CHANNELS; + byte VAR_WIZ_TCOLOR; +}; + +class ScummEngine_v71he : public ScummEngine_v70he { +public: + ScummEngine_v71he(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs, uint8 md5sum[16], int substResFileNameIndex); + +protected: + virtual void saveOrLoad(Serializer *s); + + virtual void redrawBGAreas(); + + virtual void processActors(); + void preProcessAuxQueue(); + void postProcessAuxQueue(); + +public: + /* Actor AuxQueue stuff (HE) */ + AuxBlock _auxBlocks[16]; + uint16 _auxBlocksNum; + AuxEntry _auxEntries[16]; + uint16 _auxEntriesNum; + + void queueAuxBlock(Actor *a); + void queueAuxEntry(int actorNum, int subIndex); +}; + +class ScummEngine_v72he : public ScummEngine_v71he { +protected: + typedef void (ScummEngine_v72he::*OpcodeProcV72he)(); + struct OpcodeEntryV72he { + OpcodeProcV72he proc; + const char *desc; + }; + +#if !defined(__GNUC__) + #pragma START_PACK_STRUCTS +#endif + + struct ArrayHeader { + int32 type; //0 + int32 dim1start; //4 + int32 dim1end; //8 + int32 dim2start; //0C + int32 dim2end; //10 + byte data[1]; //14 + } GCC_PACK; + +#if !defined(__GNUC__) + #pragma END_PACK_STRUCTS +#endif + + const OpcodeEntryV72he *_opcodesV72he; + + int _stringLength; + byte _stringBuffer[4096]; + + WizParameters _wizParams; + +public: + ScummEngine_v72he(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs, uint8 md5sum[16], int substResFileNameIndex); + + virtual void scummInit(); + +protected: + virtual void setupOpcodes(); + virtual void executeOpcode(byte i); + virtual const char *getOpcodeDesc(byte i); + + virtual void setupScummVars(); + virtual void initScummVars(); + virtual void readArrayFromIndexFile(); + + virtual byte *getStringAddress(int i); + virtual void readMAXS(int blockSize); + + virtual void redrawBGAreas(); + + ArrayHeader *defineArray(int array, int type, int dim2start, int dim2end, int dim1start, int dim1end); + virtual int readArray(int array, int idx2, int idx1); + virtual void writeArray(int array, int idx2, int idx1, int value); + void redimArray(int arrayId, int newDim2start, int newDim2end, + int newDim1start, int newDim1end, int type); + void checkArrayLimits(int array, int dim2start, int dim2end, int dim1start, int dim1end); + void copyArray(int array1, int a1_dim2start, int a1_dim2end, int a1_dim1start, int a1_dim1end, + int array2, int a2_dim2start, int a2_dim2end, int a2_dim1start, int a2_dim1end); + void copyArrayHelper(ArrayHeader *ah, int idx2, int idx1, int len1, byte **data, int *size, int *num); + virtual int setupStringArray(int size); + int readFileToArray(int slot, int32 size); + void writeFileFromArray(int slot, int resID); + + virtual void decodeParseString(int a, int b); + void decodeScriptString(byte *dst, bool scriptString = false); + void copyScriptString(byte *dst, int dstSize); + int convertFilePath(byte *dst, bool setFilePath = false); + + int findObject(int x, int y, int num, int *args); + int getSoundResourceSize(int id); + + virtual bool handleNextCharsetCode(Actor *a, int *c); + + /* HE version 72 script opcodes */ + void o72_pushDWord(); + void o72_getScriptString(); + void o72_isAnyOf(); + void o72_resetCutscene(); + void o72_findObjectWithClassOf(); + void o72_getObjectImageX(); + void o72_getObjectImageY(); + void o72_captureWizImage(); + void o72_getTimer(); + void o72_setTimer(); + void o72_getSoundPosition(); + void o72_startScript(); + void o72_startObject(); + void o72_drawObject(); + void o72_printWizImage(); + void o72_getArrayDimSize(); + void o72_getNumFreeArrays(); + void o72_roomOps(); + void o72_actorOps(); + void o72_verbOps(); + void o72_findObject(); + void o72_arrayOps(); + void o72_systemOps(); + void o72_talkActor(); + void o72_talkEgo(); + void o72_dimArray(); + void o72_dim2dimArray(); + void o72_traceStatus(); + void o72_debugInput(); + void o72_drawWizImage(); + void o72_kernelGetFunctions(); + void o72_jumpToScript(); + void o72_openFile(); + void o72_readFile(); + void o72_writeFile(); + void o72_findAllObjects(); + void o72_deleteFile(); + void o72_rename(); + void o72_getPixel(); + void o72_pickVarRandom(); + void o72_redimArray(); + void o72_readINI(); + void o72_writeINI(); + void o72_getResourceSize(); + void o72_setFilePath(); + void o72_setWindowCaption(); + + byte VAR_NUM_ROOMS; + byte VAR_NUM_SCRIPTS; + byte VAR_NUM_SOUNDS; + byte VAR_NUM_COSTUMES; + byte VAR_NUM_IMAGES; + byte VAR_NUM_CHARSETS; + + byte VAR_POLYGONS_ONLY; +}; + +class ScummEngine_v80he : public ScummEngine_v72he { +protected: + typedef void (ScummEngine_v80he::*OpcodeProcV80he)(); + struct OpcodeEntryV80he { + OpcodeProcV80he proc; + const char *desc; + }; + + const OpcodeEntryV80he *_opcodesV80he; + + int32 _heSndResId, _curSndId, _sndPtrOffs, _sndTmrOffs; + +public: + ScummEngine_v80he(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs, uint8 md5sum[16], int substResFileNameIndex); + +protected: + virtual void setupOpcodes(); + virtual void executeOpcode(byte i); + virtual const char *getOpcodeDesc(byte i); + + virtual void setupScummVars(); + virtual void initScummVars(); + + virtual void initCharset(int charset); + + virtual void clearDrawQueues(); + + void createSound(int snd1id, int snd2id); + + void drawLine(int x1, int y1, int x, int unk1, int unk2, int type, int id); + void drawPixel(int x, int y, int flags); + + /* HE version 80 script opcodes */ + void o80_createSound(); + void o80_getFileSize(); + void o80_stringToInt(); + void o80_getSoundVar(); + void o80_localizeArrayToRoom(); + void o80_readConfigFile(); + void o80_writeConfigFile(); + void o80_cursorCommand(); + void o80_setState(); + void o80_drawWizPolygon(); + void o80_drawLine(); + void o80_pickVarRandom(); + + byte VAR_PLATFORM; + byte VAR_WINDOWS_VERSION; + byte VAR_CURRENT_CHARSET; + byte VAR_COLOR_DEPTH; +}; + +class ScummEngine_v90he : public ScummEngine_v80he { + friend class LogicHE; + friend class Sprite; + +protected: + typedef void (ScummEngine_v90he::*OpcodeProcV90he)(); + struct OpcodeEntryV90he { + OpcodeProcV90he proc; + const char *desc; + }; + + const OpcodeEntryV90he *_opcodesV90he; + + FloodFillParameters _floodFillParams; + + struct VideoParameters { + byte filename[260]; + int32 status; + int32 flags; + int32 unk2; + int32 wizResNum; + }; + + VideoParameters _videoParams; + + int32 _heObject, _heObjectNum; + int32 _hePaletteNum; + + int32 _curMaxSpriteId; + int32 _curSpriteId; + int32 _curSpriteGroupId; + +public: + ScummEngine_v90he(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs, uint8 md5sum[16], int substResFileNameIndex); + ~ScummEngine_v90he(); + + virtual void scummInit(); + + LogicHE *_logicHE; + Sprite *_sprite; + +protected: + virtual void allocateArrays(); + virtual void setupOpcodes(); + virtual void executeOpcode(byte i); + virtual const char *getOpcodeDesc(byte i); + + virtual void setupScummVars(); + virtual void initScummVars(); + + virtual void saveOrLoad(Serializer *s); + + virtual void readMAXS(int blockSize); + + virtual void processActors(); + + int computeWizHistogram(int resnum, int state, int x, int y, int w, int h); + void getArrayDim(int array, int *dim2start, int *dim2end, int *dim1start, int *dim1end); + void sortArray(int array, int dim2start, int dim2end, int dim1start, int dim1end, int sortOrder); + +public: + int getGroupSpriteArray(int spriteGroupId); + +protected: + uint8 *getHEPaletteIndex(int palSlot); + int getHEPaletteColor(int palSlot, int color); + int getHEPaletteSimilarColor(int palSlot, int red, int green, int start, int end); + int getHEPaletteColorComponent(int palSlot, int color, int component); + void setHEPaletteColor(int palSlot, uint8 color, uint8 r, uint8 g, uint8 b); + void setHEPaletteFromPtr(int palSlot, const uint8 *palData); + void setHEPaletteFromCostume(int palSlot, int resId); + void setHEPaletteFromImage(int palSlot, int resId, int state); + void setHEPaletteFromRoom(int palSlot, int resId, int state); + void restoreHEPalette(int palSlot); + void copyHEPalette(int dstPalSlot, int srcPalSlot); + void copyHEPaletteColor(int palSlot, uint8 dstColor, uint8 srcColor); + + + void setDefaultCursor(); + +protected: + /* HE version 90 script opcodes */ + void o90_dup_n(); + void o90_min(); + void o90_max(); + void o90_sin(); + void o90_cos(); + void o90_sqrt(); + void o90_atan2(); + void o90_getSegmentAngle(); + void o90_getActorData(); + void o90_startScriptUnk(); + void o90_jumpToScriptUnk(); + void o90_videoOps(); + void o90_getVideoData(); + void o90_wizImageOps(); + void o90_getDistanceBetweenPoints(); + void o90_getSpriteInfo(); + void o90_setSpriteInfo(); + void o90_getSpriteGroupInfo(); + void o90_setSpriteGroupInfo(); + void o90_getWizData(); + void o90_floodFill(); + void o90_mod(); + void o90_shl(); + void o90_shr(); + void o90_xor(); + void o90_findAllObjectsWithClassOf(); + void o90_getPolygonOverlap(); + void o90_cond(); + void o90_dim2dim2Array(); + void o90_redim2dimArray(); + void o90_getLinesIntersectionPoint(); + void o90_sortArray(); + void o90_getObjectData(); + void o90_getPaletteData(); + void o90_paletteOps(); + void o90_fontUnk(); + void o90_getActorAnimProgress(); + void o90_kernelGetFunctions(); + void o90_kernelSetFunctions(); + + byte VAR_NUM_SPRITE_GROUPS; + byte VAR_NUM_SPRITES; + byte VAR_NUM_PALETTES; + byte VAR_NUM_UNK; + + byte VAR_U32_VERSION; + byte VAR_U32_ARRAY_UNK; +}; + +class ScummEngine_v99he : public ScummEngine_v90he { +public: + ScummEngine_v99he(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs, uint8 md5sum[16], int substResFileNameIndex) : ScummEngine_v90he(detector, syst, gs, md5sum, substResFileNameIndex) {} + + virtual void scummInit(); + +protected: + virtual void initScummVars(); + + virtual void readMAXS(int blockSize); + + virtual void saveOrLoad(Serializer *s); + + virtual void copyPalColor(int dst, int src); + virtual void darkenPalette(int redScale, int greenScale, int blueScale, int startColor, int endColor); + virtual void setPaletteFromPtr(const byte *ptr, int numcolor = -1); + virtual void setPalColor(int index, int r, int g, int b); + virtual void updatePalette(); +}; + +class ScummEngine_v100he : public ScummEngine_v99he { +protected: + typedef void (ScummEngine_v100he::*OpcodeProcV100he)(); + struct OpcodeEntryV100he { + OpcodeProcV100he proc; + const char *desc; + }; + + int32 _heResId, _heResType; + + const OpcodeEntryV100he *_opcodesV100he; + +public: + ScummEngine_v100he(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs, uint8 md5sum[16], int substResFileNameIndex) : ScummEngine_v99he(detector, syst, gs, md5sum, substResFileNameIndex) {} + +protected: + virtual void setupOpcodes(); + virtual void executeOpcode(byte i); + virtual const char *getOpcodeDesc(byte i); + + virtual void saveOrLoad(Serializer *s); + + virtual void decodeParseString(int a, int b); + + /* HE version 100 script opcodes */ + void o100_actorOps(); + void o100_arrayOps(); + void o100_dim2dimArray(); + void o100_redim2dimArray(); + void o100_dimArray(); + void o100_drawLine(); + void o100_drawObject(); + void o100_floodFill(); + void o100_setSpriteGroupInfo(); + void o100_resourceRoutines(); + void o100_wizImageOps(); + void o100_jumpToScript(); + void o100_createSound(); + void o100_dim2dim2Array(); + void o100_paletteOps(); + void o100_jumpToScriptUnk(); + void o100_startScriptUnk(); + void o100_redimArray(); + void o100_roomOps(); + void o100_startSound(); + void o100_setSpriteInfo(); + void o100_startScript(); + void o100_systemOps(); + void o100_cursorCommand(); + void o100_videoOps(); + void o100_wait(); + void o100_writeFile(); + void o100_isResourceLoaded(); + void o100_getResourceSize(); + void o100_getSpriteGroupInfo(); + void o100_getPaletteData(); + void o100_readFile(); + void o100_getSpriteInfo(); + void o100_getWizData(); + void o100_getVideoData(); +}; +#endif + + +} // End of namespace Scumm + +#endif diff --git a/scumm/logic_he.cpp b/scumm/logic_he.cpp index e299f9720c4..3707a164482 100644 --- a/scumm/logic_he.cpp +++ b/scumm/logic_he.cpp @@ -21,7 +21,7 @@ #include "common/stdafx.h" -#include "scumm/intern.h" +#include "scumm/intern_he.h" #include "scumm/logic_he.h" namespace Scumm { @@ -37,6 +37,10 @@ LogicHE::~LogicHE() { free(_userDataD); } +void LogicHE::writeScummVar(int var, int32 value) { + _vm->writeVar(var, value); +} + static int32 scumm_round(double arg) { return (int32)(arg + 0.5); } diff --git a/scumm/logic_he.h b/scumm/logic_he.h index 903c7495402..deb3ab1cd64 100644 --- a/scumm/logic_he.h +++ b/scumm/logic_he.h @@ -24,10 +24,10 @@ #include "common/stdafx.h" -#include "scumm/intern.h" - namespace Scumm { +class ScummEngine_v90he; + class LogicHE { public: float *_userData; @@ -37,7 +37,7 @@ public: LogicHE(ScummEngine_v90he *vm); virtual ~LogicHE(); - void writeScummVar(int var, int32 value) { _vm->writeVar(var, value); } + void writeScummVar(int var, int32 value); int getFromArray(int arg0, int idx2, int idx1); void putInArray(int arg0, int idx2, int idx1, int val); diff --git a/scumm/object.cpp b/scumm/object.cpp index 5dbdd956831..84be805f875 100644 --- a/scumm/object.cpp +++ b/scumm/object.cpp @@ -25,6 +25,9 @@ #include "scumm/actor.h" #include "scumm/bomp.h" #include "scumm/intern.h" +#ifndef DISABLE_HE +#include "scumm/intern_he.h" +#endif #include "scumm/object.h" #include "scumm/resource.h" #include "scumm/usage_bits.h" diff --git a/scumm/palette_he.cpp b/scumm/palette_he.cpp index dadda1d69dd..eb16847ee59 100644 --- a/scumm/palette_he.cpp +++ b/scumm/palette_he.cpp @@ -22,7 +22,7 @@ #include "common/stdafx.h" #include "common/system.h" #include "scumm/scumm.h" -#include "scumm/intern.h" +#include "scumm/intern_he.h" #include "scumm/resource.h" #include "scumm/util.h" diff --git a/scumm/resource.cpp b/scumm/resource.cpp index 15dd50fbfad..9091a3e9583 100644 --- a/scumm/resource.cpp +++ b/scumm/resource.cpp @@ -28,6 +28,9 @@ #include "scumm/imuse.h" #include "scumm/imuse_digi/dimuse.h" #include "scumm/intern.h" +#ifndef DISABLE_HE +#include "scumm/intern_he.h" +#endif #include "scumm/object.h" #include "scumm/resource.h" #include "scumm/scumm.h" @@ -52,7 +55,9 @@ extern const char *resTypeFromId(int id); static uint16 newTag2Old(uint32 newTag); static const byte *findResourceSmall(uint32 tag, const byte *searchin); +#ifndef DISABLE_HE static bool checkTryMedia(BaseScummFile *handle); +#endif /* Open a room */ diff --git a/scumm/resource_v7he.cpp b/scumm/resource_v7he.cpp index 39771406932..8c8ca2070a3 100644 --- a/scumm/resource_v7he.cpp +++ b/scumm/resource_v7he.cpp @@ -25,7 +25,7 @@ #include "common/stdafx.h" #include "scumm/scumm.h" -#include "scumm/intern.h" +#include "scumm/intern_he.h" #include "scumm/resource.h" #include "scumm/resource_v7he.h" #include "scumm/sound.h" diff --git a/scumm/resource_v7he.h b/scumm/resource_v7he.h index dd9e03e5709..22f2c0a1ac5 100644 --- a/scumm/resource_v7he.h +++ b/scumm/resource_v7he.h @@ -114,6 +114,8 @@ namespace Scumm { if (!check_offset(fi->memory, fi->total_size, fi->file->name(), x, s)) \ return (r); +class ScummEngine_v70he; + class ResExtractor { public: ResExtractor(ScummEngine_v70he *scumm); diff --git a/scumm/room.cpp b/scumm/room.cpp index f8432657edc..b7926346ca0 100644 --- a/scumm/room.cpp +++ b/scumm/room.cpp @@ -25,6 +25,9 @@ #include "scumm/actor.h" #include "scumm/boxes.h" #include "scumm/intern.h" +#ifndef DISABLE_HE +#include "scumm/intern_he.h" +#endif #include "scumm/object.h" #include "scumm/resource.h" #include "scumm/scumm.h" diff --git a/scumm/saveload.cpp b/scumm/saveload.cpp index 98b6a2db62e..74f8b7101a2 100644 --- a/scumm/saveload.cpp +++ b/scumm/saveload.cpp @@ -31,6 +31,7 @@ #include "scumm/imuse_digi/dimuse.h" #include "scumm/imuse.h" #include "scumm/intern.h" +#include "scumm/intern_he.h" #include "scumm/object.h" #include "scumm/resource.h" #include "scumm/saveload.h" diff --git a/scumm/script_v100he.cpp b/scumm/script_v100he.cpp index 64ac36bd1ce..db8a06c65ac 100644 --- a/scumm/script_v100he.cpp +++ b/scumm/script_v100he.cpp @@ -24,7 +24,7 @@ #include "scumm/actor.h" #include "scumm/charset.h" -#include "scumm/intern.h" +#include "scumm/intern_he.h" #include "scumm/object.h" #include "scumm/resource.h" #include "scumm/resource_v7he.h" diff --git a/scumm/script_v6he.cpp b/scumm/script_v6he.cpp index 19959f81bbc..a28c2b2ab01 100644 --- a/scumm/script_v6he.cpp +++ b/scumm/script_v6he.cpp @@ -26,7 +26,7 @@ #include "scumm/actor.h" #include "scumm/charset.h" #include "scumm/imuse.h" -#include "scumm/intern.h" +#include "scumm/intern_he.h" #include "scumm/object.h" #include "scumm/resource.h" #include "scumm/scumm.h" diff --git a/scumm/script_v72he.cpp b/scumm/script_v72he.cpp index adade6ac2b6..b604569c298 100644 --- a/scumm/script_v72he.cpp +++ b/scumm/script_v72he.cpp @@ -28,7 +28,7 @@ #include "scumm/actor.h" #include "scumm/charset.h" -#include "scumm/intern.h" +#include "scumm/intern_he.h" #include "scumm/object.h" #include "scumm/resource.h" #include "scumm/resource_v7he.h" diff --git a/scumm/script_v7he.cpp b/scumm/script_v7he.cpp index 5fa56605d18..8029341a043 100644 --- a/scumm/script_v7he.cpp +++ b/scumm/script_v7he.cpp @@ -26,7 +26,7 @@ #include "scumm/actor.h" #include "scumm/charset.h" -#include "scumm/intern.h" +#include "scumm/intern_he.h" #include "scumm/object.h" #include "scumm/resource.h" #include "scumm/resource_v7he.h" diff --git a/scumm/script_v80he.cpp b/scumm/script_v80he.cpp index 393e03c57aa..d69292b7c35 100644 --- a/scumm/script_v80he.cpp +++ b/scumm/script_v80he.cpp @@ -28,7 +28,7 @@ #include "scumm/actor.h" #include "scumm/charset.h" -#include "scumm/intern.h" +#include "scumm/intern_he.h" #include "scumm/object.h" #include "scumm/resource.h" #include "scumm/resource_v7he.h" diff --git a/scumm/script_v90he.cpp b/scumm/script_v90he.cpp index ed729deb4e6..dbe61100805 100644 --- a/scumm/script_v90he.cpp +++ b/scumm/script_v90he.cpp @@ -24,7 +24,7 @@ #include "scumm/actor.h" #include "scumm/charset.h" -#include "scumm/intern.h" +#include "scumm/intern_he.h" #include "scumm/logic_he.h" #include "scumm/object.h" #include "scumm/resource.h" diff --git a/scumm/scumm.cpp b/scumm/scumm.cpp index 527d866d824..861be2cba94 100644 --- a/scumm/scumm.cpp +++ b/scumm/scumm.cpp @@ -43,6 +43,7 @@ #include "scumm/imuse_digi/dimuse.h" #include "scumm/insane/insane.h" #include "scumm/intern.h" +#include "scumm/intern_he.h" #include "scumm/logic_he.h" #include "scumm/player_nes.h" #include "scumm/player_v1.h" diff --git a/scumm/sprite_he.cpp b/scumm/sprite_he.cpp index f0ecc7b6be6..eb47a0a01e0 100644 --- a/scumm/sprite_he.cpp +++ b/scumm/sprite_he.cpp @@ -22,7 +22,7 @@ #include "common/stdafx.h" -#include "scumm/intern.h" +#include "scumm/intern_he.h" #include "scumm/resource.h" #include "scumm/saveload.h" #include "scumm/scumm.h" diff --git a/scumm/string.cpp b/scumm/string.cpp index 5a83dbed777..9190d0e41e4 100644 --- a/scumm/string.cpp +++ b/scumm/string.cpp @@ -30,6 +30,9 @@ #include "scumm/dialogs.h" #include "scumm/imuse_digi/dimuse.h" #include "scumm/intern.h" +#ifndef DISABLE_HE +#include "scumm/intern_he.h" +#endif #include "scumm/verbs.h" #include "scumm/sound.h" #include "scumm/util.h" diff --git a/scumm/vars.cpp b/scumm/vars.cpp index 8fa8be6a06f..052e180430e 100644 --- a/scumm/vars.cpp +++ b/scumm/vars.cpp @@ -24,6 +24,9 @@ #include "common/config-manager.h" #include "scumm/scumm.h" #include "scumm/intern.h" +#ifndef DISABLE_HE +#include "scumm/intern_he.h" +#endif #include "scumm/logic_he.h" #include "sound/mididrv.h" diff --git a/scumm/wiz_he.cpp b/scumm/wiz_he.cpp index a77e9eac99e..ef2d83f9b63 100644 --- a/scumm/wiz_he.cpp +++ b/scumm/wiz_he.cpp @@ -22,7 +22,7 @@ #include "common/stdafx.h" -#include "scumm/intern.h" +#include "scumm/intern_he.h" #include "scumm/resource.h" #include "scumm/scumm.h" #include "scumm/wiz_he.h"