aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Bouclet2011-05-15 17:22:09 +0200
committerBastien Bouclet2011-05-15 17:41:54 +0200
commitaf9dc7a29cd982f73fb425776e6c5c0071df6912 (patch)
tree2e12648f651fa017cf22abc6b0323e11ed35c0eb
parente0e28aaeb24983b0e0700b5e561f0d9c991bfb4a (diff)
downloadscummvm-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.cpp7
-rw-r--r--engines/mohawk/myst.cpp20
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();