diff options
author | Bastien Bouclet | 2010-11-29 20:56:39 +0000 |
---|---|---|
committer | Bastien Bouclet | 2010-11-29 20:56:39 +0000 |
commit | 92dc0fe5b5780b4efe4dc8502ae82053123656c2 (patch) | |
tree | 6e15e8a8283115f7517f33d6a1ff7cf8b2a5bcdd /engines/mohawk | |
parent | 0cff3be66f7a289120326c907e5d10e017b0bb9c (diff) | |
download | scummvm-rg350-92dc0fe5b5780b4efe4dc8502ae82053123656c2.tar.gz scummvm-rg350-92dc0fe5b5780b4efe4dc8502ae82053123656c2.tar.bz2 scummvm-rg350-92dc0fe5b5780b4efe4dc8502ae82053123656c2.zip |
MOHAWK: Only draw a resource conditional subimages if it has the "subimages enabled" flag set.
svn-id: r54620
Diffstat (limited to 'engines/mohawk')
-rw-r--r-- | engines/mohawk/myst.cpp | 24 | ||||
-rw-r--r-- | engines/mohawk/myst.h | 3 | ||||
-rw-r--r-- | engines/mohawk/myst_areas.h | 1 |
3 files changed, 17 insertions, 11 deletions
diff --git a/engines/mohawk/myst.cpp b/engines/mohawk/myst.cpp index 2ebbb7be10..67fb868992 100644 --- a/engines/mohawk/myst.cpp +++ b/engines/mohawk/myst.cpp @@ -396,6 +396,18 @@ void MohawkEngine_Myst::changeToStack(uint16 stack) { _gfx->clearCache(); } +void MohawkEngine_Myst::drawCardBackground() { +if (_view.conditionalImageCount != 0) { + for (uint16 i = 0; i < _view.conditionalImageCount; i++) { + if (_scriptParser->getVar(_view.conditionalImages[i].var) < _view.conditionalImages[i].numStates) + _gfx->copyImageToScreen(_view.conditionalImages[i].values[_scriptParser->getVar(_view.conditionalImages[i].var)], Common::Rect(0, 0, 544, 333)); + else + warning("Conditional image %d variable %d: %d exceeds maximum state of %d", i, _view.conditionalImages[i].var, _scriptParser->getVar(_view.conditionalImages[i].var), _view.conditionalImages[i].numStates-1); + } +} else if (_view.mainImage != 0) + _gfx->copyImageToScreen(_view.mainImage, Common::Rect(0, 0, 544, 333)); +} + void MohawkEngine_Myst::changeToCard(uint16 card) { debug(2, "changeToCard(%d)", card); @@ -423,15 +435,7 @@ void MohawkEngine_Myst::changeToCard(uint16 card) { loadCursorHints(); // Handle images - if (_view.conditionalImageCount != 0) { - for (uint16 i = 0; i < _view.conditionalImageCount; i++) { - if (_scriptParser->getVar(_view.conditionalImages[i].var) < _view.conditionalImages[i].numStates) - _gfx->copyImageToScreen(_view.conditionalImages[i].values[_scriptParser->getVar(_view.conditionalImages[i].var)], Common::Rect(0, 0, 544, 333)); - else - warning("Conditional image %d variable %d: %d exceeds maximum state of %d", i, _view.conditionalImages[i].var, _scriptParser->getVar(_view.conditionalImages[i].var), _view.conditionalImages[i].numStates-1); - } - } else if (_view.mainImage != 0) - _gfx->copyImageToScreen(_view.mainImage, Common::Rect(0, 0, 544, 333)); + drawCardBackground(); // Handle sound int16 soundAction = 0; @@ -901,7 +905,7 @@ void MohawkEngine_Myst::setResourceEnabled(uint16 resourceId, bool enable) { void MohawkEngine_Myst::drawResourceImages() { for (uint16 i = 0; i < _resources.size(); i++) - if (_resources[i]->isEnabled()) + if (_resources[i]->isDrawSubimages()) _resources[i]->drawDataToScreen(); // Make sure the screen is updated diff --git a/engines/mohawk/myst.h b/engines/mohawk/myst.h index ab1c6f5d6b..448570c8a1 100644 --- a/engines/mohawk/myst.h +++ b/engines/mohawk/myst.h @@ -199,6 +199,8 @@ public: void setResourceEnabled(uint16 resourceId, bool enable); void redrawArea(uint16 var); void redrawResource(MystResourceType8 *_resource); + void drawResourceImages(); + void drawCardBackground(); void setCacheState(bool state) { _cache.enabled = state; } bool getCacheState(void) { return _cache.enabled; } @@ -234,7 +236,6 @@ private: void drawResourceRects(); void checkCurrentResource(); int16 _curResource; - void drawResourceImages(); uint16 _cursorHintCount; MystCursorHint *_cursorHints; diff --git a/engines/mohawk/myst_areas.h b/engines/mohawk/myst_areas.h index dab35871a2..af889f1f90 100644 --- a/engines/mohawk/myst_areas.h +++ b/engines/mohawk/myst_areas.h @@ -45,6 +45,7 @@ public: virtual Common::Rect getRect() { return _rect; } bool isEnabled(); void setEnabled(bool enabled); + bool isDrawSubimages() { return _flags & kMystSubimageEnableFlag; }; uint16 getDest() { return _dest; } virtual uint16 getType8Var() { return 0xFFFF; } bool unreachableZipDest(); |