diff options
-rw-r--r-- | engines/voyeur/graphics.cpp | 36 | ||||
-rw-r--r-- | engines/voyeur/voyeur.cpp | 3 |
2 files changed, 27 insertions, 12 deletions
diff --git a/engines/voyeur/graphics.cpp b/engines/voyeur/graphics.cpp index b4443a2743..c2f6768fc9 100644 --- a/engines/voyeur/graphics.cpp +++ b/engines/voyeur/graphics.cpp @@ -226,7 +226,7 @@ void GraphicsManager::sDrawPic(DisplayResource *srcDisplay, DisplayResource *des widthDiff2 = destPic->_bounds.width() - width2; if (destViewPort) { - if (!_saveBack || ((srcPic->_flags & 0x800) != 0)) { + if (!_saveBack || ((srcPic->_flags & DISPFLAG_800) != 0)) { backBounds.left = destPic->_bounds.left + offset.x; backBounds.top = destPic->_bounds.top + offset.y; backBounds.setWidth(width2); @@ -253,7 +253,7 @@ void GraphicsManager::sDrawPic(DisplayResource *srcDisplay, DisplayResource *des } } - if (srcFlags & 0x1000) { + if (srcFlags & DISPFLAG_1000) { srcImgData = srcPic->_imgData + (var4C << 14) + _screenOffset; for (uint idx = 0; idx < srcPic->_maskData; ++idx) { if (var4C < 4) { @@ -264,7 +264,7 @@ void GraphicsManager::sDrawPic(DisplayResource *srcDisplay, DisplayResource *des } else { srcImgData = srcPic->_imgData; } - if (destFlags & 0x1000) { + if (destFlags & DISPFLAG_1000) { destImgData = destPic->_imgData + (var4C << 14) + _screenOffset; for (uint idx = 0; idx < srcPic->_maskData; ++idx) { if (var4C < 4) { @@ -422,18 +422,32 @@ error("TODO: var22/var24/var2C not initialised before use?"); // loc_26666 if (srcPic->_pick == 0) { // loc_2727A - int onOff = srcPic->_onOff; - int onOff2 = onOff | (onOff << 8); - - if (srcFlags & 2) { - if (srcFlags & 8) { + byte onOff = srcPic->_onOff; + if (srcFlags & DISPFLAG_2) { + if (srcFlags & DISPFLAG_8) { + error("sDrawPic: TODO"); } else { - + error("sDrawPic: TODO"); } } else { - // TODO + // loc_27477 + if (destFlags & DISPFLAG_8) { + // loc_27481 + destP = (byte *)_screenSurface.pixels + screenOffset; + for (int yp = 0; yp < height1; ++yp) { + Common::fill(srcP, srcP + width2, onOff); + destP += width2 + widthDiff2; + } + } else { + // loc_2753C + destP = destImgData + screenOffset; + for (int yp = 0; yp < height1; ++yp) { + Common::fill(destP, destP + width2, onOff); + destP += width2 + widthDiff2; + } + } } } else { @@ -551,7 +565,7 @@ void GraphicsManager::screenReset() { resetPalette(); (*_vPort)->setupViewPort(); fillPic(*_vPort, 0); - (*_vPort)->_parent->_flags |= 8; + (*_vPort)->_parent->_flags |= DISPFLAG_8; // Flip flipPage(); diff --git a/engines/voyeur/voyeur.cpp b/engines/voyeur/voyeur.cpp index a8a072ef86..664e40e6e6 100644 --- a/engines/voyeur/voyeur.cpp +++ b/engines/voyeur/voyeur.cpp @@ -252,7 +252,8 @@ bool VoyeurEngine::doLock() { _graphicsManager._fontPtr->_fontFlags = 0; Common::String dateString = lock.getDateString(); - Common::String playString = Common::String::format("Last Play %s", msg.c_str()); + msg = "16:49 8/12"; + Common::String playString = Common::String::format("Last Play %s", msg.c_str()); bool breakFlag = false; while (!breakFlag && !shouldQuit()) { |