diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/engines.mk | 4 | ||||
-rw-r--r-- | engines/mohawk/bitmap.cpp | 4 | ||||
-rw-r--r-- | engines/mohawk/bitmap.h | 4 | ||||
-rw-r--r-- | engines/mohawk/console.cpp | 13 | ||||
-rw-r--r-- | engines/mohawk/console.h | 5 | ||||
-rw-r--r-- | engines/mohawk/cursors.cpp | 13 | ||||
-rw-r--r-- | engines/mohawk/cursors.h | 47 | ||||
-rw-r--r-- | engines/mohawk/detection.cpp | 18 | ||||
-rw-r--r-- | engines/mohawk/dialogs.cpp | 9 | ||||
-rw-r--r-- | engines/mohawk/dialogs.h | 7 | ||||
-rw-r--r-- | engines/mohawk/graphics.cpp | 11 | ||||
-rw-r--r-- | engines/mohawk/graphics.h | 25 | ||||
-rw-r--r-- | engines/mohawk/module.mk | 14 |
13 files changed, 123 insertions, 51 deletions
diff --git a/engines/engines.mk b/engines/engines.mk index eea4ffc0b9..c5cbf3ad28 100644 --- a/engines/engines.mk +++ b/engines/engines.mk @@ -97,6 +97,10 @@ endif ifdef ENABLE_MOHAWK DEFINES += -DENABLE_MOHAWK=$(ENABLE_MOHAWK) MODULES += engines/mohawk + +ifdef ENABLE_MYST +DEFINES += -DENABLE_MYST +endif endif ifdef ENABLE_PARALLACTION diff --git a/engines/mohawk/bitmap.cpp b/engines/mohawk/bitmap.cpp index 1a6024aa45..c8111fa91b 100644 --- a/engines/mohawk/bitmap.cpp +++ b/engines/mohawk/bitmap.cpp @@ -622,6 +622,8 @@ void MohawkBitmap::drawRLE8(Graphics::Surface *surface, bool isLE) { } } +#ifdef ENABLE_MYST + ////////////////////////////////////////// // Myst Bitmap Decoder ////////////////////////////////////////// @@ -721,6 +723,8 @@ MohawkSurface *MystBitmap::decodeImage(Common::SeekableReadStream* stream) { return new MohawkSurface(surface, palData); } +#endif + MohawkSurface *LivingBooksBitmap_v1::decodeImage(Common::SeekableReadStream *stream) { Common::SeekableSubReadStreamEndian *endianStream = (Common::SeekableSubReadStreamEndian *)stream; diff --git a/engines/mohawk/bitmap.h b/engines/mohawk/bitmap.h index 55b884a8d6..ea8a130dfc 100644 --- a/engines/mohawk/bitmap.h +++ b/engines/mohawk/bitmap.h @@ -144,6 +144,8 @@ private: void handleRivenSubcommandStream(byte count, byte *&dst); }; +#ifdef ENABLE_MYST + // Myst uses a different image format than that of other Mohawk games. // It essentially uses a Windows bitmap with the LZ encoding from the // Mohawk Bitmap format. @@ -181,6 +183,8 @@ private: } _info; }; +#endif + class LivingBooksBitmap_v1 : public MohawkBitmap { public: LivingBooksBitmap_v1() : MohawkBitmap() {} diff --git a/engines/mohawk/console.cpp b/engines/mohawk/console.cpp index 8aedbc74fc..e94ab7e092 100644 --- a/engines/mohawk/console.cpp +++ b/engines/mohawk/console.cpp @@ -24,9 +24,6 @@ */ #include "mohawk/console.h" -#include "mohawk/myst.h" -#include "mohawk/myst_areas.h" -#include "mohawk/myst_scripts.h" #include "mohawk/graphics.h" #include "mohawk/riven.h" #include "mohawk/riven_external.h" @@ -35,8 +32,16 @@ #include "mohawk/sound.h" #include "mohawk/video.h" +#ifdef ENABLE_MYST +#include "mohawk/myst.h" +#include "mohawk/myst_areas.h" +#include "mohawk/myst_scripts.h" +#endif + namespace Mohawk { +#ifdef ENABLE_MYST + MystConsole::MystConsole(MohawkEngine_Myst *vm) : GUI::Debugger(), _vm(vm) { DCmd_Register("changeCard", WRAP_METHOD(MystConsole, Cmd_ChangeCard)); DCmd_Register("curCard", WRAP_METHOD(MystConsole, Cmd_CurCard)); @@ -307,6 +312,8 @@ bool MystConsole::Cmd_Resources(int argc, const char **argv) { return true; } +#endif // ENABLE_MYST + RivenConsole::RivenConsole(MohawkEngine_Riven *vm) : GUI::Debugger(), _vm(vm) { DCmd_Register("changeCard", WRAP_METHOD(RivenConsole, Cmd_ChangeCard)); DCmd_Register("curCard", WRAP_METHOD(RivenConsole, Cmd_CurCard)); diff --git a/engines/mohawk/console.h b/engines/mohawk/console.h index b7b6b2567e..cefd0b1f4c 100644 --- a/engines/mohawk/console.h +++ b/engines/mohawk/console.h @@ -30,11 +30,13 @@ namespace Mohawk { -class MohawkEngine_Myst; class MohawkEngine_Riven; class MohawkEngine_LivingBooks; class MohawkEngine_CSTime; +#ifdef ENABLE_MYST +class MohawkEngine_Myst; + class MystConsole : public GUI::Debugger { public: MystConsole(MohawkEngine_Myst *vm); @@ -58,6 +60,7 @@ private: bool Cmd_Cache(int argc, const char **argv); bool Cmd_Resources(int argc, const char **argv); }; +#endif class RivenConsole : public GUI::Debugger { public: diff --git a/engines/mohawk/cursors.cpp b/engines/mohawk/cursors.cpp index 4a9fcb2ff2..9233a8497c 100644 --- a/engines/mohawk/cursors.cpp +++ b/engines/mohawk/cursors.cpp @@ -23,11 +23,9 @@ * */ -#include "mohawk/bitmap.h" #include "mohawk/cursors.h" +#include "mohawk/mohawk.h" #include "mohawk/resource.h" -#include "mohawk/graphics.h" -#include "mohawk/myst.h" #include "common/macresman.h" #include "common/system.h" @@ -36,6 +34,11 @@ #include "graphics/cursorman.h" #include "graphics/wincursor.h" +#ifdef ENABLE_MYST +#include "mohawk/bitmap.h" +#include "mohawk/myst.h" +#endif + namespace Mohawk { static const byte s_bwPalette[] = { @@ -115,6 +118,8 @@ void DefaultCursorManager::setCursor(uint16 id) { setMacXorCursor(_vm->getResource(_tag, id)); } +#ifdef ENABLE_MYST + MystCursorManager::MystCursorManager(MohawkEngine_Myst *vm) : _vm(vm) { _bmpDecoder = new MystBitmap(); } @@ -159,6 +164,8 @@ void MystCursorManager::setDefaultCursor() { setCursor(kDefaultMystCursor); } +#endif + NECursorManager::NECursorManager(const Common::String &appName) { _exe = new Common::NEResources(); diff --git a/engines/mohawk/cursors.h b/engines/mohawk/cursors.h index e6c417948f..f8a9429689 100644 --- a/engines/mohawk/cursors.h +++ b/engines/mohawk/cursors.h @@ -40,25 +40,6 @@ namespace Common { namespace Mohawk { -// 803-805 are animated, one large bmp which is in chunks - these are NEVER USED -// Other cursors (200, 300, 400, 500, 600, 700) are not the same in each stack -enum { - kDefaultMystCursor = 100, // The default hand - kWhitePageCursor = 800, // Holding a white page - kRedPageCursor = 801, // Holding a red page - kBluePageCursor = 802, // Holding a blue page - // kDroppingWhitePageAnimCursor = 803, - // kDroppingRedPageAnimCursor = 804, - // kDroppingBluePageAnimCursor = 805, - kNewMatchCursor = 900, // Match that has not yet been lit - kLitMatchCursor = 901, // Match that's burning - kDeadMatchCursor = 902, // Match that's been extinguished - kKeyCursor = 903, // Key in Lighthouse in Stoneship - kRotateClockwiseCursor = 904, // Rotate gear clockwise (boiler on Myst) - kRotateCounterClockwiseCursor = 905, // Rotate gear counter clockwise (boiler on Myst) - kMystZipModeCursor = 999 // Zip Mode cursor -}; - enum { kRivenOpenHandCursor = 2003, kRivenClosedHandCursor = 2004, @@ -69,8 +50,6 @@ enum { class MohawkArchive; class MohawkEngine; -class MohawkEngine_Myst; -class MystBitmap; class CursorManager { public: @@ -103,6 +82,30 @@ private: uint32 _tag; }; +#ifdef ENABLE_MYST + +// 803-805 are animated, one large bmp which is in chunks - these are NEVER USED +// Other cursors (200, 300, 400, 500, 600, 700) are not the same in each stack +enum { + kDefaultMystCursor = 100, // The default hand + kWhitePageCursor = 800, // Holding a white page + kRedPageCursor = 801, // Holding a red page + kBluePageCursor = 802, // Holding a blue page + // kDroppingWhitePageAnimCursor = 803, + // kDroppingRedPageAnimCursor = 804, + // kDroppingBluePageAnimCursor = 805, + kNewMatchCursor = 900, // Match that has not yet been lit + kLitMatchCursor = 901, // Match that's burning + kDeadMatchCursor = 902, // Match that's been extinguished + kKeyCursor = 903, // Key in Lighthouse in Stoneship + kRotateClockwiseCursor = 904, // Rotate gear clockwise (boiler on Myst) + kRotateCounterClockwiseCursor = 905, // Rotate gear counter clockwise (boiler on Myst) + kMystZipModeCursor = 999 // Zip Mode cursor +}; + +class MohawkEngine_Myst; +class MystBitmap; + // The cursor manager for Myst // Uses WDIB + CLRC resources class MystCursorManager : public CursorManager { @@ -121,6 +124,8 @@ private: MystBitmap *_bmpDecoder; }; +#endif // ENABLE_MYST + // The cursor manager for NE EXE's class NECursorManager : public CursorManager { public: diff --git a/engines/mohawk/detection.cpp b/engines/mohawk/detection.cpp index 5bd904d9bb..724eb63f6a 100644 --- a/engines/mohawk/detection.cpp +++ b/engines/mohawk/detection.cpp @@ -30,11 +30,14 @@ #include "common/file.h" #include "common/savefile.h" -#include "mohawk/myst.h" #include "mohawk/riven.h" #include "mohawk/livingbooks.h" #include "mohawk/cstime.h" +#ifdef ENABLE_MYST +#include "mohawk/myst.h" +#endif + namespace Mohawk { struct MohawkGameDescription { @@ -78,6 +81,8 @@ bool MohawkEngine::hasFeature(EngineFeature f) const { (f == kSupportsRTL); } +#ifdef ENABLE_MYST + bool MohawkEngine_Myst::hasFeature(EngineFeature f) const { return MohawkEngine::hasFeature(f) @@ -85,6 +90,8 @@ bool MohawkEngine_Myst::hasFeature(EngineFeature f) const { || (f == kSupportsSavingDuringRuntime); } +#endif + bool MohawkEngine_Riven::hasFeature(EngineFeature f) const { return MohawkEngine::hasFeature(f) @@ -229,8 +236,13 @@ bool MohawkMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGa switch (gd->gameType) { case Mohawk::GType_MYST: case Mohawk::GType_MAKINGOF: +#ifdef ENABLE_MYST *engine = new Mohawk::MohawkEngine_Myst(syst, gd); break; +#else + warning("Myst support not compiled in"); + return false; +#endif case Mohawk::GType_RIVEN: *engine = new Mohawk::MohawkEngine_Riven(syst, gd); break; @@ -251,10 +263,10 @@ bool MohawkMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGa case Mohawk::GType_TREEHOUSE: case Mohawk::GType_1STDEGREE: case Mohawk::GType_CSUSA: - error ("Unsupported Mohawk Engine"); + error("Unsupported Mohawk Engine"); break; default: - error ("Unknown Mohawk Engine"); + error("Unknown Mohawk Engine"); } } diff --git a/engines/mohawk/dialogs.cpp b/engines/mohawk/dialogs.cpp index 797892a197..3fe64350b4 100644 --- a/engines/mohawk/dialogs.cpp +++ b/engines/mohawk/dialogs.cpp @@ -24,7 +24,6 @@ */ #include "mohawk/mohawk.h" -#include "mohawk/myst.h" #include "mohawk/riven.h" #include "mohawk/dialogs.h" @@ -32,6 +31,10 @@ #include "common/savefile.h" #include "common/translation.h" +#ifdef ENABLE_MYST +#include "mohawk/myst.h" +#endif + namespace Mohawk { // This used to have GUI::Dialog("MohawkDummyDialog"), but that doesn't work with the gui branch merge :P (Sorry, Tanoku!) @@ -77,6 +80,8 @@ enum { kWaterCmd = 'WATR' }; +#ifdef ENABLE_MYST + MystOptionsDialog::MystOptionsDialog(MohawkEngine_Myst* vm) : GUI::OptionsDialog("", 120, 120, 360, 200), _vm(vm) { _zipModeCheckbox = new GUI::CheckboxWidget(this, 15, 10, 300, 15, _("~Z~ip Mode Activated"), 0, kZipCmd); _transitionsCheckbox = new GUI::CheckboxWidget(this, 15, 30, 300, 15, _("~T~ransitions Enabled"), 0, kTransCmd); @@ -111,6 +116,8 @@ void MystOptionsDialog::handleCommand(GUI::CommandSender *sender, uint32 cmd, ui } } +#endif + RivenOptionsDialog::RivenOptionsDialog(MohawkEngine_Riven* vm) : GUI::OptionsDialog("", 120, 120, 360, 200), _vm(vm) { _zipModeCheckbox = new GUI::CheckboxWidget(this, 15, 10, 300, 15, _("~Z~ip Mode Activated"), 0, kZipCmd); _waterEffectCheckbox = new GUI::CheckboxWidget(this, 15, 30, 300, 15, _("~W~ater Effect Enabled"), 0, kWaterCmd); diff --git a/engines/mohawk/dialogs.h b/engines/mohawk/dialogs.h index d4e3a3331b..3a1d194a1d 100644 --- a/engines/mohawk/dialogs.h +++ b/engines/mohawk/dialogs.h @@ -38,7 +38,6 @@ namespace Mohawk { class MohawkEngine; -class MohawkEngine_Myst; class MohawkEngine_Riven; class InfoDialog : public GUI::Dialog { @@ -71,6 +70,10 @@ public: virtual void handleKeyDown(Common::KeyState state); }; +#ifdef ENABLE_MYST + +class MohawkEngine_Myst; + class MystOptionsDialog : public GUI::OptionsDialog { public: MystOptionsDialog(MohawkEngine_Myst *vm); @@ -84,6 +87,8 @@ private: GUI::CheckboxWidget *_transitionsCheckbox; }; +#endif + class RivenOptionsDialog : public GUI::OptionsDialog { public: RivenOptionsDialog(MohawkEngine_Riven *vm); diff --git a/engines/mohawk/graphics.cpp b/engines/mohawk/graphics.cpp index 3166b6c431..656a6fad01 100644 --- a/engines/mohawk/graphics.cpp +++ b/engines/mohawk/graphics.cpp @@ -25,17 +25,20 @@ #include "mohawk/resource.h" #include "mohawk/graphics.h" -#include "mohawk/myst.h" #include "mohawk/riven.h" #include "mohawk/livingbooks.h" #include "mohawk/cstime.h" #include "common/substream.h" #include "engines/util.h" -#include "graphics/jpeg.h" #include "graphics/primitives.h" #include "gui/message.h" +#ifdef ENABLE_MYST +#include "mohawk/myst.h" +#include "graphics/jpeg.h" +#endif + namespace Mohawk { MohawkSurface::MohawkSurface() : _surface(0), _palette(0) { @@ -253,6 +256,8 @@ void GraphicsManager::addImageToCache(uint16 id, MohawkSurface *surface) { _cache[id] = surface; } +#ifdef ENABLE_MYST + MystGraphics::MystGraphics(MohawkEngine_Myst* vm) : GraphicsManager(), _vm(vm) { _bmpDecoder = new MystBitmap(); @@ -618,6 +623,8 @@ void MystGraphics::drawLine(const Common::Point &p1, const Common::Point &p2, ui _backBuffer->drawLine(p1.x, p1.y, p2.x, p2.y, color); } +#endif + RivenGraphics::RivenGraphics(MohawkEngine_Riven* vm) : GraphicsManager(), _vm(vm) { _bitmapDecoder = new MohawkBitmap(); diff --git a/engines/mohawk/graphics.h b/engines/mohawk/graphics.h index fbac2f2ea1..99baa4e339 100644 --- a/engines/mohawk/graphics.h +++ b/engines/mohawk/graphics.h @@ -33,26 +33,16 @@ #include "graphics/pict.h" namespace Graphics { - -class JPEG; - + class JPEG; } namespace Mohawk { class MohawkEngine; -class MohawkEngine_Myst; class MohawkEngine_Riven; class MohawkEngine_LivingBooks; class MohawkEngine_CSTime; class MohawkBitmap; -class MystBitmap; - -enum RectState{ - kRectEnabled, - kRectDisabled, - kRectUnreachable -}; class MohawkSurface { public: @@ -118,6 +108,17 @@ private: Common::HashMap<uint16, Common::Array<MohawkSurface*> > _subImageCache; }; +#ifdef ENABLE_MYST + +class MystBitmap; +class MohawkEngine_Myst; + +enum RectState { + kRectEnabled, + kRectDisabled, + kRectUnreachable +}; + class MystGraphics : public GraphicsManager { public: MystGraphics(MohawkEngine_Myst*); @@ -162,6 +163,8 @@ private: Common::Rect _viewport; }; +#endif + struct SFXERecord { // Record values uint16 frameCount; diff --git a/engines/mohawk/module.mk b/engines/mohawk/module.mk index 8c4453e155..eeba2589d8 100644 --- a/engines/mohawk/module.mk +++ b/engines/mohawk/module.mk @@ -16,12 +16,7 @@ MODULE_OBJS = \ livingbooks.o \ livingbooks_code.o \ mohawk.o \ - myst.o \ - myst_areas.o \ - myst_scripts.o \ - myst_state.o \ resource.o \ - resource_cache.o \ riven.o \ riven_external.o \ riven_saveload.o \ @@ -30,6 +25,14 @@ MODULE_OBJS = \ sound.o \ video.o \ view.o \ + +ifdef ENABLE_MYST +MODULE_OBJS += \ + myst.o \ + myst_areas.o \ + myst_scripts.o \ + myst_state.o \ + resource_cache.o \ myst_stacks/channelwood.o \ myst_stacks/credits.o \ myst_stacks/demo.o \ @@ -42,6 +45,7 @@ MODULE_OBJS = \ myst_stacks/selenitic.o \ myst_stacks/slides.o \ myst_stacks/stoneship.o +endif # This module can be built as a plugin ifeq ($(ENABLE_MOHAWK), DYNAMIC_PLUGIN) |