diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/voyeur/events.cpp | 4 | ||||
-rw-r--r-- | engines/voyeur/files.cpp | 2 | ||||
-rw-r--r-- | engines/voyeur/files.h | 6 | ||||
-rw-r--r-- | engines/voyeur/graphics.cpp | 13 | ||||
-rw-r--r-- | engines/voyeur/voyeur.cpp | 14 |
5 files changed, 23 insertions, 16 deletions
diff --git a/engines/voyeur/events.cpp b/engines/voyeur/events.cpp index bc69ea4f42..7f8f55f9aa 100644 --- a/engines/voyeur/events.cpp +++ b/engines/voyeur/events.cpp @@ -81,7 +81,7 @@ void EventsManager::sWaitFlip() { for (uint idx = 0; idx < viewPorts.size(); ++idx) { ViewPortResource &viewPort = *viewPorts[idx]; - if (_vm->_graphicsManager._saveBack && (viewPort._flags & 0x40)) { + if (_vm->_graphicsManager._saveBack && (viewPort._flags & DISPFLAG_40)) { Common::Rect *clipPtr = _vm->_graphicsManager._clipPtr; _vm->_graphicsManager._clipPtr = &viewPort._clipRect; @@ -91,7 +91,7 @@ void EventsManager::sWaitFlip() { _vm->_graphicsManager._clipPtr = clipPtr; viewPort._rectListCount[viewPort._pageIndex] = 0; viewPort._rectListPtr[viewPort._pageIndex]->clear(); - viewPort._flags &= 0xFFBF; + viewPort._flags &= ~DISPFLAG_40; } } } diff --git a/engines/voyeur/files.cpp b/engines/voyeur/files.cpp index 335255d3e5..035162bd2b 100644 --- a/engines/voyeur/files.cpp +++ b/engines/voyeur/files.cpp @@ -691,7 +691,7 @@ PictureResource::PictureResource(int flags, int select, int pick, int onOff, } PictureResource::~PictureResource() { - delete _imgData; + delete[] _imgData; } /*------------------------------------------------------------------------*/ diff --git a/engines/voyeur/files.h b/engines/voyeur/files.h index 4d8b86f9a6..77b53ccdef 100644 --- a/engines/voyeur/files.h +++ b/engines/voyeur/files.h @@ -201,6 +201,12 @@ public: byte *fload(const Common::String &filename, int *size = NULL); }; +enum DisplayFlag { DISPFLAG_1 = 1, DISPFLAG_2 = 2, DISPFLAG_4 = 4, DISPFLAG_8 = 8, + DISPFLAG_10 = 0x10, DISPFLAG_20 = 0x20, DISPFLAG_40 = 0x40, DISPFLAG_80 = 0x80, + DISPFLAG_100 = 0x100, DISPFLAG_200 = 0x200, DISPFLAG_400 = 0x400, + DISPFLAG_800 = 0x800, DISPFLAG_1000 = 0x1000, DISPFLAG_2000 = 0x2000, + DISPFLAG_4000 = 0x4000, DISPFLAG_VIEWPORT = 0x8000 }; + class DisplayResource { public: uint16 _flags; diff --git a/engines/voyeur/graphics.cpp b/engines/voyeur/graphics.cpp index 9eacda86c2..b4443a2743 100644 --- a/engines/voyeur/graphics.cpp +++ b/engines/voyeur/graphics.cpp @@ -148,11 +148,11 @@ void GraphicsManager::sDrawPic(DisplayResource *srcDisplay, DisplayResource *des PictureResource *srcPic = (PictureResource *)srcDisplay; PictureResource *destPic = (PictureResource *)destDisplay; - if (srcDisplay->_flags & 0x8000) { + if (srcDisplay->_flags & DISPFLAG_VIEWPORT) { // A viewport was passed, not a picture srcPic = ((ViewPortResource *)srcDisplay)->_currentPic; } - if (destDisplay->_flags & 0x8000) { + if (destDisplay->_flags & DISPFLAG_VIEWPORT) { destViewPort = (ViewPortResource *)destDisplay; destPic = destViewPort->_currentPic; } @@ -465,7 +465,7 @@ void GraphicsManager::fillPic(DisplayResource *display, byte onOff) { * Queues the given picture for display */ void GraphicsManager::sDisplayPic(PictureResource *pic) { - if (pic->_flags & 8) { + if (pic->_flags & DISPFLAG_8) { _vm->_eventsManager._intPtr.field2A = READ_LE_UINT32(pic->_imgData) >> _sImageShift; } @@ -481,8 +481,9 @@ void GraphicsManager::flipPage() { bool flipFlag = false; for (uint idx = 0; idx < viewPorts.size(); ++idx) { - if (viewPorts[idx]->_flags & 0x20) { - if ((viewPorts[idx]->_flags & 9) == 9) { + if (viewPorts[idx]->_flags & DISPFLAG_20) { + if ((viewPorts[idx]->_flags & (DISPFLAG_8 || DISPFLAG_1)) + == (DISPFLAG_8 || DISPFLAG_1)) { if (_planeSelect == idx) sDisplayPic(viewPorts[idx]->_currentPic); flipFlag = true; @@ -500,7 +501,7 @@ void GraphicsManager::flipPage() { assert(viewPort._pageIndex < 2); viewPort._currentPic = viewPort._pages[viewPort._pageIndex]; - viewPort._flags = (viewPort._flags & 0xFFF7) | 0x40; + viewPort._flags = (viewPort._flags & ~DISPFLAG_8) | DISPFLAG_40; } } } diff --git a/engines/voyeur/voyeur.cpp b/engines/voyeur/voyeur.cpp index 3dec56fe6c..a8a072ef86 100644 --- a/engines/voyeur/voyeur.cpp +++ b/engines/voyeur/voyeur.cpp @@ -164,7 +164,7 @@ void VoyeurEngine::doHeadTitle() { void VoyeurEngine::showConversionScreen() { _graphicsManager._backgroundPage = _bVoy->boltEntry(0x502)._picResource; (*_graphicsManager._vPort)->setupViewPort(); - (*_graphicsManager._vPort)->_flags |= 8; + (*_graphicsManager._vPort)->_flags |= DISPFLAG_8; _graphicsManager.flipPage(); _eventsManager.sWaitFlip(); @@ -187,7 +187,7 @@ void VoyeurEngine::showConversionScreen() { if (shouldQuit()) return; - (*_graphicsManager._vPort)->_flags |= 8; + (*_graphicsManager._vPort)->_flags |= DISPFLAG_8; _graphicsManager.flipPage(); _eventsManager.sWaitFlip(); @@ -231,7 +231,7 @@ bool VoyeurEngine::doLock() { (*_graphicsManager._vPort)->setupViewPort(); _graphicsManager._backColors->startFade(); - (*_graphicsManager._vPort)->_flags |= 8; + (*_graphicsManager._vPort)->_parent->_flags |= DISPFLAG_8; _graphicsManager.flipPage(); _eventsManager.sWaitFlip(); @@ -257,7 +257,7 @@ bool VoyeurEngine::doLock() { bool breakFlag = false; while (!breakFlag && !shouldQuit()) { (*_graphicsManager._vPort)->setupViewPort(); - (*_graphicsManager._vPort)->_flags |= 8; + (*_graphicsManager._vPort)->_parent->_flags |= DISPFLAG_8; _graphicsManager.flipPage(); _eventsManager.sWaitFlip(); @@ -268,7 +268,7 @@ bool VoyeurEngine::doLock() { _graphicsManager._fontPtr->_justifyHeight = 97; (*_graphicsManager._vPort)->drawText(playString); - (*_graphicsManager._vPort)->_flags |= 8; + (*_graphicsManager._vPort)->_parent->_flags |= DISPFLAG_8; _graphicsManager.flipPage(); _eventsManager.sWaitFlip(); @@ -296,7 +296,7 @@ bool VoyeurEngine::doLock() { // TODO: Check is the mouse cursor being manually drawn here? I so, refactor _graphicsManager.sDrawPic(srcPic, *_graphicsManager._vPort, mousePos); - (*_graphicsManager._vPort)->_flags |= 8; + (*_graphicsManager._vPort)->_parent->_flags |= DISPFLAG_8; _graphicsManager.flipPage(); _eventsManager.sWaitFlip(); @@ -354,7 +354,7 @@ bool VoyeurEngine::doLock() { } _graphicsManager.fillPic(*_graphicsManager._vPort); - (*_graphicsManager._vPort)->_flags |= 8; + (*_graphicsManager._vPort)->_parent->_flags |= DISPFLAG_8; _graphicsManager.flipPage(); _eventsManager.sWaitFlip(); _graphicsManager.resetPalette(); |