diff options
author | Bastien Bouclet | 2011-05-15 17:22:09 +0200 |
---|---|---|
committer | Bastien Bouclet | 2011-05-15 17:41:54 +0200 |
commit | af9dc7a29cd982f73fb425776e6c5c0071df6912 (patch) | |
tree | 2e12648f651fa017cf22abc6b0323e11ed35c0eb | |
parent | e0e28aaeb24983b0e0700b5e561f0d9c991bfb4a (diff) | |
download | scummvm-rg350-af9dc7a29cd982f73fb425776e6c5c0071df6912.tar.gz scummvm-rg350-af9dc7a29cd982f73fb425776e6c5c0071df6912.tar.bz2 scummvm-rg350-af9dc7a29cd982f73fb425776e6c5c0071df6912.zip |
MOHAWK: Display a black screen while changing stack. Default to an empty cursor.
-rw-r--r-- | engines/mohawk/cursors.cpp | 7 | ||||
-rw-r--r-- | engines/mohawk/myst.cpp | 20 |
2 files changed, 20 insertions, 7 deletions
diff --git a/engines/mohawk/cursors.cpp b/engines/mohawk/cursors.cpp index c01aef9581..f95084de8e 100644 --- a/engines/mohawk/cursors.cpp +++ b/engines/mohawk/cursors.cpp @@ -127,6 +127,13 @@ void MystCursorManager::hideCursor() { } void MystCursorManager::setCursor(uint16 id) { + // Zero means empty cursor + if (id == 0) { + static const byte emptyCursor = 0; + CursorMan.replaceCursor(&emptyCursor, 1, 1, 0, 0, 0); + return; + } + // Both Myst and Myst ME use the "MystBitmap" format for cursor images. MohawkSurface *mhkSurface = _bmpDecoder->decodeImage(_vm->getResource(ID_WDIB, id)); Graphics::Surface *surface = mhkSurface->getSurface(); diff --git a/engines/mohawk/myst.cpp b/engines/mohawk/myst.cpp index 57d52d8394..5a39b933e7 100644 --- a/engines/mohawk/myst.cpp +++ b/engines/mohawk/myst.cpp @@ -71,7 +71,8 @@ MohawkEngine_Myst::MohawkEngine_Myst(OSystem *syst, const MohawkGameDescription // original, including bugs, missing bits etc. :) _tweaksEnabled = true; - _currentCursor = _mainCursor = kDefaultMystCursor; + _currentCursor = 0; + _mainCursor = kDefaultMystCursor; _showResourceRects = false; _curCard = 0; _needsUpdate = false; @@ -415,6 +416,11 @@ void MohawkEngine_Myst::changeToStack(uint16 stack, uint16 card, uint16 linkSrcS _curStack = stack; + // Fill screen with black and empty cursor + _cursor->setCursor(0); + _system->fillScreen(_system->getScreenFormat().RGBToColor(0, 0, 0)); + _system->updateScreen(); + _sound->stopSound(); _sound->stopBackgroundMyst(); if (linkSrcSound) @@ -641,18 +647,18 @@ void MohawkEngine_Myst::changeToCard(uint16 card, bool updateScreen) { // TODO: Handle Script Resources - // Make sure we have the right cursor showing - _dragResource = 0; - _hoverResource = 0; - _curResource = -1; - checkCurrentResource(); - // Make sure the screen is updated if (updateScreen) { _gfx->copyBackBufferToScreen(Common::Rect(544, 333)); _system->updateScreen(); } + // Make sure we have the right cursor showing + _dragResource = 0; + _hoverResource = 0; + _curResource = -1; + checkCurrentResource(); + // Debug: Show resource rects if (_showResourceRects) drawResourceRects(); |