aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-rw-r--r--engines/voyeur/events.cpp4
-rw-r--r--engines/voyeur/files.cpp2
-rw-r--r--engines/voyeur/files.h6
-rw-r--r--engines/voyeur/graphics.cpp13
-rw-r--r--engines/voyeur/voyeur.cpp14
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();