diff options
Diffstat (limited to 'engines/sci/sci.h')
-rw-r--r-- | engines/sci/sci.h | 95 |
1 files changed, 27 insertions, 68 deletions
diff --git a/engines/sci/sci.h b/engines/sci/sci.h index 18b1b93a92..886a579799 100644 --- a/engines/sci/sci.h +++ b/engines/sci/sci.h @@ -35,6 +35,8 @@ namespace Sci { class Console; struct EngineState; +class Kernel; +class Vocabulary; // our engine debug levels enum kDebugLevels { @@ -49,16 +51,16 @@ enum kDebugLevels { kDebugLevelGfxDriver = 1 << 8, kDebugLevelBaseSetter = 1 << 9, kDebugLevelParser = 1 << 10, - // FIXME: seems that debug level 11 is special (check debugC in common/debug.cpp) - kDebugLevelMenu = 1 << 12, - kDebugLevelSaid = 1 << 13, - kDebugLevelFile = 1 << 14, - kDebugLevelTime = 1 << 15, - kDebugLevelRoom = 1 << 16, - kDebugLevelAvoidPath = 1 << 17, - kDebugLevelDclInflate = 1 << 18, - kDebugLevelVM = 1 << 19, - kDebugLevelScripts = 1 << 20 + kDebugLevelMenu = 1 << 11, + kDebugLevelSaid = 1 << 12, + kDebugLevelFile = 1 << 13, + kDebugLevelTime = 1 << 14, + kDebugLevelRoom = 1 << 15, + kDebugLevelAvoidPath = 1 << 16, + kDebugLevelDclInflate = 1 << 17, + kDebugLevelVM = 1 << 18, + kDebugLevelScripts = 1 << 19, + kDebugLevelGC = 1 << 20 }; struct SciGameDescription { @@ -72,69 +74,21 @@ enum SciGameVersions { SCI_VERSION_AUTODETECT = 0, SCI_VERSION_0 = 1, SCI_VERSION_01 = 2, - SCI_VERSION_01_VGA = 3, - SCI_VERSION_01_VGA_ODD = 4, - SCI_VERSION_1_EARLY = 5, - SCI_VERSION_1_LATE = 6, - SCI_VERSION_1_1 = 7, - SCI_VERSION_32 = 8 + SCI_VERSION_01_VGA_ODD = 3, + SCI_VERSION_1 = 4, + SCI_VERSION_1_1 = 5, + SCI_VERSION_32 = 6 }; -extern const char *versionNames[9]; +extern const char *versionNames[7]; enum SciGameFlags { - /* - ** SCI0 flags - */ - - /* Applies to all versions before 0.000.395 (i.e. KQ4 old, XMAS 1988 and LSL2) - ** Old SCI versions used two word header for script blocks (first word equal - ** to 0x82, meaning of the second one unknown). New SCI versions used one - ** word header. - ** Also, old SCI versions assign 120 degrees to left & right, and 60 to up - ** and down. Later versions use an even 90 degree distribution. - */ - GF_SCI0_OLD = (1 << 0), - - /* Applies to all versions before 0.000.502 - ** Old SCI versions used to interpret the third DrawPic() parameter inversely, - ** with the opposite default value (obviously). - ** Also, they used 15 priority zones from 42 to 200 instead of 14 priority - ** zones from 42 to 190. - */ - GF_SCI0_OLDGFXFUNCS = (1 << 1), + // SCI0 flags /* Applies to all versions before 0.000.629 - ** Older SCI versions had simpler code for GetTime() - */ - GF_SCI0_OLDGETTIME = (1 << 2), - - /* Applies to any game that requires the SCI1 kernel vocab - ** Some games (such as the King's Quest I demo) require the default kernel vocab table. - */ - GF_SCI0_SCI1VOCAB = (1 << 3), - - // ---------------------------------------------------------------------------- - - /* - ** SCI1 flags - */ - - /* - ** Used to distinguish SCI1 EGA games - */ - GF_SCI1_EGA = (1 << 4), - - /* Applies to all SCI1 versions after 1.000.200 - ** In late SCI1 versions, the argument of lofs[as] instructions - ** is absolute rather than relative. - */ - GF_SCI1_LOFSABSOLUTE = (1 << 5), - - /* Applies to all versions from 1.000.510 onwards - ** kDoSound() is different than in earlier SCI1 versions. - */ - GF_SCI1_NEWDOSOUND = (1 << 6) + * Older SCI versions had simpler code for GetTime() + */ + GF_SCI0_OLDGETTIME = (1 << 0) }; class SciEngine : public Engine { @@ -147,6 +101,7 @@ public: virtual Common::Error run(); void pauseEngineIntern(bool pause); virtual GUI::Debugger *getDebugger(); + Console *getSciDebugger(); const char* getGameID() const; int getResourceVersion() const; @@ -154,7 +109,9 @@ public: Common::Language getLanguage() const; Common::Platform getPlatform() const; uint32 getFlags() const; - ResourceManager *getResMgr() { return _resmgr; } + ResourceManager *getResMgr() const { return _resmgr; } + Kernel *getKernel() const { return _kernel; } + Vocabulary *getVocabulary() const { return _vocabulary; } Common::String getSavegameName(int nr) const; Common::String getSavegamePattern() const; @@ -169,6 +126,8 @@ private: const SciGameDescription *_gameDescription; ResourceManager *_resmgr; EngineState *_gamestate; + Kernel *_kernel; + Vocabulary *_vocabulary; Console *_console; }; |